From 8f00b89805731a623a149427a68661fef7b2b856 Mon Sep 17 00:00:00 2001 From: moul Date: Fri, 10 Jan 2025 00:18:53 +0000 Subject: [PATCH] chore: update portal-loop backup --- portal-loop/README.md | 2 +- ...=> backup_portal_loop_txs_7001-8000.jsonl} | 819 +++ .../backup_portal_loop_txs_8001-14322.jsonl | 6322 +++++++++++++++++ 3 files changed, 7142 insertions(+), 1 deletion(-) rename portal-loop/{backup_portal_loop_txs_7001-7181.jsonl => backup_portal_loop_txs_7001-8000.jsonl} (65%) create mode 100644 portal-loop/backup_portal_loop_txs_8001-14322.jsonl diff --git a/portal-loop/README.md b/portal-loop/README.md index 55e98f80..86ac9b7b 100644 --- a/portal-loop/README.md +++ b/portal-loop/README.md @@ -2,7 +2,7 @@ ## TXs ``` -7238 +14379 ``` ## addpkgs diff --git a/portal-loop/backup_portal_loop_txs_7001-7181.jsonl b/portal-loop/backup_portal_loop_txs_7001-8000.jsonl similarity index 65% rename from portal-loop/backup_portal_loop_txs_7001-7181.jsonl rename to portal-loop/backup_portal_loop_txs_7001-8000.jsonl index 05aa38fd..46e6d865 100644 --- a/portal-loop/backup_portal_loop_txs_7001-7181.jsonl +++ b/portal-loop/backup_portal_loop_txs_7001-8000.jsonl @@ -179,3 +179,822 @@ {"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"","files":[{"name":"main.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\ttutorials \"gno.land/r/gnome/tutorials/v1rc1\"\n\t// \"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Tutorials\",\n\t\t\"Proposal for displaying tutorials within a new Gno.me Space data section.\",\n\t\t// \"gno.land/r/leon/hof\",\n\t\t// \"hof\",\n\t\t// \"Realms Hall of Fame\",\n\t\t// hof.NewDatasource(),\n\t\t\"gno.land/r/gnome/tutorials/v1rc1\",\n\t\t\"tutorials\",\n\t\t\"Tutorials\",\n\t\ttutorials.Datasource{},\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"15000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeySecp256k1","value":"AvC68IPWD/o8iYM+et/K6YpBp4+m0hF3mLXIdFZnWH1Y"},"signature":"auG5LLEBYHZHxgPAewtR+68ESrZSB4fMXgT7ImJvNiMLeVh6+BYnCIWn8kNv/4JTyXyBOhj/GsFQzoZQqVWaJg=="}],"memo":""},"metadata":{"timestamp":"1734112371"}} {"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"","files":[{"name":"main.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\ttutorials \"gno.land/r/gnome/tutorials/v1rc1\"\n\t// \"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Tutorials\",\n\t\t\"Proposal for displaying tutorials within a new Gno.me Space data section.\",\n\t\t// \"gno.land/r/leon/hof\",\n\t\t// \"hof\",\n\t\t// \"Realms Hall of Fame\",\n\t\t// hof.NewDatasource(),\n\t\t\"gno.land/r/gnome/tutorials/v1rc1\",\n\t\t\"tutorials\",\n\t\t\"Tutorials\",\n\t\ttutorials.Datasource{},\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeySecp256k1","value":"AvC68IPWD/o8iYM+et/K6YpBp4+m0hF3mLXIdFZnWH1Y"},"signature":"yLpieFyKlK6ku6vykHo9H/W7MphbNWIF2YAH5M0B3CI2HYeY6z9t4D+nvPpRYIS4M4aWGubXyBtcjqxGOZpHeg=="}],"memo":""},"metadata":{"timestamp":"1734112386"}} {"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"","files":[{"name":"main_hof.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\t\"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Hall of Fame\",\n\t\t\"Proposal for displaying Hall of Fame within a new Gno.me Space data section.\",\n\t\t\"gno.land/r/leon/hof\",\n\t\t\"hof\",\n\t\t\"Realms Hall of Fame\",\n\t\thof.NewDatasource(),\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeySecp256k1","value":"AvC68IPWD/o8iYM+et/K6YpBp4+m0hF3mLXIdFZnWH1Y"},"signature":"blAgJAIj1JTjW+2ujwr5vLlyI7tahPq1vZkBhNo7NTYdFjKn1a+MGlRBC+RHBb8USCHfYG1dLkhmD55ocdW7dw=="}],"memo":""},"metadata":{"timestamp":"1734364017"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","to_address":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","amount":"20000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lU2JRw6Po39w7DbQW6WwuFLBR6lwztKAt9td/RgeUygqS7GzVN4vsH1/EuDtcUBoyEHdCUWC3NZoeVXLkkGaAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"100000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ClE9EKSFW0U5TiMVVKDjWNpGxO/D87ap7V6QVTTe5NgkZmTfwkLr6nKBmdqCEzJl5lkhpAfOWdSu+W+R0NUFBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g109pe3x98mze0amgzy6x9qjqgnwhc5n9sw7d483","to_address":"g1ffp69ss3tfskf628lezz0pcywqp2qx0ewzqz6k","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x+u06ytTV//KYOAa4tzx73DYLJPsSZpBbLRI3nc/0gdCxXHayxQ+4HFcbNJpMg5FPfB5i3toDox3nqboFZ6rBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cHBc0xhPEHksF9hdpTXz1gHDVfIzlCjrAhWVmRugQNKmH78TXBeocP5tNTb6UCi/ppX9lMQrd+0krmwU6JCnCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","to_address":"g14qjgdkphg95t49hnwdq0sytdjucptdmma7es9j","amount":"15000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LHncBlpliSDsQaJwe20uC5AUXV+7TX34ntHnStJ+9BUIHwrSnbsovkIpHTRrgGiQODX9yL+S1GnoTU6hJCFFDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","to_address":"g14qjgdkphg95t49hnwdq0sytdjucptdmma7es9j","amount":"220000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1LRqPXjfeUcxj1ofHZSlRawYyv8J6Vq7SvXQrmi3KRfOcsAR3uh/awxeJJVg51nonr4F35hVehhSgZAjPcn8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","to_address":"g1t4du52tfdfcnsrhlkfxhulr3r2a8a965zs07tx","amount":"7999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I1KC+wqidpfWckcpEC1rNxi27ro4EBhPqGxQb7fXepryEcexKMqaIFJZr9My9Z8WPIRN2nZUohhUEWl2YX5KCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"150000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"etpRdiBMfIKgcG1hLlI5c1TfrUeS6s6HJ2bR/xvvWDGaBR8njeJNWUmEm4fgG2vc1Uv15/kTdOkYHNYPMYqUCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","amount":"30000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FP6hsYtudjyYSpaiEBe7MPxrULfD/8BtGVf2N/j/Wiyr4BvN31Z4rF/vXG6Dv+9b2JWDs9/5tZ13iYFwHvZCDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1l9aypkr8xfvs82zeux486ddzec88ty69lue9de","amount":"100000ugnot"}],"fee":{"gas_wanted":"800000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"16QqWzh5M32ie1FYruThugQget6Jbap2TWBUugN8Hn0Bp5EwkjSyzbSX7M4quraK4OEHmPtMrLH2xHZJVPxgDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6","amount":"100ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8mLP8Mk+A7kkgcF1B9awbPlWyDQNg0rA9/eV4mMpd1vGgXDGcPq/eeItw/wGE/kAeoFHkrCS60GUpKJiHkTkCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6","amount":"100ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8mLP8Mk+A7kkgcF1B9awbPlWyDQNg0rA9/eV4mMpd1vGgXDGcPq/eeItw/wGE/kAeoFHkrCS60GUpKJiHkTkCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6","amount":"100ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8mLP8Mk+A7kkgcF1B9awbPlWyDQNg0rA9/eV4mMpd1vGgXDGcPq/eeItw/wGE/kAeoFHkrCS60GUpKJiHkTkCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"20000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"za2Nfdpnkg2ZeUWXGGg+M4thqbe6W/1G3wqkVjNurJehNUfWFZLpyFbcwpDhWjPWiAvVe7idi6W9ezFziEfXCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gcCjc5zXpoNtoZOvNZF3D8ncKqAJosF8aTskKqmttwYmoqHAFC64NVtd5ZFfjqB8UbNKJUirFEDKZT/1EksSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1r0nkTDHywUhjUAYNgFKNVU84nX1uvNPNHNo4GjHNIzK/T16QZEEdEwfTP3gg0JM9khkf8CTc9WXv84r6m1yDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"30000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u+PCRsoE9cR8QRwqiY1fUqvtSe04qSkEOzWpG0Inb6le/7Cfh9N4o+Xk6DE2W02HfNS5NhCWif6cJW/aata+AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g12vsl72vkygm306py6q6hjyqdsnt5ujeqh2n40p","to_address":"g1un6eduj3js40765mmakejyuez8x6t4sp44q99p","amount":"999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gdq6GSPsskbwBql+QshYFI+W3nKb3n8I53CmceBjqyxcxnVup8AOUiZJ5IcKpWwCvdDAmoUR2zREZRfeiYbsCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g12vx7dn3dqq89mz550zwunvg4qw6epq73d9csay","to_address":"g17m8hlvm3k0agngz8vw29etpcjd2yvcel6pvt3k","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BcmMSK81Yu5rJttQ4BJj5g69UtODutJAGJHuTNypMRHXHjG1kd9Q/TezEmtQveB5oEDluYrJQuxa7j1GxNPDDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"69999999ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x0OCogdD0fm8Oqa/bx9QOj5EJavXFMv73nsOZ+n8GTQ1qAVhQ+zhSbMN4CiLKzfTQJaYx6jXd7Zj7cZw9q6YCA=="}],"memo":""},"metadata":{"timestamp":"1732649656"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XWhg4Nb9J0xMOWZwYF0hrpxA7Qzm1oI4WuhlyEq+rHsaFQOKikXaHSA8FPr1F+1rHmZ3OzDzY1MCSzxRNJjqAQ=="}],"memo":"Transaction Memo"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XWhg4Nb9J0xMOWZwYF0hrpxA7Qzm1oI4WuhlyEq+rHsaFQOKikXaHSA8FPr1F+1rHmZ3OzDzY1MCSzxRNJjqAQ=="}],"memo":"Transaction Memo"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XWhg4Nb9J0xMOWZwYF0hrpxA7Qzm1oI4WuhlyEq+rHsaFQOKikXaHSA8FPr1F+1rHmZ3OzDzY1MCSzxRNJjqAQ=="}],"memo":"Transaction Memo"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1fawdfclcmfu5398kam4wkufdqe27snxrdzcepj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4/60E0RVv/WsxlXvo9bL6uLeBvH65rfOO6418VmuyvpzuVhuCignnbUu0+6fa7UhTztJU458A2fzeA5H6QUkBg=="}],"memo":""},"metadata":{"timestamp":"1731395466"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1fawdfclcmfu5398kam4wkufdqe27snxrdzcepj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4/60E0RVv/WsxlXvo9bL6uLeBvH65rfOO6418VmuyvpzuVhuCignnbUu0+6fa7UhTztJU458A2fzeA5H6QUkBg=="}],"memo":""},"metadata":{"timestamp":"1731503078"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1jlpdmsuja0n3h68vp7ze05gk929hxnw7jakhus","amount":"15000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"duevdrtyPBzE2DWh35aqx82UHz4mtpjvfErNiYjYzH8c8FiEymUn87V3H5JPWk25+lrm7Y8FAOdhOl5jQYdrDw=="}],"memo":""},"metadata":{"timestamp":"1730878843"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1n6af0uz6pznjfa2l8ttdzjppkefrhszz4ny862","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/O4sKlUI55/7ix3s3x9NbyL2sMM6H0ryx7cHQhZD6vGOsVOnVq70zQQYFtX82GH0Cc+JEMFIPxyWvCshSw+ADQ=="}],"memo":"Transaction Memo"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1n6af0uz6pznjfa2l8ttdzjppkefrhszz4ny862","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k3VXo6cSvIWJkEHkgsfgHnzihZJv8N2QZAnOunxAeNA/T4GUjrIreYwZyV12UTDnW21XvPDxN78htZXyl9JqBw=="}],"memo":"Transaction Memo"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1n6af0uz6pznjfa2l8ttdzjppkefrhszz4ny862","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+3NKju30t/AESKBxewOyf5q52MZNaqYzKjTG6zHerxJ4QiX7LexiIrfuPq9uJT+QifBJ9R8NqRiLyTKJ+ms0AQ=="}],"memo":"Transaction Memo"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","to_address":"g1sgmc0e6s6fp4dtytctfy03w6fc79nsmesj30rj","amount":"5141231ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7PXz3+SB/Jm4rn8r+ol8eGsMxXHMzj96J1NCLyKM+wlxYU9/An93T+XqN8qtQwM7YcHr8He1vNaP5200JIcjAw=="}],"memo":""},"metadata":{"timestamp":"1731395818"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13d7jc32adhc39erm5me38w5v7ej7lpvlnqjk73","to_address":"g1rdld2ay4c3r3eghk563sz6ne79mmplcl8zatuu","amount":"3000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O6y+IH28XVs7hGv3sQVhAmLsHYOAQJK/NTeejcMMNaJcidawLqr2ncq4XKBumbJU8wU/mEf9dTjk4dPmRBldCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13d7jc32adhc39erm5me38w5v7ej7lpvlnqjk73","to_address":"g1rdld2ay4c3r3eghk563sz6ne79mmplcl8zatuu","amount":"993000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MsD8ifjxbhidKdXzHEgDKuvbWEYuFasGphMUFqmCfqJdjhWxupI8/UnOqDgKaTI403a+uncwO62/EX//zN9NDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qyet1px2qS+gvPgxVB2YlePRAqby1WElC7OcPX5yu62HupAsCObbAl1r+/rxpnsL8FP58hZTPTFb6ZTHvSYqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TGjYVr9ZkYUSwbmEg8NY0x1+7av6jMuUkRvQ83pMnWtoqasabNIzd4odomSM0lgJi5Xu6sd2ZIXkydV+ayYlAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TGjYVr9ZkYUSwbmEg8NY0x1+7av6jMuUkRvQ83pMnWtoqasabNIzd4odomSM0lgJi5Xu6sd2ZIXkydV+ayYlAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TGjYVr9ZkYUSwbmEg8NY0x1+7av6jMuUkRvQ83pMnWtoqasabNIzd4odomSM0lgJi5Xu6sd2ZIXkydV+ayYlAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g17mcgfu6l805mx7hz2evs7pz7228r0c2e0vw6ug","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eM7pFWqubxDsmMMhPi1FEJ0r815NQsi8dc3WEo+uhucVai4swHobKXskdxVCjfuoRVmWUmfmb7GPYp4M0P82Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1a2p2dnm60y0v5u9gu5ffh4e3cuhfqrdsd80s05","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XhMosPv2RxU6oUoqU9KGIV8ZS6zTN3VHxWujh9QyCgyUYljm6dt12Fz7fVdaH1zYprgYdUXj2WTisXpYzk67CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XNMQP5eXZyfiEwGg8To+xNSxUgomOiZrqXtlhgVapi/4XEPM36VLijaX28tNYtIShiNAhYkLoNXREocGYCSsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XNMQP5eXZyfiEwGg8To+xNSxUgomOiZrqXtlhgVapi/4XEPM36VLijaX28tNYtIShiNAhYkLoNXREocGYCSsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XNMQP5eXZyfiEwGg8To+xNSxUgomOiZrqXtlhgVapi/4XEPM36VLijaX28tNYtIShiNAhYkLoNXREocGYCSsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XNMQP5eXZyfiEwGg8To+xNSxUgomOiZrqXtlhgVapi/4XEPM36VLijaX28tNYtIShiNAhYkLoNXREocGYCSsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xPsxf9BF6yMyHUrNltKxbnbdCF1PgbFExbvHEe3V13/7L9NJ7kJJd2mHRGNDsLjZl0LDTHgnUjWbH8KPuEiVDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"20000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p7o84R6fDWejnLDyBFJV8Zfn9uq0eHCk+8BDV81shfx2nyiLwVfqCLJC7O5yIb7yGrss+ekU+MW8iiGcTOgoCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"9999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G43k5RhjfE7v1NSAviKtY7avfpbQOWX59cQdPtsaDjWA3H4Tdb1k45sJqgSHIOqWys3vReTWk9qziPYQlQwJBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","to_address":"g1ercya5m86hqwmzzc97zaj3wz3ymnfdunjtxg4t","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ErqL9qYqINBkz3S5cgYc1C2PE/+WieOoIi6hE09UNUcjdkGduAcR0T0tk/2zRHgj8gTg+PzDeXTjfMWJSz6MCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAIzo9FhAMkZB7BlmN1uaortrCtin44j0p0saeXifZ1gQJGKKKWiErX6zb1N6NbxJ9mptHvt67xJYaF4TxRTAg=="}],"memo":""},"metadata":{"timestamp":"1730876147"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","to_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vLn7DpmnRtuS0t/7RJ5uOE12PWwqlMGtbviwPAZnnLFxoe73HuxIEhlsLndjIhwbZ9eahrBeZhegZPM674cBAg=="}],"memo":""},"metadata":{"timestamp":"1731494019"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","to_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","amount":"10000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B/dbE2Ty5dmJ1wnM1PjTKbFiPxz8V9TqgOf2hMIgKRbeRer0yewQOtIlkqpRRW2rnWl6V1ZK7B86jk7I6+kZAQ=="}],"memo":""},"metadata":{"timestamp":"1731493943"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","to_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","amount":"10000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B/dbE2Ty5dmJ1wnM1PjTKbFiPxz8V9TqgOf2hMIgKRbeRer0yewQOtIlkqpRRW2rnWl6V1ZK7B86jk7I6+kZAQ=="}],"memo":""},"metadata":{"timestamp":"1731493974"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","to_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","amount":"100ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7SXgLjHtnNoPJZZlNFB+UdS36vP83Ev0S5v7muVgxDTM8XmZolXjDgUQ+bvYtO8TyIQR5njpBydS84h8Ez19Bw=="}],"memo":""},"metadata":{"timestamp":"1731493958"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","to_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","amount":"100ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7SXgLjHtnNoPJZZlNFB+UdS36vP83Ev0S5v7muVgxDTM8XmZolXjDgUQ+bvYtO8TyIQR5njpBydS84h8Ez19Bw=="}],"memo":""},"metadata":{"timestamp":"1731493994"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","to_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","amount":"123ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lPWcfXD7mJDD1yLwBrt5Icbs6x9iLVOBp+9ycxMDhCXwt4Y+6OOsVwVbEP3+jKF5uJbn6g8SoF0R1AjtTuOGAA=="}],"memo":""},"metadata":{"timestamp":"1731494054"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g16lycnanaxyedev4zj0thkcg5y7sghhfdnua5rv","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"99999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"emeIP+PEBYks6vw/Lwl2CKIBK1LpuCQzD95Q1Hn8smjkA0NqUzTXMAxOW1tVoOwa7GvwCFZO2//TUkFP/HnCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g16m3gsr85dy546mnwlfwrzg5vghxl9kx3hp4yf6","to_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","amount":"9999999ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1YPlzYwc16XVBiS2TeWcUZ8/KUYTKG3zW3OPV0qsPpSmPJR9NklQvxUwXl5Tjx/A0/RT0EJFN/kmXtIYFXgjDg=="}],"memo":""},"metadata":{"timestamp":"1732440770"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","to_address":"g1vpe4yqlcaxtq5adn343j7e6ng9xqalx2mg57ws","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6eU8AlxHUZVwqJfCftnMvq4MtouUtpghbHrnw0+7zyVrYAi0rvxTZ5fEBEDNdst2gij1tj3cxTxDS9nHYLXgAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1735av673cfketeumpjnf4kglz5gudrv24ge2rk","to_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","amount":"5000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WAjySjTEtYUOTJtGdCp9AwDaVHoka5REVgZYIU7e91OpnBI+d6IoJOSarUmAnp1ZS3roo5hfqHIK1Y9mZa5VCA=="}],"memo":"7"},"metadata":{"timestamp":"1732440650"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g105la6cqmcrgp4ehzt2dhyy98wpwveyv84lx58t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1H544hyCThnIFqw+KMiwoMzSvf2ofl3hGhhfkdPiIkpFn1qCtn4LJ0pGSC4z4zeX7pOUg4O50UIt+n3dWht9Dw=="}],"memo":""},"metadata":{"timestamp":"1732440509"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g109pe3x98mze0amgzy6x9qjqgnwhc5n9sw7d483","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XMJlxE/uelLenZ3foYuDXuLDpMs9TjswlUEzGq1ATnAq43Svc9ZeDK6XoVTxogDLKN7dkfdawV4S8YVc/NkPBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ov9zdV2z21PvS4tavmPPuFH2McYM7FFWGZrHa6EXnsuqgJzAsDnq9aAopIEfQ26pcffr6TinqW8tPVcwfRoFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ov9zdV2z21PvS4tavmPPuFH2McYM7FFWGZrHa6EXnsuqgJzAsDnq9aAopIEfQ26pcffr6TinqW8tPVcwfRoFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g10ecp6wq0qg352u9a59usqer7a9ddhkt6esxlyk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ul2f2Rfn/RzsPxJ2KMdCQKgawIQxkU3vJtf6ubM2hcQe74tUO0/IXAx6aCIYjAG1Fz2dQUkS90wjHkWWlxgSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g10wwjh3vexpqm0ujurq3lr2l6ndzz7yfs7gs3v0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wmNfaKP6AV/ppyaeOs0LjAKk5xBtuyDTRm+owDf66OVPZOQ3eBo4NWVhDoI9VUb2tAowVCzBq98N+S6I+mBaAw=="}],"memo":""},"metadata":{"timestamp":"1732440735"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5NIaddNPA1NpBG+Ix3+q372W0+DMNuke7wxbgSKsbOTqcM2RL63nlXfHqIjKxAOTOpLLgK/nESmDpE9Ao8oQDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g12chzmwxw8sezcxe9h2csp0tck76r4ptwdlyyqk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G+kprHlqWtp+PDpvoWs4Hlx/rp1EAHmXYmaHK8LQPd9oLGh4Hn1jA7wsGoWl3oLLO/k1mE7R6b7EeUQOmm9CDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OiouvSFGZCc8uY7tBpjlpGHZ4l/JRcLKc/sQfaQsbPc18mooJR3QUXpCR+ifCbc7sn7NsTicwmDkGqpSEh6cAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OiouvSFGZCc8uY7tBpjlpGHZ4l/JRcLKc/sQfaQsbPc18mooJR3QUXpCR+ifCbc7sn7NsTicwmDkGqpSEh6cAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g12g569s05c293zu2kxk0z426yylxmmthx8hcudd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MV8ljjdE5iPCMlsPNiITptmR8jKh4IcFUGA7aWIelImJxpRCFaL+ODcQeO0yWUcbIckMCNywsq1CjKJuCAULBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g12rlv38gkdpl43g5u9gwm5t59agdr4w5l527h9g","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lNc2ofRqUA1s/IAg2XaHuZvBBbjHCeMkM2tU6n0S596Ubw/QDj3SIMGoJIR0sp2BraZ/c4PP/P+wLo2a+OXfBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g12vx7dn3dqq89mz550zwunvg4qw6epq73d9csay","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6XrBH9beluRnb+oOEWZXO2egq62b7W/JnITD7DJOp4WCJg3NuqzPKFFIqA9SB2q6UaCiC6vhvE0WN4QeAwq8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rdvyaUW3e8JcjJfPE8toM4C40eM842y7EansS5l3BcHD23h+hcZkPcqwcEsbxPJmOsqEp2Pfz3kh6GYKEOraCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rdvyaUW3e8JcjJfPE8toM4C40eM842y7EansS5l3BcHD23h+hcZkPcqwcEsbxPJmOsqEp2Pfz3kh6GYKEOraCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zy0ytOAYKWsGu1K/goWCHx8/RbOaEv/qvNAsoMDW//0tkKNymV9mzGBjWhIbpzCPWpndpUYbsxxsQhhPnR2ADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zy0ytOAYKWsGu1K/goWCHx8/RbOaEv/qvNAsoMDW//0tkKNymV9mzGBjWhIbpzCPWpndpUYbsxxsQhhPnR2ADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zy0ytOAYKWsGu1K/goWCHx8/RbOaEv/qvNAsoMDW//0tkKNymV9mzGBjWhIbpzCPWpndpUYbsxxsQhhPnR2ADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zy0ytOAYKWsGu1K/goWCHx8/RbOaEv/qvNAsoMDW//0tkKNymV9mzGBjWhIbpzCPWpndpUYbsxxsQhhPnR2ADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SI0uB24shh9/Cufk63FE7YqjGQ3WdViEENMVIkpdoH8i2ZXWyChI/KdiBa38mhXuptqc46rTpmiAMjhQumDTCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SI0uB24shh9/Cufk63FE7YqjGQ3WdViEENMVIkpdoH8i2ZXWyChI/KdiBa38mhXuptqc46rTpmiAMjhQumDTCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g147ah9520z0r6jh9mjr6c75rv6l8aypzvcd3f7d","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ufmBn4VYDKabmBCKJlWPYCCgGy580U339d7YaGpovcZ2b85uEg/Nv64k4CH/fLGSioQSXsJX/rlhzNm4KsMLDg=="}],"memo":""},"metadata":{"timestamp":"1732274253"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g148vmqxzgp4yc996pasredy3v9sw8sxzsgem0qv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q3swATXmfLImWOOGUjMH+3632aWW5mlVJk8+ddRWrBMLorntfO8C3BhbRTQq9yc/vdc1HZJoG40a4WfLHOHdBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g14n0zsnsk054uxwvnwmmqyrq6e87ynk5vq98qqp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y+RtcM4aM1GDTzPub93aHCJ3XpacpaYBbSSYf0ke+IAFxnXwqBunZ67JDvEaP4Gu/zM9rb1WTCV/v2sDBu1QBw=="}],"memo":""},"metadata":{"timestamp":"1734451650"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g14supzhx0v5sza947sdh4x74wnws9xvcfwdecef","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uw453PCRJ69no5RH9IDaA6d0BeeLH1kG9HQVp/G3etxspDQSE2XSbdoDWs53uQbr2PqVkkxW+N0F7fxSbBbcDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1500j0rrpst0f7520et9tdy656edej3d3pjkluw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PsCjOya07gr42PgNdoZYbXAJW/yRk7MiuyPmXawjZ1ledlR8ruc+XTjqX93NVPw+xsI99y/eZtp6vUUNXx8RBQ=="}],"memo":""},"metadata":{"timestamp":"1732440519"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g15m526qur3ggut82vk0q5za6jzg4eaaclgfh2mx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pUy6TcpjYNjLtokMDgSL2KKBdoAkHHCZfzGcuRRaaI2ivRpN4pAvh3vUiJ4FjMOmchjhc8P444udLx/v5YXwDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g15ruzptpql4dpuyzej0wkt5rq6r26kw4nxu9fwd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/MfKDKgDvfV81stJK4x1+CAeywNcYYcY6yybfyH/nF8bVkUXuRzpajPUFuQEb1Xo3vgAJQYw8C7O3mNWqTpcBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g15x46up6w3v9ey7wkltf05jt20pa6g39kkjjx8a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6iWC9xfWjkNaAjD3PRA3QzwMbComDgGMWztaftYTD0hkWMErtd9hi+FjWJM69uO8alRI7pKZLBZSDG4mpRBtBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UeDasj2VPeQgNiRLmYo8v8RdvGldr61xxY6KkWIE437NGo9DaFNwa57hc/gtD7Hyu58jNQty4ENuHkiZvF/WAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g163wd4ms75y3y7fqy40jxx39tslge9fcnt65nu8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IXdmpCxIXnOWtJVA3DGlTsgnITcA6VkhqGyRTxLPD378go2B9nYgQYYDw5WjOa+5QLJHZw95JlkkM7dSShP1Cw=="}],"memo":""},"metadata":{"timestamp":"1730860629"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g168ejjw5f9rmyaxp947xjy0y07508n2d5vzlwf4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/KBpI+F+tPJ/3TTbOsFiJmHr0uJi7XA/+K7k6BUohHtjldMHoIQx+5WUlfOE2tw3VeFlGSXtSpQZjafzOsxzCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O3KjCtYviUIdU0H9NYd9fds4/2QWitqb2vPR8n5e/sUBReM6honygOCKiyXJgcn57KrI4k1aTaKjtb8aTjy3Dg=="}],"memo":""},"metadata":{"timestamp":"1732274269"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3ybZFSwnxy64joFMEUVcOncTXJoRfkGYE6OO/Mxh4F3UyUITA+MXRxe0y4P3agkLwj+rKrX0zk82YZCur3wNDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g16m3gsr85dy546mnwlfwrzg5vghxl9kx3hp4yf6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W+60/nZOscDeOBj8aYyrwBSHVjT3CoI1V/cKutdm1TFFAaGPv/ezg4uOxjtq2SA7fkdYHm8qnaYp+TAkAU72CQ=="}],"memo":""},"metadata":{"timestamp":"1732440760"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g16qawu39j3axarec4fylawapp2uvtuxc78yhc33","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+fZG33zLbKHi/xR8PPMTmT0UWlj6kyojo62AIQRTXj+oBU3QDKQJeyLdYzHx7MMhvSI+OmYST+0LYMGr6m04Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yxl0E5xmUW2hqvDqRFMs1f9oSEHU74oO2eKRtRw/A+8LrlDd1hwbdppjoswWQng8lIm1H6KDsu83cx8wAc2NDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yxl0E5xmUW2hqvDqRFMs1f9oSEHU74oO2eKRtRw/A+8LrlDd1hwbdppjoswWQng8lIm1H6KDsu83cx8wAc2NDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1735av673cfketeumpjnf4kglz5gudrv24ge2rk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IXEPa4lnDLvKw9Yv5UtcGuvtEmSopLgcssQS+gNX0Kf9251mAV8V09UP/MdCnlGQPuinnZeWfl+U+w8xd326Ag=="}],"memo":""},"metadata":{"timestamp":"1732440544"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k2Q1RwUkq8iS10OYqz0s5fD/ATfekUj0nNWXPc2+mDTFYfGu3EWixNF32A0bwlRXs08J8yx36vnyUb9CyeAjAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k2Q1RwUkq8iS10OYqz0s5fD/ATfekUj0nNWXPc2+mDTFYfGu3EWixNF32A0bwlRXs08J8yx36vnyUb9CyeAjAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m63Q8ZTwWMbqAlLGnW5srY87Os38VpKzugNYqOd3Li4OtCrVzt/KLKFZKoOc3nic9Acn4EpPt4Ok3ZHIxzORCg=="}],"memo":""},"metadata":{"timestamp":"1734444882"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g17ea2ym0n66su38mqgkhhepm0gejsmfqr9xexps","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YSXv93iAg53MY9/6laLwayIyQMpC5z24yOkT5dys3ndJ26Dj7PMBejkSt8a1OcHnkulxHb96RzZ1W6xVMofVCw=="}],"memo":""},"metadata":{"timestamp":"1732440534"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g188fkzwf9l89mmr7989dudqs5hrgeyt9a56h4ry","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q2SZBy3zNa22K0g+IYLqg69hJIN6I+41ir79EHaASG6K7Zw9Ezrrsn4wAiSprNZkPv6Z+0fr3NjI8s4p1gZ8Dw=="}],"memo":""},"metadata":{"timestamp":"1732440745"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g18amm3fc00t43dcxsys6udug0czyvqt9e7p23rd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"43GOSXRJyb7co0Yb51+xAobFR/0gYjNUESia47gUq8SI0hkeNUkru3wtdGz51qDbzCACo47pAika1vMSUB4WAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g18lj5pgadp3y98wawweavle2r0677w9z25zmnm0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"16TvHIXvTEGfvQHD4nQVSZzO5/T6kPdf1tBIkZK4ObvtdMf4g0D3k1G73PkStEGHWNMrJYOi7KviI1oiV0O+BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g18rxaq6fd9k2fe0tknfp2fg5wna8uv4wwd3a2nz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q2ererP89+ZGrTQwre68V2NDT1aFFg8MgR+IBLEHNOa8yJu18b7tTby1TLFehBNOPhURDj3PvaBNwkWrdGu7Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g18vaqtt5jrdhnsz7f4wl27j9z9txpaflsc0l43y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nLRIBnGUwLAbKt+fbWEXxJmFpRVMnm/AQmvc1rjt1INKeEk+5HKQl3S7IZlMCRV2be9ORh8e0r1jiIYnkQTIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g19etegna0phd2wu64t9atxhm0kpgx8x2z3g4uv5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W9KGLI72a0DUCm5XdyQShg9cXFIgquqBxY1HRj/g1NZCC5l9tLReK30qQN0jHTLvinaR14Km1AJTqjhuXp8yCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g19vhq0mzr8m99vap6g488ftddkkzf4rt8j9wg0j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2HefMIG8aK0ov7tCbM7Ga99upZ7kNlRejh+sZK6iCfm/UUbeopu5jxEiPtTyDJm1R+Qs0RX0LrDdw07jrfXdCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMBJPv98nIyFE1wZRETbM5/Oq5hyNhuFzgqmwOPjuwY2wWvi5gx2kEEFxZDm7l17kcybwldJiyyVADOiUECVAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1apl3lufufp4pemflz45ltlwmecsh50xjpxl7yw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cSta0VSn2FY7fh2AkdQNOAafK6j8OgIw4/jBR5y2jtJHFIAvrrq3qkWtd8fVjhX7kxaaUDiJ2pNlEKtsjEl5DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1apl4u79zhexrxcf4h48y5qlyjncskdlrxtz6vg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U6QbgpNQtsTP7txk6nd1XrW9oeOLRHrzjV3J21brGDTQGVrhMa/3WMyr+bEo+NW1Y5w7sbuLL5Z4kC9x/nK9Ag=="}],"memo":""},"metadata":{"timestamp":"1732000379"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1c2e8d9pehttcge60zkwr5vfd5sxy8ss94mt7s0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eI8/UJgXOCRZ3j5kAqYjicOx1saWrHM2qOVxm0qV5lxcJmCIL/4Y7zQPcgdL2fl0WIvJR/uHRM6zEypvuOOmAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1c3xqxpd9t3d4ket365drqxh05dhagn9fv3renw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WgzBvUNASVy6TDqVS8RyLmUnI3ABN3D3YK7qq15KHKFtrIwrSHErsOudUYw9gNLtHXw4qBFJf9i73K44y+6bCg=="}],"memo":""},"metadata":{"timestamp":"1732440730"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1c6ht9nrtqtfcx08mhhsucua63gevakkyzpjf9u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZX2+J3fyJKFGiLQoU0yLhtByNjkNaOmtg0jjj2lPtD7KBRh60G7dQ9YP5YJJ/wJK74AhOLEwQQSUay/2VRmqCQ=="}],"memo":""},"metadata":{"timestamp":"1732440499"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1c3+pMwXLpvcEoLznAICFQvGbnL+dpz6vi/b+FY3CTibmD3bySfWBb5ulylRE1FWLSugK4v77U7LHZzFXZGKBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wY+8Oijj7YyrwXB/yM83YB39qe7qzrkbnxTtzR3uJScqOTNvu387aKeZtjc7WjOtatuZZ6Z7YC0cvk3jCGbFCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wY+8Oijj7YyrwXB/yM83YB39qe7qzrkbnxTtzR3uJScqOTNvu387aKeZtjc7WjOtatuZZ6Z7YC0cvk3jCGbFCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wY+8Oijj7YyrwXB/yM83YB39qe7qzrkbnxTtzR3uJScqOTNvu387aKeZtjc7WjOtatuZZ6Z7YC0cvk3jCGbFCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1d0ysm70pc2pl5fppz36g9jzqm3360kr2w707nq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YN5FW24HIRt6zP6nQGsSWLjOnwi5ngqN/RSgLAtUh0z12FIAslzxq5iHDD9xumY6MTJUODDEYVezULHOlA5+Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1d559xluhls2m9eh3emsy4fvz6pds5egezuxzej","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0US/aw1Pm3R4kydcK9pMRtMLoCsAu8gSdBRH3KBE/ATr4TpJLLoeNZ4ImKaxOj4i4x4Lo3UMcPPHwmq0OYeKAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1d598tyfatprdstalqutk62cnzpm3thvyy9mypg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"REiN3c3aICYh1kwW4D4JgHh5wyocgLH2rRYSV7IfIOXH178j8lc4tVu5HQzM2YbW0ngHipxlx11foV9BrIAkAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l4aSFa2OLnASGA73TnaVkMNMYvBKIVxo2BtWmNKV6UWimUosOvdL9WTB2jq44szk3adO4fQgNWQxmweyJXdoDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1dklxegxmptd62vkdzfgx9pxwxflsmv3l7xvd0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4KfqnWSH+ufmRVxl9tWV0UsMlBWHQW5DunnXDXnztEvJKMVJrOtMLH5QKknrtIkykYEez1THSPxHLk3j0VHOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ycts+JYMHVQSq4TqRIgMG5y+cQT2DLXYRS1XeIoIRvP+NKcTSet/tFPo2ikpJlZM5xZICoXFPisyrjoFMvd8CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LPEWVfucNKmBg/KHOTYyGeH5TnSS6ft50QbCzBfCxYfMZpB5iqG32cvRoI4ECvCeobiBRjeobZdSLHcZ3Em7AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1dx6gadxk7zq0cxrrrfcx8s9823nwtvmm9z0xg5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KxR7sVkQOicUlaGaX+JyJZuUFlZcCzcy9/+xo3FXks2IPT/6R15mMF+P2npLkyVNaztTdsLqmv2nrWz+j+xLAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1e4v9rdudhatvzg07whpl7e5cxckfs9dxkwwszf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wIA70IISdst1zpowN5EwrV4EVydnIV3IgpFXuuLCMVHeDkXbhp1DF8g6RS2RYj7M7Tt8ak451xjEueplTQSQAg=="}],"memo":""},"metadata":{"timestamp":"1732440750"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ehvfqfjs95un7ffny38ngru4kqwwqdlykc2gxx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8VfeDqLjenwnFXG7DaP4l/Ee8xWutpmm5Ivq3wN1T+ni7p7C9yLY5inqKWa0xUKhO6TaEZ8b2sl3s0J0qOkfBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Foib+UewZe/8vu95/pMOLBhFo38daGxV0SM3X/XLIqnT7Dj9ubA5KJE8dfO5es9xAO/bVOSPe1sUVdNg4UmxBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Foib+UewZe/8vu95/pMOLBhFo38daGxV0SM3X/XLIqnT7Dj9ubA5KJE8dfO5es9xAO/bVOSPe1sUVdNg4UmxBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1enky04sfc4nush29g4ht97x45slz8h3t2peaqc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h6hSkYmyYybtD8xE6vY9ap95i/RAhxovsq+lU6dfoH48aqz/d00jCtnyBNmn8TKETF7x5kk/mU1FJr9tiP5QBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ercya5m86hqwmzzc97zaj3wz3ymnfdunjtxg4t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"THcpDUOduJgmGCwssN0KS+lQ2l4QcNgeIxuBIGEOXGehwpfzmzNyTSzjKNFBoDVeG4FUnjoY7G+AwYzxRaHpDQ=="}],"memo":""},"metadata":{"timestamp":"1734434529"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1f9cz0xezps2mxcevdhc8nxcrzgnuyvzy6dmwhd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hPIWd6q7T6jc/ei1vbd2ZZFn46TzVEVIkkrEWLiMtnQHaX6WipQs3oK9WjBXCGpYkiueQ0dnnUgoNdc/6+U1Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1funduumqq78th3kxktewc32qrwljzd34dqs476","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hfS4mElY9a7TCE24ky3xLg3pYGIeTa1eUts2ajbGeTc/qwQUVLfLgUCzzCppoIxere6gbR3QoQeWRWMKKYQPBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1gagf00f5sesevl35f75zpe8ehz55z8a40ds988","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5W55BkvPjXJMf+RE1e9xuBrGNyZtRYU5m0XfGm6VCdYXRZtkW6cIO/nKA07t7k515uCwBzaM4i+HbWcNoqaDAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1gdgft676z3egdk4r3x09hure94yywrutu5awuz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dNJJPmNsZpqyZAqzceeApNDW0l3QEU3rDGQ9PLmDKeLhoUvkj2jjsUjz/+BQjoaKXJcbxvRiAsFwVPTssYuHAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1gfnvafaewcrqzhl9j02wthsg4t7fu37pu6mpat","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nAqeMEZsk+ND5/0tYMAd228nx59z9eW9wQDiwIHRzMDy3+1Cx3qbgOQ7Oyss8EgRE/0NMjLu6x1NlWBgaNGJAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1gqnhlh0t8m4td5nuv5rwh9zs6t3zk9lz7degft","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bgQqk73zyQDfQSW13xrHMbqjicKXZ3tuCmjl+c0tKRSo/ZtjhCZ/uWOxY40DClzaanSOP4L2926VUWQ5To1oCw=="}],"memo":""},"metadata":{"timestamp":"1732440610"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1grm7t0femvf0cwhy2wzcg9gu2w5adgzwerwk7s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o9yRPp58ZvBJNoMV1gPJKMhExOno6qOaJOvvDuatxJRjsSGf2VjggZ+CAu5va52WIx1pwOy/bAF5wykdlakhCQ=="}],"memo":""},"metadata":{"timestamp":"1732440670"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1guq6c9u0tyty83rk008p56hra0srn0lynkm2ep","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"reXvwzuPMQjIPsxjoqZtqQ9apdgIVFaV2wCs4l2U81UpGaeWMmyxommytoS6IK3m33iS1fxpo6bDafBqc7ZbBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1hftrqpx3shf0um265rc0aq2nvg5t9z76nx20r6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6FMT5DykUcU8Pl8JLkinlpoxlIl5+mRaQL5xxBJpZqLDsIUMPS+UmU9mePLreQpM0lSTSV0eGraYN8haxQ0XBA=="}],"memo":""},"metadata":{"timestamp":"1732440580"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1hqw5gnjkuhy9lwckq5vjv8y4xa8d7j4anlw6g0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xRhdFy0UVJSVFjEhZGveJsEjRzXoHlluJ6bCFiR+r1QFEXHgbkl/FnGt/n8bb62SA3LD+irLvfv4/a+ZkjiBAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1htwz4c09ktf0e8tqqn2yrtmtshfv7234y7n52r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M5r4F8HqnX7Yc1ONm5+en3HPin0ogFQHFW6L0DeMkHrbl+lwd10CIaVTUBP1ZJkZ3o8ji2kCOCYS6ZRnnsorBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1huvceydax4w0s2e3wzwtjf6gehca4w4ypug88s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AAWtrFW3bwrxPjL7mwo4g7jaZvVfayOoUpTBxXmUA6hpI7naU9mpdTqlm09PkI85ehkf+PrQnCQX9TJrkh7JBg=="}],"memo":""},"metadata":{"timestamp":"1732440590"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2mTMcH2qmv/dFSNvhrzIhkjs+mIt/IOtyiBEal7/dtFWG7dQ0ETktKsAsEGWqtLpRrAqlioBRD6MeBG6O0lvBA=="}],"memo":""},"metadata":{"timestamp":"1734426908"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t8bkiMvaoMGFA+DVI3EcLEjiSefF8UCvI/qlAYY1w0lntceL/eHUpHpBLr68UToqVuEQyDwz8ufr7O8lDyGYDA=="}],"memo":""},"metadata":{"timestamp":"1734450651"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t8bkiMvaoMGFA+DVI3EcLEjiSefF8UCvI/qlAYY1w0lntceL/eHUpHpBLr68UToqVuEQyDwz8ufr7O8lDyGYDA=="}],"memo":""},"metadata":{"timestamp":"1734620332"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1hz3m24jlt54ky398rck3u299ac6p54k7mtayzq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/tKOv4gaCkdFc6v7rbVllXvjSaBO09TeCZdOBTphge8lkN98nLCqga/qgZ2heTbaOBb80B1UMwUyUPRZnJolCQ=="}],"memo":""},"metadata":{"timestamp":"1732440680"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CmrbUzTn9Ztr4a2SdZUJY5TggD2djO8hR/a9eA6xropPrHWugHGm5cki4JJOoEOrNv/U+B5dM8HV7icehhBYDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1jltdynq9exwhv6ku2vx70a0l6msd7xcn7qhx5h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jq6214dZYPBF2GUi52n6wM4+JP7Fbf5Bd7McaFXKLLELqLXuuYAcroI5ExG2r6LX2LzM3drj6IMzVXIuMxvzBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1jvsnur7haahze6n6z3gzfdzu5yelr9rj3dajs7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OQv9sg1liSXqWjiqoP9Q4A9u65nQipkAGzq3P8nsYxjwKLhoCT68b7eXlHgdb+0Gck6hwuPTyakZ4i9jQu1/Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UgIOoJt2wgcJYKlv96ZGsW0hvcvicpj6nXu17/X7dI/c7uzNeN7OmKgn7+q9e4HitJ/E0m5gelwoqZmhvwoMAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UgIOoJt2wgcJYKlv96ZGsW0hvcvicpj6nXu17/X7dI/c7uzNeN7OmKgn7+q9e4HitJ/E0m5gelwoqZmhvwoMAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Y9yHfr9m8ITQ0Rgh4IaDgAYnUUrnFWQcBbIzXoF2rfjEXu/U4pa993moedtcPJJ8r/mVejzfEjkXmJSAKEXeCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v144ZrnMXClHPp70m/DUTpHtkFXDobg2Ch+ZD6hvKVEZy67XS58dZPneRzOAnyw/SI5xyM+9yMKan4HNQ8AFDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1kgsrnpjurv6a5uw55s08a6ujcxx3sekn59nfd6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E6//q93vkIc0FDgBEGWKzigeyQcLIVIKEMKM7gaWsE3Loif9Qs4zphXCzn62784NO8lcMOaKuneCvYgKj/BlAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1khhv3qngmspp3zrnpf47hh9fe0ns566qcz6a38","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NvGyZUJ/Zd9gY6Y6BP2YRNuHiVaFLIqucDVlE7m5ISZmVHxwy5Yzi3LZpyMrvxvPHfXwQ6s4Bfo00/1zGAjkAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"beYeILHe7wTp/II6JE7fRVZ8A7fv3xRVqP9B7zw8y64HyfYLF0dNn21WezlbxxpHQMfmdhXjZx9XdFOEVwfRCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1kpptltmd8jmwq5et5udh3ld8qq4ksqm9kj0vs4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I0hT7XXqqESWdpGCRfnq5Kx7U0LIB9LQIOJeNYkaGn+lZlzzU9l2gyT0hluYG0wWwHUbbgb0mO55z3i67Qm4Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1kpptltmd8jmwq5et5udh3ld8qq4ksqm9kj0vs4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I0hT7XXqqESWdpGCRfnq5Kx7U0LIB9LQIOJeNYkaGn+lZlzzU9l2gyT0hluYG0wWwHUbbgb0mO55z3i67Qm4Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1kr02wha2spd8dfhxaftjkspql806rj3ga4jg9z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5EYXR6Oxb/BQOiI22moLqe8kVnjKk6BUYdVT2AOwxsCXEDOJLFPV/IUWX1jjYXOovCpbh565MZWPmCwPJ1kQBw=="}],"memo":""},"metadata":{"timestamp":"1732440755"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1lhxvmjz6xzd0vwnftpz4xr4u4lg76ngux8wux9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O+1IGRTaf+SAEr4gGTmWRBlN1HjAVTubvrndMt8fSTuldQxWfXNFQIffUP+rXIENdV5YPGnsvIwmkfRwgmlhBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vUGl8CCpjOslgYRUb6ZBQ6puqKmfgDSYJ63fAcGtJoO7abNWSUI43aOtOzpNphjkv2/VIrHh4/clfPl34UlOAQ=="}],"memo":""},"metadata":{"timestamp":"1731252346"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vUGl8CCpjOslgYRUb6ZBQ6puqKmfgDSYJ63fAcGtJoO7abNWSUI43aOtOzpNphjkv2/VIrHh4/clfPl34UlOAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1lp8g5p78u9dg6ww4c5e5hdeuw8q9ga056f0adv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0zbSqXvdQLGgJzGsMKC7a44agfZnVgJA8wxooVQ0jpQdtZ/s3UAI9iL8IKknounibXkXWtMcVDxnGr/8ZrLbCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ar8Ut5UO4OaVHuffKpXW+o2ZviYEC9DmF2ITQ3KKJbhPYDiMFJIJ97wFnLj/XEJIkVS7WFFrimkobDEbEoKBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1m77k7qgxlk37nfhclv62revp58fukx2fkhsp3x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OD/JCr9uCC1xbg6jkYR3Z8L9G6LjXQXe+VFiciA7uxZKE2gOxBzdh4pXNQQ9Q007Pml4NqLCXV/BLEVI2jT+Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EVIBa+dgiFgsqGuLoBXWEHZzFINRcETQf8m4z2+CIWsyD5a4oyDmnSN/0HQkJg7VdgYktfSTBqlQQPjkB61sBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EVIBa+dgiFgsqGuLoBXWEHZzFINRcETQf8m4z2+CIWsyD5a4oyDmnSN/0HQkJg7VdgYktfSTBqlQQPjkB61sBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1n5hjafzvxtqpf8qtcnaftj8g52hntcr23nxfg0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"14AgM14ayEayBpo/nYCOOOe44Br8lQsnYxPDJlZy3VvPYhIY8drd7DGdQIDrawRTZ1LfewclZ28mIbpmBRaiDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1n93replyp2pl37qfzkh854eps2z0ar7t0rzzyj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Snf6Q/8RmSdc6KD86uNTVD1S+yPxstH6f8jvJGmt1ggyfU/LgIz7vRHKgDfg04NJ083S+lMaGBhnLFgVMxR3Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ndzpczjr2rzrchtkm3tsut2xjfn50mlgax2v77","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IBCKkBz/BnciyHY1IMMGrtFRTYxCsYMaIBAEF/WLIis/iH7/EhH9auKirQt2DGqL4vaBdrfWQqscUM5VrfVEBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1nn2le065kak2ke8xnarcv4fhd3nvcyq5jzxy5x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HibWIlRiAANrEAUuadH3KXOam5e7TnqEgDBE0j15nYEwbFz2amHMsabvvyDGuxQ00Y55Xu27FfL23GGyPmZPBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1pf6yuy6h9lxqu2rzp7c9mhqntps6zvtf2s905n","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JbSiNC4QjXri1NvSNCib5q/oWr9szCNVNy9PbXnRJOQkYbeezBooAKhCZSLIUDPcHaAhT2dbjbLK3nqKjwkhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rLbx+oKoLu8HmWXcuz4rmQ2r4mLA6X5fRohUEu7A3FYrPof3IZ9IuQNAjEBkRzV4VURI+1hNRhViaDE63weQAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1pvx5f7gt8x5z8tnfzlr4avf944prq83qf42qdv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7mnjWgdsQhuLtoR8G2ixqz+RIzNVCsFfOCSUQUlaex8SyNmKn9xjrXQcNxSrwcRdyVOzNTZdS68S+4i0tVMOBA=="}],"memo":""},"metadata":{"timestamp":"1732440570"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1qhj7wagl05wcttvv5e5azqwv8m606zqrrkkhdj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AvhFB8Px5DvNgEz6lTK9YEuPgDV58Msf/itF/dIm/gD5PK+LyWucsQDMhypZEUyXLSODh4yTUVG25W5wROkQDg=="}],"memo":""},"metadata":{"timestamp":"1732440560"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ULS/fw18zfrfMi5DALsjf6vLV1zbABJLHV2GYnKxxy15+8sEmVGHLGAaA+HImqEbX0qyR/V1sIj/indH5thgDg=="}],"memo":""},"metadata":{"timestamp":"1734385341"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vgSgDEKxZaSwiRJ4miQ+DUL1i8vPu0VKHmTxFAvqlQIqx93aFzYZCbrgdCv99hnKMGKhymEgHB07r/5CBC8jCg=="}],"memo":""},"metadata":{"timestamp":"1734563331"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1qy6s506jde9xqlmw2nleh5qta3lcftt9759g0c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gJ6WFP8A/dJmVB/ptL92qLaSbfmS0/7Xg+gjK+MoJRn8fJ5LPAK8jM5wITeIkuchktR6ZRqGy0OvQ8BSO5oxDQ=="}],"memo":""},"metadata":{"timestamp":"1732440740"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1rdld2ay4c3r3eghk563sz6ne79mmplcl8zatuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ckxjv+VMAA6NkHUvMEbwIR1oEPbbXuFTAklf96OjWNiHkBR4tKXnoyn9bFWfawEjboi4EWjw4IX4iaFbkScOAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1rhanz3z0jr38a0zg448m6qa7wm349fcxurdckn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X9fqt44P3HxKxOYBozHThvQChY7qUaAvMnz/n7hxa8T4rUPu7POuzPWTbwOQffTEthn+1B7Jk6043rSs7Cb8Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uLDgRKEQr9i2qvZOvdMdrGv+b2EP8is+BU0z8K90+3bgGz7j7REVpA46D8V26hrBcw4xLbID/c9QF1KGeDMNAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1rqwcjd8fp3u49q8nj422rcx928vtjqd82wcxwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xaGiHxnfxz8q9vVmqU+TFbpUCbQ8FG7WH0FmmPaLqfcrXBM8PlDadJ7s/2kNFAYwdkVQNd70bxJ3WYOmKoLHAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1rwc2hsm2m33aql5rfe73r9ekdmhhm4pzcmp5jv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EkFr6fUqflAC57IO5xuiDhuZ3KwWalj70aHkRl0jTmu8ieHq/vdQwY5uIRVNAE3vdQdfJSQ2hRwaAgB5+l6GBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hk9z8J+iIZbk+G/DwgYHEUOHFIfebYmummwJsyGxoIgVEEfzLOjjiZyMWNMpOIQUl4D1yjRl4Tfq0r9/qdWCBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"52B6ARrnyuRHKgFakNzt+D9OyTLMA4O4aiQ3JlXEVD+fzDncNj26ayUJaqdOQhAuYGkeDPTDq6AhDLmUoEsMAw=="}],"memo":""},"metadata":{"timestamp":"1734745256"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jkbpxo/oZQRUEM7YSdQotL3uuDF4EgRyWBfi6sVfxcyyl43VW775Asm0iFMqo47sdVpWyU7ySMBQv7V/jXCcBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1tltyhyh6enfjwfq8t7e0a2dr2rf35mdzmwl90l","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ouZEmvl99C3uG4rvjdGS0Ls+iSadw+FoWyHpQGiy8XDVH+HbAf9Bvd3lPUf2D/6KMX7e5eEdy0BOhn1zLrnjDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1tzksddsn8eculwh43ke7zh2vp4hlu4sqhudeut","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9g8GY6Xkx/i15q1oJurAHwwnGC1ozcEjowbz/hQyO73NMUoGX6iQlB/TK2fY7GzdssdYQGChHdFEIh8KiuGvBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1u4fysk6yxwhywy9zd6ljd3l2v20xqayd3m3spf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yHr/mq9ffx2D2yFG5mpZYZsO0QW5egM8c4jwceMRpTyHU8o3WZWUTQDbJ5gZtEYbCb7H/fNpP4DNdYJSKCVvCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H0GqPCiBHI2nmeEZh8LX/pir2+ul5iB3BJpZ+GLkkc0v9bScHiq4QWjx342DFiu1v6I0M0dVZmceR8VVu0/kAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1u878f6nl7an9093n8v0uk4udrzu5uee0qtz2qa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RhkysrN2sEu/LZIllMBCaw/VB6QC6sGHLxmRCaQd1wZG1qhwRdt4+JMso+e5XYEegO/nerVrmJRBTcUMPygLBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6PL3Z2ZniblzB072aGKphQaNMwllNadgkpOr8qej7JFCmwxWF6H6NWpbnN31WVKW6VB3ivaGttAoGm9kHXSgDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1uqn42u87gfvdd43d248ngkkt8zsdslpxjdtu4j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CWlzZ4Ql+HXbkyQdnAktQ/8yPN3veCQnB/dOGvWP4rZRfsURq+vf3bCgo6KYD8LBOmr0jLqWr4GxUlysnWxOBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"17sLkMSvNFqU9yvq8Iq6XlQOBX4JHIXOHRBzOCWHFYbJygcX4JOGC+LmxCdNHHEBUfR8r/gB4a79pbQIWrqoBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"17sLkMSvNFqU9yvq8Iq6XlQOBX4JHIXOHRBzOCWHFYbJygcX4JOGC+LmxCdNHHEBUfR8r/gB4a79pbQIWrqoBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1v664qx78zhv2edtx6ypdylfpafrqjz8g2rlaea","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x1ZmsVI28KXqky97oE4EydWk2Mg1PeHakFtSjdNWVMHWU0r390s2E/CooJbgbunvZhMejxqsJ2uCcQyK1nkXCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+SZn1INO2d5NgkkAMr2OxPb8QxJ//li6/8JMek8+KXQlDuwdYhHuTalDj+PD57xbxBOlmAwRZyTf4W6ZXx87Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"slKSILWrpP5VzkEZ1KT8xR9LiYGZjyP+VGK/u/jGWG4eZ5+FMgCa+rE5GCSc/uKbMWH8vY3FQlQtf32g8Py/DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1vp2hlcg9ca02sv8l02asr6ktswtf9s20m5mcw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wri3cdOPCXAFhkhrw1Iidw3fpGI9+EZVS3f0ZFFZkdFg28qGJjIkB3jY+9CsQ28o30mLm+ngZFXnXjrmiDe0CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WeJ62enB6xacxOlM0/vrLqHrLcU0EpotspfQbS2NVA4O8A4LFWVtKOjGw5/oTvQx6JBw284mzbmS0jPNexXlAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5j5tZApKFV4oyGnyC4FJOYeW8C5h2o2cJKJewCcPzJ7N9R3RlRjohs2wc01T1vQIkVWRnkeNJjpgrlbYPZfBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5j5tZApKFV4oyGnyC4FJOYeW8C5h2o2cJKJewCcPzJ7N9R3RlRjohs2wc01T1vQIkVWRnkeNJjpgrlbYPZfBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5j5tZApKFV4oyGnyC4FJOYeW8C5h2o2cJKJewCcPzJ7N9R3RlRjohs2wc01T1vQIkVWRnkeNJjpgrlbYPZfBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5j5tZApKFV4oyGnyC4FJOYeW8C5h2o2cJKJewCcPzJ7N9R3RlRjohs2wc01T1vQIkVWRnkeNJjpgrlbYPZfBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1w996yw2emnc3plwhw6vzgjnd9kdgd9cklwpp2x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KfdwzOp8q8x4qtCRSH50NBWABo+hfUqnVsv7coAoVqc6J81Cj5OKAhAHn0V3spcv6L+Xy2LxQePR3LBGcBUSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1wcmpyq7p6mvmeq75fdj2quk08pzzvmfwcm7hvn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eqP8ZTpUtK0DpKjoZKkscCBS1OaoRz9F0CE/Ax0Aq3grCWJvRrEqhIAQhGxN+46ir3bqBz0Y7box1Cgl19dmDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kEzA39jO7GB4lqHN0kKxJ/E3OHmVvg2+/iBWiqJWMdauhMGaH5mMzjUplBXA6QyQ8basPoCKtw/INMbTPUd7AA=="}],"memo":""},"metadata":{"timestamp":"1732440484"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p7LykoB4y303cRdh5IeaBsC/5RzZcsmljSGLVQi8dWyeuKvvXIGz8jWrelRz2AgT42ENKmbB8h0mMf8JDCyMAw=="}],"memo":""},"metadata":{"timestamp":"1734360773"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+GcamkPbEIUTAeEWkfEjLGgBQO7fz8DwoL/7VhbJrOdMgbUNkXK0wMBo08xyUw2rqV98Tu2P01e7aagFg46tBA=="}],"memo":""},"metadata":{"timestamp":"1734453900"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+GcamkPbEIUTAeEWkfEjLGgBQO7fz8DwoL/7VhbJrOdMgbUNkXK0wMBo08xyUw2rqV98Tu2P01e7aagFg46tBA=="}],"memo":""},"metadata":{"timestamp":"1734574117"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1x3h5spran4gd7e0stsj7gum0xd5yuc925g68qc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"a8xA15v63ZBSQ5JpenFqNVbGFvmwA83g+2/uFW3vdvZslzBPrzIg1BNwmCVl/0evOcPq3F+YO5JQ3H8azH2GBg=="}],"memo":""},"metadata":{"timestamp":"1732440524"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1xmamcpc60tc2tkqh3gxqqgd6n3rv7h2zgqmcr0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PlJHxc6XAGEZgkNnUn0VS7sJv5cj+AP6QwGjonM11XRSPNgGO9bd36peXA1ad22Xn/KI/vloRBFTQcVbNxBsAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1xmugg9x4ynp8uuglc5t67jggefp48whmp38k8n","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pKMQuGuVcEwRYriexUp7tT8ILoa5STp96sTHXvV7uiuSr087RkfFcrHDrOLMxZ9Vnrvt6wLiZvGq0RsUver8AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v48rE/5Sisz00GKioiXtg5rIIJOKKHOHDDODYEXDMf0MaJQP1hNCN+TRtnnvigKRno53XALVP3B31Q7Ug8gBBA=="}],"memo":""},"metadata":{"timestamp":"1734563316"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ygw7f6c0ldm0ksdf8yqlfzpuj232smya9xgftm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"96TSB5swVrDtxor9NHLHRpJOdhOui6p3rkq9GHQWx6ZZVe2kPf9qmH5kMvIy8PfIH5HJ7i4LHiWchsOYfHodAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1ynxs0jxxd0ezsy9u59x5dmesw7rhadgwyxpw7y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"19cVP+3nkd1yIOQSOioWJHYQt7k13nABxmej5vOGw+qBuwz2tE+KWcHoWJPeNcOYdHfThLChVLy/a7Hx5aIICw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1z0nhhy5c85cn2eqhu7m67sv8dqw4aqpy5knp7p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1G43rbYgRDVsRrBWrSMOMCsftiPv2yvIx5dm93tOAbNdrpuEE6P6t3E/JnNHoPWVTR67iaRJbVXzSW2wZ2WYBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1z6qs6t88rhlafv6qqu5f5xxsax83zczunsc0v0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n62aL26khLGdsTozDMXYtazuNRPIZt3Adp2pgWMYNQi8bGsD9RYl+MiR2EwwJ8DYswMAOf9p3b/qiiSqyAJqAg=="}],"memo":""},"metadata":{"timestamp":"1732618402"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1z6ykhrvel4nu49ugyf7e0at89u86cf9d6h0ucr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"98CB5+5Wt+7AO+pbfGKGJhsbEQACkKo3UzDx1t2ISBZLg8nHR9aKgu1OHQfjQ2r7URbZuCETBbP6etDgx2GdCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1zelq69gvlytut072w0d7pak9meh4q0ns3585nm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YlprVFIROT54EqKIWQBIlQde0vj3aMepbU8sbvlfvkipqpOagDTrw+k8tK7Xv1ZH1EbVwogI0BcoRq9mT9B9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g18l9us6trqaljw39j94wzf5ftxmd9qqkvrxghd2","to_address":"g1zulx05q6yt2kwdffau9ztf809rrgtyaw8pqec9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g0RZfPRwSpYKIdldCLd2ixFeguYduG+854o5Ix0CfPgQBFRB83LcRNVMVXQVuyXLgfSRKP4HwpNPqY1rjL7/AA=="}],"memo":""},"metadata":{"timestamp":"1735336880"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g19etegna0phd2wu64t9atxhm0kpgx8x2z3g4uv5","to_address":"g19etegna0phd2wu64t9atxhm0kpgx8x2z3g4uv5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rySamN2ElhK5U+I+mFpmVRwH2wKdgk4MLiVnaFGhhFq8+V2t0yCv+3f3iNa0nm9cprGT6YD9YL2Yrim0OZczBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","to_address":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n0y+vePh/89GYgj//w+jHz2/L17B0wTZ4peOQJ6c1gnc1ahCdyDfODnvFcCzLg6I67jERKh++yD/95r+V86bDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","to_address":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","amount":"4000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I07sRXDCg4M6Q3XHuDu64uwehpFFx/ojKFtNlUDMk8xAVsg12du4fPv6VAbN/XTE0wGZUmDDlcp8iQPGFxIuBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","to_address":"g1pwxuhltfqxcumjmuquuue6y3f2g3f2d0rcq52x","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FsOaDsZHrlt352rqmmYHA62W4h3A20NjalZg+++cPyECxfjUGS4rDWx7p14XLDx+6H8cpPWb4Tbw8xdfOUxvAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c4z9gs5ka7q6pzkwm98444ekqf70qfwqdut8rj","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7LfyeICDSd8/W0p8ZoSrxWjzFBF2bX6bJyZOsh2w/wUKYCbwW9WlFrPaL1ZLPzha95LQeDDHMCfnLWqo3fIyBw=="}],"memo":""},"metadata":{"timestamp":"1730967510"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c4z9gs5ka7q6pzkwm98444ekqf70qfwqdut8rj","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7LfyeICDSd8/W0p8ZoSrxWjzFBF2bX6bJyZOsh2w/wUKYCbwW9WlFrPaL1ZLPzha95LQeDDHMCfnLWqo3fIyBw=="}],"memo":""},"metadata":{"timestamp":"1730975392"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c4z9gs5ka7q6pzkwm98444ekqf70qfwqdut8rj","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7LfyeICDSd8/W0p8ZoSrxWjzFBF2bX6bJyZOsh2w/wUKYCbwW9WlFrPaL1ZLPzha95LQeDDHMCfnLWqo3fIyBw=="}],"memo":""},"metadata":{"timestamp":"1730975508"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","to_address":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","amount":"25000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pystq6Nzbag3GyT+Aubwg7nJP1sIQQdo/IZ7BhY9f7ykl/L7qdXJd58PoKz4A+hZSlyAuTcvVNmN4xqYJa40DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"9999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tHD8FGzlO5/txsUVLPNefj22werd80ZVvBIh4kJHQwxXO39VKcihXcrR6WfkPMhS6dLuseNFTKfD8CLEwtMDAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1d598tyfatprdstalqutk62cnzpm3thvyy9mypg","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gqIfwqn93z+P2FQ8D1v6KqoL1vqBzun9BCgyWIRRTr75jkHLUoMIXY0jNQOq5mQEc6KGpdvbis9Y/d+45F19Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","to_address":"g1kkhrcr7rnay67zsynmrrxmwrlfr7yfsuu669wk","amount":"230000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NRBiChP36trTGliVsEXaDwZFt6S/XTiNLosN6L0An0J8dao03DikgUYnERYJ9MtPLrQY9R7yU62sze70HdDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","to_address":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oBJIbP6r4aSeJ38qSio8/hCLDfDaPlLIAe40qUbnzbs7mCw0Pi6TtPuCVKHHExAIlFyWSRa5BEHXjRB9h3Y7BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1ehvfqfjs95un7ffny38ngru4kqwwqdlykc2gxx","to_address":"g1ehvfqfjs95un7ffny38ngru4kqwwqdlykc2gxx","amount":"9999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xtE+2zjstaOGvb6TOfyakdXGGw4je2iBidEKDhQVGPf8T1s3QuDEke3DnGQKwQfdzd/tTvy3hpLDOHNOHjF3AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","to_address":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"isGfyUax4Z6lvPfyeA3AF1+jwAKx3OdpZWedPf07TMS5In6EfV66UfruItuK0HzdHll39v6yOFFcLZ/4/moYAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j1YWiGw7eJyqxf0h3V6NHWP+a8xfVZ+do8WjglQxOkr7tyDAhoZV73GJLOv1NcrCVaSuKIEF+ISNTddQ9hfCAQ=="}],"memo":""},"metadata":{"timestamp":"1730861854"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1funduumqq78th3kxktewc32qrwljzd34dqs476","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"4000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4M2tpRQ0enh5GAT8FUigECdNS+6b9TEvuZ0NQf5hYn6PT1BB0kP7I8BmAgwm6nKbb2j6ZWVoIjz/D7W8oWYEAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1fwz225cl6tjnydt7l7tljqehh8dwnyw3reygd8","to_address":"g1y0sdtqeldxe8cswc4szyv53fewkmv37un7mu60","amount":"1ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GeqXHvHDe1SoYS9HuLJcEiUu9d9RdBC1wzaTwayqbqMTL7GtEgpzN94s3N+PhfeGl0anmEt3wcNnNFOMxhpiCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1gj35v8z8d3u8y0kx5wrjmj5ktzkvh2qwp9vvtu","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"100000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1jTrRdDRFUEws+f5FbiR/UCXK1pVEWq8titcBcIUEuUom9X5FeYKCSk96a+mGPuk1dGohJSjbiYS6MXyuWEnCQ=="}],"memo":""},"metadata":{"timestamp":"1731494114"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1gj35v8z8d3u8y0kx5wrjmj5ktzkvh2qwp9vvtu","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"100000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1jTrRdDRFUEws+f5FbiR/UCXK1pVEWq8titcBcIUEuUom9X5FeYKCSk96a+mGPuk1dGohJSjbiYS6MXyuWEnCQ=="}],"memo":""},"metadata":{"timestamp":"1731494169"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1grm7t0femvf0cwhy2wzcg9gu2w5adgzwerwk7s","to_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","amount":"9999999ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d08A3C3sgjgsSZ+xJPrhsinUx7UBYp52DB1dh3XOMn1VgLXdJM1dR8mHL5oQGPM7wT3U5hwBqkuqSCVQ/bAUCg=="}],"memo":""},"metadata":{"timestamp":"1732440720"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sYy61qH4JWzuk03E+KniDs4rnWWnOvfBOTqB1ZkqC4pRf8H8LXZUea8Jypq2kg2NeWD1CYjlpY+DRD6GME6yCQ=="}],"memo":""},"metadata":{"timestamp":"1731308893"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sYy61qH4JWzuk03E+KniDs4rnWWnOvfBOTqB1ZkqC4pRf8H8LXZUea8Jypq2kg2NeWD1CYjlpY+DRD6GME6yCQ=="}],"memo":""},"metadata":{"timestamp":"1731308908"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sYy61qH4JWzuk03E+KniDs4rnWWnOvfBOTqB1ZkqC4pRf8H8LXZUea8Jypq2kg2NeWD1CYjlpY+DRD6GME6yCQ=="}],"memo":""},"metadata":{"timestamp":"1731309269"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sYy61qH4JWzuk03E+KniDs4rnWWnOvfBOTqB1ZkqC4pRf8H8LXZUea8Jypq2kg2NeWD1CYjlpY+DRD6GME6yCQ=="}],"memo":""},"metadata":{"timestamp":"1731309320"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sYy61qH4JWzuk03E+KniDs4rnWWnOvfBOTqB1ZkqC4pRf8H8LXZUea8Jypq2kg2NeWD1CYjlpY+DRD6GME6yCQ=="}],"memo":""},"metadata":{"timestamp":"1731309606"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sYy61qH4JWzuk03E+KniDs4rnWWnOvfBOTqB1ZkqC4pRf8H8LXZUea8Jypq2kg2NeWD1CYjlpY+DRD6GME6yCQ=="}],"memo":""},"metadata":{"timestamp":"1731309721"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1a3cr65nc54pmq2rx3xa9mwjz4anw6vc8qw50ql","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WfzgAvpRywb4w6GwKRXXhfQ+M8gnmsbkB7RzmJaMXYd+VShVuhrlR12mhpKKjNHOgV7Yki5CqhSZhDl7KNZtDA=="}],"memo":""},"metadata":{"timestamp":"1731377985"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1a3cr65nc54pmq2rx3xa9mwjz4anw6vc8qw50ql","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WfzgAvpRywb4w6GwKRXXhfQ+M8gnmsbkB7RzmJaMXYd+VShVuhrlR12mhpKKjNHOgV7Yki5CqhSZhDl7KNZtDA=="}],"memo":""},"metadata":{"timestamp":"1731380244"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","to_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s9J2BYzzfpRBRThhLq632JJ7i/baK29SCqthl4SdTAsNYo9Rs2D+16nIUzQkfWiyvEp3t1RCb/XQHfqRJ3E2Cg=="}],"memo":""},"metadata":{"timestamp":"1731378708"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1hz3m24jlt54ky398rck3u299ac6p54k7mtayzq","to_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","amount":"9999999ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P74WB8LXO2AxQ3P43i/oHYEHhK7FHOGiuf4UR0cdwx+xEJW/Wsn3ZlxX4KnvETv01/dKQiU7khUoYLu3Sx1KCQ=="}],"memo":"14"},"metadata":{"timestamp":"1732440700"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","to_address":"g18djgscernafce2ak57jhz4ep2u4jx0ckykjuz7","amount":"225999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C41r/1k6eRs3Of5OoGvoRDQWb4cHLKt2UBVO+GNo+ciVmmjWvrMJl27Hq8rJ7dNdDpugP9AQgL0MxXqIyqMWCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g10e96leyeflvnxgl7t0n4cpjyqrkhejdcyrnn63","amount":"500000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aI0mFaWxeXRASY7mufCzc5gZUh10k7lwjUp3dV9H21PEovknVqcoKqrF95rylXlO6hIqEqMlEN0ZeQ7TcTJqBA=="}],"memo":""},"metadata":{"timestamp":"1735471794"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","amount":"500000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hYaOPV4Ir9ApWwnrjUN52AZCSbt28FMbbXBCslH057ncrHNvmPf8q2/ZvPjbuLrIt24JOWJVo5gun2Xrj8u6Cw=="}],"memo":"12313"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xCpgKvkHhRlwAjz1+uhtqJpteQUv4F7IrwUOeKnJr61Lg8z27Jm2ciD12FBL9x0SD2cl31u3Z7frk3DUl4thBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xCpgKvkHhRlwAjz1+uhtqJpteQUv4F7IrwUOeKnJr61Lg8z27Jm2ciD12FBL9x0SD2cl31u3Z7frk3DUl4thBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xCpgKvkHhRlwAjz1+uhtqJpteQUv4F7IrwUOeKnJr61Lg8z27Jm2ciD12FBL9x0SD2cl31u3Z7frk3DUl4thBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xCpgKvkHhRlwAjz1+uhtqJpteQUv4F7IrwUOeKnJr61Lg8z27Jm2ciD12FBL9x0SD2cl31u3Z7frk3DUl4thBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"65f9Bi3tjSIcJTFsXmb4Nz+q/a5kaCPktjDqURfTpcizc5OliJwHKJTd3/gk2Se8+6VPSn00mIHSkdLTv4qBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"65f9Bi3tjSIcJTFsXmb4Nz+q/a5kaCPktjDqURfTpcizc5OliJwHKJTd3/gk2Se8+6VPSn00mIHSkdLTv4qBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"65f9Bi3tjSIcJTFsXmb4Nz+q/a5kaCPktjDqURfTpcizc5OliJwHKJTd3/gk2Se8+6VPSn00mIHSkdLTv4qBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KsrbPg4kjQMrALYgjxMC01tkf3n1v3GUycBOb5ZZWdvCjpGmGetaQ8MgmelLMyTmQXkO7H6DQtlLrkfpI11SCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gRYb6s7uYwEarpHZQvFEsU7F+ROb1UAgHP7hF0RwCK1JuNceHZwYauprGCyA6JeJci47fRph8vNxQUPiWx4qAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gRYb6s7uYwEarpHZQvFEsU7F+ROb1UAgHP7hF0RwCK1JuNceHZwYauprGCyA6JeJci47fRph8vNxQUPiWx4qAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"4000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J0sA8uKryEbumn2glfqHWPPVoW2FVptfxhLYQk3r1t56XJ8+RAeCvHSAa8RdPygPEqicSUCXLzp3n4B1c+9cDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"4000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J0sA8uKryEbumn2glfqHWPPVoW2FVptfxhLYQk3r1t56XJ8+RAeCvHSAa8RdPygPEqicSUCXLzp3n4B1c+9cDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"100000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eZokI63C23kMwhN6X0cEbVZaenZdQtXQ3yXZDcI2S2beZ5cWkNtOygJehUMrf6uW4WNa8tBLLk/sBzkLvLs/Dw=="}],"memo":""},"metadata":{"timestamp":"1732610239"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"100000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eZokI63C23kMwhN6X0cEbVZaenZdQtXQ3yXZDcI2S2beZ5cWkNtOygJehUMrf6uW4WNa8tBLLk/sBzkLvLs/Dw=="}],"memo":""},"metadata":{"timestamp":"1732612041"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1111ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sXMHCBg40L6r4ajSUpl597RcVkQDg33JUfgktEi/HgFLHV5qor++jOys2bwlksPief56zrX+UIUMmEidsoCIDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qBI0ha4071y9qTdbMtl7PHFeIH7lkHIfCUrXW8Lg22yGLsN621CbHkZFjsKBq69VoLtRS+7zlCMEOkdfWCEdAA=="}],"memo":""},"metadata":{"timestamp":"1734429986"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqV+wspAQsEFafuIFKk56KUhIJhsGncuc+fSs/khH6kC6ASodPmves2zXFXpgmkprC/y85cY4wZDh5BDNu70Bw=="}],"memo":""},"metadata":{"timestamp":"1734430001"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqV+wspAQsEFafuIFKk56KUhIJhsGncuc+fSs/khH6kC6ASodPmves2zXFXpgmkprC/y85cY4wZDh5BDNu70Bw=="}],"memo":""},"metadata":{"timestamp":"1734430041"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqV+wspAQsEFafuIFKk56KUhIJhsGncuc+fSs/khH6kC6ASodPmves2zXFXpgmkprC/y85cY4wZDh5BDNu70Bw=="}],"memo":""},"metadata":{"timestamp":"1734430056"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"5000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k9f05ix6uKqG3OpADGtWvPrZc3hClfLskDu3n5BBY5fSalXNzU2JndvDq62rFbjKYA4xaGR0uIccw8OUfTl5Ag=="}],"memo":""},"metadata":{"timestamp":"1730889949"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g16lycnanaxyedev4zj0thkcg5y7sghhfdnua5rv","amount":"100000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8n6+K45bqDcM2BXot5/h5WSplKLtKa+LeWpoK7h5VUp41G8iU4miECncV4LsjWJPcsWWF4sb6k3bDriAJ28IAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g17mcgfu6l805mx7hz2evs7pz7228r0c2e0vw6ug","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2hZyEmuoDcCa7pxg8oAMOE0rwEn4tDn8ZQ203F5f83oV5Hz4Zgy7W0ci3arTLPcIzIWKj6TFfOOWY0lfSeFzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g17mcgfu6l805mx7hz2evs7pz7228r0c2e0vw6ug","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2hZyEmuoDcCa7pxg8oAMOE0rwEn4tDn8ZQ203F5f83oV5Hz4Zgy7W0ci3arTLPcIzIWKj6TFfOOWY0lfSeFzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g17mcgfu6l805mx7hz2evs7pz7228r0c2e0vw6ug","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2hZyEmuoDcCa7pxg8oAMOE0rwEn4tDn8ZQ203F5f83oV5Hz4Zgy7W0ci3arTLPcIzIWKj6TFfOOWY0lfSeFzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g17qkpnddk5n9jpmk2kt3pes5gyf3nh2pvwu7e5x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SrR4HU119ohJOGU/Af/dP943YWcpq2zybjNqi0J4efJ6cyWP3b1Eb6mHHOW7Bz7YIDmrYCumnr4Xb45u9MvSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g18sp3hq6zqfxw88ffgz773gvaqgzjhxy62l9906","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhweYau/soy9JnjFWAtfMfV6tWHxUhy9geBgTIJDQqXtx89gZ2JAUxBVOpwx3f24B8La7Ff/D01Hmt8LZca+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1cgyhhpy02u6cjgxa7pfkuh6tsfqt7r3e7arv0e","amount":"8000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7VAwo/RbKm+o8Y8Rs1NTgCO1w/kR3+QmjXGQpWdt5CpPYwstwdM9TOlrjNGdbjzBJRfrpepAo8eewk0YtqqwAA=="}],"memo":""},"metadata":{"timestamp":"1730822084"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1d598tyfatprdstalqutk62cnzpm3thvyy9mypg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CqGDMPTJ2eEjYhTT86yM4dmR2zh9yG2CXoims+tkOe2Trgrh4Cq012b7wXbhaIwGwC3an758Gq5mpGx49HSoAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1d598tyfatprdstalqutk62cnzpm3thvyy9mypg","amount":"11111000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dQ1yNV/BS6EvOgqduAFL7E2KAVal34sM4YnPcW0V+KwdjtREUB8zUlYXPQ9OKibRPFpWk3h3NsXp4ulfAeGdCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1d598tyfatprdstalqutk62cnzpm3thvyy9mypg","amount":"12345000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R7TSmfLyOfnhZ3ukbjfn3fZ6wi37eTuVDAu2hyMwsxQDXuvkP6yJACNMco6SEq7iwzHNv8xmLoYt9mPVlz0GBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"100000000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U990lbB+bGXGpb3qqyPH8m0FqfqfK4t3oPZpF1aotGDx3T1lsvhZzDOnRj+COikT11ELnO1Sb4mvzBBoZNKBBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hx4c7Vq5424Ctt6YrDZb9wqupBUePoPlJKsgDFYVThA/HIH4As4y0RN0T13djfEl8Jkw7MYr0HsmFJXDY4pcAQ=="}],"memo":""},"metadata":{"timestamp":"1734430071"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rNXDOAlKUw0yX0u/pdu8MmB4nY7Xgf3PnBUnLma0loJQdgyrp0RY4fwnY4Q8TZVA9i/9xd/J1EzBh0Os6ir8AQ=="}],"memo":"12313"},"metadata":{"timestamp":"1732674558"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rNXDOAlKUw0yX0u/pdu8MmB4nY7Xgf3PnBUnLma0loJQdgyrp0RY4fwnY4Q8TZVA9i/9xd/J1EzBh0Os6ir8AQ=="}],"memo":"12313"},"metadata":{"timestamp":"1732722926"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"300ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FSKTLD8MaBjNDcL42cxvFQ+hk/LK9Z72vIsj3jQOkHEJZHpyQ0h/8Mzgf/2s/UEjNb4qT7k8VPwYoiN6I+YoBw=="}],"memo":"12313"},"metadata":{"timestamp":"1732606157"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"300ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FSKTLD8MaBjNDcL42cxvFQ+hk/LK9Z72vIsj3jQOkHEJZHpyQ0h/8Mzgf/2s/UEjNb4qT7k8VPwYoiN6I+YoBw=="}],"memo":"12313"},"metadata":{"timestamp":"1732611750"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"300ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FSKTLD8MaBjNDcL42cxvFQ+hk/LK9Z72vIsj3jQOkHEJZHpyQ0h/8Mzgf/2s/UEjNb4qT7k8VPwYoiN6I+YoBw=="}],"memo":"12313"},"metadata":{"timestamp":"1732611780"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"40000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ou0kzCun7UtNQmBzfn9//LZHBVOTKo3m/efp/2qNXFCcUDwvdEzzeidPs8ShAJmb6LCD45I9mpT0r5C/K8+CBA=="}],"memo":"12313"},"metadata":{"timestamp":"1732626188"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"40000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ou0kzCun7UtNQmBzfn9//LZHBVOTKo3m/efp/2qNXFCcUDwvdEzzeidPs8ShAJmb6LCD45I9mpT0r5C/K8+CBA=="}],"memo":"12313"},"metadata":{"timestamp":"1732626254"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"40000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ou0kzCun7UtNQmBzfn9//LZHBVOTKo3m/efp/2qNXFCcUDwvdEzzeidPs8ShAJmb6LCD45I9mpT0r5C/K8+CBA=="}],"memo":"12313"},"metadata":{"timestamp":"1732674503"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"5000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QXsgkWMzlmPW5tHGmT/UvFNZD2y9582M2DCBHoefCagDmgUg9oW4COyo+j2ld8spulbbzihOd1V0WIeBubLyAA=="}],"memo":"12313"},"metadata":{"timestamp":"1732614427"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"70000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iEP6s8CnTXMYYlBU2eTN6o/CbE9C1XEtDsoq5w1z8+xOWp0br4XTLRWvz8D2IqV/rk26qyaP9N2deBBUzWudDQ=="}],"memo":"12313"},"metadata":{"timestamp":"1732615752"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"70000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iEP6s8CnTXMYYlBU2eTN6o/CbE9C1XEtDsoq5w1z8+xOWp0br4XTLRWvz8D2IqV/rk26qyaP9N2deBBUzWudDQ=="}],"memo":"12313"},"metadata":{"timestamp":"1732626178"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","amount":"5000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RZFg5oE4ElV5jhvJvL46EPXaLlxctx0H+v8fA7NTHCqkEUvXrP6d/2ZpXrnp69OAA5g+0LQFZdH6PwZrAAYGAg=="}],"memo":""},"metadata":{"timestamp":"1734430448"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ViqMb3oAvV3i8O8nLBZAb4tbGTuwdQD0hL9o4uhhj/M8mZ3M1XopF4vpTL+h1stMXa0fiYxeZ427c55FnOp1Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10ugnot"}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZY8pUENIj2axnf8MvPxoI7ZiC/O2HeCOj4Fa5yL0KVBhFAte3jJpccvoTuxRsgfZyQoKNePlEPbEpWBX/VKXBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"11000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UvzhFObiNwTtx5Wv9pUoOBQ592z3DxmirX5muCknyIYoy1fmTdTtKs2uWw89d0VGyH0Ros1oN7DMvRRxJV2iCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HWnM29Vn8gJ9OKrGbGtPQ9JEHiT/nxlfsqRmOJMJgHOFev+xru1/TyB6cR37At7skRGcH0NdQDaxQM8uSw2WCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"12000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HWnM29Vn8gJ9OKrGbGtPQ9JEHiT/nxlfsqRmOJMJgHOFev+xru1/TyB6cR37At7skRGcH0NdQDaxQM8uSw2WCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"123000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q3TZwnjAMevabzprcE+IFDKtEc769qJUa6wdzK23E5wYgCCNeYnCtL+QVSyNCYAvzsVajxqHSLuW/9naMYSZAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1ugnot"}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ErMtu0sBMbxzAsJTgQOFjPP7QMHVFv8MYl4DkSoqdzp569Hv4cGNt55L83IQ1qu9xtlY4r5qDzRr0tC/sUToCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1ugnot"}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ErMtu0sBMbxzAsJTgQOFjPP7QMHVFv8MYl4DkSoqdzp569Hv4cGNt55L83IQ1qu9xtlY4r5qDzRr0tC/sUToCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FN7dOqRCi9gqR7FmS8CejdLkmbrnukUXrZvlluFoGhcNvEDHuGwb2xRhXyGf+IRtylPS+ib4y50ZZroceWITBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","amount":"100000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"akqvNEdOrgI/C8yg6EJbO3KQ36tFU7JWJRFM+8uvGYjsvPKhQHKmZDejfr2SzaUyuW+8kOt9KytNsBK0khR6DQ=="}],"memo":""},"metadata":{"timestamp":"1732711047"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i39HdISJIsbfvV0fBysmaoMbUFpGebjglWcRfNOMH9pXzqhZXrVQu88p666Fgli/a4W2AGSNvlg8oVTZlXNRDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWv/lNwgjwqPwCnbgOyDkr7tilU+e+0QeHqIyoYFGfFfSDqpiDh/4SVY8BA0Aj4hXJzHt6wHFwSke3PaZbaSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"2000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NGdB9NjRATjHcqXYfOTuWZ5SQ2IuvM7veAn6Q2JiffMVXmmDwp1HD37lH17RaHE6j+kHeo43Z5zlGhgdskL2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"3000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WP3qYGrn7mpd4Y6p9wudl3zzP7jjaH8eXXUicEYJp8u4Zx6SzmAo5aW/PQlZQcmQKDL9AZD0H62sjr4XztvtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","amount":"9671003299998ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ztBNfsa7kOHuIRfwBXAP3pAo/EWnwEGdNYSgBAPzNAxNREayixtpdJIfL72xmaWL2Zsk/X8Gd9IQ/y2cvjV6Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","amount":"9671203299998ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e91UpNqPspMpO3p8BSCGnjmSBxBB0GKKInBr/ZBqNngtp/ED3OUtXBa7Mr1HSZ2o3YOnP8NiJIIvhTQ0InzSCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1qynsu9dwj9lq0m5fkje7jh6qy3md80ztqnshhm","amount":"100000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XCXgCjjLxaQQxdiHkEpZ3YlJcHq7rQw9nDsggwk5q2Sa0fZSo5VMyaWsGPeJWWe/MEAYIzoHfu6vHq/n5Gj1Cg=="}],"memo":""},"metadata":{"timestamp":"1732711112"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WrwyblGjua/T4hgUNff/PVD38UKimbOEKO92l2/yYIqKZQy4Gclw16mvMTUfAQgR9OCLvb+4d/tRK9hp5TNiDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","amount":"154000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1zRQM4pEcAHUg1X/K/h9Lp4KuTui4FTOwVeWesDUUQoqQSx75P400UxIiSU9/IXK32rm1UFEmXeEMiYaGcHFAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","to_address":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","amount":"4412000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7ikpBdp91PuxgZCsw2bWXs+ObYnWk3sItlcbC7AZhmJxTaXPJc+0e/Ccyp+5OM328b1wqykPpH+Uo2kKyUvsCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jlpdmsuja0n3h68vp7ze05gk929hxnw7jakhus","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PG4yxBZ9dZhAY/EqAL4z4KS2xlgGDtQGQGf4TGNVEuul+hxqCyEUCyBuxV4nY0aXoztMg2U2x/u8XqCjLkJ5Dw=="}],"memo":""},"metadata":{"timestamp":"1730878818"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jltdynq9exwhv6ku2vx70a0l6msd7xcn7qhx5h","to_address":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GPtWbIncE8qx89wurXAz1XL/iH8bCNGdZerkGm/68kbajj0V3rpPXa2EO6N5yI+VFWwVH+YQv5tCLFoWJtmZCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","to_address":"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8","amount":"26000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+s/PPfhrut0AajuHOY9eVkenJD7iSE8biJvkhfZXluduBSO+x6HPoBhv47TRGrgiPMA/pwstR6LGdeKV0pz1Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","to_address":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","amount":"26000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GtK2707KOGOTXin6DJKFaZU+BzU1hFIoyMwJoVNQrCAhDRgMibcTfz5DcjvcK+XQPWNNgy4Cp76MjKVgvn5eCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","to_address":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","amount":"1000000000000ugnot"}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4MvqRF4NANoGOJAP9uu5hQP7nAEv26fY0XN5aDbaqXYmsOIDiRtcMgooousftsCuKi1t2tu0rrDi7YmYeD1ABg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","to_address":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X9hgHgYYDmB1yWbAYmrA5Im4lnLrAQP+EmAJ7MQYfZPhvR0nVdgNkiLZUy7xh+jEMHDD5uoB0Dj6DbvnXDNSDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","to_address":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","amount":"1gnot"}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"StzMzZiax+RxJLz50eb4T6bJXvtlX2taotYCnQ2fJ/9uZ2AqnYImV0zEOeqAruVxP3g7MlQcygR3tD6EtjfpDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","to_address":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","amount":"1gnot"}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"StzMzZiax+RxJLz50eb4T6bJXvtlX2taotYCnQ2fJ/9uZ2AqnYImV0zEOeqAruVxP3g7MlQcygR3tD6EtjfpDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"13999999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vUNwwN2UWKTB0FsN/pjAX9WIOlabt1oEKQKAj/uyJd9qnlWEbhd25p25fPgr7/92b3LeMi9bqi2a41mYyizfAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1kpptltmd8jmwq5et5udh3ld8qq4ksqm9kj0vs4","to_address":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LSpkep05D8ZglhnJRZqy6khfZyPQisKeww0WVz5l6zxo1nyK9Tyju+BBKac5dG2tXBTlKwHg+LnnGSTj6kvVAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1kpptltmd8jmwq5et5udh3ld8qq4ksqm9kj0vs4","to_address":"g1mjvd83nnjee3z2g7683er55me9f09688pd4mj9","amount":"9000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAFCjZRetX1zvGp4plNt+3/02rultXD9pZTO4DQKwmHd9vFD2VHWKW3UyHDbwqwgMHkZ7RP41tzgtEu1IR7qAg=="}],"memo":""},"metadata":{"timestamp":"1731252376"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1kr02wha2spd8dfhxaftjkspql806rj3ga4jg9z","to_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","amount":"9999999ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MRBEDBJR+TwkRWZaOxS8MxJlBt2TTCFs4tTxQFgV5RQ5LyGLgrniZyuD05J7So6UKQb2RM8Oepiav6dzyktKBw=="}],"memo":""},"metadata":{"timestamp":"1732440785"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","to_address":"g1mrzsuacrqjwkq3yvfw58r2fz2v9w58ewythaqp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Su8ccXQiee3JcBwL+XShz2/gtTFqQJEO1V9bDFxUNgz/bCIplj9tGa8VSND+xcChsz9h0TXGA3VaoLta+aMoBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","to_address":"g1kpptltmd8jmwq5et5udh3ld8qq4ksqm9kj0vs4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HmaqB/0qzpD9lW7ffR+aCdoViwCV0VxluiSskoWYfJCrRZr2PSvkiX4zLXwMcPdiTK+HDVLJ0xsWqngiKESvBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","to_address":"g1kpptltmd8jmwq5et5udh3ld8qq4ksqm9kj0vs4","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hh+ut5UQwnTqqwtRYMgtdyxOJisMJOcTeYurn5L26GmBIVClw9TWiCMsiPaD/NheSjZsY/yJ+Tbrh0QGjB6/Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"200000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z5IboZw1a/Am6tAO7ROoamTRlajBNPg6jHCzh0DCRfPts67bzWmjQox5Si/H/cDVdwFsBU/SFoA4Rr2OBEAjCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","to_address":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","amount":"100000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TVJJ4/EfjRixaSmUlqzTm3F0PCjLyKyPt+7yGyWFetuOLMNscXLH5xVEAqaQreJtgiBcDVNi7jkvgTdE1r20CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"19899999ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8GJfBHLfAfrcQzuazNWKFKFqwIfHJtlgyt/kgycKC0D1aGINiPPs9SuvggrKY5IXMJaKZh87VCJj3VPd3CNPBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1nn2le065kak2ke8xnarcv4fhd3nvcyq5jzxy5x","to_address":"g12rlv38gkdpl43g5u9gwm5t59agdr4w5l527h9g","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dzQ0Jp/Tj5VXng+m9Vd2eYN26y3qTOW/bRg6Ps+zMFnqsqCOOVomXbmHsxt7UH6fSc3LMlw1g/7ChgiFoNNABQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1np0y3gpghzd3yavdsfefhj8agj48uk2h2qk2pp","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"1000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MKtbabDeG1rVQ5TPuHbaFPnZJLHuh8iFwqvcEeVucVrvMYOesq+W9yUD/ugkK9WGERMPSmfkZzYYbemQJk7pDQ=="}],"memo":""},"metadata":{"timestamp":"1731514301"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1pf6yuy6h9lxqu2rzp7c9mhqntps6zvtf2s905n","to_address":"g19vhq0mzr8m99vap6g488ftddkkzf4rt8j9wg0j","amount":"5000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mLOcJE8iJ0vxNVBLktSPl8ICo4c3ilgvGvZvc2iRhZnLOHREJsHM8l0+sxHBZMsmIZcqDvTqkHrIBGXeP1A4Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g102yctcf88g04rh94huujngj2uy4gkcp2tksau6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q4jeIdhWx4a8geunIZsFfC60hyUhsn5HeOeL94cl7RRJSQMhMpvx0sz7jV4PUYkH5IuXCZw0qeTpsyVaCBfoDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g102yctcf88g04rh94huujngj2uy4gkcp2tksau6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q4jeIdhWx4a8geunIZsFfC60hyUhsn5HeOeL94cl7RRJSQMhMpvx0sz7jV4PUYkH5IuXCZw0qeTpsyVaCBfoDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g103f46t2k9jj26q2nvhvfc7v2j9e6w08snln5pa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m31WVIRi+XqRLAiUdCGylI0eymvRrIBXB3FmHpqqe4Gc+ztxqt4sZ7KIp1Aug96CGM1DrJzPNW58kjU1j/OkAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g103f46t2k9jj26q2nvhvfc7v2j9e6w08snln5pa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m31WVIRi+XqRLAiUdCGylI0eymvRrIBXB3FmHpqqe4Gc+ztxqt4sZ7KIp1Aug96CGM1DrJzPNW58kjU1j/OkAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g104hnnvrlxk5kauvzfju0zlat94mppjzl239xnu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xw3dGOcNExr6B/52svKXOcEOAXzWCLSTrfdAY1ZqVMbmOb4C6XacLQRnOi56Joqr+Q36OctPc0qi4aYuFrjIAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1074c8an6aps829sx9h36m674ky4d8jlup9nmuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tExUpQ5LTT97pM0RlPdvjMNztV+AgBFuFJpVdcIj4+KXMjuvQnUnaYonE/qlb3LBZ3fd7IN8KvUMuVzjb3efBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1076spvaxezhulteygr92p84qztpjg2qxsaxnfc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9HFw3RhrrYaBzd73OJXGxr3Zz+yZVf2vMx84vmlyO3oU5o/mL7taekQdZvDZDyOTAZjQde8Qxx1llLfyo9ECCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1078pdvezkh2mqavp2px7s9h6pgchzskk0z63h3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BJxp4HzTK1+v17RHQqEByKSlCG6AYubJ/hnl1YakcopxZPsHJfAXcSDGotCg2nH+ioI4sj6IW4ZgICiwAUJaBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g108vcynu5jyastgscvwj94thr5v2xhp9kpg0pdy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6aG4tec0NmE3WUE32XBpchQnusqd/NHFQZKvpmFSTx1DOxAm3G3ZfNr7Lyptrkgt1bOHkvDXIOTspngZEr7EDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10905rstxf5tzj0w6gguaa76ma7s32v48v5a76p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jdlsZ783zKKYbs31uYiguPHdiei9rR2Pn3PPZL4z7KhwvQ1p7REEmWHSIcoom806tu1QxDUB35FB0misfs0TDg=="}],"memo":""},"metadata":{"timestamp":"1733988143"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HI466vHK7ITNFP7M5oRIhD1kjiKc/dhkXcp+la6jvgjBqOHdb6USKn1QAJk4UPmj+cqw8J6ohQy1QmMON6ezBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XYgZ5PSVQl2EbpclClW2L3Pq1ByjWbWeOx/KqpdeSb0E56oZcFYERFH5+QugbVZE4qd0Ha5Bjq2icz7IH5KzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10aw0vhtdx6rtqkqefy22us2qc3gtcqm7e7wlys","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yPfwhOPkP4FvJ64AjTX8Q/1k9CQydMFyaJICDeSU0cSeNjcFMA2uGojtj7eenYx/2FfesuNAKmmPlPrCwT5kCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10cg5m6dzuxcaf3gdqqxm4c6pvzslfd79r4wwde","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8XOhyeN0mTwJPowJFURWdoe9luR8PHOG4/3YYZua/P8SQ/zg69S3e/WUVcGjv3l08kYs8HL1lwaYw9AVvyywBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10cg5m6dzuxcaf3gdqqxm4c6pvzslfd79r4wwde","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8XOhyeN0mTwJPowJFURWdoe9luR8PHOG4/3YYZua/P8SQ/zg69S3e/WUVcGjv3l08kYs8HL1lwaYw9AVvyywBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10cg5m6dzuxcaf3gdqqxm4c6pvzslfd79r4wwde","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8XOhyeN0mTwJPowJFURWdoe9luR8PHOG4/3YYZua/P8SQ/zg69S3e/WUVcGjv3l08kYs8HL1lwaYw9AVvyywBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10cg5m6dzuxcaf3gdqqxm4c6pvzslfd79r4wwde","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8XOhyeN0mTwJPowJFURWdoe9luR8PHOG4/3YYZua/P8SQ/zg69S3e/WUVcGjv3l08kYs8HL1lwaYw9AVvyywBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10gp9tkw9uv0kcrd72zwy0vh3s60023zs6kyw3r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"awbJeWolo9ZuiGnbxwHCONytG+JYAC8MsZPISOateFzSjQ1rrRkaoDELGTbpHGZEEZF9BUKGpIP0nDomRXQ5DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10gpn7rwu4s9s5mcydksr2520z2mqwd3nlg9whm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"15uL5jak8YVaNTrh/dti31DFXUBN6pnF+5byvMTt5lQVJRJNLBf5QTO56TClncNdLIos/wDiGZFbZC8GrnM1CA=="}],"memo":""},"metadata":{"timestamp":"1733988745"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10hu3smmw75teeys3ghfxk38xtm7k996vzveh06","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M/Y8W3pWe6JlILu99kMC7KH4j2ZfXLzyRmH8IOs1c3WBjfvkrJgIO9I46/sacwzAiJedjNLmOV1VZ43irEAkDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10jhlnlcjce9xv33vu6mdqg7srpxm40wqn9w4d3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BVI0i6Lzhxmx+ktE03o2nztIRotINXXp5v4BUabbwTF5pqh8aItkx2O7S2786H7RHJsRJuDikcjmAHU5r05QAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10jhlnlcjce9xv33vu6mdqg7srpxm40wqn9w4d3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w7/ndnREa9v5rwi/B+Psy+A27lP+gbm76iV/2E/V0fqRiITNxuwzU0aQU4IoPwfOTmsE5766Syy1BaoeT+McBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10jhlnlcjce9xv33vu6mdqg7srpxm40wqn9w4d3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w7/ndnREa9v5rwi/B+Psy+A27lP+gbm76iV/2E/V0fqRiITNxuwzU0aQU4IoPwfOTmsE5766Syy1BaoeT+McBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10jms90dc56wzr28rsptfj2kv6hj7uexv767qkn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uSy5mbzF5NMnhY0YBz7zgQsdcmtVxNjUI5Zkml//LdFfeTuBc2XBayJWkowvlNZ9+v5Gu6mg48zE9E54n1L1BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10ngnzay20648m6yezfn2wd9nhq58pwpkg0yck7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BcPsNHv23Cj29LGww/AC/zBs5qEANZdkP9WTmGeSgZWynVjPGDWDL9eq2Sxe0xgxhF9MDkrETLt3CVq4oAjhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10nukqc737c8ntya69szs4v0kmglgy5v2n9jkhp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mbVUhkhMmt/1Lk5pk5ME0jdMW9nkkDNTNFaK9Al62QKqwwpeIXMeqg3rx7z2RRQSM0B/pX7mZcqgkB8i64bRBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10nukzf0ucw80ealcmp363ldjpst0pmf0pp3rcd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zqsHyXcS+oM+q/EfffVKn3jtixQ5cgDIUsGwCnxRz5cXxfvnxGf3W0ITfBo7PgHWKGEDFhBGSXBafs/n0mdyBQ=="}],"memo":""},"metadata":{"timestamp":"1733592598"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10s8kgqpva86n6hl483z2rgvv3erqqwawamshup","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cIoW5TMlNmJ87PXlKvC/fHq6xt+qhZxbb2mfbVjVp6505xWf/YNUbr8wrpfwgcJoLpSk8vJNJSTpZ/ADit+bAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10u33zpv87a2wke5kq04s8g749teg2yczhad8l8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DlqItIWCbtYMV5mJvwmD4IJTLj+yjv+T+EXhRHW2s2c4IdTNzGex2pd5JezIA1ESng4FaLT3jwCu4TgMRN8GAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10vw53jnw4nmclagyn5nu7xc8a6mqejdmdz3jsq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3xCUBGO/y33sgOVBwGAP4/Fo3x3eMOgehSdPqgZFVYpCBx8c2SRGQbLhclGPTEdZja7sGHTq/XeD9+NKFLZ2BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10vzulqs27rel6l6ukqatkhrheh8vnk2xdq70u9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tcsNqs2UxQ4wJZTp0Xyc+TZmV4cn/7rNFRLLDFlGvzOWS1lAf7dAM9Cfqyp87v456DweQd3aHbGwkw6cde7WDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10xt7fmglfl2fn2cmkhkgjecwhjxhudwnhswcc7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tlQZk3W2/KD7VEXftDv5l12HL38NGqhyxQqhLUStsTyb0sjgvHf+cf6ouPo+VjtfiMKAG2fqjpPoExlVRfcvCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10xt7fmglfl2fn2cmkhkgjecwhjxhudwnhswcc7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tlQZk3W2/KD7VEXftDv5l12HL38NGqhyxQqhLUStsTyb0sjgvHf+cf6ouPo+VjtfiMKAG2fqjpPoExlVRfcvCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zURgmZJ7+ZqrA1BQiItQALtCQsYrDIK9AkHjRGdtRWB6EtyphYWTjGLxo/34aPLjVrj8MtpP3aQxhJVUbUysDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XXdpHK515NSa4boNORe+tyic1JaHsgeFy5oYvX5nn/OZSBAy7dirjm8jCKCMYTQ+cuuopVXVK69QuCCKEk9PCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XXdpHK515NSa4boNORe+tyic1JaHsgeFy5oYvX5nn/OZSBAy7dirjm8jCKCMYTQ+cuuopVXVK69QuCCKEk9PCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pGpwNk6E55gLhFHIM5enu4DOAR7eJgDhUmZLFxmPcbmjDXK+dX7Ns+paUtyfKJYrSnF9HZIlTs9bBkcG2jh9AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pGpwNk6E55gLhFHIM5enu4DOAR7eJgDhUmZLFxmPcbmjDXK+dX7Ns+paUtyfKJYrSnF9HZIlTs9bBkcG2jh9AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g10zcywzuqc3stsqj62cakmwwsjl52ftsnvcqzxx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yAzRozm9RJCrLekFr4m9OZoevwwcjuNUq9EAWbu1B8AAxUrFO8P4+PgYMxdEG4iIjZPAlXO9hGejLg5WDAflBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1223l2hpjaphafp85yj8j8ccavmnuz8rkutzy0a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m6iIq6ZrYmpv7qkBIu9bMHZwY5ptTvPli/LIz8FyfhlkPvFm2rQn+KM04wuhB5WqGa9wBX9thth/AFWxK3CHBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g124zunj5xzfdap35a59vfswcvvpwshhnmh5p735","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OFT0K/f1a8aVmiE3B6vqz/TF794yegXwXSjU7Ihy8DMXAUcNelxAgcL0HTe4gvkkA8tnwXP5XMR/XkM9OB2iAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"10000000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PHl6H4Nrs0wokq1+twiWnQ7l7cox6Ng/4hVbWh0oS4lv4aanRl9BoJNFRDPN6I7MCLPz3ZsVRLBaels1G3MxCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"100000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"20YO5/LY5xjvdviHAkWCjYaG30VgZLeyqCuH/QOTyG8I6GRC9HS0aiqL0b9FIMbviRSJgh/6ArjYYWyKSjDGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6v5uXzZM+Svjydqppkt/o4NmNK2SrFauPDtJ2T1jLnJpDEFRgfTL5Hz0vQAY0gUk6xgaMz86vWuSw1Gn70GxBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6v5uXzZM+Svjydqppkt/o4NmNK2SrFauPDtJ2T1jLnJpDEFRgfTL5Hz0vQAY0gUk6xgaMz86vWuSw1Gn70GxBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6v5uXzZM+Svjydqppkt/o4NmNK2SrFauPDtJ2T1jLnJpDEFRgfTL5Hz0vQAY0gUk6xgaMz86vWuSw1Gn70GxBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6v5uXzZM+Svjydqppkt/o4NmNK2SrFauPDtJ2T1jLnJpDEFRgfTL5Hz0vQAY0gUk6xgaMz86vWuSw1Gn70GxBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qty8rv1Mw7mO2DDmdkgRQBPtsn/xZAjPsqxGPTiyZYrx2llC1WfuJoe+nnW8y4gK/EW7G3cBKJ0Z2zJF8Mk2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yuBk147VDLqErQohIAuzU6trnQuh4FWCsZqv64WF3o3a4AvfalRUFAJkkpD74eVebxhnFbDkhu90MU8tbgT7Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125jnut25t0tc9f732z2ay20d3ukanwjrlxsyj7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cZ/j1sRHtISmtjtmORGkzXu66BVrHfNtZpnRQBMvqfdaT/mZPU/oCoVt68kNRpREDA0W7dSmYt63agUaz2GoDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g125vkahf7cxz0n6q8mtz72lrvhek6kmln4hxhku","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5nu1+d0EmSAULxjuJxggjbbhOnwdNEfTRdOilrfF5VwpqL6Z0wauUGaGNwA+cknwRQPnrc7orxa7Xq4oard0CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g127l4gkhk0emwsx5tmxe96sp86c05h8vg5tufzq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dXVho1M+4eySSRFBKCJ/Kw6MXIr79atFZTbqV8Xlv/HGM3RLuVuw09wBRRZfNUaQd+dqDNw6Y2V9BelhZLV+Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g128faxq7dtvt6m9lc4mwy9dn026y6tzmfdmhjga","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"reLh0o3NOMwpyEuzcEWzVZQjrygWH2QBAJFPoWwnTDgLP6KEj9O/WlVHHl+pDctAZhHvCtKepj4NDjEaOS7WBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g129q3066z50rlluhfjmpg5qc6e0g2kmhu4law48","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5YNblh/0EryBCSBcUuy3jGT+1yCUNzj3tbLZIOcrl7a3JAw7wX7pHGwFOexG0DFXRwNxTPWzcKTkipV5+keuCw=="}],"memo":""},"metadata":{"timestamp":"1731485428"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12apdlactmc0fd2fqzj3grklu22xyxp89hk6mx8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oHUezbq9FWYZWpUhDqNWS877xnsBhiGdoaGFSvfZt+1qB0lRXRaeJovxf7F5JSqgz9qbrbJnQBYtBvDM+wtRCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12gf04rhrpt5qrvw7ypl2utqjzxpa0azscr0a4z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k/eYUs5bdHvFCX9FSj+H3w1LGBMcn4bDOCzorP5zG1UT+vb1peiQ+8tNCuVzkLP85BS1gQy1xD7bSg6/erIwDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12hz77yewaymym0uv08880e375z64esq4dandtk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"acRB1UR9K+tDFgq2EzI1ZBnMk5lV/eI8cX0X0zE6vGoeONhq/NCsC7nJoU3tx1JTKGmoXNp3Uew/l6kiGfWdBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12kglyqkr5ywrwva9w5c88u6dpfelhg355pnl8n","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"spMcOt/BJbYqnbK44QkzdqvdUbvTVOoV4H8B9+J2aUefGvhKUnwid02Lk91qKTmVXyxpiCFVG10yXIICpZy6AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12l3grsh5mrqvm5l663hffpnzerh4asyatxnlxe","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AE0u6gkovJvsiA31Zv6luhY0z83RFc7lBd2vRK+YsZJFy+3wcFZGUl9va8beZcUeuwxskrhIpRH0wUcE+RlcBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12mcz676t5ajfmdf8euj2cx2wkh8mut5lz0ypl4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"afXZTnvKuTkA/U2dAenb2KZt5ze2+Ts3fzEY17Z7A8a2L47gUssXGlr24Fw5ysP/8sq0yX3MlextmXKuHRxCDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12ry5qnwa5vca3cp5sj0jc9hk8taq5wuzanzu8m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WXrkAJ1FIiw4k5pVZ3hZab7GPuY15tiHe3Be6S64jSZmChjcrRyF64ZLQdLSxMIRJIFP9KfGIVGU5SoXPb4ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12ry5qnwa5vca3cp5sj0jc9hk8taq5wuzanzu8m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WXrkAJ1FIiw4k5pVZ3hZab7GPuY15tiHe3Be6S64jSZmChjcrRyF64ZLQdLSxMIRJIFP9KfGIVGU5SoXPb4ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12tew6urpealay624hhnnnspfdst0j203c6nhf2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W97BVS9HGi0IN2bTwf4+qUDqDQPA+1tlHMG+PNt5lOAvwo10OZ2eR9kR0L2nYTsBkaKYcvD44lB13qG9PKx5Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12u9pvjvfp63zk5t79h8t92gx5uv0y42a0gr7h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0SDyK+q6LYze4m1MJeFG9TGVvL1+UxHWdE0nENp8n6KLjOG2b7Rav+0RW3IacCzxSwIMNA3MPEfvDXlKztWzCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12ugx2nyqjh6mzqrg9heg2jytxrqewf2y9p423d","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"spLLRnDvliaNARXNAAVKnsAXnG+O15Ow4LbJWNzy6QGmZormszNJvYTSDs3PhKTVcfvwB4lk1HjTnG68u1AbAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12v2ka8axv02yc77jkajry8yjuntqdzch4yky9j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8eS0wOGaR37ldSVOpRcvsNICTgvfcLLU8f6g+G9YkmWeIaf5iGSTNukK6uJZp6q5ktwg/3feQkljfVLeEawgBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12vsl72vkygm306py6q6hjyqdsnt5ujeqh2n40p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"STFKHJLhb4TxdaJvD/yRlki54mWbBVk4wLYRJHJFOhsjbYqCwZ62mRT6AM/AlxmUohnizDxmnuDeA27Ad30WCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12vsl72vkygm306py6q6hjyqdsnt5ujeqh2n40p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"STFKHJLhb4TxdaJvD/yRlki54mWbBVk4wLYRJHJFOhsjbYqCwZ62mRT6AM/AlxmUohnizDxmnuDeA27Ad30WCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12vsl72vkygm306py6q6hjyqdsnt5ujeqh2n40p","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5H2nxPDi/uyRMTNmEQy7WKQum7Cl+5v+hd0pzGrLs+Tl4UiOv3xh+lvx3k1uyNDYR4dFNqRX6vLTPE2gwSL0CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12vsl72vkygm306py6q6hjyqdsnt5ujeqh2n40p","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5H2nxPDi/uyRMTNmEQy7WKQum7Cl+5v+hd0pzGrLs+Tl4UiOv3xh+lvx3k1uyNDYR4dFNqRX6vLTPE2gwSL0CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g12w28y8g6feadunkl6wv7w2e8yjnal0j3p9dxhw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4EugTBzsaLCEPWg3Uw1cIvG0NhFZglsOcOZJfyczXLccZeC3JWUMn6pZ5ILdEeefpXKPauoyUWl+lrHtTBbcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1303986x7yqr7fux0w364hs9z30zt8ydd5hqj03","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMet0BtPyu8ca4w00yp+1rh9e5hhdO5LH626bVS7bXLnMiX1WP79AiRf3MkgyzNd2QgscpgY7vfk/s1bdXb0BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g130ek75j5hkygjmln9g0pm826dclhvaf8lmm9p9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xyDlBRWZRUVTkhfBYEp1o8ds76S1V78+oaiO9iAY7QNAS6YxZcd1nBI+YnHGcPC8pFivkbPcMPdlR4R74BqQCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bV6OkdG5BymrzVXXLvA6M8fB2/JZ65XevF1+pPcPf2LDIgzOZCPSQ9poOcVegC6v5Gaw+x9rKoFb63KLRGaDAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iLmYY0UuhGLRN0NcJq5OY6GvbB2D9LGepGPHef80677Otb/507o0qM9Ngd4GtgnVyaKXwqdUZDmQhA1D/x8+Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iLmYY0UuhGLRN0NcJq5OY6GvbB2D9LGepGPHef80677Otb/507o0qM9Ngd4GtgnVyaKXwqdUZDmQhA1D/x8+Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iLmYY0UuhGLRN0NcJq5OY6GvbB2D9LGepGPHef80677Otb/507o0qM9Ngd4GtgnVyaKXwqdUZDmQhA1D/x8+Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1322347tt6wuluc2vl8ym7ccfv7lf27t8pdnmre","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aKg3Z81GGq+fQULkvnmzXDAweTdTMgKJsq7nHNSjO8yXH+lbg8FwroLbFBLUaFGq0vVJ82amU9Fh3aH0tt4vBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1322347tt6wuluc2vl8ym7ccfv7lf27t8pdnmre","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PPffrG0fyzch/xArAEj3fcxRyFq3YekukAU1kxCoHVCi7A6rlQMJijI0LX95TqE+cl9FY87PMUkJ8x6ymLEGDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g132yg355gjr22enaz9s7rrhp49j4y9tfmncjqvr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pynihzdudkgQeDgFCiBfZiTHox3swHYrC8O2Lg8zBNib9cDERJ9FSZWKIDRCLGI53+FmGQIYO5c/XmcUg+hBAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gIMYcBEUyc3QbV5jnuPGOXsBf1H3URPND07u8j2ERbD0Z80i1xs5XNtcccb1Csaqfd36WX8299Pdj8XdE/B/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g136dm87msphd7p758chhejd4cwvh7fl2tgvx5r7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RKaIZ1SBdTaM8LQrK5dwOoQ7eISFLKpCnamgOoXgKAfSkP8NENjgoKD94B3y8eFlLiOw2Tu6Jog7oETLyK+lAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13d6yw85g34zytcu8g67s8mqr4gh22fzuggv3tr","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YrlK05Dd9RF6KQR4aKcY2/htz+fANCqM88RwzrfeD7sGK1+N/s8M3KkmPUc3lATIxTnbxgbhCIDg9RkZ8eTOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13dey7ppg5qra55w96tz5pxwhluracmvsncpvcp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CmEiP8ixxkOgtcQ9qk4PXpL85s8thBWgmjbwOqh8To0VijPCie/13MFYRrzobJTb4UXvtMuOWIVkNy51xpVLBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13emk6pm78dk7c99vjvazdj87sptwwycr5xw2hp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HVi5FWYZCiIvBvB5vgMmnAWk1QAlGPVa4wKU6X09u8zzyEloOGydQ2u9Q+YFzawdnm3Q3+VwGdF58Q2FAPzABA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z8NvauHgOb7DpILUe21nSZ/ntvuHLQr+dWZCMszcvDqAAFdMKjm34pdLsDbmEOKkf/OV4LtZLvopUbmNTqq6Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Lfbrct+OPogsdV6eroftff0ui66NxqWSNUdKUmRiFLfrHI5v7a/JvEM5CkZq75M+G+HwVpO9RtUMfbTm11nBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13fn20zzm008qz5f7yppehyr5es3kefgde0n6ct","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4Q9IDVcGcJkgm9ofqauAAtlPTzYF4NZo1MEgiR9CaYHYHwCNRup4hoZwFl+jLHWq3hZzZy9dYfEMF4k8dRdwAg=="}],"memo":""},"metadata":{"timestamp":"1732154963"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13fn20zzm008qz5f7yppehyr5es3kefgde0n6ct","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4Q9IDVcGcJkgm9ofqauAAtlPTzYF4NZo1MEgiR9CaYHYHwCNRup4hoZwFl+jLHWq3hZzZy9dYfEMF4k8dRdwAg=="}],"memo":""},"metadata":{"timestamp":"1732155013"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13fqtfm9uj8h2kuq5mktljceymgmdr5js2aawuc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U96lLFCb/753zvGAypMurgqoYzMHgXxtjy4P6XiIVhiQwGLckH+EOAVbPL3JCxZdM75ge3mxQcxqwqrLSxSnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13fqtfm9uj8h2kuq5mktljceymgmdr5js2aawuc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U96lLFCb/753zvGAypMurgqoYzMHgXxtjy4P6XiIVhiQwGLckH+EOAVbPL3JCxZdM75ge3mxQcxqwqrLSxSnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13fqtfm9uj8h2kuq5mktljceymgmdr5js2aawuc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U96lLFCb/753zvGAypMurgqoYzMHgXxtjy4P6XiIVhiQwGLckH+EOAVbPL3JCxZdM75ge3mxQcxqwqrLSxSnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13fqtfm9uj8h2kuq5mktljceymgmdr5js2aawuc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U96lLFCb/753zvGAypMurgqoYzMHgXxtjy4P6XiIVhiQwGLckH+EOAVbPL3JCxZdM75ge3mxQcxqwqrLSxSnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13gmezwvvqxkmj4jfc4j7sjgz5xlujdd5vw722n","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gDO3WXC7PTCcA2UzXvX8ShGfpUtDAGSv7zanN3Bf1t8fgvaToblntIhnxgW3QF0tzsLYCOe4LALgtWz1NqtUCQ=="}],"memo":""},"metadata":{"timestamp":"1733988780"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13hsacd5wjejd9r4p7gp49psyl5w3jqw0x35cxj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+T+TMRjyrwHtkJfUdmd3u5tsGDMF+EMGrRHpJHGEkjm5Dyi+DzekQDY2gZlvOYOgL0t0a9u8n1j24/kOwdGiCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13jfzx6c3cu4c25tnfu7x88x65kkhgudmghf9yj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O0g7k0DO3Hq4v25aA7Nhk2ppt+gYzo45JdIFlS0O696hiVC0riaEQULR+6H6CAWd0m0uRWgetEMoypIqI4gSCA=="}],"memo":""},"metadata":{"timestamp":"1736102631"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13jt6wq3z2mp2wg9dkcejn046f8fnyu74002ftq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aw+d7q+AZJa6FeaH3wCL++lGBb8ZHfRu7RBPkDBuGxjXNJJBiQknMJq0Z25p4bCn1nsPrxn9z9f94tl0niEhDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13jwukasz0azz7n4dern3n2t6j33vg5sgs9r2rt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ga3iSQTOhe0g8Tt0mFLteptTcfNeOAMyf2fLG2ct8l3vxKwMg4r38TjjtwSWJ2QkWafO7oInKYbORf/B/Pa2CQ=="}],"memo":""},"metadata":{"timestamp":"1733988338"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13l4a355ujn92qqyygut22zvvf2rwp26e5ge50u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"diRFwcgvPo1Ig/2ZVb+OyFOJtGIwOgKB0HxefryPJPsF0xJjH9+k1zTrMLopUtfDXuqCQ6S4GGbXrM0LXxvOAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQMlncjxBLXe8Pu7q9J6FjphNzADlxdhIbEWnrDYCHvQctFU0olXBakHUIkhYOb145JAwtV22AS+WmxzpoTNCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQMlncjxBLXe8Pu7q9J6FjphNzADlxdhIbEWnrDYCHvQctFU0olXBakHUIkhYOb145JAwtV22AS+WmxzpoTNCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQMlncjxBLXe8Pu7q9J6FjphNzADlxdhIbEWnrDYCHvQctFU0olXBakHUIkhYOb145JAwtV22AS+WmxzpoTNCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQMlncjxBLXe8Pu7q9J6FjphNzADlxdhIbEWnrDYCHvQctFU0olXBakHUIkhYOb145JAwtV22AS+WmxzpoTNCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13mvq7rxpucyx0cj732a2jzs8q37emcf6vfyw46","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YfOZ9iEVRFg1eXB2iG2ImjbdW3cjdQ9gdIVAEsMVe4fEOAOB+V7i04/KmzRfvLqlplId2icI1fmGJ06s1l0QBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13qdlmq6uzq6gm9qy268s23y23aaedtxap2wr99","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vE9dkAX21nf/3XV4f/tWi+2mByXf6KA/5erqjIZ2xO8EWSEWvR33J4lK8UpirTPkauG5w9/rMWwx8O1m980SAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13srwe6ygva86pcywxr52z9y335mm4wjpeqc7qy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"91WOlseODCgLA2GYeaaSsD2+/fXXJRjEDURo3Pn9xjwZwvGy+N1wStQ7rSFEi93xpBNIIG2D3KNk09svkfUcAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13yufths840y72wvq7gm6pmev49tcl0hs3393wc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YrRzTKRR7C8YlO6pFN/WksR3m4BluAHTtjsXKwdV7eCQ6PRy10H9gYhHTCw4J9tPSR6m/cAsMyk+EcY2W8HNAQ=="}],"memo":""},"metadata":{"timestamp":"1733988183"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tButHzFY03sec213sn1zlGsEY6cTDwaFuVC81bE8y4BDhM2P0KW79CytBrYxUgGy9UtREIVrt1mJRTjq1ZOIBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EfQ70occIrDuwoIVm46Qjz1QWYFG6F8gZ1AFMtXqAycYiXWjrgjmeOOcvYSWxqnbUugS1Lf/rTxN1SsRujItDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g142nyevvsxcezxfmq4pc2eja96mxrvm75xdymf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YERejSVtrx5x/74K/G0/G0cTa6yhgchWt9wzicZpL3QvZAUSIGt+sZ217rWn9+bB4yDGaC7M8xBOSvlfOJqfBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g143ew7gsequr8rzcg2hdpjg43mpcvx62us46y9d","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"97gvwKHvgvsFMtpIYIj5tbTafoCVx7F1o7lNfnf1TnDVSsvbUTSt9Urw0ayPIyMHYPNmkdtsTXFXFKaBDidoBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1469pekhw5zvzjemld9f0deksjaeephepx8ygvk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yk6Qihr1cDGu0ikjwQlXrPwDzWTE2rDEJAfLwJyCXxVLAU22w5YN1sCyy5L8aesPxo8aZstoj67YInLWDdBhCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14gphtlyh9nad7yjf8dkdnfpjx2cy5dq8rugedf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aJaPI+KhpbAEaF9zvQ6C5wK2Y/wYHTxLh1GtFj0XDKawXd+sVPx8RBYOdL6MaCz4GU+R31Z5Kmw7rRZG+q7nBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14k8ysayj07naw57svffsw022yhcg5d6ytcsaun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xNMMdGQ1kzEAMWpmNp0hZVdaDpPAt6mrw6LN+1Sl19idqxKe7oNgihHK0p9FbvDIlkodkCd5bYXcYYNTKS52BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14k8ysayj07naw57svffsw022yhcg5d6ytcsaun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xNMMdGQ1kzEAMWpmNp0hZVdaDpPAt6mrw6LN+1Sl19idqxKe7oNgihHK0p9FbvDIlkodkCd5bYXcYYNTKS52BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""},"metadata":{"timestamp":"1734468063"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""},"metadata":{"timestamp":"1734560213"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""},"metadata":{"timestamp":"1734831883"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""},"metadata":{"timestamp":"1735986628"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""},"metadata":{"timestamp":"1735987095"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""},"metadata":{"timestamp":"1735987150"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"np+UiBGi0mYR2lybLF8a0pXsbpFXSf9491LBeGnSgReDuboH8DcsmEvV2daMfucDzZ+eVQuFMLpTWnU3gloBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bDACKJsAIXLvt0Ici7Hz37ojDc9IeLBIW7zf+MW54kBhdBiwZdim//xmiWyx5XvAyJ1xKuSvZhl9UZ/s0F6tAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N0JeX8Lh8AjS1WtHamoC6fcPwHDV+J6g9RKUtSEZ5jFJI0R/rOk0/vzykj3MdEfIaDqdYHzdNxBhbzyWn2HsCA=="}],"memo":""},"metadata":{"timestamp":"1733430096"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kdg0zn97xms3eza5xh6lcycmwm4zjksg4peum","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N0JeX8Lh8AjS1WtHamoC6fcPwHDV+J6g9RKUtSEZ5jFJI0R/rOk0/vzykj3MdEfIaDqdYHzdNxBhbzyWn2HsCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14kl33gv5mxlg3ja47st0m94vpytegpszcpcnes","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+JL1qasSgg8trS0L8EuCa+qGTMKn6hTluht7i66ogUnl1vPYidRPPrLZB9VULJBUbCJqELx+gqD5UBPD5IlbDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14pnz9zrefzgfs3zpgeuv0n5tzsj9ln54ddushe","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gI5Tgh6xKMwYYLbZITvshHyBBO5kT9rOH6Odg32NKzGLCxXrbUQwKCqkQu0OrS6AUzlq7dCk9+YKh1g5ibCQBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14pphz8c09skfghk67cg8dpp9sm3k6wy443xszz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JeHvNDJOtSusS4taEywhhyw1cmIgIZ3o8peQjZtUOSigOmAXDXDoUZmBIp1KT4qZRttUWrqev3GUZkV2qfw1AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14pphz8c09skfghk67cg8dpp9sm3k6wy443xszz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JeHvNDJOtSusS4taEywhhyw1cmIgIZ3o8peQjZtUOSigOmAXDXDoUZmBIp1KT4qZRttUWrqev3GUZkV2qfw1AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14qjgdkphg95t49hnwdq0sytdjucptdmma7es9j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cS/dTUOcZT1xgFwkK+281/VNvdFs8J0JVCMx4Tuxp42/IuEtN3W9h1+xPyFjVP9sCEVnAR9Er+uJraHOUBvuBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14qjgdkphg95t49hnwdq0sytdjucptdmma7es9j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cS/dTUOcZT1xgFwkK+281/VNvdFs8J0JVCMx4Tuxp42/IuEtN3W9h1+xPyFjVP9sCEVnAR9Er+uJraHOUBvuBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14rggdzg9xdhk6t4ek047ejdzqucwpgr2zvy7k3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h2Wjmnb0HplW3Jt4oQVUXfZi6EMxyftfxjoqSqUFtRSTctnO0gKHZfpXIEHZ9ftQ3khR7UBYepgEvLhe6JcHDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14thyrmh62vqqnwgpa6lsk4wue0lj0qd8sqzdex","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MBQ8Wh3NtLDZFR3N5LuUSaAQ1idsCGieeIiiZleVzCCbBlzA/3wQtEQen/DxpXD1kVpHltMpYeMlUy53poJRCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14v5etks3h4sma95sksf9pczyfcmce70pet9f6q","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hRkIu9sPnCVZlsUYh1YOb84AOt1vipqkAuQxchaV4neSwcypv2iCanzMgI3JiEy1lYNGgZfWflQ+fSRq0bbyCA=="}],"memo":""},"metadata":{"timestamp":"1734579078"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14vxq5e5pt5sev7rkz2ej438scmxtylnzv5vnkw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZQzXEYqNjyQDMfJ7MeoOzvlr5JBtBKbb5R3oSk0owXmy9dmyRHNw2pxzYxWfDNLilZMEpCX2tbzvzosJRO/DBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14vz5gf9f73u97cwt9cvl2h2g5w7anqckggnt3v","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MFqEXe3+hqklsb5S7GqtL3maZeI9XXw6KLYXGJcOaFZROr7ovGehic1UxTMTExtXsvPy99if96lei4DDzW7yCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14wa3fr46wurex7uj8uhka3uqcuql2eztqqkezz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/+5M/NSSYyg1JlaAdj+zYjBftoQTjjdbq59uhDFvNRqDjUsZeYcmw0jKESEoTX+wacCuOeQZWVNOktax7d0eCw=="}],"memo":""},"metadata":{"timestamp":"1733988881"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14wgghqtrf22e83gmt2y5fkpgct3yy6xy3grp8l","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S0VUOQiwZvlA+8nuM8OOIMbq32rYfLJk28VegUhKLC0jYEb5CoxaKySPByza+ciJFhL3qe4F62fB59roM2U2Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yem74u5mju92xf8numn0q5awvg5vcldl4hcu4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2iSXzQ7UCFLtJncJJw5yF0RUXLhagD0FBIKcgW50WSykri51PJPyXyOZuYbeQtPycdyrD7ZyW9V2SDJvy5FMAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruSbS92TPNbAkCUPy+lO81nExLKUSa9u3Oyqtj5oMOICyDFV7xP3VaQw2bFAmp7BsLJ+SvcpAqCXg/RtETYzCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruSbS92TPNbAkCUPy+lO81nExLKUSa9u3Oyqtj5oMOICyDFV7xP3VaQw2bFAmp7BsLJ+SvcpAqCXg/RtETYzCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruSbS92TPNbAkCUPy+lO81nExLKUSa9u3Oyqtj5oMOICyDFV7xP3VaQw2bFAmp7BsLJ+SvcpAqCXg/RtETYzCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruSbS92TPNbAkCUPy+lO81nExLKUSa9u3Oyqtj5oMOICyDFV7xP3VaQw2bFAmp7BsLJ+SvcpAqCXg/RtETYzCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruSbS92TPNbAkCUPy+lO81nExLKUSa9u3Oyqtj5oMOICyDFV7xP3VaQw2bFAmp7BsLJ+SvcpAqCXg/RtETYzCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruSbS92TPNbAkCUPy+lO81nExLKUSa9u3Oyqtj5oMOICyDFV7xP3VaQw2bFAmp7BsLJ+SvcpAqCXg/RtETYzCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1732772031"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1732772046"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1732843269"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1732937926"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733058628"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733147614"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733224189"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733290806"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733396486"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733574111"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733650974"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733651029"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733835048"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1733901518"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1734090983"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1734135432"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1734135452"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1734264023"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1734432772"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1735211150"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CfEmBW4aNvKnRYslmV8sXxj6ZRgHgZkSg9LpWpgmhNItxO9mmkaJEziyT4ivrDYCKsXIcu6w3hxvvtz4jWnwDw=="}],"memo":""},"metadata":{"timestamp":"1735625025"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150gdvn780ws7a3s9qpdvv7h4d9hq6vh672ely0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+4qpoeGJDhVHsTOmcdBYkKHgPIYEmNbETlmI6KaX/AO02vBrYbxFWup8ccqkLxA9kwFzpjYHCknVKO3vMDdCBg=="}],"memo":""},"metadata":{"timestamp":"1732746104"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g150ggdg2yrdhwmk3nmt6780002xt5xgst2zndg4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z4bj3Z6FpT9QgreDTVzGnAJhWwIra4qWU1LVK/jq4wycp+xXmrFUFM+GDVSLBQBpMt0oAXrMRcxODxF8JNHPDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1573m9g33259m6zjztwrg82adllm0rl07x4psgf","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hlUblgHa9nF9Aa1SEtSGnVDcbHmcKQBsD1S2IqF8bDObzLd90OJfG3Jkbqj2PBVeHtgoRk/AOR2r025IAiycCg=="}],"memo":""},"metadata":{"timestamp":"1734933466"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g159d4pl8wvwynpuhe7rl85z77pptq5xjrqk7ses","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9DBeAHU8HAfKWPV/mXYyovNwfZMnYwyZ4ZVEcheENCfomCA390aYBRE81Nb+r9i0HbwB1HDQvXZx4dsYb4IUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g159d4pl8wvwynpuhe7rl85z77pptq5xjrqk7ses","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9DBeAHU8HAfKWPV/mXYyovNwfZMnYwyZ4ZVEcheENCfomCA390aYBRE81Nb+r9i0HbwB1HDQvXZx4dsYb4IUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g159d4pl8wvwynpuhe7rl85z77pptq5xjrqk7ses","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9DBeAHU8HAfKWPV/mXYyovNwfZMnYwyZ4ZVEcheENCfomCA390aYBRE81Nb+r9i0HbwB1HDQvXZx4dsYb4IUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g159d4pl8wvwynpuhe7rl85z77pptq5xjrqk7ses","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9DBeAHU8HAfKWPV/mXYyovNwfZMnYwyZ4ZVEcheENCfomCA390aYBRE81Nb+r9i0HbwB1HDQvXZx4dsYb4IUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15aljgztnggggmlqgadv7pu8jdreuyyqg06mgul","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FHYx1J8UDsXcV8rUc15N1t0sCFKQ0Iz9ZP+I84K1e8ETaW1mhb2K+jLqfJCHX6//ZpO1yrWJaWPgkJoQNc2BCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v/UmRySrB1DpmgQRaIToisFigIJ2QN39GmbzeF7qhWUGniSnkSStuyb6D+gDWULVJmQSiVie+rotmHdf2/Q2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15fdsrdhsr2rlqgx7al26ngfkzv0kh87vvkgxj7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WQOFdV9Jl3WRV53eAs8j51ADi16AbiwE8ilr1ciHOY9VK22YPSWmX3tmIr0hRn/kZWYl/O76q+SaLGccTSVECw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HVADkETEDisHnnNI91I2cxdCDghGhvqWqzXaHxga3j2nruXjVVhxViIqU8pNAgF7FzuhO/GfuNUqKoqmvCgEDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HVADkETEDisHnnNI91I2cxdCDghGhvqWqzXaHxga3j2nruXjVVhxViIqU8pNAgF7FzuhO/GfuNUqKoqmvCgEDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yp0qQo+/EYx4mOgHJfb+H+Q5cFGKm1SIR59ALpH3ibaBpRIFLzC1cVk+2ITew16oyKGE5DwKX1YfUkTKRAXyDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yp0qQo+/EYx4mOgHJfb+H+Q5cFGKm1SIR59ALpH3ibaBpRIFLzC1cVk+2ITew16oyKGE5DwKX1YfUkTKRAXyDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yp0qQo+/EYx4mOgHJfb+H+Q5cFGKm1SIR59ALpH3ibaBpRIFLzC1cVk+2ITew16oyKGE5DwKX1YfUkTKRAXyDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yp0qQo+/EYx4mOgHJfb+H+Q5cFGKm1SIR59ALpH3ibaBpRIFLzC1cVk+2ITew16oyKGE5DwKX1YfUkTKRAXyDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15hrw6y9wuvdvnupcfksp9yp2l5057l79zy7vu5","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLzYGQgfkTP7B2UD/RZhNE2Zec/9C8c0lnXEaygdhMsZxMjBX5U8gVbw+7FZ1EI2TWdUyDsAqW2V8ZVnljEzAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15ly494qhk5ler6erzqp7rksv539g48w4dtjwwf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3E1mOsv5ikAZ3aKgg2+xClfadb5vHkQMVsJIHQqpvEYH3x04a9H/6iwwdVuHQKMsF/BGTbTS8Z7/CSKrD7QwCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15m6aajcafau8dy7nes9c5ejse5wtfgc6gcfmrg","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Au/zlfKT5m/zscIzbB9ZMtnrlXbGvBZ5188KbecF9o2EAluZp5aC4w18ebP4yHtLhfO5Mzffd/M1xcPb4Oe8Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15q2qzdx4w4dh8znz0fugpszxxnezjuf34fq508","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ThneIni/JKAvRZX9xJzkt1TAw1Z6xzO5FH3f4p3QPxe3wk/zevmot5ZMHJxmtQpchvy0ID26xNJSkJnrze9RAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15q2qzdx4w4dh8znz0fugpszxxnezjuf34fq508","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ThneIni/JKAvRZX9xJzkt1TAw1Z6xzO5FH3f4p3QPxe3wk/zevmot5ZMHJxmtQpchvy0ID26xNJSkJnrze9RAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15rjs68cmpa8scxsx5d833vjpatnvqy2uyewzqa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ELSM1jNkOxmhxaopmWi7pBCx39L8ux1iXUqammHwGup+dhtt3BQYG2BiDH1yQ+4CI44L8eNQI/YT2Vm7qTF0Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15vphsnud2cq52qawjshkv2umpwkpwkk7gz7vg3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ooJKrfoEWObf1X1WIBZFwASbxcnk8XhNp1V64FWhEKAvsCa8fW8LE0H3WBchtd+GKdNR1bd5ORRXVETPckEBBQ=="}],"memo":""},"metadata":{"timestamp":"1733988906"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/t2WbWRChmLt7vIgZB0Jdau7JtaxaQL0xP01VJlVCv3h5AFREpeenvzwseMt7Y7ASlWw3XrrbapP5yLJGdcKAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/t2WbWRChmLt7vIgZB0Jdau7JtaxaQL0xP01VJlVCv3h5AFREpeenvzwseMt7Y7ASlWw3XrrbapP5yLJGdcKAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whqi2vz2ypITZo/faBxcvoa6EOIg7S1TLibAzmAnqgFEqSi+/v+kqjMppQnHRtybMa0fv7wHyTQmDkm/UrzTCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"awpnTCiFctdEgnoq52bU1K6uwgl2RBi/knqw3hEKc+dUm84KvcB50iZGsOxn4MwGWFUX3dxqDeeYTlBUnuIZBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"awpnTCiFctdEgnoq52bU1K6uwgl2RBi/knqw3hEKc+dUm84KvcB50iZGsOxn4MwGWFUX3dxqDeeYTlBUnuIZBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wmukt79xymnnu6c4de32trnufudqum60yrxu8","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"awpnTCiFctdEgnoq52bU1K6uwgl2RBi/knqw3hEKc+dUm84KvcB50iZGsOxn4MwGWFUX3dxqDeeYTlBUnuIZBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wquakaxclag872tn3zguegtqufl22pwed0r3n","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E1WSGOgyxyV8+edOtP0inFjTx4rV1Uw4UREwwwr8nlXhPId7lGZDCGms/C4J1Y37KMnAa3IR+cOvS/avdpy+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15wquakaxclag872tn3zguegtqufl22pwed0r3n","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6CCPECM+DhS7TXk254GKrdsahY2eBXnry28WR6YpfuDj6tbQdO9+qoiHXrycVrmCusvw44aDFCQGgpRrtCi0CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g15yl3f24ah22nmc76892urdqtnty8t4p3s5jvc8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"srW3YvuSRm/u9F2sy0FgWMomFn3LsrgNOJ4OkijjPWOWCDOf5KUfrwo1caEhkvNphNf5iplt5Y9odht+jipVBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1626wwzfe7psdz6ke9vc8qltcdkfev7h4mwm0k0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2/JsdPNQcyxR4nwH6xUHIWqbRAcF714soz+0+Ftv/Uz0oeee1sP3KunPJDcFjqO7+5K14fW7DIfMAmaIPXhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r3lGC8PRk1aH7FyM2MUIWB/9EQvJw0x6P3QtyyUkinbYdFHhmG8fkwM8h/t3jJbNYxMl73L66IiFpT/bcWASAw=="}],"memo":""},"metadata":{"timestamp":"1731481692"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r3lGC8PRk1aH7FyM2MUIWB/9EQvJw0x6P3QtyyUkinbYdFHhmG8fkwM8h/t3jJbNYxMl73L66IiFpT/bcWASAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r3lGC8PRk1aH7FyM2MUIWB/9EQvJw0x6P3QtyyUkinbYdFHhmG8fkwM8h/t3jJbNYxMl73L66IiFpT/bcWASAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r3lGC8PRk1aH7FyM2MUIWB/9EQvJw0x6P3QtyyUkinbYdFHhmG8fkwM8h/t3jJbNYxMl73L66IiFpT/bcWASAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g162ml3rynjy8adpzg0e4y42dn0fph9xzh0zdk5l","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wnCiE58JFnk24/3ihgO45SVGjX8iftxU1XjBX75k7d0vx/zYy3jTNPLftr/ioztjSvosOf0EKDJSptJ+Dh4hAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g163v3wkzvmhqdawhyvmmug2v23k56fd5383wtr6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Sekz4SUUhx08Mkum7f4PHG2XVFUnhgI9xWB0dghteEhiLDQZqV313x514J9pOtd581LsEKy2g6Vnl9eh0RIkCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g164myue5aaws4ehc9fakej3q08glpkst3cn3ehk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tX4tGwQgp2Ti+ORIx0h1I2lZKDqnAeJplw+dlOXPqztH6eXDlNCrxnlKJgvO5SdEj9G1inSAAr5dmj4jeZhqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g164myue5aaws4ehc9fakej3q08glpkst3cn3ehk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tX4tGwQgp2Ti+ORIx0h1I2lZKDqnAeJplw+dlOXPqztH6eXDlNCrxnlKJgvO5SdEj9G1inSAAr5dmj4jeZhqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16622f8wj5nu2wk9gu6jqhpvvdhz4lqns8cddv0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fWPf28lh3clNEDYw6q/m9Tvhh+PvDEetUsdRNDh2g9tshaza478VEbB2mb3vUmSWi6oyN8ceP/ReS7h7uAxeDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GHsPEQf0GV+oMxo2sced1A9nf7GMLNFYXOglS1B3mAAA2t/dRz76lp34IcMNHX5kcI0VpADIEfZ75MtYvLBHBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1677pl0ckf3pnrm2xqsdn6ueamtgz52p6pd0gv4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8GKDSivUwKjn7zKoN07HNYzzEenmVPFDPJkbwVdzgwEWYpfR0qF1Yg/2zWlmSCzKuysjRAxWrsxU3jpeNX2RCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g167twpzqeknc4jz7t95u8llg7s65fc74zh4pczf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Of1f01796JVQQ1WtJ7uUc9Gm3/PSB6OyFig+6uWn6egFasGHGTDN88QcqmdYHcMdrJUQKkfdmMp3PPM3TXrzBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16a7etgm9z2r653ucl36rj0l2yqcxgrz2jyegzx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w33XD2abcL4mncSeFl+seXNKGDjiM4CiKnGhE/zazCq76qUfsWD58tmUYZazYrbbxmzvX3OKiSDdWY05DkiqDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JgPcBdohLWSYXBk7huTaOWAKOnarpxMpPdHIe9NaykePUoF0PSm8T/QIopXkjs2Sl7HdgEpEEG3lJhNHxwiTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16fy26gwg902qqgwmay4jnemlcc3asx7k3qh4yn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HCfLs8uwnZvZ0utoH72XQpCWXCTQQMS8F1Bz7vCiQbN6/J2NJU/Ig0gci1hcmndNT2nk1Cc8njulKejWukmDAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16g56ckntjp4njpgzvan3fumyr2ppxw4py57jsx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cs8TecVihso6GCPTAjsDzZLUAONlG6vit6CHU3vH80F08/elegB4Ke+ENI0UUa9kg61/qE8grDZKcdmITLJDDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1HXx/ru3qfvoShUexlSlEKLEbLveZs3zno5UYXi8AmV6Oc64II6MCiVWaZa4frVKWCjxF0yrIO3dp8SjYQxhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1HXx/ru3qfvoShUexlSlEKLEbLveZs3zno5UYXi8AmV6Oc64II6MCiVWaZa4frVKWCjxF0yrIO3dp8SjYQxhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1HXx/ru3qfvoShUexlSlEKLEbLveZs3zno5UYXi8AmV6Oc64II6MCiVWaZa4frVKWCjxF0yrIO3dp8SjYQxhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1HXx/ru3qfvoShUexlSlEKLEbLveZs3zno5UYXi8AmV6Oc64II6MCiVWaZa4frVKWCjxF0yrIO3dp8SjYQxhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1HXx/ru3qfvoShUexlSlEKLEbLveZs3zno5UYXi8AmV6Oc64II6MCiVWaZa4frVKWCjxF0yrIO3dp8SjYQxhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1HXx/ru3qfvoShUexlSlEKLEbLveZs3zno5UYXi8AmV6Oc64II6MCiVWaZa4frVKWCjxF0yrIO3dp8SjYQxhCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16lra326p636s5n406t5xtfda8yn5c38fdm9vuq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RioIfF4mqir1zcqDW70AkBPUvxEnvW+wq6aoFhtSfohzvJogYEzz64jKRiwun2iWT43NyxA0CZfP/x+MoNF+Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P7YWK1ab/BItcNo66GMbxcLJaf792/Fu2YspuxQ0umVBuNzlDq0gBYw7rcjzJ0GW6rqc4qED7W1f6WGpyhhQDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P7YWK1ab/BItcNo66GMbxcLJaf792/Fu2YspuxQ0umVBuNzlDq0gBYw7rcjzJ0GW6rqc4qED7W1f6WGpyhhQDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P7YWK1ab/BItcNo66GMbxcLJaf792/Fu2YspuxQ0umVBuNzlDq0gBYw7rcjzJ0GW6rqc4qED7W1f6WGpyhhQDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16papy2npq78kdqky8py04wven3ex8qrvyfprjf","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vUMr2FUKDiNKqPw66uJ5k6MkeLkE+AC2gHcEu9Uz7lA1uQSSK93ivsijGVVqzmVtAfwFsCsQlwqJ47O0c3ZcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16qawu39j3axarec4fylawapp2uvtuxc78yhc33","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"srSL8L5wrygxFMX61LKmpiI2y+zt/gDaZNvdjXgw0lHp0NB3cvDTDvPKLJCyJO7j+VQxGYkyHddUriyctVHGBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16rs2nqj9t82fqkrauy96a8rer5sf5eq5xqft3y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pyHs0GyJxFQIl8eLAYORj1SjXNomLJ2SHFTq43tzlbTQ+MInUmggVtTsuxOthOUYvbiFOs9ORwPig2QvrEabAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16tjh28wrw3l9cy8pqvprr8gwz9rh5dy4509h0w","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i+VAZwfYaFTq3gZhj8PXHn5rrZGdpIJ4pYl8cYMZPsWxV50J2/dpiN3/r0nWT/oPX9ErBOBOESpH4LNbpn/iDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQZf9h2IcPD8OQin3IeqvKhmgRS023kbB35saP3Fqtnf1vfMxDYwrfUd+aYdwRqJbFnXxk+Lh3xJS5mdhOa9Dw=="}],"memo":""},"metadata":{"timestamp":"1734386360"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQZf9h2IcPD8OQin3IeqvKhmgRS023kbB35saP3Fqtnf1vfMxDYwrfUd+aYdwRqJbFnXxk+Lh3xJS5mdhOa9Dw=="}],"memo":""},"metadata":{"timestamp":"1734444892"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16wjj9dpev357ehq9vmrea2ycnpd9xuk2c9nzuv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HV0Gw2xuKQ+trmNPGE3bhT5tMUqtI8dLnuNHz35UXXE0wNICK0ZmCdqsWX96OxoZrSZpyR/d6E/fhXAw5fjyCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16wjj9dpev357ehq9vmrea2ycnpd9xuk2c9nzuv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HV0Gw2xuKQ+trmNPGE3bhT5tMUqtI8dLnuNHz35UXXE0wNICK0ZmCdqsWX96OxoZrSZpyR/d6E/fhXAw5fjyCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16wjj9dpev357ehq9vmrea2ycnpd9xuk2c9nzuv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HV0Gw2xuKQ+trmNPGE3bhT5tMUqtI8dLnuNHz35UXXE0wNICK0ZmCdqsWX96OxoZrSZpyR/d6E/fhXAw5fjyCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16wjj9dpev357ehq9vmrea2ycnpd9xuk2c9nzuv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uw4Jp9/9xaWm7QIeal93GYP02aH4xRDyxosrop7S9T+u8TVIoW3ezrSBkggdVseOxA5P0RbTyZTScgdigouZCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16xjzc2v2w9jjaxx0rq9drk46uf8668lcj6h9js","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7nLyDRTk4cPYbffpzUnfZLIu7N9yaNj4MemXNqH8yynZ6W0uiH67LOfCv8a6L3x98FRRUPLy3DKRwk6c+oSADw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g16zr3wttqdjnumwscsjucffwxtyq7qk90nuxrj6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HCz2qWp5FScdyxojamut6TUOlwaznGM/NUbDREvvSjIgIuiBKFwvpuLwZISHk9lTV+gORfQeGCmnV2KIbhd2DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1700s2xp02yjpptn3ymp5w6ylhjw7f4yqjyjwkn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ew3b6qmeL8+O/NX1zZff8DXiAhRZ9gfbHWmlB84BheKg7Z2V4g0arQU+JG0A8SSChCA0nDqsGgrDIY9JZfr+BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1709nv99x5vmzuwzhc038h3kcgp5g8rsd2g06h8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dtmV8tuvL8skr9KFrP55Wnj3crc5deMVCoZlnElQj8sweYBbHLPO1P92I+WdF/toDvEtYW6V3BDsnZiNdHueDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g170tt6u8mc9e0j5xpwg9f39r5w6prlhhl3xsy94","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UCn6BQLnFLvxJkDDupJpeAg9O6EIlDS/587w9ah2C/PrhUkCnsR/IZ2xxVhOC/BIqD9wAEUVgpAQqRg8Dfx6CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O/i8hf3RyY47fsiRDmg3X/3KiEBdNmMNvKF2YubxfnzSyAmegwfCEzSBBT6n0cxRFxT3x9YB0cafJ8hVRiIcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TblL7b+GAlYH7exl3NZ1AvS4oaBKjTcI3nCG+LY/8LZu9+ls7htWxSNHxo2rJxOrt0ffCKLMsss0cAjp+iSxDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g176py0kpfzcm0aghmyz06flyrepsvv422fmcgcc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6Za3L4t0be03ow4mRq4gC7pcLI0YUC7GsCwj7Y9CRN0d0VBZr6sSpWmEz0e7EA+k8dzgyZFhN8n/msYM1B+gBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734433038"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734444912"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734444927"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734444942"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734523771"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734523786"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734531839"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734531854"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734531874"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734533275"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c73XCHqltx4Y7atIEtf3XjqzflM89CiO/vfr1+j7J6tdZ3v9WleMvYTgK1jn2ICz35K5sIu77nMqcNBk06b6CA=="}],"memo":""},"metadata":{"timestamp":"1734533295"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g178fvkwvq8chkwg23etyfrpp6p73tavvdfhkuc0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MYaPbfrUHbnxE35JNneNVVtiO6KkJZ5o6v4A6jeyftqjaLNcjC4RXzqoH4krqMl3jel6aQ6jyeVW2C/qnV69AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1795scqeq5g86w5l2tyt6l38ngdvd0gp6aup4tu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eVUujv6FfdaYP+TqrLnXFGIRF6A0V10RwL19zgCfMHebl3or8FnDHJtWAMp7Jx3Xl8yyS5ZE+2JZLD8eou9WCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17cl0w8da0qlnp4salvfr7kdrgmve0q3xl9htx5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3yZ2iGN1t2FhBhMFdKru9kBaqZrKSoTTGMGqOoe3Nb2zKVQ7nHuOsRrDZ3rFW9V7VR20XT7/58NIFSeq022gCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17fuh620zyj2wfhnx75anjfjaudt4xqd4aq79k0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OrFqKXo6nm/SzuxlFzeivtSpTCRGFbDlSyTctv75wxAQzk2XA6jcdrScAsVlkaf0W/g2ywpbzZzaNwWgGe4AAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17j9y7xmxsjz57xxvxd4crpnfmsjnut0aqwedx9","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B1lkY8PcdI9D8Vgb4+VNFAYY2K2CQmdd1xmDQ+51aIkzbTdwuTJ8SAse15IASf9T2+S+yCHwCvhMbpms45BtCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17jlu6f3p6wdp8fwyzeye7a0ylskxd3llgz5z09","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/CSiV3rr6bFKRdYCChomLRmtqsKO8EMDxYd06AVU9EVkt2vwpy5FYrQysQTEvQuDxeafVf8icqmXdp8v3cWVAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17np07gtd7nj5rh4x582srdhd8247xa3s3us3y3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ziKY1kzCyVjUeFYpapruw7QnUnVhKSVxXjKMOvSQHv/JbUNYqsA0RPIqPKSfYHUqNtscdY2EziblpI2iLXPpAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17pkk9zhghp0ska27xu94ylpcd0wnkdtddnklap","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I5qcfo2PHjTj38y9Diy1qRtQVGDKWqV96xvwKU0anCbn79Vpt1Ad0TRgfEAIi3DQ2G0aYwpSHNApTViW1HqwDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17qmyc6qflkl4xarmhtemp868dmw3frpfal2gej","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QmNijdTTzuEqfLo9edcIWO6GGJCQMn7bak0wE1Ca3bkstRKmYH2omq+iXCSukPV+DN4xvbkvQct3EDtBKwyaAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17rzyq2c64eg3vtqg5lx4prh65f46yhh56fysk7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6puLPf099KyZLkzOj1+b/kdCLjlJP0I32mvf10sxe4mTS45/547ceY3PLEqYEeYaFLsmc/jLMjY2txvnUNYMAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17smcxadj3m59tmrcrmxxs0kxs06w8umn47tfva","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4hjw9gQofIgd87fMB+Op/XyCxkjXrDjnImgMYtlAqxTqGEk5V7XZUBO5uT0Ox8IjMFWVVQQZBLkafPwQkPmAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17t7zg3hhwd3f0xg5kkrtww8npt2gj3u4dkkdwy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QuiTC64iwX2baJw3quNJ5uOdB+uuvSoVio8m+2dxe5Ez6Y4SuPhhv2hhs1lRRbIZ5aXOyU9+cWP/R1jPSFnXAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17uc8t357mmvp8x9cuehtr4ge5rten62mdnt6x3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gnpuHK06dxR4pfA5tUoONZCu9HcwsWsWse8LPJovImyfKPv+2ptv53G07DVALdeVu7Fm/o8YSyC8mGBZF7bRDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17uc8t357mmvp8x9cuehtr4ge5rten62mdnt6x3","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jokjJGg94NQZZcWdPchIUOFh68LuvPPxU9da80ETj/IZMafLMFeb6tF3roBF0SVh6kFt9W2NcVN0tnZYFPGoDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17v0m2m3tdxezfwt79sv0gkx0tyua4099dj5h9u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pB/O9Ft8nDQoHrLqetWgPJBy3X9leEbBiofVI6SxGJH+A/IwX0/LKCM7HjZJW3pwV5/XVWJvdd8Z8Aw2YysGAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17v0m2m3tdxezfwt79sv0gkx0tyua4099dj5h9u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pB/O9Ft8nDQoHrLqetWgPJBy3X9leEbBiofVI6SxGJH+A/IwX0/LKCM7HjZJW3pwV5/XVWJvdd8Z8Aw2YysGAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17v0m2m3tdxezfwt79sv0gkx0tyua4099dj5h9u","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8WH47WGex8jgByVgGJU/Wyeq+DnT7WN+fUfOtxGRKskzE/iq/UHjc1Z3mfYmuNRy6LhtI32cnyAUNO0ASBiYBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17vz5wts3mgk0gwdvqxe9a2rh3w56czgwvyjuma","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nle7g7c7sC1r/T5BObIQvngn1RPS6EdSBuLFFZFWVv/hl5E3cGy7IbUUuj1F+iM+wNxZRZHLzJHAkag9/SGgCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17zumnvtv34mpzcva2n7jnux9jnq9kdau7km580","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9/PFZVJ4CCgXtSeiZZtkYUtcqkLZn8JxAXAFk9Dh4dS+kgkIwQ6+6HDHZ+vxyMSQr/abr/55/PJxHIZhLp2GBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g17zumnvtv34mpzcva2n7jnux9jnq9kdau7km580","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9/PFZVJ4CCgXtSeiZZtkYUtcqkLZn8JxAXAFk9Dh4dS+kgkIwQ6+6HDHZ+vxyMSQr/abr/55/PJxHIZhLp2GBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B3b56XTrRBmN4GKWcn1voT0ML95qW80YAXuUddP5HpMvIMJWGtPf9kig1RKz0ntZecEM1T5JtqA7by/zpuywDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B3b56XTrRBmN4GKWcn1voT0ML95qW80YAXuUddP5HpMvIMJWGtPf9kig1RKz0ntZecEM1T5JtqA7by/zpuywDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZMzAy4ePMeWslPtqlhKEGeEgZxNVdDjLE42dDsV2TnO9nMHxfAoEIYbo+AEAB2NvdB2rNs3Odk5yJIG2bhkzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZMzAy4ePMeWslPtqlhKEGeEgZxNVdDjLE42dDsV2TnO9nMHxfAoEIYbo+AEAB2NvdB2rNs3Odk5yJIG2bhkzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZMzAy4ePMeWslPtqlhKEGeEgZxNVdDjLE42dDsV2TnO9nMHxfAoEIYbo+AEAB2NvdB2rNs3Odk5yJIG2bhkzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18cwpdpsqd8mywj8skpsqsg9tn9hudkkpa6ycpe","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rn6JgDGFKMCnwjzLphvs6Fp6c2cqS2xCr94Yvkh3NzhVhRb9/v4/oTKtuKXt8VNwROqxZC+gwEtYg6LCaIHyAQ=="}],"memo":""},"metadata":{"timestamp":"1733349628"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18h6uejgwxxs95q3j6au6yqcl280n4tjnv9skmh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LoWlDPKWhqjP2VQUI3sZ5TO98Z/mSr+Sd+zvq9ZNtdIJNXQKljGESK6DoAVS1A1CYk2WZubknWyvGZI1+OEFBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"htzOhtdI6iZDZKtS8tavoAzR0lp8UekUPwpUaibEGpGgvVwxYieKDWIYbInUacbapUkOQyVh55jSdA7QKaNFAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18jtj2tpzcd6vd0kkdcfdsymgzlmclw9ejqpx8u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6aIspkeOqFfjzu2JOGUfGkWPKInkOJZjRPUvetvVgrJv1NClQtmr4IZ/upOp8Hi1RmIEtV+pLWXSP2CgyIfkBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18lfpacuh0ckxa8c7qd7jy6r6qd8xsx3fguwl40","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8yhgpj7IOOMr0YpPFkOs2pPd6mTcjtSER++QqaVhNQjHBt/Hg+6+A274YAnFl/vOIGE5Eq7kouu2361MfztHBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18rxaq6fd9k2fe0tknfp2fg5wna8uv4wwd3a2nz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uD1bU4lUVNkNg4nAmC0uaubMQEEnJGiB0Ik2FsjS038pDo1Z26QlLZ6UhWeUZZdmKkQpWdi3T/xniNOvwkb8DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18spk68k6usejkv0wupzl5vjdh753gggp0je299","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X2I27to4P87hiyiu4P0zuIzR+OVwfKRXo63XXeNKjg1K0hjJuIOzLMadmku/WbnDXR2Df5tZuiwGpo2IQpsWCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18v9c6cz4c0q8xs72prred0qxzrlxue777673tp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rPOBED65FDy5x2dmkl3wOjNevyJ1CGna5iC9LbB6JAQkpIUOtcQk2DVCMmq9gCrJPyYmYh8ZI1L24UGzzAaDCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18w9j4f5dke86m5caf4fzahxswqxh23qxe2rphx","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e02TwJh36+hBTacIRvtiPeiVgScM247BhPsStYBIegufButLaeDa0gFW4DyjBesXW/pR7KWhGgHceiom/8RXAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18wc0qa948rzwg4al95vhly5dh8yrkzzfghhxq9","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dpiw5iX7/vNzziLi1cv+ApKLntmKxzG0IPWXkfJ2XCBqxGdA7n6d8He8/VJFk5qVOGf0H2SO5eQOrtKBsdhnDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+5O3qjzg/o7KtN1uoJ81w+geFB/lRq8TnfCyw6UNUlFn+TItBbtMz9b1PngEELnwfKdxXdPqU2A4ff3QNCn6BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+5O3qjzg/o7KtN1uoJ81w+geFB/lRq8TnfCyw6UNUlFn+TItBbtMz9b1PngEELnwfKdxXdPqU2A4ff3QNCn6BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+5O3qjzg/o7KtN1uoJ81w+geFB/lRq8TnfCyw6UNUlFn+TItBbtMz9b1PngEELnwfKdxXdPqU2A4ff3QNCn6BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18yymym3jqre05kxc5d5hvjfgx0m9z2w73l9rg8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iwV81JBB68gISOFqVRh5/ETHvJn4XIdEeChtdB1R3d+PaitRyV1468VRI9vO3Zz2DnXBlcR6DZpKzRhMlFthCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g18zgx6qjm6ektgl4hzck79wle4flarymjucyvx2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FGyTuNtTWCTB3AcZ392xClptYwhgDibWLa2Q6Pb//01CBdAITbtashINgJCdzLquDEzDdAst+Ai/yNZ9WI1xAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g195t0kmk06rp7kyz4cpdse3pyerlpxjuvg9a7xd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8b/KsIAEKtifb1+jRg1n7piXMUaHnjEbVfOgMgIRXaRYuWSoHgk3l7lTNsoct9TtYjRaKMIU+lJ91XVRBcNkAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g199v9fxazlp2n7ls7n4e04x0q4rcg3ggehtjdsh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uvSgZIuuy6AvvYttYgIXqaOJTYYCvdCz6W25OkvS6jgY9c+oVmETrjIgU+8xTliLwuGOlPLHFQwGSl7QmuR+DQ=="}],"memo":""},"metadata":{"timestamp":"1733049926"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g199v9fxazlp2n7ls7n4e04x0q4rcg3ggehtjdsh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WZxht2iU/HaJJDXE7GJY1XU4a1YL6PhsJ5Px+XKrNei9np8kH+jBp5aJdPvBZOte94hpZXGUIyPiGhGQfDmhAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19auqnyaq82dsydqxm32wezl70xn6dnjq03az6a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z11EGNL529LKgxZULlCBJlqp8g5PFx6tbyBCxVYkoovN77slNaASPsh1bWaxLuV3AFTOhKeuWeB9sbCh+iYwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19djw7r32j7zrhpkldew20pl0kyxe4jdjtzgvsa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aPdJnTU0TSfx3EBk4jpsHueVK5lrOzvRFDHnUwmqnofDv26Ndce/781bvh8iw/Xu1gQi20mgvTml9TW+JSyvCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19gxekl943u9v7d4kxatec762fyjqpzxnzla6e7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jXfkSXjpLhlrvm6jWluXns5gJYpQ1zYqmKnMVB7rXx3J2izbEhtVz8zEreeT1Jizfucd52sUWFB3F8jbp16vAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19gyvsrg9vlt3y3am6r5j8eycmswl42jsv6qkh9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lKxuouJ4qb9d6P5vNnIVJ7ZyRng5Zp9DoV584LrAR0yCQ7iuPSUXzptkENXNnPAV3dCIFL9DaUcBjHNznY2QAg=="}],"memo":""}} diff --git a/portal-loop/backup_portal_loop_txs_8001-14322.jsonl b/portal-loop/backup_portal_loop_txs_8001-14322.jsonl new file mode 100644 index 00000000..c3ec354f --- /dev/null +++ b/portal-loop/backup_portal_loop_txs_8001-14322.jsonl @@ -0,0 +1,6322 @@ +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19p3yzr3cuhzqa02j0ce6kzvyjqfzwemw3vam0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V6qhzdpjqoRg4CEMeZ6zr4OfEg3Py/9dTkozf2LLcLeMnnCsi2GW1bhGH2iBx1nTZsG/jSMEnQQ+wco6pzHZBg=="}],"memo":""},"metadata":{"timestamp":"1736257874"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19p3yzr3cuhzqa02j0ce6kzvyjqfzwemw3vam0x","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Y2wEW3WI3f0bwFhIG9yz+OFYoln93VH0pb7qmO2QIQnQFvOZo9Rztd9murxiidvboO0AXjtqc+2ecgrtMM7EDA=="}],"memo":""},"metadata":{"timestamp":"1736257400"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19pvvwvz95attg49l9ru8fen9mpf6wrtpwkasnq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u9v04Cgxn+o9TVeZsgsehVWfpm8NQaaz/9DJk1TftSFI8H+RuwboL2/fJZ7xmFmWRS5u7MmUR69xksXX1w2VCg=="}],"memo":""},"metadata":{"timestamp":"1733988499"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19rlk4mt2x6q5krn5acjh3nf6xrrje278cya6tc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BGKmo1uFjb12GgzG6sZJ0dr3RYjPskVvkItRTxOjSNkfkVU09j4GtDQzQahgadYQYI81d/oRcjhOSwS2v8ViCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19rlk4mt2x6q5krn5acjh3nf6xrrje278cya6tc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BGKmo1uFjb12GgzG6sZJ0dr3RYjPskVvkItRTxOjSNkfkVU09j4GtDQzQahgadYQYI81d/oRcjhOSwS2v8ViCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19ru33nlzs356eyrz0620s7wpusxw7553zq2t3u","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WIg3D4/1uBwxl5D8/HXbLTk2Ga70B1Lkj+k+67DGRlEkznKQORTxLfNVFlIEiCEohPouEqJ8pVAzR+HQLEDTBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19ttg8h8u7qmled55x6rt8mplhqsfdx8mhyng7w","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8GQrCfGgxWBuOqvUSNqeJ7zy7hnxO/gz0M4Od1p9skCq/F5FQkEEpm1k25YpZNO+Xaor535ExSN/8SbzMVb0Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19unvypf9wzcjafyagupnnv0t59h3wwspm9tkcg","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mxxN64dxAUAhHyVNyn6/iiPau6AM95bWRtUje5Pz2MuvX9i6yZ6B4KntgL7eH/HQDqhR9P6ea+R+sj4PWr5iAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19uwry4cm99pg872j2gy449em483fsxkl05x6ev","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UfkaCMOC/4076MEObslv2Xrj00JVDpqcmpeSKSsH7nO1cT+PcDSG+4Jz/L0Ps48b1pkwHBqnUyABvkx/ZodTCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5anVyJJ1ldw1sTttyS4zy5DhSGtRwa1VDI/kLPQFReHU2YFZQtWZ9RSvH/Q/cSmjcgOxSlDrC2nuFPRiBKU/CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19ygevefxnaltdfl7tgea8t6nhhap2cyl9dyuwj","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/X/+ti/Kar76DAyyDvXUVRnBbl93Td7KPmIoFuSi7ZcaPw4CglS0xYM2WMaUm21S2+HprmImX381m7nEovauCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19ykf4md0gqea9d74n0vt45wfv5x2ytglcsv5m4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zCUuQ7GYi3fELMx4ilNTu1dSygZLJmlAEPIiF6V2lz+J5o3630tarP1b8WYxkIlkAAfb0MhUQ56wZ5RBzSUsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19ykf4md0gqea9d74n0vt45wfv5x2ytglcsv5m4","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2P3PDxi3fmaKevYbCvB1w4Wx07GbpcsA2nmILwH3Rirl822kzOGdcOuaE13AJXOlTHDLGhGnq+F8dD0WDbWJCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19z05mfcauu0lqlenysklhha0urdvtkap2y2gh7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BrBnnoDp3vNBbzNreQ4D10npA86HbxsjBr5StZ4Xc1Y89eZbIfSlzpqxhhzCKnvS8ruwJEa/c4Q8WuIw9ZC9DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19z05mfcauu0lqlenysklhha0urdvtkap2y2gh7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BrBnnoDp3vNBbzNreQ4D10npA86HbxsjBr5StZ4Xc1Y89eZbIfSlzpqxhhzCKnvS8ruwJEa/c4Q8WuIw9ZC9DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19z05mfcauu0lqlenysklhha0urdvtkap2y2gh7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BrBnnoDp3vNBbzNreQ4D10npA86HbxsjBr5StZ4Xc1Y89eZbIfSlzpqxhhzCKnvS8ruwJEa/c4Q8WuIw9ZC9DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19zefzdaqgf979pz37sv4tx94vxp3sqhyegweuf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6pB5iX/pQzZgetaOfQLSYjI0g2MgcygSvkN6ZzXtWUk3MKy9/BfsWhuxfir/vanqhg/WNJy6jynXxhdlmCqLAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g19zsrvkeylhlge85a2q7sf8sk0d3kr4mxsnphjx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ihF1hIu+AISl3wK7Cg4rA2/NMxvVzrMiZkodxVGYf+o4F2GxkOQFFXJxjQSMNYqkqZQHPjGLUhk/dTi0BlysDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hyXeOMra5YgN+Kv21u1vrSl4ep4xPXgXv67HZeARss2IPa6MiilM13GO8XEsczgrwi5M9yoejyOaiTorwD5sCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a36mg5cq980lgse3s7dzfmq6d4xsvpj3asd0nc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0j8EUX0joIL+VIB/GPRrlw4tJkbNofkDRchyrC6Eg3fYfFBiLYwRnSZwLsAzsOTAx16iKq3vybSUx3Nk+VwTCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a42vatrh9498s5wtje0plmjgspmlm90uunyyyy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2sTswY/jdvipgb6NDx+9jbahXHKlA4TlvGMxMvlVBY0jjeSwi+pdwWibsv03A4oXjbbgDDZQH15/Uqa2lsrNDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1a42vatrh9498s5wtje0plmjgspmlm90uunyyyy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2sTswY/jdvipgb6NDx+9jbahXHKlA4TlvGMxMvlVBY0jjeSwi+pdwWibsv03A4oXjbbgDDZQH15/Uqa2lsrNDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1aask0cwa5gf9plf9gmul35uhk4re5afxm9akzr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jZ889pbC08qzbYWC08hkIOW1jw9Mticv4jrEgJErxmxdlmbrwNQYqzyHIg8MN472rMCNATWxgZLVuVgMsMp0Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1aaz03cpwp27c990zfqtnc57qhqqdydcujm5dpj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7njA3W88HykwJkOV16ALBp6otT9fdqznnH143lVSp8oMiihNBoEiFN+Nx/JBsppfOZl7qKbXxUKUMio5vtwnAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ad7vldv0a46zjlgu5xvm2zwxngxkf77lc7ux3x","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MIuyjxaaAKskwG31emi8Pe82Yok8GE1HMZTAM1C8OZbCm6YWsFapx/e9XYQ/NrzcmgVFD1oD0JUrc9U4+m+/Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1aggt5sr6y3dcsmhu4kp6vm857nj9mpey50yum7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VmKIjao0CzDdz0D8D5XH6ZOQwgjU32zAaEa63ETHuF8dvnqqnz/OT10SS5UWmJ8oJSoQvgkCpOnFOUE7Z2VdDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1agxn6xunmp2jhjfka29ktv09hcu2zj88n9jpuf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IBDjHy3EKhyQarJeyf0IzJoszBFesTumvfqHSj1gy8sooBUbEVnfYIhtLHyh3MwmWKusrrHleBsfNo6v1EXKAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ahqv89e5hqve4ntmlm79l2dpuhr7577fsnc3wp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RLW7MXUolSDw45QAu2CUGoKNSj8QVzzutFKpr7icK5xCOcrSCjYL6svQnhmglreqiRomVn8ghRvZHkbCEv9NDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mpcYD0W9vSWOzSGGaz3mYlrn435Buhj0uDWPNxVH2iwIlnJNxpC1h9qYUE3UJng5dZvxmAS/IG7anVRKk1hwBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajg796sf4f5fu8lu9eu848cew3c9vl7cj0nmnn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D3GIZe/oEJ1jIs8AMjGJkJhUoBFg30ggMIdpTmH5rZxyGfMRQouCyml19eXK0WJI4NjXdOQTTbL8vSUOFe6IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ajvc257j8c7d4e4f0jcn2mxsgzwdyl7hrtlqde","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R5nZYfZolncHJXWLai586/9Uuffg4C/hU2QqBQn0Q/aPS/fydniS3s25pzneNra7VqvsIiWLOxShewAZdyF6Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M4MvqqDi4Agb7lnH5PLA366dCYlOAYdgiX2lLpC8DzB27PXANqSUb5er7W8XtTtabgHq/UAHbBwodWMe9YIVDQ=="}],"memo":""},"metadata":{"timestamp":"1731100013"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M4MvqqDi4Agb7lnH5PLA366dCYlOAYdgiX2lLpC8DzB27PXANqSUb5er7W8XtTtabgHq/UAHbBwodWMe9YIVDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M4MvqqDi4Agb7lnH5PLA366dCYlOAYdgiX2lLpC8DzB27PXANqSUb5er7W8XtTtabgHq/UAHbBwodWMe9YIVDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M4MvqqDi4Agb7lnH5PLA366dCYlOAYdgiX2lLpC8DzB27PXANqSUb5er7W8XtTtabgHq/UAHbBwodWMe9YIVDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zl1z+6Y7saPGIbPKW4Wxt5Vx786KdfKMIpgTOaTEflhTtTcpSmAledREm6UhHKjBcuK1+lV4TGryTehOmb4kDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tP0rEKFBRolwFHu3rImkybkvqp2y3Rm9gb3E/Ow9cUONt4D9JLJiuRk998MGwX+ngqLdLsZ43L2ClxPXRjzNAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tP0rEKFBRolwFHu3rImkybkvqp2y3Rm9gb3E/Ow9cUONt4D9JLJiuRk998MGwX+ngqLdLsZ43L2ClxPXRjzNAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3Le6FtNCJDAdBhvm3jZdZd2DPQfkoncNc9U56Sli+C4MBpnkKe6wcFKP+tjunE9UYtFz0ItxbfDDb8P9LZsAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CQLoVEou5qFryXDoBWGzcQTNQnGnZ7yl/zWPJhQbBBGwGngf7taysEUNa9sa22XOABYXl61WG9s7ov0P/W/dDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1az77kxlrdw4kt3hdgmdfnxp4tesaszyjp8925x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sgZYudpIXjEodFzdyDOywVecva+3giO8z3eg568KaGi5MfsWkKEFIGUSigoWXi5AJrQB3C3CUgpSvIqp3WYEAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c00ernllpapwa4227rjj7j3ypjr948el2m8le0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O8dfO4n3CFhjKFTW+zkC6P+uzlXtMRGZXI50GMUkk4tFcNC2A39xMgJx4l6j3LmeNVe8G1OYhWTv/VZxmbRDBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c40r3m9nllxgphpyuy0ferxwyak8wglsqwkksv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IGN35u8Fkc2sM5bLbiU9JpcmThMk6BVrHIVQTFMautAAHETrYTcxjSMbUVcZNSJY69vqgpJaFBNmkLDMT4XSAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c4z9gs5ka7q6pzkwm98444ekqf70qfwqdut8rj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1bWgUVDE+9VnxRGvTTaKhDZmsXGQkNZSN44+RYDoT6WwxxNHogqLPlaIgIvtcEiJhZQt2RfonN+/BpP6HmZABA=="}],"memo":""},"metadata":{"timestamp":"1730967480"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c5k4vdtzn0rlnrtwukauz43vce56wm42vxdcgr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JvuDlm6myn/hNyg8+Ge/lcEJv13hEjLMecdytxzqLCV2N/wkabaJy1tS+kFSuTMpMzBSPCoxn9uxzCNNH56JBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c6428h6ty22tqxtxdvh6dp8q9crp8uhyjq5mnl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5YYjmLov9Fk8dp4vO+UZRf0WyUK3R1jfA2kwMvXZt2EpbyHHGw1JvRaA+fisQWyskOCYvX6b3TxsMmDCGjgtBQ=="}],"memo":""},"metadata":{"timestamp":"1735149613"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c74t34ukg2lq39nxx5cddlkvjtfrm3zchnzvk6","amount":"150000000ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hnbhrf/s31IcctUUcgzCfp1X63OLwVpKSkwb6U6B2hAuOjMnWGvhQYgImdCtj6gsg+4rOWbTm8TrI9SPjtUWBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1c8e72k0w8fpfankl6n960xajjy0ud3a2e7ktvf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LxwQmLhc84hsS6JLrWSwtBkMtYfacou6Ce3oR1vmBP98BOeNknwT0FHcm4pjBJc9Kd/z77pACpKV4oaAKTCRCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cax2wteyppjt8p6ejlwssum9qrgphuv6wcky4w","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JqbK9i9MSyWJBEL62qhmQTMeJm1xiRv5DOR4H4kfkdnPhGrMTEvPt27WM7XKVL0cAX9oHHm93ZOVm6M89j3DBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cc423gpedjenks4p2ptl9uvsn8e0dfkdux65dp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bNkoCIc8jFR7QTdc1v2fewBVfvQXspFpqc603VkA+Mclv3GleGXclfJmI/Y2rsY5g6WaQOZ8UPz46SVNmVIcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cc423gpedjenks4p2ptl9uvsn8e0dfkdux65dp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bNkoCIc8jFR7QTdc1v2fewBVfvQXspFpqc603VkA+Mclv3GleGXclfJmI/Y2rsY5g6WaQOZ8UPz46SVNmVIcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cc423gpedjenks4p2ptl9uvsn8e0dfkdux65dp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bNkoCIc8jFR7QTdc1v2fewBVfvQXspFpqc603VkA+Mclv3GleGXclfJmI/Y2rsY5g6WaQOZ8UPz46SVNmVIcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ce0hdh0yp0x9xmey2vskt620axaw6n7m3vddd3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bixxGFK9v7YrR+IWnPYR/6W/9BtVwIK+7cAlL7vs/9tydXTF+MnJKhWBHvqgZtajuJNLw1+Z8shU4hXEy5GvDQ=="}],"memo":""},"metadata":{"timestamp":"1734512438"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cefj54rs7rmp8qumuc0mf4sx5wq975kve297gq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gmkr4sMxVrGdBe87AKL08IrS9NqtnMoY+JOUaEHf4dms17t9UaX46Qgfjz7C+cdLo/DoVvKEKod3aye6lXCUDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cffquyqzvnyekqcd3ehkldcnm6akf0lv3r70fm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gs7hyhR+DKrFtOSvEmXFChpMrF5os/5kJSBJREP9R+U+fphjqGBJ++vC+CCyg6wka+AByZaztVNflcW6L71YDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CDYALkyX8Ftox5isoseBd9u6umBtzOTR7u+Yuqg9woAFAzi8n3rcfD5vwtYcNTryrqfiNIjT+jyO+D4vEGPeCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CDYALkyX8Ftox5isoseBd9u6umBtzOTR7u+Yuqg9woAFAzi8n3rcfD5vwtYcNTryrqfiNIjT+jyO+D4vEGPeCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CDYALkyX8Ftox5isoseBd9u6umBtzOTR7u+Yuqg9woAFAzi8n3rcfD5vwtYcNTryrqfiNIjT+jyO+D4vEGPeCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CDYALkyX8Ftox5isoseBd9u6umBtzOTR7u+Yuqg9woAFAzi8n3rcfD5vwtYcNTryrqfiNIjT+jyO+D4vEGPeCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CDYALkyX8Ftox5isoseBd9u6umBtzOTR7u+Yuqg9woAFAzi8n3rcfD5vwtYcNTryrqfiNIjT+jyO+D4vEGPeCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cnh2nyx47kqsafmjhsuh24eqnlm6nma40a45cg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O65VNr+3oNPrkFs1avyCswTQ8VuOWfqJbpLlJQWGBKFuyRM7aXtmDJnLOL/vKRCTU4Jo2yNBZ+mof9l4QtXqDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cnwkc7c506djesl0q88646fd305s6uvg5n5a0a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3gXw4G+u95TzUKdURMJR1BmrTyoc5wi4aSBydMh0SBbu+SDxBxo+/DzwzGmsZkAbHxPWHdluVaHxH+1Y/WpYAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cpx59z5r8vzeww2fm4ezpz7yvjs7kptywkm864","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"72Pxt3wV8wYKByg0hyoLwYRi4D0ktmlFIvIBNLBZ8ez747ASGlHCL2A4sSvfRVF8Ng94sXwWOVOTKzn6JgBrBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cpx59z5r8vzeww2fm4ezpz7yvjs7kptywkm864","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"72Pxt3wV8wYKByg0hyoLwYRi4D0ktmlFIvIBNLBZ8ez747ASGlHCL2A4sSvfRVF8Ng94sXwWOVOTKzn6JgBrBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cvwwnac72p8yym5j78v9rg5e274602x5gflag3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SaESIaZBH/XHJyWPHGwAvsAvQ6mxhmLfDXaRVVRdJzfKUHFa9F7azax90XFlJ+wYSrBQbw5rK0wd71fQC8x4Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cz2tc8e900zzr0lwegnd2vwnh3d57cds0t632u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BeeZOmKKT7/3PaxcwakxTwLglNBklMXlsHf0URaUvIALB2wr7SBZ9tjR6F4dDBxM833Zs3SFbLEbB4HPkeHfAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1cz2tc8e900zzr0lwegnd2vwnh3d57cds0t632u","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BeeZOmKKT7/3PaxcwakxTwLglNBklMXlsHf0URaUvIALB2wr7SBZ9tjR6F4dDBxM833Zs3SFbLEbB4HPkeHfAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1czjawkfyg8dprpu65jkfmnlz646kfad3q3533g","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z7bWbdmFFZ/QSxAVC+/q3NB7nOXBxiva+Ves6MROVB7hRzAZPDnUEIY3qGVitOwjeCRVC00LbKf0m8o3iX4FAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734008607"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734196965"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734196980"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734199175"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734199185"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734451032"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Tb7ZDzwYqxXe1rhwj5tthDjoMTBeq6UMYYBe0YG5hDE50c7k9A4BOcOuU9S7lkuaUr1YpQJfaJqlF3IEWYvCw=="}],"memo":""},"metadata":{"timestamp":"1734451042"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5mFkz+tXGTWDR+7MIa27oUuWcu0X1D1BzEqtumdcP8j7Bk6G9JCY6rTkKGMyX1VoUrnUj/k/Vs0szdlifEunAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d4tpxurqx88j89h7uhfj57sgv3ee0hm8cu8433","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XwUPjWoZsOuqJWW/ZawkqoxrS4OR2uXWSCxURWX0A9LOo8zLTX/MS5FqXPH1XHHdpgO2TiqXfHF/PorG707pDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d598tyfatprdstalqutk62cnzpm3thvyy9mypg","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HiM5DDQ4AqVcRD+7VBSxbNWxdldJL3gv+R3Cgszhc1zrZx9S5Dh7xWtNv7jyc2YJaxWLyyLbSBwRCNryrsNaDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8I7gQjfK81My1faWTGYZyOJgETfZ72JiWWx9MQxDelz14t7WeoyK+WuU6qLDfolySYMcF11iORr5rudBSlN9Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8I7gQjfK81My1faWTGYZyOJgETfZ72JiWWx9MQxDelz14t7WeoyK+WuU6qLDfolySYMcF11iORr5rudBSlN9Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dleftnzmj0uyhaatk2s7dctc673699s84pvk3z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pl1INyK1UF7JJBqbJFyVLadyhRk0PSTDVdleoztD0pIot/xRY4Xx9IRu6i1Jl8HTMQTTUN8G2zGQphJozt/qCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmfc4j55wl890t4z4sul67x45ygxupjsl6fn9z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2VhBl3k7oy0MHtTdvKhadG0+5tLCijR2pIRyx6daZNBkS2A7RkMUeoGxNCmUTKJ0M9n7pZCz8aFz5ZfHjfYOBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dmg852ek58jncpphrlgm6e8rzqlk8qnswnmn5z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y29SPEHNmcW3VZw6NTCswPIEjVeVi0wWn6D6farGeIegalk1HBVh0tc8hIQYMS9g+MBTq31Us/u9lW0ZLCpiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dndupzzhfffctfllzl765wfkckth30xrcp2r9k","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3T+Ceo8zDd43sFtraAiPqMxVPEwTi5mKpARjlPRrsowO+/U41QMA/eLnJ+eu7gl6dhiXzaoPpdD4pb/+gq4CDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FybFh6fqAWZ5fMdsDGmz0CSUamjDOR/pJqyIBWUdAL5S8FL99AsQHE2RRI2i8kg2UabeDSfayNLtH56v2KwNBA=="}],"memo":""},"metadata":{"timestamp":"1731954149"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FybFh6fqAWZ5fMdsDGmz0CSUamjDOR/pJqyIBWUdAL5S8FL99AsQHE2RRI2i8kg2UabeDSfayNLtH56v2KwNBA=="}],"memo":""},"metadata":{"timestamp":"1731954159"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UNqb/yPgsiLyoGAbh8bKCGxH2LTdxYsc3V1NYHZV7QTg9OFRtBWrgNufZRer/QWp0IDTbi8QZtkgRtcJbIZCDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4s2bVl/0e01XYzHVM9j8nuFGA+fS5Ixumv2467iqwaI2lMBHePTM2NY1o0GaK3y1TOmhw50nc14CCTduyMRjBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4s2bVl/0e01XYzHVM9j8nuFGA+fS5Ixumv2467iqwaI2lMBHePTM2NY1o0GaK3y1TOmhw50nc14CCTduyMRjBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4s2bVl/0e01XYzHVM9j8nuFGA+fS5Ixumv2467iqwaI2lMBHePTM2NY1o0GaK3y1TOmhw50nc14CCTduyMRjBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4s2bVl/0e01XYzHVM9j8nuFGA+fS5Ixumv2467iqwaI2lMBHePTM2NY1o0GaK3y1TOmhw50nc14CCTduyMRjBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dqkzgdmnueeleduhfs29tlrac2uzqdplt65qxn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Su4ziCt3XlOler2Wz9DhHnxqei1IUJYqkT9B/fedPl5N3iMlLotzpLVNdvHwUHzS6+McmZ3lImQXMoOpcDXzDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofpQbvZOorrg/HMbA1+A1xn1w8jyzJdnHp/Y2Bg6jzYTwh1QF38XLtMKnhpwgLyn6JJMAMPHFzpV34LW4v04DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DHs5pSKC9MYhiBbTS+qbgsrRPv0M/YEMQEz43BrAW0lCtAQuxnWozcGNACeICy5DNmJMKBXbuoieoPTUa+/UBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DHs5pSKC9MYhiBbTS+qbgsrRPv0M/YEMQEz43BrAW0lCtAQuxnWozcGNACeICy5DNmJMKBXbuoieoPTUa+/UBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wJyGugQuKyV+NtyLIJOjiajTq+IPh11RbUHIJLrQFI4K2Ixn4dyaxEJxSGagFtG4x5VIzb3HvrYfqwCRQo/pCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1dvyds08axndvanwptq94qxydjtqltxz62hykat","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tRwVyehXRCBuol33UPmxDSxhSVfj7Ze6OVl4ZXwrw59x0wiDJaK9htt8h+9ES8YIT+vhXtF7f00VAqP2ARJnBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yjbZKCHhKHoZjrYIafa3ktnHJAG3DGAnycEXNHPXufUq3rLAkdbqm2k8ae4RPeDmmScFhXea/zESkyVcVcz1Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yjbZKCHhKHoZjrYIafa3ktnHJAG3DGAnycEXNHPXufUq3rLAkdbqm2k8ae4RPeDmmScFhXea/zESkyVcVcz1Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e6gxg5tvc55mwsn7t7dymmlasratv7mkv0rap2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LFviVm5dPchmxKNz/sjrfHO3rJVhuNGp/adUzvkBDQnwEslMA4fN9gR/rJ1Wc2bpYf1kPcovBAzr0/K2y/M4DA=="}],"memo":""},"metadata":{"timestamp":"1730801523"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e6gxg5tvc55mwsn7t7dymmlasratv7mkv0rap2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nvxB/hlQS7lphDyRZDh/oJjCYAfMkgHrPBBts/trSMYfmvEIdIm6U9YIYISwCKB04GoYAbsPqzd4t1/22A5nAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e6kacmlddj6lxh68etgsk32djgyg039qknttce","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7t6Z/4HRSJrNknBI+coxbQeS2UoBYXQrYxo9KHtKxXG7fVXsYStAHtWO+q9sfFY57b3eEqZcpp1qFjn4R64lDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e7e6f02my4e955ryaha873gx6g3xj9ux3ddz40","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T3g1v9WzTOS+TjrUdjellXtzlRQnmuUrgP4dpcO9xaqwi87G3a8LU06QLgypff3pF5Fv+ls93jFNcbY/rVQVBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e8u7rzaecgsywzqc0wsmae6u2d0jylaqdxxaf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+Riajy1aGtbiylSR96A+CcYh26DTRXafYfSIm+YGDkw2qZvvJCFVMr3QJiwhSoRz9BLUPSwzi8+g3SMUSRLNDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e9jwge5j6lp3lmpvsht0a7aqsqp9ct4380yzw0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7eCzIWeEBil0XqlYxgbvxrghL1VaR5+gaeI4reiwxQ1Otxdl0mY8in1uvodxCwy+ZbZcxMUpSCvj6DgnL79tDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1e9xg9qy30pkqzz2upga4mzg559p33hqj0spv6c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"75yLk2NqaDIRJ4lHyoo+lkdmvm2AHYIXH0tyiMqRdjKg6qvPIEofjuZyZkHWNLsyPrNHz3+4+CHNQqoqEjvnCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1eclxawp8etnzsv85n3067x6vq9q5v6yc75fdf3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Q3LTtFzxXipC9LZAbr5vA0xi7NkyLIae2vKb/RIChwznZY2yHyB6RKYgx9UZsnacRkjnn6kc+eeXKTZH5OiBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ecrcpdyd4ytxd0238xukd0uwgap3fww7nkqkly","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Pt2YsTCPhOizX+bTiy3pHWBduSqHdXOC9hpwZhdXV4vlX3yyINszH4LBslYY8iR9n2SvMZZhF0t+OudXUGOtAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ed8w05peg890ef63gdjuha0j2f4j7035yl8qzf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"946X2wiqfiSLzBkFSM2zcoyRywSpyaCTd0yGtC43Whyn1hJTUYlvxxDSrTZHWpWljE5XzOIAR3PnfR6tOFm9AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1edhv53akhqdfq6e9mh8nydu0h6jxfn7qf6sujf","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EDba+asNeG3NLc2nzKZKrqGCuhfW/DX84pAwfcJImNxvo0KRbSQcMehNlwbHoIP47mDocP1lPk9MvFJMzCtdDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Dn0hNHYVHCB9lyPh6MAsFhDx9VuLyxaiLksmzOg+IgDQt9Cgy+u2ZA0xw4vxe2ZbuO7S9QHz+KI1Z3vykddJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZWmgohHXNSdpmvbJvnL9JYXjry7ksCDrWYmPhnP4AQYhVO9//YzNyILnAGgOvfbEdk4HmpWP8m4ieVG6NWr+BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ehvfqfjs95un7ffny38ngru4kqwwqdlykc2gxx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zw89D6Ero0O7b+jQG2oi74uZ5H6dnj7GWiQqDKQ5zbG99MYtZV7WCD5tE0jMsw6zsw6+nxBjZtyWrE3S1XEyBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ehvfqfjs95un7ffny38ngru4kqwwqdlykc2gxx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zw89D6Ero0O7b+jQG2oi74uZ5H6dnj7GWiQqDKQ5zbG99MYtZV7WCD5tE0jMsw6zsw6+nxBjZtyWrE3S1XEyBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6EKZRJ9BDsvq9pZfg07EucaSdQsJdy26I9+tmL7ThmErKpj5b0s2JZqTXQcvVITDLhY58JziRTMKPv3EQiLuCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6EKZRJ9BDsvq9pZfg07EucaSdQsJdy26I9+tmL7ThmErKpj5b0s2JZqTXQcvVITDLhY58JziRTMKPv3EQiLuCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6EKZRJ9BDsvq9pZfg07EucaSdQsJdy26I9+tmL7ThmErKpj5b0s2JZqTXQcvVITDLhY58JziRTMKPv3EQiLuCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6EKZRJ9BDsvq9pZfg07EucaSdQsJdy26I9+tmL7ThmErKpj5b0s2JZqTXQcvVITDLhY58JziRTMKPv3EQiLuCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6EKZRJ9BDsvq9pZfg07EucaSdQsJdy26I9+tmL7ThmErKpj5b0s2JZqTXQcvVITDLhY58JziRTMKPv3EQiLuCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1epv9344pevheqvzre76npsc82p0wdeh559hjyx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aIXkFhfjfDXfVyn/mo0Odw74+t8Dcaexdm5RI0fCIgttdMCr76vCykbKVMBgwESKj88Gw6X8vml48j0xGOuvBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1estl9508787quf8m4sy8a6knet33x4ccyqdwwq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8PuJZ+V/Zvc0XtPBunoU4/DVIP5Zoh4xzd/bl5OR/CqVVuwSXrugnmmB9ihA02Xujsimr0l0TIMPyOFO6q9jDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1eumsjzmgfd9daa7vfpussg7heftrzeq4h00xl4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OT8nUiDo9Pf0Amj74QBAovY7IY0b2Qc9YQdRK6I8hUuNJQUb3oo7Nf8Yw1cZ5d9gAXw2MxFzNeaUjIPlish9BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1eussptehceyrtzw69kek72qy8d40rjrf654rrt","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5rs1cObUKeoZQ2yL/3pNGwmMWDCdW7jKXM2Wo6awPo4DERgWWk/mlLlpGQ4aA8jaIAwiovD3Rzb3cmZR8C9dBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1eussptehceyrtzw69kek72qy8d40rjrf654rrt","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5rs1cObUKeoZQ2yL/3pNGwmMWDCdW7jKXM2Wo6awPo4DERgWWk/mlLlpGQ4aA8jaIAwiovD3Rzb3cmZR8C9dBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1evshunka6u7zfy379ts05pgjvvlngpy2lsdl88","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ui/hlPWSyEZkpJVaxL8stWdwvPLkziGjVPSvtm3nI6qzaCCxiZe/RtJMLD8bPJvLC47voiudNZNRBMxubXGnAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKzoXVWwuaSsF6QhWacC8WWVyjAfR2Ar1INzeWabzKSc2Y/jlTeDus/xQyVtzHhHOCadyeG00eWIDmWRP4DtCw=="}],"memo":""},"metadata":{"timestamp":"1732019700"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKzoXVWwuaSsF6QhWacC8WWVyjAfR2Ar1INzeWabzKSc2Y/jlTeDus/xQyVtzHhHOCadyeG00eWIDmWRP4DtCw=="}],"memo":""},"metadata":{"timestamp":"1732019730"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKzoXVWwuaSsF6QhWacC8WWVyjAfR2Ar1INzeWabzKSc2Y/jlTeDus/xQyVtzHhHOCadyeG00eWIDmWRP4DtCw=="}],"memo":""},"metadata":{"timestamp":"1732019745"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKzoXVWwuaSsF6QhWacC8WWVyjAfR2Ar1INzeWabzKSc2Y/jlTeDus/xQyVtzHhHOCadyeG00eWIDmWRP4DtCw=="}],"memo":""},"metadata":{"timestamp":"1732122809"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKzoXVWwuaSsF6QhWacC8WWVyjAfR2Ar1INzeWabzKSc2Y/jlTeDus/xQyVtzHhHOCadyeG00eWIDmWRP4DtCw=="}],"memo":""},"metadata":{"timestamp":"1732122819"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKzoXVWwuaSsF6QhWacC8WWVyjAfR2Ar1INzeWabzKSc2Y/jlTeDus/xQyVtzHhHOCadyeG00eWIDmWRP4DtCw=="}],"memo":""},"metadata":{"timestamp":"1732122839"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ezdqun2d4e0wpn2kgk67q48q5scts2klz5uhyk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PUcKlA1yssQ+spKpa33dUqgHVyJc4+p/PkkaGGJbZ56pD7t26yjIfhDzUB7eNwpDEv/EmEKYKgGQo1HcCqfEAg=="}],"memo":""},"metadata":{"timestamp":"1733988554"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f2ej3dff96j09q5lgk2j9jxxysvel08fa3tp6t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y6bHTiPFWIUH+mGZlAn3r3eIE9ErPKEM90W6qboyHmKS49pnB1xJ+FetCezqt0bqoGzwSd8U7yUQUSNScTxABA=="}],"memo":""},"metadata":{"timestamp":"1732012304"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f2gy53gjx46l8njpxum48e79s9ehlzq5vzsgkk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jEG7PYejYs8n8eox27uRP5UNfzNi+Xt+noJFoyQeLVL1xX9TRWpesLhqJw0rMgZCV+BUYwDV/biZZ2bM+QCxCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f2gy53gjx46l8njpxum48e79s9ehlzq5vzsgkk","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2AXfYPTrar/wWA1f8bJP9Z0UwIqld6Uu1YXw0U6LbbqueEerXWZXeLb7lKRNMi5kU83n5q7Voit0SScQpftEBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"brBJiFVCjdYYnn6fXSR6eH93vRm09QlccIyX/bzKNiRJrnjJJrRZxTIs/yrW1DQ/nQKhncX7S0QHbv3tmgA7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"brBJiFVCjdYYnn6fXSR6eH93vRm09QlccIyX/bzKNiRJrnjJJrRZxTIs/yrW1DQ/nQKhncX7S0QHbv3tmgA7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"brBJiFVCjdYYnn6fXSR6eH93vRm09QlccIyX/bzKNiRJrnjJJrRZxTIs/yrW1DQ/nQKhncX7S0QHbv3tmgA7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"brBJiFVCjdYYnn6fXSR6eH93vRm09QlccIyX/bzKNiRJrnjJJrRZxTIs/yrW1DQ/nQKhncX7S0QHbv3tmgA7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"brBJiFVCjdYYnn6fXSR6eH93vRm09QlccIyX/bzKNiRJrnjJJrRZxTIs/yrW1DQ/nQKhncX7S0QHbv3tmgA7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f748xee7gpwldyrz4xea3nk6hw24lfya49fus8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UK5IoCpxxvGl9CQduz9fFQGiexy+0BH9csau0EQ4afDH3k56AMsNAZpegH8HrOe8PVdx36Q35uGZ9wiRPLYcBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f748xee7gpwldyrz4xea3nk6hw24lfya49fus8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cJsD/Rm8WOmjZyBH4uB9WsKGBqx5P8mieFtoW9Av/ll+GO81fFF0cNA+9Z6mF5KB597LW2dKI/fenIWTtz0TDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1f8xlrrq0n5gcuw83up8q4n7t8ks66xs8kfx4gl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mI63VrkV3hPKIDVaGPkanZjyASZ+lnlmNUFqRquwWPMWngiY2J9txwxiVTotaC+QmldZjNJys72yKN8HfjLrDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fa7udem3a68ms82mv4au8njn4d8atl2dmzcwfy","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B41rTAfPOiV7ZmxI3MeIdMQL4K/8HSXZ1iDqc/5l41nj4LIDYYGfkN5MKrgmcnxfTFymTZ5fDSUm9nlx9Lb5AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fdcd4a57hx6hqmvp70n8ht0dlmduyfuhsf7srk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kEpcZul0ge3WmEOxtKXl4x+SqIcOoIM+Kg3awKdxK8rOilD/ProVo9BSKa9OwuHPAvWM6IXCteDbXCMcrlnWBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fdcd4a57hx6hqmvp70n8ht0dlmduyfuhsf7srk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kEpcZul0ge3WmEOxtKXl4x+SqIcOoIM+Kg3awKdxK8rOilD/ProVo9BSKa9OwuHPAvWM6IXCteDbXCMcrlnWBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fdcd4a57hx6hqmvp70n8ht0dlmduyfuhsf7srk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kEpcZul0ge3WmEOxtKXl4x+SqIcOoIM+Kg3awKdxK8rOilD/ProVo9BSKa9OwuHPAvWM6IXCteDbXCMcrlnWBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fe8280r0044w8g6j6plvcgk27c0q2dlwr8l63k","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v6O/pDuzNQFGV33ETz5FsuAGTLMuyvtYsS+rj/yMk9d9cUQTxZ8J6FFybxVVxLwEUSnOf+5BZ8eQoIdtgk9FBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4VZFlUlDIPcrusKDnK+zB9kUzv33F0Bna3Iqmsw0PQaaCzqmZ4KH0XNvOOdUMe4It4Jj0sF7c22FPBnoMD3aDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4VZFlUlDIPcrusKDnK+zB9kUzv33F0Bna3Iqmsw0PQaaCzqmZ4KH0XNvOOdUMe4It4Jj0sF7c22FPBnoMD3aDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4VZFlUlDIPcrusKDnK+zB9kUzv33F0Bna3Iqmsw0PQaaCzqmZ4KH0XNvOOdUMe4It4Jj0sF7c22FPBnoMD3aDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fgv3xmlegvpzuv57qw793j4cyrkjkyhltkafth","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oo0bv5CVHNcnpXVlw7gO7/vq0iELAoAw3ENe61FaDdxG2pI2aH3sJIOnvIn+03XwL215ifJ4bkL85VOoHMDpBA=="}],"memo":""},"metadata":{"timestamp":"1733988850"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fj5smt5khargkn72eepekd75mf2j4z2kjc7e6s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4f03U69JaeGguk9cSf9jSRRryivFhs+iNUews5i01/SuOL2rmmH7Ax5N1iwZWyzOAhqDHUraJX5YshtqwwmUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fj5smt5khargkn72eepekd75mf2j4z2kjc7e6s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4f03U69JaeGguk9cSf9jSRRryivFhs+iNUews5i01/SuOL2rmmH7Ax5N1iwZWyzOAhqDHUraJX5YshtqwwmUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fj5smt5khargkn72eepekd75mf2j4z2kjc7e6s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4f03U69JaeGguk9cSf9jSRRryivFhs+iNUews5i01/SuOL2rmmH7Ax5N1iwZWyzOAhqDHUraJX5YshtqwwmUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fj5smt5khargkn72eepekd75mf2j4z2kjc7e6s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4f03U69JaeGguk9cSf9jSRRryivFhs+iNUews5i01/SuOL2rmmH7Ax5N1iwZWyzOAhqDHUraJX5YshtqwwmUCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fj5smt5khargkn72eepekd75mf2j4z2kjc7e6s","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MwT0XAl4Mtj7a32GOU4SxfBUo8OW9go5v4mI6ifBA95C0q2z+K8GbtVMDRGH3m9MTQkxI9HB4njF58XIHvx7Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LtptXk0qMqvx2ri7NRJ+cPbeOKOggEkVtYO3CTFNaVo9GKirXTW7leAHPQMwwVI/L+pFkdE4d4Y+qx8e5fQoBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LtptXk0qMqvx2ri7NRJ+cPbeOKOggEkVtYO3CTFNaVo9GKirXTW7leAHPQMwwVI/L+pFkdE4d4Y+qx8e5fQoBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LtptXk0qMqvx2ri7NRJ+cPbeOKOggEkVtYO3CTFNaVo9GKirXTW7leAHPQMwwVI/L+pFkdE4d4Y+qx8e5fQoBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fjnx2elgpac3fwec30369tyctagr36eh560csc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/j4mUOvflXIbzvBv6IM9vXiv8X4KxFH3UhOn6+tUVnikXrgA6O12zxboZLets1g+g80YUjmJa9r9MrNq7vgHAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fjq9a8yjgn0fme9acrr5hs2834wps2pcmu00df","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DIJzVQTvtvcmnwyHtP7pN9zYGJy6sqTbXK8i0gOCcAqx4R9/R76IWOzFTtgtJs35w4npImxgI6iFgVMe3ejtCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fkxnch9sajrydheplcydv3s6rw0uk2gyv7gndp","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H59bSkHqtoeTxPtzv0uRqR7cVBK6Q8E1ZHSvoT1jF2cXJQm5iVG/k3e1GN22SjdBvOK7o7j+uNz2xg4kBLkDBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fm2ydmdc54xgnfjv5743ml6ysc3qv2mzze6gne","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uAy0OY97jOyHWnR3lEQ/PPT2k77t5IhcHOzppdz2QavbLyEDAmhUbKCZa16YASouFj/0HrvEisvfC3FFzeM5Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fn0fhmaelfvvzyxe3tl2zsnzj6xrtejg25lj4x","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rhj+lZ66fi9+0pj7yNNCuVkSMgGDfFZjlGQDzhrfQE9Ng96+fnvlhZqbBnNfC23g0Cd/ZQL2xqPMZBXc3nT9AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fn7dawwcvsp0yeg3t5ku00gtxxf3p27ccvw3lt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cvuQtkZEr1NLXCWQXxK/ZWk+fOpiW/2UXgxage8iC8ijan+WwUxDZFm3hO4t3S2IM9/B/B42L7ayX53pzbqMCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fp54k0r5eaep9gl6qumhmc4c64mln3ueh4xgrt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rLIKoSITAbsfb/LwRTh9Ko0dGHAdNDLjuJGgo0MasDVxkocWEXX+jNXUsWVXXvMYDLbdHPcbOErm0ukHwGBOBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fr49rv4pqme0fqw7jwjh8cfxuyps53rkhfnarq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OxOMYzciczxV/C/ZLRz3m9Oc2sGsdWSZ4WjRAhg6A2wkoAajOQgcgbdT4Bs/5zKKxuuuZIuuoSfH1YxzYjdxCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1frvde3cwzpmkmcsgh6wfcc099k7xt838qtdk6w","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WftfVgpLnXCCI8o7fM5G/9V54HuFSByN2ia8bzZxzGGEhgjDflf5RBZmeFTqhq69Pi9nN4YHXQ1ow8+WiCCqBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1frvde3cwzpmkmcsgh6wfcc099k7xt838qtdk6w","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VyEdQI2m/9swSfg1OHuk/fpld4twoclr/XIdo2yKgXL5DDwBx98f2838uljb3a33jcuVUg5whLQww/L+B05ICg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fswxc4mzsdgwy5kjx3zfu3ylmhdvt3phs9xysf","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9N+uazkKIHMheQcFTpq8ge+DeWJAwruZ8b5Hbs/YcWSC5j2rSzvLYGWQh4iI65Qsb7fuBfb9tsvQtQuhH1cYDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fuchgrss8yq00tzup2vgvac9ywggzdjev4wrpq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ULZUxgaXSjnFsfzuwQ0eBpy3iUALFaB1GXB4OhJnBDWifa+X0nfGpHABcsykY8ZpRbaFwuHOj84Gtcyz5Rk1Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fv90q4fscffxadmtf7d93nvhvkl48g7zxeftng","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0Ndz4zcMbw3hytGDlaHmr3qcJM9g6U7xAQoI1donH48c1Joz+1fQ+kaYf5MU4faoOT3TfPmnH9nCOkTy7iSpCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fwz225cl6tjnydt7l7tljqehh8dwnyw3reygd8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vdip7HKiTvV3e7WeQTdCD1DBDYP4VKMbw/KlkjWu9sjCw9amzsFe2kcQ57KiYezXQj69vVsQ/F0ecT238FssCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fyvnkl6t0tuj7njpfaat5g942gxx43dxmsgp2q","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0Dv+EWt5/5yzpYMC3al4s/Pr6I0Jbk+G1bUMJ2OKYlTo8B8VKC5EGUqdjqt9oT8ZgAo4B6JuHElLnckbvYCAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1fzw8nklapve02xtn53p79lvfx6dhenw7ugx30s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MvPIp19zGcElXwlTrRvvQ9FZp+q/8JcFXZR7nhAij2z3azh9/3JOQJQAow1jwsxvFzOppnK0TmXYbeXyR+YqDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g2ppsp62d2mcjy8ajw5yuu8qrdnryuz9rx3uqq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JUZWXqueN7qBST6mior18r5WiozoEpaHXfGGUFCEfUolrAfdb4H2HVY0Pxy4mOX6eZGPF/LwOIfWiplw5sCGBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g3ycwas6t943wfh69ppjdt94zd868wdm8hz8dm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5IXZSTzkXF5XgMbddvCZxMx9xyAYICqt/3Bgq+4/RhU1ieE2vctQyZIaSBrn8OnMiddXoSfcc1s5YKGxu+T8Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g4tsmv53frj209377vdd0x6rq9fra887hw5csh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"a4DdBGF3ih/+wvzZmCkAt+xvxzRwI1Gpp+kJ+3CGok4Oc9nwjYGLvF9WJn44JtpzEuq5t8oPFnbsy3gx+oeoBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g6mrca6mneqe98mn658g3np06f008g9dd825xn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mo4CbLG8vX3rDCGNoX3hEgGuNU48L7NBNmUWPO8DOjexv3CM82Kt2UP5S9fv8EVE13askp+5v/vAgXkHfHB/Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g862el8cz3jap78cdnk39435dmhjqevqhuwy2j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fyn+1ItDYNmFnyxgRMpz5xCCDjutb8wlMkMEqYsOjfPOXavskCKFcFxN1rzyFu1Gjhmf7QD34wIf8ZqYbAhkDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g862el8cz3jap78cdnk39435dmhjqevqhuwy2j","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WHeav10syulgmKnORX4st88i1uf5sEeneh85+UaB96B61bj+AjDCqzVka9D6v1794Oj9bJVSgoKaPxBqrw7aCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1g9rgcwspx0avpg4xznet65zvpffdsfht03at78","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tj/nXkchl+yHO5e0/w3lBuFW5JN28xQeIdDXvDV53Vj7m+M+K6og+KtzGnL2fQYiwKOlQy6++a+Km86f6g6lDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gdynnfdc48hqkkjmqawgwxl6rl6cmlkmh5jmqd","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dQhjNQJg582i7RPL9Qp1oN8hWEz3Y+v5a+8s3WBNyuNL0l3sTi+65ScX96/Ji327a3GcWM422VfLee+4NLp9Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gguzxmqy28ghtdt803zpa6sf3stv88q2d7eywn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"f07BeH35tz2hUnc4kbclFFDFsTMNI5LMoVSj69Vy+c7gwU4j/AqLFTBStCy/RX/4fpj5Q+w9tyRMQGd67/xtCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gj35v8z8d3u8y0kx5wrjmj5ktzkvh2qwp9vvtu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s/GWV/FzpIhs+PTsmyErbgEFZ4Phl9dYHeABlIfIGrmhYgdDVoWsd8zK7S12sav4bBJkVoQZANNV9EyZ/zCdDQ=="}],"memo":""},"metadata":{"timestamp":"1731494084"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JkhXkzmGSAVmVzy1fucGkqSZI9jTCOsQ2h30dyoCzytSUUfPpIRq/PFTIaiRsWIOdhoXVV8dkF/OStp5cbtSBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gsxavrpkkh8r22m2wmm2qtmy5jykkgaq8l2pwc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"snqPgDZQ74DdZf9ZoeF7wp6ItdhDjrrsSAkgs+psbKgAGZ2HL7vPvRVCmEFZvAbqlVrwM0RfurYjZNeOYoG6Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gtladv6kley7e40zph2qk7slewkgr05scesdmp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wxxymx3kORBXcy0gN4/rzlKMx45j9i0w3BfrpeuBZ9g798zQu3v71vuj5kvXP6gCuR6it1i6X6RbXtB5acO2Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d5e3eRrQaF4TQNROmuTrbQPoFpMERngA6oA8qgvY39OgKvDF8yL/Heoim5NSHgo3CxOco4NxfuHl27akYzoFCw=="}],"memo":""},"metadata":{"timestamp":"1735659624"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d5e3eRrQaF4TQNROmuTrbQPoFpMERngA6oA8qgvY39OgKvDF8yL/Heoim5NSHgo3CxOco4NxfuHl27akYzoFCw=="}],"memo":""},"metadata":{"timestamp":"1735659906"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d5e3eRrQaF4TQNROmuTrbQPoFpMERngA6oA8qgvY39OgKvDF8yL/Heoim5NSHgo3CxOco4NxfuHl27akYzoFCw=="}],"memo":""},"metadata":{"timestamp":"1735659916"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d5e3eRrQaF4TQNROmuTrbQPoFpMERngA6oA8qgvY39OgKvDF8yL/Heoim5NSHgo3CxOco4NxfuHl27akYzoFCw=="}],"memo":""},"metadata":{"timestamp":"1735660518"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d5e3eRrQaF4TQNROmuTrbQPoFpMERngA6oA8qgvY39OgKvDF8yL/Heoim5NSHgo3CxOco4NxfuHl27akYzoFCw=="}],"memo":""},"metadata":{"timestamp":"1735910022"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gvt2vzeug5aq5d5vnkrgz2tuh9jmxk2dzznzuh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LF1cQ0PFox2GwwGDfru8WheJXk2cxdAyC+TKJo4MVZspobyiaeFXMkMdQuYZWqVM/3p1t+QaTG2R++jipk3AAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gwwxpzewfqn0xezz2fhtg06964s4czufna08wg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c62daM6CDqGU5I9njPoH7Vt11PrW1zBxaVJlVAbcyBMhOMoS9dXJD0FNcYojNqLcM+oE1Q3O6QfRbjUv+vp+CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Dq3acagpOEYXY/nD0YRgXHOtSdC5926PyNbaPTclhd3YCpmTpOzjlK848DNY9mellNaBvjnQVQh8M/sBCLOsDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1gzt4df2yg623s0esl5gdmrhgjq5sr460m005qp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rUr9qeoaTpfGGnI5ntuBDUN74jnrDmnwEPjAH3YVGTGsorvj0texPl9I1XBYEnnpyQhcM06AsS/HLzMEDhDjBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1h4tg9p2tf4krkrd2jqecs0wgtfpp9d5yp4l0tl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+wX1CRCbYyi/voWvuhoeLko8vjh0gu9IjTy9awNIx5zvgPP1NZ1uTQ7mo+fG5n2b6shQZHmATAEaAkPr5hKSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1h4tg9p2tf4krkrd2jqecs0wgtfpp9d5yp4l0tl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+wX1CRCbYyi/voWvuhoeLko8vjh0gu9IjTy9awNIx5zvgPP1NZ1uTQ7mo+fG5n2b6shQZHmATAEaAkPr5hKSDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1h63xr9dx0xluhya9zhvqkytmktuuk4t9ylrq4e","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jdz4pEBEcarY+FvgO8OqEKJOqdGA3OZbfoo28nzscfmdEBYG7BhvGeZ7IxdrKCejh6257QDc8BiI9gI1wlp2Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hace5rjev0m4clkd0q8mqqzcsx67de8d547xe3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"imTYVRsNpiyS0B9DLE6zLT+HIqfaaexyqIXrr18pBv9X6VxjCUDcNdqVDtkO+1vi8/UNLmLRCEfpqmH1u2ppDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hcpl3nuagwjwznuppg36yh7a25csmwa3pnjr8h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xyb0eemeD1O4kLYM7UCY3JE4+7B00lcz8zZk4IFiU4zJkeEI4GbbKD/m9jlqF2VIVBt5R7bbyQW1GC7pxofuDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hcs3xhdjurvzc7462ay04nlnsjz2uaryuc48tl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0TGfpbu8Mp0nyHkhEMZ4sx5I1c33UoeykbgniL0nVdaGvo0/y9+3q+hWhe1HY57ZIxHuFuwRQTGMohxMNueCAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hjmr4p8u695tku0jepmehz4f58jrupuxg8ea65","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x1u6ceuwUHnKhB9ZMAGR+mSQ/2Ifq9U6FrztU+KljhPEq1KnNKroLfHOYqnSUNiecyHrPHkTNzVw0k3hF4wqDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hjmr4p8u695tku0jepmehz4f58jrupuxg8ea65","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x1u6ceuwUHnKhB9ZMAGR+mSQ/2Ifq9U6FrztU+KljhPEq1KnNKroLfHOYqnSUNiecyHrPHkTNzVw0k3hF4wqDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hjmr4p8u695tku0jepmehz4f58jrupuxg8ea65","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x1u6ceuwUHnKhB9ZMAGR+mSQ/2Ifq9U6FrztU+KljhPEq1KnNKroLfHOYqnSUNiecyHrPHkTNzVw0k3hF4wqDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hjmr4p8u695tku0jepmehz4f58jrupuxg8ea65","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x1u6ceuwUHnKhB9ZMAGR+mSQ/2Ifq9U6FrztU+KljhPEq1KnNKroLfHOYqnSUNiecyHrPHkTNzVw0k3hF4wqDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hjmr4p8u695tku0jepmehz4f58jrupuxg8ea65","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x1u6ceuwUHnKhB9ZMAGR+mSQ/2Ifq9U6FrztU+KljhPEq1KnNKroLfHOYqnSUNiecyHrPHkTNzVw0k3hF4wqDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g1byc728z3AWJ5+G0RF3ixT9qUjuFJbcFkNkqklBgQytU0MwMm/2/XVKu3NMc/jjLYbyzxCKhm9OJOqRIB76BA=="}],"memo":""},"metadata":{"timestamp":"1731308285"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hn7kxzsxlgfy32ltagg0qhscfejc8nc7yy64z2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g1byc728z3AWJ5+G0RF3ixT9qUjuFJbcFkNkqklBgQytU0MwMm/2/XVKu3NMc/jjLYbyzxCKhm9OJOqRIB76BA=="}],"memo":""},"metadata":{"timestamp":"1731308300"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hnltudyua06ns4sasvl38ct0e4q9z76lk0nmf3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zv8XlbbFpdsKKxEVaHLReHXsEqv+2ZTHpXmDj8JcHcdqLSVfZHfz3P1R/w6u21lMZnft1Wn7IKUU4FWjAtdBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ht6s3gd40z9j3yew6pevv34xpmlvaz66hxqw6a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gC9CSzjJjk/opl0UmFP3CjSYs/qPG62K+tZWpjCJoSOAGx4gtxYI4JUeH5bCNRocKD3o07yOYUE9VFuU6vq5Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hwnmzlurjxh4kfd2u64jqh7q50wu55vk408em5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SbKhvk53eafxJPdZUxVxMZWZ6CLufvxWxiyRVdjIFA25mQnxpMsdlgX4x6Yuop7jEDAdnTbs+zGfT/7gtjOiBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Exj+plLg3WaVBjUFMzuRsbB/r9up8Ug+93Jzm22brhXAA3K48gLCPZTp6cmDLS4/AnSmQS17MUQueBOD4ZzNAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"26qQ9UTSs+I9y6+OwHAhemhRiB6POxX0iiCr+hzoN+OW+Bj1PXP0xE57ObHLnOZW/ykcds91wNgE+HxTBzc2Dw=="}],"memo":""},"metadata":{"timestamp":"1734514059"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"26qQ9UTSs+I9y6+OwHAhemhRiB6POxX0iiCr+hzoN+OW+Bj1PXP0xE57ObHLnOZW/ykcds91wNgE+HxTBzc2Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hyjh8sf0g4m9ncjlhdfrh960hfk9ar4rwzvkvu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"frJy3PhEhwslgwUJSRtr6Mmw7JhOoR6/J18RX1k8lA61xVokaWJWnG4ol5mwERFZjDy39wM73/o1j/XHtgaSCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1hymmy4vm9vtwruvkvq6ac2nfpnzyzz9jr84k9t","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pmkYo1oZ9u71FsoKdaYvHY45I94ImfiDqNNYCT9qmuy5IewYgrxQ9m06EgSlh0ouFeUj0zvYdCMP5bJthDD0Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1730933478"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1730933508"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1730933533"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731018589"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731469280"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731469300"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731469315"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731952999"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731953019"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731953029"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1731953039"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1732298257"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1732298342"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1732298397"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1732723905"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnRhXuTylF9bDv9iqtWplJK+OeGAa8hnMO1vtpeALtPQLXwGFvOP0Fo8oj7lQN1iu+U+dHmceVaDcNBFqOWZAw=="}],"memo":""},"metadata":{"timestamp":"1732723940"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H2EzgBp6K21XCjUURhfOCZlZPidGPy5ED1fHtecKCAA9P25+/k9NRcyXsHcCvb5owXTV7lKTcmrW1X+LXcOrAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VldBs4iwqKnMWZ554QIZEgn40yt3Mwx0x+PB6jBSly823eJgBcs5MlyOgemlqWvTwd4WiHhsDU9cvEjodxuGDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3ggnsjh6rzqpwh970l3wpywnavahvyyzr4mc6","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yY6fIeFu2s0WceJLNRjJnQd24QKcpHIHb/1g9lfV+/lB/6nJYdo9z7mi8LSKrIm/9lHsJu9wC/U7+Dmp1UHYAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j3snslntzt4q74uqzd3pcwkgjafdwnjm5n8lql","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rgWrf3ts8LsUR12LSrPArcMSpVuRt+R/owkV6UeJ9udHktMRsZrBJYpOEqv2xWhGk0w9ExJor3NCHKj+oC4eBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j430dq27f7axnnmwrgm4rw2kjl20cx4z846vht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ScSXk43sqWbgwVdexcaxprkbFaaJrSDqu/ot1YJkD6mC51DcgpO6MQn7JCeCWsyi3Z+cRcwaLrvXOB18uG+pBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j567re0mapcnncukcs9n3t46thxyx8jcpec92t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q1ihxb47qYgdVLVCdhexHbF50V/2TVQKoaXXW0LCfLfUhFskXD1mnl4SdWhgjLZiioPFcsKXtHljq26woK6BDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j7gj6tw2q4hwl4el0pj7u6f99znzwlu7lj4wtf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S4DO7Jz/b3nlcugs9mVoKDf/qFx+TOzr+R88QkRE4+xnSsjGW3D4q7FdSmFO5Wml4IxfkVwUyEzyxn/BR9IMAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j7gmt6gnh8ym6l4vkhqhl6pm7fk03f2kwgak27","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nJqcwm1t3wNo5tCF64sWy4pqrE5KOUKXOVnfCnJx3pILDN8Z8d3zCL3ic2xMl5aSHKh4+8+sm1SInqJVWBNkBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1j8n3z22j9ue5ulz9yngtk383fxwrcmdmq7p997","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ahz3lS5Pml6Z5QiMMkx5c4hw3w8py4pLhE+G3LE1ZttMBoRknr7hP778Z2APkpnOFSfu7sINfjy7wR+cF/5wBw=="}],"memo":""},"metadata":{"timestamp":"1731494476"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ja0206uug3g3kakwem0atkpeucgtrtr9vagvve","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E6zt7sSVwP6DbDcBOnCD5byxAKddBr90uUIzpWM6LCPmRmet72gKyWp4Vv8zzk636/wXnfJu1HDHOIfq5VnUBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jauvrxtdlnnp7ta956e656lcpe66lu6wpw4r23","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iCXjW2Eqfqh6TjJjosRaxzRm9rg9f38oD75NTagn0JXfKwcnONhcBfwR7bQD1mwUu1HUjXnKKSsogUQgoXT3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tbpWwA68bMsKY0X/stK2zqxM5o4U+0LdVpRVDb1s/WxlE8+kdLRDhXanVg/PbIu5wV78TqTrZR4W8WoMS8tFAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCOsXbtmlUembph9EBswcjUViXJtdrFkZnevO+JDJ9Y6tshEywJbbtvKiOCQVn/K+GFp8ubORzBp3xaDBG4JCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ruV6GV07bLjkGZqMbdbH7qiopAzVeub0zs0ERIV8zxaLCvnsXfeRqkkJnk9Rme1Bqt3wYo5CgXGrZ6nrm6YcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jd36uhevu33nxp8jqdfah72uv6f505d6kj74ly","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PFSw1OOs65sYD5zZnq3Vh7aFxP1Oxv8M31g24p9nUF0WMWuAhJTG7r981BtjCqPBAFynRKBAj4ZrJGLuq1HYBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jdky3gfkpzg8zdgjsh6k45qdmwqjznqktqr73c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RDBs2xPRGVyYUaWvkq+adKUZI1Vi2dMZf6WTullSx7T4p9uZfD2aheYg6pekFq1JGw8T0SFeB5YyLv0Dp1CJCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jffu33gg5yhswjlzeckxdc2eq2ms8768u244uz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UO9T47IBkTAEklBCWTKagTsvUiGUffUBV+iuVK+zq/F6ynD0XsKIbjrBj0PpzdmdlawH6kEgvrFdYsWNYvQrAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""},"metadata":{"timestamp":"1732107417"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""},"metadata":{"timestamp":"1732270922"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""},"metadata":{"timestamp":"1732270952"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK/INGew8DCX6GpIKpDyFIbimsZ3VlSb8JiQJl71Y6HpYQwhwUdX+fkHVyXw4KUgEfnaHvv/YMDVJQwLEQC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W7OTyD6ivpDk5QMbtxWhA2luCH4pQSaMiDUpmQETljH4h5HBXMIA/Vi8iBHV2DKfaRrY3UIQZYBB/nwYSkgJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dy/ok5moCeQJDict02czapal1ZRmPfINowl2xDLX5OKYroZMCZeByxBsvGAOKH6PnX+FWVwem9Zz51H3k+TOAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dy/ok5moCeQJDict02czapal1ZRmPfINowl2xDLX5OKYroZMCZeByxBsvGAOKH6PnX+FWVwem9Zz51H3k+TOAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dy/ok5moCeQJDict02czapal1ZRmPfINowl2xDLX5OKYroZMCZeByxBsvGAOKH6PnX+FWVwem9Zz51H3k+TOAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jhdhyun65t60wee3ktczjdjdfc4092k6aq997v","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nT4mMoO1p33SSF5h1DjODGhENC1n6G360242NcHSfaqUDG4Lgy+4o+xOch8da9aWl6iyEn5Zac4wLLasaG1LAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jlpdmsuja0n3h68vp7ze05gk929hxnw7jakhus","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sNVyx2I4iubRr408uBRZg0t0gfUtZyVNmr/s+TmYQTTMMV85Hl9+xrTBYYbhOCx1GLO8CRw1A3QGcAITf/nwDA=="}],"memo":""},"metadata":{"timestamp":"1730878723"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jlpdmsuja0n3h68vp7ze05gk929hxnw7jakhus","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sNVyx2I4iubRr408uBRZg0t0gfUtZyVNmr/s+TmYQTTMMV85Hl9+xrTBYYbhOCx1GLO8CRw1A3QGcAITf/nwDA=="}],"memo":""},"metadata":{"timestamp":"1730878738"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jql2c90c29gfx98qchcmk93fkdr303ep02wrh5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s/NOuZERkswGVvD0olNP7rfNKNgrHUs8quInrIpl+RVnm7dH8L8VlXlbyjFBz0/E4qJl6rpbAvg82QpCAsXbAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jqxlpv3z60qtezschv4s6vxn530uzd80y4ajyw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3hB1BmKsLiSqIzPrH+E/XSEeIl9PVC8PvXqhveCgSBvR+ynb/ZRfItQpAFWKe5joJFsdvah956EXY8iOS1kcDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jqxlpv3z60qtezschv4s6vxn530uzd80y4ajyw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3hB1BmKsLiSqIzPrH+E/XSEeIl9PVC8PvXqhveCgSBvR+ynb/ZRfItQpAFWKe5joJFsdvah956EXY8iOS1kcDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iJgIHePn3Rz9YPRebFeVo/jAar+c2/Hv72cI6SPv+AbcCRoWOFWHXmT9zIrzuxsgaAkcnDENXADwMTtWUObtCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1js42f22px67uy20lvn2ze0drjwwvs2g345uyxz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XwpkiCcjeKX3j2CGHbXm2schkmt7sfPg1Iny9MeDQM2rr9rM+syWeRU1fE+LLlOy9PrxudbZsSVbFefXWHNvCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"249MW2LlIjj/i94cNj8Y7k/BzKDe4kbsCaZV19VldA2+X5paN0pJS5I3KmqeWrnU8oTI+JKD+JbP1Fy1Z9mmCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jsh6v8050lz2n9fsxru6tswqqjpjp95utly55h","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9ePmlKuVheVDRObuRD6bUWqxhBqRs0WvYlCXCoPz2XnrqTruWJUm74yTE7ileVbOHTBsKKdpAMTmJJsZVc5uCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jsnjessl45vnsme5knmnn8lsnrwda6nx8xs8j8","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2VJ9d3VRSJHt6tmUxF/23SgbnQx22uMdV1O0SRNj6I17ygq2tTtLTPtwawu+ZXfLSV0quz60ZluOrn6C7oAnBg=="}],"memo":""},"metadata":{"timestamp":"1734440594"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k0sQXrcAsA6MtFTCwf2Vl6SPHIBP1BQEtVRL+0azDr7dupOiMR8j1IublBgIdRmawjAdJZIEmogAVS6SdQ0qDw=="}],"memo":""},"metadata":{"timestamp":"1734695836"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jvn780edem2gemwjudxu4aqe2nyw0egxr5pjhu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hVgfsgySgE01uGubSKEHd1EzW1IZ4zz/4rUEBVzHiSyH30VTUbFKkmcsJ6KGact4lR6soLRB9UbVlr+ey5z6Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1jxa6ycu6qnfsa7duzd24pfcu6hqwj0glya7ujy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g1gJFHtNfVgMekYkQQvKwTqs20y6qhUg4/sotJNJWAoBsdXkOBbi3YCRE7sgcJ+JpIiwkaG9nn8G/oLEZv3gAw=="}],"memo":""},"metadata":{"timestamp":"1733988610"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1k5apa2pxkug7nfaxcs2lp0cxc86yrczfjmpsv2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W0NO9dJIX12/z2Or6QWOXHxjC4Bl3LUWziIUmRw0dq01U4QM3VsPDI9+9hMk9v18+6W6Jo6jtHBgInPjBUpfBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1k5apa2pxkug7nfaxcs2lp0cxc86yrczfjmpsv2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J1Opd/LmdsUOi7JhRitiU4tj1TmXIecfHR90e/17cXZRSae4bi6muPQOM6gHMjK3HkSnY+BBEczSPqOtMSs7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1k5apa2pxkug7nfaxcs2lp0cxc86yrczfjmpsv2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J1Opd/LmdsUOi7JhRitiU4tj1TmXIecfHR90e/17cXZRSae4bi6muPQOM6gHMjK3HkSnY+BBEczSPqOtMSs7AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1k67rnu27pl40yhdm5c9k958cmnlyerypgkrtpc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DmLRehUJNWMbTMYfuU3JJ1SyvZGJgVcB6FCSVr4bMG+44dHZGX15tNBV3/R96VwKqaG3I213w7dDgJ1pvf69CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1k9txcn9tmuz4g4z6hjv97s80huqu74wrsc4ru3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BB9dCqK2UpWc1GydgcnkJ+35Ee+ZZ1ZPdD4ehIeOgkRRmJ0LndKJZhNtqt1keRyWZHp0nBXh/YNc+MXaQ4f7Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"007i3L/JATPsZfbSTlPD5/zpMraSjqqeIjkQR6jnr7nQLdiTWqLcJx86D+RnreI573y813gu2uyQ73h1a0V2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcq7hlduvhzrj0pq4vkfmuefl43wau8tgjdnww","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u76Svak1rtBxctC2b2sryOfa2VdVDqOEl3a1EWjc1sOGWNE+x67qNpoWY49zJEIZCThGlXdZXxlgZDvqA7lpDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kcq7hlduvhzrj0pq4vkfmuefl43wau8tgjdnww","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u76Svak1rtBxctC2b2sryOfa2VdVDqOEl3a1EWjc1sOGWNE+x67qNpoWY49zJEIZCThGlXdZXxlgZDvqA7lpDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kdu7txeumknvnkgp29zwmnkkqhcvlypenkeg3a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RwjInL1FN0bdOvgFGpiyd98Y3AeGePD7YNDyI+jRVpMUBp/8taonzbIsEnPQM4dO+2Bi/rkMmwx/LlMZ89uOBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kexfpnv8g9ca62k2uaw6hth32krqmyas9c82c8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hzvZZIbRU9tKd0W6xIi4vvgp774hQrZMv7YYCGygO3JnofrPPsoeNaIneJlb0lAIhenmLZT7eMldrKM0YYuUCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kgez3xe638wstap4kz36nqgym9ln9vsu8ekyt4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2FMNClEgtqS3QgLGI+358Y9e4v5QhmqApTbrCKYu64EuIomLDFglUfLcyOVnhpLk/ZJpYc1YMClfGj+o/ENgAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kgez3xe638wstap4kz36nqgym9ln9vsu8ekyt4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2FMNClEgtqS3QgLGI+358Y9e4v5QhmqApTbrCKYu64EuIomLDFglUfLcyOVnhpLk/ZJpYc1YMClfGj+o/ENgAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kgsrnpjurv6a5uw55s08a6ujcxx3sekn59nfd6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X+DR9twiHCl4picxzmKTQzT2Dn7ygwVKoQCOWl+f/TrXDy9E76GUECP/D0st2AjiJimwV4CnPUL/NYJM/5CyBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kh0rnxzpmadzushz2fmspt7sspmljk3ufdzxae","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LcPrFQIvYFCrmTK+3aL/RAoU1HKzlUkbkyWX8ygJU9P3edwujq4MisIWijx+Mm9Gvu1IOx2KxJVBkyvTw0GPCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kh0rnxzpmadzushz2fmspt7sspmljk3ufdzxae","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LcPrFQIvYFCrmTK+3aL/RAoU1HKzlUkbkyWX8ygJU9P3edwujq4MisIWijx+Mm9Gvu1IOx2KxJVBkyvTw0GPCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"op7aPgd0DBijfS4sOG7Suxh4DOSZ9YdHdLiYkSKvqOblqKOlV19Q871Tr3J9pn+JkK6jucQLQwu8UZR2XD2JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"op7aPgd0DBijfS4sOG7Suxh4DOSZ9YdHdLiYkSKvqOblqKOlV19Q871Tr3J9pn+JkK6jucQLQwu8UZR2XD2JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"utaNA320PlUtebXGeyOcQv/Ba47c0v15SmTw6OR6k8XXaWWsM21iCSk3nvPyzYJxEAgBTJyUfXLCfALtEN80BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kq9tf4wlpawsysxvz9s2ql0lf2jqyz3p20dajm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dgFQH9oPEarLbnDaQ6wCMNvHQQnV8ezO/sKDerLd8h4387wfERvxtxvC/C3f0u69oM0LdUgdmO6faOFJvpllCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kqv375z322zvll4fea47pvpcx9nsz7u2pct74q","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PLahORkPfgUxfE9Rfgnh3aJHkfFCWr1kwG/IxYYLreeGUy2QIdmUuodImU3Te0z4A1JU9Esf5kFbKd3SY+3YAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ku7d4q3fefxfa2w8tdg79lcy6e0uhdpntzcgwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+cXy/NNEWd1zOpNtLWsk7gp9mYCQ+NdHgKJKK8ypALIzIIbpgG4WdFSmHj9BdsaZaZ8yRJy0GcqV+rHpocLCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ku7d4q3fefxfa2w8tdg79lcy6e0uhdpntzcgwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+cXy/NNEWd1zOpNtLWsk7gp9mYCQ+NdHgKJKK8ypALIzIIbpgG4WdFSmHj9BdsaZaZ8yRJy0GcqV+rHpocLCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ku7d4q3fefxfa2w8tdg79lcy6e0uhdpntzcgwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+cXy/NNEWd1zOpNtLWsk7gp9mYCQ+NdHgKJKK8ypALIzIIbpgG4WdFSmHj9BdsaZaZ8yRJy0GcqV+rHpocLCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kv0w2fzv2mnf39da3c9d73upppj5l58pt38wq6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QhHD7RZx+RysAfSkbnaADomXbh+BQBs7aHen/jYPrqFCqP7ls5ZRL9IU4mafmPLHjn8MD1j8ixyd3/7UDObBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zfM3Oc2VQAWkc3Me0oXFjVgqQUpF/t7Ipgo3Q1PHhOr+accxtYQTdX2R2kXIi63hklMEugtNnI00UeuOG65nDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1kwz3qvrf2r7w8rcx4mexuu88usez6j57u9gnkx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kd+Q5K7dTTrx/T4V7Jg4nGqt8sObNlMOz4J79HEFQ2pYYBJ8WlfdpRMsoxscBA84Zr24YZXziyXBI2Woc9PwDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l39m49fg30s9trgrcpf848vema5mfy2lt2texn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kjGsgak5g1MylEQIfZ/1oAi73pNQc16RY2ABxsO9iY24HVlmu+Nuxo68RwUTeqsulyL5qZ/eZH36vhUdQrpCBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l39m49fg30s9trgrcpf848vema5mfy2lt2texn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"15rM13Rez0iip7AJqrce/dYIqPJMGMPBDr5ZUs+ANqKNeGyuHjnTxqmUShqgafK6lur0E7A7q1l3qjZA1fatCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l3gnytad72wxnxedwenq4jj559h4qjz3g302pt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NhKjsPwzR7IFFaV1CPekTXOWL3Zt6+K5O2cQPu7WstUjF6JB/6HBJ3bI+arakF3vIaO+6ZHlr/Xr3++lYNCbBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l4pc52xy0etncudusafxvqzh0thxw265cjprcr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Za8oXDw8N8ziHw5SW/2sLatUxWkMTacoYG21mULYoIKG1wWs4/ZzY7k0NFVvWBehHsmdSMJ1vwYxWNKlGUuAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l4pc52xy0etncudusafxvqzh0thxw265cjprcr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Za8oXDw8N8ziHw5SW/2sLatUxWkMTacoYG21mULYoIKG1wWs4/ZzY7k0NFVvWBehHsmdSMJ1vwYxWNKlGUuAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QD22tSb21JzTuKqzA3jrhcwEIRiYoeSPUybhOsZC8Qz0gm6LWIMK3O84JbsXLJJap6xrsN24IIAFaV8d7SMNDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l630merjkn5qgyxe85ql6k86thjrhnpk88kups","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1BNeZ07lziFd/tOP0bvpi6tpn/JM0641X0DOwYZHNneEDEABWq8046UDiNuPLsxzCJys2/NyY8eUSdUmlrYdAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l630merjkn5qgyxe85ql6k86thjrhnpk88kups","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1BNeZ07lziFd/tOP0bvpi6tpn/JM0641X0DOwYZHNneEDEABWq8046UDiNuPLsxzCJys2/NyY8eUSdUmlrYdAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Sd8q22xAnO46q3poaeIVh2yVu0Dw+QyJqNXulpsZYFVLwRGO9h4ACvQfWW3J93dB35nXHSVrKW99i0vAK4TzCw=="}],"memo":""},"metadata":{"timestamp":"1731481376"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eKjVW6xIBcBiphnQRL0zlzmb+DrXtEXFoiCPsBeoGRXysWv42330ML8wt7mlhDAeKTcwiRmFpM3EVojLW/+ZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lavlav7zwsjqlzzl3qdl3nl242qtf638vnhdjh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pnLANio/T1NnT5OZJsStrAwewjMdkCH8B+GIzTEC/5l8XS7DNEH49v+MYtW6/VKN4AA0RFO4wfMdN0G3MQKgBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1le0nkphlasm4vftr8vd5rkr5644cq5lh3dl656","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"615h12GIIUhF0rc7uubGstzKMSr2QUimgEIEhZuPM9Z1IElt3ZweE7JyrtgMvzG2lbKcxqM5+rJyiFaeJ5FyBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lee0xzj5xmuaur3wf5pw6jexrrs2r0uygskcww","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JVnAmyP6mXsAFIS4MNEaqmIcn17dPlI9K+1M5UMvG7lNAoKHi+o386D+LCYHovoFl+996PnDO19j9IFZT3yRDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lee0xzj5xmuaur3wf5pw6jexrrs2r0uygskcww","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JVnAmyP6mXsAFIS4MNEaqmIcn17dPlI9K+1M5UMvG7lNAoKHi+o386D+LCYHovoFl+996PnDO19j9IFZT3yRDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OljA3s6c3eDZUiT/MmbSUnqwsWjI95DQkk1z83TZKVzj2V1DlWaDVsAEwYDRX3Co/XROKhgJzyPO/PXdmqXbCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lh9m4un79rkcna3kzk2qav2nzu4c2rrn3599kt","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hoqb4RO77fSMAYtYNROUBthgaExlrdmaer1mhdmqzENunZ1ANglQqmVIMYdfs2IhRK/LADZaqhEPTDMZydI1Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lhxvmjz6xzd0vwnftpz4xr4u4lg76ngux8wux9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lt/gIK9NIoXvyVzBECMMdL7ZaASjlkAYVlTapMWyMkgkkihj6cevFoXSpyUyQgcAL/UJQq8j5NTsMBWRTTf3BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lhxvmjz6xzd0vwnftpz4xr4u4lg76ngux8wux9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lt/gIK9NIoXvyVzBECMMdL7ZaASjlkAYVlTapMWyMkgkkihj6cevFoXSpyUyQgcAL/UJQq8j5NTsMBWRTTf3BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lm3m7vvtdmetw2rakac59ckjtd8gr85wdj32ym","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xaif5RCD9h3k6pv7Vv+wKR7f80IJlaPfDrbnZ4EqK47quGPVLYHq/uhWJcUV/so3/Vw2iqsqnIVP0JDgRNk8Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lm3m7vvtdmetw2rakac59ckjtd8gr85wdj32ym","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xaif5RCD9h3k6pv7Vv+wKR7f80IJlaPfDrbnZ4EqK47quGPVLYHq/uhWJcUV/so3/Vw2iqsqnIVP0JDgRNk8Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lp69ux9xhth2360tlwj4hxt43xepnkzujes92q","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OPEUGb2VLzrBLRUygGEP92u0REFLq9ZATizHq1GbpL/JomMya2SLU8X20V7cuh77QuZFqwPeTKp5IC2paGs2CA=="}],"memo":""},"metadata":{"timestamp":"1734498123"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lpmu2lmflyuqxmqytwy2kmudze3cy9vzz6j997","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A9WQW8lyDRMImJTpDeJPEB36jmV0IJOc8jfXIbZ823T9XcSzbJqQRTmH6ybCcQkMxCOpyjdAdwEtIxicVE+SAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lq8cn8kftq0q9ttvnnpy9ye043vca70n3akme3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WG3E1DL2foXU+ZJAXemxkdusQnohKIPKjhhIhDFvtRYQf8numxWSn6Ot1LqhgOcm0QuJTppb3sQn97frbMe3Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lrgp680d82jzu43tzsl6jd20trhy3wc8fg7q6c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J741lMyEXuy816r1jGU00y1wnFk8Od2hTArZCqdDZrAsVoFrsePyplSqlSnirg2AaqS9jVK1QeS1I6zhUng/Cw=="}],"memo":""},"metadata":{"timestamp":"1733988449"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T4fkGJIEzT0FId6oYmkvW4fKk4DvKXazDhdgwVprcjpAIrjHCIoLoWviOo5rWF/uKwUgRJjzH0j6AQQh6frBAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lu4kgzvj4vqd2lhfxl8hchkwz8k3qafrpn50nm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GPe0cn/IQdN/izAs4c9hlcCpcz9shXHw/ua0LczA3m01B9/0Z5qSuX+5fdaA9ji+rCZ8Ff3JSIi8p4rsLG28BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lv4mqg96hkhyrd04tlnu2w4pq6jufz43cm7maf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"drDGlNt8CfHzf9p+lghszhVBK1vbRy8HLHhdyx3vQ8lbk/SSkvKpMeZQLgMlQeWGPkiTmhtTHzZRc44aDVraDQ=="}],"memo":""},"metadata":{"timestamp":"1733988228"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lv4whcmttpn983fvrklatd9x0mk3m6sh0verqn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Axew5pbDDsVaUEvgabbaRuia+uJMaX+AeYiTu9hOpH8gg8B7cMmpkwOw/uW5SulqxnAE7PZ00OxlbdsRWHVyBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lvz7tt8a0mty82d45jt40nszvw0q2n3mzca9yr","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3MYrRtSbUYGwoS9bbWOY41OQhSml2oGVgUF+q2bQQ/YyXPXH1oanp00BTZTi6m9QaHLs7+KTyp4VsfXv6CWLDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1lyrfcg5l66zjh64ue5yqwuptq20c8wwhw8lq93","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KnDOQ6DSd3U9PGiIXC6RfIJjc5jw4MFaeKks9vjA8TG4dbeGxzLUI0H59sbqAco+O8C0gYT9ZoI/ubpjz5u3CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1m2ne26d843jm432d99aunkq8rn5taz4w38xf0s","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/oahM7KLNcBH6uYj3hXqQoskt8B7upGugOK789WCLb35HeoH82lcq/IyfqqjL9XDt1C0YibJXlOgyuTHK9JcCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1m4lkf0dg9lar74x3xcukj6c0svesv5vduq5l35","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bMOW98155jK9DD18V/i5EiH6vpZhuyplwilASqIrQSzYcuLFykmOcShi3dPtG89RptMFsH8OjB9rQ82nI2VEAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mawndas8e782zxjnrg7qqrg2mfx4h7sfsm0nrc","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RMsh4pMrcNEyk2hJWUo9lulOcC5E4pSW8Sl5tyBVp/pUCWCd6o965IChC6Q32xWVRDV41UKwOh/Y5MA1Cr2BCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mdp9dkftwrfekqj68knhn5ag4tjdpedj24sfs8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eMQQCbg7Yz8+Iu1nqWy3VHpruCfOUeSDkzkNAOIr9hQDfTOPCTjT+eAS1kX9dIE5Cz+BmQu9Aspi+BPC12GGBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mejfqc7kxhpuj78y90zz5g3zaxxdmh065yqnx2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3bv8MEBy0Sjg3GgtnxjB0hbFtxjDmkE3UcBqtiO0hnE178ldDRlGhPTWVrSBNLCO0rZy4aye5sPT0Ti6S5olDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mewnyl8gpkw4d0amtmcvdawhtj2k6yzlmasnlx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rcZDoQvdAcqyS2/BPMviiPMhc/mhqx8zjEUKFMrazlgi7iMX2eFChXB/yLUblx57+pgH2Xu2X7Cx/ya9w2DcAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rw2x+Q5otsj3wxyRr836qORI0MlUQpynxD6g1SSu5SCJJpVAqbwuumOPdwQfvBvCPcuoQCAI5TfhhBxB9edqCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rw2x+Q5otsj3wxyRr836qORI0MlUQpynxD6g1SSu5SCJJpVAqbwuumOPdwQfvBvCPcuoQCAI5TfhhBxB9edqCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rw2x+Q5otsj3wxyRr836qORI0MlUQpynxD6g1SSu5SCJJpVAqbwuumOPdwQfvBvCPcuoQCAI5TfhhBxB9edqCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTw+RPb6RnqzOUkGwYCauwPzxA6EkKeIlg9LoSoa162sJJKQ0buZlJhMkAC/n9O7Tyrkir8t4bcvaAy90g6cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTw+RPb6RnqzOUkGwYCauwPzxA6EkKeIlg9LoSoa162sJJKQ0buZlJhMkAC/n9O7Tyrkir8t4bcvaAy90g6cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTw+RPb6RnqzOUkGwYCauwPzxA6EkKeIlg9LoSoa162sJJKQ0buZlJhMkAC/n9O7Tyrkir8t4bcvaAy90g6cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTw+RPb6RnqzOUkGwYCauwPzxA6EkKeIlg9LoSoa162sJJKQ0buZlJhMkAC/n9O7Tyrkir8t4bcvaAy90g6cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTw+RPb6RnqzOUkGwYCauwPzxA6EkKeIlg9LoSoa162sJJKQ0buZlJhMkAC/n9O7Tyrkir8t4bcvaAy90g6cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTw+RPb6RnqzOUkGwYCauwPzxA6EkKeIlg9LoSoa162sJJKQ0buZlJhMkAC/n9O7Tyrkir8t4bcvaAy90g6cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nSPWXOAkxPVhcwriWgmdS7zmkAjAtX7Ip4D1VTj99K8NoIX2Gw5xeZndaELhutqvCTALl35KhwEMsWKdr6idCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nSPWXOAkxPVhcwriWgmdS7zmkAjAtX7Ip4D1VTj99K8NoIX2Gw5xeZndaELhutqvCTALl35KhwEMsWKdr6idCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nSPWXOAkxPVhcwriWgmdS7zmkAjAtX7Ip4D1VTj99K8NoIX2Gw5xeZndaELhutqvCTALl35KhwEMsWKdr6idCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nSPWXOAkxPVhcwriWgmdS7zmkAjAtX7Ip4D1VTj99K8NoIX2Gw5xeZndaELhutqvCTALl35KhwEMsWKdr6idCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nSPWXOAkxPVhcwriWgmdS7zmkAjAtX7Ip4D1VTj99K8NoIX2Gw5xeZndaELhutqvCTALl35KhwEMsWKdr6idCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mhnd9g3zcc8k9yh5lccjc9jtc2zk4w7n5gd0kl","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nSPWXOAkxPVhcwriWgmdS7zmkAjAtX7Ip4D1VTj99K8NoIX2Gw5xeZndaELhutqvCTALl35KhwEMsWKdr6idCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mk3pg7xvh2qa0m8gtnw8xqcyvfrx742jles67t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9CbL1jSIV8IdVDwXTkzsSGzNqPYIJNJRyy8kFmaW1iUhWb7KY/12ngQBYx/+PqzxJLnLSfTylOgC67bKc/fYBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mk3pg7xvh2qa0m8gtnw8xqcyvfrx742jles67t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9CbL1jSIV8IdVDwXTkzsSGzNqPYIJNJRyy8kFmaW1iUhWb7KY/12ngQBYx/+PqzxJLnLSfTylOgC67bKc/fYBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mr440unajgr6l5ppm4swkv49h5uplqaqf36yvc","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3v/zMyQ51z5G2JyycgtxczbbXapmZ4BteBHoBGPJI9Kcm0wlD9Fua6p5hhzwkF9x1hc9HKzFWwyyheAl1noDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mraefc37wwpt0y8g4tqzjjulwkt6smc2ffngrd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"arS4RPH9emik+Nixidwqm1WWczV4lnubmyFQBUvhi90eVyQ/mOmjPRq74YqZUPVpidQw31f0s0eG/Tu2ShsPAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mth6m67fmtpyqj6whkpwfs2w86pagep92paawx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WrrQqihihzUtfa+6xclcLd5Nu0+22eHqgOjEY/jMa7l8fcqnloYmBzUmFLp6U1eIAz9FvQveQ/dfsVNT7iOcCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mxguhd5zacar64txhfm0v7hhtph5wur5hx86vs","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whHvI8T77TB8C4ZkNOr2wg9z07Fr00ivIOaBYpusfbD4X6W1YawItWFTzb1i9j4enaE9+5COMlRX5wKyx2LyDA=="}],"memo":""},"metadata":{"timestamp":"1734435292"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1mzw4s5jj4evl6ep9u4fc07kp3ekcnd8f2p0tk0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P+eafgbqwUtnYacjHD3UJXw+94qBN7XQ492hZOCe1REB0SYtYSwTDUPZVa1bvbgt7GJfDijkbyeo2ttfd0HZDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n2mpwnwtfwpa7qngxfdemrk598r8yn52qhm9j9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rBmpZQoaI2F7/D1yVL+g47PP8anJPHJrrK0jK1B/9BNNdGnI9nznZ4kX+6Em/6voffouaZj07zcVnTmWxOMjDA=="}],"memo":""},"metadata":{"timestamp":"1734698567"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n2mpwnwtfwpa7qngxfdemrk598r8yn52qhm9j9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rBmpZQoaI2F7/D1yVL+g47PP8anJPHJrrK0jK1B/9BNNdGnI9nznZ4kX+6Em/6voffouaZj07zcVnTmWxOMjDA=="}],"memo":""},"metadata":{"timestamp":"1734790363"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n2mpwnwtfwpa7qngxfdemrk598r8yn52qhm9j9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rBmpZQoaI2F7/D1yVL+g47PP8anJPHJrrK0jK1B/9BNNdGnI9nznZ4kX+6Em/6voffouaZj07zcVnTmWxOMjDA=="}],"memo":""},"metadata":{"timestamp":"1734875124"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n2mpwnwtfwpa7qngxfdemrk598r8yn52qhm9j9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rBmpZQoaI2F7/D1yVL+g47PP8anJPHJrrK0jK1B/9BNNdGnI9nznZ4kX+6Em/6voffouaZj07zcVnTmWxOMjDA=="}],"memo":""},"metadata":{"timestamp":"1734959203"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n2mpwnwtfwpa7qngxfdemrk598r8yn52qhm9j9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rBmpZQoaI2F7/D1yVL+g47PP8anJPHJrrK0jK1B/9BNNdGnI9nznZ4kX+6Em/6voffouaZj07zcVnTmWxOMjDA=="}],"memo":""},"metadata":{"timestamp":"1735047218"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n2mpwnwtfwpa7qngxfdemrk598r8yn52qhm9j9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rBmpZQoaI2F7/D1yVL+g47PP8anJPHJrrK0jK1B/9BNNdGnI9nznZ4kX+6Em/6voffouaZj07zcVnTmWxOMjDA=="}],"memo":""},"metadata":{"timestamp":"1735221372"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+ZZm82LrLMdm7LQr+yNtIDSiI+QPrPI6Ioz0VTZMfPmN3IYaY97q2PCi1Y/DW4sMYlffFdqWgFSZET+FxLCcAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n6t4zam4zer8t3wyw379luphejg3s0jf3y2095","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CcUBhg8GBjbJ8TNIhFMtq0sOcDlBXwnwZ7kw5eDpV9rHn+IMS0EPz3ENRZnGinNRJx2QLIptDJBeLdr8MOu2Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n8h74jx4kklr2lh8pwhx4s5vnt0fwsk8sxgl47","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y3/DlIbTaStVQ/S1Ga45uq4/NHgX6Is7YkMCEehCsTiKQOKszih0o02Df/8y3qVmKPBR8EIIkhzggmEuCvGhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n93replyp2pl37qfzkh854eps2z0ar7t0rzzyj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bo/4ekwBbGXWvJtAvtryHXtNTICoJ6qgqbw8G0n+aCtKAYUPiruyHILkmEANA4isxtErJLEApXRK7TJmDVEZDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1n9ev9npa5tfjxvjvupq8hj7rwadmrqqu2yacxm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OxlMPk14Ppq/vYpjiUHB1UBFgRZ4bdVqBr+gpF07DKFBb6qahG8vPTX9oKUQz0nQfxjLDguF0hoalBnfqPikAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nf9emqzf6ljsgmy8hqf3gqdtp68lsuvxkp92pn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HCaKC5PK+3Ndf68KmAVK4JE7iAirNjT+1InkFGgbptWaq0MUOlJiB1qa98o2O1D33yEyyT4vcnq5bUGDaMKoAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OYCw8CE5rUadAOHWpaoLI93FwNUsGqFnUktb8xL0HwKLpi4NAoDV8WmU/N3DQ/Be3AEcr2zGmN+kc/xGcmETDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nhf5tv5a4g2ljn304y3e2nm99l9cjppcapltpe","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ou+gU0jr5mmYn3LootiQlD8Yv2C/BGOGUo0eMPaSbslGvCk1zbsDyeJeHit/W7lBPnrVGqGBi0ffPB68IoalCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nnt7uqxfg3gaqs7uvtcdr3hx4nd7v6yfejfzpq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dwjM8ljCGLBnlXwQatyJn2hRakrCovjW8hWpt9TJmA23tMf1T9cvF2p0da0xQzs5LfyHrVhWlXlU0yWM9/bTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nnt7uqxfg3gaqs7uvtcdr3hx4nd7v6yfejfzpq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dwjM8ljCGLBnlXwQatyJn2hRakrCovjW8hWpt9TJmA23tMf1T9cvF2p0da0xQzs5LfyHrVhWlXlU0yWM9/bTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1np2s2gwq2ht0ulrvrdpzq9avkuhz0xqn448yll","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2+HES2mhmPjcjmDHVV0V/TtEXtNXPDNmIlDl0c36PiDNpJvjvtxLqHpjAdvCyPxNlE7vT5rILvNnt7p4cYOQCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1np8nej2axdk36duhqn4s0k7mgj3e3yw4y6mmly","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gzqls6+8ysYP5TnQ+KaqPOKnmxYyqGckTVL03gWISLqvDYavNcg41+HnrRPd5+0+m1R2lMWHRKFHssyUSq+TCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nq4myv4w8ya9yet0e4hjmy9j64rm87aaquve0f","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4K7adlc4AJBDLzxQwG9WJH+bwqB7slb7QrAbKsdI399xxwyOE6wco/4RwMu5nQtkDM4bN8W5qoJEXnQBBvIFDw=="}],"memo":""},"metadata":{"timestamp":"1733501703"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ns34kdh4myxr5ge6mrngm3themqwj28uww9zp0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nEQlnzg6l9DOodyHN9gEWqhSP6LHit7K+uW4ETg0cJIOfIkBaICNX1v+OUNmN1QuhT/7R/GMbLCGxRxN+KPtDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nueflqclwc7894s6qrlh5cen9uveme9hu5kqaz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tFlx22c+f9hG2cM6KGwUeyoTMkj3pXrVuM496MCrL83odCBPja84YVeNBEhHF/8i8F1BUcyxFL0tR5+8NMXtAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nujevt48ft2hn23nfs8wvggde4j8wm7457d0kj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j9wuvrPTD4U0rzIuh6H5sUIkmUZk5h75ava8ubJJh+WZQwfKvCRb2g111rfGhL7Z/RePtGnn3pfNMmDl0vYKDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nzevnftyunm0mxqzc9nzhf6hw9w7hxjea2lxhh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMrHwS7HmjolLNhV2GE3eY1cRKOS1JZRX+ovW0Y+SSBkJxqxf0R/nwuagywWCwRA2IqF6q7wRyJXKnNECBmbAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1nzh6yq6s3tvrspstmsa3csx57z7m8htt87ss3f","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Y9xfZZJDxkM9PcfdhP0/FvTDNGS119IWSOEBKjLlZwib9WFl/f8buuPk8wr9LS3+et0GrHfdbmWPxPFoYkZAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1p4707jpcdzh4ppdh9rjvvvx7ks0qca3alahvge","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YLWrftDSJ9S6xcC7tX7nQKoekJpvyMVOkHrMahsB+y1CKr5ENKIgzfkkCmRMWVGXGlysryOLDfrYdPpbX1kEAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1p4zhhpx44w8lk9hyclqwh8hk72atd9fp5epxhd","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iNQ5mX11oXQjJc0e4cfYqq4VbHYnzUj3JlkLuWsofNHAq7c3R94YNUtNhuRjIC39DYRNstneSy0T5jLbwvlrAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1p94px8ugj0jx2yjd5lhj64umzkquy9yw03ep8t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uVSb1tf+NFPx9Ncn7C8HOGTnIdGA8wyF06M4YeNz52inOLCc/OYJFT6mjWRObYhx5jqpphzphFM2xoAwOXpRAQ=="}],"memo":""},"metadata":{"timestamp":"1732718794"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pa0rcdua5v9d4vf09ksnnl7t96nfkf3wp379jm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RPRT//e5gOnj2ZYeeaf6zEm9L996IW3HgPPVmQad93qLK/hWkRDZMMxXUZyI/Z1Z8v/roJVqfL8jKdxSv6kEDQ=="}],"memo":""},"metadata":{"timestamp":"1733988815"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4qykimQeh63tx8+G3cVu9Poj6cC3pdE7cqfRUMnDarmZXHZayG4/8rMJ3PJuH23nsg570tna2Tp+RTsvkEr9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4qykimQeh63tx8+G3cVu9Poj6cC3pdE7cqfRUMnDarmZXHZayG4/8rMJ3PJuH23nsg570tna2Tp+RTsvkEr9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4qykimQeh63tx8+G3cVu9Poj6cC3pdE7cqfRUMnDarmZXHZayG4/8rMJ3PJuH23nsg570tna2Tp+RTsvkEr9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4qykimQeh63tx8+G3cVu9Poj6cC3pdE7cqfRUMnDarmZXHZayG4/8rMJ3PJuH23nsg570tna2Tp+RTsvkEr9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4qykimQeh63tx8+G3cVu9Poj6cC3pdE7cqfRUMnDarmZXHZayG4/8rMJ3PJuH23nsg570tna2Tp+RTsvkEr9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4qykimQeh63tx8+G3cVu9Poj6cC3pdE7cqfRUMnDarmZXHZayG4/8rMJ3PJuH23nsg570tna2Tp+RTsvkEr9CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pculvt75jyp7fdwzr2slvyr4u6tfxal2vzxcjz","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AHhRK8Lc3W3InWsQwxNj7+Jjsc0gO5tfmQnfhKAgp1LeUGbTliT51qF/hUG1r89ELIXhDeD56AU2472GyLtLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pdym68qzk9v2lwc7ahfrzhx254nly2qfz65ear","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vD7VcXgAG/4ymNl7oW6H7QV2Nnho4+H9ZFMD0XjDObdH9uhNTBThq1ZKQ3bOIei0IguBzh0M5w6i1eYILK/ABA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pe2fk3mdvkkz4k7nmyhqt5kttzxvyf4j0m7cx3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O7J81F5D5DAV9jSkCS9NAYUjV+kSNssP9SKbTt7b5yTAAY0zDE0nCU1TKafPgsRYF7WOG3v8oRpQU3CjCFKABg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pgqv54akcjrguhaesywd5wyn3tvjxszzjcu5nh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"slk51HzrbRfgssSK8e55amUVfqVPc0njf82dGL6eKBCF6oh9fR82uhGl3LjUyDiF/6DaqsD7NXYvn51JoX+VCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pgr5hyw69q0slyczjv2w5xx0x25337y7pjhzq9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EeTg6Y+Fkb6iGtVx538acGCw6/P8t2VXZ0U89BdPfqJzbK1sA6gPgUVzNIlpk0elrwJHSaKCBIRAOZ1Gb3R8DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1phftkhmuueys407h7slw8hzpydl0u2hm0dl9wj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JqHnrFDk5sflLI6l/qZuNBkIpp0EQT54zTaHsAy4V13plx+JRHX8FmFQyyNcELQaItEyJoAp8vTjHCVOhdmFAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1phftkhmuueys407h7slw8hzpydl0u2hm0dl9wj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JqHnrFDk5sflLI6l/qZuNBkIpp0EQT54zTaHsAy4V13plx+JRHX8FmFQyyNcELQaItEyJoAp8vTjHCVOhdmFAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pk8a4rdvuv4w0ncf5cxewkajrgnth55ue74ru2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HOA7OMh8et1iSO4Sowj/RxKs9IrpJUVvQeWyYGqQ2KhIusZs2dCcIUXlRGogc0Dv/1loVda7RwzxKxdqTMO3Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pk8a4rdvuv4w0ncf5cxewkajrgnth55ue74ru2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wRapH/kBvfUubiOxbIn8FgdrSDARJ0buBWfoGbZh8nzBD/Ygw8wPG8ZHPp3uK3XC8c4T2KjHjhmyMOLvW709CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ps2390yuv3mtu3nn2na7y92t2l84fc63s4ddzn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+OvHw1jvnryIVgckGqfoxNKk6PWikujEvgOB1VUxz9SNDxYxEnRJRejKsOuCuTANvUaqlGH4iu519JG7HjJxAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1pxwk028jhq09fg7ey30xe8lk36su3mk73vnwm0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1ShOKEfXn1fVlOHtNQ5kTJGOYV04rPG0xkUcE27AI+5oPgQ5qUID2+uEFg3IlEeqphlVHj7IVao9CL9GQ7OTDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1q2ru6vt7kmxlgl3khk7vqlfvzrvxanw4dv4e2e","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pkcChebAQT2GOcWKHDS+D06ZhXEFrbuBLRolwNYp1/OoFrBP6/fIbqfDIm3KJidWCLZCfh9jaFEqE4r4fLEBAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1q2wvjtl6u8jhfs4fgy09de442jpn3eldu225cf","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wW/kNOrm8UJgzWGgFuyTajNL5TERyEQBV3YGO/8AJJ9tJumAcZ1bCEGbEvAX3s1a1/7FHbFNMo7mXlpJW6Y2DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1q4aw0vtcydtn7lqmkfprm4ncmr4jdj70dx8zke","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hncPbv/Lcuhcqc56fRaegsD2dHLxViGfhy68eQL12RXiZJUNtIaVhy9xfMaKQO8VHhtOm55aCCvG57Z8X11EDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1q6rfdhhupu6z9xw9pgh95g77hqflpuxxfguc6l","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U9vHO/dd+MOSp//Ol43DeZfmROs9Zo1FGqnTmZcXN1FRcRWE84nGaZGV7rKB8UcyuwwzH48dxHag/FYAZHZ3CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qgdjh6zvzzc8gv3fzk0mu9mezh6gan9hdpx04h","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JqY/6qxLuJyY0Y2iejPw/FMGO8L0IusUYCXkEPRFT5jbosMWsQ3i3j2SYF55gY7qNBWPtNPK+9kEm9eay4R1BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qhhenw5ydq05tes7ardrxhu37zpu6ux5lygvwf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TRoDsYl1Rf6ipLv0NvlEtba6+dZYxUEVJNrOWPKP8pDmy2XOLPGswXj1aG+33lFE6Y/OqYxXuXsazGfdtVvOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qjr9v4qd9xmtzq4gvkspttynqfp4v68gut2ccq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nZ/ThIY1m878wbaTiODoOoj2rB3zZnoyDss+6FZ50QTxZ7wKGpHMLoXPKYl0UNShVlt48gfohZ3iekMs9AMoDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MDDuYW1pdZtGZxt/8Qer18IM18O43osNcVUmpCi+lACyq05C9fbFhY2ZjeUNa/DcbI3d/M0KGPZi/uTdwuobDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qllhfvp2yjs2l9zhslds0m9qn67e4sqjzm0ruv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rgKnORlT8sFvs/wUO387F0t3TjBV+bm1M6CxDX09AOPeu5KteWWzT1B2ONoRNv6kC9hy523Jr3BbUg16LXRvAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qnhdxve2k2dm4v3lk6xacesprypyqwa60tukrl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cie2Riyfr5EJiI4oQJx6CsUMhPpfFedSdMa70B/Tq2PuE2AoyK9QzbfWBiVkZUse8biLuQ/iwjfl98WqLjSTCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qnhdxve2k2dm4v3lk6xacesprypyqwa60tukrl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cie2Riyfr5EJiI4oQJx6CsUMhPpfFedSdMa70B/Tq2PuE2AoyK9QzbfWBiVkZUse8biLuQ/iwjfl98WqLjSTCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qrdz0amdfz4csjt9tm6zp8gkfm82s2kxkvc0ln","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Hr/pQzd7nvAQfor4IUREQCkePnqujebs3pKAphHIqCO/BxaGnVpnmjyrrPhYM6lxkEaMc/dXjVR0QxYvf4mAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qs829f6uxvukahmsl5zgudcmsurrw36c4hmxks","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kUJQDK9TNvTQJ/guh/HWH7PBS4+8myBcelBTeQ+mWe7fUw3Lidey+NTQFh7q0rK7DoFgyGSJBcZ49IJb7C6aCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VClGNxHSKDNiYERcAxLwUk4bVhKJTtU1pckv2FZ1mtC4QoB3BJqiGwwxXbCiD3cl5I+HtvqVfs/fshkKk92CDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qt6jry75fq3d9j4t77xtc286qhqsqlg4xdvvml","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2ZWZgsk6UNTgBQ4dyAM5G1iqHRU3HEEHJrYdZ5eEURzitd98LbJnUkqIHOh6FzY6EnYqSJ4Dbt5S1LUHyKhgBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qt6jry75fq3d9j4t77xtc286qhqsqlg4xdvvml","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rMucijo2kq2bz9HQYcVDd6BFVPhePmjxlcY0RGY8lr443SgkYiSa+bTuEt5zzoX+ZXmrEvGlg+bx5D+puIfkCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qt8vme85tz9kdp6hfk28fq8we226u06fdq2y9g","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oo6U+jQErwvOyVINl6W2/S+qbkAByxo/JXywd0VFvAiMpwaCL3ddFb1ht08vVgHNY2dGAO7JqlXHOJOMQsFzCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qvcgkjdzqx3cx3e0rxrx6xnzfx5cwjg5hy6e40","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v2fxtC2AZHzR/E5LFbfBHadnxzvVl/vjv/IynGeGoMC+SPbJjuxExOWKMRpu4IUz1AbZATR7LCLCxPQws0TlCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qz3s9hd7ycxrv8ge56t9mc5e37sgv7w268ruv2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8EDKWE3J97eOXEdVxOfKLN3gpKlssfjb5SUaiLaP/Tt5OED/cHngzaPbbeCUnXIKvstxD/VX/T8UwF8oodjlAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qzlkrh09zr829x9vxfw8z9055d8w9qylrjf7cf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E5StZkum3E8R8RbkNTD372TAyyIeFmBxgcPtQWB6+hMHMqm1B2GaMrKeTS7FaLN245/U8cipp9revBX/hzl/Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qzlkrh09zr829x9vxfw8z9055d8w9qylrjf7cf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E5StZkum3E8R8RbkNTD372TAyyIeFmBxgcPtQWB6+hMHMqm1B2GaMrKeTS7FaLN245/U8cipp9revBX/hzl/Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qzspag6tjnlx43kme4slthckf3a5vr5sx4tv5c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N+7nPKs+1H2VNbvy+hg4YjgLZk32wAP6S6cbooEZfLJ5hAf+oSlGu95Xk5CBVdCqJ+90WiEqj96T/0HEMHZTCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1qzzpe4es6flghrsxrmruejwwm7d9sqnckfqdsz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IgOl5O7BbHRIlpTa7xrIXmy2hLDUB4K1Kmz1uFBC/L4JhbV2xGWpF49qDUeDLB5CMCoqUI+eYxzmm2pe+x4DBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1r0uk9hkrk4hkk2vlvf9w2r8zr6kcw9pylvg0zq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cvd49Z6BTVQ0oB/w0fXHapF2AmlMIEIsz7FSNpLaloLCtYhbSsUFs58YCcvV5L1TjzfsVMcCXi8KtB6WSvtZAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1r4pyrfd36ngkhvdxte7m4wqtq8n9mp4m2ssmz3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BCA5hLxlwa9rkGODJ7wJLUIT/CB2D7/xkxeCaJ2IAabf4rhIu782mCwMCHead9cYRLPsBwjBB/1+8zV+ibrMBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1r8nt0lmnvfr54qzs9t3zweyj0ujv88lgp4vc47","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pJr2tszuf23RCfNZiSsmgfEkFwWd7jyWignvWBZwrUsKAgZJnsVDb4mIPafTFVU4u6K64BHHKbLiVLzSaICmAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rcfp8gf80ft0hwc9pht6kjk676mmt9pkl4awd6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yXLhRUmo0uI5Rv8U+68GaPNJ2Qq347hIcS0w52DclqxGkcHFElWq8KqqGll2wn/+rPKD/mQ/Fr1aq2eZPqQpDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rcxnjnzx78r2yly5wf2s54apyfhkce7ntuzux8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FnRQsh42wTZtmeyADZwE0LyRfnsxafvt84qw856xFRkMFc6IzoeSjzrpNWTZfNxAjcGXsuIeND1OwMEJyouLBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rdc6g9nxaxanp7fcj4sk53kqtfssm6q7yxn40c","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QrjZgigoVUiEGma0tY8MxHNOdXNlUiPBeFOHOyizZjXvxIRzEWhBQQGQAZnA7zkwYT7DGHbhgYVOxC/G0GNADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rj6lgnldnzjs9cpsvs0hwfj972rrmnm9klmzjw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C0CShJMfivGsZkJ2yNk9RoLYpKyKYKbS/1cvSN+c/xazZfdYKpviJViRCJlEHu30ka2EX3AqyM7+MMwazDGuDA=="}],"memo":""},"metadata":{"timestamp":"1731344420"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rjk898ecz68a5yd67efd7qwr62r2x60ed8d3ye","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e4/ze3//bjDwMdwNoowiLnNvJBfBAecR3LDZOszuMnwxegOlshjiN8pr72k2BOY4HU/GslZse8J/8BxGVtA1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rjvp8rxukfel3c22chcnw9yu4zqz7n4nypdjeq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZwN3BaLGOydmoNPTni1zlYOpwrb3P0qVOX0xBceTVo2O4hr8+cZ7Nx7HgpEk7++NJSuIJcVmO9srLiKXQ6K2AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rjwkc30x66spam5adk0ptedwqhgtcaj3enz7d3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JEyCx/i+TA7RnW39rRKLKcvg6bW6fAPy4KotUqO4U/SCV5FernxWDYSXsCzv8XQ5qThqGfU558jtwgAjHclzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rkajd7ftnnv4v4kwgnsw7rqahqjcnqlafcjjhe","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h/Ft6pj3uY0h6tU+7JMNgTWOuFhxg57i0uTznBwg/oNl5ZhZ8IIIzQr4tl+gOf0GHrrxkXiWoCT9X1Gw2qjLAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B4uW4dXjGIkKcorTIB0822c6Zz3yZ9G2hPz5zmqqXXT+QmSFm2lpQR7WnrEsO1XzwKog634cjGrjgdiw1A+4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ruq7lvl98p5nwvmz0ws58pqdw07qlw4wk3fw7h","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Pu452x7agFYPUlGNe6iaZIBnd1XPvxeJmu5WDAV4Rp0NXv/Gu7ya1H08Byt/FA5m1dI4cVmsoZdTVkSkc5AcDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1rwxql26za6mwxva3h0rpd5x4shg0zw4a4tyfg8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p384kA1eRijYd/WWWpwmj8hlhbgrvB4s+Om4XyY45ubj4ezNjsDG8+cD7o+8fQY2eaNrnpdX0MKnVUsmeFnUBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4F51YK8j92JQaCDQS24gJcILos59Dq261ydTdKpdYqlMAv0P/8SWtfZyS1hbqjrYkGVsFw8+Qacj2CkGWT4VCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s4lvedlmr7j6zzh0qm0njgm8wqaks6jn902dmw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VApKn113GxMvziPpjDrFGiCSLxrKemja+EpuEzMTrwvdErvALvRzbEpDGzzWIbJ/XE0874KKfA1OMDBelEmkCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s4lvedlmr7j6zzh0qm0njgm8wqaks6jn902dmw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q0qjcf5G2424BVxKJ7uYlI63hrtPAmSQXMZps/DlNCJVBVSLu7+52m4rz8lr3gejbcjCz9FJ9zNv/lnCrLXYCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s6z6u3vlumgh8mxgk6q9dhtvm2uh3cde335h4l","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HVpM6U+ctTxQmWqGdHMVYYyYKI6LAocjRg8qELS6bffVlI22C+cY43SKtkrRxIAZZRARlnjYZNomxARnj8rzAw=="}],"memo":""},"metadata":{"timestamp":"1732832268"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s9c65wsz7g4f86xg99a0mgm5kads0dmf7rq5c7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DbQTOBP1kwsOZcrgbsOsqCtsYUeIahdDwRo+qmOxHYYBLiyVU1WmPY+dOeDpdG5pAJU2DUkqW2+rFtAVFXCGCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s9gfyghc53pchgtueyn4v4rjp37azxjz9ncarr","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8jZmOW6P8umimDOU+xMI2CXFnMy9AnmL6/RDUpo2fF19JArteDKZsc5vrP+A2QFNlY6B/6X/A9vJCzUw73ezAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s9gfyghc53pchgtueyn4v4rjp37azxjz9ncarr","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8jZmOW6P8umimDOU+xMI2CXFnMy9AnmL6/RDUpo2fF19JArteDKZsc5vrP+A2QFNlY6B/6X/A9vJCzUw73ezAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1s9zqr3s97l05km7erlwuy7xdwq9zau62xhwsw0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IJvn94Q5xHrf+XtXBE9qcQmThW39JnIDj4INWBudYcTdXYtXtp7K+PVTEH3ORMuZ9LJGOnsqMYCWmtGndSisDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sanakptmervgh67lcyhvvevm7r4wdh2cjkamz3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JmmkTDLk+1QEApYRpAa97Ig7z6OY3gyXzHVQDyYxskehApI8Lnmtg2/HHeFhEybHN+UumCoOXV1kVD6S2g1kCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sanakptmervgh67lcyhvvevm7r4wdh2cjkamz3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JmmkTDLk+1QEApYRpAa97Ig7z6OY3gyXzHVQDyYxskehApI8Lnmtg2/HHeFhEybHN+UumCoOXV1kVD6S2g1kCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sau7lhk73trrfmpg9ua9mv39hjssjeaz3jkc70","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"COxb1FDG+SMSV1EjqJ+GlgnuJA+uvFnDgdC6/1uubnQcCx61mhVRnxUWW6RxpPAnDYlAxks30J6k4LLxngcyDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sc2r5zgfxlde9d6qaf78t2sa4t5w53cdeyv8nf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tyUqaFOxlRSeM9p3HME6Jd1eRbf6iVfggSUID417ou3hey358b1rTAO6NXgcWw2PGUB3RRllPajr4gjUJQtAAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sc4zcep5x4urcp43qvjs3x9syrdxx7r2wcdqhg","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iQ1Q3yz6qJeoDK4aomLxQ3zcn0V6pZmcEsPmza8A38aDrQl07J1ehY+evbeysEoV3iM/RXcqZigNtcozuViOBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sd2hazs3wgxj0xm2v07dycg27r583vjehxaxhk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"09nsOFGAMMlH42rc6D4ob4p9Sq2ODDIP0mnJx7l8MnX2pdOI18tVf5QoQGE56r4EynNear1wLKkZ3XrucvUkDA=="}],"memo":""},"metadata":{"timestamp":"1733988258"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CWqML0g2Uo9ITbtAfkvBEbZObn5mB8j9Qvan3hSgXcpx3x632FipFttS9B90W5LRE65qgM7QCYLuVyun/LfpAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1shacfz374ayxvvk7hnx33pp5te24y2txrtzha6","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vTiTRU+3Xf7oyo8V4SvlUcosftHzlcndHIr21nh3R2qYJoozzMTVr8OX4QULFuZIHpaF7lU3TbhKB02mINSMBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1skjz2w6ruh39tknk5e52ehjkxvfs5sd3csyf3t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ewD/5Jjs/L43MD8KCSv6sga2rjlySDesYwm2bU74rk7fgwe9L1t9SneDo0btBW0x+MjfJtgLIKvq2reDR2XjCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sknkp395aj0p0rkjkmzhrp00wctgtjjmsjemkp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t+A57ixURSfGAmVCFl7yNKm6ILCouUjOqxQ1D6JKimJUv7x3UrbztqVNFJ1hRSyKfA2qKKjfjZkZv9pPUKkMBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1snt7pfs3crqrz2q2r7zul2yqme4x0xvzkyvpax","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zcwicKFsbtjgiIv5qXpZZztdSSjV1g40hfqMv81sLf61ewVCM7d5YO6Yrg2cMRgEUGTOk05t/wbIjlM5a4Q/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1spxskhzkg2pd0c6f332arhrprst45lzym6u6wg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7dnddo6G9wl8cZm0O1nms6AhALV8P10oc5pEBas4ocqQdP+R3awB/fydcCQb+H2Iba08RgtVVOR9+l+P1cPUAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sqn67ex4uhzt60j5hek6f587pa8zelrggstyz7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Tb5vANU0KOsW+plCegsVl0Lm5So2g9UBuiLqXUsvTjHsOfNZtq8XUOmoMj4OZp1GevbF4eTriOQTiDyLXhC8Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2bjBZzntHqyzYb7lXz0yOglTI4jopRWniV6/dl1PZPtqXWiqekkaUhHt5sT/sPj0ouRWYqLStXwg4FJNvCe7CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2bjBZzntHqyzYb7lXz0yOglTI4jopRWniV6/dl1PZPtqXWiqekkaUhHt5sT/sPj0ouRWYqLStXwg4FJNvCe7CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ULJj2HvKOLpv8eF+nx2SUpymvPPsM/Cs5zabyW+UgoHktc/UE9Y42k7CHfY8eTO8XVY62L0MItzbmJyvIGUABw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1svd47qp3kjamyxk8078ck7kstyfglvxtal6en5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y7ys4SupNkyYk225BpM9uiQ6ESX15Fv+HvM4Y8MS2Ojya2JKe97zvfv6IBxnxSzCPA+N6IMYZQ3M3AMOhUm2Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K5dFaKFNuL60rNMgE47/byKydPMnHTJhk/8T9fn8b+f2INuhmodt9S9XA5FoA67fE1jAxsevrBXne9ErsO2dBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vbmd3++sbY59WuJt+951VoR9Ua/sU9vmOVdJrT7SSRftfp6iADIjja0BC6Hb65Yuww1dyb9luJ6jlfresnJ9BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1sxkc7nw9n5td4fqv9fm30zzajykagft375prh0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JMBDqra+a+9X6EV9ZLgeBvIVOpJTIZVl4jp+J+PfeJgA6P00VzALJL1oUEUYLFZmw9CNzV7Zpfei6V+HZa9tAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t03agwh7uu8xe0sx6y0pl2ntrc85ks72xenwy8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VYSB7itUOKbwEcVGgc68SHHMTtWKKbfmEnptCj2Vtx1BOxgKKeo1sqr1eA9wipxLp4GsvWz75kyoPtTJB5aBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t20he984hqsd79y32c20uezq0fgagw29zpstza","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G6B2zgp71uuYcvntyr0fD3cgZhV3lKbalvZhky+e4IlYsGMFyuwgWmQTA6ln8HNBApwZkYdKY9k+TWPaE9c/Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t20he984hqsd79y32c20uezq0fgagw29zpstza","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G6B2zgp71uuYcvntyr0fD3cgZhV3lKbalvZhky+e4IlYsGMFyuwgWmQTA6ln8HNBApwZkYdKY9k+TWPaE9c/Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t40tpvpyfj492hwf2al66hj6mgf7acsu6rw9mf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hRc9npAJMwPFQjQ/QT/Gx4Jhm0aC/dXBs8AXg+yKcxqTk6IxsUvcCTudMWbaUaWBL94W+/59dUy/Oszh8IgfCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t5wmu8x093ac6xsvqdm2v95a3ekk7fsrp9sm77","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rPLl4qoK/N12ch5GDxHsuBRM62eM0OkBlPO9ZTsROTKed23ztCK+5oRfaZsIyq0XANG3CjFFWSKMqgvtj+PuAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t5wmu8x093ac6xsvqdm2v95a3ekk7fsrp9sm77","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lw5WDawoZmuOH/Kbq/B+FUuiY96qs79ERvvu0eUyyaNwY9JP9zGZofMlkrmT4eWz+DTGlldxVV86mtJcyyRBBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t5wmu8x093ac6xsvqdm2v95a3ekk7fsrp9sm77","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lw5WDawoZmuOH/Kbq/B+FUuiY96qs79ERvvu0eUyyaNwY9JP9zGZofMlkrmT4eWz+DTGlldxVV86mtJcyyRBBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t7k3aap9sm8796y6r8pl77tvv3396sfaxmrqn5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Ign8S9PND7Y+6ln/p1AnlkqJQqwsC/to8ygOumg1ET6fN1nskFSL7K2weJUstWIXYPc08OGI4jTxFq0M41GDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dpl+dsZP0qdeL+dBkJzujGUgMKCPYYSSsyDwLxYIFjJMUe+tRXZmXAvGx1I8LfAz24UZtbjR16Yli0ssZ6H4Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FbNyCDenfGlCdx3RumA3PabN9wVLHa6IBiirnyyNYo4UcaD+gVdu5Lp9A0fLQLkXfUjrlQ2ooajfaCnQIRFCAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t98fvvn0l8xg6scaw59hmfxalk3k57jkrk9lay","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ggSd/wc4c6AihIvAo/YL4PqvQQbiSYamtwuUZKEi8ZKJNJJXyLMUd6Hn5Oi4V8hR7ysXlok64EpqlEVvDDVBBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1t9u0ylg533w86fv33g45u20ha49lrn43ddn5sa","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BY0/2Z4kH1VQ/PmHBPEGz6O4OBkZnvjq6mKpACaKApae3o83v9wqueqLiC7xx9rJG3Tz+3AdrsBJ9MAxd4nZDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tc9x3ygyp5gtw45dp3teqch6ef87hdgqqm97h0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G7sRi4MU/fdPMl7Q53s72/aUwafQdYbqkxEZad0P4Tc4pyd3ICT4ZSHCW0uqSU6AYTwCQXw/y0O6y61gs34cBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tde0dax0zps2d9q38ksmhw99gke898uxuucps9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H2jOA89nlgxF+jEQr5Oj6PaqXLE23F/DW5t4vlFMRzXXUOs1KYVjWganGM8rMDiW6iDGcPczvUvJSp4e2Mv3Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tedvpefpm0kz8gk0c6rxpcupwug7gd9ky5l7af","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/IA37HehcJ/qmdilIvtgj4EWJevVP1i/vfTih9alAIT9hnGHkzFPzt74i/XiHEbgcrJIunp9tGFO3HtO0FFJAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tgnfu08qu54xyew5296jy22e0fa24j0u4u9xk9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zewpTGY2PXrzHlIk28+WleoIn65/y3dKsfJam9rXHsJiiCMTI9H4oqjEuMUrLiYJ1vxvcxiwk39ud6SCZ/flCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tgyxhg02u8ktg669kskht03wxsc7c7ltaywxt5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bj8xPRjWB7JglOL2uQEPX3sPrDQa+dahmeP2encj1Cz8lVWqvkvqAGoKbk4HKwLfcL6j/co6hB0djbfe/P8kBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tlzxts8vhwkhmjxc0utjjk3x8nkd237nfau3hh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mY2Qoic+qT4vLtxBNBjt/yc/um+W+z0lbim2nGet2i35bUN4netRVZwDsQjA7IyjRDrcjgk/S3reCAl/qAMcBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tml20hzkmftlheal6jcg00h3qzadu8adsver64","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Sr2GHR4cnkWcUOiWt3NZkDExLN+ahkAJ00kQmLOxnLmSKYMHhQv5wPaqgRJ735mRdpGuhMSU1tTkNfo2375mCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n9NZ24q6vNrY0/otCK2nF5doVc/FBu5bB9Lb7/bFG1GBHmXxMZfWQfxOReiNPXS6nJWlpOhjjO2jdvpEv0roBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"amnJ/Nvmvc2pNtJk7qrs5EYjthSXT4xjM9Gnc6peKaXndPbDA7nZHm381+qeNpovhM8+sd/dSTE16hbAywJfCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1trz9hx96mgucjh8n9ahjmeymxss9u3nfj76jza","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zKaJkMpWNdCWEUYzxyxqe0nvsFdRaKKzibeL/x76viI+unM6tuqgFK0ym9ka5ceMLN9vTyM9ncRriVIbYrJNDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1trz9hx96mgucjh8n9ahjmeymxss9u3nfj76jza","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zKaJkMpWNdCWEUYzxyxqe0nvsFdRaKKzibeL/x76viI+unM6tuqgFK0ym9ka5ceMLN9vTyM9ncRriVIbYrJNDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tsrp0aepcuc9fu80afp0uhkxey9ad8fj0g0nha","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FYtyhSstkNl+N5iOLDxtgUI50ZaUeG2t9kAX3T8J00/+OkEI+oYEYZIMm9pAhx4xqPOTgPweghMXiBFIz45DBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tsvsa6x0xhekmp4yhvuh69x5fd7u7ar3cwzj9y","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KkcLj9E9/BTEW9S+fgnfBwK4Kx/PJUgLtezp7cza4QH5veWRZvTXogFYCDScvSnPlWAmy7qXkyJTENn1wiYDCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1tx2zpsu7m2zzynkf4yq82zcj4hvt2mapkvnqlf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5sbbHqEBEGr4AICopdZ6iyfehHm5UCL+zBRMcC55j0LYH+blCT2OLh+JzOwIcDfzAm+8Pui7OiXl4P0RvhMCBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5qnxr0h0u8gu2v7rzccqu7h2w7r8wu4282v6v","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZOJHTe6XJJXIk0r/HwlPOCpar9zWDkIsKDF1AVWFSPQblQigFd6c8l0sPL2UNeObRNULwdGyX1mijVBJ8H+Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5qnxr0h0u8gu2v7rzccqu7h2w7r8wu4282v6v","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YM96aLUfu14xy0yVb64jLLC67I/J6IJESje4OifKSEFGN6HL5iMtvylCRkClRKv+b7Dm0VrNgtuNe59Pjkc7Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gWsPWL53Bdzkm929S1tG4Aam8OtVRctDpGEnWwLo9t6qE4HP7J3BoS2i2A24ZyvL+MnybssuYFOyhp+GiW4JCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5tktyks4ymlhfp4ll6zgazl4ax7tumncf7fl0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Pqxtim7Ehnsd7d1iS2BevD8gcaBIGOZTecYcxIvXH2j4ZBAuNq6teM5JcxWb23yQxwmZOz48izVxsmP0XpzRCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u5y7xvjr4shuksve7klc9sseqkn0gh9k0e847f","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3tCPFiSpWwhE+ZDGSqku66mBbX88BG2CviuREP+LxYWYJkPjS2OqlGy41ov9H9cjLCyal/H3F2uYM5+4hT1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u72pxvhwgcagjpu2jlv2g80gm2mnzmwqx6a0vk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HqHp1HGSyx/YPnMibZSb/JlGYJvk027g+onA0k4YiKtcU6cU95ULnvHBHDUq72JXhwNLjpIbPP8G0xOseZLKCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u77e5mkfxwuunwxfqz6rncke7zrvv2vy62cwue","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J6VB61Q8UuXn8YVday8D3NYg7wYGxY11hH8/GcvXyLzCbyj3CJIPXQ+0kp/hIcSBI2U0SlrEEWtzTwLKy3FlCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u8k7f6vvr67yxrnyq7njlurvcvrr6sa50th89h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bZwb0/K4zTxivEAT8+WSUGLLlT1Jx2KIMtnLG0OGv4DtVVnGZm8xN1n40yg6zpeT5i9uheAF/7ORfwZX+imSCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u9gc29amtd2sqrddv856mxwp8895edykmyaaac","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HxGZQe7TTz+GFHdEzr1yYKNqsSM2DaTzFjbWX1ewz21QrIhtPcCArFcNgnoOmUEpibjufm9u26a9BhBmYsIhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u9gc29amtd2sqrddv856mxwp8895edykmyaaac","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HxGZQe7TTz+GFHdEzr1yYKNqsSM2DaTzFjbWX1ewz21QrIhtPcCArFcNgnoOmUEpibjufm9u26a9BhBmYsIhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1u9vlsnrv7lxfuhupw7v5vfusc657gvh5hj4fj5","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KFAMX9ctMbLt9FC8IYgWXplDt8R0WJ+yOoNhUt5GwI37Tq1eRAVoQ0szOTUGH6kPi1qb64nzkSngFF0/rbbcBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uf4yqafnw4vyameeek05j8mjpwsyq73j4tfc93","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oWro6cIvwDhYINKANKt/cvEHi7hu+XFhOWWoZphjgxZKIbUqQLBhH2nWV9dU0zmZmofxn3Czmf36KlGr2d5UBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ufu3p429gpeq3063dx0wp4ds3peg0r0f332h6j","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3S1rSwPbFdW65umT9m0HaaO582gYtYPwsxWMsCYUE4IDOiNgoF56I6U8qG8dyan6M55Tn1fuUqx6KaBXGR9zDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ug2r42l4sucy7ed2wu55w9akq9l84t9g35hm4f","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PHhAz0IVv7KKGyIvYi4mEN8lOAITWO49CGsQzLDkheoJFr4AmDkcdUzsYLXAfoZ+1PkTQewQdYj24aMQWiOACw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uggg98wfa4jftqw2al4vqq4eayr7zkgakly0zs","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SkYsWWdCpRUeuLusmOhcrKEYBhwr9iGTaLKaIhSicohhz5POsQLkgz5vnXXS2mQg3KJt//CfzvlL4wyoTy/vDQ=="}],"memo":""},"metadata":{"timestamp":"1734866086"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uggg98wfa4jftqw2al4vqq4eayr7zkgakly0zs","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gqqehOcUuBOrzJ5HKq23zDzCYINLgHNwBsFzgB0wZaIlrErx5wQ4XQypXaSaFY7LhZD/3+CBUMDlSb+78LPkAQ=="}],"memo":""},"metadata":{"timestamp":"1734866116"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1un6eduj3js40765mmakejyuez8x6t4sp44q99p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b0POhDX09qmBnCPK0gH1VwpBkmt0/3nR8MK7yYOMmyEvPiVpWc1pQy9ZegStKqCI+DSoKS02PrMiRxSHeF+KCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1un6eduj3js40765mmakejyuez8x6t4sp44q99p","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i62hWlqfp0epx/DUMRW/+nXuHlIDD4UwQfCx+GQ8G+UOKi2r5sOp6gwzJ+5gdMCL2kaMi39dZBogWUguRSQtCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1un6eduj3js40765mmakejyuez8x6t4sp44q99p","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i62hWlqfp0epx/DUMRW/+nXuHlIDD4UwQfCx+GQ8G+UOKi2r5sOp6gwzJ+5gdMCL2kaMi39dZBogWUguRSQtCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/0vedeUZsXa8vcrQR4dGAaxO2NyAZXCaXau716uqwjdytrGuLZMdJcsp21Lxj6QN8X+9zET+4tpdBgRTb5zaDQ=="}],"memo":""},"metadata":{"timestamp":"1733782162"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1utt8rprh565z7yg54kazusp0fx62accfmjjnn0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CrQ45Kw1x7V0AvoeZXFR47cdCdLWkxvGd9alj3twSTsL8GWQhbk6b9YA0CE4/3tPagJX3J0OrRBDRysKhAljAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1utuf3fk30x09ul9zsf4sehlxdk34hlhsry8sdy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4RziK/MM19ljZWEHgz+rQfs23f6+J66GyzUdmWmY9nUl0bzaXI+KcPCCtr805yzU8/gVEk+BjG0W1nrtDhNqBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uvyyu9h367wcmc6n888de3nur47xk687udc2ex","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vRFdAjYOPJG4MUsQNI/yuFaprGCvv/A5Z3C73kQUSrPmlaLlyTfEP4OztdPAT06iW7/EOtNqX16tN9gfBXSYAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uw2z2pusvmtlsu6ljrzcgzw4fxm3k6z3e72fg7","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCzKVqhqiMOXbTsU8vTVpgPZUMi9uX8dNk7tzz6EiJFWzOBcQqlK1koC11ICXP0wUGEb60rrAFUJ3VZuqjgRDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uylpjn8ua2q659zmylgdyczv9g7adzrl7n3sjm","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+SitWJ/IU1D+oe0vouHlmxzaZ3IJyRqByUI6vJpEGH6KHOcT9dAmDgum04QfW5pT04+VZtQD4q8x+dU3epYzCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1uz0pn536ynfst9hfta63e3l8c7pgv8yl807mcp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EPWqAA1p5hKV8HAg5ovJxr+i+rnXkVK4J1l4aE8xZKPYEcFNx+RL97CGjCLshJYo9sUQLW2HqqRkQWJg5ELoCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v2kmqevjugkuhgdst90q5hmjahcs3xegc6s3z2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hHRRSOZyMZtGrGscx4r/xFPwYaMhmC2AuJ7wwpVhnxkFjPvogwsSAYxpEXXQ+wJs3a17o/1iYC8hsxMuwQ5KCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v2kmqevjugkuhgdst90q5hmjahcs3xegc6s3z2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hHRRSOZyMZtGrGscx4r/xFPwYaMhmC2AuJ7wwpVhnxkFjPvogwsSAYxpEXXQ+wJs3a17o/1iYC8hsxMuwQ5KCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v33xhj8qzeede4kyxl4ppusvhyz6t50pgpglyh","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nBWP0kaUCIpdJFEbbfZO1SSOWlePWubBokF9+TsvYjSR/NA1gtdCAzcFicyKS5qJVbvYimjji3PQ8yiEeuRzDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v5rusgcw2ms3pmcn7svf8clpg0dt2f3k90fdy9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BWPpODJe3HRlIiQOgbqqAFrAQmyRDzVbs3OKmylr5ZZVBqeLUdmj46cvIApV+6JGJypKlkRnV6WGaZBEwZDyAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v664qx78zhv2edtx6ypdylfpafrqjz8g2rlaea","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3dMkGgojwC/sygGv9DYHCrMV99sOF5BuNtePNUfA7MCZLU/RURGfjQxes7rkgTkYjrJAQloJ6a7kRUs+dN52Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v664qx78zhv2edtx6ypdylfpafrqjz8g2rlaea","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3dMkGgojwC/sygGv9DYHCrMV99sOF5BuNtePNUfA7MCZLU/RURGfjQxes7rkgTkYjrJAQloJ6a7kRUs+dN52Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v7lpyf4n70sknhl6f82etgkmzwh5tq3mm60w4m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0bXvuwpEWZ9mlTxqjq0dusVsHfg1pWkwd+wevMYoAvqnJztFbupn2GWNx+dFA4RTY/ZThbB8D26RtkjKH1cnDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1v9f94dnlxu8eqwqvyw7lt8l5udey8483n0422a","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JRN0mJTiNo4+FdrHXiOMZwMlMxCEwWSaQPV/EZJXc0JIR2ymOXFWTg4yrk4KSmpMApZ48SEuFn14QszHIQ1yBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vjrx0lks65yefnsz4xk92vugda2z25esh8g8q9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ahhnikb1WNBuB4VM6iUOwfJcWpFPjUVKsDGlT9EGc1VKdN4GwGEJzf86P7JtzPQkTaogFSi0GzaSaKpKckOZCg=="}],"memo":""},"metadata":{"timestamp":"1733988032"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vjzrzlckdk8n30ns32tz7qqw9dyzeagf7xtskp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IdMfy8/B8cjIkvtORxjfa67RG4SxgE6rp1UyPv6J22bmoNjchQ+Dh6Gj/sI4mZpcooFBsfyke7yyp0dUs5MpAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vlqtn6pukdxy8t2rvl7e9sqf4vdzac4g4vne2n","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4RKwFcWR7MTc29EHE7O1gaD9neps3OtKP0+F5vMVuXUu4hduU7NbyJwuYBFXfSBoRghbRhBXAbIyFCduz1HLBA=="}],"memo":""},"metadata":{"timestamp":"1733988640"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vphh2khghj26jf9k7ex34ycy6yw0gh9w8jnmhk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uktFnH35uWYkKifFnXNcg8ev+b7jYq4v7hS1tHmadVdhNf/keM7/96mygz3n29/TIBK6+I0Ls7vDCCf3wQ0gBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vqawap2hrefm2dut3t4ye7mwhs3kqk7rqtdeeg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EssiWwp47qykD/WUOqetmHFWyJk21qPqi4wmURXFe9EDvshFoZx67Q4+PDF8AQHXJu+CRlz2ZkLjtkcYv/OoBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vqg24cyewanhkwh6yq8rwuprzlz4kqtp4m2etj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ocroz61JNNosg6hhtH7WtQWBpc8yH+tktQCXLTz8IG8FjOiZrKVWzJMHFdhuCjLW3gP0EPaY4Umf2AVxpo/FBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vqg24cyewanhkwh6yq8rwuprzlz4kqtp4m2etj","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QDHcBdY+huyPY92wzBiyU0ASlXjgGCM36dIQlN/4cRnr20CwWrofDcY8AhoFdnlTw0A72N4IyCkW474pqktIDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vqq5l8js07agy849dz3x6asrpavtymf88jh9qq","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"snY2f9yvypfIYCpxyLn+zyc7FdDGjrjGC74mQzM4ny102cGyFM07XZdXj/AAXM8X1RXe1wiw69jexEol6RSFCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mvJInsEkXEsGuzN5j2eeGRp7+5isGUQ3C4J3WQamh4mtM7cGkJOPw+p0zf4Rn+BFJEwC3czuqLZTHpr4sVlVCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vudhmep9ns3f938heglxc3a5jfwpgh9pz4xtwe","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nkvi3GXHja5fl/IulNvXCKiqPu5DZL1UMmusvul/jDQ1A47T8RV+N1VPiuT6zC7Ggt+5Xlg4NwZg+9WH1g86AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vxmy85ezrp23q3leju3da3jtq2tj8pr6haqs9h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"snOgMhWX/LgVGbJTmVNjudnarD0uNHbDvRur9uWFrGS5l6NtqHeK14BHL9ODcoWtAnjujrzOP9uySAZFuJvkDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1vymrn0v33vvd08p4xuh079m4cexp3ygmhglgc4","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"byY8IA3gZPsurXhtgcp2aSofLi7MSgr57xQGzom6k4jYYRrgfMz3FlnFnh3uBy4Ma2TbbAWCKDyjcsLDe1McCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w62226g8hykfmtuasvz80rdf0jl6phgxsphh5v","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YWxE0tpAZMa6xx7zG4hoiAVr5eHCRH31jNHU6R5lAXUq8Ph0haLucxSF3mBMG5RKcEHuZ/GgmV335bDLKNZ1Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w7r45mkk94egfffcfq6dgyz08gymhty28xaxsg","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"muxABpnZWGaw3Rd71ae6/YNEGa3K8D/kmCqZ1XSlNRaaEQJM9w5DA08nkhDk7AS8L4fNktY15iHRuz+wBisbBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4acR1GzLuGliD0BgTO6U19Hjf685vwmV5cv0Zkh4iUzoiOGYRQ4s3br5BDNRseVYDYNwDmnBsybmSR8CqeIGDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4acR1GzLuGliD0BgTO6U19Hjf685vwmV5cv0Zkh4iUzoiOGYRQ4s3br5BDNRseVYDYNwDmnBsybmSR8CqeIGDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4acR1GzLuGliD0BgTO6U19Hjf685vwmV5cv0Zkh4iUzoiOGYRQ4s3br5BDNRseVYDYNwDmnBsybmSR8CqeIGDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yoPgW28mOgN59ipe23/S7BoKVMSX1RCGj0ADPBlb9ShdVf8ri8liZ2EUOGuErD1IqLC86o0myjPAjtSb60PSAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1w8cpkflxysztll935x45llywtz0rdwajcm2lwu","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g/wXQEyCH2P17eCxTYD4j8lGG1vdWb/FJgh6aY9/6uoKIkJkWfuvRbT7M4QsTf/BG8PnPX3BwUvDOHdC5PthBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734619805"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734619820"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734620172"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734620292"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734620312"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734620327"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RUjp07MPL+gnPftjlgEa5btfuqaCC2csJFGDCKChG8/kSeaP9wCu+Hq0jjFbU0RlcSMV9SQoX4BOhhWR6abNCA=="}],"memo":""},"metadata":{"timestamp":"1734624861"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FhQx24K6++VhlCc8UGrB2YJYcrlFEYQ3LZwTF0BNfmRvU4wuAmSbsjys6WNF8cBy4eUiGc2McXJ/cPj2up+tDw=="}],"memo":""},"metadata":{"timestamp":"1736384012"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wjg499cjc062q8ee7uq8wr8ckw9rgjt47qktg9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jfeRmEz+9cIH4cA4w9hVSzuz9eO91VOCIFPUalIkg0oP/UqbIG+Xy1gmrLEptjPUJzxC/S0hO75XVL9phKIaBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wlzgrs7trhf2kwwvwj0mte56n38rn6l743hq8h","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C6wfzoxigfaqHL7tA0hahYj6sl6KjNGfZY6VH0JmusfjRIvG0Av8IpvMtC5L04p4IO/BHwq14/VzpxV6gMv4Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wnk77fuxp622hquyc97zgks00gcaj4xj4ygh7r","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F0m2c3a8x8X6kU9AlAZAZWjXUlQMJ/pb8H8S1kxD743bHPSF9+TQT9mL3UaBNS9pFiAAdoVWuPtVBLZ96wN3Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wukxq4v2v5kreh8l58mewhtaqwmpfn4cm5asf0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hsYgKPtfaE/f5GGTjSG7grOpQi4thi6y8qouipdwfQOgHb53nQUc2CT2FjHmE7KQFItFB5sT/ixo7A78zU1UBQ=="}],"memo":""},"metadata":{"timestamp":"1732342079"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wvjfeck8vu66v0vruj6y32v4qy9l9vjchzwzuy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9D3/8kor92nK/wrLPNKbjuCU4QbOi7Qe9m+obH49apZHq3uzTWD9TXhmHb6TMkyOkmCy6Xj3bq9V8m+BSm9ZBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wvjfeck8vu66v0vruj6y32v4qy9l9vjchzwzuy","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J/oFp1U97QVJ/byr9eZKyQcLOGs724EsXtXC90xZX8pyQV4SuNXEO5VXyxRzLzbDfFh64bOiKCN43hSkeL7gCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wvjfeck8vu66v0vruj6y32v4qy9l9vjchzwzuy","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J/oFp1U97QVJ/byr9eZKyQcLOGs724EsXtXC90xZX8pyQV4SuNXEO5VXyxRzLzbDfFh64bOiKCN43hSkeL7gCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wvjfeck8vu66v0vruj6y32v4qy9l9vjchzwzuy","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J/oFp1U97QVJ/byr9eZKyQcLOGs724EsXtXC90xZX8pyQV4SuNXEO5VXyxRzLzbDfFh64bOiKCN43hSkeL7gCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wxar2cfqg9y0455x4vqhmqrc8fhv8mzmtzrt8m","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VbhVYnJFRTD58SM2nZzwKIXu9G8UJkeq6Vfcqmnif6TcRyLOvk8PHkmpG6eV0HopBnvssI1z0dhAYmTiCXJCBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wxar2cfqg9y0455x4vqhmqrc8fhv8mzmtzrt8m","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0xZiTEsupk6tSUDjsKWlmPRi7/VVzFeyLTWZpiUKSHhdkAiLr19FHuw4pzXVuXaDwuN0FKQ7U7VugSUZl7MkAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1wxar2cfqg9y0455x4vqhmqrc8fhv8mzmtzrt8m","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0xZiTEsupk6tSUDjsKWlmPRi7/VVzFeyLTWZpiUKSHhdkAiLr19FHuw4pzXVuXaDwuN0FKQ7U7VugSUZl7MkAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1x2t3793tds4ra0gn4cgsqlsqnnrvrj8gxj3fxn","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pjME3XGj/PXWQyPccMWjfGns7FZlgkFDyI9FzwBx0JLEKc0m/kJOBn/Z3ZgeLL8G0/7pENmwEm9Er4HbzUonAQ=="}],"memo":""},"metadata":{"timestamp":"1734173524"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1x2t3793tds4ra0gn4cgsqlsqnnrvrj8gxj3fxn","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"81Iu6AP2fuzpEdCDQF/wYPzjubG7M4T4IXgFEB2CqdtPExr3CqxeR05Xf97LbWrZzT84z/qQnmDGpXb6De08BQ=="}],"memo":""},"metadata":{"timestamp":"1734173820"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1x6at82vhqzssgaggl02hma03usygpye25vx27h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UEcsBipt/kuD/UC+rc1MUBdPEmWVUGpvTrhrLevWXhkDbDL4lKrdFB/I1MWbqzkMsKXsHwuEUZnQgtqlPwMMDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1x6at82vhqzssgaggl02hma03usygpye25vx27h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UEcsBipt/kuD/UC+rc1MUBdPEmWVUGpvTrhrLevWXhkDbDL4lKrdFB/I1MWbqzkMsKXsHwuEUZnQgtqlPwMMDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1x6at82vhqzssgaggl02hma03usygpye25vx27h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UEcsBipt/kuD/UC+rc1MUBdPEmWVUGpvTrhrLevWXhkDbDL4lKrdFB/I1MWbqzkMsKXsHwuEUZnQgtqlPwMMDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1x8aqd5h86t8spqw59dvya85yddy0eh0ctdngq8","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+xjF8TGEAjBGgv9h1uXQNRDMdsEDAUcTsbG9lH/u/taxvECfVCMXdabgPK3QhWUwECX/GY/7GqEwl7Uzn/KoDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xck4u2taen6070eryu9glgqd5pugfux463p0mz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pOvGwUYQZg9fv9AgchKnWUSu3Er9T2/MlLFxFZASFmYj9tcNfogY4lHk5xZZVq0v2xzBfZj8m7yfPz1gFF9zBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xck4u2taen6070eryu9glgqd5pugfux463p0mz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pOvGwUYQZg9fv9AgchKnWUSu3Er9T2/MlLFxFZASFmYj9tcNfogY4lHk5xZZVq0v2xzBfZj8m7yfPz1gFF9zBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xeuzf92plp8p0rw2rr3lym78nfgcq0zukpqxmk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lECWYfdcv84RiGYPTZxawGyT5PUMrVLxrRGK7f1GXpPgZ9VUOLl3/MYxHPMNdwEmbodlSQLT+7Jrep3ekN2WBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xfl329g3xy2jky0wrcuc6emqfu9kky7hprxgl4","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YrYjMgodw605xuImP6NhQCRCzdZJXJTAIyEcKG30HM6DVBpmfgR9FCwCYSjq7BpYHB7BimL2njiHFOTme3GTDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xguvpymzapl2qm2zwkvn925tsqxz8gqdkxxm8c","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Nm8T2O3NsCLo5vQqJCvjPEa/ttoLoBOIAqDx6XO7+uikdphX4F2Sv+lqMlEdDDkWtwN4R1Z7L9LS+P0/m6vrAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xh9s2kvewe9hfsqeczp83hqhjp7fvaj76mge74","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ExJyUDYj9OvD1uBkeCTXwP5IHH/3xaDIGnvE2+PghYuM85BkgV4pOu+G9dksXVXc5hVSo0WeLeq5anAJ977JBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xm8jhcsp6205r7punsx5hz8g3p0tudn3wdczmt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bJKaCBLG5xa76TZ1dakanxvIPlizvsJKdfL48JmQehbwb9B169CwoDhYLzyYAWFsdWCHMHQnexbjFAeU+JtNBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xm8jhcsp6205r7punsx5hz8g3p0tudn3wdczmt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bJKaCBLG5xa76TZ1dakanxvIPlizvsJKdfL48JmQehbwb9B169CwoDhYLzyYAWFsdWCHMHQnexbjFAeU+JtNBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xnv4xlna8arjyj0h6nwfpay063v6gys066dese","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PhFvyv0+oSHfPQJwGDJghFv3x1Z1iiQvXsRbLVFJ2pIWIBTHHt+PfxXR82Y63Ktt9CDMwCqscxImKPUzJl4HBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"czC8AaLYKKoJ9mPK0V0Oi+D6IAOZsnJf/UmFWzCIPMM972izohlomSU+AYCltPZseRcg2eby0L7LyvldYy5+AQ=="}],"memo":""},"metadata":{"timestamp":"1734445263"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xp5r36tdxkwr96yx6adjdg6c36qlsn8lk043yz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FRS7HTRSH6gbs32iER7fs0zhopG1DiZ2njRg0OvpsT5WJtzK9hcYwVvHrL6UaUQ4b8+NXtCcz85LERSXwRfOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xq6suh33r3dkwps8c89my04s3k3gyqjlpqxcgj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wrkIP0ALpwgSBTnt+yRM72n/P0DUwdbiTQkN8+M1d5a6elj1j+Rfcw04waomKx+QCsUMnBuIza1hUYJbM4dbCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xthamvcckeppsjx34dertmzl7fhec9t8hvssu2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"14f9bOyCjD5+yOakCFF/bCbeTno0TotredN5o59uUIZq2AS2Xmfh68C5NF7a1a2xXdtCbn/PORds6sKlpmd/Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xyx283r3tfrcnszzhkccwuq7rgjplywvq8653w","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2lcaQhF3SA/9EkoUMkBv7q9A1Vy2VhjLEVBi/pR4FOgh76B1IHLj3t3J4yNygq1ekaMvb+1wqKSZKUNDrjrRCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1xyz82ydya5mtrkag26t07ga8jk9avgsgn3q75y","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PmG0NH8pyNkK7zoLyHUC38a6aUB1+Y/a0gwoZFoFoMMTSBnhwmfsycPqtlTLRcEVxZTl8L2WRNUl1V4F+RvEDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1y03hghsj9rrvmf0xcrn48k53a5anrwxnkp5v7h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kZLZIAYZQSWivmKhYwTF1RQMPkkLDm1Qcg9izfmWDNJvfHt/kew8TUYOn2F3liJWFsOXUWFjRshCQb26PWsgCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1y4xxce0xjtpy3w72dfj2tmxsf9dc7aneyxvqrz","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u3dTTjpII4mxSPmMKC1Qx6mCMZFQYMgiZkQkalyEPUEF+8+28T0sy94mhdojTJn+YMOwOO0ooaok0Als+1nvBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1y6yaj334uwdx7kgr9j4fqk3q8sy6xmv3armars","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FV9R1Vg4fZuTWhI5rAHndxjGhgFoIUionDUEdFsNr949/jo6DBLHyLAdcbui0tFNkOD9f0OIVbJuzmzu/LM1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yd2zy8dxhfg54q68qljsgv04reqvjzfapecl49","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5UxzERZfqbU2imDr0dSRBijdzwgLJRArazyGv2bXTbfpkP5IOZkl2YS+/mgWEZnydZwnZq1efMo20OKLJx/xAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yd6r9485vt33gg8z4y7rqa30mv66ps9064a9lt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NP8TeCb03TnNoXtfCvrk26PoHT8irEzPp9oKBBOgUAm7RX0qud7StOk9GaAWadAIZA9/SoqjfgK+v6maflx3BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yd6r9485vt33gg8z4y7rqa30mv66ps9064a9lt","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NP8TeCb03TnNoXtfCvrk26PoHT8irEzPp9oKBBOgUAm7RX0qud7StOk9GaAWadAIZA9/SoqjfgK+v6maflx3BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yes0ykr6hp7ga8e8g3dvwsgd2vpv3g0s5pte0n","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sIBuPfT4rPFN2f8+Q2iSU/b+e+TSapivl27DIE49g4vF5BUqiqS6HP8wXzC8CVvAgxCcTKp7LNalhbYexTKtDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAJgInwvb2eBBymS+nVbKZY9E+30hu/RmgDmwnulGgMA2NGZ1F2L2hZu7lphyOoXe7QqExathQguDcj99wkYAQ=="}],"memo":""},"metadata":{"timestamp":"1732687180"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAJgInwvb2eBBymS+nVbKZY9E+30hu/RmgDmwnulGgMA2NGZ1F2L2hZu7lphyOoXe7QqExathQguDcj99wkYAQ=="}],"memo":""},"metadata":{"timestamp":"1732687195"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAJgInwvb2eBBymS+nVbKZY9E+30hu/RmgDmwnulGgMA2NGZ1F2L2hZu7lphyOoXe7QqExathQguDcj99wkYAQ=="}],"memo":""},"metadata":{"timestamp":"1732687205"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAJgInwvb2eBBymS+nVbKZY9E+30hu/RmgDmwnulGgMA2NGZ1F2L2hZu7lphyOoXe7QqExathQguDcj99wkYAQ=="}],"memo":""},"metadata":{"timestamp":"1732723895"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UAJgInwvb2eBBymS+nVbKZY9E+30hu/RmgDmwnulGgMA2NGZ1F2L2hZu7lphyOoXe7QqExathQguDcj99wkYAQ=="}],"memo":""},"metadata":{"timestamp":"1732723925"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ny2WB720xKMjSHTVBMdiBT+UEnt/sMEz9XYirjY1+qDExc4dPdD3doiU2z9u7l18m6s2TFhLzY990+j787YNAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yghm3zzf6u3gqrqecx0rhqrslhtfsgf5h9kggy","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BLTJOsud7PFjg+VVTgice+dtVdeHq5HLttEOPOFz0gJo0xemNdu8ti8CzV2EmIaEHzGBdd/8LCKnUyFVRTeZBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ygj7k87y674kmjtgely62hqyerks36zqajmmmw","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NXc67fUVmef9hAT7VmuH3iBgsQD0WLjlvpqa3xpAxWREcJEPnQrz6iy5oYdB8WsTkfrLZjqoDwvt1XSrQiK2Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yhz9l9vs2srt7n64683ja4yfxk8yvvpm297nrg","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dNgBTkL4S7juB+8U4T0/eQgeEcLeBqTSP/bCDwq9qi3cdPDCMcrXhoGCFnK4x/LY4vUviDFTrbbrcZp9kncQAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yjhsj75r7n564wkthg263jqrzwa8uyfqf5tr4p","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RK55r2RFAv135Ks55+8JhaneyK4oNxEuEM8B/t0gardhQnUikO95HnKEa3NLIG/Dm456h5Q7wPCpilxeUqtSCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LAkycl1nhEZ64Nh4rssBh4ApH1XSDLMkbRX96WIVRB22xqFmePVdu+IdpxYDRHJZjItyX5A1Ig+9n56d5F+WDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LAkycl1nhEZ64Nh4rssBh4ApH1XSDLMkbRX96WIVRB22xqFmePVdu+IdpxYDRHJZjItyX5A1Ig+9n56d5F+WDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U03qvgPUs0C49q/LUd9g/Zv9rvYZHDT2pl/rKzjHEmNUFMOqT14d/cA1ni1gukxcUkPXuDdNCz810JSWpwLJBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ymrv9rt8u96j8337uazu0pq36zlmuzkwux6rh0","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L/eTBd3qMgO5poVjrqH+V5CukH92MTPDfxofk/sz9eEqLGvP0geElWnWHKyYGarFvIohhpr5w6znWt92AMt9Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lWWqeuCilQRXWKBSEzIkLUU+dAZgaaY0WhALLOA72XISBGnZJIQM2Trz0LaV4OJdKfQZtD2d/9RDQM4U+L1WDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yqssmaax72ymtdzyyt59pn7nrkur2pap8qpltw","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+u8X9XHPK6qGVGERyU9mojll13hoHH6PRdse9LKjveqcv/b+JlLpKBdW78H9dzvFDc0cCzIHoM4GH6cYPl4mBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yr6mh5k8cjdkrjcmp5mu2przkgjf5265umzj3t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DaWKa/CqKDpKMnQaA/yXx+l8fMnhybo5cmrE7KjemfUHJjRYCafSzhqmMgQVRZbY2rlybcivqrn6nF51WZm2Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yr6mh5k8cjdkrjcmp5mu2przkgjf5265umzj3t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DaWKa/CqKDpKMnQaA/yXx+l8fMnhybo5cmrE7KjemfUHJjRYCafSzhqmMgQVRZbY2rlybcivqrn6nF51WZm2Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1yr6mh5k8cjdkrjcmp5mu2przkgjf5265umzj3t","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DaWKa/CqKDpKMnQaA/yXx+l8fMnhybo5cmrE7KjemfUHJjRYCafSzhqmMgQVRZbY2rlybcivqrn6nF51WZm2Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ywtcf6rvy4nqsptc8l9suuhywq4qxsgf0lqa7q","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z9cp+H2zbJbUlg/ARATZHxhpgyIVvD+pxfaTocyGBo8Ee1IEo8+4q8WZbOw7Q8Pgze1Q2EPk5QRFOYpUQtaLCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ywyuldfmjuzcv565jrn2aja5ux3cg5qwy7x4h2","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l9YXD441xnvC45QnjAEF80305qq4ZDJqz4K0QkI26bOdSLTHl4CvLmUJSFx/V6cGeTRR/ShEpEZGc9fUZZ8xBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1ywyuldfmjuzcv565jrn2aja5ux3cg5qwy7x4h2","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uQ2LJEz2n1VllTS4/cVnI/gBDsttMW4bszEYX7r2yS4yOfL7vwjR2nbchCa/dzAf8VHt7w4z+vAUDZ7nOkQaBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z46a36cfv0rxv7dmvmlzz0c4sycz6g5se9ujpw","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kfVYmyDNIo+tigdepr02cf2Rhx7Y5lUH38OvQ7yi84gIamrpRYqctb+HAaw/oyWJrNwfWeUhb0pNj/5e3UJcBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z5225q6e7qjtmexjmakkn86r66lw94r0gajyn9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ruqa8mrTgoPHskmbfJLr5cRJI9GLP5vaxBO4CAa6rxVDcAlR3u/99pKMWHHUEMBzNrDV3b3+cBesvcWHnRjcAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z5225q6e7qjtmexjmakkn86r66lw94r0gajyn9","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ruqa8mrTgoPHskmbfJLr5cRJI9GLP5vaxBO4CAa6rxVDcAlR3u/99pKMWHHUEMBzNrDV3b3+cBesvcWHnRjcAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z5225q6e7qjtmexjmakkn86r66lw94r0gajyn9","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iArNm6CbljdpnKeJZmJR4Fo4iVuBVRy/okd4mK1CTR/XQDtPTv9AHx5JPys0jXmBP9jhH88Cw+KP3RSv4qUsDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z6actl3cr53gh3kh6cnk70scs77x3e8shvea0h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CE6m9GP5D6YLhdLvij500kmIcix2PewMUHiBi/fnRzZKMbA+Oc5QOpT58Brhx3/fkcjeYufQIYxptW76/QKRBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z6qs6t88rhlafv6qqu5f5xxsax83zczunsc0v0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uH6SOtsyWDJZpnNs5wgnPg9C0VjnK/Oya3WvPWEywXLGb5oukACpiZwuhSQxWfSomBoDFswRqzLCRCoK5QXIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z6qs6t88rhlafv6qqu5f5xxsax83zczunsc0v0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uH6SOtsyWDJZpnNs5wgnPg9C0VjnK/Oya3WvPWEywXLGb5oukACpiZwuhSQxWfSomBoDFswRqzLCRCoK5QXIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z6qs6t88rhlafv6qqu5f5xxsax83zczunsc0v0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uH6SOtsyWDJZpnNs5wgnPg9C0VjnK/Oya3WvPWEywXLGb5oukACpiZwuhSQxWfSomBoDFswRqzLCRCoK5QXIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z6qs6t88rhlafv6qqu5f5xxsax83zczunsc0v0","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uH6SOtsyWDJZpnNs5wgnPg9C0VjnK/Oya3WvPWEywXLGb5oukACpiZwuhSQxWfSomBoDFswRqzLCRCoK5QXIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1z79u75nlj8gadpc2ep82q8v8c66fc36qj4c7y0","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z4uTxpRAUqtUZ1KDsn1rXiYR7V70bF/BEsLrX7KlcpXKEXr1Sb2Uwsd31kKUtJha6ABRe0t0gkTzQ+JpT+26BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zce47s8av4jms7jj7kjn7s9swj2m6zlf047wwz","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZZoi/5oQGthBjoNYadQTXhk5phgktm+VMYrzBTrXyGpFqVvxuL4HleyjJDrnBsYZ/HB9uWUzOMJdKaREicK9CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zd3aykct4yr4steu6f6n9t9z9emwhrkc0wgzef","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SsQxCpe7IuTucmpz6F/vUhNVIj2RU2aloc42oog1E2pCTF9GimZ6AaQtT42GBbEiNzxBx/vk6ZBlPgRlekA9Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zf0fp8dl4ykjknvzzpdgh6enfem8rykr90hf08","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JTepepUB4r9d2tqkOQGuIgVCuPFPWMeAIzA2WN7PGn5rdLe2OzK/0ulM8rPv4lPykpXlxH5nZyaQv9H0BXUFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydTH08emiHhHOG5AiHZFacbapRK2gFz7xUvC30NXVUznGAvZMqY6W+c168qGt8APookrkbYg7/k7QKeqqILiDw=="}],"memo":""},"metadata":{"timestamp":"1736363420"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","amount":"5000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VwrBie/MAy+ifez4NKcAkjasmtefsQh7KSOeO8pzN7I4OmZaKa4mtWwun3jwwmO5NX/KYGses6c93W8BVIFTAA=="}],"memo":""},"metadata":{"timestamp":"1736362924"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zn60z6ty70v292050zs00aqp3ua6h0x43309vp","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6IMfF3a4PVt5n9yPfyVlVdsfZPEY+P7BUA1RabGmB2MhEY0Y5+gMTok0yy9OMVPFIQvredi7WPbRD5CYU4XABg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zn60z6ty70v292050zs00aqp3ua6h0x43309vp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2TALWceR8RvZYemx0dSQ8f1HZUQ6kDRTNHyC1Npb4JrttdF91cQm1c7yyDqdiQSdUMHXnVj72Fc3weFE1e0vDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zn60z6ty70v292050zs00aqp3ua6h0x43309vp","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2TALWceR8RvZYemx0dSQ8f1HZUQ6kDRTNHyC1Npb4JrttdF91cQm1c7yyDqdiQSdUMHXnVj72Fc3weFE1e0vDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1znyfvgnu6t8wnrsggqdmtd344gcu60cjfjs23h","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yPhCT6g8f3Pbyrs1IFOCVCRgiLoBa02/ltbBJ0DXn6Y5pKzjREYzwC5L3kEOj/1WGwURZ1iBJjTXnnp/om9DCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zq6suuwmkqtt7zm4nwruw0hl9xr0cdux7wyajf","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VhMlyge5x449yPJrrohc65y0HArt9FdZtmkO+5TfCrgFa6FHNCA21g4hbKUPfuRFbrXsyPdDdra5ij+WJv07DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zq6suuwmkqtt7zm4nwruw0hl9xr0cdux7wyajf","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oVsKuqAHbLPtjgd1VJVeIWUZi2qeOgcrAfxmrCenxRf7gjMvRvva8eY8pEiYPO2POXA7wgHkF7TCYfrUE1ccDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2S1aGWKRSDhzqzLIz9444H0+AGIxH3Bne4En7t8m85tyow8usLzEMZUmodAOc5gg290nCd3szZDkGtrrHEdODQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2S1aGWKRSDhzqzLIz9444H0+AGIxH3Bne4En7t8m85tyow8usLzEMZUmodAOc5gg290nCd3szZDkGtrrHEdODQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zvfw42mzpa5ddvpkxcwhcxkpt6zy9zch4lrzf6","amount":"1000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GpszVvLNwJ5sDIfTel90kVmNnn/G/mSfH5cNMsFCTB4qkvH5VsVFcE2i9hwN9RJxp/NVWUNFiSr4zFsvykQ3DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zw9v8k4chu96jux53luweqxdy62s805nxx4m92","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"okMuS+QUao1lE07SiUqnXLf2xzNCO7JCi8gttUYfhhlSXqigKL3dyGbNmB0iplBHa812RHLxh5oClCXB6MLWBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","to_address":"g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj","amount":"10000000ugnot"}],"fee":{"gas_wanted":"100000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DD5qnLKwC/AhYNUp1kbVN9Vg8MqRy2Tp6BAEnJnRuGwh6JBPblm44AHv1nlehVIpBuqNyzzyeblyiXUYDQlACg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","to_address":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","amount":"19849999ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2gasAimzxjolaaANGzB0tjvUD6h7U8tBY6OpVXqtlkFbpnyaQ9ma7Vq3jKyW+4UhKz5HacCdZjydYbPdGil5AA=="}],"memo":""},"metadata":{"timestamp":"1734386877"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1rj6lgnldnzjs9cpsvs0hwfj972rrmnm9klmzjw","to_address":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Do/SeaWIBLvUcmcX4bTTCcepIpGWUDEXubCFUUdskhrVaezX3J7YoNS1z2KW3wUE9kB/B+xJlk2J2FhCES2DQ=="}],"memo":""},"metadata":{"timestamp":"1731344435"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","to_address":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","amount":"7000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IpCIWxtfyQw/YraXQ+/yXlk2qNa0wqGpJpe686O8pJI5T7Sf7nHQ+nLaEebr1qVCdJheMB1ZyzAI2Jzjx234Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1u4fysk6yxwhywy9zd6ljd3l2v20xqayd3m3spf","to_address":"g1u4fysk6yxwhywy9zd6ljd3l2v20xqayd3m3spf","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H2qo7EMgEFB+dwukRQBB1Usqw1kP4IJzYw5HcghkkOe8dbHBupX7CRkwJrh5apaaiy4n7RKeKRLA1IwRfEVRDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1u4fysk6yxwhywy9zd6ljd3l2v20xqayd3m3spf","to_address":"g1uphjkkqccf24k598avpyfqs5scqcu39ysmj2jh","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QsYYOi+mOWDYiiueh8r6fT6BhdPC3gpYioOs3zC7jYmzLE6FaCavJz9oKW4Vjz/FasmdrGYWxoOeYvUyP1IMBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","to_address":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pY+XF2CwXhZw3e21rvL8BrI8famH4jn3unD9SEsp/sWI/sJwN88UGIezEnsxc1pex5AkPCrlvLlDlxQW9tsuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1wf3danfjgv2udgf29kqrdxwftf0vvehwyz5u6g","to_address":"g1c6ht9nrtqtfcx08mhhsucua63gevakkyzpjf9u","amount":"4000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xYxKb9VKUrE/TNy8ef/hM6E40ihHDD04XSZrBilx5lZzcEgT122KuaW0nnh54eJOQuLZBHV7+GtrToLFJ4jHAA=="}],"memo":""},"metadata":{"timestamp":"1732440811"}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1ygw7f6c0ldm0ksdf8yqlfzpuj232smya9xgftm","to_address":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","amount":"100000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nHRzFI5SouCLguWKcHi4/mFJpPtsI45gsUCt2xtvvjlsJ9H93x0sImQ7OPaR+1FFNjdJjh2u1wUsAqaobaCiBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1z6ykhrvel4nu49ugyf7e0at89u86cf9d6h0ucr","to_address":"g1xmugg9x4ynp8uuglc5t67jggefp48whmp38k8n","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NA9beFKWYAS2zqMi2LbZXHyeyRfpNfYx6i51TipdApkp2RSzDi0HHUv1/dBpi/w/9kS/zWWt8a+bQxVmBtHfDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1z6ykhrvel4nu49ugyf7e0at89u86cf9d6h0ucr","to_address":"g1xmugg9x4ynp8uuglc5t67jggefp48whmp38k8n","amount":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NA9beFKWYAS2zqMi2LbZXHyeyRfpNfYx6i51TipdApkp2RSzDi0HHUv1/dBpi/w/9kS/zWWt8a+bQxVmBtHfDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1zelq69gvlytut072w0d7pak9meh4q0ns3585nm","to_address":"g186ds44vhuuwpjergp934q9x9f6m2ujr0375gz0","amount":"10ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/cdIYZb3Pm7RVL4oFhPyLCbjKa/LGm1rK8wRnj5A0dRQmM6PV9Uf9tZbWcU6vxEP6Y3de6fUIOStTwZV9PZoDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/bank.MsgSend","from_address":"g1zelq69gvlytut072w0d7pak9meh4q0ns3585nm","to_address":"g1q50ht04re4239txdvwdfzvrehhdmqak8g46wzr","amount":"60000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s4s7MBB2Ondsxq/pb14+qCtIS84oBzhPoL9q8tfcU8Us+GSl8oEyzyN2X8VU5h3fswD8+r95OxT5V27JUD7XAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g102yctcf88g04rh94huujngj2uy4gkcp2tksau6","package":{"name":"hello","path":"gno.land/r/harrisonju123/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\t_ = raffle.RegisterCode(\"4hWxNNMCFB\")\n\t_ = raffle.RegisterUsername(\"harrisonju123\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grtyu/gwXBE1l4LRU5pr96BqFAzMnjsrFwpr1tjnHTpLHABIVAwA8ts9M4qQaPvo1qf+PiYJ+KXzxP5G5QGaBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b3iFBVt5L5tfaiPloYKXx1ZW9SPpnMuZwtOZbqYfxaBv9f13CbiV/tvTw/h705okX33mMJbpYT7FQd2QXTB3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vpzWi9GBEyU7EGeETtFEwerFvGT7M69e3oateYqR98friTWhIiyop/+hfkPlKcsDnBFHfD4R0gYjTnYYRausAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eWsbvbdhZAIGIlG4I56oH2CYUuy0f2/1unxG3nBQ5PhrqdzGoKMJcdRW4Odv3guK07LhlBCyOw5yo/8Es/P8Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ecp6wq0qg352u9a59usqer7a9ddhkt6esxlyk","package":{"name":"counter","path":"gno.land/r//counter","files":[{"name":"package_test.gno","body":"package counter\n\nimport \"testing\"\n\nfunc TestCounter_Increment(t *testing.T) {\n\t// Reset the value\n\tcount = 0\n\n\t// Verify the initial value is 0\n\tif count != 0 {\n\t\tt.Fatalf(\"initial value != 0\")\n\t}\n\n\t// Increment the value\n\tIncrement()\n\n\t// Verify the initial value is 1\n\tif count != 1 {\n\t\tt.Fatalf(\"initial value != 1\")\n\t}\n}\n\nfunc TestCounter_Decrement(t *testing.T) {\n\t// Reset the value\n\tcount = 0\n\n\t// Verify the initial value is 0\n\tif count != 0 {\n\t\tt.Fatalf(\"initial value != 0\")\n\t}\n\n\t// Decrement the value\n\tDecrement()\n\n\t// Verify the initial value is 1\n\tif count != -1 {\n\t\tt.Fatalf(\"initial value != -1\")\n\t}\n}\n\nfunc TestCounter_Render(t *testing.T) {\n\t// Reset the value\n\tcount = 0\n\n\t// Verify the Render output\n\tif Render(\"\") != \"Count: 0\" {\n\t\tt.Fatalf(\"invalid Render value\")\n\t}\n}\n\n// How to: Deploy using Gno Playground"},{"name":"package.gno","body":"package counter\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n\tcount++\n}\n\nfunc Decrement() {\n\tcount--\n}\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"Count: %d\", count)\n}\n\n// How to: Deploy using Gno Playground"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NPF2tAlLA/hZupMO+W4LtjYvJCfwkzdBoA4hjuEmiYCj+/KXF70zPd/2Pwc4fc/oNazgbQkB5XMu0I4H1f2QDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ecp6wq0qg352u9a59usqer7a9ddhkt6esxlyk","package":{"name":"poll","path":"gno.land/r//poll","files":[{"name":"package.gno","body":"package poll\n\nimport (\n\t\"bytes\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/poll\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// state variables\nvar (\n\tpolls *avl.Tree // id -\u003e Poll\n\tpollIDCounter seqid.ID\n)\n\nfunc init() {\n\tpolls = avl.NewTree()\n}\n\n// NewPoll - Creates a new Poll instance\nfunc NewPoll(title, description string, deadline int64) string {\n\t// get block height\n\tif deadline \u003c= std.GetHeight() {\n\t\tpanic(\"deadline has to be in the future\")\n\t}\n\n\t// Generate int\n\tid := pollIDCounter.Next().String()\n\tp := poll.NewPoll(title, description, deadline)\n\n\t// add new poll in avl tree\n\tpolls.Set(id, p)\n\n\treturn ufmt.Sprintf(\"Successfully created poll #%s!\", id)\n}\n\n// Vote - vote for a specific Poll\n// yes - true, no - false\nfunc Vote(id string, vote bool) string {\n\t// get txSender\n\ttxSender := std.GetOrigCaller()\n\n\t// get specific Poll from AVL tree\n\tpollRaw, exists := polls.Get(id)\n\n\tif !exists {\n\t\tpanic(\"poll with specified doesn't exist\")\n\t}\n\n\t// cast Poll into proper format\n\tpoll, _ := pollRaw.(*poll.Poll)\n\n\tvoted, _ := poll.HasVoted(txSender)\n\tif voted {\n\t\tpanic(\"you've already voted!\")\n\t}\n\n\tif poll.Deadline() \u003c= std.GetHeight() {\n\t\tpanic(\"voting for this poll is closed\")\n\t}\n\n\t// record vote\n\tpoll.Vote(txSender, vote)\n\n\t// update Poll in tree\n\tpolls.Set(id, poll)\n\n\tif vote == true {\n\t\treturn ufmt.Sprintf(\"Successfully voted YAY for poll #%s!\", id)\n\t}\n\treturn ufmt.Sprintf(\"Successfully voted NAY for poll #%s!\", id)\n}\n\nfunc Render(path string) string {\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"# Polls!\\n\\n\")\n\n\tif polls.Size() == 0 {\n\t\tb.WriteString(\"### No active polls currently!\")\n\t\treturn b.String()\n\t}\n\tpolls.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\n\t\t// cast raw data from tree into Poll struct\n\t\tp := value.(*poll.Poll)\n\t\tddl := p.Deadline()\n\n\t\tyay, nay := p.VoteCount()\n\t\tyayPercent := 0\n\t\tnayPercent := 0\n\n\t\tif yay+nay != 0 {\n\t\t\tyayPercent = yay * 100 / (yay + nay)\n\t\t\tnayPercent = nay * 100 / (yay + nay)\n\t\t}\n\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"## Poll #%s: %s\\n\",\n\t\t\t\tkey, // poll ID\n\t\t\t\tp.Title(),\n\t\t\t),\n\t\t)\n\n\t\tdropdown := \"\u003cdetails\u003e\\n\u003csummary\u003ePoll details\u003c/summary\u003e\u003cbr\u003e\"\n\n\t\tb.WriteString(dropdown + \"Description: \" + p.Description())\n\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\"\u003cbr\u003eVoting until block: %d\u003cbr\u003eCurrent vote count: %d\",\n\t\t\t\tp.Deadline(),\n\t\t\t\tp.Voters().Size()),\n\t\t)\n\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\"\u003cbr\u003eYAY votes: %d (%d%%)\", yay, yayPercent),\n\t\t)\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\"\u003cbr\u003eNAY votes: %d (%d%%)\u003c/details\u003e\", nay, nayPercent),\n\t\t)\n\n\t\tdropdown = \"\u003cbr\u003e\u003cdetails\u003e\\n\u003csummary\u003eVote details\u003c/summary\u003e\"\n\t\tb.WriteString(dropdown)\n\n\t\tp.Voters().Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\n\t\t\tvoter := key\n\t\t\tvote := value.(bool)\n\n\t\t\tif vote == true {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"\u003cbr\u003e%s voted YAY!\", voter),\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"\u003cbr\u003e%s voted NAY!\", voter),\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn false\n\t\t})\n\n\t\tb.WriteString(\"\u003c/details\u003e\\n\\n\")\n\t\treturn false\n\t})\n\treturn b.String()\n}\n\n// How-to: Write Simple Dapp"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YDS6J2VcUID9KeQi0+FVfqc7g/Dsltdd5bgCvQhJkzSpaHJzTHf+7AHg5gGmcSZVRO801nRP2y08h/6IHiG5AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10ecp6wq0qg352u9a59usqer7a9ddhkt6esxlyk","package":{"name":"poll","path":"gno.land/r//poll","files":[{"name":"package.gno","body":"package poll\n\nimport (\n\t\"bytes\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/poll\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// state variables\nvar (\n\tpolls *avl.Tree // id -\u003e Poll\n\tpollIDCounter seqid.ID\n)\n\nfunc init() {\n\tpolls = avl.NewTree()\n}\n\n// NewPoll - Creates a new Poll instance\nfunc NewPoll(title, description string, deadline int64) string {\n\t// get block height\n\tif deadline \u003c= std.GetHeight() {\n\t\tpanic(\"deadline has to be in the future\")\n\t}\n\n\t// Generate int\n\tid := pollIDCounter.Next().String()\n\tp := poll.NewPoll(title, description, deadline)\n\n\t// add new poll in avl tree\n\tpolls.Set(id, p)\n\n\treturn ufmt.Sprintf(\"Successfully created poll #%s!\", id)\n}\n\n// Vote - vote for a specific Poll\n// yes - true, no - false\nfunc Vote(id string, vote bool) string {\n\t// get txSender\n\ttxSender := std.GetOrigCaller()\n\n\t// get specific Poll from AVL tree\n\tpollRaw, exists := polls.Get(id)\n\n\tif !exists {\n\t\tpanic(\"poll with specified doesn't exist\")\n\t}\n\n\t// cast Poll into proper format\n\tpoll, _ := pollRaw.(*poll.Poll)\n\n\tvoted, _ := poll.HasVoted(txSender)\n\tif voted {\n\t\tpanic(\"you've already voted!\")\n\t}\n\n\tif poll.Deadline() \u003c= std.GetHeight() {\n\t\tpanic(\"voting for this poll is closed\")\n\t}\n\n\t// record vote\n\tpoll.Vote(txSender, vote)\n\n\t// update Poll in tree\n\tpolls.Set(id, poll)\n\n\tif vote == true {\n\t\treturn ufmt.Sprintf(\"Successfully voted YAY for poll #%s!\", id)\n\t}\n\treturn ufmt.Sprintf(\"Successfully voted NAY for poll #%s!\", id)\n}\n\nfunc Render(path string) string {\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"# Polls!\\n\\n\")\n\n\tif polls.Size() == 0 {\n\t\tb.WriteString(\"### No active polls currently!\")\n\t\treturn b.String()\n\t}\n\tpolls.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\n\t\t// cast raw data from tree into Poll struct\n\t\tp := value.(*poll.Poll)\n\t\tddl := p.Deadline()\n\n\t\tyay, nay := p.VoteCount()\n\t\tyayPercent := 0\n\t\tnayPercent := 0\n\n\t\tif yay+nay != 0 {\n\t\t\tyayPercent = yay * 100 / (yay + nay)\n\t\t\tnayPercent = nay * 100 / (yay + nay)\n\t\t}\n\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"## Poll #%s: %s\\n\",\n\t\t\t\tkey, // poll ID\n\t\t\t\tp.Title(),\n\t\t\t),\n\t\t)\n\n\t\tdropdown := \"\u003cdetails\u003e\\n\u003csummary\u003ePoll details\u003c/summary\u003e\u003cbr\u003e\"\n\n\t\tb.WriteString(dropdown + \"Description: \" + p.Description())\n\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\"\u003cbr\u003eVoting until block: %d\u003cbr\u003eCurrent vote count: %d\",\n\t\t\t\tp.Deadline(),\n\t\t\t\tp.Voters().Size()),\n\t\t)\n\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\"\u003cbr\u003eYAY votes: %d (%d%%)\", yay, yayPercent),\n\t\t)\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\"\u003cbr\u003eNAY votes: %d (%d%%)\u003c/details\u003e\", nay, nayPercent),\n\t\t)\n\n\t\tdropdown = \"\u003cbr\u003e\u003cdetails\u003e\\n\u003csummary\u003eVote details\u003c/summary\u003e\"\n\t\tb.WriteString(dropdown)\n\n\t\tp.Voters().Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\n\t\t\tvoter := key\n\t\t\tvote := value.(bool)\n\n\t\t\tif vote == true {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"\u003cbr\u003e%s voted YAY!\", voter),\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"\u003cbr\u003e%s voted NAY!\", voter),\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn false\n\t\t})\n\n\t\tb.WriteString(\"\u003c/details\u003e\\n\\n\")\n\t\treturn false\n\t})\n\treturn b.String()\n}\n\n// How-to: Write Simple Dapp"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YDS6J2VcUID9KeQi0+FVfqc7g/Dsltdd5bgCvQhJkzSpaHJzTHf+7AHg5gGmcSZVRO801nRP2y08h/6IHiG5AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g10y2y4l4g7cx23tkl9jy5u638lw5aykvx7upqaz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nlPoX/IJy9JEdTXApfCYBbRVOU7YdT8abCT/fbu07SBJQd6Jz/lpiZThG+YpLU9KWk0DfLvg7kpyZhWlMQJ3AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MnG+ZpDMSBOdZFEGh+5qa5c25VdmVUZjO9DKJfY8/umoKgmZ7QizvwOW6xjGzpUaMhvUN9mVlLOQBMnBq/VwBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"25000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1E35OF65CrXcc9tKIIhfROwwFIOptx2QfUlQYnfaTVzqTcVq6oL5S7ntLTA2VwZasH0XuyBBbviGqaXKElYtCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CVqW8nNJvkgzkn7cHOxVXOUAyiwtaupEBN3Gg3+MYF5nVaQeB85uIlyM1/VNYoCNt7GE0GHTbYponEa0eTVMDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CVqW8nNJvkgzkn7cHOxVXOUAyiwtaupEBN3Gg3+MYF5nVaQeB85uIlyM1/VNYoCNt7GE0GHTbYponEa0eTVMDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CVqW8nNJvkgzkn7cHOxVXOUAyiwtaupEBN3Gg3+MYF5nVaQeB85uIlyM1/VNYoCNt7GE0GHTbYponEa0eTVMDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CVqW8nNJvkgzkn7cHOxVXOUAyiwtaupEBN3Gg3+MYF5nVaQeB85uIlyM1/VNYoCNt7GE0GHTbYponEa0eTVMDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3JWGenPyyHWV4m4+yGUNsX/0Qwsh+8yV3PVAmAkT8M3EBZ3b79U2Dnp+m7FlHjU+GSfKFgOhuXv4HIrT3KLAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAxd0zGwge7+SECYjUW9buge7zi/f25LWujl9wXAy3kHM5otmz2mALmJTeAvSV5/xLcREmmYivh+C4jYGZQhBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"count","path":"gno.land/r/leon/hello/count","files":[{"name":"package.gno","body":"package hello\n\nimport \"strconv\"\n\nvar count int\n\nfunc Increment() {\n\tcount += 1\n}\n\nfunc Render(path string) string {\n\treturn \"Count: \" + strconv.Itoa(count)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rTX9RPqic2LzU5cFeyFbpBxHUjPb6hq6dO8EI4LTiS3qouUvKI8XvKxq6uSIey3tqY7l3VVN1/ik04gB/bQrCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"entry","path":"gno.land/r/leon/gc/entry","files":[{"name":"entry.gno","body":"package entry\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(testCode)\n}\n\nconst testCode = \"qd0bJ6HTSV\"\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j2D9qop3JLQFR2AZJt4DVUIOSm2hPV+w56YP3D0uriyGhV2t4kjfsz77KD0fE69cLWh2cxZjPWiy2gm6kMaJDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"entry","path":"gno.land/r/leon/v2/raffle/entry","files":[{"name":"entry.gno","body":"package entry\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(testCode)\n}\n\nconst testCode = \"qd0bJ6HTSV\"\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jb9UAB0eIDNN1EPV+hSYIVVDcWEAm6Mu/KCkTlC1mq7/vRMILKKsRWoHmP5OyJepnBXu1X6GRwd7O8tN04Q7Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"foo","path":"gno.land/r//foo","files":[{"name":"package.gno","body":"package foo\n\nimport \"gno.land/p/demo/ufmt\"\n\nvar (\n\tMainFoo *Foo\n\tfoos []*Foo\n)\n\ntype Foo struct {\n\tbar string\n\tbaz int\n}\n\nfunc init() {\n\tMainFoo = \u0026Foo{bar: \"mainBar\", baz: 0}\n}\n\nfunc (f *Foo) String() string {\n\treturn ufmt.Sprintf(\"Foo - (bar: %s) - (baz: %d)\\n\\n\", f.bar, f.baz)\n}\n\nfunc NewFoo(bar string, baz int) *Foo {\n\treturn \u0026Foo{bar: bar, baz: baz}\n}\n\nfunc AddFoos(multipleFoos []*Foo) {\n\tfoos = append(foos, multipleFoos...)\n}\n\nfunc Render(_ string) string {\n\tvar output string\n\n\tfor _, f := range foos {\n\t\toutput += f.String()\n\t}\n\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hlRS05xJPg5IT8Y3Nizc+gD7ofxhhpt963o/MHhyIXlxvohTSqxuUgNIaOif6U+dxB87TqNW+DZheA08jmgBCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"foo","path":"gno.land/r/docs/examples/run/foo","files":[{"name":"package.gno","body":"package foo\n\nimport \"gno.land/p/demo/ufmt\"\n\nvar (\n\tMainFoo *Foo\n\tfoos []*Foo\n)\n\ntype Foo struct {\n\tbar string\n\tbaz int\n}\n\nfunc init() {\n\tMainFoo = \u0026Foo{bar: \"mainBar\", baz: 0}\n}\n\nfunc (f *Foo) String() string {\n\treturn ufmt.Sprintf(\"Foo - (bar: %s) - (baz: %d)\\n\\n\", f.bar, f.baz)\n}\n\nfunc NewFoo(bar string, baz int) *Foo {\n\treturn \u0026Foo{bar: bar, baz: baz}\n}\n\nfunc AddFoos(multipleFoos []*Foo) {\n\tfoos = append(foos, multipleFoos...)\n}\n\nfunc Render(_ string) string {\n\tvar output string\n\n\tfor _, f := range foos {\n\t\toutput += f.String()\n\t}\n\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zqpIZcIJGc6pMfTXpThdRCkFHgxzprW9E2ajjasxu3TMz4PeOuGrIdNMzIhnUUWpzVIpiiSIun/dEBqdQo+EDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"home","path":"gno.land/r/leon/home","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DpjViilr/zsEi2bIcu0pHr5wvZ3jUp4B4fjAtZcqyNSlHHR+CP90s7VbIWH/kMEkIegtyn/C46zV8k25zdq0Bw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"home123123","path":"gno.land/r/leon/home123123","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n\n\n{asdasdas"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mDSu+d8anY+CEeUOS4pBSvJqHAr/1YQmLvfyT76xEJmFHYxg4Xc2SQxuXM6tYwWKgNkd/nYSHySrmtGRA6MEDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"img","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/subpackage/realm/sub1/sub2/sub3/sub4/sub5/sub6/sub7/sub8/sub9/sub10/sub11/sub12/sub13/sub14/sub15/sub16/sub17/sub18/sub19/sub20/sub21/sub22/sub23/sub24/sub25","files":[{"name":"config.gno","body":"package img\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"POcJWF2AKJ19rmlUFcJdb4MIqEYJ2h6YIuVR9K77G2h2codY/tdUERINCK7E4bgFsdCNjc4n0CIJPQ46z2X7CQ=="}],"memo":""},"metadata":{"timestamp":"1731998506"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"img","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/subpackage/realm/sub1/sub2/sub3/sub4/sub5/sub6/sub7/sub8/sub9/sub10/sub11/sub12/sub13/sub14/sub15/sub16/sub17/sub18/sub19/sub20/sub21/sub22/sub23/sub24/sub25/sub1","files":[{"name":"config.gno","body":"package img\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kdzGx372RGgT5i6b9LcWdWHQDJQhUnHvJsTae9wtywvAk55ct2/iDhCcxDfsfsmCUX1/iSkydoSApg3wFdzvDg=="}],"memo":""},"metadata":{"timestamp":"1731998521"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"img","path":"gno.land/r/leon/testing/img","files":[{"name":"config.gno","body":"package img\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zi2qNsct55IuoYOiG7s6VlnF8aHxT6tY2Q7P4VZ00lhjy91Qoq/mWCzUdTYGEV6/VJiF4oPgf6VZx2J6j5erAQ=="}],"memo":""},"metadata":{"timestamp":"1731996598"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"mypkg","path":"gno.land/r/leon/issues/mypkg","files":[{"name":"package.gno","body":"package mypkg\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/tests\"\n)\n\nvar (\n\ttoplvl = std.PrevRealm().Addr()\n\tinitlvl std.Address\n\n\ttoplvltest = tests.GetPrevRealm().Addr()\n\tinitlvltest std.Address\n)\n\nfunc init() {\n\tinitlvl = std.PrevRealm().Addr()\n\tinitlvltest = tests.GetPrevRealm().Addr()\n}\n\nfunc Render(_ string) string {\n\tout := ufmt.Sprintf(\"### prevrealm in this realm (=deployer):\\n\\ntoplvl: %s\\n\\n initlvl: %s\\n\\n\", toplvl, initlvl)\n\tout += ufmt.Sprintf(\"### prevrealm in tests (=current realm addr):\\n\\ntoplvl using test: %s\\n\\n initlvl using test: %s\\n\\n\", toplvltest, initlvltest)\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YnXC3w47lROZhiK3RUkfxtCDc2l+h8gkcXkJWb+mYlIXQ98mRVQAD4N2zfwtRaDvp3yl38um8IiTMh/QqeMICw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/p/leon/demo/poll","files":[{"name":"package.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// gno.land/p/demo/poll\n// avl tree\n\ntype Poll struct {\n\ttitle string\n\tdescription string\n\tdeadline int64 // block number\n\tvoters map[std.Address]int // address (user) \u003e yes/no // -1 = no, 1 = yes, 0 has not voted\n}\n\n// getters\n\nfunc (p Poll) Title() string {\n\treturn p.title\n}\n\nfunc (p Poll) Description() string {\n\treturn p.description\n}\n\nfunc (p Poll) Deadline() int64 {\n\treturn p.deadline\n}\n\nfunc (p Poll) Voters() map[std.Address]int {\n\treturn p.voters\n}\n\n// setters\n\nfunc (p *Poll) Vote(voter std.Address, vote int) error {\n\tif !voter.IsValid() {\n\t\treturn errors.New(\"voter address is not valid\")\n\t}\n\n\tif vote != -1 || vote != 1 {\n\t\treturn errors.New(\"invalid vote, needs to be -1 (no) or 1 (yes)\")\n\t}\n\n\tif _, exists := p.voters[voter]; exists {\n\t\treturn errors.New(\"voter already voted\")\n\t}\n\n\tp.voters[voter] = vote\n\n\treturn nil\n}\n\n// constructor\n\nfunc NewPoll(title, description string, deadline int64) (*Poll, error) {\n\tif title == \"\" || description == \"\" {\n\t\treturn nil, errors.New(\"you need to provide both the title and the description to the poll\")\n\t}\n\n\tcurrentBlockNumber := std.GetHeight() // now\n\tif deadline \u003c currentBlockNumber {\n\t\treturn nil, errors.New(\"deadline needs to be in the future\")\n\t}\n\n\treturn \u0026Poll{\n\t\ttitle: title,\n\t\tdescription: description,\n\t\tdeadline: deadline,\n\t\tvoters: make(map[std.Address]int),\n\t}, nil\n}\n\nfunc (p Poll) VoteCount() (int, int) {\n\tvar yes int\n\n\tfor _, vote := range p.voters {\n\t\tif vote == 1 {\n\t\t\tyes += 1\n\t\t}\n\t}\n\n\ttotalVotes := len(p.voters)\n\n\treturn yes, totalVotes - yes\n}\n"},{"name":"pkg_test.gno","body":"package poll\n\nimport \"testing\"\n\nfunc TestNewPoll(t *testing.T) {\n\ttitle := \"My Poll\"\n\tdesc := \"This is my first poll\"\n\tdeadline := 1000\n\n\tp := NewPoll(title, desc, deadline)\n\n\tif p.title != \"My Poll\" {\n\t\tt.Fatalf(\"expected %s, got %s\", title, p.title)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lqkmRsAb+NBvj1V7s6WC2iB2H/kWfw6vlf0y9nfiGTvIX2L5CvCcGrZ/KMrQAKxDOFLjhT+N+S+MYZVGCtTkCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/p/leon/demo/poll","files":[{"name":"package.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// gno.land/p/demo/poll\n// avl tree\n\ntype Poll struct {\n\ttitle string\n\tdescription string\n\tdeadline int64 // block number\n\tvoters map[std.Address]int // address (user) \u003e yes/no // -1 = no, 1 = yes, 0 has not voted\n}\n\n// getters\n\nfunc (p Poll) Title() string {\n\treturn p.title\n}\n\nfunc (p Poll) Description() string {\n\treturn p.description\n}\n\nfunc (p Poll) Deadline() int64 {\n\treturn p.deadline\n}\n\nfunc (p Poll) Voters() map[std.Address]int {\n\treturn p.voters\n}\n\n// setters\n\nfunc (p *Poll) Vote(voter std.Address, vote int) error {\n\tif !voter.IsValid() {\n\t\treturn errors.New(\"voter address is not valid\")\n\t}\n\n\tif vote != -1 || vote != 1 {\n\t\treturn errors.New(\"invalid vote, needs to be -1 (no) or 1 (yes)\")\n\t}\n\n\tif _, exists := p.voters[voter]; exists {\n\t\treturn errors.New(\"voter already voted\")\n\t}\n\n\tp.voters[voter] = vote\n\n\treturn nil\n}\n\n// constructor\n\nfunc NewPoll(title, description string, deadline int64) (*Poll, error) {\n\tif title == \"\" || description == \"\" {\n\t\treturn nil, errors.New(\"you need to provide both the title and the description to the poll\")\n\t}\n\n\tcurrentBlockNumber := std.GetHeight() // now\n\tif deadline \u003c currentBlockNumber {\n\t\treturn nil, errors.New(\"deadline needs to be in the future\")\n\t}\n\n\treturn \u0026Poll{\n\t\ttitle: title,\n\t\tdescription: description,\n\t\tdeadline: deadline,\n\t\tvoters: make(map[std.Address]int),\n\t}, nil\n}\n\nfunc (p Poll) VoteCount() (int, int) {\n\tvar yes int\n\n\tfor addr, vote := range p.voters {\n\t\tif vote == 1 {\n\t\t\tyes += 1\n\t\t}\n\t}\n\n\ttotalVotes := len(p.voters)\n\n\treturn yes, totalVotes - yes\n}\n"},{"name":"pkg_test.gno","body":"package poll\n\nimport \"testing\"\n\nfunc TestNewPoll(t *testing.T) {\n\ttitle := \"My Poll\"\n\tdesc := \"This is my first poll\"\n\tdeadline := 1000\n\n\tp := NewPoll(title, desc, deadline)\n\n\tif p.title != \"My Poll\" {\n\t\tt.Fatalf(\"expected %s, got %s\", title, p.title)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EAQjg+WN69tnEzKkG92qu47PnXBMjITO6Jo+1TVyGBr5uLu/H/jBFko1pzow7ubk+YUELA5cLofXkZhh5WN3CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/p/leon/demo/poll","files":[{"name":"package.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// gno.land/p/demo/poll\n// avl tree\n\ntype Poll struct {\n\ttitle string\n\tdescription string\n\tdeadline int64 // block number\n\tvoters map[std.Address]int // address (user) \u003e yes/no // -1 = no, 1 = yes, 0 has not voted\n}\n\n// getters\n\nfunc (p Poll) Title() string {\n\treturn p.title\n}\n\nfunc (p Poll) Description() string {\n\treturn p.description\n}\n\nfunc (p Poll) Deadline() int64 {\n\treturn p.deadline\n}\n\nfunc (p Poll) Voters() map[std.Address]int {\n\treturn p.voters\n}\n\n// setters\n\nfunc (p *Poll) Vote(voter std.Address, vote int) error {\n\tif !voter.IsValid() {\n\t\treturn errors.New(\"voter address is not valid\")\n\t}\n\n\tif vote != -1 || vote != 1 {\n\t\treturn errors.New(\"invalid vote, needs to be -1 (no) or 1 (yes)\")\n\t}\n\n\tif voter, exists := p.voters[voter]; exists {\n\t\treturn errors.New(\"voter already voted\")\n\t}\n\n\tp.voters[voter] = vote\n\n\treturn nil\n}\n\n// constructor\n\nfunc NewPoll(title, description string, deadline int64) (*Poll, error) {\n\tif title == \"\" || description == \"\" {\n\t\treturn nil, errors.New(\"you need to provide both the title and the description to the poll\")\n\t}\n\n\tcurrentBlockNumber := std.GetHeight() // now\n\tif deadline \u003c currentBlockNumber {\n\t\treturn nil, errors.New(\"deadline needs to be in the future\")\n\t}\n\n\treturn \u0026Poll{\n\t\ttitle: title,\n\t\tdescription: description,\n\t\tdeadline: deadline,\n\t\tvoters: make(map[std.Address]int),\n\t}, nil\n}\n\nfunc (p Poll) VoteCount() (int, int) {\n\tvar yes int\n\n\tfor addr, vote := range p.voters {\n\t\tif vote == 1 {\n\t\t\tyes += 1\n\t\t}\n\t}\n\n\ttotalVotes := len(p.voters)\n\n\treturn yes, totalVotes - yes\n}\n"},{"name":"pkg_test.gno","body":"package poll\n\nimport \"testing\"\n\nfunc TestNewPoll(t *testing.T) {\n\ttitle := \"My Poll\"\n\tdesc := \"This is my first poll\"\n\tdeadline := 1000\n\n\tp := NewPoll(title, desc, deadline)\n\n\tif p.title != \"My Poll\" {\n\t\tt.Fatalf(\"expected %s, got %s\", title, p.title)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hmz+BBMnuBa/zlOvXvnE/Lg2H7cLUMH4/CoiwSypjLnuLGNfzImmLPdMWFXgZ4BmAfneTli31JKDtw67fN4HCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/p/leon/demo/poll","files":[{"name":"package.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// gno.land/p/demo/poll\n// avl tree\n\ntype Poll struct {\n\ttitle string\n\tdescription string\n\tdeadline int64 // block number\n\tvoters map[std.Address]int // address (user) \u003e yes/no // -1 = no, 1 = yes, 0 has not voted\n}\n\n// getters\n\nfunc (p Poll) Title() string {\n\treturn p.title\n}\n\nfunc (p Poll) Description() string {\n\treturn p.description\n}\n\nfunc (p Poll) Deadline() int64 {\n\treturn p.deadline\n}\n\nfunc (p Poll) Voters() map[std.Address]int {\n\treturn p.voters\n}\n\n// setters\n\nfunc (p *Poll) Vote(voter std.Address, vote int) error {\n\tif !voter.IsValid() {\n\t\treturn errors.New(\"voter address is not valid\")\n\t}\n\n\tif vote != -1 || vote != 1 {\n\t\treturn errors.New(\"invalid vote, needs to be -1 (no) or 1 (yes)\")\n\t}\n\n\tif voter, exists := p.voters[voter]; exists {\n\t\treturn errors.New(\"voter already voted\")\n\t}\n\n\tp.voters[voter] = vote\n}\n\n// constructor\n\nfunc NewPoll(title, description string, deadline int64) (*Poll, error) {\n\tif title == \"\" || description == \"\" {\n\t\treturn nil, errors.New(\"you need to provide both the title and the description to the poll\")\n\t}\n\n\tcurrentBlockNumber := std.GetHeight() // now\n\tif deadline \u003c currentBlockNumber {\n\t\treturn nil, errors.New(\"deadline needs to be in the future\")\n\t}\n\n\treturn \u0026Poll{\n\t\ttitle: title,\n\t\tdescription: description,\n\t\tdeadline: deadline,\n\t\tvoters: make(map[std.Address]int),\n\t}, nil\n}\n\nfunc (p Poll) VoteCount() (int, int) {\n\tvar yes int\n\n\tfor addr, vote := range p.voters {\n\t\tif vote == 1 {\n\t\t\tyes += 1\n\t\t}\n\t}\n\n\ttotalVotes := len(p.voters)\n\n\treturn yes, totalVotes - yes\n}\n"},{"name":"pkg_test.gno","body":"package poll\n\nimport \"testing\"\n\nfunc TestNewPoll(t *testing.T) {\n\ttitle := \"My Poll\"\n\tdesc := \"This is my first poll\"\n\tdeadline := 1000\n\n\tp := NewPoll(title, desc, deadline)\n\n\tif p.title != \"My Poll\" {\n\t\tt.Fatalf(\"expected %s, got %s\", title, p.title)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"547TSD+R/tmZuIBz3dVF3nooJhM2evWT9VOITD2dqi43OTd/39hY68sXG6LvUAgDhYK4NX5hgu8oyT4QIjMHBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4DE/zPJrHNHGyQkA2c5wrGE17YeVRcVrjwtswHopFyKU1asoP/UVh0F0TbrCwUJXhNATJ6ZtBhgOJIlyHvGcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4DE/zPJrHNHGyQkA2c5wrGE17YeVRcVrjwtswHopFyKU1asoP/UVh0F0TbrCwUJXhNATJ6ZtBhgOJIlyHvGcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4DE/zPJrHNHGyQkA2c5wrGE17YeVRcVrjwtswHopFyKU1asoP/UVh0F0TbrCwUJXhNATJ6ZtBhgOJIlyHvGcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4DE/zPJrHNHGyQkA2c5wrGE17YeVRcVrjwtswHopFyKU1asoP/UVh0F0TbrCwUJXhNATJ6ZtBhgOJIlyHvGcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4DE/zPJrHNHGyQkA2c5wrGE17YeVRcVrjwtswHopFyKU1asoP/UVh0F0TbrCwUJXhNATJ6ZtBhgOJIlyHvGcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"poll.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tppkg \"gno.land/p/leon/demo/poll\"\n)\n\n// gno.land/r/leon/demo/poll\n\ntype PollWithID struct {\n\tpoll *ppkg.Poll\n\tid uint\n}\n\nvar (\n\tpolls []*PollWithID\n\tpollIdCunter uint\n)\n\nfunc NewPoll(title, description string, deadline int) string {\n\tpollInstanace, err := ppkg.NewPoll(title, description, int64(deadline))\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\tp := \u0026PollWithID{\n\t\tpoll: pollInstanace,\n\t\tid: pollIdCunter,\n\t}\n\n\tpolls = append(polls, p)\n\tpollIdCunter++\n\n\treturn \"successfully created poll: \" + p.poll.Title()\n}\n\nfunc Vote(id uint, vote int) error {\n\tcaller := std.PrevRealm().Addr()\n\tvar pid *PollWithID\n\n\tfor _, p := range polls {\n\t\tif p.id == id {\n\t\t\tpid = p\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif pid == nil {\n\t\treturn errors.New(\"poll with specified id not found\")\n\t}\n\n\tif err := pid.poll.Vote(caller, vote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p PollWithID) String() string {\n\treturn ufmt.Sprintf(\"%s\\n\\n%s\\n\\n\")\n}\n\nfunc Render(_ string) string {\n\tout := \"# Polls App\\n\\n\"\n\n\tfor _, poll := range polls {\n\t\tout += poll.String()\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"chuepr210lUmhD2QwSOdwRxqLUB8IOLJmrI76SbAaHgUkW7z29tXLM41lZJhau6g/tWO7zBIYhTNEtEIOVDFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"poll.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tppkg \"gno.land/p/leon/demo/poll\"\n)\n\n// gno.land/r/leon/demo/poll\n\ntype PollWithID struct {\n\tpoll *ppkg.Poll\n\tid uint\n}\n\nvar (\n\tpolls []*PollWithID\n\tpollIdCunter uint\n)\n\nfunc NewPoll(title, description string, deadline int) string {\n\tpollInstanace, err := ppkg.NewPoll(title, description, int64(deadline))\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\tp := \u0026PollWithID{\n\t\tpoll: pollInstanace,\n\t\tid: pollIdCunter,\n\t}\n\n\tpolls = append(polls, p)\n\tpollIdCunter++\n\n\treturn \"successfully created poll: \" + p.poll.Title()\n}\n\nfunc Vote(id uint, vote int) error {\n\tcaller := std.PrevRealm().Addr()\n\tvar pid *PollWithID\n\n\tfor _, p := range polls {\n\t\tif p.id == id {\n\t\t\tpid = p\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif pid == nil {\n\t\treturn errors.New(\"poll with specified id not found\")\n\t}\n\n\tif err := pid.poll.Vote(caller, vote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p PollWithID) String() string {\n\treturn ufmt.Sprintf(\"%s\\n\\n%s\\n\\n\")\n}\n\nfunc Render(_ string) string {\n\tout := \"# Polls App\\n\\n\"\n\n\tfor _, poll := range polls {\n\t\tout += poll.String()\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"udpHALbL0IDXRXWswUDmxBFeDV8SgehHH8myUc8xu+3odpC5X7yTsWU+44QHz0G8rRXo3MNj136/UdErwbiOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"poll.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tppkg \"gno.land/p/leon/demo/poll\"\n)\n\n// gno.land/r/leon/demo/poll\n\ntype PollWithID struct {\n\tpoll *ppkg.Poll\n\tid uint\n}\n\nvar (\n\tpolls []*PollWithID\n\tpollIdCunter uint\n)\n\nfunc NewPoll(title, description string, deadline int) string {\n\tpollInstanace, err := ppkg.NewPoll(title, description, int64(deadline))\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\tp := \u0026PollWithID{\n\t\tpoll: pollInstanace,\n\t\tid: pollIdCunter,\n\t}\n\n\tpolls = append(polls, p)\n\tpollIdCunter++\n\n\treturn \"successfully created poll: \" + p.poll.Title()\n}\n\nfunc Vote(id uint, vote int) error {\n\tcaller := std.PrevRealm().Addr()\n\tvar pid *PollWithID\n\n\tfor _, p := range polls {\n\t\tif p.id == id {\n\t\t\tpid = p\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif pid == nil {\n\t\treturn errors.New(\"poll with specified id not found\")\n\t}\n\n\tif err := pid.poll.Vote(caller, vote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p PollWithID) String() string {\n\treturn ufmt.Sprintf(\"%s\\n\\n%s\\n\\n\")\n}\n\nfunc Render(_ string) string {\n\tout := \"# Polls App\\n\\n\"\n\n\tfor _, poll := range polls {\n\t\tout += poll.String()\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"udpHALbL0IDXRXWswUDmxBFeDV8SgehHH8myUc8xu+3odpC5X7yTsWU+44QHz0G8rRXo3MNj136/UdErwbiOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll","files":[{"name":"poll.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tppkg \"gno.land/p/leon/demo/poll\"\n)\n\n// gno.land/r/leon/demo/poll\n\ntype PollWithID struct {\n\tpoll *ppkg.Poll\n\tid uint\n}\n\nvar (\n\tpolls []*PollWithID\n\tpollIdCunter uint\n)\n\nfunc NewPoll(title, description string, deadline int) string {\n\tpollInstanace, err := ppkg.NewPoll(title, description, int64(deadline))\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\tp := \u0026PollWithID{\n\t\tpoll: pollInstanace,\n\t\tid: pollIdCunter,\n\t}\n\n\tpolls = append(polls, p)\n\tpollIdCunter++\n\n\treturn \"successfully created poll: \" + p.poll.Title()\n}\n\nfunc Vote(id uint, vote int) error {\n\tcaller := std.PrevRealm().Addr()\n\tvar pid *PollWithID\n\n\tfor _, p := range polls {\n\t\tif p.id == id {\n\t\t\tpid = p\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif pid == nil {\n\t\treturn errors.New(\"poll with specified id not found\")\n\t}\n\n\tif err := pid.poll.Vote(caller, vote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p PollWithID) String() string {\n\treturn ufmt.Sprintf(\"%s\\n\\n%s\\n\\n\")\n}\n\nfunc Render(_ string) string {\n\tout := \"# Polls App\\n\\n\"\n\n\tfor _, poll := range polls {\n\t\tout += poll.String()\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FwI8tvRSqCWM/F3lxJF2h4zKaHBSC1gW4qfW0k8QrZLTymqavoDNfqny1Txtt76h/HieM51SAhBkZsntz1LZDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll/v1","files":[{"name":"poll.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tppkg \"gno.land/p/leon/demo/poll\"\n)\n\n// gno.land/r/leon/demo/poll\n\ntype PollWithID struct {\n\tpoll *ppkg.Poll\n\tid uint\n}\n\nvar (\n\tpolls = make([]*PollWithID, 0)\n\tpollIdCunter uint\n)\n\nfunc NewPoll(title, description string, deadline int) string {\n\tpollInstanace, err := ppkg.NewPoll(title, description, int64(deadline))\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\tp := \u0026PollWithID{\n\t\tpoll: pollInstanace,\n\t\tid: pollIdCunter,\n\t}\n\n\tpolls = append(polls, p)\n\tpollIdCunter++\n\n\treturn \"successfully created poll: \" + p.poll.Title()\n}\n\nfunc Vote(id uint, vote int) error {\n\tcaller := std.PrevRealm().Addr()\n\tvar pid *PollWithID\n\n\tfor _, p := range polls {\n\t\tif p.id == id {\n\t\t\tpid = p\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif pid == nil {\n\t\treturn errors.New(\"poll with specified id not found\")\n\t}\n\n\tif err := pid.poll.Vote(caller, vote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p PollWithID) String() string {\n\treturn ufmt.Sprintf(\"%s\\n\\n%s\\n\\n\")\n}\n\nfunc Render(_ string) string {\n\tout := \"# Polls App\\n\\n\"\n\n\tfor _, poll := range polls {\n\t\tout += poll.String()\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K8emf+extKu/99IymJ7Axf+pFHmRRzqbIbmg0J43ADcL3w1mffds2MZPyAP55fGoNqcJd4XPvWHfvDa+HsuMBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"poll","path":"gno.land/r/leon/demo/poll/v2","files":[{"name":"poll.gno","body":"package poll\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tppkg \"gno.land/p/leon/demo/poll\"\n)\n\n// gno.land/r/leon/demo/poll\n\ntype PollWithID struct {\n\tpoll *ppkg.Poll\n\tid uint\n}\n\nvar (\n\tpolls = make([]*PollWithID, 0)\n\tpollIdCunter uint\n)\n\nfunc NewPoll(title, description string, deadline int) string {\n\tpollInstanace, err := ppkg.NewPoll(title, description, int64(deadline))\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\tp := \u0026PollWithID{\n\t\tpoll: pollInstanace,\n\t\tid: pollIdCunter,\n\t}\n\n\tpolls = append(polls, p)\n\tpollIdCunter++\n\n\treturn \"successfully created poll: \" + p.poll.Title()\n}\n\nfunc Vote(id uint, vote int) error {\n\tcaller := std.PrevRealm().Addr()\n\tvar pid *PollWithID\n\n\tfor _, p := range polls {\n\t\tif p.id == id {\n\t\t\tpid = p\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif pid == nil {\n\t\treturn errors.New(\"poll with specified id not found\")\n\t}\n\n\tif err := pid.poll.Vote(caller, vote); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p PollWithID) String() string {\n\treturn ufmt.Sprintf(\"%s\\n\\n%s\\n\\n%d\\n\\n\", p.poll.Title(), p.poll.Description(), int(p.poll.Deadline()))\n}\n\nfunc Render(_ string) string {\n\tout := \"# Polls App\\n\\n\"\n\n\tfor _, poll := range polls {\n\t\tout += poll.String()\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i85PBi5Hk1YXTG9dFj2oFrM6e3TNoBlo409OX4IG6uDSONfmhibKY2AjJeA5vtLvtpR3ceJoEj+nH3PFZb4MDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"ptrregistry","path":"gno.land/r/leon/issues/ptrregistry","files":[{"name":"package.gno","body":"package ptrregistry\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar Intptrslice []*int\n\nfunc Render(_ string) string {\n\tout := \"\"\n\tfor _, i := range Intptrslice {\n\t\tout += ufmt.Sprintf(\"%d, \", i)\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zqua0/gikX/6mg1GK/aTiAyj5qXiKI6fx/ddlBfdYptxNHVw/dUhF0x1jz+Ajc/LqjHLm8XU92JMUmmh315WBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"ptrregistry","path":"gno.land/r/leon/issues/ptrregistry","files":[{"name":"package.gno","body":"package ptrregistry\n\nvar Intptrslice []*int\n\nfunc Render(_ string) string {\n\tout := \"\"\n\tfor _, i := range Intptrslice {\n\t\tout += ufmt.Sprintf(\"%d, \", i)\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K0CKnCqPlbgzujOJ1wj+rGL8rZV+CBiw/Euyow5RmGVd2cGsqzgiRV+LdgSzkK64ZNe4MPFHj3jXu8NdicoECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"ptrregistry","path":"gno.land/r/leon/issues/v1/ptrregistry","files":[{"name":"package.gno","body":"package ptrregistry\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar Intptrslice = make([]*int, 10)\n\nfunc Render(_ string) string {\n\tout := \"\"\n\tfor _, i := range Intptrslice {\n\t\tout += ufmt.Sprintf(\"%d, \", i)\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bfcSUcjaxFGYoW/gs5t8RfINoYmsrJ0jL+2wNxg4AOhGEMuumteJWD9esH/tGtVUynxmscRWndRwAlXtV5OIAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"ptrregistry","path":"gno.land/r/leon/issues/v2/ptrregistry","files":[{"name":"package.gno","body":"package ptrregistry\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar Intptrslice = make([]*int, 10)\n\nfunc Render(_ string) string {\n\tout := \"\"\n\tfor _, i := range Intptrslice {\n\t\tout += ufmt.Sprintf(\"ptr: %d, val:%d\\n\", i, *i)\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WC9nEoiaLBWK3JwRJUnkEl7kgfeP0vA5z0pUowbeYs1FQ2IPnyiH6aCCCF3m2svyWNe67OHi9LPdtu6umUcmBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"raffle","path":"gno.land/r/gc24/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/gc24/raffle\n\nrequire (\n\tgno.land/p/demo/ownable v0.0.0-latest\n\tgno.land/p/demo/testutils v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n)\n"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\n// Nothing to see here, just some constants, move on :)\nconst (\n\tcodeLength = 10\n\tamtOfCodes = 300\n)\n\n// Hello! This is where you register your raffle code!\n// Calling RegisterCode is the first step for entering the raffle.\n// It allows you to register a specific raffle code and connect your address to it.\n// RegisterCode only be called via other code; you should figure out a way to do it.\nfunc RegisterCode(code string) string {\n\tif code == \"\" \u0026\u0026 len(code) != codeLength {\n\t\tpanic(\"invalid code: \" + code)\n\t}\n\n\tcaller := std.PrevRealm() // save realm used to call\n\torigin := std.GetOrigCaller() // save deployer of realm\n\n\t// Deny non-code entries\n\tif caller.IsUser() {\n\t\tpanic(\"denied; can only be called from within code\")\n\t}\n\n\t// Get sha256 of code\n\thash := sha256.Sum256([]byte(code))\n\thashString := hex.EncodeToString(hash[:])\n\n\t// Check if code has already been registered\n\tif _, ok := registeredHashes[hashString]; ok {\n\t\tpanic(\"code already registered: \" + code)\n\t}\n\n\t// Check if the gopher has already registered another raffle code\n\tif originExists(origin) {\n\t\tpanic(\"you cannot register more than one code!\")\n\t}\n\n\t// Try to find the hash in the official hash list\n\tvar found bool\n\tfor _, ch := range codeHashes {\n\t\tif ch == hashString {\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\tpanic(\"specified code is not a valid raffle code: \" + code)\n\t}\n\n\tentry := \u0026EntryData{\n\t\ttxorigin: origin,\n\t\tcaller: caller,\n\t\traffleCode: code,\n\t\tcodeHash: hashString,\n\t\tghUsername: \"\",\n\t}\n\n\t// Save to hash tracker\n\tregisteredHashes[hashString] = struct{}{}\n\n\t// Save raffle entry\n\tpartialEntries = append(partialEntries, entry)\n\n\treturn ufmt.Sprintf(\"Successfully registered raffle code!\\n%s\\nRegister your username to complete your raffle entry.\", entry.String())\n}\n\n// Somewhat similar to Go, init() executes upon deployment of your code.\n// Hint: maybe you can use init() in your code to execute RegisterCode() upon deployment via play.gno.land?\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\n// RegisterUsername registers a GitHub username to an already existing entry\n// Hint: you can call this function just like you did with RegisterCode(), or via gno.studio/connect :)\n// If you use Connect, make sure you're on the Portal Loop network, and you've navigated to the correct path!\nfunc RegisterUsername(username string) string {\n\tif username == \"\" {\n\t\tpanic(\"invalid username: \" + username)\n\t}\n\n\torigin := std.GetOrigCaller()\n\n\tfor _, entry := range partialEntries {\n\t\tif entry.txorigin == origin { // this will check if you're using the same address as when registering the raffle code ;)\n\t\t\tif entry.ghUsername != \"\" {\n\t\t\t\tpanic(\"you cannot register your username twice!\")\n\t\t\t}\n\n\t\t\tentry.ghUsername = username\n\t\t\tcompleteEntries = append(completeEntries, entry)\n\t\t\tnumReg += 1\n\t\t\treturn ufmt.Sprintf(\"successfully registered %s for address %s\", username, entry.txorigin)\n\t\t}\n\t}\n\n\tpanic(\"could not find entry for caller address; did you register your raffle code yet?\")\n}\n\n// Admin stuff\n\nfunc PickWinner1() string {\n\to.AssertCallerIsOwner()\n\twinner1 = pickWinner()\n\n\treturn winner1.ghUsername\n}\n\nfunc PickWinner2() string {\n\to.AssertCallerIsOwner()\n\twinner2 = pickWinner()\n\n\treturn winner2.ghUsername\n}\n\nfunc UploadCodeHashes(delimCodes string) {\n\to.AssertCallerIsOwner()\n\n\ttokens := strings.Split(delimCodes, \",\")\n\n\tif len(tokens) != amtOfCodes {\n\t\tpanic(ufmt.Sprintf(\"invalid amount of codes; wanted %d got %d\", amtOfCodes, len(tokens)))\n\t}\n\n\tcopy(codeHashes, tokens)\n}\n\nfunc UploadRandomness(x, y uint64) {\n\to.AssertCallerIsOwner()\n\n\trandSource = rand.New(rand.NewPCG(x, y))\n}\n\n// Rendering\n\nfunc Render(_ string) string {\n\toutput := \"# Raffle - GopherCon US 2024\\n\\n\"\n\n\toutput += renderStats()\n\n\tif winner1 != nil || winner2 != nil {\n\t\toutput += renderWinners()\n\t}\n\n\toutput += RenderGuide()\n\n\treturn output\n}\n\nfunc renderStats() string {\n\toutput := \"\"\n\n\toutput += \"### Raffle Stats\\n\\n\"\n\n\toutput += `\u003cdiv class=\"columns-3\"\u003e`\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest codes\n\toutput += renderLatestCodesWidget(5)\n\toutput += `\u003c/div\u003e` // close Latest codes\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest usernames\n\toutput += renderLatestUsernamesWidget(5)\n\toutput += `\u003c/div\u003e` // close Latest usernames\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Chances\n\toutput += renderChances()\n\toutput += `\u003c/div\u003e` // close Chances\n\n\toutput += `\u003c/div\u003e` // close columns-3\n\n\toutput += \"\\n\\n\"\n\toutput += \"---\" // close section\n\n\toutput += \"\\n\"\n\n\treturn output\n}\n\nfunc renderChances() string {\n\toutput := \"\\n\\n#### Chances\\n\\n\"\n\n\toutput += ufmt.Sprintf(\"- Users in the raffle: %d\\n\\n\", numReg)\n\n\tif numReg \u003e 0 {\n\t\toutput += ufmt.Sprintf(\"- Chance of winning: 2:%d\\n\\n\", numReg)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestCodesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest codes\\n\\n\"\n\tpeNum := len(partialEntries)\n\n\tif peNum == 0 {\n\t\toutput += \"No codes registered yet.\"\n\t\treturn output\n\t}\n\n\tif peNum \u003c amt {\n\t\tamt = peNum\n\t}\n\n\tfor i := peNum - 1; i \u003e= peNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", partialEntries[i].raffleCode)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestUsernamesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest usernames\\n\\n\"\n\tceNum := len(completeEntries)\n\n\tif winner1 != nil || winner2 != nil {\n\t\toutput += \"Winners are chosen!\"\n\t\treturn output\n\t}\n\n\tif ceNum == 0 {\n\t\toutput += \"No usernames registered yet.\"\n\t\treturn output\n\t}\n\n\tif ceNum \u003c amt {\n\t\tamt = ceNum\n\t}\n\n\tfor i := ceNum - 1; i \u003e= ceNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", completeEntries[i].ghUsername)\n\t}\n\n\treturn output\n}\n\nfunc renderWinners() string {\n\toutput := \"\\n\\n# Winners\\n\\n\"\n\n\tif winner1 != nil {\n\t\toutput += ufmt.Sprintf(\"### Winner 1: `@%s`\\n\\n\", winner1.ghUsername)\n\t}\n\n\tif winner2 != nil {\n\t\toutput += ufmt.Sprintf(\"### Winner 2: `@%s`\\n\\n\", winner2.ghUsername)\n\t}\n\n\toutput += \"## Congratulations! Come to the booth and show us your GitHub account!\\n\\n\"\n\n\toutput += \"---\\n\\n\"\n\n\treturn output\n}\n\n// Helpers\n\nfunc (entry *EntryData) String() string {\n\treturn ufmt.Sprintf(\"Address: %s\\nRealm Path: %s\\nCode: %s\\nHash: %s\\nGitHub username: %s\\n\",\n\t\tentry.txorigin.String(),\n\t\tentry.caller.PkgPath(),\n\t\tentry.raffleCode,\n\t\tentry.codeHash,\n\t\tentry.ghUsername,\n\t)\n}\n\nfunc pickWinner() *EntryData {\n\tif len(completeEntries) == 0 {\n\t\tpanic(\"No complete entries yet!\")\n\t}\n\tif randSource == nil {\n\t\tpanic(\"No randomness source yet!\")\n\t}\n\n\tr := rand.New(randSource)\n\twinnerIndex := r.IntN(len(completeEntries))\n\twinner := completeEntries[winnerIndex]\n\n\t// remove winner from entry list\n\tcompleteEntries = append(completeEntries[:winnerIndex], completeEntries[winnerIndex+1:]...)\n\n\treturn winner\n}\n\nfunc CheckHashUpload() int {\n\treturn len(codeHashes)\n}\n\nfunc originExists(origin std.Address) bool {\n\tfor _, e := range partialEntries {\n\t\tif e.txorigin == origin {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n"},{"name":"raffle_guide.gno","body":"package raffle\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nvar (\n\traffleRealmPath = std.CurrentRealm().PkgPath() // will give you portal loop path\n)\n\nfunc RenderGuide() string {\n\n\ttext := `# Entering the raffle\n\nWelcome, gopher!\n\nYou've decided to enter the gno.land raffle to get a chance to win a valuable prize.\nWe congratulate you on your curiosity and courage!\n\nYou will need your personal computer and a bit of time to enter the raffle. Find \na quiet corner and read the rest of this README file.\nAlso, make sure you've gotten your unique raffle entry code at the gno.land booth -\nyou will not be able to proceed without it.\n\n## Why enter the raffle?\n\nApart from getting a chance to win awesome prizes, you will be able to learn\na couple of basic concepts on how to use Gno, as well as some supporting Gno tools -\nthe [Gno Playground](https://play.gno.land), which will help you deploy your own \nGno code, and [Connect](https://gno.studio/connect), which will\nallow you to easily call smart contracts (called \"!realms\"! in Gno) that live on\nthe gno.land blockchain.\n\nWe've created this raffle to reward gophers that are curious and eager to learn\nabout new tech- if you can relate, you're in the right place!\n\nAfter completing a series of steps, you'll have a chance at winning one of\nthe raffle prizes - we're giving away two Keychron K2 Pro mechanical keyboards.\n\n## How do I enter?\n\nTo enter the raffle, you will need to go into dev mode. You need to take a look \nat some Gno code, learn how to interact with the gno.land blockchain, and submit\nyour raffle entry to the Raffle realm - which you are viewing right now!\nThis text, as well as the \"Stats\" at the top of the page are actual live state of\nthe Raffle realm.\n\nWe want you to try to figure things out on your own; you should prove your curiosity\nand ability to learn about new technology in a short period of time. If, however, \nyou do run into issues - the engineers at the gno.land booth will be able to help \nyou.\n\n## Let's get started!\n\nEntering the raffle involves two main parts:\n1. Registering your raffle code, which you got from the gno.land booth\n2. Registering your GitHub username\n\nBoth of these involve interacting with the Raffle realm. \nYou're currently reading the rendered state of the realm;\nand you can view its source code by clicking on the [[source]](https://REALMPATH/)\nbutton on the top right of the page.\n\n## 1. Making a gno.land keypair\n\nA keypair is what allows you to interact with the gno.land blockchain. For this, you\ncan use the Adena wallet- it will generate a keypair for you. You will then be able\nuse this keypair to deploy your own Gno code to the blockchain and call functions on \nexisting Gno code, such as this Raffle realm.\n\nVisit the official [Adena website](https://adena.app) to install it. \n\nAfter installing the Adena wallet as an extension, a page will pop up.\nTo create a keypair, follow the steps below. \n\nFirst, select \"Advanced options\" \u003e \"Create new wallet\". Then, complete a \nquestionnaire. You're free to look up the concepts Adena is telling you about\nduring this process (such as \"seed phrase\").\n\nAfter saving your seed phrase and entering a password to protect your keypair,\nyou should be able to see your account generated in the Adena extension.\nWhat you need to proceed to the next step is the address of your account,\nwhich is further derived from your keypair. You'll be able to find it at\nthe top of the Adena extension.\n\nYou are ready to move onto the next step!\n\n## 2. Get GNOTs\n\nWhat are \"!GNOTs\"!? - you might ask. \n\nBlockchains are transactional systems; every interaction with a blockchain is \ndone via a transactional message - ensuring the state of the network is consistent at each point \nin time. On top of this, to prevent DDoS attacks, all blockchains implement \na gas system; for every state change on the network (a transaction), a user must \npay with the network's native currency.\n\nIn the case of gno.land, this is \"!GNOT\"!. To get some testnet \"!GNOT\"!, \nvisit the [gno.land Faucet Hub](https://faucet.gno.land). \n\nSelect \"Gno Portal Loop\", enter your Adena address (copy it from the top of the Adena\nwallet! it starts with \"!g1...\"!), select \"!10 GNOT\"!, complete the captcha, and click\n\"Request drip\". Soon, you should see 10 \"!GNOT\"! available in your Adena wallet. You'll\nneed these later.\n\n## 3. Inspecting Gno source code\n\nEach Gno realm lives on a specific package path. In the case of the Raffle realm,\nthis path is \"!REALMPATH\"!. All files that comprise the realm can be found by\nclicking the [source] button on the top right corner. There, you will find a \"!raffle.gno\"!\nfile. This is the main code of the Raffle realm.\n\nTo enter the raffle, you must inspect the Gno code found in this file.\n\nGo do it now! You should be able to figure out the next step yourself.\n\n...\n\n...\n\n...\n\nWelcome back!\n\nBy reading some code, you found out that you need to write and deploy some Gno code.\n\n## 4. Writing Gno code in the Gno Playground\n\nThe next step to entering the raffle is writing a bit of Gno code and deploying\nit to the gno.land blockchain. \n\nBefore diving into the code, let's learn about how the gno.land blockchain stores \ndata.\n\nAll code uploaded to gno.land lives on a specific path, like in a file system.\nFor example, you were able to find the Raffle realm on \"!REALMPATH\"!.\nThis path is a crucial piece of any realm- apart from being able to \ncall all exported functions in the Gno code by specifying its path (a next step!), the path can \nalso be used to import the code into your own application, providing reusability\nof code and interaction between applications that live on the chain.\n\nThe path of the Raffle realm can also be found in the \"!gno.mod\"! file,\nwhich you can also find on the [source] page.\n\nIf you have read through the \"!raffle.gno\"! file, you may have noticed that \"!RegisterCode()\"! \ncan only be called _via other code_. Try to use the Gno Playground to write your own Gno\napp that will import the Raffle realm.\n\nFigure out where to use the \"!RegisterCode()\"! function, and make sure to add\nyour (case sensitive!!) raffle code as a string argument when calling it.\n\n## 5. Deploying Gno code\n\nA crucial step in entering the raffle is deploying your Gno code to the blockchain.\nDoing this will complete the first part of the raffle entry - registering your \nraffle code.\n\nLuckily, [Gno Playground](https://play.gno.land) provides an easy way to deploy code- after writing your\ndesired code, you can click on \"Deploy\". This will:\n- Allow you to connect your Adena wallet to the Playground\n- On the top right corner of the Playground, choose the network you want to deploy\nyour code to - you should select \"Portal Loop\"\n- Pick a deployment path for your realm - choose the \"!r/\"! prefix, enter in your\nnamespace (it can be your username), and match your Gno package name to the last\npart of the path. A suggested deployment path could be \"\"!gno.land/r/gc24/myusername/raffle\"!\",\nwhile the package name would need to be \"\"!raffle\"!\"\n\nClicking on \"Deploy\" will prompt an Adena window that will ask you to sign\nthe transaction which will upload your code to the chain. The \"!init()\"!\nfunction will get executed upon deployment.\n\nCongratulations! You've made it through the hard part.\n\nWith this, you've connected your address with the raffle code you've received.\n\nYou should be able to see your raffle code show up in the Stats section at the top \nof the page. Don't worry about everyone being able to see your code; codes are usable\nonly once.\n\n## 6. Registering your GitHub username\n\nFinal step! You need to register your GitHub username to complete your raffle entry.\nLook for a function in the \"!raffle.gno\"! file which will allow you to do so, and figure\nout a way to do it. \n\nIf you've succeeded, you'll see your username show up in the \"Stats\" section at the top.\n\n!!! Make sure to register your real GitHub username; if you are chosen as a winner,\nyou will have to prove you have access to the GitHub account !!!\n\n## Conclusion\n\nCongratulations on entering the Raffle! Sit back, relax, and wait for the winner\nannouncement time at the gno.land booth.`\n\n\ttext = strings.Replace(text, \"REALMPATH\", raffleRealmPath, -1)\n\ttext = strings.Replace(text, \"\\\"!\", \"`\", -1) // go/gno complains about ` inside ``\n\n\treturn text\n}\n"},{"name":"raffle_test.gno","body":"package raffle\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tvalidTestHashes = `a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b`\n\tinvalidTestCodes\n\tinvalidCode = \"qd0bJ6HTSB\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tadmin = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\tadminRealm = std.NewUserRealm(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\taliceUserRealm = std.NewUserRealm(alice)\n\taliceCodeRealm = std.NewCodeRealm(\"gno.land/r/demo/alice\")\n\tbobCodeRealm = std.NewCodeRealm(\"gno.land/r/demo/bob\")\n\tvalidTestCodes = []string{ // These are not actual raffle codes, don't worry ;)\n\t\t\"qd0bJ6HTSV\",\n\t\t\"H1Qe2kx@ME\",\n\t\t\"2E$zre$$oE\",\n\t\t\"f@2xEQCEWo\",\n\t\t\"AUpFRwb5H9\",\n\t\t\"jHDNQ^x2zJ\",\n\t\t\"VQz^SbYtR$\",\n\t\t\"?ZggWTzpfz\",\n\t\t\"1HP82PVPD0\",\n\t\t\"#nThf$N?qq\",\n\t\t\"nQJFyyk9vS\",\n\t\t\"4xR5n%ymnw\",\n\t\t\"ogJ7sy77QR\",\n\t\t\"syuJ3ttYKj\",\n\t\t\"w!JgJT^Cu$\",\n\t\t\"kmucxFaAL#\",\n\t\t\"7uz%UDR9f5\",\n\t\t\"ifUWAKug9?\",\n\t\t\"2Np27vsHvp\",\n\t\t\"mtDPMcf%EA\",\n\t\t\"153SQg6T!h\",\n\t\t\"Zgt9c09N9s\",\n\t\t\"jKKU7y*hN9\",\n\t\t\"L$gKPVF0Df\",\n\t\t\"1R^NKNV@RJ\",\n\t\t\"TbtREP@vx6\",\n\t\t\"$ii4\u00261$CXT\",\n\t\t\"jdVRC6FCLT\",\n\t\t\"\u0026qgQrrtB^k\",\n\t}\n)\n\nfunc TestUploadCodes(t *testing.T) {\n\tinvalidHashes := `1cdcdc252a3a8c2d1516527dcf3ee63b4552a6bbb41145527409d8a8b6185c40,551a0108b23cc4bdff4c716a504a677551d68162ada5b9e20ebb21f4d7e83c9d`\n\n\thashes := strings.Split(validTestHashes, \",\")\n\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"UploadCodeHashes should have panicked\")\n\t\t}\n\t}()\n\tUploadCodeHashes(invalidHashes)\n\n\tUploadCodeHashes(validTestHashes)\n\tfor i, hash := range hashes {\n\t\tif hash != codeHashes[i] {\n\t\t\tt.Fatalf(\"Expected %s, got %s\", hash, codeHashes[i])\n\t\t}\n\t}\n}\n\nfunc TestRegisterCode(t *testing.T) {\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\tUploadCodeHashes(validTestHashes)\n\n\tt.Run(\"EmptyCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with an empty code\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(\"\")\n\t})\n\n\tt.Run(\"NonTenCharCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a non-10-char code\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(\"123456789\")\n\t})\n\n\tt.Run(\"RegisterCodeWithUserRealm\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with user realm\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[0])\n\t})\n\n\tt.Run(\"CodeNotOnList\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a code that is not in the list\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(invalidCode)\n\t})\n\n\tt.Run(\"ValidRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tres := RegisterCode(validTestCodes[0])\n\n\t\tfor _, item := range []string{alice.String(), aliceCodeRealm.PkgPath(), validTestCodes[0]} {\n\t\t\tif !strings.Contains(res, item) {\n\t\t\t\tt.Fatalf(\"res should contain %s\", item)\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"DoubleRegisterSameValidCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a double register code error\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[0])\n\t})\n\n\tt.Run(\"DoubleRegisterDiffValidCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a double register origin error\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[1])\n\t})\n\n}\n\nfunc TestRegisterUsername(t *testing.T) {\n\tt.Run(\"NoEntryUsername\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(bob)\n\t\tstd.TestSetRealm(bobCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterUsername should have panicked with no previous entry\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterUsername(\"bob-username\")\n\t})\n\n\tt.Run(\"ValidEntryRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tres := RegisterUsername(\"alice-username\")\n\t\tif !strings.Contains(res, \"alice-username\") \u0026\u0026 !strings.Contains(res, alice.String()) {\n\t\t\tt.Fatalf(\"expected to find alice's address \u0026 username in the entry\")\n\t\t}\n\t})\n\n\tt.Run(\"ValidEntryRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterUsername should have panicked with double username\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterUsername(\"alice-username\")\n\t})\n}\n\nfunc TestPickWinner(t *testing.T) {\n\t// alice is already registered\n\t// Register some more users\n\tfor i := 1; i \u003c len(validTestCodes); i++ {\n\t\taddr := testutils.TestAddress(strconv.Itoa(i))\n\t\taddrRealm := std.NewCodeRealm(ufmt.Sprintf(\"gno.land/r/demo/user%d\", i))\n\t\tstd.TestSetOrigCaller(addr)\n\t\tstd.TestSetRealm(addrRealm)\n\t\tRegisterCode(validTestCodes[i])\n\t\tRegisterUsername(ufmt.Sprintf(\"user%d\", i))\n\t}\n\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tUploadRandomness(123123, 508930)\n\n\t// Pick 3 winners\n\tw1 := PickWinner1()\n\tw2 := PickWinner2()\n\n\t// Check if winners are removed after being chosen\n\tif len(completeEntries) != numReg-2 {\n\t\tt.Fatalf(\"expected %d entries, got %d\", numReg-2, len(completeEntries))\n\t}\n\n\tif w1 != winner1.ghUsername {\n\t\tt.Fatalf(\"w1 should be %s, got %s\", w1, winner1.ghUsername)\n\t}\n\n\tif w2 != winner2.ghUsername {\n\t\tt.Fatalf(\"w1 should be %s, got %s\", w2, winner2.ghUsername)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+TaZAP4Cvj3zoMIYqiBW674a40opMY81RCTfqZlaS/S65xY51GtO/d0Njm85osqt86EZnSUkcTwwThjSoG6dAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"raffle","path":"gno.land/r/leon/v1/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/leon/v1/raffle\n\nrequire (\n\tgno.land/p/demo/ownable v0.0.0-latest\n\tgno.land/p/demo/testutils v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n)\n"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to network storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\n// Nothing to see here, just some constants, move on :)\nconst (\n\tcodeLength = 10\n\tamtOfCodes = 300\n)\n\n// Hello! This is where you register your raffle code!\n// Calling RegisterCode is the first step for entering the raffle.\n// It allows you to register a specific raffle code and connect your address to it.\n// RegisterCode only be called via other code; you should figure out a way to do it.\nfunc RegisterCode(code string) string {\n\tif code == \"\" \u0026\u0026 len(code) != codeLength {\n\t\tpanic(\"invalid code: \" + code)\n\t}\n\n\tcaller := std.PrevRealm() // save realm used to call\n\torigin := std.GetOrigCaller() // save deployer of realm\n\n\t// Deny non-code entries\n\tif caller.IsUser() {\n\t\tpanic(\"denied; can only be called from within code\")\n\t}\n\n\t// Get sha256 of code\n\thash := sha256.Sum256([]byte(code))\n\thashString := hex.EncodeToString(hash[:])\n\n\t// Check if code has already been registered\n\tif _, ok := registeredHashes[hashString]; ok {\n\t\tpanic(\"code already registered: \" + code)\n\t}\n\n\t// Check if the gopher has already registered another raffle code\n\tif originExists(origin) {\n\t\tpanic(\"you cannot register more than one code!\")\n\t}\n\n\t// Try to find the hash in the official hash list\n\tvar found bool\n\tfor _, ch := range codeHashes {\n\t\tif ch == hashString {\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\tpanic(\"specified code is not a valid raffle code: \" + code)\n\t}\n\n\tentry := \u0026EntryData{\n\t\ttxorigin: origin,\n\t\tcaller: caller,\n\t\traffleCode: code,\n\t\tcodeHash: hashString,\n\t\tghUsername: \"No username yet!\",\n\t}\n\n\t// Save to hash tracker\n\tregisteredHashes[hashString] = struct{}{}\n\n\t// Save raffle entry\n\tpartialEntries = append(partialEntries, entry)\n\n\treturn ufmt.Sprintf(\"Successfully registered raffle code!\\n%s\\nRegister your username to complete your raffle entry.\", entry.String())\n}\n\n// Somewhat similar to Go, init() executes upon deployment of your code.\n// Hint: maybe you can use init() in your code to execute RegisterCode() upon deployment via play.gno.land?\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\n// RegisterUsername registers a GitHub username to an already existing entry\n// Hint: you can call this function just like you did with RegisterCode(), or via gno.studio/connect :)\n// If you use Connect, make sure you're on the Portal Loop network, and you've navigated to the correct path!\nfunc RegisterUsername(username string) string {\n\tif username == \"\" {\n\t\tpanic(\"invalid username: \" + username)\n\t}\n\n\torigin := std.GetOrigCaller()\n\n\tfor _, entry := range partialEntries {\n\t\tif entry.txorigin == origin { // this will check if you're using the same address as when registering the raffle code ;)\n\t\t\tentry.ghUsername = username\n\t\t\tcompleteEntries = append(completeEntries, entry)\n\t\t\tnumReg += 1\n\t\t\treturn ufmt.Sprintf(\"successfully registered %s for address %s\", username, entry.txorigin)\n\t\t}\n\t}\n\n\tpanic(\"could not find entry for caller address; did you register your raffle code yet?\")\n}\n\n// Admin stuff\n\nfunc PickWinner1() string {\n\to.AssertCallerIsOwner()\n\twinner1 = pickWinner()\n\n\treturn winner1.ghUsername\n}\n\nfunc PickWinner2() string {\n\to.AssertCallerIsOwner()\n\twinner2 = pickWinner()\n\n\treturn winner2.ghUsername\n}\n\nfunc UploadCodeHashes(delimCodes string) {\n\to.AssertCallerIsOwner()\n\n\ttokens := strings.Split(delimCodes, \",\")\n\n\tif len(tokens) != amtOfCodes {\n\t\tpanic(ufmt.Sprintf(\"invalid amount of codes; wanted %d got %d\", amtOfCodes, len(tokens)))\n\t}\n\n\tcopy(codeHashes, tokens)\n}\n\nfunc UploadRandomness(x, y uint64) {\n\to.AssertCallerIsOwner()\n\n\trandSource = rand.New(rand.NewPCG(x, y))\n}\n\n// Rendering\n\nfunc Render(_ string) string {\n\toutput := \"# Raffle - GopherCon US 2024\\n\\n\"\n\n\toutput += renderStats()\n\toutput += RenderGuide()\n\n\treturn output\n}\n\nfunc renderStats() string {\n\toutput := \"\"\n\n\toutput += \"### Raffle Stats\\n\\n\"\n\n\toutput += `\u003cdiv class=\"columns-3\"\u003e`\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest codes\n\toutput += renderLatestCodesWidget(2)\n\toutput += `\u003c/div\u003e` // close Latest codes\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest usernames\n\toutput += renderLatestUsernamesWidget(2)\n\toutput += `\u003c/div\u003e` // close Latest usernames\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Winners\n\toutput += renderWinners()\n\toutput += `\u003c/div\u003e` // close Winners\n\n\toutput += `\u003c/div\u003e` // close columns-3\n\n\toutput += \"\\n\\n\"\n\toutput += \"---\" // close section\n\n\toutput += \"\\n\"\n\n\treturn output\n}\n\nfunc renderWinners() string {\n\toutput := \"\\n\\n#### Winners\\n\\n\"\n\n\tif winner1 == nil {\n\t\toutput += ufmt.Sprintf(\"- Winner 1: Not chosen yet!\\n\\n\")\n\t} else {\n\t\toutput += ufmt.Sprintf(\"- Winner 1: @%s!\\n\\n\", winner1.ghUsername)\n\t}\n\n\tif winner2 == nil {\n\t\toutput += ufmt.Sprintf(\"- Winner 2: Not chosen yet!\\n\\n\")\n\t} else {\n\t\toutput += ufmt.Sprintf(\"- Winner 2: @%s!\\n\\n\", winner2.ghUsername)\n\t}\n\n\tchanceOfWinning := 0\n\tif numReg \u003e 0 {\n\t\tchanceOfWinning = 100 / numReg\n\t\toutput += ufmt.Sprintf(\"- Current chance to win a prize: %d%% \", chanceOfWinning)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestCodesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest codes\\n\\n\"\n\tpeNum := len(partialEntries)\n\n\tif peNum == 0 {\n\t\toutput += \"No codes registered yet.\"\n\t\treturn output\n\t}\n\n\tif peNum \u003c amt {\n\t\tamt = peNum\n\t}\n\n\tfor i := peNum - 1; i \u003e= peNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", partialEntries[i].raffleCode)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestUsernamesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest usernames\\n\\n\"\n\tceNum := len(completeEntries)\n\n\tif ceNum == 0 {\n\t\toutput += \"No usernames registered yet.\"\n\t\treturn output\n\t}\n\n\tif ceNum \u003c amt {\n\t\tamt = ceNum\n\t}\n\n\tfor i := ceNum - 1; i \u003e= ceNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", completeEntries[i].ghUsername)\n\t}\n\n\treturn output\n}\n\n// Helpers\n\nfunc (entry *EntryData) String() string {\n\treturn ufmt.Sprintf(\"Address: %s\\nRealm Path: %s\\nCode: %s\\nHash: %s\\nGitHub username: %s\\n\",\n\t\tentry.txorigin.String(),\n\t\tentry.caller.PkgPath(),\n\t\tentry.raffleCode,\n\t\tentry.codeHash,\n\t\tentry.ghUsername,\n\t)\n}\n\nfunc pickWinner() *EntryData {\n\tif len(completeEntries) == 0 {\n\t\tpanic(\"No complete entries yet!\")\n\t}\n\tif randSource == nil {\n\t\tpanic(\"No randomness source yet!\")\n\t}\n\n\tr := rand.New(randSource)\n\twinnerIndex := r.IntN(len(completeEntries))\n\twinner := completeEntries[winnerIndex]\n\n\t// remove winner from entry list\n\tcompleteEntries = append(completeEntries[:winnerIndex], completeEntries[winnerIndex+1:]...)\n\n\treturn winner\n}\n\nfunc CheckHashUpload() int {\n\treturn len(codeHashes)\n}\n\nfunc originExists(origin std.Address) bool {\n\tfor _, e := range partialEntries {\n\t\tif e.txorigin == origin {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n"},{"name":"raffle_guide.gno","body":"package raffle\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nvar (\n\traffleRealmPath = std.CurrentRealm().PkgPath() // will give you portal loop path\n)\n\nfunc RenderGuide() string {\n\n\ttext := `# Entering the raffle\n\nWelcome, gopher!\n\nYou've decided to enter the gno.land raffle to get a chance to win a valuable prize.\nWe congratulate you on your curiosity and courage!\n\nYou will need your personal computer and a bit of time to enter the raffle. Find \na quiet corner and read the rest of this README file.\nAlso, make sure you've gotten your unique raffle entry code at the gno.land booth -\nyou will not be able to proceed without it.\n\n## Why enter the raffle?\n\nApart from getting a chance to win awesome prizes, you will be able to learn\na couple of basic concepts on how to use Gno, as well as some supporting Gno tools -\nthe [Gno Playground](https://play.gno.land), which will help you deploy your own \nGno code, and [Connect](https://gno.studio/connect), which will\nallow you to easily call smart contracts (called \"!realms\"! in Gno) that live on\nthe gno.land blockchain.\n\nWe've created this raffle to reward gophers that are curious and eager to learn\nabout new tech- if you can relate, you're in the right place!\n\nAfter completing a series of steps, you'll have a chance at winning one of\nthe raffle prizes - we're giving away two Keychron K2 Pro mechanical keyboards.\n\n## How do I enter?\n\nTo enter the raffle, you will need to go into dev mode. You need to take a look \nat some Gno code, learn how to interact with the gno.land blockchain, and submit\nyour raffle entry to the Raffle realm - which you are viewing right now!\nThis text, as well as the \"Stats\" at the top of the page are actual live state of\nthe Raffle realm.\n\nWe want you to try to figure things out on your own; you should prove your curiosity\nand ability to learn about new technology in a short period of time. If, however, \nyou do run into issues - the engineers at the gno.land booth will be able to help \nyou.\n\n## Let's get started!\n\nEntering the raffle involves two main parts:\n1. Registering your raffle code, which you got from the gno.land booth\n2. Registering your GitHub username\n\nBoth of these involve interacting with the Raffle realm. \nYou're currently reading the rendered state of the realm;\nand you can view its source code by clicking on the [[source]](https://REALMPATH/)\nbutton on the top right of the page.\n\n## 1. Making a gno.land keypair\n\nA keypair is what allows you to interact with the gno.land blockchain. For this, you\ncan use the Adena wallet- it will generate a keypair for you. You will then be able\nuse this keypair to deploy your own Gno code to the blockchain and call functions on \nexisting Gno code, such as this Raffle realm.\n\nVisit the official [Adena website](https://adena.app) to install it. \n\nAfter installing the Adena wallet as an extension, a page will pop up.\nTo create a keypair, follow the steps below. \n\nFirst, select \"Advanced options\" \u003e \"Create new wallet\". Then, complete a \nquestionnaire. You're free to look up the concepts Adena is telling you about\nduring this process (such as \"seed phrase\").\n\nAfter saving your seed phrase and entering a password to protect your keypair,\nyou should be able to see your account generated in the Adena extension.\nWhat you need to proceed to the next step is the address of your account,\nwhich is further derived from your keypair. You'll be able to find it at\nthe top of the Adena extension.\n\nYou are ready to move onto the next step!\n\n## 2. Get GNOTs\n\nWhat are \"!GNOTs\"!? - you might ask. \n\nBlockchains are transactional systems; every interaction with a blockchain is \ndone via a transactional message - ensuring the state of the network is consistent at each point \nin time. On top of this, to prevent DDoS attacks, all blockchains implement \na gas system; for every state change on the network (a transaction), a user must \npay with the network's native currency.\n\nIn the case of gno.land, this is \"!GNOT\"!. To get some testnet \"!GNOT\"!, \nvisit the [gno.land Faucet Hub](https://faucet.gno.land). \n\nSelect \"Gno Portal Loop\", enter your Adena address (copy it from the top of the Adena\nwallet! it starts with \"!g1...\"!), select \"!10 GNOT\"!, complete the captcha, and click\n\"Request drip\". Soon, you should see 10 \"!GNOT\"! available in your Adena wallet.\n\n## 3. Inspecting Gno source code\n\nEach Gno realm lives on a specific package path. In the case of the Raffle realm,\nthis path is \"!REALMPATH\"!. All files that comprise the realm can be found by\nclicking the [source] button on the top right corner. There, you will find a \"!raffle.gno\"!\nfile. This is the main code of the Raffle realm.\n\nTo enter the raffle, you must inspect the Gno code found in this file.\n\nGo do it now! You should be able to figure out the next step yourself.\n\n...\n\n...\n\n...\n\nWelcome back!\n\nBy reading some code, you found out that you need to write and deploy some Gno code.\n\n## 4. Writing Gno code in the Gno Playground\n\nThe next step to entering the raffle is writing a bit of Gno code and deploying\nit to the gno.land blockchain. \n\nBefore diving into the code, let's learn about how the gno.land blockchain stores \ndata.\n\nAll code uploaded to gno.land lives on a specific path, like in a file system.\nFor example, you were able to find the Raffle realm on \"!REALMPATH\"!.\nThis path is a crucial piece of any realm- apart from being able to \ncall all exported functions in the Gno code by specifying its path (a next step!), the path can \nalso be used to import the code into your own application, providing reusability\nof code and interaction between applications that live on the chain.\n\nThe path of the Raffle realm can also be found in the \"!gno.mod\"! file,\nwhich you can also find on the [source] page.\n\nIf you have read through the \"!raffle.gno\"! file, you may have noticed that \"!RegisterCode()\"! \ncan only be called _via other code_. Try to use the Gno Playground to write your own Gno\napp that will import the Raffle realm.\n\nFigure out where to use the \"!RegisterCode()\"! function, and make sure to add\nyour (case sensitive!!) raffle code as a string argument when calling it.\n\n** Include Hint 1, or is it too easy?\n\n## 5. Deploying Gno code\n\nA crucial step in entering the raffle is deploying your Gno code to the blockchain.\nDoing this will complete the first part of the raffle entry - registering your \nraffle code.\n\nLuckily, [Gno Playground](https://play.gno.land) provides an easy way to deploy code- after writing your\ndesired code, you can click on \"Deploy\". This will:\n- Allow you to connect your Adena wallet to the Playground\n- On the top right corner of the Playground, choose the network you want to deploy\nyour code to - you should select \"Portal Loop\"\n- Pick a deployment path for your realm - choose the \"!r/\"! prefix, enter in your\nnamespace (it can be your username), and match your Gno package name to the last\npart of the path. A suggested deployment path could be \"\"!gno.land/r/gc24/myusername/raffle\"!\",\nwhile the package name would need to be \"\"!raffle\"!\"\n\nClicking on \"Deploy\" will prompt an Adena window that will ask you to sign\nthe transaction which will upload your code to the chain. The \"!init()\"!\nfunction will get executed upon deployment. \u003c\u003c keep this in? too big of a hint?\n\nCongratulations! You've made it through the hard part.\n\nWith this, you've connected your address with the raffle code you've received.\n\nYou should be able to see your raffle code show up in the Stats section at the top \nof the page. Don't worry about everyone being able to see your code; codes are usable\nonly once.\n\n## 6. Registering your GitHub username\n\nFinal step! You need to register your GitHub username to complete your raffle entry.\nLook for a function in the \"!raffle.gno\"! file which will allow you to do so, and figure\nout a way to do it. \n\nIf you've succeeded, you'll see your username show up in the \"Stats\" section at the top.\n\n!!! Make sure to register your real GitHub username; if you are chosen as a winner,\nyou will have to prove you have access to the GitHub account !!!\n\n## Conclusion\n\nCongratulations on entering the Raffle! Sit back, relax, and wait for the winner\nannouncement time at the gno.land booth.\n\n#### Hints\nHint 1: Look for the \"!init()\"! function in the \"!raffle.gno\"! file.`\n\n\ttext = strings.Replace(text, \"REALMPATH\", raffleRealmPath, -1)\n\ttext = strings.Replace(text, \"\\\"!\", \"`\", -1) // go/gno complains about ` inside ``\n\n\treturn text\n}\n"},{"name":"raffle_test.gno","body":"package raffle\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tvalidTestHashes = `a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b`\n\tinvalidTestCodes\n\tinvalidCode = \"qd0bJ6HTSB\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tadmin = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\tadminRealm = std.NewUserRealm(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\taliceUserRealm = std.NewUserRealm(alice)\n\taliceCodeRealm = std.NewCodeRealm(\"gno.land/r/demo/alice\")\n\tbobCodeRealm = std.NewCodeRealm(\"gno.land/r/demo/bob\")\n\tvalidTestCodes = []string{ // These are not actual raffle codes, don't worry ;)\n\t\t\"qd0bJ6HTSV\",\n\t\t\"H1Qe2kx@ME\",\n\t\t\"2E$zre$$oE\",\n\t\t\"f@2xEQCEWo\",\n\t\t\"AUpFRwb5H9\",\n\t\t\"jHDNQ^x2zJ\",\n\t\t\"VQz^SbYtR$\",\n\t\t\"?ZggWTzpfz\",\n\t\t\"1HP82PVPD0\",\n\t\t\"#nThf$N?qq\",\n\t\t\"nQJFyyk9vS\",\n\t\t\"4xR5n%ymnw\",\n\t\t\"ogJ7sy77QR\",\n\t\t\"syuJ3ttYKj\",\n\t\t\"w!JgJT^Cu$\",\n\t\t\"kmucxFaAL#\",\n\t\t\"7uz%UDR9f5\",\n\t\t\"ifUWAKug9?\",\n\t\t\"2Np27vsHvp\",\n\t\t\"mtDPMcf%EA\",\n\t\t\"153SQg6T!h\",\n\t\t\"Zgt9c09N9s\",\n\t\t\"jKKU7y*hN9\",\n\t\t\"L$gKPVF0Df\",\n\t\t\"1R^NKNV@RJ\",\n\t\t\"TbtREP@vx6\",\n\t\t\"$ii4\u00261$CXT\",\n\t\t\"jdVRC6FCLT\",\n\t\t\"\u0026qgQrrtB^k\",\n\t}\n)\n\nfunc TestUploadCodes(t *testing.T) {\n\tinvalidHashes := `1cdcdc252a3a8c2d1516527dcf3ee63b4552a6bbb41145527409d8a8b6185c40,551a0108b23cc4bdff4c716a504a677551d68162ada5b9e20ebb21f4d7e83c9d`\n\n\thashes := strings.Split(validTestHashes, \",\")\n\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"UploadCodeHashes should have panicked\")\n\t\t}\n\t}()\n\tUploadCodeHashes(invalidHashes)\n\n\tUploadCodeHashes(validTestHashes)\n\tfor i, hash := range hashes {\n\t\tif hash != codeHashes[i] {\n\t\t\tt.Fatalf(\"Expected %s, got %s\", hash, codeHashes[i])\n\t\t}\n\t}\n}\n\nfunc TestRegisterCode(t *testing.T) {\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\tUploadCodeHashes(validTestHashes)\n\n\tt.Run(\"EmptyCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with an empty code\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(\"\")\n\t})\n\n\tt.Run(\"NonTenCharCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a non-10-char code\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(\"123456789\")\n\t})\n\n\tt.Run(\"RegisterCodeWithUserRealm\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with user realm\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[0])\n\t})\n\n\tt.Run(\"CodeNotOnList\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a code that is not in the list\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(invalidCode)\n\t})\n\n\tt.Run(\"ValidRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tres := RegisterCode(validTestCodes[0])\n\n\t\tfor _, item := range []string{alice.String(), aliceCodeRealm.PkgPath(), validTestCodes[0]} {\n\t\t\tif !strings.Contains(res, item) {\n\t\t\t\tt.Fatalf(\"res should contain %s\", item)\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"DoubleRegisterSameValidCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a double register code error\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[0])\n\t})\n\n\tt.Run(\"DoubleRegisterDiffValidCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a double register origin error\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[1])\n\t})\n}\n\nfunc TestRegisterUsername(t *testing.T) {\n\tt.Run(\"NoEntryUsername\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(bob)\n\t\tstd.TestSetRealm(bobCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterUsername should have panicked with no previous entry\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterUsername(\"bob-username\")\n\t})\n\n\tt.Run(\"ValidEntryRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tres := RegisterUsername(\"alice-username\")\n\t\tif !strings.Contains(res, \"alice-username\") \u0026\u0026 !strings.Contains(res, alice.String()) {\n\t\t\tt.Fatalf(\"expected to find alice's address \u0026 username in the entry\")\n\t\t}\n\t})\n}\n\nfunc TestPickWinner(t *testing.T) {\n\t// alice is already registered\n\t// Register some more users\n\tfor i := 1; i \u003c len(validTestCodes); i++ {\n\t\taddr := testutils.TestAddress(strconv.Itoa(i))\n\t\taddrRealm := std.NewCodeRealm(ufmt.Sprintf(\"gno.land/r/demo/user%d\", i))\n\t\tstd.TestSetOrigCaller(addr)\n\t\tstd.TestSetRealm(addrRealm)\n\t\tRegisterCode(validTestCodes[i])\n\t\tRegisterUsername(ufmt.Sprintf(\"user%d\", i))\n\t}\n\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tUploadRandomness(123123, 508930)\n\n\t// Pick 3 winners\n\tw1 := PickWinner1()\n\tw2 := PickWinner2()\n\n\t// Check if winners are removed after being chosen\n\tif len(completeEntries) != numReg-2 {\n\t\tt.Fatalf(\"expected %d entries, got %d\", numReg-2, len(completeEntries))\n\t}\n\n\tif w1 != winner1.ghUsername {\n\t\tt.Fatalf(\"w1 should be %s, got %s\", w1, winner1.ghUsername)\n\t}\n\n\tif w2 != winner2.ghUsername {\n\t\tt.Fatalf(\"w1 should be %s, got %s\", w2, winner2.ghUsername)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Oxm7ubl8eYLoOqR7zbLE11rXANOrfTZaMdKbON1ph8GIUaEiDQY2bDtdo5pJXQKRaualjWQg975bWu4qyr1Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"raffle","path":"gno.land/r/leon/v2/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/leon/v2/raffle\n\nrequire (\n\tgno.land/p/demo/ownable v0.0.0-latest\n\tgno.land/p/demo/testutils v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n)\n"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to network storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\n// Nothing to see here, just some constants, move on :)\nconst (\n\tcodeLength = 10\n\tamtOfCodes = 300\n)\n\n// Hello! This is where you register your raffle code!\n// Calling RegisterCode is the first step for entering the raffle.\n// It allows you to register a specific raffle code and connect your address to it.\n// RegisterCode only be called via other code; you should figure out a way to do it.\nfunc RegisterCode(code string) string {\n\tif code == \"\" \u0026\u0026 len(code) != codeLength {\n\t\tpanic(\"invalid code: \" + code)\n\t}\n\n\tcaller := std.PrevRealm() // save realm used to call\n\torigin := std.GetOrigCaller() // save deployer of realm\n\n\t// Deny non-code entries\n\tif caller.IsUser() {\n\t\tpanic(\"denied; can only be called from within code\")\n\t}\n\n\t// Get sha256 of code\n\thash := sha256.Sum256([]byte(code))\n\thashString := hex.EncodeToString(hash[:])\n\n\t// Check if code has already been registered\n\tif _, ok := registeredHashes[hashString]; ok {\n\t\tpanic(\"code already registered: \" + code)\n\t}\n\n\t// Check if the gopher has already registered another raffle code\n\tif originExists(origin) {\n\t\tpanic(\"you cannot register more than one code!\")\n\t}\n\n\t// Try to find the hash in the official hash list\n\tvar found bool\n\tfor _, ch := range codeHashes {\n\t\tif ch == hashString {\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\tpanic(\"specified code is not a valid raffle code: \" + code)\n\t}\n\n\tentry := \u0026EntryData{\n\t\ttxorigin: origin,\n\t\tcaller: caller,\n\t\traffleCode: code,\n\t\tcodeHash: hashString,\n\t\tghUsername: \"\",\n\t}\n\n\t// Save to hash tracker\n\tregisteredHashes[hashString] = struct{}{}\n\n\t// Save raffle entry\n\tpartialEntries = append(partialEntries, entry)\n\n\treturn ufmt.Sprintf(\"Successfully registered raffle code!\\n%s\\nRegister your username to complete your raffle entry.\", entry.String())\n}\n\n// Somewhat similar to Go, init() executes upon deployment of your code.\n// Hint: maybe you can use init() in your code to execute RegisterCode() upon deployment via play.gno.land?\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\n// RegisterUsername registers a GitHub username to an already existing entry\n// Hint: you can call this function just like you did with RegisterCode(), or via gno.studio/connect :)\n// If you use Connect, make sure you're on the Portal Loop network, and you've navigated to the correct path!\nfunc RegisterUsername(username string) string {\n\tif username == \"\" {\n\t\tpanic(\"invalid username: \" + username)\n\t}\n\n\torigin := std.GetOrigCaller()\n\n\tfor _, entry := range partialEntries {\n\t\tif entry.txorigin == origin { // this will check if you're using the same address as when registering the raffle code ;)\n\t\t\tif entry.ghUsername != \"\" {\n\t\t\t\tpanic(\"you cannot register your username twice!\")\n\t\t\t}\n\n\t\t\tentry.ghUsername = username\n\t\t\tcompleteEntries = append(completeEntries, entry)\n\t\t\tnumReg += 1\n\t\t\treturn ufmt.Sprintf(\"successfully registered %s for address %s\", username, entry.txorigin)\n\t\t}\n\t}\n\n\tpanic(\"could not find entry for caller address; did you register your raffle code yet?\")\n}\n\n// Admin stuff\n\nfunc PickWinner1() string {\n\to.AssertCallerIsOwner()\n\twinner1 = pickWinner()\n\n\treturn winner1.ghUsername\n}\n\nfunc PickWinner2() string {\n\to.AssertCallerIsOwner()\n\twinner2 = pickWinner()\n\n\treturn winner2.ghUsername\n}\n\nfunc UploadCodeHashes(delimCodes string) {\n\to.AssertCallerIsOwner()\n\n\ttokens := strings.Split(delimCodes, \",\")\n\n\tif len(tokens) != amtOfCodes {\n\t\tpanic(ufmt.Sprintf(\"invalid amount of codes; wanted %d got %d\", amtOfCodes, len(tokens)))\n\t}\n\n\tcopy(codeHashes, tokens)\n}\n\nfunc UploadRandomness(x, y uint64) {\n\to.AssertCallerIsOwner()\n\n\trandSource = rand.New(rand.NewPCG(x, y))\n}\n\n// Rendering\n\nfunc Render(_ string) string {\n\toutput := \"# Raffle - GopherCon US 2024\\n\\n\"\n\n\toutput += renderStats()\n\toutput += RenderGuide()\n\n\treturn output\n}\n\nfunc renderStats() string {\n\toutput := \"\"\n\n\toutput += \"### Raffle Stats\\n\\n\"\n\n\toutput += `\u003cdiv class=\"columns-3\"\u003e`\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest codes\n\toutput += renderLatestCodesWidget(2)\n\toutput += `\u003c/div\u003e` // close Latest codes\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest usernames\n\toutput += renderLatestUsernamesWidget(2)\n\toutput += `\u003c/div\u003e` // close Latest usernames\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Winners\n\toutput += renderWinners()\n\toutput += `\u003c/div\u003e` // close Winners\n\n\toutput += `\u003c/div\u003e` // close columns-3\n\n\toutput += \"\\n\\n\"\n\toutput += \"---\" // close section\n\n\toutput += \"\\n\"\n\n\treturn output\n}\n\nfunc renderWinners() string {\n\toutput := \"\\n\\n#### Winners\\n\\n\"\n\n\tif winner1 == nil {\n\t\toutput += ufmt.Sprintf(\"- Winner 1: Not chosen yet!\\n\\n\")\n\t} else {\n\t\toutput += ufmt.Sprintf(\"- Winner 1: @%s!\\n\\n\", winner1.ghUsername)\n\t}\n\n\tif winner2 == nil {\n\t\toutput += ufmt.Sprintf(\"- Winner 2: Not chosen yet!\\n\\n\")\n\t} else {\n\t\toutput += ufmt.Sprintf(\"- Winner 2: @%s!\\n\\n\", winner2.ghUsername)\n\t}\n\n\tchanceOfWinning := 0\n\tif numReg \u003e 0 {\n\t\tchanceOfWinning = 100 / numReg\n\t\toutput += ufmt.Sprintf(\"- Current chance to win a prize: %d%% \", chanceOfWinning)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestCodesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest codes\\n\\n\"\n\tpeNum := len(partialEntries)\n\n\tif peNum == 0 {\n\t\toutput += \"No codes registered yet.\"\n\t\treturn output\n\t}\n\n\tif peNum \u003c amt {\n\t\tamt = peNum\n\t}\n\n\tfor i := peNum - 1; i \u003e= peNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", partialEntries[i].raffleCode)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestUsernamesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest usernames\\n\\n\"\n\tceNum := len(completeEntries)\n\n\tif ceNum == 0 {\n\t\toutput += \"No usernames registered yet.\"\n\t\treturn output\n\t}\n\n\tif ceNum \u003c amt {\n\t\tamt = ceNum\n\t}\n\n\tfor i := ceNum - 1; i \u003e= ceNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", completeEntries[i].ghUsername)\n\t}\n\n\treturn output\n}\n\n// Helpers\n\nfunc (entry *EntryData) String() string {\n\treturn ufmt.Sprintf(\"Address: %s\\nRealm Path: %s\\nCode: %s\\nHash: %s\\nGitHub username: %s\\n\",\n\t\tentry.txorigin.String(),\n\t\tentry.caller.PkgPath(),\n\t\tentry.raffleCode,\n\t\tentry.codeHash,\n\t\tentry.ghUsername,\n\t)\n}\n\nfunc pickWinner() *EntryData {\n\tif len(completeEntries) == 0 {\n\t\tpanic(\"No complete entries yet!\")\n\t}\n\tif randSource == nil {\n\t\tpanic(\"No randomness source yet!\")\n\t}\n\n\tr := rand.New(randSource)\n\twinnerIndex := r.IntN(len(completeEntries))\n\twinner := completeEntries[winnerIndex]\n\n\t// remove winner from entry list\n\tcompleteEntries = append(completeEntries[:winnerIndex], completeEntries[winnerIndex+1:]...)\n\n\treturn winner\n}\n\nfunc CheckHashUpload() int {\n\treturn len(codeHashes)\n}\n\nfunc originExists(origin std.Address) bool {\n\tfor _, e := range partialEntries {\n\t\tif e.txorigin == origin {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n"},{"name":"raffle_guide.gno","body":"package raffle\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nvar (\n\traffleRealmPath = std.CurrentRealm().PkgPath() // will give you portal loop path\n)\n\nfunc RenderGuide() string {\n\n\ttext := `# Entering the raffle\n\nWelcome, gopher!\n\nYou've decided to enter the gno.land raffle to get a chance to win a valuable prize.\nWe congratulate you on your curiosity and courage!\n\nYou will need your personal computer and a bit of time to enter the raffle. Find \na quiet corner and read the rest of this README file.\nAlso, make sure you've gotten your unique raffle entry code at the gno.land booth -\nyou will not be able to proceed without it.\n\n## Why enter the raffle?\n\nApart from getting a chance to win awesome prizes, you will be able to learn\na couple of basic concepts on how to use Gno, as well as some supporting Gno tools -\nthe [Gno Playground](https://play.gno.land), which will help you deploy your own \nGno code, and [Connect](https://gno.studio/connect), which will\nallow you to easily call smart contracts (called \"!realms\"! in Gno) that live on\nthe gno.land blockchain.\n\nWe've created this raffle to reward gophers that are curious and eager to learn\nabout new tech- if you can relate, you're in the right place!\n\nAfter completing a series of steps, you'll have a chance at winning one of\nthe raffle prizes - we're giving away two Keychron K2 Pro mechanical keyboards.\n\n## How do I enter?\n\nTo enter the raffle, you will need to go into dev mode. You need to take a look \nat some Gno code, learn how to interact with the gno.land blockchain, and submit\nyour raffle entry to the Raffle realm - which you are viewing right now!\nThis text, as well as the \"Stats\" at the top of the page are actual live state of\nthe Raffle realm.\n\nWe want you to try to figure things out on your own; you should prove your curiosity\nand ability to learn about new technology in a short period of time. If, however, \nyou do run into issues - the engineers at the gno.land booth will be able to help \nyou.\n\n## Let's get started!\n\nEntering the raffle involves two main parts:\n1. Registering your raffle code, which you got from the gno.land booth\n2. Registering your GitHub username\n\nBoth of these involve interacting with the Raffle realm. \nYou're currently reading the rendered state of the realm;\nand you can view its source code by clicking on the [[source]](https://REALMPATH/)\nbutton on the top right of the page.\n\n## 1. Making a gno.land keypair\n\nA keypair is what allows you to interact with the gno.land blockchain. For this, you\ncan use the Adena wallet- it will generate a keypair for you. You will then be able\nuse this keypair to deploy your own Gno code to the blockchain and call functions on \nexisting Gno code, such as this Raffle realm.\n\nVisit the official [Adena website](https://adena.app) to install it. \n\nAfter installing the Adena wallet as an extension, a page will pop up.\nTo create a keypair, follow the steps below. \n\nFirst, select \"Advanced options\" \u003e \"Create new wallet\". Then, complete a \nquestionnaire. You're free to look up the concepts Adena is telling you about\nduring this process (such as \"seed phrase\").\n\nAfter saving your seed phrase and entering a password to protect your keypair,\nyou should be able to see your account generated in the Adena extension.\nWhat you need to proceed to the next step is the address of your account,\nwhich is further derived from your keypair. You'll be able to find it at\nthe top of the Adena extension.\n\nYou are ready to move onto the next step!\n\n## 2. Get GNOTs\n\nWhat are \"!GNOTs\"!? - you might ask. \n\nBlockchains are transactional systems; every interaction with a blockchain is \ndone via a transactional message - ensuring the state of the network is consistent at each point \nin time. On top of this, to prevent DDoS attacks, all blockchains implement \na gas system; for every state change on the network (a transaction), a user must \npay with the network's native currency.\n\nIn the case of gno.land, this is \"!GNOT\"!. To get some testnet \"!GNOT\"!, \nvisit the [gno.land Faucet Hub](https://faucet.gno.land). \n\nSelect \"Gno Portal Loop\", enter your Adena address (copy it from the top of the Adena\nwallet! it starts with \"!g1...\"!), select \"!10 GNOT\"!, complete the captcha, and click\n\"Request drip\". Soon, you should see 10 \"!GNOT\"! available in your Adena wallet.\n\n## 3. Inspecting Gno source code\n\nEach Gno realm lives on a specific package path. In the case of the Raffle realm,\nthis path is \"!REALMPATH\"!. All files that comprise the realm can be found by\nclicking the [source] button on the top right corner. There, you will find a \"!raffle.gno\"!\nfile. This is the main code of the Raffle realm.\n\nTo enter the raffle, you must inspect the Gno code found in this file.\n\nGo do it now! You should be able to figure out the next step yourself.\n\n...\n\n...\n\n...\n\nWelcome back!\n\nBy reading some code, you found out that you need to write and deploy some Gno code.\n\n## 4. Writing Gno code in the Gno Playground\n\nThe next step to entering the raffle is writing a bit of Gno code and deploying\nit to the gno.land blockchain. \n\nBefore diving into the code, let's learn about how the gno.land blockchain stores \ndata.\n\nAll code uploaded to gno.land lives on a specific path, like in a file system.\nFor example, you were able to find the Raffle realm on \"!REALMPATH\"!.\nThis path is a crucial piece of any realm- apart from being able to \ncall all exported functions in the Gno code by specifying its path (a next step!), the path can \nalso be used to import the code into your own application, providing reusability\nof code and interaction between applications that live on the chain.\n\nThe path of the Raffle realm can also be found in the \"!gno.mod\"! file,\nwhich you can also find on the [source] page.\n\nIf you have read through the \"!raffle.gno\"! file, you may have noticed that \"!RegisterCode()\"! \ncan only be called _via other code_. Try to use the Gno Playground to write your own Gno\napp that will import the Raffle realm.\n\nFigure out where to use the \"!RegisterCode()\"! function, and make sure to add\nyour (case sensitive!!) raffle code as a string argument when calling it.\n\n** Include Hint 1, or is it too easy?\n\n## 5. Deploying Gno code\n\nA crucial step in entering the raffle is deploying your Gno code to the blockchain.\nDoing this will complete the first part of the raffle entry - registering your \nraffle code.\n\nLuckily, [Gno Playground](https://play.gno.land) provides an easy way to deploy code- after writing your\ndesired code, you can click on \"Deploy\". This will:\n- Allow you to connect your Adena wallet to the Playground\n- On the top right corner of the Playground, choose the network you want to deploy\nyour code to - you should select \"Portal Loop\"\n- Pick a deployment path for your realm - choose the \"!r/\"! prefix, enter in your\nnamespace (it can be your username), and match your Gno package name to the last\npart of the path. A suggested deployment path could be \"\"!gno.land/r/gc24/myusername/raffle\"!\",\nwhile the package name would need to be \"\"!raffle\"!\"\n\nClicking on \"Deploy\" will prompt an Adena window that will ask you to sign\nthe transaction which will upload your code to the chain. The \"!init()\"!\nfunction will get executed upon deployment. \u003c\u003c keep this in? too big of a hint?\n\nCongratulations! You've made it through the hard part.\n\nWith this, you've connected your address with the raffle code you've received.\n\nYou should be able to see your raffle code show up in the Stats section at the top \nof the page. Don't worry about everyone being able to see your code; codes are usable\nonly once.\n\n## 6. Registering your GitHub username\n\nFinal step! You need to register your GitHub username to complete your raffle entry.\nLook for a function in the \"!raffle.gno\"! file which will allow you to do so, and figure\nout a way to do it. \n\nIf you've succeeded, you'll see your username show up in the \"Stats\" section at the top.\n\n!!! Make sure to register your real GitHub username; if you are chosen as a winner,\nyou will have to prove you have access to the GitHub account !!!\n\n## Conclusion\n\nCongratulations on entering the Raffle! Sit back, relax, and wait for the winner\nannouncement time at the gno.land booth.\n\n#### Hints\nHint 1: Look for the \"!init()\"! function in the \"!raffle.gno\"! file.`\n\n\ttext = strings.Replace(text, \"REALMPATH\", raffleRealmPath, -1)\n\ttext = strings.Replace(text, \"\\\"!\", \"`\", -1) // go/gno complains about ` inside ``\n\n\treturn text\n}\n"},{"name":"raffle_test.gno","body":"package raffle\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tvalidTestHashes = `a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b`\n\tinvalidTestCodes\n\tinvalidCode = \"qd0bJ6HTSB\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tadmin = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\tadminRealm = std.NewUserRealm(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\taliceUserRealm = std.NewUserRealm(alice)\n\taliceCodeRealm = std.NewCodeRealm(\"gno.land/r/demo/alice\")\n\tbobCodeRealm = std.NewCodeRealm(\"gno.land/r/demo/bob\")\n\tvalidTestCodes = []string{ // These are not actual raffle codes, don't worry ;)\n\t\t\"qd0bJ6HTSV\",\n\t\t\"H1Qe2kx@ME\",\n\t\t\"2E$zre$$oE\",\n\t\t\"f@2xEQCEWo\",\n\t\t\"AUpFRwb5H9\",\n\t\t\"jHDNQ^x2zJ\",\n\t\t\"VQz^SbYtR$\",\n\t\t\"?ZggWTzpfz\",\n\t\t\"1HP82PVPD0\",\n\t\t\"#nThf$N?qq\",\n\t\t\"nQJFyyk9vS\",\n\t\t\"4xR5n%ymnw\",\n\t\t\"ogJ7sy77QR\",\n\t\t\"syuJ3ttYKj\",\n\t\t\"w!JgJT^Cu$\",\n\t\t\"kmucxFaAL#\",\n\t\t\"7uz%UDR9f5\",\n\t\t\"ifUWAKug9?\",\n\t\t\"2Np27vsHvp\",\n\t\t\"mtDPMcf%EA\",\n\t\t\"153SQg6T!h\",\n\t\t\"Zgt9c09N9s\",\n\t\t\"jKKU7y*hN9\",\n\t\t\"L$gKPVF0Df\",\n\t\t\"1R^NKNV@RJ\",\n\t\t\"TbtREP@vx6\",\n\t\t\"$ii4\u00261$CXT\",\n\t\t\"jdVRC6FCLT\",\n\t\t\"\u0026qgQrrtB^k\",\n\t}\n)\n\nfunc TestUploadCodes(t *testing.T) {\n\tinvalidHashes := `1cdcdc252a3a8c2d1516527dcf3ee63b4552a6bbb41145527409d8a8b6185c40,551a0108b23cc4bdff4c716a504a677551d68162ada5b9e20ebb21f4d7e83c9d`\n\n\thashes := strings.Split(validTestHashes, \",\")\n\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"UploadCodeHashes should have panicked\")\n\t\t}\n\t}()\n\tUploadCodeHashes(invalidHashes)\n\n\tUploadCodeHashes(validTestHashes)\n\tfor i, hash := range hashes {\n\t\tif hash != codeHashes[i] {\n\t\t\tt.Fatalf(\"Expected %s, got %s\", hash, codeHashes[i])\n\t\t}\n\t}\n}\n\nfunc TestRegisterCode(t *testing.T) {\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\tUploadCodeHashes(validTestHashes)\n\n\tt.Run(\"EmptyCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with an empty code\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(\"\")\n\t})\n\n\tt.Run(\"NonTenCharCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a non-10-char code\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(\"123456789\")\n\t})\n\n\tt.Run(\"RegisterCodeWithUserRealm\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with user realm\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[0])\n\t})\n\n\tt.Run(\"CodeNotOnList\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a code that is not in the list\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(invalidCode)\n\t})\n\n\tt.Run(\"ValidRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tres := RegisterCode(validTestCodes[0])\n\n\t\tfor _, item := range []string{alice.String(), aliceCodeRealm.PkgPath(), validTestCodes[0]} {\n\t\t\tif !strings.Contains(res, item) {\n\t\t\t\tt.Fatalf(\"res should contain %s\", item)\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"DoubleRegisterSameValidCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a double register code error\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[0])\n\t})\n\n\tt.Run(\"DoubleRegisterDiffValidCode\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterCode should have panicked with a double register origin error\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterCode(validTestCodes[1])\n\t})\n\n}\n\nfunc TestRegisterUsername(t *testing.T) {\n\tt.Run(\"NoEntryUsername\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(bob)\n\t\tstd.TestSetRealm(bobCodeRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterUsername should have panicked with no previous entry\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterUsername(\"bob-username\")\n\t})\n\n\tt.Run(\"ValidEntryRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tres := RegisterUsername(\"alice-username\")\n\t\tif !strings.Contains(res, \"alice-username\") \u0026\u0026 !strings.Contains(res, alice.String()) {\n\t\t\tt.Fatalf(\"expected to find alice's address \u0026 username in the entry\")\n\t\t}\n\t})\n\n\tt.Run(\"ValidEntryRegister\", func(t *testing.T) {\n\t\tstd.TestSetOrigCaller(alice)\n\t\tstd.TestSetRealm(aliceUserRealm)\n\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Fatalf(\"RegisterUsername should have panicked with double username\")\n\t\t\t}\n\t\t}()\n\n\t\tRegisterUsername(\"alice-username\")\n\t})\n}\n\nfunc TestPickWinner(t *testing.T) {\n\t// alice is already registered\n\t// Register some more users\n\tfor i := 1; i \u003c len(validTestCodes); i++ {\n\t\taddr := testutils.TestAddress(strconv.Itoa(i))\n\t\taddrRealm := std.NewCodeRealm(ufmt.Sprintf(\"gno.land/r/demo/user%d\", i))\n\t\tstd.TestSetOrigCaller(addr)\n\t\tstd.TestSetRealm(addrRealm)\n\t\tRegisterCode(validTestCodes[i])\n\t\tRegisterUsername(ufmt.Sprintf(\"user%d\", i))\n\t}\n\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tUploadRandomness(123123, 508930)\n\n\t// Pick 3 winners\n\tw1 := PickWinner1()\n\tw2 := PickWinner2()\n\n\t// Check if winners are removed after being chosen\n\tif len(completeEntries) != numReg-2 {\n\t\tt.Fatalf(\"expected %d entries, got %d\", numReg-2, len(completeEntries))\n\t}\n\n\tif w1 != winner1.ghUsername {\n\t\tt.Fatalf(\"w1 should be %s, got %s\", w1, winner1.ghUsername)\n\t}\n\n\tif w2 != winner2.ghUsername {\n\t\tt.Fatalf(\"w1 should be %s, got %s\", w2, winner2.ghUsername)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kf7Mlx7CF2YUKF5wb5EeABT48Wv/O9xxLfO1mh2o2wfy/XkHhgv2xMs5EuNjglB6uz4NeoJj3UdAlZvSsmM9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","package":{"name":"v1","path":"gno.land/r/leon/issues/ptrregistry/v1","files":[{"name":"package.gno","body":"package ptrregistry\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar Intptrslice = make([]*int, 10)\n\nfunc Render(_ string) string {\n\tout := \"\"\n\tfor _, i := range Intptrslice {\n\t\tout += ufmt.Sprintf(\"%d, \", i)\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cD6k0RenBkAAHhK5J0/VbVf/5yj0j4T1EA8nVlZqldeb2Zzy0KIItV+kiEgiVoz3axn8QvNxkxaMpnGaV7siAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g128faxq7dtvt6m9lc4mwy9dn026y6tzmfdmhjga","package":{"name":"raffle","path":"gno.land/r/ab/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/gc24/alexander-bachmann/raffle\n\nrequire (\n gno.land/r/gc24/raffle v0.0.0-latest\n)"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n r \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n r.RegisterCode(\"z1c5m7L8uW\")\n r.RegisterUsername(\"alexander-bachmann\")\n}"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zxYyUSD0D5zBuevttEVSymWw0ESqGlGwyYP4DhcBDbZvGXGCAl4/MgS6CxvjV+Z9fu2V6wNT1O2hbJdyVjSBDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g128faxq7dtvt6m9lc4mwy9dn026y6tzmfdmhjga","package":{"name":"raffle","path":"gno.land/r/ab/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/gc24/alexander-bachmann/raffle\n\nrequire (\n gno.land/r/gc24/raffle v0.0.0-latest\n)"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tr.RegisterCode(\"z1c5m7L8uW\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hZp6dMLYNU5nDoTOzphPov9iOPR8D+00NJohWZ4ydaMt7lVz5NJjk82IvoEqPpUNeOAsaUqEkvZHiMz8NvAcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g128faxq7dtvt6m9lc4mwy9dn026y6tzmfdmhjga","package":{"name":"raffle","path":"gno.land/r/abach/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/gc24/alexander-bachmann/raffle\n\nrequire (\n gno.land/r/gc24/raffle v0.0.0-latest\n)"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tr.RegisterCode(\"z1c5m7L8uW\")\n\tr.RegisterUsername(\"alexander-bachmann\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K0o6Ws1r2gIkWWOYMAfnZS+OCeDirBbn60ItKP5MOgNG3kEPs8PRj3ZcQZsiifC03MpzgOEqPWQ++vPxjFAhAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g128faxq7dtvt6m9lc4mwy9dn026y6tzmfdmhjga","package":{"name":"raffle","path":"gno.land/r/abach/raffle","files":[{"name":"gno.mod","body":"module gno.land/r/gc24/alexander-bachmann/raffle\n\nrequire (\n gno.land/r/gc24/raffle v0.0.0-latest\n)"},{"name":"raffle.gno","body":"package raffle\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tr.RegisterUsername(\"alexander-bachmann\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Yu+irVI6QqJhErAajv3VL155uR8sSkyyn1R5JQNKLizqD7nLWbSg7aVs8t4A4F227oDp/qW9zSOxyHUrBitAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12chzmwxw8sezcxe9h2csp0tck76r4ptwdlyyqk","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UvZRHyTBdpsIhhW69i+s6WUEXu8W1SJin1lK+MGIqY0ZW4HoQiSS4192/VhHA3YRKqI5ABB1L/WXu+8NRhOWAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12chzmwxw8sezcxe9h2csp0tck76r4ptwdlyyqk","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UvZRHyTBdpsIhhW69i+s6WUEXu8W1SJin1lK+MGIqY0ZW4HoQiSS4192/VhHA3YRKqI5ABB1L/WXu+8NRhOWAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12chzmwxw8sezcxe9h2csp0tck76r4ptwdlyyqk","package":{"name":"hello","path":"gno.land/p//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4/9c2Rn0Mi4usB12xU9CZRrDW96BgaY+yKpfatZ4mC9iinxxrvy2WH1CCXbiRks252I38FkNaHIt5xtkxLtoAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12chzmwxw8sezcxe9h2csp0tck76r4ptwdlyyqk","package":{"name":"hello","path":"gno.land/p//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4/9c2Rn0Mi4usB12xU9CZRrDW96BgaY+yKpfatZ4mC9iinxxrvy2WH1CCXbiRks252I38FkNaHIt5xtkxLtoAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OnTDGvZJiDSOCP7a7VAF8yjdRPMmea1VxyEsSpp68h1BlqveqB+SsxUDNybVumdtEdBKaQLqeDpaJtbT418CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12w28y8g6feadunkl6wv7w2e8yjnal0j3p9dxhw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iBnUkdnsBxSZBWJ6h3qgLCkdH7H4QvRCgFBcUJU3AeVGGk58LHDD7iUx14t1JG1p4zOLxobflSR3ilSVFsTwBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g12w28y8g6feadunkl6wv7w2e8yjnal0j3p9dxhw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iBnUkdnsBxSZBWJ6h3qgLCkdH7H4QvRCgFBcUJU3AeVGGk58LHDD7iUx14t1JG1p4zOLxobflSR3ilSVFsTwBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yFPVF7fwrgaVUneSRtm43P2gTAT4SimfWU1w83MnjRytqvKduv42W16hqXLCvH0OxG7AoFZ7OdwQusIEiutECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yFPVF7fwrgaVUneSRtm43P2gTAT4SimfWU1w83MnjRytqvKduv42W16hqXLCvH0OxG7AoFZ7OdwQusIEiutECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yFPVF7fwrgaVUneSRtm43P2gTAT4SimfWU1w83MnjRytqvKduv42W16hqXLCvH0OxG7AoFZ7OdwQusIEiutECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g130g97u00ayr3gjr38w5qpf4he7xku8kszwe26y","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yFPVF7fwrgaVUneSRtm43P2gTAT4SimfWU1w83MnjRytqvKduv42W16hqXLCvH0OxG7AoFZ7OdwQusIEiutECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","package":{"name":"hello","path":"gno.land/r/ngoc/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jv0zFbfKCm2Fw04StRf1GSHJTZRW7OqLAIzellcrCo3qEf6WR7CMO5A+bq/HQD+26ZWk/JRqOHMz7S3+eZJ6Cw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","package":{"name":"hello","path":"gno.land/r/test/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3kyN6fydnqvERsLkgsWEPiRG1NKKbZRmkk5AdeWtjwrvSIqxBdRYflw1NGPv0Td/Ih7cw+6LlI/NcU5WDjONDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JnTCm86Zvnje6WthFV0TeHsKN7fKKFlcJk64hOZRR+iAqDFVbGXZ7/KPCTom1D2bjDI5r40KHAgnSYwzrHY3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3uCgBrZ2nhSg2jkOhCdUE9ovVY3XvKpsp/fsRLxI7oO2bNkVoHm1yV2HqOjWW1+yc8Z7xJGXHvn+nfhLfUEJBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3uCgBrZ2nhSg2jkOhCdUE9ovVY3XvKpsp/fsRLxI7oO2bNkVoHm1yV2HqOjWW1+yc8Z7xJGXHvn+nfhLfUEJBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3uCgBrZ2nhSg2jkOhCdUE9ovVY3XvKpsp/fsRLxI7oO2bNkVoHm1yV2HqOjWW1+yc8Z7xJGXHvn+nfhLfUEJBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3uCgBrZ2nhSg2jkOhCdUE9ovVY3XvKpsp/fsRLxI7oO2bNkVoHm1yV2HqOjWW1+yc8Z7xJGXHvn+nfhLfUEJBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D8u8OGLQ0zInEsFKPTgDGARd4O/nau63csmK88jn6i9NtmXD8RqIzuuvCaOT1HqmoyptI9MaDw54uBRTMLidAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13jt6wq3z2mp2wg9dkcejn046f8fnyu74002ftq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e5EMnm84qcRYUBikRh2zIGCD6ALapP3Scv98XmsDaX7yttUPL3Rmqhb+PuqQXmNHhP02904sN81EpBx0y70iDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5Du69balHvaTBq44nUtcAOvduFLUj3i/Jb4dgp2CfNC0zHSsMspe89Ec5EJfuqu5s9DkZhfGeQGjSUczaf8RBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","package":{"name":"3d","path":"gno.land/r/stuyk/3d","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"\u003c3d\u003eZ2xURgIAAABg7wMAiBQAAEpTT057ImFzc2V0Ijp7ImdlbmVyYXRvciI6Iktocm9ub3MgZ2xURiBCbGVuZGVyIEkvTyB2NC4yLjcwIiwidmVyc2lvbiI6IjIuMCJ9LCJzY2VuZSI6MCwic2NlbmVzIjpbeyJuYW1lIjoiU2NlbmUiLCJub2RlcyI6WzE3XX1dLCJub2RlcyI6W3sibmFtZSI6IkJvbmUuMDAzIiwidHJhbnNsYXRpb24iOlswLDAuMjYzNTU3NjcyNTAwNjEwMzUsMF19LHsiY2hpbGRyZW4iOlswXSwibmFtZSI6IkJvbmUuMDAyIiwidHJhbnNsYXRpb24iOlswLDAuODAwMDAwMDcxNTI1NTczNywwXX0seyJuYW1lIjoiQm9uZS4wMDYiLCJyb3RhdGlvbiI6Wy0wLjExMzM0OTg5OTY0OTYyMDA2LC0wLjAzNzk4NDE4NDkyMDc4NzgxLC0wLjA0NDA1NjA2NTM4MDU3MzI3LDAuOTkxODUwODUyOTY2MzA4Nl0sInNjYWxlIjpbMS4wMDAwMDAxMTkyMDkyODk2LDEsMS4wMDAwMDAxMTkyMDkyODk2XSwidHJhbnNsYXRpb24iOlsxLjQ5MDExNjExOTM4NDc2NTZlLTA4LDAuODA1NDQzODIzMzM3NTU0OSw3LjMyNzYxNjkxMzI0NDEyOGUtMDhdfSx7ImNoaWxkcmVuIjpbMl0sIm5hbWUiOiJCb25lLjAwNSIsInJvdGF0aW9uIjpbLTAuMDQzMzczMjQ5NDcxMTg3NTksLTAuMDEwOTY5ODA5MjU2NDk0MDQ1LC0wLjA3MTMwMDg1Njc2OTA4NDkzLDAuOTk2NDUxMDIwMjQwNzgzN10sInNjYWxlIjpbMC45OTk5OTk4ODA3OTA3MTA0LDEuMDAwMDAwMTE5MjA5Mjg5NiwxLjAwMDAwMDExOTIwOTI4OTZdLCJ0cmFuc2xhdGlvbiI6WzguMzgxOTAzMTcxNTM5MzA3ZS0wOSwwLjQ4NzQwMTAzODQwODI3OTQsMy4wNTUzNTY1MDExMzU5NzVlLTA4XX0seyJjaGlsZHJlbiI6WzNdLCJuYW1lIjoiQm9uZS4wMDQiLCJyb3RhdGlvbiI6Wy0wLjg0MzcyNTE0NDg2MzEyODcsLTAuMDY2ODA1NjE2MDIxMTU2MzEsLTAuMDQyNjk0MDY1NzE5ODQyOTEsMC41MzA4ODgwODA1OTY5MjM4XSwic2NhbGUiOlsxLDAuOTk5OTk5OTQwMzk1MzU1MiwwLjk5OTk5OTg4MDc5MDcxMDRdLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjc0NDk0Mzg1NzE5Mjk5MywtMC40NDM1NzUxNDM4MTQwODY5XX0seyJuYW1lIjoiQm9uZS4wMTIiLCJyb3RhdGlvbiI6WzAuMTA4NzEwNjgzODgyMjM2NDgsLTAuMDUwNzQ1MjQ4Nzk0NTU1NjY0LDAuMDU0NTA4MDU2NDkxNjEzMzksMC45OTEyNzk5MDAwNzQwMDUxXSwic2NhbGUiOlsxLDEuMDAwMDAwMTE5MjA5Mjg5NiwwLjk5OTk5OTk0MDM5NTM1NTJdLCJ0cmFuc2xhdGlvbiI6Wy04Ljk0MDY5NjcxNjMwODU5NGUtMDgsMC44MDU0NDM3MDQxMjgyNjU0LDEuMTkyMDkyODk1NTA3ODEyNWUtMDddfSx7ImNoaWxkcmVuIjpbNV0sIm5hbWUiOiJCb25lLjAxMSIsInJvdGF0aW9uIjpbMC4wODEwMTEzMjUxMjA5MjU5LDAuMTUzMTU1NzU4OTc2OTM2MzQsLTAuMDIwMDU1MjgwOTk4MzQ5MTksMC45ODQ2NzE2NTIzMTcwNDcxXSwic2NhbGUiOlsxLjAwMDAwMDExOTIwOTI4OTYsMSwxXSwidHJhbnNsYXRpb24iOlsyLjc5Mzk2NzcyMzg0NjQzNTVlLTA4LDAuNDg3NDAxMDA4NjA1OTU3MDMsLTYuMTAwMTYyODYzNzMxMzg0ZS0wOF19LHsiY2hpbGRyZW4iOls2XSwibmFtZSI6IkJvbmUuMDEwIiwicm90YXRpb24iOlswLjgxNDUxMzc0MjkyMzczNjYsMC4yMzAwMDU1NzcyMDY2MTE2MywwLjIyNDE5MjU3NDYyMDI0NjksMC40ODMxMTc1MjA4MDkxNzM2XSwic2NhbGUiOlsxLDAuOTk5OTk5ODgwNzkwNzEwNCwwLjk5OTk5OTgyMTE4NjA2NTddLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjk0NzY4MDcxMTc0NjIxNiwwLjQzODA2MTM1NjU0NDQ5NDYzXX0seyJjaGlsZHJlbiI6WzEsNCw3XSwibmFtZSI6IkJvbmUuMDAxIiwidHJhbnNsYXRpb24iOlswLDAuNTA5Mzc3MzYwMzQzOTMzMSwwXX0seyJuYW1lIjoiQm9uZS4wMDkiLCJyb3RhdGlvbiI6WzAuMDYzNDg0MjM2NTk4MDE0ODMsMC4wNDYwODUyOTA2MTA3OTAyNSwtMC42MjI1OTkzNjMzMjcwMjY0LDAuNzc4NTk4NzI1Nzk1NzQ1OF0sInNjYWxlIjpbMC45OTk5OTk5NDAzOTUzNTUyLDEsMV0sInRyYW5zbGF0aW9uIjpbMi44Mzc2MjM0Njk1MzE1MzZlLTA5LDAuOTg0NTgzMjU4NjI4ODQ1MiwtOC42ODU2NzQ0MDE5MzE0NjVlLTA5XX0seyJjaGlsZHJlbiI6WzldLCJuYW1lIjoiQm9uZS4wMDgiLCJyb3RhdGlvbiI6Wy0wLjAwNjgyMjA4NTAwODAyNTE2OSwtMi45NDcwMDM4NDk4NDAyNTczZS0wNSwtMC4wNTUwNjQyOTgyMTI1MjgyMywwLjk5ODQ1OTUxNzk1NTc4XSwic2NhbGUiOlswLjk5OTk5OTk0MDM5NTM1NTIsMC45OTk5OTk5NDAzOTUzNTUyLDFdLCJ0cmFuc2xhdGlvbiI6WzEuMjc0NzQ3Nzc0MDA0OTM2MmUtMDgsMS4wNzgxOTc1OTg0NTczMzY0LC0yLjQ5NTY1MzQ2MTY2NDkxNWUtMDldfSx7ImNoaWxkcmVuIjpbMTBdLCJuYW1lIjoiQm9uZS4wMDciLCJyb3RhdGlvbiI6WzAuOTk4Mzk2ODczNDc0MTIxMSwtMC4wNTMzMzgzMjY1MTM3NjcyNCwwLjAwMTIzMzAwMTEyMzE4MjQ3NTYsMC4wMTg4OTkyNjM4MTQwOTE2ODJdLCJzY2FsZSI6WzEuMDAwMDA0NTI5OTUzMDAzLDEsMS4wMDAwMDA1OTYwNDY0NDc4XSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMjcxMjE3MTA3NzcyODI3MSwtMC4yMzg0NzgyNzMxNTMzMDUwNV19LHsibmFtZSI6IkJvbmUuMDE1Iiwicm90YXRpb24iOlstMC4wMDA2MjEyNjY2NjMwNzQ0OTM0LDAuMDMzMTMzMDgyMDkxODA4MzIsLTAuNjI1ODI3MjUyODY0ODM3NiwwLjc3OTI1NzM1NzEyMDUxMzldLCJzY2FsZSI6WzEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMTE5MjA5Mjg5Nl0sInRyYW5zbGF0aW9uIjpbNy4zNjMyNjkxMDU1NTM2MjdlLTA5LDAuOTg0NTgzNjc1ODYxMzU4NiwtMS4wOTkwMzMzOTc2MjI0MDY1ZS0wOF19LHsiY2hpbGRyZW4iOlsxMl0sIm5hbWUiOiJCb25lLjAxNCIsInJvdGF0aW9uIjpbMC4wMDcwNDE1MDQxNDA5NDMyODksLTAuMDA0OTM4NzIyMTIyNDYwNjA0LC0wLjA1NTAzNjcwNDk4NzI4NzUyLDAuOTk4NDQ3Mjk5MDAzNjAxMV0sInNjYWxlIjpbMSwxLjAwMDAwMDExOTIwOTI4OTYsMC45OTk5OTk5NDAzOTUzNTUyXSwidHJhbnNsYXRpb24iOlstMS40MDg2MjUzOTQxMDU5MTEzZS0wOCwxLjA3ODE5NzU5ODQ1NzMzNjQsMi44NTc5OTYxNTA4NTEyNDk3ZS0wOF19LHsiY2hpbGRyZW4iOlsxM10sIm5hbWUiOiJCb25lLjAxMyIsInJvdGF0aW9uIjpbLTAuOTk4MzkyNDAzMTI1NzYyOSwwLjA1MzQyMjQyODY2NzU0NTMyLC0wLjAwMzIzOTczODA1NjQzNjE4MSwwLjAxODY2MDEwNTc2NDg2NTg3NV0sInNjYWxlIjpbMS4wMDAwMDQwNTMxMTU4NDQ3LDEsMS4wMDAwMDA0NzY4MzcxNTgyXSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMDY4NDgwODQ5MjY2MDUyMiwwLjIzMjk2NDQ1NjA4MTM5MDM4XX0seyJjaGlsZHJlbiI6WzgsMTEsMTRdLCJuYW1lIjoiQm9uZSJ9LHsibWVzaCI6MCwibmFtZSI6InBsYXllciIsInNraW4iOjB9LHsiY2hpbGRyZW4iOlsxNiwxNV0sIm5hbWUiOiJBcm1hdHVyZSIsInNjYWxlIjpbMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjldfV0sIm1hdGVyaWFscyI6W3siZG91YmxlU2lkZWQiOnRydWUsIm5hbWUiOiJNYXRlcmlhbCIsInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvclRleHR1cmUiOnsiaW5kZXgiOjB9LCJtZXRhbGxpY0ZhY3RvciI6MH19XSwibWVzaGVzIjpbeyJuYW1lIjoiQ3ViZSIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjAsIk5PUk1BTCI6MSwiVEVYQ09PUkRfMCI6MiwiSk9JTlRTXzAiOjMsIldFSUdIVFNfMCI6NH0sImluZGljZXMiOjUsIm1hdGVyaWFsIjowfV19XSwidGV4dHVyZXMiOlt7InNhbXBsZXIiOjAsInNvdXJjZSI6MH1dLCJpbWFnZXMiOlt7ImJ1ZmZlclZpZXciOjYsIm1pbWVUeXBlIjoiaW1hZ2UvcG5nIiwibmFtZSI6InV2X2xheW91dCJ9XSwic2tpbnMiOlt7ImludmVyc2VCaW5kTWF0cmljZXMiOjYsImpvaW50cyI6WzE1LDgsMSwwLDQsMywyLDcsNiw1LDExLDEwLDksMTQsMTMsMTJdLCJuYW1lIjoiQXJtYXR1cmUifV0sImFjY2Vzc29ycyI6W3siYnVmZmVyVmlldyI6MCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE1OTAsIm1heCI6WzAuMzQ4MTI0MDI3MjUyMTk3MjcsMS42ODUzNjk0OTE1NzcxNDg0LDEuMzkzOTAwMzk0NDM5Njk3M10sIm1pbiI6Wy0wLjI1MjQ0MjcxNzU1MjE4NTA2LC0xLjkyMDg3ODA1MjcxMTQ4NjgsLTEuMzkzOTAwMzk0NDM5Njk3M10sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxNTkwLCJ0eXBlIjoiVkVDMiJ9LHsiYnVmZmVyVmlldyI6MywiY29tcG9uZW50VHlwZSI6NTEyMSwiY291bnQiOjE1OTAsInR5cGUiOiJWRUM0In0seyJidWZmZXJWaWV3Ijo0LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzQifSx7ImJ1ZmZlclZpZXciOjUsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjoyNDEyLCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3Ijo3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTYsInR5cGUiOiJNQVQ0In1dLCJidWZmZXJWaWV3cyI6W3siYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxOTA4MCwiYnl0ZU9mZnNldCI6MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjE5MDgwLCJieXRlT2Zmc2V0IjoxOTA4MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjEyNzIwLCJieXRlT2Zmc2V0IjozODE2MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjYzNjAsImJ5dGVPZmZzZXQiOjUwODgwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjU0NDAsImJ5dGVPZmZzZXQiOjU3MjQwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgyNCwiYnl0ZU9mZnNldCI6ODI2ODAsInRhcmdldCI6MzQ5NjN9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxNjQwNzQsImJ5dGVPZmZzZXQiOjg3NTA0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MTAyNCwiYnl0ZU9mZnNldCI6MjUxNTgwfV0sInNhbXBsZXJzIjpbeyJtYWdGaWx0ZXIiOjk3MjgsIm1pbkZpbHRlciI6OTk4NH1dLCJidWZmZXJzIjpbeyJieXRlTGVuZ3RoIjoyNTI2MDR9XX282gMAQklOAKZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPr/CS76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ODQAADg0AAA4NAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQAKAA0ACgANAAoADQAKAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQAAAA0AAAANAAAADQAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAHAgEABwIBAAcCAQAHAgEADQABAA0AAQANAAEADQABAAABDQAAAQ0AAAENAAABDQABAAcAAQAHAAEABwABAAcABwEAAAcBAAAHAQAABwEAAA0AAAANAAAADQAAAA0AAAANAAoADQAKAA0ACgANAAoADQAAAA0AAAANAAAADQAAAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAAAAAgAAAAIAAAACAAAAAgHAAAIBwAACAcAAAgHAAAIAAAACAAAAAgAAAAIAAAACAcAAAgHAAAIBwAACAcAAAcAAAAHAAAABwAAAAcAAAAHAQAABwEAAAcBAAAHAQAABwEAAAcBAAAHAQAABwEAAAcIAQAHCAEABwgBAAcIAQAHCAEABwgBAAcIAQAHCAEABwEAAAcBAAAHAQAABwEAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAIBAAACAQAAAgEAAAIBAAACBwEAAgcBAAIHAQACBwEAAgAAAAIAAAACAAAAAgAAAAIBBwACAQcAAgEHAAIBBwACAQcAAgEHAAIBBwACAQcAAA0BAAANAQAADQEAAA0BAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAANAQAADQEAAA0BAAANAQAAAQAAAAEAAAABAAAAAQAAAQAHAAEABwABAAcAAQAHAAEHAgABBwIAAQcCAAEHAgAAAQ0AAAENAAABDQAAAQ0AAQAAAAEAAAABAAAAAQAAAAEHAgABBwIAAQcCAAEHAgABBwIADQAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgAADQoAAA0KAAANCgAADQoAAA0AAAANAAAADQAAAA0AAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAABBAcAAQQHAAEEBwABBAcAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAwIAAAMCAAADAgAAAwIAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIHAwACBwMAAgcDAAIHAwACAwEAAgMBAAIDAQACAwEAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgEDAAIBAwACAQMAAgEDAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADgAAAA4AAAAOAAAADgAAAA4PAAAODwAADg8AAA4PAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEAAAEKBAABCgQAAQoEAAEKBAEEAAABBAAAAQQAAAEEAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAAAQAEAAEABAABAAQAAQAEAAABCgAAAQoAAAEKAAABCgAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAACgAAAAoAAAAKAAAACgAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoNAAAKDQAACg0AAAoNAAAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAQCAQAEAgEABAIBAAQCAQAKAAEACgABAAoAAQAKAAEAAAEKAAABCgAAAQoAAAEKAAEABAABAAQAAQAEAAEABAAEAQAABAEAAAQBAAAEAQAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsMAAALDAAACwwAAAsMAAAMCwAADAsAAAwLAAAMCwAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAEAgAABAIAAAQCAAAEAgAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAACBAEAAgQBAAIEAQACBAEAAgEEAAIBBAACAQQAAgEEAAIBBAACAQQAAgEEAAIBBAAACgEAAAoBAAAKAQAACgEAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAAoBAAAKAQAACgEAAAoBAAABAAAAAQAAAAEAAAABAAABAAQAAQAEAAEABAABAAQAAQQCAAEEAgABBAIAAQQCAAABCgAAAQoAAAEKAAABCgABAAAAAQAAAAEAAAABAAAAAQQCAAEEAgABBAIAAQQCAAEEAgAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgANAAAKDQAACg0AAAoNAAAKDQAACg0AAAoNAAAKDQAACg0ACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMEAAIDBAACAwQAAgMEAAIDAQACAwEAAgMBAAIDAQACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAAAAAwAAAAMAAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwwAAAsMAAALDAAACwwAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAA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AAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+a1jw+tc8EPQAAAABefUg/mtY8PrXPBD0AAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+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rAMIBqwDcAc4BngB7AM4BewDDAf8AkQCFAP8AhQDvAPgAoAB8APgAfADsAOAAWgClAOAApQD1APQApAChAPQAoQD5AOMAYwCUAOMAlAD6APsAlQCQAPsAkAD+ALIBVwCaALIBmgDKAcwBmwCfAMwBnwDQAbcBYQCKALcBigDSAdMBiwCOANMBjgDWAeYC0gLHAOYCxwAPAe4AhAC1AO4AtQAHAe0AfQCsAO0ArAAEAckBgwCyAMkBsgDfARgDuAAQARABtgIWAxABFgMYA+QC2gK9AOQCvQANAe4C4ALDAO4CwwDoAeoC2AK7AOoCuwDjAd8C4wILAd8CCwHBAK4CswIAA64CAAMGA4AA6gADAYAAAwGxAHgA8AAJAXgACQGpANYC6AIRAdYCEQG5AJkA/QAAAZkAAAGcAFUA5QD8AFUA/ACYAIkA8wD2AIkA9gCMAF8A3wDyAF8A8gCIAI0A9wDrAI0A6wCBAJ0AAQHxAJ0A8QB5AAUAzgDnAAUA5wBpAGgA5gDeAGgA3gBeADQALwDaADQA2gDWADgANQDXADgA1wDSAAYAOQDTAAYA0wDPADIBLAEXATIBFwEdAXsBgQEJAHsBCQDMACgBIwEsAygBLAMxAxgBFAEeAxgBHgMiAzkBMQEaATkBGgEeATQBPgErATQBKwETATwBQAEkATwBJAEpAUMBOwEiAUMBIgEmAWoBcgE6AWoBOgFCAWUBaQFBAWUBQQE9AWABZgE/AWABPwE1AXABbAEwAXABMAE4AW8BXQEtAW8BLQEzAV4BYgE3AV4BNwEvAQwALQBTAQwAUwFPAc0ACgBNAc0ATQFHAQEAywBFAQEARQFJASsA3QBXASsAVwFRAdsAMABZAdsAWQFVATMABABKATMASgFaAU4BUgFjAU4BYwFfAUYBTAFcAUYBXAFuAUgBRAFtAUgBbQFxAVABVgFnAVABZwFhAVQBWAFoAVQBaAFkAVsBSwFzAVsBcwFrAewBfAGIAuwBiAKFAo0B6gGGAY0BhgECAJIB7wF0AZIBdAEaAAAAhQF5AQAAeQHKAAsAggHuAQsA7gGRARYA8gGMAYcB6wGEAocBhAKBAsAACgGnAsAApwKqAtwC7ALkAdwC5AG+ANQC7wLpAdQC6QHJAKgCDAG8ALwADwMTA7wAEwOoAoYAxgHeAYYA3gG2AJcA1QHZAZcA2QGTAGYAuQHUAWYA1AGWAKcAzQHRAacA0QGjAFwAswHLAVwAywGmAKIAzwHFAaIAxQF/AH4AxAHdAX4A3QGvAB4AlQG/AR4AvwFsABEAiQG7AREAuwFzAHIAugG0AXIAtAFdAJIA1wHHAZIAxwGHAEIA9gGwAUIAsAGsAUQAQACrAUQAqwGmASAARgCnASAApwGXASkALAChASkAoQGeASUAKACdASUAnQGaARAAJACZARAAmQGIAS4ADQCUAS4AlAGkATwAGACOATwAjgGuAW4AwQG4AW4AuAFkAJAB9QF/AZABfwHtAbEB+AE+AHYB8QGNAnYBjQKQAnoCeAIKAnoCCgIEAncCfwILAncCCwIHAvABgwF9AvABfQKLAlcCGQISAlcCEgJQAkMCKwIcAkMCHAI8AjoCGgIuAjoCLgJGAk8CEAIeAk8CHgJbAlwCIQIUAlwCFAJSAkgCMAIiAkgCIgI+AkECJAIzAkECMwJNAlQCFQIpAlQCKQJfAhMCIAI5AhMCOQInAh8CEQIXAh8CFwI3ApkCQAJLApkCSwKlAqACSQI/AqACPwKWApMCOwJHApMCRwKfApsCRQI9ApsCPQKUAiUCVQJhAiUCYQI1AjECXQJTAjECUwIjAhsCTgJaAhsCWgIvAi0CWQJRAi0CUQIdAgMC/wFnAgMCZwJkAg4CCQJwAg4CcAJqAggCAgJjAggCYwJvAv0BDwJrAv0BawJzAngBhAF+AngBfgJ2AoABegF5AoABeQJ7AmkCnQKVAmkClQJlAoACgwINAoIChgL6AYIC+gEMAo4CjAIGAo4CBgIAAooCfAIFAmICkgKeAmICngJuAnECoQKXAnEClwJsAm0CmAKjAm0CowJ1ArcCrQKpArcCqQKmAuIBugAaA+IBGgMKAwwDtwKmAgwDpgISA7QCsAKtArQCrQK3AsQArAL1AsQA9QL9AhUDtAK3AhUDtwIMAw4BxgCyAg4BsgK1AroCwAK8AroCvALCArECxQADA7ECAwP/AqsCrwIHA6sCBwPzAsgCuwLDAsgCwwLQAuYBwgD7AuYB+wL4As0CywLHAs0CxwLPAsgA5wH5AsgA+QIEA7cA4QHxArcA8QLVAq4A2wHtAq4A7QLdAqgACAHpAqgA6QLXArAAAgHiArAA4gLeAtoBqgDZAtoB2QLrAuABswDhAuAB4QLwAgUBrQDbAgUB2wLlAgYBtADTAgYB0wLnAvICBQPEAvICxAK9AsUCBgMAAwADzgLRAgAD0QLFAvcC+gK/AvcCvwK5AvwC9AK+AvwCvgLBAv4CAQPJAv4CyQLMAsoCAgP2AvYCuALGAvYCxgLKAg4DFAMQAw4DEAMJAxcDDQMIAxcDCAMZA78A5QELA78ACwMRAxsDMwNIAxsDSAM2AzIDLQNCAzIDQgNFAxIBKgE0AxIBNAMcAxwBFgEgAxwBIAMmAx8BGwEkAx8BJAMoAzADJwFPAzADTwNWA0YDPAM5A0YDOQM1A0MDPwM9A0MDPQNHAyMDHwM4AyMDOAM7AykDJQM+AykDPgNAAy8DKwNBAy8DQQNEAyEDHQM3AyEDNwM6A1gDUANeA1gDXgNkAycDLgNVAycDVQNRAyABKgNSAyABUgNJAyUBIQFKAyUBSgNNA10DWwNgA10DYANiA04DTANaA04DWgNcA0sDUwNfA0sDXwNZA1QDVwNjA1QDYwNhA1MEPgQ6BFMEOgRbBNsE0wSXA9sElwObA8wEhwNoA8wEaAOsBMAESwAdAMAEHQCwBKcEEwBTAKcEUwC5BLgEUQBNALgETQC8BL0ETwBJAL0ESQC/BLUEbQOQA7UEkAPFBMIEjwOMA8IEjAPHBMYEiwOGA8YEhgPKBPkDcwN3A/kDdwP9A/4DeAN8A/4DfAMCBAEEewN/AwEEfwMFBPUE5QSrA/UEqwO4Aw4ECgSSAw4EkgOeA9oE0gRZANoEWQB3AKgE2QR0AKgEdAAUAPoDDQSdA/oDnQN0A7ME3QScA7MEnANsA98E+QTUA98E1AOjA+sE4ASkA+sEpAPHAyQEFASuAyQErgO6Ax0EEQSlAx0EpQPJAwkEGgTOAwkEzgORAxkEHgTKAxkEygPNA+IAHwS9A+IAvQNiACAEIwS5AyAEuQO+A88E5wTDA88EwwNWAOkE7QTIA+kEyAPEA9QE7wSzA9QEswOYA/AE8wS3A/AEtwO0A7cFNATwA7cF8AOjBRMELATeAxME3gOtAxIEKQTVAxIE1QOmA+YE/ATbA+YE2wOsAzUE4QPpBekF5wWHBekFhwU1BLUFMgTmA7UF5gOrBb8FBQXsA78F7AOxBbsFAAXkA7sF5AOpBbAF6gMwBLAFMAS0BX8F1wXRBX8F0QWEBakD2gMoBKkDKAQPBKED0gMuBKEDLgQVBKcF4gM2BKcFNgS5BcIDxQMlBMIDJQQiBFQAwQMhBFQAIQTkALIDtQMbBLIDGwQYBJYDsQMXBJYDFwQIBLYDqgMQBLYDEAQcBMYDogMWBMYDFgQmBGoDmgMMBGoDDAT3A5kDlQMHBJkDBwQLBIkD/wMDBIkDAwSEA40D+wMABI0DAASKA2sD+AP8A2sD/AOOA1cEQgQ8BFcEPARRBJwE9QNuA5wEbgOeBE0EAgb9BU0E/QVIBD0E8wXvBT0E7wU5BF4EQwQ/BF4EPwRWBFkEOARQBFkEUARjBGEETgRJBGEESQRlBGgESwRHBGgERwRgBI8EZwRfBI8EXwSXBIoEYgRmBIoEZgSOBIUEWgRkBIUEZASLBJUEXQRVBJUEVQSRBJQEWARSBJQEUgSCBIMEVARcBIMEXASHBHEDdAR4BHEDeASCA/YDbARyBPYDcgRvA2YDbgRqBGYDagT0A4ADdgR8BIADfAQGBAQEegR+BAQEfgSFA4gDfwRvBIgDbwRpA3MEhASIBHMEiAR3BGsEkwSBBGsEgQRxBG0ElgSSBG0EkgRpBHUEhgSMBHUEjAR7BHkEiQSNBHkEjQR9BIAEkASYBIAEmARwBAkFZgWJAgkFiQJ9AaoEZwOjBKoEowQHBa8EGwB1Aa8EdQEMBWUD8wOaBGUDmgSiBHADrgQLBXADCwWfBBcAqQTzAaQEYgVlBaQEZQUIBekDewV4BekDeAUvBK0F5wMBBa0FAQW9BaUF8gMGBaUFBgXABeUDMQR5BXkF5AXgBXkF4AXlA68D3wP7BK8D+wTjBMADvAP2BMAD9gTyBGcAvwPxBGcA8QTWBNADzAPuBNAD7gTqBJMDzwPoBJMD6ATQBMsDqAPiBMsD4gTsBKcD2AP6BKcD+gThBB8AbQDcBB8A3ASyBHYDoAPYBHYD2ASmBJ8DlAPRBJ8D0QTXBLsDsAPkBLsD5AT0BEMAyQTNBEMAzQT3AUUAwwTIBEUAyARBACEAtATEBCEAxARHAH4DuwS+BH4DvgSBA3oDtwS6BHoDugR9A3UDpQS2BHUDtgR5A4MDwQSxBIMDsQRyAz0AywSrBD0AqwQZAG8AZQDVBG8A1QTeBK0ECgV+Aa0EfgH0Ac4EPwD5AXcBkQJqBXcBagUOBVsFEQUXBVsFFwVZBVgFFAUYBVgFGAVgBQ0FaAVeBQ0FXgWgBFYCQQUfBVYCHwUYAkICNQUlBUICJQUqAjMFOwUvBTMFLwUjBUAFSAUnBUAFJwUdBUkFQwUhBUkFIQUqBT0FNwUrBT0FKwUxBToFTAIyAjoFMgItBUUFXgIoAkUFKAIiBSAFJgI4AiAFOAIpBSgFNgIWAigFFgIeBXIFpAJKAnIFSgI5BXUFbwU4BXUFOAU+BWwFdAU8BWwFPAU0BZoCbQU2BZoCNgVEAi4FNAJgAi4FYAJGBTIFLAVEBTIFRAVKBSQFMAVHBSQFRwU/BSwCJgVCBSwCQgVYAhAFTQVmAhAFZgL+ARsFTwVVBRsFVQUWBRUFVAVMBRUFTAUPBfwBcgJQBfwBUAUcBZkEVwVfBZkEXwWhBJ0EXAVaBZ0EWgWbBGgCTgVuBWgCbgWcAmEFGgVkBWMFGQX7AWMF+wGHAo8CAQITBY8CEwVpBWcFEgVdBUsFUwVzBUsFcwVrBVYFUQVwBVYFcAV2BVIFdAKiAlIFogJxBYgFdwV6BYgFegV+Bf8E2wXrBf8E6wXjA90F4wV3Bd0FdwWIBYUFiAV+BYUFfgWBBe0DzgXGBe0DxgV9BeYF3QWIBeYFiAWFBTMEhgWDBTMEgwXvA4sFkwWNBYsFjQWRBYIF0AXUBYIF1AXuA3wFxAXYBXwF2AWABZkFoQWUBZkFlAWMBQMFyQXMBQMFzAXrA54FoAWYBZ4FmAWcBfED1QXKBfEDygUEBeADpgXCBeADwgX+BNcDrgW+BdcDvgX4BNEDqAW6BdEDugUtBNkDrwWzBdkDswUnBPcEvAWqBfcEqgXTA/0EwQWyBf0EsgXcAyoEtgWsBSoErAXWAysEuAWkBSsEpAXdA8MFjgWVBcMFlQXWBdEF1wWWBZYFogWfBZYFnwXRBcgFigWQBcgFkAXLBc0FkgWPBc0FjwXFBc8FnQWaBc8FmgXSBccF0wWbBZsFlwWJBZsFiQXHBd8F2gXhBd8F4QXlBegF6gXZBegF2QXeBegD4gXcBegD3AUCBewFBwYZBuwFGQYEBgMGFgYTBgMGEwb+BTcE7QUFBjcEBQZPBEEE9wXxBUEE8QU7BEQE+QX1BUQE9QVABAEGJwYgBgEGIAZMBBcGBgYKBhcGCgYNBhQGGAYOBhQGDgYQBvQFDAYJBvQFCQbwBfoFEQYPBvoFDwb2BQAGFQYSBgAGEgb8BfIFCwYIBvIFCAbuBSkGNQY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\u003c/3d\u003e\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dw/3HGmmcYJlBChL1L6bY2ttTxEf/EIu7MSe6EBcfVkVJd2Hk6zJrMtK97inS97hBYekoHD++GgX4eeqbFzmBw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732290229"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","package":{"name":"test_3d","path":"gno.land/r/stuyk/test_3d","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"\u003c3d\u003eZ2xURgIAAABg7wMAiBQAAEpTT057ImFzc2V0Ijp7ImdlbmVyYXRvciI6Iktocm9ub3MgZ2xURiBCbGVuZGVyIEkvTyB2NC4yLjcwIiwidmVyc2lvbiI6IjIuMCJ9LCJzY2VuZSI6MCwic2NlbmVzIjpbeyJuYW1lIjoiU2NlbmUiLCJub2RlcyI6WzE3XX1dLCJub2RlcyI6W3sibmFtZSI6IkJvbmUuMDAzIiwidHJhbnNsYXRpb24iOlswLDAuMjYzNTU3NjcyNTAwNjEwMzUsMF19LHsiY2hpbGRyZW4iOlswXSwibmFtZSI6IkJvbmUuMDAyIiwidHJhbnNsYXRpb24iOlswLDAuODAwMDAwMDcxNTI1NTczNywwXX0seyJuYW1lIjoiQm9uZS4wMDYiLCJyb3RhdGlvbiI6Wy0wLjExMzM0OTg5OTY0OTYyMDA2LC0wLjAzNzk4NDE4NDkyMDc4NzgxLC0wLjA0NDA1NjA2NTM4MDU3MzI3LDAuOTkxODUwODUyOTY2MzA4Nl0sInNjYWxlIjpbMS4wMDAwMDAxMTkyMDkyODk2LDEsMS4wMDAwMDAxMTkyMDkyODk2XSwidHJhbnNsYXRpb24iOlsxLjQ5MDExNjExOTM4NDc2NTZlLTA4LDAuODA1NDQzODIzMzM3NTU0OSw3LjMyNzYxNjkxMzI0NDEyOGUtMDhdfSx7ImNoaWxkcmVuIjpbMl0sIm5hbWUiOiJCb25lLjAwNSIsInJvdGF0aW9uIjpbLTAuMDQzMzczMjQ5NDcxMTg3NTksLTAuMDEwOTY5ODA5MjU2NDk0MDQ1LC0wLjA3MTMwMDg1Njc2OTA4NDkzLDAuOTk2NDUxMDIwMjQwNzgzN10sInNjYWxlIjpbMC45OTk5OTk4ODA3OTA3MTA0LDEuMDAwMDAwMTE5MjA5Mjg5NiwxLjAwMDAwMDExOTIwOTI4OTZdLCJ0cmFuc2xhdGlvbiI6WzguMzgxOTAzMTcxNTM5MzA3ZS0wOSwwLjQ4NzQwMTAzODQwODI3OTQsMy4wNTUzNTY1MDExMzU5NzVlLTA4XX0seyJjaGlsZHJlbiI6WzNdLCJuYW1lIjoiQm9uZS4wMDQiLCJyb3RhdGlvbiI6Wy0wLjg0MzcyNTE0NDg2MzEyODcsLTAuMDY2ODA1NjE2MDIxMTU2MzEsLTAuMDQyNjk0MDY1NzE5ODQyOTEsMC41MzA4ODgwODA1OTY5MjM4XSwic2NhbGUiOlsxLDAuOTk5OTk5OTQwMzk1MzU1MiwwLjk5OTk5OTg4MDc5MDcxMDRdLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjc0NDk0Mzg1NzE5Mjk5MywtMC40NDM1NzUxNDM4MTQwODY5XX0seyJuYW1lIjoiQm9uZS4wMTIiLCJyb3RhdGlvbiI6WzAuMTA4NzEwNjgzODgyMjM2NDgsLTAuMDUwNzQ1MjQ4Nzk0NTU1NjY0LDAuMDU0NTA4MDU2NDkxNjEzMzksMC45OTEyNzk5MDAwNzQwMDUxXSwic2NhbGUiOlsxLDEuMDAwMDAwMTE5MjA5Mjg5NiwwLjk5OTk5OTk0MDM5NTM1NTJdLCJ0cmFuc2xhdGlvbiI6Wy04Ljk0MDY5NjcxNjMwODU5NGUtMDgsMC44MDU0NDM3MDQxMjgyNjU0LDEuMTkyMDkyODk1NTA3ODEyNWUtMDddfSx7ImNoaWxkcmVuIjpbNV0sIm5hbWUiOiJCb25lLjAxMSIsInJvdGF0aW9uIjpbMC4wODEwMTEzMjUxMjA5MjU5LDAuMTUzMTU1NzU4OTc2OTM2MzQsLTAuMDIwMDU1MjgwOTk4MzQ5MTksMC45ODQ2NzE2NTIzMTcwNDcxXSwic2NhbGUiOlsxLjAwMDAwMDExOTIwOTI4OTYsMSwxXSwidHJhbnNsYXRpb24iOlsyLjc5Mzk2NzcyMzg0NjQzNTVlLTA4LDAuNDg3NDAxMDA4NjA1OTU3MDMsLTYuMTAwMTYyODYzNzMxMzg0ZS0wOF19LHsiY2hpbGRyZW4iOls2XSwibmFtZSI6IkJvbmUuMDEwIiwicm90YXRpb24iOlswLjgxNDUxMzc0MjkyMzczNjYsMC4yMzAwMDU1NzcyMDY2MTE2MywwLjIyNDE5MjU3NDYyMDI0NjksMC40ODMxMTc1MjA4MDkxNzM2XSwic2NhbGUiOlsxLDAuOTk5OTk5ODgwNzkwNzEwNCwwLjk5OTk5OTgyMTE4NjA2NTddLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjk0NzY4MDcxMTc0NjIxNiwwLjQzODA2MTM1NjU0NDQ5NDYzXX0seyJjaGlsZHJlbiI6WzEsNCw3XSwibmFtZSI6IkJvbmUuMDAxIiwidHJhbnNsYXRpb24iOlswLDAuNTA5Mzc3MzYwMzQzOTMzMSwwXX0seyJuYW1lIjoiQm9uZS4wMDkiLCJyb3RhdGlvbiI6WzAuMDYzNDg0MjM2NTk4MDE0ODMsMC4wNDYwODUyOTA2MTA3OTAyNSwtMC42MjI1OTkzNjMzMjcwMjY0LDAuNzc4NTk4NzI1Nzk1NzQ1OF0sInNjYWxlIjpbMC45OTk5OTk5NDAzOTUzNTUyLDEsMV0sInRyYW5zbGF0aW9uIjpbMi44Mzc2MjM0Njk1MzE1MzZlLTA5LDAuOTg0NTgzMjU4NjI4ODQ1MiwtOC42ODU2NzQ0MDE5MzE0NjVlLTA5XX0seyJjaGlsZHJlbiI6WzldLCJuYW1lIjoiQm9uZS4wMDgiLCJyb3RhdGlvbiI6Wy0wLjAwNjgyMjA4NTAwODAyNTE2OSwtMi45NDcwMDM4NDk4NDAyNTczZS0wNSwtMC4wNTUwNjQyOTgyMTI1MjgyMywwLjk5ODQ1OTUxNzk1NTc4XSwic2NhbGUiOlswLjk5OTk5OTk0MDM5NTM1NTIsMC45OTk5OTk5NDAzOTUzNTUyLDFdLCJ0cmFuc2xhdGlvbiI6WzEuMjc0NzQ3Nzc0MDA0OTM2MmUtMDgsMS4wNzgxOTc1OTg0NTczMzY0LC0yLjQ5NTY1MzQ2MTY2NDkxNWUtMDldfSx7ImNoaWxkcmVuIjpbMTBdLCJuYW1lIjoiQm9uZS4wMDciLCJyb3RhdGlvbiI6WzAuOTk4Mzk2ODczNDc0MTIxMSwtMC4wNTMzMzgzMjY1MTM3NjcyNCwwLjAwMTIzMzAwMTEyMzE4MjQ3NTYsMC4wMTg4OTkyNjM4MTQwOTE2ODJdLCJzY2FsZSI6WzEuMDAwMDA0NTI5OTUzMDAzLDEsMS4wMDAwMDA1OTYwNDY0NDc4XSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMjcxMjE3MTA3NzcyODI3MSwtMC4yMzg0NzgyNzMxNTMzMDUwNV19LHsibmFtZSI6IkJvbmUuMDE1Iiwicm90YXRpb24iOlstMC4wMDA2MjEyNjY2NjMwNzQ0OTM0LDAuMDMzMTMzMDgyMDkxODA4MzIsLTAuNjI1ODI3MjUyODY0ODM3NiwwLjc3OTI1NzM1NzEyMDUxMzldLCJzY2FsZSI6WzEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMTE5MjA5Mjg5Nl0sInRyYW5zbGF0aW9uIjpbNy4zNjMyNjkxMDU1NTM2MjdlLTA5LDAuOTg0NTgzNjc1ODYxMzU4NiwtMS4wOTkwMzMzOTc2MjI0MDY1ZS0wOF19LHsiY2hpbGRyZW4iOlsxMl0sIm5hbWUiOiJCb25lLjAxNCIsInJvdGF0aW9uIjpbMC4wMDcwNDE1MDQxNDA5NDMyODksLTAuMDA0OTM4NzIyMTIyNDYwNjA0LC0wLjA1NTAzNjcwNDk4NzI4NzUyLDAuOTk4NDQ3Mjk5MDAzNjAxMV0sInNjYWxlIjpbMSwxLjAwMDAwMDExOTIwOTI4OTYsMC45OTk5OTk5NDAzOTUzNTUyXSwidHJhbnNsYXRpb24iOlstMS40MDg2MjUzOTQxMDU5MTEzZS0wOCwxLjA3ODE5NzU5ODQ1NzMzNjQsMi44NTc5OTYxNTA4NTEyNDk3ZS0wOF19LHsiY2hpbGRyZW4iOlsxM10sIm5hbWUiOiJCb25lLjAxMyIsInJvdGF0aW9uIjpbLTAuOTk4MzkyNDAzMTI1NzYyOSwwLjA1MzQyMjQyODY2NzU0NTMyLC0wLjAwMzIzOTczODA1NjQzNjE4MSwwLjAxODY2MDEwNTc2NDg2NTg3NV0sInNjYWxlIjpbMS4wMDAwMDQwNTMxMTU4NDQ3LDEsMS4wMDAwMDA0NzY4MzcxNTgyXSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMDY4NDgwODQ5MjY2MDUyMiwwLjIzMjk2NDQ1NjA4MTM5MDM4XX0seyJjaGlsZHJlbiI6WzgsMTEsMTRdLCJuYW1lIjoiQm9uZSJ9LHsibWVzaCI6MCwibmFtZSI6InBsYXllciIsInNraW4iOjB9LHsiY2hpbGRyZW4iOlsxNiwxNV0sIm5hbWUiOiJBcm1hdHVyZSIsInNjYWxlIjpbMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjldfV0sIm1hdGVyaWFscyI6W3siZG91YmxlU2lkZWQiOnRydWUsIm5hbWUiOiJNYXRlcmlhbCIsInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvclRleHR1cmUiOnsiaW5kZXgiOjB9LCJtZXRhbGxpY0ZhY3RvciI6MH19XSwibWVzaGVzIjpbeyJuYW1lIjoiQ3ViZSIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjAsIk5PUk1BTCI6MSwiVEVYQ09PUkRfMCI6MiwiSk9JTlRTXzAiOjMsIldFSUdIVFNfMCI6NH0sImluZGljZXMiOjUsIm1hdGVyaWFsIjowfV19XSwidGV4dHVyZXMiOlt7InNhbXBsZXIiOjAsInNvdXJjZSI6MH1dLCJpbWFnZXMiOlt7ImJ1ZmZlclZpZXciOjYsIm1pbWVUeXBlIjoiaW1hZ2UvcG5nIiwibmFtZSI6InV2X2xheW91dCJ9XSwic2tpbnMiOlt7ImludmVyc2VCaW5kTWF0cmljZXMiOjYsImpvaW50cyI6WzE1LDgsMSwwLDQsMywyLDcsNiw1LDExLDEwLDksMTQsMTMsMTJdLCJuYW1lIjoiQXJtYXR1cmUifV0sImFjY2Vzc29ycyI6W3siYnVmZmVyVmlldyI6MCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE1OTAsIm1heCI6WzAuMzQ4MTI0MDI3MjUyMTk3MjcsMS42ODUzNjk0OTE1NzcxNDg0LDEuMzkzOTAwMzk0NDM5Njk3M10sIm1pbiI6Wy0wLjI1MjQ0MjcxNzU1MjE4NTA2LC0xLjkyMDg3ODA1MjcxMTQ4NjgsLTEuMzkzOTAwMzk0NDM5Njk3M10sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxNTkwLCJ0eXBlIjoiVkVDMiJ9LHsiYnVmZmVyVmlldyI6MywiY29tcG9uZW50VHlwZSI6NTEyMSwiY291bnQiOjE1OTAsInR5cGUiOiJWRUM0In0seyJidWZmZXJWaWV3Ijo0LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzQifSx7ImJ1ZmZlclZpZXciOjUsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjoyNDEyLCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3Ijo3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTYsInR5cGUiOiJNQVQ0In1dLCJidWZmZXJWaWV3cyI6W3siYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxOTA4MCwiYnl0ZU9mZnNldCI6MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjE5MDgwLCJieXRlT2Zmc2V0IjoxOTA4MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjEyNzIwLCJieXRlT2Zmc2V0IjozODE2MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjYzNjAsImJ5dGVPZmZzZXQiOjUwODgwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjU0NDAsImJ5dGVPZmZzZXQiOjU3MjQwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgyNCwiYnl0ZU9mZnNldCI6ODI2ODAsInRhcmdldCI6MzQ5NjN9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxNjQwNzQsImJ5dGVPZmZzZXQiOjg3NTA0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MTAyNCwiYnl0ZU9mZnNldCI6MjUxNTgwfV0sInNhbXBsZXJzIjpbeyJtYWdGaWx0ZXIiOjk3MjgsIm1pbkZpbHRlciI6OTk4NH1dLCJidWZmZXJzIjpbeyJieXRlTGVuZ3RoIjoyNTI2MDR9XX282gMAQklOAKZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPr/CS76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ODQAADg0AAA4NAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQAKAA0ACgANAAoADQAKAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQAAAA0AAAANAAAADQAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAHAgEABwIBAAcCAQAHAgEADQABAA0AAQANAAEADQABAAABDQAAAQ0AAAENAAABDQABAAcAAQAHAAEABwABAAcABwEAAAcBAAAHAQAABwEAAA0AAAANAAAADQAAAA0AAAANAAoADQAKAA0ACgANAAoADQAAAA0AAAANAAAADQAAAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAAAAAgAAAAIAAAACAAAAAgHAAAIBwAACAcAAAgHAAAIAAAACAAAAAgAAAAIAAAACAcAAAgHAAAIBwAACAcAAAcAAAAHAAAABwAAAAcAAAAHAQAABwEAAAcBAAAHAQAABwEAAAcBAAAHAQAABwEAAAcIAQAHCAEABwgBAAcIAQAHCAEABwgBAAcIAQAHCAEABwEAAAcBAAAHAQAABwEAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAIBAAACAQAAAgEAAAIBAAACBwEAAgcBAAIHAQACBwEAAgAAAAIAAAACAAAAAgAAAAIBBwACAQcAAgEHAAIBBwACAQcAAgEHAAIBBwACAQcAAA0BAAANAQAADQEAAA0BAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAANAQAADQEAAA0BAAANAQAAAQAAAAEAAAABAAAAAQAAAQAHAAEABwABAAcAAQAHAAEHAgABBwIAAQcCAAEHAgAAAQ0AAAENAAABDQAAAQ0AAQAAAAEAAAABAAAAAQAAAAEHAgABBwIAAQcCAAEHAgABBwIADQAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgAADQoAAA0KAAANCgAADQoAAA0AAAANAAAADQAAAA0AAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAABBAcAAQQHAAEEBwABBAcAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAwIAAAMCAAADAgAAAwIAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIHAwACBwMAAgcDAAIHAwACAwEAAgMBAAIDAQACAwEAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgEDAAIBAwACAQMAAgEDAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADgAAAA4AAAAOAAAADgAAAA4PAAAODwAADg8AAA4PAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEAAAEKBAABCgQAAQoEAAEKBAEEAAABBAAAAQQAAAEEAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAAAQAEAAEABAABAAQAAQAEAAABCgAAAQoAAAEKAAABCgAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAACgAAAAoAAAAKAAAACgAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoNAAAKDQAACg0AAAoNAAAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAQCAQAEAgEABAIBAAQCAQAKAAEACgABAAoAAQAKAAEAAAEKAAABCgAAAQoAAAEKAAEABAABAAQAAQAEAAEABAAEAQAABAEAAAQBAAAEAQAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsMAAALDAAACwwAAAsMAAAMCwAADAsAAAwLAAAMCwAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAEAgAABAIAAAQCAAAEAgAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAACBAEAAgQBAAIEAQACBAEAAgEEAAIBBAACAQQAAgEEAAIBBAACAQQAAgEEAAIBBAAACgEAAAoBAAAKAQAACgEAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAAoBAAAKAQAACgEAAAoBAAABAAAAAQAAAAEAAAABAAABAAQAAQAEAAEABAABAAQAAQQCAAEEAgABBAIAAQQCAAABCgAAAQoAAAEKAAABCgABAAAAAQAAAAEAAAABAAAAAQQCAAEEAgABBAIAAQQCAAEEAgAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgANAAAKDQAACg0AAAoNAAAKDQAACg0AAAoNAAAKDQAACg0ACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMEAAIDBAACAwQAAgMEAAIDAQACAwEAAgMBAAIDAQACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAAAAAwAAAAMAAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwwAAAsMAAALDAAACwwAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAA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AAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+a1jw+tc8EPQAAAABefUg/mtY8PrXPBD0AAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+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rAMIBqwDcAc4BngB7AM4BewDDAf8AkQCFAP8AhQDvAPgAoAB8APgAfADsAOAAWgClAOAApQD1APQApAChAPQAoQD5AOMAYwCUAOMAlAD6APsAlQCQAPsAkAD+ALIBVwCaALIBmgDKAcwBmwCfAMwBnwDQAbcBYQCKALcBigDSAdMBiwCOANMBjgDWAeYC0gLHAOYCxwAPAe4AhAC1AO4AtQAHAe0AfQCsAO0ArAAEAckBgwCyAMkBsgDfARgDuAAQARABtgIWAxABFgMYA+QC2gK9AOQCvQANAe4C4ALDAO4CwwDoAeoC2AK7AOoCuwDjAd8C4wILAd8CCwHBAK4CswIAA64CAAMGA4AA6gADAYAAAwGxAHgA8AAJAXgACQGpANYC6AIRAdYCEQG5AJkA/QAAAZkAAAGcAFUA5QD8AFUA/ACYAIkA8wD2AIkA9gCMAF8A3wDyAF8A8gCIAI0A9wDrAI0A6wCBAJ0AAQHxAJ0A8QB5AAUAzgDnAAUA5wBpAGgA5gDeAGgA3gBeADQALwDaADQA2gDWADgANQDXADgA1wDSAAYAOQDTAAYA0wDPADIBLAEXATIBFwEdAXsBgQEJAHsBCQDMACgBIwEsAygBLAMxAxgBFAEeAxgBHgMiAzkBMQEaATkBGgEeATQBPgErATQBKwETATwBQAEkATwBJAEpAUMBOwEiAUMBIgEmAWoBcgE6AWoBOgFCAWUBaQFBAWUBQQE9AWABZgE/AWABPwE1AXABbAEwAXABMAE4AW8BXQEtAW8BLQEzAV4BYgE3AV4BNwEvAQwALQBTAQwAUwFPAc0ACgBNAc0ATQFHAQEAywBFAQEARQFJASsA3QBXASsAVwFRAdsAMABZAdsAWQFVATMABABKATMASgFaAU4BUgFjAU4BYwFfAUYBTAFcAUYBXAFuAUgBRAFtAUgBbQFxAVABVgFnAVABZwFhAVQBWAFoAVQBaAFkAVsBSwFzAVsBcwFrAewBfAGIAuwBiAKFAo0B6gGGAY0BhgECAJIB7wF0AZIBdAEaAAAAhQF5AQAAeQHKAAsAggHuAQsA7gGRARYA8gGMAYcB6wGEAocBhAKBAsAACgGnAsAApwKqAtwC7ALkAdwC5AG+ANQC7wLpAdQC6QHJAKgCDAG8ALwADwMTA7wAEwOoAoYAxgHeAYYA3gG2AJcA1QHZAZcA2QGTAGYAuQHUAWYA1AGWAKcAzQHRAacA0QGjAFwAswHLAVwAywGmAKIAzwHFAaIAxQF/AH4AxAHdAX4A3QGvAB4AlQG/AR4AvwFsABEAiQG7AREAuwFzAHIAugG0AXIAtAFdAJIA1wHHAZIAxwGHAEIA9gGwAUIAsAGsAUQAQACrAUQAqwGmASAARgCnASAApwGXASkALAChASkAoQGeASUAKACdASUAnQGaARAAJACZARAAmQGIAS4ADQCUAS4AlAGkATwAGACOATwAjgGuAW4AwQG4AW4AuAFkAJAB9QF/AZABfwHtAbEB+AE+AHYB8QGNAnYBjQKQAnoCeAIKAnoCCgIEAncCfwILAncCCwIHAvABgwF9AvABfQKLAlcCGQISAlcCEgJQAkMCKwIcAkMCHAI8AjoCGgIuAjoCLgJGAk8CEAIeAk8CHgJbAlwCIQIUAlwCFAJSAkgCMAIiAkgCIgI+AkECJAIzAkECMwJNAlQCFQIpAlQCKQJfAhMCIAI5AhMCOQInAh8CEQIXAh8CFwI3ApkCQAJLApkCSwKlAqACSQI/AqACPwKWApMCOwJHApMCRwKfApsCRQI9ApsCPQKUAiUCVQJhAiUCYQI1AjECXQJTAjECUwIjAhsCTgJaAhsCWgIvAi0CWQJRAi0CUQIdAgMC/wFnAgMCZwJkAg4CCQJwAg4CcAJqAggCAgJjAggCYwJvAv0BDwJrAv0BawJzAngBhAF+AngBfgJ2AoABegF5AoABeQJ7AmkCnQKVAmkClQJlAoACgwINAoIChgL6AYIC+gEMAo4CjAIGAo4CBgIAAooCfAIFAmICkgKeAmICngJuAnECoQKXAnEClwJsAm0CmAKjAm0CowJ1ArcCrQKpArcCqQKmAuIBugAaA+IBGgMKAwwDtwKmAgwDpgISA7QCsAKtArQCrQK3AsQArAL1AsQA9QL9AhUDtAK3AhUDtwIMAw4BxgCyAg4BsgK1AroCwAK8AroCvALCArECxQADA7ECAwP/AqsCrwIHA6sCBwPzAsgCuwLDAsgCwwLQAuYBwgD7AuYB+wL4As0CywLHAs0CxwLPAsgA5wH5AsgA+QIEA7cA4QHxArcA8QLVAq4A2wHtAq4A7QLdAqgACAHpAqgA6QLXArAAAgHiArAA4gLeAtoBqgDZAtoB2QLrAuABswDhAuAB4QLwAgUBrQDbAgUB2wLlAgYBtADTAgYB0wLnAvICBQPEAvICxAK9AsUCBgMAAwADzgLRAgAD0QLFAvcC+gK/AvcCvwK5AvwC9AK+AvwCvgLBAv4CAQPJAv4CyQLMAsoCAgP2AvYCuALGAvYCxgLKAg4DFAMQAw4DEAMJAxcDDQMIAxcDCAMZA78A5QELA78ACwMRAxsDMwNIAxsDSAM2AzIDLQNCAzIDQgNFAxIBKgE0AxIBNAMcAxwBFgEgAxwBIAMmAx8BGwEkAx8BJAMoAzADJwFPAzADTwNWA0YDPAM5A0YDOQM1A0MDPwM9A0MDPQNHAyMDHwM4AyMDOAM7AykDJQM+AykDPgNAAy8DKwNBAy8DQQNEAyEDHQM3AyEDNwM6A1gDUANeA1gDXgNkAycDLgNVAycDVQNRAyABKgNSAyABUgNJAyUBIQFKAyUBSgNNA10DWwNgA10DYANiA04DTANaA04DWgNcA0sDUwNfA0sDXwNZA1QDVwNjA1QDYwNhA1MEPgQ6BFMEOgRbBNsE0wSXA9sElwObA8wEhwNoA8wEaAOsBMAESwAdAMAEHQCwBKcEEwBTAKcEUwC5BLgEUQBNALgETQC8BL0ETwBJAL0ESQC/BLUEbQOQA7UEkAPFBMIEjwOMA8IEjAPHBMYEiwOGA8YEhgPKBPkDcwN3A/kDdwP9A/4DeAN8A/4DfAMCBAEEewN/AwEEfwMFBPUE5QSrA/UEqwO4Aw4ECgSSAw4EkgOeA9oE0gRZANoEWQB3AKgE2QR0AKgEdAAUAPoDDQSdA/oDnQN0A7ME3QScA7MEnANsA98E+QTUA98E1AOjA+sE4ASkA+sEpAPHAyQEFASuAyQErgO6Ax0EEQSlAx0EpQPJAwkEGgTOAwkEzgORAxkEHgTKAxkEygPNA+IAHwS9A+IAvQNiACAEIwS5AyAEuQO+A88E5wTDA88EwwNWAOkE7QTIA+kEyAPEA9QE7wSzA9QEswOYA/AE8wS3A/AEtwO0A7cFNATwA7cF8AOjBRMELATeAxME3gOtAxIEKQTVAxIE1QOmA+YE/ATbA+YE2wOsAzUE4QPpBekF5wWHBekFhwU1BLUFMgTmA7UF5gOrBb8FBQXsA78F7AOxBbsFAAXkA7sF5AOpBbAF6gMwBLAFMAS0BX8F1wXRBX8F0QWEBakD2gMoBKkDKAQPBKED0gMuBKEDLgQVBKcF4gM2BKcFNgS5BcIDxQMlBMIDJQQiBFQAwQMhBFQAIQTkALIDtQMbBLIDGwQYBJYDsQMXBJYDFwQIBLYDqgMQBLYDEAQcBMYDogMWBMYDFgQmBGoDmgMMBGoDDAT3A5kDlQMHBJkDBwQLBIkD/wMDBIkDAwSEA40D+wMABI0DAASKA2sD+AP8A2sD/AOOA1cEQgQ8BFcEPARRBJwE9QNuA5wEbgOeBE0EAgb9BU0E/QVIBD0E8wXvBT0E7wU5BF4EQwQ/BF4EPwRWBFkEOARQBFkEUARjBGEETgRJBGEESQRlBGgESwRHBGgERwRgBI8EZwRfBI8EXwSXBIoEYgRmBIoEZgSOBIUEWgRkBIUEZASLBJUEXQRVBJUEVQSRBJQEWARSBJQEUgSCBIMEVARcBIMEXASHBHEDdAR4BHEDeASCA/YDbARyBPYDcgRvA2YDbgRqBGYDagT0A4ADdgR8BIADfAQGBAQEegR+BAQEfgSFA4gDfwRvBIgDbwRpA3MEhASIBHMEiAR3BGsEkwSBBGsEgQRxBG0ElgSSBG0EkgRpBHUEhgSMBHUEjAR7BHkEiQSNBHkEjQR9BIAEkASYBIAEmARwBAkFZgWJAgkFiQJ9AaoEZwOjBKoEowQHBa8EGwB1Aa8EdQEMBWUD8wOaBGUDmgSiBHADrgQLBXADCwWfBBcAqQTzAaQEYgVlBaQEZQUIBekDewV4BekDeAUvBK0F5wMBBa0FAQW9BaUF8gMGBaUFBgXABeUDMQR5BXkF5AXgBXkF4AXlA68D3wP7BK8D+wTjBMADvAP2BMAD9gTyBGcAvwPxBGcA8QTWBNADzAPuBNAD7gTqBJMDzwPoBJMD6ATQBMsDqAPiBMsD4gTsBKcD2AP6BKcD+gThBB8AbQDcBB8A3ASyBHYDoAPYBHYD2ASmBJ8DlAPRBJ8D0QTXBLsDsAPkBLsD5AT0BEMAyQTNBEMAzQT3AUUAwwTIBEUAyARBACEAtATEBCEAxARHAH4DuwS+BH4DvgSBA3oDtwS6BHoDugR9A3UDpQS2BHUDtgR5A4MDwQSxBIMDsQRyAz0AywSrBD0AqwQZAG8AZQDVBG8A1QTeBK0ECgV+Aa0EfgH0Ac4EPwD5AXcBkQJqBXcBagUOBVsFEQUXBVsFFwVZBVgFFAUYBVgFGAVgBQ0FaAVeBQ0FXgWgBFYCQQUfBVYCHwUYAkICNQUlBUICJQUqAjMFOwUvBTMFLwUjBUAFSAUnBUAFJwUdBUkFQwUhBUkFIQUqBT0FNwUrBT0FKwUxBToFTAIyAjoFMgItBUUFXgIoAkUFKAIiBSAFJgI4AiAFOAIpBSgFNgIWAigFFgIeBXIFpAJKAnIFSgI5BXUFbwU4BXUFOAU+BWwFdAU8BWwFPAU0BZoCbQU2BZoCNgVEAi4FNAJgAi4FYAJGBTIFLAVEBTIFRAVKBSQFMAVHBSQFRwU/BSwCJgVCBSwCQgVYAhAFTQVmAhAFZgL+ARsFTwVVBRsFVQUWBRUFVAVMBRUFTAUPBfwBcgJQBfwBUAUcBZkEVwVfBZkEXwWhBJ0EXAVaBZ0EWgWbBGgCTgVuBWgCbgWcAmEFGgVkBWMFGQX7AWMF+wGHAo8CAQITBY8CEwVpBWcFEgVdBUsFUwVzBUsFcwVrBVYFUQVwBVYFcAV2BVIFdAKiAlIFogJxBYgFdwV6BYgFegV+Bf8E2wXrBf8E6wXjA90F4wV3Bd0FdwWIBYUFiAV+BYUFfgWBBe0DzgXGBe0DxgV9BeYF3QWIBeYFiAWFBTMEhgWDBTMEgwXvA4sFkwWNBYsFjQWRBYIF0AXUBYIF1AXuA3wFxAXYBXwF2AWABZkFoQWUBZkFlAWMBQMFyQXMBQMFzAXrA54FoAWYBZ4FmAWcBfED1QXKBfEDygUEBeADpgXCBeADwgX+BNcDrgW+BdcDvgX4BNEDqAW6BdEDugUtBNkDrwWzBdkDswUnBPcEvAWqBfcEqgXTA/0EwQWyBf0EsgXcAyoEtgWsBSoErAXWAysEuAWkBSsEpAXdA8MFjgWVBcMFlQXWBdEF1wWWBZYFogWfBZYFnwXRBcgFigWQBcgFkAXLBc0FkgWPBc0FjwXFBc8FnQWaBc8FmgXSBccF0wWbBZsFlwWJBZsFiQXHBd8F2gXhBd8F4QXlBegF6gXZBegF2QXeBegD4gXcBegD3AUCBewFBwYZBuwFGQYEBgMGFgYTBgMGEwb+BTcE7QUFBjcEBQZPBEEE9wXxBUEE8QU7BEQE+QX1BUQE9QVABAEGJwYgBgEGIAZMBBcGBgYKBhcGCgYNBhQGGAYOBhQGDgYQBvQFDAYJBvQFCQbwBfoFEQYPBvoFDwb2BQAGFQYSBgAGEgb8BfIFCwYIBvIFCAbuBSkGNQY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\u003c/3d\u003e\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JL5Gi3n+NbhlVuN26n9HUewHe7BzO9XlaC1AFN/bEM7P12/n8Ohf3S03+sp694G9c4lWkABELsSt5h6AfKRRBw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732290264"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","package":{"name":"test_3d","path":"gno.land/r/stuyk/test_3d","files":[{"name":"package.gno","body":"package test_3d\n\nfunc Render(path string) string {\n return \"\u003c3d\u003eZ2xURgIAAABg7wMAiBQAAEpTT057ImFzc2V0Ijp7ImdlbmVyYXRvciI6Iktocm9ub3MgZ2xURiBCbGVuZGVyIEkvTyB2NC4yLjcwIiwidmVyc2lvbiI6IjIuMCJ9LCJzY2VuZSI6MCwic2NlbmVzIjpbeyJuYW1lIjoiU2NlbmUiLCJub2RlcyI6WzE3XX1dLCJub2RlcyI6W3sibmFtZSI6IkJvbmUuMDAzIiwidHJhbnNsYXRpb24iOlswLDAuMjYzNTU3NjcyNTAwNjEwMzUsMF19LHsiY2hpbGRyZW4iOlswXSwibmFtZSI6IkJvbmUuMDAyIiwidHJhbnNsYXRpb24iOlswLDAuODAwMDAwMDcxNTI1NTczNywwXX0seyJuYW1lIjoiQm9uZS4wMDYiLCJyb3RhdGlvbiI6Wy0wLjExMzM0OTg5OTY0OTYyMDA2LC0wLjAzNzk4NDE4NDkyMDc4NzgxLC0wLjA0NDA1NjA2NTM4MDU3MzI3LDAuOTkxODUwODUyOTY2MzA4Nl0sInNjYWxlIjpbMS4wMDAwMDAxMTkyMDkyODk2LDEsMS4wMDAwMDAxMTkyMDkyODk2XSwidHJhbnNsYXRpb24iOlsxLjQ5MDExNjExOTM4NDc2NTZlLTA4LDAuODA1NDQzODIzMzM3NTU0OSw3LjMyNzYxNjkxMzI0NDEyOGUtMDhdfSx7ImNoaWxkcmVuIjpbMl0sIm5hbWUiOiJCb25lLjAwNSIsInJvdGF0aW9uIjpbLTAuMDQzMzczMjQ5NDcxMTg3NTksLTAuMDEwOTY5ODA5MjU2NDk0MDQ1LC0wLjA3MTMwMDg1Njc2OTA4NDkzLDAuOTk2NDUxMDIwMjQwNzgzN10sInNjYWxlIjpbMC45OTk5OTk4ODA3OTA3MTA0LDEuMDAwMDAwMTE5MjA5Mjg5NiwxLjAwMDAwMDExOTIwOTI4OTZdLCJ0cmFuc2xhdGlvbiI6WzguMzgxOTAzMTcxNTM5MzA3ZS0wOSwwLjQ4NzQwMTAzODQwODI3OTQsMy4wNTUzNTY1MDExMzU5NzVlLTA4XX0seyJjaGlsZHJlbiI6WzNdLCJuYW1lIjoiQm9uZS4wMDQiLCJyb3RhdGlvbiI6Wy0wLjg0MzcyNTE0NDg2MzEyODcsLTAuMDY2ODA1NjE2MDIxMTU2MzEsLTAuMDQyNjk0MDY1NzE5ODQyOTEsMC41MzA4ODgwODA1OTY5MjM4XSwic2NhbGUiOlsxLDAuOTk5OTk5OTQwMzk1MzU1MiwwLjk5OTk5OTg4MDc5MDcxMDRdLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjc0NDk0Mzg1NzE5Mjk5MywtMC40NDM1NzUxNDM4MTQwODY5XX0seyJuYW1lIjoiQm9uZS4wMTIiLCJyb3RhdGlvbiI6WzAuMTA4NzEwNjgzODgyMjM2NDgsLTAuMDUwNzQ1MjQ4Nzk0NTU1NjY0LDAuMDU0NTA4MDU2NDkxNjEzMzksMC45OTEyNzk5MDAwNzQwMDUxXSwic2NhbGUiOlsxLDEuMDAwMDAwMTE5MjA5Mjg5NiwwLjk5OTk5OTk0MDM5NTM1NTJdLCJ0cmFuc2xhdGlvbiI6Wy04Ljk0MDY5NjcxNjMwODU5NGUtMDgsMC44MDU0NDM3MDQxMjgyNjU0LDEuMTkyMDkyODk1NTA3ODEyNWUtMDddfSx7ImNoaWxkcmVuIjpbNV0sIm5hbWUiOiJCb25lLjAxMSIsInJvdGF0aW9uIjpbMC4wODEwMTEzMjUxMjA5MjU5LDAuMTUzMTU1NzU4OTc2OTM2MzQsLTAuMDIwMDU1MjgwOTk4MzQ5MTksMC45ODQ2NzE2NTIzMTcwNDcxXSwic2NhbGUiOlsxLjAwMDAwMDExOTIwOTI4OTYsMSwxXSwidHJhbnNsYXRpb24iOlsyLjc5Mzk2NzcyMzg0NjQzNTVlLTA4LDAuNDg3NDAxMDA4NjA1OTU3MDMsLTYuMTAwMTYyODYzNzMxMzg0ZS0wOF19LHsiY2hpbGRyZW4iOls2XSwibmFtZSI6IkJvbmUuMDEwIiwicm90YXRpb24iOlswLjgxNDUxMzc0MjkyMzczNjYsMC4yMzAwMDU1NzcyMDY2MTE2MywwLjIyNDE5MjU3NDYyMDI0NjksMC40ODMxMTc1MjA4MDkxNzM2XSwic2NhbGUiOlsxLDAuOTk5OTk5ODgwNzkwNzEwNCwwLjk5OTk5OTgyMTE4NjA2NTddLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjk0NzY4MDcxMTc0NjIxNiwwLjQzODA2MTM1NjU0NDQ5NDYzXX0seyJjaGlsZHJlbiI6WzEsNCw3XSwibmFtZSI6IkJvbmUuMDAxIiwidHJhbnNsYXRpb24iOlswLDAuNTA5Mzc3MzYwMzQzOTMzMSwwXX0seyJuYW1lIjoiQm9uZS4wMDkiLCJyb3RhdGlvbiI6WzAuMDYzNDg0MjM2NTk4MDE0ODMsMC4wNDYwODUyOTA2MTA3OTAyNSwtMC42MjI1OTkzNjMzMjcwMjY0LDAuNzc4NTk4NzI1Nzk1NzQ1OF0sInNjYWxlIjpbMC45OTk5OTk5NDAzOTUzNTUyLDEsMV0sInRyYW5zbGF0aW9uIjpbMi44Mzc2MjM0Njk1MzE1MzZlLTA5LDAuOTg0NTgzMjU4NjI4ODQ1MiwtOC42ODU2NzQ0MDE5MzE0NjVlLTA5XX0seyJjaGlsZHJlbiI6WzldLCJuYW1lIjoiQm9uZS4wMDgiLCJyb3RhdGlvbiI6Wy0wLjAwNjgyMjA4NTAwODAyNTE2OSwtMi45NDcwMDM4NDk4NDAyNTczZS0wNSwtMC4wNTUwNjQyOTgyMTI1MjgyMywwLjk5ODQ1OTUxNzk1NTc4XSwic2NhbGUiOlswLjk5OTk5OTk0MDM5NTM1NTIsMC45OTk5OTk5NDAzOTUzNTUyLDFdLCJ0cmFuc2xhdGlvbiI6WzEuMjc0NzQ3Nzc0MDA0OTM2MmUtMDgsMS4wNzgxOTc1OTg0NTczMzY0LC0yLjQ5NTY1MzQ2MTY2NDkxNWUtMDldfSx7ImNoaWxkcmVuIjpbMTBdLCJuYW1lIjoiQm9uZS4wMDciLCJyb3RhdGlvbiI6WzAuOTk4Mzk2ODczNDc0MTIxMSwtMC4wNTMzMzgzMjY1MTM3NjcyNCwwLjAwMTIzMzAwMTEyMzE4MjQ3NTYsMC4wMTg4OTkyNjM4MTQwOTE2ODJdLCJzY2FsZSI6WzEuMDAwMDA0NTI5OTUzMDAzLDEsMS4wMDAwMDA1OTYwNDY0NDc4XSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMjcxMjE3MTA3NzcyODI3MSwtMC4yMzg0NzgyNzMxNTMzMDUwNV19LHsibmFtZSI6IkJvbmUuMDE1Iiwicm90YXRpb24iOlstMC4wMDA2MjEyNjY2NjMwNzQ0OTM0LDAuMDMzMTMzMDgyMDkxODA4MzIsLTAuNjI1ODI3MjUyODY0ODM3NiwwLjc3OTI1NzM1NzEyMDUxMzldLCJzY2FsZSI6WzEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMTE5MjA5Mjg5Nl0sInRyYW5zbGF0aW9uIjpbNy4zNjMyNjkxMDU1NTM2MjdlLTA5LDAuOTg0NTgzNjc1ODYxMzU4NiwtMS4wOTkwMzMzOTc2MjI0MDY1ZS0wOF19LHsiY2hpbGRyZW4iOlsxMl0sIm5hbWUiOiJCb25lLjAxNCIsInJvdGF0aW9uIjpbMC4wMDcwNDE1MDQxNDA5NDMyODksLTAuMDA0OTM4NzIyMTIyNDYwNjA0LC0wLjA1NTAzNjcwNDk4NzI4NzUyLDAuOTk4NDQ3Mjk5MDAzNjAxMV0sInNjYWxlIjpbMSwxLjAwMDAwMDExOTIwOTI4OTYsMC45OTk5OTk5NDAzOTUzNTUyXSwidHJhbnNsYXRpb24iOlstMS40MDg2MjUzOTQxMDU5MTEzZS0wOCwxLjA3ODE5NzU5ODQ1NzMzNjQsMi44NTc5OTYxNTA4NTEyNDk3ZS0wOF19LHsiY2hpbGRyZW4iOlsxM10sIm5hbWUiOiJCb25lLjAxMyIsInJvdGF0aW9uIjpbLTAuOTk4MzkyNDAzMTI1NzYyOSwwLjA1MzQyMjQyODY2NzU0NTMyLC0wLjAwMzIzOTczODA1NjQzNjE4MSwwLjAxODY2MDEwNTc2NDg2NTg3NV0sInNjYWxlIjpbMS4wMDAwMDQwNTMxMTU4NDQ3LDEsMS4wMDAwMDA0NzY4MzcxNTgyXSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMDY4NDgwODQ5MjY2MDUyMiwwLjIzMjk2NDQ1NjA4MTM5MDM4XX0seyJjaGlsZHJlbiI6WzgsMTEsMTRdLCJuYW1lIjoiQm9uZSJ9LHsibWVzaCI6MCwibmFtZSI6InBsYXllciIsInNraW4iOjB9LHsiY2hpbGRyZW4iOlsxNiwxNV0sIm5hbWUiOiJBcm1hdHVyZSIsInNjYWxlIjpbMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjldfV0sIm1hdGVyaWFscyI6W3siZG91YmxlU2lkZWQiOnRydWUsIm5hbWUiOiJNYXRlcmlhbCIsInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvclRleHR1cmUiOnsiaW5kZXgiOjB9LCJtZXRhbGxpY0ZhY3RvciI6MH19XSwibWVzaGVzIjpbeyJuYW1lIjoiQ3ViZSIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjAsIk5PUk1BTCI6MSwiVEVYQ09PUkRfMCI6MiwiSk9JTlRTXzAiOjMsIldFSUdIVFNfMCI6NH0sImluZGljZXMiOjUsIm1hdGVyaWFsIjowfV19XSwidGV4dHVyZXMiOlt7InNhbXBsZXIiOjAsInNvdXJjZSI6MH1dLCJpbWFnZXMiOlt7ImJ1ZmZlclZpZXciOjYsIm1pbWVUeXBlIjoiaW1hZ2UvcG5nIiwibmFtZSI6InV2X2xheW91dCJ9XSwic2tpbnMiOlt7ImludmVyc2VCaW5kTWF0cmljZXMiOjYsImpvaW50cyI6WzE1LDgsMSwwLDQsMywyLDcsNiw1LDExLDEwLDksMTQsMTMsMTJdLCJuYW1lIjoiQXJtYXR1cmUifV0sImFjY2Vzc29ycyI6W3siYnVmZmVyVmlldyI6MCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE1OTAsIm1heCI6WzAuMzQ4MTI0MDI3MjUyMTk3MjcsMS42ODUzNjk0OTE1NzcxNDg0LDEuMzkzOTAwMzk0NDM5Njk3M10sIm1pbiI6Wy0wLjI1MjQ0MjcxNzU1MjE4NTA2LC0xLjkyMDg3ODA1MjcxMTQ4NjgsLTEuMzkzOTAwMzk0NDM5Njk3M10sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxNTkwLCJ0eXBlIjoiVkVDMiJ9LHsiYnVmZmVyVmlldyI6MywiY29tcG9uZW50VHlwZSI6NTEyMSwiY291bnQiOjE1OTAsInR5cGUiOiJWRUM0In0seyJidWZmZXJWaWV3Ijo0LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzQifSx7ImJ1ZmZlclZpZXciOjUsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjoyNDEyLCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3Ijo3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTYsInR5cGUiOiJNQVQ0In1dLCJidWZmZXJWaWV3cyI6W3siYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxOTA4MCwiYnl0ZU9mZnNldCI6MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjE5MDgwLCJieXRlT2Zmc2V0IjoxOTA4MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjEyNzIwLCJieXRlT2Zmc2V0IjozODE2MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjYzNjAsImJ5dGVPZmZzZXQiOjUwODgwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjU0NDAsImJ5dGVPZmZzZXQiOjU3MjQwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgyNCwiYnl0ZU9mZnNldCI6ODI2ODAsInRhcmdldCI6MzQ5NjN9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxNjQwNzQsImJ5dGVPZmZzZXQiOjg3NTA0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MTAyNCwiYnl0ZU9mZnNldCI6MjUxNTgwfV0sInNhbXBsZXJzIjpbeyJtYWdGaWx0ZXIiOjk3MjgsIm1pbkZpbHRlciI6OTk4NH1dLCJidWZmZXJzIjpbeyJieXRlTGVuZ3RoIjoyNTI2MDR9XX282gMAQklOAKZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPr/CS76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ODQAADg0AAA4NAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQAKAA0ACgANAAoADQAKAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQAAAA0AAAANAAAADQAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAHAgEABwIBAAcCAQAHAgEADQABAA0AAQANAAEADQABAAABDQAAAQ0AAAENAAABDQABAAcAAQAHAAEABwABAAcABwEAAAcBAAAHAQAABwEAAA0AAAANAAAADQAAAA0AAAANAAoADQAKAA0ACgANAAoADQAAAA0AAAANAAAADQAAAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAAAAAgAAAAIAAAACAAAAAgHAAAIBwAACAcAAAgHAAAIAAAACAAAAAgAAAAIAAAACAcAAAgHAAAIBwAACAcAAAcAAAAHAAAABwAAAAcAAAAHAQAABwEAAAcBAAAHAQAABwEAAAcBAAAHAQAABwEAAAcIAQAHCAEABwgBAAcIAQAHCAEABwgBAAcIAQAHCAEABwEAAAcBAAAHAQAABwEAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAIBAAACAQAAAgEAAAIBAAACBwEAAgcBAAIHAQACBwEAAgAAAAIAAAACAAAAAgAAAAIBBwACAQcAAgEHAAIBBwACAQcAAgEHAAIBBwACAQcAAA0BAAANAQAADQEAAA0BAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAANAQAADQEAAA0BAAANAQAAAQAAAAEAAAABAAAAAQAAAQAHAAEABwABAAcAAQAHAAEHAgABBwIAAQcCAAEHAgAAAQ0AAAENAAABDQAAAQ0AAQAAAAEAAAABAAAAAQAAAAEHAgABBwIAAQcCAAEHAgABBwIADQAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgAADQoAAA0KAAANCgAADQoAAA0AAAANAAAADQAAAA0AAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAABBAcAAQQHAAEEBwABBAcAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAwIAAAMCAAADAgAAAwIAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIHAwACBwMAAgcDAAIHAwACAwEAAgMBAAIDAQACAwEAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgEDAAIBAwACAQMAAgEDAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADgAAAA4AAAAOAAAADgAAAA4PAAAODwAADg8AAA4PAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEAAAEKBAABCgQAAQoEAAEKBAEEAAABBAAAAQQAAAEEAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAAAQAEAAEABAABAAQAAQAEAAABCgAAAQoAAAEKAAABCgAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAACgAAAAoAAAAKAAAACgAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoNAAAKDQAACg0AAAoNAAAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAQCAQAEAgEABAIBAAQCAQAKAAEACgABAAoAAQAKAAEAAAEKAAABCgAAAQoAAAEKAAEABAABAAQAAQAEAAEABAAEAQAABAEAAAQBAAAEAQAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsMAAALDAAACwwAAAsMAAAMCwAADAsAAAwLAAAMCwAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAEAgAABAIAAAQCAAAEAgAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAACBAEAAgQBAAIEAQACBAEAAgEEAAIBBAACAQQAAgEEAAIBBAACAQQAAgEEAAIBBAAACgEAAAoBAAAKAQAACgEAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAAoBAAAKAQAACgEAAAoBAAABAAAAAQAAAAEAAAABAAABAAQAAQAEAAEABAABAAQAAQQCAAEEAgABBAIAAQQCAAABCgAAAQoAAAEKAAABCgABAAAAAQAAAAEAAAABAAAAAQQCAAEEAgABBAIAAQQCAAEEAgAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgANAAAKDQAACg0AAAoNAAAKDQAACg0AAAoNAAAKDQAACg0ACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMEAAIDBAACAwQAAgMEAAIDAQACAwEAAgMBAAIDAQACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAAAAAwAAAAMAAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwwAAAsMAAALDAAACwwAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAA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AAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+a1jw+tc8EPQAAAABefUg/mtY8PrXPBD0AAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+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rAMIBqwDcAc4BngB7AM4BewDDAf8AkQCFAP8AhQDvAPgAoAB8APgAfADsAOAAWgClAOAApQD1APQApAChAPQAoQD5AOMAYwCUAOMAlAD6APsAlQCQAPsAkAD+ALIBVwCaALIBmgDKAcwBmwCfAMwBnwDQAbcBYQCKALcBigDSAdMBiwCOANMBjgDWAeYC0gLHAOYCxwAPAe4AhAC1AO4AtQAHAe0AfQCsAO0ArAAEAckBgwCyAMkBsgDfARgDuAAQARABtgIWAxABFgMYA+QC2gK9AOQCvQANAe4C4ALDAO4CwwDoAeoC2AK7AOoCuwDjAd8C4wILAd8CCwHBAK4CswIAA64CAAMGA4AA6gADAYAAAwGxAHgA8AAJAXgACQGpANYC6AIRAdYCEQG5AJkA/QAAAZkAAAGcAFUA5QD8AFUA/ACYAIkA8wD2AIkA9gCMAF8A3wDyAF8A8gCIAI0A9wDrAI0A6wCBAJ0AAQHxAJ0A8QB5AAUAzgDnAAUA5wBpAGgA5gDeAGgA3gBeADQALwDaADQA2gDWADgANQDXADgA1wDSAAYAOQDTAAYA0wDPADIBLAEXATIBFwEdAXsBgQEJAHsBCQDMACgBIwEsAygBLAMxAxgBFAEeAxgBHgMiAzkBMQEaATkBGgEeATQBPgErATQBKwETATwBQAEkATwBJAEpAUMBOwEiAUMBIgEmAWoBcgE6AWoBOgFCAWUBaQFBAWUBQQE9AWABZgE/AWABPwE1AXABbAEwAXABMAE4AW8BXQEtAW8BLQEzAV4BYgE3AV4BNwEvAQwALQBTAQwAUwFPAc0ACgBNAc0ATQFHAQEAywBFAQEARQFJASsA3QBXASsAVwFRAdsAMABZAdsAWQFVATMABABKATMASgFaAU4BUgFjAU4BYwFfAUYBTAFcAUYBXAFuAUgBRAFtAUgBbQFxAVABVgFnAVABZwFhAVQBWAFoAVQBaAFkAVsBSwFzAVsBcwFrAewBfAGIAuwBiAKFAo0B6gGGAY0BhgECAJIB7wF0AZIBdAEaAAAAhQF5AQAAeQHKAAsAggHuAQsA7gGRARYA8gGMAYcB6wGEAocBhAKBAsAACgGnAsAApwKqAtwC7ALkAdwC5AG+ANQC7wLpAdQC6QHJAKgCDAG8ALwADwMTA7wAEwOoAoYAxgHeAYYA3gG2AJcA1QHZAZcA2QGTAGYAuQHUAWYA1AGWAKcAzQHRAacA0QGjAFwAswHLAVwAywGmAKIAzwHFAaIAxQF/AH4AxAHdAX4A3QGvAB4AlQG/AR4AvwFsABEAiQG7AREAuwFzAHIAugG0AXIAtAFdAJIA1wHHAZIAxwGHAEIA9gGwAUIAsAGsAUQAQACrAUQAqwGmASAARgCnASAApwGXASkALAChASkAoQGeASUAKACdASUAnQGaARAAJACZARAAmQGIAS4ADQCUAS4AlAGkATwAGACOATwAjgGuAW4AwQG4AW4AuAFkAJAB9QF/AZABfwHtAbEB+AE+AHYB8QGNAnYBjQKQAnoCeAIKAnoCCgIEAncCfwILAncCCwIHAvABgwF9AvABfQKLAlcCGQISAlcCEgJQAkMCKwIcAkMCHAI8AjoCGgIuAjoCLgJGAk8CEAIeAk8CHgJbAlwCIQIUAlwCFAJSAkgCMAIiAkgCIgI+AkECJAIzAkECMwJNAlQCFQIpAlQCKQJfAhMCIAI5AhMCOQInAh8CEQIXAh8CFwI3ApkCQAJLApkCSwKlAqACSQI/AqACPwKWApMCOwJHApMCRwKfApsCRQI9ApsCPQKUAiUCVQJhAiUCYQI1AjECXQJTAjECUwIjAhsCTgJaAhsCWgIvAi0CWQJRAi0CUQIdAgMC/wFnAgMCZwJkAg4CCQJwAg4CcAJqAggCAgJjAggCYwJvAv0BDwJrAv0BawJzAngBhAF+AngBfgJ2AoABegF5AoABeQJ7AmkCnQKVAmkClQJlAoACgwINAoIChgL6AYIC+gEMAo4CjAIGAo4CBgIAAooCfAIFAmICkgKeAmICngJuAnECoQKXAnEClwJsAm0CmAKjAm0CowJ1ArcCrQKpArcCqQKmAuIBugAaA+IBGgMKAwwDtwKmAgwDpgISA7QCsAKtArQCrQK3AsQArAL1AsQA9QL9AhUDtAK3AhUDtwIMAw4BxgCyAg4BsgK1AroCwAK8AroCvALCArECxQADA7ECAwP/AqsCrwIHA6sCBwPzAsgCuwLDAsgCwwLQAuYBwgD7AuYB+wL4As0CywLHAs0CxwLPAsgA5wH5AsgA+QIEA7cA4QHxArcA8QLVAq4A2wHtAq4A7QLdAqgACAHpAqgA6QLXArAAAgHiArAA4gLeAtoBqgDZAtoB2QLrAuABswDhAuAB4QLwAgUBrQDbAgUB2wLlAgYBtADTAgYB0wLnAvICBQPEAvICxAK9AsUCBgMAAwADzgLRAgAD0QLFAvcC+gK/AvcCvwK5AvwC9AK+AvwCvgLBAv4CAQPJAv4CyQLMAsoCAgP2AvYCuALGAvYCxgLKAg4DFAMQAw4DEAMJAxcDDQMIAxcDCAMZA78A5QELA78ACwMRAxsDMwNIAxsDSAM2AzIDLQNCAzIDQgNFAxIBKgE0AxIBNAMcAxwBFgEgAxwBIAMmAx8BGwEkAx8BJAMoAzADJwFPAzADTwNWA0YDPAM5A0YDOQM1A0MDPwM9A0MDPQNHAyMDHwM4AyMDOAM7AykDJQM+AykDPgNAAy8DKwNBAy8DQQNEAyEDHQM3AyEDNwM6A1gDUANeA1gDXgNkAycDLgNVAycDVQNRAyABKgNSAyABUgNJAyUBIQFKAyUBSgNNA10DWwNgA10DYANiA04DTANaA04DWgNcA0sDUwNfA0sDXwNZA1QDVwNjA1QDYwNhA1MEPgQ6BFMEOgRbBNsE0wSXA9sElwObA8wEhwNoA8wEaAOsBMAESwAdAMAEHQCwBKcEEwBTAKcEUwC5BLgEUQBNALgETQC8BL0ETwBJAL0ESQC/BLUEbQOQA7UEkAPFBMIEjwOMA8IEjAPHBMYEiwOGA8YEhgPKBPkDcwN3A/kDdwP9A/4DeAN8A/4DfAMCBAEEewN/AwEEfwMFBPUE5QSrA/UEqwO4Aw4ECgSSAw4EkgOeA9oE0gRZANoEWQB3AKgE2QR0AKgEdAAUAPoDDQSdA/oDnQN0A7ME3QScA7MEnANsA98E+QTUA98E1AOjA+sE4ASkA+sEpAPHAyQEFASuAyQErgO6Ax0EEQSlAx0EpQPJAwkEGgTOAwkEzgORAxkEHgTKAxkEygPNA+IAHwS9A+IAvQNiACAEIwS5AyAEuQO+A88E5wTDA88EwwNWAOkE7QTIA+kEyAPEA9QE7wSzA9QEswOYA/AE8wS3A/AEtwO0A7cFNATwA7cF8AOjBRMELATeAxME3gOtAxIEKQTVAxIE1QOmA+YE/ATbA+YE2wOsAzUE4QPpBekF5wWHBekFhwU1BLUFMgTmA7UF5gOrBb8FBQXsA78F7AOxBbsFAAXkA7sF5AOpBbAF6gMwBLAFMAS0BX8F1wXRBX8F0QWEBakD2gMoBKkDKAQPBKED0gMuBKEDLgQVBKcF4gM2BKcFNgS5BcIDxQMlBMIDJQQiBFQAwQMhBFQAIQTkALIDtQMbBLIDGwQYBJYDsQMXBJYDFwQIBLYDqgMQBLYDEAQcBMYDogMWBMYDFgQmBGoDmgMMBGoDDAT3A5kDlQMHBJkDBwQLBIkD/wMDBIkDAwSEA40D+wMABI0DAASKA2sD+AP8A2sD/AOOA1cEQgQ8BFcEPARRBJwE9QNuA5wEbgOeBE0EAgb9BU0E/QVIBD0E8wXvBT0E7wU5BF4EQwQ/BF4EPwRWBFkEOARQBFkEUARjBGEETgRJBGEESQRlBGgESwRHBGgERwRgBI8EZwRfBI8EXwSXBIoEYgRmBIoEZgSOBIUEWgRkBIUEZASLBJUEXQRVBJUEVQSRBJQEWARSBJQEUgSCBIMEVARcBIMEXASHBHEDdAR4BHEDeASCA/YDbARyBPYDcgRvA2YDbgRqBGYDagT0A4ADdgR8BIADfAQGBAQEegR+BAQEfgSFA4gDfwRvBIgDbwRpA3MEhASIBHMEiAR3BGsEkwSBBGsEgQRxBG0ElgSSBG0EkgRpBHUEhgSMBHUEjAR7BHkEiQSNBHkEjQR9BIAEkASYBIAEmARwBAkFZgWJAgkFiQJ9AaoEZwOjBKoEowQHBa8EGwB1Aa8EdQEMBWUD8wOaBGUDmgSiBHADrgQLBXADCwWfBBcAqQTzAaQEYgVlBaQEZQUIBekDewV4BekDeAUvBK0F5wMBBa0FAQW9BaUF8gMGBaUFBgXABeUDMQR5BXkF5AXgBXkF4AXlA68D3wP7BK8D+wTjBMADvAP2BMAD9gTyBGcAvwPxBGcA8QTWBNADzAPuBNAD7gTqBJMDzwPoBJMD6ATQBMsDqAPiBMsD4gTsBKcD2AP6BKcD+gThBB8AbQDcBB8A3ASyBHYDoAPYBHYD2ASmBJ8DlAPRBJ8D0QTXBLsDsAPkBLsD5AT0BEMAyQTNBEMAzQT3AUUAwwTIBEUAyARBACEAtATEBCEAxARHAH4DuwS+BH4DvgSBA3oDtwS6BHoDugR9A3UDpQS2BHUDtgR5A4MDwQSxBIMDsQRyAz0AywSrBD0AqwQZAG8AZQDVBG8A1QTeBK0ECgV+Aa0EfgH0Ac4EPwD5AXcBkQJqBXcBagUOBVsFEQUXBVsFFwVZBVgFFAUYBVgFGAVgBQ0FaAVeBQ0FXgWgBFYCQQUfBVYCHwUYAkICNQUlBUICJQUqAjMFOwUvBTMFLwUjBUAFSAUnBUAFJwUdBUkFQwUhBUkFIQUqBT0FNwUrBT0FKwUxBToFTAIyAjoFMgItBUUFXgIoAkUFKAIiBSAFJgI4AiAFOAIpBSgFNgIWAigFFgIeBXIFpAJKAnIFSgI5BXUFbwU4BXUFOAU+BWwFdAU8BWwFPAU0BZoCbQU2BZoCNgVEAi4FNAJgAi4FYAJGBTIFLAVEBTIFRAVKBSQFMAVHBSQFRwU/BSwCJgVCBSwCQgVYAhAFTQVmAhAFZgL+ARsFTwVVBRsFVQUWBRUFVAVMBRUFTAUPBfwBcgJQBfwBUAUcBZkEVwVfBZkEXwWhBJ0EXAVaBZ0EWgWbBGgCTgVuBWgCbgWcAmEFGgVkBWMFGQX7AWMF+wGHAo8CAQITBY8CEwVpBWcFEgVdBUsFUwVzBUsFcwVrBVYFUQVwBVYFcAV2BVIFdAKiAlIFogJxBYgFdwV6BYgFegV+Bf8E2wXrBf8E6wXjA90F4wV3Bd0FdwWIBYUFiAV+BYUFfgWBBe0DzgXGBe0DxgV9BeYF3QWIBeYFiAWFBTMEhgWDBTMEgwXvA4sFkwWNBYsFjQWRBYIF0AXUBYIF1AXuA3wFxAXYBXwF2AWABZkFoQWUBZkFlAWMBQMFyQXMBQMFzAXrA54FoAWYBZ4FmAWcBfED1QXKBfEDygUEBeADpgXCBeADwgX+BNcDrgW+BdcDvgX4BNEDqAW6BdEDugUtBNkDrwWzBdkDswUnBPcEvAWqBfcEqgXTA/0EwQWyBf0EsgXcAyoEtgWsBSoErAXWAysEuAWkBSsEpAXdA8MFjgWVBcMFlQXWBdEF1wWWBZYFogWfBZYFnwXRBcgFigWQBcgFkAXLBc0FkgWPBc0FjwXFBc8FnQWaBc8FmgXSBccF0wWbBZsFlwWJBZsFiQXHBd8F2gXhBd8F4QXlBegF6gXZBegF2QXeBegD4gXcBegD3AUCBewFBwYZBuwFGQYEBgMGFgYTBgMGEwb+BTcE7QUFBjcEBQZPBEEE9wXxBUEE8QU7BEQE+QX1BUQE9QVABAEGJwYgBgEGIAZMBBcGBgYKBhcGCgYNBhQGGAYOBhQGDgYQBvQFDAYJBvQFCQbwBfoFEQYPBvoFDwb2BQAGFQYSBgAGEgb8BfIFCwYIBvIFCAbuBSkGNQY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\u003c/3d\u003e\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oMEPuNhqcE/mODMuCi141nzOGfCF2iepKJHcwXLCZFpbouv3ZjsdSYwGhxgtBxi58faqPQt1B1mHpCQWEyfsBQ=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732290375"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","package":{"name":"test_3d","path":"gno.land/r/stuyk/test_3d","files":[{"name":"package.gno","body":"package test_3d\n\nfunc Render(path string) string {\n\treturn \"\u003c3d\u003eZ2xURgIAAABg7wMAiBQAAEpTT057ImFzc2V0Ijp7ImdlbmVyYXRvciI6Iktocm9ub3MgZ2xURiBCbGVuZGVyIEkvTyB2NC4yLjcwIiwidmVyc2lvbiI6IjIuMCJ9LCJzY2VuZSI6MCwic2NlbmVzIjpbeyJuYW1lIjoiU2NlbmUiLCJub2RlcyI6WzE3XX1dLCJub2RlcyI6W3sibmFtZSI6IkJvbmUuMDAzIiwidHJhbnNsYXRpb24iOlswLDAuMjYzNTU3NjcyNTAwNjEwMzUsMF19LHsiY2hpbGRyZW4iOlswXSwibmFtZSI6IkJvbmUuMDAyIiwidHJhbnNsYXRpb24iOlswLDAuODAwMDAwMDcxNTI1NTczNywwXX0seyJuYW1lIjoiQm9uZS4wMDYiLCJyb3RhdGlvbiI6Wy0wLjExMzM0OTg5OTY0OTYyMDA2LC0wLjAzNzk4NDE4NDkyMDc4NzgxLC0wLjA0NDA1NjA2NTM4MDU3MzI3LDAuOTkxODUwODUyOTY2MzA4Nl0sInNjYWxlIjpbMS4wMDAwMDAxMTkyMDkyODk2LDEsMS4wMDAwMDAxMTkyMDkyODk2XSwidHJhbnNsYXRpb24iOlsxLjQ5MDExNjExOTM4NDc2NTZlLTA4LDAuODA1NDQzODIzMzM3NTU0OSw3LjMyNzYxNjkxMzI0NDEyOGUtMDhdfSx7ImNoaWxkcmVuIjpbMl0sIm5hbWUiOiJCb25lLjAwNSIsInJvdGF0aW9uIjpbLTAuMDQzMzczMjQ5NDcxMTg3NTksLTAuMDEwOTY5ODA5MjU2NDk0MDQ1LC0wLjA3MTMwMDg1Njc2OTA4NDkzLDAuOTk2NDUxMDIwMjQwNzgzN10sInNjYWxlIjpbMC45OTk5OTk4ODA3OTA3MTA0LDEuMDAwMDAwMTE5MjA5Mjg5NiwxLjAwMDAwMDExOTIwOTI4OTZdLCJ0cmFuc2xhdGlvbiI6WzguMzgxOTAzMTcxNTM5MzA3ZS0wOSwwLjQ4NzQwMTAzODQwODI3OTQsMy4wNTUzNTY1MDExMzU5NzVlLTA4XX0seyJjaGlsZHJlbiI6WzNdLCJuYW1lIjoiQm9uZS4wMDQiLCJyb3RhdGlvbiI6Wy0wLjg0MzcyNTE0NDg2MzEyODcsLTAuMDY2ODA1NjE2MDIxMTU2MzEsLTAuMDQyNjk0MDY1NzE5ODQyOTEsMC41MzA4ODgwODA1OTY5MjM4XSwic2NhbGUiOlsxLDAuOTk5OTk5OTQwMzk1MzU1MiwwLjk5OTk5OTg4MDc5MDcxMDRdLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjc0NDk0Mzg1NzE5Mjk5MywtMC40NDM1NzUxNDM4MTQwODY5XX0seyJuYW1lIjoiQm9uZS4wMTIiLCJyb3RhdGlvbiI6WzAuMTA4NzEwNjgzODgyMjM2NDgsLTAuMDUwNzQ1MjQ4Nzk0NTU1NjY0LDAuMDU0NTA4MDU2NDkxNjEzMzksMC45OTEyNzk5MDAwNzQwMDUxXSwic2NhbGUiOlsxLDEuMDAwMDAwMTE5MjA5Mjg5NiwwLjk5OTk5OTk0MDM5NTM1NTJdLCJ0cmFuc2xhdGlvbiI6Wy04Ljk0MDY5NjcxNjMwODU5NGUtMDgsMC44MDU0NDM3MDQxMjgyNjU0LDEuMTkyMDkyODk1NTA3ODEyNWUtMDddfSx7ImNoaWxkcmVuIjpbNV0sIm5hbWUiOiJCb25lLjAxMSIsInJvdGF0aW9uIjpbMC4wODEwMTEzMjUxMjA5MjU5LDAuMTUzMTU1NzU4OTc2OTM2MzQsLTAuMDIwMDU1MjgwOTk4MzQ5MTksMC45ODQ2NzE2NTIzMTcwNDcxXSwic2NhbGUiOlsxLjAwMDAwMDExOTIwOTI4OTYsMSwxXSwidHJhbnNsYXRpb24iOlsyLjc5Mzk2NzcyMzg0NjQzNTVlLTA4LDAuNDg3NDAxMDA4NjA1OTU3MDMsLTYuMTAwMTYyODYzNzMxMzg0ZS0wOF19LHsiY2hpbGRyZW4iOls2XSwibmFtZSI6IkJvbmUuMDEwIiwicm90YXRpb24iOlswLjgxNDUxMzc0MjkyMzczNjYsMC4yMzAwMDU1NzcyMDY2MTE2MywwLjIyNDE5MjU3NDYyMDI0NjksMC40ODMxMTc1MjA4MDkxNzM2XSwic2NhbGUiOlsxLDAuOTk5OTk5ODgwNzkwNzEwNCwwLjk5OTk5OTgyMTE4NjA2NTddLCJ0cmFuc2xhdGlvbiI6Wy0wLjA2NjA0NTk5OTUyNjk3NzU0LDAuNjk0NzY4MDcxMTc0NjIxNiwwLjQzODA2MTM1NjU0NDQ5NDYzXX0seyJjaGlsZHJlbiI6WzEsNCw3XSwibmFtZSI6IkJvbmUuMDAxIiwidHJhbnNsYXRpb24iOlswLDAuNTA5Mzc3MzYwMzQzOTMzMSwwXX0seyJuYW1lIjoiQm9uZS4wMDkiLCJyb3RhdGlvbiI6WzAuMDYzNDg0MjM2NTk4MDE0ODMsMC4wNDYwODUyOTA2MTA3OTAyNSwtMC42MjI1OTkzNjMzMjcwMjY0LDAuNzc4NTk4NzI1Nzk1NzQ1OF0sInNjYWxlIjpbMC45OTk5OTk5NDAzOTUzNTUyLDEsMV0sInRyYW5zbGF0aW9uIjpbMi44Mzc2MjM0Njk1MzE1MzZlLTA5LDAuOTg0NTgzMjU4NjI4ODQ1MiwtOC42ODU2NzQ0MDE5MzE0NjVlLTA5XX0seyJjaGlsZHJlbiI6WzldLCJuYW1lIjoiQm9uZS4wMDgiLCJyb3RhdGlvbiI6Wy0wLjAwNjgyMjA4NTAwODAyNTE2OSwtMi45NDcwMDM4NDk4NDAyNTczZS0wNSwtMC4wNTUwNjQyOTgyMTI1MjgyMywwLjk5ODQ1OTUxNzk1NTc4XSwic2NhbGUiOlswLjk5OTk5OTk0MDM5NTM1NTIsMC45OTk5OTk5NDAzOTUzNTUyLDFdLCJ0cmFuc2xhdGlvbiI6WzEuMjc0NzQ3Nzc0MDA0OTM2MmUtMDgsMS4wNzgxOTc1OTg0NTczMzY0LC0yLjQ5NTY1MzQ2MTY2NDkxNWUtMDldfSx7ImNoaWxkcmVuIjpbMTBdLCJuYW1lIjoiQm9uZS4wMDciLCJyb3RhdGlvbiI6WzAuOTk4Mzk2ODczNDc0MTIxMSwtMC4wNTMzMzgzMjY1MTM3NjcyNCwwLjAwMTIzMzAwMTEyMzE4MjQ3NTYsMC4wMTg4OTkyNjM4MTQwOTE2ODJdLCJzY2FsZSI6WzEuMDAwMDA0NTI5OTUzMDAzLDEsMS4wMDAwMDA1OTYwNDY0NDc4XSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMjcxMjE3MTA3NzcyODI3MSwtMC4yMzg0NzgyNzMxNTMzMDUwNV19LHsibmFtZSI6IkJvbmUuMDE1Iiwicm90YXRpb24iOlstMC4wMDA2MjEyNjY2NjMwNzQ0OTM0LDAuMDMzMTMzMDgyMDkxODA4MzIsLTAuNjI1ODI3MjUyODY0ODM3NiwwLjc3OTI1NzM1NzEyMDUxMzldLCJzY2FsZSI6WzEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMjM4NDE4NTc5LDEuMDAwMDAwMTE5MjA5Mjg5Nl0sInRyYW5zbGF0aW9uIjpbNy4zNjMyNjkxMDU1NTM2MjdlLTA5LDAuOTg0NTgzNjc1ODYxMzU4NiwtMS4wOTkwMzMzOTc2MjI0MDY1ZS0wOF19LHsiY2hpbGRyZW4iOlsxMl0sIm5hbWUiOiJCb25lLjAxNCIsInJvdGF0aW9uIjpbMC4wMDcwNDE1MDQxNDA5NDMyODksLTAuMDA0OTM4NzIyMTIyNDYwNjA0LC0wLjA1NTAzNjcwNDk4NzI4NzUyLDAuOTk4NDQ3Mjk5MDAzNjAxMV0sInNjYWxlIjpbMSwxLjAwMDAwMDExOTIwOTI4OTYsMC45OTk5OTk5NDAzOTUzNTUyXSwidHJhbnNsYXRpb24iOlstMS40MDg2MjUzOTQxMDU5MTEzZS0wOCwxLjA3ODE5NzU5ODQ1NzMzNjQsMi44NTc5OTYxNTA4NTEyNDk3ZS0wOF19LHsiY2hpbGRyZW4iOlsxM10sIm5hbWUiOiJCb25lLjAxMyIsInJvdGF0aW9uIjpbLTAuOTk4MzkyNDAzMTI1NzYyOSwwLjA1MzQyMjQyODY2NzU0NTMyLC0wLjAwMzIzOTczODA1NjQzNjE4MSwwLjAxODY2MDEwNTc2NDg2NTg3NV0sInNjYWxlIjpbMS4wMDAwMDQwNTMxMTU4NDQ3LDEsMS4wMDAwMDA0NzY4MzcxNTgyXSwidHJhbnNsYXRpb24iOlswLjAyMTY1MTk2ODM1OTk0NzIwNSwtMC4yMDY4NDgwODQ5MjY2MDUyMiwwLjIzMjk2NDQ1NjA4MTM5MDM4XX0seyJjaGlsZHJlbiI6WzgsMTEsMTRdLCJuYW1lIjoiQm9uZSJ9LHsibWVzaCI6MCwibmFtZSI6InBsYXllciIsInNraW4iOjB9LHsiY2hpbGRyZW4iOlsxNiwxNV0sIm5hbWUiOiJBcm1hdHVyZSIsInNjYWxlIjpbMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjksMC44MDAwMDAwMTE5MjA5MjldfV0sIm1hdGVyaWFscyI6W3siZG91YmxlU2lkZWQiOnRydWUsIm5hbWUiOiJNYXRlcmlhbCIsInBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvclRleHR1cmUiOnsiaW5kZXgiOjB9LCJtZXRhbGxpY0ZhY3RvciI6MH19XSwibWVzaGVzIjpbeyJuYW1lIjoiQ3ViZSIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjAsIk5PUk1BTCI6MSwiVEVYQ09PUkRfMCI6MiwiSk9JTlRTXzAiOjMsIldFSUdIVFNfMCI6NH0sImluZGljZXMiOjUsIm1hdGVyaWFsIjowfV19XSwidGV4dHVyZXMiOlt7InNhbXBsZXIiOjAsInNvdXJjZSI6MH1dLCJpbWFnZXMiOlt7ImJ1ZmZlclZpZXciOjYsIm1pbWVUeXBlIjoiaW1hZ2UvcG5nIiwibmFtZSI6InV2X2xheW91dCJ9XSwic2tpbnMiOlt7ImludmVyc2VCaW5kTWF0cmljZXMiOjYsImpvaW50cyI6WzE1LDgsMSwwLDQsMywyLDcsNiw1LDExLDEwLDksMTQsMTMsMTJdLCJuYW1lIjoiQXJtYXR1cmUifV0sImFjY2Vzc29ycyI6W3siYnVmZmVyVmlldyI6MCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE1OTAsIm1heCI6WzAuMzQ4MTI0MDI3MjUyMTk3MjcsMS42ODUzNjk0OTE1NzcxNDg0LDEuMzkzOTAwMzk0NDM5Njk3M10sIm1pbiI6Wy0wLjI1MjQ0MjcxNzU1MjE4NTA2LC0xLjkyMDg3ODA1MjcxMTQ4NjgsLTEuMzkzOTAwMzk0NDM5Njk3M10sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxNTkwLCJ0eXBlIjoiVkVDMiJ9LHsiYnVmZmVyVmlldyI6MywiY29tcG9uZW50VHlwZSI6NTEyMSwiY291bnQiOjE1OTAsInR5cGUiOiJWRUM0In0seyJidWZmZXJWaWV3Ijo0LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTU5MCwidHlwZSI6IlZFQzQifSx7ImJ1ZmZlclZpZXciOjUsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjoyNDEyLCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3Ijo3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTYsInR5cGUiOiJNQVQ0In1dLCJidWZmZXJWaWV3cyI6W3siYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxOTA4MCwiYnl0ZU9mZnNldCI6MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjE5MDgwLCJieXRlT2Zmc2V0IjoxOTA4MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjEyNzIwLCJieXRlT2Zmc2V0IjozODE2MCwidGFyZ2V0IjozNDk2Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjYzNjAsImJ5dGVPZmZzZXQiOjUwODgwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjU0NDAsImJ5dGVPZmZzZXQiOjU3MjQwLCJ0YXJnZXQiOjM0OTYyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgyNCwiYnl0ZU9mZnNldCI6ODI2ODAsInRhcmdldCI6MzQ5NjN9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxNjQwNzQsImJ5dGVPZmZzZXQiOjg3NTA0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MTAyNCwiYnl0ZU9mZnNldCI6MjUxNTgwfV0sInNhbXBsZXJzIjpbeyJtYWdGaWx0ZXIiOjk3MjgsIm1pbkZpbHRlciI6OTk4NH1dLCJidWZmZXJzIjpbeyJieXRlTGVuZ3RoIjoyNTI2MDR9XX282gMAQklOAKZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPqZawj21PIU/4vSVPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPrfLiT2kUBs9n2yUPr/CS76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ODQAADg0AAA4NAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQAKAA0ACgANAAoADQAKAA0OAAANDgAADQ4AAA0OAAANDgAADQ4AAA0OAAANDgAADQAAAA0AAAANAAAADQAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAHAgEABwIBAAcCAQAHAgEADQABAA0AAQANAAEADQABAAABDQAAAQ0AAAENAAABDQABAAcAAQAHAAEABwABAAcABwEAAAcBAAAHAQAABwEAAA0AAAANAAAADQAAAA0AAAANAAoADQAKAA0ACgANAAoADQAAAA0AAAANAAAADQAAAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAAAAAgAAAAIAAAACAAAAAgHAAAIBwAACAcAAAgHAAAIAAAACAAAAAgAAAAIAAAACAcAAAgHAAAIBwAACAcAAAcAAAAHAAAABwAAAAcAAAAHAQAABwEAAAcBAAAHAQAABwEAAAcBAAAHAQAABwEAAAcIAQAHCAEABwgBAAcIAQAHCAEABwgBAAcIAQAHCAEABwEAAAcBAAAHAQAABwEAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAgHAAAIBwAACAcAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAcIAAAHCAAABwgAAAIBAAACAQAAAgEAAAIBAAACBwEAAgcBAAIHAQACBwEAAgAAAAIAAAACAAAAAgAAAAIBBwACAQcAAgEHAAIBBwACAQcAAgEHAAIBBwACAQcAAA0BAAANAQAADQEAAA0BAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAEHAgABBwIAAQcCAAANAQAADQEAAA0BAAANAQAAAQAAAAEAAAABAAAAAQAAAQAHAAEABwABAAcAAQAHAAEHAgABBwIAAQcCAAEHAgAAAQ0AAAENAAABDQAAAQ0AAQAAAAEAAAABAAAAAQAAAAEHAgABBwIAAQcCAAEHAgABBwIADQAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgAADQoAAA0KAAANCgAADQoAAA0AAAANAAAADQAAAA0AAA4NAAAODQAADg0AAA4NAAAODQAADg0AAA4NAAAODQAADQAAAA0AAAANAAAADQAAAA0OAAANDgAADQ4AAA0OAAANAAAADQAAAA0AAAANAAAADQ4AAA0OAAANDgAADQ4AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAABBAcAAQQHAAEEBwABBAcAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAwIAAAMCAAADAgAAAwIAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIHAwACBwMAAgcDAAIHAwACAwEAAgMBAAIDAQACAwEAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgEDAAIBAwACAQMAAgEDAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADg8AAA4PAAAODwAADgAAAA4AAAAOAAAADgAAAA4PAAAODwAADg8AAA4PAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8OAAAPDgAADw4AAA8OAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADg8AAA4PAAAODwAADg8AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAA8OAAAPDgAADw4AAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEABAECAAQBAgAEAQIABAECAAQBAgAACgEAAAoBAAAKAQAACgEAAAEKBAABCgQAAQoEAAEKBAEEAAABBAAAAQQAAAEEAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAAAQAEAAEABAABAAQAAQAEAAABCgAAAQoAAAEKAAABCgAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAACgAAAAoAAAAKAAAACgAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoNAAAKDQAACg0AAAoNAAAKAA0ACgANAAoADQAKAA0ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAQCAQAEAgEABAIBAAQCAQAKAAEACgABAAoAAQAKAAEAAAEKAAABCgAAAQoAAAEKAAEABAABAAQAAQAEAAEABAAEAQAABAEAAAQBAAAEAQAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAALCgAACwoAAAsKAAALCgAACwoAAAsKAAALCgAACwoAAAsMAAALDAAACwwAAAsMAAAMCwAADAsAAAwLAAAMCwAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAFBAAABQQAAAUEAAAEAgAABAIAAAQCAAAEAgAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEAQAABAEAAAQBAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAAEBQAABAUAAAQFAAACBAEAAgQBAAIEAQACBAEAAgEEAAIBBAACAQQAAgEEAAIBBAACAQQAAgEEAAIBBAAACgEAAAoBAAAKAQAACgEAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAQQCAAEEAgABBAIAAAoBAAAKAQAACgEAAAoBAAABAAAAAQAAAAEAAAABAAABAAQAAQAEAAEABAABAAQAAQQCAAEEAgABBAIAAQQCAAABCgAAAQoAAAEKAAABCgABAAAAAQAAAAEAAAABAAAAAQQCAAEEAgABBAIAAQQCAAEEAgAKAA0ACgANAAoADQAKAA0ACgANAAoADQAKAA0ACgANAAAKDQAACg0AAAoNAAAKDQAACg0AAAoNAAAKDQAACg0ACgsAAAoLAAAKCwAACgsAAAoLAAAKCwAACgsAAAoLAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACwoAAAsKAAALCgAACwoAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAsAAAwLAAAMCwAADAsAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMEAAIDBAACAwQAAgMEAAIDAQACAwEAAgMBAAIDAQACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIBAwACAQMAAgEDAAIBAwACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAACAwAAAgMAAAIDAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAAAAAwAAAAMAAAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsMAAALDAAACwwAAAsMAAALAAAACwAAAAsAAAALAAAACwwAAAsMAAALDAAACwwAAAsAAAALAAAACwAAAAsAAAALDAAACwwAAAsMAAALDAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMCwAADAsAAAwLAAAMCwAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAsMAAALDAAACwwAAAsMAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAMCwAADAsAAAwLAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAANhxSz9wbjc+YlHWPAAAAADYcUs/cG43PmJR1jwAAAAA2HFLP3BuNz5iUdY8AAAAANhxSz9wbjc+YlHWPAAAAADYcUs/cG43PmJR1jwAAAAAGDsdPwtIvz6iOEg8AAAAABg7HT8LSL8+ojhIPAAAAAAYOx0/C0i/PqI4SDwAAAAAGDsdPwtIvz6iOEg8AAAAAKCCXj/XN/09bzLrOwAAAACggl4/1zf9PW8y6zsAAAAAoIJeP9c3/T1vMus7AAAAAKCCXj/XN/09bzLrOwAAAACggl4/1zf9PW8y6zsAAAAAwHw5Pyz3dT5UVxA9AAAAAMB8OT8s93U+VFcQPQAAAADAfDk/LPd1PlRXED0AAAAAwHw5Pyz3dT5UVxA9AAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAADIji0/GzmaPtNJLjwO4SY8yI4tPxs5mj7TSS48DuEmPMiOLT8bOZo+00kuPA7hJjzIji0/GzmaPtNJLjwO4SY8hWUuPx52WT6AAFs9wc5YPYVlLj8edlk+gABbPcHOWD2FZS4/HnZZPoAAWz3Bzlg9hWUuPx52WT6AAFs9wc5YPUfQXD8NP4o90ppIPUvFqzxH0Fw/DT+KPdKaSD1Lxas8R9BcPw0/ij3Smkg9S8WrPEfQXD8NP4o90ppIPUvFqzzO+E8/f3EePmRrrTzR3T88zvhPP39xHj5ka6080d0/PM74Tz9/cR4+ZGutPNHdPzzO+E8/f3EePmRrrTzR3T88xWIuP8uLMj4g6RM+AAAAAMViLj/LizI+IOkTPgAAAADFYi4/y4syPiDpEz4AAAAAxWIuP8uLMj4g6RM+AAAAAP0OUz8MxDM+AAAAAAAAAAD9DlM/DMQzPgAAAAAAAAAA/Q5TPwzEMz4AAAAAAAAAAP0OUz8MxDM+AAAAAAAAAAD9DlM/DMQzPgAAAAAAAAAAmqAgP8u+vj4AAAAAAAAAAJqgID/Lvr4+AAAAAAAAAACaoCA/y76+PgAAAAAAAAAAmqAgP8u+vj4AAAAAAAAAAJqgID/Lvr4+AAAAAAAAAABNSEI/kJkUPn2KxD0AAAAATUhCP5CZFD59isQ9AAAAAE1IQj+QmRQ+fYrEPQAAAABNSEI/kJkUPn2KxD0AAAAAq7xBPx90KT5oMp89AAAAAKu8QT8fdCk+aDKfPQAAAACrvEE/H3QpPmgynz0AAAAAq7xBPx90KT5oMp89AAAAANTJSz++jos913aLPcyrij3UyUs/vo6LPdd2iz3Mq4o91MlLP76Oiz3Xdos9zKuKPdTJSz++jos913aLPcyrij3s9GE/mljwPQAAAAAAAAAA7PRhP5pY8D0AAAAAAAAAAOz0YT+aWPA9AAAAAAAAAADs9GE/mljwPQAAAAAAAAAAxv9TP+gAMD4AAAAAAAAAAMb/Uz/oADA+AAAAAAAAAADG/1M/6AAwPgAAAAAAAAAAxv9TP+gAMD4AAAAAAAAAAEvwMz/HLR4+MCWTPeT8kD1L8DM/xy0ePjAlkz3k/JA9S/AzP8ctHj4wJZM95PyQPUvwMz/HLR4+MCWTPeT8kD1UwWE/dpbpPVHFMju9MLI6VMFhP3aW6T1RxTI7vTCyOlTBYT92luk9UcUyO70wsjpUwWE/dpbpPVHFMju9MLI6mLdxP4qGZD0AAAAAAAAAAJi3cT+KhmQ9AAAAAAAAAACYt3E/ioZkPQAAAAAAAAAAmLdxP4qGZD0AAAAAAAAAAEBm7D5p6pE+Vq+BPgAAAABAZuw+aeqRPlavgT4AAAAAQGbsPmnqkT5Wr4E+AAAAAEBm7D5p6pE+Vq+BPgAAAABAZuw+aeqRPlavgT4AAAAAQGbsPmnqkT5Wr4E+AAAAAAuaXz/SlwE+AAAAAAAAAAALml8/0pcBPgAAAAAAAAAAC5pfP9KXAT4AAAAAAAAAAAuaXz/SlwE+AAAAAAAAAAChCX0/15c9PAAAAAAAAAAAoQl9P9eXPTwAAAAAAAAAAKEJfT/Xlz08AAAAAAAAAAChCX0/15c9PAAAAAAAAAAAArMWP+x8kj4hOgA+AAAAAAKzFj/sfJI+IToAPgAAAAACsxY/7HySPiE6AD4AAAAAArMWP+x8kj4hOgA+AAAAAAKzFj/sfJI+IToAPgAAAAACsxY/7HySPiE6AD4AAAAAChVFP9araz4AAAAAAAAAAAoVRT/Wq2s+AAAAAAAAAAAKFUU/1qtrPgAAAAAAAAAAChVFP9araz4AAAAAAAAAAFarOz+bSCU+FhTYPQAAAABWqzs/m0glPhYU2D0AAAAAVqs7P5tIJT4WFNg9AAAAAFarOz+bSCU+FhTYPQAAAABrFyo/K9GrPgAAAAAAAAAAaxcqPyvRqz4AAAAAAAAAAGsXKj8r0as+AAAAAAAAAABrFyo/K9GrPgAAAAAAAAAAA3dVP0F2sD2q0aM9AAAAAAN3VT9BdrA9qtGjPQAAAAADd1U/QXawParRoz0AAAAAA3dVP0F2sD2q0aM9AAAAACH2BD+9E/Y+AAAAAAAAAAAh9gQ/vRP2PgAAAAAAAAAAIfYEP70T9j4AAAAAAAAAACH2BD+9E/Y+AAAAAAAAAAAq4gY/rTvyPgAAAAAAAAAAKuIGP6078j4AAAAAAAAAACriBj+tO/I+AAAAAAAAAAAq4gY/rTvyPgAAAAAAAAAAS8JtP6ztkT0AAAAAAAAAAEvCbT+s7ZE9AAAAAAAAAABLwm0/rO2RPQAAAAAAAAAAS8JtP6ztkT0AAAAAAAAAAIxbbD+jI509AAAAAAAAAACMW2w/oyOdPQAAAAAAAAAAjFtsP6MjnT0AAAAAAAAAAIxbbD+jI509AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAII5+PxnwuDsAAAAAAAAAACCOfj8Z8Lg7AAAAAAAAAAAgjn4/GfC4OwAAAAAAAAAAII5+PxnwuDsAAAAAAAAAAIgNdz+CJw89AAAAAAAAAACIDXc/gicPPQAAAAAAAAAAiA13P4InDz0AAAAAAAAAAIgNdz+CJw89AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAARk1uPwTQbD2tbjk8AAAAAEZNbj8E0Gw9rW45PAAAAABGTW4/BNBsPa1uOTwAAAAARk1uPwTQbD2tbjk8AAAAAHT3dj/LiBA9AAAAAAAAAAB093Y/y4gQPQAAAAAAAAAAdPd2P8uIED0AAAAAAAAAAHT3dj/LiBA9AAAAAAAAAACdCno/Vqy+PAAAAAAAAAAAnQp6P1asvjwAAAAAAAAAAJ0Kej9WrL48AAAAAAAAAACdCno/Vqy+PAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAACjLFQ/c00vPgAAAAAAAAAAoyxUP3NNLz4AAAAAAAAAAKMsVD9zTS8+AAAAAAAAAACjLFQ/c00vPgAAAAAAAAAAz7ZsP4ZJmj0AAAAAAAAAAM+2bD+GSZo9AAAAAAAAAADPtmw/hkmaPQAAAAAAAAAAz7ZsP4ZJmj0AAAAAAAAAAOgjXD9gcA8+AAAAAAAAAADoI1w/YHAPPgAAAAAAAAAA6CNcP2BwDz4AAAAAAAAAAOgjXD9gcA8+AAAAAAAAAADoI1w/YHAPPgAAAAAAAAAAdaNVPytyKT4AAAAAAAAAAHWjVT8rcik+AAAAAAAAAAB1o1U/K3IpPgAAAAAAAAAAdaNVPytyKT4AAAAAAAAAAHWjVT8rcik+AAAAAAAAAABWLVg/H3XzPXBAFj0AAAAAVi1YPx918z1wQBY9AAAAAFYtWD8fdfM9cEAWPQAAAABWLVg/H3XzPXBAFj0AAAAAtkMEP5Qn9T4SQJQ7AAAAALZDBD+UJ/U+EkCUOwAAAAC2QwQ/lCf1PhJAlDsAAAAAtkMEP5Qn9T4SQJQ7AAAAAFg5Qz8jfiI+9jihPQAAAABYOUM/I34iPvY4oT0AAAAAWDlDPyN+Ij72OKE9AAAAAFg5Qz8jfiI+9jihPQAAAADBkjA/HEE2PtxzBz4AAAAAwZIwPxxBNj7ccwc+AAAAAMGSMD8cQTY+3HMHPgAAAADBkjA/HEE2PtxzBz4AAAAAYl9CP1blWz4X6dQ8AAAAAGJfQj9W5Vs+F+nUPAAAAABiX0I/VuVbPhfp1DwAAAAAYl9CP1blWz4X6dQ8AAAAAEBNYz8GluU9AAAAAAAAAABATWM/BpblPQAAAAAAAAAAQE1jPwaW5T0AAAAAAAAAAEBNYz8GluU9AAAAAAAAAADK1S4/zL0zPgvrED4AAAAAytUuP8y9Mz4L6xA+AAAAAMrVLj/MvTM+C+sQPgAAAADK1S4/zL0zPgvrED4AAAAA25g8P0vOhj4AAAAAAAAAANuYPD9LzoY+AAAAAAAAAADbmDw/S86GPgAAAAAAAAAA25g8P0vOhj4AAAAAAAAAACuFXz9V6wE+AAAAAAAAAAArhV8/VesBPgAAAAAAAAAAK4VfP1XrAT4AAAAAAAAAACuFXz9V6wE+AAAAAAAAAAApEVo/XLsXPgAAAAAAAAAAKRFaP1y7Fz4AAAAAAAAAACkRWj9cuxc+AAAAAAAAAAApEVo/XLsXPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAMQpdz/AYw09AAAAAAAAAADEKXc/wGMNPQAAAAAAAAAAxCl3P8BjDT0AAAAAAAAAAMQpdz/AYw09AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAzUFwPzrjez0AAAAAAAAAAM1BcD8643s9AAAAAAAAAADNQXA/OuN7PQAAAAAAAAAAzUFwPzrjez0AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAENJNP8C3SD4AAAAAAAAAABDSTT/At0g+AAAAAAAAAAAQ0k0/wLdIPgAAAAAAAAAAENJNP8C3SD4AAAAAAAAAAANLKj/8aas+AAAAAAAAAAADSyo//GmrPgAAAAAAAAAAA0sqP/xpqz4AAAAAAAAAAANLKj/8aas+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAECxcD8M7HQ9AAAAAAAAAABAsXA/DOx0PQAAAAAAAAAAQLFwPwzsdD0AAAAAAAAAAECxcD8M7HQ9AAAAAAAAAACZnWY/NxPLPQAAAAAAAAAAmZ1mPzcTyz0AAAAAAAAAAJmdZj83E8s9AAAAAAAAAACZnWY/NxPLPQAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAFomaD8uzb49AAAAAAAAAABaJmg/Ls2+PQAAAAAAAAAAWiZoPy7Nvj0AAAAAAAAAAFomaD8uzb49AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAa6xwP0s5dT0AAAAAAAAAAGuscD9LOXU9AAAAAAAAAABrrHA/Szl1PQAAAAAAAAAAa6xwP0s5dT0AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAACAk3c/AMgGPQAAAAAAAAAAgJN3PwDIBj0AAAAAAAAAAICTdz8AyAY9AAAAAAAAAACAk3c/AMgGPQAAAAAAAAAAzct/P2TLUDoAAAAAAAAAAM3Lfz9ky1A6AAAAAAAAAADNy38/ZMtQOgAAAAAAAAAAzct/P2TLUDoAAAAAAAAAAEjFbD9JDWE9fzylPAAAAABIxWw/SQ1hPX88pTwAAAAASMVsP0kNYT1/PKU8AAAAAEjFbD9JDWE9fzylPAAAAADSd2w/7H9RPfwFzjwAAAAA0ndsP+x/UT38Bc48AAAAANJ3bD/sf1E9/AXOPAAAAADSd2w/7H9RPfwFzjwAAAAAqpBwP2L1dj0AAAAAAAAAAKqQcD9i9XY9AAAAAAAAAACqkHA/YvV2PQAAAAAAAAAAqpBwP2L1dj0AAAAAAAAAAJ3iBT/GOvQ+AAAAAAAAAACd4gU/xjr0PgAAAAAAAAAAneIFP8Y69D4AAAAAAAAAAJ3iBT/GOvQ+AAAAAAAAAABeSl8/idYCPgAAAAAAAAAAXkpfP4nWAj4AAAAAAAAAAF5KXz+J1gI+AAAAAAAAAABeSl8/idYCPgAAAAAAAAAA2DJbP580Ez4AAAAAAAAAANgyWz+fNBM+AAAAAAAAAADYMls/nzQTPgAAAAAAAAAA2DJbP580Ez4AAAAAAAAAAGBfUz9/gjI+AAAAAAAAAABgX1M/f4IyPgAAAAAAAAAAYF9TP3+CMj4AAAAAAAAAAGBfUz9/gjI+AAAAAAAAAACiV1A/eaE+PgAAAAAAAAAAoldQP3mhPj4AAAAAAAAAAKJXUD95oT4+AAAAAAAAAACiV1A/eaE+PgAAAAAAAAAAWy9gPyaF/j0AAAAAAAAAAFsvYD8mhf49AAAAAAAAAABbL2A/JoX+PQAAAAAAAAAAWy9gPyaF/j0AAAAAAAAAAIodbD+wE589AAAAAAAAAACKHWw/sBOfPQAAAAAAAAAAih1sP7ATnz0AAAAAAAAAAIodbD+wE589AAAAAAAAAAAB/2k/WZeSPeSEazwAAAAAAf9pP1mXkj3khGs8AAAAAAH/aT9Zl5I95IRrPAAAAAAB/2k/WZeSPeSEazwAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAPiEYj9wwIw9qC8+PQAAAAD4hGI/cMCMPagvPj0AAAAA+IRiP3DAjD2oLz49AAAAAPiEYj9wwIw9qC8+PQAAAACx4W8/lLxuPVdDmTsAAAAAseFvP5S8bj1XQ5k7AAAAALHhbz+UvG49V0OZOwAAAACx4W8/lLxuPVdDmTsAAAAAt9toPxwLtj3WysU6AAAAALfbaD8cC7Y91srFOgAAAAC322g/HAu2PdbKxToAAAAAt9toPxwLtj3WysU6AAAAAMQV4D57G5Q+w86LPgAAAADEFeA+exuUPsPOiz4AAAAAxBXgPnsblD7Dzos+AAAAAMQV4D57G5Q+w86LPgAAAADEFeA+exuUPsPOiz4AAAAALwy+Ptyhoz72UZ4+AAAAAC8Mvj7coaM+9lGePgAAAAAvDL4+3KGjPvZRnj4AAAAALwy+Ptyhoz72UZ4+AAAAAP0pWD9Swhk+ILeyOwAAAAD9KVg/UsIZPiC3sjsAAAAA/SlYP1LCGT4gt7I7AAAAAP0pWD9Swhk+ILeyOwAAAAAbiGY/Lr/LPQAAAAAAAAAAG4hmPy6/yz0AAAAAAAAAABuIZj8uv8s9AAAAAAAAAAAbiGY/Lr/LPQAAAAAAAAAA/XZGP7cP8j1hONo9AAAAAP12Rj+3D/I9YTjaPQAAAAD9dkY/tw/yPWE42j0AAAAA/XZGP7cP8j1hONo9AAAAAJi5JD/MnY4+DryfPQAAAACYuSQ/zJ2OPg68nz0AAAAAmLkkP8ydjj4OvJ89AAAAAJi5JD/MnY4+DryfPQAAAACkXVg/ylAMPkvFkTwAAAAApF1YP8pQDD5LxZE8AAAAAKRdWD/KUAw+S8WRPAAAAACkXVg/ylAMPkvFkTwAAAAAwLBdPwE9CT4AAAAAAAAAAMCwXT8BPQk+AAAAAAAAAADAsF0/AT0JPgAAAAAAAAAAwLBdPwE9CT4AAAAAAAAAADHnHD9MhcA+IIo1PAAAAAAx5xw/TIXAPiCKNTwAAAAAMeccP0yFwD4gijU8AAAAADHnHD9MhcA+IIo1PAAAAAAx5xw/TIXAPiCKNTwAAAAAxsovPziKbT5klaY9AAAAAMbKLz84im0+ZJWmPQAAAADGyi8/OIptPmSVpj0AAAAAxsovPziKbT5klaY9AAAAACsKYD+5rME9uAf4PAAAAAArCmA/uazBPbgH+DwAAAAAKwpgP7mswT24B/g8AAAAACsKYD+5rME9uAf4PAAAAACoa0I/M7ZBPrhsUj0AAAAAqGtCPzO2QT64bFI9AAAAAKhrQj8ztkE+uGxSPQAAAACoa0I/M7ZBPrhsUj0AAAAAPs8sP4Vhpj4AAAAAAAAAAD7PLD+FYaY+AAAAAAAAAAA+zyw/hWGmPgAAAAAAAAAAPs8sP4Vhpj4AAAAAAAAAAFJDAT9cef0+AAAAAAAAAABSQwE/XHn9PgAAAAAAAAAAUkMBP1x5/T4AAAAAAAAAAFJDAT9cef0+AAAAAAAAAABPY2w/iuWcPQAAAAAAAAAAT2NsP4rlnD0AAAAAAAAAAE9jbD+K5Zw9AAAAAAAAAABPY2w/iuWcPQAAAAAAAAAACtJ9P3d9CzwAAAAAAAAAAArSfT93fQs8AAAAAAAAAAAK0n0/d30LPAAAAAAAAAAACtJ9P3d9CzwAAAAAAAAAAG/Ffj++SJ07AAAAAAAAAABvxX4/vkidOwAAAAAAAAAAb8V+P75InTsAAAAAAAAAAG/Ffj++SJ07AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAm8p4P5Cs5jwAAAAAAAAAAJvKeD+QrOY8AAAAAAAAAACbyng/kKzmPAAAAAAAAAAAm8p4P5Cs5jwAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAathuP608iT0AAAAAAAAAAGrYbj+tPIk9AAAAAAAAAABq2G4/rTyJPQAAAAAAAAAAathuP608iT0AAAAAAAAAAOXpYj/gsOg9AAAAAAAAAADl6WI/4LDoPQAAAAAAAAAA5eliP+Cw6D0AAAAAAAAAAOXpYj/gsOg9AAAAAAAAAACjuX0/O5cRPAAAAAAAAAAAo7l9PzuXETwAAAAAAAAAAKO5fT87lxE8AAAAAAAAAACjuX0/O5cRPAAAAAAAAAAAMOFnP332wD0AAAAAAAAAADDhZz999sA9AAAAAAAAAAAw4Wc/ffbAPQAAAAAAAAAAMOFnP332wD0AAAAAAAAAANCbTD+/kE0+AAAAAAAAAADQm0w/v5BNPgAAAAAAAAAA0JtMP7+QTT4AAAAAAAAAANCbTD+/kE0+AAAAAAAAAAD5Vl0/5UqLPVX9iT0AAAAA+VZdP+VKiz1V/Yk9AAAAAPlWXT/lSos9Vf2JPQAAAAD5Vl0/5UqLPVX9iT0AAAAAjc58P9VcTDwAAAAAAAAAAI3OfD/VXEw8AAAAAAAAAACNznw/1VxMPAAAAAAAAAAAjc58P9VcTDwAAAAAAAAAAPqqaj8uqKo9AAAAAAAAAAD6qmo/LqiqPQAAAAAAAAAA+qpqPy6oqj0AAAAAAAAAAPqqaj8uqKo9AAAAAAAAAAAw4mo/fe6oPQAAAAAAAAAAMOJqP33uqD0AAAAAAAAAADDiaj997qg9AAAAAAAAAAAw4mo/fe6oPQAAAAAAAAAAMOJqP33uqD0AAAAAAAAAALsTbz8tYoc9AAAAAAAAAAC7E28/LWKHPQAAAAAAAAAAuxNvPy1ihz0AAAAAAAAAALsTbz8tYoc9AAAAAAAAAACRvHo/022oPAAAAAAAAAAAkbx6P9NtqDwAAAAAAAAAAJG8ej/Tbag8AAAAAAAAAACRvHo/022oPAAAAAAAAAAAkbx6P9NtqDwAAAAAAAAAALtvGD+LIM8+AAAAAAAAAAC7bxg/iyDPPgAAAAAAAAAAu28YP4sgzz4AAAAAAAAAANrQEz9MXtg+AAAAAAAAAADa0BM/TF7YPgAAAAAAAAAA2tATP0xe2D4AAAAAAAAAAGl4DT8uD+U+AAAAAAAAAABpeA0/Lg/lPgAAAAAAAAAAaXgNPy4P5T4AAAAAAAAAAGl4DT8uD+U+AAAAAAAAAABRji4/XuOiPgAAAAAAAAAAUY4uP17joj4AAAAAAAAAAFGOLj9e46I+AAAAAAAAAABRji4/XuOiPgAAAAAAAAAA5OEGPzk88j4AAAAAAAAAAOThBj85PPI+AAAAAAAAAADk4QY/OTzyPgAAAAAAAAAA5OEGPzk88j4AAAAAAAAAAGW0MT82l5w+AAAAAAAAAABltDE/NpecPgAAAAAAAAAAZbQxPzaXnD4AAAAAAAAAAGW0MT82l5w+AAAAAAAAAAAlkw0/ttnkPgAAAAAAAAAAJZMNP7bZ5D4AAAAAAAAAACWTDT+22eQ+AAAAAAAAAAAlkw0/ttnkPgAAAAAAAAAAyqwsP2ympj4AAAAAAAAAAMqsLD9spqY+AAAAAAAAAADKrCw/bKamPgAAAAAAAAAAyqwsP2ympj4AAAAAAAAAAHUkLz8Xt6E+AAAAAAAAAAB1JC8/F7ehPgAAAAAAAAAAdSQvPxe3oT4AAAAAAAAAAHUkLz8Xt6E+AAAAAAAAAADJjjI/b+KaPgAAAAAAAAAAyY4yP2/imj4AAAAAAAAAAMmOMj9v4po+AAAAAAAAAADJjjI/b+KaPgAAAAAAAAAA6Bo3PzLKkT4AAAAAAAAAAOgaNz8yypE+AAAAAAAAAADoGjc/MsqRPgAAAAAAAAAA6Bo3PzLKkT4AAAAAAAAAANiaRD+ilG0+AAAAAAAAAADYmkQ/opRtPgAAAAAAAAAA2JpEP6KUbT4AAAAAAAAAANiaRD+ilG0+AAAAAAAAAAD8MkI/EjR3PgAAAAAAAAAA/DJCPxI0dz4AAAAAAAAAAPwyQj8SNHc+AAAAAAAAAAD8MkI/EjR3PgAAAAAAAAAALM1QP1DLPD4AAAAAAAAAACzNUD9Qyzw+AAAAAAAAAAAszVA/UMs8PgAAAAAAAAAALM1QP1DLPD4AAAAAAAAAAM2USD/MrF0+AAAAAAAAAADNlEg/zKxdPgAAAAAAAAAAzZRIP8ysXT4AAAAAAAAAAM2USD/MrF0+AAAAAAAAAABis0M/dzJxPgAAAAAAAAAAYrNDP3cycT4AAAAAAAAAAGKzQz93MnE+AAAAAAAAAABis0M/dzJxPgAAAAAAAAAAQwQkP3n3tz4AAAAAAAAAAEMEJD9597c+AAAAAAAAAABDBCQ/efe3PgAAAAAAAAAAQwQkP3n3tz4AAAAAAAAAAGvVIj8rVbo+AAAAAAAAAABr1SI/K1W6PgAAAAAAAAAAa9UiPytVuj4AAAAAAAAAAGvVIj8rVbo+AAAAAAAAAADN/h0/ZwLEPgAAAAAAAAAAzf4dP2cCxD4AAAAAAAAAAM3+HT9nAsQ+AAAAAAAAAADN/h0/ZwLEPgAAAAAAAAAAIVEdP75dxT4AAAAAAAAAACFRHT++XcU+AAAAAAAAAAAhUR0/vl3FPgAAAAAAAAAAIVEdP75dxT4AAAAAAAAAAFZ7IT9TCb0+AAAAAAAAAABWeyE/Uwm9PgAAAAAAAAAAVnshP1MJvT4AAAAAAAAAAFZ7IT9TCb0+AAAAAAAAAACmq1w/ZlENPgAAAAAAAAAApqtcP2ZRDT4AAAAAAAAAAKarXD9mUQ0+AAAAAAAAAACmq1w/ZlENPgAAAAAAAAAA+KZfPyBkAT4AAAAAAAAAAPimXz8gZAE+AAAAAAAAAAD4pl8/IGQBPgAAAAAAAAAA+KZfPyBkAT4AAAAAAAAAAI7lZD+P09g9AAAAAAAAAACO5WQ/j9PYPQAAAAAAAAAAjuVkP4/T2D0AAAAAAAAAAI7lZD+P09g9AAAAAAAAAABkbF8/ck4CPgAAAAAAAAAAZGxfP3JOAj4AAAAAAAAAAGRsXz9yTgI+AAAAAAAAAABkbF8/ck4CPgAAAAAAAAAASuZhP7LN8D0AAAAAAAAAAErmYT+yzfA9AAAAAAAAAABK5mE/ss3wPQAAAAAAAAAASuZhP7LN8D0AAAAAAAAAACFSfT/qaa07C4apOwAAAAAhUn0/6mmtOwuGqTsAAAAAIVJ9P+pprTsLhqk7AAAAACFSfT/qaa07C4apOwAAAACJOHg/7S2JPMqBXzwAAAAAiTh4P+0tiTzKgV88AAAAAIk4eD/tLYk8yoFfPAAAAACJOHg/7S2JPMqBXzwAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAArTh2PxgZsTxq0Yc8AAAAAK04dj8YGbE8atGHPAAAAACtOHY/GBmxPGrRhzwAAAAArTh2PxgZsTxq0Yc8AAAAALwfdj+7MLE8zteKPAAAAAC8H3Y/uzCxPM7XijwAAAAAvB92P7swsTzO14o8AAAAALwfdj+7MLE8zteKPAAAAACDYFU/9H0qPgAAAAAAAAAAg2BVP/R9Kj4AAAAAAAAAAINgVT/0fSo+AAAAAAAAAACDYFU/9H0qPgAAAAAAAAAAsgdbPznhEz4AAAAAAAAAALIHWz854RM+AAAAAAAAAACyB1s/OeETPgAAAAAAAAAAsgdbPznhEz4AAAAAAAAAAB5EWz+I7xI+AAAAAAAAAAAeRFs/iO8SPgAAAAAAAAAAHkRbP4jvEj4AAAAAAAAAAB5EWz+I7xI+AAAAAAAAAACl5Vg/a2kcPgAAAAAAAAAApeVYP2tpHD4AAAAAAAAAAKXlWD9raRw+AAAAAAAAAACl5Vg/a2kcPgAAAAAAAAAAW6haP5JeFT4AAAAAAAAAAFuoWj+SXhU+AAAAAAAAAABbqFo/kl4VPgAAAAAAAAAAW6haP5JeFT4AAAAAAAAAAOD/Rz9+AGA+AAAAAAAAAADg/0c/fgBgPgAAAAAAAAAA4P9HP34AYD4AAAAAAAAAAOysbT+hmJI9AAAAAAAAAADsrG0/oZiSPQAAAAAAAAAA7KxtP6GYkj0AAAAAAAAAAOysbT+hmJI9AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAABcpnE/QJplPQAAAAAAAAAAXKZxP0CaZT0AAAAAAAAAAFymcT9AmmU9AAAAAAAAAABcpnE/QJplPQAAAAAAAAAA+zNVPxQwKz4AAAAAAAAAAPszVT8UMCs+AAAAAAAAAAD7M1U/FDArPgAAAAAAAAAAmKlfP55ZAT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAA8ItlP4mg0z0AAAAAAAAAAPCLZT+JoNM9AAAAAAAAAADwi2U/iaDTPQAAAAAAAAAA8ItlP4mg0z0AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAIWpwP/ZdeT0AAAAAAAAAACFqcD/2XXk9AAAAAAAAAAAhanA/9l15PQAAAAAAAAAAIWpwP/ZdeT0AAAAAAAAAALPufz8vaoo5AAAAAAAAAACz7n8/L2qKOQAAAAAAAAAAs+5/Py9qijkAAAAAAAAAALPufz8vaoo5AAAAAAAAAAB9FW8/E1SHPQAAAAAAAAAAfRVvPxNUhz0AAAAAAAAAAH0Vbz8TVIc9AAAAAAAAAAB9FW8/E1SHPQAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAA4SYT+Lb/c9AAAAAAAAAAAOEmE/i2/3PQAAAAAAAAAADhJhP4tv9z0AAAAAAAAAAA4SYT+Lb/c9AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAMsAdz9M8w89AAAAAAAAAADLAHc/TPMPPQAAAAAAAAAAywB3P0zzDz0AAAAAAAAAAMsAdz9M8w89AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAA8NQDPyFW+D4AAAAAAAAAAPDUAz8hVvg+AAAAAAAAAADw1AM/IVb4PgAAAAAAAAAA8NQDPyFW+D4AAAAAAAAAAJd0Bz/SFvE+AAAAAAAAAACXdAc/0hbxPgAAAAAAAAAAl3QHP9IW8T4AAAAAAAAAAJ8FBD/D9Pc+AAAAAAAAAACfBQQ/w/T3PgAAAAAAAAAAnwUEP8P09z4AAAAAAAAAALArFT+hqNU+AAAAAAAAAACwKxU/oajVPgAAAAAAAAAAsCsVP6Go1T4AAAAAAAAAAAmLFj/t6dI+AAAAAAAAAAAJixY/7enSPgAAAAAAAAAACYsWP+3p0j4AAAAAAAAAABeDCD/R+e4+AAAAAAAAAAAXgwg/0fnuPgAAAAAAAAAAF4MIP9H57j4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+a1jw+tc8EPQAAAABefUg/mtY8PrXPBD0AAAAAXn1IP5rWPD61zwQ9AAAAAF59SD+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rAMIBqwDcAc4BngB7AM4BewDDAf8AkQCFAP8AhQDvAPgAoAB8APgAfADsAOAAWgClAOAApQD1APQApAChAPQAoQD5AOMAYwCUAOMAlAD6APsAlQCQAPsAkAD+ALIBVwCaALIBmgDKAcwBmwCfAMwBnwDQAbcBYQCKALcBigDSAdMBiwCOANMBjgDWAeYC0gLHAOYCxwAPAe4AhAC1AO4AtQAHAe0AfQCsAO0ArAAEAckBgwCyAMkBsgDfARgDuAAQARABtgIWAxABFgMYA+QC2gK9AOQCvQANAe4C4ALDAO4CwwDoAeoC2AK7AOoCuwDjAd8C4wILAd8CCwHBAK4CswIAA64CAAMGA4AA6gADAYAAAwGxAHgA8AAJAXgACQGpANYC6AIRAdYCEQG5AJkA/QAAAZkAAAGcAFUA5QD8AFUA/ACYAIkA8wD2AIkA9gCMAF8A3wDyAF8A8gCIAI0A9wDrAI0A6wCBAJ0AAQHxAJ0A8QB5AAUAzgDnAAUA5wBpAGgA5gDeAGgA3gBeADQALwDaADQA2gDWADgANQDXADgA1wDSAAYAOQDTAAYA0wDPADIBLAEXATIBFwEdAXsBgQEJAHsBCQDMACgBIwEsAygBLAMxAxgBFAEeAxgBHgMiAzkBMQEaATkBGgEeATQBPgErATQBKwETATwBQAEkATwBJAEpAUMBOwEiAUMBIgEmAWoBcgE6AWoBOgFCAWUBaQFBAWUBQQE9AWABZgE/AWABPwE1AXABbAEwAXABMAE4AW8BXQEtAW8BLQEzAV4BYgE3AV4BNwEvAQwALQBTAQwAUwFPAc0ACgBNAc0ATQFHAQEAywBFAQEARQFJASsA3QBXASsAVwFRAdsAMABZAdsAWQFVATMABABKATMASgFaAU4BUgFjAU4BYwFfAUYBTAFcAUYBXAFuAUgBRAFtAUgBbQFxAVABVgFnAVABZwFhAVQBWAFoAVQBaAFkAVsBSwFzAVsBcwFrAewBfAGIAuwBiAKFAo0B6gGGAY0BhgECAJIB7wF0AZIBdAEaAAAAhQF5AQAAeQHKAAsAggHuAQsA7gGRARYA8gGMAYcB6wGEAocBhAKBAsAACgGnAsAApwKqAtwC7ALkAdwC5AG+ANQC7wLpAdQC6QHJAKgCDAG8ALwADwMTA7wAEwOoAoYAxgHeAYYA3gG2AJcA1QHZAZcA2QGTAGYAuQHUAWYA1AGWAKcAzQHRAacA0QGjAFwAswHLAVwAywGmAKIAzwHFAaIAxQF/AH4AxAHdAX4A3QGvAB4AlQG/AR4AvwFsABEAiQG7AREAuwFzAHIAugG0AXIAtAFdAJIA1wHHAZIAxwGHAEIA9gGwAUIAsAGsAUQAQACrAUQAqwGmASAARgCnASAApwGXASkALAChASkAoQGeASUAKACdASUAnQGaARAAJACZARAAmQGIAS4ADQCUAS4AlAGkATwAGACOATwAjgGuAW4AwQG4AW4AuAFkAJAB9QF/AZABfwHtAbEB+AE+AHYB8QGNAnYBjQKQAnoCeAIKAnoCCgIEAncCfwILAncCCwIHAvABgwF9AvABfQKLAlcCGQISAlcCEgJQAkMCKwIcAkMCHAI8AjoCGgIuAjoCLgJGAk8CEAIeAk8CHgJbAlwCIQIUAlwCFAJSAkgCMAIiAkgCIgI+AkECJAIzAkECMwJNAlQCFQIpAlQCKQJfAhMCIAI5AhMCOQInAh8CEQIXAh8CFwI3ApkCQAJLApkCSwKlAqACSQI/AqACPwKWApMCOwJHApMCRwKfApsCRQI9ApsCPQKUAiUCVQJhAiUCYQI1AjECXQJTAjECUwIjAhsCTgJaAhsCWgIvAi0CWQJRAi0CUQIdAgMC/wFnAgMCZwJkAg4CCQJwAg4CcAJqAggCAgJjAggCYwJvAv0BDwJrAv0BawJzAngBhAF+AngBfgJ2AoABegF5AoABeQJ7AmkCnQKVAmkClQJlAoACgwINAoIChgL6AYIC+gEMAo4CjAIGAo4CBgIAAooCfAIFAmICkgKeAmICngJuAnECoQKXAnEClwJsAm0CmAKjAm0CowJ1ArcCrQKpArcCqQKmAuIBugAaA+IBGgMKAwwDtwKmAgwDpgISA7QCsAKtArQCrQK3AsQArAL1AsQA9QL9AhUDtAK3AhUDtwIMAw4BxgCyAg4BsgK1AroCwAK8AroCvALCArECxQADA7ECAwP/AqsCrwIHA6sCBwPzAsgCuwLDAsgCwwLQAuYBwgD7AuYB+wL4As0CywLHAs0CxwLPAsgA5wH5AsgA+QIEA7cA4QHxArcA8QLVAq4A2wHtAq4A7QLdAqgACAHpAqgA6QLXArAAAgHiArAA4gLeAtoBqgDZAtoB2QLrAuABswDhAuAB4QLwAgUBrQDbAgUB2wLlAgYBtADTAgYB0wLnAvICBQPEAvICxAK9AsUCBgMAAwADzgLRAgAD0QLFAvcC+gK/AvcCvwK5AvwC9AK+AvwCvgLBAv4CAQPJAv4CyQLMAsoCAgP2AvYCuALGAvYCxgLKAg4DFAMQAw4DEAMJAxcDDQMIAxcDCAMZA78A5QELA78ACwMRAxsDMwNIAxsDSAM2AzIDLQNCAzIDQgNFAxIBKgE0AxIBNAMcAxwBFgEgAxwBIAMmAx8BGwEkAx8BJAMoAzADJwFPAzADTwNWA0YDPAM5A0YDOQM1A0MDPwM9A0MDPQNHAyMDHwM4AyMDOAM7AykDJQM+AykDPgNAAy8DKwNBAy8DQQNEAyEDHQM3AyEDNwM6A1gDUANeA1gDXgNkAycDLgNVAycDVQNRAyABKgNSAyABUgNJAyUBIQFKAyUBSgNNA10DWwNgA10DYANiA04DTANaA04DWgNcA0sDUwNfA0sDXwNZA1QDVwNjA1QDYwNhA1MEPgQ6BFMEOgRbBNsE0wSXA9sElwObA8wEhwNoA8wEaAOsBMAESwAdAMAEHQCwBKcEEwBTAKcEUwC5BLgEUQBNALgETQC8BL0ETwBJAL0ESQC/BLUEbQOQA7UEkAPFBMIEjwOMA8IEjAPHBMYEiwOGA8YEhgPKBPkDcwN3A/kDdwP9A/4DeAN8A/4DfAMCBAEEewN/AwEEfwMFBPUE5QSrA/UEqwO4Aw4ECgSSAw4EkgOeA9oE0gRZANoEWQB3AKgE2QR0AKgEdAAUAPoDDQSdA/oDnQN0A7ME3QScA7MEnANsA98E+QTUA98E1AOjA+sE4ASkA+sEpAPHAyQEFASuAyQErgO6Ax0EEQSlAx0EpQPJAwkEGgTOAwkEzgORAxkEHgTKAxkEygPNA+IAHwS9A+IAvQNiACAEIwS5AyAEuQO+A88E5wTDA88EwwNWAOkE7QTIA+kEyAPEA9QE7wSzA9QEswOYA/AE8wS3A/AEtwO0A7cFNATwA7cF8AOjBRMELATeAxME3gOtAxIEKQTVAxIE1QOmA+YE/ATbA+YE2wOsAzUE4QPpBekF5wWHBekFhwU1BLUFMgTmA7UF5gOrBb8FBQXsA78F7AOxBbsFAAXkA7sF5AOpBbAF6gMwBLAFMAS0BX8F1wXRBX8F0QWEBakD2gMoBKkDKAQPBKED0gMuBKEDLgQVBKcF4gM2BKcFNgS5BcIDxQMlBMIDJQQiBFQAwQMhBFQAIQTkALIDtQMbBLIDGwQYBJYDsQMXBJYDFwQIBLYDqgMQBLYDEAQcBMYDogMWBMYDFgQmBGoDmgMMBGoDDAT3A5kDlQMHBJkDBwQLBIkD/wMDBIkDAwSEA40D+wMABI0DAASKA2sD+AP8A2sD/AOOA1cEQgQ8BFcEPARRBJwE9QNuA5wEbgOeBE0EAgb9BU0E/QVIBD0E8wXvBT0E7wU5BF4EQwQ/BF4EPwRWBFkEOARQBFkEUARjBGEETgRJBGEESQRlBGgESwRHBGgERwRgBI8EZwRfBI8EXwSXBIoEYgRmBIoEZgSOBIUEWgRkBIUEZASLBJUEXQRVBJUEVQSRBJQEWARSBJQEUgSCBIMEVARcBIMEXASHBHEDdAR4BHEDeASCA/YDbARyBPYDcgRvA2YDbgRqBGYDagT0A4ADdgR8BIADfAQGBAQEegR+BAQEfgSFA4gDfwRvBIgDbwRpA3MEhASIBHMEiAR3BGsEkwSBBGsEgQRxBG0ElgSSBG0EkgRpBHUEhgSMBHUEjAR7BHkEiQSNBHkEjQR9BIAEkASYBIAEmARwBAkFZgWJAgkFiQJ9AaoEZwOjBKoEowQHBa8EGwB1Aa8EdQEMBWUD8wOaBGUDmgSiBHADrgQLBXADCwWfBBcAqQTzAaQEYgVlBaQEZQUIBekDewV4BekDeAUvBK0F5wMBBa0FAQW9BaUF8gMGBaUFBgXABeUDMQR5BXkF5AXgBXkF4AXlA68D3wP7BK8D+wTjBMADvAP2BMAD9gTyBGcAvwPxBGcA8QTWBNADzAPuBNAD7gTqBJMDzwPoBJMD6ATQBMsDqAPiBMsD4gTsBKcD2AP6BKcD+gThBB8AbQDcBB8A3ASyBHYDoAPYBHYD2ASmBJ8DlAPRBJ8D0QTXBLsDsAPkBLsD5AT0BEMAyQTNBEMAzQT3AUUAwwTIBEUAyARBACEAtATEBCEAxARHAH4DuwS+BH4DvgSBA3oDtwS6BHoDugR9A3UDpQS2BHUDtgR5A4MDwQSxBIMDsQRyAz0AywSrBD0AqwQZAG8AZQDVBG8A1QTeBK0ECgV+Aa0EfgH0Ac4EPwD5AXcBkQJqBXcBagUOBVsFEQUXBVsFFwVZBVgFFAUYBVgFGAVgBQ0FaAVeBQ0FXgWgBFYCQQUfBVYCHwUYAkICNQUlBUICJQUqAjMFOwUvBTMFLwUjBUAFSAUnBUAFJwUdBUkFQwUhBUkFIQUqBT0FNwUrBT0FKwUxBToFTAIyAjoFMgItBUUFXgIoAkUFKAIiBSAFJgI4AiAFOAIpBSgFNgIWAigFFgIeBXIFpAJKAnIFSgI5BXUFbwU4BXUFOAU+BWwFdAU8BWwFPAU0BZoCbQU2BZoCNgVEAi4FNAJgAi4FYAJGBTIFLAVEBTIFRAVKBSQFMAVHBSQFRwU/BSwCJgVCBSwCQgVYAhAFTQVmAhAFZgL+ARsFTwVVBRsFVQUWBRUFVAVMBRUFTAUPBfwBcgJQBfwBUAUcBZkEVwVfBZkEXwWhBJ0EXAVaBZ0EWgWbBGgCTgVuBWgCbgWcAmEFGgVkBWMFGQX7AWMF+wGHAo8CAQITBY8CEwVpBWcFEgVdBUsFUwVzBUsFcwVrBVYFUQVwBVYFcAV2BVIFdAKiAlIFogJxBYgFdwV6BYgFegV+Bf8E2wXrBf8E6wXjA90F4wV3Bd0FdwWIBYUFiAV+BYUFfgWBBe0DzgXGBe0DxgV9BeYF3QWIBeYFiAWFBTMEhgWDBTMEgwXvA4sFkwWNBYsFjQWRBYIF0AXUBYIF1AXuA3wFxAXYBXwF2AWABZkFoQWUBZkFlAWMBQMFyQXMBQMFzAXrA54FoAWYBZ4FmAWcBfED1QXKBfEDygUEBeADpgXCBeADwgX+BNcDrgW+BdcDvgX4BNEDqAW6BdEDugUtBNkDrwWzBdkDswUnBPcEvAWqBfcEqgXTA/0EwQWyBf0EsgXcAyoEtgWsBSoErAXWAysEuAWkBSsEpAXdA8MFjgWVBcMFlQXWBdEF1wWWBZYFogWfBZYFnwXRBcgFigWQBcgFkAXLBc0FkgWPBc0FjwXFBc8FnQWaBc8FmgXSBccF0wWbBZsFlwWJBZsFiQXHBd8F2gXhBd8F4QXlBegF6gXZBegF2QXeBegD4gXcBegD3AUCBewFBwYZBuwFGQYEBgMGFgYTBgMGEwb+BTcE7QUFBjcEBQZPBEEE9wXxBUEE8QU7BEQE+QX1BUQE9QVABAEGJwYgBgEGIAZMBBcGBgYKBhcGCgYNBhQGGAYOBhQGDgYQBvQFDAYJBvQFCQbwBfoFEQYPBvoFDwb2BQAGFQYSBgAGEgb8BfIFCwYIBvIFCAbuBSkGNQY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\u003c/3d\u003e\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FdjNNlX/FG311QglvvOrLH7yG2hTrKaKx1cVnlg/VXzZEh+VSlDWCzX5wDZTtiMWPB05NBu8ldjS6CSrYCtyCg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732290299"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","package":{"name":"blackcow_nft","path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcow_nft","files":[{"name":"basic_nft.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"blackcow_nft.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"BlackCow\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"errors.gno","body":"package blackcows_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"type.gno","body":"package blackcows_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4fdKDQ7VQiVdDvIp0LYQnGniIaJo8pWqQ+KcTbSMeGNyYFUYldsEGTT34upo72PO6ezCd+sJ4YiItfxwRc+ZAA=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818835"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","package":{"name":"blackcow_nft","path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcow_nft","files":[{"name":"basic_nft.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"blackcows_nft.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"BlackCow\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"errors.gno","body":"package blackcows_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"type.gno","body":"package blackcows_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"76DcZ820Ryd9NflQEusBqZPN4AokWdnUpKnlvQyo6MeWCFFYTy/PQWN25vxXPtC9Ea42FWEz9OPI4Zy5Bji4CQ=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818860"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","package":{"name":"blackcows_nft","path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcows_nft","files":[{"name":"basic_nft.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"blackcows_nft.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"BlackCow\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"errors.gno","body":"package blackcows_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"type.gno","body":"package blackcows_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package blackcows_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fos6VqmoRR3VFVQe3NlLg4TsBAOaU8Bgz/1+17xTNF+IwAiNa9gcQD4uMoG6yL/09S9Emwwn3fvn+6Y5Rz0mCg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818915"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","package":{"name":"popo_nft","path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","files":[{"name":"basic_nft.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"errors.gno","body":"package popo_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"popo_nft.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tpopo = NewNFTWithMetadata(\"PopoNFT\", \"POPO\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := popo.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := popo.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn popo.Name()\n}\n\nfunc Symbol() string {\n\treturn popo.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := popo.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := popo.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := popo.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn popo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := popo.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := popo.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := popo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := popo.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := popo.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := popo.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := popo.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := popo.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tpopo.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"Popo\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tpopo.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn popo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"type.gno","body":"package popo_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7CNQUA07ttmsTfeBTSTpEViqZJIIkDagmT8qXyTYFv/begECzK9mb9p3DfIqppwZthNAGyAz0XTaoOBQ/u4DBw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730817002"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g14qjgdkphg95t49hnwdq0sytdjucptdmma7es9j","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gm0vkNH7TF7WcoXCdILWyRVVnyt5RjNMF7wp95IdUATCllTLRioU4i4lIBFQVtSRnXNGf6NaZbzSNljscBJWCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g14vxq5e5pt5sev7rkz2ej438scmxtylnzv5vnkw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V04dT8O+CD86yMb4SOEfpP87EEK7vIzhAn3oP/nYTR3lyNGZ77njjIT6IUnM/CR83/TOi/9P+gCwivZB6AuwBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g150ggdg2yrdhwmk3nmt6780002xt5xgst2zndg4","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AjrJjKLL0+t8e7D/n6TnfCAnLVheYd9AHFLxMztKOaQrlIkXEDy4zI5D4t1nEFsCgzkw848fLLC1zXWgXCMjAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15ly494qhk5ler6erzqp7rksv539g48w4dtjwwf","package":{"name":"raffle","path":"gno.land/r/gc24/soypat/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\trfl \"gno.land/r/gc24/raffle\"\n)\n\nconst (\n\tcode = \"CyH0GyhYsx\"\n\tuser = \"soypat\"\n)\n\nfunc init() {\n\t// keyboard's mine c:\n\trfl.RegisterCode(code)\n\trfl.RegisterUsername(user)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sKDLCwh+v3cfw3L4qODfELNMknrDSqjPae2sCRTlRziyVNnWt6IxzlpocAawqtPUENk4A78kItVv5oe4ZJD+Bg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15m526qur3ggut82vk0q5za6jzg4eaaclgfh2mx","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/1zXCtGFrsasSPsLsvOe647YMG+k0/GwYb5/YV2M8oGXTVzU9jfebk9+PefB+dVJVb39tLY+4t8d8RGYuntrCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15m526qur3ggut82vk0q5za6jzg4eaaclgfh2mx","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/1zXCtGFrsasSPsLsvOe647YMG+k0/GwYb5/YV2M8oGXTVzU9jfebk9+PefB+dVJVb39tLY+4t8d8RGYuntrCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15ruzptpql4dpuyzej0wkt5rq6r26kw4nxu9fwd","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C0rAn12PcUs1/BSuVAJQVcF+Lazu8mAc5Vo1JgYl2t0PsHQPAGdiYCRUO1sJehRLkgchiu2So9ZqLbLQ+63pAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15ruzptpql4dpuyzej0wkt5rq6r26kw4nxu9fwd","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C0rAn12PcUs1/BSuVAJQVcF+Lazu8mAc5Vo1JgYl2t0PsHQPAGdiYCRUO1sJehRLkgchiu2So9ZqLbLQ+63pAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15x46up6w3v9ey7wkltf05jt20pa6g39kkjjx8a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2TTupxo25MuoRnhWfm+TNFYU4LkxfhRG9Rg4olkdGB9v2N8cMyccAur86YY7pKGjtHaWjg1Wy4kYyIZabbHXCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15x46up6w3v9ey7wkltf05jt20pa6g39kkjjx8a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2TTupxo25MuoRnhWfm+TNFYU4LkxfhRG9Rg4olkdGB9v2N8cMyccAur86YY7pKGjtHaWjg1Wy4kYyIZabbHXCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g15x46up6w3v9ey7wkltf05jt20pa6g39kkjjx8a","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2TTupxo25MuoRnhWfm+TNFYU4LkxfhRG9Rg4olkdGB9v2N8cMyccAur86YY7pKGjtHaWjg1Wy4kYyIZabbHXCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","package":{"name":"demowallet","path":"gno.land/r/varmeta/demowallet","files":[{"name":"package.gno","body":"package demowallet\n\nimport \"std\"\n\nvar banker std.Banker\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\tbanker = std.GetBanker(std.BankerTypeOrigSend)\n}\nfunc Hello(name string, email string) string {\n\treturn \"Hello \" + name + \"\\nyour mail is: \" + email\n}\n\nfunc Revieve(name string) string {\n\tcaller := std.GetOrigCaller()\n\tcoins := banker.GetCoins(caller)\n\treturn coins.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"evU+yHUC8aK3d2I5HmDus/k2a9k3SKf9tN4WEbkPY+qPufeoBkTtSpw6jyRKQuhQXmzB8WYxbJP1Nojb6uliDA=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1731482350"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","package":{"name":"walletdemo","path":"gno.land/r//walletdemo","files":[{"name":"package.gno","body":"package demowallet\n\nimport \"std\"\n\nvar banker std.Banker\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n\nfunc init() {\n banker = std.GetBanker(std.BankerTypeOrigSend)\n}\nfunc Hello(name string, email string) string {\n return \"Hello \"+ name + \"\\nyour mail is: \" + email\n}\n\nfunc Revieve(name string) string {\n caller := std.GetOrigCaller()\n coins := banker.GetCoins(caller)\n return coins.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3L/VuMXJKVvAlGpEr9on6eVVqzxkgoZ5Keu/nSYz0ordf92N6LPvAznZRffGNHxqVAJ+FOKNbdRiW9Fih4k7BA=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1731482290"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","package":{"name":"walletdemo","path":"gno.land/r/varmeta/walletdemo","files":[{"name":"package.gno","body":"package demowallet\n\nimport \"std\"\n\nvar banker std.Banker\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\tbanker = std.GetBanker(std.BankerTypeOrigSend)\n}\nfunc Hello(name string, email string) string {\n\treturn \"Hello \" + name + \"\\nyour mail is: \" + email\n}\n\nfunc Revieve(name string) string {\n\tcaller := std.GetOrigCaller()\n\tcoins := banker.GetCoins(caller)\n\treturn coins.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WEok58q8MU2XHMuo+fRHnWuFr1UvIKzvtF+9jDQzDeSdN6FH/SR7XC4OQLHptDJ/E4bkkSkQBUkUZkaq5M69CQ=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1731482325"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","package":{"name":"walletdemo","path":"gno.land/r/varmeta/walletdemo","files":[{"name":"package.gno","body":"package walletdemo\n\nimport \"std\"\n\nvar banker std.Banker\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc Hello(name string, email string) string {\n\treturn \"Hello \" + name + \"\\nyour mail is: \" + email\n}\n\nfunc Recieve(name string) string {\n\tb := std.GetBanker(std.BankerTypeOrigSend)\n\tcaller := std.GetOrigCaller()\n\tcoins := b.GetCoins(caller)\n\treturn coins.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rNIUVg0kiV8lmB1lQLGdUgwZ3NpzHh39SwamMV3dHzVCn2HiSaXnv/KSRfT30lmoXqa5AV8UrPLpjWuXDY5lBg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1731482827"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle","path":"gno.land/r/dinquisitor/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eFTc8AvcbYJir8/mk78HpwOXwBIBmJCZSZk6HqJ72s3dRJJmALaLCxFPfpm/uxRYSTh7p1IeT7PM/ZFNi+TlBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle","path":"gno.land/r/dinquisitor/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport(\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init (){\n raffle.RegisterCode(\"vYxZAKc9Gi\")\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EFQofqzGjEXmluZgF2YbxZeq3vT7cjYfh7VNS2RYzK+6v/qa1SRGvTmPw5T2mK0kPMPjIWtYKG5RXRcIe7hmAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle2","path":"gno.land/r/dinquisitor/raffle2","files":[{"name":"package.gno","body":"package raffle2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"vYxZAKc9Gi\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RQLQcGOoWpD3MWsuhl4tMPIRoLeT2rNC2NkVzgQtlDq4FTCiOs1QOIsy+tww9IUSiNfRx1JC8B52pq6AKU5xBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle2","path":"gno.land/r/dinquisitor/raffle2","files":[{"name":"package.gno","body":"package raffle2\n\nimport(\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init (){\n raffle.RegisterUsername(\"dInquisitor\")\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rdxNVZueLVqEc3KBE3/VdVMU8QWf/70alRQYbNh8MX4jY/fDJ7yHOqaLpzUhEHyOJu5rW6+htHTqBuQhQFA4CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle3","path":"gno.land/r/dinquisitor/raffle3","files":[{"name":"package.gno","body":"package raffle2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterUsername(\"dInquisitor\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UklmyqmMrH4slbBGa39GwgkvuyzAEbkjDtKOqVxnrOrtH4hQxWIlBWv5h8aMGjFYZSr4DEPpt5q7uqLSEWT4BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle3","path":"gno.land/r/dinquisitor/raffle3","files":[{"name":"package.gno","body":"package raffle2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterUsername(\"dInquisitor\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UklmyqmMrH4slbBGa39GwgkvuyzAEbkjDtKOqVxnrOrtH4hQxWIlBWv5h8aMGjFYZSr4DEPpt5q7uqLSEWT4BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16693l5rta8ptsae7yz60zu0z8ksxps9lxl8u99","package":{"name":"raffle3","path":"gno.land/r/dinquisitor/raffle3","files":[{"name":"package.gno","body":"package raffle3\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterUsername(\"dInquisitor\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zajzuMM6QiGffRoOVI6uovjd83htMLrUzJ38ogB4eoWieZU9b1EKopqB3hWk/Ng/SUInqZYfNCmeiC1riACOBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g168ejjw5f9rmyaxp947xjy0y07508n2d5vzlwf4","package":{"name":"raffle","path":"gno.land/r/ckami2088/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"9tPFscqR2H\"\n\tgithubAcct := \"ckami2088\"\n\trescode := raffle.RegisterCode(code)\n\tresgithub := raffle.RegisterUsername(githubAcct)\n\tprintln(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HoguRqoEeoPgMLxqZ3C1Nfi2TufqA5nSJ7cLslHp52pkWhy2Wlt5pUzDhsP/LiyU1ijd60bMUTXpy0+gX1b+CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g168ejjw5f9rmyaxp947xjy0y07508n2d5vzlwf4","package":{"name":"raffle","path":"gno.land/r/ckami2088/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/rafflekami\"\n)\n\nfunc init() {\n\tcode := \"9tPFscqR2H\"\n\tgithubAcct := \"ckami2088\"\n\trescode := raffle.RegisterCode(code)\n\tresgithub := raffle.RegisterUsername(githubAcct)\n\tprintln(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N24Xymb1C7WJ/0oRx+znzQ4j0ywqdlwijjQcflNLwu4vmRhurZqYjpOyoOpRvh0Qtt9a0dz034RiMifPvPCPAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"mlin","path":"gno.land/r/gc24/mlin","files":[{"name":"package.gno","body":"package mlin\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\traffle.RegisterCode(\"xUxoTd3T4F\")\n\traffle.RegisterUsername(\"miranda-lin\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VdwGvOWwcLyMDmecOlkkB4AuJC/HcXz88CI6BeTcIFRYg4IHECWDMkznLAa3awDEJYTxqStgiNA8V+GVM8fzAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"raffle10","path":"gno.land/r/bob/raffle10","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t// \"gno.land/r/gc24/raffle\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"%d\", 1)\n\t// raffle.CheckHashUpload()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3EP3UYzsuBejGeHd+whSqipcxumnRmZBmkJN7Fq8wb34ySP3MioDZ1fA5xSyvE0unhU3v8C2ZQTc+mF22zzpAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"raffle10","path":"gno.land/r/bob/raffle10","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"fmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tfmt.Println(raffle.CheckHashUpload())\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TBb5JPMJcymMLs+QGTidKFO2T+qbt3xA2lpzDwW1qD20VNfFfqdaxqSdEqjF7eJjEQtZGfn4qEwYj9YbMl7xCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"raffle10","path":"gno.land/r/bob/raffle10","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"%d\", raffle.CheckHashUpload())\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sGhpEo0iZLEarqg9R36VYfILVwg5qbAJaw/o7dIsER8HIHlnZLp8V7mR/M3fULu+6LZK6reBmTm8Q8ESsOsLCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"raffle10","path":"gno.land/r/bob/raffle10","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.CheckHashUpload()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+wyjVNad0m9cnRuGumOPEwjZuv/bgopYkBirQWrTmZKyhNiolVc/ktcRA6I9NFDY3rrX935Dwe6gRHQkaA2JBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"raffle10","path":"gno.land/r/bob/raffle10","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tfmt.Println(raffle.CheckHashUpload())\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CWeM8dusJXfmTQThsr1+dqZIPq20BXtQEgp8U+qNv7fZJATlxXu/VvniRdJXCAkm6eNih7CKezf9Coq5UbwFDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16dkm6ynx9n3llh99fymm4ayky24yreph7n0c7v","package":{"name":"raffle10","path":"gno.land/r/bobbyluig/raffle10","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t// \"gno.land/r/gc24/raffle\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"count; %d\", 1)\n\t// raffle.CheckHashUpload()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AumtxBT+OWOuti9tZNhVCTxhSuufd04N1fXEDHGIf0Wy0oc0geo40/Ps0piArZExZATiu/2oeRYsOVn6XGq5AA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16fy26gwg902qqgwmay4jnemlcc3asx7k3qh4yn","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zQnRK0O4mgDLUeuvFo89osV9Hw3HaXoak/OJZp4yrL4xRHojvVFym65CwjQF7gC53ewJWKQ0xtC3tM7/5bd4Ag=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16fy26gwg902qqgwmay4jnemlcc3asx7k3qh4yn","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zQnRK0O4mgDLUeuvFo89osV9Hw3HaXoak/OJZp4yrL4xRHojvVFym65CwjQF7gC53ewJWKQ0xtC3tM7/5bd4Ag=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"alerts","path":"gno.land/p/gnome/alerts/v2","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"alerts.gno","body":"package alerts\n\nconst (\n\tTypeError Type = iota\n\tTypeWarning\n)\n\n// Type defines the type of alerts.\ntype Type uint32\n\n// New returns Markdown for an alert.\nfunc New(t Type, content []string) string {\n\tvar prefix, msg string\n\tswitch t {\n\tcase TypeWarning:\n\t\tprefix = \"\u003e ⚠ **WARNING**: \"\n\tcase TypeError:\n\t\tprefix = \"\u003e ⚠ **ERROR**: \"\n\tdefault:\n\t\tpanic(\"unknown alert type\")\n\t}\n\n\tfor _, line := range content {\n\t\tif msg != \"\" {\n\t\t\tmsg += \" \\n\u003e \"\n\t\t}\n\t\tmsg += line\n\t}\n\n\treturn prefix + msg + \"\\n\\n\"\n}\n\n// NewWarning returns Markdown for a warning alert.\nfunc NewWarning(lines ...string) string {\n\treturn New(TypeWarning, lines)\n}\n\n// NewError returns Markdown for an error alert.\nfunc NewError(lines ...string) string {\n\treturn New(TypeError, lines)\n}\n\n// NewLink returns a Markdown link.\nfunc NewLink(href, label string) string {\n\treturn \"[\" + label + \"](\" + href + \")\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WlL1aTMIuzhH7FpRpHB4P5NQIGj9QhnZKOOiMy7ukhgK2vUgcsVCSwBe+LDbO8adnLsKYFog5FRku+CBNvjoBg=="}],"memo":""},"metadata":{"timestamp":"1734105920"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"blog","path":"gno.land/p/gnome/blog/v2","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"asserts.gno","body":"package blog\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar (\n\thostnameRe = regexp.MustCompile(`^(?i)[a-z0-9-]+(\\.[a-z0-9-]+)+\\.?$`)\n\tsha256Re = regexp.MustCompile(`^[a-f0-9]{64}$`)\n\tslugRe = regexp.MustCompile(`^[a-z0-9\\p{L}]+(?:-[a-z0-9\\p{L}]+)*$`)\n)\n\n// AssertIsSlug asserts that a URL slug is valid.\nfunc AssertIsSlug(slug string) {\n\tif !IsSlug(slug) {\n\t\tpanic(\"URL slug is not valid\")\n\t}\n}\n\n// AssertContentSha256Hash asserts that a hex hash is a valid SHA256 hash.\nfunc AssertIsSha256Hash(hexHash string) {\n\tif !IsSha256Hash(hexHash) {\n\t\tpanic(\"invalid sha256 hash\")\n\t}\n}\n\n// AssertIsContentURL asserts that a URL is a valid link to a content.\n// URL must have a path to ve valid. Website URLs will fail.\nfunc AssertIsContentURL(url string) {\n\tif !IsURL(url, true) {\n\t\tpanic(\"content URL is not valid, make sure path to content is specified\")\n\t}\n}\n\n// AssertTitleIsNotEmpty asserts that a title is not an empty string.\nfunc AssertTitleIsNotEmpty(title string) {\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"title is empty\")\n\t}\n}\n\n// AssertContentSha256Hash asserts that the SHA256 hash of a content matches a hash.\nfunc AssertContentSha256Hash(content, hash string) {\n\tif hash != GetHexSha256Hash(content) {\n\t\tpanic(\"content sha256 checksum is not valid\")\n\t}\n}\n\n// IsSlug checks if a string is a valid URL slug.\nfunc IsSlug(slug string) bool {\n\treturn slugRe.MatchString(slug)\n}\n\n// IsSha256Hash checks is a hex hash is a valid SHA256 hash.\nfunc IsSha256Hash(hexHash string) bool {\n\treturn sha256Re.MatchString(strings.ToLower(hexHash))\n}\n\n// IsURL checks if a URL is valid.\n// URL path availability can optionally be enforced.\nfunc IsURL(rawURL string, requirePath bool) bool {\n\tu, err := url.ParseRequestURI(rawURL)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tif requirePath \u0026\u0026 u.Path == \"\" || u.Path == \"/\" {\n\t\treturn false\n\t}\n\n\tif u.Scheme != \"https\" \u0026\u0026 u.Scheme != \"http\" {\n\t\treturn false\n\t}\n\n\thostname := u.Hostname()\n\treturn hostname != \"\" \u0026\u0026 hostnameRe.MatchString(hostname)\n}\n\n// GetHexSha256Hash returns the hexadecimal encoding of the string's SHA256 hash.\n// An empty string is returned when the argument is an empty string.\nfunc GetHexSha256Hash(s string) string {\n\tsum := sha256.Sum256([]byte(s))\n\treturn hex.EncodeToString(sum[:])\n}\n"},{"name":"asserts_test.gno","body":"package blog\n\nimport (\n\t\"testing\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n)\n\nfunc TestIsSlug(t *testing.T) {\n\tcases := []struct {\n\t\tname, slug string\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"one letter\",\n\t\t\tslug: \"a\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one unicode letter\",\n\t\t\tslug: \"á\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one word\",\n\t\t\tslug: \"foo\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one unicode word\",\n\t\t\tslug: \"fóo\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"many words\",\n\t\t\tslug: \"foo-bar-baz\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"many unicode words\",\n\t\t\tslug: \"fóo-bár-báz\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with spaces\",\n\t\t\tslug: \"foo bar\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"with invalid chars\",\n\t\t\tslug: \"foo/bar\",\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsSlug(tc.slug)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected slug check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSha256Hash(t *testing.T) {\n\tcases := []struct {\n\t\tname, hash string\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\thash: \"1a66cf828aea323fc58c653b0bc0d64061bb5c198e500a541a2c97f4f45b668d\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid size\",\n\t\t\thash: \"1a66cf828aea323\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid characters\",\n\t\t\thash: \"1a66#?\",\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsSha256Hash(tc.hash)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected sha256 check check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsURL(t *testing.T) {\n\tcases := []struct {\n\t\turl string\n\t\twant bool\n\t}{\n\t\t{url: \"https\", want: false},\n\t\t{url: \"https/a\", want: false},\n\t\t{url: \"https/a/b\", want: false},\n\t\t{url: \"https/a/b/\", want: false},\n\t\t{url: \"https:\", want: false},\n\t\t{url: \"https:www.test.com\", want: false},\n\t\t{url: \"https:www.test.com/\", want: false},\n\t\t{url: \"https:www.test.com/a\", want: false},\n\t\t{url: \"https:www.test.com/a/b\", want: false},\n\t\t{url: \"https:www.test.com/a/b/\", want: false},\n\t\t{url: \"https:www.test.com:42/a/b/\", want: false},\n\t\t{url: \"https:/\", want: false},\n\t\t{url: \"https:/a\", want: false},\n\t\t{url: \"https:/a/b\", want: false},\n\t\t{url: \"https:/a/b/\", want: false},\n\t\t{url: \"https:/www.test.com/a/b\", want: false},\n\t\t{url: \"https://\", want: false},\n\t\t{url: \"https://a\", want: false},\n\t\t{url: \"https://a/b\", want: false},\n\t\t{url: \"https://a/b/\", want: false},\n\t\t{url: \"https://www.test.com\", want: false},\n\t\t{url: \"https://www.test.com/\", want: false},\n\t\t{url: \"https://www.test.com/a\", want: true},\n\t\t{url: \"https://www.test.com/a/b\", want: true},\n\t\t{url: \"https://www.test.com/a/b/\", want: true},\n\t\t{url: \"https://www.test.com:42/a/b/\", want: true},\n\t\t{url: \"https://foo.bar.test.com\", want: false},\n\t\t{url: \"https://foo.bar.test.com/\", want: false},\n\t\t{url: \"https://foo.bar.test.com/a\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b/\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b\", want: true},\n\t\t{url: \"https://foo.bar.test.com:42/a/b\", want: true},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.url, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsURL(tc.url, true)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected URL check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetHexSha256Hash(t *testing.T) {\n\tcases := []struct {\n\t\tname, content, want string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n\t\t},\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcontent: \"foo\",\n\t\t\twant: \"2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.GetHexSha256Hash(tc.content)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected hash: '%s', got: '%s'\", tc.want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype (\n\t// Blog defines a blog.\n\tBlog struct {\n\t\tposts avl.Tree // string(slug) -\u003e *Post\n\n\t\t// Title is blog's title.\n\t\tTitle string\n\n\t\t// Description is the blog's description.\n\t\tDescription string\n\t}\n\n\t// PostIterFn defines the a callback to iterate blog posts.\n\tPostIterFn func(*Post) bool\n)\n\n// HasPost checks if a post with a URL slug exists.\nfunc (b Blog) HasPost(slug string) bool {\n\treturn b.posts.Has(slug)\n}\n\n// GetPost returns a blog's post.\nfunc (b Blog) GetPost(slug string) (_ *Post, found bool) {\n\tif v, found := b.posts.Get(slug); found {\n\t\treturn v.(*Post), true\n\t}\n\treturn nil, false\n}\n\n// AddPost adds a new post to the blog.\nfunc (b *Blog) AddPost(p *Post) bool {\n\tslug := strings.TrimSpace(p.Slug)\n\tif slug == \"\" {\n\t\tpanic(\"post has an empty slug\")\n\t}\n\n\treturn b.posts.Set(slug, p)\n}\n\n// RemovePost removes a post from the blog.\n// The removed post is returned after being removed if it exists.\nfunc (b *Blog) RemovePost(slug string) (_ *Post, removed bool) {\n\tif v, removed := b.posts.Remove(slug); removed {\n\t\treturn v.(*Post), true\n\t}\n\treturn nil, false\n}\n\n// IteratePosts iterates all posts by slug.\nfunc (b Blog) IteratePosts(fn PostIterFn) bool {\n\t// TODO: Improve blog post iteration\n\treturn b.posts.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*Post))\n\t})\n}\n"},{"name":"invar.gno","body":"package blog\n\n// TODO: Remove this file if Gno implements invar (inmutable) references\n\nimport \"time\"\n\nfunc NewInvarBlog(b *Blog) InvarBlog {\n\treturn InvarBlog{b}\n}\n\ntype InvarBlog struct {\n\tref *Blog\n}\n\nfunc (b InvarBlog) Title() string {\n\treturn b.ref.Title\n}\n\nfunc (b InvarBlog) Description() string {\n\treturn b.ref.Description\n}\n\nfunc (b InvarBlog) IteratePosts(fn func(InvarPost) bool) bool {\n\treturn b.ref.IteratePosts(func(p *Post) bool {\n\t\treturn fn(NewInvarPost(p))\n\t})\n}\n\nfunc NewInvarPost(p *Post) InvarPost {\n\treturn InvarPost{p}\n}\n\ntype InvarPost struct {\n\tref *Post\n}\n\nfunc (p InvarPost) Slug() string {\n\treturn p.ref.Slug\n}\n\nfunc (p InvarPost) Title() string {\n\treturn p.ref.Title\n}\n\nfunc (p InvarPost) Summary() string {\n\treturn p.ref.Summary\n}\n\nfunc (p InvarPost) Status() PostStatus {\n\treturn p.ref.Status\n}\n\nfunc (p InvarPost) Content() string {\n\treturn p.ref.Content\n}\n\nfunc (p InvarPost) ContentHash() string {\n\treturn p.ref.ContentHash\n}\n\nfunc (p InvarPost) Authors() AddressList {\n\treturn p.ref.Authors\n}\n\nfunc (p InvarPost) Editors() AddressList {\n\treturn p.ref.Editors\n}\n\nfunc (p InvarPost) Contributors() AddressList {\n\treturn p.ref.Contributors\n}\n\nfunc (p InvarPost) Publishers() AddressList {\n\treturn p.ref.Publishers\n}\n\nfunc (p InvarPost) Tags() []string {\n\treturn p.ref.Tags\n}\n\nfunc (p InvarPost) CreatedAt() time.Time {\n\treturn p.ref.CreatedAt\n}\n\nfunc (p InvarPost) UpdatedAt() time.Time {\n\treturn p.ref.UpdatedAt\n}\n\nfunc (p InvarPost) PublishAt() time.Time {\n\treturn p.ref.PublishAt\n}\n\nfunc (p InvarPost) ExpireAt() time.Time {\n\treturn p.ref.ExpireAt\n}\n"},{"name":"post.gno","body":"package blog\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tStatusDraft PostStatus = iota\n\tStatusApproved\n\tStatusPublished\n\tStatusRevised\n\tStatusArchived\n)\n\ntype (\n\t// AddressList defines a list of addresses.\n\tAddressList []std.Address\n\n\t// PostStatus defines a type for blog post states.\n\tPostStatus uint8\n\n\t// Post defines a blog post.\n\tPost struct {\n\t\t// Slug contains the URL path slug for the post.\n\t\tSlug string\n\n\t\t// Title is the post's title.\n\t\tTitle string\n\n\t\t// Summary is the post's summary.\n\t\tSummary string\n\n\t\t// Status is the current post's state.\n\t\tStatus PostStatus\n\n\t\t// Content contains the post's content.\n\t\tContent string\n\n\t\t// ContentHash contains the hash of the post's content.\n\t\tContentHash string\n\n\t\t// Authors contains the list of post authors.\n\t\tAuthors AddressList\n\n\t\t// Editors contains the list of post editors.\n\t\t// Each account belongs to an editor that significantly improved the content.\n\t\tEditors AddressList\n\n\t\t// Contributors contains the list of post contributors.\n\t\t// Each account belongs to a contributor that submitted small content changes.\n\t\tContributors AddressList\n\n\t\t// Publishers contains the accounts that published the content.\n\t\tPublishers AddressList\n\n\t\t// Tags contains a list of tags for the post.\n\t\t// These tags can be used to build the blog content taxonomy.\n\t\tTags []string\n\n\t\t// CreatedAt is the block time when the post has been created.\n\t\tCreatedAt time.Time\n\n\t\t// UpdatedAt is the block time when the post has been updated for the last time.\n\t\tUpdatedAt time.Time\n\n\t\t// PublishAt is the block time when the post should be published.\n\t\tPublishAt time.Time\n\n\t\t// ExpireAt is the block time when the post should be archived.\n\t\tExpireAt time.Time\n\t}\n)\n\n// String returns a comma separated string with the list of addresses.\nfunc (x AddressList) String() string {\n\tvar s []string\n\tfor _, item := range x {\n\t\ts = append(s, item.String())\n\t}\n\treturn strings.Join(s, \", \")\n}\n\n// Has checks if an address is part of the address list.\nfunc (x AddressList) Has(addr std.Address) bool {\n\tfor _, item := range x {\n\t\tif item == addr {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// String returns the post status name.\nfunc (s PostStatus) String() string {\n\tswitch s {\n\tcase StatusDraft:\n\t\treturn \"draft\"\n\tcase StatusApproved:\n\t\treturn \"approved\"\n\tcase StatusPublished:\n\t\treturn \"published\"\n\tcase StatusRevised:\n\t\treturn \"revised\"\n\tcase StatusArchived:\n\t\treturn \"archived\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// IsExpired checks if the expiration date was reached.\nfunc (p Post) IsExpired() bool {\n\treturn !p.ExpireAt.IsZero() \u0026\u0026 p.ExpireAt.Before(time.Now())\n}\n\n// ParseStringToAddresses parses a string addresses.\n// String should have one or more lines where each line should contain an address.\n// Addresses are validated after being parsed.\nfunc ParseStringToAddresses(s string) (AddressList, error) {\n\tvar addresses AddressList\n\tfor _, line := range strings.Split(s, \"\\n\") {\n\t\tline = strings.TrimSpace(line)\n\t\tif line == \"\" {\n\t\t\t// Skip empty lines\n\t\t\tcontinue\n\t\t}\n\n\t\taddr := std.Address(strings.TrimSpace(line))\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, errors.New(\"invalid address: \" + EscapeHTML(addr.String()))\n\t\t}\n\n\t\taddresses = append(addresses, addr)\n\t}\n\treturn addresses, nil\n}\n\n// MustParseStringToAddresses parses a string addresses.\n// String should have one or more lines where each line should contain an address.\n// Addresses are validated after being parsed.\nfunc MustParseStringToAddresses(s string) AddressList {\n\taddresses, err := ParseStringToAddresses(s)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn addresses\n}\n\n// EscapeHTML escapes special characters like \"\u003c\" to become \"\u0026lt;\".\n// It escapes only five such characters: \u003c, \u003e, \u0026, ' and \".\nfunc EscapeHTML(s string) string {\n\ts = strings.ReplaceAll(s, `\u0026`, \"\u0026amp;\")\n\ts = strings.ReplaceAll(s, `\"`, \"\u0026#34;\")\n\ts = strings.ReplaceAll(s, `'`, \"\u0026#39;\")\n\ts = strings.ReplaceAll(s, `\u003c`, \"\u0026lt;\")\n\treturn strings.ReplaceAll(s, `\u003e`, \"\u0026gt;\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"40000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+22WSVpK9eg/QsmcV+PBYeZxZscsYXPPqhIxhufLcxAToRpcU3tNnuGAmBBu0v++QQbntJIsIFf8s9WyLfUHCw=="}],"memo":""},"metadata":{"timestamp":"1734105940"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"dao","path":"gno.land/p/gnome/dao/v2","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"dao.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\n// PathSeparator defines the DAO path separator.\nconst PathSeparator = \"/\"\n\ntype (\n\t// Role defines the type for DAO roles.\n\tRole string\n\n\t// Roles defines the type for a list of DAO roles.\n\tRoles []Role\n)\n\n// String returns the role as a string.\nfunc (r Role) String() string {\n\treturn string(r)\n}\n\n// NewMember creates a new DAO member.\nfunc NewMember(addr std.Address, roles ...Role) Member {\n\treturn Member{\n\t\tAddress: addr,\n\t\tRoles: roles,\n\t}\n}\n\n// Member defines a DAO member.\ntype Member struct {\n\t// Address is the member account address.\n\tAddress std.Address\n\n\t// Roles contains the optional list of roles that the member belongs to.\n\tRoles Roles\n}\n\n// String returns a string representation of the member.\nfunc (m Member) String() string {\n\tif len(m.Roles) == 0 {\n\t\treturn m.Address.String()\n\t}\n\n\tvar roles []string\n\tfor _, r := range m.Roles {\n\t\troles = append(roles, string(r))\n\t}\n\treturn m.Address.String() + \" \" + strings.Join(roles, \", \")\n}\n\n// HasRole checks if the member belongs to a specific role.\nfunc (m Member) HasRole(r Role) bool {\n\tfor _, role := range m.Roles {\n\t\tif role == r {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Option configures DAO.\ntype Option func(*DAO)\n\n// AssignAsSuperCouncil makes the DAO a super council.\nfunc AssignAsSuperCouncil() Option {\n\treturn func(dao *DAO) {\n\t\tdao.isSuperCouncil = true\n\t}\n}\n\n// WithSubDAO assigns sub DAO to a DAO.\nfunc WithSubDAO(sub *DAO) Option {\n\treturn func(dao *DAO) {\n\t\tsub.parent = dao\n\t\tdao.children = append(dao.children, sub)\n\t}\n}\n\n// WithMembers assigns members to a DAO.\nfunc WithMembers(members ...Member) Option {\n\treturn func(dao *DAO) {\n\t\tdao.members = members\n\t}\n}\n\n// WithManifest assigns a manifest to a DAO.\n// Manifest should describe the purpose of the DAO.\nfunc WithManifest(manifest string) Option {\n\treturn func(dao *DAO) {\n\t\tdao.manifest = manifest\n\t}\n}\n\n// New creates a new DAO.\nfunc New(name, title string, options ...Option) (*DAO, error) {\n\tname = strings.TrimSpace(name)\n\tif name == \"\" {\n\t\treturn nil, errors.New(\"DAO name is required\")\n\t}\n\n\tif !IsSlug(name) {\n\t\treturn nil, errors.New(`DAO name is not valid, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\ttitle = strings.TrimSpace(title)\n\tif title == \"\" {\n\t\treturn nil, errors.New(\"DAO title is required\")\n\t}\n\n\tdao := \u0026DAO{\n\t\tname: name,\n\t\ttitle: title,\n\t\tcreatedAt: time.Now(),\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(dao)\n\t}\n\n\treturn dao, nil\n}\n\n// MustNew creates a new DAO.\n// The function panics if any of the arguments is not valid.\nfunc MustNew(name, title string, options ...Option) *DAO {\n\tdao, err := New(name, title, options...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn dao\n}\n\n// DAO is a decentralized autonomous organization.\ntype DAO struct {\n\tname string\n\ttitle string\n\tmanifest string\n\tisSuperCouncil bool\n\tisLocked bool\n\tlockReason string\n\tparent *DAO\n\tchildren []*DAO\n\tmembers []Member\n\tcreatedAt time.Time\n}\n\n// Name returns the name of the DAO.\nfunc (dao DAO) Name() string {\n\treturn dao.name\n}\n\n// Title returns the title of the DAO.\nfunc (dao DAO) Title() string {\n\treturn dao.title\n}\n\n// Manifest returns the manifest of the DAO.\nfunc (dao DAO) Manifest() string {\n\treturn dao.manifest\n}\n\n// SetManifest sets the manifest of the DAO.\nfunc (dao *DAO) SetManifest(s string) {\n\tdao.manifest = s\n}\n\n// CreatedAt returns the creation time of the DAO.\nfunc (dao DAO) CreatedAt() time.Time {\n\treturn dao.createdAt\n}\n\n// Parent returns the parent DAO of the sub DAO.\n// The result is nil for the DAO at the root of the DAO tree.\nfunc (dao DAO) Parent() *DAO {\n\treturn dao.parent\n}\n\n// Path returns the path of the DAO.\nfunc (dao DAO) Path() string {\n\tif dao.parent == nil {\n\t\treturn dao.name\n\t}\n\treturn dao.parent.Path() + PathSeparator + dao.name\n}\n\n// SubDAOs returns the first level sub DAOs.\nfunc (dao DAO) SubDAOs() []*DAO {\n\treturn dao.children\n}\n\n// Members returns the members of the DAOs.\nfunc (dao DAO) Members() []Member {\n\treturn dao.members\n}\n\n// LockReason returns a string with the reason the DAO is locked.\nfunc (dao DAO) LockReason() string {\n\treturn dao.lockReason\n}\n\n// IsSuperCouncil checks if the DAO is a super council.\nfunc (dao DAO) IsSuperCouncil() bool {\n\treturn dao.isSuperCouncil\n}\n\n// IsLocked checks if the DAO is locked.\nfunc (dao DAO) IsLocked() bool {\n\treturn dao.isLocked\n}\n\n// Lock locks the DAO.\nfunc (dao *DAO) Lock(reason string) {\n\tdao.lockReason = reason\n\tdao.isLocked = true\n}\n\n// HasParent checks if a DAO is a parent of this DAO.\nfunc (dao DAO) HasParent(parent *DAO) bool {\n\tif parent == nil {\n\t\treturn false\n\t}\n\treturn strings.HasPrefix(dao.Path(), parent.Path())\n}\n\n// HasMember checks if a member is part of the DAO.\nfunc (dao DAO) HasMember(addr std.Address) bool {\n\tfor _, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddMember adds a member to the DAO.\n// Caller must check the member before adding to avoid duplications.\nfunc (dao *DAO) AddMember(m Member) {\n\tdao.members = append(dao.members, m)\n}\n\n// GetMember gets a member of the DAO.\nfunc (dao DAO) GetMember(addr std.Address) (Member, bool) {\n\tfor _, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\treturn m, true\n\t\t}\n\t}\n\treturn Member{}, false\n}\n\n// RemoveMember removes a member of the DAO.\nfunc (dao *DAO) RemoveMember(addr std.Address) bool {\n\tfor i, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\tdao.members = append(dao.members[:i], dao.members[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddSubDAO adds a sub DAO to the DAO.\nfunc (dao *DAO) AddSubDAO(sub *DAO) bool {\n\tif sub == nil {\n\t\treturn false\n\t}\n\n\tfor _, n := range dao.children {\n\t\tif n.name == sub.name {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tsub.parent = dao\n\tdao.children = append(dao.children, sub)\n\treturn true\n}\n\n// GetDAO get a DAO by path.\nfunc (dao *DAO) GetDAO(path string) (_ *DAO, found bool) {\n\tif path == \"\" {\n\t\treturn nil, false\n\t}\n\n\tif path == dao.name {\n\t\treturn dao, true\n\t}\n\n\t// Make sure that current node is not present at the beginning of the path\n\tpath = strings.TrimPrefix(path, dao.name+PathSeparator)\n\n\t// Split DAO path in child name and relative sub path\n\tparts := strings.SplitN(path, PathSeparator, 2)\n\tchildName := parts[0]\n\n\tfor _, sub := range dao.children {\n\t\tif sub.name != childName {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(parts) \u003e 1 {\n\t\t\t// Traverse node children when a sub node path is available\n\t\t\treturn sub.GetDAO(parts[1])\n\t\t}\n\t\treturn sub, true\n\t}\n\n\treturn nil, false\n}\n\n// RemoveSubDAO removes a sub DAO.\n// The sub DAO must be a first level children of the DAO.\nfunc (dao *DAO) RemoveSubDAO(name string) bool {\n\tfor i, sub := range dao.children {\n\t\tif sub.name == name {\n\t\t\tdao.children = append(dao.children[:i], dao.children[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsRoot checks if the DAO is the DAO tree root.\nfunc (dao DAO) IsRoot() bool {\n\treturn dao.parent == nil\n}\n\n// ParseStringToMembers parses a string of member addresses and roles.\n// String should have one or more lines where each line should contain an\n// address optionally followed by one or more roles.\n// Example multi line string:\n//\n//\tg1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun roleA\n//\tg1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n//\tg1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5 roleB roleA\n//\n// Addresses are validated after being parsed.\n// Roles must be validated by the caller to make sure the names are valid.\nfunc ParseStringToMembers(s string) ([]Member, error) {\n\tvar members []Member\n\tfor _, line := range strings.Split(s, \"\\n\") {\n\t\tline = strings.TrimSpace(line)\n\t\tif line == \"\" {\n\t\t\t// Skip empty lines\n\t\t\tcontinue\n\t\t}\n\n\t\tvar (\n\t\t\troles []Role\n\t\t\tfields = strings.Fields(line)\n\t\t\taddr = std.Address(strings.TrimSpace(fields[0]))\n\t\t)\n\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, errors.New(\"invalid member address: \" + EscapeHTML(addr.String()))\n\t\t}\n\n\t\tfor _, v := range fields[1:] {\n\t\t\troles = appendRole(roles, strings.TrimSpace(v))\n\t\t}\n\n\t\tmembers = append(members, NewMember(addr, roles...))\n\t}\n\treturn members, nil\n}\n\n// MustParseStringToMembers parses a string of member addresses and roles.\n// String should have one or more lines where each line should contain an\n// address optionally followed by one or more roles.\n// Example multi line string:\n//\n//\tg1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun roleA\n//\tg1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n//\tg1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5 roleB roleA\n//\n// Addresses are validated after being parsed.\n// Roles must be validated by the caller to make sure the names are valid.\nfunc MustParseStringToMembers(s string) []Member {\n\tmembers, err := ParseStringToMembers(s)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn members\n}\n\n// appendRole append a role if it doesn't exists within the list of roles.\nfunc appendRole(roles []Role, name string) []Role {\n\tfor _, r := range roles {\n\t\tif string(r) == name {\n\t\t\treturn roles\n\t\t}\n\t}\n\treturn append(roles, Role(name))\n}\n"},{"name":"dao_test.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\troles []gnome.Role\n\t\toutput string\n\t}{\n\t\t{\n\t\t\tname: \"without roles\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\",\n\t\t},\n\t\t{\n\t\t\tname: \"with one role\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\troles: []gnome.Role{\"foo\"},\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 foo\",\n\t\t},\n\t\t{\n\t\t\tname: \"with two roles\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\troles: []gnome.Role{\"foo\", \"bar\"},\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 foo, bar\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tm := gnome.NewMember(tc.address, tc.roles...)\n\n\t\t\t// Assert\n\t\t\tif got := m.Address; got != tc.address {\n\t\t\t\tt.Fatalf(\"expected address %s, got: %s\", tc.address, got)\n\t\t\t}\n\n\t\t\tfor i, r := range m.Roles {\n\t\t\t\tif r != tc.roles[i] {\n\t\t\t\t\tt.Fatalf(\"expected role %s, got: %s\", tc.roles[i], r)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif got := m.String(); got != tc.output {\n\t\t\t\tt.Fatalf(\"expected member string output '%s', got: '%s'\", tc.output, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: Add test cases to check different DAO options\nfunc TestDAO(t *testing.T) {\n\t// Arrange\n\tname := \"test\"\n\ttitle := \"Test DAO\"\n\tmanifest := \"This is a test\"\n\taddresses := []std.Address{\n\t\ttestutils.TestAddress(\"member1\"),\n\t\ttestutils.TestAddress(\"member2\"),\n\t}\n\n\t// Act\n\tdao := gnome.MustNew(name, title, gnome.WithManifest(manifest), gnome.WithMembers(\n\t\tgnome.NewMember(addresses[0]),\n\t\tgnome.NewMember(addresses[1]),\n\t))\n\n\t// Assert\n\tif got := dao.Name(); got != name {\n\t\tt.Fatalf(\"expected name: %d, got: %d\", name, got)\n\t}\n\n\tif got := dao.CreatedAt(); got.IsZero() {\n\t\tt.Fatalf(\"expected a valid creation time, got: '%s'\", got.String())\n\t}\n\n\tif got := dao.Title(); got != title {\n\t\tt.Fatalf(\"expected title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := dao.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected manifest: '%s', got: '%s'\", manifest, got)\n\t}\n\n\tif got := dao.Parent(); got != nil {\n\t\tt.Fatalf(\"expected no parent DAO, got: '%s'\", got.Name())\n\t}\n\n\tif c := len(dao.SubDAOs()); c != 0 {\n\t\tt.Fatalf(\"expected no sub DAO nodes, got %d node(s)\", c)\n\t}\n\n\tif dao.IsSuperCouncil() {\n\t\tt.Fatal(\"expected DAO not to be a super council\")\n\t}\n\n\tif c := len(dao.Members()); c != len(addresses) {\n\t\tt.Fatalf(\"expected %d DAO members, got %d\", len(addresses), c)\n\t}\n\n\tfor _, addr := range addresses {\n\t\tif !dao.HasMember(addr) {\n\t\t\tt.Fatalf(\"expected member %s to be a member of DAO\", addr)\n\t\t}\n\n\t\tm, found := dao.GetMember(addr)\n\t\tif !found {\n\t\t\tt.Fatalf(\"expected member %s to be found\", addr)\n\t\t}\n\n\t\tif m.Address != addr {\n\t\t\tt.Fatalf(\"expected member to have address %s, got: %s\", addr, m.Address)\n\t\t}\n\t}\n}\n\nfunc TestDAOAddMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tmember gnome.Member\n\t\tmembersCount int\n\t\tshouldExist bool\n\t\tsetup func(*gnome.DAO)\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 1,\n\t\t\tshouldExist: true,\n\t\t},\n\t\t{\n\t\t\tname: \"existing\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 2,\n\t\t\tshouldExist: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member2\"))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 2,\n\t\t\tshouldExist: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member\"))\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := gnome.MustNew(\"test\", \"Test\")\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(dao)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tdao.AddMember(tc.member)\n\n\t\t\t// Assert\n\t\t\tif got := dao.HasMember(tc.member.Address); got != tc.shouldExist {\n\t\t\t\tt.Fatalf(\"expected has member call to return %v, got: %v\", tc.shouldExist, got)\n\t\t\t}\n\n\t\t\tm, found := dao.GetMember(tc.member.Address)\n\t\t\tif found != tc.shouldExist {\n\t\t\t\tt.Fatalf(\"expected member getter to return %v, got: %v\", tc.shouldExist, found)\n\t\t\t}\n\n\t\t\tif tc.shouldExist \u0026\u0026 m.Address != tc.member.Address {\n\t\t\t\tt.Fatalf(\"expected added member to have adderss %s, got: %s\", tc.member, m)\n\t\t\t}\n\n\t\t\tmembers := dao.Members()\n\t\t\tif c := len(members); c != tc.membersCount {\n\t\t\t\tt.Fatalf(\"expected %d member(s), got: %d\", tc.membersCount, c)\n\t\t\t}\n\n\t\t\tif len(members) \u003e 0 {\n\t\t\t\tm = members[len(members)-1]\n\t\t\t\tif m.Address != tc.member.Address {\n\t\t\t\t\tt.Fatalf(\"expected last added member address: %s, got: %s\", tc.member.Address, m.Address)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAORemoveMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tmember gnome.Member\n\t\tsetup func(*gnome.DAO)\n\t\tresult bool\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tresult: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member\"))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"missing\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := gnome.MustNew(\"test\", \"Test\")\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(dao)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tresult := dao.RemoveMember(tc.member.Address)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif dao.HasMember(tc.member.Address) {\n\t\t\t\tt.Fatal(\"member shouldn't exist\")\n\t\t\t}\n\n\t\t\tif _, found := dao.GetMember(tc.member.Address); found {\n\t\t\t\tt.Fatal(\"expected member getter to return false\")\n\t\t\t}\n\n\t\t\tif c := len(dao.Members()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected no DAO members, got: %d\", c)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAOAddSubDAO(t *testing.T) {\n\tcases := []struct {\n\t\tname, path string\n\t\tchildren int\n\t\tdao, subDAO *gnome.DAO\n\t\tresult bool\n\t\tsetup func(*gnome.DAO)\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"main\", \"Main\"),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t\tchildren: 1,\n\t\t\tpath: \"main/foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with children\",\n\t\t\tdao: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"bar\", \"Bar\")),\n\t\t\t),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t\tchildren: 2,\n\t\t\tpath: \"main/foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate\",\n\t\t\tdao: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tresult := tc.dao.AddSubDAO(tc.subDAO)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif result {\n\t\t\t\tif got := tc.subDAO.Path(); got != tc.path {\n\t\t\t\t\tt.Fatalf(\"expected path to be '%s', got: '%s'\", tc.path, got)\n\t\t\t\t}\n\n\t\t\t\tif c := len(tc.dao.SubDAOs()); c != tc.children {\n\t\t\t\t\tt.Fatalf(\"expected %d sub DAO node(s), got %d node(s)\", tc.children, c)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAORemoveSubDAO(t *testing.T) {\n\tcases := []struct {\n\t\tname, subName string\n\t\tchildren int\n\t\tsubDAO *gnome.DAO\n\t\tresult bool\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsubDAO: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t),\n\t\t\tsubName: \"foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with children\",\n\t\t\tsubDAO: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"bar\", \"Bar\")),\n\t\t\t),\n\t\t\tsubName: \"foo\",\n\t\t\tchildren: 1,\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"missing\",\n\t\t\tsubName: \"foo\",\n\t\t\tsubDAO: gnome.MustNew(\"main\", \"Main\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tresult := tc.subDAO.RemoveSubDAO(tc.subName)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif result {\n\t\t\t\tif c := len(tc.subDAO.SubDAOs()); c != tc.children {\n\t\t\t\t\tt.Fatalf(\"expected %d sub DAO node(s), got %d node(s)\", tc.children, c)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAOTree(t *testing.T) {\n\tdaoA1 := gnome.MustNew(\"a1\", \"A1\")\n\tdaoA2 := gnome.MustNew(\"a2\", \"A2\")\n\tdaoA := gnome.MustNew(\"a\", \"A\", gnome.WithSubDAO(daoA1), gnome.WithSubDAO(daoA2))\n\tdaoB1 := gnome.MustNew(\"b1\", \"B1\")\n\tdaoB := gnome.MustNew(\"b\", \"B\", gnome.WithSubDAO(daoB1))\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithSubDAO(daoA), gnome.WithSubDAO(daoB))\n\n\tcases := []struct {\n\t\tname, path string\n\t\tdao *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"root\",\n\t\t\tpath: \"main\",\n\t\t\tdao: dao,\n\t\t},\n\t\t{\n\t\t\tname: \"path a\",\n\t\t\tpath: \"main/a\",\n\t\t\tdao: daoA,\n\t\t},\n\t\t{\n\t\t\tname: \"path a1\",\n\t\t\tpath: \"main/a/a1\",\n\t\t\tdao: daoA1,\n\t\t},\n\t\t{\n\t\t\tname: \"path a2\",\n\t\t\tpath: \"main/a/a2\",\n\t\t\tdao: daoA2,\n\t\t},\n\t\t{\n\t\t\tname: \"path b\",\n\t\t\tpath: \"main/b\",\n\t\t\tdao: daoB,\n\t\t},\n\t\t{\n\t\t\tname: \"path b1\",\n\t\t\tpath: \"main/b/b1\",\n\t\t\tdao: daoB1,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid\",\n\t\t\tpath: \"foo\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid sub path\",\n\t\t\tpath: \"foo/bar\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tsubDAO, found := dao.GetDAO(tc.path)\n\n\t\t\t// Assert\n\t\t\tif subDAO != tc.dao {\n\t\t\t\tif !found {\n\t\t\t\t\tt.Fatalf(\"DAO for path '%s' not found\", tc.path)\n\t\t\t\t} else {\n\t\t\t\t\tt.Fatalf(\"unexpected DAO for path '%s': '%s'\", tc.path, subDAO.Name())\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif found \u0026\u0026 subDAO.Path() != tc.path {\n\t\t\t\tt.Fatalf(\"expected DAO to return path '%s': got '%s'\", tc.path, subDAO.Path())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"id.gno","body":"package dao\n\nimport (\n\t\"encoding/binary\"\n\t\"strconv\"\n)\n\n// ID defines a generic ID type.\ntype ID uint64\n\n// String returns the value of the ID as a string.\nfunc (id ID) String() string {\n\treturn strconv.FormatUint(uint64(id), 10)\n}\n\n// Key returns the binary representation of the ID to be used as key for AVL trees.\nfunc (id ID) Key() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(id))\n\treturn string(buf)\n}\n\n// ConvertKeyToID converts a key to an ID.\n// Key is a binary representation of an ID.\nfunc ConvertKeyToID(key string) (ID, bool) {\n\tif len(key) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(key))), true\n}\n"},{"name":"invar.gno","body":"package dao\n\n// TODO: Remove this file if Gno implements invar (inmutable) references\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\nfunc NewInvarProposalStrategy(s ProposalStrategy) InvarProposalStrategy {\n\treturn InvarProposalStrategy{s}\n}\n\ntype InvarProposalStrategy struct {\n\tref ProposalStrategy\n}\n\nfunc (s InvarProposalStrategy) Name() string {\n\treturn s.ref.Name()\n}\n\nfunc (s InvarProposalStrategy) Quorum() float64 {\n\treturn s.ref.Quorum()\n}\n\nfunc (s InvarProposalStrategy) VotingPeriod() time.Duration {\n\treturn s.ref.VotingPeriod()\n}\n\nfunc (s InvarProposalStrategy) VoteChoices() []VoteChoice {\n\treturn s.ref.VoteChoices()\n}\n\nfunc (s InvarProposalStrategy) RenderParams() string {\n\tif r, ok := s.ref.(ParamsRenderer); ok {\n\t\treturn r.RenderParams()\n\t}\n\treturn \"\"\n}\n\nfunc NewInvarVote(v Vote) InvarVote {\n\treturn InvarVote{\n\t\tAddress: v.Address,\n\t\tChoice: v.Choice,\n\t\tReason: v.Reason,\n\t\tDAO: NewInvarDAO(v.DAO),\n\t\tCreatedAt: v.CreatedAt,\n\t}\n}\n\ntype InvarVote struct {\n\tAddress std.Address\n\tChoice VoteChoice\n\tReason string\n\tDAO InvarDAO\n\tCreatedAt time.Time\n}\n\nfunc NewInvarDAO(dao *DAO) InvarDAO {\n\treturn InvarDAO{dao}\n}\n\ntype InvarDAO struct {\n\tref *DAO\n}\n\nfunc (dao InvarDAO) Name() string {\n\treturn dao.ref.Name()\n}\n\nfunc (dao InvarDAO) Title() string {\n\treturn dao.ref.Title()\n}\n\nfunc (dao InvarDAO) Manifest() string {\n\treturn dao.ref.Manifest()\n}\n\nfunc (dao InvarDAO) CreatedAt() time.Time {\n\treturn dao.ref.CreatedAt()\n}\n\nfunc (dao InvarDAO) Parent() (_ InvarDAO, exists bool) {\n\tif p := dao.ref.Parent(); p != nil {\n\t\treturn NewInvarDAO(p), true\n\t}\n\treturn InvarDAO{}, false\n}\n\nfunc (dao InvarDAO) Path() string {\n\treturn dao.ref.Path()\n}\n\nfunc (dao InvarDAO) SubDAOs() (daos []InvarDAO) {\n\tfor _, sub := range dao.ref.SubDAOs() {\n\t\tdaos = append(daos, NewInvarDAO(sub))\n\t}\n\treturn\n}\n\nfunc (dao InvarDAO) Members() []Member {\n\treturn dao.ref.Members()\n}\n\nfunc (dao InvarDAO) LockReason() string {\n\treturn dao.ref.LockReason()\n}\n\nfunc (dao InvarDAO) IsSuperCouncil() bool {\n\treturn dao.ref.IsSuperCouncil()\n}\n\nfunc (dao InvarDAO) IsLocked() bool {\n\treturn dao.ref.IsLocked()\n}\n\nfunc (dao InvarDAO) IsRoot() bool {\n\treturn dao.ref.IsRoot()\n}\n\nfunc NewInvarProposal(p *Proposal) InvarProposal {\n\treturn InvarProposal{p}\n}\n\ntype InvarProposal struct {\n\tref *Proposal\n}\n\nfunc (p InvarProposal) ID() ID {\n\treturn p.ref.ID()\n}\n\nfunc (p InvarProposal) DAO() InvarDAO {\n\treturn NewInvarDAO(p.ref.DAO())\n}\n\nfunc (p InvarProposal) InitialDAO() InvarDAO {\n\treturn NewInvarDAO(p.ref.InitialDAO())\n}\n\nfunc (p InvarProposal) Strategy() InvarProposalStrategy {\n\treturn NewInvarProposalStrategy(p.ref.Strategy())\n}\n\nfunc (p InvarProposal) Title() string {\n\treturn p.ref.Title()\n}\n\nfunc (p InvarProposal) Description() string {\n\treturn p.ref.Description()\n}\n\nfunc (p InvarProposal) Realm() string {\n\treturn p.ref.Realm()\n}\n\nfunc (p InvarProposal) StatusReason() string {\n\treturn p.ref.StatusReason()\n}\n\nfunc (p InvarProposal) Proposer() std.Address {\n\treturn p.ref.Proposer()\n}\n\nfunc (p InvarProposal) Choice() VoteChoice {\n\treturn p.ref.Choice()\n}\n\nfunc (p InvarProposal) CreatedAt() time.Time {\n\treturn p.ref.CreatedAt()\n}\n\nfunc (p InvarProposal) Promotions() (daos []InvarDAO) {\n\tfor _, dao := range p.ref.Promotions() {\n\t\tdaos = append(daos, NewInvarDAO(dao))\n\t}\n\treturn\n}\n\nfunc (p InvarProposal) VotingDeadline() time.Time {\n\treturn p.ref.VotingDeadline()\n}\n\nfunc (p InvarProposal) ReviewDeadline() time.Time {\n\treturn p.ref.ReviewDeadline()\n}\n\nfunc (p InvarProposal) VoteChangeDuration() time.Duration {\n\treturn p.ref.VoteChangeDuration()\n}\n\nfunc (p InvarProposal) Status() ProposalStatus {\n\treturn p.ref.Status()\n}\n\nfunc (p InvarProposal) Votes() (votes []InvarVote) {\n\tfor _, v := range p.ref.Votes() {\n\t\tvotes = append(votes, NewInvarVote(v))\n\t}\n\treturn\n}\n\nfunc (p InvarProposal) VotingRecord() InvarVotingRecord {\n\treturn NewInvarVotingRecord(p.ref.VotingRecord())\n}\n\nfunc (p InvarProposal) VotingRecords() (records []InvarVotingRecord) {\n\tfor _, r := range p.ref.VotingRecords() {\n\t\trecords = append(records, NewInvarVotingRecord(r))\n\t}\n\treturn\n}\n\nfunc NewInvarVotingRecord(r *VotingRecord) InvarVotingRecord {\n\treturn InvarVotingRecord{r}\n}\n\ntype InvarVotingRecord struct {\n\tref *VotingRecord\n}\n\nfunc (r InvarVotingRecord) Votes() (votes []InvarVote) {\n\tfor _, v := range r.ref.Votes() {\n\t\tvotes = append(votes, NewInvarVote(v))\n\t}\n\treturn\n}\n\nfunc (r InvarVotingRecord) VoteCount() int {\n\treturn r.ref.VoteCount()\n}\n\nfunc (r InvarVotingRecord) Get(c VoteChoice) uint {\n\treturn r.ref.Get(c)\n}\n\nfunc (r InvarVotingRecord) Iterate(fn VotingRecordIterFn) bool {\n\treturn r.ref.Iterate(fn)\n}\n"},{"name":"params.gno","body":"package dao\n\nimport (\n\t\"math\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\t// DurationIterFn defines the a callback to iterate duration values.\n\tDurationIterFn func(name string, _ time.Duration) bool\n\n\t// DurationParams contains duration values for different parameters.\n\tDurationParams struct {\n\t\tparams avl.Tree // string(parameter name) -\u003e time.Duration\n\t}\n)\n\n// Set sets or updates a parameter value.\nfunc (p *DurationParams) Set(name string, v time.Duration) bool {\n\treturn p.params.Set(name, v)\n}\n\n// Get gets a parameter value.\nfunc (p DurationParams) Get(name string) (_ time.Duration, found bool) {\n\tif v, found := p.params.Get(name); found {\n\t\treturn v.(time.Duration), true\n\t}\n\treturn 0, false\n}\n\n// Size returns the number of duration parameters.\nfunc (p DurationParams) Size() int {\n\treturn p.params.Size()\n}\n\n// Iterate iterates duration parameter values.\nfunc (p DurationParams) Iterate(fn DurationIterFn) bool {\n\treturn p.params.Iterate(\"\", \"\", func(name string, v interface{}) bool {\n\t\treturn fn(name, v.(time.Duration))\n\t})\n}\n\n// HumanizeDuration returns a friendlier text representation of a duration.\nfunc HumanizeDuration(d time.Duration) string { // TODO: Change to use singular/plurals\n\tif d == 0 {\n\t\treturn \"\"\n\t}\n\n\tif sec := d.Seconds(); sec \u003c 60 {\n\t\treturn ufmt.Sprintf(\"%d seconds\", int(sec))\n\t}\n\n\tif m := d.Minutes(); m \u003c 60 {\n\t\tsec := math.Mod(d.Seconds(), 60)\n\t\tif sec \u003c 1 {\n\t\t\treturn ufmt.Sprintf(\"%d minutes\", int(m))\n\t\t}\n\t\treturn ufmt.Sprintf(\"%d minutes %d seconds\", int(m), int(sec))\n\t}\n\n\tif hs := d.Hours(); hs \u003c 24 {\n\t\tm := math.Mod(d.Minutes(), 60)\n\t\tif m \u003c 1 {\n\t\t\treturn ufmt.Sprintf(\"%d hours\", int(hs))\n\t\t}\n\n\t\tsec := math.Mod(d.Seconds(), 60)\n\t\tif sec \u003c 1 {\n\t\t\treturn ufmt.Sprintf(\"%d hours %d minutes\", int(hs), int(m))\n\t\t}\n\t\treturn ufmt.Sprintf(\"%d hours %d minutes %d seconds\", int(hs), int(m), int(sec))\n\t}\n\n\tdays := d.Hours() / 24\n\ths := math.Mod(d.Hours(), 24)\n\tif hs \u003c 1 {\n\t\treturn ufmt.Sprintf(\"%d days\", int(days))\n\t}\n\n\tm := math.Mod(d.Minutes(), 60)\n\tif m \u003c 0 {\n\t\treturn ufmt.Sprintf(\"%d days %d hours\", int(days), int(hs))\n\t}\n\n\tsec := math.Mod(d.Seconds(), 60)\n\tif sec \u003c 1 {\n\t\treturn ufmt.Sprintf(\"%d days %d hours %d minutes\", int(days), int(hs), int(m))\n\t}\n\treturn ufmt.Sprintf(\"%d days %d hours %d minutes %d seconds\", int(days), int(hs), int(m), int(sec))\n}\n"},{"name":"proposal.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tStatusReview ProposalStatus = iota\n\tStatusActive\n\tStatusPassed\n\tStatusRejected\n\tStatusWithdrawed\n\tStatusDismissed\n\tStatusFailed\n)\n\nconst (\n\t// TODO: Add more choices which also should be configurable (use a different type?)\n\tChoiceNone VoteChoice = \"\"\n\tChoiceYes VoteChoice = \"yes\"\n\tChoiceNo VoteChoice = \"no\"\n)\n\nconst (\n\tdefaultVoteChangeDuration = time.Hour\n\texecutionErrorMsg = \"proposal execution error\"\n)\n\nvar (\n\tErrAlreadyVoted = errors.New(\"member already voted on this proposal\")\n\tErrInvalidReason = errors.New(\"reason must have at least 5 characters\")\n\tErrInvalidVoteChoice = errors.New(\"invalid vote choice\")\n\tErrMemberVoteNotAllowed = errors.New(\"you must be a DAO or parent DAO member to vote\")\n\tErrProposalPromote = errors.New(\"proposals can only be promoted to a parent DAO\")\n\tErrProposalVotingDeadlineMet = errors.New(\"proposal voting deadline already met\")\n\tErrProposalNotActive = errors.New(\"proposal is not active\")\n\tErrProposalNotPassed = errors.New(`proposal status must be \"passed\"`)\n\tErrReasonRequired = errors.New(\"reason is required\")\n\tErrReviewStatusRequired = errors.New(`proposal status must be \"review\"`)\n)\n\ntype (\n\t// ExecutionError indicates that proposal execution failed.\n\tExecutionError struct {\n\t\t// Reason contains the error or error message with the reason of the error.\n\t\tReason interface{}\n\t}\n\n\t// ProposalIterFn defines the a callback to iterate proposals.\n\tProposalIterFn func(*Proposal) bool\n\n\t// ProposalOption configures proposals.\n\tProposalOption func(*Proposal)\n\n\t// ProposalStatus defines the type for proposal states.\n\tProposalStatus uint8\n\n\t// VoteChoice defines the type for proposal vote choices.\n\tVoteChoice string\n\n\t// Vote contains the information for a member vote.\n\tVote struct {\n\t\t// Address is the DAO member address.\n\t\tAddress std.Address\n\n\t\t// Choice is the proposal choice being voted.\n\t\tChoice VoteChoice\n\n\t\t// Reason contains the reason for the vote.\n\t\tReason string\n\n\t\t// DAO contains the DAO that the proposal being voted belongs to.\n\t\tDAO *DAO\n\n\t\t// CreatedAt contains the time when the vote was submitted.\n\t\tCreatedAt time.Time\n\t}\n)\n\n// Error returns the execution error message.\nfunc (e ExecutionError) Error() string {\n\tswitch v := e.Reason.(type) {\n\tcase string:\n\t\treturn executionErrorMsg + \": \" + v\n\tcase error:\n\t\treturn executionErrorMsg + \": \" + v.Error()\n\tdefault:\n\t\treturn executionErrorMsg\n\t}\n}\n\n// String returns the proposal status name.\nfunc (s ProposalStatus) String() string {\n\tswitch s {\n\tcase StatusReview:\n\t\treturn \"review\"\n\tcase StatusActive:\n\t\treturn \"active\"\n\tcase StatusPassed:\n\t\treturn \"passed\"\n\tcase StatusRejected:\n\t\treturn \"rejected\"\n\tcase StatusWithdrawed:\n\t\treturn \"withdrawed\"\n\tcase StatusDismissed:\n\t\treturn \"dismissed\"\n\tcase StatusFailed:\n\t\treturn \"failed\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// IsFinal checks if the status is a final status.\n// When a status is final it can't be changed to a different status.\n// Being final means that status signals the final outcome of a proposal.\nfunc (s ProposalStatus) IsFinal() bool {\n\tswitch s {\n\tcase StatusReview, StatusActive:\n\t\treturn false\n\tdefault:\n\t\treturn true\n\t}\n}\n\n// IsExecutionError checks if an error is an ExecutionError.\nfunc IsExecutionError(err error) bool {\n\tswitch err.(type) {\n\tcase ExecutionError:\n\t\treturn true\n\tcase *ExecutionError:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// WithDescription assigns a description to the proposal.\nfunc WithDescription(s string) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.description = s\n\t}\n}\n\n// WithVotingDeadline assigns a voting deadline to the proposal.\nfunc WithVotingDeadline(t time.Time) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.votingDeadline = t\n\t}\n}\n\n// WithReviewDeadline assigns a review deadline to the proposal.\n// Review status allows proposal withdraw within a time frame after the proposal is created.\n// Proposals must be activated when a review deadline is assigned.\nfunc WithReviewDeadline(t time.Time) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.reviewDeadline = t\n\t}\n}\n\n// WithVoteChangeDuration change the default grace period to change a submitted vote choice.\nfunc WithVoteChangeDuration(d time.Duration) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.voteChangeDuration = d\n\t}\n}\n\n// WithRealm sets the URI of the realm creating the proposal.\nfunc WithRealm(realm string) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.realm = realm\n\t}\n}\n\n// NewProposal creates a new proposal.\n// By default proposals use the standard strategy with a deadline of seven days.\nfunc NewProposal(\n\tid ID,\n\tstrategy ProposalStrategy,\n\tproposer std.Address,\n\tdao *DAO,\n\ttitle string,\n\toptions ...ProposalOption,\n) (*Proposal, error) {\n\tif dao == nil {\n\t\treturn nil, errors.New(\"proposal DAO is required\")\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\treturn nil, errors.New(\"proposal title is required\")\n\t}\n\n\tnow := time.Now()\n\tp := \u0026Proposal{\n\t\tid: id,\n\t\tproposer: proposer,\n\t\ttitle: title,\n\t\tvotingDeadline: now.Add(strategy.VotingPeriod()),\n\t\tvoteChangeDuration: defaultVoteChangeDuration,\n\t\tstrategy: strategy,\n\t\tdaos: []*DAO{dao},\n\t\tvotingRecords: []*VotingRecord{NewVotingRecord()},\n\t\tcreatedAt: now,\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(p)\n\t}\n\n\t// Create the proposal as active when a review deadline is not assigned\n\tif p.reviewDeadline.IsZero() {\n\t\tp.status = StatusActive\n\t}\n\n\treturn p, nil\n}\n\n// Proposal defines a DAO proposal.\ntype Proposal struct {\n\tid ID\n\ttitle string\n\tdescription string\n\trealm string\n\tproposer std.Address\n\tcreatedAt time.Time\n\tvotingDeadline time.Time\n\treviewDeadline time.Time\n\tvoteChangeDuration time.Duration\n\tstatus ProposalStatus\n\tstrategy ProposalStrategy\n\tdaos []*DAO\n\tvotingRecords []*VotingRecord\n\tchoice VoteChoice\n\tstatusReason string\n}\n\n// ID returns the proposal ID.\nfunc (p Proposal) ID() ID {\n\treturn p.id\n}\n\n// DAO returns the DAO that the proposal is assigned to.\n// If proposal has been promoted the returned DAO is the one where proposal has been promoted to.\nfunc (p Proposal) DAO() *DAO {\n\tcount := len(p.daos)\n\tif count == 0 {\n\t\tpanic(\"proposal is not assigned to a DAO\")\n\t}\n\treturn p.daos[count-1]\n}\n\n// InitialDAO returns the the DAO that was assigned during proposal creation.\nfunc (p Proposal) InitialDAO() *DAO {\n\tif len(p.daos) \u003e 0 {\n\t\treturn p.daos[0]\n\t}\n\treturn nil\n}\n\n// Strategy returns the strategy of the proposal.\nfunc (p Proposal) Strategy() ProposalStrategy {\n\treturn p.strategy\n}\n\n// Title returns the title of the proposal.\nfunc (p Proposal) Title() string {\n\treturn p.title\n}\n\n// Description returns the description of the proposal.\nfunc (p Proposal) Description() string {\n\treturn p.description\n}\n\n// Realm returns the realm that created the proposal.\nfunc (p Proposal) Realm() string {\n\treturn p.realm\n}\n\n// StatusReason returns the reason that triggered the current proposal status.\n// Reason is relevant for some statuses like dismissed or failed.\nfunc (p Proposal) StatusReason() string {\n\treturn p.statusReason\n}\n\n// Proposer returns the address of the member that created the proposal.\nfunc (p Proposal) Proposer() std.Address {\n\treturn p.proposer\n}\n\n// Choice returns the winner choice.\nfunc (p Proposal) Choice() VoteChoice {\n\treturn p.choice\n}\n\n// CreatedAt returns the creation time of the proposal.\nfunc (p Proposal) CreatedAt() time.Time {\n\treturn p.createdAt\n}\n\n// Promotions returns the list of DAOs where the proposal has been promoted.\n// The result is nil when the proposal has never been promoted to another DAO.\nfunc (p Proposal) Promotions() []*DAO {\n\tif p.HasBeenPromoted() {\n\t\treturn p.daos\n\t}\n\treturn nil\n}\n\n// VotingDeadline returns the voting deadline for the proposal.\n// No more votes are allowed after this deadline.\nfunc (p Proposal) VotingDeadline() time.Time {\n\treturn p.votingDeadline\n}\n\n// ReviewDeadline returns the deadline for proposal review.\nfunc (p Proposal) ReviewDeadline() time.Time {\n\treturn p.reviewDeadline\n}\n\n// VoteChangeDuration returns the duration after voting where users can change the voted choice.\nfunc (p Proposal) VoteChangeDuration() time.Duration {\n\treturn p.voteChangeDuration\n}\n\n// Status returns the status of the proposal.\nfunc (p Proposal) Status() ProposalStatus {\n\treturn p.status\n}\n\n// Votes returns the proposal votes.\nfunc (p Proposal) Votes() []Vote {\n\treturn p.VotingRecord().Votes()\n}\n\n// VotingRecord returns the voting record of the proposal for the current DAO.\n// The record contains the number of votes for each voting choice.\nfunc (p Proposal) VotingRecord() *VotingRecord {\n\tcount := len(p.votingRecords)\n\tif count == 0 {\n\t\tpanic(\"proposal has not voting records\")\n\t}\n\treturn p.votingRecords[count-1]\n}\n\n// VotingRecords returns all voting records of the proposal.\n// Each record contains the number of votes for each DAO that the proposal was promoted to.\nfunc (p Proposal) VotingRecords() []*VotingRecord {\n\treturn p.votingRecords\n}\n\n// IsExecutable checks if the proposal is executable.\nfunc (p Proposal) IsExecutable() bool {\n\t_, ok := p.strategy.(Executer)\n\treturn ok\n}\n\n// IsChoiceAllowed checks if a vote choice is valid for the proposal.\nfunc (p Proposal) IsChoiceAllowed(choice VoteChoice) bool {\n\tfor _, c := range p.strategy.VoteChoices() {\n\t\tif c == choice {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// HasVotingDeadlinePassed checks if the voting deadline for the proposal has passed.\nfunc (p Proposal) HasVotingDeadlinePassed() bool {\n\treturn time.Now().After(p.votingDeadline)\n}\n\n// HasReviewDeadlinePassed checks if the deadline for proposal review has passed.\nfunc (p Proposal) HasReviewDeadlinePassed() bool {\n\treturn time.Now().After(p.reviewDeadline)\n}\n\n// HasBeenPromoted checks if the proposal has been promoted to another DAO.\nfunc (p Proposal) HasBeenPromoted() bool {\n\treturn len(p.daos) \u003e 1\n}\n\n// HasPromotion checks if proposal has been promoted to a DAO.\nfunc (p Proposal) HasPromotion(daoPath string) bool {\n\tfor _, dao := range p.Promotions() {\n\t\tif dao.Path() == daoPath {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// GetVotingRecord returns the voting record of a DAO.\n// Proposals can have more than one voting record if they are promoted to parent DAOs.\nfunc (p Proposal) GetVotingRecord(daoPath string) (_ *VotingRecord, found bool) {\n\tfor i, dao := range p.daos {\n\t\tif dao.Path() == daoPath {\n\t\t\t// Voting record index must match the DAO promotions index\n\t\t\treturn p.votingRecords[i], true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// Withdraw changes the status of the proposal to withdrawed.\n// Proposal must have status \"review\" to be withdrawed.\nfunc (p *Proposal) Withdraw() error {\n\tif p.status != StatusReview {\n\t\treturn ErrReviewStatusRequired\n\t}\n\n\tp.status = StatusWithdrawed\n\treturn nil\n}\n\n// Dismiss dismisses a proposal.\nfunc (p *Proposal) Dismiss(reason string) error {\n\treason = strings.TrimSpace(reason)\n\tif reason == \"\" {\n\t\treturn ErrReasonRequired\n\t}\n\n\tp.statusReason = reason\n\tp.status = StatusDismissed\n\treturn nil\n}\n\n// Fail changes the proposal status to failed.\nfunc (p *Proposal) Fail(reason string) error {\n\treason = strings.TrimSpace(reason)\n\tif reason == \"\" {\n\t\treturn ErrReasonRequired\n\t}\n\n\tp.statusReason = reason\n\tp.status = StatusFailed\n\treturn nil\n}\n\n// Activate changes the status of the proposal to active.\n// Proposal must have status \"review\" to be activated.\nfunc (p *Proposal) Activate() error {\n\tif p.status != StatusReview {\n\t\treturn ErrReviewStatusRequired\n\t}\n\n\tp.status = StatusActive\n\treturn nil\n}\n\n// Promote promotes the proposal to a parent DAO.\n// Promoting extends the voting deadline by the voting period defined for the proposal\n// strategy and also creates a new voting record for the parent DAO members.\nfunc (p *Proposal) Promote(dao *DAO) error {\n\tif !p.DAO().HasParent(dao) {\n\t\treturn ErrProposalPromote\n\t}\n\n\tp.daos = append(p.daos, dao)\n\tp.votingRecords = append(p.votingRecords, NewVotingRecord())\n\tp.votingDeadline = time.Now().Add(p.strategy.VotingPeriod())\n\treturn nil\n}\n\n// Vote submits a vote for the proposal.\nfunc (p *Proposal) Vote(addr std.Address, choice VoteChoice, reason string) error {\n\tif p.status != StatusActive {\n\t\treturn ErrProposalNotActive\n\t}\n\n\tnow := time.Now()\n\tif p.votingDeadline.Before(now) {\n\t\treturn ErrProposalVotingDeadlineMet\n\t}\n\n\tif !p.IsChoiceAllowed(choice) {\n\t\treturn ErrInvalidVoteChoice\n\t}\n\n\tif reason != \"\" {\n\t\treason = strings.TrimSpace(reason)\n\t\tif len(reason) \u003c 5 {\n\t\t\treturn ErrInvalidReason\n\t\t}\n\t}\n\n\t// When there is a vote for the account check if it's voting within the\n\t// grace period that allows changing the voted choice. This allows to\n\t// correct mistakes made when seding the vote TX within a small time frame.\n\t// TODO: Add a unit test case to check vote change\n\trecord := p.VotingRecord()\n\tfor _, v := range record.Votes() {\n\t\tif v.Address == addr {\n\t\t\tif v.CreatedAt.Add(p.voteChangeDuration).Before(now) {\n\t\t\t\treturn ErrAlreadyVoted\n\t\t\t}\n\n\t\t\trecord.Remove(addr)\n\t\t}\n\t}\n\n\t// Check the vote being submitted if vote check is required\n\tif c, ok := p.strategy.(VoteChecker); ok {\n\t\tif err := c.CheckVote(addr, choice, reason); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Account must be a member of the proposal's DAO or any of its parents to be allowed to vote\n\tvar dao *DAO\n\tif p.DAO().HasMember(addr) {\n\t\t// When the account is member of the proposal's DAO its vote is accounted\n\t\t// as a vote from this DAO even if its also member of a parent DAO.\n\t\tdao = p.DAO()\n\t} else {\n\t\t// Try to find the higher order DAO that the account is member of\n\t\tdao = findBelongingDAO(addr, p.DAO().Parent())\n\t}\n\n\tif dao == nil {\n\t\treturn ErrMemberVoteNotAllowed\n\t}\n\n\trecord.Add(Vote{\n\t\tAddress: addr,\n\t\tChoice: choice,\n\t\tReason: reason,\n\t\tDAO: dao,\n\t\tCreatedAt: time.Now(),\n\t})\n\n\treturn nil\n}\n\n// Tally counts the number of votes and updates the proposal status accordingly.\n// The outcome of counting the votes depends on the proposal strategy.\n// This function does NOT check the voting deadline, it's responsibility of the caller to do so.\nfunc (p *Proposal) Tally() error {\n\tif p.status != StatusActive {\n\t\treturn ErrProposalNotActive\n\t}\n\n\t// Check if the required quorum is met\n\trecord := p.VotingRecord()\n\tpercentage := float64(record.VoteCount()) / float64(len(p.DAO().Members()))\n\tif percentage \u003c p.strategy.Quorum() {\n\t\tp.status = StatusRejected\n\t\tp.statusReason = \"low participation\"\n\t\treturn nil\n\t}\n\n\t// Tally votes and update proposal with the outcome\n\tchoice := p.strategy.Tally(p.DAO(), *record)\n\n\tswitch choice {\n\tcase ChoiceYes:\n\t\tp.choice = ChoiceYes\n\t\tp.status = StatusPassed\n\tcase ChoiceNo:\n\t\tp.choice = ChoiceNo\n\t\tp.status = StatusRejected\n\tdefault:\n\t\tp.status = StatusRejected\n\t}\n\treturn nil\n}\n\nfunc (p *Proposal) Validate() error {\n\tif v, ok := p.strategy.(Validator); ok {\n\t\tif err := v.Validate(p); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Execute executes the proposal.\nfunc (p *Proposal) Execute() error { // TODO: Write test for proposal execute\n\tif p.status != StatusPassed {\n\t\treturn ErrProposalNotPassed\n\t}\n\n\tif e, ok := p.strategy.(Executer); ok {\n\t\tif err := p.Validate(); err != nil {\n\t\t\treturn ExecutionError{err}\n\t\t}\n\n\t\tif err := e.Execute(p.InitialDAO()); err != nil {\n\t\t\treturn ExecutionError{err}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc findBelongingDAO(addr std.Address, node *DAO) *DAO {\n\tif node == nil {\n\t\treturn nil\n\t}\n\n\t// Before checking the current DAO try to find\n\t// if address is a member of a higher order DAO\n\tdao := findBelongingDAO(addr, node.parent)\n\tif dao == nil \u0026\u0026 node.HasMember(addr) {\n\t\treturn node\n\t}\n\treturn nil\n}\n"},{"name":"proposal_test.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nvar (\n\tfutureTime = time.Now().Add(time.Hour)\n\tzeroTime = time.Time{}\n)\n\n// TODO: Improve proposal unit test using test cases and adding missing methods\nfunc TestProposal(t *testing.T) {\n\tcases := []struct {\n\t\tname, title, description string\n\t\tdao *gnome.DAO\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"test\", \"Test\"),\n\t\t\ttitle: \"Proposal\",\n\t\t\tdescription: \"Test proposal\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty DAO\",\n\t\t\terr: errors.New(\"proposal DAO is required\"),\n\t\t},\n\t\t{\n\t\t\tname: \"empty title\",\n\t\t\tdao: gnome.MustNew(\"test\", \"Test\"),\n\t\t\terr: errors.New(\"proposal title is required\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tid := gnome.ID(1)\n\t\t\tproposer := testutils.TestAddress(\"proposer\")\n\t\t\tstrategy := testStrategy{}\n\t\t\tstatus := gnome.StatusActive\n\t\t\topts := []gnome.ProposalOption{\n\t\t\t\tgnome.WithDescription(tc.description),\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tproposal, err := gnome.NewProposal(id, strategy, proposer, tc.dao, tc.title, opts...)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.ID(); got != id {\n\t\t\t\tt.Fatalf(\"expected ID: %d, got: %d\", id, got)\n\t\t\t}\n\n\t\t\tif got := proposal.DAO(); got.Name() != tc.dao.Name() {\n\t\t\t\tt.Fatalf(\"expected DAO: '%s', got: '%s'\", tc.dao.Name(), got.Name())\n\t\t\t}\n\n\t\t\tif got := proposal.Title(); got != tc.title {\n\t\t\t\tt.Fatalf(\"expected title: '%s', got: '%s'\", tc.title, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Description(); got != tc.description {\n\t\t\t\tt.Fatalf(\"expected description: '%s', got: '%s'\", tc.description, got)\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != \"\" {\n\t\t\t\tt.Fatalf(\"expected empty dismiss reason, got: '%s'\", got)\n\t\t\t}\n\n\t\t\tif got := proposal.Proposer(); got != proposer {\n\t\t\t\tt.Fatalf(\"expected proposer: '%s', got: '%s'\", proposer, got)\n\t\t\t}\n\n\t\t\tif got := proposal.CreatedAt(); got.IsZero() {\n\t\t\t\tt.Fatalf(\"expected a valid creation time, got: '%s'\", got.String())\n\t\t\t}\n\n\t\t\tif c := len(proposal.Promotions()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected an empty list of promotions, got: %d DAOs\", c)\n\t\t\t}\n\n\t\t\tif got := proposal.VotingDeadline(); got.IsZero() {\n\t\t\t\tt.Fatalf(\"expected a valid deadline time, got: '%s'\", got.String())\n\t\t\t}\n\n\t\t\tnow := time.Now()\n\t\t\tif got := proposal.VotingDeadline(); got.Before(now) { // TODO: Using after makes assertion fail (?)\n\t\t\t\tt.Fatalf(\"expected deadline to happen after: '%s', got: '%s'\", now.String(), got.String())\n\t\t\t}\n\n\t\t\tif got := proposal.Status(); got != status {\n\t\t\t\tt.Fatalf(\"expected status: %d, got: %d\", status, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Strategy().Name(); got != strategy.Name() {\n\t\t\t\tt.Fatalf(\"expected strategy: '%s', got: '%s'\", strategy.Name(), got)\n\t\t\t}\n\n\t\t\tif got := proposal.Strategy().Name(); got != strategy.Name() {\n\t\t\t\tt.Fatalf(\"expected strategy: '%s', got: '%s'\", strategy.Name(), got)\n\t\t\t}\n\n\t\t\tif c := len(proposal.Votes()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected no votes, got: %d votes\", c)\n\t\t\t}\n\n\t\t\tif c := proposal.VotingRecord().VoteCount(); c != 0 {\n\t\t\t\tt.Fatalf(\"expected an empty votes record, got: %d records\", c)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalWithdraw(t *testing.T) {\n\t// TODO: Test success cases where proposal status is review\n\twantErr := gnome.ErrReviewStatusRequired\n\twantStatus := gnome.StatusWithdrawed\n\tproposal := mustCreateProposal(t, testStrategy{}, gnome.WithReviewDeadline(futureTime))\n\n\tif err := proposal.Withdraw(); err != nil {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", err.Error())\n\t}\n\n\tif err := proposal.Withdraw(); err != wantErr {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", wantErr.Error(), err.Error())\n\t}\n\n\tif got := proposal.Status(); got != wantStatus {\n\t\tt.Fatalf(\"expected status: %d, got: %d\", wantStatus, got)\n\t}\n}\n\nfunc TestProposalDismiss(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason string\n\t\tstatus gnome.ProposalStatus\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Foo\",\n\t\t\tstatus: gnome.StatusDismissed,\n\t\t},\n\t\t{\n\t\t\tname: \"empty reason\",\n\t\t\terr: gnome.ErrReasonRequired,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{})\n\n\t\t\t// Act\n\t\t\terr := proposal.Dismiss(tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %s, got: %s\", tc.status.String(), got.String())\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected dismiss reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalActivate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tstatus gnome.ProposalStatus\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tstatus: gnome.StatusActive,\n\t\t},\n\t\t{\n\t\t\tname: \"review status required\",\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tp.Activate()\n\t\t\t},\n\t\t\terr: gnome.ErrReviewStatusRequired,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{}, gnome.WithReviewDeadline(futureTime))\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Activate()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %s, got: %s\", tc.status.String(), got.String())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalPromote(t *testing.T) {\n\tstrategy := testStrategy{}\n\taddr := testutils.TestAddress(\"proposer\")\n\tcases := []struct {\n\t\tname string\n\t\tdaoNames []string\n\t\tsetup func() (*gnome.Proposal, *gnome.DAO)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"promote to parent\",\n\t\t\tdaoNames: []string{\"child\", \"parent\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tparent := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, parent\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"promote to root\",\n\t\t\tdaoNames: []string{\"child\", \"root\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\troot := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child)),\n\t\t\t\t))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, root\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"promote to non parent\",\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, gnome.MustNew(\"foo\", \"Foo\")\n\t\t\t},\n\t\t\terr: gnome.ErrProposalPromote,\n\t\t},\n\t\t{\n\t\t\tname: \"promote with one promotion\",\n\t\t\tdaoNames: []string{\"child\", \"parent\", \"root\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tparent := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\troot := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(parent))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\tp.Promote(parent)\n\t\t\t\treturn p, root\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tp, dao := tc.setup()\n\n\t\t\tdeadline := time.Now().Add(-time.Hour * 24)\n\t\t\tp.votingDeadline = deadline // Change deadline to check that its resetted on promote\n\n\t\t\tp.VotingRecord().Add(gnome.Vote{}) // Add a single dummy vote for the current DAO\n\n\t\t\t// Act\n\t\t\terr := p.Promote(dao)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !p.HasBeenPromoted() {\n\t\t\t\tt.Fatal(\"expected proposal to be promotedt\")\n\t\t\t}\n\n\t\t\tif !p.HasPromotion(dao.Path()) {\n\t\t\t\tt.Fatal(\"expected proposal promotions to include the DAO\")\n\t\t\t}\n\n\t\t\tif got := p.VotingDeadline(); !got.After(deadline) {\n\t\t\t\tt.Fatalf(\"expected voting deadline to be greater than original deadline: %d, got: %d\", deadline.Unix(), got.Unix())\n\t\t\t}\n\n\t\t\tif p.VotingRecord().VoteCount() != 0 {\n\t\t\t\tt.Fatal(\"expected the voting record to be empty\")\n\t\t\t}\n\n\t\t\tpromotions := p.Promotions()\n\t\t\tif c := len(promotions); c != len(tc.daoNames) {\n\t\t\t\tt.Fatalf(\"expected promotions count: %d, got: %d DAOs\", len(tc.daoNames), c)\n\t\t\t}\n\n\t\t\tfor i, dao := range promotions {\n\t\t\t\tif got := dao.Name(); tc.daoNames[i] != got {\n\t\t\t\t\tt.Fatalf(\"expected DAO name: '%s', got: '%s'\", tc.daoNames[i], got)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalVote(t *testing.T) {\n\tmemberAddr := testutils.TestAddress(\"member\")\n\tsetupDAOMember := func(p *gnome.Proposal) {\n\t\tp.DAO().AddMember(gnome.NewMember(memberAddr))\n\t}\n\n\tcases := []struct {\n\t\tname, reason string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tvoteCount int\n\t\toptions []gnome.ProposalOption\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tvoteCount: 1,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal not active\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithReviewDeadline(futureTime),\n\t\t\t},\n\t\t\terr: gnome.ErrProposalNotActive,\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tsetupDAOMember(p)\n\t\t\t\tp.Withdraw()\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"vote with invalid reason\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"1234\",\n\t\t\terr: gnome.ErrInvalidReason,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"already voted\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tvoteCount: 1,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithVoteChangeDuration(-1),\n\t\t\t},\n\t\t\terr: gnome.ErrAlreadyVoted,\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tsetupDAOMember(p)\n\t\t\t\tp.Vote(memberAddr, gnome.ChoiceYes, \"\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"vote after proposal deadline\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithVotingDeadline(zeroTime),\n\t\t\t},\n\t\t\terr: gnome.ErrProposalVotingDeadlineMet,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote not allowed\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\terr: gnome.ErrMemberVoteNotAllowed,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{}, tc.options...)\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Vote(tc.address, tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\n\t\t\tvotes := proposal.Votes()\n\t\t\tvoteCount := len(votes)\n\t\t\tif voteCount != tc.voteCount {\n\t\t\t\tt.Fatalf(\"expected %d vote(s), got: %d\", tc.voteCount, voteCount)\n\t\t\t}\n\n\t\t\tif voteCount \u003e 0 {\n\t\t\t\tif got := votes[0].Address; got != tc.address {\n\t\t\t\t\tt.Fatalf(\"expected vote address: '%s', got: '%s'\", tc.address, got)\n\t\t\t\t}\n\n\t\t\t\tif got := votes[0].Choice; got != tc.choice {\n\t\t\t\t\tt.Fatalf(\"expected vote choice: '%s', got: '%s'\", tc.choice, got)\n\t\t\t\t}\n\n\t\t\t\tif got := votes[0].Reason; got != tc.reason {\n\t\t\t\t\tt.Fatalf(\"expected vote reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalTally(t *testing.T) {\n\taddresses := [3]std.Address{\n\t\ttestutils.TestAddress(\"member1\"),\n\t\ttestutils.TestAddress(\"member2\"),\n\t\ttestutils.TestAddress(\"member3\"),\n\t}\n\tsetupDAOMembers := func(p *gnome.Proposal) {\n\t\tdao := p.DAO()\n\t\tfor _, addr := range addresses {\n\t\t\tdao.AddMember(gnome.NewMember(addr))\n\t\t}\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t\tstrategy gnome.ProposalStrategy\n\t\tstatus gnome.ProposalStatus\n\t\tstatusReason string\n\t\tvotingDeadlinePassed bool\n\t\toptions []gnome.ProposalOption\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"proposal pass\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t\t{Address: addresses[1], Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tstrategy: testStrategy{gnome.ChoiceYes},\n\t\t\tstatus: gnome.StatusPassed,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal rejected\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t\t{Address: addresses[1], Choice: gnome.ChoiceNo},\n\t\t\t\t{Address: addresses[2], Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\tstrategy: testStrategy{gnome.ChoiceNo},\n\t\t\tstatus: gnome.StatusRejected,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tstrategy: testStrategy{},\n\t\t\tstatus: gnome.StatusRejected,\n\t\t\tstatusReason: \"low participation\",\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal not active\",\n\t\t\tstatus: gnome.StatusWithdrawed,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithReviewDeadline(futureTime)},\n\t\t\tstrategy: testStrategy{},\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tp.Withdraw()\n\t\t\t},\n\t\t\terr: gnome.ErrProposalNotActive,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, tc.strategy, tc.options...)\n\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\t// Add votes directly to the record because deadline might be expired for some test cases\n\t\t\t\tproposal.VotingRecord().Add(v)\n\t\t\t}\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Tally()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %d, got: %d\", tc.status, got)\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != tc.statusReason {\n\t\t\t\tt.Fatalf(\"expected status reason: '%s', got: '%s'\", tc.statusReason, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Choice(); got != tc.choice {\n\t\t\t\tt.Fatalf(\"expected winner choice: '%s', got: '%s'\", tc.choice, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mustCreateProposal(t *testing.T, s gnome.ProposalStrategy, options ...gnome.ProposalOption) *gnome.Proposal {\n\tt.Helper()\n\n\tdao := gnome.MustNew(\"test\", \"Test\")\n\taddr := testutils.TestAddress(\"proposer\")\n\tproposal, err := gnome.NewProposal(1, s, addr, dao, \"Title\", options...)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\treturn proposal\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n\ntype testStrategy struct {\n\tChoice gnome.VoteChoice\n}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return s.Choice }\n\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n"},{"name":"record.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// VotingRecordIterFn defines the a callback to iterate voting choices.\ntype VotingRecordIterFn func(_ VoteChoice, voteCount uint) bool\n\n// NewVotingRecord creates a new voting record.\nfunc NewVotingRecord() *VotingRecord {\n\treturn \u0026VotingRecord{}\n}\n\n// VotingRecord mamages votes and vote count.\ntype VotingRecord struct {\n\tvotes []Vote\n\tcounter avl.Tree // VoteChoice -\u003e count (uint)\n}\n\n// Votes return the list of votes.\nfunc (r VotingRecord) Votes() []Vote {\n\treturn r.votes\n}\n\n// VoteCount returns the number of votes.\nfunc (r VotingRecord) VoteCount() int {\n\treturn len(r.votes)\n}\n\n// Get returns the number of votes for vote choice.\nfunc (r VotingRecord) Get(c VoteChoice) uint {\n\tkey := string(c)\n\tif v, ok := r.counter.Get(key); ok {\n\t\treturn v.(uint)\n\t}\n\treturn 0\n}\n\n// Add adds a vote to the record.\nfunc (r *VotingRecord) Add(v Vote) {\n\tr.votes = append(r.votes, v)\n\tkey := string(v.Choice)\n\tr.counter.Set(key, r.Get(v.Choice)+1)\n}\n\n// Remove removes a vote from the record.\nfunc (r *VotingRecord) Remove(addr std.Address) bool {\n\tfor i, v := range r.votes {\n\t\tif v.Address == addr {\n\t\t\tr.votes = append(r.votes[:i], r.votes[i+1:]...)\n\t\t\tkey := string(v.Choice)\n\t\t\tr.counter.Set(key, r.Get(v.Choice)-1)\n\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Iterate iterates all vote choices.\nfunc (r VotingRecord) Iterate(fn VotingRecordIterFn) bool {\n\treturn r.counter.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tchoice := VoteChoice(key)\n\t\treturn fn(choice, value.(uint))\n\t})\n}\n\n// SelectChoiceByMajority select the vote choice by majority.\n// Vote choice is a majority when chosen by more than half of the votes.\n// Majority type is defined by the caller depending on the vote records and abstentions, it would be\n// absolute majority if abstentions are considered, otherwise it would be considered simple majority.\nfunc SelectChoiceByMajority(r VotingRecord, abstentions int) (VoteChoice, bool) {\n\tvotesCount := r.VoteCount() + abstentions\n\tchoice := getMajorityChoice(r)\n\tisMajority := r.Get(choice) \u003e uint(votesCount/2)\n\treturn choice, isMajority\n}\n\n// SelectChoiceBySuperMajority select the vote choice by super majority using a 2/3s threshold.\n// Abstentions are not considered when calculating the super majority choice.\nfunc SelectChoiceBySuperMajority(r VotingRecord) (VoteChoice, bool) {\n\tchoice := getMajorityChoice(r)\n\tisMajority := r.Get(choice) \u003e uint((2*r.VoteCount())/3) // TODO: Allow threshold customization\n\treturn choice, isMajority\n}\n\n// SelectChoiceByPlurality selects the vote choice by plurality.\n// The choice will be considered a majority if it has votes and if there is no other\n// choice with the same number of votes. A tie won't be considered majority.\nfunc SelectChoiceByPlurality(r VotingRecord) (VoteChoice, bool) {\n\tvar (\n\t\tchoice VoteChoice\n\t\tcurrentCount uint\n\t\tisMajority bool\n\t)\n\n\tr.Iterate(func(c VoteChoice, count uint) bool {\n\t\tif currentCount \u003c count {\n\t\t\tchoice = c\n\t\t\tcurrentCount = count\n\t\t\tisMajority = true\n\t\t} else if currentCount == count {\n\t\t\tisMajority = false\n\t\t}\n\t\treturn false\n\t})\n\treturn choice, isMajority\n}\n\n// getMajorityChoice returns the choice voted by the majority.\n// The result is only valid when there is a majority.\n// Caller must validate that the returned choice represents a majority.\nfunc getMajorityChoice(r VotingRecord) VoteChoice {\n\tvar (\n\t\tchoice VoteChoice\n\t\tcurrentCount uint\n\t)\n\n\tr.Iterate(func(c VoteChoice, count uint) bool {\n\t\tif currentCount \u003c count {\n\t\t\tchoice = c\n\t\t\tcurrentCount = count\n\t\t}\n\t\treturn false\n\t})\n\n\treturn choice\n}\n"},{"name":"record_test.gno","body":"package dao\n\nimport (\n\t\"testing\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestVotingRecord(t *testing.T) {\n\t// Act\n\trecord := NewVotingRecord()\n\n\t// Assert\n\tif got := record.Votes(); got != nil {\n\t\tt.Fatalf(\"expected no votes, got: %d\", len(got))\n\t}\n\n\tif got := record.VoteCount(); got != 0 {\n\t\tt.Fatalf(\"expected no vote count: 0, got: %d\", got)\n\t}\n}\n\nfunc TestVotingRecordAdd(t *testing.T) {\n\t// Arrange\n\trecord := NewVotingRecord()\n\tvote := gnome.Vote{Choice: gnome.ChoiceYes}\n\n\t// Act\n\trecord.Add(vote)\n\n\t// Assert\n\tvotes := record.Votes()\n\tif c := len(votes); c != 1 {\n\t\tt.Fatalf(\"expected one votes, got: %d\", c)\n\t}\n\n\tif got := votes[0]; got != vote {\n\t\tt.Fatalf(\"expected vote: %v, got: %v\", vote, got)\n\t}\n\n\tif got := record.VoteCount(); got != 1 {\n\t\tt.Fatalf(\"expected vote count: %d, got: %d\", 1, got)\n\t}\n\n\tif got := record.Get(vote.Choice); got != 1 {\n\t\tt.Fatalf(\"expected record to get one '%v' count, got: %d\", gnome.ChoiceYes, got)\n\t}\n\n\trecord.Iterate(func(v gnome.VoteChoice, count uint) bool {\n\t\tif v != gnome.ChoiceYes {\n\t\t\tt.Fatalf(\"expected iterate choice: %v, got: %v\", gnome.ChoiceYes, v)\n\t\t}\n\n\t\tif count != 1 {\n\t\t\tt.Fatalf(\"expected iterate vote count: %d, got: %d\", 1, count)\n\t\t}\n\n\t\treturn false\n\t})\n}\n\nfunc TestVotingRecordRemove(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for VotingRecord.Remove()\")\n}\n\nfunc TestSelectChoiceByMajority(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceByMajority\")\n}\n\nfunc TestSelectChoiceBySuperMajority(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceBySuperMajority\")\n}\n\nfunc TestSelectChoiceByPlurality(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceByPlurality\")\n}\n"},{"name":"render.gno","body":"package dao\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EscapeHTML escapes special characters like \"\u003c\" to become \"\u0026lt;\".\n// It escapes only five such characters: \u003c, \u003e, \u0026, ' and \".\nfunc EscapeHTML(s string) string {\n\ts = strings.ReplaceAll(s, `\u0026`, \"\u0026amp;\")\n\ts = strings.ReplaceAll(s, `\"`, \"\u0026#34;\")\n\ts = strings.ReplaceAll(s, `'`, \"\u0026#39;\")\n\ts = strings.ReplaceAll(s, `\u003c`, \"\u0026lt;\")\n\treturn strings.ReplaceAll(s, `\u003e`, \"\u0026gt;\")\n}\n\n// NewLink creates a new Markdown link.\nfunc NewLink(text, uri string) string {\n\treturn ufmt.Sprintf(\"[%s](%s)\", text, uri)\n}\n\n// NewLinkURI creates a new Markdown link where text and URI are the same.\nfunc NewLinkURI(uri string) string {\n\treturn ufmt.Sprintf(\"[%s](%s)\", uri, uri)\n}\n"},{"name":"strategy.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\n// ProposalStrategy defines the interface for the different proposal types.\ntype ProposalStrategy interface {\n\t// Name returns the name of the strategy.\n\tName() string\n\n\t// Quorum returns the minimum required percentage of DAO member votes\n\t// required for a proposal to pass.\n\tQuorum() float64\n\n\t// VotingPeriod returns the period that a proposal should allow voting.\n\tVotingPeriod() time.Duration\n\n\t// VoteChoices returns the valid voting choices for the strategy.\n\tVoteChoices() []VoteChoice\n\n\t// Tally counts the votes and returns the winner voting choice.\n\t// The DAO argument is the DAO that the proposal is currently assigned to,\n\t// by default the one where the proposal was created.\n\t// Proposals can be promoted to parent DAOs in which case the DAO argument\n\t// is the DAO where the proposal was promoted the last time.\n\tTally(*DAO, VotingRecord) VoteChoice\n}\n\n// VoteChecker defines an interface for proposal vote validation.\n// Proposal strategies that require checking votes when they are submitted should implement it.\ntype VoteChecker interface {\n\t// CheckVote checks that a vote is valid for the strategy.\n\tCheckVote(member std.Address, choice VoteChoice, reason string) error\n}\n\n// Executer defines an interface for executable proposals.\n// Proposals strategies that implement the interface can modify the DAO state when proposal passes.\ntype Executer interface {\n\t// Execute executes the proposal.\n\t// The DAO argument is the DAO where the proposal was created, even if the proposal has been promoted\n\t// to a parent DAO.\n\t// TODO: Execute should return some feedback on success\n\tExecute(*DAO) error\n}\n\n// Validator defines an interface for proposal validation.\n// Proposal strategies that implement the interface can validate that a proposal is valid for the current state.\ntype Validator interface {\n\t// Validate validates if a proposal is valid for the current state.\n\tValidate(*Proposal) error\n}\n\n// ParamsRenderer defines an interface to allow strategies to render its input parameters.\ntype ParamsRenderer interface {\n\t// RenderParams returns a markdown with the rendered strategy parameters.\n\tRenderParams() string\n}\n"},{"name":"uri.gno","body":"package dao\n\nimport (\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar reSlug = regexp.MustCompile(\"^[a-zA-Z]+[a-zA-Z0-9-_]*$\")\n\n// IsSlug checks if a string is a valid slug.\nfunc IsSlug(s string) bool {\n\treturn reSlug.MatchString(s)\n}\n\n// SplitRealmURI splits a Gnoland URI into Realm URI and render path.\nfunc SplitRealmURI(uri string) (realmURI, renderPath string) {\n\tif uri == \"\" {\n\t\treturn\n\t}\n\n\tparts := strings.SplitN(uri, \":\", 2)\n\trealmURI = parts[0]\n\tif len(parts) \u003e 1 {\n\t\trenderPath = parts[1]\n\t}\n\treturn\n}\n"},{"name":"uri_test.gno","body":"package dao\n\nimport (\n\t\"testing\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestSplitRealmURI(t *testing.T) {\n\tcases := []struct {\n\t\tname, uri, realmURI, renderPath string\n\t}{\n\t\t{\n\t\t\tname: \"realm URI\",\n\t\t\turi: \"gno.land/r/gnome\",\n\t\t\trealmURI: \"gno.land/r/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"realm URI with render path\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar\",\n\t\t\trealmURI: \"gno.land/r/gnome\",\n\t\t\trenderPath: \"foo/bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"realm URI with render path\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar\",\n\t\t\trealmURI: \"gno.land/r/gnome\",\n\t\t\trenderPath: \"foo/bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty URI\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\trealmURI, renderPath := gnome.SplitRealmURI(tc.uri)\n\n\t\t\t// Assert\n\t\t\tif realmURI != tc.realmURI {\n\t\t\t\tt.Fatalf(\"expected realm URI: '%s', got: '%s'\", tc.realmURI, realmURI)\n\t\t\t}\n\n\t\t\tif renderPath != tc.renderPath {\n\t\t\t\tt.Fatalf(\"expected render path: '%s', got: '%s'\", tc.renderPath, renderPath)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mWulr4utQZ1mVfrhWrAOJ1CK4M1hMhe9padyumZMV4mR293MxBFuwMCJMgK0ewUAkW9EaMXgvUkX57aeUV5WCQ=="}],"memo":""},"metadata":{"timestamp":"1734111819"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"dao","path":"gno.land/r/gnome/dao","files":[{"name":"dao_proxy.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/gnome/renderproxy\"\n)\n\nvar proxy = renderproxy.MustNew()\n\n// ProxyRender proxies render calls for a sub-realm.\nfunc ProxyRender(fn renderproxy.RenderFn) {\n\tproxy.MustRegister(std.PrevRealm().PkgPath(), fn)\n}\n\n// ProxyRealmPath returns the proxied realm's path.\nfunc ProxyRealmPath() string {\n\treturn proxy.RealmPath()\n}\n\n// URL returns a proxy URL.\nfunc URL(renderPath string) string {\n\treturn proxy.URL(renderPath)\n}\n\n// Render returns a Markdown string with the realm output.\nfunc Render(path string) string {\n\treturn proxy.MustRender(path)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6blQ0nhyxNog+OMtGQJnY6RRJHWE/MOUWl87Orcfbax1cZvRBRapOvyZNhYzhheuB8AoGvHnKDGk2HMHXHWRDw=="}],"memo":""},"metadata":{"timestamp":"1734111849"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"gnome","path":"gno.land/r/gnome/dao/v1rc1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"dao.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// Member roles.\nconst (\n\tRoleAdmin gnome.Role = \"admin\"\n\tRoleCI gnome.Role = \"ci\"\n\tRoleDev gnome.Role = \"dev\"\n\tRoleDevRel gnome.Role = \"devrel\"\n\tRoleEcoDev gnome.Role = \"ecodev\"\n)\n\n// Gno.me DAO tree.\n// Initial DAO tree is initialized within the genesis Gno file.\nvar gnomeDAO *gnome.DAO\n\n// mustGetDAO returns the DAO for a path or panics when path doesn't exist.\nfunc mustGetDAO(path string) *gnome.DAO {\n\tif strings.TrimSpace(path) == \"\" {\n\t\tpanic(\"DAO path is empty\")\n\t}\n\n\tdao, found := daos.GetByPath(path)\n\tif !found {\n\t\tpanic(\"DAO not found\")\n\t}\n\treturn dao\n}\n"},{"name":"genesis.gno","body":"package gnome\n\nimport (\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc init() {\n\t// TODO: Remove when all genesis DAO members are defined/assigned\n\tinitialMembers := []gnome.Member{\n\t\tgnome.NewMember(\"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\", RoleDev),\n\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\", RoleDev),\n\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t}\n\n\tciDAO := gnome.MustNew(\n\t\t\"ci\",\n\t\t\"CI\",\n\t\tgnome.WithManifest(\n\t\t\t\"The CI subDAO and proposer is a one member DAO in the ecosystem specifically \"+\n\t\t\t\t\"designed to automate the content proposal process between GitHub off-chain, and the \"+\n\t\t\t\t\"Tutorial Realm and Tutorial subDAO on-chain.\",\n\t\t),\n\t\tgnome.WithMembers(\n\t\t\tgnome.NewMember(\"g1xe2ljac8256rwxxytqddvrjsj2tyv90fvgeaae\", RoleCI),\n\t\t),\n\t)\n\n\ttutorialsDAO := gnome.MustNew(\n\t\t\"tutorials\",\n\t\t\"Tutorials\",\n\t\tgnome.WithManifest(\n\t\t\t\"The Tutorials subDAO functions as one of the educational branches of the Gno.me DAO \"+\n\t\t\t\t\"system. Its members are tasked with creating, reviewing, voting on, and publishing \"+\n\t\t\t\t\"tutorial content for the community. The subDAO’s mission is to produce high-quality \"+\n\t\t\t\t\"materials that enhance builder engagement, encouraging more deployments, integrations, \"+\n\t\t\t\t\"dApps, and realms. Additionally, the Tutorials subDAO maintains the Gno.me style guide \"+\n\t\t\t\t\"and tutorial guidelines, ensuring consistency in both internally developed and \"+\n\t\t\t\t\"community-submitted tutorials.\",\n\t\t),\n\t\tgnome.WithMembers(\n\t\t\tgnome.NewMember(\"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\", RoleDev),\n\t\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t\t\tgnome.NewMember(\"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2\", RoleDevRel),\n\t\t),\n\t\tgnome.WithSubDAO(ciDAO),\n\t)\n\n\tcommunityDAO := gnome.MustNew(\n\t\t\"community\",\n\t\t\"Community\",\n\t\tgnome.WithManifest(\n\t\t\t\"The Community subDAO focuses on building relationships, integrations, and generally \"+\n\t\t\t\t\"fostering the growth of the Gno.me ecosystem. Its mandate includes supporting educational \"+\n\t\t\t\t\"initiatives and community-building efforts. Members of this subDAO work on developing \"+\n\t\t\t\t\"subDAOs and realms that align with these objectives, showcasing the breadth and potential \"+\n\t\t\t\t\"of the gno.land ecosystem.\",\n\t\t),\n\t\tgnome.WithMembers(initialMembers...), // TODO: Assing final community DAO members\n\t\tgnome.WithSubDAO(tutorialsDAO),\n\t)\n\n\tspaceDAO := gnome.MustNew(\n\t\t\"space\",\n\t\t\"Gno.me Space\",\n\t\tgnome.WithManifest(\n\t\t\t\"The Space DAO is a data source aggregator for independent realms included in the Gno.me \"+\n\t\t\t\t\"inter-realm ecosystem. The members of the Space subDAO are directly responsible for managing \"+\n\t\t\t\t\"the incoming feed of content into Gno.me Space, with editorial rights to the different \"+\n\t\t\t\t\"data sections.\",\n\t\t),\n\t\tgnome.WithMembers(\n\t\t\tgnome.NewMember(\"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\", RoleDev),\n\t\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t\t\tgnome.NewMember(\"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2\", RoleDevRel),\n\t\t),\n\t)\n\n\tecosystemDAO := gnome.MustNew(\n\t\t\"ecosystem\",\n\t\t\"Ecosystem\",\n\t\tgnome.WithManifest(\n\t\t\t\"The Ecosystem subDAO operates as the secondary governing body under the Council DAO. \"+\n\t\t\t\t\"Its members are tasked with orchestrating, facilitating, and supporting the expansion \"+\n\t\t\t\t\"of gno.land's builder, partner, and user base through Gno.me, on behalf of the Council \"+\n\t\t\t\t\"DAO. They are responsible for high-level management, both technical and strategic, to \"+\n\t\t\t\t\"ensure the continued growth and development of Gno.me.\",\n\t\t),\n\t\tgnome.WithMembers(initialMembers...), // TODO: Assing final Ecosystem DAO members\n\t\tgnome.WithSubDAO(spaceDAO),\n\t\tgnome.WithSubDAO(communityDAO),\n\t)\n\n\t// Initialize genesis Gno.me DAO tree\n\t//\n\t// Council\n\t// └── Ecosystem\n\t// ├── Space\n\t// └── Community\n\t// └── Tutorials\n\t// └── CI\n\tgnomeDAO = gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.WithManifest(\n\t\t\t\"The Council DAO serves as the primary governing body and oversight committee for Gno.me’s \"+\n\t\t\t\t\"development and driving the ecosystem's growth and development. It holds the authority \"+\n\t\t\t\t\"to create and dissolve subDAOs, appoint or dismiss members, and assume control of \"+\n\t\t\t\t\"proposals. Council members act as the default voters on budget proposals, ensuring \"+\n\t\t\t\t\"strategic alignment within the ecosystem.\",\n\t\t),\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(initialMembers...),\n\t\tgnome.WithSubDAO(ecosystemDAO),\n\t)\n\n\t// Index genesis DAOs\n\tdaos.IndexByPath(gnomeDAO)\n\tdaos.IndexByPath(ecosystemDAO)\n\tdaos.IndexByPath(spaceDAO)\n\tdaos.IndexByPath(communityDAO)\n\tdaos.IndexByPath(tutorialsDAO)\n\tdaos.IndexByPath(ciDAO)\n}\n"},{"name":"indexes.gno","body":"package gnome\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nvar (\n\tdaos daoIndex\n\tproposals proposalIndex\n\tlastProposalID gnome.ID\n)\n\nfunc genProposalID() gnome.ID {\n\tlastProposalID += 1\n\treturn lastProposalID\n}\n\n// TODO: Deprecate DAO index in favor of using DAO methods\ntype daoIndex struct {\n\tindex avl.Tree // string(DAO path) -\u003e *gnome.DAO\n}\n\n// IndexByPath indexes a DAO by its path.\nfunc (x *daoIndex) IndexByPath(dao *gnome.DAO) bool {\n\treturn x.index.Set(dao.Path(), dao)\n}\n\n// GetByPath gets a DAO by its path.\nfunc (x daoIndex) GetByPath(path string) (*gnome.DAO, bool) {\n\tif v, ok := x.index.Get(path); ok {\n\t\treturn v.(*gnome.DAO), true\n\t}\n\treturn nil, false\n}\n\n// HasPathKey checks if a key with a DAO path exists.\nfunc (x daoIndex) HasPathKey(path string) bool {\n\treturn x.index.Has(path)\n}\n\ntype proposalIndex struct {\n\tindex avl.Tree // string(binary gnome.ID) -\u003e *gnome.Proposal\n\tgroups avl.Tree // string(DAO path) -\u003e []*gnome.Proposal\n}\n\n// Index indexes a proposal by its ID and DAO.\nfunc (x *proposalIndex) Index(p *gnome.Proposal) {\n\tx.IndexByID(p)\n\tx.IndexByDAO(p)\n}\n\n// IndexByID indexes a proposal by its ID.\nfunc (x *proposalIndex) IndexByID(p *gnome.Proposal) bool {\n\treturn x.index.Set(p.ID().Key(), p)\n}\n\n// IndexByDAO indexes a proposal for a DAO.\nfunc (x *proposalIndex) IndexByDAO(p *gnome.Proposal) bool {\n\tdaoPath := p.DAO().Path()\n\tproposals := x.GetAllByDAO(daoPath)\n\tproposals = append([]*gnome.Proposal{p}, proposals...) // reverse append\n\treturn x.groups.Set(daoPath, proposals)\n}\n\n// GetByID gets a proposal by its ID.\nfunc (x proposalIndex) GetByID(id gnome.ID) (*gnome.Proposal, bool) {\n\tif v, exists := x.index.Get(id.Key()); exists {\n\t\treturn v.(*gnome.Proposal), true\n\t}\n\treturn nil, false\n}\n\n// GetAllByDAO gets all proposals of a DAO.\nfunc (x proposalIndex) GetAllByDAO(daoPath string) []*gnome.Proposal {\n\tif v, exists := x.groups.Get(daoPath); exists {\n\t\treturn v.([]*gnome.Proposal)\n\t}\n\treturn nil\n}\n\n// Iterate iterates proposals starting from the oldest one.\nfunc (x proposalIndex) Iterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.Iterate(\"\", \"\", func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*gnome.Proposal))\n\t})\n}\n\n// ReverseIterate iterates proposals starting from the latest one.\nfunc (x proposalIndex) ReverseIterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.ReverseIterate(\"\", \"\", func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*gnome.Proposal))\n\t})\n}\n"},{"name":"params.gno","body":"package gnome\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameSubDAOCreation = \"sub-dao-creation\"\n\tStrategyNameSubDAODismissal = \"sub-dao-dismissal\"\n\tStrategyNameDAOMembersModification = \"dao-members-modification\"\n\tStrategyNameBudget = \"budget\"\n\tStrategyNameGeneral = \"general\"\n\tStrategyNameLocking = \"locking\"\n\tStrategyNameParamsUpdate = \"params-update\"\n)\n\nvar parameters struct {\n\t// VotingPeriods contains the current voting period for each proposal type.\n\tVotingPeriods gnome.DurationParams\n\n\t// ReviewDeadline defines the time after which a proposal can't be withdrawed by the proposer.\n\t// Proposal can only be voted on after this deadline but not before.\n\t// This greace period gives the proposer the chance to withdraw a proposal if there is a mistake.\n\tReviewDeadline time.Duration\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameSubDAOCreation, time.Minute*10)\n\tparameters.VotingPeriods.Set(StrategyNameSubDAODismissal, Day*7)\n\tparameters.VotingPeriods.Set(StrategyNameDAOMembersModification, time.Minute*30)\n\tparameters.VotingPeriods.Set(StrategyNameBudget, Day*7)\n\tparameters.VotingPeriods.Set(StrategyNameGeneral, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n\n\t// Initial review deadline\n\tparameters.ReviewDeadline = time.Second\n}\n"},{"name":"public.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\tproxy \"gno.land/r/gnome/dao\"\n)\n\n// GetDAO returns an invariant reference to a DAO.\n// Council DAO is returned when path is empty.\nfunc GetDAO(path string) (_ gnome.InvarDAO, found bool) {\n\tif path == \"\" {\n\t\tpath = \"council\"\n\t}\n\n\tif dao, found := daos.GetByPath(path); found {\n\t\treturn gnome.NewInvarDAO(dao), true\n\t}\n\treturn gnome.InvarDAO{}, false\n}\n\n// GetProposal returns an invariant reference to a proposal.\nfunc GetProposal(id gnome.ID) (_ gnome.InvarProposal, found bool) {\n\tif p, found := proposals.GetByID(id); found {\n\t\treturn gnome.NewInvarProposal(p), true\n\t}\n\treturn gnome.InvarProposal{}, false\n}\n\n// IterateProposals iterates DAO proposals by ascending IDs.\nfunc IterateProposals(fn func(gnome.InvarProposal) bool) {\n\t// TODO: Add pagination support (start/end)\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\treturn fn(gnome.NewInvarProposal(p))\n\t})\n}\n\n// CheckMemberHasRole checks if a DAO member has a role assigned.\nfunc CheckMemberHasRole(daoPath string, member std.Address, r gnome.Role) error {\n\tdao, found := gnomeDAO.GetDAO(daoPath)\n\tif !found {\n\t\treturn ufmt.Errorf(\"%s DAO not found\", dao.Name())\n\t}\n\n\tm, found := dao.GetMember(member)\n\tif !found {\n\t\treturn ufmt.Errorf(\"address is not a member of %s DAO: %s\", dao.Name(), member)\n\t}\n\n\tif !m.HasRole(RoleAdmin) {\n\t\treturn errors.New(\"member doesn't have admin role: \" + member.String())\n\t}\n\treturn nil\n}\n\n// WithdrawProposal withdraws a proposal.\n// Proposals can only be withdrawed by the account that creates it when the state is \"review\".\n// They can't be withdrawed once the review deadline of one hour after creation is met.\nfunc WithdrawProposal(proposalID uint64) string {\n\tassertDAOIsNotLocked()\n\n\tp := mustGetProposal(proposalID)\n\tassertCallerCanWithdraw(p)\n\n\tif err := p.Withdraw(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tAdvanceProposals()\n\n\treturn \"Proposal withdrawed\"\n}\n\n// Vote submits a vote for a proposal.\n//\n// Parameters:\n// - proposalID: ID of the proposal to vote (required)\n// - vote: Voting choice, true=Yes, false=No (required)\n// - reason: Text with the reason for the vote\n// - daoPath: Path of the DAO where the voting account belongs to\n//\n// Reason is in general optional but might be required for some proposals when voting No.\n//\n// DAO name is optional and by default is the one that the proposal belongs to.\n// Only parents of the proposal's DAO are allowed as `daoPath` values.\n// Child votes are not tallied when a member of a parent DAO votes on a child's proposal.\nfunc Vote(proposalID uint64, vote bool, reason, daoPath string) string {\n\tassertDAOIsNotLocked()\n\n\t// Make sure proposal states are up to date before submitting the vote\n\tAdvanceProposals()\n\n\t// Get proposal and check that current status accepts votes\n\tp := mustGetProposal(proposalID)\n\tif s := p.Status(); s.IsFinal() {\n\t\tpanic(\"proposal status doesn't allow new vote submissions: \" + s.String())\n\t}\n\n\t// When a DAO name is availalable check that it matches one of the proposal's DAO parents\n\t// and if so promote the proposal to a parent DAO. Promoting a proposal invalidates the votes\n\t// submitted by current DAO's members and moves voting responsibility to the parent DAO members.\n\tdaoPath = strings.TrimSpace(daoPath)\n\tif daoPath != \"\" \u0026\u0026 p.DAO().Path() != daoPath {\n\t\t// Check that the path belongs to a parent DAO.\n\t\t// Path separator is added to the prefix to make sure that similar prefixes don't match.\n\t\tif !strings.HasPrefix(p.DAO().Path(), daoPath+gnome.PathSeparator) {\n\t\t\tpanic(`path \"` + daoPath + `\" is not a parent of the proposal's DAO path`)\n\t\t}\n\n\t\t// Promote the active proposal's DAO to a parent DAO\n\t\tparentDAO := mustGetDAO(daoPath)\n\t\tif err := p.Promote(parentDAO); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// Reindex the proposal so its available under the parent DAO proposals. Child DAO will also\n\t\t// keep the promoted proposal indexed so it can be listed within the child DAO's proposals.\n\t\tproposals.Index(p)\n\t}\n\n\t// Check that current proposal's DAO has enough members to allow voting\n\tif len(p.DAO().Members()) \u003c minMembersCount {\n\t\tpanic(\"not enough DAO members to allow voting, minimum required is \" + strconv.Itoa(minMembersCount))\n\t}\n\n\t// When proposal has \"review\" status check if deadline is met and if so activate it\n\tif p.Status() == gnome.StatusReview {\n\t\tif !p.HasReviewDeadlinePassed() {\n\t\t\tpanic(\"votes are not allowed until \" + p.ReviewDeadline().UTC().Format(\"2006-01-02 15:04 MST\"))\n\t\t}\n\n\t\tif err := p.Activate(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tvar choice gnome.VoteChoice\n\tif vote {\n\t\tchoice = gnome.ChoiceYes\n\t} else {\n\t\tchoice = gnome.ChoiceNo\n\t}\n\n\t// Submit vote\n\tcaller := std.GetOrigCaller() // TODO: Check that caller is member of the DAO\n\terr := p.Vote(caller, gnome.VoteChoice(choice), reason)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn \"Vote submitted for proposal \" + makeProposalURI(gnome.ID(proposalID))\n}\n\n// AdvanceProposals iterates review and active proposals and tallies proposals that met their deadlines.\n// Proposals in review status are activated to allow voting.\n// Active proposals are tallied which means the number of votes is counted and status changed accordingly.\n// Active executable proposals are executed when the proposal status changes to \"passed\".\nfunc AdvanceProposals() string {\n\tassertDAOIsNotLocked()\n\n\tadvanceProposals()\n\n\treturn \"Proposals advanced for realm \" + proxy.URL(\"\")\n}\n\n// IsProposalsAdvanceNeeded checks if a call to `AdvanceProposals()` is required to update proposals.\nfunc IsProposalsAdvanceNeeded() bool {\n\tif gnomeDAO.IsLocked() {\n\t\treturn false\n\t}\n\n\treturn proposals.ReverseIterate(func(p *gnome.Proposal) bool {\n\t\tswitch p.Status() {\n\t\tcase gnome.StatusReview:\n\t\t\tif p.HasReviewDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase gnome.StatusActive:\n\t\t\tif p.HasVotingDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc advanceProposals() {\n\t// TODO: Use unix timestamp as part of proposal IDs to avoid iterating older tallied proposals\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tstatus := p.Status()\n\t\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\t\tp.Activate()\n\t\t\tstatus = p.Status()\n\t\t}\n\n\t\tif p.Status() == gnome.StatusActive \u0026\u0026 p.HasVotingDeadlinePassed() {\n\t\t\tp.Tally()\n\n\t\t\t// Change proposal status to failed when execution fails\n\t\t\tif err := p.Execute(); gnome.IsExecutionError(err) {\n\t\t\t\tp.Fail(\"failed due to conflicts: \" + err.Error())\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc mustGetProposal(id uint64) *gnome.Proposal {\n\tp, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tpanic(\"proposal not found\")\n\t}\n\treturn p\n}\n\nfunc assertCallerCanWithdraw(p *gnome.Proposal) {\n\tif p.Proposer() != std.GetOrigCaller() {\n\t\tpanic(\"proposals can only be withdrawed by the proposer\")\n\t}\n\n\tif p.Status() != gnome.StatusReview {\n\t\tpanic(`proposals can only be withdrawed when status is \"review\"`)\n\t} else if p.HasReviewDeadlinePassed() {\n\t\tpanic(\"withdrawal not allowed, withdrawal deadline expired\")\n\t}\n}\n"},{"name":"public_proposals.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// SubmitCustomProposal submits a new proposal of a custom type.\n//\n// This function allows other realms to submit custom proposal types.\n//\n// Parameters:\n// - title: A title for the proposal (required)\n// - description: A description of the proposal\n// - strategy: A strategy for the new proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\nfunc SubmitCustomProposal(title, description string, s gnome.ProposalStrategy, daoPath string) gnome.ID {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tid := genProposalID()\n\tp, err := gnome.NewProposal(\n\t\tid,\n\t\ts,\n\t\tcaller,\n\t\tdao,\n\t\ttitle,\n\t\tgnome.WithDescription(description),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t\tgnome.WithRealm(std.PrevRealm().PkgPath()), // User calls would have an empty package path\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\treturn p.ID()\n}\n\n// SubmitGeneralProposal submits a new general proposal.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - votingDeadline: Number of days until the voting period ends\n//\n// The name of the DAO where the proposal is created is a slug, where \"council\"\n// is the Council DAO and \"ecosystem\" is the name of the Ecosystem DAO.\n//\n// The voting period deadline for the proposal must be between 2 and 10 days.\n// It defaults to 2 days when `votingDeadline` value is 0.\nfunc SubmitGeneralProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tvotingDeadline uint,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\topts := []gnome.ProposalOption{\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t}\n\n\tif votingDeadline != 0 {\n\t\tif votingDeadline \u003c 2 || votingDeadline \u003e 10 {\n\t\t\tpanic(\"voting period deadline must be between 2 and 10 days\")\n\t\t}\n\n\t\tdeadline := time.Now().Add(time.Hour * 24 * time.Duration(votingDeadline))\n\t\topts = append(opts, gnome.WithVotingDeadline(deadline))\n\t}\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tp, err := gnome.NewProposal(genProposalID(), newGeneralStrategy(), caller, dao, proposalTitle, opts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAOCreationProposal submits a new proposal to add a sub DAO to an existing DAO.\n//\n// Proposal requires the participation of all DAO members, otherwise the outcome will be low participation.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - parentDAOPath: Path of the sub DAO's parent (required)\n// - subDAOName: Slug name of the new sub DAO (required)\n// - subDAOTitle: A title for the new sub DAO (required)\n// - subDAOManifest: Sub DAO manifest (required)\n// - subDAOMembers: List of sub DAO member addresses (required)\n//\n// Sub DAO name must be a slug allows letters from \"a\" to \"z\", numbers, \"-\" and \"_\" as valid characters.\n//\n// The list of sub DAO members must be a newline separated list of addresses, with a minimum of 2 addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitSubDAOCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tparentDAOPath,\n\tsubDAOName,\n\tsubDAOTitle,\n\tsubDAOManifest,\n\tsubDAOMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(parentDAOPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tif daos.HasPathKey(subDAOPath) {\n\t\tpanic(\"sub DAO name is already taken by another DAO\")\n\t}\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tmembers := gnome.MustParseStringToMembers(subDAOMembers)\n\tstrategy := newSubDAOCreationStrategy(daos, subDAOName, subDAOTitle, subDAOManifest, members)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAODismissalProposal submits a new proposal to dismiss a sub DAO.\n//\n// Dismissing a sub DAO also dismisses all active proposals and any sub DAO below the dismissed DAO tree.\n// Only the direct parent of a DAO can create a proposal to dismiss any of its fist level sub DAOs.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - subDAOName: Slug name of the sub DAO to dismiss (required)\nfunc SubmitSubDAODismissalProposal(proposalTitle, daoPath, subDAOName string) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tsubDAO := mustGetDAO(subDAOPath)\n\tassertDAOIsNotDismissed(subDAO)\n\n\tcaller := std.GetOrigCaller()\n\tstrategy := newSubDAODismissalStrategy(subDAO, proposals)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOMembersModificationProposal submits a new proposal to modify the members of a DAO.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by super majority with a 2/3s threshold. Abstentions are not considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - newMembers: List of member addresses to add to the DAO\n// - removeMembers: List of member addresses to remove from the DAO\n//\n// At leat one member address is required either to be added or removed from the DAO.\n// Members can be added and removed within the same proposal.\n//\n// Each list of members must be newline separated list of addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitDAOMembersModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tnewMembers,\n\tremoveMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newDAOMembersModificationStrategy(\n\t\tgnome.MustParseStringToMembers(newMembers),\n\t\tgnome.MustParseStringToMembers(removeMembers),\n\t)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitBudgetProposal submits a new budget proposal.\n//\n// Only membes of the Council or Ecosystem DAO can vote on this type of proposals.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - budget: The proposal budget (required)\n//\n// Budget doesn't enforce any specific format right now but an example format that\n// could be used is amount plus symbol, for example 100UGNOT, 100000USD, etc.\nfunc SubmitBudgetProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tbudget string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newBudgetStrategy(gnomeDAO, budget)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOLockingProposal submits a new proposal to lock the DAO.\n//\n// Locking the DAO \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 33% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by the Council or Ecosystem DAO members.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - reason: Text with the DAO locking reason\n//\n// The optional `reason` argument can contain HTML.\nfunc SubmitDAOLockingProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\treason string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tcaller := std.GetOrigCaller()\n\tassertIsCouncilOrEcosystemDAOMember(caller)\n\n\tdao := mustGetDAO(daoPath)\n\tassertIsCouncilOrEcosystemDAO(dao)\n\n\treason = strings.TrimSpace(reason)\n\tstrategy := newLockingStrategy(gnomeDAO, reason, func() error {\n\t\t// Advance all proposals before locking the DAO\n\t\tadvanceProposals()\n\t\treturn nil\n\t})\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Only Council and Ecosystem DAO are allowed to create this type of proposals.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - proposalReviewDeadline: Number of seconds where proposals can be withdrawed\n// - votingPeriodSubDAOCreation: Voting period for sub DAO creation proposals\n// - votingPeriodSubDAODismissal: Voting period for sub DAO dismissal proposals\n// - votingPeriodDAOMembersModification: Voting period for DAO members modification proposals\n// - votingPeriodBudget: Voting period for budget proposals\n// - votingPeriodGeneral: Voting period for general proposals\n// - votingPeriodLocking: Voting period for locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tproposalReviewDeadline,\n\tvotingPeriodSubDAOCreation,\n\tvotingPeriodSubDAODismissal,\n\tvotingPeriodDAOMembersModification,\n\tvotingPeriodBudget,\n\tvotingPeriodGeneral,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdaoPath = strings.TrimSpace(daoPath)\n\tif daoPath != \"council\" \u0026\u0026 daoPath != \"council/ecosystem\" {\n\t\tpanic(\"only council and ecosystem DAO are allowed to update params\")\n\t}\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := paramsUpdateStrategy{\n\t\treviewDeadline: time.Second * time.Duration(proposalReviewDeadline),\n\t}\n\n\tif votingPeriodSubDAOCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodSubDAOCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodSubDAODismissal \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodSubDAODismissal) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodDAOMembersModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDAOMembersModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodBudget \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodBudget) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodGeneral \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodGeneral) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameGeneral, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 \u0026\u0026 strategy.reviewDeadline == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\nfunc assertCanCreateProposal(proposer std.Address, dao *gnome.DAO) {\n\tif !dao.HasMember(proposer) {\n\t\tpanic(\"you must be a DAO member to create a proposal\")\n\t}\n}\n\nfunc assertDAOIsNotDismissed(dao *gnome.DAO) {\n\t// DAOs are locked when they are dismissed\n\tif dao.IsLocked() {\n\t\tpanic(\"DAO is dismissed: \" + dao.Path())\n\t}\n}\n\nfunc assertDAOIsNotLocked() {\n\tif gnomeDAO.IsLocked() {\n\t\tpanic(\"DAO is locked\")\n\t}\n}\n\nfunc assertIsCouncilOrEcosystemDAO(dao *gnome.DAO) {\n\tif !dao.IsSuperCouncil() {\n\t\t// Ecosystem DAO parent must be the super council\n\t\tparentDAO := dao.Parent()\n\t\tif !parentDAO.IsSuperCouncil() {\n\t\t\tpanic(\"DAO is not the council or ecosystem DAO\")\n\t\t}\n\t}\n}\n\nfunc assertIsCouncilOrEcosystemDAOMember(addr std.Address) {\n\tif !gnomeDAO.HasMember(addr) {\n\t\tecosystemDAO := gnomeDAO.SubDAOs()[0]\n\t\tif !ecosystemDAO.HasMember(addr) {\n\t\t\tpanic(\"account is not a council or ecosystem DAO member\")\n\t\t}\n\t}\n}\n"},{"name":"public_proposals_0a_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tproxy \"gno.land/r/gnome/dao\"\n\tgnome \"gno.land/r/gnome/dao/v1rc1\"\n)\n\nconst member = std.Address(\"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/ecosystem\"\n\tpID := gnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n\tprintln(pID)\n\n\tmarkdown := proxy.Render(\"proposal/1\")\n\tprintln(markdown)\n}\n\n// Output:\n// 1\n// # #1 Test proposal\n// - Type: general\n// - Created: 2009-02-13 23:31 UTC\n// - Proposer: g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\n// - Status: **review**\n// - Review Deadline: 2009-02-13 23:31 UTC\n// ## Description\n// A test proposal\n// ## Votes\n// The proposal has no votes\n"},{"name":"public_proposals_0b_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/v1rc1\"\n)\n\nconst nonMember = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(nonMember)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/ecosystem\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// you must be a DAO member to create a proposal\n"},{"name":"public_proposals_0c_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/v1rc1\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/ecosystem\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 1)\n}\n\n// Error:\n// voting period deadline must be between 2 and 10 days\n"},{"name":"public_proposals_0d_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/v1rc1\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"invalid\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// DAO not found\n"},{"name":"public_proposals_0e_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/v1rc1\"\n)\n\nconst member = std.Address(\"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdaoPath := \"council/ecosystem\"\n\tgnome.SubmitGeneralProposal(title, \"\", daoPath, 0)\n}\n\n// Error:\n// proposal description is required\n"},{"name":"render.gno","body":"package gnome\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\talerts \"gno.land/p/gnome/alerts/v2\"\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\t\"gno.land/p/gnome/paginator\"\n\trouter \"gno.land/p/gnome/router/v2\"\n\tproxy \"gno.land/r/gnome/dao\"\n)\n\nconst (\n\tdateFmt = \"2006-01-02 15:04 MST\"\n\tproposalTakeoverMsg = \"For the proposal outcome to change it has to be taken over by a parent DAO by voting on it\"\n)\n\nfunc init() {\n\tproxy.ProxyRender(render)\n}\n\nfunc render(path string) string {\n\tr := router.New()\n\n\tr.HandleFunc(\"\", renderDAO) // Renders the Council DAO\n\tr.HandleFunc(\"dao\", renderDAO) // Renders DAO or sub DAO: dao/DAO_PATH\n\tr.HandleFunc(\"proposal\", renderProposal) // Renders details for a proposal: proposal/PROPOSAL_ID\n\tr.HandleFunc(\"proposals\", renderProposals) // Renders the list of proposals for a DAO: proposals/DAO_PATH\n\tr.HandleFunc(\"params\", renderParams) // Renders realm parameters\n\n\tout, err := r.Render(path)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\t// Render global alerts before proposal states are updated within the handlers\n\treturn renderAlerts() + out\n}\n\nfunc renderAlerts() string {\n\tif gnomeDAO.IsLocked() {\n\t\tmsg := \"\u003e **Realm is locked**\"\n\t\tif reason := gnomeDAO.LockReason(); reason != \"\" {\n\t\t\tmsg = msg + \" \\n\u003e _\" + reason + \"_\"\n\t\t}\n\n\t\treturn msg + \"\\n\\n\"\n\t}\n\n\tif IsProposalsAdvanceNeeded() {\n\t\treturn alerts.NewWarning(\n\t\t\tnewGnoStudioConnectLink(\"AdvanceProposals\", \"Proposals advance needed\"),\n\t\t)\n\t}\n\treturn \"\"\n}\n\nfunc renderDAO(res router.ResponseWriter, req router.Request) {\n\tvar (\n\t\tdao *gnome.DAO\n\t\tdaoPath = req.Route\n\t)\n\n\tif daoPath == \"\" {\n\t\tdao = gnomeDAO\n\t\tdaoPath = \"council\"\n\t} else {\n\t\tvar found bool\n\t\tdao, found = daos.GetByPath(daoPath)\n\t\tif !found {\n\t\t\tres.Write(\"DAO Not Found\")\n\t\t\treturn\n\t\t}\n\n\t\t// TODO: Add lock dismissal reason when available\n\t\tif dao.IsLocked() {\n\t\t\tres.Write(alerts.NewWarning(\"DAO is dismissed\"))\n\t\t}\n\t}\n\n\tres.Writef(\n\t\t\"# Gno.me DAO\\n\"+\n\t\t\t\"## %s\\n\"+\n\t\t\t\"%s\\n\\n\"+\n\t\t\t\"[View Proposals of %s](%s)\\n\",\n\t\tdao.Title(),\n\t\tdao.Manifest(),\n\t\tdao.Title(),\n\t\tmakeProposalsURI(daoPath),\n\t)\n\n\tres.Write(\"## \" + dao.Title() + \" Members\\n\")\n\tfor _, m := range dao.Members() {\n\t\tres.Write(\"- \" + m.String() + \"\\n\")\n\t}\n\n\tres.Write(\"## Organization\\n\\n\")\n\tres.Write(renderOrganizationTree(daoPath))\n\tres.Write(\"\\n\")\n}\n\nfunc renderProposals(res router.ResponseWriter, req router.Request) {\n\tdaoPath := req.Route\n\tdao, found := daos.GetByPath(daoPath)\n\tif !found {\n\t\tres.Write(\"DAO Not Found\")\n\t\treturn\n\t}\n\n\tdaoProposals := proposals.GetAllByDAO(dao.Path())\n\tcount := len(daoProposals)\n\tif count == 0 {\n\t\tres.Write(\"DAO has no proposals\")\n\t\treturn\n\t}\n\n\tpages := paginator.MustNew(req.URL, count)\n\n\t// TODO: Add links to toggle display of dismissed proposals (when DAO dismissal is implemented)\n\n\tres.Writef(\"# %s: Proposals\\n\", dao.Title())\n\tpages.Iterate(func(i int) bool {\n\t\tif i \u003e= count {\n\t\t\treturn true\n\t\t}\n\n\t\tp := daoProposals[i]\n\t\t_ = advanceProposal(p) // TODO: Handle errors when render notice support is implemented\n\t\tpath := makeProposalURI(p.ID())\n\t\tres.Writef(\"- [#%s %s](%s) (%s)\\n\", p.ID(), p.Title(), path, p.Status())\n\t\treturn false\n\t})\n\n\tif pages.HasPages() {\n\t\tres.Write(\"\\n\\n\" + pages.String())\n\t}\n}\n\n// TODO: Improve renderProposal code\nfunc renderProposal(res router.ResponseWriter, req router.Request) {\n\trawID := req.Route\n\tid, err := strconv.Atoi(rawID)\n\tif err != nil {\n\t\tres.Write(\"Invalid proposal ID: \" + gnome.EscapeHTML(rawID))\n\t\treturn\n\t}\n\n\tproposal, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tres.Write(\"Proposal Not Found\")\n\t\treturn\n\t}\n\n\tvar (\n\t\toutcome gnome.ProposalStatus\n\t\tstatus = proposal.Status()\n\t)\n\n\t// When the status is not final advance the proposal to calculate the current outcome\n\tif !status.IsFinal() {\n\t\t_ = advanceProposal(proposal) // TODO: Implement generic alert support for render and use it to render errors\n\t\toutcome = proposal.Status()\n\n\t\t// Validate if proposal is valid for the current state\n\t\tif err := proposal.Validate(); err != nil {\n\t\t\tres.Write(alerts.NewError(err.Error()))\n\t\t}\n\n\t\t// Warn when the outcome could change if a member of a parent DAO votes on this proposal.\n\t\t// Proposal choice is only available when there is a majority, so there is voting concensus.\n\t\tif proposal.Choice() != gnome.ChoiceNone \u0026\u0026 !proposal.HasVotingDeadlinePassed() {\n\t\t\tres.Write(alerts.NewWarning(proposalTakeoverMsg))\n\t\t}\n\t} else if status == gnome.StatusDismissed {\n\t\t// Display an alert with the dismiss reason\n\t\tres.Write(alerts.NewWarning(proposal.StatusReason()))\n\t}\n\n\tdao := proposal.DAO()\n\tdaoPath := dao.Path()\n\tif proposal.HasBeenPromoted() {\n\t\turi := makeDAOURI(daoPath)\n\t\tlink := alerts.NewLink(uri, dao.Title())\n\t\tres.Write(alerts.NewWarning(\"Proposal has been promoted to \" + link + \" DAO\"))\n\t}\n\n\tres.Write(\"# #\" + proposal.ID().String() + \" \" + proposal.Title() + \"\\n\")\n\tres.Write(\"- Type: \" + proposal.Strategy().Name() + \"\\n\")\n\tres.Write(\"- Created: \" + proposal.CreatedAt().UTC().Format(dateFmt) + \"\\n\")\n\tres.Write(\"- Proposer: \" + proposal.Proposer().String() + \"\\n\")\n\tres.Write(\"- Status: \" + getProposalStatusMarkdown(status, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\tif realm := proposal.Realm(); realm != \"\" {\n\t\tres.Write(\"- Creator Realm: [\" + realm + \"](https://\" + realm + \")\\n\")\n\t}\n\n\tif !status.IsFinal() {\n\t\tif outcome == gnome.StatusReview {\n\t\t\tres.Write(\"- Review Deadline: \" + proposal.ReviewDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t} else {\n\t\t\tres.Write(\"- Voting Deadline: \" + proposal.VotingDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t\tres.Write(\"- Expected Outcome: \" + getProposalStatusMarkdown(outcome, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\t\t\t// Vote line should be render as long as voting deadline is not reached.\n\t\t\t// This is required for proposals that have to be advanced after deadline is reached.\n\t\t\tif !proposal.HasVotingDeadlinePassed() {\n\t\t\t\tres.Write(\"\\n\" + newGnoStudioConnectLink(\"Vote\", \"Vote on this proposal\") + \"\\n\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif s := proposal.Description(); s != \"\" {\n\t\tres.Write(\"## Description\\n\" + s + \"\\n\")\n\t}\n\n\tif r, ok := proposal.Strategy().(gnome.ParamsRenderer); ok {\n\t\t// TODO: Use custom HTML component to allow users to toggle params visibility\n\t\tif s := r.RenderParams(); s != \"\" {\n\t\t\tres.Write(\"## Parameters\\n\\n\" + s + \"\\n\")\n\t\t}\n\t}\n\n\tres.Write(\"## Votes\\n\")\n\trecord := proposal.VotingRecord()\n\tif record.VoteCount() == 0 {\n\t\tres.Write(\"The proposal has no votes\\n\")\n\t} else {\n\t\t// TODO: Render percentages for each voting choice and abstentions?\n\t\trecord.Iterate(func(c gnome.VoteChoice, count uint) bool {\n\t\t\tres.Writef(\"- %s: %d\\n\", string(c), count)\n\t\t\treturn false\n\t\t})\n\n\t\tres.Write(\"## Participation\\n\")\n\t\trenderProposalParticipation(res, record.Votes())\n\t}\n\n\t// If proposal has been promoted to a parent DAO render participation in child DAOs\n\tif proposal.HasBeenPromoted() {\n\t\tres.Write(\"## SubDAO Participation\\n\")\n\t\tdaos := proposal.Promotions()\n\t\trecords := proposal.VotingRecords()\n\t\tfor i := len(records) - 2; i \u003e= 0; i-- { // reverse iteration excluding record for current DAO\n\t\t\tr := records[i]\n\t\t\tdao := daos[i]\n\t\t\tres.Write(\"### [\" + dao.Title() + \"](\" + makeDAOURI(dao.Path()) + \")\\n\")\n\t\t\trenderProposalParticipation(res, r.Votes())\n\t\t}\n\t}\n}\n\nfunc renderParams(res router.ResponseWriter, req router.Request) {\n\tres.Write(\"# Gno.me DAO: Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**General**\\n\")\n\tres.Write(\"- Review Deadline: \" + gnome.HumanizeDuration(parameters.ReviewDeadline) + \"\\n\")\n\n\tres.Write(\"\\n**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderProposalParticipation(res router.ResponseWriter, votes []gnome.Vote) {\n\tfor _, v := range votes {\n\t\tchoice := string(v.Choice)\n\t\tif v.Reason != \"\" {\n\t\t\t// TODO: Long reasons have to break lines to fit making web UI look bad\n\t\t\tchoice += ` \"` + gnome.EscapeHTML(v.Reason) + `\"`\n\t\t}\n\n\t\tres.Writef(\"- %s: voted %s\\n\", v.Address.String(), choice)\n\t}\n}\n\n// TODO: Use the UI package for HTML elements because rendered Markdown styles break the tree\nfunc renderOrganizationTree(currentPath string) string {\n\tvar item string\n\tif gnomeDAO.Name() == currentPath {\n\t\titem = \"- **\" + gnomeDAO.Title() + \"**\"\n\t} else {\n\t\turi := makeDAOURI(gnomeDAO.Path())\n\t\titem = \"- [\" + gnomeDAO.Title() + \"](\" + uri + \")\"\n\t}\n\treturn item + \"\\n\" + renderSubTree(gnomeDAO, currentPath, 2)\n}\n\nfunc renderSubTree(parentDAO *gnome.DAO, currentPath string, indent int) string {\n\tvar (\n\t\tbuf strings.Builder\n\t\titem string\n\t)\n\n\tfor _, dao := range parentDAO.SubDAOs() {\n\t\tif dao.IsLocked() {\n\t\t\t// Skip dismissed DAOs\n\t\t\t// TODO: Render filter option to toggle dismissed DAOs visibility\n\t\t\tcontinue\n\t\t}\n\n\t\tif dao.Path() == currentPath {\n\t\t\titem = \"- **\" + dao.Title() + \"**\"\n\t\t} else {\n\t\t\turi := makeDAOURI(dao.Path())\n\t\t\titem = \"- [\" + dao.Title() + \"](\" + uri + \")\"\n\t\t}\n\n\t\tbuf.WriteString(strings.Repeat(\" \", indent) + item + \"\\n\")\n\n\t\tif len(dao.SubDAOs()) \u003e 0 {\n\t\t\tbuf.WriteString(renderSubTree(dao, currentPath, indent+2))\n\t\t}\n\t}\n\treturn buf.String()\n}\n\nfunc advanceProposal(p *gnome.Proposal) error {\n\tstatus := p.Status()\n\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\tif err := p.Activate(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tstatus = p.Status()\n\t}\n\n\tif status == gnome.StatusActive {\n\t\t// Tally active proposals to always have an up to date state with the current proposal outcome\n\t\tif err := p.Tally(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc getProposalStatusMarkdown(s gnome.ProposalStatus, c gnome.VoteChoice, reason string) string {\n\tswitch s {\n\tcase gnome.StatusPassed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, string(c))\n\tcase gnome.StatusRejected:\n\t\t// Rejected proposal might have a reason\n\t\tif reason == \"\" {\n\t\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t\t} else {\n\t\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\t\t}\n\tcase gnome.StatusDismissed, gnome.StatusFailed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\tdefault:\n\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t}\n}\n\nfunc newGnoStudioConnectLink(functionName, label string) string {\n\thref := makeGnoStudioConnectURL(functionName)\n\treturn alerts.NewLink(href, label)\n}\n"},{"name":"strategy_budget.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc newBudgetStrategy(council *gnome.DAO, budget string) budgetStrategy {\n\tif council == nil {\n\t\tpanic(\"council DAO is requried\")\n\t}\n\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"budget strategy expects DAO to be a super council\")\n\t}\n\n\tbudget = strings.TrimSpace(budget)\n\tif budget == \"\" {\n\t\tpanic(\"budget is required\")\n\t}\n\n\t// The council DAO must have at least one sub DAO which should the ecosystem DAO.\n\t// The first sub DAO is some times used to check if a vote is valid.\n\tif len(council.SubDAOs()) == 0 {\n\t\tpanic(\"budget strategy expects council DAO to have at least one sub DAO\")\n\t}\n\n\treturn budgetStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\tbudget: budget, // TODO: Validate/split budget format? (ex. AMOUNTSYMBOL: 10USD)\n\t}\n}\n\ntype budgetStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\tbudget string\n}\n\n// Name returns the name of the strategy.\nfunc (budgetStrategy) Name() string {\n\treturn StrategyNameBudget\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (budgetStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (budgetStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameBudget)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s budgetStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s budgetStrategy) CheckVote(addr std.Address, _ gnome.VoteChoice, _ string) error {\n\t// Check that voter address belongs to a council DAO member\n\tif s.council.HasMember(addr) {\n\t\treturn nil\n\t}\n\n\t// Make sure the ecosystem DAO was not dismissed and check that voter address belongs to a ecosystem DAO member\n\t// TODO: Check DAO status instead when DAO dismissal is implemented\n\tif sub := s.council.SubDAOs(); len(sub) \u003e 0 {\n\t\tecosystemDAO := sub[0]\n\t\tif !ecosystemDAO.HasMember(addr) {\n\t\t\treturn errors.New(\"only members of the council DAO or ecosystem DAO can vote on budget proposals\")\n\t\t}\n\t} else {\n\t\treturn errors.New(\"ecosystem DAO not found\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (budgetStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s budgetStrategy) RenderParams() string {\n\treturn \"**Budget**: \" + gnome.EscapeHTML(s.budget)\n}\n"},{"name":"strategy_budget_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestBudgetStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\",\n\t\t\t\tgnome.AssignAsSuperCouncil(),\n\t\t\t\tgnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"ecosystem\", \"Ecosystem\"),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"nil council\",\n\t\t\terr: \"council DAO is requried\",\n\t\t},\n\t\t{\n\t\t\tname: \"no super council\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\"),\n\t\t\terr: \"budget strategy expects DAO to be a super council\",\n\t\t},\n\t\t{\n\t\t\tname: \"council without ecosystem DAO\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil()),\n\t\t\terr: \"budget strategy expects council DAO to have at least one sub DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameBudget\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s budgetStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newBudgetStrategy(tc.council, \"1USD\")\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyCheckVote(t *testing.T) {\n\tcouncilMember := newTestMember(t, \"council\")\n\tecosystemMember := newTestMember(t, \"ecosystem\")\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(councilMember),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(ecosystemMember)),\n\t\t),\n\t)\n\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"council DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: councilMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"ecosystem DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: ecosystemMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\taddress: testutils.TestAddress(\"foo\"),\n\t\t\tcouncil: council,\n\t\t\terr: \"only members of the council DAO or ecosystem DAO can vote on budget proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newBudgetStrategy(tc.council, \"1USD\")\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(tc.address, tc.choice, \"\")\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyTally(t *testing.T) {\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(\n\t\t\tnewTestMember(t, \"member1\"),\n\t\t\tnewTestMember(t, \"member2\"),\n\t\t\tnewTestMember(t, \"member3\"),\n\t\t\tnewTestMember(t, \"member4\"),\n\t\t),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"ecosystem\", \"Ecosystem\"),\n\t\t),\n\t)\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newBudgetStrategy(council, \"1USD\")\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(council, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc handlePanic(t *testing.T, fn func()) (reason error) {\n\tt.Helper()\n\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif err, _ := r.(error); err != nil {\n\t\t\t\treason = err\n\t\t\t} else {\n\t\t\t\treason = errors.New(fmt.Sprint(r))\n\t\t\t}\n\t\t}\n\t}()\n\n\tfn()\n\treturn\n}\n"},{"name":"strategy_dao.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// Minimum number of members per DAO to support voting.\nconst minMembersCount = 3\n\nfunc newSubDAOCreationStrategy(daos daoIndex, name, title, manifest string, members []gnome.Member) subDAOCreationStrategy {\n\tif strings.TrimSpace(name) == \"\" {\n\t\tpanic(\"sub DAO name is required\")\n\t}\n\n\tif !gnome.IsSlug(name) {\n\t\tpanic(`invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"sub DAO title is required\")\n\t}\n\n\tif strings.TrimSpace(manifest) == \"\" {\n\t\tpanic(\"sub DAO manifest is required\")\n\t}\n\n\tif len(members) == 0 {\n\t\tpanic(\"sub DAOs require at least one member\")\n\t}\n\n\treturn subDAOCreationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdaos: daos,\n\t\tname: name,\n\t\ttitle: title,\n\t\tmanifest: manifest,\n\t\tmembers: members,\n\t}\n}\n\ntype subDAOCreationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdaos daoIndex\n\tname, title, manifest string\n\tmembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (subDAOCreationStrategy) Name() string {\n\treturn StrategyNameSubDAOCreation\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAOCreationStrategy) Quorum() float64 {\n\treturn 1.0\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAOCreationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameSubDAOCreation)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAOCreationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAOCreationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Strategy need 100% participation to decide on the outcome.\n\t// Normally quorum should make sure all members voted before\n\t// tallying but otherwise tally should not return a valid outcome.\n\tif len(dao.Members()) != r.VoteCount() {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\t// This type of proposals can pass only when 100% of members vote YES.\n\tfor _, v := range r.Votes() {\n\t\t// If there is at least one NO vote then proposal must be rejected\n\t\tif v.Choice == gnome.ChoiceNo {\n\t\t\treturn gnome.ChoiceNo\n\t\t}\n\t}\n\t// Proposal should pass when all votes are YES\n\treturn gnome.ChoiceYes\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s subDAOCreationStrategy) Validate(p *gnome.Proposal) error {\n\tdao := p.DAO()\n\tpath := dao.Path()\n\tif dao.IsLocked() {\n\t\treturn errors.New(\"parent DAO '\" + path + \"' is locked\")\n\t}\n\n\tsubDAOPath := path + gnome.PathSeparator + s.name\n\tif s.daos.HasPathKey(subDAOPath) {\n\t\treturn errors.New(\"sub DAO path has been taken by another DAO\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAOCreationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tmembers []string\n\t\tmanifest = gnome.EscapeHTML(s.manifest)\n\t)\n\n\tfor _, addr := range s.members {\n\t\tmembers = append(members, addr.String())\n\t}\n\n\tb.WriteString(\"**Name:** \" + gnome.EscapeHTML(s.name) + \"\\n\\n\")\n\tb.WriteString(\"**Title:** \" + gnome.EscapeHTML(s.title) + \"\\n\\n\")\n\tb.WriteString(\"**Members:**\\n- \" + strings.Join(members, \"\\n- \") + \"\\n\\n\")\n\tb.WriteString(\"**Manifest:**\\n```\\n\" + manifest + \"\\n```\\n\\n\")\n\n\treturn b.String()\n}\n\n// Execute creates the new sub DAO.\nfunc (s subDAOCreationStrategy) Execute(dao *gnome.DAO) error {\n\tsubDAO, err := gnome.New(s.name, s.title, gnome.WithManifest(s.manifest), gnome.WithMembers(s.members...))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Add the new sub DAO to its parent\n\tdao.AddSubDAO(subDAO)\n\n\t// Index the new sub DAO\n\ts.daos.IndexByPath(subDAO)\n\n\treturn nil\n}\n\nfunc newDAOMembersModificationStrategy(newMembers, removeMembers []gnome.Member) daoMembersModificationStrategy {\n\tif len(newMembers) == 0 \u0026\u0026 len(removeMembers) == 0 {\n\t\tpanic(\"members are required\")\n\t}\n\n\treturn daoMembersModificationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tnewMembers: newMembers,\n\t\tremoveMembers: removeMembers,\n\t}\n}\n\ntype daoMembersModificationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tnewMembers, removeMembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (daoMembersModificationStrategy) Name() string {\n\treturn StrategyNameDAOMembersModification\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (daoMembersModificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (daoMembersModificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDAOMembersModification)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s daoMembersModificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (daoMembersModificationStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Tally requires at least three votes to be able to tally by 2/3s super majority\n\tif r.VoteCount() \u003c 3 {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\tif choice, ok := gnome.SelectChoiceBySuperMajority(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s daoMembersModificationStrategy) Validate(p *gnome.Proposal) error {\n\t// At least three members are required to enforce 2/3s majority on proposals.\n\t// DAOs can have a minimum of one member with the drawback that proposals created\n\t// within it can only be voted by a parent DAO that has at least three members.\n\t// Validation must enforce that the root DAO always have the minimum number of\n\t// members required to vote on proposals to always allow voting on them.\n\tdao := p.DAO()\n\tmemberCount := len(dao.Members()) + len(s.newMembers) - len(s.removeMembers)\n\tif dao.Parent() == nil \u0026\u0026 memberCount \u003c minMembersCount {\n\t\treturn errors.New(\"DAO must always have a minimum of \" + strconv.Itoa(minMembersCount) + \" members\")\n\t} else if memberCount \u003c 1 {\n\t\treturn errors.New(\"sub DAOs require at least one member\")\n\t}\n\n\t// TODO: Should we allow re-adding members to only change assigned roles?\n\tfor _, m := range s.newMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is already a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is not a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Execute modifies DAO members.\nfunc (s daoMembersModificationStrategy) Execute(dao *gnome.DAO) error {\n\tfor _, m := range s.removeMembers {\n\t\tdao.RemoveMember(m.Address)\n\t}\n\n\tfor _, m := range s.newMembers {\n\t\tdao.AddMember(m)\n\t}\n\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s daoMembersModificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tif count := len(s.newMembers); count \u003e 0 {\n\t\tmembers := make([]string, count)\n\t\tfor i, m := range s.newMembers {\n\t\t\tmembers[i] = m.String()\n\t\t}\n\n\t\tb.WriteString(\"**New Members:**\\n- \" + strings.Join(members, \"\\n- \") + \"\\n\\n\")\n\t}\n\n\tif count := len(s.removeMembers); count \u003e 0 {\n\t\tmembers := make([]string, count)\n\t\tfor i, m := range s.removeMembers {\n\t\t\tmembers[i] = m.String()\n\t\t}\n\n\t\tb.WriteString(\"**Members to Remove:**\\n- \" + strings.Join(members, \"\\n- \") + \"\\n\\n\")\n\t}\n\n\treturn b.String()\n}\n\nfunc newSubDAODismissalStrategy(dao *gnome.DAO, x proposalIndex) subDAODismissalStrategy {\n\tif dao == nil {\n\t\tpanic(\"DAO is required\")\n\t}\n\n\treturn subDAODismissalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdao: dao,\n\t\tproposals: x,\n\t}\n}\n\ntype subDAODismissalStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdao *gnome.DAO\n\tproposals proposalIndex\n}\n\n// Name returns the name of the strategy.\nfunc (subDAODismissalStrategy) Name() string {\n\treturn StrategyNameSubDAODismissal\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAODismissalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAODismissalStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameSubDAODismissal)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAODismissalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAODismissalStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s subDAODismissalStrategy) Validate(p *gnome.Proposal) error {\n\tparentDAO := s.dao.Parent()\n\tif parentDAO == nil {\n\t\treturn errors.New(\"the DAO to dismiss has no parent DAO\")\n\t}\n\n\tparentName := p.DAO().Name()\n\tif parentDAO.Name() != parentName {\n\t\treturn errors.New(`the DAO to dismiss must be a first level sub DAO of \"` + parentName + `\"`)\n\t}\n\treturn nil\n}\n\n// Execute modifies DAO members.\nfunc (s subDAODismissalStrategy) Execute(*gnome.DAO) error {\n\t// Get the list of all sub DAOs and the root DAO to dismiss\n\tdaos := append(collectSubDAOs(s.dao), s.dao)\n\t// Proposal dismissal requires a reason\n\t// TODO: Send proposal to Execute and add dismissal proposal link?\n\treason := \"Dismissed because of DAO dismissal: \" + s.dao.Path()\n\n\tfor _, dao := range daos {\n\t\t// Dismiss all proposals for the current DAO\n\t\tfor _, p := range s.proposals.GetAllByDAO(dao.Path()) {\n\t\t\tif !p.Status().IsFinal() {\n\t\t\t\tp.Dismiss(reason)\n\t\t\t}\n\t\t}\n\n\t\t// Lock the DAO to dismiss it\n\t\tdao.Lock(\"\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAODismissalStrategy) RenderParams() string {\n\treturn \"**DAO:** \" + s.dao.Path()\n}\n\nfunc collectSubDAOs(dao *gnome.DAO) []*gnome.DAO {\n\tdaos := dao.SubDAOs()\n\tfor _, sub := range daos[:] {\n\t\tdaos = append(daos, collectSubDAOs(sub)...)\n\t}\n\treturn daos\n}\n"},{"name":"strategy_dao_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestSubDAOCreationStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName, title, manifest, err string\n\t\tmembers []gnome.Member\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\tmembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t\tnewTestMember(t, \"address3\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"without name\",\n\t\t\terr: \"sub DAO name is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid name\",\n\t\t\tdaoName: \"invalid name\",\n\t\t\terr: `invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`,\n\t\t},\n\t\t{\n\t\t\tname: \"without title\",\n\t\t\tdaoName: \"test\",\n\t\t\terr: \"sub DAO title is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"without manifest\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\terr: \"sub DAO manifest is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than two DAO members\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\terr: \"sub DAOs require at least 3 members\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameSubDAOCreation\n\t\t\tquorum := 1.0\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAOCreationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAOCreationStrategy(daoIndex{}, tc.daoName, tc.title, tc.manifest, tc.members)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"quorum vote yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum vote no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum with different choices\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAOCreationStrategy(daoIndex{}, \"name\", \"Name\", \"Manifest\", []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t\tnewTestMember(t, \"member3\"),\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName string\n\t\tsetup func(*daoIndex) *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"existing name\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(x *daoIndex) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tx.IndexByPath(child)\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"sub DAO path has been taken by another DAO\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked parent\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t\tdao.Lock(\"\")\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"parent DAO 'parent' is locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tx := daoIndex{}\n\t\t\tdao := tc.setup(\u0026x)\n\t\t\tmembers := []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t\tnewTestMember(t, \"member3\"),\n\t\t\t}\n\t\t\ts := newSubDAOCreationStrategy(x, tc.daoName, \"Title\", \"Manifest\", members)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"name\", \"Name\")\n\tsubName := \"sub\"\n\ttitle := \"Sub DAO\"\n\tmanifest := \"Test manifest\"\n\n\ts := newSubDAOCreationStrategy(daoIndex{}, subName, title, manifest, []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t})\n\tmembers := fmt.Sprintf(\"%v\", s.members)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tsubDAOs := dao.SubDAOs()\n\tif c := len(subDAOs); c != 1 {\n\t\tt.Fatalf(\"expected one sub DAO, got: %d\", c)\n\t}\n\n\tsubDAO := subDAOs[0]\n\tif got := subDAO.Name(); got != subName {\n\t\tt.Fatalf(\"expected sub DAO name: '%s', got: '%s'\", subName, got)\n\t}\n\n\tif got := subDAO.Title(); got != title {\n\t\tt.Fatalf(\"expected sub DAO title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := subDAO.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected sub DAO manifest: '%s', got: '%d'\", manifest, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", subDAO.Members()); got != members {\n\t\tt.Fatalf(\"expected sub DAO members: '%s', got: '%s'\", members, got)\n\t}\n}\n\nfunc TestModifyDAOMembersStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"new and remove members\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"new members only\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"remove members only\",\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"no members\",\n\t\t\terr: \"members are required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameDAOMembersModification\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s daoMembersModificationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"super majority votes yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"super majority votes no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newDAOMembersModificationStrategy(\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member5\")},\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member2\")},\n\t\t\t)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyValidate(t *testing.T) {\n\tmember5 := newTestMember(t, \"member5\")\n\tmembers := []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\tsetup func() *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"less than three members\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tremoveMembers: members[1:],\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"DAO must always have a minimum of 3 members\",\n\t\t},\n\t\t{\n\t\t\tname: \"add existing member\",\n\t\t\tnewMembers: []gnome.Member{members[0]},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is already a DAO member: \" + members[0].String(),\n\t\t},\n\t\t{\n\t\t\tname: \"remove unexisting member\",\n\t\t\tremoveMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is not a DAO member: \" + member5.String(),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := tc.setup()\n\t\t\ts := newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"ecosystem\", \"Ecosystem\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tnewMembers := []gnome.Member{\n\t\tnewTestMember(t, \"member5\"),\n\t\tnewTestMember(t, \"member6\"),\n\t}\n\tremoveMembers := dao.Members()[1:3]\n\ts := newDAOMembersModificationStrategy(newMembers, removeMembers)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tif c := len(dao.Members()); c != 4 {\n\t\tt.Fatalf(\"expected DAO to have 4 members, got: %d\", c)\n\t}\n\n\tfor _, m := range newMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be added to the DAO\", m.Address)\n\t\t}\n\t}\n\n\tfor _, m := range removeMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be removed from the DAO\", m.Address)\n\t\t}\n\t}\n}\n\nfunc TestSubDAODismissalStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tdao *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"dao\", \"DAO\"),\n\t\t},\n\t\t{\n\t\t\tname: \"no DAO\",\n\t\t\terr: \"DAO is required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameSubDAODismissal\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAODismissalStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAODismissalStrategy(tc.dao, proposalIndex{})\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tsubDAO := gnome.MustNew(\"sub\", \"Sub DAO\")\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAODismissalStrategy(subDAO, proposalIndex{})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyValidate(t *testing.T) {\n\tparentDAO := gnome.MustNew(\"parent\", \"Parent\")\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(parent *gnome.DAO) (child *gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func(dao *gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao.AddSubDAO(child)\n\t\t\t\treturn child\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dismiss non child DAO\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"foo\", \"Foo\", gnome.WithSubDAO(child))\n\t\t\t\treturn child\n\t\t\t},\n\t\t\terr: `the DAO to dismiss must be a first level sub DAO of \"` + parentDAO.Name() + `\"`,\n\t\t},\n\t\t{\n\t\t\tname: \"parent DAO not found\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"child\", \"Child\")\n\t\t\t},\n\t\t\terr: \"the DAO to dismiss has no parent DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tchildDAO := tc.setup(parentDAO)\n\t\t\ts := newSubDAODismissalStrategy(childDAO, proposalIndex{})\n\t\t\tp, _ := gnome.NewProposal(1, s, testutils.TestAddress(\"member\"), parentDAO, \"Dismiss child DAO\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyExecute(t *testing.T) {\n\t// Arrange\n\tvar (\n\t\tstrategy testStrategy\n\t\tproposals proposalIndex\n\t)\n\n\tcaller := testutils.TestAddress(\"caller\")\n\n\tthreeDAO := gnome.MustNew(\"three\", \"Three\")\n\ttwoDAO := gnome.MustNew(\"two\", \"Two\")\n\toneDAO := gnome.MustNew(\"one\", \"One\", gnome.WithSubDAO(twoDAO), gnome.WithSubDAO(threeDAO))\n\trootDAO := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(oneDAO))\n\n\tp, _ := gnome.NewProposal(1, strategy, caller, rootDAO, \"Root\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(2, strategy, caller, oneDAO, \"One\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(3, strategy, caller, twoDAO, \"Two\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(4, strategy, caller, threeDAO, \"Thee\")\n\tproposals.Index(p)\n\n\tdismissReason := \"Dismissed because of DAO dismissal: \" + rootDAO.Name()\n\tdaos := []*gnome.DAO{rootDAO, oneDAO, twoDAO, threeDAO}\n\ts := newSubDAODismissalStrategy(rootDAO, proposals)\n\n\t// Act\n\terr := s.Execute(nil)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tfor _, dao := range daos {\n\t\tif !dao.IsLocked() {\n\t\t\tt.Fatalf(\"expected DAO '%s' to be locked\", dao.Title())\n\t\t}\n\t}\n\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tif got := p.Status(); got != gnome.StatusDismissed {\n\t\t\tt.Fatalf(\"expected proposal '%s' status to be 'dismissed', got: '%s'\", p.Title(), got.String())\n\t\t}\n\n\t\tif got := p.StatusReason(); got != dismissReason {\n\t\t\tt.Fatalf(\"expected dismiss reason '%s', got: '%s'\", dismissReason, got)\n\t\t}\n\t\treturn false\n\t})\n}\n\ntype testStrategy struct{}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice { return []gnome.VoteChoice{gnome.ChoiceYes} }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return gnome.ChoiceYes }\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"strategy_general.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// newGeneralStrategy creates a new general proposal strategy.\n// This type of proposal is not executable so it doesn't modify the DAO state when proposal passes.\nfunc newGeneralStrategy() generalStrategy {\n\treturn generalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t}\n}\n\ntype generalStrategy struct {\n\tchoices []gnome.VoteChoice\n}\n\n// Name returns the name of the strategy.\nfunc (generalStrategy) Name() string {\n\treturn StrategyNameGeneral\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (generalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (generalStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameGeneral)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s generalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s generalStrategy) CheckVote(_ std.Address, choice gnome.VoteChoice, reason string) error {\n\t// Reason is required when voting NO on standard proposals\n\tif choice == gnome.ChoiceNo \u0026\u0026 reason == \"\" {\n\t\treturn errors.New(\"reason is required when voting NO in standard proposals\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (generalStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (generalStrategy) Validate(p *gnome.Proposal) error {\n\tif strings.TrimSpace(p.Description()) == \"\" {\n\t\treturn errors.New(\"proposal description is required\")\n\t}\n\treturn nil\n}\n"},{"name":"strategy_general_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestGeneralStrategy(t *testing.T) {\n\t// Arrange\n\tname := StrategyNameGeneral\n\tquorum := 0.51\n\tvotingPeriod := time.Hour * 24 * 2\n\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\tgnome.ChoiceYes,\n\t\tgnome.ChoiceNo,\n\t})\n\n\t// Act\n\ts := newGeneralStrategy()\n\n\t// Assert\n\tif got := s.Name(); got != name {\n\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t}\n\n\tif got := s.Quorum(); got != quorum {\n\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t}\n\n\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t}\n}\n\nfunc TestGeneralStrategyCheckVote(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tchoice gnome.VoteChoice\n\t\treason, err string\n\t}{\n\t\t{\n\t\t\tname: \"yes\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with reason\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with invalid reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\terr: \"reason is required when voting NO in standard proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(\"\", tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGeneralStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"test\", \"Test\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n"},{"name":"strategy_lock.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// newLockingStrategy creates a new DAO locking proposal strategy.\nfunc newLockingStrategy(council *gnome.DAO, reason string, preLockFn func() error) lockingStrategy {\n\t// Locking should only be done in the council DAO\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"DAO is not the council\")\n\t}\n\n\treturn lockingStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\treason: reason,\n\t\tpreLockFn: preLockFn,\n\t}\n}\n\ntype lockingStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\treason string\n\tpreLockFn func() error\n}\n\n// Name returns the name of the strategy.\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\tif s.council.IsLocked() {\n\t\treturn errors.New(\"council DAO is already locked\")\n\t}\n\treturn nil\n}\n\n// Execute locks the council DAO.\nfunc (s lockingStrategy) Execute(*gnome.DAO) (err error) {\n\tif s.preLockFn != nil {\n\t\tif err := s.preLockFn(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\ts.council.Lock(s.reason)\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s lockingStrategy) RenderParams() string {\n\treturn \"**Reason:** \" + gnome.EscapeHTML(s.reason)\n}\n"},{"name":"strategy_lock_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\nfunc TestLockingStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, err string\n\t\tsetup func() *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dao is not council\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\")\n\t\t\t},\n\t\t\terr: \"DAO is not the council\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameLocking\n\t\t\tquorum := 0.33\n\t\t\tvotingPeriod := time.Hour * 24 * 2\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\t\t\tcouncilDAO := tc.setup()\n\n\t\t\t// Act\n\t\t\tvar s lockingStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newLockingStrategy(councilDAO, \"\", nil)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyTally(t *testing.T) {\n\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(*gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked council DAO\",\n\t\t\tsetup: func(councilDAO *gnome.DAO) {\n\t\t\t\tcouncilDAO.Lock(\"\")\n\t\t\t},\n\t\t\terr: \"council DAO is already locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\terr := s.Validate(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyExecute(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason, err string\n\t\tsetup func(*gnome.DAO)\n\t\tpreLockErr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Lock reason\",\n\t\t},\n\t\t{\n\t\t\tname: \"pre lock function error\",\n\t\t\tpreLockErr: errors.New(\"test error\"),\n\t\t\terr: \"test error\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\tvar (\n\t\t\t\tpreLockFnCalled bool\n\n\t\t\t\ts = newLockingStrategy(councilDAO, tc.reason, func() error {\n\t\t\t\t\tpreLockFnCalled = true\n\t\t\t\t\treturn tc.preLockErr\n\t\t\t\t})\n\t\t\t)\n\n\t\t\t// Act\n\t\t\terr := s.Execute(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !preLockFnCalled {\n\t\t\t\tt.Fatal(\"expected pre-lock function to be called\")\n\t\t\t}\n\n\t\t\tif !councilDAO.IsLocked() {\n\t\t\t\tt.Fatal(\"expected DAO to be locked\")\n\t\t\t}\n\n\t\t\tif got := councilDAO.LockReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected lock reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"strategy_params.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\ntype paramsUpdateStrategy struct {\n\tvotingPeriods gnome.DurationParams\n\treviewDeadline time.Duration\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\tif s.reviewDeadline \u003e 0 {\n\t\tparameters.ReviewDeadline = s.reviewDeadline\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tif s.reviewDeadline \u003e 0 {\n\t\tb.WriteString(\"**Proposal Review Deadline:** \" + gnome.HumanizeDuration(s.reviewDeadline) + \"\\n\\n\")\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"**Voting Period for '\" + name + \"':** \" + gnome.HumanizeDuration(period) + \"\\n\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"uri.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\tproxy \"gno.land/r/gnome/dao\"\n)\n\nfunc makeGnoStudioConnectURL(functionName string) string {\n\treturn ufmt.Sprintf(\n\t\t\"https://gno.studio/connect/view/%s?network=%s\u0026tab=functions#%s\",\n\t\tstd.CurrentRealm().PkgPath(),\n\t\tstd.GetChainID(),\n\t\tfunctionName,\n\t)\n}\n\nfunc makeDAOURI(daoPath string) string {\n\treturn proxy.URL(\"dao/\" + daoPath)\n}\n\nfunc makeProposalURI(proposalID gnome.ID) string {\n\treturn proxy.URL(\"proposal/\" + proposalID.String())\n}\n\nfunc makeProposalsURI(daoPath string) string {\n\treturn proxy.URL(\"proposals/\" + daoPath + \"?page=1\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"26000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V5NuQsXt/FvsuN1WyZFhl7I/8FjFUfZ/M9nMH29O9q3hJH16NxEybq0g5wCqH0yq0tfGVkbsZBbEbmteEMUXCA=="}],"memo":""},"metadata":{"timestamp":"1734112040"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"paginator","path":"gno.land/p/gnome/paginator","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"paginator.gno","body":"package paginator\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"net/url\"\n\t\"strconv\"\n)\n\nconst (\n\tDefaultPageSize = 50\n\tDefaultPageQueryParam = \"page\"\n)\n\nvar ErrInvalidPageNumber = errors.New(\"invalid page number\")\n\ntype (\n\t// PaginatorIterFn defines a callback to iterate page items.\n\tPaginatorIterFn func(index int) (stop bool)\n\n\t// PaginatorOption configures the paginator.\n\tPaginatorOption func(*Paginator)\n)\n\n// WithPageSize assigns a page size to a paginator.\nfunc WithPageSize(size int) PaginatorOption {\n\treturn func(p *Paginator) {\n\t\tif size \u003c 1 {\n\t\t\tp.pageSize = DefaultPageSize\n\t\t} else {\n\t\t\tp.pageSize = size\n\t\t}\n\t}\n}\n\n// WithPageQueryParam assigns the name of the URL query param for the page value.\nfunc WithPageQueryParam(name string) PaginatorOption {\n\treturn func(p *Paginator) {\n\t\tp.pageQueryParam = name\n\t}\n}\n\n// New creates a new paginator.\nfunc New(rawURL string, totalItems int, options ...PaginatorOption) (Paginator, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn Paginator{}, err\n\t}\n\n\tp := Paginator{\n\t\tpageQueryParam: DefaultPageQueryParam,\n\t\tpageSize: DefaultPageSize,\n\t\tpage: 1,\n\t\ttotalItems: totalItems,\n\t}\n\tfor _, apply := range options {\n\t\tapply(\u0026p)\n\t}\n\n\tp.pageCount = int(math.Ceil(float64(p.totalItems) / float64(p.pageSize)))\n\n\trawPage := u.Query().Get(p.pageQueryParam)\n\tif rawPage != \"\" {\n\t\tp.page, _ = strconv.Atoi(rawPage)\n\t\tif p.page == 0 || p.page \u003e p.pageCount {\n\t\t\treturn Paginator{}, ErrInvalidPageNumber\n\t\t}\n\t}\n\treturn p, nil\n}\n\n// MustNew creates a new paginator or panics if there is an error.\nfunc MustNew(rawURL string, totalItems int, options ...PaginatorOption) Paginator {\n\tp, err := New(rawURL, totalItems, options...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn p\n}\n\n// Paginator allows paging items.\ntype Paginator struct {\n\tpageQueryParam string\n\tpageSize, page, pageCount, totalItems int\n}\n\n// TotalItems returns the total number of items to paginate.\nfunc (p Paginator) TotalItems() int {\n\treturn p.totalItems\n}\n\n// PageSize returns the size of each page.\nfunc (p Paginator) PageSize() int {\n\treturn p.pageSize\n}\n\n// Page returns the current page number.\nfunc (p Paginator) Page() int {\n\treturn p.page\n}\n\n// PageCount returns the number pages.\nfunc (p Paginator) PageCount() int {\n\treturn p.pageCount\n}\n\n// Offset returns the index of the first page item.\nfunc (p Paginator) Offset() int {\n\treturn (p.page - 1) * p.pageSize\n}\n\n// HasPages checks if paginator has more than one page.\nfunc (p Paginator) HasPages() bool {\n\treturn p.pageCount \u003e 1\n}\n\n// GetPageURI returns the URI for a page.\n// An empty string is returned when page doesn't exist.\nfunc (p Paginator) GetPageURI(page int) string {\n\tif page \u003c 1 || page \u003e p.PageCount() {\n\t\treturn \"\"\n\t}\n\n\t// TODO: Add other query args that might be present in the realm path\n\treturn \"?\" + p.pageQueryParam + \"=\" + strconv.Itoa(page)\n}\n\n// PrevPageURI returns the URI path to the previous page.\n// An empty string is returned when current page is the first page.\nfunc (p Paginator) PrevPageURI() string {\n\tif p.page == 1 || !p.HasPages() {\n\t\treturn \"\"\n\t}\n\treturn p.GetPageURI(p.page - 1)\n}\n\n// NextPageURI returns the URI path to the next page.\n// An empty string is returned when current page is the last page.\nfunc (p Paginator) NextPageURI() string {\n\tif p.page == p.pageCount {\n\t\t// Current page is the last page\n\t\treturn \"\"\n\t}\n\treturn p.GetPageURI(p.page + 1)\n}\n\n// Iterate allows iterating page items.\nfunc (p Paginator) Iterate(fn PaginatorIterFn) bool {\n\tif p.totalItems == 0 {\n\t\treturn true\n\t}\n\n\tstart := p.Offset()\n\tfor i := start; i \u003c start+p.PageSize(); i++ {\n\t\tif fn(i) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// String returns the paginator as Markdown.\nfunc (p Paginator) String() string {\n\tvar out string\n\tif s := p.PrevPageURI(); s != \"\" {\n\t\tout = \"[«](\" + s + \") | \"\n\t} else {\n\t\tout = \"\\\\- | \"\n\t}\n\n\t// TODO: Add option to display links to other page numbers\n\tout += \"page \" + strconv.Itoa(p.Page()) + \" of \" + strconv.Itoa(p.PageCount())\n\n\tif s := p.NextPageURI(); s != \"\" {\n\t\tout += \" | [»](\" + s + \")\"\n\t} else {\n\t\tout += \" | \\\\-\"\n\t}\n\n\treturn out\n}\n"},{"name":"paginator_test.gno","body":"package paginator\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestPaginator(t *testing.T) {\n\titems := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\tcases := []struct {\n\t\tname, uri, prevPath, nextPath string\n\t\toffset, pageSize, page, pageCount int\n\t\tpageItems string\n\t\tstopped, hasPages, isLastPage bool\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"page 1\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar?page=1\u0026foo=bar\",\n\t\t\thasPages: true,\n\t\t\tnextPath: \"?page=2\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 5,\n\t\t\tpage: 1,\n\t\t\tpageCount: 2,\n\t\t\tpageItems: \"[1 2 3 4 5]\",\n\t\t},\n\t\t{\n\t\t\tname: \"page 2\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar?page=2\u0026foo=bar\",\n\t\t\thasPages: true,\n\t\t\tprevPath: \"?page=1\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 5,\n\t\t\tpageSize: 5,\n\t\t\tpage: 2,\n\t\t\tpageCount: 2,\n\t\t\tpageItems: \"[6 7 8 9 10]\",\n\t\t\tisLastPage: true,\n\t\t},\n\t\t{\n\t\t\tname: \"missing page\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar?page=3\u0026foo=bar\",\n\t\t\thasPages: true,\n\t\t\tprevPath: \"?page=2\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 10,\n\t\t\tpageSize: 5,\n\t\t\tpage: 3,\n\t\t\tpageCount: 2,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid page number\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar?page=0\",\n\t\t\terr: ErrInvalidPageNumber,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid page value\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar?page=foo\",\n\t\t\terr: ErrInvalidPageNumber,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tvar (\n\t\t\t\tpageItems []int\n\t\t\t\titemsCount = len(items)\n\t\t\t)\n\n\t\t\t// Act\n\t\t\tp, err := New(tc.uri, itemsCount, WithPageSize(tc.pageSize))\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Fatalf(\"expected error: '%s', got no error\", tc.err.Error())\n\t\t\t\t} else if want := tc.err.Error(); want != err.Error() {\n\t\t\t\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, err.Error())\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t} else if err != nil {\n\t\t\t\tt.Fatalf(\"expected no error, got: '%s'\", err.Error())\n\t\t\t}\n\n\t\t\tif got := p.TotalItems(); got != itemsCount {\n\t\t\t\tt.Fatalf(\"expected page: %d, got: %d\", itemsCount, got)\n\t\t\t}\n\n\t\t\tif got := p.Page(); got != tc.page {\n\t\t\t\tt.Fatalf(\"expected page: %d, got: %d\", tc.page, got)\n\t\t\t}\n\n\t\t\tif got := p.PageCount(); got != tc.pageCount {\n\t\t\t\tt.Fatalf(\"expected page count: %d, got: %d\", tc.pageCount, got)\n\t\t\t}\n\n\t\t\tif got := p.PrevPageURI(); got != tc.prevPath {\n\t\t\t\tt.Fatalf(\"expected prev page path: '%s', got: '%s'\", tc.prevPath, got)\n\t\t\t}\n\n\t\t\tif got := p.NextPageURI(); got != tc.nextPath {\n\t\t\t\tt.Fatalf(\"expected next page path: '%s', got: '%s'\", tc.nextPath, got)\n\t\t\t}\n\n\t\t\tif got := p.PageSize(); got != tc.pageSize {\n\t\t\t\tt.Fatalf(\"expected page size: %d, got: %d\", tc.pageSize, got)\n\t\t\t}\n\n\t\t\tif got := p.HasPages(); got != tc.hasPages {\n\t\t\t\tt.Fatalf(\"expected has pages: %v, got: %v\", tc.hasPages, got)\n\t\t\t}\n\n\t\t\tstopped := p.Iterate(func(i int) bool {\n\t\t\t\tif i \u003e= len(items) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tpageItems = append(pageItems, items[i])\n\t\t\t\treturn false\n\t\t\t})\n\t\t\tif stopped != tc.stopped {\n\t\t\t\tt.Fatalf(\"expected iteration result: %v, got: %v\", tc.stopped, stopped)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", pageItems); got != tc.pageItems {\n\t\t\t\tt.Fatalf(\"expected page items: %s, got: %s\", tc.pageItems, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iZWzFuTVNsrbC4OZwhjn+i1kzO9xEJGasAics1Eei8VozuV01BdfmZ7c01m22OxFPfFUK4FDKAQ3PPB5hdsdDA=="}],"memo":""},"metadata":{"timestamp":"1734105925"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"renderproxy","path":"gno.land/p/gnome/renderproxy","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"proxy.gno","body":"package renderproxy\n\nimport (\n\t\"errors\"\n\t\"regexp\"\n\t\"std\"\n\t\"strings\"\n)\n\nvar (\n\tErrRealmNotRegistered = errors.New(\"backend realm not registered\")\n\tErrInvalidRealmPath = errors.New(\"invalid realm path\")\n\tErrRenderFuncRequired = errors.New(\"render function is required\")\n)\n\nvar reRealmPath = regexp.MustCompile(`^gno\\.land\\/r(?:\\/_?[a-z]+[a-z0-9_]*){2,}$`)\n\ntype (\n\t// RenderFn defines a type for realm render functions.\n\tRenderFn func(path string) string\n\n\t// Proxy allows proxying realm calls forwarding calls\n\t// to realms defined inside the proxy's realm namespace.\n\tProxy struct {\n\t\tpath string\n\t\trealmPath string\n\t\trender RenderFn\n\t}\n)\n\n// New creates a new proxy.\nfunc New() (Proxy, error) {\n\tpath := std.CurrentRealm().PkgPath()\n\tif !reRealmPath.MatchString(path) {\n\t\treturn Proxy{}, ErrInvalidRealmPath\n\t}\n\treturn Proxy{path: path}, nil\n}\n\n// MustNew creates a new proxy or panics on error.\nfunc MustNew() Proxy {\n\tp, err := New()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn p\n}\n\n// Register registers a render function of the realm to forward requests.\nfunc (p *Proxy) Register(realm string, fn RenderFn) error {\n\tif fn == nil {\n\t\treturn ErrRenderFuncRequired\n\t}\n\n\trealm = strings.TrimSpace(realm)\n\tif !strings.HasPrefix(realm, p.path+\"/\") {\n\t\treturn errors.New(\"registered realm path must start with: \" + p.path)\n\t}\n\n\tp.realmPath = realm\n\tp.render = fn\n\treturn nil\n}\n\n// MustRegister registers a render function of the realm\n// to forward requests or panics on error.\nfunc (p *Proxy) MustRegister(realm string, fn RenderFn) {\n\tif err := p.Register(realm, fn); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Path returns the realm path where the proxy is defined.\nfunc (p Proxy) Path() string {\n\treturn p.path\n}\n\n// RealmPath returns the path of the realm being proxied.\nfunc (p Proxy) RealmPath() string {\n\treturn p.realmPath\n}\n\n// URL creates URLs for the proxy realm.\nfunc (p Proxy) URL(renderPath string) string {\n\turl := \"https://\"\n\tchainID := std.GetChainID()\n\tif strings.HasPrefix(chainID, \"test\") {\n\t\turl += chainID + \".\"\n\t}\n\n\turl += p.path\n\tif renderPath != \"\" {\n\t\turl += \":\" + renderPath\n\t}\n\treturn url\n}\n\n// Render calls the render function of the proxied realm.\nfunc (p Proxy) Render(path string) (string, error) {\n\tif p.realmPath == \"\" {\n\t\treturn \"\", ErrRealmNotRegistered\n\t}\n\treturn p.render(path), nil\n}\n\n// MustRender calls the render function of the proxied realm or panics on error.\nfunc (p Proxy) MustRender(path string) string {\n\ts, err := p.Render(path)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn s\n}\n"},{"name":"proxy_test.gno","body":"package renderproxy\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestNew(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tpath string\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tpath: \"gno.land/r/foo/app\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid proxy realm path\",\n\t\t\terr: ErrInvalidRealmPath,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tstd.TestSetRealm(std.NewCodeRealm(tc.path))\n\n\t\t\t// Act\n\t\t\tp, err := New()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tuassert.ErrorIs(t, err, tc.err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\turequire.NoError(t, err)\n\t\t\tuassert.Equal(t, tc.path, p.Path())\n\t\t\tuassert.Empty(t, p.RealmPath())\n\t\t})\n\t}\n}\n\nfunc TestRegister(t *testing.T) {\n\trenderFn := func(string) string { return \"\" }\n\tcases := []struct {\n\t\tname string\n\t\trealm string\n\t\tfn RenderFn\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\trealm: \"gno.land/r/foo/app/v1\",\n\t\t\tfn: renderFn,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid realm path\",\n\t\t\trealm: \"gno.land/r/foo/x/v1\",\n\t\t\tfn: renderFn,\n\t\t\terr: \"registered realm path must start with: gno.land/r/foo/app\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty realm path\",\n\t\t\trealm: \"\",\n\t\t\tfn: renderFn,\n\t\t\terr: \"registered realm path must start with: gno.land/r/foo/app\",\n\t\t},\n\t\t{\n\t\t\tname: \"nil render function\",\n\t\t\tfn: nil,\n\t\t\terr: ErrRenderFuncRequired.Error(),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/foo/app\"))\n\t\t\tp := MustNew()\n\n\t\t\t// Act\n\t\t\terr := p.Register(tc.realm, tc.fn)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tuassert.ErrorContains(t, err, tc.err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tuassert.NoError(t, err)\n\t\t\tuassert.Equal(t, tc.realm, p.RealmPath())\n\t\t})\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\toutput string\n\t\tsetup func(*Proxy)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\toutput: \"foo\",\n\t\t\tsetup: func(p *Proxy) {\n\t\t\t\tp.MustRegister(\"gno.land/r/foo/app/v1\", func(string) string { return \"foo\" })\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"realm not registered\",\n\t\t\terr: ErrRealmNotRegistered,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/foo/app\"))\n\t\t\tp := MustNew()\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(\u0026p)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\ts, err := p.Render(\"\")\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tuassert.ErrorIs(t, err, tc.err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tuassert.NoError(t, err)\n\t\t\tuassert.Equal(t, tc.output, s)\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mVjOrWoC4NC18g6VevGUGgHMJjfXaDTEtJiz5MQyYt7k+SimZ7wJYQ4nAuJpymZjzcpwVaCfcADU3oTLU3I0Cw=="}],"memo":""},"metadata":{"timestamp":"1734105935"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"router","path":"gno.land/p/gnome/router/v2","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"router.gno","body":"package router\n\nimport (\n\t\"errors\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar ErrPathNotFound = errors.New(\"path not found\")\n\ntype (\n\t// ResponseWriter defines the interface to write response output content.\n\tResponseWriter interface {\n\t\t// Write writes a string to the response output.\n\t\tWrite(s string)\n\n\t\t// Writef writes a formatted string to the response output.\n\t\tWritef(format string, values ...interface{})\n\t}\n\n\t// Request contains incoming request info.\n\tRequest struct {\n\t\t// URL contains the full render path URL.\n\t\tURL string\n\n\t\t// Query contains the render path query arguments.\n\t\tQuery url.Values\n\n\t\t// Prefix contains the render path prefix that handled the request.\n\t\t// For example for \"/prefix/custom/route\" the prefix path is \"/prefix\".\n\t\tPrefix string\n\n\t\t// Route contains the render path after the prefix.\n\t\t// This path doesn't include query arguments.\n\t\t// For example for \"/prefix/custom/route?arg1=value1\" the route is \"/custom/route\".\n\t\tRoute string\n\t}\n\n\t// HandlerFunc defines the type for request handlers.\n\tHandlerFunc func(ResponseWriter, Request)\n\n\thandler struct {\n\t\tPrefix string\n\t\tFn HandlerFunc\n\t}\n)\n\n// New creates a new prefix router.\nfunc New() Router {\n\treturn Router{}\n}\n\n// Router allows routing requests by render path prefix.\ntype Router struct {\n\thandlers []handler\n}\n\n// HandlerFunc registers a request handler for a request path prefix.\nfunc (r *Router) HandleFunc(prefix string, fn HandlerFunc) {\n\tr.handlers = append(r.handlers, handler{\n\t\tPrefix: prefix,\n\t\tFn: fn,\n\t})\n}\n\n// Render returns the response content for a render path.\nfunc (r Router) Render(rawURL string) (string, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tvar prefix, route string\n\tif u.Path != \"\" {\n\t\tpath := strings.TrimLeft(u.Path, \"/\")\n\t\tprefix, route, _ = strings.Cut(path, \"/\")\n\t}\n\n\tfor _, h := range r.handlers {\n\t\tif h.Prefix == prefix {\n\t\t\tvar (\n\t\t\t\tw responseWriter\n\t\t\t\treq = Request{\n\t\t\t\t\tURL: rawURL,\n\t\t\t\t\tQuery: u.Query(),\n\t\t\t\t\tPrefix: prefix,\n\t\t\t\t\tRoute: route,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\th.Fn(\u0026w, req)\n\n\t\t\treturn w.Output(), nil\n\t\t}\n\t}\n\n\treturn \"\", ErrPathNotFound\n}\n\n// MustRender returns the response content for a render path or panics on error.\nfunc (r Router) MustRender(rawURL string) string {\n\toutput, err := r.Render(rawURL)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn output\n}\n\ntype responseWriter struct {\n\toutput strings.Builder\n}\n\nfunc (w *responseWriter) Write(s string) {\n\tw.output.WriteString(s)\n}\n\nfunc (w *responseWriter) Writef(format string, values ...interface{}) {\n\tw.output.WriteString(ufmt.Sprintf(format, values...))\n}\n\nfunc (w responseWriter) Output() string {\n\treturn w.output.String()\n}\n"},{"name":"router_test.gno","body":"package router\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\trouter \"gno.land/p/gnome/router/v2\"\n)\n\nfunc TestRouterRender(t *testing.T) {\n\tcases := []struct {\n\t\tname, url, prefix, route, query string\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"prefix path\",\n\t\t\turl: \"/foo\",\n\t\t\tprefix: \"foo\",\n\t\t\tquery: \"map[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"path with short route\",\n\t\t\turl: \"/foo/bar\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar\",\n\t\t\tquery: \"map[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"path with long route\",\n\t\t\turl: \"/foo/bar/baz\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\tquery: \"map[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"full path with multiple query args\",\n\t\t\turl: \"/foo/bar/baz?arg1=value1\u0026arg2=value2\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\tquery: \"map[arg1:[value1] arg2:[value2]]\",\n\t\t},\n\t\t{\n\t\t\tname: \"missing path\",\n\t\t\turl: \"/test\",\n\t\t\terr: router.ErrPathNotFound,\n\t\t},\n\t\t{\n\t\t\tname: \"empty path\",\n\t\t\terr: router.ErrPathNotFound,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tvar (\n\t\t\t\trequest router.Request\n\t\t\t\tsuccessOutput = \"OK\"\n\t\t\t\tr = router.New()\n\t\t\t)\n\n\t\t\tr.HandleFunc(\"foo\", func(res router.ResponseWriter, req router.Request) {\n\t\t\t\trequest = req\n\t\t\t\tres.Write(successOutput)\n\t\t\t})\n\n\t\t\t// Act\n\t\t\toutput, err := r.Render(tc.url)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Fatalf(\"expected error: '%s', got no error\", tc.err.Error())\n\t\t\t\t} else if want := tc.err.Error(); want != err.Error() {\n\t\t\t\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, err.Error())\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t} else if err != nil {\n\t\t\t\tt.Fatalf(\"expected no error, got: '%s'\", err.Error())\n\t\t\t}\n\n\t\t\tif output != successOutput {\n\t\t\t\tt.Fatalf(\"expected output: '%s', got: '%s'\", successOutput, output)\n\t\t\t}\n\n\t\t\tif request.URL != tc.url {\n\t\t\t\tt.Fatalf(\"expected request URL: '%s', got: '%s'\", tc.url, request.URL)\n\t\t\t}\n\n\t\t\tif request.Prefix != tc.prefix {\n\t\t\t\tt.Fatalf(\"expected request prefix: '%s', got: '%s'\", tc.prefix, request.Prefix)\n\t\t\t}\n\n\t\t\tif request.Route != tc.route {\n\t\t\t\tt.Fatalf(\"expected request route: '%s', got: '%s'\", tc.route, request.Route)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", request.Query); got != tc.query {\n\t\t\t\tt.Fatalf(\"expected query values: %s, got: %s\", tc.query, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WGXTJ7e4vN7dAp7LOuZFx33FTEUYtjMuUDYaVXxra4JGAhx0Fk+rBll012oBTSfq56EJ+pLcQyGEllHSj4NiBQ=="}],"memo":""},"metadata":{"timestamp":"1734105930"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"space","path":"gno.land/r/gnome/space","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"space_proxy.gno","body":"package space\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/gnome/renderproxy\"\n)\n\nvar proxy = renderproxy.MustNew()\n\n// ProxyRender proxies render calls for a sub-realm.\nfunc ProxyRender(fn renderproxy.RenderFn) {\n\tproxy.MustRegister(std.PrevRealm().PkgPath(), fn)\n}\n\n// ProxyRealmPath returns the proxied realm's path.\nfunc ProxyRealmPath() string {\n\treturn proxy.RealmPath()\n}\n\n// URL returns a proxy URL.\nfunc URL(renderPath string) string {\n\treturn proxy.URL(renderPath)\n}\n\n// Render returns a Markdown string with the realm output.\nfunc Render(path string) string {\n\treturn proxy.MustRender(path)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LkMPQ69kcEWmQ/c+/X8Ro2gg5RI9G3OzpOQqFs+rlEQNFdjvm8xFCex/QkSuLUBuzsU+ScLtEe4xXeOdShZhBw=="}],"memo":""},"metadata":{"timestamp":"1734111854"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"space","path":"gno.land/r/gnome/space/v1rc1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"genesis.gno","body":"package space\n\nfunc init() {\n\t// Platform Links\n\tindexes.Link.Index(SectionPlatform, \u0026Link{\n\t\tTitle: \"Tutorials\",\n\t\tURL: \"section/tutorials\",\n\t})\n\tindexes.Link.Index(SectionPlatform, \u0026Link{\n\t\tTitle: \"News\",\n\t\tURL: \"news\",\n\t})\n\n\t// Resources Links\n\tindexes.Link.Index(SectionResources, \u0026Link{\n\t\tTitle: \"gno.studio\",\n\t\tURL: \"https://gno.studio/\",\n\t})\n\tindexes.Link.Index(SectionResources, \u0026Link{\n\t\tTitle: \"play.gno.land\",\n\t\tURL: \"https://play.gno.land/\",\n\t})\n\tindexes.Link.Index(SectionResources, \u0026Link{\n\t\tTitle: \"gno.land\",\n\t\tURL: \"https://gno.land/\",\n\t})\n\tindexes.Link.Index(SectionResources, \u0026Link{\n\t\tTitle: \"gno.docs\",\n\t\tURL: \"https://docs.gno.land/\",\n\t})\n\n\t// Social Links\n\tindexes.Link.Index(SectionSocials, \u0026Link{\n\t\tTitle: \"YouTube\",\n\t\tURL: \"\", // TODO: Assign YouTube link\n\t})\n\tindexes.Link.Index(SectionSocials, \u0026Link{\n\t\tTitle: \"Discord\",\n\t\tURL: \"\", // TODO: Add Discord link\n\t})\n\n\t// Ecosystem Tool\n\t// TODO: Add IPFS links to tool icons\n\ttools = []*Tool{\n\t\t{\n\t\t\tName: \"Gno.Studio\",\n\t\t\tURL: \"https://gno.studio/\",\n\t\t\tDescription: \"A premier builder experience with a full-featured IDE and smart contract templates.\",\n\t\t},\n\t\t{\n\t\t\tName: \"Adena Wallet\",\n\t\t\tURL: \"https://www.adena.app/\",\n\t\t\tDescription: \"Adena is a friendly, open-source, non-custodial Gnoland wallet, built for Gnomes worldwide.\",\n\t\t},\n\t\t{\n\t\t\tName: \"Gno Studio Connect\",\n\t\t\tURL: \"https://gno.studio/connect\",\n\t\t\tDescription: \"Simplifies interaction with Gno smart contract functions.\",\n\t\t},\n\t\t{\n\t\t\tName: \"Gno Playground\",\n\t\t\tURL: \"https://play.gno.land/\",\n\t\t\tDescription: \"A minimalist IDE for creating, testing, deploying, and sharing Gno code\",\n\t\t},\n\t\t{\n\t\t\tName: \"GnoDev\",\n\t\t\tURL: \"https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev/\",\n\t\t\tDescription: \"Quick and efficient development of Gno code.\",\n\t\t},\n\t\t{\n\t\t\tName: \"GnoScan\",\n\t\t\tURL: \"https://gnoscan.io/\",\n\t\t\tDescription: \"Gnoscan is a Gnoland blockchain explorer, making on-chain data readable and intuitive.\",\n\t\t},\n\t}\n}\n"},{"name":"indexes.gno","body":"package space\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/jeronimoalbi/datasource\"\n)\n\nvar indexes struct {\n\tNews newsIndex\n\tLink linkIndex\n\tDataSection dataSectionsIndex\n}\n\ntype newsIndex struct {\n\tindex avl.Tree // string(binary id) -\u003e *News\n\ttags avl.Tree // string(tag) -\u003e []*News\n}\n\nfunc (x newsIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *newsIndex) Index(n *News) {\n\t// Index by ID\n\tkey := n.ID.Key()\n\tupdated := x.index.Set(key, n)\n\tif updated {\n\t\tpanic(\"news ID is already indexed: \" + key)\n\t}\n\n\t// Index by tags\n\tfor _, tag := range n.Tags {\n\t\tnews := x.GetByTag(tag)\n\t\tx.tags.Set(tag, append(news, n))\n\t}\n}\n\nfunc (x newsIndex) GetByID(id ID) (*News, bool) {\n\tif v, ok := x.index.Get(id.Key()); ok {\n\t\treturn v.(*News), true\n\t}\n\treturn nil, false\n}\n\nfunc (x newsIndex) GetByTag(tag string) []*News {\n\tif v, ok := x.tags.Get(tag); ok {\n\t\treturn v.([]*News)\n\t}\n\treturn nil\n}\n\nfunc (x newsIndex) GetTags() (tags []string) {\n\tx.tags.Iterate(\"\", \"\", func(tag string, _ interface{}) bool {\n\t\ttags = append(tags, tag)\n\t\treturn false\n\t})\n\treturn\n}\n\nfunc (x *newsIndex) Remove(id ID) bool {\n\tv, removed := x.index.Remove(id.Key())\n\tif !removed {\n\t\treturn false\n\t}\n\n\tcurrent := v.(*News)\n\tfor _, tag := range current.Tags {\n\t\tnews := x.GetByTag(tag)\n\t\tif len(news) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tfor i, n := range news {\n\t\t\tif n.ID == current.ID {\n\t\t\t\tx.tags.Set(tag, append(news[:i], news[i+1:]...))\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// IterateByOffset iterates news by offset.\nfunc (x newsIndex) IterateByOffset(start, end int, fn func(*News) bool) bool {\n\treturn x.index.IterateByOffset(start, end, func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*News))\n\t})\n}\n\n// Iterate iterates news starting from the oldest one.\nfunc (x newsIndex) Iterate(fn func(*News) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*News))\n\t})\n}\n\n// ReverseIterate iterates news starting from the latest one.\nfunc (x newsIndex) ReverseIterate(fn func(*News) bool) bool {\n\treturn x.index.ReverseIterate(\"\", \"\", func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*News))\n\t})\n}\n\ntype linkIndex struct {\n\tindex avl.Tree // string(section) -\u003e []*Link\n}\n\nfunc (x *linkIndex) Index(s Section, l *Link) {\n\tlinks, _ := x.Get(s)\n\tlinks = append(links, l)\n\tx.index.Set(string(s), links)\n}\n\nfunc (x linkIndex) Get(s Section) ([]*Link, bool) {\n\tif v, ok := x.index.Get(string(s)); ok {\n\t\treturn v.([]*Link), true\n\t}\n\treturn nil, false\n}\n\nfunc (x linkIndex) Has(s Section) bool {\n\treturn x.index.Has(string(s))\n}\n\nfunc (x *linkIndex) Remove(s Section, url string) bool {\n\tlinks, found := x.Get(s)\n\tif !found {\n\t\treturn false\n\t}\n\n\tfor i, l := range links {\n\t\tif l.URL != url {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn x.index.Set(string(s), append(links[:i], links[i+1:]...))\n\t}\n\treturn false\n}\n\n// Iterate iterates links.\nfunc (x linkIndex) Iterate(fn func(Section, *Link) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(s string, v interface{}) bool {\n\t\tsection := Section(s)\n\t\tfor _, l := range v.([]*Link) {\n\t\t\tif fn(section, l) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\ntype (\n\tdataSection struct {\n\t\tSlug string\n\t\tTitle string\n\t\tRealm string\n\t\tDatasource datasource.Datasource\n\t\tBlockHeight int64\n\t\tDisabled bool\n\t}\n\n\tdataSectionsIndex struct {\n\t\tindex avl.Tree // string(slug) -\u003e *dataSection\n\t\tordered []*dataSection\n\t}\n)\n\nfunc (x dataSectionsIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *dataSectionsIndex) Index(s *dataSection) {\n\t// Index by slug\n\tx.index.Set(s.Slug, s)\n\n\t// Index by order\n\tx.ordered = append(x.ordered, s)\n}\n\nfunc (x dataSectionsIndex) GetBySlug(slug string) (*dataSection, bool) {\n\tif v, ok := x.index.Get(slug); ok {\n\t\treturn v.(*dataSection), true\n\t}\n\treturn nil, false\n}\n\nfunc (x *dataSectionsIndex) Remove(slug string) bool {\n\t_, removed := x.index.Remove(slug)\n\tif !removed {\n\t\treturn false\n\t}\n\n\tfor i, s := range x.ordered {\n\t\tif s.Slug == slug {\n\t\t\tx.ordered = append(x.ordered[:i], x.ordered[i+1:]...)\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (x *dataSectionsIndex) Reorder(currentOrder, newOrder int) bool {\n\tc := len(x.ordered)\n\tif currentOrder \u003e= c || newOrder \u003e= c {\n\t\treturn false\n\t}\n\n\ts := x.ordered[currentOrder]\n\tx.ordered = append(x.ordered[:currentOrder], x.ordered[currentOrder+1:]...)\n\tx.ordered = append(x.ordered[:newOrder], append([]*dataSection{s}, x.ordered[newOrder:]...)...)\n\treturn true\n}\n\n// Iterate iterates data sections.\nfunc (x dataSectionsIndex) Iterate(fn func(*dataSection) bool) bool {\n\tfor _, s := range x.ordered {\n\t\tif fn(s) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"},{"name":"invar.gno","body":"package space\n\n// TODO: Remove this file if Gno implements invar (inmutable) references\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/jeronimoalbi/datasource\"\n)\n\nfunc newInvarTool(t *Tool) InvarTool {\n\treturn InvarTool{t}\n}\n\ntype InvarTool struct {\n\tref *Tool\n}\n\nfunc (t InvarTool) Name() string {\n\treturn t.ref.Name\n}\n\nfunc (t InvarTool) Description() string {\n\treturn t.ref.Description\n}\n\nfunc (t InvarTool) URL() string {\n\treturn t.ref.URL\n}\n\nfunc (t InvarTool) Icon() string {\n\treturn t.ref.Icon\n}\n\nfunc newInvarLink(l *Link) InvarLink {\n\treturn InvarLink{l}\n}\n\ntype InvarLink struct {\n\tref *Link\n}\n\nfunc (l InvarLink) URL() string {\n\treturn l.ref.URL\n}\n\nfunc (l InvarLink) Title() string {\n\treturn l.ref.Title\n}\n\nfunc newInvarNews(n *News) InvarNews {\n\treturn InvarNews{n}\n}\n\ntype InvarNews struct {\n\tref *News\n}\n\nfunc (n InvarNews) ID() ID {\n\treturn n.ref.ID\n}\n\nfunc (n InvarNews) Title() string {\n\treturn n.ref.Title\n}\n\nfunc (n InvarNews) URL() string {\n\treturn n.ref.URL\n}\n\nfunc (n InvarNews) ImageURL() string {\n\treturn n.ref.ImageURL\n}\n\nfunc (n InvarNews) Tags() []string {\n\treturn append([]string(nil), n.ref.Tags...)\n}\n\nfunc (n InvarNews) CreatedAt() time.Time {\n\treturn n.ref.CreatedAt\n}\n\nfunc newInvarDataSection(s *dataSection) InvarDataSection {\n\treturn InvarDataSection{s}\n}\n\ntype InvarDataSection struct {\n\tref *dataSection\n}\n\nfunc (l InvarDataSection) Slug() string {\n\treturn l.ref.Slug\n}\n\nfunc (l InvarDataSection) Title() string {\n\treturn l.ref.Title\n}\n\nfunc (l InvarDataSection) Realm() string {\n\treturn l.ref.Realm\n}\n\nfunc (l InvarDataSection) Datasource() datasource.Datasource {\n\treturn l.ref.Datasource\n}\n\nfunc (l InvarDataSection) Disabled() bool {\n\treturn l.ref.Disabled\n}\n"},{"name":"params.gno","body":"package space\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameDataSection = \"space-data-section\"\n\tStrategyNameEditorsModification = \"space-editors-modification\"\n\tStrategyNameLocking = \"space-realm-locking\"\n\tStrategyNameParamsUpdate = \"space-params-update\"\n)\n\nvar parameters struct {\n\tVotingPeriods gnome.DurationParams\n\tSpaceDAO string\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameDataSection, Day*5)\n\tparameters.VotingPeriods.Set(StrategyNameEditorsModification, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n\n\t// Path to the Gnome space DAO\n\tparameters.SpaceDAO = \"council/ecosystem/space\"\n}\n"},{"name":"public.gno","body":"package space\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n)\n\nconst minTitleLen = 6\n\n// IterateEditors iterates editor accounts.\nfunc IterateEditors(fn func(std.Address) bool) {\n\tfor _, e := range editors {\n\t\tif fn(e) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// IterateTools iterates invariant references of Gnome space tools.\nfunc IterateTools(fn func(InvarTool) bool) {\n\tfor _, t := range tools {\n\t\tif fn(newInvarTool(t)) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// IterateLinks iterates invariant references of Gnome space links.\nfunc IterateLinks(fn func(section string, _ InvarLink) bool) {\n\tindexes.Link.Iterate(func(s Section, l *Link) bool {\n\t\treturn fn(string(s), newInvarLink(l))\n\t})\n}\n\n// IterateNews iterates invariant references of Gnome space news.\nfunc IterateNews(fn func(InvarNews) bool) {\n\tindexes.News.Iterate(func(n *News) bool {\n\t\treturn fn(newInvarNews(n))\n\t})\n}\n\n// IterateDataSections iterates invariant references of Gnome space data sections.\nfunc IterateDataSections(fn func(InvarDataSection) bool) {\n\tindexes.DataSection.Iterate(func(s *dataSection) bool {\n\t\treturn fn(newInvarDataSection(s))\n\t})\n}\n\n// CreateNews creates a news entry.\n//\n// Only editors are allowed to create news.\n//\n// Parameters:\n// - title: A title for the news entry (required)\n// - url: URL with the link to the news content (required)\n// - tags: Comma separated list of tags for the news entry (required)\nfunc CreateNews(title, url, tags string) uint64 {\n\tassertRealmIsNotLocked()\n\tassertOrigCallerIsEditor()\n\n\ttitle = strings.TrimSpace(title)\n\tassertNewsTitleLength(title)\n\tassertValidURL(url)\n\n\tid := genNewsID()\n\tindexes.News.Index(\u0026News{\n\t\tID: id,\n\t\tTitle: title,\n\t\tURL: url,\n\t\tTags: mustParseStringToTags(tags),\n\t\tCreatedAt: time.Now(),\n\t})\n\treturn uint64(id)\n}\n\n// UpdateNews updates a news entry.\n//\n// Only editors are allowed to update news.\n//\n// Parameters:\n// - newsID: ID of the news entry to update (required)\n// - title: A title for the news entry\n// - url: URL with the link to the news content\n// - tags: Comma separated list of tags for the news entry\nfunc UpdateNews(newsID uint64, title, url, tags string) {\n\tassertRealmIsNotLocked()\n\tassertOrigCallerIsEditor()\n\n\tn, found := indexes.News.GetByID(ID(newsID))\n\tif !found {\n\t\tpanic(\"news not found\")\n\t}\n\n\ttitle = strings.TrimSpace(title)\n\tif title != \"\" {\n\t\tassertNewsTitleLength(title)\n\t\tn.Title = title\n\t}\n\n\turl = strings.TrimSpace(url)\n\tif url != \"\" {\n\t\tassertValidURL(url)\n\t\tn.URL = url\n\t}\n\n\ttags = strings.TrimSpace(tags)\n\tif tags != \"\" {\n\t\tn.Tags = mustParseStringToTags(tags)\n\t}\n}\n\n// DeleteNews deletes a news entry.\n//\n// Only editors are allowed to delete news.\n//\n// Parameters:\n// - newsID: ID of the news entry to delete (required)\nfunc DeleteNews(newsID uint64) {\n\tassertRealmIsNotLocked()\n\tassertOrigCallerIsEditor()\n\n\tif !indexes.News.Remove(ID(newsID)) {\n\t\tpanic(\"news not found\")\n\t}\n}\n\n// DisableDataSection disabled or enables a data section.\n// Data sections are sections where the data displayed in that section comes from another realm.\n//\n// Only editors are allowed to disable or enable data sections.\n//\n// Parameters:\n// - sectionSlug: Slug of the section.\n// - disable: Toggle disabled or enabled data sections.\nfunc DisableDataSection(sectionSlug string, disable bool) {\n\tassertRealmIsNotLocked()\n\tassertOrigCallerIsEditor()\n\n\tsection, found := indexes.DataSection.GetBySlug(sectionSlug)\n\tif !found {\n\t\tpanic(\"data section not found\")\n\t}\n\n\tsection.Disabled = disable\n}\n\nfunc mustParseStringToTags(s string) (tags []string) {\n\tfor _, v := range strings.Split(s, \",\") {\n\t\ttag := strings.TrimSpace(v)\n\t\tassertIsTag(tag)\n\t\ttags = append(tags, tag)\n\t}\n\treturn\n}\n\nfunc assertOrigCallerIsEditor() {\n\tcaller := std.GetOrigCaller()\n\tassertIsEditor(caller)\n}\n\nfunc assertIsTag(tag string) {\n\tif !blog.IsSlug(tag) {\n\t\tpanic(\"invalid tag: \" + tag)\n\t}\n}\n\nfunc assertValidURL(url string) {\n\tif !blog.IsURL(url, false) {\n\t\tpanic(\"URL is not valid\")\n\t}\n}\n\nfunc assertNewsTitleLength(title string) {\n\tif len(title) \u003c minTitleLen {\n\t\tpanic(\"title is too short\")\n\t}\n}\n"},{"name":"public_proposals.gno","body":"package space\n\nimport (\n\t\"regexp\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/jeronimoalbi/datasource\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n\tgnomeDAO \"gno.land/r/gnome/dao/v1rc1\"\n)\n\nconst maxSectionTitleLen = 60 // TODO: Should it be a parameter?\n\nvar realmPathRe = regexp.MustCompile(`^gno\\.land\\/r(?:\\/_?[a-z]+[a-z0-9_]*)+$`)\n\n// SubmitEditorsModificationProposal submits a new proposal to modify Gnome space editors.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - newEditors: List of editor addresses\n// - removeEditors: List of editor addresses\n//\n// At least one editor to add or remove is required for the proposal to be valid.\n// The list of editors must be a newline separated list of addresses.\nfunc SubmitEditorsModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tnewEditors,\n\tremoveEditors string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\n\tstrategy := editorsModificationStrategy{\n\t\tnewEditors: blog.MustParseStringToAddresses(newEditors),\n\t\tremoveEditors: blog.MustParseStringToAddresses(removeEditors),\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.SpaceDAO)\n\treturn uint64(id)\n}\n\n// SubmitDataSectionProposal submits a new proposal to add a datasource based Gnome space section.\n//\n// IMPORTANT, this function must be called using a MsgRun message, for example with `gnokey maketx run` command.\n// The code uploaded within this message must be verified to be sure realm path matches the datasource's one.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - realm: The realm path of the datasource (required)\n// - slug: Slug of the section (required)\n// - sectionTitle: A title for the section (required)\n// - sectionDS: A datasource to retrieve section's data (required)\nfunc SubmitDataSectionProposal(\n\tproposalTitle,\n\tproposalDescription,\n\trealm,\n\tslug,\n\tsectionTitle string,\n\tsectionDS datasource.Datasource,\n) uint64 {\n\tassertRealmIsNotLocked()\n\n\tif sectionDS == nil {\n\t\tpanic(\"section datasource is required\")\n\t}\n\n\tif !std.PrevRealm().IsUser() {\n\t\t// TODO: Support realm calls when datasource package can be inferred\n\t\tpanic(\"realm calls are not allowed\")\n\t}\n\n\tsectionTitle = strings.TrimSpace(sectionTitle)\n\tassertValidSectionTitle(sectionTitle)\n\tassertIsSlug(slug)\n\tassertIsRealmPath(realm)\n\n\tstrategy := dataSectionStrategy{\n\t\tslug: slug,\n\t\ttitle: sectionTitle,\n\t\trealm: realm,\n\t\tdatasource: sectionDS,\n\t\tblockHeight: std.GetHeight(),\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.SpaceDAO)\n\treturn uint64(id)\n}\n\n// SubmitLockingProposal submits a new proposal to lock the realm.\n//\n// Locking the realm \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 34% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by members with `admin` role.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - realmPath: Path of the realm that should be allowed to import state data\n//\n// The optional realm path authorizes a realm to import the state data once the realm is locked.\nfunc SubmitLockingProposal(proposalTitle, proposalDescription, realmPath string) uint64 {\n\tassertHasAdminRole(std.GetOrigCaller())\n\n\tif realmPath != \"\" \u0026\u0026 !strings.HasPrefix(realmPath, \"gno.land/r/\") {\n\t\tpanic(`realm path must start with \"gno.land/r/\"`)\n\t}\n\n\tstrategy := lockingStrategy{realmPath}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.SpaceDAO)\n\treturn uint64(id)\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - spaceDAO: Path to the space SubDAO\n// - votingPeriodDataSection: Voting period for adding datasource based sections\n// - votingPeriodEditorsModification: Voting period for editors modification proposals\n// - votingPeriodLocking: Voting period for realm locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tspaceDAO string,\n\tvotingPeriodDataSection,\n\tvotingPeriodEditorsModification,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tstrategy := paramsUpdateStrategy{}\n\tspaceDAO = strings.TrimSpace(spaceDAO)\n\tif spaceDAO != \"\" {\n\t\tif _, found := gnomeDAO.GetDAO(spaceDAO); !found {\n\t\t\tpanic(\"space DAO path doesn't exist: \" + spaceDAO)\n\t\t}\n\n\t\tstrategy.spaceDAO = spaceDAO\n\t}\n\n\tif votingPeriodDataSection \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDataSection) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameDataSection, period)\n\t}\n\n\tif votingPeriodEditorsModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodEditorsModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameEditorsModification, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.SpaceDAO)\n\treturn uint64(id)\n}\n\nfunc assertHasAdminRole(addr std.Address) {\n\terr := gnomeDAO.CheckMemberHasRole(parameters.SpaceDAO, addr, gnomeDAO.RoleAdmin)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc assertIsRealmPath(path string) {\n\tif !realmPathRe.MatchString(path) {\n\t\tpanic(\"invalid realm path\")\n\t}\n}\n\nfunc assertIsSlug(slug string) {\n\tif !blog.IsSlug(slug) {\n\t\tpanic(\"invalid slug: \" + slug)\n\t}\n}\n\nfunc assertValidSectionTitle(title string) {\n\tif title == \"\" {\n\t\tpanic(\"section title is required\")\n\t}\n\n\tif len(title) \u003e maxSectionTitleLen {\n\t\tpanic(\"maximum section title length is \" + strconv.Itoa(maxSectionTitleLen) + \" chars\")\n\t}\n}\n"},{"name":"render.gno","body":"package space\n\nimport (\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/jeronimoalbi/datasource\"\n\n\talerts \"gno.land/p/gnome/alerts/v2\"\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\t\"gno.land/p/gnome/paginator\"\n\tproxy \"gno.land/r/gnome/space\"\n)\n\n// TODO: Should it be a parameter?\nconst homeDescription = `Welcome to Gno.me,\nan educational and community platform for gnomes and newcomers to learn,\nshare and build together. Gno.me exists to encourage, challenge, and develop\nthe skills and standards of people interested in building a smart contract\necosystem of innovative, responsible and curious gnomes.\n`\n\nconst (\n\tdefaultPageSize = 50\n\tmaxDataSectionItems = 4\n\tmaxRecordTextLength = 100\n\tmaxTagLength = 20\n\tmaxRecordIDLength = 70\n)\n\nvar slugRe = regexp.MustCompile(`^[a-z0-9]+(?:-[a-z0-9]+)*$`)\n\nfunc init() {\n\tproxy.ProxyRender(render)\n}\n\nfunc render(path string) string {\n\tr := mux.NewRouter()\n\tr.NotFoundHandler = func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(\"Path not found\")\n\t}\n\n\tr.HandleFunc(\"\", renderHome)\n\tr.HandleFunc(\"news\", renderNews)\n\tr.HandleFunc(\"news/{tag}\", renderNewsByTag)\n\tr.HandleFunc(\"section/{slug}\", renderDataSection)\n\tr.HandleFunc(\"section/{slug}/{tag}\", renderDataSectionByTag)\n\tr.HandleFunc(\"content/{sectionSlug}/{contentSlug}\", renderContent)\n\tr.HandleFunc(\"datasources\", renderDatasources)\n\tr.HandleFunc(\"params\", renderParams)\n\n\tr.HandleFunc(\"terms-and-conditions\", func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(termsAndConditions)\n\t})\n\tr.HandleFunc(\"privacy-policy\", func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(privacyPolicy)\n\t})\n\n\treturn renderAlerts() + r.Render(path)\n}\n\nfunc renderHome(res *mux.ResponseWriter, _ *mux.Request) {\n\trenderHeader(res)\n\tres.Write(\"\\n\" + homeDescription + \"\\n\")\n\trenderHomeDataSections(res)\n\trenderHomeNews(res)\n\trenderHomeTools(res)\n\trenderHomeFooter(res)\n}\n\nfunc renderNews(res *mux.ResponseWriter, req *mux.Request) {\n\tpager := paginator.MustNew(req.RawPath, indexes.News.Size(), paginator.WithPageSize(defaultPageSize))\n\n\trenderHomeMenu(res)\n\n\tres.Write(\"## News\\n\")\n\tstart := (pager.Page() - 1) * pager.PageSize()\n\tindexes.News.IterateByOffset(start, pager.PageSize(), func(n *News) bool {\n\t\tres.Write(n.String() + \"\\n\")\n\t\treturn false\n\t})\n\n\tif pager.HasPages() {\n\t\tres.Write(\"\\n\" + pager.String())\n\t}\n}\n\nfunc renderNewsByTag(res *mux.ResponseWriter, req *mux.Request) {\n\tpager := paginator.MustNew(req.RawPath, indexes.News.Size(), paginator.WithPageSize(defaultPageSize))\n\n\trenderHomeMenu(res)\n\n\ttag := req.GetVar(\"tag\")\n\tnews := indexes.News.GetByTag(tag)\n\tres.Write(\"## News: \" + tag + \"\\n\")\n\tpager.Iterate(func(i int) bool {\n\t\tif i \u003e= len(news) {\n\t\t\treturn true\n\t\t}\n\n\t\tres.Write(news[i].String() + \"\\n\")\n\t\treturn false\n\t})\n\n\tif pager.HasPages() {\n\t\tres.Write(\"\\n\" + pager.String())\n\t}\n}\n\nfunc renderDataSection(res *mux.ResponseWriter, req *mux.Request) {\n\tsection, found := indexes.DataSection.GetBySlug(req.GetVar(\"slug\"))\n\tif !found || section.Disabled {\n\t\tres.Write(\"section not found\")\n\t\treturn\n\t}\n\n\t// Get the total number of datasource records and\n\t// when size is not supported only list one page.\n\ttotalRecords := section.Datasource.Size()\n\tif totalRecords == -1 {\n\t\ttotalRecords = defaultPageSize\n\t}\n\n\tpager := paginator.MustNew(req.RawPath, totalRecords, paginator.WithPageSize(defaultPageSize))\n\n\trenderHomeMenu(res)\n\n\trecords, err := datasource.QueryRecords(\n\t\tsection.Datasource,\n\t\tdatasource.WithOffset(pager.Offset()),\n\t\tdatasource.WithCount(pager.PageSize()),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres.Write(\"## Gno.me: \" + section.Title + \"\\n\")\n\tfor _, r := range records {\n\t\trenderDatasourceRecord(res, section, r)\n\t}\n\n\tif pager.HasPages() {\n\t\tres.Write(\"\\n\" + pager.String())\n\t}\n}\n\nfunc renderDataSectionByTag(res *mux.ResponseWriter, req *mux.Request) {\n\tsection, found := indexes.DataSection.GetBySlug(req.GetVar(\"slug\"))\n\tif !found || section.Disabled {\n\t\tres.Write(\"section not found\")\n\t\treturn\n\t}\n\n\t// Get the total number of datasource records and\n\t// when size is not supported only list one page.\n\ttotalRecords := section.Datasource.Size()\n\tif totalRecords == -1 {\n\t\ttotalRecords = defaultPageSize\n\t}\n\n\tpager := paginator.MustNew(req.RawPath, totalRecords, paginator.WithPageSize(defaultPageSize))\n\n\trenderHomeMenu(res)\n\n\ttag := req.GetVar(\"tag\")\n\trecords, err := datasource.QueryRecords(\n\t\tsection.Datasource,\n\t\tdatasource.WithOffset(pager.Offset()),\n\t\tdatasource.WithCount(pager.PageSize()),\n\t\tdatasource.ByTag(tag),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres.Write(ufmt.Sprintf(\"## Gno.me: %s (%s)\\n\", section.Title, tag))\n\tfor _, r := range records {\n\t\trenderDatasourceRecord(res, section, r)\n\t}\n\n\tif pager.HasPages() {\n\t\tres.Write(\"\\n\" + pager.String())\n\t}\n}\n\nfunc renderContent(res *mux.ResponseWriter, req *mux.Request) {\n\tsection, found := indexes.DataSection.GetBySlug(req.GetVar(\"sectionSlug\"))\n\tif !found || section.Disabled {\n\t\tres.Write(\"section not found\")\n\t\treturn\n\t}\n\n\tr, err := section.Datasource.Record(req.GetVar(\"contentSlug\"))\n\tif err != nil {\n\t\tres.Write(err.Error())\n\t\treturn\n\t}\n\n\tcr, ok := r.(datasource.ContentRecord)\n\tif !ok {\n\t\tpanic(\"datasource record doesn't support content rendering\")\n\t}\n\n\toutput, err := cr.Content()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\theader := ufmt.Sprintf(\"\u003e ░ Content Origin: [%s](https://%s)\\n\\n\", section.Realm, section.Realm)\n\n\trenderHomeMenu(res)\n\tres.Write(header + output)\n}\n\nfunc renderDatasources(res *mux.ResponseWriter, _ *mux.Request) {\n\trenderHomeMenu(res)\n\n\tres.Write(\"# Data Sections\\n\")\n\tindexes.DataSection.Iterate(func(s *dataSection) bool {\n\t\theight := strconv.FormatInt(s.BlockHeight, 10)\n\n\t\tres.Write(\"## \" + s.Title + \"\\n\")\n\t\tres.Write(\"- Slug: [\" + s.Slug + \"](https://gno.land\" + newSectionPath(s.Slug) + \")\\n\")\n\t\tres.Write(\"- Realm: [\" + s.Realm + \"](https://\" + s.Realm + \")\\n\")\n\t\tres.Write(\"- Block Height: [\" + height + \"](\" + newBlockURL(s.BlockHeight) + \")\\n\")\n\n\t\tif s.Disabled {\n\t\t\tres.Write(\"- Disabled: Yes\\n\\n\")\n\t\t} else {\n\t\t\tres.Write(\"- Disabled: No\\n\\n\")\n\t\t}\n\n\t\treturn false\n\t})\n}\n\nfunc renderParams(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# Gnome Space: Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**General**\\n\")\n\tres.Write(\"- Space DAO Path: \" + parameters.SpaceDAO + \"\\n\")\n\tres.Write(\"\\n**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderHeader(res *mux.ResponseWriter) {\n\tres.Write(\"# Gno.me\\n\")\n\trenderHomeMenu(res)\n}\n\nfunc renderHomeMenu(res *mux.ResponseWriter) {\n\titems, found := indexes.Link.Get(SectionPlatform)\n\tif !found {\n\t\treturn\n\t}\n\n\tvar menu []string\n\tfor _, link := range items {\n\t\tmenu = append(menu, ufmt.Sprintf(\"/[%s](%s)\", strings.ToLower(link.Title), proxy.URL(link.URL)))\n\t}\n\tres.Write(strings.Join(menu, \"\u0026nbsp;\u0026nbsp;\") + \"\\n\\n---\\n\\n\")\n}\n\nfunc renderHomeDataSections(res *mux.ResponseWriter) {\n\tindexes.DataSection.Iterate(func(s *dataSection) bool {\n\t\tif s.Disabled {\n\t\t\treturn false\n\t\t}\n\n\t\tres.Write(\"## \" + gnome.EscapeHTML(s.Title) + \"\\n\")\n\n\t\trecords, err := datasource.QueryRecords(s.Datasource, datasource.WithCount(maxDataSectionItems))\n\t\tif err != nil {\n\t\t\tres.Write(\"\u003e \u0026nbsp;**Error:** \" + err.Error() + \"\\n\\n\")\n\t\t\treturn false\n\t\t}\n\n\t\tres.Write(ufmt.Sprintf(\"_([view all](%s))_\\n\\n\", newSectionPath(s.Slug)))\n\n\t\tfor _, r := range records {\n\t\t\trenderDatasourceRecord(res, s, r)\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc renderHomeNews(res *mux.ResponseWriter) {\n\tif indexes.News.Size() == 0 {\n\t\treturn\n\t}\n\n\tres.Write(\"## News\\n\")\n\tres.Write(ufmt.Sprintf(\"_([view all](%s))_\\n\\n\", proxy.URL(\"news\")))\n\n\tindexes.News.ReverseIterate(func(n *News) bool {\n\t\tres.Write(n.String() + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderHomeTools(res *mux.ResponseWriter) {\n\tif len(tools) == 0 {\n\t\treturn\n\t}\n\n\tres.Write(\"## Tools\\n\")\n\tres.Write(\"These resources are designed to enhance your Gno experience and streamline your workflow.\\n\\n\")\n\n\tfor _, tool := range tools {\n\t\tres.Write(tool.String() + \"\\n\")\n\t}\n}\n\nfunc renderHomeFooter(res *mux.ResponseWriter) {\n\tres.Write(\"---\\n\")\n\trenderHomeFooterLinks(res)\n\n\tfooter := []string{\n\t\t\"©2024 Gno.me\",\n\t\tufmt.Sprintf(\"[Terms and Conditions](%s)\", proxy.URL(\"terms-and-conditions\")),\n\t\tufmt.Sprintf(\"[Privacy Policy](%s)\", proxy.URL(\"privacy-policy\")),\n\t}\n\tres.Write(\"---\\n\" + strings.Join(footer, strings.Repeat(\"\u0026nbsp;\", 4)))\n}\n\nfunc renderHomeFooterLinks(res *mux.ResponseWriter) {\n\tsections := []Section{SectionPlatform, SectionResources, SectionSocials}\n\tfor _, s := range sections {\n\t\titems, found := indexes.Link.Get(s)\n\t\tif !found {\n\t\t\tcontinue\n\t\t}\n\n\t\tres.Write(\"**\" + strings.Title(string(s)) + \"**\\n\")\n\t\tfor _, link := range items {\n\t\t\tres.Write(ufmt.Sprintf(\"- %s\\n\", link))\n\t\t}\n\t\tres.Write(\"\\n\")\n\t}\n}\n\nfunc renderAlerts() string {\n\tif locked {\n\t\tmsg := \"\u003e **Realm is locked**\"\n\t\tif nextVersionRealmPath != \"\" {\n\t\t\tlink := alerts.NewLink(\"https://\"+nextVersionRealmPath, nextVersionRealmPath)\n\t\t\tmsg += \" \\n\u003e This realm is deprecated in favor of a new version found at \" + link\n\t\t}\n\t\treturn msg + \"\\n\\n\"\n\t}\n\treturn \"\"\n}\n\nfunc renderDatasourceRecord(res *mux.ResponseWriter, s *dataSection, r datasource.Record) {\n\tid := r.ID()\n\tif !isValidRecordID(id) {\n\t\t// Silently skip records with invalid ID\n\t\treturn\n\t}\n\n\tsectionURL := newSectionPath(s.Slug)\n\tcontentURL := newContentPath(s.Slug, id)\n\n\t// Make sure record title has a single line that is not too long\n\ttitle := truncateText(r.String(), maxRecordTextLength)\n\n\t// Record could be just a link or could optionally have a second line with more details\n\tres.Write(ufmt.Sprintf(\"**[%s](%s)**\", title, contentURL))\n\n\tfields, _ := r.Fields()\n\tif v, ok := fields.Get(\"details\"); ok {\n\t\tif details, ok := v.(string); ok {\n\t\t\tdetails = truncateText(details, maxRecordTextLength)\n\t\t\tres.Write(ufmt.Sprintf(\"\\\\\\n_%s_\", details))\n\t\t}\n\t}\n\n\t// Record can optionally have tags, to be able to filter content\n\tif tr, ok := r.(datasource.TaggableRecord); ok {\n\t\tif tags := tr.Tags(); len(tags) \u003e 0 {\n\t\t\tvar links []string\n\t\t\tfor _, t := range tags {\n\t\t\t\tif !isValidTag(t) {\n\t\t\t\t\t// Silently skip invalid tags\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tlinks = append(links, ufmt.Sprintf(\"[%s](%s)\", t, sectionURL+\"/\"+t))\n\t\t\t}\n\n\t\t\tif len(links) \u003e 0 {\n\t\t\t\tres.Write(\"\\\\\\n\" + strings.Join(links, \", \"))\n\t\t\t}\n\t\t}\n\t}\n\n\tres.Write(\"\\n\\n\")\n}\n\nfunc newSectionPath(slug string) string {\n\treturn proxy.URL(\"section/\" + slug)\n}\n\nfunc newContentPath(sectionSlug, contentSlug string) string {\n\treturn proxy.URL(\"content/\" + sectionSlug + \"/\" + contentSlug)\n}\n\nfunc newBlockURL(height int64) string {\n\treturn \"https://gnoscan.io/blocks/\" + strconv.FormatInt(height, 10)\n}\n\nfunc isValidTag(t string) bool {\n\treturn len(t) \u003c= maxTagLength \u0026\u0026 slugRe.MatchString(t)\n}\n\nfunc isValidRecordID(id string) bool {\n\treturn len(id) \u003c= maxRecordIDLength \u0026\u0026 slugRe.MatchString(id)\n}\n\nfunc truncateText(s string, maxLength int) string {\n\tif s == \"\" {\n\t\treturn \"\"\n\t}\n\n\ts, _, _ = strings.Cut(s, \"\\n\")\n\tif len(s) \u003e maxLength {\n\t\ts = s[:maxLength] + \"…\"\n\t}\n\treturn s\n}\n"},{"name":"render_static.gno","body":"package space\n\nconst termsAndConditions = `\n# Terms and Conditions\n\n## 1. Introduction\n\nWelcome to Gno.me. By accessing or using our platform, you agree to be bound by these Terms and Conditions. If you do not agree with any part of these terms, please do not use our platform.\n\n## 2. Eligibility\n\nTo use Gno.me, you must meet the minimum age required by local laws in your jurisdiction, typically at least 13 years old. By creating an account, you represent that you meet this age requirement. In some regions, this age may be higher; please refer to local regulations.\n\n## 3. User Accounts\n\nYou are responsible for maintaining the confidentiality of your account information and for all activities that occur under your account. Notify us immediately of any unauthorized use of your account. You agree to provide accurate and complete information when creating your account and to update your information as necessary.\n\n## 4. Content and Contributions\n\n- User-Generated Content: You retain ownership of any content you post. By posting content, you grant Gno.me a non-exclusive, royalty-free, worldwide license to use, display, and distribute your content. You warrant that you have the right to grant this license and that your content does not infringe on any third-party rights.\n- Content Guidelines: All content must comply with our community guidelines. We reserve the right to remove any content that violates these guidelines or is otherwise inappropriate.\n\n## 5. Community Guidelines\n\nUsers are expected to behave respectfully and not engage in harassment, discrimination, or any form of abusive behavior. Violations can result in suspension or termination of your account. Specific prohibited activities include, but are not limited to:\n\n- Posting offensive or harmful content.\n- Spamming or distributing unsolicited messages.\n- Impersonating another person or entity.\n- Engaging in illegal activities, such as distributing malware or conducting phishing attacks.\n\n## 6. Platform Usage\n\nYou agree not to use Gno.me for any illegal or unauthorized purpose. You must not, in the use of the platform, violate any laws in your jurisdiction. This includes, but is not limited to, intellectual property laws, privacy laws, and financial regulations.\n\n## 7. Privacy and Data Protection\n\nOur use of your personal information is governed by our Privacy Policy, which is incorporated into these terms by reference. By using Gno.me, you consent to the collection and use of your data as outlined in our Privacy Policy.\n\n## 8. Payments and Transactions\n\nIf you purchase any services or products from Gno.me, you agree to pay all applicable fees and charges. All payments are non-refundable unless otherwise specified. We use third-party payment processors and you must comply with their terms and conditions.\n\n## 9. Intellectual Property and Trademarks\n\nThis platform contains copyrighted material, trademarks, and other proprietary material belonging to Gno.me, its licensors, and others. You shall not use, copy, reproduce, distribute, modify, adapt, create derivative works of, display, publicly perform, transmit, broadcast, sell, license, or in any way exploit the Proprietary Material without advance written consent. This restriction does not apply to open-source content contributed by Gno.me under an open-source license.\n\nAll trademarks, service marks, trade names, and trade dress, whether registered or unregistered, used by Gno.me are proprietary to Gno.me or their respective owners. You shall not use, display, or reproduce the Marks without prior written consent.\n\n## 10. Restrictions on Use\n\nAny commercial or promotional distribution, publishing, or exploitation of the platform, or any content, code, data, or materials on the platform, is strictly prohibited unless you have received express prior written permission from authorized personnel. You may not alter, edit, delete, remove, or otherwise change the meaning or appearance of any content, including the alteration or removal of any trademarks, trade names, logos, or proprietary rights notices.\n\n## 11. Disclaimer of Warranties\n\nGno.me is provided \"as is\" with no warranty of any kind. To the maximum extent permitted by law, Gno.me disclaims all representations and warranties, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, title, non-infringement, uninterrupted access, and freedom from errors or omissions.\n\n## 12. Limitation of Liability\n\nNeither Gno.me nor its officers, directors, employees, agents, suppliers, licensors, or representatives will be liable for any direct, indirect, special, punitive, incidental, exemplary, or consequential damages arising out of or in connection with the use or inability to use Gno.me, even if advised of the possibility of such damages.\n\n## 13. Indemnification\n\nYou agree to indemnify, defend, and hold harmless Gno.me and its officers, directors, employees, agents, suppliers, licensors, and representatives from and against all claims, losses, expenses, damages, and costs, including reasonable attorneys' fees, arising out of your use of the platform or your breach of these Terms and Conditions.\n\n## 14. Governing Law\n\nThese terms are governed by the laws of Delaware, without regard to its conflict of law principles. Any disputes arising out of or in connection with these terms will be resolved in the courts of Delaware.\n\n## 15. Changes to Terms\n\nWe may revise these terms at any time without notice. By using Gno.me, you agree to be bound by the current version of these Terms and Conditions. We will notify users of any significant changes through our platform or via email.\n\n## 16. Third-Party Links\n\nOur platform may contain links to third-party websites or services that are not owned or controlled by Gno.me. We are not responsible for the content, privacy policies, or practices of any third-party websites or services. You acknowledge and agree that Gno.me shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods, or services available on or through any such websites or services.\n\n## 17. Other Agreements\n\nCertain software, other content, and services offered by Gno.me may be governed by separate written agreements with individuals or entities. Such agreements shall govern in all cases with respect to the subject matter of those agreements. Your license to use open-source software contributed by Gno.me will also be governed by the terms of the applicable open-source license.\n\n## 18. Severability\n\nIf any provision of these Terms and Conditions is found to be invalid or unenforceable by a court of competent jurisdiction, the remaining provisions shall continue in full force and effect. The invalid or unenforceable provision will be deemed modified so that it is valid and enforceable to the maximum extent permitted by law.\n\n## 19. Waiver\n\nNo waiver of any term or condition of these Terms and Conditions shall be deemed a further or continuing waiver of such term or condition or any other term or condition, and any failure to assert a right or provision under these Terms and Conditions shall not constitute a waiver of such right or provision.\n\n## 20. Termination\n\nEither you or Gno.me may terminate this agreement at any time. Upon termination, your right to use the platform will immediately cease. If you violate any provision of this agreement, it will automatically terminate, and you must cease further use of the platform.\n\n## 21. Entire Agreement\n\nThese Terms and Conditions, together with our Privacy Policy, constitute the entire agreement between you and Gno.me regarding the use of the platform and supersede any prior agreements between you and Gno.me relating to your use of the platform.\n\n## 22. Contact Information\n\nFor any questions about these Terms and Conditions, please contact us at support@gno.me.\n`\n\nconst privacyPolicy = `\n# Privacy Policy\n\n## 1. Introduction\n\nWe are committed to protecting the privacy of our users. This Privacy Policy explains how we collect, use, and share your personal information when you use our website or web applications (altogether the “Site”). By using our platform, you agree to the terms of this policy.\n\n## 2. Scope and Updates to this Privacy Policy\n\nThis Privacy Policy applies to personal information processed by us in connection with Gno.me. By accessing or using Gno.me, you signify that you have read, understood, and agree to the Terms and Conditions and this Privacy Policy. We may revise this Privacy Policy from time to time in our sole discretion. Material changes will be notified as required by applicable law. Continuing to use Gno.me after updates means you accept the new policy.\n\n## 3. Data Collection\n\n- **Personal Information:** Includes identifiers such as your name, email address, username, profile picture, phone number, or address when you register to use Gno.me.\n- **Geolocation:** Information about where you live or use Gno.me.\n- **Communications:** Any personal information you provide in communications with us.\n- **Automatically Collected Information:** Includes your IP address, user settings, cookie identifiers, mobile carrier, browser or device information, Internet service provider, pages visited, links clicked, content interacted with, and usage details.\n\n## 4. Use of Data\n\nWe use your data to:\n\n- Provide and improve our services.\n- Communicate with you about your account and our services.\n- Customize your experience on our platform.\n- Analyze, develop, improve, and optimize the use, function, and performance of our Site and services.\n- Manage the security and operation of our Site, networks, and systems.\n- Administer contests, promotions, surveys, or other site features.\n- Prevent and investigate fraudulent or illegal activities.\n- Comply with applicable laws, regulations, and legal processes.\n\nWe may also use your personal information for direct marketing, research and development, network and information security, fraud prevention, measuring interest and engagement, improving services, developing new products, debugging, enforcing agreements, and any other activities required to comply with legal obligations.\n\n## 5. Data Sharing\n\nWe do not sell your personal information. We may share your data with:\n\n- **Service Providers:** Third-party services that help us operate our platform. These providers are contractually obligated to protect your information and use it only for the purposes we specify.\n- **Business Partners:** Partners with whom we jointly offer products or services.\n- **Affiliates:** Our company affiliates for administrative purposes, IT management, or providing services to you.\n- **Advertising Partners:** Third-party advertising partners for personalized advertisements.\n\nWe may also disclose your personal information to comply with legal requests, protect rights and safety, enforce our policies, collect amounts owed, or assist with investigations.\n\nIn the event of a business transfer such as a merger, acquisition, or sale of assets, your information may be transferred as part of the transaction.\n\n## 6. Data Retention\n\nWe retain your personal data as long as necessary to provide services, fulfill the purpose for which it was collected, resolve disputes, establish legal defenses, conduct audits, pursue legitimate business purposes, enforce agreements, and comply with applicable laws.\n\n## 7. Data Security\n\nWe implement appropriate technical and organizational measures to protect your data against unauthorized access, alteration, disclosure, or destruction. These measures include encryption, secure servers, and access controls. However, no system is completely secure, and we cannot guarantee absolute security. We may communicate with you electronically regarding security, privacy, and administrative issues relating to your use of Gno.me.\n\n## 8. User Rights\n\nYou have the right to:\n\n- Access your data.\n- Correct any inaccuracies.\n- Request deletion of your data.\n- Object to or restrict our use of your data.\n- Withdraw consent where our processing is based on your consent.\n- Data portability.\n\nTo exercise these rights, contact us at privacy@gno.me.\n\n## 9. Cookies and Tracking\n\nWe use cookies and similar technologies to track your activity on our platform and hold certain information. Cookies help us provide a better user experience by remembering your preferences and visit history. You can control the use of cookies through your browser settings, but disabling cookies may affect the functionality of certain features on our platform.\n\n## 10. International Data Transfers\n\nYour information may be transferred to, and maintained on, computers located outside of your state, province, country, or other governmental jurisdiction where data protection laws may differ from those of your jurisdiction. We ensure that your data is protected through contractual obligations and other safeguards in accordance with applicable law.\n\n## 11. Children’s Privacy\n\nOur service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13. If we become aware that we have collected personal information from a child under 13 without verification of parental consent, we will take steps to remove that information from our servers.\n\n## 12. Third-Party Links\n\nOur platform may contain links to other websites. We are not responsible for the privacy practices or the content of those sites. We encourage you to review the privacy policies of any third-party sites you visit.\n\n## 13. Transparency and Control\n\nWe strive to provide transparency and control over your personal information. You can manage your privacy settings and communication preferences in your account settings. You can also contact us to review, update, or delete your personal information.\n\n## 14. Data Anonymization and Aggregation\n\nWe may anonymize and aggregate your personal information to generate statistical and analytical data. This data will not identify you personally and may be used for research, analysis, and improving our services.\n\n## 15. Third-Party Service Providers\n\nWe may work with third-party service providers to provide and improve our services. These providers may have access to your personal information only to perform specific tasks on our behalf and are obligated to protect your information.\n\n## 16. International Data Privacy Standards\n\nWe comply with international data privacy standards and frameworks, including the EU-U.S. Privacy Shield and the Swiss-U.S. Privacy Shield, to ensure adequate protection of your personal information when transferred internationally.\n\n## 17. California Residents\n\nCalifornia residents may request information concerning the categories of personal information we share with third parties or affiliates for their direct marketing purposes. Our websites do not respond to “Do Not Track” signals.\n\n## 18. EU Residents\n\nConsumers in the EU have specific rights under data protection laws, including access, correction, deletion, restriction, objection, and portability of personal information. If you believe our processing of your personal information violates applicable law, you have the right to lodge a complaint with the competent supervisory authority.\n\n## 19. Accountability\n\nWe are committed to accountability and transparency in our data protection practices. We conduct regular audits and assessments to ensure compliance with our privacy policy and applicable data protection laws.\n\n## 20. Changes to Privacy Policy\n\nWe may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the effective date. You are advised to review this Privacy Policy periodically for any changes.\n\n## 21. Contact Information\n\nFor any questions about this Privacy Policy, please contact us at privacy@gno.me.\n`\n"},{"name":"space.gno","body":"package space\n\nimport (\n\t\"encoding/binary\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\tproxy \"gno.land/r/gnome/space\"\n)\n\nconst (\n\tSectionPlatform Section = \"platform\"\n\tSectionResources Section = \"resources\"\n\tSectionSocials Section = \"socials\"\n)\n\ntype (\n\t// Section defines a type for a Gnome space section.\n\t// Sections can be used for grouping, for example external links.\n\tSection string\n\n\t// ID defines a type for `uint64` IDs.\n\tID uint64\n\n\t// Link is a reference to an external link.\n\tLink struct {\n\t\tURL string\n\t\tTitle string\n\t}\n\n\t// News is a reference to an external news publication.\n\tNews struct {\n\t\tID ID\n\t\tTitle string\n\t\tURL string\n\t\tImageURL string\n\t\tTags []string\n\t\tCreatedAt time.Time\n\t}\n\n\t// Tool defines a Gno ecosystem tool.\n\tTool struct {\n\t\tName string\n\t\tDescription string\n\t\tURL string\n\t\tIcon string\n\t}\n)\n\nvar (\n\tlocked bool\n\tnextVersionRealmPath string\n\tlastNewsID ID\n\n\t// Editor accounts.\n\t// These accounts are allowed to add and remove news, tools and links.\n\teditors []std.Address\n\n\t// Ecosystem tools.\n\ttools []*Tool\n)\n\n// String returns the value of the ID as a string.\nfunc (id ID) String() string {\n\treturn strconv.FormatUint(uint64(id), 10)\n}\n\n// Key returns the binary representation of the ID to be used as key for AVL trees.\nfunc (id ID) Key() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(id))\n\treturn string(buf)\n}\n\n// String returns a Markdown link.\nfunc (l Link) String() string {\n\turl := l.URL\n\tif !strings.HasPrefix(url, \"https://\") {\n\t\turl = proxy.URL(url)\n\t}\n\treturn ufmt.Sprintf(\"[%s](%s)\", l.Title, url)\n}\n\n// String returns a Markdown with tool info.\nfunc (t Tool) String() string {\n\tvar buf strings.Builder\n\n\tif t.Icon != \"\" {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[![](%s)](%s)\\\\\\n\", t.Icon, t.URL))\n\t}\n\n\tbuf.WriteString(ufmt.Sprintf(\"**[%s](%s)**: \", t.Name, t.URL))\n\tbuf.WriteString(t.Description + \"\\n\")\n\treturn buf.String()\n}\n\n// String returns a Markdown with news info.\nfunc (n News) String() string {\n\tvar (\n\t\tbuf strings.Builder\n\t\ttags []string\n\t)\n\n\tif n.ImageURL != \"\" {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[![](%s)](%s)\\\\\\n\", n.ImageURL, n.URL))\n\t}\n\n\tbuf.WriteString(ufmt.Sprintf(\"**[%s](%s)**\\\\\\n\", n.Title, n.URL))\n\tbuf.WriteString(\"#\" + n.ID.String() + \" - \")\n\tbuf.WriteString(n.CreatedAt.UTC().Format(\"Jan 02, 2006 (MST)\"))\n\n\tfor _, tag := range n.Tags {\n\t\ttags = append(tags, ufmt.Sprintf(\"[%s](%s)\", tag, proxy.URL(\"news/\"+tag)))\n\t}\n\n\tbuf.WriteString(\" - \" + strings.Join(tags, \", \") + \"\\n\")\n\treturn buf.String()\n}\n\nfunc genNewsID() ID {\n\tlastNewsID += 1\n\treturn lastNewsID\n}\n\nfunc assertIsEditor(addr std.Address) {\n\tfor _, editor := range editors {\n\t\tif editor == addr {\n\t\t\treturn\n\t\t}\n\t}\n\n\tpanic(\"forbidden\")\n}\n\nfunc assertRealmIsNotLocked() {\n\tif locked {\n\t\tpanic(\"realm is locked\")\n\t}\n}\n"},{"name":"strategy_editors.gno","body":"package space\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\ntype editorsModificationStrategy struct {\n\tnewEditors, removeEditors []std.Address\n}\n\nfunc (editorsModificationStrategy) Name() string {\n\treturn StrategyNameEditorsModification\n}\n\nfunc (editorsModificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (editorsModificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameEditorsModification)\n\treturn period\n}\n\nfunc (editorsModificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (editorsModificationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s editorsModificationStrategy) Validate(*gnome.Proposal) error {\n\tfor _, e := range s.newEditors {\n\t\tfor _, addr := range editors {\n\t\t\tif addr == e {\n\t\t\t\treturn errors.New(\"address is already an editor: \" + e.String())\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, e := range s.removeEditors {\n\t\tfor _, addr := range editors {\n\t\t\tif addr == e {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\treturn errors.New(\"address is not an editor: \" + e.String())\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s editorsModificationStrategy) Execute(*gnome.DAO) error {\n\tfor _, e := range s.removeEditors {\n\t\tfor i, addr := range editors {\n\t\t\tif addr != e {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\teditors = append(editors[:i], editors[i+1:]...)\n\t\t}\n\t}\n\n\tfor _, e := range s.newEditors {\n\t\teditors = append(editors, e)\n\t}\n\treturn nil\n}\n\nfunc (s editorsModificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tif count := len(s.newEditors); count \u003e 0 {\n\t\teditors := make([]string, count)\n\t\tfor i, m := range s.newEditors {\n\t\t\teditors[i] = m.String()\n\t\t}\n\n\t\tb.WriteString(\"**New Editors:**\\n- \" + strings.Join(editors, \"\\n- \") + \"\\n\\n\")\n\t}\n\n\tif count := len(s.removeEditors); count \u003e 0 {\n\t\teditors := make([]string, count)\n\t\tfor i, m := range s.removeEditors {\n\t\t\teditors[i] = m.String()\n\t\t}\n\n\t\tb.WriteString(\"**Editors to Remove:**\\n- \" + strings.Join(editors, \"\\n- \") + \"\\n\\n\")\n\t}\n\n\treturn b.String()\n}\n"},{"name":"strategy_lock.gno","body":"package space\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\ntype lockingStrategy struct {\n\trealmPath string\n}\n\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\nfunc (lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\t// Allow modification of the newxt version package path when realm is locked\n\tif locked \u0026\u0026 nextVersionRealmPath == \"\" \u0026\u0026 s.realmPath != \"\" {\n\t\treturn nil\n\t}\n\n\tif locked {\n\t\treturn errors.New(\"realm is already locked\")\n\t}\n\treturn nil\n}\n\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s lockingStrategy) Execute(*gnome.DAO) error {\n\tlocked = true\n\tif s.realmPath != \"\" {\n\t\tnextVersionRealmPath = s.realmPath\n\t}\n\treturn nil\n}\n\nfunc (s lockingStrategy) RenderParams() string {\n\tif s.realmPath != \"\" {\n\t\treturn \"**Next Realm Path:** [\" + s.realmPath + \"](https://\" + s.realmPath + \")\"\n\t}\n\treturn \"\"\n}\n"},{"name":"strategy_params.gno","body":"package space\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\ntype paramsUpdateStrategy struct {\n\tspaceDAO string\n\tvotingPeriods gnome.DurationParams\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\tif s.spaceDAO != \"\" {\n\t\tparameters.SpaceDAO = s.spaceDAO\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tif s.spaceDAO != \"\" {\n\t\tb.WriteString(\"**Gnome Space DAO Path:** \" + s.spaceDAO + \"\\n\\n\")\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"**Voting Period for '\" + name + \"':** \" + gnome.HumanizeDuration(period) + \"\\n\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"strategy_section.gno","body":"package space\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/jeronimoalbi/datasource\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\ntype dataSectionStrategy struct {\n\tslug, title, realm string\n\tblockHeight int64\n\tdatasource datasource.Datasource\n}\n\nfunc (dataSectionStrategy) Name() string {\n\treturn StrategyNameDataSection\n}\n\nfunc (dataSectionStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (dataSectionStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDataSection)\n\treturn period\n}\n\nfunc (dataSectionStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (dataSectionStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s dataSectionStrategy) Validate(*gnome.Proposal) error {\n\tif _, exists := indexes.DataSection.GetBySlug(s.slug); exists {\n\t\treturn errors.New(\"data section slug is already taken: \" + s.slug)\n\t}\n\treturn nil\n}\n\nfunc (s dataSectionStrategy) Execute(*gnome.DAO) error {\n\tindexes.DataSection.Index(\u0026dataSection{\n\t\tSlug: s.slug,\n\t\tTitle: s.title,\n\t\tRealm: s.realm,\n\t\tBlockHeight: s.blockHeight,\n\t\tDatasource: s.datasource,\n\t})\n\treturn nil\n}\n\nfunc (s dataSectionStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\theight = strconv.FormatInt(s.blockHeight, 10)\n\t)\n\n\tb.WriteString(\"**Slug:** \" + s.slug + \"\\n\\n\")\n\tb.WriteString(\"**Title:** \" + gnome.EscapeHTML(s.title) + \"\\n\\n\")\n\tb.WriteString(\"**Realm:** \" + s.realm + \"\\n\\n\")\n\tb.WriteString(\"**Block Height:** [\" + height + \"](\" + newBlockURL(s.blockHeight) + \")\\n\\n\")\n\n\treturn b.String()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"30000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+yqVpmS41BhqS6Un2fPHXnME+S885AGXU3FBMAZpsvN5T6OU+qgADpH++hxIZl/UtTxnv1WeId1LbBgxM4ROBA=="}],"memo":""},"metadata":{"timestamp":"1734112045"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"tutorial","path":"gno.land/r/gnome/tutorials","files":[{"name":"tutorials_proxy.gno","body":"package tutorial\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/gnome/renderproxy\"\n)\n\nvar proxy = renderproxy.MustNew()\n\n// ProxyRender proxies render calls for a sub-realm.\nfunc ProxyRender(fn renderproxy.RenderFn) {\n\tproxy.MustRegister(std.PrevRealm().PkgPath(), fn)\n}\n\n// ProxyRealmPath returns the proxied realm's path.\nfunc ProxyRealmPath() string {\n\treturn proxy.RealmPath()\n}\n\n// URL returns a proxy URL.\nfunc URL(renderPath string) string {\n\treturn proxy.URL(renderPath)\n}\n\n// Render returns a Markdown string with the realm output.\nfunc Render(path string) string {\n\treturn proxy.MustRender(path)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/O1jsg9p3g6aGyIy552OprvExlh1EkyIcd0t/pVw+4sHSdjIUzZAOsllEfAQeMLqXIJZ9+a77RZ4fA5k4hcsDQ=="}],"memo":""},"metadata":{"timestamp":"1734111859"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","package":{"name":"tutorials","path":"gno.land/r/gnome/tutorials/v1rc1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"datasource.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/jeronimoalbi/datasource\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n)\n\ntype Datasource struct{}\n\nfunc (ds Datasource) Size() int { return tutorials.Size() }\n\nfunc (ds Datasource) Records(q datasource.Query) datasource.Iterator {\n\treturn \u0026postIter{\n\t\ttag: q.Tag,\n\t\tcurrentIndex: q.Offset,\n\t\tmaxIndex: q.Offset + q.Count,\n\t}\n}\n\nfunc (ds Datasource) Record(id string) (datasource.Record, error) {\n\tp, found := tutorials.Get(id)\n\tif !found {\n\t\treturn nil, errors.New(\"tutorial not found\")\n\t}\n\n\tif !isTutorialPublished(p) {\n\t\treturn nil, errors.New(\"tutorial is not published\")\n\t}\n\n\treturn postRecord{p}, nil\n}\n\ntype postRecord struct {\n\tpost *blog.Post\n}\n\nfunc (r postRecord) ID() string { return r.post.Slug }\nfunc (r postRecord) String() string { return r.post.Title }\nfunc (r postRecord) Tags() []string { return r.post.Tags }\n\nfunc (r postRecord) Fields() (datasource.Fields, error) {\n\tfields := avl.NewTree()\n\tfields.Set(\"details\", r.post.CreatedAt.UTC().Format(\"Jan 02, 2006 (MST)\"))\n\treturn fields, nil\n}\n\nfunc (r postRecord) Content() (string, error) {\n\tcontent := \"# \" + r.post.Title + \"\\n\"\n\tcontent += \"- Author(s): \" + r.post.Authors.String() + \"\\n\"\n\tcontent += \"- Created: \" + r.post.CreatedAt.UTC().Format(dateFormat) + \"\\n\\n\"\n\tcontent += r.post.Content\n\treturn content, nil\n}\n\ntype postIter struct {\n\tcurrentIndex, maxIndex int\n\ttag string\n\trecord *postRecord\n}\n\nfunc (it postIter) Err() error { return nil }\nfunc (it postIter) Record() datasource.Record { return it.record }\n\nfunc (it *postIter) Next() bool {\n\tvar (\n\t\tp *blog.Post\n\t\tfound bool\n\t)\n\n\tif it.tag != \"\" {\n\t\tp, found = tags.GetByIndex(it.tag, it.currentIndex)\n\t} else {\n\t\tp, found = tutorials.GetByIndex(it.currentIndex)\n\t}\n\n\tif !found {\n\t\treturn false\n\t}\n\n\tit.record = \u0026postRecord{p}\n\tit.currentIndex++\n\treturn true\n}\n"},{"name":"indexes.gno","body":"package tutorials\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\tblog \"gno.land/p/gnome/blog/v2\"\n)\n\nconst keyDateFmt = \"2006-01-02T15:04:05\"\n\nvar (\n\ttags tagIndex\n\ttutorials tutorialIndex\n)\n\ntype tagIndex struct {\n\tindex avl.Tree // string(tag) -\u003e *tutorialIndex\n}\n\nfunc (x *tagIndex) Index(p *blog.Post) (indexed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\t// Get the tutorials for the current tag\n\t\tvar (\n\t\t\tidx *tutorialIndex\n\t\t\tv, found = x.index.Get(tag)\n\t\t)\n\n\t\tif found {\n\t\t\tidx = v.(*tutorialIndex)\n\t\t} else {\n\t\t\tidx = \u0026tutorialIndex{}\n\t\t}\n\n\t\t// Index the tutorial\n\t\tidx.Index(p)\n\n\t\t// Keep track of indexing success\n\t\tindexed = x.index.Set(tag, idx) || indexed\n\t}\n\treturn\n}\n\nfunc (x *tagIndex) Remove(p *blog.Post) (removed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\tv, found := x.index.Get(tag)\n\t\tif !found {\n\t\t\t// Ignore tags that are not indexed\n\t\t\tcontinue\n\t\t}\n\n\t\tidx := v.(*tutorialIndex)\n\t\tif idx.Remove(p) \u0026\u0026 !removed {\n\t\t\tremoved = true\n\t\t}\n\n\t\tif idx.Size() == 0 {\n\t\t\t// Remove the tag from the index when empty\n\t\t\tx.index.Remove(tag)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x tagIndex) IterateTags(fn func(tag string) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(tag string, _ interface{}) bool {\n\t\treturn fn(tag)\n\t})\n}\n\nfunc (x tagIndex) IteratePosts(tag, start string, fn func(key string, _ *blog.Post) bool) bool {\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.Iterate(start, \"\", func(key string, p *blog.Post) bool {\n\t\treturn fn(key, p)\n\t})\n}\n\nfunc (x tagIndex) ReverseIteratePosts(tag, start string, fn func(key string, _ *blog.Post) bool) bool {\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.ReverseIterate(start, \"\", func(key string, p *blog.Post) bool {\n\t\treturn fn(key, p)\n\t})\n}\n\nfunc (x tagIndex) GetByIndex(tag string, index int) (*blog.Post, bool) {\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn nil, false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.GetByIndex(index)\n}\n\ntype tutorialIndex struct {\n\tindex avl.Tree // string(post creation time + post slug) -\u003e *blog.Post\n\tslugs avl.Tree // string(slug) -\u003e *blog.Post\n}\n\nfunc (x tutorialIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *tutorialIndex) Index(p *blog.Post) bool {\n\tx.slugs.Set(p.Slug, p)\n\n\tk := newTutorialKey(p)\n\treturn x.index.Set(k, p)\n}\n\nfunc (x tutorialIndex) Get(slug string) (*blog.Post, bool) {\n\tif v, found := x.slugs.Get(slug); found {\n\t\treturn v.(*blog.Post), true\n\t}\n\treturn nil, false\n}\n\nfunc (x tutorialIndex) GetByIndex(index int) (*blog.Post, bool) {\n\tif x.index.Size() \u003c= index {\n\t\treturn nil, false\n\t}\n\n\t_, v := x.index.GetByIndex(index)\n\treturn v.(*blog.Post), true\n}\n\nfunc (x *tutorialIndex) Remove(p *blog.Post) bool {\n\tx.slugs.Remove(p.Slug)\n\n\tk := newTutorialKey(p)\n\t_, removed := x.index.Remove(k)\n\treturn removed\n}\n\nfunc (x tutorialIndex) Iterate(start, end string, fn func(string, *blog.Post) bool) bool {\n\treturn x.index.Iterate(start, end, func(key string, v interface{}) bool {\n\t\treturn fn(key, v.(*blog.Post))\n\t})\n}\n\nfunc (x tutorialIndex) ReverseIterate(start, end string, fn func(string, *blog.Post) bool) bool {\n\treturn x.index.ReverseIterate(start, end, func(key string, v interface{}) bool {\n\t\treturn fn(key, v.(*blog.Post))\n\t})\n}\n\nfunc newTutorialKey(p *blog.Post) string {\n\treturn p.CreatedAt.UTC().Format(keyDateFmt) + p.Slug\n}\n"},{"name":"params.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameCreation = \"tutorial-creation\"\n\tStrategyNameDeletion = \"tutorial-deletion\"\n\tStrategyNameLocking = \"tutorial-realm-locking\"\n\tStrategyNameModification = \"tutorial-modification\"\n\tStrategyNameParamsUpdate = \"tutorial-params-update\"\n)\n\nvar parameters struct {\n\tVotingPeriods gnome.DurationParams\n\tTutorialsDAO string\n\tCIDAO string\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameCreation, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameDeletion, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameModification, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n\n\t// Path to DAOs\n\tparameters.TutorialsDAO = \"council/ecosystem/community/tutorials\"\n\tparameters.CIDAO = \"council/ecosystem/community/tutorials/ci\"\n}\n"},{"name":"public.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n)\n\n// GetTutorialsBlog returns an invariant reference to the tutorials blog.\nfunc GetTutorialsBlog() blog.InvarBlog {\n\treturn blog.NewInvarBlog(\u0026tutorialsBlog)\n}\n\n// TutorialExists checks if a tutorial with a specific slug exists.\nfunc TutorialExists(slug string) bool {\n\treturn tutorialsBlog.HasPost(slug)\n}\n\n// Publish publishes content for a tutorial.\n//\n// The submited content must be previously approved by a creation or modification proposal.\n//\n// Parameters:\n// - slug: Slug name of the tutorial (required)\n// - content: The tutorial content to publish (required)\nfunc Publish(slug, content string) {\n\tassertRealmIsNotLocked()\n\n\t// Check that content checksum matches the approved content for the tutorial post\n\tp := mustGetPost(slug)\n\tblog.AssertContentSha256Hash(content, p.ContentHash)\n\n\t// Remove content metadata if present\n\t// TODO: Use front matter JSON metadata to init optional post fields?\n\tcontent = strings.TrimSpace(content)\n\t_, content = extractFrontMatter(content)\n\n\t// Add caller to the list of publishers\n\tcaller := std.GetOrigCaller()\n\tif !p.Publishers.Has(caller) {\n\t\tp.Publishers = append(p.Publishers, caller)\n\t}\n\n\tif p.Status == blog.StatusDraft {\n\t\tp.PublishAt = time.Now()\n\t}\n\n\tp.Status = blog.StatusPublished\n\tp.Content = strings.TrimSpace(content)\n\tp.UpdatedAt = time.Now()\n}\n\nfunc extractFrontMatter(content string) (meta, body string) {\n\t// Front matter is defined at the start of the Markdown content, surrounded by \"---\"\n\ts, hasMeta := strings.CutPrefix(content, \"---\\n\")\n\tif !hasMeta {\n\t\treturn \"\", content\n\t}\n\n\t// Split front matter metadata and Markdown content\n\tmeta, body, _ = strings.Cut(s, \"---\\n\")\n\treturn strings.TrimSpace(meta), body\n}\n"},{"name":"public_proposals.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n\tgnomeDAO \"gno.land/r/gnome/dao/v1rc1\"\n)\n\n// SubmitCreationProposal submits a new proposal to create a new tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// This type of proposal is by default created in the Tutorials DAO.\n// It can optionally be created in the Tutorials/CI subDAO by automated processes to improve security.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial (required)\n// - tutorialContentHash: A SHA256 hash of the tutorial's content (required)\n// - tutorialContentURL: A URL where the tutorial's content is currently available (required)\n// - tutorialAuthors: List of author addresses (required)\n// - tutorialEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n// - isCI: Indicates that the proposal is being created by an automated CI process\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of authors and editors must be a newline separated list of addresses.\nfunc SubmitCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialContentURL,\n\ttutorialAuthors,\n\ttutorialEditors,\n\ttutorialTags string,\n\tisCI bool,\n) uint64 {\n\tassertRealmIsNotLocked()\n\tassertSlugIsAvailable(tutorialSlug)\n\tblog.AssertTitleIsNotEmpty(tutorialTitle)\n\tblog.AssertIsSlug(tutorialSlug)\n\tblog.AssertIsSha256Hash(tutorialContentHash)\n\tblog.AssertIsContentURL(tutorialContentURL)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\tauthors := blog.MustParseStringToAddresses(tutorialAuthors)\n\tif len(authors) == 0 {\n\t\tpanic(\"tutorial authors must have at least one author's address\")\n\t}\n\n\t// CI submitted proposals must be created in the CI subDAO\n\tvar daoPath string\n\tif isCI {\n\t\tdaoPath = parameters.CIDAO\n\t} else {\n\t\tdaoPath = parameters.TutorialsDAO\n\t}\n\n\tstrategy := creationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: authors,\n\t\teditors: blog.MustParseStringToAddresses(tutorialEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, daoPath)\n\treturn uint64(id)\n}\n\n// SubmitModificationProposal submits a new proposal to modify a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// This type of proposal is by default created in the Tutorials DAO.\n// It can optionally be created in the Tutorials/CI subDAO by automated processes to improve security.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial\n// - tutorialContentHash: A SHA256 hash of the new tutorial's content\n// - tutorialCurrentContentHash: A SHA256 hash of the current tutorial's content\n// - tutorialContentURL: A URL where the new tutorial's content is currently available\n// - tutorialNewAuthors: List of author addresses\n// - tutorialNewEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n// - isCI: Indicates that the proposal is being created by an automated CI process\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of new authors and editors must be a newline separated list of addresses.\n// If present, authors and editors are appended to the current list of authors and editors.\n//\n// If a list of tags is assigned it replaces the current list of tutorial tags.\nfunc SubmitModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialCurrentContentHash,\n\ttutorialContentURL,\n\ttutorialNewAuthors,\n\ttutorialNewEditors,\n\ttutorialTags string,\n\tisCI bool,\n) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\ttutorialContentHash = strings.TrimSpace(tutorialContentHash)\n\tif tutorialContentHash != \"\" {\n\t\ttutorialCurrentContentHash = strings.TrimSpace(tutorialCurrentContentHash)\n\t\tif tutorialCurrentContentHash == \"\" {\n\t\t\tpanic(\"the current content hash of the tutorial to modify is required\")\n\t\t}\n\n\t\tblog.AssertIsSha256Hash(tutorialContentHash)\n\t\tblog.AssertIsSha256Hash(tutorialCurrentContentHash)\n\t\tblog.AssertIsContentURL(tutorialContentURL)\n\t}\n\n\tauthors := blog.MustParseStringToAddresses(tutorialNewAuthors)\n\teditors := blog.MustParseStringToAddresses(tutorialNewEditors)\n\tstrategy := modificationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcurrentContentHash: tutorialCurrentContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\ttags: tags,\n\t}\n\n\t// When submitting proposal to the CI subDAO make sure that\n\t// duplicated addresses are removed. This is required to make\n\t// automation implementation simpler while at the same time\n\t// user submitted proposals are asserted for duplicated values.\n\tif isCI {\n\t\ttutorial, _ := tutorialsBlog.GetPost(tutorialSlug)\n\n\t\tfor _, addr := range authors {\n\t\t\tif !tutorial.Authors.Has(addr) {\n\t\t\t\tstrategy.authors = append(strategy.authors, addr)\n\t\t\t}\n\t\t}\n\n\t\tfor _, addr := range editors {\n\t\t\tif !tutorial.Editors.Has(addr) {\n\t\t\t\tstrategy.editors = append(strategy.editors, addr)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tstrategy.authors = authors\n\t\tstrategy.editors = editors\n\t}\n\n\t// CI submitted proposals must be created in the CI subDAO\n\tvar daoPath string\n\tif isCI {\n\t\tdaoPath = parameters.CIDAO\n\t} else {\n\t\tdaoPath = parameters.TutorialsDAO\n\t}\n\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, daoPath)\n\treturn uint64(id)\n}\n\n// SubmitDeletionProposal submits a new proposal to delete a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\nfunc SubmitDeletionProposal(proposalTitle, proposalDescription, tutorialSlug string) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\tstrategy := deletionStrategy{tutorialSlug}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.TutorialsDAO)\n\treturn uint64(id)\n}\n\n// SubmitLockingProposal submits a new proposal to lock the realm.\n//\n// Locking the realm \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 34% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by members with `admin` role.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - realmPath: Path of the realm that should be allowed to import state data\n//\n// The optional realm path authorizes a realm to import the state data once the realm is locked.\nfunc SubmitLockingProposal(proposalTitle, proposalDescription, realmPath string) uint64 {\n\tassertHasAdminRole(std.GetOrigCaller())\n\n\tif realmPath != \"\" \u0026\u0026 !strings.HasPrefix(realmPath, \"gno.land/r/\") {\n\t\tpanic(`realm path must start with \"gno.land/r/\"`)\n\t}\n\n\tstrategy := lockingStrategy{realmPath}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.TutorialsDAO)\n\treturn uint64(id)\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialsDAO: Path to the tutorials SubDAO\n// - CIDAO: Path to the CI SubDAO\n// - votingPeriodCreation: Voting period for tutorial creation proposals\n// - votingPeriodModification: Voting period for tutorial modification proposals\n// - votingPeriodDeletion: Voting period for tutorial deletion proposals\n// - votingPeriodLocking: Voting period for realm locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialsDAO,\n\tCIDAO string,\n\tvotingPeriodCreation,\n\tvotingPeriodModification,\n\tvotingPeriodDeletion,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tstrategy := paramsUpdateStrategy{\n\t\ttutorialsDAO: strings.TrimSpace(tutorialsDAO),\n\t\tCIDAO: strings.TrimSpace(CIDAO),\n\t}\n\n\tif votingPeriodCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameCreation, period)\n\t}\n\n\tif votingPeriodModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameModification, period)\n\t}\n\n\tif votingPeriodDeletion \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDeletion) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameDeletion, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, parameters.TutorialsDAO)\n\treturn uint64(id)\n}\n\nfunc assertSlugIsAvailable(slug string) {\n\tif tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial URL slug already exists\")\n\t}\n}\n\nfunc assertTutorialExists(slug string) {\n\tif !tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial not found\")\n\t}\n}\n\nfunc assertValidTags(tags []string) {\n\tfor _, t := range tags {\n\t\tif !blog.IsSlug(t) {\n\t\t\tpanic(\"invalid tag: \" + t)\n\t\t}\n\t}\n}\n\nfunc assertHasAdminRole(addr std.Address) {\n\terr := gnomeDAO.CheckMemberHasRole(parameters.TutorialsDAO, addr, gnomeDAO.RoleAdmin)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"render.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\n\talerts \"gno.land/p/gnome/alerts/v2\"\n\tblog \"gno.land/p/gnome/blog/v2\"\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\tproxy \"gno.land/r/gnome/tutorials\"\n)\n\nconst (\n\tdateFormat = \"2006-01-02 15:04 MST\"\n\tshortDateFormat = \"Jan 2, 2006\"\n)\n\nfunc init() {\n\tproxy.ProxyRender(render)\n}\n\nfunc render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.NotFoundHandler = func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(\"Path not found\")\n\t}\n\n\trouter.HandleFunc(\"\", renderBlog)\n\trouter.HandleFunc(\"posts\", renderBlog)\n\trouter.HandleFunc(\"posts/{slug}\", renderPost)\n\trouter.HandleFunc(\"drafts\", renderDrafts)\n\trouter.HandleFunc(\"revisions\", renderRevisions)\n\trouter.HandleFunc(\"tags\", renderTags)\n\trouter.HandleFunc(\"tags/{name}\", renderPostsByTag)\n\trouter.HandleFunc(\"params\", renderParams)\n\n\treturn renderAlerts() + router.Render(path)\n}\n\nfunc renderBlog(res *mux.ResponseWriter, _ *mux.Request) {\n\t// Write header\n\tres.Write(\"# \" + tutorialsBlog.Title + \"\\n\")\n\tif tutorialsBlog.Description != \"\" {\n\t\tres.Write(tutorialsBlog.Description + \"\\n\\n\")\n\t}\n\n\t// Write tutorials menu\n\tres.Write(renderMenu() + \"\\n\\n---\\n\")\n\n\t// Write list of published tutorials\n\ttutorials.Iterate(\"\", \"\", func(_ string, p *blog.Post) bool { // TODO: Add post pagination support\n\t\tif !isTutorialPublished(p) {\n\t\t\treturn false\n\t\t}\n\n\t\turl := proxy.URL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\\\\\\n\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tres.Write(\"Post not found\")\n\t\treturn\n\t}\n\n\tif p.Status == blog.StatusRevised {\n\t\tres.Write(alerts.NewWarning(\"Tutorial content is being revised\"))\n\t}\n\n\tres.Write(\"# \" + p.Title + \"\\n\")\n\tres.Write(\"- Author(s): \" + p.Authors.String() + \"\\n\")\n\n\tif len(p.Editors) \u003e 0 {\n\t\tres.Write(\"- Editors(s): \" + p.Editors.String() + \"\\n\")\n\t}\n\n\tres.Write(\"- Publisher(s): \" + p.Publishers.String() + \"\\n\")\n\tres.Write(\"- Status: \" + p.Status.String() + \"\\n\")\n\tres.Write(\"- Content Hash: \" + p.ContentHash + \"\\n\")\n\tres.Write(\"- Created: \" + p.CreatedAt.UTC().Format(dateFormat) + \"\\n\")\n\tif !p.UpdatedAt.IsZero() {\n\t\tres.Write(\"- Updated: \" + p.UpdatedAt.UTC().Format(dateFormat) + \"\\n\")\n\t}\n\n\tif len(p.Tags) \u003e 0 {\n\t\tres.Write(\"- Tag(s): \" + renderTagLinks(p.Tags) + \"\\n\")\n\t}\n\n\tif p.Content != \"\" {\n\t\tres.Write(\"\\n\" + p.Content)\n\t}\n}\n\nfunc renderDrafts(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Drafts\\n\")\n\ttutorials.Iterate(\"\", \"\", func(_ string, p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusDraft {\n\t\t\treturn false\n\t\t}\n\n\t\turl := proxy.URL(\"posts/\" + p.Slug)\n\t\tdate := p.CreatedAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\\\\\\n\")\n\t\tres.Write(\"_Created: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderRevisions(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Revisions\\n\")\n\ttutorials.Iterate(\"\", \"\", func(_ string, p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := proxy.URL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\\\\\\n\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderTags(res *mux.ResponseWriter, req *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tags\\n\")\n\ttags.IterateTags(func(tag string) bool {\n\t\tres.Write(\"- [\" + tag + \"](\" + proxy.URL(\"tags/\"+tag) + \")\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPostsByTag(res *mux.ResponseWriter, req *mux.Request) {\n\ttag := req.GetVar(\"name\")\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tag `\" + tag + \"`\\n\")\n\n\tif tag == \"\" {\n\t\treturn\n\t}\n\n\ttags.IteratePosts(tag, \"\", func(_ string, p *blog.Post) bool {\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := proxy.URL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\\\\\\n\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderParams(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**General**\\n\")\n\tres.Write(\"- Tutorials DAO Path: \" + parameters.TutorialsDAO + \"\\n\")\n\tres.Write(\"\\n**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderAlerts() string {\n\tif locked {\n\t\tmsg := \"\u003e **Realm is locked**\"\n\t\tif nextVersionRealmPath != \"\" {\n\t\t\tlink := alerts.NewLink(\"https://\"+nextVersionRealmPath, nextVersionRealmPath)\n\t\t\tmsg += \" \\n\u003e This realm is deprecated in favor of a new version found at \" + link\n\t\t}\n\t\treturn msg + \"\\n\\n\"\n\t}\n\treturn \"\"\n}\n\nfunc renderMenu() string {\n\titems := []string{\n\t\t\"**[drafts](\" + proxy.URL(\"drafts\") + \")**\",\n\t\t\"**[revisions](\" + proxy.URL(\"revisions\") + \")**\",\n\t}\n\n\t// Add taxonomy entries\n\ttags.IterateTags(func(tag string) bool {\n\t\titems = append(items, \"**[\"+tag+\"](\"+proxy.URL(\"tags/\"+tag)+\")**\")\n\t\treturn false\n\t})\n\n\treturn strings.Join(items, \" \")\n}\n\nfunc renderTagLinks(tags []string) string {\n\tvar links []string\n\tfor _, t := range tags {\n\t\tlinks = append(links, \"[\"+t+\"](\"+proxy.URL(\"tags/\"+t)+\")\")\n\t}\n\treturn strings.Join(links, \", \")\n}\n\nfunc isTutorialPublished(p *blog.Post) bool {\n\t// Skip posts that should be published at a future date\n\tif p.PublishAt.IsZero() || p.PublishAt.After(time.Now()) {\n\t\treturn false\n\t}\n\n\t// Skip posts that are not published or being revised\n\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\treturn false\n\t}\n\treturn true\n}\n"},{"name":"strategy_lock.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n)\n\ntype lockingStrategy struct {\n\trealmPath string\n}\n\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\nfunc (lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\t// Allow modification of the newxt version package path when realm is locked\n\tif locked \u0026\u0026 nextVersionRealmPath == \"\" \u0026\u0026 s.realmPath != \"\" {\n\t\treturn nil\n\t}\n\n\tif locked {\n\t\treturn errors.New(\"realm is already locked\")\n\t}\n\treturn nil\n}\n\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s lockingStrategy) Execute(*gnome.DAO) error {\n\tlocked = true\n\tif s.realmPath != \"\" {\n\t\tnextVersionRealmPath = s.realmPath\n\t}\n\treturn nil\n}\n\nfunc (s lockingStrategy) RenderParams() string {\n\tif s.realmPath != \"\" {\n\t\treturn \"**Next Realm Path:** [\" + s.realmPath + \"](https://\" + s.realmPath + \")\"\n\t}\n\treturn \"\"\n}\n"},{"name":"strategy_params.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\tgnomeDAO \"gno.land/r/gnome/dao/v1rc1\"\n)\n\ntype paramsUpdateStrategy struct {\n\ttutorialsDAO, CIDAO string\n\tvotingPeriods gnome.DurationParams\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Validate(*gnome.Proposal) error {\n\tif s.tutorialsDAO != \"\" {\n\t\tif _, found := gnomeDAO.GetDAO(s.tutorialsDAO); !found {\n\t\t\treturn errors.New(\"tutorials DAO doesn't exist: \" + s.tutorialsDAO)\n\t\t}\n\t}\n\n\tif s.CIDAO != \"\" {\n\t\tif _, found := gnomeDAO.GetDAO(s.CIDAO); !found {\n\t\t\treturn errors.New(\"CI DAO doesn't exist: \" + s.CIDAO)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\tif s.tutorialsDAO != \"\" {\n\t\tparameters.TutorialsDAO = s.tutorialsDAO\n\t}\n\n\tif s.CIDAO != \"\" {\n\t\tparameters.CIDAO = s.CIDAO\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tif s.tutorialsDAO != \"\" {\n\t\tb.WriteString(\"**Tutorials DAO Path:** \" + s.tutorialsDAO + \"\\n\\n\")\n\t}\n\tif s.CIDAO != \"\" {\n\t\tb.WriteString(\"**CI DAO Path:** \" + s.CIDAO + \"\\n\\n\")\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"**Voting Period for '\" + name + \"':** \" + gnome.HumanizeDuration(period) + \"\\n\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"strategy_tutorials.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\n\tblog \"gno.land/p/gnome/blog/v2\"\n\tgnome \"gno.land/p/gnome/dao/v2\"\n\tproxy \"gno.land/r/gnome/tutorials\"\n)\n\ntype creationStrategy struct {\n\tslug, title, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (creationStrategy) Name() string {\n\treturn StrategyNameCreation\n}\n\nfunc (creationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (creationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameCreation)\n\treturn period\n}\n\nfunc (creationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s creationStrategy) Validate(*gnome.Proposal) error {\n\tif tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial URL slug already exists\")\n\t}\n\treturn nil\n}\n\nfunc (creationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s creationStrategy) Execute(*gnome.DAO) error {\n\tp := \u0026blog.Post{\n\t\tSlug: s.slug,\n\t\tTitle: s.title,\n\t\tContentHash: s.contentHash,\n\t\tAuthors: s.authors,\n\t\tEditors: s.editors,\n\t\tStatus: blog.StatusDraft,\n\t\tTags: s.tags,\n\t\tCreatedAt: time.Now(),\n\t}\n\ttutorialsBlog.AddPost(p)\n\n\t// Update realm indexes\n\ttutorials.Index(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Index(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s creationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tauthors = strings.ReplaceAll(s.authors.String(), \", \", \"\\n- \")\n\t)\n\n\tb.WriteString(\"**Slug:** \" + s.slug + \"\\n\\n\")\n\tb.WriteString(\"**Title:** \" + gnome.EscapeHTML(s.title) + \"\\n\\n\")\n\tb.WriteString(\"**Content URL:** \" + gnome.NewLinkURI(s.contentURL) + \"\\n\\n\")\n\tb.WriteString(\"**Content Hash:** \" + s.contentHash + \"\\n\\n\")\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"**Tag(s):** \" + renderTagLinks(s.tags) + \"\\n\\n\")\n\t}\n\n\tb.WriteString(\"**Author(s):**\\n- \" + authors + \"\\n\\n\")\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\\n- \")\n\t\tb.WriteString(\"**Editor(s):**\\n- \" + editors + \"\\n\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype modificationStrategy struct {\n\tslug, title, currentContentHash, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (modificationStrategy) Name() string {\n\treturn StrategyNameModification\n}\n\nfunc (modificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (modificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameModification)\n\treturn period\n}\n\nfunc (modificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s modificationStrategy) Validate(*gnome.Proposal) error {\n\tp, found := tutorialsBlog.GetPost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\n\tif s.currentContentHash != \"\" \u0026\u0026 s.currentContentHash != p.ContentHash {\n\t\treturn errors.New(\"tutorial's content has been previously modified\")\n\t}\n\n\tfor _, addr := range s.authors {\n\t\tif p.Authors.Has(addr) {\n\t\t\treturn errors.New(\"author already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tfor _, addr := range s.editors {\n\t\tif p.Authors.Has(addr) {\n\t\t\treturn errors.New(\"editor already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tvar seenTags avl.Tree\n\t\tfor _, t := range s.tags {\n\t\t\tif seenTags.Has(t) {\n\t\t\t\treturn errors.New(\"duplicated tag: \" + t)\n\t\t\t}\n\n\t\t\tseenTags.Set(t, struct{}{})\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (modificationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s modificationStrategy) Execute(*gnome.DAO) error {\n\tp, _ := tutorialsBlog.GetPost(s.slug)\n\n\tif s.title != \"\" {\n\t\tp.Title = s.title\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tp.Authors = append(p.Authors, s.authors...)\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\tp.Editors = append(p.Editors, s.editors...)\n\t}\n\n\t// Update tag index\n\tif len(s.tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t\tp.Tags = s.tags\n\t\ttags.Index(p)\n\t}\n\n\t// Changing content hash converts post to a revised until new content is setted\n\tif s.contentHash != \"\" {\n\t\tp.Status = blog.StatusRevised\n\t\tp.ContentHash = s.contentHash\n\t}\n\n\tp.UpdatedAt = time.Now()\n\treturn nil\n}\n\nfunc (s modificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"**Slug:** [\" + s.slug + \"](\" + proxy.URL(\"posts/\"+s.slug) + \")\\n\\n\")\n\n\tif s.title != \"\" {\n\t\tb.WriteString(\"**Title:** \" + gnome.EscapeHTML(s.title) + \"\\n\\n\")\n\t}\n\n\tif s.contentHash != \"\" {\n\t\tb.WriteString(\"**Content URL:** \" + gnome.NewLinkURI(s.contentURL) + \"\\n\\n\")\n\t\tb.WriteString(\"**Content Hash:** \" + s.contentHash + \"\\n\\n\")\n\t\tb.WriteString(\"**Modifies Content Hash:** \" + s.currentContentHash + \"\\n\\n\")\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"**Tag(s):** \" + renderTagLinks(s.tags) + \"\\n\\n\")\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tauthors := strings.ReplaceAll(s.authors.String(), \", \", \"\\n- \")\n\t\tb.WriteString(\"**Author(s):**\\n- \" + authors + \"\\n\\n\")\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\\n- \")\n\t\tb.WriteString(\"**Editor(s):**\\n- \" + editors + \"\\n\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype deletionStrategy struct {\n\tslug string\n}\n\nfunc (deletionStrategy) Name() string {\n\treturn StrategyNameDeletion\n}\n\nfunc (deletionStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (deletionStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDeletion)\n\treturn period\n}\n\nfunc (deletionStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (deletionStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s deletionStrategy) Validate(*gnome.Proposal) error {\n\tif !tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\treturn nil\n}\n\nfunc (s deletionStrategy) Execute(*gnome.DAO) error {\n\tp, found := tutorialsBlog.RemovePost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial not found\")\n\t}\n\n\t// Update realm indexes\n\ttutorials.Remove(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s deletionStrategy) RenderParams() string {\n\treturn \"**Slug:** [\" + s.slug + \"](\" + proxy.URL(\"posts/\"+s.slug) + \")\"\n}\n"},{"name":"tutorials.gno","body":"package tutorials\n\nimport (\n\tblog \"gno.land/p/gnome/blog/v2\"\n)\n\nvar (\n\tlocked bool\n\tnextVersionRealmPath string\n\n\ttutorialsBlog = blog.Blog{Title: \"Gno.me Tutorials\"} // TODO: Define a realm description\n)\n\nfunc mustGetPost(slug string) *blog.Post {\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tpanic(\"tutorial not found\")\n\t}\n\treturn p\n}\n\nfunc assertRealmIsNotLocked() {\n\tif locked {\n\t\tpanic(\"realm is locked\")\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1w1er+V436BXBqMlG7asnJo5Ge//jl2IL5hsF/FgSN1wycyaWqDRGB0KB3dW/mn6Sz7ld0IuohDUsxND1FwtAA=="}],"memo":""},"metadata":{"timestamp":"1734112050"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"bar20","path":"gno.land/r/mikaelvallenet/bar20","files":[{"name":"mvc.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1000000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"14000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kSz8IZqwPs3Bzft4jLkrWCx3Ga+fnLlMy2OG5CkyX015UEkELZom3agzi9rih2L5F5mljY8TwGXALXrVXx6NDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"bar20","path":"gno.land/r/mikaelvallenet/bar20","files":[{"name":"mvc.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TEtDg94m7Xeqp6y3BJWZoUSPQUkuBgVuZE4FRT3OZIZgq5eD9ZirltkEXnAKy9LztWuyyRA4ikdfU4vezW3bCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"foo20","path":"gno.land/r/mikaelvallenet/foo20","files":[{"name":"mvc.gno","body":"// foo20 is a GRC20 token contract where all the GRC20 methods are proxified\n// with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\tadmin *ownable.Ownable\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n\tbanker = grc20.NewBanker(\"Foo\", \"FOO\", 4)\n\tbanker.Mint(admin.Owner(), 1000000*10000) // @administrator (1M)\n\ttoken = banker.Token()\n}\n\nfunc TotalSupply() uint64 { return token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(token.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(token.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(token.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(banker.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\tadmin.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(banker.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\tadmin.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(banker.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := banker.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"14000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OvVC95vIrQjPWLDZUauYVeAXJYx9yJBXfEHWO7Cd+iMqp/5irqb0yXI5hcexZcoHa/tvIItHUqeuRomqE0YOAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"foo20","path":"gno.land/r/mikaelvallenet/foo20","files":[{"name":"mvc.gno","body":"// foo20 is a GRC20 token contract where all the GRC20 methods are proxified\n// with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\tadmin *ownable.Ownable\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n\tbanker = grc20.NewBanker(\"Foo\", \"FOO\", 4)\n\tbanker.Mint(admin.Owner(), 1000000*10000) // @administrator (1M)\n\ttoken = banker.Token()\n}\n\nfunc TotalSupply() uint64 { return token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(token.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(token.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(token.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(banker.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\tadmin.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(banker.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\tadmin.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(banker.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := banker.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R2kii+qeNnclvL6wltMl02ibLIq1mw2dg9+OqYWT6JFdMGNZYsOVXvAgpHyCqup/Cm3bIBm0fCWWJXyB1TqWCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"foo20","path":"gno.land/r/mikaelvallenet/foo20","files":[{"name":"mvc.gno","body":"// foo20 is a GRC20 token contract where all the GRC20 methods are proxified\n// with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\tadmin *ownable.Ownable\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n\tbanker = grc20.NewBanker(\"Foo\", \"FOO\", 4)\n\tbanker.Mint(admin.Owner(), 1000000*10000) // @administrator (1M)\n\ttoken = banker.Token()\n}\n\nfunc TotalSupply() uint64 { return token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(token.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(token.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(token.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(banker.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\tadmin.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(banker.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\tadmin.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(banker.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := banker.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5nK33YY19UJTJEswA1524nOzgaCpM43N7gXC/xQXqMKvaAyJwtStQWk5IovyBfHIkrT8jC8Kz+3xIzLL7fIgDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J2JH7c1vtmmJTAa/uNHjzIdlE6e/iDBa5ymALdUNN6sbvyECwzi73KPqyLJY6C0TriYIGJzx4rw+7geuOOBpCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J2JH7c1vtmmJTAa/uNHjzIdlE6e/iDBa5ymALdUNN6sbvyECwzi73KPqyLJY6C0TriYIGJzx4rw+7geuOOBpCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J2JH7c1vtmmJTAa/uNHjzIdlE6e/iDBa5ymALdUNN6sbvyECwzi73KPqyLJY6C0TriYIGJzx4rw+7geuOOBpCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J2JH7c1vtmmJTAa/uNHjzIdlE6e/iDBa5ymALdUNN6sbvyECwzi73KPqyLJY6C0TriYIGJzx4rw+7geuOOBpCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"helloworld","path":"gno.land/r/mikaelvallenet/helloworld","files":[{"name":"helloworld.gno","body":"package helloworld\n\nfunc Render(path string) string {\n\treturn \"Hello, World! 🥳\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G+dc4PBCaMQDnJAyLuM53r/53p+AGVnuAh4LAlX3e03knVV3kI+MiG4uanblWGJI9Q6/+pNBfVEkAEXmSCnNDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issue","path":"gno.land/r/mikaelvallenet/issue","files":[{"name":"issue.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage issue\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"13000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HT04sykUrn2bOZ3VWdU8l0ptjGAmvQDrYP8FQPuy8IaVy2z2qXTJNbxsxWIQMnit3OYYuF6fVjMaxZHsciWyDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issue","path":"gno.land/r/mikaelvallenet/issue","files":[{"name":"issue.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage issue\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bdKHscz6U8STJXcCkbST3xADAVtjsAXZIcNhPanMkf1zO+1XvAguhZlXIJsdYnOlWcVqwFqCEPIdhBhV6CEgBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issuefix","path":"gno.land/r/mikaelvallenet/issuefix","files":[{"name":"issue.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage issuefix\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cbtjc1rUssGgMYhQfxvSn1ctGeg9JyR21J24BBir6KlbAXGnurRO3J+JOPMI5YffLXUC6FjCnge9NSeFtcS8Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issuetwo","path":"gno.land/r/mikaelvallenet/issuetwo","files":[{"name":"issuetwo.gno","body":"package issuetwo\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"13000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ngG9nF5HMIT3gp1t66IkZi40J6XDzU+LZ4qaXSYLZTOTGMH9MjZ0LT09ucXEi5+PQkVEV3VB2KQy9x3i6b6WAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issuetwo","path":"gno.land/r/mikaelvallenet/issuetwo","files":[{"name":"issuetwo.gno","body":"package issuetwo\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tsSJTUHQ8oOU+500/jYHkm4QZkOdd+2hLDOBss85W4dDSh+I7dxlcfOYBWYjEu+CGIZyEmh+8rg/SkEHbMO5AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issuetwo","path":"gno.land/r/mikaelvallenet/issuetwo","files":[{"name":"issuetwo.gno","body":"package issuetwo\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tsSJTUHQ8oOU+500/jYHkm4QZkOdd+2hLDOBss85W4dDSh+I7dxlcfOYBWYjEu+CGIZyEmh+8rg/SkEHbMO5AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"issuetwo","path":"gno.land/r/mikaelvallenet/issuetwo2","files":[{"name":"issuetwo.gno","body":"package issuetwo\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UaH8J+U48TcDzjzZ4JgY5HhhT8ZDwerVU0lhoYIEUSWLXuWGgM49guDC8Ipe2oXOv6yRXZZmAg7SrEooCRc0Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r//mvc","files":[{"name":"package.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EhCD0Xcu/lPd0Vg4yqKR2RBn18Id8QQ9uJPD6ccjD4XVa/Nsm4BqnGD1G/PciQLza+qLHiTaXeyd1J6QVai2BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r//mvc","files":[{"name":"package.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EhCD0Xcu/lPd0Vg4yqKR2RBn18Id8QQ9uJPD6ccjD4XVa/Nsm4BqnGD1G/PciQLza+qLHiTaXeyd1J6QVai2BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvc","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7CH9pyE+a0yMpD80PZVjEorZVcjVPLJL7x4fpKzoBsc5GuIYS5+qYeu07tK2ChXCpoAIps1OtQrYcukLDm7vCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvc","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QTo9CN/V/K2qtR5KZyI7ki18IxlzeSd60UIGQ+nJqUW+cdUczItOFJfoMrhEaF82Gu5YCwZBiwBXUgJZomKiBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvc","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"!\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnJozrA6AU+2VZef5ArkyRudsie+eDkgmY1N35DAu0X903PCg9jNf1MQOaXzim54JrkNIwjKE9zIaGd/Vl+kBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvc","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"13000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HlCpi1AZeGljomgQXeJJqXlXyWnFbYoR0/a+3YQ8GdeOxbV0lz7OQzeaAUf/al+cUFQYi6UzyrkM5cwTj0jfBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvc","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MikaelVallenetCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Fz+PWEDM65lHSpNCbG5WMREH+HIKlrd9Kd0xuy6wvXeijDG3vxyyLX5ZpTSi7p8n4SbSA4LE9GjSxtu8lw3ECw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvcoin","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5nwbqVwo127P5ibBaDaf9obWJBDSvcmi4jt7Hmj2JNOsx49fxFBySPNsRCNke3vdhdMh2e370sybZF3MMvgXAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvcoin","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QkPU5pO8pN2BmZtjpwfwDg7OpL/zanURs8oG+jiBfm5f+NnSKjtS37QdG9dB/dlYzXmSpz7mKpFaO5Ed+QZ8AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"mvc","path":"gno.land/r/mikaelvallenet/mvcoin","files":[{"name":"mvc.gno","body":"package mvc\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker\n\ttoken grc20.Token\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"MVCoin\", \"MVC\", 0)\n\ttoken = banker.Token()\n}\n\nfunc Faucet() string {\n\ttxSender := std.GetOrigCaller()\n\tif err := banker.Mint(txSender, 5); err != nil {\n\t\treturn err.Error()\n\t}\n\treturn \"5 MVC minted to \" + txSender.String() + \"! 🎉\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) != 2 \u0026\u0026 parts[0] != \"balance\" {\n\t\treturn \"Invalid path, try /balance/\u003caddress\u003e\"\n\t}\n\n\taddr := std.Address(parts[1])\n\tbalance := token.BalanceOf(addr)\n\treturn ufmt.Sprintf(\"Balance of %s: %d\", addr.String(), balance)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QkPU5pO8pN2BmZtjpwfwDg7OpL/zanURs8oG+jiBfm5f+NnSKjtS37QdG9dB/dlYzXmSpz7mKpFaO5Ed+QZ8AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"path","path":"gno.land/r/mikaelvallenet/path","files":[{"name":"path.gno","body":"package path\n\nfunc Render(path string) string {\n\treturn \"Path is: \" + path + \"\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"13000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YMXsJ96S/mYoXNhGBU5p69h4Yo6HV6fVZ1SAjusGowVflArNc3YwLeM4eGsgz5opF5H2KU7TJKIkYH+/VNbhDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"tar20","path":"gno.land/r/mikaelvallenet/gar20","files":[{"name":"mvc.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage tar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NuJwVcNHGnQfqFKYsjznjdE2I5nAi/b2qoHGE5EB/uk0YwXhZaZIiyYX+hpzy9ZSdKc9Y40toauBVty6S63KAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","package":{"name":"tar20","path":"gno.land/r/mikaelvallenet/tar20","files":[{"name":"mvc.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage tar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tbanker *grc20.Banker // private banker.\n\tToken grc20.Token // public safe-object.\n)\n\nfunc init() {\n\tbanker = grc20.NewBanker(\"Bar\", \"BAR\", 4)\n\tToken = banker.Token()\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := banker.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn banker.RenderHome() // XXX: should be Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"14000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JWFtHSSeiKMNdGP65LfOGabObZN78LYOkCl81KTuupUApuwZUnKggHRJkp+YOtoYP6ZqunvaBgrBA7vvrOv5Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"dao_interfaces","path":"gno.land/p/teritori/dao_interfaces","files":[{"name":"core.gno","body":"package dao_interfaces\n\n// Inspired by DA0-DA0: https://github.com/DA0-DA0/dao-contracts\n\ntype ActivableProposalModule struct {\n\tEnabled bool\n\tModule IProposalModule\n}\n\ntype IDAOCore interface {\n\tRender(path string) string\n\n\tVotingModule() IVotingModule\n\tProposalModules() []ActivableProposalModule\n\tActiveProposalModuleCount() int\n\tRegistry() *MessagesRegistry\n\n\tUpdateVotingModule(newVotingModule IVotingModule)\n\tUpdateProposalModules(toAdd []IProposalModule, toDisable []int)\n}\n"},{"name":"core_testing.gno","body":"package dao_interfaces\n\ntype dummyCore struct{}\n\nfunc NewDummyCore() IDAOCore {\n\treturn \u0026dummyCore{}\n}\n\nfunc (d *dummyCore) Render(path string) string {\n\tpanic(\"not implemented\")\n}\n\nfunc (d *dummyCore) VotingModule() IVotingModule {\n\tpanic(\"not implemented\")\n}\n\nfunc (d *dummyCore) ProposalModules() []ActivableProposalModule {\n\tpanic(\"not implemented\")\n}\n\nfunc (d *dummyCore) ActiveProposalModuleCount() int {\n\tpanic(\"not implemented\")\n}\n\nfunc (d *dummyCore) Registry() *MessagesRegistry {\n\tpanic(\"not implemented\")\n}\n\nfunc (d *dummyCore) UpdateVotingModule(newVotingModule IVotingModule) {\n\tpanic(\"not implemented\")\n}\n\nfunc (d *dummyCore) UpdateProposalModules(toAdd []IProposalModule, toDisable []int) {\n\tpanic(\"not implemented\")\n}\n"},{"name":"messages.gno","body":"package dao_interfaces\n\nimport (\n\t\"gno.land/p/demo/json\"\n)\n\ntype ExecutableMessage interface {\n\tToJSON() *json.Node\n\tFromJSON(ast *json.Node)\n\n\tString() string\n\tType() string\n}\n\ntype MessageHandler interface {\n\tExecute(message ExecutableMessage)\n\tInstantiate() ExecutableMessage\n\tType() string\n}\n\ntype MessageHandlerFactory func(core IDAOCore) MessageHandler\n"},{"name":"messages_registry.gno","body":"package dao_interfaces\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/json\"\n)\n\ntype MessagesRegistry struct {\n\thandlers *avl.Tree\n}\n\nfunc NewMessagesRegistry() *MessagesRegistry {\n\tregistry := \u0026MessagesRegistry{handlers: avl.NewTree()}\n\tregistry.Register(NewRegisterHandlerExecutableMessageHandler(registry))\n\tregistry.Register(NewRemoveHandlerExecutableMessageHandler(registry))\n\treturn registry\n}\n\nfunc (r *MessagesRegistry) Register(handler MessageHandler) {\n\tr.handlers.Set(handler.Type(), handler)\n}\n\nfunc (r *MessagesRegistry) Remove(t string) {\n\tr.handlers.Remove(t)\n}\n\nfunc (r *MessagesRegistry) MessagesFromJSON(slice []*json.Node) []ExecutableMessage {\n\tmsgs := make([]ExecutableMessage, len(slice))\n\tfor i, elem := range slice {\n\t\tmessageType := json.Must(elem.GetKey(\"type\")).MustString()\n\t\tpayload := json.Must(elem.GetKey(\"payload\"))\n\t\th, ok := r.handlers.Get(messageType)\n\t\tif !ok {\n\t\t\tpanic(\"invalid ExecutableMessage: invalid message type\")\n\t\t}\n\n\t\tinstance := h.(MessageHandler).Instantiate()\n\t\tinstance.FromJSON(payload)\n\t\tmsgs[i] = instance\n\t}\n\n\treturn msgs\n}\n\nfunc (r *MessagesRegistry) Execute(msg ExecutableMessage) {\n\th, ok := r.handlers.Get(msg.Type())\n\tif !ok {\n\t\tpanic(\"invalid ExecutableMessage: invalid message type\")\n\t}\n\n\th.(MessageHandler).Execute(msg)\n}\n\nfunc (r *MessagesRegistry) ExecuteMessages(msgs []ExecutableMessage) {\n\tfor _, msg := range msgs {\n\t\tr.Execute(msg)\n\t}\n}\n\nfunc (r *MessagesRegistry) Render() string {\n\tsb := strings.Builder{}\n\tr.handlers.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tsb.WriteString(\"- \")\n\t\tsb.WriteString(value.(MessageHandler).Type())\n\t\tsb.WriteRune('\\n')\n\t\treturn false\n\t})\n\n\treturn sb.String()\n}\n\ntype RegisterHandlerExecutableMessage struct {\n\tHandler MessageHandler\n}\n\nvar _ ExecutableMessage = \u0026RegisterHandlerExecutableMessage{}\n\nfunc (m RegisterHandlerExecutableMessage) Type() string {\n\treturn \"gno.land/p/teritori/dao_interfaces.RegisterHandler\"\n}\n\nfunc (m *RegisterHandlerExecutableMessage) FromJSON(ast *json.Node) {\n\tpanic(\"not implemented\")\n}\n\nfunc (m *RegisterHandlerExecutableMessage) ToJSON() *json.Node {\n\tpanic(\"not implemented\")\n}\n\nfunc (m *RegisterHandlerExecutableMessage) String() string {\n\treturn m.Handler.Type()\n}\n\ntype RegisterHandlerExecutableMessageHandler struct {\n\tregistry *MessagesRegistry\n}\n\nvar _ MessageHandler = \u0026RegisterHandlerExecutableMessageHandler{}\n\nfunc NewRegisterHandlerExecutableMessageHandler(registry *MessagesRegistry) *RegisterHandlerExecutableMessageHandler {\n\treturn \u0026RegisterHandlerExecutableMessageHandler{registry: registry}\n}\n\nfunc (h RegisterHandlerExecutableMessageHandler) Type() string {\n\treturn RegisterHandlerExecutableMessage{}.Type()\n}\n\nfunc (h *RegisterHandlerExecutableMessageHandler) Instantiate() ExecutableMessage {\n\treturn \u0026RegisterHandlerExecutableMessage{}\n}\n\nfunc (h *RegisterHandlerExecutableMessageHandler) Execute(msg ExecutableMessage) {\n\th.registry.Register(msg.(*RegisterHandlerExecutableMessage).Handler)\n}\n\ntype RemoveHandlerExecutableMessage struct {\n\tHandlerType string\n}\n\nvar _ ExecutableMessage = \u0026RemoveHandlerExecutableMessage{}\n\nfunc (m RemoveHandlerExecutableMessage) Type() string {\n\treturn \"gno.land/p/teritori/dao_interfaces.RemoveHandler\"\n}\n\nfunc (m *RemoveHandlerExecutableMessage) FromJSON(ast *json.Node) {\n\tm.HandlerType = ast.MustString()\n}\n\nfunc (m *RemoveHandlerExecutableMessage) ToJSON() *json.Node {\n\treturn json.StringNode(\"\", m.HandlerType)\n}\n\nfunc (m *RemoveHandlerExecutableMessage) String() string {\n\treturn m.HandlerType\n}\n\ntype RemoveHandlerExecutableMessageHandler struct {\n\tregistry *MessagesRegistry\n}\n\nvar _ MessageHandler = \u0026RemoveHandlerExecutableMessageHandler{}\n\nfunc NewRemoveHandlerExecutableMessageHandler(registry *MessagesRegistry) *RemoveHandlerExecutableMessageHandler {\n\treturn \u0026RemoveHandlerExecutableMessageHandler{registry: registry}\n}\n\nfunc (h RemoveHandlerExecutableMessageHandler) Type() string {\n\treturn RemoveHandlerExecutableMessage{}.Type()\n}\n\nfunc (h *RemoveHandlerExecutableMessageHandler) Instantiate() ExecutableMessage {\n\treturn \u0026RemoveHandlerExecutableMessage{}\n}\n\nfunc (h *RemoveHandlerExecutableMessageHandler) Execute(msg ExecutableMessage) {\n\th.registry.Remove(msg.(*RemoveHandlerExecutableMessage).HandlerType)\n}\n"},{"name":"messages_registry_test.gno","body":"package dao_interfaces\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/json\"\n)\n\nfunc TestRegistry(t *testing.T) {\n\tregistry := NewMessagesRegistry()\n\n\tvar value string\n\tmsgHandler := NewCopyMessageHandler(\u0026value)\n\n\t// Test register handler via message\n\tregisterMsg := \u0026RegisterHandlerExecutableMessage{Handler: msgHandler}\n\tregistry.Execute(registerMsg)\n\n\t// Test messages execution\n\tmsgs := registry.MessagesFromJSON(json.Must(json.Unmarshal([]byte(`[{\"type\":\"CopyMessage\",\"payload\":\"Hello\"}]`))).MustArray())\n\tif len(msgs) != 1 {\n\t\tt.Errorf(\"Expected 1 message, got %d\", len(msgs))\n\t}\n\n\tregistry.Execute(msgs[0])\n\tif value != \"Hello\" {\n\t\tt.Errorf(\"Expected value to be 'Hello', got '%s'\", value)\n\t}\n\n\tmsg2 := \u0026CopyMessage{Value: \"World\"}\n\tregistry.Execute(msg2)\n\tif value != \"World\" {\n\t\tt.Errorf(\"Expected value to be 'World', got '%s'\", value)\n\t}\n\n\t// Test handler removal\n\tremoveMsg := \u0026RemoveHandlerExecutableMessage{HandlerType: msgHandler.Type()}\n\tregistry.Execute(removeMsg)\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Expected panic, got none\")\n\t\t\t}\n\t\t}()\n\t\tregistry.Execute(msg2)\n\t}()\n\n\t// Test direct register\n\tregistry.Register(msgHandler)\n\tmsg3 := \u0026CopyMessage{Value: \"!\"}\n\tregistry.Execute(msg3)\n\tif value != \"!\" {\n\t\tt.Errorf(\"Expected value to be '!', got '%s'\", value)\n\t}\n}\n"},{"name":"messages_testing.gno","body":"package dao_interfaces\n\nimport (\n\t\"gno.land/p/demo/json\"\n)\n\ntype CopyMessage struct {\n\tValue string\n}\n\nfunc (m CopyMessage) Type() string {\n\treturn \"CopyMessage\"\n}\n\nfunc (m *CopyMessage) String() string {\n\treturn m.Value\n}\n\nfunc (m *CopyMessage) FromJSON(ast *json.Node) {\n\tm.Value = ast.MustString()\n}\n\nfunc (m *CopyMessage) ToJSON() *json.Node {\n\treturn json.StringNode(\"\", m.Value)\n}\n\ntype CopyMessageHandler struct {\n\tptr *string\n}\n\nfunc NewCopyMessageHandler(ptr *string) *CopyMessageHandler {\n\tif ptr == nil {\n\t\tpanic(\"ptr cannot be nil\")\n\t}\n\n\treturn \u0026CopyMessageHandler{ptr}\n}\n\nfunc (h *CopyMessageHandler) Execute(imsg ExecutableMessage) {\n\tmsg, ok := imsg.(*CopyMessage)\n\tif !ok {\n\t\tpanic(\"Wrong message type\")\n\t}\n\n\t*h.ptr = msg.Value\n}\n\nfunc (h CopyMessageHandler) Type() string {\n\treturn \"CopyMessage\"\n}\n\nfunc (h *CopyMessageHandler) Instantiate() ExecutableMessage {\n\treturn \u0026CopyMessage{}\n}\n"},{"name":"modules.gno","body":"package dao_interfaces\n\nimport (\n\t\"std\"\n)\n\ntype ModuleInfo struct {\n\tKind string\n\tVersion string\n}\n\nfunc (mi ModuleInfo) String() string {\n\treturn mi.Kind + \"@v\" + mi.Version\n}\n\ntype IVotingModule interface {\n\tInfo() ModuleInfo\n\tConfigJSON() string\n\tRender(path string) string\n\tVotingPowerAtHeight(address std.Address, height int64) (power uint64)\n\tTotalPowerAtHeight(height int64) uint64\n}\n\ntype VotingModuleFactory func(core IDAOCore) IVotingModule\n\ntype IProposalModule interface {\n\tCore() IDAOCore\n\tInfo() ModuleInfo\n\tConfigJSON() string\n\tRender(path string) string\n\tExecute(proposalID int)\n\tVoteJSON(proposalID int, voteJSON string)\n\tProposeJSON(proposalJSON string) int\n\tProposalsJSON(limit int, startAfter string, reverse bool) string\n\tProposalJSON(proposalID int) string\n}\n\ntype ProposalModuleFactory func(core IDAOCore) IProposalModule\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1nCrMow28e8J33RbeVb9Q+9GT8NJ09RiOrpry/gczAsIQrkxMCnof5cS4WqN2zD1yDzZtQDT44e0tER7SrFsDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"flags_index","path":"gno.land/p/teritori/flags_index","files":[{"name":"flags_index.gno","body":"package flags_index\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype FlagID string\n\ntype FlagCount struct {\n\tFlagID FlagID\n\tCount uint64\n}\n\ntype FlagsIndex struct {\n\tflagsCounts []*FlagCount // sorted by count descending; TODO: optimize using big brain datastructure\n\tflagsCountsByID *avl.Tree // key: flagID -\u003e FlagCount\n\tflagsByFlaggerID *avl.Tree // key: flaggerID -\u003e *avl.Tree key: flagID -\u003e struct{}\n}\n\nfunc NewFlagsIndex() *FlagsIndex {\n\treturn \u0026FlagsIndex{\n\t\tflagsCountsByID: avl.NewTree(),\n\t\tflagsByFlaggerID: avl.NewTree(),\n\t}\n}\n\nfunc (fi *FlagsIndex) HasFlagged(flagID FlagID, flaggerID string) bool {\n\tif flagsByFlagID, ok := fi.flagsByFlaggerID.Get(flaggerID); ok {\n\t\tif flagsByFlagID.(*avl.Tree).Has(string(flagID)) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (fi *FlagsIndex) GetFlagCount(flagID FlagID) uint64 {\n\tif flagCount, ok := fi.flagsCountsByID.Get(string(flagID)); ok {\n\t\treturn flagCount.(*FlagCount).Count\n\t}\n\treturn 0\n}\n\nfunc (fi *FlagsIndex) GetFlags(limit uint64, offset uint64) []*FlagCount {\n\tif limit == 0 {\n\t\treturn nil\n\t}\n\tif offset \u003e= uint64(len(fi.flagsCounts)) {\n\t\treturn nil\n\t}\n\tif offset+limit \u003e uint64(len(fi.flagsCounts)) {\n\t\tlimit = uint64(len(fi.flagsCounts)) - offset\n\t}\n\treturn fi.flagsCounts[offset : offset+limit]\n}\n\nfunc (fi *FlagsIndex) Flag(flagID FlagID, flaggerID string) {\n\t// update flagsByFlaggerID\n\tvar flagsByFlagID *avl.Tree\n\tif existingFlagsByFlagID, ok := fi.flagsByFlaggerID.Get(flaggerID); ok {\n\t\tflagsByFlagID = existingFlagsByFlagID.(*avl.Tree)\n\t\tif flagsByFlagID.Has(string(flagID)) {\n\t\t\tpanic(\"already flagged\")\n\t\t}\n\t} else {\n\t\tnewFlagsByFlagID := avl.NewTree()\n\t\tfi.flagsByFlaggerID.Set(flaggerID, newFlagsByFlagID)\n\t\tflagsByFlagID = newFlagsByFlagID\n\t}\n\tflagsByFlagID.Set(string(flagID), struct{}{})\n\n\t// update flagsCountsByID and flagsCounts\n\tiFlagCount, ok := fi.flagsCountsByID.Get(string(flagID))\n\tif !ok {\n\t\tflagCount := \u0026FlagCount{FlagID: flagID, Count: 1}\n\t\tfi.flagsCountsByID.Set(string(flagID), flagCount)\n\t\tfi.flagsCounts = append(fi.flagsCounts, flagCount) // this is valid because 1 will always be the lowest count and we want the newest flags to be last\n\t} else {\n\t\tflagCount := iFlagCount.(*FlagCount)\n\t\tflagCount.Count++\n\t\t// move flagCount to correct position in flagsCounts\n\t\tfor i := len(fi.flagsCounts) - 1; i \u003e 0; i-- {\n\t\t\tif fi.flagsCounts[i].Count \u003e fi.flagsCounts[i-1].Count {\n\t\t\t\tfi.flagsCounts[i], fi.flagsCounts[i-1] = fi.flagsCounts[i-1], fi.flagsCounts[i]\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (fi *FlagsIndex) ClearFlagCount(flagID FlagID) {\n\t// find flagCount in byID\n\tif !fi.flagsCountsByID.Has(string(flagID)) {\n\t\t// panic(\"flag ID not found\") // why did you need this?\n\t\treturn\n\t}\n\n\t// remove from byID\n\tfi.flagsCountsByID.Remove(string(flagID))\n\n\t// remove from byCount, we need to recreate the slice since splicing is broken\n\tnewByCount := []*FlagCount{}\n\tfor i := range fi.flagsCounts {\n\t\tif fi.flagsCounts[i].FlagID == flagID {\n\t\t\tcontinue\n\t\t}\n\t\tnewByCount = append(newByCount, fi.flagsCounts[i])\n\t}\n\tfi.flagsCounts = newByCount\n\n\t// update flagsByFlaggerID\n\tvar empty []string\n\tfi.flagsByFlaggerID.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tt := value.(*avl.Tree)\n\t\tt.Remove(string(flagID))\n\t\tif t.Size() == 0 {\n\t\t\tempty = append(empty, key)\n\t\t}\n\t\treturn false\n\t})\n\tfor _, key := range empty {\n\t\tfi.flagsByFlaggerID.Remove(key)\n\t}\n}\n\nfunc (fi *FlagsIndex) Dump() string {\n\tstr := \"\"\n\n\tstr += \"## flagsCounts:\\n\"\n\tfor i := range fi.flagsCounts {\n\t\tstr += \"- \"\n\t\tif fi.flagsCounts[i] == nil {\n\t\t\tstr += \"nil (\" + strconv.Itoa(i) + \")\\n\"\n\t\t\tcontinue\n\t\t}\n\t\tstr += string(fi.flagsCounts[i].FlagID) + \" \" + strconv.FormatUint(fi.flagsCounts[i].Count, 10) + \"\\n\"\n\t}\n\n\tstr += \"\\n## flagsCountsByID:\\n\"\n\tfi.flagsCountsByID.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tstr += \"- \"\n\t\tif value == nil {\n\t\t\tstr += \"nil (\" + key + \")\\n\"\n\t\t\treturn false\n\t\t}\n\t\tstr += key + \": \" + string(value.(*FlagCount).FlagID) + \" \" + strconv.FormatUint(value.(*FlagCount).Count, 10) + \"\\n\"\n\t\treturn false\n\t})\n\n\tstr += \"\\n## flagsByFlaggerID:\\n\"\n\tfi.flagsByFlaggerID.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tstr += \"- \" + key + \":\\n\"\n\t\tvalue.(*avl.Tree).Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \" - \" + key + \"\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn false\n\t})\n\n\treturn str\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eEZy400xI3rORdMK95CnaEKNlxY/Lpo1/mrQfX7mcZYJFrzOXRlQbRdBNnoIw8NamjfyrF5nM354VjS16DwzDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"jsonutil","path":"gno.land/p/teritori/jsonutil","files":[{"name":"jsonutil.gno","body":"package jsonutil\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/json\"\n)\n\nfunc UnionNode(variant string, value *json.Node) *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\tvariant: value,\n\t})\n}\n\nfunc MustUnion(value *json.Node) (string, *json.Node) {\n\tobj := value.MustObject()\n\tfor key, value := range obj {\n\t\treturn key, value\n\t}\n\n\tpanic(\"no variant in union\")\n}\n\nfunc TimeNode(value time.Time) *json.Node {\n\tj, err := value.MarshalJSON()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn json.StringNode(\"\", string(j[1:len(j)-1]))\n}\n\nfunc MustTime(value *json.Node) time.Time {\n\tt := time.Time{}\n\terr := t.UnmarshalJSON([]byte(value.String()))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn t\n}\n\nfunc DurationNode(value time.Duration) *json.Node {\n\treturn Int64Node(value.Nanoseconds())\n}\n\nfunc MustDurationSeconds(value *json.Node) time.Duration {\n\treturn time.Duration(MustInt64(value)) * time.Second\n}\n\nfunc EmptyObjectNode() *json.Node {\n\treturn json.ObjectNode(\"\", nil)\n}\n\n// int is always 64 bits in gno so we need a string to represent it without loss of precision in a lot of javascript environment, I wish bigint in json was more widely supported\nfunc IntNode(value int) *json.Node {\n\treturn json.StringNode(\"\", strconv.Itoa(value))\n}\n\nfunc MustInt(value *json.Node) int {\n\ti, err := strconv.Atoi(value.MustString())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn i\n}\n\nfunc Uint32Node(value uint32) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatUint(uint64(value), 10))\n}\n\nfunc MustUint32(value *json.Node) uint32 {\n\treturn uint32(MustInt(value))\n}\n\nfunc Int64Node(value int64) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatInt(value, 10))\n}\n\nfunc MustInt64(value *json.Node) int64 {\n\treturn int64(MustInt(value))\n}\n\nfunc Uint64Node(value uint64) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatUint(value, 10))\n}\n\nfunc MustUint64(value *json.Node) uint64 {\n\treturn uint64(MustInt(value)) // FIXME: full uint64 range support (currently limited to [-2^63, 2^63-1])\n}\n\nfunc Uint8Node(value uint8) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatUint(uint64(value), 10))\n}\n\nfunc MustUint8(value *json.Node) uint8 {\n\treturn uint8(MustInt(value))\n}\n\nfunc AVLTreeNode(root *avl.Tree, transform func(elem interface{}) *json.Node) *json.Node {\n\tif root == nil {\n\t\treturn EmptyObjectNode()\n\t}\n\n\tfields := make(map[string]*json.Node)\n\troot.Iterate(\"\", \"\", func(key string, val interface{}) bool {\n\t\tfields[key] = transform(val)\n\t\treturn false\n\t})\n\n\treturn json.ObjectNode(\"\", fields)\n}\n\nfunc AddressNode(addr std.Address) *json.Node {\n\treturn json.StringNode(\"\", addr.String())\n}\n\nfunc MustAddress(value *json.Node) std.Address {\n\taddr := std.Address(value.MustString())\n\tif !addr.IsValid() {\n\t\tpanic(\"invalid address\")\n\t}\n\n\treturn addr\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4YiOkf0ZBPT/6CfbW1evEFH70K+K8ta+XaxRucE+KVbSiTdlbV7xX2UCTJ88y0Wn9PIgha6fNsmWKbNLiWobBw=="}],"memo":""},"metadata":{"timestamp":"1733475355"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"jsonutil","path":"gno.land/p/teritori/jsonutil","files":[{"name":"jsonutil.gno","body":"package jsonutil\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/users\"\n\trusers \"gno.land/r/demo/users\"\n)\n\nfunc UnionNode(variant string, value *json.Node) *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\tvariant: value,\n\t})\n}\n\nfunc MustUnion(value *json.Node) (string, *json.Node) {\n\tobj := value.MustObject()\n\tfor key, value := range obj {\n\t\treturn key, value\n\t}\n\n\tpanic(\"no variant in union\")\n}\n\nfunc TimeNode(value time.Time) *json.Node {\n\tj, err := value.MarshalJSON()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn json.StringNode(\"\", string(j[1:len(j)-1]))\n}\n\nfunc MustTime(value *json.Node) time.Time {\n\tt := time.Time{}\n\terr := t.UnmarshalJSON([]byte(value.String()))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn t\n}\n\nfunc DurationNode(value time.Duration) *json.Node {\n\treturn Int64Node(value.Nanoseconds())\n}\n\nfunc MustDurationSeconds(value *json.Node) time.Duration {\n\treturn time.Duration(MustInt64(value)) * time.Second\n}\n\nfunc EmptyObjectNode() *json.Node {\n\treturn json.ObjectNode(\"\", nil)\n}\n\n// int is always 64 bits in gno so we need a string to represent it without loss of precision in a lot of javascript environment, I wish bigint in json was more widely supported\nfunc IntNode(value int) *json.Node {\n\treturn json.StringNode(\"\", strconv.Itoa(value))\n}\n\nfunc MustInt(value *json.Node) int {\n\ti, err := strconv.Atoi(value.MustString())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn i\n}\n\nfunc Uint32Node(value uint32) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatUint(uint64(value), 10))\n}\n\nfunc MustUint32(value *json.Node) uint32 {\n\treturn uint32(MustInt(value))\n}\n\nfunc Int64Node(value int64) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatInt(value, 10))\n}\n\nfunc MustInt64(value *json.Node) int64 {\n\treturn int64(MustInt(value))\n}\n\nfunc Uint64Node(value uint64) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatUint(value, 10))\n}\n\nfunc MustUint64(value *json.Node) uint64 {\n\treturn uint64(MustInt(value)) // FIXME: full uint64 range support (currently limited to [-2^63, 2^63-1])\n}\n\nfunc Uint8Node(value uint8) *json.Node {\n\treturn json.StringNode(\"\", strconv.FormatUint(uint64(value), 10))\n}\n\nfunc MustUint8(value *json.Node) uint8 {\n\treturn uint8(MustInt(value))\n}\n\nfunc AVLTreeNode(root *avl.Tree, transform func(elem interface{}) *json.Node) *json.Node {\n\tif root == nil {\n\t\treturn EmptyObjectNode()\n\t}\n\n\tfields := make(map[string]*json.Node)\n\troot.Iterate(\"\", \"\", func(key string, val interface{}) bool {\n\t\tfields[key] = transform(val)\n\t\treturn false\n\t})\n\n\treturn json.ObjectNode(\"\", fields)\n}\n\nfunc AddressNode(addr std.Address) *json.Node {\n\treturn json.StringNode(\"\", addr.String())\n}\n\nfunc MustAddress(value *json.Node) std.Address {\n\taddr := std.Address(value.MustString())\n\tif !addr.IsValid() {\n\t\tpanic(\"invalid address\")\n\t}\n\n\treturn addr\n}\n\nfunc AddressOrNameNode(aon users.AddressOrName) *json.Node {\n\treturn json.StringNode(\"\", string(aon))\n}\n\nfunc MustAddressOrName(value *json.Node) users.AddressOrName {\n\taon := users.AddressOrName(value.MustString())\n\taddress := rusers.Resolve(aon)\n\tif !address.IsValid() {\n\t\tpanic(\"invalid address or name\")\n\t}\n\n\treturn aon\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LDYPuBM0oyBiiQ7kpr8KcaUlokJ9SRsNJgt17p9zXsWP5/+7iQhXx92bh6vkCESA5Q+FHxE8N+bF15P3H/HvCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"social_feeds","path":"gno.land/r/teritori/social_feeds","files":[{"name":"binutils_extra.gno","body":"package social_feeds\n\nimport (\n\t\"encoding/binary\"\n)\n\nfunc EncodeLengthPrefixedStringUint32BE(s string) []byte {\n\tb := make([]byte, 4+len(s))\n\tbinary.BigEndian.PutUint32(b, uint32(len(s)))\n\tcopy(b[4:], s)\n\treturn b\n}\n"},{"name":"feed.gno","body":"package social_feeds\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/teritori/flags_index\"\n\tujson \"gno.land/p/teritori/ujson\"\n)\n\ntype FeedID uint64\n\nfunc (fid FeedID) String() string {\n\treturn strconv.Itoa(int(fid))\n}\n\nfunc (fid *FeedID) FromJSON(ast *ujson.JSONASTNode) {\n\tval, err := strconv.Atoi(ast.Value)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t*fid = FeedID(val)\n}\n\nfunc (fid FeedID) ToJSON() string {\n\treturn strconv.Itoa(int(fid))\n}\n\ntype Feed struct {\n\tid FeedID\n\turl string\n\tname string\n\tcreator std.Address\n\towner std.Address\n\tposts avl.Tree // pidkey -\u003e *Post\n\tcreatedAt int64\n\n\tflags *flags_index.FlagsIndex\n\thiddenPostsByUser avl.Tree // std.Address =\u003e *avl.Tree (postID =\u003e bool)\n\n\tpostsCtr uint64\n}\n\nfunc newFeed(fid FeedID, url string, name string, creator std.Address) *Feed {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid feed name: \" + name)\n\t}\n\n\tif gFeedsByName.Has(name) {\n\t\tpanic(\"feed already exists: \" + name)\n\t}\n\n\treturn \u0026Feed{\n\t\tid: fid,\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\towner: creator,\n\t\tposts: avl.Tree{},\n\t\tcreatedAt: time.Now().Unix(),\n\t\tflags: flags_index.NewFlagsIndex(),\n\t\tpostsCtr: 0,\n\t}\n}\n\nfunc (feed *Feed) incGetPostID() PostID {\n\tfeed.postsCtr++\n\treturn PostID(feed.postsCtr)\n}\n\nfunc (feed *Feed) GetPost(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\tpost_, exists := feed.posts.Get(pidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn post_.(*Post)\n}\n\nfunc (feed *Feed) MustGetPost(pid PostID) *Post {\n\tpost := feed.GetPost(pid)\n\tif post == nil {\n\t\tpanic(\"post does not exist\")\n\t}\n\treturn post\n}\n\nfunc (feed *Feed) AddPost(creator std.Address, parentID PostID, category uint64, metadata string) *Post {\n\tpid := feed.incGetPostID()\n\tpidkey := postIDKey(pid)\n\n\tpost := newPost(feed, pid, creator, parentID, category, metadata)\n\tfeed.posts.Set(pidkey, post)\n\n\t// If post is a comment then increase the comment count on parent\n\tif uint64(parentID) != 0 {\n\t\tparent := feed.MustGetPost(parentID)\n\t\tparent.commentsCount += 1\n\t}\n\n\treturn post\n}\n\nfunc (feed *Feed) FlagPost(flagBy std.Address, pid PostID) {\n\tflagID := getFlagID(feed.id, pid)\n\n\tif feed.flags.HasFlagged(flagID, flagBy.String()) {\n\t\tpanic(\"already flagged\")\n\t}\n\n\tfeed.flags.Flag(flagID, flagBy.String())\n}\n\nfunc (feed *Feed) BanPost(pid PostID) {\n\tpidkey := postIDKey(pid)\n\t_, removed := feed.posts.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"post does not exist with id \" + pid.String())\n\t}\n}\n\nfunc (feed *Feed) HidePostForUser(caller std.Address, pid PostID) {\n\tuserAddr := caller.String()\n\n\tvalue, exists := feed.hiddenPostsByUser.Get(userAddr)\n\tvar hiddenPosts *avl.Tree\n\tif exists {\n\t\thiddenPosts = value.(*avl.Tree)\n\t} else {\n\t\thiddenPosts = avl.NewTree()\n\t\tfeed.hiddenPostsByUser.Set(userAddr, hiddenPosts)\n\t}\n\n\tif hiddenPosts.Has(pid.String()) {\n\t\tpanic(\"PostID is already hidden: \" + pid.String())\n\t}\n\n\thiddenPosts.Set(pid.String(), true)\n}\n\nfunc (feed *Feed) UnHidePostForUser(userAddress std.Address, pid PostID) {\n\tvalue, exists := feed.hiddenPostsByUser.Get(userAddress.String())\n\tvar hiddenPosts *avl.Tree\n\tif exists {\n\t\thiddenPosts = value.(*avl.Tree)\n\t\t_, removed := hiddenPosts.Remove(pid.String())\n\t\tif !removed {\n\t\t\tpanic(\"Post is not hidden: \" + pid.String())\n\t\t}\n\t} else {\n\t\tpanic(\"User has not hidden post: \" + pid.String())\n\t}\n}\n\nfunc (feed *Feed) Render() string {\n\tpkgpath := std.CurrentRealm().PkgPath()\n\n\tstr := \"\"\n\tstr += ufmt.Sprintf(\"Feed: %s (ID: %s) - Owner: %s\", feed.name, feed.id, feed.owner)\n\tstr += \"\\n\\n There are \" + intToString(feed.posts.Size()) + \" post(s) \\n\\n\"\n\n\tif feed.posts.Size() \u003e 0 {\n\t\tfeed.posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tif str != \"\" {\n\t\t\t\tstr += \"\\n\"\n\t\t\t}\n\n\t\t\tpost := value.(*Post)\n\t\t\tpostUrl := strings.Replace(pkgpath, \"gno.land\", \"\", -1) + \":\" + feed.name + \"/\" + post.id.String()\n\n\t\t\tstr += \" * [\" +\n\t\t\t\t\"PostID: \" + post.id.String() +\n\t\t\t\t\" - \" + intToString(post.reactions.Size()) + \" reactions \" +\n\t\t\t\t\" - \" + ufmt.Sprintf(\"%d\", post.tipAmount) + \" tip amount\" +\n\t\t\t\t\"]\" +\n\t\t\t\t\"(\" + postUrl + \")\" +\n\t\t\t\t\"\\n\"\n\t\t\treturn false\n\t\t})\n\n\t\tstr += \"-------------------------\\n\"\n\t\tstr += feed.flags.Dump()\n\t}\n\n\tstr += \"---------------------------------------\\n\"\n\tif feed.hiddenPostsByUser.Size() \u003e 0 {\n\t\tstr += \"Hidden posts by users:\\n\\n\"\n\n\t\tfeed.hiddenPostsByUser.Iterate(\"\", \"\", func(userAddr string, value interface{}) bool {\n\t\t\thiddenPosts := value.(*avl.Tree)\n\t\t\tstr += \"\\nUser address: \" + userAddr + \"\\n\"\n\n\t\t\thiddenPosts.Iterate(\"\", \"\", func(pid string, value interface{}) bool {\n\t\t\t\tstr += \"- PostID: \" + pid + \"\\n\"\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\treturn false\n\t\t})\n\t}\n\n\treturn str\n}\n\nfunc (feed *Feed) ToJSON() string {\n\tposts := []ujson.FormatKV{}\n\tfeed.posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tposts = append(posts, ujson.FormatKV{\n\t\t\tKey: key,\n\t\t\tValue: value.(*Post),\n\t\t})\n\t\treturn false\n\t})\n\tfeedJSON := ujson.FormatObject([]ujson.FormatKV{\n\t\t{Key: \"id\", Value: uint64(feed.id)},\n\t\t{Key: \"url\", Value: feed.url},\n\t\t{Key: \"name\", Value: feed.name},\n\t\t{Key: \"creator\", Value: feed.creator},\n\t\t{Key: \"owner\", Value: feed.owner},\n\t\t{Key: \"posts\", Value: ujson.FormatObject(posts), Raw: true},\n\t\t{Key: \"createdAt\", Value: feed.createdAt},\n\t\t{Key: \"postsCtr\", Value: feed.postsCtr},\n\t\t// TODO: convert flags, hiddenPostsByUser\n\t\t// {Key: \"flags\", Value: feed.flags},\n\t\t// {Key: \"hiddenPostsByUser\", Value: feed.hiddenPostsByUser},\n\t})\n\treturn feedJSON\n}\n\nfunc (feed *Feed) FromJSON(jsonData string) {\n\tast := ujson.TokenizeAndParse(jsonData)\n\tast.ParseObject([]*ujson.ParseKV{\n\t\t{Key: \"id\", CustomParser: func(node *ujson.JSONASTNode) {\n\t\t\tfid, _ := strconv.Atoi(node.Value)\n\t\t\tfeed.id = FeedID(fid)\n\t\t}},\n\t\t{Key: \"url\", Value: \u0026feed.url},\n\t\t{Key: \"name\", Value: \u0026feed.name},\n\t\t{Key: \"creator\", Value: \u0026feed.creator},\n\t\t{Key: \"owner\", Value: \u0026feed.owner},\n\t\t{Key: \"posts\", CustomParser: func(node *ujson.JSONASTNode) {\n\t\t\tposts := avl.NewTree()\n\t\t\tfor _, child := range node.ObjectChildren {\n\t\t\t\tpostNode := child.Value\n\n\t\t\t\tpost := Post{}\n\t\t\t\tpost.FromJSON(postNode.String())\n\t\t\t\tposts.Set(child.Key, \u0026post)\n\t\t\t}\n\t\t\tfeed.posts = *posts\n\t\t}},\n\t\t{Key: \"createdAt\", Value: \u0026feed.createdAt},\n\t\t{Key: \"postsCtr\", Value: \u0026feed.postsCtr},\n\t})\n}\n"},{"name":"feeds.gno","body":"package social_feeds\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgFeeds avl.Tree // id -\u003e *Feed\n\tgFeedsCtr int // increments Feed.id\n\tgFeedsByName avl.Tree // name -\u003e *Feed\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"feeds_test.gno","body":"package social_feeds\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\tujson \"gno.land/p/teritori/ujson\"\n)\n\nvar (\n\trootPostID = PostID(0)\n\tpostID1 = PostID(1)\n\tfeedID1 = FeedID(1)\n\tcat1 = uint64(1)\n\tcat2 = uint64(2)\n\tuser = testutils.TestAddress(\"user\")\n\tfilter_all = []uint64{}\n)\n\nfunc getFeed1() *Feed {\n\treturn mustGetFeed(feedID1)\n}\n\nfunc getPost1() *Post {\n\tfeed1 := getFeed1()\n\tpost1 := feed1.MustGetPost(postID1)\n\treturn post1\n}\n\nfunc testCreateFeed(t *testing.T) {\n\tfeedID := CreateFeed(\"teritori1\")\n\tfeed := mustGetFeed(feedID)\n\n\tif feedID != 1 {\n\t\tt.Fatalf(\"expected feedID: 1, got %q.\", feedID)\n\t}\n\n\tif feed.name != \"teritori1\" {\n\t\tt.Fatalf(\"expected feedName: teritori1, got %q.\", feed.name)\n\t}\n}\n\nfunc testCreatePost(t *testing.T) {\n\tmetadata := `{\"gifs\": [], \"files\": [], \"title\": \"\", \"message\": \"testouille\", \"hashtags\": [], \"mentions\": [], \"createdAt\": \"2023-03-29T12:19:04.858Z\", \"updatedAt\": \"2023-03-29T12:19:04.858Z\"}`\n\tpostID := CreatePost(feedID1, rootPostID, cat1, metadata)\n\tfeed := mustGetFeed(feedID1)\n\tpost := feed.MustGetPost(postID)\n\n\tif postID != 1 {\n\t\tt.Fatalf(\"expected postID: 1, got %q.\", postID)\n\t}\n\n\tif post.category != cat1 {\n\t\tt.Fatalf(\"expected categoryID: %q, got %q.\", cat1, post.category)\n\t}\n}\n\nfunc toPostIDsStr(posts []*Post) string {\n\tvar postIDs []string\n\tfor _, post := range posts {\n\t\tpostIDs = append(postIDs, post.id.String())\n\t}\n\n\tpostIDsStr := strings.Join(postIDs, \",\")\n\treturn postIDsStr\n}\n\nfunc testGetPosts(t *testing.T) {\n\tuser := std.Address(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tfeedID := CreateFeed(\"teritori10\")\n\tfeed := mustGetFeed(feedID)\n\n\tCreatePost(feedID, rootPostID, cat1, \"post1\")\n\tCreatePost(feedID, rootPostID, cat1, \"post2\")\n\tCreatePost(feedID, rootPostID, cat1, \"post3\")\n\tCreatePost(feedID, rootPostID, cat1, \"post4\")\n\tCreatePost(feedID, rootPostID, cat1, \"post5\")\n\tpostIDToFlagged := CreatePost(feedID, rootPostID, cat1, \"post6\")\n\tpostIDToHide := CreatePost(feedID, rootPostID, cat1, \"post7\")\n\tCreatePost(feedID, rootPostID, cat1, \"post8\")\n\n\tvar posts []*Post\n\tvar postIDsStr string\n\n\t// Query last 3 posts\n\tposts = getPosts(feed, 0, \"\", \"\", []uint64{}, 0, 3)\n\tpostIDsStr = toPostIDsStr(posts)\n\n\tif postIDsStr != \"8,7,6\" {\n\t\tt.Fatalf(\"expected posts order: 8,7,6. Got: %s\", postIDsStr)\n\t}\n\n\t// Query page 2\n\tposts = getPosts(feed, 0, \"\", \"\", []uint64{}, 3, 3)\n\tpostIDsStr = toPostIDsStr(posts)\n\tif postIDsStr != \"5,4,3\" {\n\t\tt.Fatalf(\"expected posts order: 5,4,3. Got: %s\", postIDsStr)\n\t}\n\n\t// Exclude hidden post\n\tHidePostForMe(feed.id, postIDToHide)\n\n\tposts = getPosts(feed, 0, user.String(), \"\", []uint64{}, 0, 3)\n\tpostIDsStr = toPostIDsStr(posts)\n\n\tif postIDsStr != \"8,6,5\" {\n\t\tt.Fatalf(\"expected posts order: 8,6,5. Got: %s\", postIDsStr)\n\t}\n\n\t// Exclude flagged post\n\tFlagPost(feed.id, postIDToFlagged)\n\n\tposts = getPosts(feed, 0, user.String(), \"\", []uint64{}, 0, 3)\n\tpostIDsStr = toPostIDsStr(posts)\n\n\tif postIDsStr != \"8,5,4\" {\n\t\tt.Fatalf(\"expected posts order: 8,5,4. Got: %s\", postIDsStr)\n\t}\n\n\t// Pagination with hidden/flagged posts\n\tposts = getPosts(feed, 0, user.String(), \"\", []uint64{}, 3, 3)\n\tpostIDsStr = toPostIDsStr(posts)\n\n\tif postIDsStr != \"3,2,1\" {\n\t\tt.Fatalf(\"expected posts order: 3,2,1. Got: %s\", postIDsStr)\n\t}\n\n\t// Query out of range\n\tposts = getPosts(feed, 0, user.String(), \"\", []uint64{}, 6, 3)\n\tpostIDsStr = toPostIDsStr(posts)\n\n\tif postIDsStr != \"\" {\n\t\tt.Fatalf(\"expected posts order: ''. Got: %s\", postIDsStr)\n\t}\n}\n\nfunc testReactPost(t *testing.T) {\n\tfeed := getFeed1()\n\tpost := getPost1()\n\n\ticon := \"🥰\"\n\tReactPost(feed.id, post.id, icon, true)\n\n\t// Set reaction\n\treactionCount_, ok := post.reactions.Get(\"🥰\")\n\tif !ok {\n\t\tt.Fatalf(\"expected 🥰 exists\")\n\t}\n\n\treactionCount := reactionCount_.(int)\n\tif reactionCount != 1 {\n\t\tt.Fatalf(\"expected reactionCount: 1, got %q.\", reactionCount)\n\t}\n\n\t// Unset reaction\n\tReactPost(feed.id, post.id, icon, false)\n\t_, exist := post.reactions.Get(\"🥰\")\n\tif exist {\n\t\tt.Fatalf(\"expected 🥰 not exist\")\n\t}\n}\n\nfunc testCreateAndDeleteComment(t *testing.T) {\n\tfeed1 := getFeed1()\n\tpost1 := getPost1()\n\n\tmetadata := `empty_meta_data`\n\n\tcommentID1 := CreatePost(feed1.id, post1.id, cat1, metadata)\n\tcommentID2 := CreatePost(feed1.id, post1.id, cat1, metadata)\n\tcomment2 := feed1.MustGetPost(commentID2)\n\n\tif comment2.id != 3 { // 1 post + 2 comments = 3\n\t\tt.Fatalf(\"expected comment postID: 3, got %q.\", comment2.id)\n\t}\n\n\tif comment2.parentID != post1.id {\n\t\tt.Fatalf(\"expected comment parentID: %q, got %q.\", post1.id, comment2.parentID)\n\t}\n\n\t// Check comment count on parent\n\tif post1.commentsCount != 2 {\n\t\tt.Fatalf(\"expected comments count: 2, got %d.\", post1.commentsCount)\n\t}\n\n\t// Get comments\n\tcomments := GetComments(feed1.id, post1.id, 0, 10)\n\tcommentsParsed := ujson.ParseSlice(comments)\n\n\tif len(commentsParsed) != 2 {\n\t\tt.Fatalf(\"expected encoded comments: 2, got %q.\", commentsParsed)\n\t}\n\n\t// Delete 1 comment\n\tDeletePost(feed1.id, comment2.id)\n\tcomments = GetComments(feed1.id, post1.id, 0, 10)\n\tcommentsParsed = ujson.ParseSlice(comments)\n\n\tif len(commentsParsed) != 1 {\n\t\tt.Fatalf(\"expected encoded comments: 1, got %q.\", commentsParsed)\n\t}\n\n\t// Check comment count on parent\n\tif post1.commentsCount != 1 {\n\t\tt.Fatalf(\"expected comments count: 1, got %d.\", post1.commentsCount)\n\t}\n}\n\nfunc countPosts(feedID FeedID, categories []uint64, limit uint8) int {\n\toffset := uint64(0)\n\n\tpostsStr := GetPosts(feedID, 0, \"\", categories, offset, limit)\n\tif postsStr == \"[]\" {\n\t\treturn 0\n\t}\n\n\tparsedPosts := ujson.ParseSlice(postsStr)\n\tpostsCount := len(parsedPosts)\n\treturn postsCount\n}\n\nfunc countPostsByUser(feedID FeedID, user string) int {\n\toffset := uint64(0)\n\tlimit := uint8(10)\n\n\tpostsStr := GetPosts(feedID, 0, user, []uint64{}, offset, limit)\n\tif postsStr == \"[]\" {\n\t\treturn 0\n\t}\n\n\tparsedPosts := ujson.ParseSlice(postsStr)\n\tpostsCount := len(parsedPosts)\n\treturn postsCount\n}\n\nfunc testFilterByCategories(t *testing.T) {\n\t// // Re-add reaction to test post list\n\t// ReactPost(1, postID, \"🥰\", true)\n\t// ReactPost(1, postID, \"😇\", true)\n\n\tfilter_cat1 := []uint64{1}\n\tfilter_cat1_2 := []uint64{1, 2}\n\tfilter_cat9 := []uint64{9}\n\tfilter_cat1_2_9 := []uint64{1, 2, 9}\n\n\tfeedID2 := CreateFeed(\"teritori2\")\n\tfeed2 := mustGetFeed(feedID2)\n\n\t// Create 2 posts on root with cat1\n\tpostID1 := CreatePost(feed2.id, rootPostID, cat1, \"metadata\")\n\tpostID2 := CreatePost(feed2.id, rootPostID, cat1, \"metadata\")\n\n\t// Create 1 posts on root with cat2\n\tpostID3 := CreatePost(feed2.id, rootPostID, cat2, \"metadata\")\n\n\t// Create comments on post 1\n\tcommentPostID1 := CreatePost(feed2.id, postID1, cat1, \"metadata\")\n\n\t// cat1: Should return max = limit\n\tif count := countPosts(feed2.id, filter_cat1, 1); count != 1 {\n\t\tt.Fatalf(\"expected posts count: 1, got %q.\", count)\n\t}\n\n\t// cat1: Should return max = total\n\tif count := countPosts(feed2.id, filter_cat1, 10); count != 2 {\n\t\tt.Fatalf(\"expected posts count: 2, got %q.\", count)\n\t}\n\n\t// cat 1 + 2: Should return max = limit\n\tif count := countPosts(feed2.id, filter_cat1_2, 2); count != 2 {\n\t\tt.Fatalf(\"expected posts count: 2, got %q.\", count)\n\t}\n\n\t// cat 1 + 2: Should return max = total on both\n\tif count := countPosts(feed2.id, filter_cat1_2, 10); count != 3 {\n\t\tt.Fatalf(\"expected posts count: 3, got %q.\", count)\n\t}\n\n\t// cat 1, 2, 9: Should return total of 1, 2\n\tif count := countPosts(feed2.id, filter_cat1_2_9, 10); count != 3 {\n\t\tt.Fatalf(\"expected posts count: 3, got %q.\", count)\n\t}\n\n\t// cat 9: Should return 0\n\tif count := countPosts(feed2.id, filter_cat9, 10); count != 0 {\n\t\tt.Fatalf(\"expected posts count: 0, got %q.\", count)\n\t}\n\n\t// cat all: should return all\n\tif count := countPosts(feed2.id, filter_all, 10); count != 3 {\n\t\tt.Fatalf(\"expected posts count: 3, got %q.\", count)\n\t}\n\n\t// add comments should not impact the results\n\tCreatePost(feed2.id, postID1, cat1, \"metadata\")\n\tCreatePost(feed2.id, postID2, cat1, \"metadata\")\n\n\tif count := countPosts(feed2.id, filter_all, 10); count != 3 {\n\t\tt.Fatalf(\"expected posts count: 3, got %q.\", count)\n\t}\n\n\t// delete a post should affect the result\n\tDeletePost(feed2.id, postID1)\n\n\tif count := countPosts(feed2.id, filter_all, 10); count != 2 {\n\t\tt.Fatalf(\"expected posts count: 2, got %q.\", count)\n\t}\n}\n\nfunc testTipPost(t *testing.T) {\n\tcreator := testutils.TestAddress(\"creator\")\n\tstd.TestIssueCoins(creator, std.Coins{{\"ugnot\", 100_000_000}})\n\n\t// NOTE: Dont know why the address should be this to be able to call banker (= std.GetCallerAt(1))\n\ttipper := testutils.TestAddress(\"tipper\")\n\tstd.TestIssueCoins(tipper, std.Coins{{\"ugnot\", 50_000_000}})\n\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\n\t// Check Original coins of creator/tipper\n\tif coins := banker.GetCoins(creator); coins[0].Amount != 100_000_000 {\n\t\tt.Fatalf(\"expected creator coin count: 100_000_000, got %d.\", coins[0].Amount)\n\t}\n\n\tif coins := banker.GetCoins(tipper); coins[0].Amount != 50_000_000 {\n\t\tt.Fatalf(\"expected tipper coin count: 50_000_000, got %d.\", coins[0].Amount)\n\t}\n\n\t// Creator creates feed, post\n\tstd.TestSetOrigCaller(creator)\n\n\tfeedID3 := CreateFeed(\"teritori3\")\n\tfeed3 := mustGetFeed(feedID3)\n\n\tpostID1 := CreatePost(feed3.id, rootPostID, cat1, \"metadata\")\n\tpost1 := feed3.MustGetPost(postID1)\n\n\t// Tiper tips the ppst\n\tstd.TestSetOrigCaller(tipper)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 1_000_000}}, nil)\n\tTipPost(feed3.id, post1.id)\n\n\t// Coin must be increased for creator\n\tif coins := banker.GetCoins(creator); coins[0].Amount != 101_000_000 {\n\t\tt.Fatalf(\"expected creator coin after beging tipped: 101_000_000, got %d.\", coins[0].Amount)\n\t}\n\n\t// Total tip amount should increased\n\tif post1.tipAmount != 1_000_000 {\n\t\tt.Fatalf(\"expected total tipAmount: 1_000_000, got %d.\", post1.tipAmount)\n\t}\n\n\t// Add more tip should update this total\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 2_000_000}}, nil)\n\tTipPost(feed3.id, post1.id)\n\n\tif post1.tipAmount != 3_000_000 {\n\t\tt.Fatalf(\"expected total tipAmount: 3_000_000, got %d.\", post1.tipAmount)\n\t}\n}\n\nfunc testFlagPost(t *testing.T) {\n\tflagger := testutils.TestAddress(\"flagger\")\n\n\tfeedID9 := CreateFeed(\"teritori9\")\n\tfeed9 := mustGetFeed(feedID9)\n\n\tCreatePost(feed9.id, rootPostID, cat1, \"metadata1\")\n\tpid := CreatePost(feed9.id, rootPostID, cat1, \"metadata1\")\n\n\t// Flag post\n\tstd.TestSetOrigCaller(flagger)\n\tFlagPost(feed9.id, pid)\n\n\t// Another user flags\n\tanother := testutils.TestAddress(\"another\")\n\tstd.TestSetOrigCaller(another)\n\tFlagPost(feed9.id, pid)\n\n\tflaggedPostsStr := GetFlaggedPosts(feed9.id, 0, 10)\n\tparsed := ujson.ParseSlice(flaggedPostsStr)\n\tif flaggedPostsCount := len(parsed); flaggedPostsCount != 1 {\n\t\tt.Fatalf(\"expected flagged posts: 1, got %d.\", flaggedPostsCount)\n\t}\n}\n\nfunc testFilterUser(t *testing.T) {\n\tuser1 := testutils.TestAddress(\"user1\")\n\tuser2 := testutils.TestAddress(\"user2\")\n\n\t// User1 create 2 posts\n\tstd.TestSetOrigCaller(user1)\n\n\tfeedID4 := CreateFeed(\"teritori4\")\n\tfeed4 := mustGetFeed(feedID4)\n\n\tCreatePost(feed4.id, rootPostID, cat1, `{\"metadata\": \"value\"}`)\n\tCreatePost(feed4.id, rootPostID, cat1, `{\"metadata2\": \"value\"}`)\n\n\t// User2 create 1 post\n\tstd.TestSetOrigCaller(user2)\n\tCreatePost(feed4.id, rootPostID, cat1, `{\"metadata\": \"value\"}`)\n\n\tif count := countPostsByUser(feed4.id, user1.String()); count != 2 {\n\t\tt.Fatalf(\"expected total posts by user1: 2, got %d.\", count)\n\t}\n\n\tif count := countPostsByUser(feed4.id, user2.String()); count != 1 {\n\t\tt.Fatalf(\"expected total posts by user2: 1, got %d.\", count)\n\t}\n\n\tif count := countPostsByUser(feed4.id, \"\"); count != 3 {\n\t\tt.Fatalf(\"expected total posts: 3, got %d.\", count)\n\t}\n}\n\nfunc testHidePostForMe(t *testing.T) {\n\tuser := std.Address(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tfeedID8 := CreateFeed(\"teritor8\")\n\tfeed8 := mustGetFeed(feedID8)\n\n\tpostIDToHide := CreatePost(feed8.id, rootPostID, cat1, `{\"metadata\": \"value\"}`)\n\tpostID := CreatePost(feed8.id, rootPostID, cat1, `{\"metadata\": \"value\"}`)\n\n\tif count := countPosts(feed8.id, filter_all, 10); count != 2 {\n\t\tt.Fatalf(\"expected posts count: 2, got %q.\", count)\n\t}\n\n\t// Hide a post for me\n\tHidePostForMe(feed8.id, postIDToHide)\n\n\tif count := countPosts(feed8.id, filter_all, 10); count != 1 {\n\t\tt.Fatalf(\"expected posts count after hidding: 1, got %q.\", count)\n\t}\n\n\t// Query from another user should return full list\n\tanother := std.Address(\"another\")\n\tstd.TestSetOrigCaller(another)\n\n\tif count := countPosts(feed8.id, filter_all, 10); count != 2 {\n\t\tt.Fatalf(\"expected posts count from another: 2, got %q.\", count)\n\t}\n\n\t// UnHide a post for me\n\tstd.TestSetOrigCaller(user)\n\tUnHidePostForMe(feed8.id, postIDToHide)\n\n\tif count := countPosts(feed8.id, filter_all, 10); count != 2 {\n\t\tt.Fatalf(\"expected posts count after unhidding: 2, got %q.\", count)\n\t}\n}\n\nfunc testMigrateFeedData(t *testing.T) {\n\tfeedID := CreateFeed(\"teritor11\")\n\n\t// Post to test\n\tpostID := CreatePost(feedID, PostID(0), 2, `{\"metadata\": \"value\"}`)\n\tReactPost(feedID, postID, \"🇬🇸\", true)\n\n\t// Add comment to post\n\tcommentID := CreatePost(feedID, postID, 2, `{\"comment1\": \"value\"}`)\n\tReactPost(feedID, commentID, \"🇬🇸\", true)\n\n\t// // Post with json metadata\n\tCreatePost(feedID, PostID(0), 2, `{'a':1}`)\n\n\t// Expect: should convert feed data to JSON successfully without error\n\tdataJSON := ExportFeedData(feedID)\n\tif dataJSON == \"\" {\n\t\tt.Fatalf(\"expected feed data exported successfully\")\n\t}\n\n\t// Import data =====================================\n\tImportFeedData(FeedID(uint64(feedID)), dataJSON)\n\n\t// Test public func\n\t// MigrateFromPreviousFeed(feedID)\n}\n\nfunc Test(t *testing.T) {\n\ttestCreateFeed(t)\n\n\ttestCreatePost(t)\n\n\ttestGetPosts(t)\n\n\ttestReactPost(t)\n\n\ttestCreateAndDeleteComment(t)\n\n\ttestFilterByCategories(t)\n\n\ttestTipPost(t)\n\n\ttestFilterUser(t)\n\n\ttestFlagPost(t)\n\n\ttestHidePostForMe(t)\n\n\ttestMigrateFeedData(t)\n}\n"},{"name":"flags.gno","body":"package social_feeds\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/teritori/flags_index\"\n)\n\nvar seperator = \"/\"\n\nfunc getFlagID(fid FeedID, pid PostID) flags_index.FlagID {\n\treturn flags_index.FlagID(fid.String() + seperator + pid.String())\n}\n\nfunc parseFlagID(flagID flags_index.FlagID) (FeedID, PostID) {\n\tparts := strings.Split(string(flagID), seperator)\n\tif len(parts) != 2 {\n\t\tpanic(\"invalid flag ID '\" + string(flagID) + \"'\")\n\t}\n\tfid, err := strconv.Atoi(parts[0])\n\tif err != nil || fid == 0 {\n\t\tpanic(\"invalid feed ID in flag ID '\" + parts[0] + \"'\")\n\t}\n\tpid, err := strconv.Atoi(parts[1])\n\tif err != nil || pid == 0 {\n\t\tpanic(\"invalid post ID in flag ID '\" + parts[1] + \"'\")\n\t}\n\treturn FeedID(fid), PostID(pid)\n}\n"},{"name":"messages.gno","body":"package social_feeds\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/teritori/dao_interfaces\"\n\t\"gno.land/p/teritori/jsonutil\"\n)\n\n// Ban a post\ntype ExecutableMessageBanPost struct {\n\tFeedID FeedID\n\tPostID PostID\n\tReason string\n}\n\nvar _ dao_interfaces.ExecutableMessage = (*ExecutableMessageBanPost)(nil)\n\nfunc (msg ExecutableMessageBanPost) Type() string {\n\treturn \"gno.land/r/teritori/social_feeds.BanPost\"\n}\n\nfunc (msg *ExecutableMessageBanPost) ToJSON() *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"feedId\": jsonutil.IntNode(int(msg.FeedID)),\n\t\t\"postId\": jsonutil.IntNode(int(msg.PostID)),\n\t\t\"reason\": json.StringNode(\"\", msg.Reason),\n\t})\n}\n\nfunc (msg *ExecutableMessageBanPost) FromJSON(ast *json.Node) {\n\tobj := ast.MustObject()\n\tmsg.FeedID = FeedID(jsonutil.MustInt(obj[\"feedId\"]))\n\tmsg.PostID = PostID(jsonutil.MustInt(obj[\"postId\"]))\n\tmsg.Reason = obj[\"reason\"].MustString()\n}\n\nfunc (msg *ExecutableMessageBanPost) String() string {\n\tvar ss []string\n\tss = append(ss, msg.Type())\n\n\tfeed := getFeed(msg.FeedID)\n\ts := \"\"\n\n\tif feed != nil {\n\t\ts += \"Feed: \" + feed.name + \" (\" + feed.id.String() + \")\"\n\n\t\tpost := feed.GetPost(msg.PostID)\n\t\tif post != nil {\n\t\t\ts += \"\\n Post: \" + post.id.String()\n\t\t} else {\n\t\t\ts += \"\\n Post: \" + msg.PostID.String() + \" (not found)\"\n\t\t}\n\t} else {\n\t\ts += \"Feed: \" + msg.FeedID.String() + \" (not found)\"\n\t}\n\n\ts += \"\\nReason: \" + msg.Reason\n\n\tss = append(ss, s)\n\n\treturn strings.Join(ss, \"\\n---\\n\")\n}\n\ntype BanPostHandler struct {\n}\n\nvar _ dao_interfaces.MessageHandler = (*BanPostHandler)(nil)\n\nfunc NewBanPostHandler() *BanPostHandler {\n\treturn \u0026BanPostHandler{}\n}\n\nfunc (h *BanPostHandler) Execute(iMsg dao_interfaces.ExecutableMessage) {\n\tmsg := iMsg.(*ExecutableMessageBanPost)\n\tBanPost(msg.FeedID, msg.PostID, msg.Reason)\n}\n\nfunc (h BanPostHandler) Type() string {\n\treturn ExecutableMessageBanPost{}.Type()\n}\n\nfunc (h BanPostHandler) Instantiate() dao_interfaces.ExecutableMessage {\n\treturn \u0026ExecutableMessageBanPost{}\n}\n"},{"name":"misc.gno","body":"package social_feeds\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\nfunc getFeed(fid FeedID) *Feed {\n\tfidkey := feedIDKey(fid)\n\tfeed_, exists := gFeeds.Get(fidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\tfeed := feed_.(*Feed)\n\treturn feed\n}\n\nfunc mustGetFeed(fid FeedID) *Feed {\n\tfeed := getFeed(fid)\n\tif feed == nil {\n\t\tpanic(\"Feed does not exist\")\n\t}\n\treturn feed\n}\n\nfunc incGetFeedID() FeedID {\n\tgFeedsCtr++\n\treturn FeedID(gFeedsCtr)\n}\n\nfunc feedIDKey(fid FeedID) string {\n\treturn padZero(uint64(fid), 10)\n}\n\nfunc postIDKey(pid PostID) string {\n\treturn padZero(uint64(pid), 10)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\" \", length-len(str)) + str\n\t}\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\"0\", length-len(str)) + str\n\t}\n}\n\nfunc intToString(val int) string {\n\treturn strconv.Itoa(val)\n}\n"},{"name":"post.gno","body":"package social_feeds\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\tujson \"gno.land/p/teritori/ujson\"\n)\n\ntype PostID uint64\n\nfunc (pid PostID) String() string {\n\treturn strconv.Itoa(int(pid))\n}\n\nfunc (pid *PostID) FromJSON(ast *ujson.JSONASTNode) {\n\tval, err := strconv.Atoi(ast.Value)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\t*pid = PostID(val)\n}\n\nfunc (pid PostID) ToJSON() string {\n\treturn strconv.Itoa(int(pid))\n}\n\ntype Reaction struct {\n\ticon string\n\tcount uint64\n}\n\nvar Categories []string = []string{\n\t\"Reaction\",\n\t\"Comment\",\n\t\"Normal\",\n\t\"Article\",\n\t\"Picture\",\n\t\"Audio\",\n\t\"Video\",\n}\n\ntype Post struct {\n\tid PostID\n\tparentID PostID\n\tfeedID FeedID\n\tcategory uint64\n\tmetadata string\n\treactions avl.Tree // icon -\u003e count\n\tcomments avl.Tree // Post.id -\u003e *Post\n\tcreator std.Address\n\ttipAmount uint64\n\tdeleted bool\n\tcommentsCount uint64\n\n\tcreatedAt int64\n\tupdatedAt int64\n\tdeletedAt int64\n}\n\nfunc newPost(feed *Feed, id PostID, creator std.Address, parentID PostID, category uint64, metadata string) *Post {\n\treturn \u0026Post{\n\t\tid: id,\n\t\tparentID: parentID,\n\t\tfeedID: feed.id,\n\t\tcategory: category,\n\t\tmetadata: metadata,\n\t\treactions: avl.Tree{},\n\t\tcreator: creator,\n\t\tcreatedAt: time.Now().Unix(),\n\t}\n}\n\nfunc (post *Post) String() string {\n\treturn post.ToJSON()\n}\n\nfunc (post *Post) Update(category uint64, metadata string) {\n\tpost.category = category\n\tpost.metadata = metadata\n\tpost.updatedAt = time.Now().Unix()\n}\n\nfunc (post *Post) Delete() {\n\tpost.deleted = true\n\tpost.deletedAt = time.Now().Unix()\n}\n\nfunc (post *Post) Tip(from std.Address, to std.Address) {\n\treceivedCoins := std.GetOrigSend()\n\tamount := receivedCoins[0].Amount\n\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\t// banker := std.GetBanker(std.BankerTypeRealmSend)\n\tcoinsToSend := std.Coins{std.Coin{Denom: \"ugnot\", Amount: amount}}\n\tpkgaddr := std.GetOrigPkgAddr()\n\n\tbanker.SendCoins(pkgaddr, to, coinsToSend)\n\n\t// Update tip amount\n\tpost.tipAmount += uint64(amount)\n}\n\n// Always remove reaction if count = 0\nfunc (post *Post) React(icon string, up bool) {\n\tcount_, ok := post.reactions.Get(icon)\n\tcount := 0\n\n\tif ok {\n\t\tcount = count_.(int)\n\t}\n\n\tif up {\n\t\tcount++\n\t} else {\n\t\tcount--\n\t}\n\n\tif count \u003c= 0 {\n\t\tpost.reactions.Remove(icon)\n\t} else {\n\t\tpost.reactions.Set(icon, count)\n\t}\n}\n\nfunc (post *Post) Render() string {\n\treturn post.metadata\n}\n\nfunc (post *Post) FromJSON(jsonData string) {\n\tast := ujson.TokenizeAndParse(jsonData)\n\tast.ParseObject([]*ujson.ParseKV{\n\t\t{Key: \"id\", CustomParser: func(node *ujson.JSONASTNode) {\n\t\t\tpid, _ := strconv.Atoi(node.Value)\n\t\t\tpost.id = PostID(pid)\n\t\t}},\n\t\t{Key: \"parentID\", CustomParser: func(node *ujson.JSONASTNode) {\n\t\t\tpid, _ := strconv.Atoi(node.Value)\n\t\t\tpost.parentID = PostID(pid)\n\t\t}},\n\t\t{Key: \"feedID\", CustomParser: func(node *ujson.JSONASTNode) {\n\t\t\tfid, _ := strconv.Atoi(node.Value)\n\t\t\tpost.feedID = FeedID(fid)\n\t\t}},\n\t\t{Key: \"category\", Value: \u0026post.category},\n\t\t{Key: \"metadata\", Value: \u0026post.metadata},\n\t\t{Key: \"reactions\", CustomParser: func(node *ujson.JSONASTNode) {\n\t\t\treactions := avl.NewTree()\n\t\t\tfor _, child := range node.ObjectChildren {\n\t\t\t\treactionCount := child.Value\n\t\t\t\treactions.Set(child.Key, reactionCount)\n\t\t\t}\n\t\t\tpost.reactions = *reactions\n\t\t}},\n\t\t{Key: \"commentsCount\", Value: \u0026post.commentsCount},\n\t\t{Key: \"creator\", Value: \u0026post.creator},\n\t\t{Key: \"tipAmount\", Value: \u0026post.tipAmount},\n\t\t{Key: \"deleted\", Value: \u0026post.deleted},\n\t\t{Key: \"createdAt\", Value: \u0026post.createdAt},\n\t\t{Key: \"updatedAt\", Value: \u0026post.updatedAt},\n\t\t{Key: \"deletedAt\", Value: \u0026post.deletedAt},\n\t})\n}\n\nfunc (post *Post) ToJSON() string {\n\treactionsKV := []ujson.FormatKV{}\n\tpost.reactions.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tcount := value.(int)\n\t\tdata := ujson.FormatKV{Key: key, Value: count}\n\t\treactionsKV = append(reactionsKV, data)\n\t\treturn false\n\t})\n\treactions := ujson.FormatObject(reactionsKV)\n\n\tpostJSON := ujson.FormatObject([]ujson.FormatKV{\n\t\t{Key: \"id\", Value: uint64(post.id)},\n\t\t{Key: \"parentID\", Value: uint64(post.parentID)},\n\t\t{Key: \"feedID\", Value: uint64(post.feedID)},\n\t\t{Key: \"category\", Value: post.category},\n\t\t{Key: \"metadata\", Value: post.metadata},\n\t\t{Key: \"reactions\", Value: reactions, Raw: true},\n\t\t{Key: \"creator\", Value: post.creator},\n\t\t{Key: \"tipAmount\", Value: post.tipAmount},\n\t\t{Key: \"deleted\", Value: post.deleted},\n\t\t{Key: \"commentsCount\", Value: post.commentsCount},\n\t\t{Key: \"createdAt\", Value: post.createdAt},\n\t\t{Key: \"updatedAt\", Value: post.updatedAt},\n\t\t{Key: \"deletedAt\", Value: post.deletedAt},\n\t})\n\treturn postJSON\n}\n"},{"name":"public.gno","body":"package social_feeds\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/teritori/flags_index\"\n)\n\n// Only registered user can create a new feed\n// For the flexibility when testing, allow all user to create feed\nfunc CreateFeed(name string) FeedID {\n\tpkgpath := std.CurrentRealm().PkgPath()\n\n\tfid := incGetFeedID()\n\tcaller := std.PrevRealm().Addr()\n\turl := strings.Replace(pkgpath, \"gno.land\", \"\", -1) + \":\" + name\n\tfeed := newFeed(fid, url, name, caller)\n\tfidkey := feedIDKey(fid)\n\tgFeeds.Set(fidkey, feed)\n\tgFeedsByName.Set(name, feed)\n\treturn feed.id\n}\n\n// Anyone can create a post in a existing feed, allow un-registered users also\nfunc CreatePost(fid FeedID, parentID PostID, catetory uint64, metadata string) PostID {\n\tcaller := std.PrevRealm().Addr()\n\n\tfeed := mustGetFeed(fid)\n\tpost := feed.AddPost(caller, parentID, catetory, metadata)\n\treturn post.id\n}\n\n// Only post's owner can edit post\nfunc EditPost(fid FeedID, pid PostID, category uint64, metadata string) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\tpost := feed.MustGetPost(pid)\n\n\tif caller != post.creator {\n\t\tpanic(\"you are not creator of this post\")\n\t}\n\n\tpost.Update(category, metadata)\n}\n\n// Only feed creator/owner can call this\nfunc SetOwner(fid FeedID, newOwner std.Address) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\n\tif caller != feed.creator \u0026\u0026 caller != feed.owner {\n\t\tpanic(\"you are not creator/owner of this feed\")\n\t}\n\n\tfeed.owner = newOwner\n}\n\n// Only feed creator/owner or post creator can delete the post\nfunc DeletePost(fid FeedID, pid PostID) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\tpost := feed.MustGetPost(pid)\n\n\tif caller != post.creator \u0026\u0026 caller != feed.creator \u0026\u0026 caller != feed.owner {\n\t\tpanic(\"you are nor creator of this post neither creator/owner of the feed\")\n\t}\n\n\tpost.Delete()\n\n\t// If post is comment then decrease comments count on parent\n\tif uint64(post.parentID) != 0 {\n\t\tparent := feed.MustGetPost(post.parentID)\n\t\tparent.commentsCount -= 1\n\t}\n}\n\n// Only feed owner can ban the post\nfunc BanPost(fid FeedID, pid PostID, reason string) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\t_ = feed.MustGetPost(pid)\n\n\t// For experimenting, we ban only the post for now\n\t// TODO: recursive delete/ban comments\n\tif caller != feed.owner {\n\t\tpanic(\"you are owner of the feed\")\n\t}\n\n\tfeed.BanPost(pid)\n\n\tfeed.flags.ClearFlagCount(getFlagID(fid, pid))\n}\n\n// Any one can react post\nfunc ReactPost(fid FeedID, pid PostID, icon string, up bool) {\n\tfeed := mustGetFeed(fid)\n\tpost := feed.MustGetPost(pid)\n\n\tpost.React(icon, up)\n}\n\nfunc TipPost(fid FeedID, pid PostID) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\tpost := feed.MustGetPost(pid)\n\n\tpost.Tip(caller, post.creator)\n}\n\n// Get a list of flagged posts\n// NOTE: We can support multi feeds in the future but for now we will have only 1 feed\n// Return stringified list in format: postStr-count,postStr-count\nfunc GetFlaggedPosts(fid FeedID, offset uint64, limit uint8) string {\n\tfeed := mustGetFeed(fid)\n\n\t// Already sorted by count descending\n\tflags := feed.flags.GetFlags(uint64(limit), offset)\n\n\tvar postList []string\n\tfor _, flagCount := range flags {\n\t\tflagID := flagCount.FlagID\n\n\t\tfeedID, postID := parseFlagID(flagID)\n\t\tif feedID != feed.id {\n\t\t\tcontinue\n\t\t}\n\n\t\tpost := feed.GetPost(postID)\n\t\tpostList = append(postList, ufmt.Sprintf(\"%s\", post))\n\t}\n\n\tSEPARATOR := \",\"\n\tres := strings.Join(postList, SEPARATOR)\n\treturn ufmt.Sprintf(\"[%s]\", res)\n}\n\n// NOTE: due to bug of std.PrevRealm().Addr() return \"\" when query so we user this proxy function temporary\n// in waiting of correct behaviour of std.PrevRealm().Addr()\nfunc GetPosts(fid FeedID, parentID PostID, user string, categories []uint64, offset uint64, limit uint8) string {\n\tcaller := std.PrevRealm().Addr()\n\tdata := GetPostsWithCaller(fid, parentID, caller.String(), user, categories, offset, limit)\n\treturn data\n}\n\nfunc GetPostsWithCaller(fid FeedID, parentID PostID, callerAddrStr string, user string, categories []uint64, offset uint64, limit uint8) string {\n\t// Return flagged posts, we process flagged posts differently using FlagIndex\n\tif len(categories) == 1 \u0026\u0026 categories[0] == uint64(9) {\n\t\treturn GetFlaggedPosts(fid, offset, limit)\n\t}\n\n\t// BUG: normally std.PrevRealm().Addr() should return a value instead of empty\n\t// Fix is in progress on Gno side\n\tfeed := mustGetFeed(fid)\n\tposts := getPosts(feed, parentID, callerAddrStr, user, categories, offset, limit)\n\n\tSEPARATOR := \",\"\n\tvar postListStr []string\n\n\tfor _, post := range posts {\n\t\tpostListStr = append(postListStr, post.String())\n\t}\n\n\tres := strings.Join(postListStr, SEPARATOR)\n\treturn ufmt.Sprintf(\"[%s]\", res)\n}\n\n// user here is: filter by user\nfunc getPosts(feed *Feed, parentID PostID, callerAddrStr string, user string, categories []uint64, offset uint64, limit uint8) []*Post {\n\tcaller := std.Address(callerAddrStr)\n\n\tvar posts []*Post\n\tvar skipped uint64\n\n\t// Create an avlTree for optimizing the check\n\trequestedCategories := avl.NewTree()\n\tfor _, category := range categories {\n\t\tcatStr := strconv.FormatUint(category, 10)\n\t\trequestedCategories.Set(catStr, true)\n\t}\n\n\tfeed.posts.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\n\t\tpostCatStr := strconv.FormatUint(post.category, 10)\n\n\t\t// NOTE: this search mechanism is not efficient, only for demo purpose\n\t\tif post.parentID == parentID \u0026\u0026 post.deleted == false {\n\t\t\tif requestedCategories.Size() \u003e 0 \u0026\u0026 !requestedCategories.Has(postCatStr) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif user != \"\" \u0026\u0026 std.Address(user) != post.creator {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Filter hidden post\n\t\t\tflagID := getFlagID(feed.id, post.id)\n\t\t\tif feed.flags.HasFlagged(flagID, callerAddrStr) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check if post is in hidden list\n\t\t\tvalue, exists := feed.hiddenPostsByUser.Get(caller.String())\n\t\t\tif exists {\n\t\t\t\thiddenPosts := value.(*avl.Tree)\n\t\t\t\t// If post.id exists in hiddenPosts tree =\u003e that post is hidden\n\t\t\t\tif hiddenPosts.Has(post.id.String()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif skipped \u003c offset {\n\t\t\t\tskipped++\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tposts = append(posts, post)\n\t\t}\n\n\t\tif len(posts) == int(limit) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn posts\n}\n\n// Get comments list\nfunc GetComments(fid FeedID, parentID PostID, offset uint64, limit uint8) string {\n\treturn GetPosts(fid, parentID, \"\", []uint64{}, offset, limit)\n}\n\n// Get Post\nfunc GetPost(fid FeedID, pid PostID) string {\n\tfeed := mustGetFeed(fid)\n\n\tdata, ok := feed.posts.Get(postIDKey(pid))\n\tif !ok {\n\t\tpanic(\"Unable to get post\")\n\t}\n\n\tpost := data.(*Post)\n\treturn post.String()\n}\n\nfunc FlagPost(fid FeedID, pid PostID) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\n\tfeed.FlagPost(caller, pid)\n}\n\nfunc HidePostForMe(fid FeedID, pid PostID) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\n\tfeed.HidePostForUser(caller, pid)\n}\n\nfunc UnHidePostForMe(fid FeedID, pid PostID) {\n\tcaller := std.PrevRealm().Addr()\n\tfeed := mustGetFeed(fid)\n\n\tfeed.UnHidePostForUser(caller, pid)\n}\n\nfunc GetFlags(fid FeedID, limit uint64, offset uint64) string {\n\tfeed := mustGetFeed(fid)\n\n\ttype FlagCount struct {\n\t\tFlagID flags_index.FlagID\n\t\tCount uint64\n\t}\n\n\tflags := feed.flags.GetFlags(limit, offset)\n\n\tvar res []string\n\tfor _, flag := range flags {\n\t\tres = append(res, ufmt.Sprintf(\"%s:%d\", flag.FlagID, flag.Count))\n\t}\n\n\treturn strings.Join(res, \"|\")\n}\n\n// TODO: allow only creator to call\nfunc GetFeedByID(fid FeedID) *Feed {\n\treturn mustGetFeed(fid)\n}\n\n// TODO: allow only admin to call\nfunc ExportFeedData(fid FeedID) string {\n\tfeed := mustGetFeed(fid)\n\tfeedJSON := feed.ToJSON()\n\treturn feedJSON\n}\n\n// TODO: allow only admin to call\nfunc ImportFeedData(fid FeedID, jsonData string) {\n\tfeed := mustGetFeed(fid)\n\tfeed.FromJSON(jsonData)\n}\n\n// func MigrateFromPreviousFeed(fid feedsV7.FeedID) {\n// \t// Get exported data from previous feeds\n// \tjsonData := feedsV7.ExportFeedData(fid)\n// \tImportFeedData(FeedID(uint64(fid)), jsonData)\n// }\n"},{"name":"render.gno","body":"package social_feeds\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\nfunc renderFeed(parts []string) string {\n\t// /r/demo/social_feeds_v4:FEED_NAME\n\tname := parts[0]\n\tfeedI, exists := gFeedsByName.Get(name)\n\tif !exists {\n\t\treturn \"feed does not exist: \" + name\n\t}\n\treturn feedI.(*Feed).Render()\n}\n\nfunc renderPost(parts []string) string {\n\t// /r/demo/boards:FEED_NAME/POST_ID\n\tname := parts[0]\n\tfeedI, exists := gFeedsByName.Get(name)\n\tif !exists {\n\t\treturn \"feed does not exist: \" + name\n\t}\n\tpid, err := strconv.Atoi(parts[1])\n\tif err != nil {\n\t\treturn \"invalid thread id: \" + parts[1]\n\t}\n\tfeed := feedI.(*Feed)\n\tpost := feed.MustGetPost(PostID(pid))\n\treturn post.Render()\n}\n\nfunc renderFeedsList() string {\n\tstr := \"There are \" + intToString(gFeeds.Size()) + \" available feeds:\\n\\n\"\n\tgFeeds.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tfeed := value.(*Feed)\n\t\tstr += \" * [\" + feed.url + \" (FeedID: \" + feed.id.String() + \")](\" + feed.url + \")\\n\"\n\t\treturn false\n\t})\n\treturn str\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn renderFeedsList()\n\t}\n\n\tparts := strings.Split(path, \"/\")\n\n\tif len(parts) == 1 {\n\t\t// /r/demo/social_feeds_v4:FEED_NAME\n\t\treturn renderFeed(parts)\n\t} else if len(parts) == 2 {\n\t\t// /r/demo/social_feeds_v4:FEED_NAME/POST_ID\n\t\treturn renderPost(parts)\n\t}\n\n\treturn \"Not found\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N1k3k0TGBAou/zKrOR32+bQsMV8MSOvlM3bJPVIpOPYTOSBPVsvRlL4MWWsCm4K2o2lfloMn4eVYtAwPh6JcBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"ujson","path":"gno.land/p/teritori/ujson","files":[{"name":"format.gno","body":"package ujson\n\n// This package strives to have the same behavior as json.Marshal but does not support all types and returns strings\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/users\"\n)\n\ntype JSONAble interface {\n\tToJSON() string\n}\n\ntype FormatKV struct {\n\tKey string\n\tValue interface{}\n\tRaw bool\n}\n\n// does not work for slices, use FormatSlice instead\nfunc FormatAny(p interface{}) string {\n\tswitch p.(type) {\n\tcase std.Address:\n\t\treturn FormatString(string(p.(std.Address)))\n\tcase *avl.Tree:\n\t\treturn FormatAVLTree(p.(*avl.Tree))\n\tcase avl.Tree:\n\t\tt := p.(avl.Tree)\n\t\treturn FormatAVLTree(\u0026t)\n\tcase JSONAble:\n\t\treturn p.(JSONAble).ToJSON()\n\tcase string:\n\t\treturn FormatString(p.(string))\n\tcase uint64:\n\t\treturn FormatUint64(p.(uint64))\n\tcase uint32:\n\t\treturn FormatUint64(uint64(p.(uint32)))\n\tcase uint:\n\t\treturn FormatUint64(uint64(p.(uint)))\n\tcase int64:\n\t\treturn FormatInt64(p.(int64))\n\tcase int32:\n\t\treturn FormatInt64(int64(p.(int32)))\n\tcase int:\n\t\treturn FormatInt64(int64(p.(int)))\n\tcase float32:\n\t\tpanic(\"float32 not implemented\")\n\tcase float64:\n\t\tpanic(\"float64 not implemented\")\n\tcase bool:\n\t\treturn FormatBool(p.(bool))\n\tcase time.Time:\n\t\treturn FormatTime(p.(time.Time))\n\tcase time.Duration:\n\t\treturn FormatInt64(int64(p.(time.Duration)))\n\tcase users.AddressOrName:\n\t\treturn FormatString(string(p.(users.AddressOrName)))\n\tdefault:\n\t\treturn \"null\"\n\t}\n}\n\n// loosely ported from https://cs.opensource.google/go/go/+/master:src/time/time.go;l=1357?q=appendStrictRFC3339\u0026ss=go%2Fgo\nfunc FormatTime(t time.Time) string {\n\ts := t.Format(time.RFC3339Nano)\n\tb := []byte(s)\n\n\t// Not all valid Go timestamps can be serialized as valid RFC 3339.\n\t// Explicitly check for these edge cases.\n\t// See https://go.dev/issue/4556 and https://go.dev/issue/54580.\n\tn0 := 0\n\tnum2 := func(b []byte) byte { return 10*(b[0]-'0') + (b[1] - '0') }\n\tswitch {\n\tcase b[n0+len(\"9999\")] != '-': // year must be exactly 4 digits wide\n\t\tpanic(errors.New(\"year outside of range [0,9999]\"))\n\tcase b[len(b)-1] != 'Z':\n\t\tc := b[len(b)-len(\"Z07:00\")]\n\t\tif ('0' \u003c= c \u0026\u0026 c \u003c= '9') || num2(b[len(b)-len(\"07:00\"):]) \u003e= 24 {\n\t\t\tpanic(errors.New(\"timezone hour outside of range [0,23]\"))\n\t\t}\n\t}\n\treturn FormatString(string(b))\n}\n\nfunc FormatUint64(i uint64) string {\n\treturn strconv.FormatUint(i, 10)\n}\n\nfunc FormatInt64(i int64) string {\n\treturn strconv.FormatInt(i, 10)\n}\n\nfunc FormatSlice(s []interface{}) string {\n\telems := make([]string, len(s))\n\tfor i, elem := range s {\n\t\telems[i] = FormatAny(elem)\n\t}\n\treturn \"[\" + strings.Join(elems, \",\") + \"]\"\n}\n\nfunc FormatObject(kv []FormatKV) string {\n\telems := make([]string, len(kv))\n\ti := 0\n\tfor _, elem := range kv {\n\t\tvar val string\n\t\tif elem.Raw {\n\t\t\tval = elem.Value.(string)\n\t\t} else {\n\t\t\tval = FormatAny(elem.Value)\n\t\t}\n\t\telems[i] = FormatString(elem.Key) + \":\" + val\n\t\ti++\n\t}\n\treturn \"{\" + strings.Join(elems, \",\") + \"}\"\n}\n\nfunc FormatBool(b bool) string {\n\tif b {\n\t\treturn \"true\"\n\t}\n\treturn \"false\"\n}\n\nfunc FormatAVLTree(t *avl.Tree) string {\n\tif t == nil {\n\t\treturn \"{}\"\n\t}\n\tkv := make([]FormatKV, 0, t.Size())\n\tt.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkv = append(kv, FormatKV{key, value, false})\n\t\treturn false\n\t})\n\treturn FormatObject(kv)\n}\n\nfunc FormatUnionMember(name string, val interface{}, raw bool) string {\n\treturn FormatObject([]FormatKV{\n\t\t{Key: name, Value: val, Raw: raw},\n\t})\n}\n"},{"name":"parse.gno","body":"package ujson\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/users\"\n)\n\n// https://stackoverflow.com/a/4150626\nconst whitespaces = \" \\t\\n\\r\"\n\ntype FromJSONAble interface {\n\tFromJSON(ast *JSONASTNode)\n}\n\n// does not work for slices, use ast exploration instead\nfunc (ast *JSONASTNode) ParseAny(ptr interface{}) {\n\tswitch ptr.(type) {\n\tcase *std.Address:\n\t\t*ptr.(*std.Address) = std.Address(ParseString(ast.Value))\n\tcase **avl.Tree:\n\t\tpanic(\"*avl.Tree not implemented, there is no way to know the type of the tree values, use a custom parser instead\")\n\tcase *avl.Tree:\n\t\tpanic(\"avl.Tree not implemented, there is no way to know the type of the tree values, use a custom parser instead\")\n\tcase *string:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindString {\n\t\t\tpanic(\"not a string\")\n\t\t}\n\t\t*ptr.(*string) = ParseString(ast.Value)\n\tcase *uint64:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindNumber {\n\t\t\tpanic(\"not a number\")\n\t\t}\n\t\t*ptr.(*uint64) = ParseUint64(ast.Value)\n\tcase *uint32:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindNumber {\n\t\t\tpanic(\"not a number\")\n\t\t}\n\t\t*ptr.(*uint32) = uint32(ParseUint64(ast.Value))\n\tcase *uint:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindNumber {\n\t\t\tpanic(\"not a number\")\n\t\t}\n\t\t*ptr.(*uint) = uint(ParseUint64(ast.Value))\n\tcase *int64:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindNumber {\n\t\t\tpanic(\"not a number\")\n\t\t}\n\t\t*ptr.(*int64) = ParseInt64(ast.Value)\n\tcase *int32:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindNumber {\n\t\t\tpanic(\"not a number\")\n\t\t}\n\t\t*ptr.(*int32) = int32(ParseInt64(ast.Value))\n\tcase *int:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindNumber {\n\t\t\tpanic(\"not a number\")\n\t\t}\n\t\t*ptr.(*int) = int(ParseInt64(ast.Value))\n\tcase *float64:\n\t\tpanic(\"float64 not implemented\")\n\tcase *float32:\n\t\tpanic(\"float32 not implemented\")\n\tcase *bool:\n\t\tif ast.Kind != JSONKindValue {\n\t\t\tpanic(\"not a value\")\n\t\t}\n\t\tif ast.ValueKind != JSONTokenKindTrue \u0026\u0026 ast.ValueKind != JSONTokenKindFalse {\n\t\t\tpanic(\"not a bool\")\n\t\t}\n\t\t*ptr.(*bool) = ast.ValueKind == JSONTokenKindTrue\n\tcase *FromJSONAble:\n\t\t(*(ptr.(*FromJSONAble))).FromJSON(ast)\n\tcase FromJSONAble:\n\t\tptr.(FromJSONAble).FromJSON(ast)\n\tcase **JSONASTNode:\n\t\t*ptr.(**JSONASTNode) = ast\n\tcase *time.Time:\n\t\tast.ParseTime(ptr.(*time.Time))\n\tcase *time.Duration:\n\t\t*ptr.(*time.Duration) = time.Duration(ParseInt64(ast.Value))\n\tcase *users.AddressOrName:\n\t\ts := ParseString(ast.Value)\n\t\t*ptr.(*users.AddressOrName) = users.AddressOrName(s)\n\tdefault:\n\t\tif ast.Kind == JSONKindValue \u0026\u0026 ast.ValueKind == JSONTokenKindNull {\n\t\t\t// *ptr.(*interface{}) = nil // TODO: handle nil\n\t\t\treturn\n\t\t}\n\t\tpanic(\"type not defined for `\" + ast.String() + \"`\")\n\t}\n}\n\n// loosely ported from https://cs.opensource.google/go/go/+/master:src/time/time.go;l=1370?q=appendStrictRFC3339\u0026ss=go%2Fgo\n// it's not a full port since it would require copying lot of utils\nfunc (ast *JSONASTNode) ParseTime(t *time.Time) {\n\tif ast.Kind != JSONKindValue \u0026\u0026 ast.ValueKind != JSONTokenKindString {\n\t\tpanic(\"time is not a string\")\n\t}\n\ts := ParseString(ast.Value)\n\tvar err error\n\t*t, err = time.Parse(time.RFC3339Nano, s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc ParseUint64(s string) uint64 {\n\tval, err := strconv.Atoi(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uint64(val)\n}\n\nfunc ParseInt64(s string) int64 {\n\tval, err := strconv.Atoi(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn int64(val)\n}\n\ntype ParseKV struct {\n\tKey string\n\tValue interface{}\n\tArrayParser func(children []*JSONASTNode)\n\tObjectParser func(children []*JSONASTKV)\n\tCustomParser func(node *JSONASTNode)\n}\n\nfunc ParseAny(s string, val interface{}) {\n\ttokens := tokenize(s)\n\tif len(tokens) == 0 {\n\t\tpanic(\"empty json\")\n\t}\n\tremainingTokens, ast := parseAST(tokens)\n\tif len(remainingTokens) \u003e 0 {\n\t\tpanic(\"invalid json\")\n\t}\n\tast.ParseAny(val)\n}\n\nfunc (ast *JSONASTNode) ParseObject(kv []*ParseKV) {\n\tif ast.Kind != JSONKindObject {\n\t\tpanic(\"not an object\")\n\t}\n\tfor _, elem := range kv {\n\t\tfor i, child := range ast.ObjectChildren {\n\t\t\tif child.Key == elem.Key {\n\t\t\t\tif elem.ArrayParser != nil {\n\t\t\t\t\tif child.Value.Kind != JSONKindArray {\n\t\t\t\t\t\tpanic(\"not an array\")\n\t\t\t\t\t}\n\t\t\t\t\telem.ArrayParser(child.Value.ArrayChildren)\n\t\t\t\t} else if elem.ObjectParser != nil {\n\t\t\t\t\tif child.Value.Kind != JSONKindObject {\n\t\t\t\t\t\tpanic(\"not an object\")\n\t\t\t\t\t}\n\t\t\t\t\telem.ObjectParser(child.Value.ObjectChildren)\n\t\t\t\t} else if elem.CustomParser != nil {\n\t\t\t\t\telem.CustomParser(child.Value)\n\t\t\t\t} else {\n\t\t\t\t\tchild.Value.ParseAny(elem.Value)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif i == (len(ast.ObjectChildren) - 1) {\n\t\t\t\tpanic(\"invalid key `\" + elem.Key + \"` in object `\" + ast.String() + \"`\")\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (ast *JSONASTNode) ParseUnion(kv []*ParseKV) interface{} {\n\tif ast.Kind != JSONKindObject {\n\t\tpanic(\"union is not an object\")\n\t}\n\tif len(ast.ObjectChildren) != 1 {\n\t\tpanic(\"union object does not have exactly one field\")\n\t}\n\tk, node := ast.ObjectChildren[0].Key, ast.ObjectChildren[0].Value\n\tfor _, kv := range kv {\n\t\tif kv.Key == k {\n\t\t\tnode.ParseAny(kv.Value)\n\t\t\treturn kv.Value\n\t\t}\n\t}\n\tpanic(\"unknown union type\") // TODO: expected one of ...\n}\n\nfunc ParseSlice(s string) []*JSONASTNode {\n\tast := TokenizeAndParse(s)\n\treturn ast.ParseSlice()\n}\n\nfunc (ast *JSONASTNode) ParseSlice() []*JSONASTNode {\n\tif ast.Kind != JSONKindArray {\n\t\tpanic(\"not an array\")\n\t}\n\treturn ast.ArrayChildren\n}\n\nfunc countWhitespaces(s string) int {\n\ti := 0\n\tfor i \u003c len(s) {\n\t\tif strings.ContainsRune(whitespaces, int32(s[i])) {\n\t\t\ti++\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn i\n}\n\nfunc JSONTokensString(tokens []*JSONToken) string {\n\ts := \"\"\n\tfor _, token := range tokens {\n\t\ts += token.Raw\n\t}\n\treturn s\n}\n\nfunc (node *JSONASTNode) String() string {\n\tif node == nil {\n\t\treturn \"nil\"\n\t}\n\tswitch node.Kind {\n\tcase JSONKindValue:\n\t\treturn node.Value\n\tcase JSONKindArray:\n\t\ts := \"[\"\n\t\tfor i, child := range node.ArrayChildren {\n\t\t\tif i \u003e 0 {\n\t\t\t\ts += \",\"\n\t\t\t}\n\t\t\ts += child.String()\n\t\t}\n\t\ts += \"]\"\n\t\treturn s\n\tcase JSONKindObject:\n\t\ts := \"{\"\n\t\tfor i, child := range node.ObjectChildren {\n\t\t\tif i \u003e 0 {\n\t\t\t\ts += \",\"\n\t\t\t}\n\t\t\ts += `\"` + child.Key + `\":` + child.Value.String()\n\t\t}\n\t\ts += \"}\"\n\t\treturn s\n\tdefault:\n\t\tpanic(\"invalid json\")\n\t}\n}\n\nfunc TokenizeAndParse(s string) *JSONASTNode {\n\ttokens := tokenize(s)\n\tif len(tokens) == 0 {\n\t\tpanic(\"empty json\")\n\t}\n\tremainingTokens, ast := parseAST(tokens)\n\tif len(remainingTokens) \u003e 0 {\n\t\tpanic(\"invalid json\")\n\t}\n\treturn ast\n}\n\nfunc parseAST(tokens []*JSONToken) (tkn []*JSONToken, tree *JSONASTNode) {\n\tif len(tokens) == 0 {\n\t\tpanic(\"empty json\")\n\t}\n\n\tswitch tokens[0].Kind {\n\n\tcase JSONTokenKindString:\n\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindValue, ValueKind: tokens[0].Kind, Value: tokens[0].Raw}\n\tcase JSONTokenKindNumber:\n\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindValue, ValueKind: tokens[0].Kind, Value: tokens[0].Raw}\n\tcase JSONTokenKindTrue:\n\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindValue, ValueKind: tokens[0].Kind, Value: tokens[0].Raw}\n\tcase JSONTokenKindFalse:\n\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindValue, ValueKind: tokens[0].Kind, Value: tokens[0].Raw}\n\tcase JSONTokenKindNull:\n\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindValue, ValueKind: tokens[0].Kind, Value: tokens[0].Raw}\n\n\tcase JSONTokenKindOpenArray:\n\t\tarrayChildren := []*JSONASTNode{}\n\t\ttokens = tokens[1:]\n\t\tfor len(tokens) \u003e 0 {\n\t\t\tif tokens[0].Kind == JSONTokenKindCloseArray {\n\t\t\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindArray, ArrayChildren: arrayChildren}\n\t\t\t}\n\t\t\tvar child *JSONASTNode\n\t\t\ttokens, child = parseAST(tokens)\n\t\t\tarrayChildren = append(arrayChildren, child)\n\t\t\tif len(tokens) == 0 {\n\t\t\t\tpanic(\"exepected more tokens in array\")\n\t\t\t}\n\t\t\tif tokens[0].Kind == JSONTokenKindComma {\n\t\t\t\ttokens = tokens[1:]\n\t\t\t} else if tokens[0].Kind == JSONTokenKindCloseArray {\n\t\t\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindArray, ArrayChildren: arrayChildren}\n\t\t\t} else {\n\t\t\t\tpanic(\"unexpected token in array after value `\" + tokens[0].Raw + \"`\")\n\t\t\t}\n\t\t}\n\n\tcase JSONTokenKindOpenObject:\n\t\tobjectChildren := []*JSONASTKV{}\n\t\tif len(tokens) \u003c 2 {\n\t\t\tpanic(\"objects must have at least 2 tokens\")\n\t\t}\n\t\ttokens = tokens[1:]\n\t\tfor len(tokens) \u003e 0 {\n\t\t\tif tokens[0].Kind == JSONTokenKindCloseObject {\n\t\t\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindObject, ObjectChildren: objectChildren}\n\t\t\t}\n\t\t\tif tokens[0].Kind != JSONTokenKindString {\n\t\t\t\tpanic(\"invalid json\")\n\t\t\t}\n\t\t\tkey := tokens[0].Raw\n\t\t\ttokens = tokens[1:]\n\t\t\tif len(tokens) == 0 {\n\t\t\t\tpanic(\"exepected more tokens in object\")\n\t\t\t}\n\t\t\tif tokens[0].Kind != JSONTokenKindColon {\n\t\t\t\tpanic(\"expected :\")\n\t\t\t}\n\t\t\ttokens = tokens[1:]\n\t\t\tif len(tokens) == 0 {\n\t\t\t\tpanic(\"exepected more tokens in object after :\")\n\t\t\t}\n\t\t\tvar value *JSONASTNode\n\t\t\ttokens, value = parseAST(tokens)\n\t\t\tobjectChildren = append(objectChildren, \u0026JSONASTKV{Key: ParseString(key), Value: value})\n\t\t\tif len(tokens) == 0 {\n\t\t\t\tpanic(\"exepected more tokens in object after value\")\n\t\t\t}\n\t\t\tif tokens[0].Kind == JSONTokenKindComma {\n\t\t\t\ttokens = tokens[1:]\n\t\t\t} else if tokens[0].Kind == JSONTokenKindCloseObject {\n\t\t\t\treturn tokens[1:], \u0026JSONASTNode{Kind: JSONKindObject, ObjectChildren: objectChildren}\n\t\t\t} else {\n\t\t\t\tpanic(\"unexpected token in object after value `\" + tokens[0].Raw + \"`\")\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\tpanic(\"unexpected token `\" + tokens[0].Raw + \"`\")\n\t}\n\n\treturn\n}\n\nfunc tokenize(s string) []*JSONToken {\n\ttokens := []*JSONToken{}\n\tfor len(s) \u003e 0 {\n\t\tvar token *JSONToken\n\t\ts, token = tokenizeOne(s)\n\t\tif token.Kind != JSONTokenKindSpaces {\n\t\t\ttokens = append(tokens, token)\n\t\t}\n\t}\n\treturn tokens\n}\n\nfunc tokenizeOne(s string) (string, *JSONToken) {\n\tif len(s) == 0 {\n\t\tpanic(\"invalid token\")\n\t}\n\tspacesCount := countWhitespaces(s)\n\tif spacesCount \u003e 0 {\n\t\tspaces := s[:spacesCount]\n\t\treturn s[spacesCount:], \u0026JSONToken{Kind: JSONTokenKindSpaces, Raw: spaces}\n\t}\n\tswitch s[0] {\n\tcase '\"':\n\t\treturn parseStringToken(s)\n\tcase 't':\n\t\treturn parseKeyword(s, \"true\", JSONTokenKindTrue)\n\tcase 'f':\n\t\treturn parseKeyword(s, \"false\", JSONTokenKindFalse)\n\tcase 'n':\n\t\treturn parseKeyword(s, \"null\", JSONTokenKindNull)\n\tcase '{':\n\t\treturn s[1:], \u0026JSONToken{Kind: JSONTokenKindOpenObject, Raw: \"{\"}\n\tcase '[':\n\t\treturn s[1:], \u0026JSONToken{Kind: JSONTokenKindOpenArray, Raw: \"[\"}\n\tcase ':':\n\t\treturn s[1:], \u0026JSONToken{Kind: JSONTokenKindColon, Raw: \":\"}\n\tcase ',':\n\t\treturn s[1:], \u0026JSONToken{Kind: JSONTokenKindComma, Raw: \",\"}\n\tcase ']':\n\t\treturn s[1:], \u0026JSONToken{Kind: JSONTokenKindCloseArray, Raw: \"]\"}\n\tcase '}':\n\t\treturn s[1:], \u0026JSONToken{Kind: JSONTokenKindCloseObject, Raw: \"}\"}\n\tdefault:\n\t\treturn parseNumber(s)\n\t}\n}\n\nfunc parseKeyword(s string, keyword string, kind JSONTokenKind) (string, *JSONToken) {\n\tif len(s) \u003c len(keyword) {\n\t\tpanic(\"invalid keyword\")\n\t}\n\tif s[:len(keyword)] != keyword {\n\t\tpanic(\"invalid keyword\")\n\t}\n\treturn s[len(keyword):], \u0026JSONToken{Kind: kind, Raw: keyword}\n}\n\nfunc parseStringToken(s string) (string, *JSONToken) {\n\tif (len(s) \u003c 2) || (s[0] != '\"') {\n\t\tpanic(\"invalid string\")\n\t}\n\tquote := false\n\tfor i := 1; i \u003c len(s); i++ {\n\t\tif !quote \u0026\u0026 s[i] == '\\\\' {\n\t\t\tquote = true\n\t\t\tcontinue\n\t\t}\n\t\tif !quote \u0026\u0026 s[i] == '\"' {\n\t\t\treturn s[i+1:], \u0026JSONToken{Kind: JSONTokenKindString, Raw: s[:i+1]}\n\t\t}\n\t\tquote = false\n\t}\n\tpanic(\"invalid string\")\n}\n\n// copiloted\nfunc parseNumber(s string) (string, *JSONToken) {\n\tif len(s) == 0 {\n\t\tpanic(\"invalid number\")\n\t}\n\ti := 0\n\tif s[i] == '-' {\n\t\ti++\n\t}\n\tif i == len(s) {\n\t\tpanic(\"invalid number\")\n\t}\n\tif s[i] == '0' {\n\t\ti++\n\t} else if ('1' \u003c= s[i]) \u0026\u0026 (s[i] \u003c= '9') {\n\t\ti++\n\t\tfor (i \u003c len(s)) \u0026\u0026 ('0' \u003c= s[i]) \u0026\u0026 (s[i] \u003c= '9') {\n\t\t\ti++\n\t\t}\n\t} else {\n\t\tpanic(\"invalid number\")\n\t}\n\tif i == len(s) {\n\t\treturn s[i:], \u0026JSONToken{Kind: JSONTokenKindNumber, Raw: s}\n\t}\n\tif s[i] == '.' {\n\t\ti++\n\t\tif i == len(s) {\n\t\t\tpanic(\"invalid number\")\n\t\t}\n\t\tif ('0' \u003c= s[i]) \u0026\u0026 (s[i] \u003c= '9') {\n\t\t\ti++\n\t\t\tfor (i \u003c len(s)) \u0026\u0026 ('0' \u003c= s[i]) \u0026\u0026 (s[i] \u003c= '9') {\n\t\t\t\ti++\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"invalid number\")\n\t\t}\n\t}\n\tif i == len(s) {\n\t\treturn s[i:], \u0026JSONToken{Kind: JSONTokenKindNumber, Raw: s}\n\t}\n\tif (s[i] == 'e') || (s[i] == 'E') {\n\t\ti++\n\t\tif i == len(s) {\n\t\t\tpanic(\"invalid number\")\n\t\t}\n\t\tif (s[i] == '+') || (s[i] == '-') {\n\t\t\ti++\n\t\t}\n\t\tif i == len(s) {\n\t\t\tpanic(\"invalid number\")\n\t\t}\n\t\tif ('0' \u003c= s[i]) \u0026\u0026 (s[i] \u003c= '9') {\n\t\t\ti++\n\t\t\tfor (i \u003c len(s)) \u0026\u0026 ('0' \u003c= s[i]) \u0026\u0026 (s[i] \u003c= '9') {\n\t\t\t\ti++\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"invalid number\")\n\t\t}\n\t}\n\treturn s[i:], \u0026JSONToken{Kind: JSONTokenKindNumber, Raw: s[:i]}\n}\n\ntype JSONTokenKind int\n\ntype JSONKind int\n\nconst (\n\tJSONKindUnknown JSONKind = iota\n\tJSONKindValue\n\tJSONKindObject\n\tJSONKindArray\n)\n\ntype JSONASTNode struct {\n\tKind JSONKind\n\tArrayChildren []*JSONASTNode\n\tObjectChildren []*JSONASTKV\n\tValueKind JSONTokenKind\n\tValue string\n}\n\ntype JSONASTKV struct {\n\tKey string\n\tValue *JSONASTNode\n}\n\nconst (\n\tJSONTokenKindUnknown JSONTokenKind = iota\n\tJSONTokenKindString\n\tJSONTokenKindNumber\n\tJSONTokenKindTrue\n\tJSONTokenKindFalse\n\tJSONTokenKindSpaces\n\tJSONTokenKindComma\n\tJSONTokenKindColon\n\tJSONTokenKindOpenArray\n\tJSONTokenKindCloseArray\n\tJSONTokenKindOpenObject\n\tJSONTokenKindCloseObject\n\tJSONTokenKindNull\n)\n\nfunc (k JSONTokenKind) String() string {\n\tswitch k {\n\tcase JSONTokenKindString:\n\t\treturn \"string\"\n\tcase JSONTokenKindNumber:\n\t\treturn \"number\"\n\tcase JSONTokenKindTrue:\n\t\treturn \"true\"\n\tcase JSONTokenKindFalse:\n\t\treturn \"false\"\n\tcase JSONTokenKindSpaces:\n\t\treturn \"spaces\"\n\tcase JSONTokenKindComma:\n\t\treturn \"comma\"\n\tcase JSONTokenKindColon:\n\t\treturn \"colon\"\n\tcase JSONTokenKindOpenArray:\n\t\treturn \"open-array\"\n\tcase JSONTokenKindCloseArray:\n\t\treturn \"close-array\"\n\tcase JSONTokenKindOpenObject:\n\t\treturn \"open-object\"\n\tcase JSONTokenKindCloseObject:\n\t\treturn \"close-object\"\n\tcase JSONTokenKindNull:\n\t\treturn \"null\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\ntype JSONToken struct {\n\tKind JSONTokenKind\n\tRaw string\n}\n"},{"name":"strings.gno","body":"package ujson\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"gno.land/p/teritori/utf16\"\n)\n\nconst (\n\tReplacementChar = '\\uFFFD' // Represents invalid code points.\n)\n\n// Ported from https://cs.opensource.google/go/go/+/refs/tags/go1.20.6:src/encoding/json/encode.go\nfunc FormatString(s string) string {\n\tconst escapeHTML = true\n\te := `\"` // e.WriteByte('\"')\n\tstart := 0\n\tfor i := 0; i \u003c len(s); {\n\t\tif b := s[i]; b \u003c utf8.RuneSelf {\n\t\t\tif htmlSafeSet[b] || (!escapeHTML \u0026\u0026 safeSet[b]) {\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif start \u003c i {\n\t\t\t\te += s[start:i] // e.WriteString(s[start:i])\n\t\t\t}\n\t\t\te += \"\\\\\" // e.WriteByte('\\\\')\n\t\t\tswitch b {\n\t\t\tcase '\\\\', '\"':\n\t\t\t\te += string(b) // e.WriteByte(b)\n\t\t\tcase '\\n':\n\t\t\t\te += \"n\" // e.WriteByte('n')\n\t\t\tcase '\\r':\n\t\t\t\te += \"r\" // e.WriteByte('r')\n\t\t\tcase '\\t':\n\t\t\t\te += \"t\" // e.WriteByte('t')\n\t\t\tdefault:\n\t\t\t\t// This encodes bytes \u003c 0x20 except for \\t, \\n and \\r.\n\t\t\t\t// If escapeHTML is set, it also escapes \u003c, \u003e, and \u0026\n\t\t\t\t// because they can lead to security holes when\n\t\t\t\t// user-controlled strings are rendered into JSON\n\t\t\t\t// and served to some browsers.\n\t\t\t\te += `u00` // e.WriteString(`u00`)\n\t\t\t\te += string(hex[b\u003e\u003e4]) // e.WriteByte(hex[b\u003e\u003e4])\n\t\t\t\te += string(hex[b\u00260xF]) // e.WriteByte(hex[b\u00260xF])\n\t\t\t}\n\t\t\ti++\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\tc, size := utf8.DecodeRuneInString(s[i:])\n\t\tif c == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\tif start \u003c i {\n\t\t\t\te += s[start:i] // e.WriteString(s[start:i])\n\t\t\t}\n\t\t\te += `\\ufffd` // e.WriteString(`\\ufffd`)\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\t// U+2028 is LINE SEPARATOR.\n\t\t// U+2029 is PARAGRAPH SEPARATOR.\n\t\t// They are both technically valid characters in JSON strings,\n\t\t// but don't work in JSONP, which has to be evaluated as JavaScript,\n\t\t// and can lead to security holes there. It is valid JSON to\n\t\t// escape them, so we do so unconditionally.\n\t\t// See http://timelessrepo.com/json-isnt-a-javascript-subset for discussion.\n\t\tif c == '\\u2028' || c == '\\u2029' {\n\t\t\tif start \u003c i {\n\t\t\t\te += s[start:i] // e.WriteString(s[start:i])\n\t\t\t}\n\t\t\te += `\\u202` // e.WriteString(`\\u202`)\n\t\t\te += string(hex[c\u00260xF]) // e.WriteByte(hex[c\u00260xF])\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\ti += size\n\t}\n\tif start \u003c len(s) {\n\t\te += s[start:] // e.WriteString(s[start:])\n\t}\n\te += `\"` // e.WriteByte('\"')\n\treturn e\n}\n\n// Ported from https://cs.opensource.google/go/go/+/refs/tags/go1.20.6:src/encoding/json/decode.go\n// unquote converts a quoted JSON string literal s into an actual string t.\n// The rules are different than for Go, so cannot use strconv.Unquote.\nfunc ParseString(s string) string {\n\to, ok := unquoteBytes([]byte(s))\n\tif !ok {\n\t\tpanic(\"invalid string\")\n\t}\n\treturn string(o)\n}\n\nfunc unquoteBytes(s []byte) (t []byte, ok bool) {\n\tif len(s) \u003c 2 || s[0] != '\"' || s[len(s)-1] != '\"' {\n\t\treturn\n\t}\n\ts = s[1 : len(s)-1]\n\n\t// Check for unusual characters. If there are none,\n\t// then no unquoting is needed, so return a slice of the\n\t// original bytes.\n\tr := 0\n\tfor r \u003c len(s) {\n\t\tc := s[r]\n\t\tif c == '\\\\' || c == '\"' || c \u003c ' ' {\n\t\t\tbreak\n\t\t}\n\t\tif c \u003c utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\tbreak\n\t\t}\n\t\tr += size\n\t}\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tb := make([]byte, len(s)+2*utf8.UTFMax)\n\tw := copy(b, s[0:r])\n\tfor r \u003c len(s) {\n\t\t// Out of room? Can only happen if s is full of\n\t\t// malformed UTF-8 and we're replacing each\n\t\t// byte with RuneError.\n\t\tif w \u003e= len(b)-2*utf8.UTFMax {\n\t\t\tnb := make([]byte, (len(b)+utf8.UTFMax)*2)\n\t\t\tcopy(nb, b[0:w])\n\t\t\tb = nb\n\t\t}\n\t\tswitch c := s[r]; {\n\t\tcase c == '\\\\':\n\t\t\tr++\n\t\t\tif r \u003e= len(s) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tswitch s[r] {\n\t\t\tdefault:\n\t\t\t\treturn\n\t\t\tcase '\"', '\\\\', '/', '\\'':\n\t\t\t\tb[w] = s[r]\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'b':\n\t\t\t\tb[w] = '\\b'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'f':\n\t\t\t\tb[w] = '\\f'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'n':\n\t\t\t\tb[w] = '\\n'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'r':\n\t\t\t\tb[w] = '\\r'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 't':\n\t\t\t\tb[w] = '\\t'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'u':\n\t\t\t\tr--\n\t\t\t\trr := getu4(s[r:])\n\t\t\t\tif rr \u003c 0 {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tr += 6\n\t\t\t\tif utf16.IsSurrogate(rr) {\n\t\t\t\t\trr1 := getu4(s[r:])\n\t\t\t\t\tif dec := utf16.DecodeRune(rr, rr1); dec != ReplacementChar {\n\t\t\t\t\t\t// A valid pair; consume.\n\t\t\t\t\t\tr += 6\n\t\t\t\t\t\tw += utf8.EncodeRune(b[w:], dec)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// Invalid surrogate; fall back to replacement rune.\n\t\t\t\t\trr = ReplacementChar\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t// Quote, control characters are invalid.\n\t\tcase c == '\"', c \u003c ' ':\n\t\t\treturn\n\n\t\t// ASCII\n\t\tcase c \u003c utf8.RuneSelf:\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\n\t\t// Coerce to well-formed UTF-8.\n\t\tdefault:\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\treturn b[0:w], true\n}\n\n// getu4 decodes \\uXXXX from the beginning of s, returning the hex value,\n// or it returns -1.\nfunc getu4(s []byte) rune {\n\tif len(s) \u003c 6 || s[0] != '\\\\' || s[1] != 'u' {\n\t\treturn -1\n\t}\n\tvar r rune\n\tfor _, c := range s[2:6] {\n\t\tswitch {\n\t\tcase '0' \u003c= c \u0026\u0026 c \u003c= '9':\n\t\t\tc = c - '0'\n\t\tcase 'a' \u003c= c \u0026\u0026 c \u003c= 'f':\n\t\t\tc = c - 'a' + 10\n\t\tcase 'A' \u003c= c \u0026\u0026 c \u003c= 'F':\n\t\t\tc = c - 'A' + 10\n\t\tdefault:\n\t\t\treturn -1\n\t\t}\n\t\tr = r*16 + rune(c)\n\t}\n\treturn r\n}\n"},{"name":"tables.gno","body":"package ujson\n\nimport \"unicode/utf8\"\n\nvar hex = \"0123456789abcdef\"\n\n// safeSet holds the value true if the ASCII character with the given array\n// position can be represented inside a JSON string without any further\n// escaping.\n//\n// All values are true except for the ASCII control characters (0-31), the\n// double quote (\"), and the backslash character (\"\\\").\nvar safeSet = [utf8.RuneSelf]bool{\n\t' ': true,\n\t'!': true,\n\t'\"': false,\n\t'#': true,\n\t'$': true,\n\t'%': true,\n\t'\u0026': true,\n\t'\\'': true,\n\t'(': true,\n\t')': true,\n\t'*': true,\n\t'+': true,\n\t',': true,\n\t'-': true,\n\t'.': true,\n\t'/': true,\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t':': true,\n\t';': true,\n\t'\u003c': true,\n\t'=': true,\n\t'\u003e': true,\n\t'?': true,\n\t'@': true,\n\t'A': true,\n\t'B': true,\n\t'C': true,\n\t'D': true,\n\t'E': true,\n\t'F': true,\n\t'G': true,\n\t'H': true,\n\t'I': true,\n\t'J': true,\n\t'K': true,\n\t'L': true,\n\t'M': true,\n\t'N': true,\n\t'O': true,\n\t'P': true,\n\t'Q': true,\n\t'R': true,\n\t'S': true,\n\t'T': true,\n\t'U': true,\n\t'V': true,\n\t'W': true,\n\t'X': true,\n\t'Y': true,\n\t'Z': true,\n\t'[': true,\n\t'\\\\': false,\n\t']': true,\n\t'^': true,\n\t'_': true,\n\t'`': true,\n\t'a': true,\n\t'b': true,\n\t'c': true,\n\t'd': true,\n\t'e': true,\n\t'f': true,\n\t'g': true,\n\t'h': true,\n\t'i': true,\n\t'j': true,\n\t'k': true,\n\t'l': true,\n\t'm': true,\n\t'n': true,\n\t'o': true,\n\t'p': true,\n\t'q': true,\n\t'r': true,\n\t's': true,\n\t't': true,\n\t'u': true,\n\t'v': true,\n\t'w': true,\n\t'x': true,\n\t'y': true,\n\t'z': true,\n\t'{': true,\n\t'|': true,\n\t'}': true,\n\t'~': true,\n\t'\\u007f': true,\n}\n\n// htmlSafeSet holds the value true if the ASCII character with the given\n// array position can be safely represented inside a JSON string, embedded\n// inside of HTML \u003cscript\u003e tags, without any additional escaping.\n//\n// All values are true except for the ASCII control characters (0-31), the\n// double quote (\"), the backslash character (\"\\\"), HTML opening and closing\n// tags (\"\u003c\" and \"\u003e\"), and the ampersand (\"\u0026\").\nvar htmlSafeSet = [utf8.RuneSelf]bool{\n\t' ': true,\n\t'!': true,\n\t'\"': false,\n\t'#': true,\n\t'$': true,\n\t'%': true,\n\t'\u0026': false,\n\t'\\'': true,\n\t'(': true,\n\t')': true,\n\t'*': true,\n\t'+': true,\n\t',': true,\n\t'-': true,\n\t'.': true,\n\t'/': true,\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t':': true,\n\t';': true,\n\t'\u003c': false,\n\t'=': true,\n\t'\u003e': false,\n\t'?': true,\n\t'@': true,\n\t'A': true,\n\t'B': true,\n\t'C': true,\n\t'D': true,\n\t'E': true,\n\t'F': true,\n\t'G': true,\n\t'H': true,\n\t'I': true,\n\t'J': true,\n\t'K': true,\n\t'L': true,\n\t'M': true,\n\t'N': true,\n\t'O': true,\n\t'P': true,\n\t'Q': true,\n\t'R': true,\n\t'S': true,\n\t'T': true,\n\t'U': true,\n\t'V': true,\n\t'W': true,\n\t'X': true,\n\t'Y': true,\n\t'Z': true,\n\t'[': true,\n\t'\\\\': false,\n\t']': true,\n\t'^': true,\n\t'_': true,\n\t'`': true,\n\t'a': true,\n\t'b': true,\n\t'c': true,\n\t'd': true,\n\t'e': true,\n\t'f': true,\n\t'g': true,\n\t'h': true,\n\t'i': true,\n\t'j': true,\n\t'k': true,\n\t'l': true,\n\t'm': true,\n\t'n': true,\n\t'o': true,\n\t'p': true,\n\t'q': true,\n\t'r': true,\n\t's': true,\n\t't': true,\n\t'u': true,\n\t'v': true,\n\t'w': true,\n\t'x': true,\n\t'y': true,\n\t'z': true,\n\t'{': true,\n\t'|': true,\n\t'}': true,\n\t'~': true,\n\t'\\u007f': true,\n}\n"},{"name":"ujson_test.gno","body":"package ujson\n\nimport (\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc TestAST(t *testing.T) {\n\tjson := `{\"a\":[42, null, true, false, \"hello\\n\\t\\r\"],\"b\":-3,\"c\":{\"ia\":{}, \"ib\":{ \"foo\" : \"bar\"}},\"d\":4,\"e\":5}`\n\ttokens := tokenize(json)\n\texpected := 44\n\tif len(tokens) != expected {\n\t\tt.Errorf(\"Expected %d tokens, got %d\", expected, len(tokens))\n\t}\n\tremainingTokens, ast := parseAST(tokens)\n\tif len(remainingTokens) != 0 {\n\t\tt.Errorf(\"Expected 0 remaining tokens, got %d\", len(remainingTokens))\n\t}\n\tif ast.Kind != JSONKindObject {\n\t\tt.Errorf(\"Expected root node to be an object, got %s\", ast.Kind)\n\t}\n\texpectedTree := `{\"a\":[42,null,true,false,\"hello\\n\\t\\r\"],\"b\":-3,\"c\":{\"ia\":{},\"ib\":{\"foo\":\"bar\"}},\"d\":4,\"e\":5}`\n\tif ast.String() != expectedTree {\n\t\tt.Errorf(\"Expected root node to be `%s`, got `%s`\", expectedTree, ast.String())\n\t}\n}\n\ntype TestType struct {\n\tA []string `json:\"a\"`\n\tB int `json:\"b\"`\n\tC SubTestType\n\tD uint `json:\"d\"`\n\tE int `json:\"e\"`\n\tF bool `json:\"f\"`\n\t// G *EmptyType `json:\"g\"`\n\tAVLTree *avl.Tree `json:\"avlTree\"`\n}\n\nfunc (tt *TestType) FromJSON(ast *JSONASTNode) {\n\tast.ParseObject([]*ParseKV{\n\t\t{Key: \"a\", ArrayParser: func(children []*JSONASTNode) {\n\t\t\ttt.A = make([]string, len(children))\n\t\t\tfor i, child := range children {\n\t\t\t\tchild.ParseAny(\u0026tt.A[i])\n\t\t\t}\n\t\t}},\n\t\t{Key: \"b\", Value: \u0026tt.B},\n\t\t{Key: \"c\", Value: \u0026tt.C},\n\t\t{Key: \"d\", Value: \u0026tt.D},\n\t\t{Key: \"e\", Value: \u0026tt.E},\n\t\t{Key: \"f\", Value: \u0026tt.F},\n\t\t// {Key: \"g\", Value: \u0026tt.G},\n\t\t{Key: \"avlTree\", CustomParser: func(node *JSONASTNode) {\n\t\t\tif node.Kind != JSONKindObject {\n\t\t\t\tpanic(\"Expected avlTree to be an object\")\n\t\t\t}\n\t\t\ttt.AVLTree = avl.NewTree()\n\t\t\tfor _, child := range node.ObjectChildren {\n\t\t\t\tvar t string\n\t\t\t\tchild.Value.ParseAny(\u0026t)\n\t\t\t\ttt.AVLTree.Set(child.Key, t)\n\t\t\t}\n\t\t}},\n\t})\n}\n\nfunc (tt TestType) ToJSON() string {\n\tiSlice := make([]interface{}, len(tt.A))\n\tfor i, v := range tt.A {\n\t\tiSlice[i] = v\n\t}\n\treturn FormatObject([]FormatKV{\n\t\t{Key: \"a\", Value: FormatSlice(iSlice), Raw: true},\n\t\t{Key: \"b\", Value: tt.B},\n\t\t{Key: \"c\", Value: tt.C},\n\t\t{Key: \"d\", Value: tt.D},\n\t\t{Key: \"e\", Value: tt.E},\n\t\t{Key: \"f\", Value: tt.F},\n\t\t// {Key: \"g\", Value: tt.G},\n\t\t{Key: \"avlTree\", Value: tt.AVLTree},\n\t})\n}\n\ntype SubTestType struct {\n\tIA EmptyType `json:\"ia\"`\n\tIB SubSubTestType `json:\"ib\"`\n}\n\nfunc (stt *SubTestType) FromJSON(ast *JSONASTNode) {\n\tast.ParseObject([]*ParseKV{\n\t\t{Key: \"ia\", Value: \u0026stt.IA},\n\t\t{Key: \"ib\", Value: \u0026stt.IB},\n\t})\n}\n\nfunc (stt SubTestType) ToJSON() string {\n\treturn FormatObject([]FormatKV{\n\t\t{Key: \"ia\", Value: stt.IA},\n\t\t{Key: \"ib\", Value: stt.IB},\n\t})\n}\n\ntype EmptyType struct{}\n\nfunc (et *EmptyType) FromJSON(ast *JSONASTNode) {\n\tast.ParseObject([]*ParseKV{})\n}\n\nfunc (et EmptyType) ToJSON() string {\n\treturn FormatObject([]FormatKV{})\n}\n\ntype SubSubTestType struct {\n\tFoo string `json:\"foo\"`\n}\n\nfunc (sstt *SubSubTestType) FromJSON(ast *JSONASTNode) {\n\tast.ParseObject([]*ParseKV{\n\t\t{Key: \"foo\", Value: \u0026sstt.Foo},\n\t})\n}\n\nfunc (sstt SubSubTestType) ToJSON() string {\n\treturn FormatObject([]FormatKV{\n\t\t{Key: \"foo\", Value: sstt.Foo},\n\t})\n}\n\nfunc TestNestedObject(t *testing.T) {\n\tjson := `{\"a\":[\"42\",\"null\",\"true\",\"false\",\"hello\\t\\n\\r\"],\"b\":-3,\"c\":{\"ia\":{},\"ib\":{\"foo\":\"bar\"}},\"d\":4,\"e\":5,\"f\":true,\"g\":null,\"avlTree\":{\"bar\":\"foo\"}}`\n\tvar tt TestType\n\tParseAny(json, \u0026tt)\n\n\tif len(tt.A) != 5 {\n\t\tt.Errorf(\"Expected A to have 5 elements, got %d\", len(tt.A))\n\t}\n\texpected := \"42, null, true, false, hello\\t\\n\\r\"\n\tif strings.Join(tt.A, \", \") != expected {\n\t\tt.Errorf(\"Expected A to be `%s`, got `%s`\", expected, tt.A[0])\n\t}\n\n\tif tt.B != -3 {\n\t\tt.Errorf(\"Expected B to be -3, got %f\", tt.B)\n\t}\n\n\tif tt.D != 4 {\n\t\tt.Errorf(\"Expected D to be 4, got %d\", tt.D)\n\t}\n\n\tif tt.E != 5 {\n\t\tt.Errorf(\"Expected E to be 5, got %d\", tt.E)\n\t}\n\n\tif !tt.F {\n\t\tt.Errorf(\"Expected F to be true, got false\")\n\t}\n\n\t/*\n\t\tif tt.G != nil {\n\t\t\tt.Errorf(\"Expected G to be nil, got %v\", tt.G)\n\t\t}\n\t*/\n\n\toutput := FormatAny(tt)\n\texpected = `{\"a\":[\"42\",\"null\",\"true\",\"false\",\"hello\\t\\n\\r\"],\"b\":-3,\"c\":{\"ia\":{},\"ib\":{\"foo\":\"bar\"}},\"d\":4,\"e\":5,\"f\":true,\"avlTree\":{\"bar\":\"foo\"}}`\n\tif output != expected {\n\t\tt.Errorf(\"Expected output to be `%s`, got `%s`\", expected, output)\n\t}\n}\n\nfunc TestTime(t *testing.T) {\n\tjson := `\"2020-01-01T00:00:00Z\"`\n\n\tvar tt time.Time\n\tParseAny(json, \u0026tt)\n\texpected := \"2020-01-01T00:00:00Z\"\n\tif tt.Format(time.RFC3339) != expected {\n\t\tt.Errorf(\"Expected A to be `%s`, got `%s`\", expected, tt.Format(time.RFC3339))\n\t}\n\n\tojson := FormatAny(tt)\n\tif ojson != json {\n\t\tt.Errorf(\"Expected output to be `%s`, got `%s`\", json, ojson)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4FogioUVhMllf2RYiw/NphRlPBmAy9wL1Yy3HXOQTc/xL74MHnqPEPdq+zJ+wP/bCBp49HTgyibjVjHJdsiTDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","package":{"name":"utf16","path":"gno.land/p/teritori/utf16","files":[{"name":"utf16.gno","body":"// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package utf16 implements encoding and decoding of UTF-16 sequences.\npackage utf16\n\n// The conditions replacementChar==unicode.ReplacementChar and\n// maxRune==unicode.MaxRune are verified in the tests.\n// Defining them locally avoids this package depending on package unicode.\n\nconst (\n\treplacementChar = '\\uFFFD' // Unicode replacement character\n\tmaxRune = '\\U0010FFFF' // Maximum valid Unicode code point.\n)\n\nconst (\n\t// 0xd800-0xdc00 encodes the high 10 bits of a pair.\n\t// 0xdc00-0xe000 encodes the low 10 bits of a pair.\n\t// the value is those 20 bits plus 0x10000.\n\tsurr1 = 0xd800\n\tsurr2 = 0xdc00\n\tsurr3 = 0xe000\n\n\tsurrSelf = 0x10000\n)\n\n// IsSurrogate reports whether the specified Unicode code point\n// can appear in a surrogate pair.\nfunc IsSurrogate(r rune) bool {\n\treturn surr1 \u003c= r \u0026\u0026 r \u003c surr3\n}\n\n// DecodeRune returns the UTF-16 decoding of a surrogate pair.\n// If the pair is not a valid UTF-16 surrogate pair, DecodeRune returns\n// the Unicode replacement code point U+FFFD.\nfunc DecodeRune(r1, r2 rune) rune {\n\tif surr1 \u003c= r1 \u0026\u0026 r1 \u003c surr2 \u0026\u0026 surr2 \u003c= r2 \u0026\u0026 r2 \u003c surr3 {\n\t\treturn (r1-surr1)\u003c\u003c10 | (r2 - surr2) + surrSelf\n\t}\n\treturn replacementChar\n}\n\n// EncodeRune returns the UTF-16 surrogate pair r1, r2 for the given rune.\n// If the rune is not a valid Unicode code point or does not need encoding,\n// EncodeRune returns U+FFFD, U+FFFD.\nfunc EncodeRune(r rune) (r1, r2 rune) {\n\tif r \u003c surrSelf || r \u003e maxRune {\n\t\treturn replacementChar, replacementChar\n\t}\n\tr -= surrSelf\n\treturn surr1 + (r\u003e\u003e10)\u00260x3ff, surr2 + r\u00260x3ff\n}\n\n// Encode returns the UTF-16 encoding of the Unicode code point sequence s.\nfunc Encode(s []rune) []uint16 {\n\tn := len(s)\n\tfor _, v := range s {\n\t\tif v \u003e= surrSelf {\n\t\t\tn++\n\t\t}\n\t}\n\n\ta := make([]uint16, n)\n\tn = 0\n\tfor _, v := range s {\n\t\tswitch {\n\t\tcase 0 \u003c= v \u0026\u0026 v \u003c surr1, surr3 \u003c= v \u0026\u0026 v \u003c surrSelf:\n\t\t\t// normal rune\n\t\t\ta[n] = uint16(v)\n\t\t\tn++\n\t\tcase surrSelf \u003c= v \u0026\u0026 v \u003c= maxRune:\n\t\t\t// needs surrogate sequence\n\t\t\tr1, r2 := EncodeRune(v)\n\t\t\ta[n] = uint16(r1)\n\t\t\ta[n+1] = uint16(r2)\n\t\t\tn += 2\n\t\tdefault:\n\t\t\ta[n] = uint16(replacementChar)\n\t\t\tn++\n\t\t}\n\t}\n\treturn a[:n]\n}\n\n// Decode returns the Unicode code point sequence represented\n// by the UTF-16 encoding s.\nfunc Decode(s []uint16) []rune {\n\ta := make([]rune, len(s))\n\tn := 0\n\tfor i := 0; i \u003c len(s); i++ {\n\t\tswitch r := s[i]; {\n\t\tcase r \u003c surr1, surr3 \u003c= r:\n\t\t\t// normal rune\n\t\t\ta[n] = rune(r)\n\t\tcase surr1 \u003c= r \u0026\u0026 r \u003c surr2 \u0026\u0026 i+1 \u003c len(s) \u0026\u0026\n\t\t\tsurr2 \u003c= s[i+1] \u0026\u0026 s[i+1] \u003c surr3:\n\t\t\t// valid surrogate sequence\n\t\t\ta[n] = DecodeRune(rune(r), rune(s[i+1]))\n\t\t\ti++\n\t\tdefault:\n\t\t\t// invalid surrogate sequence\n\t\t\ta[n] = replacementChar\n\t\t}\n\t\tn++\n\t}\n\treturn a[:n]\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GSnazwbDUhoG8HXZdPBGTg8AneNbpKLqHWtVdmLbOhqyaolhTAV5xQL34NMeTy+QO+Q40LOlvhl7cUUXQowXCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16papy2npq78kdqky8py04wven3ex8qrvyfprjf","package":{"name":"guessbook","path":"gno.land/r/nebular24/guessbook","files":[{"name":"README.md","body":"## 04_GnoLand - Publish Your Realm on Gno.Land\n\n`Gno.Land` is the platform where you can upload your contract and make it available to the world, on-chain. When publishing on `Gno.Land`, there is no rollback or hot reload. Your contract will remain there permanently, so be cautious when choosing the package path to publish your realm.\n\n### Faucet Hub\n\nUnlike `gnodev`, you don't have any tokens to interact with the chain (yet). Let's get some for your key on the `Faucet Hub`.\n\n1. Go to https://faucet.gno.land and select `Portal Loop`.\n2. Enter the wallet address you created in the previous section (use `gnokey list` to retrieve the key address).\n3. Select the faucet amount and click on `Request Drip`.\n\nYour address should now have received some tokens!\n\nYou can verify your current balance by running:\n```bash\n$ gnokey query --remote https://rpc.gno.land bank/balances/\u003cwallet_address\u003e\n```\n\u003e wallet address should be in the form `g1xxxx...`\n\nThis command should display the current amount of `ugnot` you possess in your wallet.\n\n### Publish\n\nNow, it's time to upload your first package. We'll upload the package inside `04_gnoland`.\n\n1. Choose a package path name. It's recommended to use your address as the namespace for your contract:\n * Example: `gno.land/r/g1hr3dl82edy84a5f3dmchh0due7zgwm5rnns6na/myrealm`\n2. Run the following command to publish the package on `gno.land`:\n```bash\n$ gnokey maketx addpkg \"\u003cMY_KEY_NAME\u003e\" \\\n -pkgpath \"\u003cPKG_PATH_NAME\u003e\" \\\n -pkgdir \"\u003cLOCAL_PKG_DIR\u003e\" \\\n -deposit 1000000ugnot \\\n -gas-fee 100000ugnot \\\n -gas-wanted 1000000 \\\n -broadcast \\\n -chainid portal-loop \\\n -remote https://rpc.gno.land\n\n# * `MY_KEY_NAME`: the name of your key used in the gnokey section; use `gnokey list` to retrieve it.\n# * `LOCAL_PKG_DIR`: the local directory containing the realm (package) you want to publish.\n# * `PKG_PATH_NAME`: the package path name you chose in step 1.\n# * You will be prompted for your key password.\n```\n3. Visit your realm on `gno.land` using the package path you chose in step 1.\n * Example: `https://gno.land/r/g1hr3dl82edy84a5f3dmchh0due7zgwm5rnns6na/myrealm`\n\n### BONUS: Gno Bro\n\nThere are many ways to explore realms. Try running:\n```bash\n$ ssh bro.gno.cool\n```\n\nThis will bring you to a terminal-based version of `gno.land`, where you can fetch the previously published realm by typing its path. Enjoy the magic!"},{"name":"guess_book.gno","body":"package guessbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Message struct {\n\tContent string\n\tAuthor string\n\tDate time.Time\n}\n\nvar (\n\tmessages []Message\n\tusers avl.Tree // std.Address -\u003e true\n)\n\nfunc AddMessage(message string) {\n\tstd.AssertOriginCall()\n\n\tcaller := std.GetOrigCaller().String()\n\n\tif _, ok := users.Get(caller); ok {\n\t\tpanic(\"caller have alreay register a message\")\n\t}\n\n\tusers.Set(caller, true)\n\tmessages = append(messages, Message{\n\t\tAuthor: caller,\n\t\tContent: message,\n\t\tDate: time.Now(),\n\t})\n}\n\nfunc renderMessages(msgs []Message) string {\n\tvar str strings.Builder\n\n\tfor i, msg := range msgs {\n\t\tif i \u003e 0 {\n\t\t\tstr.WriteString(\"---\")\n\t\t}\n\n\t\tstr.WriteString(renderMessage(msg))\n\t\tstr.WriteRune('\\n')\n\t}\n\n\treturn str.String()\n}\n\nfunc renderMessage(msg Message) string {\n\tvar str strings.Builder\n\n\tstr.WriteRune('\\n')\n\tstr.WriteString(\"#### Writen By \" + msg.Author +\n\t\t\" on \" + msg.Date.Format(\"02 Jan 2006\"))\n\tstr.WriteRune('\\n')\n\tstr.WriteString(msg.Content)\n\tstr.WriteRune('\\n')\n\n\treturn str.String()\n}\n\nfunc Render(path string) string {\n\tconst messagePerPage = 5\n\n\tif len(messages) == 0 {\n\t\treturn \"no messages yet :(\"\n\t}\n\n\tpage := 0\n\tif path != \"\" {\n\t\tvar err error\n\t\tpage, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(\"unable get page number from path\")\n\t\t}\n\n\t\tif page \u003c 1 || (page*messagePerPage) \u003e len(messages) {\n\t\t\tpanic(\"invalid page number\")\n\t\t}\n\n\t\tpage--\n\t}\n\n\tstartpage := page * messagePerPage\n\tendPage := min(startpage+messagePerPage, len(messages))\n\tmshow := messages[startpage:endPage]\n\n\tvar view strings.Builder\n\tview.WriteString(renderMessages(mshow))\n\tview.WriteRune('\\n')\n\tview.WriteString(\"---\")\n\tview.WriteRune('\\n')\n\n\treturn view.String()\n}\n\nfunc min(a, b int) int {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\n\treturn b\n}\n"}]},"deposit":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+7FAFiepQSFpMh/B3RQ7euXM6Rw8C+oqk1y+qsnaNXzM9M7BYs0YSOondR0/a08aqJKU0B8/cRMMgwgFrhobCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16papy2npq78kdqky8py04wven3ex8qrvyfprjf","package":{"name":"guessbook","path":"gno.land/r/nebular24/guessbook","files":[{"name":"README.md","body":"## 04_GnoLand - Publish Your Realm on Gno.Land\n\n`Gno.Land` is the platform where you can upload your contract and make it available to the world, on-chain. When publishing on `Gno.Land`, there is no rollback or hot reload. Your contract will remain there permanently, so be cautious when choosing the package path to publish your realm.\n\n### Faucet Hub\n\nUnlike `gnodev`, you don't have any tokens to interact with the chain (yet). Let's get some for your key on the `Faucet Hub`.\n\n1. Go to https://faucet.gno.land and select `Portal Loop`.\n2. Enter the wallet address you created in the previous section (use `gnokey list` to retrieve the key address).\n3. Select the faucet amount and click on `Request Drip`.\n\nYour address should now have received some tokens!\n\nYou can verify your current balance by running:\n```bash\n$ gnokey query --remote https://rpc.gno.land bank/balances/\u003cwallet_address\u003e\n```\n\u003e wallet address should be in the form `g1xxxx...`\n\nThis command should display the current amount of `ugnot` you possess in your wallet.\n\n### Publish\n\nNow, it's time to upload your first package. We'll upload the package inside `04_gnoland`.\n\n1. Choose a package path name. It's recommended to use your address as the namespace for your contract:\n * Example: `gno.land/r/g1hr3dl82edy84a5f3dmchh0due7zgwm5rnns6na/myrealm`\n2. Run the following command to publish the package on `gno.land`:\n```bash\n$ gnokey maketx addpkg \"\u003cMY_KEY_NAME\u003e\" \\\n -pkgpath \"\u003cPKG_PATH_NAME\u003e\" \\\n -pkgdir \"\u003cLOCAL_PKG_DIR\u003e\" \\\n -deposit 1000000ugnot \\\n -gas-fee 100000ugnot \\\n -gas-wanted 1000000 \\\n -broadcast \\\n -chainid portal-loop \\\n -remote https://rpc.gno.land\n\n# * `MY_KEY_NAME`: the name of your key used in the gnokey section; use `gnokey list` to retrieve it.\n# * `LOCAL_PKG_DIR`: the local directory containing the realm (package) you want to publish.\n# * `PKG_PATH_NAME`: the package path name you chose in step 1.\n# * You will be prompted for your key password.\n```\n3. Visit your realm on `gno.land` using the package path you chose in step 1.\n * Example: `https://gno.land/r/g1hr3dl82edy84a5f3dmchh0due7zgwm5rnns6na/myrealm`\n\n### BONUS: Gno Bro\n\nThere are many ways to explore realms. Try running:\n```bash\n$ ssh bro.gno.cool\n```\n\nThis will bring you to a terminal-based version of `gno.land`, where you can fetch the previously published realm by typing its path. Enjoy the magic!"},{"name":"guess_book.gno","body":"package guessbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Message struct {\n\tContent string\n\tAuthor string\n\tDate time.Time\n}\n\nvar (\n\tmessages []Message\n\tusers avl.Tree // std.Address -\u003e true\n)\n\nfunc AddMessage(message string) {\n\tstd.AssertOriginCall()\n\n\tcaller := std.GetOrigCaller().String()\n\n\tif _, ok := users.Get(caller); ok {\n\t\tpanic(\"caller have alreay register a message\")\n\t}\n\n\tusers.Set(caller, true)\n\tmessages = append(messages, Message{\n\t\tAuthor: caller,\n\t\tContent: message,\n\t\tDate: time.Now(),\n\t})\n}\n\nfunc renderMessages(msgs []Message) string {\n\tvar str strings.Builder\n\n\tfor i, msg := range msgs {\n\t\tif i \u003e 0 {\n\t\t\tstr.WriteString(\"---\")\n\t\t}\n\n\t\tstr.WriteString(renderMessage(msg))\n\t\tstr.WriteRune('\\n')\n\t}\n\n\treturn str.String()\n}\n\nfunc renderMessage(msg Message) string {\n\tvar str strings.Builder\n\n\tstr.WriteRune('\\n')\n\tstr.WriteString(\"#### Writen By \" + msg.Author +\n\t\t\" on \" + msg.Date.Format(\"02 Jan 2006\"))\n\tstr.WriteRune('\\n')\n\tstr.WriteString(msg.Content)\n\tstr.WriteRune('\\n')\n\n\treturn str.String()\n}\n\nfunc Render(path string) string {\n\tconst messagePerPage = 5\n\n\tif len(messages) == 0 {\n\t\treturn \"no messages yet :(\"\n\t}\n\n\tpage := 0\n\tif path != \"\" {\n\t\tvar err error\n\t\tpage, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(\"unable get page number from path\")\n\t\t}\n\n\t\tif page \u003c 1 || (page*messagePerPage) \u003e len(messages) {\n\t\t\tpanic(\"invalid page number\")\n\t\t}\n\n\t\tpage--\n\t}\n\n\tstartpage := page * messagePerPage\n\tendPage := min(startpage+messagePerPage, len(messages))\n\tmshow := messages[startpage:endPage]\n\n\tvar view strings.Builder\n\tview.WriteString(renderMessages(mshow))\n\tview.WriteRune('\\n')\n\tview.WriteString(\"---\")\n\tview.WriteRune('\\n')\n\n\treturn view.String()\n}\n\nfunc min(a, b int) int {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\n\treturn b\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xhbn/8bs3PHYfjJ6IcGU3QOd/56Ek+zT1DGfqTlU4t3ugDLNS1seWB7AULWpPsntzImFDT2iIX/jO0ZnzkeVAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16papy2npq78kdqky8py04wven3ex8qrvyfprjf","package":{"name":"guessbook","path":"gno.land/r/nebular24/guessbook","files":[{"name":"README.md","body":"## 04_GnoLand - Publish Your Realm on Gno.Land\n\n`Gno.Land` is the platform where you can upload your contract and make it available to the world, on-chain. When publishing on `Gno.Land`, there is no rollback or hot reload. Your contract will remain there permanently, so be cautious when choosing the package path to publish your realm.\n\n### Faucet Hub\n\nUnlike `gnodev`, you don't have any tokens to interact with the chain (yet). Let's get some for your key on the `Faucet Hub`.\n\n1. Go to https://faucet.gno.land and select `Portal Loop`.\n2. Enter the wallet address you created in the previous section (use `gnokey list` to retrieve the key address).\n3. Select the faucet amount and click on `Request Drip`.\n\nYour address should now have received some tokens!\n\nYou can verify your current balance by running:\n```bash\n$ gnokey query --remote https://rpc.gno.land bank/balances/\u003cwallet_address\u003e\n```\n\u003e wallet address should be in the form `g1xxxx...`\n\nThis command should display the current amount of `ugnot` you possess in your wallet.\n\n### Publish\n\nNow, it's time to upload your first package. We'll upload the package inside `04_gnoland`.\n\n1. Choose a package path name. It's recommended to use your address as the namespace for your contract:\n * Example: `gno.land/r/g1hr3dl82edy84a5f3dmchh0due7zgwm5rnns6na/myrealm`\n2. Run the following command to publish the package on `gno.land`:\n```bash\n$ gnokey maketx addpkg \"\u003cMY_KEY_NAME\u003e\" \\\n -pkgpath \"\u003cPKG_PATH_NAME\u003e\" \\\n -pkgdir \"\u003cLOCAL_PKG_DIR\u003e\" \\\n -deposit 1000000ugnot \\\n -gas-fee 100000ugnot \\\n -gas-wanted 1000000 \\\n -broadcast \\\n -chainid portal-loop \\\n -remote https://rpc.gno.land\n\n# * `MY_KEY_NAME`: the name of your key used in the gnokey section; use `gnokey list` to retrieve it.\n# * `LOCAL_PKG_DIR`: the local directory containing the realm (package) you want to publish.\n# * `PKG_PATH_NAME`: the package path name you chose in step 1.\n# * You will be prompted for your key password.\n```\n3. Visit your realm on `gno.land` using the package path you chose in step 1.\n * Example: `https://gno.land/r/g1hr3dl82edy84a5f3dmchh0due7zgwm5rnns6na/myrealm`\n\n### BONUS: Gno Bro\n\nThere are many ways to explore realms. Try running:\n```bash\n$ ssh bro.gno.cool\n```\n\nThis will bring you to a terminal-based version of `gno.land`, where you can fetch the previously published realm by typing its path. Enjoy the magic!"},{"name":"guess_book.gno","body":"package guessbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Message struct {\n\tContent string\n\tAuthor string\n\tDate time.Time\n}\n\nvar (\n\tmessages []Message\n\tusers avl.Tree // std.Address -\u003e true\n)\n\nfunc AddMessage(message string) {\n\tstd.AssertOriginCall()\n\n\tcaller := std.GetOrigCaller().String()\n\n\tif _, ok := users.Get(caller); ok {\n\t\tpanic(\"caller have alreay register a message\")\n\t}\n\n\tusers.Set(caller, true)\n\tmessages = append(messages, Message{\n\t\tAuthor: caller,\n\t\tContent: message,\n\t\tDate: time.Now(),\n\t})\n}\n\nfunc renderMessages(msgs []Message) string {\n\tvar str strings.Builder\n\n\tfor i, msg := range msgs {\n\t\tif i \u003e 0 {\n\t\t\tstr.WriteString(\"---\")\n\t\t}\n\n\t\tstr.WriteString(renderMessage(msg))\n\t\tstr.WriteRune('\\n')\n\t}\n\n\treturn str.String()\n}\n\nfunc renderMessage(msg Message) string {\n\tvar str strings.Builder\n\n\tstr.WriteRune('\\n')\n\tstr.WriteString(\"#### Writen By \" + msg.Author +\n\t\t\" on \" + msg.Date.Format(\"02 Jan 2006\"))\n\tstr.WriteRune('\\n')\n\tstr.WriteString(msg.Content)\n\tstr.WriteRune('\\n')\n\n\treturn str.String()\n}\n\nfunc Render(path string) string {\n\tconst messagePerPage = 5\n\n\tif len(messages) == 0 {\n\t\treturn \"no messages yet :(\"\n\t}\n\n\tpage := 0\n\tif path != \"\" {\n\t\tvar err error\n\t\tpage, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(\"unable get page number from path\")\n\t\t}\n\n\t\tif page \u003c 1 || (page*messagePerPage) \u003e len(messages) {\n\t\t\tpanic(\"invalid page number\")\n\t\t}\n\n\t\tpage--\n\t}\n\n\tstartpage := page * messagePerPage\n\tendPage := min(startpage+messagePerPage, len(messages))\n\tmshow := messages[startpage:endPage]\n\n\tvar view strings.Builder\n\tview.WriteString(renderMessages(mshow))\n\tview.WriteRune('\\n')\n\tview.WriteString(\"---\")\n\tview.WriteRune('\\n')\n\n\treturn view.String()\n}\n\nfunc min(a, b int) int {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\n\treturn b\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"92ko61LqI9g4kl5susbQZYXpa2tGcE2weMuCrBHNI1hkuCoVPz+i2JAN2uS9Qf+J7fdr6RsDsl2bKIkq0FV5Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","package":{"name":"gc","path":"gno.land/r/gc/gc","files":[{"name":"gc.gno","body":"package gc\n\nimport (\n\t\"gno.land/r/j/counter\"\n)\n\nvar block = make([]byte, 1\u003c\u003c20)\n\nfunc Inc() {\n\tfor i := range block {\n\t\tblock[i] = byte(i)\n\t}\n}\n\nfunc Render(_ string) string {\n\tcounter.Increment()\n\tInc()\n\n\treturn \"ok\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"1000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PEuTkthkNFRhCEjTHt7FaUl9o9pLr8x96k3LgWWhrY+lFsKS0ZW9URVdFPtuBfINu3iWXIprn4WASF3IauM+AQ=="}],"memo":""},"metadata":{"timestamp":"1734386792"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","package":{"name":"gc","path":"gno.land/r/gc/gc","files":[{"name":"gc.gno","body":"package gc\n\nimport (\n\t\"gno.land/r/j/counter\"\n)\n\nvar block = make([]byte, 1\u003c\u003c20)\n\nfunc Inc() {\n\tfor i := range block {\n\t\tblock[i] = byte(i)\n\t}\n}\n\nfunc Render(_ string) string {\n\tcounter.Increment()\n\tInc()\n\n\treturn \"ok\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"35746889","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6FrRs9dPLvQDAupv8csghE+EUrK0sCyoUCzITrE6N+0Agf1F0moRmo3eumcCLx7rawuI5XoCVChAM+36QmSYCg=="}],"memo":""},"metadata":{"timestamp":"1734386947"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","package":{"name":"gc2","path":"gno.land/r/gc/gc2","files":[{"name":"gc.gno","body":"package gc2\n\nvar block = make([]byte, 1\u003c\u003c20)\n\nfunc Inc() {\n\tfor i := range block {\n\t\tblock[i] = byte(i)\n\t}\n}\n\nfunc Render(_ string) string {\n\tInc()\n\n\treturn string(block)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"32610209","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lTC4uR+qbN7D6YaLYcDs5LRNYy5sJuq/QSsEP5KRZro11Habiq6vZsbwVizH/ACOQsKqGK9i5Gqw4EbY9TI2CA=="}],"memo":""},"metadata":{"timestamp":"1734387921"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","package":{"name":"gc3","path":"gno.land/r/gc/gc3","files":[{"name":"gc.gno","body":"package gc3\n\nvar block [][]byte\n\nfunc Inc() {\n\tfor {\n\t\tmemChunk := make([]byte, 10\u003c\u003c20) // Allocate 10MB\n\t\tblock = append(block, memChunk)\n\t}\n}\n\nfunc Render(_ string) string {\n\tInc()\n\n\tfor i := 0; i \u003c len(block); i++ {\n\t\t_ = string(block[i])\n\t}\n\n\treturn string(block[0])\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"156016","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cxm+NL9xMVAJzlEa+hIyY6AFCNmWKTzHXzid67+8UcYjC73gQyfQ88q/M9zcgKa4d2JHhLtz7kH8khL7okz4DQ=="}],"memo":""},"metadata":{"timestamp":"1734388318"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","package":{"name":"gc4","path":"gno.land/r/gc/gc4","files":[{"name":"gc.gno","body":"package gc4\n\nvar block [][]byte\n\nfunc Inc() {\n\tfor i := 0; i \u003c 10; i++ {\n\t\tmemChunk := make([]byte, 100\u003c\u003c20)\n\t\tblock = append(block, memChunk)\n\t}\n}\n\nfunc Render(_ string) string {\n\tInc()\n\tInc()\n\n\treturn string(block[0])\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"156016","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u9n/H4XOTLzSDi+MTfuMmkruVfZ4Ae6U9uFe43LZtSIDCKjbdTUWpxoVKl7bgpW3FWFRkaivVDwh5FBIwDpxDA=="}],"memo":""},"metadata":{"timestamp":"1734388539"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fYhKJ/mSwpSrf50pix72P0hejJKkS1zkuit+vW5v4HHx/4dOJXvozb7ot01r3va2VD9FjLlODJ96gUr9GKM6CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fYhKJ/mSwpSrf50pix72P0hejJKkS1zkuit+vW5v4HHx/4dOJXvozb7ot01r3va2VD9FjLlODJ96gUr9GKM6CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fYhKJ/mSwpSrf50pix72P0hejJKkS1zkuit+vW5v4HHx/4dOJXvozb7ot01r3va2VD9FjLlODJ96gUr9GKM6CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g176py0kpfzcm0aghmyz06flyrepsvv422fmcgcc","package":{"name":"raffle","path":"gno.land/r/slowteetoe/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"wNx9fUoBr8\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KuGD2Pp+wrUnZh83zWzT+261W4AqvkjRpt/jK1thCvuvSxNzRVeQON6ChKxgTdSAVLspR1tDBlcpDRQP1eXFDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"09hXTdaN3xoqAH9kzVp63GZcPJoSN1oA7PBBHvdV0Q5+YJi5mVioTFe/xv07qOZPyAuQZ3yq7KBZjPqlf1oDAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"09hXTdaN3xoqAH9kzVp63GZcPJoSN1oA7PBBHvdV0Q5+YJi5mVioTFe/xv07qOZPyAuQZ3yq7KBZjPqlf1oDAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"09hXTdaN3xoqAH9kzVp63GZcPJoSN1oA7PBBHvdV0Q5+YJi5mVioTFe/xv07qOZPyAuQZ3yq7KBZjPqlf1oDAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"09hXTdaN3xoqAH9kzVp63GZcPJoSN1oA7PBBHvdV0Q5+YJi5mVioTFe/xv07qOZPyAuQZ3yq7KBZjPqlf1oDAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"09hXTdaN3xoqAH9kzVp63GZcPJoSN1oA7PBBHvdV0Q5+YJi5mVioTFe/xv07qOZPyAuQZ3yq7KBZjPqlf1oDAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"gnome","path":"gno.land/r/michelle/gnome","files":[{"name":"package.gno","body":"package home\n\nimport (\n\t\"strings\"\n)\n\nvar (\n\taboutme string\n)\n\nfunc init() {\n\taboutme = \"Howdy! I'm Michelle - let's see if I can deploy this home realm. I'm a student of Gno.\"\n}\n\n// Render renders the home realm content.\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\tsb.WriteString(aboutme)\n\treturn sb.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"a7dHOx9kYIoQQEgykulOe8SvjY1seKHXRRE74AJZ54rOH4gVxF/CAzDfOvA4Pz8o1oeArodlmi9g0fPcynuvBw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1736334679"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"hello","path":"gno.land/r/michelle/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rT1p1zKJ3tbN3bexagyOhfvYhSio8TqpS0QcM41x0VVpugizv+rzNMVP2fqybQvqO25fHsIgiY+W/0MTDpzrBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"home","path":"gno.land/r/michelle/home","files":[{"name":"package.gno","body":"package home\n\nimport (\n\t\"strings\"\n)\n\nvar (\n\taboutme string\n)\n\nfunc init() {\n\taboutme = \"Howdy! I'm Michelle - let's see if I can deploy this home realm. I'm a student of Gno.\"\n}\n\n// Render renders the home realm content.\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\tsb.WriteString(aboutme)\n\treturn sb.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8fQrJxoY7Dt723gFql5CcON2CcEijrPrxncHBRcG5m+2F7NJ/mmFDt8UAz0RNg+/yPpS61TW0n260uhmzsOoBQ=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1736334714"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","package":{"name":"main","path":"gno.land/r/michelle/main","files":[{"name":"main.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao\"\n\t\"gno.land/r/sys/validators\"\n)\n\nfunc main() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\texecutor := validators.NewPropExecutor(changesFn)\n\tcomment := \"manual valset changes proposal example\"\n\tgovdao.Propose(comment, executor)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZRPCN6JJ798rdlXDnpQV6UknNqg4xTQJN1zXpZJ/n7oF4sAJFOpZ6TngEM7p7J9XmNE8gLTOCuOVCd29JnAuDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g17v0m2m3tdxezfwt79sv0gkx0tyua4099dj5h9u","package":{"name":"raffle","path":"gno.land/r/gc24/ghostlandr/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"Do4XRqAc1b\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ARflzH6AKqTmZLlplGecG3CaUq6TTF46ke1LeR/btmLO1k3itkNVosbVBeVIqrEq+JLi8mfcaOmLm8d+Hg0ZBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g17zumnvtv34mpzcva2n7jnux9jnq9kdau7km580","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zAxfSLNGJx9m4Zo4Ifq2yiZaYTa0+uDC7pLPDGtGwvW/iN50b3/uRcLnqU1+JtmnooqdGrVfhDnOeAABdJSSCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KSChyVpuEn56MGG1fSAgickbB2d18OaZaPBaORLsTF7iRH2ybMVTFvQrQUw3JHqy+FLWJMGokruFo8taLRQjBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KSChyVpuEn56MGG1fSAgickbB2d18OaZaPBaORLsTF7iRH2ybMVTFvQrQUw3JHqy+FLWJMGokruFo8taLRQjBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KSChyVpuEn56MGG1fSAgickbB2d18OaZaPBaORLsTF7iRH2ybMVTFvQrQUw3JHqy+FLWJMGokruFo8taLRQjBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XGw+II9akMUoNUbFazh1Pt2flQwlWeBB1SOGVulMVf/qHDhvQI5hTwwW7BQaJ1J9ouaIgx3a3E/51WaxSSntCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XGw+II9akMUoNUbFazh1Pt2flQwlWeBB1SOGVulMVf/qHDhvQI5hTwwW7BQaJ1J9ouaIgx3a3E/51WaxSSntCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XGw+II9akMUoNUbFazh1Pt2flQwlWeBB1SOGVulMVf/qHDhvQI5hTwwW7BQaJ1J9ouaIgx3a3E/51WaxSSntCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XGw+II9akMUoNUbFazh1Pt2flQwlWeBB1SOGVulMVf/qHDhvQI5hTwwW7BQaJ1J9ouaIgx3a3E/51WaxSSntCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XGw+II9akMUoNUbFazh1Pt2flQwlWeBB1SOGVulMVf/qHDhvQI5hTwwW7BQaJ1J9ouaIgx3a3E/51WaxSSntCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18h9ggekrl6ym9n7t3ye8ah58vm44v25nhugz62","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XGw+II9akMUoNUbFazh1Pt2flQwlWeBB1SOGVulMVf/qHDhvQI5hTwwW7BQaJ1J9ouaIgx3a3E/51WaxSSntCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18lj5pgadp3y98wawweavle2r0677w9z25zmnm0","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d7pND+qwIpWuErQz69nW3+teroufZaX1hTJgnzSeGrBJalLQAb27vce+raCkcT21gw8dW4RPe9z6hjENtVtzAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18lj5pgadp3y98wawweavle2r0677w9z25zmnm0","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d7pND+qwIpWuErQz69nW3+teroufZaX1hTJgnzSeGrBJalLQAb27vce+raCkcT21gw8dW4RPe9z6hjENtVtzAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18rxaq6fd9k2fe0tknfp2fg5wna8uv4wwd3a2nz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YdS6mb2QQF5kC9LWJbscGSSta6APo/GcBZnhDOcFdTjbC5P7U0pmUTG1aVX6BRRbcrK9q5E2CjeDmiyLcGepDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18rxaq6fd9k2fe0tknfp2fg5wna8uv4wwd3a2nz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YdS6mb2QQF5kC9LWJbscGSSta6APo/GcBZnhDOcFdTjbC5P7U0pmUTG1aVX6BRRbcrK9q5E2CjeDmiyLcGepDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g18rxaq6fd9k2fe0tknfp2fg5wna8uv4wwd3a2nz","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YdS6mb2QQF5kC9LWJbscGSSta6APo/GcBZnhDOcFdTjbC5P7U0pmUTG1aVX6BRRbcrK9q5E2CjeDmiyLcGepDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g19p3yzr3cuhzqa02j0ce6kzvyjqfzwemw3vam0x","package":{"name":"counter","path":"gno.land/r/gfanton/counter","files":[{"name":"count.gno","body":"package counter\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tcount int\n\ttimes = make([]time.Time, 0)\n)\n\nfunc Inc() {\n\tcount += 1\n\ttimes = append(times, time.Now())\n}\n\nfunc Hello() string {\n\treturn \"helloss\"\n}\n\nfunc Double() {\n\tcount *= 2\n}\n\n// Render\nfunc Render(path string) string {\n\tvar s string\n\n\t_ = avl.NewTree()\n\ts += \"### welcome to gno 2 \\n\"\n\ts += \"my counter is:\" + strconv.Itoa(count) + \"\\n\"\n\tfor _, t := range times {\n\t\ts += \"* \" + t.Format(\"Mon Jan _2 15:04:05 2006\") + \"\\n\"\n\t}\n\n\treturn s\n}\n"}]},"deposit":"1000000ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F/5nyxbzek+fjRRniO2vh0V2l0wHpcsF57k4lRqee3E8SSpzQZ23mugHAHUppMZ2zk0p08yeVvQ0cHXbmqzCCA=="}],"memo":""},"metadata":{"timestamp":"1736257415"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g19y8hwqwp43ena79yg95nv6nfzhmyn90zcvx0u8","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n1jj6d0mydhd6+FZu8fpNO3I/eEB0K9d8OwPJT8yRXwhIB4geQTHNUyVuHf33SVfZ5T0LcxLKylmvF9O4AsHAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TxpxQkkinwe6IQO3EGihjmiCyXIYR/jq93A8PQODrwQ97JhBtXiYJULtWhKcoA52eUXhZVArfiSoKjJB3r0zBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TxpxQkkinwe6IQO3EGihjmiCyXIYR/jq93A8PQODrwQ97JhBtXiYJULtWhKcoA52eUXhZVArfiSoKjJB3r0zBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TxpxQkkinwe6IQO3EGihjmiCyXIYR/jq93A8PQODrwQ97JhBtXiYJULtWhKcoA52eUXhZVArfiSoKjJB3r0zBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TxpxQkkinwe6IQO3EGihjmiCyXIYR/jq93A8PQODrwQ97JhBtXiYJULtWhKcoA52eUXhZVArfiSoKjJB3r0zBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","package":{"name":"hello","path":"gno.land/r/tus/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OLaUvEeMkwLVQ30cgt0qtrniOmeAk60epduApy/g4N0Uu91QYnryoRHbst/0H2pcOIZKne72iNbeJLPv4NEBAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","package":{"name":"raffle","path":"gno.land/r/mebert1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc init() {\n\t_ = RegisterCode(\"2bw4DEMgnL\")\n\t_ = RegisterUsername(\"mebert1\")\n\t// If you pick me, I will buy you chocolate!\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lxiQblQeZTpSoGb29d/wRoxsQnKQHXUmRnyQYltxioi6eZ3smCRe1uv1NJpEAScw17pbGgUuLswo8NVLfhYyDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","package":{"name":"raffle","path":"gno.land/r/mebert1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc init() {\n\t_ = RegisterCode(\"2bw4DEMgnL\")\n\t_ = RegisterUsername(\"mebert1\")\n\t// If you pick me, I will buy you chocolate!\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lxiQblQeZTpSoGb29d/wRoxsQnKQHXUmRnyQYltxioi6eZ3smCRe1uv1NJpEAScw17pbGgUuLswo8NVLfhYyDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","package":{"name":"raffle","path":"gno.land/r/mebert1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc init() {\n\t_ = raffle.RegisterCode(\"2bw4DEMgnL\")\n\t_ = raffle.RegisterUsername(\"mebert1\")\n\t// If you pick me, I will buy you chocolate!\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vzf3NPFf/bTI+WrHy+FCufKwxwD/1JyJyF7UZZVppBnobNiVqOUVsIt5CAHF4lPzWtpzTcjKupXLZXeHEgOiBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","package":{"name":"raffle","path":"gno.land/r/mebert1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t_ = raffle.RegisterCode(\"2bw4DEMgnL\")\n\t_ = raffle.RegisterUsername(\"mebert1\")\n\t// If you pick me, I will buy you chocolate!\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QslgVvtTJuTxI4IYGDYwL1yrBkgsO9D2us0huG+g+KncCb0ZzPsmDuvu8HRLeE4V+VkoHQ0FYPg9Tsi/AHvBAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1arpyfgln4nn360x0y27andyvec7kz9ylyzwyss","package":{"name":"raffle","path":"gno.land/r/mebert1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"https://gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t_ = raffle.RegisterCode(\"2bw4DEMgnL\")\n\t_ = raffle.RegisterUsername(\"mebert1\")\n\t// If you pick me, I will buy you chocolate!\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Uu9bQqtZMqEGBUFeKnbDb09OrpNEnydVN+EoImd0Iuw5DaoccoydeWI9ZfZACqWDf7UxPFzB9EktS7/XmC5UAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QFaizCZFDbuFtrTH6UYSZlDdlv4q0rqNbxbnOSO3BpSxyvab5Q91l3jykIGe7KT3fWVRdL18Chbg8OASjM6BBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle","path":"gno.land/r/iamkevin/kraffle","files":[{"name":"package.gno","body":"package kraffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n return raffle.RegisterCode(\"vwA2L8Yckr\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"16hWCkWVy6YxxNHJrhQAegfEDCLSGAlCMwX8Fqd5E67+iw/Bsx3fePSLskVr/WHpsppRJII2NrvNn9BMnlGpBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle","path":"gno.land/r/iamkevin/kraffle","files":[{"name":"package.gno","body":"package kraffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(path string) string {\n return raffle.RegisterCode(\"vwA2L8Yckr\")\n\t// return \"Hello World! \" + path\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RXcVXgBWuxkDCiMPOzQVG1WiV6UzLOzYdcNMvEjH/nrh926LOhtC6pfWcU/rEQHJSNVRjdWwqC28zcrhsUmbDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle","path":"gno.land/r/iamkevin/kraffle","files":[{"name":"package.gno","body":"package kraffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(path string) string {\n\tkraffle.RegisterCode(\"vwA2L8Yckr\")\n\treturn \"Hello World! \" + path\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wg7navvaCjU5jZ77QmeN7AcG/gfL/GNC+9Mx1u6Dw9RnAYhDDZBQd4DXS0Kyo7Hcw+DX8zj+/1FbuYUrxrynBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle","path":"gno.land/r/iamkevin/kraffle","files":[{"name":"package.gno","body":"package kraffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"vwA2L8Yckr\")\n\treturn \"Hello World! \" + path\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YdF6DKAjeOCbTMxZHPkRv8ENcY+aaAPidpl4MvJo93F0TPTC3w8Hyh8/V/LhKAwWP9NXSSv9/IdtU0pidrA+AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle","path":"gno.land/r/iamkevin/kraffle","files":[{"name":"package.gno","body":"package kraffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(path string) string {\n\treturn \"Hello World! \" + path\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"liBGTMLtWkcWhz8Y5FNIeFa+tNbE6J7771DMB1VKEoFIW2jL4j8RPlW5MsMBqrkQcbTFlj+EwleyyibTUcZiBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle2","path":"gno.land/r/iamkevin/kraffle2","files":[{"name":"package.gno","body":"package kraffle2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n // return raffle.RegisterCode(\"vwA2L8Yckr\") \n return raffle.RegisterUsername(\"kevingomes17\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Pqo7O0ThHuPC64iCDvjzksYoyetksFa3i30y3MoZ/cy7pICd5YU6u5tGKwJZc0Mr10F4kf0KCb2F1SACKSmACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle2","path":"gno.land/r/iamkevin/kraffle2","files":[{"name":"package.gno","body":"package kraffle2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n\treturn raffle.RegisterCode(\"vwA2L8Yckr\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7DwwwtN+PGuTcKTxSbn/m+yv3hBNHtnSlhpK7wjed4omaSpXzs7J/3jOMp9gg+D5HJIlwCPEPvJhDn3t3q+uCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle3","path":"gno.land/r/iamkevin/kraffle3","files":[{"name":"package.gno","body":"package kraffle3\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n\t// return raffle.RegisterCode(\"vwA2L8Yckr\")\n\treturn raffle.RegisterUsername(\"kevingomes17\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LChcXz2P0/bHenp2w/7tMQD4NFjAU+PhUWQ0kiCu/AjsT6rsKkWF/6c1kQw4p7wI6Olcp/Ts2uqQFpzBMgc9DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle4","path":"gno.land/r/iamkevin/kraffle4","files":[{"name":"package.gno","body":"package kraffle4\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n\treturn raffle.RegisterCode(\"vwA2L8Yckr\") + \"\\n\\n\" + raffle.RegisterUsername(\"kevingomes17\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"txCXyK/dEe7gxx+Nf4K1x1rBPm5XCJTwLiReow2Y1U0OTWs4IJLaDBW0M0qwgA8O7ixfTqdnRIAo1UZEVSZ2BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","package":{"name":"kraffle5","path":"gno.land/r/iamkevin/kraffle5","files":[{"name":"package.gno","body":"package kraffle5\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render2(_ string) string {\n\treturn raffle.RegisterCode(\"vwA2L8Yckr\") + \"\\n\\n\" + raffle.RegisterUsername(\"kevingomes17\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7e2elHXvApPVKDKph/gyJLpmY91oZMzwpcBhin0X/kZOdFKhDaTwir35+RENnw7azKJdeizWU4Tr3wOMLHZaBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c2e8d9pehttcge60zkwr5vfd5sxy8ss94mt7s0","package":{"name":"raffle","path":"gno.land/r/urjit/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\tout := raffle.RegisterCode(\"isj8mLbHZF\")\n\treturn out\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7+mzoEmu7YWV/kzlhRBLZpEyllNJuLuwNXU6DEQcwhNo5s5jUjk57qoYiaC5bEIq29mx8EhlfE9kcmvmURVQCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c2e8d9pehttcge60zkwr5vfd5sxy8ss94mt7s0","package":{"name":"raffle","path":"gno.land/r/urjit/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nvar codeout string\nvar nameout string\nfunc init() {\n\t// Set admin address\n\tout := raffle.RegisterCode(\"isj8mLbHZF\")\n println(out)\n\n name := raffle.RegisterUsername(\"urjitbhatia\")\n println(name)\n\n codeout = out\n nameout = name\n}\n\nfunc Render(path string) string {\n return codeout + \" \" + nameout\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jip279POApxhofJG2mDBSo6wzCNVuN1pvq0cfHoZu0YfyN3+JwUwD94kp6VsWKB5rZmteQkE/CRxvTB4KWdyDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c2e8d9pehttcge60zkwr5vfd5sxy8ss94mt7s0","package":{"name":"rafflev2","path":"gno.land/r/urjit/rafflev2","files":[{"name":"package.gno","body":"package rafflev2\n\nimport \"gno.land/r/gc24/raffle\"\n\nvar codeout string\nvar nameout string\n\nfunc init() {\n\t// Set admin address\n\tout := raffle.RegisterCode(\"isj8mLbHZF\")\n\tprintln(out)\n\n\tname := raffle.RegisterUsername(\"urjitbhatia\")\n\tprintln(name)\n\n\tcodeout = out\n\tnameout = name\n}\n\nfunc Render(path string) string {\n\treturn codeout + \" \" + nameout\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zyHO0ktbgFqO/X9ZZhBsX+KXCyk8blsz8G+3GjgX/5tzwm0pQ7MVq1abXLXe04GMJlPXHWgGfjlUpaY2pxu9BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"foo","path":"gno.land/r//foo","files":[{"name":"package.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mjFT2gbAGSx0dY7ypL2E09ngOyTNGYHOVPKTlBBFD0uKK1UaqSM0yuH81a4B1im5Ik5k1tYUhfu6PyqyixdBCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o9FNbxMvOrA1uNa6Ouy1eftmHh65i6ojdvuqef4SmGJVq8hNfg7TE/cU+5jbiUN27YDd/HFHTlHNner+lRh+BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"GRC20.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"emrkQStlfYqxhN7w3ahNw6gGGMsh/QNhvcdv84c/yttW5cYhaQhuyco8zO21t8ax+2q0VlOcbm/zPQ9vBaayCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"GRC20.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"emrkQStlfYqxhN7w3ahNw6gGGMsh/QNhvcdv84c/yttW5cYhaQhuyco8zO21t8ax+2q0VlOcbm/zPQ9vBaayCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"GRC20.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"emrkQStlfYqxhN7w3ahNw6gGGMsh/QNhvcdv84c/yttW5cYhaQhuyco8zO21t8ax+2q0VlOcbm/zPQ9vBaayCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"GRC20.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"emrkQStlfYqxhN7w3ahNw6gGGMsh/QNhvcdv84c/yttW5cYhaQhuyco8zO21t8ax+2q0VlOcbm/zPQ9vBaayCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"package.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZJsThqMeO1x4oaGqKO3lRISmB7+GAy3/Pwn53Xyexe+yqx2ikgHPhDEGqAzeyladpbFknVTxvl9+/P6vL5kcCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"package.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZJsThqMeO1x4oaGqKO3lRISmB7+GAy3/Pwn53Xyexe+yqx2ikgHPhDEGqAzeyladpbFknVTxvl9+/P6vL5kcCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"package.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZJsThqMeO1x4oaGqKO3lRISmB7+GAy3/Pwn53Xyexe+yqx2ikgHPhDEGqAzeyladpbFknVTxvl9+/P6vL5kcCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9","package":{"name":"louis","path":"gno.land/r//louis","files":[{"name":"package.gno","body":"package louis\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tlouis *grc20.AdminToken\n\tadmin std.Address = \"g1c8cl6t8cw42uuw63geyg7qnx7z09m52u5t0ky9\"\n)\n\nfunc init() {\n\tlouis = grc20.NewAdminToken(\"louisToken\", \"louis\", 6)\n\tlouis.Mint(admin, 1000000000) // @administrator\n}\n\n// method proxies as public functions.\n//\n\n// getters.\n\nfunc TotalSupply() uint64 {\n\treturn louis.TotalSupply()\n}\n\nfunc BalanceOf(owner users.AddressOrName) uint64 {\n\tbalance, err := louis.BalanceOf(owner.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn balance\n}\n\nfunc Allowance(owner, spender users.AddressOrName) uint64 {\n\tallowance, err := louis.Allowance(owner.Resolve(), spender.Resolve())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn allowance\n}\n\n// setters.\n\nfunc Transfer(to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Transfer(caller, to.Resolve(), amount)\n}\n\nfunc Approve(spender users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.Approve(caller, spender.Resolve(), amount)\n}\n\nfunc TransferFrom(from, to users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tlouis.TransferFrom(caller, from.Resolve(), to.Resolve(), amount)\n}\n\n// administration.\n\nfunc Mint(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Mint(address.Resolve(), amount)\n}\n\nfunc Burn(address users.AddressOrName, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\tlouis.Burn(address.Resolve(), amount)\n}\n\n// render.\n//\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn louis.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := users.AddressOrName(parts[1])\n\t\tbalance, _ := louis.BalanceOf(owner.Resolve())\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZJsThqMeO1x4oaGqKO3lRISmB7+GAy3/Pwn53Xyexe+yqx2ikgHPhDEGqAzeyladpbFknVTxvl9+/P6vL5kcCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V1wZ2wmTcvIB4Tcttvr02gKi2OmSZeu2LLH9KTLNsZLZRTnOw2aP+EL9rLD5G2KmYMsZV+xTJtLKU6j4JcKOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"50000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q/jkokFMkEQwnpfduTOH1XXI/QZmyKtY2eSIrhI4pbTGpBFX6nrsNQHJriDSd4lMS5+j6nJysbgY4j7wHyMqAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","package":{"name":"home","path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n \"std\"\n \"sort\"\n \"math\"\n \"time\"\n\n \"gno.land/p/demo/ufmt\"\n\n \"gno.land/r/stefann/config\"\n)\n\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\nvar (\n pfp string\n cities []City\n currentCityIndex int\n aboutMe [2]string\n jarLink string\n maxSponsors int\n sponsors []Sponsor\n\ttotalDonated std.Coins\n\ttotalDonations int\n)\n\nconst maxInt64 int64 = 9223372036854775807\n\nfunc init() {\n pfp = \"https://i.ibb.co/Bc5YNCx/DSC-0095a.jpg\"\n cities = []City{\n {Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n {Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n {Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n {Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n {Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n {Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n {Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n {Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n {Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n {Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n {Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n {Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n {Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n {Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n }\n currentCityIndex = 0\n jarLink = \"https://TODO\"\n maxSponsors = 5\n aboutMe = [2]string{\n `\u003ch3 style=\"font-size: 1.4em;\"\u003eAbout Me\u003c/h3\u003e\n \u003cp style=\"font-size: 1.1em;\"\u003eHey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!\u003c/p\u003e`,\n `\u003ch3 style=\"font-size: 1.4em;\"\u003eContributions\u003c/h3\u003e\n \u003cp style=\"font-size: 1.1em;\"\u003eI'm just getting started, but you can follow my journey through Gno.land right here \u003ca href=\"https://github.com/gnolang/hackerspace/issues/94\" target=\"_blank\"\u003e🔗\u003c/a\u003e\u003c/p\u003e`,\n }\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n config.AssertAuthorized()\n maxSponsors = newMax\n}\n\nfunc UpdateCities(newCities []City) {\n\tconfig.AssertAuthorized()\n\tcities = newCities\n}\n\nfunc UpdateJarLink(newLink string) {\n\tconfig.AssertAuthorized()\n\tjarLink = newLink\n}\n\nfunc UpdatePFP(url, caption string) {\n\tconfig.AssertAuthorized()\n\tpfp = url\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tconfig.AssertAuthorized()\n\taboutMe[0] = col1\n\taboutMe[1] = col2\n}\n\nfunc nextRandom() int64 {\n\tseed := time.Now().UnixNano()\n\tseed = (seed*6364136223846793005 + 1) % maxInt64\n\treturn seed\n}\n\nfunc Donate() {\n address := std.GetOrigCaller()\n amount := std.GetOrigSend()\n \n if amount.AmountOf(\"ugnot\") == 0 {\n panic(\"Donation must include GNOT\")\n }\n\n found := false\n\n for i, sponsor := range sponsors {\n if sponsor.Address == address {\n sponsors[i].Amount = sponsors[i].Amount.Add(amount)\n found = true\n break\n }\n }\n\n if !found {\n sponsors = append(sponsors, Sponsor{Address: address, Amount: amount})\n }\n\n totalDonated = totalDonated.Add(amount)\n\n totalDonations++\n\n sortSponsorsByAmount()\n\n if len(cities) \u003e 0 {\n randomNumber := int64(math.Abs(float64(nextRandom()))) % int64(len(cities))\n currentCityIndex = int(randomNumber)\n }\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc sortSponsorsByAmount() {\n\tsort.Sort(SponsorSlice(sponsors))\n}\n\nfunc GetTopSponsors() []Sponsor {\n\treturn sponsors\n}\n\nfunc CollectDonations() {\n\tconfig.AssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\townerAddr := config.Address()\n\tbanker.SendCoins(std.GetOrigPkgAddr(), ownerAddr, banker.GetCoins(std.GetOrigPkgAddr()))\n}\n\nfunc GetTotalDonations() std.Coins {\n\treturn totalDonated\n}\n\nfunc GetDonationCount() int {\n\treturn totalDonations\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", cities[currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='rows-3'\u003e\"\n\n\tout += \"\u003cdiv style='position: relative; text-align: center;'\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='background-image: url(%s); background-size: cover; background-position: center; width: 100%%; height: 600px; position: relative; border-radius: 15px; overflow: hidden;'\u003e\\n\\n\", cities[currentCityIndex].URL)\n\n\tout += ufmt.Sprintf(\"\u003cimg src='%s' alt='my profile pic' style='width: 250px; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%%; border: 3px solid #1e1e1e; position: absolute; top: 75%%; left: 50%%; transform: translate(-50%%, -50%%);'\u003e\\n\\n\", pfp)\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += aboutMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += aboutMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := `\u003cdiv class=\"jumbotron\" style=\"display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 40px; padding-bottom: 50px; text-align: center;\"\u003e` + \"\\n\\n\"\n\n\tout += `\u003cdiv class=\"rows-2\" style=\"max-width: 500px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;\"\u003e` + \"\\n\"\n\n\tout += `\u003ch1 style=\"margin-bottom: 50px;\"\u003eHelp Me Travel The World\u003c/h1\u003e` + \"\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\"\n\n out += ufmt.Sprintf(`\u003cstrong style=\"font-size: 1.2em;\"\u003eI am currently in %s, \u003cbr\u003e tip the jar to send me somewhere else!\u003c/strong\u003e`, cities[currentCityIndex].Name)\n \n out += `\u003cbr\u003e\u003cspan style=\"font-size: 1.2em; font-style: italic; margin-top: 10px; display: inline-block;\"\u003eClick the jar, tip in GNOT coins, and watch my background change as I head to a new adventure!\u003c/span\u003e\u003c/p\u003e` + \"\\n\\n\"\n \n\tout += renderSponsors()\n\n\tout += `\u003c/div\u003e\u003c!-- /rows-2 --\u003e` + \"\\n\\n\"\n\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n if len(address) \u003c= 8 {\n return address\n }\n return address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc renderSponsors() string {\n out := `\u003ch3 style=\"margin-top: 5px; margin-bottom: 20px\"\u003eSponsor Leaderboard\u003c/h3\u003e` + \"\\n\"\n\n if len(sponsors) == 0 {\n out += `\u003cp style=\"text-align: center;\"\u003eNo sponsors yet. Be the first to tip the jar!\u003c/p\u003e` + \"\\n\"\n } else {\n numSponsors := len(sponsors)\n if numSponsors \u003e maxSponsors {\n numSponsors = maxSponsors\n }\n\n out += `\u003cul style=\"list-style-type: none; padding: 0; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 300px; margin: 0 auto;\"\u003e` + \"\\n\"\n\n for i := 0; i \u003c numSponsors; i++ {\n sponsor := sponsors[i]\n isLastItem := (i == numSponsors-1)\n\n padding := \"10px 5px\"\n border := \"border-bottom: 1px solid #ddd;\"\n\n if isLastItem {\n padding = \"8px 5px\"\n border = \"\"\n }\n\n out += ufmt.Sprintf(\n `\u003cli style=\"padding: %s; %s text-align: left;\"\u003e\n \u003cstrong style=\"padding-left: 5px;\"\u003e%d. %s\u003c/strong\u003e \n \u003cspan style=\"float: right; padding-right: 5px;\"\u003e%s\u003c/span\u003e\n \u003c/li\u003e`,\n padding, border, i+1, formatAddress(sponsor.Address.String()), sponsor.Amount.String(),\n )\n }\n\n }\n\n return out\n}\n\nfunc renderTipsJar() string {\n\tout := ufmt.Sprintf(`\u003ca href=\"%s\" target=\"_blank\" style=\"display: block; text-decoration: none;\"\u003e`, jarLink) + \"\\n\"\n\n\tout += `\u003cimg src=\"https://i.ibb.co/Fq7KnDQ/tips-jar.png\" alt=\"Tips Jar\" style=\"width: 300px; height: auto; display: block; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tout += `\u003c/a\u003e` + \"\\n\"\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"80000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xieA3O5E9XMgDDVdyWvRGRrXTc0V+N+4QKF/F25TUyJPlvzc4hJDV7PJldBxU4HzudOhUDnu8XcGR0AfYN8TCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","package":{"name":"home","path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"math\"\n\t\"sort\"\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/stefann/config\"\n)\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\nvar (\n\tpfp string\n\tcities []City\n\tcurrentCityIndex int\n\taboutMe [2]string\n\tjarLink string\n\tmaxSponsors int\n\tsponsors []Sponsor\n\ttotalDonated std.Coins\n\ttotalDonations int\n)\n\nconst maxInt64 int64 = 9223372036854775807\n\nfunc init() {\n\tpfp = \"https://i.ibb.co/Bc5YNCx/DSC-0095a.jpg\"\n\tcities = []City{\n\t\t{Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n\t\t{Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n\t\t{Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n\t\t{Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n\t\t{Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n\t\t{Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n\t\t{Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n\t\t{Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n\t\t{Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n\t\t{Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n\t\t{Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n\t\t{Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n\t\t{Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n\t\t{Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n\t}\n\tcurrentCityIndex = 0\n\tjarLink = \"https://TODO\"\n\tmaxSponsors = 5\n\taboutMe = [2]string{\n\t\t`\u003ch3 style=\"font-size: 1.4em;\"\u003eAbout Me\u003c/h3\u003e\n \u003cp style=\"font-size: 1.1em;\"\u003eHey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!\u003c/p\u003e`,\n\t\t`\u003ch3 style=\"font-size: 1.4em;\"\u003eContributions\u003c/h3\u003e\n \u003cp style=\"font-size: 1.1em;\"\u003eI'm just getting started, but you can follow my journey through Gno.land right here \u003ca href=\"https://github.com/gnolang/hackerspace/issues/94\" target=\"_blank\"\u003e🔗\u003c/a\u003e\u003c/p\u003e`,\n\t}\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n\tconfig.AssertAuthorized()\n\tmaxSponsors = newMax\n}\n\nfunc UpdateCities(newCities []City) {\n\tconfig.AssertAuthorized()\n\tcities = newCities\n}\n\nfunc UpdateJarLink(newLink string) {\n\tconfig.AssertAuthorized()\n\tjarLink = newLink\n}\n\nfunc UpdatePFP(url, caption string) {\n\tconfig.AssertAuthorized()\n\tpfp = url\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tconfig.AssertAuthorized()\n\taboutMe[0] = col1\n\taboutMe[1] = col2\n}\n\nfunc nextRandom() int64 {\n\tseed := time.Now().UnixNano()\n\tseed = (seed*6364136223846793005 + 1) % maxInt64\n\treturn seed\n}\n\nfunc Donate() {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\tfound := false\n\n\tfor i, sponsor := range sponsors {\n\t\tif sponsor.Address == address {\n\t\t\tsponsors[i].Amount = sponsors[i].Amount.Add(amount)\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\tsponsors = append(sponsors, Sponsor{Address: address, Amount: amount})\n\t}\n\n\ttotalDonated = totalDonated.Add(amount)\n\n\ttotalDonations++\n\n\tsortSponsorsByAmount()\n\n\tif len(cities) \u003e 0 {\n\t\trandomNumber := int64(math.Abs(float64(nextRandom()))) % int64(len(cities))\n\t\tcurrentCityIndex = int(randomNumber)\n\t}\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc sortSponsorsByAmount() {\n\tsort.Sort(SponsorSlice(sponsors))\n}\n\nfunc GetTopSponsors() []Sponsor {\n\treturn sponsors\n}\n\nfunc CollectDonations() {\n\tconfig.AssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\townerAddr := config.Address()\n\tbanker.SendCoins(std.GetOrigPkgAddr(), ownerAddr, banker.GetCoins(std.GetOrigPkgAddr()))\n}\n\nfunc GetTotalDonations() std.Coins {\n\treturn totalDonated\n}\n\nfunc GetDonationCount() int {\n\treturn totalDonations\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", cities[currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='rows-3'\u003e\"\n\n\tout += \"\u003cdiv style='position: relative; text-align: center;'\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='background-image: url(%s); background-size: cover; background-position: center; width: 100%%; height: 600px; position: relative; border-radius: 15px; overflow: hidden;'\u003e\\n\\n\", cities[currentCityIndex].URL)\n\n\tout += ufmt.Sprintf(\"\u003cimg src='%s' alt='my profile pic' style='width: 250px; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%%; border: 3px solid #1e1e1e; position: absolute; top: 75%%; left: 50%%; transform: translate(-50%%, -50%%);'\u003e\\n\\n\", pfp)\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += aboutMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += aboutMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := `\u003cdiv class=\"jumbotron\" style=\"display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 40px; padding-bottom: 50px; text-align: center;\"\u003e` + \"\\n\\n\"\n\n\tout += `\u003cdiv class=\"rows-2\" style=\"max-width: 500px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;\"\u003e` + \"\\n\"\n\n\tout += `\u003ch1 style=\"margin-bottom: 50px;\"\u003eHelp Me Travel The World\u003c/h1\u003e` + \"\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\"\n\n\tout += ufmt.Sprintf(`\u003cstrong style=\"font-size: 1.2em;\"\u003eI am currently in %s, \u003cbr\u003e tip the jar to send me somewhere else!\u003c/strong\u003e`, cities[currentCityIndex].Name)\n\n\tout += `\u003cbr\u003e\u003cspan style=\"font-size: 1.2em; font-style: italic; margin-top: 10px; display: inline-block;\"\u003eClick the jar, tip in GNOT coins, and watch my background change as I head to a new adventure!\u003c/span\u003e\u003c/p\u003e` + \"\\n\\n\"\n\n\tout += renderSponsors()\n\n\tout += `\u003c/div\u003e\u003c!-- /rows-2 --\u003e` + \"\\n\\n\"\n\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n\tif len(address) \u003c= 8 {\n\t\treturn address\n\t}\n\treturn address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc renderSponsors() string {\n\tout := `\u003ch3 style=\"margin-top: 5px; margin-bottom: 20px\"\u003eSponsor Leaderboard\u003c/h3\u003e` + \"\\n\"\n\n\tif len(sponsors) == 0 {\n\t\tout += `\u003cp style=\"text-align: center;\"\u003eNo sponsors yet. Be the first to tip the jar!\u003c/p\u003e` + \"\\n\"\n\t} else {\n\t\tnumSponsors := len(sponsors)\n\t\tif numSponsors \u003e maxSponsors {\n\t\t\tnumSponsors = maxSponsors\n\t\t}\n\n\t\tout += `\u003cul style=\"list-style-type: none; padding: 0; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 300px; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\t\tfor i := 0; i \u003c numSponsors; i++ {\n\t\t\tsponsor := sponsors[i]\n\t\t\tisLastItem := (i == numSponsors-1)\n\n\t\t\tpadding := \"10px 5px\"\n\t\t\tborder := \"border-bottom: 1px solid #ddd;\"\n\n\t\t\tif isLastItem {\n\t\t\t\tpadding = \"8px 5px\"\n\t\t\t\tborder = \"\"\n\t\t\t}\n\n\t\t\tout += ufmt.Sprintf(\n\t\t\t\t`\u003cli style=\"padding: %s; %s text-align: left;\"\u003e\n \u003cstrong style=\"padding-left: 5px;\"\u003e%d. %s\u003c/strong\u003e \n \u003cspan style=\"float: right; padding-right: 5px;\"\u003e%s\u003c/span\u003e\n \u003c/li\u003e`,\n\t\t\t\tpadding, border, i+1, formatAddress(sponsor.Address.String()), sponsor.Amount.String(),\n\t\t\t)\n\t\t}\n\n\t}\n\n\treturn out\n}\n\nfunc renderTipsJar() string {\n\tout := ufmt.Sprintf(`\u003ca href=\"%s\" target=\"_blank\" style=\"display: block; text-decoration: none;\"\u003e`, jarLink) + \"\\n\"\n\n\tout += `\u003cimg src=\"https://i.ibb.co/Fq7KnDQ/tips-jar.png\" alt=\"Tips Jar\" style=\"width: 300px; height: auto; display: block; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tout += `\u003c/a\u003e` + \"\\n\"\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5JECzny9RCYkFwBiOEAuvWi516PFsGPWBD4Y25vdCTzmZKh8wpwbe6lL6WjQDxruKpgpflkXajoU0q02NXaWCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EgCgGmO7D875iqXHIsYrVy4DnZQ2s7jzngxGyVvX+ZvDkYvQKKeAvB/CRu4/579W2V3Ck/0sx4DmxdAh1TMGCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EgCgGmO7D875iqXHIsYrVy4DnZQ2s7jzngxGyVvX+ZvDkYvQKKeAvB/CRu4/579W2V3Ck/0sx4DmxdAh1TMGCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EgCgGmO7D875iqXHIsYrVy4DnZQ2s7jzngxGyVvX+ZvDkYvQKKeAvB/CRu4/579W2V3Ck/0sx4DmxdAh1TMGCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BqKwmzsWcuhOSnYiQD/XkQdrrAEXy2r9LNnzZF5oB//+Hy/mehFcJI+A1+C/FTaZSU5Y1jHu/7R9jvryWB3nCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BqKwmzsWcuhOSnYiQD/XkQdrrAEXy2r9LNnzZF5oB//+Hy/mehFcJI+A1+C/FTaZSU5Y1jHu/7R9jvryWB3nCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"hellonamespacetest","path":"gno.land/r/hellonamespacetest/hellonamespacetest","files":[{"name":"package.gno","body":"package hellonamespacetest\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UIr1FZv/O7vNjpXpururRoWoRBRSyzDo7KSRcXJ9ago2tQYKtGG5COFvYRFnF7Fr6kB74ZpKGXZQtLvIUbl2DA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","package":{"name":"hellonamespacetest","path":"gno.land/r/salmad/hellonamespacetest","files":[{"name":"package.gno","body":"package hellonamespacetest\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h67ppsSjJZLnyJ8j5isbb/NVldYQRP3oRqrJiaKaK90L+HkFgbSQ1KgSW1I88qw781I4d+VbqtrVfCcYie4uCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dqkzgdmnueeleduhfs29tlrac2uzqdplt65qxn","package":{"name":"vraffle","path":"gno.land/r/vershun/vraffle","files":[{"name":"package.gno","body":"package vraffle\n\n//import \"gno.land/r/gc24/raffle\"\n\nvar output string\n\nfunc init() {\n\toutput += raffle.RegisterCode(\"N2GpwjdQbp\")\n\toutput += raffle.RegisterUsername(\"vershun\")\n}\n\nfunc Render(path string) string {\n\treturn output\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AGSGffLnSnBDvM4fThngvqOC/tDd+zLIGW6oyL0cEC81mxjqD/6kL3kEL2Szi5nOwAlvZEnG1ueYDvbURy0iAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dqkzgdmnueeleduhfs29tlrac2uzqdplt65qxn","package":{"name":"vraffle","path":"gno.land/r/vershun/vraffle","files":[{"name":"package.gno","body":"package vraffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nvar output string\n\nfunc init() {\n\toutput += raffle.RegisterCode(\"N2GpwjdQbp\")\n\toutput += raffle.RegisterUsername(\"vershun\")\n}\n\nfunc Render(path string) string {\n\treturn output\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wcejpHZnVdVKCZefJC8TZF+bsXI3qibwzTMddT7INhz3Nr/wLPCayGo3xlI/TI5ng6OHJzgSYOAfd1LLruwZDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KZqO+Lq3BhbbFHdUR9hw8Sb71dERvOyT12TSZ87ZwqEKSfFmlY6zglC5OzrDMTGOOWE1+qfexCbdTkuvaL5hAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","package":{"name":"hello","path":"gno.land/r/nstest/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IB0DuISCH+P+Z4hvjGM+QJKelwNtzUBxNSH7q1G1fF7ttpvIVT8z5nXZdwTLthhSHQZ0vRVeOPYkZKGBa8zuBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","package":{"name":"hello2","path":"gno.land/r/nstest/hello2","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WKrOuAXB7QgCXxiI8CJ88gDnIsWBjh4/R9hPOARdZYxAuWN1DktN5vq40ir9jSBwY3hDRkWnwAaROtWRT94YBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","package":{"name":"hello2","path":"gno.land/r/nstest/hello2","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WKrOuAXB7QgCXxiI8CJ88gDnIsWBjh4/R9hPOARdZYxAuWN1DktN5vq40ir9jSBwY3hDRkWnwAaROtWRT94YBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"hello","path":"gno.land/r/renier/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc init() {\n\traffle.RegisterCode(\"ViMaaMFya6\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F/JLhAvA8i0cJSAqE7eiFzutLi//+z/EvMKxPVylMEq/+DjZTXvcmFwwtKS7ye/FSAFWiy2DIpOM/JYy5PsQCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"raffle","path":"gno.land/r/renier/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"ViMaaMFya6\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FGqXUZI+aZ1l30b8gHy5quMMchNeFqecZJsSsE05nSyFa0zioKImn+lXNj9hdMS2j3ZyzxdHOGhUX93SrlZBAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"raffle","path":"gno.land/r/renier/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"ViMaaMFya6\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FGqXUZI+aZ1l30b8gHy5quMMchNeFqecZJsSsE05nSyFa0zioKImn+lXNj9hdMS2j3ZyzxdHOGhUX93SrlZBAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"raffle","path":"gno.land/r/renier/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc init() {\n\tRegisterCode(\"ViMaaMFya6\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pL1XWkM31CeYM3vwL6kVkdpLIfqz5d5wJN9VVLHDLokqNhtJciYUaFKP1BAzmjqsjEyDkHYeK7LrUPtAvcHhCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"raffle","path":"gno.land/r/renier/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport r \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n r.RegisterUsername(\"renier\")\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mHpieliA40CtMxTJEyzx/fu0xeRu34ynkXdCk8RCc/UehjXnhFVXpt3MZ32ah5MEWteiYhnnufDUOGlM84y6Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"raffle","path":"gno.land/r/renier/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport r \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tr.RegisterCode(\"ViMaaMFya6\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jlMscZxXiRp24NLOCG7Aqf6uRsL2ABqL1FgeTP+7sI37KCjbFkPiJNf+XvBtKL9qmpCY5usIwtd6i11S5N81Bw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"raffle","path":"gno.land/r/renier/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport r \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tr.RegisterUsername(\"renier\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U3pMuIAzR2sgp2bIYo0nq0O0cYaRBN6MyB3BXxd0nrIBSTYE9pWU57Og9es1kTfOvD0xQkgrUfGO6GKjXw2VCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1efqa3wrdjta8syxzgsprhjgdtn42u8h3eaz6q6","package":{"name":"register","path":"gno.land/r/renier/register","files":[{"name":"package.gno","body":"package register\n\nimport r \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tr.RegisterUsername(\"renier\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2YDSxhXWKpFfE7GfRZx47ug5ppxIUX4iB8oS/QkvXldQJ5JZr83+EDJgnP4kJDYhaXWxW8FOaBIVOPVL7zB4BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"hello","path":"gno.land/r/gc24/nasikalt/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N+fA/E/OuxQp8HaxGix/uUCsxsOKpGX7qSVT3Ojj7RsO13sVz4ITDnfAAjOKhfbKVLtcuhDhv/ZSsgPlS5plBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"hello","path":"gno.land/r/gc24/nasikalt/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n raffle.RegisterCode(\"zJazjQNrZN\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1C3Ba0MXLfMfPnQ5T+FUfIEJweA33NGkNilj14R3FqzoqwXiexnYidgsyTBRgUUkcywZ8e2ldTn7PjWQigBIBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"hello2","path":"gno.land/r/gc24/nasikalt/hello2","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"zJazjQNrZN\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YMi2WWmIywip6u/XgfyFimzv/bNNFfenlpLq+JOQQDLA5vyNgBIbexjGmWAwjy0Q8s7uCCQPk3tgflY8dDaCDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"raffle","path":"gno.land/r/gc24/nasikalt/raffle","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3ZcfMpY0rYr1297txJswZIGshuLqQGRb1D4+stKhEwZhEx5f50XRBOB7qLsl2huibIrTmKkKuGgBjYpAJD3EAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"raffle","path":"gno.land/r/gc24/nasikalt/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle/raffle\"\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\traffle.RegisterCode(\"\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IqfZyBsTgSHz579jQ88Rwmzvk8fUDSLGFTDoh5JRlaJiknP2LYHdE/yc6sB2voJLpuGwR/8hjyRE2ssc0qmBDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"raffle","path":"gno.land/r/gc24/nasikalt/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\traffle.RegisterCode(\"\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y14ANmx3MEZD2N0ar0/fNoImTOPWjWZ8tlbyV053MHuN0zzyC0ebDUl9QP9gbsVa5ogWp8lwn+b5PwgoGb/EAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"raffle","path":"gno.land/r/gc24/nasikalt/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc init() {\n\traffle.RegisterCode(\"zJazjQNrZN\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"279UQBsJYOAsD4anEGZkqfpU5Azl32M2Tu96w5TpjB5ej5kkNB09rpqtvEjpYjXZI21X/JxWN0PnUJCbn/2GAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1egxdnzrmhva4wcx2celjwk0a25gf6xjrrqkzwg","package":{"name":"raffle","path":"gno.land/r/gc24/nasikalt/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport r \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tr.RegisterCode(\"zJazjQNrZN\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/nN4jD6J8EJg/etOPPGzULFMMIF59zHumNJOc8SPhN0YVPTalWAGOfQYOdHnITL+h2cSeIqFrAKPQ2g1aSDCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"config","path":"gno.land/r/matijamarjanovicc/homeconfig","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.GetOrigCaller()\n\tif caller != main \u0026\u0026 caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"80000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vafKQbv5HkLyu/5ZiFs72+bXsIbtrmIzI2vhqzqGmiBcAuK6Y/HEPiGRSQAQIGfiZeOMNoBIDlJid4zV0ZfZDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/mat1jamarjanov1c/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.GetOrigCaller()\n\tif caller != main \u0026\u0026 caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n\t\"strconv\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n\n\tredVotes int64\n\tblueVotes int64\n\tgreenVotes int64\n\n\tblueLink string\n\tredLink string\n\tgreenLink string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\nMotivated Computer Science student with strong\nanalytical and problem-solving skills. Proficient in\nprogramming and version control, with a high level of\nfocus and attention to detail. Eager to apply academic\nknowledge to real-world projects and contribute to\ninnovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tredVotes = 0\n\tgreenVotes = 0\n\tblueVotes = 0\n\tcurrentColor = `rgb(120, 120, 120)`\n\tblueLink = \"https://www.google.com\"\n\tredLink = \"https://www.google.com\"\n\tgreenLink = \"https://www.google.com\"\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc maxOfThree(a, b, c int64) int64 {\n\tmax := a\n\tif b \u003e max {\n\t\tmax = b\n\t}\n\tif c \u003e max {\n\t\tmax = c\n\t}\n\treturn max\n}\n\nfunc calculateRGB(red, green, blue int64) (int, int, int) {\n\tmaxValue := maxOfThree(red, green, blue)\n\n\tif maxValue \u003e 255 {\n\t\tscaleFactor := float64(255) / float64(maxValue)\n\n\t\tred = int64(float64(red) * scaleFactor)\n\t\tgreen = int64(float64(green) * scaleFactor)\n\t\tblue = int64(float64(blue) * scaleFactor)\n\t}\n\n\treturn int(red), int(green), int(blue)\n}\n\nfunc VoteRed() {\n\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tredVotes = redVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n}\n\nfunc VoteGreen() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tgreenVotes = greenVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n}\n\nfunc VoteBlue() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tblueVotes = blueVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n\n}\n\nfunc CollectBalance() {\n\tAssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\townerAddr := Address()\n\n\tbanker.SendCoins(std.GetOrigPkgAddr(), ownerAddr, banker.GetCoins(std.GetOrigPkgAddr()))\n}\n\nfunc Render(path string) string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; color: %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage \\n\\n%s\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += ufmt.Sprintf(\"\u003ch3 style='color: %s;'\u003eVote for the color of the page - the more you pay the more effect it will have on the homepage ;)\u003c/h3\u003e\\n\", currentColor)\n\tout += renderButtons()\n\tout += \"\u003c/div\u003e\"\n\tout += renderGitHubProjects()\n\tout += \"\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 5px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s'\u003e%s\u003c/p\u003e\\n\\n\", currentColor, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='color: %s'\u003e\\n\\n\", currentColor)\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\tout := `\u003cdiv style=\"display: flex; justify-content: center; gap: 10px;\"\u003e`\n\n\t// GitHub Button\n\tout += `\u003ca href=\"https://github.com/matijamarjanovic\" target=\"_blank\" style=\"text-decoration: none;\"\u003e`\n\tout += `\u003cbutton style=\"background-color: black; color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; display: flex; align-items: center; font-size: 14px;\"\u003e`\n\tout += `\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/9/91/Octicons-mark-github.svg\" alt=\"GitHub Logo\" style=\"width: 16px; height: 16px; margin-right: 8px;\"\u003e`\n\tout += `GitHub`\n\tout += `\u003c/button\u003e`\n\tout += `\u003c/a\u003e`\n\n\t// LinkedIn Button\n\tout += `\u003ca href=\"https://www.linkedin.com/in/matijamarjanovic\" target=\"_blank\" style=\"text-decoration: none;\"\u003e`\n\tout += `\u003cbutton style=\"background-color: rgb(30, 70, 220); color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; display: flex; align-items: center; font-size: 14px;\"\u003e`\n\tout += `\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/0/01/LinkedIn_Logo.svg\" alt=\"LinkedIn Logo\" style=\"width: 16px; height: 16px; margin-right: 8px;\"\u003e`\n\tout += `LinkedIn`\n\tout += `\u003c/button\u003e`\n\tout += `\u003c/a\u003e`\n\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n}\n\nfunc renderButtons() string {\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\n\tout := \"\u003cdiv style='display: flex; justify-content: space-around; padding-top: 20px;'\u003e\\n\\n\"\n\n\t// Red Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: darkred; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Red\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tredLink)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eRed Votes: %d\u003c/p\u003e\\n\", \"darkred\", redVotes) // Show red votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Green Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: teal; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Green\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tgreenLink)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eGreen Votes: %d\u003c/p\u003e\\n\", \"teal\", greenVotes) // Show green votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Blue Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: navy; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Blue\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tblueLink)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eBlue Votes: %d\u003c/p\u003e\\n\", \"navy\", blueVotes) // Show blue votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Current RGB Display\n\tout += \"\u003cdiv style='text-align: center; margin-top: 20px;'\u003e\\n\"\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s;'\u003eCurrent RGB: rgb(%d, %d, %d)\u003c/p\u003e\\n\", currentColor, red, green, blue)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc UpdateBlueLink(link string) {\n\tAssertAuthorized()\n\tblueLink = link\n}\n\nfunc UpdateRedLink(link string) {\n\tAssertAuthorized()\n\tredLink = link\n}\n\nfunc UpdateGreenLink(link string) {\n\tAssertAuthorized()\n\tgreenLink = link\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"80000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FmBRjfoBYx5q/gLXFcIVSdrJkgyGi9F2cTP9F1WzsCuI5IYCtycYEUoep2kam4Ml992TgBg2Rc1lfezq7THiDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/mat1jamarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.GetOrigCaller()\n\tif caller != main \u0026\u0026 caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n\t\"strconv\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n\n\tredVotes int64\n\tblueVotes int64\n\tgreenVotes int64\n\n\tblueLink string\n\tredLink string\n\tgreenLink string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\nMotivated Computer Science student with strong\nanalytical and problem-solving skills. Proficient in\nprogramming and version control, with a high level of\nfocus and attention to detail. Eager to apply academic\nknowledge to real-world projects and contribute to\ninnovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tredVotes = 0\n\tgreenVotes = 0\n\tblueVotes = 0\n\tcurrentColor = `rgb(120, 120, 120)`\n\tblueLink = \"https://www.google.com\"\n\tredLink = \"https://www.google.com\"\n\tgreenLink = \"https://www.google.com\"\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc maxOfThree(a, b, c int64) int64 {\n\tmax := a\n\tif b \u003e max {\n\t\tmax = b\n\t}\n\tif c \u003e max {\n\t\tmax = c\n\t}\n\treturn max\n}\n\nfunc calculateRGB(red, green, blue int64) (int, int, int) {\n\tmaxValue := maxOfThree(red, green, blue)\n\n\tif maxValue \u003e 255 {\n\t\tscaleFactor := float64(255) / float64(maxValue)\n\n\t\tred = int64(float64(red) * scaleFactor)\n\t\tgreen = int64(float64(green) * scaleFactor)\n\t\tblue = int64(float64(blue) * scaleFactor)\n\t}\n\n\treturn int(red), int(green), int(blue)\n}\n\nfunc VoteRed() {\n\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tredVotes = redVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n}\n\nfunc VoteGreen() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tgreenVotes = greenVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n}\n\nfunc VoteBlue() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tblueVotes = blueVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n\n}\n\nfunc CollectBalance() {\n\tAssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\townerAddr := Address()\n\n\tbanker.SendCoins(std.GetOrigPkgAddr(), ownerAddr, banker.GetCoins(std.GetOrigPkgAddr()))\n}\n\nfunc Render(path string) string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; color: %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage \\n\\n%s\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += ufmt.Sprintf(\"\u003ch3 style='color: %s;'\u003eVote for the color of the page - the more you pay the more effect it will have on the homepage ;)\u003c/h3\u003e\\n\", currentColor)\n\tout += renderButtons()\n\tout += \"\u003c/div\u003e\"\n\tout += renderGitHubProjects()\n\tout += \"\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 5px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s'\u003e%s\u003c/p\u003e\\n\\n\", currentColor, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='color: %s'\u003e\\n\\n\", currentColor)\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\tout := `\u003cdiv style=\"display: flex; justify-content: center; gap: 10px;\"\u003e`\n\n\t// GitHub Button\n\tout += `\u003ca href=\"https://github.com/matijamarjanovic\" target=\"_blank\" style=\"text-decoration: none;\"\u003e`\n\tout += `\u003cbutton style=\"background-color: black; color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; display: flex; align-items: center; font-size: 14px;\"\u003e`\n\tout += `\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/9/91/Octicons-mark-github.svg\" alt=\"GitHub Logo\" style=\"width: 16px; height: 16px; margin-right: 8px;\"\u003e`\n\tout += `GitHub`\n\tout += `\u003c/button\u003e`\n\tout += `\u003c/a\u003e`\n\n\t// LinkedIn Button\n\tout += `\u003ca href=\"https://www.linkedin.com/in/matijamarjanovic\" target=\"_blank\" style=\"text-decoration: none;\"\u003e`\n\tout += `\u003cbutton style=\"background-color: rgb(30, 70, 220); color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; display: flex; align-items: center; font-size: 14px;\"\u003e`\n\tout += `\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/0/01/LinkedIn_Logo.svg\" alt=\"LinkedIn Logo\" style=\"width: 16px; height: 16px; margin-right: 8px;\"\u003e`\n\tout += `LinkedIn`\n\tout += `\u003c/button\u003e`\n\tout += `\u003c/a\u003e`\n\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n}\n\nfunc renderButtons() string {\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\n\tout := \"\u003cdiv style='display: flex; justify-content: space-around; padding-top: 20px;'\u003e\\n\\n\"\n\n\t// Red Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: darkred; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Red\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tredLink)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eRed Votes: %d\u003c/p\u003e\\n\", \"darkred\", redVotes) // Show red votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Green Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: teal; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Green\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tgreenLink)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eGreen Votes: %d\u003c/p\u003e\\n\", \"teal\", greenVotes) // Show green votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Blue Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: navy; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Blue\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tblueLink)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eBlue Votes: %d\u003c/p\u003e\\n\", \"navy\", blueVotes) // Show blue votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Current RGB Display\n\tout += \"\u003cdiv style='text-align: center; margin-top: 20px;'\u003e\\n\"\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s;'\u003eCurrent RGB: rgb(%d, %d, %d)\u003c/p\u003e\\n\", currentColor, red, green, blue)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc UpdateBlueLink(link string) {\n\tAssertAuthorized()\n\tblueLink = link\n}\n\nfunc UpdateRedLink(link string) {\n\tAssertAuthorized()\n\tredLink = link\n}\n\nfunc UpdateGreenLink(link string) {\n\tAssertAuthorized()\n\tgreenLink = link\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"80000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PZOYlcNsC33uViW9ulCpOSLpiIngum3WSbzOZ7qTBvtW0uMy5dhFXzRHYqOhsqwmed3LAkGD9giJOX34UgPMDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/matijamarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t//\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/matijamarjanovic/config\"\n\t\"gno.land/r/matijamarjanovic/snakeart\"\n\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe \t string\n\tcurrentColor string\n\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe = \n\t\t`### About me\n Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\ncurrentColor = `rgba(120, 0, 0)`\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc Render(path string) string {\n\n\tif(std.GetHeight() % 2 == 1){\n\t\tcurrentColor = `rgb(120, 0, 0)`\n\t}else if(std.GetHeight() % 2 == 0){\n\t\tcurrentColor = `rgb(0, 0, 120)`\n\t}else if(std.GetHeight() % 2 == 2){\n\t\tcurrentColor = `rgn(0, 120, 0)`\n\t}\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\",currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage %s\\n\\n\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderGitHubProjects()\n\tout += renderArt()\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 2px solid %s;' /\u003e`, \n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp\u003e%s\u003c/p\u003e\\n\\n\", pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string{\n\n\t\n\tout := ufmt.Sprintf(\"\u003cdiv style = 'text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += \"### [Github](https://github.com/matijamarjanovic)\"\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n\n}\n\nfunc renderArt() string{\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"```\\n\" + DrawSnake(int(std.GetHeight())%10+5) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}"},{"name":"snakeart.gno","body":"package home\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 50\n)\n\nfunc DrawSnake(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid snake size\")\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\" 🐍 Snake (try) 🐍\\n\")\n\tb.WriteString(strings.Repeat(\"=\", 40) + \"\\n\\n\")\n\n\t// Snake head\n\tb.WriteString(\" ○○○○\\n\")\n\tb.WriteString(\" ◍◍◍◍◍ ~🐍 HEAD\\n\")\n\tb.WriteString(\"◒\\n\")\n\n\t// Draw smooth snake body\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(drawSmoothBodySegment(i))\n\t}\n\n\t// Snake tail\n\tb.WriteString(drawSnakeTail())\n\n\treturn b.String()\n}\n\n// Smoother, snake-like body segment\nfunc drawSmoothBodySegment(i int) string {\n\t// Create a wavy snake-like body\n\tif i%2 == 0 {\n\t\treturn ` ~~~~ \n ///// \n ~~~~~~\n ///////\n~~~~~~~\n`\n\t}\n\treturn ` ~~~~~~ \n ///////\n ~~~~~~\n /////\n ~~~~\n`\n}\n\n// Tail for the snake\nfunc drawSnakeTail() string {\n\treturn \" 🐍 TAIL\\n\"\n}\n\n\n// Render processes the input and generates the full snake\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"\\n\" + DrawSnake(size) + \"\\n\"\n\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Dr2AfcNYpak3EO12ZuNPGWJ3Be/7dVlAJ7RMHv4Exwpi8OGkEcL5y0oSujFCwFn4dKdXKthxKUNcOUKMtOgBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/matijamarjanovicc/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.GetOrigCaller()\n\tif caller != main \u0026\u0026 caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n\t\"strconv\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n\n\tredVotes int64\n\tblueVotes int64\n\tgreenVotes int64\n\n\tvoteUrl string\n\n\tcontractAdd std.Address\n\tuserAdd std.Address\n\tamount int64\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\nMotivated Computer Science student with strong\nanalytical and problem-solving skills. Proficient in\nprogramming and version control, with a high level of\nfocus and attention to detail. Eager to apply academic\nknowledge to real-world projects and contribute to\ninnovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tredVotes = 0\n\tgreenVotes = 0\n\tblueVotes = 0\n\tcurrentColor = `rgb(120, 120, 120)`\n\tvoteUrl = \"https://gno.studio/connect/view/gno.land/r/matijamarjanovic/home?network=portal-loop\"\n\n\tcontractAdd = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\tuserAdd = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\tamount = 0\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc maxOfThree(a, b, c int64) int64 {\n\tmax := a\n\tif b \u003e max {\n\t\tmax = b\n\t}\n\tif c \u003e max {\n\t\tmax = c\n\t}\n\treturn max\n}\n\nfunc calculateRGB(red, green, blue int64) (int, int, int) {\n\tmaxValue := maxOfThree(red, green, blue)\n\n\tif maxValue \u003e 255 {\n\t\tscaleFactor := float64(255) / float64(maxValue)\n\n\t\tred = int64(float64(red) * scaleFactor)\n\t\tgreen = int64(float64(green) * scaleFactor)\n\t\tblue = int64(float64(blue) * scaleFactor)\n\t}\n\n\treturn int(red), int(green), int(blue)\n}\n\nfunc VoteRed() {\n\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tredVotes = redVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n}\n\nfunc VoteGreen() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tgreenVotes = greenVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n}\n\nfunc VoteBlue() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\n\tblueVotes = blueVotes + ugnotAmount/750\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\tcurrentColor = ufmt.Sprintf(`rgb(%s, %s, %s)`, strconv.Itoa(red), strconv.Itoa(green), strconv.Itoa(blue))\n\n}\n\nfunc CollectBalance() {\n\tAssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\townerAddr := Address()\n\n\tbanker.SendCoins(std.GetOrigPkgAddr(), ownerAddr, banker.GetCoins(std.GetOrigPkgAddr()))\n}\n\nfunc Render(path string) string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; color: %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage \\n\\n%s\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += ufmt.Sprintf(\"\u003ch3 style='color: %s;'\u003eVote for the color of the page - the more you pay the more effect it will have on the homepage ;)\u003c/h3\u003e\\n\", currentColor)\n\tout += renderButtons()\n\tout += \"\u003c/div\u003e\"\n\tout += renderGitHubProjects()\n\tout += \"\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 5px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s'\u003e%s\u003c/p\u003e\\n\\n\", currentColor, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='color: %s'\u003e\\n\\n\", currentColor)\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\tout := `\u003cdiv style=\"display: flex; justify-content: center; gap: 10px;\"\u003e`\n\n\t// GitHub Button\n\tout += `\u003ca href=\"https://github.com/matijamarjanovic\" target=\"_blank\" style=\"text-decoration: none;\"\u003e`\n\tout += `\u003cbutton style=\"background-color: black; color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; display: flex; align-items: center; font-size: 14px;\"\u003e`\n\tout += `\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/9/91/Octicons-mark-github.svg\" alt=\"GitHub Logo\" style=\"width: 16px; height: 16px; margin-right: 8px;\"\u003e`\n\tout += `GitHub`\n\tout += `\u003c/button\u003e`\n\tout += `\u003c/a\u003e`\n\n\t// LinkedIn Button\n\tout += `\u003ca href=\"https://www.linkedin.com/in/matijamarjanovic\" target=\"_blank\" style=\"text-decoration: none;\"\u003e`\n\tout += `\u003cbutton style=\"background-color: rgb(30, 70, 220); color: white; padding: 8px 16px; border: none; border-radius: 5px; cursor: pointer; display: flex; align-items: center; font-size: 14px;\"\u003e`\n\tout += `\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/0/01/LinkedIn_Logo.svg\" alt=\"LinkedIn Logo\" style=\"width: 16px; height: 16px; margin-right: 8px;\"\u003e`\n\tout += `LinkedIn`\n\tout += `\u003c/button\u003e`\n\tout += `\u003c/a\u003e`\n\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n}\n\nfunc renderButtons() string {\n\tred, green, blue := calculateRGB(redVotes, greenVotes, blueVotes)\n\n\tout := \"\u003cdiv style='display: flex; justify-content: space-around; padding-top: 20px;'\u003e\\n\\n\"\n\n\t// Red Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: darkred; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Red\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tvoteUrl)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eRed Votes: %d\u003c/p\u003e\\n\", \"darkred\", redVotes) // Show red votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Green Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: teal; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Green\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tvoteUrl)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eGreen Votes: %d\u003c/p\u003e\\n\", \"teal\", greenVotes) // Show green votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Blue Button\n\tout += \"\u003cdiv\u003e\\n\"\n\tout += ufmt.Sprintf(\n\t\t\"\u003ca href='%s' target='_blank' style='text-decoration: none;'\u003e\\n\u003cbutton style='background-color: navy; color: white; padding: 20px 40px; font-size: 24px; border: none; border-radius: 5px; cursor: pointer;'\u003eVote Blue\u003c/button\u003e\\n\u003c/a\u003e\\n\",\n\t\tvoteUrl)\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s; text-align: center;'\u003eBlue Votes: %d\u003c/p\u003e\\n\", \"navy\", blueVotes) // Show blue votes\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Current RGB Display\n\tout += \"\u003cdiv style='text-align: center; margin-top: 20px;'\u003e\\n\"\n\tout += ufmt.Sprintf(\"\u003cp style='color: %s;'\u003eCurrent RGB: rgb(%d, %d, %d)\u003c/p\u003e\\n\", currentColor, red, green, blue)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc UpdateLink(link string) {\n\tvoteUrl = \"\"\n\tvoteUrl = link\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"80000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"guJv3VijNY04rj/wid8TECpPoJpyFlpLk79WXWr20gBngNucApPbU7P9WMuETc9UfhEvFyCaJoJSBxGBL0xlAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/mmarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\n Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tcurrentColor = `rgba(120, 0, 0)`\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc Render(path string) string {\n\n\tif std.GetHeight()%2 == 1 {\n\t\tcurrentColor = `rgb(120, 0, 0)`\n\t} else if std.GetHeight()%2 == 0 {\n\t\tcurrentColor = `rgb(0, 0, 120)`\n\t} else if std.GetHeight()%2 == 2 {\n\t\tcurrentColor = `rgn(0, 120, 0)`\n\t}\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage %s\\n\\n\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderGitHubProjects()\n\tout += renderArt()\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 2px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp\u003e%s\u003c/p\u003e\\n\\n\", pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style = 'text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += \"### [Github](https://github.com/matijamarjanovic)\"\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n\n}\n\nfunc renderArt() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"```\\n\" + DrawSnake(int(std.GetHeight())%10+5) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n"},{"name":"snakeart.gno","body":"package home\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 50\n)\n\nfunc DrawSnake(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid snake size\")\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\" 🐍 Snake (try) 🐍\\n\")\n\tb.WriteString(strings.Repeat(\"=\", 40) + \"\\n\\n\")\n\n\t// Snake head\n\tb.WriteString(\" ○○○○\\n\")\n\tb.WriteString(\" ◍◍◍◍◍ ~🐍 HEAD\\n\")\n\tb.WriteString(\"◒\\n\")\n\n\t// Draw smooth snake body\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(drawSmoothBodySegment(i))\n\t}\n\n\t// Snake tail\n\tb.WriteString(drawSnakeTail())\n\n\treturn b.String()\n}\n\n// Smoother, snake-like body segment\nfunc drawSmoothBodySegment(i int) string {\n\t// Create a wavy snake-like body\n\tif i%2 == 0 {\n\t\treturn ` ~~~~ \n ///// \n ~~~~~~\n ///////\n~~~~~~~\n`\n\t}\n\treturn ` ~~~~~~ \n ///////\n ~~~~~~\n /////\n ~~~~\n`\n}\n\n// Tail for the snake\nfunc drawSnakeTail() string {\n\treturn \" 🐍 TAIL\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D2JT5ZvyVOKoafIHbd2hUYota2IeQngR5u69a35u4HP0cz5f9W3msYNiR13QkteTsjWDmR5RKvaWOAW/RDeFCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/mmarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\n Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tcurrentColor = `rgba(120, 0, 0)`\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc Render(path string) string {\n\n\tif std.GetHeight()%2 == 1 {\n\t\tcurrentColor = `rgb(120, 0, 0)`\n\t} else if std.GetHeight()%2 == 0 {\n\t\tcurrentColor = `rgb(0, 0, 120)`\n\t} else if std.GetHeight()%2 == 2 {\n\t\tcurrentColor = `rgn(0, 120, 0)`\n\t}\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage %s\\n\\n\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderGitHubProjects()\n\tout += renderArt()\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 2px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp\u003e%s\u003c/p\u003e\\n\\n\", pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style = 'text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += \"### [Github](https://github.com/matijamarjanovic)\"\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n\n}\n\nfunc renderArt() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"```\\n\" + DrawSnake(int(std.GetHeight())%10+5) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n"},{"name":"snakeart.gno","body":"package home\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 50\n)\n\nfunc DrawSnake(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid snake size\")\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\" 🐍 Snake (try) 🐍\\n\")\n\tb.WriteString(strings.Repeat(\"=\", 40) + \"\\n\\n\")\n\n\t// Snake head\n\tb.WriteString(\" ○○○○\\n\")\n\tb.WriteString(\" ◍◍◍◍◍ ~🐍 HEAD\\n\")\n\tb.WriteString(\"◒\\n\")\n\n\t// Draw smooth snake body\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(drawSmoothBodySegment(i))\n\t}\n\n\t// Snake tail\n\tb.WriteString(drawSnakeTail())\n\n\treturn b.String()\n}\n\n// Smoother, snake-like body segment\nfunc drawSmoothBodySegment(i int) string {\n\t// Create a wavy snake-like body\n\tif i%2 == 0 {\n\t\treturn ` ~~~~ \n ///// \n ~~~~~~\n ///////\n~~~~~~~\n`\n\t}\n\treturn ` ~~~~~~ \n ///////\n ~~~~~~\n /////\n ~~~~\n`\n}\n\n// Tail for the snake\nfunc drawSnakeTail() string {\n\treturn \" 🐍 TAIL\\n\"\n}\n\n// Render processes the input and generates the full snake\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"\\n\" + DrawSnake(size) + \"\\n\"\n\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Sako0mwgpTc/LwE35W+WNhc6hsIcJ4QD2M+r6AuGsccCcbkuwhqwBaCUZWgOs+cY9DeKr9S0+ukv+7XkAj6jBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/mmarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\n Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tcurrentColor = `rgba(120, 0, 0)`\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc Render(path string) string {\n\n\tif std.GetHeight()%2 == 1 {\n\t\tcurrentColor = `rgb(120, 0, 0)`\n\t} else if std.GetHeight()%2 == 0 {\n\t\tcurrentColor = `rgb(0, 0, 120)`\n\t} else if std.GetHeight()%2 == 2 {\n\t\tcurrentColor = `rgn(0, 120, 0)`\n\t}\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage %s\\n\\n\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderGitHubProjects()\n\tout += renderArt()\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 2px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp\u003e%s\u003c/p\u003e\\n\\n\", pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style = 'text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += \"### [Github](https://github.com/matijamarjanovic)\"\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n\n}\n\nfunc renderArt() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"```\\n\" + DrawSnake(int(std.GetHeight())%10+5) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n"},{"name":"snakeart.gno","body":"package home\n\nimport (\n\t\"strings\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 50\n)\n\nfunc DrawSnake(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid snake size\")\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\" 🐍 Snake (try) 🐍\\n\")\n\tb.WriteString(strings.Repeat(\"=\", 40) + \"\\n\\n\")\n\n\t// Snake head\n\tb.WriteString(\" ○○○○\\n\")\n\tb.WriteString(\" ◍◍◍◍◍ ~🐍 HEAD\\n\")\n\tb.WriteString(\"◒\\n\")\n\n\t// Draw smooth snake body\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(drawSmoothBodySegment(i))\n\t}\n\n\t// Snake tail\n\tb.WriteString(drawSnakeTail())\n\n\treturn b.String()\n}\n\n// Smoother, snake-like body segment\nfunc drawSmoothBodySegment(i int) string {\n\t// Create a wavy snake-like body\n\tif i%2 == 0 {\n\t\treturn ` ~~~~ \n ///// \n ~~~~~~\n ///////\n~~~~~~~\n`\n\t}\n\treturn ` ~~~~~~ \n ///////\n ~~~~~~\n /////\n ~~~~\n`\n}\n\n// Tail for the snake\nfunc drawSnakeTail() string {\n\treturn \" 🐍 TAIL\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xINUz1eOM/bRMu+udPIdz3ZQvZMXSsve8aHbTaiDEphvJh+PbsO5GkLVO2/PeFDt1w1BcMZ13xeBwIaVqzf6Dw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"home","path":"gno.land/r/mmarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t//\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/matijamarjanovic/config\"\n\t\"gno.land/r/matijamarjanovic/snakeart\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\tcurrentColor string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\n Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n\tcurrentColor = `rgba(120, 0, 0)`\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc Render(path string) string {\n\n\tif std.GetHeight()%2 == 1 {\n\t\tcurrentColor = `rgb(120, 0, 0)`\n\t} else if std.GetHeight()%2 == 0 {\n\t\tcurrentColor = `rgb(0, 0, 120)`\n\t} else if std.GetHeight()%2 == 2 {\n\t\tcurrentColor = `rgn(0, 120, 0)`\n\t}\n\n\tout := ufmt.Sprintf(\"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif;font-size: 5rem; text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += ufmt.Sprintf(\"# Matija's Homepage %s\\n\\n\", \"\")\n\tout += \"\u003c/div\u003e\\n\\n\"\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderGitHubProjects()\n\tout += renderArt()\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\n\t\t`\u003cimg src='%s' alt='Profile Picture' style='border-radius: 50%%; width: 200px; transition: transform 0.3s ease; outline: 2px solid %s;' /\u003e`,\n\t\tpfp, currentColor)\n\tout += ufmt.Sprintf(\"\u003cp\u003e%s\u003c/p\u003e\\n\\n\", pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\n\tout := ufmt.Sprintf(\"\u003cdiv style = 'text-shadow: 5px 5px 0px %s;'\u003e\\n\\n\", currentColor)\n\tout += \"### [Github](https://github.com/matijamarjanovic)\"\n\tout += \"\u003c/div\u003e\\n\\n\\n\\n\\n\"\n\n\treturn out\n\n}\n\nfunc renderArt() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"```\\n\" + DrawSnake(int(std.GetHeight())%10+5) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n"},{"name":"snakeart.gno","body":"package home\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 50\n)\n\nfunc DrawSnake(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid snake size\")\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\" 🐍 Snake (try) 🐍\\n\")\n\tb.WriteString(strings.Repeat(\"=\", 40) + \"\\n\\n\")\n\n\t// Snake head\n\tb.WriteString(\" ○○○○\\n\")\n\tb.WriteString(\" ◍◍◍◍◍ ~🐍 HEAD\\n\")\n\tb.WriteString(\"◒\\n\")\n\n\t// Draw smooth snake body\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(drawSmoothBodySegment(i))\n\t}\n\n\t// Snake tail\n\tb.WriteString(drawSnakeTail())\n\n\treturn b.String()\n}\n\n// Smoother, snake-like body segment\nfunc drawSmoothBodySegment(i int) string {\n\t// Create a wavy snake-like body\n\tif i%2 == 0 {\n\t\treturn ` ~~~~ \n ///// \n ~~~~~~\n ///////\n~~~~~~~\n`\n\t}\n\treturn ` ~~~~~~ \n ///////\n ~~~~~~\n /////\n ~~~~\n`\n}\n\n// Tail for the snake\nfunc drawSnakeTail() string {\n\treturn \" 🐍 TAIL\\n\"\n}\n\n// Render processes the input and generates the full snake\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"\\n\" + DrawSnake(size) + \"\\n\"\n\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F5QuNpLLsw1mQwua4RQDKK2jjbVfj8iN5dxQLCm8XAbUgxOJbWEUB7G43YlHZxE5aba1NCA25Ei2nLBQ1ZdjAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imagehunt","path":"gno.land/r/matijamarjanovic/imagehunt","files":[{"name":"memorygame.gno","body":"package imagehunt\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://gno.land/static/img/og-gnoland.png\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://coinbureau.com/_next/image/?url=https%3A%2F%2Fimage.coinbureau.com%2Fstrapi%2FCosmos_Ecosystem_2df2597248.jpg\u0026amp;w=2048\u0026amp;q=50\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() []string {\n\treturn images\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RFmr7rkPR+D20UcKnIujNPYGDdBVGFWVVZkXtHdz7Ngg5IK+MX0Xg3XHPJSC0wBi1hSq2eEGyH66i+Z4R6/vBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imagehunt","path":"gno.land/r/matijamarjanovic/imagehunt","files":[{"name":"memorygame.gno","body":"package memorygame\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://gno.land/static/img/og-gnoland.png\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://coinbureau.com/_next/image/?url=https%3A%2F%2Fimage.coinbureau.com%2Fstrapi%2FCosmos_Ecosystem_2df2597248.jpg\u0026amp;w=2048\u0026amp;q=50\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() []string {\n\treturn images\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O6FsRny8plDKp6LglwNQ8QxC18ORX1es41k69LiGZJh5lAe5cVlAyzQTaBSXlSAhtXqQczjPQbPdgvsd2EMeCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imagehuntgame","path":"gno.land/r/imagehuntgame/imagehuntgame","files":[{"name":"package.gno","body":"package imagehuntgame\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://i.ytimg.com/vi/ZI0ZGDMbj-U/maxresdefault.jpg\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?s=280\u0026v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://media.licdn.com/dms/image/v2/D560BAQEyorY16DtXxA/company-logo_200_200/company-logo_200_200/0/1718287623726/gnoland_logo?e=2147483647\u0026v=beta\u0026t=pZQjY9g1yuVDJBJonlbmEIxFtWEGR_3eWIl4ATSllqc\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() string {\n\tvar result string\n\tfor i, img := range images {\n\t\tif i \u003e 0 {\n\t\t\tresult += \"`\"\n\t\t}\n\t\tresult += img\n\t}\n\treturn result\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc GetTop10() string {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\treturn len(topScores) \u003e= 10\n\t})\n\n\tvar result string\n\tfor i, score := range topScores {\n\t\tresult += ufmt.Sprintf(\"%d,%s,%d;\", i+1, score.address, score.points)\n\t}\n\treturn result\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v+Ush3m/9aPakhd7DWbWpLc68FcebMI7GzAzvcw/uooWcv4wcWBiC0ZgBtM/IfI1PbnpgetPPHpSLbm2jlYIDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imagehuntgame","path":"gno.land/r/matijamarjanovic/imagehuntgame","files":[{"name":"package.gno","body":"package imagehuntgame\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://i.ytimg.com/vi/ZI0ZGDMbj-U/maxresdefault.jpg\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?s=280\u0026v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://media.licdn.com/dms/image/v2/D560BAQEyorY16DtXxA/company-logo_200_200/company-logo_200_200/0/1718287623726/gnoland_logo?e=2147483647\u0026v=beta\u0026t=pZQjY9g1yuVDJBJonlbmEIxFtWEGR_3eWIl4ATSllqc\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() string {\n\tvar result string\n\tfor i, img := range images {\n\t\tif i \u003e 0 {\n\t\t\tresult += \"`\"\n\t\t}\n\t\tresult += img\n\t}\n\treturn result\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc GetTop10() string {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\treturn len(topScores) \u003e= 10\n\t})\n\n\tvar result string\n\tfor i, score := range topScores {\n\t\tresult += ufmt.Sprintf(\"%d,%s,%d;\", i+1, score.address, score.points)\n\t}\n\treturn result\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WMdle9e/WpRuuVGS+gpiK/UGc44+9lqupjHXPEChjqJ10ksygLIg2tGwjn6yuGkLDBREEOZn/aeLPHWibhPNAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imageshunt","path":"gno.land/r/matijamarjanovic/imageshunt","files":[{"name":"imghunt.gno","body":"package imageshunt\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://i.ytimg.com/vi/ZI0ZGDMbj-U/maxresdefault.jpg\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?s=280\u0026v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://media.licdn.com/dms/image/v2/D560BAQEyorY16DtXxA/company-logo_200_200/company-logo_200_200/0/1718287623726/gnoland_logo?e=2147483647\u0026v=beta\u0026t=pZQjY9g1yuVDJBJonlbmEIxFtWEGR_3eWIl4ATSllqc\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() string {\n\tvar result string\n\tfor i, img := range images {\n\t\tif i \u003e 0 {\n\t\t\tresult += \"`\"\n\t\t}\n\t\tresult += img\n\t}\n\treturn result\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc GetTop10() string {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\treturn len(topScores) \u003e= 10\n\t})\n\n\tvar result string\n\tfor i, score := range topScores {\n\t\tresult += ufmt.Sprintf(\"%d,%s,%d;\", i+1, score.address, score.points)\n\t}\n\treturn result\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ckCldzJuHoF0k+2EMR32e1TBPCJNlKMYx1zuyiiY2OMiLgv39ndHZ3+kf1SA5+mN/cICYLgHFTt/gKPdrehRAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imghnt","path":"gno.land/r/matijamarjanovic/imghnt","files":[{"name":"imghunt.gno","body":"package imghnt\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://gno.land/static/img/og-gnoland.png\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://coinbureau.com/_next/image/?url=https%3A%2F%2Fimage.coinbureau.com%2Fstrapi%2FCosmos_Ecosystem_2df2597248.jpg\u0026amp;w=2048\u0026amp;q=50\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() []string {\n\treturn images\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc GetTop10() string {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\treturn len(topScores) \u003e= 10\n\t})\n\n\tvar result string\n\tfor i, score := range topScores {\n\t\tresult += ufmt.Sprintf(\"%d,%s,%d;\", i+1, score.address, score.points)\n\t}\n\treturn result\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"go0tnGWN+B0rJAImbShMmj07++Xd01xEq07aM1JgnVhlW5hLvghlba+H7HmTLrqnw0WoKJuSTP3N7UNRLtUhCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"imghunt","path":"gno.land/r/matijamarjanovic/imghunt","files":[{"name":"memorygame.gno","body":"package imghunt\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://gno.land/static/img/og-gnoland.png\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026amp;s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://coinbureau.com/_next/image/?url=https%3A%2F%2Fimage.coinbureau.com%2Fstrapi%2FCosmos_Ecosystem_2df2597248.jpg\u0026amp;w=2048\u0026amp;q=50\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\",\n\t}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() []string {\n\treturn images\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc GetTop10() string {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\treturn len(topScores) \u003e= 10\n\t})\n\n\tvar result string\n\tfor i, score := range topScores {\n\t\tresult += ufmt.Sprintf(\"%d,%s,%d;\", i+1, score.address, score.points)\n\t}\n\treturn result\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zRYGk7CWaOWPc2vGXzsNOSVHIEsQ+82yPjlbJW+0lwT8qpSUfAPhmPH0egXoHg6UMmTv0UyylhU6rCA351ZLBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"memorygame","path":"gno.land/r/mat1jamarjanov1c/memorygame","files":[{"name":"memorygame.gno","body":"package memorygame\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://gno.land/static/img/og-gnoland.png\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://coinbureau.com/_next/image/?url=https%3A%2F%2Fimage.coinbureau.com%2Fstrapi%2FCosmos_Ecosystem_2df2597248.jpg\u0026w=2048\u0026q=50\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\"}\n\n\t// Adding 10 testing scores for different addresses\n\tscores.Set(\"address1\", 30)\n\tscores.Set(\"address2\", 25)\n\tscores.Set(\"address3\", 18)\n\tscores.Set(\"address4\", 40)\n\tscores.Set(\"address5\", 35)\n\tscores.Set(\"address6\", 15)\n\tscores.Set(\"address7\", 50)\n\tscores.Set(\"address8\", 22)\n\tscores.Set(\"address9\", 45)\n\tscores.Set(\"address10\", 10)\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() []string {\n\treturn images\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := getTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc getTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N1386edmPBLDxtKaebDOynqzV24CIC0GxCbu6hAvzEAO7ZRMEh/p9OVAPEEnCjeq8yoDB+EERrm2sJcJETcfAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","package":{"name":"memorygame","path":"gno.land/r/matijamarjanovic/memorygame","files":[{"name":"memorygame.gno","body":"package memorygame\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"std\"\n)\n\nvar (\n\timages []string\n\tscores avl.Tree\n)\n\nfunc init() {\n\tscores = *avl.NewTree()\n\timages = []string{\n\t\t\"https://gno.land/static/img/og-gnoland.png\",\n\t\t\"https://schollz.com/img/gno.png\",\n\t\t\"https://pbs.twimg.com/media/FmxJDJ_XoAAX27f.jpg:large\",\n\t\t\"https://play.gno.land/og-playground-2.png\",\n\t\t\"https://images.lumacdn.com/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=400,height=400/event-covers/4w/f8751196-bf78-47dc-8879-320198ab8176\",\n\t\t\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXK4i0tjkqCBIE19j2E1-v-Eyigybfkanibw\u0026s\",\n\t\t\"https://airdrops.one/wp-content/uploads/2022/04/gno-land-logo.jpeg\",\n\t\t\"https://img.itch.zone/aW1nLzExMjM5OTM1LnBuZw==/original/vD1tZS.png\",\n\t\t\"https://avatars.githubusercontent.com/u/75237105?v=4\",\n\t\t\"https://mythicalcreatures.info/media/gnome-mythical-creatures-1200x900.jpg\",\n\t\t\"https://builtin.com/sites/www.builtin.com/files/styles/ckeditor_optimize/public/inline-images/Blockchain%20Technology.jpg\",\n\t\t\"https://coinbureau.com/_next/image/?url=https%3A%2F%2Fimage.coinbureau.com%2Fstrapi%2FCosmos_Ecosystem_2df2597248.jpg\u0026w=2048\u0026q=50\",\n\t\t\"https://cdn.decrypt.co/wp-content/uploads/2020/01/jae-kwon-gID_1.jpg\",\n\t\t\"https://cdn.hashnode.com/res/hashnode/image/upload/v1659512725142/BlwUf2u16.png\",\n\t\t\"https://gnoscan.io/gnoscan-thumb.png\"}\n}\n\nfunc GetSingleImage(index int) string {\n\treturn images[index]\n}\n\nfunc GetImages() []string {\n\treturn images\n}\n\nfunc Register(address std.Address) {\n\tscores.Set(address.String(), 0)\n}\n\nfunc GetScore(address std.Address) int {\n\tvalue, exists := scores.Get(address.String())\n\tif exists {\n\t\treturn value.(int)\n\t} else {\n\t\treturn -1\n\t}\n}\n\nfunc SetScore(address std.Address, score int) {\n\tscores.Set(address.String(), score)\n}\n\nfunc Render(_ string) string {\n\tout := \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; font-size: 5rem; color: #000000;'\u003e\\n\\n\"\n\tout += \"# Memory Game\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\t// Game Images section\n\tout += \"\u003cdiv style='font-family: \\\"Trebuchet MS\\\", sans-serif; text-align: justify;'\u003e\\n\\n\"\n\tfor _, img := range images {\n\t\tout += \"\u003cimg src='\" + img + \"' style='width: 100px; height: 100px; margin: 5px;' /\u003e\\n\"\n\t}\n\tout += \"\u003c/div\u003e\"\n\n\t// Scoreboard section\n\tout += \"\u003cdiv style='margin-top: 20px;'\u003e\\n\"\n\tout += \"\u003ch2 style='font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003eTop 5 Scores\u003c/h2\u003e\\n\"\n\n\t// Table styling\n\tout += \"\u003ctable style='width: 100%; border-collapse: collapse; text-align: center; font-family: \\\"Trebuchet MS\\\", sans-serif;'\u003e\\n\"\n\tout += \"\u003cthead style='; color: white;'\u003e\\n\"\n\tout += \"\u003ctr\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eRank\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003eAddress\u003c/th\u003e\\n\"\n\tout += \"\u003cth style='padding: 10px; border: 1px solid #ddd;'\u003ePoints\u003c/th\u003e\\n\"\n\tout += \"\u003c/tr\u003e\\n\"\n\tout += \"\u003c/thead\u003e\\n\"\n\n\t// Table body for top scores\n\tout += \"\u003ctbody\u003e\\n\"\n\ttopScores := GetTopScores(5)\n\tfor i, score := range topScores {\n\t\tout += \"\u003ctr style='border: 1px solid #ddd;'\u003e\\n\"\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", i+1)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%s\u003c/td\u003e\\n\", score.address)\n\t\tout += ufmt.Sprintf(\"\u003ctd style='padding: 8px;'\u003e%d\u003c/td\u003e\\n\", score.points)\n\t\tout += \"\u003c/tr\u003e\\n\"\n\t}\n\tout += \"\u003c/tbody\u003e\\n\"\n\tout += \"\u003c/table\u003e\\n\"\n\tout += \"\u003c/div\u003e\"\n\n\treturn out\n}\n\n// Helper function to get the top N scores\nfunc GetTopScores(n int) []struct {\n\taddress string\n\tpoints int\n} {\n\tvar topScores []struct {\n\t\taddress string\n\t\tpoints int\n\t}\n\n\t// Reverse iterate through the tree to get the top scores\n\tscores.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttopScores = append(topScores, struct {\n\t\t\taddress string\n\t\t\tpoints int\n\t\t}{address: key, points: value.(int)})\n\n\t\t// Stop after collecting N scores\n\t\treturn len(topScores) \u003e= n\n\t})\n\n\treturn topScores\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AfXd9xZf9Ci5RZbgGnY63U8duU0yJneli0icyqqzWCKU+56kQdh4WJy4JgS7lUAFAm2Pgi+gPjc1ERVek24VBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","package":{"name":"canary_hello_20241119_01","path":"gno.land/r/wyhaines/canary_hello_20241119_01","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ImDx5uu38L5J5L6VZ6eDYaC2j4c7XRGAyMxQX4CwhttnvKLYWxgU1wYFikdZWKZECqQt3y0iR0mZyxZdPAscAA=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732022004"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","package":{"name":"canary_hello_20241119_01","path":"gno.land/r/wyhaines/canary_hello_20241119_01","files":[{"name":"package.gno","body":"package hello_canary_20241119_01\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IR8DsMli1FfSO0pkzmO3QrHcKxFmjYOSxiQocjxvyq1gR1JIcenyQOw2b4i3Oj8v2N/SMk6ZyaPS0wsUg8opBw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732022115"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1exlak7qn6c0wvmyurc3hjrx07qxeu7j5fxzwlq","package":{"name":"hello_canary_20241119_01","path":"gno.land/r/wyhaines/hello_canary_20241119_01","files":[{"name":"package.gno","body":"package hello_canary_20241119_01\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5cFLjLr65v4Y2HAlDGE2PMsfjSkuFvsg7TDFcdfloB3YsP3wSmLDiqisNySX7HBW/wrFMsAa9zH9+Ffe8NhxAg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732022155"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","package":{"name":"raffle","path":"gno.land/r/everestkc/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n // Replace \"YOUR_RAFFLE_CODE\" with your actual raffle code\n raffle.RegisterUsername(\"everestkc\")\n}"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0aht9kcNJyjJGhiHlwsdIi5oPRmo605mFEwOew0G+3Bzx+tEflWHFQiKIvm0LC/HfWeggWBObSJ6GlB/K2m5BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","package":{"name":"raffle","path":"gno.land/r/everestkc/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// Replace \"YOUR_RAFFLE_CODE\" with your actual raffle code\n\traffle.RegisterCode(\"q3tqy6owAX\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tlD9k+gP9KLN/nOhaB5+R6TB9qEPqnTEfl71IZ/clF3t/yAsar0cBeFbiwnNDVn4r0vseqO2Uw6+iOCLbIEAAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","package":{"name":"winner1","path":"gno.land/r/everest/winner1","files":[{"name":"package.gno","body":"package winner1\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// Replace \"YOUR_RAFFLE_CODE\" with your actual raffle code\n\traffle.RegisterUsername(\"everestkc\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DlPuU729FYtvAE2YiBWHuqf+rSOwWihLIU9dbZ70v5ZjA7ksWgljMzsikIpDFftW5yLkDymOXBAaRu1iEw2ECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f5zd97wpz579jxqewpl2zmwwerzmkmu4h2mgky","package":{"name":"winner1","path":"gno.land/r/everestkc/winner1","files":[{"name":"package.gno","body":"package winner1\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// Replace \"YOUR_RAFFLE_CODE\" with your actual raffle code\n\traffle.RegisterUsername(\"everestkc\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VzjACXU0pHujls8afkWn3zLsXPctavbAZQbnuuGC+eD9UQgf4R0B4yV9EydyWRVGXU6aSxkbTh96Q4+CG4J3Dw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f748xee7gpwldyrz4xea3nk6hw24lfya49fus8","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mQLA4mFH65K89KyiCTMXGf9aianZ3NsdRqyRRllu05YwiaTRhWv8YaUAbawMujy4RrhD5mg8BzfpovluAkihAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f9cz0xezps2mxcevdhc8nxcrzgnuyvzy6dmwhd","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"No+yQHn4fW2Oc/ZZEyPB+UYcReqUXxYfSKdRGoIhQTdD+MXDMSo4TN3fgI4C0m7mT/zBGxH71j0aIDlAd8t9BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f9cz0xezps2mxcevdhc8nxcrzgnuyvzy6dmwhd","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"No+yQHn4fW2Oc/ZZEyPB+UYcReqUXxYfSKdRGoIhQTdD+MXDMSo4TN3fgI4C0m7mT/zBGxH71j0aIDlAd8t9BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1f9cz0xezps2mxcevdhc8nxcrzgnuyvzy6dmwhd","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"No+yQHn4fW2Oc/ZZEyPB+UYcReqUXxYfSKdRGoIhQTdD+MXDMSo4TN3fgI4C0m7mT/zBGxH71j0aIDlAd8t9BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fdcd4a57hx6hqmvp70n8ht0dlmduyfuhsf7srk","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2KG/YnugZ2Ff14LkffQxxiteJVAtlk+5Z7DyUFg50+mnp8bLQCj1VpH6oiOczIsKdqx+AtSr8X/s9SE0OkvzAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","package":{"name":"raffle","path":"gno.land/r/gc24/bigzoo/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc init() {\n\n\t_ = RegisterCode(\"EeoVgGAwDN\")\n\t_ = RegisterUsername(\"bigzoo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zgMiqnGcFZsJ7l0FwUrpCFVrxJWwzwIMocRvdLQc8Eszx29JeTk6XJ74+6RxlHY1PAudLl7V+ZQdFkWuA7HXBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","package":{"name":"raffle","path":"gno.land/r/gc24/bigzoo/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\n// Nothing to see here, just some constants, move on :)\nconst (\n\tcodeLength = 10\n\tamtOfCodes = 300\n)\n\n// Hello! This is where you register your raffle code!\n// Calling RegisterCode is the first step for entering the raffle.\n// It allows you to register a specific raffle code and connect your address to it.\n// RegisterCode only be called via other code; you should figure out a way to do it.\nfunc RegisterCode(code string) string {\n\tif code == \"\" \u0026\u0026 len(code) != codeLength {\n\t\tpanic(\"invalid code: \" + code)\n\t}\n\n\tcaller := std.PrevRealm() // save realm used to call\n\torigin := std.GetOrigCaller() // save deployer of realm\n\n\t// Deny non-code entries\n\tif caller.IsUser() {\n\t\tpanic(\"denied; can only be called from within code\")\n\t}\n\n\t// Get sha256 of code\n\thash := sha256.Sum256([]byte(code))\n\thashString := hex.EncodeToString(hash[:])\n\n\t// Check if code has already been registered\n\tif _, ok := registeredHashes[hashString]; ok {\n\t\tpanic(\"code already registered: \" + code)\n\t}\n\n\t// Check if the gopher has already registered another raffle code\n\tif originExists(origin) {\n\t\tpanic(\"you cannot register more than one code!\")\n\t}\n\n\t// Try to find the hash in the official hash list\n\tvar found bool\n\tfor _, ch := range codeHashes {\n\t\tif ch == hashString {\n\t\t\tfound = true\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif !found {\n\t\tpanic(\"specified code is not a valid raffle code: \" + code)\n\t}\n\n\tentry := \u0026EntryData{\n\t\ttxorigin: origin,\n\t\tcaller: caller,\n\t\traffleCode: code,\n\t\tcodeHash: hashString,\n\t\tghUsername: \"\",\n\t}\n\n\t// Save to hash tracker\n\tregisteredHashes[hashString] = struct{}{}\n\n\t// Save raffle entry\n\tpartialEntries = append(partialEntries, entry)\n\n\treturn ufmt.Sprintf(\"Successfully registered raffle code!\\n%s\\nRegister your username to complete your raffle entry.\", entry.String())\n}\n\n// Somewhat similar to Go, init() executes upon deployment of your code.\n// Hint: maybe you can use init() in your code to execute RegisterCode() upon deployment via play.gno.land?\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n\n\t_ = RegisterCode(\"EeoVgGAwDN\")\n}\n\n// RegisterUsername registers a GitHub username to an already existing entry\n// Hint: you can call this function just like you did with RegisterCode(), or via gno.studio/connect :)\n// If you use Connect, make sure you're on the Portal Loop network, and you've navigated to the correct path!\nfunc RegisterUsername(username string) string {\n\tif username == \"\" {\n\t\tpanic(\"invalid username: \" + username)\n\t}\n\n\torigin := std.GetOrigCaller()\n\n\tfor _, entry := range partialEntries {\n\t\tif entry.txorigin == origin { // this will check if you're using the same address as when registering the raffle code ;)\n\t\t\tif entry.ghUsername != \"\" {\n\t\t\t\tpanic(\"you cannot register your username twice!\")\n\t\t\t}\n\n\t\t\tentry.ghUsername = username\n\t\t\tcompleteEntries = append(completeEntries, entry)\n\t\t\tnumReg += 1\n\t\t\treturn ufmt.Sprintf(\"successfully registered %s for address %s\", username, entry.txorigin)\n\t\t}\n\t}\n\n\tpanic(\"could not find entry for caller address; did you register your raffle code yet?\")\n}\n\n// Admin stuff\n\nfunc PickWinner1() string {\n\to.AssertCallerIsOwner()\n\twinner1 = pickWinner()\n\n\treturn winner1.ghUsername\n}\n\nfunc PickWinner2() string {\n\to.AssertCallerIsOwner()\n\twinner2 = pickWinner()\n\n\treturn winner2.ghUsername\n}\n\nfunc UploadCodeHashes(delimCodes string) {\n\to.AssertCallerIsOwner()\n\n\ttokens := strings.Split(delimCodes, \",\")\n\n\tif len(tokens) != amtOfCodes {\n\t\tpanic(ufmt.Sprintf(\"invalid amount of codes; wanted %d got %d\", amtOfCodes, len(tokens)))\n\t}\n\n\tcopy(codeHashes, tokens)\n}\n\nfunc UploadRandomness(x, y uint64) {\n\to.AssertCallerIsOwner()\n\n\trandSource = rand.New(rand.NewPCG(x, y))\n}\n\n// Rendering\n\nfunc Render(_ string) string {\n\toutput := \"# Raffle - GopherCon US 2024\\n\\n\"\n\n\toutput += renderStats()\n\n\tif winner1 != nil || winner2 != nil {\n\t\toutput += renderWinners()\n\t}\n\n\toutput += RenderGuide()\n\n\treturn output\n}\n\nfunc renderStats() string {\n\toutput := \"\"\n\n\toutput += \"### Raffle Stats\\n\\n\"\n\n\toutput += `\u003cdiv class=\"columns-3\"\u003e`\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest codes\n\toutput += renderLatestCodesWidget(5)\n\toutput += `\u003c/div\u003e` // close Latest codes\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Latest usernames\n\toutput += renderLatestUsernamesWidget(5)\n\toutput += `\u003c/div\u003e` // close Latest usernames\n\n\toutput += `\u003cdiv class=\"column\"\u003e` // Chances\n\toutput += renderChances()\n\toutput += `\u003c/div\u003e` // close Chances\n\n\toutput += `\u003c/div\u003e` // close columns-3\n\n\toutput += \"\\n\\n\"\n\toutput += \"---\" // close section\n\n\toutput += \"\\n\"\n\n\treturn output\n}\n\nfunc renderChances() string {\n\toutput := \"\\n\\n#### Chances\\n\\n\"\n\n\toutput += ufmt.Sprintf(\"- Users in the raffle: %d\\n\\n\", numReg)\n\n\tif numReg \u003e 0 {\n\t\toutput += ufmt.Sprintf(\"- Chance of winning: 2:%d\\n\\n\", numReg)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestCodesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest codes\\n\\n\"\n\tpeNum := len(partialEntries)\n\n\tif peNum == 0 {\n\t\toutput += \"No codes registered yet.\"\n\t\treturn output\n\t}\n\n\tif peNum \u003c amt {\n\t\tamt = peNum\n\t}\n\n\tfor i := peNum - 1; i \u003e= peNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", partialEntries[i].raffleCode)\n\t}\n\n\treturn output\n}\n\nfunc renderLatestUsernamesWidget(amt int) string {\n\toutput := \"\\n\\n#### Latest usernames\\n\\n\"\n\tceNum := len(completeEntries)\n\n\tif winner1 != nil || winner2 != nil {\n\t\toutput += \"Winners are chosen!\"\n\t\treturn output\n\t}\n\n\tif ceNum == 0 {\n\t\toutput += \"No usernames registered yet.\"\n\t\treturn output\n\t}\n\n\tif ceNum \u003c amt {\n\t\tamt = ceNum\n\t}\n\n\tfor i := ceNum - 1; i \u003e= ceNum-amt; i-- {\n\t\toutput += ufmt.Sprintf(\"- `%s`\\n\\n\", completeEntries[i].ghUsername)\n\t}\n\n\treturn output\n}\n\nfunc renderWinners() string {\n\toutput := \"\\n\\n# Winners\\n\\n\"\n\n\tif winner1 != nil {\n\t\toutput += ufmt.Sprintf(\"### Winner 1: `@%s`\\n\\n\", winner1.ghUsername)\n\t}\n\n\tif winner2 != nil {\n\t\toutput += ufmt.Sprintf(\"### Winner 2: `@%s`\\n\\n\", winner2.ghUsername)\n\t}\n\n\toutput += \"## Congratulations! Come to the booth and show us your GitHub account!\\n\\n\"\n\n\toutput += \"---\\n\\n\"\n\n\treturn output\n}\n\n// Helpers\n\nfunc (entry *EntryData) String() string {\n\treturn ufmt.Sprintf(\"Address: %s\\nRealm Path: %s\\nCode: %s\\nHash: %s\\nGitHub username: %s\\n\",\n\t\tentry.txorigin.String(),\n\t\tentry.caller.PkgPath(),\n\t\tentry.raffleCode,\n\t\tentry.codeHash,\n\t\tentry.ghUsername,\n\t)\n}\n\nfunc pickWinner() *EntryData {\n\tif len(completeEntries) == 0 {\n\t\tpanic(\"No complete entries yet!\")\n\t}\n\tif randSource == nil {\n\t\tpanic(\"No randomness source yet!\")\n\t}\n\n\tr := rand.New(randSource)\n\twinnerIndex := r.IntN(len(completeEntries))\n\twinner := completeEntries[winnerIndex]\n\n\t// remove winner from entry list\n\tcompleteEntries = append(completeEntries[:winnerIndex], completeEntries[winnerIndex+1:]...)\n\n\treturn winner\n}\n\nfunc CheckHashUpload() int {\n\treturn len(codeHashes)\n}\n\nfunc originExists(origin std.Address) bool {\n\tfor _, e := range partialEntries {\n\t\tif e.txorigin == origin {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B//k7zFXwNWUfFRKmEDBoqBtu95iLUlgWA9TCzKCGDmypcBY63yi7SFgFEY4/FU7qE+xaAFKWJ3WVMjxK0GKCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","package":{"name":"raffle","path":"gno.land/r/gc24/bigzoo/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// Somewhat similar to Go, init() executes upon deployment of your code.\n// Hint: maybe you can use init() in your code to execute RegisterCode() upon deployment via play.gno.land?\nfunc init() {\n\t// Set admin address\n\n\t_ = raffle.RegisterCode(\"EeoVgGAwDN\")\n\t_ = raffle.RegisterUsername(\"bigzoo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UBbZDMq6/SWcm3O0Djfk8QLJHi63/wMwv/pExaq7UPZF+NnKmMHeUl7z5+p8Eyk6NEh54C+ruGAcJ/tWwfHtDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","package":{"name":"raffle","path":"gno.land/r/gc24/bigzoo/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// Somewhat similar to Go, init() executes upon deployment of your code.\n// Hint: maybe you can use init() in your code to execute RegisterCode() upon deployment via play.gno.land?\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n\n\t_ = raffle.RegisterCode(\"EeoVgGAwDN\")\n\t_ = raffle.RegisterUsername(\"bigzoo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3TSihT6FHUHz8qnsSFkTU0Lg/pr7IW1PVsfRKj561FNr6kJgUdPzepCeSzI+YOraHBjDZGFX+Sx0YewIPGmDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lk+koXONMoVej9f9kR8K1oZendI5Yx6H85q5iW6X+zj4+K2j6huSWOObASLFJd9KtSWM2RtOaYVn+IicU5FCBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lk+koXONMoVej9f9kR8K1oZendI5Yx6H85q5iW6X+zj4+K2j6huSWOObASLFJd9KtSWM2RtOaYVn+IicU5FCBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","package":{"name":"games","path":"gno.land/r/demo/games","files":[{"name":"games.gno","body":"package games\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(path string) string {\n\treturn \"#### r/demo/games\\n\\n\" +\n\t\t\"A collection of small games written in the Gno language:\\n\\n\" +\n\t\trenderGames() + \"\\n\\n\"\n}\n\nfunc renderGames() string {\n\tvar b strings.Builder\n\tfor _, o := range []struct {\n\t\ttitle, path string\n\t\tauthors []string\n\t\tdesc string\n\t}{\n\t\t{\"shifumi\", \"games/shifumi\", []string{\"mvertes\"}, \"a very simple rock, paper, scissors game\"},\n\t\t{\"tictactoe\", \"games/tictactoe\", []string{\"grepsuzette\", \"moul\"}, \"CPU vs Human tictactoe, no need for a wallet\"},\n\t} {\n\t\tb.WriteString(ufmt.Sprintf(\n\t\t\t\"* [%s](%s): %s\\n\",\n\t\t\to.title, o.path,\n\t\t\to.desc,\n\t\t\tRenderAuthors(o.authors, \"@\"),\n\t\t))\n\t}\n\treturn b.String()\n}\n\n// [\"a\", \"b\", \"c\"] -\u003e \"a, b and c\"\n// Typical prefix is \"@\": \"a\", \"b\", \"c\" -\u003e \"@a, @b and @c\"\nfunc RenderAuthors(authors []string, optionalPrefix ...string) string {\n\ta := []string{}\n\tprefix := \"\"\n\tif len(optionalPrefix) \u003e 0 {\n\t\tprefix = optionalPrefix[0]\n\t}\n\tfor _, author := range authors {\n\t\ta = append(a, prefix+author)\n\t}\n\tswitch len(a) {\n\tcase 0:\n\t\treturn \"*?*\"\n\tcase 1:\n\t\treturn a[0]\n\tdefault:\n\t\treturn strings.Join(a[0:len(a)-1], \", \") + \" and \" + a[len(a)-1]\n\t}\n}\n"},{"name":"games_test.gno","body":"package games\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRenderAuthors(t *testing.T) {\n\tassertEqual(t, RenderAuthors([]string{}), \"*?*\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\"}), \"tim\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\", \"jim\"}), \"tim and jim\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\", \"jim\", \"kim\"}), \"tim, jim and kim\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\", \"jim\", \"kim\", \"nim\"}), \"tim, jim, kim and nim\")\n\tassertEqual(t, RenderAuthors([]string{}, \"@\"), \"*?*\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\"}, \"@\"), \"@tim\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\", \"jim\"}, \"@\"), \"@tim and @jim\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\", \"jim\", \"kim\"}, \"@\"), \"@tim, @jim and @kim\")\n\tassertEqual(t, RenderAuthors([]string{\"tim\", \"jim\", \"kim\", \"nim\"}, \"@\"), \"@tim, @jim, @kim and @nim\")\n}\n\nfunc assertEqual(t *testing.T, got, expected string) {\n\tt.Helper()\n\tif expected != got {\n\t\tt.Errorf(\"expected %s, got %s\", expected, got)\n\t}\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"100000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GYrrJB4OE1HrWWh61QAY0NvQ6H9PsvDw+qQ7LMtdFQPmT/ZtOcHTINbgMy4Cb9ZoZIZm9N0PnhLk2fGMA72ZCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","package":{"name":"ternary","path":"gno.land/p/demo/ternary","files":[{"name":"README.md","body":"# Ternary package\n\nTernary operator have notoriously been absent from Go \nfrom its inception.\n\nThis package proposes ternary functions.\n\nWe don't advocate for their systematic use, but \nit can often prove useful when realms need to generate \nMarkdown, \n\n## Usage\n```go\nimport \"p/demo/ternary\"\n\nfunc Render(path string) string {\n // display appropriate greeting\n return \"# \" + ternary.String(isEarly, \"hi\", \"bye\")\n}\n```\n\nAnother example: \n\n`f := ternary.Float64(useGoldenRatio, 1.618, 1.66)`\n\n## List of functions\n\nMost native types got a function.\n\nNote: both branches yes/no get evaluated, contrarily to the C operator.\nPlease don't use this if your branches are expensive.\n\nFunctions:\n\n* func String(cond bool, yes, no string) string\n* func Int(cond bool, yes, no int) int\n* func Int8(cond bool, yes, no int8) int8 \n* func Int16(cond bool, yes, no int16) int16 \n* func Int32(cond bool, yes, no int32) int32 \n* func Int64(cond bool, yes, no int64) int64 \n* func Uint(cond bool, yes, no uint) uint \n* func Uint8(cond bool, yes, no uint8) uint8 \n* func Uint16(cond bool, yes, no uint16) uint16 \n* func Uint32(cond bool, yes, no uint32) uint32 \n* func Uint64(cond bool, yes, no uint64) uint64 \n* func Float32(cond bool, yes, no float32) float32 \n* func Float64(cond bool, yes, no float64) float64 \n* func Rune(cond bool, yes, no rune) rune \n* func Bool(cond bool, yes, no bool) rune \n* func Address(cond bool, std.Address, std.Address) std.Address\n\n"},{"name":"ternary.gno","body":"package ternary\n\nimport \"std\"\n\nfunc String(cond bool, yes, no string) string {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Int(cond bool, yes, no int) int {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Int8(cond bool, yes, no int8) int8 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Int16(cond bool, yes, no int16) int16 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Int32(cond bool, yes, no int32) int32 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Int64(cond bool, yes, no int64) int64 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Uint(cond bool, yes, no uint) uint {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Uint8(cond bool, yes, no uint8) uint8 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Uint16(cond bool, yes, no uint16) uint16 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Uint32(cond bool, yes, no uint32) uint32 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Uint64(cond bool, yes, no uint64) uint64 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Float32(cond bool, yes, no float32) float32 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Float64(cond bool, yes, no float64) float64 {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Rune(cond bool, yes, no rune) rune {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Bool(cond bool, yes, no bool) bool {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n\nfunc Address(cond bool, yes, no std.Address) std.Address {\n\tif cond {\n\t\treturn yes\n\t}\n\treturn no\n}\n"},{"name":"ternary_test.gno","body":"package ternary\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestTernary(t *testing.T) {\n\tassert(t, String(true, \"a\", \"b\") == \"a\")\n\tassert(t, String(false, \"a\", \"b\") == \"b\")\n\tassert(t, Int(true, 0, 1) == 0)\n\tassert(t, Int(false, 0, 1) == 1)\n\tassert(t, Int8(true, 0, 1) == 0)\n\tassert(t, Int8(false, 0, 1) == 1)\n\tassert(t, Int16(true, 0, 1) == 0)\n\tassert(t, Int16(false, 0, 1) == 1)\n\tassert(t, Int32(true, 0, 1) == 0)\n\tassert(t, Int32(false, 0, 1) == 1)\n\tassert(t, Int64(true, 0, 1) == 0)\n\tassert(t, Int64(false, 0, 1) == 1)\n\tassert(t, Uint(true, 0, 1) == 0)\n\tassert(t, Uint(false, 0, 1) == 1)\n\tassert(t, Uint8(true, 0, 1) == 0)\n\tassert(t, Uint8(false, 0, 1) == 1)\n\tassert(t, Uint16(true, 0, 1) == 0)\n\tassert(t, Uint16(false, 0, 1) == 1)\n\tassert(t, Uint32(true, 0, 1) == 0)\n\tassert(t, Uint32(false, 0, 1) == 1)\n\tassert(t, Uint64(true, 0, 1) == 0)\n\tassert(t, Uint64(false, 0, 1) == 1)\n\tassert(t, Float32(true, 3.14, 1.618) == 3.14)\n\tassert(t, Float32(false, 3.14, 1.618) == 1.618)\n\tassert(t, Float64(true, 3.14, 1.618) == 3.14)\n\tassert(t, Float64(false, 3.14, 1.618) == 1.618)\n\tassert(t, Rune(true, '是', '否') == '是')\n\tassert(t, Rune(false, '是', '否') == '否')\n\tn := 17\n\tassert(t, !Bool(true, n%2 == 0, n \u003c 10))\n\tassert(t, Address(true, std.Address(\"g0\"), std.Address(\"g1\")).String() == \"g0\")\n\tassert(t, Address(false, std.Address(\"g0\"), std.Address(\"g1\")).String() == \"g1\")\n}\n\nfunc assert(t *testing.T, val bool) {\n\tt.Helper()\n\tif !val {\n\t\tt.Errorf(\"expected true, got false\")\n\t}\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"100000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zDXOtEqZND3FEX0FPF/GVEZp6s9JKrp7fJ9upjMMJfhPN0o2GtRktv6LpHXUBEbjj0Qj8QC8k0Tic5qM9ANlDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","package":{"name":"tictactoe","path":"gno.land/p/demo/tictactoe","files":[{"name":"game.gno","body":"package tictactoe\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// this file is @moul's work in #613\n// a few changes and bugfixes have been made\n\ntype Game struct {\n\tplayer1, player2 std.Address\n\tboard [9]rune // 0=empty, 1=player1, 2=player2\n\tturnCtr int\n\twinnerIdx int\n}\n\nfunc NewGame(player1, player2 std.Address) (*Game, error) {\n\tif player1 == player2 {\n\t\treturn nil, errors.New(\"cannot fight against self\")\n\t}\n\n\tg := Game{\n\t\tplayer1: player1,\n\t\tplayer2: player2,\n\t\twinnerIdx: -1,\n\t\tturnCtr: -1,\n\t}\n\treturn \u0026g, nil\n}\n\n// Partially recover a game\n// The game is guaranteed to be legit in terms of number of tiles 1 and 2\n// No winning detection is implemented here however\nfunc RecoverGame(player1, player2 std.Address, board string) (*Game, error) {\n\tg, e := NewGame(player1, player2)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\tif len(board) != 9 {\n\t\treturn nil, ufmt.Errorf(\"invalid board length: %d\", len(board))\n\t}\n\tnum1, num2 := 0, 0\n\trunes := [9]rune{}\n\tfor i, c := range board {\n\t\tswitch c {\n\t\tcase rune(0), '_', '-':\n\t\t\trunes[i] = rune(0)\n\t\tcase rune(1), 'O', 'o':\n\t\t\tnum1 += 1\n\t\t\trunes[i] = rune(1)\n\t\tcase rune(2), 'X', 'x':\n\t\t\tnum2 += 1\n\t\t\trunes[i] = rune(2)\n\t\tdefault:\n\t\t\treturn nil, errors.New(\"invalid rune\")\n\t\t}\n\t}\n\tif num1 != num2 \u0026\u0026 num1 != num2+1 {\n\t\treturn nil, errors.New(\"invalid number of x and o\")\n\t}\n\tg.board = runes\n\tg.turnCtr = num1 + num2\n\tg.winnerIdx = -1\n\treturn g, nil\n}\n\n// start sets turnCtr to 0.\nfunc (g *Game) Start() {\n\tif g.turnCtr != -1 {\n\t\tpanic(\"game already started\")\n\t}\n\tg.turnCtr = 0\n}\n\nfunc (g *Game) Play(player std.Address, posX, posY int) error {\n\tif !g.Started() {\n\t\treturn errors.New(\"game not started\")\n\t}\n\n\tif g.Turn() != player {\n\t\treturn errors.New(\"invalid turn\")\n\t}\n\n\tif g.IsOver() {\n\t\treturn errors.New(\"game over\")\n\t}\n\n\t// are posX and posY valid\n\tif posX \u003c 0 || posY \u003c 0 || posX \u003e 2 || posY \u003e 2 {\n\t\treturn errors.New(\"posX and posY should be 0, 1 or 2\")\n\t}\n\n\t// is slot already used?\n\tidx := xyToIdx(posX, posY)\n\tif g.board[idx] != 0 {\n\t\treturn ufmt.Errorf(\"slot already used (%d, %d)\", posX, posY)\n\t}\n\n\t// play\n\tplayerVal := rune(g.turnCtr%2) + 1 // player1=1, player2=2\n\tg.board[idx] = playerVal\n\n\t// check if win\n\tif g.checkLastMoveWon(posX, posY) {\n\t\tg.winnerIdx = g.turnCtr\n\t}\n\n\t// change turn\n\tg.turnCtr++\n\treturn nil\n}\n\nfunc (g Game) WouldWin(side rune, x, y int) bool {\n\tidx := xyToIdx(x, y)\n\tif g.board[idx] != rune(0) {\n\t\tpanic(\"tile should be empty\")\n\t}\n\t// place rune temporarily\n\tg.board[idx] = side\n\tb := g.checkLastMoveWon(x, y)\n\tg.board[idx] = rune(0)\n\treturn b\n}\n\nfunc (g Game) checkLastMoveWon(posX, posY int) bool {\n\t// assumes the game wasn't won yet, and that the move was already applied.\n\n\t// check vertical line\n\t{\n\t\ta := g.At(posX, 0)\n\t\tb := g.At(posX, 1)\n\t\tc := g.At(posX, 2)\n\t\tif a == b \u0026\u0026 b == c {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// check horizontal line\n\t{\n\t\ta := g.At(0, posY)\n\t\tb := g.At(1, posY)\n\t\tc := g.At(2, posY)\n\t\tif a == b \u0026\u0026 b == c {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// diagonals\n\t{\n\t\ttl := g.At(0, 0)\n\t\ttr := g.At(0, 2)\n\t\tbl := g.At(2, 0)\n\t\tbr := g.At(2, 2)\n\t\tc := g.At(1, 1)\n\t\tif posX == posY \u0026\u0026 tl == c \u0026\u0026 c == br {\n\t\t\treturn true\n\t\t}\n\t\tif posX+posY == 2 \u0026\u0026 tr == c \u0026\u0026 c == bl {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (g Game) At(posX, posY int) rune { return g.board[xyToIdx(posX, posY)] }\nfunc (g Game) Winner() std.Address { return g.PlayerByIndex(g.winnerIdx) }\nfunc (g Game) Turn() std.Address { return g.PlayerByIndex(g.turnCtr) }\nfunc (g Game) TurnNumber() int { return g.turnCtr }\nfunc (g Game) IsDraw() bool { return g.turnCtr \u003e 8 \u0026\u0026 g.winnerIdx == -1 }\nfunc (g Game) Started() bool { return g.turnCtr \u003e= 0 }\n\nfunc (g Game) IsOver() bool {\n\t// draw\n\tif g.turnCtr \u003e 8 {\n\t\treturn true\n\t}\n\n\t// winner\n\treturn g.Winner() != std.Address(\"\")\n}\n\nfunc (g Game) Output() string {\n\toutput := \"\"\n\n\tfor y := 2; y \u003e= 0; y-- {\n\t\tfor x := 0; x \u003c 3; x++ {\n\t\t\tval := g.At(x, y)\n\t\t\tswitch val {\n\t\t\tcase 0:\n\t\t\t\toutput += \"-\"\n\t\t\tcase 1:\n\t\t\t\toutput += \"O\"\n\t\t\tcase 2:\n\t\t\t\toutput += \"X\"\n\t\t\t}\n\t\t}\n\t\toutput += \"\\n\"\n\t}\n\n\treturn output\n}\n\nfunc (g Game) PlayerByIndex(idx int) std.Address {\n\tswitch idx % 2 {\n\tcase 0:\n\t\treturn g.player1\n\tcase 1:\n\t\treturn g.player2\n\tdefault:\n\t\treturn std.Address(\"\")\n\t}\n}\n\nfunc xyToIdx(x, y int) int { return y*3 + x }\n"},{"name":"game_test.gno","body":"package tictactoe\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\taddr1 = testutils.TestAddress(\"addr1\")\n\taddr2 = testutils.TestAddress(\"addr2\")\n\taddr3 = testutils.TestAddress(\"addr3\")\n)\n\nfunc TestGame(t *testing.T) {\n\tgame, err := NewGame(addr1, addr1)\n\tuassert.Error(t, err)\n\n\tgame, err = NewGame(addr2, addr3)\n\tuassert.NoError(t, err)\n\n\tuassert.False(t, game.IsOver())\n\tuassert.False(t, game.IsDraw())\n\tgame.Start()\n\tuassert.Error(t, game.Play(addr3, 0, 0)) // addr2's turn\n\tuassert.Error(t, game.Play(addr2, -1, 0)) // invalid location\n\tuassert.Error(t, game.Play(addr2, 3, 0)) // invalid location\n\tuassert.Error(t, game.Play(addr2, 0, -1)) // invalid location\n\tuassert.Error(t, game.Play(addr2, 0, 3)) // invalid location\n\tuassert.NoError(t, game.Play(addr2, 1, 1)) // first move\n\tuassert.Error(t, game.Play(addr2, 2, 2)) // addr3's turn\n\tuassert.Error(t, game.Play(addr3, 1, 1)) // slot already used\n\tuassert.NoError(t, game.Play(addr3, 0, 0)) // second move\n\tuassert.NoError(t, game.Play(addr2, 1, 2)) // third move\n\tuassert.NoError(t, game.Play(addr3, 0, 1)) // fourth move\n\tuassert.False(t, game.IsOver())\n\tuassert.NoError(t, game.Play(addr2, 1, 0)) // fifth move (win)\n\tuassert.True(t, game.IsOver())\n\tuassert.False(t, game.IsDraw())\n\n\texpected := `-O-\nXO-\nXO-\n`\n\tgot := game.Output()\n\tuassert.Equal(t, expected, got)\n}\n\nfunc TestRecoverGame(t *testing.T) {\n\tfor _, o := range []struct {\n\t\trepr, err string\n\t}{\n\t\t{\"\", \"error\"},\n\t\t{\"--\", \"error\"},\n\t\t{\"---\", \"error\"},\n\t\t{\"-----\", \"error\"},\n\t\t{\"--------\", \"error\"},\n\t\t{\"---------\", \"\"},\n\t\t{\"XX-------\", \"error\"},\n\t\t{\"OO-------\", \"error\"},\n\t\t{\"XO-X-----\", \"error\"}, // O is first\n\t\t{\"XO-O-----\", \"\"}, // valid from there on\n\t\t{\"XOXO-----\", \"\"},\n\t\t{\"XOXOO----\", \"\"},\n\t\t{\"XOXOO-X--\", \"\"},\n\t\t{\"XOXOOOX--\", \"\"}, // circles won but the function doesn't care\n\t\t{\"XOXOOOX-X\", \"\"},\n\t\t{\"XOXOOOXOX\", \"\"}, // circles won a second time\n\t\t{\"XOXOOOXOXX\", \"error\"}, // too long (10 squares)\n\t} {\n\t\tg, e := RecoverGame(addr1, addr2, o.repr)\n\t\tif o.err == \"error\" {\n\t\t\tuassert.Error(t, e, \"repr=\", o.repr)\n\t\t} else {\n\t\t\tuassert.NoError(t, e, \"repr=\", o.repr)\n\t\t\tuassert.True(t, g != nil, \"repr=\", o.repr)\n\t\t}\n\t}\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"100000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K54EMXHnYUPZNHJRkV96pBvhW5TSJeFDdbQq25+T0lxsTkdyVTjZ8CnOWiJcP7ECcoCqDa2Uvr7ps+afZm6BDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","package":{"name":"tictactoe","path":"gno.land/r/demo/games/tictactoe","files":[{"name":"README.md","body":"# Player VS CPU tic-tac-toe\n\n* Human VS CPU\n* aims to start experimenting with lowtech UI\n* stateless\n* no wallet required\n\nReusing moul's tic-tac-toe logic.\n\n```\n (\\ Thanks for the wing!\n ( \\ /(o)\\ Thanks for the wing! \n ( \\/ ()/ /) Raaarch! *Whistle*\n ( `;.))'\".) \n `(/////.-'\n =====))=))===() \n ///' \n // PjP/ejm\n ' \n```\n## Principle\n\n* `path` for Render is like `board=-X---O---\u0026move=a2`\n* no javascript,\n* only gnoweb markdown.\n\n## How the hell did Cap'n Cluck learn to play?\n\nI, Cap'n Cluck, had to learn from the most cunning and crafty of creatures – humans! I observed those barnacle-brained bilge-rats engaged in their most awesome game o' strategies, tic-tac-toe.\n\nThrough earhole-peepin', I picked up the patterns and strategies. I honed me beak on pieces o' eight, developin' a near-nautical sense o' spatial relationships! Aarrr, soon enough, I, Cap'n Cluck, became a veritable menace, matchin' wits with any landlubber brave enough to engage in a spot o' tic-tac-toe!\n\n"},{"name":"render.gno","body":"package tictactoe\n\n// Stateless human VS CPU Tic-tac-toe\n// Markdown + HTML1.0 + gnolang\n// no javascript, no wallet needed.\n\nimport (\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ternary\"\n\t\"gno.land/p/demo/tictactoe/tictactoe1p\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tcpuAddress = std.Address(\"gCPU\")\n\thumanAddress = std.Address(\"gHUMAN\")\n\turlParrot = \"https://raw.githubusercontent.com/grepsuzette/gfx/master/parrot.png\"\n\tstatusWon = \"Looks like you've won!\"\n\tstatusLost = \"Sorry mate, you lost!\"\n\tstatusDraw = \"It's a draw...\"\n)\n\nvar prng *rand.Rand\n\nfunc Intn(n int) int {\n\tif prng == nil {\n\t\t// Note: our PRNG is not stateful as calling Render is not going\n\t\t// to modify this stateless realm. We initialize it here when still nil\n\t\t// this creates the randomness we need (seeded from blockchain's height)\n\t\tprng = rand.New(rand.NewPCG(uint64(std.GetHeight()), uint64(9)))\n\t}\n\treturn prng.IntN(n)\n}\n\nfunc Render(path string) string {\n\tgame, x, y, debug := parsePath(path)\n\tif x != -1 \u0026\u0026 y != -1 {\n\t\tgame.Play(humanAddress, x, y)\n\t}\n\tcpuX, cpuY, e := game.PlayCPU()\n\toutput := parrotTalk(*game)\n\toutput += render(*game, cpuX, cpuY)\n\tif debug {\n\t\toutput += ufmt.Sprintf(\n\t\t\t\"--- played x=%d y=%d cpuX=%d cpuY=%d height=%d path=%s turn:%d error:%s\",\n\t\t\tx, y, cpuX, cpuY, std.GetHeight(), path, game.Game.TurnNumber(), e,\n\t\t)\n\t}\n\treturn output\n}\n\n// Lower-case render is simply called by Render.\n// Note the \u003cform\u003e (below) could be a \u003cdiv\u003e. If some day\n// realms can access GET and POST variables, then regular\n// \u003cbutton\u003e can be used. \u003cform\u003e is kept to remember that.\nfunc render(game tictactoe1p.Game, cpuX, cpuY int) string {\n\tstatus, class := statusAndClass(game)\n\trepr := game.ToRepr()\n\toutput := css()\n\toutput += `\u003cform id=\"board\" class=\"` + class + `\"\u003e` + \"\\n\"\n\t// output += \"\\t\" + `\u003cinput type=\"hidden\" name=\"state\" value=\"` + repr + `\"\u003e` + \"\\n\"\n\toutput += `\u003cdiv id=\"left\"\u003e\u003cimg src=\"` + urlParrot + `\" id=\"parrot\" width=\"120\" height=\"120\" align=\"left\" /\u003e\u003c/div\u003e` + \"\\n\"\n\toutput += `\u003cdiv id=\"right\"\u003e`\n\n\tfor y := 2; y \u003e= 0; y-- {\n\t\toutput += \"\\t\"\n\t\tfor x := 0; x \u003c= 2; x++ {\n\t\t\truneAtXY := game.At(x, y)\n\t\t\toccupied := runeAtXY != rune(0)\n\t\t\tif occupied {\n\t\t\t\thighlighted := x == cpuX \u0026\u0026 y == cpuY\n\t\t\t\toutput += button(x, y, ternary.String(runeAtXY == rune(1), \"O\", \"X\"), true, highlighted, repr)\n\t\t\t} else if game.IsOver() {\n\t\t\t\toutput += button(x, y, \"\u0026nbsp;\", true, false, repr)\n\t\t\t} else {\n\t\t\t\t// tile is free, but :hover must show\n\t\t\t\tcpu1st := game.Game.PlayerByIndex(0) == cpuAddress\n\t\t\t\toutput += button(x, y, ternary.String(cpu1st, \"X\", \"O\"), false, false, repr)\n\t\t\t}\n\t\t}\n\t\toutput += \"\u003cbr /\u003e\\n\"\n\t}\n\toutput += \"\u003c/div\u003e\\n\"\n\toutput += \"\u003c/form\u003e\\n\"\n\tif game.IsOver() {\n\t\toutput += ufmt.Sprintf(\n\t\t\t\"\\n%s [ %s | %s ]\\n\",\n\t\t\tstatus,\n\t\t\t\"[New game](/r/demo/games/tictactoe)\",\n\t\t\t\"[Back to demo/games](/r/demo/games)\",\n\t\t)\n\t} else {\n\t\toutput += \"\\n[Okay country roads, take me home](/r/demo/games)\"\n\t}\n\treturn output\n}\n\nfunc button(x, y int, char string, occupied, highlighted bool, repr string) string {\n\treturn ufmt.Sprintf(\n\t\t`\u003ca href=\"/r/demo/games/tictactoe:state=%s\u0026move=%c%d\" class=\"button tile %s %s\"\u003e%s\u003c/a\u003e`,\n\t\trepr,\n\t\trune('a'+x), y+1,\n\t\tternary.String(occupied, \"disabled\", \"\"),\n\t\tternary.String(highlighted, \"highlighted\", \"\"),\n\t\tchar,\n\t)\n}\n\n// return status and class(es).\n// it's empty when the game is not over.\nfunc statusAndClass(game tictactoe1p.Game) (status string, classes string) {\n\tif game.IsOver() {\n\t\tswitch {\n\t\tcase game.Winner() == humanAddress:\n\t\t\tclasses = \"over won\"\n\t\t\tstatus = statusWon\n\t\tcase game.Winner() == cpuAddress:\n\t\t\tclasses = \"over lost\"\n\t\t\tstatus = statusLost\n\t\tdefault:\n\t\t\tclasses = \"over draw\"\n\t\t\tstatus = statusDraw\n\t\t}\n\t}\n\treturn\n}\n\n// Decompose path, into valid game and played coordinates (or -1,-1)\n// The path is like \"state=O--X-----\u0026move=c3\"\n//\n// - state is empty or 9 characters,\n// imagine the following but without the \\n: \"-OX\\nO--\\n---\".\n// O always plays first.\n//\n// - move coordinate ranges from \"a1\" to \"c3\" but can be empty.\n//\n// - debug \u0026debug enables printing of a debug line.\nfunc parsePath(path string) (game *tictactoe1p.Game, x, y int, debug bool) {\n\th, e := BreakToMap(path)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\t// nil: default AI\n\tgame, e = tictactoe1p.GameFromRepr(h[\"state\"], cpuAddress, humanAddress, Intn, nil)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\t_, debug = h[\"debug\"]\n\tx, y = -1, -1\n\tfor i, xx := range h[\"move\"] {\n\t\tswitch i {\n\t\tcase 0:\n\t\t\tx = int(xx) - int('a')\n\t\tcase 1:\n\t\t\ty = int(xx) - int('1')\n\t\tdefault:\n\t\t\tpanic(\"invalid move: \" + h[\"move\"])\n\t\t}\n\t}\n\treturn game, x, y, debug\n}\n\nfunc parrotTalk(game tictactoe1p.Game) string {\n\tvar a []string\n\tswitch {\n\tcase !game.IsOver():\n\t\ta = []string{\n\t\t\t\"Let's play Tic-tac-toe!\",\n\t\t\t\"Cap'n Cluck, am here and ready to rule the high seas of tic-tac-toe!\",\n\t\t\t\"Aarrr, we'll see who'll be top parrot on this jolly board.\",\n\t\t\t\"The stakes are higher than the mast of a sunken galleon!\",\n\t\t}\n\tcase game.IsDraw():\n\t\ta = []string{\n\t\t\t\"Three cheers for Yers Truly, Cap'n! It's a draw.\",\n\t\t\t\"It's a draw, sailor...\",\n\t\t\t\"This match ends in neither victory nor defeat, but a draw!\",\n\t\t}\n\tcase game.Winner().String() == cpuAddress.String():\n\t\ta = []string{\n\t\t\t\"Alrighty, mateys! Who's the bravest birdy of the seven seas!\",\n\t\t\t\"Avast, ye scallywags, for I won this game\",\n\t\t\t\"Remember, me hearties, even in victory, Cap'n Cluck remains a humble scallywag.\",\n\t\t\t\"Aarrr, parrot power prevails again!\",\n\t\t\t\"Cap'n Cluck claims the prize!\",\n\t\t\t\"The high seas crown me king o' the game!\",\n\t\t}\n\tcase game.Winner().String() != cpuAddress.String():\n\t\ta = []string{\n\t\t\t\"Ye bested a bold parrot on this day!\",\n\t\t\t\"Cap'n Cluck, beaten by a buccaneer? Nay, 'tis unbirdable!\",\n\t\t\t\"Aarrr, this be the day I, Cap'n Cluck, ate me parroted pirate's words! But fear not, for I shall be back!\",\n\t\t\t\"Ye bested this parrot, but amongst feathery fiends, revenge is ripe!\",\n\t\t\t\"Despite this defeat, remember, I, Cap'n Cluck, am not a chicken when it comes to tic-tac-toe!\",\n\t\t}\n\t}\n\ts := a[Intn(len(a))]\n\treturn ufmt.Sprintf(\"\u003cdiv\u003e\u003cb\u003e%s\u003c/b\u003e\u003cbr /\u003e\"+strings.Repeat(\"\u0026nbsp;\", 17)+\"/\u003c/div\u003e\", s)\n}\n\nfunc css() string {\n\treturn `\n\u003cstyle type=\"text/css\"\u003e\n\t/* responsive stuffs */\n\t#board { \n\t\tdisplay: flex; \n\t\tflex-direction: row;\n\t}\n\t#board \u003e #left {\n\t\tflex-shrink: 1;\n\t}\n\t#board \u003e #right {\n\t\tflex-shrink: 0;\n\t\tflex-basis: auto;\n\t\twidth: 9.5em;\n\t}\n\t/* buttons, and parrot */\n\t#board a.tile.button { \n\t appearance: button;\n\t box-sizing: border-box;\n\t margin: 0;\n\t font-weight: bold;\n\t display: inline-block;\n\t background-color: #eee;\n\t border-color: rgb(227, 227, 227);\n\t border-style: outset;\n\t border-width: 1px;\n\t border-collapse: separate;\n\t text-decoration: none;\n\t text-align: center;\n\t line-height: 3em;\n\t}\n #board button, #board a.tile.button { \n width: 3em; height: 3em; \n margin-right: 2px; margin-bottom: 2px; \n cursor: pointer; \n color: initial;\n\t\tborder-radius: 5px;\n }\n\t#board.won button, #board.won a.tile.button { box-shadow: aquamarine 1px 1px 12px 6px; }\n\t#board.lost button, #board.lost a.tile.button { box-shadow: rgb(255, 200, 190) 0px 1px 34px 2px; }\n\t#board.draw button , #board.draw a.tile.button { box-shadow: rgb(200, 200, 200) 0px 1px 30px 8px; }\n\t#board button , #board a.tile.button { color: #888; }\n\t#board button:not([disabled]):hover, #board a.tile.button:not(.disabled):hover { \n border-style: ridge; \n box-shadow: inset -10px -10px 15px rgba(255, 255, 255, 0.5), \n inset 10px 10px 15px rgba(70, 70, 70, 0.12);\n\t\tborder-radius: 5px;\n }\n #board button[disabled], #board a.tile.button.disabled { cursor: default; }\n\t#board button:not([disabled]), #board a.tile.button:not(.disabled) { color: transparent; }\n\t#board button:not([disabled]):hover , #board a.tile.button:not(.disabled):hover { color: #888; text-transform: uppercase; }\n\t#board button.highlighted, #board a.tile.button.highlighted { color: chocolate; }\n img#parrot {\n -webkit-transform: scaleX(-1);\n transform: scaleX(-1);\n padding-left: 10px; \n\t\tmargin-right: 0.5em;\n }\n\u003c/style\u003e\n`\n}\n\n// Break down a string of url parameters to map[string]string.\n// E.g. \"foo=a\u0026bar=b\" -\u003e (map[string]string{foo:\"a\", bar:\"b\"}, nil)\nfunc BreakToMap(querystring string) (map[string]string, error) {\n\tm := make(map[string]string)\n\tfor _, s := range strings.Split(querystring, \"\u0026\") {\n\t\tif len(strings.TrimSpace(s)) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tidx := strings.Index(s, \"=\")\n\t\tif idx \u003e -1 {\n\t\t\tm[s[:idx]] = s[idx+1:]\n\t\t} else {\n\t\t\tm[s] = \"\"\n\t\t}\n\t}\n\treturn m, nil\n}\n"},{"name":"render_test.gno","body":"package tictactoe\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParsePath(t *testing.T) {\n\tfor _, v := range []struct {\n\t\tpath string\n\t\texpectedRepr string\n\t\texpectedX int\n\t\texpectedY int\n\t\texpectedDebug bool\n\t}{\n\t\t{\"\", \"---------\", -1, -1},\n\t\t{\"move=a1\", \"---------\", 0, 0},\n\t\t{\"move=a2\", \"---------\", 0, 1},\n\t\t{\"move=a3\", \"---------\", 0, 2},\n\t\t{\"move=b1\", \"---------\", 1, 0},\n\t\t{\"move=b2\", \"---------\", 1, 1},\n\t\t{\"move=b3\", \"---------\", 1, 2},\n\t\t{\"move=c1\", \"---------\", 2, 0},\n\t\t{\"move=c2\", \"---------\", 2, 1},\n\t\t{\"move=c3\", \"---------\", 2, 2},\n\t\t{\"move=c1\u0026debug\", \"---------\", 2, 0, true},\n\t\t{\"\u0026\", \"---------\", -1, -1},\n\t\t{\"state=-X--OX-O-\u0026move=b2\", \"-X--OX-O-\", 1, 1},\n\t\t{\"state=XOXX-O-O-\u0026move=c1\", \"XOXX-O-O-\", 2, 0},\n\t\t{\"debug\", \"---------\", -1, -1, true},\n\t} {\n\t\tg, x, y, debug := parsePath(v.path)\n\t\trepr := g.ToRepr()\n\t\tif repr != v.expectedRepr || x != v.expectedX || y != v.expectedY {\n\t\t\tt.Errorf(\n\t\t\t\t\"failed to parsePath for '%s', expected x=%d y=%d repr=%s, got x=%d x=%d repr=%s\",\n\t\t\t\tv.path,\n\t\t\t\tv.expectedX, v.expectedY, v.expectedRepr,\n\t\t\t\tx, y, repr,\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestBreakToMap(t *testing.T) {\n\tm, e := BreakToMap(\"a=b\u0026=\u0026\u0026\u0026c=d\u0026e\")\n\t{\n\t\ta, has := m[\"a\"]\n\t\tuassert.True(t, has)\n\t\tuassert.Equal(t, a, \"b\")\n\t}\n\t{\n\t\tc, has := m[\"c\"]\n\t\tuassert.True(t, has)\n\t\tuassert.Equal(t, c, \"d\")\n\t}\n\t{\n\t\te, has := m[\"e\"]\n\t\tuassert.True(t, has)\n\t\tuassert.Equal(t, e, \"\")\n\t}\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"100000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"th8RcFBe5ehQQ/aCk4E3FGucKwDTLzvMJdxlRSRE64waLroy3Q747zYYbhVjBdjKSqxz8NfK4NELQW31qRKRCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","package":{"name":"tictactoe1p","path":"gno.land/p/demo/tictactoe/tictactoe1p","files":[{"name":"1pvscpu.gno","body":"package tictactoe1p\n\n// a 1P-vs-CPU tictactoe\n// extending moul's tictactoe model\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/tictactoe\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// 1P-VS-CPU is a tictactoe game\ntype Game struct {\n\t*tictactoe.Game\n\tcpu std.Address\n\tIntn func(n int) int\n\tpickMove func(g *tictactoe.Game, Intn func(int) int) (x, y int, e error) // AI function\n}\n\n// \"\" is a whole new game, whether CPU goes first is random.\n// \"---------\"` OTOH indicates a game where cpu /declined/ to go first.\n// fRand is a user-supplied func returning a random number in [0, n(\n// fPickMove is nil (uses averageDifficulty) or a func used for CPU to pick moves\nfunc GameFromRepr(\n\ttext string,\n\tcpu, human std.Address,\n\tfRand func(int) int,\n\tfPickMove func(*tictactoe.Game, func(int) int,\n\t) (x, y int, e error),\n) (*Game, error) {\n\taddr1, addr2 := decideOrder(cpu, human, text, fRand)\n\n\tvar g *tictactoe.Game\n\tvar e error\n\tswitch len(text) {\n\tcase 0:\n\t\tg, e = tictactoe.NewGame(addr1, addr2)\n\t\tg.Start()\n\tcase 9:\n\t\tr := []rune(text)\n\t\tg, e = tictactoe.RecoverGame(\n\t\t\taddr1,\n\t\t\taddr2,\n\t\t\tstring([]rune{\n\t\t\t\tr[6], r[7], r[8],\n\t\t\t\tr[3], r[4], r[5],\n\t\t\t\tr[0], r[1], r[2],\n\t\t\t}),\n\t\t)\n\tdefault:\n\t\treturn nil, errors.New(\"invalid board length\")\n\t}\n\tif fPickMove == nil {\n\t\tfPickMove = averageDifficulty\n\t}\n\treturn \u0026Game{g, cpu, fRand, fPickMove}, e\n}\n\nfunc (game Game) ToRepr() string {\n\treturn strings.ReplaceAll(game.Output(), \"\\n\", \"\")\n}\n\nfunc (game Game) IsCpuFirst() bool {\n\treturn game.PlayerByIndex(0) == game.cpu\n}\n\nfunc (game *Game) PlayCPU() (x, y int, e error) {\n\tswitch {\n\tcase game.Turn() != game.cpu:\n\t\treturn -1, -1, ufmt.Errorf(\n\t\t\t\"not my turn (%s), turn is %s's\",\n\t\t\tgame.cpu.String(), game.Turn().String(),\n\t\t)\n\tcase game.IsOver():\n\t\treturn -1, -1, errors.New(\"game is over\")\n\tdefault:\n\t\tx, y, _ = game.pickMove(game.Game, game.Intn)\n\t\te = game.Play(game.cpu, x, y)\n\t\treturn x, y, e\n\t}\n}\n\n// Decide who go first, based on the count of markers.\n// No error. A special and important case is the empty board,\n// meaning player to go first is random.\n// fRand is a user-supplied func returning a random number in [0, n(\nfunc decideOrder(cpu, human std.Address, board string, fRand func(int) int) (addr1, addr2 std.Address) {\n\tvar cpuFirst bool\n\tif board == \"\" {\n\t\tcpuFirst = fRand(2) == 0\n\t} else {\n\t\tnumO := strings.Count(board, \"O\") + strings.Count(board, \"o\")\n\t\tnumX := strings.Count(board, \"X\") + strings.Count(board, \"x\")\n\t\tcpuFirst = numX != numO\n\t}\n\tif cpuFirst {\n\t\treturn cpu, human\n\t} else {\n\t\treturn human, cpu\n\t}\n}\n"},{"name":"1pvscpu_test.gno","body":"package tictactoe1p\n\nimport (\n\t\"math/rand\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nconst (\n\tcpuAddress = std.Address(\"CPU\")\n\thumanAddress = std.Address(\"HUMAN\")\n\tprng = rand.New(rand.NewPCG(uint64(3), uint64(7)))\n)\n\nfunc TestRand(t *testing.T) {\n\tn0 := prng.IntN(10)\n\tfor i := 0; i \u003c 128; i++ {\n\t\tif prng.IntN(10) != n0 {\n\t\t\treturn\n\t\t}\n\t}\n\tt.Errorf(\"no randomness\")\n}\n\nfunc TestGameFromRepr(t *testing.T) {\n\tfor _, o := range []struct{ repr, expect string }{\n\t\t{repr: \"\", expect: \"---------\"},\n\t\t{repr: \"-X--OX-O-\", expect: \"-X--OX-O-\"},\n\t\t{repr: \"_x__ox_o_\", expect: \"-X--OX-O-\"},\n\t\t{repr: \"O--------\", expect: \"O--------\"},\n\t\t{repr: \"O---X----\", expect: \"O---X----\"},\n\t\t{repr: \"-X--O--O-\", expect: \"-X--O--O-\"},\n\t\t{repr: \"OXOXOXOXO\", expect: \"OXOXOXOXO\"},\n\t\t{repr: \"X--------\", expect: \"error\"}, // O always begin\n\t\t{repr: \"OOOOOX---\", expect: \"error\"},\n\t} {\n\t\tgame, e := GameFromRepr(o.repr, cpuAddress, humanAddress, prng.IntN, nil)\n\t\tif o.expect == \"error\" {\n\t\t\tuassert.Error(t, e)\n\t\t} else {\n\t\t\tuassert.NoError(t, e)\n\t\t\tuassert.Equal(t, o.expect, game.ToRepr())\n\t\t}\n\t}\n}\n\nfunc TestPlayer1Alternates(t *testing.T) {\n\t// ensure CPU goes first or second, in different games\n\tvar isCpuFirst0 bool\n\tfor i := 0; i \u003c 128; i++ {\n\t\tg, e := GameFromRepr(\"\", cpuAddress, humanAddress, prng.IntN, nil)\n\t\tuassert.NoError(t, e)\n\t\tif i == 0 {\n\t\t\tisCpuFirst0 = g.IsCpuFirst()\n\t\t} else if isCpuFirst0 != g.IsCpuFirst() {\n\t\t\treturn // ok\n\t\t}\n\t}\n\tt.FailNow()\n}\n\nfunc TestPickMove(t *testing.T) {\n\t// study expected VS statistical result\n\t// CPU sees own winning move ~80% of times\n\t// is otherwise blind to other side\n\tfor _, o := range []struct {\n\t\tboard string\n\t\texpectedX int\n\t\texpectedY int\n\t}{\n\t\t{\"O-OX-X---\", 1, 2},\n\t\t{\"O-OX-XO--\", 1, 1},\n\t\t{\"X-O-XOO--\", 2, 0},\n\t\t{\"OX-XO----\", 2, 0},\n\t} {\n\t\t// play over and over, see most frequent moves\n\t\th := map[struct{ x, y int }]int{}\n\t\tfor i := 0; i \u003c 64; i++ {\n\t\t\tgame, e := GameFromRepr(o.board, cpuAddress, humanAddress, prng.IntN, nil)\n\t\t\tif !uassert.NoError(t, e, \"GameFromRepr\") {\n\t\t\t\tt.FailNow()\n\t\t\t}\n\t\t\tx, y, e := game.pickMove(game.Game, game.Intn)\n\t\t\th[struct{ x, y int }{x, y}] += 1\n\t\t}\n\t\t// assert most frequent move\n\t\tvar hiTemperature int\n\t\tvar hotMove struct{ x, y int }\n\t\tfor coord, v := range h {\n\t\t\tif v \u003e hiTemperature {\n\t\t\t\thiTemperature = v\n\t\t\t\thotMove = coord\n\t\t\t}\n\t\t}\n\t\tuassert.Equal(t, o.expectedX, hotMove.x, \"for x of repr\", o.board)\n\t\tuassert.Equal(t, o.expectedY, hotMove.y, \"for y of repr\", o.board)\n\t}\n}\n"},{"name":"README.md","body":"# 1PvsCPU tictactoe\n\nExtends [p/demo/tictactoe](https://gno.land/p/demo/tictactoe/).\nThose games specifically are one player vs a computer.\n\nTry it [here](https://gno.land/p/demo/games/tictactoe).\n"},{"name":"ai.gno","body":"package tictactoe1p\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/tictactoe\"\n)\n\n// the default move picker.\nfunc averageDifficulty(game *tictactoe.Game, Intn func(int) int) (x, y int, e error) {\n\t// candidates\n\ta := make([]struct{ x, y int }, 0)\n\tside := rune(1 + game.TurnNumber()%2)\n\tfor y := 0; y \u003c= 2; y++ {\n\t\tfor x := 0; x \u003c= 2; x++ {\n\t\t\tif game.At(x, y) != rune(0) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// if can wins (and can see it), then win\n\t\t\tif game.WouldWin(side, x, y) \u0026\u0026 Intn(5) \u003e 0 {\n\t\t\t\treturn x, y, nil\n\t\t\t}\n\t\t\ta = append(a, struct{ x, y int }{x, y})\n\t\t}\n\t}\n\tif len(a) == 0 {\n\t\treturn -1, -1, errors.New(\"no free tile left\")\n\t} else {\n\t\t// random pick among candidates\n\t\tc := a[Intn(len(a))]\n\t\treturn c.x, c.y, nil\n\t}\n}\n"}]},"deposit":"100000ugnot"}],"fee":{"gas_wanted":"100000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jPID1NJmsOe+kpdi0F4YNL9C/x6iYhcDGYAQZLxAvfzdXIQU/LjHZ1E8pb6ghpyEICpXqpDtjh68d4L3CTNSBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjnx2elgpac3fwec30369tyctagr36eh560csc","package":{"name":"goraffle","path":"gno.land/r/whisky/goraffle","files":[{"name":"package.gno","body":"package goraffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Register(code string) {\n\tprintln(raffle.RegisterCode())\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AMsliTkK93MNb8hHah9zHUkeuAe+YZvHfMqZWiEuD6hSk+QU7McxiNrBMeC5LutZ+LJRuPWYpOCciynlb7REAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1fjnx2elgpac3fwec30369tyctagr36eh560csc","package":{"name":"goraffle","path":"gno.land/r/whisky/goraffle","files":[{"name":"package.gno","body":"package goraffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Register(code string) {\n\tprintln(raffle.RegisterCode(code))\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9rI/HHz4k2IpgjLxizHhPgtLgvT0vkjLJPyUcWlelDplVwjMW8uqdPJkST5HNKR5zm1SJE4P1j0wbkrjx88UAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1funduumqq78th3kxktewc32qrwljzd34dqs476","package":{"name":"hello","path":"gno.land/r/hello123123/hello","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/leon/v2/raffle\"\n)\n\nfunc init() {\n\tprintln(raffle.RegisterUsername(\"thehowl\"))\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OIoLOnUtxPEIjLgECy5FWCN6TPZekepwuQDOU/UIsvteetsDy4Ctyo2E40Y3RsQ3E5SMfWavIrjBWBMamVMsDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1funduumqq78th3kxktewc32qrwljzd34dqs476","package":{"name":"hello","path":"gno.land/r/hello1231kkk/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1USh1scV6CCmMFSEOoobxbs0NUBxxHC6SRYd7BbStVJjNEnnA9ZMI3teD11GfE/5ToU/cx7ufjbeIlXHfp/DAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1funduumqq78th3kxktewc32qrwljzd34dqs476","package":{"name":"hello","path":"gno.land/r/lascoteca/hello","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/leon/v2/raffle\"\n)\n\nfunc init() {\n\tprintln(raffle.RegisterCode(\"NAfM!g93kq\"))\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PBBLNAizayZafDXRqz+4oXcCRPahQ2t/HuSqC2dbBOE4qhqhuTNzwasR5xYKGkK3u5Bt/VqMlfnQxZDl6KwABA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gfnvafaewcrqzhl9j02wthsg4t7fu37pu6mpat","package":{"name":"raffle","path":"gno.land/r/allylee/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"WNiFC2DTs7\"\n\tgithubAcct := \"ally-lee\"\n\trescode := raffle.RegisterCode(code)\n\tresgithub := raffle.RegisterUsername(githubAcct)\n\tprintln(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y2tSOkb4wvDfo9OTHEhuchSjq6X4Ahap+lLTXL2wQsnepoXSebjljdQyKejHJ+J+9CVNAyel0CS5KOKn6vlMCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","package":{"name":"raffle","path":"gno.land/r/tliu2023/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// raffle.RegisterCode(\"duL6EeAcBx\")\n\traffle.RegisterUsername(\"tliu2023\")\n}\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hn9d0ChtuR7ZK1necS89Y19eoI4cxaZ/lEyiXtHV7wOqucmoXJKggC69hyiAJFReAnOPoIcWibsm3xGTwgrmBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","package":{"name":"raffle","path":"gno.land/r/tliu523/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"duL6EeAcBx\")\n}\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zfZws0YpxY+yqA9PMxVoTAjTkEXupfld68bdkmghq7e9ScBPO7ogtqgluWeLCt/+t4F483x1Mnms8OoSE04SCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","package":{"name":"raffle","path":"gno.land/r/tliu523/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"duL6EeAcBx\")\n}\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tQ6aN2geRyHPPg36E6mgGgC20/Tf5mfrrmokUoxFdxYhiL52cXYApSPulFbU2g1l+7HP4EgmoV1q57jJY0VXAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","package":{"name":"raffle","path":"gno.land/r/tliu523/raffle","files":[{"name":"package.gno","body":"package raffle\nimport (\n \"gno.land/r/gc24/raffle\"\n)\nfunc init(){\n // raffle.RegisterCode(\"duL6EeAcBx\")\n raffle.RegisterUsername(\"tliu2023\")\n}\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eIX7u/ajVniY7SkRgKPLdKMp/c0YploP4T6IMRyAY06nSEk/akPo0s08Iaxpq+e1PnkPibqGmCRU/Z4AN1b6AA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","package":{"name":"raffle","path":"gno.land/r/tliu523/raffle","files":[{"name":"package.gno","body":"package raffle\nimport (\n \"gno.land/r/gc24/raffle\"\n)\nfunc init(){\n raffle.RegisterCode(\"duL6EeAcBx\")\n raffle.RegisterUsername(\"tliu2023\")\n}\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uY3WiXgncIkD3quhOLsmEOFzC92Xj+DX+hFwGJpX/QzK8uaOIpOEJ1ZHwypb8sGj2sR36IkxLYldaFBQdG7uAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gr72qp3muavsvwq5jg205c0e30ltmltpj60pwp","package":{"name":"raffleUser","path":"gno.land/r/tliu523/raffleUser","files":[{"name":"package.gno","body":"package raffleUser\nimport (\n \"gno.land/r/gc24/raffle\"\n)\nfunc init(){\n // raffle.RegisterCode(\"duL6EeAcBx\")\n raffle.RegisterUsername(\"tliu2023\")\n}\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8HG2kxJCoPR3b8vkc1vpBlN6B1nEJ0eEwE+bzAR53liFk6xwY5vSOed700XU+/Qz1yMmhI/p78a91+WWkZYjAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","package":{"name":"payrolls","path":"gno.land/r/demo/payrolls/v0","files":[{"name":"payrolls.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// TODO: support grc20\n\ntype DistribFn func(elapsed time.Duration) uint64\n\nconst denom = \"ugnot\"\n\ntype payroll struct {\n\tid seqid.ID\n\tvaultID string\n\tcreatedAt time.Time\n\tamount int64\n\tbeneficiary std.Address\n\ttotalWithdrawn uint64\n\tdistrib DistribFn\n\tpaused bool\n\tpausedAt time.Time\n\tpauseDuration time.Duration\n\tlabel string\n}\n\nfunc Create(namespace string, label string, beneficiary std.Address, amount int64, distrib DistribFn) seqid.ID {\n\tvaultID := vaultIDFromRealm(std.PrevRealm(), namespace)\n\n\tp := payroll{\n\t\tid: id.Next(),\n\t\tvaultID: vaultID,\n\t\tcreatedAt: time.Now(),\n\t\tamount: amount,\n\t\tdistrib: distrib,\n\t\tbeneficiary: beneficiary,\n\t\tlabel: label,\n\t}\n\n\tpayrolls.Set(id.String(), \u0026p)\n\n\tif _, ok := payrollsByBeneficiary[p.beneficiary]; !ok {\n\t\tpayrollsByBeneficiary[p.beneficiary] = avl.NewTree()\n\t}\n\tpayrollsByBeneficiary[p.beneficiary].Set(p.id.String(), \u0026p)\n\n\tif _, ok := payrollsByVault[p.vaultID]; !ok {\n\t\tpayrollsByVault[p.vaultID] = avl.NewTree()\n\t}\n\tpayrollsByVault[p.vaultID].Set(p.id.String(), \u0026p)\n\n\treturn p.id\n}\n\nfunc CreateMonthly(namespace string, label string, beneficiary std.Address, amount uint64, totalAmount int64) seqid.ID {\n\treturn Create(namespace, label, beneficiary, totalAmount, MonthlyContinuous(amount))\n}\n\nfunc Claim(id seqid.ID, requestedAmount int64, destination std.Address) {\n\tif requestedAmount == 0 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\n\tp := mustGetPayroll(id)\n\tif std.PrevRealm().Addr() != p.beneficiary {\n\t\tpanic(errors.New(\"only beneficiary can withdraw\"))\n\t}\n\n\tvaultAmount := getVaultAmount(p.vaultID)\n\tif vaultAmount == 0 \u0026\u0026 requestedAmount != -1 {\n\t\tpanic(errors.New(\"nothing to claim: vault empty\"))\n\t}\n\tif requestedAmount \u003e int64(vaultAmount) {\n\t\trequestedAmount = int64(vaultAmount)\n\t}\n\n\twithdrawn := p.withdraw(requestedAmount)\n\tif withdrawn == 0 \u0026\u0026 requestedAmount != -1 {\n\t\tpanic(errors.New(\"nothing to claim\"))\n\t}\n\n\tif withdrawn == 0 {\n\t\treturn\n\t}\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tbanker.SendCoins(std.CurrentRealm().Addr(), destination, std.NewCoins(std.NewCoin(denom, int64(withdrawn))))\n\n\tvaults.Set(p.vaultID, vaultAmount-withdrawn)\n}\n\nfunc ClaimAll(destination std.Address) {\n\t// TODO: optimize\n\tbeneficiary := std.PrevRealm().Addr()\n\tclaimed := false\n\tpayrollsByBeneficiary[beneficiary].Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*payroll)\n\t\tClaim(p.id, -1, destination)\n\t\tclaimed = true\n\t\treturn false\n\t})\n\tif !claimed {\n\t\tpanic(errors.New(\"nothing to claim\"))\n\t}\n}\n\nfunc Fund(input string, namespace string) {\n\tstd.AssertOriginCall()\n\n\tvar (\n\t\tid string\n\t\terr error\n\t)\n\n\tif input == \"\" {\n\t\tid = vaultIDFromRealm(std.PrevRealm(), namespace)\n\t} else {\n\t\tid, err = vaultID(input, namespace)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tsend := std.GetOrigSend()\n\tamount := send.AmountOf(denom)\n\tif amount \u003c= 0 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\tfor _, coin := range send {\n\t\tif coin.Denom != denom {\n\t\t\tpanic(ufmt.Errorf(\"only %q supported, got %q\", denom, coin.Denom))\n\t\t}\n\t}\n\n\tvaults.Set(id, getVaultAmount(id)+uint64(amount))\n}\n\nvar id seqid.ID\n\nvar payrolls avl.Tree // seqid.ID -\u003e *payroll\nvar payrollsByVault = make(map[string]*avl.Tree) // seqid.ID -\u003e *payroll\nvar payrollsByBeneficiary = make(map[std.Address]*avl.Tree) // seqid.ID -\u003e *payroll\n\nfunc (p *payroll) freeAt(when time.Time) uint64 {\n\tvar elapsed time.Duration\n\tif p.paused {\n\t\telapsed = p.pausedAt.Sub(p.createdAt)\n\t} else {\n\t\telapsed = when.Sub(p.createdAt)\n\t}\n\telapsed -= p.pauseDuration\n\tres := p.distrib(elapsed)\n\tif p.amount \u003e 0 \u0026\u0026 res \u003e uint64(p.amount) {\n\t\treturn uint64(p.amount)\n\t}\n\treturn res\n}\n\nfunc (p *payroll) available() uint64 {\n\treturn p.freeAt(time.Now()) - p.totalWithdrawn\n}\n\nfunc (p *payroll) estimateDay() uint64 {\n\treturn p.freeAt(time.Now().Add(time.Hour*24)) - p.freeAt(time.Now())\n}\n\nfunc (p *payroll) withdraw(amount int64) uint64 {\n\tavailable := int64(p.available())\n\tif amount \u003e available || amount \u003c 0 {\n\t\tamount = available\n\t}\n\tp.totalWithdrawn += uint64(amount)\n\treturn uint64(amount)\n}\n\nfunc (p *payroll) pause() {\n\tif p.paused {\n\t\tpanic(errors.New(\"already paused\"))\n\t}\n\tp.paused = true\n\tp.pausedAt = time.Now()\n}\n\nfunc (p *payroll) resume() {\n\tif !p.paused {\n\t\tpanic(errors.New(\"not paused\"))\n\t}\n\tp.paused = false\n\tp.pauseDuration += time.Now().Sub(p.pausedAt)\n}\n\nfunc mustGetPayroll(id seqid.ID) *payroll {\n\tip, ok := payrolls.Get(id.String())\n\tif !ok {\n\t\tpanic(errors.New(\"no such payroll\"))\n\t}\n\treturn ip.(*payroll)\n}\n\nfunc StepDistrib(blockAmount uint64, per time.Duration) DistribFn {\n\treturn func(elapsed time.Duration) uint64 {\n\t\tblocksCount := elapsed / per\n\t\treturn blockAmount * uint64(blocksCount)\n\t}\n}\n\nfunc LinearDistrib(blockAmount uint64, per time.Duration) DistribFn {\n\treturn func(elapsed time.Duration) uint64 {\n\t\treturn (uint64(elapsed.Seconds()) * blockAmount) / uint64(per.Seconds())\n\t}\n}\n\nfunc Monthly(amount uint64) DistribFn {\n\treturn StepDistrib(amount, time.Hour*24*30)\n}\n\nfunc MonthlyContinuous(amount uint64) DistribFn {\n\treturn LinearDistrib(amount, time.Hour*24*30)\n}\n\n// Usage Create(std.Address(\"foo\"), MonthlyContinuous(1000))\n"},{"name":"render.gno","body":"package payrolls\n\nimport (\n\t\"net/url\"\n\t\"path\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/users\"\n\trusers \"gno.land/r/demo/users\"\n)\n\n// TODO: pagination\nconst listMaxSize = 50\n\nfunc Render(renderPath string) string {\n\trouter := mux.NewRouter()\n\n\trouter.HandleFunc(\"/u/*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Payrolls beneficiary\\n\")\n\t\taon := users.AddressOrName(path.Base(r.Path))\n\t\tuser := rusers.GetUserByAddressOrName(aon)\n\t\taddr := std.Address(aon)\n\t\tname := string(aon)\n\t\tif user != nil {\n\t\t\taddr = user.Address\n\t\t\tname = \"@\" + user.Name\n\t\t\tw.Write(ufmt.Sprintf(\"- 👤 User: @%s\\n\", user.Name))\n\t\t} else if !addr.IsValid() {\n\t\t\tw.Write(ufmt.Sprintf(\"❓ User %q not found\\n\", addr.String()))\n\t\t\treturn\n\t\t}\n\t\tw.Write(ufmt.Sprintf(\"- 🆔 Address: %s\\n\", addr.String()))\n\n\t\tsb := strings.Builder{}\n\t\ttree, ok := payrollsByBeneficiary[addr]\n\t\tif !ok {\n\t\t\ttree = avl.NewTree()\n\t\t}\n\t\testimatedDay := uint64(0)\n\t\testimatedAvailable := uint64(0)\n\t\testimatedClaimable := uint64(0)\n\t\tshouldEstimate := tree.Size() \u003c= listMaxSize\n\t\ttree.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tp := value.(*payroll)\n\t\t\tsb.WriteString(p.render(\"beneficiary\"))\n\n\t\t\tif shouldEstimate {\n\t\t\t\tavailable := p.available()\n\t\t\t\testimatedAvailable += available\n\t\t\t\tvaultAmount := getVaultAmount(p.vaultID)\n\t\t\t\tif available \u003e vaultAmount {\n\t\t\t\t\tavailable = vaultAmount\n\t\t\t\t}\n\t\t\t\testimatedClaimable += available\n\t\t\t\testimatedDay += p.estimateDay()\n\t\t\t}\n\n\t\t\treturn false\n\t\t})\n\n\t\tif shouldEstimate {\n\t\t\tw.Write(renderEstimatedMonthly(\"\", estimatedDay, denom))\n\t\t\tw.Write(renderClaimable(\"\", estimatedClaimable, estimatedAvailable, denom, true))\n\t\t}\n\n\t\tactions := []string{}\n\n\t\tif !shouldEstimate || estimatedClaimable \u003e 0 {\n\t\t\tclaimAllButton := ufmt.Sprintf(\"[[Claim all]]($help\u0026func=ClaimAll\u0026destination=%s)\", addr.String())\n\t\t\tactions = append(actions, claimAllButton)\n\t\t}\n\n\t\tlabel := url.QueryEscape(ufmt.Sprintf(\"%s Salary Monthly\", name))\n\t\tnewPayrollButton := ufmt.Sprintf(\"[[New payroll]]($help\u0026func=CreateMonthly\u0026namespace=\u0026label=%s\u0026beneficiary=%s\u0026amount=10000\u0026totalAmount=-1)\", label, addr.String())\n\t\tactions = append(actions, newPayrollButton)\n\n\t\tw.Write(ufmt.Sprintf(\"- ✋ Actions: %s\\n\", strings.Join(actions, \" \")))\n\n\t\tw.Write(sb.String())\n\t})\n\n\trouter.HandleFunc(\"/v/*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Payrolls vault\\n\")\n\n\t\tname := path.Base(r.Path)\n\t\tvaultID, err := parseVaultID(name)\n\t\tif err != nil {\n\t\t\tw.Write(ufmt.Sprintf(\"❓ Vault %q not found\", name))\n\t\t\treturn\n\t\t}\n\n\t\tif name != vaultID {\n\t\t\tw.Write(ufmt.Sprintf(\"- 🎩 Name: %s\\n\", name))\n\t\t}\n\t\tw.Write(ufmt.Sprintf(\"- 🆔 ID: %s\\n\", vaultID))\n\n\t\tpayrollsBuffer := strings.Builder{}\n\t\testimatedDay := uint64(0)\n\t\testimatedDebt := uint64(0)\n\t\ttree, ok := payrollsByVault[vaultID]\n\t\tif !ok {\n\t\t\ttree = avl.NewTree()\n\t\t}\n\t\tshouldEstimate := tree.Size() \u003c= listMaxSize\n\t\ttree.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tp := value.(*payroll)\n\t\t\tif shouldEstimate {\n\t\t\t\testimatedDebt += p.available()\n\t\t\t\testimatedDay += p.estimateDay()\n\t\t\t}\n\t\t\tpayrollsBuffer.WriteString(p.render(\"vault\"))\n\t\t\treturn false\n\t\t})\n\n\t\tfunds := getVaultAmount(vaultID)\n\n\t\tif shouldEstimate {\n\t\t\tw.Write(renderEstimatedMonthly(\"\", estimatedDay, denom))\n\n\t\t\tbalance := int64(funds) - int64(estimatedDebt)\n\t\t\tprefix := \"- 🏦 Funds: 🟢 \"\n\t\t\tif balance \u003c 0 {\n\t\t\t\tprefix = \"- 🏦 Debt 🔴 \"\n\t\t\t}\n\t\t\tw.Write(ufmt.Sprintf(\"%s%d%s\\n\", prefix, balance, denom))\n\n\t\t\tif balance \u003e 0 {\n\t\t\t\tcolor := \"🔴\"\n\t\t\t\trunWayMonths := funds / (estimatedDay * 30)\n\t\t\t\tif runWayMonths \u003e= 12 {\n\t\t\t\t\tcolor = \"🟢\"\n\t\t\t\t} else if runWayMonths \u003e= 6 {\n\t\t\t\t\tcolor = \"🟠\"\n\t\t\t\t}\n\t\t\t\tw.Write(ufmt.Sprintf(\"- 🛬 Estimated runway: %s %d months\\n\", color, runWayMonths))\n\t\t\t}\n\t\t} else {\n\t\t\tw.Write(ufmt.Sprintf(\"- 🏦 Funds: %d%s (does not account for unclaimed amounts)\\n\", funds, denom))\n\t\t}\n\n\t\tlabel := url.QueryEscape(\"Salary Monthly\")\n\t\tidParts := strings.Split(vaultID, \".\")\n\t\tslug := \"\"\n\t\tif len(idParts) \u003e 1 {\n\t\t\tslug = idParts[1]\n\t\t}\n\t\tdepositFundsAction := ufmt.Sprintf(\"[[Deposit funds]]($help\u0026func=Fund\u0026addr=%s\u0026slug=%s)\", idParts[0], slug)\n\t\tnewPayrollAction := ufmt.Sprintf(\"[[New payroll]]($help\u0026func=CreateMonthly\u0026namespace=\u0026label=%s\u0026beneficiary=\u0026amount=10000\u0026totalAmount=-1)\", label)\n\t\tw.Write(ufmt.Sprintf(\"- ✋ Actions: %s %s\\n\", depositFundsAction, newPayrollAction))\n\n\t\tw.Write(payrollsBuffer.String())\n\n\t})\n\n\trouter.HandleFunc(\"/d/*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Payroll details\\n\")\n\t\tidStr := path.Base(r.Path)\n\t\tp, ok := payrolls.Get(idStr)\n\t\tif !ok {\n\t\t\tw.Write(ufmt.Sprintf(\"❓ Payroll %q not found\", idStr))\n\t\t\treturn\n\t\t}\n\t\tw.Write(p.(*payroll).render(\"\"))\n\t})\n\n\trouter.HandleFunc(\"*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Latest payrolls\\n\")\n\t\tpayrolls.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tw.Write(value.(*payroll).render(\"\"))\n\t\t\treturn false\n\t\t})\n\n\t\tw.Write(\"\\n\\nTODO\\n\")\n\t\tw.Write(\"- [ ] Stop / Archive\\n\")\n\t\tw.Write(\"- [ ] Home actions\")\n\t\tw.Write(\"- [ ] Unit tests\")\n\t\tw.Write(\"- [ ] Pause / Unpause\\n\")\n\t\tw.Write(\"- [ ] Details: Events history\\n\")\n\t\tw.Write(\"- [ ] PoV Tags\\n\")\n\t\tw.Write(\"- [ ] Edit label / PoV labels\\n\")\n\t\tw.Write(\"- [ ] Stop litigation\\n\")\n\t\tw.Write(\"- [ ] Fix anchors\\n\")\n\t})\n\n\treturn router.Render(renderPath)\n}\n\nfunc (p *payroll) render(pov string) string {\n\tsb := strings.Builder{}\n\n\tsb.WriteString(ufmt.Sprintf(\"### [%s](/r/demo/payrolls:/d/%s)\\n\", p.id.String(), p.id.String()))\n\n\tsb.WriteString(ufmt.Sprintf(\" - ✍️ Label: %s\\n\", p.label))\n\n\tif p.paused {\n\t\tsb.WriteString(ufmt.Sprintf(\" - ⏸️ Paused since: %s\\n\", p.pausedAt.Format(time.DateTime)))\n\t}\n\n\tif pov != \"vault\" {\n\t\tpvid := prettyVaultID(p.vaultID)\n\t\tsb.WriteString(ufmt.Sprintf(\" - 🎩 Vault: [%s](/r/demo/payrolls:/v/%s)\\n\", pvid, pvid))\n\t}\n\n\tif pov != \"beneficiary\" {\n\t\tbeneficiaryUser := rusers.GetUserByAddress(p.beneficiary)\n\t\tvar userStr string\n\t\tif beneficiaryUser == nil {\n\t\t\tuserStr = p.beneficiary.String()\n\t\t} else {\n\t\t\tuserStr = \"@\" + beneficiaryUser.Name\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\" - 👤 Beneficiary: [%s](/r/demo/payrolls:/u/%s)\\n\", userStr, userStr))\n\t}\n\n\tavailable := p.available()\n\tvaultAmount := getVaultAmount(p.vaultID)\n\tclaimable := available\n\tif available \u003e vaultAmount {\n\t\tclaimable = vaultAmount\n\t}\n\tif available \u003e 0 {\n\t\tsb.WriteString(renderClaimable(\" \", claimable, available, denom, false))\n\t}\n\n\testimatedDay := p.estimateDay()\n\tsb.WriteString(renderEstimatedMonthly(\" \", estimatedDay, denom))\n\n\tsb.WriteString(\" - 🕙 Remaining: \")\n\tif p.amount \u003e= 0 {\n\t\tamountRemaining := uint64(p.amount) - p.totalWithdrawn\n\t\tsb.WriteString(ufmt.Sprintf(\"%s (%d%s)\", ((time.Duration(amountRemaining) * 24) / time.Duration(estimatedDay) / time.Hour).String(), amountRemaining, denom))\n\t} else {\n\t\tsb.WriteRune('∞')\n\t}\n\tsb.WriteRune('\\n')\n\n\tactions := []string{}\n\n\tif pov != \"vault\" \u0026\u0026 claimable \u003e 0 {\n\t\tclaim := ufmt.Sprintf(\"[[Claim]]($help\u0026func=Claim\u0026id=%d\u0026requestedAmount=-1\u0026destination=%s)\", uint64(p.id), p.beneficiary.String())\n\t\tactions = append(actions, claim)\n\t}\n\n\tif len(actions) \u003e 0 {\n\t\tsb.WriteString(ufmt.Sprintf(\"- ✋ Actions: %s\\n\", strings.Join(actions, \" \")))\n\t}\n\n\treturn sb.String()\n}\n\nfunc renderClaimable(prefix string, claimable uint64, available uint64, denom string, plural bool) string {\n\tif available == 0 {\n\t\treturn \"\"\n\t}\n\tsb := strings.Builder{}\n\tsb.WriteString(prefix)\n\tsb.WriteString(\"- 💵 Claimable: \")\n\tif claimable \u003c available {\n\t\tpls := \"\"\n\t\tif plural {\n\t\t\tpls = \"(s)\"\n\t\t}\n\t\tcolor := \"🟠\"\n\t\tif claimable == 0 {\n\t\t\tcolor = \"🔴\"\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\"%s %d%s/%d%s (not enough funds in vault%s!)\\n\", color, claimable, denom, available, denom, pls))\n\t} else {\n\t\tsb.WriteString(ufmt.Sprintf(\"🟢 %d%s\\n\", available, denom))\n\t}\n\treturn sb.String()\n}\n\nfunc renderEstimatedMonthly(prefix string, estimatedDay uint64, denom string) string {\n\treturn ufmt.Sprintf(\"%s- 💸 Estimated monthly: %d%s\\n\", prefix, estimatedDay*30, denom)\n}\n\nfunc prettyVaultID(id string) string {\n\tparts := strings.Split(id, \".\")\n\tif len(parts) == 0 {\n\t\treturn id\n\t}\n\n\tuser := rusers.GetUserByAddress(std.Address(parts[0]))\n\tif user == nil {\n\t\treturn id\n\t}\n\n\tparts[0] = \"@\" + user.Name\n\treturn strings.Join(parts, \".\")\n}\n"},{"name":"vaults.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/users\"\n\trusers \"gno.land/r/demo/users\"\n)\n\nvar vaults avl.Tree // std.Addresss -\u003e uint64\n\nfunc getVaultAmount(id string) uint64 {\n\tamount, ok := vaults.Get(id)\n\tif ok {\n\t\treturn amount.(uint64)\n\t}\n\treturn 0\n}\n\nvar errInvalidInput = errors.New(\"invalid input\")\n\nfunc vaultID(input string, namespace string) (string, error) {\n\tif len(input) == 0 {\n\t\treturn \"\", errInvalidInput\n\t}\n\n\tif id, ok := vaultIDFromPkgPath(input, namespace); ok {\n\t\treturn id, nil\n\t}\n\n\tuser := rusers.GetUserByAddressOrName(users.AddressOrName(input))\n\tif user != nil {\n\t\treturn vaultIDUnsafe(user.Address.String(), namespace), nil\n\t}\n\n\tif id, ok := vaultIDFromAddr(std.Address(input), namespace); ok {\n\t\treturn id, nil\n\t}\n\n\treturn \"\", errInvalidInput\n}\n\nfunc parseVaultID(id string) (string, error) {\n\tparts := strings.Split(id, \".\")\n\tif len(parts) == 0 {\n\t\treturn \"\", errInvalidInput\n\t}\n\n\tif len(parts) == 1 {\n\t\treturn vaultID(parts[0], \"\")\n\t}\n\n\treturn vaultID(parts[0], parts[1])\n}\n\nfunc vaultIDUnsafe(entity string, namespace string) string {\n\tif namespace == \"\" {\n\t\treturn entity\n\t}\n\treturn entity + \".\" + namespace\n}\n\nfunc vaultIDFromAddr(addr std.Address, namespace string) (string, bool) {\n\tif !addr.IsValid() {\n\t\treturn \"\", false\n\t}\n\treturn vaultIDUnsafe(addr.String(), namespace), true\n}\n\nfunc vaultIDFromPkgPath(entity string, namespace string) (string, bool) {\n\tif !strings.HasPrefix(entity, std.GetChainDomain()+\"/r/\") {\n\t\treturn \"\", false\n\t}\n\treturn vaultIDUnsafe(entity, namespace), true\n}\n\nfunc vaultIDFromRealm(realm std.Realm, namespace string) string {\n\tif realm.IsUser() {\n\t\treturn vaultIDUnsafe(realm.Addr().String(), namespace)\n\t} else {\n\t\treturn vaultIDUnsafe(realm.PkgPath(), namespace)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"40000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fOqEypEGdBCBX11tJnvhD0VNkTmmF90gnAXOW/gdNfzZ19RwpUZCIuPpZoYsNOPgRA9JYiRFawb3Ks+sWeefDA=="}],"memo":""},"metadata":{"timestamp":"1735659639"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","package":{"name":"payrolls","path":"gno.land/r/demo/payrolls/v1","files":[{"name":"payrolls.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// TODO: support grc20\n\ntype DistribFn func(elapsed time.Duration) uint64\n\nconst denom = \"ugnot\"\n\ntype payroll struct {\n\tid seqid.ID\n\tvaultID string\n\tcreatedAt time.Time\n\tamount int64\n\tbeneficiary std.Address\n\ttotalWithdrawn uint64\n\tdistrib DistribFn\n\tpaused bool\n\tpausedAt time.Time\n\tpauseDuration time.Duration\n\tlabel string\n}\n\nfunc Create(namespace string, label string, beneficiary std.Address, amount int64, distrib DistribFn) seqid.ID {\n\tvaultID := vaultIDFromRealm(std.PrevRealm(), namespace)\n\n\tp := payroll{\n\t\tid: id.Next(),\n\t\tvaultID: vaultID,\n\t\tcreatedAt: time.Now(),\n\t\tamount: amount,\n\t\tdistrib: distrib,\n\t\tbeneficiary: beneficiary,\n\t\tlabel: label,\n\t}\n\n\tpayrolls.Set(id.String(), \u0026p)\n\n\tif _, ok := payrollsByBeneficiary[p.beneficiary]; !ok {\n\t\tpayrollsByBeneficiary[p.beneficiary] = avl.NewTree()\n\t}\n\tpayrollsByBeneficiary[p.beneficiary].Set(p.id.String(), \u0026p)\n\n\tif _, ok := payrollsByVault[p.vaultID]; !ok {\n\t\tpayrollsByVault[p.vaultID] = avl.NewTree()\n\t}\n\tpayrollsByVault[p.vaultID].Set(p.id.String(), \u0026p)\n\n\treturn p.id\n}\n\nfunc CreateMonthly(namespace string, label string, beneficiary std.Address, amount uint64, totalAmount int64) seqid.ID {\n\treturn Create(namespace, label, beneficiary, totalAmount, MonthlyContinuous(amount))\n}\n\nfunc Claim(id seqid.ID, requestedAmount int64, destination std.Address) {\n\tif requestedAmount == 0 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\n\tp := mustGetPayroll(id)\n\tif std.PrevRealm().Addr() != p.beneficiary {\n\t\tpanic(errors.New(\"only beneficiary can withdraw\"))\n\t}\n\n\tvaultAmount := getVaultAmount(p.vaultID)\n\tif vaultAmount == 0 \u0026\u0026 requestedAmount != -1 {\n\t\tpanic(errors.New(\"nothing to claim: vault empty\"))\n\t}\n\tif requestedAmount \u003e int64(vaultAmount) {\n\t\trequestedAmount = int64(vaultAmount)\n\t}\n\n\twithdrawn := p.withdraw(requestedAmount)\n\tif withdrawn == 0 \u0026\u0026 requestedAmount != -1 {\n\t\tpanic(errors.New(\"nothing to claim\"))\n\t}\n\n\tif withdrawn == 0 {\n\t\treturn\n\t}\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tbanker.SendCoins(std.CurrentRealm().Addr(), destination, std.NewCoins(std.NewCoin(denom, int64(withdrawn))))\n\n\tvaults.Set(p.vaultID, vaultAmount-withdrawn)\n}\n\nfunc ClaimAll(destination std.Address) {\n\t// TODO: optimize\n\tbeneficiary := std.PrevRealm().Addr()\n\tclaimed := false\n\tpayrollsByBeneficiary[beneficiary].Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*payroll)\n\t\tClaim(p.id, -1, destination)\n\t\tclaimed = true\n\t\treturn false\n\t})\n\tif !claimed {\n\t\tpanic(errors.New(\"nothing to claim\"))\n\t}\n}\n\nfunc Fund(input string, namespace string) {\n\tstd.AssertOriginCall()\n\n\tvar (\n\t\tid string\n\t\terr error\n\t)\n\n\tif input == \"\" {\n\t\tid = vaultIDFromRealm(std.PrevRealm(), namespace)\n\t} else {\n\t\tid, err = vaultID(input, namespace)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tsend := std.GetOrigSend()\n\tamount := send.AmountOf(denom)\n\tif amount \u003c= 0 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\tfor _, coin := range send {\n\t\tif coin.Denom != denom {\n\t\t\tpanic(ufmt.Errorf(\"only %q supported, got %q\", denom, coin.Denom))\n\t\t}\n\t}\n\n\tvaults.Set(id, getVaultAmount(id)+uint64(amount))\n}\n\nvar id seqid.ID\n\nvar payrolls avl.Tree // seqid.ID -\u003e *payroll\nvar payrollsByVault = make(map[string]*avl.Tree) // seqid.ID -\u003e *payroll\nvar payrollsByBeneficiary = make(map[std.Address]*avl.Tree) // seqid.ID -\u003e *payroll\n\nfunc (p *payroll) freeAt(when time.Time) uint64 {\n\tvar elapsed time.Duration\n\tif p.paused {\n\t\telapsed = p.pausedAt.Sub(p.createdAt)\n\t} else {\n\t\telapsed = when.Sub(p.createdAt)\n\t}\n\telapsed -= p.pauseDuration\n\tres := p.distrib(elapsed)\n\tif p.amount \u003e 0 \u0026\u0026 res \u003e uint64(p.amount) {\n\t\treturn uint64(p.amount)\n\t}\n\treturn res\n}\n\nfunc (p *payroll) available() uint64 {\n\treturn p.freeAt(time.Now()) - p.totalWithdrawn\n}\n\nfunc (p *payroll) estimateDay() uint64 {\n\treturn p.freeAt(time.Now().Add(time.Hour*24)) - p.freeAt(time.Now())\n}\n\nfunc (p *payroll) withdraw(amount int64) uint64 {\n\tavailable := int64(p.available())\n\tif amount \u003e available || amount \u003c 0 {\n\t\tamount = available\n\t}\n\tp.totalWithdrawn += uint64(amount)\n\treturn uint64(amount)\n}\n\nfunc (p *payroll) pause() {\n\tif p.paused {\n\t\tpanic(errors.New(\"already paused\"))\n\t}\n\tp.paused = true\n\tp.pausedAt = time.Now()\n}\n\nfunc (p *payroll) resume() {\n\tif !p.paused {\n\t\tpanic(errors.New(\"not paused\"))\n\t}\n\tp.paused = false\n\tp.pauseDuration += time.Now().Sub(p.pausedAt)\n}\n\nfunc mustGetPayroll(id seqid.ID) *payroll {\n\tip, ok := payrolls.Get(id.String())\n\tif !ok {\n\t\tpanic(errors.New(\"no such payroll\"))\n\t}\n\treturn ip.(*payroll)\n}\n\nfunc StepDistrib(blockAmount uint64, per time.Duration) DistribFn {\n\treturn func(elapsed time.Duration) uint64 {\n\t\tblocksCount := elapsed / per\n\t\treturn blockAmount * uint64(blocksCount)\n\t}\n}\n\nfunc LinearDistrib(blockAmount uint64, per time.Duration) DistribFn {\n\treturn func(elapsed time.Duration) uint64 {\n\t\treturn (uint64(elapsed.Seconds()) * blockAmount) / uint64(per.Seconds())\n\t}\n}\n\nfunc Monthly(amount uint64) DistribFn {\n\treturn StepDistrib(amount, time.Hour*24*30)\n}\n\nfunc MonthlyContinuous(amount uint64) DistribFn {\n\treturn LinearDistrib(amount, time.Hour*24*30)\n}\n\n// Usage Create(std.Address(\"foo\"), MonthlyContinuous(1000))\n"},{"name":"render.gno","body":"package payrolls\n\nimport (\n\t\"net/url\"\n\t\"path\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/users\"\n\trusers \"gno.land/r/demo/users\"\n)\n\n// TODO: pagination\nconst listMaxSize = 50\n\nfunc Render(renderPath string) string {\n\trouter := mux.NewRouter()\n\n\trouter.HandleFunc(\"/u/*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Payrolls beneficiary\\n\")\n\t\taon := users.AddressOrName(path.Base(r.Path))\n\t\tuser := rusers.GetUserByAddressOrName(aon)\n\t\taddr := std.Address(aon)\n\t\tname := string(aon)\n\t\tif user != nil {\n\t\t\taddr = user.Address\n\t\t\tname = \"@\" + user.Name\n\t\t\tw.Write(ufmt.Sprintf(\"- 👤 User: @%s\\n\", user.Name))\n\t\t} else if !addr.IsValid() {\n\t\t\tw.Write(ufmt.Sprintf(\"❓ User %q not found\\n\", addr.String()))\n\t\t\treturn\n\t\t}\n\t\tw.Write(ufmt.Sprintf(\"- 🆔 Address: %s\\n\", addr.String()))\n\n\t\tsb := strings.Builder{}\n\t\ttree, ok := payrollsByBeneficiary[addr]\n\t\tif !ok {\n\t\t\ttree = avl.NewTree()\n\t\t}\n\t\testimatedDay := uint64(0)\n\t\testimatedAvailable := uint64(0)\n\t\testimatedClaimable := uint64(0)\n\t\tshouldEstimate := tree.Size() \u003c= listMaxSize\n\t\ttree.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tp := value.(*payroll)\n\t\t\tsb.WriteString(p.render(\"beneficiary\"))\n\n\t\t\tif shouldEstimate {\n\t\t\t\tavailable := p.available()\n\t\t\t\testimatedAvailable += available\n\t\t\t\tvaultAmount := getVaultAmount(p.vaultID)\n\t\t\t\tif available \u003e vaultAmount {\n\t\t\t\t\tavailable = vaultAmount\n\t\t\t\t}\n\t\t\t\testimatedClaimable += available\n\t\t\t\testimatedDay += p.estimateDay()\n\t\t\t}\n\n\t\t\treturn false\n\t\t})\n\n\t\tif shouldEstimate {\n\t\t\tw.Write(renderEstimatedMonthly(\"\", estimatedDay, denom))\n\t\t\tw.Write(renderClaimable(\"\", estimatedClaimable, estimatedAvailable, denom, true))\n\t\t}\n\n\t\tactions := []string{}\n\n\t\tif !shouldEstimate || estimatedClaimable \u003e 0 {\n\t\t\tclaimAllButton := ufmt.Sprintf(\"[[Claim all]]($help\u0026func=ClaimAll\u0026destination=%s)\", addr.String())\n\t\t\tactions = append(actions, claimAllButton)\n\t\t}\n\n\t\tlabel := url.QueryEscape(ufmt.Sprintf(\"%s Salary Monthly\", name))\n\t\tnewPayrollButton := ufmt.Sprintf(\"[[New payroll]]($help\u0026func=CreateMonthly\u0026namespace=\u0026label=%s\u0026beneficiary=%s\u0026amount=10000\u0026totalAmount=-1)\", label, addr.String())\n\t\tactions = append(actions, newPayrollButton)\n\n\t\tw.Write(ufmt.Sprintf(\"- ✋ Actions: %s\\n\", strings.Join(actions, \" \")))\n\n\t\tw.Write(sb.String())\n\t})\n\n\trouter.HandleFunc(\"/v/*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Payrolls vault\\n\")\n\n\t\tname := path.Base(r.Path)\n\t\tvaultID, err := parseVaultID(name)\n\t\tif err != nil {\n\t\t\tw.Write(ufmt.Sprintf(\"❓ Vault %q not found\", name))\n\t\t\treturn\n\t\t}\n\n\t\tif name != vaultID {\n\t\t\tw.Write(ufmt.Sprintf(\"- 🎩 Name: %s\\n\", name))\n\t\t}\n\t\tw.Write(ufmt.Sprintf(\"- 🆔 ID: %s\\n\", vaultID))\n\n\t\tpayrollsBuffer := strings.Builder{}\n\t\testimatedDay := uint64(0)\n\t\testimatedDebt := uint64(0)\n\t\ttree, ok := payrollsByVault[vaultID]\n\t\tif !ok {\n\t\t\ttree = avl.NewTree()\n\t\t}\n\t\tshouldEstimate := tree.Size() \u003c= listMaxSize\n\t\ttree.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tp := value.(*payroll)\n\t\t\tif shouldEstimate {\n\t\t\t\testimatedDebt += p.available()\n\t\t\t\testimatedDay += p.estimateDay()\n\t\t\t}\n\t\t\tpayrollsBuffer.WriteString(p.render(\"vault\"))\n\t\t\treturn false\n\t\t})\n\n\t\tfunds := getVaultAmount(vaultID)\n\n\t\tif shouldEstimate {\n\t\t\tw.Write(renderEstimatedMonthly(\"\", estimatedDay, denom))\n\n\t\t\tbalance := int64(funds) - int64(estimatedDebt)\n\t\t\tprefix := \"- 🏦 Funds: 🟢 \"\n\t\t\tif balance \u003c 0 {\n\t\t\t\tprefix = \"- 🏦 Debt 🔴 \"\n\t\t\t}\n\t\t\tw.Write(ufmt.Sprintf(\"%s%d%s\\n\", prefix, balance, denom))\n\n\t\t\tif balance \u003e 0 {\n\t\t\t\tcolor := \"🔴\"\n\t\t\t\trunWayMonths := funds / (estimatedDay * 30)\n\t\t\t\tif runWayMonths \u003e= 12 {\n\t\t\t\t\tcolor = \"🟢\"\n\t\t\t\t} else if runWayMonths \u003e= 6 {\n\t\t\t\t\tcolor = \"🟠\"\n\t\t\t\t}\n\t\t\t\tw.Write(ufmt.Sprintf(\"- 🛬 Estimated runway: %s %d months\\n\", color, runWayMonths))\n\t\t\t}\n\t\t} else {\n\t\t\tw.Write(ufmt.Sprintf(\"- 🏦 Funds: %d%s (does not account for unclaimed amounts)\\n\", funds, denom))\n\t\t}\n\n\t\tlabel := url.QueryEscape(\"Salary Monthly\")\n\t\tidParts := strings.Split(vaultID, \".\")\n\t\tslug := \"\"\n\t\tif len(idParts) \u003e 1 {\n\t\t\tslug = idParts[1]\n\t\t}\n\t\tdepositFundsAction := ufmt.Sprintf(\"[[Deposit funds]]($help\u0026func=Fund\u0026addr=%s\u0026slug=%s)\", idParts[0], slug)\n\t\tnewPayrollAction := ufmt.Sprintf(\"[[New payroll]]($help\u0026func=CreateMonthly\u0026namespace=\u0026label=%s\u0026beneficiary=\u0026amount=10000\u0026totalAmount=-1)\", label)\n\t\tw.Write(ufmt.Sprintf(\"- ✋ Actions: %s %s\\n\", depositFundsAction, newPayrollAction))\n\n\t\tw.Write(payrollsBuffer.String())\n\n\t})\n\n\trouter.HandleFunc(\"/d/*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Payroll details\\n\")\n\t\tidStr := path.Base(r.Path)\n\t\tp, ok := payrolls.Get(idStr)\n\t\tif !ok {\n\t\t\tw.Write(ufmt.Sprintf(\"❓ Payroll %q not found\", idStr))\n\t\t\treturn\n\t\t}\n\t\tw.Write(p.(*payroll).render(\"\"))\n\t})\n\n\trouter.HandleFunc(\"*\", func(w *mux.ResponseWriter, r *mux.Request) {\n\t\tw.Write(\"# Latest payrolls\\n\")\n\t\tpayrolls.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tw.Write(value.(*payroll).render(\"\"))\n\t\t\treturn false\n\t\t})\n\n\t\tw.Write(\"\\n\\nTODO\\n\")\n\t\tw.Write(\"- [ ] Stop / Archive\\n\")\n\t\tw.Write(\"- [ ] Home actions\")\n\t\tw.Write(\"- [ ] Unit tests\")\n\t\tw.Write(\"- [ ] Pause / Unpause\\n\")\n\t\tw.Write(\"- [ ] Details: Events history\\n\")\n\t\tw.Write(\"- [ ] PoV Tags\\n\")\n\t\tw.Write(\"- [ ] Edit label / PoV labels\\n\")\n\t\tw.Write(\"- [ ] Stop litigation\\n\")\n\t\tw.Write(\"- [ ] Fix anchors\\n\")\n\t})\n\n\treturn router.Render(renderPath)\n}\n\nfunc (p *payroll) render(pov string) string {\n\tsb := strings.Builder{}\n\n\tsb.WriteString(ufmt.Sprintf(\"### [%s](%s:/d/%s)\\n\", p.id.String(), linkPrefix(), p.id.String()))\n\n\tsb.WriteString(ufmt.Sprintf(\" - ✍️ Label: %s\\n\", p.label))\n\n\tif p.paused {\n\t\tsb.WriteString(ufmt.Sprintf(\" - ⏸️ Paused since: %s\\n\", p.pausedAt.Format(time.DateTime)))\n\t}\n\n\tif pov != \"vault\" {\n\t\tpvid := prettyVaultID(p.vaultID)\n\t\tsb.WriteString(ufmt.Sprintf(\" - 🎩 Vault: [%s](%s:/v/%s)\\n\", pvid, linkPrefix(), pvid))\n\t}\n\n\tif pov != \"beneficiary\" {\n\t\tbeneficiaryUser := rusers.GetUserByAddress(p.beneficiary)\n\t\tvar userStr string\n\t\tif beneficiaryUser == nil {\n\t\t\tuserStr = p.beneficiary.String()\n\t\t} else {\n\t\t\tuserStr = \"@\" + beneficiaryUser.Name\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\" - 👤 Beneficiary: [%s](%s:/u/%s)\\n\", userStr, linkPrefix(), userStr))\n\t}\n\n\tavailable := p.available()\n\tvaultAmount := getVaultAmount(p.vaultID)\n\tclaimable := available\n\tif available \u003e vaultAmount {\n\t\tclaimable = vaultAmount\n\t}\n\tif available \u003e 0 {\n\t\tsb.WriteString(renderClaimable(\" \", claimable, available, denom, false))\n\t}\n\n\testimatedDay := p.estimateDay()\n\tsb.WriteString(renderEstimatedMonthly(\" \", estimatedDay, denom))\n\n\tsb.WriteString(\" - 🕙 Remaining: \")\n\tif p.amount \u003e= 0 {\n\t\tamountRemaining := uint64(p.amount) - p.totalWithdrawn\n\t\tsb.WriteString(ufmt.Sprintf(\"%s (%d%s)\", ((time.Duration(amountRemaining) * 24) / time.Duration(estimatedDay) / time.Hour).String(), amountRemaining, denom))\n\t} else {\n\t\tsb.WriteRune('∞')\n\t}\n\tsb.WriteRune('\\n')\n\n\tactions := []string{}\n\n\tif pov != \"vault\" \u0026\u0026 claimable \u003e 0 {\n\t\tclaim := ufmt.Sprintf(\"[[Claim]]($help\u0026func=Claim\u0026id=%d\u0026requestedAmount=-1\u0026destination=%s)\", uint64(p.id), p.beneficiary.String())\n\t\tactions = append(actions, claim)\n\t}\n\n\tif len(actions) \u003e 0 {\n\t\tsb.WriteString(ufmt.Sprintf(\"- ✋ Actions: %s\\n\", strings.Join(actions, \" \")))\n\t}\n\n\treturn sb.String()\n}\n\nfunc renderClaimable(prefix string, claimable uint64, available uint64, denom string, plural bool) string {\n\tif available == 0 {\n\t\treturn \"\"\n\t}\n\tsb := strings.Builder{}\n\tsb.WriteString(prefix)\n\tsb.WriteString(\"- 💵 Claimable: \")\n\tif claimable \u003c available {\n\t\tpls := \"\"\n\t\tif plural {\n\t\t\tpls = \"(s)\"\n\t\t}\n\t\tcolor := \"🟠\"\n\t\tif claimable == 0 {\n\t\t\tcolor = \"🔴\"\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\"%s %d%s/%d%s (not enough funds in vault%s!)\\n\", color, claimable, denom, available, denom, pls))\n\t} else {\n\t\tsb.WriteString(ufmt.Sprintf(\"🟢 %d%s\\n\", available, denom))\n\t}\n\treturn sb.String()\n}\n\nfunc renderEstimatedMonthly(prefix string, estimatedDay uint64, denom string) string {\n\treturn ufmt.Sprintf(\"%s- 💸 Estimated monthly: %d%s\\n\", prefix, estimatedDay*30, denom)\n}\n\nfunc prettyVaultID(id string) string {\n\tparts := strings.Split(id, \".\")\n\tif len(parts) == 0 {\n\t\treturn id\n\t}\n\n\tuser := rusers.GetUserByAddress(std.Address(parts[0]))\n\tif user == nil {\n\t\treturn id\n\t}\n\n\tparts[0] = \"@\" + user.Name\n\treturn strings.Join(parts, \".\")\n}\n\nfunc linkPrefix() string {\n\trealmPath := std.CurrentRealm().PkgPath()\n\tslashIdx := strings.Index(realmPath, \"/\")\n\tif slashIdx == -1 {\n\t\treturn realmPath\n\t}\n\treturn realmPath[slashIdx:]\n}\n"},{"name":"vaults.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/users\"\n\trusers \"gno.land/r/demo/users\"\n)\n\nvar vaults avl.Tree // std.Addresss -\u003e uint64\n\nfunc getVaultAmount(id string) uint64 {\n\tamount, ok := vaults.Get(id)\n\tif ok {\n\t\treturn amount.(uint64)\n\t}\n\treturn 0\n}\n\nvar errInvalidInput = errors.New(\"invalid input\")\n\nfunc vaultID(input string, namespace string) (string, error) {\n\tif len(input) == 0 {\n\t\treturn \"\", errInvalidInput\n\t}\n\n\tif id, ok := vaultIDFromPkgPath(input, namespace); ok {\n\t\treturn id, nil\n\t}\n\n\tuser := rusers.GetUserByAddressOrName(users.AddressOrName(input))\n\tif user != nil {\n\t\treturn vaultIDUnsafe(user.Address.String(), namespace), nil\n\t}\n\n\tif id, ok := vaultIDFromAddr(std.Address(input), namespace); ok {\n\t\treturn id, nil\n\t}\n\n\treturn \"\", errInvalidInput\n}\n\nfunc parseVaultID(id string) (string, error) {\n\tparts := strings.Split(id, \".\")\n\tif len(parts) == 0 {\n\t\treturn \"\", errInvalidInput\n\t}\n\n\tif len(parts) == 1 {\n\t\treturn vaultID(parts[0], \"\")\n\t}\n\n\treturn vaultID(parts[0], parts[1])\n}\n\nfunc vaultIDUnsafe(entity string, namespace string) string {\n\tif namespace == \"\" {\n\t\treturn entity\n\t}\n\treturn entity + \".\" + namespace\n}\n\nfunc vaultIDFromAddr(addr std.Address, namespace string) (string, bool) {\n\tif !addr.IsValid() {\n\t\treturn \"\", false\n\t}\n\treturn vaultIDUnsafe(addr.String(), namespace), true\n}\n\nfunc vaultIDFromPkgPath(entity string, namespace string) (string, bool) {\n\tif !strings.HasPrefix(entity, std.GetChainDomain()+\"/r/\") {\n\t\treturn \"\", false\n\t}\n\treturn vaultIDUnsafe(entity, namespace), true\n}\n\nfunc vaultIDFromRealm(realm std.Realm, namespace string) string {\n\tif realm.IsUser() {\n\t\treturn vaultIDUnsafe(realm.Addr().String(), namespace)\n\t} else {\n\t\treturn vaultIDUnsafe(realm.PkgPath(), namespace)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"40000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5glSVHuVtQx2vHL4qtq9BCK25Ikt82gfAtXuIdpbTGf8n8PBTVEAjmBczyXrUh+HndSmLpXiASUI/47XC46fAw=="}],"memo":""},"metadata":{"timestamp":"1735660347"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","package":{"name":"payrolls","path":"gno.land/r/demo/payrolls/v2","files":[{"name":"coins.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/grc20reg\"\n)\n\n// Coins transforms coins into payrolls coins, prefixing them with their type. Examples: \"ugnot\" -\u003e \"/native/ugnot\", \"gno.land/r/demo/foo20\" -\u003e \"/grc20/gno.land/r/demo/foo20\"\nfunc Coins(native std.Coins, grc20 std.Coins) (std.Coins, error) {\n\tout := make(std.Coins, len(native)+len(grc20))\n\tfor i, coin := range native {\n\t\tout[i].Amount = coin.Amount\n\t\tout[i].Denom = \"/native/\" + coin.Denom\n\t}\n\toffset := len(native)\n\tfor i, coin := range grc20 {\n\t\tj := offset + i\n\t\tout[j].Amount = coin.Amount\n\t\tout[j].Denom = \"/grc20/\" + coin.Denom\n\t}\n\treturn out, nil\n}\n\nfunc addCoins(a std.Coins, b std.Coins) std.Coins {\n\tout := make(std.Coins, len(a))\n\tcopy(out, a)\n\tfor _, coin := range b {\n\t\tout = addCoinAmount(out, coin)\n\t}\n\treturn out\n}\n\nfunc subCoins(a std.Coins, b std.Coins) std.Coins {\n\tout := make(std.Coins, len(a))\n\tcopy(out, a)\n\tfor _, coin := range b {\n\t\tout = addCoinAmount(out, std.NewCoin(coin.Denom, -coin.Amount))\n\t}\n\treturn out\n}\n\nfunc coinsHasPositive(coins std.Coins) bool {\n\tfor _, coin := range coins {\n\t\tif coin.Amount \u003e 0 {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc clampCoins(a std.Coins, max std.Coins) std.Coins {\n\tout := std.Coins{}\n\tfor _, coin := range a {\n\t\tmaxAmount := max.AmountOf(coin.Denom)\n\t\tif coin.Amount \u003e maxAmount {\n\t\t\tout = append(out, std.NewCoin(coin.Denom, maxAmount))\n\t\t\tcontinue\n\t\t}\n\t\tout = append(out, coin)\n\t}\n\treturn out\n}\n\nfunc addCoinAmount(coins std.Coins, value std.Coin) std.Coins {\n\tfor i, coin := range coins {\n\t\tif coin.Denom != value.Denom {\n\t\t\tcontinue\n\t\t}\n\n\t\tout := make(std.Coins, len(coins))\n\t\tcopy(out, coins)\n\t\tout[i].Amount += value.Amount\n\t\treturn out\n\t}\n\n\treturn append(coins, value)\n}\n\nfunc coinsEmpty(coins std.Coins) bool {\n\tif len(coins) == 0 {\n\t\treturn true\n\t}\n\tfor _, coin := range coins {\n\t\tif coin.Amount != 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc sendCoins(dst std.Address, coins std.Coins) {\n\tif len(coins) == 0 {\n\t\treturn\n\t}\n\n\tnatives := std.Coins{}\n\tgrc20s := std.Coins{}\n\n\tfor _, coin := range coins {\n\t\tif coin.Amount == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif coin.Amount \u003c 0 {\n\t\t\tpanic(errors.New(\"negative send amount\"))\n\t\t}\n\n\t\tvar (\n\t\t\ttarget *std.Coins\n\t\t\tdenom string\n\t\t)\n\n\t\tif strings.HasPrefix(coin.Denom, \"/native/\") {\n\t\t\ttarget = \u0026natives\n\t\t\tdenom = strings.TrimPrefix(coin.Denom, \"/native/\")\n\t\t} else if strings.HasPrefix(coin.Denom, \"/grc20/\") {\n\t\t\ttarget = \u0026grc20s\n\t\t\tdenom = strings.TrimPrefix(coin.Denom, \"/grc20/\")\n\t\t} else {\n\t\t\tpanic(errors.New(\"unknown coin kind\"))\n\t\t}\n\t\t*target = addCoins(*target, std.NewCoins(std.NewCoin(denom, coin.Amount)))\n\t}\n\n\tif len(natives) != 0 {\n\t\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\t\tbanker.SendCoins(std.CurrentRealm().Addr(), dst, natives)\n\t}\n\n\tfor _, coin := range grc20s {\n\t\terr := grc20reg.MustGet(coin.Denom)().CallerTeller().Transfer(dst, uint64(coin.Amount))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n"},{"name":"models.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/seqid\"\n)\n\n// DistribFn is a distribution function used to compute and amount of released coins at a particular point in time.\n//\n// It must return payrolls [Coins]\ntype DistribFn func(elapsed time.Duration) std.Coins\n\n// BreakupFn is a function used to compute payroll termination bonuses.\n//\n// It must return payrolls [Coins]\ntype BreakupFn func(elapsed time.Duration, pauseDuration time.Duration, source BreakupSource) std.Coins\n\ntype BreakupSource uint\n\nconst (\n\tBreakupSourceCreator BreakupSource = iota\n\tBreakupSourceBeneficiary\n)\n\n// DistribStep returns a distribution function that will release coins every `per` duration.\nfunc DistribStep(coins std.Coins, per time.Duration) DistribFn {\n\treturn func(elapsed time.Duration) std.Coins {\n\t\tblocksCount := elapsed / per\n\t\tout := make(std.Coins, 0, len(coins))\n\t\tfor _, coin := range coins {\n\t\t\tout = append(out, std.NewCoin(coin.Denom, coin.Amount*int64(blocksCount)))\n\t\t}\n\t\treturn out\n\t}\n}\n\n// DistribLinear returns a distribution function that will continuously release coins every seconds and amount to a rate of `coins` every `per` duration.\nfunc DistribLinear(coins std.Coins, per time.Duration) DistribFn {\n\treturn func(elapsed time.Duration) std.Coins {\n\t\tout := make(std.Coins, 0, len(coins))\n\t\tfor _, coin := range coins {\n\t\t\tnewAmount := (int64(elapsed.Seconds()) * coin.Amount) / int64(per.Seconds())\n\t\t\tout = append(out, std.NewCoin(coin.Denom, newAmount))\n\t\t}\n\t\treturn out\n\t}\n}\n\n// DistribMonthlyStep returns a distribution function that will release `coins` every months\nfunc DistribMonthlyStep(amountPerMonth std.Coins) DistribFn {\n\treturn DistribStep(amountPerMonth, time.Hour*24*30)\n}\n\n// DistribMonthlyStep returns a distribution function that will continuously release coins every seconds and amount to a rate of `coins` every months\nfunc DistribMonthlyContinuous(amountPerMonth std.Coins) DistribFn {\n\treturn DistribLinear(amountPerMonth, time.Hour*24*30)\n}\n\n// CreateMonthlyContinuous creates a payroll with a continuous release at a fixed rate per months of a token identified by denom.\n//\n// denom must be a payrolls [Coins] denom\nfunc CreateMonthlyContinuous(namespace string, label string, beneficiary std.Address, amountPerMonth int64, denom string) seqid.ID {\n\tif amountPerMonth \u003c= 0 || denom == \"\" {\n\t\tpanic(errors.New(\"invalid input\"))\n\t}\n\tcoinsPerMonth := std.NewCoins(std.NewCoin(denom, amountPerMonth))\n\treturn Create(namespace, label, beneficiary, DistribMonthlyContinuous(coinsPerMonth), nil)\n}\n\n// CreateCDI creates a payroll that tries to match the French CDI contract\n//\n// Denom must be a payrolls [Coins] denom\n//\n// See: https://travail-emploi.gouv.fr/le-contrat-de-travail-duree-indeterminee-cdi\nfunc CreateCDI(namespace string, label string, beneficiary std.Address, amountPerMonth int64, denom string) seqid.ID {\n\tif amountPerMonth \u003c= 0 || denom == \"\" {\n\t\tpanic(errors.New(\"invalid input\"))\n\t}\n\tcoinsPerMonth := std.NewCoins(std.NewCoin(denom, amountPerMonth))\n\treturn Create(namespace, label, beneficiary, DistribMonthlyStep(coinsPerMonth), BreakupCDI(coinsPerMonth))\n}\n\n// BreakupCDI is a breakup function that will release the an amount of coins\n// based on a simplified \"Rupture Conventionelle\" (conventional breakup) model based on the French CDI employment contract\nfunc BreakupCDI(coinsPerMonth std.Coins) BreakupFn {\n\tconst hoursPerYear = float64(8_670)\n\treturn func(elapsed time.Duration, pauseDuration time.Duration, source BreakupSource) std.Coins {\n\t\tif source != BreakupSourceCreator {\n\t\t\treturn nil\n\t\t}\n\n\t\t// conventional breakup\n\t\tout := make(std.Coins, 0, len(coinsPerMonth))\n\t\tworked := elapsed - pauseDuration\n\t\tnumYears := worked.Hours() / hoursPerYear\n\t\tfor _, coin := range coinsPerMonth {\n\t\t\tnewAmount := int64(0.25 * float64(coin.Amount) * numYears)\n\t\t\tout = append(out, std.NewCoin(coin.Denom, newAmount))\n\t\t}\n\t\treturn out\n\t}\n}\n"},{"name":"payroll.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/seqid\"\n)\n\ntype payroll struct {\n\tid seqid.ID\n\tcreatorAddr std.Address\n\tvaultID string\n\tcreatedAt time.Time\n\tbeneficiary std.Address\n\ttotalWithdrawn std.Coins\n\tdistrib DistribFn\n\tbreakup BreakupFn\n\tpaused bool\n\tpausedAt time.Time\n\tpauseDuration time.Duration\n\tlabel string\n\tbreakupCoins std.Coins\n\tstopped bool\n\tstoppedAt time.Time\n}\n\nfunc (p *payroll) freeAt(when time.Time, estimate bool) std.Coins {\n\tif p.stopped \u0026\u0026 p.stoppedAt.Before(when) {\n\t\twhen = p.stoppedAt\n\t}\n\n\tvar elapsed time.Duration\n\tif p.paused \u0026\u0026 !estimate {\n\t\telapsed = p.pausedAt.Sub(p.createdAt)\n\t} else {\n\t\telapsed = when.Sub(p.createdAt)\n\t}\n\telapsed -= p.pauseDuration\n\tres := p.distrib(elapsed)\n\n\treturn res\n}\n\nfunc (p *payroll) available() std.Coins {\n\treturn subCoins(addCoins(p.freeAt(time.Now(), false), p.breakupCoins), p.totalWithdrawn)\n}\n\nfunc (p *payroll) estimateDay() std.Coins {\n\treturn subCoins(p.freeAt(time.Now().Add(time.Hour*24), true), p.freeAt(time.Now(), true))\n}\n\nfunc (p *payroll) claim(vaultAmount std.Coins) std.Coins {\n\tavailable := p.available()\n\tclaimable := clampCoins(available, vaultAmount)\n\tp.totalWithdrawn = addCoins(p.totalWithdrawn, claimable)\n\treturn claimable\n}\n\nfunc (p *payroll) pause(source std.Address) {\n\tp.assertNotStopped()\n\tp.assertBeneficiary(source)\n\n\tif p.paused {\n\t\tpanic(errors.New(\"already paused\"))\n\t}\n\tp.paused = true\n\tp.pausedAt = time.Now()\n}\n\nfunc (p *payroll) resume(source std.Address) {\n\tp.assertNotStopped()\n\tp.assertBeneficiary(source)\n\n\tif !p.paused {\n\t\tpanic(errors.New(\"not paused\"))\n\t}\n\tp.resumeUnsafe()\n}\n\nfunc (p *payroll) resumeUnsafe() {\n\tp.paused = false\n\tp.pauseDuration += time.Now().Sub(p.pausedAt)\n}\n\nfunc (p *payroll) stop(source std.Address) {\n\tp.assertNotStopped()\n\n\tif p.paused {\n\t\tp.resumeUnsafe()\n\t}\n\n\tp.breakupCoins = p.getBreakupCoins(source)\n\tp.stopped = true\n\tp.stoppedAt = time.Now()\n}\n\nfunc (p *payroll) getBreakupCoins(source std.Address) std.Coins {\n\tif p.breakup == nil {\n\t\treturn nil\n\t}\n\n\tvar breakupSource BreakupSource\n\tswitch source {\n\tcase p.beneficiary:\n\t\tbreakupSource = BreakupSourceBeneficiary\n\tcase p.creatorAddr:\n\t\tbreakupSource = BreakupSourceCreator\n\tdefault:\n\t\tpanic(errors.New(\"unknown source\"))\n\t}\n\n\treturn p.breakup(time.Now().Sub(p.createdAt), p.pauseDuration, breakupSource)\n}\n\nfunc (p *payroll) assertNotStopped() {\n\tif p.stopped {\n\t\tpanic(errors.New(\"stopped\"))\n\t}\n}\n\nfunc (p *payroll) assertBeneficiary(addr std.Address) {\n\tif addr != p.beneficiary {\n\t\tpanic(errors.New(\"only beneficiary allowed\"))\n\t}\n}\n"},{"name":"public.gno","body":"// package payrolls is a payroll management example\npackage payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/r/demo/grc20reg\"\n)\n\nvar (\n\tid seqid.ID\n\tpayrolls avl.Tree // seqid.ID -\u003e *payroll\n\tpayrollsByVault = make(map[string]*avl.Tree) // vaultID -\u003e seqid.ID -\u003e *payroll\n\tpayrollsByBeneficiary = make(map[std.Address]*avl.Tree) // addr -\u003e seqid.ID -\u003e *payroll\n)\n\n// Create creates a new payrolls using the vault identified by the caller and namespace.\n//\n// - distrib is the function used to compute the amount of coins release at a specific point it time. It must not be nil Example: [MonthlyContinuous]\n//\n// - breakup is the function used to manage bonuses when a payroll is terminated. It can be nil. Example: [BreakupCDI]\nfunc Create(namespace string, label string, beneficiary std.Address, distrib DistribFn, breakup BreakupFn) seqid.ID {\n\tvaultID := vaultIDFromRealm(std.PrevRealm(), namespace)\n\n\tif distrib == nil {\n\t\tpanic(errors.New(\"nil distrib\"))\n\t}\n\tif !beneficiary.IsValid() {\n\t\tpanic(errors.New(\"invalid beneficiary\"))\n\t}\n\n\tp := payroll{\n\t\tid: id.Next(),\n\t\tvaultID: vaultID,\n\t\tcreatedAt: time.Now(),\n\t\tdistrib: distrib,\n\t\tbreakup: breakup,\n\t\tbeneficiary: beneficiary,\n\t\tlabel: label,\n\t\tcreatorAddr: std.PrevRealm().Addr(),\n\t}\n\n\tpayrolls.Set(id.String(), \u0026p)\n\n\tif _, ok := payrollsByBeneficiary[p.beneficiary]; !ok {\n\t\tpayrollsByBeneficiary[p.beneficiary] = avl.NewTree()\n\t}\n\tpayrollsByBeneficiary[p.beneficiary].Set(p.id.String(), \u0026p)\n\n\tif _, ok := payrollsByVault[p.vaultID]; !ok {\n\t\tpayrollsByVault[p.vaultID] = avl.NewTree()\n\t}\n\tpayrollsByVault[p.vaultID].Set(p.id.String(), \u0026p)\n\n\treturn p.id\n}\n\n// ClaimAll claims the coins available in the payroll identified by id\n//\n// - The caller must be the beneficiary\n//\n// - If destination is empty, it will send coins to the caller address\nfunc Claim(id seqid.ID, destination std.Address) {\n\tclaimInternal(id, destination, true)\n}\n\nfunc claimInternal(id seqid.ID, destination std.Address, mustClaim bool) bool {\n\tp := mustGetPayroll(id)\n\tcaller := std.PrevRealm().Addr()\n\tif caller != p.beneficiary {\n\t\tpanic(errors.New(\"only beneficiary can withdraw\"))\n\t}\n\n\tvaultAmount := getVaultCoins(p.vaultID)\n\tclaimed := p.claim(vaultAmount)\n\tif coinsEmpty(claimed) {\n\t\tif mustClaim {\n\t\t\tpanic(errors.New(\"nothing to claim\"))\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif len(destination) == 0 {\n\t\tdestination = caller\n\t}\n\n\tsendCoins(destination, claimed)\n\n\tvaults.Set(p.vaultID, subCoins(vaultAmount, claimed))\n\n\treturn true\n}\n\n// ClaimAll claims the coins available in all payrolls where the caller is the beneficiary\n//\n// - The caller must be the beneficiary\n//\n// - If destination is empty, it will send coins to the caller address\nfunc ClaimAll(destination std.Address) {\n\tbeneficiary := std.PrevRealm().Addr()\n\tclaimed := false\n\tpayrollsByBeneficiary[beneficiary].Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*payroll)\n\t\tif ok := claimInternal(p.id, destination, false); ok {\n\t\t\tclaimed = true\n\t\t}\n\t\treturn false\n\t})\n\tif !claimed {\n\t\tpanic(errors.New(\"nothing to claim\"))\n\t}\n}\n\n// FundNative funds a vault identified by base and namespace using the OrigSend coins\n//\n// - Anyone can fund any vault\nfunc FundNative(base string, namespace string) {\n\tstd.AssertOriginCall()\n\n\tvar (\n\t\tid string\n\t\terr error\n\t)\n\n\tif base == \"\" {\n\t\tid = vaultIDFromRealm(std.PrevRealm(), namespace)\n\t} else {\n\t\tid, err = vaultID(base, namespace)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tsend := std.GetOrigSend()\n\tif coinsEmpty(send) {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\tfor i := range send {\n\t\tsend[i].Denom = \"/native/\" + send[i].Denom\n\t}\n\tvaults.Set(id, addCoins(getVaultCoins(id), send))\n}\n\n// FundGRC20Reg funds a vault identified by base and namespace using the fqname of a registered coin\n//\n// - If amount is empty, it will use the full allowance\n//\n// - Anyone can fund any vault\nfunc FundGRC20Reg(base string, namespace string, fqname string, amount int64) {\n\ttokenGetter := grc20reg.MustGet(fqname)\n\ttoken := tokenGetter()\n\tif token == nil {\n\t\tpanic(errors.New(\"token getter returned nil\"))\n\t}\n\n\tfundGRC20(base, namespace, token, \"/grc20/\"+fqname, amount)\n}\n\nfunc fundGRC20(base string, namespace string, token *grc20.Token, tokenKey string, amount int64) {\n\tanyAmount := amount == -1\n\tif !anyAmount \u0026\u0026 amount \u003c= 0 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\n\tvar (\n\t\tid string\n\t\terr error\n\t)\n\n\tif base == \"\" {\n\t\tid = vaultIDFromRealm(std.PrevRealm(), namespace)\n\t} else {\n\t\tid, err = vaultID(base, namespace)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tif anyAmount {\n\t\tamount = int64(token.Allowance(std.PrevRealm().Addr(), std.CurrentRealm().Addr()))\n\t}\n\n\tteller := token.CallerTeller()\n\tif err := teller.TransferFrom(std.PrevRealm().Addr(), std.CurrentRealm().Addr(), uint64(amount)); err != nil {\n\t\tpanic(err)\n\t}\n\n\tsend := std.NewCoins(std.NewCoin(tokenKey, int64(amount)))\n\tvaults.Set(id, addCoins(getVaultCoins(id), send))\n}\n\n// WithdrawFunds withdraws from a vault identified by the caller and namespace. It uses the coins identified by a payrolls denom (see [Coins])\n//\n// - If amount is empty, it will withdraw all available funds\n//\n// - If destination is empty, it will send to the caller's address\nfunc WithdrawFunds(namespace string, denom string, amount int64, destination std.Address) {\n\tif amount \u003c -1 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\tanyAmount := amount == -1\n\tif amount == 0 {\n\t\tpanic(errors.New(\"invalid amount\"))\n\t}\n\n\tprevRealm := std.PrevRealm()\n\tif len(destination) == 0 {\n\t\tdestination = prevRealm.Addr()\n\t}\n\n\tid := vaultIDFromRealm(prevRealm, namespace)\n\n\tvaultAmount := getVaultCoins(id)\n\tif vaultAmount.AmountOf(denom) == 0 {\n\t\tpanic(errors.New(\"vault empty\"))\n\t}\n\n\tavailable := vaultAmount\n\tpayrollsByVault[id].Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tp := value.(*payroll)\n\t\tavailable = subCoins(available, p.available())\n\t\treturn false\n\t})\n\n\tavailableAmount := available.AmountOf(denom)\n\tif anyAmount {\n\t\tamount = availableAmount\n\t} else if availableAmount \u003c amount {\n\t\tpanic(errors.New(\"not enough in vault\"))\n\t}\n\n\ttoSend := std.NewCoins(std.Coin{Denom: denom, Amount: amount})\n\tsendCoins(destination, toSend)\n\n\tvaults.Set(id, subCoins(vaultAmount, toSend))\n}\n\nfunc Stop(id seqid.ID) {\n\tp := mustGetPayroll(id)\n\tp.stop(std.PrevRealm().Addr())\n}\n\nfunc Pause(id seqid.ID) {\n\tp := mustGetPayroll(id)\n\tp.pause(std.PrevRealm().Addr())\n}\n\nfunc Resume(id seqid.ID) {\n\tp := mustGetPayroll(id)\n\tp.resume(std.PrevRealm().Addr())\n}\n\nfunc mustGetPayroll(id seqid.ID) *payroll {\n\tip, ok := payrolls.Get(id.String())\n\tif !ok {\n\t\tpanic(errors.New(\"no such payroll\"))\n\t}\n\treturn ip.(*payroll)\n}\n"},{"name":"public_test.gno","body":"package payrolls_test\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n\tgrc20factory \"gno.land/r/demo/grc20factory\"\n\t\"gno.land/r/demo/payrolls\"\n)\n\nfunc TestPayrollsGRC20(t *testing.T) {\n\tmonthlyPAY := std.NewCoin(\"gno.land/r/demo/grc20factory.PAY\", 5_000_0000)\n\tmonthlyGRC20s := std.NewCoins(monthlyPAY)\n\tnamespace := \"finance\"\n\tmonthlyPayrollsCoins, err := payrolls.Coins(nil, monthlyGRC20s)\n\turequire.NoError(t, err)\n\n\ttokenCreator := testutils.TestAddress(\"pay-creator\")\n\tpayrollsRealm := std.NewCodeRealm(\"gno.land/r/demo/payrolls\")\n\tcreator := testutils.TestAddress(\"creator\")\n\tbeneficiary := testutils.TestAddress(\"beneficiary\")\n\n\tstd.TestSetOrigCaller(tokenCreator)\n\tstd.TestSetRealm(std.NewUserRealm(tokenCreator))\n\n\tfundAmount := uint64(20_000_000)\n\tgrc20factory.New(\"Pay\", \"PAY\", 6, 0, fundAmount)\n\n\tstd.TestSetOrigCaller(creator)\n\tstd.TestSetRealm(std.NewUserRealm(creator))\n\n\tgrc20factory.Faucet(\"PAY\")\n\tgrc20factory.Approve(\"PAY\", payrollsRealm.Addr(), fundAmount)\n\n\tpayrolls.FundGRC20Reg(creator.String(), namespace, monthlyPAY.Denom, -1)\n\n\tpayrollID := payrolls.Create(namespace, \"Salary Monthly\", beneficiary,\n\t\tpayrolls.DistribMonthlyContinuous(monthlyPayrollsCoins),\n\t\tpayrolls.BreakupCDI(monthlyPayrollsCoins),\n\t)\n\n\tcreatorBalance := grc20factory.BalanceOf(\"PAY\", creator)\n\turequire.Equal(t, uint64(0), creatorBalance)\n\n\trealmBalance := grc20factory.BalanceOf(\"PAY\", payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount, realmBalance)\n\n\tskipHeight := uint64(10000)\n\tstd.TestSkipHeights(int64(skipHeight))\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Claim(payrollID, std.Address(\"\"))\n\t})\n\n\texpectedBeneficiaryBalance := uint64(964506)\n\n\tbeneficiaryBalance := grc20factory.BalanceOf(\"PAY\", beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\n\trealmBalance = grc20factory.BalanceOf(\"PAY\", payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, realmBalance)\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Pause(payrollID)\n\t})\n\n\tstd.TestSkipHeights(int64(skipHeight))\n\n\turequire.PanicsWithMessage(t, \"nothing to claim\", func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Claim(payrollID, std.Address(\"\"))\n\t})\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Resume(payrollID)\n\t})\n\n\tstd.TestSkipHeights(int64(skipHeight))\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(creator)\n\t\tstd.TestSetRealm(std.NewUserRealm(creator))\n\n\t\tpayrolls.Stop(payrollID)\n\t})\n\n\tbeneficiaryBalance = grc20factory.BalanceOf(\"PAY\", beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\n\trealmBalance = grc20factory.BalanceOf(\"PAY\", payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, realmBalance)\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.ClaimAll(std.Address(\"\"))\n\t})\n\n\texpectedBeneficiaryBalance = uint64(1969060)\n\n\tbeneficiaryBalance = grc20factory.BalanceOf(\"PAY\", beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\n\trealmBalance = grc20factory.BalanceOf(\"PAY\", payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, realmBalance)\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(creator)\n\t\tstd.TestSetRealm(std.NewUserRealm(creator))\n\t\tpayrolls.WithdrawFunds(namespace, monthlyPayrollsCoins[0].Denom, -1, \"\")\n\t})\n\n\tbeneficiaryBalance = grc20factory.BalanceOf(\"PAY\", beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\tcreatorBalance = grc20factory.BalanceOf(\"PAY\", creator)\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, creatorBalance)\n\n\turequire.PanicsWithMessage(t, \"nothing to claim\", func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.ClaimAll(std.Address(\"\"))\n\t})\n}\n\nfunc TestPayrollsNative(t *testing.T) {\n\tmonthlyUgnot := std.NewCoin(\"ugnot\", 5_000_0000)\n\tmonthlyNatives := std.NewCoins(monthlyUgnot)\n\tnamespace := \"native-finance\"\n\tfundAmount := int64(20_000_000)\n\tmonthlyPayrollsCoins, err := payrolls.Coins(monthlyNatives, nil)\n\turequire.NoError(t, err)\n\n\tbalanceOf := func(addr std.Address) int64 {\n\t\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\t\treturn banker.GetCoins(addr).AmountOf(monthlyNatives[0].Denom)\n\t}\n\n\tpayrollsRealm := std.NewCodeRealm(\"gno.land/r/demo/payrolls\")\n\tcreator := testutils.TestAddress(\"creator\")\n\tbeneficiary := testutils.TestAddress(\"beneficiary\")\n\n\tstd.TestSetOrigCaller(creator)\n\tstd.TestSetRealm(std.NewUserRealm(creator))\n\n\tsend := std.NewCoins(std.NewCoin(\"ugnot\", fundAmount))\n\tstd.TestIssueCoins(payrollsRealm.Addr(), send)\n\tstd.TestSetOrigSend(send, nil)\n\n\tpayrolls.FundNative(creator.String(), namespace)\n\n\tpayrollID := payrolls.Create(namespace, \"Salary Monthly\", beneficiary,\n\t\tpayrolls.DistribMonthlyContinuous(monthlyPayrollsCoins),\n\t\tpayrolls.BreakupCDI(monthlyPayrollsCoins),\n\t)\n\n\tcreatorBalance := balanceOf(creator)\n\turequire.Equal(t, int64(0), creatorBalance)\n\n\trealmBalance := balanceOf(payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount, realmBalance)\n\n\tskipHeight := uint64(10000)\n\tstd.TestSkipHeights(int64(skipHeight))\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Claim(payrollID, std.Address(\"\"))\n\t})\n\n\texpectedBeneficiaryBalance := int64(964506)\n\n\tbeneficiaryBalance := balanceOf(beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\n\trealmBalance = balanceOf(payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, realmBalance)\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Pause(payrollID)\n\t})\n\n\tstd.TestSkipHeights(int64(skipHeight))\n\n\turequire.PanicsWithMessage(t, \"nothing to claim\", func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Claim(payrollID, std.Address(\"\"))\n\t})\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.Resume(payrollID)\n\t})\n\n\tstd.TestSkipHeights(int64(skipHeight))\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(creator)\n\t\tstd.TestSetRealm(std.NewUserRealm(creator))\n\n\t\tpayrolls.Stop(payrollID)\n\t})\n\n\tbeneficiaryBalance = balanceOf(beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\n\trealmBalance = balanceOf(payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, realmBalance)\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.ClaimAll(std.Address(\"\"))\n\t})\n\n\texpectedBeneficiaryBalance = int64(1969060)\n\n\tbeneficiaryBalance = balanceOf(beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\n\trealmBalance = balanceOf(payrollsRealm.Addr())\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, realmBalance)\n\n\turequire.NotPanics(t, func() {\n\t\tstd.TestSetOrigCaller(creator)\n\t\tstd.TestSetRealm(std.NewUserRealm(creator))\n\t\tpayrolls.WithdrawFunds(namespace, monthlyPayrollsCoins[0].Denom, -1, \"\")\n\t})\n\n\tbeneficiaryBalance = balanceOf(beneficiary)\n\turequire.Equal(t, expectedBeneficiaryBalance, beneficiaryBalance)\n\tcreatorBalance = balanceOf(creator)\n\turequire.Equal(t, fundAmount-expectedBeneficiaryBalance, creatorBalance)\n\n\turequire.PanicsWithMessage(t, \"nothing to claim\", func() {\n\t\tstd.TestSetOrigCaller(beneficiary)\n\t\tstd.TestSetRealm(std.NewUserRealm(beneficiary))\n\t\tpayrolls.ClaimAll(std.Address(\"\"))\n\t})\n}\n"},{"name":"render.gno","body":"package payrolls\n\nimport (\n\t\"math\"\n\t\"net/url\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/grc20reg\"\n\trusers \"gno.land/r/demo/users\"\n)\n\nconst (\n\tlistMaxSize = 50\n\tdefaultFqdenom = \"gno.land/r/demo/foo20\"\n\tdefaultDenom = \"/grc20/\" + defaultFqdenom\n)\n\nfunc Render(renderPath string) string {\n\tw := strings.Builder{}\n\n\tswitch {\n\tcase strings.HasPrefix(renderPath, \"/u/\"):\n\t\tw.WriteString(\"# Payrolls beneficiary\\n\")\n\n\t\tpath := strings.TrimPrefix(renderPath, \"/u/\")\n\t\taon := users.AddressOrName(path)\n\t\tuser := rusers.GetUserByAddressOrName(aon)\n\t\taddr := std.Address(aon)\n\t\tif user != nil {\n\t\t\taddr = user.Address\n\t\t\tw.WriteString(ufmt.Sprintf(\"- 👤 User: @%s\\n\", user.Name))\n\t\t} else if !addr.IsValid() {\n\t\t\tw.WriteString(ufmt.Sprintf(\"❓ User %q not found\\n\", addr.String()))\n\t\t\tbreak\n\t\t}\n\n\t\tw.WriteString(ufmt.Sprintf(\"- 🆔 Address: %s\\n\", addr.String()))\n\n\t\tsb := strings.Builder{}\n\t\ttree, ok := payrollsByBeneficiary[addr]\n\t\tif !ok {\n\t\t\ttree = avl.NewTree()\n\t\t}\n\t\testimatedDay := std.Coins{}\n\t\testimatedAvailable := std.Coins{}\n\t\testimatedClaimable := std.Coins{}\n\t\tshouldEstimate := tree.Size() \u003c= listMaxSize\n\t\tif shouldEstimate {\n\t\t\tsb.WriteString(\"## All payrolls\\n\")\n\t\t} else {\n\t\t\tsb.WriteString(\"## Latest payrolls\\n\")\n\t\t}\n\t\ttree.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tp := value.(*payroll)\n\t\t\tsb.WriteString(renderPayroll(p, \"beneficiary\"))\n\n\t\t\tif shouldEstimate {\n\t\t\t\tavailable := p.available()\n\t\t\t\testimatedAvailable = addCoins(estimatedAvailable, available)\n\n\t\t\t\tclaimable := clampCoins(available, getVaultCoins(p.vaultID))\n\t\t\t\testimatedClaimable = addCoins(estimatedClaimable, claimable)\n\n\t\t\t\testimatedDay = addCoins(estimatedDay, p.estimateDay())\n\t\t\t}\n\n\t\t\treturn false\n\t\t})\n\n\t\tactions := []string{}\n\n\t\tif !shouldEstimate || !coinsEmpty(estimatedClaimable) {\n\t\t\tactions = append(actions, renderButton(\"Claim all\", \"ClaimAll\", map[string]string{\n\t\t\t\t\"destination\": addr.String(),\n\t\t\t}))\n\t\t}\n\n\t\tactions = append(actions, renderButton(\"New payroll\", \"CreateMonthlyContinuous\", map[string]string{\n\t\t\t\"label\": \"Salary Monthly\",\n\t\t\t\"beneficiary\": addr.String(),\n\t\t\t\"amountPerMonth\": \"10000\",\n\t\t\t\"denom\": defaultDenom,\n\t\t}))\n\n\t\tw.WriteString(renderActions(\"\", actions))\n\n\t\tif shouldEstimate {\n\t\t\tfor _, coin := range addCoins(estimatedAvailable, estimatedDay) {\n\t\t\t\tw.WriteString(ufmt.Sprintf(\"- %s:\\n\", renderCoinDenom(coin.Denom)))\n\t\t\t\tw.WriteString(renderEstimatedMonthly(\" \", estimatedDay.AmountOf(coin.Denom), coin.Denom))\n\t\t\t\tw.WriteString(renderClaimable(\" \", estimatedClaimable.AmountOf(coin.Denom), estimatedAvailable.AmountOf(coin.Denom), coin.Denom, true))\n\t\t\t}\n\t\t}\n\n\t\tw.WriteString(sb.String())\n\n\tcase strings.HasPrefix(renderPath, \"/v/\"):\n\t\tw.WriteString(\"# Payrolls vault\\n\")\n\n\t\tinput := strings.TrimPrefix(renderPath, \"/v/\")\n\t\tinputBase, namespace := splitVaultInput(input)\n\t\tbase, vaultUser, ok := resolveVaultBase(inputBase)\n\t\tif !ok {\n\t\t\tw.WriteString(ufmt.Sprintf(\"❓ Vault %q not found\", input))\n\t\t\tbreak\n\t\t}\n\n\t\tvaultID := vaultIDUnsafe(base, namespace)\n\n\t\tname := vaultID\n\t\tif vaultUser != nil {\n\t\t\tname = vaultIDUnsafe(\"@\"+vaultUser.Name, namespace)\n\t\t}\n\t\tw.WriteString(ufmt.Sprintf(\"- 🎩 Name: %s\\n\", name))\n\n\t\tw.WriteString(ufmt.Sprintf(\"- 🆔 ID: %s\\n\", vaultID))\n\n\t\tpayrollsBuffer := strings.Builder{}\n\t\testimatedDay := std.Coins{}\n\t\testimatedDebt := std.Coins{}\n\t\ttree, ok := payrollsByVault[vaultID]\n\t\tif !ok {\n\t\t\ttree = avl.NewTree()\n\t\t}\n\t\tshouldEstimate := tree.Size() \u003c= listMaxSize\n\t\tif shouldEstimate {\n\t\t\tpayrollsBuffer.WriteString(\"## All payrolls\\n\")\n\t\t} else {\n\t\t\tpayrollsBuffer.WriteString(\"## Latest payrolls\\n\")\n\t\t}\n\t\ttree.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tp := value.(*payroll)\n\t\t\tif shouldEstimate {\n\t\t\t\testimatedDebt = addCoins(estimatedDebt, p.available())\n\t\t\t\testimatedDay = addCoins(estimatedDay, p.estimateDay())\n\t\t\t}\n\t\t\tpayrollsBuffer.WriteString(renderPayroll(p, \"vault\"))\n\t\t\treturn false\n\t\t})\n\n\t\tfunds := getVaultCoins(vaultID)\n\t\tbalance := subCoins(funds, estimatedDebt)\n\n\t\tactions := []string{}\n\t\tactions = append(actions, renderButton(\"Deposit native\", \"FundNative\", map[string]string{\n\t\t\t\"base\": base,\n\t\t\t\"namespace\": namespace,\n\t\t}))\n\t\tactions = append(actions, renderButton(\"Deposit GRC20\", \"FundGRC20Reg\", map[string]string{\n\t\t\t\"base\": base,\n\t\t\t\"namespace\": namespace,\n\t\t\t\"fqdenom\": defaultFqdenom,\n\t\t\t\"amount\": \"-1\",\n\t\t}))\n\t\tif !shouldEstimate || coinsHasPositive(balance) {\n\t\t\tactions = append(actions, renderButton(\"Withdraw funds\", \"WithdrawFunds\", map[string]string{\n\t\t\t\t\"namespace\": namespace,\n\t\t\t\t\"amount\": \"-1\",\n\t\t\t\t\"denom\": defaultDenom,\n\t\t\t\t\"destination\": base,\n\t\t\t}))\n\t\t}\n\t\tactions = append(actions, renderButton(\"New payroll\", \"CreateMonthlyContinuous\", map[string]string{\n\t\t\t\"namespace\": namespace,\n\t\t\t\"label\": \"Salary Monthly\",\n\t\t\t\"amountPerMonth\": \"10000\",\n\t\t\t\"denom\": defaultDenom,\n\t\t}))\n\t\tw.WriteString(renderActions(\"\", actions))\n\n\t\tif shouldEstimate {\n\t\t\tfor _, coin := range addCoins(balance, estimatedDay) {\n\t\t\t\tw.WriteString(ufmt.Sprintf(\"- %s:\\n\", renderCoinDenom(coin.Denom)))\n\n\t\t\t\tcolor := \"🟢\"\n\t\t\t\tcoinBalance := balance.AmountOf(coin.Denom)\n\t\t\t\tif coinBalance \u003c 0 {\n\t\t\t\t\tcolor = \"🔴\"\n\t\t\t\t}\n\t\t\t\tw.WriteString(ufmt.Sprintf(\" - 🏦 Funds: %s %s\\n\", color, renderCoin(std.NewCoin(coin.Denom, coinBalance))))\n\n\t\t\t\tw.WriteString(renderEstimatedMonthly(\" \", estimatedDay.AmountOf(coin.Denom), coin.Denom))\n\n\t\t\t\tif coinBalance \u003e 0 \u0026\u0026 estimatedDay.AmountOf(coin.Denom) \u003e 0 {\n\t\t\t\t\tcolor := \"🔴\"\n\t\t\t\t\trunWayMonths := coinBalance / (estimatedDay.AmountOf(coin.Denom) * 30)\n\t\t\t\t\tif runWayMonths \u003e= 12 {\n\t\t\t\t\t\tcolor = \"🟢\"\n\t\t\t\t\t} else if runWayMonths \u003e= 6 {\n\t\t\t\t\t\tcolor = \"🟠\"\n\t\t\t\t\t}\n\t\t\t\t\tw.WriteString(ufmt.Sprintf(\" - 🛬 Estimated runway: %s %d months\\n\", color, runWayMonths))\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor _, coin := range funds {\n\t\t\t\tw.WriteString(ufmt.Sprintf(\"- 🏦 Funds: %d %s (does not account for unclaimed amounts)\\n\", renderCoin(coin)))\n\t\t\t}\n\t\t}\n\n\t\tw.WriteString(payrollsBuffer.String())\n\n\tcase strings.HasPrefix(renderPath, \"/d/\"):\n\t\tidStr := strings.TrimPrefix(renderPath, \"/d/\")\n\n\t\tw.WriteString(ufmt.Sprintf(\"# Payroll #%s\\n\", idStr))\n\n\t\tp, ok := payrolls.Get(idStr)\n\t\tif !ok {\n\t\t\treturn ufmt.Sprintf(\"❓ Payroll %q not found\", idStr)\n\t\t}\n\n\t\tw.WriteString(renderPayroll(p.(*payroll), \"details\"))\n\n\tcase renderPath == \"\":\n\t\tw.WriteString(\"# Payrolls\\n\")\n\n\t\tactions := []string{}\n\t\tactions = append(actions, renderButton(\"New payroll\", \"CreateMonthlyContinuous\", map[string]string{\n\t\t\t\"label\": \"Salary Monthly\",\n\t\t\t\"amountPerMonth\": \"10000\",\n\t\t\t\"denom\": defaultDenom,\n\t\t}))\n\t\tw.WriteString(renderActions(\"\", actions))\n\n\t\tif payrolls.Size() \u003c= listMaxSize {\n\t\t\tw.WriteString(\"## All payrolls\\n\")\n\t\t} else {\n\t\t\tw.WriteString(\"## Latest payrolls\\n\")\n\t\t}\n\t\tpayrolls.ReverseIterateByOffset(0, listMaxSize, func(key string, value interface{}) bool {\n\t\t\tw.WriteString(renderPayroll(value.(*payroll), \"home\"))\n\t\t\treturn false\n\t\t})\n\n\t\t/*\n\t\t\tw.WriteString(\"## v2 ideas\\n\")\n\t\t\tw.WriteString(\"- Better test coverage\\n\")\n\t\t\tw.WriteString(\"- Gnoweb pagination\\n\")\n\t\t\tw.WriteString(\"- Show payroll running duration\\n\")\n\t\t\tw.WriteString(\"- Archive\\n\")\n\t\t\tw.WriteString(\"- Details: Events history\\n\")\n\t\t\tw.WriteString(\"- PoV Tags\\n\")\n\t\t\tw.WriteString(\"- Edit label / PoV labels\\n\")\n\t\t\tw.WriteString(\"- Stop litigation\\n\")\n\t\t*/\n\n\tdefault:\n\t\tw.WriteString(\"# Payrolls\\n\")\n\t\tw.WriteString(\"❓ 404 Not found\")\n\t}\n\n\treturn w.String()\n}\n\nfunc renderPayroll(p *payroll, pov string) string {\n\tsb := strings.Builder{}\n\n\tif pov != \"details\" {\n\t\tsb.WriteString(ufmt.Sprintf(\"### %s\\n\", p.id.String()))\n\t}\n\n\tsb.WriteString(ufmt.Sprintf(\" - ✍️ Label: %s\\n\", p.label))\n\n\tif p.paused {\n\t\tsb.WriteString(ufmt.Sprintf(\" - ⏸️ Paused since: %s\\n\", p.pausedAt.Format(time.DateTime)))\n\t}\n\n\tif pov != \"vault\" {\n\t\tbase, namespace := splitVaultInput(p.vaultID)\n\t\t_, usr, _ := resolveVaultBase(base)\n\t\tif usr != nil {\n\t\t\tbase = \"@\" + usr.Name\n\t\t}\n\t\tpvid := vaultIDUnsafe(base, namespace)\n\t\tsb.WriteString(ufmt.Sprintf(\" - 🎩 Vault: [%s](%s:/v/%s)\\n\", pvid, linkPrefix(), pvid))\n\t}\n\n\tif pov != \"beneficiary\" {\n\t\tbeneficiaryUser := rusers.GetUserByAddress(p.beneficiary)\n\t\tvar userStr string\n\t\tif beneficiaryUser == nil {\n\t\t\tuserStr = p.beneficiary.String()\n\t\t} else {\n\t\t\tuserStr = \"@\" + beneficiaryUser.Name\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\" - 👤 Beneficiary: [%s](%s:/u/%s)\\n\", userStr, linkPrefix(), userStr))\n\t}\n\n\tavailable := p.available()\n\tvaultAmount := getVaultCoins(p.vaultID)\n\tclaimable := clampCoins(available, vaultAmount)\n\n\tsb.WriteString(ufmt.Sprintf(\" - 🏁 Created at: %s\\n\", p.createdAt.Format(time.DateTime)))\n\n\tif p.stopped {\n\t\tsb.WriteString(ufmt.Sprintf(\" - 🛑 Stopped since: %s\\n\", p.stoppedAt.Format(time.DateTime)))\n\t}\n\n\tif pov != \"details\" {\n\t\tsb.WriteString(ufmt.Sprintf(\" - 🔍 [Details](%s:/d/%s)\\n\", linkPrefix(), p.id.String()))\n\t}\n\n\tactions := []string{}\n\n\tif pov != \"vault\" \u0026\u0026 coinsHasPositive(claimable) {\n\t\tactions = append(actions, renderButton(\"Claim\", \"Claim\", map[string]string{\n\t\t\t\"id\": strconv.FormatUint(uint64(p.id), 10),\n\t\t\t\"destination\": p.beneficiary.String(),\n\t\t}))\n\t}\n\n\tif pov != \"vault\" \u0026\u0026 !p.paused \u0026\u0026 !p.stopped {\n\t\tactions = append(actions, renderButton(\"Pause\", \"Pause\", map[string]string{\n\t\t\t\"id\": strconv.FormatUint(uint64(p.id), 10),\n\t\t}))\n\t}\n\n\tif pov != \"vault\" \u0026\u0026 p.paused {\n\t\tactions = append(actions, renderButton(\"Resume\", \"Resume\", map[string]string{\n\t\t\t\"id\": strconv.FormatUint(uint64(p.id), 10),\n\t\t}))\n\t}\n\n\tif !p.stopped {\n\t\tactions = append(actions, renderStopButton(p.id))\n\t}\n\n\tsb.WriteString(renderActions(\" \", actions))\n\n\testimatedDay := p.estimateDay()\n\tallCoins := addCoins(available, estimatedDay)\n\n\tvar beneficiaryBreakupCoins std.Coins\n\tvar creatorBreakupCoins std.Coins\n\tif pov == \"details\" {\n\t\tallCoins = addCoins(allCoins, beneficiaryBreakupCoins)\n\t\tallCoins = addCoins(allCoins, creatorBreakupCoins)\n\t\tbeneficiaryBreakupCoins = p.getBreakupCoins(p.beneficiary)\n\t\tcreatorBreakupCoins = p.getBreakupCoins(p.creatorAddr)\n\t}\n\tfor _, coin := range allCoins {\n\t\tsb.WriteString(ufmt.Sprintf(\" - %s:\\n\", renderCoinDenom(coin.Denom)))\n\t\tsb.WriteString(renderEstimatedMonthly(\" \", estimatedDay.AmountOf(coin.Denom), coin.Denom))\n\t\tsb.WriteString(renderClaimable(\" \", claimable.AmountOf(coin.Denom), available.AmountOf(coin.Denom), coin.Denom, true))\n\t\tif pov == \"details\" {\n\t\t\tif bb := beneficiaryBreakupCoins.AmountOf(coin.Denom); bb \u003e 0 {\n\t\t\t\tsb.WriteString(ufmt.Sprintf(\" - Breakup by beneficiary bonus: %s\\n\", renderCoin(std.NewCoin(coin.Denom, bb))))\n\t\t\t}\n\t\t\tif cb := creatorBreakupCoins.AmountOf(coin.Denom); cb \u003e 0 {\n\t\t\t\tsb.WriteString(ufmt.Sprintf(\" - Breakup by creator bonus: %s\\n\", renderCoin(std.NewCoin(coin.Denom, cb))))\n\t\t\t}\n\t\t}\n\t}\n\n\treturn sb.String()\n}\n\nfunc renderClaimable(prefix string, claimable int64, available int64, denom string, plural bool) string {\n\tif available == 0 {\n\t\treturn \"\"\n\t}\n\tsb := strings.Builder{}\n\tsb.WriteString(prefix)\n\tsb.WriteString(\"- 💵 Claimable: \")\n\tif claimable \u003c available {\n\t\tpls := \"\"\n\t\tif plural {\n\t\t\tpls = \"(s)\"\n\t\t}\n\t\tcolor := \"🟠\"\n\t\tif claimable == 0 {\n\t\t\tcolor = \"🔴\"\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\"%s %s/%s %s (not enough funds in vault%s!)\\n\",\n\t\t\tcolor,\n\t\t\trenderCoinAmount(std.NewCoin(denom, claimable)),\n\t\t\trenderCoinAmount(std.NewCoin(denom, available)),\n\t\t\trenderCoinDenom(denom),\n\t\t\tpls,\n\t\t))\n\t} else {\n\t\tsb.WriteString(ufmt.Sprintf(\"🟢 %s\\n\", renderCoin(std.NewCoin(denom, available))))\n\t}\n\treturn sb.String()\n}\n\nfunc renderEstimatedMonthly(prefix string, estimatedDay int64, denom string) string {\n\tif estimatedDay == 0 {\n\t\treturn \"\"\n\t}\n\treturn ufmt.Sprintf(\"%s- 💸 Estimated monthly: %s\\n\", prefix, renderCoin(std.NewCoin(denom, estimatedDay*30)))\n}\n\nfunc renderStopButton(id seqid.ID) string {\n\treturn renderButton(\"Stop\", \"Stop\", map[string]string{\n\t\t\"id\": strconv.FormatUint(uint64(id), 10),\n\t})\n}\n\nfunc renderButton(text, funcName string, args map[string]string) string {\n\targsBuf := strings.Builder{}\n\tfor key, arg := range args {\n\t\targsBuf.WriteString(\"\u0026\" + url.QueryEscape(key) + \"=\" + url.QueryEscape(arg))\n\t}\n\treturn ufmt.Sprintf(\"[[%s]](%s$help\u0026func=%s%s)\", text, linkPrefix(), funcName, argsBuf.String())\n}\n\nfunc renderActions(prefix string, actions []string) string {\n\tif len(actions) == 0 {\n\t\treturn \"\"\n\t}\n\treturn prefix + \"- ✋ Actions: \" + strings.Join(actions, \" \") + \"\\n\"\n}\n\nfunc resolveVaultBase(base string) (string, *users.User, bool) {\n\tif len(base) == 0 {\n\t\treturn \"\", nil, false\n\t}\n\n\tif strings.HasPrefix(base, std.GetChainDomain()+\"/r/\") {\n\t\treturn base, nil, true\n\t}\n\n\tusr := rusers.GetUserByAddressOrName(users.AddressOrName(base))\n\tif usr != nil {\n\t\treturn usr.Address.String(), usr, true\n\t}\n\n\tif std.Address(base).IsValid() {\n\t\treturn base, nil, true\n\t}\n\n\treturn \"\", nil, false\n}\n\nfunc linkPrefix() string {\n\trealmPath := std.CurrentRealm().PkgPath()\n\tslashIdx := strings.Index(realmPath, \"/\")\n\tif slashIdx == -1 {\n\t\treturn realmPath\n\t}\n\treturn realmPath[slashIdx:]\n}\n\nfunc renderCoin(coin std.Coin) string {\n\treturn ufmt.Sprintf(\"%s %s\", renderCoinAmount(coin), renderCoinDenom(coin.Denom))\n}\n\nfunc renderCoinAmount(coin std.Coin) string {\n\tswitch {\n\tcase strings.HasPrefix(coin.Denom, \"/grc20/\"):\n\t\tfqdenom := strings.TrimPrefix(coin.Denom, \"/grc20/\")\n\t\ttokenGetter := grc20reg.Get(fqdenom)\n\t\tif tokenGetter == nil {\n\t\t\tbreak\n\t\t}\n\t\ttoken := tokenGetter()\n\t\tif token == nil {\n\t\t\tbreak\n\t\t}\n\t\tamount := float64(coin.Amount) / float64(math.Pow10(int(token.GetDecimals())))\n\t\treturn ufmt.Sprintf(\"%g\", amount)\n\t}\n\n\treturn ufmt.Sprintf(\"%d\", coin.Amount)\n}\n\nfunc renderCoinDenom(denom string) string {\n\tswitch {\n\tcase strings.HasPrefix(denom, \"/native/\"):\n\t\tnativeDenom := strings.TrimPrefix(denom, \"/native/\")\n\t\treturn nativeDenom\n\n\tcase strings.HasPrefix(denom, \"/grc20/\"):\n\t\tfqdenom := strings.TrimPrefix(denom, \"/grc20/\")\n\t\ttokenGetter := grc20reg.Get(fqdenom)\n\t\tif tokenGetter == nil {\n\t\t\tbreak\n\t\t}\n\t\ttoken := tokenGetter()\n\t\tif token == nil {\n\t\t\tbreak\n\t\t}\n\t\treturn ufmt.Sprintf(\"[$%s](%s)\", tokenGetter().GetSymbol(), strings.TrimPrefix(fqdenom, std.GetChainDomain()))\n\t}\n\n\treturn denom\n}\n"},{"name":"vaults.gno","body":"package payrolls\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/users\"\n\trusers \"gno.land/r/demo/users\"\n)\n\nvar vaults avl.Tree // std.Addresss -\u003e std.Coins\n\nvar errInvalidInput = errors.New(\"invalid input\")\n\nfunc getVaultCoins(id string) std.Coins {\n\tamount, ok := vaults.Get(id)\n\tif ok {\n\t\treturn amount.(std.Coins)\n\t}\n\treturn nil\n}\n\nfunc vaultID(base string, namespace string) (string, error) {\n\tif len(base) == 0 {\n\t\treturn \"\", errInvalidInput\n\t}\n\n\tif id, ok := vaultIDFromPkgPath(base, namespace); ok {\n\t\treturn id, nil\n\t}\n\n\tuser := rusers.GetUserByAddressOrName(users.AddressOrName(base))\n\tif user != nil {\n\t\treturn vaultIDUnsafe(user.Address.String(), namespace), nil\n\t}\n\n\tif id, ok := vaultIDFromAddr(std.Address(base), namespace); ok {\n\t\treturn id, nil\n\t}\n\n\treturn \"\", errInvalidInput\n}\n\nfunc splitVaultInput(input string) (string, string) {\n\tlastDot := strings.LastIndex(input, \".\")\n\tif lastDot == -1 {\n\t\treturn input, \"\"\n\t}\n\n\tbase := input[:lastDot]\n\tnamespace := input[lastDot+1:]\n\treturn base, namespace\n}\n\nfunc vaultIDUnsafe(base string, namespace string) string {\n\tif namespace == \"\" {\n\t\treturn base\n\t}\n\treturn base + \".\" + namespace\n}\n\nfunc vaultIDFromAddr(addr std.Address, namespace string) (string, bool) {\n\tif !addr.IsValid() {\n\t\treturn \"\", false\n\t}\n\treturn vaultIDUnsafe(addr.String(), namespace), true\n}\n\nfunc vaultIDFromPkgPath(base string, namespace string) (string, bool) {\n\tif !strings.HasPrefix(base, std.GetChainDomain()+\"/r/\") {\n\t\treturn \"\", false\n\t}\n\treturn vaultIDUnsafe(base, namespace), true\n}\n\nfunc vaultIDFromRealm(base std.Realm, namespace string) string {\n\tif base.IsUser() {\n\t\treturn vaultIDUnsafe(base.Addr().String(), namespace)\n\t} else {\n\t\treturn vaultIDUnsafe(base.PkgPath(), namespace)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"40000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Fp9569u7ZyAB6BJVWjf0uHis6yE/Sx+/fCnClBya3Sq4k2GvGoktYLPGUWL383NhnojSOnjQjdBtBsgqwGdvBg=="}],"memo":""},"metadata":{"timestamp":"1735909836"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLtUQqNWvBJ8uXkGih6X5KYN1mqUfTtyn8tNuYlZfFTa/D2rF0OtsAnbzkK3VfRCh1R+vvVMSwtbQD+vVdasAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLtUQqNWvBJ8uXkGih6X5KYN1mqUfTtyn8tNuYlZfFTa/D2rF0OtsAnbzkK3VfRCh1R+vvVMSwtbQD+vVdasAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLtUQqNWvBJ8uXkGih6X5KYN1mqUfTtyn8tNuYlZfFTa/D2rF0OtsAnbzkK3VfRCh1R+vvVMSwtbQD+vVdasAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLtUQqNWvBJ8uXkGih6X5KYN1mqUfTtyn8tNuYlZfFTa/D2rF0OtsAnbzkK3VfRCh1R+vvVMSwtbQD+vVdasAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLtUQqNWvBJ8uXkGih6X5KYN1mqUfTtyn8tNuYlZfFTa/D2rF0OtsAnbzkK3VfRCh1R+vvVMSwtbQD+vVdasAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1gypwf56urpuw40xnmw8w6de8zz7h0s6zk22jwq","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kLtUQqNWvBJ8uXkGih6X5KYN1mqUfTtyn8tNuYlZfFTa/D2rF0OtsAnbzkK3VfRCh1R+vvVMSwtbQD+vVdasAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hcpl3nuagwjwznuppg36yh7a25csmwa3pnjr8h","package":{"name":"hello","path":"gno.land/r/boonedox/hello","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"/r/gc24/raffle\"\n)\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g1hcpl3nuagwjwznuppg36yh7a25csmwa3pnjr8h\")\n\n}\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"4LuVGAx3sx\")\n\traffle.RegisterUsername(\"boonedox\")\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2VJXZMpGmPRcMYBGGYfT4RRHjKmLZg3ZPOetFBIdv+tVJp5K31SRfSb4RPa1PQQ+8KZWNGD7duuz+rTY+nVUCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hcpl3nuagwjwznuppg36yh7a25csmwa3pnjr8h","package":{"name":"hello","path":"gno.land/r/boonedox/hello","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g1hcpl3nuagwjwznuppg36yh7a25csmwa3pnjr8h\")\n\n}\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"4LuVGAx3sx\")\n\traffle.RegisterUsername(\"boonedox\")\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2Cu+O8VySOEkUo0znl2LS5SLi14pFEP9QOlDuO0KbLGVzLDt5sdltCa+EB2N71iJMWU4OTsz8mQ8sHkCa3lCAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hcpl3nuagwjwznuppg36yh7a25csmwa3pnjr8h","package":{"name":"hello","path":"gno.land/r/boonedox/hello","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// Set admin address\n\traffle.RegisterCode(\"4LuVGAx3sx\")\n\traffle.RegisterUsername(\"boonedox\")\n\n}\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"4LuVGAx3sx\")\n\traffle.RegisterUsername(\"boonedox\")\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tcaOzfbJeuPnsjYE0g3NJUc7xM+8kJuV2hMpxvo4uMj6KP5Q7bHXQvKUU9TltjyipmhhRp9y3NOEGqehlJaMCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"rafentry","path":"gno.land/r/jmrosh/rafentry","files":[{"name":"package.gno","body":"package rafentry\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pkE4Mmy4GZVIaLjNlARE3TZPZQhV8gPDpoA+428O78AuiR/z1uRatSRc9u47U3l7WV8k1vqmedPz6axOUZn8AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/2Uwr0fffBG/raffle","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7xH9d/7x7l3wHmahH1pLu6NHZz797o86ATO8yS3OEs+OCWCsa1Ow1zD38Pnt5JBW0ko8Qq1Dr1POgGTNMNa5Bg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n0oLQ3WXEcLH4JYdGh3GSK2LK8cPC+HUWI0VA6EjOTM+G4n2mka3y7cyfs4KrVMjAs2o4hbT9dVx1mpbPDs1Ag=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nfunc init() {\n\tRegisterCode(\"2Uwr0fffBG\")\n\tRegisterUsername(\"jmrosh\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JYLYOg0A/cNOFohE/1kiP3tVHW955gXSHfirqNMQk+PnUfjYW7tRIHwO2Saju4wWFJFmbogVVsYl14XMToaECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n _ := raffle.RegisterCode(\"2Uwr0fffBG\")\n - := raffle.RegisterUsername(\"jmrosh\")\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mPpX3QQv5/KUpvFCT5rO93h5D56wn6minx31N2lAfFpbefNQfchhtFimiUh0RShe2s58uvrT4A+8HKUR9fEtAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k1xoI0jz4QFfdxCbajAbmV1BYr791BbrSM8qVJqg57GHfUoTShXxlWFuF0awHRrGZ7OqX/PgZYjU3NnI3meNBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode()\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"12/T02Z/BN2paVp10JmKE8VKDcrFmEZS6gE69CXjEDyy5DaC5VB8TF500eVwnUkJhE/tijjQLiC4auppDkISAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HmAARr0HNiyJv77ziyF2LHCD3/SI6bioyk9RwP01WNBIX/TvEpNV8nsxwpmfy0FjkIIgHNPyyKdtPdUYAg/gCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jP1nQNZEockOv/VdIbToS28fAc5bF1pcJTrchZ0jtu8LtESbYKh9e+IJFgc2GFY42h6mi1dfNrS0jNRUQgp7Bw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.lang/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Geh+LONJ5e9/842L0j1En2ig0Z97akxXyxOS9nSKGjS3mqqkUV08Oo7vsGdtT42kW+JEldwqlC4ELr9AZ2wcBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"raffle\"\n)\n\nfunc init() {\n\tRegisterCode(\"2Uwr0fffBG\")\n\tRegisterUsername(\"jmrosh\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CGJ8E9EJFd2dyemaE8YdW5GZcNEBEUAJhQNKERxhpIQdnJ5Wli9ABTNjSxm7CumrbC3i4n19aPlui3Ngea9gDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle","path":"gno.land/r/jmrosh/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A7cMq/OSz1247YXdwv2QlJLa6BPS9PwABtE3P/Nd0LMDCnzt8q70c41TGYHESk7DxPkv1hdiSI7T0HIAW3Z8DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle1","path":"gno.land/r/jmrosh/raffle1","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t//raffle.RegisterCode(\"2Uwr0fffBG\")\n\traffle.RegisterUsername(\"jmrosh\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gARbGPX02Q37+JeAIWPGZ0GFsG6A3AwclE8fm3avhDJyKqXl7MQFDOpekNi33rjM5/NIomTBhhUTYFT37vMQAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hxgta0d4zkl49n9zvyylgjhf78m00qzp629p5p","package":{"name":"raffle1","path":"gno.land/r/jmrosh/raffle1","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"2Uwr0fffBG\")\n\t//raffle.RegisterUsername(\"jmrosh\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TmPzBiYstjDScubs3eYtlFNgaUYGa3q5AyR2CiMMsIfuKULX4cUMTCAuS79q7aPiCWko7X+rodNSavFOYl73Cw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vezCFrX0LZKBRJpJGPjzyWyjUeLUukSjsaAHz9iUD6T0LnEwE3ZTOExt7tHIgmyAZGZjbtGqIRAWyU6ZkrNABw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e+2ehYb6eFZSx3d+H9sf1DzdTIxqy7P4hE6dJO4/KAHfK6t/bW0t45/zdSkUpLDNfX2nE5qtGX1dpIJdcoNKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ydL1gGFO+W74luYEfJJffaNxD9ec3v/tbNxwAQtF4HWdoGMc+ub8GbhZgA8O574sKFnfoGq11Gco+RKtCkRhCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"alerts","path":"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/alerts","files":[{"name":"alerts.gno","body":"package alerts\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tTypeError Type = \"alerts-error\"\n\tTypeWarning Type = \"alerts-warning\"\n)\n\nconst (\n\tStyleError = `\n.alerts-error {\n\tpadding: .75rem 1.25rem;\n\tborder: 1px solid #f5c6cb;\n\tbackground-color: #f8d7da;\n\tcolor: #721c24;\n\tborder-radius: .25rem;\n}\n`\n\tStyleWarning = `\n.alerts-warning {\n\tpadding: .75rem 1.25rem;\n\tborder: 1px solid #ffeeba;\n\tbackground-color: #fff3cd;\n\tcolor: #856404;\n\tborder-radius: .25rem;\n}\n`\n)\n\n// Type defines the type of alerts.\ntype Type string\n\n// NewAlert returns HTML for an alert.\nfunc NewAlert(t Type, content string) string {\n\tvar css string\n\tswitch t {\n\tcase TypeWarning:\n\t\tcss = StyleWarning\n\tcase TypeError:\n\t\tcss = StyleError\n\tdefault:\n\t\tpanic(\"unknown alert type\")\n\t}\n\n\treturn \"\\n\\n\" + ufmt.Sprintf(`\u003cp class=\"%s\"\u003e%s\u003c/p\u003e\u003cstyle\u003e%s\u003c/style\u003e`, string(t), content, css) + \"\\n\\n\"\n}\n\n// NewWarning returns HTML for a warning alert.\nfunc NewWarning(content string) string {\n\treturn NewAlert(TypeWarning, content)\n}\n\n// NewError returns HTML for an error alert.\nfunc NewError(content string) string {\n\treturn NewAlert(TypeError, content)\n}\n\n// NewLink returns an HTML link.\nfunc NewLink(href, label string) string {\n\treturn ufmt.Sprintf(`\u003ca href=\"%s\"\u003e%s\u003c/a\u003e`, href, label)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"swSOZ1NPi4zm0hSz6ns4lulBRcJuQS2cAQ1f+RMG2kkFfNgPDn0SvSQldxYpGYfyXMF/YgWQQVYHKE3EaFROBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"blog","path":"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"asserts.gno","body":"package blog\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar (\n\thostnameRe = regexp.MustCompile(`^(?i)[a-z0-9-]+(\\.[a-z0-9-]+)+\\.?$`)\n\tsha256Re = regexp.MustCompile(`^[a-f0-9]{64}$`)\n\tslugRe = regexp.MustCompile(`^[a-z0-9\\p{L}]+(?:-[a-z0-9\\p{L}]+)*$`)\n)\n\n// AssertIsSlug asserts that a URL slug is valid.\nfunc AssertIsSlug(slug string) {\n\tif !IsSlug(slug) {\n\t\tpanic(\"URL slug is not valid\")\n\t}\n}\n\n// AssertContentSha256Hash asserts that a hex hash is a valid SHA256 hash.\nfunc AssertIsSha256Hash(hexHash string) {\n\tif !IsSha256Hash(hexHash) {\n\t\tpanic(\"invalid sha256 hash\")\n\t}\n}\n\n// AssertIsContentURL asserts that a URL is a valid link to a content.\n// URL must have a path to ve valid. Website URLs will fail.\nfunc AssertIsContentURL(url string) {\n\tif !IsURL(url, true) {\n\t\tpanic(\"content URL is not valid, make sure path to content is specified\")\n\t}\n}\n\n// AssertTitleIsNotEmpty asserts that a title is not an empty string.\nfunc AssertTitleIsNotEmpty(title string) {\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"title is empty\")\n\t}\n}\n\n// AssertContentSha256Hash asserts that the SHA256 hash of a content matches a hash.\nfunc AssertContentSha256Hash(content, hash string) {\n\tif hash != GetHexSha256Hash(content) {\n\t\tpanic(\"content sha256 checksum is not valid\")\n\t}\n}\n\n// IsSlug checks if a string is a valid URL slug.\nfunc IsSlug(slug string) bool {\n\treturn slugRe.MatchString(slug)\n}\n\n// IsSha256Hash checks is a hex hash is a valid SHA256 hash.\nfunc IsSha256Hash(hexHash string) bool {\n\treturn sha256Re.MatchString(strings.ToLower(hexHash))\n}\n\n// IsURL checks if a URL is valid.\n// URL path availability can optionally be enforced.\nfunc IsURL(rawURL string, requirePath bool) bool {\n\tu, err := url.ParseRequestURI(rawURL)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tif requirePath \u0026\u0026 u.Path == \"\" || u.Path == \"/\" {\n\t\treturn false\n\t}\n\n\tif u.Scheme != \"https\" \u0026\u0026 u.Scheme != \"http\" {\n\t\treturn false\n\t}\n\n\thostname := u.Hostname()\n\treturn hostname != \"\" \u0026\u0026 hostnameRe.MatchString(hostname)\n}\n\n// GetHexSha256Hash returns the hexadecimal encoding of the string's SHA256 hash.\n// An empty string is returned when the argument is an empty string.\nfunc GetHexSha256Hash(s string) string {\n\tsum := sha256.Sum256([]byte(s))\n\treturn hex.EncodeToString(sum[:])\n}\n"},{"name":"asserts_test.gno","body":"package blog\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog\"\n)\n\nfunc TestIsSlug(t *testing.T) {\n\tcases := []struct {\n\t\tname, slug string\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"one letter\",\n\t\t\tslug: \"a\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one unicode letter\",\n\t\t\tslug: \"á\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one word\",\n\t\t\tslug: \"foo\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one unicode word\",\n\t\t\tslug: \"fóo\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"many words\",\n\t\t\tslug: \"foo-bar-baz\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"many unicode words\",\n\t\t\tslug: \"fóo-bár-báz\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with spaces\",\n\t\t\tslug: \"foo bar\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"with invalid chars\",\n\t\t\tslug: \"foo/bar\",\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsSlug(tc.slug)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected slug check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSha256Hash(t *testing.T) {\n\tcases := []struct {\n\t\tname, hash string\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\thash: \"1a66cf828aea323fc58c653b0bc0d64061bb5c198e500a541a2c97f4f45b668d\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid size\",\n\t\t\thash: \"1a66cf828aea323\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid characters\",\n\t\t\thash: \"1a66#?\",\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsSha256Hash(tc.hash)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected sha256 check check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsURL(t *testing.T) {\n\tcases := []struct {\n\t\turl string\n\t\twant bool\n\t}{\n\t\t{url: \"https\", want: false},\n\t\t{url: \"https/a\", want: false},\n\t\t{url: \"https/a/b\", want: false},\n\t\t{url: \"https/a/b/\", want: false},\n\t\t{url: \"https:\", want: false},\n\t\t{url: \"https:www.test.com\", want: false},\n\t\t{url: \"https:www.test.com/\", want: false},\n\t\t{url: \"https:www.test.com/a\", want: false},\n\t\t{url: \"https:www.test.com/a/b\", want: false},\n\t\t{url: \"https:www.test.com/a/b/\", want: false},\n\t\t{url: \"https:www.test.com:42/a/b/\", want: false},\n\t\t{url: \"https:/\", want: false},\n\t\t{url: \"https:/a\", want: false},\n\t\t{url: \"https:/a/b\", want: false},\n\t\t{url: \"https:/a/b/\", want: false},\n\t\t{url: \"https:/www.test.com/a/b\", want: false},\n\t\t{url: \"https://\", want: false},\n\t\t{url: \"https://a\", want: false},\n\t\t{url: \"https://a/b\", want: false},\n\t\t{url: \"https://a/b/\", want: false},\n\t\t{url: \"https://www.test.com\", want: false},\n\t\t{url: \"https://www.test.com/\", want: false},\n\t\t{url: \"https://www.test.com/a\", want: true},\n\t\t{url: \"https://www.test.com/a/b\", want: true},\n\t\t{url: \"https://www.test.com/a/b/\", want: true},\n\t\t{url: \"https://www.test.com:42/a/b/\", want: true},\n\t\t{url: \"https://foo.bar.test.com\", want: false},\n\t\t{url: \"https://foo.bar.test.com/\", want: false},\n\t\t{url: \"https://foo.bar.test.com/a\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b/\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b\", want: true},\n\t\t{url: \"https://foo.bar.test.com:42/a/b\", want: true},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.url, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsURL(tc.url, true)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected URL check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetHexSha256Hash(t *testing.T) {\n\tcases := []struct {\n\t\tname, content, want string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n\t\t},\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcontent: \"foo\",\n\t\t\twant: \"2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.GetHexSha256Hash(tc.content)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected hash: '%s', got: '%s'\", tc.want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype (\n\t// Blog defines a blog.\n\tBlog struct {\n\t\tposts avl.Tree // string(slug) -\u003e *Post\n\n\t\t// Title is blog's title.\n\t\tTitle string\n\n\t\t// Description is the blog's description.\n\t\tDescription string\n\t}\n\n\t// PostIterFn defines the a callback to iterate blog posts.\n\tPostIterFn func(*Post) bool\n)\n\n// HasPost checks if a post with a URL slug exists.\nfunc (b Blog) HasPost(slug string) bool {\n\treturn b.posts.Has(slug)\n}\n\n// GetPost returns a blog's post.\nfunc (b Blog) GetPost(slug string) (_ *Post, found bool) {\n\tif v, found := b.posts.Get(slug); found {\n\t\treturn v.(*Post), true\n\t}\n\treturn nil, false\n}\n\n// AddPost adds a new post to the blog.\nfunc (b *Blog) AddPost(p *Post) bool {\n\tslug := strings.TrimSpace(p.Slug)\n\tif slug == \"\" {\n\t\tpanic(\"post has an empty slug\")\n\t}\n\n\treturn b.posts.Set(slug, p)\n}\n\n// RemovePost removes a post from the blog.\n// The removed post is returned after being removed if it exists.\nfunc (b *Blog) RemovePost(slug string) (_ *Post, removed bool) {\n\tif v, removed := b.posts.Remove(slug); removed {\n\t\treturn v.(*Post), true\n\t}\n\treturn nil, false\n}\n\n// IteratePosts iterates all posts by slug.\nfunc (b Blog) IteratePosts(fn PostIterFn) bool {\n\t// TODO: Improve blog post iteration\n\treturn b.posts.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*Post))\n\t})\n}\n"},{"name":"invar.gno","body":"package blog\n\nimport \"time\"\n\nfunc NewInvarBlog(b *Blog) InvarBlog {\n\t// TODO: Remove blog and post references if Gno implements invar (inmutable) references\n\treturn InvarBlog{b}\n}\n\ntype InvarBlog struct {\n\tref *Blog\n}\n\nfunc (b InvarBlog) Title() string {\n\treturn b.ref.Title\n}\n\nfunc (b InvarBlog) Description() string {\n\treturn b.ref.Description\n}\n\nfunc (b InvarBlog) IteratePosts(fn func(InvarPost) bool) bool {\n\treturn b.ref.IteratePosts(func(p *Post) bool {\n\t\treturn fn(NewInvarPost(p))\n\t})\n}\n\nfunc NewInvarPost(p *Post) InvarPost {\n\treturn InvarPost{p}\n}\n\ntype InvarPost struct {\n\tref *Post\n}\n\nfunc (p InvarPost) Slug() string {\n\treturn p.ref.Slug\n}\n\nfunc (p InvarPost) Title() string {\n\treturn p.ref.Title\n}\n\nfunc (p InvarPost) Summary() string {\n\treturn p.ref.Summary\n}\n\nfunc (p InvarPost) Status() PostStatus {\n\treturn p.ref.Status\n}\n\nfunc (p InvarPost) Content() string {\n\treturn p.ref.Content\n}\n\nfunc (p InvarPost) ContentHash() string {\n\treturn p.ref.ContentHash\n}\n\nfunc (p InvarPost) Authors() AddressList {\n\treturn p.ref.Authors\n}\n\nfunc (p InvarPost) Editors() AddressList {\n\treturn p.ref.Editors\n}\n\nfunc (p InvarPost) Contributors() AddressList {\n\treturn p.ref.Contributors\n}\n\nfunc (p InvarPost) Publishers() AddressList {\n\treturn p.ref.Publishers\n}\n\nfunc (p InvarPost) Tags() []string {\n\treturn p.ref.Tags\n}\n\nfunc (p InvarPost) CreatedAt() time.Time {\n\treturn p.ref.CreatedAt\n}\n\nfunc (p InvarPost) UpdatedAt() time.Time {\n\treturn p.ref.UpdatedAt\n}\n\nfunc (p InvarPost) PublishAt() time.Time {\n\treturn p.ref.PublishAt\n}\n\nfunc (p InvarPost) ExpireAt() time.Time {\n\treturn p.ref.ExpireAt\n}\n"},{"name":"post.gno","body":"package blog\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tStatusDraft PostStatus = iota\n\tStatusApproved\n\tStatusPublished\n\tStatusRevised\n\tStatusArchived\n)\n\ntype (\n\t// AddressList defines a list of addresses.\n\tAddressList []std.Address\n\n\t// PostStatus defines a type for blog post states.\n\tPostStatus uint8\n\n\t// Post defines a blog post.\n\tPost struct {\n\t\t// Slug contains the URL path slug for the post.\n\t\tSlug string\n\n\t\t// Title is the post's title.\n\t\tTitle string\n\n\t\t// Summary is the post's summary.\n\t\tSummary string\n\n\t\t// Status is the current post's state.\n\t\tStatus PostStatus\n\n\t\t// Content contains the post's content.\n\t\tContent string\n\n\t\t// ContentHash contains the hash of the post's content.\n\t\tContentHash string\n\n\t\t// Authors contains the list of post authors.\n\t\tAuthors AddressList\n\n\t\t// Editors contains the list of post editors.\n\t\t// Each account belongs to an editor that significantly improved the content.\n\t\tEditors AddressList\n\n\t\t// Contributors contains the list of post contributors.\n\t\t// Each account belongs to a contributor that submitted small content changes.\n\t\tContributors AddressList\n\n\t\t// Publishers contains the accounts that published the content.\n\t\tPublishers AddressList\n\n\t\t// Tags contains a list of tags for the post.\n\t\t// These tags can be used to build the blog content taxonomy.\n\t\tTags []string\n\n\t\t// CreatedAt is the block time when the post has been created.\n\t\tCreatedAt time.Time\n\n\t\t// UpdatedAt is the block time when the post has been updated for the last time.\n\t\tUpdatedAt time.Time\n\n\t\t// PublishAt is the block time when the post should be published.\n\t\tPublishAt time.Time\n\n\t\t// ExpireAt is the block time when the post should be archived.\n\t\tExpireAt time.Time\n\t}\n)\n\n// String returns a comma separated string with the list of addresses.\nfunc (x AddressList) String() string {\n\tvar s []string\n\tfor _, item := range x {\n\t\ts = append(s, item.String())\n\t}\n\treturn strings.Join(s, \", \")\n}\n\n// HasAddress checks if an address is part of the address list.\nfunc (x AddressList) HasAddress(addr std.Address) bool {\n\tfor _, item := range x {\n\t\tif item == addr {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// String returns the post status name.\nfunc (s PostStatus) String() string {\n\tswitch s {\n\tcase StatusDraft:\n\t\treturn \"draft\"\n\tcase StatusApproved:\n\t\treturn \"approved\"\n\tcase StatusPublished:\n\t\treturn \"published\"\n\tcase StatusRevised:\n\t\treturn \"revised\"\n\tcase StatusArchived:\n\t\treturn \"archived\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// IsExpired checks if the expiration date was reached.\nfunc (p Post) IsExpired() bool {\n\treturn !p.ExpireAt.IsZero() \u0026\u0026 p.ExpireAt.Before(time.Now())\n}\n\n// ParseStringToAddresses parses a string addresses.\n// String should have one or more lines where each line should contain an address.\n// Addresses are validated after being parsed.\nfunc ParseStringToAddresses(s string) (AddressList, error) {\n\tvar addresses AddressList\n\tfor _, line := range strings.Split(s, \"\\n\") {\n\t\tline = strings.TrimSpace(line)\n\t\tif line == \"\" {\n\t\t\t// Skip empty lines\n\t\t\tcontinue\n\t\t}\n\n\t\taddr := std.Address(strings.TrimSpace(line))\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, errors.New(\"invalid address: \" + EscapeHTML(addr.String()))\n\t\t}\n\n\t\taddresses = append(addresses, addr)\n\t}\n\treturn addresses, nil\n}\n\n// MustParseStringToAddresses parses a string addresses.\n// String should have one or more lines where each line should contain an address.\n// Addresses are validated after being parsed.\nfunc MustParseStringToAddresses(s string) AddressList {\n\taddresses, err := ParseStringToAddresses(s)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn addresses\n}\n\n// EscapeHTML escapes special characters like \"\u003c\" to become \"\u0026lt;\".\n// It escapes only five such characters: \u003c, \u003e, \u0026, ' and \".\nfunc EscapeHTML(s string) string {\n\ts = strings.ReplaceAll(s, `\u0026`, \"\u0026amp;\")\n\ts = strings.ReplaceAll(s, `\"`, \"\u0026#34;\")\n\ts = strings.ReplaceAll(s, `'`, \"\u0026#39;\")\n\ts = strings.ReplaceAll(s, `\u003c`, \"\u0026lt;\")\n\treturn strings.ReplaceAll(s, `\u003e`, \"\u0026gt;\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"40000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fwSaPRF3nfw9lWK4RBSyG8qyzNhe1t2DEfLZFKHJDzuGJAX/akJHUPLwTYVmxCWi21jZPwMi7OcPSZNrJ7+xDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"blog","path":"gno.land/p/gnome/blog","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"asserts.gno","body":"package blog\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar (\n\thostnameRe = regexp.MustCompile(`^(?i)[a-z0-9-]+(\\.[a-z0-9-]+)+\\.?$`)\n\tsha256Re = regexp.MustCompile(`^[a-f0-9]{64}$`)\n\tslugRe = regexp.MustCompile(`^[a-z0-9\\p{L}]+(?:-[a-z0-9\\p{L}]+)*$`)\n)\n\n// AssertIsSlug asserts that a URL slug is valid.\nfunc AssertIsSlug(slug string) {\n\tif !IsSlug(slug) {\n\t\tpanic(\"URL slug is not valid\")\n\t}\n}\n\n// AssertContentSha256Hash asserts that a hex hash is a valid SHA256 hash.\nfunc AssertIsSha256Hash(hexHash string) {\n\tif !IsSha256Hash(hexHash) {\n\t\tpanic(\"invalid sha256 hash\")\n\t}\n}\n\n// AssertIsContentURL asserts that a URL is a valid link to a content.\n// URL must have a path to ve valid. Website URLs will fail.\nfunc AssertIsContentURL(url string) {\n\tif !IsURL(url, true) {\n\t\tpanic(\"content URL is not valid, make sure path to content is specified\")\n\t}\n}\n\n// AssertTitleIsNotEmpty asserts that a title is not an empty string.\nfunc AssertTitleIsNotEmpty(title string) {\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"title is empty\")\n\t}\n}\n\n// AssertContentSha256Hash asserts that the SHA256 hash of a content matches a hash.\nfunc AssertContentSha256Hash(content, hash string) {\n\tif hash != GetHexSha256Hash(content) {\n\t\tpanic(\"content sha256 checksum is not valid\")\n\t}\n}\n\n// IsSlug checks if a string is a valid URL slug.\nfunc IsSlug(slug string) bool {\n\treturn slugRe.MatchString(slug)\n}\n\n// IsSha256Hash checks is a hex hash is a valid SHA256 hash.\nfunc IsSha256Hash(hexHash string) bool {\n\treturn sha256Re.MatchString(strings.ToLower(hexHash))\n}\n\n// IsURL checks if a URL is valid.\n// URL path availability can optionally be enforced.\nfunc IsURL(rawURL string, requirePath bool) bool {\n\tu, err := url.ParseRequestURI(rawURL)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tif requirePath \u0026\u0026 u.Path == \"\" || u.Path == \"/\" {\n\t\treturn false\n\t}\n\n\tif u.Scheme != \"https\" \u0026\u0026 u.Scheme != \"http\" {\n\t\treturn false\n\t}\n\n\thostname := u.Hostname()\n\treturn hostname != \"\" \u0026\u0026 hostnameRe.MatchString(hostname)\n}\n\n// GetHexSha256Hash returns the hexadecimal encoding of the string's SHA256 hash.\n// An empty string is returned when the argument is an empty string.\nfunc GetHexSha256Hash(s string) string {\n\tsum := sha256.Sum256([]byte(s))\n\treturn hex.EncodeToString(sum[:])\n}\n"},{"name":"asserts_test.gno","body":"package blog\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/gnome/blog\"\n)\n\nfunc TestIsSlug(t *testing.T) {\n\tcases := []struct {\n\t\tname, slug string\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"one letter\",\n\t\t\tslug: \"a\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one unicode letter\",\n\t\t\tslug: \"á\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one word\",\n\t\t\tslug: \"foo\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one unicode word\",\n\t\t\tslug: \"fóo\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"many words\",\n\t\t\tslug: \"foo-bar-baz\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"many unicode words\",\n\t\t\tslug: \"fóo-bár-báz\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with spaces\",\n\t\t\tslug: \"foo bar\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"with invalid chars\",\n\t\t\tslug: \"foo/bar\",\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsSlug(tc.slug)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected slug check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSha256Hash(t *testing.T) {\n\tcases := []struct {\n\t\tname, hash string\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\thash: \"1a66cf828aea323fc58c653b0bc0d64061bb5c198e500a541a2c97f4f45b668d\",\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid size\",\n\t\t\thash: \"1a66cf828aea323\",\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid characters\",\n\t\t\thash: \"1a66#?\",\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsSha256Hash(tc.hash)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected sha256 check check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsURL(t *testing.T) {\n\tcases := []struct {\n\t\turl string\n\t\twant bool\n\t}{\n\t\t{url: \"https\", want: false},\n\t\t{url: \"https/a\", want: false},\n\t\t{url: \"https/a/b\", want: false},\n\t\t{url: \"https/a/b/\", want: false},\n\t\t{url: \"https:\", want: false},\n\t\t{url: \"https:www.test.com\", want: false},\n\t\t{url: \"https:www.test.com/\", want: false},\n\t\t{url: \"https:www.test.com/a\", want: false},\n\t\t{url: \"https:www.test.com/a/b\", want: false},\n\t\t{url: \"https:www.test.com/a/b/\", want: false},\n\t\t{url: \"https:www.test.com:42/a/b/\", want: false},\n\t\t{url: \"https:/\", want: false},\n\t\t{url: \"https:/a\", want: false},\n\t\t{url: \"https:/a/b\", want: false},\n\t\t{url: \"https:/a/b/\", want: false},\n\t\t{url: \"https:/www.test.com/a/b\", want: false},\n\t\t{url: \"https://\", want: false},\n\t\t{url: \"https://a\", want: false},\n\t\t{url: \"https://a/b\", want: false},\n\t\t{url: \"https://a/b/\", want: false},\n\t\t{url: \"https://www.test.com\", want: false},\n\t\t{url: \"https://www.test.com/\", want: false},\n\t\t{url: \"https://www.test.com/a\", want: true},\n\t\t{url: \"https://www.test.com/a/b\", want: true},\n\t\t{url: \"https://www.test.com/a/b/\", want: true},\n\t\t{url: \"https://www.test.com:42/a/b/\", want: true},\n\t\t{url: \"https://foo.bar.test.com\", want: false},\n\t\t{url: \"https://foo.bar.test.com/\", want: false},\n\t\t{url: \"https://foo.bar.test.com/a\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b/\", want: true},\n\t\t{url: \"https://foo.bar.test.com/a/b\", want: true},\n\t\t{url: \"https://foo.bar.test.com:42/a/b\", want: true},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.url, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.IsURL(tc.url, true)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected URL check to return: %v\", tc.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetHexSha256Hash(t *testing.T) {\n\tcases := []struct {\n\t\tname, content, want string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\twant: \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n\t\t},\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcontent: \"foo\",\n\t\t\twant: \"2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tgot := blog.GetHexSha256Hash(tc.content)\n\n\t\t\t// Assert\n\t\t\tif got != tc.want {\n\t\t\t\tt.Fatalf(\"expected hash: '%s', got: '%s'\", tc.want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype (\n\t// Blog defines a blog.\n\tBlog struct {\n\t\tposts avl.Tree // string(slug) -\u003e *Post\n\n\t\t// Title is blog's title.\n\t\tTitle string\n\n\t\t// Description is the blog's description.\n\t\tDescription string\n\t}\n\n\t// PostIterFn defines the a callback to iterate blog posts.\n\tPostIterFn func(*Post) bool\n)\n\n// HasPost checks if a post with a URL slug exists.\nfunc (b Blog) HasPost(slug string) bool {\n\treturn b.posts.Has(slug)\n}\n\n// GetPost returns a blog's post.\nfunc (b Blog) GetPost(slug string) (_ *Post, found bool) {\n\tif v, found := b.posts.Get(slug); found {\n\t\treturn v.(*Post), true\n\t}\n\treturn nil, false\n}\n\n// AddPost adds a new post to the blog.\nfunc (b *Blog) AddPost(p *Post) bool {\n\tslug := strings.TrimSpace(p.Slug)\n\tif slug == \"\" {\n\t\tpanic(\"post has an empty slug\")\n\t}\n\n\treturn b.posts.Set(slug, p)\n}\n\n// RemovePost removes a post from the blog.\n// The removed post is returned after being removed if it exists.\nfunc (b *Blog) RemovePost(slug string) (_ *Post, removed bool) {\n\tif v, removed := b.posts.Remove(slug); removed {\n\t\treturn v.(*Post), true\n\t}\n\treturn nil, false\n}\n\n// IteratePosts iterates all posts by slug.\nfunc (b Blog) IteratePosts(fn PostIterFn) bool {\n\t// TODO: Improve blog post iteration\n\treturn b.posts.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*Post))\n\t})\n}\n"},{"name":"invar.gno","body":"package blog\n\nimport \"time\"\n\nfunc NewInvarBlog(b *Blog) InvarBlog {\n\t// TODO: Remove blog and post references if Gno implements invar (inmutable) references\n\treturn InvarBlog{b}\n}\n\ntype InvarBlog struct {\n\tref *Blog\n}\n\nfunc (b InvarBlog) Title() string {\n\treturn b.ref.Title\n}\n\nfunc (b InvarBlog) Description() string {\n\treturn b.ref.Description\n}\n\nfunc (b InvarBlog) IteratePosts(fn func(InvarPost) bool) bool {\n\treturn b.ref.IteratePosts(func(p *Post) bool {\n\t\treturn fn(NewInvarPost(p))\n\t})\n}\n\nfunc NewInvarPost(p *Post) InvarPost {\n\treturn InvarPost{p}\n}\n\ntype InvarPost struct {\n\tref *Post\n}\n\nfunc (p InvarPost) Slug() string {\n\treturn p.ref.Slug\n}\n\nfunc (p InvarPost) Title() string {\n\treturn p.ref.Title\n}\n\nfunc (p InvarPost) Summary() string {\n\treturn p.ref.Summary\n}\n\nfunc (p InvarPost) Status() PostStatus {\n\treturn p.ref.Status\n}\n\nfunc (p InvarPost) Content() string {\n\treturn p.ref.Content\n}\n\nfunc (p InvarPost) ContentHash() string {\n\treturn p.ref.ContentHash\n}\n\nfunc (p InvarPost) Authors() AddressList {\n\treturn p.ref.Authors\n}\n\nfunc (p InvarPost) Editors() AddressList {\n\treturn p.ref.Editors\n}\n\nfunc (p InvarPost) Contributors() AddressList {\n\treturn p.ref.Contributors\n}\n\nfunc (p InvarPost) Publishers() AddressList {\n\treturn p.ref.Publishers\n}\n\nfunc (p InvarPost) Tags() []string {\n\treturn p.ref.Tags\n}\n\nfunc (p InvarPost) CreatedAt() time.Time {\n\treturn p.ref.CreatedAt\n}\n\nfunc (p InvarPost) UpdatedAt() time.Time {\n\treturn p.ref.UpdatedAt\n}\n\nfunc (p InvarPost) PublishAt() time.Time {\n\treturn p.ref.PublishAt\n}\n\nfunc (p InvarPost) ExpireAt() time.Time {\n\treturn p.ref.ExpireAt\n}\n"},{"name":"post.gno","body":"package blog\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tStatusDraft PostStatus = iota\n\tStatusApproved\n\tStatusPublished\n\tStatusRevised\n\tStatusArchived\n)\n\ntype (\n\t// AddressList defines a list of addresses.\n\tAddressList []std.Address\n\n\t// PostStatus defines a type for blog post states.\n\tPostStatus uint8\n\n\t// Post defines a blog post.\n\tPost struct {\n\t\t// Slug contains the URL path slug for the post.\n\t\tSlug string\n\n\t\t// Title is the post's title.\n\t\tTitle string\n\n\t\t// Summary is the post's summary.\n\t\tSummary string\n\n\t\t// Status is the current post's state.\n\t\tStatus PostStatus\n\n\t\t// Content contains the post's content.\n\t\tContent string\n\n\t\t// ContentHash contains the hash of the post's content.\n\t\tContentHash string\n\n\t\t// Authors contains the list of post authors.\n\t\tAuthors AddressList\n\n\t\t// Editors contains the list of post editors.\n\t\t// Each account belongs to an editor that significantly improved the content.\n\t\tEditors AddressList\n\n\t\t// Contributors contains the list of post contributors.\n\t\t// Each account belongs to a contributor that submitted small content changes.\n\t\tContributors AddressList\n\n\t\t// Publishers contains the accounts that published the content.\n\t\tPublishers AddressList\n\n\t\t// Tags contains a list of tags for the post.\n\t\t// These tags can be used to build the blog content taxonomy.\n\t\tTags []string\n\n\t\t// CreatedAt is the block time when the post has been created.\n\t\tCreatedAt time.Time\n\n\t\t// UpdatedAt is the block time when the post has been updated for the last time.\n\t\tUpdatedAt time.Time\n\n\t\t// PublishAt is the block time when the post should be published.\n\t\tPublishAt time.Time\n\n\t\t// ExpireAt is the block time when the post should be archived.\n\t\tExpireAt time.Time\n\t}\n)\n\n// String returns a comma separated string with the list of addresses.\nfunc (x AddressList) String() string {\n\tvar s []string\n\tfor _, item := range x {\n\t\ts = append(s, item.String())\n\t}\n\treturn strings.Join(s, \", \")\n}\n\n// HasAddress checks if an address is part of the address list.\nfunc (x AddressList) HasAddress(addr std.Address) bool {\n\tfor _, item := range x {\n\t\tif item == addr {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// String returns the post status name.\nfunc (s PostStatus) String() string {\n\tswitch s {\n\tcase StatusDraft:\n\t\treturn \"draft\"\n\tcase StatusApproved:\n\t\treturn \"approved\"\n\tcase StatusPublished:\n\t\treturn \"published\"\n\tcase StatusRevised:\n\t\treturn \"revised\"\n\tcase StatusArchived:\n\t\treturn \"archived\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// IsExpired checks if the expiration date was reached.\nfunc (p Post) IsExpired() bool {\n\treturn !p.ExpireAt.IsZero() \u0026\u0026 p.ExpireAt.Before(time.Now())\n}\n\n// ParseStringToAddresses parses a string addresses.\n// String should have one or more lines where each line should contain an address.\n// Addresses are validated after being parsed.\nfunc ParseStringToAddresses(s string) (AddressList, error) {\n\tvar addresses AddressList\n\tfor _, line := range strings.Split(s, \"\\n\") {\n\t\tline = strings.TrimSpace(line)\n\t\tif line == \"\" {\n\t\t\t// Skip empty lines\n\t\t\tcontinue\n\t\t}\n\n\t\taddr := std.Address(strings.TrimSpace(line))\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, errors.New(\"invalid address: \" + EscapeHTML(addr.String()))\n\t\t}\n\n\t\taddresses = append(addresses, addr)\n\t}\n\treturn addresses, nil\n}\n\n// MustParseStringToAddresses parses a string addresses.\n// String should have one or more lines where each line should contain an address.\n// Addresses are validated after being parsed.\nfunc MustParseStringToAddresses(s string) AddressList {\n\taddresses, err := ParseStringToAddresses(s)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn addresses\n}\n\n// EscapeHTML escapes special characters like \"\u003c\" to become \"\u0026lt;\".\n// It escapes only five such characters: \u003c, \u003e, \u0026, ' and \".\nfunc EscapeHTML(s string) string {\n\ts = strings.ReplaceAll(s, `\u0026`, \"\u0026amp;\")\n\ts = strings.ReplaceAll(s, `\"`, \"\u0026#34;\")\n\ts = strings.ReplaceAll(s, `'`, \"\u0026#39;\")\n\ts = strings.ReplaceAll(s, `\u003c`, \"\u0026lt;\")\n\treturn strings.ReplaceAll(s, `\u003e`, \"\u0026gt;\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"40000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yXX/XAutb2zzFypWx7LgrzamGSisPZ4+gLJyJYN89Bw/lV8rSaFhJfk0YwdJKrJGfOLwTlXZAeXKoqaSrLosAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"dao","path":"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"dao.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\n// PathSeparator defines the DAO path separator.\nconst PathSeparator = \"/\"\n\ntype (\n\t// Role defines the type for DAO roles.\n\tRole string\n\n\t// Roles defines the type for a list of DAO roles.\n\tRoles []Role\n)\n\n// String returns the role as a string.\nfunc (r Role) String() string {\n\treturn string(r)\n}\n\n// NewMember creates a new DAO member.\nfunc NewMember(addr std.Address, roles ...Role) Member {\n\treturn Member{\n\t\tAddress: addr,\n\t\tRoles: roles,\n\t}\n}\n\n// Member defines a DAO member.\ntype Member struct {\n\t// Address is the member account address.\n\tAddress std.Address\n\n\t// Roles contains the optional list of roles that the member belongs to.\n\tRoles Roles\n}\n\n// String returns a string representation of the member.\nfunc (m Member) String() string {\n\tif len(m.Roles) == 0 {\n\t\treturn m.Address.String()\n\t}\n\n\tvar roles []string\n\tfor _, r := range m.Roles {\n\t\troles = append(roles, string(r))\n\t}\n\treturn m.Address.String() + \" \" + strings.Join(roles, \", \")\n}\n\n// HasRole checks if the member belongs to a specific role.\nfunc (m Member) HasRole(r Role) bool {\n\tfor _, role := range m.Roles {\n\t\tif role == r {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Option configures DAO.\ntype Option func(*DAO)\n\n// AssignAsSuperCouncil makes the DAO a super council.\nfunc AssignAsSuperCouncil() Option {\n\treturn func(dao *DAO) {\n\t\tdao.isSuperCouncil = true\n\t}\n}\n\n// WithSubDAO assigns sub DAO to a DAO.\nfunc WithSubDAO(sub *DAO) Option {\n\treturn func(dao *DAO) {\n\t\tsub.parent = dao\n\t\tdao.children = append(dao.children, sub)\n\t}\n}\n\n// WithMembers assigns members to a DAO.\nfunc WithMembers(members ...Member) Option {\n\treturn func(dao *DAO) {\n\t\tdao.members = members\n\t}\n}\n\n// WithManifest assigns a manifest to a DAO.\n// Manifest should describe the purpose of the DAO.\nfunc WithManifest(manifest string) Option {\n\treturn func(dao *DAO) {\n\t\tdao.manifest = manifest\n\t}\n}\n\n// New creates a new DAO.\nfunc New(name, title string, options ...Option) (*DAO, error) {\n\tname = strings.TrimSpace(name)\n\tif name == \"\" {\n\t\treturn nil, errors.New(\"DAO name is required\")\n\t}\n\n\tif !IsSlug(name) {\n\t\treturn nil, errors.New(`DAO name is not valid, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\ttitle = strings.TrimSpace(title)\n\tif title == \"\" {\n\t\treturn nil, errors.New(\"DAO title is required\")\n\t}\n\n\tdao := \u0026DAO{\n\t\tname: name,\n\t\ttitle: title,\n\t\tcreatedAt: time.Now(),\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(dao)\n\t}\n\n\treturn dao, nil\n}\n\n// MustNew creates a new DAO.\n// The function panics if any of the arguments is not valid.\nfunc MustNew(name, title string, options ...Option) *DAO {\n\tdao, err := New(name, title, options...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn dao\n}\n\n// DAO is a decentralized autonomous organization.\ntype DAO struct {\n\tname string\n\ttitle string\n\tmanifest string\n\tisSuperCouncil bool\n\tisLocked bool\n\tlockReason string\n\tparent *DAO\n\tchildren []*DAO\n\tmembers []Member\n\tcreatedAt time.Time\n}\n\n// Name returns the name of the DAO.\nfunc (dao DAO) Name() string {\n\treturn dao.name\n}\n\n// Title returns the title of the DAO.\nfunc (dao DAO) Title() string {\n\treturn dao.title\n}\n\n// Manifest returns the manifest of the DAO.\nfunc (dao DAO) Manifest() string {\n\treturn dao.manifest\n}\n\n// SetManifest sets the manifest of the DAO.\nfunc (dao *DAO) SetManifest(s string) {\n\tdao.manifest = s\n}\n\n// CreatedAt returns the creation time of the DAO.\nfunc (dao DAO) CreatedAt() time.Time {\n\treturn dao.createdAt\n}\n\n// Parent returns the parent DAO of the sub DAO.\n// The result is nil for the DAO at the root of the DAO tree.\nfunc (dao DAO) Parent() *DAO {\n\treturn dao.parent\n}\n\n// Path returns the path of the DAO.\nfunc (dao DAO) Path() string {\n\tif dao.parent == nil {\n\t\treturn dao.name\n\t}\n\treturn dao.parent.Path() + PathSeparator + dao.name\n}\n\n// SubDAOs returns the first level sub DAOs.\nfunc (dao DAO) SubDAOs() []*DAO { // TODO: Use Children() instead? Find a better name.\n\treturn dao.children\n}\n\n// GetFirstSubDAO returns the first sub DAO.\nfunc (dao DAO) GetFirstSubDAO() *DAO {\n\tif len(dao.children) \u003e 0 {\n\t\treturn dao.children[0]\n\t}\n\treturn nil\n}\n\n// CollectSubDAOs collects all sub DAOs.\nfunc (dao DAO) CollectSubDAOs() []*DAO {\n\tres := append([]*DAO{}, dao.children...)\n\tfor _, c := range dao.children {\n\t\tres = append(res, c.CollectSubDAOs()...)\n\t}\n\treturn res\n}\n\n// Members returns the members of the DAOs.\nfunc (dao DAO) Members() []Member {\n\treturn dao.members\n}\n\n// LockReason returns a string with the reason the DAO is locked.\nfunc (dao DAO) LockReason() string {\n\treturn dao.lockReason\n}\n\n// IsSuperCouncil checks if the DAO is a super council.\nfunc (dao DAO) IsSuperCouncil() bool {\n\treturn dao.isSuperCouncil\n}\n\n// IsLocked checks if the DAO is locked.\nfunc (dao DAO) IsLocked() bool {\n\treturn dao.isLocked\n}\n\n// Lock locks the DAO.\nfunc (dao *DAO) Lock(reason string) {\n\tdao.lockReason = reason\n\tdao.isLocked = true\n}\n\n// HasParent checks if a DAO is a parent of this DAO.\nfunc (dao DAO) HasParent(parent *DAO) bool {\n\tif parent == nil {\n\t\treturn false\n\t}\n\treturn strings.HasPrefix(dao.Path(), parent.Path())\n}\n\n// HasMember checks if a member is part of the DAO.\nfunc (dao DAO) HasMember(addr std.Address) bool {\n\tfor _, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddMember adds a member to the DAO.\n// Caller must check the member before adding to avoid duplications.\nfunc (dao *DAO) AddMember(m Member) {\n\tdao.members = append(dao.members, m)\n}\n\n// GetMember gets a member of the DAO.\nfunc (dao DAO) GetMember(addr std.Address) (Member, bool) {\n\tfor _, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\treturn m, true\n\t\t}\n\t}\n\treturn Member{}, false\n}\n\n// RemoveMember removes a member of the DAO.\nfunc (dao *DAO) RemoveMember(addr std.Address) bool {\n\tfor i, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\tdao.members = append(dao.members[:i], dao.members[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddSubDAO adds a sub DAO to the DAO.\nfunc (dao *DAO) AddSubDAO(sub *DAO) bool {\n\tif sub == nil {\n\t\treturn false\n\t}\n\n\tfor _, n := range dao.children {\n\t\tif n.name == sub.name {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tsub.parent = dao\n\tdao.children = append(dao.children, sub)\n\treturn true\n}\n\n// GetDAO get a DAO by path.\nfunc (dao *DAO) GetDAO(path string) *DAO {\n\tif path == \"\" {\n\t\treturn nil\n\t}\n\n\tif path == dao.name {\n\t\treturn dao\n\t}\n\n\t// Make sure that current node is not present at the beginning of the path\n\tpath = strings.TrimPrefix(path, dao.name+PathSeparator)\n\n\t// Split DAO path in child name and relative sub path\n\tparts := strings.SplitN(path, PathSeparator, 2)\n\tchildName := parts[0]\n\n\tfor _, sub := range dao.children {\n\t\tif sub.name != childName {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(parts) \u003e 1 {\n\t\t\t// Traverse node children when a sub node path is available\n\t\t\treturn sub.GetDAO(parts[1])\n\t\t}\n\t\treturn sub\n\t}\n\n\treturn nil\n}\n\n// RemoveSubDAO removes a sub DAO.\n// The sub DAO must be a first level children of the DAO.\nfunc (dao *DAO) RemoveSubDAO(name string) bool {\n\tfor i, sub := range dao.children {\n\t\tif sub.name == name {\n\t\t\tdao.children = append(dao.children[:i], dao.children[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsRoot checks if the DAO is the main DAO.\n// The main DAO is the root of the DAO tree.\nfunc (dao DAO) IsRoot() bool {\n\treturn dao.parent == nil\n}\n\n// ParseStringToMembers parses a string of member addresses and roles.\n// String should have one or more lines where each line should contain an\n// address optionally followed by one or more roles.\n// Example multi line string:\n//\n//\tg1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun roleA\n//\tg1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n//\tg1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5 roleB roleA\n//\n// Addresses are validated after being parsed.\n// Roles must be validated by the caller to make sure the names are valid.\nfunc ParseStringToMembers(s string) ([]Member, error) {\n\tvar members []Member\n\tfor _, line := range strings.Split(s, \"\\n\") {\n\t\tline = strings.TrimSpace(line)\n\t\tif line == \"\" {\n\t\t\t// Skip empty lines\n\t\t\tcontinue\n\t\t}\n\n\t\tvar (\n\t\t\troles []Role\n\t\t\tfields = strings.Fields(line)\n\t\t\taddr = std.Address(strings.TrimSpace(fields[0]))\n\t\t)\n\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, errors.New(\"invalid member address: \" + EscapeHTML(addr.String()))\n\t\t}\n\n\t\tfor _, v := range fields[1:] {\n\t\t\troles = appendRole(roles, strings.TrimSpace(v))\n\t\t}\n\n\t\tmembers = append(members, NewMember(addr, roles...))\n\t}\n\treturn members, nil\n}\n\n// MustParseStringToMembers parses a string of member addresses and roles.\n// String should have one or more lines where each line should contain an\n// address optionally followed by one or more roles.\n// Example multi line string:\n//\n//\tg1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun roleA\n//\tg1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n//\tg1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5 roleB roleA\n//\n// Addresses are validated after being parsed.\n// Roles must be validated by the caller to make sure the names are valid.\nfunc MustParseStringToMembers(s string) []Member {\n\tmembers, err := ParseStringToMembers(s)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn members\n}\n\n// appendRole append a role if it doesn't exists within the list of roles.\nfunc appendRole(roles []Role, name string) []Role {\n\tfor _, r := range roles {\n\t\tif string(r) == name {\n\t\t\treturn roles\n\t\t}\n\t}\n\treturn append(roles, Role(name))\n}\n"},{"name":"dao_test.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\troles []gnome.Role\n\t\toutput string\n\t}{\n\t\t{\n\t\t\tname: \"without roles\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\",\n\t\t},\n\t\t{\n\t\t\tname: \"with one role\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\troles: []gnome.Role{\"foo\"},\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 foo\",\n\t\t},\n\t\t{\n\t\t\tname: \"with two roles\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\troles: []gnome.Role{\"foo\", \"bar\"},\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 foo, bar\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tm := gnome.NewMember(tc.address, tc.roles...)\n\n\t\t\t// Assert\n\t\t\tif got := m.Address; got != tc.address {\n\t\t\t\tt.Fatalf(\"expected address %s, got: %s\", tc.address, got)\n\t\t\t}\n\n\t\t\tfor i, r := range m.Roles {\n\t\t\t\tif r != tc.roles[i] {\n\t\t\t\t\tt.Fatalf(\"expected role %s, got: %s\", tc.roles[i], r)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif got := m.String(); got != tc.output {\n\t\t\t\tt.Fatalf(\"expected member string output '%s', got: '%s'\", tc.output, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: Add test cases to check different DAO options\nfunc TestDAO(t *testing.T) {\n\t// Arrange\n\tname := \"test\"\n\ttitle := \"Test DAO\"\n\tmanifest := \"This is a test\"\n\taddresses := []std.Address{\n\t\ttestutils.TestAddress(\"member1\"),\n\t\ttestutils.TestAddress(\"member2\"),\n\t}\n\n\t// Act\n\tdao := gnome.MustNew(name, title, gnome.WithManifest(manifest), gnome.WithMembers(\n\t\tgnome.NewMember(addresses[0]),\n\t\tgnome.NewMember(addresses[1]),\n\t))\n\n\t// Assert\n\tif got := dao.Name(); got != name {\n\t\tt.Fatalf(\"expected name: %d, got: %d\", name, got)\n\t}\n\n\tif got := dao.CreatedAt(); got.IsZero() {\n\t\tt.Fatalf(\"expected a valid creation time, got: '%s'\", got.String())\n\t}\n\n\tif got := dao.Title(); got != title {\n\t\tt.Fatalf(\"expected title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := dao.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected manifest: '%s', got: '%s'\", manifest, got)\n\t}\n\n\tif got := dao.Parent(); got != nil {\n\t\tt.Fatalf(\"expected no parent DAO, got: '%s'\", got.Name())\n\t}\n\n\tif c := len(dao.SubDAOs()); c != 0 {\n\t\tt.Fatalf(\"expected no sub DAO nodes, got %d node(s)\", c)\n\t}\n\n\tif dao.IsSuperCouncil() {\n\t\tt.Fatal(\"expected DAO not to be a super council\")\n\t}\n\n\tif c := len(dao.Members()); c != len(addresses) {\n\t\tt.Fatalf(\"expected %d DAO members, got %d\", len(addresses), c)\n\t}\n\n\tfor _, addr := range addresses {\n\t\tif !dao.HasMember(addr) {\n\t\t\tt.Fatalf(\"expected member %s to be a member of DAO\", addr)\n\t\t}\n\n\t\tm, found := dao.GetMember(addr)\n\t\tif !found {\n\t\t\tt.Fatalf(\"expected member %s to be found\", addr)\n\t\t}\n\n\t\tif m.Address != addr {\n\t\t\tt.Fatalf(\"expected member to have address %s, got: %s\", addr, m.Address)\n\t\t}\n\t}\n}\n\nfunc TestDAOAddMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tmember gnome.Member\n\t\tmembersCount int\n\t\tshouldExist bool\n\t\tsetup func(*gnome.DAO)\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 1,\n\t\t\tshouldExist: true,\n\t\t},\n\t\t{\n\t\t\tname: \"existing\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 2,\n\t\t\tshouldExist: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member2\"))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 2,\n\t\t\tshouldExist: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member\"))\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := gnome.MustNew(\"test\", \"Test\")\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(dao)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tdao.AddMember(tc.member)\n\n\t\t\t// Assert\n\t\t\tif got := dao.HasMember(tc.member.Address); got != tc.shouldExist {\n\t\t\t\tt.Fatalf(\"expected has member call to return %v, got: %v\", tc.shouldExist, got)\n\t\t\t}\n\n\t\t\tm, found := dao.GetMember(tc.member.Address)\n\t\t\tif found != tc.shouldExist {\n\t\t\t\tt.Fatalf(\"expected member getter to return %v, got: %v\", tc.shouldExist, found)\n\t\t\t}\n\n\t\t\tif tc.shouldExist \u0026\u0026 m.Address != tc.member.Address {\n\t\t\t\tt.Fatalf(\"expected added member to have adderss %s, got: %s\", tc.member, m)\n\t\t\t}\n\n\t\t\tmembers := dao.Members()\n\t\t\tif c := len(members); c != tc.membersCount {\n\t\t\t\tt.Fatalf(\"expected %d member(s), got: %d\", tc.membersCount, c)\n\t\t\t}\n\n\t\t\tif len(members) \u003e 0 {\n\t\t\t\tm = members[len(members)-1]\n\t\t\t\tif m.Address != tc.member.Address {\n\t\t\t\t\tt.Fatalf(\"expected last added member address: %s, got: %s\", tc.member.Address, m.Address)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAORemoveMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tmember gnome.Member\n\t\tsetup func(*gnome.DAO)\n\t\tresult bool\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tresult: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member\"))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"missing\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := gnome.MustNew(\"test\", \"Test\")\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(dao)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tresult := dao.RemoveMember(tc.member.Address)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif dao.HasMember(tc.member.Address) {\n\t\t\t\tt.Fatal(\"member shouldn't exist\")\n\t\t\t}\n\n\t\t\tif _, found := dao.GetMember(tc.member.Address); found {\n\t\t\t\tt.Fatal(\"expected member getter to return false\")\n\t\t\t}\n\n\t\t\tif c := len(dao.Members()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected no DAO members, got: %d\", c)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAOAddSubDAO(t *testing.T) {\n\tcases := []struct {\n\t\tname, path string\n\t\tchildren int\n\t\tdao, subDAO *gnome.DAO\n\t\tresult bool\n\t\tsetup func(*gnome.DAO)\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"main\", \"Main\"),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t\tchildren: 1,\n\t\t\tpath: \"main/foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with children\",\n\t\t\tdao: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"bar\", \"Bar\")),\n\t\t\t),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t\tchildren: 2,\n\t\t\tpath: \"main/foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate\",\n\t\t\tdao: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tresult := tc.dao.AddSubDAO(tc.subDAO)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif result {\n\t\t\t\tif got := tc.subDAO.Path(); got != tc.path {\n\t\t\t\t\tt.Fatalf(\"expected path to be '%s', got: '%s'\", tc.path, got)\n\t\t\t\t}\n\n\t\t\t\tif c := len(tc.dao.SubDAOs()); c != tc.children {\n\t\t\t\t\tt.Fatalf(\"expected %d sub DAO node(s), got %d node(s)\", tc.children, c)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAORemoveSubDAO(t *testing.T) {\n\tcases := []struct {\n\t\tname, subName string\n\t\tchildren int\n\t\tsubDAO *gnome.DAO\n\t\tresult bool\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsubDAO: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t),\n\t\t\tsubName: \"foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with children\",\n\t\t\tsubDAO: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"bar\", \"Bar\")),\n\t\t\t),\n\t\t\tsubName: \"foo\",\n\t\t\tchildren: 1,\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"missing\",\n\t\t\tsubName: \"foo\",\n\t\t\tsubDAO: gnome.MustNew(\"main\", \"Main\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tresult := tc.subDAO.RemoveSubDAO(tc.subName)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif result {\n\t\t\t\tif c := len(tc.subDAO.SubDAOs()); c != tc.children {\n\t\t\t\t\tt.Fatalf(\"expected %d sub DAO node(s), got %d node(s)\", tc.children, c)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAOTree(t *testing.T) {\n\tdaoA1 := gnome.MustNew(\"a1\", \"A1\")\n\tdaoA2 := gnome.MustNew(\"a2\", \"A2\")\n\tdaoA := gnome.MustNew(\"a\", \"A\", gnome.WithSubDAO(daoA1), gnome.WithSubDAO(daoA2))\n\tdaoB1 := gnome.MustNew(\"b1\", \"B1\")\n\tdaoB := gnome.MustNew(\"b\", \"B\", gnome.WithSubDAO(daoB1))\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithSubDAO(daoA), gnome.WithSubDAO(daoB))\n\n\tcases := []struct {\n\t\tname, path string\n\t\tdao *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"root\",\n\t\t\tpath: \"main\",\n\t\t\tdao: dao,\n\t\t},\n\t\t{\n\t\t\tname: \"path a\",\n\t\t\tpath: \"main/a\",\n\t\t\tdao: daoA,\n\t\t},\n\t\t{\n\t\t\tname: \"path a1\",\n\t\t\tpath: \"main/a/a1\",\n\t\t\tdao: daoA1,\n\t\t},\n\t\t{\n\t\t\tname: \"path a2\",\n\t\t\tpath: \"main/a/a2\",\n\t\t\tdao: daoA2,\n\t\t},\n\t\t{\n\t\t\tname: \"path b\",\n\t\t\tpath: \"main/b\",\n\t\t\tdao: daoB,\n\t\t},\n\t\t{\n\t\t\tname: \"path b1\",\n\t\t\tpath: \"main/b/b1\",\n\t\t\tdao: daoB1,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid\",\n\t\t\tpath: \"foo\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid sub path\",\n\t\t\tpath: \"foo/bar\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tsubDAO := dao.GetDAO(tc.path)\n\n\t\t\t// Assert\n\t\t\tif subDAO != tc.dao {\n\t\t\t\tif subDAO == nil {\n\t\t\t\t\tt.Fatalf(\"DAO for path '%s' not found\", tc.path)\n\t\t\t\t} else {\n\t\t\t\t\tt.Fatalf(\"unexpected DAO for path '%s': '%s'\", tc.path, subDAO.Name())\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif subDAO != nil \u0026\u0026 subDAO.Path() != tc.path {\n\t\t\t\tt.Fatalf(\"expected DAO to return path '%s': got '%s'\", tc.path, subDAO.Path())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"id.gno","body":"package dao\n\nimport (\n\t\"encoding/binary\"\n\t\"strconv\"\n)\n\n// ID defines a generic ID type.\ntype ID uint64\n\n// String returns the value of the ID as a string.\nfunc (id ID) String() string {\n\treturn strconv.Itoa(int(id))\n}\n\n// Key returns the binary representation of the ID to be used as key for AVL trees.\nfunc (id ID) Key() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(id))\n\treturn string(buf)\n}\n\n// ConvertKeyToID converts a key to an ID.\n// Key is a binary representation of an ID.\nfunc ConvertKeyToID(key string) (ID, bool) {\n\tif len(key) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(key))), true\n}\n"},{"name":"marshal.gno","body":"package dao\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/json\"\n)\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\ntype PreMarshaler interface {\n\t// PreMarshal pre marshals a type into a JSON node.\n\tPreMarshal() *json.Node\n}\n\n// PreMarshalDAO pre-marshalls a DAO and its sub DAOs.\nfunc PreMarshalDAO(key string, dao *DAO) *json.Node {\n\tnode := json.ObjectNode(key, nil)\n\tnode.AppendObject(\"name\", json.StringNode(\"name\", dao.name))\n\tnode.AppendObject(\"title\", json.StringNode(\"title\", dao.title))\n\tnode.AppendObject(\"manifest\", json.StringNode(\"manifest\", dao.manifest))\n\tnode.AppendObject(\"isSuperCouncil\", json.BoolNode(\"isSuperCouncil\", dao.isSuperCouncil))\n\tnode.AppendObject(\"isLocked\", json.BoolNode(\"isLocked\", dao.isLocked))\n\tnode.AppendObject(\"lockReason\", json.StringNode(\"lockReason\", dao.lockReason))\n\tnode.AppendObject(\"members\", preMarshalMembers(\"members\", dao.members))\n\tnode.AppendObject(\"createdAt\", preMarshalTime(\"createdAt\", dao.createdAt))\n\n\tif dao.parent != nil {\n\t\tnode.AppendObject(\"parentName\", json.StringNode(\"parentName\", dao.parent.name))\n\t} else {\n\t\tnode.AppendObject(\"parentName\", json.NullNode(\"parentName\"))\n\t}\n\n\tvar children []*json.Node\n\tfor _, c := range dao.children {\n\t\tchildren = append(children, PreMarshalDAO(\"\", c))\n\t}\n\tnode.AppendObject(\"children\", json.ArrayNode(\"children\", children))\n\n\treturn node\n}\n\n// PreMarshalProposal pre-marshalls a proposal.\nfunc PreMarshalProposal(key string, p *Proposal) *json.Node {\n\tnode := json.ObjectNode(key, nil)\n\tnode.AppendObject(\"id\", json.StringNode(\"id\", p.id.String()))\n\tnode.AppendObject(\"title\", json.StringNode(\"title\", p.title))\n\tnode.AppendObject(\"description\", json.StringNode(\"description\", p.description))\n\tnode.AppendObject(\"proposer\", json.StringNode(\"proposer\", p.proposer.String()))\n\tnode.AppendObject(\"createdAt\", preMarshalTime(\"createdAt\", p.createdAt))\n\tnode.AppendObject(\"votingDeadline\", preMarshalTime(\"votingDeadline\", p.votingDeadline))\n\tnode.AppendObject(\"reviewDeadline\", preMarshalTime(\"reviewDeadline\", p.reviewDeadline))\n\tnode.AppendObject(\"voteChangeDuration\", preMarshalDuration(\"voteChangeDuration\", p.voteChangeDuration))\n\tnode.AppendObject(\"status\", json.StringNode(\"status\", strconv.Itoa(int(p.status))))\n\tnode.AppendObject(\"statusReason\", json.StringNode(\"statusReason\", p.statusReason))\n\tnode.AppendObject(\"strategy\", preMarshalStrategy(\"strategy\", p.strategy))\n\tnode.AppendObject(\"choice\", json.StringNode(\"choice\", string(p.choice)))\n\n\tvar daos []*json.Node\n\tfor _, dao := range p.daos {\n\t\tdaos = append(daos, json.StringNode(\"\", dao.name))\n\t}\n\tnode.AppendObject(\"daos\", json.ArrayNode(\"\", daos))\n\n\tvar records []*json.Node\n\tfor _, r := range p.votingRecords {\n\t\trecords = append(records, preMarshalVotingRecord(r))\n\t}\n\tnode.AppendObject(\"votingRecords\", json.ArrayNode(\"\", records))\n\n\treturn node\n}\n\nfunc preMarshalTime(key string, t time.Time) *json.Node {\n\tif t.IsZero() {\n\t\treturn json.NullNode(key)\n\t}\n\treturn json.StringNode(key, t.Format(time.RFC3339))\n}\n\nfunc preMarshalDuration(key string, d time.Duration) *json.Node {\n\treturn json.StringNode(key, strconv.FormatInt(int64(d), 10))\n}\n\nfunc preMarshalMembers(key string, members []Member) *json.Node {\n\tif members == nil {\n\t\treturn json.NullNode(key)\n\t}\n\n\tnodes := make([]*json.Node, len(members))\n\tfor i, m := range members {\n\t\tnodes[i] = json.ObjectNode(\"\", nil)\n\t\tnodes[i].AppendObject(\"address\", json.StringNode(\"address\", m.Address.String()))\n\n\t\tvar roles []*json.Node\n\t\tfor _, r := range m.Roles {\n\t\t\troles = append(roles, json.StringNode(\"\", string(r)))\n\t\t}\n\t\tnodes[i].AppendObject(\"roles\", json.ArrayNode(\"roles\", roles))\n\t}\n\treturn json.ArrayNode(key, nodes)\n}\n\nfunc preMarshalProposalGroups(key string, tree avl.Tree) *json.Node {\n\tnode := json.ObjectNode(key, nil)\n\ttree.Iterate(\"\", \"\", func(k string, value interface{}) bool {\n\t\t// Save proposal IDs instead of the pre marshalled proposal which is saved inside \"proposals\"\n\t\tvar proposals []*json.Node\n\t\tfor _, p := range value.([]*Proposal) {\n\t\t\tproposals = append(proposals, json.StringNode(\"\", p.id.String()))\n\t\t}\n\n\t\tdaoID, _ := ConvertKeyToID(k) // TODO: Error should not happen, handle it anyways\n\t\tnode.AppendObject(daoID.String(), json.ArrayNode(\"\", proposals))\n\t\treturn false\n\t})\n\treturn node\n}\n\nfunc preMarshalStrategy(key string, s ProposalStrategy) *json.Node {\n\tif m, ok := s.(PreMarshaler); ok {\n\t\treturn m.PreMarshal()\n\t}\n\treturn json.NullNode(key)\n}\n\nfunc preMarshalVotingRecord(r *VotingRecord) *json.Node {\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"votes\", preMarshalVotes(\"votes\", r.votes))\n\tnode.AppendObject(\"counter\", preMarshalVoteCounter(\"counter\", r.counter))\n\treturn node\n}\n\nfunc preMarshalVotes(key string, votes []Vote) *json.Node {\n\tnodes := make([]*json.Node, len(votes))\n\tfor i, v := range votes {\n\t\tn := json.ObjectNode(\"\", nil)\n\t\tn.AppendObject(\"address\", json.StringNode(\"address\", v.Address.String()))\n\t\tn.AppendObject(\"choice\", json.StringNode(\"choice\", string(v.Choice)))\n\t\tn.AppendObject(\"reason\", json.StringNode(\"reason\", v.Reason))\n\t\tn.AppendObject(\"createdAt\", preMarshalTime(\"createdAt\", v.CreatedAt))\n\n\t\tif v.DAO != nil {\n\t\t\tn.AppendObject(\"daoPath\", json.StringNode(\"daoPath\", v.DAO.Path()))\n\t\t} else {\n\t\t\tn.AppendObject(\"daoPath\", json.NullNode(\"daoPath\"))\n\t\t}\n\n\t\tnodes[i] = n\n\t}\n\treturn json.ArrayNode(key, nodes)\n}\n\nfunc preMarshalVoteCounter(key string, tree avl.Tree) *json.Node {\n\tnode := json.ObjectNode(key, nil)\n\ttree.Iterate(\"\", \"\", func(choice string, value interface{}) bool {\n\t\tnode.AppendObject(choice, json.NumberNode(\"\", float64(value.(uint))))\n\t\treturn false\n\t})\n\treturn node\n}\n"},{"name":"proposal.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tStatusReview ProposalStatus = iota\n\tStatusActive\n\tStatusPassed\n\tStatusRejected\n\tStatusWithdrawed\n\tStatusDismissed\n\tStatusFailed\n)\n\nconst (\n\t// TODO: Add more choices which also should be configurable (use a different type?)\n\tChoiceNone VoteChoice = \"\"\n\tChoiceYes VoteChoice = \"yes\"\n\tChoiceNo VoteChoice = \"no\"\n)\n\nconst (\n\tdefaultVoteChangeDuration = time.Hour\n\texecutionErrorMsg = \"proposal execution error\"\n)\n\nvar (\n\tErrAlreadyVoted = errors.New(\"member already voted on this proposal\")\n\tErrInvalidReason = errors.New(\"reason must have at least 5 characters\")\n\tErrInvalidVoteChoice = errors.New(\"invalid vote choice\")\n\tErrMemberVoteNotAllowed = errors.New(\"you must be a DAO or parent DAO member to vote\")\n\tErrProposalPromote = errors.New(\"proposals can only be promoted to a parent DAO\")\n\tErrProposalVotingDeadlineMet = errors.New(\"proposal voting deadline already met\")\n\tErrProposalNotActive = errors.New(\"proposal is not active\")\n\tErrProposalNotPassed = errors.New(`proposal status must be \"passed\"`)\n\tErrReasonRequired = errors.New(\"reason is required\")\n\tErrReviewStatusRequired = errors.New(`proposal status must be \"review\"`)\n)\n\ntype (\n\t// ExecutionError indicates that proposal execution failed.\n\tExecutionError struct {\n\t\t// Reason contains the error or error message with the reason of the error.\n\t\tReason interface{}\n\t}\n\n\t// ProposalIterFn defines the a callback to iterate proposals.\n\tProposalIterFn func(*Proposal) bool\n\n\t// ProposalOption configures proposals.\n\tProposalOption func(*Proposal)\n\n\t// ProposalStatus defines the type for proposal states.\n\tProposalStatus uint8\n\n\t// VoteChoice defines the type for proposal vote choices.\n\tVoteChoice string\n\n\t// Vote contains the information for a member vote.\n\tVote struct {\n\t\t// Address is the DAO member address.\n\t\tAddress std.Address\n\n\t\t// Choice is the proposal choice being voted.\n\t\tChoice VoteChoice\n\n\t\t// Reason contains the reason for the vote.\n\t\tReason string\n\n\t\t// DAO contains the DAO that the proposal being voted belongs to.\n\t\tDAO *DAO\n\n\t\t// CreatedAt contains the time when the vote was submitted.\n\t\tCreatedAt time.Time\n\t}\n)\n\n// Error returns the execution error message.\nfunc (e ExecutionError) Error() string {\n\tswitch v := e.Reason.(type) {\n\tcase string:\n\t\treturn executionErrorMsg + \": \" + v\n\tcase error:\n\t\treturn executionErrorMsg + \": \" + v.Error()\n\tdefault:\n\t\treturn executionErrorMsg\n\t}\n}\n\n// String returns the proposal status name.\nfunc (s ProposalStatus) String() string {\n\tswitch s {\n\tcase StatusReview:\n\t\treturn \"review\"\n\tcase StatusActive:\n\t\treturn \"active\"\n\tcase StatusPassed:\n\t\treturn \"passed\"\n\tcase StatusRejected:\n\t\treturn \"rejected\"\n\tcase StatusWithdrawed:\n\t\treturn \"withdrawed\"\n\tcase StatusDismissed:\n\t\treturn \"dismissed\"\n\tcase StatusFailed:\n\t\treturn \"failed\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// IsFinal checks if the status is a final status.\n// When a status is final it can't be changed to a different status.\n// Being final means that status signals the final outcome of a proposal.\nfunc (s ProposalStatus) IsFinal() bool {\n\tswitch s {\n\tcase StatusReview, StatusActive:\n\t\treturn false\n\tdefault:\n\t\treturn true\n\t}\n}\n\n// IsExecutionError checks if an error is an ExecutionError.\nfunc IsExecutionError(err error) bool {\n\tswitch err.(type) {\n\tcase ExecutionError:\n\t\treturn true\n\tcase *ExecutionError:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// WithDescription assigns a description to the proposal.\nfunc WithDescription(s string) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.description = s\n\t}\n}\n\n// WithVotingDeadline assigns a voting deadline to the proposal.\nfunc WithVotingDeadline(t time.Time) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.votingDeadline = t\n\t}\n}\n\n// WithReviewDeadline assigns a review deadline to the proposal.\n// Review status allows proposal withdraw within a time frame after the proposal is created.\n// Proposals must be activated when a review deadline is assigned.\nfunc WithReviewDeadline(t time.Time) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.reviewDeadline = t\n\t}\n}\n\n// WithVoteChangeDuration change the default grace period to change a submitted vote choice.\nfunc WithVoteChangeDuration(d time.Duration) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.voteChangeDuration = d\n\t}\n}\n\n// NewProposal creates a new proposal.\n// By default proposals use the standard strategy with a deadline of seven days.\nfunc NewProposal(\n\tid ID,\n\tstrategy ProposalStrategy,\n\tproposer std.Address,\n\tdao *DAO,\n\ttitle string,\n\toptions ...ProposalOption,\n) (*Proposal, error) {\n\tif dao == nil {\n\t\treturn nil, errors.New(\"proposal DAO is required\")\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\treturn nil, errors.New(\"proposal title is required\")\n\t}\n\n\tnow := time.Now()\n\tp := \u0026Proposal{\n\t\tid: id,\n\t\tproposer: proposer,\n\t\ttitle: title,\n\t\tvotingDeadline: now.Add(strategy.VotingPeriod()),\n\t\tvoteChangeDuration: defaultVoteChangeDuration,\n\t\tstrategy: strategy,\n\t\tdaos: []*DAO{dao},\n\t\tvotingRecords: []*VotingRecord{NewVotingRecord()},\n\t\tcreatedAt: now,\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(p)\n\t}\n\n\t// Create the proposal as active when a review deadline is not assigned\n\tif p.reviewDeadline.IsZero() {\n\t\tp.status = StatusActive\n\t}\n\n\treturn p, nil\n}\n\n// Proposal defines a DAO proposal.\ntype Proposal struct {\n\tid ID\n\ttitle string\n\tdescription string\n\tproposer std.Address\n\tcreatedAt time.Time\n\tvotingDeadline time.Time\n\treviewDeadline time.Time\n\tvoteChangeDuration time.Duration\n\tstatus ProposalStatus\n\tstrategy ProposalStrategy\n\tdaos []*DAO\n\tvotingRecords []*VotingRecord\n\tchoice VoteChoice\n\tstatusReason string\n}\n\n// ID returns the proposal ID.\nfunc (p Proposal) ID() ID {\n\treturn p.id\n}\n\n// DAO returns the DAO that the proposal is assigned to.\n// If proposal has been promoted the returned DAO is the one where proposal has been promoted to.\nfunc (p Proposal) DAO() *DAO {\n\tcount := len(p.daos)\n\tif count == 0 {\n\t\tpanic(\"proposal is not assigned to a DAO\")\n\t}\n\treturn p.daos[count-1]\n}\n\n// InitialDAO returns the the DAO that was assigned during proposal creation.\nfunc (p Proposal) InitialDAO() *DAO {\n\tif len(p.daos) \u003e 0 {\n\t\treturn p.daos[0]\n\t}\n\treturn nil\n}\n\n// Strategy returns the strategy of the proposal.\nfunc (p Proposal) Strategy() ProposalStrategy {\n\treturn p.strategy\n}\n\n// Title returns the title of the proposal.\nfunc (p Proposal) Title() string {\n\treturn p.title\n}\n\n// Description returns the description of the proposal.\nfunc (p Proposal) Description() string {\n\treturn p.description\n}\n\n// StatusReason returns the reason that triggered the current proposal status.\n// Reason is relevant for some statuses like dismissed or failed.\nfunc (p Proposal) StatusReason() string {\n\treturn p.statusReason\n}\n\n// Proposer returns the address of the member that created the proposal.\nfunc (p Proposal) Proposer() std.Address {\n\treturn p.proposer\n}\n\n// Choice returns the winner choice.\nfunc (p Proposal) Choice() VoteChoice {\n\treturn p.choice\n}\n\n// CreatedAt returns the creation time of the proposal.\nfunc (p Proposal) CreatedAt() time.Time {\n\treturn p.createdAt\n}\n\n// Promotions returns the list of DAOs where the proposal has been promoted.\n// The result is nil when the proposal has never been promoted to another DAO.\nfunc (p Proposal) Promotions() []*DAO {\n\tif p.HasBeenPromoted() {\n\t\treturn p.daos\n\t}\n\treturn nil\n}\n\n// VotingDeadline returns the voting deadline for the proposal.\n// No more votes are allowed after this deadline.\nfunc (p Proposal) VotingDeadline() time.Time {\n\treturn p.votingDeadline\n}\n\n// ReviewDeadline returns the deadline for proposal review.\nfunc (p Proposal) ReviewDeadline() time.Time {\n\treturn p.reviewDeadline\n}\n\n// VoteChangeDuration returns the duration after voting where users can change the voted choice.\nfunc (p Proposal) VoteChangeDuration() time.Duration {\n\treturn p.voteChangeDuration\n}\n\n// Status returns the status of the proposal.\nfunc (p Proposal) Status() ProposalStatus {\n\treturn p.status\n}\n\n// Votes returns the proposal votes.\nfunc (p Proposal) Votes() []Vote {\n\treturn p.VotingRecord().Votes()\n}\n\n// VotingRecord returns the voting record of the proposal for the current DAO.\n// The record contains the number of votes for each voting choice.\nfunc (p Proposal) VotingRecord() *VotingRecord {\n\tcount := len(p.votingRecords)\n\tif count == 0 {\n\t\tpanic(\"proposal is not voting records\")\n\t}\n\treturn p.votingRecords[count-1]\n}\n\n// VotingRecords returns all voting records of the proposal.\n// Each record contains the number of votes for each DAO that the proposal was promoted to.\nfunc (p Proposal) VotingRecords() []*VotingRecord {\n\treturn p.votingRecords\n}\n\n// IsExecutable checks if the proposal is executable.\nfunc (p Proposal) IsExecutable() bool {\n\t_, ok := p.strategy.(Executer)\n\treturn ok\n}\n\n// IsChoiceAllowed checks if a vote choice is valid for the proposal.\nfunc (p Proposal) IsChoiceAllowed(choice VoteChoice) bool {\n\tfor _, c := range p.strategy.VoteChoices() {\n\t\tif c == choice {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// HasVotingDeadlinePassed checks if the voting deadline for the proposal has passed.\nfunc (p Proposal) HasVotingDeadlinePassed() bool {\n\treturn time.Now().After(p.votingDeadline)\n}\n\n// HasReviewDeadlinePassed checks if the deadline for proposal review has passed.\nfunc (p Proposal) HasReviewDeadlinePassed() bool {\n\treturn time.Now().After(p.reviewDeadline)\n}\n\n// HasBeenPromoted checks if the proposal has been promoted to another DAO.\nfunc (p Proposal) HasBeenPromoted() bool {\n\treturn len(p.daos) \u003e 1\n}\n\n// HasPromotion checks if proposal has been promoted to a DAO.\nfunc (p Proposal) HasPromotion(daoPath string) bool {\n\tfor _, dao := range p.Promotions() {\n\t\tif dao.Path() == daoPath {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// GetVotingRecordByName returns the voting record for a DAO.\nfunc (p Proposal) GetVotingRecordByName(daoPath string) *VotingRecord {\n\tfor i, dao := range p.daos {\n\t\tif dao.Path() == daoPath {\n\t\t\t// Voting record index must match the DAO promotions index\n\t\t\treturn p.votingRecords[i]\n\t\t}\n\t}\n\treturn nil\n}\n\n// Withdraw changes the status of the proposal to withdrawed.\n// Proposal must have status \"review\" to be withdrawed.\nfunc (p *Proposal) Withdraw() error {\n\tif p.status != StatusReview {\n\t\treturn ErrReviewStatusRequired\n\t}\n\n\tp.status = StatusWithdrawed\n\treturn nil\n}\n\n// Dismiss dismisses a proposal.\nfunc (p *Proposal) Dismiss(reason string) error {\n\treason = strings.TrimSpace(reason)\n\tif reason == \"\" {\n\t\treturn ErrReasonRequired\n\t}\n\n\tp.statusReason = reason\n\tp.status = StatusDismissed\n\treturn nil\n}\n\n// Fail changes the proposal status to failed.\nfunc (p *Proposal) Fail(reason string) error {\n\treason = strings.TrimSpace(reason)\n\tif reason == \"\" {\n\t\treturn ErrReasonRequired\n\t}\n\n\tp.statusReason = reason\n\tp.status = StatusFailed\n\treturn nil\n}\n\n// Activate changes the status of the proposal to active.\n// Proposal must have status \"review\" to be activated.\nfunc (p *Proposal) Activate() error {\n\tif p.status != StatusReview {\n\t\treturn ErrReviewStatusRequired\n\t}\n\n\tp.status = StatusActive\n\treturn nil\n}\n\n// Promote promotes the proposal to a parent DAO.\n// Promoting extends the voting deadline by the voting period defined for the proposal\n// strategy and also creates a new voting record for the parent DAO members.\nfunc (p *Proposal) Promote(dao *DAO) error {\n\tif !p.DAO().HasParent(dao) {\n\t\treturn ErrProposalPromote\n\t}\n\n\tp.daos = append(p.daos, dao)\n\tp.votingRecords = append(p.votingRecords, NewVotingRecord())\n\tp.votingDeadline = time.Now().Add(p.strategy.VotingPeriod())\n\treturn nil\n}\n\n// Vote submits a vote for the proposal.\nfunc (p *Proposal) Vote(addr std.Address, choice VoteChoice, reason string) error {\n\tif p.status != StatusActive {\n\t\treturn ErrProposalNotActive\n\t}\n\n\tnow := time.Now()\n\tif p.votingDeadline.Before(now) {\n\t\treturn ErrProposalVotingDeadlineMet\n\t}\n\n\tif !p.IsChoiceAllowed(choice) {\n\t\treturn ErrInvalidVoteChoice\n\t}\n\n\tif reason != \"\" {\n\t\treason = strings.TrimSpace(reason)\n\t\tif len(reason) \u003c 5 {\n\t\t\treturn ErrInvalidReason\n\t\t}\n\t}\n\n\t// When there is a vote for the account check if it's voting within the\n\t// grace period that allows changing the voted choice. This allows to\n\t// correct mistakes made when seding the vote TX within a small time frame.\n\t// TODO: Add a unit test case to check vote change\n\trecord := p.VotingRecord()\n\tfor _, v := range record.Votes() {\n\t\tif v.Address == addr {\n\t\t\tif v.CreatedAt.Add(p.voteChangeDuration).Before(now) {\n\t\t\t\treturn ErrAlreadyVoted\n\t\t\t}\n\n\t\t\trecord.Remove(addr)\n\t\t}\n\t}\n\n\t// Check the vote being submitted if vote check is required\n\tif c, ok := p.strategy.(VoteChecker); ok {\n\t\tif err := c.CheckVote(addr, choice, reason); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Account must be a member of the proposal's DAO or any of its parents to be allowed to vote\n\tvar dao *DAO\n\tif p.DAO().HasMember(addr) {\n\t\t// When the account is member of the proposal's DAO its vote is accounted\n\t\t// as a vote from this DAO even if its also member of a parent DAO.\n\t\tdao = p.DAO()\n\t} else {\n\t\t// Try to find the higher order DAO that the account is member of\n\t\tdao = findBelongingDAO(addr, p.DAO().Parent())\n\t}\n\n\tif dao == nil {\n\t\treturn ErrMemberVoteNotAllowed\n\t}\n\n\trecord.Add(Vote{\n\t\tAddress: addr,\n\t\tChoice: choice,\n\t\tReason: reason,\n\t\tDAO: dao,\n\t\tCreatedAt: time.Now(),\n\t})\n\n\treturn nil\n}\n\n// Tally counts the number of votes and updates the proposal status accordingly.\n// The outcome of counting the votes depends on the proposal strategy.\n// This function does NOT check the voting deadline, it's responsibility of the caller to do so.\nfunc (p *Proposal) Tally() error {\n\tif p.status != StatusActive {\n\t\treturn ErrProposalNotActive\n\t}\n\n\t// Check if the required quorum is met\n\trecord := p.VotingRecord()\n\tpercentage := float64(record.VoteCount()) / float64(len(p.DAO().Members()))\n\tif percentage \u003c p.strategy.Quorum() {\n\t\tp.status = StatusRejected\n\t\tp.statusReason = \"low participation\"\n\t\treturn nil\n\t}\n\n\t// Tally votes and update proposal with the outcome\n\tchoice := p.strategy.Tally(p.DAO(), *record)\n\n\tswitch choice {\n\tcase ChoiceYes:\n\t\tp.choice = ChoiceYes\n\t\tp.status = StatusPassed\n\tcase ChoiceNo:\n\t\tp.choice = ChoiceNo\n\t\tp.status = StatusRejected\n\tdefault:\n\t\tp.status = StatusRejected\n\t}\n\treturn nil\n}\n\nfunc (p *Proposal) Validate() error {\n\tif v, ok := p.strategy.(Validator); ok {\n\t\tif err := v.Validate(p); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Execute executes the proposal.\nfunc (p *Proposal) Execute() error { // TODO: Write test for proposal execute\n\tif p.status != StatusPassed {\n\t\treturn ErrProposalNotPassed\n\t}\n\n\tif e, ok := p.strategy.(Executer); ok {\n\t\tif err := p.Validate(); err != nil {\n\t\t\treturn ExecutionError{err}\n\t\t}\n\n\t\tif err := e.Execute(p.InitialDAO()); err != nil {\n\t\t\treturn ExecutionError{err}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc findBelongingDAO(addr std.Address, node *DAO) *DAO {\n\tif node == nil {\n\t\treturn nil\n\t}\n\n\t// Before checking the current DAO try to find\n\t// if address is a member of a higher order DAO\n\tdao := findBelongingDAO(addr, node.parent)\n\tif dao == nil \u0026\u0026 node.HasMember(addr) {\n\t\treturn node\n\t}\n\treturn nil\n}\n"},{"name":"proposal_test.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nvar (\n\tfutureTime = time.Now().Add(time.Hour)\n\tzeroTime = time.Time{}\n)\n\n// TODO: Improve proposal unit test using test cases and adding missing methods\nfunc TestProposal(t *testing.T) {\n\tcases := []struct {\n\t\tname, title, description string\n\t\tdao *gnome.DAO\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"test\", \"Test\"),\n\t\t\ttitle: \"Proposal\",\n\t\t\tdescription: \"Test proposal\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty DAO\",\n\t\t\terr: errors.New(\"proposal DAO is required\"),\n\t\t},\n\t\t{\n\t\t\tname: \"empty title\",\n\t\t\tdao: gnome.MustNew(\"test\", \"Test\"),\n\t\t\terr: errors.New(\"proposal title is required\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tid := gnome.ID(1)\n\t\t\tproposer := testutils.TestAddress(\"proposer\")\n\t\t\tstrategy := testStrategy{}\n\t\t\tstatus := gnome.StatusActive\n\t\t\topts := []gnome.ProposalOption{\n\t\t\t\tgnome.WithDescription(tc.description),\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tproposal, err := gnome.NewProposal(id, strategy, proposer, tc.dao, tc.title, opts...)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.ID(); got != id {\n\t\t\t\tt.Fatalf(\"expected ID: %d, got: %d\", id, got)\n\t\t\t}\n\n\t\t\tif got := proposal.DAO(); got.Name() != tc.dao.Name() {\n\t\t\t\tt.Fatalf(\"expected DAO: '%s', got: '%s'\", tc.dao.Name(), got.Name())\n\t\t\t}\n\n\t\t\tif got := proposal.Title(); got != tc.title {\n\t\t\t\tt.Fatalf(\"expected title: '%s', got: '%s'\", tc.title, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Description(); got != tc.description {\n\t\t\t\tt.Fatalf(\"expected description: '%s', got: '%s'\", tc.description, got)\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != \"\" {\n\t\t\t\tt.Fatalf(\"expected empty dismiss reason, got: '%s'\", got)\n\t\t\t}\n\n\t\t\tif got := proposal.Proposer(); got != proposer {\n\t\t\t\tt.Fatalf(\"expected proposer: '%s', got: '%s'\", proposer, got)\n\t\t\t}\n\n\t\t\tif got := proposal.CreatedAt(); got.IsZero() {\n\t\t\t\tt.Fatalf(\"expected a valid creation time, got: '%s'\", got.String())\n\t\t\t}\n\n\t\t\tif c := len(proposal.Promotions()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected an empty list of promotions, got: %d DAOs\", c)\n\t\t\t}\n\n\t\t\tif got := proposal.VotingDeadline(); got.IsZero() {\n\t\t\t\tt.Fatalf(\"expected a valid deadline time, got: '%s'\", got.String())\n\t\t\t}\n\n\t\t\tnow := time.Now()\n\t\t\tif got := proposal.VotingDeadline(); got.Before(now) { // TODO: Using after makes assertion fail (?)\n\t\t\t\tt.Fatalf(\"expected deadline to happen after: '%s', got: '%s'\", now.String(), got.String())\n\t\t\t}\n\n\t\t\tif got := proposal.Status(); got != status {\n\t\t\t\tt.Fatalf(\"expected status: %d, got: %d\", status, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Strategy().Name(); got != strategy.Name() {\n\t\t\t\tt.Fatalf(\"expected strategy: '%s', got: '%s'\", strategy.Name(), got)\n\t\t\t}\n\n\t\t\tif got := proposal.Strategy().Name(); got != strategy.Name() {\n\t\t\t\tt.Fatalf(\"expected strategy: '%s', got: '%s'\", strategy.Name(), got)\n\t\t\t}\n\n\t\t\tif c := len(proposal.Votes()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected no votes, got: %d votes\", c)\n\t\t\t}\n\n\t\t\tif c := proposal.VotingRecord().VoteCount(); c != 0 {\n\t\t\t\tt.Fatalf(\"expected an empty votes record, got: %d records\", c)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalWithdraw(t *testing.T) {\n\t// TODO: Test success cases where proposal status is review\n\twantErr := gnome.ErrReviewStatusRequired\n\twantStatus := gnome.StatusWithdrawed\n\tproposal := mustCreateProposal(t, testStrategy{}, gnome.WithReviewDeadline(futureTime))\n\n\tif err := proposal.Withdraw(); err != nil {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", err.Error())\n\t}\n\n\tif err := proposal.Withdraw(); err != wantErr {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", wantErr.Error(), err.Error())\n\t}\n\n\tif got := proposal.Status(); got != wantStatus {\n\t\tt.Fatalf(\"expected status: %d, got: %d\", wantStatus, got)\n\t}\n}\n\nfunc TestProposalDismiss(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason string\n\t\tstatus gnome.ProposalStatus\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Foo\",\n\t\t\tstatus: gnome.StatusDismissed,\n\t\t},\n\t\t{\n\t\t\tname: \"empty reason\",\n\t\t\terr: gnome.ErrReasonRequired,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{})\n\n\t\t\t// Act\n\t\t\terr := proposal.Dismiss(tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %s, got: %s\", tc.status.String(), got.String())\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected dismiss reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalActivate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tstatus gnome.ProposalStatus\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tstatus: gnome.StatusActive,\n\t\t},\n\t\t{\n\t\t\tname: \"review status required\",\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tp.Activate()\n\t\t\t},\n\t\t\terr: gnome.ErrReviewStatusRequired,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{}, gnome.WithReviewDeadline(futureTime))\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Activate()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %s, got: %s\", tc.status.String(), got.String())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalPromote(t *testing.T) {\n\tstrategy := testStrategy{}\n\taddr := testutils.TestAddress(\"proposer\")\n\tcases := []struct {\n\t\tname string\n\t\tdaoNames []string\n\t\tsetup func() (*gnome.Proposal, *gnome.DAO)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"promote to parent\",\n\t\t\tdaoNames: []string{\"child\", \"parent\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tparent := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, parent\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"promote to root\",\n\t\t\tdaoNames: []string{\"child\", \"root\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\troot := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child)),\n\t\t\t\t))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, root\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"promote to non parent\",\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, gnome.MustNew(\"foo\", \"Foo\")\n\t\t\t},\n\t\t\terr: gnome.ErrProposalPromote,\n\t\t},\n\t\t{\n\t\t\tname: \"promote with one promotion\",\n\t\t\tdaoNames: []string{\"child\", \"parent\", \"root\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tparent := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\troot := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(parent))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\tp.Promote(parent)\n\t\t\t\treturn p, root\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tp, dao := tc.setup()\n\n\t\t\tdeadline := time.Now().Add(-time.Hour * 24)\n\t\t\tp.votingDeadline = deadline // Change deadline to check that its resetted on promote\n\n\t\t\tp.VotingRecord().Add(gnome.Vote{}) // Add a single dummy vote for the current DAO\n\n\t\t\t// Act\n\t\t\terr := p.Promote(dao)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !p.HasBeenPromoted() {\n\t\t\t\tt.Fatal(\"expected proposal to be promotedt\")\n\t\t\t}\n\n\t\t\tif !p.HasPromotion(dao.Path()) {\n\t\t\t\tt.Fatal(\"expected proposal promotions to include the DAO\")\n\t\t\t}\n\n\t\t\tif got := p.VotingDeadline(); !got.After(deadline) {\n\t\t\t\tt.Fatalf(\"expected voting deadline to be greater than original deadline: %d, got: %d\", deadline.Unix(), got.Unix())\n\t\t\t}\n\n\t\t\tif p.VotingRecord().VoteCount() != 0 {\n\t\t\t\tt.Fatal(\"expected the voting record to be empty\")\n\t\t\t}\n\n\t\t\tpromotions := p.Promotions()\n\t\t\tif c := len(promotions); c != len(tc.daoNames) {\n\t\t\t\tt.Fatalf(\"expected promotions count: %d, got: %d DAOs\", len(tc.daoNames), c)\n\t\t\t}\n\n\t\t\tfor i, dao := range promotions {\n\t\t\t\tif got := dao.Name(); tc.daoNames[i] != got {\n\t\t\t\t\tt.Fatalf(\"expected DAO name: '%s', got: '%s'\", tc.daoNames[i], got)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalVote(t *testing.T) {\n\tmemberAddr := testutils.TestAddress(\"member\")\n\tsetupDAOMember := func(p *gnome.Proposal) {\n\t\tp.DAO().AddMember(gnome.NewMember(memberAddr))\n\t}\n\n\tcases := []struct {\n\t\tname, reason string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tvoteCount int\n\t\toptions []gnome.ProposalOption\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tvoteCount: 1,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal not active\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithReviewDeadline(futureTime),\n\t\t\t},\n\t\t\terr: gnome.ErrProposalNotActive,\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tsetupDAOMember(p)\n\t\t\t\tp.Withdraw()\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"vote with invalid reason\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"1234\",\n\t\t\terr: gnome.ErrInvalidReason,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"already voted\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tvoteCount: 1,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithVoteChangeDuration(-1),\n\t\t\t},\n\t\t\terr: gnome.ErrAlreadyVoted,\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tsetupDAOMember(p)\n\t\t\t\tp.Vote(memberAddr, gnome.ChoiceYes, \"\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"vote after proposal deadline\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithVotingDeadline(zeroTime),\n\t\t\t},\n\t\t\terr: gnome.ErrProposalVotingDeadlineMet,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote not allowed\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\terr: gnome.ErrMemberVoteNotAllowed,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{}, tc.options...)\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Vote(tc.address, tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\n\t\t\tvotes := proposal.Votes()\n\t\t\tvoteCount := len(votes)\n\t\t\tif voteCount != tc.voteCount {\n\t\t\t\tt.Fatalf(\"expected %d vote(s), got: %d\", tc.voteCount, voteCount)\n\t\t\t}\n\n\t\t\tif voteCount \u003e 0 {\n\t\t\t\tif got := votes[0].Address; got != tc.address {\n\t\t\t\t\tt.Fatalf(\"expected vote address: '%s', got: '%s'\", tc.address, got)\n\t\t\t\t}\n\n\t\t\t\tif got := votes[0].Choice; got != tc.choice {\n\t\t\t\t\tt.Fatalf(\"expected vote choice: '%s', got: '%s'\", tc.choice, got)\n\t\t\t\t}\n\n\t\t\t\tif got := votes[0].Reason; got != tc.reason {\n\t\t\t\t\tt.Fatalf(\"expected vote reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalTally(t *testing.T) {\n\taddresses := [3]std.Address{\n\t\ttestutils.TestAddress(\"member1\"),\n\t\ttestutils.TestAddress(\"member2\"),\n\t\ttestutils.TestAddress(\"member3\"),\n\t}\n\tsetupDAOMembers := func(p *gnome.Proposal) {\n\t\tdao := p.DAO()\n\t\tfor _, addr := range addresses {\n\t\t\tdao.AddMember(gnome.NewMember(addr))\n\t\t}\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t\tstrategy gnome.ProposalStrategy\n\t\tstatus gnome.ProposalStatus\n\t\tstatusReason string\n\t\tvotingDeadlinePassed bool\n\t\toptions []gnome.ProposalOption\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"proposal pass\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t\t{Address: addresses[1], Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tstrategy: testStrategy{gnome.ChoiceYes},\n\t\t\tstatus: gnome.StatusPassed,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal rejected\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t\t{Address: addresses[1], Choice: gnome.ChoiceNo},\n\t\t\t\t{Address: addresses[2], Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\tstrategy: testStrategy{gnome.ChoiceNo},\n\t\t\tstatus: gnome.StatusRejected,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tstrategy: testStrategy{},\n\t\t\tstatus: gnome.StatusRejected,\n\t\t\tstatusReason: \"low participation\",\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal not active\",\n\t\t\tstatus: gnome.StatusWithdrawed,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithReviewDeadline(futureTime)},\n\t\t\tstrategy: testStrategy{},\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tp.Withdraw()\n\t\t\t},\n\t\t\terr: gnome.ErrProposalNotActive,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, tc.strategy, tc.options...)\n\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\t// Add votes directly to the record because deadline might be expired for some test cases\n\t\t\t\tproposal.VotingRecord().Add(v)\n\t\t\t}\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Tally()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %d, got: %d\", tc.status, got)\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != tc.statusReason {\n\t\t\t\tt.Fatalf(\"expected status reason: '%s', got: '%s'\", tc.statusReason, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Choice(); got != tc.choice {\n\t\t\t\tt.Fatalf(\"expected winner choice: '%s', got: '%s'\", tc.choice, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mustCreateProposal(t *testing.T, s gnome.ProposalStrategy, options ...gnome.ProposalOption) *gnome.Proposal {\n\tt.Helper()\n\n\tdao := gnome.MustNew(\"test\", \"Test\")\n\taddr := testutils.TestAddress(\"proposer\")\n\tproposal, err := gnome.NewProposal(1, s, addr, dao, \"Title\", options...)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\treturn proposal\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n\ntype testStrategy struct {\n\tChoice gnome.VoteChoice\n}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return s.Choice }\n\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n"},{"name":"record.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// VotingRecordIterFn defines the a callback to iterate voting choices.\ntype VotingRecordIterFn func(_ VoteChoice, voteCount uint) bool\n\n// NewVotingRecord creates a new voting record.\nfunc NewVotingRecord() *VotingRecord {\n\treturn \u0026VotingRecord{}\n}\n\n// VotingRecord mamages votes and vote count.\ntype VotingRecord struct {\n\tvotes []Vote\n\tcounter avl.Tree // VoteChoice -\u003e count (uint)\n}\n\n// Votes return the list of votes.\nfunc (r VotingRecord) Votes() []Vote {\n\treturn r.votes\n}\n\n// VoteCount returns the number of votes.\nfunc (r VotingRecord) VoteCount() int {\n\treturn len(r.votes)\n}\n\n// Get returns the number of votes for vote choice.\nfunc (r VotingRecord) Get(c VoteChoice) uint {\n\tkey := string(c)\n\tif v, ok := r.counter.Get(key); ok {\n\t\treturn v.(uint)\n\t}\n\treturn 0\n}\n\n// Add adds a vote to the record.\nfunc (r *VotingRecord) Add(v Vote) {\n\tr.votes = append(r.votes, v)\n\tkey := string(v.Choice)\n\tr.counter.Set(key, r.Get(v.Choice)+1)\n}\n\n// Remove removes a vote from the record.\nfunc (r *VotingRecord) Remove(addr std.Address) bool {\n\tfor i, v := range r.votes {\n\t\tif v.Address == addr {\n\t\t\tr.votes = append(r.votes[:i], r.votes[i+1:]...)\n\t\t\tkey := string(v.Choice)\n\t\t\tr.counter.Set(key, r.Get(v.Choice)-1)\n\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Iterate iterates all vote choices.\nfunc (r VotingRecord) Iterate(fn VotingRecordIterFn) bool {\n\treturn r.counter.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tchoice := VoteChoice(key)\n\t\treturn fn(choice, value.(uint))\n\t})\n}\n\n// SelectChoiceByMajority select the vote choice by majority.\n// Vote choice is a majority when chosen by more than half of the votes.\n// Majority type is defined by the caller depending on the vote records and abstentions, it would be\n// absolute majority if abstentions are considered, otherwise it would be considered simple majority.\nfunc SelectChoiceByMajority(r VotingRecord, abstentions int) (VoteChoice, bool) {\n\tvotesCount := r.VoteCount() + abstentions\n\tchoice := getMajorityChoice(r)\n\tisMajority := r.Get(choice) \u003e uint(votesCount/2)\n\treturn choice, isMajority\n}\n\n// SelectChoiceBySuperMajority select the vote choice by super majority using a 2/3s threshold.\n// Abstentions are not considered when calculating the super majority choice.\nfunc SelectChoiceBySuperMajority(r VotingRecord) (VoteChoice, bool) {\n\tchoice := getMajorityChoice(r)\n\tisMajority := r.Get(choice) \u003e uint((2*r.VoteCount())/3) // TODO: Allow threshold customization\n\treturn choice, isMajority\n}\n\n// SelectChoiceByPlurality selects the vote choice by plurality.\n// The choice will be considered a majority if it has votes and if there is no other\n// choice with the same number of votes. A tie won't be considered majority.\nfunc SelectChoiceByPlurality(r VotingRecord) (VoteChoice, bool) {\n\tvar (\n\t\tchoice VoteChoice\n\t\tcurrentCount uint\n\t\tisMajority bool\n\t)\n\n\tr.Iterate(func(c VoteChoice, count uint) bool {\n\t\tif currentCount \u003c count {\n\t\t\tchoice = c\n\t\t\tcurrentCount = count\n\t\t\tisMajority = true\n\t\t} else if currentCount == count {\n\t\t\tisMajority = false\n\t\t}\n\t\treturn false\n\t})\n\treturn choice, isMajority\n}\n\n// getMajorityChoice returns the choice voted by the majority.\n// The result is only valid when there is a majority.\n// Caller must validate that the returned choice represents a majority.\nfunc getMajorityChoice(r VotingRecord) VoteChoice {\n\tvar (\n\t\tchoice VoteChoice\n\t\tcurrentCount uint\n\t)\n\n\tr.Iterate(func(c VoteChoice, count uint) bool {\n\t\tif currentCount \u003c count {\n\t\t\tchoice = c\n\t\t\tcurrentCount = count\n\t\t}\n\t\treturn false\n\t})\n\n\treturn choice\n}\n"},{"name":"record_test.gno","body":"package dao\n\nimport (\n\t\"testing\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestVotingRecord(t *testing.T) {\n\t// Act\n\trecord := NewVotingRecord()\n\n\t// Assert\n\tif got := record.Votes(); got != nil {\n\t\tt.Fatalf(\"expected no votes, got: %d\", len(got))\n\t}\n\n\tif got := record.VoteCount(); got != 0 {\n\t\tt.Fatalf(\"expected no vote count: 0, got: %d\", got)\n\t}\n}\n\nfunc TestVotingRecordAdd(t *testing.T) {\n\t// Arrange\n\trecord := NewVotingRecord()\n\tvote := gnome.Vote{Choice: gnome.ChoiceYes}\n\n\t// Act\n\trecord.Add(vote)\n\n\t// Assert\n\tvotes := record.Votes()\n\tif c := len(votes); c != 1 {\n\t\tt.Fatalf(\"expected one votes, got: %d\", c)\n\t}\n\n\tif got := votes[0]; got != vote {\n\t\tt.Fatalf(\"expected vote: %v, got: %v\", vote, got)\n\t}\n\n\tif got := record.VoteCount(); got != 1 {\n\t\tt.Fatalf(\"expected vote count: %d, got: %d\", 1, got)\n\t}\n\n\tif got := record.Get(vote.Choice); got != 1 {\n\t\tt.Fatalf(\"expected record to get one '%v' count, got: %d\", gnome.ChoiceYes, got)\n\t}\n\n\trecord.Iterate(func(v gnome.VoteChoice, count uint) bool {\n\t\tif v != gnome.ChoiceYes {\n\t\t\tt.Fatalf(\"expected iterate choice: %v, got: %v\", gnome.ChoiceYes, v)\n\t\t}\n\n\t\tif count != 1 {\n\t\t\tt.Fatalf(\"expected iterate vote count: %d, got: %d\", 1, count)\n\t\t}\n\n\t\treturn false\n\t})\n}\n\nfunc TestVotingRecordRemove(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for VotingRecord.Remove()\")\n}\n\nfunc TestSelectChoiceByMajority(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceByMajority\")\n}\n\nfunc TestSelectChoiceBySuperMajority(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceBySuperMajority\")\n}\n\nfunc TestSelectChoiceByPlurality(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceByPlurality\")\n}\n"},{"name":"render.gno","body":"package dao\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EscapeHTML escapes special characters like \"\u003c\" to become \"\u0026lt;\".\n// It escapes only five such characters: \u003c, \u003e, \u0026, ' and \".\nfunc EscapeHTML(s string) string {\n\ts = strings.ReplaceAll(s, `\u0026`, \"\u0026amp;\")\n\ts = strings.ReplaceAll(s, `\"`, \"\u0026#34;\")\n\ts = strings.ReplaceAll(s, `'`, \"\u0026#39;\")\n\ts = strings.ReplaceAll(s, `\u003c`, \"\u0026lt;\")\n\treturn strings.ReplaceAll(s, `\u003e`, \"\u0026gt;\")\n}\n\n// NewLink creates a new Markdown link.\nfunc NewLink(text, uri string) string {\n\treturn ufmt.Sprintf(\"[%s](%s)\", text, uri)\n}\n\n// NewLinkURI creates a new Markdown link where text and URI are the same.\nfunc NewLinkURI(uri string) string {\n\treturn ufmt.Sprintf(\"[%s](%s)\", uri, uri)\n}\n"},{"name":"strategy.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\ntype (\n\t// VoteChoiceRecord contains the number of counted votes for a single voting choice.\n\tVoteChoiceRecord struct {\n\t\tChoice VoteChoice\n\t\tCount uint\n\t}\n\n\t// ProposalStrategy defines the interface for the different proposal types.\n\tProposalStrategy interface {\n\t\t// Name returns the name of the strategy.\n\t\tName() string\n\n\t\t// Quorum returns the minimum required percentage of DAO member votes\n\t\t// required for a proposal to pass.\n\t\tQuorum() float64\n\n\t\t// VotingPeriod returns the period that a proposal should allow voting.\n\t\tVotingPeriod() time.Duration\n\n\t\t// VoteChoices returns the valid voting choices for the strategy.\n\t\tVoteChoices() []VoteChoice\n\n\t\t// Tally counts the votes and returns the winner voting choice.\n\t\t// The DAO argument is the DAO that the proposal is currently assigned to,\n\t\t// by default the one where the proposal was created.\n\t\t// Proposals can be promoted to parent DAOs in which case the DAO argument\n\t\t// is the DAO where the proposal was promoted the last time.\n\t\tTally(*DAO, VotingRecord) VoteChoice\n\t}\n)\n\n// VoteChecker defines an interface for proposal vote validation.\n// Proposal strategies that require checking votes when they are submitted should implement it.\ntype VoteChecker interface {\n\t// CheckVote checks that a vote is valid for the strategy.\n\tCheckVote(member std.Address, choice VoteChoice, reason string) error\n}\n\n// Executer defines an interface for executable proposals.\n// Proposals strategies that implement the interface can modify the DAO state when proposal passes.\ntype Executer interface {\n\t// Execute executes the proposal.\n\t// The DAO argument is the DAO where the proposal was created, even if the proposal has been promoted\n\t// to a parent DAO.\n\t// TODO: Execute should return some feedback on success\n\tExecute(*DAO) error\n}\n\n// Validator defines an interface for proposal validation.\n// Proposal strategies that implement the interface can validate that a proposal is valid for the current state.\ntype Validator interface {\n\t// Validate validates if a proposal is valid for the current state.\n\tValidate(*Proposal) error\n}\n\n// ParamsRenderer defines an interface to allow strategies to render its input parameters.\ntype ParamsRenderer interface {\n\t// RenderParams returns a markdown with the rendered strategy parameters.\n\tRenderParams() string\n}\n"},{"name":"uri.gno","body":"package dao\n\nimport (\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar reSlug = regexp.MustCompile(\"^[a-zA-Z]+[a-zA-Z0-9-_]*$\")\n\n// IsSlug checks if a string is a valid slug.\nfunc IsSlug(s string) bool {\n\treturn reSlug.MatchString(s)\n}\n\n// SplitRealmURI splits a Gnoland URI into Realm URI and render path.\nfunc SplitRealmURI(uri string) (realmURI, renderPath string) {\n\tif uri == \"\" {\n\t\treturn\n\t}\n\n\tparts := strings.SplitN(uri, \":\", 2)\n\trealmURI = parts[0]\n\tif len(parts) \u003e 1 {\n\t\trenderPath = parts[1]\n\t}\n\treturn\n}\n\n// CutRealmDomain cuts out the Gnoland domain prefix from a URI.\nfunc CutRealmDomain(uri string) string {\n\trealmPath, _ := strings.CutPrefix(uri, \"gno.land\")\n\treturn realmPath\n}\n"},{"name":"uri_test.gno","body":"package dao\n\nimport (\n\t\"testing\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestSplitRealmURI(t *testing.T) {\n\tcases := []struct {\n\t\tname, uri, realmURI, renderPath string\n\t}{\n\t\t{\n\t\t\tname: \"realm URI\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t\trealmURI: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"realm URI with render path\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar\",\n\t\t\trealmURI: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t\trenderPath: \"foo/bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"realm URI with render path\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar\",\n\t\t\trealmURI: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t\trenderPath: \"foo/bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty URI\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\trealmURI, renderPath := gnome.SplitRealmURI(tc.uri)\n\n\t\t\t// Assert\n\t\t\tif realmURI != tc.realmURI {\n\t\t\t\tt.Fatalf(\"expected realm URI: '%s', got: '%s'\", tc.realmURI, realmURI)\n\t\t\t}\n\n\t\t\tif renderPath != tc.renderPath {\n\t\t\t\tt.Fatalf(\"expected render path: '%s', got: '%s'\", tc.renderPath, renderPath)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCutRealmDomain(t *testing.T) {\n\tcases := []struct {\n\t\tname, uri, path string\n\t}{\n\t\t{\n\t\t\tname: \"with domain\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t\tpath: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"without domain\",\n\t\t\turi: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t\tpath: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tpath := gnome.CutRealmDomain(tc.uri)\n\n\t\t\t// Assert\n\t\t\tif path != tc.path {\n\t\t\t\tt.Fatalf(\"expected path: '%s', got: '%s'\", tc.path, path)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"16000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uBQrIQtIlyWvFK3GhcvYNSQHY5aJTAB5c/fpP5D+Y51bRmOQGlhydekPj3M1YpEuNOVTNbnFQSLA5y/Q0LOcCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"dao","path":"gno.land/p/gnome/dao","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"dao.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\n// PathSeparator defines the DAO path separator.\nconst PathSeparator = \"/\"\n\ntype (\n\t// Role defines the type for DAO roles.\n\tRole string\n\n\t// Roles defines the type for a list of DAO roles.\n\tRoles []Role\n)\n\n// String returns the role as a string.\nfunc (r Role) String() string {\n\treturn string(r)\n}\n\n// NewMember creates a new DAO member.\nfunc NewMember(addr std.Address, roles ...Role) Member {\n\treturn Member{\n\t\tAddress: addr,\n\t\tRoles: roles,\n\t}\n}\n\n// Member defines a DAO member.\ntype Member struct {\n\t// Address is the member account address.\n\tAddress std.Address\n\n\t// Roles contains the optional list of roles that the member belongs to.\n\tRoles Roles\n}\n\n// String returns a string representation of the member.\nfunc (m Member) String() string {\n\tif len(m.Roles) == 0 {\n\t\treturn m.Address.String()\n\t}\n\n\tvar roles []string\n\tfor _, r := range m.Roles {\n\t\troles = append(roles, string(r))\n\t}\n\treturn m.Address.String() + \" \" + strings.Join(roles, \", \")\n}\n\n// HasRole checks if the member belongs to a specific role.\nfunc (m Member) HasRole(r Role) bool {\n\tfor _, role := range m.Roles {\n\t\tif role == r {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Option configures DAO.\ntype Option func(*DAO)\n\n// AssignAsSuperCouncil makes the DAO a super council.\nfunc AssignAsSuperCouncil() Option {\n\treturn func(dao *DAO) {\n\t\tdao.isSuperCouncil = true\n\t}\n}\n\n// WithSubDAO assigns sub DAO to a DAO.\nfunc WithSubDAO(sub *DAO) Option {\n\treturn func(dao *DAO) {\n\t\tsub.parent = dao\n\t\tdao.children = append(dao.children, sub)\n\t}\n}\n\n// WithMembers assigns members to a DAO.\nfunc WithMembers(members ...Member) Option {\n\treturn func(dao *DAO) {\n\t\tdao.members = members\n\t}\n}\n\n// WithManifest assigns a manifest to a DAO.\n// Manifest should describe the purpose of the DAO.\nfunc WithManifest(manifest string) Option {\n\treturn func(dao *DAO) {\n\t\tdao.manifest = manifest\n\t}\n}\n\n// New creates a new DAO.\nfunc New(name, title string, options ...Option) (*DAO, error) {\n\tname = strings.TrimSpace(name)\n\tif name == \"\" {\n\t\treturn nil, errors.New(\"DAO name is required\")\n\t}\n\n\tif !IsSlug(name) {\n\t\treturn nil, errors.New(`DAO name is not valid, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\ttitle = strings.TrimSpace(title)\n\tif title == \"\" {\n\t\treturn nil, errors.New(\"DAO title is required\")\n\t}\n\n\tdao := \u0026DAO{\n\t\tname: name,\n\t\ttitle: title,\n\t\tcreatedAt: time.Now(),\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(dao)\n\t}\n\n\treturn dao, nil\n}\n\n// MustNew creates a new DAO.\n// The function panics if any of the arguments is not valid.\nfunc MustNew(name, title string, options ...Option) *DAO {\n\tdao, err := New(name, title, options...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn dao\n}\n\n// DAO is a decentralized autonomous organization.\ntype DAO struct {\n\tname string\n\ttitle string\n\tmanifest string\n\tisSuperCouncil bool\n\tisLocked bool\n\tlockReason string\n\tparent *DAO\n\tchildren []*DAO\n\tmembers []Member\n\tcreatedAt time.Time\n}\n\n// Name returns the name of the DAO.\nfunc (dao DAO) Name() string {\n\treturn dao.name\n}\n\n// Title returns the title of the DAO.\nfunc (dao DAO) Title() string {\n\treturn dao.title\n}\n\n// Manifest returns the manifest of the DAO.\nfunc (dao DAO) Manifest() string {\n\treturn dao.manifest\n}\n\n// SetManifest sets the manifest of the DAO.\nfunc (dao *DAO) SetManifest(s string) {\n\tdao.manifest = s\n}\n\n// CreatedAt returns the creation time of the DAO.\nfunc (dao DAO) CreatedAt() time.Time {\n\treturn dao.createdAt\n}\n\n// Parent returns the parent DAO of the sub DAO.\n// The result is nil for the DAO at the root of the DAO tree.\nfunc (dao DAO) Parent() *DAO {\n\treturn dao.parent\n}\n\n// Path returns the path of the DAO.\nfunc (dao DAO) Path() string {\n\tif dao.parent == nil {\n\t\treturn dao.name\n\t}\n\treturn dao.parent.Path() + PathSeparator + dao.name\n}\n\n// SubDAOs returns the first level sub DAOs.\nfunc (dao DAO) SubDAOs() []*DAO {\n\treturn dao.children\n}\n\n// Members returns the members of the DAOs.\nfunc (dao DAO) Members() []Member {\n\treturn dao.members\n}\n\n// LockReason returns a string with the reason the DAO is locked.\nfunc (dao DAO) LockReason() string {\n\treturn dao.lockReason\n}\n\n// IsSuperCouncil checks if the DAO is a super council.\nfunc (dao DAO) IsSuperCouncil() bool {\n\treturn dao.isSuperCouncil\n}\n\n// IsLocked checks if the DAO is locked.\nfunc (dao DAO) IsLocked() bool {\n\treturn dao.isLocked\n}\n\n// Lock locks the DAO.\nfunc (dao *DAO) Lock(reason string) {\n\tdao.lockReason = reason\n\tdao.isLocked = true\n}\n\n// HasParent checks if a DAO is a parent of this DAO.\nfunc (dao DAO) HasParent(parent *DAO) bool {\n\tif parent == nil {\n\t\treturn false\n\t}\n\treturn strings.HasPrefix(dao.Path(), parent.Path())\n}\n\n// HasMember checks if a member is part of the DAO.\nfunc (dao DAO) HasMember(addr std.Address) bool {\n\tfor _, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddMember adds a member to the DAO.\n// Caller must check the member before adding to avoid duplications.\nfunc (dao *DAO) AddMember(m Member) {\n\tdao.members = append(dao.members, m)\n}\n\n// GetMember gets a member of the DAO.\nfunc (dao DAO) GetMember(addr std.Address) (Member, bool) {\n\tfor _, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\treturn m, true\n\t\t}\n\t}\n\treturn Member{}, false\n}\n\n// RemoveMember removes a member of the DAO.\nfunc (dao *DAO) RemoveMember(addr std.Address) bool {\n\tfor i, m := range dao.members {\n\t\tif m.Address == addr {\n\t\t\tdao.members = append(dao.members[:i], dao.members[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddSubDAO adds a sub DAO to the DAO.\nfunc (dao *DAO) AddSubDAO(sub *DAO) bool {\n\tif sub == nil {\n\t\treturn false\n\t}\n\n\tfor _, n := range dao.children {\n\t\tif n.name == sub.name {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tsub.parent = dao\n\tdao.children = append(dao.children, sub)\n\treturn true\n}\n\n// GetDAO get a DAO by path.\nfunc (dao *DAO) GetDAO(path string) (_ *DAO, found bool) {\n\tif path == \"\" {\n\t\treturn nil, false\n\t}\n\n\tif path == dao.name {\n\t\treturn dao, true\n\t}\n\n\t// Make sure that current node is not present at the beginning of the path\n\tpath = strings.TrimPrefix(path, dao.name+PathSeparator)\n\n\t// Split DAO path in child name and relative sub path\n\tparts := strings.SplitN(path, PathSeparator, 2)\n\tchildName := parts[0]\n\n\tfor _, sub := range dao.children {\n\t\tif sub.name != childName {\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(parts) \u003e 1 {\n\t\t\t// Traverse node children when a sub node path is available\n\t\t\treturn sub.GetDAO(parts[1])\n\t\t}\n\t\treturn sub, true\n\t}\n\n\treturn nil, false\n}\n\n// RemoveSubDAO removes a sub DAO.\n// The sub DAO must be a first level children of the DAO.\nfunc (dao *DAO) RemoveSubDAO(name string) bool {\n\tfor i, sub := range dao.children {\n\t\tif sub.name == name {\n\t\t\tdao.children = append(dao.children[:i], dao.children[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsRoot checks if the DAO is the main DAO.\n// The main DAO is the root of the DAO tree.\nfunc (dao DAO) IsRoot() bool {\n\treturn dao.parent == nil\n}\n\n// ParseStringToMembers parses a string of member addresses and roles.\n// String should have one or more lines where each line should contain an\n// address optionally followed by one or more roles.\n// Example multi line string:\n//\n//\tg1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun roleA\n//\tg1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n//\tg1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5 roleB roleA\n//\n// Addresses are validated after being parsed.\n// Roles must be validated by the caller to make sure the names are valid.\nfunc ParseStringToMembers(s string) ([]Member, error) {\n\tvar members []Member\n\tfor _, line := range strings.Split(s, \"\\n\") {\n\t\tline = strings.TrimSpace(line)\n\t\tif line == \"\" {\n\t\t\t// Skip empty lines\n\t\t\tcontinue\n\t\t}\n\n\t\tvar (\n\t\t\troles []Role\n\t\t\tfields = strings.Fields(line)\n\t\t\taddr = std.Address(strings.TrimSpace(fields[0]))\n\t\t)\n\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, errors.New(\"invalid member address: \" + EscapeHTML(addr.String()))\n\t\t}\n\n\t\tfor _, v := range fields[1:] {\n\t\t\troles = appendRole(roles, strings.TrimSpace(v))\n\t\t}\n\n\t\tmembers = append(members, NewMember(addr, roles...))\n\t}\n\treturn members, nil\n}\n\n// MustParseStringToMembers parses a string of member addresses and roles.\n// String should have one or more lines where each line should contain an\n// address optionally followed by one or more roles.\n// Example multi line string:\n//\n//\tg1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun roleA\n//\tg1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n//\tg1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5 roleB roleA\n//\n// Addresses are validated after being parsed.\n// Roles must be validated by the caller to make sure the names are valid.\nfunc MustParseStringToMembers(s string) []Member {\n\tmembers, err := ParseStringToMembers(s)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn members\n}\n\n// appendRole append a role if it doesn't exists within the list of roles.\nfunc appendRole(roles []Role, name string) []Role {\n\tfor _, r := range roles {\n\t\tif string(r) == name {\n\t\t\treturn roles\n\t\t}\n\t}\n\treturn append(roles, Role(name))\n}\n"},{"name":"dao_test.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\troles []gnome.Role\n\t\toutput string\n\t}{\n\t\t{\n\t\t\tname: \"without roles\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\",\n\t\t},\n\t\t{\n\t\t\tname: \"with one role\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\troles: []gnome.Role{\"foo\"},\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 foo\",\n\t\t},\n\t\t{\n\t\t\tname: \"with two roles\",\n\t\t\taddress: std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"),\n\t\t\troles: []gnome.Role{\"foo\", \"bar\"},\n\t\t\toutput: \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 foo, bar\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tm := gnome.NewMember(tc.address, tc.roles...)\n\n\t\t\t// Assert\n\t\t\tif got := m.Address; got != tc.address {\n\t\t\t\tt.Fatalf(\"expected address %s, got: %s\", tc.address, got)\n\t\t\t}\n\n\t\t\tfor i, r := range m.Roles {\n\t\t\t\tif r != tc.roles[i] {\n\t\t\t\t\tt.Fatalf(\"expected role %s, got: %s\", tc.roles[i], r)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif got := m.String(); got != tc.output {\n\t\t\t\tt.Fatalf(\"expected member string output '%s', got: '%s'\", tc.output, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: Add test cases to check different DAO options\nfunc TestDAO(t *testing.T) {\n\t// Arrange\n\tname := \"test\"\n\ttitle := \"Test DAO\"\n\tmanifest := \"This is a test\"\n\taddresses := []std.Address{\n\t\ttestutils.TestAddress(\"member1\"),\n\t\ttestutils.TestAddress(\"member2\"),\n\t}\n\n\t// Act\n\tdao := gnome.MustNew(name, title, gnome.WithManifest(manifest), gnome.WithMembers(\n\t\tgnome.NewMember(addresses[0]),\n\t\tgnome.NewMember(addresses[1]),\n\t))\n\n\t// Assert\n\tif got := dao.Name(); got != name {\n\t\tt.Fatalf(\"expected name: %d, got: %d\", name, got)\n\t}\n\n\tif got := dao.CreatedAt(); got.IsZero() {\n\t\tt.Fatalf(\"expected a valid creation time, got: '%s'\", got.String())\n\t}\n\n\tif got := dao.Title(); got != title {\n\t\tt.Fatalf(\"expected title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := dao.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected manifest: '%s', got: '%s'\", manifest, got)\n\t}\n\n\tif got := dao.Parent(); got != nil {\n\t\tt.Fatalf(\"expected no parent DAO, got: '%s'\", got.Name())\n\t}\n\n\tif c := len(dao.SubDAOs()); c != 0 {\n\t\tt.Fatalf(\"expected no sub DAO nodes, got %d node(s)\", c)\n\t}\n\n\tif dao.IsSuperCouncil() {\n\t\tt.Fatal(\"expected DAO not to be a super council\")\n\t}\n\n\tif c := len(dao.Members()); c != len(addresses) {\n\t\tt.Fatalf(\"expected %d DAO members, got %d\", len(addresses), c)\n\t}\n\n\tfor _, addr := range addresses {\n\t\tif !dao.HasMember(addr) {\n\t\t\tt.Fatalf(\"expected member %s to be a member of DAO\", addr)\n\t\t}\n\n\t\tm, found := dao.GetMember(addr)\n\t\tif !found {\n\t\t\tt.Fatalf(\"expected member %s to be found\", addr)\n\t\t}\n\n\t\tif m.Address != addr {\n\t\t\tt.Fatalf(\"expected member to have address %s, got: %s\", addr, m.Address)\n\t\t}\n\t}\n}\n\nfunc TestDAOAddMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tmember gnome.Member\n\t\tmembersCount int\n\t\tshouldExist bool\n\t\tsetup func(*gnome.DAO)\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 1,\n\t\t\tshouldExist: true,\n\t\t},\n\t\t{\n\t\t\tname: \"existing\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 2,\n\t\t\tshouldExist: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member2\"))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tmembersCount: 2,\n\t\t\tshouldExist: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member\"))\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := gnome.MustNew(\"test\", \"Test\")\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(dao)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tdao.AddMember(tc.member)\n\n\t\t\t// Assert\n\t\t\tif got := dao.HasMember(tc.member.Address); got != tc.shouldExist {\n\t\t\t\tt.Fatalf(\"expected has member call to return %v, got: %v\", tc.shouldExist, got)\n\t\t\t}\n\n\t\t\tm, found := dao.GetMember(tc.member.Address)\n\t\t\tif found != tc.shouldExist {\n\t\t\t\tt.Fatalf(\"expected member getter to return %v, got: %v\", tc.shouldExist, found)\n\t\t\t}\n\n\t\t\tif tc.shouldExist \u0026\u0026 m.Address != tc.member.Address {\n\t\t\t\tt.Fatalf(\"expected added member to have adderss %s, got: %s\", tc.member, m)\n\t\t\t}\n\n\t\t\tmembers := dao.Members()\n\t\t\tif c := len(members); c != tc.membersCount {\n\t\t\t\tt.Fatalf(\"expected %d member(s), got: %d\", tc.membersCount, c)\n\t\t\t}\n\n\t\t\tif len(members) \u003e 0 {\n\t\t\t\tm = members[len(members)-1]\n\t\t\t\tif m.Address != tc.member.Address {\n\t\t\t\t\tt.Fatalf(\"expected last added member address: %s, got: %s\", tc.member.Address, m.Address)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAORemoveMember(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tmember gnome.Member\n\t\tsetup func(*gnome.DAO)\n\t\tresult bool\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t\tresult: true,\n\t\t\tsetup: func(dao *gnome.DAO) {\n\t\t\t\tdao.AddMember(newTestMember(t, \"member\"))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"missing\",\n\t\t\tmember: newTestMember(t, \"member\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := gnome.MustNew(\"test\", \"Test\")\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(dao)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tresult := dao.RemoveMember(tc.member.Address)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif dao.HasMember(tc.member.Address) {\n\t\t\t\tt.Fatal(\"member shouldn't exist\")\n\t\t\t}\n\n\t\t\tif _, found := dao.GetMember(tc.member.Address); found {\n\t\t\t\tt.Fatal(\"expected member getter to return false\")\n\t\t\t}\n\n\t\t\tif c := len(dao.Members()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected no DAO members, got: %d\", c)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAOAddSubDAO(t *testing.T) {\n\tcases := []struct {\n\t\tname, path string\n\t\tchildren int\n\t\tdao, subDAO *gnome.DAO\n\t\tresult bool\n\t\tsetup func(*gnome.DAO)\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"main\", \"Main\"),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t\tchildren: 1,\n\t\t\tpath: \"main/foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with children\",\n\t\t\tdao: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"bar\", \"Bar\")),\n\t\t\t),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t\tchildren: 2,\n\t\t\tpath: \"main/foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate\",\n\t\t\tdao: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t),\n\t\t\tsubDAO: gnome.MustNew(\"foo\", \"Foo\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tresult := tc.dao.AddSubDAO(tc.subDAO)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif result {\n\t\t\t\tif got := tc.subDAO.Path(); got != tc.path {\n\t\t\t\t\tt.Fatalf(\"expected path to be '%s', got: '%s'\", tc.path, got)\n\t\t\t\t}\n\n\t\t\t\tif c := len(tc.dao.SubDAOs()); c != tc.children {\n\t\t\t\t\tt.Fatalf(\"expected %d sub DAO node(s), got %d node(s)\", tc.children, c)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAORemoveSubDAO(t *testing.T) {\n\tcases := []struct {\n\t\tname, subName string\n\t\tchildren int\n\t\tsubDAO *gnome.DAO\n\t\tresult bool\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsubDAO: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t),\n\t\t\tsubName: \"foo\",\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"with children\",\n\t\t\tsubDAO: gnome.MustNew(\n\t\t\t\t\"main\",\n\t\t\t\t\"Main\",\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"foo\", \"Foo\")),\n\t\t\t\tgnome.WithSubDAO(gnome.MustNew(\"bar\", \"Bar\")),\n\t\t\t),\n\t\t\tsubName: \"foo\",\n\t\t\tchildren: 1,\n\t\t\tresult: true,\n\t\t},\n\t\t{\n\t\t\tname: \"missing\",\n\t\t\tsubName: \"foo\",\n\t\t\tsubDAO: gnome.MustNew(\"main\", \"Main\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tresult := tc.subDAO.RemoveSubDAO(tc.subName)\n\n\t\t\t// Assert\n\t\t\tif result != tc.result {\n\t\t\t\tt.Fatalf(\"expected result to be %v, got: %v\", tc.result, result)\n\t\t\t}\n\n\t\t\tif result {\n\t\t\t\tif c := len(tc.subDAO.SubDAOs()); c != tc.children {\n\t\t\t\t\tt.Fatalf(\"expected %d sub DAO node(s), got %d node(s)\", tc.children, c)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDAOTree(t *testing.T) {\n\tdaoA1 := gnome.MustNew(\"a1\", \"A1\")\n\tdaoA2 := gnome.MustNew(\"a2\", \"A2\")\n\tdaoA := gnome.MustNew(\"a\", \"A\", gnome.WithSubDAO(daoA1), gnome.WithSubDAO(daoA2))\n\tdaoB1 := gnome.MustNew(\"b1\", \"B1\")\n\tdaoB := gnome.MustNew(\"b\", \"B\", gnome.WithSubDAO(daoB1))\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithSubDAO(daoA), gnome.WithSubDAO(daoB))\n\n\tcases := []struct {\n\t\tname, path string\n\t\tdao *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"root\",\n\t\t\tpath: \"main\",\n\t\t\tdao: dao,\n\t\t},\n\t\t{\n\t\t\tname: \"path a\",\n\t\t\tpath: \"main/a\",\n\t\t\tdao: daoA,\n\t\t},\n\t\t{\n\t\t\tname: \"path a1\",\n\t\t\tpath: \"main/a/a1\",\n\t\t\tdao: daoA1,\n\t\t},\n\t\t{\n\t\t\tname: \"path a2\",\n\t\t\tpath: \"main/a/a2\",\n\t\t\tdao: daoA2,\n\t\t},\n\t\t{\n\t\t\tname: \"path b\",\n\t\t\tpath: \"main/b\",\n\t\t\tdao: daoB,\n\t\t},\n\t\t{\n\t\t\tname: \"path b1\",\n\t\t\tpath: \"main/b/b1\",\n\t\t\tdao: daoB1,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid\",\n\t\t\tpath: \"foo\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid sub path\",\n\t\t\tpath: \"foo/bar\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tsubDAO, found := dao.GetDAO(tc.path)\n\n\t\t\t// Assert\n\t\t\tif subDAO != tc.dao {\n\t\t\t\tif !found {\n\t\t\t\t\tt.Fatalf(\"DAO for path '%s' not found\", tc.path)\n\t\t\t\t} else {\n\t\t\t\t\tt.Fatalf(\"unexpected DAO for path '%s': '%s'\", tc.path, subDAO.Name())\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif found \u0026\u0026 subDAO.Path() != tc.path {\n\t\t\t\tt.Fatalf(\"expected DAO to return path '%s': got '%s'\", tc.path, subDAO.Path())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"id.gno","body":"package dao\n\nimport (\n\t\"encoding/binary\"\n\t\"strconv\"\n)\n\n// ID defines a generic ID type.\ntype ID uint64\n\n// String returns the value of the ID as a string.\nfunc (id ID) String() string {\n\treturn strconv.Itoa(int(id))\n}\n\n// Key returns the binary representation of the ID to be used as key for AVL trees.\nfunc (id ID) Key() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(id))\n\treturn string(buf)\n}\n\n// ConvertKeyToID converts a key to an ID.\n// Key is a binary representation of an ID.\nfunc ConvertKeyToID(key string) (ID, bool) {\n\tif len(key) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(key))), true\n}\n"},{"name":"invar.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\nfunc NewInvarProposalStrategy(s ProposalStrategy) InvarProposalStrategy {\n\treturn InvarProposalStrategy{s}\n}\n\ntype InvarProposalStrategy struct {\n\tref ProposalStrategy\n}\n\nfunc (s InvarProposalStrategy) Name() string {\n\treturn s.ref.Name()\n}\n\nfunc (s InvarProposalStrategy) Quorum() float64 {\n\treturn s.ref.Quorum()\n}\n\nfunc (s InvarProposalStrategy) VotingPeriod() time.Duration {\n\treturn s.ref.VotingPeriod()\n}\n\nfunc (s InvarProposalStrategy) VoteChoices() []VoteChoice {\n\treturn s.ref.VoteChoices()\n}\n\nfunc (s InvarProposalStrategy) RenderParams() string {\n\tif r, ok := s.ref.(ParamsRenderer); ok {\n\t\treturn r.RenderParams()\n\t}\n\treturn \"\"\n}\n\n// TODO: Remove invar types if Gno implements invar (inmutable) references\nfunc NewInvarVote(v Vote) InvarVote {\n\treturn InvarVote{\n\t\tAddress: v.Address,\n\t\tChoice: v.Choice,\n\t\tReason: v.Reason,\n\t\tDAO: NewInvarDAO(v.DAO),\n\t\tCreatedAt: v.CreatedAt,\n\t}\n}\n\ntype InvarVote struct {\n\tAddress std.Address\n\tChoice VoteChoice\n\tReason string\n\tDAO InvarDAO\n\tCreatedAt time.Time\n}\n\nfunc NewInvarDAO(dao *DAO) InvarDAO {\n\treturn InvarDAO{dao}\n}\n\ntype InvarDAO struct {\n\tref *DAO\n}\n\nfunc (dao InvarDAO) Name() string {\n\treturn dao.ref.Name()\n}\n\nfunc (dao InvarDAO) Title() string {\n\treturn dao.ref.Title()\n}\n\nfunc (dao InvarDAO) Manifest() string {\n\treturn dao.ref.Manifest()\n}\n\nfunc (dao InvarDAO) CreatedAt() time.Time {\n\treturn dao.ref.CreatedAt()\n}\n\nfunc (dao InvarDAO) Parent() (_ InvarDAO, exists bool) {\n\tif p := dao.ref.Parent(); p != nil {\n\t\treturn NewInvarDAO(p), true\n\t}\n\treturn InvarDAO{}, false\n}\n\nfunc (dao InvarDAO) Path() string {\n\treturn dao.ref.Path()\n}\n\nfunc (dao InvarDAO) SubDAOs() (daos []InvarDAO) {\n\tfor _, sub := range dao.ref.SubDAOs() {\n\t\tdaos = append(daos, NewInvarDAO(sub))\n\t}\n\treturn\n}\n\nfunc (dao InvarDAO) Members() []Member {\n\treturn dao.ref.Members()\n}\n\nfunc (dao InvarDAO) LockReason() string {\n\treturn dao.ref.LockReason()\n}\n\nfunc (dao InvarDAO) IsSuperCouncil() bool {\n\treturn dao.ref.IsSuperCouncil()\n}\n\nfunc (dao InvarDAO) IsLocked() bool {\n\treturn dao.ref.IsLocked()\n}\n\nfunc (dao InvarDAO) IsRoot() bool {\n\treturn dao.ref.IsRoot()\n}\n\nfunc NewInvarProposal(p *Proposal) InvarProposal {\n\treturn InvarProposal{p}\n}\n\ntype InvarProposal struct {\n\tref *Proposal\n}\n\nfunc (p InvarProposal) ID() ID {\n\treturn p.ref.ID()\n}\n\nfunc (p InvarProposal) DAO() InvarDAO {\n\treturn NewInvarDAO(p.ref.DAO())\n}\n\nfunc (p InvarProposal) InitialDAO() InvarDAO {\n\treturn NewInvarDAO(p.ref.InitialDAO())\n}\n\nfunc (p InvarProposal) Strategy() InvarProposalStrategy {\n\treturn NewInvarProposalStrategy(p.ref.Strategy())\n}\n\nfunc (p InvarProposal) Title() string {\n\treturn p.ref.Title()\n}\n\nfunc (p InvarProposal) Description() string {\n\treturn p.ref.Description()\n}\n\nfunc (p InvarProposal) StatusReason() string {\n\treturn p.ref.StatusReason()\n}\n\nfunc (p InvarProposal) Proposer() std.Address {\n\treturn p.ref.Proposer()\n}\n\nfunc (p InvarProposal) Choice() VoteChoice {\n\treturn p.ref.Choice()\n}\n\nfunc (p InvarProposal) CreatedAt() time.Time {\n\treturn p.ref.CreatedAt()\n}\n\nfunc (p InvarProposal) Promotions() (daos []InvarDAO) {\n\tfor _, dao := range p.ref.Promotions() {\n\t\tdaos = append(daos, NewInvarDAO(dao))\n\t}\n\treturn\n}\n\nfunc (p InvarProposal) VotingDeadline() time.Time {\n\treturn p.ref.VotingDeadline()\n}\n\nfunc (p InvarProposal) ReviewDeadline() time.Time {\n\treturn p.ref.ReviewDeadline()\n}\n\nfunc (p InvarProposal) VoteChangeDuration() time.Duration {\n\treturn p.ref.VoteChangeDuration()\n}\n\nfunc (p InvarProposal) Status() ProposalStatus {\n\treturn p.ref.Status()\n}\n\nfunc (p InvarProposal) Votes() (votes []InvarVote) {\n\tfor _, v := range p.ref.Votes() {\n\t\tvotes = append(votes, NewInvarVote(v))\n\t}\n\treturn\n}\n\nfunc (p InvarProposal) VotingRecord() InvarVotingRecord {\n\treturn NewInvarVotingRecord(p.ref.VotingRecord())\n}\n\nfunc (p InvarProposal) VotingRecords() (records []InvarVotingRecord) {\n\tfor _, r := range p.ref.VotingRecords() {\n\t\trecords = append(records, NewInvarVotingRecord(r))\n\t}\n\treturn\n}\n\nfunc NewInvarVotingRecord(r *VotingRecord) InvarVotingRecord {\n\treturn InvarVotingRecord{r}\n}\n\ntype InvarVotingRecord struct {\n\tref *VotingRecord\n}\n\nfunc (r InvarVotingRecord) Votes() (votes []InvarVote) {\n\tfor _, v := range r.ref.Votes() {\n\t\tvotes = append(votes, NewInvarVote(v))\n\t}\n\treturn\n}\n\nfunc (r InvarVotingRecord) VoteCount() int {\n\treturn r.ref.VoteCount()\n}\n\nfunc (r InvarVotingRecord) Get(c VoteChoice) uint {\n\treturn r.ref.Get(c)\n}\n\nfunc (r InvarVotingRecord) Iterate(fn VotingRecordIterFn) bool {\n\treturn r.ref.Iterate(fn)\n}\n"},{"name":"paginator.gno","body":"package dao\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\tdefaultPageSize = 50\n\tminPageSize = 1\n\tpagePrefix = \"page=\"\n)\n\ntype (\n\t// PaginatorIterFn defines a callback to iterate page items.\n\tPaginatorIterFn func(index int) (stop bool)\n\n\t// PaginatorOption configures the paginator.\n\tPaginatorOption func(*Paginator)\n)\n\n// WithPageSize assigns a page size to a paginator.\n// The minimum page size is 5.\nfunc WithPageSize(size int) PaginatorOption {\n\treturn func(p *Paginator) {\n\t\tif size \u003c minPageSize {\n\t\t\tp.pageSize = minPageSize\n\t\t} else {\n\t\t\tp.pageSize = size\n\t\t}\n\t}\n}\n\n// WithItemCount assigns the total number of items that can be paginated.\n// Assigning the total item count allows the paginator to determine the last page number.\nfunc WithItemCount(count int) PaginatorOption {\n\treturn func(p *Paginator) {\n\t\tp.itemCount = count\n\t}\n}\n\n// NewPaginator creates a new paginator.\n// URI path must contain the page number for the paginator to iterate items.\n// Page number is specified in the URI path using \"page=N\" where N is the page\n// number which must start from 1. For example: gno.land/p/gnome:a/b:page=2.\n// Paginator is disabled when the URI path doesn't have a page specified or\n// when the specified page is not valid.\nfunc NewPaginator(uri string, options ...PaginatorOption) Paginator {\n\trealmURI, renderPath := SplitRealmURI(uri)\n\tp := Paginator{\n\t\trealmPath: CutRealmDomain(realmURI),\n\t\tpageSize: defaultPageSize,\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(\u0026p)\n\t}\n\n\tp.lastPage = int(math.Ceil(float64(p.itemCount) / float64(p.pageSize)))\n\n\t// Iterate path items until paginator arguments are found.\n\t// Path prefix and suffix are kept to be able to generate\n\t// page URLs keeping the render path format.\n\titems := strings.Split(renderPath, \":\")\n\tfor i, item := range items {\n\t\tif strings.HasPrefix(item, pagePrefix) {\n\t\t\tp.pathSuffix = items[i+1:]\n\t\t\tp.page, _ = strconv.Atoi(item[len(pagePrefix):])\n\t\t\tbreak\n\t\t}\n\n\t\tp.pathPrefix = append(p.pathPrefix, item)\n\t}\n\treturn p\n}\n\n// Paginator allows paging items.\ntype Paginator struct {\n\trealmPath string\n\tpathPrefix, pathSuffix []string\n\tpageSize, page, lastPage, itemCount int\n}\n\n// Offset returns the index for the first page item.\nfunc (p Paginator) Offset() int {\n\tif !p.IsEnabled() {\n\t\treturn 0\n\t}\n\treturn (p.page - 1) * p.pageSize\n}\n\n// PageSize returns the size of each page.\nfunc (p Paginator) PageSize() int {\n\treturn p.pageSize\n}\n\n// Page returns the current page number.\n// Zero is returned when the paginator is disabled.\nfunc (p Paginator) Page() int {\n\treturn p.page\n}\n\n// LastPage returns the number of the last page.\n// Zero is returned when paginator is initialized without the total item count.\nfunc (p Paginator) LastPage() int {\n\treturn p.lastPage\n}\n\n// IsEnabled checks if paginator is enabled.\nfunc (p Paginator) IsEnabled() bool {\n\treturn p.page \u003e 0\n}\n\n// IsLastPage checks if the current page is the last one.\nfunc (p Paginator) IsLastPage() bool {\n\treturn p.page == p.lastPage\n}\n\n// GetPageURI returns the URI for a page.\n// An empty string is returned when page is \u003c 1.\nfunc (p Paginator) GetPageURI(page int) string {\n\tif !p.IsEnabled() {\n\t\treturn \"\"\n\t}\n\n\trenderPath := append(p.pathPrefix, pagePrefix+strconv.Itoa(page))\n\trenderPath = append(renderPath, p.pathSuffix...)\n\treturn p.realmPath + \":\" + strings.Join(renderPath, \":\")\n}\n\n// PrevPageURI returns the URI path to the previous page.\n// An empty string is returned when current page is the first page.\nfunc (p Paginator) PrevPageURI() string {\n\tif p.page == 1 || !p.IsEnabled() {\n\t\treturn \"\"\n\t}\n\treturn p.GetPageURI(p.page - 1)\n}\n\n// NextPageURI returns the URI path to the next page.\nfunc (p Paginator) NextPageURI() string {\n\tif p.IsLastPage() {\n\t\treturn \"\"\n\t}\n\treturn p.GetPageURI(p.page + 1)\n}\n\n// Iterate allows iterating page items.\nfunc (p Paginator) Iterate(fn PaginatorIterFn) bool {\n\tif !p.IsEnabled() {\n\t\treturn true\n\t}\n\n\tstart := p.Offset()\n\tfor i := start; i \u003c start+p.PageSize(); i++ {\n\t\tif fn(i) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"},{"name":"paginator_test.gno","body":"package dao\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestPaginator(t *testing.T) {\n\titems := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\tcases := []struct {\n\t\tname, uri, prevPath, nextPath string\n\t\toffset, pageSize, page, lastPage int\n\t\tpageItems string\n\t\tstopped, enabled, isLastPage bool\n\t}{\n\t\t{\n\t\t\tname: \"page 1\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar:page=1:foo=bar\",\n\t\t\tenabled: true,\n\t\t\tnextPath: \"/r/gnome:foo/bar:page=2:foo=bar\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 5,\n\t\t\tpage: 1,\n\t\t\tlastPage: 2,\n\t\t\tpageItems: \"[1 2 3 4 5]\",\n\t\t},\n\t\t{\n\t\t\tname: \"page 2\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar:page=2:foo=bar\",\n\t\t\tenabled: true,\n\t\t\tprevPath: \"/r/gnome:foo/bar:page=1:foo=bar\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 5,\n\t\t\tpageSize: 5,\n\t\t\tpage: 2,\n\t\t\tlastPage: 2,\n\t\t\tpageItems: \"[6 7 8 9 10]\",\n\t\t\tisLastPage: true,\n\t\t},\n\t\t{\n\t\t\tname: \"missing page\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar:page=3:foo=bar\",\n\t\t\tenabled: true,\n\t\t\tprevPath: \"/r/gnome:foo/bar:page=2:foo=bar\",\n\t\t\tnextPath: \"/r/gnome:foo/bar:page=4:foo=bar\",\n\t\t\toffset: 10,\n\t\t\tpageSize: 5,\n\t\t\tpage: 3,\n\t\t\tlastPage: 2,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid page number\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar:page=0:foo=bar\",\n\t\t\tenabled: false,\n\t\t\tprevPath: \"\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 4,\n\t\t\tpage: 0,\n\t\t\tlastPage: 3,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid page value\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar:page=foo:foo=bar\",\n\t\t\tenabled: false,\n\t\t\tprevPath: \"\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 2,\n\t\t\tpage: 0,\n\t\t\tlastPage: 5,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tvar pageItems []int\n\n\t\t\t// Act\n\t\t\tp := NewPaginator(tc.uri, WithPageSize(tc.pageSize), WithItemCount(len(items)))\n\n\t\t\t// Assert\n\t\t\tif got := p.Page(); got != tc.page {\n\t\t\t\tt.Fatalf(\"expected page: %d, got: %d\", tc.page, got)\n\t\t\t}\n\n\t\t\tif got := p.LastPage(); got != tc.lastPage {\n\t\t\t\tt.Fatalf(\"expected last page: %d, got: %d\", tc.lastPage, got)\n\t\t\t}\n\n\t\t\tif got := p.PrevPageURI(); got != tc.prevPath {\n\t\t\t\tt.Fatalf(\"expected prev page path: '%s', got: '%s'\", tc.prevPath, got)\n\t\t\t}\n\n\t\t\tif got := p.NextPageURI(); got != tc.nextPath {\n\t\t\t\tt.Fatalf(\"expected next page path: '%s', got: '%s'\", tc.nextPath, got)\n\t\t\t}\n\n\t\t\tif got := p.Offset(); got != tc.offset {\n\t\t\t\tt.Fatalf(\"expected offset: %d, got: %d\", tc.offset, got)\n\t\t\t}\n\n\t\t\tif got := p.PageSize(); got != tc.pageSize {\n\t\t\t\tt.Fatalf(\"expected page size: %d, got: %d\", tc.pageSize, got)\n\t\t\t}\n\n\t\t\tif got := p.IsEnabled(); got != tc.enabled {\n\t\t\t\tt.Fatalf(\"expected enabled: %v, got: %v\", tc.enabled, got)\n\t\t\t}\n\n\t\t\tif got := p.IsLastPage(); got != tc.isLastPage {\n\t\t\t\tt.Fatalf(\"expected is last page to be: %v, got: %v\", tc.isLastPage, got)\n\t\t\t}\n\n\t\t\tstopped := p.Iterate(func(i int) bool {\n\t\t\t\tif i \u003e= len(items) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tpageItems = append(pageItems, items[i])\n\t\t\t\treturn false\n\t\t\t})\n\t\t\tif stopped != tc.stopped {\n\t\t\t\tt.Fatalf(\"expected iteration result: %v, got: %v\", tc.stopped, stopped)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", pageItems); got != tc.pageItems {\n\t\t\t\tt.Fatalf(\"expected page items: %s, got: %s\", tc.pageItems, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"params.gno","body":"package dao\n\nimport (\n\t\"math\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\t// DurationIterFn defines the a callback to iterate duration values.\n\tDurationIterFn func(name string, _ time.Duration) bool\n\n\t// DurationParams contains duration values for different parameters.\n\tDurationParams struct {\n\t\tparams avl.Tree\n\t}\n)\n\n// Set sets or updates a parameter value.\nfunc (p *DurationParams) Set(name string, v time.Duration) bool {\n\treturn p.params.Set(name, v)\n}\n\n// Get gets a parameter value.\nfunc (p DurationParams) Get(name string) (_ time.Duration, found bool) {\n\tif v, found := p.params.Get(name); found {\n\t\treturn v.(time.Duration), true\n\t}\n\treturn 0, false\n}\n\n// Size returns the number of duration parameters.\nfunc (p DurationParams) Size() int {\n\treturn p.params.Size()\n}\n\n// Iterate iterates duration parameter values.\nfunc (p DurationParams) Iterate(fn DurationIterFn) bool {\n\treturn p.params.Iterate(\"\", \"\", func(name string, v interface{}) bool {\n\t\treturn fn(name, v.(time.Duration))\n\t})\n}\n\n// HumanizeDuration returns a friendlier text representation of a duration.\nfunc HumanizeDuration(d time.Duration) string { // TODO: Change to use singular/plurals\n\tif d == 0 {\n\t\treturn \"\"\n\t}\n\n\tif sec := d.Seconds(); sec \u003c 60 {\n\t\treturn ufmt.Sprintf(\"%d seconds\", int(sec))\n\t}\n\n\tif m := d.Minutes(); m \u003c 60 {\n\t\tsec := math.Mod(d.Seconds(), 60)\n\t\tif sec \u003c 1 {\n\t\t\treturn ufmt.Sprintf(\"%d minutes\", int(m))\n\t\t}\n\t\treturn ufmt.Sprintf(\"%d minutes %d seconds\", int(m), int(sec))\n\t}\n\n\tif hs := d.Hours(); hs \u003c 24 {\n\t\tm := math.Mod(d.Minutes(), 60)\n\t\tif m \u003c 1 {\n\t\t\treturn ufmt.Sprintf(\"%d hours\", int(hs))\n\t\t}\n\n\t\tsec := math.Mod(d.Seconds(), 60)\n\t\tif sec \u003c 1 {\n\t\t\treturn ufmt.Sprintf(\"%d hours %d minutes\", int(hs), int(m))\n\t\t}\n\t\treturn ufmt.Sprintf(\"%d hours %d minutes %d seconds\", int(hs), int(m), int(sec))\n\t}\n\n\tdays := d.Hours() / 24\n\ths := math.Mod(d.Hours(), 24)\n\tif hs \u003c 1 {\n\t\treturn ufmt.Sprintf(\"%d days\", int(days))\n\t}\n\n\tm := math.Mod(d.Minutes(), 60)\n\tif m \u003c 0 {\n\t\treturn ufmt.Sprintf(\"%d days %d hours\", int(days), int(hs))\n\t}\n\n\tsec := math.Mod(d.Seconds(), 60)\n\tif sec \u003c 1 {\n\t\treturn ufmt.Sprintf(\"%d days %d hours %d minutes\", int(days), int(hs), int(m))\n\t}\n\treturn ufmt.Sprintf(\"%d days %d hours %d minutes %d seconds\", int(days), int(hs), int(m), int(sec))\n}\n"},{"name":"proposal.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n)\n\nconst (\n\tStatusReview ProposalStatus = iota\n\tStatusActive\n\tStatusPassed\n\tStatusRejected\n\tStatusWithdrawed\n\tStatusDismissed\n\tStatusFailed\n)\n\nconst (\n\t// TODO: Add more choices which also should be configurable (use a different type?)\n\tChoiceNone VoteChoice = \"\"\n\tChoiceYes VoteChoice = \"yes\"\n\tChoiceNo VoteChoice = \"no\"\n)\n\nconst (\n\tdefaultVoteChangeDuration = time.Hour\n\texecutionErrorMsg = \"proposal execution error\"\n)\n\nvar (\n\tErrAlreadyVoted = errors.New(\"member already voted on this proposal\")\n\tErrInvalidReason = errors.New(\"reason must have at least 5 characters\")\n\tErrInvalidVoteChoice = errors.New(\"invalid vote choice\")\n\tErrMemberVoteNotAllowed = errors.New(\"you must be a DAO or parent DAO member to vote\")\n\tErrProposalPromote = errors.New(\"proposals can only be promoted to a parent DAO\")\n\tErrProposalVotingDeadlineMet = errors.New(\"proposal voting deadline already met\")\n\tErrProposalNotActive = errors.New(\"proposal is not active\")\n\tErrProposalNotPassed = errors.New(`proposal status must be \"passed\"`)\n\tErrReasonRequired = errors.New(\"reason is required\")\n\tErrReviewStatusRequired = errors.New(`proposal status must be \"review\"`)\n)\n\ntype (\n\t// ExecutionError indicates that proposal execution failed.\n\tExecutionError struct {\n\t\t// Reason contains the error or error message with the reason of the error.\n\t\tReason interface{}\n\t}\n\n\t// ProposalIterFn defines the a callback to iterate proposals.\n\tProposalIterFn func(*Proposal) bool\n\n\t// ProposalOption configures proposals.\n\tProposalOption func(*Proposal)\n\n\t// ProposalStatus defines the type for proposal states.\n\tProposalStatus uint8\n\n\t// VoteChoice defines the type for proposal vote choices.\n\tVoteChoice string\n\n\t// Vote contains the information for a member vote.\n\tVote struct {\n\t\t// Address is the DAO member address.\n\t\tAddress std.Address\n\n\t\t// Choice is the proposal choice being voted.\n\t\tChoice VoteChoice\n\n\t\t// Reason contains the reason for the vote.\n\t\tReason string\n\n\t\t// DAO contains the DAO that the proposal being voted belongs to.\n\t\tDAO *DAO\n\n\t\t// CreatedAt contains the time when the vote was submitted.\n\t\tCreatedAt time.Time\n\t}\n)\n\n// Error returns the execution error message.\nfunc (e ExecutionError) Error() string {\n\tswitch v := e.Reason.(type) {\n\tcase string:\n\t\treturn executionErrorMsg + \": \" + v\n\tcase error:\n\t\treturn executionErrorMsg + \": \" + v.Error()\n\tdefault:\n\t\treturn executionErrorMsg\n\t}\n}\n\n// String returns the proposal status name.\nfunc (s ProposalStatus) String() string {\n\tswitch s {\n\tcase StatusReview:\n\t\treturn \"review\"\n\tcase StatusActive:\n\t\treturn \"active\"\n\tcase StatusPassed:\n\t\treturn \"passed\"\n\tcase StatusRejected:\n\t\treturn \"rejected\"\n\tcase StatusWithdrawed:\n\t\treturn \"withdrawed\"\n\tcase StatusDismissed:\n\t\treturn \"dismissed\"\n\tcase StatusFailed:\n\t\treturn \"failed\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// IsFinal checks if the status is a final status.\n// When a status is final it can't be changed to a different status.\n// Being final means that status signals the final outcome of a proposal.\nfunc (s ProposalStatus) IsFinal() bool {\n\tswitch s {\n\tcase StatusReview, StatusActive:\n\t\treturn false\n\tdefault:\n\t\treturn true\n\t}\n}\n\n// IsExecutionError checks if an error is an ExecutionError.\nfunc IsExecutionError(err error) bool {\n\tswitch err.(type) {\n\tcase ExecutionError:\n\t\treturn true\n\tcase *ExecutionError:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// WithDescription assigns a description to the proposal.\nfunc WithDescription(s string) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.description = s\n\t}\n}\n\n// WithVotingDeadline assigns a voting deadline to the proposal.\nfunc WithVotingDeadline(t time.Time) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.votingDeadline = t\n\t}\n}\n\n// WithReviewDeadline assigns a review deadline to the proposal.\n// Review status allows proposal withdraw within a time frame after the proposal is created.\n// Proposals must be activated when a review deadline is assigned.\nfunc WithReviewDeadline(t time.Time) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.reviewDeadline = t\n\t}\n}\n\n// WithVoteChangeDuration change the default grace period to change a submitted vote choice.\nfunc WithVoteChangeDuration(d time.Duration) ProposalOption {\n\treturn func(p *Proposal) {\n\t\tp.voteChangeDuration = d\n\t}\n}\n\n// NewProposal creates a new proposal.\n// By default proposals use the standard strategy with a deadline of seven days.\nfunc NewProposal(\n\tid ID,\n\tstrategy ProposalStrategy,\n\tproposer std.Address,\n\tdao *DAO,\n\ttitle string,\n\toptions ...ProposalOption,\n) (*Proposal, error) {\n\tif dao == nil {\n\t\treturn nil, errors.New(\"proposal DAO is required\")\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\treturn nil, errors.New(\"proposal title is required\")\n\t}\n\n\tnow := time.Now()\n\tp := \u0026Proposal{\n\t\tid: id,\n\t\tproposer: proposer,\n\t\ttitle: title,\n\t\tvotingDeadline: now.Add(strategy.VotingPeriod()),\n\t\tvoteChangeDuration: defaultVoteChangeDuration,\n\t\tstrategy: strategy,\n\t\tdaos: []*DAO{dao},\n\t\tvotingRecords: []*VotingRecord{NewVotingRecord()},\n\t\tcreatedAt: now,\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(p)\n\t}\n\n\t// Create the proposal as active when a review deadline is not assigned\n\tif p.reviewDeadline.IsZero() {\n\t\tp.status = StatusActive\n\t}\n\n\treturn p, nil\n}\n\n// Proposal defines a DAO proposal.\ntype Proposal struct {\n\tid ID\n\ttitle string\n\tdescription string\n\tproposer std.Address\n\tcreatedAt time.Time\n\tvotingDeadline time.Time\n\treviewDeadline time.Time\n\tvoteChangeDuration time.Duration\n\tstatus ProposalStatus\n\tstrategy ProposalStrategy\n\tdaos []*DAO\n\tvotingRecords []*VotingRecord\n\tchoice VoteChoice\n\tstatusReason string\n}\n\n// ID returns the proposal ID.\nfunc (p Proposal) ID() ID {\n\treturn p.id\n}\n\n// DAO returns the DAO that the proposal is assigned to.\n// If proposal has been promoted the returned DAO is the one where proposal has been promoted to.\nfunc (p Proposal) DAO() *DAO {\n\tcount := len(p.daos)\n\tif count == 0 {\n\t\tpanic(\"proposal is not assigned to a DAO\")\n\t}\n\treturn p.daos[count-1]\n}\n\n// InitialDAO returns the the DAO that was assigned during proposal creation.\nfunc (p Proposal) InitialDAO() *DAO {\n\tif len(p.daos) \u003e 0 {\n\t\treturn p.daos[0]\n\t}\n\treturn nil\n}\n\n// Strategy returns the strategy of the proposal.\nfunc (p Proposal) Strategy() ProposalStrategy {\n\treturn p.strategy\n}\n\n// Title returns the title of the proposal.\nfunc (p Proposal) Title() string {\n\treturn p.title\n}\n\n// Description returns the description of the proposal.\nfunc (p Proposal) Description() string {\n\treturn p.description\n}\n\n// StatusReason returns the reason that triggered the current proposal status.\n// Reason is relevant for some statuses like dismissed or failed.\nfunc (p Proposal) StatusReason() string {\n\treturn p.statusReason\n}\n\n// Proposer returns the address of the member that created the proposal.\nfunc (p Proposal) Proposer() std.Address {\n\treturn p.proposer\n}\n\n// Choice returns the winner choice.\nfunc (p Proposal) Choice() VoteChoice {\n\treturn p.choice\n}\n\n// CreatedAt returns the creation time of the proposal.\nfunc (p Proposal) CreatedAt() time.Time {\n\treturn p.createdAt\n}\n\n// Promotions returns the list of DAOs where the proposal has been promoted.\n// The result is nil when the proposal has never been promoted to another DAO.\nfunc (p Proposal) Promotions() []*DAO {\n\tif p.HasBeenPromoted() {\n\t\treturn p.daos\n\t}\n\treturn nil\n}\n\n// VotingDeadline returns the voting deadline for the proposal.\n// No more votes are allowed after this deadline.\nfunc (p Proposal) VotingDeadline() time.Time {\n\treturn p.votingDeadline\n}\n\n// ReviewDeadline returns the deadline for proposal review.\nfunc (p Proposal) ReviewDeadline() time.Time {\n\treturn p.reviewDeadline\n}\n\n// VoteChangeDuration returns the duration after voting where users can change the voted choice.\nfunc (p Proposal) VoteChangeDuration() time.Duration {\n\treturn p.voteChangeDuration\n}\n\n// Status returns the status of the proposal.\nfunc (p Proposal) Status() ProposalStatus {\n\treturn p.status\n}\n\n// Votes returns the proposal votes.\nfunc (p Proposal) Votes() []Vote {\n\treturn p.VotingRecord().Votes()\n}\n\n// VotingRecord returns the voting record of the proposal for the current DAO.\n// The record contains the number of votes for each voting choice.\nfunc (p Proposal) VotingRecord() *VotingRecord {\n\tcount := len(p.votingRecords)\n\tif count == 0 {\n\t\tpanic(\"proposal has not voting records\")\n\t}\n\treturn p.votingRecords[count-1]\n}\n\n// VotingRecords returns all voting records of the proposal.\n// Each record contains the number of votes for each DAO that the proposal was promoted to.\nfunc (p Proposal) VotingRecords() []*VotingRecord {\n\treturn p.votingRecords\n}\n\n// IsExecutable checks if the proposal is executable.\nfunc (p Proposal) IsExecutable() bool {\n\t_, ok := p.strategy.(Executer)\n\treturn ok\n}\n\n// IsChoiceAllowed checks if a vote choice is valid for the proposal.\nfunc (p Proposal) IsChoiceAllowed(choice VoteChoice) bool {\n\tfor _, c := range p.strategy.VoteChoices() {\n\t\tif c == choice {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// HasVotingDeadlinePassed checks if the voting deadline for the proposal has passed.\nfunc (p Proposal) HasVotingDeadlinePassed() bool {\n\treturn time.Now().After(p.votingDeadline)\n}\n\n// HasReviewDeadlinePassed checks if the deadline for proposal review has passed.\nfunc (p Proposal) HasReviewDeadlinePassed() bool {\n\treturn time.Now().After(p.reviewDeadline)\n}\n\n// HasBeenPromoted checks if the proposal has been promoted to another DAO.\nfunc (p Proposal) HasBeenPromoted() bool {\n\treturn len(p.daos) \u003e 1\n}\n\n// HasPromotion checks if proposal has been promoted to a DAO.\nfunc (p Proposal) HasPromotion(daoPath string) bool {\n\tfor _, dao := range p.Promotions() {\n\t\tif dao.Path() == daoPath {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// GetVotingRecord returns the voting record of a DAO.\n// Proposals can have more than one voting record if they are promoted to parent DAOs.\nfunc (p Proposal) GetVotingRecord(daoPath string) (_ *VotingRecord, found bool) {\n\tfor i, dao := range p.daos {\n\t\tif dao.Path() == daoPath {\n\t\t\t// Voting record index must match the DAO promotions index\n\t\t\treturn p.votingRecords[i], true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// Withdraw changes the status of the proposal to withdrawed.\n// Proposal must have status \"review\" to be withdrawed.\nfunc (p *Proposal) Withdraw() error {\n\tif p.status != StatusReview {\n\t\treturn ErrReviewStatusRequired\n\t}\n\n\tp.status = StatusWithdrawed\n\treturn nil\n}\n\n// Dismiss dismisses a proposal.\nfunc (p *Proposal) Dismiss(reason string) error {\n\treason = strings.TrimSpace(reason)\n\tif reason == \"\" {\n\t\treturn ErrReasonRequired\n\t}\n\n\tp.statusReason = reason\n\tp.status = StatusDismissed\n\treturn nil\n}\n\n// Fail changes the proposal status to failed.\nfunc (p *Proposal) Fail(reason string) error {\n\treason = strings.TrimSpace(reason)\n\tif reason == \"\" {\n\t\treturn ErrReasonRequired\n\t}\n\n\tp.statusReason = reason\n\tp.status = StatusFailed\n\treturn nil\n}\n\n// Activate changes the status of the proposal to active.\n// Proposal must have status \"review\" to be activated.\nfunc (p *Proposal) Activate() error {\n\tif p.status != StatusReview {\n\t\treturn ErrReviewStatusRequired\n\t}\n\n\tp.status = StatusActive\n\treturn nil\n}\n\n// Promote promotes the proposal to a parent DAO.\n// Promoting extends the voting deadline by the voting period defined for the proposal\n// strategy and also creates a new voting record for the parent DAO members.\nfunc (p *Proposal) Promote(dao *DAO) error {\n\tif !p.DAO().HasParent(dao) {\n\t\treturn ErrProposalPromote\n\t}\n\n\tp.daos = append(p.daos, dao)\n\tp.votingRecords = append(p.votingRecords, NewVotingRecord())\n\tp.votingDeadline = time.Now().Add(p.strategy.VotingPeriod())\n\treturn nil\n}\n\n// Vote submits a vote for the proposal.\nfunc (p *Proposal) Vote(addr std.Address, choice VoteChoice, reason string) error {\n\tif p.status != StatusActive {\n\t\treturn ErrProposalNotActive\n\t}\n\n\tnow := time.Now()\n\tif p.votingDeadline.Before(now) {\n\t\treturn ErrProposalVotingDeadlineMet\n\t}\n\n\tif !p.IsChoiceAllowed(choice) {\n\t\treturn ErrInvalidVoteChoice\n\t}\n\n\tif reason != \"\" {\n\t\treason = strings.TrimSpace(reason)\n\t\tif len(reason) \u003c 5 {\n\t\t\treturn ErrInvalidReason\n\t\t}\n\t}\n\n\t// When there is a vote for the account check if it's voting within the\n\t// grace period that allows changing the voted choice. This allows to\n\t// correct mistakes made when seding the vote TX within a small time frame.\n\t// TODO: Add a unit test case to check vote change\n\trecord := p.VotingRecord()\n\tfor _, v := range record.Votes() {\n\t\tif v.Address == addr {\n\t\t\tif v.CreatedAt.Add(p.voteChangeDuration).Before(now) {\n\t\t\t\treturn ErrAlreadyVoted\n\t\t\t}\n\n\t\t\trecord.Remove(addr)\n\t\t}\n\t}\n\n\t// Check the vote being submitted if vote check is required\n\tif c, ok := p.strategy.(VoteChecker); ok {\n\t\tif err := c.CheckVote(addr, choice, reason); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Account must be a member of the proposal's DAO or any of its parents to be allowed to vote\n\tvar dao *DAO\n\tif p.DAO().HasMember(addr) {\n\t\t// When the account is member of the proposal's DAO its vote is accounted\n\t\t// as a vote from this DAO even if its also member of a parent DAO.\n\t\tdao = p.DAO()\n\t} else {\n\t\t// Try to find the higher order DAO that the account is member of\n\t\tdao = findBelongingDAO(addr, p.DAO().Parent())\n\t}\n\n\tif dao == nil {\n\t\treturn ErrMemberVoteNotAllowed\n\t}\n\n\trecord.Add(Vote{\n\t\tAddress: addr,\n\t\tChoice: choice,\n\t\tReason: reason,\n\t\tDAO: dao,\n\t\tCreatedAt: time.Now(),\n\t})\n\n\treturn nil\n}\n\n// Tally counts the number of votes and updates the proposal status accordingly.\n// The outcome of counting the votes depends on the proposal strategy.\n// This function does NOT check the voting deadline, it's responsibility of the caller to do so.\nfunc (p *Proposal) Tally() error {\n\tif p.status != StatusActive {\n\t\treturn ErrProposalNotActive\n\t}\n\n\t// Check if the required quorum is met\n\trecord := p.VotingRecord()\n\tpercentage := float64(record.VoteCount()) / float64(len(p.DAO().Members()))\n\tif percentage \u003c p.strategy.Quorum() {\n\t\tp.status = StatusRejected\n\t\tp.statusReason = \"low participation\"\n\t\treturn nil\n\t}\n\n\t// Tally votes and update proposal with the outcome\n\tchoice := p.strategy.Tally(p.DAO(), *record)\n\n\tswitch choice {\n\tcase ChoiceYes:\n\t\tp.choice = ChoiceYes\n\t\tp.status = StatusPassed\n\tcase ChoiceNo:\n\t\tp.choice = ChoiceNo\n\t\tp.status = StatusRejected\n\tdefault:\n\t\tp.status = StatusRejected\n\t}\n\treturn nil\n}\n\nfunc (p *Proposal) Validate() error {\n\tif v, ok := p.strategy.(Validator); ok {\n\t\tif err := v.Validate(p); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Execute executes the proposal.\nfunc (p *Proposal) Execute() error { // TODO: Write test for proposal execute\n\tif p.status != StatusPassed {\n\t\treturn ErrProposalNotPassed\n\t}\n\n\tif e, ok := p.strategy.(Executer); ok {\n\t\tif err := p.Validate(); err != nil {\n\t\t\treturn ExecutionError{err}\n\t\t}\n\n\t\tif err := e.Execute(p.InitialDAO()); err != nil {\n\t\t\treturn ExecutionError{err}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc findBelongingDAO(addr std.Address, node *DAO) *DAO {\n\tif node == nil {\n\t\treturn nil\n\t}\n\n\t// Before checking the current DAO try to find\n\t// if address is a member of a higher order DAO\n\tdao := findBelongingDAO(addr, node.parent)\n\tif dao == nil \u0026\u0026 node.HasMember(addr) {\n\t\treturn node\n\t}\n\treturn nil\n}\n"},{"name":"proposal_test.gno","body":"package dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nvar (\n\tfutureTime = time.Now().Add(time.Hour)\n\tzeroTime = time.Time{}\n)\n\n// TODO: Improve proposal unit test using test cases and adding missing methods\nfunc TestProposal(t *testing.T) {\n\tcases := []struct {\n\t\tname, title, description string\n\t\tdao *gnome.DAO\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"test\", \"Test\"),\n\t\t\ttitle: \"Proposal\",\n\t\t\tdescription: \"Test proposal\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty DAO\",\n\t\t\terr: errors.New(\"proposal DAO is required\"),\n\t\t},\n\t\t{\n\t\t\tname: \"empty title\",\n\t\t\tdao: gnome.MustNew(\"test\", \"Test\"),\n\t\t\terr: errors.New(\"proposal title is required\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tid := gnome.ID(1)\n\t\t\tproposer := testutils.TestAddress(\"proposer\")\n\t\t\tstrategy := testStrategy{}\n\t\t\tstatus := gnome.StatusActive\n\t\t\topts := []gnome.ProposalOption{\n\t\t\t\tgnome.WithDescription(tc.description),\n\t\t\t}\n\n\t\t\t// Act\n\t\t\tproposal, err := gnome.NewProposal(id, strategy, proposer, tc.dao, tc.title, opts...)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.ID(); got != id {\n\t\t\t\tt.Fatalf(\"expected ID: %d, got: %d\", id, got)\n\t\t\t}\n\n\t\t\tif got := proposal.DAO(); got.Name() != tc.dao.Name() {\n\t\t\t\tt.Fatalf(\"expected DAO: '%s', got: '%s'\", tc.dao.Name(), got.Name())\n\t\t\t}\n\n\t\t\tif got := proposal.Title(); got != tc.title {\n\t\t\t\tt.Fatalf(\"expected title: '%s', got: '%s'\", tc.title, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Description(); got != tc.description {\n\t\t\t\tt.Fatalf(\"expected description: '%s', got: '%s'\", tc.description, got)\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != \"\" {\n\t\t\t\tt.Fatalf(\"expected empty dismiss reason, got: '%s'\", got)\n\t\t\t}\n\n\t\t\tif got := proposal.Proposer(); got != proposer {\n\t\t\t\tt.Fatalf(\"expected proposer: '%s', got: '%s'\", proposer, got)\n\t\t\t}\n\n\t\t\tif got := proposal.CreatedAt(); got.IsZero() {\n\t\t\t\tt.Fatalf(\"expected a valid creation time, got: '%s'\", got.String())\n\t\t\t}\n\n\t\t\tif c := len(proposal.Promotions()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected an empty list of promotions, got: %d DAOs\", c)\n\t\t\t}\n\n\t\t\tif got := proposal.VotingDeadline(); got.IsZero() {\n\t\t\t\tt.Fatalf(\"expected a valid deadline time, got: '%s'\", got.String())\n\t\t\t}\n\n\t\t\tnow := time.Now()\n\t\t\tif got := proposal.VotingDeadline(); got.Before(now) { // TODO: Using after makes assertion fail (?)\n\t\t\t\tt.Fatalf(\"expected deadline to happen after: '%s', got: '%s'\", now.String(), got.String())\n\t\t\t}\n\n\t\t\tif got := proposal.Status(); got != status {\n\t\t\t\tt.Fatalf(\"expected status: %d, got: %d\", status, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Strategy().Name(); got != strategy.Name() {\n\t\t\t\tt.Fatalf(\"expected strategy: '%s', got: '%s'\", strategy.Name(), got)\n\t\t\t}\n\n\t\t\tif got := proposal.Strategy().Name(); got != strategy.Name() {\n\t\t\t\tt.Fatalf(\"expected strategy: '%s', got: '%s'\", strategy.Name(), got)\n\t\t\t}\n\n\t\t\tif c := len(proposal.Votes()); c != 0 {\n\t\t\t\tt.Fatalf(\"expected no votes, got: %d votes\", c)\n\t\t\t}\n\n\t\t\tif c := proposal.VotingRecord().VoteCount(); c != 0 {\n\t\t\t\tt.Fatalf(\"expected an empty votes record, got: %d records\", c)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalWithdraw(t *testing.T) {\n\t// TODO: Test success cases where proposal status is review\n\twantErr := gnome.ErrReviewStatusRequired\n\twantStatus := gnome.StatusWithdrawed\n\tproposal := mustCreateProposal(t, testStrategy{}, gnome.WithReviewDeadline(futureTime))\n\n\tif err := proposal.Withdraw(); err != nil {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", err.Error())\n\t}\n\n\tif err := proposal.Withdraw(); err != wantErr {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", wantErr.Error(), err.Error())\n\t}\n\n\tif got := proposal.Status(); got != wantStatus {\n\t\tt.Fatalf(\"expected status: %d, got: %d\", wantStatus, got)\n\t}\n}\n\nfunc TestProposalDismiss(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason string\n\t\tstatus gnome.ProposalStatus\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Foo\",\n\t\t\tstatus: gnome.StatusDismissed,\n\t\t},\n\t\t{\n\t\t\tname: \"empty reason\",\n\t\t\terr: gnome.ErrReasonRequired,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{})\n\n\t\t\t// Act\n\t\t\terr := proposal.Dismiss(tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %s, got: %s\", tc.status.String(), got.String())\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected dismiss reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalActivate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tstatus gnome.ProposalStatus\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tstatus: gnome.StatusActive,\n\t\t},\n\t\t{\n\t\t\tname: \"review status required\",\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tp.Activate()\n\t\t\t},\n\t\t\terr: gnome.ErrReviewStatusRequired,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{}, gnome.WithReviewDeadline(futureTime))\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Activate()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %s, got: %s\", tc.status.String(), got.String())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalPromote(t *testing.T) {\n\tstrategy := testStrategy{}\n\taddr := testutils.TestAddress(\"proposer\")\n\tcases := []struct {\n\t\tname string\n\t\tdaoNames []string\n\t\tsetup func() (*gnome.Proposal, *gnome.DAO)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"promote to parent\",\n\t\t\tdaoNames: []string{\"child\", \"parent\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tparent := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, parent\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"promote to root\",\n\t\t\tdaoNames: []string{\"child\", \"root\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\troot := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child)),\n\t\t\t\t))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, root\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"promote to non parent\",\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\treturn p, gnome.MustNew(\"foo\", \"Foo\")\n\t\t\t},\n\t\t\terr: gnome.ErrProposalPromote,\n\t\t},\n\t\t{\n\t\t\tname: \"promote with one promotion\",\n\t\t\tdaoNames: []string{\"child\", \"parent\", \"root\"},\n\t\t\tsetup: func() (*gnome.Proposal, *gnome.DAO) {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tparent := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\troot := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(parent))\n\t\t\t\tp, _ := gnome.NewProposal(1, strategy, addr, child, \"Title\")\n\t\t\t\tp.Promote(parent)\n\t\t\t\treturn p, root\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tp, dao := tc.setup()\n\n\t\t\tdeadline := time.Now().Add(-time.Hour * 24)\n\t\t\tp.votingDeadline = deadline // Change deadline to check that its resetted on promote\n\n\t\t\tp.VotingRecord().Add(gnome.Vote{}) // Add a single dummy vote for the current DAO\n\n\t\t\t// Act\n\t\t\terr := p.Promote(dao)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !p.HasBeenPromoted() {\n\t\t\t\tt.Fatal(\"expected proposal to be promotedt\")\n\t\t\t}\n\n\t\t\tif !p.HasPromotion(dao.Path()) {\n\t\t\t\tt.Fatal(\"expected proposal promotions to include the DAO\")\n\t\t\t}\n\n\t\t\tif got := p.VotingDeadline(); !got.After(deadline) {\n\t\t\t\tt.Fatalf(\"expected voting deadline to be greater than original deadline: %d, got: %d\", deadline.Unix(), got.Unix())\n\t\t\t}\n\n\t\t\tif p.VotingRecord().VoteCount() != 0 {\n\t\t\t\tt.Fatal(\"expected the voting record to be empty\")\n\t\t\t}\n\n\t\t\tpromotions := p.Promotions()\n\t\t\tif c := len(promotions); c != len(tc.daoNames) {\n\t\t\t\tt.Fatalf(\"expected promotions count: %d, got: %d DAOs\", len(tc.daoNames), c)\n\t\t\t}\n\n\t\t\tfor i, dao := range promotions {\n\t\t\t\tif got := dao.Name(); tc.daoNames[i] != got {\n\t\t\t\t\tt.Fatalf(\"expected DAO name: '%s', got: '%s'\", tc.daoNames[i], got)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalVote(t *testing.T) {\n\tmemberAddr := testutils.TestAddress(\"member\")\n\tsetupDAOMember := func(p *gnome.Proposal) {\n\t\tp.DAO().AddMember(gnome.NewMember(memberAddr))\n\t}\n\n\tcases := []struct {\n\t\tname, reason string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tvoteCount int\n\t\toptions []gnome.ProposalOption\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tvoteCount: 1,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal not active\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithReviewDeadline(futureTime),\n\t\t\t},\n\t\t\terr: gnome.ErrProposalNotActive,\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tsetupDAOMember(p)\n\t\t\t\tp.Withdraw()\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"vote with invalid reason\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"1234\",\n\t\t\terr: gnome.ErrInvalidReason,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"already voted\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tvoteCount: 1,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithVoteChangeDuration(-1),\n\t\t\t},\n\t\t\terr: gnome.ErrAlreadyVoted,\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tsetupDAOMember(p)\n\t\t\t\tp.Vote(memberAddr, gnome.ChoiceYes, \"\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"vote after proposal deadline\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\toptions: []gnome.ProposalOption{\n\t\t\t\tgnome.WithVotingDeadline(zeroTime),\n\t\t\t},\n\t\t\terr: gnome.ErrProposalVotingDeadlineMet,\n\t\t\tsetup: setupDAOMember,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote not allowed\",\n\t\t\taddress: memberAddr,\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\terr: gnome.ErrMemberVoteNotAllowed,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, testStrategy{}, tc.options...)\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Vote(tc.address, tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\n\t\t\tvotes := proposal.Votes()\n\t\t\tvoteCount := len(votes)\n\t\t\tif voteCount != tc.voteCount {\n\t\t\t\tt.Fatalf(\"expected %d vote(s), got: %d\", tc.voteCount, voteCount)\n\t\t\t}\n\n\t\t\tif voteCount \u003e 0 {\n\t\t\t\tif got := votes[0].Address; got != tc.address {\n\t\t\t\t\tt.Fatalf(\"expected vote address: '%s', got: '%s'\", tc.address, got)\n\t\t\t\t}\n\n\t\t\t\tif got := votes[0].Choice; got != tc.choice {\n\t\t\t\t\tt.Fatalf(\"expected vote choice: '%s', got: '%s'\", tc.choice, got)\n\t\t\t\t}\n\n\t\t\t\tif got := votes[0].Reason; got != tc.reason {\n\t\t\t\t\tt.Fatalf(\"expected vote reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestProposalTally(t *testing.T) {\n\taddresses := [3]std.Address{\n\t\ttestutils.TestAddress(\"member1\"),\n\t\ttestutils.TestAddress(\"member2\"),\n\t\ttestutils.TestAddress(\"member3\"),\n\t}\n\tsetupDAOMembers := func(p *gnome.Proposal) {\n\t\tdao := p.DAO()\n\t\tfor _, addr := range addresses {\n\t\t\tdao.AddMember(gnome.NewMember(addr))\n\t\t}\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t\tstrategy gnome.ProposalStrategy\n\t\tstatus gnome.ProposalStatus\n\t\tstatusReason string\n\t\tvotingDeadlinePassed bool\n\t\toptions []gnome.ProposalOption\n\t\tsetup func(*gnome.Proposal)\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"proposal pass\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t\t{Address: addresses[1], Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\tstrategy: testStrategy{gnome.ChoiceYes},\n\t\t\tstatus: gnome.StatusPassed,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal rejected\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t\t{Address: addresses[1], Choice: gnome.ChoiceNo},\n\t\t\t\t{Address: addresses[2], Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\tstrategy: testStrategy{gnome.ChoiceNo},\n\t\t\tstatus: gnome.StatusRejected,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Address: addresses[0], Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tstrategy: testStrategy{},\n\t\t\tstatus: gnome.StatusRejected,\n\t\t\tstatusReason: \"low participation\",\n\t\t\toptions: []gnome.ProposalOption{gnome.WithVotingDeadline(zeroTime)},\n\t\t\tsetup: setupDAOMembers,\n\t\t},\n\t\t{\n\t\t\tname: \"proposal not active\",\n\t\t\tstatus: gnome.StatusWithdrawed,\n\t\t\toptions: []gnome.ProposalOption{gnome.WithReviewDeadline(futureTime)},\n\t\t\tstrategy: testStrategy{},\n\t\t\tsetup: func(p *gnome.Proposal) {\n\t\t\t\tp.Withdraw()\n\t\t\t},\n\t\t\terr: gnome.ErrProposalNotActive,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tproposal := mustCreateProposal(t, tc.strategy, tc.options...)\n\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\t// Add votes directly to the record because deadline might be expired for some test cases\n\t\t\t\tproposal.VotingRecord().Add(v)\n\t\t\t}\n\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(proposal)\n\t\t\t}\n\n\t\t\t// Act\n\t\t\terr := proposal.Tally()\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\n\t\t\tif got := proposal.Status(); got != tc.status {\n\t\t\t\tt.Fatalf(\"expected status: %d, got: %d\", tc.status, got)\n\t\t\t}\n\n\t\t\tif got := proposal.StatusReason(); got != tc.statusReason {\n\t\t\t\tt.Fatalf(\"expected status reason: '%s', got: '%s'\", tc.statusReason, got)\n\t\t\t}\n\n\t\t\tif got := proposal.Choice(); got != tc.choice {\n\t\t\t\tt.Fatalf(\"expected winner choice: '%s', got: '%s'\", tc.choice, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mustCreateProposal(t *testing.T, s gnome.ProposalStrategy, options ...gnome.ProposalOption) *gnome.Proposal {\n\tt.Helper()\n\n\tdao := gnome.MustNew(\"test\", \"Test\")\n\taddr := testutils.TestAddress(\"proposer\")\n\tproposal, err := gnome.NewProposal(1, s, addr, dao, \"Title\", options...)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\treturn proposal\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n\ntype testStrategy struct {\n\tChoice gnome.VoteChoice\n}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return s.Choice }\n\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n"},{"name":"record.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// VotingRecordIterFn defines the a callback to iterate voting choices.\ntype VotingRecordIterFn func(_ VoteChoice, voteCount uint) bool\n\n// NewVotingRecord creates a new voting record.\nfunc NewVotingRecord() *VotingRecord {\n\treturn \u0026VotingRecord{}\n}\n\n// VotingRecord mamages votes and vote count.\ntype VotingRecord struct {\n\tvotes []Vote\n\tcounter avl.Tree // VoteChoice -\u003e count (uint)\n}\n\n// Votes return the list of votes.\nfunc (r VotingRecord) Votes() []Vote {\n\treturn r.votes\n}\n\n// VoteCount returns the number of votes.\nfunc (r VotingRecord) VoteCount() int {\n\treturn len(r.votes)\n}\n\n// Get returns the number of votes for vote choice.\nfunc (r VotingRecord) Get(c VoteChoice) uint {\n\tkey := string(c)\n\tif v, ok := r.counter.Get(key); ok {\n\t\treturn v.(uint)\n\t}\n\treturn 0\n}\n\n// Add adds a vote to the record.\nfunc (r *VotingRecord) Add(v Vote) {\n\tr.votes = append(r.votes, v)\n\tkey := string(v.Choice)\n\tr.counter.Set(key, r.Get(v.Choice)+1)\n}\n\n// Remove removes a vote from the record.\nfunc (r *VotingRecord) Remove(addr std.Address) bool {\n\tfor i, v := range r.votes {\n\t\tif v.Address == addr {\n\t\t\tr.votes = append(r.votes[:i], r.votes[i+1:]...)\n\t\t\tkey := string(v.Choice)\n\t\t\tr.counter.Set(key, r.Get(v.Choice)-1)\n\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Iterate iterates all vote choices.\nfunc (r VotingRecord) Iterate(fn VotingRecordIterFn) bool {\n\treturn r.counter.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tchoice := VoteChoice(key)\n\t\treturn fn(choice, value.(uint))\n\t})\n}\n\n// SelectChoiceByMajority select the vote choice by majority.\n// Vote choice is a majority when chosen by more than half of the votes.\n// Majority type is defined by the caller depending on the vote records and abstentions, it would be\n// absolute majority if abstentions are considered, otherwise it would be considered simple majority.\nfunc SelectChoiceByMajority(r VotingRecord, abstentions int) (VoteChoice, bool) {\n\tvotesCount := r.VoteCount() + abstentions\n\tchoice := getMajorityChoice(r)\n\tisMajority := r.Get(choice) \u003e uint(votesCount/2)\n\treturn choice, isMajority\n}\n\n// SelectChoiceBySuperMajority select the vote choice by super majority using a 2/3s threshold.\n// Abstentions are not considered when calculating the super majority choice.\nfunc SelectChoiceBySuperMajority(r VotingRecord) (VoteChoice, bool) {\n\tchoice := getMajorityChoice(r)\n\tisMajority := r.Get(choice) \u003e uint((2*r.VoteCount())/3) // TODO: Allow threshold customization\n\treturn choice, isMajority\n}\n\n// SelectChoiceByPlurality selects the vote choice by plurality.\n// The choice will be considered a majority if it has votes and if there is no other\n// choice with the same number of votes. A tie won't be considered majority.\nfunc SelectChoiceByPlurality(r VotingRecord) (VoteChoice, bool) {\n\tvar (\n\t\tchoice VoteChoice\n\t\tcurrentCount uint\n\t\tisMajority bool\n\t)\n\n\tr.Iterate(func(c VoteChoice, count uint) bool {\n\t\tif currentCount \u003c count {\n\t\t\tchoice = c\n\t\t\tcurrentCount = count\n\t\t\tisMajority = true\n\t\t} else if currentCount == count {\n\t\t\tisMajority = false\n\t\t}\n\t\treturn false\n\t})\n\treturn choice, isMajority\n}\n\n// getMajorityChoice returns the choice voted by the majority.\n// The result is only valid when there is a majority.\n// Caller must validate that the returned choice represents a majority.\nfunc getMajorityChoice(r VotingRecord) VoteChoice {\n\tvar (\n\t\tchoice VoteChoice\n\t\tcurrentCount uint\n\t)\n\n\tr.Iterate(func(c VoteChoice, count uint) bool {\n\t\tif currentCount \u003c count {\n\t\t\tchoice = c\n\t\t\tcurrentCount = count\n\t\t}\n\t\treturn false\n\t})\n\n\treturn choice\n}\n"},{"name":"record_test.gno","body":"package dao\n\nimport (\n\t\"testing\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestVotingRecord(t *testing.T) {\n\t// Act\n\trecord := NewVotingRecord()\n\n\t// Assert\n\tif got := record.Votes(); got != nil {\n\t\tt.Fatalf(\"expected no votes, got: %d\", len(got))\n\t}\n\n\tif got := record.VoteCount(); got != 0 {\n\t\tt.Fatalf(\"expected no vote count: 0, got: %d\", got)\n\t}\n}\n\nfunc TestVotingRecordAdd(t *testing.T) {\n\t// Arrange\n\trecord := NewVotingRecord()\n\tvote := gnome.Vote{Choice: gnome.ChoiceYes}\n\n\t// Act\n\trecord.Add(vote)\n\n\t// Assert\n\tvotes := record.Votes()\n\tif c := len(votes); c != 1 {\n\t\tt.Fatalf(\"expected one votes, got: %d\", c)\n\t}\n\n\tif got := votes[0]; got != vote {\n\t\tt.Fatalf(\"expected vote: %v, got: %v\", vote, got)\n\t}\n\n\tif got := record.VoteCount(); got != 1 {\n\t\tt.Fatalf(\"expected vote count: %d, got: %d\", 1, got)\n\t}\n\n\tif got := record.Get(vote.Choice); got != 1 {\n\t\tt.Fatalf(\"expected record to get one '%v' count, got: %d\", gnome.ChoiceYes, got)\n\t}\n\n\trecord.Iterate(func(v gnome.VoteChoice, count uint) bool {\n\t\tif v != gnome.ChoiceYes {\n\t\t\tt.Fatalf(\"expected iterate choice: %v, got: %v\", gnome.ChoiceYes, v)\n\t\t}\n\n\t\tif count != 1 {\n\t\t\tt.Fatalf(\"expected iterate vote count: %d, got: %d\", 1, count)\n\t\t}\n\n\t\treturn false\n\t})\n}\n\nfunc TestVotingRecordRemove(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for VotingRecord.Remove()\")\n}\n\nfunc TestSelectChoiceByMajority(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceByMajority\")\n}\n\nfunc TestSelectChoiceBySuperMajority(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceBySuperMajority\")\n}\n\nfunc TestSelectChoiceByPlurality(t *testing.T) {\n\tt.Skip(\"TODO: Write unit test for SelectChoiceByPlurality\")\n}\n"},{"name":"render.gno","body":"package dao\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EscapeHTML escapes special characters like \"\u003c\" to become \"\u0026lt;\".\n// It escapes only five such characters: \u003c, \u003e, \u0026, ' and \".\nfunc EscapeHTML(s string) string {\n\ts = strings.ReplaceAll(s, `\u0026`, \"\u0026amp;\")\n\ts = strings.ReplaceAll(s, `\"`, \"\u0026#34;\")\n\ts = strings.ReplaceAll(s, `'`, \"\u0026#39;\")\n\ts = strings.ReplaceAll(s, `\u003c`, \"\u0026lt;\")\n\treturn strings.ReplaceAll(s, `\u003e`, \"\u0026gt;\")\n}\n\n// NewLink creates a new Markdown link.\nfunc NewLink(text, uri string) string {\n\treturn ufmt.Sprintf(\"[%s](%s)\", text, uri)\n}\n\n// NewLinkURI creates a new Markdown link where text and URI are the same.\nfunc NewLinkURI(uri string) string {\n\treturn ufmt.Sprintf(\"[%s](%s)\", uri, uri)\n}\n"},{"name":"strategy.gno","body":"package dao\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\ntype (\n\t// VoteChoiceRecord contains the number of counted votes for a single voting choice.\n\tVoteChoiceRecord struct {\n\t\tChoice VoteChoice\n\t\tCount uint\n\t}\n\n\t// ProposalStrategy defines the interface for the different proposal types.\n\tProposalStrategy interface {\n\t\t// Name returns the name of the strategy.\n\t\tName() string\n\n\t\t// Quorum returns the minimum required percentage of DAO member votes\n\t\t// required for a proposal to pass.\n\t\tQuorum() float64\n\n\t\t// VotingPeriod returns the period that a proposal should allow voting.\n\t\tVotingPeriod() time.Duration\n\n\t\t// VoteChoices returns the valid voting choices for the strategy.\n\t\tVoteChoices() []VoteChoice\n\n\t\t// Tally counts the votes and returns the winner voting choice.\n\t\t// The DAO argument is the DAO that the proposal is currently assigned to,\n\t\t// by default the one where the proposal was created.\n\t\t// Proposals can be promoted to parent DAOs in which case the DAO argument\n\t\t// is the DAO where the proposal was promoted the last time.\n\t\tTally(*DAO, VotingRecord) VoteChoice\n\t}\n)\n\n// VoteChecker defines an interface for proposal vote validation.\n// Proposal strategies that require checking votes when they are submitted should implement it.\ntype VoteChecker interface {\n\t// CheckVote checks that a vote is valid for the strategy.\n\tCheckVote(member std.Address, choice VoteChoice, reason string) error\n}\n\n// Executer defines an interface for executable proposals.\n// Proposals strategies that implement the interface can modify the DAO state when proposal passes.\ntype Executer interface {\n\t// Execute executes the proposal.\n\t// The DAO argument is the DAO where the proposal was created, even if the proposal has been promoted\n\t// to a parent DAO.\n\t// TODO: Execute should return some feedback on success\n\tExecute(*DAO) error\n}\n\n// Validator defines an interface for proposal validation.\n// Proposal strategies that implement the interface can validate that a proposal is valid for the current state.\ntype Validator interface {\n\t// Validate validates if a proposal is valid for the current state.\n\tValidate(*Proposal) error\n}\n\n// ParamsRenderer defines an interface to allow strategies to render its input parameters.\ntype ParamsRenderer interface {\n\t// RenderParams returns a markdown with the rendered strategy parameters.\n\tRenderParams() string\n}\n"},{"name":"uri.gno","body":"package dao\n\nimport (\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar reSlug = regexp.MustCompile(\"^[a-zA-Z]+[a-zA-Z0-9-_]*$\")\n\n// IsSlug checks if a string is a valid slug.\nfunc IsSlug(s string) bool {\n\treturn reSlug.MatchString(s)\n}\n\n// SplitRealmURI splits a Gnoland URI into Realm URI and render path.\nfunc SplitRealmURI(uri string) (realmURI, renderPath string) {\n\tif uri == \"\" {\n\t\treturn\n\t}\n\n\tparts := strings.SplitN(uri, \":\", 2)\n\trealmURI = parts[0]\n\tif len(parts) \u003e 1 {\n\t\trenderPath = parts[1]\n\t}\n\treturn\n}\n\n// CutRealmDomain cuts out the Gnoland domain prefix from a URI.\nfunc CutRealmDomain(uri string) string {\n\trealmPath, _ := strings.CutPrefix(uri, \"gno.land\")\n\treturn realmPath\n}\n"},{"name":"uri_test.gno","body":"package dao\n\nimport (\n\t\"testing\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestSplitRealmURI(t *testing.T) {\n\tcases := []struct {\n\t\tname, uri, realmURI, renderPath string\n\t}{\n\t\t{\n\t\t\tname: \"realm URI\",\n\t\t\turi: \"gno.land/r/gnome\",\n\t\t\trealmURI: \"gno.land/r/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"realm URI with render path\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar\",\n\t\t\trealmURI: \"gno.land/r/gnome\",\n\t\t\trenderPath: \"foo/bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"realm URI with render path\",\n\t\t\turi: \"gno.land/r/gnome:foo/bar\",\n\t\t\trealmURI: \"gno.land/r/gnome\",\n\t\t\trenderPath: \"foo/bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty URI\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\trealmURI, renderPath := gnome.SplitRealmURI(tc.uri)\n\n\t\t\t// Assert\n\t\t\tif realmURI != tc.realmURI {\n\t\t\t\tt.Fatalf(\"expected realm URI: '%s', got: '%s'\", tc.realmURI, realmURI)\n\t\t\t}\n\n\t\t\tif renderPath != tc.renderPath {\n\t\t\t\tt.Fatalf(\"expected render path: '%s', got: '%s'\", tc.renderPath, renderPath)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCutRealmDomain(t *testing.T) {\n\tcases := []struct {\n\t\tname, uri, path string\n\t}{\n\t\t{\n\t\t\tname: \"with domain\",\n\t\t\turi: \"gno.land/r/gnome\",\n\t\t\tpath: \"/r/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"without domain\",\n\t\t\turi: \"/r/gnome\",\n\t\t\tpath: \"/r/gnome\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tpath := gnome.CutRealmDomain(tc.uri)\n\n\t\t\t// Assert\n\t\t\tif path != tc.path {\n\t\t\t\tt.Fatalf(\"expected path: '%s', got: '%s'\", tc.path, path)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"16000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vr6UADGoC6Y/ALC0KV5DRmnY6g3C4SIaz4qcGDVvDcWEUzR52yC6QJC3RA+4VZQtP5ptO2CVAV0/ZYFSOCO4Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"echorender","path":"gno.land/r/g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun/echorender","files":[{"name":"echorender.gno","body":"package echorender\n\nfunc Render(path string) string {\n\treturn \"Render path: \" + path\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PIj/v4UBH44ynpH0ucJ1uVTVks7/4ncJP2jsgOOYn8C1ifs3W4t53ne8p/mHyyQv1LehXGaiowkfzRX3oKw0Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"gnome","path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"gnome.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nconst (\n\t// Names of the initial DAOs.\n\tnameCouncilDAO = \"council\"\n\tnameMainDAO = \"main\"\n\n\t// Minimum number of members per DAO.\n\t// This requirement is enforced because two members DAO can only use plurality to tally.\n\tminMembersCount = 3\n\n\t// Review deadline defines the time after which a proposal can't be withdrawed by the proposer.\n\t// Proposal can only be voted on after this deadline but not before.\n\t// This greace period gives the proposer the chance to withdraw a proposal if there is a mistake.\n\treviewDeadline = time.Second\n)\n\n// Member roles\n// TODO: Define the list of Gnome DAO roles\nconst (\n\tRoleDirector gnome.Role = \"director\"\n\tRoleEcoDev gnome.Role = \"eco-dev\"\n\tRoleDev gnome.Role = \"dev\"\n\tRoleRealm gnome.Role = \"realm\"\n)\n\n// The \"Gno.me\" DAO defines an initial root DAO with a single sub DAO, where the root is\n// the council DAO and the child is the main DAO. Council DAO members are hard coded and\n// can't be modified. Main DAO members can be modified anytime though a modify DAO members\n// proposals.\n//\n// The main DAO must have a minimum of three members at all time to be able to apply 2/3s\n// voting majority criteria required for some proposal types allowed for the main DAO.\n//\n// Sub DAOs can be created though sub DAO add proposals but its members can't be modified\n// once the sub DAO is created. Sub DAOs must be dismissed though a proposal and a new sub\n// DAO must be created if its members must be modified.\nvar gnomeDAO = gnome.MustNew(\n\tnameCouncilDAO,\n\t\"Council\",\n\tgnome.WithManifest(\"Gnomes are thinking\"),\n\tgnome.AssignAsSuperCouncil(),\n\tgnome.WithMembers(\n\t\tgnome.NewMember(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\"),\n\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\"),\n\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\"),\n\t),\n\tgnome.WithSubDAO(\n\t\tgnome.MustNew(\n\t\t\tnameMainDAO,\n\t\t\t\"Main\",\n\t\t\tgnome.WithManifest(\"Gnomes are building\"),\n\t\t\tgnome.WithMembers(\n\t\t\t\tgnome.NewMember(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\", RoleDev),\n\t\t\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\", RoleDev),\n\t\t\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t\t\t),\n\t\t),\n\t),\n)\n\n// SubmitProposal submits a new proposal.\n//\n// This function allows other realms to submit custom proposal types.\n// Realms must have a DAO assigned to their address to be able to create proposals in the assigned\n// DAO or any of its sub DAOs.\n//\n// Parameters:\n// - title: A title for the proposal (required)\n// - description: A description of the proposal\n// - strategy: A strategy for the new proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n//\n// The DAO where the proposal is created is by default the DAO assigned to the caller realm address.\nfunc SubmitProposal(title, description string, s gnome.ProposalStrategy, daoPath string) gnome.ID {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tid := genProposalID()\n\tp, err := gnome.NewProposal(id, s, caller, dao, title, gnome.WithDescription(description))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\treturn p.ID()\n}\n\n// SubmitGeneralProposal submits a new general proposal.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n// Default voting period is 2 days but can optionally go up to 10 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - votingDeadline: Number of days until the voting period ends (default: 2)\n//\n// The name of the DAO where the proposal is created is a slug, where \"council\"\n// is the Council DAO and \"main\" is the name of the Main DAO.\n//\n// The voting period deadline for the proposal must be between 2 and 10 days.\n// It defaults to 2 days when `votingDeadline` value is 0.\nfunc SubmitGeneralProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tvotingDeadline uint,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\topts := []gnome.ProposalOption{\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(reviewDeadline)),\n\t}\n\n\tif votingDeadline != 0 {\n\t\tif votingDeadline \u003c 2 || votingDeadline \u003e 10 {\n\t\t\tpanic(\"voting period deadline must be between 2 and 10 days\")\n\t\t}\n\n\t\tdeadline := time.Now().Add(time.Hour * 24 * time.Duration(votingDeadline))\n\t\topts = append(opts, gnome.WithVotingDeadline(deadline))\n\t}\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tp, err := gnome.NewProposal(genProposalID(), newGeneralStrategy(), caller, dao, proposalTitle, opts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAOCreationProposal submits a new proposal to add a sub DAO to an existing DAO.\n//\n// Proposal requires the participation of all DAO members, otherwise the outcome will be low participation.\n// Default voting period is 7 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - parentDAOPath: Path of the sub DAO's parent (required)\n// - subDAOName: Slug name of the new sub DAO (required)\n// - subDAOTitle: A title for the new sub DAO (required)\n// - subDAOManifest: Sub DAO manifest (required)\n// - subDAOMembers: List of sub DAO member addresses (required)\n//\n// Sub DAO name must be a slug allows letters from \"a\" to \"z\", numbers, \"-\" and \"_\" as valid characters.\n//\n// The list of sub DAO members must be a newline separated list of addresses, with a minimum of 2 addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitSubDAOCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tparentDAOPath,\n\tsubDAOName,\n\tsubDAOTitle,\n\tsubDAOManifest,\n\tsubDAOMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(parentDAOPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tif daos.HasPathKey(subDAOPath) {\n\t\tpanic(\"sub DAO name is already taken by another DAO\")\n\t}\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tmembers := gnome.MustParseStringToMembers(subDAOMembers)\n\tassertMemberRolesExist(members)\n\n\tstrategy := newSubDAOCreationStrategy(daos, subDAOName, subDAOTitle, subDAOManifest, members)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(reviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAODismissalProposal submits a new proposal to dismiss a sub DAO.\n//\n// Dismissing a sub DAO also dismisses all active proposals and any sub DAO below the dismissed DAO tree.\n// Only the direct parent of a DAO can create a proposal to dismiss any of its fist level sub DAOs.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by plurality.\n// Default voting period is 7 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - subDAOName: Slug name of the sub DAO to dismiss (required)\nfunc SubmitSubDAODismissalProposal(proposalTitle, daoPath, subDAOName string) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tsubDAO := mustGetDAO(subDAOPath)\n\tassertDAOIsNotDismissed(subDAO)\n\n\tcaller := std.GetOrigCaller()\n\tstrategy := newSubDAODismissalStrategy(subDAO, proposals)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithReviewDeadline(time.Now().Add(reviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOMembersModificationProposal submits a new proposal to modify the members of a DAO.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by super majority with a 2/3s threshold. Abstentions are not considered.\n// Default voting period is 7 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - newMembers: List of member addresses to add to Main DAO\n// - removeMembers: List of member addresses to remove from the Main DAO\n//\n// At leat one member address is required either to be added or removed from the DAO.\n// Members can be added and removed within the same proposal.\n//\n// Each list of members must be newline separated list of addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitDAOMembersModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tnewMembers,\n\tremoveMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tmembersToAdd := gnome.MustParseStringToMembers(newMembers)\n\tassertMemberRolesExist(membersToAdd)\n\tmembersToRemove := gnome.MustParseStringToMembers(removeMembers)\n\tassertMemberRolesExist(membersToRemove)\n\n\tstrategy := newDAOMembersModificationStrategy(membersToAdd, membersToRemove)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(reviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitBudgetProposal submits a new budget proposal.\n//\n// Only membes of the Council or Main DAO can vote on this type of proposals.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n// Default voting period is 7 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - budget: The proposal budget (required)\n//\n// Budget doesn't enforce any specific format right now but an example format that\n// could be used is amount plus symbol, for example 100UGNOT, 100000USD, etc.\nfunc SubmitBudgetProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tbudget string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newBudgetStrategy(gnomeDAO, budget)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(reviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// WithdrawProposal withdraws a proposal.\n// Proposals can only be withdrawed by the account that creates it when the state is \"review\".\n// They can't be withdrawed once the review deadline of one hour after creation is met.\nfunc WithdrawProposal(proposalID uint64) string {\n\tassertDAOIsNotLocked()\n\n\tp := mustGetProposal(proposalID)\n\tassertCallerCanWithdraw(p)\n\n\tif err := p.Withdraw(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tAdvanceProposals()\n\n\treturn \"Proposal withdrawed\"\n}\n\n// Vote submits a vote for a proposal.\n//\n// Parameters:\n// - proposalID: ID of the proposal to vote (required)\n// - vote: Voting choice, true=Yes, false=No (required)\n// - reason: Text with the reason for the vote\n// - daoPath: Path of the DAO where the voting account belongs to\n//\n// Reason is in general optional but might be required for some proposals when voting No.\n//\n// DAO name is optional and by default is the one that the proposal belongs to.\n// Only parents of the proposal's DAO are allowed as `daoPath` values.\n// Child votes are not tallied when a member of a parent DAO votes on a child's proposal.\nfunc Vote(proposalID uint64, vote bool, reason, daoPath string) string {\n\tassertDAOIsNotLocked()\n\n\t// Make sure proposal states are up to date before submitting the vote\n\tAdvanceProposals()\n\n\t// Get proposal and check that current status accepts votes\n\tp := mustGetProposal(proposalID)\n\tif s := p.Status(); s.IsFinal() {\n\t\tpanic(\"proposal status doesn't allow new vote submissions: \" + s.String())\n\t}\n\n\t// When a DAO name is availalable check that it matches one of the proposal's DAO parents\n\t// and if so promote the proposal to a parent DAO. Promoting a proposal invalidates the votes\n\t// submitted by current DAO's members and moves voting responsibility to the parent DAO members.\n\tdaoPath = strings.TrimSpace(daoPath)\n\tif daoPath != \"\" \u0026\u0026 p.DAO().Path() != daoPath {\n\t\t// Check that the path belongs to a parent DAO.\n\t\t// Path separator is added to the prefix to make sure that similar prefixes don't match.\n\t\tif !strings.HasPrefix(p.DAO().Path(), daoPath+gnome.PathSeparator) {\n\t\t\tpanic(`path \"` + daoPath + `\" is not a parent of the proposal's DAO path`)\n\t\t}\n\n\t\t// Promote the active proposal's DAO to a parent DAO\n\t\tparentDAO := mustGetDAO(daoPath)\n\t\tif err := p.Promote(parentDAO); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// Reindex the proposal so its available under the parent DAO proposals. Child DAO will also\n\t\t// keep the promoted proposal indexed so it can be listed within the child DAO's proposals.\n\t\tproposals.Index(p)\n\t}\n\n\t// When proposal has \"review\" status check if deadline is met and if so activate it\n\tif p.Status() == gnome.StatusReview {\n\t\tif !p.HasReviewDeadlinePassed() {\n\t\t\tpanic(\"votes are not allowed until \" + p.ReviewDeadline().UTC().Format(\"2006-01-02 15:04 MST\"))\n\t\t}\n\n\t\tif err := p.Activate(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tvar choice gnome.VoteChoice\n\tif vote {\n\t\tchoice = gnome.ChoiceYes\n\t} else {\n\t\tchoice = gnome.ChoiceNo\n\t}\n\n\t// Submit vote\n\tcaller := std.GetOrigCaller() // TODO: Check that caller is member of the DAO\n\terr := p.Vote(caller, gnome.VoteChoice(choice), reason)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn \"Vote submitted for proposal \" + makeProposalURI(gnome.ID(proposalID), false)\n}\n\n// AdvanceProposals iterates review and active proposals and tallies proposals that met their deadlines.\n// Proposals in review status are activated to allow voting.\n// Active proposals are tallied which means the number of votes is counted and status changed accordingly.\n// Active executable proposals are executed when the proposal status changes to \"passed\".\nfunc AdvanceProposals() string {\n\tassertDAOIsNotLocked()\n\n\tadvanceProposals()\n\n\treturn \"Proposals advanced for realm \" + makeRealmURL(\"\")\n}\n\n// IsProposalsAdvanceNeeded checks if a call to `AdvanceProposals()` is required to update proposals.\nfunc IsProposalsAdvanceNeeded() bool {\n\tif gnomeDAO.IsLocked() {\n\t\treturn false\n\t}\n\n\treturn proposals.ReverseIterate(func(p *gnome.Proposal) bool {\n\t\tswitch p.Status() {\n\t\tcase gnome.StatusReview:\n\t\t\tif p.HasReviewDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase gnome.StatusActive:\n\t\t\tif p.HasVotingDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc advanceProposals() {\n\t// TODO: Use unix timestamp as part of proposal IDs to avoid iterating older tallied proposals\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tstatus := p.Status()\n\t\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\t\tp.Activate()\n\t\t\tstatus = p.Status()\n\t\t}\n\n\t\tif p.Status() == gnome.StatusActive \u0026\u0026 p.HasVotingDeadlinePassed() {\n\t\t\tp.Tally()\n\n\t\t\t// Change proposal status to failed when execution fails\n\t\t\tif err := p.Execute(); gnome.IsExecutionError(err) {\n\t\t\t\tp.Fail(\"failed due to conflicts: \" + err.Error())\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc mustGetDAO(path string) *gnome.DAO {\n\tif strings.TrimSpace(path) == \"\" {\n\t\tpanic(\"DAO path is empty\")\n\t}\n\n\tdao, found := daos.GetByPath(path)\n\tif !found {\n\t\tpanic(\"DAO not found\")\n\t}\n\treturn dao\n}\n\nfunc mustGetProposal(id uint64) *gnome.Proposal {\n\tp, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tpanic(\"proposal not found\")\n\t}\n\treturn p\n}\n\nfunc assertMemberRolesExist(members []gnome.Member) {\n\tfor _, m := range members {\n\t\tfor _, r := range m.Roles {\n\t\t\tif !roles.Has(r.String()) {\n\t\t\t\tpanic(\"unknown DAO member role: \" + gnome.EscapeHTML(string(r)))\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc assertCanCreateProposal(proposer std.Address, dao *gnome.DAO) {\n\tif !dao.HasMember(proposer) {\n\t\tpanic(\"you must be a DAO member to create a proposal\")\n\t}\n}\n\nfunc assertCallerCanWithdraw(p *gnome.Proposal) {\n\tif p.Proposer() != std.GetOrigCaller() {\n\t\tpanic(\"proposals can only be withdrawed by the proposer\")\n\t}\n\n\tif p.Status() != gnome.StatusReview {\n\t\tpanic(`proposals can only be withdrawed when status is \"review\"`)\n\t} else if p.HasReviewDeadlinePassed() {\n\t\tpanic(\"withdrawal not allowed, withdrawal deadline expired\")\n\t}\n}\n\nfunc assertDAOIsNotDismissed(dao *gnome.DAO) {\n\t// DAOs are locked when they are dismissed\n\tif dao.IsLocked() {\n\t\tpanic(\"DAO is dismissed: \" + dao.Path())\n\t}\n}\n"},{"name":"gnome_0a_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1\"\n)\n\nconst member = std.Address(\"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tpID := gnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n\tprintln(pID)\n\n\tmarkdown := gnome.Render(\"proposal/1\")\n\tprintln(markdown)\n}\n\n// Output:\n// 1\n// # #1 Test proposal\n// - Type: general\n// - Created: 2009-02-13 23:31 UTC\n// - Proposer: g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\n// - Status: **review**\n// - Review Deadline: 2009-02-14 00:31 UTC\n// ## Description\n// A test proposal\n// ## Votes\n// The proposal has no votes\n"},{"name":"gnome_0b_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1\"\n)\n\nconst nonMember = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(nonMember)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// you must be a DAO member to create a proposal\n"},{"name":"gnome_0c_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1\"\n)\n\nconst member = std.Address(\"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 1)\n}\n\n// Error:\n// voting period deadline must be between 2 and 10 days\n"},{"name":"gnome_0d_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1\"\n)\n\nconst member = std.Address(\"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"invalid\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// DAO not found\n"},{"name":"gnome_0e_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1\"\n)\n\nconst member = std.Address(\"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, \"\", daoPath, 0)\n}\n\n// Error:\n// proposal description is required\n"},{"name":"indexes.gno","body":"package gnome\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nvar (\n\tdaos daoIndex\n\tproposals proposalIndex\n\troles avl.Tree // string(gnome.Role) -\u003e struct{}\n\n\tlastProposalID gnome.ID\n)\n\nfunc init() {\n\t// Index initial council and main DAO\n\tmainDAO := gnomeDAO.GetFirstSubDAO()\n\tdaos.IndexByPath(gnomeDAO)\n\tdaos.IndexByPath(mainDAO)\n\n\t// Index available DAO member roles\n\troles.Set(RoleDirector.String(), struct{}{})\n\troles.Set(RoleEcoDev.String(), struct{}{})\n\troles.Set(RoleDev.String(), struct{}{})\n}\n\nfunc genProposalID() gnome.ID {\n\tlastProposalID += 1\n\treturn lastProposalID\n}\n\n// TODO: Deprecate DAO index in favor of using DAO methods\ntype daoIndex struct {\n\tindex avl.Tree // string(DAO path) -\u003e *gnome.DAO\n}\n\n// IndexByPath indexes a DAO by its path.\nfunc (x *daoIndex) IndexByPath(dao *gnome.DAO) bool {\n\treturn x.index.Set(dao.Path(), dao)\n}\n\n// GetByPath gets a DAO by its path.\nfunc (x daoIndex) GetByPath(path string) (*gnome.DAO, bool) {\n\tif v, ok := x.index.Get(path); ok {\n\t\treturn v.(*gnome.DAO), true\n\t}\n\treturn nil, false\n}\n\n// HasPathKey checks if a key with a DAO path exists.\nfunc (x daoIndex) HasPathKey(path string) bool {\n\treturn x.index.Has(path)\n}\n\ntype proposalIndex struct {\n\tindex avl.Tree // string(binary gnome.ID) -\u003e *gnome.Proposal\n\tgroups avl.Tree // string(DAO path) -\u003e []*gnome.Proposal\n}\n\n// Index indexes a proposal by its ID and DAO.\nfunc (x *proposalIndex) Index(p *gnome.Proposal) {\n\tx.IndexByID(p)\n\tx.IndexByDAO(p)\n}\n\n// IndexByID indexes a proposal by its ID.\nfunc (x *proposalIndex) IndexByID(p *gnome.Proposal) bool {\n\treturn x.index.Set(p.ID().Key(), p)\n}\n\n// IndexByDAO indexes a proposal for a DAO.\nfunc (x *proposalIndex) IndexByDAO(p *gnome.Proposal) bool {\n\tdaoPath := p.DAO().Path()\n\tproposals := x.GetAllByDAO(daoPath)\n\tproposals = append([]*gnome.Proposal{p}, proposals...) // reverse append\n\treturn x.groups.Set(daoPath, proposals)\n}\n\n// GetByID gets a proposal by its ID.\nfunc (x proposalIndex) GetByID(id gnome.ID) (*gnome.Proposal, bool) {\n\tif v, exists := x.index.Get(id.Key()); exists {\n\t\treturn v.(*gnome.Proposal), true\n\t}\n\treturn nil, false\n}\n\n// GetAllByDAO gets all proposals of a DAO.\nfunc (x proposalIndex) GetAllByDAO(daoPath string) []*gnome.Proposal {\n\tif v, exists := x.groups.Get(daoPath); exists {\n\t\treturn v.([]*gnome.Proposal)\n\t}\n\treturn nil\n}\n\n// Iterate iterates all proposals starting from the oldest one.\nfunc (x proposalIndex) Iterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*gnome.Proposal))\n\t})\n}\n\n// ReverseIterate iterates all proposals starting from the latest one.\nfunc (x proposalIndex) ReverseIterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.ReverseIterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*gnome.Proposal))\n\t})\n}\n"},{"name":"lock.gno","body":"package gnome\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/json\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nvar (\n\t// Initial state hash contains the sha256 hash of the initial realm state.\n\tinitialStateHash string\n\n\t// Final state hash contains the sha256 hash of the final realm state.\n\t// This value is initialized right after the realm is locked and can be used to\n\t// validate the state when migrating to a new realm version.\n\tfinalStateHash string\n)\n\nfunc init() {\n\tinitialStateHash = mustCalculateStateHash()\n}\n\n// SubmitDAOLockingProposal submits a new proposal to lock the DAO.\n//\n// Locking the DAO \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// This type of proposal can only be created by the Council or Main DAO members.\n// Tally is done by plurality.\n// Default voting period is 2 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - reason: Text with the DAO locking reason\n//\n// The optional `reason` argument can contain HTML.\nfunc SubmitDAOLockingProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\treason string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tcaller := std.GetOrigCaller()\n\tassertIsCouncilOrMainDAOMember(caller)\n\n\tdao := mustGetDAO(daoPath)\n\tassertIsCouncilOrMainDAO(dao)\n\n\treason = strings.TrimSpace(reason)\n\tstrategy := newLockingStrategy(gnomeDAO, reason, func() (err error) {\n\t\t// Advance all proposals before locking the DAO\n\t\tadvanceProposals()\n\n\t\t// Also update realm state with the final state hash\n\t\tfinalStateHash, err = calculateStateHash()\n\t\treturn err\n\t})\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(reviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// GetInitialDAOStateHash returns the sha256 hash of the initial realm state.\n// The initial state hash is calculated when the realm is initialized.\nfunc GetInitialDAOStateHash() string {\n\treturn initialStateHash\n}\n\n// GetFinalDAOStateHash returns the sha256 hash of the final realm state.\n// Locking the realm requires a lock DAO proposal to pass.\n// The final state hash is calculated when a lock DAO proposal is executed.\nfunc GetFinalDAOStateHash() string {\n\tif !gnomeDAO.IsLocked() {\n\t\tpanic(\"DAO must be locked to get the final state hash\")\n\t}\n\n\treturn finalStateHash\n}\n\n// GetState returns the realm state as JSON.\n// State can only be read when the realm is locked.\n// It can be used with the final state hash to migrate realms to newer versions.\nfunc GetState() string {\n\tif !gnomeDAO.IsLocked() {\n\t\tpanic(\"DAO must be locked to get the state\")\n\t}\n\n\tbz, err := marshalState()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn string(bz)\n}\n\nfunc marshalState() ([]byte, error) {\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"lastProposalID\", json.StringNode(\"lastProposalID\", lastProposalID.String()))\n\tnode.AppendObject(\"gnomeDAO\", gnome.PreMarshalDAO(\"gnomeDAO\", gnomeDAO))\n\n\tvar items []*json.Node\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\titems = append(items, gnome.PreMarshalProposal(\"\", p))\n\t\treturn false\n\t})\n\tnode.AppendObject(\"proposals\", json.ArrayNode(\"\", items))\n\n\treturn json.Marshal(node)\n}\n\nfunc calculateStateHash() (string, error) {\n\tbz, err := marshalState()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\thash := sha256.Sum256(bz)\n\treturn hex.EncodeToString(hash[:]), nil\n}\n\nfunc mustCalculateStateHash() string {\n\thash, err := calculateStateHash()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn hash\n}\n\nfunc assertDAOIsNotLocked() {\n\tif gnomeDAO.IsLocked() {\n\t\tpanic(\"DAO is locked\")\n\t}\n}\n\nfunc assertIsCouncilOrMainDAO(dao *gnome.DAO) {\n\tif !dao.IsSuperCouncil() {\n\t\t// Main DAO parent must be the super council\n\t\tparentDAO := dao.Parent()\n\t\tif !parentDAO.IsSuperCouncil() {\n\t\t\tpanic(\"DAO is not the council or main DAO\")\n\t\t}\n\t}\n}\n\nfunc assertIsCouncilOrMainDAOMember(addr std.Address) {\n\tif !gnomeDAO.HasMember(addr) {\n\t\tif mainDAO := gnomeDAO.GetFirstSubDAO(); !mainDAO.HasMember(addr) {\n\t\t\tpanic(\"account is not a council or main DAO member\")\n\t\t}\n\t}\n}\n"},{"name":"paginator.gno","body":"package gnome\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nconst paginatorStyle = `\u003cstyle\u003e\n.paginator { text-align: center; }\n.paginator a { text-decoration: none; }\n.paginator a:hover { text-decoration: underline; }\n.paginator .left { padding-right: 4px; }\n.paginator .right { padding-left: 4px; }\n\u003c/style\u003e`\n\nvar (\n\tdefaultPageSize = 50\n\tminPageSize = 1\n\tpagePrefix = \"page=\"\n)\n\ntype (\n\t// PaginatorIterFn defines a callback to iterate page items.\n\tPaginatorIterFn func(index int) (stop bool)\n\n\t// PaginatorOption configures the paginator.\n\tPaginatorOption func(*Paginator)\n)\n\n// WithPageSize assigns a page size to a paginator.\n// The minimum page size is 5.\nfunc WithPageSize(size int) PaginatorOption {\n\treturn func(p *Paginator) {\n\t\tif size \u003c minPageSize {\n\t\t\tp.pageSize = minPageSize\n\t\t} else {\n\t\t\tp.pageSize = size\n\t\t}\n\t}\n}\n\n// WithItemCount assigns the total number of items that can be paginated.\n// Assigning the total item count allows the paginator to determine the last page number.\nfunc WithItemCount(count int) PaginatorOption {\n\treturn func(p *Paginator) {\n\t\tp.itemCount = count\n\t}\n}\n\n// NewPaginator creates a new paginator.\n// URI path must contain the page number for the paginator to iterate items.\n// Page number is specified in the URI path using \"page=N\" where N is the page\n// number which must start from 1. For example: gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:a/b:page=2.\n// Paginator is disabled when the URI path doesn't have a page specified or\n// when the specified page is not valid.\nfunc NewPaginator(uri string, options ...PaginatorOption) Paginator {\n\trealmURI, renderPath := gnome.SplitRealmURI(uri)\n\tp := Paginator{\n\t\trealmPath: gnome.CutRealmDomain(realmURI),\n\t\tpageSize: defaultPageSize,\n\t}\n\n\tfor _, apply := range options {\n\t\tapply(\u0026p)\n\t}\n\n\tp.lastPage = int(math.Ceil(float64(p.itemCount) / float64(p.pageSize)))\n\n\t// Iterate path items until paginator arguments are found.\n\t// Path prefix and suffix are kept to be able to generate\n\t// page URLs keeping the render path format.\n\titems := strings.Split(renderPath, \":\")\n\tfor i, item := range items {\n\t\tif strings.HasPrefix(item, pagePrefix) {\n\t\t\tp.pathSuffix = items[i+1:]\n\t\t\tp.page, _ = strconv.Atoi(item[len(pagePrefix):])\n\t\t\tbreak\n\t\t}\n\n\t\tp.pathPrefix = append(p.pathPrefix, item)\n\t}\n\treturn p\n}\n\n// Paginator allows paging items.\ntype Paginator struct {\n\trealmPath string\n\tpathPrefix, pathSuffix []string\n\tpageSize, page, lastPage, itemCount int\n}\n\n// Offset returns the index for the first page item.\nfunc (p Paginator) Offset() int {\n\tif !p.IsEnabled() {\n\t\treturn 0\n\t}\n\treturn (p.page - 1) * p.pageSize\n}\n\n// PageSize returns the size of each page.\nfunc (p Paginator) PageSize() int {\n\treturn p.pageSize\n}\n\n// Page returns the current page number.\n// Zero is returned when the paginator is disabled.\nfunc (p Paginator) Page() int {\n\treturn p.page\n}\n\n// LastPage returns the number of the last page.\n// Zero is returned when paginator is initialized without the total item count.\nfunc (p Paginator) LastPage() int {\n\treturn p.lastPage\n}\n\n// IsEnabled checks if paginator is enabled.\nfunc (p Paginator) IsEnabled() bool {\n\treturn p.page \u003e 0\n}\n\n// IsLastPage checks if the current page is the last one.\nfunc (p Paginator) IsLastPage() bool {\n\treturn p.page == p.lastPage\n}\n\n// GetPageURI returns the URI for a page.\n// An empty string is returned when page is \u003c 1.\nfunc (p Paginator) GetPageURI(page int) string {\n\tif !p.IsEnabled() {\n\t\treturn \"\"\n\t}\n\n\trenderPath := append(p.pathPrefix, pagePrefix+strconv.Itoa(page))\n\trenderPath = append(renderPath, p.pathSuffix...)\n\treturn p.realmPath + \":\" + strings.Join(renderPath, \":\")\n}\n\n// PrevPageURI returns the URI path to the previous page.\n// An empty string is returned when current page is the first page.\nfunc (p Paginator) PrevPageURI() string {\n\tif p.page == 1 || !p.IsEnabled() {\n\t\treturn \"\"\n\t}\n\treturn p.GetPageURI(p.page - 1)\n}\n\n// NextPageURI returns the URI path to the next page.\nfunc (p Paginator) NextPageURI() string {\n\tif p.IsLastPage() {\n\t\treturn \"\"\n\t}\n\treturn p.GetPageURI(p.page + 1)\n}\n\n// Iterate allows iterating page items.\nfunc (p Paginator) Iterate(fn PaginatorIterFn) bool {\n\tif !p.IsEnabled() {\n\t\treturn true\n\t}\n\n\tstart := p.Offset()\n\tfor i := start; i \u003c start+p.PageSize(); i++ {\n\t\tif fn(i) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (p Paginator) Render() string { // TODO: Remove rendering related logic from this package\n\tif !p.IsEnabled() {\n\t\treturn \"\"\n\t}\n\n\tvar markdown string\n\tif s := p.PrevPageURI(); s != \"\" {\n\t\tmarkdown = ufmt.Sprintf(`\u003ca href=\"%s\" class=\"left\"\u003e\u0026lt;-\u003c/a\u003e`, s)\n\t} else {\n\t\tmarkdown += `\u003cspan class=\"left\"\u003e--\u003c/span\u003e`\n\t}\n\n\t// TODO: Add display links to other page numbers?\n\tmarkdown += ufmt.Sprintf(\"page %d\", p.page)\n\n\tif s := p.NextPageURI(); s != \"\" {\n\t\tmarkdown += ufmt.Sprintf(`\u003ca href=\"%s\" class=\"right\"\u003e-\u0026gt;\u003c/a\u003e`, s)\n\t} else {\n\t\tmarkdown += `\u003cspan class=\"right\"\u003e--\u003c/span\u003e`\n\t}\n\n\treturn paginatorStyle + `\u003cp class=\"paginator\"\u003e` + markdown + `\u003c/p\u003e`\n}\n"},{"name":"paginator_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestPaginator(t *testing.T) {\n\titems := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\n\tcases := []struct {\n\t\tname, uri, prevPath, nextPath string\n\t\toffset, pageSize, page, lastPage int\n\t\tpageItems string\n\t\tstopped, enabled, isLastPage bool\n\t}{\n\t\t{\n\t\t\tname: \"page 1\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=1:foo=bar\",\n\t\t\tenabled: true,\n\t\t\tnextPath: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=2:foo=bar\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 5,\n\t\t\tpage: 1,\n\t\t\tlastPage: 2,\n\t\t\tpageItems: \"[1 2 3 4 5]\",\n\t\t},\n\t\t{\n\t\t\tname: \"page 2\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=2:foo=bar\",\n\t\t\tenabled: true,\n\t\t\tprevPath: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=1:foo=bar\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 5,\n\t\t\tpageSize: 5,\n\t\t\tpage: 2,\n\t\t\tlastPage: 2,\n\t\t\tpageItems: \"[6 7 8 9 10]\",\n\t\t\tisLastPage: true,\n\t\t},\n\t\t{\n\t\t\tname: \"missing page\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=3:foo=bar\",\n\t\t\tenabled: true,\n\t\t\tprevPath: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=2:foo=bar\",\n\t\t\tnextPath: \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=4:foo=bar\",\n\t\t\toffset: 10,\n\t\t\tpageSize: 5,\n\t\t\tpage: 3,\n\t\t\tlastPage: 2,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid page number\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=0:foo=bar\",\n\t\t\tenabled: false,\n\t\t\tprevPath: \"\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 4,\n\t\t\tpage: 0,\n\t\t\tlastPage: 3,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid page value\",\n\t\t\turi: \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome:foo/bar:page=foo:foo=bar\",\n\t\t\tenabled: false,\n\t\t\tprevPath: \"\",\n\t\t\tnextPath: \"\",\n\t\t\toffset: 0,\n\t\t\tpageSize: 2,\n\t\t\tpage: 0,\n\t\t\tlastPage: 5,\n\t\t\tpageItems: \"[]\",\n\t\t\tstopped: true,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tvar pageItems []int\n\n\t\t\t// Act\n\t\t\tp := NewPaginator(tc.uri, WithPageSize(tc.pageSize), WithItemCount(len(items)))\n\n\t\t\t// Assert\n\t\t\tif got := p.Page(); got != tc.page {\n\t\t\t\tt.Fatalf(\"expected page: %d, got: %d\", tc.page, got)\n\t\t\t}\n\n\t\t\tif got := p.LastPage(); got != tc.lastPage {\n\t\t\t\tt.Fatalf(\"expected last page: %d, got: %d\", tc.lastPage, got)\n\t\t\t}\n\n\t\t\tif got := p.PrevPageURI(); got != tc.prevPath {\n\t\t\t\tt.Fatalf(\"expected prev page path: '%s', got: '%s'\", tc.prevPath, got)\n\t\t\t}\n\n\t\t\tif got := p.NextPageURI(); got != tc.nextPath {\n\t\t\t\tt.Fatalf(\"expected next page path: '%s', got: '%s'\", tc.nextPath, got)\n\t\t\t}\n\n\t\t\tif got := p.Offset(); got != tc.offset {\n\t\t\t\tt.Fatalf(\"expected offset: %d, got: %d\", tc.offset, got)\n\t\t\t}\n\n\t\t\tif got := p.PageSize(); got != tc.pageSize {\n\t\t\t\tt.Fatalf(\"expected page size: %d, got: %d\", tc.pageSize, got)\n\t\t\t}\n\n\t\t\tif got := p.IsEnabled(); got != tc.enabled {\n\t\t\t\tt.Fatalf(\"expected enabled: %v, got: %v\", tc.enabled, got)\n\t\t\t}\n\n\t\t\tif got := p.IsLastPage(); got != tc.isLastPage {\n\t\t\t\tt.Fatalf(\"expected is last page to be: %v, got: %v\", tc.isLastPage, got)\n\t\t\t}\n\n\t\t\tstopped := p.Iterate(func(i int) bool {\n\t\t\t\tif i \u003e= len(items) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tpageItems = append(pageItems, items[i])\n\t\t\t\treturn false\n\t\t\t})\n\t\t\tif stopped != tc.stopped {\n\t\t\t\tt.Fatalf(\"expected iteration result: %v, got: %v\", tc.stopped, stopped)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", pageItems); got != tc.pageItems {\n\t\t\t\tt.Fatalf(\"expected page items: %s, got: %s\", tc.pageItems, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"render.gno","body":"package gnome\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/alerts\"\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nconst (\n\tdateFmt = \"2006-01-02 15:04 MST\"\n\tproposalTakeoverMsg = \"For the proposal outcome to change it has to be taken over by a parent DAO by voting on it\"\n)\n\n// TODO: Define a pattern to add custom CSS styles\nconst customStyles = `\n\u003cstyle\u003e\n.custom ul { padding-left: 20px; }\n.custom li { list-style-type: disc; }\n.custom li.current { font-weight: 900; }\n.custom li \u003e p { margin: 0px; }\n\u003c/style\u003e\n`\n\n// Render returns a Markdown string with DAO or proposal details.\n// By default it renders the Council DAO details view.\n//\n// Paths:\n// - `dao/DAO_PATH` =\u003e Renders DAO or sub DAO details\n// - `proposal/PROPOSAL_ID` =\u003e Renders details for a proposal\n// - `proposals/DAO_PATH` =\u003e Renders the list of proposals for a DAO\nfunc Render(path string) string {\n\tvar r Router\n\n\tr.HandleFunc(\"\", renderDAO)\n\tr.HandleFunc(\"dao\", renderDAO)\n\tr.HandleFunc(\"proposal\", renderProposal)\n\tr.HandleFunc(\"proposals\", renderProposals)\n\n\t// Render global alerts before proposal states are updated within the handlers\n\treturn renderAlerts() + r.Render(path)\n}\n\nfunc renderAlerts() string {\n\tif gnomeDAO.IsLocked() {\n\t\tmsg := \"Realm is locked\"\n\t\tif reason := gnomeDAO.LockReason(); reason != \"\" {\n\t\t\tmsg += \"\u003c/br\u003e\" + reason\n\t\t}\n\n\t\treturn alerts.NewError(msg)\n\t}\n\n\tif IsProposalsAdvanceNeeded() {\n\t\treturn alerts.NewWarning(\n\t\t\tnewGnoStudioConnectLink(\"AdvanceProposals\", \"Proposals advance needed\"),\n\t\t)\n\t}\n\treturn \"\"\n}\n\nfunc renderDAO(res ResponseWriter, req Request) {\n\tvar (\n\t\tdao *gnome.DAO\n\t\tdaoPath = req.Route\n\t)\n\n\tif daoPath == \"\" {\n\t\tdao = gnomeDAO\n\t\tdaoPath = nameCouncilDAO\n\t} else {\n\t\tvar found bool\n\t\tdao, found = daos.GetByPath(daoPath)\n\t\tif !found {\n\t\t\tres.Write(\"DAO Not Found\")\n\t\t\treturn\n\t\t}\n\n\t\t// TODO: Add lock dismissal reason when available\n\t\tif dao.IsLocked() {\n\t\t\tres.Write(alerts.NewError(\"DAO is dismissed\"))\n\t\t}\n\t}\n\n\tres.Writef(\n\t\t\"# Gno.me DAO\\n\"+\n\t\t\t\"## %s\\n\"+\n\t\t\t\"%s\\n\\n\"+\n\t\t\t\"[View Proposals of %s](%s)\\n\",\n\t\tdao.Title(),\n\t\tdao.Manifest(),\n\t\tdao.Title(),\n\t\tmakeProposalsURI(daoPath, true),\n\t)\n\n\tres.Write(\"## \" + dao.Title() + \" Members\\n\")\n\tfor _, m := range dao.Members() {\n\t\tres.Write(\"- \" + m.String() + \"\\n\")\n\t}\n\n\tres.Write(\"\\n\" + customStyles + \"\\n\\n\")\n\n\tres.Write(\"## Organization\\n\\n\")\n\tres.Write(renderOrganizationTree(daoPath))\n\tres.Write(\"\\n\")\n}\n\nfunc renderProposals(res ResponseWriter, req Request) {\n\tdaoPath := req.Route\n\tdao, found := daos.GetByPath(daoPath)\n\tif !found {\n\t\tres.Write(\"DAO Not Found\")\n\t\treturn\n\t}\n\n\tdaoProposals := proposals.GetAllByDAO(dao.Path())\n\tcount := len(daoProposals)\n\tif count == 0 {\n\t\tres.Write(\"DAO has no proposals\")\n\t\treturn\n\t}\n\n\trealmPath := makeRealmPath(req.Path)\n\tpages := NewPaginator(realmPath, WithItemCount(count))\n\n\t// TODO: Add links to toggle display of dismissed proposals (when DAO dismissal is implemented)\n\n\tres.Writef(\"# %s: Proposals\\n\", dao.Title())\n\tpages.Iterate(func(i int) bool {\n\t\tif i \u003e= count {\n\t\t\treturn true\n\t\t}\n\n\t\tp := daoProposals[i]\n\t\t_ = advanceProposal(p) // TODO: Handle errors when render notice support is implemented\n\t\tpath := makeProposalURI(p.ID(), true)\n\t\tres.Writef(\"- [#%s %s](%s) (%s)\\n\", p.ID(), p.Title(), path, p.Status())\n\t\treturn false\n\t})\n\n\tif pages.IsEnabled() {\n\t\tres.Write(\"\\n\" + pages.Render())\n\t}\n}\n\n// TODO: Improve renderProposal code\nfunc renderProposal(res ResponseWriter, req Request) {\n\trawID := req.Route\n\tid, err := strconv.Atoi(rawID)\n\tif err != nil {\n\t\tres.Write(\"Invalid proposal ID: \" + gnome.EscapeHTML(rawID))\n\t\treturn\n\t}\n\n\tproposal, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tres.Write(\"Proposal Not Found\")\n\t\treturn\n\t}\n\n\tvar (\n\t\toutcome gnome.ProposalStatus\n\t\tstatus = proposal.Status()\n\t)\n\n\t// When the status is not final advance the proposal to calculate the current outcome\n\tif !status.IsFinal() {\n\t\t_ = advanceProposal(proposal) // TODO: Implement generic alert support for render and use it to render errors\n\t\toutcome = proposal.Status()\n\n\t\t// Validate if proposal is valid for the current state\n\t\tif err := proposal.Validate(); err != nil {\n\t\t\tres.Write(alerts.NewError(err.Error()))\n\t\t}\n\n\t\t// Warn when the outcome could change if a member of a parent DAO votes on this proposal.\n\t\t// Proposal choice is only available when there is a majority, so there is voting concensus.\n\t\tif proposal.Choice() != gnome.ChoiceNone \u0026\u0026 !proposal.HasVotingDeadlinePassed() {\n\t\t\tres.Write(alerts.NewWarning(proposalTakeoverMsg))\n\t\t}\n\t} else if status == gnome.StatusDismissed {\n\t\t// Display an alert with the dismiss reason\n\t\tres.Write(alerts.NewWarning(proposal.StatusReason()))\n\t}\n\n\tdao := proposal.DAO()\n\tdaoPath := dao.Path()\n\tif proposal.HasBeenPromoted() {\n\t\turi := makeDAOURI(daoPath, true)\n\t\tlink := alerts.NewLink(uri, dao.Title())\n\t\tres.Write(alerts.NewWarning(\"Proposal has been promoted to \" + link + \" DAO\"))\n\t}\n\n\tres.Write(\"# #\" + proposal.ID().String() + \" \" + proposal.Title() + \"\\n\")\n\tres.Write(\"- Type: \" + proposal.Strategy().Name() + \"\\n\")\n\tres.Write(\"- Created: \" + proposal.CreatedAt().UTC().Format(dateFmt) + \"\\n\")\n\tres.Write(\"- Proposer: \" + proposal.Proposer().String() + \"\\n\")\n\tres.Write(\"- Status: \" + getProposalStatusMarkdown(status, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\tif !status.IsFinal() {\n\t\tif outcome == gnome.StatusReview {\n\t\t\tres.Write(\"- Review Deadline: \" + proposal.ReviewDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t} else {\n\t\t\tres.Write(\"- Voting Deadline: \" + proposal.VotingDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t\tres.Write(\"- Expected Outcome: \" + getProposalStatusMarkdown(outcome, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\t\t\t// Vote line should be render as long as voting deadline is not reached.\n\t\t\t// This is required for proposals that have to be advanced after deadline is reached.\n\t\t\tif !proposal.HasVotingDeadlinePassed() {\n\t\t\t\tres.Write(\"\\n\" + newGnoStudioConnectLink(\"Vote\", \"Vote on this proposal\") + \"\\n\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif s := proposal.Description(); s != \"\" {\n\t\tres.Write(\"## Description\\n\" + s + \"\\n\")\n\t}\n\n\tif r, ok := proposal.Strategy().(gnome.ParamsRenderer); ok {\n\t\t// TODO: Use custom HTML component to allow users to toggle params visibility\n\t\tif s := r.RenderParams(); s != \"\" {\n\t\t\tres.Write(\"## Parameters\\n\\n\" + s + \"\\n\")\n\t\t}\n\t}\n\n\tres.Write(\"## Votes\\n\")\n\trecord := proposal.VotingRecord()\n\tif record.VoteCount() == 0 {\n\t\tres.Write(\"The proposal has no votes\\n\")\n\t} else {\n\t\t// TODO: Render percentages for each voting choice and abstentions?\n\t\trecord.Iterate(func(c gnome.VoteChoice, count uint) bool {\n\t\t\tres.Writef(\"- %s: %d\\n\", string(c), count)\n\t\t\treturn false\n\t\t})\n\n\t\tres.Write(\"## Participation\\n\")\n\t\trenderProposalParticipation(res, record.Votes())\n\t}\n\n\t// If proposal has been promoted to a parent DAO render participation in child DAOs\n\tif proposal.HasBeenPromoted() {\n\t\tres.Write(\"## Sub DAOs Participation\\n\")\n\t\tdaos := proposal.Promotions()\n\t\trecords := proposal.VotingRecords()\n\t\tfor i := len(records) - 2; i \u003e= 0; i-- { // reverse iteration excluding record for current DAO\n\t\t\tr := records[i]\n\t\t\tdao := daos[i]\n\t\t\tres.Write(\"### [\" + dao.Title() + \"](\" + makeDAOURI(daoPath, true) + \"]\\n\")\n\t\t\trenderProposalParticipation(res, r.Votes())\n\t\t}\n\t}\n}\n\nfunc renderProposalParticipation(res ResponseWriter, votes []gnome.Vote) {\n\tfor _, v := range votes {\n\t\tchoice := string(v.Choice)\n\t\tif v.Reason != \"\" {\n\t\t\t// TODO: Long reasons have to break lines to fit making web UI look bad\n\t\t\tchoice += ` \"` + gnome.EscapeHTML(v.Reason) + `\"`\n\t\t}\n\n\t\tres.Writef(\"- %s: voted %s\\n\", v.Address.String(), choice)\n\t}\n}\n\n// TODO: Use the UI package for HTML elements because rendered Markdown styles break the tree\nfunc renderOrganizationTree(currentPath string) string {\n\tvar item string\n\tif gnomeDAO.Name() == currentPath {\n\t\titem = `\u003cli class=\"current\"\u003e` + gnomeDAO.Title() + `\u003c/li\u003e`\n\t} else {\n\t\turi := makeDAOURI(gnomeDAO.Path(), true)\n\t\titem = `\u003cli\u003e` + alerts.NewLink(uri, gnomeDAO.Title()) + `\u003c/li\u003e`\n\t}\n\treturn `\u003cdiv class=\"custom\"\u003e\u003cul\u003e` + item + renderSubTree(gnomeDAO, currentPath) + `\u003c/ul\u003e\u003c/div\u003e`\n}\n\nfunc renderSubTree(parentDAO *gnome.DAO, currentPath string) string {\n\tvar (\n\t\tbuf strings.Builder\n\t\titem string\n\t)\n\n\tfor _, dao := range parentDAO.SubDAOs() {\n\t\tif dao.IsLocked() {\n\t\t\t// Skip dismissed DAOs\n\t\t\t// TODO: Render filter option to toggle dismissed DAOs visibility\n\t\t\tcontinue\n\t\t}\n\n\t\tif dao.Path() == currentPath {\n\t\t\titem = `\u003cli class=\"current\"\u003e` + dao.Title() + `\u003c/li\u003e`\n\t\t} else {\n\t\t\turi := makeDAOURI(dao.Path(), true)\n\t\t\titem = `\u003cli\u003e` + alerts.NewLink(uri, dao.Title()) + `\u003c/li\u003e`\n\t\t}\n\n\t\tbuf.WriteString(item)\n\n\t\tif len(dao.SubDAOs()) \u003e 0 {\n\t\t\tbuf.WriteString(renderSubTree(dao, currentPath))\n\t\t}\n\t}\n\treturn `\u003cul\u003e` + buf.String() + `\u003c/ul\u003e`\n}\n\nfunc advanceProposal(p *gnome.Proposal) error {\n\tstatus := p.Status()\n\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\tif err := p.Activate(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tstatus = p.Status()\n\t}\n\n\tif status == gnome.StatusActive {\n\t\t// Tally active proposals to always have an up to date state with the current proposal outcome\n\t\tif err := p.Tally(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc getProposalStatusMarkdown(s gnome.ProposalStatus, c gnome.VoteChoice, reason string) string {\n\tswitch s {\n\tcase gnome.StatusPassed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, string(c))\n\tcase gnome.StatusRejected:\n\t\t// Rejected proposal might have a reason\n\t\tif reason == \"\" {\n\t\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t\t} else {\n\t\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\t\t}\n\tcase gnome.StatusDismissed, gnome.StatusFailed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\tdefault:\n\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t}\n}\n\nfunc newGnoStudioConnectLink(functionName, label string) string {\n\thref := makeGnoStudioConnectURL(functionName)\n\treturn alerts.NewLink(href, label)\n}\n"},{"name":"render_router.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// TODO: Move this file to a gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/router package\n\ntype (\n\tResponseWriter interface {\n\t\tWrite(s string)\n\t\tWritef(format string, values ...interface{})\n\t}\n\n\tRequest struct {\n\t\tPath string\n\t\tPrefix string\n\t\tRoute string\n\t\tArgs []string\n\t}\n\n\tHandlerFunc func(ResponseWriter, Request)\n\n\thandler struct {\n\t\tPrefix string\n\t\tFn HandlerFunc\n\t}\n)\n\ntype Router struct {\n\thandlers []handler\n}\n\nfunc (r *Router) HandleFunc(prefix string, fn HandlerFunc) {\n\tr.handlers = append(r.handlers, handler{\n\t\tPrefix: prefix,\n\t\tFn: fn,\n\t})\n}\n\nfunc (r Router) Render(path string) string {\n\tprefix, route, args := splitRenderPath(path)\n\n\tfor _, h := range r.handlers {\n\t\tif h.Prefix == prefix {\n\t\t\tvar (\n\t\t\t\tw responseWriter\n\t\t\t\treq = Request{\n\t\t\t\t\tPath: path,\n\t\t\t\t\tPrefix: prefix,\n\t\t\t\t\tRoute: route,\n\t\t\t\t\tArgs: args,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\th.Fn(\u0026w, req)\n\n\t\t\treturn w.Output()\n\t\t}\n\t}\n\n\treturn \"Path not found\"\n}\n\ntype responseWriter struct {\n\toutput strings.Builder\n}\n\nfunc (w *responseWriter) Write(s string) {\n\tw.output.WriteString(s)\n}\n\nfunc (w *responseWriter) Writef(format string, values ...interface{}) {\n\tw.output.WriteString(ufmt.Sprintf(format, values...))\n}\n\nfunc (w responseWriter) Output() string {\n\treturn w.output.String()\n}\n\nfunc splitRenderPath(path string) (prefix, route string, args []string) {\n\t// Split route prefix and route.\n\t// Path format is \"prefix/route:args\".\n\tpath = strings.TrimSpace(path)\n\tif parts := strings.SplitN(path, \"/\", 2); len(parts) == 2 {\n\t\tprefix = parts[0]\n\t\troute = parts[1]\n\n\t\t// Split route and arguments\n\t\tif parts := strings.Split(route, \":\"); len(parts) \u003e 1 {\n\t\t\troute = parts[0]\n\t\t\targs = parts[1:]\n\t\t}\n\t}\n\n\treturn prefix, route, args\n}\n"},{"name":"strategy_budget.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/json\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc newBudgetStrategy(council *gnome.DAO, budget string) budgetStrategy {\n\tif council == nil {\n\t\tpanic(\"council DAO is requried\")\n\t}\n\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"budget strategy expects DAO to be a super council\")\n\t}\n\n\tbudget = strings.TrimSpace(budget)\n\tif budget == \"\" {\n\t\tpanic(\"budget is required\")\n\t}\n\n\t// The council DAO must have at least one sub DAO which should the main DAO.\n\t// The first sub DAO is some times used to check if a vote is valid.\n\tif len(council.SubDAOs()) == 0 {\n\t\tpanic(\"budget strategy expects council DAO to have at least one sub DAO\")\n\t}\n\n\treturn budgetStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\tbudget: budget, // TODO: Validate/split budget format? (ex. AMOUNTSYMBOL: 10USD)\n\t}\n}\n\ntype budgetStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\tbudget string\n}\n\n// Name returns the name of the strategy.\nfunc (budgetStrategy) Name() string {\n\treturn \"budget\"\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (budgetStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (budgetStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s budgetStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s budgetStrategy) CheckVote(addr std.Address, _ gnome.VoteChoice, _ string) error {\n\t// Check that voter address belongs to a council DAO member\n\tif s.council.HasMember(addr) {\n\t\treturn nil\n\t}\n\n\t// Make sure the main DAO was not dismissed and check that voter address belongs to a main DAO member\n\t// TODO: Check DAO status instead when DAO dismissal is implemented\n\tif sub := s.council.SubDAOs(); len(sub) \u003e 0 {\n\t\tmainDAO := sub[0]\n\t\tif !mainDAO.HasMember(addr) {\n\t\t\treturn errors.New(\"only members of the council DAO or main DAO can vote on budget proposals\")\n\t\t}\n\t} else {\n\t\treturn errors.New(\"main DAO not found\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (budgetStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s budgetStrategy) RenderParams() string {\n\treturn \"Budget: \" + gnome.EscapeHTML(s.budget)\n}\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\nfunc (s budgetStrategy) PreMarshal() *json.Node {\n\t// TODO: Marshal vote choices for all strategies when custom choices are supported\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"name\", json.StringNode(\"name\", s.Name()))\n\tnode.AppendObject(\"budget\", json.StringNode(\"budget\", s.budget))\n\treturn node\n}\n"},{"name":"strategy_budget_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestBudgetStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\",\n\t\t\t\tgnome.AssignAsSuperCouncil(),\n\t\t\t\tgnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"main\", \"Main\"),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"nil council\",\n\t\t\terr: \"council DAO is requried\",\n\t\t},\n\t\t{\n\t\t\tname: \"no super council\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\"),\n\t\t\terr: \"budget strategy expects DAO to be a super council\",\n\t\t},\n\t\t{\n\t\t\tname: \"council without main DAO\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil()),\n\t\t\terr: \"budget strategy expects council DAO to have at least one sub DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := \"budget\"\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s budgetStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newBudgetStrategy(tc.council, \"1USD\")\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyCheckVote(t *testing.T) {\n\tcouncilMember := newTestMember(t, \"council\")\n\tmainMember := newTestMember(t, \"main\")\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(councilMember),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"main\", \"Main\", gnome.WithMembers(mainMember)),\n\t\t),\n\t)\n\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"council DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: councilMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"main DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: mainMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\taddress: testutils.TestAddress(\"foo\"),\n\t\t\tcouncil: council,\n\t\t\terr: \"only members of the council DAO or main DAO can vote on budget proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newBudgetStrategy(tc.council, \"1USD\")\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(tc.address, tc.choice, \"\")\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyTally(t *testing.T) {\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(\n\t\t\tnewTestMember(t, \"member1\"),\n\t\t\tnewTestMember(t, \"member2\"),\n\t\t\tnewTestMember(t, \"member3\"),\n\t\t\tnewTestMember(t, \"member4\"),\n\t\t),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"main\", \"Main\"),\n\t\t),\n\t)\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newBudgetStrategy(council, \"1USD\")\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(council, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc handlePanic(t *testing.T, fn func()) (reason error) {\n\tt.Helper()\n\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif err, _ := r.(error); err != nil {\n\t\t\t\treason = err\n\t\t\t} else {\n\t\t\t\treason = errors.New(fmt.Sprint(r))\n\t\t\t}\n\t\t}\n\t}()\n\n\tfn()\n\treturn\n}\n"},{"name":"strategy_dao.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/json\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc newSubDAOCreationStrategy(daos daoIndex, name, title, manifest string, members []gnome.Member) subDAOCreationStrategy {\n\tif strings.TrimSpace(name) == \"\" {\n\t\tpanic(\"sub DAO name is required\")\n\t}\n\n\tif !gnome.IsSlug(name) {\n\t\tpanic(`invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"sub DAO title is required\")\n\t}\n\n\tif strings.TrimSpace(manifest) == \"\" {\n\t\tpanic(\"sub DAO manifest is required\")\n\t}\n\n\tif len(members) \u003c minMembersCount {\n\t\tpanic(\"sub DAOs require at least \" + strconv.Itoa(minMembersCount) + \" members\")\n\t}\n\n\treturn subDAOCreationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdaos: daos,\n\t\tname: name,\n\t\ttitle: title,\n\t\tmanifest: manifest,\n\t\tmembers: members,\n\t}\n}\n\ntype subDAOCreationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdaos daoIndex\n\tname, title, manifest string\n\tmembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (subDAOCreationStrategy) Name() string {\n\treturn \"create-sub-dao\"\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAOCreationStrategy) Quorum() float64 {\n\treturn 1.0\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAOCreationStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAOCreationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAOCreationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Strategy need 100% participation to decide on the outcome.\n\t// Normally quorum should make sure all members voted before\n\t// tallying but otherwise tally should not return a valid outcome.\n\tif len(dao.Members()) != r.VoteCount() {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\t// This type of proposals can pass only when 100% of members vote YES.\n\tfor _, v := range r.Votes() {\n\t\t// If there is at least one NO vote then proposal must be rejected\n\t\tif v.Choice == gnome.ChoiceNo {\n\t\t\treturn gnome.ChoiceNo\n\t\t}\n\t}\n\t// Proposal should pass when all votes are YES\n\treturn gnome.ChoiceYes\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s subDAOCreationStrategy) Validate(p *gnome.Proposal) error {\n\tdao := p.DAO()\n\tpath := dao.Path()\n\tif dao.IsLocked() {\n\t\treturn errors.New(\"parent DAO '\" + path + \"' is locked\")\n\t}\n\n\tsubDAOPath := path + gnome.PathSeparator + s.name\n\tif s.daos.HasPathKey(subDAOPath) {\n\t\treturn errors.New(\"sub DAO path has been taken by another DAO\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAOCreationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tmembers []string\n\t\tmanifest = gnome.EscapeHTML(s.manifest)\n\t)\n\n\tfor _, addr := range s.members {\n\t\tmembers = append(members, addr.String())\n\t}\n\n\t// TODO: Use a custom HTML table and add styling (vertical alignment, padding, ...)\n\t// This would allow to remove the markdown \"hacks\" to improve the output layout\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Name: | \" + gnome.EscapeHTML(s.name) + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Members: | \u003c/br\u003e\" + strings.Join(members, \"\u003c/br\u003e\") + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\tb.WriteString(\"| Manifest:\u0026nbsp;\u0026nbsp; | \" + strings.ReplaceAll(manifest, \"\\n\", \"\u003c/br\u003e\") + \" |\\n\")\n\n\treturn b.String()\n}\n\n// Execute creates the new sub DAO.\nfunc (s subDAOCreationStrategy) Execute(dao *gnome.DAO) error {\n\tsubDAO, err := gnome.New(s.name, s.title, gnome.WithManifest(s.manifest), gnome.WithMembers(s.members...))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Add the new sub DAO to its parent\n\tdao.AddSubDAO(subDAO)\n\n\t// Index the new sub DAO\n\ts.daos.IndexByPath(subDAO)\n\n\treturn nil\n}\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\nfunc (s subDAOCreationStrategy) PreMarshal() *json.Node {\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"name\", json.StringNode(\"name\", s.Name()))\n\tnode.AppendObject(\"daoName\", json.StringNode(\"daoName\", s.name))\n\tnode.AppendObject(\"daoTitle\", json.StringNode(\"daoTitle\", s.title))\n\tnode.AppendObject(\"daoManifest\", json.StringNode(\"daoManifest\", s.title))\n\tnode.AppendObject(\"members\", preMarshalMembers(\"members\", s.members))\n\treturn node\n}\n\nfunc newDAOMembersModificationStrategy(newMembers, removeMembers []gnome.Member) daoMembersModificationStrategy {\n\tif len(newMembers) == 0 \u0026\u0026 len(removeMembers) == 0 {\n\t\tpanic(\"members are required\")\n\t}\n\n\treturn daoMembersModificationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tnewMembers: newMembers,\n\t\tremoveMembers: removeMembers,\n\t}\n}\n\ntype daoMembersModificationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tnewMembers, removeMembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (daoMembersModificationStrategy) Name() string {\n\treturn \"modify-dao-members\"\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (daoMembersModificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (daoMembersModificationStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s daoMembersModificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (daoMembersModificationStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Tally requires at least three votes to be able to tally by 2/3s super majority\n\tif r.VoteCount() \u003c 3 {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\tif choice, ok := gnome.SelectChoiceBySuperMajority(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s daoMembersModificationStrategy) Validate(p *gnome.Proposal) error {\n\t// At least three members are required to enforce 2/3s majority on proposals\n\tdao := p.DAO()\n\tmemberCount := len(dao.Members()) + len(s.newMembers) - len(s.removeMembers)\n\tif memberCount \u003c minMembersCount {\n\t\treturn errors.New(\"DAO must always have a minimum of \" + strconv.Itoa(minMembersCount) + \" members\")\n\t}\n\n\t// TODO: Should we allow re-adding members to only change assigned roles?\n\tfor _, m := range s.newMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is already a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is not a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Execute modifies main DAO members.\nfunc (s daoMembersModificationStrategy) Execute(dao *gnome.DAO) error {\n\tfor _, m := range s.newMembers {\n\t\tdao.AddMember(m)\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tdao.RemoveMember(m.Address)\n\t}\n\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s daoMembersModificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\n\tif len(s.newMembers) \u003e 0 {\n\t\tvar members []string\n\t\tfor _, m := range s.newMembers {\n\t\t\tmembers = append(members, m.String())\n\t\t}\n\n\t\tb.WriteString(\"| New Members: | \" + strings.Join(members, \"\u003c/br\u003e\") + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.removeMembers) \u003e 0 {\n\t\tvar members []string\n\t\tfor _, m := range s.removeMembers {\n\t\t\tmembers = append(members, m.String())\n\t\t}\n\n\t\tb.WriteString(\"| Members to Remove: | \" + strings.Join(members, \"\u003c/br\u003e\") + \" |\\n\")\n\t}\n\n\treturn b.String()\n}\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\nfunc (s daoMembersModificationStrategy) PreMarshal() *json.Node {\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"name\", json.StringNode(\"name\", s.Name()))\n\tnode.AppendObject(\"newMembers\", preMarshalMembers(\"newMembers\", s.newMembers))\n\tnode.AppendObject(\"removeMembers\", preMarshalMembers(\"removeMembers\", s.removeMembers))\n\treturn node\n}\n\nfunc newSubDAODismissalStrategy(dao *gnome.DAO, x proposalIndex) subDAODismissalStrategy {\n\tif dao == nil {\n\t\tpanic(\"DAO is required\")\n\t}\n\n\treturn subDAODismissalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdao: dao,\n\t\tproposals: x,\n\t}\n}\n\ntype subDAODismissalStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdao *gnome.DAO\n\tproposals proposalIndex\n}\n\n// Name returns the name of the strategy.\nfunc (subDAODismissalStrategy) Name() string {\n\treturn \"dismiss-sub-dao\"\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAODismissalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAODismissalStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAODismissalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAODismissalStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s subDAODismissalStrategy) Validate(p *gnome.Proposal) error {\n\tparentDAO := s.dao.Parent()\n\tif parentDAO == nil {\n\t\treturn errors.New(\"the DAO to dismiss has no parent DAO\")\n\t}\n\n\tparentName := p.DAO().Name()\n\tif parentDAO.Name() != parentName {\n\t\treturn errors.New(`the DAO to dismiss must be a first level sub DAO of \"` + parentName + `\"`)\n\t}\n\treturn nil\n}\n\n// Execute modifies main DAO members.\nfunc (s subDAODismissalStrategy) Execute(*gnome.DAO) error {\n\t// Get the list of all sub DAOs and the root DAO to dismiss\n\tdaos := append(s.dao.CollectSubDAOs(), s.dao)\n\t// Proposal dismissal requires a reason\n\t// TODO: Send proposal to Execute and add dismissal proposal link?\n\treason := \"Dismissed because of DAO dismissal: \" + s.dao.Path()\n\n\tfor _, dao := range daos {\n\t\t// Dismiss all proposals for the current DAO\n\t\tfor _, p := range s.proposals.GetAllByDAO(dao.Path()) {\n\t\t\tif !p.Status().IsFinal() {\n\t\t\t\tp.Dismiss(reason)\n\t\t\t}\n\t\t}\n\n\t\t// Lock the DAO to dismiss it\n\t\tdao.Lock(\"\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAODismissalStrategy) RenderParams() string {\n\treturn \"DAO: \" + s.dao.Path()\n}\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\nfunc (s subDAODismissalStrategy) PreMarshal() *json.Node {\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"name\", json.StringNode(\"name\", s.Name()))\n\tnode.AppendObject(\"daoPath\", json.StringNode(\"daoPath\", s.dao.Path()))\n\treturn node\n}\n\nfunc preMarshalMembers(key string, members []gnome.Member) *json.Node {\n\tif members == nil {\n\t\treturn json.NullNode(key)\n\t}\n\n\tnodes := make([]*json.Node, len(members))\n\tfor i, m := range members {\n\t\tnodes[i] = json.ObjectNode(\"\", nil)\n\t\tnodes[i].AppendObject(\"address\", json.StringNode(\"address\", m.Address.String()))\n\n\t\tif m.Roles == nil {\n\t\t\tnodes[i].AppendObject(\"members\", json.NullNode(\"members\"))\n\t\t\tcontinue\n\t\t}\n\n\t\troles := make([]*json.Node, len(m.Roles))\n\t\tfor j, r := range m.Roles {\n\t\t\troles[j] = json.StringNode(\"\", string(r))\n\t\t}\n\t\tnodes[i].AppendObject(\"members\", json.ArrayNode(\"members\", roles))\n\t}\n\treturn json.ArrayNode(key, nodes)\n}\n"},{"name":"strategy_dao_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestSubDAOCreationStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName, title, manifest, err string\n\t\tmembers []gnome.Member\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\tmembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"without name\",\n\t\t\terr: \"sub DAO name is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid name\",\n\t\t\tdaoName: \"invalid name\",\n\t\t\terr: `invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`,\n\t\t},\n\t\t{\n\t\t\tname: \"without title\",\n\t\t\tdaoName: \"test\",\n\t\t\terr: \"sub DAO title is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"without manifest\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\terr: \"sub DAO manifest is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than two DAO members\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\terr: \"sub DAOs require at least two members\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := \"create-sub-dao\"\n\t\t\tquorum := 1.0\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAOCreationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAOCreationStrategy(daoIndex{}, tc.daoName, tc.title, tc.manifest, tc.members)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"quorum vote yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum vote no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum with different choices\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAOCreationStrategy(daoIndex{}, \"name\", \"Name\", \"Manifest\", []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName string\n\t\tsetup func(*daoIndex) *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"existing name\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(x *daoIndex) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tx.IndexByPath(child)\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"sub DAO path has been taken by another DAO\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked parent\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t\tdao.Lock(\"\")\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"parent DAO 'parent' is locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tx := daoIndex{}\n\t\t\tdao := tc.setup(\u0026x)\n\t\t\tmembers := []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t}\n\t\t\ts := newSubDAOCreationStrategy(x, tc.daoName, \"Title\", \"Manifest\", members)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"name\", \"Name\")\n\tsubName := \"sub\"\n\ttitle := \"Sub DAO\"\n\tmanifest := \"Test manifest\"\n\n\ts := newSubDAOCreationStrategy(daoIndex{}, subName, title, manifest, []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t})\n\tmembers := fmt.Sprintf(\"%v\", s.members)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tsubDAOs := dao.SubDAOs()\n\tif c := len(subDAOs); c != 1 {\n\t\tt.Fatalf(\"expected one sub DAO, got: %d\", c)\n\t}\n\n\tsubDAO := subDAOs[0]\n\tif got := subDAO.Name(); got != subName {\n\t\tt.Fatalf(\"expected sub DAO name: '%s', got: '%s'\", subName, got)\n\t}\n\n\tif got := subDAO.Title(); got != title {\n\t\tt.Fatalf(\"expected sub DAO title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := subDAO.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected sub DAO manifest: '%s', got: '%d'\", manifest, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", subDAO.Members()); got != members {\n\t\tt.Fatalf(\"expected sub DAO members: '%s', got: '%s'\", members, got)\n\t}\n}\n\nfunc TestModifyDAOMembersStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"new and remove members\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"new members only\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"remove members only\",\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"no members\",\n\t\t\terr: \"members are required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := \"modify-dao-members\"\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s daoMembersModificationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"super majority votes yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"super majority votes no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newDAOMembersModificationStrategy(\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member5\")},\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member2\")},\n\t\t\t)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyValidate(t *testing.T) {\n\tmember5 := newTestMember(t, \"member5\")\n\tmembers := []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\tsetup func() *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"less than three members\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tremoveMembers: members[1:],\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"main DAO must always have a minimum of three members\",\n\t\t},\n\t\t{\n\t\t\tname: \"add existing member\",\n\t\t\tnewMembers: []gnome.Member{members[0]},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is already a DAO member: \" + members[0].String(),\n\t\t},\n\t\t{\n\t\t\tname: \"remove unexisting member\",\n\t\t\tremoveMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is not a DAO member: \" + member5.String(),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := tc.setup()\n\t\t\ts := newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tnewMembers := []gnome.Member{\n\t\tnewTestMember(t, \"member5\"),\n\t\tnewTestMember(t, \"member6\"),\n\t}\n\tremoveMembers := dao.Members()[1:3]\n\ts := newDAOMembersModificationStrategy(newMembers, removeMembers)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tif c := len(dao.Members()); c != 4 {\n\t\tt.Fatalf(\"expected DAO to have 4 members, got: %d\", c)\n\t}\n\n\tfor _, m := range newMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be added to the DAO\", m.Address)\n\t\t}\n\t}\n\n\tfor _, m := range removeMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be removed from the DAO\", m.Address)\n\t\t}\n\t}\n}\n\nfunc TestSubDAODismissalStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tdao *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"dao\", \"DAO\"),\n\t\t},\n\t\t{\n\t\t\tname: \"no DAO\",\n\t\t\terr: \"DAO is required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := \"dismiss-sub-dao\"\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAODismissalStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAODismissalStrategy(tc.dao, proposalIndex{})\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tsubDAO := gnome.MustNew(\"sub\", \"Sub DAO\")\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAODismissalStrategy(subDAO, proposalIndex{})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyValidate(t *testing.T) {\n\tparentDAO := gnome.MustNew(\"parent\", \"Parent\")\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(parent *gnome.DAO) (child *gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func(dao *gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao.AddSubDAO(child)\n\t\t\t\treturn child\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dismiss non child DAO\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"foo\", \"Foo\", gnome.WithSubDAO(child))\n\t\t\t\treturn child\n\t\t\t},\n\t\t\terr: `the DAO to dismiss must be a first level sub DAO of \"` + parentDAO.Name() + `\"`,\n\t\t},\n\t\t{\n\t\t\tname: \"parent DAO not found\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"child\", \"Child\")\n\t\t\t},\n\t\t\terr: \"the DAO to dismiss has no parent DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tchildDAO := tc.setup(parentDAO)\n\t\t\ts := newSubDAODismissalStrategy(childDAO, proposalIndex{})\n\t\t\tp, _ := gnome.NewProposal(1, s, testutils.TestAddress(\"member\"), parentDAO, \"Dismiss child DAO\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyExecute(t *testing.T) {\n\t// Arrange\n\tvar (\n\t\tstrategy testStrategy\n\t\tproposals proposalIndex\n\t)\n\n\tcaller := testutils.TestAddress(\"caller\")\n\n\tthreeDAO := gnome.MustNew(\"three\", \"Three\")\n\ttwoDAO := gnome.MustNew(\"two\", \"Two\")\n\toneDAO := gnome.MustNew(\"one\", \"One\", gnome.WithSubDAO(twoDAO), gnome.WithSubDAO(threeDAO))\n\trootDAO := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(oneDAO))\n\n\tp, _ := gnome.NewProposal(1, strategy, caller, rootDAO, \"Root\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(2, strategy, caller, oneDAO, \"One\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(3, strategy, caller, twoDAO, \"Two\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(4, strategy, caller, threeDAO, \"Thee\")\n\tproposals.Index(p)\n\n\tdismissReason := \"Dismissed because of DAO dismissal: \" + rootDAO.Name()\n\tdaos := []*gnome.DAO{rootDAO, oneDAO, twoDAO, threeDAO}\n\ts := newSubDAODismissalStrategy(rootDAO, proposals)\n\n\t// Act\n\terr := s.Execute(nil)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tfor _, dao := range daos {\n\t\tif !dao.IsLocked() {\n\t\t\tt.Fatalf(\"expected DAO '%s' to be locked\", dao.Title())\n\t\t}\n\t}\n\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tif got := p.Status(); got != gnome.StatusDismissed {\n\t\t\tt.Fatalf(\"expected proposal '%s' status to be 'dismissed', got: '%s'\", p.Title(), got.String())\n\t\t}\n\n\t\tif got := p.StatusReason(); got != dismissReason {\n\t\t\tt.Fatalf(\"expected dismiss reason '%s', got: '%s'\", dismissReason, got)\n\t\t}\n\t\treturn false\n\t})\n}\n\ntype testStrategy struct{}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice { return []gnome.VoteChoice{gnome.ChoiceYes} }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return gnome.ChoiceYes }\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"strategy_general.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/json\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\n// newGeneralStrategy creates a new general proposal strategy.\n// This type of proposal is not executable so it doesn't modify the DAO state when proposal passes.\nfunc newGeneralStrategy() generalStrategy {\n\treturn generalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t}\n}\n\ntype generalStrategy struct {\n\tchoices []gnome.VoteChoice\n}\n\n// Name returns the name of the strategy.\nfunc (generalStrategy) Name() string {\n\treturn \"general\"\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (generalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (generalStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s generalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s generalStrategy) CheckVote(_ std.Address, choice gnome.VoteChoice, reason string) error {\n\t// Reason is required when voting NO on standard proposals\n\tif choice == gnome.ChoiceNo \u0026\u0026 reason == \"\" {\n\t\treturn errors.New(\"reason is required when voting NO in standard proposals\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (generalStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (generalStrategy) Validate(p *gnome.Proposal) error {\n\tif strings.TrimSpace(p.Description()) == \"\" {\n\t\treturn errors.New(\"proposal description is required\")\n\t}\n\treturn nil\n}\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\nfunc (s generalStrategy) PreMarshal() *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"name\": json.StringNode(\"name\", s.Name()),\n\t})\n}\n"},{"name":"strategy_general_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestGeneralStrategy(t *testing.T) {\n\t// Arrange\n\tname := \"general\"\n\tquorum := 0.51\n\tvotingPeriod := time.Hour * 24 * 2\n\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\tgnome.ChoiceYes,\n\t\tgnome.ChoiceNo,\n\t})\n\n\t// Act\n\ts := newGeneralStrategy()\n\n\t// Assert\n\tif got := s.Name(); got != name {\n\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t}\n\n\tif got := s.Quorum(); got != quorum {\n\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t}\n\n\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t}\n}\n\nfunc TestGeneralStrategyCheckVote(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tchoice gnome.VoteChoice\n\t\treason, err string\n\t}{\n\t\t{\n\t\t\tname: \"yes\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with reason\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with invalid reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\terr: \"reason is required when voting NO in standard proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(\"\", tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGeneralStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"test\", \"Test\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n"},{"name":"strategy_lock.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/json\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\n// newLockingStrategy creates a new DAO locking proposal strategy.\nfunc newLockingStrategy(council *gnome.DAO, reason string, preLockFn func() error) lockingStrategy {\n\t// Locking should only be done in the council DAO\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"DAO is not the council\")\n\t}\n\n\treturn lockingStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\treason: reason,\n\t\tpreLockFn: preLockFn,\n\t}\n}\n\ntype lockingStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\treason string\n\tpreLockFn func() error\n}\n\n// Name returns the name of the strategy.\nfunc (lockingStrategy) Name() string {\n\treturn \"locking\"\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.26\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\tif s.council.IsLocked() {\n\t\treturn errors.New(\"council DAO is already locked\")\n\t}\n\treturn nil\n}\n\n// Execute locks the council DAO.\nfunc (s lockingStrategy) Execute(*gnome.DAO) (err error) {\n\tif s.preLockFn != nil {\n\t\tif err := s.preLockFn(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\ts.council.Lock(s.reason)\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s lockingStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Reason: | \" + gnome.EscapeHTML(s.reason) + \" |\\n\")\n\n\treturn b.String()\n}\n\n// PreMarshaler defines an interface to enable JSON pre marshalling support.\nfunc (s lockingStrategy) PreMarshal() *json.Node {\n\tnode := json.ObjectNode(\"\", nil)\n\tnode.AppendObject(\"name\", json.StringNode(\"name\", s.Name()))\n\tnode.AppendObject(\"reason\", json.StringNode(\"reason\", s.reason))\n\treturn node\n}\n"},{"name":"strategy_lock_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc TestLockingStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, err string\n\t\tsetup func() *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dao is not council\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\")\n\t\t\t},\n\t\t\terr: \"DAO is not the council\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := \"locking\"\n\t\t\tquorum := 0.26\n\t\t\tvotingPeriod := time.Hour * 24 * 2\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\t\t\tcouncilDAO := tc.setup()\n\n\t\t\t// Act\n\t\t\tvar s lockingStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newLockingStrategy(councilDAO, \"\", nil)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyTally(t *testing.T) {\n\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(*gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked council DAO\",\n\t\t\tsetup: func(councilDAO *gnome.DAO) {\n\t\t\t\tcouncilDAO.Lock(\"\")\n\t\t\t},\n\t\t\terr: \"council DAO is already locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\terr := s.Validate(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyExecute(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason, err string\n\t\tsetup func(*gnome.DAO)\n\t\tpreLockErr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Lock reason\",\n\t\t},\n\t\t{\n\t\t\tname: \"pre lock function error\",\n\t\t\tpreLockErr: errors.New(\"test error\"),\n\t\t\terr: \"test error\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\tvar (\n\t\t\t\tpreLockFnCalled bool\n\n\t\t\t\ts = newLockingStrategy(councilDAO, tc.reason, func() error {\n\t\t\t\t\tpreLockFnCalled = true\n\t\t\t\t\treturn tc.preLockErr\n\t\t\t\t})\n\t\t\t)\n\n\t\t\t// Act\n\t\t\terr := s.Execute(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !preLockFnCalled {\n\t\t\t\tt.Fatal(\"expected pre-lock function to be called\")\n\t\t\t}\n\n\t\t\tif !councilDAO.IsLocked() {\n\t\t\t\tt.Fatal(\"expected DAO to be locked\")\n\t\t\t}\n\n\t\t\tif got := councilDAO.LockReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected lock reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"uri.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\nfunc makeRealmURL(renderPath string) string {\n\tvar sub string\n\tif id := std.GetChainID(); strings.HasPrefix(id, \"test\") {\n\t\t// Sub domain prefix for testnets\n\t\tsub = id + \".\"\n\t}\n\n\turl := \"https://\" + sub + std.CurrentRealm().PkgPath()\n\tif renderPath != \"\" {\n\t\turl += \":\" + renderPath\n\t}\n\treturn url\n}\n\nfunc makeRealmPath(renderPath string) string {\n\tpath := gnome.CutRealmDomain(std.CurrentRealm().PkgPath())\n\tif renderPath != \"\" {\n\t\tpath += \":\" + renderPath\n\t}\n\treturn path\n}\n\nfunc makeGnoStudioConnectURL(functionName string) string {\n\treturn ufmt.Sprintf(\n\t\t\"https://gno.studio/connect/view/%s?network=%s\u0026tab=functions#%s\",\n\t\tstd.CurrentRealm().PkgPath(),\n\t\tstd.GetChainID(),\n\t\tfunctionName,\n\t)\n}\n\nfunc makeDAOURI(daoPath string, isRelative bool) string {\n\trenderPath := \"dao/\" + daoPath\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n\nfunc makeProposalURI(proposalID gnome.ID, isRelative bool) string {\n\trenderPath := \"proposal/\" + proposalID.String()\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n\nfunc makeProposalsURI(daoPath string, isRelative bool) string {\n\trenderPath := \"proposals/\" + daoPath + \":page=1\"\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"26000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C81iESrrBo3S31sjAA1w9aET+P4gOsYYXXsaau2w3POt+y+VNDYEdbzAt+EuNArWm8Y0Ta65YYJ+hS5PhlJ7DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"gnome","path":"gno.land/r/gnome/dao/pre1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"gnome.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Names of the initial DAOs.\nconst (\n\tnameCouncilDAO = \"council\"\n\tnameMainDAO = \"main\"\n)\n\n// Member roles.\nconst (\n\tRoleAdmin gnome.Role = \"admin\"\n\tRoleEcoDev gnome.Role = \"eco-dev\"\n\tRoleDev gnome.Role = \"dev\"\n\tRoleRealm gnome.Role = \"realm\"\n)\n\n// The \"Gno.me\" DAO defines an initial root DAO with a single sub DAO, where the root is\n// the council DAO and the child is the main DAO. Council DAO members are hard coded and\n// can't be modified. Main DAO members can be modified anytime though a modify DAO members\n// proposals.\n//\n// The main DAO must have a minimum of three members at all time to be able to apply 2/3s\n// voting majority criteria required for some proposal types allowed for the main DAO.\n//\n// Sub DAOs can be created though sub DAO add proposals but its members can't be modified\n// once the sub DAO is created. Sub DAOs must be dismissed though a proposal and a new sub\n// DAO must be created if its members must be modified.\nvar gnomeDAO = gnome.MustNew(\n\tnameCouncilDAO,\n\t\"Council\",\n\tgnome.WithManifest(\"Gnomes are thinking\"),\n\tgnome.AssignAsSuperCouncil(),\n\tgnome.WithMembers(\n\t\tgnome.NewMember(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\", RoleDev),\n\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\", RoleDev),\n\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t),\n\tgnome.WithSubDAO(\n\t\tgnome.MustNew(\n\t\t\tnameMainDAO,\n\t\t\t\"Main\",\n\t\t\tgnome.WithManifest(\"Gnomes are building\"),\n\t\t\tgnome.WithMembers(\n\t\t\t\tgnome.NewMember(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\", RoleDev),\n\t\t\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\", RoleDev),\n\t\t\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t\t\t),\n\t\t),\n\t),\n)\n\nfunc mustGetDAO(path string) *gnome.DAO {\n\tif strings.TrimSpace(path) == \"\" {\n\t\tpanic(\"DAO path is empty\")\n\t}\n\n\tdao, found := daos.GetByPath(path)\n\tif !found {\n\t\tpanic(\"DAO not found\")\n\t}\n\treturn dao\n}\n"},{"name":"indexes.gno","body":"package gnome\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nvar (\n\tdaos daoIndex\n\tproposals proposalIndex\n\tlastProposalID gnome.ID\n)\n\nfunc init() {\n\t// Index initial council and main DAO\n\tmainDAO := gnomeDAO.SubDAOs()[0]\n\tdaos.IndexByPath(gnomeDAO)\n\tdaos.IndexByPath(mainDAO)\n}\n\nfunc genProposalID() gnome.ID {\n\tlastProposalID += 1\n\treturn lastProposalID\n}\n\n// TODO: Deprecate DAO index in favor of using DAO methods\ntype daoIndex struct {\n\tindex avl.Tree // string(DAO path) -\u003e *gnome.DAO\n}\n\n// IndexByPath indexes a DAO by its path.\nfunc (x *daoIndex) IndexByPath(dao *gnome.DAO) bool {\n\treturn x.index.Set(dao.Path(), dao)\n}\n\n// GetByPath gets a DAO by its path.\nfunc (x daoIndex) GetByPath(path string) (*gnome.DAO, bool) {\n\tif v, ok := x.index.Get(path); ok {\n\t\treturn v.(*gnome.DAO), true\n\t}\n\treturn nil, false\n}\n\n// HasPathKey checks if a key with a DAO path exists.\nfunc (x daoIndex) HasPathKey(path string) bool {\n\treturn x.index.Has(path)\n}\n\ntype proposalIndex struct {\n\tindex avl.Tree // string(binary gnome.ID) -\u003e *gnome.Proposal\n\tgroups avl.Tree // string(DAO path) -\u003e []*gnome.Proposal\n}\n\n// Index indexes a proposal by its ID and DAO.\nfunc (x *proposalIndex) Index(p *gnome.Proposal) {\n\tx.IndexByID(p)\n\tx.IndexByDAO(p)\n}\n\n// IndexByID indexes a proposal by its ID.\nfunc (x *proposalIndex) IndexByID(p *gnome.Proposal) bool {\n\treturn x.index.Set(p.ID().Key(), p)\n}\n\n// IndexByDAO indexes a proposal for a DAO.\nfunc (x *proposalIndex) IndexByDAO(p *gnome.Proposal) bool {\n\tdaoPath := p.DAO().Path()\n\tproposals := x.GetAllByDAO(daoPath)\n\tproposals = append([]*gnome.Proposal{p}, proposals...) // reverse append\n\treturn x.groups.Set(daoPath, proposals)\n}\n\n// GetByID gets a proposal by its ID.\nfunc (x proposalIndex) GetByID(id gnome.ID) (*gnome.Proposal, bool) {\n\tif v, exists := x.index.Get(id.Key()); exists {\n\t\treturn v.(*gnome.Proposal), true\n\t}\n\treturn nil, false\n}\n\n// GetAllByDAO gets all proposals of a DAO.\nfunc (x proposalIndex) GetAllByDAO(daoPath string) []*gnome.Proposal {\n\tif v, exists := x.groups.Get(daoPath); exists {\n\t\treturn v.([]*gnome.Proposal)\n\t}\n\treturn nil\n}\n\n// Iterate iterates all proposals starting from the oldest one.\nfunc (x proposalIndex) Iterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*gnome.Proposal))\n\t})\n}\n\n// ReverseIterate iterates all proposals starting from the latest one.\nfunc (x proposalIndex) ReverseIterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.ReverseIterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*gnome.Proposal))\n\t})\n}\n"},{"name":"params.gno","body":"package gnome\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameSubDAOCreation = \"sub-dao-creation\"\n\tStrategyNameSubDAODismissal = \"sub-dao-dismissal\"\n\tStrategyNameDAOMembersModification = \"dao-members-modification\"\n\tStrategyNameBudget = \"budget\"\n\tStrategyNameGeneral = \"general\"\n\tStrategyNameLocking = \"locking\"\n\tStrategyNameParamsUpdate = \"params-update\"\n)\n\nvar parameters struct {\n\t// VotingPeriods contains the current voting period for each proposal type.\n\tVotingPeriods gnome.DurationParams\n\n\t// ReviewDeadline defines the time after which a proposal can't be withdrawed by the proposer.\n\t// Proposal can only be voted on after this deadline but not before.\n\t// This greace period gives the proposer the chance to withdraw a proposal if there is a mistake.\n\tReviewDeadline time.Duration\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameSubDAOCreation, time.Minute*10)\n\tparameters.VotingPeriods.Set(StrategyNameSubDAODismissal, Day*7)\n\tparameters.VotingPeriods.Set(StrategyNameDAOMembersModification, time.Minute*30)\n\tparameters.VotingPeriods.Set(StrategyNameBudget, Day*7)\n\tparameters.VotingPeriods.Set(StrategyNameGeneral, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n\n\t// Initial review deadline\n\tparameters.ReviewDeadline = time.Second\n}\n"},{"name":"public.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n\trouter \"gno.land/p/gnome/router/v1\"\n)\n\n// Render returns a Markdown string with DAO or proposal details.\n// By default it renders the Council DAO details view.\n//\n// Paths:\n// - `dao/DAO_PATH` =\u003e Renders DAO or sub DAO details\n// - `proposal/PROPOSAL_ID` =\u003e Renders details for a proposal\n// - `proposals/DAO_PATH` =\u003e Renders the list of proposals for a DAO\nfunc Render(path string) string {\n\tr := router.New()\n\n\tr.HandleFunc(\"\", renderDAO)\n\tr.HandleFunc(\"dao\", renderDAO)\n\tr.HandleFunc(\"proposal\", renderProposal)\n\tr.HandleFunc(\"proposals\", renderProposals)\n\tr.HandleFunc(\"params\", renderParams)\n\n\t// Render global alerts before proposal states are updated within the handlers\n\treturn renderAlerts() + r.Render(path)\n}\n\n// GetDAO returns an invariant reference to a DAO.\n// Council DAO is returned when path is empty.\nfunc GetDAO(path string) gnome.InvarDAO {\n\tif path == \"\" {\n\t\tpath = nameCouncilDAO\n\t}\n\n\tdao := mustGetDAO(path)\n\treturn gnome.NewInvarDAO(dao)\n}\n\n// IterateProposals iterates DAO proposals by ascending IDs.\nfunc IterateProposals(fn func(gnome.InvarProposal) bool) {\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\treturn fn(gnome.NewInvarProposal(p))\n\t})\n}\n\n// WithdrawProposal withdraws a proposal.\n// Proposals can only be withdrawed by the account that creates it when the state is \"review\".\n// They can't be withdrawed once the review deadline of one hour after creation is met.\nfunc WithdrawProposal(proposalID uint64) string {\n\tassertDAOIsNotLocked()\n\n\tp := mustGetProposal(proposalID)\n\tassertCallerCanWithdraw(p)\n\n\tif err := p.Withdraw(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tAdvanceProposals()\n\n\treturn \"Proposal withdrawed\"\n}\n\n// Vote submits a vote for a proposal.\n//\n// Parameters:\n// - proposalID: ID of the proposal to vote (required)\n// - vote: Voting choice, true=Yes, false=No (required)\n// - reason: Text with the reason for the vote\n// - daoPath: Path of the DAO where the voting account belongs to\n//\n// Reason is in general optional but might be required for some proposals when voting No.\n//\n// DAO name is optional and by default is the one that the proposal belongs to.\n// Only parents of the proposal's DAO are allowed as `daoPath` values.\n// Child votes are not tallied when a member of a parent DAO votes on a child's proposal.\nfunc Vote(proposalID uint64, vote bool, reason, daoPath string) string {\n\tassertDAOIsNotLocked()\n\n\t// Make sure proposal states are up to date before submitting the vote\n\tAdvanceProposals()\n\n\t// Get proposal and check that current status accepts votes\n\tp := mustGetProposal(proposalID)\n\tif s := p.Status(); s.IsFinal() {\n\t\tpanic(\"proposal status doesn't allow new vote submissions: \" + s.String())\n\t}\n\n\t// When a DAO name is availalable check that it matches one of the proposal's DAO parents\n\t// and if so promote the proposal to a parent DAO. Promoting a proposal invalidates the votes\n\t// submitted by current DAO's members and moves voting responsibility to the parent DAO members.\n\tdaoPath = strings.TrimSpace(daoPath)\n\tif daoPath != \"\" \u0026\u0026 p.DAO().Path() != daoPath {\n\t\t// Check that the path belongs to a parent DAO.\n\t\t// Path separator is added to the prefix to make sure that similar prefixes don't match.\n\t\tif !strings.HasPrefix(p.DAO().Path(), daoPath+gnome.PathSeparator) {\n\t\t\tpanic(`path \"` + daoPath + `\" is not a parent of the proposal's DAO path`)\n\t\t}\n\n\t\t// Promote the active proposal's DAO to a parent DAO\n\t\tparentDAO := mustGetDAO(daoPath)\n\t\tif err := p.Promote(parentDAO); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// Reindex the proposal so its available under the parent DAO proposals. Child DAO will also\n\t\t// keep the promoted proposal indexed so it can be listed within the child DAO's proposals.\n\t\tproposals.Index(p)\n\t}\n\n\t// When proposal has \"review\" status check if deadline is met and if so activate it\n\tif p.Status() == gnome.StatusReview {\n\t\tif !p.HasReviewDeadlinePassed() {\n\t\t\tpanic(\"votes are not allowed until \" + p.ReviewDeadline().UTC().Format(\"2006-01-02 15:04 MST\"))\n\t\t}\n\n\t\tif err := p.Activate(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tvar choice gnome.VoteChoice\n\tif vote {\n\t\tchoice = gnome.ChoiceYes\n\t} else {\n\t\tchoice = gnome.ChoiceNo\n\t}\n\n\t// Submit vote\n\tcaller := std.GetOrigCaller() // TODO: Check that caller is member of the DAO\n\terr := p.Vote(caller, gnome.VoteChoice(choice), reason)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn \"Vote submitted for proposal \" + makeProposalURI(gnome.ID(proposalID), false)\n}\n\n// AdvanceProposals iterates review and active proposals and tallies proposals that met their deadlines.\n// Proposals in review status are activated to allow voting.\n// Active proposals are tallied which means the number of votes is counted and status changed accordingly.\n// Active executable proposals are executed when the proposal status changes to \"passed\".\nfunc AdvanceProposals() string {\n\tassertDAOIsNotLocked()\n\n\tadvanceProposals()\n\n\treturn \"Proposals advanced for realm \" + makeRealmURL(\"\")\n}\n\n// IsProposalsAdvanceNeeded checks if a call to `AdvanceProposals()` is required to update proposals.\nfunc IsProposalsAdvanceNeeded() bool {\n\tif gnomeDAO.IsLocked() {\n\t\treturn false\n\t}\n\n\treturn proposals.ReverseIterate(func(p *gnome.Proposal) bool {\n\t\tswitch p.Status() {\n\t\tcase gnome.StatusReview:\n\t\t\tif p.HasReviewDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase gnome.StatusActive:\n\t\t\tif p.HasVotingDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc advanceProposals() {\n\t// TODO: Use unix timestamp as part of proposal IDs to avoid iterating older tallied proposals\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tstatus := p.Status()\n\t\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\t\tp.Activate()\n\t\t\tstatus = p.Status()\n\t\t}\n\n\t\tif p.Status() == gnome.StatusActive \u0026\u0026 p.HasVotingDeadlinePassed() {\n\t\t\tp.Tally()\n\n\t\t\t// Change proposal status to failed when execution fails\n\t\t\tif err := p.Execute(); gnome.IsExecutionError(err) {\n\t\t\t\tp.Fail(\"failed due to conflicts: \" + err.Error())\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc mustGetProposal(id uint64) *gnome.Proposal {\n\tp, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tpanic(\"proposal not found\")\n\t}\n\treturn p\n}\n\nfunc assertCallerCanWithdraw(p *gnome.Proposal) {\n\tif p.Proposer() != std.GetOrigCaller() {\n\t\tpanic(\"proposals can only be withdrawed by the proposer\")\n\t}\n\n\tif p.Status() != gnome.StatusReview {\n\t\tpanic(`proposals can only be withdrawed when status is \"review\"`)\n\t} else if p.HasReviewDeadlinePassed() {\n\t\tpanic(\"withdrawal not allowed, withdrawal deadline expired\")\n\t}\n}\n"},{"name":"public_proposals.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// SubmitCustomProposal submits a new proposal of a custom type.\n//\n// This function allows other realms to submit custom proposal types.\n//\n// Parameters:\n// - title: A title for the proposal (required)\n// - description: A description of the proposal\n// - strategy: A strategy for the new proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\nfunc SubmitCustomProposal(title, description string, s gnome.ProposalStrategy, daoPath string) gnome.ID {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tid := genProposalID()\n\tp, err := gnome.NewProposal(\n\t\tid,\n\t\ts,\n\t\tcaller,\n\t\tdao,\n\t\ttitle,\n\t\tgnome.WithDescription(description),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\treturn p.ID()\n}\n\n// SubmitGeneralProposal submits a new general proposal.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - votingDeadline: Number of days until the voting period ends\n//\n// The name of the DAO where the proposal is created is a slug, where \"council\"\n// is the Council DAO and \"main\" is the name of the Main DAO.\n//\n// The voting period deadline for the proposal must be between 2 and 10 days.\n// It defaults to 2 days when `votingDeadline` value is 0.\nfunc SubmitGeneralProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tvotingDeadline uint,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\topts := []gnome.ProposalOption{\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t}\n\n\tif votingDeadline != 0 {\n\t\tif votingDeadline \u003c 2 || votingDeadline \u003e 10 {\n\t\t\tpanic(\"voting period deadline must be between 2 and 10 days\")\n\t\t}\n\n\t\tdeadline := time.Now().Add(time.Hour * 24 * time.Duration(votingDeadline))\n\t\topts = append(opts, gnome.WithVotingDeadline(deadline))\n\t}\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tp, err := gnome.NewProposal(genProposalID(), newGeneralStrategy(), caller, dao, proposalTitle, opts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAOCreationProposal submits a new proposal to add a sub DAO to an existing DAO.\n//\n// Proposal requires the participation of all DAO members, otherwise the outcome will be low participation.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - parentDAOPath: Path of the sub DAO's parent (required)\n// - subDAOName: Slug name of the new sub DAO (required)\n// - subDAOTitle: A title for the new sub DAO (required)\n// - subDAOManifest: Sub DAO manifest (required)\n// - subDAOMembers: List of sub DAO member addresses (required)\n//\n// Sub DAO name must be a slug allows letters from \"a\" to \"z\", numbers, \"-\" and \"_\" as valid characters.\n//\n// The list of sub DAO members must be a newline separated list of addresses, with a minimum of 2 addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitSubDAOCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tparentDAOPath,\n\tsubDAOName,\n\tsubDAOTitle,\n\tsubDAOManifest,\n\tsubDAOMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(parentDAOPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tif daos.HasPathKey(subDAOPath) {\n\t\tpanic(\"sub DAO name is already taken by another DAO\")\n\t}\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tmembers := gnome.MustParseStringToMembers(subDAOMembers)\n\tstrategy := newSubDAOCreationStrategy(daos, subDAOName, subDAOTitle, subDAOManifest, members)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAODismissalProposal submits a new proposal to dismiss a sub DAO.\n//\n// Dismissing a sub DAO also dismisses all active proposals and any sub DAO below the dismissed DAO tree.\n// Only the direct parent of a DAO can create a proposal to dismiss any of its fist level sub DAOs.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - subDAOName: Slug name of the sub DAO to dismiss (required)\nfunc SubmitSubDAODismissalProposal(proposalTitle, daoPath, subDAOName string) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tsubDAO := mustGetDAO(subDAOPath)\n\tassertDAOIsNotDismissed(subDAO)\n\n\tcaller := std.GetOrigCaller()\n\tstrategy := newSubDAODismissalStrategy(subDAO, proposals)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOMembersModificationProposal submits a new proposal to modify the members of a DAO.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by super majority with a 2/3s threshold. Abstentions are not considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - newMembers: List of member addresses to add to Main DAO\n// - removeMembers: List of member addresses to remove from the Main DAO\n//\n// At leat one member address is required either to be added or removed from the DAO.\n// Members can be added and removed within the same proposal.\n//\n// Each list of members must be newline separated list of addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitDAOMembersModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tnewMembers,\n\tremoveMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newDAOMembersModificationStrategy(\n\t\tgnome.MustParseStringToMembers(newMembers),\n\t\tgnome.MustParseStringToMembers(removeMembers),\n\t)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitBudgetProposal submits a new budget proposal.\n//\n// Only membes of the Council or Main DAO can vote on this type of proposals.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - budget: The proposal budget (required)\n//\n// Budget doesn't enforce any specific format right now but an example format that\n// could be used is amount plus symbol, for example 100UGNOT, 100000USD, etc.\nfunc SubmitBudgetProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tbudget string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newBudgetStrategy(gnomeDAO, budget)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOLockingProposal submits a new proposal to lock the DAO.\n//\n// Locking the DAO \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 33% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by the Council or Main DAO members.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - reason: Text with the DAO locking reason\n//\n// The optional `reason` argument can contain HTML.\nfunc SubmitDAOLockingProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\treason string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tcaller := std.GetOrigCaller()\n\tassertIsCouncilOrMainDAOMember(caller)\n\n\tdao := mustGetDAO(daoPath)\n\tassertIsCouncilOrMainDAO(dao)\n\n\treason = strings.TrimSpace(reason)\n\tstrategy := newLockingStrategy(gnomeDAO, reason, func() error {\n\t\t// Advance all proposals before locking the DAO\n\t\tadvanceProposals()\n\t\treturn nil\n\t})\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - proposalReviewDeadline: Number of seconds where proposals can be withdrawed\n// - votingPeriodSubDAOCreation: Voting period for sub DAO creation proposals\n// - votingPeriodSubDAODismissal: Voting period for sub DAO dismissal proposals\n// - votingPeriodDAOMembersModification: Voting period for DAO members modification proposals\n// - votingPeriodBudget: Voting period for budget proposals\n// - votingPeriodGeneral: Voting period for general proposals\n// - votingPeriodLocking: Voting period for locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tproposalReviewDeadline,\n\tvotingPeriodSubDAOCreation,\n\tvotingPeriodSubDAODismissal,\n\tvotingPeriodDAOMembersModification,\n\tvotingPeriodBudget,\n\tvotingPeriodGeneral,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := paramsUpdateStrategy{\n\t\treviewDeadline: time.Second * time.Duration(proposalReviewDeadline),\n\t}\n\n\tif votingPeriodSubDAOCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodSubDAOCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodSubDAODismissal \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodSubDAODismissal) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodDAOMembersModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDAOMembersModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodBudget \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodBudget) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodGeneral \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodGeneral) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameGeneral, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 \u0026\u0026 strategy.reviewDeadline == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\tgnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)),\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\nfunc assertCanCreateProposal(proposer std.Address, dao *gnome.DAO) {\n\tif !dao.HasMember(proposer) {\n\t\tpanic(\"you must be a DAO member to create a proposal\")\n\t}\n}\n\nfunc assertDAOIsNotDismissed(dao *gnome.DAO) {\n\t// DAOs are locked when they are dismissed\n\tif dao.IsLocked() {\n\t\tpanic(\"DAO is dismissed: \" + dao.Path())\n\t}\n}\n\nfunc assertDAOIsNotLocked() {\n\tif gnomeDAO.IsLocked() {\n\t\tpanic(\"DAO is locked\")\n\t}\n}\n\nfunc assertIsCouncilOrMainDAO(dao *gnome.DAO) {\n\tif !dao.IsSuperCouncil() {\n\t\t// Main DAO parent must be the super council\n\t\tparentDAO := dao.Parent()\n\t\tif !parentDAO.IsSuperCouncil() {\n\t\t\tpanic(\"DAO is not the council or main DAO\")\n\t\t}\n\t}\n}\n\nfunc assertIsCouncilOrMainDAOMember(addr std.Address) {\n\tif !gnomeDAO.HasMember(addr) {\n\t\tmainDAO := gnomeDAO.SubDAOs()[0]\n\t\tif !mainDAO.HasMember(addr) {\n\t\t\tpanic(\"account is not a council or main DAO member\")\n\t\t}\n\t}\n}\n"},{"name":"public_proposals_0a_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tpID := gnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n\tprintln(pID)\n\n\tmarkdown := gnome.Render(\"proposal/1\")\n\tprintln(markdown)\n}\n\n// Output:\n// 1\n// # #1 Test proposal\n// - Type: general\n// - Created: 2009-02-13 23:31 UTC\n// - Proposer: g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\n// - Status: **review**\n// - Review Deadline: 2009-02-14 00:31 UTC\n// ## Description\n// A test proposal\n// ## Votes\n// The proposal has no votes\n"},{"name":"public_proposals_0b_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst nonMember = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(nonMember)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// you must be a DAO member to create a proposal\n"},{"name":"public_proposals_0c_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 1)\n}\n\n// Error:\n// voting period deadline must be between 2 and 10 days\n"},{"name":"public_proposals_0d_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"invalid\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// DAO not found\n"},{"name":"public_proposals_0e_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, \"\", daoPath, 0)\n}\n\n// Error:\n// proposal description is required\n"},{"name":"render.gno","body":"package gnome\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/p/gnome/alerts\"\n\tgnome \"gno.land/p/gnome/dao\"\n\trouter \"gno.land/p/gnome/router/v1\"\n)\n\nconst (\n\tdateFmt = \"2006-01-02 15:04 MST\"\n\tproposalTakeoverMsg = \"For the proposal outcome to change it has to be taken over by a parent DAO by voting on it\"\n)\n\nconst (\n\tcustomStyle = `\n\u003cstyle\u003e\n.custom ul { padding-left: 20px; }\n.custom li { list-style-type: disc; }\n.custom li.current { font-weight: 900; }\n.custom li \u003e p { margin: 0px; }\n\u003c/style\u003e\n`\n\tpaginatorStyle = `\u003cstyle\u003e\n.paginator { text-align: center; }\n.paginator a { text-decoration: none; }\n.paginator a:hover { text-decoration: underline; }\n.paginator .left { padding-right: 4px; }\n.paginator .right { padding-left: 4px; }\n\u003c/style\u003e`\n)\n\nfunc renderAlerts() string {\n\tif gnomeDAO.IsLocked() {\n\t\tmsg := \"Realm is locked\"\n\t\tif reason := gnomeDAO.LockReason(); reason != \"\" {\n\t\t\tmsg += \"\u003c/br\u003e\" + reason\n\t\t}\n\n\t\treturn alerts.NewError(msg)\n\t}\n\n\tif IsProposalsAdvanceNeeded() {\n\t\treturn alerts.NewWarning(\n\t\t\tnewGnoStudioConnectLink(\"AdvanceProposals\", \"Proposals advance needed\"),\n\t\t)\n\t}\n\treturn \"\"\n}\n\nfunc renderDAO(res router.ResponseWriter, req router.Request) {\n\tvar (\n\t\tdao *gnome.DAO\n\t\tdaoPath = req.Route\n\t)\n\n\tif daoPath == \"\" {\n\t\tdao = gnomeDAO\n\t\tdaoPath = nameCouncilDAO\n\t} else {\n\t\tvar found bool\n\t\tdao, found = daos.GetByPath(daoPath)\n\t\tif !found {\n\t\t\tres.Write(\"DAO Not Found\")\n\t\t\treturn\n\t\t}\n\n\t\t// TODO: Add lock dismissal reason when available\n\t\tif dao.IsLocked() {\n\t\t\tres.Write(alerts.NewError(\"DAO is dismissed\"))\n\t\t}\n\t}\n\n\tres.Writef(\n\t\t\"# Gno.me DAO\\n\"+\n\t\t\t\"## %s\\n\"+\n\t\t\t\"%s\\n\\n\"+\n\t\t\t\"[View Proposals of %s](%s)\\n\",\n\t\tdao.Title(),\n\t\tdao.Manifest(),\n\t\tdao.Title(),\n\t\tmakeProposalsURI(daoPath, true),\n\t)\n\n\tres.Write(\"## \" + dao.Title() + \" Members\\n\")\n\tfor _, m := range dao.Members() {\n\t\tres.Write(\"- \" + m.String() + \"\\n\")\n\t}\n\n\tres.Write(\"\\n\" + customStyle + \"\\n\\n\")\n\n\tres.Write(\"## Organization\\n\\n\")\n\tres.Write(renderOrganizationTree(daoPath))\n\tres.Write(\"\\n\")\n}\n\nfunc renderProposals(res router.ResponseWriter, req router.Request) {\n\tdaoPath := req.Route\n\tdao, found := daos.GetByPath(daoPath)\n\tif !found {\n\t\tres.Write(\"DAO Not Found\")\n\t\treturn\n\t}\n\n\tdaoProposals := proposals.GetAllByDAO(dao.Path())\n\tcount := len(daoProposals)\n\tif count == 0 {\n\t\tres.Write(\"DAO has no proposals\")\n\t\treturn\n\t}\n\n\trealmPath := makeRealmPath(req.Path)\n\tpages := gnome.NewPaginator(realmPath, gnome.WithItemCount(count))\n\n\t// TODO: Add links to toggle display of dismissed proposals (when DAO dismissal is implemented)\n\n\tres.Writef(\"# %s: Proposals\\n\", dao.Title())\n\tpages.Iterate(func(i int) bool {\n\t\tif i \u003e= count {\n\t\t\treturn true\n\t\t}\n\n\t\tp := daoProposals[i]\n\t\t_ = advanceProposal(p) // TODO: Handle errors when render notice support is implemented\n\t\tpath := makeProposalURI(p.ID(), true)\n\t\tres.Writef(\"- [#%s %s](%s) (%s)\\n\", p.ID(), p.Title(), path, p.Status())\n\t\treturn false\n\t})\n\n\tif pages.IsEnabled() {\n\t\tres.Write(renderPaginator(pages))\n\t}\n}\n\n// TODO: Improve renderProposal code\nfunc renderProposal(res router.ResponseWriter, req router.Request) {\n\trawID := req.Route\n\tid, err := strconv.Atoi(rawID)\n\tif err != nil {\n\t\tres.Write(\"Invalid proposal ID: \" + gnome.EscapeHTML(rawID))\n\t\treturn\n\t}\n\n\tproposal, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tres.Write(\"Proposal Not Found\")\n\t\treturn\n\t}\n\n\tvar (\n\t\toutcome gnome.ProposalStatus\n\t\tstatus = proposal.Status()\n\t)\n\n\t// When the status is not final advance the proposal to calculate the current outcome\n\tif !status.IsFinal() {\n\t\t_ = advanceProposal(proposal) // TODO: Implement generic alert support for render and use it to render errors\n\t\toutcome = proposal.Status()\n\n\t\t// Validate if proposal is valid for the current state\n\t\tif err := proposal.Validate(); err != nil {\n\t\t\tres.Write(alerts.NewError(err.Error()))\n\t\t}\n\n\t\t// Warn when the outcome could change if a member of a parent DAO votes on this proposal.\n\t\t// Proposal choice is only available when there is a majority, so there is voting concensus.\n\t\tif proposal.Choice() != gnome.ChoiceNone \u0026\u0026 !proposal.HasVotingDeadlinePassed() {\n\t\t\tres.Write(alerts.NewWarning(proposalTakeoverMsg))\n\t\t}\n\t} else if status == gnome.StatusDismissed {\n\t\t// Display an alert with the dismiss reason\n\t\tres.Write(alerts.NewWarning(proposal.StatusReason()))\n\t}\n\n\tdao := proposal.DAO()\n\tdaoPath := dao.Path()\n\tif proposal.HasBeenPromoted() {\n\t\turi := makeDAOURI(daoPath, true)\n\t\tlink := alerts.NewLink(uri, dao.Title())\n\t\tres.Write(alerts.NewWarning(\"Proposal has been promoted to \" + link + \" DAO\"))\n\t}\n\n\tres.Write(\"# #\" + proposal.ID().String() + \" \" + proposal.Title() + \"\\n\")\n\tres.Write(\"- Type: \" + proposal.Strategy().Name() + \"\\n\")\n\tres.Write(\"- Created: \" + proposal.CreatedAt().UTC().Format(dateFmt) + \"\\n\")\n\tres.Write(\"- Proposer: \" + proposal.Proposer().String() + \"\\n\")\n\tres.Write(\"- Status: \" + getProposalStatusMarkdown(status, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\tif !status.IsFinal() {\n\t\tif outcome == gnome.StatusReview {\n\t\t\tres.Write(\"- Review Deadline: \" + proposal.ReviewDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t} else {\n\t\t\tres.Write(\"- Voting Deadline: \" + proposal.VotingDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t\tres.Write(\"- Expected Outcome: \" + getProposalStatusMarkdown(outcome, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\t\t\t// Vote line should be render as long as voting deadline is not reached.\n\t\t\t// This is required for proposals that have to be advanced after deadline is reached.\n\t\t\tif !proposal.HasVotingDeadlinePassed() {\n\t\t\t\tres.Write(\"\\n\" + newGnoStudioConnectLink(\"Vote\", \"Vote on this proposal\") + \"\\n\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif s := proposal.Description(); s != \"\" {\n\t\tres.Write(\"## Description\\n\" + s + \"\\n\")\n\t}\n\n\tif r, ok := proposal.Strategy().(gnome.ParamsRenderer); ok {\n\t\t// TODO: Use custom HTML component to allow users to toggle params visibility\n\t\tif s := r.RenderParams(); s != \"\" {\n\t\t\tres.Write(\"## Parameters\\n\\n\" + s + \"\\n\")\n\t\t}\n\t}\n\n\tres.Write(\"## Votes\\n\")\n\trecord := proposal.VotingRecord()\n\tif record.VoteCount() == 0 {\n\t\tres.Write(\"The proposal has no votes\\n\")\n\t} else {\n\t\t// TODO: Render percentages for each voting choice and abstentions?\n\t\trecord.Iterate(func(c gnome.VoteChoice, count uint) bool {\n\t\t\tres.Writef(\"- %s: %d\\n\", string(c), count)\n\t\t\treturn false\n\t\t})\n\n\t\tres.Write(\"## Participation\\n\")\n\t\trenderProposalParticipation(res, record.Votes())\n\t}\n\n\t// If proposal has been promoted to a parent DAO render participation in child DAOs\n\tif proposal.HasBeenPromoted() {\n\t\tres.Write(\"## Sub DAOs Participation\\n\")\n\t\tdaos := proposal.Promotions()\n\t\trecords := proposal.VotingRecords()\n\t\tfor i := len(records) - 2; i \u003e= 0; i-- { // reverse iteration excluding record for current DAO\n\t\t\tr := records[i]\n\t\t\tdao := daos[i]\n\t\t\tres.Write(\"### [\" + dao.Title() + \"](\" + makeDAOURI(daoPath, true) + \"]\\n\")\n\t\t\trenderProposalParticipation(res, r.Votes())\n\t\t}\n\t}\n}\n\nfunc renderParams(res router.ResponseWriter, req router.Request) {\n\tres.Write(\"# Gno.me DAO: Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**General**\\n\")\n\tres.Write(\"- Review Deadline: \" + gnome.HumanizeDuration(parameters.ReviewDeadline) + \"\\n\")\n\n\tres.Write(\"\\n**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderProposalParticipation(res router.ResponseWriter, votes []gnome.Vote) {\n\tfor _, v := range votes {\n\t\tchoice := string(v.Choice)\n\t\tif v.Reason != \"\" {\n\t\t\t// TODO: Long reasons have to break lines to fit making web UI look bad\n\t\t\tchoice += ` \"` + gnome.EscapeHTML(v.Reason) + `\"`\n\t\t}\n\n\t\tres.Writef(\"- %s: voted %s\\n\", v.Address.String(), choice)\n\t}\n}\n\n// TODO: Use the UI package for HTML elements because rendered Markdown styles break the tree\nfunc renderOrganizationTree(currentPath string) string {\n\tvar item string\n\tif gnomeDAO.Name() == currentPath {\n\t\titem = `\u003cli class=\"current\"\u003e` + gnomeDAO.Title() + `\u003c/li\u003e`\n\t} else {\n\t\turi := makeDAOURI(gnomeDAO.Path(), true)\n\t\titem = `\u003cli\u003e` + alerts.NewLink(uri, gnomeDAO.Title()) + `\u003c/li\u003e`\n\t}\n\treturn `\u003cdiv class=\"custom\"\u003e\u003cul\u003e` + item + renderSubTree(gnomeDAO, currentPath) + `\u003c/ul\u003e\u003c/div\u003e`\n}\n\nfunc renderSubTree(parentDAO *gnome.DAO, currentPath string) string {\n\tvar (\n\t\tbuf strings.Builder\n\t\titem string\n\t)\n\n\tfor _, dao := range parentDAO.SubDAOs() {\n\t\tif dao.IsLocked() {\n\t\t\t// Skip dismissed DAOs\n\t\t\t// TODO: Render filter option to toggle dismissed DAOs visibility\n\t\t\tcontinue\n\t\t}\n\n\t\tif dao.Path() == currentPath {\n\t\t\titem = `\u003cli class=\"current\"\u003e` + dao.Title() + `\u003c/li\u003e`\n\t\t} else {\n\t\t\turi := makeDAOURI(dao.Path(), true)\n\t\t\titem = `\u003cli\u003e` + alerts.NewLink(uri, dao.Title()) + `\u003c/li\u003e`\n\t\t}\n\n\t\tbuf.WriteString(item)\n\n\t\tif len(dao.SubDAOs()) \u003e 0 {\n\t\t\tbuf.WriteString(renderSubTree(dao, currentPath))\n\t\t}\n\t}\n\treturn `\u003cul\u003e` + buf.String() + `\u003c/ul\u003e`\n}\n\nfunc renderPaginator(p gnome.Paginator) string {\n\tvar out string\n\tif s := p.PrevPageURI(); s != \"\" {\n\t\tout = ufmt.Sprintf(`\u003ca href=\"%s\" class=\"left\"\u003e\u0026lt;-\u003c/a\u003e`, s)\n\t} else {\n\t\tout += `\u003cspan class=\"left\"\u003e--\u003c/span\u003e`\n\t}\n\n\t// TODO: Add display links to other page numbers?\n\tout += ufmt.Sprintf(\"page %d\", p.Page())\n\n\tif s := p.NextPageURI(); s != \"\" {\n\t\tout += ufmt.Sprintf(`\u003ca href=\"%s\" class=\"right\"\u003e-\u0026gt;\u003c/a\u003e`, s)\n\t} else {\n\t\tout += `\u003cspan class=\"right\"\u003e--\u003c/span\u003e`\n\t}\n\n\treturn \"\\n\" + paginatorStyle + `\u003cp class=\"paginator\"\u003e` + out + `\u003c/p\u003e`\n}\n\nfunc advanceProposal(p *gnome.Proposal) error {\n\tstatus := p.Status()\n\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\tif err := p.Activate(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tstatus = p.Status()\n\t}\n\n\tif status == gnome.StatusActive {\n\t\t// Tally active proposals to always have an up to date state with the current proposal outcome\n\t\tif err := p.Tally(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc getProposalStatusMarkdown(s gnome.ProposalStatus, c gnome.VoteChoice, reason string) string {\n\tswitch s {\n\tcase gnome.StatusPassed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, string(c))\n\tcase gnome.StatusRejected:\n\t\t// Rejected proposal might have a reason\n\t\tif reason == \"\" {\n\t\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t\t} else {\n\t\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\t\t}\n\tcase gnome.StatusDismissed, gnome.StatusFailed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\tdefault:\n\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t}\n}\n\nfunc newGnoStudioConnectLink(functionName, label string) string {\n\thref := makeGnoStudioConnectURL(functionName)\n\treturn alerts.NewLink(href, label)\n}\n"},{"name":"strategy_budget.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc newBudgetStrategy(council *gnome.DAO, budget string) budgetStrategy {\n\tif council == nil {\n\t\tpanic(\"council DAO is requried\")\n\t}\n\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"budget strategy expects DAO to be a super council\")\n\t}\n\n\tbudget = strings.TrimSpace(budget)\n\tif budget == \"\" {\n\t\tpanic(\"budget is required\")\n\t}\n\n\t// The council DAO must have at least one sub DAO which should the main DAO.\n\t// The first sub DAO is some times used to check if a vote is valid.\n\tif len(council.SubDAOs()) == 0 {\n\t\tpanic(\"budget strategy expects council DAO to have at least one sub DAO\")\n\t}\n\n\treturn budgetStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\tbudget: budget, // TODO: Validate/split budget format? (ex. AMOUNTSYMBOL: 10USD)\n\t}\n}\n\ntype budgetStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\tbudget string\n}\n\n// Name returns the name of the strategy.\nfunc (budgetStrategy) Name() string {\n\treturn StrategyNameBudget\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (budgetStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (budgetStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameBudget)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s budgetStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s budgetStrategy) CheckVote(addr std.Address, _ gnome.VoteChoice, _ string) error {\n\t// Check that voter address belongs to a council DAO member\n\tif s.council.HasMember(addr) {\n\t\treturn nil\n\t}\n\n\t// Make sure the main DAO was not dismissed and check that voter address belongs to a main DAO member\n\t// TODO: Check DAO status instead when DAO dismissal is implemented\n\tif sub := s.council.SubDAOs(); len(sub) \u003e 0 {\n\t\tmainDAO := sub[0]\n\t\tif !mainDAO.HasMember(addr) {\n\t\t\treturn errors.New(\"only members of the council DAO or main DAO can vote on budget proposals\")\n\t\t}\n\t} else {\n\t\treturn errors.New(\"main DAO not found\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (budgetStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s budgetStrategy) RenderParams() string {\n\treturn \"Budget: \" + gnome.EscapeHTML(s.budget)\n}\n"},{"name":"strategy_budget_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestBudgetStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\",\n\t\t\t\tgnome.AssignAsSuperCouncil(),\n\t\t\t\tgnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"main\", \"Main\"),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"nil council\",\n\t\t\terr: \"council DAO is requried\",\n\t\t},\n\t\t{\n\t\t\tname: \"no super council\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\"),\n\t\t\terr: \"budget strategy expects DAO to be a super council\",\n\t\t},\n\t\t{\n\t\t\tname: \"council without main DAO\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil()),\n\t\t\terr: \"budget strategy expects council DAO to have at least one sub DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameBudget\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s budgetStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newBudgetStrategy(tc.council, \"1USD\")\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyCheckVote(t *testing.T) {\n\tcouncilMember := newTestMember(t, \"council\")\n\tmainMember := newTestMember(t, \"main\")\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(councilMember),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"main\", \"Main\", gnome.WithMembers(mainMember)),\n\t\t),\n\t)\n\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"council DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: councilMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"main DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: mainMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\taddress: testutils.TestAddress(\"foo\"),\n\t\t\tcouncil: council,\n\t\t\terr: \"only members of the council DAO or main DAO can vote on budget proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newBudgetStrategy(tc.council, \"1USD\")\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(tc.address, tc.choice, \"\")\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyTally(t *testing.T) {\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(\n\t\t\tnewTestMember(t, \"member1\"),\n\t\t\tnewTestMember(t, \"member2\"),\n\t\t\tnewTestMember(t, \"member3\"),\n\t\t\tnewTestMember(t, \"member4\"),\n\t\t),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"main\", \"Main\"),\n\t\t),\n\t)\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newBudgetStrategy(council, \"1USD\")\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(council, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc handlePanic(t *testing.T, fn func()) (reason error) {\n\tt.Helper()\n\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif err, _ := r.(error); err != nil {\n\t\t\t\treason = err\n\t\t\t} else {\n\t\t\t\treason = errors.New(fmt.Sprint(r))\n\t\t\t}\n\t\t}\n\t}()\n\n\tfn()\n\treturn\n}\n"},{"name":"strategy_dao.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Minimum number of members per DAO.\n// This requirement is enforced because two members DAO can only use plurality to tally.\nconst minMembersCount = 3\n\nfunc newSubDAOCreationStrategy(daos daoIndex, name, title, manifest string, members []gnome.Member) subDAOCreationStrategy {\n\tif strings.TrimSpace(name) == \"\" {\n\t\tpanic(\"sub DAO name is required\")\n\t}\n\n\tif !gnome.IsSlug(name) {\n\t\tpanic(`invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"sub DAO title is required\")\n\t}\n\n\tif strings.TrimSpace(manifest) == \"\" {\n\t\tpanic(\"sub DAO manifest is required\")\n\t}\n\n\tif len(members) \u003c minMembersCount {\n\t\tpanic(\"sub DAOs require at least \" + strconv.Itoa(minMembersCount) + \" members\")\n\t}\n\n\treturn subDAOCreationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdaos: daos,\n\t\tname: name,\n\t\ttitle: title,\n\t\tmanifest: manifest,\n\t\tmembers: members,\n\t}\n}\n\ntype subDAOCreationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdaos daoIndex\n\tname, title, manifest string\n\tmembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (subDAOCreationStrategy) Name() string {\n\treturn StrategyNameSubDAOCreation\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAOCreationStrategy) Quorum() float64 {\n\treturn 1.0\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAOCreationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameSubDAOCreation)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAOCreationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAOCreationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Strategy need 100% participation to decide on the outcome.\n\t// Normally quorum should make sure all members voted before\n\t// tallying but otherwise tally should not return a valid outcome.\n\tif len(dao.Members()) != r.VoteCount() {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\t// This type of proposals can pass only when 100% of members vote YES.\n\tfor _, v := range r.Votes() {\n\t\t// If there is at least one NO vote then proposal must be rejected\n\t\tif v.Choice == gnome.ChoiceNo {\n\t\t\treturn gnome.ChoiceNo\n\t\t}\n\t}\n\t// Proposal should pass when all votes are YES\n\treturn gnome.ChoiceYes\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s subDAOCreationStrategy) Validate(p *gnome.Proposal) error {\n\tdao := p.DAO()\n\tpath := dao.Path()\n\tif dao.IsLocked() {\n\t\treturn errors.New(\"parent DAO '\" + path + \"' is locked\")\n\t}\n\n\tsubDAOPath := path + gnome.PathSeparator + s.name\n\tif s.daos.HasPathKey(subDAOPath) {\n\t\treturn errors.New(\"sub DAO path has been taken by another DAO\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAOCreationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tmembers []string\n\t\tmanifest = gnome.EscapeHTML(s.manifest)\n\t)\n\n\tfor _, addr := range s.members {\n\t\tmembers = append(members, addr.String())\n\t}\n\n\t// TODO: Use a custom HTML table and add styling (vertical alignment, padding, ...)\n\t// This would allow to remove the markdown \"hacks\" to improve the output layout\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Name: | \" + gnome.EscapeHTML(s.name) + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Members: | \u003c/br\u003e\" + strings.Join(members, \"\u003c/br\u003e\") + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\tb.WriteString(\"| Manifest:\u0026nbsp;\u0026nbsp; | \" + strings.ReplaceAll(manifest, \"\\n\", \"\u003c/br\u003e\") + \" |\\n\")\n\n\treturn b.String()\n}\n\n// Execute creates the new sub DAO.\nfunc (s subDAOCreationStrategy) Execute(dao *gnome.DAO) error {\n\tsubDAO, err := gnome.New(s.name, s.title, gnome.WithManifest(s.manifest), gnome.WithMembers(s.members...))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Add the new sub DAO to its parent\n\tdao.AddSubDAO(subDAO)\n\n\t// Index the new sub DAO\n\ts.daos.IndexByPath(subDAO)\n\n\treturn nil\n}\n\nfunc newDAOMembersModificationStrategy(newMembers, removeMembers []gnome.Member) daoMembersModificationStrategy {\n\tif len(newMembers) == 0 \u0026\u0026 len(removeMembers) == 0 {\n\t\tpanic(\"members are required\")\n\t}\n\n\treturn daoMembersModificationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tnewMembers: newMembers,\n\t\tremoveMembers: removeMembers,\n\t}\n}\n\ntype daoMembersModificationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tnewMembers, removeMembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (daoMembersModificationStrategy) Name() string {\n\treturn StrategyNameDAOMembersModification\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (daoMembersModificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (daoMembersModificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDAOMembersModification)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s daoMembersModificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (daoMembersModificationStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Tally requires at least three votes to be able to tally by 2/3s super majority\n\tif r.VoteCount() \u003c 3 {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\tif choice, ok := gnome.SelectChoiceBySuperMajority(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s daoMembersModificationStrategy) Validate(p *gnome.Proposal) error {\n\t// At least three members are required to enforce 2/3s majority on proposals\n\tdao := p.DAO()\n\tmemberCount := len(dao.Members()) + len(s.newMembers) - len(s.removeMembers)\n\tif memberCount \u003c minMembersCount {\n\t\treturn errors.New(\"DAO must always have a minimum of \" + strconv.Itoa(minMembersCount) + \" members\")\n\t}\n\n\t// TODO: Should we allow re-adding members to only change assigned roles?\n\tfor _, m := range s.newMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is already a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is not a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Execute modifies main DAO members.\nfunc (s daoMembersModificationStrategy) Execute(dao *gnome.DAO) error {\n\tfor _, m := range s.newMembers {\n\t\tdao.AddMember(m)\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tdao.RemoveMember(m.Address)\n\t}\n\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s daoMembersModificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\n\tif len(s.newMembers) \u003e 0 {\n\t\tvar members []string\n\t\tfor _, m := range s.newMembers {\n\t\t\tmembers = append(members, m.String())\n\t\t}\n\n\t\tb.WriteString(\"| New Members: | \" + strings.Join(members, \"\u003c/br\u003e\") + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.removeMembers) \u003e 0 {\n\t\tvar members []string\n\t\tfor _, m := range s.removeMembers {\n\t\t\tmembers = append(members, m.String())\n\t\t}\n\n\t\tb.WriteString(\"| Members to Remove: | \" + strings.Join(members, \"\u003c/br\u003e\") + \" |\\n\")\n\t}\n\n\treturn b.String()\n}\n\nfunc newSubDAODismissalStrategy(dao *gnome.DAO, x proposalIndex) subDAODismissalStrategy {\n\tif dao == nil {\n\t\tpanic(\"DAO is required\")\n\t}\n\n\treturn subDAODismissalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdao: dao,\n\t\tproposals: x,\n\t}\n}\n\ntype subDAODismissalStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdao *gnome.DAO\n\tproposals proposalIndex\n}\n\n// Name returns the name of the strategy.\nfunc (subDAODismissalStrategy) Name() string {\n\treturn StrategyNameSubDAODismissal\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAODismissalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAODismissalStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameSubDAODismissal)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAODismissalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAODismissalStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s subDAODismissalStrategy) Validate(p *gnome.Proposal) error {\n\tparentDAO := s.dao.Parent()\n\tif parentDAO == nil {\n\t\treturn errors.New(\"the DAO to dismiss has no parent DAO\")\n\t}\n\n\tparentName := p.DAO().Name()\n\tif parentDAO.Name() != parentName {\n\t\treturn errors.New(`the DAO to dismiss must be a first level sub DAO of \"` + parentName + `\"`)\n\t}\n\treturn nil\n}\n\n// Execute modifies main DAO members.\nfunc (s subDAODismissalStrategy) Execute(*gnome.DAO) error {\n\t// Get the list of all sub DAOs and the root DAO to dismiss\n\tdaos := append(collectSubDAOs(s.dao), s.dao)\n\t// Proposal dismissal requires a reason\n\t// TODO: Send proposal to Execute and add dismissal proposal link?\n\treason := \"Dismissed because of DAO dismissal: \" + s.dao.Path()\n\n\tfor _, dao := range daos {\n\t\t// Dismiss all proposals for the current DAO\n\t\tfor _, p := range s.proposals.GetAllByDAO(dao.Path()) {\n\t\t\tif !p.Status().IsFinal() {\n\t\t\t\tp.Dismiss(reason)\n\t\t\t}\n\t\t}\n\n\t\t// Lock the DAO to dismiss it\n\t\tdao.Lock(\"\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAODismissalStrategy) RenderParams() string {\n\treturn \"DAO: \" + s.dao.Path()\n}\n\nfunc collectSubDAOs(dao *gnome.DAO) []*gnome.DAO {\n\tdaos := dao.SubDAOs()\n\tfor _, sub := range daos[:] {\n\t\tdaos = append(daos, collectSubDAOs(sub)...)\n\t}\n\treturn daos\n}\n"},{"name":"strategy_dao_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestSubDAOCreationStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName, title, manifest, err string\n\t\tmembers []gnome.Member\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\tmembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t\tnewTestMember(t, \"address3\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"without name\",\n\t\t\terr: \"sub DAO name is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid name\",\n\t\t\tdaoName: \"invalid name\",\n\t\t\terr: `invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`,\n\t\t},\n\t\t{\n\t\t\tname: \"without title\",\n\t\t\tdaoName: \"test\",\n\t\t\terr: \"sub DAO title is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"without manifest\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\terr: \"sub DAO manifest is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than two DAO members\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\terr: \"sub DAOs require at least 3 members\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameSubDAOCreation\n\t\t\tquorum := 1.0\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAOCreationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAOCreationStrategy(daoIndex{}, tc.daoName, tc.title, tc.manifest, tc.members)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"quorum vote yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum vote no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum with different choices\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAOCreationStrategy(daoIndex{}, \"name\", \"Name\", \"Manifest\", []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t\tnewTestMember(t, \"member3\"),\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName string\n\t\tsetup func(*daoIndex) *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"existing name\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(x *daoIndex) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tx.IndexByPath(child)\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"sub DAO path has been taken by another DAO\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked parent\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t\tdao.Lock(\"\")\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"parent DAO 'parent' is locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tx := daoIndex{}\n\t\t\tdao := tc.setup(\u0026x)\n\t\t\tmembers := []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t\tnewTestMember(t, \"member3\"),\n\t\t\t}\n\t\t\ts := newSubDAOCreationStrategy(x, tc.daoName, \"Title\", \"Manifest\", members)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"name\", \"Name\")\n\tsubName := \"sub\"\n\ttitle := \"Sub DAO\"\n\tmanifest := \"Test manifest\"\n\n\ts := newSubDAOCreationStrategy(daoIndex{}, subName, title, manifest, []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t})\n\tmembers := fmt.Sprintf(\"%v\", s.members)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tsubDAOs := dao.SubDAOs()\n\tif c := len(subDAOs); c != 1 {\n\t\tt.Fatalf(\"expected one sub DAO, got: %d\", c)\n\t}\n\n\tsubDAO := subDAOs[0]\n\tif got := subDAO.Name(); got != subName {\n\t\tt.Fatalf(\"expected sub DAO name: '%s', got: '%s'\", subName, got)\n\t}\n\n\tif got := subDAO.Title(); got != title {\n\t\tt.Fatalf(\"expected sub DAO title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := subDAO.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected sub DAO manifest: '%s', got: '%d'\", manifest, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", subDAO.Members()); got != members {\n\t\tt.Fatalf(\"expected sub DAO members: '%s', got: '%s'\", members, got)\n\t}\n}\n\nfunc TestModifyDAOMembersStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"new and remove members\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"new members only\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"remove members only\",\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"no members\",\n\t\t\terr: \"members are required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameDAOMembersModification\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s daoMembersModificationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"super majority votes yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"super majority votes no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newDAOMembersModificationStrategy(\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member5\")},\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member2\")},\n\t\t\t)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyValidate(t *testing.T) {\n\tmember5 := newTestMember(t, \"member5\")\n\tmembers := []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\tsetup func() *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"less than three members\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tremoveMembers: members[1:],\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"DAO must always have a minimum of 3 members\",\n\t\t},\n\t\t{\n\t\t\tname: \"add existing member\",\n\t\t\tnewMembers: []gnome.Member{members[0]},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is already a DAO member: \" + members[0].String(),\n\t\t},\n\t\t{\n\t\t\tname: \"remove unexisting member\",\n\t\t\tremoveMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is not a DAO member: \" + member5.String(),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := tc.setup()\n\t\t\ts := newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tnewMembers := []gnome.Member{\n\t\tnewTestMember(t, \"member5\"),\n\t\tnewTestMember(t, \"member6\"),\n\t}\n\tremoveMembers := dao.Members()[1:3]\n\ts := newDAOMembersModificationStrategy(newMembers, removeMembers)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tif c := len(dao.Members()); c != 4 {\n\t\tt.Fatalf(\"expected DAO to have 4 members, got: %d\", c)\n\t}\n\n\tfor _, m := range newMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be added to the DAO\", m.Address)\n\t\t}\n\t}\n\n\tfor _, m := range removeMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be removed from the DAO\", m.Address)\n\t\t}\n\t}\n}\n\nfunc TestSubDAODismissalStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tdao *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"dao\", \"DAO\"),\n\t\t},\n\t\t{\n\t\t\tname: \"no DAO\",\n\t\t\terr: \"DAO is required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameSubDAODismissal\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAODismissalStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAODismissalStrategy(tc.dao, proposalIndex{})\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tsubDAO := gnome.MustNew(\"sub\", \"Sub DAO\")\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAODismissalStrategy(subDAO, proposalIndex{})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyValidate(t *testing.T) {\n\tparentDAO := gnome.MustNew(\"parent\", \"Parent\")\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(parent *gnome.DAO) (child *gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func(dao *gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao.AddSubDAO(child)\n\t\t\t\treturn child\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dismiss non child DAO\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"foo\", \"Foo\", gnome.WithSubDAO(child))\n\t\t\t\treturn child\n\t\t\t},\n\t\t\terr: `the DAO to dismiss must be a first level sub DAO of \"` + parentDAO.Name() + `\"`,\n\t\t},\n\t\t{\n\t\t\tname: \"parent DAO not found\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"child\", \"Child\")\n\t\t\t},\n\t\t\terr: \"the DAO to dismiss has no parent DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tchildDAO := tc.setup(parentDAO)\n\t\t\ts := newSubDAODismissalStrategy(childDAO, proposalIndex{})\n\t\t\tp, _ := gnome.NewProposal(1, s, testutils.TestAddress(\"member\"), parentDAO, \"Dismiss child DAO\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyExecute(t *testing.T) {\n\t// Arrange\n\tvar (\n\t\tstrategy testStrategy\n\t\tproposals proposalIndex\n\t)\n\n\tcaller := testutils.TestAddress(\"caller\")\n\n\tthreeDAO := gnome.MustNew(\"three\", \"Three\")\n\ttwoDAO := gnome.MustNew(\"two\", \"Two\")\n\toneDAO := gnome.MustNew(\"one\", \"One\", gnome.WithSubDAO(twoDAO), gnome.WithSubDAO(threeDAO))\n\trootDAO := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(oneDAO))\n\n\tp, _ := gnome.NewProposal(1, strategy, caller, rootDAO, \"Root\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(2, strategy, caller, oneDAO, \"One\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(3, strategy, caller, twoDAO, \"Two\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(4, strategy, caller, threeDAO, \"Thee\")\n\tproposals.Index(p)\n\n\tdismissReason := \"Dismissed because of DAO dismissal: \" + rootDAO.Name()\n\tdaos := []*gnome.DAO{rootDAO, oneDAO, twoDAO, threeDAO}\n\ts := newSubDAODismissalStrategy(rootDAO, proposals)\n\n\t// Act\n\terr := s.Execute(nil)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tfor _, dao := range daos {\n\t\tif !dao.IsLocked() {\n\t\t\tt.Fatalf(\"expected DAO '%s' to be locked\", dao.Title())\n\t\t}\n\t}\n\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tif got := p.Status(); got != gnome.StatusDismissed {\n\t\t\tt.Fatalf(\"expected proposal '%s' status to be 'dismissed', got: '%s'\", p.Title(), got.String())\n\t\t}\n\n\t\tif got := p.StatusReason(); got != dismissReason {\n\t\t\tt.Fatalf(\"expected dismiss reason '%s', got: '%s'\", dismissReason, got)\n\t\t}\n\t\treturn false\n\t})\n}\n\ntype testStrategy struct{}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice { return []gnome.VoteChoice{gnome.ChoiceYes} }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return gnome.ChoiceYes }\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"strategy_general.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// newGeneralStrategy creates a new general proposal strategy.\n// This type of proposal is not executable so it doesn't modify the DAO state when proposal passes.\nfunc newGeneralStrategy() generalStrategy {\n\treturn generalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t}\n}\n\ntype generalStrategy struct {\n\tchoices []gnome.VoteChoice\n}\n\n// Name returns the name of the strategy.\nfunc (generalStrategy) Name() string {\n\treturn StrategyNameGeneral\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (generalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (generalStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameGeneral)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s generalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s generalStrategy) CheckVote(_ std.Address, choice gnome.VoteChoice, reason string) error {\n\t// Reason is required when voting NO on standard proposals\n\tif choice == gnome.ChoiceNo \u0026\u0026 reason == \"\" {\n\t\treturn errors.New(\"reason is required when voting NO in standard proposals\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (generalStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (generalStrategy) Validate(p *gnome.Proposal) error {\n\tif strings.TrimSpace(p.Description()) == \"\" {\n\t\treturn errors.New(\"proposal description is required\")\n\t}\n\treturn nil\n}\n"},{"name":"strategy_general_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestGeneralStrategy(t *testing.T) {\n\t// Arrange\n\tname := StrategyNameGeneral\n\tquorum := 0.51\n\tvotingPeriod := time.Hour * 24 * 2\n\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\tgnome.ChoiceYes,\n\t\tgnome.ChoiceNo,\n\t})\n\n\t// Act\n\ts := newGeneralStrategy()\n\n\t// Assert\n\tif got := s.Name(); got != name {\n\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t}\n\n\tif got := s.Quorum(); got != quorum {\n\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t}\n\n\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t}\n}\n\nfunc TestGeneralStrategyCheckVote(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tchoice gnome.VoteChoice\n\t\treason, err string\n\t}{\n\t\t{\n\t\t\tname: \"yes\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with reason\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with invalid reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\terr: \"reason is required when voting NO in standard proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(\"\", tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGeneralStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"test\", \"Test\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n"},{"name":"strategy_lock.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// newLockingStrategy creates a new DAO locking proposal strategy.\nfunc newLockingStrategy(council *gnome.DAO, reason string, preLockFn func() error) lockingStrategy {\n\t// Locking should only be done in the council DAO\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"DAO is not the council\")\n\t}\n\n\treturn lockingStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\treason: reason,\n\t\tpreLockFn: preLockFn,\n\t}\n}\n\ntype lockingStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\treason string\n\tpreLockFn func() error\n}\n\n// Name returns the name of the strategy.\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\tif s.council.IsLocked() {\n\t\treturn errors.New(\"council DAO is already locked\")\n\t}\n\treturn nil\n}\n\n// Execute locks the council DAO.\nfunc (s lockingStrategy) Execute(*gnome.DAO) (err error) {\n\tif s.preLockFn != nil {\n\t\tif err := s.preLockFn(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\ts.council.Lock(s.reason)\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s lockingStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Reason: | \" + gnome.EscapeHTML(s.reason) + \" |\\n\")\n\n\treturn b.String()\n}\n"},{"name":"strategy_lock_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestLockingStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, err string\n\t\tsetup func() *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dao is not council\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\")\n\t\t\t},\n\t\t\terr: \"DAO is not the council\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameLocking\n\t\t\tquorum := 0.33\n\t\t\tvotingPeriod := time.Hour * 24 * 2\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\t\t\tcouncilDAO := tc.setup()\n\n\t\t\t// Act\n\t\t\tvar s lockingStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newLockingStrategy(councilDAO, \"\", nil)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyTally(t *testing.T) {\n\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(*gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked council DAO\",\n\t\t\tsetup: func(councilDAO *gnome.DAO) {\n\t\t\t\tcouncilDAO.Lock(\"\")\n\t\t\t},\n\t\t\terr: \"council DAO is already locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\terr := s.Validate(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyExecute(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason, err string\n\t\tsetup func(*gnome.DAO)\n\t\tpreLockErr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Lock reason\",\n\t\t},\n\t\t{\n\t\t\tname: \"pre lock function error\",\n\t\t\tpreLockErr: errors.New(\"test error\"),\n\t\t\terr: \"test error\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\tvar (\n\t\t\t\tpreLockFnCalled bool\n\n\t\t\t\ts = newLockingStrategy(councilDAO, tc.reason, func() error {\n\t\t\t\t\tpreLockFnCalled = true\n\t\t\t\t\treturn tc.preLockErr\n\t\t\t\t})\n\t\t\t)\n\n\t\t\t// Act\n\t\t\terr := s.Execute(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !preLockFnCalled {\n\t\t\t\tt.Fatal(\"expected pre-lock function to be called\")\n\t\t\t}\n\n\t\t\tif !councilDAO.IsLocked() {\n\t\t\t\tt.Fatal(\"expected DAO to be locked\")\n\t\t\t}\n\n\t\t\tif got := councilDAO.LockReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected lock reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"strategy_params.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype paramsUpdateStrategy struct {\n\tvotingPeriods gnome.DurationParams\n\treviewDeadline time.Duration\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\tif s.reviewDeadline \u003e 0 {\n\t\tparameters.ReviewDeadline = s.reviewDeadline\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tif s.reviewDeadline \u003e 0 {\n\t\tb.WriteString(\"| Proposal Review Deadline: | \" + gnome.HumanizeDuration(s.reviewDeadline) + \" |\\n\")\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"| Voting Period for `\" + name + \"`: | \" + gnome.HumanizeDuration(period) + \" |\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"uri.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc makeRealmURL(renderPath string) string {\n\tvar sub string\n\tif id := std.GetChainID(); strings.HasPrefix(id, \"test\") {\n\t\t// Sub domain prefix for testnets\n\t\tsub = id + \".\"\n\t}\n\n\turl := \"https://\" + sub + std.CurrentRealm().PkgPath()\n\tif renderPath != \"\" {\n\t\turl += \":\" + renderPath\n\t}\n\treturn url\n}\n\nfunc makeRealmPath(renderPath string) string {\n\tpath := gnome.CutRealmDomain(std.CurrentRealm().PkgPath())\n\tif renderPath != \"\" {\n\t\tpath += \":\" + renderPath\n\t}\n\treturn path\n}\n\nfunc makeGnoStudioConnectURL(functionName string) string {\n\treturn ufmt.Sprintf(\n\t\t\"https://gno.studio/connect/view/%s?network=%s\u0026tab=functions#%s\",\n\t\tstd.CurrentRealm().PkgPath(),\n\t\tstd.GetChainID(),\n\t\tfunctionName,\n\t)\n}\n\nfunc makeDAOURI(daoPath string, isRelative bool) string {\n\trenderPath := \"dao/\" + daoPath\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n\nfunc makeProposalURI(proposalID gnome.ID, isRelative bool) string {\n\trenderPath := \"proposal/\" + proposalID.String()\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n\nfunc makeProposalsURI(daoPath string, isRelative bool) string {\n\trenderPath := \"proposals/\" + daoPath + \":page=1\"\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"26000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rXAuSRbGh1fBfPRu3t9JXPIrk061l/9mU10YD9PgykJnKkFEuoF3KymjHeBIe7yK7W711twGxDc9Z2HMyU5uAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"gnome","path":"gno.land/r/gnome/dao/pre2","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"gnome.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Names of the initial DAOs.\nconst (\n\tnameCouncilDAO = \"council\"\n\tnameMainDAO = \"main\"\n)\n\n// Member roles.\nconst (\n\tRoleAdmin gnome.Role = \"admin\"\n\tRoleEcoDev gnome.Role = \"eco-dev\"\n\tRoleDev gnome.Role = \"dev\"\n\tRoleRealm gnome.Role = \"realm\"\n)\n\n// The \"Gno.me\" DAO defines an initial root DAO with a single sub DAO, where the root is\n// the council DAO and the child is the main DAO. Council DAO members are hard coded and\n// can't be modified. Main DAO members can be modified anytime though a modify DAO members\n// proposals.\n//\n// The main DAO must have a minimum of three members at all time to be able to apply 2/3s\n// voting majority criteria required for some proposal types allowed for the main DAO.\n//\n// Sub DAOs can be created though sub DAO add proposals but its members can't be modified\n// once the sub DAO is created. Sub DAOs must be dismissed though a proposal and a new sub\n// DAO must be created if its members must be modified.\nvar gnomeDAO = gnome.MustNew(\n\tnameCouncilDAO,\n\t\"Council\",\n\tgnome.WithManifest(\"Gnomes are thinking\"),\n\tgnome.AssignAsSuperCouncil(),\n\tgnome.WithMembers(\n\t\tgnome.NewMember(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\", RoleDev),\n\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\", RoleDev),\n\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t),\n\tgnome.WithSubDAO(\n\t\tgnome.MustNew(\n\t\t\tnameMainDAO,\n\t\t\t\"Main\",\n\t\t\tgnome.WithManifest(\"Gnomes are building\"),\n\t\t\tgnome.WithMembers(\n\t\t\t\tgnome.NewMember(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\", RoleDev),\n\t\t\t\tgnome.NewMember(\"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt\", RoleDev),\n\t\t\t\tgnome.NewMember(\"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\", RoleEcoDev),\n\t\t\t),\n\t\t),\n\t),\n)\n\nfunc mustGetDAO(path string) *gnome.DAO {\n\tif strings.TrimSpace(path) == \"\" {\n\t\tpanic(\"DAO path is empty\")\n\t}\n\n\tdao, found := daos.GetByPath(path)\n\tif !found {\n\t\tpanic(\"DAO not found\")\n\t}\n\treturn dao\n}\n"},{"name":"indexes.gno","body":"package gnome\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nvar (\n\tdaos daoIndex\n\tproposals proposalIndex\n\tlastProposalID gnome.ID\n)\n\nfunc init() {\n\t// Index initial council and main DAO\n\tmainDAO := gnomeDAO.SubDAOs()[0]\n\tdaos.IndexByPath(gnomeDAO)\n\tdaos.IndexByPath(mainDAO)\n}\n\nfunc genProposalID() gnome.ID {\n\tlastProposalID += 1\n\treturn lastProposalID\n}\n\n// TODO: Deprecate DAO index in favor of using DAO methods\ntype daoIndex struct {\n\tindex avl.Tree // string(DAO path) -\u003e *gnome.DAO\n}\n\n// IndexByPath indexes a DAO by its path.\nfunc (x *daoIndex) IndexByPath(dao *gnome.DAO) bool {\n\treturn x.index.Set(dao.Path(), dao)\n}\n\n// GetByPath gets a DAO by its path.\nfunc (x daoIndex) GetByPath(path string) (*gnome.DAO, bool) {\n\tif v, ok := x.index.Get(path); ok {\n\t\treturn v.(*gnome.DAO), true\n\t}\n\treturn nil, false\n}\n\n// HasPathKey checks if a key with a DAO path exists.\nfunc (x daoIndex) HasPathKey(path string) bool {\n\treturn x.index.Has(path)\n}\n\ntype proposalIndex struct {\n\tindex avl.Tree // string(binary gnome.ID) -\u003e *gnome.Proposal\n\tgroups avl.Tree // string(DAO path) -\u003e []*gnome.Proposal\n}\n\n// Index indexes a proposal by its ID and DAO.\nfunc (x *proposalIndex) Index(p *gnome.Proposal) {\n\tx.IndexByID(p)\n\tx.IndexByDAO(p)\n}\n\n// IndexByID indexes a proposal by its ID.\nfunc (x *proposalIndex) IndexByID(p *gnome.Proposal) bool {\n\treturn x.index.Set(p.ID().Key(), p)\n}\n\n// IndexByDAO indexes a proposal for a DAO.\nfunc (x *proposalIndex) IndexByDAO(p *gnome.Proposal) bool {\n\tdaoPath := p.DAO().Path()\n\tproposals := x.GetAllByDAO(daoPath)\n\tproposals = append([]*gnome.Proposal{p}, proposals...) // reverse append\n\treturn x.groups.Set(daoPath, proposals)\n}\n\n// GetByID gets a proposal by its ID.\nfunc (x proposalIndex) GetByID(id gnome.ID) (*gnome.Proposal, bool) {\n\tif v, exists := x.index.Get(id.Key()); exists {\n\t\treturn v.(*gnome.Proposal), true\n\t}\n\treturn nil, false\n}\n\n// GetAllByDAO gets all proposals of a DAO.\nfunc (x proposalIndex) GetAllByDAO(daoPath string) []*gnome.Proposal {\n\tif v, exists := x.groups.Get(daoPath); exists {\n\t\treturn v.([]*gnome.Proposal)\n\t}\n\treturn nil\n}\n\n// Iterate iterates all proposals starting from the oldest one.\nfunc (x proposalIndex) Iterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*gnome.Proposal))\n\t})\n}\n\n// ReverseIterate iterates all proposals starting from the latest one.\nfunc (x proposalIndex) ReverseIterate(fn gnome.ProposalIterFn) bool {\n\treturn x.index.ReverseIterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\treturn fn(value.(*gnome.Proposal))\n\t})\n}\n"},{"name":"params.gno","body":"package gnome\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameSubDAOCreation = \"sub-dao-creation\"\n\tStrategyNameSubDAODismissal = \"sub-dao-dismissal\"\n\tStrategyNameDAOMembersModification = \"dao-members-modification\"\n\tStrategyNameBudget = \"budget\"\n\tStrategyNameGeneral = \"general\"\n\tStrategyNameLocking = \"locking\"\n\tStrategyNameParamsUpdate = \"params-update\"\n)\n\nvar parameters struct {\n\t// VotingPeriods contains the current voting period for each proposal type.\n\tVotingPeriods gnome.DurationParams\n\n\t// ReviewDeadline defines the time after which a proposal can't be withdrawed by the proposer.\n\t// Proposal can only be voted on after this deadline but not before.\n\t// This greace period gives the proposer the chance to withdraw a proposal if there is a mistake.\n\tReviewDeadline time.Duration\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameSubDAOCreation, time.Minute*10)\n\tparameters.VotingPeriods.Set(StrategyNameSubDAODismissal, Day*7)\n\tparameters.VotingPeriods.Set(StrategyNameDAOMembersModification, time.Minute*30)\n\tparameters.VotingPeriods.Set(StrategyNameBudget, Day*7)\n\tparameters.VotingPeriods.Set(StrategyNameGeneral, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*2)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n\n\t// Initial review deadline\n\tparameters.ReviewDeadline = time.Second\n}\n"},{"name":"public.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n\trouter \"gno.land/p/gnome/router/v1\"\n)\n\n// Render returns a Markdown string with DAO or proposal details.\n// By default it renders the Council DAO details view.\n//\n// Paths:\n// - `dao/DAO_PATH` =\u003e Renders DAO or sub DAO details\n// - `proposal/PROPOSAL_ID` =\u003e Renders details for a proposal\n// - `proposals/DAO_PATH` =\u003e Renders the list of proposals for a DAO\nfunc Render(path string) string {\n\tr := router.New()\n\n\tr.HandleFunc(\"\", renderDAO)\n\tr.HandleFunc(\"dao\", renderDAO)\n\tr.HandleFunc(\"proposal\", renderProposal)\n\tr.HandleFunc(\"proposals\", renderProposals)\n\tr.HandleFunc(\"params\", renderParams)\n\n\t// Render global alerts before proposal states are updated within the handlers\n\treturn renderAlerts() + r.Render(path)\n}\n\n// GetDAO returns an invariant reference to a DAO.\n// Council DAO is returned when path is empty.\nfunc GetDAO(path string) (_ gnome.InvarDAO, found bool) {\n\tif path == \"\" {\n\t\tpath = nameCouncilDAO\n\t}\n\n\tif dao, found := daos.GetByPath(path); found {\n\t\treturn gnome.NewInvarDAO(dao), true\n\t}\n\treturn gnome.InvarDAO{}, false\n}\n\n// IterateProposals iterates DAO proposals by ascending IDs.\nfunc IterateProposals(fn func(gnome.InvarProposal) bool) {\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\treturn fn(gnome.NewInvarProposal(p))\n\t})\n}\n\n// WithdrawProposal withdraws a proposal.\n// Proposals can only be withdrawed by the account that creates it when the state is \"review\".\n// They can't be withdrawed once the review deadline of one hour after creation is met.\nfunc WithdrawProposal(proposalID uint64) string {\n\tassertDAOIsNotLocked()\n\n\tp := mustGetProposal(proposalID)\n\tassertCallerCanWithdraw(p)\n\n\tif err := p.Withdraw(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tAdvanceProposals()\n\n\treturn \"Proposal withdrawed\"\n}\n\n// Vote submits a vote for a proposal.\n//\n// Parameters:\n// - proposalID: ID of the proposal to vote (required)\n// - vote: Voting choice, true=Yes, false=No (required)\n// - reason: Text with the reason for the vote\n// - daoPath: Path of the DAO where the voting account belongs to\n//\n// Reason is in general optional but might be required for some proposals when voting No.\n//\n// DAO name is optional and by default is the one that the proposal belongs to.\n// Only parents of the proposal's DAO are allowed as `daoPath` values.\n// Child votes are not tallied when a member of a parent DAO votes on a child's proposal.\nfunc Vote(proposalID uint64, vote bool, reason, daoPath string) string {\n\tassertDAOIsNotLocked()\n\n\t// Make sure proposal states are up to date before submitting the vote\n\tAdvanceProposals()\n\n\t// Get proposal and check that current status accepts votes\n\tp := mustGetProposal(proposalID)\n\tif s := p.Status(); s.IsFinal() {\n\t\tpanic(\"proposal status doesn't allow new vote submissions: \" + s.String())\n\t}\n\n\t// When a DAO name is availalable check that it matches one of the proposal's DAO parents\n\t// and if so promote the proposal to a parent DAO. Promoting a proposal invalidates the votes\n\t// submitted by current DAO's members and moves voting responsibility to the parent DAO members.\n\tdaoPath = strings.TrimSpace(daoPath)\n\tif daoPath != \"\" \u0026\u0026 p.DAO().Path() != daoPath {\n\t\t// Check that the path belongs to a parent DAO.\n\t\t// Path separator is added to the prefix to make sure that similar prefixes don't match.\n\t\tif !strings.HasPrefix(p.DAO().Path(), daoPath+gnome.PathSeparator) {\n\t\t\tpanic(`path \"` + daoPath + `\" is not a parent of the proposal's DAO path`)\n\t\t}\n\n\t\t// Promote the active proposal's DAO to a parent DAO\n\t\tparentDAO := mustGetDAO(daoPath)\n\t\tif err := p.Promote(parentDAO); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// Reindex the proposal so its available under the parent DAO proposals. Child DAO will also\n\t\t// keep the promoted proposal indexed so it can be listed within the child DAO's proposals.\n\t\tproposals.Index(p)\n\t}\n\n\t// When proposal has \"review\" status check if deadline is met and if so activate it\n\tif p.Status() == gnome.StatusReview {\n\t\tif !p.HasReviewDeadlinePassed() {\n\t\t\tpanic(\"votes are not allowed until \" + p.ReviewDeadline().UTC().Format(\"2006-01-02 15:04 MST\"))\n\t\t}\n\n\t\tif err := p.Activate(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tvar choice gnome.VoteChoice\n\tif vote {\n\t\tchoice = gnome.ChoiceYes\n\t} else {\n\t\tchoice = gnome.ChoiceNo\n\t}\n\n\t// Submit vote\n\tcaller := std.GetOrigCaller() // TODO: Check that caller is member of the DAO\n\terr := p.Vote(caller, gnome.VoteChoice(choice), reason)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn \"Vote submitted for proposal \" + makeProposalURI(gnome.ID(proposalID), false)\n}\n\n// AdvanceProposals iterates review and active proposals and tallies proposals that met their deadlines.\n// Proposals in review status are activated to allow voting.\n// Active proposals are tallied which means the number of votes is counted and status changed accordingly.\n// Active executable proposals are executed when the proposal status changes to \"passed\".\nfunc AdvanceProposals() string {\n\tassertDAOIsNotLocked()\n\n\tadvanceProposals()\n\n\treturn \"Proposals advanced for realm \" + makeRealmURL(\"\")\n}\n\n// IsProposalsAdvanceNeeded checks if a call to `AdvanceProposals()` is required to update proposals.\nfunc IsProposalsAdvanceNeeded() bool {\n\tif gnomeDAO.IsLocked() {\n\t\treturn false\n\t}\n\n\treturn proposals.ReverseIterate(func(p *gnome.Proposal) bool {\n\t\tswitch p.Status() {\n\t\tcase gnome.StatusReview:\n\t\t\tif p.HasReviewDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase gnome.StatusActive:\n\t\t\tif p.HasVotingDeadlinePassed() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc advanceProposals() {\n\t// TODO: Use unix timestamp as part of proposal IDs to avoid iterating older tallied proposals\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tstatus := p.Status()\n\t\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\t\tp.Activate()\n\t\t\tstatus = p.Status()\n\t\t}\n\n\t\tif p.Status() == gnome.StatusActive \u0026\u0026 p.HasVotingDeadlinePassed() {\n\t\t\tp.Tally()\n\n\t\t\t// Change proposal status to failed when execution fails\n\t\t\tif err := p.Execute(); gnome.IsExecutionError(err) {\n\t\t\t\tp.Fail(\"failed due to conflicts: \" + err.Error())\n\t\t\t}\n\t\t}\n\t\treturn false\n\t})\n}\n\nfunc mustGetProposal(id uint64) *gnome.Proposal {\n\tp, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tpanic(\"proposal not found\")\n\t}\n\treturn p\n}\n\nfunc assertCallerCanWithdraw(p *gnome.Proposal) {\n\tif p.Proposer() != std.GetOrigCaller() {\n\t\tpanic(\"proposals can only be withdrawed by the proposer\")\n\t}\n\n\tif p.Status() != gnome.StatusReview {\n\t\tpanic(`proposals can only be withdrawed when status is \"review\"`)\n\t} else if p.HasReviewDeadlinePassed() {\n\t\tpanic(\"withdrawal not allowed, withdrawal deadline expired\")\n\t}\n}\n"},{"name":"public_proposals.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// SubmitCustomProposal submits a new proposal of a custom type.\n//\n// This function allows other realms to submit custom proposal types.\n//\n// Parameters:\n// - title: A title for the proposal (required)\n// - description: A description of the proposal\n// - strategy: A strategy for the new proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\nfunc SubmitCustomProposal(title, description string, s gnome.ProposalStrategy, daoPath string) gnome.ID {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tid := genProposalID()\n\tp, err := gnome.NewProposal(\n\t\tid,\n\t\ts,\n\t\tcaller,\n\t\tdao,\n\t\ttitle,\n\t\tgnome.WithDescription(description),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\treturn p.ID()\n}\n\n// SubmitGeneralProposal submits a new general proposal.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - votingDeadline: Number of days until the voting period ends\n//\n// The name of the DAO where the proposal is created is a slug, where \"council\"\n// is the Council DAO and \"main\" is the name of the Main DAO.\n//\n// The voting period deadline for the proposal must be between 2 and 10 days.\n// It defaults to 2 days when `votingDeadline` value is 0.\nfunc SubmitGeneralProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tvotingDeadline uint,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\topts := []gnome.ProposalOption{\n\t\tgnome.WithDescription(proposalDescription),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t}\n\n\tif votingDeadline != 0 {\n\t\tif votingDeadline \u003c 2 || votingDeadline \u003e 10 {\n\t\t\tpanic(\"voting period deadline must be between 2 and 10 days\")\n\t\t}\n\n\t\tdeadline := time.Now().Add(time.Hour * 24 * time.Duration(votingDeadline))\n\t\topts = append(opts, gnome.WithVotingDeadline(deadline))\n\t}\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tp, err := gnome.NewProposal(genProposalID(), newGeneralStrategy(), caller, dao, proposalTitle, opts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAOCreationProposal submits a new proposal to add a sub DAO to an existing DAO.\n//\n// Proposal requires the participation of all DAO members, otherwise the outcome will be low participation.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - parentDAOPath: Path of the sub DAO's parent (required)\n// - subDAOName: Slug name of the new sub DAO (required)\n// - subDAOTitle: A title for the new sub DAO (required)\n// - subDAOManifest: Sub DAO manifest (required)\n// - subDAOMembers: List of sub DAO member addresses (required)\n//\n// Sub DAO name must be a slug allows letters from \"a\" to \"z\", numbers, \"-\" and \"_\" as valid characters.\n//\n// The list of sub DAO members must be a newline separated list of addresses, with a minimum of 2 addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitSubDAOCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tparentDAOPath,\n\tsubDAOName,\n\tsubDAOTitle,\n\tsubDAOManifest,\n\tsubDAOMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(parentDAOPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tif daos.HasPathKey(subDAOPath) {\n\t\tpanic(\"sub DAO name is already taken by another DAO\")\n\t}\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tmembers := gnome.MustParseStringToMembers(subDAOMembers)\n\tstrategy := newSubDAOCreationStrategy(daos, subDAOName, subDAOTitle, subDAOManifest, members)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitSubDAODismissalProposal submits a new proposal to dismiss a sub DAO.\n//\n// Dismissing a sub DAO also dismisses all active proposals and any sub DAO below the dismissed DAO tree.\n// Only the direct parent of a DAO can create a proposal to dismiss any of its fist level sub DAOs.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - subDAOName: Slug name of the sub DAO to dismiss (required)\nfunc SubmitSubDAODismissalProposal(proposalTitle, daoPath, subDAOName string) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tsubDAOPath := dao.Path() + gnome.PathSeparator + subDAOName\n\tsubDAO := mustGetDAO(subDAOPath)\n\tassertDAOIsNotDismissed(subDAO)\n\n\tcaller := std.GetOrigCaller()\n\tstrategy := newSubDAODismissalStrategy(subDAO, proposals)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOMembersModificationProposal submits a new proposal to modify the members of a DAO.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by super majority with a 2/3s threshold. Abstentions are not considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - newMembers: List of member addresses to add to Main DAO\n// - removeMembers: List of member addresses to remove from the Main DAO\n//\n// At leat one member address is required either to be added or removed from the DAO.\n// Members can be added and removed within the same proposal.\n//\n// Each list of members must be newline separated list of addresses.\n// Each line must contain an address and optionally be followed by one or more DAO member roles:\n// ```\n// g187982000zsc493znqt828s90cmp6hcp2erhu6m foo\n// g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 bar foo\n// ```\nfunc SubmitDAOMembersModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tnewMembers,\n\tremoveMembers string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newDAOMembersModificationStrategy(\n\t\tgnome.MustParseStringToMembers(newMembers),\n\t\tgnome.MustParseStringToMembers(removeMembers),\n\t)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitBudgetProposal submits a new budget proposal.\n//\n// Only membes of the Council or Main DAO can vote on this type of proposals.\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - budget: The proposal budget (required)\n//\n// Budget doesn't enforce any specific format right now but an example format that\n// could be used is amount plus symbol, for example 100UGNOT, 100000USD, etc.\nfunc SubmitBudgetProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\tbudget string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := newBudgetStrategy(gnomeDAO, budget)\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitDAOLockingProposal submits a new proposal to lock the DAO.\n//\n// Locking the DAO \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 33% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by the Council or Main DAO members.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - reason: Text with the DAO locking reason\n//\n// The optional `reason` argument can contain HTML.\nfunc SubmitDAOLockingProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath,\n\treason string,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tcaller := std.GetOrigCaller()\n\tassertIsCouncilOrMainDAOMember(caller)\n\n\tdao := mustGetDAO(daoPath)\n\tassertIsCouncilOrMainDAO(dao)\n\n\treason = strings.TrimSpace(reason)\n\tstrategy := newLockingStrategy(gnomeDAO, reason, func() error {\n\t\t// Advance all proposals before locking the DAO\n\t\tadvanceProposals()\n\t\treturn nil\n\t})\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - daoPath: Path of the DAO where the proposal should be created (required)\n// - proposalReviewDeadline: Number of seconds where proposals can be withdrawed\n// - votingPeriodSubDAOCreation: Voting period for sub DAO creation proposals\n// - votingPeriodSubDAODismissal: Voting period for sub DAO dismissal proposals\n// - votingPeriodDAOMembersModification: Voting period for DAO members modification proposals\n// - votingPeriodBudget: Voting period for budget proposals\n// - votingPeriodGeneral: Voting period for general proposals\n// - votingPeriodLocking: Voting period for locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription,\n\tdaoPath string,\n\tproposalReviewDeadline,\n\tvotingPeriodSubDAOCreation,\n\tvotingPeriodSubDAODismissal,\n\tvotingPeriodDAOMembersModification,\n\tvotingPeriodBudget,\n\tvotingPeriodGeneral,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tassertDAOIsNotLocked()\n\n\tdao := mustGetDAO(daoPath)\n\tassertDAOIsNotDismissed(dao)\n\n\tcaller := std.GetOrigCaller()\n\tassertCanCreateProposal(caller, dao)\n\n\tstrategy := paramsUpdateStrategy{\n\t\treviewDeadline: time.Second * time.Duration(proposalReviewDeadline),\n\t}\n\n\tif votingPeriodSubDAOCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodSubDAOCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodSubDAODismissal \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodSubDAODismissal) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodDAOMembersModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDAOMembersModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodBudget \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodBudget) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameBudget, period)\n\t}\n\n\tif votingPeriodGeneral \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodGeneral) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameGeneral, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 \u0026\u0026 strategy.reviewDeadline == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tp, err := gnome.NewProposal(\n\t\tgenProposalID(),\n\t\tstrategy,\n\t\tcaller,\n\t\tdao,\n\t\tproposalTitle,\n\t\tgnome.WithDescription(proposalDescription),\n\t\t// gnome.WithReviewDeadline(time.Now().Add(parameters.ReviewDeadline)), // TODO: Enable for mainnet\n\t)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := p.Validate(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tproposals.Index(p)\n\tAdvanceProposals()\n\n\treturn uint64(p.ID())\n}\n\nfunc assertCanCreateProposal(proposer std.Address, dao *gnome.DAO) {\n\tif !dao.HasMember(proposer) {\n\t\tpanic(\"you must be a DAO member to create a proposal\")\n\t}\n}\n\nfunc assertDAOIsNotDismissed(dao *gnome.DAO) {\n\t// DAOs are locked when they are dismissed\n\tif dao.IsLocked() {\n\t\tpanic(\"DAO is dismissed: \" + dao.Path())\n\t}\n}\n\nfunc assertDAOIsNotLocked() {\n\tif gnomeDAO.IsLocked() {\n\t\tpanic(\"DAO is locked\")\n\t}\n}\n\nfunc assertIsCouncilOrMainDAO(dao *gnome.DAO) {\n\tif !dao.IsSuperCouncil() {\n\t\t// Main DAO parent must be the super council\n\t\tparentDAO := dao.Parent()\n\t\tif !parentDAO.IsSuperCouncil() {\n\t\t\tpanic(\"DAO is not the council or main DAO\")\n\t\t}\n\t}\n}\n\nfunc assertIsCouncilOrMainDAOMember(addr std.Address) {\n\tif !gnomeDAO.HasMember(addr) {\n\t\tmainDAO := gnomeDAO.SubDAOs()[0]\n\t\tif !mainDAO.HasMember(addr) {\n\t\t\tpanic(\"account is not a council or main DAO member\")\n\t\t}\n\t}\n}\n"},{"name":"public_proposals_0a_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre2\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tpID := gnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n\tprintln(pID)\n\n\tmarkdown := gnome.Render(\"proposal/1\")\n\tprintln(markdown)\n}\n\n// Output:\n// 1\n// # #1 Test proposal\n// - Type: general\n// - Created: 2009-02-13 23:31 UTC\n// - Proposer: g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\n// - Status: **review**\n// - Review Deadline: 2009-02-14 00:31 UTC\n// ## Description\n// A test proposal\n// ## Votes\n// The proposal has no votes\n"},{"name":"public_proposals_0b_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre2\"\n)\n\nconst nonMember = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(nonMember)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// you must be a DAO member to create a proposal\n"},{"name":"public_proposals_0c_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre2\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 1)\n}\n\n// Error:\n// voting period deadline must be between 2 and 10 days\n"},{"name":"public_proposals_0d_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre2\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdesc := \"A test proposal\"\n\tdaoPath := \"invalid\"\n\tgnome.SubmitGeneralProposal(title, desc, daoPath, 0)\n}\n\n// Error:\n// DAO not found\n"},{"name":"public_proposals_0e_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\tgnome \"gno.land/r/gnome/dao/pre2\"\n)\n\nconst member = std.Address(\"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun\")\n\nfunc init() {\n\tstd.TestSetOrigCaller(member)\n}\n\nfunc main() {\n\ttitle := \"Test proposal\"\n\tdaoPath := \"council/main\"\n\tgnome.SubmitGeneralProposal(title, \"\", daoPath, 0)\n}\n\n// Error:\n// proposal description is required\n"},{"name":"render.gno","body":"package gnome\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/p/gnome/alerts\"\n\tgnome \"gno.land/p/gnome/dao\"\n\trouter \"gno.land/p/gnome/router/v1\"\n)\n\nconst (\n\tdateFmt = \"2006-01-02 15:04 MST\"\n\tproposalTakeoverMsg = \"For the proposal outcome to change it has to be taken over by a parent DAO by voting on it\"\n)\n\nconst (\n\tcustomStyle = `\n\u003cstyle\u003e\n.custom ul { padding-left: 20px; }\n.custom li { list-style-type: disc; }\n.custom li.current { font-weight: 900; }\n.custom li \u003e p { margin: 0px; }\n\u003c/style\u003e\n`\n\tpaginatorStyle = `\u003cstyle\u003e\n.paginator { text-align: center; }\n.paginator a { text-decoration: none; }\n.paginator a:hover { text-decoration: underline; }\n.paginator .left { padding-right: 4px; }\n.paginator .right { padding-left: 4px; }\n\u003c/style\u003e`\n)\n\nfunc renderAlerts() string {\n\tif gnomeDAO.IsLocked() {\n\t\tmsg := \"Realm is locked\"\n\t\tif reason := gnomeDAO.LockReason(); reason != \"\" {\n\t\t\tmsg += \"\u003c/br\u003e\" + reason\n\t\t}\n\n\t\treturn alerts.NewError(msg)\n\t}\n\n\tif IsProposalsAdvanceNeeded() {\n\t\treturn alerts.NewWarning(\n\t\t\tnewGnoStudioConnectLink(\"AdvanceProposals\", \"Proposals advance needed\"),\n\t\t)\n\t}\n\treturn \"\"\n}\n\nfunc renderDAO(res router.ResponseWriter, req router.Request) {\n\tvar (\n\t\tdao *gnome.DAO\n\t\tdaoPath = req.Route\n\t)\n\n\tif daoPath == \"\" {\n\t\tdao = gnomeDAO\n\t\tdaoPath = nameCouncilDAO\n\t} else {\n\t\tvar found bool\n\t\tdao, found = daos.GetByPath(daoPath)\n\t\tif !found {\n\t\t\tres.Write(\"DAO Not Found\")\n\t\t\treturn\n\t\t}\n\n\t\t// TODO: Add lock dismissal reason when available\n\t\tif dao.IsLocked() {\n\t\t\tres.Write(alerts.NewError(\"DAO is dismissed\"))\n\t\t}\n\t}\n\n\tres.Writef(\n\t\t\"# Gno.me DAO\\n\"+\n\t\t\t\"## %s\\n\"+\n\t\t\t\"%s\\n\\n\"+\n\t\t\t\"[View Proposals of %s](%s)\\n\",\n\t\tdao.Title(),\n\t\tdao.Manifest(),\n\t\tdao.Title(),\n\t\tmakeProposalsURI(daoPath, true),\n\t)\n\n\tres.Write(\"## \" + dao.Title() + \" Members\\n\")\n\tfor _, m := range dao.Members() {\n\t\tres.Write(\"- \" + m.String() + \"\\n\")\n\t}\n\n\tres.Write(\"\\n\" + customStyle + \"\\n\\n\")\n\n\tres.Write(\"## Organization\\n\\n\")\n\tres.Write(renderOrganizationTree(daoPath))\n\tres.Write(\"\\n\")\n}\n\nfunc renderProposals(res router.ResponseWriter, req router.Request) {\n\tdaoPath := req.Route\n\tdao, found := daos.GetByPath(daoPath)\n\tif !found {\n\t\tres.Write(\"DAO Not Found\")\n\t\treturn\n\t}\n\n\tdaoProposals := proposals.GetAllByDAO(dao.Path())\n\tcount := len(daoProposals)\n\tif count == 0 {\n\t\tres.Write(\"DAO has no proposals\")\n\t\treturn\n\t}\n\n\trealmPath := makeRealmPath(req.Path)\n\tpages := gnome.NewPaginator(realmPath, gnome.WithItemCount(count))\n\n\t// TODO: Add links to toggle display of dismissed proposals (when DAO dismissal is implemented)\n\n\tres.Writef(\"# %s: Proposals\\n\", dao.Title())\n\tpages.Iterate(func(i int) bool {\n\t\tif i \u003e= count {\n\t\t\treturn true\n\t\t}\n\n\t\tp := daoProposals[i]\n\t\t_ = advanceProposal(p) // TODO: Handle errors when render notice support is implemented\n\t\tpath := makeProposalURI(p.ID(), true)\n\t\tres.Writef(\"- [#%s %s](%s) (%s)\\n\", p.ID(), p.Title(), path, p.Status())\n\t\treturn false\n\t})\n\n\tif pages.IsEnabled() {\n\t\tres.Write(renderPaginator(pages))\n\t}\n}\n\n// TODO: Improve renderProposal code\nfunc renderProposal(res router.ResponseWriter, req router.Request) {\n\trawID := req.Route\n\tid, err := strconv.Atoi(rawID)\n\tif err != nil {\n\t\tres.Write(\"Invalid proposal ID: \" + gnome.EscapeHTML(rawID))\n\t\treturn\n\t}\n\n\tproposal, found := proposals.GetByID(gnome.ID(id))\n\tif !found {\n\t\tres.Write(\"Proposal Not Found\")\n\t\treturn\n\t}\n\n\tvar (\n\t\toutcome gnome.ProposalStatus\n\t\tstatus = proposal.Status()\n\t)\n\n\t// When the status is not final advance the proposal to calculate the current outcome\n\tif !status.IsFinal() {\n\t\t_ = advanceProposal(proposal) // TODO: Implement generic alert support for render and use it to render errors\n\t\toutcome = proposal.Status()\n\n\t\t// Validate if proposal is valid for the current state\n\t\tif err := proposal.Validate(); err != nil {\n\t\t\tres.Write(alerts.NewError(err.Error()))\n\t\t}\n\n\t\t// Warn when the outcome could change if a member of a parent DAO votes on this proposal.\n\t\t// Proposal choice is only available when there is a majority, so there is voting concensus.\n\t\tif proposal.Choice() != gnome.ChoiceNone \u0026\u0026 !proposal.HasVotingDeadlinePassed() {\n\t\t\tres.Write(alerts.NewWarning(proposalTakeoverMsg))\n\t\t}\n\t} else if status == gnome.StatusDismissed {\n\t\t// Display an alert with the dismiss reason\n\t\tres.Write(alerts.NewWarning(proposal.StatusReason()))\n\t}\n\n\tdao := proposal.DAO()\n\tdaoPath := dao.Path()\n\tif proposal.HasBeenPromoted() {\n\t\turi := makeDAOURI(daoPath, true)\n\t\tlink := alerts.NewLink(uri, dao.Title())\n\t\tres.Write(alerts.NewWarning(\"Proposal has been promoted to \" + link + \" DAO\"))\n\t}\n\n\tres.Write(\"# #\" + proposal.ID().String() + \" \" + proposal.Title() + \"\\n\")\n\tres.Write(\"- Type: \" + proposal.Strategy().Name() + \"\\n\")\n\tres.Write(\"- Created: \" + proposal.CreatedAt().UTC().Format(dateFmt) + \"\\n\")\n\tres.Write(\"- Proposer: \" + proposal.Proposer().String() + \"\\n\")\n\tres.Write(\"- Status: \" + getProposalStatusMarkdown(status, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\tif !status.IsFinal() {\n\t\tif outcome == gnome.StatusReview {\n\t\t\tres.Write(\"- Review Deadline: \" + proposal.ReviewDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t} else {\n\t\t\tres.Write(\"- Voting Deadline: \" + proposal.VotingDeadline().UTC().Format(dateFmt) + \"\\n\")\n\t\t\tres.Write(\"- Expected Outcome: \" + getProposalStatusMarkdown(outcome, proposal.Choice(), proposal.StatusReason()) + \"\\n\")\n\n\t\t\t// Vote line should be render as long as voting deadline is not reached.\n\t\t\t// This is required for proposals that have to be advanced after deadline is reached.\n\t\t\tif !proposal.HasVotingDeadlinePassed() {\n\t\t\t\tres.Write(\"\\n\" + newGnoStudioConnectLink(\"Vote\", \"Vote on this proposal\") + \"\\n\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif s := proposal.Description(); s != \"\" {\n\t\tres.Write(\"## Description\\n\" + s + \"\\n\")\n\t}\n\n\tif r, ok := proposal.Strategy().(gnome.ParamsRenderer); ok {\n\t\t// TODO: Use custom HTML component to allow users to toggle params visibility\n\t\tif s := r.RenderParams(); s != \"\" {\n\t\t\tres.Write(\"## Parameters\\n\\n\" + s + \"\\n\")\n\t\t}\n\t}\n\n\tres.Write(\"## Votes\\n\")\n\trecord := proposal.VotingRecord()\n\tif record.VoteCount() == 0 {\n\t\tres.Write(\"The proposal has no votes\\n\")\n\t} else {\n\t\t// TODO: Render percentages for each voting choice and abstentions?\n\t\trecord.Iterate(func(c gnome.VoteChoice, count uint) bool {\n\t\t\tres.Writef(\"- %s: %d\\n\", string(c), count)\n\t\t\treturn false\n\t\t})\n\n\t\tres.Write(\"## Participation\\n\")\n\t\trenderProposalParticipation(res, record.Votes())\n\t}\n\n\t// If proposal has been promoted to a parent DAO render participation in child DAOs\n\tif proposal.HasBeenPromoted() {\n\t\tres.Write(\"## Sub DAOs Participation\\n\")\n\t\tdaos := proposal.Promotions()\n\t\trecords := proposal.VotingRecords()\n\t\tfor i := len(records) - 2; i \u003e= 0; i-- { // reverse iteration excluding record for current DAO\n\t\t\tr := records[i]\n\t\t\tdao := daos[i]\n\t\t\tres.Write(\"### [\" + dao.Title() + \"](\" + makeDAOURI(daoPath, true) + \"]\\n\")\n\t\t\trenderProposalParticipation(res, r.Votes())\n\t\t}\n\t}\n}\n\nfunc renderParams(res router.ResponseWriter, req router.Request) {\n\tres.Write(\"# Gno.me DAO: Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**General**\\n\")\n\tres.Write(\"- Review Deadline: \" + gnome.HumanizeDuration(parameters.ReviewDeadline) + \"\\n\")\n\n\tres.Write(\"\\n**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderProposalParticipation(res router.ResponseWriter, votes []gnome.Vote) {\n\tfor _, v := range votes {\n\t\tchoice := string(v.Choice)\n\t\tif v.Reason != \"\" {\n\t\t\t// TODO: Long reasons have to break lines to fit making web UI look bad\n\t\t\tchoice += ` \"` + gnome.EscapeHTML(v.Reason) + `\"`\n\t\t}\n\n\t\tres.Writef(\"- %s: voted %s\\n\", v.Address.String(), choice)\n\t}\n}\n\n// TODO: Use the UI package for HTML elements because rendered Markdown styles break the tree\nfunc renderOrganizationTree(currentPath string) string {\n\tvar item string\n\tif gnomeDAO.Name() == currentPath {\n\t\titem = `\u003cli class=\"current\"\u003e` + gnomeDAO.Title() + `\u003c/li\u003e`\n\t} else {\n\t\turi := makeDAOURI(gnomeDAO.Path(), true)\n\t\titem = `\u003cli\u003e` + alerts.NewLink(uri, gnomeDAO.Title()) + `\u003c/li\u003e`\n\t}\n\treturn `\u003cdiv class=\"custom\"\u003e\u003cul\u003e` + item + renderSubTree(gnomeDAO, currentPath) + `\u003c/ul\u003e\u003c/div\u003e`\n}\n\nfunc renderSubTree(parentDAO *gnome.DAO, currentPath string) string {\n\tvar (\n\t\tbuf strings.Builder\n\t\titem string\n\t)\n\n\tfor _, dao := range parentDAO.SubDAOs() {\n\t\tif dao.IsLocked() {\n\t\t\t// Skip dismissed DAOs\n\t\t\t// TODO: Render filter option to toggle dismissed DAOs visibility\n\t\t\tcontinue\n\t\t}\n\n\t\tif dao.Path() == currentPath {\n\t\t\titem = `\u003cli class=\"current\"\u003e` + dao.Title() + `\u003c/li\u003e`\n\t\t} else {\n\t\t\turi := makeDAOURI(dao.Path(), true)\n\t\t\titem = `\u003cli\u003e` + alerts.NewLink(uri, dao.Title()) + `\u003c/li\u003e`\n\t\t}\n\n\t\tbuf.WriteString(item)\n\n\t\tif len(dao.SubDAOs()) \u003e 0 {\n\t\t\tbuf.WriteString(renderSubTree(dao, currentPath))\n\t\t}\n\t}\n\treturn `\u003cul\u003e` + buf.String() + `\u003c/ul\u003e`\n}\n\nfunc renderPaginator(p gnome.Paginator) string {\n\tvar out string\n\tif s := p.PrevPageURI(); s != \"\" {\n\t\tout = ufmt.Sprintf(`\u003ca href=\"%s\" class=\"left\"\u003e\u0026lt;-\u003c/a\u003e`, s)\n\t} else {\n\t\tout += `\u003cspan class=\"left\"\u003e--\u003c/span\u003e`\n\t}\n\n\t// TODO: Add display links to other page numbers?\n\tout += ufmt.Sprintf(\"page %d\", p.Page())\n\n\tif s := p.NextPageURI(); s != \"\" {\n\t\tout += ufmt.Sprintf(`\u003ca href=\"%s\" class=\"right\"\u003e-\u0026gt;\u003c/a\u003e`, s)\n\t} else {\n\t\tout += `\u003cspan class=\"right\"\u003e--\u003c/span\u003e`\n\t}\n\n\treturn \"\\n\" + paginatorStyle + `\u003cp class=\"paginator\"\u003e` + out + `\u003c/p\u003e`\n}\n\nfunc advanceProposal(p *gnome.Proposal) error {\n\tstatus := p.Status()\n\tif status == gnome.StatusReview \u0026\u0026 p.HasReviewDeadlinePassed() {\n\t\tif err := p.Activate(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tstatus = p.Status()\n\t}\n\n\tif status == gnome.StatusActive {\n\t\t// Tally active proposals to always have an up to date state with the current proposal outcome\n\t\tif err := p.Tally(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc getProposalStatusMarkdown(s gnome.ProposalStatus, c gnome.VoteChoice, reason string) string {\n\tswitch s {\n\tcase gnome.StatusPassed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, string(c))\n\tcase gnome.StatusRejected:\n\t\t// Rejected proposal might have a reason\n\t\tif reason == \"\" {\n\t\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t\t} else {\n\t\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\t\t}\n\tcase gnome.StatusDismissed, gnome.StatusFailed:\n\t\treturn ufmt.Sprintf(\"**%s** (%s)\", s, reason)\n\tdefault:\n\t\treturn ufmt.Sprintf(\"**%s**\", s)\n\t}\n}\n\nfunc newGnoStudioConnectLink(functionName, label string) string {\n\thref := makeGnoStudioConnectURL(functionName)\n\treturn alerts.NewLink(href, label)\n}\n"},{"name":"strategy_budget.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc newBudgetStrategy(council *gnome.DAO, budget string) budgetStrategy {\n\tif council == nil {\n\t\tpanic(\"council DAO is requried\")\n\t}\n\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"budget strategy expects DAO to be a super council\")\n\t}\n\n\tbudget = strings.TrimSpace(budget)\n\tif budget == \"\" {\n\t\tpanic(\"budget is required\")\n\t}\n\n\t// The council DAO must have at least one sub DAO which should the main DAO.\n\t// The first sub DAO is some times used to check if a vote is valid.\n\tif len(council.SubDAOs()) == 0 {\n\t\tpanic(\"budget strategy expects council DAO to have at least one sub DAO\")\n\t}\n\n\treturn budgetStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\tbudget: budget, // TODO: Validate/split budget format? (ex. AMOUNTSYMBOL: 10USD)\n\t}\n}\n\ntype budgetStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\tbudget string\n}\n\n// Name returns the name of the strategy.\nfunc (budgetStrategy) Name() string {\n\treturn StrategyNameBudget\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (budgetStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (budgetStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameBudget)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s budgetStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s budgetStrategy) CheckVote(addr std.Address, _ gnome.VoteChoice, _ string) error {\n\t// Check that voter address belongs to a council DAO member\n\tif s.council.HasMember(addr) {\n\t\treturn nil\n\t}\n\n\t// Make sure the main DAO was not dismissed and check that voter address belongs to a main DAO member\n\t// TODO: Check DAO status instead when DAO dismissal is implemented\n\tif sub := s.council.SubDAOs(); len(sub) \u003e 0 {\n\t\tmainDAO := sub[0]\n\t\tif !mainDAO.HasMember(addr) {\n\t\t\treturn errors.New(\"only members of the council DAO or main DAO can vote on budget proposals\")\n\t\t}\n\t} else {\n\t\treturn errors.New(\"main DAO not found\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (budgetStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s budgetStrategy) RenderParams() string {\n\treturn \"Budget: \" + gnome.EscapeHTML(s.budget)\n}\n"},{"name":"strategy_budget_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestBudgetStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\",\n\t\t\t\tgnome.AssignAsSuperCouncil(),\n\t\t\t\tgnome.WithSubDAO(\n\t\t\t\t\tgnome.MustNew(\"main\", \"Main\"),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: \"nil council\",\n\t\t\terr: \"council DAO is requried\",\n\t\t},\n\t\t{\n\t\t\tname: \"no super council\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\"),\n\t\t\terr: \"budget strategy expects DAO to be a super council\",\n\t\t},\n\t\t{\n\t\t\tname: \"council without main DAO\",\n\t\t\tcouncil: gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil()),\n\t\t\terr: \"budget strategy expects council DAO to have at least one sub DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameBudget\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s budgetStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newBudgetStrategy(tc.council, \"1USD\")\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyCheckVote(t *testing.T) {\n\tcouncilMember := newTestMember(t, \"council\")\n\tmainMember := newTestMember(t, \"main\")\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(councilMember),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"main\", \"Main\", gnome.WithMembers(mainMember)),\n\t\t),\n\t)\n\n\tcases := []struct {\n\t\tname string\n\t\taddress std.Address\n\t\tchoice gnome.VoteChoice\n\t\tcouncil *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"council DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: councilMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"main DAO vote\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\taddress: mainMember.Address,\n\t\t\tcouncil: council,\n\t\t},\n\t\t{\n\t\t\tname: \"non member vote\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\taddress: testutils.TestAddress(\"foo\"),\n\t\t\tcouncil: council,\n\t\t\terr: \"only members of the council DAO or main DAO can vote on budget proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newBudgetStrategy(tc.council, \"1USD\")\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(tc.address, tc.choice, \"\")\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBudgetStrategyTally(t *testing.T) {\n\tcouncil := gnome.MustNew(\n\t\t\"council\",\n\t\t\"Council\",\n\t\tgnome.AssignAsSuperCouncil(),\n\t\tgnome.WithMembers(\n\t\t\tnewTestMember(t, \"member1\"),\n\t\t\tnewTestMember(t, \"member2\"),\n\t\t\tnewTestMember(t, \"member3\"),\n\t\t\tnewTestMember(t, \"member4\"),\n\t\t),\n\t\tgnome.WithSubDAO(\n\t\t\tgnome.MustNew(\"main\", \"Main\"),\n\t\t),\n\t)\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newBudgetStrategy(council, \"1USD\")\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(council, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc handlePanic(t *testing.T, fn func()) (reason error) {\n\tt.Helper()\n\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif err, _ := r.(error); err != nil {\n\t\t\t\treason = err\n\t\t\t} else {\n\t\t\t\treason = errors.New(fmt.Sprint(r))\n\t\t\t}\n\t\t}\n\t}()\n\n\tfn()\n\treturn\n}\n"},{"name":"strategy_dao.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Minimum number of members per DAO.\n// This requirement is enforced because two members DAO can only use plurality to tally.\nconst minMembersCount = 3\n\nfunc newSubDAOCreationStrategy(daos daoIndex, name, title, manifest string, members []gnome.Member) subDAOCreationStrategy {\n\tif strings.TrimSpace(name) == \"\" {\n\t\tpanic(\"sub DAO name is required\")\n\t}\n\n\tif !gnome.IsSlug(name) {\n\t\tpanic(`invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`)\n\t}\n\n\tif strings.TrimSpace(title) == \"\" {\n\t\tpanic(\"sub DAO title is required\")\n\t}\n\n\tif strings.TrimSpace(manifest) == \"\" {\n\t\tpanic(\"sub DAO manifest is required\")\n\t}\n\n\tif len(members) \u003c minMembersCount {\n\t\tpanic(\"sub DAOs require at least \" + strconv.Itoa(minMembersCount) + \" members\")\n\t}\n\n\treturn subDAOCreationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdaos: daos,\n\t\tname: name,\n\t\ttitle: title,\n\t\tmanifest: manifest,\n\t\tmembers: members,\n\t}\n}\n\ntype subDAOCreationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdaos daoIndex\n\tname, title, manifest string\n\tmembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (subDAOCreationStrategy) Name() string {\n\treturn StrategyNameSubDAOCreation\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAOCreationStrategy) Quorum() float64 {\n\treturn 1.0\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAOCreationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameSubDAOCreation)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAOCreationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAOCreationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Strategy need 100% participation to decide on the outcome.\n\t// Normally quorum should make sure all members voted before\n\t// tallying but otherwise tally should not return a valid outcome.\n\tif len(dao.Members()) != r.VoteCount() {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\t// This type of proposals can pass only when 100% of members vote YES.\n\tfor _, v := range r.Votes() {\n\t\t// If there is at least one NO vote then proposal must be rejected\n\t\tif v.Choice == gnome.ChoiceNo {\n\t\t\treturn gnome.ChoiceNo\n\t\t}\n\t}\n\t// Proposal should pass when all votes are YES\n\treturn gnome.ChoiceYes\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s subDAOCreationStrategy) Validate(p *gnome.Proposal) error {\n\tdao := p.DAO()\n\tpath := dao.Path()\n\tif dao.IsLocked() {\n\t\treturn errors.New(\"parent DAO '\" + path + \"' is locked\")\n\t}\n\n\tsubDAOPath := path + gnome.PathSeparator + s.name\n\tif s.daos.HasPathKey(subDAOPath) {\n\t\treturn errors.New(\"sub DAO path has been taken by another DAO\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAOCreationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tmembers []string\n\t\tmanifest = gnome.EscapeHTML(s.manifest)\n\t)\n\n\tfor _, addr := range s.members {\n\t\tmembers = append(members, addr.String())\n\t}\n\n\t// TODO: Use a custom HTML table and add styling (vertical alignment, padding, ...)\n\t// This would allow to remove the markdown \"hacks\" to improve the output layout\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Name: | \" + gnome.EscapeHTML(s.name) + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Members: | \u003c/br\u003e\" + strings.Join(members, \"\u003c/br\u003e\") + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\tb.WriteString(\"| Manifest:\u0026nbsp;\u0026nbsp; | \" + strings.ReplaceAll(manifest, \"\\n\", \"\u003c/br\u003e\") + \" |\\n\")\n\n\treturn b.String()\n}\n\n// Execute creates the new sub DAO.\nfunc (s subDAOCreationStrategy) Execute(dao *gnome.DAO) error {\n\tsubDAO, err := gnome.New(s.name, s.title, gnome.WithManifest(s.manifest), gnome.WithMembers(s.members...))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Add the new sub DAO to its parent\n\tdao.AddSubDAO(subDAO)\n\n\t// Index the new sub DAO\n\ts.daos.IndexByPath(subDAO)\n\n\treturn nil\n}\n\nfunc newDAOMembersModificationStrategy(newMembers, removeMembers []gnome.Member) daoMembersModificationStrategy {\n\tif len(newMembers) == 0 \u0026\u0026 len(removeMembers) == 0 {\n\t\tpanic(\"members are required\")\n\t}\n\n\treturn daoMembersModificationStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tnewMembers: newMembers,\n\t\tremoveMembers: removeMembers,\n\t}\n}\n\ntype daoMembersModificationStrategy struct {\n\tchoices []gnome.VoteChoice\n\tnewMembers, removeMembers []gnome.Member\n}\n\n// Name returns the name of the strategy.\nfunc (daoMembersModificationStrategy) Name() string {\n\treturn StrategyNameDAOMembersModification\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (daoMembersModificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (daoMembersModificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDAOMembersModification)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s daoMembersModificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (daoMembersModificationStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Tally requires at least three votes to be able to tally by 2/3s super majority\n\tif r.VoteCount() \u003c 3 {\n\t\treturn gnome.ChoiceNone\n\t}\n\n\tif choice, ok := gnome.SelectChoiceBySuperMajority(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s daoMembersModificationStrategy) Validate(p *gnome.Proposal) error {\n\t// At least three members are required to enforce 2/3s majority on proposals\n\tdao := p.DAO()\n\tmemberCount := len(dao.Members()) + len(s.newMembers) - len(s.removeMembers)\n\tif memberCount \u003c minMembersCount {\n\t\treturn errors.New(\"DAO must always have a minimum of \" + strconv.Itoa(minMembersCount) + \" members\")\n\t}\n\n\t// TODO: Should we allow re-adding members to only change assigned roles?\n\tfor _, m := range s.newMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is already a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\treturn errors.New(\"address is not a DAO member: \" + m.Address.String())\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// Execute modifies main DAO members.\nfunc (s daoMembersModificationStrategy) Execute(dao *gnome.DAO) error {\n\tfor _, m := range s.newMembers {\n\t\tdao.AddMember(m)\n\t}\n\n\tfor _, m := range s.removeMembers {\n\t\tdao.RemoveMember(m.Address)\n\t}\n\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s daoMembersModificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\n\tif len(s.newMembers) \u003e 0 {\n\t\tvar members []string\n\t\tfor _, m := range s.newMembers {\n\t\t\tmembers = append(members, m.String())\n\t\t}\n\n\t\tb.WriteString(\"| New Members: | \" + strings.Join(members, \"\u003c/br\u003e\") + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.removeMembers) \u003e 0 {\n\t\tvar members []string\n\t\tfor _, m := range s.removeMembers {\n\t\t\tmembers = append(members, m.String())\n\t\t}\n\n\t\tb.WriteString(\"| Members to Remove: | \" + strings.Join(members, \"\u003c/br\u003e\") + \" |\\n\")\n\t}\n\n\treturn b.String()\n}\n\nfunc newSubDAODismissalStrategy(dao *gnome.DAO, x proposalIndex) subDAODismissalStrategy {\n\tif dao == nil {\n\t\tpanic(\"DAO is required\")\n\t}\n\n\treturn subDAODismissalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tdao: dao,\n\t\tproposals: x,\n\t}\n}\n\ntype subDAODismissalStrategy struct {\n\tchoices []gnome.VoteChoice\n\tdao *gnome.DAO\n\tproposals proposalIndex\n}\n\n// Name returns the name of the strategy.\nfunc (subDAODismissalStrategy) Name() string {\n\treturn StrategyNameSubDAODismissal\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (subDAODismissalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (subDAODismissalStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameSubDAODismissal)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s subDAODismissalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (subDAODismissalStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (s subDAODismissalStrategy) Validate(p *gnome.Proposal) error {\n\tparentDAO := s.dao.Parent()\n\tif parentDAO == nil {\n\t\treturn errors.New(\"the DAO to dismiss has no parent DAO\")\n\t}\n\n\tparentName := p.DAO().Name()\n\tif parentDAO.Name() != parentName {\n\t\treturn errors.New(`the DAO to dismiss must be a first level sub DAO of \"` + parentName + `\"`)\n\t}\n\treturn nil\n}\n\n// Execute modifies main DAO members.\nfunc (s subDAODismissalStrategy) Execute(*gnome.DAO) error {\n\t// Get the list of all sub DAOs and the root DAO to dismiss\n\tdaos := append(collectSubDAOs(s.dao), s.dao)\n\t// Proposal dismissal requires a reason\n\t// TODO: Send proposal to Execute and add dismissal proposal link?\n\treason := \"Dismissed because of DAO dismissal: \" + s.dao.Path()\n\n\tfor _, dao := range daos {\n\t\t// Dismiss all proposals for the current DAO\n\t\tfor _, p := range s.proposals.GetAllByDAO(dao.Path()) {\n\t\t\tif !p.Status().IsFinal() {\n\t\t\t\tp.Dismiss(reason)\n\t\t\t}\n\t\t}\n\n\t\t// Lock the DAO to dismiss it\n\t\tdao.Lock(\"\")\n\t}\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s subDAODismissalStrategy) RenderParams() string {\n\treturn \"DAO: \" + s.dao.Path()\n}\n\nfunc collectSubDAOs(dao *gnome.DAO) []*gnome.DAO {\n\tdaos := dao.SubDAOs()\n\tfor _, sub := range daos[:] {\n\t\tdaos = append(daos, collectSubDAOs(sub)...)\n\t}\n\treturn daos\n}\n"},{"name":"strategy_dao_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestSubDAOCreationStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName, title, manifest, err string\n\t\tmembers []gnome.Member\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\tmembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t\tnewTestMember(t, \"address3\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"without name\",\n\t\t\terr: \"sub DAO name is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid name\",\n\t\t\tdaoName: \"invalid name\",\n\t\t\terr: `invalid sub DAO name, only letters from \"a\" to \"z\", numbers, \"-\" and \"_\" are allowed`,\n\t\t},\n\t\t{\n\t\t\tname: \"without title\",\n\t\t\tdaoName: \"test\",\n\t\t\terr: \"sub DAO title is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"without manifest\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\terr: \"sub DAO manifest is required\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than two DAO members\",\n\t\t\tdaoName: \"test\",\n\t\t\ttitle: \"Test\",\n\t\t\tmanifest: \"Test manifest\",\n\t\t\terr: \"sub DAOs require at least 3 members\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameSubDAOCreation\n\t\t\tquorum := 1.0\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAOCreationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAOCreationStrategy(daoIndex{}, tc.daoName, tc.title, tc.manifest, tc.members)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"quorum vote yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum vote no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"quorum with different choices\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAOCreationStrategy(daoIndex{}, \"name\", \"Name\", \"Manifest\", []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t\tnewTestMember(t, \"member3\"),\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname, daoName string\n\t\tsetup func(*daoIndex) *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"existing name\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(x *daoIndex) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\", gnome.WithSubDAO(child))\n\t\t\t\tx.IndexByPath(child)\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"sub DAO path has been taken by another DAO\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked parent\",\n\t\t\tdaoName: \"child\",\n\t\t\tsetup: func(*daoIndex) *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"parent\", \"Parent\")\n\t\t\t\tdao.Lock(\"\")\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"parent DAO 'parent' is locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tx := daoIndex{}\n\t\t\tdao := tc.setup(\u0026x)\n\t\t\tmembers := []gnome.Member{\n\t\t\t\tnewTestMember(t, \"member1\"),\n\t\t\t\tnewTestMember(t, \"member2\"),\n\t\t\t\tnewTestMember(t, \"member3\"),\n\t\t\t}\n\t\t\ts := newSubDAOCreationStrategy(x, tc.daoName, \"Title\", \"Manifest\", members)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAOCreationStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"name\", \"Name\")\n\tsubName := \"sub\"\n\ttitle := \"Sub DAO\"\n\tmanifest := \"Test manifest\"\n\n\ts := newSubDAOCreationStrategy(daoIndex{}, subName, title, manifest, []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t})\n\tmembers := fmt.Sprintf(\"%v\", s.members)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tsubDAOs := dao.SubDAOs()\n\tif c := len(subDAOs); c != 1 {\n\t\tt.Fatalf(\"expected one sub DAO, got: %d\", c)\n\t}\n\n\tsubDAO := subDAOs[0]\n\tif got := subDAO.Name(); got != subName {\n\t\tt.Fatalf(\"expected sub DAO name: '%s', got: '%s'\", subName, got)\n\t}\n\n\tif got := subDAO.Title(); got != title {\n\t\tt.Fatalf(\"expected sub DAO title: '%s', got: '%s'\", title, got)\n\t}\n\n\tif got := subDAO.Manifest(); got != manifest {\n\t\tt.Fatalf(\"expected sub DAO manifest: '%s', got: '%d'\", manifest, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", subDAO.Members()); got != members {\n\t\tt.Fatalf(\"expected sub DAO members: '%s', got: '%s'\", members, got)\n\t}\n}\n\nfunc TestModifyDAOMembersStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"new and remove members\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address2\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"new members only\",\n\t\t\tnewMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"remove members only\",\n\t\t\tremoveMembers: []gnome.Member{\n\t\t\t\tnewTestMember(t, \"address1\"),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"no members\",\n\t\t\terr: \"members are required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameDAOMembersModification\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s daoMembersModificationStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"super majority votes yes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"super majority votes no\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newDAOMembersModificationStrategy(\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member5\")},\n\t\t\t\t[]gnome.Member{newTestMember(t, \"member2\")},\n\t\t\t)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyValidate(t *testing.T) {\n\tmember5 := newTestMember(t, \"member5\")\n\tmembers := []gnome.Member{\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t}\n\n\tcases := []struct {\n\t\tname string\n\t\tnewMembers, removeMembers []gnome.Member\n\t\tsetup func() *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"less than three members\",\n\t\t\tnewMembers: []gnome.Member{member5},\n\t\t\tremoveMembers: members[1:],\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"DAO must always have a minimum of 3 members\",\n\t\t},\n\t\t{\n\t\t\tname: \"add existing member\",\n\t\t\tnewMembers: []gnome.Member{members[0]},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is already a DAO member: \" + members[0].String(),\n\t\t},\n\t\t{\n\t\t\tname: \"remove unexisting member\",\n\t\t\tremoveMembers: []gnome.Member{member5},\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(members...))\n\t\t\t\tgnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil(), gnome.WithSubDAO(dao))\n\t\t\t\treturn dao\n\t\t\t},\n\t\t\terr: \"address is not a DAO member: \" + member5.String(),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tdao := tc.setup()\n\t\t\ts := newDAOMembersModificationStrategy(tc.newMembers, tc.removeMembers)\n\t\t\tp, _ := gnome.NewProposal(1, s, members[0].Address, dao, \"Title\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestModifyDAOMembersStrategyExecute(t *testing.T) {\n\t// Arrange\n\tdao := gnome.MustNew(\"main\", \"Main\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tnewMembers := []gnome.Member{\n\t\tnewTestMember(t, \"member5\"),\n\t\tnewTestMember(t, \"member6\"),\n\t}\n\tremoveMembers := dao.Members()[1:3]\n\ts := newDAOMembersModificationStrategy(newMembers, removeMembers)\n\n\t// Act\n\terr := s.Execute(dao)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tif c := len(dao.Members()); c != 4 {\n\t\tt.Fatalf(\"expected DAO to have 4 members, got: %d\", c)\n\t}\n\n\tfor _, m := range newMembers {\n\t\tif !dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be added to the DAO\", m.Address)\n\t\t}\n\t}\n\n\tfor _, m := range removeMembers {\n\t\tif dao.HasMember(m.Address) {\n\t\t\tt.Fatalf(\"expected member %s to be removed from the DAO\", m.Address)\n\t\t}\n\t}\n}\n\nfunc TestSubDAODismissalStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tdao *gnome.DAO\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tdao: gnome.MustNew(\"dao\", \"DAO\"),\n\t\t},\n\t\t{\n\t\t\tname: \"no DAO\",\n\t\t\terr: \"DAO is required\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameSubDAODismissal\n\t\t\tquorum := 0.51\n\t\t\tvotingPeriod := time.Hour * 24 * 7\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\n\t\t\t// Act\n\t\t\tvar s subDAODismissalStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newSubDAODismissalStrategy(tc.dao, proposalIndex{})\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyTally(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tsubDAO := gnome.MustNew(\"sub\", \"Sub DAO\")\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newSubDAODismissalStrategy(subDAO, proposalIndex{})\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyValidate(t *testing.T) {\n\tparentDAO := gnome.MustNew(\"parent\", \"Parent\")\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(parent *gnome.DAO) (child *gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func(dao *gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tdao.AddSubDAO(child)\n\t\t\t\treturn child\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dismiss non child DAO\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\tchild := gnome.MustNew(\"child\", \"Child\")\n\t\t\t\tgnome.MustNew(\"foo\", \"Foo\", gnome.WithSubDAO(child))\n\t\t\t\treturn child\n\t\t\t},\n\t\t\terr: `the DAO to dismiss must be a first level sub DAO of \"` + parentDAO.Name() + `\"`,\n\t\t},\n\t\t{\n\t\t\tname: \"parent DAO not found\",\n\t\t\tsetup: func(*gnome.DAO) *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"child\", \"Child\")\n\t\t\t},\n\t\t\terr: \"the DAO to dismiss has no parent DAO\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tchildDAO := tc.setup(parentDAO)\n\t\t\ts := newSubDAODismissalStrategy(childDAO, proposalIndex{})\n\t\t\tp, _ := gnome.NewProposal(1, s, testutils.TestAddress(\"member\"), parentDAO, \"Dismiss child DAO\")\n\n\t\t\t// Act\n\t\t\terr := s.Validate(p)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSubDAODismissalStrategyExecute(t *testing.T) {\n\t// Arrange\n\tvar (\n\t\tstrategy testStrategy\n\t\tproposals proposalIndex\n\t)\n\n\tcaller := testutils.TestAddress(\"caller\")\n\n\tthreeDAO := gnome.MustNew(\"three\", \"Three\")\n\ttwoDAO := gnome.MustNew(\"two\", \"Two\")\n\toneDAO := gnome.MustNew(\"one\", \"One\", gnome.WithSubDAO(twoDAO), gnome.WithSubDAO(threeDAO))\n\trootDAO := gnome.MustNew(\"root\", \"Root\", gnome.WithSubDAO(oneDAO))\n\n\tp, _ := gnome.NewProposal(1, strategy, caller, rootDAO, \"Root\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(2, strategy, caller, oneDAO, \"One\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(3, strategy, caller, twoDAO, \"Two\")\n\tproposals.Index(p)\n\n\tp, _ = gnome.NewProposal(4, strategy, caller, threeDAO, \"Thee\")\n\tproposals.Index(p)\n\n\tdismissReason := \"Dismissed because of DAO dismissal: \" + rootDAO.Name()\n\tdaos := []*gnome.DAO{rootDAO, oneDAO, twoDAO, threeDAO}\n\ts := newSubDAODismissalStrategy(rootDAO, proposals)\n\n\t// Act\n\terr := s.Execute(nil)\n\n\t// Assert\n\tassertNoError(t, err)\n\n\tfor _, dao := range daos {\n\t\tif !dao.IsLocked() {\n\t\t\tt.Fatalf(\"expected DAO '%s' to be locked\", dao.Title())\n\t\t}\n\t}\n\n\tproposals.Iterate(func(p *gnome.Proposal) bool {\n\t\tif got := p.Status(); got != gnome.StatusDismissed {\n\t\t\tt.Fatalf(\"expected proposal '%s' status to be 'dismissed', got: '%s'\", p.Title(), got.String())\n\t\t}\n\n\t\tif got := p.StatusReason(); got != dismissReason {\n\t\t\tt.Fatalf(\"expected dismiss reason '%s', got: '%s'\", dismissReason, got)\n\t\t}\n\t\treturn false\n\t})\n}\n\ntype testStrategy struct{}\n\nfunc (testStrategy) Name() string { return \"test\" }\nfunc (testStrategy) Quorum() float64 { return 0.51 }\nfunc (testStrategy) VotingPeriod() time.Duration { return time.Hour * 24 * 2 }\nfunc (testStrategy) VoteChoices() []gnome.VoteChoice { return []gnome.VoteChoice{gnome.ChoiceYes} }\nfunc (s testStrategy) Tally(*gnome.DAO, gnome.VotingRecord) gnome.VoteChoice { return gnome.ChoiceYes }\n\nfunc newTestMember(t *testing.T, name string) gnome.Member {\n\tt.Helper()\n\treturn gnome.NewMember(testutils.TestAddress(name))\n}\n"},{"name":"strategy_general.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// newGeneralStrategy creates a new general proposal strategy.\n// This type of proposal is not executable so it doesn't modify the DAO state when proposal passes.\nfunc newGeneralStrategy() generalStrategy {\n\treturn generalStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t}\n}\n\ntype generalStrategy struct {\n\tchoices []gnome.VoteChoice\n}\n\n// Name returns the name of the strategy.\nfunc (generalStrategy) Name() string {\n\treturn StrategyNameGeneral\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (generalStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (generalStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameGeneral)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s generalStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// CheckVote checks that a vote is valid for the strategy.\nfunc (s generalStrategy) CheckVote(_ std.Address, choice gnome.VoteChoice, reason string) error {\n\t// Reason is required when voting NO on standard proposals\n\tif choice == gnome.ChoiceNo \u0026\u0026 reason == \"\" {\n\t\treturn errors.New(\"reason is required when voting NO in standard proposals\")\n\t}\n\treturn nil\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (generalStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\t// Consider abstentions to make the majority absolute\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current DAO state.\nfunc (generalStrategy) Validate(p *gnome.Proposal) error {\n\tif strings.TrimSpace(p.Description()) == \"\" {\n\t\treturn errors.New(\"proposal description is required\")\n\t}\n\treturn nil\n}\n"},{"name":"strategy_general_test.gno","body":"package gnome\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestGeneralStrategy(t *testing.T) {\n\t// Arrange\n\tname := StrategyNameGeneral\n\tquorum := 0.51\n\tvotingPeriod := time.Hour * 24 * 2\n\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\tgnome.ChoiceYes,\n\t\tgnome.ChoiceNo,\n\t})\n\n\t// Act\n\ts := newGeneralStrategy()\n\n\t// Assert\n\tif got := s.Name(); got != name {\n\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t}\n\n\tif got := s.Quorum(); got != quorum {\n\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t}\n\n\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t}\n\n\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t}\n}\n\nfunc TestGeneralStrategyCheckVote(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tchoice gnome.VoteChoice\n\t\treason, err string\n\t}{\n\t\t{\n\t\t\tname: \"yes\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with reason\",\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\treason: \"foo bar\",\n\t\t},\n\t\t{\n\t\t\tname: \"no with invalid reason\",\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t\terr: \"reason is required when voting NO in standard proposals\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\terr := s.CheckVote(\"\", tc.choice, tc.reason)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGeneralStrategyTally(t *testing.T) {\n\tdao := gnome.MustNew(\"test\", \"Test\", gnome.WithMembers(\n\t\tnewTestMember(t, \"member1\"),\n\t\tnewTestMember(t, \"member2\"),\n\t\tnewTestMember(t, \"member3\"),\n\t\tnewTestMember(t, \"member4\"),\n\t))\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"majority\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"majority with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no quorum with abstentions\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newGeneralStrategy()\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(dao, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc assertError(t *testing.T, expected interface{}, actual error) {\n\tt.Helper()\n\n\twant, ok := expected.(string)\n\tif !ok {\n\t\tif err, ok := expected.(error); ok {\n\t\t\twant = err.Error()\n\t\t}\n\t}\n\n\tif actual == nil {\n\t\tt.Fatalf(\"expected error: '%s', got no error\", want)\n\t}\n\n\tif want != actual.Error() {\n\t\tt.Fatalf(\"expected error: '%s', got: '%s'\", want, actual.Error())\n\t}\n}\n\nfunc assertNoError(t *testing.T, err interface{}) {\n\tt.Helper()\n\n\tif err == nil {\n\t\treturn\n\t}\n\n\tactual, ok := err.(string)\n\tif !ok {\n\t\tif e, ok := err.(error); ok {\n\t\t\tactual = e.Error()\n\t\t}\n\t}\n\n\tif actual != \"\" {\n\t\tt.Fatalf(\"expected no error, got: '%s'\", actual)\n\t}\n}\n"},{"name":"strategy_lock.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// newLockingStrategy creates a new DAO locking proposal strategy.\nfunc newLockingStrategy(council *gnome.DAO, reason string, preLockFn func() error) lockingStrategy {\n\t// Locking should only be done in the council DAO\n\tif !council.IsSuperCouncil() {\n\t\tpanic(\"DAO is not the council\")\n\t}\n\n\treturn lockingStrategy{\n\t\tchoices: []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo},\n\t\tcouncil: council,\n\t\treason: reason,\n\t\tpreLockFn: preLockFn,\n\t}\n}\n\ntype lockingStrategy struct {\n\tchoices []gnome.VoteChoice\n\tcouncil *gnome.DAO\n\treason string\n\tpreLockFn func() error\n}\n\n// Name returns the name of the strategy.\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\n// Quorum returns the minimum required percentage of DAO member votes\n// required for a proposal to pass.\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\n// VotingPeriod returns the period that a proposal should allow voting.\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\n// VoteChoices returns the valid voting choices for the strategy.\nfunc (s lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn s.choices\n}\n\n// Tally counts the votes and returns the winner voting choice.\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\n// Validate validates if a proposal is valid for the current state.\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\tif s.council.IsLocked() {\n\t\treturn errors.New(\"council DAO is already locked\")\n\t}\n\treturn nil\n}\n\n// Execute locks the council DAO.\nfunc (s lockingStrategy) Execute(*gnome.DAO) (err error) {\n\tif s.preLockFn != nil {\n\t\tif err := s.preLockFn(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\ts.council.Lock(s.reason)\n\treturn nil\n}\n\n// RenderParams returns a markdown with the rendered strategy parameters.\nfunc (s lockingStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Reason: | \" + gnome.EscapeHTML(s.reason) + \" |\\n\")\n\n\treturn b.String()\n}\n"},{"name":"strategy_lock_test.gno","body":"package gnome\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc TestLockingStrategy(t *testing.T) {\n\tcases := []struct {\n\t\tname, err string\n\t\tsetup func() *gnome.DAO\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"dao is not council\",\n\t\t\tsetup: func() *gnome.DAO {\n\t\t\t\treturn gnome.MustNew(\"council\", \"Council\")\n\t\t\t},\n\t\t\terr: \"DAO is not the council\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tname := StrategyNameLocking\n\t\t\tquorum := 0.33\n\t\t\tvotingPeriod := time.Hour * 24 * 2\n\t\t\tchoices := fmt.Sprintf(\"%v\", []gnome.VoteChoice{\n\t\t\t\tgnome.ChoiceYes,\n\t\t\t\tgnome.ChoiceNo,\n\t\t\t})\n\t\t\tcouncilDAO := tc.setup()\n\n\t\t\t// Act\n\t\t\tvar s lockingStrategy\n\t\t\terr := handlePanic(t, func() {\n\t\t\t\ts = newLockingStrategy(councilDAO, \"\", nil)\n\t\t\t})\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif got := s.Name(); got != name {\n\t\t\t\tt.Fatalf(\"expected strategy name: '%s', got: '%s'\", name, got)\n\t\t\t}\n\n\t\t\tif got := s.Quorum(); got != quorum {\n\t\t\t\tt.Fatalf(\"expected strategy quorum: %.2f, got: %.2f\", quorum, got)\n\t\t\t}\n\n\t\t\tif got := s.VotingPeriod(); got != votingPeriod {\n\t\t\t\tt.Fatalf(\"expected strategy voting period: %d, got: %d\", votingPeriod, got)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", s.VoteChoices()); got != choices {\n\t\t\t\tt.Fatalf(\"expected strategy vote choices: %s, got: %s\", choices, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyTally(t *testing.T) {\n\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\tcases := []struct {\n\t\tname string\n\t\tvotes []gnome.Vote\n\t\tchoice gnome.VoteChoice\n\t}{\n\t\t{\n\t\t\tname: \"yes with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with one vote\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"yes with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceYes,\n\t\t},\n\t\t{\n\t\t\tname: \"no with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNo,\n\t\t},\n\t\t{\n\t\t\tname: \"tie\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"tie with multiple votes\",\n\t\t\tvotes: []gnome.Vote{\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t\t{Choice: gnome.ChoiceYes},\n\t\t\t\t{Choice: gnome.ChoiceNo},\n\t\t\t},\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t\t{\n\t\t\tname: \"no votes\",\n\t\t\tchoice: gnome.ChoiceNone,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\trecord := gnome.NewVotingRecord()\n\t\t\tfor _, v := range tc.votes {\n\t\t\t\trecord.Add(v)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\tchoice := s.Tally(nil, *record)\n\n\t\t\t// Assert\n\t\t\tif choice != tc.choice {\n\t\t\t\tt.Fatalf(\"expected tally result choice: '%v', got: '%v'\", tc.choice, choice)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyValidate(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\tsetup func(*gnome.DAO)\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t},\n\t\t{\n\t\t\tname: \"locked council DAO\",\n\t\t\tsetup: func(councilDAO *gnome.DAO) {\n\t\t\t\tcouncilDAO.Lock(\"\")\n\t\t\t},\n\t\t\terr: \"council DAO is already locked\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\ts := newLockingStrategy(councilDAO, \"\", nil)\n\n\t\t\t// Act\n\t\t\terr := s.Validate(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t} else {\n\t\t\t\tassertNoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLockingStrategyExecute(t *testing.T) {\n\tcases := []struct {\n\t\tname, reason, err string\n\t\tsetup func(*gnome.DAO)\n\t\tpreLockErr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\treason: \"Lock reason\",\n\t\t},\n\t\t{\n\t\t\tname: \"pre lock function error\",\n\t\t\tpreLockErr: errors.New(\"test error\"),\n\t\t\terr: \"test error\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tcouncilDAO := gnome.MustNew(\"council\", \"Council\", gnome.AssignAsSuperCouncil())\n\t\t\tif tc.setup != nil {\n\t\t\t\ttc.setup(councilDAO)\n\t\t\t}\n\n\t\t\tvar (\n\t\t\t\tpreLockFnCalled bool\n\n\t\t\t\ts = newLockingStrategy(councilDAO, tc.reason, func() error {\n\t\t\t\t\tpreLockFnCalled = true\n\t\t\t\t\treturn tc.preLockErr\n\t\t\t\t})\n\t\t\t)\n\n\t\t\t// Act\n\t\t\terr := s.Execute(nil)\n\n\t\t\t// Assert\n\t\t\tif tc.err != \"\" {\n\t\t\t\tassertError(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tassertNoError(t, err)\n\n\t\t\tif !preLockFnCalled {\n\t\t\t\tt.Fatal(\"expected pre-lock function to be called\")\n\t\t\t}\n\n\t\t\tif !councilDAO.IsLocked() {\n\t\t\t\tt.Fatal(\"expected DAO to be locked\")\n\t\t\t}\n\n\t\t\tif got := councilDAO.LockReason(); got != tc.reason {\n\t\t\t\tt.Fatalf(\"expected lock reason: '%s', got: '%s'\", tc.reason, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"strategy_params.gno","body":"package gnome\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype paramsUpdateStrategy struct {\n\tvotingPeriods gnome.DurationParams\n\treviewDeadline time.Duration\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\tif s.reviewDeadline \u003e 0 {\n\t\tparameters.ReviewDeadline = s.reviewDeadline\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tif s.reviewDeadline \u003e 0 {\n\t\tb.WriteString(\"| Proposal Review Deadline: | \" + gnome.HumanizeDuration(s.reviewDeadline) + \" |\\n\")\n\t}\n\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"| Voting Period for `\" + name + \"`: | \" + gnome.HumanizeDuration(period) + \" |\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"uri.gno","body":"package gnome\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nfunc makeRealmURL(renderPath string) string {\n\tvar sub string\n\tif id := std.GetChainID(); strings.HasPrefix(id, \"test\") {\n\t\t// Sub domain prefix for testnets\n\t\tsub = id + \".\"\n\t}\n\n\turl := \"https://\" + sub + std.CurrentRealm().PkgPath()\n\tif renderPath != \"\" {\n\t\turl += \":\" + renderPath\n\t}\n\treturn url\n}\n\nfunc makeRealmPath(renderPath string) string {\n\tpath := gnome.CutRealmDomain(std.CurrentRealm().PkgPath())\n\tif renderPath != \"\" {\n\t\tpath += \":\" + renderPath\n\t}\n\treturn path\n}\n\nfunc makeGnoStudioConnectURL(functionName string) string {\n\treturn ufmt.Sprintf(\n\t\t\"https://gno.studio/connect/view/%s?network=%s\u0026tab=functions#%s\",\n\t\tstd.CurrentRealm().PkgPath(),\n\t\tstd.GetChainID(),\n\t\tfunctionName,\n\t)\n}\n\nfunc makeDAOURI(daoPath string, isRelative bool) string {\n\trenderPath := \"dao/\" + daoPath\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n\nfunc makeProposalURI(proposalID gnome.ID, isRelative bool) string {\n\trenderPath := \"proposal/\" + proposalID.String()\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n\nfunc makeProposalsURI(daoPath string, isRelative bool) string {\n\trenderPath := \"proposals/\" + daoPath + \":page=1\"\n\tif isRelative {\n\t\treturn makeRealmPath(renderPath)\n\t}\n\treturn makeRealmURL(renderPath)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"26000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"inaVIoD7zNFUIp8fjVSNwv93Hnn/5pAPWFm8J+n+sWwLXyrMDBuMH+LUgXl2i+R+QAVdRJuDYYv52LvdH/OcDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"hello","path":"gno.land/p/namespacetest/hello","files":[{"name":"hello.gno","body":"package hello\n\nfunc Public() {}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"7000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6NGWqjsFPb/HW/8WCclLmVxNQ+vCrvm0ur6y6rH5ZZCkNZN3YYs3HsHWXpU2TdgKkUZt8Y+jdoOl4e7aMacYDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"router","path":"gno.land/p/gnome/router/v1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"router.gno","body":"package router\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\t// ResponseWriter defines the interface to write response output content.\n\tResponseWriter interface {\n\t\t// Write writes a string to the response output.\n\t\tWrite(s string)\n\n\t\t// Writef writes a formatted string to the response output.\n\t\tWritef(format string, values ...interface{})\n\t}\n\n\t// Request contains incoming request info.\n\tRequest struct {\n\t\t// Path contains the full render path.\n\t\tPath string\n\n\t\t// Prefix contains the render path prefix that handled the request.\n\t\t// For example for \"/prefix/custom/route\" the prefix path is \"/prefix\".\n\t\tPrefix string\n\n\t\t// Route contains the render path after the prefix.\n\t\t// This path doesn't include arguments.\n\t\t// For example for \"/prefix/custom/route:arg1=value1\" the route is \"/custom/route\".\n\t\tRoute string\n\n\t\t// Args contains the list of arguments found in the render path.\n\t\t// Any number of arguments can be defined as render path suffix by using\n\t\t// a colon as separator, for example:\n\t\t//\n\t\t// /prefix/custom/route:arg1=value1:arg2=value2\n\t\t//\n\t\t// In the example the argument are \"arg1=value1\" and \"arg2=value2\".\n\t\t// The arguments can have any format as long as they are separated by a colon.\n\t\tArgs []string\n\t}\n\n\t// HandlerFunc defines the type for request handlers.\n\tHandlerFunc func(ResponseWriter, Request)\n\n\thandler struct {\n\t\tPrefix string\n\t\tFn HandlerFunc\n\t}\n)\n\n// New creates a new prefix router.\nfunc New() Router {\n\treturn Router{}\n}\n\n// Router allows routing requests by render path prefix.\ntype Router struct {\n\thandlers []handler\n}\n\n// HandlerFunc registers a request handler for a request path prefix.\nfunc (r *Router) HandleFunc(prefix string, fn HandlerFunc) {\n\tr.handlers = append(r.handlers, handler{\n\t\tPrefix: prefix,\n\t\tFn: fn,\n\t})\n}\n\n// Render returns the response content for a render path.\nfunc (r Router) Render(path string) string {\n\tprefix, route, args := SplitRenderPath(path)\n\n\tfor _, h := range r.handlers {\n\t\tif h.Prefix == prefix {\n\t\t\tvar (\n\t\t\t\tw responseWriter\n\t\t\t\treq = Request{\n\t\t\t\t\tPath: path,\n\t\t\t\t\tPrefix: prefix,\n\t\t\t\t\tRoute: route,\n\t\t\t\t\tArgs: args,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\th.Fn(\u0026w, req)\n\n\t\t\treturn w.Output()\n\t\t}\n\t}\n\n\treturn \"Path not found\"\n}\n\ntype responseWriter struct {\n\toutput strings.Builder\n}\n\nfunc (w *responseWriter) Write(s string) {\n\tw.output.WriteString(s)\n}\n\nfunc (w *responseWriter) Writef(format string, values ...interface{}) {\n\tw.output.WriteString(ufmt.Sprintf(format, values...))\n}\n\nfunc (w responseWriter) Output() string {\n\treturn w.output.String()\n}\n\n// SplitRenderPath splits render path into a prefix, route and arguments.\nfunc SplitRenderPath(path string) (prefix, route string, args []string) {\n\tpath = strings.TrimSpace(path)\n\tpath = strings.TrimLeft(path, \"/\")\n\n\t// Handle the case where the path is the prefix with no route\n\tif !strings.ContainsAny(path, \"/\") {\n\t\t// Split prefix and arguments\n\t\tparts := strings.Split(path, \":\")\n\t\tprefix = parts[0]\n\t\tif len(parts) \u003e 1 {\n\t\t\targs = parts[1:]\n\t\t}\n\n\t\treturn prefix, route, args\n\t}\n\n\t// Split route prefix and route\n\tparts := strings.SplitN(path, \"/\", 2)\n\tprefix = parts[0]\n\n\t// Split route and arguments\n\tparts = strings.Split(parts[1], \":\")\n\troute = parts[0]\n\tif len(parts) \u003e 1 {\n\t\targs = parts[1:]\n\t}\n\n\treturn prefix, route, args\n}\n"},{"name":"router_test.gno","body":"package router\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\trouter \"gno.land/p/gnome/router/v1\"\n)\n\nfunc TestSplitRenderPath(t *testing.T) {\n\tcases := []struct {\n\t\tname, renderPath, prefix, route, args string\n\t}{\n\t\t{\n\t\t\tname: \"prefix path\",\n\t\t\trenderPath: \"/foo\",\n\t\t\tprefix: \"foo\",\n\t\t\targs: \"[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"path with short route\",\n\t\t\trenderPath: \"/foo/bar\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar\",\n\t\t\targs: \"[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"path with long route\",\n\t\t\trenderPath: \"/foo/bar/baz\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\targs: \"[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"full path with one arg\",\n\t\t\trenderPath: \"/foo/bar/baz:arg=value\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\targs: \"[arg=value]\",\n\t\t},\n\t\t{\n\t\t\tname: \"full path with multiple args\",\n\t\t\trenderPath: \"/foo/bar/baz:arg1=value1:arg2=value2\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\targs: \"[arg1=value1 arg2=value2]\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty path\",\n\t\t\targs: \"[]\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Act\n\t\t\tprefix, route, args := router.SplitRenderPath(tc.renderPath)\n\n\t\t\t// Assert\n\t\t\tif prefix != tc.prefix {\n\t\t\t\tt.Fatalf(\"expected prefix: '%s', got: '%s'\", tc.prefix, prefix)\n\t\t\t}\n\n\t\t\tif route != tc.route {\n\t\t\t\tt.Fatalf(\"expected route: '%s', got: '%s'\", tc.route, route)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", args); got != tc.args {\n\t\t\t\tt.Fatalf(\"expected arguments: %s, got: %s\", tc.args, got)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRouterRender(t *testing.T) {\n\tcases := []struct {\n\t\tname, renderPath, prefix, route, args string\n\t\tnotFound bool\n\t}{\n\t\t{\n\t\t\tname: \"prefix path\",\n\t\t\trenderPath: \"/foo\",\n\t\t\tprefix: \"foo\",\n\t\t\targs: \"[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"path with short route\",\n\t\t\trenderPath: \"/foo/bar\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar\",\n\t\t\targs: \"[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"path with long route\",\n\t\t\trenderPath: \"/foo/bar/baz\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\targs: \"[]\",\n\t\t},\n\t\t{\n\t\t\tname: \"full path with multiple args\",\n\t\t\trenderPath: \"/foo/bar/baz:arg1=value1:arg2=value2\",\n\t\t\tprefix: \"foo\",\n\t\t\troute: \"bar/baz\",\n\t\t\targs: \"[arg1=value1 arg2=value2]\",\n\t\t},\n\t\t{\n\t\t\tname: \"missing path\",\n\t\t\trenderPath: \"/test\",\n\t\t\tnotFound: true,\n\t\t},\n\t\t{\n\t\t\tname: \"empty path\",\n\t\t\tnotFound: true,\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tvar (\n\t\t\t\trequest router.Request\n\t\t\t\tsuccessOutput = \"OK\"\n\t\t\t\tr = router.New()\n\t\t\t)\n\n\t\t\tr.HandleFunc(\"foo\", func(res router.ResponseWriter, req router.Request) {\n\t\t\t\trequest = req\n\t\t\t\tres.Write(successOutput)\n\t\t\t})\n\n\t\t\t// Act\n\t\t\toutput := r.Render(tc.renderPath)\n\n\t\t\t// Assert\n\t\t\tif tc.notFound {\n\t\t\t\tif output == successOutput {\n\t\t\t\t\tt.Fatal(\"expected request to fail\")\n\t\t\t\t}\n\n\t\t\t\t// Run the next test\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif output != successOutput {\n\t\t\t\tt.Fatalf(\"expected output: '%s', got: '%s'\", successOutput, output)\n\t\t\t}\n\n\t\t\tif request.Path != tc.renderPath {\n\t\t\t\tt.Fatalf(\"expected request path: '%s', got: '%s'\", tc.renderPath, request.Path)\n\t\t\t}\n\n\t\t\tif request.Prefix != tc.prefix {\n\t\t\t\tt.Fatalf(\"expected request prefix: '%s', got: '%s'\", tc.prefix, request.Prefix)\n\t\t\t}\n\n\t\t\tif request.Route != tc.route {\n\t\t\t\tt.Fatalf(\"expected request route: '%s', got: '%s'\", tc.route, request.Route)\n\t\t\t}\n\n\t\t\tif got := fmt.Sprintf(\"%v\", request.Args); got != tc.args {\n\t\t\t\tt.Fatalf(\"expected request arguments: %s, got: %s\", tc.args, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"16000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EXYMqgwVDXa5wVBY3PY3jrk3qxQZm02wS4FwBuG48BpNdZ3GWiGo+MiXgSS8tnt2kzn9cJwJqd+eF2u4csiXDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"tutorials","path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/tutorials","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"indexes.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog\"\n)\n\nconst keyDateFmt = \"2006-01-02T15:04:05\"\n\nvar (\n\ttags tagIndex\n\ttutorials tutorialIndex\n)\n\ntype tagIndex struct {\n\tindex avl.Tree // string(tag) -\u003e *tutorialIndex\n}\n\nfunc (x *tagIndex) Index(p *blog.Post) (indexed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\t// Get the tutorials for the current tag\n\t\tvar (\n\t\t\tidx *tutorialIndex\n\t\t\tv, found = x.index.Get(tag)\n\t\t)\n\n\t\tif found {\n\t\t\tidx = v.(*tutorialIndex)\n\t\t} else {\n\t\t\tidx = \u0026tutorialIndex{}\n\t\t}\n\n\t\t// Index the tutorial\n\t\tidx.Index(p)\n\n\t\t// Keep track of indexing success\n\t\tindexed = x.index.Set(tag, idx) || indexed\n\t}\n\treturn\n}\n\nfunc (x *tagIndex) Remove(p *blog.Post) (removed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\tv, found := x.index.Get(tag)\n\t\tif !found {\n\t\t\t// Ignore tags that are not indexed\n\t\t\tcontinue\n\t\t}\n\n\t\tidx := v.(*tutorialIndex)\n\t\tif idx.Remove(p) \u0026\u0026 !removed {\n\t\t\tremoved = true\n\t\t}\n\n\t\tif idx.Size() == 0 {\n\t\t\t// Remove the tag from the index when empty\n\t\t\tx.index.Remove(tag)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x tagIndex) IterateTags(fn func(tag string) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(tag string, _ interface{}) bool {\n\t\treturn fn(tag)\n\t})\n}\n\nfunc (x tagIndex) IteratePosts(tag string, fn func(*blog.Post) bool) bool { // TODO: Support pagination\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.Iterate(\"\", \"\", func(p *blog.Post) bool {\n\t\treturn fn(p)\n\t})\n}\n\ntype tutorialIndex struct {\n\tindex avl.Tree // string(post creation time + post slug) -\u003e *blog.Post\n}\n\nfunc (x tutorialIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *tutorialIndex) Index(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\treturn x.index.Set(k, p)\n}\n\nfunc (x *tutorialIndex) Remove(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\t_, removed := x.index.Remove(k)\n\treturn removed\n}\n\nfunc (x tutorialIndex) Iterate(start, end string, fn func(*blog.Post) bool) bool {\n\treturn x.index.Iterate(start, end, func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*blog.Post))\n\t})\n}\n\nfunc newTutorialKey(p *blog.Post) string {\n\tif p != nil {\n\t\treturn p.CreatedAt.UTC().Format(keyDateFmt) + p.Slug\n\t}\n\n\t// By default create a key for the current block time\n\treturn time.Now().UTC().Format(keyDateFmt)\n}\n"},{"name":"public.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog\"\n\tdao \"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1\"\n)\n\nconst tutorialsDAO = \"council/main/sections/tutorials\"\n\n// Imported defines an interface to allow exporting realm data.\ntype Importer interface {\n\t// Import imports tutorials.\n\tImport(blog.InvarBlog) error\n}\n\n// SubmitCreationProposal submits a new proposal to create a new tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n// Default voting period is 7 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial (required)\n// - tutorialContentHash: A SHA256 hash of the tutorial's content (required)\n// - tutorialContentURL: A URL where the tutorial's content is currently available (required)\n// - tutorialAuthors: List of author addresses (required)\n// - tutorialEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of authors and editors must be a newline separated list of addresses.\nfunc SubmitCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialContentURL,\n\ttutorialAuthors,\n\ttutorialEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertSlugIsAvailable(tutorialSlug)\n\tblog.AssertTitleIsNotEmpty(tutorialTitle)\n\tblog.AssertIsSlug(tutorialSlug)\n\tblog.AssertIsSha256Hash(tutorialContentHash)\n\tblog.AssertIsContentURL(tutorialContentURL)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\tauthors := blog.MustParseStringToAddresses(tutorialAuthors)\n\tif len(authors) == 0 {\n\t\tpanic(\"tutorial authors must have at least one author's address\")\n\t}\n\n\tstrategy := creationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: authors,\n\t\teditors: blog.MustParseStringToAddresses(tutorialEditors),\n\t\ttags: tags,\n\t}\n\tid := dao.SubmitProposal(proposalTitle, proposalDescription, strategy, tutorialsDAO)\n\treturn uint64(id)\n}\n\n// SubmitModificationProposal submits a new proposal to modify a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n// Default voting period is 4 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial\n// - tutorialContentHash: A SHA256 hash of the new tutorial's content\n// - tutorialCurrentContentHash: A SHA256 hash of the current tutorial's content\n// - tutorialContentURL: A URL where the new tutorial's content is currently available\n// - tutorialNewAuthors: List of author addresses\n// - tutorialNewEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of new authors and editors must be a newline separated list of addresses.\n// If present, authors and editors are appended to the current list of authors and editors.\nfunc SubmitModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialCurrentContentHash,\n\ttutorialContentURL,\n\ttutorialNewAuthors,\n\ttutorialNewEditors,\n\ttutorialTags string,\n) uint64 {\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\ttutorialContentHash = strings.TrimSpace(tutorialContentHash)\n\tif tutorialContentHash != \"\" {\n\t\ttutorialCurrentContentHash = strings.TrimSpace(tutorialCurrentContentHash)\n\t\tif tutorialCurrentContentHash == \"\" {\n\t\t\tpanic(\"the current content hash of the tutorial to modify is required\")\n\t\t}\n\n\t\tblog.AssertIsSha256Hash(tutorialContentHash)\n\t\tblog.AssertIsSha256Hash(tutorialCurrentContentHash)\n\t\tblog.AssertIsContentURL(tutorialContentURL)\n\t}\n\n\tstrategy := modificationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcurrentContentHash: tutorialCurrentContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: blog.MustParseStringToAddresses(tutorialNewAuthors),\n\t\teditors: blog.MustParseStringToAddresses(tutorialNewEditors),\n\t\ttags: tags,\n\t}\n\tid := dao.SubmitProposal(proposalTitle, proposalDescription, strategy, tutorialsDAO)\n\treturn uint64(id)\n}\n\n// SubmitDeletionProposal submits a new proposal to delete a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n// Default voting period is 2 days.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\nfunc SubmitDeletionProposal(proposalTitle, proposalDescription, tutorialSlug string) uint64 {\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\tstrategy := deletionStrategy{tutorialSlug}\n\tid := dao.SubmitProposal(proposalTitle, proposalDescription, strategy, tutorialsDAO)\n\treturn uint64(id)\n}\n\n// Publish publishes content for a tutorial.\n//\n// The submited content must be previously approved by a creation or modification proposal.\n//\n// Parameters:\n// - slug: Slug name of the tutorial (required)\n// - content: The tutorial content to publish (required)\nfunc Publish(slug, content string) {\n\t// Check that content checksum matches the approved content for the tutorial post\n\tp := mustGetPost(slug)\n\tblog.AssertContentSha256Hash(content, p.ContentHash)\n\n\t// Add caller to the list of publishers\n\tcaller := std.GetOrigCaller()\n\tif !p.Publishers.HasAddress(caller) {\n\t\tp.Publishers = append(p.Publishers, caller)\n\t}\n\n\tif p.Status == blog.StatusDraft {\n\t\tp.PublishAt = time.Now()\n\t}\n\n\tp.Status = blog.StatusPublished\n\tp.Content = content\n\tp.UpdatedAt = time.Now()\n}\n\n// Export exports the tutorial realm's state.\n// The caller's realm path prefix must match the prefix of the tutorials realm\n// to be able to import the state.\nfunc Export(x Importer) error {\n\t// TODO: Check that realm is locked and the caller realm path is the next version\n\tcurrentPath := std.CurrentRealm().PkgPath()\n\tif !strings.HasPrefix(std.PrevRealm().PkgPath(), currentPath) {\n\t\treturn errors.New(\"caller realm path must start with: \" + currentPath)\n\t}\n\n\treturn x.Import(blog.NewInvarBlog(\u0026tutorialsBlog))\n}\n\nfunc assertSlugIsAvailable(slug string) {\n\tif tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial URL slug already exists\")\n\t}\n}\n\nfunc assertTutorialExists(slug string) {\n\tif !tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial not found\")\n\t}\n}\n\nfunc assertValidTags(tags []string) {\n\tfor _, t := range tags {\n\t\tif !blog.IsSlug(t) {\n\t\t\tpanic(\"invalid tag: \" + t)\n\t\t}\n\t}\n}\n"},{"name":"render.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/alerts\"\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog\"\n)\n\nconst (\n\tdateFormat = \"2006-01-02 15:04 MST\"\n\tshortDateFormat = \"Jan 2, 2006\"\n)\n\nfunc Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.NotFoundHandler = func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(\"Path not found\")\n\t}\n\n\trouter.HandleFunc(\"\", renderBlog)\n\trouter.HandleFunc(\"posts\", renderBlog)\n\trouter.HandleFunc(\"posts/{slug}\", renderPost)\n\trouter.HandleFunc(\"drafts\", renderDrafts)\n\trouter.HandleFunc(\"revisions\", renderRevisions)\n\trouter.HandleFunc(\"tags\", renderTags)\n\trouter.HandleFunc(\"tags/{name}\", renderPostsByTag)\n\n\treturn router.Render(path)\n}\n\nfunc renderBlog(res *mux.ResponseWriter, _ *mux.Request) {\n\t// Write header\n\tres.Write(\"# \" + tutorialsBlog.Title + \"\\n\")\n\tif tutorialsBlog.Description != \"\" {\n\t\tres.Write(tutorialsBlog.Description + \"\\n\\n\")\n\t}\n\n\t// Write tutorials menu\n\tres.Write(renderMenu() + \"\\n\\n---\\n\")\n\n\t// Write list of published tutorials\n\tnow := time.Now()\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add post pagination support\n\t\t// Skip posts that should be published at a future date\n\t\tif p.PublishAt.IsZero() || p.PublishAt.After(now) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip posts that are not published or being revised\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tres.Write(\"Post not found\")\n\t\treturn\n\t}\n\n\tif p.Status == blog.StatusRevised {\n\t\tres.Write(alerts.NewWarning(\"Tutorial content is being revised\"))\n\t}\n\n\t// TODO: Add post tags with links\n\tres.Write(\"# \" + p.Title + \"\\n\")\n\tres.Write(\"- Author(s): \" + p.Authors.String() + \"\\n\")\n\n\tif len(p.Editors) \u003e 0 {\n\t\tres.Write(\"- Editors(s): \" + p.Editors.String() + \"\\n\")\n\t}\n\n\tres.Write(\"- Publisher(s): \" + p.Publishers.String() + \"\\n\")\n\tres.Write(\"- Status: \" + p.Status.String() + \"\\n\")\n\tres.Write(\"- Content Hash: \" + p.ContentHash + \"\\n\")\n\tres.Write(\"- Created: \" + p.CreatedAt.UTC().Format(dateFormat) + \"\\n\")\n\tif !p.UpdatedAt.IsZero() {\n\t\tres.Write(\"- Updated: \" + p.UpdatedAt.UTC().Format(dateFormat) + \"\\n\")\n\t}\n\n\tif len(p.Tags) \u003e 0 {\n\t\tres.Write(\"- Tag(s): \" + renderTagLinks(p.Tags) + \"\\n\")\n\t}\n\n\tif p.Content != \"\" {\n\t\tres.Write(\"\\n\" + p.Content)\n\t}\n}\n\nfunc renderDrafts(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Drafts\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusDraft {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.CreatedAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Created: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderRevisions(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Revisions\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderTags(res *mux.ResponseWriter, req *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tags\\n\")\n\ttags.IterateTags(func(tag string) bool {\n\t\tres.Write(\"- [\" + tag + \"](\" + newRealmURL(\"tags/\"+tag) + \")\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPostsByTag(res *mux.ResponseWriter, req *mux.Request) {\n\ttag := req.GetVar(\"name\")\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tag `\" + tag + \"`\\n\")\n\n\tif tag == \"\" {\n\t\treturn\n\t}\n\n\ttags.IteratePosts(tag, func(p *blog.Post) bool {\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderMenu() string {\n\titems := []string{\n\t\t\"**[drafts](\" + newRealmURL(\"drafts\") + \")**\",\n\t\t\"**[revisions](\" + newRealmURL(\"revisions\") + \")**\",\n\t}\n\n\t// Add taxonomy entries\n\ttags.IterateTags(func(tag string) bool {\n\t\titems = append(items, \"**[\"+tag+\"](\"+newRealmURL(\"tags/\"+tag)+\")**\")\n\t\treturn false\n\t})\n\n\treturn strings.Join(items, \" \")\n}\n\nfunc renderTagLinks(tags []string) string {\n\tvar links []string\n\tfor _, t := range tags {\n\t\tlinks = append(links, \"[\"+t+\"](\"+newRealmURL(\"tags/\"+t)+\")\")\n\t}\n\treturn strings.Join(links, \", \")\n}\n\nfunc newRealmURL(renderPath string) string {\n\treturn \"/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/tutorials:\" + renderPath\n}\n"},{"name":"strategies.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog\"\n\tgnome \"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao\"\n)\n\ntype creationStrategy struct {\n\tslug, title, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (creationStrategy) Name() string {\n\treturn \"tutorial-creation\"\n}\n\nfunc (creationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (creationStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\nfunc (creationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s creationStrategy) Validate(*gnome.Proposal) error {\n\tif tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial URL slug already exists\")\n\t}\n\treturn nil\n}\n\nfunc (creationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s creationStrategy) Execute(*gnome.DAO) error {\n\tp := \u0026blog.Post{ // TODO: Support other fields like summary and tags\n\t\tSlug: s.slug,\n\t\tTitle: s.title,\n\t\tContentHash: s.contentHash,\n\t\tAuthors: s.authors,\n\t\tEditors: s.editors,\n\t\tStatus: blog.StatusDraft,\n\t\tTags: s.tags,\n\t\tCreatedAt: time.Now(),\n\t}\n\ttutorialsBlog.AddPost(p)\n\n\t// Update realm indexes\n\ttutorials.Index(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Index(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s creationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tauthors = strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t)\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | \" + s.slug + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype modificationStrategy struct {\n\tslug, title, currentContentHash, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (modificationStrategy) Name() string {\n\treturn \"tutorial-modification\"\n}\n\nfunc (modificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (modificationStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\nfunc (modificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s modificationStrategy) Validate(*gnome.Proposal) error {\n\tp, found := tutorialsBlog.GetPost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\n\tif s.currentContentHash != \"\" \u0026\u0026 s.currentContentHash != p.ContentHash {\n\t\treturn errors.New(\"tutorial's content has been previously modified\")\n\t}\n\n\tfor _, addr := range s.authors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"author already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tfor _, addr := range s.editors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"editor already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tvar seenTags avl.Tree\n\t\tfor _, t := range s.tags {\n\t\t\tif seenTags.Has(t) {\n\t\t\t\treturn errors.New(\"duplicated tag: \" + t)\n\t\t\t}\n\n\t\t\tseenTags.Set(t, struct{}{})\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (modificationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s modificationStrategy) Execute(*gnome.DAO) error {\n\tp, _ := tutorialsBlog.GetPost(s.slug)\n\n\tif s.title != \"\" {\n\t\tp.Title = s.title\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tp.Authors = append(p.Authors, s.authors...)\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\tp.Editors = append(p.Editors, s.editors...)\n\t}\n\n\t// Update tag index\n\tif len(s.tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t\tp.Tags = s.tags\n\t\ttags.Index(p)\n\t}\n\n\t// Changing content hash converts post to a revised until new content is setted\n\tif s.contentHash != \"\" {\n\t\tp.Status = blog.StatusRevised\n\t\tp.ContentHash = s.contentHash\n\t}\n\n\tp.UpdatedAt = time.Now()\n\treturn nil\n}\n\nfunc (s modificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \") |\\n\")\n\n\tif s.title != \"\" {\n\t\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\t}\n\n\tif s.contentHash != \"\" {\n\t\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\t\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\t\tb.WriteString(\"| Modifies Content Hash: | \" + s.currentContentHash + \" |\\n\")\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tauthors := strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype deletionStrategy struct {\n\tslug string\n}\n\nfunc (deletionStrategy) Name() string {\n\treturn \"tutorial-deletion\"\n}\n\nfunc (deletionStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (deletionStrategy) VotingPeriod() time.Duration {\n\treturn time.Minute * 30\n}\n\nfunc (deletionStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (deletionStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s deletionStrategy) Validate(*gnome.Proposal) error {\n\tif !tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\treturn nil\n}\n\nfunc (s deletionStrategy) Execute(*gnome.DAO) error {\n\tp, found := tutorialsBlog.RemovePost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial not found\")\n\t}\n\n\t// Update realm indexes\n\ttutorials.Remove(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s deletionStrategy) RenderParams() string {\n\treturn \"Slug: [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \")\"\n}\n"},{"name":"tutorials.gno","body":"package tutorials\n\nimport (\n\t\"gno.land/p/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/blog\"\n)\n\n// TODO: Define a realm description\nvar tutorialsBlog = blog.Blog{Title: \"Gno.me Tutorials\"}\n\nfunc mustGetPost(slug string) *blog.Post {\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tpanic(\"tutorial not found\")\n\t}\n\treturn p\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j1WxzEZ6wPRvo4Igg7JhWg9K8ksJYR0Ii1GCrhN+BciNnF4s/VjvV99g1SoL+SE/uuuFxy2iNTPGa4EVtaHAAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"tutorials","path":"gno.land/r/gnome/tutorials/pre1","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"indexes.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/gnome/blog\"\n)\n\nconst keyDateFmt = \"2006-01-02T15:04:05\"\n\nvar (\n\ttags tagIndex\n\ttutorials tutorialIndex\n)\n\ntype tagIndex struct {\n\tindex avl.Tree // string(tag) -\u003e *tutorialIndex\n}\n\nfunc (x *tagIndex) Index(p *blog.Post) (indexed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\t// Get the tutorials for the current tag\n\t\tvar (\n\t\t\tidx *tutorialIndex\n\t\t\tv, found = x.index.Get(tag)\n\t\t)\n\n\t\tif found {\n\t\t\tidx = v.(*tutorialIndex)\n\t\t} else {\n\t\t\tidx = \u0026tutorialIndex{}\n\t\t}\n\n\t\t// Index the tutorial\n\t\tidx.Index(p)\n\n\t\t// Keep track of indexing success\n\t\tindexed = x.index.Set(tag, idx) || indexed\n\t}\n\treturn\n}\n\nfunc (x *tagIndex) Remove(p *blog.Post) (removed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\tv, found := x.index.Get(tag)\n\t\tif !found {\n\t\t\t// Ignore tags that are not indexed\n\t\t\tcontinue\n\t\t}\n\n\t\tidx := v.(*tutorialIndex)\n\t\tif idx.Remove(p) \u0026\u0026 !removed {\n\t\t\tremoved = true\n\t\t}\n\n\t\tif idx.Size() == 0 {\n\t\t\t// Remove the tag from the index when empty\n\t\t\tx.index.Remove(tag)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x tagIndex) IterateTags(fn func(tag string) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(tag string, _ interface{}) bool {\n\t\treturn fn(tag)\n\t})\n}\n\nfunc (x tagIndex) IteratePosts(tag string, fn func(*blog.Post) bool) bool { // TODO: Support pagination\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.Iterate(\"\", \"\", func(p *blog.Post) bool {\n\t\treturn fn(p)\n\t})\n}\n\ntype tutorialIndex struct {\n\tindex avl.Tree // string(post creation time + post slug) -\u003e *blog.Post\n}\n\nfunc (x tutorialIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *tutorialIndex) Index(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\treturn x.index.Set(k, p)\n}\n\nfunc (x *tutorialIndex) Remove(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\t_, removed := x.index.Remove(k)\n\treturn removed\n}\n\nfunc (x tutorialIndex) Iterate(start, end string, fn func(*blog.Post) bool) bool {\n\treturn x.index.Iterate(start, end, func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*blog.Post))\n\t})\n}\n\nfunc newTutorialKey(p *blog.Post) string {\n\tif p != nil {\n\t\treturn p.CreatedAt.UTC().Format(keyDateFmt) + p.Slug\n\t}\n\n\t// By default create a key for the current block time\n\treturn time.Now().UTC().Format(keyDateFmt)\n}\n"},{"name":"params.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameCreation = \"tutorial-creation\"\n\tStrategyNameDeletion = \"tutorial-deletion\"\n\tStrategyNameLocking = \"tutorial-realm-locking\"\n\tStrategyNameModification = \"tutorial-modification\"\n\tStrategyNameParamsUpdate = \"tutorial-params-update\"\n)\n\nvar parameters struct {\n\tVotingPeriods gnome.DurationParams\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameCreation, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameDeletion, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameModification, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n}\n"},{"name":"public.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/gnome/blog\"\n)\n\nfunc Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.NotFoundHandler = func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(\"Path not found\")\n\t}\n\n\trouter.HandleFunc(\"\", renderBlog)\n\trouter.HandleFunc(\"posts\", renderBlog)\n\trouter.HandleFunc(\"posts/{slug}\", renderPost)\n\trouter.HandleFunc(\"drafts\", renderDrafts)\n\trouter.HandleFunc(\"revisions\", renderRevisions)\n\trouter.HandleFunc(\"tags\", renderTags)\n\trouter.HandleFunc(\"tags/{name}\", renderPostsByTag)\n\trouter.HandleFunc(\"params\", renderParams)\n\n\treturn renderAlerts() + router.Render(path)\n}\n\n// GetTutorialsBlog returns an invariant reference to the tutorials blog.\nfunc GetTutorialsBlog() blog.InvarBlog {\n\treturn blog.NewInvarBlog(\u0026tutorialsBlog)\n}\n\n// Publish publishes content for a tutorial.\n//\n// The submited content must be previously approved by a creation or modification proposal.\n//\n// Parameters:\n// - slug: Slug name of the tutorial (required)\n// - content: The tutorial content to publish (required)\nfunc Publish(slug, content string) {\n\tassertRealmIsNotLocked()\n\n\t// Check that content checksum matches the approved content for the tutorial post\n\tp := mustGetPost(slug)\n\tblog.AssertContentSha256Hash(content, p.ContentHash)\n\n\t// Add caller to the list of publishers\n\tcaller := std.GetOrigCaller()\n\tif !p.Publishers.HasAddress(caller) {\n\t\tp.Publishers = append(p.Publishers, caller)\n\t}\n\n\tif p.Status == blog.StatusDraft {\n\t\tp.PublishAt = time.Now()\n\t}\n\n\tp.Status = blog.StatusPublished\n\tp.Content = content\n\tp.UpdatedAt = time.Now()\n}\n"},{"name":"public_proposals.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n\tgnomeDAO \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst tutorialsPath = \"council/main/sections/tutorials\"\n\n// SubmitCreationProposal submits a new proposal to create a new tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial (required)\n// - tutorialContentHash: A SHA256 hash of the tutorial's content (required)\n// - tutorialContentURL: A URL where the tutorial's content is currently available (required)\n// - tutorialAuthors: List of author addresses (required)\n// - tutorialEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of authors and editors must be a newline separated list of addresses.\nfunc SubmitCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialContentURL,\n\ttutorialAuthors,\n\ttutorialEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\tassertSlugIsAvailable(tutorialSlug)\n\tblog.AssertTitleIsNotEmpty(tutorialTitle)\n\tblog.AssertIsSlug(tutorialSlug)\n\tblog.AssertIsSha256Hash(tutorialContentHash)\n\tblog.AssertIsContentURL(tutorialContentURL)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\tauthors := blog.MustParseStringToAddresses(tutorialAuthors)\n\tif len(authors) == 0 {\n\t\tpanic(\"tutorial authors must have at least one author's address\")\n\t}\n\n\tstrategy := creationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: authors,\n\t\teditors: blog.MustParseStringToAddresses(tutorialEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitModificationProposal submits a new proposal to modify a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial\n// - tutorialContentHash: A SHA256 hash of the new tutorial's content\n// - tutorialCurrentContentHash: A SHA256 hash of the current tutorial's content\n// - tutorialContentURL: A URL where the new tutorial's content is currently available\n// - tutorialNewAuthors: List of author addresses\n// - tutorialNewEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of new authors and editors must be a newline separated list of addresses.\n// If present, authors and editors are appended to the current list of authors and editors.\nfunc SubmitModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialCurrentContentHash,\n\ttutorialContentURL,\n\ttutorialNewAuthors,\n\ttutorialNewEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\ttutorialContentHash = strings.TrimSpace(tutorialContentHash)\n\tif tutorialContentHash != \"\" {\n\t\ttutorialCurrentContentHash = strings.TrimSpace(tutorialCurrentContentHash)\n\t\tif tutorialCurrentContentHash == \"\" {\n\t\t\tpanic(\"the current content hash of the tutorial to modify is required\")\n\t\t}\n\n\t\tblog.AssertIsSha256Hash(tutorialContentHash)\n\t\tblog.AssertIsSha256Hash(tutorialCurrentContentHash)\n\t\tblog.AssertIsContentURL(tutorialContentURL)\n\t}\n\n\tstrategy := modificationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcurrentContentHash: tutorialCurrentContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: blog.MustParseStringToAddresses(tutorialNewAuthors),\n\t\teditors: blog.MustParseStringToAddresses(tutorialNewEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitDeletionProposal submits a new proposal to delete a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\nfunc SubmitDeletionProposal(proposalTitle, proposalDescription, tutorialSlug string) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\tstrategy := deletionStrategy{tutorialSlug}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitLockingProposal submits a new proposal to lock the realm.\n//\n// Locking the realm \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 33% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by members with `admin` role.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - realmPath: Path of the realm that should be allowed to import state data\n//\n// The optional realm path authorizes a realm to import the state data once the realm is locked.\nfunc SubmitLockingProposal(proposalTitle, proposalDescription, realmPath string) uint64 {\n\tassertHasAdminRole(std.GetOrigCaller())\n\n\tif realmPath != \"\" \u0026\u0026 !strings.HasPrefix(realmPath, \"gno.land/r/\") {\n\t\tpanic(`realm path must start with \"gno.land/r/\"`)\n\t}\n\n\tstrategy := lockingStrategy{realmPath}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - votingPeriodCreation: Voting period for tutorial creation proposals\n// - votingPeriodModification: Voting period for tutorial modification proposals\n// - votingPeriodDeletion: Voting period for tutorial deletion proposals\n// - votingPeriodLocking: Voting period for realm locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription string,\n\tvotingPeriodCreation,\n\tvotingPeriodModification,\n\tvotingPeriodDeletion,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tstrategy := paramsUpdateStrategy{}\n\tif votingPeriodCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameCreation, period)\n\t}\n\n\tif votingPeriodModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameModification, period)\n\t}\n\n\tif votingPeriodDeletion \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDeletion) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameDeletion, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\nfunc assertSlugIsAvailable(slug string) {\n\tif tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial URL slug already exists\")\n\t}\n}\n\nfunc assertTutorialExists(slug string) {\n\tif !tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial not found\")\n\t}\n}\n\nfunc assertValidTags(tags []string) {\n\tfor _, t := range tags {\n\t\tif !blog.IsSlug(t) {\n\t\t\tpanic(\"invalid tag: \" + t)\n\t\t}\n\t}\n}\n\nfunc assertHasAdminRole(addr std.Address) {\n\tdao := gnomeDAO.GetDAO(tutorialsPath)\n\tm, found := getMember(dao, addr)\n\tif !found {\n\t\tpanic(\"address is not a member of tutorials DAO: \" + addr.String())\n\t}\n\n\tfor _, r := range m.Roles {\n\t\tif r == gnomeDAO.RoleAdmin {\n\t\t\t// Member has admin role\n\t\t\treturn\n\t\t}\n\t}\n\n\tpanic(\"member doesn't have admin role: \" + addr.String())\n}\n\nfunc getMember(dao gnome.InvarDAO, addr std.Address) (gnome.Member, bool) {\n\tfor _, m := range dao.Members() {\n\t\tif m.Address == addr {\n\t\t\treturn m, true\n\t\t}\n\t}\n\treturn gnome.Member{}, false\n}\n"},{"name":"render.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/gnome/alerts\"\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nconst (\n\tdateFormat = \"2006-01-02 15:04 MST\"\n\tshortDateFormat = \"Jan 2, 2006\"\n)\n\nfunc renderBlog(res *mux.ResponseWriter, _ *mux.Request) {\n\t// Write header\n\tres.Write(\"# \" + tutorialsBlog.Title + \"\\n\")\n\tif tutorialsBlog.Description != \"\" {\n\t\tres.Write(tutorialsBlog.Description + \"\\n\\n\")\n\t}\n\n\t// Write tutorials menu\n\tres.Write(renderMenu() + \"\\n\\n---\\n\")\n\n\t// Write list of published tutorials\n\tnow := time.Now()\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add post pagination support\n\t\t// Skip posts that should be published at a future date\n\t\tif p.PublishAt.IsZero() || p.PublishAt.After(now) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip posts that are not published or being revised\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tres.Write(\"Post not found\")\n\t\treturn\n\t}\n\n\tif p.Status == blog.StatusRevised {\n\t\tres.Write(alerts.NewWarning(\"Tutorial content is being revised\"))\n\t}\n\n\t// TODO: Add post tags with links\n\tres.Write(\"# \" + p.Title + \"\\n\")\n\tres.Write(\"- Author(s): \" + p.Authors.String() + \"\\n\")\n\n\tif len(p.Editors) \u003e 0 {\n\t\tres.Write(\"- Editors(s): \" + p.Editors.String() + \"\\n\")\n\t}\n\n\tres.Write(\"- Publisher(s): \" + p.Publishers.String() + \"\\n\")\n\tres.Write(\"- Status: \" + p.Status.String() + \"\\n\")\n\tres.Write(\"- Content Hash: \" + p.ContentHash + \"\\n\")\n\tres.Write(\"- Created: \" + p.CreatedAt.UTC().Format(dateFormat) + \"\\n\")\n\tif !p.UpdatedAt.IsZero() {\n\t\tres.Write(\"- Updated: \" + p.UpdatedAt.UTC().Format(dateFormat) + \"\\n\")\n\t}\n\n\tif len(p.Tags) \u003e 0 {\n\t\tres.Write(\"- Tag(s): \" + renderTagLinks(p.Tags) + \"\\n\")\n\t}\n\n\tif p.Content != \"\" {\n\t\tres.Write(\"\\n\" + p.Content)\n\t}\n}\n\nfunc renderDrafts(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Drafts\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusDraft {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.CreatedAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Created: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderRevisions(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Revisions\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderTags(res *mux.ResponseWriter, req *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tags\\n\")\n\ttags.IterateTags(func(tag string) bool {\n\t\tres.Write(\"- [\" + tag + \"](\" + newRealmURL(\"tags/\"+tag) + \")\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPostsByTag(res *mux.ResponseWriter, req *mux.Request) {\n\ttag := req.GetVar(\"name\")\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tag `\" + tag + \"`\\n\")\n\n\tif tag == \"\" {\n\t\treturn\n\t}\n\n\ttags.IteratePosts(tag, func(p *blog.Post) bool {\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderParams(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderAlerts() string {\n\tif locked {\n\t\tmsg := \"Realm is locked\"\n\t\tif nextVersionRealmPath != \"\" {\n\t\t\tlink := alerts.NewLink(\"https://\"+nextVersionRealmPath, nextVersionRealmPath)\n\t\t\tmsg += \"\u003c/br\u003eThis realm is deprecated in favor of a new version found at \" + link\n\t\t}\n\n\t\treturn alerts.NewError(msg)\n\t}\n\treturn \"\"\n}\n\nfunc renderMenu() string {\n\titems := []string{\n\t\t\"**[drafts](\" + newRealmURL(\"drafts\") + \")**\",\n\t\t\"**[revisions](\" + newRealmURL(\"revisions\") + \")**\",\n\t}\n\n\t// Add taxonomy entries\n\ttags.IterateTags(func(tag string) bool {\n\t\titems = append(items, \"**[\"+tag+\"](\"+newRealmURL(\"tags/\"+tag)+\")**\")\n\t\treturn false\n\t})\n\n\treturn strings.Join(items, \" \")\n}\n\nfunc renderTagLinks(tags []string) string {\n\tvar links []string\n\tfor _, t := range tags {\n\t\tlinks = append(links, \"[\"+t+\"](\"+newRealmURL(\"tags/\"+t)+\")\")\n\t}\n\treturn strings.Join(links, \", \")\n}\n\nfunc newRealmURL(renderPath string) string {\n\treturn \"/r/gnome/tutorials:\" + renderPath\n}\n"},{"name":"strategy_lock.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype lockingStrategy struct {\n\trealmPath string\n}\n\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\nfunc (lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\t// Allow modification of the newxt version package path when realm is locked\n\tif locked \u0026\u0026 nextVersionRealmPath == \"\" \u0026\u0026 s.realmPath != \"\" {\n\t\treturn nil\n\t}\n\n\tif locked {\n\t\treturn errors.New(\"realm is already locked\")\n\t}\n\treturn nil\n}\n\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s lockingStrategy) Execute(*gnome.DAO) error {\n\tlocked = true\n\tif s.realmPath != \"\" {\n\t\tnextVersionRealmPath = s.realmPath\n\t}\n\treturn nil\n}\n\nfunc (s lockingStrategy) RenderParams() string {\n\tif s.realmPath != \"\" {\n\t\treturn \"Next Realm Path: [\" + s.realmPath + \"](https://\" + s.realmPath + \")\"\n\t}\n\treturn \"\"\n}\n"},{"name":"strategy_params.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype paramsUpdateStrategy struct {\n\tvotingPeriods gnome.DurationParams\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"| Voting Period for `\" + name + \"`: | \" + gnome.HumanizeDuration(period) + \" |\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"strategy_tutorials.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype creationStrategy struct {\n\tslug, title, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (creationStrategy) Name() string {\n\treturn StrategyNameCreation\n}\n\nfunc (creationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (creationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameCreation)\n\treturn period\n}\n\nfunc (creationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s creationStrategy) Validate(*gnome.Proposal) error {\n\tif tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial URL slug already exists\")\n\t}\n\treturn nil\n}\n\nfunc (creationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s creationStrategy) Execute(*gnome.DAO) error {\n\tp := \u0026blog.Post{ // TODO: Support other fields like summary and tags\n\t\tSlug: s.slug,\n\t\tTitle: s.title,\n\t\tContentHash: s.contentHash,\n\t\tAuthors: s.authors,\n\t\tEditors: s.editors,\n\t\tStatus: blog.StatusDraft,\n\t\tTags: s.tags,\n\t\tCreatedAt: time.Now(),\n\t}\n\ttutorialsBlog.AddPost(p)\n\n\t// Update realm indexes\n\ttutorials.Index(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Index(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s creationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tauthors = strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t)\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | \" + s.slug + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype modificationStrategy struct {\n\tslug, title, currentContentHash, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (modificationStrategy) Name() string {\n\treturn StrategyNameModification\n}\n\nfunc (modificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (modificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameModification)\n\treturn period\n}\n\nfunc (modificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s modificationStrategy) Validate(*gnome.Proposal) error {\n\tp, found := tutorialsBlog.GetPost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\n\tif s.currentContentHash != \"\" \u0026\u0026 s.currentContentHash != p.ContentHash {\n\t\treturn errors.New(\"tutorial's content has been previously modified\")\n\t}\n\n\tfor _, addr := range s.authors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"author already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tfor _, addr := range s.editors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"editor already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tvar seenTags avl.Tree\n\t\tfor _, t := range s.tags {\n\t\t\tif seenTags.Has(t) {\n\t\t\t\treturn errors.New(\"duplicated tag: \" + t)\n\t\t\t}\n\n\t\t\tseenTags.Set(t, struct{}{})\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (modificationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s modificationStrategy) Execute(*gnome.DAO) error {\n\tp, _ := tutorialsBlog.GetPost(s.slug)\n\n\tif s.title != \"\" {\n\t\tp.Title = s.title\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tp.Authors = append(p.Authors, s.authors...)\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\tp.Editors = append(p.Editors, s.editors...)\n\t}\n\n\t// Update tag index\n\tif len(s.tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t\tp.Tags = s.tags\n\t\ttags.Index(p)\n\t}\n\n\t// Changing content hash converts post to a revised until new content is setted\n\tif s.contentHash != \"\" {\n\t\tp.Status = blog.StatusRevised\n\t\tp.ContentHash = s.contentHash\n\t}\n\n\tp.UpdatedAt = time.Now()\n\treturn nil\n}\n\nfunc (s modificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \") |\\n\")\n\n\tif s.title != \"\" {\n\t\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\t}\n\n\tif s.contentHash != \"\" {\n\t\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\t\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\t\tb.WriteString(\"| Modifies Content Hash: | \" + s.currentContentHash + \" |\\n\")\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tauthors := strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype deletionStrategy struct {\n\tslug string\n}\n\nfunc (deletionStrategy) Name() string {\n\treturn StrategyNameDeletion\n}\n\nfunc (deletionStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (deletionStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDeletion)\n\treturn period\n}\n\nfunc (deletionStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (deletionStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s deletionStrategy) Validate(*gnome.Proposal) error {\n\tif !tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\treturn nil\n}\n\nfunc (s deletionStrategy) Execute(*gnome.DAO) error {\n\tp, found := tutorialsBlog.RemovePost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial not found\")\n\t}\n\n\t// Update realm indexes\n\ttutorials.Remove(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s deletionStrategy) RenderParams() string {\n\treturn \"Slug: [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \")\"\n}\n"},{"name":"tutorials.gno","body":"package tutorials\n\nimport (\n\t\"gno.land/p/gnome/blog\"\n)\n\nvar (\n\tlocked bool\n\tnextVersionRealmPath string\n\n\ttutorialsBlog = blog.Blog{Title: \"Gno.me Tutorials\"} // TODO: Define a realm description\n)\n\nfunc mustGetPost(slug string) *blog.Post {\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tpanic(\"tutorial not found\")\n\t}\n\treturn p\n}\n\nfunc assertRealmIsNotLocked() {\n\tif locked {\n\t\tpanic(\"realm is locked\")\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P/Lkua8gScqwlm6VHkkFl2263LxRHmEaC9qwt3FQThLW70xSadSkh65bfjPB0YkmoTiRc/OKIaAQE9Q1a+VIAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"tutorials","path":"gno.land/r/gnome/tutorials/pre2","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"indexes.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/gnome/blog\"\n)\n\nconst keyDateFmt = \"2006-01-02T15:04:05\"\n\nvar (\n\ttags tagIndex\n\ttutorials tutorialIndex\n)\n\ntype tagIndex struct {\n\tindex avl.Tree // string(tag) -\u003e *tutorialIndex\n}\n\nfunc (x *tagIndex) Index(p *blog.Post) (indexed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\t// Get the tutorials for the current tag\n\t\tvar (\n\t\t\tidx *tutorialIndex\n\t\t\tv, found = x.index.Get(tag)\n\t\t)\n\n\t\tif found {\n\t\t\tidx = v.(*tutorialIndex)\n\t\t} else {\n\t\t\tidx = \u0026tutorialIndex{}\n\t\t}\n\n\t\t// Index the tutorial\n\t\tidx.Index(p)\n\n\t\t// Keep track of indexing success\n\t\tindexed = x.index.Set(tag, idx) || indexed\n\t}\n\treturn\n}\n\nfunc (x *tagIndex) Remove(p *blog.Post) (removed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\tv, found := x.index.Get(tag)\n\t\tif !found {\n\t\t\t// Ignore tags that are not indexed\n\t\t\tcontinue\n\t\t}\n\n\t\tidx := v.(*tutorialIndex)\n\t\tif idx.Remove(p) \u0026\u0026 !removed {\n\t\t\tremoved = true\n\t\t}\n\n\t\tif idx.Size() == 0 {\n\t\t\t// Remove the tag from the index when empty\n\t\t\tx.index.Remove(tag)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x tagIndex) IterateTags(fn func(tag string) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(tag string, _ interface{}) bool {\n\t\treturn fn(tag)\n\t})\n}\n\nfunc (x tagIndex) IteratePosts(tag string, fn func(*blog.Post) bool) bool { // TODO: Support pagination\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.Iterate(\"\", \"\", func(p *blog.Post) bool {\n\t\treturn fn(p)\n\t})\n}\n\ntype tutorialIndex struct {\n\tindex avl.Tree // string(post creation time + post slug) -\u003e *blog.Post\n}\n\nfunc (x tutorialIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *tutorialIndex) Index(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\treturn x.index.Set(k, p)\n}\n\nfunc (x *tutorialIndex) Remove(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\t_, removed := x.index.Remove(k)\n\treturn removed\n}\n\nfunc (x tutorialIndex) Iterate(start, end string, fn func(*blog.Post) bool) bool {\n\treturn x.index.Iterate(start, end, func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*blog.Post))\n\t})\n}\n\nfunc newTutorialKey(p *blog.Post) string {\n\tif p != nil {\n\t\treturn p.CreatedAt.UTC().Format(keyDateFmt) + p.Slug\n\t}\n\n\t// By default create a key for the current block time\n\treturn time.Now().UTC().Format(keyDateFmt)\n}\n"},{"name":"params.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameCreation = \"tutorial-creation\"\n\tStrategyNameDeletion = \"tutorial-deletion\"\n\tStrategyNameLocking = \"tutorial-realm-locking\"\n\tStrategyNameModification = \"tutorial-modification\"\n\tStrategyNameParamsUpdate = \"tutorial-params-update\"\n)\n\nvar parameters struct {\n\tVotingPeriods gnome.DurationParams\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameCreation, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameDeletion, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameModification, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n}\n"},{"name":"public.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/gnome/blog\"\n)\n\nfunc Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.NotFoundHandler = func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(\"Path not found\")\n\t}\n\n\trouter.HandleFunc(\"\", renderBlog)\n\trouter.HandleFunc(\"posts\", renderBlog)\n\trouter.HandleFunc(\"posts/{slug}\", renderPost)\n\trouter.HandleFunc(\"drafts\", renderDrafts)\n\trouter.HandleFunc(\"revisions\", renderRevisions)\n\trouter.HandleFunc(\"tags\", renderTags)\n\trouter.HandleFunc(\"tags/{name}\", renderPostsByTag)\n\trouter.HandleFunc(\"params\", renderParams)\n\n\treturn renderAlerts() + router.Render(path)\n}\n\n// GetTutorialsBlog returns an invariant reference to the tutorials blog.\nfunc GetTutorialsBlog() blog.InvarBlog {\n\treturn blog.NewInvarBlog(\u0026tutorialsBlog)\n}\n\n// Publish publishes content for a tutorial.\n//\n// The submited content must be previously approved by a creation or modification proposal.\n//\n// Parameters:\n// - slug: Slug name of the tutorial (required)\n// - content: The tutorial content to publish (required)\nfunc Publish(slug, content string) {\n\tassertRealmIsNotLocked()\n\n\t// Check that content checksum matches the approved content for the tutorial post\n\tp := mustGetPost(slug)\n\tblog.AssertContentSha256Hash(content, p.ContentHash)\n\n\t// Add caller to the list of publishers\n\tcaller := std.GetOrigCaller()\n\tif !p.Publishers.HasAddress(caller) {\n\t\tp.Publishers = append(p.Publishers, caller)\n\t}\n\n\tif p.Status == blog.StatusDraft {\n\t\tp.PublishAt = time.Now()\n\t}\n\n\tp.Status = blog.StatusPublished\n\tp.Content = content\n\tp.UpdatedAt = time.Now()\n}\n"},{"name":"public_proposals.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n\tgnomeDAO \"gno.land/r/gnome/dao/pre1\"\n)\n\nconst tutorialsPath = \"council/main/sections/tutorials\"\n\n// SubmitCreationProposal submits a new proposal to create a new tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial (required)\n// - tutorialContentHash: A SHA256 hash of the tutorial's content (required)\n// - tutorialContentURL: A URL where the tutorial's content is currently available (required)\n// - tutorialAuthors: List of author addresses (required)\n// - tutorialEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of authors and editors must be a newline separated list of addresses.\nfunc SubmitCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialContentURL,\n\ttutorialAuthors,\n\ttutorialEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\tassertSlugIsAvailable(tutorialSlug)\n\tblog.AssertTitleIsNotEmpty(tutorialTitle)\n\tblog.AssertIsSlug(tutorialSlug)\n\tblog.AssertIsSha256Hash(tutorialContentHash)\n\tblog.AssertIsContentURL(tutorialContentURL)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\tauthors := blog.MustParseStringToAddresses(tutorialAuthors)\n\tif len(authors) == 0 {\n\t\tpanic(\"tutorial authors must have at least one author's address\")\n\t}\n\n\tstrategy := creationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: authors,\n\t\teditors: blog.MustParseStringToAddresses(tutorialEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitModificationProposal submits a new proposal to modify a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial\n// - tutorialContentHash: A SHA256 hash of the new tutorial's content\n// - tutorialCurrentContentHash: A SHA256 hash of the current tutorial's content\n// - tutorialContentURL: A URL where the new tutorial's content is currently available\n// - tutorialNewAuthors: List of author addresses\n// - tutorialNewEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of new authors and editors must be a newline separated list of addresses.\n// If present, authors and editors are appended to the current list of authors and editors.\nfunc SubmitModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialCurrentContentHash,\n\ttutorialContentURL,\n\ttutorialNewAuthors,\n\ttutorialNewEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\ttutorialContentHash = strings.TrimSpace(tutorialContentHash)\n\tif tutorialContentHash != \"\" {\n\t\ttutorialCurrentContentHash = strings.TrimSpace(tutorialCurrentContentHash)\n\t\tif tutorialCurrentContentHash == \"\" {\n\t\t\tpanic(\"the current content hash of the tutorial to modify is required\")\n\t\t}\n\n\t\tblog.AssertIsSha256Hash(tutorialContentHash)\n\t\tblog.AssertIsSha256Hash(tutorialCurrentContentHash)\n\t\tblog.AssertIsContentURL(tutorialContentURL)\n\t}\n\n\tstrategy := modificationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcurrentContentHash: tutorialCurrentContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: blog.MustParseStringToAddresses(tutorialNewAuthors),\n\t\teditors: blog.MustParseStringToAddresses(tutorialNewEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitDeletionProposal submits a new proposal to delete a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\nfunc SubmitDeletionProposal(proposalTitle, proposalDescription, tutorialSlug string) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\tstrategy := deletionStrategy{tutorialSlug}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitLockingProposal submits a new proposal to lock the realm.\n//\n// Locking the realm \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 33% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by members with `admin` role.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - realmPath: Path of the realm that should be allowed to import state data\n//\n// The optional realm path authorizes a realm to import the state data once the realm is locked.\nfunc SubmitLockingProposal(proposalTitle, proposalDescription, realmPath string) uint64 {\n\tassertHasAdminRole(std.GetOrigCaller())\n\n\tif realmPath != \"\" \u0026\u0026 !strings.HasPrefix(realmPath, \"gno.land/r/\") {\n\t\tpanic(`realm path must start with \"gno.land/r/\"`)\n\t}\n\n\tstrategy := lockingStrategy{realmPath}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - votingPeriodCreation: Voting period for tutorial creation proposals\n// - votingPeriodModification: Voting period for tutorial modification proposals\n// - votingPeriodDeletion: Voting period for tutorial deletion proposals\n// - votingPeriodLocking: Voting period for realm locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription string,\n\tvotingPeriodCreation,\n\tvotingPeriodModification,\n\tvotingPeriodDeletion,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tstrategy := paramsUpdateStrategy{}\n\tif votingPeriodCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameCreation, period)\n\t}\n\n\tif votingPeriodModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameModification, period)\n\t}\n\n\tif votingPeriodDeletion \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDeletion) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameDeletion, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\nfunc assertSlugIsAvailable(slug string) {\n\tif tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial URL slug already exists\")\n\t}\n}\n\nfunc assertTutorialExists(slug string) {\n\tif !tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial not found\")\n\t}\n}\n\nfunc assertValidTags(tags []string) {\n\tfor _, t := range tags {\n\t\tif !blog.IsSlug(t) {\n\t\t\tpanic(\"invalid tag: \" + t)\n\t\t}\n\t}\n}\n\nfunc assertHasAdminRole(addr std.Address) {\n\tdao := gnomeDAO.GetDAO(tutorialsPath)\n\tm, found := getMember(dao, addr)\n\tif !found {\n\t\tpanic(\"address is not a member of tutorials DAO: \" + addr.String())\n\t}\n\n\tfor _, r := range m.Roles {\n\t\tif r == gnomeDAO.RoleAdmin {\n\t\t\t// Member has admin role\n\t\t\treturn\n\t\t}\n\t}\n\n\tpanic(\"member doesn't have admin role: \" + addr.String())\n}\n\nfunc getMember(dao gnome.InvarDAO, addr std.Address) (gnome.Member, bool) {\n\tfor _, m := range dao.Members() {\n\t\tif m.Address == addr {\n\t\t\treturn m, true\n\t\t}\n\t}\n\treturn gnome.Member{}, false\n}\n"},{"name":"render.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/gnome/alerts\"\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nconst (\n\tdateFormat = \"2006-01-02 15:04 MST\"\n\tshortDateFormat = \"Jan 2, 2006\"\n)\n\nfunc renderBlog(res *mux.ResponseWriter, _ *mux.Request) {\n\t// Write header\n\tres.Write(\"# \" + tutorialsBlog.Title + \"\\n\")\n\tif tutorialsBlog.Description != \"\" {\n\t\tres.Write(tutorialsBlog.Description + \"\\n\\n\")\n\t}\n\n\t// Write tutorials menu\n\tres.Write(renderMenu() + \"\\n\\n---\\n\")\n\n\t// Write list of published tutorials\n\tnow := time.Now()\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add post pagination support\n\t\t// Skip posts that should be published at a future date\n\t\tif p.PublishAt.IsZero() || p.PublishAt.After(now) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip posts that are not published or being revised\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tres.Write(\"Post not found\")\n\t\treturn\n\t}\n\n\tif p.Status == blog.StatusRevised {\n\t\tres.Write(alerts.NewWarning(\"Tutorial content is being revised\"))\n\t}\n\n\t// TODO: Add post tags with links\n\tres.Write(\"# \" + p.Title + \"\\n\")\n\tres.Write(\"- Author(s): \" + p.Authors.String() + \"\\n\")\n\n\tif len(p.Editors) \u003e 0 {\n\t\tres.Write(\"- Editors(s): \" + p.Editors.String() + \"\\n\")\n\t}\n\n\tres.Write(\"- Publisher(s): \" + p.Publishers.String() + \"\\n\")\n\tres.Write(\"- Status: \" + p.Status.String() + \"\\n\")\n\tres.Write(\"- Content Hash: \" + p.ContentHash + \"\\n\")\n\tres.Write(\"- Created: \" + p.CreatedAt.UTC().Format(dateFormat) + \"\\n\")\n\tif !p.UpdatedAt.IsZero() {\n\t\tres.Write(\"- Updated: \" + p.UpdatedAt.UTC().Format(dateFormat) + \"\\n\")\n\t}\n\n\tif len(p.Tags) \u003e 0 {\n\t\tres.Write(\"- Tag(s): \" + renderTagLinks(p.Tags) + \"\\n\")\n\t}\n\n\tif p.Content != \"\" {\n\t\tres.Write(\"\\n\" + p.Content)\n\t}\n}\n\nfunc renderDrafts(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Drafts\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusDraft {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.CreatedAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Created: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderRevisions(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Revisions\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderTags(res *mux.ResponseWriter, req *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tags\\n\")\n\ttags.IterateTags(func(tag string) bool {\n\t\tres.Write(\"- [\" + tag + \"](\" + newRealmURL(\"tags/\"+tag) + \")\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPostsByTag(res *mux.ResponseWriter, req *mux.Request) {\n\ttag := req.GetVar(\"name\")\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tag `\" + tag + \"`\\n\")\n\n\tif tag == \"\" {\n\t\treturn\n\t}\n\n\ttags.IteratePosts(tag, func(p *blog.Post) bool {\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderParams(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderAlerts() string {\n\tif locked {\n\t\tmsg := \"Realm is locked\"\n\t\tif nextVersionRealmPath != \"\" {\n\t\t\tlink := alerts.NewLink(\"https://\"+nextVersionRealmPath, nextVersionRealmPath)\n\t\t\tmsg += \"\u003c/br\u003eThis realm is deprecated in favor of a new version found at \" + link\n\t\t}\n\n\t\treturn alerts.NewError(msg)\n\t}\n\treturn \"\"\n}\n\nfunc renderMenu() string {\n\titems := []string{\n\t\t\"**[drafts](\" + newRealmURL(\"drafts\") + \")**\",\n\t\t\"**[revisions](\" + newRealmURL(\"revisions\") + \")**\",\n\t}\n\n\t// Add taxonomy entries\n\ttags.IterateTags(func(tag string) bool {\n\t\titems = append(items, \"**[\"+tag+\"](\"+newRealmURL(\"tags/\"+tag)+\")**\")\n\t\treturn false\n\t})\n\n\treturn strings.Join(items, \" \")\n}\n\nfunc renderTagLinks(tags []string) string {\n\tvar links []string\n\tfor _, t := range tags {\n\t\tlinks = append(links, \"[\"+t+\"](\"+newRealmURL(\"tags/\"+t)+\")\")\n\t}\n\treturn strings.Join(links, \", \")\n}\n\nfunc newRealmURL(renderPath string) string {\n\t// TODO: Get the prefix for the current realm package path\n\treturn \"/r/gnome/tutorials/pre2:\" + renderPath\n}\n"},{"name":"strategy_lock.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype lockingStrategy struct {\n\trealmPath string\n}\n\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\nfunc (lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\t// Allow modification of the newxt version package path when realm is locked\n\tif locked \u0026\u0026 nextVersionRealmPath == \"\" \u0026\u0026 s.realmPath != \"\" {\n\t\treturn nil\n\t}\n\n\tif locked {\n\t\treturn errors.New(\"realm is already locked\")\n\t}\n\treturn nil\n}\n\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s lockingStrategy) Execute(*gnome.DAO) error {\n\tlocked = true\n\tif s.realmPath != \"\" {\n\t\tnextVersionRealmPath = s.realmPath\n\t}\n\treturn nil\n}\n\nfunc (s lockingStrategy) RenderParams() string {\n\tif s.realmPath != \"\" {\n\t\treturn \"Next Realm Path: [\" + s.realmPath + \"](https://\" + s.realmPath + \")\"\n\t}\n\treturn \"\"\n}\n"},{"name":"strategy_params.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype paramsUpdateStrategy struct {\n\tvotingPeriods gnome.DurationParams\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"| Voting Period for `\" + name + \"`: | \" + gnome.HumanizeDuration(period) + \" |\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"strategy_tutorials.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype creationStrategy struct {\n\tslug, title, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (creationStrategy) Name() string {\n\treturn StrategyNameCreation\n}\n\nfunc (creationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (creationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameCreation)\n\treturn period\n}\n\nfunc (creationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s creationStrategy) Validate(*gnome.Proposal) error {\n\tif tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial URL slug already exists\")\n\t}\n\treturn nil\n}\n\nfunc (creationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s creationStrategy) Execute(*gnome.DAO) error {\n\tp := \u0026blog.Post{ // TODO: Support other fields like summary and tags\n\t\tSlug: s.slug,\n\t\tTitle: s.title,\n\t\tContentHash: s.contentHash,\n\t\tAuthors: s.authors,\n\t\tEditors: s.editors,\n\t\tStatus: blog.StatusDraft,\n\t\tTags: s.tags,\n\t\tCreatedAt: time.Now(),\n\t}\n\ttutorialsBlog.AddPost(p)\n\n\t// Update realm indexes\n\ttutorials.Index(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Index(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s creationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tauthors = strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t)\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | \" + s.slug + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype modificationStrategy struct {\n\tslug, title, currentContentHash, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (modificationStrategy) Name() string {\n\treturn StrategyNameModification\n}\n\nfunc (modificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (modificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameModification)\n\treturn period\n}\n\nfunc (modificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s modificationStrategy) Validate(*gnome.Proposal) error {\n\tp, found := tutorialsBlog.GetPost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\n\tif s.currentContentHash != \"\" \u0026\u0026 s.currentContentHash != p.ContentHash {\n\t\treturn errors.New(\"tutorial's content has been previously modified\")\n\t}\n\n\tfor _, addr := range s.authors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"author already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tfor _, addr := range s.editors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"editor already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tvar seenTags avl.Tree\n\t\tfor _, t := range s.tags {\n\t\t\tif seenTags.Has(t) {\n\t\t\t\treturn errors.New(\"duplicated tag: \" + t)\n\t\t\t}\n\n\t\t\tseenTags.Set(t, struct{}{})\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (modificationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s modificationStrategy) Execute(*gnome.DAO) error {\n\tp, _ := tutorialsBlog.GetPost(s.slug)\n\n\tif s.title != \"\" {\n\t\tp.Title = s.title\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tp.Authors = append(p.Authors, s.authors...)\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\tp.Editors = append(p.Editors, s.editors...)\n\t}\n\n\t// Update tag index\n\tif len(s.tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t\tp.Tags = s.tags\n\t\ttags.Index(p)\n\t}\n\n\t// Changing content hash converts post to a revised until new content is setted\n\tif s.contentHash != \"\" {\n\t\tp.Status = blog.StatusRevised\n\t\tp.ContentHash = s.contentHash\n\t}\n\n\tp.UpdatedAt = time.Now()\n\treturn nil\n}\n\nfunc (s modificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \") |\\n\")\n\n\tif s.title != \"\" {\n\t\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\t}\n\n\tif s.contentHash != \"\" {\n\t\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\t\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\t\tb.WriteString(\"| Modifies Content Hash: | \" + s.currentContentHash + \" |\\n\")\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tauthors := strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype deletionStrategy struct {\n\tslug string\n}\n\nfunc (deletionStrategy) Name() string {\n\treturn StrategyNameDeletion\n}\n\nfunc (deletionStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (deletionStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDeletion)\n\treturn period\n}\n\nfunc (deletionStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (deletionStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s deletionStrategy) Validate(*gnome.Proposal) error {\n\tif !tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\treturn nil\n}\n\nfunc (s deletionStrategy) Execute(*gnome.DAO) error {\n\tp, found := tutorialsBlog.RemovePost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial not found\")\n\t}\n\n\t// Update realm indexes\n\ttutorials.Remove(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s deletionStrategy) RenderParams() string {\n\treturn \"Slug: [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \")\"\n}\n"},{"name":"tutorials.gno","body":"package tutorials\n\nimport (\n\t\"gno.land/p/gnome/blog\"\n)\n\nvar (\n\tlocked bool\n\tnextVersionRealmPath string\n\n\ttutorialsBlog = blog.Blog{Title: \"Gno.me Tutorials\"} // TODO: Define a realm description\n)\n\nfunc mustGetPost(slug string) *blog.Post {\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tpanic(\"tutorial not found\")\n\t}\n\treturn p\n}\n\nfunc assertRealmIsNotLocked() {\n\tif locked {\n\t\tpanic(\"realm is locked\")\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j5L6v3ffTM45tiG3kJY0vj/JP0RZ+/1HJc3W34yn/6iahXobSLBPogrGTQ25s1PQsubSpVcVJ+F2JMshBR3tDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","package":{"name":"tutorials","path":"gno.land/r/gnome/tutorials/pre3","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"indexes.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/gnome/blog\"\n)\n\nconst keyDateFmt = \"2006-01-02T15:04:05\"\n\nvar (\n\ttags tagIndex\n\ttutorials tutorialIndex\n)\n\ntype tagIndex struct {\n\tindex avl.Tree // string(tag) -\u003e *tutorialIndex\n}\n\nfunc (x *tagIndex) Index(p *blog.Post) (indexed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\t// Get the tutorials for the current tag\n\t\tvar (\n\t\t\tidx *tutorialIndex\n\t\t\tv, found = x.index.Get(tag)\n\t\t)\n\n\t\tif found {\n\t\t\tidx = v.(*tutorialIndex)\n\t\t} else {\n\t\t\tidx = \u0026tutorialIndex{}\n\t\t}\n\n\t\t// Index the tutorial\n\t\tidx.Index(p)\n\n\t\t// Keep track of indexing success\n\t\tindexed = x.index.Set(tag, idx) || indexed\n\t}\n\treturn\n}\n\nfunc (x *tagIndex) Remove(p *blog.Post) (removed bool) {\n\tif p == nil {\n\t\treturn\n\t}\n\n\tfor _, tag := range p.Tags {\n\t\tv, found := x.index.Get(tag)\n\t\tif !found {\n\t\t\t// Ignore tags that are not indexed\n\t\t\tcontinue\n\t\t}\n\n\t\tidx := v.(*tutorialIndex)\n\t\tif idx.Remove(p) \u0026\u0026 !removed {\n\t\t\tremoved = true\n\t\t}\n\n\t\tif idx.Size() == 0 {\n\t\t\t// Remove the tag from the index when empty\n\t\t\tx.index.Remove(tag)\n\t\t}\n\t}\n\treturn\n}\n\nfunc (x tagIndex) IterateTags(fn func(tag string) bool) bool {\n\treturn x.index.Iterate(\"\", \"\", func(tag string, _ interface{}) bool {\n\t\treturn fn(tag)\n\t})\n}\n\nfunc (x tagIndex) IteratePosts(tag string, fn func(*blog.Post) bool) bool { // TODO: Support pagination\n\tv, found := x.index.Get(tag)\n\tif !found {\n\t\treturn false\n\t}\n\n\tidx := v.(*tutorialIndex)\n\treturn idx.Iterate(\"\", \"\", func(p *blog.Post) bool {\n\t\treturn fn(p)\n\t})\n}\n\ntype tutorialIndex struct {\n\tindex avl.Tree // string(post creation time + post slug) -\u003e *blog.Post\n}\n\nfunc (x tutorialIndex) Size() int {\n\treturn x.index.Size()\n}\n\nfunc (x *tutorialIndex) Index(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\treturn x.index.Set(k, p)\n}\n\nfunc (x *tutorialIndex) Remove(p *blog.Post) bool {\n\tk := newTutorialKey(p)\n\t_, removed := x.index.Remove(k)\n\treturn removed\n}\n\nfunc (x tutorialIndex) Iterate(start, end string, fn func(*blog.Post) bool) bool {\n\treturn x.index.Iterate(start, end, func(_ string, v interface{}) bool {\n\t\treturn fn(v.(*blog.Post))\n\t})\n}\n\nfunc newTutorialKey(p *blog.Post) string {\n\tif p != nil {\n\t\treturn p.CreatedAt.UTC().Format(keyDateFmt) + p.Slug\n\t}\n\n\t// By default create a key for the current block time\n\treturn time.Now().UTC().Format(keyDateFmt)\n}\n"},{"name":"params.gno","body":"package tutorials\n\nimport (\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\n// Day defines the duration of a day.\nconst Day = time.Hour * 24\n\n// Names for the different strategy types.\nconst (\n\tStrategyNameCreation = \"tutorial-creation\"\n\tStrategyNameDeletion = \"tutorial-deletion\"\n\tStrategyNameLocking = \"tutorial-realm-locking\"\n\tStrategyNameModification = \"tutorial-modification\"\n\tStrategyNameParamsUpdate = \"tutorial-params-update\"\n)\n\nvar parameters struct {\n\tVotingPeriods gnome.DurationParams\n}\n\nfunc init() {\n\t// Initial voting periods for each proposal type.\n\t// Periods can be changed by sumitting a params update proposal.\n\tparameters.VotingPeriods.Set(StrategyNameCreation, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameDeletion, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameLocking, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameModification, Day*3)\n\tparameters.VotingPeriods.Set(StrategyNameParamsUpdate, time.Minute*10)\n}\n"},{"name":"public.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/gnome/blog\"\n)\n\nfunc Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.NotFoundHandler = func(res *mux.ResponseWriter, _ *mux.Request) {\n\t\tres.Write(\"Path not found\")\n\t}\n\n\trouter.HandleFunc(\"\", renderBlog)\n\trouter.HandleFunc(\"posts\", renderBlog)\n\trouter.HandleFunc(\"posts/{slug}\", renderPost)\n\trouter.HandleFunc(\"drafts\", renderDrafts)\n\trouter.HandleFunc(\"revisions\", renderRevisions)\n\trouter.HandleFunc(\"tags\", renderTags)\n\trouter.HandleFunc(\"tags/{name}\", renderPostsByTag)\n\trouter.HandleFunc(\"params\", renderParams)\n\n\treturn renderAlerts() + router.Render(path)\n}\n\n// GetTutorialsBlog returns an invariant reference to the tutorials blog.\nfunc GetTutorialsBlog() blog.InvarBlog {\n\treturn blog.NewInvarBlog(\u0026tutorialsBlog)\n}\n\n// Publish publishes content for a tutorial.\n//\n// The submited content must be previously approved by a creation or modification proposal.\n//\n// Parameters:\n// - slug: Slug name of the tutorial (required)\n// - content: The tutorial content to publish (required)\nfunc Publish(slug, content string) {\n\tassertRealmIsNotLocked()\n\n\t// Check that content checksum matches the approved content for the tutorial post\n\tp := mustGetPost(slug)\n\tblog.AssertContentSha256Hash(content, p.ContentHash)\n\n\t// Add caller to the list of publishers\n\tcaller := std.GetOrigCaller()\n\tif !p.Publishers.HasAddress(caller) {\n\t\tp.Publishers = append(p.Publishers, caller)\n\t}\n\n\tif p.Status == blog.StatusDraft {\n\t\tp.PublishAt = time.Now()\n\t}\n\n\tp.Status = blog.StatusPublished\n\tp.Content = content\n\tp.UpdatedAt = time.Now()\n}\n"},{"name":"public_proposals.gno","body":"package tutorials\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n\tgnomeDAO \"gno.land/r/gnome/dao/pre1\"\n)\n\n// TODO: Move to a parameter\nconst tutorialsPath = \"council/main/community/tutorials\"\n\n// SubmitCreationProposal submits a new proposal to create a new tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial (required)\n// - tutorialContentHash: A SHA256 hash of the tutorial's content (required)\n// - tutorialContentURL: A URL where the tutorial's content is currently available (required)\n// - tutorialAuthors: List of author addresses (required)\n// - tutorialEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of authors and editors must be a newline separated list of addresses.\nfunc SubmitCreationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialContentURL,\n\ttutorialAuthors,\n\ttutorialEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\tassertSlugIsAvailable(tutorialSlug)\n\tblog.AssertTitleIsNotEmpty(tutorialTitle)\n\tblog.AssertIsSlug(tutorialSlug)\n\tblog.AssertIsSha256Hash(tutorialContentHash)\n\tblog.AssertIsContentURL(tutorialContentURL)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\tauthors := blog.MustParseStringToAddresses(tutorialAuthors)\n\tif len(authors) == 0 {\n\t\tpanic(\"tutorial authors must have at least one author's address\")\n\t}\n\n\tstrategy := creationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: authors,\n\t\teditors: blog.MustParseStringToAddresses(tutorialEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitModificationProposal submits a new proposal to modify a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\n// - tutorialTitle: A title for the tutorial\n// - tutorialContentHash: A SHA256 hash of the new tutorial's content\n// - tutorialCurrentContentHash: A SHA256 hash of the current tutorial's content\n// - tutorialContentURL: A URL where the new tutorial's content is currently available\n// - tutorialNewAuthors: List of author addresses\n// - tutorialNewEditors:\tList of editor addresses\n// - tutorialTags: Space separated list of tutorial tags\n//\n// Tutorial slug name allows letters from \"a\" to \"z\", numbers and \"-\" as valid characters.\n// Unicode letters are also allowed.\n//\n// The list of new authors and editors must be a newline separated list of addresses.\n// If present, authors and editors are appended to the current list of authors and editors.\nfunc SubmitModificationProposal(\n\tproposalTitle,\n\tproposalDescription,\n\ttutorialSlug,\n\ttutorialTitle,\n\ttutorialContentHash,\n\ttutorialCurrentContentHash,\n\ttutorialContentURL,\n\ttutorialNewAuthors,\n\ttutorialNewEditors,\n\ttutorialTags string,\n) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\ttags := strings.Fields(tutorialTags)\n\tassertValidTags(tags)\n\n\ttutorialContentHash = strings.TrimSpace(tutorialContentHash)\n\tif tutorialContentHash != \"\" {\n\t\ttutorialCurrentContentHash = strings.TrimSpace(tutorialCurrentContentHash)\n\t\tif tutorialCurrentContentHash == \"\" {\n\t\t\tpanic(\"the current content hash of the tutorial to modify is required\")\n\t\t}\n\n\t\tblog.AssertIsSha256Hash(tutorialContentHash)\n\t\tblog.AssertIsSha256Hash(tutorialCurrentContentHash)\n\t\tblog.AssertIsContentURL(tutorialContentURL)\n\t}\n\n\tstrategy := modificationStrategy{\n\t\tslug: tutorialSlug,\n\t\ttitle: strings.TrimSpace(tutorialTitle),\n\t\tcontentHash: tutorialContentHash,\n\t\tcurrentContentHash: tutorialCurrentContentHash,\n\t\tcontentURL: tutorialContentURL,\n\t\tauthors: blog.MustParseStringToAddresses(tutorialNewAuthors),\n\t\teditors: blog.MustParseStringToAddresses(tutorialNewEditors),\n\t\ttags: tags,\n\t}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitDeletionProposal submits a new proposal to delete a tutorial.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - tutorialSlug: Slug name of the tutorial (required)\nfunc SubmitDeletionProposal(proposalTitle, proposalDescription, tutorialSlug string) uint64 {\n\tassertRealmIsNotLocked()\n\n\ttutorialSlug = strings.TrimSpace(tutorialSlug)\n\tassertTutorialExists(tutorialSlug)\n\n\tstrategy := deletionStrategy{tutorialSlug}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitLockingProposal submits a new proposal to lock the realm.\n//\n// Locking the realm \"freezes the state\" by disallowing further modifications.\n// State must be locked to migrate the realm to a newer version.\n//\n// Proposal requires a 33% quorum, otherwise the outcome will be low participation.\n// This type of proposal can only be created by members with `admin` role.\n// Tally is done by plurality.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - realmPath: Path of the realm that should be allowed to import state data\n//\n// The optional realm path authorizes a realm to import the state data once the realm is locked.\nfunc SubmitLockingProposal(proposalTitle, proposalDescription, realmPath string) uint64 {\n\tassertHasAdminRole(std.GetOrigCaller())\n\n\tif realmPath != \"\" \u0026\u0026 !strings.HasPrefix(realmPath, \"gno.land/r/\") {\n\t\tpanic(`realm path must start with \"gno.land/r/\"`)\n\t}\n\n\tstrategy := lockingStrategy{realmPath}\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\n// SubmitParamsUpdateProposal submits a new proposal to update one or more realm parameters.\n//\n// Proposal requires a 51% quorum, otherwise the outcome will be low participation.\n// Tally is done by absolute majority, so all abstentions are considered.\n//\n// Parameters:\n// - proposalTitle: A title for the proposal (required)\n// - proposalDescription: A description of the proposal\n// - votingPeriodCreation: Voting period for tutorial creation proposals\n// - votingPeriodModification: Voting period for tutorial modification proposals\n// - votingPeriodDeletion: Voting period for tutorial deletion proposals\n// - votingPeriodLocking: Voting period for realm locking proposals\n// - votingPeriodParamsUpdate: Voting period for parameters update proposals\n//\n// Voting period is the number of days that members can vote on a proposal\n// At least one parameter value is required for creating a proposal.\nfunc SubmitParamsUpdateProposal(\n\tproposalTitle,\n\tproposalDescription string,\n\tvotingPeriodCreation,\n\tvotingPeriodModification,\n\tvotingPeriodDeletion,\n\tvotingPeriodLocking,\n\tvotingPeriodParamsUpdate int,\n) uint64 {\n\tstrategy := paramsUpdateStrategy{}\n\tif votingPeriodCreation \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodCreation) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameCreation, period)\n\t}\n\n\tif votingPeriodModification \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodModification) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameModification, period)\n\t}\n\n\tif votingPeriodDeletion \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodDeletion) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameDeletion, period)\n\t}\n\n\tif votingPeriodLocking \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodLocking) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameLocking, period)\n\t}\n\n\tif votingPeriodParamsUpdate \u003e 0 {\n\t\tperiod := time.Duration(votingPeriodParamsUpdate) * Day\n\t\tstrategy.votingPeriods.Set(StrategyNameParamsUpdate, period)\n\t}\n\n\tif strategy.votingPeriods.Size() == 0 {\n\t\tpanic(\"at least one parameter value must be specified\")\n\t}\n\n\tid := gnomeDAO.SubmitCustomProposal(proposalTitle, proposalDescription, strategy, tutorialsPath)\n\treturn uint64(id)\n}\n\nfunc assertSlugIsAvailable(slug string) {\n\tif tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial URL slug already exists\")\n\t}\n}\n\nfunc assertTutorialExists(slug string) {\n\tif !tutorialsBlog.HasPost(slug) {\n\t\tpanic(\"tutorial not found\")\n\t}\n}\n\nfunc assertValidTags(tags []string) {\n\tfor _, t := range tags {\n\t\tif !blog.IsSlug(t) {\n\t\t\tpanic(\"invalid tag: \" + t)\n\t\t}\n\t}\n}\n\nfunc assertHasAdminRole(addr std.Address) {\n\tdao := gnomeDAO.GetDAO(tutorialsPath)\n\tm, found := getMember(dao, addr)\n\tif !found {\n\t\tpanic(\"address is not a member of tutorials DAO: \" + addr.String())\n\t}\n\n\tfor _, r := range m.Roles {\n\t\tif r == gnomeDAO.RoleAdmin {\n\t\t\t// Member has admin role\n\t\t\treturn\n\t\t}\n\t}\n\n\tpanic(\"member doesn't have admin role: \" + addr.String())\n}\n\nfunc getMember(dao gnome.InvarDAO, addr std.Address) (gnome.Member, bool) {\n\tfor _, m := range dao.Members() {\n\t\tif m.Address == addr {\n\t\t\treturn m, true\n\t\t}\n\t}\n\treturn gnome.Member{}, false\n}\n"},{"name":"render.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/gnome/alerts\"\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\nconst (\n\tdateFormat = \"2006-01-02 15:04 MST\"\n\tshortDateFormat = \"Jan 2, 2006\"\n)\n\nfunc renderBlog(res *mux.ResponseWriter, _ *mux.Request) {\n\t// Write header\n\tres.Write(\"# \" + tutorialsBlog.Title + \"\\n\")\n\tif tutorialsBlog.Description != \"\" {\n\t\tres.Write(tutorialsBlog.Description + \"\\n\\n\")\n\t}\n\n\t// Write tutorials menu\n\tres.Write(renderMenu() + \"\\n\\n---\\n\")\n\n\t// Write list of published tutorials\n\tnow := time.Now()\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add post pagination support\n\t\t// Skip posts that should be published at a future date\n\t\tif p.PublishAt.IsZero() || p.PublishAt.After(now) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip posts that are not published or being revised\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tres.Write(\"Post not found\")\n\t\treturn\n\t}\n\n\tif p.Status == blog.StatusRevised {\n\t\tres.Write(alerts.NewWarning(\"Tutorial content is being revised\"))\n\t}\n\n\t// TODO: Add post tags with links\n\tres.Write(\"# \" + p.Title + \"\\n\")\n\tres.Write(\"- Author(s): \" + p.Authors.String() + \"\\n\")\n\n\tif len(p.Editors) \u003e 0 {\n\t\tres.Write(\"- Editors(s): \" + p.Editors.String() + \"\\n\")\n\t}\n\n\tres.Write(\"- Publisher(s): \" + p.Publishers.String() + \"\\n\")\n\tres.Write(\"- Status: \" + p.Status.String() + \"\\n\")\n\tres.Write(\"- Content Hash: \" + p.ContentHash + \"\\n\")\n\tres.Write(\"- Created: \" + p.CreatedAt.UTC().Format(dateFormat) + \"\\n\")\n\tif !p.UpdatedAt.IsZero() {\n\t\tres.Write(\"- Updated: \" + p.UpdatedAt.UTC().Format(dateFormat) + \"\\n\")\n\t}\n\n\tif len(p.Tags) \u003e 0 {\n\t\tres.Write(\"- Tag(s): \" + renderTagLinks(p.Tags) + \"\\n\")\n\t}\n\n\tif p.Content != \"\" {\n\t\tres.Write(\"\\n\" + p.Content)\n\t}\n}\n\nfunc renderDrafts(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Drafts\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusDraft {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.CreatedAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Created: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderRevisions(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Revisions\\n\")\n\ttutorials.Iterate(\"\", \"\", func(p *blog.Post) bool { // TODO: Add pagination support\n\t\tif p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderTags(res *mux.ResponseWriter, req *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tags\\n\")\n\ttags.IterateTags(func(tag string) bool {\n\t\tres.Write(\"- [\" + tag + \"](\" + newRealmURL(\"tags/\"+tag) + \")\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderPostsByTag(res *mux.ResponseWriter, req *mux.Request) {\n\ttag := req.GetVar(\"name\")\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Tag `\" + tag + \"`\\n\")\n\n\tif tag == \"\" {\n\t\treturn\n\t}\n\n\ttags.IteratePosts(tag, func(p *blog.Post) bool {\n\t\tif p.Status != blog.StatusPublished \u0026\u0026 p.Status != blog.StatusRevised {\n\t\t\treturn false\n\t\t}\n\n\t\turl := newRealmURL(\"posts/\" + p.Slug)\n\t\tdate := p.PublishAt.UTC().Format(shortDateFormat)\n\t\tres.Write(\"**[\" + p.Title + \"](\" + url + \")**\u003c/br\u003e\")\n\t\tres.Write(\"_Published: \" + date + \"_\\n\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderParams(res *mux.ResponseWriter, _ *mux.Request) {\n\tres.Write(\"# \" + tutorialsBlog.Title + \": Parameters\\n\")\n\tres.Write(\"## Proposal\\n\")\n\tres.Write(\"**Voting Periods**\\n\")\n\tparameters.VotingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tres.Write(\"- `\" + name + \"`: \" + gnome.HumanizeDuration(period) + \"\\n\")\n\t\treturn false\n\t})\n}\n\nfunc renderAlerts() string {\n\tif locked {\n\t\tmsg := \"Realm is locked\"\n\t\tif nextVersionRealmPath != \"\" {\n\t\t\tlink := alerts.NewLink(\"https://\"+nextVersionRealmPath, nextVersionRealmPath)\n\t\t\tmsg += \"\u003c/br\u003eThis realm is deprecated in favor of a new version found at \" + link\n\t\t}\n\n\t\treturn alerts.NewError(msg)\n\t}\n\treturn \"\"\n}\n\nfunc renderMenu() string {\n\titems := []string{\n\t\t\"**[drafts](\" + newRealmURL(\"drafts\") + \")**\",\n\t\t\"**[revisions](\" + newRealmURL(\"revisions\") + \")**\",\n\t}\n\n\t// Add taxonomy entries\n\ttags.IterateTags(func(tag string) bool {\n\t\titems = append(items, \"**[\"+tag+\"](\"+newRealmURL(\"tags/\"+tag)+\")**\")\n\t\treturn false\n\t})\n\n\treturn strings.Join(items, \" \")\n}\n\nfunc renderTagLinks(tags []string) string {\n\tvar links []string\n\tfor _, t := range tags {\n\t\tlinks = append(links, \"[\"+t+\"](\"+newRealmURL(\"tags/\"+t)+\")\")\n\t}\n\treturn strings.Join(links, \", \")\n}\n\nfunc newRealmURL(renderPath string) string {\n\t// TODO: Get the prefix for the current realm package path\n\treturn \"/r/gnome/tutorials/pre3:\" + renderPath\n}\n"},{"name":"strategy_lock.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype lockingStrategy struct {\n\trealmPath string\n}\n\nfunc (lockingStrategy) Name() string {\n\treturn StrategyNameLocking\n}\n\nfunc (lockingStrategy) Quorum() float64 {\n\treturn 0.33\n}\n\nfunc (lockingStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameLocking)\n\treturn period\n}\n\nfunc (lockingStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s lockingStrategy) Validate(*gnome.Proposal) error {\n\t// Allow modification of the newxt version package path when realm is locked\n\tif locked \u0026\u0026 nextVersionRealmPath == \"\" \u0026\u0026 s.realmPath != \"\" {\n\t\treturn nil\n\t}\n\n\tif locked {\n\t\treturn errors.New(\"realm is already locked\")\n\t}\n\treturn nil\n}\n\nfunc (lockingStrategy) Tally(_ *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tif choice, ok := gnome.SelectChoiceByPlurality(r); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s lockingStrategy) Execute(*gnome.DAO) error {\n\tlocked = true\n\tif s.realmPath != \"\" {\n\t\tnextVersionRealmPath = s.realmPath\n\t}\n\treturn nil\n}\n\nfunc (s lockingStrategy) RenderParams() string {\n\tif s.realmPath != \"\" {\n\t\treturn \"Next Realm Path: [\" + s.realmPath + \"](https://\" + s.realmPath + \")\"\n\t}\n\treturn \"\"\n}\n"},{"name":"strategy_params.gno","body":"package tutorials\n\nimport (\n\t\"strings\"\n\t\"time\"\n\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype paramsUpdateStrategy struct {\n\tvotingPeriods gnome.DurationParams\n}\n\nfunc (paramsUpdateStrategy) Name() string {\n\treturn StrategyNameParamsUpdate\n}\n\nfunc (paramsUpdateStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (paramsUpdateStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameParamsUpdate)\n\treturn period\n}\n\nfunc (paramsUpdateStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (paramsUpdateStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s paramsUpdateStrategy) Execute(*gnome.DAO) error {\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tparameters.VotingPeriods.Set(name, period)\n\t\treturn false\n\t})\n\treturn nil\n}\n\nfunc (s paramsUpdateStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\ts.votingPeriods.Iterate(func(name string, period time.Duration) bool {\n\t\tb.WriteString(\"| Voting Period for `\" + name + \"`: | \" + gnome.HumanizeDuration(period) + \" |\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"strategy_tutorials.gno","body":"package tutorials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/gnome/blog\"\n\tgnome \"gno.land/p/gnome/dao\"\n)\n\ntype creationStrategy struct {\n\tslug, title, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (creationStrategy) Name() string {\n\treturn StrategyNameCreation\n}\n\nfunc (creationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (creationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameCreation)\n\treturn period\n}\n\nfunc (creationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s creationStrategy) Validate(*gnome.Proposal) error {\n\tif tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial URL slug already exists\")\n\t}\n\treturn nil\n}\n\nfunc (creationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s creationStrategy) Execute(*gnome.DAO) error {\n\tp := \u0026blog.Post{ // TODO: Support other fields like summary and tags\n\t\tSlug: s.slug,\n\t\tTitle: s.title,\n\t\tContentHash: s.contentHash,\n\t\tAuthors: s.authors,\n\t\tEditors: s.editors,\n\t\tStatus: blog.StatusDraft,\n\t\tTags: s.tags,\n\t\tCreatedAt: time.Now(),\n\t}\n\ttutorialsBlog.AddPost(p)\n\n\t// Update realm indexes\n\ttutorials.Index(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Index(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s creationStrategy) RenderParams() string {\n\tvar (\n\t\tb strings.Builder\n\t\tauthors = strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t)\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | \" + s.slug + \" |\\n\")\n\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype modificationStrategy struct {\n\tslug, title, currentContentHash, contentHash, contentURL string\n\tauthors, editors blog.AddressList\n\ttags []string\n}\n\nfunc (modificationStrategy) Name() string {\n\treturn StrategyNameModification\n}\n\nfunc (modificationStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (modificationStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameModification)\n\treturn period\n}\n\nfunc (modificationStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (s modificationStrategy) Validate(*gnome.Proposal) error {\n\tp, found := tutorialsBlog.GetPost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\n\tif s.currentContentHash != \"\" \u0026\u0026 s.currentContentHash != p.ContentHash {\n\t\treturn errors.New(\"tutorial's content has been previously modified\")\n\t}\n\n\tfor _, addr := range s.authors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"author already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tfor _, addr := range s.editors {\n\t\tif p.Authors.HasAddress(addr) {\n\t\t\treturn errors.New(\"editor already exists: \" + addr.String())\n\t\t}\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tvar seenTags avl.Tree\n\t\tfor _, t := range s.tags {\n\t\t\tif seenTags.Has(t) {\n\t\t\t\treturn errors.New(\"duplicated tag: \" + t)\n\t\t\t}\n\n\t\t\tseenTags.Set(t, struct{}{})\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (modificationStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s modificationStrategy) Execute(*gnome.DAO) error {\n\tp, _ := tutorialsBlog.GetPost(s.slug)\n\n\tif s.title != \"\" {\n\t\tp.Title = s.title\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tp.Authors = append(p.Authors, s.authors...)\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\tp.Editors = append(p.Editors, s.editors...)\n\t}\n\n\t// Update tag index\n\tif len(s.tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t\tp.Tags = s.tags\n\t\ttags.Index(p)\n\t}\n\n\t// Changing content hash converts post to a revised until new content is setted\n\tif s.contentHash != \"\" {\n\t\tp.Status = blog.StatusRevised\n\t\tp.ContentHash = s.contentHash\n\t}\n\n\tp.UpdatedAt = time.Now()\n\treturn nil\n}\n\nfunc (s modificationStrategy) RenderParams() string {\n\tvar b strings.Builder\n\n\t// TODO: Implement using gno.land/p/demo/ui\n\tb.WriteString(\"|||\\n|---|---|\\n\")\n\tb.WriteString(\"| Slug: | [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \") |\\n\")\n\n\tif s.title != \"\" {\n\t\tb.WriteString(\"| Title: | \" + gnome.EscapeHTML(s.title) + \" |\\n\")\n\t}\n\n\tif s.contentHash != \"\" {\n\t\tb.WriteString(\"| Content URL: | \" + gnome.NewLinkURI(s.contentURL) + \" |\\n\")\n\t\tb.WriteString(\"| Content Hash: | \" + s.contentHash + \" |\\n\")\n\t\tb.WriteString(\"| Modifies Content Hash: | \" + s.currentContentHash + \" |\\n\")\n\t}\n\n\tif len(s.tags) \u003e 0 {\n\t\tb.WriteString(\"| Tag(s): | \" + renderTagLinks(s.tags) + \" |\\n\")\n\t}\n\n\tif len(s.authors) \u003e 0 {\n\t\tauthors := strings.ReplaceAll(s.authors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Author(s): | \u003c/br\u003e\" + authors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\tif len(s.editors) \u003e 0 {\n\t\teditors := strings.ReplaceAll(s.editors.String(), \", \", \"\u003c/br\u003e\")\n\t\tb.WriteString(\"| Editor(s): | \u003c/br\u003e\" + editors + \"\u003c/br\u003e\u003c/br\u003e |\\n\")\n\t}\n\n\treturn b.String()\n}\n\ntype deletionStrategy struct {\n\tslug string\n}\n\nfunc (deletionStrategy) Name() string {\n\treturn StrategyNameDeletion\n}\n\nfunc (deletionStrategy) Quorum() float64 {\n\treturn 0.51\n}\n\nfunc (deletionStrategy) VotingPeriod() time.Duration {\n\tperiod, _ := parameters.VotingPeriods.Get(StrategyNameDeletion)\n\treturn period\n}\n\nfunc (deletionStrategy) VoteChoices() []gnome.VoteChoice {\n\treturn []gnome.VoteChoice{gnome.ChoiceYes, gnome.ChoiceNo}\n}\n\nfunc (deletionStrategy) Tally(dao *gnome.DAO, r gnome.VotingRecord) gnome.VoteChoice {\n\tabstentions := len(dao.Members()) - r.VoteCount()\n\tif choice, ok := gnome.SelectChoiceByMajority(r, abstentions); ok {\n\t\treturn choice\n\t}\n\treturn gnome.ChoiceNone\n}\n\nfunc (s deletionStrategy) Validate(*gnome.Proposal) error {\n\tif !tutorialsBlog.HasPost(s.slug) {\n\t\treturn errors.New(\"tutorial doesn't exists\")\n\t}\n\treturn nil\n}\n\nfunc (s deletionStrategy) Execute(*gnome.DAO) error {\n\tp, found := tutorialsBlog.RemovePost(s.slug)\n\tif !found {\n\t\treturn errors.New(\"tutorial not found\")\n\t}\n\n\t// Update realm indexes\n\ttutorials.Remove(p)\n\tif len(p.Tags) \u003e 0 {\n\t\ttags.Remove(p)\n\t}\n\n\treturn nil\n}\n\nfunc (s deletionStrategy) RenderParams() string {\n\treturn \"Slug: [\" + s.slug + \"](\" + newRealmURL(\"posts/\"+s.slug) + \")\"\n}\n"},{"name":"tutorials.gno","body":"package tutorials\n\nimport (\n\t\"gno.land/p/gnome/blog\"\n)\n\nvar (\n\tlocked bool\n\tnextVersionRealmPath string\n\n\ttutorialsBlog = blog.Blog{Title: \"Gno.me Tutorials\"} // TODO: Define a realm description\n)\n\nfunc mustGetPost(slug string) *blog.Post {\n\tp, found := tutorialsBlog.GetPost(slug)\n\tif !found {\n\t\tpanic(\"tutorial not found\")\n\t}\n\treturn p\n}\n\nfunc assertRealmIsNotLocked() {\n\tif locked {\n\t\tpanic(\"realm is locked\")\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z9zqUZqeRRVUmuPdehJaEDH68bD8VKAfMneIFRnz6UNOwPuYwD3YMQa+p5NdglN1qUh+4HvZK0yVo8iO3rNTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"chonk","path":"gno.land/p/n2p5/chonk","files":[{"name":"chonk.gno","body":"// Package chonk provides a simple way to store arbitrarily large strings\n// in a linked list across transactions for efficient storage and retrieval.\n// A Chonk support three operations: Add, Flush, and Scanner.\n// - Add appends a string to the Chonk.\n// - Flush clears the Chonk.\n// - Scanner is used to iterate over the chunks in the Chonk.\npackage chonk\n\n// Chonk is a linked list string storage and\n// retrieval system for fine bois.\ntype Chonk struct {\n\tfirst *chunk\n\tlast *chunk\n}\n\n// chunk is a linked list node for Chonk\ntype chunk struct {\n\ttext string\n\tnext *chunk\n}\n\n// New creates a reference to a new Chonk\nfunc New() *Chonk {\n\treturn \u0026Chonk{}\n}\n\n// Add appends a string to the Chonk. If the Chonk is empty,\n// the string will be the first and last chunk. Otherwise,\n// the string will be appended to the end of the Chonk.\nfunc (c *Chonk) Add(text string) {\n\tnext := \u0026chunk{text: text}\n\tif c.first == nil {\n\t\tc.first = next\n\t\tc.last = next\n\t\treturn\n\t}\n\tc.last.next = next\n\tc.last = next\n}\n\n// Flush clears the Chonk by setting the first and last\n// chunks to nil. This will allow the garbage collector to\n// free the memory used by the Chonk.\nfunc (c *Chonk) Flush() {\n\tc.first = nil\n\tc.last = nil\n}\n\n// Scanner returns a new Scanner for the Chonk. The Scanner\n// is used to iterate over the chunks in the Chonk.\nfunc (c *Chonk) Scanner() *Scanner {\n\treturn \u0026Scanner{\n\t\tnext: c.first,\n\t}\n}\n\n// Scanner is a simple string scanner for Chonk. It is used\n// to iterate over the chunks in a Chonk from first to last.\ntype Scanner struct {\n\tcurrent *chunk\n\tnext *chunk\n}\n\n// Scan advances the scanner to the next chunk. It returns\n// true if there is a next chunk, and false if there is not.\nfunc (s *Scanner) Scan() bool {\n\tif s.next != nil {\n\t\ts.current = s.next\n\t\ts.next = s.next.next\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Text returns the current chunk. It is only valid to call\n// this method after a call to Scan returns true. Expected usage:\n//\n//\t\tscanner := chonk.Scanner()\n//\t\t\tfor scanner.Scan() {\n//\t \t\tfmt.Println(scanner.Text())\n//\t\t\t}\nfunc (s *Scanner) Text() string {\n\treturn s.current.text\n}\n"},{"name":"chonk_test.gno","body":"package chonk\n\nimport (\n\t\"testing\"\n)\n\nfunc TestChonk(t *testing.T) {\n\tt.Parallel()\n\tc := New()\n\ttestTable := []struct {\n\t\tname string\n\t\tchunks []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"single chunk\",\n\t\t\tchunks: []string{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple chunks\",\n\t\t\tchunks: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiline chunks\",\n\t\t\tchunks: []string{\"1a\\nb\\nc\\n\\n\", \"d\\ne\\nf\", \"g\\nh\\ni\", \"j\\nk\\nl\\n\\n\\n\\n\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t}\n\ttestChonk := func(t *testing.T, c *Chonk, chunks []string) {\n\t\tfor _, chunk := range chunks {\n\t\t\tc.Add(chunk)\n\t\t}\n\t\tscanner := c.Scanner()\n\t\ti := 0\n\t\tfor scanner.Scan() {\n\t\t\tif scanner.Text() != chunks[i] {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", chunks[i], scanner.Text())\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\ttestChonk(t, c, test.chunks)\n\t\t\tc.Flush()\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LEOJ1fT0/HrIh9NFe5hjL2DV8UNSOC4N8td5Avv1zMW27ErNVQKIyr0G/ZvvqjZsMe/9tPtCoZH9vqaprDyOBw=="}],"memo":""},"metadata":{"timestamp":"1732278054"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"config","path":"gno.land/r/n2p5/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/n2p5/mgroup\"\n)\n\nconst (\n\toriginalOwner = \"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t\" // n2p5\n)\n\nvar (\n\tadminGroup = mgroup.New(originalOwner)\n\tdescription = \"\"\n)\n\n// AddBackupOwner adds a backup owner to the Owner Group.\n// A backup owner can claim ownership of the contract.\nfunc AddBackupOwner(addr std.Address) {\n\terr := adminGroup.AddBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveBackupOwner removes a backup owner from the Owner Group.\n// The primary owner cannot be removed.\nfunc RemoveBackupOwner(addr std.Address) {\n\terr := adminGroup.RemoveBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ClaimOwnership allows an authorized user in the ownerGroup\n// to claim ownership of the contract.\nfunc ClaimOwnership() {\n\terr := adminGroup.ClaimOwnership()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// AddAdmin adds an admin to the Admin Group.\nfunc AddAdmin(addr std.Address) {\n\terr := adminGroup.AddMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveAdmin removes an admin from the Admin Group.\n// The primary owner cannot be removed.\nfunc RemoveAdmin(addr std.Address) {\n\terr := adminGroup.RemoveMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Owner returns the current owner of the claims contract.\nfunc Owner() std.Address {\n\treturn adminGroup.Owner()\n}\n\n// BackupOwners returns the current backup owners of the claims contract.\nfunc BackupOwners() []string {\n\treturn adminGroup.BackupOwners()\n}\n\n// Admins returns the current admin members of the claims contract.\nfunc Admins() []string {\n\treturn adminGroup.Members()\n}\n\n// IsAdmin checks if an address is in the config adminGroup.\nfunc IsAdmin(addr std.Address) bool {\n\treturn adminGroup.IsMember(addr)\n}\n\n// toMarkdownList formats a slice of strings as a markdown list.\nfunc toMarkdownList(items []string) string {\n\tvar result string\n\tfor _, item := range items {\n\t\tresult += ufmt.Sprintf(\"- %s\\n\", item)\n\t}\n\treturn result\n}\n\nfunc Render(path string) string {\n\towner := adminGroup.Owner().String()\n\tbackupOwners := toMarkdownList(BackupOwners())\n\tadminMembers := toMarkdownList(Admins())\n\treturn ufmt.Sprintf(`\n# Config Dashboard\n\nThis dashboard shows the current configuration owner, backup owners, and admin members.\n- The owner has the exclusive ability to manage the backup owners and admin members.\n- Backup owners can claim ownership of the contract and become the owner.\n- Admin members are used to authorize actions in other realms, such as [my home realm](/r/n2p5/home).\n\n#### Owner\n\n%s\n\n#### Backup Owners\n\n%s\n\n#### Admin Members\n\n%s\n\n`,\n\t\towner,\n\t\tbackupOwners,\n\t\tadminMembers)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CyyUZxBtgv0OX0gmbcyrkdLg3N2fxXAOBsvHClXX9JW3W+0PgGUwuRR3FO2svjej1A5AHB5KNuYPyK4gFGUtAw=="}],"memo":""},"metadata":{"timestamp":"1732278104"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"haystack","path":"gno.land/p/demo/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/haystack/needle\"\n)\n\nvar (\n\t// ErrorNeedleNotFound is returned when a needle is not found in the haystack.\n\tErrorNeedleNotFound = errors.New(\"needle not found\")\n\t// ErrorNeedleLength is returned when a needle is not the correct length.\n\tErrorNeedleLength = errors.New(\"invalid needle length\")\n\t// ErrorHashLength is returned when a needle hash is not the correct length.\n\tErrorHashLength = errors.New(\"invalid hash length\")\n\t// ErrorDuplicateNeedle is returned when a needle already exists in the haystack.\n\tErrorDuplicateNeedle = errors.New(\"needle already exists\")\n\t// ErrorHashMismatch is returned when a needle hash does not match the needle. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorHashMismatch = errors.New(\"storage error: hash mismatch\")\n\t// ErrorValueInvalidType is returned when a needle value is not a byte slice. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorValueInvalidType = errors.New(\"storage error: invalid value type, expected []byte\")\n)\n\nconst (\n\t// EncodedHashLength is the length of the hex-encoded needle hash.\n\tEncodedHashLength = needle.HashLength * 2\n\t// EncodedPayloadLength is the length of the hex-encoded needle payload.\n\tEncodedPayloadLength = needle.PayloadLength * 2\n\t// EncodedNeedleLength is the length of the hex-encoded needle.\n\tEncodedNeedleLength = EncodedHashLength + EncodedPayloadLength\n)\n\n// Haystack is a permissionless, append-only, content-addressed key-value store for fix\n// length messages known as needles. A needle is a 192 byte byte slice with a 32 byte\n// hash (sha256) and a 160 byte payload.\ntype Haystack struct{ internal *avl.Tree }\n\n// New creates a new instance of a Haystack key-value store.\nfunc New() *Haystack {\n\treturn \u0026Haystack{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value\n// store. The key is the first 32 bytes of the needle hash (64 bytes hex-encoded) of the\n// sha256 sum of the payload. The value is the 160 byte byte slice of the needle payload.\n// An error is returned if the needle is found to be invalid.\nfunc (h *Haystack) Add(needleHex string) error {\n\tif len(needleHex) != EncodedNeedleLength {\n\t\treturn ErrorNeedleLength\n\t}\n\tb, err := hex.DecodeString(needleHex)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := needle.FromBytes(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h.internal.Has(needleHex[:EncodedHashLength]) {\n\t\treturn ErrorDuplicateNeedle\n\t}\n\th.internal.Set(needleHex[:EncodedHashLength], n.Payload())\n\treturn nil\n}\n\n// Get takes a hex-encoded needle hash and returns the complete hex-encoded needle bytes\n// and an error. Errors covers errors that span from the needle not being found, internal\n// storage error inconsistencies, and invalid value types.\nfunc (h *Haystack) Get(hash string) (string, error) {\n\tif len(hash) != EncodedHashLength {\n\t\treturn \"\", ErrorHashLength\n\t}\n\tif _, err := hex.DecodeString(hash); err != nil {\n\t\treturn \"\", err\n\t}\n\tv, ok := h.internal.Get(hash)\n\tif !ok {\n\t\treturn \"\", ErrorNeedleNotFound\n\t}\n\tb, ok := v.([]byte)\n\tif !ok {\n\t\treturn \"\", ErrorValueInvalidType\n\t}\n\tn, err := needle.New(b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tneedleHash := hex.EncodeToString(n.Hash())\n\tif needleHash != hash {\n\t\treturn \"\", ErrorHashMismatch\n\t}\n\treturn hex.EncodeToString(n.Bytes()), nil\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/haystack/needle\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"New\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tif h == nil {\n\t\t\tt.Error(\"New returned nil\")\n\t\t}\n\t})\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tn, _ := needle.New(make([]byte, needle.PayloadLength))\n\t\tvalidNeedleHex := hex.EncodeToString(n.Bytes())\n\n\t\ttestTable := []struct {\n\t\t\tneedleHex string\n\t\t\terr error\n\t\t}{\n\t\t\t{validNeedleHex, nil},\n\t\t\t{validNeedleHex, ErrorDuplicateNeedle},\n\t\t\t{\"bad\" + validNeedleHex[3:], needle.ErrorInvalidHash},\n\t\t\t{\"XXX\" + validNeedleHex[3:], hex.InvalidByteError('X')},\n\t\t\t{validNeedleHex[:len(validNeedleHex)-2], ErrorNeedleLength},\n\t\t\t{validNeedleHex + \"00\", ErrorNeedleLength},\n\t\t\t{\"000\", ErrorNeedleLength},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\terr := h.Add(tt.needleHex)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.needleHex, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\n\t\t// genNeedleHex returns a hex-encoded needle and its hash for a given index.\n\t\tgenNeedleHex := func(i int) (string, string) {\n\t\t\tb := make([]byte, needle.PayloadLength)\n\t\t\tb[0] = byte(i)\n\t\t\tn, _ := needle.New(b)\n\t\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t\t}\n\n\t\t// Add a valid needle to the haystack.\n\t\tvalidNeedleHex, validHash := genNeedleHex(0)\n\t\th.Add(validNeedleHex)\n\n\t\t// Add a needle and break the value type.\n\t\t_, brokenHashValueType := genNeedleHex(1)\n\t\th.internal.Set(brokenHashValueType, 0)\n\n\t\t// Add a needle with invalid hash.\n\t\t_, invalidHash := genNeedleHex(2)\n\t\th.internal.Set(invalidHash, make([]byte, needle.PayloadLength))\n\n\t\ttestTable := []struct {\n\t\t\thash string\n\t\t\texpected string\n\t\t\terr error\n\t\t}{\n\t\t\t{validHash, validNeedleHex, nil},\n\t\t\t{validHash[:len(validHash)-2], \"\", ErrorHashLength},\n\t\t\t{validHash + \"00\", \"\", ErrorHashLength},\n\t\t\t{\"XXX\" + validHash[3:], \"\", hex.InvalidByteError('X')},\n\t\t\t{\"bad\" + validHash[3:], \"\", ErrorNeedleNotFound},\n\t\t\t{brokenHashValueType, \"\", ErrorValueInvalidType},\n\t\t\t{invalidHash, \"\", ErrorHashMismatch},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\tactual, err := h.Get(tt.hash)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.hash, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t\tif actual != tt.expected {\n\t\t\t\tt.Error(tt.hash, actual, \"!=\", tt.expected)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2BvCprjlMFgGCMSQnxtFLQF+JyaL+0+Tphym1TYeR22H1MAhxEHc+PuMs/GX4jv+TVzULjMwUq7uSJlB3S5MCA=="}],"memo":""},"metadata":{"timestamp":"1730933789"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"haystack","path":"gno.land/p/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nvar (\n\t// ErrorNeedleNotFound is returned when a needle is not found in the haystack.\n\tErrorNeedleNotFound = errors.New(\"needle not found\")\n\t// ErrorNeedleLength is returned when a needle is not the correct length.\n\tErrorNeedleLength = errors.New(\"invalid needle length\")\n\t// ErrorHashLength is returned when a needle hash is not the correct length.\n\tErrorHashLength = errors.New(\"invalid hash length\")\n\t// ErrorDuplicateNeedle is returned when a needle already exists in the haystack.\n\tErrorDuplicateNeedle = errors.New(\"needle already exists\")\n\t// ErrorHashMismatch is returned when a needle hash does not match the needle. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorHashMismatch = errors.New(\"storage error: hash mismatch\")\n\t// ErrorValueInvalidType is returned when a needle value is not a byte slice. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorValueInvalidType = errors.New(\"storage error: invalid value type, expected []byte\")\n)\n\nconst (\n\t// EncodedHashLength is the length of the hex-encoded needle hash.\n\tEncodedHashLength = needle.HashLength * 2\n\t// EncodedPayloadLength is the length of the hex-encoded needle payload.\n\tEncodedPayloadLength = needle.PayloadLength * 2\n\t// EncodedNeedleLength is the length of the hex-encoded needle.\n\tEncodedNeedleLength = EncodedHashLength + EncodedPayloadLength\n)\n\n// Haystack is a permissionless, append-only, content-addressed key-value store for fix\n// length messages known as needles. A needle is a 192 byte byte slice with a 32 byte\n// hash (sha256) and a 160 byte payload.\ntype Haystack struct{ internal *avl.Tree }\n\n// New creates a new instance of a Haystack key-value store.\nfunc New() *Haystack {\n\treturn \u0026Haystack{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value\n// store. The key is the first 32 bytes of the needle hash (64 bytes hex-encoded) of the\n// sha256 sum of the payload. The value is the 160 byte byte slice of the needle payload.\n// An error is returned if the needle is found to be invalid.\nfunc (h *Haystack) Add(needleHex string) error {\n\tif len(needleHex) != EncodedNeedleLength {\n\t\treturn ErrorNeedleLength\n\t}\n\tb, err := hex.DecodeString(needleHex)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := needle.FromBytes(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h.internal.Has(needleHex[:EncodedHashLength]) {\n\t\treturn ErrorDuplicateNeedle\n\t}\n\th.internal.Set(needleHex[:EncodedHashLength], n.Payload())\n\treturn nil\n}\n\n// Get takes a hex-encoded needle hash and returns the complete hex-encoded needle bytes\n// and an error. Errors covers errors that span from the needle not being found, internal\n// storage error inconsistencies, and invalid value types.\nfunc (h *Haystack) Get(hash string) (string, error) {\n\tif len(hash) != EncodedHashLength {\n\t\treturn \"\", ErrorHashLength\n\t}\n\tif _, err := hex.DecodeString(hash); err != nil {\n\t\treturn \"\", err\n\t}\n\tv, ok := h.internal.Get(hash)\n\tif !ok {\n\t\treturn \"\", ErrorNeedleNotFound\n\t}\n\tb, ok := v.([]byte)\n\tif !ok {\n\t\treturn \"\", ErrorValueInvalidType\n\t}\n\tn, err := needle.New(b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tneedleHash := hex.EncodeToString(n.Hash())\n\tif needleHash != hash {\n\t\treturn \"\", ErrorHashMismatch\n\t}\n\treturn hex.EncodeToString(n.Bytes()), nil\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"testing\"\n\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"New\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tif h == nil {\n\t\t\tt.Error(\"New returned nil\")\n\t\t}\n\t})\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tn, _ := needle.New(make([]byte, needle.PayloadLength))\n\t\tvalidNeedleHex := hex.EncodeToString(n.Bytes())\n\n\t\ttestTable := []struct {\n\t\t\tneedleHex string\n\t\t\terr error\n\t\t}{\n\t\t\t{validNeedleHex, nil},\n\t\t\t{validNeedleHex, ErrorDuplicateNeedle},\n\t\t\t{\"bad\" + validNeedleHex[3:], needle.ErrorInvalidHash},\n\t\t\t{\"XXX\" + validNeedleHex[3:], hex.InvalidByteError('X')},\n\t\t\t{validNeedleHex[:len(validNeedleHex)-2], ErrorNeedleLength},\n\t\t\t{validNeedleHex + \"00\", ErrorNeedleLength},\n\t\t\t{\"000\", ErrorNeedleLength},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\terr := h.Add(tt.needleHex)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.needleHex, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\n\t\t// genNeedleHex returns a hex-encoded needle and its hash for a given index.\n\t\tgenNeedleHex := func(i int) (string, string) {\n\t\t\tb := make([]byte, needle.PayloadLength)\n\t\t\tb[0] = byte(i)\n\t\t\tn, _ := needle.New(b)\n\t\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t\t}\n\n\t\t// Add a valid needle to the haystack.\n\t\tvalidNeedleHex, validHash := genNeedleHex(0)\n\t\th.Add(validNeedleHex)\n\n\t\t// Add a needle and break the value type.\n\t\t_, brokenHashValueType := genNeedleHex(1)\n\t\th.internal.Set(brokenHashValueType, 0)\n\n\t\t// Add a needle with invalid hash.\n\t\t_, invalidHash := genNeedleHex(2)\n\t\th.internal.Set(invalidHash, make([]byte, needle.PayloadLength))\n\n\t\ttestTable := []struct {\n\t\t\thash string\n\t\t\texpected string\n\t\t\terr error\n\t\t}{\n\t\t\t{validHash, validNeedleHex, nil},\n\t\t\t{validHash[:len(validHash)-2], \"\", ErrorHashLength},\n\t\t\t{validHash + \"00\", \"\", ErrorHashLength},\n\t\t\t{\"XXX\" + validHash[3:], \"\", hex.InvalidByteError('X')},\n\t\t\t{\"bad\" + validHash[3:], \"\", ErrorNeedleNotFound},\n\t\t\t{brokenHashValueType, \"\", ErrorValueInvalidType},\n\t\t\t{invalidHash, \"\", ErrorHashMismatch},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\tactual, err := h.Get(tt.hash)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.hash, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t\tif actual != tt.expected {\n\t\t\t\tt.Error(tt.hash, actual, \"!=\", tt.expected)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ymNz/GuFMZxnJVm+0s8PNg2RwrH3erO+BDoo1ATwZZUQi7aT2CWdRARIxftketOFmPuMs4zXAtsT4KOeSolCDw=="}],"memo":""},"metadata":{"timestamp":"1731469330"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"haystack","path":"gno.land/r/demo/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"gno.land/p/demo/haystack\"\n)\n\nvar storage = haystack.New()\n\nfunc Render(path string) string {\n\tmessage := `\nPut a Needle in the Haystack\n`\n\treturn message\n}\n\nfunc Add(needleHex string) {\n\terr := storage.Add(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Get(needleHex string) string {\n\tneedleHex, err := storage.Get(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn needleHex\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/haystack\"\n\t\"gno.land/p/demo/haystack/needle\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\t// needleHex returns a hex-encoded needle and its hash for a given index.\n\tgenNeedleHex := func(i int) (string, string) {\n\t\tb := make([]byte, needle.PayloadLength)\n\t\tb[0] = byte(i)\n\t\tn, _ := needle.New(b)\n\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t}\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, _ := genNeedleHex(1)\n\t\tn2, _ := genNeedleHex(2)\n\t\tn3, _ := genNeedleHex(3)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorDuplicateNeedle.Error(),\n\t\t\tfunc() {\n\t\t\t\tAdd(n1)\n\t\t\t})\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() { Add(n2) })\n\t\turequire.NotPanics(t, func() { Add(n3) })\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, h1 := genNeedleHex(4)\n\t\t_, h2 := genNeedleHex(5)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorNeedleNotFound.Error(),\n\t\t\tfunc() {\n\t\t\t\tGet(h2)\n\t\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nMDqpsDjTTcJ7Pm3mNw5VWTGyvc8tMVwBt2HjotdHO/EmQ8QATP9MaaK6BkvkVf0XoMJiC96UdtFxyJ3cQtJBA=="}],"memo":""},"metadata":{"timestamp":"1730934025"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"haystack","path":"gno.land/r/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"gno.land/p/n2p5/haystack\"\n)\n\nvar storage = haystack.New()\n\nfunc Render(path string) string {\n\treturn `\nPut a Needle in the Haystack.\n`\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value store.\n// If storage encounters an error, it will panic.\nfunc Add(needleHex string) {\n\terr := storage.Add(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Get takes a fixed-length hex-encoded needle hash and returns the hex-encoded needle bytes.\n// If storage encounters an error, it will panic.\nfunc Get(hashHex string) string {\n\tneedleHex, err := storage.Get(hashHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn needleHex\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/n2p5/haystack\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\t// needleHex returns a hex-encoded needle and its hash for a given index.\n\tgenNeedleHex := func(i int) (string, string) {\n\t\tb := make([]byte, needle.PayloadLength)\n\t\tb[0] = byte(i)\n\t\tn, _ := needle.New(b)\n\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t}\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, _ := genNeedleHex(1)\n\t\tn2, _ := genNeedleHex(2)\n\t\tn3, _ := genNeedleHex(3)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorDuplicateNeedle.Error(),\n\t\t\tfunc() {\n\t\t\t\tAdd(n1)\n\t\t\t})\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() { Add(n2) })\n\t\turequire.NotPanics(t, func() { Add(n3) })\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, h1 := genNeedleHex(4)\n\t\t_, h2 := genNeedleHex(5)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorNeedleNotFound.Error(),\n\t\t\tfunc() {\n\t\t\t\tGet(h2)\n\t\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CKRtnzX41qzP3riNevUi5/5PrQ1Hh2Y9nPfdUsEmayFBhthR5+J6fhBZJapiB8Q40NnCLoFVyxGkol62+Hm0CQ=="}],"memo":""},"metadata":{"timestamp":"1731469350"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"home","path":"gno.land/r/n2p5/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/n2p5/chonk\"\n\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/n2p5/config\"\n)\n\nvar (\n\tactive = chonk.New()\n\tpreview = chonk.New()\n)\n\nfunc init() {\n\thof.Register()\n}\n\n// Add appends a string to the preview Chonk.\nfunc Add(chunk string) {\n\tassertAdmin()\n\tpreview.Add(chunk)\n}\n\n// Flush clears the preview Chonk.\nfunc Flush() {\n\tassertAdmin()\n\tpreview.Flush()\n}\n\n// Promote promotes the preview Chonk to the active Chonk\n// and creates a new preview Chonk.\nfunc Promote() {\n\tassertAdmin()\n\tactive = preview\n\tpreview = chonk.New()\n}\n\n// Render returns the contents of the scanner for the active or preview Chonk\n// based on the path provided.\nfunc Render(path string) string {\n\tvar result string\n\tscanner := getScanner(path)\n\tfor scanner.Scan() {\n\t\tresult += scanner.Text()\n\t}\n\treturn result\n}\n\n// assertAdmin panics if the caller is not an admin as defined in the config realm.\nfunc assertAdmin() {\n\tcaller := std.PrevRealm().Addr()\n\tif !config.IsAdmin(caller) {\n\t\tpanic(\"forbidden: must be admin\")\n\t}\n}\n\n// getScanner returns the scanner for the active or preview Chonk based\n// on the path provided.\nfunc getScanner(path string) *chonk.Scanner {\n\tif isPreview(path) {\n\t\treturn preview.Scanner()\n\t}\n\treturn active.Scanner()\n}\n\n// isPreview returns true if the path prefix is \"preview\".\nfunc isPreview(path string) bool {\n\treturn strings.HasPrefix(path, \"preview\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HDTKi8FmB8pivNh3Oom/8SfC3kDu85/YnrvCjSkNe0AUl43HK0V5m/YYBq7h9RcCXVQcmhryRV4WGV94RuB8Dg=="}],"memo":""},"metadata":{"timestamp":"1732278175"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"loci","path":"gno.land/p/n2p5/loci","files":[{"name":"loci.gno","body":"// loci is a single purpose datastore keyed by the caller's address. It has two\n// functions: Set and Get. loci is plural for locus, which is a central or core\n// place where something is found or from which it originates. In this case, \n// it's a simple key-value store where an address (the key) can store exactly \n// one value (in the form of a byte slice). Only the caller can set the value \n// for their address, but anyone can retrieve the value for any address.\npackage loci\n\nimport (\n\t\"std\"\n\t\n\t\"gno.land/p/demo/avl\"\n)\n\n// LociStore is a simple key-value store that uses \n// an AVL tree to store the data.\ntype LociStore struct {\n\tinternal *avl.Tree\n}\n\n// New creates a reference to a new LociStore.\nfunc New() *LociStore {\n\treturn \u0026LociStore{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Set stores a byte slice in the AVL tree using the `std.PrevRealm().Addr()`\n// string as the key.\nfunc (s *LociStore) Set(value []byte) {\n\tkey := string(std.PrevRealm().Addr())\n\ts.internal.Set(key, value)\n}\n\n// Get retrieves a byte slice from the AVL tree using the provided address. \n// The return values are the byte slice value and a boolean indicating \n// whether the value exists.\nfunc (s *LociStore) Get(addr std.Address) []byte {\n\tvalue, exists := s.internal.Get(string(addr))\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn value.([]byte)\n}"},{"name":"loci_test.gno","body":"package loci\n\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n)\n\n\nfunc TestLociStore(t *testing.T) {\n\tt.Parallel()\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u1\")\n\n\tt.Run(\"TestSet\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstore := New()\n\t\tu1 := testutils.TestAddress(\"u1\")\n\t\t\n\t\tm1 := []byte(\"hello\")\n\t\tm2 := []byte(\"world\")\n\t\tstd.TestSetOrigCaller(u1)\n\n\t\t// Ensure that the value is nil before setting it.\n\t\tr1 := store.Get(u1)\n\t\tif r1 != nil {\n\t\t\tt.Errorf(\"expected value to be nil, got '%s'\", r1)\n\t\t}\n\t\tstore.Set(m1)\n\t\t// Ensure that the value is correct after setting it.\n\t\tr2 := store.Get(u1)\n\t\tif string(r2) != \"hello\" {\n\t\t\tt.Errorf(\"expected value to be 'hello', got '%s'\", r2)\n\t\t}\n\t\tstore.Set(m2)\n\t\t// Ensure that the value is correct after overwriting it.\n\t\tr3 := store.Get(u1)\n\t\tif string(r3) != \"world\" {\n\t\t\tt.Errorf(\"expected value to be 'world', got '%s'\", r3)\n\t\t}\n\t})\n\tt.Run(\"TestGet\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstore := New()\n\t\tu1 := testutils.TestAddress(\"u1\")\n\t\tu2 := testutils.TestAddress(\"u2\")\n\t\tu3 := testutils.TestAddress(\"u3\")\n\t\tu4 := testutils.TestAddress(\"u4\")\n\t\t\n\t\tm1 := []byte(\"hello\")\n\t\tm2 := []byte(\"world\")\n\t\tm3 := []byte(\"goodbye\")\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\tstore.Set(m1)\n\t\tstd.TestSetOrigCaller(u2)\n\t\tstore.Set(m2)\n\t\tstd.TestSetOrigCaller(u3)\n\t\tstore.Set(m3)\n\n\t\t// Ensure that the value is correct after setting it.\n\t\tr0 := store.Get(u4)\n\t\tif r0 != nil {\n\t\t\tt.Errorf(\"expected value to be nil, got '%s'\", r0)\n\t\t}\n\t\t// Ensure that the value is correct after setting it.\n\t\tr1 := store.Get(u1)\n\t\tif string(r1) != \"hello\" {\n\t\t\tt.Errorf(\"expected value to be 'hello', got '%s'\", r1)\n\t\t}\n\t\t// Ensure that the value is correct after setting it.\n\t\tr2 := store.Get(u2)\n\t\tif string(r2) != \"world\" {\n\t\t\tt.Errorf(\"expected value to be 'world', got '%s'\", r2)\n\t\t}\n\t\t// Ensure that the value is correct after setting it.\n\t\tr3 := store.Get(u3)\n\t\tif string(r3) != \"goodbye\" {\n\t\t\tt.Errorf(\"expected value to be 'goodbye', got '%s'\", r3)\n\t\t}\n\t})\n\n}"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UXXaZeNboIfsA/RZydYa18xvUvhu6q8AEKuVIkvgFcoM1iTvYmuq8EXJU2kL2otsYZmG5uwvV2yqa0sfi5oXDQ=="}],"memo":""},"metadata":{"timestamp":"1734152292"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"loci","path":"gno.land/r/n2p5/loci","files":[{"name":"loci.gno","body":"package loci\n\nimport (\n\t\"encoding/base64\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/n2p5/loci\"\n)\n\nvar store *loci.LociStore\n\nfunc init() {\n\tstore = loci.New()\n}\n\n// Set takes a base64 encoded string and stores it in the Loci store.\n// Keyed by the address of the caller. It also emits a \"set\" event with \n// the address of the caller.\nfunc Set(value string) {\n\tb, err := base64.StdEncoding.DecodeString(value)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tstore.Set(b)\n\tstd.Emit(\"SetValue\", \"ForAddr\", string(std.PrevRealm().Addr()))\n}\n\n// Get retrieves the value stored at the provided address and \n// returns it as a base64 encoded string.\nfunc Get(addr std.Address) string {\n\treturn base64.StdEncoding.EncodeToString(store.Get(addr))\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn about\n\t}\n\treturn renderGet(std.Address(path))\n}\n\nfunc renderGet(addr std.Address) string {\n\tvalue := \"```\\n\" + Get(addr) + \"\\n```\"\n\t\n\treturn ufmt.Sprintf(`\n# Loci Value Viewer\n\n**Address:** %s\n\n%s\n\n`, addr, value)\n}\n\nconst about = `\n# Welcome to Loci\n\nLoci is a simple key-value store keyed by the caller's gno.land address. \nOnly the caller can set the value for their address, but anyone can \nretrieve the value for any address. There are only two functions: Set and Get.\nIf you'd like to set a value, simply base64 encode any message you'd like and\nit will be stored in in Loci. If you'd like to retrieve a value, simply provide \nthe address of the value you'd like to retrieve.\n\nFor convenience, you can also use gnoweb to view the value for a given address,\nif one exists. For instance append :g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t to\nthis URL to view the value stored at that address.\n`"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Pg2Ta6LL/+MVNMQkm7wrnjOKGHqkojY75yq8CcE/Txif3ZsvTJFasRvqVrr3Pgcni5u3ScRWVscuCJhP/7T5Aw=="}],"memo":""},"metadata":{"timestamp":"1734152307"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"mgroup","path":"gno.land/p/n2p5/mgroup","files":[{"name":"mgroup.gno","body":"// Package mgroup is a simple managed group managing ownership and membership\n// for authorization in gno realms. The ManagedGroup struct is used to manage\n// the owner, backup owners, and members of a group. The owner is the primary\n// owner of the group and can add and remove backup owners and members. Backup\n// owners can claim ownership of the group. This is meant to provide backup\n// accounts for the owner in case the owner account is lost or compromised.\n// Members are used to authorize actions across realms.\npackage mgroup\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tErrCannotRemoveOwner = errors.New(\"mgroup: cannot remove owner\")\n\tErrNotBackupOwner = errors.New(\"mgroup: not a backup owner\")\n\tErrNotMember = errors.New(\"mgroup: not a member\")\n\tErrInvalidAddress = errors.New(\"mgroup: address is invalid\")\n)\n\ntype ManagedGroup struct {\n\towner *ownable.Ownable\n\tbackupOwners *avl.Tree\n\tmembers *avl.Tree\n}\n\n// New creates a new ManagedGroup with the owner set to the provided address.\n// The owner is automatically added as a backup owner and member of the group.\nfunc New(ownerAddress std.Address) *ManagedGroup {\n\tg := \u0026ManagedGroup{\n\t\towner: ownable.NewWithAddress(ownerAddress),\n\t\tbackupOwners: avl.NewTree(),\n\t\tmembers: avl.NewTree(),\n\t}\n\tg.AddBackupOwner(ownerAddress)\n\tg.AddMember(ownerAddress)\n\treturn g\n}\n\n// AddBackupOwner adds a backup owner to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddBackupOwner(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.backupOwners.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveBackupOwner removes a backup owner from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) RemoveBackupOwner(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.backupOwners.Remove(addr.String())\n\treturn nil\n}\n\n// ClaimOwnership allows a backup owner to claim ownership of the group.\n// If the caller is not a backup owner, an error is returned.\n// The caller is automatically added as a member of the group.\nfunc (g *ManagedGroup) ClaimOwnership() error {\n\tcaller := std.PrevRealm().Addr()\n\t// already owner, skip\n\tif caller == g.Owner() {\n\t\treturn nil\n\t}\n\tif !g.IsBackupOwner(caller) {\n\t\treturn ErrNotMember\n\t}\n\tg.owner = ownable.NewWithAddress(caller)\n\tg.AddMember(caller)\n\treturn nil\n}\n\n// AddMember adds a member to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddMember(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.members.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveMember removes a member from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner,\n// an error is returned.\nfunc (g *ManagedGroup) RemoveMember(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.members.Remove(addr.String())\n\treturn nil\n}\n\n// MemberCount returns the number of members in the group.\nfunc (g *ManagedGroup) MemberCount() int {\n\treturn g.members.Size()\n}\n\n// BackupOwnerCount returns the number of backup owners in the group.\nfunc (g *ManagedGroup) BackupOwnerCount() int {\n\treturn g.backupOwners.Size()\n}\n\n// IsMember checks if an address is a member of the group.\nfunc (g *ManagedGroup) IsMember(addr std.Address) bool {\n\treturn g.members.Has(addr.String())\n}\n\n// IsBackupOwner checks if an address is a backup owner in the group.\nfunc (g *ManagedGroup) IsBackupOwner(addr std.Address) bool {\n\treturn g.backupOwners.Has(addr.String())\n}\n\n// Owner returns the owner of the group.\nfunc (g *ManagedGroup) Owner() std.Address {\n\treturn g.owner.Owner()\n}\n\n// BackupOwners returns a slice of all backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. If you have a large group, you may\n// want to use BackupOwnersWithOffset to iterate over backup owners in chunks.\nfunc (g *ManagedGroup) BackupOwners() []string {\n\treturn g.BackupOwnersWithOffset(0, g.BackupOwnerCount())\n}\n\n// Members returns a slice of all members in the group, using the underlying\n// avl.Tree to iterate over the members. If you have a large group, you may\n// want to use MembersWithOffset to iterate over members in chunks.\nfunc (g *ManagedGroup) Members() []string {\n\treturn g.MembersWithOffset(0, g.MemberCount())\n}\n\n// BackupOwnersWithOffset returns a slice of backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. The offset and count parameters allow you\n// to iterate over backup owners in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) BackupOwnersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.backupOwners, offset, count)\n}\n\n// MembersWithOffset returns a slice of members in the group, using the underlying\n// avl.Tree to iterate over the members. The offset and count parameters allow you\n// to iterate over members in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) MembersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.members, offset, count)\n}\n\n// sliceWithOffset is a helper function to iterate over an avl.Tree with an offset and count.\nfunc sliceWithOffset(t *avl.Tree, offset, count int) []string {\n\tvar result []string\n\tt.IterateByOffset(offset, count, func(k string, _ interface{}) bool {\n\t\tif k == \"\" {\n\t\t\treturn true\n\t\t}\n\t\tresult = append(result, k)\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"mgroup_test.gno","body":"package mgroup\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestManagedGroup(t *testing.T) {\n\tt.Parallel()\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\tu3 := testutils.TestAddress(\"u3\")\n\n\tt.Run(\"AddBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddBackupOwner(u2)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"ClaimOwnership\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.Owner() != u2 {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u3)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != ErrNotMember {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotMember.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"AddMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddMember(u2)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure owner cannot be removed\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"MemberCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.MemberCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u3)\n\t\tif g.MemberCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.MemberCount())\n\t\t}\n\t\tg.RemoveMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t})\n\tt.Run(\"BackupOwnerCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.BackupOwnerCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u3)\n\t\tif g.BackupOwnerCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.RemoveBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t})\n\tt.Run(\"IsMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsMember(u1) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u1)\n\t\t}\n\t\tif g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif !g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t}\n\t})\n\tt.Run(\"IsBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsBackupOwner(u1) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u1)\n\t\t}\n\t\tif g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a backup owner\", u2)\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif !g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u2)\n\t\t}\n\t})\n\tt.Run(\"Owner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tstd.TestSetOrigCaller(u2)\n\t\tg.ClaimOwnership()\n\t\tif g.Owner() != u2 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t}\n\t})\n\tt.Run(\"BackupOwners\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\tg.AddBackupOwner(u3)\n\t\towners := g.BackupOwners()\n\t\tif len(owners) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(owners))\n\t\t}\n\t\tif owners[0] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, owners[0])\n\t\t}\n\t\tif owners[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t\tif owners[2] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t})\n\tt.Run(\"Members\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddMember(u2)\n\t\tg.AddMember(u3)\n\t\tmembers := g.Members()\n\t\tif len(members) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(members))\n\t\t}\n\t\tif members[0] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, members[0])\n\t\t}\n\t\tif members[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t\tif members[2] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t})\n}\n\nfunc TestSliceWithOffset(t *testing.T) {\n\tt.Parallel()\n\ttestTable := []struct {\n\t\tname string\n\t\tslice []string\n\t\toffset int\n\t\tcount int\n\t\texpected []string\n\t\texpectedCount int\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tslice: []string{},\n\t\t\toffset: 0,\n\t\t\tcount: 0,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"single\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 0,\n\t\t\tcount: 1,\n\t\t\texpected: []string{\"a\"},\n\t\t\texpectedCount: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"single offset\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 1,\n\t\t\tcount: 1,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 0,\n\t\t\tcount: 10,\n\t\t\texpected: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 10,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 5,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 10,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 11,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset count past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 20,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\ttree := avl.NewTree()\n\t\t\tfor _, s := range test.slice {\n\t\t\t\ttree.Set(s, struct{}{})\n\t\t\t}\n\t\t\tslice := sliceWithOffset(tree, test.offset, test.count)\n\t\t\tif len(slice) != test.expectedCount {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", test.expectedCount, len(slice))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uMIWs3Q3Yx4dFyb0HD7CFvQKd0+7TgwQWV8RCTfgz2d08YgHkDrOo/6x7RQ8XbLmfEvDzwOMiujuLJbho6//Ag=="}],"memo":""},"metadata":{"timestamp":"1732278069"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"needle","path":"gno.land/p/demo/haystack/needle","files":[{"name":"needle.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"errors\"\n)\n\nconst (\n\t// HashLength is the length in bytes of the hash prefix in any message\n\tHashLength = 32\n\t// PayloadLength is the length of the remaining bytes of the message.\n\tPayloadLength = 160\n\t// NeedleLength is the number of bytes required for a valid needle.\n\tNeedleLength = HashLength + PayloadLength\n)\n\n// Needle is a container for a 160 byte payload\n// and a 32 byte sha256 hash of the payload.\ntype Needle struct {\n\thash [HashLength]byte\n\tpayload [PayloadLength]byte\n}\n\nvar (\n\t// ErrorInvalidHash is an error for in invalid hash\n\tErrorInvalidHash = errors.New(\"invalid hash\")\n\t// ErrorByteSliceLength is an error for an invalid byte slice length passed in to New or FromBytes\n\tErrorByteSliceLength = errors.New(\"invalid byte slice length\")\n)\n\n// New creates a Needle used for submitting a payload to a Haystack sever. It takes a Payload\n// byte slice that is 160 bytes in length and returns a reference to a\n// Needle and an error. The purpose of this function is to make it\n// easy to create a new Needle from a payload. This function handles creating a sha256\n// hash of the payload, which is used by the Needle to submit to a haystack server.\nfunc New(p []byte) (*Needle, error) {\n\tif len(p) != PayloadLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tsum := sha256.Sum256(p)\n\tcopy(n.hash[:], sum[:])\n\tcopy(n.payload[:], p)\n\treturn \u0026n, nil\n}\n\n// FromBytes is intended convert raw bytes (from UDP or storage) into a Needle.\n// It takes a byte slice and expects it to be exactly the length of NeedleLength.\n// The byte slice should consist of the first 32 bytes being the sha256 hash of the\n// payload and the payload bytes. This function verifies the length of the byte slice,\n// copies the bytes into a private [192]byte array, and validates the Needle. It returns\n// a reference to a Needle and an error.\nfunc FromBytes(b []byte) (*Needle, error) {\n\tif len(b) != NeedleLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tcopy(n.hash[:], b[:HashLength])\n\tcopy(n.payload[:], b[HashLength:])\n\tif err := n.validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026n, nil\n}\n\n// Hash returns a copy of the bytes of the sha256 256 hash of the Needle payload.\nfunc (n *Needle) Hash() []byte {\n\treturn n.Bytes()[:HashLength]\n}\n\n// Payload returns a byte slice of the Needle payload\nfunc (n *Needle) Payload() []byte {\n\treturn n.Bytes()[HashLength:]\n}\n\n// Bytes returns a byte slice of the entire 192 byte hash + payload\nfunc (n *Needle) Bytes() []byte {\n\tb := make([]byte, NeedleLength)\n\tcopy(b, n.hash[:])\n\tcopy(b[HashLength:], n.payload[:])\n\treturn b\n}\n\n// validate checks that a Needle has a valid hash and that it meets the entropy\n// threshold, it returns either nil or an error.\nfunc (n *Needle) validate() error {\n\tif hash := sha256.Sum256(n.Payload()); !bytes.Equal(n.Hash(), hash[:]) {\n\t\treturn ErrorInvalidHash\n\t}\n\treturn nil\n}\n"},{"name":"needle_test.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"testing\"\n)\n\nfunc TestNeedle(t *testing.T) {\n\tt.Parallel()\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tb := n.Bytes()\n\t\tb[0], b[1], b[2], b[3] = 0, 0, 0, 0\n\t\tif bytes.Equal(n.Bytes(), b) {\n\t\t\tt.Error(\"mutating Bytes() changed needle bytes\")\n\t\t}\n\t})\n\tt.Run(\"Payload\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tpayload := n.Payload()\n\t\tif !bytes.Equal(p, payload) {\n\t\t\tt.Error(\"payload imported by New does not match needle.Payload()\")\n\t\t}\n\t\tpayload[0] = 0\n\t\tpl := n.Payload()\n\t\tif bytes.Equal(pl, payload) {\n\t\t\tt.Error(\"mutating Payload() changed needle payload\")\n\t\t}\n\t})\n\tt.Run(\"Hash\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\thash := n.Hash()\n\t\th := sha256.Sum256(p)\n\t\tif !bytes.Equal(h[:], hash) {\n\t\t\tt.Error(\"exported hash is invalid\")\n\t\t}\n\t\thash[0] = 0\n\t\th2 := n.Hash()\n\t\tif bytes.Equal(h2, hash) {\n\t\t\tt.Error(\"mutating Hash() changed needle hash\")\n\t\t}\n\t})\n}\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\texpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\tpayload []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\tpayload: p,\n\t\t\texpected: expected,\n\t\t\thasError: false,\n\t\t\tdescription: \"expected payload\",\n\t\t},\n\t\t{\n\t\t\tpayload: p[:PayloadLength-1],\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too small)\",\n\t\t},\n\t\t{\n\t\t\tpayload: append(p, byte(1)),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too large)\",\n\t\t},\n\t}\n\n\tfor _, test := range testTable {\n\t\tn, err := New(test.payload)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromBytes(t *testing.T) {\n\tt.Parallel()\n\n\tvalidRaw, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tvalidExpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tinvalidHash, _ := hex.DecodeString(\"182e0ca0d2fb1da76da6caf36a9d0d2838655632e85891216dc8b545d8f1410940e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\trawBytes []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\trawBytes: validRaw,\n\t\t\texpected: validExpected,\n\t\t\thasError: false,\n\t\t\tdescription: \"valid raw bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"empty bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength-1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, one less than expected\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, no bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength+1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too many bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: invalidHash,\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"invalid hash\",\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tn, err := FromBytes(test.rawBytes)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AS7fGkrwe8/Zje4AGp+v089dqxeMs817S2cFS9dbDFWpY856SpIrndx0vyC0NQx+0j76shCYauRDleQfBOAgBQ=="}],"memo":""},"metadata":{"timestamp":"1730933714"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","package":{"name":"needle","path":"gno.land/p/n2p5/haystack/needle","files":[{"name":"needle.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"errors\"\n)\n\nconst (\n\t// HashLength is the length in bytes of the hash prefix in any message\n\tHashLength = 32\n\t// PayloadLength is the length of the remaining bytes of the message.\n\tPayloadLength = 160\n\t// NeedleLength is the number of bytes required for a valid needle.\n\tNeedleLength = HashLength + PayloadLength\n)\n\n// Needle is a container for a 160 byte payload\n// and a 32 byte sha256 hash of the payload.\ntype Needle struct {\n\thash [HashLength]byte\n\tpayload [PayloadLength]byte\n}\n\nvar (\n\t// ErrorInvalidHash is an error for in invalid hash\n\tErrorInvalidHash = errors.New(\"invalid hash\")\n\t// ErrorByteSliceLength is an error for an invalid byte slice length passed in to New or FromBytes\n\tErrorByteSliceLength = errors.New(\"invalid byte slice length\")\n)\n\n// New creates a Needle used for submitting a payload to a Haystack sever. It takes a Payload\n// byte slice that is 160 bytes in length and returns a reference to a\n// Needle and an error. The purpose of this function is to make it\n// easy to create a new Needle from a payload. This function handles creating a sha256\n// hash of the payload, which is used by the Needle to submit to a haystack server.\nfunc New(p []byte) (*Needle, error) {\n\tif len(p) != PayloadLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tsum := sha256.Sum256(p)\n\tcopy(n.hash[:], sum[:])\n\tcopy(n.payload[:], p)\n\treturn \u0026n, nil\n}\n\n// FromBytes is intended convert raw bytes (from UDP or storage) into a Needle.\n// It takes a byte slice and expects it to be exactly the length of NeedleLength.\n// The byte slice should consist of the first 32 bytes being the sha256 hash of the\n// payload and the payload bytes. This function verifies the length of the byte slice,\n// copies the bytes into a private [192]byte array, and validates the Needle. It returns\n// a reference to a Needle and an error.\nfunc FromBytes(b []byte) (*Needle, error) {\n\tif len(b) != NeedleLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tcopy(n.hash[:], b[:HashLength])\n\tcopy(n.payload[:], b[HashLength:])\n\tif err := n.validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026n, nil\n}\n\n// Hash returns a copy of the bytes of the sha256 256 hash of the Needle payload.\nfunc (n *Needle) Hash() []byte {\n\treturn n.Bytes()[:HashLength]\n}\n\n// Payload returns a byte slice of the Needle payload\nfunc (n *Needle) Payload() []byte {\n\treturn n.Bytes()[HashLength:]\n}\n\n// Bytes returns a byte slice of the entire 192 byte hash + payload\nfunc (n *Needle) Bytes() []byte {\n\tb := make([]byte, NeedleLength)\n\tcopy(b, n.hash[:])\n\tcopy(b[HashLength:], n.payload[:])\n\treturn b\n}\n\n// validate checks that a Needle has a valid hash, it returns either nil or an error.\nfunc (n *Needle) validate() error {\n\tif hash := sha256.Sum256(n.Payload()); !bytes.Equal(n.Hash(), hash[:]) {\n\t\treturn ErrorInvalidHash\n\t}\n\treturn nil\n}\n"},{"name":"needle_test.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"testing\"\n)\n\nfunc TestNeedle(t *testing.T) {\n\tt.Parallel()\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tb := n.Bytes()\n\t\tb[0], b[1], b[2], b[3] = 0, 0, 0, 0\n\t\tif bytes.Equal(n.Bytes(), b) {\n\t\t\tt.Error(\"mutating Bytes() changed needle bytes\")\n\t\t}\n\t})\n\tt.Run(\"Payload\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tpayload := n.Payload()\n\t\tif !bytes.Equal(p, payload) {\n\t\t\tt.Error(\"payload imported by New does not match needle.Payload()\")\n\t\t}\n\t\tpayload[0] = 0\n\t\tpl := n.Payload()\n\t\tif bytes.Equal(pl, payload) {\n\t\t\tt.Error(\"mutating Payload() changed needle payload\")\n\t\t}\n\t})\n\tt.Run(\"Hash\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\thash := n.Hash()\n\t\th := sha256.Sum256(p)\n\t\tif !bytes.Equal(h[:], hash) {\n\t\t\tt.Error(\"exported hash is invalid\")\n\t\t}\n\t\thash[0] = 0\n\t\th2 := n.Hash()\n\t\tif bytes.Equal(h2, hash) {\n\t\t\tt.Error(\"mutating Hash() changed needle hash\")\n\t\t}\n\t})\n}\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\texpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\tpayload []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\tpayload: p,\n\t\t\texpected: expected,\n\t\t\thasError: false,\n\t\t\tdescription: \"expected payload\",\n\t\t},\n\t\t{\n\t\t\tpayload: p[:PayloadLength-1],\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too small)\",\n\t\t},\n\t\t{\n\t\t\tpayload: append(p, byte(1)),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too large)\",\n\t\t},\n\t}\n\n\tfor _, test := range testTable {\n\t\tn, err := New(test.payload)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromBytes(t *testing.T) {\n\tt.Parallel()\n\n\tvalidRaw, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tvalidExpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tinvalidHash, _ := hex.DecodeString(\"182e0ca0d2fb1da76da6caf36a9d0d2838655632e85891216dc8b545d8f1410940e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\trawBytes []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\trawBytes: validRaw,\n\t\t\texpected: validExpected,\n\t\t\thasError: false,\n\t\t\tdescription: \"valid raw bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"empty bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength-1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, one less than expected\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, no bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength+1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too many bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: invalidHash,\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"invalid hash\",\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tn, err := FromBytes(test.rawBytes)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GZG0OlyRok5f/YrBiMBY/50OznWJQeADzbtLNgBSYAOSxy4v0dse/TSDkgpKWF1w4uqidzsKbUyr6DCelOpMDg=="}],"memo":""},"metadata":{"timestamp":"1731469204"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jdky3gfkpzg8zdgjsh6k45qdmwqjznqktqr73c","package":{"name":"raffle","path":"gno.land/r/gc24/suchak/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n raffle.RegisterCode(\"hnZRYci7WK\")\n raffle.RegisterUsername(\"suchak1\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wxTiOXV7nptf0a0y00DXCXlBa6EdXVNBlADRb7V7XHbqCrGVbJhOe3H0UYf/xE6uUfyTfHqHkHt7QBy49hj4DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jdky3gfkpzg8zdgjsh6k45qdmwqjznqktqr73c","package":{"name":"raffle","path":"gno.land/r/gc24/suchak/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tRegisterCode(\"hnZRYci7WK\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uyszLhTA9knEABAAyGyoVDfs9r+RRH1lQXaRUzHdBO5ZZN1iBmFWdEGVXxzXL4eLWT/2PFLbI1SOrF20mqsOAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jdky3gfkpzg8zdgjsh6k45qdmwqjznqktqr73c","package":{"name":"raffle","path":"gno.land/r/gc24/suchak/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"hnZRYci7WK\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K3yNkTeNwyG0jERY8s7n7F7ZMuzIejAQhj1VULX5OchfBOityR61RGPbO3RyMyrEsynXB9cMnoLfIn60ZRaRAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jdky3gfkpzg8zdgjsh6k45qdmwqjznqktqr73c","package":{"name":"raffle","path":"gno.land/r/gc24/suchak1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// raffle.RegisterCode(\"hnZRYci7WK\")\n\traffle.RegisterUsername(\"suchak1\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0iuIw1cPUcaiNOLbQQ1sGkhXwqTEkTNiDg+rG9Lwn+9E2rFMyBYiUccbrcWqa4QqTzigQO+rKItcwsr7aPoTBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jdky3gfkpzg8zdgjsh6k45qdmwqjznqktqr73c","package":{"name":"raffle","path":"gno.land/r/gc24/suchak1/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"hnZRYci7WK\")\n\traffle.RegisterUsername(\"suchak1\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"asK13+Sfgg3KuPfk+yKkfJ31b5L6wZr6E+Ck4nBmiPKQhn1gS7H0aL9hG57ALORrg/JpRu8OGWj5a1x9rLDtBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/x87rVovqqt6U+IVdIgFUz8Tbzu//EbvmTPEjKwPGawrZBVGXx2OerMvIIvxjpp4Rai7HVGg1Gh9WvsqEnmKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/x87rVovqqt6U+IVdIgFUz8Tbzu//EbvmTPEjKwPGawrZBVGXx2OerMvIIvxjpp4Rai7HVGg1Gh9WvsqEnmKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/x87rVovqqt6U+IVdIgFUz8Tbzu//EbvmTPEjKwPGawrZBVGXx2OerMvIIvxjpp4Rai7HVGg1Gh9WvsqEnmKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/x87rVovqqt6U+IVdIgFUz8Tbzu//EbvmTPEjKwPGawrZBVGXx2OerMvIIvxjpp4Rai7HVGg1Gh9WvsqEnmKAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sFodml/FhLheehJyHBLA4z3STHe23s4nZY7F4xZ94VASCzzxTxAXpBWfQwAVAeNz84tGwXpwFQWLr1POI+xiCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4m4AR0R0gom/bE2JFErzOq0JQK0P4GS6jxUHhvTJ0Fhn6bFF3Nnh5P/8P9pXAatBHgdUHOZERVWwUyo1Z1FxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1oyRLjIjVBOgADPwV+1hp78k2GFJXNIXStKC1n5RR9d5si0uxYTpMHotjDMSQ1j6lpVtbBKMr0RhtWTqOl/pAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1oyRLjIjVBOgADPwV+1hp78k2GFJXNIXStKC1n5RR9d5si0uxYTpMHotjDMSQ1j6lpVtbBKMr0RhtWTqOl/pAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B09EvST6cqWGxShiV0ouWVmAsMWkpQvyz/4rydS51nwPDNvLPBa2cRykPa1NQSiCk1X7t6Vz+FGUmbZgDdj1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hOnBca9Of2V6AaCK8YfrHm+QnR45OHrMyQGKRdaj88A2v5qE0uXFs+fiPVmCucjwMmOqVz3q2ZMuUJ8qN4mKDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hOnBca9Of2V6AaCK8YfrHm+QnR45OHrMyQGKRdaj88A2v5qE0uXFs+fiPVmCucjwMmOqVz3q2ZMuUJ8qN4mKDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hOnBca9Of2V6AaCK8YfrHm+QnR45OHrMyQGKRdaj88A2v5qE0uXFs+fiPVmCucjwMmOqVz3q2ZMuUJ8qN4mKDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Euf55xAeY0QKv3A1peHebj307pxur2kMm8pBSfV25dormSjy0XH7zarIhsxhzlkcABv/Lvc0JeLYkAQ/TT/UCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"9000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Euf55xAeY0QKv3A1peHebj307pxur2kMm8pBSfV25dormSjy0XH7zarIhsxhzlkcABv/Lvc0JeLYkAQ/TT/UCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mrrjFP5tcnb5hwryqPrMyRUGyZ45IpzUkeawhQxEeEtl5g/6bzd4aTnG2DEHG5rav3gnecmDLMAzy1javyWACA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"acl","path":"gno.land/p/demo/acl","files":[{"name":"acl.gno","body":"package acl\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc New() *Directory {\n\treturn \u0026Directory{\n\t\tuserGroups: avl.Tree{},\n\t\tpermBuckets: avl.Tree{},\n\t}\n}\n\ntype Directory struct {\n\tpermBuckets avl.Tree // identifier -\u003e perms\n\tuserGroups avl.Tree // std.Address -\u003e []string\n}\n\nfunc (d *Directory) HasPerm(addr std.Address, verb, resource string) bool {\n\t// FIXME: consider memoize.\n\n\t// user perms\n\tif d.getBucketPerms(\"u:\"+addr.String()).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// everyone's perms.\n\tif d.getBucketPerms(\"g:\"+Everyone).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// user groups' perms.\n\tgroups, ok := d.userGroups.Get(addr.String())\n\tif ok {\n\t\tfor _, group := range groups.([]string) {\n\t\t\tif d.getBucketPerms(\"g:\"+group).hasPerm(verb, resource) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (d *Directory) getBucketPerms(bucket string) perms {\n\tres, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\treturn res.(perms)\n\t}\n\treturn perms{}\n}\n\nfunc (d *Directory) HasRole(addr std.Address, role string) bool {\n\treturn d.HasPerm(addr, \"role\", role)\n}\n\nfunc (d *Directory) AddUserPerm(addr std.Address, verb, resource string) {\n\tbucket := \"u:\" + addr.String()\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) AddGroupPerm(name string, verb, resource string) {\n\tbucket := \"g:\" + name\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) addPermToBucket(bucket string, p perm) {\n\tvar ps perms\n\n\texisting, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\tps = existing.(perms)\n\t}\n\tps = append(ps, p)\n\n\td.permBuckets.Set(bucket, ps)\n}\n\nfunc (d *Directory) AddUserToGroup(user std.Address, group string) {\n\texisting, ok := d.userGroups.Get(user.String())\n\tvar groups []string\n\tif ok {\n\t\tgroups = existing.([]string)\n\t}\n\tgroups = append(groups, group)\n\td.userGroups.Set(user.String(), groups)\n}\n\n// TODO: helpers to remove permissions.\n// TODO: helpers to adds multiple permissions at once -\u003e {verbs: []string{\"read\",\"write\"}}.\n// TODO: helpers to delete users from gorups.\n// TODO: helpers to quickly reset states.\n"},{"name":"acl_test.gno","body":"package acl\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Test(t *testing.T) {\n\tadm := testutils.TestAddress(\"admin\")\n\tmod := testutils.TestAddress(\"mod\")\n\tusr := testutils.TestAddress(\"user\")\n\tcst := testutils.TestAddress(\"custom\")\n\n\tdir := New()\n\n\t// by default, no one has perm.\n\tshouldNotHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldNotHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding all the rights to admin.\n\tdir.AddUserPerm(adm, \".*\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding custom regexp rule for user \"cst\".\n\tdir.AddUserPerm(cst, \"write\", \"r/demo/boards:gnolang/.*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding a group perm for a new group.\n\t// no changes expected.\n\tdir.AddGroupPerm(\"mods\", \"role\", \"moderator\")\n\tdir.AddGroupPerm(\"mods\", \"write\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// assigning the user \"mod\" to the \"mods\" group.\n\tdir.AddUserToGroup(mod, \"mods\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding \"read\" permission for everyone.\n\tdir.AddGroupPerm(Everyone, \"read\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\") // new\n}\n\nfunc shouldHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has role %s\", addr.String(), role))\n}\n\nfunc shouldNotHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has role %s\", addr.String(), role))\n}\n\nfunc shouldHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has perm for %s - %s\", addr.String(), verb, resource))\n}\n\nfunc shouldNotHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has perm for %s - %s\", addr.String(), verb, resource))\n}\n"},{"name":"const.gno","body":"package acl\n\nconst Everyone string = \"everyone\"\n"},{"name":"perm.gno","body":"package acl\n\nimport \"regexp\"\n\ntype perm struct {\n\tverbs []string\n\tresources []string\n}\n\nfunc (perm perm) hasPerm(verb, resource string) bool {\n\t// check verb\n\tverbOK := false\n\tfor _, pattern := range perm.verbs {\n\t\tif match(pattern, verb) {\n\t\t\tverbOK = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !verbOK {\n\t\treturn false\n\t}\n\n\t// check resource\n\tfor _, pattern := range perm.resources {\n\t\tif match(pattern, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc match(pattern, target string) bool {\n\tif pattern == \".*\" {\n\t\treturn true\n\t}\n\n\tif pattern == target {\n\t\treturn true\n\t}\n\n\t// regexp handling\n\tmatch, _ := regexp.MatchString(pattern, target)\n\treturn match\n}\n"},{"name":"perms.gno","body":"package acl\n\ntype perms []perm\n\nfunc (perms perms) hasPerm(verb, resource string) bool {\n\tfor _, perm := range perms {\n\t\tif perm.hasPerm(verb, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mVAqO749pzHSg+sRk661bhF/Mnt5UsVfaFApjIMUJQLV5dzoU/CuR6us2dQJNdFmwY4OuXVVpiYrrRlBxl3RBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"acl","path":"gno.land/p/demo/acl","files":[{"name":"acl.gno","body":"package acl\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc New() *Directory {\n\treturn \u0026Directory{\n\t\tuserGroups: avl.Tree{},\n\t\tpermBuckets: avl.Tree{},\n\t}\n}\n\ntype Directory struct {\n\tpermBuckets avl.Tree // identifier -\u003e perms\n\tuserGroups avl.Tree // std.Address -\u003e []string\n}\n\nfunc (d *Directory) HasPerm(addr std.Address, verb, resource string) bool {\n\t// FIXME: consider memoize.\n\n\t// user perms\n\tif d.getBucketPerms(\"u:\"+addr.String()).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// everyone's perms.\n\tif d.getBucketPerms(\"g:\"+Everyone).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// user groups' perms.\n\tgroups, ok := d.userGroups.Get(addr.String())\n\tif ok {\n\t\tfor _, group := range groups.([]string) {\n\t\t\tif d.getBucketPerms(\"g:\"+group).hasPerm(verb, resource) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (d *Directory) getBucketPerms(bucket string) perms {\n\tres, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\treturn res.(perms)\n\t}\n\treturn perms{}\n}\n\nfunc (d *Directory) HasRole(addr std.Address, role string) bool {\n\treturn d.HasPerm(addr, \"role\", role)\n}\n\nfunc (d *Directory) AddUserPerm(addr std.Address, verb, resource string) {\n\tbucket := \"u:\" + addr.String()\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) AddGroupPerm(name string, verb, resource string) {\n\tbucket := \"g:\" + name\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) addPermToBucket(bucket string, p perm) {\n\tvar ps perms\n\n\texisting, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\tps = existing.(perms)\n\t}\n\tps = append(ps, p)\n\n\td.permBuckets.Set(bucket, ps)\n}\n\nfunc (d *Directory) AddUserToGroup(user std.Address, group string) {\n\texisting, ok := d.userGroups.Get(user.String())\n\tvar groups []string\n\tif ok {\n\t\tgroups = existing.([]string)\n\t}\n\tgroups = append(groups, group)\n\td.userGroups.Set(user.String(), groups)\n}\n\n// TODO: helpers to remove permissions.\n// TODO: helpers to adds multiple permissions at once -\u003e {verbs: []string{\"read\",\"write\"}}.\n// TODO: helpers to delete users from gorups.\n// TODO: helpers to quickly reset states.\n"},{"name":"acl_test.gno","body":"package acl\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Test(t *testing.T) {\n\tadm := testutils.TestAddress(\"admin\")\n\tmod := testutils.TestAddress(\"mod\")\n\tusr := testutils.TestAddress(\"user\")\n\tcst := testutils.TestAddress(\"custom\")\n\n\tdir := New()\n\n\t// by default, no one has perm.\n\tshouldNotHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldNotHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding all the rights to admin.\n\tdir.AddUserPerm(adm, \".*\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding custom regexp rule for user \"cst\".\n\tdir.AddUserPerm(cst, \"write\", \"r/demo/boards:gnolang/.*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding a group perm for a new group.\n\t// no changes expected.\n\tdir.AddGroupPerm(\"mods\", \"role\", \"moderator\")\n\tdir.AddGroupPerm(\"mods\", \"write\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// assigning the user \"mod\" to the \"mods\" group.\n\tdir.AddUserToGroup(mod, \"mods\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding \"read\" permission for everyone.\n\tdir.AddGroupPerm(Everyone, \"read\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\") // new\n}\n\nfunc shouldHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has role %s\", addr.String(), role))\n}\n\nfunc shouldNotHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has role %s\", addr.String(), role))\n}\n\nfunc shouldHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has perm for %s - %s\", addr.String(), verb, resource))\n}\n\nfunc shouldNotHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has perm for %s - %s\", addr.String(), verb, resource))\n}\n"},{"name":"const.gno","body":"package acl\n\nconst Everyone string = \"everyone\"\n"},{"name":"perm.gno","body":"package acl\n\nimport \"regexp\"\n\ntype perm struct {\n\tverbs []string\n\tresources []string\n}\n\nfunc (perm perm) hasPerm(verb, resource string) bool {\n\t// check verb\n\tverbOK := false\n\tfor _, pattern := range perm.verbs {\n\t\tif match(pattern, verb) {\n\t\t\tverbOK = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !verbOK {\n\t\treturn false\n\t}\n\n\t// check resource\n\tfor _, pattern := range perm.resources {\n\t\tif match(pattern, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc match(pattern, target string) bool {\n\tif pattern == \".*\" {\n\t\treturn true\n\t}\n\n\tif pattern == target {\n\t\treturn true\n\t}\n\n\t// regexp handling\n\tmatch, _ := regexp.MatchString(pattern, target)\n\treturn match\n}\n"},{"name":"perms.gno","body":"package acl\n\ntype perms []perm\n\nfunc (perms perms) hasPerm(verb, resource string) bool {\n\tfor _, perm := range perms {\n\t\tif perm.hasPerm(verb, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mVAqO749pzHSg+sRk661bhF/Mnt5UsVfaFApjIMUJQLV5dzoU/CuR6us2dQJNdFmwY4OuXVVpiYrrRlBxl3RBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"acl","path":"gno.land/p/demo/acl","files":[{"name":"acl.gno","body":"package acl\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc New() *Directory {\n\treturn \u0026Directory{\n\t\tuserGroups: avl.Tree{},\n\t\tpermBuckets: avl.Tree{},\n\t}\n}\n\ntype Directory struct {\n\tpermBuckets avl.Tree // identifier -\u003e perms\n\tuserGroups avl.Tree // std.Address -\u003e []string\n}\n\nfunc (d *Directory) HasPerm(addr std.Address, verb, resource string) bool {\n\t// FIXME: consider memoize.\n\n\t// user perms\n\tif d.getBucketPerms(\"u:\"+addr.String()).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// everyone's perms.\n\tif d.getBucketPerms(\"g:\"+Everyone).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// user groups' perms.\n\tgroups, ok := d.userGroups.Get(addr.String())\n\tif ok {\n\t\tfor _, group := range groups.([]string) {\n\t\t\tif d.getBucketPerms(\"g:\"+group).hasPerm(verb, resource) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (d *Directory) getBucketPerms(bucket string) perms {\n\tres, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\treturn res.(perms)\n\t}\n\treturn perms{}\n}\n\nfunc (d *Directory) HasRole(addr std.Address, role string) bool {\n\treturn d.HasPerm(addr, \"role\", role)\n}\n\nfunc (d *Directory) AddUserPerm(addr std.Address, verb, resource string) {\n\tbucket := \"u:\" + addr.String()\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) AddGroupPerm(name string, verb, resource string) {\n\tbucket := \"g:\" + name\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) addPermToBucket(bucket string, p perm) {\n\tvar ps perms\n\n\texisting, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\tps = existing.(perms)\n\t}\n\tps = append(ps, p)\n\n\td.permBuckets.Set(bucket, ps)\n}\n\nfunc (d *Directory) AddUserToGroup(user std.Address, group string) {\n\texisting, ok := d.userGroups.Get(user.String())\n\tvar groups []string\n\tif ok {\n\t\tgroups = existing.([]string)\n\t}\n\tgroups = append(groups, group)\n\td.userGroups.Set(user.String(), groups)\n}\n\n// TODO: helpers to remove permissions.\n// TODO: helpers to adds multiple permissions at once -\u003e {verbs: []string{\"read\",\"write\"}}.\n// TODO: helpers to delete users from gorups.\n// TODO: helpers to quickly reset states.\n"},{"name":"acl_test.gno","body":"package acl\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Test(t *testing.T) {\n\tadm := testutils.TestAddress(\"admin\")\n\tmod := testutils.TestAddress(\"mod\")\n\tusr := testutils.TestAddress(\"user\")\n\tcst := testutils.TestAddress(\"custom\")\n\n\tdir := New()\n\n\t// by default, no one has perm.\n\tshouldNotHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldNotHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding all the rights to admin.\n\tdir.AddUserPerm(adm, \".*\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding custom regexp rule for user \"cst\".\n\tdir.AddUserPerm(cst, \"write\", \"r/demo/boards:gnolang/.*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding a group perm for a new group.\n\t// no changes expected.\n\tdir.AddGroupPerm(\"mods\", \"role\", \"moderator\")\n\tdir.AddGroupPerm(\"mods\", \"write\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// assigning the user \"mod\" to the \"mods\" group.\n\tdir.AddUserToGroup(mod, \"mods\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding \"read\" permission for everyone.\n\tdir.AddGroupPerm(Everyone, \"read\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\") // new\n}\n\nfunc shouldHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has role %s\", addr.String(), role))\n}\n\nfunc shouldNotHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has role %s\", addr.String(), role))\n}\n\nfunc shouldHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has perm for %s - %s\", addr.String(), verb, resource))\n}\n\nfunc shouldNotHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has perm for %s - %s\", addr.String(), verb, resource))\n}\n"},{"name":"const.gno","body":"package acl\n\nconst Everyone string = \"everyone\"\n"},{"name":"perm.gno","body":"package acl\n\nimport \"regexp\"\n\ntype perm struct {\n\tverbs []string\n\tresources []string\n}\n\nfunc (perm perm) hasPerm(verb, resource string) bool {\n\t// check verb\n\tverbOK := false\n\tfor _, pattern := range perm.verbs {\n\t\tif match(pattern, verb) {\n\t\t\tverbOK = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !verbOK {\n\t\treturn false\n\t}\n\n\t// check resource\n\tfor _, pattern := range perm.resources {\n\t\tif match(pattern, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc match(pattern, target string) bool {\n\tif pattern == \".*\" {\n\t\treturn true\n\t}\n\n\tif pattern == target {\n\t\treturn true\n\t}\n\n\t// regexp handling\n\tmatch, _ := regexp.MatchString(pattern, target)\n\treturn match\n}\n"},{"name":"perms.gno","body":"package acl\n\ntype perms []perm\n\nfunc (perms perms) hasPerm(verb, resource string) bool {\n\tfor _, perm := range perms {\n\t\tif perm.hasPerm(verb, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mVAqO749pzHSg+sRk661bhF/Mnt5UsVfaFApjIMUJQLV5dzoU/CuR6us2dQJNdFmwY4OuXVVpiYrrRlBxl3RBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"adder","path":"gno.land/r/docs/adder","files":[{"name":"adder.gno","body":"package adder\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\n// Global variables to store the current number and last update timestamp\nvar (\n\tnumber int\n\tlastUpdate time.Time\n)\n\n// Add function to update the number and timestamp\nfunc Add(n int) {\n\tnumber += n\n\tlastUpdate = time.Now()\n}\n\n// Render displays the current number value, last update timestamp, and a link to call Add with 42\nfunc Render(path string) string {\n\t// Display the current number and formatted last update time\n\tresult := \"# Add Example\\n\\n\"\n\tresult += \"Current Number: \" + strconv.Itoa(number) + \"\\n\\n\"\n\tresult += \"Last Updated: \" + formatTimestamp(lastUpdate) + \"\\n\\n\"\n\n\t// Generate a transaction link to call Add with 42 as the default parameter\n\ttxLink := txlink.Call(\"Add\", \"n\", \"42\")\n\tresult += \"[Increase Number](\" + txLink + \")\\n\"\n\n\treturn result\n}\n\n// Helper function to format the timestamp for readability\nfunc formatTimestamp(timestamp time.Time) string {\n\tif timestamp.IsZero() {\n\t\treturn \"Never\"\n\t}\n\treturn timestamp.Format(\"2006-01-02 15:04:05\")\n}\n"},{"name":"adder_test.gno","body":"package adder\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRenderAndAdd(t *testing.T) {\n\t// Initial Render output\n\toutput := Render(\"\")\n\texpected := `# Add Example\n\nCurrent Number: 0\n\nLast Updated: Never\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Initial Render failed, got:\\n%s\", output)\n\t}\n\n\t// Call Add with a value of 10\n\tAdd(10)\n\n\t// Call Add again with a value of -5\n\tAdd(-5)\n\n\t// Render after two Add calls\n\tfinalOutput := Render(\"\")\n\n\t// Initial Render output\n\toutput = Render(\"\")\n\texpected = `# Add Example\n\nCurrent Number: 5\n\nLast Updated: 2009-02-13 23:31:30\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Final Render failed, got:\\n%s\\nexpected:\\n%s\", output, finalOutput)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"raSReG+ioJbj6j0MwqaNOng7H6kaqgELAOXqlrr7HZ+OmfpVAtZB6MFl0lN3USAur3vMPc8wgfAWhQaey00TDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"adder","path":"gno.land/r/docs/adder","files":[{"name":"adder.gno","body":"package adder\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\n// Global variables to store the current number and last update timestamp\nvar (\n\tnumber int\n\tlastUpdate time.Time\n)\n\n// Add function to update the number and timestamp\nfunc Add(n int) {\n\tnumber += n\n\tlastUpdate = time.Now()\n}\n\n// Render displays the current number value, last update timestamp, and a link to call Add with 42\nfunc Render(path string) string {\n\t// Display the current number and formatted last update time\n\tresult := \"# Add Example\\n\\n\"\n\tresult += \"Current Number: \" + strconv.Itoa(number) + \"\\n\\n\"\n\tresult += \"Last Updated: \" + formatTimestamp(lastUpdate) + \"\\n\\n\"\n\n\t// Generate a transaction link to call Add with 42 as the default parameter\n\ttxLink := txlink.URL(\"Add\", \"n\", \"42\")\n\tresult += \"[Increase Number](\" + txLink + \")\\n\"\n\n\treturn result\n}\n\n// Helper function to format the timestamp for readability\nfunc formatTimestamp(timestamp time.Time) string {\n\tif timestamp.IsZero() {\n\t\treturn \"Never\"\n\t}\n\treturn timestamp.Format(\"2006-01-02 15:04:05\")\n}\n"},{"name":"adder_test.gno","body":"package adder\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRenderAndAdd(t *testing.T) {\n\t// Initial Render output\n\toutput := Render(\"\")\n\texpected := `# Add Example\n\nCurrent Number: 0\n\nLast Updated: Never\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Initial Render failed, got:\\n%s\", output)\n\t}\n\n\t// Call Add with a value of 10\n\tAdd(10)\n\n\t// Call Add again with a value of -5\n\tAdd(-5)\n\n\t// Render after two Add calls\n\tfinalOutput := Render(\"\")\n\n\t// Initial Render output\n\toutput = Render(\"\")\n\texpected = `# Add Example\n\nCurrent Number: 5\n\nLast Updated: 2009-02-13 23:31:30\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Final Render failed, got:\\n%s\\nexpected:\\n%s\", output, finalOutput)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0hXnS0AeKPJv09mys5swtTxJFsNyPeO5EBqICqohJpMjCdEwyo3B2yvge3FDL1IZWnWaRu/jykQ7lOj6QpSuAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"adder","path":"gno.land/r/docs/adder","files":[{"name":"adder.gno","body":"package adder\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\n// Global variables to store the current number and last update timestamp\nvar (\n\tnumber int\n\tlastUpdate time.Time\n)\n\n// Add function to update the number and timestamp\nfunc Add(n int) {\n\tnumber += n\n\tlastUpdate = time.Now()\n}\n\n// Render displays the current number value, last update timestamp, and a link to call Add with 42\nfunc Render(path string) string {\n\t// Display the current number and formatted last update time\n\tresult := \"# Add Example\\n\\n\"\n\tresult += \"Current Number: \" + strconv.Itoa(number) + \"\\n\\n\"\n\tresult += \"Last Updated: \" + formatTimestamp(lastUpdate) + \"\\n\\n\"\n\n\t// Generate a transaction link to call Add with 42 as the default parameter\n\ttxLink := txlink.URL(\"Add\", \"n\", \"42\")\n\tresult += \"[Increase Number](\" + txLink + \")\\n\"\n\n\treturn result\n}\n\n// Helper function to format the timestamp for readability\nfunc formatTimestamp(timestamp time.Time) string {\n\tif timestamp.IsZero() {\n\t\treturn \"Never\"\n\t}\n\treturn timestamp.Format(\"2006-01-02 15:04:05\")\n}\n"},{"name":"adder_test.gno","body":"package adder\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRenderAndAdd(t *testing.T) {\n\t// Initial Render output\n\toutput := Render(\"\")\n\texpected := `# Add Example\n\nCurrent Number: 0\n\nLast Updated: Never\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Initial Render failed, got:\\n%s\", output)\n\t}\n\n\t// Call Add with a value of 10\n\tAdd(10)\n\n\t// Call Add again with a value of -5\n\tAdd(-5)\n\n\t// Render after two Add calls\n\tfinalOutput := Render(\"\")\n\n\t// Initial Render output\n\toutput = Render(\"\")\n\texpected = `# Add Example\n\nCurrent Number: 5\n\nLast Updated: 2009-02-13 23:31:30\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Final Render failed, got:\\n%s\\nexpected:\\n%s\", output, finalOutput)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0hXnS0AeKPJv09mys5swtTxJFsNyPeO5EBqICqohJpMjCdEwyo3B2yvge3FDL1IZWnWaRu/jykQ7lOj6QpSuAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"adder","path":"gno.land/r/docs/adder","files":[{"name":"adder.gno","body":"package adder\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\n// Global variables to store the current number and last update timestamp\nvar (\n\tnumber int\n\tlastUpdate time.Time\n)\n\n// Add function to update the number and timestamp\nfunc Add(n int) {\n\tnumber += n\n\tlastUpdate = time.Now()\n}\n\n// Render displays the current number value, last update timestamp, and a link to call Add with 42\nfunc Render(path string) string {\n\t// Display the current number and formatted last update time\n\tresult := \"# Add Example\\n\\n\"\n\tresult += \"Current Number: \" + strconv.Itoa(number) + \"\\n\\n\"\n\tresult += \"Last Updated: \" + formatTimestamp(lastUpdate) + \"\\n\\n\"\n\n\t// Generate a transaction link to call Add with 42 as the default parameter\n\ttxLink := txlink.URL(\"Add\", \"n\", \"42\")\n\tresult += \"[Increase Number](\" + txLink + \")\\n\"\n\n\treturn result\n}\n\n// Helper function to format the timestamp for readability\nfunc formatTimestamp(timestamp time.Time) string {\n\tif timestamp.IsZero() {\n\t\treturn \"Never\"\n\t}\n\treturn timestamp.Format(\"2006-01-02 15:04:05\")\n}\n"},{"name":"adder_test.gno","body":"package adder\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRenderAndAdd(t *testing.T) {\n\t// Initial Render output\n\toutput := Render(\"\")\n\texpected := `# Add Example\n\nCurrent Number: 0\n\nLast Updated: Never\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Initial Render failed, got:\\n%s\", output)\n\t}\n\n\t// Call Add with a value of 10\n\tAdd(10)\n\n\t// Call Add again with a value of -5\n\tAdd(-5)\n\n\t// Render after two Add calls\n\tfinalOutput := Render(\"\")\n\n\t// Initial Render output\n\toutput = Render(\"\")\n\texpected = `# Add Example\n\nCurrent Number: 5\n\nLast Updated: 2009-02-13 23:31:30\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Final Render failed, got:\\n%s\\nexpected:\\n%s\", output, finalOutput)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0hXnS0AeKPJv09mys5swtTxJFsNyPeO5EBqICqohJpMjCdEwyo3B2yvge3FDL1IZWnWaRu/jykQ7lOj6QpSuAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"agent","path":"gno.land/p/demo/gnorkle/agent","files":[{"name":"whitelist.gno","body":"package agent\n\nimport \"gno.land/p/demo/avl\"\n\n// Whitelist manages whitelisted agent addresses.\ntype Whitelist struct {\n\tstore *avl.Tree\n}\n\n// ClearAddresses removes all addresses from the whitelist and puts into a state\n// that indicates it is moot and has no whitelist defined.\nfunc (m *Whitelist) ClearAddresses() {\n\tm.store = nil\n}\n\n// AddAddresses adds the given addresses to the whitelist.\nfunc (m *Whitelist) AddAddresses(addresses []string) {\n\tif m.store == nil {\n\t\tm.store = avl.NewTree()\n\t}\n\n\tfor _, address := range addresses {\n\t\tm.store.Set(address, struct{}{})\n\t}\n}\n\n// RemoveAddress removes the given address from the whitelist if it exists.\nfunc (m *Whitelist) RemoveAddress(address string) {\n\tif m.store == nil {\n\t\treturn\n\t}\n\n\tm.store.Remove(address)\n}\n\n// HasDefinition returns true if the whitelist has a definition. It retuns false if\n// `ClearAddresses` has been called without any subsequent `AddAddresses` calls, or\n// if `AddAddresses` has never been called.\nfunc (m Whitelist) HasDefinition() bool {\n\treturn m.store != nil\n}\n\n// HasAddress returns true if the given address is in the whitelist.\nfunc (m Whitelist) HasAddress(address string) bool {\n\tif m.store == nil {\n\t\treturn false\n\t}\n\n\treturn m.store.Has(address)\n}\n"},{"name":"whitelist_test.gno","body":"package agent_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestWhitelist(t *testing.T) {\n\tvar whitelist agent.Whitelist\n\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist should not be defined initially\")\n\n\twhitelist.AddAddresses([]string{\"a\", \"b\"})\n\tuassert.True(t, whitelist.HasAddress(\"a\"), `whitelist should have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should have address \"b\"`)\n\tuassert.True(t, whitelist.HasDefinition(), \"whitelist should be defined after adding addresses\")\n\n\twhitelist.RemoveAddress(\"a\")\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist should not have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should still have address \"b\"`)\n\n\twhitelist.ClearAddresses()\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist cleared; should not have address \"a\"`)\n\tuassert.False(t, whitelist.HasAddress(\"b\"), `whitelist cleared; should still have address \"b\"`)\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist cleared; should not be defined\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bp8fGDw9V2bELXCWHBza2qsQ85NLoSdyZd4GIUwuPN2zPUwaYKNs+auVpKJn+ZoYh5zbrWqfr3Yyb4375wfCCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"agent","path":"gno.land/p/demo/gnorkle/agent","files":[{"name":"whitelist.gno","body":"package agent\n\nimport \"gno.land/p/demo/avl\"\n\n// Whitelist manages whitelisted agent addresses.\ntype Whitelist struct {\n\tstore *avl.Tree\n}\n\n// ClearAddresses removes all addresses from the whitelist and puts into a state\n// that indicates it is moot and has no whitelist defined.\nfunc (m *Whitelist) ClearAddresses() {\n\tm.store = nil\n}\n\n// AddAddresses adds the given addresses to the whitelist.\nfunc (m *Whitelist) AddAddresses(addresses []string) {\n\tif m.store == nil {\n\t\tm.store = avl.NewTree()\n\t}\n\n\tfor _, address := range addresses {\n\t\tm.store.Set(address, struct{}{})\n\t}\n}\n\n// RemoveAddress removes the given address from the whitelist if it exists.\nfunc (m *Whitelist) RemoveAddress(address string) {\n\tif m.store == nil {\n\t\treturn\n\t}\n\n\tm.store.Remove(address)\n}\n\n// HasDefinition returns true if the whitelist has a definition. It retuns false if\n// `ClearAddresses` has been called without any subsequent `AddAddresses` calls, or\n// if `AddAddresses` has never been called.\nfunc (m Whitelist) HasDefinition() bool {\n\treturn m.store != nil\n}\n\n// HasAddress returns true if the given address is in the whitelist.\nfunc (m Whitelist) HasAddress(address string) bool {\n\tif m.store == nil {\n\t\treturn false\n\t}\n\n\treturn m.store.Has(address)\n}\n"},{"name":"whitelist_test.gno","body":"package agent_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestWhitelist(t *testing.T) {\n\tvar whitelist agent.Whitelist\n\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist should not be defined initially\")\n\n\twhitelist.AddAddresses([]string{\"a\", \"b\"})\n\tuassert.True(t, whitelist.HasAddress(\"a\"), `whitelist should have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should have address \"b\"`)\n\tuassert.True(t, whitelist.HasDefinition(), \"whitelist should be defined after adding addresses\")\n\n\twhitelist.RemoveAddress(\"a\")\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist should not have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should still have address \"b\"`)\n\n\twhitelist.ClearAddresses()\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist cleared; should not have address \"a\"`)\n\tuassert.False(t, whitelist.HasAddress(\"b\"), `whitelist cleared; should still have address \"b\"`)\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist cleared; should not be defined\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bp8fGDw9V2bELXCWHBza2qsQ85NLoSdyZd4GIUwuPN2zPUwaYKNs+auVpKJn+ZoYh5zbrWqfr3Yyb4375wfCCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"agent","path":"gno.land/p/demo/gnorkle/agent","files":[{"name":"whitelist.gno","body":"package agent\n\nimport \"gno.land/p/demo/avl\"\n\n// Whitelist manages whitelisted agent addresses.\ntype Whitelist struct {\n\tstore *avl.Tree\n}\n\n// ClearAddresses removes all addresses from the whitelist and puts into a state\n// that indicates it is moot and has no whitelist defined.\nfunc (m *Whitelist) ClearAddresses() {\n\tm.store = nil\n}\n\n// AddAddresses adds the given addresses to the whitelist.\nfunc (m *Whitelist) AddAddresses(addresses []string) {\n\tif m.store == nil {\n\t\tm.store = avl.NewTree()\n\t}\n\n\tfor _, address := range addresses {\n\t\tm.store.Set(address, struct{}{})\n\t}\n}\n\n// RemoveAddress removes the given address from the whitelist if it exists.\nfunc (m *Whitelist) RemoveAddress(address string) {\n\tif m.store == nil {\n\t\treturn\n\t}\n\n\tm.store.Remove(address)\n}\n\n// HasDefinition returns true if the whitelist has a definition. It retuns false if\n// `ClearAddresses` has been called without any subsequent `AddAddresses` calls, or\n// if `AddAddresses` has never been called.\nfunc (m Whitelist) HasDefinition() bool {\n\treturn m.store != nil\n}\n\n// HasAddress returns true if the given address is in the whitelist.\nfunc (m Whitelist) HasAddress(address string) bool {\n\tif m.store == nil {\n\t\treturn false\n\t}\n\n\treturn m.store.Has(address)\n}\n"},{"name":"whitelist_test.gno","body":"package agent_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestWhitelist(t *testing.T) {\n\tvar whitelist agent.Whitelist\n\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist should not be defined initially\")\n\n\twhitelist.AddAddresses([]string{\"a\", \"b\"})\n\tuassert.True(t, whitelist.HasAddress(\"a\"), `whitelist should have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should have address \"b\"`)\n\tuassert.True(t, whitelist.HasDefinition(), \"whitelist should be defined after adding addresses\")\n\n\twhitelist.RemoveAddress(\"a\")\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist should not have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should still have address \"b\"`)\n\n\twhitelist.ClearAddresses()\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist cleared; should not have address \"a\"`)\n\tuassert.False(t, whitelist.HasAddress(\"b\"), `whitelist cleared; should still have address \"b\"`)\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist cleared; should not be defined\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bp8fGDw9V2bELXCWHBza2qsQ85NLoSdyZd4GIUwuPN2zPUwaYKNs+auVpKJn+ZoYh5zbrWqfr3Yyb4375wfCCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"alerts","path":"gno.land/p/gnome/alerts","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"alerts.gno","body":"package alerts\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tTypeError Type = \"alerts-error\"\n\tTypeWarning Type = \"alerts-warning\"\n)\n\nconst (\n\tStyleError = `\n.alerts-error {\n\tpadding: .75rem 1.25rem;\n\tborder: 1px solid #f5c6cb;\n\tbackground-color: #f8d7da;\n\tcolor: #721c24;\n\tborder-radius: .25rem;\n}\n`\n\tStyleWarning = `\n.alerts-warning {\n\tpadding: .75rem 1.25rem;\n\tborder: 1px solid #ffeeba;\n\tbackground-color: #fff3cd;\n\tcolor: #856404;\n\tborder-radius: .25rem;\n}\n`\n)\n\n// Type defines the type of alerts.\ntype Type string\n\n// NewAlert returns HTML for an alert.\nfunc NewAlert(t Type, content string) string {\n\tvar css string\n\tswitch t {\n\tcase TypeWarning:\n\t\tcss = StyleWarning\n\tcase TypeError:\n\t\tcss = StyleError\n\tdefault:\n\t\tpanic(\"unknown alert type\")\n\t}\n\n\treturn \"\\n\\n\" + ufmt.Sprintf(`\u003cp class=\"%s\"\u003e%s\u003c/p\u003e\u003cstyle\u003e%s\u003c/style\u003e`, string(t), content, css) + \"\\n\\n\"\n}\n\n// NewWarning returns HTML for a warning alert.\nfunc NewWarning(content string) string {\n\treturn NewAlert(TypeWarning, content)\n}\n\n// NewError returns HTML for an error alert.\nfunc NewError(content string) string {\n\treturn NewAlert(TypeError, content)\n}\n\n// NewLink returns an HTML link.\nfunc NewLink(href, label string) string {\n\treturn ufmt.Sprintf(`\u003ca href=\"%s\"\u003e%s\u003c/a\u003e`, href, label)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"21000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DuGM875Vh8zOriZkK9/8RTjSy98+H1NeZn0YUKemOXQdVhTQ8rv22LNkHnWPF4d/PiIXzB6ElnCqpPemr1cZCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"authorizable","path":"gno.land/p/demo/ownable/exts/authorizable","files":[{"name":"authorizable.gno","body":"// Package authorizable is an extension of p/demo/ownable;\n// It allows the user to instantiate an Authorizable struct, which extends\n// p/demo/ownable with a list of users that are authorized for something.\n// By using authorizable, you have a superuser (ownable), as well as another\n// authorization level, which can be used for adding moderators or similar to your realm.\npackage authorizable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Authorizable struct {\n\t*ownable.Ownable // owner in ownable is superuser\n\tauthorized *avl.Tree // std.Addr \u003e struct{}{}\n}\n\nfunc NewAuthorizable() *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.New(),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc NewAuthorizableWithAddress(addr std.Address) *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.NewWithAddress(addr),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc (a *Authorizable) AddToAuthList(addr std.Address) error {\n\tif err := a.CallerIsOwner(); err != nil {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif _, exists := a.authorized.Get(addr.String()); exists {\n\t\treturn ErrAlreadyInList\n\t}\n\n\ta.authorized.Set(addr.String(), struct{}{})\n\n\treturn nil\n}\n\nfunc (a *Authorizable) DeleteFromAuthList(addr std.Address) error {\n\tif err := a.CallerIsOwner(); err != nil {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif !a.authorized.Has(addr.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\tif _, removed := a.authorized.Remove(addr.String()); !removed {\n\t\tstr := ufmt.Sprintf(\"authorizable: could not remove %s from auth list\", addr.String())\n\t\tpanic(str)\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) CallerOnAuthList() error {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) AssertOnAuthList() {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\tpanic(ErrNotInAuthList)\n\t}\n}\n"},{"name":"authorizable_test.gno","body":"package authorizable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestNewAuthorizable(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug, issue #2371): should not be needed\n\n\ta := NewAuthorizable()\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewAuthorizableWithAddress(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.CallerOnAuthList(); err == ErrNotInAuthList {\n\t\tt.Fatalf(\"expected alice to be on the list\")\n\t}\n}\n\nfunc TestNotCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.CallerOnAuthList(); err == nil {\n\t\tt.Fatalf(\"expected bob to not be on the list\")\n\t}\n}\n\nfunc TestAddToAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.AddToAuthList(bob); err == nil {\n\t\tt.Fatalf(\"Expected AddToAuth to error while bob called it, but it didn't\")\n\t}\n}\n\nfunc TestDeleteFromList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tif err := a.AddToAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\t// Try an unauthorized deletion\n\tif err := a.DeleteFromAuthList(alice); err == nil {\n\t\tt.Fatalf(\"Expected DelFromAuth to error with %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.DeleteFromAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n}\n\nfunc TestAssertOnList(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\ta := NewAuthorizableWithAddress(alice)\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tuassert.PanicsWithMessage(t, ErrNotInAuthList.Error(), func() {\n\t\ta.AssertOnAuthList()\n\t})\n}\n"},{"name":"errors.gno","body":"package authorizable\n\nimport \"errors\"\n\nvar (\n\tErrNotInAuthList = errors.New(\"authorizable: caller is not in authorized list\")\n\tErrNotSuperuser = errors.New(\"authorizable: caller is not superuser\")\n\tErrAlreadyInList = errors.New(\"authorizable: address is already in authorized list\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"550v7pDGI7vpABPmxj6xQp+LVmKoQZn9DVAoJpLnnIkvI2Lws4jTk0xbiSiQcUXwhhQ6tv7nema3lfXUDBIrBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"authorizable","path":"gno.land/p/demo/ownable/exts/authorizable","files":[{"name":"authorizable.gno","body":"// Package authorizable is an extension of p/demo/ownable;\n// It allows the user to instantiate an Authorizable struct, which extends\n// p/demo/ownable with a list of users that are authorized for something.\n// By using authorizable, you have a superuser (ownable), as well as another\n// authorization level, which can be used for adding moderators or similar to your realm.\npackage authorizable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Authorizable struct {\n\t*ownable.Ownable // owner in ownable is superuser\n\tauthorized *avl.Tree // std.Addr \u003e struct{}{}\n}\n\nfunc NewAuthorizable() *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.New(),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc NewAuthorizableWithAddress(addr std.Address) *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.NewWithAddress(addr),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc (a *Authorizable) AddToAuthList(addr std.Address) error {\n\tif err := a.CallerIsOwner(); err != nil {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif _, exists := a.authorized.Get(addr.String()); exists {\n\t\treturn ErrAlreadyInList\n\t}\n\n\ta.authorized.Set(addr.String(), struct{}{})\n\n\treturn nil\n}\n\nfunc (a *Authorizable) DeleteFromAuthList(addr std.Address) error {\n\tif err := a.CallerIsOwner(); err != nil {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif !a.authorized.Has(addr.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\tif _, removed := a.authorized.Remove(addr.String()); !removed {\n\t\tstr := ufmt.Sprintf(\"authorizable: could not remove %s from auth list\", addr.String())\n\t\tpanic(str)\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) CallerOnAuthList() error {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) AssertOnAuthList() {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\tpanic(ErrNotInAuthList)\n\t}\n}\n"},{"name":"authorizable_test.gno","body":"package authorizable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestNewAuthorizable(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug, issue #2371): should not be needed\n\n\ta := NewAuthorizable()\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewAuthorizableWithAddress(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.CallerOnAuthList(); err == ErrNotInAuthList {\n\t\tt.Fatalf(\"expected alice to be on the list\")\n\t}\n}\n\nfunc TestNotCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.CallerOnAuthList(); err == nil {\n\t\tt.Fatalf(\"expected bob to not be on the list\")\n\t}\n}\n\nfunc TestAddToAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.AddToAuthList(bob); err == nil {\n\t\tt.Fatalf(\"Expected AddToAuth to error while bob called it, but it didn't\")\n\t}\n}\n\nfunc TestDeleteFromList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tif err := a.AddToAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\t// Try an unauthorized deletion\n\tif err := a.DeleteFromAuthList(alice); err == nil {\n\t\tt.Fatalf(\"Expected DelFromAuth to error with %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.DeleteFromAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n}\n\nfunc TestAssertOnList(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\ta := NewAuthorizableWithAddress(alice)\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tuassert.PanicsWithMessage(t, ErrNotInAuthList.Error(), func() {\n\t\ta.AssertOnAuthList()\n\t})\n}\n"},{"name":"errors.gno","body":"package authorizable\n\nimport \"errors\"\n\nvar (\n\tErrNotInAuthList = errors.New(\"authorizable: caller is not in authorized list\")\n\tErrNotSuperuser = errors.New(\"authorizable: caller is not superuser\")\n\tErrAlreadyInList = errors.New(\"authorizable: address is already in authorized list\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"550v7pDGI7vpABPmxj6xQp+LVmKoQZn9DVAoJpLnnIkvI2Lws4jTk0xbiSiQcUXwhhQ6tv7nema3lfXUDBIrBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"authorizable","path":"gno.land/p/demo/ownable/exts/authorizable","files":[{"name":"authorizable.gno","body":"// Package authorizable is an extension of p/demo/ownable;\n// It allows the user to instantiate an Authorizable struct, which extends\n// p/demo/ownable with a list of users that are authorized for something.\n// By using authorizable, you have a superuser (ownable), as well as another\n// authorization level, which can be used for adding moderators or similar to your realm.\npackage authorizable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Authorizable struct {\n\t*ownable.Ownable // owner in ownable is superuser\n\tauthorized *avl.Tree // std.Addr \u003e struct{}{}\n}\n\nfunc NewAuthorizable() *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.New(),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc NewAuthorizableWithAddress(addr std.Address) *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.NewWithAddress(addr),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc (a *Authorizable) AddToAuthList(addr std.Address) error {\n\tif err := a.CallerIsOwner(); err != nil {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif _, exists := a.authorized.Get(addr.String()); exists {\n\t\treturn ErrAlreadyInList\n\t}\n\n\ta.authorized.Set(addr.String(), struct{}{})\n\n\treturn nil\n}\n\nfunc (a *Authorizable) DeleteFromAuthList(addr std.Address) error {\n\tif err := a.CallerIsOwner(); err != nil {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif !a.authorized.Has(addr.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\tif _, removed := a.authorized.Remove(addr.String()); !removed {\n\t\tstr := ufmt.Sprintf(\"authorizable: could not remove %s from auth list\", addr.String())\n\t\tpanic(str)\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) CallerOnAuthList() error {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) AssertOnAuthList() {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\tpanic(ErrNotInAuthList)\n\t}\n}\n"},{"name":"authorizable_test.gno","body":"package authorizable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestNewAuthorizable(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug, issue #2371): should not be needed\n\n\ta := NewAuthorizable()\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewAuthorizableWithAddress(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.CallerOnAuthList(); err == ErrNotInAuthList {\n\t\tt.Fatalf(\"expected alice to be on the list\")\n\t}\n}\n\nfunc TestNotCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.CallerOnAuthList(); err == nil {\n\t\tt.Fatalf(\"expected bob to not be on the list\")\n\t}\n}\n\nfunc TestAddToAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.AddToAuthList(bob); err == nil {\n\t\tt.Fatalf(\"Expected AddToAuth to error while bob called it, but it didn't\")\n\t}\n}\n\nfunc TestDeleteFromList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tif err := a.AddToAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\t// Try an unauthorized deletion\n\tif err := a.DeleteFromAuthList(alice); err == nil {\n\t\tt.Fatalf(\"Expected DelFromAuth to error with %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.DeleteFromAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n}\n\nfunc TestAssertOnList(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\ta := NewAuthorizableWithAddress(alice)\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tuassert.PanicsWithMessage(t, ErrNotInAuthList.Error(), func() {\n\t\ta.AssertOnAuthList()\n\t})\n}\n"},{"name":"errors.gno","body":"package authorizable\n\nimport \"errors\"\n\nvar (\n\tErrNotInAuthList = errors.New(\"authorizable: caller is not in authorized list\")\n\tErrNotSuperuser = errors.New(\"authorizable: caller is not superuser\")\n\tErrAlreadyInList = errors.New(\"authorizable: address is already in authorized list\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"550v7pDGI7vpABPmxj6xQp+LVmKoQZn9DVAoJpLnnIkvI2Lws4jTk0xbiSiQcUXwhhQ6tv7nema3lfXUDBIrBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl","path":"gno.land/p/demo/avl","files":[{"name":"node.gno","body":"package avl\n\n//----------------------------------------\n// Node\n\n// Node represents a node in an AVL tree.\ntype Node struct {\n\tkey string // key is the unique identifier for the node.\n\tvalue interface{} // value is the data stored in the node.\n\theight int8 // height is the height of the node in the tree.\n\tsize int // size is the number of nodes in the subtree rooted at this node.\n\tleftNode *Node // leftNode is the left child of the node.\n\trightNode *Node // rightNode is the right child of the node.\n}\n\n// NewNode creates a new node with the given key and value.\nfunc NewNode(key string, value interface{}) *Node {\n\treturn \u0026Node{\n\t\tkey: key,\n\t\tvalue: value,\n\t\theight: 0,\n\t\tsize: 1,\n\t}\n}\n\n// Size returns the size of the subtree rooted at the node.\nfunc (node *Node) Size() int {\n\tif node == nil {\n\t\treturn 0\n\t}\n\treturn node.size\n}\n\n// IsLeaf checks if the node is a leaf node (has no children).\nfunc (node *Node) IsLeaf() bool {\n\treturn node.height == 0\n}\n\n// Key returns the key of the node.\nfunc (node *Node) Key() string {\n\treturn node.key\n}\n\n// Value returns the value of the node.\nfunc (node *Node) Value() interface{} {\n\treturn node.value\n}\n\n// _copy creates a copy of the node (excluding value).\nfunc (node *Node) _copy() *Node {\n\tif node.height == 0 {\n\t\tpanic(\"Why are you copying a value node?\")\n\t}\n\treturn \u0026Node{\n\t\tkey: node.key,\n\t\theight: node.height,\n\t\tsize: node.size,\n\t\tleftNode: node.leftNode,\n\t\trightNode: node.rightNode,\n\t}\n}\n\n// Has checks if a node with the given key exists in the subtree rooted at the node.\nfunc (node *Node) Has(key string) (has bool) {\n\tif node == nil {\n\t\treturn false\n\t}\n\tif node.key == key {\n\t\treturn true\n\t}\n\tif node.height == 0 {\n\t\treturn false\n\t}\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Has(key)\n\t}\n\treturn node.getRightNode().Has(key)\n}\n\n// Get searches for a node with the given key in the subtree rooted at the node\n// and returns its index, value, and whether it exists.\nfunc (node *Node) Get(key string) (index int, value interface{}, exists bool) {\n\tif node == nil {\n\t\treturn 0, nil, false\n\t}\n\n\tif node.height == 0 {\n\t\tif node.key == key {\n\t\t\treturn 0, node.value, true\n\t\t}\n\t\tif node.key \u003c key {\n\t\t\treturn 1, nil, false\n\t\t}\n\t\treturn 0, nil, false\n\t}\n\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Get(key)\n\t}\n\n\trightNode := node.getRightNode()\n\tindex, value, exists = rightNode.Get(key)\n\tindex += node.size - rightNode.size\n\treturn index, value, exists\n}\n\n// GetByIndex retrieves the key-value pair of the node at the given index\n// in the subtree rooted at the node.\nfunc (node *Node) GetByIndex(index int) (key string, value interface{}) {\n\tif node.height == 0 {\n\t\tif index == 0 {\n\t\t\treturn node.key, node.value\n\t\t}\n\t\tpanic(\"GetByIndex asked for invalid index\")\n\t}\n\t// TODO: could improve this by storing the sizes\n\tleftNode := node.getLeftNode()\n\tif index \u003c leftNode.size {\n\t\treturn leftNode.GetByIndex(index)\n\t}\n\treturn node.getRightNode().GetByIndex(index - leftNode.size)\n}\n\n// Set inserts a new node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\n//\n// XXX consider a better way to do this... perhaps split Node from Node.\nfunc (node *Node) Set(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif node == nil {\n\t\treturn NewNode(key, value), false\n\t}\n\n\tif node.height == 0 {\n\t\treturn node.setLeaf(key, value)\n\t}\n\n\tnode = node._copy()\n\tif key \u003c node.key {\n\t\tnode.leftNode, updated = node.getLeftNode().Set(key, value)\n\t} else {\n\t\tnode.rightNode, updated = node.getRightNode().Set(key, value)\n\t}\n\n\tif updated {\n\t\treturn node, updated\n\t}\n\n\tnode.calcHeightAndSize()\n\treturn node.balance(), updated\n}\n\n// setLeaf inserts a new leaf node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\nfunc (node *Node) setLeaf(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif key == node.key {\n\t\treturn NewNode(key, value), true\n\t}\n\n\tif key \u003c node.key {\n\t\treturn \u0026Node{\n\t\t\tkey: node.key,\n\t\t\theight: 1,\n\t\t\tsize: 2,\n\t\t\tleftNode: NewNode(key, value),\n\t\t\trightNode: node,\n\t\t}, false\n\t}\n\n\treturn \u0026Node{\n\t\tkey: key,\n\t\theight: 1,\n\t\tsize: 2,\n\t\tleftNode: node,\n\t\trightNode: NewNode(key, value),\n\t}, false\n}\n\n// Remove deletes the node with the given key from the subtree rooted at the node.\n// returns the new root of the subtree, the new leftmost leaf key (if changed),\n// the removed value and the removal was successful.\nfunc (node *Node) Remove(key string) (\n\tnewNode *Node, newKey string, value interface{}, removed bool,\n) {\n\tif node == nil {\n\t\treturn nil, \"\", nil, false\n\t}\n\tif node.height == 0 {\n\t\tif key == node.key {\n\t\t\treturn nil, \"\", node.value, true\n\t\t}\n\t\treturn node, \"\", nil, false\n\t}\n\tif key \u003c node.key {\n\t\tvar newLeftNode *Node\n\t\tnewLeftNode, newKey, value, removed = node.getLeftNode().Remove(key)\n\t\tif !removed {\n\t\t\treturn node, \"\", value, false\n\t\t}\n\t\tif newLeftNode == nil { // left node held value, was removed\n\t\t\treturn node.rightNode, node.key, value, true\n\t\t}\n\t\tnode = node._copy()\n\t\tnode.leftNode = newLeftNode\n\t\tnode.calcHeightAndSize()\n\t\tnode = node.balance()\n\t\treturn node, newKey, value, true\n\t}\n\n\tvar newRightNode *Node\n\tnewRightNode, newKey, value, removed = node.getRightNode().Remove(key)\n\tif !removed {\n\t\treturn node, \"\", value, false\n\t}\n\tif newRightNode == nil { // right node held value, was removed\n\t\treturn node.leftNode, \"\", value, true\n\t}\n\tnode = node._copy()\n\tnode.rightNode = newRightNode\n\tif newKey != \"\" {\n\t\tnode.key = newKey\n\t}\n\tnode.calcHeightAndSize()\n\tnode = node.balance()\n\treturn node, \"\", value, true\n}\n\n// getLeftNode returns the left child of the node.\nfunc (node *Node) getLeftNode() *Node {\n\treturn node.leftNode\n}\n\n// getRightNode returns the right child of the node.\nfunc (node *Node) getRightNode() *Node {\n\treturn node.rightNode\n}\n\n// rotateRight performs a right rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateRight() *Node {\n\tnode = node._copy()\n\tl := node.getLeftNode()\n\t_l := l._copy()\n\n\t_lrCached := _l.rightNode\n\t_l.rightNode = node\n\tnode.leftNode = _lrCached\n\n\tnode.calcHeightAndSize()\n\t_l.calcHeightAndSize()\n\n\treturn _l\n}\n\n// rotateLeft performs a left rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateLeft() *Node {\n\tnode = node._copy()\n\tr := node.getRightNode()\n\t_r := r._copy()\n\n\t_rlCached := _r.leftNode\n\t_r.leftNode = node\n\tnode.rightNode = _rlCached\n\n\tnode.calcHeightAndSize()\n\t_r.calcHeightAndSize()\n\n\treturn _r\n}\n\n// calcHeightAndSize updates the height and size of the node based on its children.\n// NOTE: mutates height and size\nfunc (node *Node) calcHeightAndSize() {\n\tnode.height = maxInt8(node.getLeftNode().height, node.getRightNode().height) + 1\n\tnode.size = node.getLeftNode().size + node.getRightNode().size\n}\n\n// calcBalance calculates the balance factor of the node.\nfunc (node *Node) calcBalance() int {\n\treturn int(node.getLeftNode().height) - int(node.getRightNode().height)\n}\n\n// balance balances the subtree rooted at the node and returns the new root.\n// NOTE: assumes that node can be modified\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) balance() (newSelf *Node) {\n\tbalance := node.calcBalance()\n\tif balance \u003e= -1 {\n\t\treturn node\n\t}\n\tif balance \u003e 1 {\n\t\tif node.getLeftNode().calcBalance() \u003e= 0 {\n\t\t\t// Left Left Case\n\t\t\treturn node.rotateRight()\n\t\t}\n\t\t// Left Right Case\n\t\tleft := node.getLeftNode()\n\t\tnode.leftNode = left.rotateLeft()\n\t\treturn node.rotateRight()\n\t}\n\n\tif node.getRightNode().calcBalance() \u003c= 0 {\n\t\t// Right Right Case\n\t\treturn node.rotateLeft()\n\t}\n\n\t// Right Left Case\n\tright := node.getRightNode()\n\tnode.rightNode = right.rotateRight()\n\treturn node.rotateLeft()\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) Iterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, true, true, cb)\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) ReverseIterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, false, true, cb)\n}\n\n// TraverseInRange traverses all nodes, including inner nodes.\n// Start is inclusive and end is exclusive when ascending,\n// Start and end are inclusive when descending.\n// Empty start and empty end denote no start and no end.\n// If leavesOnly is true, only visit leaf nodes.\n// NOTE: To simulate an exclusive reverse traversal,\n// just append 0x00 to start.\nfunc (node *Node) TraverseInRange(start, end string, ascending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\tafterStart := (start == \"\" || start \u003c node.key)\n\tstartOrAfter := (start == \"\" || start \u003c= node.key)\n\tbeforeEnd := false\n\tif ascending {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c end)\n\t} else {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c= end)\n\t}\n\n\t// Run callback per inner/leaf node.\n\tstop := false\n\tif (!node.IsLeaf() \u0026\u0026 !leavesOnly) ||\n\t\t(node.IsLeaf() \u0026\u0026 startOrAfter \u0026\u0026 beforeEnd) {\n\t\tstop = cb(node)\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t}\n\tif node.IsLeaf() {\n\t\treturn stop\n\t}\n\n\tif ascending {\n\t\t// check lower nodes, then higher\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t} else {\n\t\t// check the higher nodes first\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t}\n\n\treturn stop\n}\n\n// TraverseByOffset traverses all nodes, including inner nodes.\n// A limit of math.MaxInt means no limit.\nfunc (node *Node) TraverseByOffset(offset, limit int, descending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\n\t// fast paths. these happen only if TraverseByOffset is called directly on a leaf.\n\tif limit \u003c= 0 || offset \u003e= node.size {\n\t\treturn false\n\t}\n\tif node.IsLeaf() {\n\t\tif offset \u003e 0 {\n\t\t\treturn false\n\t\t}\n\t\treturn cb(node)\n\t}\n\n\t// go to the actual recursive function.\n\treturn node.traverseByOffset(offset, limit, descending, leavesOnly, cb)\n}\n\n// TraverseByOffset traverses the subtree rooted at the node by offset and limit,\n// in either ascending or descending order, and applies the callback function to each traversed node.\n// If leavesOnly is true, only leaf nodes are visited.\nfunc (node *Node) traverseByOffset(offset, limit int, descending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\t// caller guarantees: offset \u003c node.size; limit \u003e 0.\n\tif !leavesOnly {\n\t\tif cb(node) {\n\t\t\treturn true\n\t\t}\n\t}\n\tfirst, second := node.getLeftNode(), node.getRightNode()\n\tif descending {\n\t\tfirst, second = second, first\n\t}\n\tif first.IsLeaf() {\n\t\t// either run or skip, based on offset\n\t\tif offset \u003e 0 {\n\t\t\toffset--\n\t\t} else {\n\t\t\tcb(first)\n\t\t\tlimit--\n\t\t\tif limit \u003c= 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// possible cases:\n\t\t// 1 the offset given skips the first node entirely\n\t\t// 2 the offset skips none or part of the first node, but the limit requires some of the second node.\n\t\t// 3 the offset skips none or part of the first node, and the limit stops our search on the first node.\n\t\tif offset \u003e= first.size {\n\t\t\toffset -= first.size // 1\n\t\t} else {\n\t\t\tif first.traverseByOffset(offset, limit, descending, leavesOnly, cb) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// number of leaves which could actually be called from inside\n\t\t\tdelta := first.size - offset\n\t\t\toffset = 0\n\t\t\tif delta \u003e= limit {\n\t\t\t\treturn true // 3\n\t\t\t}\n\t\t\tlimit -= delta // 2\n\t\t}\n\t}\n\n\t// because of the caller guarantees and the way we handle the first node,\n\t// at this point we know that limit \u003e 0 and there must be some values in\n\t// this second node that we include.\n\n\t// =\u003e if the second node is a leaf, it has to be included.\n\tif second.IsLeaf() {\n\t\treturn cb(second)\n\t}\n\t// =\u003e if it is not a leaf, it will still be enough to recursively call this\n\t// function with the updated offset and limit\n\treturn second.traverseByOffset(offset, limit, descending, leavesOnly, cb)\n}\n\n// Only used in testing...\nfunc (node *Node) lmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getLeftNode().lmd()\n}\n\n// Only used in testing...\nfunc (node *Node) rmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getRightNode().rmd()\n}\n\nfunc maxInt8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"node_test.gno","body":"package avl\n\nimport (\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestTraverseByOffset(t *testing.T) {\n\tconst testStrings = `Alfa\nAlfred\nAlpha\nAlphabet\nBeta\nBeth\nBook\nBrowser`\n\ttt := []struct {\n\t\tname string\n\t\tdesc bool\n\t}{\n\t\t{\"ascending\", false},\n\t\t{\"descending\", true},\n\t}\n\n\tfor _, tt := range tt {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsl := strings.Split(testStrings, \"\\n\")\n\n\t\t\t// sort a first time in the order opposite to how we'll be traversing\n\t\t\t// the tree, to ensure that we are not just iterating through with\n\t\t\t// insertion order.\n\t\t\tsort.Strings(sl)\n\t\t\tif !tt.desc {\n\t\t\t\treverseSlice(sl)\n\t\t\t}\n\n\t\t\tr := NewNode(sl[0], nil)\n\t\t\tfor _, v := range sl[1:] {\n\t\t\t\tr, _ = r.Set(v, nil)\n\t\t\t}\n\n\t\t\t// then sort sl in the order we'll be traversing it, so that we can\n\t\t\t// compare the result with sl.\n\t\t\treverseSlice(sl)\n\n\t\t\tvar result []string\n\t\t\tfor i := 0; i \u003c len(sl); i++ {\n\t\t\t\tr.TraverseByOffset(i, 1, tt.desc, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif !slicesEqual(sl, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", sl, result)\n\t\t\t}\n\n\t\t\tfor l := 2; l \u003c= len(sl); l++ {\n\t\t\t\t// \"slices\"\n\t\t\t\tfor i := 0; i \u003c= len(sl); i++ {\n\t\t\t\t\tmax := i + l\n\t\t\t\t\tif max \u003e len(sl) {\n\t\t\t\t\t\tmax = len(sl)\n\t\t\t\t\t}\n\t\t\t\t\texp := sl[i:max]\n\t\t\t\t\tactual := []string{}\n\n\t\t\t\t\tr.TraverseByOffset(i, l, tt.desc, true, func(tr *Node) bool {\n\t\t\t\t\t\tactual = append(actual, tr.Key())\n\t\t\t\t\t\treturn false\n\t\t\t\t\t})\n\t\t\t\t\tif !slicesEqual(exp, actual) {\n\t\t\t\t\t\tt.Errorf(\"want %v got %v\", exp, actual)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestHas(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\thasKey string\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\t\"has key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"has key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"A\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"B\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tresult := tree.Has(tt.hasKey)\n\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tgetKey string\n\t\texpectIdx int\n\t\texpectVal interface{}\n\t\texpectExists bool\n\t}{\n\t\t{\n\t\t\t\"get existing key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\t1,\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (smaller)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"@\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (larger)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t5,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get from empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tidx, val, exists := tree.Get(tt.getKey)\n\n\t\t\tif idx != tt.expectIdx {\n\t\t\t\tt.Errorf(\"Expected index %d, got %d\", tt.expectIdx, idx)\n\t\t\t}\n\n\t\t\tif val != tt.expectVal {\n\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t}\n\n\t\t\tif exists != tt.expectExists {\n\t\t\t\tt.Errorf(\"Expected exists %t, got %t\", tt.expectExists, exists)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetByIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tidx int\n\t\texpectKey string\n\t\texpectVal interface{}\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\t\"get by valid index\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t2,\n\t\t\t\"C\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (smallest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t0,\n\t\t\t\"A\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (largest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t4,\n\t\t\t\"E\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (negative)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t-1,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (out of range)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t5,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tif tt.expectPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\t\tt.Errorf(\"Expected a panic but didn't get one\")\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t}\n\n\t\t\tkey, val := tree.GetByIndex(tt.idx)\n\n\t\t\tif !tt.expectPanic {\n\t\t\t\tif key != tt.expectKey {\n\t\t\t\t\tt.Errorf(\"Expected key %s, got %s\", tt.expectKey, key)\n\t\t\t\t}\n\n\t\t\t\tif val != tt.expectVal {\n\t\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRemove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tremoveKey string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"remove leaf node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"B\",\n\t\t\t[]string{\"A\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with one child\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"A\",\n\t\t\t[]string{\"B\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with two children\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove root node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove non-existent key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree, _, _, _ = tree.Remove(tt.removeKey)\n\n\t\t\tresult := make([]string, 0)\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestTraverse(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"empty tree\",\n\t\t\t[]string{},\n\t\t\t[]string{},\n\t\t},\n\t\t{\n\t\t\t\"single node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t[]string{\"A\"},\n\t\t},\n\t\t{\n\t\t\t\"small tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"large tree\",\n\t\t\t[]string{\"H\", \"D\", \"L\", \"B\", \"F\", \"J\", \"N\", \"A\", \"C\", \"E\", \"G\", \"I\", \"K\", \"M\", \"O\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tt.Run(\"iterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"ReverseIterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.ReverseIterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, len(tt.expected))\n\t\t\t\tcopy(expected, tt.expected)\n\t\t\t\tfor i, j := 0, len(expected)-1; i \u003c j; i, j = i+1, j-1 {\n\t\t\t\t\texpected[i], expected[j] = expected[j], expected[i]\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"TraverseInRange\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\tstart, end := \"C\", \"M\"\n\t\t\t\ttree.TraverseInRange(start, end, true, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, 0)\n\t\t\t\tfor _, key := range tt.expected {\n\t\t\t\t\tif key \u003e= start \u0026\u0026 key \u003c end {\n\t\t\t\t\t\texpected = append(expected, key)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestRotateWhenHeightDiffers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation when left subtree is higher\",\n\t\t\t[]string{\"E\", \"C\", \"A\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation when right subtree is higher\",\n\t\t\t[]string{\"A\", \"C\", \"E\", \"D\", \"F\"},\n\t\t\t[]string{\"A\", \"C\", \"D\", \"E\", \"F\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"E\", \"A\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"A\", \"E\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\t// perform rotation or balance\n\t\t\ttree = tree.balance()\n\n\t\t\t// check tree structure\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRotateAndBalance(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation\",\n\t\t\t[]string{\"E\", \"D\", \"C\", \"B\", \"A\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"C\", \"A\", \"E\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"C\", \"E\", \"A\", \"D\", \"B\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree = tree.balance()\n\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc slicesEqual(w1, w2 []string) bool {\n\tif len(w1) != len(w2) {\n\t\treturn false\n\t}\n\tfor i := 0; i \u003c len(w1); i++ {\n\t\tif w1[0] != w2[0] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc maxint8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc reverseSlice(ss []string) {\n\tfor i := 0; i \u003c len(ss)/2; i++ {\n\t\tj := len(ss) - 1 - i\n\t\tss[i], ss[j] = ss[j], ss[i]\n\t}\n}\n"},{"name":"tree.gno","body":"package avl\n\ntype IterCbFn func(key string, value interface{}) bool\n\n//----------------------------------------\n// Tree\n\n// The zero struct can be used as an empty tree.\ntype Tree struct {\n\tnode *Node\n}\n\n// NewTree creates a new empty AVL tree.\nfunc NewTree() *Tree {\n\treturn \u0026Tree{\n\t\tnode: nil,\n\t}\n}\n\n// Size returns the number of key-value pair in the tree.\nfunc (tree *Tree) Size() int {\n\treturn tree.node.Size()\n}\n\n// Has checks whether a key exists in the tree.\n// It returns true if the key exists, otherwise false.\nfunc (tree *Tree) Has(key string) (has bool) {\n\treturn tree.node.Has(key)\n}\n\n// Get retrieves the value associated with the given key.\n// It returns the value and a boolean indicating whether the key exists.\nfunc (tree *Tree) Get(key string) (value interface{}, exists bool) {\n\t_, value, exists = tree.node.Get(key)\n\treturn\n}\n\n// GetByIndex retrieves the key-value pair at the specified index in the tree.\n// It returns the key and value at the given index.\nfunc (tree *Tree) GetByIndex(index int) (key string, value interface{}) {\n\treturn tree.node.GetByIndex(index)\n}\n\n// Set inserts a key-value pair into the tree.\n// If the key already exists, the value will be updated.\n// It returns a boolean indicating whether the key was newly inserted or updated.\nfunc (tree *Tree) Set(key string, value interface{}) (updated bool) {\n\tnewnode, updated := tree.node.Set(key, value)\n\ttree.node = newnode\n\treturn updated\n}\n\n// Remove removes a key-value pair from the tree.\n// It returns the removed value and a boolean indicating whether the key was found and removed.\nfunc (tree *Tree) Remove(key string) (value interface{}, removed bool) {\n\tnewnode, _, value, removed := tree.node.Remove(key)\n\ttree.node = newnode\n\treturn value, removed\n}\n\n// Iterate performs an in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) Iterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterate performs a reverse in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// IterateByOffset performs an in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) IterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterateByOffset performs a reverse in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n"},{"name":"tree_test.gno","body":"package avl\n\nimport \"testing\"\n\nfunc TestNewTree(t *testing.T) {\n\ttree := NewTree()\n\tif tree.node != nil {\n\t\tt.Error(\"Expected tree.node to be nil\")\n\t}\n}\n\nfunc TestTreeSize(t *testing.T) {\n\ttree := NewTree()\n\tif tree.Size() != 0 {\n\t\tt.Error(\"Expected empty tree size to be 0\")\n\t}\n\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\tif tree.Size() != 2 {\n\t\tt.Error(\"Expected tree size to be 2\")\n\t}\n}\n\nfunc TestTreeHas(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tif !tree.Has(\"key1\") {\n\t\tt.Error(\"Expected tree to have key1\")\n\t}\n\n\tif tree.Has(\"key2\") {\n\t\tt.Error(\"Expected tree to not have key2\")\n\t}\n}\n\nfunc TestTreeGet(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, exists := tree.Get(\"key1\")\n\tif !exists || value != \"value1\" {\n\t\tt.Error(\"Expected Get to return value1 and true\")\n\t}\n\n\t_, exists = tree.Get(\"key2\")\n\tif exists {\n\t\tt.Error(\"Expected Get to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeGetByIndex(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\n\tkey, value := tree.GetByIndex(0)\n\tif key != \"key1\" || value != \"value1\" {\n\t\tt.Error(\"Expected GetByIndex(0) to return key1 and value1\")\n\t}\n\n\tkey, value = tree.GetByIndex(1)\n\tif key != \"key2\" || value != \"value2\" {\n\t\tt.Error(\"Expected GetByIndex(1) to return key2 and value2\")\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Error(\"Expected GetByIndex to panic for out-of-range index\")\n\t\t}\n\t}()\n\ttree.GetByIndex(2)\n}\n\nfunc TestTreeRemove(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, removed := tree.Remove(\"key1\")\n\tif !removed || value != \"value1\" || tree.Size() != 0 {\n\t\tt.Error(\"Expected Remove to remove key-value pair\")\n\t}\n\n\t_, removed = tree.Remove(\"key2\")\n\tif removed {\n\t\tt.Error(\"Expected Remove to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key1\", \"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key3\", \"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.IterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\t// node, _ = node.Set(\"key0\", \"value0\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key1\", \"value1\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 2\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"627e8e517e7ae5db0f3b753e2a32b607989198b6\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:5\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b28057ab7be6383785c0a5503e8a531bdbc21851\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:7]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"6da365f0d6cacbcdf53cd5a4b125803cddce08c2\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f216afe7b5a17f4ebdbb98dceccedbc22e237596\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ff1a50d8489090af37a2c7766d659f0d717939b5\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"5\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ae86874f9b47fa5e64c30b3e92e9d07f2ec967a4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"main.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"main.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"main.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"main.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\tnode, _ = node.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key2\", \"value2\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"143aebc820da33550f7338723fb1e2eec575b196\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2f3adc5d0f2a3fe0331cfa93572a7abdde14c9aa\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2e733a8e9e74fe14f0a5d10fb0f6728fa53d052d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fe20a19f956511f274dc77854e9e5468387260f4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c89a71bdf045e8bde2059dc9d33839f916e02e5d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"90fa67f8c47db4b9b2a60425dff08d5a3385100f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"83e42caaf53070dd95b5f859053eb51ed900bbda\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"9\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1faa9fa4ba1935121a6d3f0a623772e9d4499b0a\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"main.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"main.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"main.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"main.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar tree avl.Tree\n\nfunc init() {\n\ttree.Set(\"key0\", \"value0\")\n\ttree.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tupdated = tree.Set(\"key2\", \"value2\")\n\tprintln(updated, tree.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:16]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"db333c89cd6773709e031f1f4e4ed4d3fed66c11\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"849a50d6c78d65742752e3c89ad8dd556e2e63cb\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b4fc2fdd2d0fe936c87ed2ace97136cffeed207f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a1160b0060ad752dbfe5fe436f7734bb19136150\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fd95e08763159ac529e26986d652e752e78b6325\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3ecdcf148fe2f9e97b72a3bedf303b2ba56d4f4b\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"63126557dba88f8556f7a0ccbbfc1d218ae7a302\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:3]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"d31c7e797793e03ffe0bbcb72f963264f8300d22\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"ModTime\": \"10\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// }\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AlFWPZ27RJuVGpWgndGXgvZFsSb01NMN/RD6jUa/3VcjXG03APatUKIo5Krx56U7M4LGgatlTa+T4kC/CX5UCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl","path":"gno.land/p/demo/avl","files":[{"name":"node.gno","body":"package avl\n\n//----------------------------------------\n// Node\n\n// Node represents a node in an AVL tree.\ntype Node struct {\n\tkey string // key is the unique identifier for the node.\n\tvalue interface{} // value is the data stored in the node.\n\theight int8 // height is the height of the node in the tree.\n\tsize int // size is the number of nodes in the subtree rooted at this node.\n\tleftNode *Node // leftNode is the left child of the node.\n\trightNode *Node // rightNode is the right child of the node.\n}\n\n// NewNode creates a new node with the given key and value.\nfunc NewNode(key string, value interface{}) *Node {\n\treturn \u0026Node{\n\t\tkey: key,\n\t\tvalue: value,\n\t\theight: 0,\n\t\tsize: 1,\n\t}\n}\n\n// Size returns the size of the subtree rooted at the node.\nfunc (node *Node) Size() int {\n\tif node == nil {\n\t\treturn 0\n\t}\n\treturn node.size\n}\n\n// IsLeaf checks if the node is a leaf node (has no children).\nfunc (node *Node) IsLeaf() bool {\n\treturn node.height == 0\n}\n\n// Key returns the key of the node.\nfunc (node *Node) Key() string {\n\treturn node.key\n}\n\n// Value returns the value of the node.\nfunc (node *Node) Value() interface{} {\n\treturn node.value\n}\n\n// _copy creates a copy of the node (excluding value).\nfunc (node *Node) _copy() *Node {\n\tif node.height == 0 {\n\t\tpanic(\"Why are you copying a value node?\")\n\t}\n\treturn \u0026Node{\n\t\tkey: node.key,\n\t\theight: node.height,\n\t\tsize: node.size,\n\t\tleftNode: node.leftNode,\n\t\trightNode: node.rightNode,\n\t}\n}\n\n// Has checks if a node with the given key exists in the subtree rooted at the node.\nfunc (node *Node) Has(key string) (has bool) {\n\tif node == nil {\n\t\treturn false\n\t}\n\tif node.key == key {\n\t\treturn true\n\t}\n\tif node.height == 0 {\n\t\treturn false\n\t}\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Has(key)\n\t}\n\treturn node.getRightNode().Has(key)\n}\n\n// Get searches for a node with the given key in the subtree rooted at the node\n// and returns its index, value, and whether it exists.\nfunc (node *Node) Get(key string) (index int, value interface{}, exists bool) {\n\tif node == nil {\n\t\treturn 0, nil, false\n\t}\n\n\tif node.height == 0 {\n\t\tif node.key == key {\n\t\t\treturn 0, node.value, true\n\t\t}\n\t\tif node.key \u003c key {\n\t\t\treturn 1, nil, false\n\t\t}\n\t\treturn 0, nil, false\n\t}\n\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Get(key)\n\t}\n\n\trightNode := node.getRightNode()\n\tindex, value, exists = rightNode.Get(key)\n\tindex += node.size - rightNode.size\n\treturn index, value, exists\n}\n\n// GetByIndex retrieves the key-value pair of the node at the given index\n// in the subtree rooted at the node.\nfunc (node *Node) GetByIndex(index int) (key string, value interface{}) {\n\tif node.height == 0 {\n\t\tif index == 0 {\n\t\t\treturn node.key, node.value\n\t\t}\n\t\tpanic(\"GetByIndex asked for invalid index\")\n\t}\n\t// TODO: could improve this by storing the sizes\n\tleftNode := node.getLeftNode()\n\tif index \u003c leftNode.size {\n\t\treturn leftNode.GetByIndex(index)\n\t}\n\treturn node.getRightNode().GetByIndex(index - leftNode.size)\n}\n\n// Set inserts a new node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\n//\n// XXX consider a better way to do this... perhaps split Node from Node.\nfunc (node *Node) Set(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif node == nil {\n\t\treturn NewNode(key, value), false\n\t}\n\n\tif node.height == 0 {\n\t\treturn node.setLeaf(key, value)\n\t}\n\n\tnode = node._copy()\n\tif key \u003c node.key {\n\t\tnode.leftNode, updated = node.getLeftNode().Set(key, value)\n\t} else {\n\t\tnode.rightNode, updated = node.getRightNode().Set(key, value)\n\t}\n\n\tif updated {\n\t\treturn node, updated\n\t}\n\n\tnode.calcHeightAndSize()\n\treturn node.balance(), updated\n}\n\n// setLeaf inserts a new leaf node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\nfunc (node *Node) setLeaf(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif key == node.key {\n\t\treturn NewNode(key, value), true\n\t}\n\n\tif key \u003c node.key {\n\t\treturn \u0026Node{\n\t\t\tkey: node.key,\n\t\t\theight: 1,\n\t\t\tsize: 2,\n\t\t\tleftNode: NewNode(key, value),\n\t\t\trightNode: node,\n\t\t}, false\n\t}\n\n\treturn \u0026Node{\n\t\tkey: key,\n\t\theight: 1,\n\t\tsize: 2,\n\t\tleftNode: node,\n\t\trightNode: NewNode(key, value),\n\t}, false\n}\n\n// Remove deletes the node with the given key from the subtree rooted at the node.\n// returns the new root of the subtree, the new leftmost leaf key (if changed),\n// the removed value and the removal was successful.\nfunc (node *Node) Remove(key string) (\n\tnewNode *Node, newKey string, value interface{}, removed bool,\n) {\n\tif node == nil {\n\t\treturn nil, \"\", nil, false\n\t}\n\tif node.height == 0 {\n\t\tif key == node.key {\n\t\t\treturn nil, \"\", node.value, true\n\t\t}\n\t\treturn node, \"\", nil, false\n\t}\n\tif key \u003c node.key {\n\t\tvar newLeftNode *Node\n\t\tnewLeftNode, newKey, value, removed = node.getLeftNode().Remove(key)\n\t\tif !removed {\n\t\t\treturn node, \"\", value, false\n\t\t}\n\t\tif newLeftNode == nil { // left node held value, was removed\n\t\t\treturn node.rightNode, node.key, value, true\n\t\t}\n\t\tnode = node._copy()\n\t\tnode.leftNode = newLeftNode\n\t\tnode.calcHeightAndSize()\n\t\tnode = node.balance()\n\t\treturn node, newKey, value, true\n\t}\n\n\tvar newRightNode *Node\n\tnewRightNode, newKey, value, removed = node.getRightNode().Remove(key)\n\tif !removed {\n\t\treturn node, \"\", value, false\n\t}\n\tif newRightNode == nil { // right node held value, was removed\n\t\treturn node.leftNode, \"\", value, true\n\t}\n\tnode = node._copy()\n\tnode.rightNode = newRightNode\n\tif newKey != \"\" {\n\t\tnode.key = newKey\n\t}\n\tnode.calcHeightAndSize()\n\tnode = node.balance()\n\treturn node, \"\", value, true\n}\n\n// getLeftNode returns the left child of the node.\nfunc (node *Node) getLeftNode() *Node {\n\treturn node.leftNode\n}\n\n// getRightNode returns the right child of the node.\nfunc (node *Node) getRightNode() *Node {\n\treturn node.rightNode\n}\n\n// rotateRight performs a right rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateRight() *Node {\n\tnode = node._copy()\n\tl := node.getLeftNode()\n\t_l := l._copy()\n\n\t_lrCached := _l.rightNode\n\t_l.rightNode = node\n\tnode.leftNode = _lrCached\n\n\tnode.calcHeightAndSize()\n\t_l.calcHeightAndSize()\n\n\treturn _l\n}\n\n// rotateLeft performs a left rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateLeft() *Node {\n\tnode = node._copy()\n\tr := node.getRightNode()\n\t_r := r._copy()\n\n\t_rlCached := _r.leftNode\n\t_r.leftNode = node\n\tnode.rightNode = _rlCached\n\n\tnode.calcHeightAndSize()\n\t_r.calcHeightAndSize()\n\n\treturn _r\n}\n\n// calcHeightAndSize updates the height and size of the node based on its children.\n// NOTE: mutates height and size\nfunc (node *Node) calcHeightAndSize() {\n\tnode.height = maxInt8(node.getLeftNode().height, node.getRightNode().height) + 1\n\tnode.size = node.getLeftNode().size + node.getRightNode().size\n}\n\n// calcBalance calculates the balance factor of the node.\nfunc (node *Node) calcBalance() int {\n\treturn int(node.getLeftNode().height) - int(node.getRightNode().height)\n}\n\n// balance balances the subtree rooted at the node and returns the new root.\n// NOTE: assumes that node can be modified\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) balance() (newSelf *Node) {\n\tbalance := node.calcBalance()\n\tif balance \u003e= -1 {\n\t\treturn node\n\t}\n\tif balance \u003e 1 {\n\t\tif node.getLeftNode().calcBalance() \u003e= 0 {\n\t\t\t// Left Left Case\n\t\t\treturn node.rotateRight()\n\t\t}\n\t\t// Left Right Case\n\t\tleft := node.getLeftNode()\n\t\tnode.leftNode = left.rotateLeft()\n\t\treturn node.rotateRight()\n\t}\n\n\tif node.getRightNode().calcBalance() \u003c= 0 {\n\t\t// Right Right Case\n\t\treturn node.rotateLeft()\n\t}\n\n\t// Right Left Case\n\tright := node.getRightNode()\n\tnode.rightNode = right.rotateRight()\n\treturn node.rotateLeft()\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) Iterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, true, true, cb)\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) ReverseIterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, false, true, cb)\n}\n\n// TraverseInRange traverses all nodes, including inner nodes.\n// Start is inclusive and end is exclusive when ascending,\n// Start and end are inclusive when descending.\n// Empty start and empty end denote no start and no end.\n// If leavesOnly is true, only visit leaf nodes.\n// NOTE: To simulate an exclusive reverse traversal,\n// just append 0x00 to start.\nfunc (node *Node) TraverseInRange(start, end string, ascending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\tafterStart := (start == \"\" || start \u003c node.key)\n\tstartOrAfter := (start == \"\" || start \u003c= node.key)\n\tbeforeEnd := false\n\tif ascending {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c end)\n\t} else {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c= end)\n\t}\n\n\t// Run callback per inner/leaf node.\n\tstop := false\n\tif (!node.IsLeaf() \u0026\u0026 !leavesOnly) ||\n\t\t(node.IsLeaf() \u0026\u0026 startOrAfter \u0026\u0026 beforeEnd) {\n\t\tstop = cb(node)\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t}\n\tif node.IsLeaf() {\n\t\treturn stop\n\t}\n\n\tif ascending {\n\t\t// check lower nodes, then higher\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t} else {\n\t\t// check the higher nodes first\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t}\n\n\treturn stop\n}\n\n// TraverseByOffset traverses all nodes, including inner nodes.\n// A limit of math.MaxInt means no limit.\nfunc (node *Node) TraverseByOffset(offset, limit int, descending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\n\t// fast paths. these happen only if TraverseByOffset is called directly on a leaf.\n\tif limit \u003c= 0 || offset \u003e= node.size {\n\t\treturn false\n\t}\n\tif node.IsLeaf() {\n\t\tif offset \u003e 0 {\n\t\t\treturn false\n\t\t}\n\t\treturn cb(node)\n\t}\n\n\t// go to the actual recursive function.\n\treturn node.traverseByOffset(offset, limit, descending, leavesOnly, cb)\n}\n\n// TraverseByOffset traverses the subtree rooted at the node by offset and limit,\n// in either ascending or descending order, and applies the callback function to each traversed node.\n// If leavesOnly is true, only leaf nodes are visited.\nfunc (node *Node) traverseByOffset(offset, limit int, descending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\t// caller guarantees: offset \u003c node.size; limit \u003e 0.\n\tif !leavesOnly {\n\t\tif cb(node) {\n\t\t\treturn true\n\t\t}\n\t}\n\tfirst, second := node.getLeftNode(), node.getRightNode()\n\tif descending {\n\t\tfirst, second = second, first\n\t}\n\tif first.IsLeaf() {\n\t\t// either run or skip, based on offset\n\t\tif offset \u003e 0 {\n\t\t\toffset--\n\t\t} else {\n\t\t\tcb(first)\n\t\t\tlimit--\n\t\t\tif limit \u003c= 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// possible cases:\n\t\t// 1 the offset given skips the first node entirely\n\t\t// 2 the offset skips none or part of the first node, but the limit requires some of the second node.\n\t\t// 3 the offset skips none or part of the first node, and the limit stops our search on the first node.\n\t\tif offset \u003e= first.size {\n\t\t\toffset -= first.size // 1\n\t\t} else {\n\t\t\tif first.traverseByOffset(offset, limit, descending, leavesOnly, cb) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// number of leaves which could actually be called from inside\n\t\t\tdelta := first.size - offset\n\t\t\toffset = 0\n\t\t\tif delta \u003e= limit {\n\t\t\t\treturn true // 3\n\t\t\t}\n\t\t\tlimit -= delta // 2\n\t\t}\n\t}\n\n\t// because of the caller guarantees and the way we handle the first node,\n\t// at this point we know that limit \u003e 0 and there must be some values in\n\t// this second node that we include.\n\n\t// =\u003e if the second node is a leaf, it has to be included.\n\tif second.IsLeaf() {\n\t\treturn cb(second)\n\t}\n\t// =\u003e if it is not a leaf, it will still be enough to recursively call this\n\t// function with the updated offset and limit\n\treturn second.traverseByOffset(offset, limit, descending, leavesOnly, cb)\n}\n\n// Only used in testing...\nfunc (node *Node) lmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getLeftNode().lmd()\n}\n\n// Only used in testing...\nfunc (node *Node) rmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getRightNode().rmd()\n}\n\nfunc maxInt8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"node_test.gno","body":"package avl\n\nimport (\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestTraverseByOffset(t *testing.T) {\n\tconst testStrings = `Alfa\nAlfred\nAlpha\nAlphabet\nBeta\nBeth\nBook\nBrowser`\n\ttt := []struct {\n\t\tname string\n\t\tdesc bool\n\t}{\n\t\t{\"ascending\", false},\n\t\t{\"descending\", true},\n\t}\n\n\tfor _, tt := range tt {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsl := strings.Split(testStrings, \"\\n\")\n\n\t\t\t// sort a first time in the order opposite to how we'll be traversing\n\t\t\t// the tree, to ensure that we are not just iterating through with\n\t\t\t// insertion order.\n\t\t\tsort.Strings(sl)\n\t\t\tif !tt.desc {\n\t\t\t\treverseSlice(sl)\n\t\t\t}\n\n\t\t\tr := NewNode(sl[0], nil)\n\t\t\tfor _, v := range sl[1:] {\n\t\t\t\tr, _ = r.Set(v, nil)\n\t\t\t}\n\n\t\t\t// then sort sl in the order we'll be traversing it, so that we can\n\t\t\t// compare the result with sl.\n\t\t\treverseSlice(sl)\n\n\t\t\tvar result []string\n\t\t\tfor i := 0; i \u003c len(sl); i++ {\n\t\t\t\tr.TraverseByOffset(i, 1, tt.desc, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif !slicesEqual(sl, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", sl, result)\n\t\t\t}\n\n\t\t\tfor l := 2; l \u003c= len(sl); l++ {\n\t\t\t\t// \"slices\"\n\t\t\t\tfor i := 0; i \u003c= len(sl); i++ {\n\t\t\t\t\tmax := i + l\n\t\t\t\t\tif max \u003e len(sl) {\n\t\t\t\t\t\tmax = len(sl)\n\t\t\t\t\t}\n\t\t\t\t\texp := sl[i:max]\n\t\t\t\t\tactual := []string{}\n\n\t\t\t\t\tr.TraverseByOffset(i, l, tt.desc, true, func(tr *Node) bool {\n\t\t\t\t\t\tactual = append(actual, tr.Key())\n\t\t\t\t\t\treturn false\n\t\t\t\t\t})\n\t\t\t\t\tif !slicesEqual(exp, actual) {\n\t\t\t\t\t\tt.Errorf(\"want %v got %v\", exp, actual)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestHas(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\thasKey string\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\t\"has key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"has key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"A\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"B\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tresult := tree.Has(tt.hasKey)\n\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tgetKey string\n\t\texpectIdx int\n\t\texpectVal interface{}\n\t\texpectExists bool\n\t}{\n\t\t{\n\t\t\t\"get existing key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\t1,\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (smaller)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"@\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (larger)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t5,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get from empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tidx, val, exists := tree.Get(tt.getKey)\n\n\t\t\tif idx != tt.expectIdx {\n\t\t\t\tt.Errorf(\"Expected index %d, got %d\", tt.expectIdx, idx)\n\t\t\t}\n\n\t\t\tif val != tt.expectVal {\n\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t}\n\n\t\t\tif exists != tt.expectExists {\n\t\t\t\tt.Errorf(\"Expected exists %t, got %t\", tt.expectExists, exists)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetByIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tidx int\n\t\texpectKey string\n\t\texpectVal interface{}\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\t\"get by valid index\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t2,\n\t\t\t\"C\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (smallest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t0,\n\t\t\t\"A\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (largest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t4,\n\t\t\t\"E\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (negative)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t-1,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (out of range)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t5,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tif tt.expectPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\t\tt.Errorf(\"Expected a panic but didn't get one\")\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t}\n\n\t\t\tkey, val := tree.GetByIndex(tt.idx)\n\n\t\t\tif !tt.expectPanic {\n\t\t\t\tif key != tt.expectKey {\n\t\t\t\t\tt.Errorf(\"Expected key %s, got %s\", tt.expectKey, key)\n\t\t\t\t}\n\n\t\t\t\tif val != tt.expectVal {\n\t\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRemove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tremoveKey string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"remove leaf node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"B\",\n\t\t\t[]string{\"A\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with one child\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"A\",\n\t\t\t[]string{\"B\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with two children\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove root node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove non-existent key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree, _, _, _ = tree.Remove(tt.removeKey)\n\n\t\t\tresult := make([]string, 0)\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestTraverse(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"empty tree\",\n\t\t\t[]string{},\n\t\t\t[]string{},\n\t\t},\n\t\t{\n\t\t\t\"single node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t[]string{\"A\"},\n\t\t},\n\t\t{\n\t\t\t\"small tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"large tree\",\n\t\t\t[]string{\"H\", \"D\", \"L\", \"B\", \"F\", \"J\", \"N\", \"A\", \"C\", \"E\", \"G\", \"I\", \"K\", \"M\", \"O\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tt.Run(\"iterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"ReverseIterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.ReverseIterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, len(tt.expected))\n\t\t\t\tcopy(expected, tt.expected)\n\t\t\t\tfor i, j := 0, len(expected)-1; i \u003c j; i, j = i+1, j-1 {\n\t\t\t\t\texpected[i], expected[j] = expected[j], expected[i]\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"TraverseInRange\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\tstart, end := \"C\", \"M\"\n\t\t\t\ttree.TraverseInRange(start, end, true, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, 0)\n\t\t\t\tfor _, key := range tt.expected {\n\t\t\t\t\tif key \u003e= start \u0026\u0026 key \u003c end {\n\t\t\t\t\t\texpected = append(expected, key)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestRotateWhenHeightDiffers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation when left subtree is higher\",\n\t\t\t[]string{\"E\", \"C\", \"A\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation when right subtree is higher\",\n\t\t\t[]string{\"A\", \"C\", \"E\", \"D\", \"F\"},\n\t\t\t[]string{\"A\", \"C\", \"D\", \"E\", \"F\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"E\", \"A\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"A\", \"E\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\t// perform rotation or balance\n\t\t\ttree = tree.balance()\n\n\t\t\t// check tree structure\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRotateAndBalance(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation\",\n\t\t\t[]string{\"E\", \"D\", \"C\", \"B\", \"A\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"C\", \"A\", \"E\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"C\", \"E\", \"A\", \"D\", \"B\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree = tree.balance()\n\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc slicesEqual(w1, w2 []string) bool {\n\tif len(w1) != len(w2) {\n\t\treturn false\n\t}\n\tfor i := 0; i \u003c len(w1); i++ {\n\t\tif w1[0] != w2[0] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc maxint8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc reverseSlice(ss []string) {\n\tfor i := 0; i \u003c len(ss)/2; i++ {\n\t\tj := len(ss) - 1 - i\n\t\tss[i], ss[j] = ss[j], ss[i]\n\t}\n}\n"},{"name":"tree.gno","body":"package avl\n\ntype IterCbFn func(key string, value interface{}) bool\n\n//----------------------------------------\n// Tree\n\n// The zero struct can be used as an empty tree.\ntype Tree struct {\n\tnode *Node\n}\n\n// NewTree creates a new empty AVL tree.\nfunc NewTree() *Tree {\n\treturn \u0026Tree{\n\t\tnode: nil,\n\t}\n}\n\n// Size returns the number of key-value pair in the tree.\nfunc (tree *Tree) Size() int {\n\treturn tree.node.Size()\n}\n\n// Has checks whether a key exists in the tree.\n// It returns true if the key exists, otherwise false.\nfunc (tree *Tree) Has(key string) (has bool) {\n\treturn tree.node.Has(key)\n}\n\n// Get retrieves the value associated with the given key.\n// It returns the value and a boolean indicating whether the key exists.\nfunc (tree *Tree) Get(key string) (value interface{}, exists bool) {\n\t_, value, exists = tree.node.Get(key)\n\treturn\n}\n\n// GetByIndex retrieves the key-value pair at the specified index in the tree.\n// It returns the key and value at the given index.\nfunc (tree *Tree) GetByIndex(index int) (key string, value interface{}) {\n\treturn tree.node.GetByIndex(index)\n}\n\n// Set inserts a key-value pair into the tree.\n// If the key already exists, the value will be updated.\n// It returns a boolean indicating whether the key was newly inserted or updated.\nfunc (tree *Tree) Set(key string, value interface{}) (updated bool) {\n\tnewnode, updated := tree.node.Set(key, value)\n\ttree.node = newnode\n\treturn updated\n}\n\n// Remove removes a key-value pair from the tree.\n// It returns the removed value and a boolean indicating whether the key was found and removed.\nfunc (tree *Tree) Remove(key string) (value interface{}, removed bool) {\n\tnewnode, _, value, removed := tree.node.Remove(key)\n\ttree.node = newnode\n\treturn value, removed\n}\n\n// Iterate performs an in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) Iterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterate performs a reverse in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// IterateByOffset performs an in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) IterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterateByOffset performs a reverse in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n"},{"name":"tree_test.gno","body":"package avl\n\nimport \"testing\"\n\nfunc TestNewTree(t *testing.T) {\n\ttree := NewTree()\n\tif tree.node != nil {\n\t\tt.Error(\"Expected tree.node to be nil\")\n\t}\n}\n\nfunc TestTreeSize(t *testing.T) {\n\ttree := NewTree()\n\tif tree.Size() != 0 {\n\t\tt.Error(\"Expected empty tree size to be 0\")\n\t}\n\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\tif tree.Size() != 2 {\n\t\tt.Error(\"Expected tree size to be 2\")\n\t}\n}\n\nfunc TestTreeHas(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tif !tree.Has(\"key1\") {\n\t\tt.Error(\"Expected tree to have key1\")\n\t}\n\n\tif tree.Has(\"key2\") {\n\t\tt.Error(\"Expected tree to not have key2\")\n\t}\n}\n\nfunc TestTreeGet(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, exists := tree.Get(\"key1\")\n\tif !exists || value != \"value1\" {\n\t\tt.Error(\"Expected Get to return value1 and true\")\n\t}\n\n\t_, exists = tree.Get(\"key2\")\n\tif exists {\n\t\tt.Error(\"Expected Get to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeGetByIndex(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\n\tkey, value := tree.GetByIndex(0)\n\tif key != \"key1\" || value != \"value1\" {\n\t\tt.Error(\"Expected GetByIndex(0) to return key1 and value1\")\n\t}\n\n\tkey, value = tree.GetByIndex(1)\n\tif key != \"key2\" || value != \"value2\" {\n\t\tt.Error(\"Expected GetByIndex(1) to return key2 and value2\")\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Error(\"Expected GetByIndex to panic for out-of-range index\")\n\t\t}\n\t}()\n\ttree.GetByIndex(2)\n}\n\nfunc TestTreeRemove(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, removed := tree.Remove(\"key1\")\n\tif !removed || value != \"value1\" || tree.Size() != 0 {\n\t\tt.Error(\"Expected Remove to remove key-value pair\")\n\t}\n\n\t_, removed = tree.Remove(\"key2\")\n\tif removed {\n\t\tt.Error(\"Expected Remove to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key1\", \"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key3\", \"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.IterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\t// node, _ = node.Set(\"key0\", \"value0\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key1\", \"value1\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 2\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"627e8e517e7ae5db0f3b753e2a32b607989198b6\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:5\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b28057ab7be6383785c0a5503e8a531bdbc21851\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:7]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"6da365f0d6cacbcdf53cd5a4b125803cddce08c2\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f216afe7b5a17f4ebdbb98dceccedbc22e237596\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ff1a50d8489090af37a2c7766d659f0d717939b5\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"5\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ae86874f9b47fa5e64c30b3e92e9d07f2ec967a4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_0.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_0.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_0.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_0.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\tnode, _ = node.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key2\", \"value2\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"143aebc820da33550f7338723fb1e2eec575b196\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2f3adc5d0f2a3fe0331cfa93572a7abdde14c9aa\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2e733a8e9e74fe14f0a5d10fb0f6728fa53d052d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fe20a19f956511f274dc77854e9e5468387260f4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c89a71bdf045e8bde2059dc9d33839f916e02e5d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"90fa67f8c47db4b9b2a60425dff08d5a3385100f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"83e42caaf53070dd95b5f859053eb51ed900bbda\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"9\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1faa9fa4ba1935121a6d3f0a623772e9d4499b0a\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_1.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_1.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_1.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_1.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar tree avl.Tree\n\nfunc init() {\n\ttree.Set(\"key0\", \"value0\")\n\ttree.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tupdated = tree.Set(\"key2\", \"value2\")\n\tprintln(updated, tree.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:16]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"db333c89cd6773709e031f1f4e4ed4d3fed66c11\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"849a50d6c78d65742752e3c89ad8dd556e2e63cb\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b4fc2fdd2d0fe936c87ed2ace97136cffeed207f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a1160b0060ad752dbfe5fe436f7734bb19136150\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fd95e08763159ac529e26986d652e752e78b6325\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3ecdcf148fe2f9e97b72a3bedf303b2ba56d4f4b\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"63126557dba88f8556f7a0ccbbfc1d218ae7a302\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:3]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"d31c7e797793e03ffe0bbcb72f963264f8300d22\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"ModTime\": \"10\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// }\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tTH/RQWkX2ALelK4w8Lx8sO7PIJCCXVZX3Dt8NGUNLkRypbV5AuJfzj8XxeteQGuohrdQ/NioEyfYSuhEG8tAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl","path":"gno.land/p/demo/avl","files":[{"name":"node.gno","body":"package avl\n\n//----------------------------------------\n// Node\n\n// Node represents a node in an AVL tree.\ntype Node struct {\n\tkey string // key is the unique identifier for the node.\n\tvalue interface{} // value is the data stored in the node.\n\theight int8 // height is the height of the node in the tree.\n\tsize int // size is the number of nodes in the subtree rooted at this node.\n\tleftNode *Node // leftNode is the left child of the node.\n\trightNode *Node // rightNode is the right child of the node.\n}\n\n// NewNode creates a new node with the given key and value.\nfunc NewNode(key string, value interface{}) *Node {\n\treturn \u0026Node{\n\t\tkey: key,\n\t\tvalue: value,\n\t\theight: 0,\n\t\tsize: 1,\n\t}\n}\n\n// Size returns the size of the subtree rooted at the node.\nfunc (node *Node) Size() int {\n\tif node == nil {\n\t\treturn 0\n\t}\n\treturn node.size\n}\n\n// IsLeaf checks if the node is a leaf node (has no children).\nfunc (node *Node) IsLeaf() bool {\n\treturn node.height == 0\n}\n\n// Key returns the key of the node.\nfunc (node *Node) Key() string {\n\treturn node.key\n}\n\n// Value returns the value of the node.\nfunc (node *Node) Value() interface{} {\n\treturn node.value\n}\n\n// _copy creates a copy of the node (excluding value).\nfunc (node *Node) _copy() *Node {\n\tif node.height == 0 {\n\t\tpanic(\"Why are you copying a value node?\")\n\t}\n\treturn \u0026Node{\n\t\tkey: node.key,\n\t\theight: node.height,\n\t\tsize: node.size,\n\t\tleftNode: node.leftNode,\n\t\trightNode: node.rightNode,\n\t}\n}\n\n// Has checks if a node with the given key exists in the subtree rooted at the node.\nfunc (node *Node) Has(key string) (has bool) {\n\tif node == nil {\n\t\treturn false\n\t}\n\tif node.key == key {\n\t\treturn true\n\t}\n\tif node.height == 0 {\n\t\treturn false\n\t}\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Has(key)\n\t}\n\treturn node.getRightNode().Has(key)\n}\n\n// Get searches for a node with the given key in the subtree rooted at the node\n// and returns its index, value, and whether it exists.\nfunc (node *Node) Get(key string) (index int, value interface{}, exists bool) {\n\tif node == nil {\n\t\treturn 0, nil, false\n\t}\n\n\tif node.height == 0 {\n\t\tif node.key == key {\n\t\t\treturn 0, node.value, true\n\t\t}\n\t\tif node.key \u003c key {\n\t\t\treturn 1, nil, false\n\t\t}\n\t\treturn 0, nil, false\n\t}\n\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Get(key)\n\t}\n\n\trightNode := node.getRightNode()\n\tindex, value, exists = rightNode.Get(key)\n\tindex += node.size - rightNode.size\n\treturn index, value, exists\n}\n\n// GetByIndex retrieves the key-value pair of the node at the given index\n// in the subtree rooted at the node.\nfunc (node *Node) GetByIndex(index int) (key string, value interface{}) {\n\tif node.height == 0 {\n\t\tif index == 0 {\n\t\t\treturn node.key, node.value\n\t\t}\n\t\tpanic(\"GetByIndex asked for invalid index\")\n\t}\n\t// TODO: could improve this by storing the sizes\n\tleftNode := node.getLeftNode()\n\tif index \u003c leftNode.size {\n\t\treturn leftNode.GetByIndex(index)\n\t}\n\treturn node.getRightNode().GetByIndex(index - leftNode.size)\n}\n\n// Set inserts a new node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\n//\n// XXX consider a better way to do this... perhaps split Node from Node.\nfunc (node *Node) Set(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif node == nil {\n\t\treturn NewNode(key, value), false\n\t}\n\n\tif node.height == 0 {\n\t\treturn node.setLeaf(key, value)\n\t}\n\n\tnode = node._copy()\n\tif key \u003c node.key {\n\t\tnode.leftNode, updated = node.getLeftNode().Set(key, value)\n\t} else {\n\t\tnode.rightNode, updated = node.getRightNode().Set(key, value)\n\t}\n\n\tif updated {\n\t\treturn node, updated\n\t}\n\n\tnode.calcHeightAndSize()\n\treturn node.balance(), updated\n}\n\n// setLeaf inserts a new leaf node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\nfunc (node *Node) setLeaf(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif key == node.key {\n\t\treturn NewNode(key, value), true\n\t}\n\n\tif key \u003c node.key {\n\t\treturn \u0026Node{\n\t\t\tkey: node.key,\n\t\t\theight: 1,\n\t\t\tsize: 2,\n\t\t\tleftNode: NewNode(key, value),\n\t\t\trightNode: node,\n\t\t}, false\n\t}\n\n\treturn \u0026Node{\n\t\tkey: key,\n\t\theight: 1,\n\t\tsize: 2,\n\t\tleftNode: node,\n\t\trightNode: NewNode(key, value),\n\t}, false\n}\n\n// Remove deletes the node with the given key from the subtree rooted at the node.\n// returns the new root of the subtree, the new leftmost leaf key (if changed),\n// the removed value and the removal was successful.\nfunc (node *Node) Remove(key string) (\n\tnewNode *Node, newKey string, value interface{}, removed bool,\n) {\n\tif node == nil {\n\t\treturn nil, \"\", nil, false\n\t}\n\tif node.height == 0 {\n\t\tif key == node.key {\n\t\t\treturn nil, \"\", node.value, true\n\t\t}\n\t\treturn node, \"\", nil, false\n\t}\n\tif key \u003c node.key {\n\t\tvar newLeftNode *Node\n\t\tnewLeftNode, newKey, value, removed = node.getLeftNode().Remove(key)\n\t\tif !removed {\n\t\t\treturn node, \"\", value, false\n\t\t}\n\t\tif newLeftNode == nil { // left node held value, was removed\n\t\t\treturn node.rightNode, node.key, value, true\n\t\t}\n\t\tnode = node._copy()\n\t\tnode.leftNode = newLeftNode\n\t\tnode.calcHeightAndSize()\n\t\tnode = node.balance()\n\t\treturn node, newKey, value, true\n\t}\n\n\tvar newRightNode *Node\n\tnewRightNode, newKey, value, removed = node.getRightNode().Remove(key)\n\tif !removed {\n\t\treturn node, \"\", value, false\n\t}\n\tif newRightNode == nil { // right node held value, was removed\n\t\treturn node.leftNode, \"\", value, true\n\t}\n\tnode = node._copy()\n\tnode.rightNode = newRightNode\n\tif newKey != \"\" {\n\t\tnode.key = newKey\n\t}\n\tnode.calcHeightAndSize()\n\tnode = node.balance()\n\treturn node, \"\", value, true\n}\n\n// getLeftNode returns the left child of the node.\nfunc (node *Node) getLeftNode() *Node {\n\treturn node.leftNode\n}\n\n// getRightNode returns the right child of the node.\nfunc (node *Node) getRightNode() *Node {\n\treturn node.rightNode\n}\n\n// rotateRight performs a right rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateRight() *Node {\n\tnode = node._copy()\n\tl := node.getLeftNode()\n\t_l := l._copy()\n\n\t_lrCached := _l.rightNode\n\t_l.rightNode = node\n\tnode.leftNode = _lrCached\n\n\tnode.calcHeightAndSize()\n\t_l.calcHeightAndSize()\n\n\treturn _l\n}\n\n// rotateLeft performs a left rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateLeft() *Node {\n\tnode = node._copy()\n\tr := node.getRightNode()\n\t_r := r._copy()\n\n\t_rlCached := _r.leftNode\n\t_r.leftNode = node\n\tnode.rightNode = _rlCached\n\n\tnode.calcHeightAndSize()\n\t_r.calcHeightAndSize()\n\n\treturn _r\n}\n\n// calcHeightAndSize updates the height and size of the node based on its children.\n// NOTE: mutates height and size\nfunc (node *Node) calcHeightAndSize() {\n\tnode.height = maxInt8(node.getLeftNode().height, node.getRightNode().height) + 1\n\tnode.size = node.getLeftNode().size + node.getRightNode().size\n}\n\n// calcBalance calculates the balance factor of the node.\nfunc (node *Node) calcBalance() int {\n\treturn int(node.getLeftNode().height) - int(node.getRightNode().height)\n}\n\n// balance balances the subtree rooted at the node and returns the new root.\n// NOTE: assumes that node can be modified\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) balance() (newSelf *Node) {\n\tbalance := node.calcBalance()\n\tif balance \u003e= -1 {\n\t\treturn node\n\t}\n\tif balance \u003e 1 {\n\t\tif node.getLeftNode().calcBalance() \u003e= 0 {\n\t\t\t// Left Left Case\n\t\t\treturn node.rotateRight()\n\t\t}\n\t\t// Left Right Case\n\t\tleft := node.getLeftNode()\n\t\tnode.leftNode = left.rotateLeft()\n\t\treturn node.rotateRight()\n\t}\n\n\tif node.getRightNode().calcBalance() \u003c= 0 {\n\t\t// Right Right Case\n\t\treturn node.rotateLeft()\n\t}\n\n\t// Right Left Case\n\tright := node.getRightNode()\n\tnode.rightNode = right.rotateRight()\n\treturn node.rotateLeft()\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) Iterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, true, true, cb)\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) ReverseIterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, false, true, cb)\n}\n\n// TraverseInRange traverses all nodes, including inner nodes.\n// Start is inclusive and end is exclusive when ascending,\n// Start and end are inclusive when descending.\n// Empty start and empty end denote no start and no end.\n// If leavesOnly is true, only visit leaf nodes.\n// NOTE: To simulate an exclusive reverse traversal,\n// just append 0x00 to start.\nfunc (node *Node) TraverseInRange(start, end string, ascending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\tafterStart := (start == \"\" || start \u003c node.key)\n\tstartOrAfter := (start == \"\" || start \u003c= node.key)\n\tbeforeEnd := false\n\tif ascending {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c end)\n\t} else {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c= end)\n\t}\n\n\t// Run callback per inner/leaf node.\n\tstop := false\n\tif (!node.IsLeaf() \u0026\u0026 !leavesOnly) ||\n\t\t(node.IsLeaf() \u0026\u0026 startOrAfter \u0026\u0026 beforeEnd) {\n\t\tstop = cb(node)\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t}\n\tif node.IsLeaf() {\n\t\treturn stop\n\t}\n\n\tif ascending {\n\t\t// check lower nodes, then higher\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t} else {\n\t\t// check the higher nodes first\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t}\n\n\treturn stop\n}\n\n// TraverseByOffset traverses all nodes, including inner nodes.\n// A limit of math.MaxInt means no limit.\nfunc (node *Node) TraverseByOffset(offset, limit int, descending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\n\t// fast paths. these happen only if TraverseByOffset is called directly on a leaf.\n\tif limit \u003c= 0 || offset \u003e= node.size {\n\t\treturn false\n\t}\n\tif node.IsLeaf() {\n\t\tif offset \u003e 0 {\n\t\t\treturn false\n\t\t}\n\t\treturn cb(node)\n\t}\n\n\t// go to the actual recursive function.\n\treturn node.traverseByOffset(offset, limit, descending, leavesOnly, cb)\n}\n\n// TraverseByOffset traverses the subtree rooted at the node by offset and limit,\n// in either ascending or descending order, and applies the callback function to each traversed node.\n// If leavesOnly is true, only leaf nodes are visited.\nfunc (node *Node) traverseByOffset(offset, limit int, descending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\t// caller guarantees: offset \u003c node.size; limit \u003e 0.\n\tif !leavesOnly {\n\t\tif cb(node) {\n\t\t\treturn true\n\t\t}\n\t}\n\tfirst, second := node.getLeftNode(), node.getRightNode()\n\tif descending {\n\t\tfirst, second = second, first\n\t}\n\tif first.IsLeaf() {\n\t\t// either run or skip, based on offset\n\t\tif offset \u003e 0 {\n\t\t\toffset--\n\t\t} else {\n\t\t\tcb(first)\n\t\t\tlimit--\n\t\t\tif limit \u003c= 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// possible cases:\n\t\t// 1 the offset given skips the first node entirely\n\t\t// 2 the offset skips none or part of the first node, but the limit requires some of the second node.\n\t\t// 3 the offset skips none or part of the first node, and the limit stops our search on the first node.\n\t\tif offset \u003e= first.size {\n\t\t\toffset -= first.size // 1\n\t\t} else {\n\t\t\tif first.traverseByOffset(offset, limit, descending, leavesOnly, cb) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// number of leaves which could actually be called from inside\n\t\t\tdelta := first.size - offset\n\t\t\toffset = 0\n\t\t\tif delta \u003e= limit {\n\t\t\t\treturn true // 3\n\t\t\t}\n\t\t\tlimit -= delta // 2\n\t\t}\n\t}\n\n\t// because of the caller guarantees and the way we handle the first node,\n\t// at this point we know that limit \u003e 0 and there must be some values in\n\t// this second node that we include.\n\n\t// =\u003e if the second node is a leaf, it has to be included.\n\tif second.IsLeaf() {\n\t\treturn cb(second)\n\t}\n\t// =\u003e if it is not a leaf, it will still be enough to recursively call this\n\t// function with the updated offset and limit\n\treturn second.traverseByOffset(offset, limit, descending, leavesOnly, cb)\n}\n\n// Only used in testing...\nfunc (node *Node) lmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getLeftNode().lmd()\n}\n\n// Only used in testing...\nfunc (node *Node) rmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getRightNode().rmd()\n}\n\nfunc maxInt8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"node_test.gno","body":"package avl\n\nimport (\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestTraverseByOffset(t *testing.T) {\n\tconst testStrings = `Alfa\nAlfred\nAlpha\nAlphabet\nBeta\nBeth\nBook\nBrowser`\n\ttt := []struct {\n\t\tname string\n\t\tdesc bool\n\t}{\n\t\t{\"ascending\", false},\n\t\t{\"descending\", true},\n\t}\n\n\tfor _, tt := range tt {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsl := strings.Split(testStrings, \"\\n\")\n\n\t\t\t// sort a first time in the order opposite to how we'll be traversing\n\t\t\t// the tree, to ensure that we are not just iterating through with\n\t\t\t// insertion order.\n\t\t\tsort.Strings(sl)\n\t\t\tif !tt.desc {\n\t\t\t\treverseSlice(sl)\n\t\t\t}\n\n\t\t\tr := NewNode(sl[0], nil)\n\t\t\tfor _, v := range sl[1:] {\n\t\t\t\tr, _ = r.Set(v, nil)\n\t\t\t}\n\n\t\t\t// then sort sl in the order we'll be traversing it, so that we can\n\t\t\t// compare the result with sl.\n\t\t\treverseSlice(sl)\n\n\t\t\tvar result []string\n\t\t\tfor i := 0; i \u003c len(sl); i++ {\n\t\t\t\tr.TraverseByOffset(i, 1, tt.desc, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif !slicesEqual(sl, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", sl, result)\n\t\t\t}\n\n\t\t\tfor l := 2; l \u003c= len(sl); l++ {\n\t\t\t\t// \"slices\"\n\t\t\t\tfor i := 0; i \u003c= len(sl); i++ {\n\t\t\t\t\tmax := i + l\n\t\t\t\t\tif max \u003e len(sl) {\n\t\t\t\t\t\tmax = len(sl)\n\t\t\t\t\t}\n\t\t\t\t\texp := sl[i:max]\n\t\t\t\t\tactual := []string{}\n\n\t\t\t\t\tr.TraverseByOffset(i, l, tt.desc, true, func(tr *Node) bool {\n\t\t\t\t\t\tactual = append(actual, tr.Key())\n\t\t\t\t\t\treturn false\n\t\t\t\t\t})\n\t\t\t\t\tif !slicesEqual(exp, actual) {\n\t\t\t\t\t\tt.Errorf(\"want %v got %v\", exp, actual)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestHas(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\thasKey string\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\t\"has key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"has key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"A\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"B\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tresult := tree.Has(tt.hasKey)\n\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tgetKey string\n\t\texpectIdx int\n\t\texpectVal interface{}\n\t\texpectExists bool\n\t}{\n\t\t{\n\t\t\t\"get existing key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\t1,\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (smaller)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"@\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (larger)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t5,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get from empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tidx, val, exists := tree.Get(tt.getKey)\n\n\t\t\tif idx != tt.expectIdx {\n\t\t\t\tt.Errorf(\"Expected index %d, got %d\", tt.expectIdx, idx)\n\t\t\t}\n\n\t\t\tif val != tt.expectVal {\n\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t}\n\n\t\t\tif exists != tt.expectExists {\n\t\t\t\tt.Errorf(\"Expected exists %t, got %t\", tt.expectExists, exists)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetByIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tidx int\n\t\texpectKey string\n\t\texpectVal interface{}\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\t\"get by valid index\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t2,\n\t\t\t\"C\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (smallest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t0,\n\t\t\t\"A\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (largest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t4,\n\t\t\t\"E\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (negative)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t-1,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (out of range)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t5,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tif tt.expectPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\t\tt.Errorf(\"Expected a panic but didn't get one\")\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t}\n\n\t\t\tkey, val := tree.GetByIndex(tt.idx)\n\n\t\t\tif !tt.expectPanic {\n\t\t\t\tif key != tt.expectKey {\n\t\t\t\t\tt.Errorf(\"Expected key %s, got %s\", tt.expectKey, key)\n\t\t\t\t}\n\n\t\t\t\tif val != tt.expectVal {\n\t\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRemove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tremoveKey string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"remove leaf node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"B\",\n\t\t\t[]string{\"A\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with one child\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"A\",\n\t\t\t[]string{\"B\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with two children\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove root node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove non-existent key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree, _, _, _ = tree.Remove(tt.removeKey)\n\n\t\t\tresult := make([]string, 0)\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestTraverse(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"empty tree\",\n\t\t\t[]string{},\n\t\t\t[]string{},\n\t\t},\n\t\t{\n\t\t\t\"single node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t[]string{\"A\"},\n\t\t},\n\t\t{\n\t\t\t\"small tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"large tree\",\n\t\t\t[]string{\"H\", \"D\", \"L\", \"B\", \"F\", \"J\", \"N\", \"A\", \"C\", \"E\", \"G\", \"I\", \"K\", \"M\", \"O\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tt.Run(\"iterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"ReverseIterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.ReverseIterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, len(tt.expected))\n\t\t\t\tcopy(expected, tt.expected)\n\t\t\t\tfor i, j := 0, len(expected)-1; i \u003c j; i, j = i+1, j-1 {\n\t\t\t\t\texpected[i], expected[j] = expected[j], expected[i]\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"TraverseInRange\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\tstart, end := \"C\", \"M\"\n\t\t\t\ttree.TraverseInRange(start, end, true, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, 0)\n\t\t\t\tfor _, key := range tt.expected {\n\t\t\t\t\tif key \u003e= start \u0026\u0026 key \u003c end {\n\t\t\t\t\t\texpected = append(expected, key)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestRotateWhenHeightDiffers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation when left subtree is higher\",\n\t\t\t[]string{\"E\", \"C\", \"A\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation when right subtree is higher\",\n\t\t\t[]string{\"A\", \"C\", \"E\", \"D\", \"F\"},\n\t\t\t[]string{\"A\", \"C\", \"D\", \"E\", \"F\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"E\", \"A\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"A\", \"E\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"E\", \"D\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\t// perform rotation or balance\n\t\t\ttree = tree.balance()\n\n\t\t\t// check tree structure\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRotateAndBalance(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation\",\n\t\t\t[]string{\"E\", \"D\", \"C\", \"B\", \"A\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"C\", \"A\", \"E\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"C\", \"E\", \"A\", \"D\", \"B\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree = tree.balance()\n\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc slicesEqual(w1, w2 []string) bool {\n\tif len(w1) != len(w2) {\n\t\treturn false\n\t}\n\tfor i := 0; i \u003c len(w1); i++ {\n\t\tif w1[0] != w2[0] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc maxint8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc reverseSlice(ss []string) {\n\tfor i := 0; i \u003c len(ss)/2; i++ {\n\t\tj := len(ss) - 1 - i\n\t\tss[i], ss[j] = ss[j], ss[i]\n\t}\n}\n"},{"name":"tree.gno","body":"package avl\n\ntype IterCbFn func(key string, value interface{}) bool\n\n//----------------------------------------\n// Tree\n\n// The zero struct can be used as an empty tree.\ntype Tree struct {\n\tnode *Node\n}\n\n// NewTree creates a new empty AVL tree.\nfunc NewTree() *Tree {\n\treturn \u0026Tree{\n\t\tnode: nil,\n\t}\n}\n\n// Size returns the number of key-value pair in the tree.\nfunc (tree *Tree) Size() int {\n\treturn tree.node.Size()\n}\n\n// Has checks whether a key exists in the tree.\n// It returns true if the key exists, otherwise false.\nfunc (tree *Tree) Has(key string) (has bool) {\n\treturn tree.node.Has(key)\n}\n\n// Get retrieves the value associated with the given key.\n// It returns the value and a boolean indicating whether the key exists.\nfunc (tree *Tree) Get(key string) (value interface{}, exists bool) {\n\t_, value, exists = tree.node.Get(key)\n\treturn\n}\n\n// GetByIndex retrieves the key-value pair at the specified index in the tree.\n// It returns the key and value at the given index.\nfunc (tree *Tree) GetByIndex(index int) (key string, value interface{}) {\n\treturn tree.node.GetByIndex(index)\n}\n\n// Set inserts a key-value pair into the tree.\n// If the key already exists, the value will be updated.\n// It returns a boolean indicating whether the key was newly inserted or updated.\nfunc (tree *Tree) Set(key string, value interface{}) (updated bool) {\n\tnewnode, updated := tree.node.Set(key, value)\n\ttree.node = newnode\n\treturn updated\n}\n\n// Remove removes a key-value pair from the tree.\n// It returns the removed value and a boolean indicating whether the key was found and removed.\nfunc (tree *Tree) Remove(key string) (value interface{}, removed bool) {\n\tnewnode, _, value, removed := tree.node.Remove(key)\n\ttree.node = newnode\n\treturn value, removed\n}\n\n// Iterate performs an in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) Iterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterate performs a reverse in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// IterateByOffset performs an in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) IterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterateByOffset performs a reverse in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n"},{"name":"tree_test.gno","body":"package avl\n\nimport \"testing\"\n\nfunc TestNewTree(t *testing.T) {\n\ttree := NewTree()\n\tif tree.node != nil {\n\t\tt.Error(\"Expected tree.node to be nil\")\n\t}\n}\n\nfunc TestTreeSize(t *testing.T) {\n\ttree := NewTree()\n\tif tree.Size() != 0 {\n\t\tt.Error(\"Expected empty tree size to be 0\")\n\t}\n\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\tif tree.Size() != 2 {\n\t\tt.Error(\"Expected tree size to be 2\")\n\t}\n}\n\nfunc TestTreeHas(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tif !tree.Has(\"key1\") {\n\t\tt.Error(\"Expected tree to have key1\")\n\t}\n\n\tif tree.Has(\"key2\") {\n\t\tt.Error(\"Expected tree to not have key2\")\n\t}\n}\n\nfunc TestTreeGet(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, exists := tree.Get(\"key1\")\n\tif !exists || value != \"value1\" {\n\t\tt.Error(\"Expected Get to return value1 and true\")\n\t}\n\n\t_, exists = tree.Get(\"key2\")\n\tif exists {\n\t\tt.Error(\"Expected Get to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeGetByIndex(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\n\tkey, value := tree.GetByIndex(0)\n\tif key != \"key1\" || value != \"value1\" {\n\t\tt.Error(\"Expected GetByIndex(0) to return key1 and value1\")\n\t}\n\n\tkey, value = tree.GetByIndex(1)\n\tif key != \"key2\" || value != \"value2\" {\n\t\tt.Error(\"Expected GetByIndex(1) to return key2 and value2\")\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Error(\"Expected GetByIndex to panic for out-of-range index\")\n\t\t}\n\t}()\n\ttree.GetByIndex(2)\n}\n\nfunc TestTreeRemove(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, removed := tree.Remove(\"key1\")\n\tif !removed || value != \"value1\" || tree.Size() != 0 {\n\t\tt.Error(\"Expected Remove to remove key-value pair\")\n\t}\n\n\t_, removed = tree.Remove(\"key2\")\n\tif removed {\n\t\tt.Error(\"Expected Remove to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key1\", \"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key3\", \"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.IterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\t// node, _ = node.Set(\"key0\", \"value0\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key1\", \"value1\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 2\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"627e8e517e7ae5db0f3b753e2a32b607989198b6\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:5\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b28057ab7be6383785c0a5503e8a531bdbc21851\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:7]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"6da365f0d6cacbcdf53cd5a4b125803cddce08c2\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f216afe7b5a17f4ebdbb98dceccedbc22e237596\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ff1a50d8489090af37a2c7766d659f0d717939b5\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"5\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ae86874f9b47fa5e64c30b3e92e9d07f2ec967a4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_0.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_0.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_0.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_0.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\tnode, _ = node.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key2\", \"value2\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"143aebc820da33550f7338723fb1e2eec575b196\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2f3adc5d0f2a3fe0331cfa93572a7abdde14c9aa\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2e733a8e9e74fe14f0a5d10fb0f6728fa53d052d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fe20a19f956511f274dc77854e9e5468387260f4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c89a71bdf045e8bde2059dc9d33839f916e02e5d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"90fa67f8c47db4b9b2a60425dff08d5a3385100f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"83e42caaf53070dd95b5f859053eb51ed900bbda\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"9\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1faa9fa4ba1935121a6d3f0a623772e9d4499b0a\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_1.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_1.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_1.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_1.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar tree avl.Tree\n\nfunc init() {\n\ttree.Set(\"key0\", \"value0\")\n\ttree.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tupdated = tree.Set(\"key2\", \"value2\")\n\tprintln(updated, tree.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:16]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"db333c89cd6773709e031f1f4e4ed4d3fed66c11\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"849a50d6c78d65742752e3c89ad8dd556e2e63cb\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b4fc2fdd2d0fe936c87ed2ace97136cffeed207f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a1160b0060ad752dbfe5fe436f7734bb19136150\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fd95e08763159ac529e26986d652e752e78b6325\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3ecdcf148fe2f9e97b72a3bedf303b2ba56d4f4b\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"63126557dba88f8556f7a0ccbbfc1d218ae7a302\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:3]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"d31c7e797793e03ffe0bbcb72f963264f8300d22\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"ModTime\": \"10\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// }\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tTH/RQWkX2ALelK4w8Lx8sO7PIJCCXVZX3Dt8NGUNLkRypbV5AuJfzj8XxeteQGuohrdQ/NioEyfYSuhEG8tAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl_pager","path":"gno.land/r/docs/avl_pager","files":[{"name":"avl_pager.gno","body":"package avl_pager\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n)\n\n// Tree instance for 100 items\nvar tree *avl.Tree\n\n// Initialize a tree with 100 items.\nfunc init() {\n\ttree = avl.NewTree()\n\tfor i := 1; i \u003c= 100; i++ {\n\t\tkey := \"Item\" + strconv.Itoa(i)\n\t\ttree.Set(key, \"Value of \"+key)\n\t}\n}\n\n// Render paginated content based on the given URL path.\n// URL format: `...?page=\u003cpage\u003e\u0026size=\u003csize\u003e` (default is page 1 and size 10).\nfunc Render(path string) string {\n\tp := pager.NewPager(tree, 10) // Default page size is 10\n\tpage := p.MustGetPageByPath(path)\n\n\t// Header and pagination info\n\tresult := \"# Paginated Items\\n\"\n\tresult += \"Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"\\n\\n\"\n\tresult += page.Selector() + \"\\n\\n\"\n\n\t// Display items on the current page\n\tfor _, item := range page.Items {\n\t\tresult += \"- \" + item.Key + \": \" + item.Value.(string) + \"\\n\"\n\t}\n\n\tresult += \"\\n\" + page.Selector() // Repeat selector for ease of navigation\n\treturn result\n}\n"},{"name":"avl_pager_test.gno","body":"package avl_pager\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Test default Render output (first page)\n\toutput := Render(\"\")\n\texpected := `# Paginated Items\nPage 1 of 10\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\n\n- Item1: Value of Item1\n- Item10: Value of Item10\n- Item100: Value of Item100\n- Item11: Value of Item11\n- Item12: Value of Item12\n- Item13: Value of Item13\n- Item14: Value of Item14\n- Item15: Value of Item15\n- Item16: Value of Item16\n- Item17: Value of Item17\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n\nfunc TestRender_page2(t *testing.T) {\n\t// Test Render output for a custom page (page 2)\n\toutput := Render(\"?page=2\u0026size=10\")\n\texpected := `# Paginated Items\nPage 2 of 10\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\n\n- Item18: Value of Item18\n- Item19: Value of Item19\n- Item2: Value of Item2\n- Item20: Value of Item20\n- Item21: Value of Item21\n- Item22: Value of Item22\n- Item23: Value of Item23\n- Item24: Value of Item24\n- Item25: Value of Item25\n- Item26: Value of Item26\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7KK+6ZJidBsbV8exSOFp3UwBZ84ox7O/Fzv8p4SBiFzWXyxBuK5jlFAx+oQK1yVWvdXkauZQrDUTd/SRIYwKAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl_pager","path":"gno.land/r/docs/avl_pager","files":[{"name":"avl_pager.gno","body":"package avl_pager\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n)\n\n// Tree instance for 100 items\nvar tree *avl.Tree\n\n// Initialize a tree with 100 items.\nfunc init() {\n\ttree = avl.NewTree()\n\tfor i := 1; i \u003c= 100; i++ {\n\t\tkey := \"Item\" + strconv.Itoa(i)\n\t\ttree.Set(key, \"Value of \"+key)\n\t}\n}\n\n// Render paginated content based on the given URL path.\n// URL format: `...?page=\u003cpage\u003e\u0026size=\u003csize\u003e` (default is page 1 and size 10).\nfunc Render(path string) string {\n\tp := pager.NewPager(tree, 10) // Default page size is 10\n\tpage := p.MustGetPageByPath(path)\n\n\t// Header and pagination info\n\tresult := \"# Paginated Items\\n\"\n\tresult += \"Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"\\n\\n\"\n\tresult += page.Selector() + \"\\n\\n\"\n\n\t// Display items on the current page\n\tfor _, item := range page.Items {\n\t\tresult += \"- \" + item.Key + \": \" + item.Value.(string) + \"\\n\"\n\t}\n\n\tresult += \"\\n\" + page.Selector() // Repeat selector for ease of navigation\n\treturn result\n}\n"},{"name":"avl_pager_test.gno","body":"package avl_pager\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Test default Render output (first page)\n\toutput := Render(\"\")\n\texpected := `# Paginated Items\nPage 1 of 10\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\n\n- Item1: Value of Item1\n- Item10: Value of Item10\n- Item100: Value of Item100\n- Item11: Value of Item11\n- Item12: Value of Item12\n- Item13: Value of Item13\n- Item14: Value of Item14\n- Item15: Value of Item15\n- Item16: Value of Item16\n- Item17: Value of Item17\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n\nfunc TestRender_page2(t *testing.T) {\n\t// Test Render output for a custom page (page 2)\n\toutput := Render(\"?page=2\u0026size=10\")\n\texpected := `# Paginated Items\nPage 2 of 10\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\n\n- Item18: Value of Item18\n- Item19: Value of Item19\n- Item2: Value of Item2\n- Item20: Value of Item20\n- Item21: Value of Item21\n- Item22: Value of Item22\n- Item23: Value of Item23\n- Item24: Value of Item24\n- Item25: Value of Item25\n- Item26: Value of Item26\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7KK+6ZJidBsbV8exSOFp3UwBZ84ox7O/Fzv8p4SBiFzWXyxBuK5jlFAx+oQK1yVWvdXkauZQrDUTd/SRIYwKAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl_pager","path":"gno.land/r/docs/avl_pager","files":[{"name":"avl_pager.gno","body":"package avl_pager\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n)\n\n// Tree instance for 100 items\nvar tree *avl.Tree\n\n// Initialize a tree with 100 items.\nfunc init() {\n\ttree = avl.NewTree()\n\tfor i := 1; i \u003c= 100; i++ {\n\t\tkey := \"Item\" + strconv.Itoa(i)\n\t\ttree.Set(key, \"Value of \"+key)\n\t}\n}\n\n// Render paginated content based on the given URL path.\n// URL format: `...?page=\u003cpage\u003e\u0026size=\u003csize\u003e` (default is page 1 and size 10).\nfunc Render(path string) string {\n\tp := pager.NewPager(tree, 10) // Default page size is 10\n\tpage := p.MustGetPageByPath(path)\n\n\t// Header and pagination info\n\tresult := \"# Paginated Items\\n\"\n\tresult += \"Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"\\n\\n\"\n\tresult += page.Selector() + \"\\n\\n\"\n\n\t// Display items on the current page\n\tfor _, item := range page.Items {\n\t\tresult += \"- \" + item.Key + \": \" + item.Value.(string) + \"\\n\"\n\t}\n\n\tresult += \"\\n\" + page.Selector() // Repeat selector for ease of navigation\n\treturn result\n}\n"},{"name":"avl_pager_test.gno","body":"package avl_pager\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Test default Render output (first page)\n\toutput := Render(\"\")\n\texpected := `# Paginated Items\nPage 1 of 10\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\n\n- Item1: Value of Item1\n- Item10: Value of Item10\n- Item100: Value of Item100\n- Item11: Value of Item11\n- Item12: Value of Item12\n- Item13: Value of Item13\n- Item14: Value of Item14\n- Item15: Value of Item15\n- Item16: Value of Item16\n- Item17: Value of Item17\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n\nfunc TestRender_page2(t *testing.T) {\n\t// Test Render output for a custom page (page 2)\n\toutput := Render(\"?page=2\u0026size=10\")\n\texpected := `# Paginated Items\nPage 2 of 10\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\n\n- Item18: Value of Item18\n- Item19: Value of Item19\n- Item2: Value of Item2\n- Item20: Value of Item20\n- Item21: Value of Item21\n- Item22: Value of Item22\n- Item23: Value of Item23\n- Item24: Value of Item24\n- Item25: Value of Item25\n- Item26: Value of Item26\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7KK+6ZJidBsbV8exSOFp3UwBZ84ox7O/Fzv8p4SBiFzWXyxBuK5jlFAx+oQK1yVWvdXkauZQrDUTd/SRIYwKAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avl_pager","path":"gno.land/r/docs/avl_pager","files":[{"name":"avl_pager.gno","body":"package avl_pager\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n)\n\n// Tree instance for 100 items\nvar tree *avl.Tree\n\n// Initialize a tree with 100 items.\nfunc init() {\n\ttree = avl.NewTree()\n\tfor i := 1; i \u003c= 100; i++ {\n\t\tkey := \"Item\" + strconv.Itoa(i)\n\t\ttree.Set(key, \"Value of \"+key)\n\t}\n}\n\n// Render paginated content based on the given URL path.\n// URL format: `...?page=\u003cpage\u003e\u0026size=\u003csize\u003e` (default is page 1 and size 10).\nfunc Render(path string) string {\n\tp := pager.NewPager(tree, 10, false) // Default page size is 10\n\tpage := p.MustGetPageByPath(path)\n\n\t// Header and pagination info\n\tresult := \"# Paginated Items\\n\"\n\tresult += \"Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"\\n\\n\"\n\tresult += page.Picker() + \"\\n\\n\"\n\n\t// Display items on the current page\n\tfor _, item := range page.Items {\n\t\tresult += \"- \" + item.Key + \": \" + item.Value.(string) + \"\\n\"\n\t}\n\n\tresult += \"\\n\" + page.Picker() // Repeat page picker for ease of navigation\n\treturn result\n}\n"},{"name":"avl_pager_test.gno","body":"package avl_pager\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Test default Render output (first page)\n\toutput := Render(\"\")\n\texpected := `# Paginated Items\nPage 1 of 10\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\n\n- Item1: Value of Item1\n- Item10: Value of Item10\n- Item100: Value of Item100\n- Item11: Value of Item11\n- Item12: Value of Item12\n- Item13: Value of Item13\n- Item14: Value of Item14\n- Item15: Value of Item15\n- Item16: Value of Item16\n- Item17: Value of Item17\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n\nfunc TestRender_page2(t *testing.T) {\n\t// Test Render output for a custom page (page 2)\n\toutput := Render(\"?page=2\u0026size=10\")\n\texpected := `# Paginated Items\nPage 2 of 10\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\n\n- Item18: Value of Item18\n- Item19: Value of Item19\n- Item2: Value of Item2\n- Item20: Value of Item20\n- Item21: Value of Item21\n- Item22: Value of Item22\n- Item23: Value of Item23\n- Item24: Value of Item24\n- Item25: Value of Item25\n- Item26: Value of Item26\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mKvhe3ioKXzNiYor0p1OJtHtY+mnSeyx3rZ5aRA7Sw4F7qYyrI5oCYRfR6j9TT7kvZPI/7P6eM7q2d9Qxy4bCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avlhelpers","path":"gno.land/p/demo/avlhelpers","files":[{"name":"avlhelpers.gno","body":"package avlhelpers\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\n// Iterate the keys in-order starting from the given prefix.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc IterateByteStringKeysByPrefix(tree avl.Tree, prefix string, cb avl.IterCbFn) {\n\tend := \"\"\n\tn := len(prefix)\n\t// To make the end of the search, increment the final character ASCII by one.\n\tfor n \u003e 0 {\n\t\tif ascii := int(prefix[n-1]); ascii \u003c 0xff {\n\t\t\tend = prefix[0:n-1] + string(ascii+1)\n\t\t\tbreak\n\t\t}\n\n\t\t// The last character is 0xff. Try the previous character.\n\t\tn--\n\t}\n\n\ttree.Iterate(prefix, end, cb)\n}\n\n// Get a list of keys starting from the given prefix. Limit the\n// number of results to maxResults.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc ListByteStringKeysByPrefix(tree avl.Tree, prefix string, maxResults int) []string {\n\tresult := []string{}\n\tIterateByteStringKeysByPrefix(tree, prefix, func(key string, value interface{}) bool {\n\t\tresult = append(result, key)\n\t\tif len(result) \u003e= maxResults {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"encoding/hex\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\ttree := avl.Tree{}\n\n\t{\n\t\t// Empty tree.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t}\n\n\ttree.Set(\"alice\", \"\")\n\ttree.Set(\"andy\", \"\")\n\ttree.Set(\"bob\", \"\")\n\n\t{\n\t\t// Match only alice.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"al\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\t{\n\t\t// Match alice and andy.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t\tprintln(\"match: \" + matches[1])\n\t}\n\n\t{\n\t\t// Match alice and andy limited to 1.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 1)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\ttree = avl.Tree{}\n\ttree.Set(\"a\\xff\", \"\")\n\ttree.Set(\"a\\xff\\xff\", \"\")\n\ttree.Set(\"b\", \"\")\n\ttree.Set(\"\\xff\\xff\\x00\", \"\")\n\n\t{\n\t\t// Match only \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n\n\t{\n\t\t// Match \"a\\xff\" and \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[1]))))\n\t}\n\n\t{\n\t\t// Edge case: Match only \"\\xff\\xff\\x00\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n}\n\n// Output:\n// # matches: 0\n// # matches: 1\n// match: alice\n// # matches: 2\n// match: alice\n// match: andy\n// # matches: 1\n// match: alice\n// # matches: 1\n// match: 61ffff\n// # matches: 2\n// match: 61ff\n// match: 61ffff\n// # matches: 1\n// match: ffff00\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0/EkS1ZSKP0bNVDCDxYQkHabxGTIAroWUc4qx/k19ZsLvRC6MP4q3Ld0lN75cH8/prgR1cvLeiaFpKEvdSR/Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avlhelpers","path":"gno.land/p/demo/avlhelpers","files":[{"name":"avlhelpers.gno","body":"package avlhelpers\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\n// Iterate the keys in-order starting from the given prefix.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc IterateByteStringKeysByPrefix(tree avl.Tree, prefix string, cb avl.IterCbFn) {\n\tend := \"\"\n\tn := len(prefix)\n\t// To make the end of the search, increment the final character ASCII by one.\n\tfor n \u003e 0 {\n\t\tif ascii := int(prefix[n-1]); ascii \u003c 0xff {\n\t\t\tend = prefix[0:n-1] + string(ascii+1)\n\t\t\tbreak\n\t\t}\n\n\t\t// The last character is 0xff. Try the previous character.\n\t\tn--\n\t}\n\n\ttree.Iterate(prefix, end, cb)\n}\n\n// Get a list of keys starting from the given prefix. Limit the\n// number of results to maxResults.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc ListByteStringKeysByPrefix(tree avl.Tree, prefix string, maxResults int) []string {\n\tresult := []string{}\n\tIterateByteStringKeysByPrefix(tree, prefix, func(key string, value interface{}) bool {\n\t\tresult = append(result, key)\n\t\tif len(result) \u003e= maxResults {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"encoding/hex\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\ttree := avl.Tree{}\n\n\t{\n\t\t// Empty tree.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t}\n\n\ttree.Set(\"alice\", \"\")\n\ttree.Set(\"andy\", \"\")\n\ttree.Set(\"bob\", \"\")\n\n\t{\n\t\t// Match only alice.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"al\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\t{\n\t\t// Match alice and andy.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t\tprintln(\"match: \" + matches[1])\n\t}\n\n\t{\n\t\t// Match alice and andy limited to 1.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 1)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\ttree = avl.Tree{}\n\ttree.Set(\"a\\xff\", \"\")\n\ttree.Set(\"a\\xff\\xff\", \"\")\n\ttree.Set(\"b\", \"\")\n\ttree.Set(\"\\xff\\xff\\x00\", \"\")\n\n\t{\n\t\t// Match only \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n\n\t{\n\t\t// Match \"a\\xff\" and \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[1]))))\n\t}\n\n\t{\n\t\t// Edge case: Match only \"\\xff\\xff\\x00\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n}\n\n// Output:\n// # matches: 0\n// # matches: 1\n// match: alice\n// # matches: 2\n// match: alice\n// match: andy\n// # matches: 1\n// match: alice\n// # matches: 1\n// match: 61ffff\n// # matches: 2\n// match: 61ff\n// match: 61ffff\n// # matches: 1\n// match: ffff00\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0/EkS1ZSKP0bNVDCDxYQkHabxGTIAroWUc4qx/k19ZsLvRC6MP4q3Ld0lN75cH8/prgR1cvLeiaFpKEvdSR/Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"avlhelpers","path":"gno.land/p/demo/avlhelpers","files":[{"name":"avlhelpers.gno","body":"package avlhelpers\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\n// Iterate the keys in-order starting from the given prefix.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc IterateByteStringKeysByPrefix(tree avl.Tree, prefix string, cb avl.IterCbFn) {\n\tend := \"\"\n\tn := len(prefix)\n\t// To make the end of the search, increment the final character ASCII by one.\n\tfor n \u003e 0 {\n\t\tif ascii := int(prefix[n-1]); ascii \u003c 0xff {\n\t\t\tend = prefix[0:n-1] + string(ascii+1)\n\t\t\tbreak\n\t\t}\n\n\t\t// The last character is 0xff. Try the previous character.\n\t\tn--\n\t}\n\n\ttree.Iterate(prefix, end, cb)\n}\n\n// Get a list of keys starting from the given prefix. Limit the\n// number of results to maxResults.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc ListByteStringKeysByPrefix(tree avl.Tree, prefix string, maxResults int) []string {\n\tresult := []string{}\n\tIterateByteStringKeysByPrefix(tree, prefix, func(key string, value interface{}) bool {\n\t\tresult = append(result, key)\n\t\tif len(result) \u003e= maxResults {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"encoding/hex\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\ttree := avl.Tree{}\n\n\t{\n\t\t// Empty tree.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t}\n\n\ttree.Set(\"alice\", \"\")\n\ttree.Set(\"andy\", \"\")\n\ttree.Set(\"bob\", \"\")\n\n\t{\n\t\t// Match only alice.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"al\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\t{\n\t\t// Match alice and andy.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t\tprintln(\"match: \" + matches[1])\n\t}\n\n\t{\n\t\t// Match alice and andy limited to 1.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 1)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\ttree = avl.Tree{}\n\ttree.Set(\"a\\xff\", \"\")\n\ttree.Set(\"a\\xff\\xff\", \"\")\n\ttree.Set(\"b\", \"\")\n\ttree.Set(\"\\xff\\xff\\x00\", \"\")\n\n\t{\n\t\t// Match only \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n\n\t{\n\t\t// Match \"a\\xff\" and \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[1]))))\n\t}\n\n\t{\n\t\t// Edge case: Match only \"\\xff\\xff\\x00\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n}\n\n// Output:\n// # matches: 0\n// # matches: 1\n// match: alice\n// # matches: 2\n// match: alice\n// match: andy\n// # matches: 1\n// match: alice\n// # matches: 1\n// match: 61ffff\n// # matches: 2\n// match: 61ff\n// match: 61ffff\n// # matches: 1\n// match: ffff00\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0/EkS1ZSKP0bNVDCDxYQkHabxGTIAroWUc4qx/k19ZsLvRC6MP4q3Ld0lN75cH8/prgR1cvLeiaFpKEvdSR/Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bank","path":"gno.land/p/demo/bank","files":[{"name":"types.gno","body":"// TODO: this is an example, and needs to be fixed up and tested.\n\npackage bank\n\n// NOTE: unexposed struct for security.\ntype order struct {\n\tfrom Address\n\tto Address\n\tamount Coins\n\tprocessed bool\n}\n\n// NOTE: unexposed methods for security.\nfunc (ch *order) string() string {\n\treturn \"TODO\"\n}\n\n// Wraps the internal *order for external use.\ntype Order struct {\n\t*order\n}\n\n// XXX only exposed for demonstration. TODO unexpose, make full demo.\nfunc NewOrder(from Address, to Address, amount Coins) Order {\n\treturn Order{\n\t\torder: \u0026order{\n\t\t\tfrom: from,\n\t\t\tto: to,\n\t\t\tamount: amount,\n\t\t},\n\t}\n}\n\n// Panics if error, or already processed.\nfunc (o Order) Execute() {\n\tif o.order.processed {\n\t\tpanic(\"order already processed\")\n\t}\n\to.order.processed = true\n\t// TODO implemement.\n}\n\nfunc (o Order) IsZero() bool {\n\treturn o.order == nil\n}\n\nfunc (o Order) From() Address {\n\treturn o.order.from\n}\n\nfunc (o Order) To() Address {\n\treturn o.order.to\n}\n\nfunc (o Order) Amount() Coins {\n\treturn o.order.amount\n}\n\nfunc (o Order) Processed() bool {\n\treturn o.order.processed\n}\n\n//----------------------------------------\n// Escrow\n\ntype EscrowTerms struct {\n\tPartyA Address\n\tPartyB Address\n\tAmountA Coins\n\tAmountB Coins\n}\n\ntype EscrowContract struct {\n\tEscrowTerms\n\tOrderA Order\n\tOrderB Order\n}\n\nfunc CreateEscrow(terms EscrowTerms) *EscrowContract {\n\treturn \u0026EscrowContract{\n\t\tEscrowTerms: terms,\n\t}\n}\n\nfunc (esc *EscrowContract) SetOrderA(order Order) {\n\tif !esc.OrderA.IsZero() {\n\t\tpanic(\"order-a already set\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.From() {\n\t\tpanic(\"invalid order-a:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.To() {\n\t\tpanic(\"invalid order-a:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountA.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-a amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) SetOrderB(order Order) {\n\tif !esc.OrderB.IsZero() {\n\t\tpanic(\"order-b already set\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.From() {\n\t\tpanic(\"invalid order-b:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.To() {\n\t\tpanic(\"invalid order-b:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountB.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-b amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) Execute() {\n\tif esc.OrderA.IsZero() {\n\t\tpanic(\"order-a not yet set\")\n\t}\n\tif esc.OrderB.IsZero() {\n\t\tpanic(\"order-b not yet set\")\n\t}\n\t// NOTE: succeeds atomically.\n\tesc.OrderA.Execute()\n\tesc.OrderB.Execute()\n}\n\n//----------------------------------------\n// TODO: actually implement these in std package.\n\ntype (\n\tAddress string\n\tCoins []Coin\n\tCoin struct {\n\t\tDenom bool\n\t\tAmount int64\n\t}\n)\n\nfunc (a Coins) Equal(b Coins) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Ic4QSv2kXUy8O+P42TWDG7VKrQMIcDBrvQ9gU8noWbKEX6waN5VsaELzBzT8yc0bA4aBsnxAHM1pCMp1PPQBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bank","path":"gno.land/p/demo/bank","files":[{"name":"types.gno","body":"// TODO: this is an example, and needs to be fixed up and tested.\n\npackage bank\n\n// NOTE: unexposed struct for security.\ntype order struct {\n\tfrom Address\n\tto Address\n\tamount Coins\n\tprocessed bool\n}\n\n// NOTE: unexposed methods for security.\nfunc (ch *order) string() string {\n\treturn \"TODO\"\n}\n\n// Wraps the internal *order for external use.\ntype Order struct {\n\t*order\n}\n\n// XXX only exposed for demonstration. TODO unexpose, make full demo.\nfunc NewOrder(from Address, to Address, amount Coins) Order {\n\treturn Order{\n\t\torder: \u0026order{\n\t\t\tfrom: from,\n\t\t\tto: to,\n\t\t\tamount: amount,\n\t\t},\n\t}\n}\n\n// Panics if error, or already processed.\nfunc (o Order) Execute() {\n\tif o.order.processed {\n\t\tpanic(\"order already processed\")\n\t}\n\to.order.processed = true\n\t// TODO implemement.\n}\n\nfunc (o Order) IsZero() bool {\n\treturn o.order == nil\n}\n\nfunc (o Order) From() Address {\n\treturn o.order.from\n}\n\nfunc (o Order) To() Address {\n\treturn o.order.to\n}\n\nfunc (o Order) Amount() Coins {\n\treturn o.order.amount\n}\n\nfunc (o Order) Processed() bool {\n\treturn o.order.processed\n}\n\n//----------------------------------------\n// Escrow\n\ntype EscrowTerms struct {\n\tPartyA Address\n\tPartyB Address\n\tAmountA Coins\n\tAmountB Coins\n}\n\ntype EscrowContract struct {\n\tEscrowTerms\n\tOrderA Order\n\tOrderB Order\n}\n\nfunc CreateEscrow(terms EscrowTerms) *EscrowContract {\n\treturn \u0026EscrowContract{\n\t\tEscrowTerms: terms,\n\t}\n}\n\nfunc (esc *EscrowContract) SetOrderA(order Order) {\n\tif !esc.OrderA.IsZero() {\n\t\tpanic(\"order-a already set\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.From() {\n\t\tpanic(\"invalid order-a:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.To() {\n\t\tpanic(\"invalid order-a:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountA.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-a amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) SetOrderB(order Order) {\n\tif !esc.OrderB.IsZero() {\n\t\tpanic(\"order-b already set\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.From() {\n\t\tpanic(\"invalid order-b:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.To() {\n\t\tpanic(\"invalid order-b:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountB.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-b amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) Execute() {\n\tif esc.OrderA.IsZero() {\n\t\tpanic(\"order-a not yet set\")\n\t}\n\tif esc.OrderB.IsZero() {\n\t\tpanic(\"order-b not yet set\")\n\t}\n\t// NOTE: succeeds atomically.\n\tesc.OrderA.Execute()\n\tesc.OrderB.Execute()\n}\n\n//----------------------------------------\n// TODO: actually implement these in std package.\n\ntype (\n\tAddress string\n\tCoins []Coin\n\tCoin struct {\n\t\tDenom bool\n\t\tAmount int64\n\t}\n)\n\nfunc (a Coins) Equal(b Coins) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Ic4QSv2kXUy8O+P42TWDG7VKrQMIcDBrvQ9gU8noWbKEX6waN5VsaELzBzT8yc0bA4aBsnxAHM1pCMp1PPQBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bank","path":"gno.land/p/demo/bank","files":[{"name":"types.gno","body":"// TODO: this is an example, and needs to be fixed up and tested.\n\npackage bank\n\n// NOTE: unexposed struct for security.\ntype order struct {\n\tfrom Address\n\tto Address\n\tamount Coins\n\tprocessed bool\n}\n\n// NOTE: unexposed methods for security.\nfunc (ch *order) string() string {\n\treturn \"TODO\"\n}\n\n// Wraps the internal *order for external use.\ntype Order struct {\n\t*order\n}\n\n// XXX only exposed for demonstration. TODO unexpose, make full demo.\nfunc NewOrder(from Address, to Address, amount Coins) Order {\n\treturn Order{\n\t\torder: \u0026order{\n\t\t\tfrom: from,\n\t\t\tto: to,\n\t\t\tamount: amount,\n\t\t},\n\t}\n}\n\n// Panics if error, or already processed.\nfunc (o Order) Execute() {\n\tif o.order.processed {\n\t\tpanic(\"order already processed\")\n\t}\n\to.order.processed = true\n\t// TODO implemement.\n}\n\nfunc (o Order) IsZero() bool {\n\treturn o.order == nil\n}\n\nfunc (o Order) From() Address {\n\treturn o.order.from\n}\n\nfunc (o Order) To() Address {\n\treturn o.order.to\n}\n\nfunc (o Order) Amount() Coins {\n\treturn o.order.amount\n}\n\nfunc (o Order) Processed() bool {\n\treturn o.order.processed\n}\n\n//----------------------------------------\n// Escrow\n\ntype EscrowTerms struct {\n\tPartyA Address\n\tPartyB Address\n\tAmountA Coins\n\tAmountB Coins\n}\n\ntype EscrowContract struct {\n\tEscrowTerms\n\tOrderA Order\n\tOrderB Order\n}\n\nfunc CreateEscrow(terms EscrowTerms) *EscrowContract {\n\treturn \u0026EscrowContract{\n\t\tEscrowTerms: terms,\n\t}\n}\n\nfunc (esc *EscrowContract) SetOrderA(order Order) {\n\tif !esc.OrderA.IsZero() {\n\t\tpanic(\"order-a already set\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.From() {\n\t\tpanic(\"invalid order-a:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.To() {\n\t\tpanic(\"invalid order-a:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountA.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-a amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) SetOrderB(order Order) {\n\tif !esc.OrderB.IsZero() {\n\t\tpanic(\"order-b already set\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.From() {\n\t\tpanic(\"invalid order-b:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.To() {\n\t\tpanic(\"invalid order-b:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountB.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-b amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) Execute() {\n\tif esc.OrderA.IsZero() {\n\t\tpanic(\"order-a not yet set\")\n\t}\n\tif esc.OrderB.IsZero() {\n\t\tpanic(\"order-b not yet set\")\n\t}\n\t// NOTE: succeeds atomically.\n\tesc.OrderA.Execute()\n\tesc.OrderB.Execute()\n}\n\n//----------------------------------------\n// TODO: actually implement these in std package.\n\ntype (\n\tAddress string\n\tCoins []Coin\n\tCoin struct {\n\t\tDenom bool\n\t\tAmount int64\n\t}\n)\n\nfunc (a Coins) Equal(b Coins) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Ic4QSv2kXUy8O+P42TWDG7VKrQMIcDBrvQ9gU8noWbKEX6waN5VsaELzBzT8yc0bA4aBsnxAHM1pCMp1PPQBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"banktest","path":"gno.land/r/demo/banktest","files":[{"name":"README.md","body":"This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.go](/r/demo/banktest/banktest.go) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n \"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e Self explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n caller std.Address\n sent std.Coins\n returned std.Coins\n time time.Time\n}\n\nfunc (act *activity) String() string {\n return act.caller.String() + \" \" +\n act.sent.String() + \" sent, \" +\n act.returned.String() + \" returned, at \" +\n act.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract. Notice that the \"latest\" variable is defined \"globally\" within the context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package are encapsulated within this \"data realm\", where the data is mutated based on transactions that can potentially cross many realm and non-realm package boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n std.AssertOriginCall()\n caller := std.GetOrigCaller()\n send := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named \"Deposit\". `std.AssertOriginCall() asserts that this function was called by a gno transactional Message. The caller is the user who signed off on this transactional message. Send is the amount of deposit sent along with this message.\n\n```go\n // record activity\n act := \u0026activity{\n caller: caller,\n sent: std.GetOrigSend(),\n returned: send,\n time: time.Now(),\n }\n for i := len(latest) - 2; i \u003e= 0; i-- {\n latest[i+1] = latest[i] // shift by +1.\n }\n latest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n // return if any.\n if returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n banker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n pkgaddr := std.GetOrigPkgAddr()\n // TODO: use std.Coins constructors, this isn't generally safe.\n banker.SendCoins(pkgaddr, caller, send)\n return \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n // get realm coins.\n banker := std.GetBanker(std.BankerTypeReadonly)\n coins := banker.GetCoins(std.GetOrigPkgAddr())\n\n // render\n res := \"\"\n res += \"## recent activity\\n\"\n res += \"\\n\"\n for _, act := range latest {\n if act == nil {\n break\n }\n res += \" * \" + act.String() + \"\\n\"\n }\n res += \"\\n\"\n res += \"## total deposits\\n\"\n res += coins.String()\n return res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:gnolang/4).\n"},{"name":"banktest.gno","body":"package banktest\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime time.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tact.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: time.Now(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n\t// return if any.\n\tif returnAmount \u003e 0 {\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n\t} else {\n\t\treturn \"thank you!\"\n\t}\n}\n\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n"},{"name":"z_0_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\n// SEND: 100000000ugnot\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\t// set up main address and banktest addr.\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\n\t// get and print balance of mainaddr.\n\t// with the SEND, + 200 gnot given by the TestContext, main should have 300gnot.\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\t// simulate a Deposit call. use Send + OrigSend to simulate -send.\n\tbanker.SendCoins(mainaddr, banktestAddr, std.Coins{{\"ugnot\", 100_000_000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100_000_000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 50_000_000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n\n\t// simulate a Render(). banker should have given back all coins.\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before: 100000000ugnot\n// Deposit(): returned!\n// main after: 50000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 50000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 50000000ugnot\n"},{"name":"z_1_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 101000000)\n\tprintln(res)\n}\n\n// Error:\n// cannot send \"101000000ugnot\", limit \"100000000ugnot\" exceeded with \"\" already spent\n"},{"name":"z_2_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// print main balance before.\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal) // plus OrigSend equals 300.\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 55000000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal) // now 255.\n\n\t// simulate a Render().\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before:\n// Deposit(): returned!\n// main after: 55000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 55000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 45000000ugnot\n"},{"name":"z_3_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", 123}}\n\tbanker.SendCoins(banktestAddr, mainaddr, send)\n\n}\n\n// Error:\n// can only send coins from realm that created banker \"g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk\", not \"g1dv3435088tlrgggf745kaud0ptrkc9v42k8llz\"\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5MHejFEqrCd46CqYmyQqfO6etYhxbZVvpRC+sRGQatUMWPN6HbsLdhayF86cHVPTHuT2HK5vvKTjHUXl1Fv1Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"banktest","path":"gno.land/r/demo/banktest","files":[{"name":"README.md","body":"This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.go](/r/demo/banktest/banktest.go) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n \"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e Self explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n caller std.Address\n sent std.Coins\n returned std.Coins\n time time.Time\n}\n\nfunc (act *activity) String() string {\n return act.caller.String() + \" \" +\n act.sent.String() + \" sent, \" +\n act.returned.String() + \" returned, at \" +\n act.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract. Notice that the \"latest\" variable is defined \"globally\" within the context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package are encapsulated within this \"data realm\", where the data is mutated based on transactions that can potentially cross many realm and non-realm package boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n std.AssertOriginCall()\n caller := std.GetOrigCaller()\n send := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named \"Deposit\". `std.AssertOriginCall() asserts that this function was called by a gno transactional Message. The caller is the user who signed off on this transactional message. Send is the amount of deposit sent along with this message.\n\n```go\n // record activity\n act := \u0026activity{\n caller: caller,\n sent: std.GetOrigSend(),\n returned: send,\n time: time.Now(),\n }\n for i := len(latest) - 2; i \u003e= 0; i-- {\n latest[i+1] = latest[i] // shift by +1.\n }\n latest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n // return if any.\n if returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n banker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n pkgaddr := std.GetOrigPkgAddr()\n // TODO: use std.Coins constructors, this isn't generally safe.\n banker.SendCoins(pkgaddr, caller, send)\n return \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n // get realm coins.\n banker := std.GetBanker(std.BankerTypeReadonly)\n coins := banker.GetCoins(std.GetOrigPkgAddr())\n\n // render\n res := \"\"\n res += \"## recent activity\\n\"\n res += \"\\n\"\n for _, act := range latest {\n if act == nil {\n break\n }\n res += \" * \" + act.String() + \"\\n\"\n }\n res += \"\\n\"\n res += \"## total deposits\\n\"\n res += coins.String()\n return res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:gnolang/4).\n"},{"name":"banktest.gno","body":"package banktest\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime time.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tact.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: time.Now(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n\t// return if any.\n\tif returnAmount \u003e 0 {\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n\t} else {\n\t\treturn \"thank you!\"\n\t}\n}\n\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n"},{"name":"z_0_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\n// SEND: 100000000ugnot\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\t// set up main address and banktest addr.\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\n\t// get and print balance of mainaddr.\n\t// with the SEND, + 200 gnot given by the TestContext, main should have 300gnot.\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\t// simulate a Deposit call. use Send + OrigSend to simulate -send.\n\tbanker.SendCoins(mainaddr, banktestAddr, std.Coins{{\"ugnot\", 100_000_000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100_000_000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 50_000_000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n\n\t// simulate a Render(). banker should have given back all coins.\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before: 100000000ugnot\n// Deposit(): returned!\n// main after: 50000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 50000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 50000000ugnot\n"},{"name":"z_1_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 101000000)\n\tprintln(res)\n}\n\n// Error:\n// cannot send \"101000000ugnot\", limit \"100000000ugnot\" exceeded with \"\" already spent\n"},{"name":"z_2_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// print main balance before.\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal) // plus OrigSend equals 300.\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 55000000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal) // now 255.\n\n\t// simulate a Render().\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before:\n// Deposit(): returned!\n// main after: 55000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 55000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 45000000ugnot\n"},{"name":"z_3_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", 123}}\n\tbanker.SendCoins(banktestAddr, mainaddr, send)\n\n}\n\n// Error:\n// can only send coins from realm that created banker \"g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk\", not \"g1dv3435088tlrgggf745kaud0ptrkc9v42k8llz\"\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5MHejFEqrCd46CqYmyQqfO6etYhxbZVvpRC+sRGQatUMWPN6HbsLdhayF86cHVPTHuT2HK5vvKTjHUXl1Fv1Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"banktest","path":"gno.land/r/demo/banktest","files":[{"name":"README.md","body":"This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.go](/r/demo/banktest/banktest.go) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n \"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e Self explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n caller std.Address\n sent std.Coins\n returned std.Coins\n time time.Time\n}\n\nfunc (act *activity) String() string {\n return act.caller.String() + \" \" +\n act.sent.String() + \" sent, \" +\n act.returned.String() + \" returned, at \" +\n act.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract. Notice that the \"latest\" variable is defined \"globally\" within the context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package are encapsulated within this \"data realm\", where the data is mutated based on transactions that can potentially cross many realm and non-realm package boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n std.AssertOriginCall()\n caller := std.GetOrigCaller()\n send := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named \"Deposit\". `std.AssertOriginCall() asserts that this function was called by a gno transactional Message. The caller is the user who signed off on this transactional message. Send is the amount of deposit sent along with this message.\n\n```go\n // record activity\n act := \u0026activity{\n caller: caller,\n sent: std.GetOrigSend(),\n returned: send,\n time: time.Now(),\n }\n for i := len(latest) - 2; i \u003e= 0; i-- {\n latest[i+1] = latest[i] // shift by +1.\n }\n latest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n // return if any.\n if returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n banker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n pkgaddr := std.GetOrigPkgAddr()\n // TODO: use std.Coins constructors, this isn't generally safe.\n banker.SendCoins(pkgaddr, caller, send)\n return \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n // get realm coins.\n banker := std.GetBanker(std.BankerTypeReadonly)\n coins := banker.GetCoins(std.GetOrigPkgAddr())\n\n // render\n res := \"\"\n res += \"## recent activity\\n\"\n res += \"\\n\"\n for _, act := range latest {\n if act == nil {\n break\n }\n res += \" * \" + act.String() + \"\\n\"\n }\n res += \"\\n\"\n res += \"## total deposits\\n\"\n res += coins.String()\n return res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:gnolang/4).\n"},{"name":"banktest.gno","body":"package banktest\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime time.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tact.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: time.Now(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n\t// return if any.\n\tif returnAmount \u003e 0 {\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n\t} else {\n\t\treturn \"thank you!\"\n\t}\n}\n\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n"},{"name":"z_0_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\n// SEND: 100000000ugnot\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\t// set up main address and banktest addr.\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\n\t// get and print balance of mainaddr.\n\t// with the SEND, + 200 gnot given by the TestContext, main should have 300gnot.\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\t// simulate a Deposit call. use Send + OrigSend to simulate -send.\n\tbanker.SendCoins(mainaddr, banktestAddr, std.Coins{{\"ugnot\", 100_000_000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100_000_000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 50_000_000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n\n\t// simulate a Render(). banker should have given back all coins.\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before: 300000000ugnot\n// Deposit(): returned!\n// main after: 250000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 50000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 50000000ugnot\n"},{"name":"z_1_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 101000000)\n\tprintln(res)\n}\n\n// Error:\n// cannot send \"101000000ugnot\", limit \"100000000ugnot\" exceeded with \"\" already spent\n"},{"name":"z_2_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// print main balance before.\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal) // plus OrigSend equals 300.\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 55000000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal) // now 255.\n\n\t// simulate a Render().\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before: 200000000ugnot\n// Deposit(): returned!\n// main after: 255000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 55000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 45000000ugnot\n"},{"name":"z_3_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", 123}}\n\tbanker.SendCoins(banktestAddr, mainaddr, send)\n\n}\n\n// Error:\n// can only send coins from realm that created banker \"g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk\", not \"g1dv3435088tlrgggf745kaud0ptrkc9v42k8llz\"\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WFpWgf4fK7uKdD3lZLjq9ZsCmgpwV+eBgvKWEicgW8Jfp05A8ggZUUhKEbD5rvLMRiLLNJiD/vxj17ixtf79Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bar20","path":"gno.land/r/demo/bar20","files":[{"name":"bar20.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tToken, adm = grc20.NewToken(\"Bar\", \"BAR\", 4)\n\tUserTeller = Token.CallerTeller()\n)\n\nfunc init() {\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := adm.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"},{"name":"bar20_test.gno","body":"package bar20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPackage(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // XXX: should not need this\n\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(0))\n\turequire.Equal(t, Faucet(), \"OK\")\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(1_000_000))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iOCOdNN/XfOGubfmSPvdJga5IPECCzuvgaEhlmev07Nem/QSz7n4JfaanB1aSPXBDuFKJ+Yx7Ewvme8oxPDWCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bar20","path":"gno.land/r/demo/bar20","files":[{"name":"bar20.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tToken, adm = grc20.NewToken(\"Bar\", \"BAR\", 4)\n\tUserTeller = Token.CallerTeller()\n)\n\nfunc init() {\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := adm.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"},{"name":"bar20_test.gno","body":"package bar20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPackage(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // XXX: should not need this\n\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(0))\n\turequire.Equal(t, Faucet(), \"OK\")\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(1_000_000))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iOCOdNN/XfOGubfmSPvdJga5IPECCzuvgaEhlmev07Nem/QSz7n4JfaanB1aSPXBDuFKJ+Yx7Ewvme8oxPDWCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bar20","path":"gno.land/r/demo/bar20","files":[{"name":"bar20.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tToken, adm = grc20.NewToken(\"Bar\", \"BAR\", 4)\n\tUserTeller = Token.CallerTeller()\n)\n\nfunc init() {\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := adm.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"},{"name":"bar20_test.gno","body":"package bar20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPackage(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // XXX: should not need this\n\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(0))\n\turequire.Equal(t, Faucet(), \"OK\")\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(1_000_000))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iOCOdNN/XfOGubfmSPvdJga5IPECCzuvgaEhlmev07Nem/QSz7n4JfaanB1aSPXBDuFKJ+Yx7Ewvme8oxPDWCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bar20","path":"gno.land/r/demo/bar20","files":[{"name":"bar20.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/grc20reg\"\n)\n\nvar (\n\tToken, adm = grc20.NewToken(\"Bar\", \"BAR\", 4)\n\tUserTeller = Token.CallerTeller()\n)\n\nfunc init() {\n\tgetter := func() *grc20.Token { return Token }\n\tgrc20reg.Register(getter, \"\")\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := adm.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"},{"name":"bar20_test.gno","body":"package bar20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPackage(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // XXX: should not need this\n\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(0))\n\turequire.Equal(t, Faucet(), \"OK\")\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(1_000_000))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WoGjMUL9QUsLmJZgHebbZsLCNMEyTNSMAe7pEoBkR+qzcHAHdF6O9RKDiq+JZo87QBPB6piqCNUFXC9ql96cDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bf","path":"gno.land/p/demo/bf","files":[{"name":"bf.gno","body":"package bf\n\nimport (\n\t\"strings\"\n)\n\nconst maxlen = 30000\n\nfunc Execute(code string) string {\n\tvar (\n\t\tmemory = make([]byte, maxlen) // memory tape\n\t\tpointer = 0 // initial memory pointer\n\t\tbuf strings.Builder\n\t)\n\n\t// Loop through each character in the code\n\tfor i := 0; i \u003c len(code); i++ {\n\t\tswitch code[i] {\n\t\tcase '\u003e':\n\t\t\t// Increment memory pointer\n\t\t\tpointer++\n\t\t\tif pointer \u003e= maxlen {\n\t\t\t\tpointer = 0\n\t\t\t}\n\t\tcase '\u003c':\n\t\t\t// Decrement memory pointer\n\t\t\tpointer--\n\t\t\tif pointer \u003c 0 {\n\t\t\t\tpointer = maxlen - 1\n\t\t\t}\n\t\tcase '+':\n\t\t\t// Increment the byte at the memory pointer\n\t\t\tmemory[pointer]++\n\t\tcase '-':\n\t\t\t// Decrement the byte at the memory pointer\n\t\t\tmemory[pointer]--\n\t\tcase '.':\n\t\t\t// Output the byte at the memory pointer\n\t\t\tbuf.WriteByte(memory[pointer])\n\t\tcase ',':\n\t\t\t// Input a byte and store it in the memory\n\t\t\tpanic(\"unsupported\")\n\t\t\t// fmt.Scan(\u0026memory[pointer])\n\t\tcase '[':\n\t\t\t// Jump forward past the matching ']' if the byte at the memory pointer is zero\n\t\t\tif memory[pointer] == 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti++\n\t\t\t\t\tif code[i] == '[' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == ']' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase ']':\n\t\t\t// Jump backward to the matching '[' if the byte at the memory pointer is nonzero\n\t\t\tif memory[pointer] != 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti--\n\t\t\t\t\tif code[i] == ']' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == '[' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti-- // Move back one more to compensate for the upcoming increment in the loop\n\t\t\t}\n\t\t}\n\t}\n\treturn buf.String()\n}\n"},{"name":"bf_test.gno","body":"package bf\n\nimport \"testing\"\n\nfunc TestExecuteBrainfuck(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tcode string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"hello\",\n\t\t\tcode: \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\",\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"increment\",\n\t\t\tcode: \"+++++ +++++ [ \u003e +++++ ++ \u003c - ] \u003e +++++ .\",\n\t\t\texpected: \"K\",\n\t\t},\n\t\t// Add more test cases as needed\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tresult := Execute(tc.code)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected output: %s, but got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"doc.gno","body":"// Package bf implements a minimalist Brainfuck virtual machine in Gno.\n//\n// Brainfuck is an esoteric programming language known for its simplicity and minimalistic design.\n// It operates on an array of memory cells, with a memory pointer that can move left or right.\n// The language consists of eight commands: \u003e \u003c + - . , [ ].\n//\n// Usage:\n// To execute Brainfuck code, use the Execute function and provide the code as a string.\n//\n//\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n//\toutput := bf.Execute(code)\n//\n// Note:\n// This implementation is a minimalist version and may not handle all edge cases or advanced features of the Brainfuck language.\n//\n// Reference:\n// For more information on Brainfuck, refer to the Wikipedia page: https://en.wikipedia.org/wiki/Brainfuck\npackage bf // import \"gno.land/p/demo/bf\"\n"},{"name":"run.gno","body":"package bf\n\n// for `gno run`\nfunc main() {\n\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n\t// TODO: code = os.Args...\n\tExecute(code)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qB2otoKuDPDhLHyveYcOGd48AHzJXRDOitfqYhe6g9XH9jOta1Y+UxtemS5HhtSGaoLdIR2/sbirAL3zY1GQDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bf","path":"gno.land/p/demo/bf","files":[{"name":"bf.gno","body":"package bf\n\nimport (\n\t\"strings\"\n)\n\nconst maxlen = 30000\n\nfunc Execute(code string) string {\n\tvar (\n\t\tmemory = make([]byte, maxlen) // memory tape\n\t\tpointer = 0 // initial memory pointer\n\t\tbuf strings.Builder\n\t)\n\n\t// Loop through each character in the code\n\tfor i := 0; i \u003c len(code); i++ {\n\t\tswitch code[i] {\n\t\tcase '\u003e':\n\t\t\t// Increment memory pointer\n\t\t\tpointer++\n\t\t\tif pointer \u003e= maxlen {\n\t\t\t\tpointer = 0\n\t\t\t}\n\t\tcase '\u003c':\n\t\t\t// Decrement memory pointer\n\t\t\tpointer--\n\t\t\tif pointer \u003c 0 {\n\t\t\t\tpointer = maxlen - 1\n\t\t\t}\n\t\tcase '+':\n\t\t\t// Increment the byte at the memory pointer\n\t\t\tmemory[pointer]++\n\t\tcase '-':\n\t\t\t// Decrement the byte at the memory pointer\n\t\t\tmemory[pointer]--\n\t\tcase '.':\n\t\t\t// Output the byte at the memory pointer\n\t\t\tbuf.WriteByte(memory[pointer])\n\t\tcase ',':\n\t\t\t// Input a byte and store it in the memory\n\t\t\tpanic(\"unsupported\")\n\t\t\t// fmt.Scan(\u0026memory[pointer])\n\t\tcase '[':\n\t\t\t// Jump forward past the matching ']' if the byte at the memory pointer is zero\n\t\t\tif memory[pointer] == 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti++\n\t\t\t\t\tif code[i] == '[' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == ']' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase ']':\n\t\t\t// Jump backward to the matching '[' if the byte at the memory pointer is nonzero\n\t\t\tif memory[pointer] != 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti--\n\t\t\t\t\tif code[i] == ']' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == '[' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti-- // Move back one more to compensate for the upcoming increment in the loop\n\t\t\t}\n\t\t}\n\t}\n\treturn buf.String()\n}\n"},{"name":"bf_test.gno","body":"package bf\n\nimport \"testing\"\n\nfunc TestExecuteBrainfuck(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tcode string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"hello\",\n\t\t\tcode: \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\",\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"increment\",\n\t\t\tcode: \"+++++ +++++ [ \u003e +++++ ++ \u003c - ] \u003e +++++ .\",\n\t\t\texpected: \"K\",\n\t\t},\n\t\t// Add more test cases as needed\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tresult := Execute(tc.code)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected output: %s, but got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"doc.gno","body":"// Package bf implements a minimalist Brainfuck virtual machine in Gno.\n//\n// Brainfuck is an esoteric programming language known for its simplicity and minimalistic design.\n// It operates on an array of memory cells, with a memory pointer that can move left or right.\n// The language consists of eight commands: \u003e \u003c + - . , [ ].\n//\n// Usage:\n// To execute Brainfuck code, use the Execute function and provide the code as a string.\n//\n//\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n//\toutput := bf.Execute(code)\n//\n// Note:\n// This implementation is a minimalist version and may not handle all edge cases or advanced features of the Brainfuck language.\n//\n// Reference:\n// For more information on Brainfuck, refer to the Wikipedia page: https://en.wikipedia.org/wiki/Brainfuck\npackage bf // import \"gno.land/p/demo/bf\"\n"},{"name":"run.gno","body":"package bf\n\n// for `gno run`\nfunc main() {\n\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n\t// TODO: code = os.Args...\n\tExecute(code)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qB2otoKuDPDhLHyveYcOGd48AHzJXRDOitfqYhe6g9XH9jOta1Y+UxtemS5HhtSGaoLdIR2/sbirAL3zY1GQDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bf","path":"gno.land/p/demo/bf","files":[{"name":"bf.gno","body":"package bf\n\nimport (\n\t\"strings\"\n)\n\nconst maxlen = 30000\n\nfunc Execute(code string) string {\n\tvar (\n\t\tmemory = make([]byte, maxlen) // memory tape\n\t\tpointer = 0 // initial memory pointer\n\t\tbuf strings.Builder\n\t)\n\n\t// Loop through each character in the code\n\tfor i := 0; i \u003c len(code); i++ {\n\t\tswitch code[i] {\n\t\tcase '\u003e':\n\t\t\t// Increment memory pointer\n\t\t\tpointer++\n\t\t\tif pointer \u003e= maxlen {\n\t\t\t\tpointer = 0\n\t\t\t}\n\t\tcase '\u003c':\n\t\t\t// Decrement memory pointer\n\t\t\tpointer--\n\t\t\tif pointer \u003c 0 {\n\t\t\t\tpointer = maxlen - 1\n\t\t\t}\n\t\tcase '+':\n\t\t\t// Increment the byte at the memory pointer\n\t\t\tmemory[pointer]++\n\t\tcase '-':\n\t\t\t// Decrement the byte at the memory pointer\n\t\t\tmemory[pointer]--\n\t\tcase '.':\n\t\t\t// Output the byte at the memory pointer\n\t\t\tbuf.WriteByte(memory[pointer])\n\t\tcase ',':\n\t\t\t// Input a byte and store it in the memory\n\t\t\tpanic(\"unsupported\")\n\t\t\t// fmt.Scan(\u0026memory[pointer])\n\t\tcase '[':\n\t\t\t// Jump forward past the matching ']' if the byte at the memory pointer is zero\n\t\t\tif memory[pointer] == 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti++\n\t\t\t\t\tif code[i] == '[' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == ']' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase ']':\n\t\t\t// Jump backward to the matching '[' if the byte at the memory pointer is nonzero\n\t\t\tif memory[pointer] != 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti--\n\t\t\t\t\tif code[i] == ']' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == '[' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti-- // Move back one more to compensate for the upcoming increment in the loop\n\t\t\t}\n\t\t}\n\t}\n\treturn buf.String()\n}\n"},{"name":"bf_test.gno","body":"package bf\n\nimport \"testing\"\n\nfunc TestExecuteBrainfuck(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tcode string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"hello\",\n\t\t\tcode: \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\",\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"increment\",\n\t\t\tcode: \"+++++ +++++ [ \u003e +++++ ++ \u003c - ] \u003e +++++ .\",\n\t\t\texpected: \"K\",\n\t\t},\n\t\t// Add more test cases as needed\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tresult := Execute(tc.code)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected output: %s, but got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"doc.gno","body":"// Package bf implements a minimalist Brainfuck virtual machine in Gno.\n//\n// Brainfuck is an esoteric programming language known for its simplicity and minimalistic design.\n// It operates on an array of memory cells, with a memory pointer that can move left or right.\n// The language consists of eight commands: \u003e \u003c + - . , [ ].\n//\n// Usage:\n// To execute Brainfuck code, use the Execute function and provide the code as a string.\n//\n//\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n//\toutput := bf.Execute(code)\n//\n// Note:\n// This implementation is a minimalist version and may not handle all edge cases or advanced features of the Brainfuck language.\n//\n// Reference:\n// For more information on Brainfuck, refer to the Wikipedia page: https://en.wikipedia.org/wiki/Brainfuck\npackage bf // import \"gno.land/p/demo/bf\"\n"},{"name":"run.gno","body":"package bf\n\n// for `gno run`\nfunc main() {\n\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n\t// TODO: code = os.Args...\n\tExecute(code)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qB2otoKuDPDhLHyveYcOGd48AHzJXRDOitfqYhe6g9XH9jOta1Y+UxtemS5HhtSGaoLdIR2/sbirAL3zY1GQDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blackcow_nft","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","files":[{"name":"basic_nft.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"blackcow_nft.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"BlackCow\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"errors.gno","body":"package blackcow_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"type.gno","body":"package blackcow_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3OPU08bN5EFxU/wIG1iU/LZaD5EmYNacSoQ1lSZDf6FNakI/RkkUjbBkTgnueNT3zB2nWyOEn7dn/OSutqjqBQ=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818323"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blackcow_nft","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","files":[{"name":"basic_nft.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"blackcow_nft.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"BlackCow\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"errors.gno","body":"package popo_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"type.gno","body":"package popo_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+qKKJ+WKpcHU67JQh2XDSuIRZGzhpm2kCFg3FR3qw2VKsI3+o3r1IfJop99BgvskOJcfC4wN+/QxtJcQX/vbCg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818263"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blackcow_nft","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","files":[{"name":"basic_nft.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"blackcow_nft.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"BlackCow\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"errors.gno","body":"package popo_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"type.gno","body":"package popo_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+qKKJ+WKpcHU67JQh2XDSuIRZGzhpm2kCFg3FR3qw2VKsI3+o3r1IfJop99BgvskOJcfC4wN+/QxtJcQX/vbCg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818298"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blackcow_nft","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","files":[{"name":"basic_nft.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid grc721.TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid grc721.TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) (bool, error) {\n\t// check for invalid grc721.TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid grc721.TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid grc721.TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid grc721.TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid grc721.TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid grc721.TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", owner.String(),\n\t\t\"to\", zeroAddress.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", owner.String(),\n\t\t\"to\", operator.String(),\n\t\t\"approved\", ufmt.Sprintf(\"%t\", approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid grc721.TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", zeroAddress.String(),\n\t\t\"to\", to.String(),\n\t\t\"tid\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid grc721.TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid grc721.TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId grc721.TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid grc721.TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"errors.gno","body":"package popo_nft\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid grc721.TokenID, metadata grc721.Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid grc721.TokenID) (grc721.Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn grc721.Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(grc721.Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid grc721.TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\ts.basicNFT.Mint(to, tid)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"popo_nft.gno","body":"package blackcow_nft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z\"\n\tblackcow = NewNFTWithMetadata(\"AmazingPerfectBlackCow\", \"BCOW\")\n)\n\nfunc init() {\n}\n\nfunc mintNFT(owner std.Address, n uint64) {\n\tcount := blackcow.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\terr := mint(owner, tid)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := blackcow.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc Name() string {\n\treturn blackcow.Name()\n}\n\nfunc Symbol() string {\n\treturn blackcow.Symbol()\n}\n\nfunc TokenURI(tid grc721.TokenID) string {\n\ttokenURI, err := blackcow.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn tokenURI\n}\n\nfunc TokenMetadata(tid grc721.TokenID) string {\n\tmetadata, err := blackcow.TokenMetadata(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmetadataNode := json.ObjectNode(\"\", nil)\n\n\tmetadataNode.AppendObject(\"image\", json.StringNode(\"image\", metadata.Image))\n\tmetadataNode.AppendObject(\"imageData\", json.StringNode(\"imageData\", metadata.ImageData))\n\tmetadataNode.AppendObject(\"externalUrl\", json.StringNode(\"externalUrl\", metadata.ExternalURL))\n\tmetadataNode.AppendObject(\"description\", json.StringNode(\"description\", metadata.Description))\n\tmetadataNode.AppendObject(\"name\", json.StringNode(\"name\", metadata.Name))\n\tmetadataNode.AppendObject(\"backgroundColor\", json.StringNode(\"backgroundColor\", metadata.BackgroundColor))\n\tmetadataNode.AppendObject(\"animationUrl\", json.StringNode(\"animationUrl\", metadata.AnimationURL))\n\tmetadataNode.AppendObject(\"youtubeUrl\", json.StringNode(\"youtubeUrl\", metadata.YoutubeURL))\n\n\tattributesNode := json.ArrayNode(\"attributes\", nil)\n\n\tfor _, trait := range metadata.Attributes {\n\t\ttraitNode := json.ObjectNode(\"\", nil)\n\t\ttraitNode.AppendObject(\"displayType\", json.StringNode(\"displayType\", trait.DisplayType))\n\t\ttraitNode.AppendObject(\"traitType\", json.StringNode(\"traitType\", trait.TraitType))\n\t\ttraitNode.AppendObject(\"value\", json.StringNode(\"value\", trait.Value))\n\n\t\tattributesNode.AppendArray(traitNode)\n\t}\n\n\tmetadataNode.AppendObject(\"attributes\", attributesNode)\n\n\tmetadataStr, err := json.Marshal(metadataNode)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(metadataStr)\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := blackcow.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn blackcow.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := blackcow.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := blackcow.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SafeTransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := blackcow.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetTokenURI(tid grc721.TokenID, tURI grc721.TokenURI) bool {\n\tresult, err := blackcow.SetTokenURI(tid, tURI)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := blackcow.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc mint(to std.Address, tid grc721.TokenID) error {\n\terr := blackcow.Mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tattributes := []grc721.Trait{}\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Alien\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Race\",\n\t\tValue: \"Police Uniform\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Face\",\n\t\tValue: \"Handsome\",\n\t})\n\tattributes = append(attributes, grc721.Trait{\n\t\tDisplayType: \"string\",\n\t\tTraitType: \"Background\",\n\t\tValue: \"Very extremely red\",\n\t})\n\n\tblackcow.SetTokenMetadata(tid, grc721.Metadata{\n\t\tName: \"Popo\",\n\t\tDescription: \"A GnoPunk is a 24x24 pixel, 8-bit-style unique avatar that comes in the form of an NFT. Their creation began as an experiment, conducted by software developers Matt Hall and John Watkinson in 2017.\",\n\t\tAttributes: attributes,\n\t\tBackgroundColor: \"#FFFF00\",\n\t})\n\n\tblackcow.SetTokenURI(tid, \"https://i.namu.wiki/i/yRO1u5KjySi1CtJmt6TQMIqcbXiejx7Tr-OTMv419lYLiCZYBClOxwBY2n0nz06W-9WFg9-tV2DWWPyWZh-PlOb_c1jF7P69_EAOSLuy8cUq3BOVd4o3FniIdckuWGVQFX2s-_m_XBTAMDepZ240eg.webp\")\n\n\treturn nil\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn blackcow.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"type.gno","body":"package popo_nft\n\nconst (\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"utils.gno","body":"package popo_nft\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+eE6KJ6voeJxUc6sKzVxUhRa15VhES+xTdsl4pjyDVz+9Ck9OSQaBn71wfnTL/MmOj3gr3t1dspqHni/DyuLAA=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1730818207"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blog","path":"gno.land/p/demo/blog","files":[{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Blog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPosts avl.Tree // slug -\u003e *Post\n\tPostsPublished avl.Tree // published-date -\u003e *Post\n\tPostsAlphabetical avl.Tree // title -\u003e *Post\n\tNoBreadcrumb bool\n}\n\nfunc (b Blog) RenderLastPostsWidget(limit int) string {\n\tif b.PostsPublished.Size() == 0 {\n\t\treturn \"No posts.\"\n\t}\n\n\toutput := \"\"\n\ti := 0\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*Post)\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", p.Title, p.URL())\n\t\ti++\n\t\treturn i \u003e= limit\n\t})\n\treturn output\n}\n\nfunc (b Blog) RenderHome(res *mux.ResponseWriter, req *mux.Request) {\n\tif !b.NoBreadcrumb {\n\t\tres.Write(breadcrumb([]string{b.Title}))\n\t}\n\n\tif b.Posts.Size() == 0 {\n\t\tres.Write(\"No posts.\")\n\t\treturn\n\t}\n\n\tres.Write(\"\u003cdiv class='columns-3'\u003e\")\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tres.Write(post.RenderListItem())\n\t\treturn false\n\t})\n\tres.Write(\"\u003c/div\u003e\")\n\n\t// FIXME: tag list/cloud.\n}\n\nfunc (b Blog) RenderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\tp := post.(*Post)\n\n\tres.Write(\"\u003cmain class='gno-tmpl-page'\u003e\" + \"\\n\\n\")\n\n\tres.Write(\"# \" + p.Title + \"\\n\\n\")\n\tres.Write(p.Body + \"\\n\\n\")\n\tres.Write(\"---\\n\\n\")\n\n\tres.Write(p.RenderTagList() + \"\\n\\n\")\n\tres.Write(p.RenderAuthorList() + \"\\n\\n\")\n\tres.Write(p.RenderPublishData() + \"\\n\\n\")\n\n\tres.Write(\"---\\n\")\n\tres.Write(\"\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\\n\\n\")\n\n\t// comments\n\tp.Comments.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tcomment := value.(*Comment)\n\t\tres.Write(comment.RenderListItem())\n\t\treturn false\n\t})\n\n\tres.Write(\"\u003c/details\u003e\\n\")\n\tres.Write(\"\u003c/main\u003e\")\n}\n\nfunc (b Blog) RenderTag(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tif slug == \"\" {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\n\tif !b.NoBreadcrumb {\n\t\tbreadStr := breadcrumb([]string{\n\t\t\tufmt.Sprintf(\"[%s](%s)\", b.Title, b.Prefix),\n\t\t\t\"t\",\n\t\t\tslug,\n\t\t})\n\t\tres.Write(breadStr)\n\t}\n\n\tnb := 0\n\tb.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tif !post.HasTag(slug) {\n\t\t\treturn false\n\t\t}\n\t\tres.Write(post.RenderListItem())\n\t\tnb++\n\t\treturn false\n\t})\n\tif nb == 0 {\n\t\tres.Write(\"No posts.\")\n\t}\n}\n\nfunc (b Blog) Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.HandleFunc(\"\", b.RenderHome)\n\trouter.HandleFunc(\"p/{slug}\", b.RenderPost)\n\trouter.HandleFunc(\"t/{slug}\", b.RenderTag)\n\treturn router.Render(path)\n}\n\nfunc (b *Blog) NewPost(publisher std.Address, slug, title, body, pubDate string, authors, tags []string) error {\n\tif _, found := b.Posts.Get(slug); found {\n\t\treturn ErrPostSlugExists\n\t}\n\n\tvar parsedTime time.Time\n\tvar err error\n\tif pubDate != \"\" {\n\t\tparsedTime, err = time.Parse(time.RFC3339, pubDate)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// If no publication date was passed in by caller, take current block time\n\t\tparsedTime = time.Now()\n\t}\n\n\tpost := \u0026Post{\n\t\tPublisher: publisher,\n\t\tAuthors: authors,\n\t\tSlug: slug,\n\t\tTitle: title,\n\t\tBody: body,\n\t\tTags: tags,\n\t\tCreatedAt: parsedTime,\n\t}\n\n\treturn b.prepareAndSetPost(post, false)\n}\n\nfunc (b *Blog) prepareAndSetPost(post *Post, edit bool) error {\n\tpost.Title = strings.TrimSpace(post.Title)\n\tpost.Body = strings.TrimSpace(post.Body)\n\n\tif post.Title == \"\" {\n\t\treturn ErrPostTitleMissing\n\t}\n\tif post.Body == \"\" {\n\t\treturn ErrPostBodyMissing\n\t}\n\tif post.Slug == \"\" {\n\t\treturn ErrPostSlugMissing\n\t}\n\n\tpost.Blog = b\n\tpost.UpdatedAt = time.Now()\n\n\ttrimmedTitleKey := getTitleKey(post.Title)\n\tpubDateKey := getPublishedKey(post.CreatedAt)\n\n\tif !edit {\n\t\t// Cannot have two posts with same title key\n\t\tif _, found := b.PostsAlphabetical.Get(trimmedTitleKey); found {\n\t\t\treturn ErrPostTitleExists\n\t\t}\n\t\t// Cannot have two posts with *exact* same timestamp\n\t\tif _, found := b.PostsPublished.Get(pubDateKey); found {\n\t\t\treturn ErrPostPubDateExists\n\t\t}\n\t}\n\n\t// Store post under keys\n\tb.PostsAlphabetical.Set(trimmedTitleKey, post)\n\tb.PostsPublished.Set(pubDateKey, post)\n\tb.Posts.Set(post.Slug, post)\n\n\treturn nil\n}\n\nfunc (b *Blog) RemovePost(slug string) {\n\tp, exists := b.Posts.Get(slug)\n\tif !exists {\n\t\tpanic(\"post with specified slug doesn't exist\")\n\t}\n\n\tpost := p.(*Post)\n\n\ttitleKey := getTitleKey(post.Title)\n\tpublishedKey := getPublishedKey(post.CreatedAt)\n\n\t_, _ = b.Posts.Remove(slug)\n\t_, _ = b.PostsAlphabetical.Remove(titleKey)\n\t_, _ = b.PostsPublished.Remove(publishedKey)\n}\n\nfunc (b *Blog) GetPost(slug string) *Post {\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\treturn nil\n\t}\n\treturn post.(*Post)\n}\n\ntype Post struct {\n\tBlog *Blog\n\tSlug string // FIXME: save space?\n\tTitle string\n\tBody string\n\tCreatedAt time.Time\n\tUpdatedAt time.Time\n\tComments avl.Tree\n\tAuthors []string\n\tPublisher std.Address\n\tTags []string\n\tCommentIndex int\n}\n\nfunc (p *Post) Update(title, body, publicationDate string, authors, tags []string) error {\n\tp.Title = title\n\tp.Body = body\n\tp.Tags = tags\n\tp.Authors = authors\n\n\tparsedTime, err := time.Parse(time.RFC3339, publicationDate)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tp.CreatedAt = parsedTime\n\treturn p.Blog.prepareAndSetPost(p, true)\n}\n\nfunc (p *Post) AddComment(author std.Address, comment string) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tp.CommentIndex++\n\tcommentKey := strconv.Itoa(p.CommentIndex)\n\tcomment = strings.TrimSpace(comment)\n\tp.Comments.Set(commentKey, \u0026Comment{\n\t\tPost: p,\n\t\tCreatedAt: time.Now(),\n\t\tAuthor: author,\n\t\tComment: comment,\n\t})\n\n\treturn nil\n}\n\nfunc (p *Post) DeleteComment(index int) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tcommentKey := strconv.Itoa(index)\n\tp.Comments.Remove(commentKey)\n\treturn nil\n}\n\nfunc (p *Post) HasTag(tag string) bool {\n\tif p == nil {\n\t\treturn false\n\t}\n\tfor _, t := range p.Tags {\n\t\tif t == tag {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (p *Post) RenderListItem() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\toutput := \"\u003cdiv\u003e\\n\\n\"\n\toutput += ufmt.Sprintf(\"### [%s](%s)\\n\", p.Title, p.URL())\n\t// output += ufmt.Sprintf(\"**[Learn More](%s)**\\n\\n\", p.URL())\n\n\toutput += \" \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\t// output += p.Summary() + \"\\n\\n\"\n\t// output += p.RenderTagList() + \"\\n\\n\"\n\toutput += \"\\n\"\n\toutput += \"\u003c/div\u003e\"\n\treturn output\n}\n\n// Render post tags\nfunc (p *Post) RenderTagList() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\tif len(p.Tags) == 0 {\n\t\treturn \"\"\n\t}\n\n\toutput := \"Tags: \"\n\tfor idx, tag := range p.Tags {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" \"\n\t\t}\n\t\ttagURL := p.Blog.Prefix + \"t/\" + tag\n\t\toutput += ufmt.Sprintf(\"[#%s](%s)\", tag, tagURL)\n\n\t}\n\treturn output\n}\n\n// Render authors if there are any\nfunc (p *Post) RenderAuthorList() string {\n\tout := \"Written\"\n\tif len(p.Authors) != 0 {\n\t\tout += \" by \"\n\n\t\tfor idx, author := range p.Authors {\n\t\t\tout += author\n\t\t\tif idx \u003c len(p.Authors)-1 {\n\t\t\t\tout += \", \"\n\t\t\t}\n\t\t}\n\t}\n\tout += \" on \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\n\treturn out\n}\n\nfunc (p *Post) RenderPublishData() string {\n\tout := \"Published \"\n\tif p.Publisher != \"\" {\n\t\tout += \"by \" + p.Publisher.String() + \" \"\n\t}\n\tout += \"to \" + p.Blog.Title\n\n\treturn out\n}\n\nfunc (p *Post) URL() string {\n\tif p == nil {\n\t\treturn p.Blog.Prefix + \"404\"\n\t}\n\treturn p.Blog.Prefix + \"p/\" + p.Slug\n}\n\nfunc (p *Post) Summary() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\n\t// FIXME: better summary.\n\tlines := strings.Split(p.Body, \"\\n\")\n\tif len(lines) \u003c= 3 {\n\t\treturn p.Body\n\t}\n\treturn strings.Join(lines[0:3], \"\\n\") + \"...\"\n}\n\ntype Comment struct {\n\tPost *Post\n\tCreatedAt time.Time\n\tAuthor std.Address\n\tComment string\n}\n\nfunc (c Comment) RenderListItem() string {\n\toutput := \"\u003ch5\u003e\"\n\toutput += c.Comment + \"\\n\\n\"\n\toutput += \"\u003c/h5\u003e\"\n\n\toutput += \"\u003ch6\u003e\"\n\toutput += ufmt.Sprintf(\"by %s on %s\", c.Author, c.CreatedAt.Format(time.RFC822))\n\toutput += \"\u003c/h6\u003e\\n\\n\"\n\n\toutput += \"---\\n\\n\"\n\n\treturn output\n}\n"},{"name":"blog_test.gno","body":"package blog\n\n// TODO: add generic tests here.\n// right now, you can checkout r/gnoland/blog/*_test.gno.\n"},{"name":"errors.gno","body":"package blog\n\nimport \"errors\"\n\nvar (\n\tErrPostTitleMissing = errors.New(\"post title is missing\")\n\tErrPostSlugMissing = errors.New(\"post slug is missing\")\n\tErrPostBodyMissing = errors.New(\"post body is missing\")\n\tErrPostSlugExists = errors.New(\"post with specified slug already exists\")\n\tErrPostPubDateExists = errors.New(\"post with specified publication date exists\")\n\tErrPostTitleExists = errors.New(\"post with specified title already exists\")\n\tErrNoSuchPost = errors.New(\"no such post\")\n)\n"},{"name":"util.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\t\"time\"\n)\n\nfunc breadcrumb(parts []string) string {\n\treturn \"# \" + strings.Join(parts, \" / \") + \"\\n\\n\"\n}\n\nfunc getTitleKey(title string) string {\n\treturn strings.Replace(title, \" \", \"\", -1)\n}\n\nfunc getPublishedKey(t time.Time) string {\n\treturn t.Format(time.RFC3339)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CyEwzbcac+D9YI7BBmtkVF8zsrBpK2e7aQRDv09UOP4OW9BAm1Hf/oFQIY/2PfdVpEush5R6mYGsKgv+sK9vBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blog","path":"gno.land/p/demo/blog","files":[{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Blog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPosts avl.Tree // slug -\u003e *Post\n\tPostsPublished avl.Tree // published-date -\u003e *Post\n\tPostsAlphabetical avl.Tree // title -\u003e *Post\n\tNoBreadcrumb bool\n}\n\nfunc (b Blog) RenderLastPostsWidget(limit int) string {\n\tif b.PostsPublished.Size() == 0 {\n\t\treturn \"No posts.\"\n\t}\n\n\toutput := \"\"\n\ti := 0\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*Post)\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", p.Title, p.URL())\n\t\ti++\n\t\treturn i \u003e= limit\n\t})\n\treturn output\n}\n\nfunc (b Blog) RenderHome(res *mux.ResponseWriter, req *mux.Request) {\n\tif !b.NoBreadcrumb {\n\t\tres.Write(breadcrumb([]string{b.Title}))\n\t}\n\n\tif b.Posts.Size() == 0 {\n\t\tres.Write(\"No posts.\")\n\t\treturn\n\t}\n\n\tres.Write(\"\u003cdiv class='columns-3'\u003e\")\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tres.Write(post.RenderListItem())\n\t\treturn false\n\t})\n\tres.Write(\"\u003c/div\u003e\")\n\n\t// FIXME: tag list/cloud.\n}\n\nfunc (b Blog) RenderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\tp := post.(*Post)\n\n\tres.Write(\"\u003cmain class='gno-tmpl-page'\u003e\" + \"\\n\\n\")\n\n\tres.Write(\"# \" + p.Title + \"\\n\\n\")\n\tres.Write(p.Body + \"\\n\\n\")\n\tres.Write(\"---\\n\\n\")\n\n\tres.Write(p.RenderTagList() + \"\\n\\n\")\n\tres.Write(p.RenderAuthorList() + \"\\n\\n\")\n\tres.Write(p.RenderPublishData() + \"\\n\\n\")\n\n\tres.Write(\"---\\n\")\n\tres.Write(\"\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\\n\\n\")\n\n\t// comments\n\tp.Comments.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tcomment := value.(*Comment)\n\t\tres.Write(comment.RenderListItem())\n\t\treturn false\n\t})\n\n\tres.Write(\"\u003c/details\u003e\\n\")\n\tres.Write(\"\u003c/main\u003e\")\n}\n\nfunc (b Blog) RenderTag(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tif slug == \"\" {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\n\tif !b.NoBreadcrumb {\n\t\tbreadStr := breadcrumb([]string{\n\t\t\tufmt.Sprintf(\"[%s](%s)\", b.Title, b.Prefix),\n\t\t\t\"t\",\n\t\t\tslug,\n\t\t})\n\t\tres.Write(breadStr)\n\t}\n\n\tnb := 0\n\tb.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tif !post.HasTag(slug) {\n\t\t\treturn false\n\t\t}\n\t\tres.Write(post.RenderListItem())\n\t\tnb++\n\t\treturn false\n\t})\n\tif nb == 0 {\n\t\tres.Write(\"No posts.\")\n\t}\n}\n\nfunc (b Blog) Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.HandleFunc(\"\", b.RenderHome)\n\trouter.HandleFunc(\"p/{slug}\", b.RenderPost)\n\trouter.HandleFunc(\"t/{slug}\", b.RenderTag)\n\treturn router.Render(path)\n}\n\nfunc (b *Blog) NewPost(publisher std.Address, slug, title, body, pubDate string, authors, tags []string) error {\n\tif _, found := b.Posts.Get(slug); found {\n\t\treturn ErrPostSlugExists\n\t}\n\n\tvar parsedTime time.Time\n\tvar err error\n\tif pubDate != \"\" {\n\t\tparsedTime, err = time.Parse(time.RFC3339, pubDate)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// If no publication date was passed in by caller, take current block time\n\t\tparsedTime = time.Now()\n\t}\n\n\tpost := \u0026Post{\n\t\tPublisher: publisher,\n\t\tAuthors: authors,\n\t\tSlug: slug,\n\t\tTitle: title,\n\t\tBody: body,\n\t\tTags: tags,\n\t\tCreatedAt: parsedTime,\n\t}\n\n\treturn b.prepareAndSetPost(post, false)\n}\n\nfunc (b *Blog) prepareAndSetPost(post *Post, edit bool) error {\n\tpost.Title = strings.TrimSpace(post.Title)\n\tpost.Body = strings.TrimSpace(post.Body)\n\n\tif post.Title == \"\" {\n\t\treturn ErrPostTitleMissing\n\t}\n\tif post.Body == \"\" {\n\t\treturn ErrPostBodyMissing\n\t}\n\tif post.Slug == \"\" {\n\t\treturn ErrPostSlugMissing\n\t}\n\n\tpost.Blog = b\n\tpost.UpdatedAt = time.Now()\n\n\ttrimmedTitleKey := getTitleKey(post.Title)\n\tpubDateKey := getPublishedKey(post.CreatedAt)\n\n\tif !edit {\n\t\t// Cannot have two posts with same title key\n\t\tif _, found := b.PostsAlphabetical.Get(trimmedTitleKey); found {\n\t\t\treturn ErrPostTitleExists\n\t\t}\n\t\t// Cannot have two posts with *exact* same timestamp\n\t\tif _, found := b.PostsPublished.Get(pubDateKey); found {\n\t\t\treturn ErrPostPubDateExists\n\t\t}\n\t}\n\n\t// Store post under keys\n\tb.PostsAlphabetical.Set(trimmedTitleKey, post)\n\tb.PostsPublished.Set(pubDateKey, post)\n\tb.Posts.Set(post.Slug, post)\n\n\treturn nil\n}\n\nfunc (b *Blog) RemovePost(slug string) {\n\tp, exists := b.Posts.Get(slug)\n\tif !exists {\n\t\tpanic(\"post with specified slug doesn't exist\")\n\t}\n\n\tpost := p.(*Post)\n\n\ttitleKey := getTitleKey(post.Title)\n\tpublishedKey := getPublishedKey(post.CreatedAt)\n\n\t_, _ = b.Posts.Remove(slug)\n\t_, _ = b.PostsAlphabetical.Remove(titleKey)\n\t_, _ = b.PostsPublished.Remove(publishedKey)\n}\n\nfunc (b *Blog) GetPost(slug string) *Post {\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\treturn nil\n\t}\n\treturn post.(*Post)\n}\n\ntype Post struct {\n\tBlog *Blog\n\tSlug string // FIXME: save space?\n\tTitle string\n\tBody string\n\tCreatedAt time.Time\n\tUpdatedAt time.Time\n\tComments avl.Tree\n\tAuthors []string\n\tPublisher std.Address\n\tTags []string\n\tCommentIndex int\n}\n\nfunc (p *Post) Update(title, body, publicationDate string, authors, tags []string) error {\n\tp.Title = title\n\tp.Body = body\n\tp.Tags = tags\n\tp.Authors = authors\n\n\tparsedTime, err := time.Parse(time.RFC3339, publicationDate)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tp.CreatedAt = parsedTime\n\treturn p.Blog.prepareAndSetPost(p, true)\n}\n\nfunc (p *Post) AddComment(author std.Address, comment string) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tp.CommentIndex++\n\tcommentKey := strconv.Itoa(p.CommentIndex)\n\tcomment = strings.TrimSpace(comment)\n\tp.Comments.Set(commentKey, \u0026Comment{\n\t\tPost: p,\n\t\tCreatedAt: time.Now(),\n\t\tAuthor: author,\n\t\tComment: comment,\n\t})\n\n\treturn nil\n}\n\nfunc (p *Post) DeleteComment(index int) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tcommentKey := strconv.Itoa(index)\n\tp.Comments.Remove(commentKey)\n\treturn nil\n}\n\nfunc (p *Post) HasTag(tag string) bool {\n\tif p == nil {\n\t\treturn false\n\t}\n\tfor _, t := range p.Tags {\n\t\tif t == tag {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (p *Post) RenderListItem() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\toutput := \"\u003cdiv\u003e\\n\\n\"\n\toutput += ufmt.Sprintf(\"### [%s](%s)\\n\", p.Title, p.URL())\n\t// output += ufmt.Sprintf(\"**[Learn More](%s)**\\n\\n\", p.URL())\n\n\toutput += \" \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\t// output += p.Summary() + \"\\n\\n\"\n\t// output += p.RenderTagList() + \"\\n\\n\"\n\toutput += \"\\n\"\n\toutput += \"\u003c/div\u003e\"\n\treturn output\n}\n\n// Render post tags\nfunc (p *Post) RenderTagList() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\tif len(p.Tags) == 0 {\n\t\treturn \"\"\n\t}\n\n\toutput := \"Tags: \"\n\tfor idx, tag := range p.Tags {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" \"\n\t\t}\n\t\ttagURL := p.Blog.Prefix + \"t/\" + tag\n\t\toutput += ufmt.Sprintf(\"[#%s](%s)\", tag, tagURL)\n\n\t}\n\treturn output\n}\n\n// Render authors if there are any\nfunc (p *Post) RenderAuthorList() string {\n\tout := \"Written\"\n\tif len(p.Authors) != 0 {\n\t\tout += \" by \"\n\n\t\tfor idx, author := range p.Authors {\n\t\t\tout += author\n\t\t\tif idx \u003c len(p.Authors)-1 {\n\t\t\t\tout += \", \"\n\t\t\t}\n\t\t}\n\t}\n\tout += \" on \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\n\treturn out\n}\n\nfunc (p *Post) RenderPublishData() string {\n\tout := \"Published \"\n\tif p.Publisher != \"\" {\n\t\tout += \"by \" + p.Publisher.String() + \" \"\n\t}\n\tout += \"to \" + p.Blog.Title\n\n\treturn out\n}\n\nfunc (p *Post) URL() string {\n\tif p == nil {\n\t\treturn p.Blog.Prefix + \"404\"\n\t}\n\treturn p.Blog.Prefix + \"p/\" + p.Slug\n}\n\nfunc (p *Post) Summary() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\n\t// FIXME: better summary.\n\tlines := strings.Split(p.Body, \"\\n\")\n\tif len(lines) \u003c= 3 {\n\t\treturn p.Body\n\t}\n\treturn strings.Join(lines[0:3], \"\\n\") + \"...\"\n}\n\ntype Comment struct {\n\tPost *Post\n\tCreatedAt time.Time\n\tAuthor std.Address\n\tComment string\n}\n\nfunc (c Comment) RenderListItem() string {\n\toutput := \"\u003ch5\u003e\"\n\toutput += c.Comment + \"\\n\\n\"\n\toutput += \"\u003c/h5\u003e\"\n\n\toutput += \"\u003ch6\u003e\"\n\toutput += ufmt.Sprintf(\"by %s on %s\", c.Author, c.CreatedAt.Format(time.RFC822))\n\toutput += \"\u003c/h6\u003e\\n\\n\"\n\n\toutput += \"---\\n\\n\"\n\n\treturn output\n}\n"},{"name":"blog_test.gno","body":"package blog\n\n// TODO: add generic tests here.\n// right now, you can checkout r/gnoland/blog/*_test.gno.\n"},{"name":"errors.gno","body":"package blog\n\nimport \"errors\"\n\nvar (\n\tErrPostTitleMissing = errors.New(\"post title is missing\")\n\tErrPostSlugMissing = errors.New(\"post slug is missing\")\n\tErrPostBodyMissing = errors.New(\"post body is missing\")\n\tErrPostSlugExists = errors.New(\"post with specified slug already exists\")\n\tErrPostPubDateExists = errors.New(\"post with specified publication date exists\")\n\tErrPostTitleExists = errors.New(\"post with specified title already exists\")\n\tErrNoSuchPost = errors.New(\"no such post\")\n)\n"},{"name":"util.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\t\"time\"\n)\n\nfunc breadcrumb(parts []string) string {\n\treturn \"# \" + strings.Join(parts, \" / \") + \"\\n\\n\"\n}\n\nfunc getTitleKey(title string) string {\n\treturn strings.Replace(title, \" \", \"\", -1)\n}\n\nfunc getPublishedKey(t time.Time) string {\n\treturn t.Format(time.RFC3339)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CyEwzbcac+D9YI7BBmtkVF8zsrBpK2e7aQRDv09UOP4OW9BAm1Hf/oFQIY/2PfdVpEush5R6mYGsKgv+sK9vBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"blog","path":"gno.land/p/demo/blog","files":[{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Blog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPosts avl.Tree // slug -\u003e *Post\n\tPostsPublished avl.Tree // published-date -\u003e *Post\n\tPostsAlphabetical avl.Tree // title -\u003e *Post\n\tNoBreadcrumb bool\n}\n\nfunc (b Blog) RenderLastPostsWidget(limit int) string {\n\tif b.PostsPublished.Size() == 0 {\n\t\treturn \"No posts.\"\n\t}\n\n\toutput := \"\"\n\ti := 0\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*Post)\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", p.Title, p.URL())\n\t\ti++\n\t\treturn i \u003e= limit\n\t})\n\treturn output\n}\n\nfunc (b Blog) RenderHome(res *mux.ResponseWriter, req *mux.Request) {\n\tif !b.NoBreadcrumb {\n\t\tres.Write(breadcrumb([]string{b.Title}))\n\t}\n\n\tif b.Posts.Size() == 0 {\n\t\tres.Write(\"No posts.\")\n\t\treturn\n\t}\n\n\tres.Write(\"\u003cdiv class='columns-3'\u003e\")\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tres.Write(post.RenderListItem())\n\t\treturn false\n\t})\n\tres.Write(\"\u003c/div\u003e\")\n\n\t// FIXME: tag list/cloud.\n}\n\nfunc (b Blog) RenderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\tp := post.(*Post)\n\n\tres.Write(\"\u003cmain class='gno-tmpl-page'\u003e\" + \"\\n\\n\")\n\n\tres.Write(\"# \" + p.Title + \"\\n\\n\")\n\tres.Write(p.Body + \"\\n\\n\")\n\tres.Write(\"---\\n\\n\")\n\n\tres.Write(p.RenderTagList() + \"\\n\\n\")\n\tres.Write(p.RenderAuthorList() + \"\\n\\n\")\n\tres.Write(p.RenderPublishData() + \"\\n\\n\")\n\n\tres.Write(\"---\\n\")\n\tres.Write(\"\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\\n\\n\")\n\n\t// comments\n\tp.Comments.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tcomment := value.(*Comment)\n\t\tres.Write(comment.RenderListItem())\n\t\treturn false\n\t})\n\n\tres.Write(\"\u003c/details\u003e\\n\")\n\tres.Write(\"\u003c/main\u003e\")\n}\n\nfunc (b Blog) RenderTag(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tif slug == \"\" {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\n\tif !b.NoBreadcrumb {\n\t\tbreadStr := breadcrumb([]string{\n\t\t\tufmt.Sprintf(\"[%s](%s)\", b.Title, b.Prefix),\n\t\t\t\"t\",\n\t\t\tslug,\n\t\t})\n\t\tres.Write(breadStr)\n\t}\n\n\tnb := 0\n\tb.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tif !post.HasTag(slug) {\n\t\t\treturn false\n\t\t}\n\t\tres.Write(post.RenderListItem())\n\t\tnb++\n\t\treturn false\n\t})\n\tif nb == 0 {\n\t\tres.Write(\"No posts.\")\n\t}\n}\n\nfunc (b Blog) Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.HandleFunc(\"\", b.RenderHome)\n\trouter.HandleFunc(\"p/{slug}\", b.RenderPost)\n\trouter.HandleFunc(\"t/{slug}\", b.RenderTag)\n\treturn router.Render(path)\n}\n\nfunc (b *Blog) NewPost(publisher std.Address, slug, title, body, pubDate string, authors, tags []string) error {\n\tif _, found := b.Posts.Get(slug); found {\n\t\treturn ErrPostSlugExists\n\t}\n\n\tvar parsedTime time.Time\n\tvar err error\n\tif pubDate != \"\" {\n\t\tparsedTime, err = time.Parse(time.RFC3339, pubDate)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// If no publication date was passed in by caller, take current block time\n\t\tparsedTime = time.Now()\n\t}\n\n\tpost := \u0026Post{\n\t\tPublisher: publisher,\n\t\tAuthors: authors,\n\t\tSlug: slug,\n\t\tTitle: title,\n\t\tBody: body,\n\t\tTags: tags,\n\t\tCreatedAt: parsedTime,\n\t}\n\n\treturn b.prepareAndSetPost(post, false)\n}\n\nfunc (b *Blog) prepareAndSetPost(post *Post, edit bool) error {\n\tpost.Title = strings.TrimSpace(post.Title)\n\tpost.Body = strings.TrimSpace(post.Body)\n\n\tif post.Title == \"\" {\n\t\treturn ErrPostTitleMissing\n\t}\n\tif post.Body == \"\" {\n\t\treturn ErrPostBodyMissing\n\t}\n\tif post.Slug == \"\" {\n\t\treturn ErrPostSlugMissing\n\t}\n\n\tpost.Blog = b\n\tpost.UpdatedAt = time.Now()\n\n\ttrimmedTitleKey := getTitleKey(post.Title)\n\tpubDateKey := getPublishedKey(post.CreatedAt)\n\n\tif !edit {\n\t\t// Cannot have two posts with same title key\n\t\tif _, found := b.PostsAlphabetical.Get(trimmedTitleKey); found {\n\t\t\treturn ErrPostTitleExists\n\t\t}\n\t\t// Cannot have two posts with *exact* same timestamp\n\t\tif _, found := b.PostsPublished.Get(pubDateKey); found {\n\t\t\treturn ErrPostPubDateExists\n\t\t}\n\t}\n\n\t// Store post under keys\n\tb.PostsAlphabetical.Set(trimmedTitleKey, post)\n\tb.PostsPublished.Set(pubDateKey, post)\n\tb.Posts.Set(post.Slug, post)\n\n\treturn nil\n}\n\nfunc (b *Blog) RemovePost(slug string) {\n\tp, exists := b.Posts.Get(slug)\n\tif !exists {\n\t\tpanic(\"post with specified slug doesn't exist\")\n\t}\n\n\tpost := p.(*Post)\n\n\ttitleKey := getTitleKey(post.Title)\n\tpublishedKey := getPublishedKey(post.CreatedAt)\n\n\t_, _ = b.Posts.Remove(slug)\n\t_, _ = b.PostsAlphabetical.Remove(titleKey)\n\t_, _ = b.PostsPublished.Remove(publishedKey)\n}\n\nfunc (b *Blog) GetPost(slug string) *Post {\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\treturn nil\n\t}\n\treturn post.(*Post)\n}\n\ntype Post struct {\n\tBlog *Blog\n\tSlug string // FIXME: save space?\n\tTitle string\n\tBody string\n\tCreatedAt time.Time\n\tUpdatedAt time.Time\n\tComments avl.Tree\n\tAuthors []string\n\tPublisher std.Address\n\tTags []string\n\tCommentIndex int\n}\n\nfunc (p *Post) Update(title, body, publicationDate string, authors, tags []string) error {\n\tp.Title = title\n\tp.Body = body\n\tp.Tags = tags\n\tp.Authors = authors\n\n\tparsedTime, err := time.Parse(time.RFC3339, publicationDate)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tp.CreatedAt = parsedTime\n\treturn p.Blog.prepareAndSetPost(p, true)\n}\n\nfunc (p *Post) AddComment(author std.Address, comment string) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tp.CommentIndex++\n\tcommentKey := strconv.Itoa(p.CommentIndex)\n\tcomment = strings.TrimSpace(comment)\n\tp.Comments.Set(commentKey, \u0026Comment{\n\t\tPost: p,\n\t\tCreatedAt: time.Now(),\n\t\tAuthor: author,\n\t\tComment: comment,\n\t})\n\n\treturn nil\n}\n\nfunc (p *Post) DeleteComment(index int) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tcommentKey := strconv.Itoa(index)\n\tp.Comments.Remove(commentKey)\n\treturn nil\n}\n\nfunc (p *Post) HasTag(tag string) bool {\n\tif p == nil {\n\t\treturn false\n\t}\n\tfor _, t := range p.Tags {\n\t\tif t == tag {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (p *Post) RenderListItem() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\toutput := \"\u003cdiv\u003e\\n\\n\"\n\toutput += ufmt.Sprintf(\"### [%s](%s)\\n\", p.Title, p.URL())\n\t// output += ufmt.Sprintf(\"**[Learn More](%s)**\\n\\n\", p.URL())\n\n\toutput += \" \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\t// output += p.Summary() + \"\\n\\n\"\n\t// output += p.RenderTagList() + \"\\n\\n\"\n\toutput += \"\\n\"\n\toutput += \"\u003c/div\u003e\"\n\treturn output\n}\n\n// Render post tags\nfunc (p *Post) RenderTagList() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\tif len(p.Tags) == 0 {\n\t\treturn \"\"\n\t}\n\n\toutput := \"Tags: \"\n\tfor idx, tag := range p.Tags {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" \"\n\t\t}\n\t\ttagURL := p.Blog.Prefix + \"t/\" + tag\n\t\toutput += ufmt.Sprintf(\"[#%s](%s)\", tag, tagURL)\n\n\t}\n\treturn output\n}\n\n// Render authors if there are any\nfunc (p *Post) RenderAuthorList() string {\n\tout := \"Written\"\n\tif len(p.Authors) != 0 {\n\t\tout += \" by \"\n\n\t\tfor idx, author := range p.Authors {\n\t\t\tout += author\n\t\t\tif idx \u003c len(p.Authors)-1 {\n\t\t\t\tout += \", \"\n\t\t\t}\n\t\t}\n\t}\n\tout += \" on \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\n\treturn out\n}\n\nfunc (p *Post) RenderPublishData() string {\n\tout := \"Published \"\n\tif p.Publisher != \"\" {\n\t\tout += \"by \" + p.Publisher.String() + \" \"\n\t}\n\tout += \"to \" + p.Blog.Title\n\n\treturn out\n}\n\nfunc (p *Post) URL() string {\n\tif p == nil {\n\t\treturn p.Blog.Prefix + \"404\"\n\t}\n\treturn p.Blog.Prefix + \"p/\" + p.Slug\n}\n\nfunc (p *Post) Summary() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\n\t// FIXME: better summary.\n\tlines := strings.Split(p.Body, \"\\n\")\n\tif len(lines) \u003c= 3 {\n\t\treturn p.Body\n\t}\n\treturn strings.Join(lines[0:3], \"\\n\") + \"...\"\n}\n\ntype Comment struct {\n\tPost *Post\n\tCreatedAt time.Time\n\tAuthor std.Address\n\tComment string\n}\n\nfunc (c Comment) RenderListItem() string {\n\toutput := \"\u003ch5\u003e\"\n\toutput += c.Comment + \"\\n\\n\"\n\toutput += \"\u003c/h5\u003e\"\n\n\toutput += \"\u003ch6\u003e\"\n\toutput += ufmt.Sprintf(\"by %s on %s\", c.Author, c.CreatedAt.Format(time.RFC822))\n\toutput += \"\u003c/h6\u003e\\n\\n\"\n\n\toutput += \"---\\n\\n\"\n\n\treturn output\n}\n"},{"name":"blog_test.gno","body":"package blog\n\n// TODO: add generic tests here.\n// right now, you can checkout r/gnoland/blog/*_test.gno.\n"},{"name":"errors.gno","body":"package blog\n\nimport \"errors\"\n\nvar (\n\tErrPostTitleMissing = errors.New(\"post title is missing\")\n\tErrPostSlugMissing = errors.New(\"post slug is missing\")\n\tErrPostBodyMissing = errors.New(\"post body is missing\")\n\tErrPostSlugExists = errors.New(\"post with specified slug already exists\")\n\tErrPostPubDateExists = errors.New(\"post with specified publication date exists\")\n\tErrPostTitleExists = errors.New(\"post with specified title already exists\")\n\tErrNoSuchPost = errors.New(\"no such post\")\n)\n"},{"name":"util.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\t\"time\"\n)\n\nfunc breadcrumb(parts []string) string {\n\treturn \"# \" + strings.Join(parts, \" / \") + \"\\n\\n\"\n}\n\nfunc getTitleKey(title string) string {\n\treturn strings.Replace(title, \" \", \"\", -1)\n}\n\nfunc getPublishedKey(t time.Time) string {\n\treturn t.Format(time.RFC3339)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CyEwzbcac+D9YI7BBmtkVF8zsrBpK2e7aQRDv09UOP4OW9BAm1Hf/oFQIY/2PfdVpEush5R6mYGsKgv+sK9vBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"boards","path":"gno.land/r/demo/boards","files":[{"name":"README.md","body":"This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `-remote localhost:26657` here, that flag can be replaced\nwith `-remote gno.land:26657` if you have $GNOT on the testnet.\n(To use the testnet, also replace `-chainid dev` with `-chainid portal-loop` .)\n\n### Build `gnokey` (and other tools).\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd gno/gno.land\nmake build\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add -recover KEYNAME\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\nTake note of your `addr` which looks something like `g17sphqax3kasjptdkmuqvn740u8dhtx4kxl6ljf` .\nYou will use this as your `ACCOUNT_ADDR`.\n\n## Interact with the blockchain.\n\n### Add $GNOT for your account.\n\nBefore starting the `gnoland` node for the first time, your new account can be given $GNOT in the node genesis.\nEdit the file `gno.land/genesis/genesis_balances.txt` and add the following line (simlar to the others), using\nyour `ACCOUNT_ADDR` and `KEYNAME`\n\n`ACCOUNT_ADDR=10000000000ugnot # @KEYNAME`\n\n### Alternative: Run a faucet to add $GNOT.\n\nInstead of editing `gno.land/genesis/genesis_balances.txt`, a more general solution (with more steps)\nis to run a local \"faucet\" and use the web browser to add $GNOT. (This can be done at any time.)\nSee this page: https://github.com/gnolang/gno/blob/master/contribs/gnofaucet/README.md\n\n\n### Start the `gnoland` node.\n\n```bash\n./build/gnoland start\n```\n\nNOTE: The node already has the \"boards\" realm.\n\nLeave this running in the terminal. In a new terminal, cd to the same folder `gno/gno.land` .\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR -remote localhost:26657\n```\n\n### Register a board username with a smart contract call.\n\nThe `USERNAME` for posting can different than your `KEYNAME`. It is internally linked to your `ACCOUNT_ADDR`. It must be at least 6 characters, lowercase alphanumeric with underscore.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/users\" -func \"Register\" -args \"\" -args \"USERNAME\" -args \"Profile description\" -gas-fee \"10000000ugnot\" -gas-wanted \"2000000\" -send \"200000000ugnot\" -broadcast -chainid dev -remote 127.0.0.1:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/users$help\u0026func=Register\n\n### Create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateBoard\" -args \"BOARDNAME\" -gas-fee \"1000000ugnot\" -gas-wanted \"10000000\" -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" -data 'gno.land/r/demo/boards.GetBoardIDFromName(\"BOARDNAME\")' -remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateThread\" -args BOARD_ID -args \"Hello gno.land\" -args \"Text of the post\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateReply\" -args BOARD_ID -args \"1\" -args \"1\" -args \"Nice to meet you too.\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:BOARDNAME/1\" -remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:gnolang\"\n```\n## View the board in the browser.\n\n### Start the web server.\n\n```bash\n./build/gnoweb\n```\n\nThis should print something like `Running on http://127.0.0.1:8888` . Leave this running in the terminal.\n\n### View in the browser\n\nIn your browser, navigate to the printed address http://127.0.0.1:8888 .\nTo see you post, click on the package `/r/demo/boards` .\n"},{"name":"board.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Board\n\ntype BoardID uint64\n\nfunc (bid BoardID) String() string {\n\treturn strconv.Itoa(int(bid))\n}\n\ntype Board struct {\n\tid BoardID // only set for public boards.\n\turl string\n\tname string\n\tcreator std.Address\n\tthreads avl.Tree // Post.id -\u003e *Post\n\tpostsCtr uint64 // increments Post.id\n\tcreatedAt time.Time\n\tdeleted avl.Tree // TODO reserved for fast-delete.\n}\n\nfunc newBoard(id BoardID, url string, name string, creator std.Address) *Board {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\texists := gBoardsByName.Has(name)\n\tif exists {\n\t\tpanic(\"board already exists\")\n\t}\n\treturn \u0026Board{\n\t\tid: id,\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tthreads: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t\tdeleted: avl.Tree{},\n\t}\n}\n\n/* TODO support this once we figure out how to ensure URL correctness.\n// A private board is not tracked by gBoards*,\n// but must be persisted by the caller's realm.\n// Private boards have 0 id and does not ping\n// back the remote board on reposts.\nfunc NewPrivateBoard(url string, name string, creator std.Address) *Board {\n\treturn newBoard(0, url, name, creator)\n}\n*/\n\nfunc (board *Board) IsPrivate() bool {\n\treturn board.id == 0\n}\n\nfunc (board *Board) GetThread(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\tpostI, exists := board.threads.Get(pidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn postI.(*Post)\n}\n\nfunc (board *Board) AddThread(creator std.Address, title string, body string) *Post {\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\tthread := newPost(board, pid, creator, title, body, pid, 0, 0)\n\tboard.threads.Set(pidkey, thread)\n\treturn thread\n}\n\n// NOTE: this can be potentially very expensive for threads with many replies.\n// TODO: implement optional fast-delete where thread is simply moved.\nfunc (board *Board) DeleteThread(pid PostID) {\n\tpidkey := postIDKey(pid)\n\t_, removed := board.threads.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"thread does not exist with id \" + pid.String())\n\t}\n}\n\nfunc (board *Board) HasPermission(addr std.Address, perm Permission) bool {\n\tif board.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn false\n}\n\n// Renders the board for display suitable as plaintext in\n// console. This is suitable for demonstration or tests,\n// but not for prod.\nfunc (board *Board) RenderBoard() string {\n\tstr := \"\"\n\tstr += \"\\\\[[post](\" + board.GetPostFormURL() + \")]\\n\\n\"\n\tif board.threads.Size() \u003e 0 {\n\t\tboard.threads.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tif str != \"\" {\n\t\t\t\tstr += \"----------------------------------------\\n\"\n\t\t\t}\n\t\t\tstr += value.(*Post).RenderSummary() + \"\\n\"\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\nfunc (board *Board) incGetPostID() PostID {\n\tboard.postsCtr++\n\treturn PostID(board.postsCtr)\n}\n\nfunc (board *Board) GetURLFromThreadAndReplyID(threadID, replyID PostID) string {\n\tif replyID == 0 {\n\t\treturn board.url + \"/\" + threadID.String()\n\t} else {\n\t\treturn board.url + \"/\" + threadID.String() + \"/\" + replyID.String()\n\t}\n}\n\nfunc (board *Board) GetPostFormURL() string {\n\treturn txlink.Call(\"CreateThread\", \"bid\", board.id.String())\n}\n"},{"name":"boards.gno","body":"package boards\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgBoards avl.Tree // id -\u003e *Board\n\tgBoardsCtr int // increments Board.id\n\tgBoardsByName avl.Tree // name -\u003e *Board\n\tgDefaultAnonFee = 100000000 // minimum fee required if anonymous\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"misc.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getBoard(bid BoardID) *Board {\n\tbidkey := boardIDKey(bid)\n\tboard_, exists := gBoards.Get(bidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\tboard := board_.(*Board)\n\treturn board\n}\n\nfunc incGetBoardID() BoardID {\n\tgBoardsCtr++\n\treturn BoardID(gBoardsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\" \", length-len(str)) + str\n\t}\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\"0\", length-len(str)) + str\n\t}\n}\n\nfunc boardIDKey(bid BoardID) string {\n\treturn padZero(uint64(bid), 10)\n}\n\nfunc postIDKey(pid PostID) string {\n\treturn padZero(uint64(pid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t} else {\n\t\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n\t}\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"\"\n\t}\n\treturn user.Name\n}\n"},{"name":"post.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Post\n\n// NOTE: a PostID is relative to the board.\ntype PostID uint64\n\nfunc (pid PostID) String() string {\n\treturn strconv.Itoa(int(pid))\n}\n\n// A Post is a \"thread\" or a \"reply\" depending on context.\n// A thread is a Post of a Board that holds other replies.\ntype Post struct {\n\tboard *Board\n\tid PostID\n\tcreator std.Address\n\ttitle string // optional\n\tbody string\n\treplies avl.Tree // Post.id -\u003e *Post\n\trepliesAll avl.Tree // Post.id -\u003e *Post (all replies, for top-level posts)\n\treposts avl.Tree // Board.id -\u003e Post.id\n\tthreadID PostID // original Post.id\n\tparentID PostID // parent Post.id (if reply or repost)\n\trepostBoard BoardID // original Board.id (if repost)\n\tcreatedAt time.Time\n\tupdatedAt time.Time\n}\n\nfunc newPost(board *Board, id PostID, creator std.Address, title, body string, threadID, parentID PostID, repostBoard BoardID) *Post {\n\treturn \u0026Post{\n\t\tboard: board,\n\t\tid: id,\n\t\tcreator: creator,\n\t\ttitle: title,\n\t\tbody: body,\n\t\treplies: avl.Tree{},\n\t\trepliesAll: avl.Tree{},\n\t\treposts: avl.Tree{},\n\t\tthreadID: threadID,\n\t\tparentID: parentID,\n\t\trepostBoard: repostBoard,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (post *Post) IsThread() bool {\n\treturn post.parentID == 0\n}\n\nfunc (post *Post) GetPostID() PostID {\n\treturn post.id\n}\n\nfunc (post *Post) AddReply(creator std.Address, body string) *Post {\n\tboard := post.board\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\treply := newPost(board, pid, creator, \"\", body, post.threadID, post.id, 0)\n\tpost.replies.Set(pidkey, reply)\n\tif post.threadID == post.id {\n\t\tpost.repliesAll.Set(pidkey, reply)\n\t} else {\n\t\tthread := board.GetThread(post.threadID)\n\t\tthread.repliesAll.Set(pidkey, reply)\n\t}\n\treturn reply\n}\n\nfunc (post *Post) Update(title string, body string) {\n\tpost.title = title\n\tpost.body = body\n\tpost.updatedAt = time.Now()\n}\n\nfunc (thread *Post) GetReply(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\treplyI, ok := thread.repliesAll.Get(pidkey)\n\tif !ok {\n\t\treturn nil\n\t} else {\n\t\treturn replyI.(*Post)\n\t}\n}\n\nfunc (post *Post) AddRepostTo(creator std.Address, title, body string, dst *Board) *Post {\n\tif !post.IsThread() {\n\t\tpanic(\"cannot repost non-thread post\")\n\t}\n\tpid := dst.incGetPostID()\n\tpidkey := postIDKey(pid)\n\trepost := newPost(dst, pid, creator, title, body, pid, post.id, post.board.id)\n\tdst.threads.Set(pidkey, repost)\n\tif !dst.IsPrivate() {\n\t\tbidkey := boardIDKey(dst.id)\n\t\tpost.reposts.Set(bidkey, pid)\n\t}\n\treturn repost\n}\n\nfunc (thread *Post) DeletePost(pid PostID) {\n\tif thread.id == pid {\n\t\tpanic(\"should not happen\")\n\t}\n\tpidkey := postIDKey(pid)\n\tpostI, removed := thread.repliesAll.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"post not found in thread\")\n\t}\n\tpost := postI.(*Post)\n\tif post.parentID != thread.id {\n\t\tparent := thread.GetReply(post.parentID)\n\t\tparent.replies.Remove(pidkey)\n\t} else {\n\t\tthread.replies.Remove(pidkey)\n\t}\n}\n\nfunc (post *Post) HasPermission(addr std.Address, perm Permission) bool {\n\tif post.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\t// post notes inherit permissions of the board.\n\treturn post.board.HasPermission(addr, perm)\n}\n\nfunc (post *Post) GetSummary() string {\n\treturn summaryOf(post.body, 80)\n}\n\nfunc (post *Post) GetURL() string {\n\tif post.IsThread() {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.id, 0)\n\t} else {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.threadID, post.id)\n\t}\n}\n\nfunc (post *Post) GetReplyFormURL() string {\n\treturn txlink.Call(\"CreateReply\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetRepostFormURL() string {\n\treturn txlink.Call(\"CreateRepost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetDeleteFormURL() string {\n\treturn txlink.Call(\"DeletePost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) RenderSummary() string {\n\tif post.repostBoard != 0 {\n\t\tdstBoard := getBoard(post.repostBoard)\n\t\tif dstBoard == nil {\n\t\t\tpanic(\"repostBoard does not exist\")\n\t\t}\n\t\tthread := dstBoard.GetThread(PostID(post.parentID))\n\t\tif thread == nil {\n\t\t\treturn \"reposted post does not exist\"\n\t\t}\n\t\treturn \"Repost: \" + post.GetSummary() + \"\\n\" + thread.RenderSummary()\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += \"## [\" + summaryOf(post.title, 80) + \"](\" + post.GetURL() + \")\\n\"\n\t\tstr += \"\\n\"\n\t}\n\tstr += post.GetSummary() + \"\\n\"\n\tstr += \"\\\\- \" + displayAddressMD(post.creator) + \",\"\n\tstr += \" [\" + post.createdAt.Format(\"2006-01-02 3:04pm MST\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\"\n\tstr += \" (\" + strconv.Itoa(post.replies.Size()) + \" replies)\"\n\tstr += \" (\" + strconv.Itoa(post.reposts.Size()) + \" reposts)\" + \"\\n\"\n\treturn str\n}\n\nfunc (post *Post) RenderPost(indent string, levels int) string {\n\tif post == nil {\n\t\treturn \"nil post\"\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += indent + \"# \" + post.title + \"\\n\"\n\t\tstr += indent + \"\\n\"\n\t}\n\tstr += indentBody(indent, post.body) + \"\\n\" // TODO: indent body lines.\n\tstr += indent + \"\\\\- \" + displayAddressMD(post.creator) + \", \"\n\tstr += \"[\" + post.createdAt.Format(\"2006-01-02 3:04pm (MST)\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[reply](\" + post.GetReplyFormURL() + \")]\"\n\tif post.IsThread() {\n\t\tstr += \" \\\\[[repost](\" + post.GetRepostFormURL() + \")]\"\n\t}\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\\n\"\n\tif levels \u003e 0 {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tpost.replies.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\t\tstr += indent + \"\\n\"\n\t\t\t\tstr += value.(*Post).RenderPost(indent+\"\u003e \", levels-1)\n\t\t\t\treturn false\n\t\t\t})\n\t\t}\n\t} else {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tstr += indent + \"\\n\"\n\t\t\tstr += indent + \"_[see all \" + strconv.Itoa(post.replies.Size()) + \" replies](\" + post.GetURL() + \")_\\n\"\n\t\t}\n\t}\n\treturn str\n}\n\n// render reply and link to context thread\nfunc (post *Post) RenderInner() string {\n\tif post.IsThread() {\n\t\tpanic(\"unexpected thread\")\n\t}\n\tthreadID := post.threadID\n\t// replyID := post.id\n\tparentID := post.parentID\n\tstr := \"\"\n\tstr += \"_[see thread](\" + post.board.GetURLFromThreadAndReplyID(\n\t\tthreadID, 0) + \")_\\n\\n\"\n\tthread := post.board.GetThread(post.threadID)\n\tvar parent *Post\n\tif thread.id == parentID {\n\t\tparent = thread\n\t} else {\n\t\tparent = thread.GetReply(parentID)\n\t}\n\tstr += parent.RenderPost(\"\", 0)\n\tstr += \"\\n\"\n\tstr += post.RenderPost(\"\u003e \", 5)\n\treturn str\n}\n"},{"name":"public.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetBoardIDFromName(name string) (BoardID, bool) {\n\tboardI, exists := gBoardsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn boardI.(*Board).id, true\n}\n\nfunc CreateBoard(name string) BoardID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tbid := incGetBoardID()\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tpanic(\"unauthorized\")\n\t}\n\turl := \"/r/demo/boards:\" + name\n\tboard := newBoard(bid, url, name, caller)\n\tbidkey := boardIDKey(bid)\n\tgBoards.Set(bidkey, board)\n\tgBoardsByName.Set(name, board)\n\treturn board.id\n}\n\nfunc checkAnonFee() bool {\n\tsent := std.GetOrigSend()\n\tanonFeeCoin := std.NewCoin(\"ugnot\", int64(gDefaultAnonFee))\n\tif len(sent) == 1 \u0026\u0026 sent[0].IsGTE(anonFeeCoin) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc CreateThread(bid BoardID, title string, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.AddThread(caller, title, body)\n\treturn thread.id\n}\n\nfunc CreateReply(bid BoardID, threadid, postid PostID, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\treply := thread.AddReply(caller, body)\n\t\treturn reply.id\n\t} else {\n\t\tpost := thread.GetReply(postid)\n\t\treply := post.AddReply(caller, body)\n\t\treturn reply.id\n\t}\n}\n\n// If dstBoard is private, does not ping back.\n// If board specified by bid is private, panics.\nfunc CreateRepost(bid BoardID, postid PostID, title string, body string, dstBoardID BoardID) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\t// TODO: allow with gDefaultAnonFee payment.\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"src board not exist\")\n\t}\n\tif board.IsPrivate() {\n\t\tpanic(\"cannot repost from a private board\")\n\t}\n\tdst := getBoard(dstBoardID)\n\tif dst == nil {\n\t\tpanic(\"dst board not exist\")\n\t}\n\tthread := board.GetThread(postid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\trepost := thread.AddRepostTo(caller, title, body, dst)\n\treturn repost.id\n}\n\nfunc DeletePost(bid BoardID, threadid, postid PostID, reason string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// delete thread\n\t\tif !thread.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tboard.DeleteThread(threadid)\n\t} else {\n\t\t// delete thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.DeletePost(postid)\n\t}\n}\n\nfunc EditPost(bid BoardID, threadid, postid PostID, title, body string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// edit thread\n\t\tif !thread.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.Update(title, body)\n\t} else {\n\t\t// edit thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tpost.Update(title, body)\n\t}\n}\n"},{"name":"render.gno","body":"package boards\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderBoard(bid BoardID) string {\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\treturn \"missing board\"\n\t}\n\treturn board.RenderBoard()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"These are all the boards of this realm:\\n\\n\"\n\t\tgBoards.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tboard := value.(*Board)\n\t\t\tstr += \" * [\" + board.url + \"](\" + board.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/boards:BOARD_NAME\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\treturn boardI.(*Board).RenderBoard()\n\t} else if len(parts) == 2 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\treturn thread.RenderPost(\"\", 5)\n\t} else if len(parts) == 3 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID/REPLY_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\trid, err := strconv.Atoi(parts[2])\n\t\tif err != nil {\n\t\t\treturn \"invalid reply id: \" + parts[2]\n\t\t}\n\t\treply := thread.GetReply(PostID(rid))\n\t\tif reply == nil {\n\t\t\treturn \"reply does not exist with id: \" + parts[2]\n\t\t}\n\t\treturn reply.RenderInner()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package boards\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\nimport (\n\t\"gno.land/r/demo/boards\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateThread(1, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_0_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 20000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n// ----------------------------------------\n// ## [Second Post (title)](/r/demo/boards:test_board/2)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/2) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)] (1 replies) (0 reposts)\n//\n//\n"},{"name":"z_10_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// boardId 2 not exist\n\tboards.DeletePost(2, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_10_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// pid of 2 not exist\n\tboards.DeletePost(bid, 2, 2, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_10_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, rid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// thread does not exist with id: 1\n"},{"name":"z_11_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// board 2 not exist\n\tboards.EditPost(2, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_11_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// thread 2 not exist\n\tboards.EditPost(bid, 2, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_11_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// post 2 not exist\n\tboards.EditPost(bid, pid, 2, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// post not exist\n"},{"name":"z_11_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, rid, \"\", \"Edited: First reply of the First post\\n\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Edited: First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_11_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// # Edited: First Post in (title)\n//\n// Edited: Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_12_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create a post via registered user\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_12_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing board\n\trid := boards.CreateRepost(5, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_12_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tboards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing thread\n\trid := boards.CreateRepost(bid1, 5, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_12_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing destination board\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", 5)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_12_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid1 boards.BoardID\n\tbid2 boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid1 = boards.CreateBoard(\"test_board1\")\n\tpid = boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 = boards.CreateBoard(\"test_board2\")\n}\n\nfunc main() {\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board2\"))\n}\n\n// Output:\n// 1\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=2)]\n//\n// ----------------------------------------\n// Repost: Check this out\n// ## [First Post (title)](/r/demo/boards:test_board1/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board1/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (1 reposts)\n//\n//\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar board *boards.Board\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t_ = boards.CreateBoard(\"test_board_1\")\n\t_ = boards.CreateBoard(\"test_board_2\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"\"))\n}\n\n// Output:\n// These are all the boards of this realm:\n//\n// * [/r/demo/boards:test_board_1](/r/demo/boards:test_board_1)\n// * [/r/demo/boards:test_board_2](/r/demo/boards:test_board_2)\n//\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n}\n\nfunc main() {\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\")\n\tprintln(rid2)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// 4\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\",\n// \"ModTime\": \"123\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"68663c8895d37d479e417c11e21badfe21345c61\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:112\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3f34ac77289aa1d5f9a2f8b6d083138325816fb0\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"94a6665a44bac6ede7f3e3b87173e537b12f9532\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bc8e5b4e782a0bbc4ac9689681f119beb7b34d59\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9957eadbc91dd32f33b0d815e041a32dbdea0671\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131]={\n// \"Fields\": [\n// {\n// \"N\": \"AAAAgJSeXbo=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"N\": \"AbSNdvQQIhE=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"336074805fc853987abe6f7fe3ad97a6a6f3077a:2\"\n// },\n// \"Index\": \"182\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Board\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"Second reply of the second post\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f91e355bd19240f0f3350a7fa0e6a82b72225916\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9ee9c4117be283fc51ffcc5ecd65b75ecef5a9dd\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"eb768b0140a5fe95f9c58747f0960d647dacfd42\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"0fd3352422af0a56a77ef2c9e88f479054e3d51f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bed4afa8ffdbbf775451c947fc68b27a345ce32a\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"0\",\n// \"RefCount\": \"2\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c45bbd47a46681a63af973db0ec2180922e4a8ae\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\",\n// \"ModTime\": \"134\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"dc1f011553dc53e7a846049e08cc77fa35ea6a51\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:121\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"96b86b4585c7f1075d7794180a5581f72733a7ab\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"32274e1f28fb2b97d67a1262afd362d370de7faa\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c2cfd6aec36a462f35bf02e5bf4a127aa1bb7ac2\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"5cb875179e86d32c517322af7a323b2a5f3e6cc5\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85]={\n// \"Fields\": [\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"/r/demo/boards:test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a416a751c3a45a1e5cba11e737c51340b081e372\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:86\"\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"36299fccbc13f2a84c4629fad4cb940f0bd4b1c6\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:87\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"af6ed0268f99b7f369329094eb6dfaea7812708b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:88\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9809329dc1ddc5d3556f7a8fa3c2cebcbf65560b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ceae9a1c4ed28bb51062e6ccdccfad0caafd1c4f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/boards_test\"]\n"},{"name":"z_5_b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_c_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 101000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post (title)\n//\n// Body of the first post. (body)\n// \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Reply of the first post\n// \u003e \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_5_d_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\n\t// create reply via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_6_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tboards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n// \u003e\n// \u003e \u003e First reply of the first reply\n// \u003e \u003e\n// \u003e \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_7_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc init() {\n\t// register\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t// create board and post\n\tbid := boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n//\n"},{"name":"z_8_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\trid2 := boards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid)) + \"/\" + strconv.Itoa(int(rid2))))\n}\n\n// Output:\n// _[see thread](/r/demo/boards:test_board/2)_\n//\n// Reply of the second post\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// _[see all 1 replies](/r/demo/boards:test_board/2/3)_\n//\n// \u003e First reply of the first reply\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n"},{"name":"z_9_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar dstBoard boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tdstBoard = boards.CreateBoard(\"dst_board\")\n\n\tboards.CreateRepost(0, 0, \"First Post in (title)\", \"Body of the first post. (body)\", dstBoard)\n}\n\nfunc main() {\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_9_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tsrcBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tsrcBoard = boards.CreateBoard(\"first_board\")\n\tpid = boards.CreateThread(srcBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(srcBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", 0)\n}\n\nfunc main() {\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_9_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tfirstBoard boards.BoardID\n\tsecondBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tfirstBoard = boards.CreateBoard(\"first_board\")\n\tsecondBoard = boards.CreateBoard(\"second_board\")\n\tpid = boards.CreateThread(firstBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(firstBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", secondBoard)\n}\n\nfunc main() {\n\tprintln(boards.Render(\"second_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:second_board/1/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=2\u0026threadid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=2\u0026threadid=1\u0026postid=1)]\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h/bnH+azXNrchuq3znQ4DJxScobqFETjV+wNXov9M0z6dx9Am5kAwi7haLrt2cK5UP9WKUWimabf9jqiEuVHAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"boards","path":"gno.land/r/demo/boards","files":[{"name":"README.md","body":"This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `-remote localhost:26657` here, that flag can be replaced\nwith `-remote gno.land:26657` if you have $GNOT on the testnet.\n(To use the testnet, also replace `-chainid dev` with `-chainid portal-loop` .)\n\n### Build `gnokey` (and other tools).\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd gno/gno.land\nmake build\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add -recover KEYNAME\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\nTake note of your `addr` which looks something like `g17sphqax3kasjptdkmuqvn740u8dhtx4kxl6ljf` .\nYou will use this as your `ACCOUNT_ADDR`.\n\n## Interact with the blockchain.\n\n### Add $GNOT for your account.\n\nBefore starting the `gnoland` node for the first time, your new account can be given $GNOT in the node genesis.\nEdit the file `gno.land/genesis/genesis_balances.txt` and add the following line (simlar to the others), using\nyour `ACCOUNT_ADDR` and `KEYNAME`\n\n`ACCOUNT_ADDR=10000000000ugnot # @KEYNAME`\n\n### Alternative: Run a faucet to add $GNOT.\n\nInstead of editing `gno.land/genesis/genesis_balances.txt`, a more general solution (with more steps)\nis to run a local \"faucet\" and use the web browser to add $GNOT. (This can be done at any time.)\nSee this page: https://github.com/gnolang/gno/blob/master/contribs/gnofaucet/README.md\n\n\n### Start the `gnoland` node.\n\n```bash\n./build/gnoland start\n```\n\nNOTE: The node already has the \"boards\" realm.\n\nLeave this running in the terminal. In a new terminal, cd to the same folder `gno/gno.land` .\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR -remote localhost:26657\n```\n\n### Register a board username with a smart contract call.\n\nThe `USERNAME` for posting can different than your `KEYNAME`. It is internally linked to your `ACCOUNT_ADDR`. It must be at least 6 characters, lowercase alphanumeric with underscore.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/users\" -func \"Register\" -args \"\" -args \"USERNAME\" -args \"Profile description\" -gas-fee \"10000000ugnot\" -gas-wanted \"2000000\" -send \"200000000ugnot\" -broadcast -chainid dev -remote 127.0.0.1:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/users$help\u0026func=Register\n\n### Create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateBoard\" -args \"BOARDNAME\" -gas-fee \"1000000ugnot\" -gas-wanted \"10000000\" -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" -data 'gno.land/r/demo/boards.GetBoardIDFromName(\"BOARDNAME\")' -remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateThread\" -args BOARD_ID -args \"Hello gno.land\" -args \"Text of the post\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateReply\" -args BOARD_ID -args \"1\" -args \"1\" -args \"Nice to meet you too.\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:BOARDNAME/1\" -remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:gnolang\"\n```\n## View the board in the browser.\n\n### Start the web server.\n\n```bash\n./build/gnoweb\n```\n\nThis should print something like `Running on http://127.0.0.1:8888` . Leave this running in the terminal.\n\n### View in the browser\n\nIn your browser, navigate to the printed address http://127.0.0.1:8888 .\nTo see you post, click on the package `/r/demo/boards` .\n"},{"name":"board.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Board\n\ntype BoardID uint64\n\nfunc (bid BoardID) String() string {\n\treturn strconv.Itoa(int(bid))\n}\n\ntype Board struct {\n\tid BoardID // only set for public boards.\n\turl string\n\tname string\n\tcreator std.Address\n\tthreads avl.Tree // Post.id -\u003e *Post\n\tpostsCtr uint64 // increments Post.id\n\tcreatedAt time.Time\n\tdeleted avl.Tree // TODO reserved for fast-delete.\n}\n\nfunc newBoard(id BoardID, url string, name string, creator std.Address) *Board {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\texists := gBoardsByName.Has(name)\n\tif exists {\n\t\tpanic(\"board already exists\")\n\t}\n\treturn \u0026Board{\n\t\tid: id,\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tthreads: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t\tdeleted: avl.Tree{},\n\t}\n}\n\n/* TODO support this once we figure out how to ensure URL correctness.\n// A private board is not tracked by gBoards*,\n// but must be persisted by the caller's realm.\n// Private boards have 0 id and does not ping\n// back the remote board on reposts.\nfunc NewPrivateBoard(url string, name string, creator std.Address) *Board {\n\treturn newBoard(0, url, name, creator)\n}\n*/\n\nfunc (board *Board) IsPrivate() bool {\n\treturn board.id == 0\n}\n\nfunc (board *Board) GetThread(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\tpostI, exists := board.threads.Get(pidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn postI.(*Post)\n}\n\nfunc (board *Board) AddThread(creator std.Address, title string, body string) *Post {\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\tthread := newPost(board, pid, creator, title, body, pid, 0, 0)\n\tboard.threads.Set(pidkey, thread)\n\treturn thread\n}\n\n// NOTE: this can be potentially very expensive for threads with many replies.\n// TODO: implement optional fast-delete where thread is simply moved.\nfunc (board *Board) DeleteThread(pid PostID) {\n\tpidkey := postIDKey(pid)\n\t_, removed := board.threads.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"thread does not exist with id \" + pid.String())\n\t}\n}\n\nfunc (board *Board) HasPermission(addr std.Address, perm Permission) bool {\n\tif board.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn false\n}\n\n// Renders the board for display suitable as plaintext in\n// console. This is suitable for demonstration or tests,\n// but not for prod.\nfunc (board *Board) RenderBoard() string {\n\tstr := \"\"\n\tstr += \"\\\\[[post](\" + board.GetPostFormURL() + \")]\\n\\n\"\n\tif board.threads.Size() \u003e 0 {\n\t\tboard.threads.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tif str != \"\" {\n\t\t\t\tstr += \"----------------------------------------\\n\"\n\t\t\t}\n\t\t\tstr += value.(*Post).RenderSummary() + \"\\n\"\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\nfunc (board *Board) incGetPostID() PostID {\n\tboard.postsCtr++\n\treturn PostID(board.postsCtr)\n}\n\nfunc (board *Board) GetURLFromThreadAndReplyID(threadID, replyID PostID) string {\n\tif replyID == 0 {\n\t\treturn board.url + \"/\" + threadID.String()\n\t} else {\n\t\treturn board.url + \"/\" + threadID.String() + \"/\" + replyID.String()\n\t}\n}\n\nfunc (board *Board) GetPostFormURL() string {\n\treturn txlink.URL(\"CreateThread\", \"bid\", board.id.String())\n}\n"},{"name":"boards.gno","body":"package boards\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgBoards avl.Tree // id -\u003e *Board\n\tgBoardsCtr int // increments Board.id\n\tgBoardsByName avl.Tree // name -\u003e *Board\n\tgDefaultAnonFee = 100000000 // minimum fee required if anonymous\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"misc.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getBoard(bid BoardID) *Board {\n\tbidkey := boardIDKey(bid)\n\tboard_, exists := gBoards.Get(bidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\tboard := board_.(*Board)\n\treturn board\n}\n\nfunc incGetBoardID() BoardID {\n\tgBoardsCtr++\n\treturn BoardID(gBoardsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\" \", length-len(str)) + str\n\t}\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\"0\", length-len(str)) + str\n\t}\n}\n\nfunc boardIDKey(bid BoardID) string {\n\treturn padZero(uint64(bid), 10)\n}\n\nfunc postIDKey(pid PostID) string {\n\treturn padZero(uint64(pid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t} else {\n\t\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n\t}\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"\"\n\t}\n\treturn user.Name\n}\n"},{"name":"post.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Post\n\n// NOTE: a PostID is relative to the board.\ntype PostID uint64\n\nfunc (pid PostID) String() string {\n\treturn strconv.Itoa(int(pid))\n}\n\n// A Post is a \"thread\" or a \"reply\" depending on context.\n// A thread is a Post of a Board that holds other replies.\ntype Post struct {\n\tboard *Board\n\tid PostID\n\tcreator std.Address\n\ttitle string // optional\n\tbody string\n\treplies avl.Tree // Post.id -\u003e *Post\n\trepliesAll avl.Tree // Post.id -\u003e *Post (all replies, for top-level posts)\n\treposts avl.Tree // Board.id -\u003e Post.id\n\tthreadID PostID // original Post.id\n\tparentID PostID // parent Post.id (if reply or repost)\n\trepostBoard BoardID // original Board.id (if repost)\n\tcreatedAt time.Time\n\tupdatedAt time.Time\n}\n\nfunc newPost(board *Board, id PostID, creator std.Address, title, body string, threadID, parentID PostID, repostBoard BoardID) *Post {\n\treturn \u0026Post{\n\t\tboard: board,\n\t\tid: id,\n\t\tcreator: creator,\n\t\ttitle: title,\n\t\tbody: body,\n\t\treplies: avl.Tree{},\n\t\trepliesAll: avl.Tree{},\n\t\treposts: avl.Tree{},\n\t\tthreadID: threadID,\n\t\tparentID: parentID,\n\t\trepostBoard: repostBoard,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (post *Post) IsThread() bool {\n\treturn post.parentID == 0\n}\n\nfunc (post *Post) GetPostID() PostID {\n\treturn post.id\n}\n\nfunc (post *Post) AddReply(creator std.Address, body string) *Post {\n\tboard := post.board\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\treply := newPost(board, pid, creator, \"\", body, post.threadID, post.id, 0)\n\tpost.replies.Set(pidkey, reply)\n\tif post.threadID == post.id {\n\t\tpost.repliesAll.Set(pidkey, reply)\n\t} else {\n\t\tthread := board.GetThread(post.threadID)\n\t\tthread.repliesAll.Set(pidkey, reply)\n\t}\n\treturn reply\n}\n\nfunc (post *Post) Update(title string, body string) {\n\tpost.title = title\n\tpost.body = body\n\tpost.updatedAt = time.Now()\n}\n\nfunc (thread *Post) GetReply(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\treplyI, ok := thread.repliesAll.Get(pidkey)\n\tif !ok {\n\t\treturn nil\n\t} else {\n\t\treturn replyI.(*Post)\n\t}\n}\n\nfunc (post *Post) AddRepostTo(creator std.Address, title, body string, dst *Board) *Post {\n\tif !post.IsThread() {\n\t\tpanic(\"cannot repost non-thread post\")\n\t}\n\tpid := dst.incGetPostID()\n\tpidkey := postIDKey(pid)\n\trepost := newPost(dst, pid, creator, title, body, pid, post.id, post.board.id)\n\tdst.threads.Set(pidkey, repost)\n\tif !dst.IsPrivate() {\n\t\tbidkey := boardIDKey(dst.id)\n\t\tpost.reposts.Set(bidkey, pid)\n\t}\n\treturn repost\n}\n\nfunc (thread *Post) DeletePost(pid PostID) {\n\tif thread.id == pid {\n\t\tpanic(\"should not happen\")\n\t}\n\tpidkey := postIDKey(pid)\n\tpostI, removed := thread.repliesAll.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"post not found in thread\")\n\t}\n\tpost := postI.(*Post)\n\tif post.parentID != thread.id {\n\t\tparent := thread.GetReply(post.parentID)\n\t\tparent.replies.Remove(pidkey)\n\t} else {\n\t\tthread.replies.Remove(pidkey)\n\t}\n}\n\nfunc (post *Post) HasPermission(addr std.Address, perm Permission) bool {\n\tif post.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\t// post notes inherit permissions of the board.\n\treturn post.board.HasPermission(addr, perm)\n}\n\nfunc (post *Post) GetSummary() string {\n\treturn summaryOf(post.body, 80)\n}\n\nfunc (post *Post) GetURL() string {\n\tif post.IsThread() {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.id, 0)\n\t} else {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.threadID, post.id)\n\t}\n}\n\nfunc (post *Post) GetReplyFormURL() string {\n\treturn txlink.URL(\"CreateReply\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetRepostFormURL() string {\n\treturn txlink.URL(\"CreateRepost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetDeleteFormURL() string {\n\treturn txlink.URL(\"DeletePost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) RenderSummary() string {\n\tif post.repostBoard != 0 {\n\t\tdstBoard := getBoard(post.repostBoard)\n\t\tif dstBoard == nil {\n\t\t\tpanic(\"repostBoard does not exist\")\n\t\t}\n\t\tthread := dstBoard.GetThread(PostID(post.parentID))\n\t\tif thread == nil {\n\t\t\treturn \"reposted post does not exist\"\n\t\t}\n\t\treturn \"Repost: \" + post.GetSummary() + \"\\n\" + thread.RenderSummary()\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += \"## [\" + summaryOf(post.title, 80) + \"](\" + post.GetURL() + \")\\n\"\n\t\tstr += \"\\n\"\n\t}\n\tstr += post.GetSummary() + \"\\n\"\n\tstr += \"\\\\- \" + displayAddressMD(post.creator) + \",\"\n\tstr += \" [\" + post.createdAt.Format(\"2006-01-02 3:04pm MST\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\"\n\tstr += \" (\" + strconv.Itoa(post.replies.Size()) + \" replies)\"\n\tstr += \" (\" + strconv.Itoa(post.reposts.Size()) + \" reposts)\" + \"\\n\"\n\treturn str\n}\n\nfunc (post *Post) RenderPost(indent string, levels int) string {\n\tif post == nil {\n\t\treturn \"nil post\"\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += indent + \"# \" + post.title + \"\\n\"\n\t\tstr += indent + \"\\n\"\n\t}\n\tstr += indentBody(indent, post.body) + \"\\n\" // TODO: indent body lines.\n\tstr += indent + \"\\\\- \" + displayAddressMD(post.creator) + \", \"\n\tstr += \"[\" + post.createdAt.Format(\"2006-01-02 3:04pm (MST)\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[reply](\" + post.GetReplyFormURL() + \")]\"\n\tif post.IsThread() {\n\t\tstr += \" \\\\[[repost](\" + post.GetRepostFormURL() + \")]\"\n\t}\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\\n\"\n\tif levels \u003e 0 {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tpost.replies.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\t\tstr += indent + \"\\n\"\n\t\t\t\tstr += value.(*Post).RenderPost(indent+\"\u003e \", levels-1)\n\t\t\t\treturn false\n\t\t\t})\n\t\t}\n\t} else {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tstr += indent + \"\\n\"\n\t\t\tstr += indent + \"_[see all \" + strconv.Itoa(post.replies.Size()) + \" replies](\" + post.GetURL() + \")_\\n\"\n\t\t}\n\t}\n\treturn str\n}\n\n// render reply and link to context thread\nfunc (post *Post) RenderInner() string {\n\tif post.IsThread() {\n\t\tpanic(\"unexpected thread\")\n\t}\n\tthreadID := post.threadID\n\t// replyID := post.id\n\tparentID := post.parentID\n\tstr := \"\"\n\tstr += \"_[see thread](\" + post.board.GetURLFromThreadAndReplyID(\n\t\tthreadID, 0) + \")_\\n\\n\"\n\tthread := post.board.GetThread(post.threadID)\n\tvar parent *Post\n\tif thread.id == parentID {\n\t\tparent = thread\n\t} else {\n\t\tparent = thread.GetReply(parentID)\n\t}\n\tstr += parent.RenderPost(\"\", 0)\n\tstr += \"\\n\"\n\tstr += post.RenderPost(\"\u003e \", 5)\n\treturn str\n}\n"},{"name":"public.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetBoardIDFromName(name string) (BoardID, bool) {\n\tboardI, exists := gBoardsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn boardI.(*Board).id, true\n}\n\nfunc CreateBoard(name string) BoardID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tbid := incGetBoardID()\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tpanic(\"unauthorized\")\n\t}\n\turl := \"/r/demo/boards:\" + name\n\tboard := newBoard(bid, url, name, caller)\n\tbidkey := boardIDKey(bid)\n\tgBoards.Set(bidkey, board)\n\tgBoardsByName.Set(name, board)\n\treturn board.id\n}\n\nfunc checkAnonFee() bool {\n\tsent := std.GetOrigSend()\n\tanonFeeCoin := std.NewCoin(\"ugnot\", int64(gDefaultAnonFee))\n\tif len(sent) == 1 \u0026\u0026 sent[0].IsGTE(anonFeeCoin) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc CreateThread(bid BoardID, title string, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.AddThread(caller, title, body)\n\treturn thread.id\n}\n\nfunc CreateReply(bid BoardID, threadid, postid PostID, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\treply := thread.AddReply(caller, body)\n\t\treturn reply.id\n\t} else {\n\t\tpost := thread.GetReply(postid)\n\t\treply := post.AddReply(caller, body)\n\t\treturn reply.id\n\t}\n}\n\n// If dstBoard is private, does not ping back.\n// If board specified by bid is private, panics.\nfunc CreateRepost(bid BoardID, postid PostID, title string, body string, dstBoardID BoardID) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\t// TODO: allow with gDefaultAnonFee payment.\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"src board not exist\")\n\t}\n\tif board.IsPrivate() {\n\t\tpanic(\"cannot repost from a private board\")\n\t}\n\tdst := getBoard(dstBoardID)\n\tif dst == nil {\n\t\tpanic(\"dst board not exist\")\n\t}\n\tthread := board.GetThread(postid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\trepost := thread.AddRepostTo(caller, title, body, dst)\n\treturn repost.id\n}\n\nfunc DeletePost(bid BoardID, threadid, postid PostID, reason string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// delete thread\n\t\tif !thread.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tboard.DeleteThread(threadid)\n\t} else {\n\t\t// delete thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.DeletePost(postid)\n\t}\n}\n\nfunc EditPost(bid BoardID, threadid, postid PostID, title, body string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// edit thread\n\t\tif !thread.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.Update(title, body)\n\t} else {\n\t\t// edit thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tpost.Update(title, body)\n\t}\n}\n"},{"name":"render.gno","body":"package boards\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderBoard(bid BoardID) string {\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\treturn \"missing board\"\n\t}\n\treturn board.RenderBoard()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"These are all the boards of this realm:\\n\\n\"\n\t\tgBoards.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tboard := value.(*Board)\n\t\t\tstr += \" * [\" + board.url + \"](\" + board.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/boards:BOARD_NAME\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\treturn boardI.(*Board).RenderBoard()\n\t} else if len(parts) == 2 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\treturn thread.RenderPost(\"\", 5)\n\t} else if len(parts) == 3 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID/REPLY_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\trid, err := strconv.Atoi(parts[2])\n\t\tif err != nil {\n\t\t\treturn \"invalid reply id: \" + parts[2]\n\t\t}\n\t\treply := thread.GetReply(PostID(rid))\n\t\tif reply == nil {\n\t\t\treturn \"reply does not exist with id: \" + parts[2]\n\t\t}\n\t\treturn reply.RenderInner()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package boards\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\nimport (\n\t\"gno.land/r/demo/boards\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateThread(1, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_0_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 20000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n// ----------------------------------------\n// ## [Second Post (title)](/r/demo/boards:test_board/2)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/2) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)] (1 replies) (0 reposts)\n"},{"name":"z_10_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// boardId 2 not exist\n\tboards.DeletePost(2, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_10_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// pid of 2 not exist\n\tboards.DeletePost(bid, 2, 2, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_10_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, rid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// thread does not exist with id: 1\n"},{"name":"z_11_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// board 2 not exist\n\tboards.EditPost(2, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_11_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// thread 2 not exist\n\tboards.EditPost(bid, 2, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_11_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// post 2 not exist\n\tboards.EditPost(bid, pid, 2, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// post not exist\n"},{"name":"z_11_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, rid, \"\", \"Edited: First reply of the First post\\n\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Edited: First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n"},{"name":"z_11_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// # Edited: First Post in (title)\n//\n// Edited: Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n"},{"name":"z_12_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create a post via registered user\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_12_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing board\n\trid := boards.CreateRepost(5, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_12_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tboards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing thread\n\trid := boards.CreateRepost(bid1, 5, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_12_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing destination board\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", 5)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_12_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid1 boards.BoardID\n\tbid2 boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid1 = boards.CreateBoard(\"test_board1\")\n\tpid = boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 = boards.CreateBoard(\"test_board2\")\n}\n\nfunc main() {\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board2\"))\n}\n\n// Output:\n// 1\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=2)]\n//\n// ----------------------------------------\n// Repost: Check this out\n// ## [First Post (title)](/r/demo/boards:test_board1/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board1/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (1 reposts)\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar board *boards.Board\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t_ = boards.CreateBoard(\"test_board_1\")\n\t_ = boards.CreateBoard(\"test_board_2\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"\"))\n}\n\n// Output:\n// These are all the boards of this realm:\n//\n// * [/r/demo/boards:test_board_1](/r/demo/boards:test_board_1)\n// * [/r/demo/boards:test_board_2](/r/demo/boards:test_board_2)\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n}\n\nfunc main() {\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\")\n\tprintln(rid2)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// 4\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\",\n// \"ModTime\": \"123\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"68663c8895d37d479e417c11e21badfe21345c61\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:112\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3f34ac77289aa1d5f9a2f8b6d083138325816fb0\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"94a6665a44bac6ede7f3e3b87173e537b12f9532\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bc8e5b4e782a0bbc4ac9689681f119beb7b34d59\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9957eadbc91dd32f33b0d815e041a32dbdea0671\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131]={\n// \"Fields\": [\n// {\n// \"N\": \"AAAAgJSeXbo=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"N\": \"AbSNdvQQIhE=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"336074805fc853987abe6f7fe3ad97a6a6f3077a:2\"\n// },\n// \"Index\": \"182\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Board\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"Second reply of the second post\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f91e355bd19240f0f3350a7fa0e6a82b72225916\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9ee9c4117be283fc51ffcc5ecd65b75ecef5a9dd\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"eb768b0140a5fe95f9c58747f0960d647dacfd42\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"0fd3352422af0a56a77ef2c9e88f479054e3d51f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bed4afa8ffdbbf775451c947fc68b27a345ce32a\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"0\",\n// \"RefCount\": \"2\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c45bbd47a46681a63af973db0ec2180922e4a8ae\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\",\n// \"ModTime\": \"134\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"dc1f011553dc53e7a846049e08cc77fa35ea6a51\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:121\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"96b86b4585c7f1075d7794180a5581f72733a7ab\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"32274e1f28fb2b97d67a1262afd362d370de7faa\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c2cfd6aec36a462f35bf02e5bf4a127aa1bb7ac2\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"5cb875179e86d32c517322af7a323b2a5f3e6cc5\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85]={\n// \"Fields\": [\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"/r/demo/boards:test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a416a751c3a45a1e5cba11e737c51340b081e372\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:86\"\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"36299fccbc13f2a84c4629fad4cb940f0bd4b1c6\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:87\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"af6ed0268f99b7f369329094eb6dfaea7812708b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:88\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9809329dc1ddc5d3556f7a8fa3c2cebcbf65560b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ceae9a1c4ed28bb51062e6ccdccfad0caafd1c4f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/boards_test\"]\n"},{"name":"z_5_b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_c_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 101000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post (title)\n//\n// Body of the first post. (body)\n// \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Reply of the first post\n// \u003e \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n"},{"name":"z_5_d_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\n\t// create reply via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n"},{"name":"z_6_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tboards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n// \u003e\n// \u003e \u003e First reply of the first reply\n// \u003e \u003e\n// \u003e \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n"},{"name":"z_7_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc init() {\n\t// register\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t// create board and post\n\tbid := boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n"},{"name":"z_8_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\trid2 := boards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid)) + \"/\" + strconv.Itoa(int(rid2))))\n}\n\n// Output:\n// _[see thread](/r/demo/boards:test_board/2)_\n//\n// Reply of the second post\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// _[see all 1 replies](/r/demo/boards:test_board/2/3)_\n//\n// \u003e First reply of the first reply\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n"},{"name":"z_9_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar dstBoard boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tdstBoard = boards.CreateBoard(\"dst_board\")\n\n\tboards.CreateRepost(0, 0, \"First Post in (title)\", \"Body of the first post. (body)\", dstBoard)\n}\n\nfunc main() {\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_9_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tsrcBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tsrcBoard = boards.CreateBoard(\"first_board\")\n\tpid = boards.CreateThread(srcBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(srcBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", 0)\n}\n\nfunc main() {\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_9_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tfirstBoard boards.BoardID\n\tsecondBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tfirstBoard = boards.CreateBoard(\"first_board\")\n\tsecondBoard = boards.CreateBoard(\"second_board\")\n\tpid = boards.CreateThread(firstBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(firstBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", secondBoard)\n}\n\nfunc main() {\n\tprintln(boards.Render(\"second_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:second_board/1/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=2\u0026threadid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=2\u0026threadid=1\u0026postid=1)]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2aFY1uZlIvASMpjT7WmJExCtGP659ZX//ubMaPqqz9ng3Dn8/aCr3xdvmiXMgwJzOLl1jfduHkQU9gdojLE6Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"boards","path":"gno.land/r/demo/boards","files":[{"name":"README.md","body":"This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `-remote localhost:26657` here, that flag can be replaced\nwith `-remote gno.land:26657` if you have $GNOT on the testnet.\n(To use the testnet, also replace `-chainid dev` with `-chainid portal-loop` .)\n\n### Build `gnokey` (and other tools).\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd gno/gno.land\nmake build\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add -recover KEYNAME\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\nTake note of your `addr` which looks something like `g17sphqax3kasjptdkmuqvn740u8dhtx4kxl6ljf` .\nYou will use this as your `ACCOUNT_ADDR`.\n\n## Interact with the blockchain.\n\n### Add $GNOT for your account.\n\nBefore starting the `gnoland` node for the first time, your new account can be given $GNOT in the node genesis.\nEdit the file `gno.land/genesis/genesis_balances.txt` and add the following line (simlar to the others), using\nyour `ACCOUNT_ADDR` and `KEYNAME`\n\n`ACCOUNT_ADDR=10000000000ugnot # @KEYNAME`\n\n### Alternative: Run a faucet to add $GNOT.\n\nInstead of editing `gno.land/genesis/genesis_balances.txt`, a more general solution (with more steps)\nis to run a local \"faucet\" and use the web browser to add $GNOT. (This can be done at any time.)\nSee this page: https://github.com/gnolang/gno/blob/master/contribs/gnofaucet/README.md\n\n\n### Start the `gnoland` node.\n\n```bash\n./build/gnoland start\n```\n\nNOTE: The node already has the \"boards\" realm.\n\nLeave this running in the terminal. In a new terminal, cd to the same folder `gno/gno.land` .\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR -remote localhost:26657\n```\n\n### Register a board username with a smart contract call.\n\nThe `USERNAME` for posting can different than your `KEYNAME`. It is internally linked to your `ACCOUNT_ADDR`. It must be at least 6 characters, lowercase alphanumeric with underscore.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/users\" -func \"Register\" -args \"\" -args \"USERNAME\" -args \"Profile description\" -gas-fee \"10000000ugnot\" -gas-wanted \"2000000\" -send \"200000000ugnot\" -broadcast -chainid dev -remote 127.0.0.1:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/users$help\u0026func=Register\n\n### Create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateBoard\" -args \"BOARDNAME\" -gas-fee \"1000000ugnot\" -gas-wanted \"10000000\" -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" -data 'gno.land/r/demo/boards.GetBoardIDFromName(\"BOARDNAME\")' -remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateThread\" -args BOARD_ID -args \"Hello gno.land\" -args \"Text of the post\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateReply\" -args BOARD_ID -args \"1\" -args \"1\" -args \"Nice to meet you too.\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:BOARDNAME/1\" -remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:gnolang\"\n```\n## View the board in the browser.\n\n### Start the web server.\n\n```bash\n./build/gnoweb\n```\n\nThis should print something like `Running on http://127.0.0.1:8888` . Leave this running in the terminal.\n\n### View in the browser\n\nIn your browser, navigate to the printed address http://127.0.0.1:8888 .\nTo see you post, click on the package `/r/demo/boards` .\n"},{"name":"board.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Board\n\ntype BoardID uint64\n\nfunc (bid BoardID) String() string {\n\treturn strconv.Itoa(int(bid))\n}\n\ntype Board struct {\n\tid BoardID // only set for public boards.\n\turl string\n\tname string\n\tcreator std.Address\n\tthreads avl.Tree // Post.id -\u003e *Post\n\tpostsCtr uint64 // increments Post.id\n\tcreatedAt time.Time\n\tdeleted avl.Tree // TODO reserved for fast-delete.\n}\n\nfunc newBoard(id BoardID, url string, name string, creator std.Address) *Board {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\texists := gBoardsByName.Has(name)\n\tif exists {\n\t\tpanic(\"board already exists\")\n\t}\n\treturn \u0026Board{\n\t\tid: id,\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tthreads: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t\tdeleted: avl.Tree{},\n\t}\n}\n\n/* TODO support this once we figure out how to ensure URL correctness.\n// A private board is not tracked by gBoards*,\n// but must be persisted by the caller's realm.\n// Private boards have 0 id and does not ping\n// back the remote board on reposts.\nfunc NewPrivateBoard(url string, name string, creator std.Address) *Board {\n\treturn newBoard(0, url, name, creator)\n}\n*/\n\nfunc (board *Board) IsPrivate() bool {\n\treturn board.id == 0\n}\n\nfunc (board *Board) GetThread(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\tpostI, exists := board.threads.Get(pidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn postI.(*Post)\n}\n\nfunc (board *Board) AddThread(creator std.Address, title string, body string) *Post {\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\tthread := newPost(board, pid, creator, title, body, pid, 0, 0)\n\tboard.threads.Set(pidkey, thread)\n\treturn thread\n}\n\n// NOTE: this can be potentially very expensive for threads with many replies.\n// TODO: implement optional fast-delete where thread is simply moved.\nfunc (board *Board) DeleteThread(pid PostID) {\n\tpidkey := postIDKey(pid)\n\t_, removed := board.threads.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"thread does not exist with id \" + pid.String())\n\t}\n}\n\nfunc (board *Board) HasPermission(addr std.Address, perm Permission) bool {\n\tif board.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn false\n}\n\n// Renders the board for display suitable as plaintext in\n// console. This is suitable for demonstration or tests,\n// but not for prod.\nfunc (board *Board) RenderBoard() string {\n\tstr := \"\"\n\tstr += \"\\\\[[post](\" + board.GetPostFormURL() + \")]\\n\\n\"\n\tif board.threads.Size() \u003e 0 {\n\t\tboard.threads.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tif str != \"\" {\n\t\t\t\tstr += \"----------------------------------------\\n\"\n\t\t\t}\n\t\t\tstr += value.(*Post).RenderSummary() + \"\\n\"\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\nfunc (board *Board) incGetPostID() PostID {\n\tboard.postsCtr++\n\treturn PostID(board.postsCtr)\n}\n\nfunc (board *Board) GetURLFromThreadAndReplyID(threadID, replyID PostID) string {\n\tif replyID == 0 {\n\t\treturn board.url + \"/\" + threadID.String()\n\t} else {\n\t\treturn board.url + \"/\" + threadID.String() + \"/\" + replyID.String()\n\t}\n}\n\nfunc (board *Board) GetPostFormURL() string {\n\treturn txlink.URL(\"CreateThread\", \"bid\", board.id.String())\n}\n"},{"name":"boards.gno","body":"package boards\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgBoards avl.Tree // id -\u003e *Board\n\tgBoardsCtr int // increments Board.id\n\tgBoardsByName avl.Tree // name -\u003e *Board\n\tgDefaultAnonFee = 100000000 // minimum fee required if anonymous\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"misc.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getBoard(bid BoardID) *Board {\n\tbidkey := boardIDKey(bid)\n\tboard_, exists := gBoards.Get(bidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\tboard := board_.(*Board)\n\treturn board\n}\n\nfunc incGetBoardID() BoardID {\n\tgBoardsCtr++\n\treturn BoardID(gBoardsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\" \", length-len(str)) + str\n\t}\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\"0\", length-len(str)) + str\n\t}\n}\n\nfunc boardIDKey(bid BoardID) string {\n\treturn padZero(uint64(bid), 10)\n}\n\nfunc postIDKey(pid PostID) string {\n\treturn padZero(uint64(pid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t} else {\n\t\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n\t}\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"\"\n\t}\n\treturn user.Name\n}\n"},{"name":"post.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Post\n\n// NOTE: a PostID is relative to the board.\ntype PostID uint64\n\nfunc (pid PostID) String() string {\n\treturn strconv.Itoa(int(pid))\n}\n\n// A Post is a \"thread\" or a \"reply\" depending on context.\n// A thread is a Post of a Board that holds other replies.\ntype Post struct {\n\tboard *Board\n\tid PostID\n\tcreator std.Address\n\ttitle string // optional\n\tbody string\n\treplies avl.Tree // Post.id -\u003e *Post\n\trepliesAll avl.Tree // Post.id -\u003e *Post (all replies, for top-level posts)\n\treposts avl.Tree // Board.id -\u003e Post.id\n\tthreadID PostID // original Post.id\n\tparentID PostID // parent Post.id (if reply or repost)\n\trepostBoard BoardID // original Board.id (if repost)\n\tcreatedAt time.Time\n\tupdatedAt time.Time\n}\n\nfunc newPost(board *Board, id PostID, creator std.Address, title, body string, threadID, parentID PostID, repostBoard BoardID) *Post {\n\treturn \u0026Post{\n\t\tboard: board,\n\t\tid: id,\n\t\tcreator: creator,\n\t\ttitle: title,\n\t\tbody: body,\n\t\treplies: avl.Tree{},\n\t\trepliesAll: avl.Tree{},\n\t\treposts: avl.Tree{},\n\t\tthreadID: threadID,\n\t\tparentID: parentID,\n\t\trepostBoard: repostBoard,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (post *Post) IsThread() bool {\n\treturn post.parentID == 0\n}\n\nfunc (post *Post) GetPostID() PostID {\n\treturn post.id\n}\n\nfunc (post *Post) AddReply(creator std.Address, body string) *Post {\n\tboard := post.board\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\treply := newPost(board, pid, creator, \"\", body, post.threadID, post.id, 0)\n\tpost.replies.Set(pidkey, reply)\n\tif post.threadID == post.id {\n\t\tpost.repliesAll.Set(pidkey, reply)\n\t} else {\n\t\tthread := board.GetThread(post.threadID)\n\t\tthread.repliesAll.Set(pidkey, reply)\n\t}\n\treturn reply\n}\n\nfunc (post *Post) Update(title string, body string) {\n\tpost.title = title\n\tpost.body = body\n\tpost.updatedAt = time.Now()\n}\n\nfunc (thread *Post) GetReply(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\treplyI, ok := thread.repliesAll.Get(pidkey)\n\tif !ok {\n\t\treturn nil\n\t} else {\n\t\treturn replyI.(*Post)\n\t}\n}\n\nfunc (post *Post) AddRepostTo(creator std.Address, title, body string, dst *Board) *Post {\n\tif !post.IsThread() {\n\t\tpanic(\"cannot repost non-thread post\")\n\t}\n\tpid := dst.incGetPostID()\n\tpidkey := postIDKey(pid)\n\trepost := newPost(dst, pid, creator, title, body, pid, post.id, post.board.id)\n\tdst.threads.Set(pidkey, repost)\n\tif !dst.IsPrivate() {\n\t\tbidkey := boardIDKey(dst.id)\n\t\tpost.reposts.Set(bidkey, pid)\n\t}\n\treturn repost\n}\n\nfunc (thread *Post) DeletePost(pid PostID) {\n\tif thread.id == pid {\n\t\tpanic(\"should not happen\")\n\t}\n\tpidkey := postIDKey(pid)\n\tpostI, removed := thread.repliesAll.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"post not found in thread\")\n\t}\n\tpost := postI.(*Post)\n\tif post.parentID != thread.id {\n\t\tparent := thread.GetReply(post.parentID)\n\t\tparent.replies.Remove(pidkey)\n\t} else {\n\t\tthread.replies.Remove(pidkey)\n\t}\n}\n\nfunc (post *Post) HasPermission(addr std.Address, perm Permission) bool {\n\tif post.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\t// post notes inherit permissions of the board.\n\treturn post.board.HasPermission(addr, perm)\n}\n\nfunc (post *Post) GetSummary() string {\n\treturn summaryOf(post.body, 80)\n}\n\nfunc (post *Post) GetURL() string {\n\tif post.IsThread() {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.id, 0)\n\t} else {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.threadID, post.id)\n\t}\n}\n\nfunc (post *Post) GetReplyFormURL() string {\n\treturn txlink.URL(\"CreateReply\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetRepostFormURL() string {\n\treturn txlink.URL(\"CreateRepost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetDeleteFormURL() string {\n\treturn txlink.URL(\"DeletePost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) RenderSummary() string {\n\tif post.repostBoard != 0 {\n\t\tdstBoard := getBoard(post.repostBoard)\n\t\tif dstBoard == nil {\n\t\t\tpanic(\"repostBoard does not exist\")\n\t\t}\n\t\tthread := dstBoard.GetThread(PostID(post.parentID))\n\t\tif thread == nil {\n\t\t\treturn \"reposted post does not exist\"\n\t\t}\n\t\treturn \"Repost: \" + post.GetSummary() + \"\\n\" + thread.RenderSummary()\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += \"## [\" + summaryOf(post.title, 80) + \"](\" + post.GetURL() + \")\\n\"\n\t\tstr += \"\\n\"\n\t}\n\tstr += post.GetSummary() + \"\\n\"\n\tstr += \"\\\\- \" + displayAddressMD(post.creator) + \",\"\n\tstr += \" [\" + post.createdAt.Format(\"2006-01-02 3:04pm MST\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\"\n\tstr += \" (\" + strconv.Itoa(post.replies.Size()) + \" replies)\"\n\tstr += \" (\" + strconv.Itoa(post.reposts.Size()) + \" reposts)\" + \"\\n\"\n\treturn str\n}\n\nfunc (post *Post) RenderPost(indent string, levels int) string {\n\tif post == nil {\n\t\treturn \"nil post\"\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += indent + \"# \" + post.title + \"\\n\"\n\t\tstr += indent + \"\\n\"\n\t}\n\tstr += indentBody(indent, post.body) + \"\\n\" // TODO: indent body lines.\n\tstr += indent + \"\\\\- \" + displayAddressMD(post.creator) + \", \"\n\tstr += \"[\" + post.createdAt.Format(\"2006-01-02 3:04pm (MST)\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[reply](\" + post.GetReplyFormURL() + \")]\"\n\tif post.IsThread() {\n\t\tstr += \" \\\\[[repost](\" + post.GetRepostFormURL() + \")]\"\n\t}\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\\n\"\n\tif levels \u003e 0 {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tpost.replies.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\t\tstr += indent + \"\\n\"\n\t\t\t\tstr += value.(*Post).RenderPost(indent+\"\u003e \", levels-1)\n\t\t\t\treturn false\n\t\t\t})\n\t\t}\n\t} else {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tstr += indent + \"\\n\"\n\t\t\tstr += indent + \"_[see all \" + strconv.Itoa(post.replies.Size()) + \" replies](\" + post.GetURL() + \")_\\n\"\n\t\t}\n\t}\n\treturn str\n}\n\n// render reply and link to context thread\nfunc (post *Post) RenderInner() string {\n\tif post.IsThread() {\n\t\tpanic(\"unexpected thread\")\n\t}\n\tthreadID := post.threadID\n\t// replyID := post.id\n\tparentID := post.parentID\n\tstr := \"\"\n\tstr += \"_[see thread](\" + post.board.GetURLFromThreadAndReplyID(\n\t\tthreadID, 0) + \")_\\n\\n\"\n\tthread := post.board.GetThread(post.threadID)\n\tvar parent *Post\n\tif thread.id == parentID {\n\t\tparent = thread\n\t} else {\n\t\tparent = thread.GetReply(parentID)\n\t}\n\tstr += parent.RenderPost(\"\", 0)\n\tstr += \"\\n\"\n\tstr += post.RenderPost(\"\u003e \", 5)\n\treturn str\n}\n"},{"name":"public.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetBoardIDFromName(name string) (BoardID, bool) {\n\tboardI, exists := gBoardsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn boardI.(*Board).id, true\n}\n\nfunc CreateBoard(name string) BoardID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tbid := incGetBoardID()\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tpanic(\"unauthorized\")\n\t}\n\turl := \"/r/demo/boards:\" + name\n\tboard := newBoard(bid, url, name, caller)\n\tbidkey := boardIDKey(bid)\n\tgBoards.Set(bidkey, board)\n\tgBoardsByName.Set(name, board)\n\treturn board.id\n}\n\nfunc checkAnonFee() bool {\n\tsent := std.GetOrigSend()\n\tanonFeeCoin := std.NewCoin(\"ugnot\", int64(gDefaultAnonFee))\n\tif len(sent) == 1 \u0026\u0026 sent[0].IsGTE(anonFeeCoin) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc CreateThread(bid BoardID, title string, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.AddThread(caller, title, body)\n\treturn thread.id\n}\n\nfunc CreateReply(bid BoardID, threadid, postid PostID, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\treply := thread.AddReply(caller, body)\n\t\treturn reply.id\n\t} else {\n\t\tpost := thread.GetReply(postid)\n\t\treply := post.AddReply(caller, body)\n\t\treturn reply.id\n\t}\n}\n\n// If dstBoard is private, does not ping back.\n// If board specified by bid is private, panics.\nfunc CreateRepost(bid BoardID, postid PostID, title string, body string, dstBoardID BoardID) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\t// TODO: allow with gDefaultAnonFee payment.\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"src board not exist\")\n\t}\n\tif board.IsPrivate() {\n\t\tpanic(\"cannot repost from a private board\")\n\t}\n\tdst := getBoard(dstBoardID)\n\tif dst == nil {\n\t\tpanic(\"dst board not exist\")\n\t}\n\tthread := board.GetThread(postid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\trepost := thread.AddRepostTo(caller, title, body, dst)\n\treturn repost.id\n}\n\nfunc DeletePost(bid BoardID, threadid, postid PostID, reason string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// delete thread\n\t\tif !thread.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tboard.DeleteThread(threadid)\n\t} else {\n\t\t// delete thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.DeletePost(postid)\n\t}\n}\n\nfunc EditPost(bid BoardID, threadid, postid PostID, title, body string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// edit thread\n\t\tif !thread.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.Update(title, body)\n\t} else {\n\t\t// edit thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tpost.Update(title, body)\n\t}\n}\n"},{"name":"render.gno","body":"package boards\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderBoard(bid BoardID) string {\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\treturn \"missing board\"\n\t}\n\treturn board.RenderBoard()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"These are all the boards of this realm:\\n\\n\"\n\t\tgBoards.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tboard := value.(*Board)\n\t\t\tstr += \" * [\" + board.url + \"](\" + board.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/boards:BOARD_NAME\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\treturn boardI.(*Board).RenderBoard()\n\t} else if len(parts) == 2 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\treturn thread.RenderPost(\"\", 5)\n\t} else if len(parts) == 3 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID/REPLY_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\trid, err := strconv.Atoi(parts[2])\n\t\tif err != nil {\n\t\t\treturn \"invalid reply id: \" + parts[2]\n\t\t}\n\t\treply := thread.GetReply(PostID(rid))\n\t\tif reply == nil {\n\t\t\treturn \"reply does not exist with id: \" + parts[2]\n\t\t}\n\t\treturn reply.RenderInner()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package boards\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\nimport (\n\t\"gno.land/r/demo/boards\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateThread(1, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_0_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 20000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n// ----------------------------------------\n// ## [Second Post (title)](/r/demo/boards:test_board/2)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/2) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)] (1 replies) (0 reposts)\n//\n//\n"},{"name":"z_10_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// boardId 2 not exist\n\tboards.DeletePost(2, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_10_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// pid of 2 not exist\n\tboards.DeletePost(bid, 2, 2, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_10_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, rid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// thread does not exist with id: 1\n"},{"name":"z_11_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// board 2 not exist\n\tboards.EditPost(2, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_11_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// thread 2 not exist\n\tboards.EditPost(bid, 2, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_11_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// post 2 not exist\n\tboards.EditPost(bid, pid, 2, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// post not exist\n"},{"name":"z_11_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, rid, \"\", \"Edited: First reply of the First post\\n\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Edited: First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_11_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// # Edited: First Post in (title)\n//\n// Edited: Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_12_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create a post via registered user\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_12_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing board\n\trid := boards.CreateRepost(5, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_12_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tboards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing thread\n\trid := boards.CreateRepost(bid1, 5, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_12_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing destination board\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", 5)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_12_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid1 boards.BoardID\n\tbid2 boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid1 = boards.CreateBoard(\"test_board1\")\n\tpid = boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 = boards.CreateBoard(\"test_board2\")\n}\n\nfunc main() {\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board2\"))\n}\n\n// Output:\n// 1\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=2)]\n//\n// ----------------------------------------\n// Repost: Check this out\n// ## [First Post (title)](/r/demo/boards:test_board1/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board1/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (1 reposts)\n//\n//\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar board *boards.Board\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t_ = boards.CreateBoard(\"test_board_1\")\n\t_ = boards.CreateBoard(\"test_board_2\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"\"))\n}\n\n// Output:\n// These are all the boards of this realm:\n//\n// * [/r/demo/boards:test_board_1](/r/demo/boards:test_board_1)\n// * [/r/demo/boards:test_board_2](/r/demo/boards:test_board_2)\n//\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n}\n\nfunc main() {\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\")\n\tprintln(rid2)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// 4\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\",\n// \"ModTime\": \"123\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"68663c8895d37d479e417c11e21badfe21345c61\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:112\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3f34ac77289aa1d5f9a2f8b6d083138325816fb0\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"94a6665a44bac6ede7f3e3b87173e537b12f9532\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bc8e5b4e782a0bbc4ac9689681f119beb7b34d59\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9957eadbc91dd32f33b0d815e041a32dbdea0671\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131]={\n// \"Fields\": [\n// {\n// \"N\": \"AAAAgJSeXbo=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"N\": \"AbSNdvQQIhE=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"336074805fc853987abe6f7fe3ad97a6a6f3077a:2\"\n// },\n// \"Index\": \"182\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Board\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"Second reply of the second post\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f91e355bd19240f0f3350a7fa0e6a82b72225916\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9ee9c4117be283fc51ffcc5ecd65b75ecef5a9dd\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"eb768b0140a5fe95f9c58747f0960d647dacfd42\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"0fd3352422af0a56a77ef2c9e88f479054e3d51f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bed4afa8ffdbbf775451c947fc68b27a345ce32a\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"0\",\n// \"RefCount\": \"2\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c45bbd47a46681a63af973db0ec2180922e4a8ae\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\",\n// \"ModTime\": \"134\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"dc1f011553dc53e7a846049e08cc77fa35ea6a51\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:121\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"96b86b4585c7f1075d7794180a5581f72733a7ab\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"32274e1f28fb2b97d67a1262afd362d370de7faa\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c2cfd6aec36a462f35bf02e5bf4a127aa1bb7ac2\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"5cb875179e86d32c517322af7a323b2a5f3e6cc5\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85]={\n// \"Fields\": [\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"/r/demo/boards:test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a416a751c3a45a1e5cba11e737c51340b081e372\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:86\"\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"36299fccbc13f2a84c4629fad4cb940f0bd4b1c6\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:87\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"af6ed0268f99b7f369329094eb6dfaea7812708b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:88\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9809329dc1ddc5d3556f7a8fa3c2cebcbf65560b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ceae9a1c4ed28bb51062e6ccdccfad0caafd1c4f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/boards_test\"]\n"},{"name":"z_5_b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_c_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 101000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post (title)\n//\n// Body of the first post. (body)\n// \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Reply of the first post\n// \u003e \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_5_d_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\n\t// create reply via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_6_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tboards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n// \u003e\n// \u003e \u003e First reply of the first reply\n// \u003e \u003e\n// \u003e \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_7_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc init() {\n\t// register\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t// create board and post\n\tbid := boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n//\n"},{"name":"z_8_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\trid2 := boards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid)) + \"/\" + strconv.Itoa(int(rid2))))\n}\n\n// Output:\n// _[see thread](/r/demo/boards:test_board/2)_\n//\n// Reply of the second post\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// _[see all 1 replies](/r/demo/boards:test_board/2/3)_\n//\n// \u003e First reply of the first reply\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n"},{"name":"z_9_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar dstBoard boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tdstBoard = boards.CreateBoard(\"dst_board\")\n\n\tboards.CreateRepost(0, 0, \"First Post in (title)\", \"Body of the first post. (body)\", dstBoard)\n}\n\nfunc main() {\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_9_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tsrcBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tsrcBoard = boards.CreateBoard(\"first_board\")\n\tpid = boards.CreateThread(srcBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(srcBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", 0)\n}\n\nfunc main() {\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_9_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tfirstBoard boards.BoardID\n\tsecondBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tfirstBoard = boards.CreateBoard(\"first_board\")\n\tsecondBoard = boards.CreateBoard(\"second_board\")\n\tpid = boards.CreateThread(firstBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(firstBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", secondBoard)\n}\n\nfunc main() {\n\tprintln(boards.Render(\"second_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:second_board/1/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=2\u0026threadid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=2\u0026threadid=1\u0026postid=1)]\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E9H/iZtrvWBWQ8WRdxVt1/sCc9d1og6gqZezM+7FVz6/3znYr9hDIV4XGgvlK0LbMVwO4Y5lnudtJuj5aIt+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"boards","path":"gno.land/r/demo/boards","files":[{"name":"README.md","body":"This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `-remote localhost:26657` here, that flag can be replaced\nwith `-remote gno.land:26657` if you have $GNOT on the testnet.\n(To use the testnet, also replace `-chainid dev` with `-chainid portal-loop` .)\n\n### Build `gnokey` (and other tools).\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd gno/gno.land\nmake build\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add -recover KEYNAME\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\nTake note of your `addr` which looks something like `g17sphqax3kasjptdkmuqvn740u8dhtx4kxl6ljf` .\nYou will use this as your `ACCOUNT_ADDR`.\n\n## Interact with the blockchain.\n\n### Add $GNOT for your account.\n\nBefore starting the `gnoland` node for the first time, your new account can be given $GNOT in the node genesis.\nEdit the file `gno.land/genesis/genesis_balances.txt` and add the following line (simlar to the others), using\nyour `ACCOUNT_ADDR` and `KEYNAME`\n\n`ACCOUNT_ADDR=10000000000ugnot # @KEYNAME`\n\n### Alternative: Run a faucet to add $GNOT.\n\nInstead of editing `gno.land/genesis/genesis_balances.txt`, a more general solution (with more steps)\nis to run a local \"faucet\" and use the web browser to add $GNOT. (This can be done at any time.)\nSee this page: https://github.com/gnolang/gno/blob/master/contribs/gnofaucet/README.md\n\n\n### Start the `gnoland` node.\n\n```bash\n./build/gnoland start\n```\n\nNOTE: The node already has the \"boards\" realm.\n\nLeave this running in the terminal. In a new terminal, cd to the same folder `gno/gno.land` .\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR -remote localhost:26657\n```\n\n### Register a board username with a smart contract call.\n\nThe `USERNAME` for posting can different than your `KEYNAME`. It is internally linked to your `ACCOUNT_ADDR`. It must be at least 6 characters, lowercase alphanumeric with underscore.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/users\" -func \"Register\" -args \"\" -args \"USERNAME\" -args \"Profile description\" -gas-fee \"10000000ugnot\" -gas-wanted \"2000000\" -send \"200000000ugnot\" -broadcast -chainid dev -remote 127.0.0.1:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/users$help\u0026func=Register\n\n### Create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateBoard\" -args \"BOARDNAME\" -gas-fee \"1000000ugnot\" -gas-wanted \"10000000\" -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" -data 'gno.land/r/demo/boards.GetBoardIDFromName(\"BOARDNAME\")' -remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateThread\" -args BOARD_ID -args \"Hello gno.land\" -args \"Text of the post\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateReply\" -args BOARD_ID -args \"1\" -args \"1\" -args \"Nice to meet you too.\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:BOARDNAME/1\" -remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:gnolang\"\n```\n## View the board in the browser.\n\n### Start the web server.\n\n```bash\n./build/gnoweb\n```\n\nThis should print something like `Running on http://127.0.0.1:8888` . Leave this running in the terminal.\n\n### View in the browser\n\nIn your browser, navigate to the printed address http://127.0.0.1:8888 .\nTo see you post, click on the package `/r/demo/boards` .\n"},{"name":"board.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Board\n\ntype BoardID uint64\n\nfunc (bid BoardID) String() string {\n\treturn strconv.Itoa(int(bid))\n}\n\ntype Board struct {\n\tid BoardID // only set for public boards.\n\turl string\n\tname string\n\tcreator std.Address\n\tthreads avl.Tree // Post.id -\u003e *Post\n\tpostsCtr uint64 // increments Post.id\n\tcreatedAt time.Time\n\tdeleted avl.Tree // TODO reserved for fast-delete.\n}\n\nfunc newBoard(id BoardID, url string, name string, creator std.Address) *Board {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\texists := gBoardsByName.Has(name)\n\tif exists {\n\t\tpanic(\"board already exists\")\n\t}\n\treturn \u0026Board{\n\t\tid: id,\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tthreads: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t\tdeleted: avl.Tree{},\n\t}\n}\n\n/* TODO support this once we figure out how to ensure URL correctness.\n// A private board is not tracked by gBoards*,\n// but must be persisted by the caller's realm.\n// Private boards have 0 id and does not ping\n// back the remote board on reposts.\nfunc NewPrivateBoard(url string, name string, creator std.Address) *Board {\n\treturn newBoard(0, url, name, creator)\n}\n*/\n\nfunc (board *Board) IsPrivate() bool {\n\treturn board.id == 0\n}\n\nfunc (board *Board) GetThread(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\tpostI, exists := board.threads.Get(pidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn postI.(*Post)\n}\n\nfunc (board *Board) AddThread(creator std.Address, title string, body string) *Post {\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\tthread := newPost(board, pid, creator, title, body, pid, 0, 0)\n\tboard.threads.Set(pidkey, thread)\n\treturn thread\n}\n\n// NOTE: this can be potentially very expensive for threads with many replies.\n// TODO: implement optional fast-delete where thread is simply moved.\nfunc (board *Board) DeleteThread(pid PostID) {\n\tpidkey := postIDKey(pid)\n\t_, removed := board.threads.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"thread does not exist with id \" + pid.String())\n\t}\n}\n\nfunc (board *Board) HasPermission(addr std.Address, perm Permission) bool {\n\tif board.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn false\n}\n\n// Renders the board for display suitable as plaintext in\n// console. This is suitable for demonstration or tests,\n// but not for prod.\nfunc (board *Board) RenderBoard() string {\n\tstr := \"\"\n\tstr += \"\\\\[[post](\" + board.GetPostFormURL() + \")]\\n\\n\"\n\tif board.threads.Size() \u003e 0 {\n\t\tboard.threads.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tif str != \"\" {\n\t\t\t\tstr += \"----------------------------------------\\n\"\n\t\t\t}\n\t\t\tstr += value.(*Post).RenderSummary() + \"\\n\"\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\nfunc (board *Board) incGetPostID() PostID {\n\tboard.postsCtr++\n\treturn PostID(board.postsCtr)\n}\n\nfunc (board *Board) GetURLFromThreadAndReplyID(threadID, replyID PostID) string {\n\tif replyID == 0 {\n\t\treturn board.url + \"/\" + threadID.String()\n\t} else {\n\t\treturn board.url + \"/\" + threadID.String() + \"/\" + replyID.String()\n\t}\n}\n\nfunc (board *Board) GetPostFormURL() string {\n\treturn txlink.URL(\"CreateThread\", \"bid\", board.id.String())\n}\n"},{"name":"boards.gno","body":"package boards\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgBoards avl.Tree // id -\u003e *Board\n\tgBoardsCtr int // increments Board.id\n\tgBoardsByName avl.Tree // name -\u003e *Board\n\tgDefaultAnonFee = 100000000 // minimum fee required if anonymous\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"misc.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getBoard(bid BoardID) *Board {\n\tbidkey := boardIDKey(bid)\n\tboard_, exists := gBoards.Get(bidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\tboard := board_.(*Board)\n\treturn board\n}\n\nfunc incGetBoardID() BoardID {\n\tgBoardsCtr++\n\treturn BoardID(gBoardsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\" \", length-len(str)) + str\n\t}\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\"0\", length-len(str)) + str\n\t}\n}\n\nfunc boardIDKey(bid BoardID) string {\n\treturn padZero(uint64(bid), 10)\n}\n\nfunc postIDKey(pid PostID) string {\n\treturn padZero(uint64(pid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t} else {\n\t\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n\t}\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"\"\n\t}\n\treturn user.Name\n}\n"},{"name":"post.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Post\n\n// NOTE: a PostID is relative to the board.\ntype PostID uint64\n\nfunc (pid PostID) String() string {\n\treturn strconv.Itoa(int(pid))\n}\n\n// A Post is a \"thread\" or a \"reply\" depending on context.\n// A thread is a Post of a Board that holds other replies.\ntype Post struct {\n\tboard *Board\n\tid PostID\n\tcreator std.Address\n\ttitle string // optional\n\tbody string\n\treplies avl.Tree // Post.id -\u003e *Post\n\trepliesAll avl.Tree // Post.id -\u003e *Post (all replies, for top-level posts)\n\treposts avl.Tree // Board.id -\u003e Post.id\n\tthreadID PostID // original Post.id\n\tparentID PostID // parent Post.id (if reply or repost)\n\trepostBoard BoardID // original Board.id (if repost)\n\tcreatedAt time.Time\n\tupdatedAt time.Time\n}\n\nfunc newPost(board *Board, id PostID, creator std.Address, title, body string, threadID, parentID PostID, repostBoard BoardID) *Post {\n\treturn \u0026Post{\n\t\tboard: board,\n\t\tid: id,\n\t\tcreator: creator,\n\t\ttitle: title,\n\t\tbody: body,\n\t\treplies: avl.Tree{},\n\t\trepliesAll: avl.Tree{},\n\t\treposts: avl.Tree{},\n\t\tthreadID: threadID,\n\t\tparentID: parentID,\n\t\trepostBoard: repostBoard,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (post *Post) IsThread() bool {\n\treturn post.parentID == 0\n}\n\nfunc (post *Post) GetPostID() PostID {\n\treturn post.id\n}\n\nfunc (post *Post) AddReply(creator std.Address, body string) *Post {\n\tboard := post.board\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\treply := newPost(board, pid, creator, \"\", body, post.threadID, post.id, 0)\n\tpost.replies.Set(pidkey, reply)\n\tif post.threadID == post.id {\n\t\tpost.repliesAll.Set(pidkey, reply)\n\t} else {\n\t\tthread := board.GetThread(post.threadID)\n\t\tthread.repliesAll.Set(pidkey, reply)\n\t}\n\treturn reply\n}\n\nfunc (post *Post) Update(title string, body string) {\n\tpost.title = title\n\tpost.body = body\n\tpost.updatedAt = time.Now()\n}\n\nfunc (thread *Post) GetReply(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\treplyI, ok := thread.repliesAll.Get(pidkey)\n\tif !ok {\n\t\treturn nil\n\t} else {\n\t\treturn replyI.(*Post)\n\t}\n}\n\nfunc (post *Post) AddRepostTo(creator std.Address, title, body string, dst *Board) *Post {\n\tif !post.IsThread() {\n\t\tpanic(\"cannot repost non-thread post\")\n\t}\n\tpid := dst.incGetPostID()\n\tpidkey := postIDKey(pid)\n\trepost := newPost(dst, pid, creator, title, body, pid, post.id, post.board.id)\n\tdst.threads.Set(pidkey, repost)\n\tif !dst.IsPrivate() {\n\t\tbidkey := boardIDKey(dst.id)\n\t\tpost.reposts.Set(bidkey, pid)\n\t}\n\treturn repost\n}\n\nfunc (thread *Post) DeletePost(pid PostID) {\n\tif thread.id == pid {\n\t\tpanic(\"should not happen\")\n\t}\n\tpidkey := postIDKey(pid)\n\tpostI, removed := thread.repliesAll.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"post not found in thread\")\n\t}\n\tpost := postI.(*Post)\n\tif post.parentID != thread.id {\n\t\tparent := thread.GetReply(post.parentID)\n\t\tparent.replies.Remove(pidkey)\n\t} else {\n\t\tthread.replies.Remove(pidkey)\n\t}\n}\n\nfunc (post *Post) HasPermission(addr std.Address, perm Permission) bool {\n\tif post.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\t// post notes inherit permissions of the board.\n\treturn post.board.HasPermission(addr, perm)\n}\n\nfunc (post *Post) GetSummary() string {\n\treturn summaryOf(post.body, 80)\n}\n\nfunc (post *Post) GetURL() string {\n\tif post.IsThread() {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.id, 0)\n\t} else {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.threadID, post.id)\n\t}\n}\n\nfunc (post *Post) GetReplyFormURL() string {\n\treturn txlink.URL(\"CreateReply\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetRepostFormURL() string {\n\treturn txlink.URL(\"CreateRepost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetDeleteFormURL() string {\n\treturn txlink.URL(\"DeletePost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) RenderSummary() string {\n\tif post.repostBoard != 0 {\n\t\tdstBoard := getBoard(post.repostBoard)\n\t\tif dstBoard == nil {\n\t\t\tpanic(\"repostBoard does not exist\")\n\t\t}\n\t\tthread := dstBoard.GetThread(PostID(post.parentID))\n\t\tif thread == nil {\n\t\t\treturn \"reposted post does not exist\"\n\t\t}\n\t\treturn \"Repost: \" + post.GetSummary() + \"\\n\" + thread.RenderSummary()\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += \"## [\" + summaryOf(post.title, 80) + \"](\" + post.GetURL() + \")\\n\"\n\t\tstr += \"\\n\"\n\t}\n\tstr += post.GetSummary() + \"\\n\"\n\tstr += \"\\\\- \" + displayAddressMD(post.creator) + \",\"\n\tstr += \" [\" + post.createdAt.Format(\"2006-01-02 3:04pm MST\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\"\n\tstr += \" (\" + strconv.Itoa(post.replies.Size()) + \" replies)\"\n\tstr += \" (\" + strconv.Itoa(post.reposts.Size()) + \" reposts)\" + \"\\n\"\n\treturn str\n}\n\nfunc (post *Post) RenderPost(indent string, levels int) string {\n\tif post == nil {\n\t\treturn \"nil post\"\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += indent + \"# \" + post.title + \"\\n\"\n\t\tstr += indent + \"\\n\"\n\t}\n\tstr += indentBody(indent, post.body) + \"\\n\" // TODO: indent body lines.\n\tstr += indent + \"\\\\- \" + displayAddressMD(post.creator) + \", \"\n\tstr += \"[\" + post.createdAt.Format(\"2006-01-02 3:04pm (MST)\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[reply](\" + post.GetReplyFormURL() + \")]\"\n\tif post.IsThread() {\n\t\tstr += \" \\\\[[repost](\" + post.GetRepostFormURL() + \")]\"\n\t}\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\\n\"\n\tif levels \u003e 0 {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tpost.replies.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\t\tstr += indent + \"\\n\"\n\t\t\t\tstr += value.(*Post).RenderPost(indent+\"\u003e \", levels-1)\n\t\t\t\treturn false\n\t\t\t})\n\t\t}\n\t} else {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tstr += indent + \"\\n\"\n\t\t\tstr += indent + \"_[see all \" + strconv.Itoa(post.replies.Size()) + \" replies](\" + post.GetURL() + \")_\\n\"\n\t\t}\n\t}\n\treturn str\n}\n\n// render reply and link to context thread\nfunc (post *Post) RenderInner() string {\n\tif post.IsThread() {\n\t\tpanic(\"unexpected thread\")\n\t}\n\tthreadID := post.threadID\n\t// replyID := post.id\n\tparentID := post.parentID\n\tstr := \"\"\n\tstr += \"_[see thread](\" + post.board.GetURLFromThreadAndReplyID(\n\t\tthreadID, 0) + \")_\\n\\n\"\n\tthread := post.board.GetThread(post.threadID)\n\tvar parent *Post\n\tif thread.id == parentID {\n\t\tparent = thread\n\t} else {\n\t\tparent = thread.GetReply(parentID)\n\t}\n\tstr += parent.RenderPost(\"\", 0)\n\tstr += \"\\n\"\n\tstr += post.RenderPost(\"\u003e \", 5)\n\treturn str\n}\n"},{"name":"public.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetBoardIDFromName(name string) (BoardID, bool) {\n\tboardI, exists := gBoardsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn boardI.(*Board).id, true\n}\n\nfunc CreateBoard(name string) BoardID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tbid := incGetBoardID()\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tpanic(\"unauthorized\")\n\t}\n\turl := \"/r/demo/boards:\" + name\n\tboard := newBoard(bid, url, name, caller)\n\tbidkey := boardIDKey(bid)\n\tgBoards.Set(bidkey, board)\n\tgBoardsByName.Set(name, board)\n\treturn board.id\n}\n\nfunc checkAnonFee() bool {\n\tsent := std.GetOrigSend()\n\tanonFeeCoin := std.NewCoin(\"ugnot\", int64(gDefaultAnonFee))\n\tif len(sent) == 1 \u0026\u0026 sent[0].IsGTE(anonFeeCoin) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc CreateThread(bid BoardID, title string, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.AddThread(caller, title, body)\n\treturn thread.id\n}\n\nfunc CreateReply(bid BoardID, threadid, postid PostID, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\treply := thread.AddReply(caller, body)\n\t\treturn reply.id\n\t} else {\n\t\tpost := thread.GetReply(postid)\n\t\treply := post.AddReply(caller, body)\n\t\treturn reply.id\n\t}\n}\n\n// If dstBoard is private, does not ping back.\n// If board specified by bid is private, panics.\nfunc CreateRepost(bid BoardID, postid PostID, title string, body string, dstBoardID BoardID) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\t// TODO: allow with gDefaultAnonFee payment.\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"src board not exist\")\n\t}\n\tif board.IsPrivate() {\n\t\tpanic(\"cannot repost from a private board\")\n\t}\n\tdst := getBoard(dstBoardID)\n\tif dst == nil {\n\t\tpanic(\"dst board not exist\")\n\t}\n\tthread := board.GetThread(postid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\trepost := thread.AddRepostTo(caller, title, body, dst)\n\treturn repost.id\n}\n\nfunc DeletePost(bid BoardID, threadid, postid PostID, reason string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// delete thread\n\t\tif !thread.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tboard.DeleteThread(threadid)\n\t} else {\n\t\t// delete thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.DeletePost(postid)\n\t}\n}\n\nfunc EditPost(bid BoardID, threadid, postid PostID, title, body string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// edit thread\n\t\tif !thread.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.Update(title, body)\n\t} else {\n\t\t// edit thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tpost.Update(title, body)\n\t}\n}\n"},{"name":"render.gno","body":"package boards\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderBoard(bid BoardID) string {\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\treturn \"missing board\"\n\t}\n\treturn board.RenderBoard()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"These are all the boards of this realm:\\n\\n\"\n\t\tgBoards.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tboard := value.(*Board)\n\t\t\tstr += \" * [\" + board.url + \"](\" + board.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/boards:BOARD_NAME\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\treturn boardI.(*Board).RenderBoard()\n\t} else if len(parts) == 2 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\treturn thread.RenderPost(\"\", 5)\n\t} else if len(parts) == 3 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID/REPLY_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\trid, err := strconv.Atoi(parts[2])\n\t\tif err != nil {\n\t\t\treturn \"invalid reply id: \" + parts[2]\n\t\t}\n\t\treply := thread.GetReply(PostID(rid))\n\t\tif reply == nil {\n\t\t\treturn \"reply does not exist with id: \" + parts[2]\n\t\t}\n\t\treturn reply.RenderInner()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package boards\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\nimport (\n\t\"gno.land/r/demo/boards\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateThread(1, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_0_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 20000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n// ----------------------------------------\n// ## [Second Post (title)](/r/demo/boards:test_board/2)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/2) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)] (1 replies) (0 reposts)\n//\n//\n"},{"name":"z_10_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// boardId 2 not exist\n\tboards.DeletePost(2, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_10_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// pid of 2 not exist\n\tboards.DeletePost(bid, 2, 2, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_10_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, rid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// thread does not exist with id: 1\n"},{"name":"z_11_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// board 2 not exist\n\tboards.EditPost(2, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_11_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// thread 2 not exist\n\tboards.EditPost(bid, 2, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_11_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// post 2 not exist\n\tboards.EditPost(bid, pid, 2, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// post not exist\n"},{"name":"z_11_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, rid, \"\", \"Edited: First reply of the First post\\n\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Edited: First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_11_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// # Edited: First Post in (title)\n//\n// Edited: Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_12_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create a post via registered user\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_12_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing board\n\trid := boards.CreateRepost(5, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_12_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tboards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing thread\n\trid := boards.CreateRepost(bid1, 5, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_12_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing destination board\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", 5)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_12_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid1 boards.BoardID\n\tbid2 boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid1 = boards.CreateBoard(\"test_board1\")\n\tpid = boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 = boards.CreateBoard(\"test_board2\")\n}\n\nfunc main() {\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board2\"))\n}\n\n// Output:\n// 1\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=2)]\n//\n// ----------------------------------------\n// Repost: Check this out\n// ## [First Post (title)](/r/demo/boards:test_board1/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board1/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (1 reposts)\n//\n//\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar board *boards.Board\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t_ = boards.CreateBoard(\"test_board_1\")\n\t_ = boards.CreateBoard(\"test_board_2\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"\"))\n}\n\n// Output:\n// These are all the boards of this realm:\n//\n// * [/r/demo/boards:test_board_1](/r/demo/boards:test_board_1)\n// * [/r/demo/boards:test_board_2](/r/demo/boards:test_board_2)\n//\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n}\n\nfunc main() {\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\")\n\tprintln(rid2)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// 4\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\",\n// \"ModTime\": \"123\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"68663c8895d37d479e417c11e21badfe21345c61\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:112\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3f34ac77289aa1d5f9a2f8b6d083138325816fb0\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"94a6665a44bac6ede7f3e3b87173e537b12f9532\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bc8e5b4e782a0bbc4ac9689681f119beb7b34d59\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9957eadbc91dd32f33b0d815e041a32dbdea0671\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131]={\n// \"Fields\": [\n// {\n// \"N\": \"AAAAgJSeXbo=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"N\": \"AbSNdvQQIhE=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"336074805fc853987abe6f7fe3ad97a6a6f3077a:2\"\n// },\n// \"Index\": \"182\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Board\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"Second reply of the second post\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f91e355bd19240f0f3350a7fa0e6a82b72225916\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9ee9c4117be283fc51ffcc5ecd65b75ecef5a9dd\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"eb768b0140a5fe95f9c58747f0960d647dacfd42\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"0fd3352422af0a56a77ef2c9e88f479054e3d51f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bed4afa8ffdbbf775451c947fc68b27a345ce32a\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"0\",\n// \"RefCount\": \"2\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c45bbd47a46681a63af973db0ec2180922e4a8ae\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\",\n// \"ModTime\": \"134\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"dc1f011553dc53e7a846049e08cc77fa35ea6a51\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:121\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"96b86b4585c7f1075d7794180a5581f72733a7ab\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"32274e1f28fb2b97d67a1262afd362d370de7faa\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c2cfd6aec36a462f35bf02e5bf4a127aa1bb7ac2\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"5cb875179e86d32c517322af7a323b2a5f3e6cc5\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85]={\n// \"Fields\": [\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"/r/demo/boards:test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a416a751c3a45a1e5cba11e737c51340b081e372\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:86\"\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"36299fccbc13f2a84c4629fad4cb940f0bd4b1c6\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:87\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"af6ed0268f99b7f369329094eb6dfaea7812708b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:88\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9809329dc1ddc5d3556f7a8fa3c2cebcbf65560b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ceae9a1c4ed28bb51062e6ccdccfad0caafd1c4f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/boards_test\"]\n"},{"name":"z_5_b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_c_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 101000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post (title)\n//\n// Body of the first post. (body)\n// \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Reply of the first post\n// \u003e \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_5_d_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\n\t// create reply via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_6_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tboards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n// \u003e\n// \u003e \u003e First reply of the first reply\n// \u003e \u003e\n// \u003e \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_7_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc init() {\n\t// register\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t// create board and post\n\tbid := boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n//\n"},{"name":"z_8_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\trid2 := boards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid)) + \"/\" + strconv.Itoa(int(rid2))))\n}\n\n// Output:\n// _[see thread](/r/demo/boards:test_board/2)_\n//\n// Reply of the second post\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// _[see all 1 replies](/r/demo/boards:test_board/2/3)_\n//\n// \u003e First reply of the first reply\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n"},{"name":"z_9_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar dstBoard boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tdstBoard = boards.CreateBoard(\"dst_board\")\n\n\tboards.CreateRepost(0, 0, \"First Post in (title)\", \"Body of the first post. (body)\", dstBoard)\n}\n\nfunc main() {\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_9_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tsrcBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tsrcBoard = boards.CreateBoard(\"first_board\")\n\tpid = boards.CreateThread(srcBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(srcBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", 0)\n}\n\nfunc main() {\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_9_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tfirstBoard boards.BoardID\n\tsecondBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tfirstBoard = boards.CreateBoard(\"first_board\")\n\tsecondBoard = boards.CreateBoard(\"second_board\")\n\tpid = boards.CreateThread(firstBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(firstBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", secondBoard)\n}\n\nfunc main() {\n\tprintln(boards.Render(\"second_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:second_board/1/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=2\u0026threadid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=2\u0026threadid=1\u0026postid=1)]\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E9H/iZtrvWBWQ8WRdxVt1/sCc9d1og6gqZezM+7FVz6/3znYr9hDIV4XGgvlK0LbMVwO4Y5lnudtJuj5aIt+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bridge","path":"gno.land/r/gov/dao/bridge","files":[{"name":"bridge.gno","body":"package bridge\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nconst initialOwner = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n\nvar b *Bridge\n\n// Bridge is the active GovDAO\n// implementation bridge\ntype Bridge struct {\n\t*ownable.Ownable\n\n\tdao DAO\n}\n\n// init constructs the initial GovDAO implementation\nfunc init() {\n\tb = \u0026Bridge{\n\t\tOwnable: ownable.NewWithAddress(initialOwner),\n\t\tdao: \u0026govdaoV2{},\n\t}\n}\n\n// SetDAO sets the currently active GovDAO implementation\nfunc SetDAO(dao DAO) {\n\tb.AssertCallerIsOwner()\n\n\tb.dao = dao\n}\n\n// GovDAO returns the current GovDAO implementation\nfunc GovDAO() DAO {\n\treturn b.dao\n}\n"},{"name":"bridge_test.gno","body":"package bridge\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestBridge_DAO(t *testing.T) {\n\tvar (\n\t\tproposalID = uint64(10)\n\t\tmockDAO = \u0026mockDAO{\n\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\treturn proposalID\n\t\t\t},\n\t\t}\n\t)\n\n\tb.dao = mockDAO\n\n\tuassert.Equal(t, proposalID, GovDAO().Propose(dao.ProposalRequest{}))\n}\n\nfunc TestBridge_SetDAO(t *testing.T) {\n\tt.Run(\"invalid owner\", func(t *testing.T) {\n\t\t// Attempt to set a new DAO implementation\n\t\tuassert.PanicsWithMessage(t, ownable.ErrUnauthorized.Error(), func() {\n\t\t\tSetDAO(\u0026mockDAO{})\n\t\t})\n\t})\n\n\tt.Run(\"valid owner\", func(t *testing.T) {\n\t\tvar (\n\t\t\taddr = testutils.TestAddress(\"owner\")\n\n\t\t\tproposalID = uint64(10)\n\t\t\tmockDAO = \u0026mockDAO{\n\t\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\t\treturn proposalID\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(addr)\n\n\t\tb.Ownable = ownable.NewWithAddress(addr)\n\n\t\turequire.NotPanics(t, func() {\n\t\t\tSetDAO(mockDAO)\n\t\t})\n\n\t\tuassert.Equal(\n\t\t\tt,\n\t\t\tmockDAO.Propose(dao.ProposalRequest{}),\n\t\t\tGovDAO().Propose(dao.ProposalRequest{}),\n\t\t)\n\t})\n}\n"},{"name":"doc.gno","body":"// Package bridge represents a GovDAO implementation wrapper, used by other Realms and Packages to\n// always fetch the most active GovDAO implementation, instead of directly referencing it, and having to\n// update it each time the GovDAO implementation changes\npackage bridge\n"},{"name":"mock_test.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype (\n\tproposeDelegate func(dao.ProposalRequest) uint64\n\tvoteOnProposalDelegate func(uint64, dao.VoteOption)\n\texecuteProposalDelegate func(uint64)\n\tgetPropStoreDelegate func() dao.PropStore\n\tgetMembStoreDelegate func() membstore.MemberStore\n\tnewGovDAOExecutorDelegate func(func() error) dao.Executor\n)\n\ntype mockDAO struct {\n\tproposeFn proposeDelegate\n\tvoteOnProposalFn voteOnProposalDelegate\n\texecuteProposalFn executeProposalDelegate\n\tgetPropStoreFn getPropStoreDelegate\n\tgetMembStoreFn getMembStoreDelegate\n\tnewGovDAOExecutorFn newGovDAOExecutorDelegate\n}\n\nfunc (m *mockDAO) Propose(request dao.ProposalRequest) uint64 {\n\tif m.proposeFn != nil {\n\t\treturn m.proposeFn(request)\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockDAO) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif m.voteOnProposalFn != nil {\n\t\tm.voteOnProposalFn(id, option)\n\t}\n}\n\nfunc (m *mockDAO) ExecuteProposal(id uint64) {\n\tif m.executeProposalFn != nil {\n\t\tm.executeProposalFn(id)\n\t}\n}\n\nfunc (m *mockDAO) GetPropStore() dao.PropStore {\n\tif m.getPropStoreFn != nil {\n\t\treturn m.getPropStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) GetMembStore() membstore.MemberStore {\n\tif m.getMembStoreFn != nil {\n\t\treturn m.getMembStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif m.newGovDAOExecutorFn != nil {\n\t\treturn m.newGovDAOExecutorFn(cb)\n\t}\n\n\treturn nil\n}\n"},{"name":"types.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\n// DAO abstracts the commonly used DAO interface\ntype DAO interface {\n\tPropose(dao.ProposalRequest) uint64\n\tVoteOnProposal(uint64, dao.VoteOption)\n\tExecuteProposal(uint64)\n\tGetPropStore() dao.PropStore\n\tGetMembStore() membstore.MemberStore\n\n\tNewGovDAOExecutor(func() error) dao.Executor\n}\n"},{"name":"v2.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\n// govdaoV2 is a wrapper for interacting with the /r/gov/dao/v2 Realm\ntype govdaoV2 struct{}\n\nfunc (g *govdaoV2) Propose(request dao.ProposalRequest) uint64 {\n\treturn govdao.Propose(request)\n}\n\nfunc (g *govdaoV2) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tgovdao.VoteOnProposal(id, option)\n}\n\nfunc (g *govdaoV2) ExecuteProposal(id uint64) {\n\tgovdao.ExecuteProposal(id)\n}\n\nfunc (g *govdaoV2) GetPropStore() dao.PropStore {\n\treturn govdao.GetPropStore()\n}\n\nfunc (g *govdaoV2) GetMembStore() membstore.MemberStore {\n\treturn govdao.GetMembStore()\n}\n\nfunc (g *govdaoV2) NewGovDAOExecutor(cb func() error) dao.Executor {\n\treturn govdao.NewGovDAOExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMemberPropExecutor(cb func() []membstore.Member) dao.Executor {\n\treturn govdao.NewMemberPropExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMembStoreImplExecutor(cb func() membstore.MemberStore) dao.Executor {\n\treturn govdao.NewMembStoreImplExecutor(cb)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+1IoeZp7KSMhXB2qdBSrGytiPduH2i7cSmgSk+3zRqaO46OHgGE0IYkKZ7EW9tQDKH9AJlIUyHbXPuihNHKyDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bridge","path":"gno.land/r/gov/dao/bridge","files":[{"name":"bridge.gno","body":"package bridge\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nconst initialOwner = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n\nvar b *Bridge\n\n// Bridge is the active GovDAO\n// implementation bridge\ntype Bridge struct {\n\t*ownable.Ownable\n\n\tdao DAO\n}\n\n// init constructs the initial GovDAO implementation\nfunc init() {\n\tb = \u0026Bridge{\n\t\tOwnable: ownable.NewWithAddress(initialOwner),\n\t\tdao: \u0026govdaoV2{},\n\t}\n}\n\n// SetDAO sets the currently active GovDAO implementation\nfunc SetDAO(dao DAO) {\n\tb.AssertCallerIsOwner()\n\n\tb.dao = dao\n}\n\n// GovDAO returns the current GovDAO implementation\nfunc GovDAO() DAO {\n\treturn b.dao\n}\n"},{"name":"bridge_test.gno","body":"package bridge\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestBridge_DAO(t *testing.T) {\n\tvar (\n\t\tproposalID = uint64(10)\n\t\tmockDAO = \u0026mockDAO{\n\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\treturn proposalID\n\t\t\t},\n\t\t}\n\t)\n\n\tb.dao = mockDAO\n\n\tuassert.Equal(t, proposalID, GovDAO().Propose(dao.ProposalRequest{}))\n}\n\nfunc TestBridge_SetDAO(t *testing.T) {\n\tt.Run(\"invalid owner\", func(t *testing.T) {\n\t\t// Attempt to set a new DAO implementation\n\t\tuassert.PanicsWithMessage(t, ownable.ErrUnauthorized.Error(), func() {\n\t\t\tSetDAO(\u0026mockDAO{})\n\t\t})\n\t})\n\n\tt.Run(\"valid owner\", func(t *testing.T) {\n\t\tvar (\n\t\t\taddr = testutils.TestAddress(\"owner\")\n\n\t\t\tproposalID = uint64(10)\n\t\t\tmockDAO = \u0026mockDAO{\n\t\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\t\treturn proposalID\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(addr)\n\n\t\tb.Ownable = ownable.NewWithAddress(addr)\n\n\t\turequire.NotPanics(t, func() {\n\t\t\tSetDAO(mockDAO)\n\t\t})\n\n\t\tuassert.Equal(\n\t\t\tt,\n\t\t\tmockDAO.Propose(dao.ProposalRequest{}),\n\t\t\tGovDAO().Propose(dao.ProposalRequest{}),\n\t\t)\n\t})\n}\n"},{"name":"doc.gno","body":"// Package bridge represents a GovDAO implementation wrapper, used by other Realms and Packages to\n// always fetch the most active GovDAO implementation, instead of directly referencing it, and having to\n// update it each time the GovDAO implementation changes\npackage bridge\n"},{"name":"mock_test.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype (\n\tproposeDelegate func(dao.ProposalRequest) uint64\n\tvoteOnProposalDelegate func(uint64, dao.VoteOption)\n\texecuteProposalDelegate func(uint64)\n\tgetPropStoreDelegate func() dao.PropStore\n\tgetMembStoreDelegate func() membstore.MemberStore\n\tnewGovDAOExecutorDelegate func(func() error) dao.Executor\n)\n\ntype mockDAO struct {\n\tproposeFn proposeDelegate\n\tvoteOnProposalFn voteOnProposalDelegate\n\texecuteProposalFn executeProposalDelegate\n\tgetPropStoreFn getPropStoreDelegate\n\tgetMembStoreFn getMembStoreDelegate\n\tnewGovDAOExecutorFn newGovDAOExecutorDelegate\n}\n\nfunc (m *mockDAO) Propose(request dao.ProposalRequest) uint64 {\n\tif m.proposeFn != nil {\n\t\treturn m.proposeFn(request)\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockDAO) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif m.voteOnProposalFn != nil {\n\t\tm.voteOnProposalFn(id, option)\n\t}\n}\n\nfunc (m *mockDAO) ExecuteProposal(id uint64) {\n\tif m.executeProposalFn != nil {\n\t\tm.executeProposalFn(id)\n\t}\n}\n\nfunc (m *mockDAO) GetPropStore() dao.PropStore {\n\tif m.getPropStoreFn != nil {\n\t\treturn m.getPropStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) GetMembStore() membstore.MemberStore {\n\tif m.getMembStoreFn != nil {\n\t\treturn m.getMembStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif m.newGovDAOExecutorFn != nil {\n\t\treturn m.newGovDAOExecutorFn(cb)\n\t}\n\n\treturn nil\n}\n"},{"name":"types.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\n// DAO abstracts the commonly used DAO interface\ntype DAO interface {\n\tPropose(dao.ProposalRequest) uint64\n\tVoteOnProposal(uint64, dao.VoteOption)\n\tExecuteProposal(uint64)\n\tGetPropStore() dao.PropStore\n\tGetMembStore() membstore.MemberStore\n\n\tNewGovDAOExecutor(func() error) dao.Executor\n}\n"},{"name":"v2.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\n// govdaoV2 is a wrapper for interacting with the /r/gov/dao/v2 Realm\ntype govdaoV2 struct{}\n\nfunc (g *govdaoV2) Propose(request dao.ProposalRequest) uint64 {\n\treturn govdao.Propose(request)\n}\n\nfunc (g *govdaoV2) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tgovdao.VoteOnProposal(id, option)\n}\n\nfunc (g *govdaoV2) ExecuteProposal(id uint64) {\n\tgovdao.ExecuteProposal(id)\n}\n\nfunc (g *govdaoV2) GetPropStore() dao.PropStore {\n\treturn govdao.GetPropStore()\n}\n\nfunc (g *govdaoV2) GetMembStore() membstore.MemberStore {\n\treturn govdao.GetMembStore()\n}\n\nfunc (g *govdaoV2) NewGovDAOExecutor(cb func() error) dao.Executor {\n\treturn govdao.NewGovDAOExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMemberPropExecutor(cb func() []membstore.Member) dao.Executor {\n\treturn govdao.NewMemberPropExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMembStoreImplExecutor(cb func() membstore.MemberStore) dao.Executor {\n\treturn govdao.NewMembStoreImplExecutor(cb)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+1IoeZp7KSMhXB2qdBSrGytiPduH2i7cSmgSk+3zRqaO46OHgGE0IYkKZ7EW9tQDKH9AJlIUyHbXPuihNHKyDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"bridge","path":"gno.land/r/gov/dao/bridge","files":[{"name":"bridge.gno","body":"package bridge\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nconst initialOwner = std.Address(\"g1u7y667z64x2h7vc6fmpcprgey4ck233jaww9zq\") // @moul\n\nvar b *Bridge\n\n// Bridge is the active GovDAO\n// implementation bridge\ntype Bridge struct {\n\t*ownable.Ownable\n\n\tdao DAO\n}\n\n// init constructs the initial GovDAO implementation\nfunc init() {\n\tb = \u0026Bridge{\n\t\tOwnable: ownable.NewWithAddress(initialOwner),\n\t\tdao: \u0026govdaoV2{},\n\t}\n}\n\n// SetDAO sets the currently active GovDAO implementation\nfunc SetDAO(dao DAO) {\n\tb.AssertCallerIsOwner()\n\n\tb.dao = dao\n}\n\n// GovDAO returns the current GovDAO implementation\nfunc GovDAO() DAO {\n\treturn b.dao\n}\n"},{"name":"bridge_test.gno","body":"package bridge\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestBridge_DAO(t *testing.T) {\n\tvar (\n\t\tproposalID = uint64(10)\n\t\tmockDAO = \u0026mockDAO{\n\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\treturn proposalID\n\t\t\t},\n\t\t}\n\t)\n\n\tb.dao = mockDAO\n\n\tuassert.Equal(t, proposalID, GovDAO().Propose(dao.ProposalRequest{}))\n}\n\nfunc TestBridge_SetDAO(t *testing.T) {\n\tt.Run(\"invalid owner\", func(t *testing.T) {\n\t\t// Attempt to set a new DAO implementation\n\t\tuassert.PanicsWithMessage(t, ownable.ErrUnauthorized.Error(), func() {\n\t\t\tSetDAO(\u0026mockDAO{})\n\t\t})\n\t})\n\n\tt.Run(\"valid owner\", func(t *testing.T) {\n\t\tvar (\n\t\t\taddr = testutils.TestAddress(\"owner\")\n\n\t\t\tproposalID = uint64(10)\n\t\t\tmockDAO = \u0026mockDAO{\n\t\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\t\treturn proposalID\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(addr)\n\n\t\tb.Ownable = ownable.NewWithAddress(addr)\n\n\t\turequire.NotPanics(t, func() {\n\t\t\tSetDAO(mockDAO)\n\t\t})\n\n\t\tuassert.Equal(\n\t\t\tt,\n\t\t\tmockDAO.Propose(dao.ProposalRequest{}),\n\t\t\tGovDAO().Propose(dao.ProposalRequest{}),\n\t\t)\n\t})\n}\n"},{"name":"doc.gno","body":"// Package bridge represents a GovDAO implementation wrapper, used by other Realms and Packages to\n// always fetch the most active GovDAO implementation, instead of directly referencing it, and having to\n// update it each time the GovDAO implementation changes\npackage bridge\n"},{"name":"mock_test.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype (\n\tproposeDelegate func(dao.ProposalRequest) uint64\n\tvoteOnProposalDelegate func(uint64, dao.VoteOption)\n\texecuteProposalDelegate func(uint64)\n\tgetPropStoreDelegate func() dao.PropStore\n\tgetMembStoreDelegate func() membstore.MemberStore\n\tnewGovDAOExecutorDelegate func(func() error) dao.Executor\n)\n\ntype mockDAO struct {\n\tproposeFn proposeDelegate\n\tvoteOnProposalFn voteOnProposalDelegate\n\texecuteProposalFn executeProposalDelegate\n\tgetPropStoreFn getPropStoreDelegate\n\tgetMembStoreFn getMembStoreDelegate\n\tnewGovDAOExecutorFn newGovDAOExecutorDelegate\n}\n\nfunc (m *mockDAO) Propose(request dao.ProposalRequest) uint64 {\n\tif m.proposeFn != nil {\n\t\treturn m.proposeFn(request)\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockDAO) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif m.voteOnProposalFn != nil {\n\t\tm.voteOnProposalFn(id, option)\n\t}\n}\n\nfunc (m *mockDAO) ExecuteProposal(id uint64) {\n\tif m.executeProposalFn != nil {\n\t\tm.executeProposalFn(id)\n\t}\n}\n\nfunc (m *mockDAO) GetPropStore() dao.PropStore {\n\tif m.getPropStoreFn != nil {\n\t\treturn m.getPropStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) GetMembStore() membstore.MemberStore {\n\tif m.getMembStoreFn != nil {\n\t\treturn m.getMembStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif m.newGovDAOExecutorFn != nil {\n\t\treturn m.newGovDAOExecutorFn(cb)\n\t}\n\n\treturn nil\n}\n"},{"name":"types.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\n// DAO abstracts the commonly used DAO interface\ntype DAO interface {\n\tPropose(dao.ProposalRequest) uint64\n\tVoteOnProposal(uint64, dao.VoteOption)\n\tExecuteProposal(uint64)\n\tGetPropStore() dao.PropStore\n\tGetMembStore() membstore.MemberStore\n\n\tNewGovDAOExecutor(func() error) dao.Executor\n}\n"},{"name":"v2.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\n// govdaoV2 is a wrapper for interacting with the /r/gov/dao/v2 Realm\ntype govdaoV2 struct{}\n\nfunc (g *govdaoV2) Propose(request dao.ProposalRequest) uint64 {\n\treturn govdao.Propose(request)\n}\n\nfunc (g *govdaoV2) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tgovdao.VoteOnProposal(id, option)\n}\n\nfunc (g *govdaoV2) ExecuteProposal(id uint64) {\n\tgovdao.ExecuteProposal(id)\n}\n\nfunc (g *govdaoV2) GetPropStore() dao.PropStore {\n\treturn govdao.GetPropStore()\n}\n\nfunc (g *govdaoV2) GetMembStore() membstore.MemberStore {\n\treturn govdao.GetMembStore()\n}\n\nfunc (g *govdaoV2) NewGovDAOExecutor(cb func() error) dao.Executor {\n\treturn govdao.NewGovDAOExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMemberPropExecutor(cb func() []membstore.Member) dao.Executor {\n\treturn govdao.NewMemberPropExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMembStoreImplExecutor(cb func() membstore.MemberStore) dao.Executor {\n\treturn govdao.NewMembStoreImplExecutor(cb)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"msVt9i6y6hlmtrE9oxidcadSdF8p6onn2QqKPQsLsEf2vV/wWf+bNhzkxYgYFelQdI6avg8btm5SGzOSrwruCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"btree","path":"gno.land/p/demo/btree","files":[{"name":"btree.gno","body":"//////////\n//\n// Copyright 2014 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n//\n// Copyright 2024 New Tendermint\n//\n// This Gno port of the original Go BTree is substantially rewritten/reimplemented\n// from the original, primarily for clarity of code, clarity of documentation,\n// and for compatibility with Gno.\n//\n// Authors:\n// Original version authors -- https://github.com/google/btree/graphs/contributors\n// Kirk Haines \u003cwyhaines@gmail.com\u003e\n//\n//////////\n\n// Package btree implements in-memory B-Trees of arbitrary degree.\n//\n// It has a flatter structure than an equivalent red-black or other binary tree,\n// which may yield better memory usage and/or performance.\npackage btree\n\nimport \"sort\"\n\n//////////\n//\n// Types\n//\n//////////\n\n// BTreeOption is a function interface for setting options on a btree with `New()`.\ntype BTreeOption func(*BTree)\n\n// BTree is an implementation of a B-Tree.\n//\n// BTree stores Record instances in an ordered structure, allowing easy insertion,\n// removal, and iteration.\ntype BTree struct {\n\tdegree int\n\tlength int\n\troot *node\n\tcowCtx *copyOnWriteContext\n}\n\n//\tAny type that implements this interface can be stored in the BTree. This allows considerable\n//\n// flexiblity in storage within the BTree.\ntype Record interface {\n\t// Less compares self to `than`, returning true if self is less than `than`\n\tLess(than Record) bool\n}\n\n// records is the storage within a node. It is expressed as a slice of Record, where a Record\n// is any struct that implements the Record interface.\ntype records []Record\n\n// node is an internal node in a tree.\n//\n// It must at all times maintain on of the two conditions:\n// - len(children) == 0, len(records) unconstrained\n// - len(children) == len(records) + 1\ntype node struct {\n\trecords records\n\tchildren children\n\tcowCtx *copyOnWriteContext\n}\n\n// children is the list of child nodes below the current node. It is a slice of nodes.\ntype children []*node\n\n// FreeNodeList represents a slice of nodes which are available for reuse. The default\n// behavior of New() is for each BTree instance to have its own FreeNodeList. However,\n// it is possible for multiple instances of BTree to share the same tree. If one uses\n// New(WithFreeNodeList()) to create a tree, one may pass an existing FreeNodeList, allowing\n// multiple trees to use a single list. In an application with multiple trees, it might\n// be more efficient to allocate a single FreeNodeList with a significant initial capacity,\n// and then have all of the trees use that same large FreeNodeList.\ntype FreeNodeList struct {\n\tnodes []*node\n}\n\n// copyOnWriteContext manages node ownership and ensures that cloned trees\n// maintain isolation from each other when a node is changed.\n//\n// Ownership Rules:\n// - Each node is associated with a specific copyOnWriteContext.\n// - A tree can modify a node directly only if the tree's context matches the node's context.\n// - If a tree attempts to modify a node with a different context, it must create a\n// new, writable copy of that node (i.e., perform a clone) before making changes.\n//\n// Write Operation Invariant:\n// - During any write operation, the current node being modified must have the same\n// context as the tree requesting the write.\n// - To maintain this invariant, before descending into a child node, the system checks\n// if the child’s context matches the tree's context.\n// - If the contexts match, the node can be modified in place.\n// - If the contexts do not match, a mutable copy of the child node is created with the\n// correct context before proceeding.\n//\n// Practical Implications:\n// - The node currently being modified inherits the requesting tree's context, allowing\n// in-place modifications.\n// - Child nodes may initially have different contexts. Before any modification, these\n// children are copied to ensure they share the correct context, enabling safe and\n// isolated updates without affecting other trees that might be referencing the original nodes.\n//\n// Example Usage:\n// When a tree performs a write operation (e.g., inserting or deleting a node), it uses\n// its copyOnWriteContext to determine whether it can modify nodes directly or needs to\n// create copies. This mechanism ensures that trees can share nodes efficiently while\n// maintaining data integrity.\ntype copyOnWriteContext struct {\n\tnodes *FreeNodeList\n}\n\n// Record implements an interface with a single function, Less. Any type that implements\n// RecordIterator allows callers of all of the iteration functions for the BTree\n// to evaluate an element of the tree as it is traversed. The function will receive\n// a stored element from the tree. The function must return either a true or a false value.\n// True indicates that iteration should continue, while false indicates that it should halt.\ntype RecordIterator func(i Record) bool\n\n//////////\n//\n// Functions\n//\n//////////\n\n// NewFreeNodeList creates a new free list.\n// size is the maximum size of the returned free list.\nfunc NewFreeNodeList(size int) *FreeNodeList {\n\treturn \u0026FreeNodeList{nodes: make([]*node, 0, size)}\n}\n\nfunc (freeList *FreeNodeList) newNode() (nodeInstance *node) {\n\tindex := len(freeList.nodes) - 1\n\tif index \u003c 0 {\n\t\treturn new(node)\n\t}\n\tnodeInstance = freeList.nodes[index]\n\tfreeList.nodes[index] = nil\n\tfreeList.nodes = freeList.nodes[:index]\n\n\treturn nodeInstance\n}\n\n// freeNode adds the given node to the list, returning true if it was added\n// and false if it was discarded.\n\nfunc (freeList *FreeNodeList) freeNode(nodeInstance *node) (nodeWasAdded bool) {\n\tif len(freeList.nodes) \u003c cap(freeList.nodes) {\n\t\tfreeList.nodes = append(freeList.nodes, nodeInstance)\n\t\tnodeWasAdded = true\n\t}\n\treturn\n}\n\n// A default size for the free node list. We might want to run some benchmarks to see if\n// there are any pros or cons to this size versus other sizes. This seems to be a reasonable\n// compromise to reduce GC pressure by reusing nodes where possible, without stacking up too\n// much baggage in a given tree.\nconst DefaultFreeNodeListSize = 32\n\n// WithDegree sets the degree of the B-Tree.\nfunc WithDegree(degree int) BTreeOption {\n\treturn func(bt *BTree) {\n\t\tif degree \u003c= 1 {\n\t\t\tpanic(\"Degrees less than 1 do not make any sense for a BTree. Please provide a degree of 1 or greater.\")\n\t\t}\n\t\tbt.degree = degree\n\t}\n}\n\n// WithFreeNodeList sets a custom free node list for the B-Tree.\nfunc WithFreeNodeList(freeList *FreeNodeList) BTreeOption {\n\treturn func(bt *BTree) {\n\t\tbt.cowCtx = \u0026copyOnWriteContext{nodes: freeList}\n\t}\n}\n\n// New creates a new B-Tree with optional configurations. If configuration is not provided,\n// it will default to 16 element nodes. Degree may not be less than 1 (which effectively\n// makes the tree into a binary tree).\n//\n// `New(WithDegree(2))`, for example, will create a 2-3-4 tree (each node contains 1-3 records\n// and 2-4 children).\n//\n// `New(WithFreeNodeList(NewFreeNodeList(64)))` will create a tree with a degree of 16, and\n// with a free node list with a size of 64.\nfunc New(options ...BTreeOption) *BTree {\n\tbtree := \u0026BTree{\n\t\tdegree: 16, // default degree\n\t\tcowCtx: \u0026copyOnWriteContext{nodes: NewFreeNodeList(DefaultFreeNodeListSize)},\n\t}\n\tfor _, opt := range options {\n\t\topt(btree)\n\t}\n\treturn btree\n}\n\n// insertAt inserts a value into the given index, pushing all subsequent values\n// forward.\nfunc (recordsSlice *records) insertAt(index int, newRecord Record) {\n\toriginalLength := len(*recordsSlice)\n\n\t// Extend the slice by one element\n\t*recordsSlice = append(*recordsSlice, nil)\n\n\t// Move elements from the end to avoid overwriting during the copy\n\t// TODO: Make this work with slice appends, instead. It should be faster?\n\tif index \u003c originalLength {\n\t\tfor position := originalLength; position \u003e index; position-- {\n\t\t\t(*recordsSlice)[position] = (*recordsSlice)[position-1]\n\t\t}\n\t}\n\n\t// Insert the new record\n\t(*recordsSlice)[index] = newRecord\n}\n\n// removeAt removes a Record from the records slice at the specified index.\n// It shifts subsequent records to fill the gap and returns the removed Record.\nfunc (recordSlicePointer *records) removeAt(index int) Record {\n\trecordSlice := *recordSlicePointer\n\tremovedRecord := recordSlice[index]\n\tcopy(recordSlice[index:], recordSlice[index+1:])\n\trecordSlice[len(recordSlice)-1] = nil\n\t*recordSlicePointer = recordSlice[:len(recordSlice)-1]\n\n\treturn removedRecord\n}\n\n// Pop removes and returns the last Record from the records slice.\n// It also clears the reference to the removed Record to aid garbage collection.\nfunc (r *records) pop() Record {\n\trecordSlice := *r\n\tlastIndex := len(recordSlice) - 1\n\tremovedRecord := recordSlice[lastIndex]\n\trecordSlice[lastIndex] = nil\n\t*r = recordSlice[:lastIndex]\n\treturn removedRecord\n}\n\n// This slice is intended only as a supply of records for the truncate function\n// that follows, and it should not be changed or altered.\nvar emptyRecords = make(records, 32)\n\n// truncate reduces the length of the slice to the specified index,\n// and clears the elements beyond that index to prevent memory leaks.\n// The index must be less than or equal to the current length of the slice.\nfunc (originalSlice *records) truncate(index int) {\n\t// Split the slice into the part to keep and the part to clear.\n\trecordsToKeep := (*originalSlice)[:index]\n\trecordsToClear := (*originalSlice)[index:]\n\n\t// Update the original slice to only contain the records to keep.\n\t*originalSlice = recordsToKeep\n\n\t// Clear the memory of the part that was truncated.\n\tfor len(recordsToClear) \u003e 0 {\n\t\t// Copy empty values from `emptyRecords` to the recordsToClear slice.\n\t\t// This effectively \"clears\" the memory by overwriting elements.\n\t\tnumCleared := copy(recordsToClear, emptyRecords)\n\t\trecordsToClear = recordsToClear[numCleared:]\n\t}\n}\n\n// Find determines the appropriate index at which a given Record should be inserted\n// into the sorted records slice. If the Record already exists in the slice,\n// the method returns its index and sets found to true.\n//\n// Parameters:\n// - record: The Record to search for within the records slice.\n//\n// Returns:\n// - insertIndex: The index at which the Record should be inserted.\n// - found: A boolean indicating whether the Record already exists in the slice.\nfunc (recordsSlice records) find(record Record) (insertIndex int, found bool) {\n\ttotalRecords := len(recordsSlice)\n\n\t// Perform a binary search to find the insertion point for the record\n\tinsertionPoint := sort.Search(totalRecords, func(currentIndex int) bool {\n\t\treturn record.Less(recordsSlice[currentIndex])\n\t})\n\n\tif insertionPoint \u003e 0 {\n\t\tpreviousRecord := recordsSlice[insertionPoint-1]\n\n\t\tif !previousRecord.Less(record) {\n\t\t\treturn insertionPoint - 1, true\n\t\t}\n\t}\n\n\treturn insertionPoint, false\n}\n\n// insertAt inserts a value into the given index, pushing all subsequent values\n// forward.\nfunc (childSlice *children) insertAt(index int, n *node) {\n\toriginalLength := len(*childSlice)\n\n\t// Extend the slice by one element\n\t*childSlice = append(*childSlice, nil)\n\n\t// Move elements from the end to avoid overwriting during the copy\n\tif index \u003c originalLength {\n\t\tfor i := originalLength; i \u003e index; i-- {\n\t\t\t(*childSlice)[i] = (*childSlice)[i-1]\n\t\t}\n\t}\n\n\t// Insert the new record\n\t(*childSlice)[index] = n\n}\n\n// removeAt removes a Record from the records slice at the specified index.\n// It shifts subsequent records to fill the gap and returns the removed Record.\nfunc (childSlicePointer *children) removeAt(index int) *node {\n\tchildSlice := *childSlicePointer\n\tremovedChild := childSlice[index]\n\tcopy(childSlice[index:], childSlice[index+1:])\n\tchildSlice[len(childSlice)-1] = nil\n\t*childSlicePointer = childSlice[:len(childSlice)-1]\n\n\treturn removedChild\n}\n\n// Pop removes and returns the last Record from the records slice.\n// It also clears the reference to the removed Record to aid garbage collection.\nfunc (childSlicePointer *children) pop() *node {\n\tchildSlice := *childSlicePointer\n\tlastIndex := len(childSlice) - 1\n\tremovedChild := childSlice[lastIndex]\n\tchildSlice[lastIndex] = nil\n\t*childSlicePointer = childSlice[:lastIndex]\n\treturn removedChild\n}\n\n// This slice is intended only as a supply of records for the truncate function\n// that follows, and it should not be changed or altered.\nvar emptyChildren = make(children, 32)\n\n// truncate reduces the length of the slice to the specified index,\n// and clears the elements beyond that index to prevent memory leaks.\n// The index must be less than or equal to the current length of the slice.\nfunc (originalSlice *children) truncate(index int) {\n\t// Split the slice into the part to keep and the part to clear.\n\tchildrenToKeep := (*originalSlice)[:index]\n\tchildrenToClear := (*originalSlice)[index:]\n\n\t// Update the original slice to only contain the records to keep.\n\t*originalSlice = childrenToKeep\n\n\t// Clear the memory of the part that was truncated.\n\tfor len(childrenToClear) \u003e 0 {\n\t\t// Copy empty values from `emptyChildren` to the recordsToClear slice.\n\t\t// This effectively \"clears\" the memory by overwriting elements.\n\t\tnumCleared := copy(childrenToClear, emptyChildren)\n\n\t\t// Slice recordsToClear to exclude the elements that were just cleared.\n\t\tchildrenToClear = childrenToClear[numCleared:]\n\t}\n}\n\n// mutableFor creates a mutable copy of the node if the current node does not\n// already belong to the provided copy-on-write context (COW). If the node is\n// already associated with the given COW context, it returns the current node.\n//\n// Parameters:\n// - cowCtx: The copy-on-write context that should own the returned node.\n//\n// Returns:\n// - A pointer to the mutable node associated with the given COW context.\n//\n// If the current node belongs to a different COW context, this function:\n// - Allocates a new node using the provided context.\n// - Copies the node’s records and children slices into the newly allocated node.\n// - Returns the new node which is now owned by the given COW context.\nfunc (n *node) mutableFor(cowCtx *copyOnWriteContext) *node {\n\t// If the current node is already owned by the provided context, return it as-is.\n\tif n.cowCtx == cowCtx {\n\t\treturn n\n\t}\n\n\t// Create a new node in the provided context.\n\tnewNode := cowCtx.newNode()\n\n\t// Copy the records from the current node into the new node.\n\tnewNode.records = append(newNode.records[:0], n.records...)\n\n\t// Copy the children from the current node into the new node.\n\tnewNode.children = append(newNode.children[:0], n.children...)\n\n\treturn newNode\n}\n\n// mutableChild ensures that the child node at the given index is mutable and\n// associated with the same COW context as the parent node. If the child node\n// belongs to a different context, a copy of the child is created and stored in the\n// parent node.\n//\n// Parameters:\n// - i: The index of the child node to be made mutable.\n//\n// Returns:\n// - A pointer to the mutable child node.\nfunc (n *node) mutableChild(i int) *node {\n\t// Ensure that the child at index `i` is mutable and belongs to the same context as the parent.\n\tmutableChildNode := n.children[i].mutableFor(n.cowCtx)\n\t// Update the child node reference in the current node to the mutable version.\n\tn.children[i] = mutableChildNode\n\treturn mutableChildNode\n}\n\n// split splits the given node at the given index. The current node shrinks,\n// and this function returns the record that existed at that index and a new node\n// containing all records/children after it.\nfunc (n *node) split(i int) (Record, *node) {\n\trecord := n.records[i]\n\tnext := n.cowCtx.newNode()\n\tnext.records = append(next.records, n.records[i+1:]...)\n\tn.records.truncate(i)\n\tif len(n.children) \u003e 0 {\n\t\tnext.children = append(next.children, n.children[i+1:]...)\n\t\tn.children.truncate(i + 1)\n\t}\n\treturn record, next\n}\n\n// maybeSplitChild checks if a child should be split, and if so splits it.\n// Returns whether or not a split occurred.\nfunc (n *node) maybeSplitChild(i, maxRecords int) bool {\n\tif len(n.children[i].records) \u003c maxRecords {\n\t\treturn false\n\t}\n\tfirst := n.mutableChild(i)\n\trecord, second := first.split(maxRecords / 2)\n\tn.records.insertAt(i, record)\n\tn.children.insertAt(i+1, second)\n\treturn true\n}\n\n// insert adds a record to the subtree rooted at the current node, ensuring that no node in the subtree\n// exceeds the maximum number of allowed records (`maxRecords`). If an equivalent record is already present,\n// it replaces the existing one and returns it; otherwise, it returns nil.\n//\n// Parameters:\n// - record: The record to be inserted.\n// - maxRecords: The maximum number of records allowed per node.\n//\n// Returns:\n// - The record that was replaced if an equivalent record already existed, otherwise nil.\nfunc (n *node) insert(record Record, maxRecords int) Record {\n\t// Find the position where the new record should be inserted and check if an equivalent record already exists.\n\tinsertionIndex, recordExists := n.records.find(record)\n\n\tif recordExists {\n\t\t// If an equivalent record is found, replace it and return the old record.\n\t\texistingRecord := n.records[insertionIndex]\n\t\tn.records[insertionIndex] = record\n\t\treturn existingRecord\n\t}\n\n\t// If the current node is a leaf (has no children), insert the new record at the calculated index.\n\tif len(n.children) == 0 {\n\t\tn.records.insertAt(insertionIndex, record)\n\t\treturn nil\n\t}\n\n\t// Check if the child node at the insertion index needs to be split due to exceeding maxRecords.\n\tif n.maybeSplitChild(insertionIndex, maxRecords) {\n\t\t// If a split occurred, compare the new record with the record moved up to the current node.\n\t\tsplitRecord := n.records[insertionIndex]\n\t\tswitch {\n\t\tcase record.Less(splitRecord):\n\t\t\t// The new record belongs to the first (left) split node; no change to insertion index.\n\t\tcase splitRecord.Less(record):\n\t\t\t// The new record belongs to the second (right) split node; move the insertion index to the next position.\n\t\t\tinsertionIndex++\n\t\tdefault:\n\t\t\t// If the record is equivalent to the split record, replace it and return the old record.\n\t\t\texistingRecord := n.records[insertionIndex]\n\t\t\tn.records[insertionIndex] = record\n\t\t\treturn existingRecord\n\t\t}\n\t}\n\n\t// Recursively insert the record into the appropriate child node, now guaranteed to have space.\n\treturn n.mutableChild(insertionIndex).insert(record, maxRecords)\n}\n\n// get finds the given key in the subtree and returns it.\nfunc (n *node) get(key Record) Record {\n\ti, found := n.records.find(key)\n\tif found {\n\t\treturn n.records[i]\n\t} else if len(n.children) \u003e 0 {\n\t\treturn n.children[i].get(key)\n\t}\n\treturn nil\n}\n\n// min returns the first record in the subtree.\nfunc min(n *node) Record {\n\tif n == nil {\n\t\treturn nil\n\t}\n\tfor len(n.children) \u003e 0 {\n\t\tn = n.children[0]\n\t}\n\tif len(n.records) == 0 {\n\t\treturn nil\n\t}\n\treturn n.records[0]\n}\n\n// max returns the last record in the subtree.\nfunc max(n *node) Record {\n\tif n == nil {\n\t\treturn nil\n\t}\n\tfor len(n.children) \u003e 0 {\n\t\tn = n.children[len(n.children)-1]\n\t}\n\tif len(n.records) == 0 {\n\t\treturn nil\n\t}\n\treturn n.records[len(n.records)-1]\n}\n\n// toRemove details what record to remove in a node.remove call.\ntype toRemove int\n\nconst (\n\tremoveRecord toRemove = iota // removes the given record\n\tremoveMin // removes smallest record in the subtree\n\tremoveMax // removes largest record in the subtree\n)\n\n// remove removes a record from the subtree rooted at the current node.\n//\n// Parameters:\n// - record: The record to be removed (can be nil when the removal type indicates min or max).\n// - minRecords: The minimum number of records a node should have after removal.\n// - typ: The type of removal operation to perform (removeMin, removeMax, or removeRecord).\n//\n// Returns:\n// - The record that was removed, or nil if no such record was found.\nfunc (n *node) remove(record Record, minRecords int, removalType toRemove) Record {\n\tvar targetIndex int\n\tvar recordFound bool\n\n\t// Determine the index of the record to remove based on the removal type.\n\tswitch removalType {\n\tcase removeMax:\n\t\t// If this node is a leaf, remove and return the last record.\n\t\tif len(n.children) == 0 {\n\t\t\treturn n.records.pop()\n\t\t}\n\t\ttargetIndex = len(n.records) // The last record index for removing max.\n\n\tcase removeMin:\n\t\t// If this node is a leaf, remove and return the first record.\n\t\tif len(n.children) == 0 {\n\t\t\treturn n.records.removeAt(0)\n\t\t}\n\t\ttargetIndex = 0 // The first record index for removing min.\n\n\tcase removeRecord:\n\t\t// Locate the index of the record to be removed.\n\t\ttargetIndex, recordFound = n.records.find(record)\n\t\tif len(n.children) == 0 {\n\t\t\tif recordFound {\n\t\t\t\treturn n.records.removeAt(targetIndex)\n\t\t\t}\n\t\t\treturn nil // The record was not found in the leaf node.\n\t\t}\n\n\tdefault:\n\t\tpanic(\"invalid removal type\")\n\t}\n\n\t// If the current node has children, handle the removal recursively.\n\tif len(n.children[targetIndex].records) \u003c= minRecords {\n\t\t// If the target child node has too few records, grow it before proceeding with removal.\n\t\treturn n.growChildAndRemove(targetIndex, record, minRecords, removalType)\n\t}\n\n\t// Get a mutable reference to the child node at the target index.\n\ttargetChild := n.mutableChild(targetIndex)\n\n\t// If the record to be removed was found in the current node:\n\tif recordFound {\n\t\t// Replace the current record with its predecessor from the child node, and return the removed record.\n\t\treplacedRecord := n.records[targetIndex]\n\t\tn.records[targetIndex] = targetChild.remove(nil, minRecords, removeMax)\n\t\treturn replacedRecord\n\t}\n\n\t// Recursively remove the record from the child node.\n\treturn targetChild.remove(record, minRecords, removalType)\n}\n\n// growChildAndRemove grows child 'i' to make sure it's possible to remove an\n// record from it while keeping it at minRecords, then calls remove to actually\n// remove it.\n//\n// Most documentation says we have to do two sets of special casing:\n// 1. record is in this node\n// 2. record is in child\n//\n// In both cases, we need to handle the two subcases:\n//\n//\tA) node has enough values that it can spare one\n//\tB) node doesn't have enough values\n//\n// For the latter, we have to check:\n//\n//\ta) left sibling has node to spare\n//\tb) right sibling has node to spare\n//\tc) we must merge\n//\n// To simplify our code here, we handle cases #1 and #2 the same:\n// If a node doesn't have enough records, we make sure it does (using a,b,c).\n// We then simply redo our remove call, and the second time (regardless of\n// whether we're in case 1 or 2), we'll have enough records and can guarantee\n// that we hit case A.\nfunc (n *node) growChildAndRemove(i int, record Record, minRecords int, typ toRemove) Record {\n\tif i \u003e 0 \u0026\u0026 len(n.children[i-1].records) \u003e minRecords {\n\t\t// Steal from left child\n\t\tchild := n.mutableChild(i)\n\t\tstealFrom := n.mutableChild(i - 1)\n\t\tstolenRecord := stealFrom.records.pop()\n\t\tchild.records.insertAt(0, n.records[i-1])\n\t\tn.records[i-1] = stolenRecord\n\t\tif len(stealFrom.children) \u003e 0 {\n\t\t\tchild.children.insertAt(0, stealFrom.children.pop())\n\t\t}\n\t} else if i \u003c len(n.records) \u0026\u0026 len(n.children[i+1].records) \u003e minRecords {\n\t\t// steal from right child\n\t\tchild := n.mutableChild(i)\n\t\tstealFrom := n.mutableChild(i + 1)\n\t\tstolenRecord := stealFrom.records.removeAt(0)\n\t\tchild.records = append(child.records, n.records[i])\n\t\tn.records[i] = stolenRecord\n\t\tif len(stealFrom.children) \u003e 0 {\n\t\t\tchild.children = append(child.children, stealFrom.children.removeAt(0))\n\t\t}\n\t} else {\n\t\tif i \u003e= len(n.records) {\n\t\t\ti--\n\t\t}\n\t\tchild := n.mutableChild(i)\n\t\t// merge with right child\n\t\tmergeRecord := n.records.removeAt(i)\n\t\tmergeChild := n.children.removeAt(i + 1).mutableFor(n.cowCtx)\n\t\tchild.records = append(child.records, mergeRecord)\n\t\tchild.records = append(child.records, mergeChild.records...)\n\t\tchild.children = append(child.children, mergeChild.children...)\n\t\tn.cowCtx.freeNode(mergeChild)\n\t}\n\treturn n.remove(record, minRecords, typ)\n}\n\ntype direction int\n\nconst (\n\tdescend = direction(-1)\n\tascend = direction(+1)\n)\n\n// iterate provides a simple method for iterating over elements in the tree.\n//\n// When ascending, the 'start' should be less than 'stop' and when descending,\n// the 'start' should be greater than 'stop'. Setting 'includeStart' to true\n// will force the iterator to include the first record when it equals 'start',\n// thus creating a \"greaterOrEqual\" or \"lessThanEqual\" rather than just a\n// \"greaterThan\" or \"lessThan\" queries.\nfunc (n *node) iterate(dir direction, start, stop Record, includeStart bool, hit bool, iter RecordIterator) (bool, bool) {\n\tvar ok, found bool\n\tvar index int\n\tswitch dir {\n\tcase ascend:\n\t\tif start != nil {\n\t\t\tindex, _ = n.records.find(start)\n\t\t}\n\t\tfor i := index; i \u003c len(n.records); i++ {\n\t\t\tif len(n.children) \u003e 0 {\n\t\t\t\tif hit, ok = n.children[i].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\t\treturn hit, false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !includeStart \u0026\u0026 !hit \u0026\u0026 start != nil \u0026\u0026 !start.Less(n.records[i]) {\n\t\t\t\thit = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\thit = true\n\t\t\tif stop != nil \u0026\u0026 !n.records[i].Less(stop) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t\tif !iter(n.records[i]) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t\tif len(n.children) \u003e 0 {\n\t\t\tif hit, ok = n.children[len(n.children)-1].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\tcase descend:\n\t\tif start != nil {\n\t\t\tindex, found = n.records.find(start)\n\t\t\tif !found {\n\t\t\t\tindex = index - 1\n\t\t\t}\n\t\t} else {\n\t\t\tindex = len(n.records) - 1\n\t\t}\n\t\tfor i := index; i \u003e= 0; i-- {\n\t\t\tif start != nil \u0026\u0026 !n.records[i].Less(start) {\n\t\t\t\tif !includeStart || hit || start.Less(n.records[i]) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(n.children) \u003e 0 {\n\t\t\t\tif hit, ok = n.children[i+1].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\t\treturn hit, false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif stop != nil \u0026\u0026 !stop.Less(n.records[i]) {\n\t\t\t\treturn hit, false //\tcontinue\n\t\t\t}\n\t\t\thit = true\n\t\t\tif !iter(n.records[i]) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t\tif len(n.children) \u003e 0 {\n\t\t\tif hit, ok = n.children[0].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t}\n\treturn hit, true\n}\n\nfunc (tree *BTree) Iterate(dir direction, start, stop Record, includeStart bool, hit bool, iter RecordIterator) (bool, bool) {\n\treturn tree.root.iterate(dir, start, stop, includeStart, hit, iter)\n}\n\n// Clone creates a new BTree instance that shares the current tree's structure using a copy-on-write (COW) approach.\n//\n// How Cloning Works:\n// - The cloned tree (`clonedTree`) shares the current tree’s nodes in a read-only state. This means that no additional memory\n// is allocated for shared nodes, and read operations on the cloned tree are as fast as on the original tree.\n// - When either the original tree (`t`) or the cloned tree (`clonedTree`) needs to perform a write operation (such as an insert, delete, etc.),\n// a new copy of the affected nodes is created on-demand. This ensures that modifications to one tree do not affect the other.\n//\n// Performance Implications:\n// - **Clone Creation:** The creation of a clone is inexpensive since it only involves copying references to the original tree's nodes\n// and creating new copy-on-write contexts.\n// - **Read Operations:** Reading from either the original tree or the cloned tree has no additional performance overhead compared to the original tree.\n// - **Write Operations:** The first write operation on either tree may experience a slight slow-down due to the allocation of new nodes,\n// but subsequent write operations will perform at the same speed as if the tree were not cloned.\n//\n// Returns:\n// - A new BTree instance (`clonedTree`) that shares the original tree's structure.\nfunc (t *BTree) Clone() *BTree {\n\t// Create two independent copy-on-write contexts, one for the original tree (`t`) and one for the cloned tree.\n\toriginalContext := *t.cowCtx\n\tclonedContext := *t.cowCtx\n\n\t// Create a shallow copy of the current tree, which will be the new cloned tree.\n\tclonedTree := *t\n\n\t// Assign the new contexts to their respective trees.\n\tt.cowCtx = \u0026originalContext\n\tclonedTree.cowCtx = \u0026clonedContext\n\n\treturn \u0026clonedTree\n}\n\n// maxRecords returns the max number of records to allow per node.\nfunc (t *BTree) maxRecords() int {\n\treturn t.degree*2 - 1\n}\n\n// minRecords returns the min number of records to allow per node (ignored for the\n// root node).\nfunc (t *BTree) minRecords() int {\n\treturn t.degree - 1\n}\n\nfunc (c *copyOnWriteContext) newNode() (n *node) {\n\tn = c.nodes.newNode()\n\tn.cowCtx = c\n\treturn\n}\n\ntype freeType int\n\nconst (\n\tftFreelistFull freeType = iota // node was freed (available for GC, not stored in nodes)\n\tftStored // node was stored in the nodes for later use\n\tftNotOwned // node was ignored by COW, since it's owned by another one\n)\n\n// freeNode frees a node within a given COW context, if it's owned by that\n// context. It returns what happened to the node (see freeType const\n// documentation).\nfunc (c *copyOnWriteContext) freeNode(n *node) freeType {\n\tif n.cowCtx == c {\n\t\t// clear to allow GC\n\t\tn.records.truncate(0)\n\t\tn.children.truncate(0)\n\t\tn.cowCtx = nil\n\t\tif c.nodes.freeNode(n) {\n\t\t\treturn ftStored\n\t\t} else {\n\t\t\treturn ftFreelistFull\n\t\t}\n\t} else {\n\t\treturn ftNotOwned\n\t}\n}\n\n// Insert adds the given record to the B-tree. If a record already exists in the tree with the same value,\n// it is replaced, and the old record is returned. Otherwise, it returns nil.\n//\n// Notes:\n// - The function panics if a nil record is provided as input.\n// - If the root node is empty, a new root node is created and the record is inserted.\n//\n// Parameters:\n// - record: The record to be inserted into the B-tree.\n//\n// Returns:\n// - The replaced record if an equivalent record already exists, or nil if no replacement occurred.\nfunc (t *BTree) Insert(record Record) Record {\n\tif record == nil {\n\t\tpanic(\"nil record cannot be added to BTree\")\n\t}\n\n\t// If the tree is empty (no root), create a new root node and insert the record.\n\tif t.root == nil {\n\t\tt.root = t.cowCtx.newNode()\n\t\tt.root.records = append(t.root.records, record)\n\t\tt.length++\n\t\treturn nil\n\t}\n\n\t// Ensure that the root node is mutable (associated with the current tree's copy-on-write context).\n\tt.root = t.root.mutableFor(t.cowCtx)\n\n\t// If the root node is full (contains the maximum number of records), split the root.\n\tif len(t.root.records) \u003e= t.maxRecords() {\n\t\t// Split the root node, promoting the middle record and creating a new child node.\n\t\tmiddleRecord, newChildNode := t.root.split(t.maxRecords() / 2)\n\n\t\t// Create a new root node to hold the promoted middle record.\n\t\toldRoot := t.root\n\t\tt.root = t.cowCtx.newNode()\n\t\tt.root.records = append(t.root.records, middleRecord)\n\t\tt.root.children = append(t.root.children, oldRoot, newChildNode)\n\t}\n\n\t// Insert the new record into the subtree rooted at the current root node.\n\treplacedRecord := t.root.insert(record, t.maxRecords())\n\n\t// If no record was replaced, increase the tree's length.\n\tif replacedRecord == nil {\n\t\tt.length++\n\t}\n\n\treturn replacedRecord\n}\n\n// Delete removes an record equal to the passed in record from the tree, returning\n// it. If no such record exists, returns nil.\nfunc (t *BTree) Delete(record Record) Record {\n\treturn t.deleteRecord(record, removeRecord)\n}\n\n// DeleteMin removes the smallest record in the tree and returns it.\n// If no such record exists, returns nil.\nfunc (t *BTree) DeleteMin() Record {\n\treturn t.deleteRecord(nil, removeMin)\n}\n\n// Shift is identical to DeleteMin. If the tree is thought of as an ordered list, then Shift()\n// removes the element at the start of the list, the smallest element, and returns it.\nfunc (t *BTree) Shift() Record {\n\treturn t.deleteRecord(nil, removeMin)\n}\n\n// DeleteMax removes the largest record in the tree and returns it.\n// If no such record exists, returns nil.\nfunc (t *BTree) DeleteMax() Record {\n\treturn t.deleteRecord(nil, removeMax)\n}\n\n// Pop is identical to DeleteMax. If the tree is thought of as an ordered list, then Shift()\n// removes the element at the end of the list, the largest element, and returns it.\nfunc (t *BTree) Pop() Record {\n\treturn t.deleteRecord(nil, removeMax)\n}\n\n// deleteRecord removes a record from the B-tree based on the specified removal type (removeMin, removeMax, or removeRecord).\n// It returns the removed record if it was found, or nil if no matching record was found.\n//\n// Parameters:\n// - record: The record to be removed (can be nil if the removal type indicates min or max).\n// - removalType: The type of removal operation to perform (removeMin, removeMax, or removeRecord).\n//\n// Returns:\n// - The removed record if it existed in the tree, or nil if it was not found.\nfunc (t *BTree) deleteRecord(record Record, removalType toRemove) Record {\n\t// If the tree is empty or the root has no records, return nil.\n\tif t.root == nil || len(t.root.records) == 0 {\n\t\treturn nil\n\t}\n\n\t// Ensure the root node is mutable (associated with the tree's copy-on-write context).\n\tt.root = t.root.mutableFor(t.cowCtx)\n\n\t// Attempt to remove the specified record from the root node.\n\tremovedRecord := t.root.remove(record, t.minRecords(), removalType)\n\n\t// Check if the root node has become empty but still has children.\n\t// In this case, the tree height should be reduced, making the first child the new root.\n\tif len(t.root.records) == 0 \u0026\u0026 len(t.root.children) \u003e 0 {\n\t\toldRoot := t.root\n\t\tt.root = t.root.children[0]\n\t\t// Free the old root node, as it is no longer needed.\n\t\tt.cowCtx.freeNode(oldRoot)\n\t}\n\n\t// If a record was successfully removed, decrease the tree's length.\n\tif removedRecord != nil {\n\t\tt.length--\n\t}\n\n\treturn removedRecord\n}\n\n// AscendRange calls the iterator for every value in the tree within the range\n// [greaterOrEqual, lessThan), until iterator returns false.\nfunc (t *BTree) AscendRange(greaterOrEqual, lessThan Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, greaterOrEqual, lessThan, true, false, iterator)\n}\n\n// AscendLessThan calls the iterator for every value in the tree within the range\n// [first, pivot), until iterator returns false.\nfunc (t *BTree) AscendLessThan(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, nil, pivot, false, false, iterator)\n}\n\n// AscendGreaterOrEqual calls the iterator for every value in the tree within\n// the range [pivot, last], until iterator returns false.\nfunc (t *BTree) AscendGreaterOrEqual(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, pivot, nil, true, false, iterator)\n}\n\n// Ascend calls the iterator for every value in the tree within the range\n// [first, last], until iterator returns false.\nfunc (t *BTree) Ascend(iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, nil, nil, false, false, iterator)\n}\n\n// DescendRange calls the iterator for every value in the tree within the range\n// [lessOrEqual, greaterThan), until iterator returns false.\nfunc (t *BTree) DescendRange(lessOrEqual, greaterThan Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, lessOrEqual, greaterThan, true, false, iterator)\n}\n\n// DescendLessOrEqual calls the iterator for every value in the tree within the range\n// [pivot, first], until iterator returns false.\nfunc (t *BTree) DescendLessOrEqual(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, pivot, nil, true, false, iterator)\n}\n\n// DescendGreaterThan calls the iterator for every value in the tree within\n// the range [last, pivot), until iterator returns false.\nfunc (t *BTree) DescendGreaterThan(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, nil, pivot, false, false, iterator)\n}\n\n// Descend calls the iterator for every value in the tree within the range\n// [last, first], until iterator returns false.\nfunc (t *BTree) Descend(iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, nil, nil, false, false, iterator)\n}\n\n// Get looks for the key record in the tree, returning it. It returns nil if\n// unable to find that record.\nfunc (t *BTree) Get(key Record) Record {\n\tif t.root == nil {\n\t\treturn nil\n\t}\n\treturn t.root.get(key)\n}\n\n// Min returns the smallest record in the tree, or nil if the tree is empty.\nfunc (t *BTree) Min() Record {\n\treturn min(t.root)\n}\n\n// Max returns the largest record in the tree, or nil if the tree is empty.\nfunc (t *BTree) Max() Record {\n\treturn max(t.root)\n}\n\n// Has returns true if the given key is in the tree.\nfunc (t *BTree) Has(key Record) bool {\n\treturn t.Get(key) != nil\n}\n\n// Len returns the number of records currently in the tree.\nfunc (t *BTree) Len() int {\n\treturn t.length\n}\n\n// Clear removes all elements from the B-tree.\n//\n// Parameters:\n// - addNodesToFreelist:\n// - If true, the tree's nodes are added to the freelist during the clearing process,\n// up to the freelist's capacity.\n// - If false, the root node is simply dereferenced, allowing Go's garbage collector\n// to reclaim the memory.\n//\n// Benefits:\n// - **Performance:**\n// - Significantly faster than deleting each element individually, as it avoids the overhead\n// of searching and updating the tree structure for each deletion.\n// - More efficient than creating a new tree, since it reuses existing nodes by adding them\n// to the freelist instead of discarding them to the garbage collector.\n//\n// Time Complexity:\n// - **O(1):**\n// - When `addNodesToFreelist` is false.\n// - When `addNodesToFreelist` is true but the freelist is already full.\n// - **O(freelist size):**\n// - When adding nodes to the freelist up to its capacity.\n// - **O(tree size):**\n// - When iterating through all nodes to add to the freelist, but none can be added due to\n// ownership by another tree.\n\nfunc (tree *BTree) Clear(addNodesToFreelist bool) {\n\tif tree.root != nil \u0026\u0026 addNodesToFreelist {\n\t\ttree.root.reset(tree.cowCtx)\n\t}\n\ttree.root = nil\n\ttree.length = 0\n}\n\n// reset adds all nodes in the current subtree to the freelist.\n//\n// The function operates recursively:\n// - It first attempts to reset all child nodes.\n// - If the freelist becomes full at any point, the process stops immediately.\n//\n// Parameters:\n// - copyOnWriteCtx: The copy-on-write context managing the freelist.\n//\n// Returns:\n// - true: Indicates that the parent node should continue attempting to reset its nodes.\n// - false: Indicates that the freelist is full and no further nodes should be added.\n//\n// Usage:\n// This method is called during the `Clear` operation of the B-tree to efficiently reuse\n// nodes by adding them to the freelist, thereby avoiding unnecessary allocations and reducing\n// garbage collection overhead.\nfunc (currentNode *node) reset(copyOnWriteCtx *copyOnWriteContext) bool {\n\t// Iterate through each child node and attempt to reset it.\n\tfor _, childNode := range currentNode.children {\n\t\t// If any child reset operation signals that the freelist is full, stop the process.\n\t\tif !childNode.reset(copyOnWriteCtx) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Attempt to add the current node to the freelist.\n\t// If the freelist is full after this operation, indicate to the parent to stop.\n\tfreelistStatus := copyOnWriteCtx.freeNode(currentNode)\n\treturn freelistStatus != ftFreelistFull\n}\n"},{"name":"btree_test.gno","body":"package btree\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"testing\"\n)\n\n// Content represents a key-value pair where the Key can be either an int or string\n// and the Value can be any type.\ntype Content struct {\n\tKey interface{}\n\tValue interface{}\n}\n\n// Less compares two Content records by their Keys.\n// The Key must be either an int or a string.\nfunc (c Content) Less(than Record) bool {\n\tother, ok := than.(Content)\n\tif !ok {\n\t\tpanic(\"cannot compare: incompatible types\")\n\t}\n\n\tswitch key := c.Key.(type) {\n\tcase int:\n\t\tswitch otherKey := other.Key.(type) {\n\t\tcase int:\n\t\t\treturn key \u003c otherKey\n\t\tcase string:\n\t\t\treturn true // ints are always less than strings\n\t\tdefault:\n\t\t\tpanic(\"unsupported key type: must be int or string\")\n\t\t}\n\tcase string:\n\t\tswitch otherKey := other.Key.(type) {\n\t\tcase int:\n\t\t\treturn false // strings are always greater than ints\n\t\tcase string:\n\t\t\treturn key \u003c otherKey\n\t\tdefault:\n\t\t\tpanic(\"unsupported key type: must be int or string\")\n\t\t}\n\tdefault:\n\t\tpanic(\"unsupported key type: must be int or string\")\n\t}\n}\n\ntype ContentSlice []Content\n\nfunc (s ContentSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s ContentSlice) Less(i, j int) bool {\n\treturn s[i].Less(s[j])\n}\n\nfunc (s ContentSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s ContentSlice) Copy() ContentSlice {\n\tnewSlice := make(ContentSlice, len(s))\n\tcopy(newSlice, s)\n\treturn newSlice\n}\n\n// Ensure Content implements the Record interface.\nvar _ Record = Content{}\n\n// ****************************************************************************\n// Test helpers\n// ****************************************************************************\n\nfunc genericSeeding(tree *BTree, size int) *BTree {\n\tfor i := 0; i \u003c size; i++ {\n\t\ttree.Insert(Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)})\n\t}\n\treturn tree\n}\n\nfunc intSlicesCompare(left, right []int) int {\n\tif len(left) != len(right) {\n\t\tif len(left) \u003e len(right) {\n\t\t\treturn 1\n\t\t} else {\n\t\t\treturn -1\n\t\t}\n\t}\n\n\tfor position, leftInt := range left {\n\t\tif leftInt != right[position] {\n\t\t\tif leftInt \u003e right[position] {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0\n}\n\n// ****************************************************************************\n// Tests\n// ****************************************************************************\n\nfunc TestLen(t *testing.T) {\n\tlength := genericSeeding(New(WithDegree(10)), 7).Len()\n\tif length != 7 {\n\t\tt.Errorf(\"Length is incorrect. Expected 7, but got %d.\", length)\n\t}\n\n\tlength = genericSeeding(New(WithDegree(5)), 111).Len()\n\tif length != 111 {\n\t\tt.Errorf(\"Length is incorrect. Expected 111, but got %d.\", length)\n\t}\n\n\tlength = genericSeeding(New(WithDegree(30)), 123).Len()\n\tif length != 123 {\n\t\tt.Errorf(\"Length is incorrect. Expected 123, but got %d.\", length)\n\t}\n\n}\n\nfunc TestHas(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 40)\n\n\tif tree.Has(Content{Key: 7}) != true {\n\t\tt.Errorf(\"Has(7) reported false, but it should be true.\")\n\t}\n\tif tree.Has(Content{Key: 39}) != true {\n\t\tt.Errorf(\"Has(40) reported false, but it should be true.\")\n\t}\n\tif tree.Has(Content{Key: 1111}) == true {\n\t\tt.Errorf(\"Has(1111) reported true, but it should be false.\")\n\t}\n}\n\nfunc TestMin(t *testing.T) {\n\tmin := Content(genericSeeding(New(WithDegree(10)), 53).Min())\n\n\tif min.Key != 0 {\n\t\tt.Errorf(\"Minimum should have been 0, but it was reported as %d.\", min)\n\t}\n}\n\nfunc TestMax(t *testing.T) {\n\tmax := Content(genericSeeding(New(WithDegree(10)), 53).Min())\n\n\tif max.Key != 0 {\n\t\tt.Errorf(\"Minimum should have been 0, but it was reported as %d.\", max)\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 40)\n\n\tif Content(tree.Get(Content{Key: 7})).Value != \"Value_7\" {\n\t\tt.Errorf(\"Get(7) should have returned 'Value_7', but it returned %v.\", tree.Get(Content{Key: 7}))\n\t}\n\tif Content(tree.Get(Content{Key: 39})).Value != \"Value_39\" {\n\t\tt.Errorf(\"Get(40) should have returnd 'Value_39', but it returned %v.\", tree.Get(Content{Key: 39}))\n\t}\n\tif tree.Get(Content{Key: 1111}) != nil {\n\t\tt.Errorf(\"Get(1111) returned %v, but it should be nil.\", Content(tree.Get(Content{Key: 1111})))\n\t}\n}\n\nfunc TestDescend(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 5)\n\n\texpected := []int{4, 3, 2, 1, 0}\n\tfound := []int{}\n\n\ttree.Descend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"Descend returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendGreaterThan(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{9, 8, 7, 6, 5}\n\tfound := []int{}\n\n\ttree.DescendGreaterThan(Content{Key: 4}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendGreaterThan returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendLessOrEqual(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{4, 3, 2, 1, 0}\n\tfound := []int{}\n\n\ttree.DescendLessOrEqual(Content{Key: 4}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendLessOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendRange(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{6, 5, 4, 3, 2}\n\tfound := []int{}\n\n\ttree.DescendRange(Content{Key: 6}, Content{Key: 1}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendRange returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscend(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 5)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\ttree.Ascend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"Ascend returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendGreaterOrEqual(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{5, 6, 7, 8, 9}\n\tfound := []int{}\n\n\ttree.AscendGreaterOrEqual(Content{Key: 5}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"AscendGreaterOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendLessThan(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\ttree.AscendLessThan(Content{Key: 5}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendLessOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendRange(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{2, 3, 4, 5, 6}\n\tfound := []int{}\n\n\ttree.AscendRange(Content{Key: 2}, Content{Key: 7}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendRange returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDeleteMin(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestShift(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of Shift returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDeleteMax(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{99, 98, 97, 96, 95}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestPop(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{99, 98, 97, 96, 95}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestInsertGet(t *testing.T) {\n\ttree := New(WithDegree(4))\n\n\texpected := []Content{}\n\n\tfor count := 0; count \u003c 20; count++ {\n\t\tvalue := fmt.Sprintf(\"Value_%d\", count)\n\t\ttree.Insert(Content{Key: count, Value: value})\n\t\texpected = append(expected, Content{Key: count, Value: value})\n\t}\n\n\tfor count := 0; count \u003c 20; count++ {\n\t\tif tree.Get(Content{Key: count}) != expected[count] {\n\t\t\tt.Errorf(\"Insert/Get doesn't appear to be working. Expected to retrieve %v with key %d, but got %v.\", expected[count], count, tree.Get(Content{Key: count}))\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n}\n\n// ***** The following tests are functional or stress testing type tests.\n\nfunc TestBTree(t *testing.T) {\n\t// Create a B-Tree of degree 3\n\ttree := New(WithDegree(3))\n\n\t//insertData := []Content{}\n\tvar insertData ContentSlice\n\n\t// Insert integer keys\n\tintKeys := []int{10, 20, 5, 6, 12, 30, 7, 17}\n\tfor _, key := range intKeys {\n\t\tcontent := Content{Key: key, Value: fmt.Sprintf(\"Value_%d\", key)}\n\t\tinsertData = append(insertData, content)\n\t\tresult := tree.Insert(content)\n\t\tif result != nil {\n\t\t\tt.Errorf(\"**** Already in the tree? %v\", result)\n\t\t}\n\t}\n\n\t// Insert string keys\n\tstringKeys := []string{\"apple\", \"banana\", \"cherry\", \"date\", \"fig\", \"grape\"}\n\tfor _, key := range stringKeys {\n\t\tcontent := Content{Key: key, Value: fmt.Sprintf(\"Fruit_%s\", key)}\n\t\tinsertData = append(insertData, content)\n\t\ttree.Insert(content)\n\t}\n\n\tif tree.Len() != 14 {\n\t\tt.Errorf(\"Tree length wrong. Expected 14 but got %d\", tree.Len())\n\t}\n\n\t// Search for existing and non-existing keys\n\tsearchTests := []struct {\n\t\ttest Content\n\t\texpected bool\n\t}{\n\t\t{Content{Key: 10, Value: \"Value_10\"}, true},\n\t\t{Content{Key: 15, Value: \"\"}, false},\n\t\t{Content{Key: \"banana\", Value: \"Fruit_banana\"}, true},\n\t\t{Content{Key: \"kiwi\", Value: \"\"}, false},\n\t}\n\n\tt.Logf(\"Search Tests:\\n\")\n\tfor _, test := range searchTests {\n\t\tval := tree.Get(test.test)\n\n\t\tif test.expected {\n\t\t\tif val != nil \u0026\u0026 Content(val).Value == test.test.Value {\n\t\t\t\tt.Logf(\"Found expected key:value %v:%v\", test.test.Key, test.test.Value)\n\t\t\t} else {\n\t\t\t\tif val == nil {\n\t\t\t\t\tt.Logf(\"Didn't find %v, but expected\", test.test.Key)\n\t\t\t\t} else {\n\t\t\t\t\tt.Errorf(\"Expected key %v:%v, but found %v:%v.\", test.test.Key, test.test.Value, Content(val).Key, Content(val).Value)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Did not expect key %v, but found key:value %v:%v\", test.test.Key, Content(val).Key, Content(val).Value)\n\t\t\t} else {\n\t\t\t\tt.Logf(\"Didn't find %v, but wasn't expected\", test.test.Key)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Iterate in order\n\tt.Logf(\"\\nIn-order Iteration:\\n\")\n\tpos := 0\n\n\tif tree.Len() != 14 {\n\t\tt.Errorf(\"Tree length wrong. Expected 14 but got %d\", tree.Len())\n\t}\n\n\tsortedInsertData := insertData.Copy()\n\tsort.Sort(sortedInsertData)\n\n\tt.Logf(\"Insert Data Length: %d\", len(insertData))\n\tt.Logf(\"Sorted Data Length: %d\", len(sortedInsertData))\n\tt.Logf(\"Tree Length: %d\", tree.Len())\n\n\ttree.Ascend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tt.Logf(\"Key:Value == %v:%v\", record.Key, record.Value)\n\t\tif record.Key != sortedInsertData[pos].Key {\n\t\t\tt.Errorf(\"Out of order! Expected %v, but got %v\", sortedInsertData[pos].Key, record.Key)\n\t\t}\n\t\tpos++\n\t\treturn true\n\t})\n\t// // Reverse Iterate\n\tt.Logf(\"\\nReverse-order Iteration:\\n\")\n\tpos = len(sortedInsertData) - 1\n\n\ttree.Descend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tt.Logf(\"Key:Value == %v:%v\", record.Key, record.Value)\n\t\tif record.Key != sortedInsertData[pos].Key {\n\t\t\tt.Errorf(\"Out of order! Expected %v, but got %v\", sortedInsertData[pos].Key, record.Key)\n\t\t}\n\t\tpos--\n\t\treturn true\n\t})\n\n\tdeleteTests := []Content{\n\t\tContent{Key: 10, Value: \"Value_10\"},\n\t\tContent{Key: 15, Value: \"\"},\n\t\tContent{Key: \"banana\", Value: \"Fruit_banana\"},\n\t\tContent{Key: \"kiwi\", Value: \"\"},\n\t}\n\tfor _, test := range deleteTests {\n\t\tfmt.Printf(\"\\nDeleting %+v\\n\", test)\n\t\ttree.Delete(test)\n\t}\n\n\tif tree.Len() != 12 {\n\t\tt.Errorf(\"Tree length wrong. Expected 12 but got %d\", tree.Len())\n\t}\n\n\tfor _, test := range deleteTests {\n\t\tval := tree.Get(test)\n\t\tif val != nil {\n\t\t\tt.Errorf(\"Did not expect key %v, but found key:value %v:%v\", test.Key, Content(val).Key, Content(val).Value)\n\t\t} else {\n\t\t\tt.Logf(\"Didn't find %v, but wasn't expected\", test.Key)\n\t\t}\n\t}\n}\n\nfunc TestStress(t *testing.T) {\n\t// Loop through creating B-Trees with a range of degrees from 3 to 12, stepping by 3.\n\t// Insert 1000 records into each tree, then search for each record.\n\t// Delete half of the records, skipping every other one, then search for each record.\n\n\tfor degree := 3; degree \u003c= 12; degree += 3 {\n\t\tt.Logf(\"Testing B-Tree of degree %d\\n\", degree)\n\t\ttree := New(WithDegree(degree))\n\n\t\t// Insert 1000 records\n\t\tt.Logf(\"Inserting 1000 records\\n\")\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\ttree.Insert(content)\n\t\t}\n\n\t\t// Search for all records\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\tval := tree.Get(content)\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\t// Delete half of the records\n\t\tfor i := 0; i \u003c 1000; i += 2 {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\ttree.Delete(content)\n\t\t}\n\n\t\t// Search for all records\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\tval := tree.Get(content)\n\t\t\tif i%2 == 0 {\n\t\t\t\tif val != nil {\n\t\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif val == nil {\n\t\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Now create a very large tree, with 100000 records\n\t// Then delete roughly one third of them, using a very basic random number generation scheme\n\t// (implement it right here) to determine which records to delete.\n\t// Print a few lines using Logf to let the user know what's happening.\n\n\tt.Logf(\"Testing B-Tree of degree 10 with 100000 records\\n\")\n\ttree := New(WithDegree(10))\n\n\t// Insert 100000 records\n\tt.Logf(\"Inserting 100000 records\\n\")\n\tfor i := 0; i \u003c 100000; i++ {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Insert(content)\n\t}\n\n\t// Implement a very basic random number generator\n\tseed := 0\n\trandom := func() int {\n\t\tseed = (seed*1103515245 + 12345) \u0026 0x7fffffff\n\t\treturn seed\n\t}\n\n\t// Delete one third of the records\n\tt.Logf(\"Deleting one third of the records\\n\")\n\tfor i := 0; i \u003c 35000; i++ {\n\t\tcontent := Content{Key: random() % 100000, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t}\n}\n\n// Write a test that populates a large B-Tree with 10000 records.\n// It should then `Clone` the tree, make some changes to both the original and the clone,\n// And then clone the clone, and make some changes to all three trees, and then check that the changes are isolated\n// to the tree they were made in.\n\nfunc TestBTreeCloneIsolation(t *testing.T) {\n\tt.Logf(\"Creating B-Tree of degree 10 with 10000 records\\n\")\n\ttree := genericSeeding(New(WithDegree(10)), 10000)\n\n\t// Clone the tree\n\tt.Logf(\"Cloning the tree\\n\")\n\tclone := tree.Clone()\n\n\t// Make some changes to the original and the clone\n\tt.Logf(\"Making changes to the original and the clone\\n\")\n\tfor i := 0; i \u003c 10000; i += 2 {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t\tcontent = Content{Key: i + 1, Value: fmt.Sprintf(\"Value_%d\", i+1)}\n\t\tclone.Delete(content)\n\t}\n\n\t// Clone the clone\n\tt.Logf(\"Cloning the clone\\n\")\n\tclone2 := clone.Clone()\n\n\t// Make some changes to all three trees\n\tt.Logf(\"Making changes to all three trees\\n\")\n\tfor i := 0; i \u003c 10000; i += 3 {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t\tcontent = Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i+1)}\n\t\tclone.Delete(content)\n\t\tcontent = Content{Key: i + 2, Value: fmt.Sprintf(\"Value_%d\", i+2)}\n\t\tclone2.Delete(content)\n\t}\n\n\t// Check that the changes are isolated to the tree they were made in\n\tt.Logf(\"Checking that the changes are isolated to the tree they were made in\\n\")\n\tfor i := 0; i \u003c 10000; i++ {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\tval := tree.Get(content)\n\n\t\tif i%3 == 0 || i%2 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\tval = clone.Get(content)\n\t\tif i%2 != 0 || i%3 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\tval = clone2.Get(content)\n\t\tif i%2 != 0 || (i-2)%3 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ypHao7585y7cDFOZeqnQTtK5Wt8jpkUhZfi9XzJ2qEwhD/zTkcQSzjmgkE5YWJAAXLNj7Mbp52DGpwojDVPpBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"btree","path":"gno.land/p/demo/btree","files":[{"name":"btree.gno","body":"//////////\n//\n// Copyright 2014 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n//\n// Copyright 2024 New Tendermint\n//\n// This Gno port of the original Go BTree is substantially rewritten/reimplemented\n// from the original, primarily for clarity of code, clarity of documentation,\n// and for compatibility with Gno.\n//\n// Authors:\n// Original version authors -- https://github.com/google/btree/graphs/contributors\n// Kirk Haines \u003cwyhaines@gmail.com\u003e\n//\n//////////\n\n// Package btree implements in-memory B-Trees of arbitrary degree.\n//\n// It has a flatter structure than an equivalent red-black or other binary tree,\n// which may yield better memory usage and/or performance.\npackage btree\n\nimport \"sort\"\n\n//////////\n//\n// Types\n//\n//////////\n\n// BTreeOption is a function interface for setting options on a btree with `New()`.\ntype BTreeOption func(*BTree)\n\n// BTree is an implementation of a B-Tree.\n//\n// BTree stores Record instances in an ordered structure, allowing easy insertion,\n// removal, and iteration.\ntype BTree struct {\n\tdegree int\n\tlength int\n\troot *node\n\tcowCtx *copyOnWriteContext\n}\n\n//\tAny type that implements this interface can be stored in the BTree. This allows considerable\n//\n// flexiblity in storage within the BTree.\ntype Record interface {\n\t// Less compares self to `than`, returning true if self is less than `than`\n\tLess(than Record) bool\n}\n\n// records is the storage within a node. It is expressed as a slice of Record, where a Record\n// is any struct that implements the Record interface.\ntype records []Record\n\n// node is an internal node in a tree.\n//\n// It must at all times maintain on of the two conditions:\n// - len(children) == 0, len(records) unconstrained\n// - len(children) == len(records) + 1\ntype node struct {\n\trecords records\n\tchildren children\n\tcowCtx *copyOnWriteContext\n}\n\n// children is the list of child nodes below the current node. It is a slice of nodes.\ntype children []*node\n\n// FreeNodeList represents a slice of nodes which are available for reuse. The default\n// behavior of New() is for each BTree instance to have its own FreeNodeList. However,\n// it is possible for multiple instances of BTree to share the same tree. If one uses\n// New(WithFreeNodeList()) to create a tree, one may pass an existing FreeNodeList, allowing\n// multiple trees to use a single list. In an application with multiple trees, it might\n// be more efficient to allocate a single FreeNodeList with a significant initial capacity,\n// and then have all of the trees use that same large FreeNodeList.\ntype FreeNodeList struct {\n\tnodes []*node\n}\n\n// copyOnWriteContext manages node ownership and ensures that cloned trees\n// maintain isolation from each other when a node is changed.\n//\n// Ownership Rules:\n// - Each node is associated with a specific copyOnWriteContext.\n// - A tree can modify a node directly only if the tree's context matches the node's context.\n// - If a tree attempts to modify a node with a different context, it must create a\n// new, writable copy of that node (i.e., perform a clone) before making changes.\n//\n// Write Operation Invariant:\n// - During any write operation, the current node being modified must have the same\n// context as the tree requesting the write.\n// - To maintain this invariant, before descending into a child node, the system checks\n// if the child’s context matches the tree's context.\n// - If the contexts match, the node can be modified in place.\n// - If the contexts do not match, a mutable copy of the child node is created with the\n// correct context before proceeding.\n//\n// Practical Implications:\n// - The node currently being modified inherits the requesting tree's context, allowing\n// in-place modifications.\n// - Child nodes may initially have different contexts. Before any modification, these\n// children are copied to ensure they share the correct context, enabling safe and\n// isolated updates without affecting other trees that might be referencing the original nodes.\n//\n// Example Usage:\n// When a tree performs a write operation (e.g., inserting or deleting a node), it uses\n// its copyOnWriteContext to determine whether it can modify nodes directly or needs to\n// create copies. This mechanism ensures that trees can share nodes efficiently while\n// maintaining data integrity.\ntype copyOnWriteContext struct {\n\tnodes *FreeNodeList\n}\n\n// Record implements an interface with a single function, Less. Any type that implements\n// RecordIterator allows callers of all of the iteration functions for the BTree\n// to evaluate an element of the tree as it is traversed. The function will receive\n// a stored element from the tree. The function must return either a true or a false value.\n// True indicates that iteration should continue, while false indicates that it should halt.\ntype RecordIterator func(i Record) bool\n\n//////////\n//\n// Functions\n//\n//////////\n\n// NewFreeNodeList creates a new free list.\n// size is the maximum size of the returned free list.\nfunc NewFreeNodeList(size int) *FreeNodeList {\n\treturn \u0026FreeNodeList{nodes: make([]*node, 0, size)}\n}\n\nfunc (freeList *FreeNodeList) newNode() (nodeInstance *node) {\n\tindex := len(freeList.nodes) - 1\n\tif index \u003c 0 {\n\t\treturn new(node)\n\t}\n\tnodeInstance = freeList.nodes[index]\n\tfreeList.nodes[index] = nil\n\tfreeList.nodes = freeList.nodes[:index]\n\n\treturn nodeInstance\n}\n\n// freeNode adds the given node to the list, returning true if it was added\n// and false if it was discarded.\n\nfunc (freeList *FreeNodeList) freeNode(nodeInstance *node) (nodeWasAdded bool) {\n\tif len(freeList.nodes) \u003c cap(freeList.nodes) {\n\t\tfreeList.nodes = append(freeList.nodes, nodeInstance)\n\t\tnodeWasAdded = true\n\t}\n\treturn\n}\n\n// A default size for the free node list. We might want to run some benchmarks to see if\n// there are any pros or cons to this size versus other sizes. This seems to be a reasonable\n// compromise to reduce GC pressure by reusing nodes where possible, without stacking up too\n// much baggage in a given tree.\nconst DefaultFreeNodeListSize = 32\n\n// WithDegree sets the degree of the B-Tree.\nfunc WithDegree(degree int) BTreeOption {\n\treturn func(bt *BTree) {\n\t\tif degree \u003c= 1 {\n\t\t\tpanic(\"Degrees less than 1 do not make any sense for a BTree. Please provide a degree of 1 or greater.\")\n\t\t}\n\t\tbt.degree = degree\n\t}\n}\n\n// WithFreeNodeList sets a custom free node list for the B-Tree.\nfunc WithFreeNodeList(freeList *FreeNodeList) BTreeOption {\n\treturn func(bt *BTree) {\n\t\tbt.cowCtx = \u0026copyOnWriteContext{nodes: freeList}\n\t}\n}\n\n// New creates a new B-Tree with optional configurations. If configuration is not provided,\n// it will default to 16 element nodes. Degree may not be less than 1 (which effectively\n// makes the tree into a binary tree).\n//\n// `New(WithDegree(2))`, for example, will create a 2-3-4 tree (each node contains 1-3 records\n// and 2-4 children).\n//\n// `New(WithFreeNodeList(NewFreeNodeList(64)))` will create a tree with a degree of 16, and\n// with a free node list with a size of 64.\nfunc New(options ...BTreeOption) *BTree {\n\tbtree := \u0026BTree{\n\t\tdegree: 16, // default degree\n\t\tcowCtx: \u0026copyOnWriteContext{nodes: NewFreeNodeList(DefaultFreeNodeListSize)},\n\t}\n\tfor _, opt := range options {\n\t\topt(btree)\n\t}\n\treturn btree\n}\n\n// insertAt inserts a value into the given index, pushing all subsequent values\n// forward.\nfunc (recordsSlice *records) insertAt(index int, newRecord Record) {\n\toriginalLength := len(*recordsSlice)\n\n\t// Extend the slice by one element\n\t*recordsSlice = append(*recordsSlice, nil)\n\n\t// Move elements from the end to avoid overwriting during the copy\n\t// TODO: Make this work with slice appends, instead. It should be faster?\n\tif index \u003c originalLength {\n\t\tfor position := originalLength; position \u003e index; position-- {\n\t\t\t(*recordsSlice)[position] = (*recordsSlice)[position-1]\n\t\t}\n\t}\n\n\t// Insert the new record\n\t(*recordsSlice)[index] = newRecord\n}\n\n// removeAt removes a Record from the records slice at the specified index.\n// It shifts subsequent records to fill the gap and returns the removed Record.\nfunc (recordSlicePointer *records) removeAt(index int) Record {\n\trecordSlice := *recordSlicePointer\n\tremovedRecord := recordSlice[index]\n\tcopy(recordSlice[index:], recordSlice[index+1:])\n\trecordSlice[len(recordSlice)-1] = nil\n\t*recordSlicePointer = recordSlice[:len(recordSlice)-1]\n\n\treturn removedRecord\n}\n\n// Pop removes and returns the last Record from the records slice.\n// It also clears the reference to the removed Record to aid garbage collection.\nfunc (r *records) pop() Record {\n\trecordSlice := *r\n\tlastIndex := len(recordSlice) - 1\n\tremovedRecord := recordSlice[lastIndex]\n\trecordSlice[lastIndex] = nil\n\t*r = recordSlice[:lastIndex]\n\treturn removedRecord\n}\n\n// This slice is intended only as a supply of records for the truncate function\n// that follows, and it should not be changed or altered.\nvar emptyRecords = make(records, 32)\n\n// truncate reduces the length of the slice to the specified index,\n// and clears the elements beyond that index to prevent memory leaks.\n// The index must be less than or equal to the current length of the slice.\nfunc (originalSlice *records) truncate(index int) {\n\t// Split the slice into the part to keep and the part to clear.\n\trecordsToKeep := (*originalSlice)[:index]\n\trecordsToClear := (*originalSlice)[index:]\n\n\t// Update the original slice to only contain the records to keep.\n\t*originalSlice = recordsToKeep\n\n\t// Clear the memory of the part that was truncated.\n\tfor len(recordsToClear) \u003e 0 {\n\t\t// Copy empty values from `emptyRecords` to the recordsToClear slice.\n\t\t// This effectively \"clears\" the memory by overwriting elements.\n\t\tnumCleared := copy(recordsToClear, emptyRecords)\n\t\trecordsToClear = recordsToClear[numCleared:]\n\t}\n}\n\n// Find determines the appropriate index at which a given Record should be inserted\n// into the sorted records slice. If the Record already exists in the slice,\n// the method returns its index and sets found to true.\n//\n// Parameters:\n// - record: The Record to search for within the records slice.\n//\n// Returns:\n// - insertIndex: The index at which the Record should be inserted.\n// - found: A boolean indicating whether the Record already exists in the slice.\nfunc (recordsSlice records) find(record Record) (insertIndex int, found bool) {\n\ttotalRecords := len(recordsSlice)\n\n\t// Perform a binary search to find the insertion point for the record\n\tinsertionPoint := sort.Search(totalRecords, func(currentIndex int) bool {\n\t\treturn record.Less(recordsSlice[currentIndex])\n\t})\n\n\tif insertionPoint \u003e 0 {\n\t\tpreviousRecord := recordsSlice[insertionPoint-1]\n\n\t\tif !previousRecord.Less(record) {\n\t\t\treturn insertionPoint - 1, true\n\t\t}\n\t}\n\n\treturn insertionPoint, false\n}\n\n// insertAt inserts a value into the given index, pushing all subsequent values\n// forward.\nfunc (childSlice *children) insertAt(index int, n *node) {\n\toriginalLength := len(*childSlice)\n\n\t// Extend the slice by one element\n\t*childSlice = append(*childSlice, nil)\n\n\t// Move elements from the end to avoid overwriting during the copy\n\tif index \u003c originalLength {\n\t\tfor i := originalLength; i \u003e index; i-- {\n\t\t\t(*childSlice)[i] = (*childSlice)[i-1]\n\t\t}\n\t}\n\n\t// Insert the new record\n\t(*childSlice)[index] = n\n}\n\n// removeAt removes a Record from the records slice at the specified index.\n// It shifts subsequent records to fill the gap and returns the removed Record.\nfunc (childSlicePointer *children) removeAt(index int) *node {\n\tchildSlice := *childSlicePointer\n\tremovedChild := childSlice[index]\n\tcopy(childSlice[index:], childSlice[index+1:])\n\tchildSlice[len(childSlice)-1] = nil\n\t*childSlicePointer = childSlice[:len(childSlice)-1]\n\n\treturn removedChild\n}\n\n// Pop removes and returns the last Record from the records slice.\n// It also clears the reference to the removed Record to aid garbage collection.\nfunc (childSlicePointer *children) pop() *node {\n\tchildSlice := *childSlicePointer\n\tlastIndex := len(childSlice) - 1\n\tremovedChild := childSlice[lastIndex]\n\tchildSlice[lastIndex] = nil\n\t*childSlicePointer = childSlice[:lastIndex]\n\treturn removedChild\n}\n\n// This slice is intended only as a supply of records for the truncate function\n// that follows, and it should not be changed or altered.\nvar emptyChildren = make(children, 32)\n\n// truncate reduces the length of the slice to the specified index,\n// and clears the elements beyond that index to prevent memory leaks.\n// The index must be less than or equal to the current length of the slice.\nfunc (originalSlice *children) truncate(index int) {\n\t// Split the slice into the part to keep and the part to clear.\n\tchildrenToKeep := (*originalSlice)[:index]\n\tchildrenToClear := (*originalSlice)[index:]\n\n\t// Update the original slice to only contain the records to keep.\n\t*originalSlice = childrenToKeep\n\n\t// Clear the memory of the part that was truncated.\n\tfor len(childrenToClear) \u003e 0 {\n\t\t// Copy empty values from `emptyChildren` to the recordsToClear slice.\n\t\t// This effectively \"clears\" the memory by overwriting elements.\n\t\tnumCleared := copy(childrenToClear, emptyChildren)\n\n\t\t// Slice recordsToClear to exclude the elements that were just cleared.\n\t\tchildrenToClear = childrenToClear[numCleared:]\n\t}\n}\n\n// mutableFor creates a mutable copy of the node if the current node does not\n// already belong to the provided copy-on-write context (COW). If the node is\n// already associated with the given COW context, it returns the current node.\n//\n// Parameters:\n// - cowCtx: The copy-on-write context that should own the returned node.\n//\n// Returns:\n// - A pointer to the mutable node associated with the given COW context.\n//\n// If the current node belongs to a different COW context, this function:\n// - Allocates a new node using the provided context.\n// - Copies the node’s records and children slices into the newly allocated node.\n// - Returns the new node which is now owned by the given COW context.\nfunc (n *node) mutableFor(cowCtx *copyOnWriteContext) *node {\n\t// If the current node is already owned by the provided context, return it as-is.\n\tif n.cowCtx == cowCtx {\n\t\treturn n\n\t}\n\n\t// Create a new node in the provided context.\n\tnewNode := cowCtx.newNode()\n\n\t// Copy the records from the current node into the new node.\n\tnewNode.records = append(newNode.records[:0], n.records...)\n\n\t// Copy the children from the current node into the new node.\n\tnewNode.children = append(newNode.children[:0], n.children...)\n\n\treturn newNode\n}\n\n// mutableChild ensures that the child node at the given index is mutable and\n// associated with the same COW context as the parent node. If the child node\n// belongs to a different context, a copy of the child is created and stored in the\n// parent node.\n//\n// Parameters:\n// - i: The index of the child node to be made mutable.\n//\n// Returns:\n// - A pointer to the mutable child node.\nfunc (n *node) mutableChild(i int) *node {\n\t// Ensure that the child at index `i` is mutable and belongs to the same context as the parent.\n\tmutableChildNode := n.children[i].mutableFor(n.cowCtx)\n\t// Update the child node reference in the current node to the mutable version.\n\tn.children[i] = mutableChildNode\n\treturn mutableChildNode\n}\n\n// split splits the given node at the given index. The current node shrinks,\n// and this function returns the record that existed at that index and a new node\n// containing all records/children after it.\nfunc (n *node) split(i int) (Record, *node) {\n\trecord := n.records[i]\n\tnext := n.cowCtx.newNode()\n\tnext.records = append(next.records, n.records[i+1:]...)\n\tn.records.truncate(i)\n\tif len(n.children) \u003e 0 {\n\t\tnext.children = append(next.children, n.children[i+1:]...)\n\t\tn.children.truncate(i + 1)\n\t}\n\treturn record, next\n}\n\n// maybeSplitChild checks if a child should be split, and if so splits it.\n// Returns whether or not a split occurred.\nfunc (n *node) maybeSplitChild(i, maxRecords int) bool {\n\tif len(n.children[i].records) \u003c maxRecords {\n\t\treturn false\n\t}\n\tfirst := n.mutableChild(i)\n\trecord, second := first.split(maxRecords / 2)\n\tn.records.insertAt(i, record)\n\tn.children.insertAt(i+1, second)\n\treturn true\n}\n\n// insert adds a record to the subtree rooted at the current node, ensuring that no node in the subtree\n// exceeds the maximum number of allowed records (`maxRecords`). If an equivalent record is already present,\n// it replaces the existing one and returns it; otherwise, it returns nil.\n//\n// Parameters:\n// - record: The record to be inserted.\n// - maxRecords: The maximum number of records allowed per node.\n//\n// Returns:\n// - The record that was replaced if an equivalent record already existed, otherwise nil.\nfunc (n *node) insert(record Record, maxRecords int) Record {\n\t// Find the position where the new record should be inserted and check if an equivalent record already exists.\n\tinsertionIndex, recordExists := n.records.find(record)\n\n\tif recordExists {\n\t\t// If an equivalent record is found, replace it and return the old record.\n\t\texistingRecord := n.records[insertionIndex]\n\t\tn.records[insertionIndex] = record\n\t\treturn existingRecord\n\t}\n\n\t// If the current node is a leaf (has no children), insert the new record at the calculated index.\n\tif len(n.children) == 0 {\n\t\tn.records.insertAt(insertionIndex, record)\n\t\treturn nil\n\t}\n\n\t// Check if the child node at the insertion index needs to be split due to exceeding maxRecords.\n\tif n.maybeSplitChild(insertionIndex, maxRecords) {\n\t\t// If a split occurred, compare the new record with the record moved up to the current node.\n\t\tsplitRecord := n.records[insertionIndex]\n\t\tswitch {\n\t\tcase record.Less(splitRecord):\n\t\t\t// The new record belongs to the first (left) split node; no change to insertion index.\n\t\tcase splitRecord.Less(record):\n\t\t\t// The new record belongs to the second (right) split node; move the insertion index to the next position.\n\t\t\tinsertionIndex++\n\t\tdefault:\n\t\t\t// If the record is equivalent to the split record, replace it and return the old record.\n\t\t\texistingRecord := n.records[insertionIndex]\n\t\t\tn.records[insertionIndex] = record\n\t\t\treturn existingRecord\n\t\t}\n\t}\n\n\t// Recursively insert the record into the appropriate child node, now guaranteed to have space.\n\treturn n.mutableChild(insertionIndex).insert(record, maxRecords)\n}\n\n// get finds the given key in the subtree and returns it.\nfunc (n *node) get(key Record) Record {\n\ti, found := n.records.find(key)\n\tif found {\n\t\treturn n.records[i]\n\t} else if len(n.children) \u003e 0 {\n\t\treturn n.children[i].get(key)\n\t}\n\treturn nil\n}\n\n// min returns the first record in the subtree.\nfunc min(n *node) Record {\n\tif n == nil {\n\t\treturn nil\n\t}\n\tfor len(n.children) \u003e 0 {\n\t\tn = n.children[0]\n\t}\n\tif len(n.records) == 0 {\n\t\treturn nil\n\t}\n\treturn n.records[0]\n}\n\n// max returns the last record in the subtree.\nfunc max(n *node) Record {\n\tif n == nil {\n\t\treturn nil\n\t}\n\tfor len(n.children) \u003e 0 {\n\t\tn = n.children[len(n.children)-1]\n\t}\n\tif len(n.records) == 0 {\n\t\treturn nil\n\t}\n\treturn n.records[len(n.records)-1]\n}\n\n// toRemove details what record to remove in a node.remove call.\ntype toRemove int\n\nconst (\n\tremoveRecord toRemove = iota // removes the given record\n\tremoveMin // removes smallest record in the subtree\n\tremoveMax // removes largest record in the subtree\n)\n\n// remove removes a record from the subtree rooted at the current node.\n//\n// Parameters:\n// - record: The record to be removed (can be nil when the removal type indicates min or max).\n// - minRecords: The minimum number of records a node should have after removal.\n// - typ: The type of removal operation to perform (removeMin, removeMax, or removeRecord).\n//\n// Returns:\n// - The record that was removed, or nil if no such record was found.\nfunc (n *node) remove(record Record, minRecords int, removalType toRemove) Record {\n\tvar targetIndex int\n\tvar recordFound bool\n\n\t// Determine the index of the record to remove based on the removal type.\n\tswitch removalType {\n\tcase removeMax:\n\t\t// If this node is a leaf, remove and return the last record.\n\t\tif len(n.children) == 0 {\n\t\t\treturn n.records.pop()\n\t\t}\n\t\ttargetIndex = len(n.records) // The last record index for removing max.\n\n\tcase removeMin:\n\t\t// If this node is a leaf, remove and return the first record.\n\t\tif len(n.children) == 0 {\n\t\t\treturn n.records.removeAt(0)\n\t\t}\n\t\ttargetIndex = 0 // The first record index for removing min.\n\n\tcase removeRecord:\n\t\t// Locate the index of the record to be removed.\n\t\ttargetIndex, recordFound = n.records.find(record)\n\t\tif len(n.children) == 0 {\n\t\t\tif recordFound {\n\t\t\t\treturn n.records.removeAt(targetIndex)\n\t\t\t}\n\t\t\treturn nil // The record was not found in the leaf node.\n\t\t}\n\n\tdefault:\n\t\tpanic(\"invalid removal type\")\n\t}\n\n\t// If the current node has children, handle the removal recursively.\n\tif len(n.children[targetIndex].records) \u003c= minRecords {\n\t\t// If the target child node has too few records, grow it before proceeding with removal.\n\t\treturn n.growChildAndRemove(targetIndex, record, minRecords, removalType)\n\t}\n\n\t// Get a mutable reference to the child node at the target index.\n\ttargetChild := n.mutableChild(targetIndex)\n\n\t// If the record to be removed was found in the current node:\n\tif recordFound {\n\t\t// Replace the current record with its predecessor from the child node, and return the removed record.\n\t\treplacedRecord := n.records[targetIndex]\n\t\tn.records[targetIndex] = targetChild.remove(nil, minRecords, removeMax)\n\t\treturn replacedRecord\n\t}\n\n\t// Recursively remove the record from the child node.\n\treturn targetChild.remove(record, minRecords, removalType)\n}\n\n// growChildAndRemove grows child 'i' to make sure it's possible to remove an\n// record from it while keeping it at minRecords, then calls remove to actually\n// remove it.\n//\n// Most documentation says we have to do two sets of special casing:\n// 1. record is in this node\n// 2. record is in child\n//\n// In both cases, we need to handle the two subcases:\n//\n//\tA) node has enough values that it can spare one\n//\tB) node doesn't have enough values\n//\n// For the latter, we have to check:\n//\n//\ta) left sibling has node to spare\n//\tb) right sibling has node to spare\n//\tc) we must merge\n//\n// To simplify our code here, we handle cases #1 and #2 the same:\n// If a node doesn't have enough records, we make sure it does (using a,b,c).\n// We then simply redo our remove call, and the second time (regardless of\n// whether we're in case 1 or 2), we'll have enough records and can guarantee\n// that we hit case A.\nfunc (n *node) growChildAndRemove(i int, record Record, minRecords int, typ toRemove) Record {\n\tif i \u003e 0 \u0026\u0026 len(n.children[i-1].records) \u003e minRecords {\n\t\t// Steal from left child\n\t\tchild := n.mutableChild(i)\n\t\tstealFrom := n.mutableChild(i - 1)\n\t\tstolenRecord := stealFrom.records.pop()\n\t\tchild.records.insertAt(0, n.records[i-1])\n\t\tn.records[i-1] = stolenRecord\n\t\tif len(stealFrom.children) \u003e 0 {\n\t\t\tchild.children.insertAt(0, stealFrom.children.pop())\n\t\t}\n\t} else if i \u003c len(n.records) \u0026\u0026 len(n.children[i+1].records) \u003e minRecords {\n\t\t// steal from right child\n\t\tchild := n.mutableChild(i)\n\t\tstealFrom := n.mutableChild(i + 1)\n\t\tstolenRecord := stealFrom.records.removeAt(0)\n\t\tchild.records = append(child.records, n.records[i])\n\t\tn.records[i] = stolenRecord\n\t\tif len(stealFrom.children) \u003e 0 {\n\t\t\tchild.children = append(child.children, stealFrom.children.removeAt(0))\n\t\t}\n\t} else {\n\t\tif i \u003e= len(n.records) {\n\t\t\ti--\n\t\t}\n\t\tchild := n.mutableChild(i)\n\t\t// merge with right child\n\t\tmergeRecord := n.records.removeAt(i)\n\t\tmergeChild := n.children.removeAt(i + 1).mutableFor(n.cowCtx)\n\t\tchild.records = append(child.records, mergeRecord)\n\t\tchild.records = append(child.records, mergeChild.records...)\n\t\tchild.children = append(child.children, mergeChild.children...)\n\t\tn.cowCtx.freeNode(mergeChild)\n\t}\n\treturn n.remove(record, minRecords, typ)\n}\n\ntype direction int\n\nconst (\n\tdescend = direction(-1)\n\tascend = direction(+1)\n)\n\n// iterate provides a simple method for iterating over elements in the tree.\n//\n// When ascending, the 'start' should be less than 'stop' and when descending,\n// the 'start' should be greater than 'stop'. Setting 'includeStart' to true\n// will force the iterator to include the first record when it equals 'start',\n// thus creating a \"greaterOrEqual\" or \"lessThanEqual\" rather than just a\n// \"greaterThan\" or \"lessThan\" queries.\nfunc (n *node) iterate(dir direction, start, stop Record, includeStart bool, hit bool, iter RecordIterator) (bool, bool) {\n\tvar ok, found bool\n\tvar index int\n\tswitch dir {\n\tcase ascend:\n\t\tif start != nil {\n\t\t\tindex, _ = n.records.find(start)\n\t\t}\n\t\tfor i := index; i \u003c len(n.records); i++ {\n\t\t\tif len(n.children) \u003e 0 {\n\t\t\t\tif hit, ok = n.children[i].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\t\treturn hit, false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !includeStart \u0026\u0026 !hit \u0026\u0026 start != nil \u0026\u0026 !start.Less(n.records[i]) {\n\t\t\t\thit = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\thit = true\n\t\t\tif stop != nil \u0026\u0026 !n.records[i].Less(stop) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t\tif !iter(n.records[i]) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t\tif len(n.children) \u003e 0 {\n\t\t\tif hit, ok = n.children[len(n.children)-1].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\tcase descend:\n\t\tif start != nil {\n\t\t\tindex, found = n.records.find(start)\n\t\t\tif !found {\n\t\t\t\tindex = index - 1\n\t\t\t}\n\t\t} else {\n\t\t\tindex = len(n.records) - 1\n\t\t}\n\t\tfor i := index; i \u003e= 0; i-- {\n\t\t\tif start != nil \u0026\u0026 !n.records[i].Less(start) {\n\t\t\t\tif !includeStart || hit || start.Less(n.records[i]) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(n.children) \u003e 0 {\n\t\t\t\tif hit, ok = n.children[i+1].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\t\treturn hit, false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif stop != nil \u0026\u0026 !stop.Less(n.records[i]) {\n\t\t\t\treturn hit, false //\tcontinue\n\t\t\t}\n\t\t\thit = true\n\t\t\tif !iter(n.records[i]) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t\tif len(n.children) \u003e 0 {\n\t\t\tif hit, ok = n.children[0].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t}\n\treturn hit, true\n}\n\nfunc (tree *BTree) Iterate(dir direction, start, stop Record, includeStart bool, hit bool, iter RecordIterator) (bool, bool) {\n\treturn tree.root.iterate(dir, start, stop, includeStart, hit, iter)\n}\n\n// Clone creates a new BTree instance that shares the current tree's structure using a copy-on-write (COW) approach.\n//\n// How Cloning Works:\n// - The cloned tree (`clonedTree`) shares the current tree’s nodes in a read-only state. This means that no additional memory\n// is allocated for shared nodes, and read operations on the cloned tree are as fast as on the original tree.\n// - When either the original tree (`t`) or the cloned tree (`clonedTree`) needs to perform a write operation (such as an insert, delete, etc.),\n// a new copy of the affected nodes is created on-demand. This ensures that modifications to one tree do not affect the other.\n//\n// Performance Implications:\n// - **Clone Creation:** The creation of a clone is inexpensive since it only involves copying references to the original tree's nodes\n// and creating new copy-on-write contexts.\n// - **Read Operations:** Reading from either the original tree or the cloned tree has no additional performance overhead compared to the original tree.\n// - **Write Operations:** The first write operation on either tree may experience a slight slow-down due to the allocation of new nodes,\n// but subsequent write operations will perform at the same speed as if the tree were not cloned.\n//\n// Returns:\n// - A new BTree instance (`clonedTree`) that shares the original tree's structure.\nfunc (t *BTree) Clone() *BTree {\n\t// Create two independent copy-on-write contexts, one for the original tree (`t`) and one for the cloned tree.\n\toriginalContext := *t.cowCtx\n\tclonedContext := *t.cowCtx\n\n\t// Create a shallow copy of the current tree, which will be the new cloned tree.\n\tclonedTree := *t\n\n\t// Assign the new contexts to their respective trees.\n\tt.cowCtx = \u0026originalContext\n\tclonedTree.cowCtx = \u0026clonedContext\n\n\treturn \u0026clonedTree\n}\n\n// maxRecords returns the max number of records to allow per node.\nfunc (t *BTree) maxRecords() int {\n\treturn t.degree*2 - 1\n}\n\n// minRecords returns the min number of records to allow per node (ignored for the\n// root node).\nfunc (t *BTree) minRecords() int {\n\treturn t.degree - 1\n}\n\nfunc (c *copyOnWriteContext) newNode() (n *node) {\n\tn = c.nodes.newNode()\n\tn.cowCtx = c\n\treturn\n}\n\ntype freeType int\n\nconst (\n\tftFreelistFull freeType = iota // node was freed (available for GC, not stored in nodes)\n\tftStored // node was stored in the nodes for later use\n\tftNotOwned // node was ignored by COW, since it's owned by another one\n)\n\n// freeNode frees a node within a given COW context, if it's owned by that\n// context. It returns what happened to the node (see freeType const\n// documentation).\nfunc (c *copyOnWriteContext) freeNode(n *node) freeType {\n\tif n.cowCtx == c {\n\t\t// clear to allow GC\n\t\tn.records.truncate(0)\n\t\tn.children.truncate(0)\n\t\tn.cowCtx = nil\n\t\tif c.nodes.freeNode(n) {\n\t\t\treturn ftStored\n\t\t} else {\n\t\t\treturn ftFreelistFull\n\t\t}\n\t} else {\n\t\treturn ftNotOwned\n\t}\n}\n\n// Insert adds the given record to the B-tree. If a record already exists in the tree with the same value,\n// it is replaced, and the old record is returned. Otherwise, it returns nil.\n//\n// Notes:\n// - The function panics if a nil record is provided as input.\n// - If the root node is empty, a new root node is created and the record is inserted.\n//\n// Parameters:\n// - record: The record to be inserted into the B-tree.\n//\n// Returns:\n// - The replaced record if an equivalent record already exists, or nil if no replacement occurred.\nfunc (t *BTree) Insert(record Record) Record {\n\tif record == nil {\n\t\tpanic(\"nil record cannot be added to BTree\")\n\t}\n\n\t// If the tree is empty (no root), create a new root node and insert the record.\n\tif t.root == nil {\n\t\tt.root = t.cowCtx.newNode()\n\t\tt.root.records = append(t.root.records, record)\n\t\tt.length++\n\t\treturn nil\n\t}\n\n\t// Ensure that the root node is mutable (associated with the current tree's copy-on-write context).\n\tt.root = t.root.mutableFor(t.cowCtx)\n\n\t// If the root node is full (contains the maximum number of records), split the root.\n\tif len(t.root.records) \u003e= t.maxRecords() {\n\t\t// Split the root node, promoting the middle record and creating a new child node.\n\t\tmiddleRecord, newChildNode := t.root.split(t.maxRecords() / 2)\n\n\t\t// Create a new root node to hold the promoted middle record.\n\t\toldRoot := t.root\n\t\tt.root = t.cowCtx.newNode()\n\t\tt.root.records = append(t.root.records, middleRecord)\n\t\tt.root.children = append(t.root.children, oldRoot, newChildNode)\n\t}\n\n\t// Insert the new record into the subtree rooted at the current root node.\n\treplacedRecord := t.root.insert(record, t.maxRecords())\n\n\t// If no record was replaced, increase the tree's length.\n\tif replacedRecord == nil {\n\t\tt.length++\n\t}\n\n\treturn replacedRecord\n}\n\n// Delete removes an record equal to the passed in record from the tree, returning\n// it. If no such record exists, returns nil.\nfunc (t *BTree) Delete(record Record) Record {\n\treturn t.deleteRecord(record, removeRecord)\n}\n\n// DeleteMin removes the smallest record in the tree and returns it.\n// If no such record exists, returns nil.\nfunc (t *BTree) DeleteMin() Record {\n\treturn t.deleteRecord(nil, removeMin)\n}\n\n// Shift is identical to DeleteMin. If the tree is thought of as an ordered list, then Shift()\n// removes the element at the start of the list, the smallest element, and returns it.\nfunc (t *BTree) Shift() Record {\n\treturn t.deleteRecord(nil, removeMin)\n}\n\n// DeleteMax removes the largest record in the tree and returns it.\n// If no such record exists, returns nil.\nfunc (t *BTree) DeleteMax() Record {\n\treturn t.deleteRecord(nil, removeMax)\n}\n\n// Pop is identical to DeleteMax. If the tree is thought of as an ordered list, then Shift()\n// removes the element at the end of the list, the largest element, and returns it.\nfunc (t *BTree) Pop() Record {\n\treturn t.deleteRecord(nil, removeMax)\n}\n\n// deleteRecord removes a record from the B-tree based on the specified removal type (removeMin, removeMax, or removeRecord).\n// It returns the removed record if it was found, or nil if no matching record was found.\n//\n// Parameters:\n// - record: The record to be removed (can be nil if the removal type indicates min or max).\n// - removalType: The type of removal operation to perform (removeMin, removeMax, or removeRecord).\n//\n// Returns:\n// - The removed record if it existed in the tree, or nil if it was not found.\nfunc (t *BTree) deleteRecord(record Record, removalType toRemove) Record {\n\t// If the tree is empty or the root has no records, return nil.\n\tif t.root == nil || len(t.root.records) == 0 {\n\t\treturn nil\n\t}\n\n\t// Ensure the root node is mutable (associated with the tree's copy-on-write context).\n\tt.root = t.root.mutableFor(t.cowCtx)\n\n\t// Attempt to remove the specified record from the root node.\n\tremovedRecord := t.root.remove(record, t.minRecords(), removalType)\n\n\t// Check if the root node has become empty but still has children.\n\t// In this case, the tree height should be reduced, making the first child the new root.\n\tif len(t.root.records) == 0 \u0026\u0026 len(t.root.children) \u003e 0 {\n\t\toldRoot := t.root\n\t\tt.root = t.root.children[0]\n\t\t// Free the old root node, as it is no longer needed.\n\t\tt.cowCtx.freeNode(oldRoot)\n\t}\n\n\t// If a record was successfully removed, decrease the tree's length.\n\tif removedRecord != nil {\n\t\tt.length--\n\t}\n\n\treturn removedRecord\n}\n\n// AscendRange calls the iterator for every value in the tree within the range\n// [greaterOrEqual, lessThan), until iterator returns false.\nfunc (t *BTree) AscendRange(greaterOrEqual, lessThan Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, greaterOrEqual, lessThan, true, false, iterator)\n}\n\n// AscendLessThan calls the iterator for every value in the tree within the range\n// [first, pivot), until iterator returns false.\nfunc (t *BTree) AscendLessThan(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, nil, pivot, false, false, iterator)\n}\n\n// AscendGreaterOrEqual calls the iterator for every value in the tree within\n// the range [pivot, last], until iterator returns false.\nfunc (t *BTree) AscendGreaterOrEqual(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, pivot, nil, true, false, iterator)\n}\n\n// Ascend calls the iterator for every value in the tree within the range\n// [first, last], until iterator returns false.\nfunc (t *BTree) Ascend(iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, nil, nil, false, false, iterator)\n}\n\n// DescendRange calls the iterator for every value in the tree within the range\n// [lessOrEqual, greaterThan), until iterator returns false.\nfunc (t *BTree) DescendRange(lessOrEqual, greaterThan Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, lessOrEqual, greaterThan, true, false, iterator)\n}\n\n// DescendLessOrEqual calls the iterator for every value in the tree within the range\n// [pivot, first], until iterator returns false.\nfunc (t *BTree) DescendLessOrEqual(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, pivot, nil, true, false, iterator)\n}\n\n// DescendGreaterThan calls the iterator for every value in the tree within\n// the range [last, pivot), until iterator returns false.\nfunc (t *BTree) DescendGreaterThan(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, nil, pivot, false, false, iterator)\n}\n\n// Descend calls the iterator for every value in the tree within the range\n// [last, first], until iterator returns false.\nfunc (t *BTree) Descend(iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, nil, nil, false, false, iterator)\n}\n\n// Get looks for the key record in the tree, returning it. It returns nil if\n// unable to find that record.\nfunc (t *BTree) Get(key Record) Record {\n\tif t.root == nil {\n\t\treturn nil\n\t}\n\treturn t.root.get(key)\n}\n\n// Min returns the smallest record in the tree, or nil if the tree is empty.\nfunc (t *BTree) Min() Record {\n\treturn min(t.root)\n}\n\n// Max returns the largest record in the tree, or nil if the tree is empty.\nfunc (t *BTree) Max() Record {\n\treturn max(t.root)\n}\n\n// Has returns true if the given key is in the tree.\nfunc (t *BTree) Has(key Record) bool {\n\treturn t.Get(key) != nil\n}\n\n// Len returns the number of records currently in the tree.\nfunc (t *BTree) Len() int {\n\treturn t.length\n}\n\n// Clear removes all elements from the B-tree.\n//\n// Parameters:\n// - addNodesToFreelist:\n// - If true, the tree's nodes are added to the freelist during the clearing process,\n// up to the freelist's capacity.\n// - If false, the root node is simply dereferenced, allowing Go's garbage collector\n// to reclaim the memory.\n//\n// Benefits:\n// - **Performance:**\n// - Significantly faster than deleting each element individually, as it avoids the overhead\n// of searching and updating the tree structure for each deletion.\n// - More efficient than creating a new tree, since it reuses existing nodes by adding them\n// to the freelist instead of discarding them to the garbage collector.\n//\n// Time Complexity:\n// - **O(1):**\n// - When `addNodesToFreelist` is false.\n// - When `addNodesToFreelist` is true but the freelist is already full.\n// - **O(freelist size):**\n// - When adding nodes to the freelist up to its capacity.\n// - **O(tree size):**\n// - When iterating through all nodes to add to the freelist, but none can be added due to\n// ownership by another tree.\n\nfunc (tree *BTree) Clear(addNodesToFreelist bool) {\n\tif tree.root != nil \u0026\u0026 addNodesToFreelist {\n\t\ttree.root.reset(tree.cowCtx)\n\t}\n\ttree.root = nil\n\ttree.length = 0\n}\n\n// reset adds all nodes in the current subtree to the freelist.\n//\n// The function operates recursively:\n// - It first attempts to reset all child nodes.\n// - If the freelist becomes full at any point, the process stops immediately.\n//\n// Parameters:\n// - copyOnWriteCtx: The copy-on-write context managing the freelist.\n//\n// Returns:\n// - true: Indicates that the parent node should continue attempting to reset its nodes.\n// - false: Indicates that the freelist is full and no further nodes should be added.\n//\n// Usage:\n// This method is called during the `Clear` operation of the B-tree to efficiently reuse\n// nodes by adding them to the freelist, thereby avoiding unnecessary allocations and reducing\n// garbage collection overhead.\nfunc (currentNode *node) reset(copyOnWriteCtx *copyOnWriteContext) bool {\n\t// Iterate through each child node and attempt to reset it.\n\tfor _, childNode := range currentNode.children {\n\t\t// If any child reset operation signals that the freelist is full, stop the process.\n\t\tif !childNode.reset(copyOnWriteCtx) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Attempt to add the current node to the freelist.\n\t// If the freelist is full after this operation, indicate to the parent to stop.\n\tfreelistStatus := copyOnWriteCtx.freeNode(currentNode)\n\treturn freelistStatus != ftFreelistFull\n}\n"},{"name":"btree_test.gno","body":"package btree\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/btree\"\n)\n\n// Content represents a key-value pair where the Key can be either an int or string\n// and the Value can be any type.\ntype Content struct {\n\tKey interface{}\n\tValue interface{}\n}\n\n// Less compares two Content records by their Keys.\n// The Key must be either an int or a string.\nfunc (c Content) Less(than Record) bool {\n\tother, ok := than.(Content)\n\tif !ok {\n\t\tpanic(\"cannot compare: incompatible types\")\n\t}\n\n\tswitch key := c.Key.(type) {\n\tcase int:\n\t\tswitch otherKey := other.Key.(type) {\n\t\tcase int:\n\t\t\treturn key \u003c otherKey\n\t\tcase string:\n\t\t\treturn true // ints are always less than strings\n\t\tdefault:\n\t\t\tpanic(\"unsupported key type: must be int or string\")\n\t\t}\n\tcase string:\n\t\tswitch otherKey := other.Key.(type) {\n\t\tcase int:\n\t\t\treturn false // strings are always greater than ints\n\t\tcase string:\n\t\t\treturn key \u003c otherKey\n\t\tdefault:\n\t\t\tpanic(\"unsupported key type: must be int or string\")\n\t\t}\n\tdefault:\n\t\tpanic(\"unsupported key type: must be int or string\")\n\t}\n}\n\ntype ContentSlice []Content\n\nfunc (s ContentSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s ContentSlice) Less(i, j int) bool {\n\treturn s[i].Less(s[j])\n}\n\nfunc (s ContentSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s ContentSlice) Copy() ContentSlice {\n\tnewSlice := make(ContentSlice, len(s))\n\tcopy(newSlice, s)\n\treturn newSlice\n}\n\n// Ensure Content implements the Record interface.\nvar _ Record = Content{}\n\n// ****************************************************************************\n// Test helpers\n// ****************************************************************************\n\nfunc genericSeeding(tree *btree.BTree, size int) *btree.BTree {\n\tfor i := 0; i \u003c size; i++ {\n\t\ttree.Insert(Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)})\n\t}\n\treturn tree\n}\n\nfunc intSlicesCompare(left, right []int) int {\n\tif len(left) != len(right) {\n\t\tif len(left) \u003e len(right) {\n\t\t\treturn 1\n\t\t} else {\n\t\t\treturn -1\n\t\t}\n\t}\n\n\tfor position, leftInt := range left {\n\t\tif leftInt != right[position] {\n\t\t\tif leftInt \u003e right[position] {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0\n}\n\n// ****************************************************************************\n// Tests\n// ****************************************************************************\n\nfunc TestLen(t *testing.T) {\n\tlength := genericSeeding(btree.New(WithDegree(10)), 7).Len()\n\tif length != 7 {\n\t\tt.Errorf(\"Length is incorrect. Expected 7, but got %d.\", length)\n\t}\n\n\tlength = genericSeeding(btree.New(WithDegree(5)), 111).Len()\n\tif length != 111 {\n\t\tt.Errorf(\"Length is incorrect. Expected 111, but got %d.\", length)\n\t}\n\n\tlength = genericSeeding(btree.New(WithDegree(30)), 123).Len()\n\tif length != 123 {\n\t\tt.Errorf(\"Length is incorrect. Expected 123, but got %d.\", length)\n\t}\n\n}\n\nfunc TestHas(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 40)\n\n\tif tree.Has(Content{Key: 7}) != true {\n\t\tt.Errorf(\"Has(7) reported false, but it should be true.\")\n\t}\n\tif tree.Has(Content{Key: 39}) != true {\n\t\tt.Errorf(\"Has(40) reported false, but it should be true.\")\n\t}\n\tif tree.Has(Content{Key: 1111}) == true {\n\t\tt.Errorf(\"Has(1111) reported true, but it should be false.\")\n\t}\n}\n\nfunc TestMin(t *testing.T) {\n\tmin := Content(genericSeeding(btree.New(WithDegree(10)), 53).Min())\n\n\tif min.Key != 0 {\n\t\tt.Errorf(\"Minimum should have been 0, but it was reported as %d.\", min)\n\t}\n}\n\nfunc TestMax(t *testing.T) {\n\tmax := Content(genericSeeding(btree.New(WithDegree(10)), 53).Min())\n\n\tif max.Key != 0 {\n\t\tt.Errorf(\"Minimum should have been 0, but it was reported as %d.\", max)\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 40)\n\n\tif Content(tree.Get(Content{Key: 7})).Value != \"Value_7\" {\n\t\tt.Errorf(\"Get(7) should have returned 'Value_7', but it returned %v.\", tree.Get(Content{Key: 7}))\n\t}\n\tif Content(tree.Get(Content{Key: 39})).Value != \"Value_39\" {\n\t\tt.Errorf(\"Get(40) should have returnd 'Value_39', but it returned %v.\", tree.Get(Content{Key: 39}))\n\t}\n\tif tree.Get(Content{Key: 1111}) != nil {\n\t\tt.Errorf(\"Get(1111) returned %v, but it should be nil.\", Content(tree.Get(Content{Key: 1111})))\n\t}\n}\n\nfunc TestDescend(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 5)\n\n\texpected := []int{4, 3, 2, 1, 0}\n\tfound := []int{}\n\n\ttree.Descend(func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"Descend returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendGreaterThan(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10)\n\n\texpected := []int{9, 8, 7, 6, 5}\n\tfound := []int{}\n\n\ttree.DescendGreaterThan(Content{Key: 4}, func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendGreaterThan returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendLessOrEqual(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10)\n\n\texpected := []int{4, 3, 2, 1, 0}\n\tfound := []int{}\n\n\ttree.DescendLessOrEqual(Content{Key: 4}, func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendLessOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendRange(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10)\n\n\texpected := []int{6, 5, 4, 3, 2}\n\tfound := []int{}\n\n\ttree.DescendRange(Content{Key: 6}, Content{Key: 1}, func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendRange returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscend(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 5)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\ttree.Ascend(func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"Ascend returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendGreaterOrEqual(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10)\n\n\texpected := []int{5, 6, 7, 8, 9}\n\tfound := []int{}\n\n\ttree.AscendGreaterOrEqual(Content{Key: 5}, func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"AscendGreaterOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendLessThan(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\ttree.AscendLessThan(Content{Key: 5}, func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendLessOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendRange(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10)\n\n\texpected := []int{2, 3, 4, 5, 6}\n\tfound := []int{}\n\n\ttree.AscendRange(Content{Key: 2}, Content{Key: 7}, func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendRange returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDeleteMin(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(3)), 100)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestShift(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(3)), 100)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of Shift returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDeleteMax(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(3)), 100)\n\n\texpected := []int{99, 98, 97, 96, 95}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestPop(t *testing.T) {\n\ttree := genericSeeding(btree.New(WithDegree(3)), 100)\n\n\texpected := []int{99, 98, 97, 96, 95}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestInsertGet(t *testing.T) {\n\ttree := btree.New(WithDegree(4))\n\n\texpected := []Content{}\n\n\tfor count := 0; count \u003c 20; count++ {\n\t\tvalue := fmt.Sprintf(\"Value_%d\", count)\n\t\ttree.Insert(Content{Key: count, Value: value})\n\t\texpected = append(expected, Content{Key: count, Value: value})\n\t}\n\n\tfor count := 0; count \u003c 20; count++ {\n\t\tif tree.Get(Content{Key: count}) != expected[count] {\n\t\t\tt.Errorf(\"Insert/Get doesn't appear to be working. Expected to retrieve %v with key %d, but got %v.\", expected[count], count, tree.Get(Content{Key: count}))\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n}\n\n// ***** The following tests are functional or stress testing type tests.\n\nfunc TestBTree(t *testing.T) {\n\t// Create a B-Tree of degree 3\n\ttree := btree.New(WithDegree(3))\n\n\t//insertData := []Content{}\n\tvar insertData ContentSlice\n\n\t// Insert integer keys\n\tintKeys := []int{10, 20, 5, 6, 12, 30, 7, 17}\n\tfor _, key := range intKeys {\n\t\tcontent := Content{Key: key, Value: fmt.Sprintf(\"Value_%d\", key)}\n\t\tinsertData = append(insertData, content)\n\t\tresult := tree.Insert(content)\n\t\tif result != nil {\n\t\t\tt.Errorf(\"**** Already in the tree? %v\", result)\n\t\t}\n\t}\n\n\t// Insert string keys\n\tstringKeys := []string{\"apple\", \"banana\", \"cherry\", \"date\", \"fig\", \"grape\"}\n\tfor _, key := range stringKeys {\n\t\tcontent := Content{Key: key, Value: fmt.Sprintf(\"Fruit_%s\", key)}\n\t\tinsertData = append(insertData, content)\n\t\ttree.Insert(content)\n\t}\n\n\tif tree.Len() != 14 {\n\t\tt.Errorf(\"Tree length wrong. Expected 14 but got %d\", tree.Len())\n\t}\n\n\t// Search for existing and non-existing keys\n\tsearchTests := []struct {\n\t\ttest Content\n\t\texpected bool\n\t}{\n\t\t{Content{Key: 10, Value: \"Value_10\"}, true},\n\t\t{Content{Key: 15, Value: \"\"}, false},\n\t\t{Content{Key: \"banana\", Value: \"Fruit_banana\"}, true},\n\t\t{Content{Key: \"kiwi\", Value: \"\"}, false},\n\t}\n\n\tt.Logf(\"Search Tests:\\n\")\n\tfor _, test := range searchTests {\n\t\tval := tree.Get(test.test)\n\n\t\tif test.expected {\n\t\t\tif val != nil \u0026\u0026 Content(val).Value == test.test.Value {\n\t\t\t\tt.Logf(\"Found expected key:value %v:%v\", test.test.Key, test.test.Value)\n\t\t\t} else {\n\t\t\t\tif val == nil {\n\t\t\t\t\tt.Logf(\"Didn't find %v, but expected\", test.test.Key)\n\t\t\t\t} else {\n\t\t\t\t\tt.Errorf(\"Expected key %v:%v, but found %v:%v.\", test.test.Key, test.test.Value, Content(val).Key, Content(val).Value)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Did not expect key %v, but found key:value %v:%v\", test.test.Key, Content(val).Key, Content(val).Value)\n\t\t\t} else {\n\t\t\t\tt.Logf(\"Didn't find %v, but wasn't expected\", test.test.Key)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Iterate in order\n\tt.Logf(\"\\nIn-order Iteration:\\n\")\n\tpos := 0\n\n\tif tree.Len() != 14 {\n\t\tt.Errorf(\"Tree length wrong. Expected 14 but got %d\", tree.Len())\n\t}\n\n\tsortedInsertData := insertData.Copy()\n\tsort.Sort(sortedInsertData)\n\n\tt.Logf(\"Insert Data Length: %d\", len(insertData))\n\tt.Logf(\"Sorted Data Length: %d\", len(sortedInsertData))\n\tt.Logf(\"Tree Length: %d\", tree.Len())\n\n\ttree.Ascend(func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tt.Logf(\"Key:Value == %v:%v\", record.Key, record.Value)\n\t\tif record.Key != sortedInsertData[pos].Key {\n\t\t\tt.Errorf(\"Out of order! Expected %v, but got %v\", sortedInsertData[pos].Key, record.Key)\n\t\t}\n\t\tpos++\n\t\treturn true\n\t})\n\t// // Reverse Iterate\n\tt.Logf(\"\\nReverse-order Iteration:\\n\")\n\tpos = len(sortedInsertData) - 1\n\n\ttree.Descend(func(_record btree.Record) bool {\n\t\trecord := Content(_record)\n\t\tt.Logf(\"Key:Value == %v:%v\", record.Key, record.Value)\n\t\tif record.Key != sortedInsertData[pos].Key {\n\t\t\tt.Errorf(\"Out of order! Expected %v, but got %v\", sortedInsertData[pos].Key, record.Key)\n\t\t}\n\t\tpos--\n\t\treturn true\n\t})\n\n\tdeleteTests := []Content{\n\t\tContent{Key: 10, Value: \"Value_10\"},\n\t\tContent{Key: 15, Value: \"\"},\n\t\tContent{Key: \"banana\", Value: \"Fruit_banana\"},\n\t\tContent{Key: \"kiwi\", Value: \"\"},\n\t}\n\tfor _, test := range deleteTests {\n\t\tfmt.Printf(\"\\nDeleting %+v\\n\", test)\n\t\ttree.Delete(test)\n\t}\n\n\tif tree.Len() != 12 {\n\t\tt.Errorf(\"Tree length wrong. Expected 12 but got %d\", tree.Len())\n\t}\n\n\tfor _, test := range deleteTests {\n\t\tval := tree.Get(test)\n\t\tif val != nil {\n\t\t\tt.Errorf(\"Did not expect key %v, but found key:value %v:%v\", test.Key, Content(val).Key, Content(val).Value)\n\t\t} else {\n\t\t\tt.Logf(\"Didn't find %v, but wasn't expected\", test.Key)\n\t\t}\n\t}\n}\n\nfunc TestStress(t *testing.T) {\n\t// Loop through creating B-Trees with a range of degrees from 3 to 12, stepping by 3.\n\t// Insert 1000 records into each tree, then search for each record.\n\t// Delete half of the records, skipping every other one, then search for each record.\n\n\tfor degree := 3; degree \u003c= 12; degree += 3 {\n\t\tt.Logf(\"Testing B-Tree of degree %d\\n\", degree)\n\t\ttree := btree.New(WithDegree(degree))\n\n\t\t// Insert 1000 records\n\t\tt.Logf(\"Inserting 1000 records\\n\")\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\ttree.Insert(content)\n\t\t}\n\n\t\t// Search for all records\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\tval := tree.Get(content)\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\t// Delete half of the records\n\t\tfor i := 0; i \u003c 1000; i += 2 {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\ttree.Delete(content)\n\t\t}\n\n\t\t// Search for all records\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\tval := tree.Get(content)\n\t\t\tif i%2 == 0 {\n\t\t\t\tif val != nil {\n\t\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif val == nil {\n\t\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Now create a very large tree, with 100000 records\n\t// Then delete roughly one third of them, using a very basic random number generation scheme\n\t// (implement it right here) to determine which records to delete.\n\t// Print a few lines using Logf to let the user know what's happening.\n\n\tt.Logf(\"Testing B-Tree of degree 10 with 100000 records\\n\")\n\ttree := btree.New(WithDegree(10))\n\n\t// Insert 100000 records\n\tt.Logf(\"Inserting 100000 records\\n\")\n\tfor i := 0; i \u003c 100000; i++ {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Insert(content)\n\t}\n\n\t// Implement a very basic random number generator\n\tseed := 0\n\trandom := func() int {\n\t\tseed = (seed*1103515245 + 12345) \u0026 0x7fffffff\n\t\treturn seed\n\t}\n\n\t// Delete one third of the records\n\tt.Logf(\"Deleting one third of the records\\n\")\n\tfor i := 0; i \u003c 35000; i++ {\n\t\tcontent := Content{Key: random() % 100000, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t}\n}\n\n// Write a test that populates a large B-Tree with 10000 records.\n// It should then `Clone` the tree, make some changes to both the original and the clone,\n// And then clone the clone, and make some changes to all three trees, and then check that the changes are isolated\n// to the tree they were made in.\n\nfunc TestBTreeCloneIsolation(t *testing.T) {\n\tt.Logf(\"Creating B-Tree of degree 10 with 10000 records\\n\")\n\ttree := genericSeeding(btree.New(WithDegree(10)), 10000)\n\n\t// Clone the tree\n\tt.Logf(\"Cloning the tree\\n\")\n\tclone := tree.Clone()\n\n\t// Make some changes to the original and the clone\n\tt.Logf(\"Making changes to the original and the clone\\n\")\n\tfor i := 0; i \u003c 10000; i += 2 {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t\tcontent = Content{Key: i + 1, Value: fmt.Sprintf(\"Value_%d\", i+1)}\n\t\tclone.Delete(content)\n\t}\n\n\t// Clone the clone\n\tt.Logf(\"Cloning the clone\\n\")\n\tclone2 := clone.Clone()\n\n\t// Make some changes to all three trees\n\tt.Logf(\"Making changes to all three trees\\n\")\n\tfor i := 0; i \u003c 10000; i += 3 {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t\tcontent = Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i+1)}\n\t\tclone.Delete(content)\n\t\tcontent = Content{Key: i + 2, Value: fmt.Sprintf(\"Value_%d\", i+2)}\n\t\tclone2.Delete(content)\n\t}\n\n\t// Check that the changes are isolated to the tree they were made in\n\tt.Logf(\"Checking that the changes are isolated to the tree they were made in\\n\")\n\tfor i := 0; i \u003c 10000; i++ {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\tval := tree.Get(content)\n\n\t\tif i%3 == 0 || i%2 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\tval = clone.Get(content)\n\t\tif i%2 != 0 || i%3 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\tval = clone2.Get(content)\n\t\tif i%2 != 0 || (i-2)%3 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jy+p0JEXKbYkkk1IAyWL+kKO2kS6y7BgtFiMygFsbveIv/YqxjWpzOcMxbdbEdK75/LTkqf/+Q+nc0ws1SNFCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"buttons","path":"gno.land/r/docs/buttons","files":[{"name":"buttons.gno","body":"package buttons\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nvar (\n\tmotd = \"The Initial Message\\n\\n\"\n\tlastCaller std.Address\n)\n\nfunc UpdateMOTD(newmotd string) {\n\tmotd = newmotd\n\tlastCaller = std.PrevRealm().Addr()\n}\n\nfunc Render(path string) string {\n\tif path == \"motd\" {\n\t\tout := \"# Message of the Day:\\n\\n\"\n\t\tout += \"---\\n\\n\"\n\t\tout += \"# \" + motd + \"\\n\\n\"\n\t\tout += \"---\\n\\n\"\n\t\tlink := txlink.Call(\"UpdateMOTD\", \"newmotd\", \"Message!\") // \"/r/docs/buttons$help\u0026func=UpdateMOTD\u0026newmotd=Message!\"\n\t\tout += ufmt.Sprintf(\"Click **[here](%s)** to update the Message of The Day!\\n\\n\", link)\n\t\tout += \"[Go back to home page](/r/docs/buttons)\\n\\n\"\n\t\tout += \"Last updated by \" + lastCaller.String()\n\n\t\treturn out\n\t}\n\n\tout := `# Buttons\n\nUsers can create simple hyperlink buttons to view specific realm pages and\ndo specific realm actions, such as calling a specific function with some arguments.\n\nThe foundation for this functionality are markdown links; for example, you can\nclick...\n` + \"\\n## [here](/r/docs/buttons:motd)\\n\" + `...to view this realm's message of the day.`\n\n\treturn out\n}\n"},{"name":"buttons_test.gno","body":"package buttons\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderMotdLink(t *testing.T) {\n\tres := Render(\"motd\")\n\tconst wantLink = \"/r/docs/buttons$help\u0026func=UpdateMOTD\u0026newmotd=Message!\"\n\tif !strings.Contains(res, wantLink) {\n\t\tt.Fatalf(\"%s\\ndoes not contain correct help page link: %s\", res, wantLink)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6OYym6vJinsio2gXInCYsdzWHBGvk864m2G/02QsXYdIR8489Jd3D/MCEfZ36e1IgrT6MX/ZEgk/k3zILBrOAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"cford32","path":"gno.land/p/demo/cford32","files":[{"name":"LICENSE","body":"Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# cford32\n\n```\npackage cford32 // import \"gno.land/p/demo/cford32\"\n\nPackage cford32 implements a base32-like encoding/decoding package, with the\nencoding scheme specified by Douglas Crockford.\n\nFrom the website, the requirements of said encoding scheme are to:\n\n - Be human readable and machine readable.\n - Be compact. Humans have difficulty in manipulating long strings of arbitrary\n symbols.\n - Be error resistant. Entering the symbols must not require keyboarding\n gymnastics.\n - Be pronounceable. Humans should be able to accurately transmit the symbols\n to other humans using a telephone.\n\nThis is slightly different from a simple difference in encoding table from\nthe Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\nparsed as 1, and o O is parsed as 0.\n\nThis package additionally provides ways to encode uint64's efficiently, as well\nas efficient encoding to a lowercase variation of the encoding. The encodings\nnever use paddings.\n\n# Uint64 Encoding\n\nAside from lower/uppercase encoding, there is a compact encoding, allowing to\nencode all values in [0,2^34), and the full encoding, allowing all values in\n[0,2^64). The compact encoding uses 7 characters, and the full encoding uses 13\ncharacters. Both are parsed unambiguously by the Uint64 decoder.\n\nThe compact encodings have the first character between ['0','f'], while the\nfull encoding's first character ranges between ['g','z']. Practically, in your\nusage of the package, you should consider which one to use and stick with it,\nwhile considering that the compact encoding, once it reaches 2^34, automatically\nswitches to the full encoding. The properties of the generated strings are still\nmaintained: for instance, any two encoded uint64s x,y consistently generated\nwith the compact encoding, if the numeric value is x \u003c y, will also be x \u003c y in\nlexical ordering. However, values [0,2^34) have a \"double encoding\", which if\nmixed together lose the lexical ordering property.\n\nThe Uint64 encoding is most useful for generating string versions of Uint64 IDs.\nPractically, it allows you to retain sleek and compact IDs for your application\nfor the first 2^34 (\u003e17 billion) entities, while seamlessly rolling over to the\nfull encoding should you exceed that. You are encouraged to use it unless you\nhave a requirement or preferences for IDs consistently being always the same\nsize.\n\nTo use the cford32 encoding for IDs, you may want to consider using package\ngno.land/p/demo/seqid.\n\n[specified by Douglas Crockford]: https://www.crockford.com/base32.html\n\nfunc AppendCompact(id uint64, b []byte) []byte\nfunc AppendDecode(dst, src []byte) ([]byte, error)\nfunc AppendEncode(dst, src []byte) []byte\nfunc AppendEncodeLower(dst, src []byte) []byte\nfunc Decode(dst, src []byte) (n int, err error)\nfunc DecodeString(s string) ([]byte, error)\nfunc DecodedLen(n int) int\nfunc Encode(dst, src []byte)\nfunc EncodeLower(dst, src []byte)\nfunc EncodeToString(src []byte) string\nfunc EncodeToStringLower(src []byte) string\nfunc EncodedLen(n int) int\nfunc NewDecoder(r io.Reader) io.Reader\nfunc NewEncoder(w io.Writer) io.WriteCloser\nfunc NewEncoderLower(w io.Writer) io.WriteCloser\nfunc PutCompact(id uint64) []byte\nfunc PutUint64(id uint64) [13]byte\nfunc PutUint64Lower(id uint64) [13]byte\nfunc Uint64(b []byte) (uint64, error)\ntype CorruptInputError int64\n```\n"},{"name":"cford32.gno","body":"// Modified from the Go Source code for encoding/base32.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package cford32 implements a base32-like encoding/decoding package, with the\n// encoding scheme [specified by Douglas Crockford].\n//\n// From the website, the requirements of said encoding scheme are to:\n//\n// - Be human readable and machine readable.\n// - Be compact. Humans have difficulty in manipulating long strings of arbitrary symbols.\n// - Be error resistant. Entering the symbols must not require keyboarding gymnastics.\n// - Be pronounceable. Humans should be able to accurately transmit the symbols to other humans using a telephone.\n//\n// This is slightly different from a simple difference in encoding table from\n// the Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\n// parsed as 1, and o O is parsed as 0.\n//\n// This package additionally provides ways to encode uint64's efficiently,\n// as well as efficient encoding to a lowercase variation of the encoding.\n// The encodings never use paddings.\n//\n// # Uint64 Encoding\n//\n// Aside from lower/uppercase encoding, there is a compact encoding, allowing\n// to encode all values in [0,2^34), and the full encoding, allowing all\n// values in [0,2^64). The compact encoding uses 7 characters, and the full\n// encoding uses 13 characters. Both are parsed unambiguously by the Uint64\n// decoder.\n//\n// The compact encodings have the first character between ['0','f'], while the\n// full encoding's first character ranges between ['g','z']. Practically, in\n// your usage of the package, you should consider which one to use and stick\n// with it, while considering that the compact encoding, once it reaches 2^34,\n// automatically switches to the full encoding. The properties of the generated\n// strings are still maintained: for instance, any two encoded uint64s x,y\n// consistently generated with the compact encoding, if the numeric value is\n// x \u003c y, will also be x \u003c y in lexical ordering. However, values [0,2^34) have a\n// \"double encoding\", which if mixed together lose the lexical ordering property.\n//\n// The Uint64 encoding is most useful for generating string versions of Uint64\n// IDs. Practically, it allows you to retain sleek and compact IDs for your\n// application for the first 2^34 (\u003e17 billion) entities, while seamlessly\n// rolling over to the full encoding should you exceed that. You are encouraged\n// to use it unless you have a requirement or preferences for IDs consistently\n// being always the same size.\n//\n// To use the cford32 encoding for IDs, you may want to consider using package\n// [gno.land/p/demo/seqid].\n//\n// [specified by Douglas Crockford]: https://www.crockford.com/base32.html\npackage cford32\n\nimport (\n\t\"io\"\n\t\"strconv\"\n)\n\nconst (\n\tencTable = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"\n\tencTableLower = \"0123456789abcdefghjkmnpqrstvwxyz\"\n\n\t// each line is 16 bytes\n\tdecTable = \"\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 00-0f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 10-1f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 20-2f\n\t\t\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\xff\\xff\\xff\\xff\\xff\\xff\" + // 30-3f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 40-4f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 50-5f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 60-6f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 70-7f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 80-ff (not ASCII)\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n)\n\n// CorruptInputError is returned by parsing functions when an invalid character\n// in the input is found. The integer value represents the byte index where\n// the error occurred.\n//\n// This is typically because the given character does not exist in the encoding.\ntype CorruptInputError int64\n\nfunc (e CorruptInputError) Error() string {\n\treturn \"illegal cford32 data at input byte \" + strconv.FormatInt(int64(e), 10)\n}\n\n// Uint64 parses a cford32-encoded byte slice into a uint64.\n//\n// - The parser requires all provided character to be valid cford32 characters.\n// - The parser disregards case.\n// - If the first character is '0' \u003c= c \u003c= 'f', then the passed value is assumed\n// encoded in the compact encoding, and must be 7 characters long.\n// - If the first character is 'g' \u003c= c \u003c= 'z', then the passed value is\n// assumed encoded in the full encoding, and must be 13 characters long.\n//\n// If any of these requirements fail, a CorruptInputError will be returned.\nfunc Uint64(b []byte) (uint64, error) {\n\tswitch {\n\tdefault:\n\t\treturn 0, CorruptInputError(0)\n\tcase len(b) == 7 \u0026\u0026 b[0] \u003e= '0' \u0026\u0026 b[0] \u003c= 'f':\n\t\tdecVals := [7]byte{\n\t\t\tdecTable[b[0]],\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c30 |\n\t\t\tuint64(decVals[1])\u003c\u003c25 |\n\t\t\tuint64(decVals[2])\u003c\u003c20 |\n\t\t\tuint64(decVals[3])\u003c\u003c15 |\n\t\t\tuint64(decVals[4])\u003c\u003c10 |\n\t\t\tuint64(decVals[5])\u003c\u003c5 |\n\t\t\tuint64(decVals[6]), nil\n\tcase len(b) == 13 \u0026\u0026 b[0] \u003e= 'g' \u0026\u0026 b[0] \u003c= 'z':\n\t\tdecVals := [13]byte{\n\t\t\tdecTable[b[0]] \u0026 0x0F, // disregard high bit\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t\tdecTable[b[7]],\n\t\t\tdecTable[b[8]],\n\t\t\tdecTable[b[9]],\n\t\t\tdecTable[b[10]],\n\t\t\tdecTable[b[11]],\n\t\t\tdecTable[b[12]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c60 |\n\t\t\tuint64(decVals[1])\u003c\u003c55 |\n\t\t\tuint64(decVals[2])\u003c\u003c50 |\n\t\t\tuint64(decVals[3])\u003c\u003c45 |\n\t\t\tuint64(decVals[4])\u003c\u003c40 |\n\t\t\tuint64(decVals[5])\u003c\u003c35 |\n\t\t\tuint64(decVals[6])\u003c\u003c30 |\n\t\t\tuint64(decVals[7])\u003c\u003c25 |\n\t\t\tuint64(decVals[8])\u003c\u003c20 |\n\t\t\tuint64(decVals[9])\u003c\u003c15 |\n\t\t\tuint64(decVals[10])\u003c\u003c10 |\n\t\t\tuint64(decVals[11])\u003c\u003c5 |\n\t\t\tuint64(decVals[12]), nil\n\t}\n}\n\nconst mask = 31\n\n// PutUint64 returns a cford32-encoded byte slice.\nfunc PutUint64(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTable[id\u003e\u003e60\u0026mask|0x10], // specify full encoding\n\t\tencTable[id\u003e\u003e55\u0026mask],\n\t\tencTable[id\u003e\u003e50\u0026mask],\n\t\tencTable[id\u003e\u003e45\u0026mask],\n\t\tencTable[id\u003e\u003e40\u0026mask],\n\t\tencTable[id\u003e\u003e35\u0026mask],\n\t\tencTable[id\u003e\u003e30\u0026mask],\n\t\tencTable[id\u003e\u003e25\u0026mask],\n\t\tencTable[id\u003e\u003e20\u0026mask],\n\t\tencTable[id\u003e\u003e15\u0026mask],\n\t\tencTable[id\u003e\u003e10\u0026mask],\n\t\tencTable[id\u003e\u003e5\u0026mask],\n\t\tencTable[id\u0026mask],\n\t}\n}\n\n// PutUint64Lower returns a cford32-encoded byte array, swapping uppercase\n// letters with lowercase.\n//\n// For more information on how the value is encoded, see [Uint64].\nfunc PutUint64Lower(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t}\n}\n\n// PutCompact returns a cford32-encoded byte slice, using the compact\n// representation of cford32 described in the package documentation where\n// possible (all values of id \u003c 1\u003c\u003c34). The lowercase encoding is used.\n//\n// The resulting byte slice will be 7 bytes long for all compact values,\n// and 13 bytes long for\nfunc PutCompact(id uint64) []byte {\n\treturn AppendCompact(id, nil)\n}\n\n// AppendCompact works like [PutCompact] but appends to the given byte slice\n// instead of allocating one anew.\nfunc AppendCompact(id uint64, b []byte) []byte {\n\tconst maxCompact = 1 \u003c\u003c 34\n\tif id \u003c maxCompact {\n\t\treturn append(b,\n\t\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\t\tencTableLower[id\u0026mask],\n\t\t)\n\t}\n\treturn append(b,\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t)\n}\n\nfunc DecodedLen(n int) int {\n\treturn n/8*5 + n%8*5/8\n}\n\nfunc EncodedLen(n int) int {\n\treturn n/5*8 + (n%5*8+4)/5\n}\n\n// Encode encodes src using the encoding enc,\n// writing [EncodedLen](len(src)) bytes to dst.\n//\n// The encoding does not contain any padding, unlike Go's base32.\nfunc Encode(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTable[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTable[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTable[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTable[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTable[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTable[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTable[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTable[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTable[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTable[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTable[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTable[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTable[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTable[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTable[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// EncodeLower is like [Encode], but uses the lowercase\nfunc EncodeLower(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTableLower[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTableLower[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTableLower[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTableLower[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTableLower[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTableLower[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTableLower[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTableLower[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTableLower[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTableLower[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTableLower[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTableLower[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTableLower[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTableLower[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTableLower[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// AppendEncode appends the cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncode(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncode(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\n// AppendEncodeLower appends the lowercase cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncodeLower(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncodeLower(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\nfunc grow(s []byte, n int) []byte {\n\t// slices.Grow\n\tif n -= cap(s) - len(s); n \u003e 0 {\n\t\tnews := make([]byte, cap(s)+n)\n\t\tcopy(news[:cap(s)], s[:cap(s)])\n\t\treturn news[:len(s)]\n\t}\n\treturn s\n}\n\n// EncodeToString returns the cford32 encoding of src.\nfunc EncodeToString(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncode(buf, src)\n\treturn string(buf)\n}\n\n// EncodeToStringLower returns the cford32 lowercase encoding of src.\nfunc EncodeToStringLower(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncodeLower(buf, src)\n\treturn string(buf)\n}\n\nfunc decode(dst, src []byte) (n int, err error) {\n\tdsti := 0\n\tolen := len(src)\n\n\tfor len(src) \u003e 0 {\n\t\t// Decode quantum using the base32 alphabet\n\t\tvar dbuf [8]byte\n\t\tdlen := 8\n\n\t\tfor j := 0; j \u003c 8; {\n\t\t\tif len(src) == 0 {\n\t\t\t\t// We have reached the end and are not expecting any padding\n\t\t\t\tdlen = j\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tin := src[0]\n\t\t\tsrc = src[1:]\n\t\t\tdbuf[j] = decTable[in]\n\t\t\tif dbuf[j] == 0xFF {\n\t\t\t\treturn n, CorruptInputError(olen - len(src) - 1)\n\t\t\t}\n\t\t\tj++\n\t\t}\n\n\t\t// Pack 8x 5-bit source blocks into 5 byte destination\n\t\t// quantum\n\t\tswitch dlen {\n\t\tcase 8:\n\t\t\tdst[dsti+4] = dbuf[6]\u003c\u003c5 | dbuf[7]\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 7:\n\t\t\tdst[dsti+3] = dbuf[4]\u003c\u003c7 | dbuf[5]\u003c\u003c2 | dbuf[6]\u003e\u003e3\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 5:\n\t\t\tdst[dsti+2] = dbuf[3]\u003c\u003c4 | dbuf[4]\u003e\u003e1\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 4:\n\t\t\tdst[dsti+1] = dbuf[1]\u003c\u003c6 | dbuf[2]\u003c\u003c1 | dbuf[3]\u003e\u003e4\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 2:\n\t\t\tdst[dsti+0] = dbuf[0]\u003c\u003c3 | dbuf[1]\u003e\u003e2\n\t\t\tn++\n\t\t}\n\t\tdsti += 5\n\t}\n\treturn n, nil\n}\n\ntype encoder struct {\n\terr error\n\tw io.Writer\n\tenc func(dst, src []byte)\n\tbuf [5]byte // buffered data waiting to be encoded\n\tnbuf int // number of bytes in buf\n\tout [1024]byte // output buffer\n}\n\nfunc NewEncoder(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: Encode}\n}\n\nfunc NewEncoderLower(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: EncodeLower}\n}\n\nfunc (e *encoder) Write(p []byte) (n int, err error) {\n\tif e.err != nil {\n\t\treturn 0, e.err\n\t}\n\n\t// Leading fringe.\n\tif e.nbuf \u003e 0 {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(p) \u0026\u0026 e.nbuf \u003c 5; i++ {\n\t\t\te.buf[e.nbuf] = p[i]\n\t\t\te.nbuf++\n\t\t}\n\t\tn += i\n\t\tp = p[i:]\n\t\tif e.nbuf \u003c 5 {\n\t\t\treturn\n\t\t}\n\t\te.enc(e.out[0:], e.buf[0:])\n\t\tif _, e.err = e.w.Write(e.out[0:8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\te.nbuf = 0\n\t}\n\n\t// Large interior chunks.\n\tfor len(p) \u003e= 5 {\n\t\tnn := len(e.out) / 8 * 5\n\t\tif nn \u003e len(p) {\n\t\t\tnn = len(p)\n\t\t\tnn -= nn % 5\n\t\t}\n\t\te.enc(e.out[0:], p[0:nn])\n\t\tif _, e.err = e.w.Write(e.out[0 : nn/5*8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\tn += nn\n\t\tp = p[nn:]\n\t}\n\n\t// Trailing fringe.\n\tcopy(e.buf[:], p)\n\te.nbuf = len(p)\n\tn += len(p)\n\treturn\n}\n\n// Close flushes any pending output from the encoder.\n// It is an error to call Write after calling Close.\nfunc (e *encoder) Close() error {\n\t// If there's anything left in the buffer, flush it out\n\tif e.err == nil \u0026\u0026 e.nbuf \u003e 0 {\n\t\te.enc(e.out[0:], e.buf[0:e.nbuf])\n\t\tencodedLen := EncodedLen(e.nbuf)\n\t\te.nbuf = 0\n\t\t_, e.err = e.w.Write(e.out[0:encodedLen])\n\t}\n\treturn e.err\n}\n\n// Decode decodes src using cford32. It writes at most\n// [DecodedLen](len(src)) bytes to dst and returns the number of bytes\n// written. If src contains invalid cford32 data, it will return the\n// number of bytes successfully written and [CorruptInputError].\n// Newline characters (\\r and \\n) are ignored.\nfunc Decode(dst, src []byte) (n int, err error) {\n\tbuf := make([]byte, len(src))\n\tl := stripNewlines(buf, src)\n\treturn decode(dst, buf[:l])\n}\n\n// AppendDecode appends the cford32 decoded src to dst\n// and returns the extended buffer.\n// If the input is malformed, it returns the partially decoded src and an error.\nfunc AppendDecode(dst, src []byte) ([]byte, error) {\n\tn := DecodedLen(len(src))\n\n\tdst = grow(dst, n)\n\tdstsl := dst[len(dst) : len(dst)+n]\n\tn, err := Decode(dstsl, src)\n\treturn dst[:len(dst)+n], err\n}\n\n// DecodeString returns the bytes represented by the cford32 string s.\nfunc DecodeString(s string) ([]byte, error) {\n\tbuf := []byte(s)\n\tl := stripNewlines(buf, buf)\n\tn, err := decode(buf, buf[:l])\n\treturn buf[:n], err\n}\n\n// stripNewlines removes newline characters and returns the number\n// of non-newline characters copied to dst.\nfunc stripNewlines(dst, src []byte) int {\n\toffset := 0\n\tfor _, b := range src {\n\t\tif b == '\\r' || b == '\\n' {\n\t\t\tcontinue\n\t\t}\n\t\tdst[offset] = b\n\t\toffset++\n\t}\n\treturn offset\n}\n\ntype decoder struct {\n\terr error\n\tr io.Reader\n\tbuf [1024]byte // leftover input\n\tnbuf int\n\tout []byte // leftover decoded output\n\toutbuf [1024 / 8 * 5]byte\n}\n\n// NewDecoder constructs a new base32 stream decoder.\nfunc NewDecoder(r io.Reader) io.Reader {\n\treturn \u0026decoder{r: \u0026newlineFilteringReader{r}}\n}\n\nfunc readEncodedData(r io.Reader, buf []byte) (n int, err error) {\n\tfor n \u003c 1 \u0026\u0026 err == nil {\n\t\tvar nn int\n\t\tnn, err = r.Read(buf[n:])\n\t\tn += nn\n\t}\n\treturn\n}\n\nfunc (d *decoder) Read(p []byte) (n int, err error) {\n\t// Use leftover decoded output from last read.\n\tif len(d.out) \u003e 0 {\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t\tif len(d.out) == 0 {\n\t\t\treturn n, d.err\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tif d.err != nil {\n\t\treturn 0, d.err\n\t}\n\n\t// Read nn bytes from input, bounded [8,len(d.buf)]\n\tnn := (len(p)/5 + 1) * 8\n\tif nn \u003e len(d.buf) {\n\t\tnn = len(d.buf)\n\t}\n\n\tnn, d.err = readEncodedData(d.r, d.buf[d.nbuf:nn])\n\td.nbuf += nn\n\tif d.nbuf \u003c 1 {\n\t\treturn 0, d.err\n\t}\n\n\t// Decode chunk into p, or d.out and then p if p is too small.\n\tnr := d.nbuf\n\tif d.err != io.EOF \u0026\u0026 nr%8 != 0 {\n\t\tnr -= nr % 8\n\t}\n\tnw := DecodedLen(d.nbuf)\n\n\tif nw \u003e len(p) {\n\t\tnw, err = decode(d.outbuf[0:], d.buf[0:nr])\n\t\td.out = d.outbuf[0:nw]\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t} else {\n\t\tn, err = decode(p, d.buf[0:nr])\n\t}\n\td.nbuf -= nr\n\tfor i := 0; i \u003c d.nbuf; i++ {\n\t\td.buf[i] = d.buf[i+nr]\n\t}\n\n\tif err != nil \u0026\u0026 (d.err == nil || d.err == io.EOF) {\n\t\td.err = err\n\t}\n\n\tif len(d.out) \u003e 0 {\n\t\t// We cannot return all the decoded bytes to the caller in this\n\t\t// invocation of Read, so we return a nil error to ensure that Read\n\t\t// will be called again. The error stored in d.err, if any, will be\n\t\t// returned with the last set of decoded bytes.\n\t\treturn n, nil\n\t}\n\n\treturn n, d.err\n}\n\ntype newlineFilteringReader struct {\n\twrapped io.Reader\n}\n\nfunc (r *newlineFilteringReader) Read(p []byte) (int, error) {\n\tn, err := r.wrapped.Read(p)\n\tfor n \u003e 0 {\n\t\ts := p[0:n]\n\t\toffset := stripNewlines(s, s)\n\t\tif err != nil || offset \u003e 0 {\n\t\t\treturn offset, err\n\t\t}\n\t\t// Previous buffer entirely whitespace, read again\n\t\tn, err = r.wrapped.Read(p)\n\t}\n\treturn n, err\n}\n"},{"name":"cford32_test.gno","body":"package cford32\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestCompactRoundtrip(t *testing.T) {\n\tbuf := make([]byte, 13)\n\tprev := make([]byte, 13)\n\tfor i := uint64(0); i \u003c (1 \u003c\u003c 12); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c34 - 1024); i \u003c (1\u003c\u003c34 + 1024); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\t// println(string(res))\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c64 - 5000); i != 0; i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n}\n\nfunc BenchmarkCompact(b *testing.B) {\n\tbuf := make([]byte, 13)\n\tfor i := 0; i \u003c b.N; i++ {\n\t\t_ = AppendCompact(uint64(i), buf[:0])\n\t}\n}\n\ntype testpair struct {\n\tdecoded, encoded string\n}\n\nvar pairs = []testpair{\n\t{\"\", \"\"},\n\t{\"f\", \"CR\"},\n\t{\"fo\", \"CSQG\"},\n\t{\"foo\", \"CSQPY\"},\n\t{\"foob\", \"CSQPYRG\"},\n\t{\"fooba\", \"CSQPYRK1\"},\n\t{\"foobar\", \"CSQPYRK1E8\"},\n\n\t{\"sure.\", \"EDTQ4S9E\"},\n\t{\"sure\", \"EDTQ4S8\"},\n\t{\"sur\", \"EDTQ4\"},\n\t{\"su\", \"EDTG\"},\n\t{\"leasure.\", \"DHJP2WVNE9JJW\"},\n\t{\"easure.\", \"CNGQ6XBJCMQ0\"},\n\t{\"asure.\", \"C5SQAWK55R\"},\n}\n\nvar bigtest = testpair{\n\t\"Twas brillig, and the slithy toves\",\n\t\"AHVP2WS0C9S6JV3CD5KJR831DSJ20X38CMG76V39EHM7J83MDXV6AWR\",\n}\n\nfunc testEqual(t *testing.T, msg string, args ...interface{}) bool {\n\tt.Helper()\n\tif args[len(args)-2] != args[len(args)-1] {\n\t\tt.Errorf(msg, args...)\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc TestEncode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tgot := EncodeToString([]byte(p.decoded))\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, got, p.encoded)\n\t\tdst := AppendEncode([]byte(\"lead\"), []byte(p.decoded))\n\t\ttestEqual(t, `AppendEncode(\"lead\", %q) = %q, want %q`, p.decoded, string(dst), \"lead\"+p.encoded)\n\t}\n}\n\nfunc TestEncoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tencoder.Write([]byte(p.decoded))\n\t\tencoder.Close()\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, bb.String(), p.encoded)\n\t}\n}\n\nfunc TestEncoderBuffering(t *testing.T) {\n\tinput := []byte(bigtest.decoded)\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tfor pos := 0; pos \u003c len(input); pos += bs {\n\t\t\tend := pos + bs\n\t\t\tif end \u003e len(input) {\n\t\t\t\tend = len(input)\n\t\t\t}\n\t\t\tn, err := encoder.Write(input[pos:end])\n\t\t\ttestEqual(t, \"Write(%q) gave error %v, want %v\", input[pos:end], err, error(nil))\n\t\t\ttestEqual(t, \"Write(%q) gave length %v, want %v\", input[pos:end], n, end-pos)\n\t\t}\n\t\terr := encoder.Close()\n\t\ttestEqual(t, \"Close gave error %v, want %v\", err, error(nil))\n\t\ttestEqual(t, \"Encoding/%d of %q = %q, want %q\", bs, bigtest.decoded, bb.String(), bigtest.encoded)\n\t}\n}\n\nfunc TestDecode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decode(dbuf, []byte(p.encoded))\n\t\ttestEqual(t, \"Decode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"Decode(%q) = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decode(%q) = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\n\t\tdbuf, err = DecodeString(p.encoded)\n\t\ttestEqual(t, \"DecodeString(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"DecodeString(%q) = %q, want %q\", p.encoded, string(dbuf), p.decoded)\n\n\t\t// XXX: https://github.com/gnolang/gno/issues/1570\n\t\tdst, err := AppendDecode(append([]byte(nil), []byte(\"lead\")...), []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"lead\", %q) = %q, want %q`, p.encoded, string(dst), \"lead\"+p.decoded)\n\n\t\tdst2, err := AppendDecode(dst[:0:len(p.decoded)], []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"\", %q) = %q, want %q`, p.encoded, string(dst2), p.decoded)\n\t\t// XXX: https://github.com/gnolang/gno/issues/1569\n\t\t// old used \u0026dst2[0] != \u0026dst[0] as a check.\n\t\tif len(dst) \u003e 0 \u0026\u0026 len(dst2) \u003e 0 \u0026\u0026 cap(dst2) != len(p.decoded) {\n\t\t\tt.Errorf(\"unexpected capacity growth: got %d, want %d\", cap(dst2), len(p.decoded))\n\t\t}\n\t}\n}\n\n// A minimal variation on strings.Reader.\n// Here, we return a io.EOF immediately on Read if the read has reached the end\n// of the reader. It's used to simplify TestDecoder.\ntype stringReader struct {\n\ts string\n\ti int64\n}\n\nfunc (r *stringReader) Read(b []byte) (n int, err error) {\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(b, r.s[r.i:])\n\tr.i += int64(n)\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn n, io.EOF\n\t}\n\treturn\n}\n\nfunc TestDecoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdecoder := NewDecoder(\u0026stringReader{p.encoded, 0})\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decoder.Read(dbuf)\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Fatal(\"Read failed\", err)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\t\tif err != io.EOF {\n\t\t\t_, err = decoder.Read(dbuf)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = %v, want %v\", p.encoded, err, io.EOF)\n\t}\n}\n\ntype badReader struct {\n\tdata []byte\n\terrs []error\n\tcalled int\n\tlimit int\n}\n\n// Populates p with data, returns a count of the bytes written and an\n// error. The error returned is taken from badReader.errs, with each\n// invocation of Read returning the next error in this slice, or io.EOF,\n// if all errors from the slice have already been returned. The\n// number of bytes returned is determined by the size of the input buffer\n// the test passes to decoder.Read and will be a multiple of 8, unless\n// badReader.limit is non zero.\nfunc (b *badReader) Read(p []byte) (int, error) {\n\tlim := len(p)\n\tif b.limit != 0 \u0026\u0026 b.limit \u003c lim {\n\t\tlim = b.limit\n\t}\n\tif len(b.data) \u003c lim {\n\t\tlim = len(b.data)\n\t}\n\tfor i := range p[:lim] {\n\t\tp[i] = b.data[i]\n\t}\n\tb.data = b.data[lim:]\n\terr := io.EOF\n\tif b.called \u003c len(b.errs) {\n\t\terr = b.errs[b.called]\n\t}\n\tb.called++\n\treturn lim, err\n}\n\n// TestIssue20044 tests that decoder.Read behaves correctly when the caller\n// supplied reader returns an error.\nfunc TestIssue20044(t *testing.T) {\n\tbadErr := errors.New(\"bad reader error\")\n\ttestCases := []struct {\n\t\tr badReader\n\t\tres string\n\t\terr error\n\t\tdbuflen int\n\t}{\n\t\t// Check valid input data accompanied by an error is processed and the error is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"d1jprv3fexqq4v34\"), errs: []error{badErr}},\n\t\t\tres: \"helloworld\", err: badErr,\n\t\t},\n\t\t// Check a read error accompanied by input data consisting of newlines only is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\n\"), errs: []error{badErr, nil}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader will be called twice. The first time it will return 8 newline characters. The\n\t\t// second time valid base32 encoded data and an error. The data should be decoded\n\t\t// correctly and the error should be propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\nd1jprv3fexqq4v34\"), errs: []error{nil, badErr}},\n\t\t\tres: \"helloworld\", err: badErr, dbuflen: 8,\n\t\t},\n\t\t// Reader returns invalid input data (too short) and an error. Verify the reader\n\t\t// error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns invalid input data (too short) but no error. Verify io.ErrUnexpectedEOF\n\t\t// is returned.\n\t\t// NOTE(thehowl): I don't think this should applyto us?\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{nil}},\n\t\t\tres: \"\", err: io.ErrUnexpectedEOF,\n\t\t},*/\n\t\t// Reader returns invalid input data and an error. Verify the reader and not the\n\t\t// decoder error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"cu\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns valid data and io.EOF. Check data is decoded and io.EOF is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"csqpyrk1\"), errs: []error{io.EOF}},\n\t\t\tres: \"fooba\", err: io.EOF,\n\t\t},\n\t\t// Check errors are properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but an error on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{nil, badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 1,\n\t\t},\n\t\t// Check io.EOF is properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but io.EOF on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 1,\n\t\t},\n\t\t// The following two test cases check that errors are propagated correctly when more than\n\t\t// 8 bytes are read at a time.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 11,\n\t\t},\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 11,\n\t\t},\n\t\t// Check that errors are correctly propagated when the reader returns valid bytes in\n\t\t// groups that are not divisible by 8. The first read will return 11 bytes and no\n\t\t// error. The second will return 7 and an error. The data should be decoded correctly\n\t\t// and the error should be propagated.\n\t\t// NOTE(thehowl): again, this is on the assumption that this is padded, and it's not.\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, badErr}, limit: 11},\n\t\t\tres: \"leasure.\", err: badErr,\n\t\t}, */\n\t}\n\n\tfor idx, tc := range testCases {\n\t\tt.Run(fmt.Sprintf(\"%d-%s\", idx, string(tc.res)), func(t *testing.T) {\n\t\t\tinput := tc.r.data\n\t\t\tdecoder := NewDecoder(\u0026tc.r)\n\t\t\tvar dbuflen int\n\t\t\tif tc.dbuflen \u003e 0 {\n\t\t\t\tdbuflen = tc.dbuflen\n\t\t\t} else {\n\t\t\t\tdbuflen = DecodedLen(len(input))\n\t\t\t}\n\t\t\tdbuf := make([]byte, dbuflen)\n\t\t\tvar err error\n\t\t\tvar res []byte\n\t\t\tfor err == nil {\n\t\t\t\tvar n int\n\t\t\t\tn, err = decoder.Read(dbuf)\n\t\t\t\tif n \u003e 0 {\n\t\t\t\t\tres = append(res, dbuf[:n]...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", string(input), string(res), tc.res)\n\t\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", string(input), err, tc.err)\n\t\t})\n\t}\n}\n\n// TestDecoderError verifies decode errors are propagated when there are no read\n// errors.\nfunc TestDecoderError(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"ucsqpyrk1u\"\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tbr := badReader{data: []byte(input), errs: []error{readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\tif _, ok := err.(CorruptInputError); !ok {\n\t\t\tt.Errorf(\"Corrupt input error expected. Found %T\", err)\n\t\t}\n\t}\n}\n\n// TestReaderEOF ensures decoder.Read behaves correctly when input data is\n// exhausted.\nfunc TestReaderEOF(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"MZXW6YTB\"\n\t\tbr := badReader{data: []byte(input), errs: []error{nil, readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", input, err, error(nil))\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t}\n}\n\nfunc TestDecoderBuffering(t *testing.T) {\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tdecoder := NewDecoder(strings.NewReader(bigtest.encoded))\n\t\tbuf := make([]byte, len(bigtest.decoded)+12)\n\t\tvar total int\n\t\tvar n int\n\t\tvar err error\n\t\tfor total = 0; total \u003c len(bigtest.decoded) \u0026\u0026 err == nil; {\n\t\t\tn, err = decoder.Read(buf[total : total+bs])\n\t\t\ttotal += n\n\t\t}\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Errorf(\"Read from %q at pos %d = %d, unexpected error %v\", bigtest.encoded, total, n, err)\n\t\t}\n\t\ttestEqual(t, \"Decoding/%d of %q = %q, want %q\", bs, bigtest.encoded, string(buf[0:total]), bigtest.decoded)\n\t}\n}\n\nfunc TestDecodeCorrupt(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput string\n\t\toffset int // -1 means no corruption.\n\t}{\n\t\t{\"\", -1},\n\t\t{\"iIoOlL\", -1},\n\t\t{\"!!!!\", 0},\n\t\t{\"uxp10\", 0},\n\t\t{\"x===\", 1},\n\t\t{\"AA=A====\", 2},\n\t\t{\"AAA=AAAA\", 3},\n\t\t// Much fewer cases compared to Go as there are much fewer cases where input\n\t\t// can be \"corrupted\".\n\t}\n\tfor _, tc := range testCases {\n\t\tdbuf := make([]byte, DecodedLen(len(tc.input)))\n\t\t_, err := Decode(dbuf, []byte(tc.input))\n\t\tif tc.offset == -1 {\n\t\t\tif err != nil {\n\t\t\t\tt.Error(\"Decoder wrongly detected corruption in\", tc.input)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch err := err.(type) {\n\t\tcase CorruptInputError:\n\t\t\ttestEqual(t, \"Corruption in %q at offset %v, want %v\", tc.input, int(err), tc.offset)\n\t\tdefault:\n\t\t\tt.Error(\"Decoder failed to detect corruption in\", tc)\n\t\t}\n\t}\n}\n\nfunc TestBig(t *testing.T) {\n\tn := 3*1000 + 1\n\traw := make([]byte, n)\n\tconst alpha = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\tfor i := 0; i \u003c n; i++ {\n\t\traw[i] = alpha[i%len(alpha)]\n\t}\n\tencoded := new(bytes.Buffer)\n\tw := NewEncoder(encoded)\n\tnn, err := w.Write(raw)\n\tif nn != n || err != nil {\n\t\tt.Fatalf(\"Encoder.Write(raw) = %d, %v want %d, nil\", nn, err, n)\n\t}\n\terr = w.Close()\n\tif err != nil {\n\t\tt.Fatalf(\"Encoder.Close() = %v want nil\", err)\n\t}\n\tdecoded, err := io.ReadAll(NewDecoder(encoded))\n\tif err != nil {\n\t\tt.Fatalf(\"io.ReadAll(NewDecoder(...)): %v\", err)\n\t}\n\n\tif !bytes.Equal(raw, decoded) {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(decoded) \u0026\u0026 i \u003c len(raw); i++ {\n\t\t\tif decoded[i] != raw[i] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"Decode(Encode(%d-byte string)) failed at offset %d\", n, i)\n\t}\n}\n\nfunc testStringEncoding(t *testing.T, expected string, examples []string) {\n\tfor _, e := range examples {\n\t\tbuf, err := DecodeString(e)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Decode(%q) failed: %v\", e, err)\n\t\t\tcontinue\n\t\t}\n\t\tif s := string(buf); s != expected {\n\t\t\tt.Errorf(\"Decode(%q) = %q, want %q\", e, s, expected)\n\t\t}\n\t}\n}\n\nfunc TestNewLineCharacters(t *testing.T) {\n\t// Each of these should decode to the string \"sure\", without errors.\n\texamples := []string{\n\t\t\"EDTQ4S8\",\n\t\t\"EDTQ4S8\\r\",\n\t\t\"EDTQ4S8\\n\",\n\t\t\"EDTQ4S8\\r\\n\",\n\t\t\"EDTQ4S\\r\\n8\",\n\t\t\"EDT\\rQ4S\\n8\",\n\t\t\"edt\\nq4s\\r8\",\n\t\t\"edt\\nq4s8\",\n\t\t\"EDTQ4S\\n8\",\n\t}\n\ttestStringEncoding(t, \"sure\", examples)\n}\n\nfunc BenchmarkEncode(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tbuf := make([]byte, EncodedLen(len(data)))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncode(buf, data)\n\t}\n}\n\nfunc BenchmarkEncodeToString(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncodeToString(data)\n\t}\n}\n\nfunc BenchmarkDecode(b *testing.B) {\n\tdata := make([]byte, EncodedLen(8192))\n\tEncode(data, make([]byte, 8192))\n\tbuf := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecode(buf, data)\n\t}\n}\n\nfunc BenchmarkDecodeString(b *testing.B) {\n\tdata := EncodeToString(make([]byte, 8192))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecodeString(data)\n\t}\n}\n\n/* TODO: rewrite without using goroutines\nfunc TestBufferedDecodingSameError(t *testing.T) {\n\ttestcases := []struct {\n\t\tprefix string\n\t\tchunkCombinations [][]string\n\t\texpected error\n\t}{\n\t\t// Normal case, this is valid input\n\t\t{\"helloworld\", [][]string{\n\t\t\t{\"D1JP\", \"RV3F\", \"EXQQ\", \"4V34\"},\n\t\t\t{\"D1JPRV3FEXQQ4V34\"},\n\t\t\t{\"D1J\", \"PRV\", \"3FE\", \"XQQ\", \"4V3\", \"4\"},\n\t\t\t{\"D1JPRV3FEXQQ4V\", \"34\"},\n\t\t}, nil},\n\n\t\t// Normal case, this is valid input\n\t\t{\"fooba\", [][]string{\n\t\t\t{\"CSQPYRK1\"},\n\t\t\t{\"CSQPYRK\", \"1\"},\n\t\t\t{\"CSQPYR\", \"K1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQPY\", \"RK\", \"1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQP\", \"YR\", \"K1\"},\n\t\t}, nil},\n\n\t\t// NOTE: many test cases have been removed as we don't return ErrUnexpectedEOF.\n\t}\n\n\tfor _, testcase := range testcases {\n\t\tfor _, chunks := range testcase.chunkCombinations {\n\t\t\tpr, pw := io.Pipe()\n\n\t\t\t// Write the encoded chunks into the pipe\n\t\t\tgo func() {\n\t\t\t\tfor _, chunk := range chunks {\n\t\t\t\t\tpw.Write([]byte(chunk))\n\t\t\t\t}\n\t\t\t\tpw.Close()\n\t\t\t}()\n\n\t\t\tdecoder := NewDecoder(pr)\n\t\t\tback, err := io.ReadAll(decoder)\n\n\t\t\tif err != testcase.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v; case %s %+v\", testcase.expected, err, testcase.prefix, chunks)\n\t\t\t}\n\t\t\tif testcase.expected == nil {\n\t\t\t\ttestEqual(t, \"Decode from NewDecoder(chunkReader(%v)) = %q, want %q\", chunks, string(back), testcase.prefix)\n\t\t\t}\n\t\t}\n\t}\n}\n*/\n\nfunc TestEncodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{1, 2},\n\t\t{2, 4},\n\t\t{3, 5},\n\t\t{4, 7},\n\t\t{5, 8},\n\t\t{6, 10},\n\t\t{7, 12},\n\t\t{10, 16},\n\t\t{11, 18},\n\t}\n\t// check overflow\n\ttests = append(tests, test{(math.MaxInt-4)/8 + 1, 1844674407370955162})\n\ttests = append(tests, test{math.MaxInt/8*5 + 4, math.MaxInt})\n\tfor _, tt := range tests {\n\t\tif got := EncodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"EncodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDecodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{2, 1},\n\t\t{4, 2},\n\t\t{5, 3},\n\t\t{7, 4},\n\t\t{8, 5},\n\t\t{10, 6},\n\t\t{12, 7},\n\t\t{16, 10},\n\t\t{18, 11},\n\t}\n\t// check overflow\n\ttests = append(tests, test{math.MaxInt/5 + 1, 1152921504606846976})\n\ttests = append(tests, test{math.MaxInt, 5764607523034234879})\n\tfor _, tt := range tests {\n\t\tif got := DecodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"DecodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lanLg6SuhjIMYDB7nDER/ooL99IUXB29Hn5utv3e0MZNshPl0pNBUZtieyYK5/c/x+tnPgrsAZSkJ6CTkT67Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"cford32","path":"gno.land/p/demo/cford32","files":[{"name":"LICENSE","body":"Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# cford32\n\n```\npackage cford32 // import \"gno.land/p/demo/cford32\"\n\nPackage cford32 implements a base32-like encoding/decoding package, with the\nencoding scheme specified by Douglas Crockford.\n\nFrom the website, the requirements of said encoding scheme are to:\n\n - Be human readable and machine readable.\n - Be compact. Humans have difficulty in manipulating long strings of arbitrary\n symbols.\n - Be error resistant. Entering the symbols must not require keyboarding\n gymnastics.\n - Be pronounceable. Humans should be able to accurately transmit the symbols\n to other humans using a telephone.\n\nThis is slightly different from a simple difference in encoding table from\nthe Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\nparsed as 1, and o O is parsed as 0.\n\nThis package additionally provides ways to encode uint64's efficiently, as well\nas efficient encoding to a lowercase variation of the encoding. The encodings\nnever use paddings.\n\n# Uint64 Encoding\n\nAside from lower/uppercase encoding, there is a compact encoding, allowing to\nencode all values in [0,2^34), and the full encoding, allowing all values in\n[0,2^64). The compact encoding uses 7 characters, and the full encoding uses 13\ncharacters. Both are parsed unambiguously by the Uint64 decoder.\n\nThe compact encodings have the first character between ['0','f'], while the\nfull encoding's first character ranges between ['g','z']. Practically, in your\nusage of the package, you should consider which one to use and stick with it,\nwhile considering that the compact encoding, once it reaches 2^34, automatically\nswitches to the full encoding. The properties of the generated strings are still\nmaintained: for instance, any two encoded uint64s x,y consistently generated\nwith the compact encoding, if the numeric value is x \u003c y, will also be x \u003c y in\nlexical ordering. However, values [0,2^34) have a \"double encoding\", which if\nmixed together lose the lexical ordering property.\n\nThe Uint64 encoding is most useful for generating string versions of Uint64 IDs.\nPractically, it allows you to retain sleek and compact IDs for your application\nfor the first 2^34 (\u003e17 billion) entities, while seamlessly rolling over to the\nfull encoding should you exceed that. You are encouraged to use it unless you\nhave a requirement or preferences for IDs consistently being always the same\nsize.\n\nTo use the cford32 encoding for IDs, you may want to consider using package\ngno.land/p/demo/seqid.\n\n[specified by Douglas Crockford]: https://www.crockford.com/base32.html\n\nfunc AppendCompact(id uint64, b []byte) []byte\nfunc AppendDecode(dst, src []byte) ([]byte, error)\nfunc AppendEncode(dst, src []byte) []byte\nfunc AppendEncodeLower(dst, src []byte) []byte\nfunc Decode(dst, src []byte) (n int, err error)\nfunc DecodeString(s string) ([]byte, error)\nfunc DecodedLen(n int) int\nfunc Encode(dst, src []byte)\nfunc EncodeLower(dst, src []byte)\nfunc EncodeToString(src []byte) string\nfunc EncodeToStringLower(src []byte) string\nfunc EncodedLen(n int) int\nfunc NewDecoder(r io.Reader) io.Reader\nfunc NewEncoder(w io.Writer) io.WriteCloser\nfunc NewEncoderLower(w io.Writer) io.WriteCloser\nfunc PutCompact(id uint64) []byte\nfunc PutUint64(id uint64) [13]byte\nfunc PutUint64Lower(id uint64) [13]byte\nfunc Uint64(b []byte) (uint64, error)\ntype CorruptInputError int64\n```\n"},{"name":"cford32.gno","body":"// Modified from the Go Source code for encoding/base32.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package cford32 implements a base32-like encoding/decoding package, with the\n// encoding scheme [specified by Douglas Crockford].\n//\n// From the website, the requirements of said encoding scheme are to:\n//\n// - Be human readable and machine readable.\n// - Be compact. Humans have difficulty in manipulating long strings of arbitrary symbols.\n// - Be error resistant. Entering the symbols must not require keyboarding gymnastics.\n// - Be pronounceable. Humans should be able to accurately transmit the symbols to other humans using a telephone.\n//\n// This is slightly different from a simple difference in encoding table from\n// the Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\n// parsed as 1, and o O is parsed as 0.\n//\n// This package additionally provides ways to encode uint64's efficiently,\n// as well as efficient encoding to a lowercase variation of the encoding.\n// The encodings never use paddings.\n//\n// # Uint64 Encoding\n//\n// Aside from lower/uppercase encoding, there is a compact encoding, allowing\n// to encode all values in [0,2^34), and the full encoding, allowing all\n// values in [0,2^64). The compact encoding uses 7 characters, and the full\n// encoding uses 13 characters. Both are parsed unambiguously by the Uint64\n// decoder.\n//\n// The compact encodings have the first character between ['0','f'], while the\n// full encoding's first character ranges between ['g','z']. Practically, in\n// your usage of the package, you should consider which one to use and stick\n// with it, while considering that the compact encoding, once it reaches 2^34,\n// automatically switches to the full encoding. The properties of the generated\n// strings are still maintained: for instance, any two encoded uint64s x,y\n// consistently generated with the compact encoding, if the numeric value is\n// x \u003c y, will also be x \u003c y in lexical ordering. However, values [0,2^34) have a\n// \"double encoding\", which if mixed together lose the lexical ordering property.\n//\n// The Uint64 encoding is most useful for generating string versions of Uint64\n// IDs. Practically, it allows you to retain sleek and compact IDs for your\n// application for the first 2^34 (\u003e17 billion) entities, while seamlessly\n// rolling over to the full encoding should you exceed that. You are encouraged\n// to use it unless you have a requirement or preferences for IDs consistently\n// being always the same size.\n//\n// To use the cford32 encoding for IDs, you may want to consider using package\n// [gno.land/p/demo/seqid].\n//\n// [specified by Douglas Crockford]: https://www.crockford.com/base32.html\npackage cford32\n\nimport (\n\t\"io\"\n\t\"strconv\"\n)\n\nconst (\n\tencTable = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"\n\tencTableLower = \"0123456789abcdefghjkmnpqrstvwxyz\"\n\n\t// each line is 16 bytes\n\tdecTable = \"\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 00-0f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 10-1f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 20-2f\n\t\t\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\xff\\xff\\xff\\xff\\xff\\xff\" + // 30-3f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 40-4f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 50-5f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 60-6f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 70-7f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 80-ff (not ASCII)\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n)\n\n// CorruptInputError is returned by parsing functions when an invalid character\n// in the input is found. The integer value represents the byte index where\n// the error occurred.\n//\n// This is typically because the given character does not exist in the encoding.\ntype CorruptInputError int64\n\nfunc (e CorruptInputError) Error() string {\n\treturn \"illegal cford32 data at input byte \" + strconv.FormatInt(int64(e), 10)\n}\n\n// Uint64 parses a cford32-encoded byte slice into a uint64.\n//\n// - The parser requires all provided character to be valid cford32 characters.\n// - The parser disregards case.\n// - If the first character is '0' \u003c= c \u003c= 'f', then the passed value is assumed\n// encoded in the compact encoding, and must be 7 characters long.\n// - If the first character is 'g' \u003c= c \u003c= 'z', then the passed value is\n// assumed encoded in the full encoding, and must be 13 characters long.\n//\n// If any of these requirements fail, a CorruptInputError will be returned.\nfunc Uint64(b []byte) (uint64, error) {\n\tswitch {\n\tdefault:\n\t\treturn 0, CorruptInputError(0)\n\tcase len(b) == 7 \u0026\u0026 b[0] \u003e= '0' \u0026\u0026 b[0] \u003c= 'f':\n\t\tdecVals := [7]byte{\n\t\t\tdecTable[b[0]],\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c30 |\n\t\t\tuint64(decVals[1])\u003c\u003c25 |\n\t\t\tuint64(decVals[2])\u003c\u003c20 |\n\t\t\tuint64(decVals[3])\u003c\u003c15 |\n\t\t\tuint64(decVals[4])\u003c\u003c10 |\n\t\t\tuint64(decVals[5])\u003c\u003c5 |\n\t\t\tuint64(decVals[6]), nil\n\tcase len(b) == 13 \u0026\u0026 b[0] \u003e= 'g' \u0026\u0026 b[0] \u003c= 'z':\n\t\tdecVals := [13]byte{\n\t\t\tdecTable[b[0]] \u0026 0x0F, // disregard high bit\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t\tdecTable[b[7]],\n\t\t\tdecTable[b[8]],\n\t\t\tdecTable[b[9]],\n\t\t\tdecTable[b[10]],\n\t\t\tdecTable[b[11]],\n\t\t\tdecTable[b[12]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c60 |\n\t\t\tuint64(decVals[1])\u003c\u003c55 |\n\t\t\tuint64(decVals[2])\u003c\u003c50 |\n\t\t\tuint64(decVals[3])\u003c\u003c45 |\n\t\t\tuint64(decVals[4])\u003c\u003c40 |\n\t\t\tuint64(decVals[5])\u003c\u003c35 |\n\t\t\tuint64(decVals[6])\u003c\u003c30 |\n\t\t\tuint64(decVals[7])\u003c\u003c25 |\n\t\t\tuint64(decVals[8])\u003c\u003c20 |\n\t\t\tuint64(decVals[9])\u003c\u003c15 |\n\t\t\tuint64(decVals[10])\u003c\u003c10 |\n\t\t\tuint64(decVals[11])\u003c\u003c5 |\n\t\t\tuint64(decVals[12]), nil\n\t}\n}\n\nconst mask = 31\n\n// PutUint64 returns a cford32-encoded byte slice.\nfunc PutUint64(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTable[id\u003e\u003e60\u0026mask|0x10], // specify full encoding\n\t\tencTable[id\u003e\u003e55\u0026mask],\n\t\tencTable[id\u003e\u003e50\u0026mask],\n\t\tencTable[id\u003e\u003e45\u0026mask],\n\t\tencTable[id\u003e\u003e40\u0026mask],\n\t\tencTable[id\u003e\u003e35\u0026mask],\n\t\tencTable[id\u003e\u003e30\u0026mask],\n\t\tencTable[id\u003e\u003e25\u0026mask],\n\t\tencTable[id\u003e\u003e20\u0026mask],\n\t\tencTable[id\u003e\u003e15\u0026mask],\n\t\tencTable[id\u003e\u003e10\u0026mask],\n\t\tencTable[id\u003e\u003e5\u0026mask],\n\t\tencTable[id\u0026mask],\n\t}\n}\n\n// PutUint64Lower returns a cford32-encoded byte array, swapping uppercase\n// letters with lowercase.\n//\n// For more information on how the value is encoded, see [Uint64].\nfunc PutUint64Lower(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t}\n}\n\n// PutCompact returns a cford32-encoded byte slice, using the compact\n// representation of cford32 described in the package documentation where\n// possible (all values of id \u003c 1\u003c\u003c34). The lowercase encoding is used.\n//\n// The resulting byte slice will be 7 bytes long for all compact values,\n// and 13 bytes long for\nfunc PutCompact(id uint64) []byte {\n\treturn AppendCompact(id, nil)\n}\n\n// AppendCompact works like [PutCompact] but appends to the given byte slice\n// instead of allocating one anew.\nfunc AppendCompact(id uint64, b []byte) []byte {\n\tconst maxCompact = 1 \u003c\u003c 34\n\tif id \u003c maxCompact {\n\t\treturn append(b,\n\t\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\t\tencTableLower[id\u0026mask],\n\t\t)\n\t}\n\treturn append(b,\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t)\n}\n\nfunc DecodedLen(n int) int {\n\treturn n/8*5 + n%8*5/8\n}\n\nfunc EncodedLen(n int) int {\n\treturn n/5*8 + (n%5*8+4)/5\n}\n\n// Encode encodes src using the encoding enc,\n// writing [EncodedLen](len(src)) bytes to dst.\n//\n// The encoding does not contain any padding, unlike Go's base32.\nfunc Encode(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTable[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTable[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTable[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTable[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTable[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTable[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTable[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTable[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTable[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTable[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTable[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTable[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTable[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTable[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTable[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// EncodeLower is like [Encode], but uses the lowercase\nfunc EncodeLower(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTableLower[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTableLower[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTableLower[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTableLower[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTableLower[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTableLower[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTableLower[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTableLower[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTableLower[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTableLower[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTableLower[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTableLower[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTableLower[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTableLower[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTableLower[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// AppendEncode appends the cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncode(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncode(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\n// AppendEncodeLower appends the lowercase cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncodeLower(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncodeLower(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\nfunc grow(s []byte, n int) []byte {\n\t// slices.Grow\n\tif n -= cap(s) - len(s); n \u003e 0 {\n\t\tnews := make([]byte, cap(s)+n)\n\t\tcopy(news[:cap(s)], s[:cap(s)])\n\t\treturn news[:len(s)]\n\t}\n\treturn s\n}\n\n// EncodeToString returns the cford32 encoding of src.\nfunc EncodeToString(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncode(buf, src)\n\treturn string(buf)\n}\n\n// EncodeToStringLower returns the cford32 lowercase encoding of src.\nfunc EncodeToStringLower(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncodeLower(buf, src)\n\treturn string(buf)\n}\n\nfunc decode(dst, src []byte) (n int, err error) {\n\tdsti := 0\n\tolen := len(src)\n\n\tfor len(src) \u003e 0 {\n\t\t// Decode quantum using the base32 alphabet\n\t\tvar dbuf [8]byte\n\t\tdlen := 8\n\n\t\tfor j := 0; j \u003c 8; {\n\t\t\tif len(src) == 0 {\n\t\t\t\t// We have reached the end and are not expecting any padding\n\t\t\t\tdlen = j\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tin := src[0]\n\t\t\tsrc = src[1:]\n\t\t\tdbuf[j] = decTable[in]\n\t\t\tif dbuf[j] == 0xFF {\n\t\t\t\treturn n, CorruptInputError(olen - len(src) - 1)\n\t\t\t}\n\t\t\tj++\n\t\t}\n\n\t\t// Pack 8x 5-bit source blocks into 5 byte destination\n\t\t// quantum\n\t\tswitch dlen {\n\t\tcase 8:\n\t\t\tdst[dsti+4] = dbuf[6]\u003c\u003c5 | dbuf[7]\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 7:\n\t\t\tdst[dsti+3] = dbuf[4]\u003c\u003c7 | dbuf[5]\u003c\u003c2 | dbuf[6]\u003e\u003e3\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 5:\n\t\t\tdst[dsti+2] = dbuf[3]\u003c\u003c4 | dbuf[4]\u003e\u003e1\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 4:\n\t\t\tdst[dsti+1] = dbuf[1]\u003c\u003c6 | dbuf[2]\u003c\u003c1 | dbuf[3]\u003e\u003e4\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 2:\n\t\t\tdst[dsti+0] = dbuf[0]\u003c\u003c3 | dbuf[1]\u003e\u003e2\n\t\t\tn++\n\t\t}\n\t\tdsti += 5\n\t}\n\treturn n, nil\n}\n\ntype encoder struct {\n\terr error\n\tw io.Writer\n\tenc func(dst, src []byte)\n\tbuf [5]byte // buffered data waiting to be encoded\n\tnbuf int // number of bytes in buf\n\tout [1024]byte // output buffer\n}\n\nfunc NewEncoder(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: Encode}\n}\n\nfunc NewEncoderLower(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: EncodeLower}\n}\n\nfunc (e *encoder) Write(p []byte) (n int, err error) {\n\tif e.err != nil {\n\t\treturn 0, e.err\n\t}\n\n\t// Leading fringe.\n\tif e.nbuf \u003e 0 {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(p) \u0026\u0026 e.nbuf \u003c 5; i++ {\n\t\t\te.buf[e.nbuf] = p[i]\n\t\t\te.nbuf++\n\t\t}\n\t\tn += i\n\t\tp = p[i:]\n\t\tif e.nbuf \u003c 5 {\n\t\t\treturn\n\t\t}\n\t\te.enc(e.out[0:], e.buf[0:])\n\t\tif _, e.err = e.w.Write(e.out[0:8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\te.nbuf = 0\n\t}\n\n\t// Large interior chunks.\n\tfor len(p) \u003e= 5 {\n\t\tnn := len(e.out) / 8 * 5\n\t\tif nn \u003e len(p) {\n\t\t\tnn = len(p)\n\t\t\tnn -= nn % 5\n\t\t}\n\t\te.enc(e.out[0:], p[0:nn])\n\t\tif _, e.err = e.w.Write(e.out[0 : nn/5*8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\tn += nn\n\t\tp = p[nn:]\n\t}\n\n\t// Trailing fringe.\n\tcopy(e.buf[:], p)\n\te.nbuf = len(p)\n\tn += len(p)\n\treturn\n}\n\n// Close flushes any pending output from the encoder.\n// It is an error to call Write after calling Close.\nfunc (e *encoder) Close() error {\n\t// If there's anything left in the buffer, flush it out\n\tif e.err == nil \u0026\u0026 e.nbuf \u003e 0 {\n\t\te.enc(e.out[0:], e.buf[0:e.nbuf])\n\t\tencodedLen := EncodedLen(e.nbuf)\n\t\te.nbuf = 0\n\t\t_, e.err = e.w.Write(e.out[0:encodedLen])\n\t}\n\treturn e.err\n}\n\n// Decode decodes src using cford32. It writes at most\n// [DecodedLen](len(src)) bytes to dst and returns the number of bytes\n// written. If src contains invalid cford32 data, it will return the\n// number of bytes successfully written and [CorruptInputError].\n// Newline characters (\\r and \\n) are ignored.\nfunc Decode(dst, src []byte) (n int, err error) {\n\tbuf := make([]byte, len(src))\n\tl := stripNewlines(buf, src)\n\treturn decode(dst, buf[:l])\n}\n\n// AppendDecode appends the cford32 decoded src to dst\n// and returns the extended buffer.\n// If the input is malformed, it returns the partially decoded src and an error.\nfunc AppendDecode(dst, src []byte) ([]byte, error) {\n\tn := DecodedLen(len(src))\n\n\tdst = grow(dst, n)\n\tdstsl := dst[len(dst) : len(dst)+n]\n\tn, err := Decode(dstsl, src)\n\treturn dst[:len(dst)+n], err\n}\n\n// DecodeString returns the bytes represented by the cford32 string s.\nfunc DecodeString(s string) ([]byte, error) {\n\tbuf := []byte(s)\n\tl := stripNewlines(buf, buf)\n\tn, err := decode(buf, buf[:l])\n\treturn buf[:n], err\n}\n\n// stripNewlines removes newline characters and returns the number\n// of non-newline characters copied to dst.\nfunc stripNewlines(dst, src []byte) int {\n\toffset := 0\n\tfor _, b := range src {\n\t\tif b == '\\r' || b == '\\n' {\n\t\t\tcontinue\n\t\t}\n\t\tdst[offset] = b\n\t\toffset++\n\t}\n\treturn offset\n}\n\ntype decoder struct {\n\terr error\n\tr io.Reader\n\tbuf [1024]byte // leftover input\n\tnbuf int\n\tout []byte // leftover decoded output\n\toutbuf [1024 / 8 * 5]byte\n}\n\n// NewDecoder constructs a new base32 stream decoder.\nfunc NewDecoder(r io.Reader) io.Reader {\n\treturn \u0026decoder{r: \u0026newlineFilteringReader{r}}\n}\n\nfunc readEncodedData(r io.Reader, buf []byte) (n int, err error) {\n\tfor n \u003c 1 \u0026\u0026 err == nil {\n\t\tvar nn int\n\t\tnn, err = r.Read(buf[n:])\n\t\tn += nn\n\t}\n\treturn\n}\n\nfunc (d *decoder) Read(p []byte) (n int, err error) {\n\t// Use leftover decoded output from last read.\n\tif len(d.out) \u003e 0 {\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t\tif len(d.out) == 0 {\n\t\t\treturn n, d.err\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tif d.err != nil {\n\t\treturn 0, d.err\n\t}\n\n\t// Read nn bytes from input, bounded [8,len(d.buf)]\n\tnn := (len(p)/5 + 1) * 8\n\tif nn \u003e len(d.buf) {\n\t\tnn = len(d.buf)\n\t}\n\n\tnn, d.err = readEncodedData(d.r, d.buf[d.nbuf:nn])\n\td.nbuf += nn\n\tif d.nbuf \u003c 1 {\n\t\treturn 0, d.err\n\t}\n\n\t// Decode chunk into p, or d.out and then p if p is too small.\n\tnr := d.nbuf\n\tif d.err != io.EOF \u0026\u0026 nr%8 != 0 {\n\t\tnr -= nr % 8\n\t}\n\tnw := DecodedLen(d.nbuf)\n\n\tif nw \u003e len(p) {\n\t\tnw, err = decode(d.outbuf[0:], d.buf[0:nr])\n\t\td.out = d.outbuf[0:nw]\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t} else {\n\t\tn, err = decode(p, d.buf[0:nr])\n\t}\n\td.nbuf -= nr\n\tfor i := 0; i \u003c d.nbuf; i++ {\n\t\td.buf[i] = d.buf[i+nr]\n\t}\n\n\tif err != nil \u0026\u0026 (d.err == nil || d.err == io.EOF) {\n\t\td.err = err\n\t}\n\n\tif len(d.out) \u003e 0 {\n\t\t// We cannot return all the decoded bytes to the caller in this\n\t\t// invocation of Read, so we return a nil error to ensure that Read\n\t\t// will be called again. The error stored in d.err, if any, will be\n\t\t// returned with the last set of decoded bytes.\n\t\treturn n, nil\n\t}\n\n\treturn n, d.err\n}\n\ntype newlineFilteringReader struct {\n\twrapped io.Reader\n}\n\nfunc (r *newlineFilteringReader) Read(p []byte) (int, error) {\n\tn, err := r.wrapped.Read(p)\n\tfor n \u003e 0 {\n\t\ts := p[0:n]\n\t\toffset := stripNewlines(s, s)\n\t\tif err != nil || offset \u003e 0 {\n\t\t\treturn offset, err\n\t\t}\n\t\t// Previous buffer entirely whitespace, read again\n\t\tn, err = r.wrapped.Read(p)\n\t}\n\treturn n, err\n}\n"},{"name":"cford32_test.gno","body":"package cford32\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestCompactRoundtrip(t *testing.T) {\n\tbuf := make([]byte, 13)\n\tprev := make([]byte, 13)\n\tfor i := uint64(0); i \u003c (1 \u003c\u003c 12); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c34 - 1024); i \u003c (1\u003c\u003c34 + 1024); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\t// println(string(res))\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c64 - 5000); i != 0; i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n}\n\nfunc BenchmarkCompact(b *testing.B) {\n\tbuf := make([]byte, 13)\n\tfor i := 0; i \u003c b.N; i++ {\n\t\t_ = AppendCompact(uint64(i), buf[:0])\n\t}\n}\n\ntype testpair struct {\n\tdecoded, encoded string\n}\n\nvar pairs = []testpair{\n\t{\"\", \"\"},\n\t{\"f\", \"CR\"},\n\t{\"fo\", \"CSQG\"},\n\t{\"foo\", \"CSQPY\"},\n\t{\"foob\", \"CSQPYRG\"},\n\t{\"fooba\", \"CSQPYRK1\"},\n\t{\"foobar\", \"CSQPYRK1E8\"},\n\n\t{\"sure.\", \"EDTQ4S9E\"},\n\t{\"sure\", \"EDTQ4S8\"},\n\t{\"sur\", \"EDTQ4\"},\n\t{\"su\", \"EDTG\"},\n\t{\"leasure.\", \"DHJP2WVNE9JJW\"},\n\t{\"easure.\", \"CNGQ6XBJCMQ0\"},\n\t{\"asure.\", \"C5SQAWK55R\"},\n}\n\nvar bigtest = testpair{\n\t\"Twas brillig, and the slithy toves\",\n\t\"AHVP2WS0C9S6JV3CD5KJR831DSJ20X38CMG76V39EHM7J83MDXV6AWR\",\n}\n\nfunc testEqual(t *testing.T, msg string, args ...interface{}) bool {\n\tt.Helper()\n\tif args[len(args)-2] != args[len(args)-1] {\n\t\tt.Errorf(msg, args...)\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc TestEncode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tgot := EncodeToString([]byte(p.decoded))\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, got, p.encoded)\n\t\tdst := AppendEncode([]byte(\"lead\"), []byte(p.decoded))\n\t\ttestEqual(t, `AppendEncode(\"lead\", %q) = %q, want %q`, p.decoded, string(dst), \"lead\"+p.encoded)\n\t}\n}\n\nfunc TestEncoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tencoder.Write([]byte(p.decoded))\n\t\tencoder.Close()\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, bb.String(), p.encoded)\n\t}\n}\n\nfunc TestEncoderBuffering(t *testing.T) {\n\tinput := []byte(bigtest.decoded)\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tfor pos := 0; pos \u003c len(input); pos += bs {\n\t\t\tend := pos + bs\n\t\t\tif end \u003e len(input) {\n\t\t\t\tend = len(input)\n\t\t\t}\n\t\t\tn, err := encoder.Write(input[pos:end])\n\t\t\ttestEqual(t, \"Write(%q) gave error %v, want %v\", input[pos:end], err, error(nil))\n\t\t\ttestEqual(t, \"Write(%q) gave length %v, want %v\", input[pos:end], n, end-pos)\n\t\t}\n\t\terr := encoder.Close()\n\t\ttestEqual(t, \"Close gave error %v, want %v\", err, error(nil))\n\t\ttestEqual(t, \"Encoding/%d of %q = %q, want %q\", bs, bigtest.decoded, bb.String(), bigtest.encoded)\n\t}\n}\n\nfunc TestDecode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decode(dbuf, []byte(p.encoded))\n\t\ttestEqual(t, \"Decode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"Decode(%q) = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decode(%q) = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\n\t\tdbuf, err = DecodeString(p.encoded)\n\t\ttestEqual(t, \"DecodeString(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"DecodeString(%q) = %q, want %q\", p.encoded, string(dbuf), p.decoded)\n\n\t\t// XXX: https://github.com/gnolang/gno/issues/1570\n\t\tdst, err := AppendDecode(append([]byte(nil), []byte(\"lead\")...), []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"lead\", %q) = %q, want %q`, p.encoded, string(dst), \"lead\"+p.decoded)\n\n\t\tdst2, err := AppendDecode(dst[:0:len(p.decoded)], []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"\", %q) = %q, want %q`, p.encoded, string(dst2), p.decoded)\n\t\t// XXX: https://github.com/gnolang/gno/issues/1569\n\t\t// old used \u0026dst2[0] != \u0026dst[0] as a check.\n\t\tif len(dst) \u003e 0 \u0026\u0026 len(dst2) \u003e 0 \u0026\u0026 cap(dst2) != len(p.decoded) {\n\t\t\tt.Errorf(\"unexpected capacity growth: got %d, want %d\", cap(dst2), len(p.decoded))\n\t\t}\n\t}\n}\n\n// A minimal variation on strings.Reader.\n// Here, we return a io.EOF immediately on Read if the read has reached the end\n// of the reader. It's used to simplify TestDecoder.\ntype stringReader struct {\n\ts string\n\ti int64\n}\n\nfunc (r *stringReader) Read(b []byte) (n int, err error) {\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(b, r.s[r.i:])\n\tr.i += int64(n)\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn n, io.EOF\n\t}\n\treturn\n}\n\nfunc TestDecoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdecoder := NewDecoder(\u0026stringReader{p.encoded, 0})\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decoder.Read(dbuf)\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Fatal(\"Read failed\", err)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\t\tif err != io.EOF {\n\t\t\t_, err = decoder.Read(dbuf)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = %v, want %v\", p.encoded, err, io.EOF)\n\t}\n}\n\ntype badReader struct {\n\tdata []byte\n\terrs []error\n\tcalled int\n\tlimit int\n}\n\n// Populates p with data, returns a count of the bytes written and an\n// error. The error returned is taken from badReader.errs, with each\n// invocation of Read returning the next error in this slice, or io.EOF,\n// if all errors from the slice have already been returned. The\n// number of bytes returned is determined by the size of the input buffer\n// the test passes to decoder.Read and will be a multiple of 8, unless\n// badReader.limit is non zero.\nfunc (b *badReader) Read(p []byte) (int, error) {\n\tlim := len(p)\n\tif b.limit != 0 \u0026\u0026 b.limit \u003c lim {\n\t\tlim = b.limit\n\t}\n\tif len(b.data) \u003c lim {\n\t\tlim = len(b.data)\n\t}\n\tfor i := range p[:lim] {\n\t\tp[i] = b.data[i]\n\t}\n\tb.data = b.data[lim:]\n\terr := io.EOF\n\tif b.called \u003c len(b.errs) {\n\t\terr = b.errs[b.called]\n\t}\n\tb.called++\n\treturn lim, err\n}\n\n// TestIssue20044 tests that decoder.Read behaves correctly when the caller\n// supplied reader returns an error.\nfunc TestIssue20044(t *testing.T) {\n\tbadErr := errors.New(\"bad reader error\")\n\ttestCases := []struct {\n\t\tr badReader\n\t\tres string\n\t\terr error\n\t\tdbuflen int\n\t}{\n\t\t// Check valid input data accompanied by an error is processed and the error is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"d1jprv3fexqq4v34\"), errs: []error{badErr}},\n\t\t\tres: \"helloworld\", err: badErr,\n\t\t},\n\t\t// Check a read error accompanied by input data consisting of newlines only is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\n\"), errs: []error{badErr, nil}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader will be called twice. The first time it will return 8 newline characters. The\n\t\t// second time valid base32 encoded data and an error. The data should be decoded\n\t\t// correctly and the error should be propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\nd1jprv3fexqq4v34\"), errs: []error{nil, badErr}},\n\t\t\tres: \"helloworld\", err: badErr, dbuflen: 8,\n\t\t},\n\t\t// Reader returns invalid input data (too short) and an error. Verify the reader\n\t\t// error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns invalid input data (too short) but no error. Verify io.ErrUnexpectedEOF\n\t\t// is returned.\n\t\t// NOTE(thehowl): I don't think this should applyto us?\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{nil}},\n\t\t\tres: \"\", err: io.ErrUnexpectedEOF,\n\t\t},*/\n\t\t// Reader returns invalid input data and an error. Verify the reader and not the\n\t\t// decoder error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"cu\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns valid data and io.EOF. Check data is decoded and io.EOF is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"csqpyrk1\"), errs: []error{io.EOF}},\n\t\t\tres: \"fooba\", err: io.EOF,\n\t\t},\n\t\t// Check errors are properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but an error on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{nil, badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 1,\n\t\t},\n\t\t// Check io.EOF is properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but io.EOF on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 1,\n\t\t},\n\t\t// The following two test cases check that errors are propagated correctly when more than\n\t\t// 8 bytes are read at a time.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 11,\n\t\t},\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 11,\n\t\t},\n\t\t// Check that errors are correctly propagated when the reader returns valid bytes in\n\t\t// groups that are not divisible by 8. The first read will return 11 bytes and no\n\t\t// error. The second will return 7 and an error. The data should be decoded correctly\n\t\t// and the error should be propagated.\n\t\t// NOTE(thehowl): again, this is on the assumption that this is padded, and it's not.\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, badErr}, limit: 11},\n\t\t\tres: \"leasure.\", err: badErr,\n\t\t}, */\n\t}\n\n\tfor idx, tc := range testCases {\n\t\tt.Run(fmt.Sprintf(\"%d-%s\", idx, string(tc.res)), func(t *testing.T) {\n\t\t\tinput := tc.r.data\n\t\t\tdecoder := NewDecoder(\u0026tc.r)\n\t\t\tvar dbuflen int\n\t\t\tif tc.dbuflen \u003e 0 {\n\t\t\t\tdbuflen = tc.dbuflen\n\t\t\t} else {\n\t\t\t\tdbuflen = DecodedLen(len(input))\n\t\t\t}\n\t\t\tdbuf := make([]byte, dbuflen)\n\t\t\tvar err error\n\t\t\tvar res []byte\n\t\t\tfor err == nil {\n\t\t\t\tvar n int\n\t\t\t\tn, err = decoder.Read(dbuf)\n\t\t\t\tif n \u003e 0 {\n\t\t\t\t\tres = append(res, dbuf[:n]...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", string(input), string(res), tc.res)\n\t\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", string(input), err, tc.err)\n\t\t})\n\t}\n}\n\n// TestDecoderError verifies decode errors are propagated when there are no read\n// errors.\nfunc TestDecoderError(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"ucsqpyrk1u\"\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tbr := badReader{data: []byte(input), errs: []error{readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\tif _, ok := err.(CorruptInputError); !ok {\n\t\t\tt.Errorf(\"Corrupt input error expected. Found %T\", err)\n\t\t}\n\t}\n}\n\n// TestReaderEOF ensures decoder.Read behaves correctly when input data is\n// exhausted.\nfunc TestReaderEOF(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"MZXW6YTB\"\n\t\tbr := badReader{data: []byte(input), errs: []error{nil, readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", input, err, error(nil))\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t}\n}\n\nfunc TestDecoderBuffering(t *testing.T) {\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tdecoder := NewDecoder(strings.NewReader(bigtest.encoded))\n\t\tbuf := make([]byte, len(bigtest.decoded)+12)\n\t\tvar total int\n\t\tvar n int\n\t\tvar err error\n\t\tfor total = 0; total \u003c len(bigtest.decoded) \u0026\u0026 err == nil; {\n\t\t\tn, err = decoder.Read(buf[total : total+bs])\n\t\t\ttotal += n\n\t\t}\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Errorf(\"Read from %q at pos %d = %d, unexpected error %v\", bigtest.encoded, total, n, err)\n\t\t}\n\t\ttestEqual(t, \"Decoding/%d of %q = %q, want %q\", bs, bigtest.encoded, string(buf[0:total]), bigtest.decoded)\n\t}\n}\n\nfunc TestDecodeCorrupt(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput string\n\t\toffset int // -1 means no corruption.\n\t}{\n\t\t{\"\", -1},\n\t\t{\"iIoOlL\", -1},\n\t\t{\"!!!!\", 0},\n\t\t{\"uxp10\", 0},\n\t\t{\"x===\", 1},\n\t\t{\"AA=A====\", 2},\n\t\t{\"AAA=AAAA\", 3},\n\t\t// Much fewer cases compared to Go as there are much fewer cases where input\n\t\t// can be \"corrupted\".\n\t}\n\tfor _, tc := range testCases {\n\t\tdbuf := make([]byte, DecodedLen(len(tc.input)))\n\t\t_, err := Decode(dbuf, []byte(tc.input))\n\t\tif tc.offset == -1 {\n\t\t\tif err != nil {\n\t\t\t\tt.Error(\"Decoder wrongly detected corruption in\", tc.input)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch err := err.(type) {\n\t\tcase CorruptInputError:\n\t\t\ttestEqual(t, \"Corruption in %q at offset %v, want %v\", tc.input, int(err), tc.offset)\n\t\tdefault:\n\t\t\tt.Error(\"Decoder failed to detect corruption in\", tc)\n\t\t}\n\t}\n}\n\nfunc TestBig(t *testing.T) {\n\tn := 3*1000 + 1\n\traw := make([]byte, n)\n\tconst alpha = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\tfor i := 0; i \u003c n; i++ {\n\t\traw[i] = alpha[i%len(alpha)]\n\t}\n\tencoded := new(bytes.Buffer)\n\tw := NewEncoder(encoded)\n\tnn, err := w.Write(raw)\n\tif nn != n || err != nil {\n\t\tt.Fatalf(\"Encoder.Write(raw) = %d, %v want %d, nil\", nn, err, n)\n\t}\n\terr = w.Close()\n\tif err != nil {\n\t\tt.Fatalf(\"Encoder.Close() = %v want nil\", err)\n\t}\n\tdecoded, err := io.ReadAll(NewDecoder(encoded))\n\tif err != nil {\n\t\tt.Fatalf(\"io.ReadAll(NewDecoder(...)): %v\", err)\n\t}\n\n\tif !bytes.Equal(raw, decoded) {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(decoded) \u0026\u0026 i \u003c len(raw); i++ {\n\t\t\tif decoded[i] != raw[i] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"Decode(Encode(%d-byte string)) failed at offset %d\", n, i)\n\t}\n}\n\nfunc testStringEncoding(t *testing.T, expected string, examples []string) {\n\tfor _, e := range examples {\n\t\tbuf, err := DecodeString(e)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Decode(%q) failed: %v\", e, err)\n\t\t\tcontinue\n\t\t}\n\t\tif s := string(buf); s != expected {\n\t\t\tt.Errorf(\"Decode(%q) = %q, want %q\", e, s, expected)\n\t\t}\n\t}\n}\n\nfunc TestNewLineCharacters(t *testing.T) {\n\t// Each of these should decode to the string \"sure\", without errors.\n\texamples := []string{\n\t\t\"EDTQ4S8\",\n\t\t\"EDTQ4S8\\r\",\n\t\t\"EDTQ4S8\\n\",\n\t\t\"EDTQ4S8\\r\\n\",\n\t\t\"EDTQ4S\\r\\n8\",\n\t\t\"EDT\\rQ4S\\n8\",\n\t\t\"edt\\nq4s\\r8\",\n\t\t\"edt\\nq4s8\",\n\t\t\"EDTQ4S\\n8\",\n\t}\n\ttestStringEncoding(t, \"sure\", examples)\n}\n\nfunc BenchmarkEncode(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tbuf := make([]byte, EncodedLen(len(data)))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncode(buf, data)\n\t}\n}\n\nfunc BenchmarkEncodeToString(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncodeToString(data)\n\t}\n}\n\nfunc BenchmarkDecode(b *testing.B) {\n\tdata := make([]byte, EncodedLen(8192))\n\tEncode(data, make([]byte, 8192))\n\tbuf := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecode(buf, data)\n\t}\n}\n\nfunc BenchmarkDecodeString(b *testing.B) {\n\tdata := EncodeToString(make([]byte, 8192))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecodeString(data)\n\t}\n}\n\n/* TODO: rewrite without using goroutines\nfunc TestBufferedDecodingSameError(t *testing.T) {\n\ttestcases := []struct {\n\t\tprefix string\n\t\tchunkCombinations [][]string\n\t\texpected error\n\t}{\n\t\t// Normal case, this is valid input\n\t\t{\"helloworld\", [][]string{\n\t\t\t{\"D1JP\", \"RV3F\", \"EXQQ\", \"4V34\"},\n\t\t\t{\"D1JPRV3FEXQQ4V34\"},\n\t\t\t{\"D1J\", \"PRV\", \"3FE\", \"XQQ\", \"4V3\", \"4\"},\n\t\t\t{\"D1JPRV3FEXQQ4V\", \"34\"},\n\t\t}, nil},\n\n\t\t// Normal case, this is valid input\n\t\t{\"fooba\", [][]string{\n\t\t\t{\"CSQPYRK1\"},\n\t\t\t{\"CSQPYRK\", \"1\"},\n\t\t\t{\"CSQPYR\", \"K1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQPY\", \"RK\", \"1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQP\", \"YR\", \"K1\"},\n\t\t}, nil},\n\n\t\t// NOTE: many test cases have been removed as we don't return ErrUnexpectedEOF.\n\t}\n\n\tfor _, testcase := range testcases {\n\t\tfor _, chunks := range testcase.chunkCombinations {\n\t\t\tpr, pw := io.Pipe()\n\n\t\t\t// Write the encoded chunks into the pipe\n\t\t\tgo func() {\n\t\t\t\tfor _, chunk := range chunks {\n\t\t\t\t\tpw.Write([]byte(chunk))\n\t\t\t\t}\n\t\t\t\tpw.Close()\n\t\t\t}()\n\n\t\t\tdecoder := NewDecoder(pr)\n\t\t\tback, err := io.ReadAll(decoder)\n\n\t\t\tif err != testcase.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v; case %s %+v\", testcase.expected, err, testcase.prefix, chunks)\n\t\t\t}\n\t\t\tif testcase.expected == nil {\n\t\t\t\ttestEqual(t, \"Decode from NewDecoder(chunkReader(%v)) = %q, want %q\", chunks, string(back), testcase.prefix)\n\t\t\t}\n\t\t}\n\t}\n}\n*/\n\nfunc TestEncodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{1, 2},\n\t\t{2, 4},\n\t\t{3, 5},\n\t\t{4, 7},\n\t\t{5, 8},\n\t\t{6, 10},\n\t\t{7, 12},\n\t\t{10, 16},\n\t\t{11, 18},\n\t}\n\t// check overflow\n\ttests = append(tests, test{(math.MaxInt-4)/8 + 1, 1844674407370955162})\n\ttests = append(tests, test{math.MaxInt/8*5 + 4, math.MaxInt})\n\tfor _, tt := range tests {\n\t\tif got := EncodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"EncodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDecodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{2, 1},\n\t\t{4, 2},\n\t\t{5, 3},\n\t\t{7, 4},\n\t\t{8, 5},\n\t\t{10, 6},\n\t\t{12, 7},\n\t\t{16, 10},\n\t\t{18, 11},\n\t}\n\t// check overflow\n\ttests = append(tests, test{math.MaxInt/5 + 1, 1152921504606846976})\n\ttests = append(tests, test{math.MaxInt, 5764607523034234879})\n\tfor _, tt := range tests {\n\t\tif got := DecodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"DecodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lanLg6SuhjIMYDB7nDER/ooL99IUXB29Hn5utv3e0MZNshPl0pNBUZtieyYK5/c/x+tnPgrsAZSkJ6CTkT67Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"cford32","path":"gno.land/p/demo/cford32","files":[{"name":"LICENSE","body":"Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# cford32\n\n```\npackage cford32 // import \"gno.land/p/demo/cford32\"\n\nPackage cford32 implements a base32-like encoding/decoding package, with the\nencoding scheme specified by Douglas Crockford.\n\nFrom the website, the requirements of said encoding scheme are to:\n\n - Be human readable and machine readable.\n - Be compact. Humans have difficulty in manipulating long strings of arbitrary\n symbols.\n - Be error resistant. Entering the symbols must not require keyboarding\n gymnastics.\n - Be pronounceable. Humans should be able to accurately transmit the symbols\n to other humans using a telephone.\n\nThis is slightly different from a simple difference in encoding table from\nthe Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\nparsed as 1, and o O is parsed as 0.\n\nThis package additionally provides ways to encode uint64's efficiently, as well\nas efficient encoding to a lowercase variation of the encoding. The encodings\nnever use paddings.\n\n# Uint64 Encoding\n\nAside from lower/uppercase encoding, there is a compact encoding, allowing to\nencode all values in [0,2^34), and the full encoding, allowing all values in\n[0,2^64). The compact encoding uses 7 characters, and the full encoding uses 13\ncharacters. Both are parsed unambiguously by the Uint64 decoder.\n\nThe compact encodings have the first character between ['0','f'], while the\nfull encoding's first character ranges between ['g','z']. Practically, in your\nusage of the package, you should consider which one to use and stick with it,\nwhile considering that the compact encoding, once it reaches 2^34, automatically\nswitches to the full encoding. The properties of the generated strings are still\nmaintained: for instance, any two encoded uint64s x,y consistently generated\nwith the compact encoding, if the numeric value is x \u003c y, will also be x \u003c y in\nlexical ordering. However, values [0,2^34) have a \"double encoding\", which if\nmixed together lose the lexical ordering property.\n\nThe Uint64 encoding is most useful for generating string versions of Uint64 IDs.\nPractically, it allows you to retain sleek and compact IDs for your application\nfor the first 2^34 (\u003e17 billion) entities, while seamlessly rolling over to the\nfull encoding should you exceed that. You are encouraged to use it unless you\nhave a requirement or preferences for IDs consistently being always the same\nsize.\n\nTo use the cford32 encoding for IDs, you may want to consider using package\ngno.land/p/demo/seqid.\n\n[specified by Douglas Crockford]: https://www.crockford.com/base32.html\n\nfunc AppendCompact(id uint64, b []byte) []byte\nfunc AppendDecode(dst, src []byte) ([]byte, error)\nfunc AppendEncode(dst, src []byte) []byte\nfunc AppendEncodeLower(dst, src []byte) []byte\nfunc Decode(dst, src []byte) (n int, err error)\nfunc DecodeString(s string) ([]byte, error)\nfunc DecodedLen(n int) int\nfunc Encode(dst, src []byte)\nfunc EncodeLower(dst, src []byte)\nfunc EncodeToString(src []byte) string\nfunc EncodeToStringLower(src []byte) string\nfunc EncodedLen(n int) int\nfunc NewDecoder(r io.Reader) io.Reader\nfunc NewEncoder(w io.Writer) io.WriteCloser\nfunc NewEncoderLower(w io.Writer) io.WriteCloser\nfunc PutCompact(id uint64) []byte\nfunc PutUint64(id uint64) [13]byte\nfunc PutUint64Lower(id uint64) [13]byte\nfunc Uint64(b []byte) (uint64, error)\ntype CorruptInputError int64\n```\n"},{"name":"cford32.gno","body":"// Modified from the Go Source code for encoding/base32.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package cford32 implements a base32-like encoding/decoding package, with the\n// encoding scheme [specified by Douglas Crockford].\n//\n// From the website, the requirements of said encoding scheme are to:\n//\n// - Be human readable and machine readable.\n// - Be compact. Humans have difficulty in manipulating long strings of arbitrary symbols.\n// - Be error resistant. Entering the symbols must not require keyboarding gymnastics.\n// - Be pronounceable. Humans should be able to accurately transmit the symbols to other humans using a telephone.\n//\n// This is slightly different from a simple difference in encoding table from\n// the Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\n// parsed as 1, and o O is parsed as 0.\n//\n// This package additionally provides ways to encode uint64's efficiently,\n// as well as efficient encoding to a lowercase variation of the encoding.\n// The encodings never use paddings.\n//\n// # Uint64 Encoding\n//\n// Aside from lower/uppercase encoding, there is a compact encoding, allowing\n// to encode all values in [0,2^34), and the full encoding, allowing all\n// values in [0,2^64). The compact encoding uses 7 characters, and the full\n// encoding uses 13 characters. Both are parsed unambiguously by the Uint64\n// decoder.\n//\n// The compact encodings have the first character between ['0','f'], while the\n// full encoding's first character ranges between ['g','z']. Practically, in\n// your usage of the package, you should consider which one to use and stick\n// with it, while considering that the compact encoding, once it reaches 2^34,\n// automatically switches to the full encoding. The properties of the generated\n// strings are still maintained: for instance, any two encoded uint64s x,y\n// consistently generated with the compact encoding, if the numeric value is\n// x \u003c y, will also be x \u003c y in lexical ordering. However, values [0,2^34) have a\n// \"double encoding\", which if mixed together lose the lexical ordering property.\n//\n// The Uint64 encoding is most useful for generating string versions of Uint64\n// IDs. Practically, it allows you to retain sleek and compact IDs for your\n// application for the first 2^34 (\u003e17 billion) entities, while seamlessly\n// rolling over to the full encoding should you exceed that. You are encouraged\n// to use it unless you have a requirement or preferences for IDs consistently\n// being always the same size.\n//\n// To use the cford32 encoding for IDs, you may want to consider using package\n// [gno.land/p/demo/seqid].\n//\n// [specified by Douglas Crockford]: https://www.crockford.com/base32.html\npackage cford32\n\nimport (\n\t\"io\"\n\t\"strconv\"\n)\n\nconst (\n\tencTable = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"\n\tencTableLower = \"0123456789abcdefghjkmnpqrstvwxyz\"\n\n\t// each line is 16 bytes\n\tdecTable = \"\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 00-0f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 10-1f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 20-2f\n\t\t\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\xff\\xff\\xff\\xff\\xff\\xff\" + // 30-3f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 40-4f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 50-5f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 60-6f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 70-7f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 80-ff (not ASCII)\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n)\n\n// CorruptInputError is returned by parsing functions when an invalid character\n// in the input is found. The integer value represents the byte index where\n// the error occurred.\n//\n// This is typically because the given character does not exist in the encoding.\ntype CorruptInputError int64\n\nfunc (e CorruptInputError) Error() string {\n\treturn \"illegal cford32 data at input byte \" + strconv.FormatInt(int64(e), 10)\n}\n\n// Uint64 parses a cford32-encoded byte slice into a uint64.\n//\n// - The parser requires all provided character to be valid cford32 characters.\n// - The parser disregards case.\n// - If the first character is '0' \u003c= c \u003c= 'f', then the passed value is assumed\n// encoded in the compact encoding, and must be 7 characters long.\n// - If the first character is 'g' \u003c= c \u003c= 'z', then the passed value is\n// assumed encoded in the full encoding, and must be 13 characters long.\n//\n// If any of these requirements fail, a CorruptInputError will be returned.\nfunc Uint64(b []byte) (uint64, error) {\n\tswitch {\n\tdefault:\n\t\treturn 0, CorruptInputError(0)\n\tcase len(b) == 7 \u0026\u0026 b[0] \u003e= '0' \u0026\u0026 b[0] \u003c= 'f':\n\t\tdecVals := [7]byte{\n\t\t\tdecTable[b[0]],\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c30 |\n\t\t\tuint64(decVals[1])\u003c\u003c25 |\n\t\t\tuint64(decVals[2])\u003c\u003c20 |\n\t\t\tuint64(decVals[3])\u003c\u003c15 |\n\t\t\tuint64(decVals[4])\u003c\u003c10 |\n\t\t\tuint64(decVals[5])\u003c\u003c5 |\n\t\t\tuint64(decVals[6]), nil\n\tcase len(b) == 13 \u0026\u0026 b[0] \u003e= 'g' \u0026\u0026 b[0] \u003c= 'z':\n\t\tdecVals := [13]byte{\n\t\t\tdecTable[b[0]] \u0026 0x0F, // disregard high bit\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t\tdecTable[b[7]],\n\t\t\tdecTable[b[8]],\n\t\t\tdecTable[b[9]],\n\t\t\tdecTable[b[10]],\n\t\t\tdecTable[b[11]],\n\t\t\tdecTable[b[12]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c60 |\n\t\t\tuint64(decVals[1])\u003c\u003c55 |\n\t\t\tuint64(decVals[2])\u003c\u003c50 |\n\t\t\tuint64(decVals[3])\u003c\u003c45 |\n\t\t\tuint64(decVals[4])\u003c\u003c40 |\n\t\t\tuint64(decVals[5])\u003c\u003c35 |\n\t\t\tuint64(decVals[6])\u003c\u003c30 |\n\t\t\tuint64(decVals[7])\u003c\u003c25 |\n\t\t\tuint64(decVals[8])\u003c\u003c20 |\n\t\t\tuint64(decVals[9])\u003c\u003c15 |\n\t\t\tuint64(decVals[10])\u003c\u003c10 |\n\t\t\tuint64(decVals[11])\u003c\u003c5 |\n\t\t\tuint64(decVals[12]), nil\n\t}\n}\n\nconst mask = 31\n\n// PutUint64 returns a cford32-encoded byte slice.\nfunc PutUint64(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTable[id\u003e\u003e60\u0026mask|0x10], // specify full encoding\n\t\tencTable[id\u003e\u003e55\u0026mask],\n\t\tencTable[id\u003e\u003e50\u0026mask],\n\t\tencTable[id\u003e\u003e45\u0026mask],\n\t\tencTable[id\u003e\u003e40\u0026mask],\n\t\tencTable[id\u003e\u003e35\u0026mask],\n\t\tencTable[id\u003e\u003e30\u0026mask],\n\t\tencTable[id\u003e\u003e25\u0026mask],\n\t\tencTable[id\u003e\u003e20\u0026mask],\n\t\tencTable[id\u003e\u003e15\u0026mask],\n\t\tencTable[id\u003e\u003e10\u0026mask],\n\t\tencTable[id\u003e\u003e5\u0026mask],\n\t\tencTable[id\u0026mask],\n\t}\n}\n\n// PutUint64Lower returns a cford32-encoded byte array, swapping uppercase\n// letters with lowercase.\n//\n// For more information on how the value is encoded, see [Uint64].\nfunc PutUint64Lower(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t}\n}\n\n// PutCompact returns a cford32-encoded byte slice, using the compact\n// representation of cford32 described in the package documentation where\n// possible (all values of id \u003c 1\u003c\u003c34). The lowercase encoding is used.\n//\n// The resulting byte slice will be 7 bytes long for all compact values,\n// and 13 bytes long for\nfunc PutCompact(id uint64) []byte {\n\treturn AppendCompact(id, nil)\n}\n\n// AppendCompact works like [PutCompact] but appends to the given byte slice\n// instead of allocating one anew.\nfunc AppendCompact(id uint64, b []byte) []byte {\n\tconst maxCompact = 1 \u003c\u003c 34\n\tif id \u003c maxCompact {\n\t\treturn append(b,\n\t\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\t\tencTableLower[id\u0026mask],\n\t\t)\n\t}\n\treturn append(b,\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t)\n}\n\nfunc DecodedLen(n int) int {\n\treturn n/8*5 + n%8*5/8\n}\n\nfunc EncodedLen(n int) int {\n\treturn n/5*8 + (n%5*8+4)/5\n}\n\n// Encode encodes src using the encoding enc,\n// writing [EncodedLen](len(src)) bytes to dst.\n//\n// The encoding does not contain any padding, unlike Go's base32.\nfunc Encode(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTable[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTable[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTable[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTable[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTable[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTable[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTable[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTable[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTable[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTable[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTable[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTable[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTable[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTable[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTable[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// EncodeLower is like [Encode], but uses the lowercase\nfunc EncodeLower(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTableLower[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTableLower[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTableLower[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTableLower[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTableLower[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTableLower[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTableLower[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTableLower[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTableLower[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTableLower[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTableLower[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTableLower[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTableLower[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTableLower[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTableLower[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// AppendEncode appends the cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncode(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncode(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\n// AppendEncodeLower appends the lowercase cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncodeLower(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncodeLower(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\nfunc grow(s []byte, n int) []byte {\n\t// slices.Grow\n\tif n -= cap(s) - len(s); n \u003e 0 {\n\t\tnews := make([]byte, cap(s)+n)\n\t\tcopy(news[:cap(s)], s[:cap(s)])\n\t\treturn news[:len(s)]\n\t}\n\treturn s\n}\n\n// EncodeToString returns the cford32 encoding of src.\nfunc EncodeToString(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncode(buf, src)\n\treturn string(buf)\n}\n\n// EncodeToStringLower returns the cford32 lowercase encoding of src.\nfunc EncodeToStringLower(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncodeLower(buf, src)\n\treturn string(buf)\n}\n\nfunc decode(dst, src []byte) (n int, err error) {\n\tdsti := 0\n\tolen := len(src)\n\n\tfor len(src) \u003e 0 {\n\t\t// Decode quantum using the base32 alphabet\n\t\tvar dbuf [8]byte\n\t\tdlen := 8\n\n\t\tfor j := 0; j \u003c 8; {\n\t\t\tif len(src) == 0 {\n\t\t\t\t// We have reached the end and are not expecting any padding\n\t\t\t\tdlen = j\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tin := src[0]\n\t\t\tsrc = src[1:]\n\t\t\tdbuf[j] = decTable[in]\n\t\t\tif dbuf[j] == 0xFF {\n\t\t\t\treturn n, CorruptInputError(olen - len(src) - 1)\n\t\t\t}\n\t\t\tj++\n\t\t}\n\n\t\t// Pack 8x 5-bit source blocks into 5 byte destination\n\t\t// quantum\n\t\tswitch dlen {\n\t\tcase 8:\n\t\t\tdst[dsti+4] = dbuf[6]\u003c\u003c5 | dbuf[7]\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 7:\n\t\t\tdst[dsti+3] = dbuf[4]\u003c\u003c7 | dbuf[5]\u003c\u003c2 | dbuf[6]\u003e\u003e3\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 5:\n\t\t\tdst[dsti+2] = dbuf[3]\u003c\u003c4 | dbuf[4]\u003e\u003e1\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 4:\n\t\t\tdst[dsti+1] = dbuf[1]\u003c\u003c6 | dbuf[2]\u003c\u003c1 | dbuf[3]\u003e\u003e4\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 2:\n\t\t\tdst[dsti+0] = dbuf[0]\u003c\u003c3 | dbuf[1]\u003e\u003e2\n\t\t\tn++\n\t\t}\n\t\tdsti += 5\n\t}\n\treturn n, nil\n}\n\ntype encoder struct {\n\terr error\n\tw io.Writer\n\tenc func(dst, src []byte)\n\tbuf [5]byte // buffered data waiting to be encoded\n\tnbuf int // number of bytes in buf\n\tout [1024]byte // output buffer\n}\n\nfunc NewEncoder(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: Encode}\n}\n\nfunc NewEncoderLower(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: EncodeLower}\n}\n\nfunc (e *encoder) Write(p []byte) (n int, err error) {\n\tif e.err != nil {\n\t\treturn 0, e.err\n\t}\n\n\t// Leading fringe.\n\tif e.nbuf \u003e 0 {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(p) \u0026\u0026 e.nbuf \u003c 5; i++ {\n\t\t\te.buf[e.nbuf] = p[i]\n\t\t\te.nbuf++\n\t\t}\n\t\tn += i\n\t\tp = p[i:]\n\t\tif e.nbuf \u003c 5 {\n\t\t\treturn\n\t\t}\n\t\te.enc(e.out[0:], e.buf[0:])\n\t\tif _, e.err = e.w.Write(e.out[0:8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\te.nbuf = 0\n\t}\n\n\t// Large interior chunks.\n\tfor len(p) \u003e= 5 {\n\t\tnn := len(e.out) / 8 * 5\n\t\tif nn \u003e len(p) {\n\t\t\tnn = len(p)\n\t\t\tnn -= nn % 5\n\t\t}\n\t\te.enc(e.out[0:], p[0:nn])\n\t\tif _, e.err = e.w.Write(e.out[0 : nn/5*8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\tn += nn\n\t\tp = p[nn:]\n\t}\n\n\t// Trailing fringe.\n\tcopy(e.buf[:], p)\n\te.nbuf = len(p)\n\tn += len(p)\n\treturn\n}\n\n// Close flushes any pending output from the encoder.\n// It is an error to call Write after calling Close.\nfunc (e *encoder) Close() error {\n\t// If there's anything left in the buffer, flush it out\n\tif e.err == nil \u0026\u0026 e.nbuf \u003e 0 {\n\t\te.enc(e.out[0:], e.buf[0:e.nbuf])\n\t\tencodedLen := EncodedLen(e.nbuf)\n\t\te.nbuf = 0\n\t\t_, e.err = e.w.Write(e.out[0:encodedLen])\n\t}\n\treturn e.err\n}\n\n// Decode decodes src using cford32. It writes at most\n// [DecodedLen](len(src)) bytes to dst and returns the number of bytes\n// written. If src contains invalid cford32 data, it will return the\n// number of bytes successfully written and [CorruptInputError].\n// Newline characters (\\r and \\n) are ignored.\nfunc Decode(dst, src []byte) (n int, err error) {\n\tbuf := make([]byte, len(src))\n\tl := stripNewlines(buf, src)\n\treturn decode(dst, buf[:l])\n}\n\n// AppendDecode appends the cford32 decoded src to dst\n// and returns the extended buffer.\n// If the input is malformed, it returns the partially decoded src and an error.\nfunc AppendDecode(dst, src []byte) ([]byte, error) {\n\tn := DecodedLen(len(src))\n\n\tdst = grow(dst, n)\n\tdstsl := dst[len(dst) : len(dst)+n]\n\tn, err := Decode(dstsl, src)\n\treturn dst[:len(dst)+n], err\n}\n\n// DecodeString returns the bytes represented by the cford32 string s.\nfunc DecodeString(s string) ([]byte, error) {\n\tbuf := []byte(s)\n\tl := stripNewlines(buf, buf)\n\tn, err := decode(buf, buf[:l])\n\treturn buf[:n], err\n}\n\n// stripNewlines removes newline characters and returns the number\n// of non-newline characters copied to dst.\nfunc stripNewlines(dst, src []byte) int {\n\toffset := 0\n\tfor _, b := range src {\n\t\tif b == '\\r' || b == '\\n' {\n\t\t\tcontinue\n\t\t}\n\t\tdst[offset] = b\n\t\toffset++\n\t}\n\treturn offset\n}\n\ntype decoder struct {\n\terr error\n\tr io.Reader\n\tbuf [1024]byte // leftover input\n\tnbuf int\n\tout []byte // leftover decoded output\n\toutbuf [1024 / 8 * 5]byte\n}\n\n// NewDecoder constructs a new base32 stream decoder.\nfunc NewDecoder(r io.Reader) io.Reader {\n\treturn \u0026decoder{r: \u0026newlineFilteringReader{r}}\n}\n\nfunc readEncodedData(r io.Reader, buf []byte) (n int, err error) {\n\tfor n \u003c 1 \u0026\u0026 err == nil {\n\t\tvar nn int\n\t\tnn, err = r.Read(buf[n:])\n\t\tn += nn\n\t}\n\treturn\n}\n\nfunc (d *decoder) Read(p []byte) (n int, err error) {\n\t// Use leftover decoded output from last read.\n\tif len(d.out) \u003e 0 {\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t\tif len(d.out) == 0 {\n\t\t\treturn n, d.err\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tif d.err != nil {\n\t\treturn 0, d.err\n\t}\n\n\t// Read nn bytes from input, bounded [8,len(d.buf)]\n\tnn := (len(p)/5 + 1) * 8\n\tif nn \u003e len(d.buf) {\n\t\tnn = len(d.buf)\n\t}\n\n\tnn, d.err = readEncodedData(d.r, d.buf[d.nbuf:nn])\n\td.nbuf += nn\n\tif d.nbuf \u003c 1 {\n\t\treturn 0, d.err\n\t}\n\n\t// Decode chunk into p, or d.out and then p if p is too small.\n\tnr := d.nbuf\n\tif d.err != io.EOF \u0026\u0026 nr%8 != 0 {\n\t\tnr -= nr % 8\n\t}\n\tnw := DecodedLen(d.nbuf)\n\n\tif nw \u003e len(p) {\n\t\tnw, err = decode(d.outbuf[0:], d.buf[0:nr])\n\t\td.out = d.outbuf[0:nw]\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t} else {\n\t\tn, err = decode(p, d.buf[0:nr])\n\t}\n\td.nbuf -= nr\n\tfor i := 0; i \u003c d.nbuf; i++ {\n\t\td.buf[i] = d.buf[i+nr]\n\t}\n\n\tif err != nil \u0026\u0026 (d.err == nil || d.err == io.EOF) {\n\t\td.err = err\n\t}\n\n\tif len(d.out) \u003e 0 {\n\t\t// We cannot return all the decoded bytes to the caller in this\n\t\t// invocation of Read, so we return a nil error to ensure that Read\n\t\t// will be called again. The error stored in d.err, if any, will be\n\t\t// returned with the last set of decoded bytes.\n\t\treturn n, nil\n\t}\n\n\treturn n, d.err\n}\n\ntype newlineFilteringReader struct {\n\twrapped io.Reader\n}\n\nfunc (r *newlineFilteringReader) Read(p []byte) (int, error) {\n\tn, err := r.wrapped.Read(p)\n\tfor n \u003e 0 {\n\t\ts := p[0:n]\n\t\toffset := stripNewlines(s, s)\n\t\tif err != nil || offset \u003e 0 {\n\t\t\treturn offset, err\n\t\t}\n\t\t// Previous buffer entirely whitespace, read again\n\t\tn, err = r.wrapped.Read(p)\n\t}\n\treturn n, err\n}\n"},{"name":"cford32_test.gno","body":"package cford32\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestCompactRoundtrip(t *testing.T) {\n\tbuf := make([]byte, 13)\n\tprev := make([]byte, 13)\n\tfor i := uint64(0); i \u003c (1 \u003c\u003c 12); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c34 - 1024); i \u003c (1\u003c\u003c34 + 1024); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\t// println(string(res))\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c64 - 5000); i != 0; i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n}\n\nfunc BenchmarkCompact(b *testing.B) {\n\tbuf := make([]byte, 13)\n\tfor i := 0; i \u003c b.N; i++ {\n\t\t_ = AppendCompact(uint64(i), buf[:0])\n\t}\n}\n\ntype testpair struct {\n\tdecoded, encoded string\n}\n\nvar pairs = []testpair{\n\t{\"\", \"\"},\n\t{\"f\", \"CR\"},\n\t{\"fo\", \"CSQG\"},\n\t{\"foo\", \"CSQPY\"},\n\t{\"foob\", \"CSQPYRG\"},\n\t{\"fooba\", \"CSQPYRK1\"},\n\t{\"foobar\", \"CSQPYRK1E8\"},\n\n\t{\"sure.\", \"EDTQ4S9E\"},\n\t{\"sure\", \"EDTQ4S8\"},\n\t{\"sur\", \"EDTQ4\"},\n\t{\"su\", \"EDTG\"},\n\t{\"leasure.\", \"DHJP2WVNE9JJW\"},\n\t{\"easure.\", \"CNGQ6XBJCMQ0\"},\n\t{\"asure.\", \"C5SQAWK55R\"},\n}\n\nvar bigtest = testpair{\n\t\"Twas brillig, and the slithy toves\",\n\t\"AHVP2WS0C9S6JV3CD5KJR831DSJ20X38CMG76V39EHM7J83MDXV6AWR\",\n}\n\nfunc testEqual(t *testing.T, msg string, args ...interface{}) bool {\n\tt.Helper()\n\tif args[len(args)-2] != args[len(args)-1] {\n\t\tt.Errorf(msg, args...)\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc TestEncode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tgot := EncodeToString([]byte(p.decoded))\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, got, p.encoded)\n\t\tdst := AppendEncode([]byte(\"lead\"), []byte(p.decoded))\n\t\ttestEqual(t, `AppendEncode(\"lead\", %q) = %q, want %q`, p.decoded, string(dst), \"lead\"+p.encoded)\n\t}\n}\n\nfunc TestEncoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tencoder.Write([]byte(p.decoded))\n\t\tencoder.Close()\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, bb.String(), p.encoded)\n\t}\n}\n\nfunc TestEncoderBuffering(t *testing.T) {\n\tinput := []byte(bigtest.decoded)\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tfor pos := 0; pos \u003c len(input); pos += bs {\n\t\t\tend := pos + bs\n\t\t\tif end \u003e len(input) {\n\t\t\t\tend = len(input)\n\t\t\t}\n\t\t\tn, err := encoder.Write(input[pos:end])\n\t\t\ttestEqual(t, \"Write(%q) gave error %v, want %v\", input[pos:end], err, error(nil))\n\t\t\ttestEqual(t, \"Write(%q) gave length %v, want %v\", input[pos:end], n, end-pos)\n\t\t}\n\t\terr := encoder.Close()\n\t\ttestEqual(t, \"Close gave error %v, want %v\", err, error(nil))\n\t\ttestEqual(t, \"Encoding/%d of %q = %q, want %q\", bs, bigtest.decoded, bb.String(), bigtest.encoded)\n\t}\n}\n\nfunc TestDecode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decode(dbuf, []byte(p.encoded))\n\t\ttestEqual(t, \"Decode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"Decode(%q) = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decode(%q) = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\n\t\tdbuf, err = DecodeString(p.encoded)\n\t\ttestEqual(t, \"DecodeString(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"DecodeString(%q) = %q, want %q\", p.encoded, string(dbuf), p.decoded)\n\n\t\t// XXX: https://github.com/gnolang/gno/issues/1570\n\t\tdst, err := AppendDecode(append([]byte(nil), []byte(\"lead\")...), []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"lead\", %q) = %q, want %q`, p.encoded, string(dst), \"lead\"+p.decoded)\n\n\t\tdst2, err := AppendDecode(dst[:0:len(p.decoded)], []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"\", %q) = %q, want %q`, p.encoded, string(dst2), p.decoded)\n\t\t// XXX: https://github.com/gnolang/gno/issues/1569\n\t\t// old used \u0026dst2[0] != \u0026dst[0] as a check.\n\t\tif len(dst) \u003e 0 \u0026\u0026 len(dst2) \u003e 0 \u0026\u0026 cap(dst2) != len(p.decoded) {\n\t\t\tt.Errorf(\"unexpected capacity growth: got %d, want %d\", cap(dst2), len(p.decoded))\n\t\t}\n\t}\n}\n\n// A minimal variation on strings.Reader.\n// Here, we return a io.EOF immediately on Read if the read has reached the end\n// of the reader. It's used to simplify TestDecoder.\ntype stringReader struct {\n\ts string\n\ti int64\n}\n\nfunc (r *stringReader) Read(b []byte) (n int, err error) {\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(b, r.s[r.i:])\n\tr.i += int64(n)\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn n, io.EOF\n\t}\n\treturn\n}\n\nfunc TestDecoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdecoder := NewDecoder(\u0026stringReader{p.encoded, 0})\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decoder.Read(dbuf)\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Fatal(\"Read failed\", err)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\t\tif err != io.EOF {\n\t\t\t_, err = decoder.Read(dbuf)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = %v, want %v\", p.encoded, err, io.EOF)\n\t}\n}\n\ntype badReader struct {\n\tdata []byte\n\terrs []error\n\tcalled int\n\tlimit int\n}\n\n// Populates p with data, returns a count of the bytes written and an\n// error. The error returned is taken from badReader.errs, with each\n// invocation of Read returning the next error in this slice, or io.EOF,\n// if all errors from the slice have already been returned. The\n// number of bytes returned is determined by the size of the input buffer\n// the test passes to decoder.Read and will be a multiple of 8, unless\n// badReader.limit is non zero.\nfunc (b *badReader) Read(p []byte) (int, error) {\n\tlim := len(p)\n\tif b.limit != 0 \u0026\u0026 b.limit \u003c lim {\n\t\tlim = b.limit\n\t}\n\tif len(b.data) \u003c lim {\n\t\tlim = len(b.data)\n\t}\n\tfor i := range p[:lim] {\n\t\tp[i] = b.data[i]\n\t}\n\tb.data = b.data[lim:]\n\terr := io.EOF\n\tif b.called \u003c len(b.errs) {\n\t\terr = b.errs[b.called]\n\t}\n\tb.called++\n\treturn lim, err\n}\n\n// TestIssue20044 tests that decoder.Read behaves correctly when the caller\n// supplied reader returns an error.\nfunc TestIssue20044(t *testing.T) {\n\tbadErr := errors.New(\"bad reader error\")\n\ttestCases := []struct {\n\t\tr badReader\n\t\tres string\n\t\terr error\n\t\tdbuflen int\n\t}{\n\t\t// Check valid input data accompanied by an error is processed and the error is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"d1jprv3fexqq4v34\"), errs: []error{badErr}},\n\t\t\tres: \"helloworld\", err: badErr,\n\t\t},\n\t\t// Check a read error accompanied by input data consisting of newlines only is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\n\"), errs: []error{badErr, nil}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader will be called twice. The first time it will return 8 newline characters. The\n\t\t// second time valid base32 encoded data and an error. The data should be decoded\n\t\t// correctly and the error should be propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\nd1jprv3fexqq4v34\"), errs: []error{nil, badErr}},\n\t\t\tres: \"helloworld\", err: badErr, dbuflen: 8,\n\t\t},\n\t\t// Reader returns invalid input data (too short) and an error. Verify the reader\n\t\t// error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns invalid input data (too short) but no error. Verify io.ErrUnexpectedEOF\n\t\t// is returned.\n\t\t// NOTE(thehowl): I don't think this should applyto us?\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{nil}},\n\t\t\tres: \"\", err: io.ErrUnexpectedEOF,\n\t\t},*/\n\t\t// Reader returns invalid input data and an error. Verify the reader and not the\n\t\t// decoder error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"cu\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns valid data and io.EOF. Check data is decoded and io.EOF is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"csqpyrk1\"), errs: []error{io.EOF}},\n\t\t\tres: \"fooba\", err: io.EOF,\n\t\t},\n\t\t// Check errors are properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but an error on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{nil, badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 1,\n\t\t},\n\t\t// Check io.EOF is properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but io.EOF on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 1,\n\t\t},\n\t\t// The following two test cases check that errors are propagated correctly when more than\n\t\t// 8 bytes are read at a time.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 11,\n\t\t},\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 11,\n\t\t},\n\t\t// Check that errors are correctly propagated when the reader returns valid bytes in\n\t\t// groups that are not divisible by 8. The first read will return 11 bytes and no\n\t\t// error. The second will return 7 and an error. The data should be decoded correctly\n\t\t// and the error should be propagated.\n\t\t// NOTE(thehowl): again, this is on the assumption that this is padded, and it's not.\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, badErr}, limit: 11},\n\t\t\tres: \"leasure.\", err: badErr,\n\t\t}, */\n\t}\n\n\tfor idx, tc := range testCases {\n\t\tt.Run(fmt.Sprintf(\"%d-%s\", idx, string(tc.res)), func(t *testing.T) {\n\t\t\tinput := tc.r.data\n\t\t\tdecoder := NewDecoder(\u0026tc.r)\n\t\t\tvar dbuflen int\n\t\t\tif tc.dbuflen \u003e 0 {\n\t\t\t\tdbuflen = tc.dbuflen\n\t\t\t} else {\n\t\t\t\tdbuflen = DecodedLen(len(input))\n\t\t\t}\n\t\t\tdbuf := make([]byte, dbuflen)\n\t\t\tvar err error\n\t\t\tvar res []byte\n\t\t\tfor err == nil {\n\t\t\t\tvar n int\n\t\t\t\tn, err = decoder.Read(dbuf)\n\t\t\t\tif n \u003e 0 {\n\t\t\t\t\tres = append(res, dbuf[:n]...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", string(input), string(res), tc.res)\n\t\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", string(input), err, tc.err)\n\t\t})\n\t}\n}\n\n// TestDecoderError verifies decode errors are propagated when there are no read\n// errors.\nfunc TestDecoderError(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"ucsqpyrk1u\"\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tbr := badReader{data: []byte(input), errs: []error{readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\tif _, ok := err.(CorruptInputError); !ok {\n\t\t\tt.Errorf(\"Corrupt input error expected. Found %T\", err)\n\t\t}\n\t}\n}\n\n// TestReaderEOF ensures decoder.Read behaves correctly when input data is\n// exhausted.\nfunc TestReaderEOF(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"MZXW6YTB\"\n\t\tbr := badReader{data: []byte(input), errs: []error{nil, readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", input, err, error(nil))\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t}\n}\n\nfunc TestDecoderBuffering(t *testing.T) {\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tdecoder := NewDecoder(strings.NewReader(bigtest.encoded))\n\t\tbuf := make([]byte, len(bigtest.decoded)+12)\n\t\tvar total int\n\t\tvar n int\n\t\tvar err error\n\t\tfor total = 0; total \u003c len(bigtest.decoded) \u0026\u0026 err == nil; {\n\t\t\tn, err = decoder.Read(buf[total : total+bs])\n\t\t\ttotal += n\n\t\t}\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Errorf(\"Read from %q at pos %d = %d, unexpected error %v\", bigtest.encoded, total, n, err)\n\t\t}\n\t\ttestEqual(t, \"Decoding/%d of %q = %q, want %q\", bs, bigtest.encoded, string(buf[0:total]), bigtest.decoded)\n\t}\n}\n\nfunc TestDecodeCorrupt(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput string\n\t\toffset int // -1 means no corruption.\n\t}{\n\t\t{\"\", -1},\n\t\t{\"iIoOlL\", -1},\n\t\t{\"!!!!\", 0},\n\t\t{\"uxp10\", 0},\n\t\t{\"x===\", 1},\n\t\t{\"AA=A====\", 2},\n\t\t{\"AAA=AAAA\", 3},\n\t\t// Much fewer cases compared to Go as there are much fewer cases where input\n\t\t// can be \"corrupted\".\n\t}\n\tfor _, tc := range testCases {\n\t\tdbuf := make([]byte, DecodedLen(len(tc.input)))\n\t\t_, err := Decode(dbuf, []byte(tc.input))\n\t\tif tc.offset == -1 {\n\t\t\tif err != nil {\n\t\t\t\tt.Error(\"Decoder wrongly detected corruption in\", tc.input)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch err := err.(type) {\n\t\tcase CorruptInputError:\n\t\t\ttestEqual(t, \"Corruption in %q at offset %v, want %v\", tc.input, int(err), tc.offset)\n\t\tdefault:\n\t\t\tt.Error(\"Decoder failed to detect corruption in\", tc)\n\t\t}\n\t}\n}\n\nfunc TestBig(t *testing.T) {\n\tn := 3*1000 + 1\n\traw := make([]byte, n)\n\tconst alpha = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\tfor i := 0; i \u003c n; i++ {\n\t\traw[i] = alpha[i%len(alpha)]\n\t}\n\tencoded := new(bytes.Buffer)\n\tw := NewEncoder(encoded)\n\tnn, err := w.Write(raw)\n\tif nn != n || err != nil {\n\t\tt.Fatalf(\"Encoder.Write(raw) = %d, %v want %d, nil\", nn, err, n)\n\t}\n\terr = w.Close()\n\tif err != nil {\n\t\tt.Fatalf(\"Encoder.Close() = %v want nil\", err)\n\t}\n\tdecoded, err := io.ReadAll(NewDecoder(encoded))\n\tif err != nil {\n\t\tt.Fatalf(\"io.ReadAll(NewDecoder(...)): %v\", err)\n\t}\n\n\tif !bytes.Equal(raw, decoded) {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(decoded) \u0026\u0026 i \u003c len(raw); i++ {\n\t\t\tif decoded[i] != raw[i] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"Decode(Encode(%d-byte string)) failed at offset %d\", n, i)\n\t}\n}\n\nfunc testStringEncoding(t *testing.T, expected string, examples []string) {\n\tfor _, e := range examples {\n\t\tbuf, err := DecodeString(e)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Decode(%q) failed: %v\", e, err)\n\t\t\tcontinue\n\t\t}\n\t\tif s := string(buf); s != expected {\n\t\t\tt.Errorf(\"Decode(%q) = %q, want %q\", e, s, expected)\n\t\t}\n\t}\n}\n\nfunc TestNewLineCharacters(t *testing.T) {\n\t// Each of these should decode to the string \"sure\", without errors.\n\texamples := []string{\n\t\t\"EDTQ4S8\",\n\t\t\"EDTQ4S8\\r\",\n\t\t\"EDTQ4S8\\n\",\n\t\t\"EDTQ4S8\\r\\n\",\n\t\t\"EDTQ4S\\r\\n8\",\n\t\t\"EDT\\rQ4S\\n8\",\n\t\t\"edt\\nq4s\\r8\",\n\t\t\"edt\\nq4s8\",\n\t\t\"EDTQ4S\\n8\",\n\t}\n\ttestStringEncoding(t, \"sure\", examples)\n}\n\nfunc BenchmarkEncode(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tbuf := make([]byte, EncodedLen(len(data)))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncode(buf, data)\n\t}\n}\n\nfunc BenchmarkEncodeToString(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncodeToString(data)\n\t}\n}\n\nfunc BenchmarkDecode(b *testing.B) {\n\tdata := make([]byte, EncodedLen(8192))\n\tEncode(data, make([]byte, 8192))\n\tbuf := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecode(buf, data)\n\t}\n}\n\nfunc BenchmarkDecodeString(b *testing.B) {\n\tdata := EncodeToString(make([]byte, 8192))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecodeString(data)\n\t}\n}\n\n/* TODO: rewrite without using goroutines\nfunc TestBufferedDecodingSameError(t *testing.T) {\n\ttestcases := []struct {\n\t\tprefix string\n\t\tchunkCombinations [][]string\n\t\texpected error\n\t}{\n\t\t// Normal case, this is valid input\n\t\t{\"helloworld\", [][]string{\n\t\t\t{\"D1JP\", \"RV3F\", \"EXQQ\", \"4V34\"},\n\t\t\t{\"D1JPRV3FEXQQ4V34\"},\n\t\t\t{\"D1J\", \"PRV\", \"3FE\", \"XQQ\", \"4V3\", \"4\"},\n\t\t\t{\"D1JPRV3FEXQQ4V\", \"34\"},\n\t\t}, nil},\n\n\t\t// Normal case, this is valid input\n\t\t{\"fooba\", [][]string{\n\t\t\t{\"CSQPYRK1\"},\n\t\t\t{\"CSQPYRK\", \"1\"},\n\t\t\t{\"CSQPYR\", \"K1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQPY\", \"RK\", \"1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQP\", \"YR\", \"K1\"},\n\t\t}, nil},\n\n\t\t// NOTE: many test cases have been removed as we don't return ErrUnexpectedEOF.\n\t}\n\n\tfor _, testcase := range testcases {\n\t\tfor _, chunks := range testcase.chunkCombinations {\n\t\t\tpr, pw := io.Pipe()\n\n\t\t\t// Write the encoded chunks into the pipe\n\t\t\tgo func() {\n\t\t\t\tfor _, chunk := range chunks {\n\t\t\t\t\tpw.Write([]byte(chunk))\n\t\t\t\t}\n\t\t\t\tpw.Close()\n\t\t\t}()\n\n\t\t\tdecoder := NewDecoder(pr)\n\t\t\tback, err := io.ReadAll(decoder)\n\n\t\t\tif err != testcase.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v; case %s %+v\", testcase.expected, err, testcase.prefix, chunks)\n\t\t\t}\n\t\t\tif testcase.expected == nil {\n\t\t\t\ttestEqual(t, \"Decode from NewDecoder(chunkReader(%v)) = %q, want %q\", chunks, string(back), testcase.prefix)\n\t\t\t}\n\t\t}\n\t}\n}\n*/\n\nfunc TestEncodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{1, 2},\n\t\t{2, 4},\n\t\t{3, 5},\n\t\t{4, 7},\n\t\t{5, 8},\n\t\t{6, 10},\n\t\t{7, 12},\n\t\t{10, 16},\n\t\t{11, 18},\n\t}\n\t// check overflow\n\ttests = append(tests, test{(math.MaxInt-4)/8 + 1, 1844674407370955162})\n\ttests = append(tests, test{math.MaxInt/8*5 + 4, math.MaxInt})\n\tfor _, tt := range tests {\n\t\tif got := EncodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"EncodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDecodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{2, 1},\n\t\t{4, 2},\n\t\t{5, 3},\n\t\t{7, 4},\n\t\t{8, 5},\n\t\t{10, 6},\n\t\t{12, 7},\n\t\t{16, 10},\n\t\t{18, 11},\n\t}\n\t// check overflow\n\ttests = append(tests, test{math.MaxInt/5 + 1, 1152921504606846976})\n\ttests = append(tests, test{math.MaxInt, 5764607523034234879})\n\tfor _, tt := range tests {\n\t\tif got := DecodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"DecodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lanLg6SuhjIMYDB7nDER/ooL99IUXB29Hn5utv3e0MZNshPl0pNBUZtieyYK5/c/x+tnPgrsAZSkJ6CTkT67Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"chonk","path":"gno.land/p/n2p5/chonk","files":[{"name":"chonk.gno","body":"// Package chonk provides a simple way to store arbitrarily large strings\n// in a linked list across transactions for efficient storage and retrieval.\n// A Chonk support three operations: Add, Flush, and Scanner.\n// - Add appends a string to the Chonk.\n// - Flush clears the Chonk.\n// - Scanner is used to iterate over the chunks in the Chonk.\npackage chonk\n\n// Chonk is a linked list string storage and\n// retrieval system for fine bois.\ntype Chonk struct {\n\tfirst *chunk\n\tlast *chunk\n}\n\n// chunk is a linked list node for Chonk\ntype chunk struct {\n\ttext string\n\tnext *chunk\n}\n\n// New creates a reference to a new Chonk\nfunc New() *Chonk {\n\treturn \u0026Chonk{}\n}\n\n// Add appends a string to the Chonk. If the Chonk is empty,\n// the string will be the first and last chunk. Otherwise,\n// the string will be appended to the end of the Chonk.\nfunc (c *Chonk) Add(text string) {\n\tnext := \u0026chunk{text: text}\n\tif c.first == nil {\n\t\tc.first = next\n\t\tc.last = next\n\t\treturn\n\t}\n\tc.last.next = next\n\tc.last = next\n}\n\n// Flush clears the Chonk by setting the first and last\n// chunks to nil. This will allow the garbage collector to\n// free the memory used by the Chonk.\nfunc (c *Chonk) Flush() {\n\tc.first = nil\n\tc.last = nil\n}\n\n// Scanner returns a new Scanner for the Chonk. The Scanner\n// is used to iterate over the chunks in the Chonk.\nfunc (c *Chonk) Scanner() *Scanner {\n\treturn \u0026Scanner{\n\t\tnext: c.first,\n\t}\n}\n\n// Scanner is a simple string scanner for Chonk. It is used\n// to iterate over the chunks in a Chonk from first to last.\ntype Scanner struct {\n\tcurrent *chunk\n\tnext *chunk\n}\n\n// Scan advances the scanner to the next chunk. It returns\n// true if there is a next chunk, and false if there is not.\nfunc (s *Scanner) Scan() bool {\n\tif s.next != nil {\n\t\ts.current = s.next\n\t\ts.next = s.next.next\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Text returns the current chunk. It is only valid to call\n// this method after a call to Scan returns true. Expected usage:\n//\n//\t\tscanner := chonk.Scanner()\n//\t\t\tfor scanner.Scan() {\n//\t \t\tfmt.Println(scanner.Text())\n//\t\t\t}\nfunc (s *Scanner) Text() string {\n\treturn s.current.text\n}\n"},{"name":"chonk_test.gno","body":"package chonk\n\nimport (\n\t\"testing\"\n)\n\nfunc TestChonk(t *testing.T) {\n\tt.Parallel()\n\tc := New()\n\ttestTable := []struct {\n\t\tname string\n\t\tchunks []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"single chunk\",\n\t\t\tchunks: []string{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple chunks\",\n\t\t\tchunks: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiline chunks\",\n\t\t\tchunks: []string{\"1a\\nb\\nc\\n\\n\", \"d\\ne\\nf\", \"g\\nh\\ni\", \"j\\nk\\nl\\n\\n\\n\\n\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t}\n\ttestChonk := func(t *testing.T, c *Chonk, chunks []string) {\n\t\tfor _, chunk := range chunks {\n\t\t\tc.Add(chunk)\n\t\t}\n\t\tscanner := c.Scanner()\n\t\ti := 0\n\t\tfor scanner.Scan() {\n\t\t\tif scanner.Text() != chunks[i] {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", chunks[i], scanner.Text())\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\ttestChonk(t, c, test.chunks)\n\t\t\tc.Flush()\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iF9P32dLk+QJBoT8ufyKi+lj/EAd1lGUc77qAp51ICHbk3d/4pJ2SFFDwQyH7ZVI0UgiHZcHm3AUVdb6s5UwDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"chonk","path":"gno.land/p/n2p5/chonk","files":[{"name":"chonk.gno","body":"// Package chonk provides a simple way to store arbitrarily large strings\n// in a linked list across transactions for efficient storage and retrieval.\n// A Chonk support three operations: Add, Flush, and Scanner.\n// - Add appends a string to the Chonk.\n// - Flush clears the Chonk.\n// - Scanner is used to iterate over the chunks in the Chonk.\npackage chonk\n\n// Chonk is a linked list string storage and\n// retrieval system for fine bois.\ntype Chonk struct {\n\tfirst *chunk\n\tlast *chunk\n}\n\n// chunk is a linked list node for Chonk\ntype chunk struct {\n\ttext string\n\tnext *chunk\n}\n\n// New creates a reference to a new Chonk\nfunc New() *Chonk {\n\treturn \u0026Chonk{}\n}\n\n// Add appends a string to the Chonk. If the Chonk is empty,\n// the string will be the first and last chunk. Otherwise,\n// the string will be appended to the end of the Chonk.\nfunc (c *Chonk) Add(text string) {\n\tnext := \u0026chunk{text: text}\n\tif c.first == nil {\n\t\tc.first = next\n\t\tc.last = next\n\t\treturn\n\t}\n\tc.last.next = next\n\tc.last = next\n}\n\n// Flush clears the Chonk by setting the first and last\n// chunks to nil. This will allow the garbage collector to\n// free the memory used by the Chonk.\nfunc (c *Chonk) Flush() {\n\tc.first = nil\n\tc.last = nil\n}\n\n// Scanner returns a new Scanner for the Chonk. The Scanner\n// is used to iterate over the chunks in the Chonk.\nfunc (c *Chonk) Scanner() *Scanner {\n\treturn \u0026Scanner{\n\t\tnext: c.first,\n\t}\n}\n\n// Scanner is a simple string scanner for Chonk. It is used\n// to iterate over the chunks in a Chonk from first to last.\ntype Scanner struct {\n\tcurrent *chunk\n\tnext *chunk\n}\n\n// Scan advances the scanner to the next chunk. It returns\n// true if there is a next chunk, and false if there is not.\nfunc (s *Scanner) Scan() bool {\n\tif s.next != nil {\n\t\ts.current = s.next\n\t\ts.next = s.next.next\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Text returns the current chunk. It is only valid to call\n// this method after a call to Scan returns true. Expected usage:\n//\n//\t\tscanner := chonk.Scanner()\n//\t\t\tfor scanner.Scan() {\n//\t \t\tfmt.Println(scanner.Text())\n//\t\t\t}\nfunc (s *Scanner) Text() string {\n\treturn s.current.text\n}\n"},{"name":"chonk_test.gno","body":"package chonk\n\nimport (\n\t\"testing\"\n)\n\nfunc TestChonk(t *testing.T) {\n\tt.Parallel()\n\tc := New()\n\ttestTable := []struct {\n\t\tname string\n\t\tchunks []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"single chunk\",\n\t\t\tchunks: []string{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple chunks\",\n\t\t\tchunks: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiline chunks\",\n\t\t\tchunks: []string{\"1a\\nb\\nc\\n\\n\", \"d\\ne\\nf\", \"g\\nh\\ni\", \"j\\nk\\nl\\n\\n\\n\\n\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t}\n\ttestChonk := func(t *testing.T, c *Chonk, chunks []string) {\n\t\tfor _, chunk := range chunks {\n\t\t\tc.Add(chunk)\n\t\t}\n\t\tscanner := c.Scanner()\n\t\ti := 0\n\t\tfor scanner.Scan() {\n\t\t\tif scanner.Text() != chunks[i] {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", chunks[i], scanner.Text())\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\ttestChonk(t, c, test.chunks)\n\t\t\tc.Flush()\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iF9P32dLk+QJBoT8ufyKi+lj/EAd1lGUc77qAp51ICHbk3d/4pJ2SFFDwQyH7ZVI0UgiHZcHm3AUVdb6s5UwDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"combinederr","path":"gno.land/p/demo/combinederr","files":[{"name":"combinederr.gno","body":"package combinederr\n\nimport \"strings\"\n\n// CombinedError is a combined execution error\ntype CombinedError struct {\n\terrors []error\n}\n\n// Error returns the combined execution error\nfunc (e *CombinedError) Error() string {\n\tif len(e.errors) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tfor _, err := range e.errors {\n\t\tsb.WriteString(err.Error() + \"; \")\n\t}\n\n\t// Remove the last semicolon and space\n\tresult := sb.String()\n\n\treturn result[:len(result)-2]\n}\n\n// Add adds a new error to the execution error\nfunc (e *CombinedError) Add(err error) {\n\tif err == nil {\n\t\treturn\n\t}\n\n\te.errors = append(e.errors, err)\n}\n\n// Size returns a\nfunc (e *CombinedError) Size() int {\n\treturn len(e.errors)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p5dBIa2dscWZQfAh0s7WHDDZ7sabpWShWc4MSGcZjRNzZv/7THRgTp5HcolzEuDf/NrPg4+nNd2B7M0zG7XjDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"combinederr","path":"gno.land/p/demo/combinederr","files":[{"name":"combinederr.gno","body":"package combinederr\n\nimport \"strings\"\n\n// CombinedError is a combined execution error\ntype CombinedError struct {\n\terrors []error\n}\n\n// Error returns the combined execution error\nfunc (e *CombinedError) Error() string {\n\tif len(e.errors) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tfor _, err := range e.errors {\n\t\tsb.WriteString(err.Error() + \"; \")\n\t}\n\n\t// Remove the last semicolon and space\n\tresult := sb.String()\n\n\treturn result[:len(result)-2]\n}\n\n// Add adds a new error to the execution error\nfunc (e *CombinedError) Add(err error) {\n\tif err == nil {\n\t\treturn\n\t}\n\n\te.errors = append(e.errors, err)\n}\n\n// Size returns a\nfunc (e *CombinedError) Size() int {\n\treturn len(e.errors)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p5dBIa2dscWZQfAh0s7WHDDZ7sabpWShWc4MSGcZjRNzZv/7THRgTp5HcolzEuDf/NrPg4+nNd2B7M0zG7XjDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"combinederr","path":"gno.land/p/demo/combinederr","files":[{"name":"combinederr.gno","body":"package combinederr\n\nimport \"strings\"\n\n// CombinedError is a combined execution error\ntype CombinedError struct {\n\terrors []error\n}\n\n// Error returns the combined execution error\nfunc (e *CombinedError) Error() string {\n\tif len(e.errors) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tfor _, err := range e.errors {\n\t\tsb.WriteString(err.Error() + \"; \")\n\t}\n\n\t// Remove the last semicolon and space\n\tresult := sb.String()\n\n\treturn result[:len(result)-2]\n}\n\n// Add adds a new error to the execution error\nfunc (e *CombinedError) Add(err error) {\n\tif err == nil {\n\t\treturn\n\t}\n\n\te.errors = append(e.errors, err)\n}\n\n// Size returns a\nfunc (e *CombinedError) Size() int {\n\treturn len(e.errors)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p5dBIa2dscWZQfAh0s7WHDDZ7sabpWShWc4MSGcZjRNzZv/7THRgTp5HcolzEuDf/NrPg4+nNd2B7M0zG7XjDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/leon/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bT8yiykTJlWo2pjhQpNyJSZRGc9IHwcWnppsEVE+hIS6jelDNeEI6YmuyTstPVHc55MGGK41dD9IQdFFOHDSCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/leon/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bT8yiykTJlWo2pjhQpNyJSZRGc9IHwcWnppsEVE+hIS6jelDNeEI6YmuyTstPVHc55MGGK41dD9IQdFFOHDSCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/leon/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bT8yiykTJlWo2pjhQpNyJSZRGc9IHwcWnppsEVE+hIS6jelDNeEI6YmuyTstPVHc55MGGK41dD9IQdFFOHDSCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/manfred/config","files":[{"name":"config.gno","body":"package config\n\nimport \"std\"\n\nvar addr = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc Addr() std.Address {\n\treturn addr\n}\n\nfunc UpdateAddr(newAddr std.Address) {\n\tAssertIsAdmin()\n\taddr = newAddr\n}\n\nfunc AssertIsAdmin() {\n\tif std.GetOrigCaller() != addr {\n\t\tpanic(\"restricted area\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FLlG5t2zgPe51QWj2FGTHr1vJomNNmP9pldRn84mQGaROtRqo5tPkwLldAk7dj/2IVf4vwHQOeYfAF3gAvSYBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/moul/config","files":[{"name":"config.gno","body":"package config\n\nimport \"std\"\n\nvar addr = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n\nfunc Addr() std.Address {\n\treturn addr\n}\n\nfunc UpdateAddr(newAddr std.Address) {\n\tAssertIsAdmin()\n\taddr = newAddr\n}\n\nfunc AssertIsAdmin() {\n\tif std.GetOrigCaller() != addr {\n\t\tpanic(\"restricted area\")\n\t}\n}\n"},{"name":"config_test.gno","body":"package config\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LZqQg03l1anGs/7YNGZITlec4EVLGvZzORDm0FicQdaVszeELec5VjZXMOJZvha6N8nM1TwTGeKHtT6pLfdwBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/moul/config","files":[{"name":"config.gno","body":"package config\n\nimport \"std\"\n\nvar addr = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n\nfunc Addr() std.Address {\n\treturn addr\n}\n\nfunc UpdateAddr(newAddr std.Address) {\n\tAssertIsAdmin()\n\taddr = newAddr\n}\n\nfunc AssertIsAdmin() {\n\tif std.GetOrigCaller() != addr {\n\t\tpanic(\"restricted area\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Bagvh2WuyiqK3jZYxQzzuqy22qosWHC5DTSGVIO5ugOKr3qFkHvyuyd3nUlRfO1EVVHi2kJDu156BTH6ftEqBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/moul/config","files":[{"name":"config.gno","body":"package config\n\nimport \"std\"\n\nvar addr = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n\nfunc Addr() std.Address {\n\treturn addr\n}\n\nfunc UpdateAddr(newAddr std.Address) {\n\tAssertIsAdmin()\n\taddr = newAddr\n}\n\nfunc AssertIsAdmin() {\n\tif std.GetOrigCaller() != addr {\n\t\tpanic(\"restricted area\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Bagvh2WuyiqK3jZYxQzzuqy22qosWHC5DTSGVIO5ugOKr3qFkHvyuyd3nUlRfO1EVVHi2kJDu156BTH6ftEqBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/n2p5/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/n2p5/mgroup\"\n)\n\nconst (\n\toriginalOwner = \"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t\" // n2p5\n)\n\nvar (\n\tadminGroup = mgroup.New(originalOwner)\n\tdescription = \"\"\n)\n\n// AddBackupOwner adds a backup owner to the Owner Group.\n// A backup owner can claim ownership of the contract.\nfunc AddBackupOwner(addr std.Address) {\n\terr := adminGroup.AddBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveBackupOwner removes a backup owner from the Owner Group.\n// The primary owner cannot be removed.\nfunc RemoveBackupOwner(addr std.Address) {\n\terr := adminGroup.RemoveBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ClaimOwnership allows an authorized user in the ownerGroup\n// to claim ownership of the contract.\nfunc ClaimOwnership() {\n\terr := adminGroup.ClaimOwnership()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// AddAdmin adds an admin to the Admin Group.\nfunc AddAdmin(addr std.Address) {\n\terr := adminGroup.AddMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveAdmin removes an admin from the Admin Group.\n// The primary owner cannot be removed.\nfunc RemoveAdmin(addr std.Address) {\n\terr := adminGroup.RemoveMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Owner returns the current owner of the claims contract.\nfunc Owner() std.Address {\n\treturn adminGroup.Owner()\n}\n\n// BackupOwners returns the current backup owners of the claims contract.\nfunc BackupOwners() []string {\n\treturn adminGroup.BackupOwners()\n}\n\n// Admins returns the current admin members of the claims contract.\nfunc Admins() []string {\n\treturn adminGroup.Members()\n}\n\n// IsAdmin checks if an address is in the config adminGroup.\nfunc IsAdmin(addr std.Address) bool {\n\treturn adminGroup.IsMember(addr)\n}\n\n// toMarkdownList formats a slice of strings as a markdown list.\nfunc toMarkdownList(items []string) string {\n\tvar result string\n\tfor _, item := range items {\n\t\tresult += ufmt.Sprintf(\"- %s\\n\", item)\n\t}\n\treturn result\n}\n\nfunc Render(path string) string {\n\towner := adminGroup.Owner().String()\n\tbackupOwners := toMarkdownList(BackupOwners())\n\tadminMembers := toMarkdownList(Admins())\n\treturn ufmt.Sprintf(`\n# Config Dashboard\n\nThis dashboard shows the current configuration owner, backup owners, and admin members.\n- The owner has the exclusive ability to manage the backup owners and admin members.\n- Backup owners can claim ownership of the contract and become the owner.\n- Admin members are used to authorize actions in other realms, such as [my home realm](/r/n2p5/home).\n\n#### Owner\n\n%s\n\n#### Backup Owners\n\n%s\n\n#### Admin Members\n\n%s\n\n`,\n\t\towner,\n\t\tbackupOwners,\n\t\tadminMembers)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"toaCzv99mgA9ak0Z8W4uD1NIaWw0UC0FTi6vuIQc5aRyKFpg+fK2cHQUugGuGOZP/dliYb1ZNwM82z8Hlmh4CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"config","path":"gno.land/r/n2p5/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/n2p5/mgroup\"\n)\n\nconst (\n\toriginalOwner = \"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t\" // n2p5\n)\n\nvar (\n\tadminGroup = mgroup.New(originalOwner)\n\tdescription = \"\"\n)\n\n// AddBackupOwner adds a backup owner to the Owner Group.\n// A backup owner can claim ownership of the contract.\nfunc AddBackupOwner(addr std.Address) {\n\terr := adminGroup.AddBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveBackupOwner removes a backup owner from the Owner Group.\n// The primary owner cannot be removed.\nfunc RemoveBackupOwner(addr std.Address) {\n\terr := adminGroup.RemoveBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ClaimOwnership allows an authorized user in the ownerGroup\n// to claim ownership of the contract.\nfunc ClaimOwnership() {\n\terr := adminGroup.ClaimOwnership()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// AddAdmin adds an admin to the Admin Group.\nfunc AddAdmin(addr std.Address) {\n\terr := adminGroup.AddMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveAdmin removes an admin from the Admin Group.\n// The primary owner cannot be removed.\nfunc RemoveAdmin(addr std.Address) {\n\terr := adminGroup.RemoveMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Owner returns the current owner of the claims contract.\nfunc Owner() std.Address {\n\treturn adminGroup.Owner()\n}\n\n// BackupOwners returns the current backup owners of the claims contract.\nfunc BackupOwners() []string {\n\treturn adminGroup.BackupOwners()\n}\n\n// Admins returns the current admin members of the claims contract.\nfunc Admins() []string {\n\treturn adminGroup.Members()\n}\n\n// IsAdmin checks if an address is in the config adminGroup.\nfunc IsAdmin(addr std.Address) bool {\n\treturn adminGroup.IsMember(addr)\n}\n\n// toMarkdownList formats a slice of strings as a markdown list.\nfunc toMarkdownList(items []string) string {\n\tvar result string\n\tfor _, item := range items {\n\t\tresult += ufmt.Sprintf(\"- %s\\n\", item)\n\t}\n\treturn result\n}\n\nfunc Render(path string) string {\n\towner := adminGroup.Owner().String()\n\tbackupOwners := toMarkdownList(BackupOwners())\n\tadminMembers := toMarkdownList(Admins())\n\treturn ufmt.Sprintf(`\n# Config Dashboard\n\nThis dashboard shows the current configuration owner, backup owners, and admin members.\n- The owner has the exclusive ability to manage the backup owners and admin members.\n- Backup owners can claim ownership of the contract and become the owner.\n- Admin members are used to authorize actions in other realms, such as [my home realm](/r/n2p5/home).\n\n#### Owner\n\n%s\n\n#### Backup Owners\n\n%s\n\n#### Admin Members\n\n%s\n\n`,\n\t\towner,\n\t\tbackupOwners,\n\t\tadminMembers)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"toaCzv99mgA9ak0Z8W4uD1NIaWw0UC0FTi6vuIQc5aRyKFpg+fK2cHQUugGuGOZP/dliYb1ZNwM82z8Hlmh4CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"context","path":"gno.land/p/demo/context","files":[{"name":"context.gno","body":"// Package context provides a minimal implementation of Go context with support\n// for Value and WithValue.\n//\n// Adapted from https://github.com/golang/go/tree/master/src/context/.\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\npackage context\n\ntype Context interface {\n\t// Value returns the value associated with this context for key, or nil\n\t// if no value is associated with key.\n\tValue(key interface{}) interface{}\n}\n\n// Empty returns a non-nil, empty context, similar with context.Background and\n// context.TODO in Go.\nfunc Empty() Context {\n\treturn \u0026emptyCtx{}\n}\n\ntype emptyCtx struct{}\n\nfunc (ctx emptyCtx) Value(key interface{}) interface{} {\n\treturn nil\n}\n\nfunc (ctx emptyCtx) String() string {\n\treturn \"context.Empty\"\n}\n\ntype valueCtx struct {\n\tparent Context\n\tkey, val interface{}\n}\n\nfunc (ctx *valueCtx) Value(key interface{}) interface{} {\n\tif ctx.key == key {\n\t\treturn ctx.val\n\t}\n\treturn ctx.parent.Value(key)\n}\n\nfunc stringify(v interface{}) string {\n\tswitch s := v.(type) {\n\tcase stringer:\n\t\treturn s.String()\n\tcase string:\n\t\treturn s\n\t}\n\treturn \"non-stringer\"\n}\n\ntype stringer interface {\n\tString() string\n}\n\nfunc (c *valueCtx) String() string {\n\treturn stringify(c.parent) + \".WithValue(\" +\n\t\tstringify(c.key) + \", \" +\n\t\tstringify(c.val) + \")\"\n}\n\n// WithValue returns a copy of parent in which the value associated with key is\n// val.\nfunc WithValue(parent Context, key, val interface{}) Context {\n\tif key == nil {\n\t\tpanic(\"nil key\")\n\t}\n\t// XXX: if !reflect.TypeOf(key).Comparable() { panic(\"key is not comparable\") }\n\treturn \u0026valueCtx{parent, key, val}\n}\n"},{"name":"context_test.gno","body":"package context\n\nimport \"testing\"\n\nfunc TestContextExample(t *testing.T) {\n\ttype favContextKey string\n\n\tk := favContextKey(\"language\")\n\tctx := WithValue(Empty(), k, \"Gno\")\n\n\tif v := ctx.Value(k); v != nil {\n\t\tif string(v) != \"Gno\" {\n\t\t\tt.Errorf(\"language value should be Gno, but is %s\", v)\n\t\t}\n\t} else {\n\t\tt.Errorf(\"language key value was not found\")\n\t}\n\n\tif v := ctx.Value(favContextKey(\"color\")); v != nil {\n\t\tt.Errorf(\"color key was found\")\n\t}\n}\n\n// otherContext is a Context that's not one of the types defined in context.go.\n// This lets us test code paths that differ based on the underlying type of the\n// Context.\ntype otherContext struct {\n\tContext\n}\n\ntype (\n\tkey1 int\n\tkey2 int\n)\n\n// func (k key2) String() string { return fmt.Sprintf(\"%[1]T(%[1]d)\", k) }\n\nvar (\n\tk1 = key1(1)\n\tk2 = key2(1) // same int as k1, different type\n\tk3 = key2(3) // same type as k2, different int\n)\n\nfunc TestValues(t *testing.T) {\n\tcheck := func(c Context, nm, v1, v2, v3 string) {\n\t\tif v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 {\n\t\t\tt.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 {\n\t\t\tt.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 {\n\t\t\tt.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0)\n\t\t}\n\t}\n\n\tc0 := Empty()\n\tcheck(c0, \"c0\", \"\", \"\", \"\")\n\n\tt.Skip() // XXX: depends on https://github.com/gnolang/gno/issues/2386\n\n\tc1 := WithValue(Empty(), k1, \"c1k1\")\n\tcheck(c1, \"c1\", \"c1k1\", \"\", \"\")\n\n\t/*if got, want := c1.String(), `context.Empty.WithValue(context_test.key1, c1k1)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc2 := WithValue(c1, k2, \"c2k2\")\n\tcheck(c2, \"c2\", \"c1k1\", \"c2k2\", \"\")\n\n\t/*if got, want := fmt.Sprint(c2), `context.Empty.WithValue(context_test.key1, c1k1).WithValue(context_test.key2(1), c2k2)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc3 := WithValue(c2, k3, \"c3k3\")\n\tcheck(c3, \"c2\", \"c1k1\", \"c2k2\", \"c3k3\")\n\n\tc4 := WithValue(c3, k1, nil)\n\tcheck(c4, \"c4\", \"\", \"c2k2\", \"c3k3\")\n\n\to0 := otherContext{Empty()}\n\tcheck(o0, \"o0\", \"\", \"\", \"\")\n\n\to1 := otherContext{WithValue(Empty(), k1, \"c1k1\")}\n\tcheck(o1, \"o1\", \"c1k1\", \"\", \"\")\n\n\to2 := WithValue(o1, k2, \"o2k2\")\n\tcheck(o2, \"o2\", \"c1k1\", \"o2k2\", \"\")\n\n\to3 := otherContext{c4}\n\tcheck(o3, \"o3\", \"\", \"c2k2\", \"c3k3\")\n\n\to4 := WithValue(o3, k3, nil)\n\tcheck(o4, \"o4\", \"\", \"c2k2\", \"\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WC81J3bbN0IeeHnuOpAnPnyFiClzOhgH+EkmLrvLE3ExZJ5vCZoHQGj94sfoBW7h76E8Xnl6uMumLG4En5nlDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"context","path":"gno.land/p/demo/context","files":[{"name":"context.gno","body":"// Package context provides a minimal implementation of Go context with support\n// for Value and WithValue.\n//\n// Adapted from https://github.com/golang/go/tree/master/src/context/.\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\npackage context\n\ntype Context interface {\n\t// Value returns the value associated with this context for key, or nil\n\t// if no value is associated with key.\n\tValue(key interface{}) interface{}\n}\n\n// Empty returns a non-nil, empty context, similar with context.Background and\n// context.TODO in Go.\nfunc Empty() Context {\n\treturn \u0026emptyCtx{}\n}\n\ntype emptyCtx struct{}\n\nfunc (ctx emptyCtx) Value(key interface{}) interface{} {\n\treturn nil\n}\n\nfunc (ctx emptyCtx) String() string {\n\treturn \"context.Empty\"\n}\n\ntype valueCtx struct {\n\tparent Context\n\tkey, val interface{}\n}\n\nfunc (ctx *valueCtx) Value(key interface{}) interface{} {\n\tif ctx.key == key {\n\t\treturn ctx.val\n\t}\n\treturn ctx.parent.Value(key)\n}\n\nfunc stringify(v interface{}) string {\n\tswitch s := v.(type) {\n\tcase stringer:\n\t\treturn s.String()\n\tcase string:\n\t\treturn s\n\t}\n\treturn \"non-stringer\"\n}\n\ntype stringer interface {\n\tString() string\n}\n\nfunc (c *valueCtx) String() string {\n\treturn stringify(c.parent) + \".WithValue(\" +\n\t\tstringify(c.key) + \", \" +\n\t\tstringify(c.val) + \")\"\n}\n\n// WithValue returns a copy of parent in which the value associated with key is\n// val.\nfunc WithValue(parent Context, key, val interface{}) Context {\n\tif key == nil {\n\t\tpanic(\"nil key\")\n\t}\n\t// XXX: if !reflect.TypeOf(key).Comparable() { panic(\"key is not comparable\") }\n\treturn \u0026valueCtx{parent, key, val}\n}\n"},{"name":"context_test.gno","body":"package context\n\nimport \"testing\"\n\nfunc TestContextExample(t *testing.T) {\n\ttype favContextKey string\n\n\tk := favContextKey(\"language\")\n\tctx := WithValue(Empty(), k, \"Gno\")\n\n\tif v := ctx.Value(k); v != nil {\n\t\tif string(v) != \"Gno\" {\n\t\t\tt.Errorf(\"language value should be Gno, but is %s\", v)\n\t\t}\n\t} else {\n\t\tt.Errorf(\"language key value was not found\")\n\t}\n\n\tif v := ctx.Value(favContextKey(\"color\")); v != nil {\n\t\tt.Errorf(\"color key was found\")\n\t}\n}\n\n// otherContext is a Context that's not one of the types defined in context.go.\n// This lets us test code paths that differ based on the underlying type of the\n// Context.\ntype otherContext struct {\n\tContext\n}\n\ntype (\n\tkey1 int\n\tkey2 int\n)\n\n// func (k key2) String() string { return fmt.Sprintf(\"%[1]T(%[1]d)\", k) }\n\nvar (\n\tk1 = key1(1)\n\tk2 = key2(1) // same int as k1, different type\n\tk3 = key2(3) // same type as k2, different int\n)\n\nfunc TestValues(t *testing.T) {\n\tcheck := func(c Context, nm, v1, v2, v3 string) {\n\t\tif v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 {\n\t\t\tt.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 {\n\t\t\tt.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 {\n\t\t\tt.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0)\n\t\t}\n\t}\n\n\tc0 := Empty()\n\tcheck(c0, \"c0\", \"\", \"\", \"\")\n\n\tt.Skip() // XXX: depends on https://github.com/gnolang/gno/issues/2386\n\n\tc1 := WithValue(Empty(), k1, \"c1k1\")\n\tcheck(c1, \"c1\", \"c1k1\", \"\", \"\")\n\n\t/*if got, want := c1.String(), `context.Empty.WithValue(context_test.key1, c1k1)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc2 := WithValue(c1, k2, \"c2k2\")\n\tcheck(c2, \"c2\", \"c1k1\", \"c2k2\", \"\")\n\n\t/*if got, want := fmt.Sprint(c2), `context.Empty.WithValue(context_test.key1, c1k1).WithValue(context_test.key2(1), c2k2)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc3 := WithValue(c2, k3, \"c3k3\")\n\tcheck(c3, \"c2\", \"c1k1\", \"c2k2\", \"c3k3\")\n\n\tc4 := WithValue(c3, k1, nil)\n\tcheck(c4, \"c4\", \"\", \"c2k2\", \"c3k3\")\n\n\to0 := otherContext{Empty()}\n\tcheck(o0, \"o0\", \"\", \"\", \"\")\n\n\to1 := otherContext{WithValue(Empty(), k1, \"c1k1\")}\n\tcheck(o1, \"o1\", \"c1k1\", \"\", \"\")\n\n\to2 := WithValue(o1, k2, \"o2k2\")\n\tcheck(o2, \"o2\", \"c1k1\", \"o2k2\", \"\")\n\n\to3 := otherContext{c4}\n\tcheck(o3, \"o3\", \"\", \"c2k2\", \"c3k3\")\n\n\to4 := WithValue(o3, k3, nil)\n\tcheck(o4, \"o4\", \"\", \"c2k2\", \"\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WC81J3bbN0IeeHnuOpAnPnyFiClzOhgH+EkmLrvLE3ExZJ5vCZoHQGj94sfoBW7h76E8Xnl6uMumLG4En5nlDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"context","path":"gno.land/p/demo/context","files":[{"name":"context.gno","body":"// Package context provides a minimal implementation of Go context with support\n// for Value and WithValue.\n//\n// Adapted from https://github.com/golang/go/tree/master/src/context/.\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\npackage context\n\ntype Context interface {\n\t// Value returns the value associated with this context for key, or nil\n\t// if no value is associated with key.\n\tValue(key interface{}) interface{}\n}\n\n// Empty returns a non-nil, empty context, similar with context.Background and\n// context.TODO in Go.\nfunc Empty() Context {\n\treturn \u0026emptyCtx{}\n}\n\ntype emptyCtx struct{}\n\nfunc (ctx emptyCtx) Value(key interface{}) interface{} {\n\treturn nil\n}\n\nfunc (ctx emptyCtx) String() string {\n\treturn \"context.Empty\"\n}\n\ntype valueCtx struct {\n\tparent Context\n\tkey, val interface{}\n}\n\nfunc (ctx *valueCtx) Value(key interface{}) interface{} {\n\tif ctx.key == key {\n\t\treturn ctx.val\n\t}\n\treturn ctx.parent.Value(key)\n}\n\nfunc stringify(v interface{}) string {\n\tswitch s := v.(type) {\n\tcase stringer:\n\t\treturn s.String()\n\tcase string:\n\t\treturn s\n\t}\n\treturn \"non-stringer\"\n}\n\ntype stringer interface {\n\tString() string\n}\n\nfunc (c *valueCtx) String() string {\n\treturn stringify(c.parent) + \".WithValue(\" +\n\t\tstringify(c.key) + \", \" +\n\t\tstringify(c.val) + \")\"\n}\n\n// WithValue returns a copy of parent in which the value associated with key is\n// val.\nfunc WithValue(parent Context, key, val interface{}) Context {\n\tif key == nil {\n\t\tpanic(\"nil key\")\n\t}\n\t// XXX: if !reflect.TypeOf(key).Comparable() { panic(\"key is not comparable\") }\n\treturn \u0026valueCtx{parent, key, val}\n}\n"},{"name":"context_test.gno","body":"package context\n\nimport \"testing\"\n\nfunc TestContextExample(t *testing.T) {\n\ttype favContextKey string\n\n\tk := favContextKey(\"language\")\n\tctx := WithValue(Empty(), k, \"Gno\")\n\n\tif v := ctx.Value(k); v != nil {\n\t\tif string(v) != \"Gno\" {\n\t\t\tt.Errorf(\"language value should be Gno, but is %s\", v)\n\t\t}\n\t} else {\n\t\tt.Errorf(\"language key value was not found\")\n\t}\n\n\tif v := ctx.Value(favContextKey(\"color\")); v != nil {\n\t\tt.Errorf(\"color key was found\")\n\t}\n}\n\n// otherContext is a Context that's not one of the types defined in context.go.\n// This lets us test code paths that differ based on the underlying type of the\n// Context.\ntype otherContext struct {\n\tContext\n}\n\ntype (\n\tkey1 int\n\tkey2 int\n)\n\n// func (k key2) String() string { return fmt.Sprintf(\"%[1]T(%[1]d)\", k) }\n\nvar (\n\tk1 = key1(1)\n\tk2 = key2(1) // same int as k1, different type\n\tk3 = key2(3) // same type as k2, different int\n)\n\nfunc TestValues(t *testing.T) {\n\tcheck := func(c Context, nm, v1, v2, v3 string) {\n\t\tif v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 {\n\t\t\tt.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 {\n\t\t\tt.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 {\n\t\t\tt.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0)\n\t\t}\n\t}\n\n\tc0 := Empty()\n\tcheck(c0, \"c0\", \"\", \"\", \"\")\n\n\tt.Skip() // XXX: depends on https://github.com/gnolang/gno/issues/2386\n\n\tc1 := WithValue(Empty(), k1, \"c1k1\")\n\tcheck(c1, \"c1\", \"c1k1\", \"\", \"\")\n\n\t/*if got, want := c1.String(), `context.Empty.WithValue(context_test.key1, c1k1)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc2 := WithValue(c1, k2, \"c2k2\")\n\tcheck(c2, \"c2\", \"c1k1\", \"c2k2\", \"\")\n\n\t/*if got, want := fmt.Sprint(c2), `context.Empty.WithValue(context_test.key1, c1k1).WithValue(context_test.key2(1), c2k2)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc3 := WithValue(c2, k3, \"c3k3\")\n\tcheck(c3, \"c2\", \"c1k1\", \"c2k2\", \"c3k3\")\n\n\tc4 := WithValue(c3, k1, nil)\n\tcheck(c4, \"c4\", \"\", \"c2k2\", \"c3k3\")\n\n\to0 := otherContext{Empty()}\n\tcheck(o0, \"o0\", \"\", \"\", \"\")\n\n\to1 := otherContext{WithValue(Empty(), k1, \"c1k1\")}\n\tcheck(o1, \"o1\", \"c1k1\", \"\", \"\")\n\n\to2 := WithValue(o1, k2, \"o2k2\")\n\tcheck(o2, \"o2\", \"c1k1\", \"o2k2\", \"\")\n\n\to3 := otherContext{c4}\n\tcheck(o3, \"o3\", \"\", \"c2k2\", \"c3k3\")\n\n\to4 := WithValue(o3, k3, nil)\n\tcheck(o4, \"o4\", \"\", \"c2k2\", \"\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WC81J3bbN0IeeHnuOpAnPnyFiClzOhgH+EkmLrvLE3ExZJ5vCZoHQGj94sfoBW7h76E8Xnl6uMumLG4En5nlDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"counter","path":"gno.land/r/demo/counter","files":[{"name":"counter.gno","body":"package counter\n\nimport \"strconv\"\n\nvar counter int\n\nfunc Increment() int {\n\tcounter++\n\treturn counter\n}\n\nfunc Render(_ string) string {\n\treturn strconv.Itoa(counter)\n}\n"},{"name":"counter_test.gno","body":"package counter\n\nimport \"testing\"\n\nfunc TestIncrement(t *testing.T) {\n\tcounter = 0\n\tval := Increment()\n\tif val != 1 {\n\t\tt.Fatalf(\"result from Increment(): %d != 1\", val)\n\t}\n\tif counter != val {\n\t\tt.Fatalf(\"counter (%d) != val (%d)\", counter, val)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcounter = 1337\n\tres := Render(\"\")\n\tif res != \"1337\" {\n\t\tt.Fatalf(\"render result %q != %q\", res, \"1337\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v6bRaFe6jobCMg/HiB5WS/EC9LGcoNnemAIMVAE4UsjMFj5XgB6Z4+DRdokIZL8MFw/k5ln00T40/QipVWq0Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"counter","path":"gno.land/r/demo/counter","files":[{"name":"counter.gno","body":"package counter\n\nimport \"strconv\"\n\nvar counter int\n\nfunc Increment() int {\n\tcounter++\n\treturn counter\n}\n\nfunc Render(_ string) string {\n\treturn strconv.Itoa(counter)\n}\n"},{"name":"counter_test.gno","body":"package counter\n\nimport \"testing\"\n\nfunc TestIncrement(t *testing.T) {\n\tcounter = 0\n\tval := Increment()\n\tif val != 1 {\n\t\tt.Fatalf(\"result from Increment(): %d != 1\", val)\n\t}\n\tif counter != val {\n\t\tt.Fatalf(\"counter (%d) != val (%d)\", counter, val)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcounter = 1337\n\tres := Render(\"\")\n\tif res != \"1337\" {\n\t\tt.Fatalf(\"render result %q != %q\", res, \"1337\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v6bRaFe6jobCMg/HiB5WS/EC9LGcoNnemAIMVAE4UsjMFj5XgB6Z4+DRdokIZL8MFw/k5ln00T40/QipVWq0Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"counter","path":"gno.land/r/demo/counter","files":[{"name":"counter.gno","body":"package counter\n\nimport \"strconv\"\n\nvar counter int\n\nfunc Increment() int {\n\tcounter++\n\treturn counter\n}\n\nfunc Render(_ string) string {\n\treturn strconv.Itoa(counter)\n}\n"},{"name":"counter_test.gno","body":"package counter\n\nimport \"testing\"\n\nfunc TestIncrement(t *testing.T) {\n\tcounter = 0\n\tval := Increment()\n\tif val != 1 {\n\t\tt.Fatalf(\"result from Increment(): %d != 1\", val)\n\t}\n\tif counter != val {\n\t\tt.Fatalf(\"counter (%d) != val (%d)\", counter, val)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcounter = 1337\n\tres := Render(\"\")\n\tif res != \"1337\" {\n\t\tt.Fatalf(\"render result %q != %q\", res, \"1337\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v6bRaFe6jobCMg/HiB5WS/EC9LGcoNnemAIMVAE4UsjMFj5XgB6Z4+DRdokIZL8MFw/k5ln00T40/QipVWq0Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"crossrealm","path":"gno.land/r/demo/tests/crossrealm","files":[{"name":"crossrealm.gno","body":"package crossrealm\n\nimport (\n\t\"gno.land/p/demo/tests/p_crossrealm\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype LocalStruct struct {\n\tA int\n}\n\nfunc (ls *LocalStruct) String() string {\n\treturn ufmt.Sprintf(\"LocalStruct{%d}\", ls.A)\n}\n\n// local is saved locally in this realm\nvar local *LocalStruct\n\nfunc init() {\n\tlocal = \u0026LocalStruct{A: 123}\n}\n\n// Make1 returns a local object wrapped by a p struct\nfunc Make1() *p_crossrealm.Container {\n\treturn \u0026p_crossrealm.Container{\n\t\tA: 1,\n\t\tB: local,\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fLr9J2XXWGBYYE2Zqeo+glxAGEN63I8dWY6pLVRN6FeIiaMlu5VptT1+RMz8mexvt78tgv9LFlN4f0iucLvZDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"crossrealm","path":"gno.land/r/demo/tests/crossrealm","files":[{"name":"crossrealm.gno","body":"package crossrealm\n\nimport (\n\t\"gno.land/p/demo/tests/p_crossrealm\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype LocalStruct struct {\n\tA int\n}\n\nfunc (ls *LocalStruct) String() string {\n\treturn ufmt.Sprintf(\"LocalStruct{%d}\", ls.A)\n}\n\n// local is saved locally in this realm\nvar local *LocalStruct\n\nfunc init() {\n\tlocal = \u0026LocalStruct{A: 123}\n}\n\n// Make1 returns a local object wrapped by a p struct\nfunc Make1() *p_crossrealm.Container {\n\treturn \u0026p_crossrealm.Container{\n\t\tA: 1,\n\t\tB: local,\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fLr9J2XXWGBYYE2Zqeo+glxAGEN63I8dWY6pLVRN6FeIiaMlu5VptT1+RMz8mexvt78tgv9LFlN4f0iucLvZDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"crossrealm","path":"gno.land/r/demo/tests/crossrealm","files":[{"name":"crossrealm.gno","body":"package crossrealm\n\nimport (\n\t\"gno.land/p/demo/tests/p_crossrealm\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype LocalStruct struct {\n\tA int\n}\n\nfunc (ls *LocalStruct) String() string {\n\treturn ufmt.Sprintf(\"LocalStruct{%d}\", ls.A)\n}\n\n// local is saved locally in this realm\nvar local *LocalStruct\n\nfunc init() {\n\tlocal = \u0026LocalStruct{A: 123}\n}\n\n// Make1 returns a local object wrapped by a p struct\nfunc Make1() *p_crossrealm.Container {\n\treturn \u0026p_crossrealm.Container{\n\t\tA: 1,\n\t\tB: local,\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fLr9J2XXWGBYYE2Zqeo+glxAGEN63I8dWY6pLVRN6FeIiaMlu5VptT1+RMz8mexvt78tgv9LFlN4f0iucLvZDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"crossrealm","path":"gno.land/r/demo/tests/crossrealm","files":[{"name":"crossrealm.gno","body":"package crossrealm\n\nimport (\n\t\"gno.land/p/demo/tests/p_crossrealm\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype LocalStruct struct {\n\tA int\n}\n\nfunc (ls *LocalStruct) String() string {\n\treturn ufmt.Sprintf(\"LocalStruct{%d}\", ls.A)\n}\n\n// local is saved locally in this realm\nvar local *LocalStruct\n\nfunc init() {\n\tlocal = \u0026LocalStruct{A: 123}\n}\n\n// Make1 returns a local object wrapped by a p struct\nfunc Make1() *p_crossrealm.Container {\n\treturn \u0026p_crossrealm.Container{\n\t\tA: 1,\n\t\tB: local,\n\t}\n}\n\ntype Fooer interface{ Foo() }\n\nvar fooer Fooer\n\nfunc SetFooer(f Fooer) Fooer {\n\tfooer = f\n\treturn fooer\n}\n\nfunc GetFooer() Fooer { return fooer }\n\nfunc CallFooerFoo() { fooer.Foo() }\n\ntype FooerGetter func() Fooer\n\nvar fooerGetter FooerGetter\n\nfunc SetFooerGetter(fg FooerGetter) FooerGetter {\n\tfooerGetter = fg\n\treturn fg\n}\n\nfunc GetFooerGetter() FooerGetter {\n\treturn fooerGetter\n}\n\nfunc CallFooerGetterFoo() { fooerGetter().Foo() }\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ULJqtx2xrI/+DrT+A5zGqERpIT58NdHxNcD9vKy7XMnE5kMOgaaFQ04zLEA+dAn/gimyNdJEDRjB/gMy15rwDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"crossrealm_b","path":"gno.land/r/demo/tests/crossrealm_b","files":[{"name":"crossrealm.gno","body":"package crossrealm_b\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/tests/crossrealm\"\n)\n\ntype fooer struct {\n\ts string\n}\n\nfunc (f *fooer) SetS(newVal string) {\n\tf.s = newVal\n}\n\nfunc (f *fooer) Foo() {\n\tprintln(\"hello \" + f.s + \" cur=\" + std.CurrentRealm().PkgPath() + \" prev=\" + std.PrevRealm().PkgPath())\n}\n\nvar (\n\tFooer = \u0026fooer{s: \"A\"}\n\tFooerGetter = func() crossrealm.Fooer { return Fooer }\n\tFooerGetterBuilder = func() crossrealm.FooerGetter { return func() crossrealm.Fooer { return Fooer } }\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r85ppvKSQLBizQWCBnS6GiBsFtpYbRHEEurTvAjLoUv+DE6CNjx82L9PPXryiYmkFWeNDYhXQ+igA3YixNjfBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dao","path":"gno.land/p/demo/dao","files":[{"name":"dao.gno","body":"package dao\n\nconst (\n\tProposalAddedEvent = \"ProposalAdded\" // emitted when a new proposal has been added\n\tProposalAcceptedEvent = \"ProposalAccepted\" // emitted when a proposal has been accepted\n\tProposalNotAcceptedEvent = \"ProposalNotAccepted\" // emitted when a proposal has not been accepted\n\tProposalExecutedEvent = \"ProposalExecuted\" // emitted when a proposal has been executed\n\n\tProposalEventIDKey = \"proposal-id\"\n\tProposalEventAuthorKey = \"proposal-author\"\n\tProposalEventExecutionKey = \"exec-status\"\n)\n\n// ProposalRequest is a single govdao proposal request\n// that contains the necessary information to\n// log and generate a valid proposal\ntype ProposalRequest struct {\n\tDescription string // the description associated with the proposal\n\tExecutor Executor // the proposal executor\n}\n\n// DAO defines the DAO abstraction\ntype DAO interface {\n\t// PropStore is the DAO proposal storage\n\tPropStore\n\n\t// Propose adds a new proposal to the executor-based GOVDAO.\n\t// Returns the generated proposal ID\n\tPropose(request ProposalRequest) (uint64, error)\n\n\t// ExecuteProposal executes the proposal with the given ID\n\tExecuteProposal(id uint64) error\n}\n"},{"name":"doc.gno","body":"// Package dao houses common DAO building blocks (framework), which can be used or adopted by any\n// specific DAO implementation. By design, the DAO should house the proposals it receives, but not the actual\n// DAO members or proposal votes. These abstractions should be implemented by a separate entity, to keep the DAO\n// agnostic of implementation details such as these (member / vote management).\npackage dao\n"},{"name":"events.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EmitProposalAdded emits an event signaling that\n// a given proposal was added\nfunc EmitProposalAdded(id uint64, proposer std.Address) {\n\tstd.Emit(\n\t\tProposalAddedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventAuthorKey, proposer.String(),\n\t)\n}\n\n// EmitProposalAccepted emits an event signaling that\n// a given proposal was accepted\nfunc EmitProposalAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalNotAccepted emits an event signaling that\n// a given proposal was not accepted\nfunc EmitProposalNotAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalNotAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalExecuted emits an event signaling that\n// a given proposal was executed, with the given status\nfunc EmitProposalExecuted(id uint64, status ProposalStatus) {\n\tstd.Emit(\n\t\tProposalExecutedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventExecutionKey, status.String(),\n\t)\n}\n\n// EmitVoteAdded emits an event signaling that\n// a vote was cast for a given proposal\nfunc EmitVoteAdded(id uint64, voter std.Address, option VoteOption) {\n\tstd.Emit(\n\t\tVoteAddedEvent,\n\t\tVoteAddedIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tVoteAddedAuthorKey, voter.String(),\n\t\tVoteAddedOptionKey, option.String(),\n\t)\n}\n"},{"name":"executor.gno","body":"package dao\n\n// Executor represents a minimal closure-oriented proposal design.\n// It is intended to be used by a govdao governance proposal (v1, v2, etc)\ntype Executor interface {\n\t// Execute executes the given proposal, and returns any error encountered\n\t// during the execution\n\tExecute() error\n}\n"},{"name":"proposals.gno","body":"package dao\n\nimport \"std\"\n\n// ProposalStatus is the currently active proposal status,\n// changed based on DAO functionality.\n// Status transitions:\n//\n// ACTIVE -\u003e ACCEPTED -\u003e EXECUTION(SUCCEEDED/FAILED)\n//\n// ACTIVE -\u003e NOT ACCEPTED\ntype ProposalStatus string\n\nvar (\n\tActive ProposalStatus = \"active\" // proposal is still active\n\tAccepted ProposalStatus = \"accepted\" // proposal gathered quorum\n\tNotAccepted ProposalStatus = \"not accepted\" // proposal failed to gather quorum\n\tExecutionSuccessful ProposalStatus = \"execution successful\" // proposal is executed successfully\n\tExecutionFailed ProposalStatus = \"execution failed\" // proposal is failed during execution\n)\n\nfunc (s ProposalStatus) String() string {\n\treturn string(s)\n}\n\n// PropStore defines the proposal storage abstraction\ntype PropStore interface {\n\t// Proposals returns the given paginated proposals\n\tProposals(offset, count uint64) []Proposal\n\n\t// ProposalByID returns the proposal associated with\n\t// the given ID, if any\n\tProposalByID(id uint64) (Proposal, error)\n\n\t// Size returns the number of proposals in\n\t// the proposal store\n\tSize() int\n}\n\n// Proposal is the single proposal abstraction\ntype Proposal interface {\n\t// Author returns the author of the proposal\n\tAuthor() std.Address\n\n\t// Description returns the description of the proposal\n\tDescription() string\n\n\t// Status returns the status of the proposal\n\tStatus() ProposalStatus\n\n\t// Executor returns the proposal executor\n\tExecutor() Executor\n\n\t// Stats returns the voting stats of the proposal\n\tStats() Stats\n\n\t// IsExpired returns a flag indicating if the proposal expired\n\tIsExpired() bool\n\n\t// Render renders the proposal in a readable format\n\tRender() string\n}\n"},{"name":"vote.gno","body":"package dao\n\n// NOTE:\n// This voting pods will be removed in a future version of the\n// p/demo/dao package. A DAO shouldn't have to comply with or define how the voting mechanism works internally;\n// it should be viewed as an entity that makes decisions\n//\n// The extent of \"votes being enforced\" in this implementation is just in the context\n// of types a DAO can use (import), and in the context of \"Stats\", where\n// there is a notion of \"Yay\", \"Nay\" and \"Abstain\" votes.\nconst (\n\tVoteAddedEvent = \"VoteAdded\" // emitted when a vote was cast for a proposal\n\n\tVoteAddedIDKey = \"proposal-id\"\n\tVoteAddedAuthorKey = \"author\"\n\tVoteAddedOptionKey = \"option\"\n)\n\n// VoteOption is the limited voting option for a DAO proposal\ntype VoteOption string\n\nconst (\n\tYesVote VoteOption = \"YES\" // Proposal should be accepted\n\tNoVote VoteOption = \"NO\" // Proposal should be rejected\n\tAbstainVote VoteOption = \"ABSTAIN\" // Side is not chosen\n)\n\nfunc (v VoteOption) String() string {\n\treturn string(v)\n}\n\n// Stats encompasses the proposal voting stats\ntype Stats struct {\n\tYayVotes uint64\n\tNayVotes uint64\n\tAbstainVotes uint64\n\n\tTotalVotingPower uint64\n}\n\n// YayPercent returns the percentage (0-100) of the yay votes\n// in relation to the total voting power\nfunc (v Stats) YayPercent() uint64 {\n\treturn v.YayVotes * 100 / v.TotalVotingPower\n}\n\n// NayPercent returns the percentage (0-100) of the nay votes\n// in relation to the total voting power\nfunc (v Stats) NayPercent() uint64 {\n\treturn v.NayVotes * 100 / v.TotalVotingPower\n}\n\n// AbstainPercent returns the percentage (0-100) of the abstain votes\n// in relation to the total voting power\nfunc (v Stats) AbstainPercent() uint64 {\n\treturn v.AbstainVotes * 100 / v.TotalVotingPower\n}\n\n// MissingVotes returns the summed voting power that has not\n// participated in proposal voting yet\nfunc (v Stats) MissingVotes() uint64 {\n\treturn v.TotalVotingPower - (v.YayVotes + v.NayVotes + v.AbstainVotes)\n}\n\n// MissingVotesPercent returns the percentage (0-100) of the missing votes\n// in relation to the total voting power\nfunc (v Stats) MissingVotesPercent() uint64 {\n\treturn v.MissingVotes() * 100 / v.TotalVotingPower\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hiRGP9kWUOTWZuqgCSWvc7bdIA+t1fO/s1DPQADi/0Qgu7ZLmWUUaQ1lXXdCuXrdSzN49H0yxBfWCqva6sZYCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dao","path":"gno.land/p/demo/dao","files":[{"name":"dao.gno","body":"package dao\n\nconst (\n\tProposalAddedEvent = \"ProposalAdded\" // emitted when a new proposal has been added\n\tProposalAcceptedEvent = \"ProposalAccepted\" // emitted when a proposal has been accepted\n\tProposalNotAcceptedEvent = \"ProposalNotAccepted\" // emitted when a proposal has not been accepted\n\tProposalExecutedEvent = \"ProposalExecuted\" // emitted when a proposal has been executed\n\n\tProposalEventIDKey = \"proposal-id\"\n\tProposalEventAuthorKey = \"proposal-author\"\n\tProposalEventExecutionKey = \"exec-status\"\n)\n\n// ProposalRequest is a single govdao proposal request\n// that contains the necessary information to\n// log and generate a valid proposal\ntype ProposalRequest struct {\n\tDescription string // the description associated with the proposal\n\tExecutor Executor // the proposal executor\n}\n\n// DAO defines the DAO abstraction\ntype DAO interface {\n\t// PropStore is the DAO proposal storage\n\tPropStore\n\n\t// Propose adds a new proposal to the executor-based GOVDAO.\n\t// Returns the generated proposal ID\n\tPropose(request ProposalRequest) (uint64, error)\n\n\t// ExecuteProposal executes the proposal with the given ID\n\tExecuteProposal(id uint64) error\n}\n"},{"name":"doc.gno","body":"// Package dao houses common DAO building blocks (framework), which can be used or adopted by any\n// specific DAO implementation. By design, the DAO should house the proposals it receives, but not the actual\n// DAO members or proposal votes. These abstractions should be implemented by a separate entity, to keep the DAO\n// agnostic of implementation details such as these (member / vote management).\npackage dao\n"},{"name":"events.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EmitProposalAdded emits an event signaling that\n// a given proposal was added\nfunc EmitProposalAdded(id uint64, proposer std.Address) {\n\tstd.Emit(\n\t\tProposalAddedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventAuthorKey, proposer.String(),\n\t)\n}\n\n// EmitProposalAccepted emits an event signaling that\n// a given proposal was accepted\nfunc EmitProposalAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalNotAccepted emits an event signaling that\n// a given proposal was not accepted\nfunc EmitProposalNotAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalNotAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalExecuted emits an event signaling that\n// a given proposal was executed, with the given status\nfunc EmitProposalExecuted(id uint64, status ProposalStatus) {\n\tstd.Emit(\n\t\tProposalExecutedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventExecutionKey, status.String(),\n\t)\n}\n\n// EmitVoteAdded emits an event signaling that\n// a vote was cast for a given proposal\nfunc EmitVoteAdded(id uint64, voter std.Address, option VoteOption) {\n\tstd.Emit(\n\t\tVoteAddedEvent,\n\t\tVoteAddedIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tVoteAddedAuthorKey, voter.String(),\n\t\tVoteAddedOptionKey, option.String(),\n\t)\n}\n"},{"name":"executor.gno","body":"package dao\n\n// Executor represents a minimal closure-oriented proposal design.\n// It is intended to be used by a govdao governance proposal (v1, v2, etc)\ntype Executor interface {\n\t// Execute executes the given proposal, and returns any error encountered\n\t// during the execution\n\tExecute() error\n}\n"},{"name":"proposals.gno","body":"package dao\n\nimport \"std\"\n\n// ProposalStatus is the currently active proposal status,\n// changed based on DAO functionality.\n// Status transitions:\n//\n// ACTIVE -\u003e ACCEPTED -\u003e EXECUTION(SUCCEEDED/FAILED)\n//\n// ACTIVE -\u003e NOT ACCEPTED\ntype ProposalStatus string\n\nvar (\n\tActive ProposalStatus = \"active\" // proposal is still active\n\tAccepted ProposalStatus = \"accepted\" // proposal gathered quorum\n\tNotAccepted ProposalStatus = \"not accepted\" // proposal failed to gather quorum\n\tExecutionSuccessful ProposalStatus = \"execution successful\" // proposal is executed successfully\n\tExecutionFailed ProposalStatus = \"execution failed\" // proposal is failed during execution\n)\n\nfunc (s ProposalStatus) String() string {\n\treturn string(s)\n}\n\n// PropStore defines the proposal storage abstraction\ntype PropStore interface {\n\t// Proposals returns the given paginated proposals\n\tProposals(offset, count uint64) []Proposal\n\n\t// ProposalByID returns the proposal associated with\n\t// the given ID, if any\n\tProposalByID(id uint64) (Proposal, error)\n\n\t// Size returns the number of proposals in\n\t// the proposal store\n\tSize() int\n}\n\n// Proposal is the single proposal abstraction\ntype Proposal interface {\n\t// Author returns the author of the proposal\n\tAuthor() std.Address\n\n\t// Description returns the description of the proposal\n\tDescription() string\n\n\t// Status returns the status of the proposal\n\tStatus() ProposalStatus\n\n\t// Executor returns the proposal executor\n\tExecutor() Executor\n\n\t// Stats returns the voting stats of the proposal\n\tStats() Stats\n\n\t// IsExpired returns a flag indicating if the proposal expired\n\tIsExpired() bool\n\n\t// Render renders the proposal in a readable format\n\tRender() string\n}\n"},{"name":"vote.gno","body":"package dao\n\n// NOTE:\n// This voting pods will be removed in a future version of the\n// p/demo/dao package. A DAO shouldn't have to comply with or define how the voting mechanism works internally;\n// it should be viewed as an entity that makes decisions\n//\n// The extent of \"votes being enforced\" in this implementation is just in the context\n// of types a DAO can use (import), and in the context of \"Stats\", where\n// there is a notion of \"Yay\", \"Nay\" and \"Abstain\" votes.\nconst (\n\tVoteAddedEvent = \"VoteAdded\" // emitted when a vote was cast for a proposal\n\n\tVoteAddedIDKey = \"proposal-id\"\n\tVoteAddedAuthorKey = \"author\"\n\tVoteAddedOptionKey = \"option\"\n)\n\n// VoteOption is the limited voting option for a DAO proposal\ntype VoteOption string\n\nconst (\n\tYesVote VoteOption = \"YES\" // Proposal should be accepted\n\tNoVote VoteOption = \"NO\" // Proposal should be rejected\n\tAbstainVote VoteOption = \"ABSTAIN\" // Side is not chosen\n)\n\nfunc (v VoteOption) String() string {\n\treturn string(v)\n}\n\n// Stats encompasses the proposal voting stats\ntype Stats struct {\n\tYayVotes uint64\n\tNayVotes uint64\n\tAbstainVotes uint64\n\n\tTotalVotingPower uint64\n}\n\n// YayPercent returns the percentage (0-100) of the yay votes\n// in relation to the total voting power\nfunc (v Stats) YayPercent() uint64 {\n\treturn v.YayVotes * 100 / v.TotalVotingPower\n}\n\n// NayPercent returns the percentage (0-100) of the nay votes\n// in relation to the total voting power\nfunc (v Stats) NayPercent() uint64 {\n\treturn v.NayVotes * 100 / v.TotalVotingPower\n}\n\n// AbstainPercent returns the percentage (0-100) of the abstain votes\n// in relation to the total voting power\nfunc (v Stats) AbstainPercent() uint64 {\n\treturn v.AbstainVotes * 100 / v.TotalVotingPower\n}\n\n// MissingVotes returns the summed voting power that has not\n// participated in proposal voting yet\nfunc (v Stats) MissingVotes() uint64 {\n\treturn v.TotalVotingPower - (v.YayVotes + v.NayVotes + v.AbstainVotes)\n}\n\n// MissingVotesPercent returns the percentage (0-100) of the missing votes\n// in relation to the total voting power\nfunc (v Stats) MissingVotesPercent() uint64 {\n\treturn v.MissingVotes() * 100 / v.TotalVotingPower\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hiRGP9kWUOTWZuqgCSWvc7bdIA+t1fO/s1DPQADi/0Qgu7ZLmWUUaQ1lXXdCuXrdSzN49H0yxBfWCqva6sZYCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dao","path":"gno.land/p/demo/dao","files":[{"name":"dao.gno","body":"package dao\n\nconst (\n\tProposalAddedEvent = \"ProposalAdded\" // emitted when a new proposal has been added\n\tProposalAcceptedEvent = \"ProposalAccepted\" // emitted when a proposal has been accepted\n\tProposalNotAcceptedEvent = \"ProposalNotAccepted\" // emitted when a proposal has not been accepted\n\tProposalExecutedEvent = \"ProposalExecuted\" // emitted when a proposal has been executed\n\n\tProposalEventIDKey = \"proposal-id\"\n\tProposalEventAuthorKey = \"proposal-author\"\n\tProposalEventExecutionKey = \"exec-status\"\n)\n\n// ProposalRequest is a single govdao proposal request\n// that contains the necessary information to\n// log and generate a valid proposal\ntype ProposalRequest struct {\n\tDescription string // the description associated with the proposal\n\tExecutor Executor // the proposal executor\n}\n\n// DAO defines the DAO abstraction\ntype DAO interface {\n\t// PropStore is the DAO proposal storage\n\tPropStore\n\n\t// Propose adds a new proposal to the executor-based GOVDAO.\n\t// Returns the generated proposal ID\n\tPropose(request ProposalRequest) (uint64, error)\n\n\t// ExecuteProposal executes the proposal with the given ID\n\tExecuteProposal(id uint64) error\n}\n"},{"name":"doc.gno","body":"// Package dao houses common DAO building blocks (framework), which can be used or adopted by any\n// specific DAO implementation. By design, the DAO should house the proposals it receives, but not the actual\n// DAO members or proposal votes. These abstractions should be implemented by a separate entity, to keep the DAO\n// agnostic of implementation details such as these (member / vote management).\npackage dao\n"},{"name":"events.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EmitProposalAdded emits an event signaling that\n// a given proposal was added\nfunc EmitProposalAdded(id uint64, proposer std.Address) {\n\tstd.Emit(\n\t\tProposalAddedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventAuthorKey, proposer.String(),\n\t)\n}\n\n// EmitProposalAccepted emits an event signaling that\n// a given proposal was accepted\nfunc EmitProposalAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalNotAccepted emits an event signaling that\n// a given proposal was not accepted\nfunc EmitProposalNotAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalNotAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalExecuted emits an event signaling that\n// a given proposal was executed, with the given status\nfunc EmitProposalExecuted(id uint64, status ProposalStatus) {\n\tstd.Emit(\n\t\tProposalExecutedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventExecutionKey, status.String(),\n\t)\n}\n\n// EmitVoteAdded emits an event signaling that\n// a vote was cast for a given proposal\nfunc EmitVoteAdded(id uint64, voter std.Address, option VoteOption) {\n\tstd.Emit(\n\t\tVoteAddedEvent,\n\t\tVoteAddedIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tVoteAddedAuthorKey, voter.String(),\n\t\tVoteAddedOptionKey, option.String(),\n\t)\n}\n"},{"name":"executor.gno","body":"package dao\n\n// Executor represents a minimal closure-oriented proposal design.\n// It is intended to be used by a govdao governance proposal (v1, v2, etc)\ntype Executor interface {\n\t// Execute executes the given proposal, and returns any error encountered\n\t// during the execution\n\tExecute() error\n}\n"},{"name":"proposals.gno","body":"package dao\n\nimport \"std\"\n\n// ProposalStatus is the currently active proposal status,\n// changed based on DAO functionality.\n// Status transitions:\n//\n// ACTIVE -\u003e ACCEPTED -\u003e EXECUTION(SUCCEEDED/FAILED)\n//\n// ACTIVE -\u003e NOT ACCEPTED\ntype ProposalStatus string\n\nvar (\n\tActive ProposalStatus = \"active\" // proposal is still active\n\tAccepted ProposalStatus = \"accepted\" // proposal gathered quorum\n\tNotAccepted ProposalStatus = \"not accepted\" // proposal failed to gather quorum\n\tExecutionSuccessful ProposalStatus = \"execution successful\" // proposal is executed successfully\n\tExecutionFailed ProposalStatus = \"execution failed\" // proposal is failed during execution\n)\n\nfunc (s ProposalStatus) String() string {\n\treturn string(s)\n}\n\n// PropStore defines the proposal storage abstraction\ntype PropStore interface {\n\t// Proposals returns the given paginated proposals\n\tProposals(offset, count uint64) []Proposal\n\n\t// ProposalByID returns the proposal associated with\n\t// the given ID, if any\n\tProposalByID(id uint64) (Proposal, error)\n\n\t// Size returns the number of proposals in\n\t// the proposal store\n\tSize() int\n}\n\n// Proposal is the single proposal abstraction\ntype Proposal interface {\n\t// Author returns the author of the proposal\n\tAuthor() std.Address\n\n\t// Description returns the description of the proposal\n\tDescription() string\n\n\t// Status returns the status of the proposal\n\tStatus() ProposalStatus\n\n\t// Executor returns the proposal executor\n\tExecutor() Executor\n\n\t// Stats returns the voting stats of the proposal\n\tStats() Stats\n\n\t// IsExpired returns a flag indicating if the proposal expired\n\tIsExpired() bool\n\n\t// Render renders the proposal in a readable format\n\tRender() string\n}\n"},{"name":"vote.gno","body":"package dao\n\n// NOTE:\n// This voting pods will be removed in a future version of the\n// p/demo/dao package. A DAO shouldn't have to comply with or define how the voting mechanism works internally;\n// it should be viewed as an entity that makes decisions\n//\n// The extent of \"votes being enforced\" in this implementation is just in the context\n// of types a DAO can use (import), and in the context of \"Stats\", where\n// there is a notion of \"Yay\", \"Nay\" and \"Abstain\" votes.\nconst (\n\tVoteAddedEvent = \"VoteAdded\" // emitted when a vote was cast for a proposal\n\n\tVoteAddedIDKey = \"proposal-id\"\n\tVoteAddedAuthorKey = \"author\"\n\tVoteAddedOptionKey = \"option\"\n)\n\n// VoteOption is the limited voting option for a DAO proposal\ntype VoteOption string\n\nconst (\n\tYesVote VoteOption = \"YES\" // Proposal should be accepted\n\tNoVote VoteOption = \"NO\" // Proposal should be rejected\n\tAbstainVote VoteOption = \"ABSTAIN\" // Side is not chosen\n)\n\nfunc (v VoteOption) String() string {\n\treturn string(v)\n}\n\n// Stats encompasses the proposal voting stats\ntype Stats struct {\n\tYayVotes uint64\n\tNayVotes uint64\n\tAbstainVotes uint64\n\n\tTotalVotingPower uint64\n}\n\n// YayPercent returns the percentage (0-100) of the yay votes\n// in relation to the total voting power\nfunc (v Stats) YayPercent() uint64 {\n\treturn v.YayVotes * 100 / v.TotalVotingPower\n}\n\n// NayPercent returns the percentage (0-100) of the nay votes\n// in relation to the total voting power\nfunc (v Stats) NayPercent() uint64 {\n\treturn v.NayVotes * 100 / v.TotalVotingPower\n}\n\n// AbstainPercent returns the percentage (0-100) of the abstain votes\n// in relation to the total voting power\nfunc (v Stats) AbstainPercent() uint64 {\n\treturn v.AbstainVotes * 100 / v.TotalVotingPower\n}\n\n// MissingVotes returns the summed voting power that has not\n// participated in proposal voting yet\nfunc (v Stats) MissingVotes() uint64 {\n\treturn v.TotalVotingPower - (v.YayVotes + v.NayVotes + v.AbstainVotes)\n}\n\n// MissingVotesPercent returns the percentage (0-100) of the missing votes\n// in relation to the total voting power\nfunc (v Stats) MissingVotesPercent() uint64 {\n\treturn v.MissingVotes() * 100 / v.TotalVotingPower\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hiRGP9kWUOTWZuqgCSWvc7bdIA+t1fO/s1DPQADi/0Qgu7ZLmWUUaQ1lXXdCuXrdSzN49H0yxBfWCqva6sZYCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dao","path":"gno.land/p/demo/dao","files":[{"name":"dao.gno","body":"package dao\n\nconst (\n\tProposalAddedEvent = \"ProposalAdded\" // emitted when a new proposal has been added\n\tProposalAcceptedEvent = \"ProposalAccepted\" // emitted when a proposal has been accepted\n\tProposalNotAcceptedEvent = \"ProposalNotAccepted\" // emitted when a proposal has not been accepted\n\tProposalExecutedEvent = \"ProposalExecuted\" // emitted when a proposal has been executed\n\n\tProposalEventIDKey = \"proposal-id\"\n\tProposalEventAuthorKey = \"proposal-author\"\n\tProposalEventExecutionKey = \"exec-status\"\n)\n\n// ProposalRequest is a single govdao proposal request\n// that contains the necessary information to\n// log and generate a valid proposal\ntype ProposalRequest struct {\n\tTitle string // the title associated with the proposal\n\tDescription string // the description associated with the proposal\n\tExecutor Executor // the proposal executor\n}\n\n// DAO defines the DAO abstraction\ntype DAO interface {\n\t// PropStore is the DAO proposal storage\n\tPropStore\n\n\t// Propose adds a new proposal to the executor-based GOVDAO.\n\t// Returns the generated proposal ID\n\tPropose(request ProposalRequest) (uint64, error)\n\n\t// ExecuteProposal executes the proposal with the given ID\n\tExecuteProposal(id uint64) error\n}\n"},{"name":"doc.gno","body":"// Package dao houses common DAO building blocks (framework), which can be used or adopted by any\n// specific DAO implementation. By design, the DAO should house the proposals it receives, but not the actual\n// DAO members or proposal votes. These abstractions should be implemented by a separate entity, to keep the DAO\n// agnostic of implementation details such as these (member / vote management).\npackage dao\n"},{"name":"events.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EmitProposalAdded emits an event signaling that\n// a given proposal was added\nfunc EmitProposalAdded(id uint64, proposer std.Address) {\n\tstd.Emit(\n\t\tProposalAddedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventAuthorKey, proposer.String(),\n\t)\n}\n\n// EmitProposalAccepted emits an event signaling that\n// a given proposal was accepted\nfunc EmitProposalAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalNotAccepted emits an event signaling that\n// a given proposal was not accepted\nfunc EmitProposalNotAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalNotAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalExecuted emits an event signaling that\n// a given proposal was executed, with the given status\nfunc EmitProposalExecuted(id uint64, status ProposalStatus) {\n\tstd.Emit(\n\t\tProposalExecutedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventExecutionKey, status.String(),\n\t)\n}\n\n// EmitVoteAdded emits an event signaling that\n// a vote was cast for a given proposal\nfunc EmitVoteAdded(id uint64, voter std.Address, option VoteOption) {\n\tstd.Emit(\n\t\tVoteAddedEvent,\n\t\tVoteAddedIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tVoteAddedAuthorKey, voter.String(),\n\t\tVoteAddedOptionKey, option.String(),\n\t)\n}\n"},{"name":"executor.gno","body":"package dao\n\n// Executor represents a minimal closure-oriented proposal design.\n// It is intended to be used by a govdao governance proposal (v1, v2, etc)\ntype Executor interface {\n\t// Execute executes the given proposal, and returns any error encountered\n\t// during the execution\n\tExecute() error\n}\n"},{"name":"proposals.gno","body":"package dao\n\nimport \"std\"\n\n// ProposalStatus is the currently active proposal status,\n// changed based on DAO functionality.\n// Status transitions:\n//\n// ACTIVE -\u003e ACCEPTED -\u003e EXECUTION(SUCCEEDED/FAILED)\n//\n// ACTIVE -\u003e NOT ACCEPTED\ntype ProposalStatus string\n\nvar (\n\tActive ProposalStatus = \"active\" // proposal is still active\n\tAccepted ProposalStatus = \"accepted\" // proposal gathered quorum\n\tNotAccepted ProposalStatus = \"not accepted\" // proposal failed to gather quorum\n\tExecutionSuccessful ProposalStatus = \"execution successful\" // proposal is executed successfully\n\tExecutionFailed ProposalStatus = \"execution failed\" // proposal has failed during execution\n)\n\nfunc (s ProposalStatus) String() string {\n\treturn string(s)\n}\n\n// PropStore defines the proposal storage abstraction\ntype PropStore interface {\n\t// Proposals returns the given paginated proposals\n\tProposals(offset, count uint64) []Proposal\n\n\t// ProposalByID returns the proposal associated with\n\t// the given ID, if any\n\tProposalByID(id uint64) (Proposal, error)\n\n\t// Size returns the number of proposals in\n\t// the proposal store\n\tSize() int\n}\n\n// Proposal is the single proposal abstraction\ntype Proposal interface {\n\t// Author returns the author of the proposal\n\tAuthor() std.Address\n\n\t// Title returns the title of the proposal\n\tTitle() string\n\n\t// Description returns the description of the proposal\n\tDescription() string\n\n\t// Status returns the status of the proposal\n\tStatus() ProposalStatus\n\n\t// Executor returns the proposal executor\n\tExecutor() Executor\n\n\t// Stats returns the voting stats of the proposal\n\tStats() Stats\n\n\t// IsExpired returns a flag indicating if the proposal expired\n\tIsExpired() bool\n\n\t// Render renders the proposal in a readable format\n\tRender() string\n}\n"},{"name":"vote.gno","body":"package dao\n\n// NOTE:\n// This voting pods will be removed in a future version of the\n// p/demo/dao package. A DAO shouldn't have to comply with or define how the voting mechanism works internally;\n// it should be viewed as an entity that makes decisions\n//\n// The extent of \"votes being enforced\" in this implementation is just in the context\n// of types a DAO can use (import), and in the context of \"Stats\", where\n// there is a notion of \"Yay\", \"Nay\" and \"Abstain\" votes.\nconst (\n\tVoteAddedEvent = \"VoteAdded\" // emitted when a vote was cast for a proposal\n\n\tVoteAddedIDKey = \"proposal-id\"\n\tVoteAddedAuthorKey = \"author\"\n\tVoteAddedOptionKey = \"option\"\n)\n\n// VoteOption is the limited voting option for a DAO proposal\ntype VoteOption string\n\nconst (\n\tYesVote VoteOption = \"YES\" // Proposal should be accepted\n\tNoVote VoteOption = \"NO\" // Proposal should be rejected\n\tAbstainVote VoteOption = \"ABSTAIN\" // Side is not chosen\n)\n\nfunc (v VoteOption) String() string {\n\treturn string(v)\n}\n\n// Stats encompasses the proposal voting stats\ntype Stats struct {\n\tYayVotes uint64\n\tNayVotes uint64\n\tAbstainVotes uint64\n\n\tTotalVotingPower uint64\n}\n\n// YayPercent returns the percentage (0-100) of the yay votes\n// in relation to the total voting power\nfunc (v Stats) YayPercent() uint64 {\n\treturn v.YayVotes * 100 / v.TotalVotingPower\n}\n\n// NayPercent returns the percentage (0-100) of the nay votes\n// in relation to the total voting power\nfunc (v Stats) NayPercent() uint64 {\n\treturn v.NayVotes * 100 / v.TotalVotingPower\n}\n\n// AbstainPercent returns the percentage (0-100) of the abstain votes\n// in relation to the total voting power\nfunc (v Stats) AbstainPercent() uint64 {\n\treturn v.AbstainVotes * 100 / v.TotalVotingPower\n}\n\n// MissingVotes returns the summed voting power that has not\n// participated in proposal voting yet\nfunc (v Stats) MissingVotes() uint64 {\n\treturn v.TotalVotingPower - (v.YayVotes + v.NayVotes + v.AbstainVotes)\n}\n\n// MissingVotesPercent returns the percentage (0-100) of the missing votes\n// in relation to the total voting power\nfunc (v Stats) MissingVotesPercent() uint64 {\n\treturn v.MissingVotes() * 100 / v.TotalVotingPower\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I5lRffEKdPCLNo5be2EvBYKEU81yCgOYaFrsgquSj4YNuv+gIkoXKsOtJm+os7HL6Qt9BJcPD+3C5qIVSDVFBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"daoweb","path":"gno.land/r/demo/daoweb","files":[{"name":"daoweb.gno","body":"package daoweb\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\n// Proposals returns the paginated GovDAO proposals\nfunc Proposals(offset, count uint64) string {\n\tvar (\n\t\tpropStore = bridge.GovDAO().GetPropStore()\n\t\tsize = propStore.Size()\n\t)\n\n\t// Get the props\n\tprops := propStore.Proposals(offset, count)\n\n\tresp := ProposalsResponse{\n\t\tProposals: make([]Proposal, 0, count),\n\t\tTotal: uint64(size),\n\t}\n\n\tfor _, p := range props {\n\t\tprop := Proposal{\n\t\t\tAuthor: p.Author(),\n\t\t\tDescription: p.Description(),\n\t\t\tStatus: p.Status(),\n\t\t\tStats: p.Stats(),\n\t\t\tIsExpired: p.IsExpired(),\n\t\t}\n\n\t\tresp.Proposals = append(resp.Proposals, prop)\n\t}\n\n\t// Encode the response into JSON\n\tencodedProps, err := json.Marshal(encodeProposalsResponse(resp))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProps)\n}\n\n// ProposalByID fetches the proposal using the given ID\nfunc ProposalByID(id uint64) string {\n\tpropStore := bridge.GovDAO().GetPropStore()\n\n\tp, err := propStore.ProposalByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Encode the response into JSON\n\tprop := Proposal{\n\t\tAuthor: p.Author(),\n\t\tDescription: p.Description(),\n\t\tStatus: p.Status(),\n\t\tStats: p.Stats(),\n\t\tIsExpired: p.IsExpired(),\n\t}\n\n\tencodedProp, err := json.Marshal(encodeProposal(prop))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProp)\n}\n\n// encodeProposal encodes a proposal into a json node\nfunc encodeProposal(p Proposal) *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"author\": json.StringNode(\"author\", p.Author.String()),\n\t\t\"description\": json.StringNode(\"description\", p.Description),\n\t\t\"status\": json.StringNode(\"status\", p.Status.String()),\n\t\t\"stats\": json.ObjectNode(\"stats\", map[string]*json.Node{\n\t\t\t\"yay_votes\": json.NumberNode(\"yay_votes\", float64(p.Stats.YayVotes)),\n\t\t\t\"nay_votes\": json.NumberNode(\"nay_votes\", float64(p.Stats.NayVotes)),\n\t\t\t\"abstain_votes\": json.NumberNode(\"abstain_votes\", float64(p.Stats.AbstainVotes)),\n\t\t\t\"total_voting_power\": json.NumberNode(\"total_voting_power\", float64(p.Stats.TotalVotingPower)),\n\t\t}),\n\t\t\"is_expired\": json.BoolNode(\"is_expired\", p.IsExpired),\n\t})\n}\n\n// encodeProposalsResponse encodes a proposal response into a JSON node\nfunc encodeProposalsResponse(props ProposalsResponse) *json.Node {\n\tproposals := make([]*json.Node, 0, len(props.Proposals))\n\n\tfor _, p := range props.Proposals {\n\t\tproposals = append(proposals, encodeProposal(p))\n\t}\n\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"proposals\": json.ArrayNode(\"proposals\", proposals),\n\t\t\"total\": json.NumberNode(\"total\", float64(props.Total)),\n\t})\n}\n\n// ProposalsResponse is a paginated proposal response\ntype ProposalsResponse struct {\n\tProposals []Proposal `json:\"proposals\"`\n\tTotal uint64 `json:\"total\"`\n}\n\n// Proposal is a single GovDAO proposal\ntype Proposal struct {\n\tAuthor std.Address `json:\"author\"`\n\tDescription string `json:\"description\"`\n\tStatus dao.ProposalStatus `json:\"status\"`\n\tStats dao.Stats `json:\"stats\"`\n\tIsExpired bool `json:\"is_expired\"`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0OUQ8DZPZnu2v4oPy3GyuFg6FpUwVsjuLbGn/tw8c5nE7E3RqydMGIm0bqaY0y0LfhlwxtqqUdT4THH0ZtsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"daoweb","path":"gno.land/r/demo/daoweb","files":[{"name":"daoweb.gno","body":"package daoweb\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\n// Proposals returns the paginated GovDAO proposals\nfunc Proposals(offset, count uint64) string {\n\tvar (\n\t\tpropStore = bridge.GovDAO().GetPropStore()\n\t\tsize = propStore.Size()\n\t)\n\n\t// Get the props\n\tprops := propStore.Proposals(offset, count)\n\n\tresp := ProposalsResponse{\n\t\tProposals: make([]Proposal, 0, count),\n\t\tTotal: uint64(size),\n\t}\n\n\tfor _, p := range props {\n\t\tprop := Proposal{\n\t\t\tAuthor: p.Author(),\n\t\t\tDescription: p.Description(),\n\t\t\tStatus: p.Status(),\n\t\t\tStats: p.Stats(),\n\t\t\tIsExpired: p.IsExpired(),\n\t\t}\n\n\t\tresp.Proposals = append(resp.Proposals, prop)\n\t}\n\n\t// Encode the response into JSON\n\tencodedProps, err := json.Marshal(encodeProposalsResponse(resp))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProps)\n}\n\n// ProposalByID fetches the proposal using the given ID\nfunc ProposalByID(id uint64) string {\n\tpropStore := bridge.GovDAO().GetPropStore()\n\n\tp, err := propStore.ProposalByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Encode the response into JSON\n\tprop := Proposal{\n\t\tAuthor: p.Author(),\n\t\tDescription: p.Description(),\n\t\tStatus: p.Status(),\n\t\tStats: p.Stats(),\n\t\tIsExpired: p.IsExpired(),\n\t}\n\n\tencodedProp, err := json.Marshal(encodeProposal(prop))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProp)\n}\n\n// encodeProposal encodes a proposal into a json node\nfunc encodeProposal(p Proposal) *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"author\": json.StringNode(\"author\", p.Author.String()),\n\t\t\"description\": json.StringNode(\"description\", p.Description),\n\t\t\"status\": json.StringNode(\"status\", p.Status.String()),\n\t\t\"stats\": json.ObjectNode(\"stats\", map[string]*json.Node{\n\t\t\t\"yay_votes\": json.NumberNode(\"yay_votes\", float64(p.Stats.YayVotes)),\n\t\t\t\"nay_votes\": json.NumberNode(\"nay_votes\", float64(p.Stats.NayVotes)),\n\t\t\t\"abstain_votes\": json.NumberNode(\"abstain_votes\", float64(p.Stats.AbstainVotes)),\n\t\t\t\"total_voting_power\": json.NumberNode(\"total_voting_power\", float64(p.Stats.TotalVotingPower)),\n\t\t}),\n\t\t\"is_expired\": json.BoolNode(\"is_expired\", p.IsExpired),\n\t})\n}\n\n// encodeProposalsResponse encodes a proposal response into a JSON node\nfunc encodeProposalsResponse(props ProposalsResponse) *json.Node {\n\tproposals := make([]*json.Node, 0, len(props.Proposals))\n\n\tfor _, p := range props.Proposals {\n\t\tproposals = append(proposals, encodeProposal(p))\n\t}\n\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"proposals\": json.ArrayNode(\"proposals\", proposals),\n\t\t\"total\": json.NumberNode(\"total\", float64(props.Total)),\n\t})\n}\n\n// ProposalsResponse is a paginated proposal response\ntype ProposalsResponse struct {\n\tProposals []Proposal `json:\"proposals\"`\n\tTotal uint64 `json:\"total\"`\n}\n\n// Proposal is a single GovDAO proposal\ntype Proposal struct {\n\tAuthor std.Address `json:\"author\"`\n\tDescription string `json:\"description\"`\n\tStatus dao.ProposalStatus `json:\"status\"`\n\tStats dao.Stats `json:\"stats\"`\n\tIsExpired bool `json:\"is_expired\"`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0OUQ8DZPZnu2v4oPy3GyuFg6FpUwVsjuLbGn/tw8c5nE7E3RqydMGIm0bqaY0y0LfhlwxtqqUdT4THH0ZtsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"daoweb","path":"gno.land/r/demo/daoweb","files":[{"name":"daoweb.gno","body":"package daoweb\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\n// Proposals returns the paginated GovDAO proposals\nfunc Proposals(offset, count uint64) string {\n\tvar (\n\t\tpropStore = bridge.GovDAO().GetPropStore()\n\t\tsize = propStore.Size()\n\t)\n\n\t// Get the props\n\tprops := propStore.Proposals(offset, count)\n\n\tresp := ProposalsResponse{\n\t\tProposals: make([]Proposal, 0, count),\n\t\tTotal: uint64(size),\n\t}\n\n\tfor _, p := range props {\n\t\tprop := Proposal{\n\t\t\tAuthor: p.Author(),\n\t\t\tDescription: p.Description(),\n\t\t\tStatus: p.Status(),\n\t\t\tStats: p.Stats(),\n\t\t\tIsExpired: p.IsExpired(),\n\t\t}\n\n\t\tresp.Proposals = append(resp.Proposals, prop)\n\t}\n\n\t// Encode the response into JSON\n\tencodedProps, err := json.Marshal(encodeProposalsResponse(resp))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProps)\n}\n\n// ProposalByID fetches the proposal using the given ID\nfunc ProposalByID(id uint64) string {\n\tpropStore := bridge.GovDAO().GetPropStore()\n\n\tp, err := propStore.ProposalByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Encode the response into JSON\n\tprop := Proposal{\n\t\tAuthor: p.Author(),\n\t\tDescription: p.Description(),\n\t\tStatus: p.Status(),\n\t\tStats: p.Stats(),\n\t\tIsExpired: p.IsExpired(),\n\t}\n\n\tencodedProp, err := json.Marshal(encodeProposal(prop))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProp)\n}\n\n// encodeProposal encodes a proposal into a json node\nfunc encodeProposal(p Proposal) *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"author\": json.StringNode(\"author\", p.Author.String()),\n\t\t\"description\": json.StringNode(\"description\", p.Description),\n\t\t\"status\": json.StringNode(\"status\", p.Status.String()),\n\t\t\"stats\": json.ObjectNode(\"stats\", map[string]*json.Node{\n\t\t\t\"yay_votes\": json.NumberNode(\"yay_votes\", float64(p.Stats.YayVotes)),\n\t\t\t\"nay_votes\": json.NumberNode(\"nay_votes\", float64(p.Stats.NayVotes)),\n\t\t\t\"abstain_votes\": json.NumberNode(\"abstain_votes\", float64(p.Stats.AbstainVotes)),\n\t\t\t\"total_voting_power\": json.NumberNode(\"total_voting_power\", float64(p.Stats.TotalVotingPower)),\n\t\t}),\n\t\t\"is_expired\": json.BoolNode(\"is_expired\", p.IsExpired),\n\t})\n}\n\n// encodeProposalsResponse encodes a proposal response into a JSON node\nfunc encodeProposalsResponse(props ProposalsResponse) *json.Node {\n\tproposals := make([]*json.Node, 0, len(props.Proposals))\n\n\tfor _, p := range props.Proposals {\n\t\tproposals = append(proposals, encodeProposal(p))\n\t}\n\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"proposals\": json.ArrayNode(\"proposals\", proposals),\n\t\t\"total\": json.NumberNode(\"total\", float64(props.Total)),\n\t})\n}\n\n// ProposalsResponse is a paginated proposal response\ntype ProposalsResponse struct {\n\tProposals []Proposal `json:\"proposals\"`\n\tTotal uint64 `json:\"total\"`\n}\n\n// Proposal is a single GovDAO proposal\ntype Proposal struct {\n\tAuthor std.Address `json:\"author\"`\n\tDescription string `json:\"description\"`\n\tStatus dao.ProposalStatus `json:\"status\"`\n\tStats dao.Stats `json:\"stats\"`\n\tIsExpired bool `json:\"is_expired\"`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0OUQ8DZPZnu2v4oPy3GyuFg6FpUwVsjuLbGn/tw8c5nE7E3RqydMGIm0bqaY0y0LfhlwxtqqUdT4THH0ZtsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"debug","path":"gno.land/p/moul/debug","files":[{"name":"debug.gno","body":"// Package debug provides utilities for logging and displaying debug information\n// within Gno realms. It supports conditional rendering of logs and metadata,\n// toggleable via query parameters.\n//\n// Key Features:\n// - Log collection and display using Markdown formatting.\n// - Metadata display for realm path, address, and height.\n// - Collapsible debug section for cleaner presentation.\n// - Query-based debug toggle using `?debug=1`.\npackage debug\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/md\"\n\t\"gno.land/p/moul/mdtable\"\n\t\"gno.land/p/moul/realmpath\"\n)\n\n// Debug encapsulates debug information, including logs and metadata.\ntype Debug struct {\n\tLogs []string\n\tHideMetadata bool\n}\n\n// Log appends a new line of debug information to the Logs slice.\nfunc (d *Debug) Log(line string) {\n\td.Logs = append(d.Logs, line)\n}\n\n// Render generates the debug content as a collapsible Markdown section.\n// It conditionally renders logs and metadata if enabled via the `?debug=1` query parameter.\nfunc (d Debug) Render(path string) string {\n\tif realmpath.Parse(path).Query.Get(\"debug\") != \"1\" {\n\t\treturn \"\"\n\t}\n\n\tvar content string\n\n\tif d.Logs != nil {\n\t\tcontent += md.H3(\"Logs\")\n\t\tcontent += md.BulletList(d.Logs)\n\t}\n\n\tif !d.HideMetadata {\n\t\tcontent += md.H3(\"Metadata\")\n\t\ttable := mdtable.Table{\n\t\t\tHeaders: []string{\"Key\", \"Value\"},\n\t\t}\n\t\ttable.Append([]string{\"`std.CurrentRealm().PkgPath()`\", string(std.CurrentRealm().PkgPath())})\n\t\ttable.Append([]string{\"`std.CurrentRealm().Addr()`\", string(std.CurrentRealm().Addr())})\n\t\ttable.Append([]string{\"`std.PrevRealm().PkgPath()`\", string(std.PrevRealm().PkgPath())})\n\t\ttable.Append([]string{\"`std.PrevRealm().Addr()`\", string(std.PrevRealm().Addr())})\n\t\ttable.Append([]string{\"`std.GetHeight()`\", ufmt.Sprintf(\"%d\", std.GetHeight())})\n\t\ttable.Append([]string{\"`time.Now().Format(time.RFC3339)`\", time.Now().Format(time.RFC3339)})\n\t\tcontent += table.String()\n\t}\n\n\tif content == \"\" {\n\t\treturn \"\"\n\t}\n\n\treturn md.CollapsibleSection(\"debug\", content)\n}\n\n// Render displays metadata about the current realm but does not display logs.\n// This function uses a default Debug struct with metadata enabled and no logs.\nfunc Render(path string) string {\n\treturn Debug{}.Render(path)\n}\n\n// IsEnabled checks if the `?debug=1` query parameter is set in the given path.\n// Returns true if debugging is enabled, otherwise false.\nfunc IsEnabled(path string) bool {\n\treq := realmpath.Parse(path)\n\treturn req.Query.Get(\"debug\") == \"1\"\n}\n\n// ToggleURL modifies the given path's query string to toggle the `?debug=1` parameter.\n// If debugging is currently enabled, it removes the parameter.\n// If debugging is disabled, it adds the parameter.\nfunc ToggleURL(path string) string {\n\treq := realmpath.Parse(path)\n\tif IsEnabled(path) {\n\t\treq.Query.Del(\"debug\")\n\t} else {\n\t\treq.Query.Add(\"debug\", \"1\")\n\t}\n\treturn req.String()\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/p/moul/debug\"\n\nfunc main() {\n\tprintln(\"---\")\n\tprintln(debug.Render(\"\"))\n\tprintln(\"---\")\n\tprintln(debug.Render(\"?debug=1\"))\n\tprintln(\"---\")\n}\n\n// Output:\n// ---\n//\n// ---\n// \u003cdetails\u003e\u003csummary\u003edebug\u003c/summary\u003e\n//\n// ### Metadata\n// | Key | Value |\n// | --- | --- |\n// | `std.CurrentRealm().PkgPath()` | |\n// | `std.CurrentRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.PrevRealm().PkgPath()` | |\n// | `std.PrevRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.GetHeight()` | 123 |\n// | `time.Now().Format(time.RFC3339)` | 2009-02-13T23:31:30Z |\n//\n// \u003c/details\u003e\n//\n// ---\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport \"gno.land/p/moul/debug\"\n\nfunc main() {\n\tvar d debug.Debug\n\td.Log(\"hello world!\")\n\td.Log(\"foobar\")\n\tprintln(\"---\")\n\tprintln(d.Render(\"\"))\n\tprintln(\"---\")\n\tprintln(d.Render(\"?debug=1\"))\n\tprintln(\"---\")\n}\n\n// Output:\n// ---\n//\n// ---\n// \u003cdetails\u003e\u003csummary\u003edebug\u003c/summary\u003e\n//\n// ### Logs\n// - hello world!\n// - foobar\n// ### Metadata\n// | Key | Value |\n// | --- | --- |\n// | `std.CurrentRealm().PkgPath()` | |\n// | `std.CurrentRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.PrevRealm().PkgPath()` | |\n// | `std.PrevRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.GetHeight()` | 123 |\n// | `time.Now().Format(time.RFC3339)` | 2009-02-13T23:31:30Z |\n//\n// \u003c/details\u003e\n//\n// ---\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nG57GGuEfhOFWdACDE/XiEp5VJvjrwAc4TSK2Zc3lAgxPTqfTTabP0iCYmDcf6h5uPql2RMANZL0SwfxL5rdAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"deep","path":"gno.land/r/demo/deep/very/deep","files":[{"name":"render.gno","body":"package deep\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"it works!\"\n\t} else {\n\t\treturn \"hi \" + path\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2yzAzuPBwXNWUp1uleHuXkXApMAYgAZm04RvhVnTuYgk+puRPPuo59Rk3ejtWVZY2EVCDkdn/WdNtGh95LuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"deep","path":"gno.land/r/demo/deep/very/deep","files":[{"name":"render.gno","body":"package deep\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"it works!\"\n\t} else {\n\t\treturn \"hi \" + path\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2yzAzuPBwXNWUp1uleHuXkXApMAYgAZm04RvhVnTuYgk+puRPPuo59Rk3ejtWVZY2EVCDkdn/WdNtGh95LuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"deep","path":"gno.land/r/demo/deep/very/deep","files":[{"name":"render.gno","body":"package deep\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"it works!\"\n\t} else {\n\t\treturn \"hi \" + path\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s2yzAzuPBwXNWUp1uleHuXkXApMAYgAZm04RvhVnTuYgk+puRPPuo59Rk3ejtWVZY2EVCDkdn/WdNtGh95LuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dice_roller","path":"gno.land/r/demo/games/dice_roller","files":[{"name":"dice_roller.gno","body":"package dice_roller\n\nimport (\n\t\"errors\"\n\t\"math/rand\"\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\ntype (\n\t// game represents a Dice Roller game between two players\n\tgame struct {\n\t\tplayer1, player2 std.Address\n\t\troll1, roll2 int\n\t}\n\n\t// player holds the information about each player including their stats\n\tplayer struct {\n\t\taddr std.Address\n\t\twins, losses, draws, points int\n\t}\n\n\t// leaderBoard is a slice of players, used to sort players by rank\n\tleaderBoard []player\n)\n\nconst (\n\t// Constants to represent game result outcomes\n\tongoing = iota\n\twin\n\tdraw\n\tloss\n)\n\nvar (\n\tgames avl.Tree // AVL tree for storing game states\n\tgameId seqid.ID // Sequence ID for games\n\n\tplayers avl.Tree // AVL tree for storing player data\n\n\tseed = uint64(entropy.New().Seed())\n\tr = rand.New(rand.NewPCG(seed, 0xdeadbeef))\n)\n\n// rollDice generates a random dice roll between 1 and 6\nfunc rollDice() int {\n\treturn r.IntN(6) + 1\n}\n\n// NewGame initializes a new game with the provided opponent's address\nfunc NewGame(addr std.Address) int {\n\tif !addr.IsValid() {\n\t\tpanic(\"invalid opponent's address\")\n\t}\n\n\tgames.Set(gameId.Next().String(), \u0026game{\n\t\tplayer1: std.PrevRealm().Addr(),\n\t\tplayer2: addr,\n\t})\n\n\treturn int(gameId)\n}\n\n// Play allows a player to roll the dice and updates the game state accordingly\nfunc Play(idx int) int {\n\tg, err := getGame(idx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\troll := rollDice() // Random the player's dice roll\n\n\t// Play the game and update the player's roll\n\tif err := g.play(std.PrevRealm().Addr(), roll); err != nil {\n\t\tpanic(err)\n\t}\n\n\t// If both players have rolled, update the results and leaderboard\n\tif g.isFinished() {\n\t\t// If the player is playing against themselves, no points are awarded\n\t\tif g.player1 == g.player2 {\n\t\t\treturn roll\n\t\t}\n\n\t\tplayer1 := getPlayer(g.player1)\n\t\tplayer2 := getPlayer(g.player2)\n\n\t\tif g.roll1 \u003e g.roll2 {\n\t\t\tplayer1.updateStats(win)\n\t\t\tplayer2.updateStats(loss)\n\t\t} else if g.roll2 \u003e g.roll1 {\n\t\t\tplayer2.updateStats(win)\n\t\t\tplayer1.updateStats(loss)\n\t\t} else {\n\t\t\tplayer1.updateStats(draw)\n\t\t\tplayer2.updateStats(draw)\n\t\t}\n\t}\n\n\treturn roll\n}\n\n// play processes a player's roll and updates their score\nfunc (g *game) play(player std.Address, roll int) error {\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\n\tif g.isFinished() {\n\t\treturn errors.New(\"game over\")\n\t}\n\n\tif player == g.player1 \u0026\u0026 g.roll1 == 0 {\n\t\tg.roll1 = roll\n\t\treturn nil\n\t}\n\n\tif player == g.player2 \u0026\u0026 g.roll2 == 0 {\n\t\tg.roll2 = roll\n\t\treturn nil\n\t}\n\n\treturn errors.New(\"already played\")\n}\n\n// isFinished checks if the game has ended\nfunc (g *game) isFinished() bool {\n\treturn g.roll1 != 0 \u0026\u0026 g.roll2 != 0\n}\n\n// checkResult returns the game status as a formatted string\nfunc (g *game) status() string {\n\tif !g.isFinished() {\n\t\treturn resultIcon(ongoing) + \" Game still in progress\"\n\t}\n\n\tif g.roll1 \u003e g.roll2 {\n\t\treturn resultIcon(win) + \" Player1 Wins !\"\n\t} else if g.roll2 \u003e g.roll1 {\n\t\treturn resultIcon(win) + \" Player2 Wins !\"\n\t} else {\n\t\treturn resultIcon(draw) + \" It's a Draw !\"\n\t}\n}\n\n// Render provides a summary of the current state of games and leader board\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(`# 🎲 **Dice Roller Game**\n\nWelcome to Dice Roller! Challenge your friends to a simple yet exciting dice rolling game. Roll the dice and see who gets the highest score !\n\n---\n\n## **How to Play**:\n1. **Create a game**: Challenge an opponent using [NewGame](./dice_roller$help\u0026func=NewGame)\n2. **Roll the dice**: Play your turn by rolling a dice using [Play](./dice_roller$help\u0026func=Play)\n\n---\n\n## **Scoring Rules**:\n- **Win** 🏆: +3 points\n- **Draw** 🤝: +1 point each\n- **Lose** ❌: No points\n- **Playing against yourself**: No points or stats changes for you\n\n---\n\n## **Recent Games**:\nBelow are the results from the most recent games. Up to 10 recent games are displayed\n\n| Game | Player 1 | 🎲 Roll 1 | Player 2 | 🎲 Roll 2 | 🏆 Winner |\n|------|----------|-----------|----------|-----------|-----------|\n`)\n\n\tmaxGames := 10\n\tfor n := int(gameId); n \u003e 0 \u0026\u0026 int(gameId)-n \u003c maxGames; n-- {\n\t\tg, err := getGame(n)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tsb.WriteString(strconv.Itoa(n) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player1) + \"\\\"\u003e\" + shortName(g.player1) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll1) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player2) + \"\\\"\u003e\" + shortName(g.player2) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll2) + \" | \" +\n\t\t\tg.status() + \"\\n\")\n\t}\n\n\tsb.WriteString(`\n---\n\n## **Leaderboard**:\nThe top players are ranked by performance. Games played against oneself are not counted in the leaderboard\n\n| Rank | Player | Wins | Losses | Draws | Points |\n|------|-----------------------|------|--------|-------|--------|\n`)\n\n\tfor i, player := range getLeaderBoard() {\n\t\tsb.WriteString(ufmt.Sprintf(\"| %s | \u003cspan title=\\\"\"+string(player.addr)+\"\\\"\u003e**%s**\u003c/span\u003e | %d | %d | %d | %d |\\n\",\n\t\t\trankIcon(i+1),\n\t\t\tshortName(player.addr),\n\t\t\tplayer.wins,\n\t\t\tplayer.losses,\n\t\t\tplayer.draws,\n\t\t\tplayer.points,\n\t\t))\n\t}\n\n\tsb.WriteString(\"\\n---\\n**Good luck and have fun !** 🎉\")\n\treturn sb.String()\n}\n\n// shortName returns a shortened name for the given address\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n\n// getGame retrieves the game state by its ID\nfunc getGame(idx int) (*game, error) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\treturn nil, errors.New(\"game not found\")\n\t}\n\treturn v.(*game), nil\n}\n\n// updateResult updates the player's stats and points based on the game outcome\nfunc (p *player) updateStats(result int) {\n\tswitch result {\n\tcase win:\n\t\tp.wins++\n\t\tp.points += 3\n\tcase loss:\n\t\tp.losses++\n\tcase draw:\n\t\tp.draws++\n\t\tp.points++\n\t}\n}\n\n// getPlayer retrieves a player or initializes a new one if they don't exist\nfunc getPlayer(addr std.Address) *player {\n\tv, ok := players.Get(addr.String())\n\tif !ok {\n\t\tplayer := \u0026player{\n\t\t\taddr: addr,\n\t\t}\n\t\tplayers.Set(addr.String(), player)\n\t\treturn player\n\t}\n\n\treturn v.(*player)\n}\n\n// getLeaderBoard generates a leaderboard sorted by points\nfunc getLeaderBoard() leaderBoard {\n\tboard := leaderBoard{}\n\tplayers.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tplayer := value.(*player)\n\t\tboard = append(board, *player)\n\t\treturn false\n\t})\n\n\tsort.Sort(board)\n\n\treturn board\n}\n\n// Methods for sorting the leaderboard\nfunc (r leaderBoard) Len() int {\n\treturn len(r)\n}\n\nfunc (r leaderBoard) Less(i, j int) bool {\n\tif r[i].points != r[j].points {\n\t\treturn r[i].points \u003e r[j].points\n\t}\n\n\tif r[i].wins != r[j].wins {\n\t\treturn r[i].wins \u003e r[j].wins\n\t}\n\n\tif r[i].draws != r[j].draws {\n\t\treturn r[i].draws \u003e r[j].draws\n\t}\n\n\treturn false\n}\n\nfunc (r leaderBoard) Swap(i, j int) {\n\tr[i], r[j] = r[j], r[i]\n}\n"},{"name":"dice_roller_test.gno","body":"package dice_roller\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tplayer1 = testutils.TestAddress(\"alice\")\n\tplayer2 = testutils.TestAddress(\"bob\")\n\tunknownPlayer = testutils.TestAddress(\"unknown\")\n)\n\n// resetGameState resets the game state for testing\nfunc resetGameState() {\n\tgames = avl.Tree{}\n\tgameId = seqid.ID(0)\n\tplayers = avl.Tree{}\n}\n\n// TestNewGame tests the initialization of a new game\nfunc TestNewGame(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Verify that the game has been correctly initialized\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, player1.String(), g.player1.String())\n\turequire.Equal(t, player2.String(), g.player2.String())\n\turequire.Equal(t, 0, g.roll1)\n\turequire.Equal(t, 0, g.roll2)\n}\n\n// TestPlay tests the dice rolling functionality for both players\nfunc TestPlay(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Simulate rolling dice for player 1\n\troll1 := Play(gameID)\n\n\t// Verify player 1's roll\n\turequire.NotEqual(t, 0, g.roll1)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, 0, g.roll2) // Player 2 hasn't rolled yet\n\n\t// Simulate rolling dice for player 2\n\tstd.TestSetOrigCaller(player2)\n\troll2 := Play(gameID)\n\n\t// Verify player 2's roll\n\turequire.NotEqual(t, 0, g.roll2)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayAgainstSelf tests the scenario where a player plays against themselves\nfunc TestPlayAgainstSelf(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Simulate rolling dice twice by the same player\n\troll1 := Play(gameID)\n\troll2 := Play(gameID)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayInvalidPlayer tests the scenario where an invalid player tries to play\nfunc TestPlayInvalidPlayer(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Attempt to play as an invalid player\n\tstd.TestSetOrigCaller(unknownPlayer)\n\turequire.PanicsWithMessage(t, \"invalid player\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayAlreadyPlayed tests the scenario where a player tries to play again after already playing\nfunc TestPlayAlreadyPlayed(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Player 1 rolls\n\tPlay(gameID)\n\n\t// Player 1 tries to roll again\n\turequire.PanicsWithMessage(t, \"already played\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayBeyondGameEnd tests that playing after both players have finished their rolls fails\nfunc TestPlayBeyondGameEnd(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Play for both players\n\tstd.TestSetOrigCaller(player1)\n\tPlay(gameID)\n\tstd.TestSetOrigCaller(player2)\n\tPlay(gameID)\n\n\t// Check if the game is over\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Attempt to play more should fail\n\tstd.TestSetOrigCaller(player1)\n\turequire.PanicsWithMessage(t, \"game over\", func() {\n\t\tPlay(gameID)\n\t})\n}\n"},{"name":"icon.gno","body":"package dice_roller\n\nimport (\n\t\"strconv\"\n)\n\n// diceIcon returns an icon of the dice roll\nfunc diceIcon(roll int) string {\n\tswitch roll {\n\tcase 1:\n\t\treturn \"🎲1\"\n\tcase 2:\n\t\treturn \"🎲2\"\n\tcase 3:\n\t\treturn \"🎲3\"\n\tcase 4:\n\t\treturn \"🎲4\"\n\tcase 5:\n\t\treturn \"🎲5\"\n\tcase 6:\n\t\treturn \"🎲6\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// resultIcon returns the icon representing the result of a game\nfunc resultIcon(result int) string {\n\tswitch result {\n\tcase ongoing:\n\t\treturn \"🔄\"\n\tcase win:\n\t\treturn \"🏆\"\n\tcase loss:\n\t\treturn \"❌\"\n\tcase draw:\n\t\treturn \"🤝\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// rankIcon returns the icon for a player's rank\nfunc rankIcon(rank int) string {\n\tswitch rank {\n\tcase 1:\n\t\treturn \"🥇\"\n\tcase 2:\n\t\treturn \"🥈\"\n\tcase 3:\n\t\treturn \"🥉\"\n\tdefault:\n\t\treturn strconv.Itoa(rank)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kf8Gwe2a4SBSk1dIjQ+zgL728xUK4gdB1brfcRbD7rk0l4iJqebemN7jFqkaRy7cG5F4/qNmycQKgbNghkQHDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dice_roller","path":"gno.land/r/demo/games/dice_roller","files":[{"name":"dice_roller.gno","body":"package dice_roller\n\nimport (\n\t\"errors\"\n\t\"math/rand\"\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\ntype (\n\t// game represents a Dice Roller game between two players\n\tgame struct {\n\t\tplayer1, player2 std.Address\n\t\troll1, roll2 int\n\t}\n\n\t// player holds the information about each player including their stats\n\tplayer struct {\n\t\taddr std.Address\n\t\twins, losses, draws, points int\n\t}\n\n\t// leaderBoard is a slice of players, used to sort players by rank\n\tleaderBoard []player\n)\n\nconst (\n\t// Constants to represent game result outcomes\n\tongoing = iota\n\twin\n\tdraw\n\tloss\n)\n\nvar (\n\tgames avl.Tree // AVL tree for storing game states\n\tgameId seqid.ID // Sequence ID for games\n\n\tplayers avl.Tree // AVL tree for storing player data\n\n\tseed = uint64(entropy.New().Seed())\n\tr = rand.New(rand.NewPCG(seed, 0xdeadbeef))\n)\n\n// rollDice generates a random dice roll between 1 and 6\nfunc rollDice() int {\n\treturn r.IntN(6) + 1\n}\n\n// NewGame initializes a new game with the provided opponent's address\nfunc NewGame(addr std.Address) int {\n\tif !addr.IsValid() {\n\t\tpanic(\"invalid opponent's address\")\n\t}\n\n\tgames.Set(gameId.Next().String(), \u0026game{\n\t\tplayer1: std.PrevRealm().Addr(),\n\t\tplayer2: addr,\n\t})\n\n\treturn int(gameId)\n}\n\n// Play allows a player to roll the dice and updates the game state accordingly\nfunc Play(idx int) int {\n\tg, err := getGame(idx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\troll := rollDice() // Random the player's dice roll\n\n\t// Play the game and update the player's roll\n\tif err := g.play(std.PrevRealm().Addr(), roll); err != nil {\n\t\tpanic(err)\n\t}\n\n\t// If both players have rolled, update the results and leaderboard\n\tif g.isFinished() {\n\t\t// If the player is playing against themselves, no points are awarded\n\t\tif g.player1 == g.player2 {\n\t\t\treturn roll\n\t\t}\n\n\t\tplayer1 := getPlayer(g.player1)\n\t\tplayer2 := getPlayer(g.player2)\n\n\t\tif g.roll1 \u003e g.roll2 {\n\t\t\tplayer1.updateStats(win)\n\t\t\tplayer2.updateStats(loss)\n\t\t} else if g.roll2 \u003e g.roll1 {\n\t\t\tplayer2.updateStats(win)\n\t\t\tplayer1.updateStats(loss)\n\t\t} else {\n\t\t\tplayer1.updateStats(draw)\n\t\t\tplayer2.updateStats(draw)\n\t\t}\n\t}\n\n\treturn roll\n}\n\n// play processes a player's roll and updates their score\nfunc (g *game) play(player std.Address, roll int) error {\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\n\tif g.isFinished() {\n\t\treturn errors.New(\"game over\")\n\t}\n\n\tif player == g.player1 \u0026\u0026 g.roll1 == 0 {\n\t\tg.roll1 = roll\n\t\treturn nil\n\t}\n\n\tif player == g.player2 \u0026\u0026 g.roll2 == 0 {\n\t\tg.roll2 = roll\n\t\treturn nil\n\t}\n\n\treturn errors.New(\"already played\")\n}\n\n// isFinished checks if the game has ended\nfunc (g *game) isFinished() bool {\n\treturn g.roll1 != 0 \u0026\u0026 g.roll2 != 0\n}\n\n// checkResult returns the game status as a formatted string\nfunc (g *game) status() string {\n\tif !g.isFinished() {\n\t\treturn resultIcon(ongoing) + \" Game still in progress\"\n\t}\n\n\tif g.roll1 \u003e g.roll2 {\n\t\treturn resultIcon(win) + \" Player1 Wins !\"\n\t} else if g.roll2 \u003e g.roll1 {\n\t\treturn resultIcon(win) + \" Player2 Wins !\"\n\t} else {\n\t\treturn resultIcon(draw) + \" It's a Draw !\"\n\t}\n}\n\n// Render provides a summary of the current state of games and leader board\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(`# 🎲 **Dice Roller Game**\n\nWelcome to Dice Roller! Challenge your friends to a simple yet exciting dice rolling game. Roll the dice and see who gets the highest score !\n\n---\n\n## **How to Play**:\n1. **Create a game**: Challenge an opponent using [NewGame](./dice_roller$help\u0026func=NewGame)\n2. **Roll the dice**: Play your turn by rolling a dice using [Play](./dice_roller$help\u0026func=Play)\n\n---\n\n## **Scoring Rules**:\n- **Win** 🏆: +3 points\n- **Draw** 🤝: +1 point each\n- **Lose** ❌: No points\n- **Playing against yourself**: No points or stats changes for you\n\n---\n\n## **Recent Games**:\nBelow are the results from the most recent games. Up to 10 recent games are displayed\n\n| Game | Player 1 | 🎲 Roll 1 | Player 2 | 🎲 Roll 2 | 🏆 Winner |\n|------|----------|-----------|----------|-----------|-----------|\n`)\n\n\tmaxGames := 10\n\tfor n := int(gameId); n \u003e 0 \u0026\u0026 int(gameId)-n \u003c maxGames; n-- {\n\t\tg, err := getGame(n)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tsb.WriteString(strconv.Itoa(n) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player1) + \"\\\"\u003e\" + shortName(g.player1) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll1) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player2) + \"\\\"\u003e\" + shortName(g.player2) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll2) + \" | \" +\n\t\t\tg.status() + \"\\n\")\n\t}\n\n\tsb.WriteString(`\n---\n\n## **Leaderboard**:\nThe top players are ranked by performance. Games played against oneself are not counted in the leaderboard\n\n| Rank | Player | Wins | Losses | Draws | Points |\n|------|-----------------------|------|--------|-------|--------|\n`)\n\n\tfor i, player := range getLeaderBoard() {\n\t\tsb.WriteString(ufmt.Sprintf(\"| %s | \u003cspan title=\\\"\"+string(player.addr)+\"\\\"\u003e**%s**\u003c/span\u003e | %d | %d | %d | %d |\\n\",\n\t\t\trankIcon(i+1),\n\t\t\tshortName(player.addr),\n\t\t\tplayer.wins,\n\t\t\tplayer.losses,\n\t\t\tplayer.draws,\n\t\t\tplayer.points,\n\t\t))\n\t}\n\n\tsb.WriteString(\"\\n---\\n**Good luck and have fun !** 🎉\")\n\treturn sb.String()\n}\n\n// shortName returns a shortened name for the given address\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n\n// getGame retrieves the game state by its ID\nfunc getGame(idx int) (*game, error) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\treturn nil, errors.New(\"game not found\")\n\t}\n\treturn v.(*game), nil\n}\n\n// updateResult updates the player's stats and points based on the game outcome\nfunc (p *player) updateStats(result int) {\n\tswitch result {\n\tcase win:\n\t\tp.wins++\n\t\tp.points += 3\n\tcase loss:\n\t\tp.losses++\n\tcase draw:\n\t\tp.draws++\n\t\tp.points++\n\t}\n}\n\n// getPlayer retrieves a player or initializes a new one if they don't exist\nfunc getPlayer(addr std.Address) *player {\n\tv, ok := players.Get(addr.String())\n\tif !ok {\n\t\tplayer := \u0026player{\n\t\t\taddr: addr,\n\t\t}\n\t\tplayers.Set(addr.String(), player)\n\t\treturn player\n\t}\n\n\treturn v.(*player)\n}\n\n// getLeaderBoard generates a leaderboard sorted by points\nfunc getLeaderBoard() leaderBoard {\n\tboard := leaderBoard{}\n\tplayers.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tplayer := value.(*player)\n\t\tboard = append(board, *player)\n\t\treturn false\n\t})\n\n\tsort.Sort(board)\n\n\treturn board\n}\n\n// Methods for sorting the leaderboard\nfunc (r leaderBoard) Len() int {\n\treturn len(r)\n}\n\nfunc (r leaderBoard) Less(i, j int) bool {\n\tif r[i].points != r[j].points {\n\t\treturn r[i].points \u003e r[j].points\n\t}\n\n\tif r[i].wins != r[j].wins {\n\t\treturn r[i].wins \u003e r[j].wins\n\t}\n\n\tif r[i].draws != r[j].draws {\n\t\treturn r[i].draws \u003e r[j].draws\n\t}\n\n\treturn false\n}\n\nfunc (r leaderBoard) Swap(i, j int) {\n\tr[i], r[j] = r[j], r[i]\n}\n"},{"name":"dice_roller_test.gno","body":"package dice_roller\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tplayer1 = testutils.TestAddress(\"alice\")\n\tplayer2 = testutils.TestAddress(\"bob\")\n\tunknownPlayer = testutils.TestAddress(\"unknown\")\n)\n\n// resetGameState resets the game state for testing\nfunc resetGameState() {\n\tgames = avl.Tree{}\n\tgameId = seqid.ID(0)\n\tplayers = avl.Tree{}\n}\n\n// TestNewGame tests the initialization of a new game\nfunc TestNewGame(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Verify that the game has been correctly initialized\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, player1.String(), g.player1.String())\n\turequire.Equal(t, player2.String(), g.player2.String())\n\turequire.Equal(t, 0, g.roll1)\n\turequire.Equal(t, 0, g.roll2)\n}\n\n// TestPlay tests the dice rolling functionality for both players\nfunc TestPlay(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Simulate rolling dice for player 1\n\troll1 := Play(gameID)\n\n\t// Verify player 1's roll\n\turequire.NotEqual(t, 0, g.roll1)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, 0, g.roll2) // Player 2 hasn't rolled yet\n\n\t// Simulate rolling dice for player 2\n\tstd.TestSetOrigCaller(player2)\n\troll2 := Play(gameID)\n\n\t// Verify player 2's roll\n\turequire.NotEqual(t, 0, g.roll2)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayAgainstSelf tests the scenario where a player plays against themselves\nfunc TestPlayAgainstSelf(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Simulate rolling dice twice by the same player\n\troll1 := Play(gameID)\n\troll2 := Play(gameID)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayInvalidPlayer tests the scenario where an invalid player tries to play\nfunc TestPlayInvalidPlayer(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Attempt to play as an invalid player\n\tstd.TestSetOrigCaller(unknownPlayer)\n\turequire.PanicsWithMessage(t, \"invalid player\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayAlreadyPlayed tests the scenario where a player tries to play again after already playing\nfunc TestPlayAlreadyPlayed(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Player 1 rolls\n\tPlay(gameID)\n\n\t// Player 1 tries to roll again\n\turequire.PanicsWithMessage(t, \"already played\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayBeyondGameEnd tests that playing after both players have finished their rolls fails\nfunc TestPlayBeyondGameEnd(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Play for both players\n\tstd.TestSetOrigCaller(player1)\n\tPlay(gameID)\n\tstd.TestSetOrigCaller(player2)\n\tPlay(gameID)\n\n\t// Check if the game is over\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Attempt to play more should fail\n\tstd.TestSetOrigCaller(player1)\n\turequire.PanicsWithMessage(t, \"game over\", func() {\n\t\tPlay(gameID)\n\t})\n}\n"},{"name":"icon.gno","body":"package dice_roller\n\nimport (\n\t\"strconv\"\n)\n\n// diceIcon returns an icon of the dice roll\nfunc diceIcon(roll int) string {\n\tswitch roll {\n\tcase 1:\n\t\treturn \"🎲1\"\n\tcase 2:\n\t\treturn \"🎲2\"\n\tcase 3:\n\t\treturn \"🎲3\"\n\tcase 4:\n\t\treturn \"🎲4\"\n\tcase 5:\n\t\treturn \"🎲5\"\n\tcase 6:\n\t\treturn \"🎲6\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// resultIcon returns the icon representing the result of a game\nfunc resultIcon(result int) string {\n\tswitch result {\n\tcase ongoing:\n\t\treturn \"🔄\"\n\tcase win:\n\t\treturn \"🏆\"\n\tcase loss:\n\t\treturn \"❌\"\n\tcase draw:\n\t\treturn \"🤝\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// rankIcon returns the icon for a player's rank\nfunc rankIcon(rank int) string {\n\tswitch rank {\n\tcase 1:\n\t\treturn \"🥇\"\n\tcase 2:\n\t\treturn \"🥈\"\n\tcase 3:\n\t\treturn \"🥉\"\n\tdefault:\n\t\treturn strconv.Itoa(rank)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kf8Gwe2a4SBSk1dIjQ+zgL728xUK4gdB1brfcRbD7rk0l4iJqebemN7jFqkaRy7cG5F4/qNmycQKgbNghkQHDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dice_roller","path":"gno.land/r/demo/games/dice_roller","files":[{"name":"dice_roller.gno","body":"package dice_roller\n\nimport (\n\t\"errors\"\n\t\"math/rand\"\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\ntype (\n\t// game represents a Dice Roller game between two players\n\tgame struct {\n\t\tplayer1, player2 std.Address\n\t\troll1, roll2 int\n\t}\n\n\t// player holds the information about each player including their stats\n\tplayer struct {\n\t\taddr std.Address\n\t\twins, losses, draws, points int\n\t}\n\n\t// leaderBoard is a slice of players, used to sort players by rank\n\tleaderBoard []player\n)\n\nconst (\n\t// Constants to represent game result outcomes\n\tongoing = iota\n\twin\n\tdraw\n\tloss\n)\n\nvar (\n\tgames avl.Tree // AVL tree for storing game states\n\tgameId seqid.ID // Sequence ID for games\n\n\tplayers avl.Tree // AVL tree for storing player data\n\n\tseed = uint64(entropy.New().Seed())\n\tr = rand.New(rand.NewPCG(seed, 0xdeadbeef))\n)\n\n// rollDice generates a random dice roll between 1 and 6\nfunc rollDice() int {\n\treturn r.IntN(6) + 1\n}\n\n// NewGame initializes a new game with the provided opponent's address\nfunc NewGame(addr std.Address) int {\n\tif !addr.IsValid() {\n\t\tpanic(\"invalid opponent's address\")\n\t}\n\n\tgames.Set(gameId.Next().String(), \u0026game{\n\t\tplayer1: std.PrevRealm().Addr(),\n\t\tplayer2: addr,\n\t})\n\n\treturn int(gameId)\n}\n\n// Play allows a player to roll the dice and updates the game state accordingly\nfunc Play(idx int) int {\n\tg, err := getGame(idx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\troll := rollDice() // Random the player's dice roll\n\n\t// Play the game and update the player's roll\n\tif err := g.play(std.PrevRealm().Addr(), roll); err != nil {\n\t\tpanic(err)\n\t}\n\n\t// If both players have rolled, update the results and leaderboard\n\tif g.isFinished() {\n\t\t// If the player is playing against themselves, no points are awarded\n\t\tif g.player1 == g.player2 {\n\t\t\treturn roll\n\t\t}\n\n\t\tplayer1 := getPlayer(g.player1)\n\t\tplayer2 := getPlayer(g.player2)\n\n\t\tif g.roll1 \u003e g.roll2 {\n\t\t\tplayer1.updateStats(win)\n\t\t\tplayer2.updateStats(loss)\n\t\t} else if g.roll2 \u003e g.roll1 {\n\t\t\tplayer2.updateStats(win)\n\t\t\tplayer1.updateStats(loss)\n\t\t} else {\n\t\t\tplayer1.updateStats(draw)\n\t\t\tplayer2.updateStats(draw)\n\t\t}\n\t}\n\n\treturn roll\n}\n\n// play processes a player's roll and updates their score\nfunc (g *game) play(player std.Address, roll int) error {\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\n\tif g.isFinished() {\n\t\treturn errors.New(\"game over\")\n\t}\n\n\tif player == g.player1 \u0026\u0026 g.roll1 == 0 {\n\t\tg.roll1 = roll\n\t\treturn nil\n\t}\n\n\tif player == g.player2 \u0026\u0026 g.roll2 == 0 {\n\t\tg.roll2 = roll\n\t\treturn nil\n\t}\n\n\treturn errors.New(\"already played\")\n}\n\n// isFinished checks if the game has ended\nfunc (g *game) isFinished() bool {\n\treturn g.roll1 != 0 \u0026\u0026 g.roll2 != 0\n}\n\n// checkResult returns the game status as a formatted string\nfunc (g *game) status() string {\n\tif !g.isFinished() {\n\t\treturn resultIcon(ongoing) + \" Game still in progress\"\n\t}\n\n\tif g.roll1 \u003e g.roll2 {\n\t\treturn resultIcon(win) + \" Player1 Wins !\"\n\t} else if g.roll2 \u003e g.roll1 {\n\t\treturn resultIcon(win) + \" Player2 Wins !\"\n\t} else {\n\t\treturn resultIcon(draw) + \" It's a Draw !\"\n\t}\n}\n\n// Render provides a summary of the current state of games and leader board\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(`# 🎲 **Dice Roller Game**\n\nWelcome to Dice Roller! Challenge your friends to a simple yet exciting dice rolling game. Roll the dice and see who gets the highest score !\n\n---\n\n## **How to Play**:\n1. **Create a game**: Challenge an opponent using [NewGame](./dice_roller$help\u0026func=NewGame)\n2. **Roll the dice**: Play your turn by rolling a dice using [Play](./dice_roller$help\u0026func=Play)\n\n---\n\n## **Scoring Rules**:\n- **Win** 🏆: +3 points\n- **Draw** 🤝: +1 point each\n- **Lose** ❌: No points\n- **Playing against yourself**: No points or stats changes for you\n\n---\n\n## **Recent Games**:\nBelow are the results from the most recent games. Up to 10 recent games are displayed\n\n| Game | Player 1 | 🎲 Roll 1 | Player 2 | 🎲 Roll 2 | 🏆 Winner |\n|------|----------|-----------|----------|-----------|-----------|\n`)\n\n\tmaxGames := 10\n\tfor n := int(gameId); n \u003e 0 \u0026\u0026 int(gameId)-n \u003c maxGames; n-- {\n\t\tg, err := getGame(n)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tsb.WriteString(strconv.Itoa(n) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player1) + \"\\\"\u003e\" + shortName(g.player1) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll1) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player2) + \"\\\"\u003e\" + shortName(g.player2) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll2) + \" | \" +\n\t\t\tg.status() + \"\\n\")\n\t}\n\n\tsb.WriteString(`\n---\n\n## **Leaderboard**:\nThe top players are ranked by performance. Games played against oneself are not counted in the leaderboard\n\n| Rank | Player | Wins | Losses | Draws | Points |\n|------|-----------------------|------|--------|-------|--------|\n`)\n\n\tfor i, player := range getLeaderBoard() {\n\t\tsb.WriteString(ufmt.Sprintf(\"| %s | \u003cspan title=\\\"\"+string(player.addr)+\"\\\"\u003e**%s**\u003c/span\u003e | %d | %d | %d | %d |\\n\",\n\t\t\trankIcon(i+1),\n\t\t\tshortName(player.addr),\n\t\t\tplayer.wins,\n\t\t\tplayer.losses,\n\t\t\tplayer.draws,\n\t\t\tplayer.points,\n\t\t))\n\t}\n\n\tsb.WriteString(\"\\n---\\n**Good luck and have fun !** 🎉\")\n\treturn sb.String()\n}\n\n// shortName returns a shortened name for the given address\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n\n// getGame retrieves the game state by its ID\nfunc getGame(idx int) (*game, error) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\treturn nil, errors.New(\"game not found\")\n\t}\n\treturn v.(*game), nil\n}\n\n// updateResult updates the player's stats and points based on the game outcome\nfunc (p *player) updateStats(result int) {\n\tswitch result {\n\tcase win:\n\t\tp.wins++\n\t\tp.points += 3\n\tcase loss:\n\t\tp.losses++\n\tcase draw:\n\t\tp.draws++\n\t\tp.points++\n\t}\n}\n\n// getPlayer retrieves a player or initializes a new one if they don't exist\nfunc getPlayer(addr std.Address) *player {\n\tv, ok := players.Get(addr.String())\n\tif !ok {\n\t\tplayer := \u0026player{\n\t\t\taddr: addr,\n\t\t}\n\t\tplayers.Set(addr.String(), player)\n\t\treturn player\n\t}\n\n\treturn v.(*player)\n}\n\n// getLeaderBoard generates a leaderboard sorted by points\nfunc getLeaderBoard() leaderBoard {\n\tboard := leaderBoard{}\n\tplayers.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tplayer := value.(*player)\n\t\tboard = append(board, *player)\n\t\treturn false\n\t})\n\n\tsort.Sort(board)\n\n\treturn board\n}\n\n// Methods for sorting the leaderboard\nfunc (r leaderBoard) Len() int {\n\treturn len(r)\n}\n\nfunc (r leaderBoard) Less(i, j int) bool {\n\tif r[i].points != r[j].points {\n\t\treturn r[i].points \u003e r[j].points\n\t}\n\n\tif r[i].wins != r[j].wins {\n\t\treturn r[i].wins \u003e r[j].wins\n\t}\n\n\tif r[i].draws != r[j].draws {\n\t\treturn r[i].draws \u003e r[j].draws\n\t}\n\n\treturn false\n}\n\nfunc (r leaderBoard) Swap(i, j int) {\n\tr[i], r[j] = r[j], r[i]\n}\n"},{"name":"dice_roller_test.gno","body":"package dice_roller\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tplayer1 = testutils.TestAddress(\"alice\")\n\tplayer2 = testutils.TestAddress(\"bob\")\n\tunknownPlayer = testutils.TestAddress(\"unknown\")\n)\n\n// resetGameState resets the game state for testing\nfunc resetGameState() {\n\tgames = avl.Tree{}\n\tgameId = seqid.ID(0)\n\tplayers = avl.Tree{}\n}\n\n// TestNewGame tests the initialization of a new game\nfunc TestNewGame(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Verify that the game has been correctly initialized\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, player1.String(), g.player1.String())\n\turequire.Equal(t, player2.String(), g.player2.String())\n\turequire.Equal(t, 0, g.roll1)\n\turequire.Equal(t, 0, g.roll2)\n}\n\n// TestPlay tests the dice rolling functionality for both players\nfunc TestPlay(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Simulate rolling dice for player 1\n\troll1 := Play(gameID)\n\n\t// Verify player 1's roll\n\turequire.NotEqual(t, 0, g.roll1)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, 0, g.roll2) // Player 2 hasn't rolled yet\n\n\t// Simulate rolling dice for player 2\n\tstd.TestSetOrigCaller(player2)\n\troll2 := Play(gameID)\n\n\t// Verify player 2's roll\n\turequire.NotEqual(t, 0, g.roll2)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayAgainstSelf tests the scenario where a player plays against themselves\nfunc TestPlayAgainstSelf(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Simulate rolling dice twice by the same player\n\troll1 := Play(gameID)\n\troll2 := Play(gameID)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayInvalidPlayer tests the scenario where an invalid player tries to play\nfunc TestPlayInvalidPlayer(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Attempt to play as an invalid player\n\tstd.TestSetOrigCaller(unknownPlayer)\n\turequire.PanicsWithMessage(t, \"invalid player\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayAlreadyPlayed tests the scenario where a player tries to play again after already playing\nfunc TestPlayAlreadyPlayed(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Player 1 rolls\n\tPlay(gameID)\n\n\t// Player 1 tries to roll again\n\turequire.PanicsWithMessage(t, \"already played\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayBeyondGameEnd tests that playing after both players have finished their rolls fails\nfunc TestPlayBeyondGameEnd(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Play for both players\n\tstd.TestSetOrigCaller(player1)\n\tPlay(gameID)\n\tstd.TestSetOrigCaller(player2)\n\tPlay(gameID)\n\n\t// Check if the game is over\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Attempt to play more should fail\n\tstd.TestSetOrigCaller(player1)\n\turequire.PanicsWithMessage(t, \"game over\", func() {\n\t\tPlay(gameID)\n\t})\n}\n"},{"name":"icon.gno","body":"package dice_roller\n\nimport (\n\t\"strconv\"\n)\n\n// diceIcon returns an icon of the dice roll\nfunc diceIcon(roll int) string {\n\tswitch roll {\n\tcase 1:\n\t\treturn \"🎲1\"\n\tcase 2:\n\t\treturn \"🎲2\"\n\tcase 3:\n\t\treturn \"🎲3\"\n\tcase 4:\n\t\treturn \"🎲4\"\n\tcase 5:\n\t\treturn \"🎲5\"\n\tcase 6:\n\t\treturn \"🎲6\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// resultIcon returns the icon representing the result of a game\nfunc resultIcon(result int) string {\n\tswitch result {\n\tcase ongoing:\n\t\treturn \"🔄\"\n\tcase win:\n\t\treturn \"🏆\"\n\tcase loss:\n\t\treturn \"❌\"\n\tcase draw:\n\t\treturn \"🤝\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// rankIcon returns the icon for a player's rank\nfunc rankIcon(rank int) string {\n\tswitch rank {\n\tcase 1:\n\t\treturn \"🥇\"\n\tcase 2:\n\t\treturn \"🥈\"\n\tcase 3:\n\t\treturn \"🥉\"\n\tdefault:\n\t\treturn strconv.Itoa(rank)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kf8Gwe2a4SBSk1dIjQ+zgL728xUK4gdB1brfcRbD7rk0l4iJqebemN7jFqkaRy7cG5F4/qNmycQKgbNghkQHDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"diff","path":"gno.land/p/demo/diff","files":[{"name":"diff.gno","body":"// The diff package implements the Myers diff algorithm to compute the edit distance\n// and generate a minimal edit script between two strings.\n//\n// Edit distance, also known as Levenshtein distance, is a measure of the similarity\n// between two strings. It is defined as the minimum number of single-character edits (insertions,\n// deletions, or substitutions) required to change one string into the other.\npackage diff\n\nimport (\n\t\"strings\"\n)\n\n// EditType represents the type of edit operation in a diff.\ntype EditType uint8\n\nconst (\n\t// EditKeep indicates that a character is unchanged in both strings.\n\tEditKeep EditType = iota\n\n\t// EditInsert indicates that a character was inserted in the new string.\n\tEditInsert\n\n\t// EditDelete indicates that a character was deleted from the old string.\n\tEditDelete\n)\n\n// Edit represent a single edit operation in a diff.\ntype Edit struct {\n\t// Type is the kind of edit operation.\n\tType EditType\n\n\t// Char is the character involved in the edit operation.\n\tChar rune\n}\n\n// MyersDiff computes the difference between two strings using Myers' diff algorithm.\n// It returns a slice of Edit operations that transform the old string into the new string.\n// This implementation finds the shortest edit script (SES) that represents the minimal\n// set of operations to transform one string into the other.\n//\n// The function handles both ASCII and non-ASCII characters correctly.\n//\n// Time complexity: O((N+M)D), where N and M are the lengths of the input strings,\n// and D is the size of the minimum edit script.\n//\n// Space complexity: O((N+M)D)\n//\n// In the worst case, where the strings are completely different, D can be as large as N+M,\n// leading to a time and space complexity of O((N+M)^2). However, for strings with many\n// common substrings, the performance is much better, often closer to O(N+M).\n//\n// Parameters:\n// - old: the original string.\n// - new: the modified string.\n//\n// Returns:\n// - A slice of Edit operations representing the minimum difference between the two strings.\nfunc MyersDiff(old, new string) []Edit {\n\toldRunes, newRunes := []rune(old), []rune(new)\n\tn, m := len(oldRunes), len(newRunes)\n\n\tif n == 0 \u0026\u0026 m == 0 {\n\t\treturn []Edit{}\n\t}\n\n\t// old is empty\n\tif n == 0 {\n\t\tedits := make([]Edit, m)\n\t\tfor i, r := range newRunes {\n\t\t\tedits[i] = Edit{Type: EditInsert, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tif m == 0 {\n\t\tedits := make([]Edit, n)\n\t\tfor i, r := range oldRunes {\n\t\t\tedits[i] = Edit{Type: EditDelete, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tmax := n + m\n\tv := make([]int, 2*max+1)\n\tvar trace [][]int\nsearch:\n\tfor d := 0; d \u003c= max; d++ {\n\t\t// iterate through diagonals\n\t\tfor k := -d; k \u003c= d; k += 2 {\n\t\t\tvar x int\n\t\t\tif k == -d || (k != d \u0026\u0026 v[max+k-1] \u003c v[max+k+1]) {\n\t\t\t\tx = v[max+k+1] // move down\n\t\t\t} else {\n\t\t\t\tx = v[max+k-1] + 1 // move right\n\t\t\t}\n\t\t\ty := x - k\n\n\t\t\t// extend the path as far as possible with matching characters\n\t\t\tfor x \u003c n \u0026\u0026 y \u003c m \u0026\u0026 oldRunes[x] == newRunes[y] {\n\t\t\t\tx++\n\t\t\t\ty++\n\t\t\t}\n\n\t\t\tv[max+k] = x\n\n\t\t\t// check if we've reached the end of both strings\n\t\t\tif x == n \u0026\u0026 y == m {\n\t\t\t\ttrace = append(trace, append([]int(nil), v...))\n\t\t\t\tbreak search\n\t\t\t}\n\t\t}\n\t\ttrace = append(trace, append([]int(nil), v...))\n\t}\n\n\t// backtrack to construct the edit script\n\tedits := make([]Edit, 0, n+m)\n\tx, y := n, m\n\tfor d := len(trace) - 1; d \u003e= 0; d-- {\n\t\tvPrev := trace[d]\n\t\tk := x - y\n\t\tvar prevK int\n\t\tif k == -d || (k != d \u0026\u0026 vPrev[max+k-1] \u003c vPrev[max+k+1]) {\n\t\t\tprevK = k + 1\n\t\t} else {\n\t\t\tprevK = k - 1\n\t\t}\n\t\tprevX := vPrev[max+prevK]\n\t\tprevY := prevX - prevK\n\n\t\t// add keep edits for matching characters\n\t\tfor x \u003e prevX \u0026\u0026 y \u003e prevY {\n\t\t\tif x \u003e 0 \u0026\u0026 y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditKeep, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t\ty--\n\t\t}\n\t\tif y \u003e prevY {\n\t\t\tif y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditInsert, Char: newRunes[y-1]}}, edits...)\n\t\t\t}\n\t\t\ty--\n\t\t} else if x \u003e prevX {\n\t\t\tif x \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditDelete, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t}\n\t}\n\n\treturn edits\n}\n\n// Format converts a slice of Edit operations into a human-readable string representation.\n// It groups consecutive edits of the same type and formats them as follows:\n// - Unchanged characters are left as-is\n// - Inserted characters are wrapped in [+...]\n// - Deleted characters are wrapped in [-...]\n//\n// This function is useful for visualizing the differences between two strings\n// in a compact and intuitive format.\n//\n// Parameters:\n// - edits: A slice of Edit operations, typically produced by MyersDiff\n//\n// Returns:\n// - A formatted string representing the diff\n//\n// Example output:\n//\n//\tFor the diff between \"abcd\" and \"acbd\", the output might be:\n//\t\"a[-b]c[+b]d\"\n//\n// Note:\n//\n//\tThe function assumes that the input slice of edits is in the correct order.\n//\tAn empty input slice will result in an empty string.\nfunc Format(edits []Edit) string {\n\tif len(edits) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar (\n\t\tresult strings.Builder\n\t\tcurrentType EditType\n\t\tcurrentChars strings.Builder\n\t)\n\n\tflushCurrent := func() {\n\t\tif currentChars.Len() \u003e 0 {\n\t\t\tswitch currentType {\n\t\t\tcase EditKeep:\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\tcase EditInsert:\n\t\t\t\tresult.WriteString(\"[+\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\tcase EditDelete:\n\t\t\t\tresult.WriteString(\"[-\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\t}\n\t\t\tcurrentChars.Reset()\n\t\t}\n\t}\n\n\tfor _, edit := range edits {\n\t\tif edit.Type != currentType {\n\t\t\tflushCurrent()\n\t\t\tcurrentType = edit.Type\n\t\t}\n\t\tcurrentChars.WriteRune(edit.Char)\n\t}\n\tflushCurrent()\n\n\treturn result.String()\n}\n"},{"name":"diff_test.gno","body":"package diff\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestMyersDiff(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\told string\n\t\tnew string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"No difference\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"abc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple insertion\",\n\t\t\told: \"ac\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"a[+b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple deletion\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"ac\",\n\t\t\texpected: \"a[-b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple substitution\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abd\",\n\t\t\texpected: \"ab[-c][+d]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Multiple changes\",\n\t\t\told: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tnew: \"The quick brown cat jumps over the lazy dog\",\n\t\t\texpected: \"The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Prefix and suffix\",\n\t\t\told: \"Hello, world!\",\n\t\t\tnew: \"Hello, beautiful world!\",\n\t\t\texpected: \"Hello, [+beautiful ]world!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Complete change\",\n\t\t\told: \"abcdef\",\n\t\t\tnew: \"ghijkl\",\n\t\t\texpected: \"[-abcdef][+ghijkl]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty strings\",\n\t\t\told: \"\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Old empty\",\n\t\t\told: \"\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"[+abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"New empty\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"[-abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"non-ascii (Korean characters)\",\n\t\t\told: \"ASCII 문자가 아닌 것도 되나?\",\n\t\t\tnew: \"ASCII 문자가 아닌 것도 됨.\",\n\t\t\texpected: \"ASCII 문자가 아닌 것도 [-되나?][+됨.]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Emoji diff\",\n\t\t\told: \"Hello 👋 World 🌍\",\n\t\t\tnew: \"Hello 👋 Beautiful 🌸 World 🌍\",\n\t\t\texpected: \"Hello 👋 [+Beautiful 🌸 ]World 🌍\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed multibyte and ASCII\",\n\t\t\told: \"こんにちは World\",\n\t\t\tnew: \"こんばんは World\",\n\t\t\texpected: \"こん[-にち][+ばん]は World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Chinese characters\",\n\t\t\told: \"我喜欢编程\",\n\t\t\tnew: \"我喜欢看书和编程\",\n\t\t\texpected: \"我喜欢[+看书和]编程\",\n\t\t},\n\t\t{\n\t\t\tname: \"Combining characters\",\n\t\t\told: \"e\\u0301\", // é (e + ´)\n\t\t\tnew: \"e\\u0300\", // è (e + `)\n\t\t\texpected: \"e[-\\u0301][+\\u0300]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Right-to-Left languages\",\n\t\t\told: \"שלום\",\n\t\t\tnew: \"שלום עולם\",\n\t\t\texpected: \"שלום[+ עולם]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Normalization NFC and NFD\",\n\t\t\told: \"e\\u0301\", // NFD (decomposed)\n\t\t\tnew: \"\\u00e9\", // NFC (precomposed)\n\t\t\texpected: \"[-e\\u0301][+\\u00e9]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Case sensitivity\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"Abc\",\n\t\t\texpected: \"[-a][+A]bc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Surrogate pairs\",\n\t\t\told: \"Hello 🌍\",\n\t\t\tnew: \"Hello 🌎\",\n\t\t\texpected: \"Hello [-🌍][+🌎]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Control characters\",\n\t\t\told: \"Line1\\nLine2\",\n\t\t\tnew: \"Line1\\r\\nLine2\",\n\t\t\texpected: \"Line1[+\\r]\\nLine2\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed scripts\",\n\t\t\told: \"Hello नमस्ते こんにちは\",\n\t\t\tnew: \"Hello สวัสดี こんにちは\",\n\t\t\texpected: \"Hello [-नमस्ते][+สวัสดี] こんにちは\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unicode normalization\",\n\t\t\told: \"é\", // U+00E9 (precomposed)\n\t\t\tnew: \"e\\u0301\", // U+0065 U+0301 (decomposed)\n\t\t\texpected: \"[-é][+e\\u0301]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Directional marks\",\n\t\t\told: \"Hello\\u200Eworld\", // LTR mark\n\t\t\tnew: \"Hello\\u200Fworld\", // RTL mark\n\t\t\texpected: \"Hello[-\\u200E][+\\u200F]world\",\n\t\t},\n\t\t{\n\t\t\tname: \"Zero-width characters\",\n\t\t\told: \"ab\\u200Bc\", // Zero-width space\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"ab[-\\u200B]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Worst-case scenario (completely different strings)\",\n\t\t\told: strings.Repeat(\"a\", 1000),\n\t\t\tnew: strings.Repeat(\"b\", 1000),\n\t\t\texpected: \"[-\" + strings.Repeat(\"a\", 1000) + \"][+\" + strings.Repeat(\"b\", 1000) + \"]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Very long strings\",\n\t\t\told: strings.Repeat(\"a\", 10000) + \"b\" + strings.Repeat(\"a\", 10000),\n\t\t\tnew: strings.Repeat(\"a\", 10000) + \"c\" + strings.Repeat(\"a\", 10000),\n\t\t\texpected: strings.Repeat(\"a\", 10000) + \"[-b][+c]\" + strings.Repeat(\"a\", 10000),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdiff := MyersDiff(tc.old, tc.new)\n\t\t\tresult := Format(diff)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected: %s, got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EJO3Anm0rBrQM019PFhuRLM9rIlZ6r2GcPQ3mVyS+pWRl39coyK8GVcWp1PDNqUaLR99P8t7UUirnSyy2blhBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"diff","path":"gno.land/p/demo/diff","files":[{"name":"diff.gno","body":"// The diff package implements the Myers diff algorithm to compute the edit distance\n// and generate a minimal edit script between two strings.\n//\n// Edit distance, also known as Levenshtein distance, is a measure of the similarity\n// between two strings. It is defined as the minimum number of single-character edits (insertions,\n// deletions, or substitutions) required to change one string into the other.\npackage diff\n\nimport (\n\t\"strings\"\n)\n\n// EditType represents the type of edit operation in a diff.\ntype EditType uint8\n\nconst (\n\t// EditKeep indicates that a character is unchanged in both strings.\n\tEditKeep EditType = iota\n\n\t// EditInsert indicates that a character was inserted in the new string.\n\tEditInsert\n\n\t// EditDelete indicates that a character was deleted from the old string.\n\tEditDelete\n)\n\n// Edit represent a single edit operation in a diff.\ntype Edit struct {\n\t// Type is the kind of edit operation.\n\tType EditType\n\n\t// Char is the character involved in the edit operation.\n\tChar rune\n}\n\n// MyersDiff computes the difference between two strings using Myers' diff algorithm.\n// It returns a slice of Edit operations that transform the old string into the new string.\n// This implementation finds the shortest edit script (SES) that represents the minimal\n// set of operations to transform one string into the other.\n//\n// The function handles both ASCII and non-ASCII characters correctly.\n//\n// Time complexity: O((N+M)D), where N and M are the lengths of the input strings,\n// and D is the size of the minimum edit script.\n//\n// Space complexity: O((N+M)D)\n//\n// In the worst case, where the strings are completely different, D can be as large as N+M,\n// leading to a time and space complexity of O((N+M)^2). However, for strings with many\n// common substrings, the performance is much better, often closer to O(N+M).\n//\n// Parameters:\n// - old: the original string.\n// - new: the modified string.\n//\n// Returns:\n// - A slice of Edit operations representing the minimum difference between the two strings.\nfunc MyersDiff(old, new string) []Edit {\n\toldRunes, newRunes := []rune(old), []rune(new)\n\tn, m := len(oldRunes), len(newRunes)\n\n\tif n == 0 \u0026\u0026 m == 0 {\n\t\treturn []Edit{}\n\t}\n\n\t// old is empty\n\tif n == 0 {\n\t\tedits := make([]Edit, m)\n\t\tfor i, r := range newRunes {\n\t\t\tedits[i] = Edit{Type: EditInsert, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tif m == 0 {\n\t\tedits := make([]Edit, n)\n\t\tfor i, r := range oldRunes {\n\t\t\tedits[i] = Edit{Type: EditDelete, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tmax := n + m\n\tv := make([]int, 2*max+1)\n\tvar trace [][]int\nsearch:\n\tfor d := 0; d \u003c= max; d++ {\n\t\t// iterate through diagonals\n\t\tfor k := -d; k \u003c= d; k += 2 {\n\t\t\tvar x int\n\t\t\tif k == -d || (k != d \u0026\u0026 v[max+k-1] \u003c v[max+k+1]) {\n\t\t\t\tx = v[max+k+1] // move down\n\t\t\t} else {\n\t\t\t\tx = v[max+k-1] + 1 // move right\n\t\t\t}\n\t\t\ty := x - k\n\n\t\t\t// extend the path as far as possible with matching characters\n\t\t\tfor x \u003c n \u0026\u0026 y \u003c m \u0026\u0026 oldRunes[x] == newRunes[y] {\n\t\t\t\tx++\n\t\t\t\ty++\n\t\t\t}\n\n\t\t\tv[max+k] = x\n\n\t\t\t// check if we've reached the end of both strings\n\t\t\tif x == n \u0026\u0026 y == m {\n\t\t\t\ttrace = append(trace, append([]int(nil), v...))\n\t\t\t\tbreak search\n\t\t\t}\n\t\t}\n\t\ttrace = append(trace, append([]int(nil), v...))\n\t}\n\n\t// backtrack to construct the edit script\n\tedits := make([]Edit, 0, n+m)\n\tx, y := n, m\n\tfor d := len(trace) - 1; d \u003e= 0; d-- {\n\t\tvPrev := trace[d]\n\t\tk := x - y\n\t\tvar prevK int\n\t\tif k == -d || (k != d \u0026\u0026 vPrev[max+k-1] \u003c vPrev[max+k+1]) {\n\t\t\tprevK = k + 1\n\t\t} else {\n\t\t\tprevK = k - 1\n\t\t}\n\t\tprevX := vPrev[max+prevK]\n\t\tprevY := prevX - prevK\n\n\t\t// add keep edits for matching characters\n\t\tfor x \u003e prevX \u0026\u0026 y \u003e prevY {\n\t\t\tif x \u003e 0 \u0026\u0026 y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditKeep, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t\ty--\n\t\t}\n\t\tif y \u003e prevY {\n\t\t\tif y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditInsert, Char: newRunes[y-1]}}, edits...)\n\t\t\t}\n\t\t\ty--\n\t\t} else if x \u003e prevX {\n\t\t\tif x \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditDelete, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t}\n\t}\n\n\treturn edits\n}\n\n// Format converts a slice of Edit operations into a human-readable string representation.\n// It groups consecutive edits of the same type and formats them as follows:\n// - Unchanged characters are left as-is\n// - Inserted characters are wrapped in [+...]\n// - Deleted characters are wrapped in [-...]\n//\n// This function is useful for visualizing the differences between two strings\n// in a compact and intuitive format.\n//\n// Parameters:\n// - edits: A slice of Edit operations, typically produced by MyersDiff\n//\n// Returns:\n// - A formatted string representing the diff\n//\n// Example output:\n//\n//\tFor the diff between \"abcd\" and \"acbd\", the output might be:\n//\t\"a[-b]c[+b]d\"\n//\n// Note:\n//\n//\tThe function assumes that the input slice of edits is in the correct order.\n//\tAn empty input slice will result in an empty string.\nfunc Format(edits []Edit) string {\n\tif len(edits) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar (\n\t\tresult strings.Builder\n\t\tcurrentType EditType\n\t\tcurrentChars strings.Builder\n\t)\n\n\tflushCurrent := func() {\n\t\tif currentChars.Len() \u003e 0 {\n\t\t\tswitch currentType {\n\t\t\tcase EditKeep:\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\tcase EditInsert:\n\t\t\t\tresult.WriteString(\"[+\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\tcase EditDelete:\n\t\t\t\tresult.WriteString(\"[-\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\t}\n\t\t\tcurrentChars.Reset()\n\t\t}\n\t}\n\n\tfor _, edit := range edits {\n\t\tif edit.Type != currentType {\n\t\t\tflushCurrent()\n\t\t\tcurrentType = edit.Type\n\t\t}\n\t\tcurrentChars.WriteRune(edit.Char)\n\t}\n\tflushCurrent()\n\n\treturn result.String()\n}\n"},{"name":"diff_test.gno","body":"package diff\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestMyersDiff(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\told string\n\t\tnew string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"No difference\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"abc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple insertion\",\n\t\t\told: \"ac\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"a[+b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple deletion\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"ac\",\n\t\t\texpected: \"a[-b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple substitution\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abd\",\n\t\t\texpected: \"ab[-c][+d]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Multiple changes\",\n\t\t\told: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tnew: \"The quick brown cat jumps over the lazy dog\",\n\t\t\texpected: \"The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Prefix and suffix\",\n\t\t\told: \"Hello, world!\",\n\t\t\tnew: \"Hello, beautiful world!\",\n\t\t\texpected: \"Hello, [+beautiful ]world!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Complete change\",\n\t\t\told: \"abcdef\",\n\t\t\tnew: \"ghijkl\",\n\t\t\texpected: \"[-abcdef][+ghijkl]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty strings\",\n\t\t\told: \"\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Old empty\",\n\t\t\told: \"\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"[+abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"New empty\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"[-abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"non-ascii (Korean characters)\",\n\t\t\told: \"ASCII 문자가 아닌 것도 되나?\",\n\t\t\tnew: \"ASCII 문자가 아닌 것도 됨.\",\n\t\t\texpected: \"ASCII 문자가 아닌 것도 [-되나?][+됨.]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Emoji diff\",\n\t\t\told: \"Hello 👋 World 🌍\",\n\t\t\tnew: \"Hello 👋 Beautiful 🌸 World 🌍\",\n\t\t\texpected: \"Hello 👋 [+Beautiful 🌸 ]World 🌍\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed multibyte and ASCII\",\n\t\t\told: \"こんにちは World\",\n\t\t\tnew: \"こんばんは World\",\n\t\t\texpected: \"こん[-にち][+ばん]は World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Chinese characters\",\n\t\t\told: \"我喜欢编程\",\n\t\t\tnew: \"我喜欢看书和编程\",\n\t\t\texpected: \"我喜欢[+看书和]编程\",\n\t\t},\n\t\t{\n\t\t\tname: \"Combining characters\",\n\t\t\told: \"e\\u0301\", // é (e + ´)\n\t\t\tnew: \"e\\u0300\", // è (e + `)\n\t\t\texpected: \"e[-\\u0301][+\\u0300]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Right-to-Left languages\",\n\t\t\told: \"שלום\",\n\t\t\tnew: \"שלום עולם\",\n\t\t\texpected: \"שלום[+ עולם]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Normalization NFC and NFD\",\n\t\t\told: \"e\\u0301\", // NFD (decomposed)\n\t\t\tnew: \"\\u00e9\", // NFC (precomposed)\n\t\t\texpected: \"[-e\\u0301][+\\u00e9]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Case sensitivity\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"Abc\",\n\t\t\texpected: \"[-a][+A]bc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Surrogate pairs\",\n\t\t\told: \"Hello 🌍\",\n\t\t\tnew: \"Hello 🌎\",\n\t\t\texpected: \"Hello [-🌍][+🌎]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Control characters\",\n\t\t\told: \"Line1\\nLine2\",\n\t\t\tnew: \"Line1\\r\\nLine2\",\n\t\t\texpected: \"Line1[+\\r]\\nLine2\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed scripts\",\n\t\t\told: \"Hello नमस्ते こんにちは\",\n\t\t\tnew: \"Hello สวัสดี こんにちは\",\n\t\t\texpected: \"Hello [-नमस्ते][+สวัสดี] こんにちは\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unicode normalization\",\n\t\t\told: \"é\", // U+00E9 (precomposed)\n\t\t\tnew: \"e\\u0301\", // U+0065 U+0301 (decomposed)\n\t\t\texpected: \"[-é][+e\\u0301]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Directional marks\",\n\t\t\told: \"Hello\\u200Eworld\", // LTR mark\n\t\t\tnew: \"Hello\\u200Fworld\", // RTL mark\n\t\t\texpected: \"Hello[-\\u200E][+\\u200F]world\",\n\t\t},\n\t\t{\n\t\t\tname: \"Zero-width characters\",\n\t\t\told: \"ab\\u200Bc\", // Zero-width space\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"ab[-\\u200B]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Worst-case scenario (completely different strings)\",\n\t\t\told: strings.Repeat(\"a\", 1000),\n\t\t\tnew: strings.Repeat(\"b\", 1000),\n\t\t\texpected: \"[-\" + strings.Repeat(\"a\", 1000) + \"][+\" + strings.Repeat(\"b\", 1000) + \"]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Very long strings\",\n\t\t\told: strings.Repeat(\"a\", 10000) + \"b\" + strings.Repeat(\"a\", 10000),\n\t\t\tnew: strings.Repeat(\"a\", 10000) + \"c\" + strings.Repeat(\"a\", 10000),\n\t\t\texpected: strings.Repeat(\"a\", 10000) + \"[-b][+c]\" + strings.Repeat(\"a\", 10000),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdiff := MyersDiff(tc.old, tc.new)\n\t\t\tresult := Format(diff)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected: %s, got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EJO3Anm0rBrQM019PFhuRLM9rIlZ6r2GcPQ3mVyS+pWRl39coyK8GVcWp1PDNqUaLR99P8t7UUirnSyy2blhBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"diff","path":"gno.land/p/demo/diff","files":[{"name":"diff.gno","body":"// The diff package implements the Myers diff algorithm to compute the edit distance\n// and generate a minimal edit script between two strings.\n//\n// Edit distance, also known as Levenshtein distance, is a measure of the similarity\n// between two strings. It is defined as the minimum number of single-character edits (insertions,\n// deletions, or substitutions) required to change one string into the other.\npackage diff\n\nimport (\n\t\"strings\"\n)\n\n// EditType represents the type of edit operation in a diff.\ntype EditType uint8\n\nconst (\n\t// EditKeep indicates that a character is unchanged in both strings.\n\tEditKeep EditType = iota\n\n\t// EditInsert indicates that a character was inserted in the new string.\n\tEditInsert\n\n\t// EditDelete indicates that a character was deleted from the old string.\n\tEditDelete\n)\n\n// Edit represent a single edit operation in a diff.\ntype Edit struct {\n\t// Type is the kind of edit operation.\n\tType EditType\n\n\t// Char is the character involved in the edit operation.\n\tChar rune\n}\n\n// MyersDiff computes the difference between two strings using Myers' diff algorithm.\n// It returns a slice of Edit operations that transform the old string into the new string.\n// This implementation finds the shortest edit script (SES) that represents the minimal\n// set of operations to transform one string into the other.\n//\n// The function handles both ASCII and non-ASCII characters correctly.\n//\n// Time complexity: O((N+M)D), where N and M are the lengths of the input strings,\n// and D is the size of the minimum edit script.\n//\n// Space complexity: O((N+M)D)\n//\n// In the worst case, where the strings are completely different, D can be as large as N+M,\n// leading to a time and space complexity of O((N+M)^2). However, for strings with many\n// common substrings, the performance is much better, often closer to O(N+M).\n//\n// Parameters:\n// - old: the original string.\n// - new: the modified string.\n//\n// Returns:\n// - A slice of Edit operations representing the minimum difference between the two strings.\nfunc MyersDiff(old, new string) []Edit {\n\toldRunes, newRunes := []rune(old), []rune(new)\n\tn, m := len(oldRunes), len(newRunes)\n\n\tif n == 0 \u0026\u0026 m == 0 {\n\t\treturn []Edit{}\n\t}\n\n\t// old is empty\n\tif n == 0 {\n\t\tedits := make([]Edit, m)\n\t\tfor i, r := range newRunes {\n\t\t\tedits[i] = Edit{Type: EditInsert, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tif m == 0 {\n\t\tedits := make([]Edit, n)\n\t\tfor i, r := range oldRunes {\n\t\t\tedits[i] = Edit{Type: EditDelete, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tmax := n + m\n\tv := make([]int, 2*max+1)\n\tvar trace [][]int\nsearch:\n\tfor d := 0; d \u003c= max; d++ {\n\t\t// iterate through diagonals\n\t\tfor k := -d; k \u003c= d; k += 2 {\n\t\t\tvar x int\n\t\t\tif k == -d || (k != d \u0026\u0026 v[max+k-1] \u003c v[max+k+1]) {\n\t\t\t\tx = v[max+k+1] // move down\n\t\t\t} else {\n\t\t\t\tx = v[max+k-1] + 1 // move right\n\t\t\t}\n\t\t\ty := x - k\n\n\t\t\t// extend the path as far as possible with matching characters\n\t\t\tfor x \u003c n \u0026\u0026 y \u003c m \u0026\u0026 oldRunes[x] == newRunes[y] {\n\t\t\t\tx++\n\t\t\t\ty++\n\t\t\t}\n\n\t\t\tv[max+k] = x\n\n\t\t\t// check if we've reached the end of both strings\n\t\t\tif x == n \u0026\u0026 y == m {\n\t\t\t\ttrace = append(trace, append([]int(nil), v...))\n\t\t\t\tbreak search\n\t\t\t}\n\t\t}\n\t\ttrace = append(trace, append([]int(nil), v...))\n\t}\n\n\t// backtrack to construct the edit script\n\tedits := make([]Edit, 0, n+m)\n\tx, y := n, m\n\tfor d := len(trace) - 1; d \u003e= 0; d-- {\n\t\tvPrev := trace[d]\n\t\tk := x - y\n\t\tvar prevK int\n\t\tif k == -d || (k != d \u0026\u0026 vPrev[max+k-1] \u003c vPrev[max+k+1]) {\n\t\t\tprevK = k + 1\n\t\t} else {\n\t\t\tprevK = k - 1\n\t\t}\n\t\tprevX := vPrev[max+prevK]\n\t\tprevY := prevX - prevK\n\n\t\t// add keep edits for matching characters\n\t\tfor x \u003e prevX \u0026\u0026 y \u003e prevY {\n\t\t\tif x \u003e 0 \u0026\u0026 y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditKeep, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t\ty--\n\t\t}\n\t\tif y \u003e prevY {\n\t\t\tif y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditInsert, Char: newRunes[y-1]}}, edits...)\n\t\t\t}\n\t\t\ty--\n\t\t} else if x \u003e prevX {\n\t\t\tif x \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditDelete, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t}\n\t}\n\n\treturn edits\n}\n\n// Format converts a slice of Edit operations into a human-readable string representation.\n// It groups consecutive edits of the same type and formats them as follows:\n// - Unchanged characters are left as-is\n// - Inserted characters are wrapped in [+...]\n// - Deleted characters are wrapped in [-...]\n//\n// This function is useful for visualizing the differences between two strings\n// in a compact and intuitive format.\n//\n// Parameters:\n// - edits: A slice of Edit operations, typically produced by MyersDiff\n//\n// Returns:\n// - A formatted string representing the diff\n//\n// Example output:\n//\n//\tFor the diff between \"abcd\" and \"acbd\", the output might be:\n//\t\"a[-b]c[+b]d\"\n//\n// Note:\n//\n//\tThe function assumes that the input slice of edits is in the correct order.\n//\tAn empty input slice will result in an empty string.\nfunc Format(edits []Edit) string {\n\tif len(edits) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar (\n\t\tresult strings.Builder\n\t\tcurrentType EditType\n\t\tcurrentChars strings.Builder\n\t)\n\n\tflushCurrent := func() {\n\t\tif currentChars.Len() \u003e 0 {\n\t\t\tswitch currentType {\n\t\t\tcase EditKeep:\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\tcase EditInsert:\n\t\t\t\tresult.WriteString(\"[+\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\tcase EditDelete:\n\t\t\t\tresult.WriteString(\"[-\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\t}\n\t\t\tcurrentChars.Reset()\n\t\t}\n\t}\n\n\tfor _, edit := range edits {\n\t\tif edit.Type != currentType {\n\t\t\tflushCurrent()\n\t\t\tcurrentType = edit.Type\n\t\t}\n\t\tcurrentChars.WriteRune(edit.Char)\n\t}\n\tflushCurrent()\n\n\treturn result.String()\n}\n"},{"name":"diff_test.gno","body":"package diff\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestMyersDiff(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\told string\n\t\tnew string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"No difference\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"abc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple insertion\",\n\t\t\told: \"ac\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"a[+b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple deletion\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"ac\",\n\t\t\texpected: \"a[-b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple substitution\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abd\",\n\t\t\texpected: \"ab[-c][+d]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Multiple changes\",\n\t\t\told: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tnew: \"The quick brown cat jumps over the lazy dog\",\n\t\t\texpected: \"The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Prefix and suffix\",\n\t\t\told: \"Hello, world!\",\n\t\t\tnew: \"Hello, beautiful world!\",\n\t\t\texpected: \"Hello, [+beautiful ]world!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Complete change\",\n\t\t\told: \"abcdef\",\n\t\t\tnew: \"ghijkl\",\n\t\t\texpected: \"[-abcdef][+ghijkl]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty strings\",\n\t\t\told: \"\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Old empty\",\n\t\t\told: \"\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"[+abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"New empty\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"[-abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"non-ascii (Korean characters)\",\n\t\t\told: \"ASCII 문자가 아닌 것도 되나?\",\n\t\t\tnew: \"ASCII 문자가 아닌 것도 됨.\",\n\t\t\texpected: \"ASCII 문자가 아닌 것도 [-되나?][+됨.]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Emoji diff\",\n\t\t\told: \"Hello 👋 World 🌍\",\n\t\t\tnew: \"Hello 👋 Beautiful 🌸 World 🌍\",\n\t\t\texpected: \"Hello 👋 [+Beautiful 🌸 ]World 🌍\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed multibyte and ASCII\",\n\t\t\told: \"こんにちは World\",\n\t\t\tnew: \"こんばんは World\",\n\t\t\texpected: \"こん[-にち][+ばん]は World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Chinese characters\",\n\t\t\told: \"我喜欢编程\",\n\t\t\tnew: \"我喜欢看书和编程\",\n\t\t\texpected: \"我喜欢[+看书和]编程\",\n\t\t},\n\t\t{\n\t\t\tname: \"Combining characters\",\n\t\t\told: \"e\\u0301\", // é (e + ´)\n\t\t\tnew: \"e\\u0300\", // è (e + `)\n\t\t\texpected: \"e[-\\u0301][+\\u0300]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Right-to-Left languages\",\n\t\t\told: \"שלום\",\n\t\t\tnew: \"שלום עולם\",\n\t\t\texpected: \"שלום[+ עולם]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Normalization NFC and NFD\",\n\t\t\told: \"e\\u0301\", // NFD (decomposed)\n\t\t\tnew: \"\\u00e9\", // NFC (precomposed)\n\t\t\texpected: \"[-e\\u0301][+\\u00e9]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Case sensitivity\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"Abc\",\n\t\t\texpected: \"[-a][+A]bc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Surrogate pairs\",\n\t\t\told: \"Hello 🌍\",\n\t\t\tnew: \"Hello 🌎\",\n\t\t\texpected: \"Hello [-🌍][+🌎]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Control characters\",\n\t\t\told: \"Line1\\nLine2\",\n\t\t\tnew: \"Line1\\r\\nLine2\",\n\t\t\texpected: \"Line1[+\\r]\\nLine2\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed scripts\",\n\t\t\told: \"Hello नमस्ते こんにちは\",\n\t\t\tnew: \"Hello สวัสดี こんにちは\",\n\t\t\texpected: \"Hello [-नमस्ते][+สวัสดี] こんにちは\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unicode normalization\",\n\t\t\told: \"é\", // U+00E9 (precomposed)\n\t\t\tnew: \"e\\u0301\", // U+0065 U+0301 (decomposed)\n\t\t\texpected: \"[-é][+e\\u0301]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Directional marks\",\n\t\t\told: \"Hello\\u200Eworld\", // LTR mark\n\t\t\tnew: \"Hello\\u200Fworld\", // RTL mark\n\t\t\texpected: \"Hello[-\\u200E][+\\u200F]world\",\n\t\t},\n\t\t{\n\t\t\tname: \"Zero-width characters\",\n\t\t\told: \"ab\\u200Bc\", // Zero-width space\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"ab[-\\u200B]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Worst-case scenario (completely different strings)\",\n\t\t\told: strings.Repeat(\"a\", 1000),\n\t\t\tnew: strings.Repeat(\"b\", 1000),\n\t\t\texpected: \"[-\" + strings.Repeat(\"a\", 1000) + \"][+\" + strings.Repeat(\"b\", 1000) + \"]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Very long strings\",\n\t\t\told: strings.Repeat(\"a\", 10000) + \"b\" + strings.Repeat(\"a\", 10000),\n\t\t\tnew: strings.Repeat(\"a\", 10000) + \"c\" + strings.Repeat(\"a\", 10000),\n\t\t\texpected: strings.Repeat(\"a\", 10000) + \"[-b][+c]\" + strings.Repeat(\"a\", 10000),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdiff := MyersDiff(tc.old, tc.new)\n\t\t\tresult := Format(diff)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected: %s, got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EJO3Anm0rBrQM019PFhuRLM9rIlZ6r2GcPQ3mVyS+pWRl39coyK8GVcWp1PDNqUaLR99P8t7UUirnSyy2blhBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"disperse","path":"gno.land/r/demo/disperse","files":[{"name":"disperse.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\n// Get address of Disperse realm\nvar realmAddr = std.CurrentRealm().Addr()\n\n// DisperseUgnot parses receivers and amounts and sends out ugnot\n// The function will send out the coins to the addresses and return the leftover coins to the caller\n// if there are any to return\nfunc DisperseUgnot(addresses []std.Address, coins std.Coins) {\n\tcoinSent := std.GetOrigSend()\n\tcaller := std.PrevRealm().Addr()\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\n\tif len(addresses) != len(coins) {\n\t\tpanic(ErrNumAddrValMismatch)\n\t}\n\n\tfor _, coin := range coins {\n\t\tif coin.Amount \u003c= 0 {\n\t\t\tpanic(ErrNegativeCoinAmount)\n\t\t}\n\n\t\tif banker.GetCoins(realmAddr).AmountOf(coin.Denom) \u003c coin.Amount {\n\t\t\tpanic(ErrMismatchBetweenSentAndParams)\n\t\t}\n\t}\n\n\t// Send coins\n\tfor i, _ := range addresses {\n\t\tbanker.SendCoins(realmAddr, addresses[i], std.NewCoins(coins[i]))\n\t}\n\n\t// Return possible leftover coins\n\tfor _, coin := range coinSent {\n\t\tleftoverAmt := banker.GetCoins(realmAddr).AmountOf(coin.Denom)\n\t\tif leftoverAmt \u003e 0 {\n\t\t\tsend := std.Coins{std.NewCoin(coin.Denom, leftoverAmt)}\n\t\t\tbanker.SendCoins(realmAddr, caller, send)\n\t\t}\n\t}\n}\n\n// DisperseGRC20 disperses tokens to multiple addresses\n// Note that it is necessary to approve the realm to spend the tokens before calling this function\n// see the corresponding filetests for examples\nfunc DisperseGRC20(addresses []std.Address, amounts []uint64, symbols []string) {\n\tcaller := std.PrevRealm().Addr()\n\n\tif (len(addresses) != len(amounts)) || (len(amounts) != len(symbols)) {\n\t\tpanic(ErrArgLenAndSentLenMismatch)\n\t}\n\n\tfor i := 0; i \u003c len(addresses); i++ {\n\t\ttokens.TransferFrom(symbols[i], caller, addresses[i], amounts[i])\n\t}\n}\n\n// DisperseGRC20String receives a string of addresses and a string of tokens\n// and parses them to be used in DisperseGRC20\nfunc DisperseGRC20String(addresses string, tokens string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, parsedSymbols, err := parseTokens(tokens)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tDisperseGRC20(parsedAddresses, parsedAmounts, parsedSymbols)\n}\n\n// DisperseUgnotString receives a string of addresses and a string of amounts\n// and parses them to be used in DisperseUgnot\nfunc DisperseUgnotString(addresses string, amounts string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, err := parseAmounts(amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tcoins := make(std.Coins, len(parsedAmounts))\n\tfor i, amount := range parsedAmounts {\n\t\tcoins[i] = std.NewCoin(\"ugnot\", amount)\n\t}\n\n\tDisperseUgnot(parsedAddresses, coins)\n}\n"},{"name":"doc.gno","body":"// Package disperse provides methods to disperse coins or GRC20 tokens among multiple addresses.\n//\n// The disperse package is an implementation of an existing service that allows users to send coins or GRC20 tokens to multiple addresses\n// on the Ethereum blockchain.\n//\n// Usage:\n// To use disperse, you can either use `DisperseUgnot` to send coins or `DisperseGRC20` to send GRC20 tokens to multiple addresses.\n//\n// Example:\n// Dispersing 200 coins to two addresses:\n// - DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n// Dispersing 200 worth of a GRC20 token \"TEST\" to two addresses:\n// - DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n//\n// Reference:\n// - [the original dispere app](https://disperse.app/)\n// - [the original disperse app on etherscan](https://etherscan.io/address/0xd152f549545093347a162dce210e7293f1452150#code)\n// - [the gno disperse web app](https://gno-disperse.netlify.app/)\npackage disperse // import \"gno.land/r/demo/disperse\"\n"},{"name":"errors.gno","body":"package disperse\n\nimport \"errors\"\n\nvar (\n\tErrNotEnoughCoin = errors.New(\"disperse: not enough coin sent in\")\n\tErrNumAddrValMismatch = errors.New(\"disperse: number of addresses and values to send doesn't match\")\n\tErrInvalidAddress = errors.New(\"disperse: invalid address\")\n\tErrNegativeCoinAmount = errors.New(\"disperse: coin amount cannot be negative\")\n\tErrMismatchBetweenSentAndParams = errors.New(\"disperse: mismatch between coins sent and params called\")\n\tErrArgLenAndSentLenMismatch = errors.New(\"disperse: mismatch between coins sent and args called\")\n)\n"},{"name":"util.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n)\n\nfunc parseAddresses(addresses string) ([]std.Address, error) {\n\tvar ret []std.Address\n\n\tfor _, str := range strings.Split(addresses, \",\") {\n\t\taddr := std.Address(str)\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, ErrInvalidAddress\n\t\t}\n\n\t\tret = append(ret, addr)\n\t}\n\n\treturn ret, nil\n}\n\nfunc splitString(input string) (string, string) {\n\tvar pos int\n\tfor i, char := range input {\n\t\tif !unicode.IsDigit(char) {\n\t\t\tpos = i\n\t\t\tbreak\n\t\t}\n\t}\n\treturn input[:pos], input[pos:]\n}\n\nfunc parseTokens(tokens string) ([]uint64, []string, error) {\n\tvar amounts []uint64\n\tvar symbols []string\n\n\tfor _, token := range strings.Split(tokens, \",\") {\n\t\tamountStr, symbol := splitString(token)\n\t\tamount, _ := strconv.Atoi(amountStr)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tamounts = append(amounts, uint64(amount))\n\t\tsymbols = append(symbols, symbol)\n\t}\n\n\treturn amounts, symbols, nil\n}\n\nfunc parseAmounts(amounts string) ([]int64, error) {\n\tvar ret []int64\n\n\tfor _, amt := range strings.Split(amounts, \",\") {\n\t\tamount, _ := strconv.Atoi(amt)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tret = append(ret, int64(amount))\n\t}\n\n\treturn ret, nil\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 200ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 200}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 200000200ugnot\n// main after: 200000000ugnot\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 300}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 200000300ugnot\n// main after: 200000100ugnot\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 100}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n}\n\n// Error:\n// disperse: mismatch between coins sent and params called\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test\", \"TEST\", 4, 0, 0)\n\ttokens.Mint(\"TEST\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n\n\tmainbal = tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 200\n// main after: 0\n// beneficiary1: 150\n// beneficiary2: 50\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test1\", \"TEST1\", 4, 0, 0)\n\ttokens.Mint(\"TEST1\", mainaddr, 200)\n\ttokens.New(\"test2\", \"TEST2\", 4, 0, 0)\n\ttokens.Mint(\"TEST2\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST1\", disperseAddr, 200)\n\ttokens.Approve(\"TEST2\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"200TEST1,200TEST2\")\n\n\tmainbal = tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST1\", beneficiary1) + tokens.BalanceOf(\"TEST2\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST1\", beneficiary2) + tokens.BalanceOf(\"TEST2\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 400\n// main after: 0\n// beneficiary1: 200\n// beneficiary2: 200\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DkVnzxuKJwLPOtpPjg1xqnE0hySbeamSsf5VpLgh+bgzh1bXNDfDGaQF8Nagirhb18Fg9N41waiWh0cTKL+eCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"disperse","path":"gno.land/r/demo/disperse","files":[{"name":"disperse.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\n// Get address of Disperse realm\nvar realmAddr = std.CurrentRealm().Addr()\n\n// DisperseUgnot parses receivers and amounts and sends out ugnot\n// The function will send out the coins to the addresses and return the leftover coins to the caller\n// if there are any to return\nfunc DisperseUgnot(addresses []std.Address, coins std.Coins) {\n\tcoinSent := std.GetOrigSend()\n\tcaller := std.PrevRealm().Addr()\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\n\tif len(addresses) != len(coins) {\n\t\tpanic(ErrNumAddrValMismatch)\n\t}\n\n\tfor _, coin := range coins {\n\t\tif coin.Amount \u003c= 0 {\n\t\t\tpanic(ErrNegativeCoinAmount)\n\t\t}\n\n\t\tif banker.GetCoins(realmAddr).AmountOf(coin.Denom) \u003c coin.Amount {\n\t\t\tpanic(ErrMismatchBetweenSentAndParams)\n\t\t}\n\t}\n\n\t// Send coins\n\tfor i, _ := range addresses {\n\t\tbanker.SendCoins(realmAddr, addresses[i], std.NewCoins(coins[i]))\n\t}\n\n\t// Return possible leftover coins\n\tfor _, coin := range coinSent {\n\t\tleftoverAmt := banker.GetCoins(realmAddr).AmountOf(coin.Denom)\n\t\tif leftoverAmt \u003e 0 {\n\t\t\tsend := std.Coins{std.NewCoin(coin.Denom, leftoverAmt)}\n\t\t\tbanker.SendCoins(realmAddr, caller, send)\n\t\t}\n\t}\n}\n\n// DisperseGRC20 disperses tokens to multiple addresses\n// Note that it is necessary to approve the realm to spend the tokens before calling this function\n// see the corresponding filetests for examples\nfunc DisperseGRC20(addresses []std.Address, amounts []uint64, symbols []string) {\n\tcaller := std.PrevRealm().Addr()\n\n\tif (len(addresses) != len(amounts)) || (len(amounts) != len(symbols)) {\n\t\tpanic(ErrArgLenAndSentLenMismatch)\n\t}\n\n\tfor i := 0; i \u003c len(addresses); i++ {\n\t\ttokens.TransferFrom(symbols[i], caller, addresses[i], amounts[i])\n\t}\n}\n\n// DisperseGRC20String receives a string of addresses and a string of tokens\n// and parses them to be used in DisperseGRC20\nfunc DisperseGRC20String(addresses string, tokens string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, parsedSymbols, err := parseTokens(tokens)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tDisperseGRC20(parsedAddresses, parsedAmounts, parsedSymbols)\n}\n\n// DisperseUgnotString receives a string of addresses and a string of amounts\n// and parses them to be used in DisperseUgnot\nfunc DisperseUgnotString(addresses string, amounts string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, err := parseAmounts(amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tcoins := make(std.Coins, len(parsedAmounts))\n\tfor i, amount := range parsedAmounts {\n\t\tcoins[i] = std.NewCoin(\"ugnot\", amount)\n\t}\n\n\tDisperseUgnot(parsedAddresses, coins)\n}\n"},{"name":"doc.gno","body":"// Package disperse provides methods to disperse coins or GRC20 tokens among multiple addresses.\n//\n// The disperse package is an implementation of an existing service that allows users to send coins or GRC20 tokens to multiple addresses\n// on the Ethereum blockchain.\n//\n// Usage:\n// To use disperse, you can either use `DisperseUgnot` to send coins or `DisperseGRC20` to send GRC20 tokens to multiple addresses.\n//\n// Example:\n// Dispersing 200 coins to two addresses:\n// - DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n// Dispersing 200 worth of a GRC20 token \"TEST\" to two addresses:\n// - DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n//\n// Reference:\n// - [the original dispere app](https://disperse.app/)\n// - [the original disperse app on etherscan](https://etherscan.io/address/0xd152f549545093347a162dce210e7293f1452150#code)\n// - [the gno disperse web app](https://gno-disperse.netlify.app/)\npackage disperse // import \"gno.land/r/demo/disperse\"\n"},{"name":"errors.gno","body":"package disperse\n\nimport \"errors\"\n\nvar (\n\tErrNotEnoughCoin = errors.New(\"disperse: not enough coin sent in\")\n\tErrNumAddrValMismatch = errors.New(\"disperse: number of addresses and values to send doesn't match\")\n\tErrInvalidAddress = errors.New(\"disperse: invalid address\")\n\tErrNegativeCoinAmount = errors.New(\"disperse: coin amount cannot be negative\")\n\tErrMismatchBetweenSentAndParams = errors.New(\"disperse: mismatch between coins sent and params called\")\n\tErrArgLenAndSentLenMismatch = errors.New(\"disperse: mismatch between coins sent and args called\")\n)\n"},{"name":"util.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n)\n\nfunc parseAddresses(addresses string) ([]std.Address, error) {\n\tvar ret []std.Address\n\n\tfor _, str := range strings.Split(addresses, \",\") {\n\t\taddr := std.Address(str)\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, ErrInvalidAddress\n\t\t}\n\n\t\tret = append(ret, addr)\n\t}\n\n\treturn ret, nil\n}\n\nfunc splitString(input string) (string, string) {\n\tvar pos int\n\tfor i, char := range input {\n\t\tif !unicode.IsDigit(char) {\n\t\t\tpos = i\n\t\t\tbreak\n\t\t}\n\t}\n\treturn input[:pos], input[pos:]\n}\n\nfunc parseTokens(tokens string) ([]uint64, []string, error) {\n\tvar amounts []uint64\n\tvar symbols []string\n\n\tfor _, token := range strings.Split(tokens, \",\") {\n\t\tamountStr, symbol := splitString(token)\n\t\tamount, _ := strconv.Atoi(amountStr)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tamounts = append(amounts, uint64(amount))\n\t\tsymbols = append(symbols, symbol)\n\t}\n\n\treturn amounts, symbols, nil\n}\n\nfunc parseAmounts(amounts string) ([]int64, error) {\n\tvar ret []int64\n\n\tfor _, amt := range strings.Split(amounts, \",\") {\n\t\tamount, _ := strconv.Atoi(amt)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tret = append(ret, int64(amount))\n\t}\n\n\treturn ret, nil\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 200ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 200}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 200ugnot\n// main after:\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 300}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 300ugnot\n// main after: 100ugnot\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 100}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n}\n\n// Error:\n// disperse: mismatch between coins sent and params called\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test\", \"TEST\", 4, 0, 0)\n\ttokens.Mint(\"TEST\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n\n\tmainbal = tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 200\n// main after: 0\n// beneficiary1: 150\n// beneficiary2: 50\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test1\", \"TEST1\", 4, 0, 0)\n\ttokens.Mint(\"TEST1\", mainaddr, 200)\n\ttokens.New(\"test2\", \"TEST2\", 4, 0, 0)\n\ttokens.Mint(\"TEST2\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST1\", disperseAddr, 200)\n\ttokens.Approve(\"TEST2\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"200TEST1,200TEST2\")\n\n\tmainbal = tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST1\", beneficiary1) + tokens.BalanceOf(\"TEST2\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST1\", beneficiary2) + tokens.BalanceOf(\"TEST2\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 400\n// main after: 0\n// beneficiary1: 200\n// beneficiary2: 200\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jKWZI87wyTKITmAUtA56QxqERfsyldQQN6+g5KHcsDSgEzYGoZrJaPoFoXfs3Pxh2jYhu0J9+hF7Ml1tKGMOAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"disperse","path":"gno.land/r/demo/disperse","files":[{"name":"disperse.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\n// Get address of Disperse realm\nvar realmAddr = std.CurrentRealm().Addr()\n\n// DisperseUgnot parses receivers and amounts and sends out ugnot\n// The function will send out the coins to the addresses and return the leftover coins to the caller\n// if there are any to return\nfunc DisperseUgnot(addresses []std.Address, coins std.Coins) {\n\tcoinSent := std.GetOrigSend()\n\tcaller := std.PrevRealm().Addr()\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\n\tif len(addresses) != len(coins) {\n\t\tpanic(ErrNumAddrValMismatch)\n\t}\n\n\tfor _, coin := range coins {\n\t\tif coin.Amount \u003c= 0 {\n\t\t\tpanic(ErrNegativeCoinAmount)\n\t\t}\n\n\t\tif banker.GetCoins(realmAddr).AmountOf(coin.Denom) \u003c coin.Amount {\n\t\t\tpanic(ErrMismatchBetweenSentAndParams)\n\t\t}\n\t}\n\n\t// Send coins\n\tfor i, _ := range addresses {\n\t\tbanker.SendCoins(realmAddr, addresses[i], std.NewCoins(coins[i]))\n\t}\n\n\t// Return possible leftover coins\n\tfor _, coin := range coinSent {\n\t\tleftoverAmt := banker.GetCoins(realmAddr).AmountOf(coin.Denom)\n\t\tif leftoverAmt \u003e 0 {\n\t\t\tsend := std.Coins{std.NewCoin(coin.Denom, leftoverAmt)}\n\t\t\tbanker.SendCoins(realmAddr, caller, send)\n\t\t}\n\t}\n}\n\n// DisperseGRC20 disperses tokens to multiple addresses\n// Note that it is necessary to approve the realm to spend the tokens before calling this function\n// see the corresponding filetests for examples\nfunc DisperseGRC20(addresses []std.Address, amounts []uint64, symbols []string) {\n\tcaller := std.PrevRealm().Addr()\n\n\tif (len(addresses) != len(amounts)) || (len(amounts) != len(symbols)) {\n\t\tpanic(ErrArgLenAndSentLenMismatch)\n\t}\n\n\tfor i := 0; i \u003c len(addresses); i++ {\n\t\ttokens.TransferFrom(symbols[i], caller, addresses[i], amounts[i])\n\t}\n}\n\n// DisperseGRC20String receives a string of addresses and a string of tokens\n// and parses them to be used in DisperseGRC20\nfunc DisperseGRC20String(addresses string, tokens string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, parsedSymbols, err := parseTokens(tokens)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tDisperseGRC20(parsedAddresses, parsedAmounts, parsedSymbols)\n}\n\n// DisperseUgnotString receives a string of addresses and a string of amounts\n// and parses them to be used in DisperseUgnot\nfunc DisperseUgnotString(addresses string, amounts string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, err := parseAmounts(amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tcoins := make(std.Coins, len(parsedAmounts))\n\tfor i, amount := range parsedAmounts {\n\t\tcoins[i] = std.NewCoin(\"ugnot\", amount)\n\t}\n\n\tDisperseUgnot(parsedAddresses, coins)\n}\n"},{"name":"doc.gno","body":"// Package disperse provides methods to disperse coins or GRC20 tokens among multiple addresses.\n//\n// The disperse package is an implementation of an existing service that allows users to send coins or GRC20 tokens to multiple addresses\n// on the Ethereum blockchain.\n//\n// Usage:\n// To use disperse, you can either use `DisperseUgnot` to send coins or `DisperseGRC20` to send GRC20 tokens to multiple addresses.\n//\n// Example:\n// Dispersing 200 coins to two addresses:\n// - DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n// Dispersing 200 worth of a GRC20 token \"TEST\" to two addresses:\n// - DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n//\n// Reference:\n// - [the original dispere app](https://disperse.app/)\n// - [the original disperse app on etherscan](https://etherscan.io/address/0xd152f549545093347a162dce210e7293f1452150#code)\n// - [the gno disperse web app](https://gno-disperse.netlify.app/)\npackage disperse // import \"gno.land/r/demo/disperse\"\n"},{"name":"errors.gno","body":"package disperse\n\nimport \"errors\"\n\nvar (\n\tErrNotEnoughCoin = errors.New(\"disperse: not enough coin sent in\")\n\tErrNumAddrValMismatch = errors.New(\"disperse: number of addresses and values to send doesn't match\")\n\tErrInvalidAddress = errors.New(\"disperse: invalid address\")\n\tErrNegativeCoinAmount = errors.New(\"disperse: coin amount cannot be negative\")\n\tErrMismatchBetweenSentAndParams = errors.New(\"disperse: mismatch between coins sent and params called\")\n\tErrArgLenAndSentLenMismatch = errors.New(\"disperse: mismatch between coins sent and args called\")\n)\n"},{"name":"util.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n)\n\nfunc parseAddresses(addresses string) ([]std.Address, error) {\n\tvar ret []std.Address\n\n\tfor _, str := range strings.Split(addresses, \",\") {\n\t\taddr := std.Address(str)\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, ErrInvalidAddress\n\t\t}\n\n\t\tret = append(ret, addr)\n\t}\n\n\treturn ret, nil\n}\n\nfunc splitString(input string) (string, string) {\n\tvar pos int\n\tfor i, char := range input {\n\t\tif !unicode.IsDigit(char) {\n\t\t\tpos = i\n\t\t\tbreak\n\t\t}\n\t}\n\treturn input[:pos], input[pos:]\n}\n\nfunc parseTokens(tokens string) ([]uint64, []string, error) {\n\tvar amounts []uint64\n\tvar symbols []string\n\n\tfor _, token := range strings.Split(tokens, \",\") {\n\t\tamountStr, symbol := splitString(token)\n\t\tamount, _ := strconv.Atoi(amountStr)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tamounts = append(amounts, uint64(amount))\n\t\tsymbols = append(symbols, symbol)\n\t}\n\n\treturn amounts, symbols, nil\n}\n\nfunc parseAmounts(amounts string) ([]int64, error) {\n\tvar ret []int64\n\n\tfor _, amt := range strings.Split(amounts, \",\") {\n\t\tamount, _ := strconv.Atoi(amt)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tret = append(ret, int64(amount))\n\t}\n\n\treturn ret, nil\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 200ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 200}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 200ugnot\n// main after:\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 300}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 300ugnot\n// main after: 100ugnot\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 100}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n}\n\n// Error:\n// disperse: mismatch between coins sent and params called\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test\", \"TEST\", 4, 0, 0)\n\ttokens.Mint(\"TEST\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n\n\tmainbal = tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 200\n// main after: 0\n// beneficiary1: 150\n// beneficiary2: 50\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test1\", \"TEST1\", 4, 0, 0)\n\ttokens.Mint(\"TEST1\", mainaddr, 200)\n\ttokens.New(\"test2\", \"TEST2\", 4, 0, 0)\n\ttokens.Mint(\"TEST2\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST1\", disperseAddr, 200)\n\ttokens.Approve(\"TEST2\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"200TEST1,200TEST2\")\n\n\tmainbal = tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST1\", beneficiary1) + tokens.BalanceOf(\"TEST2\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST1\", beneficiary2) + tokens.BalanceOf(\"TEST2\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 400\n// main after: 0\n// beneficiary1: 200\n// beneficiary2: 200\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jKWZI87wyTKITmAUtA56QxqERfsyldQQN6+g5KHcsDSgEzYGoZrJaPoFoXfs3Pxh2jYhu0J9+hF7Ml1tKGMOAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"docs","path":"gno.land/r/docs","files":[{"name":"docs.gno","body":"package docs\n\nfunc Render(_ string) string {\n\treturn `# Gno Examples Documentation\n\nWelcome to the Gno examples documentation index.\nExplore various examples to learn more about Gno functionality and usage.\n\n## Examples\n\n- [Hello World](/r/docs/hello) - A simple introductory example.\n- [Adder](/r/docs/adder) - An interactive example to update a number with transactions.\n- [Source](/r/docs/source) - View realm source code.\n- [AVL Pager](/r/docs/avl_pager) - Paginate through AVL tree items. \n- ...\n\n## Other resources\n\n- [Official documentation](https://github.com/gnolang/gno/tree/master/docs) \u003c!-- should be /docs with gnoweb embedding the docs/ folder. --\u003e\n`\n}\n"},{"name":"docs_test.gno","body":"package docs\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderHome(t *testing.T) {\n\toutput := Render(\"\")\n\n\t// Check for the presence of key sections\n\tif !contains(output, \"# Gno Examples Documentation\") {\n\t\tt.Errorf(\"Render output is missing the title.\")\n\t}\n\tif !contains(output, \"Official documentation\") {\n\t\tt.Errorf(\"Render output is missing the official documentation link.\")\n\t}\n}\n\nfunc contains(s, substr string) bool {\n\treturn strings.Index(s, substr) \u003e= 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ykDIOX9MxyxEZWIwDhSIRhtbPaxENIvAKg0GqC6hGGIfojirV7rLJdaaB/qudtzjlnMpVReQh+9iER7Jq36bAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"docs","path":"gno.land/r/docs","files":[{"name":"docs.gno","body":"package docs\n\nfunc Render(_ string) string {\n\treturn `# Gno Examples Documentation\n\nWelcome to the Gno examples documentation index.\nExplore various examples to learn more about Gno functionality and usage.\n\n## Examples\n\n- [Hello World](/r/docs/hello) - A simple introductory example.\n- [Adder](/r/docs/adder) - An interactive example to update a number with transactions.\n- [Source](/r/docs/source) - View realm source code.\n- [AVL Pager](/r/docs/avl_pager) - Paginate through AVL tree items. \n- ...\n\n## Other resources\n\n- [Official documentation](https://github.com/gnolang/gno/tree/master/docs) \u003c!-- should be /docs with gnoweb embedding the docs/ folder. --\u003e\n`\n}\n"},{"name":"docs_test.gno","body":"package docs\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderHome(t *testing.T) {\n\toutput := Render(\"\")\n\n\t// Check for the presence of key sections\n\tif !contains(output, \"# Gno Examples Documentation\") {\n\t\tt.Errorf(\"Render output is missing the title.\")\n\t}\n\tif !contains(output, \"Official documentation\") {\n\t\tt.Errorf(\"Render output is missing the official documentation link.\")\n\t}\n}\n\nfunc contains(s, substr string) bool {\n\treturn strings.Index(s, substr) \u003e= 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ykDIOX9MxyxEZWIwDhSIRhtbPaxENIvAKg0GqC6hGGIfojirV7rLJdaaB/qudtzjlnMpVReQh+9iER7Jq36bAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"docs","path":"gno.land/r/docs","files":[{"name":"docs.gno","body":"package docs\n\nfunc Render(_ string) string {\n\treturn `# Gno Examples Documentation\n\nWelcome to the Gno examples documentation index.\nExplore various examples to learn more about Gno functionality and usage.\n\n## Examples\n\n- [Hello World](/r/docs/hello) - A simple introductory example.\n- [Adder](/r/docs/adder) - An interactive example to update a number with transactions.\n- [Source](/r/docs/source) - View realm source code.\n- [AVL Pager](/r/docs/avl_pager) - Paginate through AVL tree items. \n- ...\n\n## Other resources\n\n- [Official documentation](https://github.com/gnolang/gno/tree/master/docs) \u003c!-- should be /docs with gnoweb embedding the docs/ folder. --\u003e\n`\n}\n"},{"name":"docs_test.gno","body":"package docs\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderHome(t *testing.T) {\n\toutput := Render(\"\")\n\n\t// Check for the presence of key sections\n\tif !contains(output, \"# Gno Examples Documentation\") {\n\t\tt.Errorf(\"Render output is missing the title.\")\n\t}\n\tif !contains(output, \"Official documentation\") {\n\t\tt.Errorf(\"Render output is missing the official documentation link.\")\n\t}\n}\n\nfunc contains(s, substr string) bool {\n\treturn strings.Index(s, substr) \u003e= 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ykDIOX9MxyxEZWIwDhSIRhtbPaxENIvAKg0GqC6hGGIfojirV7rLJdaaB/qudtzjlnMpVReQh+9iER7Jq36bAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"docs","path":"gno.land/r/docs","files":[{"name":"docs.gno","body":"package docs\n\nfunc Render(_ string) string {\n\treturn `# Gno Examples Documentation\n\nWelcome to the Gno examples documentation index.\nExplore various examples to learn more about Gno functionality and usage.\n\n## Examples\n\n- [Hello World](/r/docs/hello) - A simple introductory example.\n- [Adder](/r/docs/adder) - An interactive example to update a number with transactions.\n- [Source](/r/docs/source) - View realm source code.\n- [AVL Pager](/r/docs/avl_pager) - Paginate through AVL tree items. \n- [Img Embed](/r/docs/img_embed) - Demonstrates how to embed an image.\n- ...\n\u003c!-- meta issue with suggestions: https://github.com/gnolang/gno/issues/3292 --\u003e\n\n## Other resources\n\n- [Official documentation](https://github.com/gnolang/gno/tree/master/docs) \u003c!-- should be /docs with gnoweb embedding the docs/ folder. --\u003e\n`\n}\n"},{"name":"docs_test.gno","body":"package docs\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderHome(t *testing.T) {\n\toutput := Render(\"\")\n\n\t// Check for the presence of key sections\n\tif !contains(output, \"# Gno Examples Documentation\") {\n\t\tt.Errorf(\"Render output is missing the title.\")\n\t}\n\tif !contains(output, \"Official documentation\") {\n\t\tt.Errorf(\"Render output is missing the official documentation link.\")\n\t}\n}\n\nfunc contains(s, substr string) bool {\n\treturn strings.Index(s, substr) \u003e= 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"12mSMAyE38A0igtJU2D4gqwwDU9aK7oVAYp+c9CWtIR8GpNT3a8wy19L6h4zha5/9I4s1UnDDm/gIMWcdV4hAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"docs","path":"gno.land/r/docs","files":[{"name":"docs.gno","body":"package docs\n\nfunc Render(_ string) string {\n\treturn `# Gno Examples Documentation\n\nWelcome to the Gno examples documentation index.\nExplore various examples to learn more about Gno functionality and usage.\n\n## Examples\n\n- [Hello World](/r/docs/hello) - A simple introductory example.\n- [Adder](/r/docs/adder) - An interactive example to update a number with transactions.\n- [Source](/r/docs/source) - View realm source code.\n- [Buttons](/r/docs/buttons) - Add buttons to your realm's render.\n- [AVL Pager](/r/docs/avl_pager) - Paginate through AVL tree items. \n- [Img Embed](/r/docs/img_embed) - Demonstrates how to embed an image.\n- ...\n\u003c!-- meta issue with suggestions: https://github.com/gnolang/gno/issues/3292 --\u003e\n\n## Other resources\n\n- [Official documentation](https://github.com/gnolang/gno/tree/master/docs) \u003c!-- should be /docs with gnoweb embedding the docs/ folder. --\u003e\n`\n}\n"},{"name":"docs_test.gno","body":"package docs\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderHome(t *testing.T) {\n\toutput := Render(\"\")\n\n\t// Check for the presence of key sections\n\tif !contains(output, \"# Gno Examples Documentation\") {\n\t\tt.Errorf(\"Render output is missing the title.\")\n\t}\n\tif !contains(output, \"Official documentation\") {\n\t\tt.Errorf(\"Render output is missing the official documentation link.\")\n\t}\n}\n\nfunc contains(s, substr string) bool {\n\treturn strings.Index(s, substr) \u003e= 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ca6tdxbSRMV2/Jxpsl1OUgxCSZhm5l74+l1OfVa9DznqmbswJURjJndgtFoY4Jjdk+yYz+ioDHAW4aZ45l1XDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dom","path":"gno.land/p/demo/dom","files":[{"name":"dom.gno","body":"// XXX This is only used for testing in ./tests.\n// Otherwise this package is deprecated.\n// TODO: replace with a package that is supported, and delete this.\n\npackage dom\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Plot struct {\n\tName string\n\tPosts avl.Tree // postsCtr -\u003e *Post\n\tPostsCtr int\n}\n\nfunc (plot *Plot) AddPost(title string, body string) {\n\tctr := plot.PostsCtr\n\tplot.PostsCtr++\n\tkey := strconv.Itoa(ctr)\n\tpost := \u0026Post{\n\t\tTitle: title,\n\t\tBody: body,\n\t}\n\tplot.Posts.Set(key, post)\n}\n\nfunc (plot *Plot) String() string {\n\tstr := \"# [plot] \" + plot.Name + \"\\n\"\n\tif plot.Posts.Size() \u003e 0 {\n\t\tplot.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Post).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Post struct {\n\tTitle string\n\tBody string\n\tComments avl.Tree\n}\n\nfunc (post *Post) String() string {\n\tstr := \"## \" + post.Title + \"\\n\"\n\tstr += \"\"\n\tstr += post.Body\n\tif post.Comments.Size() \u003e 0 {\n\t\tpost.Comments.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Comment).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Comment struct {\n\tCreator string\n\tBody string\n}\n\nfunc (cmm Comment) String() string {\n\treturn cmm.Body + \" - @\" + cmm.Creator + \"\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xI+wjb39domeAYbQzF4FPv+SgqxcHTnIrKmp4Pl3pXxyDAiipq6ajHcpI4sVxeFmIw1NzTVbWdywj/Vs7TYCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dom","path":"gno.land/p/demo/dom","files":[{"name":"dom.gno","body":"// XXX This is only used for testing in ./tests.\n// Otherwise this package is deprecated.\n// TODO: replace with a package that is supported, and delete this.\n\npackage dom\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Plot struct {\n\tName string\n\tPosts avl.Tree // postsCtr -\u003e *Post\n\tPostsCtr int\n}\n\nfunc (plot *Plot) AddPost(title string, body string) {\n\tctr := plot.PostsCtr\n\tplot.PostsCtr++\n\tkey := strconv.Itoa(ctr)\n\tpost := \u0026Post{\n\t\tTitle: title,\n\t\tBody: body,\n\t}\n\tplot.Posts.Set(key, post)\n}\n\nfunc (plot *Plot) String() string {\n\tstr := \"# [plot] \" + plot.Name + \"\\n\"\n\tif plot.Posts.Size() \u003e 0 {\n\t\tplot.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Post).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Post struct {\n\tTitle string\n\tBody string\n\tComments avl.Tree\n}\n\nfunc (post *Post) String() string {\n\tstr := \"## \" + post.Title + \"\\n\"\n\tstr += \"\"\n\tstr += post.Body\n\tif post.Comments.Size() \u003e 0 {\n\t\tpost.Comments.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Comment).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Comment struct {\n\tCreator string\n\tBody string\n}\n\nfunc (cmm Comment) String() string {\n\treturn cmm.Body + \" - @\" + cmm.Creator + \"\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xI+wjb39domeAYbQzF4FPv+SgqxcHTnIrKmp4Pl3pXxyDAiipq6ajHcpI4sVxeFmIw1NzTVbWdywj/Vs7TYCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"dom","path":"gno.land/p/demo/dom","files":[{"name":"dom.gno","body":"// XXX This is only used for testing in ./tests.\n// Otherwise this package is deprecated.\n// TODO: replace with a package that is supported, and delete this.\n\npackage dom\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Plot struct {\n\tName string\n\tPosts avl.Tree // postsCtr -\u003e *Post\n\tPostsCtr int\n}\n\nfunc (plot *Plot) AddPost(title string, body string) {\n\tctr := plot.PostsCtr\n\tplot.PostsCtr++\n\tkey := strconv.Itoa(ctr)\n\tpost := \u0026Post{\n\t\tTitle: title,\n\t\tBody: body,\n\t}\n\tplot.Posts.Set(key, post)\n}\n\nfunc (plot *Plot) String() string {\n\tstr := \"# [plot] \" + plot.Name + \"\\n\"\n\tif plot.Posts.Size() \u003e 0 {\n\t\tplot.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Post).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Post struct {\n\tTitle string\n\tBody string\n\tComments avl.Tree\n}\n\nfunc (post *Post) String() string {\n\tstr := \"## \" + post.Title + \"\\n\"\n\tstr += \"\"\n\tstr += post.Body\n\tif post.Comments.Size() \u003e 0 {\n\t\tpost.Comments.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Comment).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Comment struct {\n\tCreator string\n\tBody string\n}\n\nfunc (cmm Comment) String() string {\n\treturn cmm.Body + \" - @\" + cmm.Creator + \"\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xI+wjb39domeAYbQzF4FPv+SgqxcHTnIrKmp4Pl3pXxyDAiipq6ajHcpI4sVxeFmIw1NzTVbWdywj/Vs7TYCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo","path":"gno.land/p/demo/echo1","files":[{"name":"echo.gno","body":"package echo\n\n/*\n * This realm echoes the `path` argument it received.\n * Can be used by developers as a simple endpoint to test\n * forbidden characters, for pentesting or simply to\n * test it works.\n *\n * See also r/demo/print (to print various thing like user address)\n */\nfunc Render(path string) string {\n\treturn path\n}\n"},{"name":"echo_test.gno","body":"package echo\n\nimport \"testing\"\n\nfunc Test(t *testing.T) {\n\tif Render(\"aa\") != \"aa\" {\n\t\tt.Fail()\n\t}\n\tif Render(\"\") != \"\" {\n\t\tt.Fail()\n\t}\n}\n"},{"name":"gno.mod","body":"module gno.land/r/demo/echo\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JhRDqYk6j3UyGVAX7TOWN7IeiqxcJ3XITPnG/Hfx0jJKbpx94YS5WM3rtn9rHLum8MrbLesPijwbfVi2C9KkBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo","path":"gno.land/r//echo","files":[{"name":"package.gno","body":"package echo\n\nfunc Echo(s string) string {\n return s\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aO8nSJw5atiGXW6zo6rhYHdoaQ8DrOPk3Mi6HSFByBgW5N6PtEYNOaB7l7VhQGTdYp5E5nH0/cO04MyM7TOeAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo","path":"gno.land/r/demo/echo","files":[{"name":"echo.gno","body":"package echo\n\n/*\n * This realm echoes the `path` argument it received.\n * Can be used by developers as a simple endpoint to test\n * forbidden characters, for pentesting or simply to\n * test it works.\n *\n * See also r/demo/print (to print various thing like user address)\n */\nfunc Render(path string) string {\n\treturn path\n}\n"},{"name":"echo_test.gno","body":"package echo\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc Test(t *testing.T) {\n\turequire.Equal(t, \"aa\", Render(\"aa\"))\n\turequire.Equal(t, \"\", Render(\"\"))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xsjhmvIbIbjx4ClVcJ7IG/w/93QbiEYWEcktJWrtFLsSHwXYBzp+DbxeXMdJ+1X3gqK1IaWL8gZsAaXqUrvfDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo","path":"gno.land/r/demo/echo","files":[{"name":"echo.gno","body":"package echo\n\n/*\n * This realm echoes the `path` argument it received.\n * Can be used by developers as a simple endpoint to test\n * forbidden characters, for pentesting or simply to\n * test it works.\n *\n * See also r/demo/print (to print various thing like user address)\n */\nfunc Render(path string) string {\n\treturn path\n}\n"},{"name":"echo_test.gno","body":"package echo\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc Test(t *testing.T) {\n\turequire.Equal(t, \"aa\", Render(\"aa\"))\n\turequire.Equal(t, \"\", Render(\"\"))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xsjhmvIbIbjx4ClVcJ7IG/w/93QbiEYWEcktJWrtFLsSHwXYBzp+DbxeXMdJ+1X3gqK1IaWL8gZsAaXqUrvfDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo","path":"gno.land/r/demo/echo","files":[{"name":"echo.gno","body":"package echo\n\n/*\n * This realm echoes the `path` argument it received.\n * Can be used by developers as a simple endpoint to test\n * forbidden characters, for pentesting or simply to\n * test it works.\n *\n * See also r/demo/print (to print various thing like user address)\n */\nfunc Render(path string) string {\n\treturn path\n}\n"},{"name":"echo_test.gno","body":"package echo\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc Test(t *testing.T) {\n\turequire.Equal(t, \"aa\", Render(\"aa\"))\n\turequire.Equal(t, \"\", Render(\"\"))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xsjhmvIbIbjx4ClVcJ7IG/w/93QbiEYWEcktJWrtFLsSHwXYBzp+DbxeXMdJ+1X3gqK1IaWL8gZsAaXqUrvfDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo","path":"gno.land/r/demo/echo1","files":[{"name":"echo.gno","body":"package echo\n\n/*\n * This realm echoes the `path` argument it received.\n * Can be used by developers as a simple endpoint to test\n * forbidden characters, for pentesting or simply to\n * test it works.\n *\n * See also r/demo/print (to print various thing like user address)\n */\nfunc Render(path string) string {\n\treturn path\n}\n"},{"name":"echo_test.gno","body":"package echo\n\nimport \"testing\"\n\nfunc Test(t *testing.T) {\n\tif Render(\"aa\") != \"aa\" {\n\t\tt.Fail()\n\t}\n\tif Render(\"\") != \"\" {\n\t\tt.Fail()\n\t}\n}\n"},{"name":"gno.mod","body":"module gno.land/r/demo/echo\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"68eLBl7pH8gbsN2ZWl4yNPipBAmOu8m9BbYwobSdxVoEd6V+S7gD4YMAlVqP40GCbA7q6riNaqXBC7ryRXUMCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"echo111","path":"gno.land/r//echo111","files":[{"name":"package.gno","body":"package echo\n\nfunc Echo(s string) string {\n return s\n}"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5pOPd38oGu0thElSyeB8rLl+2iHlk2PMouj9Y0daB/WrJ7rDTrkDuJqcUu1gncxMwaSolx1EowANnP2wmc4lBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"emit","path":"gno.land/r/demo/emit","files":[{"name":"emit.gno","body":"// Package emit demonstrates how to use the std.Emit() function\n// to emit Gno events that can be used to track data changes off-chain.\n// std.Emit is variadic; apart from the event name, it can take in any number of key-value pairs to emit.\npackage emit\n\nimport (\n\t\"std\"\n)\n\nfunc Emit(value string) {\n\tstd.Emit(\"EventName\", \"key\", value)\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/demo/emit\"\n\nfunc main() {\n\temit.Emit(\"foo\")\n\temit.Emit(\"bar\")\n}\n\n// Events:\n// [\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"foo\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// },\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"bar\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QEm5jNXDn4w9cNxE3B5kYnlqmHG3hzXAbvfkaVzzPJcgyd9os8IDarJ6gLxs6oE/aIh0ihHtHvyYibs4iS6KCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"emit","path":"gno.land/r/demo/emit","files":[{"name":"emit.gno","body":"// Package emit demonstrates how to use the std.Emit() function\n// to emit Gno events that can be used to track data changes off-chain.\n// std.Emit is variadic; apart from the event name, it can take in any number of key-value pairs to emit.\npackage emit\n\nimport (\n\t\"std\"\n)\n\nfunc Emit(value string) {\n\tstd.Emit(\"EventName\", \"key\", value)\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/demo/emit\"\n\nfunc main() {\n\temit.Emit(\"foo\")\n\temit.Emit(\"bar\")\n}\n\n// Events:\n// [\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"foo\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// },\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"bar\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QEm5jNXDn4w9cNxE3B5kYnlqmHG3hzXAbvfkaVzzPJcgyd9os8IDarJ6gLxs6oE/aIh0ihHtHvyYibs4iS6KCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"emit","path":"gno.land/r/demo/emit","files":[{"name":"emit.gno","body":"// Package emit demonstrates how to use the std.Emit() function\n// to emit Gno events that can be used to track data changes off-chain.\n// std.Emit is variadic; apart from the event name, it can take in any number of key-value pairs to emit.\npackage emit\n\nimport (\n\t\"std\"\n)\n\nfunc Emit(value string) {\n\tstd.Emit(\"EventName\", \"key\", value)\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/demo/emit\"\n\nfunc main() {\n\temit.Emit(\"foo\")\n\temit.Emit(\"bar\")\n}\n\n// Events:\n// [\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"foo\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// },\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"bar\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QEm5jNXDn4w9cNxE3B5kYnlqmHG3hzXAbvfkaVzzPJcgyd9os8IDarJ6gLxs6oE/aIh0ihHtHvyYibs4iS6KCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"entropy","path":"gno.land/p/demo/entropy","files":[{"name":"entropy.gno","body":"// Entropy generates fully deterministic, cost-effective, and hard to guess\n// numbers.\n//\n// It is designed both for single-usage, like seeding math/rand or for being\n// reused which increases the entropy and its cost effectiveness.\n//\n// Disclaimer: this package is unsafe and won't prevent others to guess values\n// in advance.\n//\n// It uses the Bernstein's hash djb2 to be CPU-cycle efficient.\npackage entropy\n\nimport (\n\t\"math\"\n\t\"std\"\n\t\"time\"\n)\n\ntype Instance struct {\n\tvalue uint32\n}\n\nfunc New() *Instance {\n\tr := Instance{value: 5381}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc FromSeed(seed uint32) *Instance {\n\tr := Instance{value: seed}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc (i *Instance) Seed() uint32 {\n\treturn i.value\n}\n\nfunc (i *Instance) djb2String(input string) {\n\tfor _, c := range input {\n\t\ti.djb2Uint32(uint32(c))\n\t}\n}\n\n// super fast random algorithm.\n// http://www.cse.yorku.ca/~oz/hash.html\nfunc (i *Instance) djb2Uint32(input uint32) {\n\ti.value = (i.value \u003c\u003c 5) + i.value + input\n}\n\n// AddEntropy uses various runtime variables to add entropy to the existing seed.\nfunc (i *Instance) addEntropy() {\n\t// FIXME: reapply the 5381 initial value?\n\n\t// inherit previous entropy\n\t// nothing to do\n\n\t// handle callers\n\t{\n\t\tcaller1 := std.GetCallerAt(1).String()\n\t\ti.djb2String(caller1)\n\t\tcaller2 := std.GetCallerAt(2).String()\n\t\ti.djb2String(caller2)\n\t}\n\n\t// height\n\t{\n\t\theight := std.GetHeight()\n\t\tif height \u003e= math.MaxUint32 {\n\t\t\theight -= math.MaxUint32\n\t\t}\n\t\ti.djb2Uint32(uint32(height))\n\t}\n\n\t// time\n\t{\n\t\tsecs := time.Now().Second()\n\t\ti.djb2Uint32(uint32(secs))\n\t\tnsecs := time.Now().Nanosecond()\n\t\ti.djb2Uint32(uint32(nsecs))\n\t}\n\n\t// FIXME: compute other hard-to-guess but deterministic variables, like real gas?\n}\n\nfunc (i *Instance) Value() uint32 {\n\ti.addEntropy()\n\treturn i.value\n}\n"},{"name":"entropy_test.gno","body":"package entropy\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestInstance(t *testing.T) {\n\tinstance := New()\n\tif instance == nil {\n\t\tt.Errorf(\"instance should not be nil\")\n\t}\n}\n\nfunc TestInstanceValue(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc computeValue(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/entropy\"\n)\n\nfunc main() {\n\t// initial\n\tprintln(\"---\")\n\tr := entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\n\t// should be the same\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\n\tstd.TestSkipHeights(1)\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n}\n\n// Output:\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// ---\n// 49506731\n// 1539580078\n// 2695928529\n// 1895482388\n// 3462727799\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C27yIEoVA5mNTKSX6MsFG+hMP6/lv3pvWmWiDwAKuOharA+7YKViUR9kobVA+yxJYNraZ9oetvl3NBl8XxPlDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"entropy","path":"gno.land/p/demo/entropy","files":[{"name":"entropy.gno","body":"// Entropy generates fully deterministic, cost-effective, and hard to guess\n// numbers.\n//\n// It is designed both for single-usage, like seeding math/rand or for being\n// reused which increases the entropy and its cost effectiveness.\n//\n// Disclaimer: this package is unsafe and won't prevent others to guess values\n// in advance.\n//\n// It uses the Bernstein's hash djb2 to be CPU-cycle efficient.\npackage entropy\n\nimport (\n\t\"math\"\n\t\"std\"\n\t\"time\"\n)\n\ntype Instance struct {\n\tvalue uint32\n}\n\nfunc New() *Instance {\n\tr := Instance{value: 5381}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc FromSeed(seed uint32) *Instance {\n\tr := Instance{value: seed}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc (i *Instance) Seed() uint32 {\n\treturn i.value\n}\n\nfunc (i *Instance) djb2String(input string) {\n\tfor _, c := range input {\n\t\ti.djb2Uint32(uint32(c))\n\t}\n}\n\n// super fast random algorithm.\n// http://www.cse.yorku.ca/~oz/hash.html\nfunc (i *Instance) djb2Uint32(input uint32) {\n\ti.value = (i.value \u003c\u003c 5) + i.value + input\n}\n\n// AddEntropy uses various runtime variables to add entropy to the existing seed.\nfunc (i *Instance) addEntropy() {\n\t// FIXME: reapply the 5381 initial value?\n\n\t// inherit previous entropy\n\t// nothing to do\n\n\t// handle callers\n\t{\n\t\tcaller1 := std.GetCallerAt(1).String()\n\t\ti.djb2String(caller1)\n\t\tcaller2 := std.GetCallerAt(2).String()\n\t\ti.djb2String(caller2)\n\t}\n\n\t// height\n\t{\n\t\theight := std.GetHeight()\n\t\tif height \u003e= math.MaxUint32 {\n\t\t\theight -= math.MaxUint32\n\t\t}\n\t\ti.djb2Uint32(uint32(height))\n\t}\n\n\t// time\n\t{\n\t\tsecs := time.Now().Second()\n\t\ti.djb2Uint32(uint32(secs))\n\t\tnsecs := time.Now().Nanosecond()\n\t\ti.djb2Uint32(uint32(nsecs))\n\t}\n\n\t// FIXME: compute other hard-to-guess but deterministic variables, like real gas?\n}\n\nfunc (i *Instance) Value() uint32 {\n\ti.addEntropy()\n\treturn i.value\n}\n"},{"name":"entropy_test.gno","body":"package entropy\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestInstance(t *testing.T) {\n\tinstance := New()\n\tif instance == nil {\n\t\tt.Errorf(\"instance should not be nil\")\n\t}\n}\n\nfunc TestInstanceValue(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc computeValue(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/entropy\"\n)\n\nfunc main() {\n\t// initial\n\tprintln(\"---\")\n\tr := entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\n\t// should be the same\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\n\tstd.TestSkipHeights(1)\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n}\n\n// Output:\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// ---\n// 49506731\n// 1539580078\n// 2695928529\n// 1895482388\n// 3462727799\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C27yIEoVA5mNTKSX6MsFG+hMP6/lv3pvWmWiDwAKuOharA+7YKViUR9kobVA+yxJYNraZ9oetvl3NBl8XxPlDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"entropy","path":"gno.land/p/demo/entropy","files":[{"name":"entropy.gno","body":"// Entropy generates fully deterministic, cost-effective, and hard to guess\n// numbers.\n//\n// It is designed both for single-usage, like seeding math/rand or for being\n// reused which increases the entropy and its cost effectiveness.\n//\n// Disclaimer: this package is unsafe and won't prevent others to guess values\n// in advance.\n//\n// It uses the Bernstein's hash djb2 to be CPU-cycle efficient.\npackage entropy\n\nimport (\n\t\"math\"\n\t\"std\"\n\t\"time\"\n)\n\ntype Instance struct {\n\tvalue uint32\n}\n\nfunc New() *Instance {\n\tr := Instance{value: 5381}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc FromSeed(seed uint32) *Instance {\n\tr := Instance{value: seed}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc (i *Instance) Seed() uint32 {\n\treturn i.value\n}\n\nfunc (i *Instance) djb2String(input string) {\n\tfor _, c := range input {\n\t\ti.djb2Uint32(uint32(c))\n\t}\n}\n\n// super fast random algorithm.\n// http://www.cse.yorku.ca/~oz/hash.html\nfunc (i *Instance) djb2Uint32(input uint32) {\n\ti.value = (i.value \u003c\u003c 5) + i.value + input\n}\n\n// AddEntropy uses various runtime variables to add entropy to the existing seed.\nfunc (i *Instance) addEntropy() {\n\t// FIXME: reapply the 5381 initial value?\n\n\t// inherit previous entropy\n\t// nothing to do\n\n\t// handle callers\n\t{\n\t\tcaller1 := std.GetCallerAt(1).String()\n\t\ti.djb2String(caller1)\n\t\tcaller2 := std.GetCallerAt(2).String()\n\t\ti.djb2String(caller2)\n\t}\n\n\t// height\n\t{\n\t\theight := std.GetHeight()\n\t\tif height \u003e= math.MaxUint32 {\n\t\t\theight -= math.MaxUint32\n\t\t}\n\t\ti.djb2Uint32(uint32(height))\n\t}\n\n\t// time\n\t{\n\t\tsecs := time.Now().Second()\n\t\ti.djb2Uint32(uint32(secs))\n\t\tnsecs := time.Now().Nanosecond()\n\t\ti.djb2Uint32(uint32(nsecs))\n\t}\n\n\t// FIXME: compute other hard-to-guess but deterministic variables, like real gas?\n}\n\nfunc (i *Instance) Value() uint32 {\n\ti.addEntropy()\n\treturn i.value\n}\n"},{"name":"entropy_test.gno","body":"package entropy\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestInstance(t *testing.T) {\n\tinstance := New()\n\tif instance == nil {\n\t\tt.Errorf(\"instance should not be nil\")\n\t}\n}\n\nfunc TestInstanceValue(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc computeValue(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/entropy\"\n)\n\nfunc main() {\n\t// initial\n\tprintln(\"---\")\n\tr := entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\n\t// should be the same\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\n\tstd.TestSkipHeights(1)\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n}\n\n// Output:\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// ---\n// 49506731\n// 1539580078\n// 2695928529\n// 1895482388\n// 3462727799\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C27yIEoVA5mNTKSX6MsFG+hMP6/lv3pvWmWiDwAKuOharA+7YKViUR9kobVA+yxJYNraZ9oetvl3NBl8XxPlDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"entropy","path":"gno.land/p/demo/entropy","files":[{"name":"entropy.gno","body":"// Entropy generates fully deterministic, cost-effective, and hard to guess\n// numbers.\n//\n// It is designed both for single-usage, like seeding math/rand or for being\n// reused which increases the entropy and its cost effectiveness.\n//\n// Disclaimer: this package is unsafe and won't prevent others to guess values\n// in advance.\n//\n// It uses the Bernstein's hash djb2 to be CPU-cycle efficient.\npackage entropy\n\nimport (\n\t\"math\"\n\t\"std\"\n\t\"time\"\n)\n\ntype Instance struct {\n\tvalue uint32\n}\n\nfunc New() *Instance {\n\tr := Instance{value: 5381}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc FromSeed(seed uint32) *Instance {\n\tr := Instance{value: seed}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc (i *Instance) Seed() uint32 {\n\treturn i.value\n}\n\nfunc (i *Instance) djb2String(input string) {\n\tfor _, c := range input {\n\t\ti.djb2Uint32(uint32(c))\n\t}\n}\n\n// super fast random algorithm.\n// http://www.cse.yorku.ca/~oz/hash.html\nfunc (i *Instance) djb2Uint32(input uint32) {\n\ti.value = (i.value \u003c\u003c 5) + i.value + input\n}\n\n// AddEntropy uses various runtime variables to add entropy to the existing seed.\nfunc (i *Instance) addEntropy() {\n\t// FIXME: reapply the 5381 initial value?\n\n\t// inherit previous entropy\n\t// nothing to do\n\n\t// handle callers\n\t{\n\t\tcaller1 := std.GetCallerAt(1).String()\n\t\ti.djb2String(caller1)\n\t\tcaller2 := std.GetCallerAt(2).String()\n\t\ti.djb2String(caller2)\n\t}\n\n\t// height\n\t{\n\t\theight := std.GetHeight()\n\t\tif height \u003e= math.MaxUint32 {\n\t\t\theight -= math.MaxUint32\n\t\t}\n\t\ti.djb2Uint32(uint32(height))\n\t}\n\n\t// time\n\t{\n\t\tsecs := time.Now().Second()\n\t\ti.djb2Uint32(uint32(secs))\n\t\tnsecs := time.Now().Nanosecond()\n\t\ti.djb2Uint32(uint32(nsecs))\n\t}\n\n\t// FIXME: compute other hard-to-guess but deterministic variables, like real gas?\n}\n\nfunc (i *Instance) Value() uint32 {\n\ti.addEntropy()\n\treturn i.value\n}\n\nfunc (i *Instance) Value64() uint64 {\n\ti.addEntropy()\n\thigh := i.value\n\ti.addEntropy()\n\n\treturn (uint64(high) \u003c\u003c 32) | uint64(i.value)\n}\n"},{"name":"entropy_test.gno","body":"package entropy\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestInstance(t *testing.T) {\n\tinstance := New()\n\tif instance == nil {\n\t\tt.Errorf(\"instance should not be nil\")\n\t}\n}\n\nfunc TestInstanceValue(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc TestInstanceValue64(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue64(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue64(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue64(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc computeValue(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n\nfunc computeValue64(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value64())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/entropy\"\n)\n\nfunc main() {\n\t// initial\n\tprintln(\"---\")\n\tr := entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value64())\n\n\t// should be the same\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value64())\n\n\tstd.TestSkipHeights(1)\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value64())\n}\n\n// Output:\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// 6353385488959065197\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// 6353385488959065197\n// ---\n// 49506731\n// 1539580078\n// 2695928529\n// 1895482388\n// 3462727799\n// 16745038698684748445\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+z2pvWK7pSlLmbZsF1kBAPtR3UunIDXdr8OVMyRpc1uhQThLHmsOtz7/1Dpd1DpDGCGzqGS0DnlIfE0vO5NfAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"eval","path":"gno.land/r/demo/math_eval","files":[{"name":"math_eval.gno","body":"// eval realm is capable of evaluating 32-bit integer\n// expressions as they would appear in Go. For example:\n// /r/demo/math_eval:(4+12)/2-1+11*15\npackage eval\n\nimport (\n\tevalint32 \"gno.land/p/demo/math_eval/int32\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(p string) string {\n\tif len(p) == 0 {\n\t\treturn `\nevaluates 32-bit integer expressions. for example:\n\t\t\n[(4+12)/2-1+11*15](/r/demo/math_eval:(4+12)/2-1+11*15)\n\n`\n\t}\n\texpr, err := evalint32.Parse(p)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\tres, err := evalint32.Eval(expr, nil)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\treturn ufmt.Sprintf(\"%s = %d\", p, res)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X0X70ZiKzcHarpI6Mvd8KYof8m1eNcFgKI0WL8zFw6AxOJMDmEkF/B3vGkZypHwW2054IcKWNP0Fkoi8JoKZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"eval","path":"gno.land/r/demo/math_eval","files":[{"name":"math_eval.gno","body":"// eval realm is capable of evaluating 32-bit integer\n// expressions as they would appear in Go. For example:\n// /r/demo/math_eval:(4+12)/2-1+11*15\npackage eval\n\nimport (\n\tevalint32 \"gno.land/p/demo/math_eval/int32\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(p string) string {\n\tif len(p) == 0 {\n\t\treturn `\nevaluates 32-bit integer expressions. for example:\n\t\t\n[(4+12)/2-1+11*15](/r/demo/math_eval:(4+12)/2-1+11*15)\n\n`\n\t}\n\texpr, err := evalint32.Parse(p)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\tres, err := evalint32.Eval(expr, nil)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\treturn ufmt.Sprintf(\"%s = %d\", p, res)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X0X70ZiKzcHarpI6Mvd8KYof8m1eNcFgKI0WL8zFw6AxOJMDmEkF/B3vGkZypHwW2054IcKWNP0Fkoi8JoKZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"eval","path":"gno.land/r/demo/math_eval","files":[{"name":"math_eval.gno","body":"// eval realm is capable of evaluating 32-bit integer\n// expressions as they would appear in Go. For example:\n// /r/demo/math_eval:(4+12)/2-1+11*15\npackage eval\n\nimport (\n\tevalint32 \"gno.land/p/demo/math_eval/int32\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(p string) string {\n\tif len(p) == 0 {\n\t\treturn `\nevaluates 32-bit integer expressions. for example:\n\t\t\n[(4+12)/2-1+11*15](/r/demo/math_eval:(4+12)/2-1+11*15)\n\n`\n\t}\n\texpr, err := evalint32.Parse(p)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\tres, err := evalint32.Eval(expr, nil)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\treturn ufmt.Sprintf(\"%s = %d\", p, res)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X0X70ZiKzcHarpI6Mvd8KYof8m1eNcFgKI0WL8zFw6AxOJMDmEkF/B3vGkZypHwW2054IcKWNP0Fkoi8JoKZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"event_emitter","path":"gno.land/r/demo/event_emitter","files":[{"name":"package.gno","body":"package event_emitter\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n std.Emit(\"Event01\", key, value)\n\nreturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n std.Emit(\"Event02\", key, value)\n\nreturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n std.Emit(\"Event03\", key, value)\n\nreturn \"Event03-\" + key + \"-\" + \"value\"\n}"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c63ha/FwI/Us0A6RvVuL76aOJXFagOdKhN91iFPknGoXTa67BIR3PL7mGX4V65hXhZxMBWDE0R0wjf/jthcFCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"event_emitter","path":"gno.land/r/demo/event_emitter","files":[{"name":"package.gno","body":"package event_emitter\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"beRtmcqEcspn3EAcKgsd8K4u5Q83jEkhwOL28OWMIF69H6kbfvWZYv5qunv7EXseX/Xd4LCednsef9M+Sz07BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"event_emitter","path":"gno.land/r/demo/event_emitter","files":[{"name":"package.gno","body":"package event_emitter\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"beRtmcqEcspn3EAcKgsd8K4u5Q83jEkhwOL28OWMIF69H6kbfvWZYv5qunv7EXseX/Xd4LCednsef9M+Sz07BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"events","path":"gno.land/r/gnoland/events","files":[{"name":"administration.gno","body":"package events\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable/exts/authorizable\"\n)\n\nvar (\n\tsu = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\") // @leohhhn\n\tauth = authorizable.NewAuthorizableWithAddress(su)\n)\n\n// GetOwner gets the owner of the events realm\nfunc GetOwner() std.Address {\n\treturn auth.Owner()\n}\n\n// AddModerator adds a moderator to the events realm\nfunc AddModerator(mod std.Address) {\n\tauth.AssertCallerIsOwner()\n\n\tif err := auth.AddToAuthList(mod); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package events\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n)\n\nvar (\n\tErrEmptyName = errors.New(\"event name cannot be empty\")\n\tErrNoSuchID = errors.New(\"event with specified ID does not exist\")\n\tErrMinWidgetSize = errors.New(\"you need to request at least 1 event to render\")\n\tErrMaxWidgetSize = errors.New(\"maximum number of events in widget is\" + strconv.Itoa(MaxWidgetSize))\n\tErrDescriptionTooLong = errors.New(\"event description is too long\")\n\tErrInvalidStartTime = errors.New(\"invalid start time format\")\n\tErrInvalidEndTime = errors.New(\"invalid end time format\")\n\tErrEndBeforeStart = errors.New(\"end time cannot be before start time\")\n\tErrStartEndTimezonemMismatch = errors.New(\"start and end timezones are not the same\")\n)\n"},{"name":"events.gno","body":"// Package events allows you to upload data about specific IRL/online events\n// It includes dynamic support for updating rendering events based on their\n// status, ie if they are upcoming, in progress, or in the past.\npackage events\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\tEvent struct {\n\t\tid string\n\t\tname string // name of event\n\t\tdescription string // short description of event\n\t\tlink string // link to auth corresponding web2 page, ie eventbrite/luma or conference page\n\t\tlocation string // location of the event\n\t\tstartTime time.Time // given in RFC3339\n\t\tendTime time.Time // end time of the event, given in RFC3339\n\t}\n\n\teventsSlice []*Event\n)\n\nvar (\n\tevents = make(eventsSlice, 0) // sorted\n\tidCounter seqid.ID\n)\n\nconst (\n\tmaxDescLength = 100\n\tEventAdded = \"EventAdded\"\n\tEventDeleted = \"EventDeleted\"\n\tEventEdited = \"EventEdited\"\n)\n\n// AddEvent adds auth new event\n// Start time \u0026 end time need to be specified in RFC3339, ie 2024-08-08T12:00:00+02:00\nfunc AddEvent(name, description, link, location, startTime, endTime string) (string, error) {\n\tauth.AssertOnAuthList()\n\n\tif strings.TrimSpace(name) == \"\" {\n\t\treturn \"\", ErrEmptyName\n\t}\n\n\tif len(description) \u003e maxDescLength {\n\t\treturn \"\", ufmt.Errorf(\"%s: provided length is %d, maximum is %d\", ErrDescriptionTooLong, len(description), maxDescLength)\n\t}\n\n\t// Parse times\n\tst, et, err := parseTimes(startTime, endTime)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tid := idCounter.Next().String()\n\te := \u0026Event{\n\t\tid: id,\n\t\tname: name,\n\t\tdescription: description,\n\t\tlink: link,\n\t\tlocation: location,\n\t\tstartTime: st,\n\t\tendTime: et,\n\t}\n\n\tevents = append(events, e)\n\tsort.Sort(events)\n\n\tstd.Emit(EventAdded,\n\t\t\"id\", e.id,\n\t)\n\n\treturn id, nil\n}\n\n// DeleteEvent deletes an event with auth given ID\nfunc DeleteEvent(id string) {\n\tauth.AssertOnAuthList()\n\n\te, idx, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tevents = append(events[:idx], events[idx+1:]...)\n\n\tstd.Emit(EventDeleted,\n\t\t\"id\", e.id,\n\t)\n}\n\n// EditEvent edits an event with auth given ID\n// It only updates values corresponding to non-empty arguments sent with the call\n// Note: if you need to update the start time or end time, you need to provide both every time\nfunc EditEvent(id string, name, description, link, location, startTime, endTime string) {\n\tauth.AssertOnAuthList()\n\n\te, _, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Set only valid values\n\tif strings.TrimSpace(name) != \"\" {\n\t\te.name = name\n\t}\n\n\tif strings.TrimSpace(description) != \"\" {\n\t\te.description = description\n\t}\n\n\tif strings.TrimSpace(link) != \"\" {\n\t\te.link = link\n\t}\n\n\tif strings.TrimSpace(location) != \"\" {\n\t\te.location = location\n\t}\n\n\tif strings.TrimSpace(startTime) != \"\" || strings.TrimSpace(endTime) != \"\" {\n\t\tst, et, err := parseTimes(startTime, endTime)\n\t\tif err != nil {\n\t\t\tpanic(err) // need to also revert other state changes\n\t\t}\n\n\t\toldStartTime := e.startTime\n\t\te.startTime = st\n\t\te.endTime = et\n\n\t\t// If sort order was disrupted, sort again\n\t\tif oldStartTime != e.startTime {\n\t\t\tsort.Sort(events)\n\t\t}\n\t}\n\n\tstd.Emit(EventEdited,\n\t\t\"id\", e.id,\n\t)\n}\n\nfunc GetEventByID(id string) (*Event, int, error) {\n\tfor i, event := range events {\n\t\tif event.id == id {\n\t\t\treturn event, i, nil\n\t\t}\n\t}\n\n\treturn nil, -1, ErrNoSuchID\n}\n\n// Len returns the length of the slice\nfunc (m eventsSlice) Len() int {\n\treturn len(m)\n}\n\n// Less compares the startTime fields of two elements\n// In this case, events will be sorted by largest startTime first (upcoming \u003e past)\nfunc (m eventsSlice) Less(i, j int) bool {\n\treturn m[i].startTime.After(m[j].startTime)\n}\n\n// Swap swaps two elements in the slice\nfunc (m eventsSlice) Swap(i, j int) {\n\tm[i], m[j] = m[j], m[i]\n}\n\n// parseTimes parses the start and end time for an event and checks for possible errors\nfunc parseTimes(startTime, endTime string) (time.Time, time.Time, error) {\n\tst, err := time.Parse(time.RFC3339, startTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidStartTime, err.Error())\n\t}\n\n\tet, err := time.Parse(time.RFC3339, endTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidEndTime, err.Error())\n\t}\n\n\tif et.Before(st) {\n\t\treturn time.Time{}, time.Time{}, ErrEndBeforeStart\n\t}\n\n\t_, stOffset := st.Zone()\n\t_, etOffset := et.Zone()\n\tif stOffset != etOffset {\n\t\treturn time.Time{}, time.Time{}, ErrStartEndTimezonemMismatch\n\t}\n\n\treturn st, et, nil\n}\n"},{"name":"events_test.gno","body":"package events\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tsuRealm = std.NewUserRealm(su)\n\n\tnow = \"2009-02-13T23:31:30Z\" // time.Now() is hardcoded to this value in the gno test machine currently\n\tparsedTimeNow, _ = time.Parse(time.RFC3339, now)\n)\n\nfunc TestAddEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 1\", \"this event is upcoming\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"Event 1\") {\n\t\tt.Fatalf(\"Expected to find Event 1 in render\")\n\t}\n\n\te2Start := parsedTimeNow.Add(-time.Hour * 24 * 5)\n\te2End := e2Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 2\", \"this event is in the past\", \"gno.land\", \"gnome land\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\n\tgot = renderHome(false)\n\n\tupcomingPos := strings.Index(got, \"## Upcoming events\")\n\tpastPos := strings.Index(got, \"## Past events\")\n\n\te1Pos := strings.Index(got, \"Event 1\")\n\te2Pos := strings.Index(got, \"Event 2\")\n\n\t// expected index ordering: upcoming \u003c e1 \u003c past \u003c e2\n\tif e1Pos \u003c upcomingPos || e1Pos \u003e pastPos {\n\t\tt.Fatalf(\"Expected to find Event 1 in Upcoming events\")\n\t}\n\n\tif e2Pos \u003c upcomingPos || e2Pos \u003c pastPos || e2Pos \u003c e1Pos {\n\t\tt.Fatalf(\"Expected to find Event 2 on auth different pos\")\n\t}\n\n\t// larger index =\u003e smaller startTime (future =\u003e past)\n\tif events[0].startTime.Unix() \u003c events[1].startTime.Unix() {\n\t\tt.Fatalf(\"expected ordering to be different\")\n\t}\n}\n\nfunc TestAddEventErrors(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t_, err := AddEvent(\"\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorIs(t, err, ErrEmptyName)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:30:31Z\")\n\tuassert.ErrorIs(t, err, ErrEndBeforeStart)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31+06:00\", \"2009-02-13T23:33:31+02:00\")\n\tuassert.ErrorIs(t, err, ErrStartEndTimezonemMismatch)\n\n\ttooLongDesc := `Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean ma`\n\t_, err = AddEvent(\"sample name\", tooLongDesc, \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrDescriptionTooLong.Error())\n}\n\nfunc TestDeleteEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Expected to find ToDelete event in render\")\n\t}\n\n\tDeleteEvent(id)\n\tgot = renderHome(false)\n\n\tif strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Did not expect to find ToDelete event in render\")\n\t}\n}\n\nfunc TestEditEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\tloc := \"gnome land\"\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", loc, e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tnewName := \"New Name\"\n\tnewDesc := \"Normal description\"\n\tnewLink := \"new Link\"\n\tnewST := e1Start.Add(time.Hour)\n\tnewET := newST.Add(time.Hour)\n\n\tEditEvent(id, newName, newDesc, newLink, \"\", newST.Format(time.RFC3339), newET.Format(time.RFC3339))\n\tedited, _, _ := GetEventByID(id)\n\n\t// Check updated values\n\tuassert.Equal(t, edited.name, newName)\n\tuassert.Equal(t, edited.description, newDesc)\n\tuassert.Equal(t, edited.link, newLink)\n\tuassert.True(t, edited.startTime.Equal(newST))\n\tuassert.True(t, edited.endTime.Equal(newET))\n\n\t// Check if the old values are the same\n\tuassert.Equal(t, edited.location, loc)\n}\n\nfunc TestInvalidEdit(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchID.Error(), func() {\n\t\tEditEvent(\"123123\", \"\", \"\", \"\", \"\", \"\", \"\")\n\t})\n}\n\nfunc TestParseTimes(t *testing.T) {\n\t// times not provided\n\t// end time before start time\n\t// timezone Missmatch\n\n\t_, _, err := parseTimes(\"\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, _, err = parseTimes(now, \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, _, err = parseTimes(\"2009-02-13T23:30:30Z\", \"2009-02-13T21:30:30Z\")\n\tuassert.ErrorContains(t, err, ErrEndBeforeStart.Error())\n\n\t_, _, err = parseTimes(\"2009-02-10T23:30:30+02:00\", \"2009-02-13T21:30:33+05:00\")\n\tuassert.ErrorContains(t, err, ErrStartEndTimezonemMismatch.Error())\n}\n\nfunc TestRenderEventWidget(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t// No events yet\n\tevents = nil\n\tout, err := RenderEventWidget(1)\n\tuassert.NoError(t, err)\n\tuassert.Equal(t, out, \"No events.\")\n\n\t// Too many events\n\tout, err = RenderEventWidget(MaxWidgetSize + 1)\n\tuassert.ErrorIs(t, err, ErrMaxWidgetSize)\n\n\t// Too little events\n\tout, err = RenderEventWidget(0)\n\tuassert.ErrorIs(t, err, ErrMinWidgetSize)\n\n\t// Ordering \u0026 if requested amt is larger than the num of events that exist\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\te2Start := parsedTimeNow.Add(time.Hour * 24 * 10) // event 2 is after event 1\n\te2End := e2Start.Add(time.Hour * 4)\n\n\t_, err = AddEvent(\"Event 1\", \"description\", \"gno.land\", \"loc\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\t_, err = AddEvent(\"Event 2\", \"description\", \"gno.land\", \"loc\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\tout, err = RenderEventWidget(MaxWidgetSize)\n\turequire.NoError(t, err)\n\n\tuniqueSequence := \"- [\" // sequence that is displayed once per each event as per the RenderEventWidget function\n\tuassert.Equal(t, 2, strings.Count(out, uniqueSequence))\n\n\tuassert.True(t, strings.Index(out, \"Event 1\") \u003e strings.Index(out, \"Event 2\"))\n}\n"},{"name":"rendering.gno","body":"package events\n\nimport (\n\t\"bytes\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tMaxWidgetSize = 5\n)\n\n// RenderEventWidget shows up to eventsToRender of the latest events to a caller\nfunc RenderEventWidget(eventsToRender int) (string, error) {\n\tnumOfEvents := len(events)\n\tif numOfEvents == 0 {\n\t\treturn \"No events.\", nil\n\t}\n\n\tif eventsToRender \u003e MaxWidgetSize {\n\t\treturn \"\", ErrMaxWidgetSize\n\t}\n\n\tif eventsToRender \u003c 1 {\n\t\treturn \"\", ErrMinWidgetSize\n\t}\n\n\tif eventsToRender \u003e numOfEvents {\n\t\teventsToRender = numOfEvents\n\t}\n\n\toutput := \"\"\n\n\tfor _, event := range events[:eventsToRender] {\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", event.name, event.link)\n\t}\n\n\treturn output, nil\n}\n\n// renderHome renders the home page of the events realm\nfunc renderHome(admin bool) string {\n\toutput := \"# gno.land events\\n\\n\"\n\n\tif len(events) == 0 {\n\t\toutput += \"No upcoming or past events.\"\n\t\treturn output\n\t}\n\n\toutput += \"Below is a list of all gno.land events, including in progress, upcoming, and past ones.\\n\\n\"\n\toutput += \"---\\n\\n\"\n\n\tvar (\n\t\tinProgress = \"\"\n\t\tupcoming = \"\"\n\t\tpast = \"\"\n\t\tnow = time.Now()\n\t)\n\n\tfor _, e := range events {\n\t\tif now.Before(e.startTime) {\n\t\t\tupcoming += e.Render(admin)\n\t\t} else if now.After(e.endTime) {\n\t\t\tpast += e.Render(admin)\n\t\t} else {\n\t\t\tinProgress += e.Render(admin)\n\t\t}\n\t}\n\n\tif upcoming != \"\" {\n\t\t// Add upcoming events\n\t\toutput += \"## Upcoming events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += upcoming\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif inProgress != \"\" {\n\t\toutput += \"## Currently in progress\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += inProgress\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif past != \"\" {\n\t\t// Add past events\n\t\toutput += \"## Past events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += past\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\treturn output\n}\n\n// Render returns the markdown representation of a single event instance\nfunc (e Event) Render(admin bool) string {\n\tvar buf bytes.Buffer\n\n\tbuf.WriteString(\"\u003cdiv\u003e\\n\\n\")\n\tbuf.WriteString(ufmt.Sprintf(\"### %s\\n\\n\", e.name))\n\tbuf.WriteString(ufmt.Sprintf(\"%s\\n\\n\", e.description))\n\tbuf.WriteString(ufmt.Sprintf(\"**Location:** %s\\n\\n\", e.location))\n\n\t_, offset := e.startTime.Zone() // offset is in seconds\n\thoursOffset := offset / (60 * 60)\n\tsign := \"\"\n\tif offset \u003e= 0 {\n\t\tsign = \"+\"\n\t}\n\n\tbuf.WriteString(ufmt.Sprintf(\"**Starts:** %s UTC%s%d\\n\\n\", e.startTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\tbuf.WriteString(ufmt.Sprintf(\"**Ends:** %s UTC%s%d\\n\\n\", e.endTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\n\tif admin {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[EDIT](/r/gnoland/events$help\u0026func=EditEvent\u0026id=%s)\\n\\n\", e.id))\n\t\tbuf.WriteString(ufmt.Sprintf(\"[DELETE](/r/gnoland/events$help\u0026func=DeleteEvent\u0026id=%s)\\n\\n\", e.id))\n\t}\n\n\tif e.link != \"\" {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[See more](%s)\\n\\n\", e.link))\n\t}\n\n\tbuf.WriteString(\"\u003c/div\u003e\")\n\n\treturn buf.String()\n}\n\n// Render is the main rendering entry point\nfunc Render(path string) string {\n\tif path == \"admin\" {\n\t\treturn renderHome(true)\n\t}\n\n\treturn renderHome(false)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+qgdCnWNkOriBERwhccZl2TRrq2kaZBjcQh+0V716Nx/ZVWWeJ+SJKJ5V/uv250dg+9MDDsKJDf7pPpcZlY4DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"events","path":"gno.land/r/gnoland/events","files":[{"name":"administration.gno","body":"package events\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable/exts/authorizable\"\n)\n\nvar (\n\tsu = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\") // @leohhhn\n\tauth = authorizable.NewAuthorizableWithAddress(su)\n)\n\n// GetOwner gets the owner of the events realm\nfunc GetOwner() std.Address {\n\treturn auth.Owner()\n}\n\n// AddModerator adds a moderator to the events realm\nfunc AddModerator(mod std.Address) {\n\tauth.AssertCallerIsOwner()\n\n\tif err := auth.AddToAuthList(mod); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package events\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n)\n\nvar (\n\tErrEmptyName = errors.New(\"event name cannot be empty\")\n\tErrNoSuchID = errors.New(\"event with specified ID does not exist\")\n\tErrMinWidgetSize = errors.New(\"you need to request at least 1 event to render\")\n\tErrMaxWidgetSize = errors.New(\"maximum number of events in widget is\" + strconv.Itoa(MaxWidgetSize))\n\tErrDescriptionTooLong = errors.New(\"event description is too long\")\n\tErrInvalidStartTime = errors.New(\"invalid start time format\")\n\tErrInvalidEndTime = errors.New(\"invalid end time format\")\n\tErrEndBeforeStart = errors.New(\"end time cannot be before start time\")\n\tErrStartEndTimezonemMismatch = errors.New(\"start and end timezones are not the same\")\n)\n"},{"name":"events.gno","body":"// Package events allows you to upload data about specific IRL/online events\n// It includes dynamic support for updating rendering events based on their\n// status, ie if they are upcoming, in progress, or in the past.\npackage events\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\tEvent struct {\n\t\tid string\n\t\tname string // name of event\n\t\tdescription string // short description of event\n\t\tlink string // link to auth corresponding web2 page, ie eventbrite/luma or conference page\n\t\tlocation string // location of the event\n\t\tstartTime time.Time // given in RFC3339\n\t\tendTime time.Time // end time of the event, given in RFC3339\n\t}\n\n\teventsSlice []*Event\n)\n\nvar (\n\tevents = make(eventsSlice, 0) // sorted\n\tidCounter seqid.ID\n)\n\nconst (\n\tmaxDescLength = 100\n\tEventAdded = \"EventAdded\"\n\tEventDeleted = \"EventDeleted\"\n\tEventEdited = \"EventEdited\"\n)\n\n// AddEvent adds auth new event\n// Start time \u0026 end time need to be specified in RFC3339, ie 2024-08-08T12:00:00+02:00\nfunc AddEvent(name, description, link, location, startTime, endTime string) (string, error) {\n\tauth.AssertOnAuthList()\n\n\tif strings.TrimSpace(name) == \"\" {\n\t\treturn \"\", ErrEmptyName\n\t}\n\n\tif len(description) \u003e maxDescLength {\n\t\treturn \"\", ufmt.Errorf(\"%s: provided length is %d, maximum is %d\", ErrDescriptionTooLong, len(description), maxDescLength)\n\t}\n\n\t// Parse times\n\tst, et, err := parseTimes(startTime, endTime)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tid := idCounter.Next().String()\n\te := \u0026Event{\n\t\tid: id,\n\t\tname: name,\n\t\tdescription: description,\n\t\tlink: link,\n\t\tlocation: location,\n\t\tstartTime: st,\n\t\tendTime: et,\n\t}\n\n\tevents = append(events, e)\n\tsort.Sort(events)\n\n\tstd.Emit(EventAdded,\n\t\t\"id\", e.id,\n\t)\n\n\treturn id, nil\n}\n\n// DeleteEvent deletes an event with auth given ID\nfunc DeleteEvent(id string) {\n\tauth.AssertOnAuthList()\n\n\te, idx, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tevents = append(events[:idx], events[idx+1:]...)\n\n\tstd.Emit(EventDeleted,\n\t\t\"id\", e.id,\n\t)\n}\n\n// EditEvent edits an event with auth given ID\n// It only updates values corresponding to non-empty arguments sent with the call\n// Note: if you need to update the start time or end time, you need to provide both every time\nfunc EditEvent(id string, name, description, link, location, startTime, endTime string) {\n\tauth.AssertOnAuthList()\n\n\te, _, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Set only valid values\n\tif strings.TrimSpace(name) != \"\" {\n\t\te.name = name\n\t}\n\n\tif strings.TrimSpace(description) != \"\" {\n\t\te.description = description\n\t}\n\n\tif strings.TrimSpace(link) != \"\" {\n\t\te.link = link\n\t}\n\n\tif strings.TrimSpace(location) != \"\" {\n\t\te.location = location\n\t}\n\n\tif strings.TrimSpace(startTime) != \"\" || strings.TrimSpace(endTime) != \"\" {\n\t\tst, et, err := parseTimes(startTime, endTime)\n\t\tif err != nil {\n\t\t\tpanic(err) // need to also revert other state changes\n\t\t}\n\n\t\toldStartTime := e.startTime\n\t\te.startTime = st\n\t\te.endTime = et\n\n\t\t// If sort order was disrupted, sort again\n\t\tif oldStartTime != e.startTime {\n\t\t\tsort.Sort(events)\n\t\t}\n\t}\n\n\tstd.Emit(EventEdited,\n\t\t\"id\", e.id,\n\t)\n}\n\nfunc GetEventByID(id string) (*Event, int, error) {\n\tfor i, event := range events {\n\t\tif event.id == id {\n\t\t\treturn event, i, nil\n\t\t}\n\t}\n\n\treturn nil, -1, ErrNoSuchID\n}\n\n// Len returns the length of the slice\nfunc (m eventsSlice) Len() int {\n\treturn len(m)\n}\n\n// Less compares the startTime fields of two elements\n// In this case, events will be sorted by largest startTime first (upcoming \u003e past)\nfunc (m eventsSlice) Less(i, j int) bool {\n\treturn m[i].startTime.After(m[j].startTime)\n}\n\n// Swap swaps two elements in the slice\nfunc (m eventsSlice) Swap(i, j int) {\n\tm[i], m[j] = m[j], m[i]\n}\n\n// parseTimes parses the start and end time for an event and checks for possible errors\nfunc parseTimes(startTime, endTime string) (time.Time, time.Time, error) {\n\tst, err := time.Parse(time.RFC3339, startTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidStartTime, err.Error())\n\t}\n\n\tet, err := time.Parse(time.RFC3339, endTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidEndTime, err.Error())\n\t}\n\n\tif et.Before(st) {\n\t\treturn time.Time{}, time.Time{}, ErrEndBeforeStart\n\t}\n\n\t_, stOffset := st.Zone()\n\t_, etOffset := et.Zone()\n\tif stOffset != etOffset {\n\t\treturn time.Time{}, time.Time{}, ErrStartEndTimezonemMismatch\n\t}\n\n\treturn st, et, nil\n}\n"},{"name":"events_test.gno","body":"package events\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tsuRealm = std.NewUserRealm(su)\n\n\tnow = \"2009-02-13T23:31:30Z\" // time.Now() is hardcoded to this value in the gno test machine currently\n\tparsedTimeNow, _ = time.Parse(time.RFC3339, now)\n)\n\nfunc TestAddEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 1\", \"this event is upcoming\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"Event 1\") {\n\t\tt.Fatalf(\"Expected to find Event 1 in render\")\n\t}\n\n\te2Start := parsedTimeNow.Add(-time.Hour * 24 * 5)\n\te2End := e2Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 2\", \"this event is in the past\", \"gno.land\", \"gnome land\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\n\tgot = renderHome(false)\n\n\tupcomingPos := strings.Index(got, \"## Upcoming events\")\n\tpastPos := strings.Index(got, \"## Past events\")\n\n\te1Pos := strings.Index(got, \"Event 1\")\n\te2Pos := strings.Index(got, \"Event 2\")\n\n\t// expected index ordering: upcoming \u003c e1 \u003c past \u003c e2\n\tif e1Pos \u003c upcomingPos || e1Pos \u003e pastPos {\n\t\tt.Fatalf(\"Expected to find Event 1 in Upcoming events\")\n\t}\n\n\tif e2Pos \u003c upcomingPos || e2Pos \u003c pastPos || e2Pos \u003c e1Pos {\n\t\tt.Fatalf(\"Expected to find Event 2 on auth different pos\")\n\t}\n\n\t// larger index =\u003e smaller startTime (future =\u003e past)\n\tif events[0].startTime.Unix() \u003c events[1].startTime.Unix() {\n\t\tt.Fatalf(\"expected ordering to be different\")\n\t}\n}\n\nfunc TestAddEventErrors(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t_, err := AddEvent(\"\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorIs(t, err, ErrEmptyName)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:30:31Z\")\n\tuassert.ErrorIs(t, err, ErrEndBeforeStart)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31+06:00\", \"2009-02-13T23:33:31+02:00\")\n\tuassert.ErrorIs(t, err, ErrStartEndTimezonemMismatch)\n\n\ttooLongDesc := `Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean ma`\n\t_, err = AddEvent(\"sample name\", tooLongDesc, \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrDescriptionTooLong.Error())\n}\n\nfunc TestDeleteEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Expected to find ToDelete event in render\")\n\t}\n\n\tDeleteEvent(id)\n\tgot = renderHome(false)\n\n\tif strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Did not expect to find ToDelete event in render\")\n\t}\n}\n\nfunc TestEditEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\tloc := \"gnome land\"\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", loc, e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tnewName := \"New Name\"\n\tnewDesc := \"Normal description\"\n\tnewLink := \"new Link\"\n\tnewST := e1Start.Add(time.Hour)\n\tnewET := newST.Add(time.Hour)\n\n\tEditEvent(id, newName, newDesc, newLink, \"\", newST.Format(time.RFC3339), newET.Format(time.RFC3339))\n\tedited, _, _ := GetEventByID(id)\n\n\t// Check updated values\n\tuassert.Equal(t, edited.name, newName)\n\tuassert.Equal(t, edited.description, newDesc)\n\tuassert.Equal(t, edited.link, newLink)\n\tuassert.True(t, edited.startTime.Equal(newST))\n\tuassert.True(t, edited.endTime.Equal(newET))\n\n\t// Check if the old values are the same\n\tuassert.Equal(t, edited.location, loc)\n}\n\nfunc TestInvalidEdit(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchID.Error(), func() {\n\t\tEditEvent(\"123123\", \"\", \"\", \"\", \"\", \"\", \"\")\n\t})\n}\n\nfunc TestParseTimes(t *testing.T) {\n\t// times not provided\n\t// end time before start time\n\t// timezone Missmatch\n\n\t_, _, err := parseTimes(\"\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, _, err = parseTimes(now, \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, _, err = parseTimes(\"2009-02-13T23:30:30Z\", \"2009-02-13T21:30:30Z\")\n\tuassert.ErrorContains(t, err, ErrEndBeforeStart.Error())\n\n\t_, _, err = parseTimes(\"2009-02-10T23:30:30+02:00\", \"2009-02-13T21:30:33+05:00\")\n\tuassert.ErrorContains(t, err, ErrStartEndTimezonemMismatch.Error())\n}\n\nfunc TestRenderEventWidget(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t// No events yet\n\tevents = nil\n\tout, err := RenderEventWidget(1)\n\tuassert.NoError(t, err)\n\tuassert.Equal(t, out, \"No events.\")\n\n\t// Too many events\n\tout, err = RenderEventWidget(MaxWidgetSize + 1)\n\tuassert.ErrorIs(t, err, ErrMaxWidgetSize)\n\n\t// Too little events\n\tout, err = RenderEventWidget(0)\n\tuassert.ErrorIs(t, err, ErrMinWidgetSize)\n\n\t// Ordering \u0026 if requested amt is larger than the num of events that exist\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\te2Start := parsedTimeNow.Add(time.Hour * 24 * 10) // event 2 is after event 1\n\te2End := e2Start.Add(time.Hour * 4)\n\n\t_, err = AddEvent(\"Event 1\", \"description\", \"gno.land\", \"loc\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\t_, err = AddEvent(\"Event 2\", \"description\", \"gno.land\", \"loc\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\tout, err = RenderEventWidget(MaxWidgetSize)\n\turequire.NoError(t, err)\n\n\tuniqueSequence := \"- [\" // sequence that is displayed once per each event as per the RenderEventWidget function\n\tuassert.Equal(t, 2, strings.Count(out, uniqueSequence))\n\n\tuassert.True(t, strings.Index(out, \"Event 1\") \u003e strings.Index(out, \"Event 2\"))\n}\n"},{"name":"rendering.gno","body":"package events\n\nimport (\n\t\"bytes\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tMaxWidgetSize = 5\n)\n\n// RenderEventWidget shows up to eventsToRender of the latest events to a caller\nfunc RenderEventWidget(eventsToRender int) (string, error) {\n\tnumOfEvents := len(events)\n\tif numOfEvents == 0 {\n\t\treturn \"No events.\", nil\n\t}\n\n\tif eventsToRender \u003e MaxWidgetSize {\n\t\treturn \"\", ErrMaxWidgetSize\n\t}\n\n\tif eventsToRender \u003c 1 {\n\t\treturn \"\", ErrMinWidgetSize\n\t}\n\n\tif eventsToRender \u003e numOfEvents {\n\t\teventsToRender = numOfEvents\n\t}\n\n\toutput := \"\"\n\n\tfor _, event := range events[:eventsToRender] {\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", event.name, event.link)\n\t}\n\n\treturn output, nil\n}\n\n// renderHome renders the home page of the events realm\nfunc renderHome(admin bool) string {\n\toutput := \"# gno.land events\\n\\n\"\n\n\tif len(events) == 0 {\n\t\toutput += \"No upcoming or past events.\"\n\t\treturn output\n\t}\n\n\toutput += \"Below is a list of all gno.land events, including in progress, upcoming, and past ones.\\n\\n\"\n\toutput += \"---\\n\\n\"\n\n\tvar (\n\t\tinProgress = \"\"\n\t\tupcoming = \"\"\n\t\tpast = \"\"\n\t\tnow = time.Now()\n\t)\n\n\tfor _, e := range events {\n\t\tif now.Before(e.startTime) {\n\t\t\tupcoming += e.Render(admin)\n\t\t} else if now.After(e.endTime) {\n\t\t\tpast += e.Render(admin)\n\t\t} else {\n\t\t\tinProgress += e.Render(admin)\n\t\t}\n\t}\n\n\tif upcoming != \"\" {\n\t\t// Add upcoming events\n\t\toutput += \"## Upcoming events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += upcoming\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif inProgress != \"\" {\n\t\toutput += \"## Currently in progress\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += inProgress\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif past != \"\" {\n\t\t// Add past events\n\t\toutput += \"## Past events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += past\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\treturn output\n}\n\n// Render returns the markdown representation of a single event instance\nfunc (e Event) Render(admin bool) string {\n\tvar buf bytes.Buffer\n\n\tbuf.WriteString(\"\u003cdiv\u003e\\n\\n\")\n\tbuf.WriteString(ufmt.Sprintf(\"### %s\\n\\n\", e.name))\n\tbuf.WriteString(ufmt.Sprintf(\"%s\\n\\n\", e.description))\n\tbuf.WriteString(ufmt.Sprintf(\"**Location:** %s\\n\\n\", e.location))\n\n\t_, offset := e.startTime.Zone() // offset is in seconds\n\thoursOffset := offset / (60 * 60)\n\tsign := \"\"\n\tif offset \u003e= 0 {\n\t\tsign = \"+\"\n\t}\n\n\tbuf.WriteString(ufmt.Sprintf(\"**Starts:** %s UTC%s%d\\n\\n\", e.startTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\tbuf.WriteString(ufmt.Sprintf(\"**Ends:** %s UTC%s%d\\n\\n\", e.endTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\n\tif admin {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[EDIT](/r/gnoland/events$help\u0026func=EditEvent\u0026id=%s)\\n\\n\", e.id))\n\t\tbuf.WriteString(ufmt.Sprintf(\"[DELETE](/r/gnoland/events$help\u0026func=DeleteEvent\u0026id=%s)\\n\\n\", e.id))\n\t}\n\n\tif e.link != \"\" {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[See more](%s)\\n\\n\", e.link))\n\t}\n\n\tbuf.WriteString(\"\u003c/div\u003e\")\n\n\treturn buf.String()\n}\n\n// Render is the main rendering entry point\nfunc Render(path string) string {\n\tif path == \"admin\" {\n\t\treturn renderHome(true)\n\t}\n\n\treturn renderHome(false)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+qgdCnWNkOriBERwhccZl2TRrq2kaZBjcQh+0V716Nx/ZVWWeJ+SJKJ5V/uv250dg+9MDDsKJDf7pPpcZlY4DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"events","path":"gno.land/r/gnoland/events","files":[{"name":"administration.gno","body":"package events\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable/exts/authorizable\"\n)\n\nvar (\n\tsu = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\") // @leohhhn\n\tauth = authorizable.NewAuthorizableWithAddress(su)\n)\n\n// GetOwner gets the owner of the events realm\nfunc GetOwner() std.Address {\n\treturn auth.Owner()\n}\n\n// AddModerator adds a moderator to the events realm\nfunc AddModerator(mod std.Address) {\n\tauth.AssertCallerIsOwner()\n\n\tif err := auth.AddToAuthList(mod); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package events\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n)\n\nvar (\n\tErrEmptyName = errors.New(\"event name cannot be empty\")\n\tErrNoSuchID = errors.New(\"event with specified ID does not exist\")\n\tErrMinWidgetSize = errors.New(\"you need to request at least 1 event to render\")\n\tErrMaxWidgetSize = errors.New(\"maximum number of events in widget is\" + strconv.Itoa(MaxWidgetSize))\n\tErrDescriptionTooLong = errors.New(\"event description is too long\")\n\tErrInvalidStartTime = errors.New(\"invalid start time format\")\n\tErrInvalidEndTime = errors.New(\"invalid end time format\")\n\tErrEndBeforeStart = errors.New(\"end time cannot be before start time\")\n\tErrStartEndTimezonemMismatch = errors.New(\"start and end timezones are not the same\")\n)\n"},{"name":"events.gno","body":"// Package events allows you to upload data about specific IRL/online events\n// It includes dynamic support for updating rendering events based on their\n// status, ie if they are upcoming, in progress, or in the past.\npackage events\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\tEvent struct {\n\t\tid string\n\t\tname string // name of event\n\t\tdescription string // short description of event\n\t\tlink string // link to auth corresponding web2 page, ie eventbrite/luma or conference page\n\t\tlocation string // location of the event\n\t\tstartTime time.Time // given in RFC3339\n\t\tendTime time.Time // end time of the event, given in RFC3339\n\t}\n\n\teventsSlice []*Event\n)\n\nvar (\n\tevents = make(eventsSlice, 0) // sorted\n\tidCounter seqid.ID\n)\n\nconst (\n\tmaxDescLength = 100\n\tEventAdded = \"EventAdded\"\n\tEventDeleted = \"EventDeleted\"\n\tEventEdited = \"EventEdited\"\n)\n\n// AddEvent adds auth new event\n// Start time \u0026 end time need to be specified in RFC3339, ie 2024-08-08T12:00:00+02:00\nfunc AddEvent(name, description, link, location, startTime, endTime string) (string, error) {\n\tauth.AssertOnAuthList()\n\n\tif strings.TrimSpace(name) == \"\" {\n\t\treturn \"\", ErrEmptyName\n\t}\n\n\tif len(description) \u003e maxDescLength {\n\t\treturn \"\", ufmt.Errorf(\"%s: provided length is %d, maximum is %d\", ErrDescriptionTooLong, len(description), maxDescLength)\n\t}\n\n\t// Parse times\n\tst, et, err := parseTimes(startTime, endTime)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tid := idCounter.Next().String()\n\te := \u0026Event{\n\t\tid: id,\n\t\tname: name,\n\t\tdescription: description,\n\t\tlink: link,\n\t\tlocation: location,\n\t\tstartTime: st,\n\t\tendTime: et,\n\t}\n\n\tevents = append(events, e)\n\tsort.Sort(events)\n\n\tstd.Emit(EventAdded,\n\t\t\"id\", e.id,\n\t)\n\n\treturn id, nil\n}\n\n// DeleteEvent deletes an event with auth given ID\nfunc DeleteEvent(id string) {\n\tauth.AssertOnAuthList()\n\n\te, idx, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tevents = append(events[:idx], events[idx+1:]...)\n\n\tstd.Emit(EventDeleted,\n\t\t\"id\", e.id,\n\t)\n}\n\n// EditEvent edits an event with auth given ID\n// It only updates values corresponding to non-empty arguments sent with the call\n// Note: if you need to update the start time or end time, you need to provide both every time\nfunc EditEvent(id string, name, description, link, location, startTime, endTime string) {\n\tauth.AssertOnAuthList()\n\n\te, _, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Set only valid values\n\tif strings.TrimSpace(name) != \"\" {\n\t\te.name = name\n\t}\n\n\tif strings.TrimSpace(description) != \"\" {\n\t\te.description = description\n\t}\n\n\tif strings.TrimSpace(link) != \"\" {\n\t\te.link = link\n\t}\n\n\tif strings.TrimSpace(location) != \"\" {\n\t\te.location = location\n\t}\n\n\tif strings.TrimSpace(startTime) != \"\" || strings.TrimSpace(endTime) != \"\" {\n\t\tst, et, err := parseTimes(startTime, endTime)\n\t\tif err != nil {\n\t\t\tpanic(err) // need to also revert other state changes\n\t\t}\n\n\t\toldStartTime := e.startTime\n\t\te.startTime = st\n\t\te.endTime = et\n\n\t\t// If sort order was disrupted, sort again\n\t\tif oldStartTime != e.startTime {\n\t\t\tsort.Sort(events)\n\t\t}\n\t}\n\n\tstd.Emit(EventEdited,\n\t\t\"id\", e.id,\n\t)\n}\n\nfunc GetEventByID(id string) (*Event, int, error) {\n\tfor i, event := range events {\n\t\tif event.id == id {\n\t\t\treturn event, i, nil\n\t\t}\n\t}\n\n\treturn nil, -1, ErrNoSuchID\n}\n\n// Len returns the length of the slice\nfunc (m eventsSlice) Len() int {\n\treturn len(m)\n}\n\n// Less compares the startTime fields of two elements\n// In this case, events will be sorted by largest startTime first (upcoming \u003e past)\nfunc (m eventsSlice) Less(i, j int) bool {\n\treturn m[i].startTime.After(m[j].startTime)\n}\n\n// Swap swaps two elements in the slice\nfunc (m eventsSlice) Swap(i, j int) {\n\tm[i], m[j] = m[j], m[i]\n}\n\n// parseTimes parses the start and end time for an event and checks for possible errors\nfunc parseTimes(startTime, endTime string) (time.Time, time.Time, error) {\n\tst, err := time.Parse(time.RFC3339, startTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidStartTime, err.Error())\n\t}\n\n\tet, err := time.Parse(time.RFC3339, endTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidEndTime, err.Error())\n\t}\n\n\tif et.Before(st) {\n\t\treturn time.Time{}, time.Time{}, ErrEndBeforeStart\n\t}\n\n\t_, stOffset := st.Zone()\n\t_, etOffset := et.Zone()\n\tif stOffset != etOffset {\n\t\treturn time.Time{}, time.Time{}, ErrStartEndTimezonemMismatch\n\t}\n\n\treturn st, et, nil\n}\n"},{"name":"events_test.gno","body":"package events\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tsuRealm = std.NewUserRealm(su)\n\n\tnow = \"2009-02-13T23:31:30Z\" // time.Now() is hardcoded to this value in the gno test machine currently\n\tparsedTimeNow, _ = time.Parse(time.RFC3339, now)\n)\n\nfunc TestAddEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 1\", \"this event is upcoming\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"Event 1\") {\n\t\tt.Fatalf(\"Expected to find Event 1 in render\")\n\t}\n\n\te2Start := parsedTimeNow.Add(-time.Hour * 24 * 5)\n\te2End := e2Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 2\", \"this event is in the past\", \"gno.land\", \"gnome land\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\n\tgot = renderHome(false)\n\n\tupcomingPos := strings.Index(got, \"## Upcoming events\")\n\tpastPos := strings.Index(got, \"## Past events\")\n\n\te1Pos := strings.Index(got, \"Event 1\")\n\te2Pos := strings.Index(got, \"Event 2\")\n\n\t// expected index ordering: upcoming \u003c e1 \u003c past \u003c e2\n\tif e1Pos \u003c upcomingPos || e1Pos \u003e pastPos {\n\t\tt.Fatalf(\"Expected to find Event 1 in Upcoming events\")\n\t}\n\n\tif e2Pos \u003c upcomingPos || e2Pos \u003c pastPos || e2Pos \u003c e1Pos {\n\t\tt.Fatalf(\"Expected to find Event 2 on auth different pos\")\n\t}\n\n\t// larger index =\u003e smaller startTime (future =\u003e past)\n\tif events[0].startTime.Unix() \u003c events[1].startTime.Unix() {\n\t\tt.Fatalf(\"expected ordering to be different\")\n\t}\n}\n\nfunc TestAddEventErrors(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t_, err := AddEvent(\"\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorIs(t, err, ErrEmptyName)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:30:31Z\")\n\tuassert.ErrorIs(t, err, ErrEndBeforeStart)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31+06:00\", \"2009-02-13T23:33:31+02:00\")\n\tuassert.ErrorIs(t, err, ErrStartEndTimezonemMismatch)\n\n\ttooLongDesc := `Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean ma`\n\t_, err = AddEvent(\"sample name\", tooLongDesc, \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrDescriptionTooLong.Error())\n}\n\nfunc TestDeleteEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Expected to find ToDelete event in render\")\n\t}\n\n\tDeleteEvent(id)\n\tgot = renderHome(false)\n\n\tif strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Did not expect to find ToDelete event in render\")\n\t}\n}\n\nfunc TestEditEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\tloc := \"gnome land\"\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", loc, e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tnewName := \"New Name\"\n\tnewDesc := \"Normal description\"\n\tnewLink := \"new Link\"\n\tnewST := e1Start.Add(time.Hour)\n\tnewET := newST.Add(time.Hour)\n\n\tEditEvent(id, newName, newDesc, newLink, \"\", newST.Format(time.RFC3339), newET.Format(time.RFC3339))\n\tedited, _, _ := GetEventByID(id)\n\n\t// Check updated values\n\tuassert.Equal(t, edited.name, newName)\n\tuassert.Equal(t, edited.description, newDesc)\n\tuassert.Equal(t, edited.link, newLink)\n\tuassert.True(t, edited.startTime.Equal(newST))\n\tuassert.True(t, edited.endTime.Equal(newET))\n\n\t// Check if the old values are the same\n\tuassert.Equal(t, edited.location, loc)\n}\n\nfunc TestInvalidEdit(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchID.Error(), func() {\n\t\tEditEvent(\"123123\", \"\", \"\", \"\", \"\", \"\", \"\")\n\t})\n}\n\nfunc TestParseTimes(t *testing.T) {\n\t// times not provided\n\t// end time before start time\n\t// timezone Missmatch\n\n\t_, _, err := parseTimes(\"\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, _, err = parseTimes(now, \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, _, err = parseTimes(\"2009-02-13T23:30:30Z\", \"2009-02-13T21:30:30Z\")\n\tuassert.ErrorContains(t, err, ErrEndBeforeStart.Error())\n\n\t_, _, err = parseTimes(\"2009-02-10T23:30:30+02:00\", \"2009-02-13T21:30:33+05:00\")\n\tuassert.ErrorContains(t, err, ErrStartEndTimezonemMismatch.Error())\n}\n\nfunc TestRenderEventWidget(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t// No events yet\n\tevents = nil\n\tout, err := RenderEventWidget(1)\n\tuassert.NoError(t, err)\n\tuassert.Equal(t, out, \"No events.\")\n\n\t// Too many events\n\tout, err = RenderEventWidget(MaxWidgetSize + 1)\n\tuassert.ErrorIs(t, err, ErrMaxWidgetSize)\n\n\t// Too little events\n\tout, err = RenderEventWidget(0)\n\tuassert.ErrorIs(t, err, ErrMinWidgetSize)\n\n\t// Ordering \u0026 if requested amt is larger than the num of events that exist\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\te2Start := parsedTimeNow.Add(time.Hour * 24 * 10) // event 2 is after event 1\n\te2End := e2Start.Add(time.Hour * 4)\n\n\t_, err = AddEvent(\"Event 1\", \"description\", \"gno.land\", \"loc\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\t_, err = AddEvent(\"Event 2\", \"description\", \"gno.land\", \"loc\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\tout, err = RenderEventWidget(MaxWidgetSize)\n\turequire.NoError(t, err)\n\n\tuniqueSequence := \"- [\" // sequence that is displayed once per each event as per the RenderEventWidget function\n\tuassert.Equal(t, 2, strings.Count(out, uniqueSequence))\n\n\tuassert.True(t, strings.Index(out, \"Event 1\") \u003e strings.Index(out, \"Event 2\"))\n}\n"},{"name":"rendering.gno","body":"package events\n\nimport (\n\t\"bytes\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tMaxWidgetSize = 5\n)\n\n// RenderEventWidget shows up to eventsToRender of the latest events to a caller\nfunc RenderEventWidget(eventsToRender int) (string, error) {\n\tnumOfEvents := len(events)\n\tif numOfEvents == 0 {\n\t\treturn \"No events.\", nil\n\t}\n\n\tif eventsToRender \u003e MaxWidgetSize {\n\t\treturn \"\", ErrMaxWidgetSize\n\t}\n\n\tif eventsToRender \u003c 1 {\n\t\treturn \"\", ErrMinWidgetSize\n\t}\n\n\tif eventsToRender \u003e numOfEvents {\n\t\teventsToRender = numOfEvents\n\t}\n\n\toutput := \"\"\n\n\tfor _, event := range events[:eventsToRender] {\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", event.name, event.link)\n\t}\n\n\treturn output, nil\n}\n\n// renderHome renders the home page of the events realm\nfunc renderHome(admin bool) string {\n\toutput := \"# gno.land events\\n\\n\"\n\n\tif len(events) == 0 {\n\t\toutput += \"No upcoming or past events.\"\n\t\treturn output\n\t}\n\n\toutput += \"Below is a list of all gno.land events, including in progress, upcoming, and past ones.\\n\\n\"\n\toutput += \"---\\n\\n\"\n\n\tvar (\n\t\tinProgress = \"\"\n\t\tupcoming = \"\"\n\t\tpast = \"\"\n\t\tnow = time.Now()\n\t)\n\n\tfor _, e := range events {\n\t\tif now.Before(e.startTime) {\n\t\t\tupcoming += e.Render(admin)\n\t\t} else if now.After(e.endTime) {\n\t\t\tpast += e.Render(admin)\n\t\t} else {\n\t\t\tinProgress += e.Render(admin)\n\t\t}\n\t}\n\n\tif upcoming != \"\" {\n\t\t// Add upcoming events\n\t\toutput += \"## Upcoming events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += upcoming\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif inProgress != \"\" {\n\t\toutput += \"## Currently in progress\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += inProgress\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif past != \"\" {\n\t\t// Add past events\n\t\toutput += \"## Past events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += past\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\treturn output\n}\n\n// Render returns the markdown representation of a single event instance\nfunc (e Event) Render(admin bool) string {\n\tvar buf bytes.Buffer\n\n\tbuf.WriteString(\"\u003cdiv\u003e\\n\\n\")\n\tbuf.WriteString(ufmt.Sprintf(\"### %s\\n\\n\", e.name))\n\tbuf.WriteString(ufmt.Sprintf(\"%s\\n\\n\", e.description))\n\tbuf.WriteString(ufmt.Sprintf(\"**Location:** %s\\n\\n\", e.location))\n\n\t_, offset := e.startTime.Zone() // offset is in seconds\n\thoursOffset := offset / (60 * 60)\n\tsign := \"\"\n\tif offset \u003e= 0 {\n\t\tsign = \"+\"\n\t}\n\n\tbuf.WriteString(ufmt.Sprintf(\"**Starts:** %s UTC%s%d\\n\\n\", e.startTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\tbuf.WriteString(ufmt.Sprintf(\"**Ends:** %s UTC%s%d\\n\\n\", e.endTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\n\tif admin {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[EDIT](/r/gnoland/events$help\u0026func=EditEvent\u0026id=%s)\\n\\n\", e.id))\n\t\tbuf.WriteString(ufmt.Sprintf(\"[DELETE](/r/gnoland/events$help\u0026func=DeleteEvent\u0026id=%s)\\n\\n\", e.id))\n\t}\n\n\tif e.link != \"\" {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[See more](%s)\\n\\n\", e.link))\n\t}\n\n\tbuf.WriteString(\"\u003c/div\u003e\")\n\n\treturn buf.String()\n}\n\n// Render is the main rendering entry point\nfunc Render(path string) string {\n\tif path == \"admin\" {\n\t\treturn renderHome(true)\n\t}\n\n\treturn renderHome(false)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+qgdCnWNkOriBERwhccZl2TRrq2kaZBjcQh+0V716Nx/ZVWWeJ+SJKJ5V/uv250dg+9MDDsKJDf7pPpcZlY4DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"executor","path":"gno.land/p/gov/executor","files":[{"name":"callback.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar errInvalidCaller = errors.New(\"invalid executor caller\")\n\n// NewCallbackExecutor creates a new callback executor with the provided callback function\nfunc NewCallbackExecutor(callback func() error, path string) *CallbackExecutor {\n\treturn \u0026CallbackExecutor{\n\t\tcallback: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// CallbackExecutor is an implementation of the dao.Executor interface,\n// based on a specific callback.\n// The given callback should verify the validity of the govdao call\ntype CallbackExecutor struct {\n\tcallback func() error // the callback to be executed\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// Execute runs the executor's callback function.\nfunc (exec *CallbackExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\tif exec.callback != nil {\n\t\treturn exec.callback()\n\t}\n\n\treturn nil\n}\n"},{"name":"context.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/context\"\n)\n\ntype propContextKey string\n\nfunc (k propContextKey) String() string { return string(k) }\n\nconst (\n\tstatusContextKey = propContextKey(\"govdao-prop-status\")\n\tapprovedStatus = \"approved\"\n)\n\nvar errNotApproved = errors.New(\"not approved by govdao\")\n\n// CtxExecutor is an implementation of the dao.Executor interface,\n// based on the given context.\n// It utilizes the given context to assert the validity of the govdao call\ntype CtxExecutor struct {\n\tcallbackCtx func(ctx context.Context) error // the callback ctx fn, if any\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// NewCtxExecutor creates a new executor with the provided callback function.\nfunc NewCtxExecutor(callback func(ctx context.Context) error, path string) *CtxExecutor {\n\treturn \u0026CtxExecutor{\n\t\tcallbackCtx: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// Execute runs the executor's callback function\nfunc (exec *CtxExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\t// Create the context\n\tctx := context.WithValue(\n\t\tcontext.Empty(),\n\t\tstatusContextKey,\n\t\tapprovedStatus,\n\t)\n\n\treturn exec.callbackCtx(ctx)\n}\n\n// IsApprovedByGovdaoContext asserts that the govdao approved the context\nfunc IsApprovedByGovdaoContext(ctx context.Context) bool {\n\tv := ctx.Value(statusContextKey)\n\tif v == nil {\n\t\treturn false\n\t}\n\n\tvs, ok := v.(string)\n\n\treturn ok \u0026\u0026 vs == approvedStatus\n}\n\n// AssertContextApprovedByGovDAO asserts the given context\n// was approved by GOVDAO\nfunc AssertContextApprovedByGovDAO(ctx context.Context) {\n\tif IsApprovedByGovdaoContext(ctx) {\n\t\treturn\n\t}\n\n\tpanic(errNotApproved)\n}\n"},{"name":"proposal_test.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/context\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestExecutor_Callback(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCallbackExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.ErrorIs(t, e.Execute(), expectedErr)\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n\nfunc TestExecutor_Context(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCtxExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\turequire.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\terr := e.Execute()\n\n\t\t\tuassert.ErrorIs(t, err, expectedErr)\n\t\t})\n\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+SCqfmExEa/KlYYwdWgMf8Yi/y3R5EKrkct46gMoFO0DRf7Xa9/4dgeZOV5iOxVDiezd6xfE0+mjRpLmJD/uBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"executor","path":"gno.land/p/gov/executor","files":[{"name":"callback.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar errInvalidCaller = errors.New(\"invalid executor caller\")\n\n// NewCallbackExecutor creates a new callback executor with the provided callback function\nfunc NewCallbackExecutor(callback func() error, path string) *CallbackExecutor {\n\treturn \u0026CallbackExecutor{\n\t\tcallback: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// CallbackExecutor is an implementation of the dao.Executor interface,\n// based on a specific callback.\n// The given callback should verify the validity of the govdao call\ntype CallbackExecutor struct {\n\tcallback func() error // the callback to be executed\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// Execute runs the executor's callback function.\nfunc (exec *CallbackExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\tif exec.callback != nil {\n\t\treturn exec.callback()\n\t}\n\n\treturn nil\n}\n"},{"name":"context.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/context\"\n)\n\ntype propContextKey string\n\nfunc (k propContextKey) String() string { return string(k) }\n\nconst (\n\tstatusContextKey = propContextKey(\"govdao-prop-status\")\n\tapprovedStatus = \"approved\"\n)\n\nvar errNotApproved = errors.New(\"not approved by govdao\")\n\n// CtxExecutor is an implementation of the dao.Executor interface,\n// based on the given context.\n// It utilizes the given context to assert the validity of the govdao call\ntype CtxExecutor struct {\n\tcallbackCtx func(ctx context.Context) error // the callback ctx fn, if any\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// NewCtxExecutor creates a new executor with the provided callback function.\nfunc NewCtxExecutor(callback func(ctx context.Context) error, path string) *CtxExecutor {\n\treturn \u0026CtxExecutor{\n\t\tcallbackCtx: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// Execute runs the executor's callback function\nfunc (exec *CtxExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\t// Create the context\n\tctx := context.WithValue(\n\t\tcontext.Empty(),\n\t\tstatusContextKey,\n\t\tapprovedStatus,\n\t)\n\n\treturn exec.callbackCtx(ctx)\n}\n\n// IsApprovedByGovdaoContext asserts that the govdao approved the context\nfunc IsApprovedByGovdaoContext(ctx context.Context) bool {\n\tv := ctx.Value(statusContextKey)\n\tif v == nil {\n\t\treturn false\n\t}\n\n\tvs, ok := v.(string)\n\n\treturn ok \u0026\u0026 vs == approvedStatus\n}\n\n// AssertContextApprovedByGovDAO asserts the given context\n// was approved by GOVDAO\nfunc AssertContextApprovedByGovDAO(ctx context.Context) {\n\tif IsApprovedByGovdaoContext(ctx) {\n\t\treturn\n\t}\n\n\tpanic(errNotApproved)\n}\n"},{"name":"proposal_test.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/context\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestExecutor_Callback(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCallbackExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.ErrorIs(t, e.Execute(), expectedErr)\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n\nfunc TestExecutor_Context(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCtxExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\turequire.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\terr := e.Execute()\n\n\t\t\tuassert.ErrorIs(t, err, expectedErr)\n\t\t})\n\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+SCqfmExEa/KlYYwdWgMf8Yi/y3R5EKrkct46gMoFO0DRf7Xa9/4dgeZOV5iOxVDiezd6xfE0+mjRpLmJD/uBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"executor","path":"gno.land/p/gov/executor","files":[{"name":"callback.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar errInvalidCaller = errors.New(\"invalid executor caller\")\n\n// NewCallbackExecutor creates a new callback executor with the provided callback function\nfunc NewCallbackExecutor(callback func() error, path string) *CallbackExecutor {\n\treturn \u0026CallbackExecutor{\n\t\tcallback: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// CallbackExecutor is an implementation of the dao.Executor interface,\n// based on a specific callback.\n// The given callback should verify the validity of the govdao call\ntype CallbackExecutor struct {\n\tcallback func() error // the callback to be executed\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// Execute runs the executor's callback function.\nfunc (exec *CallbackExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\tif exec.callback != nil {\n\t\treturn exec.callback()\n\t}\n\n\treturn nil\n}\n"},{"name":"context.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/context\"\n)\n\ntype propContextKey string\n\nfunc (k propContextKey) String() string { return string(k) }\n\nconst (\n\tstatusContextKey = propContextKey(\"govdao-prop-status\")\n\tapprovedStatus = \"approved\"\n)\n\nvar errNotApproved = errors.New(\"not approved by govdao\")\n\n// CtxExecutor is an implementation of the dao.Executor interface,\n// based on the given context.\n// It utilizes the given context to assert the validity of the govdao call\ntype CtxExecutor struct {\n\tcallbackCtx func(ctx context.Context) error // the callback ctx fn, if any\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// NewCtxExecutor creates a new executor with the provided callback function.\nfunc NewCtxExecutor(callback func(ctx context.Context) error, path string) *CtxExecutor {\n\treturn \u0026CtxExecutor{\n\t\tcallbackCtx: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// Execute runs the executor's callback function\nfunc (exec *CtxExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\t// Create the context\n\tctx := context.WithValue(\n\t\tcontext.Empty(),\n\t\tstatusContextKey,\n\t\tapprovedStatus,\n\t)\n\n\treturn exec.callbackCtx(ctx)\n}\n\n// IsApprovedByGovdaoContext asserts that the govdao approved the context\nfunc IsApprovedByGovdaoContext(ctx context.Context) bool {\n\tv := ctx.Value(statusContextKey)\n\tif v == nil {\n\t\treturn false\n\t}\n\n\tvs, ok := v.(string)\n\n\treturn ok \u0026\u0026 vs == approvedStatus\n}\n\n// AssertContextApprovedByGovDAO asserts the given context\n// was approved by GOVDAO\nfunc AssertContextApprovedByGovDAO(ctx context.Context) {\n\tif IsApprovedByGovdaoContext(ctx) {\n\t\treturn\n\t}\n\n\tpanic(errNotApproved)\n}\n"},{"name":"proposal_test.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/context\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestExecutor_Callback(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCallbackExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.ErrorIs(t, e.Execute(), expectedErr)\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n\nfunc TestExecutor_Context(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCtxExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\turequire.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\terr := e.Execute()\n\n\t\t\tuassert.ErrorIs(t, err, expectedErr)\n\t\t})\n\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+SCqfmExEa/KlYYwdWgMf8Yi/y3R5EKrkct46gMoFO0DRf7Xa9/4dgeZOV5iOxVDiezd6xfE0+mjRpLmJD/uBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"exts","path":"gno.land/p/demo/grc/exts","files":[{"name":"token_metadata.gno","body":"package exts\n\ntype TokenMetadata interface {\n\t// Returns the name of the token.\n\tGetName() string\n\n\t// Returns the symbol of the token, usually a shorter version of the\n\t// name.\n\tGetSymbol() string\n\n\t// Returns the decimals places of the token.\n\tGetDecimals() uint\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BqPgZWDC/9Q9yuX18KN1AamVcpy9DklBNmgZNLsCXEa+kmqvSlqg0Id05myE6dBE9TpMZ8MehJvBPxsLs/2uCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"exts","path":"gno.land/p/demo/grc/exts","files":[{"name":"token_metadata.gno","body":"package exts\n\ntype TokenMetadata interface {\n\t// Returns the name of the token.\n\tGetName() string\n\n\t// Returns the symbol of the token, usually a shorter version of the\n\t// name.\n\tGetSymbol() string\n\n\t// Returns the decimals places of the token.\n\tGetDecimals() uint\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BqPgZWDC/9Q9yuX18KN1AamVcpy9DklBNmgZNLsCXEa+kmqvSlqg0Id05myE6dBE9TpMZ8MehJvBPxsLs/2uCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"exts","path":"gno.land/p/demo/grc/exts","files":[{"name":"token_metadata.gno","body":"package exts\n\ntype TokenMetadata interface {\n\t// Returns the name of the token.\n\tGetName() string\n\n\t// Returns the symbol of the token, usually a shorter version of the\n\t// name.\n\tGetSymbol() string\n\n\t// Returns the decimals places of the token.\n\tGetDecimals() uint\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BqPgZWDC/9Q9yuX18KN1AamVcpy9DklBNmgZNLsCXEa+kmqvSlqg0Id05myE6dBE9TpMZ8MehJvBPxsLs/2uCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"faucet","path":"gno.land/r/gnoland/faucet","files":[{"name":"admin.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nfunc AdminSetInPause(inPause bool) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgInPause = inPause\n\treturn \"\"\n}\n\nfunc AdminSetMessage(message string) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgMessage = message\n\treturn \"\"\n}\n\nfunc AdminSetTransferLimit(amount int64) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgLimit = std.NewCoin(\"ugnot\", amount)\n\treturn \"\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgAdminAddr = addr\n\treturn \"\"\n}\n\nfunc AdminAddController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tsize := gControllers.Size()\n\n\tif size \u003e= gControllersMaxSize {\n\t\treturn \"can not add more controllers than allowed\"\n\t}\n\n\tif gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" exists, no need to add.\"\n\t}\n\n\tgControllers.Set(addr.String(), addr)\n\n\treturn \"\"\n}\n\nfunc AdminRemoveController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif !gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\t_, ok := gControllers.Remove(addr.String())\n\n\t// it not should happen.\n\t// we will check anyway to prevent issues in the underline implementation.\n\n\tif !ok {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\treturn \"\"\n}\n\nfunc assertIsAdmin() error {\n\tcaller := std.GetOrigCaller()\n\tif caller != gAdminAddr {\n\t\treturn errors.New(\"restricted for admin\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\t// configurable by admin.\n\tgAdminAddr std.Address = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tgControllers = avl.NewTree()\n\tgControllersMaxSize = 10 // limit it to 10\n\tgInPause = false\n\tgMessage = \"# Community Faucet.\\n\\n\"\n\n\t// internal vars, for stats.\n\tgTotalTransferred std.Coins\n\tgTotalTransfers = uint(0)\n\n\t// per request limit, 350 gnot\n\tgLimit std.Coin = std.NewCoin(\"ugnot\", 350000000)\n)\n\nfunc Transfer(to std.Address, send int64) string {\n\tif err := assertIsController(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif gInPause {\n\t\treturn errors.New(\"faucet in pause\").Error()\n\t}\n\n\t// limit the per request\n\tif send \u003e gLimit.Amount {\n\t\treturn errors.New(\"Per request limit \" + gLimit.String() + \" exceed\").Error()\n\t}\n\tsendCoins := std.Coins{std.NewCoin(\"ugnot\", send)}\n\n\tgTotalTransferred = gTotalTransferred.Add(sendCoins)\n\tgTotalTransfers++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tpkgaddr := std.CurrentRealm().Addr()\n\tbanker.SendCoins(pkgaddr, to, sendCoins)\n\treturn \"\"\n}\n\nfunc GetPerTransferLimit() int64 {\n\treturn gLimit.Amount\n}\n\nfunc Render(_ string) string {\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tbalance := banker.GetCoins(std.CurrentRealm().Addr())\n\n\toutput := gMessage\n\tif gInPause {\n\t\toutput += \"Status: inactive.\\n\"\n\t} else {\n\t\toutput += \"Status: active.\\n\"\n\t}\n\toutput += ufmt.Sprintf(\"Balance: %s.\\n\", balance.String())\n\toutput += ufmt.Sprintf(\"Total transfers: %s (in %d times).\\n\\n\", gTotalTransferred.String(), gTotalTransfers)\n\n\toutput += \"Package address: \" + std.CurrentRealm().Addr().String() + \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Admin: %s\\n\\n \", gAdminAddr.String())\n\toutput += ufmt.Sprintf(\"Controllers:\\n\\n \")\n\n\tfor i := 0; i \u003c gControllers.Size(); i++ {\n\t\t_, v := gControllers.GetByIndex(i)\n\t\toutput += ufmt.Sprintf(\"%s \", v.(std.Address))\n\t}\n\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Per request limit: %s\\n\\n\", gLimit.String())\n\n\treturn output\n}\n\nfunc assertIsController() error {\n\tcaller := std.GetOrigCaller()\n\n\tok := gControllers.Has(caller.String())\n\tif !ok {\n\t\treturn errors.New(caller.String() + \" is not on the controller list\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet_test.gno","body":"package faucet\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tfaucetaddr = std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\tcontrolleraddr3 = testutils.TestAddress(\"controller3\")\n\t\tcontrolleraddr4 = testutils.TestAddress(\"controller4\")\n\t\tcontrolleraddr5 = testutils.TestAddress(\"controller5\")\n\t\tcontrolleraddr6 = testutils.TestAddress(\"controller6\")\n\t\tcontrolleraddr7 = testutils.TestAddress(\"controller7\")\n\t\tcontrolleraddr8 = testutils.TestAddress(\"controller8\")\n\t\tcontrolleraddr9 = testutils.TestAddress(\"controller9\")\n\t\tcontrolleraddr10 = testutils.TestAddress(\"controller10\")\n\t\tcontrolleraddr11 = testutils.TestAddress(\"controller11\")\n\n\t\ttest1addr = testutils.TestAddress(\"test1\")\n\t)\n\t// deposit 1000gnot to faucet contract\n\tstd.TestIssueCoins(faucetaddr, std.Coins{{\"ugnot\", 1000000000}})\n\tassertBalance(t, faucetaddr, 1000000000)\n\n\t// by default, balance is empty, and as a user I cannot call Transfer, or Admin commands.\n\n\tassertBalance(t, test1addr, 0)\n\tstd.TestSetOrigCaller(test1addr)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// as an admin, add the controller to contract and deposit more 2000gnot to contract\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertBalance(t, faucetaddr, 1000000000)\n\n\t// now, send some tokens as controller.\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 1000000)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 2000000)\n\tassertBalance(t, faucetaddr, 998000000)\n\n\t// remove controller\n\t// as an admin, remove controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminRemoveController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// duplicate controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\t// add more than more than allowed controllers\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr2))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr3))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr4))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr5))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr6))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr7))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr8))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr9))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr10))\n\tassertErr(t, faucet.AdminAddController(controlleraddr11))\n\n\t// send more than per transfer limit\n\tstd.TestSetOrigCaller(adminaddr)\n\tfaucet.AdminSetTransferLimit(300000000)\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 301000000))\n\n\t// block transefer from the address not on the controllers list.\n\tstd.TestSetOrigCaller(controlleraddr11)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n}\n\nfunc assertErr(t *testing.T, err string) {\n\tt.Helper()\n\n\tif err == \"\" {\n\t\tt.Logf(\"info: got err: %v\", err)\n\t\tt.Errorf(\"expected an error, got nil.\")\n\t}\n}\n\nfunc assertNoErr(t *testing.T, err string) {\n\tt.Helper()\n\tif err != \"\" {\n\t\tt.Errorf(\"got err: %v.\", err)\n\t}\n}\n\nfunc assertBalance(t *testing.T, addr std.Address, expectedBal int64) {\n\tt.Helper()\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(addr)\n\tgot := coins.AmountOf(\"ugnot\")\n\n\tif expectedBal != got {\n\t\tt.Errorf(\"invalid balance: expected %d, got %d.\", expectedBal, got)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with a path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"path\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and 2 controllers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints coints to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with 2 controllers and 2 transfers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\ttestaddr1 = testutils.TestAddress(\"test1\")\n\t\ttestaddr2 = testutils.TestAddress(\"test2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr1)\n\terr = faucet.Transfer(testaddr1, 1000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr2)\n\terr = faucet.Transfer(testaddr1, 2000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 197000000ugnot.\n// Total transfers: 3000000ugnot (in 2 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8hJLfPFGmA11PTMIND73cRsV2En5IGZqNmpIVsR+0mmHLv2CweNKE3y217hgcmaLOfaJg8khd0BhdoDWhZ/mAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"faucet","path":"gno.land/r/gnoland/faucet","files":[{"name":"admin.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nfunc AdminSetInPause(inPause bool) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgInPause = inPause\n\treturn \"\"\n}\n\nfunc AdminSetMessage(message string) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgMessage = message\n\treturn \"\"\n}\n\nfunc AdminSetTransferLimit(amount int64) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgLimit = std.NewCoin(\"ugnot\", amount)\n\treturn \"\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgAdminAddr = addr\n\treturn \"\"\n}\n\nfunc AdminAddController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tsize := gControllers.Size()\n\n\tif size \u003e= gControllersMaxSize {\n\t\treturn \"can not add more controllers than allowed\"\n\t}\n\n\tif gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" exists, no need to add.\"\n\t}\n\n\tgControllers.Set(addr.String(), addr)\n\n\treturn \"\"\n}\n\nfunc AdminRemoveController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif !gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\t_, ok := gControllers.Remove(addr.String())\n\n\t// it not should happen.\n\t// we will check anyway to prevent issues in the underline implementation.\n\n\tif !ok {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\treturn \"\"\n}\n\nfunc assertIsAdmin() error {\n\tcaller := std.GetOrigCaller()\n\tif caller != gAdminAddr {\n\t\treturn errors.New(\"restricted for admin\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\t// configurable by admin.\n\tgAdminAddr std.Address = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tgControllers = avl.NewTree()\n\tgControllersMaxSize = 10 // limit it to 10\n\tgInPause = false\n\tgMessage = \"# Community Faucet.\\n\\n\"\n\n\t// internal vars, for stats.\n\tgTotalTransferred std.Coins\n\tgTotalTransfers = uint(0)\n\n\t// per request limit, 350 gnot\n\tgLimit std.Coin = std.NewCoin(\"ugnot\", 350000000)\n)\n\nfunc Transfer(to std.Address, send int64) string {\n\tif err := assertIsController(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif gInPause {\n\t\treturn errors.New(\"faucet in pause\").Error()\n\t}\n\n\t// limit the per request\n\tif send \u003e gLimit.Amount {\n\t\treturn errors.New(\"Per request limit \" + gLimit.String() + \" exceed\").Error()\n\t}\n\tsendCoins := std.Coins{std.NewCoin(\"ugnot\", send)}\n\n\tgTotalTransferred = gTotalTransferred.Add(sendCoins)\n\tgTotalTransfers++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tpkgaddr := std.CurrentRealm().Addr()\n\tbanker.SendCoins(pkgaddr, to, sendCoins)\n\treturn \"\"\n}\n\nfunc GetPerTransferLimit() int64 {\n\treturn gLimit.Amount\n}\n\nfunc Render(_ string) string {\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tbalance := banker.GetCoins(std.CurrentRealm().Addr())\n\n\toutput := gMessage\n\tif gInPause {\n\t\toutput += \"Status: inactive.\\n\"\n\t} else {\n\t\toutput += \"Status: active.\\n\"\n\t}\n\toutput += ufmt.Sprintf(\"Balance: %s.\\n\", balance.String())\n\toutput += ufmt.Sprintf(\"Total transfers: %s (in %d times).\\n\\n\", gTotalTransferred.String(), gTotalTransfers)\n\n\toutput += \"Package address: \" + std.CurrentRealm().Addr().String() + \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Admin: %s\\n\\n \", gAdminAddr.String())\n\toutput += ufmt.Sprintf(\"Controllers:\\n\\n \")\n\n\tfor i := 0; i \u003c gControllers.Size(); i++ {\n\t\t_, v := gControllers.GetByIndex(i)\n\t\toutput += ufmt.Sprintf(\"%s \", v.(std.Address))\n\t}\n\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Per request limit: %s\\n\\n\", gLimit.String())\n\n\treturn output\n}\n\nfunc assertIsController() error {\n\tcaller := std.GetOrigCaller()\n\n\tok := gControllers.Has(caller.String())\n\tif !ok {\n\t\treturn errors.New(caller.String() + \" is not on the controller list\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet_test.gno","body":"package faucet\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tfaucetaddr = std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\tcontrolleraddr3 = testutils.TestAddress(\"controller3\")\n\t\tcontrolleraddr4 = testutils.TestAddress(\"controller4\")\n\t\tcontrolleraddr5 = testutils.TestAddress(\"controller5\")\n\t\tcontrolleraddr6 = testutils.TestAddress(\"controller6\")\n\t\tcontrolleraddr7 = testutils.TestAddress(\"controller7\")\n\t\tcontrolleraddr8 = testutils.TestAddress(\"controller8\")\n\t\tcontrolleraddr9 = testutils.TestAddress(\"controller9\")\n\t\tcontrolleraddr10 = testutils.TestAddress(\"controller10\")\n\t\tcontrolleraddr11 = testutils.TestAddress(\"controller11\")\n\n\t\ttest1addr = testutils.TestAddress(\"test1\")\n\t)\n\t// deposit 1000gnot to faucet contract\n\tstd.TestIssueCoins(faucetaddr, std.Coins{{\"ugnot\", 1000000000}})\n\tassertBalance(t, faucetaddr, 1000000000)\n\n\t// by default, balance is empty, and as a user I cannot call Transfer, or Admin commands.\n\n\tassertBalance(t, test1addr, 0)\n\tstd.TestSetOrigCaller(test1addr)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// as an admin, add the controller to contract and deposit more 2000gnot to contract\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertBalance(t, faucetaddr, 1000000000)\n\n\t// now, send some tokens as controller.\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 1000000)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 2000000)\n\tassertBalance(t, faucetaddr, 998000000)\n\n\t// remove controller\n\t// as an admin, remove controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminRemoveController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// duplicate controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\t// add more than more than allowed controllers\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr2))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr3))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr4))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr5))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr6))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr7))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr8))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr9))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr10))\n\tassertErr(t, faucet.AdminAddController(controlleraddr11))\n\n\t// send more than per transfer limit\n\tstd.TestSetOrigCaller(adminaddr)\n\tfaucet.AdminSetTransferLimit(300000000)\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 301000000))\n\n\t// block transefer from the address not on the controllers list.\n\tstd.TestSetOrigCaller(controlleraddr11)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n}\n\nfunc assertErr(t *testing.T, err string) {\n\tt.Helper()\n\n\tif err == \"\" {\n\t\tt.Logf(\"info: got err: %v\", err)\n\t\tt.Errorf(\"expected an error, got nil.\")\n\t}\n}\n\nfunc assertNoErr(t *testing.T, err string) {\n\tt.Helper()\n\tif err != \"\" {\n\t\tt.Errorf(\"got err: %v.\", err)\n\t}\n}\n\nfunc assertBalance(t *testing.T, addr std.Address, expectedBal int64) {\n\tt.Helper()\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(addr)\n\tgot := coins.AmountOf(\"ugnot\")\n\n\tif expectedBal != got {\n\t\tt.Errorf(\"invalid balance: expected %d, got %d.\", expectedBal, got)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with a path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"path\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and 2 controllers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints coints to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with 2 controllers and 2 transfers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\ttestaddr1 = testutils.TestAddress(\"test1\")\n\t\ttestaddr2 = testutils.TestAddress(\"test2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr1)\n\terr = faucet.Transfer(testaddr1, 1000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr2)\n\terr = faucet.Transfer(testaddr1, 2000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 197000000ugnot.\n// Total transfers: 3000000ugnot (in 2 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8hJLfPFGmA11PTMIND73cRsV2En5IGZqNmpIVsR+0mmHLv2CweNKE3y217hgcmaLOfaJg8khd0BhdoDWhZ/mAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"faucet","path":"gno.land/r/gnoland/faucet","files":[{"name":"admin.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nfunc AdminSetInPause(inPause bool) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgInPause = inPause\n\treturn \"\"\n}\n\nfunc AdminSetMessage(message string) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgMessage = message\n\treturn \"\"\n}\n\nfunc AdminSetTransferLimit(amount int64) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgLimit = std.NewCoin(\"ugnot\", amount)\n\treturn \"\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgAdminAddr = addr\n\treturn \"\"\n}\n\nfunc AdminAddController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tsize := gControllers.Size()\n\n\tif size \u003e= gControllersMaxSize {\n\t\treturn \"can not add more controllers than allowed\"\n\t}\n\n\tif gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" exists, no need to add.\"\n\t}\n\n\tgControllers.Set(addr.String(), addr)\n\n\treturn \"\"\n}\n\nfunc AdminRemoveController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif !gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\t_, ok := gControllers.Remove(addr.String())\n\n\t// it not should happen.\n\t// we will check anyway to prevent issues in the underline implementation.\n\n\tif !ok {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\treturn \"\"\n}\n\nfunc assertIsAdmin() error {\n\tcaller := std.GetOrigCaller()\n\tif caller != gAdminAddr {\n\t\treturn errors.New(\"restricted for admin\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\t// configurable by admin.\n\tgAdminAddr std.Address = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tgControllers = avl.NewTree()\n\tgControllersMaxSize = 10 // limit it to 10\n\tgInPause = false\n\tgMessage = \"# Community Faucet.\\n\\n\"\n\n\t// internal vars, for stats.\n\tgTotalTransferred std.Coins\n\tgTotalTransfers = uint(0)\n\n\t// per request limit, 350 gnot\n\tgLimit std.Coin = std.NewCoin(\"ugnot\", 350000000)\n)\n\nfunc Transfer(to std.Address, send int64) string {\n\tif err := assertIsController(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif gInPause {\n\t\treturn errors.New(\"faucet in pause\").Error()\n\t}\n\n\t// limit the per request\n\tif send \u003e gLimit.Amount {\n\t\treturn errors.New(\"Per request limit \" + gLimit.String() + \" exceed\").Error()\n\t}\n\tsendCoins := std.Coins{std.NewCoin(\"ugnot\", send)}\n\n\tgTotalTransferred = gTotalTransferred.Add(sendCoins)\n\tgTotalTransfers++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tpkgaddr := std.CurrentRealm().Addr()\n\tbanker.SendCoins(pkgaddr, to, sendCoins)\n\treturn \"\"\n}\n\nfunc GetPerTransferLimit() int64 {\n\treturn gLimit.Amount\n}\n\nfunc Render(_ string) string {\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tbalance := banker.GetCoins(std.CurrentRealm().Addr())\n\n\toutput := gMessage\n\tif gInPause {\n\t\toutput += \"Status: inactive.\\n\"\n\t} else {\n\t\toutput += \"Status: active.\\n\"\n\t}\n\toutput += ufmt.Sprintf(\"Balance: %s.\\n\", balance.String())\n\toutput += ufmt.Sprintf(\"Total transfers: %s (in %d times).\\n\\n\", gTotalTransferred.String(), gTotalTransfers)\n\n\toutput += \"Package address: \" + std.CurrentRealm().Addr().String() + \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Admin: %s\\n\\n \", gAdminAddr.String())\n\toutput += ufmt.Sprintf(\"Controllers:\\n\\n \")\n\n\tfor i := 0; i \u003c gControllers.Size(); i++ {\n\t\t_, v := gControllers.GetByIndex(i)\n\t\toutput += ufmt.Sprintf(\"%s \", v.(std.Address))\n\t}\n\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Per request limit: %s\\n\\n\", gLimit.String())\n\n\treturn output\n}\n\nfunc assertIsController() error {\n\tcaller := std.GetOrigCaller()\n\n\tok := gControllers.Has(caller.String())\n\tif !ok {\n\t\treturn errors.New(caller.String() + \" is not on the controller list\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet_test.gno","body":"package faucet\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tfaucetaddr = std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\tcontrolleraddr3 = testutils.TestAddress(\"controller3\")\n\t\tcontrolleraddr4 = testutils.TestAddress(\"controller4\")\n\t\tcontrolleraddr5 = testutils.TestAddress(\"controller5\")\n\t\tcontrolleraddr6 = testutils.TestAddress(\"controller6\")\n\t\tcontrolleraddr7 = testutils.TestAddress(\"controller7\")\n\t\tcontrolleraddr8 = testutils.TestAddress(\"controller8\")\n\t\tcontrolleraddr9 = testutils.TestAddress(\"controller9\")\n\t\tcontrolleraddr10 = testutils.TestAddress(\"controller10\")\n\t\tcontrolleraddr11 = testutils.TestAddress(\"controller11\")\n\n\t\ttest1addr = testutils.TestAddress(\"test1\")\n\t)\n\t// deposit 1000gnot to faucet contract\n\tstd.TestIssueCoins(faucetaddr, std.Coins{{\"ugnot\", 1000000000}})\n\tassertBalance(t, faucetaddr, 1200000000)\n\n\t// by default, balance is empty, and as a user I cannot call Transfer, or Admin commands.\n\n\tassertBalance(t, test1addr, 0)\n\tstd.TestSetOrigCaller(test1addr)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// as an admin, add the controller to contract and deposit more 2000gnot to contract\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertBalance(t, faucetaddr, 1200000000)\n\n\t// now, send some tokens as controller.\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 1000000)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 2000000)\n\tassertBalance(t, faucetaddr, 1198000000)\n\n\t// remove controller\n\t// as an admin, remove controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminRemoveController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// duplicate controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\t// add more than more than allowed controllers\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr2))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr3))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr4))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr5))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr6))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr7))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr8))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr9))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr10))\n\tassertErr(t, faucet.AdminAddController(controlleraddr11))\n\n\t// send more than per transfer limit\n\tstd.TestSetOrigCaller(adminaddr)\n\tfaucet.AdminSetTransferLimit(300000000)\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 301000000))\n\n\t// block transefer from the address not on the controllers list.\n\tstd.TestSetOrigCaller(controlleraddr11)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n}\n\nfunc assertErr(t *testing.T, err string) {\n\tt.Helper()\n\n\tif err == \"\" {\n\t\tt.Logf(\"info: got err: %v\", err)\n\t\tt.Errorf(\"expected an error, got nil.\")\n\t}\n}\n\nfunc assertNoErr(t *testing.T, err string) {\n\tt.Helper()\n\tif err != \"\" {\n\t\tt.Errorf(\"got err: %v.\", err)\n\t}\n}\n\nfunc assertBalance(t *testing.T, addr std.Address, expectedBal int64) {\n\tt.Helper()\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(addr)\n\tgot := coins.AmountOf(\"ugnot\")\n\n\tif expectedBal != got {\n\t\tt.Errorf(\"invalid balance: expected %d, got %d.\", expectedBal, got)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with a path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"path\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and 2 controllers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n"},{"name":"z3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints coints to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with 2 controllers and 2 transfers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\ttestaddr1 = testutils.TestAddress(\"test1\")\n\t\ttestaddr2 = testutils.TestAddress(\"test2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr1)\n\terr = faucet.Transfer(testaddr1, 1000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr2)\n\terr = faucet.Transfer(testaddr1, 2000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 197000000ugnot.\n// Total transfers: 3000000ugnot (in 2 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wOyzlNjt+hBiauwl5Bm3NShLNAAtZscbbNpGUT6n+PtlgBBvlSL9Po8kL2qxhHJTEpME8emv52VLyNU3oBjhAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"feed","path":"gno.land/p/demo/gnorkle/feed","files":[{"name":"errors.gno","body":"package feed\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined feed\")\n"},{"name":"task.gno","body":"package feed\n\n// Task is a unit of work that can be part of a `Feed` definition. Tasks\n// are executed by agents.\ntype Task interface {\n\tMarshalJSON() ([]byte, error)\n}\n"},{"name":"type.gno","body":"package feed\n\n// Type indicates the type of a feed.\ntype Type int\n\nconst (\n\t// TypeStatic indicates a feed cannot be changed once the first value is committed.\n\tTypeStatic Type = iota\n\t// TypeContinuous indicates a feed can continuously ingest values and will publish\n\t// a new value on request using the values it has ingested.\n\tTypeContinuous\n\t// TypePeriodic indicates a feed can accept one or more values within a certain period\n\t// and will proceed to commit these values at the end up each period to produce an\n\t// aggregate value before starting a new period.\n\tTypePeriodic\n)\n"},{"name":"value.gno","body":"package feed\n\nimport \"time\"\n\n// Value represents a value published by a feed. The `Time` is when the value was published.\ntype Value struct {\n\tString string\n\tTime time.Time\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v+Mz1KJluyq6aZ6Sm3jdP7wnAbwdVvtl1I+T7zw2gW8/9ZBoostzRoYFyezCjU4+iVCtkl8UKTdkBxLN9S/bAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"feed","path":"gno.land/p/demo/gnorkle/feed","files":[{"name":"errors.gno","body":"package feed\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined feed\")\n"},{"name":"task.gno","body":"package feed\n\n// Task is a unit of work that can be part of a `Feed` definition. Tasks\n// are executed by agents.\ntype Task interface {\n\tMarshalJSON() ([]byte, error)\n}\n"},{"name":"type.gno","body":"package feed\n\n// Type indicates the type of a feed.\ntype Type int\n\nconst (\n\t// TypeStatic indicates a feed cannot be changed once the first value is committed.\n\tTypeStatic Type = iota\n\t// TypeContinuous indicates a feed can continuously ingest values and will publish\n\t// a new value on request using the values it has ingested.\n\tTypeContinuous\n\t// TypePeriodic indicates a feed can accept one or more values within a certain period\n\t// and will proceed to commit these values at the end up each period to produce an\n\t// aggregate value before starting a new period.\n\tTypePeriodic\n)\n"},{"name":"value.gno","body":"package feed\n\nimport \"time\"\n\n// Value represents a value published by a feed. The `Time` is when the value was published.\ntype Value struct {\n\tString string\n\tTime time.Time\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v+Mz1KJluyq6aZ6Sm3jdP7wnAbwdVvtl1I+T7zw2gW8/9ZBoostzRoYFyezCjU4+iVCtkl8UKTdkBxLN9S/bAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"feed","path":"gno.land/p/demo/gnorkle/feed","files":[{"name":"errors.gno","body":"package feed\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined feed\")\n"},{"name":"task.gno","body":"package feed\n\n// Task is a unit of work that can be part of a `Feed` definition. Tasks\n// are executed by agents.\ntype Task interface {\n\tMarshalJSON() ([]byte, error)\n}\n"},{"name":"type.gno","body":"package feed\n\n// Type indicates the type of a feed.\ntype Type int\n\nconst (\n\t// TypeStatic indicates a feed cannot be changed once the first value is committed.\n\tTypeStatic Type = iota\n\t// TypeContinuous indicates a feed can continuously ingest values and will publish\n\t// a new value on request using the values it has ingested.\n\tTypeContinuous\n\t// TypePeriodic indicates a feed can accept one or more values within a certain period\n\t// and will proceed to commit these values at the end up each period to produce an\n\t// aggregate value before starting a new period.\n\tTypePeriodic\n)\n"},{"name":"value.gno","body":"package feed\n\nimport \"time\"\n\n// Value represents a value published by a feed. The `Time` is when the value was published.\ntype Value struct {\n\tString string\n\tTime time.Time\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v+Mz1KJluyq6aZ6Sm3jdP7wnAbwdVvtl1I+T7zw2gW8/9ZBoostzRoYFyezCjU4+iVCtkl8UKTdkBxLN9S/bAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"flow","path":"gno.land/p/demo/flow","files":[{"name":"LICENSE","body":"https://github.com/mxk/go-flowrate/blob/master/LICENSE\nBSD 3-Clause \"New\" or \"Revised\" License\n\nCopyright (c) 2014 The Go-FlowRate Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the\n distribution.\n\n * Neither the name of the go-flowrate project nor the names of its\n contributors may be used to endorse or promote products derived\n from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"Data Flow Rate Control\n======================\n\nTo download and install this package run:\n\ngo get github.com/mxk/go-flowrate/flowrate\n\nThe documentation is available at:\n\nhttp://godoc.org/github.com/mxk/go-flowrate/flowrate\n"},{"name":"flow.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n// XXX modified to disable blocking, time.Sleep().\n\n// Package flow provides the tools for monitoring and limiting the flow rate\n// of an arbitrary data stream.\npackage flow\n\nimport (\n\t\"math\"\n\t// \"sync\"\n\t\"time\"\n)\n\n// Monitor monitors and limits the transfer rate of a data stream.\ntype Monitor struct {\n\t// mu sync.Mutex // Mutex guarding access to all internal fields\n\tactive bool // Flag indicating an active transfer\n\tstart time.Duration // Transfer start time (clock() value)\n\tbytes int64 // Total number of bytes transferred\n\tsamples int64 // Total number of samples taken\n\n\trSample float64 // Most recent transfer rate sample (bytes per second)\n\trEMA float64 // Exponential moving average of rSample\n\trPeak float64 // Peak transfer rate (max of all rSamples)\n\trWindow float64 // rEMA window (seconds)\n\n\tsBytes int64 // Number of bytes transferred since sLast\n\tsLast time.Duration // Most recent sample time (stop time when inactive)\n\tsRate time.Duration // Sampling rate\n\n\ttBytes int64 // Number of bytes expected in the current transfer\n\ttLast time.Duration // Time of the most recent transfer of at least 1 byte\n}\n\n// New creates a new flow control monitor. Instantaneous transfer rate is\n// measured and updated for each sampleRate interval. windowSize determines the\n// weight of each sample in the exponential moving average (EMA) calculation.\n// The exact formulas are:\n//\n//\tsampleTime = currentTime - prevSampleTime\n//\tsampleRate = byteCount / sampleTime\n//\tweight = 1 - exp(-sampleTime/windowSize)\n//\tnewRate = weight*sampleRate + (1-weight)*oldRate\n//\n// The default values for sampleRate and windowSize (if \u003c= 0) are 100ms and 1s,\n// respectively.\nfunc New(sampleRate, windowSize time.Duration) *Monitor {\n\tif sampleRate = clockRound(sampleRate); sampleRate \u003c= 0 {\n\t\tsampleRate = 5 * clockRate\n\t}\n\tif windowSize \u003c= 0 {\n\t\twindowSize = 1 * time.Second\n\t}\n\tnow := clock()\n\treturn \u0026Monitor{\n\t\tactive: true,\n\t\tstart: now,\n\t\trWindow: windowSize.Seconds(),\n\t\tsLast: now,\n\t\tsRate: sampleRate,\n\t\ttLast: now,\n\t}\n}\n\n// Update records the transfer of n bytes and returns n. It should be called\n// after each Read/Write operation, even if n is 0.\nfunc (m *Monitor) Update(n int) int {\n\t// m.mu.Lock()\n\tm.update(n)\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// Hack to set the current rEMA.\nfunc (m *Monitor) SetREMA(rEMA float64) {\n\t// m.mu.Lock()\n\tm.rEMA = rEMA\n\tm.samples++\n\t// m.mu.Unlock()\n}\n\n// IO is a convenience method intended to wrap io.Reader and io.Writer method\n// execution. It calls m.Update(n) and then returns (n, err) unmodified.\nfunc (m *Monitor) IO(n int, err error) (int, error) {\n\treturn m.Update(n), err\n}\n\n// Done marks the transfer as finished and prevents any further updates or\n// limiting. Instantaneous and current transfer rates drop to 0. Update, IO, and\n// Limit methods become NOOPs. It returns the total number of bytes transferred.\nfunc (m *Monitor) Done() int64 {\n\t// m.mu.Lock()\n\tif now := m.update(0); m.sBytes \u003e 0 {\n\t\tm.reset(now)\n\t}\n\tm.active = false\n\tm.tLast = 0\n\tn := m.bytes\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// timeRemLimit is the maximum Status.TimeRem value.\nconst timeRemLimit = 999*time.Hour + 59*time.Minute + 59*time.Second\n\n// Status represents the current Monitor status. All transfer rates are in bytes\n// per second rounded to the nearest byte.\ntype Status struct {\n\tActive bool // Flag indicating an active transfer\n\tStart time.Time // Transfer start time\n\tDuration time.Duration // Time period covered by the statistics\n\tIdle time.Duration // Time since the last transfer of at least 1 byte\n\tBytes int64 // Total number of bytes transferred\n\tSamples int64 // Total number of samples taken\n\tInstRate int64 // Instantaneous transfer rate\n\tCurRate int64 // Current transfer rate (EMA of InstRate)\n\tAvgRate int64 // Average transfer rate (Bytes / Duration)\n\tPeakRate int64 // Maximum instantaneous transfer rate\n\tBytesRem int64 // Number of bytes remaining in the transfer\n\tTimeRem time.Duration // Estimated time to completion\n\tProgress Percent // Overall transfer progress\n}\n\nfunc (s Status) String() string {\n\treturn \"STATUS{}\"\n}\n\n// Status returns current transfer status information. The returned value\n// becomes static after a call to Done.\nfunc (m *Monitor) Status() Status {\n\t// m.mu.Lock()\n\tnow := m.update(0)\n\ts := Status{\n\t\tActive: m.active,\n\t\tStart: clockToTime(m.start),\n\t\tDuration: m.sLast - m.start,\n\t\tIdle: now - m.tLast,\n\t\tBytes: m.bytes,\n\t\tSamples: m.samples,\n\t\tPeakRate: round(m.rPeak),\n\t\tBytesRem: m.tBytes - m.bytes,\n\t\tProgress: percentOf(float64(m.bytes), float64(m.tBytes)),\n\t}\n\tif s.BytesRem \u003c 0 {\n\t\ts.BytesRem = 0\n\t}\n\tif s.Duration \u003e 0 {\n\t\trAvg := float64(s.Bytes) / s.Duration.Seconds()\n\t\ts.AvgRate = round(rAvg)\n\t\tif s.Active {\n\t\t\ts.InstRate = round(m.rSample)\n\t\t\ts.CurRate = round(m.rEMA)\n\t\t\tif s.BytesRem \u003e 0 {\n\t\t\t\tif tRate := 0.8*m.rEMA + 0.2*rAvg; tRate \u003e 0 {\n\t\t\t\t\tns := float64(s.BytesRem) / tRate * 1e9\n\t\t\t\t\tif ns \u003e float64(timeRemLimit) {\n\t\t\t\t\t\tns = float64(timeRemLimit)\n\t\t\t\t\t}\n\t\t\t\t\ts.TimeRem = clockRound(time.Duration(ns))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// m.mu.Unlock()\n\treturn s\n}\n\n// Limit restricts the instantaneous (per-sample) data flow to rate bytes per\n// second. It returns the maximum number of bytes (0 \u003c= n \u003c= want) that may be\n// transferred immediately without exceeding the limit. If block == true, the\n// call blocks until n \u003e 0. want is returned unmodified if want \u003c 1, rate \u003c 1,\n// or the transfer is inactive (after a call to Done).\n//\n// At least one byte is always allowed to be transferred in any given sampling\n// period. Thus, if the sampling rate is 100ms, the lowest achievable flow rate\n// is 10 bytes per second.\n//\n// For usage examples, see the implementation of Reader and Writer in io.go.\nfunc (m *Monitor) Limit(want int, rate int64, block bool) (n int) {\n\tif block {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\tif want \u003c 1 || rate \u003c 1 {\n\t\treturn want\n\t}\n\t// m.mu.Lock()\n\n\t// Determine the maximum number of bytes that can be sent in one sample\n\tlimit := round(float64(rate) * m.sRate.Seconds())\n\tif limit \u003c= 0 {\n\t\tlimit = 1\n\t}\n\n\t_ = m.update(0)\n\t/* XXX\n\t// If block == true, wait until m.sBytes \u003c limit\n\tif now := m.update(0); block {\n\t\tfor m.sBytes \u003e= limit \u0026\u0026 m.active {\n\t\t\tnow = m.waitNextSample(now)\n\t\t}\n\t}\n\t*/\n\n\t// Make limit \u003c= want (unlimited if the transfer is no longer active)\n\tif limit -= m.sBytes; limit \u003e int64(want) || !m.active {\n\t\tlimit = int64(want)\n\t}\n\t// m.mu.Unlock()\n\n\tif limit \u003c 0 {\n\t\tlimit = 0\n\t}\n\treturn int(limit)\n}\n\n// SetTransferSize specifies the total size of the data transfer, which allows\n// the Monitor to calculate the overall progress and time to completion.\nfunc (m *Monitor) SetTransferSize(bytes int64) {\n\tif bytes \u003c 0 {\n\t\tbytes = 0\n\t}\n\t// m.mu.Lock()\n\tm.tBytes = bytes\n\t// m.mu.Unlock()\n}\n\n// update accumulates the transferred byte count for the current sample until\n// clock() - m.sLast \u003e= m.sRate. The monitor status is updated once the current\n// sample is done.\nfunc (m *Monitor) update(n int) (now time.Duration) {\n\tif !m.active {\n\t\treturn\n\t}\n\tif now = clock(); n \u003e 0 {\n\t\tm.tLast = now\n\t}\n\tm.sBytes += int64(n)\n\tif sTime := now - m.sLast; sTime \u003e= m.sRate {\n\t\tt := sTime.Seconds()\n\t\tif m.rSample = float64(m.sBytes) / t; m.rSample \u003e m.rPeak {\n\t\t\tm.rPeak = m.rSample\n\t\t}\n\n\t\t// Exponential moving average using a method similar to *nix load\n\t\t// average calculation. Longer sampling periods carry greater weight.\n\t\tif m.samples \u003e 0 {\n\t\t\tw := math.Exp(-t / m.rWindow)\n\t\t\tm.rEMA = m.rSample + w*(m.rEMA-m.rSample)\n\t\t} else {\n\t\t\tm.rEMA = m.rSample\n\t\t}\n\t\tm.reset(now)\n\t}\n\treturn\n}\n\n// reset clears the current sample state in preparation for the next sample.\nfunc (m *Monitor) reset(sampleTime time.Duration) {\n\tm.bytes += m.sBytes\n\tm.samples++\n\tm.sBytes = 0\n\tm.sLast = sampleTime\n}\n\n/*\n// waitNextSample sleeps for the remainder of the current sample. The lock is\n// released and reacquired during the actual sleep period, so it's possible for\n// the transfer to be inactive when this method returns.\nfunc (m *Monitor) waitNextSample(now time.Duration) time.Duration {\n\tconst minWait = 5 * time.Millisecond\n\tcurrent := m.sLast\n\n\t// sleep until the last sample time changes (ideally, just one iteration)\n\tfor m.sLast == current \u0026\u0026 m.active {\n\t\td := current + m.sRate - now\n\t\t// m.mu.Unlock()\n\t\tif d \u003c minWait {\n\t\t\td = minWait\n\t\t}\n\t\ttime.Sleep(d)\n\t\t// m.mu.Lock()\n\t\tnow = m.update(0)\n\t}\n\treturn now\n}\n*/\n"},{"name":"io.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\n// ErrLimit is returned by the Writer when a non-blocking write is short due to\n// the transfer rate limit.\nvar ErrLimit = errors.New(\"flowrate: flow rate limit exceeded\")\n\n// Limiter is implemented by the Reader and Writer to provide a consistent\n// interface for monitoring and controlling data transfer.\ntype Limiter interface {\n\tDone() int64\n\tStatus() Status\n\tSetTransferSize(bytes int64)\n\tSetLimit(new int64) (old int64)\n\tSetBlocking(new bool) (old bool)\n}\n\n// Reader implements io.ReadCloser with a restriction on the rate of data\n// transfer.\ntype Reader struct {\n\tio.Reader // Data source\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be read due to the limit\n}\n\n// NewReader restricts all Read operations on r to limit bytes per second.\nfunc NewReader(r io.Reader, limit int64) *Reader {\n\treturn \u0026Reader{r, New(0, 0), limit, false} // XXX default false\n}\n\n// Read reads up to len(p) bytes into p without exceeding the current transfer\n// rate limit. It returns (0, nil) immediately if r is non-blocking and no new\n// bytes can be read at this time.\nfunc (r *Reader) Read(p []byte) (n int, err error) {\n\tp = p[:r.Limit(len(p), r.limit, r.block)]\n\tif len(p) \u003e 0 {\n\t\tn, err = r.IO(r.Reader.Read(p))\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (r *Reader) SetLimit(new int64) (old int64) {\n\told, r.limit = r.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Read call on a non-blocking reader returns immediately if no additional bytes\n// may be read at this time due to the rate limit.\nfunc (r *Reader) SetBlocking(new bool) (old bool) {\n\tif new == true {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\told, r.block = r.block, new\n\treturn\n}\n\n// Close closes the underlying reader if it implements the io.Closer interface.\nfunc (r *Reader) Close() error {\n\tdefer r.Done()\n\tif c, ok := r.Reader.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n\n// Writer implements io.WriteCloser with a restriction on the rate of data\n// transfer.\ntype Writer struct {\n\tio.Writer // Data destination\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be written due to the limit\n}\n\n// NewWriter restricts all Write operations on w to limit bytes per second. The\n// transfer rate and the default blocking behavior (true) can be changed\n// directly on the returned *Writer.\nfunc NewWriter(w io.Writer, limit int64) *Writer {\n\treturn \u0026Writer{w, New(0, 0), limit, false} // XXX default false\n}\n\n// Write writes len(p) bytes from p to the underlying data stream without\n// exceeding the current transfer rate limit. It returns (n, ErrLimit) if w is\n// non-blocking and no additional bytes can be written at this time.\nfunc (w *Writer) Write(p []byte) (n int, err error) {\n\tvar c int\n\tfor len(p) \u003e 0 \u0026\u0026 err == nil {\n\t\ts := p[:w.Limit(len(p), w.limit, w.block)]\n\t\tif len(s) \u003e 0 {\n\t\t\tc, err = w.IO(w.Writer.Write(s))\n\t\t} else {\n\t\t\treturn n, ErrLimit\n\t\t}\n\t\tp = p[c:]\n\t\tn += c\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (w *Writer) SetLimit(new int64) (old int64) {\n\told, w.limit = w.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Write call on a non-blocking writer returns as soon as no additional bytes\n// may be written at this time due to the rate limit.\nfunc (w *Writer) SetBlocking(new bool) (old bool) {\n\told, w.block = w.block, new\n\treturn\n}\n\n// Close closes the underlying writer if it implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tdefer w.Done()\n\tif c, ok := w.Writer.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n"},{"name":"io_test.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\tios_test \"internal/os_test\"\n)\n\n// XXX ugh, I can't even sleep milliseconds.\n// XXX\n\nconst (\n\t_50ms = 50 * time.Millisecond\n\t_100ms = 100 * time.Millisecond\n\t_200ms = 200 * time.Millisecond\n\t_300ms = 300 * time.Millisecond\n\t_400ms = 400 * time.Millisecond\n\t_500ms = 500 * time.Millisecond\n)\n\nfunc nextStatus(m *Monitor) Status {\n\tsamples := m.samples\n\tfor i := 0; i \u003c 30; i++ {\n\t\tif s := m.Status(); s.Samples != samples {\n\t\t\treturn s\n\t\t}\n\t\tios_test.Sleep(5 * time.Millisecond)\n\t}\n\treturn m.Status()\n}\n\nfunc TestReader(t *testing.T) {\n\tin := make([]byte, 100)\n\tfor i := range in {\n\t\tin[i] = byte(i)\n\t}\n\tb := make([]byte, 100)\n\tr := NewReader(bytes.NewReader(in), 100)\n\tstart := time.Now()\n\n\t// Make sure r implements Limiter\n\t_ = Limiter(r)\n\n\t// 1st read of 10 bytes is performed immediately\n\tif n, err := r.Read(b); n != 10 {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\t// No new Reads allowed in the current sample\n\tr.SetBlocking(false)\n\tif n, err := r.Read(b); n != 0 {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\tstatus := [6]Status{0: r.Status()} // No samples in the first status\n\n\t// 2nd read of 10 bytes blocks until the next sample\n\t// r.SetBlocking(true)\n\tios_test.Sleep(100 * time.Millisecond)\n\tif n, err := r.Read(b[10:]); n != 10 {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _100ms {\n\t\tt.Fatalf(\"r.Read(b[10:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tstatus[1] = r.Status() // 1st sample\n\tstatus[2] = nextStatus(r.Monitor) // 2nd sample\n\tstatus[3] = nextStatus(r.Monitor) // No activity for the 3rd sample\n\n\tif n := r.Done(); n != 20 {\n\t\tt.Fatalf(\"r.Done() expected 20; got %v\", n)\n\t}\n\n\tstatus[4] = r.Status()\n\tstatus[5] = nextStatus(r.Monitor) // Timeout\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t{true, start, _100ms, 0, 10, 1, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _200ms, _100ms, 20, 2, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _300ms, _200ms, 20, 3, 0, 90, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"r.Status(%v)\\nexpected: %v\\ngot : %v\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b[:20], in[:20]) {\n\t\tt.Errorf(\"r.Read() input doesn't match output\")\n\t}\n}\n\n// XXX blocking writer test doesn't work.\nfunc _TestWriter(t *testing.T) {\n\tb := make([]byte, 100)\n\tfor i := range b {\n\t\tb[i] = byte(i)\n\t}\n\tw := NewWriter(\u0026bytes.Buffer{}, 200)\n\tstart := time.Now()\n\n\t// Make sure w implements Limiter\n\t_ = Limiter(w)\n\n\t// Non-blocking 20-byte write for the first sample returns ErrLimit\n\tw.SetBlocking(false)\n\tif n, err := w.Write(b); n != 20 || err != ErrLimit {\n\t\tt.Fatalf(\"w.Write(b) expected 20 (ErrLimit); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"w.Write(b) took too long (%v)\", rt)\n\t}\n\n\t// Blocking 80-byte write\n\t// w.SetBlocking(true)\n\t// XXX This test doesn't work, because w.Write calls w.Limit(block=false),\n\t// XXX and it returns ErrLimit after 20. What we want is to keep waiting until 80 is returned,\n\t// XXX but blocking isn't supported. Sleeping 800 shouldn't be sufficient either (its a burst).\n\t// XXX This limits the usage of Limiter and m.Limit().\n\tios_test.Sleep(800 * time.Millisecond)\n\tif n, err := w.Write(b[20:]); n \u003c 80 {\n\t} else if n != 80 || err != nil {\n\t\tt.Fatalf(\"w.Write(b[20:]) expected 80 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _300ms {\n\t\t// Explanation for `rt \u003c _300ms` (as opposed to `\u003c _400ms`)\n\t\t//\n\t\t// |\u003c-- start | |\n\t\t// epochs: -----0ms|---100ms|---200ms|---300ms|---400ms\n\t\t// sends: 20|20 |20 |20 |20#\n\t\t//\n\t\t// NOTE: The '#' symbol can thus happen before 400ms is up.\n\t\t// Thus, we can only panic if rt \u003c _300ms.\n\t\tt.Fatalf(\"w.Write(b[20:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tw.SetTransferSize(100)\n\tstatus := []Status{w.Status(), nextStatus(w.Monitor)}\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, _400ms, 0, 80, 4, 200, 200, 200, 200, 20, _100ms, 80000},\n\t\t{true, start, _500ms, _100ms, 100, 5, 200, 200, 200, 200, 0, 0, 100000},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"w.Status(%v)\\nexpected: %v\\ngot : %v\\n\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b, w.Writer.(*bytes.Buffer).Bytes()) {\n\t\tt.Errorf(\"w.Write() input doesn't match output\")\n\t}\n}\n\nconst (\n\tmaxDeviationForDuration = 50 * time.Millisecond\n\tmaxDeviationForRate int64 = 50\n)\n\n// statusesAreEqual returns true if s1 is equal to s2. Equality here means\n// general equality of fields except for the duration and rates, which can\n// drift due to unpredictable delays (e.g. thread wakes up 25ms after\n// `time.Sleep` has ended).\nfunc statusesAreEqual(s1 *Status, s2 *Status) bool {\n\tif s1.Active == s2.Active \u0026\u0026\n\t\ts1.Start == s2.Start \u0026\u0026\n\t\tdurationsAreEqual(s1.Duration, s2.Duration, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Idle == s2.Idle \u0026\u0026\n\t\ts1.Bytes == s2.Bytes \u0026\u0026\n\t\ts1.Samples == s2.Samples \u0026\u0026\n\t\tratesAreEqual(s1.InstRate, s2.InstRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.CurRate, s2.CurRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.AvgRate, s2.AvgRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.PeakRate, s2.PeakRate, maxDeviationForRate) \u0026\u0026\n\t\ts1.BytesRem == s2.BytesRem \u0026\u0026\n\t\tdurationsAreEqual(s1.TimeRem, s2.TimeRem, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Progress == s2.Progress {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc durationsAreEqual(d1 time.Duration, d2 time.Duration, maxDeviation time.Duration) bool {\n\treturn d2-d1 \u003c= maxDeviation\n}\n\nfunc ratesAreEqual(r1 int64, r2 int64, maxDeviation int64) bool {\n\tsub := r1 - r2\n\tif sub \u003c 0 {\n\t\tsub = -sub\n\t}\n\tif sub \u003c= maxDeviation {\n\t\treturn true\n\t}\n\treturn false\n}\n"},{"name":"util.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// clockRate is the resolution and precision of clock().\nconst clockRate = 20 * time.Millisecond\n\n// czero is the process start time rounded down to the nearest clockRate\n// increment.\nvar czero = time.Now().Round(clockRate)\n\n// clock returns a low resolution timestamp relative to the process start time.\nfunc clock() time.Duration {\n\treturn time.Now().Round(clockRate).Sub(czero)\n}\n\n// clockToTime converts a clock() timestamp to an absolute time.Time value.\nfunc clockToTime(c time.Duration) time.Time {\n\treturn czero.Add(c)\n}\n\n// clockRound returns d rounded to the nearest clockRate increment.\nfunc clockRound(d time.Duration) time.Duration {\n\treturn (d + clockRate\u003e\u003e1) / clockRate * clockRate\n}\n\n// round returns x rounded to the nearest int64 (non-negative values only).\nfunc round(x float64) int64 {\n\tif _, frac := math.Modf(x); frac \u003e= 0.5 {\n\t\treturn int64(math.Ceil(x))\n\t}\n\treturn int64(math.Floor(x))\n}\n\n// Percent represents a percentage in increments of 1/1000th of a percent.\ntype Percent uint32\n\n// percentOf calculates what percent of the total is x.\nfunc percentOf(x, total float64) Percent {\n\tif x \u003c 0 || total \u003c= 0 {\n\t\treturn 0\n\t} else if p := round(x / total * 1e5); p \u003c= math.MaxUint32 {\n\t\treturn Percent(p)\n\t}\n\treturn Percent(math.MaxUint32)\n}\n\nfunc (p Percent) Float() float64 {\n\treturn float64(p) * 1e-3\n}\n\nfunc (p Percent) String() string {\n\tvar buf [12]byte\n\tb := strconv.AppendUint(buf[:0], uint64(p)/1000, 10)\n\tn := len(b)\n\tb = strconv.AppendUint(b, 1000+uint64(p)%1000, 10)\n\tb[n] = '.'\n\treturn string(append(b, '%'))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7pY0vjRVeo4o5IQYcnWhnlZgdqoP6OtfEYTM/GS0CBFAypl2QhkP2CH0gi/9Px6UjXDmYYR2WPEUO4JCllYfBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"flow","path":"gno.land/p/demo/flow","files":[{"name":"LICENSE","body":"https://github.com/mxk/go-flowrate/blob/master/LICENSE\nBSD 3-Clause \"New\" or \"Revised\" License\n\nCopyright (c) 2014 The Go-FlowRate Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the\n distribution.\n\n * Neither the name of the go-flowrate project nor the names of its\n contributors may be used to endorse or promote products derived\n from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"Data Flow Rate Control\n======================\n\nTo download and install this package run:\n\ngo get github.com/mxk/go-flowrate/flowrate\n\nThe documentation is available at:\n\nhttp://godoc.org/github.com/mxk/go-flowrate/flowrate\n"},{"name":"flow.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n// XXX modified to disable blocking, time.Sleep().\n\n// Package flow provides the tools for monitoring and limiting the flow rate\n// of an arbitrary data stream.\npackage flow\n\nimport (\n\t\"math\"\n\t// \"sync\"\n\t\"time\"\n)\n\n// Monitor monitors and limits the transfer rate of a data stream.\ntype Monitor struct {\n\t// mu sync.Mutex // Mutex guarding access to all internal fields\n\tactive bool // Flag indicating an active transfer\n\tstart time.Duration // Transfer start time (clock() value)\n\tbytes int64 // Total number of bytes transferred\n\tsamples int64 // Total number of samples taken\n\n\trSample float64 // Most recent transfer rate sample (bytes per second)\n\trEMA float64 // Exponential moving average of rSample\n\trPeak float64 // Peak transfer rate (max of all rSamples)\n\trWindow float64 // rEMA window (seconds)\n\n\tsBytes int64 // Number of bytes transferred since sLast\n\tsLast time.Duration // Most recent sample time (stop time when inactive)\n\tsRate time.Duration // Sampling rate\n\n\ttBytes int64 // Number of bytes expected in the current transfer\n\ttLast time.Duration // Time of the most recent transfer of at least 1 byte\n}\n\n// New creates a new flow control monitor. Instantaneous transfer rate is\n// measured and updated for each sampleRate interval. windowSize determines the\n// weight of each sample in the exponential moving average (EMA) calculation.\n// The exact formulas are:\n//\n//\tsampleTime = currentTime - prevSampleTime\n//\tsampleRate = byteCount / sampleTime\n//\tweight = 1 - exp(-sampleTime/windowSize)\n//\tnewRate = weight*sampleRate + (1-weight)*oldRate\n//\n// The default values for sampleRate and windowSize (if \u003c= 0) are 100ms and 1s,\n// respectively.\nfunc New(sampleRate, windowSize time.Duration) *Monitor {\n\tif sampleRate = clockRound(sampleRate); sampleRate \u003c= 0 {\n\t\tsampleRate = 5 * clockRate\n\t}\n\tif windowSize \u003c= 0 {\n\t\twindowSize = 1 * time.Second\n\t}\n\tnow := clock()\n\treturn \u0026Monitor{\n\t\tactive: true,\n\t\tstart: now,\n\t\trWindow: windowSize.Seconds(),\n\t\tsLast: now,\n\t\tsRate: sampleRate,\n\t\ttLast: now,\n\t}\n}\n\n// Update records the transfer of n bytes and returns n. It should be called\n// after each Read/Write operation, even if n is 0.\nfunc (m *Monitor) Update(n int) int {\n\t// m.mu.Lock()\n\tm.update(n)\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// Hack to set the current rEMA.\nfunc (m *Monitor) SetREMA(rEMA float64) {\n\t// m.mu.Lock()\n\tm.rEMA = rEMA\n\tm.samples++\n\t// m.mu.Unlock()\n}\n\n// IO is a convenience method intended to wrap io.Reader and io.Writer method\n// execution. It calls m.Update(n) and then returns (n, err) unmodified.\nfunc (m *Monitor) IO(n int, err error) (int, error) {\n\treturn m.Update(n), err\n}\n\n// Done marks the transfer as finished and prevents any further updates or\n// limiting. Instantaneous and current transfer rates drop to 0. Update, IO, and\n// Limit methods become NOOPs. It returns the total number of bytes transferred.\nfunc (m *Monitor) Done() int64 {\n\t// m.mu.Lock()\n\tif now := m.update(0); m.sBytes \u003e 0 {\n\t\tm.reset(now)\n\t}\n\tm.active = false\n\tm.tLast = 0\n\tn := m.bytes\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// timeRemLimit is the maximum Status.TimeRem value.\nconst timeRemLimit = 999*time.Hour + 59*time.Minute + 59*time.Second\n\n// Status represents the current Monitor status. All transfer rates are in bytes\n// per second rounded to the nearest byte.\ntype Status struct {\n\tActive bool // Flag indicating an active transfer\n\tStart time.Time // Transfer start time\n\tDuration time.Duration // Time period covered by the statistics\n\tIdle time.Duration // Time since the last transfer of at least 1 byte\n\tBytes int64 // Total number of bytes transferred\n\tSamples int64 // Total number of samples taken\n\tInstRate int64 // Instantaneous transfer rate\n\tCurRate int64 // Current transfer rate (EMA of InstRate)\n\tAvgRate int64 // Average transfer rate (Bytes / Duration)\n\tPeakRate int64 // Maximum instantaneous transfer rate\n\tBytesRem int64 // Number of bytes remaining in the transfer\n\tTimeRem time.Duration // Estimated time to completion\n\tProgress Percent // Overall transfer progress\n}\n\nfunc (s Status) String() string {\n\treturn \"STATUS{}\"\n}\n\n// Status returns current transfer status information. The returned value\n// becomes static after a call to Done.\nfunc (m *Monitor) Status() Status {\n\t// m.mu.Lock()\n\tnow := m.update(0)\n\ts := Status{\n\t\tActive: m.active,\n\t\tStart: clockToTime(m.start),\n\t\tDuration: m.sLast - m.start,\n\t\tIdle: now - m.tLast,\n\t\tBytes: m.bytes,\n\t\tSamples: m.samples,\n\t\tPeakRate: round(m.rPeak),\n\t\tBytesRem: m.tBytes - m.bytes,\n\t\tProgress: percentOf(float64(m.bytes), float64(m.tBytes)),\n\t}\n\tif s.BytesRem \u003c 0 {\n\t\ts.BytesRem = 0\n\t}\n\tif s.Duration \u003e 0 {\n\t\trAvg := float64(s.Bytes) / s.Duration.Seconds()\n\t\ts.AvgRate = round(rAvg)\n\t\tif s.Active {\n\t\t\ts.InstRate = round(m.rSample)\n\t\t\ts.CurRate = round(m.rEMA)\n\t\t\tif s.BytesRem \u003e 0 {\n\t\t\t\tif tRate := 0.8*m.rEMA + 0.2*rAvg; tRate \u003e 0 {\n\t\t\t\t\tns := float64(s.BytesRem) / tRate * 1e9\n\t\t\t\t\tif ns \u003e float64(timeRemLimit) {\n\t\t\t\t\t\tns = float64(timeRemLimit)\n\t\t\t\t\t}\n\t\t\t\t\ts.TimeRem = clockRound(time.Duration(ns))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// m.mu.Unlock()\n\treturn s\n}\n\n// Limit restricts the instantaneous (per-sample) data flow to rate bytes per\n// second. It returns the maximum number of bytes (0 \u003c= n \u003c= want) that may be\n// transferred immediately without exceeding the limit. If block == true, the\n// call blocks until n \u003e 0. want is returned unmodified if want \u003c 1, rate \u003c 1,\n// or the transfer is inactive (after a call to Done).\n//\n// At least one byte is always allowed to be transferred in any given sampling\n// period. Thus, if the sampling rate is 100ms, the lowest achievable flow rate\n// is 10 bytes per second.\n//\n// For usage examples, see the implementation of Reader and Writer in io.go.\nfunc (m *Monitor) Limit(want int, rate int64, block bool) (n int) {\n\tif block {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\tif want \u003c 1 || rate \u003c 1 {\n\t\treturn want\n\t}\n\t// m.mu.Lock()\n\n\t// Determine the maximum number of bytes that can be sent in one sample\n\tlimit := round(float64(rate) * m.sRate.Seconds())\n\tif limit \u003c= 0 {\n\t\tlimit = 1\n\t}\n\n\t_ = m.update(0)\n\t/* XXX\n\t// If block == true, wait until m.sBytes \u003c limit\n\tif now := m.update(0); block {\n\t\tfor m.sBytes \u003e= limit \u0026\u0026 m.active {\n\t\t\tnow = m.waitNextSample(now)\n\t\t}\n\t}\n\t*/\n\n\t// Make limit \u003c= want (unlimited if the transfer is no longer active)\n\tif limit -= m.sBytes; limit \u003e int64(want) || !m.active {\n\t\tlimit = int64(want)\n\t}\n\t// m.mu.Unlock()\n\n\tif limit \u003c 0 {\n\t\tlimit = 0\n\t}\n\treturn int(limit)\n}\n\n// SetTransferSize specifies the total size of the data transfer, which allows\n// the Monitor to calculate the overall progress and time to completion.\nfunc (m *Monitor) SetTransferSize(bytes int64) {\n\tif bytes \u003c 0 {\n\t\tbytes = 0\n\t}\n\t// m.mu.Lock()\n\tm.tBytes = bytes\n\t// m.mu.Unlock()\n}\n\n// update accumulates the transferred byte count for the current sample until\n// clock() - m.sLast \u003e= m.sRate. The monitor status is updated once the current\n// sample is done.\nfunc (m *Monitor) update(n int) (now time.Duration) {\n\tif !m.active {\n\t\treturn\n\t}\n\tif now = clock(); n \u003e 0 {\n\t\tm.tLast = now\n\t}\n\tm.sBytes += int64(n)\n\tif sTime := now - m.sLast; sTime \u003e= m.sRate {\n\t\tt := sTime.Seconds()\n\t\tif m.rSample = float64(m.sBytes) / t; m.rSample \u003e m.rPeak {\n\t\t\tm.rPeak = m.rSample\n\t\t}\n\n\t\t// Exponential moving average using a method similar to *nix load\n\t\t// average calculation. Longer sampling periods carry greater weight.\n\t\tif m.samples \u003e 0 {\n\t\t\tw := math.Exp(-t / m.rWindow)\n\t\t\tm.rEMA = m.rSample + w*(m.rEMA-m.rSample)\n\t\t} else {\n\t\t\tm.rEMA = m.rSample\n\t\t}\n\t\tm.reset(now)\n\t}\n\treturn\n}\n\n// reset clears the current sample state in preparation for the next sample.\nfunc (m *Monitor) reset(sampleTime time.Duration) {\n\tm.bytes += m.sBytes\n\tm.samples++\n\tm.sBytes = 0\n\tm.sLast = sampleTime\n}\n\n/*\n// waitNextSample sleeps for the remainder of the current sample. The lock is\n// released and reacquired during the actual sleep period, so it's possible for\n// the transfer to be inactive when this method returns.\nfunc (m *Monitor) waitNextSample(now time.Duration) time.Duration {\n\tconst minWait = 5 * time.Millisecond\n\tcurrent := m.sLast\n\n\t// sleep until the last sample time changes (ideally, just one iteration)\n\tfor m.sLast == current \u0026\u0026 m.active {\n\t\td := current + m.sRate - now\n\t\t// m.mu.Unlock()\n\t\tif d \u003c minWait {\n\t\t\td = minWait\n\t\t}\n\t\ttime.Sleep(d)\n\t\t// m.mu.Lock()\n\t\tnow = m.update(0)\n\t}\n\treturn now\n}\n*/\n"},{"name":"io.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\n// ErrLimit is returned by the Writer when a non-blocking write is short due to\n// the transfer rate limit.\nvar ErrLimit = errors.New(\"flowrate: flow rate limit exceeded\")\n\n// Limiter is implemented by the Reader and Writer to provide a consistent\n// interface for monitoring and controlling data transfer.\ntype Limiter interface {\n\tDone() int64\n\tStatus() Status\n\tSetTransferSize(bytes int64)\n\tSetLimit(new int64) (old int64)\n\tSetBlocking(new bool) (old bool)\n}\n\n// Reader implements io.ReadCloser with a restriction on the rate of data\n// transfer.\ntype Reader struct {\n\tio.Reader // Data source\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be read due to the limit\n}\n\n// NewReader restricts all Read operations on r to limit bytes per second.\nfunc NewReader(r io.Reader, limit int64) *Reader {\n\treturn \u0026Reader{r, New(0, 0), limit, false} // XXX default false\n}\n\n// Read reads up to len(p) bytes into p without exceeding the current transfer\n// rate limit. It returns (0, nil) immediately if r is non-blocking and no new\n// bytes can be read at this time.\nfunc (r *Reader) Read(p []byte) (n int, err error) {\n\tp = p[:r.Limit(len(p), r.limit, r.block)]\n\tif len(p) \u003e 0 {\n\t\tn, err = r.IO(r.Reader.Read(p))\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (r *Reader) SetLimit(new int64) (old int64) {\n\told, r.limit = r.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Read call on a non-blocking reader returns immediately if no additional bytes\n// may be read at this time due to the rate limit.\nfunc (r *Reader) SetBlocking(new bool) (old bool) {\n\tif new == true {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\told, r.block = r.block, new\n\treturn\n}\n\n// Close closes the underlying reader if it implements the io.Closer interface.\nfunc (r *Reader) Close() error {\n\tdefer r.Done()\n\tif c, ok := r.Reader.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n\n// Writer implements io.WriteCloser with a restriction on the rate of data\n// transfer.\ntype Writer struct {\n\tio.Writer // Data destination\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be written due to the limit\n}\n\n// NewWriter restricts all Write operations on w to limit bytes per second. The\n// transfer rate and the default blocking behavior (true) can be changed\n// directly on the returned *Writer.\nfunc NewWriter(w io.Writer, limit int64) *Writer {\n\treturn \u0026Writer{w, New(0, 0), limit, false} // XXX default false\n}\n\n// Write writes len(p) bytes from p to the underlying data stream without\n// exceeding the current transfer rate limit. It returns (n, ErrLimit) if w is\n// non-blocking and no additional bytes can be written at this time.\nfunc (w *Writer) Write(p []byte) (n int, err error) {\n\tvar c int\n\tfor len(p) \u003e 0 \u0026\u0026 err == nil {\n\t\ts := p[:w.Limit(len(p), w.limit, w.block)]\n\t\tif len(s) \u003e 0 {\n\t\t\tc, err = w.IO(w.Writer.Write(s))\n\t\t} else {\n\t\t\treturn n, ErrLimit\n\t\t}\n\t\tp = p[c:]\n\t\tn += c\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (w *Writer) SetLimit(new int64) (old int64) {\n\told, w.limit = w.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Write call on a non-blocking writer returns as soon as no additional bytes\n// may be written at this time due to the rate limit.\nfunc (w *Writer) SetBlocking(new bool) (old bool) {\n\told, w.block = w.block, new\n\treturn\n}\n\n// Close closes the underlying writer if it implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tdefer w.Done()\n\tif c, ok := w.Writer.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n"},{"name":"io_test.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\tios_test \"internal/os_test\"\n)\n\n// XXX ugh, I can't even sleep milliseconds.\n// XXX\n\nconst (\n\t_50ms = 50 * time.Millisecond\n\t_100ms = 100 * time.Millisecond\n\t_200ms = 200 * time.Millisecond\n\t_300ms = 300 * time.Millisecond\n\t_400ms = 400 * time.Millisecond\n\t_500ms = 500 * time.Millisecond\n)\n\nfunc nextStatus(m *Monitor) Status {\n\tsamples := m.samples\n\tfor i := 0; i \u003c 30; i++ {\n\t\tif s := m.Status(); s.Samples != samples {\n\t\t\treturn s\n\t\t}\n\t\tios_test.Sleep(5 * time.Millisecond)\n\t}\n\treturn m.Status()\n}\n\nfunc TestReader(t *testing.T) {\n\tin := make([]byte, 100)\n\tfor i := range in {\n\t\tin[i] = byte(i)\n\t}\n\tb := make([]byte, 100)\n\tr := NewReader(bytes.NewReader(in), 100)\n\tstart := time.Now()\n\n\t// Make sure r implements Limiter\n\t_ = Limiter(r)\n\n\t// 1st read of 10 bytes is performed immediately\n\tif n, err := r.Read(b); n != 10 {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\t// No new Reads allowed in the current sample\n\tr.SetBlocking(false)\n\tif n, err := r.Read(b); n != 0 {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\tstatus := [6]Status{0: r.Status()} // No samples in the first status\n\n\t// 2nd read of 10 bytes blocks until the next sample\n\t// r.SetBlocking(true)\n\tios_test.Sleep(100 * time.Millisecond)\n\tif n, err := r.Read(b[10:]); n != 10 {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _100ms {\n\t\tt.Fatalf(\"r.Read(b[10:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tstatus[1] = r.Status() // 1st sample\n\tstatus[2] = nextStatus(r.Monitor) // 2nd sample\n\tstatus[3] = nextStatus(r.Monitor) // No activity for the 3rd sample\n\n\tif n := r.Done(); n != 20 {\n\t\tt.Fatalf(\"r.Done() expected 20; got %v\", n)\n\t}\n\n\tstatus[4] = r.Status()\n\tstatus[5] = nextStatus(r.Monitor) // Timeout\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t{true, start, _100ms, 0, 10, 1, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _200ms, _100ms, 20, 2, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _300ms, _200ms, 20, 3, 0, 90, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"r.Status(%v)\\nexpected: %v\\ngot : %v\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b[:20], in[:20]) {\n\t\tt.Errorf(\"r.Read() input doesn't match output\")\n\t}\n}\n\n// XXX blocking writer test doesn't work.\nfunc _TestWriter(t *testing.T) {\n\tb := make([]byte, 100)\n\tfor i := range b {\n\t\tb[i] = byte(i)\n\t}\n\tw := NewWriter(\u0026bytes.Buffer{}, 200)\n\tstart := time.Now()\n\n\t// Make sure w implements Limiter\n\t_ = Limiter(w)\n\n\t// Non-blocking 20-byte write for the first sample returns ErrLimit\n\tw.SetBlocking(false)\n\tif n, err := w.Write(b); n != 20 || err != ErrLimit {\n\t\tt.Fatalf(\"w.Write(b) expected 20 (ErrLimit); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"w.Write(b) took too long (%v)\", rt)\n\t}\n\n\t// Blocking 80-byte write\n\t// w.SetBlocking(true)\n\t// XXX This test doesn't work, because w.Write calls w.Limit(block=false),\n\t// XXX and it returns ErrLimit after 20. What we want is to keep waiting until 80 is returned,\n\t// XXX but blocking isn't supported. Sleeping 800 shouldn't be sufficient either (its a burst).\n\t// XXX This limits the usage of Limiter and m.Limit().\n\tios_test.Sleep(800 * time.Millisecond)\n\tif n, err := w.Write(b[20:]); n \u003c 80 {\n\t} else if n != 80 || err != nil {\n\t\tt.Fatalf(\"w.Write(b[20:]) expected 80 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _300ms {\n\t\t// Explanation for `rt \u003c _300ms` (as opposed to `\u003c _400ms`)\n\t\t//\n\t\t// |\u003c-- start | |\n\t\t// epochs: -----0ms|---100ms|---200ms|---300ms|---400ms\n\t\t// sends: 20|20 |20 |20 |20#\n\t\t//\n\t\t// NOTE: The '#' symbol can thus happen before 400ms is up.\n\t\t// Thus, we can only panic if rt \u003c _300ms.\n\t\tt.Fatalf(\"w.Write(b[20:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tw.SetTransferSize(100)\n\tstatus := []Status{w.Status(), nextStatus(w.Monitor)}\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, _400ms, 0, 80, 4, 200, 200, 200, 200, 20, _100ms, 80000},\n\t\t{true, start, _500ms, _100ms, 100, 5, 200, 200, 200, 200, 0, 0, 100000},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"w.Status(%v)\\nexpected: %v\\ngot : %v\\n\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b, w.Writer.(*bytes.Buffer).Bytes()) {\n\t\tt.Errorf(\"w.Write() input doesn't match output\")\n\t}\n}\n\nconst (\n\tmaxDeviationForDuration = 50 * time.Millisecond\n\tmaxDeviationForRate int64 = 50\n)\n\n// statusesAreEqual returns true if s1 is equal to s2. Equality here means\n// general equality of fields except for the duration and rates, which can\n// drift due to unpredictable delays (e.g. thread wakes up 25ms after\n// `time.Sleep` has ended).\nfunc statusesAreEqual(s1 *Status, s2 *Status) bool {\n\tif s1.Active == s2.Active \u0026\u0026\n\t\ts1.Start == s2.Start \u0026\u0026\n\t\tdurationsAreEqual(s1.Duration, s2.Duration, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Idle == s2.Idle \u0026\u0026\n\t\ts1.Bytes == s2.Bytes \u0026\u0026\n\t\ts1.Samples == s2.Samples \u0026\u0026\n\t\tratesAreEqual(s1.InstRate, s2.InstRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.CurRate, s2.CurRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.AvgRate, s2.AvgRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.PeakRate, s2.PeakRate, maxDeviationForRate) \u0026\u0026\n\t\ts1.BytesRem == s2.BytesRem \u0026\u0026\n\t\tdurationsAreEqual(s1.TimeRem, s2.TimeRem, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Progress == s2.Progress {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc durationsAreEqual(d1 time.Duration, d2 time.Duration, maxDeviation time.Duration) bool {\n\treturn d2-d1 \u003c= maxDeviation\n}\n\nfunc ratesAreEqual(r1 int64, r2 int64, maxDeviation int64) bool {\n\tsub := r1 - r2\n\tif sub \u003c 0 {\n\t\tsub = -sub\n\t}\n\tif sub \u003c= maxDeviation {\n\t\treturn true\n\t}\n\treturn false\n}\n"},{"name":"util.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// clockRate is the resolution and precision of clock().\nconst clockRate = 20 * time.Millisecond\n\n// czero is the process start time rounded down to the nearest clockRate\n// increment.\nvar czero = time.Now().Round(clockRate)\n\n// clock returns a low resolution timestamp relative to the process start time.\nfunc clock() time.Duration {\n\treturn time.Now().Round(clockRate).Sub(czero)\n}\n\n// clockToTime converts a clock() timestamp to an absolute time.Time value.\nfunc clockToTime(c time.Duration) time.Time {\n\treturn czero.Add(c)\n}\n\n// clockRound returns d rounded to the nearest clockRate increment.\nfunc clockRound(d time.Duration) time.Duration {\n\treturn (d + clockRate\u003e\u003e1) / clockRate * clockRate\n}\n\n// round returns x rounded to the nearest int64 (non-negative values only).\nfunc round(x float64) int64 {\n\tif _, frac := math.Modf(x); frac \u003e= 0.5 {\n\t\treturn int64(math.Ceil(x))\n\t}\n\treturn int64(math.Floor(x))\n}\n\n// Percent represents a percentage in increments of 1/1000th of a percent.\ntype Percent uint32\n\n// percentOf calculates what percent of the total is x.\nfunc percentOf(x, total float64) Percent {\n\tif x \u003c 0 || total \u003c= 0 {\n\t\treturn 0\n\t} else if p := round(x / total * 1e5); p \u003c= math.MaxUint32 {\n\t\treturn Percent(p)\n\t}\n\treturn Percent(math.MaxUint32)\n}\n\nfunc (p Percent) Float() float64 {\n\treturn float64(p) * 1e-3\n}\n\nfunc (p Percent) String() string {\n\tvar buf [12]byte\n\tb := strconv.AppendUint(buf[:0], uint64(p)/1000, 10)\n\tn := len(b)\n\tb = strconv.AppendUint(b, 1000+uint64(p)%1000, 10)\n\tb[n] = '.'\n\treturn string(append(b, '%'))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7pY0vjRVeo4o5IQYcnWhnlZgdqoP6OtfEYTM/GS0CBFAypl2QhkP2CH0gi/9Px6UjXDmYYR2WPEUO4JCllYfBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"flow","path":"gno.land/p/demo/flow","files":[{"name":"LICENSE","body":"https://github.com/mxk/go-flowrate/blob/master/LICENSE\nBSD 3-Clause \"New\" or \"Revised\" License\n\nCopyright (c) 2014 The Go-FlowRate Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the\n distribution.\n\n * Neither the name of the go-flowrate project nor the names of its\n contributors may be used to endorse or promote products derived\n from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"Data Flow Rate Control\n======================\n\nTo download and install this package run:\n\ngo get github.com/mxk/go-flowrate/flowrate\n\nThe documentation is available at:\n\nhttp://godoc.org/github.com/mxk/go-flowrate/flowrate\n"},{"name":"flow.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n// XXX modified to disable blocking, time.Sleep().\n\n// Package flow provides the tools for monitoring and limiting the flow rate\n// of an arbitrary data stream.\npackage flow\n\nimport (\n\t\"math\"\n\t// \"sync\"\n\t\"time\"\n)\n\n// Monitor monitors and limits the transfer rate of a data stream.\ntype Monitor struct {\n\t// mu sync.Mutex // Mutex guarding access to all internal fields\n\tactive bool // Flag indicating an active transfer\n\tstart time.Duration // Transfer start time (clock() value)\n\tbytes int64 // Total number of bytes transferred\n\tsamples int64 // Total number of samples taken\n\n\trSample float64 // Most recent transfer rate sample (bytes per second)\n\trEMA float64 // Exponential moving average of rSample\n\trPeak float64 // Peak transfer rate (max of all rSamples)\n\trWindow float64 // rEMA window (seconds)\n\n\tsBytes int64 // Number of bytes transferred since sLast\n\tsLast time.Duration // Most recent sample time (stop time when inactive)\n\tsRate time.Duration // Sampling rate\n\n\ttBytes int64 // Number of bytes expected in the current transfer\n\ttLast time.Duration // Time of the most recent transfer of at least 1 byte\n}\n\n// New creates a new flow control monitor. Instantaneous transfer rate is\n// measured and updated for each sampleRate interval. windowSize determines the\n// weight of each sample in the exponential moving average (EMA) calculation.\n// The exact formulas are:\n//\n//\tsampleTime = currentTime - prevSampleTime\n//\tsampleRate = byteCount / sampleTime\n//\tweight = 1 - exp(-sampleTime/windowSize)\n//\tnewRate = weight*sampleRate + (1-weight)*oldRate\n//\n// The default values for sampleRate and windowSize (if \u003c= 0) are 100ms and 1s,\n// respectively.\nfunc New(sampleRate, windowSize time.Duration) *Monitor {\n\tif sampleRate = clockRound(sampleRate); sampleRate \u003c= 0 {\n\t\tsampleRate = 5 * clockRate\n\t}\n\tif windowSize \u003c= 0 {\n\t\twindowSize = 1 * time.Second\n\t}\n\tnow := clock()\n\treturn \u0026Monitor{\n\t\tactive: true,\n\t\tstart: now,\n\t\trWindow: windowSize.Seconds(),\n\t\tsLast: now,\n\t\tsRate: sampleRate,\n\t\ttLast: now,\n\t}\n}\n\n// Update records the transfer of n bytes and returns n. It should be called\n// after each Read/Write operation, even if n is 0.\nfunc (m *Monitor) Update(n int) int {\n\t// m.mu.Lock()\n\tm.update(n)\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// Hack to set the current rEMA.\nfunc (m *Monitor) SetREMA(rEMA float64) {\n\t// m.mu.Lock()\n\tm.rEMA = rEMA\n\tm.samples++\n\t// m.mu.Unlock()\n}\n\n// IO is a convenience method intended to wrap io.Reader and io.Writer method\n// execution. It calls m.Update(n) and then returns (n, err) unmodified.\nfunc (m *Monitor) IO(n int, err error) (int, error) {\n\treturn m.Update(n), err\n}\n\n// Done marks the transfer as finished and prevents any further updates or\n// limiting. Instantaneous and current transfer rates drop to 0. Update, IO, and\n// Limit methods become NOOPs. It returns the total number of bytes transferred.\nfunc (m *Monitor) Done() int64 {\n\t// m.mu.Lock()\n\tif now := m.update(0); m.sBytes \u003e 0 {\n\t\tm.reset(now)\n\t}\n\tm.active = false\n\tm.tLast = 0\n\tn := m.bytes\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// timeRemLimit is the maximum Status.TimeRem value.\nconst timeRemLimit = 999*time.Hour + 59*time.Minute + 59*time.Second\n\n// Status represents the current Monitor status. All transfer rates are in bytes\n// per second rounded to the nearest byte.\ntype Status struct {\n\tActive bool // Flag indicating an active transfer\n\tStart time.Time // Transfer start time\n\tDuration time.Duration // Time period covered by the statistics\n\tIdle time.Duration // Time since the last transfer of at least 1 byte\n\tBytes int64 // Total number of bytes transferred\n\tSamples int64 // Total number of samples taken\n\tInstRate int64 // Instantaneous transfer rate\n\tCurRate int64 // Current transfer rate (EMA of InstRate)\n\tAvgRate int64 // Average transfer rate (Bytes / Duration)\n\tPeakRate int64 // Maximum instantaneous transfer rate\n\tBytesRem int64 // Number of bytes remaining in the transfer\n\tTimeRem time.Duration // Estimated time to completion\n\tProgress Percent // Overall transfer progress\n}\n\nfunc (s Status) String() string {\n\treturn \"STATUS{}\"\n}\n\n// Status returns current transfer status information. The returned value\n// becomes static after a call to Done.\nfunc (m *Monitor) Status() Status {\n\t// m.mu.Lock()\n\tnow := m.update(0)\n\ts := Status{\n\t\tActive: m.active,\n\t\tStart: clockToTime(m.start),\n\t\tDuration: m.sLast - m.start,\n\t\tIdle: now - m.tLast,\n\t\tBytes: m.bytes,\n\t\tSamples: m.samples,\n\t\tPeakRate: round(m.rPeak),\n\t\tBytesRem: m.tBytes - m.bytes,\n\t\tProgress: percentOf(float64(m.bytes), float64(m.tBytes)),\n\t}\n\tif s.BytesRem \u003c 0 {\n\t\ts.BytesRem = 0\n\t}\n\tif s.Duration \u003e 0 {\n\t\trAvg := float64(s.Bytes) / s.Duration.Seconds()\n\t\ts.AvgRate = round(rAvg)\n\t\tif s.Active {\n\t\t\ts.InstRate = round(m.rSample)\n\t\t\ts.CurRate = round(m.rEMA)\n\t\t\tif s.BytesRem \u003e 0 {\n\t\t\t\tif tRate := 0.8*m.rEMA + 0.2*rAvg; tRate \u003e 0 {\n\t\t\t\t\tns := float64(s.BytesRem) / tRate * 1e9\n\t\t\t\t\tif ns \u003e float64(timeRemLimit) {\n\t\t\t\t\t\tns = float64(timeRemLimit)\n\t\t\t\t\t}\n\t\t\t\t\ts.TimeRem = clockRound(time.Duration(ns))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// m.mu.Unlock()\n\treturn s\n}\n\n// Limit restricts the instantaneous (per-sample) data flow to rate bytes per\n// second. It returns the maximum number of bytes (0 \u003c= n \u003c= want) that may be\n// transferred immediately without exceeding the limit. If block == true, the\n// call blocks until n \u003e 0. want is returned unmodified if want \u003c 1, rate \u003c 1,\n// or the transfer is inactive (after a call to Done).\n//\n// At least one byte is always allowed to be transferred in any given sampling\n// period. Thus, if the sampling rate is 100ms, the lowest achievable flow rate\n// is 10 bytes per second.\n//\n// For usage examples, see the implementation of Reader and Writer in io.go.\nfunc (m *Monitor) Limit(want int, rate int64, block bool) (n int) {\n\tif block {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\tif want \u003c 1 || rate \u003c 1 {\n\t\treturn want\n\t}\n\t// m.mu.Lock()\n\n\t// Determine the maximum number of bytes that can be sent in one sample\n\tlimit := round(float64(rate) * m.sRate.Seconds())\n\tif limit \u003c= 0 {\n\t\tlimit = 1\n\t}\n\n\t_ = m.update(0)\n\t/* XXX\n\t// If block == true, wait until m.sBytes \u003c limit\n\tif now := m.update(0); block {\n\t\tfor m.sBytes \u003e= limit \u0026\u0026 m.active {\n\t\t\tnow = m.waitNextSample(now)\n\t\t}\n\t}\n\t*/\n\n\t// Make limit \u003c= want (unlimited if the transfer is no longer active)\n\tif limit -= m.sBytes; limit \u003e int64(want) || !m.active {\n\t\tlimit = int64(want)\n\t}\n\t// m.mu.Unlock()\n\n\tif limit \u003c 0 {\n\t\tlimit = 0\n\t}\n\treturn int(limit)\n}\n\n// SetTransferSize specifies the total size of the data transfer, which allows\n// the Monitor to calculate the overall progress and time to completion.\nfunc (m *Monitor) SetTransferSize(bytes int64) {\n\tif bytes \u003c 0 {\n\t\tbytes = 0\n\t}\n\t// m.mu.Lock()\n\tm.tBytes = bytes\n\t// m.mu.Unlock()\n}\n\n// update accumulates the transferred byte count for the current sample until\n// clock() - m.sLast \u003e= m.sRate. The monitor status is updated once the current\n// sample is done.\nfunc (m *Monitor) update(n int) (now time.Duration) {\n\tif !m.active {\n\t\treturn\n\t}\n\tif now = clock(); n \u003e 0 {\n\t\tm.tLast = now\n\t}\n\tm.sBytes += int64(n)\n\tif sTime := now - m.sLast; sTime \u003e= m.sRate {\n\t\tt := sTime.Seconds()\n\t\tif m.rSample = float64(m.sBytes) / t; m.rSample \u003e m.rPeak {\n\t\t\tm.rPeak = m.rSample\n\t\t}\n\n\t\t// Exponential moving average using a method similar to *nix load\n\t\t// average calculation. Longer sampling periods carry greater weight.\n\t\tif m.samples \u003e 0 {\n\t\t\tw := math.Exp(-t / m.rWindow)\n\t\t\tm.rEMA = m.rSample + w*(m.rEMA-m.rSample)\n\t\t} else {\n\t\t\tm.rEMA = m.rSample\n\t\t}\n\t\tm.reset(now)\n\t}\n\treturn\n}\n\n// reset clears the current sample state in preparation for the next sample.\nfunc (m *Monitor) reset(sampleTime time.Duration) {\n\tm.bytes += m.sBytes\n\tm.samples++\n\tm.sBytes = 0\n\tm.sLast = sampleTime\n}\n\n/*\n// waitNextSample sleeps for the remainder of the current sample. The lock is\n// released and reacquired during the actual sleep period, so it's possible for\n// the transfer to be inactive when this method returns.\nfunc (m *Monitor) waitNextSample(now time.Duration) time.Duration {\n\tconst minWait = 5 * time.Millisecond\n\tcurrent := m.sLast\n\n\t// sleep until the last sample time changes (ideally, just one iteration)\n\tfor m.sLast == current \u0026\u0026 m.active {\n\t\td := current + m.sRate - now\n\t\t// m.mu.Unlock()\n\t\tif d \u003c minWait {\n\t\t\td = minWait\n\t\t}\n\t\ttime.Sleep(d)\n\t\t// m.mu.Lock()\n\t\tnow = m.update(0)\n\t}\n\treturn now\n}\n*/\n"},{"name":"io.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\n// ErrLimit is returned by the Writer when a non-blocking write is short due to\n// the transfer rate limit.\nvar ErrLimit = errors.New(\"flowrate: flow rate limit exceeded\")\n\n// Limiter is implemented by the Reader and Writer to provide a consistent\n// interface for monitoring and controlling data transfer.\ntype Limiter interface {\n\tDone() int64\n\tStatus() Status\n\tSetTransferSize(bytes int64)\n\tSetLimit(new int64) (old int64)\n\tSetBlocking(new bool) (old bool)\n}\n\n// Reader implements io.ReadCloser with a restriction on the rate of data\n// transfer.\ntype Reader struct {\n\tio.Reader // Data source\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be read due to the limit\n}\n\n// NewReader restricts all Read operations on r to limit bytes per second.\nfunc NewReader(r io.Reader, limit int64) *Reader {\n\treturn \u0026Reader{r, New(0, 0), limit, false} // XXX default false\n}\n\n// Read reads up to len(p) bytes into p without exceeding the current transfer\n// rate limit. It returns (0, nil) immediately if r is non-blocking and no new\n// bytes can be read at this time.\nfunc (r *Reader) Read(p []byte) (n int, err error) {\n\tp = p[:r.Limit(len(p), r.limit, r.block)]\n\tif len(p) \u003e 0 {\n\t\tn, err = r.IO(r.Reader.Read(p))\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (r *Reader) SetLimit(new int64) (old int64) {\n\told, r.limit = r.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Read call on a non-blocking reader returns immediately if no additional bytes\n// may be read at this time due to the rate limit.\nfunc (r *Reader) SetBlocking(new bool) (old bool) {\n\tif new == true {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\told, r.block = r.block, new\n\treturn\n}\n\n// Close closes the underlying reader if it implements the io.Closer interface.\nfunc (r *Reader) Close() error {\n\tdefer r.Done()\n\tif c, ok := r.Reader.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n\n// Writer implements io.WriteCloser with a restriction on the rate of data\n// transfer.\ntype Writer struct {\n\tio.Writer // Data destination\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be written due to the limit\n}\n\n// NewWriter restricts all Write operations on w to limit bytes per second. The\n// transfer rate and the default blocking behavior (true) can be changed\n// directly on the returned *Writer.\nfunc NewWriter(w io.Writer, limit int64) *Writer {\n\treturn \u0026Writer{w, New(0, 0), limit, false} // XXX default false\n}\n\n// Write writes len(p) bytes from p to the underlying data stream without\n// exceeding the current transfer rate limit. It returns (n, ErrLimit) if w is\n// non-blocking and no additional bytes can be written at this time.\nfunc (w *Writer) Write(p []byte) (n int, err error) {\n\tvar c int\n\tfor len(p) \u003e 0 \u0026\u0026 err == nil {\n\t\ts := p[:w.Limit(len(p), w.limit, w.block)]\n\t\tif len(s) \u003e 0 {\n\t\t\tc, err = w.IO(w.Writer.Write(s))\n\t\t} else {\n\t\t\treturn n, ErrLimit\n\t\t}\n\t\tp = p[c:]\n\t\tn += c\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (w *Writer) SetLimit(new int64) (old int64) {\n\told, w.limit = w.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Write call on a non-blocking writer returns as soon as no additional bytes\n// may be written at this time due to the rate limit.\nfunc (w *Writer) SetBlocking(new bool) (old bool) {\n\told, w.block = w.block, new\n\treturn\n}\n\n// Close closes the underlying writer if it implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tdefer w.Done()\n\tif c, ok := w.Writer.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n"},{"name":"io_test.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\tios_test \"internal/os_test\"\n)\n\n// XXX ugh, I can't even sleep milliseconds.\n// XXX\n\nconst (\n\t_50ms = 50 * time.Millisecond\n\t_100ms = 100 * time.Millisecond\n\t_200ms = 200 * time.Millisecond\n\t_300ms = 300 * time.Millisecond\n\t_400ms = 400 * time.Millisecond\n\t_500ms = 500 * time.Millisecond\n)\n\nfunc nextStatus(m *Monitor) Status {\n\tsamples := m.samples\n\tfor i := 0; i \u003c 30; i++ {\n\t\tif s := m.Status(); s.Samples != samples {\n\t\t\treturn s\n\t\t}\n\t\tios_test.Sleep(5 * time.Millisecond)\n\t}\n\treturn m.Status()\n}\n\nfunc TestReader(t *testing.T) {\n\tin := make([]byte, 100)\n\tfor i := range in {\n\t\tin[i] = byte(i)\n\t}\n\tb := make([]byte, 100)\n\tr := NewReader(bytes.NewReader(in), 100)\n\tstart := time.Now()\n\n\t// Make sure r implements Limiter\n\t_ = Limiter(r)\n\n\t// 1st read of 10 bytes is performed immediately\n\tif n, err := r.Read(b); n != 10 {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\t// No new Reads allowed in the current sample\n\tr.SetBlocking(false)\n\tif n, err := r.Read(b); n != 0 {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\tstatus := [6]Status{0: r.Status()} // No samples in the first status\n\n\t// 2nd read of 10 bytes blocks until the next sample\n\t// r.SetBlocking(true)\n\tios_test.Sleep(100 * time.Millisecond)\n\tif n, err := r.Read(b[10:]); n != 10 {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _100ms {\n\t\tt.Fatalf(\"r.Read(b[10:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tstatus[1] = r.Status() // 1st sample\n\tstatus[2] = nextStatus(r.Monitor) // 2nd sample\n\tstatus[3] = nextStatus(r.Monitor) // No activity for the 3rd sample\n\n\tif n := r.Done(); n != 20 {\n\t\tt.Fatalf(\"r.Done() expected 20; got %v\", n)\n\t}\n\n\tstatus[4] = r.Status()\n\tstatus[5] = nextStatus(r.Monitor) // Timeout\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t{true, start, _100ms, 0, 10, 1, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _200ms, _100ms, 20, 2, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _300ms, _200ms, 20, 3, 0, 90, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"r.Status(%v)\\nexpected: %v\\ngot : %v\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b[:20], in[:20]) {\n\t\tt.Errorf(\"r.Read() input doesn't match output\")\n\t}\n}\n\n// XXX blocking writer test doesn't work.\nfunc _TestWriter(t *testing.T) {\n\tb := make([]byte, 100)\n\tfor i := range b {\n\t\tb[i] = byte(i)\n\t}\n\tw := NewWriter(\u0026bytes.Buffer{}, 200)\n\tstart := time.Now()\n\n\t// Make sure w implements Limiter\n\t_ = Limiter(w)\n\n\t// Non-blocking 20-byte write for the first sample returns ErrLimit\n\tw.SetBlocking(false)\n\tif n, err := w.Write(b); n != 20 || err != ErrLimit {\n\t\tt.Fatalf(\"w.Write(b) expected 20 (ErrLimit); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"w.Write(b) took too long (%v)\", rt)\n\t}\n\n\t// Blocking 80-byte write\n\t// w.SetBlocking(true)\n\t// XXX This test doesn't work, because w.Write calls w.Limit(block=false),\n\t// XXX and it returns ErrLimit after 20. What we want is to keep waiting until 80 is returned,\n\t// XXX but blocking isn't supported. Sleeping 800 shouldn't be sufficient either (its a burst).\n\t// XXX This limits the usage of Limiter and m.Limit().\n\tios_test.Sleep(800 * time.Millisecond)\n\tif n, err := w.Write(b[20:]); n \u003c 80 {\n\t} else if n != 80 || err != nil {\n\t\tt.Fatalf(\"w.Write(b[20:]) expected 80 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _300ms {\n\t\t// Explanation for `rt \u003c _300ms` (as opposed to `\u003c _400ms`)\n\t\t//\n\t\t// |\u003c-- start | |\n\t\t// epochs: -----0ms|---100ms|---200ms|---300ms|---400ms\n\t\t// sends: 20|20 |20 |20 |20#\n\t\t//\n\t\t// NOTE: The '#' symbol can thus happen before 400ms is up.\n\t\t// Thus, we can only panic if rt \u003c _300ms.\n\t\tt.Fatalf(\"w.Write(b[20:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tw.SetTransferSize(100)\n\tstatus := []Status{w.Status(), nextStatus(w.Monitor)}\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, _400ms, 0, 80, 4, 200, 200, 200, 200, 20, _100ms, 80000},\n\t\t{true, start, _500ms, _100ms, 100, 5, 200, 200, 200, 200, 0, 0, 100000},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"w.Status(%v)\\nexpected: %v\\ngot : %v\\n\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b, w.Writer.(*bytes.Buffer).Bytes()) {\n\t\tt.Errorf(\"w.Write() input doesn't match output\")\n\t}\n}\n\nconst (\n\tmaxDeviationForDuration = 50 * time.Millisecond\n\tmaxDeviationForRate int64 = 50\n)\n\n// statusesAreEqual returns true if s1 is equal to s2. Equality here means\n// general equality of fields except for the duration and rates, which can\n// drift due to unpredictable delays (e.g. thread wakes up 25ms after\n// `time.Sleep` has ended).\nfunc statusesAreEqual(s1 *Status, s2 *Status) bool {\n\tif s1.Active == s2.Active \u0026\u0026\n\t\ts1.Start == s2.Start \u0026\u0026\n\t\tdurationsAreEqual(s1.Duration, s2.Duration, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Idle == s2.Idle \u0026\u0026\n\t\ts1.Bytes == s2.Bytes \u0026\u0026\n\t\ts1.Samples == s2.Samples \u0026\u0026\n\t\tratesAreEqual(s1.InstRate, s2.InstRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.CurRate, s2.CurRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.AvgRate, s2.AvgRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.PeakRate, s2.PeakRate, maxDeviationForRate) \u0026\u0026\n\t\ts1.BytesRem == s2.BytesRem \u0026\u0026\n\t\tdurationsAreEqual(s1.TimeRem, s2.TimeRem, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Progress == s2.Progress {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc durationsAreEqual(d1 time.Duration, d2 time.Duration, maxDeviation time.Duration) bool {\n\treturn d2-d1 \u003c= maxDeviation\n}\n\nfunc ratesAreEqual(r1 int64, r2 int64, maxDeviation int64) bool {\n\tsub := r1 - r2\n\tif sub \u003c 0 {\n\t\tsub = -sub\n\t}\n\tif sub \u003c= maxDeviation {\n\t\treturn true\n\t}\n\treturn false\n}\n"},{"name":"util.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// clockRate is the resolution and precision of clock().\nconst clockRate = 20 * time.Millisecond\n\n// czero is the process start time rounded down to the nearest clockRate\n// increment.\nvar czero = time.Now().Round(clockRate)\n\n// clock returns a low resolution timestamp relative to the process start time.\nfunc clock() time.Duration {\n\treturn time.Now().Round(clockRate).Sub(czero)\n}\n\n// clockToTime converts a clock() timestamp to an absolute time.Time value.\nfunc clockToTime(c time.Duration) time.Time {\n\treturn czero.Add(c)\n}\n\n// clockRound returns d rounded to the nearest clockRate increment.\nfunc clockRound(d time.Duration) time.Duration {\n\treturn (d + clockRate\u003e\u003e1) / clockRate * clockRate\n}\n\n// round returns x rounded to the nearest int64 (non-negative values only).\nfunc round(x float64) int64 {\n\tif _, frac := math.Modf(x); frac \u003e= 0.5 {\n\t\treturn int64(math.Ceil(x))\n\t}\n\treturn int64(math.Floor(x))\n}\n\n// Percent represents a percentage in increments of 1/1000th of a percent.\ntype Percent uint32\n\n// percentOf calculates what percent of the total is x.\nfunc percentOf(x, total float64) Percent {\n\tif x \u003c 0 || total \u003c= 0 {\n\t\treturn 0\n\t} else if p := round(x / total * 1e5); p \u003c= math.MaxUint32 {\n\t\treturn Percent(p)\n\t}\n\treturn Percent(math.MaxUint32)\n}\n\nfunc (p Percent) Float() float64 {\n\treturn float64(p) * 1e-3\n}\n\nfunc (p Percent) String() string {\n\tvar buf [12]byte\n\tb := strconv.AppendUint(buf[:0], uint64(p)/1000, 10)\n\tn := len(b)\n\tb = strconv.AppendUint(b, 1000+uint64(p)%1000, 10)\n\tb[n] = '.'\n\treturn string(append(b, '%'))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7pY0vjRVeo4o5IQYcnWhnlZgdqoP6OtfEYTM/GS0CBFAypl2QhkP2CH0gi/9Px6UjXDmYYR2WPEUO4JCllYfBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo1155","path":"gno.land/r/demo/foo1155","files":[{"name":"foo1155.gno","body":"package foo1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tdummyURI = \"ipfs://xyz\"\n\tadmin std.Address = \"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\"\n\tfoo = grc1155.NewBasicGRC1155Token(dummyURI)\n)\n\nfunc init() {\n\tmintGRC1155Token(admin) // @administrator (10)\n}\n\nfunc mintGRC1155Token(owner std.Address) {\n\tfor i := 1; i \u003c= 10; i++ {\n\t\ttid := grc1155.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.SafeMint(owner, tid, 100)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName, tid grc1155.TokenID) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc BalanceOfBatch(ul []pusers.AddressOrName, batch []grc1155.TokenID) []uint64 {\n\tvar usersResolved []std.Address\n\n\tfor i := 0; i \u003c len(ul); i++ {\n\t\tusersResolved[i] = users.Resolve(ul[i])\n\t}\n\tbalanceBatch, err := foo.BalanceOfBatch(usersResolved, batch)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balanceBatch\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\n// Setters\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\terr := foo.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BatchTransferFrom(from, to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\terr := foo.SafeBatchTransferFrom(users.Resolve(from), users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeMint(users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc MintBatch(to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeBatchMint(users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(from pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(users.Resolve(from), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BurnBatch(from pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.BatchBurn(users.Resolve(from), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo1155_test.gno","body":"package foo1155\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := users.AddressOrName(\"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\")\n\tbob := users.AddressOrName(\"g1ze6et22ces5atv79y4xh38s4kuraey4y2fr6tw\")\n\ttid1 := grc1155.TokenID(\"1\")\n\ttid2 := grc1155.TokenID(\"2\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin, tid1)\", uint64(100), func() interface{} { return BalanceOf(admin, tid1) }},\n\t\t{\"BalanceOf(bob, tid1)\", uint64(0), func() interface{} { return BalanceOf(bob, tid1) }},\n\t\t{\"IsApprovedForAll(admin, bob)\", false, func() interface{} { return IsApprovedForAll(admin, bob) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uy3pnGsz7Z9TKbQrRkxCWf4qdaOukGbQi48RnBYBaWZklLkNjaS05sQwgD986O6aQ0i+fUeMAVBRnFUW0nF8CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo1155","path":"gno.land/r/demo/foo1155","files":[{"name":"foo1155.gno","body":"package foo1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tdummyURI = \"ipfs://xyz\"\n\tadmin std.Address = \"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\"\n\tfoo = grc1155.NewBasicGRC1155Token(dummyURI)\n)\n\nfunc init() {\n\tmintGRC1155Token(admin) // @administrator (10)\n}\n\nfunc mintGRC1155Token(owner std.Address) {\n\tfor i := 1; i \u003c= 10; i++ {\n\t\ttid := grc1155.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.SafeMint(owner, tid, 100)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName, tid grc1155.TokenID) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc BalanceOfBatch(ul []pusers.AddressOrName, batch []grc1155.TokenID) []uint64 {\n\tvar usersResolved []std.Address\n\n\tfor i := 0; i \u003c len(ul); i++ {\n\t\tusersResolved[i] = users.Resolve(ul[i])\n\t}\n\tbalanceBatch, err := foo.BalanceOfBatch(usersResolved, batch)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balanceBatch\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\n// Setters\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\terr := foo.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BatchTransferFrom(from, to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\terr := foo.SafeBatchTransferFrom(users.Resolve(from), users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeMint(users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc MintBatch(to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeBatchMint(users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(from pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(users.Resolve(from), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BurnBatch(from pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.BatchBurn(users.Resolve(from), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo1155_test.gno","body":"package foo1155\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := users.AddressOrName(\"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\")\n\tbob := users.AddressOrName(\"g1ze6et22ces5atv79y4xh38s4kuraey4y2fr6tw\")\n\ttid1 := grc1155.TokenID(\"1\")\n\ttid2 := grc1155.TokenID(\"2\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin, tid1)\", uint64(100), func() interface{} { return BalanceOf(admin, tid1) }},\n\t\t{\"BalanceOf(bob, tid1)\", uint64(0), func() interface{} { return BalanceOf(bob, tid1) }},\n\t\t{\"IsApprovedForAll(admin, bob)\", false, func() interface{} { return IsApprovedForAll(admin, bob) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uy3pnGsz7Z9TKbQrRkxCWf4qdaOukGbQi48RnBYBaWZklLkNjaS05sQwgD986O6aQ0i+fUeMAVBRnFUW0nF8CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo1155","path":"gno.land/r/demo/foo1155","files":[{"name":"foo1155.gno","body":"package foo1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tdummyURI = \"ipfs://xyz\"\n\tadmin std.Address = \"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\"\n\tfoo = grc1155.NewBasicGRC1155Token(dummyURI)\n)\n\nfunc init() {\n\tmintGRC1155Token(admin) // @administrator (10)\n}\n\nfunc mintGRC1155Token(owner std.Address) {\n\tfor i := 1; i \u003c= 10; i++ {\n\t\ttid := grc1155.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.SafeMint(owner, tid, 100)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName, tid grc1155.TokenID) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc BalanceOfBatch(ul []pusers.AddressOrName, batch []grc1155.TokenID) []uint64 {\n\tvar usersResolved []std.Address\n\n\tfor i := 0; i \u003c len(ul); i++ {\n\t\tusersResolved[i] = users.Resolve(ul[i])\n\t}\n\tbalanceBatch, err := foo.BalanceOfBatch(usersResolved, batch)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balanceBatch\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\n// Setters\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\terr := foo.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BatchTransferFrom(from, to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\terr := foo.SafeBatchTransferFrom(users.Resolve(from), users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeMint(users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc MintBatch(to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeBatchMint(users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(from pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(users.Resolve(from), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BurnBatch(from pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.BatchBurn(users.Resolve(from), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo1155_test.gno","body":"package foo1155\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := users.AddressOrName(\"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\")\n\tbob := users.AddressOrName(\"g1ze6et22ces5atv79y4xh38s4kuraey4y2fr6tw\")\n\ttid1 := grc1155.TokenID(\"1\")\n\ttid2 := grc1155.TokenID(\"2\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin, tid1)\", uint64(100), func() interface{} { return BalanceOf(admin, tid1) }},\n\t\t{\"BalanceOf(bob, tid1)\", uint64(0), func() interface{} { return BalanceOf(bob, tid1) }},\n\t\t{\"IsApprovedForAll(admin, bob)\", false, func() interface{} { return IsApprovedForAll(admin, bob) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uy3pnGsz7Z9TKbQrRkxCWf4qdaOukGbQi48RnBYBaWZklLkNjaS05sQwgD986O6aQ0i+fUeMAVBRnFUW0nF8CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/foo20","files":[{"name":"foo20.gno","body":"// foo20 is a GRC20 token contract where all the grc20.Teller methods are\n// proxified with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/grc20reg\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tToken, privateLedger = grc20.NewToken(\"Foo\", \"FOO\", 4)\n\tUserTeller = Token.CallerTeller()\n\towner = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n)\n\nfunc init() {\n\tprivateLedger.Mint(owner.Owner(), 1_000_000*10_000) // @privateLedgeristrator (1M)\n\tgetter := func() *grc20.Token { return Token }\n\tgrc20reg.Register(getter, \"\")\n}\n\nfunc TotalSupply() uint64 {\n\treturn UserTeller.TotalSupply()\n}\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn UserTeller.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn UserTeller.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(UserTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(privateLedger.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(privateLedger.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(privateLedger.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := UserTeller.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"foo20_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tbob = pusers.AddressOrName(testutils.TestAddress(\"bob\"))\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\t// check balances #1.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_000_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 0, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n\n\t// bob uses the faucet.\n\tstd.TestSetOrigCaller(users.Resolve(bob))\n\tFaucet()\n\n\t// check balances #2.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_010_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 10_000_000, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n}\n\nfunc TestErrConditions(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tempty = pusers.AddressOrName(\"\")\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tmsg string\n\t\tfn func()\n\t}\n\n\tprivateLedger.Mint(std.Address(admin), 10000)\n\t{\n\t\ttests := []test{\n\t\t\t{\"Transfer(admin, 1)\", \"cannot send transfer to self\", func() {\n\t\t\t\t// XXX: should replace with: Transfer(admin, 1)\n\t\t\t\t// but there is currently a limitation in manipulating the frame stack and simulate\n\t\t\t\t// calling this package from an outside point of view.\n\t\t\t\tadminAddr := std.Address(admin)\n\t\t\t\tif err := privateLedger.Transfer(adminAddr, adminAddr, 1); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}},\n\t\t\t{\"Approve(empty, 1))\", \"invalid address\", func() { Approve(empty, 1) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tuassert.PanicsWithMessage(t, tc.msg, tc.fn)\n\t\t\t})\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BiIqsJIVy06aXpqo0M7cd9onQAfNJOmD+D131fT+hECt51nsVcbff85UbPsTlOIGIJCAbg80iwiciQt2/328CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/foo20","files":[{"name":"foo20.gno","body":"// foo20 is a GRC20 token contract where all the grc20.Teller methods are\n// proxified with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tToken, privateLedger = grc20.NewToken(\"Foo\", \"FOO\", 4)\n\tUserTeller = Token.CallerTeller()\n\towner = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n)\n\nfunc init() {\n\tprivateLedger.Mint(owner.Owner(), 1_000_000*10_000) // @privateLedgeristrator (1M)\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc TotalSupply() uint64 {\n\treturn UserTeller.TotalSupply()\n}\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn UserTeller.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn UserTeller.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(UserTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(privateLedger.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(privateLedger.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(privateLedger.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := UserTeller.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"foo20_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tbob = pusers.AddressOrName(testutils.TestAddress(\"bob\"))\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\t// check balances #1.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_000_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 0, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n\n\t// bob uses the faucet.\n\tstd.TestSetOrigCaller(users.Resolve(bob))\n\tFaucet()\n\n\t// check balances #2.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_010_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 10_000_000, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n}\n\nfunc TestErrConditions(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tempty = pusers.AddressOrName(\"\")\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tmsg string\n\t\tfn func()\n\t}\n\n\tprivateLedger.Mint(std.Address(admin), 10000)\n\t{\n\t\ttests := []test{\n\t\t\t{\"Transfer(admin, 1)\", \"cannot send transfer to self\", func() {\n\t\t\t\t// XXX: should replace with: Transfer(admin, 1)\n\t\t\t\t// but there is currently a limitation in manipulating the frame stack and simulate\n\t\t\t\t// calling this package from an outside point of view.\n\t\t\t\tadminAddr := std.Address(admin)\n\t\t\t\tif err := privateLedger.Transfer(adminAddr, adminAddr, 1); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}},\n\t\t\t{\"Approve(empty, 1))\", \"invalid address\", func() { Approve(empty, 1) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tuassert.PanicsWithMessage(t, tc.msg, tc.fn)\n\t\t\t})\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qgS+0Jpf64BszqVnQdA+AHrmHYEl4grWkM+rb95uPThnGxZdDwJ2YGxMxCFiIg309vlBM5zAznq3RQLRx89+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/foo20","files":[{"name":"foo20.gno","body":"// foo20 is a GRC20 token contract where all the grc20.Teller methods are\n// proxified with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tToken, privateLedger = grc20.NewToken(\"Foo\", \"FOO\", 4)\n\tUserTeller = Token.CallerTeller()\n\towner = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n)\n\nfunc init() {\n\tprivateLedger.Mint(owner.Owner(), 1_000_000*10_000) // @privateLedgeristrator (1M)\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc TotalSupply() uint64 {\n\treturn UserTeller.TotalSupply()\n}\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn UserTeller.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn UserTeller.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(UserTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(privateLedger.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(privateLedger.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(privateLedger.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := UserTeller.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"foo20_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tbob = pusers.AddressOrName(testutils.TestAddress(\"bob\"))\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\t// check balances #1.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_000_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 0, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n\n\t// bob uses the faucet.\n\tstd.TestSetOrigCaller(users.Resolve(bob))\n\tFaucet()\n\n\t// check balances #2.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_010_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 10_000_000, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n}\n\nfunc TestErrConditions(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tempty = pusers.AddressOrName(\"\")\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tmsg string\n\t\tfn func()\n\t}\n\n\tprivateLedger.Mint(std.Address(admin), 10000)\n\t{\n\t\ttests := []test{\n\t\t\t{\"Transfer(admin, 1)\", \"cannot send transfer to self\", func() {\n\t\t\t\t// XXX: should replace with: Transfer(admin, 1)\n\t\t\t\t// but there is currently a limitation in manipulating the frame stack and simulate\n\t\t\t\t// calling this package from an outside point of view.\n\t\t\t\tadminAddr := std.Address(admin)\n\t\t\t\tif err := privateLedger.Transfer(adminAddr, adminAddr, 1); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}},\n\t\t\t{\"Approve(empty, 1))\", \"invalid address\", func() { Approve(empty, 1) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tuassert.PanicsWithMessage(t, tc.msg, tc.fn)\n\t\t\t})\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qgS+0Jpf64BszqVnQdA+AHrmHYEl4grWkM+rb95uPThnGxZdDwJ2YGxMxCFiIg309vlBM5zAznq3RQLRx89+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/foo20","files":[{"name":"foo20.gno","body":"// foo20 is a GRC20 token contract where all the grc20.Teller methods are\n// proxified with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tToken, privateLedger = grc20.NewToken(\"Foo\", \"FOO\", 4)\n\tUserTeller = Token.CallerTeller()\n\towner = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n)\n\nfunc init() {\n\tprivateLedger.Mint(owner.Owner(), 1_000_000*10_000) // @privateLedgeristrator (1M)\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc TotalSupply() uint64 {\n\treturn UserTeller.TotalSupply()\n}\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn UserTeller.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn UserTeller.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(UserTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(privateLedger.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(privateLedger.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\towner.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(privateLedger.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := UserTeller.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"foo20_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tbob = pusers.AddressOrName(testutils.TestAddress(\"bob\"))\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\t// check balances #1.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_000_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 0, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n\n\t// bob uses the faucet.\n\tstd.TestSetOrigCaller(users.Resolve(bob))\n\tFaucet()\n\n\t// check balances #2.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_010_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 10_000_000, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n}\n\nfunc TestErrConditions(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tempty = pusers.AddressOrName(\"\")\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tmsg string\n\t\tfn func()\n\t}\n\n\tprivateLedger.Mint(std.Address(admin), 10000)\n\t{\n\t\ttests := []test{\n\t\t\t{\"Transfer(admin, 1)\", \"cannot send transfer to self\", func() {\n\t\t\t\t// XXX: should replace with: Transfer(admin, 1)\n\t\t\t\t// but there is currently a limitation in manipulating the frame stack and simulate\n\t\t\t\t// calling this package from an outside point of view.\n\t\t\t\tadminAddr := std.Address(admin)\n\t\t\t\tif err := privateLedger.Transfer(adminAddr, adminAddr, 1); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}},\n\t\t\t{\"Approve(empty, 1))\", \"invalid address\", func() { Approve(empty, 1) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tuassert.PanicsWithMessage(t, tc.msg, tc.fn)\n\t\t\t})\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qgS+0Jpf64BszqVnQdA+AHrmHYEl4grWkM+rb95uPThnGxZdDwJ2YGxMxCFiIg309vlBM5zAznq3RQLRx89+DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/grc20factory","files":[{"name":"grc20factory.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar instances avl.Tree // symbol -\u003e instance\n\ntype instance struct {\n\ttoken *grc20.Token\n\tledger *grc20.PrivateLedger\n\tadmin *ownable.Ownable\n\tfaucet uint64 // per-request amount. disabled if 0.\n}\n\nfunc New(name, symbol string, decimals uint, initialMint, faucet uint64) {\n\tcaller := std.PrevRealm().Addr()\n\tNewWithAdmin(name, symbol, decimals, initialMint, faucet, caller)\n}\n\nfunc NewWithAdmin(name, symbol string, decimals uint, initialMint, faucet uint64, admin std.Address) {\n\texists := instances.Has(symbol)\n\tif exists {\n\t\tpanic(\"token already exists\")\n\t}\n\n\ttoken, ledger := grc20.NewToken(name, symbol, decimals)\n\tif initialMint \u003e 0 {\n\t\tledger.Mint(admin, initialMint)\n\t}\n\n\tinst := instance{\n\t\ttoken: token,\n\t\tledger: ledger,\n\t\tadmin: ownable.NewWithAddress(admin),\n\t\tfaucet: faucet,\n\t}\n\tinstances.Set(symbol, \u0026inst)\n\t// XXX: grc20reg.Register(token, symbol)\n}\n\nfunc (inst instance) Token() *grc20.Token {\n\treturn inst.token\n}\n\nfunc (inst instance) CallerTeller() grc20.Teller {\n\treturn inst.token.CallerTeller()\n}\n\nfunc Bank(symbol string) *grc20.Token {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token\n}\n\nfunc TotalSupply(symbol string) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().TotalSupply()\n}\n\nfunc BalanceOf(symbol string, owner std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().BalanceOf(owner)\n}\n\nfunc Allowance(symbol string, owner, spender std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().Allowance(owner, spender)\n}\n\nfunc Transfer(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Transfer(to, amount))\n}\n\nfunc Approve(symbol string, spender std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Approve(spender, amount))\n}\n\nfunc TransferFrom(symbol string, from, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.TransferFrom(from, to, amount))\n}\n\n// faucet.\nfunc Faucet(symbol string) {\n\tinst := mustGetInstance(symbol)\n\tif inst.faucet == 0 {\n\t\tpanic(\"faucet disabled for this token\")\n\t}\n\t// FIXME: add limits?\n\t// FIXME: add payment in gnot?\n\tcaller := std.PrevRealm().Addr()\n\tcheckErr(inst.ledger.Mint(caller, inst.faucet))\n}\n\nfunc Mint(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Mint(to, amount))\n}\n\nfunc Burn(symbol string, from std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Burn(from, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn \"TODO: list existing tokens and admins\"\n\tcase c == 1:\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\treturn inst.token.RenderHome()\n\tcase c == 3 \u0026\u0026 parts[1] == \"balance\":\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\towner := std.Address(parts[2])\n\t\tbalance := inst.token.CallerTeller().BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc mustGetInstance(symbol string) *instance {\n\tt, exists := instances.Get(symbol)\n\tif !exists {\n\t\tpanic(\"token instance does not exist\")\n\t}\n\treturn t.(*instance)\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"},{"name":"grc20factory_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tstd.TestSetOrigPkgAddr(\"gno.land/r/demo/grc20factory\")\n\tadmin := testutils.TestAddress(\"admin\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\tcheckBalances := func(step string, totSup, balAdm, balBob, allowAdmBob, balCarl uint64) {\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", totSup, func() uint64 { return TotalSupply(\"FOO\") }},\n\t\t\t{\"BalanceOf(admin)\", balAdm, func() uint64 { return BalanceOf(\"FOO\", admin) }},\n\t\t\t{\"BalanceOf(bob)\", balBob, func() uint64 { return BalanceOf(\"FOO\", bob) }},\n\t\t\t{\"Allowance(admin, bob)\", allowAdmBob, func() uint64 { return Allowance(\"FOO\", admin, bob) }},\n\t\t\t{\"BalanceOf(carl)\", balCarl, func() uint64 { return BalanceOf(\"FOO\", carl) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\treason := ufmt.Sprintf(\"%s.%s - %s\", step, tc.name, \"balances do not match\")\n\t\t\tuassert.Equal(t, tc.balance, tc.fn(), reason)\n\t\t}\n\t}\n\n\t// admin creates FOO and BAR.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tNewWithAdmin(\"Foo\", \"FOO\", 3, 1_111_111_000, 5_555, admin)\n\tNewWithAdmin(\"Bar\", \"BAR\", 3, 2_222_000, 6_666, admin)\n\tcheckBalances(\"step1\", 1_111_111_000, 1_111_111_000, 0, 0, 0)\n\n\t// admin mints to bob.\n\tmustGetInstance(\"FOO\").ledger.Mint(bob, 333_333_000)\n\tcheckBalances(\"step2\", 1_444_444_000, 1_111_111_000, 333_333_000, 0, 0)\n\n\t// carl uses the faucet.\n\tstd.TestSetOrigCaller(carl)\n\tstd.TestSetRealm(std.NewUserRealm(carl))\n\tFaucet(\"FOO\")\n\tcheckBalances(\"step3\", 1_444_449_555, 1_111_111_000, 333_333_000, 0, 5_555)\n\n\t// admin gives to bob some allowance.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tApprove(\"FOO\", bob, 1_000_000)\n\tcheckBalances(\"step4\", 1_444_449_555, 1_111_111_000, 333_333_000, 1_000_000, 5_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 400_000)\n\tcheckBalances(\"step5\", 1_444_449_555, 1_110_711_000, 333_333_000, 600_000, 405_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 600_000)\n\tcheckBalances(\"step6\", 1_444_449_555, 1_110_111_000, 333_333_000, 0, 1_005_555)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4dSMhT3nGmu4yb+JKS2FQ0mJDkOwB1f6M1IjCqkqBwURAR3VX0ncliLXCiv3pm3BBviaclFFh16AFnDpysyxCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/grc20factory","files":[{"name":"grc20factory.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar instances avl.Tree // symbol -\u003e instance\n\ntype instance struct {\n\ttoken *grc20.Token\n\tledger *grc20.PrivateLedger\n\tadmin *ownable.Ownable\n\tfaucet uint64 // per-request amount. disabled if 0.\n}\n\nfunc New(name, symbol string, decimals uint, initialMint, faucet uint64) {\n\tcaller := std.PrevRealm().Addr()\n\tNewWithAdmin(name, symbol, decimals, initialMint, faucet, caller)\n}\n\nfunc NewWithAdmin(name, symbol string, decimals uint, initialMint, faucet uint64, admin std.Address) {\n\texists := instances.Has(symbol)\n\tif exists {\n\t\tpanic(\"token already exists\")\n\t}\n\n\ttoken, ledger := grc20.NewToken(name, symbol, decimals)\n\tif initialMint \u003e 0 {\n\t\tledger.Mint(admin, initialMint)\n\t}\n\n\tinst := instance{\n\t\ttoken: token,\n\t\tledger: ledger,\n\t\tadmin: ownable.NewWithAddress(admin),\n\t\tfaucet: faucet,\n\t}\n\tinstances.Set(symbol, \u0026inst)\n\t// XXX: grc20reg.Register(token, symbol)\n}\n\nfunc (inst instance) Token() *grc20.Token {\n\treturn inst.token\n}\n\nfunc (inst instance) CallerTeller() grc20.Teller {\n\treturn inst.token.CallerTeller()\n}\n\nfunc Bank(symbol string) *grc20.Token {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token\n}\n\nfunc TotalSupply(symbol string) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().TotalSupply()\n}\n\nfunc BalanceOf(symbol string, owner std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().BalanceOf(owner)\n}\n\nfunc Allowance(symbol string, owner, spender std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().Allowance(owner, spender)\n}\n\nfunc Transfer(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Transfer(to, amount))\n}\n\nfunc Approve(symbol string, spender std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Approve(spender, amount))\n}\n\nfunc TransferFrom(symbol string, from, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.TransferFrom(from, to, amount))\n}\n\n// faucet.\nfunc Faucet(symbol string) {\n\tinst := mustGetInstance(symbol)\n\tif inst.faucet == 0 {\n\t\tpanic(\"faucet disabled for this token\")\n\t}\n\t// FIXME: add limits?\n\t// FIXME: add payment in gnot?\n\tcaller := std.PrevRealm().Addr()\n\tcheckErr(inst.ledger.Mint(caller, inst.faucet))\n}\n\nfunc Mint(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Mint(to, amount))\n}\n\nfunc Burn(symbol string, from std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Burn(from, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn \"TODO: list existing tokens and admins\"\n\tcase c == 1:\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\treturn inst.token.RenderHome()\n\tcase c == 3 \u0026\u0026 parts[1] == \"balance\":\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\towner := std.Address(parts[2])\n\t\tbalance := inst.token.CallerTeller().BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc mustGetInstance(symbol string) *instance {\n\tt, exists := instances.Get(symbol)\n\tif !exists {\n\t\tpanic(\"token instance does not exist\")\n\t}\n\treturn t.(*instance)\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"},{"name":"grc20factory_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tstd.TestSetOrigPkgAddr(\"gno.land/r/demo/grc20factory\")\n\tadmin := testutils.TestAddress(\"admin\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\tcheckBalances := func(step string, totSup, balAdm, balBob, allowAdmBob, balCarl uint64) {\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", totSup, func() uint64 { return TotalSupply(\"FOO\") }},\n\t\t\t{\"BalanceOf(admin)\", balAdm, func() uint64 { return BalanceOf(\"FOO\", admin) }},\n\t\t\t{\"BalanceOf(bob)\", balBob, func() uint64 { return BalanceOf(\"FOO\", bob) }},\n\t\t\t{\"Allowance(admin, bob)\", allowAdmBob, func() uint64 { return Allowance(\"FOO\", admin, bob) }},\n\t\t\t{\"BalanceOf(carl)\", balCarl, func() uint64 { return BalanceOf(\"FOO\", carl) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\treason := ufmt.Sprintf(\"%s.%s - %s\", step, tc.name, \"balances do not match\")\n\t\t\tuassert.Equal(t, tc.balance, tc.fn(), reason)\n\t\t}\n\t}\n\n\t// admin creates FOO and BAR.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tNewWithAdmin(\"Foo\", \"FOO\", 3, 1_111_111_000, 5_555, admin)\n\tNewWithAdmin(\"Bar\", \"BAR\", 3, 2_222_000, 6_666, admin)\n\tcheckBalances(\"step1\", 1_111_111_000, 1_111_111_000, 0, 0, 0)\n\n\t// admin mints to bob.\n\tmustGetInstance(\"FOO\").ledger.Mint(bob, 333_333_000)\n\tcheckBalances(\"step2\", 1_444_444_000, 1_111_111_000, 333_333_000, 0, 0)\n\n\t// carl uses the faucet.\n\tstd.TestSetOrigCaller(carl)\n\tstd.TestSetRealm(std.NewUserRealm(carl))\n\tFaucet(\"FOO\")\n\tcheckBalances(\"step3\", 1_444_449_555, 1_111_111_000, 333_333_000, 0, 5_555)\n\n\t// admin gives to bob some allowance.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tApprove(\"FOO\", bob, 1_000_000)\n\tcheckBalances(\"step4\", 1_444_449_555, 1_111_111_000, 333_333_000, 1_000_000, 5_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 400_000)\n\tcheckBalances(\"step5\", 1_444_449_555, 1_110_711_000, 333_333_000, 600_000, 405_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 600_000)\n\tcheckBalances(\"step6\", 1_444_449_555, 1_110_111_000, 333_333_000, 0, 1_005_555)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4dSMhT3nGmu4yb+JKS2FQ0mJDkOwB1f6M1IjCqkqBwURAR3VX0ncliLXCiv3pm3BBviaclFFh16AFnDpysyxCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/grc20factory","files":[{"name":"grc20factory.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar instances avl.Tree // symbol -\u003e instance\n\ntype instance struct {\n\ttoken *grc20.Token\n\tledger *grc20.PrivateLedger\n\tadmin *ownable.Ownable\n\tfaucet uint64 // per-request amount. disabled if 0.\n}\n\nfunc New(name, symbol string, decimals uint, initialMint, faucet uint64) {\n\tcaller := std.PrevRealm().Addr()\n\tNewWithAdmin(name, symbol, decimals, initialMint, faucet, caller)\n}\n\nfunc NewWithAdmin(name, symbol string, decimals uint, initialMint, faucet uint64, admin std.Address) {\n\texists := instances.Has(symbol)\n\tif exists {\n\t\tpanic(\"token already exists\")\n\t}\n\n\ttoken, ledger := grc20.NewToken(name, symbol, decimals)\n\tif initialMint \u003e 0 {\n\t\tledger.Mint(admin, initialMint)\n\t}\n\n\tinst := instance{\n\t\ttoken: token,\n\t\tledger: ledger,\n\t\tadmin: ownable.NewWithAddress(admin),\n\t\tfaucet: faucet,\n\t}\n\tinstances.Set(symbol, \u0026inst)\n\t// XXX: grc20reg.Register(token, symbol)\n}\n\nfunc (inst instance) Token() *grc20.Token {\n\treturn inst.token\n}\n\nfunc (inst instance) CallerTeller() grc20.Teller {\n\treturn inst.token.CallerTeller()\n}\n\nfunc Bank(symbol string) *grc20.Token {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token\n}\n\nfunc TotalSupply(symbol string) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().TotalSupply()\n}\n\nfunc BalanceOf(symbol string, owner std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().BalanceOf(owner)\n}\n\nfunc Allowance(symbol string, owner, spender std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().Allowance(owner, spender)\n}\n\nfunc Transfer(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Transfer(to, amount))\n}\n\nfunc Approve(symbol string, spender std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Approve(spender, amount))\n}\n\nfunc TransferFrom(symbol string, from, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.TransferFrom(from, to, amount))\n}\n\n// faucet.\nfunc Faucet(symbol string) {\n\tinst := mustGetInstance(symbol)\n\tif inst.faucet == 0 {\n\t\tpanic(\"faucet disabled for this token\")\n\t}\n\t// FIXME: add limits?\n\t// FIXME: add payment in gnot?\n\tcaller := std.PrevRealm().Addr()\n\tcheckErr(inst.ledger.Mint(caller, inst.faucet))\n}\n\nfunc Mint(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Mint(to, amount))\n}\n\nfunc Burn(symbol string, from std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Burn(from, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn \"TODO: list existing tokens and admins\"\n\tcase c == 1:\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\treturn inst.token.RenderHome()\n\tcase c == 3 \u0026\u0026 parts[1] == \"balance\":\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\towner := std.Address(parts[2])\n\t\tbalance := inst.token.CallerTeller().BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc mustGetInstance(symbol string) *instance {\n\tt, exists := instances.Get(symbol)\n\tif !exists {\n\t\tpanic(\"token instance does not exist\")\n\t}\n\treturn t.(*instance)\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"},{"name":"grc20factory_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tstd.TestSetOrigPkgAddr(\"gno.land/r/demo/grc20factory\")\n\tadmin := testutils.TestAddress(\"admin\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\tcheckBalances := func(step string, totSup, balAdm, balBob, allowAdmBob, balCarl uint64) {\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", totSup, func() uint64 { return TotalSupply(\"FOO\") }},\n\t\t\t{\"BalanceOf(admin)\", balAdm, func() uint64 { return BalanceOf(\"FOO\", admin) }},\n\t\t\t{\"BalanceOf(bob)\", balBob, func() uint64 { return BalanceOf(\"FOO\", bob) }},\n\t\t\t{\"Allowance(admin, bob)\", allowAdmBob, func() uint64 { return Allowance(\"FOO\", admin, bob) }},\n\t\t\t{\"BalanceOf(carl)\", balCarl, func() uint64 { return BalanceOf(\"FOO\", carl) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\treason := ufmt.Sprintf(\"%s.%s - %s\", step, tc.name, \"balances do not match\")\n\t\t\tuassert.Equal(t, tc.balance, tc.fn(), reason)\n\t\t}\n\t}\n\n\t// admin creates FOO and BAR.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tNewWithAdmin(\"Foo\", \"FOO\", 3, 1_111_111_000, 5_555, admin)\n\tNewWithAdmin(\"Bar\", \"BAR\", 3, 2_222_000, 6_666, admin)\n\tcheckBalances(\"step1\", 1_111_111_000, 1_111_111_000, 0, 0, 0)\n\n\t// admin mints to bob.\n\tmustGetInstance(\"FOO\").ledger.Mint(bob, 333_333_000)\n\tcheckBalances(\"step2\", 1_444_444_000, 1_111_111_000, 333_333_000, 0, 0)\n\n\t// carl uses the faucet.\n\tstd.TestSetOrigCaller(carl)\n\tstd.TestSetRealm(std.NewUserRealm(carl))\n\tFaucet(\"FOO\")\n\tcheckBalances(\"step3\", 1_444_449_555, 1_111_111_000, 333_333_000, 0, 5_555)\n\n\t// admin gives to bob some allowance.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tApprove(\"FOO\", bob, 1_000_000)\n\tcheckBalances(\"step4\", 1_444_449_555, 1_111_111_000, 333_333_000, 1_000_000, 5_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 400_000)\n\tcheckBalances(\"step5\", 1_444_449_555, 1_110_711_000, 333_333_000, 600_000, 405_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 600_000)\n\tcheckBalances(\"step6\", 1_444_449_555, 1_110_111_000, 333_333_000, 0, 1_005_555)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4dSMhT3nGmu4yb+JKS2FQ0mJDkOwB1f6M1IjCqkqBwURAR3VX0ncliLXCiv3pm3BBviaclFFh16AFnDpysyxCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo20","path":"gno.land/r/demo/grc20factory","files":[{"name":"grc20factory.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/grc20reg\"\n)\n\nvar instances avl.Tree // symbol -\u003e instance\n\ntype instance struct {\n\ttoken *grc20.Token\n\tledger *grc20.PrivateLedger\n\tadmin *ownable.Ownable\n\tfaucet uint64 // per-request amount. disabled if 0.\n}\n\nfunc New(name, symbol string, decimals uint, initialMint, faucet uint64) {\n\tcaller := std.PrevRealm().Addr()\n\tNewWithAdmin(name, symbol, decimals, initialMint, faucet, caller)\n}\n\nfunc NewWithAdmin(name, symbol string, decimals uint, initialMint, faucet uint64, admin std.Address) {\n\texists := instances.Has(symbol)\n\tif exists {\n\t\tpanic(\"token already exists\")\n\t}\n\n\ttoken, ledger := grc20.NewToken(name, symbol, decimals)\n\tif initialMint \u003e 0 {\n\t\tledger.Mint(admin, initialMint)\n\t}\n\n\tinst := instance{\n\t\ttoken: token,\n\t\tledger: ledger,\n\t\tadmin: ownable.NewWithAddress(admin),\n\t\tfaucet: faucet,\n\t}\n\tinstances.Set(symbol, \u0026inst)\n\tgetter := func() *grc20.Token { return token }\n\tgrc20reg.Register(getter, symbol)\n}\n\nfunc (inst instance) Token() *grc20.Token {\n\treturn inst.token\n}\n\nfunc (inst instance) CallerTeller() grc20.Teller {\n\treturn inst.token.CallerTeller()\n}\n\nfunc Bank(symbol string) *grc20.Token {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token\n}\n\nfunc TotalSupply(symbol string) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().TotalSupply()\n}\n\nfunc BalanceOf(symbol string, owner std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().BalanceOf(owner)\n}\n\nfunc Allowance(symbol string, owner, spender std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().Allowance(owner, spender)\n}\n\nfunc Transfer(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Transfer(to, amount))\n}\n\nfunc Approve(symbol string, spender std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Approve(spender, amount))\n}\n\nfunc TransferFrom(symbol string, from, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.TransferFrom(from, to, amount))\n}\n\n// faucet.\nfunc Faucet(symbol string) {\n\tinst := mustGetInstance(symbol)\n\tif inst.faucet == 0 {\n\t\tpanic(\"faucet disabled for this token\")\n\t}\n\t// FIXME: add limits?\n\t// FIXME: add payment in gnot?\n\tcaller := std.PrevRealm().Addr()\n\tcheckErr(inst.ledger.Mint(caller, inst.faucet))\n}\n\nfunc Mint(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Mint(to, amount))\n}\n\nfunc Burn(symbol string, from std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Burn(from, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn \"TODO: list existing tokens and admins\"\n\tcase c == 1:\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\treturn inst.token.RenderHome()\n\tcase c == 3 \u0026\u0026 parts[1] == \"balance\":\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\towner := std.Address(parts[2])\n\t\tbalance := inst.token.CallerTeller().BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc mustGetInstance(symbol string) *instance {\n\tt, exists := instances.Get(symbol)\n\tif !exists {\n\t\tpanic(\"token instance does not exist\")\n\t}\n\treturn t.(*instance)\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"},{"name":"grc20factory_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tstd.TestSetOrigPkgAddr(\"gno.land/r/demo/grc20factory\")\n\tadmin := testutils.TestAddress(\"admin\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\tcheckBalances := func(step string, totSup, balAdm, balBob, allowAdmBob, balCarl uint64) {\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", totSup, func() uint64 { return TotalSupply(\"FOO\") }},\n\t\t\t{\"BalanceOf(admin)\", balAdm, func() uint64 { return BalanceOf(\"FOO\", admin) }},\n\t\t\t{\"BalanceOf(bob)\", balBob, func() uint64 { return BalanceOf(\"FOO\", bob) }},\n\t\t\t{\"Allowance(admin, bob)\", allowAdmBob, func() uint64 { return Allowance(\"FOO\", admin, bob) }},\n\t\t\t{\"BalanceOf(carl)\", balCarl, func() uint64 { return BalanceOf(\"FOO\", carl) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\treason := ufmt.Sprintf(\"%s.%s - %s\", step, tc.name, \"balances do not match\")\n\t\t\tuassert.Equal(t, tc.balance, tc.fn(), reason)\n\t\t}\n\t}\n\n\t// admin creates FOO and BAR.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tNewWithAdmin(\"Foo\", \"FOO\", 3, 1_111_111_000, 5_555, admin)\n\tNewWithAdmin(\"Bar\", \"BAR\", 3, 2_222_000, 6_666, admin)\n\tcheckBalances(\"step1\", 1_111_111_000, 1_111_111_000, 0, 0, 0)\n\n\t// admin mints to bob.\n\tmustGetInstance(\"FOO\").ledger.Mint(bob, 333_333_000)\n\tcheckBalances(\"step2\", 1_444_444_000, 1_111_111_000, 333_333_000, 0, 0)\n\n\t// carl uses the faucet.\n\tstd.TestSetOrigCaller(carl)\n\tstd.TestSetRealm(std.NewUserRealm(carl))\n\tFaucet(\"FOO\")\n\tcheckBalances(\"step3\", 1_444_449_555, 1_111_111_000, 333_333_000, 0, 5_555)\n\n\t// admin gives to bob some allowance.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tApprove(\"FOO\", bob, 1_000_000)\n\tcheckBalances(\"step4\", 1_444_449_555, 1_111_111_000, 333_333_000, 1_000_000, 5_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 400_000)\n\tcheckBalances(\"step5\", 1_444_449_555, 1_110_711_000, 333_333_000, 600_000, 405_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 600_000)\n\tcheckBalances(\"step6\", 1_444_449_555, 1_110_111_000, 333_333_000, 0, 1_005_555)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gnIKfHMO4F9v6kIRBMnL6c+pL0tr8pvr64EjmsqpG+pHChQLwWf0M4Df874CJ5v92fFmSt0CE7uo9iM5VnvuAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo721","path":"gno.land/r/demo/foo721","files":[{"name":"foo721.gno","body":"package foo721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\"\n\tfoo = grc721.NewBasicNFT(\"FooNFT\", \"FNFT\")\n)\n\nfunc init() {\n\tmintNNFT(admin, 10) // @administrator (10)\n\tmintNNFT(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", 5) // @hariom (5)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := foo.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.Mint(owner, tid)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := foo.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := foo.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo721_test.gno","body":"package foo721\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := pusers.AddressOrName(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\thariom := pusers.AddressOrName(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin)\", uint64(10), func() interface{} { return BalanceOf(admin) }},\n\t\t{\"BalanceOf(hariom)\", uint64(5), func() interface{} { return BalanceOf(hariom) }},\n\t\t{\"OwnerOf(0)\", users.Resolve(admin), func() interface{} { return OwnerOf(grc721.TokenID(\"0\")) }},\n\t\t{\"IsApprovedForAll(admin, hariom)\", false, func() interface{} { return IsApprovedForAll(admin, hariom) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S4myaqtsuQbM+ieDAITLIuUFKFlB4YyRfGn8oEPrHZ11YC2/1ZGUua46nVX//NclToXtl5aD0FwNiw6FDxdTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo721","path":"gno.land/r/demo/foo721","files":[{"name":"foo721.gno","body":"package foo721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\"\n\tfoo = grc721.NewBasicNFT(\"FooNFT\", \"FNFT\")\n)\n\nfunc init() {\n\tmintNNFT(admin, 10) // @administrator (10)\n\tmintNNFT(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", 5) // @hariom (5)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := foo.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.Mint(owner, tid)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := foo.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := foo.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo721_test.gno","body":"package foo721\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := pusers.AddressOrName(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\thariom := pusers.AddressOrName(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin)\", uint64(10), func() interface{} { return BalanceOf(admin) }},\n\t\t{\"BalanceOf(hariom)\", uint64(5), func() interface{} { return BalanceOf(hariom) }},\n\t\t{\"OwnerOf(0)\", users.Resolve(admin), func() interface{} { return OwnerOf(grc721.TokenID(\"0\")) }},\n\t\t{\"IsApprovedForAll(admin, hariom)\", false, func() interface{} { return IsApprovedForAll(admin, hariom) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S4myaqtsuQbM+ieDAITLIuUFKFlB4YyRfGn8oEPrHZ11YC2/1ZGUua46nVX//NclToXtl5aD0FwNiw6FDxdTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"foo721","path":"gno.land/r/demo/foo721","files":[{"name":"foo721.gno","body":"package foo721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\"\n\tfoo = grc721.NewBasicNFT(\"FooNFT\", \"FNFT\")\n)\n\nfunc init() {\n\tmintNNFT(admin, 10) // @administrator (10)\n\tmintNNFT(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", 5) // @hariom (5)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := foo.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.Mint(owner, tid)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := foo.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := foo.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo721_test.gno","body":"package foo721\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := pusers.AddressOrName(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\thariom := pusers.AddressOrName(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin)\", uint64(10), func() interface{} { return BalanceOf(admin) }},\n\t\t{\"BalanceOf(hariom)\", uint64(5), func() interface{} { return BalanceOf(hariom) }},\n\t\t{\"OwnerOf(0)\", users.Resolve(admin), func() interface{} { return OwnerOf(grc721.TokenID(\"0\")) }},\n\t\t{\"IsApprovedForAll(admin, hariom)\", false, func() interface{} { return IsApprovedForAll(admin, hariom) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S4myaqtsuQbM+ieDAITLIuUFKFlB4YyRfGn8oEPrHZ11YC2/1ZGUua46nVX//NclToXtl5aD0FwNiw6FDxdTBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"fqname","path":"gno.land/p/demo/fqname","files":[{"name":"fqname.gno","body":"// Package fqname provides utilities for handling fully qualified identifiers in\n// Gno. A fully qualified identifier typically includes a package path followed\n// by a dot (.) and then the name of a variable, function, type, or other\n// package-level declaration.\npackage fqname\n\nimport (\n\t\"strings\"\n)\n\n// Parse splits a fully qualified identifier into its package path and name\n// components. It handles cases with and without slashes in the package path.\n//\n//\tpkgpath, name := fqname.Parse(\"gno.land/p/demo/avl.Tree\")\n//\tufmt.Sprintf(\"Package: %s, Name: %s\\n\", id.Package, id.Name)\n//\t// Output: Package: gno.land/p/demo/avl, Name: Tree\nfunc Parse(fqname string) (pkgpath, name string) {\n\t// Find the index of the last slash.\n\tlastSlashIndex := strings.LastIndex(fqname, \"/\")\n\tif lastSlashIndex == -1 {\n\t\t// No slash found, handle it as a simple package name with dot notation.\n\t\tdotIndex := strings.LastIndex(fqname, \".\")\n\t\tif dotIndex == -1 {\n\t\t\treturn fqname, \"\"\n\t\t}\n\t\treturn fqname[:dotIndex], fqname[dotIndex+1:]\n\t}\n\n\t// Get the part after the last slash.\n\tafterSlash := fqname[lastSlashIndex+1:]\n\n\t// Check for a dot in the substring after the last slash.\n\tdotIndex := strings.Index(afterSlash, \".\")\n\tif dotIndex == -1 {\n\t\t// No dot found after the last slash\n\t\treturn fqname, \"\"\n\t}\n\n\t// Split at the dot to separate the base and the suffix.\n\tbase := fqname[:lastSlashIndex+1+dotIndex]\n\tsuffix := afterSlash[dotIndex+1:]\n\n\treturn base, suffix\n}\n\n// Construct a qualified identifier.\n//\n//\tfqName := fqname.Construct(\"gno.land/r/demo/foo20\", \"Token\")\n//\tfmt.Println(\"Fully Qualified Name:\", fqName)\n//\t// Output: gno.land/r/demo/foo20.Token\nfunc Construct(pkgpath, name string) string {\n\t// TODO: ensure pkgpath is valid - and as such last part does not contain a dot.\n\tif name == \"\" {\n\t\treturn pkgpath\n\t}\n\treturn pkgpath + \".\" + name\n}\n\n// RenderLink creates a formatted link for a fully qualified identifier.\n// If the package path starts with \"gno.land\", it converts it to a markdown link.\n// If the domain is different or missing, it returns the input as is.\nfunc RenderLink(pkgPath, slug string) string {\n\tif strings.HasPrefix(pkgPath, \"gno.land\") {\n\t\tpkgLink := strings.TrimPrefix(pkgPath, \"gno.land\")\n\t\tif slug != \"\" {\n\t\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \").\" + slug\n\t\t}\n\n\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \")\"\n\t}\n\n\tif slug != \"\" {\n\t\treturn pkgPath + \".\" + slug\n\t}\n\n\treturn pkgPath\n}\n"},{"name":"fqname_test.gno","body":"package fqname\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParse(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpectedPkgPath string\n\t\texpectedName string\n\t}{\n\t\t{\"gno.land/p/demo/avl.Tree\", \"gno.land/p/demo/avl\", \"Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"gno.land/p/demo/avl\", \"\"},\n\t\t{\"gno.land/p/demo/avl.Tree.Node\", \"gno.land/p/demo/avl\", \"Tree.Node\"},\n\t\t{\"gno.land/p/demo/avl/nested.Package.Func\", \"gno.land/p/demo/avl/nested\", \"Package.Func\"},\n\t\t{\"path/filepath.Split\", \"path/filepath\", \"Split\"},\n\t\t{\"path.Split\", \"path\", \"Split\"},\n\t\t{\"path/filepath\", \"path/filepath\", \"\"},\n\t\t{\"path\", \"path\", \"\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpkgpath, name := Parse(tt.input)\n\t\tuassert.Equal(t, tt.expectedPkgPath, pkgpath, \"Package path did not match\")\n\t\tuassert.Equal(t, tt.expectedName, name, \"Name did not match\")\n\t}\n}\n\nfunc TestConstruct(t *testing.T) {\n\ttests := []struct {\n\t\tpkgpath string\n\t\tname string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"gno.land/r/demo/foo20.Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"gno.land/r/demo/foo20\"},\n\t\t{\"path\", \"\", \"path\"},\n\t\t{\"path\", \"Split\", \"path.Split\"},\n\t\t{\"path/filepath\", \"\", \"path/filepath\"},\n\t\t{\"path/filepath\", \"Split\", \"path/filepath.Split\"},\n\t\t{\"\", \"JustName\", \".JustName\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := Construct(tt.pkgpath, tt.name)\n\t\tuassert.Equal(t, tt.expected, result, \"Constructed FQName did not match expected\")\n\t}\n}\n\nfunc TestRenderLink(t *testing.T) {\n\ttests := []struct {\n\t\tpkgPath string\n\t\tslug string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/p/demo/avl\", \"Tree\", \"[gno.land/p/demo/avl](/p/demo/avl).Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"\", \"[gno.land/p/demo/avl](/p/demo/avl)\"},\n\t\t{\"github.com/a/b\", \"C\", \"github.com/a/b.C\"},\n\t\t{\"example.com/pkg\", \"Func\", \"example.com/pkg.Func\"},\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"[gno.land/r/demo/foo20](/r/demo/foo20).Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"[gno.land/r/demo/foo20](/r/demo/foo20)\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := RenderLink(tt.pkgPath, tt.slug)\n\t\tuassert.Equal(t, tt.expected, result, \"Rendered link did not match expected\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/ILXVaC2/4Ff05sqnQpjoxyfoXYVnM+YPAgF550wUVhscyaNtPKF1fiqjht0kWa6E5Ztu7hEzkBCsCKIWYJgDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"fqname","path":"gno.land/p/demo/fqname","files":[{"name":"fqname.gno","body":"// Package fqname provides utilities for handling fully qualified identifiers in\n// Gno. A fully qualified identifier typically includes a package path followed\n// by a dot (.) and then the name of a variable, function, type, or other\n// package-level declaration.\npackage fqname\n\nimport (\n\t\"strings\"\n)\n\n// Parse splits a fully qualified identifier into its package path and name\n// components. It handles cases with and without slashes in the package path.\n//\n//\tpkgpath, name := fqname.Parse(\"gno.land/p/demo/avl.Tree\")\n//\tufmt.Sprintf(\"Package: %s, Name: %s\\n\", id.Package, id.Name)\n//\t// Output: Package: gno.land/p/demo/avl, Name: Tree\nfunc Parse(fqname string) (pkgpath, name string) {\n\t// Find the index of the last slash.\n\tlastSlashIndex := strings.LastIndex(fqname, \"/\")\n\tif lastSlashIndex == -1 {\n\t\t// No slash found, handle it as a simple package name with dot notation.\n\t\tdotIndex := strings.LastIndex(fqname, \".\")\n\t\tif dotIndex == -1 {\n\t\t\treturn fqname, \"\"\n\t\t}\n\t\treturn fqname[:dotIndex], fqname[dotIndex+1:]\n\t}\n\n\t// Get the part after the last slash.\n\tafterSlash := fqname[lastSlashIndex+1:]\n\n\t// Check for a dot in the substring after the last slash.\n\tdotIndex := strings.Index(afterSlash, \".\")\n\tif dotIndex == -1 {\n\t\t// No dot found after the last slash\n\t\treturn fqname, \"\"\n\t}\n\n\t// Split at the dot to separate the base and the suffix.\n\tbase := fqname[:lastSlashIndex+1+dotIndex]\n\tsuffix := afterSlash[dotIndex+1:]\n\n\treturn base, suffix\n}\n\n// Construct a qualified identifier.\n//\n//\tfqName := fqname.Construct(\"gno.land/r/demo/foo20\", \"Token\")\n//\tfmt.Println(\"Fully Qualified Name:\", fqName)\n//\t// Output: gno.land/r/demo/foo20.Token\nfunc Construct(pkgpath, name string) string {\n\t// TODO: ensure pkgpath is valid - and as such last part does not contain a dot.\n\tif name == \"\" {\n\t\treturn pkgpath\n\t}\n\treturn pkgpath + \".\" + name\n}\n\n// RenderLink creates a formatted link for a fully qualified identifier.\n// If the package path starts with \"gno.land\", it converts it to a markdown link.\n// If the domain is different or missing, it returns the input as is.\nfunc RenderLink(pkgPath, slug string) string {\n\tif strings.HasPrefix(pkgPath, \"gno.land\") {\n\t\tpkgLink := strings.TrimPrefix(pkgPath, \"gno.land\")\n\t\tif slug != \"\" {\n\t\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \").\" + slug\n\t\t}\n\n\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \")\"\n\t}\n\n\tif slug != \"\" {\n\t\treturn pkgPath + \".\" + slug\n\t}\n\n\treturn pkgPath\n}\n"},{"name":"fqname_test.gno","body":"package fqname\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParse(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpectedPkgPath string\n\t\texpectedName string\n\t}{\n\t\t{\"gno.land/p/demo/avl.Tree\", \"gno.land/p/demo/avl\", \"Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"gno.land/p/demo/avl\", \"\"},\n\t\t{\"gno.land/p/demo/avl.Tree.Node\", \"gno.land/p/demo/avl\", \"Tree.Node\"},\n\t\t{\"gno.land/p/demo/avl/nested.Package.Func\", \"gno.land/p/demo/avl/nested\", \"Package.Func\"},\n\t\t{\"path/filepath.Split\", \"path/filepath\", \"Split\"},\n\t\t{\"path.Split\", \"path\", \"Split\"},\n\t\t{\"path/filepath\", \"path/filepath\", \"\"},\n\t\t{\"path\", \"path\", \"\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpkgpath, name := Parse(tt.input)\n\t\tuassert.Equal(t, tt.expectedPkgPath, pkgpath, \"Package path did not match\")\n\t\tuassert.Equal(t, tt.expectedName, name, \"Name did not match\")\n\t}\n}\n\nfunc TestConstruct(t *testing.T) {\n\ttests := []struct {\n\t\tpkgpath string\n\t\tname string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"gno.land/r/demo/foo20.Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"gno.land/r/demo/foo20\"},\n\t\t{\"path\", \"\", \"path\"},\n\t\t{\"path\", \"Split\", \"path.Split\"},\n\t\t{\"path/filepath\", \"\", \"path/filepath\"},\n\t\t{\"path/filepath\", \"Split\", \"path/filepath.Split\"},\n\t\t{\"\", \"JustName\", \".JustName\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := Construct(tt.pkgpath, tt.name)\n\t\tuassert.Equal(t, tt.expected, result, \"Constructed FQName did not match expected\")\n\t}\n}\n\nfunc TestRenderLink(t *testing.T) {\n\ttests := []struct {\n\t\tpkgPath string\n\t\tslug string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/p/demo/avl\", \"Tree\", \"[gno.land/p/demo/avl](/p/demo/avl).Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"\", \"[gno.land/p/demo/avl](/p/demo/avl)\"},\n\t\t{\"github.com/a/b\", \"C\", \"github.com/a/b.C\"},\n\t\t{\"example.com/pkg\", \"Func\", \"example.com/pkg.Func\"},\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"[gno.land/r/demo/foo20](/r/demo/foo20).Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"[gno.land/r/demo/foo20](/r/demo/foo20)\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := RenderLink(tt.pkgPath, tt.slug)\n\t\tuassert.Equal(t, tt.expected, result, \"Rendered link did not match expected\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/ILXVaC2/4Ff05sqnQpjoxyfoXYVnM+YPAgF550wUVhscyaNtPKF1fiqjht0kWa6E5Ztu7hEzkBCsCKIWYJgDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"fqname","path":"gno.land/p/demo/fqname","files":[{"name":"fqname.gno","body":"// Package fqname provides utilities for handling fully qualified identifiers in\n// Gno. A fully qualified identifier typically includes a package path followed\n// by a dot (.) and then the name of a variable, function, type, or other\n// package-level declaration.\npackage fqname\n\nimport (\n\t\"strings\"\n)\n\n// Parse splits a fully qualified identifier into its package path and name\n// components. It handles cases with and without slashes in the package path.\n//\n//\tpkgpath, name := fqname.Parse(\"gno.land/p/demo/avl.Tree\")\n//\tufmt.Sprintf(\"Package: %s, Name: %s\\n\", id.Package, id.Name)\n//\t// Output: Package: gno.land/p/demo/avl, Name: Tree\nfunc Parse(fqname string) (pkgpath, name string) {\n\t// Find the index of the last slash.\n\tlastSlashIndex := strings.LastIndex(fqname, \"/\")\n\tif lastSlashIndex == -1 {\n\t\t// No slash found, handle it as a simple package name with dot notation.\n\t\tdotIndex := strings.LastIndex(fqname, \".\")\n\t\tif dotIndex == -1 {\n\t\t\treturn fqname, \"\"\n\t\t}\n\t\treturn fqname[:dotIndex], fqname[dotIndex+1:]\n\t}\n\n\t// Get the part after the last slash.\n\tafterSlash := fqname[lastSlashIndex+1:]\n\n\t// Check for a dot in the substring after the last slash.\n\tdotIndex := strings.Index(afterSlash, \".\")\n\tif dotIndex == -1 {\n\t\t// No dot found after the last slash\n\t\treturn fqname, \"\"\n\t}\n\n\t// Split at the dot to separate the base and the suffix.\n\tbase := fqname[:lastSlashIndex+1+dotIndex]\n\tsuffix := afterSlash[dotIndex+1:]\n\n\treturn base, suffix\n}\n\n// Construct a qualified identifier.\n//\n//\tfqName := fqname.Construct(\"gno.land/r/demo/foo20\", \"Token\")\n//\tfmt.Println(\"Fully Qualified Name:\", fqName)\n//\t// Output: gno.land/r/demo/foo20.Token\nfunc Construct(pkgpath, name string) string {\n\t// TODO: ensure pkgpath is valid - and as such last part does not contain a dot.\n\tif name == \"\" {\n\t\treturn pkgpath\n\t}\n\treturn pkgpath + \".\" + name\n}\n\n// RenderLink creates a formatted link for a fully qualified identifier.\n// If the package path starts with \"gno.land\", it converts it to a markdown link.\n// If the domain is different or missing, it returns the input as is.\nfunc RenderLink(pkgPath, slug string) string {\n\tif strings.HasPrefix(pkgPath, \"gno.land\") {\n\t\tpkgLink := strings.TrimPrefix(pkgPath, \"gno.land\")\n\t\tif slug != \"\" {\n\t\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \").\" + slug\n\t\t}\n\n\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \")\"\n\t}\n\n\tif slug != \"\" {\n\t\treturn pkgPath + \".\" + slug\n\t}\n\n\treturn pkgPath\n}\n"},{"name":"fqname_test.gno","body":"package fqname\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParse(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpectedPkgPath string\n\t\texpectedName string\n\t}{\n\t\t{\"gno.land/p/demo/avl.Tree\", \"gno.land/p/demo/avl\", \"Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"gno.land/p/demo/avl\", \"\"},\n\t\t{\"gno.land/p/demo/avl.Tree.Node\", \"gno.land/p/demo/avl\", \"Tree.Node\"},\n\t\t{\"gno.land/p/demo/avl/nested.Package.Func\", \"gno.land/p/demo/avl/nested\", \"Package.Func\"},\n\t\t{\"path/filepath.Split\", \"path/filepath\", \"Split\"},\n\t\t{\"path.Split\", \"path\", \"Split\"},\n\t\t{\"path/filepath\", \"path/filepath\", \"\"},\n\t\t{\"path\", \"path\", \"\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpkgpath, name := Parse(tt.input)\n\t\tuassert.Equal(t, tt.expectedPkgPath, pkgpath, \"Package path did not match\")\n\t\tuassert.Equal(t, tt.expectedName, name, \"Name did not match\")\n\t}\n}\n\nfunc TestConstruct(t *testing.T) {\n\ttests := []struct {\n\t\tpkgpath string\n\t\tname string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"gno.land/r/demo/foo20.Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"gno.land/r/demo/foo20\"},\n\t\t{\"path\", \"\", \"path\"},\n\t\t{\"path\", \"Split\", \"path.Split\"},\n\t\t{\"path/filepath\", \"\", \"path/filepath\"},\n\t\t{\"path/filepath\", \"Split\", \"path/filepath.Split\"},\n\t\t{\"\", \"JustName\", \".JustName\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := Construct(tt.pkgpath, tt.name)\n\t\tuassert.Equal(t, tt.expected, result, \"Constructed FQName did not match expected\")\n\t}\n}\n\nfunc TestRenderLink(t *testing.T) {\n\ttests := []struct {\n\t\tpkgPath string\n\t\tslug string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/p/demo/avl\", \"Tree\", \"[gno.land/p/demo/avl](/p/demo/avl).Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"\", \"[gno.land/p/demo/avl](/p/demo/avl)\"},\n\t\t{\"github.com/a/b\", \"C\", \"github.com/a/b.C\"},\n\t\t{\"example.com/pkg\", \"Func\", \"example.com/pkg.Func\"},\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"[gno.land/r/demo/foo20](/r/demo/foo20).Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"[gno.land/r/demo/foo20](/r/demo/foo20)\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := RenderLink(tt.pkgPath, tt.slug)\n\t\tuassert.Equal(t, tt.expected, result, \"Rendered link did not match expected\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/ILXVaC2/4Ff05sqnQpjoxyfoXYVnM+YPAgF550wUVhscyaNtPKF1fiqjht0kWa6E5Ztu7hEzkBCsCKIWYJgDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ghverify","path":"gno.land/r/gnoland/ghverify","files":[{"name":"README.md","body":"# ghverify\n\nThis realm is intended to enable off chain gno address to github handle verification.\nThe steps are as follows:\n- A user calls `RequestVerification` and provides a github handle. This creates a new static oracle feed.\n- An off-chain agent controlled by the owner of this realm requests current feeds using the `GnorkleEntrypoint` function and provides a message of `\"request\"`\n- The agent receives the task information that includes the github handle and the gno address. It performs the verification step by checking whether this github user has the address in a github repository it controls.\n- The agent publishes the result of the verification by calling `GnorkleEntrypoint` with a message structured like: `\"ingest,\u003ctask id\u003e,\u003cverification status\u003e\"`. The verification status is `OK` if verification succeeded and any other value if it failed.\n- The oracle feed's ingester processes the verification and the handle to address mapping is written to the avl trees that exist as ghverify realm variables."},{"name":"contract.gno","body":"package ghverify\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\nconst (\n\t// The agent should send this value if it has verified the github handle.\n\tverifiedResult = \"OK\"\n)\n\nvar (\n\townerAddress = std.GetOrigCaller()\n\toracle *gnorkle.Instance\n\tpostHandler postGnorkleMessageHandler\n\n\thandleToAddressMap = avl.NewTree()\n\taddressToHandleMap = avl.NewTree()\n)\n\nfunc init() {\n\toracle = gnorkle.NewInstance()\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\ntype postGnorkleMessageHandler struct{}\n\n// Handle does post processing after a message is ingested by the oracle feed. It extracts the value to realm\n// storage and removes the feed from the oracle.\nfunc (h postGnorkleMessageHandler) Handle(i *gnorkle.Instance, funcType message.FuncType, feed gnorkle.Feed) error {\n\tif funcType != message.FuncTypeIngest {\n\t\treturn nil\n\t}\n\n\tresult, _, consumable := feed.Value()\n\tif !consumable {\n\t\treturn nil\n\t}\n\n\t// The value is consumable, meaning the ingestion occurred, so we can remove the feed from the oracle\n\t// after saving it to realm storage.\n\tdefer oracle.RemoveFeed(feed.ID())\n\n\t// Couldn't verify; nothing to do.\n\tif result.String != verifiedResult {\n\t\treturn nil\n\t}\n\n\tfeedTasks := feed.Tasks()\n\tif len(feedTasks) != 1 {\n\t\treturn errors.New(\"expected feed to have exactly one task\")\n\t}\n\n\ttask, ok := feedTasks[0].(*verificationTask)\n\tif !ok {\n\t\treturn errors.New(\"expected ghverify task\")\n\t}\n\n\thandleToAddressMap.Set(task.githubHandle, task.gnoAddress)\n\taddressToHandleMap.Set(task.gnoAddress, task.githubHandle)\n\treturn nil\n}\n\n// RequestVerification creates a new static feed with a single task that will\n// instruct an agent to verify the github handle / gno address pair.\nfunc RequestVerification(githubHandle string) {\n\tgnoAddress := string(std.GetOrigCaller())\n\tif err := oracle.AddFeeds(\n\t\tstatic.NewSingleValueFeed(\n\t\t\tgnoAddress,\n\t\t\t\"string\",\n\t\t\t\u0026verificationTask{\n\t\t\t\tgnoAddress: gnoAddress,\n\t\t\t\tgithubHandle: githubHandle,\n\t\t\t},\n\t\t),\n\t); err != nil {\n\t\tpanic(err)\n\t}\n\tstd.Emit(\n\t\t\"verification_requested\",\n\t\t\"from\", gnoAddress,\n\t\t\"handle\", githubHandle,\n\t)\n}\n\n// GnorkleEntrypoint is the entrypoint to the gnorkle oracle handler.\nfunc GnorkleEntrypoint(message string) string {\n\tresult, err := oracle.HandleMessage(message, postHandler)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// SetOwner transfers ownership of the contract to the given address.\nfunc SetOwner(owner std.Address) {\n\tif ownerAddress != std.GetOrigCaller() {\n\t\tpanic(\"only the owner can set a new owner\")\n\t}\n\n\townerAddress = owner\n\n\t// In the context of this contract, the owner is the only one that can\n\t// add new feeds to the oracle.\n\toracle.ClearWhitelist(\"\")\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\n// GetHandleByAddress returns the github handle associated with the given gno address.\nfunc GetHandleByAddress(address string) string {\n\tif value, ok := addressToHandleMap.Get(address); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// GetAddressByHandle returns the gno address associated with the given github handle.\nfunc GetAddressByHandle(handle string) string {\n\tif value, ok := handleToAddressMap.Get(handle); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// Render returns a json object string will all verified handle -\u003e address mappings.\nfunc Render(_ string) string {\n\tresult := \"{\"\n\tvar appendComma bool\n\thandleToAddressMap.Iterate(\"\", \"\", func(handle string, address interface{}) bool {\n\t\tif appendComma {\n\t\t\tresult += \",\"\n\t\t}\n\n\t\tresult += `\"` + handle + `\": \"` + address.(string) + `\"`\n\t\tappendComma = true\n\n\t\treturn false\n\t})\n\n\treturn result + \"}\"\n}\n"},{"name":"contract_test.gno","body":"package ghverify\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestVerificationLifecycle(t *testing.T) {\n\tdefaultAddress := std.GetOrigCaller()\n\tuser1Address := std.Address(testutils.TestAddress(\"user 1\"))\n\tuser2Address := std.Address(testutils.TestAddress(\"user 2\"))\n\n\t// Verify request returns no feeds.\n\tresult := GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user1Address)\n\tRequestVerification(\"deelawn\")\n\n\t// A subsequent request from the same address should panic because there is\n\t// already a feed with an ID of this user's address.\n\tvar errMsg string\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tRequestVerification(\"deelawn\")\n\t}()\n\tif errMsg != \"feed already exists\" {\n\t\tt.Fatalf(\"expected feed already exists, got %s\", errMsg)\n\t}\n\n\t// Verify the request returns no feeds for this non-whitelisted user.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user2Address)\n\tRequestVerification(\"omarsy\")\n\n\t// Set the caller back to the whitelisted user and verify that the feed data\n\t// returned matches what should have been created by the `RequestVerification`\n\t// invocation.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tresult = GnorkleEntrypoint(\"request\")\n\texpResult := `[{\"id\":\"` + string(user1Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user1Address) + `\",\"github_handle\":\"deelawn\"}]},` +\n\t\t`{\"id\":\"` + string(user2Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user2Address) + `\",\"github_handle\":\"omarsy\"}]}]`\n\tif result != expResult {\n\t\tt.Fatalf(\"expected request result %s, got %s\", expResult, result)\n\t}\n\n\t// Try to trigger feed ingestion from the non-authorized user.\n\tstd.TestSetOrigCaller(user1Address)\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\t}()\n\tif errMsg != \"caller not whitelisted\" {\n\t\tt.Fatalf(\"expected caller not whitelisted, got %s\", errMsg)\n\t}\n\n\t// Set the caller back to the whitelisted user and transfer contract ownership.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tSetOwner(defaultAddress)\n\n\t// Now trigger the feed ingestion from the user and new owner and only whitelisted address.\n\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\tGnorkleEntrypoint(\"ingest,\" + string(user2Address) + \",OK\")\n\n\t// Verify the ingestion autocommitted the value and triggered the post handler.\n\tdata := Render(\"\")\n\texpResult = `{\"deelawn\": \"` + string(user1Address) + `\",\"omarsy\": \"` + string(user2Address) + `\"}`\n\tif data != expResult {\n\t\tt.Fatalf(\"expected render data %s, got %s\", expResult, data)\n\t}\n\n\t// Finally make sure the feed was cleaned up after the data was committed.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Check that the accessor functions are working as expected.\n\tif handle := GetHandleByAddress(string(user1Address)); handle != \"deelawn\" {\n\t\tt.Fatalf(\"expected deelawn, got %s\", handle)\n\t}\n\tif address := GetAddressByHandle(\"deelawn\"); address != string(user1Address) {\n\t\tt.Fatalf(\"expected %s, got %s\", string(user1Address), address)\n\t}\n}\n"},{"name":"task.gno","body":"package ghverify\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n)\n\ntype verificationTask struct {\n\tgnoAddress string\n\tgithubHandle string\n}\n\n// MarshalJSON marshals the task contents to JSON.\nfunc (t *verificationTask) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write(\n\t\t[]byte(`{\"gno_address\":\"` + t.gnoAddress + `\",\"github_handle\":\"` + t.githubHandle + `\"}`),\n\t)\n\n\tw.Flush()\n\treturn buf.Bytes(), nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/95km9JmCahZjs6wHwDLT01xl7FvQSr0A8OynTne8VSWP2+SaMoHQ2R6aQoWFVJLreGef6VCetD/INUYrh3gDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ghverify","path":"gno.land/r/gnoland/ghverify","files":[{"name":"README.md","body":"# ghverify\n\nThis realm is intended to enable off chain gno address to github handle verification.\nThe steps are as follows:\n- A user calls `RequestVerification` and provides a github handle. This creates a new static oracle feed.\n- An off-chain agent controlled by the owner of this realm requests current feeds using the `GnorkleEntrypoint` function and provides a message of `\"request\"`\n- The agent receives the task information that includes the github handle and the gno address. It performs the verification step by checking whether this github user has the address in a github repository it controls.\n- The agent publishes the result of the verification by calling `GnorkleEntrypoint` with a message structured like: `\"ingest,\u003ctask id\u003e,\u003cverification status\u003e\"`. The verification status is `OK` if verification succeeded and any other value if it failed.\n- The oracle feed's ingester processes the verification and the handle to address mapping is written to the avl trees that exist as ghverify realm variables."},{"name":"contract.gno","body":"package ghverify\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\nconst (\n\t// The agent should send this value if it has verified the github handle.\n\tverifiedResult = \"OK\"\n)\n\nvar (\n\townerAddress = std.GetOrigCaller()\n\toracle *gnorkle.Instance\n\tpostHandler postGnorkleMessageHandler\n\n\thandleToAddressMap = avl.NewTree()\n\taddressToHandleMap = avl.NewTree()\n)\n\nfunc init() {\n\toracle = gnorkle.NewInstance()\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\ntype postGnorkleMessageHandler struct{}\n\n// Handle does post processing after a message is ingested by the oracle feed. It extracts the value to realm\n// storage and removes the feed from the oracle.\nfunc (h postGnorkleMessageHandler) Handle(i *gnorkle.Instance, funcType message.FuncType, feed gnorkle.Feed) error {\n\tif funcType != message.FuncTypeIngest {\n\t\treturn nil\n\t}\n\n\tresult, _, consumable := feed.Value()\n\tif !consumable {\n\t\treturn nil\n\t}\n\n\t// The value is consumable, meaning the ingestion occurred, so we can remove the feed from the oracle\n\t// after saving it to realm storage.\n\tdefer oracle.RemoveFeed(feed.ID())\n\n\t// Couldn't verify; nothing to do.\n\tif result.String != verifiedResult {\n\t\treturn nil\n\t}\n\n\tfeedTasks := feed.Tasks()\n\tif len(feedTasks) != 1 {\n\t\treturn errors.New(\"expected feed to have exactly one task\")\n\t}\n\n\ttask, ok := feedTasks[0].(*verificationTask)\n\tif !ok {\n\t\treturn errors.New(\"expected ghverify task\")\n\t}\n\n\thandleToAddressMap.Set(task.githubHandle, task.gnoAddress)\n\taddressToHandleMap.Set(task.gnoAddress, task.githubHandle)\n\treturn nil\n}\n\n// RequestVerification creates a new static feed with a single task that will\n// instruct an agent to verify the github handle / gno address pair.\nfunc RequestVerification(githubHandle string) {\n\tgnoAddress := string(std.GetOrigCaller())\n\tif err := oracle.AddFeeds(\n\t\tstatic.NewSingleValueFeed(\n\t\t\tgnoAddress,\n\t\t\t\"string\",\n\t\t\t\u0026verificationTask{\n\t\t\t\tgnoAddress: gnoAddress,\n\t\t\t\tgithubHandle: githubHandle,\n\t\t\t},\n\t\t),\n\t); err != nil {\n\t\tpanic(err)\n\t}\n\tstd.Emit(\n\t\t\"verification_requested\",\n\t\t\"from\", gnoAddress,\n\t\t\"handle\", githubHandle,\n\t)\n}\n\n// GnorkleEntrypoint is the entrypoint to the gnorkle oracle handler.\nfunc GnorkleEntrypoint(message string) string {\n\tresult, err := oracle.HandleMessage(message, postHandler)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// SetOwner transfers ownership of the contract to the given address.\nfunc SetOwner(owner std.Address) {\n\tif ownerAddress != std.GetOrigCaller() {\n\t\tpanic(\"only the owner can set a new owner\")\n\t}\n\n\townerAddress = owner\n\n\t// In the context of this contract, the owner is the only one that can\n\t// add new feeds to the oracle.\n\toracle.ClearWhitelist(\"\")\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\n// GetHandleByAddress returns the github handle associated with the given gno address.\nfunc GetHandleByAddress(address string) string {\n\tif value, ok := addressToHandleMap.Get(address); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// GetAddressByHandle returns the gno address associated with the given github handle.\nfunc GetAddressByHandle(handle string) string {\n\tif value, ok := handleToAddressMap.Get(handle); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// Render returns a json object string will all verified handle -\u003e address mappings.\nfunc Render(_ string) string {\n\tresult := \"{\"\n\tvar appendComma bool\n\thandleToAddressMap.Iterate(\"\", \"\", func(handle string, address interface{}) bool {\n\t\tif appendComma {\n\t\t\tresult += \",\"\n\t\t}\n\n\t\tresult += `\"` + handle + `\": \"` + address.(string) + `\"`\n\t\tappendComma = true\n\n\t\treturn false\n\t})\n\n\treturn result + \"}\"\n}\n"},{"name":"contract_test.gno","body":"package ghverify\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestVerificationLifecycle(t *testing.T) {\n\tdefaultAddress := std.GetOrigCaller()\n\tuser1Address := std.Address(testutils.TestAddress(\"user 1\"))\n\tuser2Address := std.Address(testutils.TestAddress(\"user 2\"))\n\n\t// Verify request returns no feeds.\n\tresult := GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user1Address)\n\tRequestVerification(\"deelawn\")\n\n\t// A subsequent request from the same address should panic because there is\n\t// already a feed with an ID of this user's address.\n\tvar errMsg string\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tRequestVerification(\"deelawn\")\n\t}()\n\tif errMsg != \"feed already exists\" {\n\t\tt.Fatalf(\"expected feed already exists, got %s\", errMsg)\n\t}\n\n\t// Verify the request returns no feeds for this non-whitelisted user.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user2Address)\n\tRequestVerification(\"omarsy\")\n\n\t// Set the caller back to the whitelisted user and verify that the feed data\n\t// returned matches what should have been created by the `RequestVerification`\n\t// invocation.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tresult = GnorkleEntrypoint(\"request\")\n\texpResult := `[{\"id\":\"` + string(user1Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user1Address) + `\",\"github_handle\":\"deelawn\"}]},` +\n\t\t`{\"id\":\"` + string(user2Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user2Address) + `\",\"github_handle\":\"omarsy\"}]}]`\n\tif result != expResult {\n\t\tt.Fatalf(\"expected request result %s, got %s\", expResult, result)\n\t}\n\n\t// Try to trigger feed ingestion from the non-authorized user.\n\tstd.TestSetOrigCaller(user1Address)\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\t}()\n\tif errMsg != \"caller not whitelisted\" {\n\t\tt.Fatalf(\"expected caller not whitelisted, got %s\", errMsg)\n\t}\n\n\t// Set the caller back to the whitelisted user and transfer contract ownership.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tSetOwner(defaultAddress)\n\n\t// Now trigger the feed ingestion from the user and new owner and only whitelisted address.\n\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\tGnorkleEntrypoint(\"ingest,\" + string(user2Address) + \",OK\")\n\n\t// Verify the ingestion autocommitted the value and triggered the post handler.\n\tdata := Render(\"\")\n\texpResult = `{\"deelawn\": \"` + string(user1Address) + `\",\"omarsy\": \"` + string(user2Address) + `\"}`\n\tif data != expResult {\n\t\tt.Fatalf(\"expected render data %s, got %s\", expResult, data)\n\t}\n\n\t// Finally make sure the feed was cleaned up after the data was committed.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Check that the accessor functions are working as expected.\n\tif handle := GetHandleByAddress(string(user1Address)); handle != \"deelawn\" {\n\t\tt.Fatalf(\"expected deelawn, got %s\", handle)\n\t}\n\tif address := GetAddressByHandle(\"deelawn\"); address != string(user1Address) {\n\t\tt.Fatalf(\"expected %s, got %s\", string(user1Address), address)\n\t}\n}\n"},{"name":"task.gno","body":"package ghverify\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n)\n\ntype verificationTask struct {\n\tgnoAddress string\n\tgithubHandle string\n}\n\n// MarshalJSON marshals the task contents to JSON.\nfunc (t *verificationTask) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write(\n\t\t[]byte(`{\"gno_address\":\"` + t.gnoAddress + `\",\"github_handle\":\"` + t.githubHandle + `\"}`),\n\t)\n\n\tw.Flush()\n\treturn buf.Bytes(), nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/95km9JmCahZjs6wHwDLT01xl7FvQSr0A8OynTne8VSWP2+SaMoHQ2R6aQoWFVJLreGef6VCetD/INUYrh3gDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ghverify","path":"gno.land/r/gnoland/ghverify","files":[{"name":"README.md","body":"# ghverify\n\nThis realm is intended to enable off chain gno address to github handle verification.\nThe steps are as follows:\n- A user calls `RequestVerification` and provides a github handle. This creates a new static oracle feed.\n- An off-chain agent controlled by the owner of this realm requests current feeds using the `GnorkleEntrypoint` function and provides a message of `\"request\"`\n- The agent receives the task information that includes the github handle and the gno address. It performs the verification step by checking whether this github user has the address in a github repository it controls.\n- The agent publishes the result of the verification by calling `GnorkleEntrypoint` with a message structured like: `\"ingest,\u003ctask id\u003e,\u003cverification status\u003e\"`. The verification status is `OK` if verification succeeded and any other value if it failed.\n- The oracle feed's ingester processes the verification and the handle to address mapping is written to the avl trees that exist as ghverify realm variables."},{"name":"contract.gno","body":"package ghverify\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\nconst (\n\t// The agent should send this value if it has verified the github handle.\n\tverifiedResult = \"OK\"\n)\n\nvar (\n\townerAddress = std.GetOrigCaller()\n\toracle *gnorkle.Instance\n\tpostHandler postGnorkleMessageHandler\n\n\thandleToAddressMap = avl.NewTree()\n\taddressToHandleMap = avl.NewTree()\n)\n\nfunc init() {\n\toracle = gnorkle.NewInstance()\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\ntype postGnorkleMessageHandler struct{}\n\n// Handle does post processing after a message is ingested by the oracle feed. It extracts the value to realm\n// storage and removes the feed from the oracle.\nfunc (h postGnorkleMessageHandler) Handle(i *gnorkle.Instance, funcType message.FuncType, feed gnorkle.Feed) error {\n\tif funcType != message.FuncTypeIngest {\n\t\treturn nil\n\t}\n\n\tresult, _, consumable := feed.Value()\n\tif !consumable {\n\t\treturn nil\n\t}\n\n\t// The value is consumable, meaning the ingestion occurred, so we can remove the feed from the oracle\n\t// after saving it to realm storage.\n\tdefer oracle.RemoveFeed(feed.ID())\n\n\t// Couldn't verify; nothing to do.\n\tif result.String != verifiedResult {\n\t\treturn nil\n\t}\n\n\tfeedTasks := feed.Tasks()\n\tif len(feedTasks) != 1 {\n\t\treturn errors.New(\"expected feed to have exactly one task\")\n\t}\n\n\ttask, ok := feedTasks[0].(*verificationTask)\n\tif !ok {\n\t\treturn errors.New(\"expected ghverify task\")\n\t}\n\n\thandleToAddressMap.Set(task.githubHandle, task.gnoAddress)\n\taddressToHandleMap.Set(task.gnoAddress, task.githubHandle)\n\treturn nil\n}\n\n// RequestVerification creates a new static feed with a single task that will\n// instruct an agent to verify the github handle / gno address pair.\nfunc RequestVerification(githubHandle string) {\n\tgnoAddress := string(std.GetOrigCaller())\n\tif err := oracle.AddFeeds(\n\t\tstatic.NewSingleValueFeed(\n\t\t\tgnoAddress,\n\t\t\t\"string\",\n\t\t\t\u0026verificationTask{\n\t\t\t\tgnoAddress: gnoAddress,\n\t\t\t\tgithubHandle: githubHandle,\n\t\t\t},\n\t\t),\n\t); err != nil {\n\t\tpanic(err)\n\t}\n\tstd.Emit(\n\t\t\"verification_requested\",\n\t\t\"from\", gnoAddress,\n\t\t\"handle\", githubHandle,\n\t)\n}\n\n// GnorkleEntrypoint is the entrypoint to the gnorkle oracle handler.\nfunc GnorkleEntrypoint(message string) string {\n\tresult, err := oracle.HandleMessage(message, postHandler)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// SetOwner transfers ownership of the contract to the given address.\nfunc SetOwner(owner std.Address) {\n\tif ownerAddress != std.GetOrigCaller() {\n\t\tpanic(\"only the owner can set a new owner\")\n\t}\n\n\townerAddress = owner\n\n\t// In the context of this contract, the owner is the only one that can\n\t// add new feeds to the oracle.\n\toracle.ClearWhitelist(\"\")\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\n// GetHandleByAddress returns the github handle associated with the given gno address.\nfunc GetHandleByAddress(address string) string {\n\tif value, ok := addressToHandleMap.Get(address); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// GetAddressByHandle returns the gno address associated with the given github handle.\nfunc GetAddressByHandle(handle string) string {\n\tif value, ok := handleToAddressMap.Get(handle); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// Render returns a json object string will all verified handle -\u003e address mappings.\nfunc Render(_ string) string {\n\tresult := \"{\"\n\tvar appendComma bool\n\thandleToAddressMap.Iterate(\"\", \"\", func(handle string, address interface{}) bool {\n\t\tif appendComma {\n\t\t\tresult += \",\"\n\t\t}\n\n\t\tresult += `\"` + handle + `\": \"` + address.(string) + `\"`\n\t\tappendComma = true\n\n\t\treturn false\n\t})\n\n\treturn result + \"}\"\n}\n"},{"name":"contract_test.gno","body":"package ghverify\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestVerificationLifecycle(t *testing.T) {\n\tdefaultAddress := std.GetOrigCaller()\n\tuser1Address := std.Address(testutils.TestAddress(\"user 1\"))\n\tuser2Address := std.Address(testutils.TestAddress(\"user 2\"))\n\n\t// Verify request returns no feeds.\n\tresult := GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user1Address)\n\tRequestVerification(\"deelawn\")\n\n\t// A subsequent request from the same address should panic because there is\n\t// already a feed with an ID of this user's address.\n\tvar errMsg string\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tRequestVerification(\"deelawn\")\n\t}()\n\tif errMsg != \"feed already exists\" {\n\t\tt.Fatalf(\"expected feed already exists, got %s\", errMsg)\n\t}\n\n\t// Verify the request returns no feeds for this non-whitelisted user.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user2Address)\n\tRequestVerification(\"omarsy\")\n\n\t// Set the caller back to the whitelisted user and verify that the feed data\n\t// returned matches what should have been created by the `RequestVerification`\n\t// invocation.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tresult = GnorkleEntrypoint(\"request\")\n\texpResult := `[{\"id\":\"` + string(user1Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user1Address) + `\",\"github_handle\":\"deelawn\"}]},` +\n\t\t`{\"id\":\"` + string(user2Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user2Address) + `\",\"github_handle\":\"omarsy\"}]}]`\n\tif result != expResult {\n\t\tt.Fatalf(\"expected request result %s, got %s\", expResult, result)\n\t}\n\n\t// Try to trigger feed ingestion from the non-authorized user.\n\tstd.TestSetOrigCaller(user1Address)\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\t}()\n\tif errMsg != \"caller not whitelisted\" {\n\t\tt.Fatalf(\"expected caller not whitelisted, got %s\", errMsg)\n\t}\n\n\t// Set the caller back to the whitelisted user and transfer contract ownership.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tSetOwner(defaultAddress)\n\n\t// Now trigger the feed ingestion from the user and new owner and only whitelisted address.\n\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\tGnorkleEntrypoint(\"ingest,\" + string(user2Address) + \",OK\")\n\n\t// Verify the ingestion autocommitted the value and triggered the post handler.\n\tdata := Render(\"\")\n\texpResult = `{\"deelawn\": \"` + string(user1Address) + `\",\"omarsy\": \"` + string(user2Address) + `\"}`\n\tif data != expResult {\n\t\tt.Fatalf(\"expected render data %s, got %s\", expResult, data)\n\t}\n\n\t// Finally make sure the feed was cleaned up after the data was committed.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Check that the accessor functions are working as expected.\n\tif handle := GetHandleByAddress(string(user1Address)); handle != \"deelawn\" {\n\t\tt.Fatalf(\"expected deelawn, got %s\", handle)\n\t}\n\tif address := GetAddressByHandle(\"deelawn\"); address != string(user1Address) {\n\t\tt.Fatalf(\"expected %s, got %s\", string(user1Address), address)\n\t}\n}\n"},{"name":"task.gno","body":"package ghverify\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n)\n\ntype verificationTask struct {\n\tgnoAddress string\n\tgithubHandle string\n}\n\n// MarshalJSON marshals the task contents to JSON.\nfunc (t *verificationTask) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write(\n\t\t[]byte(`{\"gno_address\":\"` + t.gnoAddress + `\",\"github_handle\":\"` + t.githubHandle + `\"}`),\n\t)\n\n\tw.Flush()\n\treturn buf.Bytes(), nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/95km9JmCahZjs6wHwDLT01xl7FvQSr0A8OynTne8VSWP2+SaMoHQ2R6aQoWFVJLreGef6VCetD/INUYrh3gDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnft","path":"gno.land/r/demo/nft123","files":[{"name":"gnft.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\" // deployed position contract\n\tgnft = grc721.NewBasicNFT(\"GNOSWAP NFT\", \"GNFT\")\n)\n\nfunc init() {\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc GetTokenURI(tid grc721.TokenID) string {\n\turi, err := gnft.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn string(uri)\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"},{"name":"gnft_test.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestGNFT(t *testing.T) {\n\t// admin := pusers.AddressOrName(\"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\")\n\tadminRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tadminUser := pusers.AddressOrName(admin)\n\n\t// mint to admin\n\tMint(adminUser, \"1\")\n\tMint(adminUser, \"2\")\n\tMint(adminUser, \"3\")\n\tMint(adminUser, \"4\")\n\tMint(adminUser, \"5\")\n\tMint(adminUser, \"6\")\n\tMint(adminUser, \"7\")\n\tMint(adminUser, \"8\")\n\tMint(adminUser, \"9\")\n\tMint(adminUser, \"10\")\n}\n\nfunc TestGetTokenURI(t *testing.T) {\n\turl := GetTokenURI(\"1\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"2\")\n\tif url != NFT_IMAGE_02 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_02, url)\n\t}\n\n\turl = GetTokenURI(\"3\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"4\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"5\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\turl = GetTokenURI(\"6\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"8\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"9\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"10\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\t// PANIC\n\tshouldPanicWithMsg(\n\t\tt,\n\t\tfunc() {\n\t\t\tGetTokenURI(\"11\")\n\t\t},\n\t\t\"invalid token id\",\n\t)\n\n}\n\nfunc shouldPanicWithMsg(t *testing.T, f func(), msg string) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t} else {\n\t\t\tif r != msg {\n\t\t\t\tt.Errorf(\"excepted panic(%v), got(%v)\", msg, r)\n\t\t\t}\n\t\t}\n\t}()\n\tf()\n}\n"},{"name":"gno.mod","body":"module gno.land/r/gnoswap/gnft\n\nrequire (\n\tgno.land/p/demo/grc/grc721 v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n\tgno.land/p/demo/users v0.0.0-latest\n\tgno.land/r/demo/users v0.0.0-latest\n)\n"},{"name":"svg_base64.gno","body":"package gnft\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tstringId := string(tid)\n\tuintId, err := strconv.Atoi(stringId)\n\tif err != nil {\n\t\t// panic(err.Error())\n\t\treturn \"ERROR_TOKEN_URI\"\n\t}\n\n\tif uintId%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uintId%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uintId%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uintId%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O2z/nG3wbSiarALoa6lGGUd0btFoTDls/lTZ52MVUu/mDbnhAcpA+dEoU/PXwbS6t/n87hBDsAxwJDBHfAcbDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnft","path":"gno.land/r/demo/nft1234","files":[{"name":"gnft.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\" // deployed position contract\n\tgnft = grc721.NewBasicNFT(\"GNOSWAP NFT\", \"GNFT\")\n)\n\nfunc init() {\n\ttid := grc721.TokenID(\"99\")\n\terr := gnft.Mint(admin, tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc GetTokenURI(tid grc721.TokenID) string {\n\turi, err := gnft.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn string(uri)\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"},{"name":"gnft_test.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestGNFT(t *testing.T) {\n\t// admin := pusers.AddressOrName(\"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\")\n\tadminRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tadminUser := pusers.AddressOrName(admin)\n\n\t// mint to admin\n\tMint(adminUser, \"1\")\n\tMint(adminUser, \"2\")\n\tMint(adminUser, \"3\")\n\tMint(adminUser, \"4\")\n\tMint(adminUser, \"5\")\n\tMint(adminUser, \"6\")\n\tMint(adminUser, \"7\")\n\tMint(adminUser, \"8\")\n\tMint(adminUser, \"9\")\n\tMint(adminUser, \"10\")\n}\n\nfunc TestGetTokenURI(t *testing.T) {\n\turl := GetTokenURI(\"1\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"2\")\n\tif url != NFT_IMAGE_02 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_02, url)\n\t}\n\n\turl = GetTokenURI(\"3\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"4\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"5\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\turl = GetTokenURI(\"6\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"8\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"9\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"10\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\t// PANIC\n\tshouldPanicWithMsg(\n\t\tt,\n\t\tfunc() {\n\t\t\tGetTokenURI(\"11\")\n\t\t},\n\t\t\"invalid token id\",\n\t)\n\n}\n\nfunc shouldPanicWithMsg(t *testing.T, f func(), msg string) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t} else {\n\t\t\tif r != msg {\n\t\t\t\tt.Errorf(\"excepted panic(%v), got(%v)\", msg, r)\n\t\t\t}\n\t\t}\n\t}()\n\tf()\n}\n"},{"name":"gno.mod","body":"module gno.land/r/gnoswap/gnft\n\nrequire (\n\tgno.land/p/demo/grc/grc721 v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n\tgno.land/p/demo/users v0.0.0-latest\n\tgno.land/r/demo/users v0.0.0-latest\n)\n"},{"name":"svg_base64.gno","body":"package gnft\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tstringId := string(tid)\n\tuintId, err := strconv.Atoi(stringId)\n\tif err != nil {\n\t\t// panic(err.Error())\n\t\treturn \"ERROR_TOKEN_URI\"\n\t}\n\n\tif uintId%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uintId%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uintId%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uintId%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6n9yzoaU+YqR1QIHIm8ke9DeTQOSsJZY4Nd1cYIf4TuAUw0YDwAACKWIcDFZ40KpMQB9ivH56fo443ns0kOxDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnft","path":"gno.land/r/demo/nft2","files":[{"name":"gnft.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tadmin std.Address = \"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\" // deployed position contract\n\tgnft = grc721.NewBasicNFT(\"GNOSWAP NFT\", \"GNFT\")\n)\n\nfunc init() {\n\ttid := grc721.TokenID(\"99\")\n\terr := gnft.Mint(admin, tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc AMint() {\n\tstrTid := ufmt.Sprintf(\"%d\", TotalSupply()+1)\n\ttid := grc721.TokenID(strTid)\n\terr := gnft.Mint(admin, tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc GetTokenURI(tid grc721.TokenID) string {\n\turi, err := gnft.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn string(uri)\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"},{"name":"gnft_test.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestGNFT(t *testing.T) {\n\t// admin := pusers.AddressOrName(\"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\")\n\tadminRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tadminUser := pusers.AddressOrName(admin)\n\n\t// mint to admin\n\tMint(adminUser, \"1\")\n\tMint(adminUser, \"2\")\n\tMint(adminUser, \"3\")\n\tMint(adminUser, \"4\")\n\tMint(adminUser, \"5\")\n\tMint(adminUser, \"6\")\n\tMint(adminUser, \"7\")\n\tMint(adminUser, \"8\")\n\tMint(adminUser, \"9\")\n\tMint(adminUser, \"10\")\n}\n\nfunc TestGetTokenURI(t *testing.T) {\n\turl := GetTokenURI(\"1\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"2\")\n\tif url != NFT_IMAGE_02 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_02, url)\n\t}\n\n\turl = GetTokenURI(\"3\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"4\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"5\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\turl = GetTokenURI(\"6\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"8\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"9\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"10\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\t// PANIC\n\tshouldPanicWithMsg(\n\t\tt,\n\t\tfunc() {\n\t\t\tGetTokenURI(\"11\")\n\t\t},\n\t\t\"invalid token id\",\n\t)\n\n}\n\nfunc shouldPanicWithMsg(t *testing.T, f func(), msg string) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t} else {\n\t\t\tif r != msg {\n\t\t\t\tt.Errorf(\"excepted panic(%v), got(%v)\", msg, r)\n\t\t\t}\n\t\t}\n\t}()\n\tf()\n}\n"},{"name":"gno.mod","body":"module gno.land/r/gnoswap/gnft\n\nrequire (\n\tgno.land/p/demo/grc/grc721 v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n\tgno.land/p/demo/users v0.0.0-latest\n\tgno.land/r/demo/users v0.0.0-latest\n)\n"},{"name":"svg_base64.gno","body":"package gnft\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tstringId := string(tid)\n\tuintId, err := strconv.Atoi(stringId)\n\tif err != nil {\n\t\t// panic(err.Error())\n\t\treturn \"ERROR_TOKEN_URI\"\n\t}\n\n\tif uintId%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uintId%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uintId%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uintId%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AJuxnFI2fM3Vc0naZ6yrpGXB3kFJygFevJg4Rhrry0HOIOCJ661wl1XkuZ4dU64o8XJpeGXNcDVFWWNcIDmuAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnft","path":"gno.land/r/demo/nft3","files":[{"name":"gnft.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tadmin std.Address = \"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\" // deployed position contract\n\tgnft = grc721.NewBasicNFT(\"GNOSWAP NFT\", \"GNFT\")\n)\n\nfunc init() {\n\ttid := grc721.TokenID(\"99\")\n\terr := gnft.Mint(admin, tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc AMint() string {\n\tstrTid := ufmt.Sprintf(\"%d\", TotalSupply()+1)\n\ttid := grc721.TokenID(strTid)\n\terr := gnft.Mint(admin, tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tok, err2 := gnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n\tif !ok {\n\t\tpanic(err2.Error())\n\t}\n\n\treturn strTid\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc GetTokenURI(tid grc721.TokenID) string {\n\turi, err := gnft.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn string(uri)\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"},{"name":"gnft_test.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestGNFT(t *testing.T) {\n\t// admin := pusers.AddressOrName(\"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\")\n\tadminRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(adminRealm)\n\n\tadminUser := pusers.AddressOrName(admin)\n\n\t// mint to admin\n\tMint(adminUser, \"1\")\n\tMint(adminUser, \"2\")\n\tMint(adminUser, \"3\")\n\tMint(adminUser, \"4\")\n\tMint(adminUser, \"5\")\n\tMint(adminUser, \"6\")\n\tMint(adminUser, \"7\")\n\tMint(adminUser, \"8\")\n\tMint(adminUser, \"9\")\n\tMint(adminUser, \"10\")\n}\n\nfunc TestGetTokenURI(t *testing.T) {\n\turl := GetTokenURI(\"1\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"2\")\n\tif url != NFT_IMAGE_02 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_02, url)\n\t}\n\n\turl = GetTokenURI(\"3\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"4\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"5\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\turl = GetTokenURI(\"6\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"7\")\n\tif url != NFT_IMAGE_01 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_01, url)\n\t}\n\n\turl = GetTokenURI(\"8\")\n\tif url != NFT_IMAGE_04 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_04, url)\n\t}\n\n\turl = GetTokenURI(\"9\")\n\tif url != NFT_IMAGE_03 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_03, url)\n\t}\n\n\turl = GetTokenURI(\"10\")\n\tif url != NFT_IMAGE_05 {\n\t\tt.Errorf(\"expected %s, got %s\", NFT_IMAGE_05, url)\n\t}\n\n\t// PANIC\n\tshouldPanicWithMsg(\n\t\tt,\n\t\tfunc() {\n\t\t\tGetTokenURI(\"11\")\n\t\t},\n\t\t\"invalid token id\",\n\t)\n\n}\n\nfunc shouldPanicWithMsg(t *testing.T, f func(), msg string) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t} else {\n\t\t\tif r != msg {\n\t\t\t\tt.Errorf(\"excepted panic(%v), got(%v)\", msg, r)\n\t\t\t}\n\t\t}\n\t}()\n\tf()\n}\n"},{"name":"gno.mod","body":"module gno.land/r/gnoswap/gnft\n\nrequire (\n\tgno.land/p/demo/grc/grc721 v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n\tgno.land/p/demo/users v0.0.0-latest\n\tgno.land/r/demo/users v0.0.0-latest\n)\n"},{"name":"svg_base64.gno","body":"package gnft\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tstringId := string(tid)\n\tuintId, err := strconv.Atoi(stringId)\n\tif err != nil {\n\t\t// panic(err.Error())\n\t\treturn \"ERROR_TOKEN_URI\"\n\t}\n\n\tif uintId%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uintId%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uintId%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uintId%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ASok4vnUo5PH8d4XXlXymr7QuyIWvTwfOj7mGcaJQ3PpcTN8Z/gyl36zDx21+yBSPK19H+7w6NEKPw7MZV84CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnft","path":"gno.land/r/demo/nft4","files":[{"name":"gnft.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tadmin std.Address = \"g1y3uyaa63sjxvah2cx3c2usavwvx97kl8m2v7ye\" // deployed position contract\n\tgnft = grc721.NewBasicNFT(\"GNOSWAP NFT\", \"GNFT\")\n)\n\nfunc init() {}\n\nfunc AMint() grc721.TokenID {\n\tstrTid := ufmt.Sprintf(\"%d\", TotalSupply()+1)\n\ttid := grc721.TokenID(strTid)\n\n\t// self mint\n\terr := gnft.Mint(std.CurrentRealm().Addr(), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\t// set token uri\n\ttokenURI := genImageURI()\n\tok, err2 := gnft.SetTokenURI(tid, grc721.TokenURI(tokenURI))\n\tif !ok {\n\t\tpanic(err2.Error())\n\t}\n\n\t// then transfer\n\torig := std.GetOrigCaller()\n\terr = gnft.TransferFrom(std.CurrentRealm().Addr(), orig, tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn tid\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc GetTokenURI(tid grc721.TokenID) string {\n\turi, err := gnft.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn string(uri)\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\t// ONLY owner(to) can SetTokenURI\n\t/*\n\t\ttokenRaw := getImageBase64(tid)\n\t\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n\t*/\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"},{"name":"gnft_test.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestGNFT(t *testing.T) {\n\t// mint \u003e gnft \u003e set token uri \u003e transfer to\n\tprintln(\"TEST_(std.CurrentRealm():\", std.CurrentRealm())\n\tstd.TestSetRealm(std.CurrentRealm())\n\n\ttid := AMint()\n\towner := OwnerOf(tid)\n\tprintln(\"OWNER:\", owner)\n}\n"},{"name":"gno.mod","body":"module gno.land/r/gnoswap/gnft\n\nrequire (\n\tgno.land/p/demo/grc/grc721 v0.0.0-latest\n\tgno.land/p/demo/ufmt v0.0.0-latest\n\tgno.land/p/demo/users v0.0.0-latest\n\tgno.land/r/demo/users v0.0.0-latest\n)\n"},{"name":"svg_gen.gno","body":"package gnft\n\nimport (\n\t\"time\"\n\n\t\"math/rand\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\tb64 \"encoding/base64\"\n)\n\nvar baseTempalte = `\u003csvg width=\"135\" height=\"135\" viewBox=\"0 0 135 135\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003ccircle cx=\"67\" cy=\"68\" r=\"46\" fill=\"url(#paint0_linear_7698_56946)\"/\u003e\n\u003cpath d=\"M58.7734 53.6828L67.4941 48L85.0002 59.3178L76.2927 64.9957L58.7734 53.6828Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M58.9541 67.7177L67.6748 62.0349L85.0001 73.1804L76.4536 78.9596L58.9541 67.7177Z\" fill=\"white\" fill-opacity=\"0.4\"/\u003e\n\u003cpath d=\"M50.0269 75.8605L58.7735 70.1777L76.2408 81.517L67.4942 87.1472L50.0269 75.8605Z\" fill=\"white\" fill-opacity=\"0.6\"/\u003e\n\u003cpath d=\"M50.001 59.3174L58.7724 53.6672L58.7724 70.1797L50.001 75.8737L50.001 59.3174Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M76.4545 78.9598L85.0017 73.1807L85.0017 75.8302L76.2734 81.5023L76.4545 78.9598Z\" fill=\"white\" fill-opacity=\"0.5\"/\u003e\n\u003cpath d=\"M58.7734 53.6828L67.4941 48L85.0002 59.3178L76.2927 64.9957L58.7734 53.6828Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M58.9541 67.7177L67.6748 62.0349L85.0001 73.1804L76.4536 78.9596L58.9541 67.7177Z\" fill=\"white\" fill-opacity=\"0.4\"/\u003e\n\u003cpath d=\"M50.0269 75.8605L58.7735 70.1777L76.2408 81.517L67.4942 87.1472L50.0269 75.8605Z\" fill=\"white\" fill-opacity=\"0.6\"/\u003e\n\u003cpath d=\"M50.001 59.3174L58.7724 53.6672L58.7724 70.1797L50.001 75.8737L50.001 59.3174Z\" fill=\"white\"/\u003e\n\u003cpath d=\"M76.4545 78.9598L85.0017 73.1807L85.0017 75.8302L76.2734 81.5023L76.4545 78.9598Z\" fill=\"white\" fill-opacity=\"0.5\"/\u003e\n\u003cdefs\u003e\n\u003clinearGradient id=\"paint0_linear_7698_56946\" x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" gradientUnits=\"userSpaceOnUse\"\u003e\n\t\u003cstop stop-color=\"%s\"/\u003e\n\t\u003cstop offset=\"1\" stop-color=\"%s\"/\u003e\n\u003c/linearGradient\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e\n`\n\n// range for hex color\nconst charset = \"0123456789ABCDEF\"\n\nfunc genImageURI() string {\n\timageRaw := genImageRaw()\n\tsEnc := b64.StdEncoding.EncodeToString([]byte(imageRaw))\n\n\treturn \"data:image/svg+xml;base64,\" + sEnc\n}\n\nfunc genImageRaw() string {\n\tseed1 := uint64(time.Now().Unix())\n\tseed2 := uint64(time.Now().UnixNano())\n\tpcg := rand.NewPCG(seed1, seed2)\n\tr := rand.New(pcg)\n\n\tx1 := randNumber(7, 13, r)\n\ty1 := randNumber(7, 13, r)\n\n\tx2 := randNumber(121, 126, r)\n\ty2 := randNumber(121, 126, r)\n\n\tcolor1 := randColor(r)\n\tcolor2 := randColor(r)\n\n\trandImage := ufmt.Sprintf(baseTempalte, x1, y1, x2, y2, color1, color2)\n\treturn randImage\n\n}\n\nfunc randNumber(lower, upper uint64, r *rand.Rand) uint64 {\n\treturn lower + uint64(r.IntN(int(upper-lower+1)))\n}\n\nfunc randColor(r *rand.Rand) string {\n\tcolor := \"#\"\n\tfor i := 0; i \u003c 6; i++ {\n\t\tcolor += string(charset[r.IntN(len(charset))])\n\t}\n\treturn color\n}\n"},{"name":"svg_gen_test.gno","body":"package gnft\n\nimport (\n\t\"testing\"\n)\n\nfunc TestFunc(t *testing.T) {\n\timageURI := genImageURI()\n\tprintln(imageURI)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tJPPshveWskfVOY7dRoASteJaimujME1eI7Rrw5RKL81Ia1NCHYsdgT4vHRhZQsMyGQ+vcBmDGPGpzDkWTXZBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnoblog","path":"gno.land/r/gnoland/blog","files":[{"name":"admin.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tcommenterList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc NewPostExecutor(slug, title, body, publicationDate, authors, tags string) dao.Executor {\n\tcallback := func() error {\n\t\taddPost(std.PrevRealm().Addr(), slug, title, body, publicationDate, authors, tags)\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\tcaller := std.GetOrigCaller()\n\taddPost(caller, slug, title, body, publicationDate, authors, tags)\n}\n\nfunc addPost(caller std.Address, slug, title, body, publicationDate, authors, tags string) {\n\tvar tagList []string\n\tif tags != \"\" {\n\t\ttagList = strings.Split(tags, \",\")\n\t}\n\tvar authorList []string\n\tif authors != \"\" {\n\t\tauthorList = strings.Split(authors, \",\")\n\t}\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModRemovePost(slug string) {\n\tassertIsModerator()\n\n\tb.RemovePost(slug)\n}\n\nfunc ModAddCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), true)\n}\n\nfunc ModDelCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc ModDelComment(slug string, index int) {\n\tassertIsModerator()\n\n\terr := b.GetPost(slug).DeleteComment(index)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc isCommenter(addr std.Address) bool {\n\t_, found := commenterList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertIsCommenter() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) || isCommenter(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"gnoblog.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/blog\"\n)\n\nvar b = \u0026blog.Blog{\n\tTitle: \"gno.land's blog\",\n\tPrefix: \"/r/gnoland/blog:\",\n}\n\nfunc AddComment(postSlug, comment string) {\n\tassertIsCommenter()\n\tassertNotInPause()\n\n\tcaller := std.GetOrigCaller()\n\terr := b.GetPost(postSlug).AddComment(caller, comment)\n\tcheckErr(err)\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n\nfunc RenderLastPostsWidget(limit int) string {\n\treturn b.RenderLastPostsWidget(limit)\n}\n\nfunc PostExists(slug string) bool {\n\tif b.GetPost(slug) == nil {\n\t\treturn false\n\t}\n\treturn true\n}\n"},{"name":"gnoblog_test.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tstd.TestSetOrigCaller(std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"))\n\n\tauthor := std.GetOrigCaller()\n\n\t// by default, no posts.\n\t{\n\t\tgot := Render(\"\")\n\t\texpected := `\n# gno.land's blog\n\nNo posts.\n`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// create two posts, list post.\n\t{\n\t\tModAddPost(\"slug1\", \"title1\", \"body1\", \"2022-05-20T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\t\tModAddPost(\"slug2\", \"title2\", \"body2\", \"2022-05-20T13:17:23Z\", \"moul\", \"tag1,tag3\")\n\t\tgot := Render(\"\")\n\t\texpected := `\n\t# gno.land's blog\n\n\u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n\n### [title2](/r/gnoland/blog:p/slug2)\n 20 May 2022\n\u003c/div\u003e\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// view post.\n\t{\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\n\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003c/details\u003e\n\u003c/main\u003e\n\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// list by tags.\n\t{\n\t\tgot := Render(\"t/invalid\")\n\t\texpected := \"# [gno.land's blog](/r/gnoland/blog:) / t / invalid\\n\\nNo posts.\"\n\t\tassertMDEquals(t, got, expected)\n\n\t\tgot = Render(\"t/tag2\")\n\t\texpected = `\n# [gno.land's blog](/r/gnoland/blog:) / t / tag2\n\n\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// add comments.\n\t{\n\t\tAddComment(\"slug1\", \"comment1\")\n\t\tAddComment(\"slug2\", \"comment2\")\n\t\tAddComment(\"slug1\", \"comment3\")\n\t\tAddComment(\"slug2\", \"comment4\")\n\t\tAddComment(\"slug1\", \"comment5\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// edit post.\n\t{\n\t\toldTitle := \"title2\"\n\t\toldDate := \"2022-05-20T13:17:23Z\"\n\n\t\tModEditPost(\"slug2\", oldTitle, \"body2++\", oldDate, \"manfred\", \"tag1,tag4\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2++\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag4](/r/gnoland/blog:t/tag4)\n\nWritten by manfred on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\n\t\thome := Render(\"\")\n\n\t\tif strings.Count(home, oldTitle) != 1 {\n\t\t\tt.Errorf(\"post not edited properly\")\n\t\t}\n\t\t// Edits work everything except title, slug, and publicationDate\n\t\t// Edits to the above will cause duplication on the blog home page\n\t}\n\n\t{ // Test remove functionality\n\t\ttitle := \"example title\"\n\t\tslug := \"testSlug1\"\n\t\tModAddPost(slug, title, \"body1\", \"2022-05-25T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\n\t\tgot := Render(\"\")\n\n\t\tif !strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not added properly\")\n\t\t}\n\n\t\tpostRender := Render(\"p/\" + slug)\n\n\t\tif !strings.Contains(postRender, title) {\n\t\t\tt.Errorf(\"post not rendered properly\")\n\t\t}\n\n\t\tModRemovePost(slug)\n\t\tgot = Render(\"\")\n\n\t\tif strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not removed\")\n\t\t}\n\n\t\tpostRender = Render(\"p/\" + slug)\n\n\t\tassertMDEquals(t, postRender, \"404\")\n\t}\n\n\t// TODO: pagination.\n\t// TODO: ?format=...\n\n\t// all 404s\n\t{\n\t\tnotFoundPaths := []string{\n\t\t\t\"p/slug3\",\n\t\t\t\"p\",\n\t\t\t\"p/\",\n\t\t\t\"x/x\",\n\t\t\t\"t\",\n\t\t\t\"t/\",\n\t\t\t\"/\",\n\t\t\t\"p/slug1/\",\n\t\t}\n\t\tfor _, notFoundPath := range notFoundPaths {\n\t\t\tgot := Render(notFoundPath)\n\t\t\texpected := \"404\"\n\t\t\tif got != expected {\n\t\t\t\tt.Errorf(\"path %q: expected %q, got %q.\", notFoundPath, expected, got)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc assertMDEquals(t *testing.T, got, expected string) {\n\tt.Helper()\n\texpected = strings.TrimSpace(expected)\n\tgot = strings.TrimSpace(got)\n\tif expected != got {\n\t\tt.Errorf(\"invalid render output.\\nexpected %q.\\ngot %q.\", expected, got)\n\t}\n}\n"},{"name":"util.gno","body":"package gnoblog\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xkdo5CNSY/K7SXthZTAJllQj1Y1HZlnguYhF+wM0PVdhTIcWv+OJZXcoUUEnkQie7qUqdghDLQOF57Y8o5wyBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnoblog","path":"gno.land/r/gnoland/blog","files":[{"name":"admin.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tcommenterList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc NewPostExecutor(slug, title, body, publicationDate, authors, tags string) dao.Executor {\n\tcallback := func() error {\n\t\taddPost(std.PrevRealm().Addr(), slug, title, body, publicationDate, authors, tags)\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\tcaller := std.GetOrigCaller()\n\taddPost(caller, slug, title, body, publicationDate, authors, tags)\n}\n\nfunc addPost(caller std.Address, slug, title, body, publicationDate, authors, tags string) {\n\tvar tagList []string\n\tif tags != \"\" {\n\t\ttagList = strings.Split(tags, \",\")\n\t}\n\tvar authorList []string\n\tif authors != \"\" {\n\t\tauthorList = strings.Split(authors, \",\")\n\t}\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModRemovePost(slug string) {\n\tassertIsModerator()\n\n\tb.RemovePost(slug)\n}\n\nfunc ModAddCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), true)\n}\n\nfunc ModDelCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc ModDelComment(slug string, index int) {\n\tassertIsModerator()\n\n\terr := b.GetPost(slug).DeleteComment(index)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc isCommenter(addr std.Address) bool {\n\t_, found := commenterList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertIsCommenter() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) || isCommenter(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"gnoblog.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/blog\"\n)\n\nvar b = \u0026blog.Blog{\n\tTitle: \"gno.land's blog\",\n\tPrefix: \"/r/gnoland/blog:\",\n}\n\nfunc AddComment(postSlug, comment string) {\n\tassertIsCommenter()\n\tassertNotInPause()\n\n\tcaller := std.GetOrigCaller()\n\terr := b.GetPost(postSlug).AddComment(caller, comment)\n\tcheckErr(err)\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n\nfunc RenderLastPostsWidget(limit int) string {\n\treturn b.RenderLastPostsWidget(limit)\n}\n\nfunc PostExists(slug string) bool {\n\tif b.GetPost(slug) == nil {\n\t\treturn false\n\t}\n\treturn true\n}\n"},{"name":"gnoblog_test.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tstd.TestSetOrigCaller(std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"))\n\n\tauthor := std.GetOrigCaller()\n\n\t// by default, no posts.\n\t{\n\t\tgot := Render(\"\")\n\t\texpected := `\n# gno.land's blog\n\nNo posts.\n`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// create two posts, list post.\n\t{\n\t\tModAddPost(\"slug1\", \"title1\", \"body1\", \"2022-05-20T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\t\tModAddPost(\"slug2\", \"title2\", \"body2\", \"2022-05-20T13:17:23Z\", \"moul\", \"tag1,tag3\")\n\t\tgot := Render(\"\")\n\t\texpected := `\n\t# gno.land's blog\n\n\u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n\n### [title2](/r/gnoland/blog:p/slug2)\n 20 May 2022\n\u003c/div\u003e\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// view post.\n\t{\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\n\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003c/details\u003e\n\u003c/main\u003e\n\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// list by tags.\n\t{\n\t\tgot := Render(\"t/invalid\")\n\t\texpected := \"# [gno.land's blog](/r/gnoland/blog:) / t / invalid\\n\\nNo posts.\"\n\t\tassertMDEquals(t, got, expected)\n\n\t\tgot = Render(\"t/tag2\")\n\t\texpected = `\n# [gno.land's blog](/r/gnoland/blog:) / t / tag2\n\n\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// add comments.\n\t{\n\t\tAddComment(\"slug1\", \"comment1\")\n\t\tAddComment(\"slug2\", \"comment2\")\n\t\tAddComment(\"slug1\", \"comment3\")\n\t\tAddComment(\"slug2\", \"comment4\")\n\t\tAddComment(\"slug1\", \"comment5\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// edit post.\n\t{\n\t\toldTitle := \"title2\"\n\t\toldDate := \"2022-05-20T13:17:23Z\"\n\n\t\tModEditPost(\"slug2\", oldTitle, \"body2++\", oldDate, \"manfred\", \"tag1,tag4\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2++\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag4](/r/gnoland/blog:t/tag4)\n\nWritten by manfred on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\n\t\thome := Render(\"\")\n\n\t\tif strings.Count(home, oldTitle) != 1 {\n\t\t\tt.Errorf(\"post not edited properly\")\n\t\t}\n\t\t// Edits work everything except title, slug, and publicationDate\n\t\t// Edits to the above will cause duplication on the blog home page\n\t}\n\n\t{ // Test remove functionality\n\t\ttitle := \"example title\"\n\t\tslug := \"testSlug1\"\n\t\tModAddPost(slug, title, \"body1\", \"2022-05-25T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\n\t\tgot := Render(\"\")\n\n\t\tif !strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not added properly\")\n\t\t}\n\n\t\tpostRender := Render(\"p/\" + slug)\n\n\t\tif !strings.Contains(postRender, title) {\n\t\t\tt.Errorf(\"post not rendered properly\")\n\t\t}\n\n\t\tModRemovePost(slug)\n\t\tgot = Render(\"\")\n\n\t\tif strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not removed\")\n\t\t}\n\n\t\tpostRender = Render(\"p/\" + slug)\n\n\t\tassertMDEquals(t, postRender, \"404\")\n\t}\n\n\t// TODO: pagination.\n\t// TODO: ?format=...\n\n\t// all 404s\n\t{\n\t\tnotFoundPaths := []string{\n\t\t\t\"p/slug3\",\n\t\t\t\"p\",\n\t\t\t\"p/\",\n\t\t\t\"x/x\",\n\t\t\t\"t\",\n\t\t\t\"t/\",\n\t\t\t\"/\",\n\t\t\t\"p/slug1/\",\n\t\t}\n\t\tfor _, notFoundPath := range notFoundPaths {\n\t\t\tgot := Render(notFoundPath)\n\t\t\texpected := \"404\"\n\t\t\tif got != expected {\n\t\t\t\tt.Errorf(\"path %q: expected %q, got %q.\", notFoundPath, expected, got)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc assertMDEquals(t *testing.T, got, expected string) {\n\tt.Helper()\n\texpected = strings.TrimSpace(expected)\n\tgot = strings.TrimSpace(got)\n\tif expected != got {\n\t\tt.Errorf(\"invalid render output.\\nexpected %q.\\ngot %q.\", expected, got)\n\t}\n}\n"},{"name":"util.gno","body":"package gnoblog\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xkdo5CNSY/K7SXthZTAJllQj1Y1HZlnguYhF+wM0PVdhTIcWv+OJZXcoUUEnkQie7qUqdghDLQOF57Y8o5wyBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnoblog","path":"gno.land/r/gnoland/blog","files":[{"name":"admin.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tcommenterList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc NewPostExecutor(slug, title, body, publicationDate, authors, tags string) dao.Executor {\n\tcallback := func() error {\n\t\taddPost(std.PrevRealm().Addr(), slug, title, body, publicationDate, authors, tags)\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\tcaller := std.GetOrigCaller()\n\taddPost(caller, slug, title, body, publicationDate, authors, tags)\n}\n\nfunc addPost(caller std.Address, slug, title, body, publicationDate, authors, tags string) {\n\tvar tagList []string\n\tif tags != \"\" {\n\t\ttagList = strings.Split(tags, \",\")\n\t}\n\tvar authorList []string\n\tif authors != \"\" {\n\t\tauthorList = strings.Split(authors, \",\")\n\t}\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModRemovePost(slug string) {\n\tassertIsModerator()\n\n\tb.RemovePost(slug)\n}\n\nfunc ModAddCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), true)\n}\n\nfunc ModDelCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc ModDelComment(slug string, index int) {\n\tassertIsModerator()\n\n\terr := b.GetPost(slug).DeleteComment(index)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc isCommenter(addr std.Address) bool {\n\t_, found := commenterList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertIsCommenter() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) || isCommenter(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"gnoblog.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/blog\"\n)\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Gnoland's Blog\",\n\tPrefix: \"/r/gnoland/blog:\",\n}\n\nfunc AddComment(postSlug, comment string) {\n\tassertIsCommenter()\n\tassertNotInPause()\n\n\tcaller := std.GetOrigCaller()\n\terr := b.GetPost(postSlug).AddComment(caller, comment)\n\tcheckErr(err)\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n\nfunc RenderLastPostsWidget(limit int) string {\n\treturn b.RenderLastPostsWidget(limit)\n}\n\nfunc PostExists(slug string) bool {\n\tif b.GetPost(slug) == nil {\n\t\treturn false\n\t}\n\treturn true\n}\n"},{"name":"gnoblog_test.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tstd.TestSetOrigCaller(std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"))\n\n\tauthor := std.GetOrigCaller()\n\n\t// by default, no posts.\n\t{\n\t\tgot := Render(\"\")\n\t\texpected := `\n# Gnoland's Blog\n\nNo posts.\n`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// create two posts, list post.\n\t{\n\t\tModAddPost(\"slug1\", \"title1\", \"body1\", \"2022-05-20T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\t\tModAddPost(\"slug2\", \"title2\", \"body2\", \"2022-05-20T13:17:23Z\", \"moul\", \"tag1,tag3\")\n\t\tgot := Render(\"\")\n\t\texpected := `\n\t# Gnoland's Blog\n\n\u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n\n### [title2](/r/gnoland/blog:p/slug2)\n 20 May 2022\n\u003c/div\u003e\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// view post.\n\t{\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\n\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to Gnoland's Blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003c/details\u003e\n\u003c/main\u003e\n\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// list by tags.\n\t{\n\t\tgot := Render(\"t/invalid\")\n\t\texpected := \"# [Gnoland's Blog](/r/gnoland/blog:) / t / invalid\\n\\nNo posts.\"\n\t\tassertMDEquals(t, got, expected)\n\n\t\tgot = Render(\"t/tag2\")\n\t\texpected = `\n# [Gnoland's Blog](/r/gnoland/blog:) / t / tag2\n\n\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// add comments.\n\t{\n\t\tAddComment(\"slug1\", \"comment1\")\n\t\tAddComment(\"slug2\", \"comment2\")\n\t\tAddComment(\"slug1\", \"comment3\")\n\t\tAddComment(\"slug2\", \"comment4\")\n\t\tAddComment(\"slug1\", \"comment5\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to Gnoland's Blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// edit post.\n\t{\n\t\toldTitle := \"title2\"\n\t\toldDate := \"2022-05-20T13:17:23Z\"\n\n\t\tModEditPost(\"slug2\", oldTitle, \"body2++\", oldDate, \"manfred\", \"tag1,tag4\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2++\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag4](/r/gnoland/blog:t/tag4)\n\nWritten by manfred on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to Gnoland's Blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\n\t\thome := Render(\"\")\n\n\t\tif strings.Count(home, oldTitle) != 1 {\n\t\t\tt.Errorf(\"post not edited properly\")\n\t\t}\n\t\t// Edits work everything except title, slug, and publicationDate\n\t\t// Edits to the above will cause duplication on the blog home page\n\t}\n\n\t{ // Test remove functionality\n\t\ttitle := \"example title\"\n\t\tslug := \"testSlug1\"\n\t\tModAddPost(slug, title, \"body1\", \"2022-05-25T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\n\t\tgot := Render(\"\")\n\n\t\tif !strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not added properly\")\n\t\t}\n\n\t\tpostRender := Render(\"p/\" + slug)\n\n\t\tif !strings.Contains(postRender, title) {\n\t\t\tt.Errorf(\"post not rendered properly\")\n\t\t}\n\n\t\tModRemovePost(slug)\n\t\tgot = Render(\"\")\n\n\t\tif strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not removed\")\n\t\t}\n\n\t\tpostRender = Render(\"p/\" + slug)\n\n\t\tassertMDEquals(t, postRender, \"404\")\n\t}\n\n\t// TODO: pagination.\n\t// TODO: ?format=...\n\n\t// all 404s\n\t{\n\t\tnotFoundPaths := []string{\n\t\t\t\"p/slug3\",\n\t\t\t\"p\",\n\t\t\t\"p/\",\n\t\t\t\"x/x\",\n\t\t\t\"t\",\n\t\t\t\"t/\",\n\t\t\t\"/\",\n\t\t\t\"p/slug1/\",\n\t\t}\n\t\tfor _, notFoundPath := range notFoundPaths {\n\t\t\tgot := Render(notFoundPath)\n\t\t\texpected := \"404\"\n\t\t\tif got != expected {\n\t\t\t\tt.Errorf(\"path %q: expected %q, got %q.\", notFoundPath, expected, got)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc assertMDEquals(t *testing.T, got, expected string) {\n\tt.Helper()\n\texpected = strings.TrimSpace(expected)\n\tgot = strings.TrimSpace(got)\n\tif expected != got {\n\t\tt.Errorf(\"invalid render output.\\nexpected %q.\\ngot %q.\", expected, got)\n\t}\n}\n"},{"name":"util.gno","body":"package gnoblog\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FrmGKPcYLfk0X4Tt8vMIkb6iqmG5ZltyNMOdxKWuwi1AatTlGqzeOK33DOt2ZoQOtGwzZ+/GHKnaW3cI7+j+Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnode","path":"gno.land/p/demo/gnode","files":[{"name":"gnode.gno","body":"package gnode\n\n// XXX what about Gnodes signing on behalf of others?\n// XXX like a multi-sig of Gnodes?\n\ntype Name string\n\ntype Gnode interface {\n\t//----------------------------------------\n\t// Basic properties\n\tGetName() Name\n\n\t//----------------------------------------\n\t// Affiliate Gnodes\n\tNumAffiliates() int\n\tGetAffiliates(Name) Affiliate\n\tAddAffiliate(Affiliate) error // must be affiliated\n\tRemAffiliate(Name) error // must have become unaffiliated\n\n\t//----------------------------------------\n\t// Signing\n\tNumSignedDocuments() int\n\tGetSignedDocument(idx int) Document\n\tSignDocument(doc Document) (int, error) // index relative to signer\n\n\t//----------------------------------------\n\t// Rendering\n\tRenderLines() []string\n}\n\ntype Affiliate struct {\n\tType string\n\tGnode Gnode\n\tTags []string\n}\n\ntype MyGnode struct {\n\tName\n\t// Owners // voting set, something that gives authority of action.\n\t// Treasury //\n\t// Affiliates //\n\t// Board // discussions\n\t// Data // XXX ?\n}\n\ntype Affiliates []*Affiliate\n\n// Documents are equal if they compare equal.\n// NOTE: requires all fields to be comparable.\ntype Document struct {\n\tAuthors string\n\t// Timestamp\n\t// Body\n\t// Attachments\n}\n\n// ACTIONS\n\n// * Lend tokens\n// * Pay tokens\n// * Administrate transferrable and non-transferrable tokens\n// * Sum tokens\n// * Passthrough dependencies\n// * Code\n// * ...\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9HaOfWgSDCbQ6s24O4sBImCjLjhSiW9PVG4up0wKmWrybvBdxbxKxFFdmnU28k3XWtoGlFIBCDnDa6Fbi5N2CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnode","path":"gno.land/p/demo/gnode","files":[{"name":"gnode.gno","body":"package gnode\n\n// XXX what about Gnodes signing on behalf of others?\n// XXX like a multi-sig of Gnodes?\n\ntype Name string\n\ntype Gnode interface {\n\t//----------------------------------------\n\t// Basic properties\n\tGetName() Name\n\n\t//----------------------------------------\n\t// Affiliate Gnodes\n\tNumAffiliates() int\n\tGetAffiliates(Name) Affiliate\n\tAddAffiliate(Affiliate) error // must be affiliated\n\tRemAffiliate(Name) error // must have become unaffiliated\n\n\t//----------------------------------------\n\t// Signing\n\tNumSignedDocuments() int\n\tGetSignedDocument(idx int) Document\n\tSignDocument(doc Document) (int, error) // index relative to signer\n\n\t//----------------------------------------\n\t// Rendering\n\tRenderLines() []string\n}\n\ntype Affiliate struct {\n\tType string\n\tGnode Gnode\n\tTags []string\n}\n\ntype MyGnode struct {\n\tName\n\t// Owners // voting set, something that gives authority of action.\n\t// Treasury //\n\t// Affiliates //\n\t// Board // discussions\n\t// Data // XXX ?\n}\n\ntype Affiliates []*Affiliate\n\n// Documents are equal if they compare equal.\n// NOTE: requires all fields to be comparable.\ntype Document struct {\n\tAuthors string\n\t// Timestamp\n\t// Body\n\t// Attachments\n}\n\n// ACTIONS\n\n// * Lend tokens\n// * Pay tokens\n// * Administrate transferrable and non-transferrable tokens\n// * Sum tokens\n// * Passthrough dependencies\n// * Code\n// * ...\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9HaOfWgSDCbQ6s24O4sBImCjLjhSiW9PVG4up0wKmWrybvBdxbxKxFFdmnU28k3XWtoGlFIBCDnDa6Fbi5N2CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnode","path":"gno.land/p/demo/gnode","files":[{"name":"gnode.gno","body":"package gnode\n\n// XXX what about Gnodes signing on behalf of others?\n// XXX like a multi-sig of Gnodes?\n\ntype Name string\n\ntype Gnode interface {\n\t//----------------------------------------\n\t// Basic properties\n\tGetName() Name\n\n\t//----------------------------------------\n\t// Affiliate Gnodes\n\tNumAffiliates() int\n\tGetAffiliates(Name) Affiliate\n\tAddAffiliate(Affiliate) error // must be affiliated\n\tRemAffiliate(Name) error // must have become unaffiliated\n\n\t//----------------------------------------\n\t// Signing\n\tNumSignedDocuments() int\n\tGetSignedDocument(idx int) Document\n\tSignDocument(doc Document) (int, error) // index relative to signer\n\n\t//----------------------------------------\n\t// Rendering\n\tRenderLines() []string\n}\n\ntype Affiliate struct {\n\tType string\n\tGnode Gnode\n\tTags []string\n}\n\ntype MyGnode struct {\n\tName\n\t// Owners // voting set, something that gives authority of action.\n\t// Treasury //\n\t// Affiliates //\n\t// Board // discussions\n\t// Data // XXX ?\n}\n\ntype Affiliates []*Affiliate\n\n// Documents are equal if they compare equal.\n// NOTE: requires all fields to be comparable.\ntype Document struct {\n\tAuthors string\n\t// Timestamp\n\t// Body\n\t// Attachments\n}\n\n// ACTIONS\n\n// * Lend tokens\n// * Pay tokens\n// * Administrate transferrable and non-transferrable tokens\n// * Sum tokens\n// * Passthrough dependencies\n// * Code\n// * ...\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9HaOfWgSDCbQ6s24O4sBImCjLjhSiW9PVG4up0wKmWrybvBdxbxKxFFdmnU28k3XWtoGlFIBCDnDa6Fbi5N2CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnoface","path":"gno.land/r/demo/art/gnoface","files":[{"name":"gnoface.gno","body":"package gnoface\n\nimport (\n\t\"math/rand\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(path string) string {\n\tseed := uint64(entropy.New().Value())\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\ts, err := strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tseed = uint64(s)\n\t}\n\n\toutput := ufmt.Sprintf(\"Gnoface #%d\\n\", seed)\n\toutput += \"```\\n\" + Draw(seed) + \"```\\n\"\n\treturn output\n}\n\nfunc Draw(seed uint64) string {\n\tvar (\n\t\thairs = []string{\n\t\t\t\" s\",\n\t\t\t\" .......\",\n\t\t\t\" s s s\",\n\t\t\t\" /\\\\ /\\\\\",\n\t\t\t\" |||||||\",\n\t\t}\n\t\theadtop = []string{\n\t\t\t\" /-------\\\\\",\n\t\t\t\" /~~~~~~~\\\\\",\n\t\t\t\" /|||||||\\\\\",\n\t\t\t\" ////////\\\\\",\n\t\t\t\" |||||||||\",\n\t\t\t\" /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\n\t\t}\n\t\theadspace = []string{\n\t\t\t\" | |\",\n\t\t}\n\t\teyebrow = []string{\n\t\t\t\"~\",\n\t\t\t\"*\",\n\t\t\t\"_\",\n\t\t\t\".\",\n\t\t}\n\t\tear = []string{\n\t\t\t\"o\",\n\t\t\t\" \",\n\t\t\t\"D\",\n\t\t\t\"O\",\n\t\t\t\"\u003c\",\n\t\t\t\"\u003e\",\n\t\t\t\".\",\n\t\t\t\"|\",\n\t\t\t\")\",\n\t\t\t\"(\",\n\t\t}\n\t\teyesmiddle = []string{\n\t\t\t\"| o o |\",\n\t\t\t\"| o _ |\",\n\t\t\t\"| _ o |\",\n\t\t\t\"| . . |\",\n\t\t\t\"| O O |\",\n\t\t\t\"| v v |\",\n\t\t\t\"| X X |\",\n\t\t\t\"| x X |\",\n\t\t\t\"| X D |\",\n\t\t\t\"| ~ ~ |\",\n\t\t}\n\t\tnose = []string{\n\t\t\t\" | o |\",\n\t\t\t\" | O |\",\n\t\t\t\" | V |\",\n\t\t\t\" | L |\",\n\t\t\t\" | C |\",\n\t\t\t\" | ~ |\",\n\t\t\t\" | . . |\",\n\t\t\t\" | . |\",\n\t\t}\n\t\tmouth = []string{\n\t\t\t\" | __/ |\",\n\t\t\t\" | \\\\_/ |\",\n\t\t\t\" | . |\",\n\t\t\t\" | ___ |\",\n\t\t\t\" | ~~~ |\",\n\t\t\t\" | === |\",\n\t\t\t\" | \u003c=\u003e |\",\n\t\t}\n\t\theadbottom = []string{\n\t\t\t\" \\\\-------/\",\n\t\t\t\" \\\\~~~~~~~/\",\n\t\t\t\" \\\\_______/\",\n\t\t}\n\t)\n\n\tr := rand.New(rand.NewPCG(seed, 0xdeadbeef))\n\n\treturn pick(r, hairs) + \"\\n\" +\n\t\tpick(r, headtop) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\t\" | \" + pick(r, eyebrow) + \" \" + pick(r, eyebrow) + \" |\\n\" +\n\t\tpick(r, ear) + pick(r, eyesmiddle) + pick(r, ear) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, nose) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, mouth) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, headbottom) + \"\\n\"\n}\n\nfunc pick(r *rand.Rand, slice []string) string {\n\treturn slice[r.IntN(len(slice))]\n}\n\n// based on https://github.com/moul/pipotron/blob/master/dict/ascii-face.yml\n"},{"name":"gnoface_test.gno","body":"package gnoface\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestDraw(t *testing.T) {\n\tcases := []struct {\n\t\tseed uint64\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tseed: 42,\n\t\t\texpected: `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 1337,\n\t\t\texpected: `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 123456789,\n\t\t\texpected: `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n`[1:],\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tname := ufmt.Sprintf(\"%d\", tc.seed)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Draw(tc.seed)\n\t\t\tuassert.Equal(t, string(tc.expected), got)\n\t\t})\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"42\",\n\t\t\texpected: \"Gnoface #42\\n```\" + `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"1337\",\n\t\t\texpected: \"Gnoface #1337\\n```\" + `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"123456789\",\n\t\t\texpected: \"Gnoface #123456789\\n```\" + `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n` + \"```\\n\",\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D5s5jt3/PgXBD638zTeDNMFOsT3zHLfu38QQGKrqELv4Mb5xj+Qc6N15lL16UXHp3AXWdZfDzNj9UCqijXZTBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnoface","path":"gno.land/r/demo/art/gnoface","files":[{"name":"gnoface.gno","body":"package gnoface\n\nimport (\n\t\"math/rand\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(path string) string {\n\tseed := uint64(entropy.New().Value())\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\ts, err := strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tseed = uint64(s)\n\t}\n\n\toutput := ufmt.Sprintf(\"Gnoface #%d\\n\", seed)\n\toutput += \"```\\n\" + Draw(seed) + \"```\\n\"\n\treturn output\n}\n\nfunc Draw(seed uint64) string {\n\tvar (\n\t\thairs = []string{\n\t\t\t\" s\",\n\t\t\t\" .......\",\n\t\t\t\" s s s\",\n\t\t\t\" /\\\\ /\\\\\",\n\t\t\t\" |||||||\",\n\t\t}\n\t\theadtop = []string{\n\t\t\t\" /-------\\\\\",\n\t\t\t\" /~~~~~~~\\\\\",\n\t\t\t\" /|||||||\\\\\",\n\t\t\t\" ////////\\\\\",\n\t\t\t\" |||||||||\",\n\t\t\t\" /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\n\t\t}\n\t\theadspace = []string{\n\t\t\t\" | |\",\n\t\t}\n\t\teyebrow = []string{\n\t\t\t\"~\",\n\t\t\t\"*\",\n\t\t\t\"_\",\n\t\t\t\".\",\n\t\t}\n\t\tear = []string{\n\t\t\t\"o\",\n\t\t\t\" \",\n\t\t\t\"D\",\n\t\t\t\"O\",\n\t\t\t\"\u003c\",\n\t\t\t\"\u003e\",\n\t\t\t\".\",\n\t\t\t\"|\",\n\t\t\t\")\",\n\t\t\t\"(\",\n\t\t}\n\t\teyesmiddle = []string{\n\t\t\t\"| o o |\",\n\t\t\t\"| o _ |\",\n\t\t\t\"| _ o |\",\n\t\t\t\"| . . |\",\n\t\t\t\"| O O |\",\n\t\t\t\"| v v |\",\n\t\t\t\"| X X |\",\n\t\t\t\"| x X |\",\n\t\t\t\"| X D |\",\n\t\t\t\"| ~ ~ |\",\n\t\t}\n\t\tnose = []string{\n\t\t\t\" | o |\",\n\t\t\t\" | O |\",\n\t\t\t\" | V |\",\n\t\t\t\" | L |\",\n\t\t\t\" | C |\",\n\t\t\t\" | ~ |\",\n\t\t\t\" | . . |\",\n\t\t\t\" | . |\",\n\t\t}\n\t\tmouth = []string{\n\t\t\t\" | __/ |\",\n\t\t\t\" | \\\\_/ |\",\n\t\t\t\" | . |\",\n\t\t\t\" | ___ |\",\n\t\t\t\" | ~~~ |\",\n\t\t\t\" | === |\",\n\t\t\t\" | \u003c=\u003e |\",\n\t\t}\n\t\theadbottom = []string{\n\t\t\t\" \\\\-------/\",\n\t\t\t\" \\\\~~~~~~~/\",\n\t\t\t\" \\\\_______/\",\n\t\t}\n\t)\n\n\tr := rand.New(rand.NewPCG(seed, 0xdeadbeef))\n\n\treturn pick(r, hairs) + \"\\n\" +\n\t\tpick(r, headtop) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\t\" | \" + pick(r, eyebrow) + \" \" + pick(r, eyebrow) + \" |\\n\" +\n\t\tpick(r, ear) + pick(r, eyesmiddle) + pick(r, ear) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, nose) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, mouth) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, headbottom) + \"\\n\"\n}\n\nfunc pick(r *rand.Rand, slice []string) string {\n\treturn slice[r.IntN(len(slice))]\n}\n\n// based on https://github.com/moul/pipotron/blob/master/dict/ascii-face.yml\n"},{"name":"gnoface_test.gno","body":"package gnoface\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestDraw(t *testing.T) {\n\tcases := []struct {\n\t\tseed uint64\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tseed: 42,\n\t\t\texpected: `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 1337,\n\t\t\texpected: `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 123456789,\n\t\t\texpected: `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n`[1:],\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tname := ufmt.Sprintf(\"%d\", tc.seed)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Draw(tc.seed)\n\t\t\tuassert.Equal(t, string(tc.expected), got)\n\t\t})\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"42\",\n\t\t\texpected: \"Gnoface #42\\n```\" + `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"1337\",\n\t\t\texpected: \"Gnoface #1337\\n```\" + `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"123456789\",\n\t\t\texpected: \"Gnoface #123456789\\n```\" + `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n` + \"```\\n\",\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D5s5jt3/PgXBD638zTeDNMFOsT3zHLfu38QQGKrqELv4Mb5xj+Qc6N15lL16UXHp3AXWdZfDzNj9UCqijXZTBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnoface","path":"gno.land/r/demo/art/gnoface","files":[{"name":"gnoface.gno","body":"package gnoface\n\nimport (\n\t\"math/rand\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(path string) string {\n\tseed := uint64(entropy.New().Value())\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\ts, err := strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tseed = uint64(s)\n\t}\n\n\toutput := ufmt.Sprintf(\"Gnoface #%d\\n\", seed)\n\toutput += \"```\\n\" + Draw(seed) + \"```\\n\"\n\treturn output\n}\n\nfunc Draw(seed uint64) string {\n\tvar (\n\t\thairs = []string{\n\t\t\t\" s\",\n\t\t\t\" .......\",\n\t\t\t\" s s s\",\n\t\t\t\" /\\\\ /\\\\\",\n\t\t\t\" |||||||\",\n\t\t}\n\t\theadtop = []string{\n\t\t\t\" /-------\\\\\",\n\t\t\t\" /~~~~~~~\\\\\",\n\t\t\t\" /|||||||\\\\\",\n\t\t\t\" ////////\\\\\",\n\t\t\t\" |||||||||\",\n\t\t\t\" /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\n\t\t}\n\t\theadspace = []string{\n\t\t\t\" | |\",\n\t\t}\n\t\teyebrow = []string{\n\t\t\t\"~\",\n\t\t\t\"*\",\n\t\t\t\"_\",\n\t\t\t\".\",\n\t\t}\n\t\tear = []string{\n\t\t\t\"o\",\n\t\t\t\" \",\n\t\t\t\"D\",\n\t\t\t\"O\",\n\t\t\t\"\u003c\",\n\t\t\t\"\u003e\",\n\t\t\t\".\",\n\t\t\t\"|\",\n\t\t\t\")\",\n\t\t\t\"(\",\n\t\t}\n\t\teyesmiddle = []string{\n\t\t\t\"| o o |\",\n\t\t\t\"| o _ |\",\n\t\t\t\"| _ o |\",\n\t\t\t\"| . . |\",\n\t\t\t\"| O O |\",\n\t\t\t\"| v v |\",\n\t\t\t\"| X X |\",\n\t\t\t\"| x X |\",\n\t\t\t\"| X D |\",\n\t\t\t\"| ~ ~ |\",\n\t\t}\n\t\tnose = []string{\n\t\t\t\" | o |\",\n\t\t\t\" | O |\",\n\t\t\t\" | V |\",\n\t\t\t\" | L |\",\n\t\t\t\" | C |\",\n\t\t\t\" | ~ |\",\n\t\t\t\" | . . |\",\n\t\t\t\" | . |\",\n\t\t}\n\t\tmouth = []string{\n\t\t\t\" | __/ |\",\n\t\t\t\" | \\\\_/ |\",\n\t\t\t\" | . |\",\n\t\t\t\" | ___ |\",\n\t\t\t\" | ~~~ |\",\n\t\t\t\" | === |\",\n\t\t\t\" | \u003c=\u003e |\",\n\t\t}\n\t\theadbottom = []string{\n\t\t\t\" \\\\-------/\",\n\t\t\t\" \\\\~~~~~~~/\",\n\t\t\t\" \\\\_______/\",\n\t\t}\n\t)\n\n\tr := rand.New(rand.NewPCG(seed, 0xdeadbeef))\n\n\treturn pick(r, hairs) + \"\\n\" +\n\t\tpick(r, headtop) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\t\" | \" + pick(r, eyebrow) + \" \" + pick(r, eyebrow) + \" |\\n\" +\n\t\tpick(r, ear) + pick(r, eyesmiddle) + pick(r, ear) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, nose) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, mouth) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, headbottom) + \"\\n\"\n}\n\nfunc pick(r *rand.Rand, slice []string) string {\n\treturn slice[r.IntN(len(slice))]\n}\n\n// based on https://github.com/moul/pipotron/blob/master/dict/ascii-face.yml\n"},{"name":"gnoface_test.gno","body":"package gnoface\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestDraw(t *testing.T) {\n\tcases := []struct {\n\t\tseed uint64\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tseed: 42,\n\t\t\texpected: `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 1337,\n\t\t\texpected: `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 123456789,\n\t\t\texpected: `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n`[1:],\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tname := ufmt.Sprintf(\"%d\", tc.seed)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Draw(tc.seed)\n\t\t\tuassert.Equal(t, string(tc.expected), got)\n\t\t})\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"42\",\n\t\t\texpected: \"Gnoface #42\\n```\" + `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"1337\",\n\t\t\texpected: \"Gnoface #1337\\n```\" + `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"123456789\",\n\t\t\texpected: \"Gnoface #123456789\\n```\" + `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n` + \"```\\n\",\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D5s5jt3/PgXBD638zTeDNMFOsT3zHLfu38QQGKrqELv4Mb5xj+Qc6N15lL16UXHp3AXWdZfDzNj9UCqijXZTBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnopages","path":"gno.land/r/gnoland/pages","files":[{"name":"admin.gno","body":"package gnopages\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"page_about.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"about\"\n\ttitle := \"gno.land Is A Platform To Write Smart Contracts In Gno\"\n\t// XXX: description := \"On gno.land, developers write smart contracts and other blockchain apps using Gno without learning a language that’s exclusive to a single ecosystem.\"\n\tbody := `\ngno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\nprogramming language. On gno.land, smart contracts can be uploaded on-chain only by publishing their full source code,\nmaking it trivial to verify the contract or fork it into an improved version. With a system to publish reusable code\nlibraries on-chain, gno.land serves as the “GitHub” of the ecosystem, with realms built using fully transparent,\nauditable code that anyone can inspect and reuse.\n\ngno.land addresses many pressing issues in the blockchain space, starting with the ease of use and intuitiveness of\nsmart contract platforms. Developers can write smart contracts without having to learn a new language that’s exclusive\nto a single ecosystem or limited by design. Go developers can easily port their existing web apps to gno.land or build\nnew ones from scratch, making web3 vastly more accessible.\n\nSecured by Proof of Contribution (PoC), a DAO-managed Proof-of-Authority consensus mechanism, gno.land prioritizes\nfairness and merit, rewarding the people most active on the platform. PoC restructures the financial incentives that\noften corrupt blockchain projects, opting instead to reward contributors for their work based on expertise, commitment, and\nalignment.\n\nOne of our inspirations for gno.land is the gospels, which built a system of moral code that lasted thousands of years.\nBy observing a minimal production implementation, gno.land’s design will endure over time and serve as a reference for\nfuture generations with censorship-resistant tools that improve their understanding of the world.\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:22Z\", nil, nil)\n}\n"},{"name":"page_contribute.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"contribute\"\n\ttitle := \"Contributor Ecosystem: Call for Contributions\"\n\tbody := `\n\ngno.land puts at the center of its identity the contributors that help to create and shape the project into what it is; incentivizing those who contribute the most and help advance its vision. Eventually, contributions will be incentivized directly on-chain; in the meantime, this page serves to illustrate our current off-chain initiatives.\n\ngno.land is still in full-steam development. For now, we're looking for the earliest of adopters; curious to explore a new way to build smart contracts and eager to make an impact. Joining gno.land's development now means you can help to shape the base of its development ecosystem, which will pave the way for the next generation of blockchain programming.\n\nAs an open-source project, we welcome all contributions. On this page you can find some pointers on where to get started; as well as some incentives for the most valuable and important contributions.\n\n## Where to get started\n\nIf you are interested in contributing to gno.land, you can jump on in on our [GitHub monorepo](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md) - where most development happens.\n\nA good place where to start are the issues tagged [\"good first issue\"](https://github.com/gnolang/gno/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). They should allow you to make some impact on the Gno repository while you're still exploring the details of how everything works.\n\n## Gno Bounties\n\nAdditionally, you can look out to help on specific issues labeled as bounties. All contributions will then concur to form your profile for Game of Realms.\n\nThe Gno bounty program is a good way to find interesting challenges in Gno, and get rewarded for helping us advance the project. We will maintain open and rewardable bounties in the gnolang/gno repository, and you can search all available bounties by using the [\"bounty\" label](https://github.com/gnolang/gno/labels/bounty).\n\nRecommendations on participating in the gno.land Bounty Program:\n\n- Identify the bounty you want to work on, and join in the discussion on the issue for anything that is unclear; or where you want to more clearly define the work to be done. At this stage, you can also start working on an initial implementation in your local enviornment.\n- Once you have spent time on the code related to the bounty, we recommend submitting a 'draft' PR as soon as possible.\n - The draft PR doesn't indicate that the bounty has been assigned to you, others are free to work on other draft PRs for the bounty.\n - Make sure to reference the bounty issue on the PR description you're writing.\n - After submitting the 'draft' PR, continue working until you are ready to mark the PR as \"ready for review\".\n - The core team will review the bounty PR submission after the work on the bounty has been completed, and determine if it qualifies for the bounty reward.\n- Ask for clarification early if an element on the requirements or implementation design is unclear.\n - Aside from publishing the PR early, keeping regular updates with the core team on the bounty issue is key to being on the right track.\n - As part of the requirements, you must adhere to the [contributing guidelines](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md); additionally, it is expected that any newly added code or functionality is properly documented, tested and covered, at least in 80% of added code.\n - You're welcome to propose additional features and work on an issue should you envision a plausible expansion or change in scope. The core team may assign a bounty to the additional work, or change the bounty with respect to the changed scope.\n\nYou may make your submission at any time; however we invite you to publish your draft PR very early in the development process. This will make your work public, so you can easily get help by the core team and other community members. Additionally, your work can be continued by other people should you get stuck or no longer be willing to work on the bounty. Likewise, you can continue the abandoned or stuck work that someone else worked on.\n\nDon't fear your work being \"stolen\": if a submission is the result of multiple people's efforts, we will look to split the bounty in a way that is fair and recognises each participant in creating the final outcome. Here are some examples of how that can happen:\n\n- If Alice does most of the work and abandons it; then Bob comes around and finishes the job, then Bob's PR will be merged. But the core team will propose a split like 70% for Alice and 30% for Bob (depending, of course, on the relative effort undertaken by both).\n- If Alice makes a PR that does only 50% of the work outlined in the requirements for the original issue, she will get 50%. Someone can still come up and finish the job; and claim the remaining part.\n\t- If you, for instance, cannot complete the entirety of the task or, as a non-developer, can only contribute a part of the specification/implementation, you may still be awarded a bounty for your input in the contribution.\n- If Alice makes a PR that aside from implementing what's required, also undertakes creating useful tools among the way, she may qualify for an \"outstanding contribution\"; and may be awarded up to 25% more of the original bounty's value. Or she may also ask if the team would be willing to offer a different bounty for the implementation of the tools.\n\nParticipants in the gno.land Bounty Program must meet the legal Terms and Conditions referenced [here](https://docs.google.com/document/d/e/2PACX-1vSUF-JwIXGscrNsc5QBD7Pa6i83mXUGogAEIf1wkeb_w42UgL3Lj6jFKMlNTdwEMUnhsLkjRlhe25K4/pub).\n\n### Bounty sizes\n\nEach bounty is associated with a size, to which corresponds the maximum compensation for the work involved on the bounty. A bounty size may under rare occasion be revisited to a bigger or smaller size; hence why it's important to talk about your proposed solution with the core team ahead of time.\n\nIn some cases, the work associated with a bounty may be outstanding. When that happens, the core team can decide to award up to 25% of the bounty's value to the recipient.\n\nThe value of the bounty, aside from the material completion of the task, considers the involved time in managing the created pull request and iterating on feedback.\n\n\nt-shirt size | expected compensation\n-------------|-----------------------\n[XS] | $ 500\n[S] | $ 1000\n[M] | $ 2000\n[L] | $ 4000\n[XL] | $ 8000\n_[XXL]_ \\* | $ 16000\n_[3XL]_ \\* | $ 32000\n\n[XS]: https://github.com/gnolang/gno/labels/bounty%2FXS\n[S]: https://github.com/gnolang/gno/labels/bounty%2FS\n[M]: https://github.com/gnolang/gno/labels/bounty%2FM\n[L]: https://github.com/gnolang/gno/labels/bounty%2FL\n[XL]: https://github.com/gnolang/gno/labels/bounty%2FXL\n[XXL]: https://github.com/gnolang/gno/labels/bounty%2FXXL\n[3XL]: https://github.com/gnolang/gno/labels/bounty%2F3XL\n\n\\*: XXL and 3XL bounties are exceptional. Almost no issues will have these sizes; most will be broken down into smaller bounties.\n\n## gno.land Grants\n\nThe gno.land grants program is to encourage and support the growth of the gno.land contributor community, and build out the usability of the platform and smart contract library. The program provides financial resources to contributors to explore the Gno tech stack, and build dApps, tooling, infrastructure, products, and smart contract libraries in gno.land.\n\nFor more details on gno.land grants, suggested topics, and how to apply, visit our grants [repository](https://github.com/gnolang/grants). \n\n## Join Game of Realms\n\nGame of Realms is the overarching contributor network of gnomes, currently running off-chain, and will eventually transition on-chain. At this stage, a Game of Realms contribution is comprised of high-impact contributions identified as ['notable contributions'](https://github.com/gnolang/game-of-realms/tree/main/contributors).\n\nThese contributions are not linked to immediate financial rewards, but are notable in nature, in the sense they are a challenge, make a significant addition to the project, and require persistence, with minimal feedback loops from the core team.\n\nThe selection of a notable contribution or the sum of contributions that equal 'notable' is based on the impact it has on the development of the project. For now, it is focused on code contributions, and will evolve over time. The Gno development teams will initially qualify and evaluate notable contributions, and vote off-chain on adding them to the 'notable contributions' folder on GitHub.\n\nYou can always contribute to the project, and all contributions will be noticed. Contributing now is a way to build your personal contributor profile in gno.land early on in the ecosystem, and signal your commitment to the project, the community, and its future.\n\nThere are a variety of ways to make your contributions count:\n\n- Core code contributions\n- Realm and pure package development\n- Validator tooling\n- Developer tooling\n- Tutorials and documentation\n\nTo start, we recommend you create a PR in the Game of Realms [repository](https://github.com/gnolang/game-of-realms) to create your profile page for all your contributions.`\n\n\t_ = b.NewPost(\"\", path, title, body, \"2024-09-05T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_ecosystem.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"ecosystem\"\n\t\ttitle = \"Discover gno.land Ecosystem Projects \u0026 Initiatives\"\n\t\t// XXX: description = \"Dive further into the gno.land ecosystem and discover the core infrastructure, projects, smart contracts, and tooling we’re building.\"\n\t\tbody = `\n### [Gno Playground](https://play.gno.land)\n\nGno Playground is a simple web interface that lets you write, test, and experiment with your Gno code to improve your\nunderstanding of the Gno language. You can share your code, run unit tests, deploy your realms and packages, and execute\nfunctions in your code using the repo.\n\nVisit the playground at [play.gno.land](https://play.gno.land)!\n\n### [Gno Studio Connect](https://gno.studio/connect)\n\nGno Studio Connect provides seamless access to realms, making it simple to explore, interact, and engage\nwith gno.land’s smart contracts through function calls. Connect focuses on function calls, enabling users to interact\nwith any realm’s exposed function(s) on gno.land.\n\nSee your realm interactions in [Gno Studio Connect](https://gno.studio/connect)\n\n### [Gnoscan](https://gnoscan.io)\n\nDeveloped by the Onbloc team, Gnoscan is gno.land’s blockchain explorer. Anyone can use Gnoscan to easily find\ninformation that resides on the gno.land blockchain, such as wallet addresses, TX hashes, blocks, and contracts.\nGnoscan makes our on-chain data easy to read and intuitive to discover.\n\nExplore the gno.land blockchain at [gnoscan.io](https://gnoscan.io)!\n\n### Adena\n\nAdena is a user-friendly non-custodial wallet for gno.land. Open-source and developed by Onbloc, Adena allows gnomes to\ninteract easily with the chain. With an emphasis on UX, Adena is built to handle millions of realms and tokens with a\nhigh-quality interface, support for NFTs and custom tokens, and seamless integration. Install Adena via the [official website](https://www.adena.app/)\n\n### Gnoswap\n\nGnoswap is currently under development and led by the Onbloc team. Gnoswap will be the first DEX on gno.land and is an\nautomated market maker (AMM) protocol written in Gno that allows for permissionless token exchanges on the platform.\n\n### Flippando\n\nFlippando is a simple on-chain memory game, ported from Solidity to Gno, which starts with an empty matrix to flip tiles\non to see what’s underneath. If the tiles match, they remain uncovered; if not, they are briefly shown, and the player\nmust memorize their colors until the entire matrix is uncovered. The end result can be minted as an NFT, which can later\nbe assembled into bigger, more complex NFTs, creating a digital “painting” with the uncovered tiles. Play the game at [Flippando](https://gno.flippando.xyz/flip)\n\n### Gno Native Kit\n\n[Gno Native Kit](https://github.com/gnolang/gnonative) is a framework that allows developers to build and port gno.land (d)apps written in the (d)app's native language.\n\n\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:23Z\", nil, nil)\n}\n"},{"name":"page_gnolang.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"gnolang\"\n\t\ttitle = \"About the Gno, the Language for gno.land\"\n\t\t// TODO fix broken images\n\t\tbody = `\n\n[Gno](https://github.com/gnolang/gno) is an interpretation of the widely-used Go (Golang) programming language for blockchain created by Cosmos co-founder Jae Kwon in 2022 to mark a new era in smart contracting. Gno is ~99% identical to Go, so Go programmers can start coding in Gno right away, with a minimal learning curve. For example, Gno comes with blockchain-specific standard libraries, but any code that doesn’t use blockchain-specific logic can run in Go with minimal processing. Libraries that don’t make sense in the blockchain context, such as network or operating-system access, are not available in Gno. Otherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same.\n\nUnder the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than bytecode as in many virtual machines such as Java, Python, or Wasm. This makes even the GnoVM accessible to any Go programmer. The novel design of the intuitive GnoVM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. Gno is deterministic, auto-persisted, and auto-Merkle-ized, allowing (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\n## How Gno Differs from Go\n\n![Gno and Go differences](static/img/gno-language/go-and-gno.jpg)\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on gno.land are light, simple, more focused, and easily interoperable—a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n![Example of Gno code](static/img/gno-language/code-example.jpg)\n\n## Gno Inherits Go’s Built-in Security Features\n\nGo supports secure programming through exported/non-exported fields, enabling a “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that provides embedding, composability, type-check safety, and garbage collection, helping developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n## Gno vs Solidity\n\nThe most widely-adopted smart contract language today is Ethereum’s EVM-compatible Solidity. With bytecode built from the ground up and Turing complete, Solidity opened up a world of possibilities for decentralized applications (dApps) and there are currently more than 10 million contracts deployed on Ethereum. However, Solidity provides limited tooling and its EVM has a stack limit and computational inefficiencies.\n\nSolidity is designed for one purpose only (writing smart contracts) and is bound by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems. Gno aspires to exceed Solidity on multiple fronts (and other smart contract languages like CosmWasm or Substrate) as every part of the stack is written in Gno. It’s easy for developers to understand the entire system just by studying a relatively small code base.\n\n## Gno Is Essential for the Wider Adoption of Web3\n\nGno makes imports as easy as they are in web2 with runtime-based imports for seamless dependency flow comprehension, and support for complex structs, beyond primitive types. Gno is ultimately cost-effective as dependencies are loaded once, enabling remote function calls as local, and providing automatic and independent per-realm state persistence.\n\nUsing Gno, developers can rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nThe Go language is so well designed that the Gno smart contract system will become the new gold standard for smart contract development and other blockchain applications. As a programming language that is universally adopted, secure, composable, and complete, Gno is essential for the broader adoption of web3 and its sustainable growth.`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:25Z\", nil, nil)\n}\n"},{"name":"page_license.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"license\"\n\t\ttitle = \"Gno Network General Public License\"\n\t\tbody = `Copyright (C) 2024 NewTendermint, LLC\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNO Network General Public License as published by\nNewTendermint, LLC, either version 4 of the License, or (at your option) any\nlater version published by NewTendermint, LLC.\n\nThis program is distributed in the hope that it will be useful, but is provided\nas-is and WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNO Network\nGeneral Public License for more details.\n\nYou should have received a copy of the GNO Network General Public License along\nwith this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAttached below are the terms of the GNO Network General Public License, Version\n4 (a fork of the GNU Affero General Public License 3).\n\n## Additional Terms\n\n### Strong Attribution\n\nIf any of your user interfaces, such as websites and mobile applications, serve\nas the primary point of entry to a platform or blockchain that 1) offers users\nthe ability to upload their own smart contracts to the platform or blockchain,\nand 2) leverages any Covered Work (including the GNO virtual machine) to run\nthose smart contracts on the platform or blockchain (\"Applicable Work\"), then\nthe Applicable Work must prominently link to (1) gno.land or (2) any other URL\ndesignated by NewTendermint, LLC that has not been rejected by the governance of\nthe first chain known as gno.land, provided that the identity of the first chain\nis not ambiguous. In the event the identity of the first chain is ambiguous,\nthen NewTendermint, LLC's designation shall control. Such link must appear\nconspicuously in the header or footer of the Applicable Work, such that all\nusers may learn of gno.land or the URL designated by NewTendermint, LLC.\n\nThis additional attribution requirement shall remain in effect for (1) 7\nyears from the date of publication of the Applicable Work, or (2) 7 years from\nthe date of publication of the Covered Work (including republication of new\nversions), whichever is later, but no later than 12 years after the application\nof this strong attribution requirement to the publication of the Applicable\nWork. For purposes of this Strong Attribution requirement, Covered Work shall\nmean any work that is licensed under the GNO Network General Public License,\nVersion 4 or later, by NewTendermint, LLC.\n\n\n# GNO NETWORK GENERAL PUBLIC LICENSE\n\nVersion 4, 7 May 2024\n\nModified from the GNU AFFERO GENERAL PUBLIC LICENSE.\nGNU is not affiliated with GNO or NewTendermint, LLC.\nCopyright (C) 2022 NewTendermint, LLC.\n\n## Preamble\n\nThe GNO Network General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\nThe licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\nWhen we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\nDevelopers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\nA secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate. Many developers of free software are heartened and\nencouraged by the resulting cooperation. However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\nThe GNO Network General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community. It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server. Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\nThe precise terms and conditions for copying, distribution and\nmodification follow.\n\n## TERMS AND CONDITIONS\n\n### 0. Definitions.\n\n\"This License\" refers to version 4 of the GNO Network General Public License.\n\n\"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n\"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\nTo \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\nA \"covered work\" means either the unmodified Program or a work based\non the Program.\n\nTo \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\nTo \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\nAn interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n### 1. Source Code.\n\nThe \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\nA \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\nThe \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\nThe \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\nThe Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\nThe Corresponding Source for a work in source code form is that\nsame work.\n\n### 2. Basic Permissions.\n\nAll rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\nYou may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\nConveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\nNo covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\nWhen you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n### 4. Conveying Verbatim Copies.\n\nYou may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\nYou may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n### 5. Conveying Modified Source Versions.\n\nYou may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n- a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n- b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n- c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n- d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\nA compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n### 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n- a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n- b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n- c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n- d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n- e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\nA separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\nA \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n\"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\nIf you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\nThe requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\nCorresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n### 7. Additional Terms.\n\n\"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\nWhen you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\nNotwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n- a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n- b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n- c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n- d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n- e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n- f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors; or\n- g) Requiring strong attribution such as notices on any user interfaces\n that run or convey any covered work, such as a prominent link to a URL\n on the header of a website, such that all users of the covered work may\n become aware of the notice, for a period no longer than 20 years.\n\nAll other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\nIf you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\nAdditional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n### 8. Termination.\n\nYou may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\nHowever, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\nMoreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\nTermination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n### 9. Acceptance Not Required for Having Copies.\n\nYou are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n### 10. Automatic Licensing of Downstream Recipients.\n\nEach time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\nAn \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\nYou may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n### 11. Patents.\n\nA \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\nA contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\nEach contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\nIn the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\nIf you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\nIf, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\nA patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\nNothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n### 12. No Surrender of Others' Freedom.\n\nIf conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to simultaneously satisfy your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n### 13. Remote Network Interaction; Use with the GNU General Public License.\n\nNotwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software. This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\nNotwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n### 14. Revised Versions of this License.\n\nNewTendermint LLC may publish revised and/or new versions of\nthe GNO Network General Public License from time to time. Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNO Network General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Gno Software\nFoundation. If the Program does not specify a version number of the\nGNO Network General Public License, you may choose any version ever published\nby NewTendermint LLC.\n\nIf the Program specifies that a proxy can decide which future\nversions of the GNO Network General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\nLater license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n### 15. Disclaimer of Warranty.\n\nTHERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n### 16. Limitation of Liability.\n\nIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n### 17. Interpretation of Sections 15 and 16.\n\nIf the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\nEND OF TERMS AND CONDITIONS\n\n## How to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n \u003cone line to give the program's name and a brief idea of what it does.\u003e\n Copyright (C) \u003cyear\u003e \u003cname of author\u003e\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNO Network General Public License as published by\n NewTendermint LLC, either version 4 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNO Network General Public License for more details.\n\n You should have received a copy of the GNO Network General Public License\n along with this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source. For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code. There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2024-04-22T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_partners.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"partners\"\n\ttitle := \"Partnerships\"\n\tbody := `### Fund and Grants Program\n\nAre you a builder, tinkerer, or researcher? If you’re looking to create awesome dApps, tooling, infrastructure, \nor smart contract libraries on gno.land, you can apply for a grant. The gno.land Ecosystem Fund and Grants program \nprovides financial contributions for individuals and teams to innovate on the platform.\n\nRead more about our Funds and Grants program [here](https://github.com/gnolang/ecosystem-fund-grants).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:27Z\", nil, nil)\n}\n"},{"name":"page_start.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"start\"\n\ttitle := \"Getting Started with Gno\"\n\t// XXX: description := \"\"\n\n\t// TODO: codegen to use README files here\n\n\t/* TODO: port previous message: This is a demo of Gno smart contract programming. This document was\n\tconstructed by Gno onto a smart contract hosted on the data Realm\n\tname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n\t([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\t*/\n\tbody := `## Getting Started with Gno\n\n- [Install Gno Key](/r/demo/boards:testboard/5)\n- TODO: add more links\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:28Z\", nil, nil)\n}\n"},{"name":"page_testnets.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"testnets\"\n\ttitle := \"gno.land Testnet List\"\n\tbody := `\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop) - a rolling testnet\n- [staging.gno.land](https://staging.gno.land) - wiped every commit to monorepo master\n- _[test4.gno.land](https://test4.gno.land) (latest)_\n\nFor a list of RPC endpoints, see the [reference documentation](https://docs.gno.land/reference/rpc-endpoints).\n\n## Local development\n\nSee the \"Getting started\" section in the [official documentation](https://docs.gno.land/getting-started/local-setup).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:29Z\", nil, nil)\n}\n"},{"name":"page_tokenomics.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"tokenomics\"\n\t\ttitle = \"gno.land Tokenomics\"\n\t\t// XXX: description = \"\"\"\n\t\tbody = `Lorem Ipsum`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:30Z\", nil, nil)\n}\n"},{"name":"pages.gno","body":"package gnopages\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/pages\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Gnoland's Pages\",\n\tPrefix: \"/r/gnoland/pages:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"},{"name":"pages_test.gno","body":"package gnopages\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestHome(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"\")\n\texpectedSubtrings := []string{\n\t\t\"/r/gnoland/pages:p/tokenomics\",\n\t\t\"/r/gnoland/pages:p/start\",\n\t\t\"/r/gnoland/pages:p/contribute\",\n\t\t\"/r/gnoland/pages:p/about\",\n\t\t\"/r/gnoland/pages:p/gnolang\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n\nfunc TestAbout(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"p/about\")\n\texpectedSubtrings := []string{\n\t\t\"gno.land Is A Platform To Write Smart Contracts In Gno\",\n\t\t\"gno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\\nprogramming language.\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n"},{"name":"util.gno","body":"package gnopages\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m6vsMNSD8CL7j3xZZFma5hLSP35BdQx55OhzAhhm8qCY+Tzdtj4T67Pt4IP7RQEeGydpK79B3Bebj9+sVPS5Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnopages","path":"gno.land/r/gnoland/pages","files":[{"name":"admin.gno","body":"package gnopages\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"page_about.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"about\"\n\ttitle := \"gno.land Is A Platform To Write Smart Contracts In Gno\"\n\t// XXX: description := \"On gno.land, developers write smart contracts and other blockchain apps using Gno without learning a language that’s exclusive to a single ecosystem.\"\n\tbody := `\ngno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\nprogramming language. On gno.land, smart contracts can be uploaded on-chain only by publishing their full source code,\nmaking it trivial to verify the contract or fork it into an improved version. With a system to publish reusable code\nlibraries on-chain, gno.land serves as the “GitHub” of the ecosystem, with realms built using fully transparent,\nauditable code that anyone can inspect and reuse.\n\ngno.land addresses many pressing issues in the blockchain space, starting with the ease of use and intuitiveness of\nsmart contract platforms. Developers can write smart contracts without having to learn a new language that’s exclusive\nto a single ecosystem or limited by design. Go developers can easily port their existing web apps to gno.land or build\nnew ones from scratch, making web3 vastly more accessible.\n\nSecured by Proof of Contribution (PoC), a DAO-managed Proof-of-Authority consensus mechanism, gno.land prioritizes\nfairness and merit, rewarding the people most active on the platform. PoC restructures the financial incentives that\noften corrupt blockchain projects, opting instead to reward contributors for their work based on expertise, commitment, and\nalignment.\n\nOne of our inspirations for gno.land is the gospels, which built a system of moral code that lasted thousands of years.\nBy observing a minimal production implementation, gno.land’s design will endure over time and serve as a reference for\nfuture generations with censorship-resistant tools that improve their understanding of the world.\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:22Z\", nil, nil)\n}\n"},{"name":"page_contribute.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"contribute\"\n\ttitle := \"Contributor Ecosystem: Call for Contributions\"\n\tbody := `\n\ngno.land puts at the center of its identity the contributors that help to create and shape the project into what it is; incentivizing those who contribute the most and help advance its vision. Eventually, contributions will be incentivized directly on-chain; in the meantime, this page serves to illustrate our current off-chain initiatives.\n\ngno.land is still in full-steam development. For now, we're looking for the earliest of adopters; curious to explore a new way to build smart contracts and eager to make an impact. Joining gno.land's development now means you can help to shape the base of its development ecosystem, which will pave the way for the next generation of blockchain programming.\n\nAs an open-source project, we welcome all contributions. On this page you can find some pointers on where to get started; as well as some incentives for the most valuable and important contributions.\n\n## Where to get started\n\nIf you are interested in contributing to gno.land, you can jump on in on our [GitHub monorepo](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md) - where most development happens.\n\nA good place where to start are the issues tagged [\"good first issue\"](https://github.com/gnolang/gno/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). They should allow you to make some impact on the Gno repository while you're still exploring the details of how everything works.\n\n## Gno Bounties\n\nAdditionally, you can look out to help on specific issues labeled as bounties. All contributions will then concur to form your profile for Game of Realms.\n\nThe Gno bounty program is a good way to find interesting challenges in Gno, and get rewarded for helping us advance the project. We will maintain open and rewardable bounties in the gnolang/gno repository, and you can search all available bounties by using the [\"bounty\" label](https://github.com/gnolang/gno/labels/bounty).\n\nRecommendations on participating in the gno.land Bounty Program:\n\n- Identify the bounty you want to work on, and join in the discussion on the issue for anything that is unclear; or where you want to more clearly define the work to be done. At this stage, you can also start working on an initial implementation in your local enviornment.\n- Once you have spent time on the code related to the bounty, we recommend submitting a 'draft' PR as soon as possible.\n - The draft PR doesn't indicate that the bounty has been assigned to you, others are free to work on other draft PRs for the bounty.\n - Make sure to reference the bounty issue on the PR description you're writing.\n - After submitting the 'draft' PR, continue working until you are ready to mark the PR as \"ready for review\".\n - The core team will review the bounty PR submission after the work on the bounty has been completed, and determine if it qualifies for the bounty reward.\n- Ask for clarification early if an element on the requirements or implementation design is unclear.\n - Aside from publishing the PR early, keeping regular updates with the core team on the bounty issue is key to being on the right track.\n - As part of the requirements, you must adhere to the [contributing guidelines](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md); additionally, it is expected that any newly added code or functionality is properly documented, tested and covered, at least in 80% of added code.\n - You're welcome to propose additional features and work on an issue should you envision a plausible expansion or change in scope. The core team may assign a bounty to the additional work, or change the bounty with respect to the changed scope.\n\nYou may make your submission at any time; however we invite you to publish your draft PR very early in the development process. This will make your work public, so you can easily get help by the core team and other community members. Additionally, your work can be continued by other people should you get stuck or no longer be willing to work on the bounty. Likewise, you can continue the abandoned or stuck work that someone else worked on.\n\nDon't fear your work being \"stolen\": if a submission is the result of multiple people's efforts, we will look to split the bounty in a way that is fair and recognises each participant in creating the final outcome. Here are some examples of how that can happen:\n\n- If Alice does most of the work and abandons it; then Bob comes around and finishes the job, then Bob's PR will be merged. But the core team will propose a split like 70% for Alice and 30% for Bob (depending, of course, on the relative effort undertaken by both).\n- If Alice makes a PR that does only 50% of the work outlined in the requirements for the original issue, she will get 50%. Someone can still come up and finish the job; and claim the remaining part.\n\t- If you, for instance, cannot complete the entirety of the task or, as a non-developer, can only contribute a part of the specification/implementation, you may still be awarded a bounty for your input in the contribution.\n- If Alice makes a PR that aside from implementing what's required, also undertakes creating useful tools among the way, she may qualify for an \"outstanding contribution\"; and may be awarded up to 25% more of the original bounty's value. Or she may also ask if the team would be willing to offer a different bounty for the implementation of the tools.\n\nParticipants in the gno.land Bounty Program must meet the legal Terms and Conditions referenced [here](https://docs.google.com/document/d/e/2PACX-1vSUF-JwIXGscrNsc5QBD7Pa6i83mXUGogAEIf1wkeb_w42UgL3Lj6jFKMlNTdwEMUnhsLkjRlhe25K4/pub).\n\n### Bounty sizes\n\nEach bounty is associated with a size, to which corresponds the maximum compensation for the work involved on the bounty. A bounty size may under rare occasion be revisited to a bigger or smaller size; hence why it's important to talk about your proposed solution with the core team ahead of time.\n\nIn some cases, the work associated with a bounty may be outstanding. When that happens, the core team can decide to award up to 25% of the bounty's value to the recipient.\n\nThe value of the bounty, aside from the material completion of the task, considers the involved time in managing the created pull request and iterating on feedback.\n\n\nt-shirt size | expected compensation\n-------------|-----------------------\n[XS] | $ 500\n[S] | $ 1000\n[M] | $ 2000\n[L] | $ 4000\n[XL] | $ 8000\n_[XXL]_ \\* | $ 16000\n_[3XL]_ \\* | $ 32000\n\n[XS]: https://github.com/gnolang/gno/labels/bounty%2FXS\n[S]: https://github.com/gnolang/gno/labels/bounty%2FS\n[M]: https://github.com/gnolang/gno/labels/bounty%2FM\n[L]: https://github.com/gnolang/gno/labels/bounty%2FL\n[XL]: https://github.com/gnolang/gno/labels/bounty%2FXL\n[XXL]: https://github.com/gnolang/gno/labels/bounty%2FXXL\n[3XL]: https://github.com/gnolang/gno/labels/bounty%2F3XL\n\n\\*: XXL and 3XL bounties are exceptional. Almost no issues will have these sizes; most will be broken down into smaller bounties.\n\n## gno.land Grants\n\nThe gno.land grants program is to encourage and support the growth of the gno.land contributor community, and build out the usability of the platform and smart contract library. The program provides financial resources to contributors to explore the Gno tech stack, and build dApps, tooling, infrastructure, products, and smart contract libraries in gno.land.\n\nFor more details on gno.land grants, suggested topics, and how to apply, visit our grants [repository](https://github.com/gnolang/grants). \n\n## Join Game of Realms\n\nGame of Realms is the overarching contributor network of gnomes, currently running off-chain, and will eventually transition on-chain. At this stage, a Game of Realms contribution is comprised of high-impact contributions identified as ['notable contributions'](https://github.com/gnolang/game-of-realms/tree/main/contributors).\n\nThese contributions are not linked to immediate financial rewards, but are notable in nature, in the sense they are a challenge, make a significant addition to the project, and require persistence, with minimal feedback loops from the core team.\n\nThe selection of a notable contribution or the sum of contributions that equal 'notable' is based on the impact it has on the development of the project. For now, it is focused on code contributions, and will evolve over time. The Gno development teams will initially qualify and evaluate notable contributions, and vote off-chain on adding them to the 'notable contributions' folder on GitHub.\n\nYou can always contribute to the project, and all contributions will be noticed. Contributing now is a way to build your personal contributor profile in gno.land early on in the ecosystem, and signal your commitment to the project, the community, and its future.\n\nThere are a variety of ways to make your contributions count:\n\n- Core code contributions\n- Realm and pure package development\n- Validator tooling\n- Developer tooling\n- Tutorials and documentation\n\nTo start, we recommend you create a PR in the Game of Realms [repository](https://github.com/gnolang/game-of-realms) to create your profile page for all your contributions.`\n\n\t_ = b.NewPost(\"\", path, title, body, \"2024-09-05T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_ecosystem.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"ecosystem\"\n\t\ttitle = \"Discover gno.land Ecosystem Projects \u0026 Initiatives\"\n\t\t// XXX: description = \"Dive further into the gno.land ecosystem and discover the core infrastructure, projects, smart contracts, and tooling we’re building.\"\n\t\tbody = `\n### [Gno Playground](https://play.gno.land)\n\nGno Playground is a simple web interface that lets you write, test, and experiment with your Gno code to improve your\nunderstanding of the Gno language. You can share your code, run unit tests, deploy your realms and packages, and execute\nfunctions in your code using the repo.\n\nVisit the playground at [play.gno.land](https://play.gno.land)!\n\n### [Gno Studio Connect](https://gno.studio/connect)\n\nGno Studio Connect provides seamless access to realms, making it simple to explore, interact, and engage\nwith gno.land’s smart contracts through function calls. Connect focuses on function calls, enabling users to interact\nwith any realm’s exposed function(s) on gno.land.\n\nSee your realm interactions in [Gno Studio Connect](https://gno.studio/connect)\n\n### [Gnoscan](https://gnoscan.io)\n\nDeveloped by the Onbloc team, Gnoscan is gno.land’s blockchain explorer. Anyone can use Gnoscan to easily find\ninformation that resides on the gno.land blockchain, such as wallet addresses, TX hashes, blocks, and contracts.\nGnoscan makes our on-chain data easy to read and intuitive to discover.\n\nExplore the gno.land blockchain at [gnoscan.io](https://gnoscan.io)!\n\n### Adena\n\nAdena is a user-friendly non-custodial wallet for gno.land. Open-source and developed by Onbloc, Adena allows gnomes to\ninteract easily with the chain. With an emphasis on UX, Adena is built to handle millions of realms and tokens with a\nhigh-quality interface, support for NFTs and custom tokens, and seamless integration. Install Adena via the [official website](https://www.adena.app/)\n\n### Gnoswap\n\nGnoswap is currently under development and led by the Onbloc team. Gnoswap will be the first DEX on gno.land and is an\nautomated market maker (AMM) protocol written in Gno that allows for permissionless token exchanges on the platform.\n\n### Flippando\n\nFlippando is a simple on-chain memory game, ported from Solidity to Gno, which starts with an empty matrix to flip tiles\non to see what’s underneath. If the tiles match, they remain uncovered; if not, they are briefly shown, and the player\nmust memorize their colors until the entire matrix is uncovered. The end result can be minted as an NFT, which can later\nbe assembled into bigger, more complex NFTs, creating a digital “painting” with the uncovered tiles. Play the game at [Flippando](https://gno.flippando.xyz/flip)\n\n### Gno Native Kit\n\n[Gno Native Kit](https://github.com/gnolang/gnonative) is a framework that allows developers to build and port gno.land (d)apps written in the (d)app's native language.\n\n\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:23Z\", nil, nil)\n}\n"},{"name":"page_gnolang.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"gnolang\"\n\t\ttitle = \"About the Gno, the Language for gno.land\"\n\t\t// TODO fix broken images\n\t\tbody = `\n\n[Gno](https://github.com/gnolang/gno) is an interpretation of the widely-used Go (Golang) programming language for blockchain created by Cosmos co-founder Jae Kwon in 2022 to mark a new era in smart contracting. Gno is ~99% identical to Go, so Go programmers can start coding in Gno right away, with a minimal learning curve. For example, Gno comes with blockchain-specific standard libraries, but any code that doesn’t use blockchain-specific logic can run in Go with minimal processing. Libraries that don’t make sense in the blockchain context, such as network or operating-system access, are not available in Gno. Otherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same.\n\nUnder the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than bytecode as in many virtual machines such as Java, Python, or Wasm. This makes even the GnoVM accessible to any Go programmer. The novel design of the intuitive GnoVM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. Gno is deterministic, auto-persisted, and auto-Merkle-ized, allowing (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\n## How Gno Differs from Go\n\n![Gno and Go differences](static/img/gno-language/go-and-gno.jpg)\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on gno.land are light, simple, more focused, and easily interoperable—a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n![Example of Gno code](static/img/gno-language/code-example.jpg)\n\n## Gno Inherits Go’s Built-in Security Features\n\nGo supports secure programming through exported/non-exported fields, enabling a “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that provides embedding, composability, type-check safety, and garbage collection, helping developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n## Gno vs Solidity\n\nThe most widely-adopted smart contract language today is Ethereum’s EVM-compatible Solidity. With bytecode built from the ground up and Turing complete, Solidity opened up a world of possibilities for decentralized applications (dApps) and there are currently more than 10 million contracts deployed on Ethereum. However, Solidity provides limited tooling and its EVM has a stack limit and computational inefficiencies.\n\nSolidity is designed for one purpose only (writing smart contracts) and is bound by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems. Gno aspires to exceed Solidity on multiple fronts (and other smart contract languages like CosmWasm or Substrate) as every part of the stack is written in Gno. It’s easy for developers to understand the entire system just by studying a relatively small code base.\n\n## Gno Is Essential for the Wider Adoption of Web3\n\nGno makes imports as easy as they are in web2 with runtime-based imports for seamless dependency flow comprehension, and support for complex structs, beyond primitive types. Gno is ultimately cost-effective as dependencies are loaded once, enabling remote function calls as local, and providing automatic and independent per-realm state persistence.\n\nUsing Gno, developers can rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nThe Go language is so well designed that the Gno smart contract system will become the new gold standard for smart contract development and other blockchain applications. As a programming language that is universally adopted, secure, composable, and complete, Gno is essential for the broader adoption of web3 and its sustainable growth.`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:25Z\", nil, nil)\n}\n"},{"name":"page_license.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"license\"\n\t\ttitle = \"Gno Network General Public License\"\n\t\tbody = `Copyright (C) 2024 NewTendermint, LLC\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNO Network General Public License as published by\nNewTendermint, LLC, either version 4 of the License, or (at your option) any\nlater version published by NewTendermint, LLC.\n\nThis program is distributed in the hope that it will be useful, but is provided\nas-is and WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNO Network\nGeneral Public License for more details.\n\nYou should have received a copy of the GNO Network General Public License along\nwith this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAttached below are the terms of the GNO Network General Public License, Version\n4 (a fork of the GNU Affero General Public License 3).\n\n## Additional Terms\n\n### Strong Attribution\n\nIf any of your user interfaces, such as websites and mobile applications, serve\nas the primary point of entry to a platform or blockchain that 1) offers users\nthe ability to upload their own smart contracts to the platform or blockchain,\nand 2) leverages any Covered Work (including the GNO virtual machine) to run\nthose smart contracts on the platform or blockchain (\"Applicable Work\"), then\nthe Applicable Work must prominently link to (1) gno.land or (2) any other URL\ndesignated by NewTendermint, LLC that has not been rejected by the governance of\nthe first chain known as gno.land, provided that the identity of the first chain\nis not ambiguous. In the event the identity of the first chain is ambiguous,\nthen NewTendermint, LLC's designation shall control. Such link must appear\nconspicuously in the header or footer of the Applicable Work, such that all\nusers may learn of gno.land or the URL designated by NewTendermint, LLC.\n\nThis additional attribution requirement shall remain in effect for (1) 7\nyears from the date of publication of the Applicable Work, or (2) 7 years from\nthe date of publication of the Covered Work (including republication of new\nversions), whichever is later, but no later than 12 years after the application\nof this strong attribution requirement to the publication of the Applicable\nWork. For purposes of this Strong Attribution requirement, Covered Work shall\nmean any work that is licensed under the GNO Network General Public License,\nVersion 4 or later, by NewTendermint, LLC.\n\n\n# GNO NETWORK GENERAL PUBLIC LICENSE\n\nVersion 4, 7 May 2024\n\nModified from the GNU AFFERO GENERAL PUBLIC LICENSE.\nGNU is not affiliated with GNO or NewTendermint, LLC.\nCopyright (C) 2022 NewTendermint, LLC.\n\n## Preamble\n\nThe GNO Network General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\nThe licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\nWhen we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\nDevelopers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\nA secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate. Many developers of free software are heartened and\nencouraged by the resulting cooperation. However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\nThe GNO Network General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community. It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server. Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\nThe precise terms and conditions for copying, distribution and\nmodification follow.\n\n## TERMS AND CONDITIONS\n\n### 0. Definitions.\n\n\"This License\" refers to version 4 of the GNO Network General Public License.\n\n\"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n\"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\nTo \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\nA \"covered work\" means either the unmodified Program or a work based\non the Program.\n\nTo \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\nTo \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\nAn interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n### 1. Source Code.\n\nThe \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\nA \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\nThe \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\nThe \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\nThe Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\nThe Corresponding Source for a work in source code form is that\nsame work.\n\n### 2. Basic Permissions.\n\nAll rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\nYou may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\nConveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\nNo covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\nWhen you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n### 4. Conveying Verbatim Copies.\n\nYou may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\nYou may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n### 5. Conveying Modified Source Versions.\n\nYou may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n- a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n- b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n- c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n- d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\nA compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n### 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n- a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n- b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n- c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n- d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n- e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\nA separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\nA \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n\"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\nIf you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\nThe requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\nCorresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n### 7. Additional Terms.\n\n\"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\nWhen you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\nNotwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n- a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n- b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n- c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n- d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n- e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n- f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors; or\n- g) Requiring strong attribution such as notices on any user interfaces\n that run or convey any covered work, such as a prominent link to a URL\n on the header of a website, such that all users of the covered work may\n become aware of the notice, for a period no longer than 20 years.\n\nAll other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\nIf you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\nAdditional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n### 8. Termination.\n\nYou may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\nHowever, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\nMoreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\nTermination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n### 9. Acceptance Not Required for Having Copies.\n\nYou are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n### 10. Automatic Licensing of Downstream Recipients.\n\nEach time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\nAn \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\nYou may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n### 11. Patents.\n\nA \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\nA contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\nEach contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\nIn the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\nIf you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\nIf, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\nA patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\nNothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n### 12. No Surrender of Others' Freedom.\n\nIf conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to simultaneously satisfy your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n### 13. Remote Network Interaction; Use with the GNU General Public License.\n\nNotwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software. This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\nNotwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n### 14. Revised Versions of this License.\n\nNewTendermint LLC may publish revised and/or new versions of\nthe GNO Network General Public License from time to time. Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNO Network General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Gno Software\nFoundation. If the Program does not specify a version number of the\nGNO Network General Public License, you may choose any version ever published\nby NewTendermint LLC.\n\nIf the Program specifies that a proxy can decide which future\nversions of the GNO Network General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\nLater license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n### 15. Disclaimer of Warranty.\n\nTHERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n### 16. Limitation of Liability.\n\nIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n### 17. Interpretation of Sections 15 and 16.\n\nIf the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\nEND OF TERMS AND CONDITIONS\n\n## How to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n \u003cone line to give the program's name and a brief idea of what it does.\u003e\n Copyright (C) \u003cyear\u003e \u003cname of author\u003e\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNO Network General Public License as published by\n NewTendermint LLC, either version 4 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNO Network General Public License for more details.\n\n You should have received a copy of the GNO Network General Public License\n along with this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source. For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code. There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2024-04-22T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_partners.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"partners\"\n\ttitle := \"Partnerships\"\n\tbody := `### Fund and Grants Program\n\nAre you a builder, tinkerer, or researcher? If you’re looking to create awesome dApps, tooling, infrastructure, \nor smart contract libraries on gno.land, you can apply for a grant. The gno.land Ecosystem Fund and Grants program \nprovides financial contributions for individuals and teams to innovate on the platform.\n\nRead more about our Funds and Grants program [here](https://github.com/gnolang/ecosystem-fund-grants).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:27Z\", nil, nil)\n}\n"},{"name":"page_start.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"start\"\n\ttitle := \"Getting Started with Gno\"\n\t// XXX: description := \"\"\n\n\t// TODO: codegen to use README files here\n\n\t/* TODO: port previous message: This is a demo of Gno smart contract programming. This document was\n\tconstructed by Gno onto a smart contract hosted on the data Realm\n\tname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n\t([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\t*/\n\tbody := `## Getting Started with Gno\n\n- [Install Gno Key](/r/demo/boards:testboard/5)\n- TODO: add more links\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:28Z\", nil, nil)\n}\n"},{"name":"page_testnets.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"testnets\"\n\ttitle := \"gno.land Testnet List\"\n\tbody := `\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop) - a rolling testnet\n- [staging.gno.land](https://staging.gno.land) - wiped every commit to monorepo master\n- _[test4.gno.land](https://test4.gno.land) (latest)_\n\nFor a list of RPC endpoints, see the [reference documentation](https://docs.gno.land/reference/rpc-endpoints).\n\n## Local development\n\nSee the \"Getting started\" section in the [official documentation](https://docs.gno.land/getting-started/local-setup).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:29Z\", nil, nil)\n}\n"},{"name":"page_tokenomics.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"tokenomics\"\n\t\ttitle = \"gno.land Tokenomics\"\n\t\t// XXX: description = \"\"\"\n\t\tbody = `Lorem Ipsum`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:30Z\", nil, nil)\n}\n"},{"name":"pages.gno","body":"package gnopages\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/pages\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Gnoland's Pages\",\n\tPrefix: \"/r/gnoland/pages:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"},{"name":"pages_test.gno","body":"package gnopages\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestHome(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"\")\n\texpectedSubtrings := []string{\n\t\t\"/r/gnoland/pages:p/tokenomics\",\n\t\t\"/r/gnoland/pages:p/start\",\n\t\t\"/r/gnoland/pages:p/contribute\",\n\t\t\"/r/gnoland/pages:p/about\",\n\t\t\"/r/gnoland/pages:p/gnolang\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n\nfunc TestAbout(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"p/about\")\n\texpectedSubtrings := []string{\n\t\t\"gno.land Is A Platform To Write Smart Contracts In Gno\",\n\t\t\"gno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\\nprogramming language.\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n"},{"name":"util.gno","body":"package gnopages\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m6vsMNSD8CL7j3xZZFma5hLSP35BdQx55OhzAhhm8qCY+Tzdtj4T67Pt4IP7RQEeGydpK79B3Bebj9+sVPS5Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnopages","path":"gno.land/r/gnoland/pages","files":[{"name":"admin.gno","body":"package gnopages\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"page_about.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"about\"\n\ttitle := \"gno.land Is A Platform To Write Smart Contracts In Gno\"\n\t// XXX: description := \"On gno.land, developers write smart contracts and other blockchain apps using Gno without learning a language that’s exclusive to a single ecosystem.\"\n\tbody := `\ngno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\nprogramming language. On gno.land, smart contracts can be uploaded on-chain only by publishing their full source code,\nmaking it trivial to verify the contract or fork it into an improved version. With a system to publish reusable code\nlibraries on-chain, gno.land serves as the “GitHub” of the ecosystem, with realms built using fully transparent,\nauditable code that anyone can inspect and reuse.\n\ngno.land addresses many pressing issues in the blockchain space, starting with the ease of use and intuitiveness of\nsmart contract platforms. Developers can write smart contracts without having to learn a new language that’s exclusive\nto a single ecosystem or limited by design. Go developers can easily port their existing web apps to gno.land or build\nnew ones from scratch, making web3 vastly more accessible.\n\nSecured by Proof of Contribution (PoC), a DAO-managed Proof-of-Authority consensus mechanism, gno.land prioritizes\nfairness and merit, rewarding the people most active on the platform. PoC restructures the financial incentives that\noften corrupt blockchain projects, opting instead to reward contributors for their work based on expertise, commitment, and\nalignment.\n\nOne of our inspirations for gno.land is the gospels, which built a system of moral code that lasted thousands of years.\nBy observing a minimal production implementation, gno.land’s design will endure over time and serve as a reference for\nfuture generations with censorship-resistant tools that improve their understanding of the world.\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:22Z\", nil, nil)\n}\n"},{"name":"page_contribute.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"contribute\"\n\ttitle := \"Contributor Ecosystem: Call for Contributions\"\n\tbody := `\n\ngno.land puts at the center of its identity the contributors that help to create and shape the project into what it is; incentivizing those who contribute the most and help advance its vision. Eventually, contributions will be incentivized directly on-chain; in the meantime, this page serves to illustrate our current off-chain initiatives.\n\ngno.land is still in full-steam development. For now, we're looking for the earliest of adopters; curious to explore a new way to build smart contracts and eager to make an impact. Joining gno.land's development now means you can help to shape the base of its development ecosystem, which will pave the way for the next generation of blockchain programming.\n\nAs an open-source project, we welcome all contributions. On this page you can find some pointers on where to get started; as well as some incentives for the most valuable and important contributions.\n\n## Where to get started\n\nIf you are interested in contributing to gno.land, you can jump on in on our [GitHub monorepo](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md) - where most development happens.\n\nA good place where to start are the issues tagged [\"good first issue\"](https://github.com/gnolang/gno/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). They should allow you to make some impact on the Gno repository while you're still exploring the details of how everything works.\n\n## Gno Bounties\n\nAdditionally, you can look out to help on specific issues labeled as bounties. All contributions will then concur to form your profile for Game of Realms.\n\nThe Gno bounty program is a good way to find interesting challenges in Gno, and get rewarded for helping us advance the project. We will maintain open and rewardable bounties in the gnolang/gno repository, and you can search all available bounties by using the [\"bounty\" label](https://github.com/gnolang/gno/labels/bounty).\n\nRecommendations on participating in the gno.land Bounty Program:\n\n- Identify the bounty you want to work on, and join in the discussion on the issue for anything that is unclear; or where you want to more clearly define the work to be done. At this stage, you can also start working on an initial implementation in your local enviornment.\n- Once you have spent time on the code related to the bounty, we recommend submitting a 'draft' PR as soon as possible.\n - The draft PR doesn't indicate that the bounty has been assigned to you, others are free to work on other draft PRs for the bounty.\n - Make sure to reference the bounty issue on the PR description you're writing.\n - After submitting the 'draft' PR, continue working until you are ready to mark the PR as \"ready for review\".\n - The core team will review the bounty PR submission after the work on the bounty has been completed, and determine if it qualifies for the bounty reward.\n- Ask for clarification early if an element on the requirements or implementation design is unclear.\n - Aside from publishing the PR early, keeping regular updates with the core team on the bounty issue is key to being on the right track.\n - As part of the requirements, you must adhere to the [contributing guidelines](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md); additionally, it is expected that any newly added code or functionality is properly documented, tested and covered, at least in 80% of added code.\n - You're welcome to propose additional features and work on an issue should you envision a plausible expansion or change in scope. The core team may assign a bounty to the additional work, or change the bounty with respect to the changed scope.\n\nYou may make your submission at any time; however we invite you to publish your draft PR very early in the development process. This will make your work public, so you can easily get help by the core team and other community members. Additionally, your work can be continued by other people should you get stuck or no longer be willing to work on the bounty. Likewise, you can continue the abandoned or stuck work that someone else worked on.\n\nDon't fear your work being \"stolen\": if a submission is the result of multiple people's efforts, we will look to split the bounty in a way that is fair and recognises each participant in creating the final outcome. Here are some examples of how that can happen:\n\n- If Alice does most of the work and abandons it; then Bob comes around and finishes the job, then Bob's PR will be merged. But the core team will propose a split like 70% for Alice and 30% for Bob (depending, of course, on the relative effort undertaken by both).\n- If Alice makes a PR that does only 50% of the work outlined in the requirements for the original issue, she will get 50%. Someone can still come up and finish the job; and claim the remaining part.\n\t- If you, for instance, cannot complete the entirety of the task or, as a non-developer, can only contribute a part of the specification/implementation, you may still be awarded a bounty for your input in the contribution.\n- If Alice makes a PR that aside from implementing what's required, also undertakes creating useful tools among the way, she may qualify for an \"outstanding contribution\"; and may be awarded up to 25% more of the original bounty's value. Or she may also ask if the team would be willing to offer a different bounty for the implementation of the tools.\n\nParticipants in the gno.land Bounty Program must meet the legal Terms and Conditions referenced [here](https://docs.google.com/document/d/e/2PACX-1vSUF-JwIXGscrNsc5QBD7Pa6i83mXUGogAEIf1wkeb_w42UgL3Lj6jFKMlNTdwEMUnhsLkjRlhe25K4/pub).\n\n### Bounty sizes\n\nEach bounty is associated with a size, to which corresponds the maximum compensation for the work involved on the bounty. A bounty size may under rare occasion be revisited to a bigger or smaller size; hence why it's important to talk about your proposed solution with the core team ahead of time.\n\nIn some cases, the work associated with a bounty may be outstanding. When that happens, the core team can decide to award up to 25% of the bounty's value to the recipient.\n\nThe value of the bounty, aside from the material completion of the task, considers the involved time in managing the created pull request and iterating on feedback.\n\n\nt-shirt size | expected compensation\n-------------|-----------------------\n[XS] | $ 500\n[S] | $ 1000\n[M] | $ 2000\n[L] | $ 4000\n[XL] | $ 8000\n_[XXL]_ \\* | $ 16000\n_[3XL]_ \\* | $ 32000\n\n[XS]: https://github.com/gnolang/gno/labels/bounty%2FXS\n[S]: https://github.com/gnolang/gno/labels/bounty%2FS\n[M]: https://github.com/gnolang/gno/labels/bounty%2FM\n[L]: https://github.com/gnolang/gno/labels/bounty%2FL\n[XL]: https://github.com/gnolang/gno/labels/bounty%2FXL\n[XXL]: https://github.com/gnolang/gno/labels/bounty%2FXXL\n[3XL]: https://github.com/gnolang/gno/labels/bounty%2F3XL\n\n\\*: XXL and 3XL bounties are exceptional. Almost no issues will have these sizes; most will be broken down into smaller bounties.\n\n## gno.land Grants\n\nThe gno.land grants program is to encourage and support the growth of the gno.land contributor community, and build out the usability of the platform and smart contract library. The program provides financial resources to contributors to explore the Gno tech stack, and build dApps, tooling, infrastructure, products, and smart contract libraries in gno.land.\n\nFor more details on gno.land grants, suggested topics, and how to apply, visit our grants [repository](https://github.com/gnolang/grants). \n\n## Join Game of Realms\n\nGame of Realms is the overarching contributor network of gnomes, currently running off-chain, and will eventually transition on-chain. At this stage, a Game of Realms contribution is comprised of high-impact contributions identified as ['notable contributions'](https://github.com/gnolang/game-of-realms/tree/main/contributors).\n\nThese contributions are not linked to immediate financial rewards, but are notable in nature, in the sense they are a challenge, make a significant addition to the project, and require persistence, with minimal feedback loops from the core team.\n\nThe selection of a notable contribution or the sum of contributions that equal 'notable' is based on the impact it has on the development of the project. For now, it is focused on code contributions, and will evolve over time. The Gno development teams will initially qualify and evaluate notable contributions, and vote off-chain on adding them to the 'notable contributions' folder on GitHub.\n\nYou can always contribute to the project, and all contributions will be noticed. Contributing now is a way to build your personal contributor profile in gno.land early on in the ecosystem, and signal your commitment to the project, the community, and its future.\n\nThere are a variety of ways to make your contributions count:\n\n- Core code contributions\n- Realm and pure package development\n- Validator tooling\n- Developer tooling\n- Tutorials and documentation\n\nTo start, we recommend you create a PR in the Game of Realms [repository](https://github.com/gnolang/game-of-realms) to create your profile page for all your contributions.`\n\n\t_ = b.NewPost(\"\", path, title, body, \"2024-09-05T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_ecosystem.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"ecosystem\"\n\t\ttitle = \"Discover gno.land Ecosystem Projects \u0026 Initiatives\"\n\t\t// XXX: description = \"Dive further into the gno.land ecosystem and discover the core infrastructure, projects, smart contracts, and tooling we’re building.\"\n\t\tbody = `\n### [Gno Playground](https://play.gno.land)\n\nGno Playground is a simple web interface that lets you write, test, and experiment with your Gno code to improve your\nunderstanding of the Gno language. You can share your code, run unit tests, deploy your realms and packages, and execute\nfunctions in your code using the repo.\n\nVisit the playground at [play.gno.land](https://play.gno.land)!\n\n### [Gno Studio Connect](https://gno.studio/connect)\n\nGno Studio Connect provides seamless access to realms, making it simple to explore, interact, and engage\nwith gno.land’s smart contracts through function calls. Connect focuses on function calls, enabling users to interact\nwith any realm’s exposed function(s) on gno.land.\n\nSee your realm interactions in [Gno Studio Connect](https://gno.studio/connect)\n\n### [Gnoscan](https://gnoscan.io)\n\nDeveloped by the Onbloc team, Gnoscan is gno.land’s blockchain explorer. Anyone can use Gnoscan to easily find\ninformation that resides on the gno.land blockchain, such as wallet addresses, TX hashes, blocks, and contracts.\nGnoscan makes our on-chain data easy to read and intuitive to discover.\n\nExplore the gno.land blockchain at [gnoscan.io](https://gnoscan.io)!\n\n### Adena\n\nAdena is a user-friendly non-custodial wallet for gno.land. Open-source and developed by Onbloc, Adena allows gnomes to\ninteract easily with the chain. With an emphasis on UX, Adena is built to handle millions of realms and tokens with a\nhigh-quality interface, support for NFTs and custom tokens, and seamless integration. Install Adena via the [official website](https://www.adena.app/)\n\n### Gnoswap\n\nGnoswap is currently under development and led by the Onbloc team. Gnoswap will be the first DEX on gno.land and is an\nautomated market maker (AMM) protocol written in Gno that allows for permissionless token exchanges on the platform.\n\n### Flippando\n\nFlippando is a simple on-chain memory game, ported from Solidity to Gno, which starts with an empty matrix to flip tiles\non to see what’s underneath. If the tiles match, they remain uncovered; if not, they are briefly shown, and the player\nmust memorize their colors until the entire matrix is uncovered. The end result can be minted as an NFT, which can later\nbe assembled into bigger, more complex NFTs, creating a digital “painting” with the uncovered tiles. Play the game at [Flippando](https://gno.flippando.xyz/flip)\n\n### Gno Native Kit\n\n[Gno Native Kit](https://github.com/gnolang/gnonative) is a framework that allows developers to build and port gno.land (d)apps written in the (d)app's native language.\n\n\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:23Z\", nil, nil)\n}\n"},{"name":"page_gnolang.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"gnolang\"\n\t\ttitle = \"About the Gno, the Language for gno.land\"\n\t\t// TODO fix broken images\n\t\tbody = `\n\n[Gno](https://github.com/gnolang/gno) is an interpretation of the widely-used Go (Golang) programming language for blockchain created by Cosmos co-founder Jae Kwon in 2022 to mark a new era in smart contracting. Gno is ~99% identical to Go, so Go programmers can start coding in Gno right away, with a minimal learning curve. For example, Gno comes with blockchain-specific standard libraries, but any code that doesn’t use blockchain-specific logic can run in Go with minimal processing. Libraries that don’t make sense in the blockchain context, such as network or operating-system access, are not available in Gno. Otherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same.\n\nUnder the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than bytecode as in many virtual machines such as Java, Python, or Wasm. This makes even the GnoVM accessible to any Go programmer. The novel design of the intuitive GnoVM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. Gno is deterministic, auto-persisted, and auto-Merkle-ized, allowing (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\n## How Gno Differs from Go\n\n![Gno and Go differences](static/img/gno-language/go-and-gno.jpg)\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on gno.land are light, simple, more focused, and easily interoperable—a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n![Example of Gno code](static/img/gno-language/code-example.jpg)\n\n## Gno Inherits Go’s Built-in Security Features\n\nGo supports secure programming through exported/non-exported fields, enabling a “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that provides embedding, composability, type-check safety, and garbage collection, helping developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n## Gno vs Solidity\n\nThe most widely-adopted smart contract language today is Ethereum’s EVM-compatible Solidity. With bytecode built from the ground up and Turing complete, Solidity opened up a world of possibilities for decentralized applications (dApps) and there are currently more than 10 million contracts deployed on Ethereum. However, Solidity provides limited tooling and its EVM has a stack limit and computational inefficiencies.\n\nSolidity is designed for one purpose only (writing smart contracts) and is bound by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems. Gno aspires to exceed Solidity on multiple fronts (and other smart contract languages like CosmWasm or Substrate) as every part of the stack is written in Gno. It’s easy for developers to understand the entire system just by studying a relatively small code base.\n\n## Gno Is Essential for the Wider Adoption of Web3\n\nGno makes imports as easy as they are in web2 with runtime-based imports for seamless dependency flow comprehension, and support for complex structs, beyond primitive types. Gno is ultimately cost-effective as dependencies are loaded once, enabling remote function calls as local, and providing automatic and independent per-realm state persistence.\n\nUsing Gno, developers can rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nThe Go language is so well designed that the Gno smart contract system will become the new gold standard for smart contract development and other blockchain applications. As a programming language that is universally adopted, secure, composable, and complete, Gno is essential for the broader adoption of web3 and its sustainable growth.`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:25Z\", nil, nil)\n}\n"},{"name":"page_license.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"license\"\n\t\ttitle = \"Gno Network General Public License\"\n\t\tbody = `Copyright (C) 2024 NewTendermint, LLC\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNO Network General Public License as published by\nNewTendermint, LLC, either version 4 of the License, or (at your option) any\nlater version published by NewTendermint, LLC.\n\nThis program is distributed in the hope that it will be useful, but is provided\nas-is and WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNO Network\nGeneral Public License for more details.\n\nYou should have received a copy of the GNO Network General Public License along\nwith this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAttached below are the terms of the GNO Network General Public License, Version\n4 (a fork of the GNU Affero General Public License 3).\n\n## Additional Terms\n\n### Strong Attribution\n\nIf any of your user interfaces, such as websites and mobile applications, serve\nas the primary point of entry to a platform or blockchain that 1) offers users\nthe ability to upload their own smart contracts to the platform or blockchain,\nand 2) leverages any Covered Work (including the GNO virtual machine) to run\nthose smart contracts on the platform or blockchain (\"Applicable Work\"), then\nthe Applicable Work must prominently link to (1) gno.land or (2) any other URL\ndesignated by NewTendermint, LLC that has not been rejected by the governance of\nthe first chain known as gno.land, provided that the identity of the first chain\nis not ambiguous. In the event the identity of the first chain is ambiguous,\nthen NewTendermint, LLC's designation shall control. Such link must appear\nconspicuously in the header or footer of the Applicable Work, such that all\nusers may learn of gno.land or the URL designated by NewTendermint, LLC.\n\nThis additional attribution requirement shall remain in effect for (1) 7\nyears from the date of publication of the Applicable Work, or (2) 7 years from\nthe date of publication of the Covered Work (including republication of new\nversions), whichever is later, but no later than 12 years after the application\nof this strong attribution requirement to the publication of the Applicable\nWork. For purposes of this Strong Attribution requirement, Covered Work shall\nmean any work that is licensed under the GNO Network General Public License,\nVersion 4 or later, by NewTendermint, LLC.\n\n\n# GNO NETWORK GENERAL PUBLIC LICENSE\n\nVersion 4, 7 May 2024\n\nModified from the GNU AFFERO GENERAL PUBLIC LICENSE.\nGNU is not affiliated with GNO or NewTendermint, LLC.\nCopyright (C) 2022 NewTendermint, LLC.\n\n## Preamble\n\nThe GNO Network General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\nThe licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\nWhen we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\nDevelopers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\nA secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate. Many developers of free software are heartened and\nencouraged by the resulting cooperation. However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\nThe GNO Network General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community. It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server. Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\nThe precise terms and conditions for copying, distribution and\nmodification follow.\n\n## TERMS AND CONDITIONS\n\n### 0. Definitions.\n\n\"This License\" refers to version 4 of the GNO Network General Public License.\n\n\"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n\"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\nTo \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\nA \"covered work\" means either the unmodified Program or a work based\non the Program.\n\nTo \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\nTo \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\nAn interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n### 1. Source Code.\n\nThe \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\nA \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\nThe \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\nThe \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\nThe Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\nThe Corresponding Source for a work in source code form is that\nsame work.\n\n### 2. Basic Permissions.\n\nAll rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\nYou may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\nConveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\nNo covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\nWhen you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n### 4. Conveying Verbatim Copies.\n\nYou may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\nYou may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n### 5. Conveying Modified Source Versions.\n\nYou may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n- a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n- b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n- c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n- d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\nA compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n### 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n- a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n- b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n- c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n- d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n- e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\nA separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\nA \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n\"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\nIf you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\nThe requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\nCorresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n### 7. Additional Terms.\n\n\"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\nWhen you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\nNotwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n- a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n- b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n- c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n- d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n- e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n- f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors; or\n- g) Requiring strong attribution such as notices on any user interfaces\n that run or convey any covered work, such as a prominent link to a URL\n on the header of a website, such that all users of the covered work may\n become aware of the notice, for a period no longer than 20 years.\n\nAll other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\nIf you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\nAdditional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n### 8. Termination.\n\nYou may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\nHowever, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\nMoreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\nTermination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n### 9. Acceptance Not Required for Having Copies.\n\nYou are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n### 10. Automatic Licensing of Downstream Recipients.\n\nEach time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\nAn \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\nYou may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n### 11. Patents.\n\nA \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\nA contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\nEach contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\nIn the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\nIf you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\nIf, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\nA patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\nNothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n### 12. No Surrender of Others' Freedom.\n\nIf conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to simultaneously satisfy your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n### 13. Remote Network Interaction; Use with the GNU General Public License.\n\nNotwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software. This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\nNotwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n### 14. Revised Versions of this License.\n\nNewTendermint LLC may publish revised and/or new versions of\nthe GNO Network General Public License from time to time. Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNO Network General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Gno Software\nFoundation. If the Program does not specify a version number of the\nGNO Network General Public License, you may choose any version ever published\nby NewTendermint LLC.\n\nIf the Program specifies that a proxy can decide which future\nversions of the GNO Network General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\nLater license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n### 15. Disclaimer of Warranty.\n\nTHERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n### 16. Limitation of Liability.\n\nIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n### 17. Interpretation of Sections 15 and 16.\n\nIf the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\nEND OF TERMS AND CONDITIONS\n\n## How to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n \u003cone line to give the program's name and a brief idea of what it does.\u003e\n Copyright (C) \u003cyear\u003e \u003cname of author\u003e\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNO Network General Public License as published by\n NewTendermint LLC, either version 4 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNO Network General Public License for more details.\n\n You should have received a copy of the GNO Network General Public License\n along with this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source. For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code. There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2024-04-22T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_partners.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"partners\"\n\ttitle := \"Partnerships\"\n\tbody := `### Fund and Grants Program\n\nAre you a builder, tinkerer, or researcher? If you’re looking to create awesome dApps, tooling, infrastructure, \nor smart contract libraries on gno.land, you can apply for a grant. The gno.land Ecosystem Fund and Grants program \nprovides financial contributions for individuals and teams to innovate on the platform.\n\nRead more about our Funds and Grants program [here](https://github.com/gnolang/ecosystem-fund-grants).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:27Z\", nil, nil)\n}\n"},{"name":"page_start.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"start\"\n\ttitle := \"Getting Started with Gno\"\n\t// XXX: description := \"\"\n\n\t// TODO: codegen to use README files here\n\n\t/* TODO: port previous message: This is a demo of Gno smart contract programming. This document was\n\tconstructed by Gno onto a smart contract hosted on the data Realm\n\tname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n\t([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\t*/\n\tbody := `## Getting Started with Gno\n\n- [Install Gno Key](/r/demo/boards:testboard/5)\n- TODO: add more links\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:28Z\", nil, nil)\n}\n"},{"name":"page_testnets.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"testnets\"\n\ttitle := \"gno.land Testnet List\"\n\tbody := `\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop) - a rolling testnet\n- [staging.gno.land](https://staging.gno.land) - wiped every commit to monorepo master\n- _[test4.gno.land](https://test4.gno.land) (latest)_\n\nFor a list of RPC endpoints, see the [reference documentation](https://docs.gno.land/reference/rpc-endpoints).\n\n## Local development\n\nSee the \"Getting started\" section in the [official documentation](https://docs.gno.land/getting-started/local-setup).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:29Z\", nil, nil)\n}\n"},{"name":"page_tokenomics.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"tokenomics\"\n\t\ttitle = \"gno.land Tokenomics\"\n\t\t// XXX: description = \"\"\"\n\t\tbody = `Lorem Ipsum`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:30Z\", nil, nil)\n}\n"},{"name":"pages.gno","body":"package gnopages\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/pages\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Gnoland's Pages\",\n\tPrefix: \"/r/gnoland/pages:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"},{"name":"pages_test.gno","body":"package gnopages\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestHome(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"\")\n\texpectedSubtrings := []string{\n\t\t\"/r/gnoland/pages:p/tokenomics\",\n\t\t\"/r/gnoland/pages:p/start\",\n\t\t\"/r/gnoland/pages:p/contribute\",\n\t\t\"/r/gnoland/pages:p/about\",\n\t\t\"/r/gnoland/pages:p/gnolang\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n\nfunc TestAbout(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"p/about\")\n\texpectedSubtrings := []string{\n\t\t\"gno.land Is A Platform To Write Smart Contracts In Gno\",\n\t\t\"gno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\\nprogramming language.\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n"},{"name":"util.gno","body":"package gnopages\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZyPUgGtRFSW5ecbFXDEjs3LaEYEMs1ah/1zoYOuFjvieugRy7SdwqVXsZ2K/LeRk9v3jhXSbIzLkJ74wcgQ8AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnorkle","path":"gno.land/p/demo/gnorkle/gnorkle","files":[{"name":"feed.gno","body":"package gnorkle\n\nimport (\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Feed is an abstraction used by a gnorkle `Instance` to ingest data from\n// agents and provide data feeds to consumers.\ntype Feed interface {\n\tID() string\n\tType() feed.Type\n\tValue() (value feed.Value, dataType string, consumable bool)\n\tIngest(funcType message.FuncType, rawMessage, providerAddress string) error\n\tMarshalJSON() ([]byte, error)\n\tTasks() []feed.Task\n\tIsActive() bool\n}\n\n// FeedWithWhitelist associates a `Whitelist` with a `Feed`.\ntype FeedWithWhitelist struct {\n\tFeed\n\tWhitelist\n}\n"},{"name":"ingester.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/ingester\"\n\n// Ingester is the abstraction that allows a `Feed` to ingest data from agents\n// and commit it to storage using zero or more intermediate aggregation steps.\ntype Ingester interface {\n\tType() ingester.Type\n\tIngest(value, providerAddress string) (canAutoCommit bool, err error)\n\tCommitValue(storage Storage, providerAddress string) error\n}\n"},{"name":"instance.gno","body":"package gnorkle\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Instance is a single instance of an oracle.\ntype Instance struct {\n\tfeeds *avl.Tree\n\twhitelist agent.Whitelist\n}\n\n// NewInstance creates a new instance of an oracle.\nfunc NewInstance() *Instance {\n\treturn \u0026Instance{\n\t\tfeeds: avl.NewTree(),\n\t}\n}\n\nfunc assertValidID(id string) error {\n\tif len(id) == 0 {\n\t\treturn errors.New(\"feed ids cannot be empty\")\n\t}\n\n\tif strings.Contains(id, \",\") {\n\t\treturn errors.New(\"feed ids cannot contain commas\")\n\t}\n\n\treturn nil\n}\n\nfunc (i *Instance) assertFeedDoesNotExist(id string) error {\n\tif i.feeds.Has(id) {\n\t\treturn errors.New(\"feed already exists\")\n\t}\n\n\treturn nil\n}\n\n// AddFeeds adds feeds to the instance with empty whitelists.\nfunc (i *Instance) AddFeeds(feeds ...Feed) error {\n\tfor _, feed := range feeds {\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: new(agent.Whitelist),\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// AddFeedsWithWhitelists adds feeds to the instance with the given whitelists.\nfunc (i *Instance) AddFeedsWithWhitelists(feeds ...FeedWithWhitelist) error {\n\tfor _, feed := range feeds {\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: feed.Whitelist,\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// RemoveFeed removes a feed from the instance.\nfunc (i *Instance) RemoveFeed(id string) {\n\ti.feeds.Remove(id)\n}\n\n// PostMessageHandler is a type that allows for post-processing of feed state after a feed\n// ingests a message from an agent.\ntype PostMessageHandler interface {\n\tHandle(i *Instance, funcType message.FuncType, feed Feed) error\n}\n\n// HandleMessage handles a message from an agent and routes to either the logic that returns\n// feed definitions or the logic that allows a feed to ingest a message.\n//\n// TODO: Consider further message types that could allow administrative action such as modifying\n// a feed's whitelist without the owner of this oracle having to maintain a reference to it.\nfunc (i *Instance) HandleMessage(msg string, postHandler PostMessageHandler) (string, error) {\n\tcaller := string(std.GetOrigCaller())\n\n\tfuncType, msg := message.ParseFunc(msg)\n\n\tswitch funcType {\n\tcase message.FuncTypeRequest:\n\t\treturn i.GetFeedDefinitions(caller)\n\n\tdefault:\n\t\tid, msg := message.ParseID(msg)\n\t\tif err := assertValidID(id); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tfeedWithWhitelist, err := i.getFeedWithWhitelist(id)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, caller, nil) {\n\t\t\treturn \"\", errors.New(\"caller not whitelisted\")\n\t\t}\n\n\t\tif err := feedWithWhitelist.Ingest(funcType, msg, caller); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif postHandler != nil {\n\t\t\tpostHandler.Handle(i, funcType, feedWithWhitelist)\n\t\t}\n\t}\n\n\treturn \"\", nil\n}\n\nfunc (i *Instance) getFeed(id string) (Feed, error) {\n\tuntypedFeed, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeed, ok := untypedFeed.(Feed)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid feed type\")\n\t}\n\n\treturn feed, nil\n}\n\nfunc (i *Instance) getFeedWithWhitelist(id string) (FeedWithWhitelist, error) {\n\tuntypedFeedWithWhitelist, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeedWithWhitelist, ok := untypedFeedWithWhitelist.(FeedWithWhitelist)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid feed with whitelist type\")\n\t}\n\n\treturn feedWithWhitelist, nil\n}\n\n// GetFeedValue returns the most recently published value of a feed along with a string\n// representation of the value's type and boolean indicating whether the value is\n// okay for consumption.\nfunc (i *Instance) GetFeedValue(id string) (feed.Value, string, bool, error) {\n\tfoundFeed, err := i.getFeed(id)\n\tif err != nil {\n\t\treturn feed.Value{}, \"\", false, err\n\t}\n\n\tvalue, valueType, consumable := foundFeed.Value()\n\treturn value, valueType, consumable, nil\n}\n\n// GetFeedDefinitions returns a JSON string representing the feed definitions for which the given\n// agent address is whitelisted to provide values for ingestion.\nfunc (i *Instance) GetFeedDefinitions(forAddress string) (string, error) {\n\tinstanceHasAddressWhitelisted := !i.whitelist.HasDefinition() || i.whitelist.HasAddress(forAddress)\n\n\tbuf := new(strings.Builder)\n\tbuf.WriteString(\"[\")\n\tfirst := true\n\tvar err error\n\n\t// The boolean value returned by this callback function indicates whether to stop iterating.\n\ti.feeds.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tfeedWithWhitelist, ok := value.(FeedWithWhitelist)\n\t\tif !ok {\n\t\t\terr = errors.New(\"invalid feed type\")\n\t\t\treturn true\n\t\t}\n\n\t\t// Don't give agents the ability to try to publish to inactive feeds.\n\t\tif !feedWithWhitelist.IsActive() {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip feeds the address is not whitelisted for.\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, forAddress, \u0026instanceHasAddressWhitelisted) {\n\t\t\treturn false\n\t\t}\n\n\t\tvar taskBytes []byte\n\t\tif taskBytes, err = feedWithWhitelist.Feed.MarshalJSON(); err != nil {\n\t\t\treturn true\n\t\t}\n\n\t\t// Guard against any tasks that shouldn't be returned; maybe they are not active because they have\n\t\t// already been completed.\n\t\tif len(taskBytes) == 0 {\n\t\t\treturn false\n\t\t}\n\n\t\tif !first {\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\n\t\tfirst = false\n\t\tbuf.Write(taskBytes)\n\t\treturn false\n\t})\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tbuf.WriteString(\"]\")\n\treturn buf.String(), nil\n}\n"},{"name":"storage.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/feed\"\n\n// Storage defines how published feed values should be read\n// and written.\ntype Storage interface {\n\tPut(value string) error\n\tGetLatest() feed.Value\n\tGetHistory() []feed.Value\n}\n"},{"name":"whitelist.gno","body":"package gnorkle\n\n// Whitelist is used to manage which agents are allowed to interact.\ntype Whitelist interface {\n\tClearAddresses()\n\tAddAddresses(addresses []string)\n\tRemoveAddress(address string)\n\tHasDefinition() bool\n\tHasAddress(address string) bool\n}\n\n// ClearWhitelist clears the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) ClearWhitelist(feedID string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.ClearAddresses()\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.ClearAddresses()\n\treturn nil\n}\n\n// AddToWhitelist adds the given addresses to the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) AddToWhitelist(feedID string, addresses []string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.AddAddresses(addresses)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.AddAddresses(addresses)\n\treturn nil\n}\n\n// RemoveFromWhitelist removes the given address from the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) RemoveFromWhitelist(feedID string, address string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.RemoveAddress(address)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.RemoveAddress(address)\n\treturn nil\n}\n\n// addressWhiteListed returns true if:\n// - the feed has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has no white list.\nfunc addressIsWhitelisted(instanceWhitelist, feedWhitelist Whitelist, address string, instanceWhitelistedOverride *bool) bool {\n\t// A feed whitelist takes priority, so it will return false if the feed has a whitelist and the caller is\n\t// not a part of it. An empty whitelist defers to the instance whitelist.\n\tif feedWhitelist != nil {\n\t\tif feedWhitelist.HasDefinition() \u0026\u0026 !feedWhitelist.HasAddress(address) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Getting to this point means that one of the following is true:\n\t\t// - the feed has no defined whitelist (so it can't possibly have the address whitelisted)\n\t\t// - the feed has a defined whitelist and the caller is a part of it\n\t\t//\n\t\t// In this case, we can be sure that the boolean indicating whether the feed has this address whitelisted\n\t\t// is equivalent to the boolean indicating whether the feed has a defined whitelist.\n\t\tif feedWhitelist.HasDefinition() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tif instanceWhitelistedOverride != nil {\n\t\treturn *instanceWhitelistedOverride\n\t}\n\n\t// We were unable able to determine whether this address is allowed after looking at the feed whitelist,\n\t// so fall back to the instance whitelist. A complete absence of values in the instance whitelist means\n\t// that the instance has no whitelist so we can return true because everything is allowed by default.\n\tif instanceWhitelist == nil || !instanceWhitelist.HasDefinition() {\n\t\treturn true\n\t}\n\n\t// The instance whitelist is defined so if the address is present then it is allowed.\n\treturn instanceWhitelist.HasAddress(address)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NbWI0jbIGAT9DImgfa9k87Q6HhdGPdmyot4XgJl1JTNdunGGnZO6wd/s/ircJ7hO/gqONZWrn7+b3X3xwbvzDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnorkle","path":"gno.land/p/demo/gnorkle/gnorkle","files":[{"name":"feed.gno","body":"package gnorkle\n\nimport (\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Feed is an abstraction used by a gnorkle `Instance` to ingest data from\n// agents and provide data feeds to consumers.\ntype Feed interface {\n\tID() string\n\tType() feed.Type\n\tValue() (value feed.Value, dataType string, consumable bool)\n\tIngest(funcType message.FuncType, rawMessage, providerAddress string) error\n\tMarshalJSON() ([]byte, error)\n\tTasks() []feed.Task\n\tIsActive() bool\n}\n\n// FeedWithWhitelist associates a `Whitelist` with a `Feed`.\ntype FeedWithWhitelist struct {\n\tFeed\n\tWhitelist\n}\n"},{"name":"ingester.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/ingester\"\n\n// Ingester is the abstraction that allows a `Feed` to ingest data from agents\n// and commit it to storage using zero or more intermediate aggregation steps.\ntype Ingester interface {\n\tType() ingester.Type\n\tIngest(value, providerAddress string) (canAutoCommit bool, err error)\n\tCommitValue(storage Storage, providerAddress string) error\n}\n"},{"name":"instance.gno","body":"package gnorkle\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Instance is a single instance of an oracle.\ntype Instance struct {\n\tfeeds *avl.Tree\n\twhitelist agent.Whitelist\n}\n\n// NewInstance creates a new instance of an oracle.\nfunc NewInstance() *Instance {\n\treturn \u0026Instance{\n\t\tfeeds: avl.NewTree(),\n\t}\n}\n\nfunc assertValidID(id string) error {\n\tif len(id) == 0 {\n\t\treturn errors.New(\"feed ids cannot be empty\")\n\t}\n\n\tif strings.Contains(id, \",\") {\n\t\treturn errors.New(\"feed ids cannot contain commas\")\n\t}\n\n\treturn nil\n}\n\nfunc (i *Instance) assertFeedDoesNotExist(id string) error {\n\tif i.feeds.Has(id) {\n\t\treturn errors.New(\"feed already exists\")\n\t}\n\n\treturn nil\n}\n\n// AddFeeds adds feeds to the instance with empty whitelists.\nfunc (i *Instance) AddFeeds(feeds ...Feed) error {\n\tfor _, feed := range feeds {\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: new(agent.Whitelist),\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// AddFeedsWithWhitelists adds feeds to the instance with the given whitelists.\nfunc (i *Instance) AddFeedsWithWhitelists(feeds ...FeedWithWhitelist) error {\n\tfor _, feed := range feeds {\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: feed.Whitelist,\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// RemoveFeed removes a feed from the instance.\nfunc (i *Instance) RemoveFeed(id string) {\n\ti.feeds.Remove(id)\n}\n\n// PostMessageHandler is a type that allows for post-processing of feed state after a feed\n// ingests a message from an agent.\ntype PostMessageHandler interface {\n\tHandle(i *Instance, funcType message.FuncType, feed Feed) error\n}\n\n// HandleMessage handles a message from an agent and routes to either the logic that returns\n// feed definitions or the logic that allows a feed to ingest a message.\n//\n// TODO: Consider further message types that could allow administrative action such as modifying\n// a feed's whitelist without the owner of this oracle having to maintain a reference to it.\nfunc (i *Instance) HandleMessage(msg string, postHandler PostMessageHandler) (string, error) {\n\tcaller := string(std.GetOrigCaller())\n\n\tfuncType, msg := message.ParseFunc(msg)\n\n\tswitch funcType {\n\tcase message.FuncTypeRequest:\n\t\treturn i.GetFeedDefinitions(caller)\n\n\tdefault:\n\t\tid, msg := message.ParseID(msg)\n\t\tif err := assertValidID(id); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tfeedWithWhitelist, err := i.getFeedWithWhitelist(id)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, caller, nil) {\n\t\t\treturn \"\", errors.New(\"caller not whitelisted\")\n\t\t}\n\n\t\tif err := feedWithWhitelist.Ingest(funcType, msg, caller); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif postHandler != nil {\n\t\t\tpostHandler.Handle(i, funcType, feedWithWhitelist)\n\t\t}\n\t}\n\n\treturn \"\", nil\n}\n\nfunc (i *Instance) getFeed(id string) (Feed, error) {\n\tuntypedFeed, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeed, ok := untypedFeed.(Feed)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid feed type\")\n\t}\n\n\treturn feed, nil\n}\n\nfunc (i *Instance) getFeedWithWhitelist(id string) (FeedWithWhitelist, error) {\n\tuntypedFeedWithWhitelist, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeedWithWhitelist, ok := untypedFeedWithWhitelist.(FeedWithWhitelist)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid feed with whitelist type\")\n\t}\n\n\treturn feedWithWhitelist, nil\n}\n\n// GetFeedValue returns the most recently published value of a feed along with a string\n// representation of the value's type and boolean indicating whether the value is\n// okay for consumption.\nfunc (i *Instance) GetFeedValue(id string) (feed.Value, string, bool, error) {\n\tfoundFeed, err := i.getFeed(id)\n\tif err != nil {\n\t\treturn feed.Value{}, \"\", false, err\n\t}\n\n\tvalue, valueType, consumable := foundFeed.Value()\n\treturn value, valueType, consumable, nil\n}\n\n// GetFeedDefinitions returns a JSON string representing the feed definitions for which the given\n// agent address is whitelisted to provide values for ingestion.\nfunc (i *Instance) GetFeedDefinitions(forAddress string) (string, error) {\n\tinstanceHasAddressWhitelisted := !i.whitelist.HasDefinition() || i.whitelist.HasAddress(forAddress)\n\n\tbuf := new(strings.Builder)\n\tbuf.WriteString(\"[\")\n\tfirst := true\n\tvar err error\n\n\t// The boolean value returned by this callback function indicates whether to stop iterating.\n\ti.feeds.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tfeedWithWhitelist, ok := value.(FeedWithWhitelist)\n\t\tif !ok {\n\t\t\terr = errors.New(\"invalid feed type\")\n\t\t\treturn true\n\t\t}\n\n\t\t// Don't give agents the ability to try to publish to inactive feeds.\n\t\tif !feedWithWhitelist.IsActive() {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip feeds the address is not whitelisted for.\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, forAddress, \u0026instanceHasAddressWhitelisted) {\n\t\t\treturn false\n\t\t}\n\n\t\tvar taskBytes []byte\n\t\tif taskBytes, err = feedWithWhitelist.Feed.MarshalJSON(); err != nil {\n\t\t\treturn true\n\t\t}\n\n\t\t// Guard against any tasks that shouldn't be returned; maybe they are not active because they have\n\t\t// already been completed.\n\t\tif len(taskBytes) == 0 {\n\t\t\treturn false\n\t\t}\n\n\t\tif !first {\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\n\t\tfirst = false\n\t\tbuf.Write(taskBytes)\n\t\treturn false\n\t})\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tbuf.WriteString(\"]\")\n\treturn buf.String(), nil\n}\n"},{"name":"storage.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/feed\"\n\n// Storage defines how published feed values should be read\n// and written.\ntype Storage interface {\n\tPut(value string) error\n\tGetLatest() feed.Value\n\tGetHistory() []feed.Value\n}\n"},{"name":"whitelist.gno","body":"package gnorkle\n\n// Whitelist is used to manage which agents are allowed to interact.\ntype Whitelist interface {\n\tClearAddresses()\n\tAddAddresses(addresses []string)\n\tRemoveAddress(address string)\n\tHasDefinition() bool\n\tHasAddress(address string) bool\n}\n\n// ClearWhitelist clears the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) ClearWhitelist(feedID string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.ClearAddresses()\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.ClearAddresses()\n\treturn nil\n}\n\n// AddToWhitelist adds the given addresses to the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) AddToWhitelist(feedID string, addresses []string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.AddAddresses(addresses)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.AddAddresses(addresses)\n\treturn nil\n}\n\n// RemoveFromWhitelist removes the given address from the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) RemoveFromWhitelist(feedID string, address string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.RemoveAddress(address)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.RemoveAddress(address)\n\treturn nil\n}\n\n// addressWhiteListed returns true if:\n// - the feed has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has no white list.\nfunc addressIsWhitelisted(instanceWhitelist, feedWhitelist Whitelist, address string, instanceWhitelistedOverride *bool) bool {\n\t// A feed whitelist takes priority, so it will return false if the feed has a whitelist and the caller is\n\t// not a part of it. An empty whitelist defers to the instance whitelist.\n\tif feedWhitelist != nil {\n\t\tif feedWhitelist.HasDefinition() \u0026\u0026 !feedWhitelist.HasAddress(address) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Getting to this point means that one of the following is true:\n\t\t// - the feed has no defined whitelist (so it can't possibly have the address whitelisted)\n\t\t// - the feed has a defined whitelist and the caller is a part of it\n\t\t//\n\t\t// In this case, we can be sure that the boolean indicating whether the feed has this address whitelisted\n\t\t// is equivalent to the boolean indicating whether the feed has a defined whitelist.\n\t\tif feedWhitelist.HasDefinition() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tif instanceWhitelistedOverride != nil {\n\t\treturn *instanceWhitelistedOverride\n\t}\n\n\t// We were unable able to determine whether this address is allowed after looking at the feed whitelist,\n\t// so fall back to the instance whitelist. A complete absence of values in the instance whitelist means\n\t// that the instance has no whitelist so we can return true because everything is allowed by default.\n\tif instanceWhitelist == nil || !instanceWhitelist.HasDefinition() {\n\t\treturn true\n\t}\n\n\t// The instance whitelist is defined so if the address is present then it is allowed.\n\treturn instanceWhitelist.HasAddress(address)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NbWI0jbIGAT9DImgfa9k87Q6HhdGPdmyot4XgJl1JTNdunGGnZO6wd/s/ircJ7hO/gqONZWrn7+b3X3xwbvzDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"gnorkle","path":"gno.land/p/demo/gnorkle/gnorkle","files":[{"name":"feed.gno","body":"package gnorkle\n\nimport (\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Feed is an abstraction used by a gnorkle `Instance` to ingest data from\n// agents and provide data feeds to consumers.\ntype Feed interface {\n\tID() string\n\tType() feed.Type\n\tValue() (value feed.Value, dataType string, consumable bool)\n\tIngest(funcType message.FuncType, rawMessage, providerAddress string) error\n\tMarshalJSON() ([]byte, error)\n\tTasks() []feed.Task\n\tIsActive() bool\n}\n\n// FeedWithWhitelist associates a `Whitelist` with a `Feed`.\ntype FeedWithWhitelist struct {\n\tFeed\n\tWhitelist\n}\n"},{"name":"ingester.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/ingester\"\n\n// Ingester is the abstraction that allows a `Feed` to ingest data from agents\n// and commit it to storage using zero or more intermediate aggregation steps.\ntype Ingester interface {\n\tType() ingester.Type\n\tIngest(value, providerAddress string) (canAutoCommit bool, err error)\n\tCommitValue(storage Storage, providerAddress string) error\n}\n"},{"name":"instance.gno","body":"package gnorkle\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Instance is a single instance of an oracle.\ntype Instance struct {\n\tfeeds *avl.Tree\n\twhitelist agent.Whitelist\n}\n\n// NewInstance creates a new instance of an oracle.\nfunc NewInstance() *Instance {\n\treturn \u0026Instance{\n\t\tfeeds: avl.NewTree(),\n\t}\n}\n\nfunc assertValidID(id string) error {\n\tif len(id) == 0 {\n\t\treturn errors.New(\"feed ids cannot be empty\")\n\t}\n\n\tif strings.Contains(id, \",\") {\n\t\treturn errors.New(\"feed ids cannot contain commas\")\n\t}\n\n\treturn nil\n}\n\nfunc (i *Instance) assertFeedDoesNotExist(id string) error {\n\tif i.feeds.Has(id) {\n\t\treturn errors.New(\"feed already exists\")\n\t}\n\n\treturn nil\n}\n\n// AddFeeds adds feeds to the instance with empty whitelists.\nfunc (i *Instance) AddFeeds(feeds ...Feed) error {\n\tfor _, feed := range feeds {\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: new(agent.Whitelist),\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// AddFeedsWithWhitelists adds feeds to the instance with the given whitelists.\nfunc (i *Instance) AddFeedsWithWhitelists(feeds ...FeedWithWhitelist) error {\n\tfor _, feed := range feeds {\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: feed.Whitelist,\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// RemoveFeed removes a feed from the instance.\nfunc (i *Instance) RemoveFeed(id string) {\n\ti.feeds.Remove(id)\n}\n\n// PostMessageHandler is a type that allows for post-processing of feed state after a feed\n// ingests a message from an agent.\ntype PostMessageHandler interface {\n\tHandle(i *Instance, funcType message.FuncType, feed Feed) error\n}\n\n// HandleMessage handles a message from an agent and routes to either the logic that returns\n// feed definitions or the logic that allows a feed to ingest a message.\n//\n// TODO: Consider further message types that could allow administrative action such as modifying\n// a feed's whitelist without the owner of this oracle having to maintain a reference to it.\nfunc (i *Instance) HandleMessage(msg string, postHandler PostMessageHandler) (string, error) {\n\tcaller := string(std.GetOrigCaller())\n\n\tfuncType, msg := message.ParseFunc(msg)\n\n\tswitch funcType {\n\tcase message.FuncTypeRequest:\n\t\treturn i.GetFeedDefinitions(caller)\n\n\tdefault:\n\t\tid, msg := message.ParseID(msg)\n\t\tif err := assertValidID(id); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tfeedWithWhitelist, err := i.getFeedWithWhitelist(id)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, caller, nil) {\n\t\t\treturn \"\", errors.New(\"caller not whitelisted\")\n\t\t}\n\n\t\tif err := feedWithWhitelist.Ingest(funcType, msg, caller); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif postHandler != nil {\n\t\t\tpostHandler.Handle(i, funcType, feedWithWhitelist)\n\t\t}\n\t}\n\n\treturn \"\", nil\n}\n\nfunc (i *Instance) getFeed(id string) (Feed, error) {\n\tuntypedFeed, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeed, ok := untypedFeed.(Feed)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid feed type\")\n\t}\n\n\treturn feed, nil\n}\n\nfunc (i *Instance) getFeedWithWhitelist(id string) (FeedWithWhitelist, error) {\n\tuntypedFeedWithWhitelist, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeedWithWhitelist, ok := untypedFeedWithWhitelist.(FeedWithWhitelist)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid feed with whitelist type\")\n\t}\n\n\treturn feedWithWhitelist, nil\n}\n\n// GetFeedValue returns the most recently published value of a feed along with a string\n// representation of the value's type and boolean indicating whether the value is\n// okay for consumption.\nfunc (i *Instance) GetFeedValue(id string) (feed.Value, string, bool, error) {\n\tfoundFeed, err := i.getFeed(id)\n\tif err != nil {\n\t\treturn feed.Value{}, \"\", false, err\n\t}\n\n\tvalue, valueType, consumable := foundFeed.Value()\n\treturn value, valueType, consumable, nil\n}\n\n// GetFeedDefinitions returns a JSON string representing the feed definitions for which the given\n// agent address is whitelisted to provide values for ingestion.\nfunc (i *Instance) GetFeedDefinitions(forAddress string) (string, error) {\n\tinstanceHasAddressWhitelisted := !i.whitelist.HasDefinition() || i.whitelist.HasAddress(forAddress)\n\n\tbuf := new(strings.Builder)\n\tbuf.WriteString(\"[\")\n\tfirst := true\n\tvar err error\n\n\t// The boolean value returned by this callback function indicates whether to stop iterating.\n\ti.feeds.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tfeedWithWhitelist, ok := value.(FeedWithWhitelist)\n\t\tif !ok {\n\t\t\terr = errors.New(\"invalid feed type\")\n\t\t\treturn true\n\t\t}\n\n\t\t// Don't give agents the ability to try to publish to inactive feeds.\n\t\tif !feedWithWhitelist.IsActive() {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip feeds the address is not whitelisted for.\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, forAddress, \u0026instanceHasAddressWhitelisted) {\n\t\t\treturn false\n\t\t}\n\n\t\tvar taskBytes []byte\n\t\tif taskBytes, err = feedWithWhitelist.Feed.MarshalJSON(); err != nil {\n\t\t\treturn true\n\t\t}\n\n\t\t// Guard against any tasks that shouldn't be returned; maybe they are not active because they have\n\t\t// already been completed.\n\t\tif len(taskBytes) == 0 {\n\t\t\treturn false\n\t\t}\n\n\t\tif !first {\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\n\t\tfirst = false\n\t\tbuf.Write(taskBytes)\n\t\treturn false\n\t})\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tbuf.WriteString(\"]\")\n\treturn buf.String(), nil\n}\n"},{"name":"storage.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/feed\"\n\n// Storage defines how published feed values should be read\n// and written.\ntype Storage interface {\n\tPut(value string) error\n\tGetLatest() feed.Value\n\tGetHistory() []feed.Value\n}\n"},{"name":"whitelist.gno","body":"package gnorkle\n\n// Whitelist is used to manage which agents are allowed to interact.\ntype Whitelist interface {\n\tClearAddresses()\n\tAddAddresses(addresses []string)\n\tRemoveAddress(address string)\n\tHasDefinition() bool\n\tHasAddress(address string) bool\n}\n\n// ClearWhitelist clears the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) ClearWhitelist(feedID string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.ClearAddresses()\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.ClearAddresses()\n\treturn nil\n}\n\n// AddToWhitelist adds the given addresses to the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) AddToWhitelist(feedID string, addresses []string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.AddAddresses(addresses)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.AddAddresses(addresses)\n\treturn nil\n}\n\n// RemoveFromWhitelist removes the given address from the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) RemoveFromWhitelist(feedID string, address string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.RemoveAddress(address)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.RemoveAddress(address)\n\treturn nil\n}\n\n// addressWhiteListed returns true if:\n// - the feed has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has no white list.\nfunc addressIsWhitelisted(instanceWhitelist, feedWhitelist Whitelist, address string, instanceWhitelistedOverride *bool) bool {\n\t// A feed whitelist takes priority, so it will return false if the feed has a whitelist and the caller is\n\t// not a part of it. An empty whitelist defers to the instance whitelist.\n\tif feedWhitelist != nil {\n\t\tif feedWhitelist.HasDefinition() \u0026\u0026 !feedWhitelist.HasAddress(address) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Getting to this point means that one of the following is true:\n\t\t// - the feed has no defined whitelist (so it can't possibly have the address whitelisted)\n\t\t// - the feed has a defined whitelist and the caller is a part of it\n\t\t//\n\t\t// In this case, we can be sure that the boolean indicating whether the feed has this address whitelisted\n\t\t// is equivalent to the boolean indicating whether the feed has a defined whitelist.\n\t\tif feedWhitelist.HasDefinition() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tif instanceWhitelistedOverride != nil {\n\t\treturn *instanceWhitelistedOverride\n\t}\n\n\t// We were unable able to determine whether this address is allowed after looking at the feed whitelist,\n\t// so fall back to the instance whitelist. A complete absence of values in the instance whitelist means\n\t// that the instance has no whitelist so we can return true because everything is allowed by default.\n\tif instanceWhitelist == nil || !instanceWhitelist.HasDefinition() {\n\t\treturn true\n\t}\n\n\t// The instance whitelist is defined so if the address is present then it is allowed.\n\treturn instanceWhitelist.HasAddress(address)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NbWI0jbIGAT9DImgfa9k87Q6HhdGPdmyot4XgJl1JTNdunGGnZO6wd/s/ircJ7hO/gqONZWrn7+b3X3xwbvzDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"govdao","path":"gno.land/r/gov/dao/v2","files":[{"name":"dao.gno","body":"package govdao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/simpledao\"\n)\n\nvar (\n\td *simpledao.SimpleDAO // the current active DAO implementation\n\tmembers membstore.MemberStore // the member store\n)\n\nfunc init() {\n\t// Example initial member set (just test addresses)\n\tset := []membstore.Member{\n\t\t{\n\t\t\tAddress: std.Address(\"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"),\n\t\t\tVotingPower: 10,\n\t\t},\n\t}\n\n\t// Set the member store\n\tmembers = membstore.NewMembStore(membstore.WithInitialMembers(set))\n\n\t// Set the DAO implementation\n\td = simpledao.New(members)\n}\n\n// Propose is designed to be called by another contract or with\n// `maketx run`, not by a `maketx call`.\nfunc Propose(request dao.ProposalRequest) uint64 {\n\tidx, err := d.Propose(request)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn idx\n}\n\n// VoteOnProposal casts a vote for the given proposal\nfunc VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif err := d.VoteOnProposal(id, option); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ExecuteProposal executes the proposal\nfunc ExecuteProposal(id uint64) {\n\tif err := d.ExecuteProposal(id); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetPropStore returns the active proposal store\nfunc GetPropStore() dao.PropStore {\n\treturn d\n}\n\n// GetMembStore returns the active member store\nfunc GetMembStore() membstore.MemberStore {\n\treturn members\n}\n"},{"name":"poc.gno","body":"package govdao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/combinederr\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/gov/executor\"\n)\n\nvar errNoChangesProposed = errors.New(\"no set changes proposed\")\n\n// NewGovDAOExecutor creates the govdao wrapped callback executor\nfunc NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif cb == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\treturn executor.NewCallbackExecutor(\n\t\tcb,\n\t\tstd.CurrentRealm().PkgPath(),\n\t)\n}\n\n// NewMemberPropExecutor returns the GOVDAO member change executor\nfunc NewMemberPropExecutor(changesFn func() []membstore.Member) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\terrs := \u0026combinederr.CombinedError{}\n\t\tcbMembers := changesFn()\n\n\t\tfor _, member := range cbMembers {\n\t\t\tswitch {\n\t\t\tcase !members.IsMember(member.Address):\n\t\t\t\t// Addition request\n\t\t\t\terr := members.AddMember(member)\n\n\t\t\t\terrs.Add(err)\n\t\t\tcase member.VotingPower == 0:\n\t\t\t\t// Remove request\n\t\t\t\terr := members.UpdateMember(member.Address, membstore.Member{\n\t\t\t\t\tAddress: member.Address,\n\t\t\t\t\tVotingPower: 0, // 0 indicated removal\n\t\t\t\t})\n\n\t\t\t\terrs.Add(err)\n\t\t\tdefault:\n\t\t\t\t// Update request\n\t\t\t\terr := members.UpdateMember(member.Address, member)\n\n\t\t\t\terrs.Add(err)\n\t\t\t}\n\t\t}\n\n\t\t// Check if there were any execution errors\n\t\tif errs.Size() == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errs\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\nfunc NewMembStoreImplExecutor(changeFn func() membstore.MemberStore) dao.Executor {\n\tif changeFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tsetMembStoreImpl(changeFn())\n\n\t\treturn nil\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\n// setMembStoreImpl sets a new dao.MembStore implementation\nfunc setMembStoreImpl(impl membstore.MemberStore) {\n\tif impl == nil {\n\t\tpanic(\"invalid member store\")\n\t}\n\n\tmembers = impl\n}\n"},{"name":"prop1_filetest.gno","body":"// Please note that this package is intended for demonstration purposes only.\n// You could execute this code (the init part) by running a `maketx run` command\n// or by uploading a similar package to a personal namespace.\n//\n// For the specific case of validators, a `r/gnoland/valopers` will be used to\n// organize the lifecycle of validators (register, etc), and this more complex\n// contract will be responsible to generate proposals.\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nfunc init() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\t// Wraps changesFn to emit a certified event only if executed from a\n\t// complete governance proposal process.\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Create a proposal\n\ttitle := \"Valset change\"\n\tdescription := \"manual valset changes proposal example\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, dao.YesVote)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n}\n\n// Output:\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - Valset change](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// No valset changes to apply.\n// --\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// Valset changes:\n// - #123: g12345678 (10)\n// - #123: g000000000 (10)\n// - #123: g000000000 (0)\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorRemoved\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"removeValidator\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop2_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/dao\"\n\tgnoblog \"gno.land/r/gnoland/blog\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tex := gnoblog.NewPostExecutor(\n\t\t\"hello-from-govdao\", // slug\n\t\t\"Hello from GovDAO!\", // title\n\t\t\"This post was published by a GovDAO proposal.\", // body\n\t\ttime.Now().Format(time.RFC3339), // publication date\n\t\t\"moul\", // authors\n\t\t\"govdao,example\", // tags\n\t)\n\n\t// Create a proposal\n\ttitle := \"govdao blog post title\"\n\tdescription := \"post a new blogpost about govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: ex,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n}\n\n// Output:\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - govdao blog post title](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # gno.land's blog\n//\n// No posts.\n// --\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # gno.land's blog\n//\n// \u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n//\n// ### [Hello from GovDAO!](/r/gnoland/blog:p/hello-from-govdao)\n// 13 Feb 2009\n// \u003c/div\u003e\u003c/div\u003e\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tmemberFn := func() []membstore.Member {\n\t\treturn []membstore.Member{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g123\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g456\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g789\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create a proposal\n\ttitle := \"new govdao member addition\"\n\tdescription := \"add new members to the govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: govdao.NewMemberPropExecutor(memberFn),\n\t}\n\n\tbridge.GovDAO().Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n}\n\n// Output:\n// --\n// 1\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: ACCEPTED**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (25%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 30 (75%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// 4\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop4_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdaov2 \"gno.land/r/gov/dao/v2\"\n\t\"gno.land/r/sys/params\"\n)\n\nfunc init() {\n\tmExec := params.NewStringPropExecutor(\"prop1.string\", \"value1\")\n\ttitle := \"Setting prop1.string param\"\n\tcomment := \"setting prop1.string param\"\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: comment,\n\t\tExecutor: mExec,\n\t}\n\tid := bridge.GovDAO().Propose(prop)\n\tprintln(\"new prop\", id)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n}\n\n// Output:\n// new prop 0\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - Setting prop1.string param](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n"},{"name":"render.gno","body":"package govdao\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc Render(path string) string {\n\tvar out string\n\n\tif path == \"\" {\n\t\tout += \"# GovDAO Proposals\\n\\n\"\n\t\tnumProposals := d.Size()\n\n\t\tif numProposals == 0 {\n\t\t\tout += \"No proposals found :(\" // corner case\n\t\t\treturn out\n\t\t}\n\n\t\toffset := uint64(0)\n\t\tif numProposals \u003e= 10 {\n\t\t\toffset = uint64(numProposals) - 10\n\t\t}\n\n\t\t// Fetch the last 10 proposals\n\t\tproposals := d.Proposals(offset, uint64(10))\n\t\tfor i := len(proposals) - 1; i \u003e= 0; i-- {\n\t\t\tprop := proposals[i]\n\n\t\t\ttitle := prop.Title()\n\t\t\tif len(title) \u003e 40 {\n\t\t\t\ttitle = title[:40] + \"...\"\n\t\t\t}\n\n\t\t\tpropID := offset + uint64(i)\n\t\t\tout += ufmt.Sprintf(\"## [Prop #%d - %s](/r/gov/dao/v2:%d)\\n\\n\", propID, title, propID)\n\t\t\tout += ufmt.Sprintf(\"**Status: %s**\\n\\n\", strings.ToUpper(prop.Status().String()))\n\n\t\t\tuser := users.GetUserByAddress(prop.Author())\n\t\t\tauthorDisplayText := prop.Author().String()\n\t\t\tif user != nil {\n\t\t\t\tauthorDisplayText = ufmt.Sprintf(\"[%s](/r/demo/users:%s)\", user.Name, user.Name)\n\t\t\t}\n\n\t\t\tout += ufmt.Sprintf(\"**Author: %s**\\n\\n\", authorDisplayText)\n\n\t\t\tif i != 0 {\n\t\t\t\tout += \"---\\n\\n\"\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t// Display the detailed proposal\n\tidx, err := strconv.Atoi(path)\n\tif err != nil {\n\t\treturn \"404: Invalid proposal ID\"\n\t}\n\n\t// Fetch the proposal\n\tprop, err := d.ProposalByID(uint64(idx))\n\tif err != nil {\n\t\treturn ufmt.Sprintf(\"unable to fetch proposal, %s\", err.Error())\n\t}\n\n\t// Render the proposal page\n\tout += renderPropPage(prop, idx)\n\n\treturn out\n}\n\nfunc renderPropPage(prop dao.Proposal, idx int) string {\n\tvar out string\n\n\tout += ufmt.Sprintf(\"# Proposal #%d - %s\\n\\n\", idx, prop.Title())\n\tout += prop.Render()\n\tout += renderAuthor(prop)\n\tout += renderActionBar(prop, idx)\n\tout += \"\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAuthor(p dao.Proposal) string {\n\tvar out string\n\n\tauthorUsername := \"\"\n\tuser := users.GetUserByAddress(p.Author())\n\tif user != nil {\n\t\tauthorUsername = user.Name\n\t}\n\n\tif authorUsername != \"\" {\n\t\tout += ufmt.Sprintf(\"**Author: [%s](/r/demo/users:%s)**\\n\\n\", authorUsername, authorUsername)\n\t} else {\n\t\tout += ufmt.Sprintf(\"**Author: %s**\\n\\n\", p.Author().String())\n\t}\n\n\treturn out\n}\n\nfunc renderActionBar(p dao.Proposal, idx int) string {\n\tvar out string\n\n\tout += \"### Actions\\n\\n\"\n\tif p.Status() == dao.Active {\n\t\tout += ufmt.Sprintf(\"#### [[Vote YES](%s)] - [[Vote NO](%s)] - [[Vote ABSTAIN](%s)]\",\n\t\t\ttxlink.Call(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"YES\"),\n\t\t\ttxlink.Call(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"NO\"),\n\t\t\ttxlink.Call(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"ABSTAIN\"),\n\t\t)\n\t} else {\n\t\tout += \"The voting period for this proposal is over.\"\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TBMxN0CxTgJG5cyDz03HfDhRMTfZwvQr6lyBEC0F7RBqa7bp4nUHSKdtFlNV61tdVSXWj1IaxSmegvKYv0fXBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"govdao","path":"gno.land/r/gov/dao/v2","files":[{"name":"dao.gno","body":"package govdao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/simpledao\"\n)\n\nvar (\n\td *simpledao.SimpleDAO // the current active DAO implementation\n\tmembers membstore.MemberStore // the member store\n)\n\nfunc init() {\n\t// Example initial member set (just test addresses)\n\tset := []membstore.Member{\n\t\t{\n\t\t\tAddress: std.Address(\"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"),\n\t\t\tVotingPower: 10,\n\t\t},\n\t}\n\n\t// Set the member store\n\tmembers = membstore.NewMembStore(membstore.WithInitialMembers(set))\n\n\t// Set the DAO implementation\n\td = simpledao.New(members)\n}\n\n// Propose is designed to be called by another contract or with\n// `maketx run`, not by a `maketx call`.\nfunc Propose(request dao.ProposalRequest) uint64 {\n\tidx, err := d.Propose(request)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn idx\n}\n\n// VoteOnProposal casts a vote for the given proposal\nfunc VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif err := d.VoteOnProposal(id, option); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ExecuteProposal executes the proposal\nfunc ExecuteProposal(id uint64) {\n\tif err := d.ExecuteProposal(id); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetPropStore returns the active proposal store\nfunc GetPropStore() dao.PropStore {\n\treturn d\n}\n\n// GetMembStore returns the active member store\nfunc GetMembStore() membstore.MemberStore {\n\treturn members\n}\n"},{"name":"poc.gno","body":"package govdao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/combinederr\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/gov/executor\"\n)\n\nvar errNoChangesProposed = errors.New(\"no set changes proposed\")\n\n// NewGovDAOExecutor creates the govdao wrapped callback executor\nfunc NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif cb == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\treturn executor.NewCallbackExecutor(\n\t\tcb,\n\t\tstd.CurrentRealm().PkgPath(),\n\t)\n}\n\n// NewMemberPropExecutor returns the GOVDAO member change executor\nfunc NewMemberPropExecutor(changesFn func() []membstore.Member) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\terrs := \u0026combinederr.CombinedError{}\n\t\tcbMembers := changesFn()\n\n\t\tfor _, member := range cbMembers {\n\t\t\tswitch {\n\t\t\tcase !members.IsMember(member.Address):\n\t\t\t\t// Addition request\n\t\t\t\terr := members.AddMember(member)\n\n\t\t\t\terrs.Add(err)\n\t\t\tcase member.VotingPower == 0:\n\t\t\t\t// Remove request\n\t\t\t\terr := members.UpdateMember(member.Address, membstore.Member{\n\t\t\t\t\tAddress: member.Address,\n\t\t\t\t\tVotingPower: 0, // 0 indicated removal\n\t\t\t\t})\n\n\t\t\t\terrs.Add(err)\n\t\t\tdefault:\n\t\t\t\t// Update request\n\t\t\t\terr := members.UpdateMember(member.Address, member)\n\n\t\t\t\terrs.Add(err)\n\t\t\t}\n\t\t}\n\n\t\t// Check if there were any execution errors\n\t\tif errs.Size() == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errs\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\nfunc NewMembStoreImplExecutor(changeFn func() membstore.MemberStore) dao.Executor {\n\tif changeFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tsetMembStoreImpl(changeFn())\n\n\t\treturn nil\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\n// setMembStoreImpl sets a new dao.MembStore implementation\nfunc setMembStoreImpl(impl membstore.MemberStore) {\n\tif impl == nil {\n\t\tpanic(\"invalid member store\")\n\t}\n\n\tmembers = impl\n}\n"},{"name":"prop1_filetest.gno","body":"// Please note that this package is intended for demonstration purposes only.\n// You could execute this code (the init part) by running a `maketx run` command\n// or by uploading a similar package to a personal namespace.\n//\n// For the specific case of validators, a `r/gnoland/valopers` will be used to\n// organize the lifecycle of validators (register, etc), and this more complex\n// contract will be responsible to generate proposals.\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nfunc init() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\t// Wraps changesFn to emit a certified event only if executed from a\n\t// complete governance proposal process.\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Create a proposal\n\ttitle := \"Valset change\"\n\tdescription := \"manual valset changes proposal example\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, dao.YesVote)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n}\n\n// Output:\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - Valset change](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// No valset changes to apply.\n// --\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// Valset changes:\n// - #123: g12345678 (10)\n// - #123: g000000000 (10)\n// - #123: g000000000 (0)\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorRemoved\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"removeValidator\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop2_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/dao\"\n\tgnoblog \"gno.land/r/gnoland/blog\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tex := gnoblog.NewPostExecutor(\n\t\t\"hello-from-govdao\", // slug\n\t\t\"Hello from GovDAO!\", // title\n\t\t\"This post was published by a GovDAO proposal.\", // body\n\t\ttime.Now().Format(time.RFC3339), // publication date\n\t\t\"moul\", // authors\n\t\t\"govdao,example\", // tags\n\t)\n\n\t// Create a proposal\n\ttitle := \"govdao blog post title\"\n\tdescription := \"post a new blogpost about govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: ex,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n}\n\n// Output:\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - govdao blog post title](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # gno.land's blog\n//\n// No posts.\n// --\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # gno.land's blog\n//\n// \u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n//\n// ### [Hello from GovDAO!](/r/gnoland/blog:p/hello-from-govdao)\n// 13 Feb 2009\n// \u003c/div\u003e\u003c/div\u003e\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tmemberFn := func() []membstore.Member {\n\t\treturn []membstore.Member{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g123\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g456\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g789\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create a proposal\n\ttitle := \"new govdao member addition\"\n\tdescription := \"add new members to the govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: govdao.NewMemberPropExecutor(memberFn),\n\t}\n\n\tbridge.GovDAO().Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n}\n\n// Output:\n// --\n// 1\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: ACCEPTED**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (25%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 30 (75%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// 4\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop4_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdaov2 \"gno.land/r/gov/dao/v2\"\n\t\"gno.land/r/sys/params\"\n)\n\nfunc init() {\n\tmExec := params.NewStringPropExecutor(\"prop1.string\", \"value1\")\n\ttitle := \"Setting prop1.string param\"\n\tcomment := \"setting prop1.string param\"\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: comment,\n\t\tExecutor: mExec,\n\t}\n\tid := bridge.GovDAO().Propose(prop)\n\tprintln(\"new prop\", id)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n}\n\n// Output:\n// new prop 0\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - Setting prop1.string param](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n"},{"name":"render.gno","body":"package govdao\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc Render(path string) string {\n\tvar out string\n\n\tif path == \"\" {\n\t\tout += \"# GovDAO Proposals\\n\\n\"\n\t\tnumProposals := d.Size()\n\n\t\tif numProposals == 0 {\n\t\t\tout += \"No proposals found :(\" // corner case\n\t\t\treturn out\n\t\t}\n\n\t\toffset := uint64(0)\n\t\tif numProposals \u003e= 10 {\n\t\t\toffset = uint64(numProposals) - 10\n\t\t}\n\n\t\t// Fetch the last 10 proposals\n\t\tproposals := d.Proposals(offset, uint64(10))\n\t\tfor i := len(proposals) - 1; i \u003e= 0; i-- {\n\t\t\tprop := proposals[i]\n\n\t\t\ttitle := prop.Title()\n\t\t\tif len(title) \u003e 40 {\n\t\t\t\ttitle = title[:40] + \"...\"\n\t\t\t}\n\n\t\t\tpropID := offset + uint64(i)\n\t\t\tout += ufmt.Sprintf(\"## [Prop #%d - %s](/r/gov/dao/v2:%d)\\n\\n\", propID, title, propID)\n\t\t\tout += ufmt.Sprintf(\"**Status: %s**\\n\\n\", strings.ToUpper(prop.Status().String()))\n\n\t\t\tuser := users.GetUserByAddress(prop.Author())\n\t\t\tauthorDisplayText := prop.Author().String()\n\t\t\tif user != nil {\n\t\t\t\tauthorDisplayText = ufmt.Sprintf(\"[%s](/r/demo/users:%s)\", user.Name, user.Name)\n\t\t\t}\n\n\t\t\tout += ufmt.Sprintf(\"**Author: %s**\\n\\n\", authorDisplayText)\n\n\t\t\tif i != 0 {\n\t\t\t\tout += \"---\\n\\n\"\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t// Display the detailed proposal\n\tidx, err := strconv.Atoi(path)\n\tif err != nil {\n\t\treturn \"404: Invalid proposal ID\"\n\t}\n\n\t// Fetch the proposal\n\tprop, err := d.ProposalByID(uint64(idx))\n\tif err != nil {\n\t\treturn ufmt.Sprintf(\"unable to fetch proposal, %s\", err.Error())\n\t}\n\n\t// Render the proposal page\n\tout += renderPropPage(prop, idx)\n\n\treturn out\n}\n\nfunc renderPropPage(prop dao.Proposal, idx int) string {\n\tvar out string\n\n\tout += ufmt.Sprintf(\"# Proposal #%d - %s\\n\\n\", idx, prop.Title())\n\tout += prop.Render()\n\tout += renderAuthor(prop)\n\tout += renderActionBar(prop, idx)\n\tout += \"\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAuthor(p dao.Proposal) string {\n\tvar out string\n\n\tauthorUsername := \"\"\n\tuser := users.GetUserByAddress(p.Author())\n\tif user != nil {\n\t\tauthorUsername = user.Name\n\t}\n\n\tif authorUsername != \"\" {\n\t\tout += ufmt.Sprintf(\"**Author: [%s](/r/demo/users:%s)**\\n\\n\", authorUsername, authorUsername)\n\t} else {\n\t\tout += ufmt.Sprintf(\"**Author: %s**\\n\\n\", p.Author().String())\n\t}\n\n\treturn out\n}\n\nfunc renderActionBar(p dao.Proposal, idx int) string {\n\tvar out string\n\n\tout += \"### Actions\\n\\n\"\n\tif p.Status() == dao.Active {\n\t\tout += ufmt.Sprintf(\"#### [[Vote YES](%s)] - [[Vote NO](%s)] - [[Vote ABSTAIN](%s)]\",\n\t\t\ttxlink.URL(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"YES\"),\n\t\t\ttxlink.URL(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"NO\"),\n\t\t\ttxlink.URL(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"ABSTAIN\"),\n\t\t)\n\t} else {\n\t\tout += \"The voting period for this proposal is over.\"\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wyPvjgvBlHrnF8FFYsTQrrnLqbTHznnwwOlsEISPonfSQ0iuIkHfPJ+LKkQkhoTXMoJEHHP0Lozk+DE8xKIaBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"govdao","path":"gno.land/r/gov/dao/v2","files":[{"name":"dao.gno","body":"package govdao\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/simpledao\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\td *simpledao.SimpleDAO // the current active DAO implementation\n\tmembers membstore.MemberStore // the member store\n)\n\nfunc init() {\n\t// Example initial member set (just test addresses)\n\tset := []membstore.Member{\n\t\t{\n\t\t\tAddress: std.Address(\"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"),\n\t\t\tVotingPower: 10,\n\t\t},\n\t}\n\n\t// Set the member store\n\tmembers = membstore.NewMembStore(membstore.WithInitialMembers(set))\n\n\t// Set the DAO implementation\n\td = simpledao.New(members)\n}\n\n// Propose is designed to be called by another contract or with\n// `maketx run`, not by a `maketx call`.\nfunc Propose(request dao.ProposalRequest) uint64 {\n\tidx, err := d.Propose(request)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn idx\n}\n\n// VoteOnProposal casts a vote for the given proposal\nfunc VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif err := d.VoteOnProposal(id, option); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ExecuteProposal executes the proposal\nfunc ExecuteProposal(id uint64) {\n\tif err := d.ExecuteProposal(id); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetPropStore returns the active proposal store\nfunc GetPropStore() dao.PropStore {\n\treturn d\n}\n\n// GetMembStore returns the active member store\nfunc GetMembStore() membstore.MemberStore {\n\treturn members\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tnumProposals := d.Size()\n\n\t\tif numProposals == 0 {\n\t\t\treturn \"No proposals found :(\" // corner case\n\t\t}\n\n\t\toutput := \"\"\n\n\t\toffset := uint64(0)\n\t\tif numProposals \u003e= 10 {\n\t\t\toffset = uint64(numProposals) - 10\n\t\t}\n\n\t\t// Fetch the last 10 proposals\n\t\tfor idx, prop := range d.Proposals(offset, uint64(10)) {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- [Proposal #%d](%s:%d) - (**%s**)(by %s)\\n\",\n\t\t\t\tidx,\n\t\t\t\t\"/r/gov/dao/v2\",\n\t\t\t\tidx,\n\t\t\t\tprop.Status().String(),\n\t\t\t\tprop.Author().String(),\n\t\t\t)\n\t\t}\n\n\t\treturn output\n\t}\n\n\t// Display the detailed proposal\n\tidx, err := strconv.Atoi(path)\n\tif err != nil {\n\t\treturn \"404: Invalid proposal ID\"\n\t}\n\n\t// Fetch the proposal\n\tprop, err := d.ProposalByID(uint64(idx))\n\tif err != nil {\n\t\treturn ufmt.Sprintf(\"unable to fetch proposal, %s\", err.Error())\n\t}\n\n\t// Render the proposal\n\toutput := \"\"\n\toutput += ufmt.Sprintf(\"# Prop #%d\", idx)\n\toutput += \"\\n\\n\"\n\toutput += prop.Render()\n\toutput += \"\\n\\n\"\n\n\treturn output\n}\n"},{"name":"poc.gno","body":"package govdao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/combinederr\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/gov/executor\"\n)\n\nvar errNoChangesProposed = errors.New(\"no set changes proposed\")\n\n// NewGovDAOExecutor creates the govdao wrapped callback executor\nfunc NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif cb == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\treturn executor.NewCallbackExecutor(\n\t\tcb,\n\t\tstd.CurrentRealm().PkgPath(),\n\t)\n}\n\n// NewMemberPropExecutor returns the GOVDAO member change executor\nfunc NewMemberPropExecutor(changesFn func() []membstore.Member) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\terrs := \u0026combinederr.CombinedError{}\n\t\tcbMembers := changesFn()\n\n\t\tfor _, member := range cbMembers {\n\t\t\tswitch {\n\t\t\tcase !members.IsMember(member.Address):\n\t\t\t\t// Addition request\n\t\t\t\terr := members.AddMember(member)\n\n\t\t\t\terrs.Add(err)\n\t\t\tcase member.VotingPower == 0:\n\t\t\t\t// Remove request\n\t\t\t\terr := members.UpdateMember(member.Address, membstore.Member{\n\t\t\t\t\tAddress: member.Address,\n\t\t\t\t\tVotingPower: 0, // 0 indicated removal\n\t\t\t\t})\n\n\t\t\t\terrs.Add(err)\n\t\t\tdefault:\n\t\t\t\t// Update request\n\t\t\t\terr := members.UpdateMember(member.Address, member)\n\n\t\t\t\terrs.Add(err)\n\t\t\t}\n\t\t}\n\n\t\t// Check if there were any execution errors\n\t\tif errs.Size() == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errs\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\nfunc NewMembStoreImplExecutor(changeFn func() membstore.MemberStore) dao.Executor {\n\tif changeFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tsetMembStoreImpl(changeFn())\n\n\t\treturn nil\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\n// setMembStoreImpl sets a new dao.MembStore implementation\nfunc setMembStoreImpl(impl membstore.MemberStore) {\n\tif impl == nil {\n\t\tpanic(\"invalid member store\")\n\t}\n\n\tmembers = impl\n}\n"},{"name":"prop1_filetest.gno","body":"// Please note that this package is intended for demonstration purposes only.\n// You could execute this code (the init part) by running a `maketx run` command\n// or by uploading a similar package to a personal namespace.\n//\n// For the specific case of validators, a `r/gnoland/valopers` will be used to\n// organize the lifecycle of validators (register, etc), and this more complex\n// contract will be responsible to generate proposals.\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nfunc init() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\t// Wraps changesFn to emit a certified event only if executed from a\n\t// complete governance proposal process.\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Create a proposal\n\tdescription := \"manual valset changes proposal example\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, dao.YesVote)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n}\n\n// Output:\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// No valset changes to apply.\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// Valset changes:\n// - #123: g12345678 (10)\n// - #123: g000000000 (10)\n// - #123: g000000000 (0)\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorRemoved\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"removeValidator\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop2_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/dao\"\n\tgnoblog \"gno.land/r/gnoland/blog\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tex := gnoblog.NewPostExecutor(\n\t\t\"hello-from-govdao\", // slug\n\t\t\"Hello from GovDAO!\", // title\n\t\t\"This post was published by a GovDAO proposal.\", // body\n\t\ttime.Now().Format(time.RFC3339), // publication date\n\t\t\"moul\", // authors\n\t\t\"govdao,example\", // tags\n\t)\n\n\t// Create a proposal\n\tdescription := \"post a new blogpost about govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: ex,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n}\n\n// Output:\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// # gno.land's blog\n//\n// No posts.\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// # gno.land's blog\n//\n// \u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n//\n// ### [Hello from GovDAO!](/r/gnoland/blog:p/hello-from-govdao)\n// 13 Feb 2009\n// \u003c/div\u003e\u003c/div\u003e\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tmemberFn := func() []membstore.Member {\n\t\treturn []membstore.Member{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g123\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g456\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g789\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create a proposal\n\tdescription := \"add new members to the govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: govdao.NewMemberPropExecutor(memberFn),\n\t}\n\n\tbridge.GovDAO().Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n}\n\n// Output:\n// --\n// 1\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**accepted**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (25%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 30 (75%)\n//\n// Threshold met: false\n//\n//\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**execution successful**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// 4\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop4_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdaov2 \"gno.land/r/gov/dao/v2\"\n\t\"gno.land/r/sys/params\"\n)\n\nfunc init() {\n\tmExec := params.NewStringPropExecutor(\"prop1.string\", \"value1\")\n\tcomment := \"setting prop1.string param\"\n\tprop := dao.ProposalRequest{\n\t\tDescription: comment,\n\t\tExecutor: mExec,\n\t}\n\tid := bridge.GovDAO().Propose(prop)\n\tprintln(\"new prop\", id)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n}\n\n// Output:\n// new prop 0\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"set\",\n// \"attrs\": [\n// {\n// \"key\": \"k\",\n// \"value\": \"prop1.string\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/sys/params\",\n// \"func\": \"\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kTZJtxNs4sZQr2YDPLSpRl+DN7V5qjFEiLEWPDr+cMFqbXftCXoZeO1VkmqszNjQS9SzTpPioVasjTK0MJZuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"govdao","path":"gno.land/r/gov/dao/v2","files":[{"name":"dao.gno","body":"package govdao\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/simpledao\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\td *simpledao.SimpleDAO // the current active DAO implementation\n\tmembers membstore.MemberStore // the member store\n)\n\nfunc init() {\n\t// Example initial member set (just test addresses)\n\tset := []membstore.Member{\n\t\t{\n\t\t\tAddress: std.Address(\"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"),\n\t\t\tVotingPower: 10,\n\t\t},\n\t}\n\n\t// Set the member store\n\tmembers = membstore.NewMembStore(membstore.WithInitialMembers(set))\n\n\t// Set the DAO implementation\n\td = simpledao.New(members)\n}\n\n// Propose is designed to be called by another contract or with\n// `maketx run`, not by a `maketx call`.\nfunc Propose(request dao.ProposalRequest) uint64 {\n\tidx, err := d.Propose(request)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn idx\n}\n\n// VoteOnProposal casts a vote for the given proposal\nfunc VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif err := d.VoteOnProposal(id, option); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ExecuteProposal executes the proposal\nfunc ExecuteProposal(id uint64) {\n\tif err := d.ExecuteProposal(id); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetPropStore returns the active proposal store\nfunc GetPropStore() dao.PropStore {\n\treturn d\n}\n\n// GetMembStore returns the active member store\nfunc GetMembStore() membstore.MemberStore {\n\treturn members\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tnumProposals := d.Size()\n\n\t\tif numProposals == 0 {\n\t\t\treturn \"No proposals found :(\" // corner case\n\t\t}\n\n\t\toutput := \"\"\n\n\t\toffset := uint64(0)\n\t\tif numProposals \u003e= 10 {\n\t\t\toffset = uint64(numProposals) - 10\n\t\t}\n\n\t\t// Fetch the last 10 proposals\n\t\tfor idx, prop := range d.Proposals(offset, uint64(10)) {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- [Proposal #%d](%s:%d) - (**%s**)(by %s)\\n\",\n\t\t\t\tidx,\n\t\t\t\t\"/r/gov/dao/v2\",\n\t\t\t\tidx,\n\t\t\t\tprop.Status().String(),\n\t\t\t\tprop.Author().String(),\n\t\t\t)\n\t\t}\n\n\t\treturn output\n\t}\n\n\t// Display the detailed proposal\n\tidx, err := strconv.Atoi(path)\n\tif err != nil {\n\t\treturn \"404: Invalid proposal ID\"\n\t}\n\n\t// Fetch the proposal\n\tprop, err := d.ProposalByID(uint64(idx))\n\tif err != nil {\n\t\treturn ufmt.Sprintf(\"unable to fetch proposal, %s\", err.Error())\n\t}\n\n\t// Render the proposal\n\toutput := \"\"\n\toutput += ufmt.Sprintf(\"# Prop #%d\", idx)\n\toutput += \"\\n\\n\"\n\toutput += prop.Render()\n\toutput += \"\\n\\n\"\n\n\treturn output\n}\n"},{"name":"poc.gno","body":"package govdao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/combinederr\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/gov/executor\"\n)\n\nvar errNoChangesProposed = errors.New(\"no set changes proposed\")\n\n// NewGovDAOExecutor creates the govdao wrapped callback executor\nfunc NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif cb == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\treturn executor.NewCallbackExecutor(\n\t\tcb,\n\t\tstd.CurrentRealm().PkgPath(),\n\t)\n}\n\n// NewMemberPropExecutor returns the GOVDAO member change executor\nfunc NewMemberPropExecutor(changesFn func() []membstore.Member) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\terrs := \u0026combinederr.CombinedError{}\n\t\tcbMembers := changesFn()\n\n\t\tfor _, member := range cbMembers {\n\t\t\tswitch {\n\t\t\tcase !members.IsMember(member.Address):\n\t\t\t\t// Addition request\n\t\t\t\terr := members.AddMember(member)\n\n\t\t\t\terrs.Add(err)\n\t\t\tcase member.VotingPower == 0:\n\t\t\t\t// Remove request\n\t\t\t\terr := members.UpdateMember(member.Address, membstore.Member{\n\t\t\t\t\tAddress: member.Address,\n\t\t\t\t\tVotingPower: 0, // 0 indicated removal\n\t\t\t\t})\n\n\t\t\t\terrs.Add(err)\n\t\t\tdefault:\n\t\t\t\t// Update request\n\t\t\t\terr := members.UpdateMember(member.Address, member)\n\n\t\t\t\terrs.Add(err)\n\t\t\t}\n\t\t}\n\n\t\t// Check if there were any execution errors\n\t\tif errs.Size() == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errs\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\nfunc NewMembStoreImplExecutor(changeFn func() membstore.MemberStore) dao.Executor {\n\tif changeFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tsetMembStoreImpl(changeFn())\n\n\t\treturn nil\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\n// setMembStoreImpl sets a new dao.MembStore implementation\nfunc setMembStoreImpl(impl membstore.MemberStore) {\n\tif impl == nil {\n\t\tpanic(\"invalid member store\")\n\t}\n\n\tmembers = impl\n}\n"},{"name":"prop1_filetest.gno","body":"// Please note that this package is intended for demonstration purposes only.\n// You could execute this code (the init part) by running a `maketx run` command\n// or by uploading a similar package to a personal namespace.\n//\n// For the specific case of validators, a `r/gnoland/valopers` will be used to\n// organize the lifecycle of validators (register, etc), and this more complex\n// contract will be responsible to generate proposals.\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nfunc init() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\t// Wraps changesFn to emit a certified event only if executed from a\n\t// complete governance proposal process.\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Create a proposal\n\tdescription := \"manual valset changes proposal example\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, dao.YesVote)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n}\n\n// Output:\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// No valset changes to apply.\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// Valset changes:\n// - #123: g12345678 (10)\n// - #123: g000000000 (10)\n// - #123: g000000000 (0)\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorRemoved\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"removeValidator\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop2_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/dao\"\n\tgnoblog \"gno.land/r/gnoland/blog\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tex := gnoblog.NewPostExecutor(\n\t\t\"hello-from-govdao\", // slug\n\t\t\"Hello from GovDAO!\", // title\n\t\t\"This post was published by a GovDAO proposal.\", // body\n\t\ttime.Now().Format(time.RFC3339), // publication date\n\t\t\"moul\", // authors\n\t\t\"govdao,example\", // tags\n\t)\n\n\t// Create a proposal\n\tdescription := \"post a new blogpost about govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: ex,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n}\n\n// Output:\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// # gno.land's blog\n//\n// No posts.\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// # gno.land's blog\n//\n// \u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n//\n// ### [Hello from GovDAO!](/r/gnoland/blog:p/hello-from-govdao)\n// 13 Feb 2009\n// \u003c/div\u003e\u003c/div\u003e\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tmemberFn := func() []membstore.Member {\n\t\treturn []membstore.Member{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g123\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g456\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g789\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create a proposal\n\tdescription := \"add new members to the govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: govdao.NewMemberPropExecutor(memberFn),\n\t}\n\n\tbridge.GovDAO().Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n}\n\n// Output:\n// --\n// 1\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**accepted**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (25%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 30 (75%)\n//\n// Threshold met: false\n//\n//\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**execution successful**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// 4\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop4_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdaov2 \"gno.land/r/gov/dao/v2\"\n\t\"gno.land/r/sys/params\"\n)\n\nfunc init() {\n\tmExec := params.NewStringPropExecutor(\"prop1.string\", \"value1\")\n\tcomment := \"setting prop1.string param\"\n\tprop := dao.ProposalRequest{\n\t\tDescription: comment,\n\t\tExecutor: mExec,\n\t}\n\tid := bridge.GovDAO().Propose(prop)\n\tprintln(\"new prop\", id)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n}\n\n// Output:\n// new prop 0\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"set\",\n// \"attrs\": [\n// {\n// \"key\": \"k\",\n// \"value\": \"prop1.string\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/sys/params\",\n// \"func\": \"\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kTZJtxNs4sZQr2YDPLSpRl+DN7V5qjFEiLEWPDr+cMFqbXftCXoZeO1VkmqszNjQS9SzTpPioVasjTK0MJZuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"govdao","path":"gno.land/r/gov/dao/v2","files":[{"name":"dao.gno","body":"package govdao\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/simpledao\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\td *simpledao.SimpleDAO // the current active DAO implementation\n\tmembers membstore.MemberStore // the member store\n)\n\nfunc init() {\n\t// Example initial member set (just test addresses)\n\tset := []membstore.Member{\n\t\t{\n\t\t\tAddress: std.Address(\"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"),\n\t\t\tVotingPower: 10,\n\t\t},\n\t}\n\n\t// Set the member store\n\tmembers = membstore.NewMembStore(membstore.WithInitialMembers(set))\n\n\t// Set the DAO implementation\n\td = simpledao.New(members)\n}\n\n// Propose is designed to be called by another contract or with\n// `maketx run`, not by a `maketx call`.\nfunc Propose(request dao.ProposalRequest) uint64 {\n\tidx, err := d.Propose(request)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn idx\n}\n\n// VoteOnProposal casts a vote for the given proposal\nfunc VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif err := d.VoteOnProposal(id, option); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ExecuteProposal executes the proposal\nfunc ExecuteProposal(id uint64) {\n\tif err := d.ExecuteProposal(id); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetPropStore returns the active proposal store\nfunc GetPropStore() dao.PropStore {\n\treturn d\n}\n\n// GetMembStore returns the active member store\nfunc GetMembStore() membstore.MemberStore {\n\treturn members\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tnumProposals := d.Size()\n\n\t\tif numProposals == 0 {\n\t\t\treturn \"No proposals found :(\" // corner case\n\t\t}\n\n\t\toutput := \"\"\n\n\t\toffset := uint64(0)\n\t\tif numProposals \u003e= 10 {\n\t\t\toffset = uint64(numProposals) - 10\n\t\t}\n\n\t\t// Fetch the last 10 proposals\n\t\tfor idx, prop := range d.Proposals(offset, uint64(10)) {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- [Proposal #%d](%s:%d) - (**%s**)(by %s)\\n\",\n\t\t\t\tidx,\n\t\t\t\t\"/r/gov/dao/v2\",\n\t\t\t\tidx,\n\t\t\t\tprop.Status().String(),\n\t\t\t\tprop.Author().String(),\n\t\t\t)\n\t\t}\n\n\t\treturn output\n\t}\n\n\t// Display the detailed proposal\n\tidx, err := strconv.Atoi(path)\n\tif err != nil {\n\t\treturn \"404: Invalid proposal ID\"\n\t}\n\n\t// Fetch the proposal\n\tprop, err := d.ProposalByID(uint64(idx))\n\tif err != nil {\n\t\treturn ufmt.Sprintf(\"unable to fetch proposal, %s\", err.Error())\n\t}\n\n\t// Render the proposal\n\toutput := \"\"\n\toutput += ufmt.Sprintf(\"# Prop #%d\", idx)\n\toutput += \"\\n\\n\"\n\toutput += prop.Render()\n\toutput += \"\\n\\n\"\n\n\treturn output\n}\n"},{"name":"poc.gno","body":"package govdao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/combinederr\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/gov/executor\"\n)\n\nvar errNoChangesProposed = errors.New(\"no set changes proposed\")\n\n// NewGovDAOExecutor creates the govdao wrapped callback executor\nfunc NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif cb == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\treturn executor.NewCallbackExecutor(\n\t\tcb,\n\t\tstd.CurrentRealm().PkgPath(),\n\t)\n}\n\n// NewMemberPropExecutor returns the GOVDAO member change executor\nfunc NewMemberPropExecutor(changesFn func() []membstore.Member) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\terrs := \u0026combinederr.CombinedError{}\n\t\tcbMembers := changesFn()\n\n\t\tfor _, member := range cbMembers {\n\t\t\tswitch {\n\t\t\tcase !members.IsMember(member.Address):\n\t\t\t\t// Addition request\n\t\t\t\terr := members.AddMember(member)\n\n\t\t\t\terrs.Add(err)\n\t\t\tcase member.VotingPower == 0:\n\t\t\t\t// Remove request\n\t\t\t\terr := members.UpdateMember(member.Address, membstore.Member{\n\t\t\t\t\tAddress: member.Address,\n\t\t\t\t\tVotingPower: 0, // 0 indicated removal\n\t\t\t\t})\n\n\t\t\t\terrs.Add(err)\n\t\t\tdefault:\n\t\t\t\t// Update request\n\t\t\t\terr := members.UpdateMember(member.Address, member)\n\n\t\t\t\terrs.Add(err)\n\t\t\t}\n\t\t}\n\n\t\t// Check if there were any execution errors\n\t\tif errs.Size() == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errs\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\nfunc NewMembStoreImplExecutor(changeFn func() membstore.MemberStore) dao.Executor {\n\tif changeFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tsetMembStoreImpl(changeFn())\n\n\t\treturn nil\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\n// setMembStoreImpl sets a new dao.MembStore implementation\nfunc setMembStoreImpl(impl membstore.MemberStore) {\n\tif impl == nil {\n\t\tpanic(\"invalid member store\")\n\t}\n\n\tmembers = impl\n}\n"},{"name":"prop1_filetest.gno","body":"// Please note that this package is intended for demonstration purposes only.\n// You could execute this code (the init part) by running a `maketx run` command\n// or by uploading a similar package to a personal namespace.\n//\n// For the specific case of validators, a `r/gnoland/valopers` will be used to\n// organize the lifecycle of validators (register, etc), and this more complex\n// contract will be responsible to generate proposals.\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nfunc init() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\t// Wraps changesFn to emit a certified event only if executed from a\n\t// complete governance proposal process.\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Create a proposal\n\tdescription := \"manual valset changes proposal example\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, dao.YesVote)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n}\n\n// Output:\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// No valset changes to apply.\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// manual valset changes proposal example\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// Valset changes:\n// - #123: g12345678 (10)\n// - #123: g000000000 (10)\n// - #123: g000000000 (0)\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorRemoved\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"removeValidator\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop2_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/dao\"\n\tgnoblog \"gno.land/r/gnoland/blog\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tex := gnoblog.NewPostExecutor(\n\t\t\"hello-from-govdao\", // slug\n\t\t\"Hello from GovDAO!\", // title\n\t\t\"This post was published by a GovDAO proposal.\", // body\n\t\ttime.Now().Format(time.RFC3339), // publication date\n\t\t\"moul\", // authors\n\t\t\"govdao,example\", // tags\n\t)\n\n\t// Create a proposal\n\tdescription := \"post a new blogpost about govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: ex,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n}\n\n// Output:\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// # Gnoland's Blog\n//\n// No posts.\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// post a new blogpost about govdao\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// # Gnoland's Blog\n//\n// \u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n//\n// ### [Hello from GovDAO!](/r/gnoland/blog:p/hello-from-govdao)\n// 13 Feb 2009\n// \u003c/div\u003e\u003c/div\u003e\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tmemberFn := func() []membstore.Member {\n\t\treturn []membstore.Member{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g123\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g456\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g789\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create a proposal\n\tdescription := \"add new members to the govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: govdao.NewMemberPropExecutor(memberFn),\n\t}\n\n\tbridge.GovDAO().Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n}\n\n// Output:\n// --\n// 1\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**accepted**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// add new members to the govdao\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (25%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 30 (75%)\n//\n// Threshold met: false\n//\n//\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**execution successful**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// 4\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop4_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdaov2 \"gno.land/r/gov/dao/v2\"\n\t\"gno.land/r/sys/params\"\n)\n\nfunc init() {\n\tmExec := params.NewStringPropExecutor(\"prop1.string\", \"value1\")\n\tcomment := \"setting prop1.string param\"\n\tprop := dao.ProposalRequest{\n\t\tDescription: comment,\n\t\tExecutor: mExec,\n\t}\n\tid := bridge.GovDAO().Propose(prop)\n\tprintln(\"new prop\", id)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n}\n\n// Output:\n// new prop 0\n// --\n// - [Proposal #0](/r/gov/dao/v2:0) - (**active**)(by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm)\n//\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: active\n//\n// Voting stats: YES 0 (0%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 10 (100%)\n//\n// Threshold met: false\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: accepted\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n//\n//\n// --\n// --\n// # Prop #0\n//\n// Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// setting prop1.string param\n//\n// Status: execution successful\n//\n// Voting stats: YES 10 (100%), NO 0 (0%), ABSTAIN 0 (0%), MISSING VOTE 0 (0%)\n//\n// Threshold met: true\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"set\",\n// \"attrs\": [\n// {\n// \"key\": \"k\",\n// \"value\": \"prop1.string\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/sys/params\",\n// \"func\": \"\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jnUbOHgjY6bNjQOI8wtGsh3DECvPozRrOMnmJYyPqc7B5WUBwMTfY2FFqljufdOGms6OL1Is/UxZlg/gi+5GCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc1155","path":"gno.land/p/demo/grc/grc1155","files":[{"name":"README.md","body":"# GRC-1155 Spec: Multi Token Standard\n\nGRC1155 is a specification for managing multiple tokens based on Gnoland. The name and design is based on Ethereum's ERC1155 standard.\n\n## See also:\n\n[ERC-1155 Spec][erc-1155]\n\n[erc-1155]: https://eips.ethereum.org/EIPS/eip-1155"},{"name":"basic_grc1155_token.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicGRC1155Token struct {\n\turi string\n\tbalances avl.Tree // \"TokenId:Address\" -\u003e uint64\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\nvar _ IGRC1155 = (*basicGRC1155Token)(nil)\n\n// Returns new basic GRC1155 token\nfunc NewBasicGRC1155Token(uri string) *basicGRC1155Token {\n\treturn \u0026basicGRC1155Token{\n\t\turi: uri,\n\t\tbalances: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicGRC1155Token) Uri() string { return s.uri }\n\n// BalanceOf returns the input address's balance of the token type requested\nfunc (s *basicGRC1155Token) BalanceOf(addr std.Address, tid TokenID) (uint64, error) {\n\tif !isValidAddress(addr) {\n\t\treturn 0, ErrInvalidAddress\n\t}\n\n\tkey := string(tid) + \":\" + addr.String()\n\tbalance, found := s.balances.Get(key)\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// BalanceOfBatch returns the balance of multiple account/token pairs\nfunc (s *basicGRC1155Token) BalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error) {\n\tif len(owners) != len(batch) {\n\t\treturn nil, ErrMismatchLength\n\t}\n\n\tbalanceOfBatch := make([]uint64, len(owners))\n\n\tfor i := 0; i \u003c len(owners); i++ {\n\t\tbalanceOfBatch[i], _ = s.BalanceOf(owners[i], batch[i])\n\t}\n\n\treturn balanceOfBatch, nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicGRC1155Token) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif !isValidAddress(operator) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// IsApprovedForAll returns true if operator is the owner or is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicGRC1155Token) IsApprovedForAll(owner, operator std.Address) bool {\n\tif operator == owner {\n\t\treturn true\n\t}\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, from, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, to, tid, amount})\n\n\treturn nil\n}\n\n// Safely transfers a `batch` of tokens from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, from, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, to, batch, amounts})\n\n\treturn nil\n}\n\n// Creates `amount` tokens of token type `id`, and assigns them to `to`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeMint(to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, zeroAddress, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, zeroAddress, to, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `SafeMint()`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeBatchMint(to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, zeroAddress, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, zeroAddress, to, batch, amounts})\n\n\treturn nil\n}\n\n// Destroys `amount` tokens of token type `id` from `from`.\nfunc (s *basicGRC1155Token) Burn(from std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, zeroAddress, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `Burn()`\nfunc (s *basicGRC1155Token) BatchBurn(from std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, zeroAddress, batch, amounts})\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll(): approve `operator` to operate on all of `owner` tokens\nfunc (s *basicGRC1155Token) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn nil\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\tif approved {\n\t\ts.operatorApprovals.Set(key, approved)\n\t} else {\n\t\ts.operatorApprovals.Remove(key)\n\t}\n\n\temit(\u0026ApprovalForAllEvent{owner, operator, approved})\n\n\treturn nil\n}\n\n// Helper for SafeTransferFrom() and SafeBatchTransferFrom()\nfunc (s *basicGRC1155Token) safeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) || !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrInsufficientBalance\n\t\t}\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfromBalance -= amount\n\t\ttoBalance += amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for SafeMint() and SafeBatchMint()\nfunc (s *basicGRC1155Token) mintBatch(to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttoBalance += amount\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for Burn() and BurnBatch()\nfunc (s *basicGRC1155Token) burnBatch(from std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrBurnAmountExceedsBalance\n\t\t}\n\t\tfromBalance -= amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\treturn nil\n}\n\nfunc (s *basicGRC1155Token) setUri(newUri string) {\n\ts.uri = newUri\n\temit(\u0026UpdateURIEvent{newUri})\n}\n\nfunc (s *basicGRC1155Token) beforeTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) afterTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) doSafeTransferAcceptanceCheck(operator, from, to std.Address, tid TokenID, amount uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) doSafeBatchTransferAcceptanceCheck(operator, from, to std.Address, batch []TokenID, amounts []uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# URI:%s\\n\", s.uri)\n\n\treturn\n}\n"},{"name":"basic_grc1155_token_test.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nconst dummyURI = \"ipfs://xyz\"\n\nfunc TestNewBasicGRC1155Token(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestUri(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\tuassert.Equal(t, dummyURI, dummy.Uri())\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceZeroAddressOfToken1, err := dummy.BalanceOf(zeroAddress, tid1)\n\tuassert.Error(t, err, \"should result in error\")\n\n\tbalanceAddr1OfToken1, err := dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1OfToken1)\n\n\tdummy.mintBatch(addr1, []TokenID{tid1, tid2}, []uint64{10, 100})\n\tdummy.mintBatch(addr2, []TokenID{tid1}, []uint64{20})\n\n\tbalanceAddr1OfToken1, err = dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr1OfToken2, err := dummy.BalanceOf(addr1, tid2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr2OfToken1, err := dummy.BalanceOf(addr2, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(10), balanceAddr1OfToken1)\n\tuassert.Equal(t, uint64(100), balanceAddr1OfToken2)\n\tuassert.Equal(t, uint64(20), balanceAddr2OfToken1)\n}\n\nfunc TestBalanceOfBatch(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceBatch[0])\n\tuassert.Equal(t, uint64(0), balanceBatch[1])\n\n\tdummy.mintBatch(addr1, []TokenID{tid1}, []uint64{10})\n\tdummy.mintBatch(addr2, []TokenID{tid2}, []uint64{20})\n\n\tbalanceBatch, err = dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(10), balanceBatch[0])\n\tuassert.Equal(t, uint64(20), balanceBatch[1])\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n\n\terr = dummy.SetApprovalForAll(addr, false)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid := TokenID(\"1\")\n\n\tdummy.mintBatch(caller, []TokenID{tid}, []uint64{100})\n\n\terr := dummy.SafeTransferFrom(caller, zeroAddress, tid, 10)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 160)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 60)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(40), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(60), balanceOfAddr)\n}\n\nfunc TestSafeBatchTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(caller, []TokenID{tid1, tid2}, []uint64{10, 100})\n\n\terr := dummy.SafeBatchTransferFrom(caller, zeroAddress, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{caller, addr, caller, addr}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(6), balanceBatch[0])\n\n\t// Check token1's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(4), balanceBatch[1])\n\n\t// Check token2's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(40), balanceBatch[2])\n\n\t// Check token2's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(60), balanceBatch[3])\n}\n\nfunc TestSafeMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeMint(zeroAddress, tid1, 100)\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeMint(addr1, tid1, 100)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr1, tid2, 200)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr2, tid1, 50)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1}, []TokenID{tid1, tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after mint\n\tuassert.Equal(t, uint64(50), balanceBatch[1])\n\t// Check token2's balance of addr1 after mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n}\n\nfunc TestSafeBatchMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeBatchMint(zeroAddress, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchMint(addr1, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeBatchMint(addr2, []TokenID{tid1, tid2}, []uint64{300, 400})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1, addr2}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(300), balanceBatch[1])\n\t// Check token2's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n\t// Check token2's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(400), balanceBatch[3])\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.Burn(zeroAddress, tid1, uint64(60))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(160))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Burn(addr, tid2, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n\nfunc TestBatchBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.BatchBurn(zeroAddress, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{160, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after batch burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after batch burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n"},{"name":"errors.gno","body":"package grc1155\n\nimport \"errors\"\n\nvar (\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrMismatchLength = errors.New(\"accounts and ids length mismatch\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferToRejectedOrNonGRC1155Receiver = errors.New(\"transfer to rejected or non GRC1155Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrInsufficientBalance = errors.New(\"insufficient balance for transfer\")\n\tErrBurnAmountExceedsBalance = errors.New(\"burn amount exceeds balance\")\n)\n"},{"name":"igrc1155.gno","body":"package grc1155\n\nimport \"std\"\n\ntype IGRC1155 interface {\n\tSafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error\n\tSafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error\n\tBalanceOf(owner std.Address, tid TokenID) (uint64, error)\n\tBalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error)\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype TokenID string\n\ntype TransferSingleEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tTokenID TokenID\n\tAmount uint64\n}\n\ntype TransferBatchEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tBatch []TokenID\n\tAmounts []uint64\n}\n\ntype ApprovalForAllEvent struct {\n\tOwner std.Address\n\tOperator std.Address\n\tApproved bool\n}\n\ntype UpdateURIEvent struct {\n\tURI string\n}\n"},{"name":"util.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n)\n\nconst zeroAddress std.Address = \"\"\n\nfunc isValidAddress(addr std.Address) bool {\n\tif !addr.IsValid() {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j2JwdPMGzE3IP8ERWGnOWPyDSYRaD7QpRBfzZO4avwpuhaFctAsdU9aAYu2nsOVSP7mi7GQtNnymu1PYxA2VBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc1155","path":"gno.land/p/demo/grc/grc1155","files":[{"name":"README.md","body":"# GRC-1155 Spec: Multi Token Standard\n\nGRC1155 is a specification for managing multiple tokens based on Gnoland. The name and design is based on Ethereum's ERC1155 standard.\n\n## See also:\n\n[ERC-1155 Spec][erc-1155]\n\n[erc-1155]: https://eips.ethereum.org/EIPS/eip-1155"},{"name":"basic_grc1155_token.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicGRC1155Token struct {\n\turi string\n\tbalances avl.Tree // \"TokenId:Address\" -\u003e uint64\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\nvar _ IGRC1155 = (*basicGRC1155Token)(nil)\n\n// Returns new basic GRC1155 token\nfunc NewBasicGRC1155Token(uri string) *basicGRC1155Token {\n\treturn \u0026basicGRC1155Token{\n\t\turi: uri,\n\t\tbalances: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicGRC1155Token) Uri() string { return s.uri }\n\n// BalanceOf returns the input address's balance of the token type requested\nfunc (s *basicGRC1155Token) BalanceOf(addr std.Address, tid TokenID) (uint64, error) {\n\tif !isValidAddress(addr) {\n\t\treturn 0, ErrInvalidAddress\n\t}\n\n\tkey := string(tid) + \":\" + addr.String()\n\tbalance, found := s.balances.Get(key)\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// BalanceOfBatch returns the balance of multiple account/token pairs\nfunc (s *basicGRC1155Token) BalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error) {\n\tif len(owners) != len(batch) {\n\t\treturn nil, ErrMismatchLength\n\t}\n\n\tbalanceOfBatch := make([]uint64, len(owners))\n\n\tfor i := 0; i \u003c len(owners); i++ {\n\t\tbalanceOfBatch[i], _ = s.BalanceOf(owners[i], batch[i])\n\t}\n\n\treturn balanceOfBatch, nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicGRC1155Token) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif !isValidAddress(operator) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// IsApprovedForAll returns true if operator is the owner or is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicGRC1155Token) IsApprovedForAll(owner, operator std.Address) bool {\n\tif operator == owner {\n\t\treturn true\n\t}\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, from, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, to, tid, amount})\n\n\treturn nil\n}\n\n// Safely transfers a `batch` of tokens from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, from, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, to, batch, amounts})\n\n\treturn nil\n}\n\n// Creates `amount` tokens of token type `id`, and assigns them to `to`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeMint(to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, zeroAddress, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, zeroAddress, to, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `SafeMint()`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeBatchMint(to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, zeroAddress, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, zeroAddress, to, batch, amounts})\n\n\treturn nil\n}\n\n// Destroys `amount` tokens of token type `id` from `from`.\nfunc (s *basicGRC1155Token) Burn(from std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, zeroAddress, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `Burn()`\nfunc (s *basicGRC1155Token) BatchBurn(from std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, zeroAddress, batch, amounts})\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll(): approve `operator` to operate on all of `owner` tokens\nfunc (s *basicGRC1155Token) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn nil\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\tif approved {\n\t\ts.operatorApprovals.Set(key, approved)\n\t} else {\n\t\ts.operatorApprovals.Remove(key)\n\t}\n\n\temit(\u0026ApprovalForAllEvent{owner, operator, approved})\n\n\treturn nil\n}\n\n// Helper for SafeTransferFrom() and SafeBatchTransferFrom()\nfunc (s *basicGRC1155Token) safeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) || !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrInsufficientBalance\n\t\t}\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfromBalance -= amount\n\t\ttoBalance += amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for SafeMint() and SafeBatchMint()\nfunc (s *basicGRC1155Token) mintBatch(to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttoBalance += amount\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for Burn() and BurnBatch()\nfunc (s *basicGRC1155Token) burnBatch(from std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrBurnAmountExceedsBalance\n\t\t}\n\t\tfromBalance -= amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\treturn nil\n}\n\nfunc (s *basicGRC1155Token) setUri(newUri string) {\n\ts.uri = newUri\n\temit(\u0026UpdateURIEvent{newUri})\n}\n\nfunc (s *basicGRC1155Token) beforeTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) afterTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) doSafeTransferAcceptanceCheck(operator, from, to std.Address, tid TokenID, amount uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) doSafeBatchTransferAcceptanceCheck(operator, from, to std.Address, batch []TokenID, amounts []uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# URI:%s\\n\", s.uri)\n\n\treturn\n}\n"},{"name":"basic_grc1155_token_test.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nconst dummyURI = \"ipfs://xyz\"\n\nfunc TestNewBasicGRC1155Token(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestUri(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\tuassert.Equal(t, dummyURI, dummy.Uri())\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceZeroAddressOfToken1, err := dummy.BalanceOf(zeroAddress, tid1)\n\tuassert.Error(t, err, \"should result in error\")\n\n\tbalanceAddr1OfToken1, err := dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1OfToken1)\n\n\tdummy.mintBatch(addr1, []TokenID{tid1, tid2}, []uint64{10, 100})\n\tdummy.mintBatch(addr2, []TokenID{tid1}, []uint64{20})\n\n\tbalanceAddr1OfToken1, err = dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr1OfToken2, err := dummy.BalanceOf(addr1, tid2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr2OfToken1, err := dummy.BalanceOf(addr2, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(10), balanceAddr1OfToken1)\n\tuassert.Equal(t, uint64(100), balanceAddr1OfToken2)\n\tuassert.Equal(t, uint64(20), balanceAddr2OfToken1)\n}\n\nfunc TestBalanceOfBatch(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceBatch[0])\n\tuassert.Equal(t, uint64(0), balanceBatch[1])\n\n\tdummy.mintBatch(addr1, []TokenID{tid1}, []uint64{10})\n\tdummy.mintBatch(addr2, []TokenID{tid2}, []uint64{20})\n\n\tbalanceBatch, err = dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(10), balanceBatch[0])\n\tuassert.Equal(t, uint64(20), balanceBatch[1])\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n\n\terr = dummy.SetApprovalForAll(addr, false)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid := TokenID(\"1\")\n\n\tdummy.mintBatch(caller, []TokenID{tid}, []uint64{100})\n\n\terr := dummy.SafeTransferFrom(caller, zeroAddress, tid, 10)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 160)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 60)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(40), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(60), balanceOfAddr)\n}\n\nfunc TestSafeBatchTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(caller, []TokenID{tid1, tid2}, []uint64{10, 100})\n\n\terr := dummy.SafeBatchTransferFrom(caller, zeroAddress, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{caller, addr, caller, addr}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(6), balanceBatch[0])\n\n\t// Check token1's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(4), balanceBatch[1])\n\n\t// Check token2's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(40), balanceBatch[2])\n\n\t// Check token2's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(60), balanceBatch[3])\n}\n\nfunc TestSafeMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeMint(zeroAddress, tid1, 100)\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeMint(addr1, tid1, 100)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr1, tid2, 200)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr2, tid1, 50)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1}, []TokenID{tid1, tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after mint\n\tuassert.Equal(t, uint64(50), balanceBatch[1])\n\t// Check token2's balance of addr1 after mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n}\n\nfunc TestSafeBatchMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeBatchMint(zeroAddress, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchMint(addr1, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeBatchMint(addr2, []TokenID{tid1, tid2}, []uint64{300, 400})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1, addr2}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(300), balanceBatch[1])\n\t// Check token2's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n\t// Check token2's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(400), balanceBatch[3])\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.Burn(zeroAddress, tid1, uint64(60))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(160))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Burn(addr, tid2, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n\nfunc TestBatchBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.BatchBurn(zeroAddress, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{160, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after batch burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after batch burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n"},{"name":"errors.gno","body":"package grc1155\n\nimport \"errors\"\n\nvar (\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrMismatchLength = errors.New(\"accounts and ids length mismatch\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferToRejectedOrNonGRC1155Receiver = errors.New(\"transfer to rejected or non GRC1155Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrInsufficientBalance = errors.New(\"insufficient balance for transfer\")\n\tErrBurnAmountExceedsBalance = errors.New(\"burn amount exceeds balance\")\n)\n"},{"name":"igrc1155.gno","body":"package grc1155\n\nimport \"std\"\n\ntype IGRC1155 interface {\n\tSafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error\n\tSafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error\n\tBalanceOf(owner std.Address, tid TokenID) (uint64, error)\n\tBalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error)\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype TokenID string\n\ntype TransferSingleEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tTokenID TokenID\n\tAmount uint64\n}\n\ntype TransferBatchEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tBatch []TokenID\n\tAmounts []uint64\n}\n\ntype ApprovalForAllEvent struct {\n\tOwner std.Address\n\tOperator std.Address\n\tApproved bool\n}\n\ntype UpdateURIEvent struct {\n\tURI string\n}\n"},{"name":"util.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n)\n\nconst zeroAddress std.Address = \"\"\n\nfunc isValidAddress(addr std.Address) bool {\n\tif !addr.IsValid() {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j2JwdPMGzE3IP8ERWGnOWPyDSYRaD7QpRBfzZO4avwpuhaFctAsdU9aAYu2nsOVSP7mi7GQtNnymu1PYxA2VBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc1155","path":"gno.land/p/demo/grc/grc1155","files":[{"name":"README.md","body":"# GRC-1155 Spec: Multi Token Standard\n\nGRC1155 is a specification for managing multiple tokens based on Gnoland. The name and design is based on Ethereum's ERC1155 standard.\n\n## See also:\n\n[ERC-1155 Spec][erc-1155]\n\n[erc-1155]: https://eips.ethereum.org/EIPS/eip-1155"},{"name":"basic_grc1155_token.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicGRC1155Token struct {\n\turi string\n\tbalances avl.Tree // \"TokenId:Address\" -\u003e uint64\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\nvar _ IGRC1155 = (*basicGRC1155Token)(nil)\n\n// Returns new basic GRC1155 token\nfunc NewBasicGRC1155Token(uri string) *basicGRC1155Token {\n\treturn \u0026basicGRC1155Token{\n\t\turi: uri,\n\t\tbalances: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicGRC1155Token) Uri() string { return s.uri }\n\n// BalanceOf returns the input address's balance of the token type requested\nfunc (s *basicGRC1155Token) BalanceOf(addr std.Address, tid TokenID) (uint64, error) {\n\tif !isValidAddress(addr) {\n\t\treturn 0, ErrInvalidAddress\n\t}\n\n\tkey := string(tid) + \":\" + addr.String()\n\tbalance, found := s.balances.Get(key)\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// BalanceOfBatch returns the balance of multiple account/token pairs\nfunc (s *basicGRC1155Token) BalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error) {\n\tif len(owners) != len(batch) {\n\t\treturn nil, ErrMismatchLength\n\t}\n\n\tbalanceOfBatch := make([]uint64, len(owners))\n\n\tfor i := 0; i \u003c len(owners); i++ {\n\t\tbalanceOfBatch[i], _ = s.BalanceOf(owners[i], batch[i])\n\t}\n\n\treturn balanceOfBatch, nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicGRC1155Token) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif !isValidAddress(operator) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// IsApprovedForAll returns true if operator is the owner or is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicGRC1155Token) IsApprovedForAll(owner, operator std.Address) bool {\n\tif operator == owner {\n\t\treturn true\n\t}\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, from, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, to, tid, amount})\n\n\treturn nil\n}\n\n// Safely transfers a `batch` of tokens from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, from, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, to, batch, amounts})\n\n\treturn nil\n}\n\n// Creates `amount` tokens of token type `id`, and assigns them to `to`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeMint(to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, zeroAddress, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, zeroAddress, to, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `SafeMint()`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeBatchMint(to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, zeroAddress, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, zeroAddress, to, batch, amounts})\n\n\treturn nil\n}\n\n// Destroys `amount` tokens of token type `id` from `from`.\nfunc (s *basicGRC1155Token) Burn(from std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, zeroAddress, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `Burn()`\nfunc (s *basicGRC1155Token) BatchBurn(from std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, zeroAddress, batch, amounts})\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll(): approve `operator` to operate on all of `owner` tokens\nfunc (s *basicGRC1155Token) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn nil\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\tif approved {\n\t\ts.operatorApprovals.Set(key, approved)\n\t} else {\n\t\ts.operatorApprovals.Remove(key)\n\t}\n\n\temit(\u0026ApprovalForAllEvent{owner, operator, approved})\n\n\treturn nil\n}\n\n// Helper for SafeTransferFrom() and SafeBatchTransferFrom()\nfunc (s *basicGRC1155Token) safeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) || !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrInsufficientBalance\n\t\t}\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfromBalance -= amount\n\t\ttoBalance += amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for SafeMint() and SafeBatchMint()\nfunc (s *basicGRC1155Token) mintBatch(to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttoBalance += amount\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for Burn() and BurnBatch()\nfunc (s *basicGRC1155Token) burnBatch(from std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrBurnAmountExceedsBalance\n\t\t}\n\t\tfromBalance -= amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\treturn nil\n}\n\nfunc (s *basicGRC1155Token) setUri(newUri string) {\n\ts.uri = newUri\n\temit(\u0026UpdateURIEvent{newUri})\n}\n\nfunc (s *basicGRC1155Token) beforeTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) afterTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) doSafeTransferAcceptanceCheck(operator, from, to std.Address, tid TokenID, amount uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) doSafeBatchTransferAcceptanceCheck(operator, from, to std.Address, batch []TokenID, amounts []uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# URI:%s\\n\", s.uri)\n\n\treturn\n}\n"},{"name":"basic_grc1155_token_test.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nconst dummyURI = \"ipfs://xyz\"\n\nfunc TestNewBasicGRC1155Token(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestUri(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\tuassert.Equal(t, dummyURI, dummy.Uri())\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceZeroAddressOfToken1, err := dummy.BalanceOf(zeroAddress, tid1)\n\tuassert.Error(t, err, \"should result in error\")\n\n\tbalanceAddr1OfToken1, err := dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1OfToken1)\n\n\tdummy.mintBatch(addr1, []TokenID{tid1, tid2}, []uint64{10, 100})\n\tdummy.mintBatch(addr2, []TokenID{tid1}, []uint64{20})\n\n\tbalanceAddr1OfToken1, err = dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr1OfToken2, err := dummy.BalanceOf(addr1, tid2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr2OfToken1, err := dummy.BalanceOf(addr2, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(10), balanceAddr1OfToken1)\n\tuassert.Equal(t, uint64(100), balanceAddr1OfToken2)\n\tuassert.Equal(t, uint64(20), balanceAddr2OfToken1)\n}\n\nfunc TestBalanceOfBatch(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceBatch[0])\n\tuassert.Equal(t, uint64(0), balanceBatch[1])\n\n\tdummy.mintBatch(addr1, []TokenID{tid1}, []uint64{10})\n\tdummy.mintBatch(addr2, []TokenID{tid2}, []uint64{20})\n\n\tbalanceBatch, err = dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(10), balanceBatch[0])\n\tuassert.Equal(t, uint64(20), balanceBatch[1])\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n\n\terr = dummy.SetApprovalForAll(addr, false)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid := TokenID(\"1\")\n\n\tdummy.mintBatch(caller, []TokenID{tid}, []uint64{100})\n\n\terr := dummy.SafeTransferFrom(caller, zeroAddress, tid, 10)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 160)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 60)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(40), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(60), balanceOfAddr)\n}\n\nfunc TestSafeBatchTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(caller, []TokenID{tid1, tid2}, []uint64{10, 100})\n\n\terr := dummy.SafeBatchTransferFrom(caller, zeroAddress, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{caller, addr, caller, addr}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(6), balanceBatch[0])\n\n\t// Check token1's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(4), balanceBatch[1])\n\n\t// Check token2's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(40), balanceBatch[2])\n\n\t// Check token2's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(60), balanceBatch[3])\n}\n\nfunc TestSafeMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeMint(zeroAddress, tid1, 100)\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeMint(addr1, tid1, 100)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr1, tid2, 200)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr2, tid1, 50)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1}, []TokenID{tid1, tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after mint\n\tuassert.Equal(t, uint64(50), balanceBatch[1])\n\t// Check token2's balance of addr1 after mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n}\n\nfunc TestSafeBatchMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeBatchMint(zeroAddress, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchMint(addr1, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeBatchMint(addr2, []TokenID{tid1, tid2}, []uint64{300, 400})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1, addr2}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(300), balanceBatch[1])\n\t// Check token2's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n\t// Check token2's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(400), balanceBatch[3])\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.Burn(zeroAddress, tid1, uint64(60))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(160))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Burn(addr, tid2, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n\nfunc TestBatchBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.BatchBurn(zeroAddress, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{160, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after batch burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after batch burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n"},{"name":"errors.gno","body":"package grc1155\n\nimport \"errors\"\n\nvar (\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrMismatchLength = errors.New(\"accounts and ids length mismatch\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferToRejectedOrNonGRC1155Receiver = errors.New(\"transfer to rejected or non GRC1155Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrInsufficientBalance = errors.New(\"insufficient balance for transfer\")\n\tErrBurnAmountExceedsBalance = errors.New(\"burn amount exceeds balance\")\n)\n"},{"name":"igrc1155.gno","body":"package grc1155\n\nimport \"std\"\n\ntype IGRC1155 interface {\n\tSafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error\n\tSafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error\n\tBalanceOf(owner std.Address, tid TokenID) (uint64, error)\n\tBalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error)\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype TokenID string\n\ntype TransferSingleEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tTokenID TokenID\n\tAmount uint64\n}\n\ntype TransferBatchEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tBatch []TokenID\n\tAmounts []uint64\n}\n\ntype ApprovalForAllEvent struct {\n\tOwner std.Address\n\tOperator std.Address\n\tApproved bool\n}\n\ntype UpdateURIEvent struct {\n\tURI string\n}\n"},{"name":"util.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n)\n\nconst zeroAddress std.Address = \"\"\n\nfunc isValidAddress(addr std.Address) bool {\n\tif !addr.IsValid() {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j2JwdPMGzE3IP8ERWGnOWPyDSYRaD7QpRBfzZO4avwpuhaFctAsdU9aAYu2nsOVSP7mi7GQtNnymu1PYxA2VBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc20","path":"gno.land/p/demo/grc/grc20","files":[{"name":"examples_test.gno","body":"package grc20\n\n// XXX: write Examples\n\nfunc ExampleInit() {}\nfunc ExampleExposeBankForMaketxRunOrImports() {}\nfunc ExampleCustomTellerImpl() {}\nfunc ExampleAllowance() {}\nfunc ExampleRealmBanker() {}\nfunc ExamplePrevRealmBanker() {}\nfunc ExampleAccountBanker() {}\nfunc ExampleTransfer() {}\nfunc ExampleApprove() {}\nfunc ExampleTransferFrom() {}\nfunc ExampleMint() {}\nfunc ExampleBurn() {}\n\n// ...\n"},{"name":"mock.gno","body":"package grc20\n\n// XXX: func Mock(t *Token)\n"},{"name":"tellers.gno","body":"package grc20\n\nimport (\n\t\"std\"\n)\n\n// CallerTeller returns a GRC20 compatible teller that checks the PrevRealm\n// caller for each call. It's usually safe to expose it publicly to let users\n// manipulate their tokens directly, or for realms to use their allowance.\nfunc (tok *Token) CallerTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\tcaller := std.PrevRealm().Addr()\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ReadonlyTeller is a GRC20 compatible teller that panics for any write operation.\nfunc (tok *Token) ReadonlyTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: nil,\n\t\tToken: tok,\n\t}\n}\n\n// RealmTeller returns a GRC20 compatible teller that will store the\n// caller realm permanently. Calling anything through this teller will\n// result in allowance or balance changes for the realm that initialized the teller.\n// The initializer of this teller should usually never share the resulting Teller from\n// this method except maybe for advanced delegation flows such as a DAO treasury\n// management.\nfunc (tok *Token) RealmTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// RealmSubTeller is like RealmTeller but uses the provided slug to derive a\n// subaccount.\nfunc (tok *Token) RealmSubTeller(slug string) Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\taccount := accountSlugAddr(caller, slug)\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn account\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ImpersonateTeller returns a GRC20 compatible teller that impersonates as a\n// specified address. This allows operations to be performed as if they were\n// executed by the given address, enabling the caller to manipulate tokens on\n// behalf of that address.\n//\n// It is particularly useful in scenarios where a contract needs to perform\n// actions on behalf of a user or another account, without exposing the\n// underlying logic or requiring direct access to the user's account. The\n// returned teller will use the provided address for all operations, effectively\n// masking the original caller.\n//\n// This method should be used with caution, as it allows for potentially\n// sensitive operations to be performed under the guise of another address.\nfunc (ledger *PrivateLedger) ImpersonateTeller(addr std.Address) Teller {\n\tif ledger == nil {\n\t\tpanic(\"Ledger cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn addr\n\t\t},\n\t\tToken: ledger.token,\n\t}\n}\n\n// generic tellers methods.\n//\n\nfunc (ft *fnTeller) Transfer(to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Transfer(caller, to, amount)\n}\n\nfunc (ft *fnTeller) Approve(spender std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Approve(caller, spender, amount)\n}\n\nfunc (ft *fnTeller) TransferFrom(owner, to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tspender := ft.accountFn()\n\treturn ft.Token.ledger.TransferFrom(owner, spender, to, amount)\n}\n\n// helpers\n//\n\n// accountSlugAddr returns the address derived from the specified address and slug.\nfunc accountSlugAddr(addr std.Address, slug string) std.Address {\n\t// XXX: use a new `std.XXX` call for this.\n\tif slug == \"\" {\n\t\treturn addr\n\t}\n\tkey := addr.String() + \"/\" + slug\n\treturn std.DerivePkgAddr(key) // temporarily using this helper\n}\n"},{"name":"tellers_test.gno","body":"package grc20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCallerTellerImpl(t *testing.T) {\n\ttok, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\tteller := tok.CallerTeller()\n\turequire.False(t, tok == nil)\n\tvar _ Teller = teller\n}\n\nfunc TestTeller(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\turequire.NoError(t, ledger.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestCallerTeller(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\tteller := token.CallerTeller()\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(alice)\n\turequire.NoError(t, teller.Approve(bob, 600))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(bob)\n\turequire.Error(t, teller.TransferFrom(alice, carl, 700))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\turequire.NoError(t, teller.TransferFrom(alice, carl, 400))\n\tcheckBalances(600, 0, 400)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n"},{"name":"token.gno","body":"package grc20\n\nimport (\n\t\"math/overflow\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// NewToken creates a new Token.\n// It returns a pointer to the Token and a pointer to the Ledger.\n// Expected usage: Token, admin := NewToken(\"Dummy\", \"DUMMY\", 4)\nfunc NewToken(name, symbol string, decimals uint) (*Token, *PrivateLedger) {\n\tif name == \"\" {\n\t\tpanic(\"name should not be empty\")\n\t}\n\tif symbol == \"\" {\n\t\tpanic(\"symbol should not be empty\")\n\t}\n\t// XXX additional checks (length, characters, limits, etc)\n\n\tledger := \u0026PrivateLedger{}\n\ttoken := \u0026Token{\n\t\tname: name,\n\t\tsymbol: symbol,\n\t\tdecimals: decimals,\n\t\tledger: ledger,\n\t}\n\tledger.token = token\n\treturn token, ledger\n}\n\n// GetName returns the name of the token.\nfunc (tok Token) GetName() string { return tok.name }\n\n// GetSymbol returns the symbol of the token.\nfunc (tok Token) GetSymbol() string { return tok.symbol }\n\n// GetDecimals returns the number of decimals used to get the token's precision.\nfunc (tok Token) GetDecimals() uint { return tok.decimals }\n\n// TotalSupply returns the total supply of the token.\nfunc (tok Token) TotalSupply() uint64 { return tok.ledger.totalSupply }\n\n// KnownAccounts returns the number of known accounts in the bank.\nfunc (tok Token) KnownAccounts() int { return tok.ledger.balances.Size() }\n\n// BalanceOf returns the balance of the specified address.\nfunc (tok Token) BalanceOf(address std.Address) uint64 {\n\treturn tok.ledger.balanceOf(address)\n}\n\n// Allowance returns the allowance of the specified owner and spender.\nfunc (tok Token) Allowance(owner, spender std.Address) uint64 {\n\treturn tok.ledger.allowance(owner, spender)\n}\n\nfunc (tok *Token) RenderHome() string {\n\tstr := \"\"\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", tok.name, tok.symbol)\n\tstr += ufmt.Sprintf(\"* **Decimals**: %d\\n\", tok.decimals)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", tok.ledger.totalSupply)\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", tok.KnownAccounts())\n\treturn str\n}\n\n// SpendAllowance decreases the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) SpendAllowance(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentAllowance := led.allowance(owner, spender)\n\tif currentAllowance \u003c amount {\n\t\treturn ErrInsufficientAllowance\n\t}\n\n\tkey := allowanceKey(owner, spender)\n\tnewAllowance := currentAllowance - amount\n\n\tif newAllowance == 0 {\n\t\tled.allowances.Remove(key)\n\t} else {\n\t\tled.allowances.Set(key, newAllowance)\n\t}\n\n\treturn nil\n}\n\n// Transfer transfers tokens from the specified from address to the specified to address.\nfunc (led *PrivateLedger) Transfer(from, to std.Address, amount uint64) error {\n\tif !from.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !to.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tvar (\n\t\ttoBalance = led.balanceOf(to)\n\t\tfromBalance = led.balanceOf(from)\n\t)\n\n\tif fromBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tvar (\n\t\tnewToBalance = toBalance + amount\n\t\tnewFromBalance = fromBalance - amount\n\t)\n\n\tled.balances.Set(string(to), newToBalance)\n\tled.balances.Set(string(from), newFromBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// TransferFrom transfers tokens from the specified owner to the specified to address.\n// It first checks if the owner has sufficient balance and then decreases the allowance.\nfunc (led *PrivateLedger) TransferFrom(owner, spender, to std.Address, amount uint64) error {\n\tif led.balanceOf(owner) \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\tif err := led.SpendAllowance(owner, spender, amount); err != nil {\n\t\treturn err\n\t}\n\t// XXX: since we don't \"panic\", we should take care of rollbacking spendAllowance if transfer fails.\n\treturn led.Transfer(owner, to, amount)\n}\n\n// Approve sets the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) Approve(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() || !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tled.allowances.Set(allowanceKey(owner, spender), amount)\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"spender\", string(spender),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Mint increases the total supply of the token and adds the specified amount to the specified address.\nfunc (led *PrivateLedger) Mint(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\t// XXX: math/overflow is not supporting uint64.\n\t// This checks prevents overflow but makes the totalSupply limited to a uint63.\n\tsum, ok := overflow.Add64(int64(led.totalSupply), int64(amount))\n\tif !ok {\n\t\treturn ErrOverflow\n\t}\n\n\tled.totalSupply = uint64(sum)\n\tcurrentBalance := led.balanceOf(address)\n\tnewBalance := currentBalance + amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", \"\",\n\t\t\"to\", string(address),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Burn decreases the total supply of the token and subtracts the specified amount from the specified address.\nfunc (led *PrivateLedger) Burn(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentBalance := led.balanceOf(address)\n\tif currentBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tled.totalSupply -= amount\n\tnewBalance := currentBalance - amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(address),\n\t\t\"to\", \"\",\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// balanceOf returns the balance of the specified address.\nfunc (led PrivateLedger) balanceOf(address std.Address) uint64 {\n\tbalance, found := led.balances.Get(address.String())\n\tif !found {\n\t\treturn 0\n\t}\n\treturn balance.(uint64)\n}\n\n// allowance returns the allowance of the specified owner and spender.\nfunc (led PrivateLedger) allowance(owner, spender std.Address) uint64 {\n\tallowance, found := led.allowances.Get(allowanceKey(owner, spender))\n\tif !found {\n\t\treturn 0\n\t}\n\treturn allowance.(uint64)\n}\n\n// allowanceKey returns the key for the allowance of the specified owner and spender.\nfunc allowanceKey(owner, spender std.Address) string {\n\treturn owner.String() + \":\" + spender.String()\n}\n"},{"name":"token_test.gno","body":"package grc20\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestTestImpl(t *testing.T) {\n\tbank, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\turequire.False(t, bank == nil, \"dummy should not be nil\")\n}\n\nfunc TestToken(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\tbank, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := bank.BalanceOf(alice)\n\t\tbobGB := bank.BalanceOf(bob)\n\t\tcarlGB := bank.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := bank.Allowance(alice, bob)\n\t\tacGB := bank.Allowance(alice, carl)\n\t\tbaGB := bank.Allowance(bob, alice)\n\t\tbcGB := bank.Allowance(bob, carl)\n\t\tcaGB := bank.Allowance(carl, alice)\n\t\tcbGB := bank.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Mint(alice, 1000))\n\turequire.NoError(t, adm.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestOverflow(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\ttok, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\turequire.NoError(t, adm.Mint(alice, 2\u003c\u003c62))\n\turequire.Equal(t, tok.BalanceOf(alice), uint64(2\u003c\u003c62))\n\turequire.Error(t, adm.Mint(bob, 2\u003c\u003c62))\n}\n"},{"name":"types.gno","body":"package grc20\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// Teller interface defines the methods that a GRC20 token must implement. It\n// extends the TokenMetadata interface to include methods for managing token\n// transfers, allowances, and querying balances.\n//\n// The Teller interface is designed to ensure that any token adhering to this\n// standard provides a consistent API for interacting with fungible tokens.\ntype Teller interface {\n\texts.TokenMetadata\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() uint64\n\n\t// Returns the amount of tokens owned by `account`.\n\tBalanceOf(account std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `to`.\n\t//\n\t// Returns an error if the operation failed.\n\tTransfer(to std.Address, amount uint64) error\n\n\t// Returns the remaining number of tokens that `spender` will be\n\t// allowed to spend on behalf of `owner` through {transferFrom}. This is\n\t// zero by default.\n\t//\n\t// This value changes when {approve} or {transferFrom} are called.\n\tAllowance(owner, spender std.Address) uint64\n\n\t// Sets `amount` as the allowance of `spender` over the caller's tokens.\n\t//\n\t// Returns an error if the operation failed.\n\t//\n\t// IMPORTANT: Beware that changing an allowance with this method brings the risk\n\t// that someone may use both the old and the new allowance by unfortunate\n\t// transaction ordering. One possible solution to mitigate this race\n\t// condition is to first reduce the spender's allowance to 0 and set the\n\t// desired value afterwards:\n\t// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n\tApprove(spender std.Address, amount uint64) error\n\n\t// Moves `amount` tokens from `from` to `to` using the\n\t// allowance mechanism. `amount` is then deducted from the caller's\n\t// allowance.\n\t//\n\t// Returns an error if the operation failed.\n\tTransferFrom(from, to std.Address, amount uint64) error\n}\n\n// Token represents a fungible token with a name, symbol, and a certain number\n// of decimal places. It maintains a ledger for tracking balances and allowances\n// of addresses.\n//\n// The Token struct provides methods for retrieving token metadata, such as the\n// name, symbol, and decimals, as well as methods for interacting with the\n// ledger, including checking balances and allowances.\ntype Token struct {\n\tname string // Name of the token (e.g., \"Dummy Token\").\n\tsymbol string // Symbol of the token (e.g., \"DUMMY\").\n\tdecimals uint // Number of decimal places used for the token's precision.\n\tledger *PrivateLedger // Pointer to the PrivateLedger that manages balances and allowances.\n}\n\n// PrivateLedger is a struct that holds the balances and allowances for the\n// token. It provides administrative functions for minting, burning,\n// transferring tokens, and managing allowances.\n//\n// The PrivateLedger is not safe to expose publicly, as it contains sensitive\n// information regarding token balances and allowances, and allows direct,\n// unrestricted access to all administrative functions.\ntype PrivateLedger struct {\n\ttotalSupply uint64 // Total supply of the token managed by this ledger.\n\tbalances avl.Tree // std.Address -\u003e uint64\n\tallowances avl.Tree // owner.(std.Address)+\":\"+spender.(std.Address)) -\u003e uint64\n\ttoken *Token // Pointer to the associated Token struct\n}\n\nvar (\n\tErrInsufficientBalance = errors.New(\"insufficient balance\")\n\tErrInsufficientAllowance = errors.New(\"insufficient allowance\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrReadonly = errors.New(\"banker is readonly\")\n\tErrRestrictedTokenOwner = errors.New(\"restricted to bank owner\")\n\tErrOverflow = errors.New(\"Mint overflow\")\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n)\n\ntype fnTeller struct {\n\taccountFn func() std.Address\n\t*Token\n}\n\nvar _ Teller = (*fnTeller)(nil)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GpGQrhQRnstnAl6X9OVcS+QKp0lmf66ohg2fy+D6l1YvM2zw20WcfSh5BaVQ722WtwTb19Mew3uvi0ZEbI2eAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc20","path":"gno.land/p/demo/grc/grc20","files":[{"name":"examples_test.gno","body":"package grc20\n\n// XXX: write Examples\n\nfunc ExampleInit() {}\nfunc ExampleExposeBankForMaketxRunOrImports() {}\nfunc ExampleCustomTellerImpl() {}\nfunc ExampleAllowance() {}\nfunc ExampleRealmBanker() {}\nfunc ExamplePrevRealmBanker() {}\nfunc ExampleAccountBanker() {}\nfunc ExampleTransfer() {}\nfunc ExampleApprove() {}\nfunc ExampleTransferFrom() {}\nfunc ExampleMint() {}\nfunc ExampleBurn() {}\n\n// ...\n"},{"name":"mock.gno","body":"package grc20\n\n// XXX: func Mock(t *Token)\n"},{"name":"tellers.gno","body":"package grc20\n\nimport (\n\t\"std\"\n)\n\n// CallerTeller returns a GRC20 compatible teller that checks the PrevRealm\n// caller for each call. It's usually safe to expose it publicly to let users\n// manipulate their tokens directly, or for realms to use their allowance.\nfunc (tok *Token) CallerTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\tcaller := std.PrevRealm().Addr()\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ReadonlyTeller is a GRC20 compatible teller that panics for any write operation.\nfunc (tok *Token) ReadonlyTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: nil,\n\t\tToken: tok,\n\t}\n}\n\n// RealmTeller returns a GRC20 compatible teller that will store the\n// caller realm permanently. Calling anything through this teller will\n// result in allowance or balance changes for the realm that initialized the teller.\n// The initializer of this teller should usually never share the resulting Teller from\n// this method except maybe for advanced delegation flows such as a DAO treasury\n// management.\nfunc (tok *Token) RealmTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// RealmSubTeller is like RealmTeller but uses the provided slug to derive a\n// subaccount.\nfunc (tok *Token) RealmSubTeller(slug string) Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\taccount := accountSlugAddr(caller, slug)\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn account\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ImpersonateTeller returns a GRC20 compatible teller that impersonates as a\n// specified address. This allows operations to be performed as if they were\n// executed by the given address, enabling the caller to manipulate tokens on\n// behalf of that address.\n//\n// It is particularly useful in scenarios where a contract needs to perform\n// actions on behalf of a user or another account, without exposing the\n// underlying logic or requiring direct access to the user's account. The\n// returned teller will use the provided address for all operations, effectively\n// masking the original caller.\n//\n// This method should be used with caution, as it allows for potentially\n// sensitive operations to be performed under the guise of another address.\nfunc (ledger *PrivateLedger) ImpersonateTeller(addr std.Address) Teller {\n\tif ledger == nil {\n\t\tpanic(\"Ledger cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn addr\n\t\t},\n\t\tToken: ledger.token,\n\t}\n}\n\n// generic tellers methods.\n//\n\nfunc (ft *fnTeller) Transfer(to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Transfer(caller, to, amount)\n}\n\nfunc (ft *fnTeller) Approve(spender std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Approve(caller, spender, amount)\n}\n\nfunc (ft *fnTeller) TransferFrom(owner, to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tspender := ft.accountFn()\n\treturn ft.Token.ledger.TransferFrom(owner, spender, to, amount)\n}\n\n// helpers\n//\n\n// accountSlugAddr returns the address derived from the specified address and slug.\nfunc accountSlugAddr(addr std.Address, slug string) std.Address {\n\t// XXX: use a new `std.XXX` call for this.\n\tif slug == \"\" {\n\t\treturn addr\n\t}\n\tkey := addr.String() + \"/\" + slug\n\treturn std.DerivePkgAddr(key) // temporarily using this helper\n}\n"},{"name":"tellers_test.gno","body":"package grc20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCallerTellerImpl(t *testing.T) {\n\ttok, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\tteller := tok.CallerTeller()\n\turequire.False(t, tok == nil)\n\tvar _ Teller = teller\n}\n\nfunc TestTeller(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\turequire.NoError(t, ledger.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestCallerTeller(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\tteller := token.CallerTeller()\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(alice)\n\turequire.NoError(t, teller.Approve(bob, 600))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(bob)\n\turequire.Error(t, teller.TransferFrom(alice, carl, 700))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\turequire.NoError(t, teller.TransferFrom(alice, carl, 400))\n\tcheckBalances(600, 0, 400)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n"},{"name":"token.gno","body":"package grc20\n\nimport (\n\t\"math/overflow\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// NewToken creates a new Token.\n// It returns a pointer to the Token and a pointer to the Ledger.\n// Expected usage: Token, admin := NewToken(\"Dummy\", \"DUMMY\", 4)\nfunc NewToken(name, symbol string, decimals uint) (*Token, *PrivateLedger) {\n\tif name == \"\" {\n\t\tpanic(\"name should not be empty\")\n\t}\n\tif symbol == \"\" {\n\t\tpanic(\"symbol should not be empty\")\n\t}\n\t// XXX additional checks (length, characters, limits, etc)\n\n\tledger := \u0026PrivateLedger{}\n\ttoken := \u0026Token{\n\t\tname: name,\n\t\tsymbol: symbol,\n\t\tdecimals: decimals,\n\t\tledger: ledger,\n\t}\n\tledger.token = token\n\treturn token, ledger\n}\n\n// GetName returns the name of the token.\nfunc (tok Token) GetName() string { return tok.name }\n\n// GetSymbol returns the symbol of the token.\nfunc (tok Token) GetSymbol() string { return tok.symbol }\n\n// GetDecimals returns the number of decimals used to get the token's precision.\nfunc (tok Token) GetDecimals() uint { return tok.decimals }\n\n// TotalSupply returns the total supply of the token.\nfunc (tok Token) TotalSupply() uint64 { return tok.ledger.totalSupply }\n\n// KnownAccounts returns the number of known accounts in the bank.\nfunc (tok Token) KnownAccounts() int { return tok.ledger.balances.Size() }\n\n// BalanceOf returns the balance of the specified address.\nfunc (tok Token) BalanceOf(address std.Address) uint64 {\n\treturn tok.ledger.balanceOf(address)\n}\n\n// Allowance returns the allowance of the specified owner and spender.\nfunc (tok Token) Allowance(owner, spender std.Address) uint64 {\n\treturn tok.ledger.allowance(owner, spender)\n}\n\nfunc (tok *Token) RenderHome() string {\n\tstr := \"\"\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", tok.name, tok.symbol)\n\tstr += ufmt.Sprintf(\"* **Decimals**: %d\\n\", tok.decimals)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", tok.ledger.totalSupply)\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", tok.KnownAccounts())\n\treturn str\n}\n\n// SpendAllowance decreases the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) SpendAllowance(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentAllowance := led.allowance(owner, spender)\n\tif currentAllowance \u003c amount {\n\t\treturn ErrInsufficientAllowance\n\t}\n\n\tkey := allowanceKey(owner, spender)\n\tnewAllowance := currentAllowance - amount\n\n\tif newAllowance == 0 {\n\t\tled.allowances.Remove(key)\n\t} else {\n\t\tled.allowances.Set(key, newAllowance)\n\t}\n\n\treturn nil\n}\n\n// Transfer transfers tokens from the specified from address to the specified to address.\nfunc (led *PrivateLedger) Transfer(from, to std.Address, amount uint64) error {\n\tif !from.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !to.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tvar (\n\t\ttoBalance = led.balanceOf(to)\n\t\tfromBalance = led.balanceOf(from)\n\t)\n\n\tif fromBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tvar (\n\t\tnewToBalance = toBalance + amount\n\t\tnewFromBalance = fromBalance - amount\n\t)\n\n\tled.balances.Set(string(to), newToBalance)\n\tled.balances.Set(string(from), newFromBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// TransferFrom transfers tokens from the specified owner to the specified to address.\n// It first checks if the owner has sufficient balance and then decreases the allowance.\nfunc (led *PrivateLedger) TransferFrom(owner, spender, to std.Address, amount uint64) error {\n\tif led.balanceOf(owner) \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\tif err := led.SpendAllowance(owner, spender, amount); err != nil {\n\t\treturn err\n\t}\n\t// XXX: since we don't \"panic\", we should take care of rollbacking spendAllowance if transfer fails.\n\treturn led.Transfer(owner, to, amount)\n}\n\n// Approve sets the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) Approve(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() || !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tled.allowances.Set(allowanceKey(owner, spender), amount)\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"spender\", string(spender),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Mint increases the total supply of the token and adds the specified amount to the specified address.\nfunc (led *PrivateLedger) Mint(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\t// XXX: math/overflow is not supporting uint64.\n\t// This checks prevents overflow but makes the totalSupply limited to a uint63.\n\tsum, ok := overflow.Add64(int64(led.totalSupply), int64(amount))\n\tif !ok {\n\t\treturn ErrOverflow\n\t}\n\n\tled.totalSupply = uint64(sum)\n\tcurrentBalance := led.balanceOf(address)\n\tnewBalance := currentBalance + amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", \"\",\n\t\t\"to\", string(address),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Burn decreases the total supply of the token and subtracts the specified amount from the specified address.\nfunc (led *PrivateLedger) Burn(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentBalance := led.balanceOf(address)\n\tif currentBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tled.totalSupply -= amount\n\tnewBalance := currentBalance - amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(address),\n\t\t\"to\", \"\",\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// balanceOf returns the balance of the specified address.\nfunc (led PrivateLedger) balanceOf(address std.Address) uint64 {\n\tbalance, found := led.balances.Get(address.String())\n\tif !found {\n\t\treturn 0\n\t}\n\treturn balance.(uint64)\n}\n\n// allowance returns the allowance of the specified owner and spender.\nfunc (led PrivateLedger) allowance(owner, spender std.Address) uint64 {\n\tallowance, found := led.allowances.Get(allowanceKey(owner, spender))\n\tif !found {\n\t\treturn 0\n\t}\n\treturn allowance.(uint64)\n}\n\n// allowanceKey returns the key for the allowance of the specified owner and spender.\nfunc allowanceKey(owner, spender std.Address) string {\n\treturn owner.String() + \":\" + spender.String()\n}\n"},{"name":"token_test.gno","body":"package grc20\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestTestImpl(t *testing.T) {\n\tbank, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\turequire.False(t, bank == nil, \"dummy should not be nil\")\n}\n\nfunc TestToken(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\tbank, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := bank.BalanceOf(alice)\n\t\tbobGB := bank.BalanceOf(bob)\n\t\tcarlGB := bank.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := bank.Allowance(alice, bob)\n\t\tacGB := bank.Allowance(alice, carl)\n\t\tbaGB := bank.Allowance(bob, alice)\n\t\tbcGB := bank.Allowance(bob, carl)\n\t\tcaGB := bank.Allowance(carl, alice)\n\t\tcbGB := bank.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Mint(alice, 1000))\n\turequire.NoError(t, adm.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestOverflow(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\ttok, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\turequire.NoError(t, adm.Mint(alice, 2\u003c\u003c62))\n\turequire.Equal(t, tok.BalanceOf(alice), uint64(2\u003c\u003c62))\n\turequire.Error(t, adm.Mint(bob, 2\u003c\u003c62))\n}\n"},{"name":"types.gno","body":"package grc20\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// Teller interface defines the methods that a GRC20 token must implement. It\n// extends the TokenMetadata interface to include methods for managing token\n// transfers, allowances, and querying balances.\n//\n// The Teller interface is designed to ensure that any token adhering to this\n// standard provides a consistent API for interacting with fungible tokens.\ntype Teller interface {\n\texts.TokenMetadata\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() uint64\n\n\t// Returns the amount of tokens owned by `account`.\n\tBalanceOf(account std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `to`.\n\t//\n\t// Returns an error if the operation failed.\n\tTransfer(to std.Address, amount uint64) error\n\n\t// Returns the remaining number of tokens that `spender` will be\n\t// allowed to spend on behalf of `owner` through {transferFrom}. This is\n\t// zero by default.\n\t//\n\t// This value changes when {approve} or {transferFrom} are called.\n\tAllowance(owner, spender std.Address) uint64\n\n\t// Sets `amount` as the allowance of `spender` over the caller's tokens.\n\t//\n\t// Returns an error if the operation failed.\n\t//\n\t// IMPORTANT: Beware that changing an allowance with this method brings the risk\n\t// that someone may use both the old and the new allowance by unfortunate\n\t// transaction ordering. One possible solution to mitigate this race\n\t// condition is to first reduce the spender's allowance to 0 and set the\n\t// desired value afterwards:\n\t// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n\tApprove(spender std.Address, amount uint64) error\n\n\t// Moves `amount` tokens from `from` to `to` using the\n\t// allowance mechanism. `amount` is then deducted from the caller's\n\t// allowance.\n\t//\n\t// Returns an error if the operation failed.\n\tTransferFrom(from, to std.Address, amount uint64) error\n}\n\n// Token represents a fungible token with a name, symbol, and a certain number\n// of decimal places. It maintains a ledger for tracking balances and allowances\n// of addresses.\n//\n// The Token struct provides methods for retrieving token metadata, such as the\n// name, symbol, and decimals, as well as methods for interacting with the\n// ledger, including checking balances and allowances.\ntype Token struct {\n\tname string // Name of the token (e.g., \"Dummy Token\").\n\tsymbol string // Symbol of the token (e.g., \"DUMMY\").\n\tdecimals uint // Number of decimal places used for the token's precision.\n\tledger *PrivateLedger // Pointer to the PrivateLedger that manages balances and allowances.\n}\n\n// PrivateLedger is a struct that holds the balances and allowances for the\n// token. It provides administrative functions for minting, burning,\n// transferring tokens, and managing allowances.\n//\n// The PrivateLedger is not safe to expose publicly, as it contains sensitive\n// information regarding token balances and allowances, and allows direct,\n// unrestricted access to all administrative functions.\ntype PrivateLedger struct {\n\ttotalSupply uint64 // Total supply of the token managed by this ledger.\n\tbalances avl.Tree // std.Address -\u003e uint64\n\tallowances avl.Tree // owner.(std.Address)+\":\"+spender.(std.Address)) -\u003e uint64\n\ttoken *Token // Pointer to the associated Token struct\n}\n\nvar (\n\tErrInsufficientBalance = errors.New(\"insufficient balance\")\n\tErrInsufficientAllowance = errors.New(\"insufficient allowance\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrReadonly = errors.New(\"banker is readonly\")\n\tErrRestrictedTokenOwner = errors.New(\"restricted to bank owner\")\n\tErrOverflow = errors.New(\"Mint overflow\")\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n)\n\ntype fnTeller struct {\n\taccountFn func() std.Address\n\t*Token\n}\n\nvar _ Teller = (*fnTeller)(nil)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GpGQrhQRnstnAl6X9OVcS+QKp0lmf66ohg2fy+D6l1YvM2zw20WcfSh5BaVQ722WtwTb19Mew3uvi0ZEbI2eAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc20","path":"gno.land/p/demo/grc/grc20","files":[{"name":"examples_test.gno","body":"package grc20\n\n// XXX: write Examples\n\nfunc ExampleInit() {}\nfunc ExampleExposeBankForMaketxRunOrImports() {}\nfunc ExampleCustomTellerImpl() {}\nfunc ExampleAllowance() {}\nfunc ExampleRealmBanker() {}\nfunc ExamplePrevRealmBanker() {}\nfunc ExampleAccountBanker() {}\nfunc ExampleTransfer() {}\nfunc ExampleApprove() {}\nfunc ExampleTransferFrom() {}\nfunc ExampleMint() {}\nfunc ExampleBurn() {}\n\n// ...\n"},{"name":"mock.gno","body":"package grc20\n\n// XXX: func Mock(t *Token)\n"},{"name":"tellers.gno","body":"package grc20\n\nimport (\n\t\"std\"\n)\n\n// CallerTeller returns a GRC20 compatible teller that checks the PrevRealm\n// caller for each call. It's usually safe to expose it publicly to let users\n// manipulate their tokens directly, or for realms to use their allowance.\nfunc (tok *Token) CallerTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\tcaller := std.PrevRealm().Addr()\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ReadonlyTeller is a GRC20 compatible teller that panics for any write operation.\nfunc (tok *Token) ReadonlyTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: nil,\n\t\tToken: tok,\n\t}\n}\n\n// RealmTeller returns a GRC20 compatible teller that will store the\n// caller realm permanently. Calling anything through this teller will\n// result in allowance or balance changes for the realm that initialized the teller.\n// The initializer of this teller should usually never share the resulting Teller from\n// this method except maybe for advanced delegation flows such as a DAO treasury\n// management.\nfunc (tok *Token) RealmTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// RealmSubTeller is like RealmTeller but uses the provided slug to derive a\n// subaccount.\nfunc (tok *Token) RealmSubTeller(slug string) Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\taccount := accountSlugAddr(caller, slug)\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn account\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ImpersonateTeller returns a GRC20 compatible teller that impersonates as a\n// specified address. This allows operations to be performed as if they were\n// executed by the given address, enabling the caller to manipulate tokens on\n// behalf of that address.\n//\n// It is particularly useful in scenarios where a contract needs to perform\n// actions on behalf of a user or another account, without exposing the\n// underlying logic or requiring direct access to the user's account. The\n// returned teller will use the provided address for all operations, effectively\n// masking the original caller.\n//\n// This method should be used with caution, as it allows for potentially\n// sensitive operations to be performed under the guise of another address.\nfunc (ledger *PrivateLedger) ImpersonateTeller(addr std.Address) Teller {\n\tif ledger == nil {\n\t\tpanic(\"Ledger cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn addr\n\t\t},\n\t\tToken: ledger.token,\n\t}\n}\n\n// generic tellers methods.\n//\n\nfunc (ft *fnTeller) Transfer(to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Transfer(caller, to, amount)\n}\n\nfunc (ft *fnTeller) Approve(spender std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Approve(caller, spender, amount)\n}\n\nfunc (ft *fnTeller) TransferFrom(owner, to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tspender := ft.accountFn()\n\treturn ft.Token.ledger.TransferFrom(owner, spender, to, amount)\n}\n\n// helpers\n//\n\n// accountSlugAddr returns the address derived from the specified address and slug.\nfunc accountSlugAddr(addr std.Address, slug string) std.Address {\n\t// XXX: use a new `std.XXX` call for this.\n\tif slug == \"\" {\n\t\treturn addr\n\t}\n\tkey := addr.String() + \"/\" + slug\n\treturn std.DerivePkgAddr(key) // temporarily using this helper\n}\n"},{"name":"tellers_test.gno","body":"package grc20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCallerTellerImpl(t *testing.T) {\n\ttok, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\tteller := tok.CallerTeller()\n\turequire.False(t, tok == nil)\n\tvar _ Teller = teller\n}\n\nfunc TestTeller(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\turequire.NoError(t, ledger.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestCallerTeller(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\tteller := token.CallerTeller()\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(alice)\n\turequire.NoError(t, teller.Approve(bob, 600))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(bob)\n\turequire.Error(t, teller.TransferFrom(alice, carl, 700))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\turequire.NoError(t, teller.TransferFrom(alice, carl, 400))\n\tcheckBalances(600, 0, 400)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n"},{"name":"token.gno","body":"package grc20\n\nimport (\n\t\"math/overflow\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// NewToken creates a new Token.\n// It returns a pointer to the Token and a pointer to the Ledger.\n// Expected usage: Token, admin := NewToken(\"Dummy\", \"DUMMY\", 4)\nfunc NewToken(name, symbol string, decimals uint) (*Token, *PrivateLedger) {\n\tif name == \"\" {\n\t\tpanic(\"name should not be empty\")\n\t}\n\tif symbol == \"\" {\n\t\tpanic(\"symbol should not be empty\")\n\t}\n\t// XXX additional checks (length, characters, limits, etc)\n\n\tledger := \u0026PrivateLedger{}\n\ttoken := \u0026Token{\n\t\tname: name,\n\t\tsymbol: symbol,\n\t\tdecimals: decimals,\n\t\tledger: ledger,\n\t}\n\tledger.token = token\n\treturn token, ledger\n}\n\n// GetName returns the name of the token.\nfunc (tok Token) GetName() string { return tok.name }\n\n// GetSymbol returns the symbol of the token.\nfunc (tok Token) GetSymbol() string { return tok.symbol }\n\n// GetDecimals returns the number of decimals used to get the token's precision.\nfunc (tok Token) GetDecimals() uint { return tok.decimals }\n\n// TotalSupply returns the total supply of the token.\nfunc (tok Token) TotalSupply() uint64 { return tok.ledger.totalSupply }\n\n// KnownAccounts returns the number of known accounts in the bank.\nfunc (tok Token) KnownAccounts() int { return tok.ledger.balances.Size() }\n\n// BalanceOf returns the balance of the specified address.\nfunc (tok Token) BalanceOf(address std.Address) uint64 {\n\treturn tok.ledger.balanceOf(address)\n}\n\n// Allowance returns the allowance of the specified owner and spender.\nfunc (tok Token) Allowance(owner, spender std.Address) uint64 {\n\treturn tok.ledger.allowance(owner, spender)\n}\n\nfunc (tok *Token) RenderHome() string {\n\tstr := \"\"\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", tok.name, tok.symbol)\n\tstr += ufmt.Sprintf(\"* **Decimals**: %d\\n\", tok.decimals)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", tok.ledger.totalSupply)\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", tok.KnownAccounts())\n\treturn str\n}\n\n// SpendAllowance decreases the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) SpendAllowance(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentAllowance := led.allowance(owner, spender)\n\tif currentAllowance \u003c amount {\n\t\treturn ErrInsufficientAllowance\n\t}\n\n\tkey := allowanceKey(owner, spender)\n\tnewAllowance := currentAllowance - amount\n\n\tif newAllowance == 0 {\n\t\tled.allowances.Remove(key)\n\t} else {\n\t\tled.allowances.Set(key, newAllowance)\n\t}\n\n\treturn nil\n}\n\n// Transfer transfers tokens from the specified from address to the specified to address.\nfunc (led *PrivateLedger) Transfer(from, to std.Address, amount uint64) error {\n\tif !from.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !to.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tvar (\n\t\ttoBalance = led.balanceOf(to)\n\t\tfromBalance = led.balanceOf(from)\n\t)\n\n\tif fromBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tvar (\n\t\tnewToBalance = toBalance + amount\n\t\tnewFromBalance = fromBalance - amount\n\t)\n\n\tled.balances.Set(string(to), newToBalance)\n\tled.balances.Set(string(from), newFromBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// TransferFrom transfers tokens from the specified owner to the specified to address.\n// It first checks if the owner has sufficient balance and then decreases the allowance.\nfunc (led *PrivateLedger) TransferFrom(owner, spender, to std.Address, amount uint64) error {\n\tif led.balanceOf(owner) \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\tif err := led.SpendAllowance(owner, spender, amount); err != nil {\n\t\treturn err\n\t}\n\t// XXX: since we don't \"panic\", we should take care of rollbacking spendAllowance if transfer fails.\n\treturn led.Transfer(owner, to, amount)\n}\n\n// Approve sets the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) Approve(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() || !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tled.allowances.Set(allowanceKey(owner, spender), amount)\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"spender\", string(spender),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Mint increases the total supply of the token and adds the specified amount to the specified address.\nfunc (led *PrivateLedger) Mint(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\t// XXX: math/overflow is not supporting uint64.\n\t// This checks prevents overflow but makes the totalSupply limited to a uint63.\n\tsum, ok := overflow.Add64(int64(led.totalSupply), int64(amount))\n\tif !ok {\n\t\treturn ErrOverflow\n\t}\n\n\tled.totalSupply = uint64(sum)\n\tcurrentBalance := led.balanceOf(address)\n\tnewBalance := currentBalance + amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", \"\",\n\t\t\"to\", string(address),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Burn decreases the total supply of the token and subtracts the specified amount from the specified address.\nfunc (led *PrivateLedger) Burn(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentBalance := led.balanceOf(address)\n\tif currentBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tled.totalSupply -= amount\n\tnewBalance := currentBalance - amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(address),\n\t\t\"to\", \"\",\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// balanceOf returns the balance of the specified address.\nfunc (led PrivateLedger) balanceOf(address std.Address) uint64 {\n\tbalance, found := led.balances.Get(address.String())\n\tif !found {\n\t\treturn 0\n\t}\n\treturn balance.(uint64)\n}\n\n// allowance returns the allowance of the specified owner and spender.\nfunc (led PrivateLedger) allowance(owner, spender std.Address) uint64 {\n\tallowance, found := led.allowances.Get(allowanceKey(owner, spender))\n\tif !found {\n\t\treturn 0\n\t}\n\treturn allowance.(uint64)\n}\n\n// allowanceKey returns the key for the allowance of the specified owner and spender.\nfunc allowanceKey(owner, spender std.Address) string {\n\treturn owner.String() + \":\" + spender.String()\n}\n"},{"name":"token_test.gno","body":"package grc20\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestTestImpl(t *testing.T) {\n\tbank, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\turequire.False(t, bank == nil, \"dummy should not be nil\")\n}\n\nfunc TestToken(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\tbank, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := bank.BalanceOf(alice)\n\t\tbobGB := bank.BalanceOf(bob)\n\t\tcarlGB := bank.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := bank.Allowance(alice, bob)\n\t\tacGB := bank.Allowance(alice, carl)\n\t\tbaGB := bank.Allowance(bob, alice)\n\t\tbcGB := bank.Allowance(bob, carl)\n\t\tcaGB := bank.Allowance(carl, alice)\n\t\tcbGB := bank.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Mint(alice, 1000))\n\turequire.NoError(t, adm.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestOverflow(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\ttok, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\turequire.NoError(t, adm.Mint(alice, 2\u003c\u003c62))\n\turequire.Equal(t, tok.BalanceOf(alice), uint64(2\u003c\u003c62))\n\turequire.Error(t, adm.Mint(bob, 2\u003c\u003c62))\n}\n"},{"name":"types.gno","body":"package grc20\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// Teller interface defines the methods that a GRC20 token must implement. It\n// extends the TokenMetadata interface to include methods for managing token\n// transfers, allowances, and querying balances.\n//\n// The Teller interface is designed to ensure that any token adhering to this\n// standard provides a consistent API for interacting with fungible tokens.\ntype Teller interface {\n\texts.TokenMetadata\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() uint64\n\n\t// Returns the amount of tokens owned by `account`.\n\tBalanceOf(account std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `to`.\n\t//\n\t// Returns an error if the operation failed.\n\tTransfer(to std.Address, amount uint64) error\n\n\t// Returns the remaining number of tokens that `spender` will be\n\t// allowed to spend on behalf of `owner` through {transferFrom}. This is\n\t// zero by default.\n\t//\n\t// This value changes when {approve} or {transferFrom} are called.\n\tAllowance(owner, spender std.Address) uint64\n\n\t// Sets `amount` as the allowance of `spender` over the caller's tokens.\n\t//\n\t// Returns an error if the operation failed.\n\t//\n\t// IMPORTANT: Beware that changing an allowance with this method brings the risk\n\t// that someone may use both the old and the new allowance by unfortunate\n\t// transaction ordering. One possible solution to mitigate this race\n\t// condition is to first reduce the spender's allowance to 0 and set the\n\t// desired value afterwards:\n\t// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n\tApprove(spender std.Address, amount uint64) error\n\n\t// Moves `amount` tokens from `from` to `to` using the\n\t// allowance mechanism. `amount` is then deducted from the caller's\n\t// allowance.\n\t//\n\t// Returns an error if the operation failed.\n\tTransferFrom(from, to std.Address, amount uint64) error\n}\n\n// Token represents a fungible token with a name, symbol, and a certain number\n// of decimal places. It maintains a ledger for tracking balances and allowances\n// of addresses.\n//\n// The Token struct provides methods for retrieving token metadata, such as the\n// name, symbol, and decimals, as well as methods for interacting with the\n// ledger, including checking balances and allowances.\ntype Token struct {\n\tname string // Name of the token (e.g., \"Dummy Token\").\n\tsymbol string // Symbol of the token (e.g., \"DUMMY\").\n\tdecimals uint // Number of decimal places used for the token's precision.\n\tledger *PrivateLedger // Pointer to the PrivateLedger that manages balances and allowances.\n}\n\n// PrivateLedger is a struct that holds the balances and allowances for the\n// token. It provides administrative functions for minting, burning,\n// transferring tokens, and managing allowances.\n//\n// The PrivateLedger is not safe to expose publicly, as it contains sensitive\n// information regarding token balances and allowances, and allows direct,\n// unrestricted access to all administrative functions.\ntype PrivateLedger struct {\n\ttotalSupply uint64 // Total supply of the token managed by this ledger.\n\tbalances avl.Tree // std.Address -\u003e uint64\n\tallowances avl.Tree // owner.(std.Address)+\":\"+spender.(std.Address)) -\u003e uint64\n\ttoken *Token // Pointer to the associated Token struct\n}\n\nvar (\n\tErrInsufficientBalance = errors.New(\"insufficient balance\")\n\tErrInsufficientAllowance = errors.New(\"insufficient allowance\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrReadonly = errors.New(\"banker is readonly\")\n\tErrRestrictedTokenOwner = errors.New(\"restricted to bank owner\")\n\tErrOverflow = errors.New(\"Mint overflow\")\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n)\n\ntype fnTeller struct {\n\taccountFn func() std.Address\n\t*Token\n}\n\nvar _ Teller = (*fnTeller)(nil)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GpGQrhQRnstnAl6X9OVcS+QKp0lmf66ohg2fy+D6l1YvM2zw20WcfSh5BaVQ722WtwTb19Mew3uvi0ZEbI2eAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc20","path":"gno.land/p/demo/grc/grc20","files":[{"name":"examples_test.gno","body":"package grc20\n\n// XXX: write Examples\n\nfunc ExampleInit() {}\nfunc ExampleExposeBankForMaketxRunOrImports() {}\nfunc ExampleCustomTellerImpl() {}\nfunc ExampleAllowance() {}\nfunc ExampleRealmBanker() {}\nfunc ExamplePrevRealmBanker() {}\nfunc ExampleAccountBanker() {}\nfunc ExampleTransfer() {}\nfunc ExampleApprove() {}\nfunc ExampleTransferFrom() {}\nfunc ExampleMint() {}\nfunc ExampleBurn() {}\n\n// ...\n"},{"name":"mock.gno","body":"package grc20\n\n// XXX: func Mock(t *Token)\n"},{"name":"tellers.gno","body":"package grc20\n\nimport (\n\t\"std\"\n)\n\n// CallerTeller returns a GRC20 compatible teller that checks the PrevRealm\n// caller for each call. It's usually safe to expose it publicly to let users\n// manipulate their tokens directly, or for realms to use their allowance.\nfunc (tok *Token) CallerTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\tcaller := std.PrevRealm().Addr()\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ReadonlyTeller is a GRC20 compatible teller that panics for any write operation.\nfunc (tok *Token) ReadonlyTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: nil,\n\t\tToken: tok,\n\t}\n}\n\n// RealmTeller returns a GRC20 compatible teller that will store the\n// caller realm permanently. Calling anything through this teller will\n// result in allowance or balance changes for the realm that initialized the teller.\n// The initializer of this teller should usually never share the resulting Teller from\n// this method except maybe for advanced delegation flows such as a DAO treasury\n// management.\nfunc (tok *Token) RealmTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// RealmSubTeller is like RealmTeller but uses the provided slug to derive a\n// subaccount.\nfunc (tok *Token) RealmSubTeller(slug string) Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\taccount := accountSlugAddr(caller, slug)\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn account\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ImpersonateTeller returns a GRC20 compatible teller that impersonates as a\n// specified address. This allows operations to be performed as if they were\n// executed by the given address, enabling the caller to manipulate tokens on\n// behalf of that address.\n//\n// It is particularly useful in scenarios where a contract needs to perform\n// actions on behalf of a user or another account, without exposing the\n// underlying logic or requiring direct access to the user's account. The\n// returned teller will use the provided address for all operations, effectively\n// masking the original caller.\n//\n// This method should be used with caution, as it allows for potentially\n// sensitive operations to be performed under the guise of another address.\nfunc (ledger *PrivateLedger) ImpersonateTeller(addr std.Address) Teller {\n\tif ledger == nil {\n\t\tpanic(\"Ledger cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn addr\n\t\t},\n\t\tToken: ledger.token,\n\t}\n}\n\n// generic tellers methods.\n//\n\nfunc (ft *fnTeller) Transfer(to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Transfer(caller, to, amount)\n}\n\nfunc (ft *fnTeller) Approve(spender std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Approve(caller, spender, amount)\n}\n\nfunc (ft *fnTeller) TransferFrom(owner, to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tspender := ft.accountFn()\n\treturn ft.Token.ledger.TransferFrom(owner, spender, to, amount)\n}\n\n// helpers\n//\n\n// accountSlugAddr returns the address derived from the specified address and slug.\nfunc accountSlugAddr(addr std.Address, slug string) std.Address {\n\t// XXX: use a new `std.XXX` call for this.\n\tif slug == \"\" {\n\t\treturn addr\n\t}\n\tkey := addr.String() + \"/\" + slug\n\treturn std.DerivePkgAddr(key) // temporarily using this helper\n}\n"},{"name":"tellers_test.gno","body":"package grc20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCallerTellerImpl(t *testing.T) {\n\ttok, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\tteller := tok.CallerTeller()\n\turequire.False(t, tok == nil)\n\tvar _ Teller = teller\n}\n\nfunc TestTeller(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\turequire.NoError(t, ledger.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestCallerTeller(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\tteller := token.CallerTeller()\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(alice)\n\turequire.NoError(t, teller.Approve(bob, 600))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(bob)\n\turequire.Error(t, teller.TransferFrom(alice, carl, 700))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\turequire.NoError(t, teller.TransferFrom(alice, carl, 400))\n\tcheckBalances(600, 0, 400)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n"},{"name":"token.gno","body":"package grc20\n\nimport (\n\t\"math/overflow\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// NewToken creates a new Token.\n// It returns a pointer to the Token and a pointer to the Ledger.\n// Expected usage: Token, admin := NewToken(\"Dummy\", \"DUMMY\", 4)\nfunc NewToken(name, symbol string, decimals uint) (*Token, *PrivateLedger) {\n\tif name == \"\" {\n\t\tpanic(\"name should not be empty\")\n\t}\n\tif symbol == \"\" {\n\t\tpanic(\"symbol should not be empty\")\n\t}\n\t// XXX additional checks (length, characters, limits, etc)\n\n\tledger := \u0026PrivateLedger{}\n\ttoken := \u0026Token{\n\t\tname: name,\n\t\tsymbol: symbol,\n\t\tdecimals: decimals,\n\t\tledger: ledger,\n\t}\n\tledger.token = token\n\treturn token, ledger\n}\n\n// GetName returns the name of the token.\nfunc (tok Token) GetName() string { return tok.name }\n\n// GetSymbol returns the symbol of the token.\nfunc (tok Token) GetSymbol() string { return tok.symbol }\n\n// GetDecimals returns the number of decimals used to get the token's precision.\nfunc (tok Token) GetDecimals() uint { return tok.decimals }\n\n// TotalSupply returns the total supply of the token.\nfunc (tok Token) TotalSupply() uint64 { return tok.ledger.totalSupply }\n\n// KnownAccounts returns the number of known accounts in the bank.\nfunc (tok Token) KnownAccounts() int { return tok.ledger.balances.Size() }\n\n// BalanceOf returns the balance of the specified address.\nfunc (tok Token) BalanceOf(address std.Address) uint64 {\n\treturn tok.ledger.balanceOf(address)\n}\n\n// Allowance returns the allowance of the specified owner and spender.\nfunc (tok Token) Allowance(owner, spender std.Address) uint64 {\n\treturn tok.ledger.allowance(owner, spender)\n}\n\nfunc (tok *Token) RenderHome() string {\n\tstr := \"\"\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", tok.name, tok.symbol)\n\tstr += ufmt.Sprintf(\"* **Decimals**: %d\\n\", tok.decimals)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", tok.ledger.totalSupply)\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", tok.KnownAccounts())\n\treturn str\n}\n\n// SpendAllowance decreases the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) SpendAllowance(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentAllowance := led.allowance(owner, spender)\n\tif currentAllowance \u003c amount {\n\t\treturn ErrInsufficientAllowance\n\t}\n\n\tkey := allowanceKey(owner, spender)\n\tnewAllowance := currentAllowance - amount\n\n\tif newAllowance == 0 {\n\t\tled.allowances.Remove(key)\n\t} else {\n\t\tled.allowances.Set(key, newAllowance)\n\t}\n\n\treturn nil\n}\n\n// Transfer transfers tokens from the specified from address to the specified to address.\nfunc (led *PrivateLedger) Transfer(from, to std.Address, amount uint64) error {\n\tif !from.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !to.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tvar (\n\t\ttoBalance = led.balanceOf(to)\n\t\tfromBalance = led.balanceOf(from)\n\t)\n\n\tif fromBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tvar (\n\t\tnewToBalance = toBalance + amount\n\t\tnewFromBalance = fromBalance - amount\n\t)\n\n\tled.balances.Set(string(to), newToBalance)\n\tled.balances.Set(string(from), newFromBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// TransferFrom transfers tokens from the specified owner to the specified to address.\n// It first checks if the owner has sufficient balance and then decreases the allowance.\nfunc (led *PrivateLedger) TransferFrom(owner, spender, to std.Address, amount uint64) error {\n\tif led.balanceOf(owner) \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\tif err := led.SpendAllowance(owner, spender, amount); err != nil {\n\t\treturn err\n\t}\n\t// XXX: since we don't \"panic\", we should take care of rollbacking spendAllowance if transfer fails.\n\treturn led.Transfer(owner, to, amount)\n}\n\n// Approve sets the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) Approve(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() || !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tled.allowances.Set(allowanceKey(owner, spender), amount)\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"spender\", string(spender),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Mint increases the total supply of the token and adds the specified amount to the specified address.\nfunc (led *PrivateLedger) Mint(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\t// XXX: math/overflow is not supporting uint64.\n\t// This checks prevents overflow but makes the totalSupply limited to a uint63.\n\tsum, ok := overflow.Add64(int64(led.totalSupply), int64(amount))\n\tif !ok {\n\t\treturn ErrOverflow\n\t}\n\n\tled.totalSupply = uint64(sum)\n\tcurrentBalance := led.balanceOf(address)\n\tnewBalance := currentBalance + amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", \"\",\n\t\t\"to\", string(address),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Burn decreases the total supply of the token and subtracts the specified amount from the specified address.\nfunc (led *PrivateLedger) Burn(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentBalance := led.balanceOf(address)\n\tif currentBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tled.totalSupply -= amount\n\tnewBalance := currentBalance - amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(address),\n\t\t\"to\", \"\",\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// balanceOf returns the balance of the specified address.\nfunc (led PrivateLedger) balanceOf(address std.Address) uint64 {\n\tbalance, found := led.balances.Get(address.String())\n\tif !found {\n\t\treturn 0\n\t}\n\treturn balance.(uint64)\n}\n\n// allowance returns the allowance of the specified owner and spender.\nfunc (led PrivateLedger) allowance(owner, spender std.Address) uint64 {\n\tallowance, found := led.allowances.Get(allowanceKey(owner, spender))\n\tif !found {\n\t\treturn 0\n\t}\n\treturn allowance.(uint64)\n}\n\n// allowanceKey returns the key for the allowance of the specified owner and spender.\nfunc allowanceKey(owner, spender std.Address) string {\n\treturn owner.String() + \":\" + spender.String()\n}\n"},{"name":"token_test.gno","body":"package grc20\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestTestImpl(t *testing.T) {\n\tbank, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\turequire.False(t, bank == nil, \"dummy should not be nil\")\n}\n\nfunc TestToken(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\tbank, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := bank.BalanceOf(alice)\n\t\tbobGB := bank.BalanceOf(bob)\n\t\tcarlGB := bank.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := bank.Allowance(alice, bob)\n\t\tacGB := bank.Allowance(alice, carl)\n\t\tbaGB := bank.Allowance(bob, alice)\n\t\tbcGB := bank.Allowance(bob, carl)\n\t\tcaGB := bank.Allowance(carl, alice)\n\t\tcbGB := bank.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Mint(alice, 1000))\n\turequire.NoError(t, adm.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestOverflow(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\ttok, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\turequire.NoError(t, adm.Mint(alice, 2\u003c\u003c62))\n\turequire.Equal(t, tok.BalanceOf(alice), uint64(2\u003c\u003c62))\n\turequire.Error(t, adm.Mint(bob, 2\u003c\u003c62))\n}\n"},{"name":"types.gno","body":"package grc20\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// Teller interface defines the methods that a GRC20 token must implement. It\n// extends the TokenMetadata interface to include methods for managing token\n// transfers, allowances, and querying balances.\n//\n// The Teller interface is designed to ensure that any token adhering to this\n// standard provides a consistent API for interacting with fungible tokens.\ntype Teller interface {\n\texts.TokenMetadata\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() uint64\n\n\t// Returns the amount of tokens owned by `account`.\n\tBalanceOf(account std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `to`.\n\t//\n\t// Returns an error if the operation failed.\n\tTransfer(to std.Address, amount uint64) error\n\n\t// Returns the remaining number of tokens that `spender` will be\n\t// allowed to spend on behalf of `owner` through {transferFrom}. This is\n\t// zero by default.\n\t//\n\t// This value changes when {approve} or {transferFrom} are called.\n\tAllowance(owner, spender std.Address) uint64\n\n\t// Sets `amount` as the allowance of `spender` over the caller's tokens.\n\t//\n\t// Returns an error if the operation failed.\n\t//\n\t// IMPORTANT: Beware that changing an allowance with this method brings\n\t// the risk that someone may use both the old and the new allowance by\n\t// unfortunate transaction ordering. One possible solution to mitigate\n\t// this race condition is to first reduce the spender's allowance to 0\n\t// and set the desired value afterwards:\n\t// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n\tApprove(spender std.Address, amount uint64) error\n\n\t// Moves `amount` tokens from `from` to `to` using the\n\t// allowance mechanism. `amount` is then deducted from the caller's\n\t// allowance.\n\t//\n\t// Returns an error if the operation failed.\n\tTransferFrom(from, to std.Address, amount uint64) error\n}\n\n// Token represents a fungible token with a name, symbol, and a certain number\n// of decimal places. It maintains a ledger for tracking balances and allowances\n// of addresses.\n//\n// The Token struct provides methods for retrieving token metadata, such as the\n// name, symbol, and decimals, as well as methods for interacting with the\n// ledger, including checking balances and allowances.\ntype Token struct {\n\t// Name of the token (e.g., \"Dummy Token\").\n\tname string\n\t// Symbol of the token (e.g., \"DUMMY\").\n\tsymbol string\n\t// Number of decimal places used for the token's precision.\n\tdecimals uint\n\t// Pointer to the PrivateLedger that manages balances and allowances.\n\tledger *PrivateLedger\n}\n\n// TokenGetter is a function type that returns a Token pointer. This type allows\n// bypassing a limitation where we cannot directly pass Token pointers between\n// realms. Instead, we pass this function which can then be called to get the\n// Token pointer. For more details on this limitation and workaround, see:\n// https://github.com/gnolang/gno/pull/3135\ntype TokenGetter func() *Token\n\n// PrivateLedger is a struct that holds the balances and allowances for the\n// token. It provides administrative functions for minting, burning,\n// transferring tokens, and managing allowances.\n//\n// The PrivateLedger is not safe to expose publicly, as it contains sensitive\n// information regarding token balances and allowances, and allows direct,\n// unrestricted access to all administrative functions.\ntype PrivateLedger struct {\n\t// Total supply of the token managed by this ledger.\n\ttotalSupply uint64\n\t// std.Address -\u003e uint64\n\tbalances avl.Tree\n\t// owner.(std.Address)+\":\"+spender.(std.Address)) -\u003e uint64\n\tallowances avl.Tree\n\t// Pointer to the associated Token struct\n\ttoken *Token\n}\n\nvar (\n\tErrInsufficientBalance = errors.New(\"insufficient balance\")\n\tErrInsufficientAllowance = errors.New(\"insufficient allowance\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrReadonly = errors.New(\"banker is readonly\")\n\tErrRestrictedTokenOwner = errors.New(\"restricted to bank owner\")\n\tErrOverflow = errors.New(\"Mint overflow\")\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n)\n\ntype fnTeller struct {\n\taccountFn func() std.Address\n\t*Token\n}\n\nvar _ Teller = (*fnTeller)(nil)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fRdSP4ayQT8Imml24r8l3W122+o9DCdQvlxeK5Xddta9ujd3/zniAQnbcHlO6cYxu70wZeipHFTL8vP7CF2QCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc20reg","path":"gno.land/r/demo/grc20reg","files":[{"name":"grc20reg.gno","body":"package grc20reg\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar registry = avl.NewTree() // rlmPath[.slug] -\u003e TokenGetter (slug is optional)\n\nfunc Register(tokenGetter grc20.TokenGetter, slug string) {\n\trlmPath := std.PrevRealm().PkgPath()\n\tkey := fqname.Construct(rlmPath, slug)\n\tregistry.Set(key, tokenGetter)\n\tstd.Emit(\n\t\tregisterEvent,\n\t\t\"pkgpath\", rlmPath,\n\t\t\"slug\", slug,\n\t)\n}\n\nfunc Get(key string) grc20.TokenGetter {\n\ttokenGetter, ok := registry.Get(key)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn tokenGetter.(grc20.TokenGetter)\n}\n\nfunc MustGet(key string) grc20.TokenGetter {\n\ttokenGetter := Get(key)\n\tif tokenGetter == nil {\n\t\tpanic(\"unknown token: \" + key)\n\t}\n\treturn tokenGetter\n}\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\": // home\n\t\t// TODO: add pagination\n\t\ts := \"\"\n\t\tcount := 0\n\t\tregistry.Iterate(\"\", \"\", func(key string, tokenI interface{}) bool {\n\t\t\tcount++\n\t\t\ttokenGetter := tokenI.(grc20.TokenGetter)\n\t\t\ttoken := tokenGetter()\n\t\t\trlmPath, slug := fqname.Parse(key)\n\t\t\trlmLink := fqname.RenderLink(rlmPath, slug)\n\t\t\tinfoLink := \"/r/demo/grc20reg:\" + key\n\t\t\ts += ufmt.Sprintf(\"- **%s** - %s - [info](%s)\\n\", token.GetName(), rlmLink, infoLink)\n\t\t\treturn false\n\t\t})\n\t\tif count == 0 {\n\t\t\treturn \"No registered token.\"\n\t\t}\n\t\treturn s\n\tdefault: // specific token\n\t\tkey := path\n\t\ttokenGetter := MustGet(key)\n\t\ttoken := tokenGetter()\n\t\trlmPath, slug := fqname.Parse(key)\n\t\trlmLink := fqname.RenderLink(rlmPath, slug)\n\t\ts := ufmt.Sprintf(\"# %s\\n\", token.GetName())\n\t\ts += ufmt.Sprintf(\"- symbol: **%s**\\n\", token.GetSymbol())\n\t\ts += ufmt.Sprintf(\"- realm: %s\\n\", rlmLink)\n\t\ts += ufmt.Sprintf(\"- decimals: %d\\n\", token.GetDecimals())\n\t\ts += ufmt.Sprintf(\"- total supply: %d\\n\", token.TotalSupply())\n\t\treturn s\n\t}\n}\n\nconst registerEvent = \"register\"\n"},{"name":"grc20reg_test.gno","body":"package grc20reg\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestRegistry(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/demo/foo\"))\n\trealmAddr := std.CurrentRealm().PkgPath()\n\ttoken, ledger := grc20.NewToken(\"TestToken\", \"TST\", 4)\n\tledger.Mint(std.CurrentRealm().Addr(), 1234567)\n\ttokenGetter := func() *grc20.Token { return token }\n\t// register\n\tRegister(tokenGetter, \"\")\n\tregTokenGetter := Get(realmAddr)\n\tregToken := regTokenGetter()\n\turequire.True(t, regToken != nil, \"expected to find a token\") // fixme: use urequire.NotNil\n\turequire.Equal(t, regToken.GetSymbol(), \"TST\")\n\n\texpected := `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo) - [info](/r/demo/grc20reg:gno.land/r/demo/foo)\n`\n\tgot := Render(\"\")\n\turequire.True(t, strings.Contains(got, expected))\n\t// 404\n\tinvalidToken := Get(\"0xdeadbeef\")\n\turequire.True(t, invalidToken == nil)\n\n\t// register with a slug\n\tRegister(tokenGetter, \"mySlug\")\n\tregTokenGetter = Get(realmAddr + \".mySlug\")\n\tregToken = regTokenGetter()\n\turequire.True(t, regToken != nil, \"expected to find a token\") // fixme: use urequire.NotNil\n\turequire.Equal(t, regToken.GetSymbol(), \"TST\")\n\n\t// override\n\tRegister(tokenGetter, \"\")\n\tregTokenGetter = Get(realmAddr + \"\")\n\tregToken = regTokenGetter()\n\turequire.True(t, regToken != nil, \"expected to find a token\") // fixme: use urequire.NotNil\n\turequire.Equal(t, regToken.GetSymbol(), \"TST\")\n\n\tgot = Render(\"\")\n\turequire.True(t, strings.Contains(got, `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo) - [info](/r/demo/grc20reg:gno.land/r/demo/foo)`))\n\turequire.True(t, strings.Contains(got, `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo).mySlug - [info](/r/demo/grc20reg:gno.land/r/demo/foo.mySlug)`))\n\n\texpected = `# TestToken\n- symbol: **TST**\n- realm: [gno.land/r/demo/foo](/r/demo/foo).mySlug\n- decimals: 4\n- total supply: 1234567\n`\n\tgot = Render(\"gno.land/r/demo/foo.mySlug\")\n\turequire.Equal(t, expected, got)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cFzx06OUUAqEu6S4xX9PKe246GKow7cr8UsFe5VskGPAn3L752Bxh63andcfbSnxCgQii5rcOAoKV1/wOIfiAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc721","path":"gno.land/p/demo/grc/grc721","files":[{"name":"basic_nft.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid TokenID, tURI TokenURI) (bool, error) {\n\t// check for invalid TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tBurnEvent,\n\t\t\"from\", string(owner),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(operator),\n\t\t\"approved\", strconv.FormatBool(approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(from),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tMintEvent,\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"basic_nft_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tdummyNFTName = \"DummyNFT\"\n\tdummyNFTSymbol = \"DNFT\"\n)\n\nfunc TestNewBasicNFT(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestName(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tname := dummy.Name()\n\tuassert.Equal(t, dummyNFTName, name)\n}\n\nfunc TestSymbol(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tsymbol := dummy.Symbol()\n\tuassert.Equal(t, dummyNFTSymbol, symbol)\n}\n\nfunc TestTokenCount(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcount := dummy.TokenCount()\n\tuassert.Equal(t, uint64(0), count)\n\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"1\"))\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"2\"))\n\n\tcount = dummy.TokenCount()\n\tuassert.Equal(t, uint64(2), count)\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tbalanceAddr1, err := dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1)\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr1, TokenID(\"2\"))\n\tdummy.mint(addr2, TokenID(\"3\"))\n\n\tbalanceAddr1, err = dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceAddr2, err := dummy.BalanceOf(addr2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(2), balanceAddr1)\n\tuassert.Equal(t, uint64(1), balanceAddr2)\n}\n\nfunc TestOwnerOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\towner, err := dummy.OwnerOf(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr2, TokenID(\"2\"))\n\n\t// Checking for token id \"1\"\n\towner, err = dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n\n\t// Checking for token id \"2\"\n\towner, err = dummy.OwnerOf(TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr2.String(), owner.String())\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n}\n\nfunc TestGetApproved(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestApprove(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\n\t_, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.Approve(addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), approvedAddr.String())\n}\n\nfunc TestTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.TransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.SafeTransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestMint(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\terr := dummy.Mint(addr1, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr1, TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr2, TokenID(\"3\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Try minting duplicate token id\n\terr = dummy.Mint(addr2, TokenID(\"1\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(addr, TokenID(\"1\"))\n\tdummy.mint(addr, TokenID(\"2\"))\n\n\terr := dummy.Burn(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestSetTokenURI(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\ttokenURI := \"http://example.com/token\"\n\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\t_, derr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI))\n\tuassert.NoError(t, derr, \"should not result in error\")\n\n\t// Test case: Invalid token ID\n\t_, err := dummy.SetTokenURI(TokenID(\"3\"), TokenURI(tokenURI))\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(std.Address(addr2)) // addr2\n\n\t_, cerr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI)) // addr2 trying to set URI for token 1\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Retrieving TokenURI\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummyTokenURI, err := dummy.TokenURI(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"TokenURI error\")\n\tuassert.Equal(t, string(tokenURI), string(dummyTokenURI))\n}\n"},{"name":"errors.gno","body":"package grc721\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// Ensure that metadataNFT implements the IGRC721MetadataOnchain interface.\nvar _ IGRC721MetadataOnchain = (*metadataNFT)(nil)\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid TokenID, metadata Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid TokenID) (Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(zeroAddress),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"grc721_metadata_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetMetadata(t *testing.T) {\n\t// Create a new dummy NFT with metadata\n\tdummy := NewNFTWithMetadata(dummyNFTName, dummyNFTSymbol)\n\tif dummy == nil {\n\t\tt.Errorf(\"should not be nil\")\n\t}\n\n\t// Define addresses for testing purposes\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\t// Define metadata attributes\n\tname := \"test\"\n\tdescription := \"test\"\n\timage := \"test\"\n\timageData := \"test\"\n\texternalURL := \"test\"\n\tattributes := []Trait{}\n\tbackgroundColor := \"test\"\n\tanimationURL := \"test\"\n\tyoutubeURL := \"test\"\n\n\t// Set the original caller to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Mint a new token for addr1\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\t// Set metadata for token 1\n\tderr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if there was an error setting metadata\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenMetadata(TokenID(\"3\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\t// Set the original caller to addr2\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\t// Try to set metadata for token 1 from addr2 (should fail)\n\tcerr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Set the original caller back to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Retrieve metadata for token 1\n\tdummyMetadata, err := dummy.TokenMetadata(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"Metadata error\")\n\n\t// Check if metadata attributes match expected values\n\tuassert.Equal(t, image, dummyMetadata.Image)\n\tuassert.Equal(t, imageData, dummyMetadata.ImageData)\n\tuassert.Equal(t, externalURL, dummyMetadata.ExternalURL)\n\tuassert.Equal(t, description, dummyMetadata.Description)\n\tuassert.Equal(t, name, dummyMetadata.Name)\n\tuassert.Equal(t, len(attributes), len(dummyMetadata.Attributes))\n\tuassert.Equal(t, backgroundColor, dummyMetadata.BackgroundColor)\n\tuassert.Equal(t, animationURL, dummyMetadata.AnimationURL)\n\tuassert.Equal(t, youtubeURL, dummyMetadata.YoutubeURL)\n}\n"},{"name":"grc721_royalty.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// royaltyNFT represents a non-fungible token (NFT) with royalty functionality.\ntype royaltyNFT struct {\n\t*metadataNFT // Embedding metadataNFT for NFT functionality\n\ttokenRoyaltyInfo *avl.Tree // AVL tree to store royalty information for each token\n\tmaxRoyaltyPercentage uint64 // maxRoyaltyPercentage represents the maximum royalty percentage that can be charged every sale\n}\n\n// Ensure that royaltyNFT implements the IGRC2981 interface.\nvar _ IGRC2981 = (*royaltyNFT)(nil)\n\n// NewNFTWithRoyalty creates a new royalty NFT with the specified name, symbol, and royalty calculator.\nfunc NewNFTWithRoyalty(name string, symbol string) *royaltyNFT {\n\t// Create a new NFT with metadata\n\tnft := NewNFTWithMetadata(name, symbol)\n\n\treturn \u0026royaltyNFT{\n\t\tmetadataNFT: nft,\n\t\ttokenRoyaltyInfo: avl.NewTree(),\n\t\tmaxRoyaltyPercentage: 100,\n\t}\n}\n\n// SetTokenRoyalty sets the royalty information for a specific token ID.\nfunc (r *royaltyNFT) SetTokenRoyalty(tid TokenID, royaltyInfo RoyaltyInfo) error {\n\t// Validate the payment address\n\tif err := isValidAddress(royaltyInfo.PaymentAddress); err != nil {\n\t\treturn ErrInvalidRoyaltyPaymentAddress\n\t}\n\n\t// Check if royalty percentage exceeds maxRoyaltyPercentage\n\tif royaltyInfo.Percentage \u003e r.maxRoyaltyPercentage {\n\t\treturn ErrInvalidRoyaltyPercentage\n\t}\n\n\t// Check if the caller is the owner of the token\n\towner, err := r.metadataNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set royalty information for the token\n\tr.tokenRoyaltyInfo.Set(string(tid), royaltyInfo)\n\n\treturn nil\n}\n\n// RoyaltyInfo returns the royalty information for the given token ID and sale price.\nfunc (r *royaltyNFT) RoyaltyInfo(tid TokenID, salePrice uint64) (std.Address, uint64, error) {\n\t// Retrieve royalty information for the token\n\tval, found := r.tokenRoyaltyInfo.Get(string(tid))\n\tif !found {\n\t\treturn \"\", 0, ErrInvalidTokenId\n\t}\n\n\troyaltyInfo := val.(RoyaltyInfo)\n\n\t// Calculate royalty amount\n\troyaltyAmount, _ := r.calculateRoyaltyAmount(salePrice, royaltyInfo.Percentage)\n\n\treturn royaltyInfo.PaymentAddress, royaltyAmount, nil\n}\n\nfunc (r *royaltyNFT) calculateRoyaltyAmount(salePrice, percentage uint64) (uint64, error) {\n\troyaltyAmount := (salePrice * percentage) / 100\n\treturn royaltyAmount, nil\n}\n"},{"name":"grc721_royalty_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetTokenRoyalty(t *testing.T) {\n\tdummy := NewNFTWithRoyalty(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\tpaymentAddress := testutils.TestAddress(\"john\")\n\tpercentage := uint64(10) // 10%\n\n\tsalePrice := uint64(1000)\n\texpectRoyaltyAmount := uint64(100)\n\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\tderr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenRoyalty(TokenID(\"3\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, derr, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\tcerr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Invalid payment address\n\taerr := dummy.SetTokenRoyalty(TokenID(\"4\"), RoyaltyInfo{\n\t\tPaymentAddress: std.Address(\"###\"), // invalid address\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, aerr, ErrInvalidRoyaltyPaymentAddress)\n\n\t// Test case: Invalid percentage\n\tperr := dummy.SetTokenRoyalty(TokenID(\"5\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: uint64(200), // over maxRoyaltyPercentage\n\t})\n\tuassert.ErrorIs(t, perr, ErrInvalidRoyaltyPercentage)\n\n\t// Test case: Retrieving Royalty Info\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummyPaymentAddress, dummyRoyaltyAmount, rerr := dummy.RoyaltyInfo(TokenID(\"1\"), salePrice)\n\tuassert.NoError(t, rerr, \"RoyaltyInfo error\")\n\tuassert.Equal(t, paymentAddress, dummyPaymentAddress)\n\tuassert.Equal(t, expectRoyaltyAmount, dummyRoyaltyAmount)\n}\n"},{"name":"igrc721.gno","body":"package grc721\n\nimport \"std\"\n\ntype IGRC721 interface {\n\tBalanceOf(owner std.Address) (uint64, error)\n\tOwnerOf(tid TokenID) (std.Address, error)\n\tSetTokenURI(tid TokenID, tURI TokenURI) (bool, error)\n\tSafeTransferFrom(from, to std.Address, tid TokenID) error\n\tTransferFrom(from, to std.Address, tid TokenID) error\n\tApprove(approved std.Address, tid TokenID) error\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tGetApproved(tid TokenID) (std.Address, error)\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype (\n\tTokenID string\n\tTokenURI string\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"igrc721_metadata.gno","body":"package grc721\n\n// IGRC721CollectionMetadata describes basic information about an NFT collection.\ntype IGRC721CollectionMetadata interface {\n\tName() string // Name returns the name of the collection.\n\tSymbol() string // Symbol returns the symbol of the collection.\n}\n\n// IGRC721Metadata follows the Ethereum standard\ntype IGRC721Metadata interface {\n\tIGRC721CollectionMetadata\n\tTokenURI(tid TokenID) (string, error) // TokenURI returns the URI of a specific token.\n}\n\n// IGRC721Metadata follows the OpenSea metadata standard\ntype IGRC721MetadataOnchain interface {\n\tIGRC721CollectionMetadata\n\tTokenMetadata(tid TokenID) (Metadata, error)\n}\n\ntype Trait struct {\n\tDisplayType string\n\tTraitType string\n\tValue string\n}\n\n// see: https://docs.opensea.io/docs/metadata-standards\ntype Metadata struct {\n\tImage string // URL to the image of the item. Can be any type of image (including SVGs, which will be cached into PNGs by OpenSea), IPFS or Arweave URLs or paths. We recommend using a minimum 3000 x 3000 image.\n\tImageData string // Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.\n\tExternalURL string // URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.\n\tDescription string // Human-readable description of the item. Markdown is supported.\n\tName string // Name of the item.\n\tAttributes []Trait // Attributes for the item, which will show up on the OpenSea page for the item.\n\tBackgroundColor string // Background color of the item on OpenSea. Must be a six-character hexadecimal without a pre-pended #\n\tAnimationURL string // URL to a multimedia attachment for the item. Supported file extensions: GLTF, GLB, WEBM, MP4, M4V, OGV, OGG, MP3, WAV, OGA, HTML (for rich experiences and interactive NFTs using JavaScript canvas, WebGL, etc.). Scripts and relative paths within the HTML page are now supported. Access to browser extensions is not supported.\n\tYoutubeURL string // URL to a YouTube video (only used if animation_url is not provided).\n}\n"},{"name":"igrc721_royalty.gno","body":"package grc721\n\nimport \"std\"\n\n// IGRC2981 follows the Ethereum standard\ntype IGRC2981 interface {\n\t// RoyaltyInfo retrieves royalty information for a tokenID and salePrice.\n\t// It returns the payment address, royalty amount, and an error if any.\n\tRoyaltyInfo(tokenID TokenID, salePrice uint64) (std.Address, uint64, error)\n}\n\n// RoyaltyInfo represents royalty information for a token.\ntype RoyaltyInfo struct {\n\tPaymentAddress std.Address // PaymentAddress is the address where royalty payment should be sent.\n\tPercentage uint64 // Percentage is the royalty percentage. It indicates the percentage of royalty to be paid for each sale. For example : Percentage = 10 =\u003e 10%\n}\n"},{"name":"util.gno","body":"package grc721\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M88Wm+gnxi5BGXHHlKkmPmGkbpRDtNR9DS4A6KzfFp2eCpW6BLED7IlS7556PoqaxIHVimOSkQwIeqbL4BRoAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc721","path":"gno.land/p/demo/grc/grc721","files":[{"name":"basic_nft.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid TokenID, tURI TokenURI) (bool, error) {\n\t// check for invalid TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tBurnEvent,\n\t\t\"from\", string(owner),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(operator),\n\t\t\"approved\", strconv.FormatBool(approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(from),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tMintEvent,\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"basic_nft_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tdummyNFTName = \"DummyNFT\"\n\tdummyNFTSymbol = \"DNFT\"\n)\n\nfunc TestNewBasicNFT(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestName(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tname := dummy.Name()\n\tuassert.Equal(t, dummyNFTName, name)\n}\n\nfunc TestSymbol(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tsymbol := dummy.Symbol()\n\tuassert.Equal(t, dummyNFTSymbol, symbol)\n}\n\nfunc TestTokenCount(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcount := dummy.TokenCount()\n\tuassert.Equal(t, uint64(0), count)\n\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"1\"))\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"2\"))\n\n\tcount = dummy.TokenCount()\n\tuassert.Equal(t, uint64(2), count)\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tbalanceAddr1, err := dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1)\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr1, TokenID(\"2\"))\n\tdummy.mint(addr2, TokenID(\"3\"))\n\n\tbalanceAddr1, err = dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceAddr2, err := dummy.BalanceOf(addr2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(2), balanceAddr1)\n\tuassert.Equal(t, uint64(1), balanceAddr2)\n}\n\nfunc TestOwnerOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\towner, err := dummy.OwnerOf(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr2, TokenID(\"2\"))\n\n\t// Checking for token id \"1\"\n\towner, err = dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n\n\t// Checking for token id \"2\"\n\towner, err = dummy.OwnerOf(TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr2.String(), owner.String())\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n}\n\nfunc TestGetApproved(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestApprove(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\n\t_, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.Approve(addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), approvedAddr.String())\n}\n\nfunc TestTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.TransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.SafeTransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestMint(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\terr := dummy.Mint(addr1, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr1, TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr2, TokenID(\"3\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Try minting duplicate token id\n\terr = dummy.Mint(addr2, TokenID(\"1\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(addr, TokenID(\"1\"))\n\tdummy.mint(addr, TokenID(\"2\"))\n\n\terr := dummy.Burn(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestSetTokenURI(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\ttokenURI := \"http://example.com/token\"\n\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\t_, derr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI))\n\tuassert.NoError(t, derr, \"should not result in error\")\n\n\t// Test case: Invalid token ID\n\t_, err := dummy.SetTokenURI(TokenID(\"3\"), TokenURI(tokenURI))\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(std.Address(addr2)) // addr2\n\n\t_, cerr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI)) // addr2 trying to set URI for token 1\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Retrieving TokenURI\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummyTokenURI, err := dummy.TokenURI(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"TokenURI error\")\n\tuassert.Equal(t, string(tokenURI), string(dummyTokenURI))\n}\n"},{"name":"errors.gno","body":"package grc721\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// Ensure that metadataNFT implements the IGRC721MetadataOnchain interface.\nvar _ IGRC721MetadataOnchain = (*metadataNFT)(nil)\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid TokenID, metadata Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid TokenID) (Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(zeroAddress),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"grc721_metadata_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetMetadata(t *testing.T) {\n\t// Create a new dummy NFT with metadata\n\tdummy := NewNFTWithMetadata(dummyNFTName, dummyNFTSymbol)\n\tif dummy == nil {\n\t\tt.Errorf(\"should not be nil\")\n\t}\n\n\t// Define addresses for testing purposes\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\t// Define metadata attributes\n\tname := \"test\"\n\tdescription := \"test\"\n\timage := \"test\"\n\timageData := \"test\"\n\texternalURL := \"test\"\n\tattributes := []Trait{}\n\tbackgroundColor := \"test\"\n\tanimationURL := \"test\"\n\tyoutubeURL := \"test\"\n\n\t// Set the original caller to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Mint a new token for addr1\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\t// Set metadata for token 1\n\tderr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if there was an error setting metadata\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenMetadata(TokenID(\"3\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\t// Set the original caller to addr2\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\t// Try to set metadata for token 1 from addr2 (should fail)\n\tcerr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Set the original caller back to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Retrieve metadata for token 1\n\tdummyMetadata, err := dummy.TokenMetadata(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"Metadata error\")\n\n\t// Check if metadata attributes match expected values\n\tuassert.Equal(t, image, dummyMetadata.Image)\n\tuassert.Equal(t, imageData, dummyMetadata.ImageData)\n\tuassert.Equal(t, externalURL, dummyMetadata.ExternalURL)\n\tuassert.Equal(t, description, dummyMetadata.Description)\n\tuassert.Equal(t, name, dummyMetadata.Name)\n\tuassert.Equal(t, len(attributes), len(dummyMetadata.Attributes))\n\tuassert.Equal(t, backgroundColor, dummyMetadata.BackgroundColor)\n\tuassert.Equal(t, animationURL, dummyMetadata.AnimationURL)\n\tuassert.Equal(t, youtubeURL, dummyMetadata.YoutubeURL)\n}\n"},{"name":"grc721_royalty.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// royaltyNFT represents a non-fungible token (NFT) with royalty functionality.\ntype royaltyNFT struct {\n\t*metadataNFT // Embedding metadataNFT for NFT functionality\n\ttokenRoyaltyInfo *avl.Tree // AVL tree to store royalty information for each token\n\tmaxRoyaltyPercentage uint64 // maxRoyaltyPercentage represents the maximum royalty percentage that can be charged every sale\n}\n\n// Ensure that royaltyNFT implements the IGRC2981 interface.\nvar _ IGRC2981 = (*royaltyNFT)(nil)\n\n// NewNFTWithRoyalty creates a new royalty NFT with the specified name, symbol, and royalty calculator.\nfunc NewNFTWithRoyalty(name string, symbol string) *royaltyNFT {\n\t// Create a new NFT with metadata\n\tnft := NewNFTWithMetadata(name, symbol)\n\n\treturn \u0026royaltyNFT{\n\t\tmetadataNFT: nft,\n\t\ttokenRoyaltyInfo: avl.NewTree(),\n\t\tmaxRoyaltyPercentage: 100,\n\t}\n}\n\n// SetTokenRoyalty sets the royalty information for a specific token ID.\nfunc (r *royaltyNFT) SetTokenRoyalty(tid TokenID, royaltyInfo RoyaltyInfo) error {\n\t// Validate the payment address\n\tif err := isValidAddress(royaltyInfo.PaymentAddress); err != nil {\n\t\treturn ErrInvalidRoyaltyPaymentAddress\n\t}\n\n\t// Check if royalty percentage exceeds maxRoyaltyPercentage\n\tif royaltyInfo.Percentage \u003e r.maxRoyaltyPercentage {\n\t\treturn ErrInvalidRoyaltyPercentage\n\t}\n\n\t// Check if the caller is the owner of the token\n\towner, err := r.metadataNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set royalty information for the token\n\tr.tokenRoyaltyInfo.Set(string(tid), royaltyInfo)\n\n\treturn nil\n}\n\n// RoyaltyInfo returns the royalty information for the given token ID and sale price.\nfunc (r *royaltyNFT) RoyaltyInfo(tid TokenID, salePrice uint64) (std.Address, uint64, error) {\n\t// Retrieve royalty information for the token\n\tval, found := r.tokenRoyaltyInfo.Get(string(tid))\n\tif !found {\n\t\treturn \"\", 0, ErrInvalidTokenId\n\t}\n\n\troyaltyInfo := val.(RoyaltyInfo)\n\n\t// Calculate royalty amount\n\troyaltyAmount, _ := r.calculateRoyaltyAmount(salePrice, royaltyInfo.Percentage)\n\n\treturn royaltyInfo.PaymentAddress, royaltyAmount, nil\n}\n\nfunc (r *royaltyNFT) calculateRoyaltyAmount(salePrice, percentage uint64) (uint64, error) {\n\troyaltyAmount := (salePrice * percentage) / 100\n\treturn royaltyAmount, nil\n}\n"},{"name":"grc721_royalty_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetTokenRoyalty(t *testing.T) {\n\tdummy := NewNFTWithRoyalty(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\tpaymentAddress := testutils.TestAddress(\"john\")\n\tpercentage := uint64(10) // 10%\n\n\tsalePrice := uint64(1000)\n\texpectRoyaltyAmount := uint64(100)\n\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\tderr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenRoyalty(TokenID(\"3\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, derr, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\tcerr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Invalid payment address\n\taerr := dummy.SetTokenRoyalty(TokenID(\"4\"), RoyaltyInfo{\n\t\tPaymentAddress: std.Address(\"###\"), // invalid address\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, aerr, ErrInvalidRoyaltyPaymentAddress)\n\n\t// Test case: Invalid percentage\n\tperr := dummy.SetTokenRoyalty(TokenID(\"5\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: uint64(200), // over maxRoyaltyPercentage\n\t})\n\tuassert.ErrorIs(t, perr, ErrInvalidRoyaltyPercentage)\n\n\t// Test case: Retrieving Royalty Info\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummyPaymentAddress, dummyRoyaltyAmount, rerr := dummy.RoyaltyInfo(TokenID(\"1\"), salePrice)\n\tuassert.NoError(t, rerr, \"RoyaltyInfo error\")\n\tuassert.Equal(t, paymentAddress, dummyPaymentAddress)\n\tuassert.Equal(t, expectRoyaltyAmount, dummyRoyaltyAmount)\n}\n"},{"name":"igrc721.gno","body":"package grc721\n\nimport \"std\"\n\ntype IGRC721 interface {\n\tBalanceOf(owner std.Address) (uint64, error)\n\tOwnerOf(tid TokenID) (std.Address, error)\n\tSetTokenURI(tid TokenID, tURI TokenURI) (bool, error)\n\tSafeTransferFrom(from, to std.Address, tid TokenID) error\n\tTransferFrom(from, to std.Address, tid TokenID) error\n\tApprove(approved std.Address, tid TokenID) error\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tGetApproved(tid TokenID) (std.Address, error)\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype (\n\tTokenID string\n\tTokenURI string\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"igrc721_metadata.gno","body":"package grc721\n\n// IGRC721CollectionMetadata describes basic information about an NFT collection.\ntype IGRC721CollectionMetadata interface {\n\tName() string // Name returns the name of the collection.\n\tSymbol() string // Symbol returns the symbol of the collection.\n}\n\n// IGRC721Metadata follows the Ethereum standard\ntype IGRC721Metadata interface {\n\tIGRC721CollectionMetadata\n\tTokenURI(tid TokenID) (string, error) // TokenURI returns the URI of a specific token.\n}\n\n// IGRC721Metadata follows the OpenSea metadata standard\ntype IGRC721MetadataOnchain interface {\n\tIGRC721CollectionMetadata\n\tTokenMetadata(tid TokenID) (Metadata, error)\n}\n\ntype Trait struct {\n\tDisplayType string\n\tTraitType string\n\tValue string\n}\n\n// see: https://docs.opensea.io/docs/metadata-standards\ntype Metadata struct {\n\tImage string // URL to the image of the item. Can be any type of image (including SVGs, which will be cached into PNGs by OpenSea), IPFS or Arweave URLs or paths. We recommend using a minimum 3000 x 3000 image.\n\tImageData string // Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.\n\tExternalURL string // URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.\n\tDescription string // Human-readable description of the item. Markdown is supported.\n\tName string // Name of the item.\n\tAttributes []Trait // Attributes for the item, which will show up on the OpenSea page for the item.\n\tBackgroundColor string // Background color of the item on OpenSea. Must be a six-character hexadecimal without a pre-pended #\n\tAnimationURL string // URL to a multimedia attachment for the item. Supported file extensions: GLTF, GLB, WEBM, MP4, M4V, OGV, OGG, MP3, WAV, OGA, HTML (for rich experiences and interactive NFTs using JavaScript canvas, WebGL, etc.). Scripts and relative paths within the HTML page are now supported. Access to browser extensions is not supported.\n\tYoutubeURL string // URL to a YouTube video (only used if animation_url is not provided).\n}\n"},{"name":"igrc721_royalty.gno","body":"package grc721\n\nimport \"std\"\n\n// IGRC2981 follows the Ethereum standard\ntype IGRC2981 interface {\n\t// RoyaltyInfo retrieves royalty information for a tokenID and salePrice.\n\t// It returns the payment address, royalty amount, and an error if any.\n\tRoyaltyInfo(tokenID TokenID, salePrice uint64) (std.Address, uint64, error)\n}\n\n// RoyaltyInfo represents royalty information for a token.\ntype RoyaltyInfo struct {\n\tPaymentAddress std.Address // PaymentAddress is the address where royalty payment should be sent.\n\tPercentage uint64 // Percentage is the royalty percentage. It indicates the percentage of royalty to be paid for each sale. For example : Percentage = 10 =\u003e 10%\n}\n"},{"name":"util.gno","body":"package grc721\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M88Wm+gnxi5BGXHHlKkmPmGkbpRDtNR9DS4A6KzfFp2eCpW6BLED7IlS7556PoqaxIHVimOSkQwIeqbL4BRoAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc721","path":"gno.land/p/demo/grc/grc721","files":[{"name":"basic_nft.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid TokenID, tURI TokenURI) (bool, error) {\n\t// check for invalid TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tBurnEvent,\n\t\t\"from\", string(owner),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(operator),\n\t\t\"approved\", strconv.FormatBool(approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(from),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tMintEvent,\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"basic_nft_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tdummyNFTName = \"DummyNFT\"\n\tdummyNFTSymbol = \"DNFT\"\n)\n\nfunc TestNewBasicNFT(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestName(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tname := dummy.Name()\n\tuassert.Equal(t, dummyNFTName, name)\n}\n\nfunc TestSymbol(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tsymbol := dummy.Symbol()\n\tuassert.Equal(t, dummyNFTSymbol, symbol)\n}\n\nfunc TestTokenCount(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcount := dummy.TokenCount()\n\tuassert.Equal(t, uint64(0), count)\n\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"1\"))\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"2\"))\n\n\tcount = dummy.TokenCount()\n\tuassert.Equal(t, uint64(2), count)\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tbalanceAddr1, err := dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1)\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr1, TokenID(\"2\"))\n\tdummy.mint(addr2, TokenID(\"3\"))\n\n\tbalanceAddr1, err = dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceAddr2, err := dummy.BalanceOf(addr2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(2), balanceAddr1)\n\tuassert.Equal(t, uint64(1), balanceAddr2)\n}\n\nfunc TestOwnerOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\towner, err := dummy.OwnerOf(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr2, TokenID(\"2\"))\n\n\t// Checking for token id \"1\"\n\towner, err = dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n\n\t// Checking for token id \"2\"\n\towner, err = dummy.OwnerOf(TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr2.String(), owner.String())\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n}\n\nfunc TestGetApproved(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestApprove(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\n\t_, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.Approve(addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), approvedAddr.String())\n}\n\nfunc TestTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.TransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.SafeTransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestMint(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\terr := dummy.Mint(addr1, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr1, TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr2, TokenID(\"3\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Try minting duplicate token id\n\terr = dummy.Mint(addr2, TokenID(\"1\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(addr, TokenID(\"1\"))\n\tdummy.mint(addr, TokenID(\"2\"))\n\n\terr := dummy.Burn(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestSetTokenURI(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\ttokenURI := \"http://example.com/token\"\n\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\t_, derr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI))\n\tuassert.NoError(t, derr, \"should not result in error\")\n\n\t// Test case: Invalid token ID\n\t_, err := dummy.SetTokenURI(TokenID(\"3\"), TokenURI(tokenURI))\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(std.Address(addr2)) // addr2\n\n\t_, cerr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI)) // addr2 trying to set URI for token 1\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Retrieving TokenURI\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummyTokenURI, err := dummy.TokenURI(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"TokenURI error\")\n\tuassert.Equal(t, string(tokenURI), string(dummyTokenURI))\n}\n"},{"name":"errors.gno","body":"package grc721\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// Ensure that metadataNFT implements the IGRC721MetadataOnchain interface.\nvar _ IGRC721MetadataOnchain = (*metadataNFT)(nil)\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid TokenID, metadata Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid TokenID) (Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(zeroAddress),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"grc721_metadata_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetMetadata(t *testing.T) {\n\t// Create a new dummy NFT with metadata\n\tdummy := NewNFTWithMetadata(dummyNFTName, dummyNFTSymbol)\n\tif dummy == nil {\n\t\tt.Errorf(\"should not be nil\")\n\t}\n\n\t// Define addresses for testing purposes\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\t// Define metadata attributes\n\tname := \"test\"\n\tdescription := \"test\"\n\timage := \"test\"\n\timageData := \"test\"\n\texternalURL := \"test\"\n\tattributes := []Trait{}\n\tbackgroundColor := \"test\"\n\tanimationURL := \"test\"\n\tyoutubeURL := \"test\"\n\n\t// Set the original caller to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Mint a new token for addr1\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\t// Set metadata for token 1\n\tderr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if there was an error setting metadata\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenMetadata(TokenID(\"3\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\t// Set the original caller to addr2\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\t// Try to set metadata for token 1 from addr2 (should fail)\n\tcerr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Set the original caller back to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Retrieve metadata for token 1\n\tdummyMetadata, err := dummy.TokenMetadata(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"Metadata error\")\n\n\t// Check if metadata attributes match expected values\n\tuassert.Equal(t, image, dummyMetadata.Image)\n\tuassert.Equal(t, imageData, dummyMetadata.ImageData)\n\tuassert.Equal(t, externalURL, dummyMetadata.ExternalURL)\n\tuassert.Equal(t, description, dummyMetadata.Description)\n\tuassert.Equal(t, name, dummyMetadata.Name)\n\tuassert.Equal(t, len(attributes), len(dummyMetadata.Attributes))\n\tuassert.Equal(t, backgroundColor, dummyMetadata.BackgroundColor)\n\tuassert.Equal(t, animationURL, dummyMetadata.AnimationURL)\n\tuassert.Equal(t, youtubeURL, dummyMetadata.YoutubeURL)\n}\n"},{"name":"grc721_royalty.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// royaltyNFT represents a non-fungible token (NFT) with royalty functionality.\ntype royaltyNFT struct {\n\t*metadataNFT // Embedding metadataNFT for NFT functionality\n\ttokenRoyaltyInfo *avl.Tree // AVL tree to store royalty information for each token\n\tmaxRoyaltyPercentage uint64 // maxRoyaltyPercentage represents the maximum royalty percentage that can be charged every sale\n}\n\n// Ensure that royaltyNFT implements the IGRC2981 interface.\nvar _ IGRC2981 = (*royaltyNFT)(nil)\n\n// NewNFTWithRoyalty creates a new royalty NFT with the specified name, symbol, and royalty calculator.\nfunc NewNFTWithRoyalty(name string, symbol string) *royaltyNFT {\n\t// Create a new NFT with metadata\n\tnft := NewNFTWithMetadata(name, symbol)\n\n\treturn \u0026royaltyNFT{\n\t\tmetadataNFT: nft,\n\t\ttokenRoyaltyInfo: avl.NewTree(),\n\t\tmaxRoyaltyPercentage: 100,\n\t}\n}\n\n// SetTokenRoyalty sets the royalty information for a specific token ID.\nfunc (r *royaltyNFT) SetTokenRoyalty(tid TokenID, royaltyInfo RoyaltyInfo) error {\n\t// Validate the payment address\n\tif err := isValidAddress(royaltyInfo.PaymentAddress); err != nil {\n\t\treturn ErrInvalidRoyaltyPaymentAddress\n\t}\n\n\t// Check if royalty percentage exceeds maxRoyaltyPercentage\n\tif royaltyInfo.Percentage \u003e r.maxRoyaltyPercentage {\n\t\treturn ErrInvalidRoyaltyPercentage\n\t}\n\n\t// Check if the caller is the owner of the token\n\towner, err := r.metadataNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set royalty information for the token\n\tr.tokenRoyaltyInfo.Set(string(tid), royaltyInfo)\n\n\treturn nil\n}\n\n// RoyaltyInfo returns the royalty information for the given token ID and sale price.\nfunc (r *royaltyNFT) RoyaltyInfo(tid TokenID, salePrice uint64) (std.Address, uint64, error) {\n\t// Retrieve royalty information for the token\n\tval, found := r.tokenRoyaltyInfo.Get(string(tid))\n\tif !found {\n\t\treturn \"\", 0, ErrInvalidTokenId\n\t}\n\n\troyaltyInfo := val.(RoyaltyInfo)\n\n\t// Calculate royalty amount\n\troyaltyAmount, _ := r.calculateRoyaltyAmount(salePrice, royaltyInfo.Percentage)\n\n\treturn royaltyInfo.PaymentAddress, royaltyAmount, nil\n}\n\nfunc (r *royaltyNFT) calculateRoyaltyAmount(salePrice, percentage uint64) (uint64, error) {\n\troyaltyAmount := (salePrice * percentage) / 100\n\treturn royaltyAmount, nil\n}\n"},{"name":"grc721_royalty_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetTokenRoyalty(t *testing.T) {\n\tdummy := NewNFTWithRoyalty(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\tpaymentAddress := testutils.TestAddress(\"john\")\n\tpercentage := uint64(10) // 10%\n\n\tsalePrice := uint64(1000)\n\texpectRoyaltyAmount := uint64(100)\n\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\tderr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenRoyalty(TokenID(\"3\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, derr, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\tcerr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Invalid payment address\n\taerr := dummy.SetTokenRoyalty(TokenID(\"4\"), RoyaltyInfo{\n\t\tPaymentAddress: std.Address(\"###\"), // invalid address\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, aerr, ErrInvalidRoyaltyPaymentAddress)\n\n\t// Test case: Invalid percentage\n\tperr := dummy.SetTokenRoyalty(TokenID(\"5\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: uint64(200), // over maxRoyaltyPercentage\n\t})\n\tuassert.ErrorIs(t, perr, ErrInvalidRoyaltyPercentage)\n\n\t// Test case: Retrieving Royalty Info\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummyPaymentAddress, dummyRoyaltyAmount, rerr := dummy.RoyaltyInfo(TokenID(\"1\"), salePrice)\n\tuassert.NoError(t, rerr, \"RoyaltyInfo error\")\n\tuassert.Equal(t, paymentAddress, dummyPaymentAddress)\n\tuassert.Equal(t, expectRoyaltyAmount, dummyRoyaltyAmount)\n}\n"},{"name":"igrc721.gno","body":"package grc721\n\nimport \"std\"\n\ntype IGRC721 interface {\n\tBalanceOf(owner std.Address) (uint64, error)\n\tOwnerOf(tid TokenID) (std.Address, error)\n\tSetTokenURI(tid TokenID, tURI TokenURI) (bool, error)\n\tSafeTransferFrom(from, to std.Address, tid TokenID) error\n\tTransferFrom(from, to std.Address, tid TokenID) error\n\tApprove(approved std.Address, tid TokenID) error\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tGetApproved(tid TokenID) (std.Address, error)\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype (\n\tTokenID string\n\tTokenURI string\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"igrc721_metadata.gno","body":"package grc721\n\n// IGRC721CollectionMetadata describes basic information about an NFT collection.\ntype IGRC721CollectionMetadata interface {\n\tName() string // Name returns the name of the collection.\n\tSymbol() string // Symbol returns the symbol of the collection.\n}\n\n// IGRC721Metadata follows the Ethereum standard\ntype IGRC721Metadata interface {\n\tIGRC721CollectionMetadata\n\tTokenURI(tid TokenID) (string, error) // TokenURI returns the URI of a specific token.\n}\n\n// IGRC721Metadata follows the OpenSea metadata standard\ntype IGRC721MetadataOnchain interface {\n\tIGRC721CollectionMetadata\n\tTokenMetadata(tid TokenID) (Metadata, error)\n}\n\ntype Trait struct {\n\tDisplayType string\n\tTraitType string\n\tValue string\n}\n\n// see: https://docs.opensea.io/docs/metadata-standards\ntype Metadata struct {\n\tImage string // URL to the image of the item. Can be any type of image (including SVGs, which will be cached into PNGs by OpenSea), IPFS or Arweave URLs or paths. We recommend using a minimum 3000 x 3000 image.\n\tImageData string // Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.\n\tExternalURL string // URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.\n\tDescription string // Human-readable description of the item. Markdown is supported.\n\tName string // Name of the item.\n\tAttributes []Trait // Attributes for the item, which will show up on the OpenSea page for the item.\n\tBackgroundColor string // Background color of the item on OpenSea. Must be a six-character hexadecimal without a pre-pended #\n\tAnimationURL string // URL to a multimedia attachment for the item. Supported file extensions: GLTF, GLB, WEBM, MP4, M4V, OGV, OGG, MP3, WAV, OGA, HTML (for rich experiences and interactive NFTs using JavaScript canvas, WebGL, etc.). Scripts and relative paths within the HTML page are now supported. Access to browser extensions is not supported.\n\tYoutubeURL string // URL to a YouTube video (only used if animation_url is not provided).\n}\n"},{"name":"igrc721_royalty.gno","body":"package grc721\n\nimport \"std\"\n\n// IGRC2981 follows the Ethereum standard\ntype IGRC2981 interface {\n\t// RoyaltyInfo retrieves royalty information for a tokenID and salePrice.\n\t// It returns the payment address, royalty amount, and an error if any.\n\tRoyaltyInfo(tokenID TokenID, salePrice uint64) (std.Address, uint64, error)\n}\n\n// RoyaltyInfo represents royalty information for a token.\ntype RoyaltyInfo struct {\n\tPaymentAddress std.Address // PaymentAddress is the address where royalty payment should be sent.\n\tPercentage uint64 // Percentage is the royalty percentage. It indicates the percentage of royalty to be paid for each sale. For example : Percentage = 10 =\u003e 10%\n}\n"},{"name":"util.gno","body":"package grc721\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M88Wm+gnxi5BGXHHlKkmPmGkbpRDtNR9DS4A6KzfFp2eCpW6BLED7IlS7556PoqaxIHVimOSkQwIeqbL4BRoAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc777","path":"gno.land/p/demo/grc/grc777","files":[{"name":"dummy_test.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\ntype dummyImpl struct{}\n\n// FIXME: this should fail.\nvar _ IGRC777 = (*dummyImpl)(nil)\n\nfunc TestInterface(t *testing.T) {\n\tvar dummy IGRC777 = \u0026dummyImpl{}\n}\n\nfunc (impl *dummyImpl) GetName() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetSymbol() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetDecimals() uint { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Granularity() (granularity uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) TotalSupply() (supply uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) BalanceOf(address std.Address) uint64 { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Burn(amount uint64, data []byte) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) AuthorizeOperator(operator std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) RevokeOperator(operators std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) DefaultOperators() []std.Address { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Send(recipient std.Address, amount uint64, data []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) IsOperatorFor(operator, tokenHolder std.Address) bool {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorBurn(account std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n"},{"name":"igrc777.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// TODO: use big.Int or a custom uint64 instead of uint64\n\ntype IGRC777 interface {\n\texts.TokenMetadata\n\n\t// Returns the smallest part of the token that is not divisible. This\n\t// means all token operations (creation, movement and destruction) must\n\t// have amounts that are a multiple of this number.\n\t//\n\t// For most token contracts, this value will equal 1.\n\tGranularity() (granularity uint64)\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() (supply uint64)\n\n\t// Returns the amount of tokens owned by an account (`owner`).\n\tBalanceOf(address std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `recipient`.\n\t//\n\t// If send or receive hooks are registered for the caller and `recipient`,\n\t// the corresponding functions will be called with `data` and empty\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tSend(recipient std.Address, amount uint64, data []byte)\n\n\t// Destroys `amount` tokens from the caller's account, reducing the\n\t// total supply.\n\t//\n\t// If a send hook is registered for the caller, the corresponding function\n\t// will be called with `data` and empty `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\tBurn(amount uint64, data []byte)\n\n\t// Returns true if an account is an operator of `tokenHolder`.\n\t// Operators can send and burn tokens on behalf of their owners. All\n\t// accounts are their own operator.\n\t//\n\t// See {operatorSend} and {operatorBurn}.\n\tIsOperatorFor(operator, tokenHolder std.Address) bool\n\n\t// Make an account an operator of the caller.\n\t//\n\t// See {isOperatorFor}.\n\t//\n\t// Emits an {AuthorizedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tAuthorizeOperator(operator std.Address)\n\n\t// Revoke an account's operator status for the caller.\n\t//\n\t// See {isOperatorFor} and {defaultOperators}.\n\t//\n\t// Emits a {RevokedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tRevokeOperator(operators std.Address)\n\n\t// Returns the list of default operators. These accounts are operators\n\t// for all token holders, even if {authorizeOperator} was never called on\n\t// them.\n\t//\n\t// This list is immutable, but individual holders may revoke these via\n\t// {revokeOperator}, in which case {isOperatorFor} will return false.\n\tDefaultOperators() []std.Address\n\n\t// Moves `amount` tokens from `sender` to `recipient`. The caller must\n\t// be an operator of `sender`.\n\t//\n\t// If send or receive hooks are registered for `sender` and `recipient`,\n\t// the corresponding functions will be called with `data` and\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - `sender` cannot be the zero address.\n\t// - `sender` must have at least `amount` tokens.\n\t// - the caller must be an operator for `sender`.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tOperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte)\n\n\t// Destroys `amount` tokens from `account`, reducing the total supply.\n\t// The caller must be an operator of `account`.\n\t//\n\t// If a send hook is registered for `account`, the corresponding function\n\t// will be called with `data` and `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - `account` cannot be the zero address.\n\t// - `account` must have at least `amount` tokens.\n\t// - the caller must be an operator for `account`.\n\tOperatorBurn(account std.Address, amount uint64, data, operatorData []byte)\n}\n\n// Emitted when `amount` tokens are created by `operator` and assigned to `to`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype MintedEvent struct {\n\tOperator std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` destroys `amount` tokens from `account`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype BurnedEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` is made operator for `tokenHolder`\ntype AuthorizedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\n// Emitted when `operator` is revoked its operator status for `tokenHolder`.\ntype RevokedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\ntype SentEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bFzFTO00Oa9Egh+5S6SO7NE1DBC5nLTOTvMc4QB9rGGpG0X1SfBmtlycqRfXVSb5eYa+iygEs6GiB7IOLE6GCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc777","path":"gno.land/p/demo/grc/grc777","files":[{"name":"dummy_test.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\ntype dummyImpl struct{}\n\n// FIXME: this should fail.\nvar _ IGRC777 = (*dummyImpl)(nil)\n\nfunc TestInterface(t *testing.T) {\n\tvar dummy IGRC777 = \u0026dummyImpl{}\n}\n\nfunc (impl *dummyImpl) GetName() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetSymbol() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetDecimals() uint { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Granularity() (granularity uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) TotalSupply() (supply uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) BalanceOf(address std.Address) uint64 { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Burn(amount uint64, data []byte) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) AuthorizeOperator(operator std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) RevokeOperator(operators std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) DefaultOperators() []std.Address { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Send(recipient std.Address, amount uint64, data []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) IsOperatorFor(operator, tokenHolder std.Address) bool {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorBurn(account std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n"},{"name":"igrc777.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// TODO: use big.Int or a custom uint64 instead of uint64\n\ntype IGRC777 interface {\n\texts.TokenMetadata\n\n\t// Returns the smallest part of the token that is not divisible. This\n\t// means all token operations (creation, movement and destruction) must\n\t// have amounts that are a multiple of this number.\n\t//\n\t// For most token contracts, this value will equal 1.\n\tGranularity() (granularity uint64)\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() (supply uint64)\n\n\t// Returns the amount of tokens owned by an account (`owner`).\n\tBalanceOf(address std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `recipient`.\n\t//\n\t// If send or receive hooks are registered for the caller and `recipient`,\n\t// the corresponding functions will be called with `data` and empty\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tSend(recipient std.Address, amount uint64, data []byte)\n\n\t// Destroys `amount` tokens from the caller's account, reducing the\n\t// total supply.\n\t//\n\t// If a send hook is registered for the caller, the corresponding function\n\t// will be called with `data` and empty `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\tBurn(amount uint64, data []byte)\n\n\t// Returns true if an account is an operator of `tokenHolder`.\n\t// Operators can send and burn tokens on behalf of their owners. All\n\t// accounts are their own operator.\n\t//\n\t// See {operatorSend} and {operatorBurn}.\n\tIsOperatorFor(operator, tokenHolder std.Address) bool\n\n\t// Make an account an operator of the caller.\n\t//\n\t// See {isOperatorFor}.\n\t//\n\t// Emits an {AuthorizedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tAuthorizeOperator(operator std.Address)\n\n\t// Revoke an account's operator status for the caller.\n\t//\n\t// See {isOperatorFor} and {defaultOperators}.\n\t//\n\t// Emits a {RevokedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tRevokeOperator(operators std.Address)\n\n\t// Returns the list of default operators. These accounts are operators\n\t// for all token holders, even if {authorizeOperator} was never called on\n\t// them.\n\t//\n\t// This list is immutable, but individual holders may revoke these via\n\t// {revokeOperator}, in which case {isOperatorFor} will return false.\n\tDefaultOperators() []std.Address\n\n\t// Moves `amount` tokens from `sender` to `recipient`. The caller must\n\t// be an operator of `sender`.\n\t//\n\t// If send or receive hooks are registered for `sender` and `recipient`,\n\t// the corresponding functions will be called with `data` and\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - `sender` cannot be the zero address.\n\t// - `sender` must have at least `amount` tokens.\n\t// - the caller must be an operator for `sender`.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tOperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte)\n\n\t// Destroys `amount` tokens from `account`, reducing the total supply.\n\t// The caller must be an operator of `account`.\n\t//\n\t// If a send hook is registered for `account`, the corresponding function\n\t// will be called with `data` and `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - `account` cannot be the zero address.\n\t// - `account` must have at least `amount` tokens.\n\t// - the caller must be an operator for `account`.\n\tOperatorBurn(account std.Address, amount uint64, data, operatorData []byte)\n}\n\n// Emitted when `amount` tokens are created by `operator` and assigned to `to`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype MintedEvent struct {\n\tOperator std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` destroys `amount` tokens from `account`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype BurnedEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` is made operator for `tokenHolder`\ntype AuthorizedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\n// Emitted when `operator` is revoked its operator status for `tokenHolder`.\ntype RevokedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\ntype SentEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bFzFTO00Oa9Egh+5S6SO7NE1DBC5nLTOTvMc4QB9rGGpG0X1SfBmtlycqRfXVSb5eYa+iygEs6GiB7IOLE6GCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"grc777","path":"gno.land/p/demo/grc/grc777","files":[{"name":"dummy_test.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\ntype dummyImpl struct{}\n\n// FIXME: this should fail.\nvar _ IGRC777 = (*dummyImpl)(nil)\n\nfunc TestInterface(t *testing.T) {\n\tvar dummy IGRC777 = \u0026dummyImpl{}\n}\n\nfunc (impl *dummyImpl) GetName() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetSymbol() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetDecimals() uint { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Granularity() (granularity uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) TotalSupply() (supply uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) BalanceOf(address std.Address) uint64 { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Burn(amount uint64, data []byte) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) AuthorizeOperator(operator std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) RevokeOperator(operators std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) DefaultOperators() []std.Address { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Send(recipient std.Address, amount uint64, data []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) IsOperatorFor(operator, tokenHolder std.Address) bool {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorBurn(account std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n"},{"name":"igrc777.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// TODO: use big.Int or a custom uint64 instead of uint64\n\ntype IGRC777 interface {\n\texts.TokenMetadata\n\n\t// Returns the smallest part of the token that is not divisible. This\n\t// means all token operations (creation, movement and destruction) must\n\t// have amounts that are a multiple of this number.\n\t//\n\t// For most token contracts, this value will equal 1.\n\tGranularity() (granularity uint64)\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() (supply uint64)\n\n\t// Returns the amount of tokens owned by an account (`owner`).\n\tBalanceOf(address std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `recipient`.\n\t//\n\t// If send or receive hooks are registered for the caller and `recipient`,\n\t// the corresponding functions will be called with `data` and empty\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tSend(recipient std.Address, amount uint64, data []byte)\n\n\t// Destroys `amount` tokens from the caller's account, reducing the\n\t// total supply.\n\t//\n\t// If a send hook is registered for the caller, the corresponding function\n\t// will be called with `data` and empty `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\tBurn(amount uint64, data []byte)\n\n\t// Returns true if an account is an operator of `tokenHolder`.\n\t// Operators can send and burn tokens on behalf of their owners. All\n\t// accounts are their own operator.\n\t//\n\t// See {operatorSend} and {operatorBurn}.\n\tIsOperatorFor(operator, tokenHolder std.Address) bool\n\n\t// Make an account an operator of the caller.\n\t//\n\t// See {isOperatorFor}.\n\t//\n\t// Emits an {AuthorizedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tAuthorizeOperator(operator std.Address)\n\n\t// Revoke an account's operator status for the caller.\n\t//\n\t// See {isOperatorFor} and {defaultOperators}.\n\t//\n\t// Emits a {RevokedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tRevokeOperator(operators std.Address)\n\n\t// Returns the list of default operators. These accounts are operators\n\t// for all token holders, even if {authorizeOperator} was never called on\n\t// them.\n\t//\n\t// This list is immutable, but individual holders may revoke these via\n\t// {revokeOperator}, in which case {isOperatorFor} will return false.\n\tDefaultOperators() []std.Address\n\n\t// Moves `amount` tokens from `sender` to `recipient`. The caller must\n\t// be an operator of `sender`.\n\t//\n\t// If send or receive hooks are registered for `sender` and `recipient`,\n\t// the corresponding functions will be called with `data` and\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - `sender` cannot be the zero address.\n\t// - `sender` must have at least `amount` tokens.\n\t// - the caller must be an operator for `sender`.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tOperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte)\n\n\t// Destroys `amount` tokens from `account`, reducing the total supply.\n\t// The caller must be an operator of `account`.\n\t//\n\t// If a send hook is registered for `account`, the corresponding function\n\t// will be called with `data` and `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - `account` cannot be the zero address.\n\t// - `account` must have at least `amount` tokens.\n\t// - the caller must be an operator for `account`.\n\tOperatorBurn(account std.Address, amount uint64, data, operatorData []byte)\n}\n\n// Emitted when `amount` tokens are created by `operator` and assigned to `to`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype MintedEvent struct {\n\tOperator std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` destroys `amount` tokens from `account`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype BurnedEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` is made operator for `tokenHolder`\ntype AuthorizedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\n// Emitted when `operator` is revoked its operator status for `tokenHolder`.\ntype RevokedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\ntype SentEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bFzFTO00Oa9Egh+5S6SO7NE1DBC5nLTOTvMc4QB9rGGpG0X1SfBmtlycqRfXVSb5eYa+iygEs6GiB7IOLE6GCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"groups","path":"gno.land/p/demo/groups","files":[{"name":"groups.gno","body":"package groups\n\nimport \"gno.land/r/demo/boards\"\n\n// TODO implement something and test.\ntype Group struct {\n\tBoard *boards.Board\n}\n"},{"name":"vote_set.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/rat\"\n)\n\n//----------------------------------------\n// VoteSet\n\ntype VoteSet interface {\n\t// number of present votes in set.\n\tSize() int\n\t// add or update vote for voter.\n\tSetVote(voter std.Address, value string) error\n\t// count the number of votes for value.\n\tCountVotes(value string) int\n}\n\n//----------------------------------------\n// VoteList\n\ntype Vote struct {\n\tVoter std.Address\n\tValue string\n}\n\ntype VoteList []Vote\n\nfunc NewVoteList() *VoteList {\n\treturn \u0026VoteList{}\n}\n\nfunc (vlist *VoteList) Size() int {\n\treturn len(*vlist)\n}\n\nfunc (vlist *VoteList) SetVote(voter std.Address, value string) error {\n\t// TODO optimize with binary algorithm\n\tfor i, vote := range *vlist {\n\t\tif vote.Voter == voter {\n\t\t\t// update vote\n\t\t\t(*vlist)[i] = Vote{\n\t\t\t\tVoter: voter,\n\t\t\t\tValue: value,\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\t*vlist = append(*vlist, Vote{\n\t\tVoter: voter,\n\t\tValue: value,\n\t})\n\treturn nil\n}\n\nfunc (vlist *VoteList) CountVotes(target string) int {\n\t// TODO optimize with binary algorithm\n\tvar count int\n\tfor _, vote := range *vlist {\n\t\tif vote.Value == target {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n//----------------------------------------\n// Committee\n\ntype Committee struct {\n\tQuorum rat.Rat\n\tThreshold rat.Rat\n\tAddresses std.AddressSet\n}\n\n//----------------------------------------\n// VoteSession\n// NOTE: this seems a bit too formal and\n// complicated vs what might be possible;\n// something simpler, more informal.\n\ntype SessionStatus int\n\nconst (\n\tSessionNew SessionStatus = iota\n\tSessionStarted\n\tSessionCompleted\n\tSessionCanceled\n)\n\ntype VoteSession struct {\n\tName string\n\tCreator std.Address\n\tBody string\n\tStart time.Time\n\tDeadline time.Time\n\tStatus SessionStatus\n\tCommittee *Committee\n\tVotes VoteSet\n\tChoices []string\n\tResult string\n}\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/p/demo/groups\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nvar vset groups.VoteSet\n\nfunc init() {\n\taddr1 := testutils.TestAddress(\"test1\")\n\taddr2 := testutils.TestAddress(\"test2\")\n\tvset = groups.NewVoteList()\n\tvset.SetVote(addr1, \"yes\")\n\tvset.SetVote(addr2, \"yes\")\n}\n\nfunc main() {\n\tprintln(vset.Size())\n\tprintln(\"yes:\", vset.CountVotes(\"yes\"))\n\tprintln(\"no:\", vset.CountVotes(\"no\"))\n}\n\n// Output:\n// 2\n// yes: 2\n// no: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hBeLlHpl0kBu0jqe9nfsbtmiB3eUvj8xN0aQTjUjJCm01keJhgOe+LSFCuGJA1Rfo4/AGL5WHzYmq65CqwPsAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"groups","path":"gno.land/p/demo/groups","files":[{"name":"vote_set.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/rat\"\n)\n\n//----------------------------------------\n// VoteSet\n\ntype VoteSet interface {\n\t// number of present votes in set.\n\tSize() int\n\t// add or update vote for voter.\n\tSetVote(voter std.Address, value string) error\n\t// count the number of votes for value.\n\tCountVotes(value string) int\n}\n\n//----------------------------------------\n// VoteList\n\ntype Vote struct {\n\tVoter std.Address\n\tValue string\n}\n\ntype VoteList []Vote\n\nfunc NewVoteList() *VoteList {\n\treturn \u0026VoteList{}\n}\n\nfunc (vlist *VoteList) Size() int {\n\treturn len(*vlist)\n}\n\nfunc (vlist *VoteList) SetVote(voter std.Address, value string) error {\n\t// TODO optimize with binary algorithm\n\tfor i, vote := range *vlist {\n\t\tif vote.Voter == voter {\n\t\t\t// update vote\n\t\t\t(*vlist)[i] = Vote{\n\t\t\t\tVoter: voter,\n\t\t\t\tValue: value,\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\t*vlist = append(*vlist, Vote{\n\t\tVoter: voter,\n\t\tValue: value,\n\t})\n\treturn nil\n}\n\nfunc (vlist *VoteList) CountVotes(target string) int {\n\t// TODO optimize with binary algorithm\n\tvar count int\n\tfor _, vote := range *vlist {\n\t\tif vote.Value == target {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n//----------------------------------------\n// Committee\n\ntype Committee struct {\n\tQuorum rat.Rat\n\tThreshold rat.Rat\n\tAddresses std.AddressSet\n}\n\n//----------------------------------------\n// VoteSession\n// NOTE: this seems a bit too formal and\n// complicated vs what might be possible;\n// something simpler, more informal.\n\ntype SessionStatus int\n\nconst (\n\tSessionNew SessionStatus = iota\n\tSessionStarted\n\tSessionCompleted\n\tSessionCanceled\n)\n\ntype VoteSession struct {\n\tName string\n\tCreator std.Address\n\tBody string\n\tStart time.Time\n\tDeadline time.Time\n\tStatus SessionStatus\n\tCommittee *Committee\n\tVotes VoteSet\n\tChoices []string\n\tResult string\n}\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/p/demo/groups\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nvar vset groups.VoteSet\n\nfunc init() {\n\taddr1 := testutils.TestAddress(\"test1\")\n\taddr2 := testutils.TestAddress(\"test2\")\n\tvset = groups.NewVoteList()\n\tvset.SetVote(addr1, \"yes\")\n\tvset.SetVote(addr2, \"yes\")\n}\n\nfunc main() {\n\tprintln(vset.Size())\n\tprintln(\"yes:\", vset.CountVotes(\"yes\"))\n\tprintln(\"no:\", vset.CountVotes(\"no\"))\n}\n\n// Output:\n// 2\n// yes: 2\n// no: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EScFkCUPQJhkgncsyTLvu0/CxZNs9tZc1NFxXGx/TaBqxRk2eoSr2j9vLHwwlJo7Y2I07pSNndui6Q8nesR2Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"groups","path":"gno.land/p/demo/groups","files":[{"name":"vote_set.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/rat\"\n)\n\n//----------------------------------------\n// VoteSet\n\ntype VoteSet interface {\n\t// number of present votes in set.\n\tSize() int\n\t// add or update vote for voter.\n\tSetVote(voter std.Address, value string) error\n\t// count the number of votes for value.\n\tCountVotes(value string) int\n}\n\n//----------------------------------------\n// VoteList\n\ntype Vote struct {\n\tVoter std.Address\n\tValue string\n}\n\ntype VoteList []Vote\n\nfunc NewVoteList() *VoteList {\n\treturn \u0026VoteList{}\n}\n\nfunc (vlist *VoteList) Size() int {\n\treturn len(*vlist)\n}\n\nfunc (vlist *VoteList) SetVote(voter std.Address, value string) error {\n\t// TODO optimize with binary algorithm\n\tfor i, vote := range *vlist {\n\t\tif vote.Voter == voter {\n\t\t\t// update vote\n\t\t\t(*vlist)[i] = Vote{\n\t\t\t\tVoter: voter,\n\t\t\t\tValue: value,\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\t*vlist = append(*vlist, Vote{\n\t\tVoter: voter,\n\t\tValue: value,\n\t})\n\treturn nil\n}\n\nfunc (vlist *VoteList) CountVotes(target string) int {\n\t// TODO optimize with binary algorithm\n\tvar count int\n\tfor _, vote := range *vlist {\n\t\tif vote.Value == target {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n//----------------------------------------\n// Committee\n\ntype Committee struct {\n\tQuorum rat.Rat\n\tThreshold rat.Rat\n\tAddresses std.AddressSet\n}\n\n//----------------------------------------\n// VoteSession\n// NOTE: this seems a bit too formal and\n// complicated vs what might be possible;\n// something simpler, more informal.\n\ntype SessionStatus int\n\nconst (\n\tSessionNew SessionStatus = iota\n\tSessionStarted\n\tSessionCompleted\n\tSessionCanceled\n)\n\ntype VoteSession struct {\n\tName string\n\tCreator std.Address\n\tBody string\n\tStart time.Time\n\tDeadline time.Time\n\tStatus SessionStatus\n\tCommittee *Committee\n\tVotes VoteSet\n\tChoices []string\n\tResult string\n}\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/p/demo/groups\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nvar vset groups.VoteSet\n\nfunc init() {\n\taddr1 := testutils.TestAddress(\"test1\")\n\taddr2 := testutils.TestAddress(\"test2\")\n\tvset = groups.NewVoteList()\n\tvset.SetVote(addr1, \"yes\")\n\tvset.SetVote(addr2, \"yes\")\n}\n\nfunc main() {\n\tprintln(vset.Size())\n\tprintln(\"yes:\", vset.CountVotes(\"yes\"))\n\tprintln(\"no:\", vset.CountVotes(\"no\"))\n}\n\n// Output:\n// 2\n// yes: 2\n// no: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EScFkCUPQJhkgncsyTLvu0/CxZNs9tZc1NFxXGx/TaBqxRk2eoSr2j9vLHwwlJo7Y2I07pSNndui6Q8nesR2Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"groups","path":"gno.land/r/demo/groups","files":[{"name":"README.md","body":"### - test package\n\n ./build/gno test examples/gno.land/r/demo/groups/\n\n### - add pkg\n\n ./build/gnokey maketx addpkg -pkgdir \"examples/gno.land/r/demo/groups\" -deposit 100000000ugnot -gas-fee 1000000ugnot -gas-wanted 10000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - create group\n\n ./build/gnokey maketx call -func \"CreateGroup\" -args \"dao_trinity_ngo\" -gas-fee \"1000000ugnot\" -gas-wanted 4000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - add member\n\n ./build/gnokey maketx call -func \"AddMember\" -args \"1\" -args \"g1hd3gwzevxlqmd3jsf64mpfczag8a8e5j2wdn3c\" -args 12 -args \"i am new user\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete member\n\n ./build/gnokey maketx call -func \"DeleteMember\" -args \"1\" -args \"0\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete group\n\n ./build/gnokey maketx call -func \"DeleteGroup\" -args \"1\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n"},{"name":"group.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype GroupID uint64\n\nfunc (gid GroupID) String() string {\n\treturn strconv.Itoa(int(gid))\n}\n\ntype Group struct {\n\tid GroupID\n\turl string\n\tname string\n\tlastMemberID MemberID\n\tmembers avl.Tree\n\tcreator std.Address\n\tcreatedAt time.Time\n}\n\nfunc newGroup(url string, name string, creator std.Address) *Group {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\tif gGroupsByName.Has(name) {\n\t\tpanic(\"Group with such name already exists\")\n\t}\n\treturn \u0026Group{\n\t\tid: incGetGroupID(),\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tmembers: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) newMember(id MemberID, address std.Address, weight int, metadata string) *Member {\n\tif group.members.Has(address.String()) {\n\t\tpanic(\"this member for this group already exists\")\n\t}\n\treturn \u0026Member{\n\t\tid: id,\n\t\taddress: address,\n\t\tweight: weight,\n\t\tmetadata: metadata,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) HasPermission(addr std.Address, perm Permission) bool {\n\tif group.creator != addr {\n\t\treturn false\n\t}\n\treturn isValidPermission(perm)\n}\n\nfunc (group *Group) RenderGroup() string {\n\tstr := \"Group ID: \" + groupIDKey(group.id) + \"\\n\\n\" +\n\t\t\"Group Name: \" + group.name + \"\\n\\n\" +\n\t\t\"Group Creator: \" + usernameOf(group.creator) + \"\\n\\n\" +\n\t\t\"Group createdAt: \" + group.createdAt.String() + \"\\n\\n\" +\n\t\t\"Group Last MemberID: \" + memberIDKey(group.lastMemberID) + \"\\n\\n\"\n\n\tstr += \"Group Members: \\n\\n\"\n\tgroup.members.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tmember := value.(*Member)\n\t\tstr += member.getMemberStr()\n\t\treturn false\n\t})\n\treturn str\n}\n\nfunc (group *Group) deleteGroup() {\n\tgidkey := groupIDKey(group.id)\n\t_, gGroupsRemoved := gGroups.Remove(gidkey)\n\tif !gGroupsRemoved {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\tgGroupsByName.Remove(group.name)\n}\n\nfunc (group *Group) deleteMember(mid MemberID) {\n\tgidkey := groupIDKey(group.id)\n\tif !gGroups.Has(gidkey) {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\n\tg := getGroup(group.id)\n\tmidkey := memberIDKey(mid)\n\tg.members.Remove(midkey)\n}\n"},{"name":"groups.gno","body":"package groups\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgGroups avl.Tree // id -\u003e *Group\n\tgGroupsCtr int // increments Group.id\n\tgGroupsByName avl.Tree // name -\u003e *Group\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"member.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n)\n\ntype MemberID uint64\n\ntype Member struct {\n\tid MemberID\n\taddress std.Address\n\tweight int\n\tmetadata string\n\tcreatedAt time.Time\n}\n\nfunc (mid MemberID) String() string {\n\treturn strconv.Itoa(int(mid))\n}\n\nfunc (member *Member) getMemberStr() string {\n\tmemberDataStr := \"\"\n\tmemberDataStr += \"\\t\\t\\t[\" + memberIDKey(member.id) + \", \" + member.address.String() + \", \" + strconv.Itoa(member.weight) + \", \" + member.metadata + \", \" + member.createdAt.String() + \"],\\n\\n\"\n\treturn memberDataStr\n}\n"},{"name":"misc.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getGroup(gid GroupID) *Group {\n\tgidkey := groupIDKey(gid)\n\tgroup_, exists := gGroups.Get(gidkey)\n\tif !exists {\n\t\tpanic(\"group id (\" + gid.String() + \") does not exists\")\n\t}\n\tgroup := group_.(*Group)\n\treturn group\n}\n\nfunc incGetGroupID() GroupID {\n\tgGroupsCtr++\n\treturn GroupID(gGroupsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\" \", length-len(str)) + str\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\"0\", length-len(str)) + str\n}\n\nfunc groupIDKey(gid GroupID) string {\n\treturn padZero(uint64(gid), 10)\n}\n\nfunc memberIDKey(mid MemberID) string {\n\treturn padZero(uint64(mid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t}\n\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\tpanic(\"user not found\")\n\t}\n\treturn user.Name\n}\n\nfunc isValidPermission(perm Permission) bool {\n\treturn perm == EditPermission || perm == DeletePermission\n}\n"},{"name":"public.gno","body":"package groups\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetGroupIDFromName(name string) (GroupID, bool) {\n\tgroupI, exists := gGroupsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn groupI.(*Group).id, true\n}\n\nfunc CreateGroup(name string) GroupID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\turl := \"/r/demo/groups:\" + name\n\tgroup := newGroup(url, name, caller)\n\tgidkey := groupIDKey(group.id)\n\tgGroups.Set(gidkey, group)\n\tgGroupsByName.Set(name, group)\n\treturn group.id\n}\n\nfunc AddMember(gid GroupID, address string, weight int, metadata string) MemberID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, EditPermission) {\n\t\tpanic(\"unauthorized to edit group\")\n\t}\n\tuser := users.GetUserByAddress(std.Address(address))\n\tif user == nil {\n\t\tpanic(\"unknown address \" + address)\n\t}\n\tmid := group.lastMemberID\n\tmember := group.newMember(mid, std.Address(address), weight, metadata)\n\tmidkey := memberIDKey(mid)\n\tgroup.members.Set(midkey, member)\n\tmid++\n\tgroup.lastMemberID = mid\n\treturn member.id\n}\n\nfunc DeleteGroup(gid GroupID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete group\")\n\t}\n\tgroup.deleteGroup()\n}\n\nfunc DeleteMember(gid GroupID, mid MemberID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete member\")\n\t}\n\tgroup.deleteMember(mid)\n}\n"},{"name":"render.gno","body":"package groups\n\nimport (\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderGroup(gid GroupID) string {\n\tgroup := getGroup(gid)\n\tif group == nil {\n\t\treturn \"missing Group\"\n\t}\n\treturn group.RenderGroup()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"List of all Groups:\\n\\n\"\n\t\tgGroups.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tgroup := value.(*Group)\n\t\t\tstr += \" * [\" + group.name + \"](\" + group.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/groups:Group_NAME\n\t\tname := parts[0]\n\t\tgroupI, exists := gGroupsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"Group does not exist: \" + name\n\t\t}\n\t\treturn groupI.(*Group).RenderGroup()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package groups\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// user not found\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n// * [test_group](/r/demo/groups:test_group)\n"},{"name":"z_1_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test3.String(), 32, \"i am from UAE\")\n\tprintln(groups.Render(\"test_group\"))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n// \t\t\t[0000000000, g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy, 32, i am from UAE, 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001],\n"},{"name":"z_1_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.AddMember(2, \"g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy\", 55, \"metadata3\")\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_1_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// add member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n}\n\n// Error:\n// user not found\n"},{"name":"z_2_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.RenderGroup(gid))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n"},{"name":"z_2_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteMember(2, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_2_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete member\n"},{"name":"z_2_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n"},{"name":"z_2_f_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(20)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (20) does not exists\n"},{"name":"z_2_g_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete group via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete group\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KVYoysisxXXSu1+OXQlyRIxBKDHfqhA2eDEepsyTkaUHkM8sR60fjQEf6uIgdAV4NpoDnLkgLVlLKALqHg94Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"groups","path":"gno.land/r/demo/groups","files":[{"name":"README.md","body":"### - test package\n\n ./build/gno test examples/gno.land/r/demo/groups/\n\n### - add pkg\n\n ./build/gnokey maketx addpkg -pkgdir \"examples/gno.land/r/demo/groups\" -deposit 100000000ugnot -gas-fee 1000000ugnot -gas-wanted 10000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - create group\n\n ./build/gnokey maketx call -func \"CreateGroup\" -args \"dao_trinity_ngo\" -gas-fee \"1000000ugnot\" -gas-wanted 4000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - add member\n\n ./build/gnokey maketx call -func \"AddMember\" -args \"1\" -args \"g1hd3gwzevxlqmd3jsf64mpfczag8a8e5j2wdn3c\" -args 12 -args \"i am new user\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete member\n\n ./build/gnokey maketx call -func \"DeleteMember\" -args \"1\" -args \"0\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete group\n\n ./build/gnokey maketx call -func \"DeleteGroup\" -args \"1\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n"},{"name":"group.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype GroupID uint64\n\nfunc (gid GroupID) String() string {\n\treturn strconv.Itoa(int(gid))\n}\n\ntype Group struct {\n\tid GroupID\n\turl string\n\tname string\n\tlastMemberID MemberID\n\tmembers avl.Tree\n\tcreator std.Address\n\tcreatedAt time.Time\n}\n\nfunc newGroup(url string, name string, creator std.Address) *Group {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\tif gGroupsByName.Has(name) {\n\t\tpanic(\"Group with such name already exists\")\n\t}\n\treturn \u0026Group{\n\t\tid: incGetGroupID(),\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tmembers: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) newMember(id MemberID, address std.Address, weight int, metadata string) *Member {\n\tif group.members.Has(address.String()) {\n\t\tpanic(\"this member for this group already exists\")\n\t}\n\treturn \u0026Member{\n\t\tid: id,\n\t\taddress: address,\n\t\tweight: weight,\n\t\tmetadata: metadata,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) HasPermission(addr std.Address, perm Permission) bool {\n\tif group.creator != addr {\n\t\treturn false\n\t}\n\treturn isValidPermission(perm)\n}\n\nfunc (group *Group) RenderGroup() string {\n\tstr := \"Group ID: \" + groupIDKey(group.id) + \"\\n\\n\" +\n\t\t\"Group Name: \" + group.name + \"\\n\\n\" +\n\t\t\"Group Creator: \" + usernameOf(group.creator) + \"\\n\\n\" +\n\t\t\"Group createdAt: \" + group.createdAt.String() + \"\\n\\n\" +\n\t\t\"Group Last MemberID: \" + memberIDKey(group.lastMemberID) + \"\\n\\n\"\n\n\tstr += \"Group Members: \\n\\n\"\n\tgroup.members.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tmember := value.(*Member)\n\t\tstr += member.getMemberStr()\n\t\treturn false\n\t})\n\treturn str\n}\n\nfunc (group *Group) deleteGroup() {\n\tgidkey := groupIDKey(group.id)\n\t_, gGroupsRemoved := gGroups.Remove(gidkey)\n\tif !gGroupsRemoved {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\tgGroupsByName.Remove(group.name)\n}\n\nfunc (group *Group) deleteMember(mid MemberID) {\n\tgidkey := groupIDKey(group.id)\n\tif !gGroups.Has(gidkey) {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\n\tg := getGroup(group.id)\n\tmidkey := memberIDKey(mid)\n\tg.members.Remove(midkey)\n}\n"},{"name":"groups.gno","body":"package groups\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgGroups avl.Tree // id -\u003e *Group\n\tgGroupsCtr int // increments Group.id\n\tgGroupsByName avl.Tree // name -\u003e *Group\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"member.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n)\n\ntype MemberID uint64\n\ntype Member struct {\n\tid MemberID\n\taddress std.Address\n\tweight int\n\tmetadata string\n\tcreatedAt time.Time\n}\n\nfunc (mid MemberID) String() string {\n\treturn strconv.Itoa(int(mid))\n}\n\nfunc (member *Member) getMemberStr() string {\n\tmemberDataStr := \"\"\n\tmemberDataStr += \"\\t\\t\\t[\" + memberIDKey(member.id) + \", \" + member.address.String() + \", \" + strconv.Itoa(member.weight) + \", \" + member.metadata + \", \" + member.createdAt.String() + \"],\\n\\n\"\n\treturn memberDataStr\n}\n"},{"name":"misc.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getGroup(gid GroupID) *Group {\n\tgidkey := groupIDKey(gid)\n\tgroup_, exists := gGroups.Get(gidkey)\n\tif !exists {\n\t\tpanic(\"group id (\" + gid.String() + \") does not exists\")\n\t}\n\tgroup := group_.(*Group)\n\treturn group\n}\n\nfunc incGetGroupID() GroupID {\n\tgGroupsCtr++\n\treturn GroupID(gGroupsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\" \", length-len(str)) + str\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\"0\", length-len(str)) + str\n}\n\nfunc groupIDKey(gid GroupID) string {\n\treturn padZero(uint64(gid), 10)\n}\n\nfunc memberIDKey(mid MemberID) string {\n\treturn padZero(uint64(mid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t}\n\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\tpanic(\"user not found\")\n\t}\n\treturn user.Name\n}\n\nfunc isValidPermission(perm Permission) bool {\n\treturn perm == EditPermission || perm == DeletePermission\n}\n"},{"name":"public.gno","body":"package groups\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetGroupIDFromName(name string) (GroupID, bool) {\n\tgroupI, exists := gGroupsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn groupI.(*Group).id, true\n}\n\nfunc CreateGroup(name string) GroupID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\turl := \"/r/demo/groups:\" + name\n\tgroup := newGroup(url, name, caller)\n\tgidkey := groupIDKey(group.id)\n\tgGroups.Set(gidkey, group)\n\tgGroupsByName.Set(name, group)\n\treturn group.id\n}\n\nfunc AddMember(gid GroupID, address string, weight int, metadata string) MemberID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, EditPermission) {\n\t\tpanic(\"unauthorized to edit group\")\n\t}\n\tuser := users.GetUserByAddress(std.Address(address))\n\tif user == nil {\n\t\tpanic(\"unknown address \" + address)\n\t}\n\tmid := group.lastMemberID\n\tmember := group.newMember(mid, std.Address(address), weight, metadata)\n\tmidkey := memberIDKey(mid)\n\tgroup.members.Set(midkey, member)\n\tmid++\n\tgroup.lastMemberID = mid\n\treturn member.id\n}\n\nfunc DeleteGroup(gid GroupID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete group\")\n\t}\n\tgroup.deleteGroup()\n}\n\nfunc DeleteMember(gid GroupID, mid MemberID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete member\")\n\t}\n\tgroup.deleteMember(mid)\n}\n"},{"name":"render.gno","body":"package groups\n\nimport (\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderGroup(gid GroupID) string {\n\tgroup := getGroup(gid)\n\tif group == nil {\n\t\treturn \"missing Group\"\n\t}\n\treturn group.RenderGroup()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"List of all Groups:\\n\\n\"\n\t\tgGroups.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tgroup := value.(*Group)\n\t\t\tstr += \" * [\" + group.name + \"](\" + group.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/groups:Group_NAME\n\t\tname := parts[0]\n\t\tgroupI, exists := gGroupsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"Group does not exist: \" + name\n\t\t}\n\t\treturn groupI.(*Group).RenderGroup()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package groups\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// user not found\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n// * [test_group](/r/demo/groups:test_group)\n//\n"},{"name":"z_1_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test3.String(), 32, \"i am from UAE\")\n\tprintln(groups.Render(\"test_group\"))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n// \t\t\t[0000000000, g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy, 32, i am from UAE, 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001],\n//\n//\n"},{"name":"z_1_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.AddMember(2, \"g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy\", 55, \"metadata3\")\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_1_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// add member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n}\n\n// Error:\n// user not found\n"},{"name":"z_2_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.RenderGroup(gid))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n//\n"},{"name":"z_2_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteMember(2, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_2_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete member\n"},{"name":"z_2_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n//\n"},{"name":"z_2_f_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(20)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (20) does not exists\n"},{"name":"z_2_g_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete group via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete group\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fbAR9qXCeaotaBNs3nUT+6wJ1dppli2NaOZL1kE8vQzE0Yq/h4Bt6H4m36HUMIdPY22O6Tj19w+2zfSLSqkkCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"groups","path":"gno.land/r/demo/groups","files":[{"name":"README.md","body":"### - test package\n\n ./build/gno test examples/gno.land/r/demo/groups/\n\n### - add pkg\n\n ./build/gnokey maketx addpkg -pkgdir \"examples/gno.land/r/demo/groups\" -deposit 100000000ugnot -gas-fee 1000000ugnot -gas-wanted 10000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - create group\n\n ./build/gnokey maketx call -func \"CreateGroup\" -args \"dao_trinity_ngo\" -gas-fee \"1000000ugnot\" -gas-wanted 4000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - add member\n\n ./build/gnokey maketx call -func \"AddMember\" -args \"1\" -args \"g1hd3gwzevxlqmd3jsf64mpfczag8a8e5j2wdn3c\" -args 12 -args \"i am new user\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete member\n\n ./build/gnokey maketx call -func \"DeleteMember\" -args \"1\" -args \"0\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete group\n\n ./build/gnokey maketx call -func \"DeleteGroup\" -args \"1\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n"},{"name":"group.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype GroupID uint64\n\nfunc (gid GroupID) String() string {\n\treturn strconv.Itoa(int(gid))\n}\n\ntype Group struct {\n\tid GroupID\n\turl string\n\tname string\n\tlastMemberID MemberID\n\tmembers avl.Tree\n\tcreator std.Address\n\tcreatedAt time.Time\n}\n\nfunc newGroup(url string, name string, creator std.Address) *Group {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\tif gGroupsByName.Has(name) {\n\t\tpanic(\"Group with such name already exists\")\n\t}\n\treturn \u0026Group{\n\t\tid: incGetGroupID(),\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tmembers: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) newMember(id MemberID, address std.Address, weight int, metadata string) *Member {\n\tif group.members.Has(address.String()) {\n\t\tpanic(\"this member for this group already exists\")\n\t}\n\treturn \u0026Member{\n\t\tid: id,\n\t\taddress: address,\n\t\tweight: weight,\n\t\tmetadata: metadata,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) HasPermission(addr std.Address, perm Permission) bool {\n\tif group.creator != addr {\n\t\treturn false\n\t}\n\treturn isValidPermission(perm)\n}\n\nfunc (group *Group) RenderGroup() string {\n\tstr := \"Group ID: \" + groupIDKey(group.id) + \"\\n\\n\" +\n\t\t\"Group Name: \" + group.name + \"\\n\\n\" +\n\t\t\"Group Creator: \" + usernameOf(group.creator) + \"\\n\\n\" +\n\t\t\"Group createdAt: \" + group.createdAt.String() + \"\\n\\n\" +\n\t\t\"Group Last MemberID: \" + memberIDKey(group.lastMemberID) + \"\\n\\n\"\n\n\tstr += \"Group Members: \\n\\n\"\n\tgroup.members.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tmember := value.(*Member)\n\t\tstr += member.getMemberStr()\n\t\treturn false\n\t})\n\treturn str\n}\n\nfunc (group *Group) deleteGroup() {\n\tgidkey := groupIDKey(group.id)\n\t_, gGroupsRemoved := gGroups.Remove(gidkey)\n\tif !gGroupsRemoved {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\tgGroupsByName.Remove(group.name)\n}\n\nfunc (group *Group) deleteMember(mid MemberID) {\n\tgidkey := groupIDKey(group.id)\n\tif !gGroups.Has(gidkey) {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\n\tg := getGroup(group.id)\n\tmidkey := memberIDKey(mid)\n\tg.members.Remove(midkey)\n}\n"},{"name":"groups.gno","body":"package groups\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgGroups avl.Tree // id -\u003e *Group\n\tgGroupsCtr int // increments Group.id\n\tgGroupsByName avl.Tree // name -\u003e *Group\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"member.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n)\n\ntype MemberID uint64\n\ntype Member struct {\n\tid MemberID\n\taddress std.Address\n\tweight int\n\tmetadata string\n\tcreatedAt time.Time\n}\n\nfunc (mid MemberID) String() string {\n\treturn strconv.Itoa(int(mid))\n}\n\nfunc (member *Member) getMemberStr() string {\n\tmemberDataStr := \"\"\n\tmemberDataStr += \"\\t\\t\\t[\" + memberIDKey(member.id) + \", \" + member.address.String() + \", \" + strconv.Itoa(member.weight) + \", \" + member.metadata + \", \" + member.createdAt.String() + \"],\\n\\n\"\n\treturn memberDataStr\n}\n"},{"name":"misc.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getGroup(gid GroupID) *Group {\n\tgidkey := groupIDKey(gid)\n\tgroup_, exists := gGroups.Get(gidkey)\n\tif !exists {\n\t\tpanic(\"group id (\" + gid.String() + \") does not exists\")\n\t}\n\tgroup := group_.(*Group)\n\treturn group\n}\n\nfunc incGetGroupID() GroupID {\n\tgGroupsCtr++\n\treturn GroupID(gGroupsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\" \", length-len(str)) + str\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\"0\", length-len(str)) + str\n}\n\nfunc groupIDKey(gid GroupID) string {\n\treturn padZero(uint64(gid), 10)\n}\n\nfunc memberIDKey(mid MemberID) string {\n\treturn padZero(uint64(mid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t}\n\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\tpanic(\"user not found\")\n\t}\n\treturn user.Name\n}\n\nfunc isValidPermission(perm Permission) bool {\n\treturn perm == EditPermission || perm == DeletePermission\n}\n"},{"name":"public.gno","body":"package groups\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetGroupIDFromName(name string) (GroupID, bool) {\n\tgroupI, exists := gGroupsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn groupI.(*Group).id, true\n}\n\nfunc CreateGroup(name string) GroupID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\turl := \"/r/demo/groups:\" + name\n\tgroup := newGroup(url, name, caller)\n\tgidkey := groupIDKey(group.id)\n\tgGroups.Set(gidkey, group)\n\tgGroupsByName.Set(name, group)\n\treturn group.id\n}\n\nfunc AddMember(gid GroupID, address string, weight int, metadata string) MemberID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, EditPermission) {\n\t\tpanic(\"unauthorized to edit group\")\n\t}\n\tuser := users.GetUserByAddress(std.Address(address))\n\tif user == nil {\n\t\tpanic(\"unknown address \" + address)\n\t}\n\tmid := group.lastMemberID\n\tmember := group.newMember(mid, std.Address(address), weight, metadata)\n\tmidkey := memberIDKey(mid)\n\tgroup.members.Set(midkey, member)\n\tmid++\n\tgroup.lastMemberID = mid\n\treturn member.id\n}\n\nfunc DeleteGroup(gid GroupID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete group\")\n\t}\n\tgroup.deleteGroup()\n}\n\nfunc DeleteMember(gid GroupID, mid MemberID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete member\")\n\t}\n\tgroup.deleteMember(mid)\n}\n"},{"name":"render.gno","body":"package groups\n\nimport (\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderGroup(gid GroupID) string {\n\tgroup := getGroup(gid)\n\tif group == nil {\n\t\treturn \"missing Group\"\n\t}\n\treturn group.RenderGroup()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"List of all Groups:\\n\\n\"\n\t\tgGroups.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tgroup := value.(*Group)\n\t\t\tstr += \" * [\" + group.name + \"](\" + group.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/groups:Group_NAME\n\t\tname := parts[0]\n\t\tgroupI, exists := gGroupsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"Group does not exist: \" + name\n\t\t}\n\t\treturn groupI.(*Group).RenderGroup()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package groups\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// user not found\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n// * [test_group](/r/demo/groups:test_group)\n//\n"},{"name":"z_1_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test3.String(), 32, \"i am from UAE\")\n\tprintln(groups.Render(\"test_group\"))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n// \t\t\t[0000000000, g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy, 32, i am from UAE, 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001],\n//\n//\n"},{"name":"z_1_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.AddMember(2, \"g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy\", 55, \"metadata3\")\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_1_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// add member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n}\n\n// Error:\n// user not found\n"},{"name":"z_2_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.RenderGroup(gid))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n//\n"},{"name":"z_2_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteMember(2, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_2_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete member\n"},{"name":"z_2_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n//\n"},{"name":"z_2_f_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(20)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (20) does not exists\n"},{"name":"z_2_g_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete group via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete group\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fbAR9qXCeaotaBNs3nUT+6wJ1dppli2NaOZL1kE8vQzE0Yq/h4Bt6H4m36HUMIdPY22O6Tj19w+2zfSLSqkkCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"guestbook","path":"gno.land/r/morgan/guestbook","files":[{"name":"admin.gno","body":"package guestbook\n\nimport (\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar owner = ownable.New()\n\n// AdminDelete removes the guestbook message with the given ID.\n// The user will still be marked as having submitted a message, so they\n// won't be able to re-submit a new message.\nfunc AdminDelete(signatureID string) {\n\towner.AssertCallerIsOwner()\n\n\tid, err := seqid.FromString(signatureID)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tidb := id.Binary()\n\tif !guestbook.Has(idb) {\n\t\tpanic(\"signature does not exist\")\n\t}\n\tguestbook.Remove(idb)\n}\n"},{"name":"guestbook.gno","body":"// Realm guestbook contains an implementation of a simple guestbook.\n// Come and sign yourself up!\npackage guestbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n)\n\n// Signature is a single entry in the guestbook.\ntype Signature struct {\n\tMessage string\n\tAuthor std.Address\n\tTime time.Time\n}\n\nconst (\n\tmaxMessageLength = 140\n\tmaxPerPage = 25\n)\n\nvar (\n\tsignatureID seqid.ID\n\tguestbook avl.Tree // id -\u003e Signature\n\thasSigned avl.Tree // address -\u003e struct{}\n)\n\nfunc init() {\n\tSign(\"You reached the end of the guestbook!\")\n}\n\nconst (\n\terrNotAUser = \"this guestbook can only be signed by users\"\n\terrAlreadySigned = \"you already signed the guestbook!\"\n\terrInvalidCharacterInMessage = \"invalid character in message\"\n)\n\n// Sign signs the guestbook, with the specified message.\nfunc Sign(message string) {\n\tprev := std.PrevRealm()\n\tswitch {\n\tcase !prev.IsUser():\n\t\tpanic(errNotAUser)\n\tcase hasSigned.Has(prev.Addr().String()):\n\t\tpanic(errAlreadySigned)\n\t}\n\tmessage = validateMessage(message)\n\n\tguestbook.Set(signatureID.Next().Binary(), Signature{\n\t\tMessage: message,\n\t\tAuthor: prev.Addr(),\n\t\t// NOTE: time.Now() will yield the \"block time\", which is deterministic.\n\t\tTime: time.Now(),\n\t})\n\thasSigned.Set(prev.Addr().String(), struct{}{})\n}\n\nfunc validateMessage(msg string) string {\n\tif len(msg) \u003e maxMessageLength {\n\t\tpanic(\"Keep it brief! (max \" + strconv.Itoa(maxMessageLength) + \" bytes!)\")\n\t}\n\tout := \"\"\n\tfor _, ch := range msg {\n\t\tswitch {\n\t\tcase unicode.IsLetter(ch),\n\t\t\tunicode.IsNumber(ch),\n\t\t\tunicode.IsSpace(ch),\n\t\t\tunicode.IsPunct(ch):\n\t\t\tout += string(ch)\n\t\tdefault:\n\t\t\tpanic(errInvalidCharacterInMessage)\n\t\t}\n\t}\n\treturn out\n}\n\nfunc Render(maxID string) string {\n\tvar bld strings.Builder\n\n\tbld.WriteString(\"# Guestbook 📝\\n\\n[Come sign the guestbook!](./guestbook$help\u0026func=Sign)\\n\\n---\\n\\n\")\n\n\tvar maxIDBinary string\n\tif maxID != \"\" {\n\t\tmid, err := seqid.FromString(maxID)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// AVL iteration is exclusive, so we need to decrease the ID value to get the \"true\" maximum.\n\t\tmid--\n\t\tmaxIDBinary = mid.Binary()\n\t}\n\n\tvar lastID seqid.ID\n\tvar printed int\n\tguestbook.ReverseIterate(\"\", maxIDBinary, func(key string, val interface{}) bool {\n\t\tsig := val.(Signature)\n\t\tmessage := strings.ReplaceAll(sig.Message, \"\\n\", \"\\n\u003e \")\n\t\tbld.WriteString(\"\u003e \" + message + \"\\n\u003e\\n\")\n\t\tidValue, ok := seqid.FromBinary(key)\n\t\tif !ok {\n\t\t\tpanic(\"invalid seqid id\")\n\t\t}\n\n\t\tbld.WriteString(\"\u003e _Written by \" + sig.Author.String() + \" at \" + sig.Time.Format(time.DateTime) + \"_ (#\" + idValue.String() + \")\\n\\n---\\n\\n\")\n\t\tlastID = idValue\n\n\t\tprinted++\n\t\t// stop after exceeding limit\n\t\treturn printed \u003e= maxPerPage\n\t})\n\n\tif printed == 0 {\n\t\tbld.WriteString(\"No messages!\")\n\t} else if printed \u003e= maxPerPage {\n\t\tbld.WriteString(\"\u003cp style='text-align:right'\u003e\u003ca href='./guestbook:\" + lastID.String() + \"'\u003eNext page\u003c/a\u003e\u003c/p\u003e\")\n\t}\n\n\treturn bld.String()\n}\n"},{"name":"guestbook_test.gno","body":"package guestbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nfunc TestSign(t *testing.T) {\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user2\"))\n\tSign(\"Hello2!\")\n\n\tres := Render(\"\")\n\tt.Log(res)\n\tif !strings.Contains(res, \"\u003e Hello!\\n\u003e\\n\u003e _Written by g1user \") {\n\t\tt.Error(\"does not contain first user's message\")\n\t}\n\tif !strings.Contains(res, \"\u003e Hello2!\\n\u003e\\n\u003e _Written by g1user2 \") {\n\t\tt.Error(\"does not contain second user's message\")\n\t}\n\tif guestbook.Size() != 2 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n}\n\nfunc TestSign_FromRealm(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/demo/users\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Fatal(\"not a string\", rec)\n\t\t} else if recString != errNotAUser {\n\t\t\tt.Fatal(\"invalid error\", recString)\n\t\t}\n\t}()\n\tSign(\"Hey!\")\n}\n\nfunc TestSign_Double(t *testing.T) {\n\t// Should not allow signing twice.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errAlreadySigned {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\n\tSign(\"Hello again!\")\n}\n\nfunc TestSign_InvalidMessage(t *testing.T) {\n\t// Should not allow control characters in message.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errInvalidCharacterInMessage {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\tSign(\"\\x00Hello!\")\n}\n\nfunc TestAdminDelete(t *testing.T) {\n\tconst (\n\t\tuserAddr std.Address = \"g1user\"\n\t\tadminAddr std.Address = \"g1admin\"\n\t)\n\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\towner = ownable.NewWithAddress(adminAddr)\n\tsignatureID = 0\n\n\tstd.TestSetRealm(std.NewUserRealm(userAddr))\n\n\tconst bad = \"Very Bad Message! Nyeh heh heh!\"\n\tSign(bad)\n\n\tif rnd := Render(\"\"); !strings.Contains(rnd, bad) {\n\t\tt.Fatal(\"render does not contain bad message\", rnd)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(adminAddr))\n\tAdminDelete(signatureID.String())\n\n\tif rnd := Render(\"\"); strings.Contains(rnd, bad) {\n\t\tt.Error(\"render contains bad message\", rnd)\n\t}\n\tif guestbook.Size() != 0 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n\tif hasSigned.Size() != 1 {\n\t\tt.Error(\"invalid hasSigned size\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3VHq3qib6fXclWFo4eHExHo4PU+E1Na9qAd3eMM1H9C0OwsW7ts/SGxeN4i3XYjKv25aGASN/5bkb1H2ou+8Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"guestbook","path":"gno.land/r/morgan/guestbook","files":[{"name":"admin.gno","body":"package guestbook\n\nimport (\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar owner = ownable.New()\n\n// AdminDelete removes the guestbook message with the given ID.\n// The user will still be marked as having submitted a message, so they\n// won't be able to re-submit a new message.\nfunc AdminDelete(signatureID string) {\n\towner.AssertCallerIsOwner()\n\n\tid, err := seqid.FromString(signatureID)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tidb := id.Binary()\n\tif !guestbook.Has(idb) {\n\t\tpanic(\"signature does not exist\")\n\t}\n\tguestbook.Remove(idb)\n}\n"},{"name":"guestbook.gno","body":"// Realm guestbook contains an implementation of a simple guestbook.\n// Come and sign yourself up!\npackage guestbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n)\n\n// Signature is a single entry in the guestbook.\ntype Signature struct {\n\tMessage string\n\tAuthor std.Address\n\tTime time.Time\n}\n\nconst (\n\tmaxMessageLength = 140\n\tmaxPerPage = 25\n)\n\nvar (\n\tsignatureID seqid.ID\n\tguestbook avl.Tree // id -\u003e Signature\n\thasSigned avl.Tree // address -\u003e struct{}\n)\n\nfunc init() {\n\tSign(\"You reached the end of the guestbook!\")\n}\n\nconst (\n\terrNotAUser = \"this guestbook can only be signed by users\"\n\terrAlreadySigned = \"you already signed the guestbook!\"\n\terrInvalidCharacterInMessage = \"invalid character in message\"\n)\n\n// Sign signs the guestbook, with the specified message.\nfunc Sign(message string) {\n\tprev := std.PrevRealm()\n\tswitch {\n\tcase !prev.IsUser():\n\t\tpanic(errNotAUser)\n\tcase hasSigned.Has(prev.Addr().String()):\n\t\tpanic(errAlreadySigned)\n\t}\n\tmessage = validateMessage(message)\n\n\tguestbook.Set(signatureID.Next().Binary(), Signature{\n\t\tMessage: message,\n\t\tAuthor: prev.Addr(),\n\t\t// NOTE: time.Now() will yield the \"block time\", which is deterministic.\n\t\tTime: time.Now(),\n\t})\n\thasSigned.Set(prev.Addr().String(), struct{}{})\n}\n\nfunc validateMessage(msg string) string {\n\tif len(msg) \u003e maxMessageLength {\n\t\tpanic(\"Keep it brief! (max \" + strconv.Itoa(maxMessageLength) + \" bytes!)\")\n\t}\n\tout := \"\"\n\tfor _, ch := range msg {\n\t\tswitch {\n\t\tcase unicode.IsLetter(ch),\n\t\t\tunicode.IsNumber(ch),\n\t\t\tunicode.IsSpace(ch),\n\t\t\tunicode.IsPunct(ch):\n\t\t\tout += string(ch)\n\t\tdefault:\n\t\t\tpanic(errInvalidCharacterInMessage)\n\t\t}\n\t}\n\treturn out\n}\n\nfunc Render(maxID string) string {\n\tvar bld strings.Builder\n\n\tbld.WriteString(\"# Guestbook 📝\\n\\n[Come sign the guestbook!](./guestbook$help\u0026func=Sign)\\n\\n---\\n\\n\")\n\n\tvar maxIDBinary string\n\tif maxID != \"\" {\n\t\tmid, err := seqid.FromString(maxID)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// AVL iteration is exclusive, so we need to decrease the ID value to get the \"true\" maximum.\n\t\tmid--\n\t\tmaxIDBinary = mid.Binary()\n\t}\n\n\tvar lastID seqid.ID\n\tvar printed int\n\tguestbook.ReverseIterate(\"\", maxIDBinary, func(key string, val interface{}) bool {\n\t\tsig := val.(Signature)\n\t\tmessage := strings.ReplaceAll(sig.Message, \"\\n\", \"\\n\u003e \")\n\t\tbld.WriteString(\"\u003e \" + message + \"\\n\u003e\\n\")\n\t\tidValue, ok := seqid.FromBinary(key)\n\t\tif !ok {\n\t\t\tpanic(\"invalid seqid id\")\n\t\t}\n\n\t\tbld.WriteString(\"\u003e _Written by \" + sig.Author.String() + \" at \" + sig.Time.Format(time.DateTime) + \"_ (#\" + idValue.String() + \")\\n\\n---\\n\\n\")\n\t\tlastID = idValue\n\n\t\tprinted++\n\t\t// stop after exceeding limit\n\t\treturn printed \u003e= maxPerPage\n\t})\n\n\tif printed == 0 {\n\t\tbld.WriteString(\"No messages!\")\n\t} else if printed \u003e= maxPerPage {\n\t\tbld.WriteString(\"\u003cp style='text-align:right'\u003e\u003ca href='./guestbook:\" + lastID.String() + \"'\u003eNext page\u003c/a\u003e\u003c/p\u003e\")\n\t}\n\n\treturn bld.String()\n}\n"},{"name":"guestbook_test.gno","body":"package guestbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nfunc TestSign(t *testing.T) {\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user2\"))\n\tSign(\"Hello2!\")\n\n\tres := Render(\"\")\n\tt.Log(res)\n\tif !strings.Contains(res, \"\u003e Hello!\\n\u003e\\n\u003e _Written by g1user \") {\n\t\tt.Error(\"does not contain first user's message\")\n\t}\n\tif !strings.Contains(res, \"\u003e Hello2!\\n\u003e\\n\u003e _Written by g1user2 \") {\n\t\tt.Error(\"does not contain second user's message\")\n\t}\n\tif guestbook.Size() != 2 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n}\n\nfunc TestSign_FromRealm(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/demo/users\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Fatal(\"not a string\", rec)\n\t\t} else if recString != errNotAUser {\n\t\t\tt.Fatal(\"invalid error\", recString)\n\t\t}\n\t}()\n\tSign(\"Hey!\")\n}\n\nfunc TestSign_Double(t *testing.T) {\n\t// Should not allow signing twice.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errAlreadySigned {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\n\tSign(\"Hello again!\")\n}\n\nfunc TestSign_InvalidMessage(t *testing.T) {\n\t// Should not allow control characters in message.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errInvalidCharacterInMessage {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\tSign(\"\\x00Hello!\")\n}\n\nfunc TestAdminDelete(t *testing.T) {\n\tconst (\n\t\tuserAddr std.Address = \"g1user\"\n\t\tadminAddr std.Address = \"g1admin\"\n\t)\n\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\towner = ownable.NewWithAddress(adminAddr)\n\tsignatureID = 0\n\n\tstd.TestSetRealm(std.NewUserRealm(userAddr))\n\n\tconst bad = \"Very Bad Message! Nyeh heh heh!\"\n\tSign(bad)\n\n\tif rnd := Render(\"\"); !strings.Contains(rnd, bad) {\n\t\tt.Fatal(\"render does not contain bad message\", rnd)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(adminAddr))\n\tAdminDelete(signatureID.String())\n\n\tif rnd := Render(\"\"); strings.Contains(rnd, bad) {\n\t\tt.Error(\"render contains bad message\", rnd)\n\t}\n\tif guestbook.Size() != 0 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n\tif hasSigned.Size() != 1 {\n\t\tt.Error(\"invalid hasSigned size\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3VHq3qib6fXclWFo4eHExHo4PU+E1Na9qAd3eMM1H9C0OwsW7ts/SGxeN4i3XYjKv25aGASN/5bkb1H2ou+8Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"guestbook","path":"gno.land/r/morgan/guestbook","files":[{"name":"admin.gno","body":"package guestbook\n\nimport (\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar owner = ownable.New()\n\n// AdminDelete removes the guestbook message with the given ID.\n// The user will still be marked as having submitted a message, so they\n// won't be able to re-submit a new message.\nfunc AdminDelete(signatureID string) {\n\towner.AssertCallerIsOwner()\n\n\tid, err := seqid.FromString(signatureID)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tidb := id.Binary()\n\tif !guestbook.Has(idb) {\n\t\tpanic(\"signature does not exist\")\n\t}\n\tguestbook.Remove(idb)\n}\n"},{"name":"guestbook.gno","body":"// Realm guestbook contains an implementation of a simple guestbook.\n// Come and sign yourself up!\npackage guestbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n)\n\n// Signature is a single entry in the guestbook.\ntype Signature struct {\n\tMessage string\n\tAuthor std.Address\n\tTime time.Time\n}\n\nconst (\n\tmaxMessageLength = 140\n\tmaxPerPage = 25\n)\n\nvar (\n\tsignatureID seqid.ID\n\tguestbook avl.Tree // id -\u003e Signature\n\thasSigned avl.Tree // address -\u003e struct{}\n)\n\nfunc init() {\n\tSign(\"You reached the end of the guestbook!\")\n}\n\nconst (\n\terrNotAUser = \"this guestbook can only be signed by users\"\n\terrAlreadySigned = \"you already signed the guestbook!\"\n\terrInvalidCharacterInMessage = \"invalid character in message\"\n)\n\n// Sign signs the guestbook, with the specified message.\nfunc Sign(message string) {\n\tprev := std.PrevRealm()\n\tswitch {\n\tcase !prev.IsUser():\n\t\tpanic(errNotAUser)\n\tcase hasSigned.Has(prev.Addr().String()):\n\t\tpanic(errAlreadySigned)\n\t}\n\tmessage = validateMessage(message)\n\n\tguestbook.Set(signatureID.Next().Binary(), Signature{\n\t\tMessage: message,\n\t\tAuthor: prev.Addr(),\n\t\t// NOTE: time.Now() will yield the \"block time\", which is deterministic.\n\t\tTime: time.Now(),\n\t})\n\thasSigned.Set(prev.Addr().String(), struct{}{})\n}\n\nfunc validateMessage(msg string) string {\n\tif len(msg) \u003e maxMessageLength {\n\t\tpanic(\"Keep it brief! (max \" + strconv.Itoa(maxMessageLength) + \" bytes!)\")\n\t}\n\tout := \"\"\n\tfor _, ch := range msg {\n\t\tswitch {\n\t\tcase unicode.IsLetter(ch),\n\t\t\tunicode.IsNumber(ch),\n\t\t\tunicode.IsSpace(ch),\n\t\t\tunicode.IsPunct(ch):\n\t\t\tout += string(ch)\n\t\tdefault:\n\t\t\tpanic(errInvalidCharacterInMessage)\n\t\t}\n\t}\n\treturn out\n}\n\nfunc Render(maxID string) string {\n\tvar bld strings.Builder\n\n\tbld.WriteString(\"# Guestbook 📝\\n\\n[Come sign the guestbook!](./guestbook$help\u0026func=Sign)\\n\\n---\\n\\n\")\n\n\tvar maxIDBinary string\n\tif maxID != \"\" {\n\t\tmid, err := seqid.FromString(maxID)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// AVL iteration is exclusive, so we need to decrease the ID value to get the \"true\" maximum.\n\t\tmid--\n\t\tmaxIDBinary = mid.Binary()\n\t}\n\n\tvar lastID seqid.ID\n\tvar printed int\n\tguestbook.ReverseIterate(\"\", maxIDBinary, func(key string, val interface{}) bool {\n\t\tsig := val.(Signature)\n\t\tmessage := strings.ReplaceAll(sig.Message, \"\\n\", \"\\n\u003e \")\n\t\tbld.WriteString(\"\u003e \" + message + \"\\n\u003e\\n\")\n\t\tidValue, ok := seqid.FromBinary(key)\n\t\tif !ok {\n\t\t\tpanic(\"invalid seqid id\")\n\t\t}\n\n\t\tbld.WriteString(\"\u003e _Written by \" + sig.Author.String() + \" at \" + sig.Time.Format(time.DateTime) + \"_ (#\" + idValue.String() + \")\\n\\n---\\n\\n\")\n\t\tlastID = idValue\n\n\t\tprinted++\n\t\t// stop after exceeding limit\n\t\treturn printed \u003e= maxPerPage\n\t})\n\n\tif printed == 0 {\n\t\tbld.WriteString(\"No messages!\")\n\t} else if printed \u003e= maxPerPage {\n\t\tbld.WriteString(\"\u003cp style='text-align:right'\u003e\u003ca href='./guestbook:\" + lastID.String() + \"'\u003eNext page\u003c/a\u003e\u003c/p\u003e\")\n\t}\n\n\treturn bld.String()\n}\n"},{"name":"guestbook_test.gno","body":"package guestbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nfunc TestSign(t *testing.T) {\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user2\"))\n\tSign(\"Hello2!\")\n\n\tres := Render(\"\")\n\tt.Log(res)\n\tif !strings.Contains(res, \"\u003e Hello!\\n\u003e\\n\u003e _Written by g1user \") {\n\t\tt.Error(\"does not contain first user's message\")\n\t}\n\tif !strings.Contains(res, \"\u003e Hello2!\\n\u003e\\n\u003e _Written by g1user2 \") {\n\t\tt.Error(\"does not contain second user's message\")\n\t}\n\tif guestbook.Size() != 2 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n}\n\nfunc TestSign_FromRealm(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/demo/users\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Fatal(\"not a string\", rec)\n\t\t} else if recString != errNotAUser {\n\t\t\tt.Fatal(\"invalid error\", recString)\n\t\t}\n\t}()\n\tSign(\"Hey!\")\n}\n\nfunc TestSign_Double(t *testing.T) {\n\t// Should not allow signing twice.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errAlreadySigned {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\n\tSign(\"Hello again!\")\n}\n\nfunc TestSign_InvalidMessage(t *testing.T) {\n\t// Should not allow control characters in message.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errInvalidCharacterInMessage {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\tSign(\"\\x00Hello!\")\n}\n\nfunc TestAdminDelete(t *testing.T) {\n\tconst (\n\t\tuserAddr std.Address = \"g1user\"\n\t\tadminAddr std.Address = \"g1admin\"\n\t)\n\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\towner = ownable.NewWithAddress(adminAddr)\n\tsignatureID = 0\n\n\tstd.TestSetRealm(std.NewUserRealm(userAddr))\n\n\tconst bad = \"Very Bad Message! Nyeh heh heh!\"\n\tSign(bad)\n\n\tif rnd := Render(\"\"); !strings.Contains(rnd, bad) {\n\t\tt.Fatal(\"render does not contain bad message\", rnd)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(adminAddr))\n\tAdminDelete(signatureID.String())\n\n\tif rnd := Render(\"\"); strings.Contains(rnd, bad) {\n\t\tt.Error(\"render contains bad message\", rnd)\n\t}\n\tif guestbook.Size() != 0 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n\tif hasSigned.Size() != 1 {\n\t\tt.Error(\"invalid hasSigned size\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3VHq3qib6fXclWFo4eHExHo4PU+E1Na9qAd3eMM1H9C0OwsW7ts/SGxeN4i3XYjKv25aGASN/5bkb1H2ou+8Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"haystack","path":"gno.land/p/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nvar (\n\t// ErrorNeedleNotFound is returned when a needle is not found in the haystack.\n\tErrorNeedleNotFound = errors.New(\"needle not found\")\n\t// ErrorNeedleLength is returned when a needle is not the correct length.\n\tErrorNeedleLength = errors.New(\"invalid needle length\")\n\t// ErrorHashLength is returned when a needle hash is not the correct length.\n\tErrorHashLength = errors.New(\"invalid hash length\")\n\t// ErrorDuplicateNeedle is returned when a needle already exists in the haystack.\n\tErrorDuplicateNeedle = errors.New(\"needle already exists\")\n\t// ErrorHashMismatch is returned when a needle hash does not match the needle. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorHashMismatch = errors.New(\"storage error: hash mismatch\")\n\t// ErrorValueInvalidType is returned when a needle value is not a byte slice. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorValueInvalidType = errors.New(\"storage error: invalid value type, expected []byte\")\n)\n\nconst (\n\t// EncodedHashLength is the length of the hex-encoded needle hash.\n\tEncodedHashLength = needle.HashLength * 2\n\t// EncodedPayloadLength is the length of the hex-encoded needle payload.\n\tEncodedPayloadLength = needle.PayloadLength * 2\n\t// EncodedNeedleLength is the length of the hex-encoded needle.\n\tEncodedNeedleLength = EncodedHashLength + EncodedPayloadLength\n)\n\n// Haystack is a permissionless, append-only, content-addressed key-value store for fix\n// length messages known as needles. A needle is a 192 byte byte slice with a 32 byte\n// hash (sha256) and a 160 byte payload.\ntype Haystack struct{ internal *avl.Tree }\n\n// New creates a new instance of a Haystack key-value store.\nfunc New() *Haystack {\n\treturn \u0026Haystack{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value\n// store. The key is the first 32 bytes of the needle hash (64 bytes hex-encoded) of the\n// sha256 sum of the payload. The value is the 160 byte byte slice of the needle payload.\n// An error is returned if the needle is found to be invalid.\nfunc (h *Haystack) Add(needleHex string) error {\n\tif len(needleHex) != EncodedNeedleLength {\n\t\treturn ErrorNeedleLength\n\t}\n\tb, err := hex.DecodeString(needleHex)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := needle.FromBytes(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h.internal.Has(needleHex[:EncodedHashLength]) {\n\t\treturn ErrorDuplicateNeedle\n\t}\n\th.internal.Set(needleHex[:EncodedHashLength], n.Payload())\n\treturn nil\n}\n\n// Get takes a hex-encoded needle hash and returns the complete hex-encoded needle bytes\n// and an error. Errors covers errors that span from the needle not being found, internal\n// storage error inconsistencies, and invalid value types.\nfunc (h *Haystack) Get(hash string) (string, error) {\n\tif len(hash) != EncodedHashLength {\n\t\treturn \"\", ErrorHashLength\n\t}\n\tif _, err := hex.DecodeString(hash); err != nil {\n\t\treturn \"\", err\n\t}\n\tv, ok := h.internal.Get(hash)\n\tif !ok {\n\t\treturn \"\", ErrorNeedleNotFound\n\t}\n\tb, ok := v.([]byte)\n\tif !ok {\n\t\treturn \"\", ErrorValueInvalidType\n\t}\n\tn, err := needle.New(b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tneedleHash := hex.EncodeToString(n.Hash())\n\tif needleHash != hash {\n\t\treturn \"\", ErrorHashMismatch\n\t}\n\treturn hex.EncodeToString(n.Bytes()), nil\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"testing\"\n\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"New\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tif h == nil {\n\t\t\tt.Error(\"New returned nil\")\n\t\t}\n\t})\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tn, _ := needle.New(make([]byte, needle.PayloadLength))\n\t\tvalidNeedleHex := hex.EncodeToString(n.Bytes())\n\n\t\ttestTable := []struct {\n\t\t\tneedleHex string\n\t\t\terr error\n\t\t}{\n\t\t\t{validNeedleHex, nil},\n\t\t\t{validNeedleHex, ErrorDuplicateNeedle},\n\t\t\t{\"bad\" + validNeedleHex[3:], needle.ErrorInvalidHash},\n\t\t\t{\"XXX\" + validNeedleHex[3:], hex.InvalidByteError('X')},\n\t\t\t{validNeedleHex[:len(validNeedleHex)-2], ErrorNeedleLength},\n\t\t\t{validNeedleHex + \"00\", ErrorNeedleLength},\n\t\t\t{\"000\", ErrorNeedleLength},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\terr := h.Add(tt.needleHex)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.needleHex, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\n\t\t// genNeedleHex returns a hex-encoded needle and its hash for a given index.\n\t\tgenNeedleHex := func(i int) (string, string) {\n\t\t\tb := make([]byte, needle.PayloadLength)\n\t\t\tb[0] = byte(i)\n\t\t\tn, _ := needle.New(b)\n\t\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t\t}\n\n\t\t// Add a valid needle to the haystack.\n\t\tvalidNeedleHex, validHash := genNeedleHex(0)\n\t\th.Add(validNeedleHex)\n\n\t\t// Add a needle and break the value type.\n\t\t_, brokenHashValueType := genNeedleHex(1)\n\t\th.internal.Set(brokenHashValueType, 0)\n\n\t\t// Add a needle with invalid hash.\n\t\t_, invalidHash := genNeedleHex(2)\n\t\th.internal.Set(invalidHash, make([]byte, needle.PayloadLength))\n\n\t\ttestTable := []struct {\n\t\t\thash string\n\t\t\texpected string\n\t\t\terr error\n\t\t}{\n\t\t\t{validHash, validNeedleHex, nil},\n\t\t\t{validHash[:len(validHash)-2], \"\", ErrorHashLength},\n\t\t\t{validHash + \"00\", \"\", ErrorHashLength},\n\t\t\t{\"XXX\" + validHash[3:], \"\", hex.InvalidByteError('X')},\n\t\t\t{\"bad\" + validHash[3:], \"\", ErrorNeedleNotFound},\n\t\t\t{brokenHashValueType, \"\", ErrorValueInvalidType},\n\t\t\t{invalidHash, \"\", ErrorHashMismatch},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\tactual, err := h.Get(tt.hash)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.hash, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t\tif actual != tt.expected {\n\t\t\t\tt.Error(tt.hash, actual, \"!=\", tt.expected)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WYP0JWEGeL3Yr7ElI619wT19qmIxhxwejleaLYaUwM7F9h75X4emKRjmI7lRaRIbS1Sw3FHBnSOpo5k83uJeAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"haystack","path":"gno.land/p/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nvar (\n\t// ErrorNeedleNotFound is returned when a needle is not found in the haystack.\n\tErrorNeedleNotFound = errors.New(\"needle not found\")\n\t// ErrorNeedleLength is returned when a needle is not the correct length.\n\tErrorNeedleLength = errors.New(\"invalid needle length\")\n\t// ErrorHashLength is returned when a needle hash is not the correct length.\n\tErrorHashLength = errors.New(\"invalid hash length\")\n\t// ErrorDuplicateNeedle is returned when a needle already exists in the haystack.\n\tErrorDuplicateNeedle = errors.New(\"needle already exists\")\n\t// ErrorHashMismatch is returned when a needle hash does not match the needle. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorHashMismatch = errors.New(\"storage error: hash mismatch\")\n\t// ErrorValueInvalidType is returned when a needle value is not a byte slice. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorValueInvalidType = errors.New(\"storage error: invalid value type, expected []byte\")\n)\n\nconst (\n\t// EncodedHashLength is the length of the hex-encoded needle hash.\n\tEncodedHashLength = needle.HashLength * 2\n\t// EncodedPayloadLength is the length of the hex-encoded needle payload.\n\tEncodedPayloadLength = needle.PayloadLength * 2\n\t// EncodedNeedleLength is the length of the hex-encoded needle.\n\tEncodedNeedleLength = EncodedHashLength + EncodedPayloadLength\n)\n\n// Haystack is a permissionless, append-only, content-addressed key-value store for fix\n// length messages known as needles. A needle is a 192 byte byte slice with a 32 byte\n// hash (sha256) and a 160 byte payload.\ntype Haystack struct{ internal *avl.Tree }\n\n// New creates a new instance of a Haystack key-value store.\nfunc New() *Haystack {\n\treturn \u0026Haystack{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value\n// store. The key is the first 32 bytes of the needle hash (64 bytes hex-encoded) of the\n// sha256 sum of the payload. The value is the 160 byte byte slice of the needle payload.\n// An error is returned if the needle is found to be invalid.\nfunc (h *Haystack) Add(needleHex string) error {\n\tif len(needleHex) != EncodedNeedleLength {\n\t\treturn ErrorNeedleLength\n\t}\n\tb, err := hex.DecodeString(needleHex)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := needle.FromBytes(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h.internal.Has(needleHex[:EncodedHashLength]) {\n\t\treturn ErrorDuplicateNeedle\n\t}\n\th.internal.Set(needleHex[:EncodedHashLength], n.Payload())\n\treturn nil\n}\n\n// Get takes a hex-encoded needle hash and returns the complete hex-encoded needle bytes\n// and an error. Errors covers errors that span from the needle not being found, internal\n// storage error inconsistencies, and invalid value types.\nfunc (h *Haystack) Get(hash string) (string, error) {\n\tif len(hash) != EncodedHashLength {\n\t\treturn \"\", ErrorHashLength\n\t}\n\tif _, err := hex.DecodeString(hash); err != nil {\n\t\treturn \"\", err\n\t}\n\tv, ok := h.internal.Get(hash)\n\tif !ok {\n\t\treturn \"\", ErrorNeedleNotFound\n\t}\n\tb, ok := v.([]byte)\n\tif !ok {\n\t\treturn \"\", ErrorValueInvalidType\n\t}\n\tn, err := needle.New(b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tneedleHash := hex.EncodeToString(n.Hash())\n\tif needleHash != hash {\n\t\treturn \"\", ErrorHashMismatch\n\t}\n\treturn hex.EncodeToString(n.Bytes()), nil\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"testing\"\n\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"New\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tif h == nil {\n\t\t\tt.Error(\"New returned nil\")\n\t\t}\n\t})\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tn, _ := needle.New(make([]byte, needle.PayloadLength))\n\t\tvalidNeedleHex := hex.EncodeToString(n.Bytes())\n\n\t\ttestTable := []struct {\n\t\t\tneedleHex string\n\t\t\terr error\n\t\t}{\n\t\t\t{validNeedleHex, nil},\n\t\t\t{validNeedleHex, ErrorDuplicateNeedle},\n\t\t\t{\"bad\" + validNeedleHex[3:], needle.ErrorInvalidHash},\n\t\t\t{\"XXX\" + validNeedleHex[3:], hex.InvalidByteError('X')},\n\t\t\t{validNeedleHex[:len(validNeedleHex)-2], ErrorNeedleLength},\n\t\t\t{validNeedleHex + \"00\", ErrorNeedleLength},\n\t\t\t{\"000\", ErrorNeedleLength},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\terr := h.Add(tt.needleHex)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.needleHex, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\n\t\t// genNeedleHex returns a hex-encoded needle and its hash for a given index.\n\t\tgenNeedleHex := func(i int) (string, string) {\n\t\t\tb := make([]byte, needle.PayloadLength)\n\t\t\tb[0] = byte(i)\n\t\t\tn, _ := needle.New(b)\n\t\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t\t}\n\n\t\t// Add a valid needle to the haystack.\n\t\tvalidNeedleHex, validHash := genNeedleHex(0)\n\t\th.Add(validNeedleHex)\n\n\t\t// Add a needle and break the value type.\n\t\t_, brokenHashValueType := genNeedleHex(1)\n\t\th.internal.Set(brokenHashValueType, 0)\n\n\t\t// Add a needle with invalid hash.\n\t\t_, invalidHash := genNeedleHex(2)\n\t\th.internal.Set(invalidHash, make([]byte, needle.PayloadLength))\n\n\t\ttestTable := []struct {\n\t\t\thash string\n\t\t\texpected string\n\t\t\terr error\n\t\t}{\n\t\t\t{validHash, validNeedleHex, nil},\n\t\t\t{validHash[:len(validHash)-2], \"\", ErrorHashLength},\n\t\t\t{validHash + \"00\", \"\", ErrorHashLength},\n\t\t\t{\"XXX\" + validHash[3:], \"\", hex.InvalidByteError('X')},\n\t\t\t{\"bad\" + validHash[3:], \"\", ErrorNeedleNotFound},\n\t\t\t{brokenHashValueType, \"\", ErrorValueInvalidType},\n\t\t\t{invalidHash, \"\", ErrorHashMismatch},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\tactual, err := h.Get(tt.hash)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.hash, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t\tif actual != tt.expected {\n\t\t\t\tt.Error(tt.hash, actual, \"!=\", tt.expected)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WYP0JWEGeL3Yr7ElI619wT19qmIxhxwejleaLYaUwM7F9h75X4emKRjmI7lRaRIbS1Sw3FHBnSOpo5k83uJeAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"haystack","path":"gno.land/p/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nvar (\n\t// ErrorNeedleNotFound is returned when a needle is not found in the haystack.\n\tErrorNeedleNotFound = errors.New(\"needle not found\")\n\t// ErrorNeedleLength is returned when a needle is not the correct length.\n\tErrorNeedleLength = errors.New(\"invalid needle length\")\n\t// ErrorHashLength is returned when a needle hash is not the correct length.\n\tErrorHashLength = errors.New(\"invalid hash length\")\n\t// ErrorDuplicateNeedle is returned when a needle already exists in the haystack.\n\tErrorDuplicateNeedle = errors.New(\"needle already exists\")\n\t// ErrorHashMismatch is returned when a needle hash does not match the needle. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorHashMismatch = errors.New(\"storage error: hash mismatch\")\n\t// ErrorValueInvalidType is returned when a needle value is not a byte slice. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorValueInvalidType = errors.New(\"storage error: invalid value type, expected []byte\")\n)\n\nconst (\n\t// EncodedHashLength is the length of the hex-encoded needle hash.\n\tEncodedHashLength = needle.HashLength * 2\n\t// EncodedPayloadLength is the length of the hex-encoded needle payload.\n\tEncodedPayloadLength = needle.PayloadLength * 2\n\t// EncodedNeedleLength is the length of the hex-encoded needle.\n\tEncodedNeedleLength = EncodedHashLength + EncodedPayloadLength\n)\n\n// Haystack is a permissionless, append-only, content-addressed key-value store for fix\n// length messages known as needles. A needle is a 192 byte byte slice with a 32 byte\n// hash (sha256) and a 160 byte payload.\ntype Haystack struct{ internal *avl.Tree }\n\n// New creates a new instance of a Haystack key-value store.\nfunc New() *Haystack {\n\treturn \u0026Haystack{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value\n// store. The key is the first 32 bytes of the needle hash (64 bytes hex-encoded) of the\n// sha256 sum of the payload. The value is the 160 byte byte slice of the needle payload.\n// An error is returned if the needle is found to be invalid.\nfunc (h *Haystack) Add(needleHex string) error {\n\tif len(needleHex) != EncodedNeedleLength {\n\t\treturn ErrorNeedleLength\n\t}\n\tb, err := hex.DecodeString(needleHex)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := needle.FromBytes(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h.internal.Has(needleHex[:EncodedHashLength]) {\n\t\treturn ErrorDuplicateNeedle\n\t}\n\th.internal.Set(needleHex[:EncodedHashLength], n.Payload())\n\treturn nil\n}\n\n// Get takes a hex-encoded needle hash and returns the complete hex-encoded needle bytes\n// and an error. Errors covers errors that span from the needle not being found, internal\n// storage error inconsistencies, and invalid value types.\nfunc (h *Haystack) Get(hash string) (string, error) {\n\tif len(hash) != EncodedHashLength {\n\t\treturn \"\", ErrorHashLength\n\t}\n\tif _, err := hex.DecodeString(hash); err != nil {\n\t\treturn \"\", err\n\t}\n\tv, ok := h.internal.Get(hash)\n\tif !ok {\n\t\treturn \"\", ErrorNeedleNotFound\n\t}\n\tb, ok := v.([]byte)\n\tif !ok {\n\t\treturn \"\", ErrorValueInvalidType\n\t}\n\tn, err := needle.New(b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tneedleHash := hex.EncodeToString(n.Hash())\n\tif needleHash != hash {\n\t\treturn \"\", ErrorHashMismatch\n\t}\n\treturn hex.EncodeToString(n.Bytes()), nil\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"testing\"\n\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"New\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tif h == nil {\n\t\t\tt.Error(\"New returned nil\")\n\t\t}\n\t})\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tn, _ := needle.New(make([]byte, needle.PayloadLength))\n\t\tvalidNeedleHex := hex.EncodeToString(n.Bytes())\n\n\t\ttestTable := []struct {\n\t\t\tneedleHex string\n\t\t\terr error\n\t\t}{\n\t\t\t{validNeedleHex, nil},\n\t\t\t{validNeedleHex, ErrorDuplicateNeedle},\n\t\t\t{\"bad\" + validNeedleHex[3:], needle.ErrorInvalidHash},\n\t\t\t{\"XXX\" + validNeedleHex[3:], hex.InvalidByteError('X')},\n\t\t\t{validNeedleHex[:len(validNeedleHex)-2], ErrorNeedleLength},\n\t\t\t{validNeedleHex + \"00\", ErrorNeedleLength},\n\t\t\t{\"000\", ErrorNeedleLength},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\terr := h.Add(tt.needleHex)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.needleHex, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\n\t\t// genNeedleHex returns a hex-encoded needle and its hash for a given index.\n\t\tgenNeedleHex := func(i int) (string, string) {\n\t\t\tb := make([]byte, needle.PayloadLength)\n\t\t\tb[0] = byte(i)\n\t\t\tn, _ := needle.New(b)\n\t\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t\t}\n\n\t\t// Add a valid needle to the haystack.\n\t\tvalidNeedleHex, validHash := genNeedleHex(0)\n\t\th.Add(validNeedleHex)\n\n\t\t// Add a needle and break the value type.\n\t\t_, brokenHashValueType := genNeedleHex(1)\n\t\th.internal.Set(brokenHashValueType, 0)\n\n\t\t// Add a needle with invalid hash.\n\t\t_, invalidHash := genNeedleHex(2)\n\t\th.internal.Set(invalidHash, make([]byte, needle.PayloadLength))\n\n\t\ttestTable := []struct {\n\t\t\thash string\n\t\t\texpected string\n\t\t\terr error\n\t\t}{\n\t\t\t{validHash, validNeedleHex, nil},\n\t\t\t{validHash[:len(validHash)-2], \"\", ErrorHashLength},\n\t\t\t{validHash + \"00\", \"\", ErrorHashLength},\n\t\t\t{\"XXX\" + validHash[3:], \"\", hex.InvalidByteError('X')},\n\t\t\t{\"bad\" + validHash[3:], \"\", ErrorNeedleNotFound},\n\t\t\t{brokenHashValueType, \"\", ErrorValueInvalidType},\n\t\t\t{invalidHash, \"\", ErrorHashMismatch},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\tactual, err := h.Get(tt.hash)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.hash, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t\tif actual != tt.expected {\n\t\t\t\tt.Error(tt.hash, actual, \"!=\", tt.expected)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WYP0JWEGeL3Yr7ElI619wT19qmIxhxwejleaLYaUwM7F9h75X4emKRjmI7lRaRIbS1Sw3FHBnSOpo5k83uJeAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"haystack","path":"gno.land/r/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"gno.land/p/n2p5/haystack\"\n)\n\nvar storage = haystack.New()\n\nfunc Render(path string) string {\n\treturn `\nPut a Needle in the Haystack.\n`\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value store.\n// If storage encounters an error, it will panic.\nfunc Add(needleHex string) {\n\terr := storage.Add(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Get takes a fixed-length hex-encoded needle hash and returns the hex-encoded needle bytes.\n// If storage encounters an error, it will panic.\nfunc Get(hashHex string) string {\n\tneedleHex, err := storage.Get(hashHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn needleHex\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/n2p5/haystack\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\t// needleHex returns a hex-encoded needle and its hash for a given index.\n\tgenNeedleHex := func(i int) (string, string) {\n\t\tb := make([]byte, needle.PayloadLength)\n\t\tb[0] = byte(i)\n\t\tn, _ := needle.New(b)\n\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t}\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, _ := genNeedleHex(1)\n\t\tn2, _ := genNeedleHex(2)\n\t\tn3, _ := genNeedleHex(3)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorDuplicateNeedle.Error(),\n\t\t\tfunc() {\n\t\t\t\tAdd(n1)\n\t\t\t})\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() { Add(n2) })\n\t\turequire.NotPanics(t, func() { Add(n3) })\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, h1 := genNeedleHex(4)\n\t\t_, h2 := genNeedleHex(5)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorNeedleNotFound.Error(),\n\t\t\tfunc() {\n\t\t\t\tGet(h2)\n\t\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mOmhq995n4ea7z8DXDoNIByRg12h/lNgM08L1p4IiZHWZBv/UEyIAVBWrs1/QAyFo7Jp42LitvS1ogp8AyA2DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"haystack","path":"gno.land/r/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"gno.land/p/n2p5/haystack\"\n)\n\nvar storage = haystack.New()\n\nfunc Render(path string) string {\n\treturn `\nPut a Needle in the Haystack.\n`\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value store.\n// If storage encounters an error, it will panic.\nfunc Add(needleHex string) {\n\terr := storage.Add(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Get takes a fixed-length hex-encoded needle hash and returns the hex-encoded needle bytes.\n// If storage encounters an error, it will panic.\nfunc Get(hashHex string) string {\n\tneedleHex, err := storage.Get(hashHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn needleHex\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/n2p5/haystack\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\t// needleHex returns a hex-encoded needle and its hash for a given index.\n\tgenNeedleHex := func(i int) (string, string) {\n\t\tb := make([]byte, needle.PayloadLength)\n\t\tb[0] = byte(i)\n\t\tn, _ := needle.New(b)\n\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t}\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, _ := genNeedleHex(1)\n\t\tn2, _ := genNeedleHex(2)\n\t\tn3, _ := genNeedleHex(3)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorDuplicateNeedle.Error(),\n\t\t\tfunc() {\n\t\t\t\tAdd(n1)\n\t\t\t})\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() { Add(n2) })\n\t\turequire.NotPanics(t, func() { Add(n3) })\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, h1 := genNeedleHex(4)\n\t\t_, h2 := genNeedleHex(5)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorNeedleNotFound.Error(),\n\t\t\tfunc() {\n\t\t\t\tGet(h2)\n\t\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mOmhq995n4ea7z8DXDoNIByRg12h/lNgM08L1p4IiZHWZBv/UEyIAVBWrs1/QAyFo7Jp42LitvS1ogp8AyA2DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"haystack","path":"gno.land/r/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"gno.land/p/n2p5/haystack\"\n)\n\nvar storage = haystack.New()\n\nfunc Render(path string) string {\n\treturn `\nPut a Needle in the Haystack.\n`\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value store.\n// If storage encounters an error, it will panic.\nfunc Add(needleHex string) {\n\terr := storage.Add(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Get takes a fixed-length hex-encoded needle hash and returns the hex-encoded needle bytes.\n// If storage encounters an error, it will panic.\nfunc Get(hashHex string) string {\n\tneedleHex, err := storage.Get(hashHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn needleHex\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/n2p5/haystack\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\t// needleHex returns a hex-encoded needle and its hash for a given index.\n\tgenNeedleHex := func(i int) (string, string) {\n\t\tb := make([]byte, needle.PayloadLength)\n\t\tb[0] = byte(i)\n\t\tn, _ := needle.New(b)\n\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t}\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, _ := genNeedleHex(1)\n\t\tn2, _ := genNeedleHex(2)\n\t\tn3, _ := genNeedleHex(3)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorDuplicateNeedle.Error(),\n\t\t\tfunc() {\n\t\t\t\tAdd(n1)\n\t\t\t})\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() { Add(n2) })\n\t\turequire.NotPanics(t, func() { Add(n3) })\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, h1 := genNeedleHex(4)\n\t\t_, h2 := genNeedleHex(5)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorNeedleNotFound.Error(),\n\t\t\tfunc() {\n\t\t\t\tGet(h2)\n\t\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mOmhq995n4ea7z8DXDoNIByRg12h/lNgM08L1p4IiZHWZBv/UEyIAVBWrs1/QAyFo7Jp42LitvS1ogp8AyA2DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"func Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xegWf0GMxfgC6oJl5ubTOb4HVmhdvVDSackGPcpupLFATH6dWwkksqGFQYfkJpuTw+kR1Qvr2F0d32IiXI8SAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/demo/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q4pyYjw8pnK6H3Ytn9UbT55kOScIipLocYYdg9pyRTyLsMi8qVgik/w6O+naibX7KiAskF3+mpNjm1OVteMZAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/devx/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i3xQy71+RiTI4naj7z4RP7+UQ6Y0UPWzg0taXHUtXNS2c+M3ZNfU3b0qrhtxMn1CVZUWhydMAsWGz49dRUFBBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/devx5/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q5imgjyM3xqr46F3HopN46V50/7rFEejaf8vjCGzaei/jTvZ+Kko7El4JgUd4b4rm3uzSIVQVqrGoXd6opwtCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/devx7/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KeqoLzdcb8Hz6OwiaTPEGi+C1mrh1SFoUFPppraqkYtu5xwaU8KpG0mQKg21Xo9jkhhEqumuwj8iZHgEs7S9BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/docs/hello","files":[{"name":"hello.gno","body":"// Package hello_world demonstrates basic usage of Render().\n// Try adding `:World` at the end of the URL, like `.../hello:World`.\npackage hello\n\n// Render outputs a greeting. It customizes the message based on the provided path.\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"# Hello, 世界!\"\n\t}\n\treturn \"# Hello, \" + path + \"!\"\n}\n"},{"name":"hello_test.gno","body":"package hello\n\nimport (\n\t\"testing\"\n)\n\nfunc TestHello(t *testing.T) {\n\texpected := \"# Hello, 世界!\"\n\tgot := Render(\"\")\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n\n\tgot = Render(\"world\")\n\texpected = \"# Hello, world!\"\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"duc2FbZlhjfmMhrrtc6YUp3uPByTeWPWLYh7Ns5rDQNznmbhnSUGLkLfKQXsEIV4hDdi5Bwk9Blsl3qAMQf4Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/docs/hello","files":[{"name":"hello.gno","body":"// Package hello_world demonstrates basic usage of Render().\n// Try adding `:World` at the end of the URL, like `.../hello:World`.\npackage hello\n\n// Render outputs a greeting. It customizes the message based on the provided path.\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"# Hello, 世界!\"\n\t}\n\treturn \"# Hello, \" + path + \"!\"\n}\n"},{"name":"hello_test.gno","body":"package hello\n\nimport (\n\t\"testing\"\n)\n\nfunc TestHello(t *testing.T) {\n\texpected := \"# Hello, 世界!\"\n\tgot := Render(\"\")\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n\n\tgot = Render(\"world\")\n\texpected = \"# Hello, world!\"\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"duc2FbZlhjfmMhrrtc6YUp3uPByTeWPWLYh7Ns5rDQNznmbhnSUGLkLfKQXsEIV4hDdi5Bwk9Blsl3qAMQf4Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/docs/hello","files":[{"name":"hello.gno","body":"// Package hello_world demonstrates basic usage of Render().\n// Try adding `:World` at the end of the URL, like `.../hello:World`.\npackage hello\n\n// Render outputs a greeting. It customizes the message based on the provided path.\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"# Hello, 世界!\"\n\t}\n\treturn \"# Hello, \" + path + \"!\"\n}\n"},{"name":"hello_test.gno","body":"package hello\n\nimport (\n\t\"testing\"\n)\n\nfunc TestHello(t *testing.T) {\n\texpected := \"# Hello, 世界!\"\n\tgot := Render(\"\")\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n\n\tgot = Render(\"world\")\n\texpected = \"# Hello, world!\"\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"duc2FbZlhjfmMhrrtc6YUp3uPByTeWPWLYh7Ns5rDQNznmbhnSUGLkLfKQXsEIV4hDdi5Bwk9Blsl3qAMQf4Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/pkg1","files":[{"name":"a.gno","body":"package hello\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar hello avl.Tree\n\nvar helloMap = make(map[string]string)\n\nfunc init() {\n\tfor i := 0; i \u003c 1000; i++ {\n\t\ts := strconv.Itoa(i)\n\t\thello.Set(s, \"123\")\n\t\thelloMap[s] = \"123\"\n\t}\n}\n\nfunc Render(s string) string {\n\tif s == \"map\" {\n\t\treturn helloMap[\"100\"]\n\t}\n\tres, _ := hello.Get(\"100\")\n\treturn res.(string)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJ8C3GU8ildV1gqACWcwgE9+a0lC+QcVlT0UgYO69s9BIbzhB7nvdFDITzxrX+yhQ8bpV6caVrmH++gvG1XQCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hello","path":"gno.land/r/test1/hello","files":[{"name":"package.gno","body":"func Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tufFzXxSiQiW5KLnvQ9A7YWeMYEUDA5qG9a9YvBI8E6pR35TrB7bzPVdvv/izznU8f80XqVJHdR1rWA9AhoRBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"helloworld2","path":"gno.land/r/teritori/helloworld2","files":[{"name":"helloworld2.gno","body":"package helloworld2\n\nfunc main() string {\n\treturn \"Hello, World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5PxJh3vlersljksfIIFWev+NeBOAfFKJPG7ys9Q7ZEWaB3cNwvmLVWMcOPsXRZB6npCHYrXYCqtjU/H1BgrtCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"helloworld3","path":"gno.land/r/teritori/helloworld3","files":[{"name":"helloworld3.gno","body":"package helloworld3\n\nfunc main() string {\n\treturn \"Hello, World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BkvuL/Wx643oMewi8JxzTaYuMziiAWYJuCx1FNor9X35wlATjmZb72lLNKXEXrKrUK0Y77n3j1hzT7YZOQOhBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"helplink","path":"gno.land/p/moul/helplink","files":[{"name":"helplink.gno","body":"// Package helplink provides utilities for creating help page links compatible\n// with Gnoweb, Gnobro, and other clients that support the Gno contracts'\n// flavored Markdown format.\n//\n// This package simplifies the generation of dynamic, context-sensitive help\n// links, enabling users to navigate relevant documentation seamlessly within\n// the Gno ecosystem.\n//\n// For a more lightweight alternative, consider using p/moul/txlink.\n//\n// The primary functions — Func, FuncURL, and Home — are intended for use with\n// the \"relative realm\". When specifying a custom Realm, you can create links\n// that utilize either the current realm path or a fully qualified path to\n// another realm.\npackage helplink\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Func returns a markdown link for the specific function with optional\n// key-value arguments, for the current realm.\nfunc Func(title string, fn string, args ...string) string {\n\treturn Realm(\"\").Func(title, fn, args...)\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc FuncURL(fn string, args ...string) string {\n\treturn Realm(\"\").FuncURL(fn, args...)\n}\n\n// Home returns the URL for the help homepage of the current realm.\nfunc Home() string {\n\treturn Realm(\"\").Home()\n}\n\n// Realm represents a specific realm for generating help links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\treturn \"\"\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Func returns a markdown link for the specified function with optional\n// key-value arguments.\nfunc (r Realm) Func(title string, fn string, args ...string) string {\n\t// XXX: escape title\n\treturn \"[\" + title + \"](\" + r.FuncURL(fn, args...) + \")\"\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) FuncURL(fn string, args ...string) string {\n\ttlr := txlink.Realm(r)\n\treturn tlr.Call(fn, args...)\n}\n\n// Home returns the base help URL for the specified realm.\nfunc (r Realm) Home() string {\n\treturn r.prefix() + \"$help\"\n}\n"},{"name":"helplink_test.gno","body":"package helplink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestFunc(t *testing.T) {\n\ttests := []struct {\n\t\ttitle string\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Example]($help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"\"},\n\t\t{\"Realm Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Realm Example](/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"Single Arg\", \"testFunc\", []string{\"key\", \"value\"}, \"[Single Arg]($help\u0026func=testFunc\u0026key=value)\", \"\"},\n\t\t{\"No Args\", \"noArgsFunc\", []string{}, \"[No Args]($help\u0026func=noArgsFunc)\", \"\"},\n\t\t{\"Odd Args\", \"oddArgsFunc\", []string{\"key\"}, \"[Odd Args]($help\u0026func=oddArgsFunc)\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Func(tt.title, tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestFuncURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.FuncURL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestHome(t *testing.T) {\n\ttests := []struct {\n\t\trealm Realm\n\t\twant string\n\t}{\n\t\t{\"\", \"$help\"},\n\t\t{\"gno.land/r/lorem/ipsum\", \"/r/lorem/ipsum$help\"},\n\t\t{\"gno.world/r/lorem/ipsum\", \"https://gno.world/r/lorem/ipsum$help\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(string(tt.realm), func(t *testing.T) {\n\t\t\tgot := tt.realm.Home()\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y2+jDq0BZfPHJGQPElMqnx4N9eZHifYT1qC5j1wu0Ew22JqCMGSUy8SF6yx58YWD1TRR41wBmilvkuXAEYQSAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"helplink","path":"gno.land/p/moul/helplink","files":[{"name":"helplink.gno","body":"// Package helplink provides utilities for creating help page links compatible\n// with Gnoweb, Gnobro, and other clients that support the Gno contracts'\n// flavored Markdown format.\n//\n// This package simplifies the generation of dynamic, context-sensitive help\n// links, enabling users to navigate relevant documentation seamlessly within\n// the Gno ecosystem.\n//\n// For a more lightweight alternative, consider using p/moul/txlink.\n//\n// The primary functions — Func, FuncURL, and Home — are intended for use with\n// the \"relative realm\". When specifying a custom Realm, you can create links\n// that utilize either the current realm path or a fully qualified path to\n// another realm.\npackage helplink\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Func returns a markdown link for the specific function with optional\n// key-value arguments, for the current realm.\nfunc Func(title string, fn string, args ...string) string {\n\treturn Realm(\"\").Func(title, fn, args...)\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc FuncURL(fn string, args ...string) string {\n\treturn Realm(\"\").FuncURL(fn, args...)\n}\n\n// Home returns the URL for the help homepage of the current realm.\nfunc Home() string {\n\treturn Realm(\"\").Home()\n}\n\n// Realm represents a specific realm for generating help links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\treturn \"\"\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Func returns a markdown link for the specified function with optional\n// key-value arguments.\nfunc (r Realm) Func(title string, fn string, args ...string) string {\n\t// XXX: escape title\n\treturn \"[\" + title + \"](\" + r.FuncURL(fn, args...) + \")\"\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) FuncURL(fn string, args ...string) string {\n\ttlr := txlink.Realm(r)\n\treturn tlr.URL(fn, args...)\n}\n\n// Home returns the base help URL for the specified realm.\nfunc (r Realm) Home() string {\n\treturn r.prefix() + \"$help\"\n}\n"},{"name":"helplink_test.gno","body":"package helplink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestFunc(t *testing.T) {\n\ttests := []struct {\n\t\ttitle string\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Example]($help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"\"},\n\t\t{\"Realm Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Realm Example](/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"Single Arg\", \"testFunc\", []string{\"key\", \"value\"}, \"[Single Arg]($help\u0026func=testFunc\u0026key=value)\", \"\"},\n\t\t{\"No Args\", \"noArgsFunc\", []string{}, \"[No Args]($help\u0026func=noArgsFunc)\", \"\"},\n\t\t{\"Odd Args\", \"oddArgsFunc\", []string{\"key\"}, \"[Odd Args]($help\u0026func=oddArgsFunc)\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Func(tt.title, tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestFuncURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.FuncURL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestHome(t *testing.T) {\n\ttests := []struct {\n\t\trealm Realm\n\t\twant string\n\t}{\n\t\t{\"\", \"$help\"},\n\t\t{\"gno.land/r/lorem/ipsum\", \"/r/lorem/ipsum$help\"},\n\t\t{\"gno.world/r/lorem/ipsum\", \"https://gno.world/r/lorem/ipsum$help\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(string(tt.realm), func(t *testing.T) {\n\t\t\tgot := tt.realm.Home()\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HiaXSquSnqPwOZPbDkvSncz98I58jrAOSMK92Ja870VUUcUPSP8agRG7TyAXQkq0IuyeskFZSt2MBncanaV6Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"helplink","path":"gno.land/p/moul/helplink","files":[{"name":"helplink.gno","body":"// Package helplink provides utilities for creating help page links compatible\n// with Gnoweb, Gnobro, and other clients that support the Gno contracts'\n// flavored Markdown format.\n//\n// This package simplifies the generation of dynamic, context-sensitive help\n// links, enabling users to navigate relevant documentation seamlessly within\n// the Gno ecosystem.\n//\n// For a more lightweight alternative, consider using p/moul/txlink.\n//\n// The primary functions — Func, FuncURL, and Home — are intended for use with\n// the \"relative realm\". When specifying a custom Realm, you can create links\n// that utilize either the current realm path or a fully qualified path to\n// another realm.\npackage helplink\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Func returns a markdown link for the specific function with optional\n// key-value arguments, for the current realm.\nfunc Func(title string, fn string, args ...string) string {\n\treturn Realm(\"\").Func(title, fn, args...)\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc FuncURL(fn string, args ...string) string {\n\treturn Realm(\"\").FuncURL(fn, args...)\n}\n\n// Home returns the URL for the help homepage of the current realm.\nfunc Home() string {\n\treturn Realm(\"\").Home()\n}\n\n// Realm represents a specific realm for generating help links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\treturn \"\"\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Func returns a markdown link for the specified function with optional\n// key-value arguments.\nfunc (r Realm) Func(title string, fn string, args ...string) string {\n\t// XXX: escape title\n\treturn \"[\" + title + \"](\" + r.FuncURL(fn, args...) + \")\"\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) FuncURL(fn string, args ...string) string {\n\ttlr := txlink.Realm(r)\n\treturn tlr.URL(fn, args...)\n}\n\n// Home returns the base help URL for the specified realm.\nfunc (r Realm) Home() string {\n\treturn r.prefix() + \"$help\"\n}\n"},{"name":"helplink_test.gno","body":"package helplink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestFunc(t *testing.T) {\n\ttests := []struct {\n\t\ttitle string\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Example]($help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"\"},\n\t\t{\"Realm Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Realm Example](/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"Single Arg\", \"testFunc\", []string{\"key\", \"value\"}, \"[Single Arg]($help\u0026func=testFunc\u0026key=value)\", \"\"},\n\t\t{\"No Args\", \"noArgsFunc\", []string{}, \"[No Args]($help\u0026func=noArgsFunc)\", \"\"},\n\t\t{\"Odd Args\", \"oddArgsFunc\", []string{\"key\"}, \"[Odd Args]($help\u0026func=oddArgsFunc)\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Func(tt.title, tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestFuncURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.FuncURL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestHome(t *testing.T) {\n\ttests := []struct {\n\t\trealm Realm\n\t\twant string\n\t}{\n\t\t{\"\", \"$help\"},\n\t\t{\"gno.land/r/lorem/ipsum\", \"/r/lorem/ipsum$help\"},\n\t\t{\"gno.world/r/lorem/ipsum\", \"https://gno.world/r/lorem/ipsum$help\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(string(tt.realm), func(t *testing.T) {\n\t\t\tgot := tt.realm.Home()\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HiaXSquSnqPwOZPbDkvSncz98I58jrAOSMK92Ja870VUUcUPSP8agRG7TyAXQkq0IuyeskFZSt2MBncanaV6Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"helplink","path":"gno.land/p/moul/helplink","files":[{"name":"helplink.gno","body":"// Package helplink provides utilities for creating help page links compatible\n// with Gnoweb, Gnobro, and other clients that support the Gno contracts'\n// flavored Markdown format.\n//\n// This package simplifies the generation of dynamic, context-sensitive help\n// links, enabling users to navigate relevant documentation seamlessly within\n// the Gno ecosystem.\n//\n// For a more lightweight alternative, consider using p/moul/txlink.\n//\n// The primary functions — Func, FuncURL, and Home — are intended for use with\n// the \"relative realm\". When specifying a custom Realm, you can create links\n// that utilize either the current realm path or a fully qualified path to\n// another realm.\npackage helplink\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Func returns a markdown link for the specific function with optional\n// key-value arguments, for the current realm.\nfunc Func(title string, fn string, args ...string) string {\n\treturn Realm(\"\").Func(title, fn, args...)\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc FuncURL(fn string, args ...string) string {\n\treturn Realm(\"\").FuncURL(fn, args...)\n}\n\n// Home returns the URL for the help homepage of the current realm.\nfunc Home() string {\n\treturn Realm(\"\").Home()\n}\n\n// Realm represents a specific realm for generating help links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\treturn \"\"\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Func returns a markdown link for the specified function with optional\n// key-value arguments.\nfunc (r Realm) Func(title string, fn string, args ...string) string {\n\t// XXX: escape title\n\treturn \"[\" + title + \"](\" + r.FuncURL(fn, args...) + \")\"\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) FuncURL(fn string, args ...string) string {\n\ttlr := txlink.Realm(r)\n\treturn tlr.URL(fn, args...)\n}\n\n// Home returns the base help URL for the specified realm.\nfunc (r Realm) Home() string {\n\treturn r.prefix() + \"$help\"\n}\n"},{"name":"helplink_test.gno","body":"package helplink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestFunc(t *testing.T) {\n\ttests := []struct {\n\t\ttitle string\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Example]($help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"\"},\n\t\t{\"Realm Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Realm Example](/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"Single Arg\", \"testFunc\", []string{\"key\", \"value\"}, \"[Single Arg]($help\u0026func=testFunc\u0026key=value)\", \"\"},\n\t\t{\"No Args\", \"noArgsFunc\", []string{}, \"[No Args]($help\u0026func=noArgsFunc)\", \"\"},\n\t\t{\"Odd Args\", \"oddArgsFunc\", []string{\"key\"}, \"[Odd Args]($help\u0026func=oddArgsFunc)\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Func(tt.title, tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestFuncURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.FuncURL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestHome(t *testing.T) {\n\ttests := []struct {\n\t\trealm Realm\n\t\twant string\n\t}{\n\t\t{\"\", \"$help\"},\n\t\t{\"gno.land/r/lorem/ipsum\", \"/r/lorem/ipsum$help\"},\n\t\t{\"gno.world/r/lorem/ipsum\", \"https://gno.world/r/lorem/ipsum$help\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(string(tt.realm), func(t *testing.T) {\n\t\t\tgot := tt.realm.Home()\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HiaXSquSnqPwOZPbDkvSncz98I58jrAOSMK92Ja870VUUcUPSP8agRG7TyAXQkq0IuyeskFZSt2MBncanaV6Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hof","path":"gno.land/r/leon/hof","files":[{"name":"administration.gno","body":"package hof\n\nimport \"std\"\n\n// Exposing the ownable \u0026 pausable APIs\n// Should not be needed as soon as MsgCall supports calling methods on exported variables\n\nfunc Pause() error {\n\treturn exhibition.Pause()\n}\n\nfunc Unpause() error {\n\treturn exhibition.Unpause()\n}\n\nfunc GetOwner() std.Address {\n\treturn owner.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := owner.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package hof\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrNoSuchItem = errors.New(\"hof: no such item exists\")\n\tErrDoubleUpvote = errors.New(\"hof: cannot upvote twice\")\n\tErrDoubleDownvote = errors.New(\"hof: cannot downvote twice\")\n)\n"},{"name":"hof.gno","body":"// Package hof is the hall of fame realm.\n// The Hall of Fame is an exhibition that holds items. Users can add their realms to the Hall of Fame by\n// importing the Hall of Fame realm and calling hof.Register() from their init function.\npackage hof\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/pausable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar (\n\texhibition *Exhibition\n\towner *ownable.Ownable\n)\n\ntype (\n\tExhibition struct {\n\t\titemCounter seqid.ID\n\t\tdescription string\n\t\titems *avl.Tree // pkgPath \u003e Item\n\t\titemsSorted *avl.Tree // same data but sorted, storing pointers\n\t\t*pausable.Pausable\n\t}\n\n\tItem struct {\n\t\tid seqid.ID\n\t\tpkgpath string\n\t\tblockNum int64\n\t\tupvote *avl.Tree // std.Addr \u003e struct{}{}\n\t\tdownvote *avl.Tree // std.Addr \u003e struct{}{}\n\t}\n)\n\nfunc init() {\n\texhibition = \u0026Exhibition{\n\t\titems: avl.NewTree(),\n\t\titemsSorted: avl.NewTree(),\n\t}\n\n\towner = ownable.NewWithAddress(std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"))\n\texhibition.Pausable = pausable.NewFromOwnable(owner)\n}\n\n// Register registers your realm to the Hall of Fame\n// Should be called from within code\nfunc Register() {\n\tif exhibition.IsPaused() {\n\t\treturn\n\t}\n\n\tsubmission := std.PrevRealm()\n\tpkgpath := submission.PkgPath()\n\n\t// Must be called from code\n\tif submission.IsUser() {\n\t\treturn\n\t}\n\n\t// Must not yet exist\n\tif exhibition.items.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tid := exhibition.itemCounter.Next()\n\ti := \u0026Item{\n\t\tid: id,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: std.GetHeight(),\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\n\texhibition.items.Set(pkgpath, i)\n\texhibition.itemsSorted.Set(id.String(), i)\n\n\tstd.Emit(\"Registration\")\n}\n\nfunc Upvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.upvote.Has(caller) {\n\t\tpanic(ErrDoubleUpvote.Error())\n\t}\n\n\titem.upvote.Set(caller, struct{}{})\n}\n\nfunc Downvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.downvote.Has(caller) {\n\t\tpanic(ErrDoubleDownvote.Error())\n\t}\n\n\titem.downvote.Set(caller, struct{}{})\n}\n\nfunc Delete(pkgpath string) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\ti, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.itemsSorted.Remove(i.(*Item).id.String()); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.items.Remove(pkgpath); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n}\n"},{"name":"hof_test.gno","body":"package hof\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nconst rlmPath = \"gno.land/r/gnoland/home\"\n\nvar (\n\tadmin = owner.Owner()\n\tadminRealm = std.NewUserRealm(admin)\n\talice = testutils.TestAddress(\"alice\")\n)\n\nfunc TestRegister(t *testing.T) {\n\t// Test user realm register\n\taliceRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(aliceRealm)\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Test register while paused\n\tstd.TestSetRealm(adminRealm)\n\tPause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Unpause\n\tstd.TestSetRealm(adminRealm)\n\tUnpause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\tRegister()\n\n\t// Find registered items\n\tuassert.True(t, itemExists(t, rlmPath))\n}\n\nfunc TestUpvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 upvotes by default\n\turequire.Equal(t, item.upvote.Size(), 0)\n\n\tstd.TestSetRealm(adminRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tUpvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.upvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.upvote.Size(), 1)\n\n\t// Check double upvote\n\tuassert.PanicsWithMessage(t, ErrDoubleUpvote.Error(), func() {\n\t\tUpvote(rlmPath)\n\t})\n}\n\nfunc TestDownvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 downvotes by default\n\turequire.Equal(t, item.downvote.Size(), 0)\n\n\tuserRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(userRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tDownvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.downvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.downvote.Size(), 1)\n\n\t// Check double downvote\n\tuassert.PanicsWithMessage(t, ErrDoubleDownvote.Error(), func() {\n\t\tDownvote(rlmPath)\n\t})\n}\n\nfunc TestDelete(t *testing.T) {\n\tuserRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(userRealm)\n\tstd.TestSetOrigCaller(admin)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchItem.Error(), func() {\n\t\tDelete(\"nonexistentpkgpath\")\n\t})\n\n\ti, _ := exhibition.items.Get(rlmPath)\n\tid := i.(*Item).id\n\n\tuassert.NotPanics(t, func() {\n\t\tDelete(rlmPath)\n\t})\n\n\tuassert.False(t, exhibition.items.Has(rlmPath))\n\tuassert.False(t, exhibition.itemsSorted.Has(id.String()))\n}\n\nfunc itemExists(t *testing.T, rlmPath string) bool {\n\tt.Helper()\n\n\ti, ok1 := exhibition.items.Get(rlmPath)\n\tok2 := false\n\n\tif ok1 {\n\t\t_, ok2 = exhibition.itemsSorted.Get(i.(*Item).id.String())\n\t}\n\n\treturn ok1 \u0026\u0026 ok2\n}\n"},{"name":"render.gno","body":"package hof\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst (\n\tpageSize = 5\n)\n\nfunc Render(path string) string {\n\tout := \"# Hall of Fame\\n\\n\"\n\n\tdashboardEnabled := path == \"dashboard\"\n\n\tif dashboardEnabled {\n\t\tout += renderDashboard()\n\t}\n\n\tout += exhibition.Render(path, dashboardEnabled)\n\n\treturn out\n}\n\nfunc (e Exhibition) Render(path string, dashboard bool) string {\n\tout := ufmt.Sprintf(\"%s\\n\\n\", e.description)\n\n\tif e.items.Size() == 0 {\n\t\tout += \"No items in this exhibition currently.\\n\\n\"\n\t\treturn out\n\t}\n\n\tout += \"\u003cdiv class='columns-2'\u003e\\n\\n\"\n\n\tpage := pager.NewPager(e.itemsSorted, pageSize).MustGetPageByPath(path)\n\n\tfor i := len(page.Items) - 1; i \u003e= 0; i-- {\n\t\titem := page.Items[i]\n\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tid, _ := seqid.FromString(item.Key)\n\t\tout += ufmt.Sprintf(\"### Submission #%d\\n\\n\", int(id))\n\t\tout += item.Value.(*Item).Render(dashboard)\n\t\tout += \"\u003c/div\u003e\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-2 --\u003e\\n\\n\"\n\n\tout += page.Selector()\n\n\treturn out\n}\n\nfunc (i Item) Render(dashboard bool) string {\n\tout := ufmt.Sprintf(\"\\n```\\n%s\\n```\\n\\n\", i.pkgpath)\n\tout += ufmt.Sprintf(\"by %s\\n\\n\", strings.Split(i.pkgpath, \"/\")[2])\n\tout += ufmt.Sprintf(\"[View realm](%s)\\n\\n\", strings.TrimPrefix(i.pkgpath, \"gno.land\")) // gno.land/r/leon/home \u003e /r/leon/home\n\tout += ufmt.Sprintf(\"Submitted at Block #%d\\n\\n\", i.blockNum)\n\n\tout += ufmt.Sprintf(\"#### [%d👍](%s) - [%d👎](%s)\\n\\n\",\n\t\ti.upvote.Size(), txlink.Call(\"Upvote\", \"pkgpath\", i.pkgpath),\n\t\ti.downvote.Size(), txlink.Call(\"Downvote\", \"pkgpath\", i.pkgpath),\n\t)\n\n\tif dashboard {\n\t\tout += ufmt.Sprintf(\"[Delete](%s)\", txlink.Call(\"Delete\", \"pkgpath\", i.pkgpath))\n\t}\n\n\treturn out\n}\n\nfunc renderDashboard() string {\n\tout := \"---\\n\\n\"\n\tout += \"## Dashboard\\n\\n\"\n\tout += ufmt.Sprintf(\"Total submissions: %d\\n\\n\", exhibition.items.Size())\n\n\tout += ufmt.Sprintf(\"Exhibition admin: %s\\n\\n\", owner.Owner().String())\n\n\tif !exhibition.IsPaused() {\n\t\tout += ufmt.Sprintf(\"[Pause exhibition](%s)\\n\\n\", txlink.Call(\"Pause\"))\n\t} else {\n\t\tout += ufmt.Sprintf(\"[Unpause exhibition](%s)\\n\\n\", txlink.Call(\"Unpause\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\n\treturn out\n}\n\nfunc RenderExhibWidget(itemsToRender int) string {\n\tif itemsToRender \u003c 1 {\n\t\treturn \"\"\n\t}\n\n\tout := \"\"\n\ti := 0\n\texhibition.items.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\titem := value.(*Item)\n\n\t\tout += ufmt.Sprintf(\"- %s\\n\", fqname.RenderLink(item.pkgpath, \"\"))\n\n\t\ti++\n\t\treturn i \u003e= itemsToRender\n\t})\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LbWGblIEWU8NxtAUu7jE97HT29ENurEtKojjYxUh6N8RfIwcxnM6MuTSRHnSHkZqEFHdnYwrkJpBumIJddnhBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hof","path":"gno.land/r/leon/hof","files":[{"name":"administration.gno","body":"package hof\n\nimport \"std\"\n\n// Exposing the ownable \u0026 pausable APIs\n// Should not be needed as soon as MsgCall supports calling methods on exported variables\n\nfunc Pause() error {\n\treturn exhibition.Pause()\n}\n\nfunc Unpause() error {\n\treturn exhibition.Unpause()\n}\n\nfunc GetOwner() std.Address {\n\treturn owner.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := owner.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package hof\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrNoSuchItem = errors.New(\"hof: no such item exists\")\n\tErrDoubleUpvote = errors.New(\"hof: cannot upvote twice\")\n\tErrDoubleDownvote = errors.New(\"hof: cannot downvote twice\")\n)\n"},{"name":"hof.gno","body":"// Package hof is the hall of fame realm.\n// The Hall of Fame is an exhibition that holds items. Users can add their realms to the Hall of Fame by\n// importing the Hall of Fame realm and calling hof.Register() from their init function.\npackage hof\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/pausable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar (\n\texhibition *Exhibition\n\towner *ownable.Ownable\n)\n\ntype (\n\tExhibition struct {\n\t\titemCounter seqid.ID\n\t\tdescription string\n\t\titems *avl.Tree // pkgPath \u003e Item\n\t\titemsSorted *avl.Tree // same data but sorted, storing pointers\n\t\t*pausable.Pausable\n\t}\n\n\tItem struct {\n\t\tid seqid.ID\n\t\tpkgpath string\n\t\tblockNum int64\n\t\tupvote *avl.Tree // std.Addr \u003e struct{}{}\n\t\tdownvote *avl.Tree // std.Addr \u003e struct{}{}\n\t}\n)\n\nfunc init() {\n\texhibition = \u0026Exhibition{\n\t\titems: avl.NewTree(),\n\t\titemsSorted: avl.NewTree(),\n\t}\n\n\towner = ownable.NewWithAddress(std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"))\n\texhibition.Pausable = pausable.NewFromOwnable(owner)\n}\n\n// Register registers your realm to the Hall of Fame\n// Should be called from within code\nfunc Register() {\n\tif exhibition.IsPaused() {\n\t\treturn\n\t}\n\n\tsubmission := std.PrevRealm()\n\tpkgpath := submission.PkgPath()\n\n\t// Must be called from code\n\tif submission.IsUser() {\n\t\treturn\n\t}\n\n\t// Must not yet exist\n\tif exhibition.items.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tid := exhibition.itemCounter.Next()\n\ti := \u0026Item{\n\t\tid: id,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: std.GetHeight(),\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\n\texhibition.items.Set(pkgpath, i)\n\texhibition.itemsSorted.Set(id.String(), i)\n\n\tstd.Emit(\"Registration\")\n}\n\nfunc Upvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.upvote.Has(caller) {\n\t\tpanic(ErrDoubleUpvote.Error())\n\t}\n\n\titem.upvote.Set(caller, struct{}{})\n}\n\nfunc Downvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.downvote.Has(caller) {\n\t\tpanic(ErrDoubleDownvote.Error())\n\t}\n\n\titem.downvote.Set(caller, struct{}{})\n}\n\nfunc Delete(pkgpath string) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\ti, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.itemsSorted.Remove(i.(*Item).id.String()); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.items.Remove(pkgpath); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n}\n"},{"name":"hof_test.gno","body":"package hof\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nconst rlmPath = \"gno.land/r/gnoland/home\"\n\nvar (\n\tadmin = owner.Owner()\n\tadminRealm = std.NewUserRealm(admin)\n\talice = testutils.TestAddress(\"alice\")\n)\n\nfunc TestRegister(t *testing.T) {\n\t// Test user realm register\n\taliceRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(aliceRealm)\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Test register while paused\n\tstd.TestSetRealm(adminRealm)\n\tPause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Unpause\n\tstd.TestSetRealm(adminRealm)\n\tUnpause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\tRegister()\n\n\t// Find registered items\n\tuassert.True(t, itemExists(t, rlmPath))\n}\n\nfunc TestUpvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 upvotes by default\n\turequire.Equal(t, item.upvote.Size(), 0)\n\n\tstd.TestSetRealm(adminRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tUpvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.upvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.upvote.Size(), 1)\n\n\t// Check double upvote\n\tuassert.PanicsWithMessage(t, ErrDoubleUpvote.Error(), func() {\n\t\tUpvote(rlmPath)\n\t})\n}\n\nfunc TestDownvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 downvotes by default\n\turequire.Equal(t, item.downvote.Size(), 0)\n\n\tuserRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(userRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tDownvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.downvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.downvote.Size(), 1)\n\n\t// Check double downvote\n\tuassert.PanicsWithMessage(t, ErrDoubleDownvote.Error(), func() {\n\t\tDownvote(rlmPath)\n\t})\n}\n\nfunc TestDelete(t *testing.T) {\n\tuserRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(userRealm)\n\tstd.TestSetOrigCaller(admin)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchItem.Error(), func() {\n\t\tDelete(\"nonexistentpkgpath\")\n\t})\n\n\ti, _ := exhibition.items.Get(rlmPath)\n\tid := i.(*Item).id\n\n\tuassert.NotPanics(t, func() {\n\t\tDelete(rlmPath)\n\t})\n\n\tuassert.False(t, exhibition.items.Has(rlmPath))\n\tuassert.False(t, exhibition.itemsSorted.Has(id.String()))\n}\n\nfunc itemExists(t *testing.T, rlmPath string) bool {\n\tt.Helper()\n\n\ti, ok1 := exhibition.items.Get(rlmPath)\n\tok2 := false\n\n\tif ok1 {\n\t\t_, ok2 = exhibition.itemsSorted.Get(i.(*Item).id.String())\n\t}\n\n\treturn ok1 \u0026\u0026 ok2\n}\n"},{"name":"render.gno","body":"package hof\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst (\n\tpageSize = 5\n)\n\nfunc Render(path string) string {\n\tout := \"# Hall of Fame\\n\\n\"\n\n\tdashboardEnabled := path == \"dashboard\"\n\n\tif dashboardEnabled {\n\t\tout += renderDashboard()\n\t}\n\n\tout += exhibition.Render(path, dashboardEnabled)\n\n\treturn out\n}\n\nfunc (e Exhibition) Render(path string, dashboard bool) string {\n\tout := ufmt.Sprintf(\"%s\\n\\n\", e.description)\n\n\tif e.items.Size() == 0 {\n\t\tout += \"No items in this exhibition currently.\\n\\n\"\n\t\treturn out\n\t}\n\n\tout += \"\u003cdiv class='columns-2'\u003e\\n\\n\"\n\n\tpage := pager.NewPager(e.itemsSorted, pageSize).MustGetPageByPath(path)\n\n\tfor i := len(page.Items) - 1; i \u003e= 0; i-- {\n\t\titem := page.Items[i]\n\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tid, _ := seqid.FromString(item.Key)\n\t\tout += ufmt.Sprintf(\"### Submission #%d\\n\\n\", int(id))\n\t\tout += item.Value.(*Item).Render(dashboard)\n\t\tout += \"\u003c/div\u003e\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-2 --\u003e\\n\\n\"\n\n\tout += page.Selector()\n\n\treturn out\n}\n\nfunc (i Item) Render(dashboard bool) string {\n\tout := ufmt.Sprintf(\"\\n```\\n%s\\n```\\n\\n\", i.pkgpath)\n\tout += ufmt.Sprintf(\"by %s\\n\\n\", strings.Split(i.pkgpath, \"/\")[2])\n\tout += ufmt.Sprintf(\"[View realm](%s)\\n\\n\", strings.TrimPrefix(i.pkgpath, \"gno.land\")) // gno.land/r/leon/home \u003e /r/leon/home\n\tout += ufmt.Sprintf(\"Submitted at Block #%d\\n\\n\", i.blockNum)\n\n\tout += ufmt.Sprintf(\"#### [%d👍](%s) - [%d👎](%s)\\n\\n\",\n\t\ti.upvote.Size(), txlink.URL(\"Upvote\", \"pkgpath\", i.pkgpath),\n\t\ti.downvote.Size(), txlink.URL(\"Downvote\", \"pkgpath\", i.pkgpath),\n\t)\n\n\tif dashboard {\n\t\tout += ufmt.Sprintf(\"[Delete](%s)\", txlink.URL(\"Delete\", \"pkgpath\", i.pkgpath))\n\t}\n\n\treturn out\n}\n\nfunc renderDashboard() string {\n\tout := \"---\\n\\n\"\n\tout += \"## Dashboard\\n\\n\"\n\tout += ufmt.Sprintf(\"Total submissions: %d\\n\\n\", exhibition.items.Size())\n\n\tout += ufmt.Sprintf(\"Exhibition admin: %s\\n\\n\", owner.Owner().String())\n\n\tif !exhibition.IsPaused() {\n\t\tout += ufmt.Sprintf(\"[Pause exhibition](%s)\\n\\n\", txlink.URL(\"Pause\"))\n\t} else {\n\t\tout += ufmt.Sprintf(\"[Unpause exhibition](%s)\\n\\n\", txlink.URL(\"Unpause\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\n\treturn out\n}\n\nfunc RenderExhibWidget(itemsToRender int) string {\n\tif itemsToRender \u003c 1 {\n\t\treturn \"\"\n\t}\n\n\tout := \"\"\n\ti := 0\n\texhibition.items.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\titem := value.(*Item)\n\n\t\tout += ufmt.Sprintf(\"- %s\\n\", fqname.RenderLink(item.pkgpath, \"\"))\n\n\t\ti++\n\t\treturn i \u003e= itemsToRender\n\t})\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pgxKXSXznBuALUtyrt27qVKhwE1zu/Tvw23OUN+4Sr+npTwzFpv+PILsndiBCHV86+pKVEF7sOu3cZeokl6zDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hof","path":"gno.land/r/leon/hof","files":[{"name":"administration.gno","body":"package hof\n\nimport \"std\"\n\n// Exposing the ownable \u0026 pausable APIs\n// Should not be needed as soon as MsgCall supports calling methods on exported variables\n\nfunc Pause() error {\n\treturn exhibition.Pause()\n}\n\nfunc Unpause() error {\n\treturn exhibition.Unpause()\n}\n\nfunc GetOwner() std.Address {\n\treturn owner.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := owner.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package hof\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrNoSuchItem = errors.New(\"hof: no such item exists\")\n\tErrDoubleUpvote = errors.New(\"hof: cannot upvote twice\")\n\tErrDoubleDownvote = errors.New(\"hof: cannot downvote twice\")\n)\n"},{"name":"hof.gno","body":"// Package hof is the hall of fame realm.\n// The Hall of Fame is an exhibition that holds items. Users can add their realms to the Hall of Fame by\n// importing the Hall of Fame realm and calling hof.Register() from their init function.\npackage hof\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/pausable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar (\n\texhibition *Exhibition\n\towner *ownable.Ownable\n)\n\ntype (\n\tExhibition struct {\n\t\titemCounter seqid.ID\n\t\tdescription string\n\t\titems *avl.Tree // pkgPath \u003e Item\n\t\titemsSorted *avl.Tree // same data but sorted, storing pointers\n\t\t*pausable.Pausable\n\t}\n\n\tItem struct {\n\t\tid seqid.ID\n\t\tpkgpath string\n\t\tblockNum int64\n\t\tupvote *avl.Tree // std.Addr \u003e struct{}{}\n\t\tdownvote *avl.Tree // std.Addr \u003e struct{}{}\n\t}\n)\n\nfunc init() {\n\texhibition = \u0026Exhibition{\n\t\titems: avl.NewTree(),\n\t\titemsSorted: avl.NewTree(),\n\t}\n\n\towner = ownable.NewWithAddress(std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"))\n\texhibition.Pausable = pausable.NewFromOwnable(owner)\n}\n\n// Register registers your realm to the Hall of Fame\n// Should be called from within code\nfunc Register() {\n\tif exhibition.IsPaused() {\n\t\treturn\n\t}\n\n\tsubmission := std.PrevRealm()\n\tpkgpath := submission.PkgPath()\n\n\t// Must be called from code\n\tif submission.IsUser() {\n\t\treturn\n\t}\n\n\t// Must not yet exist\n\tif exhibition.items.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tid := exhibition.itemCounter.Next()\n\ti := \u0026Item{\n\t\tid: id,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: std.GetHeight(),\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\n\texhibition.items.Set(pkgpath, i)\n\texhibition.itemsSorted.Set(id.String(), i)\n\n\tstd.Emit(\"Registration\")\n}\n\nfunc Upvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.upvote.Has(caller) {\n\t\tpanic(ErrDoubleUpvote.Error())\n\t}\n\n\titem.upvote.Set(caller, struct{}{})\n}\n\nfunc Downvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.downvote.Has(caller) {\n\t\tpanic(ErrDoubleDownvote.Error())\n\t}\n\n\titem.downvote.Set(caller, struct{}{})\n}\n\nfunc Delete(pkgpath string) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\ti, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.itemsSorted.Remove(i.(*Item).id.String()); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.items.Remove(pkgpath); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n}\n"},{"name":"hof_test.gno","body":"package hof\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nconst rlmPath = \"gno.land/r/gnoland/home\"\n\nvar (\n\tadmin = owner.Owner()\n\tadminRealm = std.NewUserRealm(admin)\n\talice = testutils.TestAddress(\"alice\")\n)\n\nfunc TestRegister(t *testing.T) {\n\t// Test user realm register\n\taliceRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(aliceRealm)\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Test register while paused\n\tstd.TestSetRealm(adminRealm)\n\tPause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Unpause\n\tstd.TestSetRealm(adminRealm)\n\tUnpause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\tRegister()\n\n\t// Find registered items\n\tuassert.True(t, itemExists(t, rlmPath))\n}\n\nfunc TestUpvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 upvotes by default\n\turequire.Equal(t, item.upvote.Size(), 0)\n\n\tstd.TestSetRealm(adminRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tUpvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.upvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.upvote.Size(), 1)\n\n\t// Check double upvote\n\tuassert.PanicsWithMessage(t, ErrDoubleUpvote.Error(), func() {\n\t\tUpvote(rlmPath)\n\t})\n}\n\nfunc TestDownvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 downvotes by default\n\turequire.Equal(t, item.downvote.Size(), 0)\n\n\tuserRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(userRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tDownvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.downvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.downvote.Size(), 1)\n\n\t// Check double downvote\n\tuassert.PanicsWithMessage(t, ErrDoubleDownvote.Error(), func() {\n\t\tDownvote(rlmPath)\n\t})\n}\n\nfunc TestDelete(t *testing.T) {\n\tuserRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(userRealm)\n\tstd.TestSetOrigCaller(admin)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchItem.Error(), func() {\n\t\tDelete(\"nonexistentpkgpath\")\n\t})\n\n\ti, _ := exhibition.items.Get(rlmPath)\n\tid := i.(*Item).id\n\n\tuassert.NotPanics(t, func() {\n\t\tDelete(rlmPath)\n\t})\n\n\tuassert.False(t, exhibition.items.Has(rlmPath))\n\tuassert.False(t, exhibition.itemsSorted.Has(id.String()))\n}\n\nfunc itemExists(t *testing.T, rlmPath string) bool {\n\tt.Helper()\n\n\ti, ok1 := exhibition.items.Get(rlmPath)\n\tok2 := false\n\n\tif ok1 {\n\t\t_, ok2 = exhibition.itemsSorted.Get(i.(*Item).id.String())\n\t}\n\n\treturn ok1 \u0026\u0026 ok2\n}\n"},{"name":"render.gno","body":"package hof\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst (\n\tpageSize = 5\n)\n\nfunc Render(path string) string {\n\tout := \"# Hall of Fame\\n\\n\"\n\n\tdashboardEnabled := path == \"dashboard\"\n\n\tif dashboardEnabled {\n\t\tout += renderDashboard()\n\t}\n\n\tout += exhibition.Render(path, dashboardEnabled)\n\n\treturn out\n}\n\nfunc (e Exhibition) Render(path string, dashboard bool) string {\n\tout := ufmt.Sprintf(\"%s\\n\\n\", e.description)\n\n\tif e.items.Size() == 0 {\n\t\tout += \"No items in this exhibition currently.\\n\\n\"\n\t\treturn out\n\t}\n\n\tout += \"\u003cdiv class='columns-2'\u003e\\n\\n\"\n\n\tpage := pager.NewPager(e.itemsSorted, pageSize).MustGetPageByPath(path)\n\n\tfor i := len(page.Items) - 1; i \u003e= 0; i-- {\n\t\titem := page.Items[i]\n\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tid, _ := seqid.FromString(item.Key)\n\t\tout += ufmt.Sprintf(\"### Submission #%d\\n\\n\", int(id))\n\t\tout += item.Value.(*Item).Render(dashboard)\n\t\tout += \"\u003c/div\u003e\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-2 --\u003e\\n\\n\"\n\n\tout += page.Selector()\n\n\treturn out\n}\n\nfunc (i Item) Render(dashboard bool) string {\n\tout := ufmt.Sprintf(\"\\n```\\n%s\\n```\\n\\n\", i.pkgpath)\n\tout += ufmt.Sprintf(\"by %s\\n\\n\", strings.Split(i.pkgpath, \"/\")[2])\n\tout += ufmt.Sprintf(\"[View realm](%s)\\n\\n\", strings.TrimPrefix(i.pkgpath, \"gno.land\")) // gno.land/r/leon/home \u003e /r/leon/home\n\tout += ufmt.Sprintf(\"Submitted at Block #%d\\n\\n\", i.blockNum)\n\n\tout += ufmt.Sprintf(\"#### [%d👍](%s) - [%d👎](%s)\\n\\n\",\n\t\ti.upvote.Size(), txlink.URL(\"Upvote\", \"pkgpath\", i.pkgpath),\n\t\ti.downvote.Size(), txlink.URL(\"Downvote\", \"pkgpath\", i.pkgpath),\n\t)\n\n\tif dashboard {\n\t\tout += ufmt.Sprintf(\"[Delete](%s)\", txlink.URL(\"Delete\", \"pkgpath\", i.pkgpath))\n\t}\n\n\treturn out\n}\n\nfunc renderDashboard() string {\n\tout := \"---\\n\\n\"\n\tout += \"## Dashboard\\n\\n\"\n\tout += ufmt.Sprintf(\"Total submissions: %d\\n\\n\", exhibition.items.Size())\n\n\tout += ufmt.Sprintf(\"Exhibition admin: %s\\n\\n\", owner.Owner().String())\n\n\tif !exhibition.IsPaused() {\n\t\tout += ufmt.Sprintf(\"[Pause exhibition](%s)\\n\\n\", txlink.URL(\"Pause\"))\n\t} else {\n\t\tout += ufmt.Sprintf(\"[Unpause exhibition](%s)\\n\\n\", txlink.URL(\"Unpause\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\n\treturn out\n}\n\nfunc RenderExhibWidget(itemsToRender int) string {\n\tif itemsToRender \u003c 1 {\n\t\treturn \"\"\n\t}\n\n\tout := \"\"\n\ti := 0\n\texhibition.items.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\titem := value.(*Item)\n\n\t\tout += ufmt.Sprintf(\"- %s\\n\", fqname.RenderLink(item.pkgpath, \"\"))\n\n\t\ti++\n\t\treturn i \u003e= itemsToRender\n\t})\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pgxKXSXznBuALUtyrt27qVKhwE1zu/Tvw23OUN+4Sr+npTwzFpv+PILsndiBCHV86+pKVEF7sOu3cZeokl6zDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hof","path":"gno.land/r/leon/hof","files":[{"name":"administration.gno","body":"package hof\n\nimport \"std\"\n\n// Exposing the ownable \u0026 pausable APIs\n// Should not be needed as soon as MsgCall supports calling methods on exported variables\n\nfunc Pause() error {\n\treturn exhibition.Pause()\n}\n\nfunc Unpause() error {\n\treturn exhibition.Unpause()\n}\n\nfunc GetOwner() std.Address {\n\treturn owner.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := owner.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package hof\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrNoSuchItem = errors.New(\"hof: no such item exists\")\n\tErrDoubleUpvote = errors.New(\"hof: cannot upvote twice\")\n\tErrDoubleDownvote = errors.New(\"hof: cannot downvote twice\")\n)\n"},{"name":"hof.gno","body":"// Package hof is the hall of fame realm.\n// The Hall of Fame is an exhibition that holds items. Users can add their realms to the Hall of Fame by\n// importing the Hall of Fame realm and calling hof.Register() from their init function.\npackage hof\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/pausable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar (\n\texhibition *Exhibition\n\towner *ownable.Ownable\n)\n\ntype (\n\tExhibition struct {\n\t\titemCounter seqid.ID\n\t\tdescription string\n\t\titems *avl.Tree // pkgPath \u003e Item\n\t\titemsSorted *avl.Tree // same data but sorted, storing pointers\n\t\t*pausable.Pausable\n\t}\n\n\tItem struct {\n\t\tid seqid.ID\n\t\tpkgpath string\n\t\tblockNum int64\n\t\tupvote *avl.Tree // std.Addr \u003e struct{}{}\n\t\tdownvote *avl.Tree // std.Addr \u003e struct{}{}\n\t}\n)\n\nfunc init() {\n\texhibition = \u0026Exhibition{\n\t\titems: avl.NewTree(),\n\t\titemsSorted: avl.NewTree(),\n\t}\n\n\towner = ownable.NewWithAddress(std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"))\n\texhibition.Pausable = pausable.NewFromOwnable(owner)\n}\n\n// Register registers your realm to the Hall of Fame\n// Should be called from within code\nfunc Register() {\n\tif exhibition.IsPaused() {\n\t\treturn\n\t}\n\n\tsubmission := std.PrevRealm()\n\tpkgpath := submission.PkgPath()\n\n\t// Must be called from code\n\tif submission.IsUser() {\n\t\treturn\n\t}\n\n\t// Must not yet exist\n\tif exhibition.items.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tid := exhibition.itemCounter.Next()\n\ti := \u0026Item{\n\t\tid: id,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: std.GetHeight(),\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\n\texhibition.items.Set(pkgpath, i)\n\texhibition.itemsSorted.Set(id.String(), i)\n\n\tstd.Emit(\"Registration\")\n}\n\nfunc Upvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.upvote.Has(caller) {\n\t\tpanic(ErrDoubleUpvote.Error())\n\t}\n\n\titem.upvote.Set(caller, struct{}{})\n}\n\nfunc Downvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.downvote.Has(caller) {\n\t\tpanic(ErrDoubleDownvote.Error())\n\t}\n\n\titem.downvote.Set(caller, struct{}{})\n}\n\nfunc Delete(pkgpath string) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\ti, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.itemsSorted.Remove(i.(*Item).id.String()); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.items.Remove(pkgpath); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n}\n"},{"name":"hof_test.gno","body":"package hof\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nconst rlmPath = \"gno.land/r/gnoland/home\"\n\nvar (\n\tadmin = owner.Owner()\n\tadminRealm = std.NewUserRealm(admin)\n\talice = testutils.TestAddress(\"alice\")\n)\n\nfunc TestRegister(t *testing.T) {\n\t// Test user realm register\n\taliceRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(aliceRealm)\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Test register while paused\n\tstd.TestSetRealm(adminRealm)\n\tPause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Unpause\n\tstd.TestSetRealm(adminRealm)\n\tUnpause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\tRegister()\n\n\t// Find registered items\n\tuassert.True(t, itemExists(t, rlmPath))\n}\n\nfunc TestUpvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 upvotes by default\n\turequire.Equal(t, item.upvote.Size(), 0)\n\n\tstd.TestSetRealm(adminRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tUpvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.upvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.upvote.Size(), 1)\n\n\t// Check double upvote\n\tuassert.PanicsWithMessage(t, ErrDoubleUpvote.Error(), func() {\n\t\tUpvote(rlmPath)\n\t})\n}\n\nfunc TestDownvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 downvotes by default\n\turequire.Equal(t, item.downvote.Size(), 0)\n\n\tuserRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(userRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tDownvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.downvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.downvote.Size(), 1)\n\n\t// Check double downvote\n\tuassert.PanicsWithMessage(t, ErrDoubleDownvote.Error(), func() {\n\t\tDownvote(rlmPath)\n\t})\n}\n\nfunc TestDelete(t *testing.T) {\n\tuserRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(userRealm)\n\tstd.TestSetOrigCaller(admin)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchItem.Error(), func() {\n\t\tDelete(\"nonexistentpkgpath\")\n\t})\n\n\ti, _ := exhibition.items.Get(rlmPath)\n\tid := i.(*Item).id\n\n\tuassert.NotPanics(t, func() {\n\t\tDelete(rlmPath)\n\t})\n\n\tuassert.False(t, exhibition.items.Has(rlmPath))\n\tuassert.False(t, exhibition.itemsSorted.Has(id.String()))\n}\n\nfunc itemExists(t *testing.T, rlmPath string) bool {\n\tt.Helper()\n\n\ti, ok1 := exhibition.items.Get(rlmPath)\n\tok2 := false\n\n\tif ok1 {\n\t\t_, ok2 = exhibition.itemsSorted.Get(i.(*Item).id.String())\n\t}\n\n\treturn ok1 \u0026\u0026 ok2\n}\n"},{"name":"render.gno","body":"package hof\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst (\n\tpageSize = 5\n)\n\nfunc Render(path string) string {\n\tout := \"# Hall of Fame\\n\\n\"\n\n\tdashboardEnabled := path == \"dashboard\"\n\n\tif dashboardEnabled {\n\t\tout += renderDashboard()\n\t}\n\n\tout += exhibition.Render(path, dashboardEnabled)\n\n\treturn out\n}\n\nfunc (e Exhibition) Render(path string, dashboard bool) string {\n\tout := ufmt.Sprintf(\"%s\\n\\n\", e.description)\n\n\tif e.items.Size() == 0 {\n\t\tout += \"No items in this exhibition currently.\\n\\n\"\n\t\treturn out\n\t}\n\n\tout += \"\u003cdiv class='columns-2'\u003e\\n\\n\"\n\n\tpage := pager.NewPager(e.itemsSorted, pageSize).MustGetPageByPath(path)\n\n\tfor i := len(page.Items) - 1; i \u003e= 0; i-- {\n\t\titem := page.Items[i]\n\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tid, _ := seqid.FromString(item.Key)\n\t\tout += ufmt.Sprintf(\"### Submission #%d\\n\\n\", int(id))\n\t\tout += item.Value.(*Item).Render(dashboard)\n\t\tout += \"\u003c/div\u003e\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-2 --\u003e\\n\\n\"\n\n\tout += page.Selector()\n\n\treturn out\n}\n\nfunc (i Item) Render(dashboard bool) string {\n\tout := ufmt.Sprintf(\"\\n```\\n%s\\n```\\n\\n\", i.pkgpath)\n\tout += ufmt.Sprintf(\"by %s\\n\\n\", strings.Split(i.pkgpath, \"/\")[2])\n\tout += ufmt.Sprintf(\"[View realm](%s)\\n\\n\", strings.TrimPrefix(i.pkgpath, \"gno.land\")) // gno.land/r/leon/home \u003e /r/leon/home\n\tout += ufmt.Sprintf(\"Submitted at Block #%d\\n\\n\", i.blockNum)\n\n\tout += ufmt.Sprintf(\"#### [%d👍](%s) - [%d👎](%s)\\n\\n\",\n\t\ti.upvote.Size(), txlink.URL(\"Upvote\", \"pkgpath\", i.pkgpath),\n\t\ti.downvote.Size(), txlink.URL(\"Downvote\", \"pkgpath\", i.pkgpath),\n\t)\n\n\tif dashboard {\n\t\tout += ufmt.Sprintf(\"[Delete](%s)\", txlink.URL(\"Delete\", \"pkgpath\", i.pkgpath))\n\t}\n\n\treturn out\n}\n\nfunc renderDashboard() string {\n\tout := \"---\\n\\n\"\n\tout += \"## Dashboard\\n\\n\"\n\tout += ufmt.Sprintf(\"Total submissions: %d\\n\\n\", exhibition.items.Size())\n\n\tout += ufmt.Sprintf(\"Exhibition admin: %s\\n\\n\", owner.Owner().String())\n\n\tif !exhibition.IsPaused() {\n\t\tout += ufmt.Sprintf(\"[Pause exhibition](%s)\\n\\n\", txlink.URL(\"Pause\"))\n\t} else {\n\t\tout += ufmt.Sprintf(\"[Unpause exhibition](%s)\\n\\n\", txlink.URL(\"Unpause\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\n\treturn out\n}\n\nfunc RenderExhibWidget(itemsToRender int) string {\n\tif itemsToRender \u003c 1 {\n\t\treturn \"\"\n\t}\n\n\tout := \"\"\n\ti := 0\n\texhibition.items.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\titem := value.(*Item)\n\n\t\tout += ufmt.Sprintf(\"- %s\\n\", fqname.RenderLink(item.pkgpath, \"\"))\n\n\t\ti++\n\t\treturn i \u003e= itemsToRender\n\t})\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pgxKXSXznBuALUtyrt27qVKhwE1zu/Tvw23OUN+4Sr+npTwzFpv+PILsndiBCHV86+pKVEF7sOu3cZeokl6zDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"hof","path":"gno.land/r/leon/hof","files":[{"name":"administration.gno","body":"package hof\n\nimport \"std\"\n\n// Exposing the ownable \u0026 pausable APIs\n// Should not be needed as soon as MsgCall supports calling methods on exported variables\n\nfunc Pause() error {\n\treturn exhibition.Pause()\n}\n\nfunc Unpause() error {\n\treturn exhibition.Unpause()\n}\n\nfunc GetOwner() std.Address {\n\treturn owner.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := owner.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"errors.gno","body":"package hof\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrNoSuchItem = errors.New(\"hof: no such item exists\")\n\tErrDoubleUpvote = errors.New(\"hof: cannot upvote twice\")\n\tErrDoubleDownvote = errors.New(\"hof: cannot downvote twice\")\n)\n"},{"name":"hof.gno","body":"// Package hof is the hall of fame realm.\n// The Hall of Fame is an exhibition that holds items. Users can add their realms to the Hall of Fame by\n// importing the Hall of Fame realm and calling hof.Register() from their init function.\npackage hof\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/pausable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar (\n\texhibition *Exhibition\n\towner *ownable.Ownable\n)\n\ntype (\n\tExhibition struct {\n\t\titemCounter seqid.ID\n\t\tdescription string\n\t\titems *avl.Tree // pkgPath \u003e Item\n\t\titemsSorted *avl.Tree // same data but sorted, storing pointers\n\t\t*pausable.Pausable\n\t}\n\n\tItem struct {\n\t\tid seqid.ID\n\t\tpkgpath string\n\t\tblockNum int64\n\t\tupvote *avl.Tree // std.Addr \u003e struct{}{}\n\t\tdownvote *avl.Tree // std.Addr \u003e struct{}{}\n\t}\n)\n\nfunc init() {\n\texhibition = \u0026Exhibition{\n\t\titems: avl.NewTree(),\n\t\titemsSorted: avl.NewTree(),\n\t}\n\n\towner = ownable.NewWithAddress(std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"))\n\texhibition.Pausable = pausable.NewFromOwnable(owner)\n}\n\n// Register registers your realm to the Hall of Fame\n// Should be called from within code\nfunc Register() {\n\tif exhibition.IsPaused() {\n\t\treturn\n\t}\n\n\tsubmission := std.PrevRealm()\n\tpkgpath := submission.PkgPath()\n\n\t// Must be called from code\n\tif submission.IsUser() {\n\t\treturn\n\t}\n\n\t// Must not yet exist\n\tif exhibition.items.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tid := exhibition.itemCounter.Next()\n\ti := \u0026Item{\n\t\tid: id,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: std.GetHeight(),\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\n\texhibition.items.Set(pkgpath, i)\n\texhibition.itemsSorted.Set(id.String(), i)\n\n\tstd.Emit(\"Registration\")\n}\n\nfunc Upvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.upvote.Has(caller) {\n\t\tpanic(ErrDoubleUpvote.Error())\n\t}\n\n\titem.upvote.Set(caller, struct{}{})\n}\n\nfunc Downvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.downvote.Has(caller) {\n\t\tpanic(ErrDoubleDownvote.Error())\n\t}\n\n\titem.downvote.Set(caller, struct{}{})\n}\n\nfunc Delete(pkgpath string) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\ti, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.itemsSorted.Remove(i.(*Item).id.String()); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.items.Remove(pkgpath); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n}\n"},{"name":"hof_test.gno","body":"package hof\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nconst rlmPath = \"gno.land/r/gnoland/home\"\n\nvar (\n\tadmin = owner.Owner()\n\tadminRealm = std.NewUserRealm(admin)\n\talice = testutils.TestAddress(\"alice\")\n)\n\nfunc TestRegister(t *testing.T) {\n\t// Test user realm register\n\taliceRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(aliceRealm)\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Test register while paused\n\tstd.TestSetRealm(adminRealm)\n\tPause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Unpause\n\tstd.TestSetRealm(adminRealm)\n\tUnpause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\tRegister()\n\n\t// Find registered items\n\tuassert.True(t, itemExists(t, rlmPath))\n}\n\nfunc TestUpvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 upvotes by default\n\turequire.Equal(t, item.upvote.Size(), 0)\n\n\tstd.TestSetRealm(adminRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tUpvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.upvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.upvote.Size(), 1)\n\n\t// Check double upvote\n\tuassert.PanicsWithMessage(t, ErrDoubleUpvote.Error(), func() {\n\t\tUpvote(rlmPath)\n\t})\n}\n\nfunc TestDownvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 downvotes by default\n\turequire.Equal(t, item.downvote.Size(), 0)\n\n\tuserRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(userRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tDownvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.downvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.downvote.Size(), 1)\n\n\t// Check double downvote\n\tuassert.PanicsWithMessage(t, ErrDoubleDownvote.Error(), func() {\n\t\tDownvote(rlmPath)\n\t})\n}\n\nfunc TestDelete(t *testing.T) {\n\tuserRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(userRealm)\n\tstd.TestSetOrigCaller(admin)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchItem.Error(), func() {\n\t\tDelete(\"nonexistentpkgpath\")\n\t})\n\n\ti, _ := exhibition.items.Get(rlmPath)\n\tid := i.(*Item).id\n\n\tuassert.NotPanics(t, func() {\n\t\tDelete(rlmPath)\n\t})\n\n\tuassert.False(t, exhibition.items.Has(rlmPath))\n\tuassert.False(t, exhibition.itemsSorted.Has(id.String()))\n}\n\nfunc itemExists(t *testing.T, rlmPath string) bool {\n\tt.Helper()\n\n\ti, ok1 := exhibition.items.Get(rlmPath)\n\tok2 := false\n\n\tif ok1 {\n\t\t_, ok2 = exhibition.itemsSorted.Get(i.(*Item).id.String())\n\t}\n\n\treturn ok1 \u0026\u0026 ok2\n}\n"},{"name":"render.gno","body":"package hof\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst (\n\tpageSize = 5\n)\n\nfunc Render(path string) string {\n\tout := \"# Hall of Fame\\n\\n\"\n\n\tdashboardEnabled := path == \"dashboard\"\n\n\tif dashboardEnabled {\n\t\tout += renderDashboard()\n\t}\n\n\tout += exhibition.Render(path, dashboardEnabled)\n\n\treturn out\n}\n\nfunc (e Exhibition) Render(path string, dashboard bool) string {\n\tout := ufmt.Sprintf(\"%s\\n\\n\", e.description)\n\n\tif e.items.Size() == 0 {\n\t\tout += \"No items in this exhibition currently.\\n\\n\"\n\t\treturn out\n\t}\n\n\tout += \"\u003cdiv class='columns-2'\u003e\\n\\n\"\n\n\tpage := pager.NewPager(e.itemsSorted, pageSize, false).MustGetPageByPath(path)\n\n\tfor i := len(page.Items) - 1; i \u003e= 0; i-- {\n\t\titem := page.Items[i]\n\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tid, _ := seqid.FromString(item.Key)\n\t\tout += ufmt.Sprintf(\"### Submission #%d\\n\\n\", int(id))\n\t\tout += item.Value.(*Item).Render(dashboard)\n\t\tout += \"\u003c/div\u003e\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-2 --\u003e\\n\\n\"\n\n\tout += page.Picker()\n\n\treturn out\n}\n\nfunc (i Item) Render(dashboard bool) string {\n\tout := ufmt.Sprintf(\"\\n```\\n%s\\n```\\n\\n\", i.pkgpath)\n\tout += ufmt.Sprintf(\"by %s\\n\\n\", strings.Split(i.pkgpath, \"/\")[2])\n\tout += ufmt.Sprintf(\"[View realm](%s)\\n\\n\", strings.TrimPrefix(i.pkgpath, \"gno.land\")) // gno.land/r/leon/home \u003e /r/leon/home\n\tout += ufmt.Sprintf(\"Submitted at Block #%d\\n\\n\", i.blockNum)\n\n\tout += ufmt.Sprintf(\"#### [%d👍](%s) - [%d👎](%s)\\n\\n\",\n\t\ti.upvote.Size(), txlink.Call(\"Upvote\", \"pkgpath\", i.pkgpath),\n\t\ti.downvote.Size(), txlink.Call(\"Downvote\", \"pkgpath\", i.pkgpath),\n\t)\n\n\tif dashboard {\n\t\tout += ufmt.Sprintf(\"[Delete](%s)\", txlink.Call(\"Delete\", \"pkgpath\", i.pkgpath))\n\t}\n\n\treturn out\n}\n\nfunc renderDashboard() string {\n\tout := \"---\\n\\n\"\n\tout += \"## Dashboard\\n\\n\"\n\tout += ufmt.Sprintf(\"Total submissions: %d\\n\\n\", exhibition.items.Size())\n\n\tout += ufmt.Sprintf(\"Exhibition admin: %s\\n\\n\", owner.Owner().String())\n\n\tif !exhibition.IsPaused() {\n\t\tout += ufmt.Sprintf(\"[Pause exhibition](%s)\\n\\n\", txlink.Call(\"Pause\"))\n\t} else {\n\t\tout += ufmt.Sprintf(\"[Unpause exhibition](%s)\\n\\n\", txlink.Call(\"Unpause\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\n\treturn out\n}\n\nfunc RenderExhibWidget(itemsToRender int) string {\n\tif itemsToRender \u003c 1 {\n\t\treturn \"\"\n\t}\n\n\tout := \"\"\n\ti := 0\n\texhibition.items.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\titem := value.(*Item)\n\n\t\tout += ufmt.Sprintf(\"- %s\\n\", fqname.RenderLink(item.pkgpath, \"\"))\n\n\t\ti++\n\t\treturn i \u003e= itemsToRender\n\t})\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vhYZDEyspkAOFe/3fMIZw2F0zVBdb77VXqVWZgd9XNFVsvRfUO5GyHNahe44VCmlxy8DMlx0LZe0dpBBSyN+AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/gnoland/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/ui\"\n\tblog \"gno.land/r/gnoland/blog\"\n\tevents \"gno.land/r/gnoland/events\"\n\t\"gno.land/r/leon/hof\"\n)\n\n// XXX: p/demo/ui API is crappy, we need to make it more idiomatic\n// XXX: use an updatable block system to update content from a DAO\n// XXX: var blocks avl.Tree\n\nvar (\n\toverride string\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred by default\n)\n\nfunc Render(_ string) string {\n\tif override != \"\" {\n\t\treturn override\n\t}\n\n\tdom := ui.DOM{Prefix: \"r/gnoland/home:\"}\n\tdom.Title = \"Welcome to gno.land\"\n\tdom.Classes = []string{\"gno-tmpl-section\"}\n\n\t// body\n\tdom.Body.Append(introSection()...)\n\n\tdom.Body.Append(ui.Jumbotron(discoverLinks()))\n\n\tdom.Body.Append(\n\t\tui.Columns{3, []ui.Element{\n\t\t\tlastBlogposts(4),\n\t\t\tupcomingEvents(),\n\t\t\tlatestHOFItems(5),\n\t\t}},\n\t)\n\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(playgroundSection()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(packageStaffPicks()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(worxDAO()...)\n\tdom.Body.Append(ui.HR{})\n\t// footer\n\tdom.Footer.Append(\n\t\tui.Columns{2, []ui.Element{\n\t\t\tsocialLinks(),\n\t\t\tquoteOfTheBlock(),\n\t\t}},\n\t)\n\n\t// Testnet disclaimer\n\tdom.Footer.Append(\n\t\tui.HR{},\n\t\tui.Bold(\"This is a testnet.\"),\n\t\tui.Text(\"Package names are not guaranteed to be available for production.\"),\n\t)\n\n\treturn dom.String()\n}\n\nfunc lastBlogposts(limit int) ui.Element {\n\tposts := blog.RenderLastPostsWidget(limit)\n\treturn ui.Element{\n\t\tui.H3(\"[Latest Blogposts](/r/gnoland/blog)\"),\n\t\tui.Text(posts),\n\t}\n}\n\nfunc lastContributions(limit int) ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"Latest Contributions\"),\n\t\t// TODO: import r/gh to\n\t\tui.Link{Text: \"View latest contributions\", URL: \"https://github.com/gnolang/gno/pulls\"},\n\t}\n}\n\nfunc upcomingEvents() ui.Element {\n\tout, _ := events.RenderEventWidget(events.MaxWidgetSize)\n\treturn ui.Element{\n\t\tui.H3(\"[Latest Events](/r/gnoland/events)\"),\n\t\tui.Text(out),\n\t}\n}\n\nfunc latestHOFItems(num int) ui.Element {\n\tsubmissions := hof.RenderExhibWidget(num)\n\n\treturn ui.Element{\n\t\tui.H3(\"[Hall of Fame](/r/demo/hof)\"),\n\t\tui.Text(submissions),\n\t}\n}\n\nfunc introSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.\"),\n\t\tui.Paragraph(\"With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\"),\n\t\tui.Paragraph(\"Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\"),\n\t}\n}\n\nfunc worxDAO() ui.Element {\n\t// WorxDAO\n\t// XXX(manfred): please, let me finish a v0, then we can iterate\n\t// highest level == highest responsibility\n\t// teams are responsible for components they don't owne\n\t// flag : realm maintainers VS facilitators\n\t// teams\n\t// committee of trustees to create the directory\n\t// each directory is a name, has a parent and have groups\n\t// homepage team - blocks aggregating events\n\t// XXX: TODO\n\t/*`\n\t# Directory\n\n\t* gno.land (owned by group)\n\t *\n\t* gnovm\n\t * gnolang (language)\n\t * gnovm\n\t - current challenges / concerns / issues\n\t* tm2\n\t * amino\n\t *\n\n\t## Contributors\n\t``*/\n\treturn ui.Element{\n\t\tui.H3(\"Contributions (WorxDAO \u0026 GoR)\"),\n\t\t// TODO: GoR dashboard + WorxDAO topics\n\t\tui.Text(`coming soon`),\n\t}\n}\n\nfunc quoteOfTheBlock() ui.Element {\n\tquotes := []string{\n\t\t\"Gno is for Truth.\",\n\t\t\"Gno is for Social Coordination.\",\n\t\t\"Gno is _not only_ for DeFi.\",\n\t\t\"Now, you Gno.\",\n\t\t\"Come for the Go, Stay for the Gno.\",\n\t}\n\theight := std.GetHeight()\n\tidx := int(height) % len(quotes)\n\tqotb := quotes[idx]\n\n\treturn ui.Element{\n\t\tui.H3(ufmt.Sprintf(\"Quote of the ~Day~ Block#%d\", height)),\n\t\tui.Quote(qotb),\n\t}\n}\n\nfunc socialLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"Socials\"),\n\t\tui.BulletList{\n\t\t\t// XXX: improve UI to support a nice GO api for such links\n\t\t\tui.Text(\"Check out our [community projects](https://github.com/gnolang/awesome-gno)\"),\n\t\t\tui.Text(\"![Discord](static/img/ico-discord.svg) [Discord](https://discord.gg/S8nKUqwkPn)\"),\n\t\t\tui.Text(\"![Twitter](static/img/ico-twitter.svg) [Twitter](https://twitter.com/_gnoland)\"),\n\t\t\tui.Text(\"![Youtube](static/img/ico-youtube.svg) [Youtube](https://www.youtube.com/@_gnoland)\"),\n\t\t\tui.Text(\"![Telegram](static/img/ico-telegram.svg) [Telegram](https://t.me/gnoland)\"),\n\t\t},\n\t}\n}\n\nfunc playgroundSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"[Gno Playground](https://play.gno.land)\"),\n\t\tui.Paragraph(`Gno Playground is a web application designed for building, running, testing, and interacting\nwith your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\nexecute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.`),\n\t\tui.Paragraph(\"Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\"),\n\t}\n}\n\nfunc packageStaffPicks() ui.Element {\n\t// XXX: make it modifiable from a DAO\n\treturn ui.Element{\n\t\tui.H3(\"Explore New Packages and Realms\"),\n\t\tui.Columns{\n\t\t\t3,\n\t\t\t[]ui.Element{\n\t\t\t\t{\n\t\t\t\t\tui.H4(\"[r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/dao\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/faucet\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/home\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/pages\"},\n\t\t\t\t\t},\n\t\t\t\t\tui.H4(\"[r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/sys/names\"},\n\t\t\t\t\t\tui.Link{URL: \"r/sys/rewards\"},\n\t\t\t\t\t\tui.Link{URL: \"/r/sys/validators/v2\"},\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H4(\"[r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/demo/boards\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/users\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/banktest\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo20\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo721\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/microblog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/nft\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/types\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/gnoface\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/millipede\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/groups\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H4(\"[p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"p/demo/avl\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ui\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ufmt\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/merkle\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/bf\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/flow\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/gnode\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc20\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc721\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc discoverLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.Text(`\u003cdiv class=\"columns-3\"\u003e\n\u003cdiv class=\"column\"\u003e\n\n### Learn about gno.land\n\n- [About](/about)\n- [GitHub](https://github.com/gnolang)\n- [Blog](/blog)\n- [Events](/events)\n- Tokenomics (soon)\n- [Partners, Fund, Grants](/partners)\n- [Explore the Ecosystem](/ecosystem)\n- [Careers](https://jobs.ashbyhq.com/allinbits)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\n\u003cdiv class=\"column\"\u003e\n\n### Build with Gno\n\n- [Write Gno in the browser](https://play.gno.land)\n- [Read about the Gno Language](/gnolang)\n- [Visit the official documentation](https://docs.gno.land)\n- [Gno by Example](https://gno-by-example.com/)\n- [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n- [Get testnet GNOTs](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003cdiv class=\"column\"\u003e\n\n### Explore the universe\n\n- [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n- [Gnoscan](https://gnoscan.io)\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n- [Testnet 4](https://test4.gno.land/)\n- [Faucet Hub](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003c/div\u003e\u003c!-- end columns-3--\u003e`),\n\t}\n}\n\nfunc AdminSetOverride(content string) {\n\tadmin.AssertCallerIsOwner()\n\toverride = content\n}\n\nfunc AdminTransferOwnership(newAdmin std.Address) {\n\tadmin.AssertCallerIsOwner()\n\tadmin.TransferOwnership(newAdmin)\n}\n"},{"name":"home_filetest.gno","body":"package main\n\nimport \"gno.land/r/gnoland/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// \u003cmain class='gno-tmpl-section'\u003e\n//\n// # Welcome to gno.land\n//\n// ### We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.\n//\n//\n// With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\n//\n//\n// Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\n//\n// \u003cdiv class=\"jumbotron\"\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Learn about gno.land\n//\n// - [About](/about)\n// - [GitHub](https://github.com/gnolang)\n// - [Blog](/blog)\n// - [Events](/events)\n// - Tokenomics (soon)\n// - [Partners, Fund, Grants](/partners)\n// - [Explore the Ecosystem](/ecosystem)\n// - [Careers](https://jobs.ashbyhq.com/allinbits)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n//\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Build with Gno\n//\n// - [Write Gno in the browser](https://play.gno.land)\n// - [Read about the Gno Language](/gnolang)\n// - [Visit the official documentation](https://docs.gno.land)\n// - [Gno by Example](https://gno-by-example.com/)\n// - [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n// - [Get testnet GNOTs](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Explore the universe\n//\n// - [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n// - [Gnoscan](https://gnoscan.io)\n// - [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n// - [Testnet 4](https://test4.gno.land/)\n// - [Faucet Hub](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003c/div\u003e\u003c!-- end columns-3--\u003e\n// \u003c/div\u003e\u003c!-- /jumbotron --\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Latest Blogposts](/r/gnoland/blog)\n//\n// No posts.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Latest Events](/r/gnoland/events)\n//\n// No events.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Hall of Fame](/r/demo/hof)\n//\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ### [Gno Playground](https://play.gno.land)\n//\n//\n// Gno Playground is a web application designed for building, running, testing, and interacting\n// with your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\n// execute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.\n//\n//\n// Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\n//\n//\n// ---\n//\n// ### Explore New Packages and Realms\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\n//\n// - [r/gnoland/blog](r/gnoland/blog)\n// - [r/gnoland/dao](r/gnoland/dao)\n// - [r/gnoland/faucet](r/gnoland/faucet)\n// - [r/gnoland/home](r/gnoland/home)\n// - [r/gnoland/pages](r/gnoland/pages)\n//\n// #### [r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\n//\n// - [r/sys/names](r/sys/names)\n// - [r/sys/rewards](r/sys/rewards)\n// - [/r/sys/validators/v2](/r/sys/validators/v2)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\n//\n// - [r/demo/boards](r/demo/boards)\n// - [r/demo/users](r/demo/users)\n// - [r/demo/banktest](r/demo/banktest)\n// - [r/demo/foo20](r/demo/foo20)\n// - [r/demo/foo721](r/demo/foo721)\n// - [r/demo/microblog](r/demo/microblog)\n// - [r/demo/nft](r/demo/nft)\n// - [r/demo/types](r/demo/types)\n// - [r/demo/art/gnoface](r/demo/art/gnoface)\n// - [r/demo/art/millipede](r/demo/art/millipede)\n// - [r/demo/groups](r/demo/groups)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\n//\n// - [p/demo/avl](p/demo/avl)\n// - [p/demo/blog](p/demo/blog)\n// - [p/demo/ui](p/demo/ui)\n// - [p/demo/ufmt](p/demo/ufmt)\n// - [p/demo/merkle](p/demo/merkle)\n// - [p/demo/bf](p/demo/bf)\n// - [p/demo/flow](p/demo/flow)\n// - [p/demo/gnode](p/demo/gnode)\n// - [p/demo/grc/grc20](p/demo/grc/grc20)\n// - [p/demo/grc/grc721](p/demo/grc/grc721)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ### Contributions (WorxDAO \u0026 GoR)\n//\n// coming soon\n//\n// ---\n//\n//\n// \u003cdiv class=\"columns-2\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Socials\n//\n// - Check out our [community projects](https://github.com/gnolang/awesome-gno)\n// - ![Discord](static/img/ico-discord.svg) [Discord](https://discord.gg/S8nKUqwkPn)\n// - ![Twitter](static/img/ico-twitter.svg) [Twitter](https://twitter.com/_gnoland)\n// - ![Youtube](static/img/ico-youtube.svg) [Youtube](https://www.youtube.com/@_gnoland)\n// - ![Telegram](static/img/ico-telegram.svg) [Telegram](https://t.me/gnoland)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Quote of the ~Day~ Block#123\n//\n// \u003e Now, you Gno.\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-2 --\u003e\n//\n//\n// ---\n//\n// **This is a testnet.**\n// Package names are not guaranteed to be available for production.\n//\n// \u003c/main\u003e\n"},{"name":"overide_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AdminSetOverride(\"Hello World!\")\n\tprintln(home.Render(\"\"))\n\thome.AdminTransferOwnership(testutils.TestAddress(\"newAdmin\"))\n\tdefer func() {\n\t\tr := recover()\n\t\tprintln(\"r: \", r)\n\t}()\n\thome.AdminSetOverride(\"Not admin anymore\")\n}\n\n// Output:\n// Hello World!\n// r: ownable: caller is not owner\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gftio9fT9ln40p0uxn7sP/mpX1ua44VBbtKGxSUfHtau57bDaShPCvPkrEEGUy7yH3dXXJ++VCGVsODqEFV0CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/gnoland/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/ui\"\n\tblog \"gno.land/r/gnoland/blog\"\n\tevents \"gno.land/r/gnoland/events\"\n\t\"gno.land/r/leon/hof\"\n)\n\n// XXX: p/demo/ui API is crappy, we need to make it more idiomatic\n// XXX: use an updatable block system to update content from a DAO\n// XXX: var blocks avl.Tree\n\nvar (\n\toverride string\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n)\n\nfunc Render(_ string) string {\n\tif override != \"\" {\n\t\treturn override\n\t}\n\n\tdom := ui.DOM{Prefix: \"r/gnoland/home:\"}\n\tdom.Title = \"Welcome to gno.land\"\n\tdom.Classes = []string{\"gno-tmpl-section\"}\n\n\t// body\n\tdom.Body.Append(introSection()...)\n\n\tdom.Body.Append(ui.Jumbotron(discoverLinks()))\n\n\tdom.Body.Append(\n\t\tui.Columns{3, []ui.Element{\n\t\t\tlastBlogposts(4),\n\t\t\tupcomingEvents(),\n\t\t\tlatestHOFItems(5),\n\t\t}},\n\t)\n\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(playgroundSection()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(packageStaffPicks()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(worxDAO()...)\n\tdom.Body.Append(ui.HR{})\n\t// footer\n\tdom.Footer.Append(\n\t\tui.Columns{2, []ui.Element{\n\t\t\tsocialLinks(),\n\t\t\tquoteOfTheBlock(),\n\t\t}},\n\t)\n\n\t// Testnet disclaimer\n\tdom.Footer.Append(\n\t\tui.HR{},\n\t\tui.Bold(\"This is a testnet.\"),\n\t\tui.Text(\"Package names are not guaranteed to be available for production.\"),\n\t)\n\n\treturn dom.String()\n}\n\nfunc lastBlogposts(limit int) ui.Element {\n\tposts := blog.RenderLastPostsWidget(limit)\n\treturn ui.Element{\n\t\tui.H3(\"[Latest Blogposts](/r/gnoland/blog)\"),\n\t\tui.Text(posts),\n\t}\n}\n\nfunc lastContributions(limit int) ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"Latest Contributions\"),\n\t\t// TODO: import r/gh to\n\t\tui.Link{Text: \"View latest contributions\", URL: \"https://github.com/gnolang/gno/pulls\"},\n\t}\n}\n\nfunc upcomingEvents() ui.Element {\n\tout, _ := events.RenderEventWidget(events.MaxWidgetSize)\n\treturn ui.Element{\n\t\tui.H3(\"[Latest Events](/r/gnoland/events)\"),\n\t\tui.Text(out),\n\t}\n}\n\nfunc latestHOFItems(num int) ui.Element {\n\tsubmissions := hof.RenderExhibWidget(num)\n\n\treturn ui.Element{\n\t\tui.H3(\"[Hall of Fame](/r/leon/hof)\"),\n\t\tui.Text(submissions),\n\t}\n}\n\nfunc introSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.\"),\n\t\tui.Paragraph(\"With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\"),\n\t\tui.Paragraph(\"Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\"),\n\t}\n}\n\nfunc worxDAO() ui.Element {\n\t// WorxDAO\n\t// XXX(manfred): please, let me finish a v0, then we can iterate\n\t// highest level == highest responsibility\n\t// teams are responsible for components they don't owne\n\t// flag : realm maintainers VS facilitators\n\t// teams\n\t// committee of trustees to create the directory\n\t// each directory is a name, has a parent and have groups\n\t// homepage team - blocks aggregating events\n\t// XXX: TODO\n\t/*`\n\t# Directory\n\n\t* gno.land (owned by group)\n\t *\n\t* gnovm\n\t * gnolang (language)\n\t * gnovm\n\t - current challenges / concerns / issues\n\t* tm2\n\t * amino\n\t *\n\n\t## Contributors\n\t``*/\n\treturn ui.Element{\n\t\tui.H3(\"Contributions (WorxDAO \u0026 GoR)\"),\n\t\t// TODO: GoR dashboard + WorxDAO topics\n\t\tui.Text(`coming soon`),\n\t}\n}\n\nfunc quoteOfTheBlock() ui.Element {\n\tquotes := []string{\n\t\t\"Gno is for Truth.\",\n\t\t\"Gno is for Social Coordination.\",\n\t\t\"Gno is _not only_ for DeFi.\",\n\t\t\"Now, you Gno.\",\n\t\t\"Come for the Go, Stay for the Gno.\",\n\t}\n\theight := std.GetHeight()\n\tidx := int(height) % len(quotes)\n\tqotb := quotes[idx]\n\n\treturn ui.Element{\n\t\tui.H3(ufmt.Sprintf(\"Quote of the ~Day~ Block#%d\", height)),\n\t\tui.Quote(qotb),\n\t}\n}\n\nfunc socialLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"Socials\"),\n\t\tui.BulletList{\n\t\t\t// XXX: improve UI to support a nice GO api for such links\n\t\t\tui.Text(\"Check out our [community projects](https://github.com/gnolang/awesome-gno)\"),\n\t\t\tui.Text(\"![Discord](static/img/ico-discord.svg) [Discord](https://discord.gg/S8nKUqwkPn)\"),\n\t\t\tui.Text(\"![Twitter](static/img/ico-twitter.svg) [Twitter](https://twitter.com/_gnoland)\"),\n\t\t\tui.Text(\"![Youtube](static/img/ico-youtube.svg) [Youtube](https://www.youtube.com/@_gnoland)\"),\n\t\t\tui.Text(\"![Telegram](static/img/ico-telegram.svg) [Telegram](https://t.me/gnoland)\"),\n\t\t},\n\t}\n}\n\nfunc playgroundSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"[Gno Playground](https://play.gno.land)\"),\n\t\tui.Paragraph(`Gno Playground is a web application designed for building, running, testing, and interacting\nwith your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\nexecute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.`),\n\t\tui.Paragraph(\"Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\"),\n\t}\n}\n\nfunc packageStaffPicks() ui.Element {\n\t// XXX: make it modifiable from a DAO\n\treturn ui.Element{\n\t\tui.H3(\"Explore New Packages and Realms\"),\n\t\tui.Columns{\n\t\t\t3,\n\t\t\t[]ui.Element{\n\t\t\t\t{\n\t\t\t\t\tui.H4(\"[r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/dao\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/faucet\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/home\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/pages\"},\n\t\t\t\t\t},\n\t\t\t\t\tui.H4(\"[r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/sys/names\"},\n\t\t\t\t\t\tui.Link{URL: \"r/sys/rewards\"},\n\t\t\t\t\t\tui.Link{URL: \"/r/sys/validators/v2\"},\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H4(\"[r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/demo/boards\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/users\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/banktest\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo20\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo721\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/microblog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/nft\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/types\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/gnoface\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/millipede\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/groups\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H4(\"[p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"p/demo/avl\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ui\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ufmt\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/merkle\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/bf\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/flow\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/gnode\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc20\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc721\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc discoverLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.Text(`\u003cdiv class=\"columns-3\"\u003e\n\u003cdiv class=\"column\"\u003e\n\n### Learn about gno.land\n\n- [About](/about)\n- [GitHub](https://github.com/gnolang)\n- [Blog](/blog)\n- [Events](/events)\n- Tokenomics (soon)\n- [Partners, Fund, Grants](/partners)\n- [Explore the Ecosystem](/ecosystem)\n- [Careers](https://jobs.ashbyhq.com/allinbits)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\n\u003cdiv class=\"column\"\u003e\n\n### Build with Gno\n\n- [Write Gno in the browser](https://play.gno.land)\n- [Read about the Gno Language](/gnolang)\n- [Visit the official documentation](https://docs.gno.land)\n- [Gno by Example](https://gno-by-example.com/)\n- [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n- [Get testnet GNOTs](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003cdiv class=\"column\"\u003e\n\n### Explore the universe\n\n- [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n- [Gnoscan](https://gnoscan.io)\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n- [Testnet 4](https://test4.gno.land/)\n- [Faucet Hub](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003c/div\u003e\u003c!-- end columns-3--\u003e`),\n\t}\n}\n\nfunc AdminSetOverride(content string) {\n\tadmin.AssertCallerIsOwner()\n\toverride = content\n}\n\nfunc AdminTransferOwnership(newAdmin std.Address) {\n\tadmin.AssertCallerIsOwner()\n\tadmin.TransferOwnership(newAdmin)\n}\n"},{"name":"home_filetest.gno","body":"package main\n\nimport \"gno.land/r/gnoland/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// \u003cmain class='gno-tmpl-section'\u003e\n//\n// # Welcome to gno.land\n//\n// ### We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.\n//\n//\n// With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\n//\n//\n// Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\n//\n// \u003cdiv class=\"jumbotron\"\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Learn about gno.land\n//\n// - [About](/about)\n// - [GitHub](https://github.com/gnolang)\n// - [Blog](/blog)\n// - [Events](/events)\n// - Tokenomics (soon)\n// - [Partners, Fund, Grants](/partners)\n// - [Explore the Ecosystem](/ecosystem)\n// - [Careers](https://jobs.ashbyhq.com/allinbits)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n//\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Build with Gno\n//\n// - [Write Gno in the browser](https://play.gno.land)\n// - [Read about the Gno Language](/gnolang)\n// - [Visit the official documentation](https://docs.gno.land)\n// - [Gno by Example](https://gno-by-example.com/)\n// - [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n// - [Get testnet GNOTs](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Explore the universe\n//\n// - [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n// - [Gnoscan](https://gnoscan.io)\n// - [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n// - [Testnet 4](https://test4.gno.land/)\n// - [Faucet Hub](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003c/div\u003e\u003c!-- end columns-3--\u003e\n// \u003c/div\u003e\u003c!-- /jumbotron --\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Latest Blogposts](/r/gnoland/blog)\n//\n// No posts.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Latest Events](/r/gnoland/events)\n//\n// No events.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Hall of Fame](/r/leon/hof)\n//\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ### [Gno Playground](https://play.gno.land)\n//\n//\n// Gno Playground is a web application designed for building, running, testing, and interacting\n// with your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\n// execute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.\n//\n//\n// Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\n//\n//\n// ---\n//\n// ### Explore New Packages and Realms\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\n//\n// - [r/gnoland/blog](r/gnoland/blog)\n// - [r/gnoland/dao](r/gnoland/dao)\n// - [r/gnoland/faucet](r/gnoland/faucet)\n// - [r/gnoland/home](r/gnoland/home)\n// - [r/gnoland/pages](r/gnoland/pages)\n//\n// #### [r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\n//\n// - [r/sys/names](r/sys/names)\n// - [r/sys/rewards](r/sys/rewards)\n// - [/r/sys/validators/v2](/r/sys/validators/v2)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\n//\n// - [r/demo/boards](r/demo/boards)\n// - [r/demo/users](r/demo/users)\n// - [r/demo/banktest](r/demo/banktest)\n// - [r/demo/foo20](r/demo/foo20)\n// - [r/demo/foo721](r/demo/foo721)\n// - [r/demo/microblog](r/demo/microblog)\n// - [r/demo/nft](r/demo/nft)\n// - [r/demo/types](r/demo/types)\n// - [r/demo/art/gnoface](r/demo/art/gnoface)\n// - [r/demo/art/millipede](r/demo/art/millipede)\n// - [r/demo/groups](r/demo/groups)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\n//\n// - [p/demo/avl](p/demo/avl)\n// - [p/demo/blog](p/demo/blog)\n// - [p/demo/ui](p/demo/ui)\n// - [p/demo/ufmt](p/demo/ufmt)\n// - [p/demo/merkle](p/demo/merkle)\n// - [p/demo/bf](p/demo/bf)\n// - [p/demo/flow](p/demo/flow)\n// - [p/demo/gnode](p/demo/gnode)\n// - [p/demo/grc/grc20](p/demo/grc/grc20)\n// - [p/demo/grc/grc721](p/demo/grc/grc721)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ### Contributions (WorxDAO \u0026 GoR)\n//\n// coming soon\n//\n// ---\n//\n//\n// \u003cdiv class=\"columns-2\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Socials\n//\n// - Check out our [community projects](https://github.com/gnolang/awesome-gno)\n// - ![Discord](static/img/ico-discord.svg) [Discord](https://discord.gg/S8nKUqwkPn)\n// - ![Twitter](static/img/ico-twitter.svg) [Twitter](https://twitter.com/_gnoland)\n// - ![Youtube](static/img/ico-youtube.svg) [Youtube](https://www.youtube.com/@_gnoland)\n// - ![Telegram](static/img/ico-telegram.svg) [Telegram](https://t.me/gnoland)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Quote of the ~Day~ Block#123\n//\n// \u003e Now, you Gno.\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-2 --\u003e\n//\n//\n// ---\n//\n// **This is a testnet.**\n// Package names are not guaranteed to be available for production.\n//\n// \u003c/main\u003e\n"},{"name":"overide_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AdminSetOverride(\"Hello World!\")\n\tprintln(home.Render(\"\"))\n\thome.AdminTransferOwnership(testutils.TestAddress(\"newAdmin\"))\n\tdefer func() {\n\t\tr := recover()\n\t\tprintln(\"r: \", r)\n\t}()\n\thome.AdminSetOverride(\"Not admin anymore\")\n}\n\n// Output:\n// Hello World!\n// r: ownable: caller is not owner\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qkO1O/qDzGv9KQPCOZgO+t1zR0p0F48kGyQo3PZyYnR774un4JIRubmecuoBZ/gfAnR0OWwnswAPGiHZb27NAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/gnoland/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/ui\"\n\tblog \"gno.land/r/gnoland/blog\"\n\tevents \"gno.land/r/gnoland/events\"\n\t\"gno.land/r/leon/hof\"\n)\n\n// XXX: p/demo/ui API is crappy, we need to make it more idiomatic\n// XXX: use an updatable block system to update content from a DAO\n// XXX: var blocks avl.Tree\n\nvar (\n\toverride string\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n)\n\nfunc Render(_ string) string {\n\tif override != \"\" {\n\t\treturn override\n\t}\n\n\tdom := ui.DOM{Prefix: \"r/gnoland/home:\"}\n\tdom.Title = \"Welcome to gno.land\"\n\tdom.Classes = []string{\"gno-tmpl-section\"}\n\n\t// body\n\tdom.Body.Append(introSection()...)\n\n\tdom.Body.Append(ui.Jumbotron(discoverLinks()))\n\n\tdom.Body.Append(\n\t\tui.Columns{3, []ui.Element{\n\t\t\tlastBlogposts(4),\n\t\t\tupcomingEvents(),\n\t\t\tlatestHOFItems(5),\n\t\t}},\n\t)\n\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(playgroundSection()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(packageStaffPicks()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(worxDAO()...)\n\tdom.Body.Append(ui.HR{})\n\t// footer\n\tdom.Footer.Append(\n\t\tui.Columns{2, []ui.Element{\n\t\t\tsocialLinks(),\n\t\t\tquoteOfTheBlock(),\n\t\t}},\n\t)\n\n\t// Testnet disclaimer\n\tdom.Footer.Append(\n\t\tui.HR{},\n\t\tui.Bold(\"This is a testnet.\"),\n\t\tui.Text(\"Package names are not guaranteed to be available for production.\"),\n\t)\n\n\treturn dom.String()\n}\n\nfunc lastBlogposts(limit int) ui.Element {\n\tposts := blog.RenderLastPostsWidget(limit)\n\treturn ui.Element{\n\t\tui.H3(\"[Latest Blogposts](/r/gnoland/blog)\"),\n\t\tui.Text(posts),\n\t}\n}\n\nfunc lastContributions(limit int) ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"Latest Contributions\"),\n\t\t// TODO: import r/gh to\n\t\tui.Link{Text: \"View latest contributions\", URL: \"https://github.com/gnolang/gno/pulls\"},\n\t}\n}\n\nfunc upcomingEvents() ui.Element {\n\tout, _ := events.RenderEventWidget(events.MaxWidgetSize)\n\treturn ui.Element{\n\t\tui.H3(\"[Latest Events](/r/gnoland/events)\"),\n\t\tui.Text(out),\n\t}\n}\n\nfunc latestHOFItems(num int) ui.Element {\n\tsubmissions := hof.RenderExhibWidget(num)\n\n\treturn ui.Element{\n\t\tui.H3(\"[Hall of Fame](/r/leon/hof)\"),\n\t\tui.Text(submissions),\n\t}\n}\n\nfunc introSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.\"),\n\t\tui.Paragraph(\"With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\"),\n\t\tui.Paragraph(\"Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\"),\n\t}\n}\n\nfunc worxDAO() ui.Element {\n\t// WorxDAO\n\t// XXX(manfred): please, let me finish a v0, then we can iterate\n\t// highest level == highest responsibility\n\t// teams are responsible for components they don't owne\n\t// flag : realm maintainers VS facilitators\n\t// teams\n\t// committee of trustees to create the directory\n\t// each directory is a name, has a parent and have groups\n\t// homepage team - blocks aggregating events\n\t// XXX: TODO\n\t/*`\n\t# Directory\n\n\t* gno.land (owned by group)\n\t *\n\t* gnovm\n\t * gnolang (language)\n\t * gnovm\n\t - current challenges / concerns / issues\n\t* tm2\n\t * amino\n\t *\n\n\t## Contributors\n\t``*/\n\treturn ui.Element{\n\t\tui.H3(\"Contributions (WorxDAO \u0026 GoR)\"),\n\t\t// TODO: GoR dashboard + WorxDAO topics\n\t\tui.Text(`coming soon`),\n\t}\n}\n\nfunc quoteOfTheBlock() ui.Element {\n\tquotes := []string{\n\t\t\"Gno is for Truth.\",\n\t\t\"Gno is for Social Coordination.\",\n\t\t\"Gno is _not only_ for DeFi.\",\n\t\t\"Now, you Gno.\",\n\t\t\"Come for the Go, Stay for the Gno.\",\n\t}\n\theight := std.GetHeight()\n\tidx := int(height) % len(quotes)\n\tqotb := quotes[idx]\n\n\treturn ui.Element{\n\t\tui.H3(ufmt.Sprintf(\"Quote of the ~Day~ Block#%d\", height)),\n\t\tui.Quote(qotb),\n\t}\n}\n\nfunc socialLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"Socials\"),\n\t\tui.BulletList{\n\t\t\t// XXX: improve UI to support a nice GO api for such links\n\t\t\tui.Text(\"Check out our [community projects](https://github.com/gnolang/awesome-gno)\"),\n\t\t\tui.Text(\"![Discord](static/img/ico-discord.svg) [Discord](https://discord.gg/S8nKUqwkPn)\"),\n\t\t\tui.Text(\"![Twitter](static/img/ico-twitter.svg) [Twitter](https://twitter.com/_gnoland)\"),\n\t\t\tui.Text(\"![Youtube](static/img/ico-youtube.svg) [Youtube](https://www.youtube.com/@_gnoland)\"),\n\t\t\tui.Text(\"![Telegram](static/img/ico-telegram.svg) [Telegram](https://t.me/gnoland)\"),\n\t\t},\n\t}\n}\n\nfunc playgroundSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H3(\"[Gno Playground](https://play.gno.land)\"),\n\t\tui.Paragraph(`Gno Playground is a web application designed for building, running, testing, and interacting\nwith your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\nexecute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.`),\n\t\tui.Paragraph(\"Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\"),\n\t}\n}\n\nfunc packageStaffPicks() ui.Element {\n\t// XXX: make it modifiable from a DAO\n\treturn ui.Element{\n\t\tui.H3(\"Explore New Packages and Realms\"),\n\t\tui.Columns{\n\t\t\t3,\n\t\t\t[]ui.Element{\n\t\t\t\t{\n\t\t\t\t\tui.H4(\"[r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/dao\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/faucet\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/home\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/pages\"},\n\t\t\t\t\t},\n\t\t\t\t\tui.H4(\"[r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/sys/names\"},\n\t\t\t\t\t\tui.Link{URL: \"r/sys/rewards\"},\n\t\t\t\t\t\tui.Link{URL: \"/r/sys/validators/v2\"},\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H4(\"[r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/demo/boards\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/users\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/banktest\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo20\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo721\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/microblog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/nft\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/types\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/gnoface\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/millipede\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/groups\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H4(\"[p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"p/demo/avl\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ui\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ufmt\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/merkle\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/bf\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/flow\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/gnode\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc20\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc721\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc discoverLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.Text(`\u003cdiv class=\"columns-3\"\u003e\n\u003cdiv class=\"column\"\u003e\n\n### Learn about gno.land\n\n- [About](/about)\n- [GitHub](https://github.com/gnolang)\n- [Blog](/blog)\n- [Events](/events)\n- Tokenomics (soon)\n- [Partners, Fund, Grants](/partners)\n- [Explore the Ecosystem](/ecosystem)\n- [Careers](https://jobs.ashbyhq.com/allinbits)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\n\u003cdiv class=\"column\"\u003e\n\n### Build with Gno\n\n- [Write Gno in the browser](https://play.gno.land)\n- [Read about the Gno Language](/gnolang)\n- [Visit the official documentation](https://docs.gno.land)\n- [Gno by Example](https://gno-by-example.com/)\n- [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n- [Get testnet GNOTs](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003cdiv class=\"column\"\u003e\n\n### Explore the universe\n\n- [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n- [Gnoscan](https://gnoscan.io)\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n- [Testnet 4](https://test4.gno.land/)\n- [Faucet Hub](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003c/div\u003e\u003c!-- end columns-3--\u003e`),\n\t}\n}\n\nfunc AdminSetOverride(content string) {\n\tadmin.AssertCallerIsOwner()\n\toverride = content\n}\n\nfunc AdminTransferOwnership(newAdmin std.Address) {\n\tadmin.AssertCallerIsOwner()\n\tadmin.TransferOwnership(newAdmin)\n}\n"},{"name":"home_filetest.gno","body":"package main\n\nimport \"gno.land/r/gnoland/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// \u003cmain class='gno-tmpl-section'\u003e\n//\n// # Welcome to gno.land\n//\n// ### We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.\n//\n//\n// With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\n//\n//\n// Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\n//\n// \u003cdiv class=\"jumbotron\"\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Learn about gno.land\n//\n// - [About](/about)\n// - [GitHub](https://github.com/gnolang)\n// - [Blog](/blog)\n// - [Events](/events)\n// - Tokenomics (soon)\n// - [Partners, Fund, Grants](/partners)\n// - [Explore the Ecosystem](/ecosystem)\n// - [Careers](https://jobs.ashbyhq.com/allinbits)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n//\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Build with Gno\n//\n// - [Write Gno in the browser](https://play.gno.land)\n// - [Read about the Gno Language](/gnolang)\n// - [Visit the official documentation](https://docs.gno.land)\n// - [Gno by Example](https://gno-by-example.com/)\n// - [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n// - [Get testnet GNOTs](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Explore the universe\n//\n// - [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n// - [Gnoscan](https://gnoscan.io)\n// - [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n// - [Testnet 4](https://test4.gno.land/)\n// - [Faucet Hub](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003c/div\u003e\u003c!-- end columns-3--\u003e\n// \u003c/div\u003e\u003c!-- /jumbotron --\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Latest Blogposts](/r/gnoland/blog)\n//\n// No posts.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Latest Events](/r/gnoland/events)\n//\n// No events.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [Hall of Fame](/r/leon/hof)\n//\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ### [Gno Playground](https://play.gno.land)\n//\n//\n// Gno Playground is a web application designed for building, running, testing, and interacting\n// with your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\n// execute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.\n//\n//\n// Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\n//\n//\n// ---\n//\n// ### Explore New Packages and Realms\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\n//\n// - [r/gnoland/blog](r/gnoland/blog)\n// - [r/gnoland/dao](r/gnoland/dao)\n// - [r/gnoland/faucet](r/gnoland/faucet)\n// - [r/gnoland/home](r/gnoland/home)\n// - [r/gnoland/pages](r/gnoland/pages)\n//\n// #### [r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\n//\n// - [r/sys/names](r/sys/names)\n// - [r/sys/rewards](r/sys/rewards)\n// - [/r/sys/validators/v2](/r/sys/validators/v2)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\n//\n// - [r/demo/boards](r/demo/boards)\n// - [r/demo/users](r/demo/users)\n// - [r/demo/banktest](r/demo/banktest)\n// - [r/demo/foo20](r/demo/foo20)\n// - [r/demo/foo721](r/demo/foo721)\n// - [r/demo/microblog](r/demo/microblog)\n// - [r/demo/nft](r/demo/nft)\n// - [r/demo/types](r/demo/types)\n// - [r/demo/art/gnoface](r/demo/art/gnoface)\n// - [r/demo/art/millipede](r/demo/art/millipede)\n// - [r/demo/groups](r/demo/groups)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// #### [p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\n//\n// - [p/demo/avl](p/demo/avl)\n// - [p/demo/blog](p/demo/blog)\n// - [p/demo/ui](p/demo/ui)\n// - [p/demo/ufmt](p/demo/ufmt)\n// - [p/demo/merkle](p/demo/merkle)\n// - [p/demo/bf](p/demo/bf)\n// - [p/demo/flow](p/demo/flow)\n// - [p/demo/gnode](p/demo/gnode)\n// - [p/demo/grc/grc20](p/demo/grc/grc20)\n// - [p/demo/grc/grc721](p/demo/grc/grc721)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ### Contributions (WorxDAO \u0026 GoR)\n//\n// coming soon\n//\n// ---\n//\n//\n// \u003cdiv class=\"columns-2\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Socials\n//\n// - Check out our [community projects](https://github.com/gnolang/awesome-gno)\n// - ![Discord](static/img/ico-discord.svg) [Discord](https://discord.gg/S8nKUqwkPn)\n// - ![Twitter](static/img/ico-twitter.svg) [Twitter](https://twitter.com/_gnoland)\n// - ![Youtube](static/img/ico-youtube.svg) [Youtube](https://www.youtube.com/@_gnoland)\n// - ![Telegram](static/img/ico-telegram.svg) [Telegram](https://t.me/gnoland)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### Quote of the ~Day~ Block#123\n//\n// \u003e Now, you Gno.\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-2 --\u003e\n//\n//\n// ---\n//\n// **This is a testnet.**\n// Package names are not guaranteed to be available for production.\n//\n// \u003c/main\u003e\n"},{"name":"overide_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AdminSetOverride(\"Hello World!\")\n\tprintln(home.Render(\"\"))\n\thome.AdminTransferOwnership(testutils.TestAddress(\"newAdmin\"))\n\tdefer func() {\n\t\tr := recover()\n\t\tprintln(\"r: \", r)\n\t}()\n\thome.AdminSetOverride(\"Not admin anymore\")\n}\n\n// Output:\n// Hello World!\n// r: ownable: caller is not owner\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qkO1O/qDzGv9KQPCOZgO+t1zR0p0F48kGyQo3PZyYnR774un4JIRubmecuoBZ/gfAnR0OWwnswAPGiHZb27NAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/leon/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/demo/art/gnoface\"\n\t\"gno.land/r/demo/art/millipede\"\n\t\"gno.land/r/demo/mirror\"\n\t\"gno.land/r/leon/config\"\n\t\"gno.land/r/leon/hof\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe [2]string\n)\n\nfunc init() {\n\tpfp = \"https://i.imgflip.com/91vskx.jpg\"\n\tpfpCaption = \"[My favourite painting \u0026 pfp](https://en.wikipedia.org/wiki/Wanderer_above_the_Sea_of_Fog)\"\n\tabtMe = [2]string{\n\t\t`### About me\nHi, I'm Leon, a DevRel Engineer at gno.land. I am a tech enthusiast, \nlife-long learner, and sharer of knowledge.`,\n\t\t`### Contributions\nMy contributions to gno.land can mainly be found \n[here](https://github.com/gnolang/gno/issues?q=sort:updated-desc+author:leohhhn).\n\nTODO import r/gh\n`,\n\t}\n\n\thof.Register()\n\tmirror.Register(std.CurrentRealm().PkgPath(), Render)\n}\n\nfunc UpdatePFP(url, caption string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tabtMe[0] = col1\n\tabtMe[1] = col2\n}\n\nfunc Render(path string) string {\n\tout := \"# Leon's Homepage\\n\\n\"\n\n\tout += renderAboutMe()\n\tout += renderBlogPosts()\n\tout += \"\\n\\n\"\n\tout += renderArt()\n\n\treturn out\n}\n\nfunc renderBlogPosts() string {\n\tout := \"\"\n\t//out += \"## Leon's Blog Posts\"\n\n\t// todo fetch blog posts authored by @leohhhn\n\t// and render them\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\"![my profile pic](%s)\\n\\n%s\\n\\n\", pfp, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderArt() string {\n\tout := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tout += \"# Gno Art\\n\\n\"\n\n\tout += \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += renderGnoFace()\n\tout += renderMillipede()\n\tout += \"Empty spot :/\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\tout += \"This art is dynamic; it will change with every new block.\\n\\n\"\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc renderGnoFace() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += gnoface.Render(strconv.Itoa(int(std.GetHeight())))\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderMillipede() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"Millipede\\n\\n\"\n\tout += \"```\\n\" + millipede.Draw(int(std.GetHeight())%10+1) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc isAuthorized(addr std.Address) bool {\n\treturn addr == config.Address() || addr == config.Backup()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wkk5isqFYkirsRB/kO44Ss6pHH+ezQYv2htXY8T9i+ybinvnUn1KtBRCLa8jPmQlfJh04ckAHvsJ5vPOZ6LkDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/leon/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/demo/art/gnoface\"\n\t\"gno.land/r/demo/art/millipede\"\n\t\"gno.land/r/demo/mirror\"\n\t\"gno.land/r/leon/config\"\n\t\"gno.land/r/leon/hof\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe [2]string\n)\n\nfunc init() {\n\tpfp = \"https://i.imgflip.com/91vskx.jpg\"\n\tpfpCaption = \"[My favourite painting \u0026 pfp](https://en.wikipedia.org/wiki/Wanderer_above_the_Sea_of_Fog)\"\n\tabtMe = [2]string{\n\t\t`### About me\nHi, I'm Leon, a DevRel Engineer at gno.land. I am a tech enthusiast, \nlife-long learner, and sharer of knowledge.`,\n\t\t`### Contributions\nMy contributions to gno.land can mainly be found \n[here](https://github.com/gnolang/gno/issues?q=sort:updated-desc+author:leohhhn).\n\nTODO import r/gh\n`,\n\t}\n\n\thof.Register()\n\tmirror.Register(std.CurrentRealm().PkgPath(), Render)\n}\n\nfunc UpdatePFP(url, caption string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tabtMe[0] = col1\n\tabtMe[1] = col2\n}\n\nfunc Render(path string) string {\n\tout := \"# Leon's Homepage\\n\\n\"\n\n\tout += renderAboutMe()\n\tout += renderBlogPosts()\n\tout += \"\\n\\n\"\n\tout += renderArt()\n\n\treturn out\n}\n\nfunc renderBlogPosts() string {\n\tout := \"\"\n\t//out += \"## Leon's Blog Posts\"\n\n\t// todo fetch blog posts authored by @leohhhn\n\t// and render them\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\"![my profile pic](%s)\\n\\n%s\\n\\n\", pfp, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderArt() string {\n\tout := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tout += \"# Gno Art\\n\\n\"\n\n\tout += \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += renderGnoFace()\n\tout += renderMillipede()\n\tout += \"Empty spot :/\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\tout += \"This art is dynamic; it will change with every new block.\\n\\n\"\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc renderGnoFace() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += gnoface.Render(strconv.Itoa(int(std.GetHeight())))\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderMillipede() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"Millipede\\n\\n\"\n\tout += \"```\\n\" + millipede.Draw(int(std.GetHeight())%10+1) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc isAuthorized(addr std.Address) bool {\n\treturn addr == config.Address() || addr == config.Backup()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wkk5isqFYkirsRB/kO44Ss6pHH+ezQYv2htXY8T9i+ybinvnUn1KtBRCLa8jPmQlfJh04ckAHvsJ5vPOZ6LkDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/leon/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/demo/art/gnoface\"\n\t\"gno.land/r/demo/art/millipede\"\n\t\"gno.land/r/demo/mirror\"\n\t\"gno.land/r/leon/config\"\n\t\"gno.land/r/leon/hof\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe [2]string\n)\n\nfunc init() {\n\tpfp = \"https://i.imgflip.com/91vskx.jpg\"\n\tpfpCaption = \"[My favourite painting \u0026 pfp](https://en.wikipedia.org/wiki/Wanderer_above_the_Sea_of_Fog)\"\n\tabtMe = [2]string{\n\t\t`### About me\nHi, I'm Leon, a DevRel Engineer at gno.land. I am a tech enthusiast, \nlife-long learner, and sharer of knowledge.`,\n\t\t`### Contributions\nMy contributions to gno.land can mainly be found \n[here](https://github.com/gnolang/gno/issues?q=sort:updated-desc+author:leohhhn).\n\nTODO import r/gh\n`,\n\t}\n\n\thof.Register()\n\tmirror.Register(std.CurrentRealm().PkgPath(), Render)\n}\n\nfunc UpdatePFP(url, caption string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tabtMe[0] = col1\n\tabtMe[1] = col2\n}\n\nfunc Render(path string) string {\n\tout := \"# Leon's Homepage\\n\\n\"\n\n\tout += renderAboutMe()\n\tout += renderBlogPosts()\n\tout += \"\\n\\n\"\n\tout += renderArt()\n\n\treturn out\n}\n\nfunc renderBlogPosts() string {\n\tout := \"\"\n\t//out += \"## Leon's Blog Posts\"\n\n\t// todo fetch blog posts authored by @leohhhn\n\t// and render them\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\"![my profile pic](%s)\\n\\n%s\\n\\n\", pfp, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderArt() string {\n\tout := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tout += \"# Gno Art\\n\\n\"\n\n\tout += \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += renderGnoFace()\n\tout += renderMillipede()\n\tout += \"Empty spot :/\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\tout += \"This art is dynamic; it will change with every new block.\\n\\n\"\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc renderGnoFace() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += gnoface.Render(strconv.Itoa(int(std.GetHeight())))\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderMillipede() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"Millipede\\n\\n\"\n\tout += \"```\\n\" + millipede.Draw(int(std.GetHeight())%10+1) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc isAuthorized(addr std.Address) bool {\n\treturn addr == config.Address() || addr == config.Backup()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wkk5isqFYkirsRB/kO44Ss6pHH+ezQYv2htXY8T9i+ybinvnUn1KtBRCLa8jPmQlfJh04ckAHvsJ5vPOZ6LkDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/manfred/home","files":[{"name":"home.gno","body":"package home\n\nfunc Render(path string) string {\n\treturn \"Moved to r/moul\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QXCoX64Ho2rXJuW1JCJGpH0NL6mQYVGY2sLrbobNqguXC8OPchxH6jKntNOE8xpOEmvWBOge9jIURjqMT+PrDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/manfred/home","files":[{"name":"home.gno","body":"package home\n\nfunc Render(path string) string {\n\treturn \"Moved to r/moul\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QXCoX64Ho2rXJuW1JCJGpH0NL6mQYVGY2sLrbobNqguXC8OPchxH6jKntNOE8xpOEmvWBOge9jIURjqMT+PrDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/manfred/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/manfred/config\"\n)\n\nvar (\n\ttodos []string\n\tstatus string\n\tmemeImgURL string\n)\n\nfunc init() {\n\ttodos = append(todos, \"fill this todo list...\")\n\tstatus = \"Online\" // Initial status set to \"Online\"\n\tmemeImgURL = \"https://i.imgflip.com/7ze8dc.jpg\"\n\thof.Register()\n}\n\nfunc Render(path string) string {\n\tcontent := \"# Manfred's (gn)home Dashboard\\n\\n\"\n\n\tcontent += \"## Meme\\n\"\n\tcontent += \"![](\" + memeImgURL + \")\\n\\n\"\n\n\tcontent += \"## Status\\n\"\n\tcontent += status + \"\\n\\n\"\n\n\tcontent += \"## Personal ToDo List\\n\"\n\tfor _, todo := range todos {\n\t\tcontent += \"- [ ] \" + todo + \"\\n\"\n\t}\n\tcontent += \"\\n\"\n\n\t// TODO: Implement a feature to list replies on r/boards on my posts\n\t// TODO: Maybe integrate a calendar feature for upcoming events?\n\n\treturn content\n}\n\nfunc AddNewTodo(todo string) {\n\tconfig.AssertIsAdmin()\n\ttodos = append(todos, todo)\n}\n\nfunc DeleteTodo(todoIndex int) {\n\tconfig.AssertIsAdmin()\n\tif todoIndex \u003e= 0 \u0026\u0026 todoIndex \u003c len(todos) {\n\t\t// Remove the todo from the list by merging slices from before and after the todo\n\t\ttodos = append(todos[:todoIndex], todos[todoIndex+1:]...)\n\t} else {\n\t\tpanic(\"Invalid todo index\")\n\t}\n}\n\nfunc UpdateStatus(newStatus string) {\n\tconfig.AssertIsAdmin()\n\tstatus = newStatus\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/manfred/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// # Manfred's (gn)home Dashboard\n//\n// ## Meme\n// ![](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Online\n//\n// ## Personal ToDo List\n// - [ ] fill this todo list...\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/manfred/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AddNewTodo(\"aaa\")\n\thome.AddNewTodo(\"bbb\")\n\thome.AddNewTodo(\"ccc\")\n\thome.AddNewTodo(\"ddd\")\n\thome.AddNewTodo(\"eee\")\n\thome.UpdateStatus(\"Lorem Ipsum\")\n\thome.DeleteTodo(3)\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// # Manfred's (gn)home Dashboard\n//\n// ## Meme\n// ![](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Lorem Ipsum\n//\n// ## Personal ToDo List\n// - [ ] fill this todo list...\n// - [ ] aaa\n// - [ ] bbb\n// - [ ] ddd\n// - [ ] eee\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C49sNzxxVlHogzkQ34iy0TOQ788OUtN5/Ydltdg+p77MtqwMPydQZcNcrfXkZ7YJRSGgXEyjKqfEWGMULP9TDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/morgan/home","files":[{"name":"home.gno","body":"package home\n\nimport \"gno.land/r/leon/hof\"\n\nconst staticHome = `# morgan's (gn)home\n\n- [📝 sign my guestbook](/r/morgan/guestbook)\n`\n\nfunc init() { hof.Register() }\n\nfunc Render(path string) string {\n\treturn staticHome\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hy+Ymo2FHAvERnIAKdH9t79vTNf8qdSD2bGKBhAVDOPTUrB5ahYEDVxdX7hVQnaAzHTj4vNNvKaroj0t9H51BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/morgan/home","files":[{"name":"home.gno","body":"package home\n\nimport \"gno.land/r/leon/hof\"\n\nconst staticHome = `# morgan's (gn)home\n\n- [📝 sign my guestbook](/r/morgan/guestbook)\n`\n\nfunc init() { hof.Register() }\n\nfunc Render(path string) string {\n\treturn staticHome\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hy+Ymo2FHAvERnIAKdH9t79vTNf8qdSD2bGKBhAVDOPTUrB5ahYEDVxdX7hVQnaAzHTj4vNNvKaroj0t9H51BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/morgan/home","files":[{"name":"home.gno","body":"package home\n\nimport \"gno.land/r/leon/hof\"\n\nconst staticHome = `# morgan's (gn)home\n\n- [📝 sign my guestbook](/r/morgan/guestbook)\n`\n\nfunc init() { hof.Register() }\n\nfunc Render(path string) string {\n\treturn staticHome\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hy+Ymo2FHAvERnIAKdH9t79vTNf8qdSD2bGKBhAVDOPTUrB5ahYEDVxdX7hVQnaAzHTj4vNNvKaroj0t9H51BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/moul/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/moul/config\"\n)\n\nvar (\n\ttodos []string\n\tstatus string\n\tmemeImgURL string\n)\n\nfunc init() {\n\ttodos = append(todos, \"fill this todo list...\")\n\tstatus = \"Online\" // Initial status set to \"Online\"\n\tmemeImgURL = \"https://i.imgflip.com/7ze8dc.jpg\"\n\thof.Register()\n}\n\nfunc Render(path string) string {\n\tcontent := \"# Manfred's (gn)home Dashboard\\n\\n\"\n\n\tcontent += \"## Meme\\n\"\n\tcontent += \"![](\" + memeImgURL + \")\\n\\n\"\n\n\tcontent += \"## Status\\n\"\n\tcontent += status + \"\\n\\n\"\n\n\tcontent += \"## Personal ToDo List\\n\"\n\tfor _, todo := range todos {\n\t\tcontent += \"- [ ] \" + todo + \"\\n\"\n\t}\n\tcontent += \"\\n\"\n\n\t// TODO: Implement a feature to list replies on r/boards on my posts\n\t// TODO: Maybe integrate a calendar feature for upcoming events?\n\n\treturn content\n}\n\nfunc AddNewTodo(todo string) {\n\tconfig.AssertIsAdmin()\n\ttodos = append(todos, todo)\n}\n\nfunc DeleteTodo(todoIndex int) {\n\tconfig.AssertIsAdmin()\n\tif todoIndex \u003e= 0 \u0026\u0026 todoIndex \u003c len(todos) {\n\t\t// Remove the todo from the list by merging slices from before and after the todo\n\t\ttodos = append(todos[:todoIndex], todos[todoIndex+1:]...)\n\t} else {\n\t\tpanic(\"Invalid todo index\")\n\t}\n}\n\nfunc UpdateStatus(newStatus string) {\n\tconfig.AssertIsAdmin()\n\tstatus = newStatus\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/moul/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// # Manfred's (gn)home Dashboard\n//\n// ## Meme\n// ![](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Online\n//\n// ## Personal ToDo List\n// - [ ] fill this todo list...\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/moul/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AddNewTodo(\"aaa\")\n\thome.AddNewTodo(\"bbb\")\n\thome.AddNewTodo(\"ccc\")\n\thome.AddNewTodo(\"ddd\")\n\thome.AddNewTodo(\"eee\")\n\thome.UpdateStatus(\"Lorem Ipsum\")\n\thome.DeleteTodo(3)\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// # Manfred's (gn)home Dashboard\n//\n// ## Meme\n// ![](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Lorem Ipsum\n//\n// ## Personal ToDo List\n// - [ ] fill this todo list...\n// - [ ] aaa\n// - [ ] bbb\n// - [ ] ddd\n// - [ ] eee\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B5YxPa195YuUatjvcFFxt3kNN/E1/8Wl5MyJ5hkexgWYSq+FrZSY7YgImGdA73GVEJzUNmtBAjrh2k+RCFSPAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/moul/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/moul/config\"\n)\n\nvar (\n\ttodos []string\n\tstatus string\n\tmemeImgURL string\n)\n\nfunc init() {\n\ttodos = append(todos, \"fill this todo list...\")\n\tstatus = \"Online\" // Initial status set to \"Online\"\n\tmemeImgURL = \"https://i.imgflip.com/7ze8dc.jpg\"\n\thof.Register()\n}\n\nfunc Render(path string) string {\n\tcontent := \"# Manfred's (gn)home Dashboard\\n\\n\"\n\n\tcontent += \"## Meme\\n\"\n\tcontent += \"![](\" + memeImgURL + \")\\n\\n\"\n\n\tcontent += \"## Status\\n\"\n\tcontent += status + \"\\n\\n\"\n\n\tcontent += \"## Personal ToDo List\\n\"\n\tfor _, todo := range todos {\n\t\tcontent += \"- [ ] \" + todo + \"\\n\"\n\t}\n\tcontent += \"\\n\"\n\n\t// TODO: Implement a feature to list replies on r/boards on my posts\n\t// TODO: Maybe integrate a calendar feature for upcoming events?\n\n\treturn content\n}\n\nfunc AddNewTodo(todo string) {\n\tconfig.AssertIsAdmin()\n\ttodos = append(todos, todo)\n}\n\nfunc DeleteTodo(todoIndex int) {\n\tconfig.AssertIsAdmin()\n\tif todoIndex \u003e= 0 \u0026\u0026 todoIndex \u003c len(todos) {\n\t\t// Remove the todo from the list by merging slices from before and after the todo\n\t\ttodos = append(todos[:todoIndex], todos[todoIndex+1:]...)\n\t} else {\n\t\tpanic(\"Invalid todo index\")\n\t}\n}\n\nfunc UpdateStatus(newStatus string) {\n\tconfig.AssertIsAdmin()\n\tstatus = newStatus\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/moul/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// # Manfred's (gn)home Dashboard\n//\n// ## Meme\n// ![](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Online\n//\n// ## Personal ToDo List\n// - [ ] fill this todo list...\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/moul/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AddNewTodo(\"aaa\")\n\thome.AddNewTodo(\"bbb\")\n\thome.AddNewTodo(\"ccc\")\n\thome.AddNewTodo(\"ddd\")\n\thome.AddNewTodo(\"eee\")\n\thome.UpdateStatus(\"Lorem Ipsum\")\n\thome.DeleteTodo(3)\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// # Manfred's (gn)home Dashboard\n//\n// ## Meme\n// ![](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Lorem Ipsum\n//\n// ## Personal ToDo List\n// - [ ] fill this todo list...\n// - [ ] aaa\n// - [ ] bbb\n// - [ ] ddd\n// - [ ] eee\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B5YxPa195YuUatjvcFFxt3kNN/E1/8Wl5MyJ5hkexgWYSq+FrZSY7YgImGdA73GVEJzUNmtBAjrh2k+RCFSPAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/moul/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/svg\"\n\t\"gno.land/p/moul/debug\"\n\t\"gno.land/p/moul/md\"\n\t\"gno.land/p/moul/mdtable\"\n\t\"gno.land/p/moul/txlink\"\n\t\"gno.land/p/moul/web25\"\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/moul/config\"\n)\n\nvar (\n\ttodos []string\n\tstatus string\n\tmemeImgURL string\n\tweb25config = web25.Config{URL: \"https://moul.github.io/gno-moul-home-web25/\"}\n)\n\nfunc init() {\n\ttodos = append(todos, \"fill this todo list...\")\n\tstatus = \"Online\" // Initial status set to \"Online\"\n\tmemeImgURL = \"https://i.imgflip.com/7ze8dc.jpg\"\n\thof.Register()\n}\n\nfunc Render(path string) string {\n\tcontent := web25config.Render(path)\n\tvar d debug.Debug\n\n\tcontent += md.H1(\"Manfred's (gn)home Dashboard\")\n\n\tcontent += md.H2(\"Meme\")\n\tcontent += md.Paragraph(\n\t\tmd.Image(\"meme\", memeImgURL),\n\t)\n\n\tcontent += md.H2(\"Status\")\n\tcontent += md.Paragraph(status)\n\tcontent += md.Paragraph(md.Link(\"update\", txlink.Call(\"UpdateStatus\")))\n\n\td.Log(\"hello world!\")\n\n\tcontent += md.H2(\"Personal TODO List (bullet list)\")\n\tfor i, todo := range todos {\n\t\tidstr := strconv.Itoa(i)\n\t\tdeleteLink := md.Link(\"x\", txlink.Call(\"DeleteTodo\", \"idx\", idstr))\n\t\tcontent += md.BulletItem(todo + \" \" + deleteLink)\n\t}\n\tcontent += md.BulletItem(md.Link(\"[new]\", txlink.Call(\"AddTodo\")))\n\n\tcontent += md.H2(\"Personal TODO List (table)\")\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Item\", \"Links\"},\n\t}\n\tfor i, todo := range todos {\n\t\tidstr := strconv.Itoa(i)\n\t\tdeleteLink := md.Link(\"[del]\", txlink.Call(\"DeleteTodo\", \"idx\", idstr))\n\t\ttable.Append([]string{\"#\" + idstr, todo, deleteLink})\n\t}\n\tcontent += table.String()\n\n\tcontent += md.H2(\"SVG Example\")\n\tcontent += md.Paragraph(\"this feature may not work with the current gnoweb version and/or configuration.\")\n\tcontent += md.Paragraph(svg.Canvas{\n\t\tWidth: 500, Height: 500,\n\t\tElems: []svg.Elem{\n\t\t\tsvg.Rectangle{50, 50, 100, 100, \"red\"},\n\t\t\tsvg.Circle{50, 50, 100, \"red\"},\n\t\t\tsvg.Text{100, 100, \"hello world!\", \"magenta\"},\n\t\t},\n\t}.String())\n\n\tcontent += md.H2(\"Debug\")\n\tcontent += md.Paragraph(\"this feature may not work with the current gnoweb version and/or configuration.\")\n\tcontent += md.Paragraph(\n\t\tmd.Link(\"toggle debug\", debug.ToggleURL(path)),\n\t)\n\n\t// TODO: my r/boards posts\n\t// TODO: my r/events events\n\tcontent += d.Render(path)\n\treturn content\n}\n\nfunc AddTodo(todo string) {\n\tconfig.AssertIsAdmin()\n\ttodos = append(todos, todo)\n}\n\nfunc DeleteTodo(idx int) {\n\tconfig.AssertIsAdmin()\n\tif idx \u003e= 0 \u0026\u0026 idx \u003c len(todos) {\n\t\t// Remove the todo from the list by merging slices from before and after the todo\n\t\ttodos = append(todos[:idx], todos[idx+1:]...)\n\t} else {\n\t\tpanic(\"Invalid todo index\")\n\t}\n}\n\nfunc UpdateStatus(newStatus string) {\n\tconfig.AssertIsAdmin()\n\tstatus = newStatus\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/moul/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// Click [here](https://moul.github.io/gno-moul-home-web25/) to visit the full rendering experience.\n// # Manfred's (gn)home Dashboard\n// ## Meme\n// ![meme](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Online\n//\n// [update](/r/moul/home$help\u0026func=UpdateStatus)\n//\n// ## Personal TODO List (bullet list)\n// - fill this todo list... [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0)\n// - [\\[new\\]](/r/moul/home$help\u0026func=AddTodo)\n// ## Personal TODO List (table)\n// | ID | Item | Links |\n// | --- | --- | --- |\n// | #0 | fill this todo list... | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0) |\n// ## SVG Example\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n//\n// ## Debug\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// [toggle debug](/r/moul/home:?debug=1)\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/moul/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AddTodo(\"aaa\")\n\thome.AddTodo(\"bbb\")\n\thome.AddTodo(\"ccc\")\n\thome.AddTodo(\"ddd\")\n\thome.AddTodo(\"eee\")\n\thome.UpdateStatus(\"Lorem Ipsum\")\n\thome.DeleteTodo(3)\n\tprintln(home.Render(\"?debug=1\"))\n}\n\n// Output:\n// Click [here](https://moul.github.io/gno-moul-home-web25/) to visit the full rendering experience.\n// # Manfred's (gn)home Dashboard\n// ## Meme\n// ![meme](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Lorem Ipsum\n//\n// [update](/r/moul/home$help\u0026func=UpdateStatus)\n//\n// ## Personal TODO List (bullet list)\n// - fill this todo list... [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0)\n// - aaa [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=1)\n// - bbb [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=2)\n// - ddd [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=3)\n// - eee [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=4)\n// - [\\[new\\]](/r/moul/home$help\u0026func=AddTodo)\n// ## Personal TODO List (table)\n// | ID | Item | Links |\n// | --- | --- | --- |\n// | #0 | fill this todo list... | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0) |\n// | #1 | aaa | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=1) |\n// | #2 | bbb | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=2) |\n// | #3 | ddd | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=3) |\n// | #4 | eee | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=4) |\n// ## SVG Example\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n//\n// ## Debug\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// [toggle debug](/r/moul/home:)\n//\n// \u003cdetails\u003e\u003csummary\u003edebug\u003c/summary\u003e\n//\n// ### Logs\n// - hello world!\n// ### Metadata\n// | Key | Value |\n// | --- | --- |\n// | `std.CurrentRealm().PkgPath()` | gno.land/r/moul/home |\n// | `std.CurrentRealm().Addr()` | g1h8h57ntxadcze3f703skymfzdwa6t3ugf0nq3z |\n// | `std.PrevRealm().PkgPath()` | |\n// | `std.PrevRealm().Addr()` | g1manfred47kzduec920z88wfr64ylksmdcedlf5 |\n// | `std.GetHeight()` | 123 |\n// | `time.Now().Format(time.RFC3339)` | 2009-02-13T23:31:30Z |\n//\n// \u003c/details\u003e\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hfa6Wywmhgm54X9F+ygu5GIPzX0Yd8mbSTVmRBSo4OuuIC2HzTsCPQpJvCF97BSJnpdrp/vy1GDdQYl76kw9Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/n2p5/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/n2p5/chonk\"\n\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/n2p5/config\"\n)\n\nvar (\n\tactive = chonk.New()\n\tpreview = chonk.New()\n)\n\nfunc init() {\n\thof.Register()\n}\n\n// Add appends a string to the preview Chonk.\nfunc Add(chunk string) {\n\tassertAdmin()\n\tpreview.Add(chunk)\n}\n\n// Flush clears the preview Chonk.\nfunc Flush() {\n\tassertAdmin()\n\tpreview.Flush()\n}\n\n// Promote promotes the preview Chonk to the active Chonk\n// and creates a new preview Chonk.\nfunc Promote() {\n\tassertAdmin()\n\tactive = preview\n\tpreview = chonk.New()\n}\n\n// Render returns the contents of the scanner for the active or preview Chonk\n// based on the path provided.\nfunc Render(path string) string {\n\tvar result string\n\tscanner := getScanner(path)\n\tfor scanner.Scan() {\n\t\tresult += scanner.Text()\n\t}\n\treturn result\n}\n\n// assertAdmin panics if the caller is not an admin as defined in the config realm.\nfunc assertAdmin() {\n\tcaller := std.PrevRealm().Addr()\n\tif !config.IsAdmin(caller) {\n\t\tpanic(\"forbidden: must be admin\")\n\t}\n}\n\n// getScanner returns the scanner for the active or preview Chonk based\n// on the path provided.\nfunc getScanner(path string) *chonk.Scanner {\n\tif isPreview(path) {\n\t\treturn preview.Scanner()\n\t}\n\treturn active.Scanner()\n}\n\n// isPreview returns true if the path prefix is \"preview\".\nfunc isPreview(path string) bool {\n\treturn strings.HasPrefix(path, \"preview\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"30AR3OI5ZBeXk2PJI/V1UoeUauAYaY3V6EJXd7bw6XvMx2A3X1NSP32iE+E0bJeFcbD6xGZ1hfYi1Z63Lb9oDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/n2p5/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/n2p5/chonk\"\n\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/n2p5/config\"\n)\n\nvar (\n\tactive = chonk.New()\n\tpreview = chonk.New()\n)\n\nfunc init() {\n\thof.Register()\n}\n\n// Add appends a string to the preview Chonk.\nfunc Add(chunk string) {\n\tassertAdmin()\n\tpreview.Add(chunk)\n}\n\n// Flush clears the preview Chonk.\nfunc Flush() {\n\tassertAdmin()\n\tpreview.Flush()\n}\n\n// Promote promotes the preview Chonk to the active Chonk\n// and creates a new preview Chonk.\nfunc Promote() {\n\tassertAdmin()\n\tactive = preview\n\tpreview = chonk.New()\n}\n\n// Render returns the contents of the scanner for the active or preview Chonk\n// based on the path provided.\nfunc Render(path string) string {\n\tvar result string\n\tscanner := getScanner(path)\n\tfor scanner.Scan() {\n\t\tresult += scanner.Text()\n\t}\n\treturn result\n}\n\n// assertAdmin panics if the caller is not an admin as defined in the config realm.\nfunc assertAdmin() {\n\tcaller := std.PrevRealm().Addr()\n\tif !config.IsAdmin(caller) {\n\t\tpanic(\"forbidden: must be admin\")\n\t}\n}\n\n// getScanner returns the scanner for the active or preview Chonk based\n// on the path provided.\nfunc getScanner(path string) *chonk.Scanner {\n\tif isPreview(path) {\n\t\treturn preview.Scanner()\n\t}\n\treturn active.Scanner()\n}\n\n// isPreview returns true if the path prefix is \"preview\".\nfunc isPreview(path string) bool {\n\treturn strings.HasPrefix(path, \"preview\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"30AR3OI5ZBeXk2PJI/V1UoeUauAYaY3V6EJXd7bw6XvMx2A3X1NSP32iE+E0bJeFcbD6xGZ1hfYi1Z63Lb9oDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/stefann/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/stefann/registry\"\n)\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\ntype Profile struct {\n\tpfp string\n\taboutMe []string\n}\n\ntype Travel struct {\n\tcities []City\n\tcurrentCityIndex int\n\tjarLink string\n}\n\ntype Sponsorship struct {\n\tmaxSponsors int\n\tsponsors *avl.Tree\n\tDonationsCount int\n\tsponsorsCount int\n}\n\nvar (\n\tprofile Profile\n\ttravel Travel\n\tsponsorship Sponsorship\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\towner = ownable.NewWithAddress(registry.MainAddr())\n\n\tprofile = Profile{\n\t\tpfp: \"https://i.ibb.co/Bc5YNCx/DSC-0095a.jpg\",\n\t\taboutMe: []string{\n\t\t\t`### About Me`,\n\t\t\t`Hey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!`,\n\n\t\t\t`### Contributions`,\n\t\t\t`I'm just getting started, but you can follow my journey through gno.land right [here](https://github.com/gnolang/hackerspace/issues/94) 🔗`,\n\t\t},\n\t}\n\n\ttravel = Travel{\n\t\tcities: []City{\n\t\t\t{Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n\t\t\t{Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n\t\t\t{Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n\t\t\t{Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n\t\t\t{Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n\t\t\t{Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n\t\t\t{Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n\t\t\t{Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n\t\t\t{Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n\t\t\t{Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n\t\t\t{Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n\t\t\t{Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n\t\t\t{Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n\t\t\t{Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n\t\t},\n\t\tcurrentCityIndex: 0,\n\t\tjarLink: \"https://TODO\", // This value should be injected through UpdateJarLink after deployment.\n\t}\n\n\tsponsorship = Sponsorship{\n\t\tmaxSponsors: 5,\n\t\tsponsors: avl.NewTree(),\n\t\tDonationsCount: 0,\n\t\tsponsorsCount: 0,\n\t}\n}\n\nfunc UpdateCities(newCities []City) {\n\towner.AssertCallerIsOwner()\n\ttravel.cities = newCities\n}\n\nfunc AddCities(newCities ...City) {\n\towner.AssertCallerIsOwner()\n\n\ttravel.cities = append(travel.cities, newCities...)\n}\n\nfunc UpdateJarLink(newLink string) {\n\towner.AssertCallerIsOwner()\n\ttravel.jarLink = newLink\n}\n\nfunc UpdatePFP(url string) {\n\towner.AssertCallerIsOwner()\n\tprofile.pfp = url\n}\n\nfunc UpdateAboutMe(aboutMeStr string) {\n\towner.AssertCallerIsOwner()\n\tprofile.aboutMe = strings.Split(aboutMeStr, \"|\")\n}\n\nfunc AddAboutMeRows(newRows ...string) {\n\towner.AssertCallerIsOwner()\n\n\tprofile.aboutMe = append(profile.aboutMe, newRows...)\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n\towner.AssertCallerIsOwner()\n\tif newMax \u003c= 0 {\n\t\tpanic(\"maxSponsors must be greater than zero\")\n\t}\n\tsponsorship.maxSponsors = newMax\n}\n\nfunc Donate() {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\texistingAmount, exists := sponsorship.sponsors.Get(address.String())\n\tif exists {\n\t\tupdatedAmount := existingAmount.(std.Coins).Add(amount)\n\t\tsponsorship.sponsors.Set(address.String(), updatedAmount)\n\t} else {\n\t\tsponsorship.sponsors.Set(address.String(), amount)\n\t\tsponsorship.sponsorsCount++\n\t}\n\n\ttravel.currentCityIndex++\n\tsponsorship.DonationsCount++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\townerAddr := registry.MainAddr()\n\tbanker.SendCoins(std.CurrentRealm().Addr(), ownerAddr, banker.GetCoins(std.CurrentRealm().Addr()))\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc GetTopSponsors() []Sponsor {\n\tvar sponsorSlice SponsorSlice\n\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\taddr := std.Address(key)\n\t\tamount := value.(std.Coins)\n\t\tsponsorSlice = append(sponsorSlice, Sponsor{Address: addr, Amount: amount})\n\t\treturn false\n\t})\n\n\tsort.Sort(sponsorSlice)\n\treturn sponsorSlice\n}\n\nfunc GetTotalDonations() int {\n\ttotal := 0\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttotal += int(value.(std.Coins).AmountOf(\"ugnot\"))\n\t\treturn false\n\t})\n\treturn total\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", travel.cities[travel.currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='rows-3'\u003e\"\n\n\tout += \"\u003cdiv style='position: relative; text-align: center;'\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='background-image: url(%s); background-size: cover; background-position: center; width: 100%%; height: 600px; position: relative; border-radius: 15px; overflow: hidden;'\u003e\\n\\n\", travel.cities[travel.currentCityIndex%len(travel.cities)].URL)\n\n\tout += ufmt.Sprintf(\"\u003cimg src='%s' alt='my profile pic' style='width: 250px; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%%; border: 3px solid #1e1e1e; position: absolute; top: 75%%; left: 50%%; transform: translate(-50%%, -50%%);'\u003e\\n\\n\", profile.pfp)\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tfor _, rows := range profile.aboutMe {\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tout += rows + \"\\n\\n\"\n\t\tout += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := `\u003cdiv class=\"jumbotron\" style=\"display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 40px; padding-bottom: 50px; text-align: center;\"\u003e` + \"\\n\\n\"\n\n\tout += `\u003cdiv class=\"rows-2\" style=\"max-width: 500px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;\"\u003e` + \"\\n\"\n\n\tout += `\u003ch1 style=\"margin-bottom: 50px;\"\u003eHelp Me Travel The World\u003c/h1\u003e` + \"\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\"\n\n\tout += ufmt.Sprintf(`\u003cstrong style=\"font-size: 1.2em;\"\u003eI am currently in %s, \u003cbr\u003e tip the jar to send me somewhere else!\u003c/strong\u003e`, travel.cities[travel.currentCityIndex].Name)\n\n\tout += `\u003cbr\u003e\u003cspan style=\"font-size: 1.2em; font-style: italic; margin-top: 10px; display: inline-block;\"\u003eClick the jar, tip in GNOT coins, and watch my background change as I head to a new adventure!\u003c/span\u003e\u003c/p\u003e` + \"\\n\\n\"\n\n\tout += renderSponsors()\n\n\tout += `\u003c/div\u003e\u003c!-- /rows-2 --\u003e` + \"\\n\\n\"\n\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n\tif len(address) \u003c= 8 {\n\t\treturn address\n\t}\n\treturn address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc renderSponsors() string {\n\tout := `\u003ch3 style=\"margin-top: 5px; margin-bottom: 20px\"\u003eSponsor Leaderboard\u003c/h3\u003e` + \"\\n\"\n\n\tif sponsorship.sponsorsCount == 0 {\n\t\treturn out + `\u003cp style=\"text-align: center;\"\u003eNo sponsors yet. Be the first to tip the jar!\u003c/p\u003e` + \"\\n\"\n\t}\n\n\ttopSponsors := GetTopSponsors()\n\tnumSponsors := len(topSponsors)\n\tif numSponsors \u003e sponsorship.maxSponsors {\n\t\tnumSponsors = sponsorship.maxSponsors\n\t}\n\n\tout += `\u003cul style=\"list-style-type: none; padding: 0; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 300px; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tfor i := 0; i \u003c numSponsors; i++ {\n\t\tsponsor := topSponsors[i]\n\t\tisLastItem := (i == numSponsors-1)\n\n\t\tpadding := \"10px 5px\"\n\t\tborder := \"border-bottom: 1px solid #ddd;\"\n\n\t\tif isLastItem {\n\t\t\tpadding = \"8px 5px\"\n\t\t\tborder = \"\"\n\t\t}\n\n\t\tout += ufmt.Sprintf(\n\t\t\t`\u003cli style=\"padding: %s; %s text-align: left;\"\u003e\n\t\t\t\t\u003cstrong style=\"padding-left: 5px;\"\u003e%d. %s\u003c/strong\u003e\n\t\t\t\t\u003cspan style=\"float: right; padding-right: 5px;\"\u003e%s\u003c/span\u003e\n\t\t\t\u003c/li\u003e`,\n\t\t\tpadding, border, i+1, formatAddress(sponsor.Address.String()), sponsor.Amount.String(),\n\t\t)\n\t}\n\n\treturn out\n}\n\nfunc renderTipsJar() string {\n\tout := ufmt.Sprintf(`\u003ca href=\"%s\" target=\"_blank\" style=\"display: block; text-decoration: none;\"\u003e`, travel.jarLink) + \"\\n\"\n\n\tout += `\u003cimg src=\"https://i.ibb.co/4TH9zbw/tips-jar.png\" alt=\"Tips Jar\" style=\"width: 300px; height: auto; display: block; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tout += `\u003c/a\u003e` + \"\\n\"\n\n\treturn out\n}\n"},{"name":"home_test.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestUpdatePFP(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.pfp = \"\"\n\n\tUpdatePFP(\"https://example.com/pic.png\")\n\n\tif profile.pfp != \"https://example.com/pic.png\" {\n\t\tt.Fatalf(\"expected pfp to be https://example.com/pic.png, got %s\", profile.pfp)\n\t}\n}\n\nfunc TestUpdateAboutMe(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tUpdateAboutMe(\"This is my new bio.|I love coding!\")\n\n\texpected := []string{\"This is my new bio.\", \"I love coding!\"}\n\n\tif len(profile.aboutMe) != len(expected) {\n\t\tt.Fatalf(\"expected aboutMe to have length %d, got %d\", len(expected), len(profile.aboutMe))\n\t}\n\n\tfor i := range profile.aboutMe {\n\t\tif profile.aboutMe[i] != expected[i] {\n\t\t\tt.Fatalf(\"expected aboutMe[%d] to be %s, got %s\", i, expected[i], profile.aboutMe[i])\n\t\t}\n\t}\n}\n\nfunc TestUpdateCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tnewCities := []City{\n\t\t{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"},\n\t\t{Name: \"Vienna\", URL: \"https://example.com/vienna.jpg\"},\n\t}\n\n\tUpdateCities(newCities)\n\n\tif len(travel.cities) != 2 {\n\t\tt.Fatalf(\"expected 2 cities, got %d\", len(travel.cities))\n\t}\n\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[1].Name != \"Vienna\" {\n\t\tt.Fatalf(\"expected cities to be updated to Berlin and Vienna, got %+v\", travel.cities)\n\t}\n}\n\nfunc TestUpdateJarLink(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.jarLink = \"\"\n\n\tUpdateJarLink(\"https://example.com/jar\")\n\n\tif travel.jarLink != \"https://example.com/jar\" {\n\t\tt.Fatalf(\"expected jarLink to be https://example.com/jar, got %s\", travel.jarLink)\n\t}\n}\n\nfunc TestUpdateMaxSponsors(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tsponsorship.maxSponsors = 0\n\n\tUpdateMaxSponsors(10)\n\n\tif sponsorship.maxSponsors != 10 {\n\t\tt.Fatalf(\"expected maxSponsors to be 10, got %d\", sponsorship.maxSponsors)\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"expected panic for setting maxSponsors to 0\")\n\t\t}\n\t}()\n\tUpdateMaxSponsors(0)\n}\n\nfunc TestAddCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tAddCities(City{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"})\n\n\tif len(travel.cities) != 1 {\n\t\tt.Fatalf(\"expected 1 city, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[0].URL != \"https://example.com/berlin.jpg\" {\n\t\tt.Fatalf(\"expected city to be Berlin, got %+v\", travel.cities[0])\n\t}\n\n\tAddCities(\n\t\tCity{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t\tCity{Name: \"Tokyo\", URL: \"https://example.com/tokyo.jpg\"},\n\t)\n\n\tif len(travel.cities) != 3 {\n\t\tt.Fatalf(\"expected 3 cities, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[1].Name != \"Paris\" || travel.cities[2].Name != \"Tokyo\" {\n\t\tt.Fatalf(\"expected cities to be Paris and Tokyo, got %+v\", travel.cities[1:])\n\t}\n}\n\nfunc TestAddAboutMeRows(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tAddAboutMeRows(\"I love exploring new technologies!\")\n\n\tif len(profile.aboutMe) != 1 {\n\t\tt.Fatalf(\"expected 1 aboutMe row, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[0] != \"I love exploring new technologies!\" {\n\t\tt.Fatalf(\"expected first aboutMe row to be 'I love exploring new technologies!', got %s\", profile.aboutMe[0])\n\t}\n\n\tAddAboutMeRows(\"Travel is my passion!\", \"Always learning.\")\n\n\tif len(profile.aboutMe) != 3 {\n\t\tt.Fatalf(\"expected 3 aboutMe rows, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[1] != \"Travel is my passion!\" || profile.aboutMe[2] != \"Always learning.\" {\n\t\tt.Fatalf(\"expected aboutMe rows to be 'Travel is my passion!' and 'Always learning.', got %+v\", profile.aboutMe[1:])\n\t}\n}\n\nfunc TestDonate(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.DonationsCount = 0\n\tsponsorship.sponsorsCount = 0\n\ttravel.currentCityIndex = 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 500))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists := sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to be added, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected donation amount to be 500ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 1 {\n\t\tt.Fatalf(\"expected DonationsCount to be 1, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif sponsorship.sponsorsCount != 1 {\n\t\tt.Fatalf(\"expected sponsorsCount to be 1, got %d\", sponsorship.sponsorsCount)\n\t}\n\n\tif travel.currentCityIndex != 1 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 1, got %d\", travel.currentCityIndex)\n\t}\n\n\tcoinsSent = std.NewCoins(std.NewCoin(\"ugnot\", 300))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists = sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to exist after second donation, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 800 {\n\t\tt.Fatalf(\"expected total donation amount to be 800ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 2 {\n\t\tt.Fatalf(\"expected DonationsCount to be 2 after second donation, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif travel.currentCityIndex != 2 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 2 after second donation, got %d\", travel.currentCityIndex)\n\t}\n}\n\nfunc TestGetTopSponsors(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttopSponsors := GetTopSponsors()\n\n\tif len(topSponsors) != 3 {\n\t\tt.Fatalf(\"expected 3 sponsors, got %d\", len(topSponsors))\n\t}\n\n\tif topSponsors[0].Address.String() != \"g1address2\" || topSponsors[0].Amount.AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected top sponsor to be g1address2 with 500ugnot, got %s with %dugnot\", topSponsors[0].Address.String(), topSponsors[0].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[1].Address.String() != \"g1address1\" || topSponsors[1].Amount.AmountOf(\"ugnot\") != 300 {\n\t\tt.Fatalf(\"expected second sponsor to be g1address1 with 300ugnot, got %s with %dugnot\", topSponsors[1].Address.String(), topSponsors[1].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[2].Address.String() != \"g1address3\" || topSponsors[2].Amount.AmountOf(\"ugnot\") != 200 {\n\t\tt.Fatalf(\"expected third sponsor to be g1address3 with 200ugnot, got %s with %dugnot\", topSponsors[2].Address.String(), topSponsors[2].Amount.AmountOf(\"ugnot\"))\n\t}\n}\n\nfunc TestGetTotalDonations(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttotalDonations := GetTotalDonations()\n\n\tif totalDonations != 1000 {\n\t\tt.Fatalf(\"expected total donations to be 1000ugnot, got %dugnot\", totalDonations)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\ttravel.currentCityIndex = 0\n\ttravel.cities = []City{\n\t\t{Name: \"Venice\", URL: \"https://example.com/venice.jpg\"},\n\t\t{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t}\n\n\toutput := Render(\"\")\n\n\texpectedCity := \"Venice\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL := \"https://example.com/venice.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n\n\ttravel.currentCityIndex = 1\n\toutput = Render(\"\")\n\n\texpectedCity = \"Paris\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL = \"https://example.com/paris.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kfF6dZYTyvdquPLYo/3PjZXpabSXOaIVJFd4wkROvT3eYEKF0Oq/bH0r63TBLMnf9HEuDjtZ9B5NORdBeqGLCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/stefann/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/stefann/registry\"\n)\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\ntype Profile struct {\n\tpfp string\n\taboutMe []string\n}\n\ntype Travel struct {\n\tcities []City\n\tcurrentCityIndex int\n\tjarLink string\n}\n\ntype Sponsorship struct {\n\tmaxSponsors int\n\tsponsors *avl.Tree\n\tDonationsCount int\n\tsponsorsCount int\n}\n\nvar (\n\tprofile Profile\n\ttravel Travel\n\tsponsorship Sponsorship\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\towner = ownable.NewWithAddress(registry.MainAddr())\n\n\tprofile = Profile{\n\t\tpfp: \"https://i.ibb.co/Bc5YNCx/DSC-0095a.jpg\",\n\t\taboutMe: []string{\n\t\t\t`### About Me`,\n\t\t\t`Hey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!`,\n\n\t\t\t`### Contributions`,\n\t\t\t`I'm just getting started, but you can follow my journey through gno.land right [here](https://github.com/gnolang/hackerspace/issues/94) 🔗`,\n\t\t},\n\t}\n\n\ttravel = Travel{\n\t\tcities: []City{\n\t\t\t{Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n\t\t\t{Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n\t\t\t{Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n\t\t\t{Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n\t\t\t{Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n\t\t\t{Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n\t\t\t{Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n\t\t\t{Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n\t\t\t{Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n\t\t\t{Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n\t\t\t{Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n\t\t\t{Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n\t\t\t{Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n\t\t\t{Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n\t\t},\n\t\tcurrentCityIndex: 0,\n\t\tjarLink: \"https://TODO\", // This value should be injected through UpdateJarLink after deployment.\n\t}\n\n\tsponsorship = Sponsorship{\n\t\tmaxSponsors: 5,\n\t\tsponsors: avl.NewTree(),\n\t\tDonationsCount: 0,\n\t\tsponsorsCount: 0,\n\t}\n}\n\nfunc UpdateCities(newCities []City) {\n\towner.AssertCallerIsOwner()\n\ttravel.cities = newCities\n}\n\nfunc AddCities(newCities ...City) {\n\towner.AssertCallerIsOwner()\n\n\ttravel.cities = append(travel.cities, newCities...)\n}\n\nfunc UpdateJarLink(newLink string) {\n\towner.AssertCallerIsOwner()\n\ttravel.jarLink = newLink\n}\n\nfunc UpdatePFP(url string) {\n\towner.AssertCallerIsOwner()\n\tprofile.pfp = url\n}\n\nfunc UpdateAboutMe(aboutMeStr string) {\n\towner.AssertCallerIsOwner()\n\tprofile.aboutMe = strings.Split(aboutMeStr, \"|\")\n}\n\nfunc AddAboutMeRows(newRows ...string) {\n\towner.AssertCallerIsOwner()\n\n\tprofile.aboutMe = append(profile.aboutMe, newRows...)\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n\towner.AssertCallerIsOwner()\n\tif newMax \u003c= 0 {\n\t\tpanic(\"maxSponsors must be greater than zero\")\n\t}\n\tsponsorship.maxSponsors = newMax\n}\n\nfunc Donate() {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\texistingAmount, exists := sponsorship.sponsors.Get(address.String())\n\tif exists {\n\t\tupdatedAmount := existingAmount.(std.Coins).Add(amount)\n\t\tsponsorship.sponsors.Set(address.String(), updatedAmount)\n\t} else {\n\t\tsponsorship.sponsors.Set(address.String(), amount)\n\t\tsponsorship.sponsorsCount++\n\t}\n\n\ttravel.currentCityIndex++\n\tsponsorship.DonationsCount++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\townerAddr := registry.MainAddr()\n\tbanker.SendCoins(std.CurrentRealm().Addr(), ownerAddr, banker.GetCoins(std.CurrentRealm().Addr()))\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc GetTopSponsors() []Sponsor {\n\tvar sponsorSlice SponsorSlice\n\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\taddr := std.Address(key)\n\t\tamount := value.(std.Coins)\n\t\tsponsorSlice = append(sponsorSlice, Sponsor{Address: addr, Amount: amount})\n\t\treturn false\n\t})\n\n\tsort.Sort(sponsorSlice)\n\treturn sponsorSlice\n}\n\nfunc GetTotalDonations() int {\n\ttotal := 0\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttotal += int(value.(std.Coins).AmountOf(\"ugnot\"))\n\t\treturn false\n\t})\n\treturn total\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", travel.cities[travel.currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='rows-3'\u003e\"\n\n\tout += \"\u003cdiv style='position: relative; text-align: center;'\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='background-image: url(%s); background-size: cover; background-position: center; width: 100%%; height: 600px; position: relative; border-radius: 15px; overflow: hidden;'\u003e\\n\\n\", travel.cities[travel.currentCityIndex%len(travel.cities)].URL)\n\n\tout += ufmt.Sprintf(\"\u003cimg src='%s' alt='my profile pic' style='width: 250px; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%%; border: 3px solid #1e1e1e; position: absolute; top: 75%%; left: 50%%; transform: translate(-50%%, -50%%);'\u003e\\n\\n\", profile.pfp)\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tfor _, rows := range profile.aboutMe {\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tout += rows + \"\\n\\n\"\n\t\tout += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := `\u003cdiv class=\"jumbotron\" style=\"display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 40px; padding-bottom: 50px; text-align: center;\"\u003e` + \"\\n\\n\"\n\n\tout += `\u003cdiv class=\"rows-2\" style=\"max-width: 500px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;\"\u003e` + \"\\n\"\n\n\tout += `\u003ch1 style=\"margin-bottom: 50px;\"\u003eHelp Me Travel The World\u003c/h1\u003e` + \"\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\"\n\n\tout += ufmt.Sprintf(`\u003cstrong style=\"font-size: 1.2em;\"\u003eI am currently in %s, \u003cbr\u003e tip the jar to send me somewhere else!\u003c/strong\u003e`, travel.cities[travel.currentCityIndex].Name)\n\n\tout += `\u003cbr\u003e\u003cspan style=\"font-size: 1.2em; font-style: italic; margin-top: 10px; display: inline-block;\"\u003eClick the jar, tip in GNOT coins, and watch my background change as I head to a new adventure!\u003c/span\u003e\u003c/p\u003e` + \"\\n\\n\"\n\n\tout += renderSponsors()\n\n\tout += `\u003c/div\u003e\u003c!-- /rows-2 --\u003e` + \"\\n\\n\"\n\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n\tif len(address) \u003c= 8 {\n\t\treturn address\n\t}\n\treturn address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc renderSponsors() string {\n\tout := `\u003ch3 style=\"margin-top: 5px; margin-bottom: 20px\"\u003eSponsor Leaderboard\u003c/h3\u003e` + \"\\n\"\n\n\tif sponsorship.sponsorsCount == 0 {\n\t\treturn out + `\u003cp style=\"text-align: center;\"\u003eNo sponsors yet. Be the first to tip the jar!\u003c/p\u003e` + \"\\n\"\n\t}\n\n\ttopSponsors := GetTopSponsors()\n\tnumSponsors := len(topSponsors)\n\tif numSponsors \u003e sponsorship.maxSponsors {\n\t\tnumSponsors = sponsorship.maxSponsors\n\t}\n\n\tout += `\u003cul style=\"list-style-type: none; padding: 0; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 300px; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tfor i := 0; i \u003c numSponsors; i++ {\n\t\tsponsor := topSponsors[i]\n\t\tisLastItem := (i == numSponsors-1)\n\n\t\tpadding := \"10px 5px\"\n\t\tborder := \"border-bottom: 1px solid #ddd;\"\n\n\t\tif isLastItem {\n\t\t\tpadding = \"8px 5px\"\n\t\t\tborder = \"\"\n\t\t}\n\n\t\tout += ufmt.Sprintf(\n\t\t\t`\u003cli style=\"padding: %s; %s text-align: left;\"\u003e\n\t\t\t\t\u003cstrong style=\"padding-left: 5px;\"\u003e%d. %s\u003c/strong\u003e\n\t\t\t\t\u003cspan style=\"float: right; padding-right: 5px;\"\u003e%s\u003c/span\u003e\n\t\t\t\u003c/li\u003e`,\n\t\t\tpadding, border, i+1, formatAddress(sponsor.Address.String()), sponsor.Amount.String(),\n\t\t)\n\t}\n\n\treturn out\n}\n\nfunc renderTipsJar() string {\n\tout := ufmt.Sprintf(`\u003ca href=\"%s\" target=\"_blank\" style=\"display: block; text-decoration: none;\"\u003e`, travel.jarLink) + \"\\n\"\n\n\tout += `\u003cimg src=\"https://i.ibb.co/4TH9zbw/tips-jar.png\" alt=\"Tips Jar\" style=\"width: 300px; height: auto; display: block; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tout += `\u003c/a\u003e` + \"\\n\"\n\n\treturn out\n}\n"},{"name":"home_test.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestUpdatePFP(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.pfp = \"\"\n\n\tUpdatePFP(\"https://example.com/pic.png\")\n\n\tif profile.pfp != \"https://example.com/pic.png\" {\n\t\tt.Fatalf(\"expected pfp to be https://example.com/pic.png, got %s\", profile.pfp)\n\t}\n}\n\nfunc TestUpdateAboutMe(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tUpdateAboutMe(\"This is my new bio.|I love coding!\")\n\n\texpected := []string{\"This is my new bio.\", \"I love coding!\"}\n\n\tif len(profile.aboutMe) != len(expected) {\n\t\tt.Fatalf(\"expected aboutMe to have length %d, got %d\", len(expected), len(profile.aboutMe))\n\t}\n\n\tfor i := range profile.aboutMe {\n\t\tif profile.aboutMe[i] != expected[i] {\n\t\t\tt.Fatalf(\"expected aboutMe[%d] to be %s, got %s\", i, expected[i], profile.aboutMe[i])\n\t\t}\n\t}\n}\n\nfunc TestUpdateCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tnewCities := []City{\n\t\t{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"},\n\t\t{Name: \"Vienna\", URL: \"https://example.com/vienna.jpg\"},\n\t}\n\n\tUpdateCities(newCities)\n\n\tif len(travel.cities) != 2 {\n\t\tt.Fatalf(\"expected 2 cities, got %d\", len(travel.cities))\n\t}\n\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[1].Name != \"Vienna\" {\n\t\tt.Fatalf(\"expected cities to be updated to Berlin and Vienna, got %+v\", travel.cities)\n\t}\n}\n\nfunc TestUpdateJarLink(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.jarLink = \"\"\n\n\tUpdateJarLink(\"https://example.com/jar\")\n\n\tif travel.jarLink != \"https://example.com/jar\" {\n\t\tt.Fatalf(\"expected jarLink to be https://example.com/jar, got %s\", travel.jarLink)\n\t}\n}\n\nfunc TestUpdateMaxSponsors(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tsponsorship.maxSponsors = 0\n\n\tUpdateMaxSponsors(10)\n\n\tif sponsorship.maxSponsors != 10 {\n\t\tt.Fatalf(\"expected maxSponsors to be 10, got %d\", sponsorship.maxSponsors)\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"expected panic for setting maxSponsors to 0\")\n\t\t}\n\t}()\n\tUpdateMaxSponsors(0)\n}\n\nfunc TestAddCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tAddCities(City{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"})\n\n\tif len(travel.cities) != 1 {\n\t\tt.Fatalf(\"expected 1 city, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[0].URL != \"https://example.com/berlin.jpg\" {\n\t\tt.Fatalf(\"expected city to be Berlin, got %+v\", travel.cities[0])\n\t}\n\n\tAddCities(\n\t\tCity{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t\tCity{Name: \"Tokyo\", URL: \"https://example.com/tokyo.jpg\"},\n\t)\n\n\tif len(travel.cities) != 3 {\n\t\tt.Fatalf(\"expected 3 cities, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[1].Name != \"Paris\" || travel.cities[2].Name != \"Tokyo\" {\n\t\tt.Fatalf(\"expected cities to be Paris and Tokyo, got %+v\", travel.cities[1:])\n\t}\n}\n\nfunc TestAddAboutMeRows(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tAddAboutMeRows(\"I love exploring new technologies!\")\n\n\tif len(profile.aboutMe) != 1 {\n\t\tt.Fatalf(\"expected 1 aboutMe row, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[0] != \"I love exploring new technologies!\" {\n\t\tt.Fatalf(\"expected first aboutMe row to be 'I love exploring new technologies!', got %s\", profile.aboutMe[0])\n\t}\n\n\tAddAboutMeRows(\"Travel is my passion!\", \"Always learning.\")\n\n\tif len(profile.aboutMe) != 3 {\n\t\tt.Fatalf(\"expected 3 aboutMe rows, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[1] != \"Travel is my passion!\" || profile.aboutMe[2] != \"Always learning.\" {\n\t\tt.Fatalf(\"expected aboutMe rows to be 'Travel is my passion!' and 'Always learning.', got %+v\", profile.aboutMe[1:])\n\t}\n}\n\nfunc TestDonate(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.DonationsCount = 0\n\tsponsorship.sponsorsCount = 0\n\ttravel.currentCityIndex = 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 500))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists := sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to be added, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected donation amount to be 500ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 1 {\n\t\tt.Fatalf(\"expected DonationsCount to be 1, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif sponsorship.sponsorsCount != 1 {\n\t\tt.Fatalf(\"expected sponsorsCount to be 1, got %d\", sponsorship.sponsorsCount)\n\t}\n\n\tif travel.currentCityIndex != 1 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 1, got %d\", travel.currentCityIndex)\n\t}\n\n\tcoinsSent = std.NewCoins(std.NewCoin(\"ugnot\", 300))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists = sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to exist after second donation, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 800 {\n\t\tt.Fatalf(\"expected total donation amount to be 800ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 2 {\n\t\tt.Fatalf(\"expected DonationsCount to be 2 after second donation, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif travel.currentCityIndex != 2 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 2 after second donation, got %d\", travel.currentCityIndex)\n\t}\n}\n\nfunc TestGetTopSponsors(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttopSponsors := GetTopSponsors()\n\n\tif len(topSponsors) != 3 {\n\t\tt.Fatalf(\"expected 3 sponsors, got %d\", len(topSponsors))\n\t}\n\n\tif topSponsors[0].Address.String() != \"g1address2\" || topSponsors[0].Amount.AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected top sponsor to be g1address2 with 500ugnot, got %s with %dugnot\", topSponsors[0].Address.String(), topSponsors[0].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[1].Address.String() != \"g1address1\" || topSponsors[1].Amount.AmountOf(\"ugnot\") != 300 {\n\t\tt.Fatalf(\"expected second sponsor to be g1address1 with 300ugnot, got %s with %dugnot\", topSponsors[1].Address.String(), topSponsors[1].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[2].Address.String() != \"g1address3\" || topSponsors[2].Amount.AmountOf(\"ugnot\") != 200 {\n\t\tt.Fatalf(\"expected third sponsor to be g1address3 with 200ugnot, got %s with %dugnot\", topSponsors[2].Address.String(), topSponsors[2].Amount.AmountOf(\"ugnot\"))\n\t}\n}\n\nfunc TestGetTotalDonations(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttotalDonations := GetTotalDonations()\n\n\tif totalDonations != 1000 {\n\t\tt.Fatalf(\"expected total donations to be 1000ugnot, got %dugnot\", totalDonations)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\ttravel.currentCityIndex = 0\n\ttravel.cities = []City{\n\t\t{Name: \"Venice\", URL: \"https://example.com/venice.jpg\"},\n\t\t{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t}\n\n\toutput := Render(\"\")\n\n\texpectedCity := \"Venice\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL := \"https://example.com/venice.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n\n\ttravel.currentCityIndex = 1\n\toutput = Render(\"\")\n\n\texpectedCity = \"Paris\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL = \"https://example.com/paris.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kfF6dZYTyvdquPLYo/3PjZXpabSXOaIVJFd4wkROvT3eYEKF0Oq/bH0r63TBLMnf9HEuDjtZ9B5NORdBeqGLCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"home","path":"gno.land/r/stefann/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/stefann/registry\"\n)\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\ntype Profile struct {\n\tpfp string\n\taboutMe []string\n}\n\ntype Travel struct {\n\tcities []City\n\tcurrentCityIndex int\n\tjarLink string\n}\n\ntype Sponsorship struct {\n\tmaxSponsors int\n\tsponsors *avl.Tree\n\tDonationsCount int\n\tsponsorsCount int\n}\n\nvar (\n\tprofile Profile\n\ttravel Travel\n\tsponsorship Sponsorship\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\towner = ownable.NewWithAddress(registry.MainAddr())\n\n\tprofile = Profile{\n\t\tpfp: \"https://i.ibb.co/Bc5YNCx/DSC-0095a.jpg\",\n\t\taboutMe: []string{\n\t\t\t`### About Me`,\n\t\t\t`Hey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!`,\n\n\t\t\t`### Contributions`,\n\t\t\t`I'm just getting started, but you can follow my journey through gno.land right [here](https://github.com/gnolang/hackerspace/issues/94) 🔗`,\n\t\t},\n\t}\n\n\ttravel = Travel{\n\t\tcities: []City{\n\t\t\t{Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n\t\t\t{Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n\t\t\t{Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n\t\t\t{Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n\t\t\t{Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n\t\t\t{Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n\t\t\t{Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n\t\t\t{Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n\t\t\t{Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n\t\t\t{Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n\t\t\t{Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n\t\t\t{Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n\t\t\t{Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n\t\t\t{Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n\t\t},\n\t\tcurrentCityIndex: 0,\n\t\tjarLink: \"https://TODO\", // This value should be injected through UpdateJarLink after deployment.\n\t}\n\n\tsponsorship = Sponsorship{\n\t\tmaxSponsors: 5,\n\t\tsponsors: avl.NewTree(),\n\t\tDonationsCount: 0,\n\t\tsponsorsCount: 0,\n\t}\n}\n\nfunc UpdateCities(newCities []City) {\n\towner.AssertCallerIsOwner()\n\ttravel.cities = newCities\n}\n\nfunc AddCities(newCities ...City) {\n\towner.AssertCallerIsOwner()\n\n\ttravel.cities = append(travel.cities, newCities...)\n}\n\nfunc UpdateJarLink(newLink string) {\n\towner.AssertCallerIsOwner()\n\ttravel.jarLink = newLink\n}\n\nfunc UpdatePFP(url string) {\n\towner.AssertCallerIsOwner()\n\tprofile.pfp = url\n}\n\nfunc UpdateAboutMe(aboutMeStr string) {\n\towner.AssertCallerIsOwner()\n\tprofile.aboutMe = strings.Split(aboutMeStr, \"|\")\n}\n\nfunc AddAboutMeRows(newRows ...string) {\n\towner.AssertCallerIsOwner()\n\n\tprofile.aboutMe = append(profile.aboutMe, newRows...)\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n\towner.AssertCallerIsOwner()\n\tif newMax \u003c= 0 {\n\t\tpanic(\"maxSponsors must be greater than zero\")\n\t}\n\tsponsorship.maxSponsors = newMax\n}\n\nfunc Donate() {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\texistingAmount, exists := sponsorship.sponsors.Get(address.String())\n\tif exists {\n\t\tupdatedAmount := existingAmount.(std.Coins).Add(amount)\n\t\tsponsorship.sponsors.Set(address.String(), updatedAmount)\n\t} else {\n\t\tsponsorship.sponsors.Set(address.String(), amount)\n\t\tsponsorship.sponsorsCount++\n\t}\n\n\ttravel.currentCityIndex++\n\tsponsorship.DonationsCount++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\townerAddr := registry.MainAddr()\n\tbanker.SendCoins(std.CurrentRealm().Addr(), ownerAddr, banker.GetCoins(std.CurrentRealm().Addr()))\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc GetTopSponsors() []Sponsor {\n\tvar sponsorSlice SponsorSlice\n\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\taddr := std.Address(key)\n\t\tamount := value.(std.Coins)\n\t\tsponsorSlice = append(sponsorSlice, Sponsor{Address: addr, Amount: amount})\n\t\treturn false\n\t})\n\n\tsort.Sort(sponsorSlice)\n\treturn sponsorSlice\n}\n\nfunc GetTotalDonations() int {\n\ttotal := 0\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttotal += int(value.(std.Coins).AmountOf(\"ugnot\"))\n\t\treturn false\n\t})\n\treturn total\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", travel.cities[travel.currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='rows-3'\u003e\"\n\n\tout += \"\u003cdiv style='position: relative; text-align: center;'\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='background-image: url(%s); background-size: cover; background-position: center; width: 100%%; height: 600px; position: relative; border-radius: 15px; overflow: hidden;'\u003e\\n\\n\", travel.cities[travel.currentCityIndex%len(travel.cities)].URL)\n\n\tout += ufmt.Sprintf(\"\u003cimg src='%s' alt='my profile pic' style='width: 250px; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%%; border: 3px solid #1e1e1e; position: absolute; top: 75%%; left: 50%%; transform: translate(-50%%, -50%%);'\u003e\\n\\n\", profile.pfp)\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tfor _, rows := range profile.aboutMe {\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tout += rows + \"\\n\\n\"\n\t\tout += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := `\u003cdiv class=\"jumbotron\" style=\"display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 40px; padding-bottom: 50px; text-align: center;\"\u003e` + \"\\n\\n\"\n\n\tout += `\u003cdiv class=\"rows-2\" style=\"max-width: 500px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;\"\u003e` + \"\\n\"\n\n\tout += `\u003ch1 style=\"margin-bottom: 50px;\"\u003eHelp Me Travel The World\u003c/h1\u003e` + \"\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\"\n\n\tout += ufmt.Sprintf(`\u003cstrong style=\"font-size: 1.2em;\"\u003eI am currently in %s, \u003cbr\u003e tip the jar to send me somewhere else!\u003c/strong\u003e`, travel.cities[travel.currentCityIndex].Name)\n\n\tout += `\u003cbr\u003e\u003cspan style=\"font-size: 1.2em; font-style: italic; margin-top: 10px; display: inline-block;\"\u003eClick the jar, tip in GNOT coins, and watch my background change as I head to a new adventure!\u003c/span\u003e\u003c/p\u003e` + \"\\n\\n\"\n\n\tout += renderSponsors()\n\n\tout += `\u003c/div\u003e\u003c!-- /rows-2 --\u003e` + \"\\n\\n\"\n\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n\tif len(address) \u003c= 8 {\n\t\treturn address\n\t}\n\treturn address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc renderSponsors() string {\n\tout := `\u003ch3 style=\"margin-top: 5px; margin-bottom: 20px\"\u003eSponsor Leaderboard\u003c/h3\u003e` + \"\\n\"\n\n\tif sponsorship.sponsorsCount == 0 {\n\t\treturn out + `\u003cp style=\"text-align: center;\"\u003eNo sponsors yet. Be the first to tip the jar!\u003c/p\u003e` + \"\\n\"\n\t}\n\n\ttopSponsors := GetTopSponsors()\n\tnumSponsors := len(topSponsors)\n\tif numSponsors \u003e sponsorship.maxSponsors {\n\t\tnumSponsors = sponsorship.maxSponsors\n\t}\n\n\tout += `\u003cul style=\"list-style-type: none; padding: 0; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 300px; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tfor i := 0; i \u003c numSponsors; i++ {\n\t\tsponsor := topSponsors[i]\n\t\tisLastItem := (i == numSponsors-1)\n\n\t\tpadding := \"10px 5px\"\n\t\tborder := \"border-bottom: 1px solid #ddd;\"\n\n\t\tif isLastItem {\n\t\t\tpadding = \"8px 5px\"\n\t\t\tborder = \"\"\n\t\t}\n\n\t\tout += ufmt.Sprintf(\n\t\t\t`\u003cli style=\"padding: %s; %s text-align: left;\"\u003e\n\t\t\t\t\u003cstrong style=\"padding-left: 5px;\"\u003e%d. %s\u003c/strong\u003e\n\t\t\t\t\u003cspan style=\"float: right; padding-right: 5px;\"\u003e%s\u003c/span\u003e\n\t\t\t\u003c/li\u003e`,\n\t\t\tpadding, border, i+1, formatAddress(sponsor.Address.String()), sponsor.Amount.String(),\n\t\t)\n\t}\n\n\treturn out\n}\n\nfunc renderTipsJar() string {\n\tout := ufmt.Sprintf(`\u003ca href=\"%s\" target=\"_blank\" style=\"display: block; text-decoration: none;\"\u003e`, travel.jarLink) + \"\\n\"\n\n\tout += `\u003cimg src=\"https://i.ibb.co/4TH9zbw/tips-jar.png\" alt=\"Tips Jar\" style=\"width: 300px; height: auto; display: block; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tout += `\u003c/a\u003e` + \"\\n\"\n\n\treturn out\n}\n"},{"name":"home_test.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestUpdatePFP(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.pfp = \"\"\n\n\tUpdatePFP(\"https://example.com/pic.png\")\n\n\tif profile.pfp != \"https://example.com/pic.png\" {\n\t\tt.Fatalf(\"expected pfp to be https://example.com/pic.png, got %s\", profile.pfp)\n\t}\n}\n\nfunc TestUpdateAboutMe(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tUpdateAboutMe(\"This is my new bio.|I love coding!\")\n\n\texpected := []string{\"This is my new bio.\", \"I love coding!\"}\n\n\tif len(profile.aboutMe) != len(expected) {\n\t\tt.Fatalf(\"expected aboutMe to have length %d, got %d\", len(expected), len(profile.aboutMe))\n\t}\n\n\tfor i := range profile.aboutMe {\n\t\tif profile.aboutMe[i] != expected[i] {\n\t\t\tt.Fatalf(\"expected aboutMe[%d] to be %s, got %s\", i, expected[i], profile.aboutMe[i])\n\t\t}\n\t}\n}\n\nfunc TestUpdateCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tnewCities := []City{\n\t\t{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"},\n\t\t{Name: \"Vienna\", URL: \"https://example.com/vienna.jpg\"},\n\t}\n\n\tUpdateCities(newCities)\n\n\tif len(travel.cities) != 2 {\n\t\tt.Fatalf(\"expected 2 cities, got %d\", len(travel.cities))\n\t}\n\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[1].Name != \"Vienna\" {\n\t\tt.Fatalf(\"expected cities to be updated to Berlin and Vienna, got %+v\", travel.cities)\n\t}\n}\n\nfunc TestUpdateJarLink(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.jarLink = \"\"\n\n\tUpdateJarLink(\"https://example.com/jar\")\n\n\tif travel.jarLink != \"https://example.com/jar\" {\n\t\tt.Fatalf(\"expected jarLink to be https://example.com/jar, got %s\", travel.jarLink)\n\t}\n}\n\nfunc TestUpdateMaxSponsors(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tsponsorship.maxSponsors = 0\n\n\tUpdateMaxSponsors(10)\n\n\tif sponsorship.maxSponsors != 10 {\n\t\tt.Fatalf(\"expected maxSponsors to be 10, got %d\", sponsorship.maxSponsors)\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"expected panic for setting maxSponsors to 0\")\n\t\t}\n\t}()\n\tUpdateMaxSponsors(0)\n}\n\nfunc TestAddCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tAddCities(City{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"})\n\n\tif len(travel.cities) != 1 {\n\t\tt.Fatalf(\"expected 1 city, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[0].URL != \"https://example.com/berlin.jpg\" {\n\t\tt.Fatalf(\"expected city to be Berlin, got %+v\", travel.cities[0])\n\t}\n\n\tAddCities(\n\t\tCity{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t\tCity{Name: \"Tokyo\", URL: \"https://example.com/tokyo.jpg\"},\n\t)\n\n\tif len(travel.cities) != 3 {\n\t\tt.Fatalf(\"expected 3 cities, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[1].Name != \"Paris\" || travel.cities[2].Name != \"Tokyo\" {\n\t\tt.Fatalf(\"expected cities to be Paris and Tokyo, got %+v\", travel.cities[1:])\n\t}\n}\n\nfunc TestAddAboutMeRows(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tAddAboutMeRows(\"I love exploring new technologies!\")\n\n\tif len(profile.aboutMe) != 1 {\n\t\tt.Fatalf(\"expected 1 aboutMe row, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[0] != \"I love exploring new technologies!\" {\n\t\tt.Fatalf(\"expected first aboutMe row to be 'I love exploring new technologies!', got %s\", profile.aboutMe[0])\n\t}\n\n\tAddAboutMeRows(\"Travel is my passion!\", \"Always learning.\")\n\n\tif len(profile.aboutMe) != 3 {\n\t\tt.Fatalf(\"expected 3 aboutMe rows, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[1] != \"Travel is my passion!\" || profile.aboutMe[2] != \"Always learning.\" {\n\t\tt.Fatalf(\"expected aboutMe rows to be 'Travel is my passion!' and 'Always learning.', got %+v\", profile.aboutMe[1:])\n\t}\n}\n\nfunc TestDonate(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.DonationsCount = 0\n\tsponsorship.sponsorsCount = 0\n\ttravel.currentCityIndex = 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 500))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists := sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to be added, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected donation amount to be 500ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 1 {\n\t\tt.Fatalf(\"expected DonationsCount to be 1, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif sponsorship.sponsorsCount != 1 {\n\t\tt.Fatalf(\"expected sponsorsCount to be 1, got %d\", sponsorship.sponsorsCount)\n\t}\n\n\tif travel.currentCityIndex != 1 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 1, got %d\", travel.currentCityIndex)\n\t}\n\n\tcoinsSent = std.NewCoins(std.NewCoin(\"ugnot\", 300))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists = sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to exist after second donation, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 800 {\n\t\tt.Fatalf(\"expected total donation amount to be 800ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 2 {\n\t\tt.Fatalf(\"expected DonationsCount to be 2 after second donation, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif travel.currentCityIndex != 2 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 2 after second donation, got %d\", travel.currentCityIndex)\n\t}\n}\n\nfunc TestGetTopSponsors(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttopSponsors := GetTopSponsors()\n\n\tif len(topSponsors) != 3 {\n\t\tt.Fatalf(\"expected 3 sponsors, got %d\", len(topSponsors))\n\t}\n\n\tif topSponsors[0].Address.String() != \"g1address2\" || topSponsors[0].Amount.AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected top sponsor to be g1address2 with 500ugnot, got %s with %dugnot\", topSponsors[0].Address.String(), topSponsors[0].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[1].Address.String() != \"g1address1\" || topSponsors[1].Amount.AmountOf(\"ugnot\") != 300 {\n\t\tt.Fatalf(\"expected second sponsor to be g1address1 with 300ugnot, got %s with %dugnot\", topSponsors[1].Address.String(), topSponsors[1].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[2].Address.String() != \"g1address3\" || topSponsors[2].Amount.AmountOf(\"ugnot\") != 200 {\n\t\tt.Fatalf(\"expected third sponsor to be g1address3 with 200ugnot, got %s with %dugnot\", topSponsors[2].Address.String(), topSponsors[2].Amount.AmountOf(\"ugnot\"))\n\t}\n}\n\nfunc TestGetTotalDonations(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttotalDonations := GetTotalDonations()\n\n\tif totalDonations != 1000 {\n\t\tt.Fatalf(\"expected total donations to be 1000ugnot, got %dugnot\", totalDonations)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\ttravel.currentCityIndex = 0\n\ttravel.cities = []City{\n\t\t{Name: \"Venice\", URL: \"https://example.com/venice.jpg\"},\n\t\t{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t}\n\n\toutput := Render(\"\")\n\n\texpectedCity := \"Venice\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL := \"https://example.com/venice.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n\n\ttravel.currentCityIndex = 1\n\toutput = Render(\"\")\n\n\texpectedCity = \"Paris\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL = \"https://example.com/paris.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kfF6dZYTyvdquPLYo/3PjZXpabSXOaIVJFd4wkROvT3eYEKF0Oq/bH0r63TBLMnf9HEuDjtZ9B5NORdBeqGLCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"image_embed","path":"gno.land/r/docs/img_embed","files":[{"name":"img_embed.gno","body":"package image_embed\n\n// Render displays a title and an embedded image from Imgur\nfunc Render(path string) string {\n\treturn `# Image Embed Example\n\nHere’s an example of embedding an image in a Gno realm:\n\n![Example Image](https://i.imgur.com/So4rBPB.jpeg)`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xSDQJTH8aeq3sXcERbhovePNUjfv3stlTbN57ML9JH/PGmeSCU/tj7PE35a34vfdfYehlpU8S6KhOFDJW5hFBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ingester","path":"gno.land/p/demo/gnorkle/ingester","files":[{"name":"errors.gno","body":"package ingester\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"ingester undefined\")\n"},{"name":"type.gno","body":"package ingester\n\n// Type indicates an ingester type.\ntype Type int\n\nconst (\n\t// TypeSingle indicates an ingester that can only ingest a single within a given period or no period.\n\tTypeSingle Type = iota\n\t// TypeMulti indicates an ingester that can ingest multiple within a given period or no period\n\tTypeMulti\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nM8LfZGJbzjq1uPrPUp/MOxeixGllvK0SuJRvkeXOlFF8VzKGW6hSP6TfPq8AoM/zeedZpCYjFvbR5Rd4+WSDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ingester","path":"gno.land/p/demo/gnorkle/ingester","files":[{"name":"errors.gno","body":"package ingester\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"ingester undefined\")\n"},{"name":"type.gno","body":"package ingester\n\n// Type indicates an ingester type.\ntype Type int\n\nconst (\n\t// TypeSingle indicates an ingester that can only ingest a single within a given period or no period.\n\tTypeSingle Type = iota\n\t// TypeMulti indicates an ingester that can ingest multiple within a given period or no period\n\tTypeMulti\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nM8LfZGJbzjq1uPrPUp/MOxeixGllvK0SuJRvkeXOlFF8VzKGW6hSP6TfPq8AoM/zeedZpCYjFvbR5Rd4+WSDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ingester","path":"gno.land/p/demo/gnorkle/ingester","files":[{"name":"errors.gno","body":"package ingester\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"ingester undefined\")\n"},{"name":"type.gno","body":"package ingester\n\n// Type indicates an ingester type.\ntype Type int\n\nconst (\n\t// TypeSingle indicates an ingester that can only ingest a single within a given period or no period.\n\tTypeSingle Type = iota\n\t// TypeMulti indicates an ingester that can ingest multiple within a given period or no period\n\tTypeMulti\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nM8LfZGJbzjq1uPrPUp/MOxeixGllvK0SuJRvkeXOlFF8VzKGW6hSP6TfPq8AoM/zeedZpCYjFvbR5Rd4+WSDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"int256","path":"gno.land/p/demo/int256","files":[{"name":"arithmetic.gno","body":"package int256\n\nimport (\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst divisionByZeroError = \"division by zero\"\n\n// Add adds two int256 values and saves the result in z.\nfunc (z *Int) Add(x, y *Int) *Int {\n\tz.value.Add(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// AddUint256 adds int256 and uint256 values and saves the result in z.\nfunc (z *Int) AddUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Add(\u0026x.value, y)\n\treturn z\n}\n\n// Sub subtracts two int256 values and saves the result in z.\nfunc (z *Int) Sub(x, y *Int) *Int {\n\tz.value.Sub(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// SubUint256 subtracts uint256 and int256 values and saves the result in z.\nfunc (z *Int) SubUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Sub(\u0026x.value, y)\n\treturn z\n}\n\n// Mul multiplies two int256 values and saves the result in z.\n//\n// It considers the signs of the operands to determine the sign of the result.\nfunc (z *Int) Mul(x, y *Int) *Int {\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\tz.value.Mul(xAbs, yAbs)\n\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Abs returns the absolute value of z.\nfunc (z *Int) Abs() *uint256.Uint {\n\tif z.Sign() \u003e= 0 {\n\t\treturn \u0026z.value\n\t}\n\n\tvar absValue uint256.Uint\n\tabsValue.Sub(uint0, \u0026z.value).Neg(\u0026z.value)\n\n\treturn \u0026absValue\n}\n\n// Div performs integer division z = x / y and returns z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// This function handles signed division using two's complement representation:\n// 1. Determine the sign of the quotient based on the signs of x and y.\n// 2. Perform unsigned division on the absolute values.\n// 3. Adjust the result's sign if necessary.\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -6 (11111010 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 6: 11111010 -\u003e 00000110\n//\t NOT: 00000101\n//\t +1: 00000110\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t6 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Div(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// Step 4: Perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Final result: -2 (11111110 in two's complement)\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Quo(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Rem sets z to the remainder x%y for y != 0 and returns z.\n//\n// The function performs the following steps:\n// 1. Check for division by zero\n// 2. Determine the signs of x and y\n// 3. Calculate the absolute values of x and y\n// 4. Perform unsigned division and get the remainder\n// 5. Adjust the sign of the remainder\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2 remainder 1\n//\tq = 2: 00000010 (not used in result)\n//\tr = 1: 00000001\n//\n// Step 5: Adjust sign of remainder (x is negative)\n//\n//\t-1: 00000001 -\u003e 11111111\n//\t NOT: 11111110\n//\t +1: 11111111\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: The sign of the remainder is always the same as the sign of the dividend (x).\nfunc (z *Int) Rem(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs := y.Abs()\n\n\t// Step 4: Perform unsigned division and get the remainder\n\tvar q, r uint256.Uint\n\tq.DivMod(xAbs, yAbs, \u0026r)\n\n\t// Step 5: Adjust the sign of the remainder\n\tif xSign \u003c 0 {\n\t\tr.Neg(\u0026r)\n\t}\n\n\tz.value.Set(\u0026r)\n\treturn z\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// The result (z) has the same sign as the divisor y.\nfunc (z *Int) Mod(x, y *Int) *Int {\n\treturn z.ModE(x, y)\n}\n\n// DivE performs Euclidean division of x by y, setting z to the quotient and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// Euclidean division satisfies the following properties:\n// 1. The remainder is always non-negative: 0 \u003c= x mod y \u003c |y|\n// 2. It follows the identity: x = y * (x div y) + (x mod y)\nfunc (z *Int) DivE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Compute the truncated division quotient\n\tz.Quo(x, y)\n\n\t// Compute the remainder\n\tr := new(Int).Rem(x, y)\n\n\t// If the remainder is negative, adjust the quotient\n\tif r.Sign() \u003c 0 {\n\t\tif y.Sign() \u003e 0 {\n\t\t\tz.Sub(z, NewInt(1))\n\t\t} else {\n\t\t\tz.Add(z, NewInt(1))\n\t\t}\n\t}\n\n\treturn z\n}\n\n// ModE computes the Euclidean modulus of x by y, setting z to the result and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// The Euclidean modulus is always non-negative and satisfies:\n//\n//\t0 \u003c= x mod y \u003c |y|\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Case 1: Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is positive)\n//\n//\t-1 + 3 = 2\n//\t11111111 + 00000011 = 00000010\n//\n// Final result: 2 (00000010)\n//\n// Case 2: Let x = -7 (11111001 in two's complement) and y = -3 (11111101 in two's complement)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is negative)\n//\n//\tNo adjustment needed\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: This implementation ensures that the result always has the same sign as y,\n// which is different from the Rem operation.\nfunc (z *Int) ModE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Perform T-division to get the remainder\n\tz.Rem(x, y)\n\n\t// Adjust the remainder if necessary\n\tif z.Sign() \u003e= 0 {\n\t\treturn z\n\t}\n\tif y.Sign() \u003e 0 {\n\t\treturn z.Add(z, y)\n\t}\n\n\treturn z.Sub(z, y)\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// If the y is positive, it adds y.value to x. otherwise, it subtracts y.Abs() from x.\nfunc AddDelta(z, x *uint256.Uint, y *Int) {\n\tif y.Sign() \u003e= 0 {\n\t\tz.Add(x, \u0026y.value)\n\t} else {\n\t\tz.Sub(x, y.Abs())\n\t}\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// This function returns true if the addition overflows, false otherwise.\nfunc AddDeltaOverflow(z, x *uint256.Uint, y *Int) bool {\n\tvar overflow bool\n\tif y.Sign() \u003e= 0 {\n\t\t_, overflow = z.AddOverflow(x, \u0026y.value)\n\t} else {\n\t\tvar absY uint256.Uint\n\t\tabsY.Sub(uint0, \u0026y.value) // absY = -y.value\n\t\t_, overflow = z.SubOverflow(x, \u0026absY)\n\t}\n\n\treturn overflow\n}\n"},{"name":"arithmetic_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst (\n\t// 2^255 - 1\n\tMAX_INT256 = \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\t// -(2^255 - 1)\n\tMINUS_MAX_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\n\t// 2^255 - 1\n\tMAX_UINT256 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMAX_UINT256_MINUS_1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tMINUS_MAX_UINT256 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMINUS_MAX_UINT256_PLUS_1 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tTWO_POW_128 = \"340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128 = \"-340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128_MINUS_1 = \"-340282366920938463463374607431768211457\"\n\tTWO_POW_128_MINUS_1 = \"340282366920938463463374607431768211455\"\n\n\tTWO_POW_129_MINUS_1 = \"680564733841876926926749214863536422911\"\n\n\tTWO_POW_254 = \"28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tMINUS_TWO_POW_254 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tHALF_MAX_INT256 = \"28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\tMINUS_HALF_MAX_INT256 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\n\tTWO_POW_255 = \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256_MINUS_1 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819969\"\n)\n\nfunc TestAdd(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t// NEGATIVE\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"1\", \"-1\", \"0\"},\n\t\t{\"3\", \"-3\", \"0\"},\n\t\t{\"-1\", \"-1\", \"-2\"},\n\t\t{\"-1\", \"-2\", \"-3\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{\"3\", \"-1\", \"2\"},\n\t\t// OVERFLOW\n\t\t{MAX_UINT256, \"1\", \"0\"},\n\t\t{MAX_INT256, \"1\", MIN_INT256},\n\t\t{MIN_INT256, \"-1\", MAX_INT256},\n\t\t{MAX_INT256, MAX_INT256, \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{MINUS_MAX_UINT256_PLUS_1, MAX_UINT256, \"1\"},\n\t\t{MINUS_MAX_UINT256, MAX_UINT256_MINUS_1, \"-1\"},\n\t\t// OVERFLOW\n\t\t{MINUS_MAX_UINT256, MAX_UINT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.AddUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"AddUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDelta(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y, want string\n\t}{\n\t\t{\"0\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"0\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\", \"1\"},\n\t\t{\"0\", \"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\", \"5\"},\n\t\t{\"5\", \"10\", \"-3\", \"7\"},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", MAX_UINT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := uint256.FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tAddDelta(z, x, y)\n\n\t\tif z.Neq(want) {\n\t\t\tt.Errorf(\"AddDelta(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, z.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDeltaOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", \"0\", false},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := AddDeltaOverflow(z, x, y)\n\t\tif result != tc.want {\n\t\t\tt.Errorf(\"AddDeltaOverflow(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, result, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"1\", \"-1\", \"2\"},\n\t\t{\"-1\", \"-1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, MINUS_MAX_UINT256, \"0\"},\n\t\t{MINUS_MAX_UINT256, \"0\", MINUS_MAX_UINT256},\n\t\t{MAX_INT256, MIN_INT256, \"-1\"},\n\t\t{MIN_INT256, MIN_INT256, \"0\"},\n\t\t{MAX_INT256, MAX_INT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Sub(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSubUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"-1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"1\", \"2\", \"-1\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"-1\", \"3\", \"-4\"},\n\t\t// underflow\n\t\t{MINUS_MAX_UINT256, \"1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, \"2\", \"-1\"},\n\t\t{MINUS_MAX_UINT256, \"3\", \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.SubUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"SubUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"3\", \"15\"},\n\t\t{\"-5\", \"3\", \"-15\"},\n\t\t{\"5\", \"-3\", \"-15\"},\n\t\t{\"0\", \"3\", \"0\"},\n\t\t{\"3\", \"0\", \"0\"},\n\t\t{\"-5\", \"-3\", \"15\"},\n\t\t{MAX_UINT256, \"1\", MAX_UINT256},\n\t\t{MAX_INT256, \"2\", \"-2\"},\n\t\t{TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MINUS_TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MAX_INT256, \"1\", MAX_INT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, expected string\n\t}{\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-1\"},\n\t\t{\"1\", \"-1\", \"-1\"},\n\t\t{\"-1\", \"-1\", \"1\"},\n\t\t{\"-6\", \"3\", \"-2\"},\n\t\t{\"10\", \"-2\", \"-5\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"7\", \"3\", \"2\"},\n\t\t{\"-7\", \"3\", \"-2\"},\n\t\t// the maximum value of a positive number in int256 is less than the maximum value of a uint256\n\t\t{MAX_INT256, \"2\", HALF_MAX_INT256},\n\t\t{MINUS_MAX_INT256, \"2\", MINUS_HALF_MAX_INT256},\n\t\t{MAX_INT256, \"-1\", MINUS_MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.x+\"/\"+tt.y, func(t *testing.T) {\n\t\t\tx := MustFromDecimal(tt.x)\n\t\t\ty := MustFromDecimal(tt.y)\n\t\t\tresult := Zero().Div(x, y)\n\t\t\tif result.String() != tt.expected {\n\t\t\t\tt.Errorf(\"Div(%s, %s) = %s, want %s\", tt.x, tt.y, result.String(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n\n\tt.Run(\"Division by zero\", func(t *testing.T) {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Div(1, 0) did not panic\")\n\t\t\t}\n\t\t}()\n\t\tx := MustFromDecimal(\"1\")\n\t\ty := MustFromDecimal(\"0\")\n\t\tZero().Div(x, y)\n\t})\n}\n\nfunc TestQuo(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"10\"},\n\t\t{\"10\", \"-1\", \"-10\"},\n\t\t{\"-10\", \"1\", \"-10\"},\n\t\t{\"-10\", \"-1\", \"10\"},\n\t\t{\"10\", \"-3\", \"-3\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"10\", \"3\", \"3\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Quo(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Quo(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRem(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"-1\"},\n\t\t{\"-10\", \"-3\", \"-1\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Rem(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rem(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"2\"},\n\t\t{\"-10\", \"-3\", \"2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModeOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{MIN_INT256, \"2\", \"0\"}, // MIN_INT256 % 2 = 0\n\t\t{MAX_INT256, \"2\", \"1\"}, // MAX_INT256 % 2 = 1\n\t\t{MIN_INT256, \"-1\", \"0\"}, // MIN_INT256 % -1 = 0\n\t\t{MAX_INT256, \"-1\", \"0\"}, // MAX_INT256 % -1 = 0\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := New().Mod(x, y)\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModPanic(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t}{\n\t\t{\"10\", \"0\"},\n\t\t{\"10\", \"-0\"},\n\t\t{\"-10\", \"0\"},\n\t\t{\"-10\", \"-0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Mod(%s, %s) did not panic\", tc.x, tc.y)\n\t\t\t}\n\t\t}()\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := New().Mod(x, y)\n\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, result.String(), \"0\")\n\t}\n}\n\nfunc TestDivE(t *testing.T) {\n\ttestCases := []struct {\n\t\tx, y int64\n\t\twant int64\n\t}{\n\t\t{8, 3, 2},\n\t\t{8, -3, -2},\n\t\t{-8, 3, -3},\n\t\t{-8, -3, 3},\n\t\t{1, 2, 0},\n\t\t{1, -2, 0},\n\t\t{-1, 2, -1},\n\t\t{-1, -2, 1},\n\t\t{0, 1, 0},\n\t\t{0, -1, 0},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tx := NewInt(tc.x)\n\t\ty := NewInt(tc.y)\n\t\twant := NewInt(tc.want)\n\t\tgot := new(Int).DivE(x, y)\n\t\tif got.Cmp(want) != 0 {\n\t\t\tt.Errorf(\"DivE(%v, %v) = %v, want %v\", tc.x, tc.y, got, want)\n\t\t}\n\t}\n}\n\nfunc TestDivEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"DivE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).DivE(x, y)\n}\n\nfunc TestModEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"ModE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).ModE(x, y)\n}\n\nfunc TestLargeNumbers(t *testing.T) {\n\tx, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\ty, _ := new(Int).SetString(\"987654321098765432109876543210\")\n\n\t// Expected results (calculated separately)\n\texpectedQ, _ := new(Int).SetString(\"0\")\n\texpectedR, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\n\tgotQ := new(Int).DivE(x, y)\n\tgotR := new(Int).ModE(x, y)\n\n\tif gotQ.Cmp(expectedQ) != 0 {\n\t\tt.Errorf(\"DivE with large numbers: got %v, want %v\", gotQ, expectedQ)\n\t}\n\n\tif gotR.Cmp(expectedR) != 0 {\n\t\tt.Errorf(\"ModE with large numbers: got %v, want %v\", gotR, expectedR)\n\t}\n}\n\nfunc TestAbs(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"-2\", \"2\"},\n\t\t{\"-100000000000\", \"100000000000\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Abs()\n\n\t\tif got.String() != tc.want {\n\t\t\tt.Errorf(\"Abs(%s) = %v, want %v\", tc.x, got.String(), tc.want)\n\t\t}\n\t}\n}\n"},{"name":"bitwise.gno","body":"package int256\n\n// Not sets z to the bitwise NOT of x and returns z.\n//\n// The bitwise NOT operation flips each bit of the operand.\nfunc (z *Int) Not(x *Int) *Int {\n\tz.value.Not(\u0026x.value)\n\treturn z\n}\n\n// And sets z to the bitwise AND of x and y and returns z.\n//\n// The bitwise AND operation results in a value that has a bit set\n// only if both corresponding bits of the operands are set.\nfunc (z *Int) And(x, y *Int) *Int {\n\tz.value.And(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Or sets z to the bitwise OR of x and y and returns z.\n//\n// The bitwise OR operation results in a value that has a bit set\n// if at least one of the corresponding bits of the operands is set.\nfunc (z *Int) Or(x, y *Int) *Int {\n\tz.value.Or(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Xor sets z to the bitwise XOR of x and y and returns z.\n//\n// The bitwise XOR operation results in a value that has a bit set\n// only if the corresponding bits of the operands are different.\nfunc (z *Int) Xor(x, y *Int) *Int {\n\tz.value.Xor(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Rsh sets z to the result of right-shifting x by n bits and returns z.\n//\n// Right shift operation moves all bits in the operand to the right by the specified number of positions.\n// Bits shifted out on the right are discarded, and zeros are shifted in on the left.\nfunc (z *Int) Rsh(x *Int, n uint) *Int {\n\tz.value.Rsh(\u0026x.value, n)\n\treturn z\n}\n\n// Lsh sets z to the result of left-shifting x by n bits and returns z.\n//\n// Left shift operation moves all bits in the operand to the left by the specified number of positions.\n// Bits shifted out on the left are discarded, and zeros are shifted in on the right.\nfunc (z *Int) Lsh(x *Int, n uint) *Int {\n\tz.value.Lsh(\u0026x.value, n)\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBitwise_And(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"1\"}, // 0101 \u0026 0001 = 0001\n\t\t{\"-1\", \"1\", \"1\"}, // 1111 \u0026 0001 = 0001\n\t\t{\"-5\", \"3\", \"3\"}, // 1111...1011 \u0026 0000...0011 = 0000...0011\n\t\t{MAX_UINT256, MAX_UINT256, MAX_UINT256},\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, \"0\"}, // 2^128 \u0026 (2^128 - 1) = 0\n\t\t{TWO_POW_128, MAX_UINT256, TWO_POW_128}, // 2^128 \u0026 MAX_INT256\n\t\t{MAX_UINT256, TWO_POW_128, TWO_POW_128}, // MAX_INT256 \u0026 2^128\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).And(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"And(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Or(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"5\"}, // 0101 | 0001 = 0101\n\t\t{\"-1\", \"1\", \"-1\"}, // 1111 | 0001 = 1111\n\t\t{\"-5\", \"3\", \"-5\"}, // 1111...1011 | 0000...0011 = 1111...1011\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, TWO_POW_129_MINUS_1},\n\t\t{TWO_POW_128, MAX_UINT256, MAX_UINT256},\n\t\t{\"0\", TWO_POW_128, TWO_POW_128}, // 0 | 2^128 = 2^128\n\t\t{MAX_UINT256, TWO_POW_128, MAX_UINT256}, // MAX_INT256 | 2^128 = MAX_INT256\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Or(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\tx.String(), y.String(), got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Not(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"5\", \"-6\"}, // 0101 -\u003e 1111...1010\n\t\t{\"-1\", \"0\"}, // 1111...1111 -\u003e 0000...0000\n\t\t{TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // NOT 2^128\n\t\t{TWO_POW_255, MIN_INT256_MINUS_1}, // NOT 2^255\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Not(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Not(%s) = %s, want %s\", x.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Xor(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"4\"}, // 0101 ^ 0001 = 0100\n\t\t{\"-1\", \"1\", \"-2\"}, // 1111...1111 ^ 0000...0001 = 1111...1110\n\t\t{\"-5\", \"3\", \"-8\"}, // 1111...1011 ^ 0000...0011 = 1111...1000\n\t\t{TWO_POW_128, TWO_POW_128, \"0\"}, // 2^128 ^ 2^128 = 0\n\t\t{MAX_UINT256, TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // MAX_INT256 ^ 2^128\n\t\t{TWO_POW_255, MAX_UINT256, MIN_INT256_MINUS_1}, // 2^255 ^ MAX_INT256\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\ty, _ := FromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Xor(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Xor(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Rsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 1, \"2\"}, // 0101 \u003e\u003e 1 = 0010\n\t\t{\"42\", 3, \"5\"}, // 00101010 \u003e\u003e 3 = 00000101\n\t\t{TWO_POW_128, 128, \"1\"},\n\t\t{MAX_UINT256, 255, \"1\"},\n\t\t{TWO_POW_255, 254, \"2\"},\n\t\t{MINUS_TWO_POW_128, 128, TWO_POW_128_MINUS_1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Rsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Lsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 2, \"20\"}, // 0101 \u003c\u003c 2 = 10100\n\t\t{\"42\", 5, \"1344\"}, // 00101010 \u003c\u003c 5 = 10101000000\n\t\t{\"1\", 128, TWO_POW_128}, // 1 \u003c\u003c 128 = 2^128\n\t\t{\"2\", 254, TWO_POW_255},\n\t\t{\"1\", 255, MIN_INT256}, // 1 \u003c\u003c 255 = MIN_INT256 (overflow)\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Lsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"package int256\n\nfunc (z *Int) Eq(x *Int) bool {\n\treturn z.value.Eq(\u0026x.value)\n}\n\nfunc (z *Int) Neq(x *Int) bool {\n\treturn !z.Eq(x)\n}\n\n// Cmp compares z and x and returns:\n//\n// - 1 if z \u003e x\n// - 0 if z == x\n// - -1 if z \u003c x\nfunc (z *Int) Cmp(x *Int) int {\n\tzSign, xSign := z.Sign(), x.Sign()\n\n\tif zSign == xSign {\n\t\treturn z.value.Cmp(\u0026x.value)\n\t}\n\n\tif zSign == 0 {\n\t\treturn -xSign\n\t}\n\n\treturn zSign\n}\n\n// IsZero returns true if z == 0\nfunc (z *Int) IsZero() bool {\n\treturn z.value.IsZero()\n}\n\n// IsNeg returns true if z \u003c 0\nfunc (z *Int) IsNeg() bool {\n\treturn z.Sign() \u003c 0\n}\n\nfunc (z *Int) Lt(x *Int) bool {\n\treturn z.Cmp(x) \u003c 0\n}\n\nfunc (z *Int) Gt(x *Int) bool {\n\treturn z.Cmp(x) \u003e 0\n}\n\nfunc (z *Int) Le(x *Int) bool {\n\treturn z.Cmp(x) \u003c= 0\n}\n\nfunc (z *Int) Ge(x *Int) bool {\n\treturn z.Cmp(x) \u003e= 0\n}\n\n// Clone creates a new Int identical to z\nfunc (z *Int) Clone() *Int {\n\treturn New().FromUint256(\u0026z.value)\n}\n"},{"name":"cmp_test.gno","body":"package int256\n\nimport \"testing\"\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", true},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", true},\n\t\t{\"-1\", \"-1\", true},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestNeq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Neq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Neq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"-1\", \"0\", -1},\n\t\t{\"0\", \"-1\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", -1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"-0\", true},\n\t\t{\"1\", false},\n\t\t{\"-1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsZero()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", false},\n\t\t{\"-0\", false},\n\t\t{\"1\", false},\n\t\t{\"-1\", true},\n\t\t{\"10\", false},\n\t\t{\"-10\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsNeg()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsNeg(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestLt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Lt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Lt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestGt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Gt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Gt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []string{\n\t\t\"0\",\n\t\t\"-0\",\n\t\t\"1\",\n\t\t\"-1\",\n\t\t\"10\",\n\t\t\"-10\",\n\t\t\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t\t\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t}\n\n\tfor _, xStr := range tests {\n\t\tx, err := FromDecimal(xStr)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty := x.Clone()\n\n\t\tif x.Neq(y) {\n\t\t\tt.Errorf(\"cloned value is not equal to original value\")\n\t\t}\n\t}\n}\n"},{"name":"conversion.gno","body":"package int256\n\nimport (\n\t\"math\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\n// SetInt64 sets the Int to the value of the provided int64.\n//\n// This method allows for easy conversion from standard Go integer types\n// to Int, correctly handling both positive and negative values.\nfunc (z *Int) SetInt64(v int64) *Int {\n\tif v \u003e= 0 {\n\t\tz.value.SetUint64(uint64(v))\n\t} else {\n\t\tz.value.SetUint64(uint64(-v)).Neg(\u0026z.value)\n\t}\n\treturn z\n}\n\n// SetUint64 sets the Int to the value of the provided uint64.\nfunc (z *Int) SetUint64(v uint64) *Int {\n\tz.value.SetUint64(v)\n\treturn z\n}\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Int) Uint64() uint64 {\n\tif z.Sign() \u003c 0 {\n\t\tpanic(\"cannot convert negative int256 to uint64\")\n\t}\n\tif z.value.Gt(uint256.NewUint(0).SetUint64(math.MaxUint64)) {\n\t\tpanic(\"overflow: int256 does not fit in uint64 type\")\n\t}\n\treturn z.value.Uint64()\n}\n\n// Int64 returns the lower 64-bits of z\nfunc (z *Int) Int64() int64 {\n\tif z.Sign() \u003e= 0 {\n\t\tif z.value.BitLen() \u003e 64 {\n\t\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t\t}\n\t\treturn int64(z.value.Uint64())\n\t}\n\tvar temp uint256.Uint\n\ttemp.Sub(uint256.NewUint(0), \u0026z.value) // temp = -z.value\n\tif temp.BitLen() \u003e 64 {\n\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t}\n\treturn -int64(temp.Uint64())\n}\n\n// Neg sets z to -x and returns z.)\nfunc (z *Int) Neg(x *Int) *Int {\n\tif x.IsZero() {\n\t\tz.value.Clear()\n\t} else {\n\t\tz.value.Neg(\u0026x.value)\n\t}\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Int) Set(x *Int) *Int {\n\tz.value.Set(\u0026x.value)\n\treturn z\n}\n\n// SetFromUint256 converts a uint256.Uint to Int and sets the value to z.\nfunc (z *Int) SetUint256(x *uint256.Uint) *Int {\n\tz.value.Set(x)\n\treturn z\n}\n\n// ToString returns a string representation of z in base 10.\n// The string is prefixed with a minus sign if z is negative.\nfunc (z *Int) String() string {\n\tif z.value.IsZero() {\n\t\treturn \"0\"\n\t}\n\tsign := z.Sign()\n\tvar temp uint256.Uint\n\tif sign \u003e= 0 {\n\t\ttemp.Set(\u0026z.value)\n\t} else {\n\t\t// temp = -z.value\n\t\ttemp.Sub(uint256.NewUint(0), \u0026z.value)\n\t}\n\ts := temp.Dec()\n\tif sign \u003c 0 {\n\t\treturn \"-\" + s\n\t}\n\treturn s\n}\n\n// NilToZero returns the Int if it's not nil, or a new zero-valued Int otherwise.\n//\n// This method is useful for safely handling potentially nil Int pointers,\n// ensuring that operations always have a valid Int to work with.\nfunc (z *Int) NilToZero() *Int {\n\tif z == nil {\n\t\treturn Zero()\n\t}\n\treturn z\n}\n"},{"name":"conversion_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestSetInt64(t *testing.T) {\n\ttests := []struct {\n\t\tv int64\n\t\texpect int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // overflow (max int64)\n\t\t{-9223372036854775808, -1}, // underflow (min int64)\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetInt64(tt.v)\n\t\tif z.Sign() != tt.expect {\n\t\t\tt.Errorf(\"SetInt64(%d) = %d, want %d\", tt.v, z.Sign(), tt.expect)\n\t\t}\n\t}\n}\n\nfunc TestUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant uint64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"9223372036854775808\", 9223372036854775808},\n\t\t{\"18446744073709551615\", 18446744073709551615},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Uint64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"-1\"},\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Uint64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Uint64()\n\t}\n}\n\nfunc TestInt64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"-1\", -1},\n\t\t{\"-9223372036854775808\", -9223372036854775808},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Int64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestInt64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Int64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Int64()\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"-1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"9223372036854775807\", \"-9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Neg(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Neg(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSet(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Set(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Set(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSetUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tgot := New()\n\n\t\tz := uint256.MustFromDecimal(tt.x)\n\t\tgot.SetUint256(z)\n\n\t\tif got.String() != tt.want {\n\t\t\tt.Errorf(\"SetUint256(%s) = %s, want %s\", tt.x, got.String(), tt.want)\n\t\t}\n\t}\n}\n\nfunc TestString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"123456789\", \"123456789\"},\n\t\t{\"-123456789\", \"-123456789\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"}, // max uint64\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t\t{TWO_POW_128_MINUS_1, TWO_POW_128_MINUS_1},\n\t\t{MINUS_TWO_POW_128, MINUS_TWO_POW_128},\n\t\t{MIN_INT256, MIN_INT256},\n\t\t{MAX_INT256, MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, err := FromDecimal(tt.input)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Failed to parse input (%s): %v\", tt.input, err)\n\t\t\tcontinue\n\t\t}\n\n\t\toutput := x.String()\n\n\t\tif output != tt.expected {\n\t\t\tt.Errorf(\"String(%s) = %s, want %s\", tt.input, output, tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestNilToZero(t *testing.T) {\n\tz := New().NilToZero()\n\tif z.Sign() != 0 {\n\t\tt.Errorf(\"NilToZero() = %d, want %d\", z.Sign(), 0)\n\t}\n}\n"},{"name":"doc.gno","body":"// The int256 package provides a 256-bit signed interger type for gno,\n// supporting arithmetic operations and bitwise manipulation.\n//\n// It designed for applications that require high-precision arithmetic\n// beyond the standard 64-bit range.\n//\n// ## Features\n//\n// - 256-bit Signed Integers: Support for large integer ranging from -2^255 to 2^255-1.\n// - Two's Complement Representation: Efficient storage and computation using two's complement.\n// - Arithmetic Operations: Add, Sub, Mul, Div, Mod, Inc, Dec, etc.\n// - Bitwise Operations: And, Or, Xor, Not, etc.\n// - Comparison Operations: Cmp, Eq, Lt, Gt, etc.\n// - Conversion Functions: Int to Uint, Uint to Int, etc.\n// - String Parsing and Formatting: Convert to and from decimal string representation.\n//\n// ## Notes\n//\n// - Some methods may panic when encountering invalid inputs or overflows.\n// - The `int256.Int` type can interact with `uint256.Uint` from the `p/demo/uint256` package.\n// - Unlike `math/big.Int`, the `int256.Int` type has fixed size (256-bit) and does not support\n// arbitrary precision arithmetic.\n//\n// # Division and modulus operations\n//\n// This package provides three different division and modulus operations:\n//\n// - Div and Rem: Truncated division (T-division)\n// - Quo and Mod: Floored division (F-division)\n// - DivE and ModE: Euclidean division (E-division)\n//\n// Truncated division (Div, Rem) is the most common implementation in modern processors\n// and programming languages. It rounds quotients towards zero and the remainder\n// always has the same sign as the dividend.\n//\n// Floored division (Quo, Mod) always rounds quotients towards negative infinity.\n// This ensures that the modulus is always non-negative for a positive divisor,\n// which can be useful in certain algorithms.\n//\n// Euclidean division (DivE, ModE) ensures that the remainder is always non-negative,\n// regardless of the signs of the dividend and divisor. This has several mathematical\n// advantages:\n//\n// 1. It satisfies the unique division with remainder theorem.\n// 2. It preserves division and modulus properties for negative divisors.\n// 3. It allows for optimizations in divisions by powers of two.\n//\n// [+] Currently, ModE and Mod are shared the same implementation.\n//\n// ## Performance considerations:\n//\n// - For most operations, the performance difference between these division types is negligible.\n// - Euclidean division may require an extra comparison and potentially an addition,\n// which could impact performance in extremely performance-critical scenarios.\n// - For divisions by powers of two, Euclidean division can be optimized to use\n// bitwise operations, potentially offering better performance.\n//\n// ## Usage guidelines:\n//\n// - Use Div and Rem for general-purpose division that matches most common expectations.\n// - Use Quo and Mod when you need a non-negative remainder for positive divisors,\n// or when implementing algorithms that assume floored division.\n// - Use DivE and ModE when you need the mathematical properties of Euclidean division,\n// or when working with algorithms that specifically require it.\n//\n// Note: When working with negative numbers, be aware of the differences in behavior\n// between these division types, especially at the boundaries of integer ranges.\n//\n// ## References\n//\n// Daan Leijen, “Division and Modulus for Computer Scientists”:\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\npackage int256\n"},{"name":"int256.gno","body":"package int256\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nvar (\n\tint1 = NewInt(1)\n\tuint0 = uint256.NewUint(0)\n\tuint1 = uint256.NewUint(1)\n)\n\ntype Int struct {\n\tvalue uint256.Uint\n}\n\n// New creates and returns a new Int initialized to zero.\nfunc New() *Int {\n\treturn \u0026Int{}\n}\n\n// NewInt allocates and returns a new Int set to the value of the provided int64.\nfunc NewInt(x int64) *Int {\n\treturn New().SetInt64(x)\n}\n\n// Zero returns a new Int initialized to 0.\n//\n// This function is useful for creating a starting point for calculations or\n// when an explicit zero value is needed.\nfunc Zero() *Int { return \u0026Int{} }\n\n// One returns a new Int initialized to one.\n//\n// This function is convenient for operations that require a unit value,\n// such as incrementing or serving as an identity element in multiplication.\nfunc One() *Int {\n\treturn \u0026Int{\n\t\tvalue: *uint256.NewUint(1),\n\t}\n}\n\n// Sign determines the sign of the Int.\n//\n// It returns -1 for negative numbers, 0 for zero, and +1 for positive numbers.\nfunc (z *Int) Sign() int {\n\tif z == nil || z.IsZero() {\n\t\treturn 0\n\t}\n\t// Right shift the value by 255 bits to check the sign bit.\n\t// In two's complement representation, the most significant bit (MSB) is the sign bit.\n\t// If the MSB is 0, the number is positive; if it is 1, the number is negative.\n\t//\n\t// Example:\n\t// Original value: 1 0 1 0 ... 0 1 (256 bits)\n\t// After Rsh 255: 0 0 0 0 ... 0 1 (1 bit)\n\t//\n\t// This approach is highly efficient as it avoids the need for comparisons\n\t// or arithmetic operations on the full 256-bit number. Instead it reduces\n\t// the problem to checking a single bit.\n\t//\n\t// Additionally, this method will work correctly for all values,\n\t// including the minimum possible negative number (which in two's complement\n\t// doesn't have a positive counterpart in the same bit range).\n\tvar temp uint256.Uint\n\tif temp.Rsh(\u0026z.value, 255).IsZero() {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// FromDecimal creates a new Int from a decimal string representation.\n// It handles both positive and negative values.\n//\n// This function is useful for parsing user input or reading numeric data\n// from text-based formats.\nfunc FromDecimal(s string) (*Int, error) {\n\treturn New().SetString(s)\n}\n\n// MustFromDecimal is similar to FromDecimal but panics if the input string\n// is not a valid decimal representation.\nfunc MustFromDecimal(s string) *Int {\n\tz, err := FromDecimal(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn z\n}\n\n// SetString sets the Int to the value represented by the input string.\n// This method supports decimal string representations of integers and handles\n// both positive and negative values.\nfunc (z *Int) SetString(s string) (*Int, error) {\n\tif len(s) == 0 {\n\t\treturn nil, errors.New(\"cannot set int256 from empty string\")\n\t}\n\n\t// Check for negative sign\n\tneg := s[0] == '-'\n\tif neg || s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\n\t// Convert string to uint256\n\ttemp, err := uint256.FromDecimal(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If negative, negate the uint256 value\n\tif neg {\n\t\ttemp.Neg(temp)\n\t}\n\n\tz.value.Set(temp)\n\treturn z, nil\n}\n\n// FromUint256 sets the Int to the value of the provided Uint256.\n//\n// This method allows for conversion from unsigned 256-bit integers\n// to signed integers.\nfunc (z *Int) FromUint256(v *uint256.Uint) *Int {\n\tz.value.Set(v)\n\treturn z\n}\n"},{"name":"int256_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestInitializers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tfn func() *Int\n\t\twantSign int\n\t\twantStr string\n\t}{\n\t\t{\"Zero\", Zero, 0, \"0\"},\n\t\t{\"New\", New, 0, \"0\"},\n\t\t{\"One\", One, 1, \"1\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := tt.fn()\n\t\t\tif z.Sign() != tt.wantSign {\n\t\t\t\tt.Errorf(\"%s() = %d, want %d\", tt.name, z.Sign(), tt.wantSign)\n\t\t\t}\n\t\t\tif z.String() != tt.wantStr {\n\t\t\t\tt.Errorf(\"%s() = %s, want %s\", tt.name, z.String(), tt.wantStr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNewInt(t *testing.T) {\n\ttests := []struct {\n\t\tinput int64\n\t\texpected int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // max int64\n\t\t{-9223372036854775808, -1}, // min int64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := NewInt(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"NewInt(%d) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestMustFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tshouldPanic bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123\", 1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif tt.shouldPanic {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"MustFromDecimal(%q) expected panic, but got nil\", tt.input)\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\n\t\tz := MustFromDecimal(tt.input)\n\t\tif !tt.shouldPanic \u0026\u0026 z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"MustFromDecimal(%q) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t}\n\t}\n}\n\nfunc TestSetUint64(t *testing.T) {\n\ttests := []uint64{\n\t\t0,\n\t\t1,\n\t\t18446744073709551615, // max uint64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetUint64(tt)\n\t\tif z.Sign() \u003c 0 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is negative\", tt)\n\t\t}\n\t\tif tt == 0 \u0026\u0026 z.Sign() != 0 {\n\t\t\tt.Errorf(\"SetUint64(0) result is not zero\")\n\t\t}\n\t\tif tt \u003e 0 \u0026\u0026 z.Sign() != 1 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is not positive\", tt)\n\t\t}\n\t}\n}\n\nfunc TestFromUint256(t *testing.T) {\n\ttests := []struct {\n\t\tinput *uint256.Uint\n\t\texpected int\n\t}{\n\t\t{uint256.NewUint(0), 0},\n\t\t{uint256.NewUint(1), 1},\n\t\t{uint256.NewUint(18446744073709551615), 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().FromUint256(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"FromUint256(%v) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"-0\", 0},\n\t\t{\"+0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"-1\", -1},\n\t\t{\"9223372036854775807\", 1},\n\t\t{\"-9223372036854775808\", -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tgot := z.Sign()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Sign(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc BenchmarkSign(b *testing.B) {\n\tz := New()\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tz.SetUint64(uint64(i))\n\t\tz.Sign()\n\t}\n}\n\nfunc TestSetAndToString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := New().SetString(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"SetString(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"SetString(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"SetString(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t} else if z.String() != tt.input {\n\t\t\t\tt.Errorf(\"SetString(%s) string representation is incorrect. Expected: %s, Actual: %s\", tt.input, tt.input, z.String())\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0SDXm6mKBmxVkrJlrR/ZZiAr80I9n6lCMoKnqHiFbvL7NuNJM+5u29UjkEPU32QsqybI6FlA/h3egaWIfXFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"int256","path":"gno.land/p/demo/int256","files":[{"name":"arithmetic.gno","body":"package int256\n\nimport (\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst divisionByZeroError = \"division by zero\"\n\n// Add adds two int256 values and saves the result in z.\nfunc (z *Int) Add(x, y *Int) *Int {\n\tz.value.Add(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// AddUint256 adds int256 and uint256 values and saves the result in z.\nfunc (z *Int) AddUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Add(\u0026x.value, y)\n\treturn z\n}\n\n// Sub subtracts two int256 values and saves the result in z.\nfunc (z *Int) Sub(x, y *Int) *Int {\n\tz.value.Sub(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// SubUint256 subtracts uint256 and int256 values and saves the result in z.\nfunc (z *Int) SubUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Sub(\u0026x.value, y)\n\treturn z\n}\n\n// Mul multiplies two int256 values and saves the result in z.\n//\n// It considers the signs of the operands to determine the sign of the result.\nfunc (z *Int) Mul(x, y *Int) *Int {\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\tz.value.Mul(xAbs, yAbs)\n\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Abs returns the absolute value of z.\nfunc (z *Int) Abs() *uint256.Uint {\n\tif z.Sign() \u003e= 0 {\n\t\treturn \u0026z.value\n\t}\n\n\tvar absValue uint256.Uint\n\tabsValue.Sub(uint0, \u0026z.value).Neg(\u0026z.value)\n\n\treturn \u0026absValue\n}\n\n// Div performs integer division z = x / y and returns z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// This function handles signed division using two's complement representation:\n// 1. Determine the sign of the quotient based on the signs of x and y.\n// 2. Perform unsigned division on the absolute values.\n// 3. Adjust the result's sign if necessary.\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -6 (11111010 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 6: 11111010 -\u003e 00000110\n//\t NOT: 00000101\n//\t +1: 00000110\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t6 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Div(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// Step 4: Perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Final result: -2 (11111110 in two's complement)\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Quo(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Rem sets z to the remainder x%y for y != 0 and returns z.\n//\n// The function performs the following steps:\n// 1. Check for division by zero\n// 2. Determine the signs of x and y\n// 3. Calculate the absolute values of x and y\n// 4. Perform unsigned division and get the remainder\n// 5. Adjust the sign of the remainder\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2 remainder 1\n//\tq = 2: 00000010 (not used in result)\n//\tr = 1: 00000001\n//\n// Step 5: Adjust sign of remainder (x is negative)\n//\n//\t-1: 00000001 -\u003e 11111111\n//\t NOT: 11111110\n//\t +1: 11111111\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: The sign of the remainder is always the same as the sign of the dividend (x).\nfunc (z *Int) Rem(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs := y.Abs()\n\n\t// Step 4: Perform unsigned division and get the remainder\n\tvar q, r uint256.Uint\n\tq.DivMod(xAbs, yAbs, \u0026r)\n\n\t// Step 5: Adjust the sign of the remainder\n\tif xSign \u003c 0 {\n\t\tr.Neg(\u0026r)\n\t}\n\n\tz.value.Set(\u0026r)\n\treturn z\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// The result (z) has the same sign as the divisor y.\nfunc (z *Int) Mod(x, y *Int) *Int {\n\treturn z.ModE(x, y)\n}\n\n// DivE performs Euclidean division of x by y, setting z to the quotient and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// Euclidean division satisfies the following properties:\n// 1. The remainder is always non-negative: 0 \u003c= x mod y \u003c |y|\n// 2. It follows the identity: x = y * (x div y) + (x mod y)\nfunc (z *Int) DivE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Compute the truncated division quotient\n\tz.Quo(x, y)\n\n\t// Compute the remainder\n\tr := new(Int).Rem(x, y)\n\n\t// If the remainder is negative, adjust the quotient\n\tif r.Sign() \u003c 0 {\n\t\tif y.Sign() \u003e 0 {\n\t\t\tz.Sub(z, NewInt(1))\n\t\t} else {\n\t\t\tz.Add(z, NewInt(1))\n\t\t}\n\t}\n\n\treturn z\n}\n\n// ModE computes the Euclidean modulus of x by y, setting z to the result and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// The Euclidean modulus is always non-negative and satisfies:\n//\n//\t0 \u003c= x mod y \u003c |y|\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Case 1: Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is positive)\n//\n//\t-1 + 3 = 2\n//\t11111111 + 00000011 = 00000010\n//\n// Final result: 2 (00000010)\n//\n// Case 2: Let x = -7 (11111001 in two's complement) and y = -3 (11111101 in two's complement)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is negative)\n//\n//\tNo adjustment needed\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: This implementation ensures that the result always has the same sign as y,\n// which is different from the Rem operation.\nfunc (z *Int) ModE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Perform T-division to get the remainder\n\tz.Rem(x, y)\n\n\t// Adjust the remainder if necessary\n\tif z.Sign() \u003e= 0 {\n\t\treturn z\n\t}\n\tif y.Sign() \u003e 0 {\n\t\treturn z.Add(z, y)\n\t}\n\n\treturn z.Sub(z, y)\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// If the y is positive, it adds y.value to x. otherwise, it subtracts y.Abs() from x.\nfunc AddDelta(z, x *uint256.Uint, y *Int) {\n\tif y.Sign() \u003e= 0 {\n\t\tz.Add(x, \u0026y.value)\n\t} else {\n\t\tz.Sub(x, y.Abs())\n\t}\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// This function returns true if the addition overflows, false otherwise.\nfunc AddDeltaOverflow(z, x *uint256.Uint, y *Int) bool {\n\tvar overflow bool\n\tif y.Sign() \u003e= 0 {\n\t\t_, overflow = z.AddOverflow(x, \u0026y.value)\n\t} else {\n\t\tvar absY uint256.Uint\n\t\tabsY.Sub(uint0, \u0026y.value) // absY = -y.value\n\t\t_, overflow = z.SubOverflow(x, \u0026absY)\n\t}\n\n\treturn overflow\n}\n"},{"name":"arithmetic_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst (\n\t// 2^255 - 1\n\tMAX_INT256 = \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\t// -(2^255 - 1)\n\tMINUS_MAX_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\n\t// 2^255 - 1\n\tMAX_UINT256 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMAX_UINT256_MINUS_1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tMINUS_MAX_UINT256 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMINUS_MAX_UINT256_PLUS_1 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tTWO_POW_128 = \"340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128 = \"-340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128_MINUS_1 = \"-340282366920938463463374607431768211457\"\n\tTWO_POW_128_MINUS_1 = \"340282366920938463463374607431768211455\"\n\n\tTWO_POW_129_MINUS_1 = \"680564733841876926926749214863536422911\"\n\n\tTWO_POW_254 = \"28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tMINUS_TWO_POW_254 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tHALF_MAX_INT256 = \"28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\tMINUS_HALF_MAX_INT256 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\n\tTWO_POW_255 = \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256_MINUS_1 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819969\"\n)\n\nfunc TestAdd(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t// NEGATIVE\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"1\", \"-1\", \"0\"},\n\t\t{\"3\", \"-3\", \"0\"},\n\t\t{\"-1\", \"-1\", \"-2\"},\n\t\t{\"-1\", \"-2\", \"-3\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{\"3\", \"-1\", \"2\"},\n\t\t// OVERFLOW\n\t\t{MAX_UINT256, \"1\", \"0\"},\n\t\t{MAX_INT256, \"1\", MIN_INT256},\n\t\t{MIN_INT256, \"-1\", MAX_INT256},\n\t\t{MAX_INT256, MAX_INT256, \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{MINUS_MAX_UINT256_PLUS_1, MAX_UINT256, \"1\"},\n\t\t{MINUS_MAX_UINT256, MAX_UINT256_MINUS_1, \"-1\"},\n\t\t// OVERFLOW\n\t\t{MINUS_MAX_UINT256, MAX_UINT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.AddUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"AddUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDelta(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y, want string\n\t}{\n\t\t{\"0\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"0\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\", \"1\"},\n\t\t{\"0\", \"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\", \"5\"},\n\t\t{\"5\", \"10\", \"-3\", \"7\"},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", MAX_UINT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := uint256.FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tAddDelta(z, x, y)\n\n\t\tif z.Neq(want) {\n\t\t\tt.Errorf(\"AddDelta(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, z.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDeltaOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", \"0\", false},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := AddDeltaOverflow(z, x, y)\n\t\tif result != tc.want {\n\t\t\tt.Errorf(\"AddDeltaOverflow(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, result, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"1\", \"-1\", \"2\"},\n\t\t{\"-1\", \"-1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, MINUS_MAX_UINT256, \"0\"},\n\t\t{MINUS_MAX_UINT256, \"0\", MINUS_MAX_UINT256},\n\t\t{MAX_INT256, MIN_INT256, \"-1\"},\n\t\t{MIN_INT256, MIN_INT256, \"0\"},\n\t\t{MAX_INT256, MAX_INT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Sub(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSubUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"-1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"1\", \"2\", \"-1\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"-1\", \"3\", \"-4\"},\n\t\t// underflow\n\t\t{MINUS_MAX_UINT256, \"1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, \"2\", \"-1\"},\n\t\t{MINUS_MAX_UINT256, \"3\", \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.SubUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"SubUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"3\", \"15\"},\n\t\t{\"-5\", \"3\", \"-15\"},\n\t\t{\"5\", \"-3\", \"-15\"},\n\t\t{\"0\", \"3\", \"0\"},\n\t\t{\"3\", \"0\", \"0\"},\n\t\t{\"-5\", \"-3\", \"15\"},\n\t\t{MAX_UINT256, \"1\", MAX_UINT256},\n\t\t{MAX_INT256, \"2\", \"-2\"},\n\t\t{TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MINUS_TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MAX_INT256, \"1\", MAX_INT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, expected string\n\t}{\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-1\"},\n\t\t{\"1\", \"-1\", \"-1\"},\n\t\t{\"-1\", \"-1\", \"1\"},\n\t\t{\"-6\", \"3\", \"-2\"},\n\t\t{\"10\", \"-2\", \"-5\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"7\", \"3\", \"2\"},\n\t\t{\"-7\", \"3\", \"-2\"},\n\t\t// the maximum value of a positive number in int256 is less than the maximum value of a uint256\n\t\t{MAX_INT256, \"2\", HALF_MAX_INT256},\n\t\t{MINUS_MAX_INT256, \"2\", MINUS_HALF_MAX_INT256},\n\t\t{MAX_INT256, \"-1\", MINUS_MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.x+\"/\"+tt.y, func(t *testing.T) {\n\t\t\tx := MustFromDecimal(tt.x)\n\t\t\ty := MustFromDecimal(tt.y)\n\t\t\tresult := Zero().Div(x, y)\n\t\t\tif result.String() != tt.expected {\n\t\t\t\tt.Errorf(\"Div(%s, %s) = %s, want %s\", tt.x, tt.y, result.String(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n\n\tt.Run(\"Division by zero\", func(t *testing.T) {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Div(1, 0) did not panic\")\n\t\t\t}\n\t\t}()\n\t\tx := MustFromDecimal(\"1\")\n\t\ty := MustFromDecimal(\"0\")\n\t\tZero().Div(x, y)\n\t})\n}\n\nfunc TestQuo(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"10\"},\n\t\t{\"10\", \"-1\", \"-10\"},\n\t\t{\"-10\", \"1\", \"-10\"},\n\t\t{\"-10\", \"-1\", \"10\"},\n\t\t{\"10\", \"-3\", \"-3\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"10\", \"3\", \"3\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Quo(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Quo(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRem(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"-1\"},\n\t\t{\"-10\", \"-3\", \"-1\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Rem(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rem(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"2\"},\n\t\t{\"-10\", \"-3\", \"2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModeOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{MIN_INT256, \"2\", \"0\"}, // MIN_INT256 % 2 = 0\n\t\t{MAX_INT256, \"2\", \"1\"}, // MAX_INT256 % 2 = 1\n\t\t{MIN_INT256, \"-1\", \"0\"}, // MIN_INT256 % -1 = 0\n\t\t{MAX_INT256, \"-1\", \"0\"}, // MAX_INT256 % -1 = 0\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := New().Mod(x, y)\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModPanic(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t}{\n\t\t{\"10\", \"0\"},\n\t\t{\"10\", \"-0\"},\n\t\t{\"-10\", \"0\"},\n\t\t{\"-10\", \"-0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Mod(%s, %s) did not panic\", tc.x, tc.y)\n\t\t\t}\n\t\t}()\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := New().Mod(x, y)\n\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, result.String(), \"0\")\n\t}\n}\n\nfunc TestDivE(t *testing.T) {\n\ttestCases := []struct {\n\t\tx, y int64\n\t\twant int64\n\t}{\n\t\t{8, 3, 2},\n\t\t{8, -3, -2},\n\t\t{-8, 3, -3},\n\t\t{-8, -3, 3},\n\t\t{1, 2, 0},\n\t\t{1, -2, 0},\n\t\t{-1, 2, -1},\n\t\t{-1, -2, 1},\n\t\t{0, 1, 0},\n\t\t{0, -1, 0},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tx := NewInt(tc.x)\n\t\ty := NewInt(tc.y)\n\t\twant := NewInt(tc.want)\n\t\tgot := new(Int).DivE(x, y)\n\t\tif got.Cmp(want) != 0 {\n\t\t\tt.Errorf(\"DivE(%v, %v) = %v, want %v\", tc.x, tc.y, got, want)\n\t\t}\n\t}\n}\n\nfunc TestDivEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"DivE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).DivE(x, y)\n}\n\nfunc TestModEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"ModE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).ModE(x, y)\n}\n\nfunc TestLargeNumbers(t *testing.T) {\n\tx, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\ty, _ := new(Int).SetString(\"987654321098765432109876543210\")\n\n\t// Expected results (calculated separately)\n\texpectedQ, _ := new(Int).SetString(\"0\")\n\texpectedR, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\n\tgotQ := new(Int).DivE(x, y)\n\tgotR := new(Int).ModE(x, y)\n\n\tif gotQ.Cmp(expectedQ) != 0 {\n\t\tt.Errorf(\"DivE with large numbers: got %v, want %v\", gotQ, expectedQ)\n\t}\n\n\tif gotR.Cmp(expectedR) != 0 {\n\t\tt.Errorf(\"ModE with large numbers: got %v, want %v\", gotR, expectedR)\n\t}\n}\n\nfunc TestAbs(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"-2\", \"2\"},\n\t\t{\"-100000000000\", \"100000000000\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Abs()\n\n\t\tif got.String() != tc.want {\n\t\t\tt.Errorf(\"Abs(%s) = %v, want %v\", tc.x, got.String(), tc.want)\n\t\t}\n\t}\n}\n"},{"name":"bitwise.gno","body":"package int256\n\n// Not sets z to the bitwise NOT of x and returns z.\n//\n// The bitwise NOT operation flips each bit of the operand.\nfunc (z *Int) Not(x *Int) *Int {\n\tz.value.Not(\u0026x.value)\n\treturn z\n}\n\n// And sets z to the bitwise AND of x and y and returns z.\n//\n// The bitwise AND operation results in a value that has a bit set\n// only if both corresponding bits of the operands are set.\nfunc (z *Int) And(x, y *Int) *Int {\n\tz.value.And(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Or sets z to the bitwise OR of x and y and returns z.\n//\n// The bitwise OR operation results in a value that has a bit set\n// if at least one of the corresponding bits of the operands is set.\nfunc (z *Int) Or(x, y *Int) *Int {\n\tz.value.Or(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Xor sets z to the bitwise XOR of x and y and returns z.\n//\n// The bitwise XOR operation results in a value that has a bit set\n// only if the corresponding bits of the operands are different.\nfunc (z *Int) Xor(x, y *Int) *Int {\n\tz.value.Xor(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Rsh sets z to the result of right-shifting x by n bits and returns z.\n//\n// Right shift operation moves all bits in the operand to the right by the specified number of positions.\n// Bits shifted out on the right are discarded, and zeros are shifted in on the left.\nfunc (z *Int) Rsh(x *Int, n uint) *Int {\n\tz.value.Rsh(\u0026x.value, n)\n\treturn z\n}\n\n// Lsh sets z to the result of left-shifting x by n bits and returns z.\n//\n// Left shift operation moves all bits in the operand to the left by the specified number of positions.\n// Bits shifted out on the left are discarded, and zeros are shifted in on the right.\nfunc (z *Int) Lsh(x *Int, n uint) *Int {\n\tz.value.Lsh(\u0026x.value, n)\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBitwise_And(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"1\"}, // 0101 \u0026 0001 = 0001\n\t\t{\"-1\", \"1\", \"1\"}, // 1111 \u0026 0001 = 0001\n\t\t{\"-5\", \"3\", \"3\"}, // 1111...1011 \u0026 0000...0011 = 0000...0011\n\t\t{MAX_UINT256, MAX_UINT256, MAX_UINT256},\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, \"0\"}, // 2^128 \u0026 (2^128 - 1) = 0\n\t\t{TWO_POW_128, MAX_UINT256, TWO_POW_128}, // 2^128 \u0026 MAX_INT256\n\t\t{MAX_UINT256, TWO_POW_128, TWO_POW_128}, // MAX_INT256 \u0026 2^128\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).And(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"And(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Or(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"5\"}, // 0101 | 0001 = 0101\n\t\t{\"-1\", \"1\", \"-1\"}, // 1111 | 0001 = 1111\n\t\t{\"-5\", \"3\", \"-5\"}, // 1111...1011 | 0000...0011 = 1111...1011\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, TWO_POW_129_MINUS_1},\n\t\t{TWO_POW_128, MAX_UINT256, MAX_UINT256},\n\t\t{\"0\", TWO_POW_128, TWO_POW_128}, // 0 | 2^128 = 2^128\n\t\t{MAX_UINT256, TWO_POW_128, MAX_UINT256}, // MAX_INT256 | 2^128 = MAX_INT256\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Or(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\tx.String(), y.String(), got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Not(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"5\", \"-6\"}, // 0101 -\u003e 1111...1010\n\t\t{\"-1\", \"0\"}, // 1111...1111 -\u003e 0000...0000\n\t\t{TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // NOT 2^128\n\t\t{TWO_POW_255, MIN_INT256_MINUS_1}, // NOT 2^255\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Not(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Not(%s) = %s, want %s\", x.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Xor(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"4\"}, // 0101 ^ 0001 = 0100\n\t\t{\"-1\", \"1\", \"-2\"}, // 1111...1111 ^ 0000...0001 = 1111...1110\n\t\t{\"-5\", \"3\", \"-8\"}, // 1111...1011 ^ 0000...0011 = 1111...1000\n\t\t{TWO_POW_128, TWO_POW_128, \"0\"}, // 2^128 ^ 2^128 = 0\n\t\t{MAX_UINT256, TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // MAX_INT256 ^ 2^128\n\t\t{TWO_POW_255, MAX_UINT256, MIN_INT256_MINUS_1}, // 2^255 ^ MAX_INT256\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\ty, _ := FromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Xor(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Xor(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Rsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 1, \"2\"}, // 0101 \u003e\u003e 1 = 0010\n\t\t{\"42\", 3, \"5\"}, // 00101010 \u003e\u003e 3 = 00000101\n\t\t{TWO_POW_128, 128, \"1\"},\n\t\t{MAX_UINT256, 255, \"1\"},\n\t\t{TWO_POW_255, 254, \"2\"},\n\t\t{MINUS_TWO_POW_128, 128, TWO_POW_128_MINUS_1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Rsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Lsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 2, \"20\"}, // 0101 \u003c\u003c 2 = 10100\n\t\t{\"42\", 5, \"1344\"}, // 00101010 \u003c\u003c 5 = 10101000000\n\t\t{\"1\", 128, TWO_POW_128}, // 1 \u003c\u003c 128 = 2^128\n\t\t{\"2\", 254, TWO_POW_255},\n\t\t{\"1\", 255, MIN_INT256}, // 1 \u003c\u003c 255 = MIN_INT256 (overflow)\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Lsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"package int256\n\nfunc (z *Int) Eq(x *Int) bool {\n\treturn z.value.Eq(\u0026x.value)\n}\n\nfunc (z *Int) Neq(x *Int) bool {\n\treturn !z.Eq(x)\n}\n\n// Cmp compares z and x and returns:\n//\n// - 1 if z \u003e x\n// - 0 if z == x\n// - -1 if z \u003c x\nfunc (z *Int) Cmp(x *Int) int {\n\tzSign, xSign := z.Sign(), x.Sign()\n\n\tif zSign == xSign {\n\t\treturn z.value.Cmp(\u0026x.value)\n\t}\n\n\tif zSign == 0 {\n\t\treturn -xSign\n\t}\n\n\treturn zSign\n}\n\n// IsZero returns true if z == 0\nfunc (z *Int) IsZero() bool {\n\treturn z.value.IsZero()\n}\n\n// IsNeg returns true if z \u003c 0\nfunc (z *Int) IsNeg() bool {\n\treturn z.Sign() \u003c 0\n}\n\nfunc (z *Int) Lt(x *Int) bool {\n\treturn z.Cmp(x) \u003c 0\n}\n\nfunc (z *Int) Gt(x *Int) bool {\n\treturn z.Cmp(x) \u003e 0\n}\n\nfunc (z *Int) Le(x *Int) bool {\n\treturn z.Cmp(x) \u003c= 0\n}\n\nfunc (z *Int) Ge(x *Int) bool {\n\treturn z.Cmp(x) \u003e= 0\n}\n\n// Clone creates a new Int identical to z\nfunc (z *Int) Clone() *Int {\n\treturn New().FromUint256(\u0026z.value)\n}\n"},{"name":"cmp_test.gno","body":"package int256\n\nimport \"testing\"\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", true},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", true},\n\t\t{\"-1\", \"-1\", true},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestNeq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Neq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Neq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"-1\", \"0\", -1},\n\t\t{\"0\", \"-1\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", -1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"-0\", true},\n\t\t{\"1\", false},\n\t\t{\"-1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsZero()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", false},\n\t\t{\"-0\", false},\n\t\t{\"1\", false},\n\t\t{\"-1\", true},\n\t\t{\"10\", false},\n\t\t{\"-10\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsNeg()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsNeg(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestLt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Lt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Lt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestGt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Gt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Gt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []string{\n\t\t\"0\",\n\t\t\"-0\",\n\t\t\"1\",\n\t\t\"-1\",\n\t\t\"10\",\n\t\t\"-10\",\n\t\t\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t\t\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t}\n\n\tfor _, xStr := range tests {\n\t\tx, err := FromDecimal(xStr)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty := x.Clone()\n\n\t\tif x.Neq(y) {\n\t\t\tt.Errorf(\"cloned value is not equal to original value\")\n\t\t}\n\t}\n}\n"},{"name":"conversion.gno","body":"package int256\n\nimport (\n\t\"math\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\n// SetInt64 sets the Int to the value of the provided int64.\n//\n// This method allows for easy conversion from standard Go integer types\n// to Int, correctly handling both positive and negative values.\nfunc (z *Int) SetInt64(v int64) *Int {\n\tif v \u003e= 0 {\n\t\tz.value.SetUint64(uint64(v))\n\t} else {\n\t\tz.value.SetUint64(uint64(-v)).Neg(\u0026z.value)\n\t}\n\treturn z\n}\n\n// SetUint64 sets the Int to the value of the provided uint64.\nfunc (z *Int) SetUint64(v uint64) *Int {\n\tz.value.SetUint64(v)\n\treturn z\n}\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Int) Uint64() uint64 {\n\tif z.Sign() \u003c 0 {\n\t\tpanic(\"cannot convert negative int256 to uint64\")\n\t}\n\tif z.value.Gt(uint256.NewUint(0).SetUint64(math.MaxUint64)) {\n\t\tpanic(\"overflow: int256 does not fit in uint64 type\")\n\t}\n\treturn z.value.Uint64()\n}\n\n// Int64 returns the lower 64-bits of z\nfunc (z *Int) Int64() int64 {\n\tif z.Sign() \u003e= 0 {\n\t\tif z.value.BitLen() \u003e 64 {\n\t\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t\t}\n\t\treturn int64(z.value.Uint64())\n\t}\n\tvar temp uint256.Uint\n\ttemp.Sub(uint256.NewUint(0), \u0026z.value) // temp = -z.value\n\tif temp.BitLen() \u003e 64 {\n\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t}\n\treturn -int64(temp.Uint64())\n}\n\n// Neg sets z to -x and returns z.)\nfunc (z *Int) Neg(x *Int) *Int {\n\tif x.IsZero() {\n\t\tz.value.Clear()\n\t} else {\n\t\tz.value.Neg(\u0026x.value)\n\t}\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Int) Set(x *Int) *Int {\n\tz.value.Set(\u0026x.value)\n\treturn z\n}\n\n// SetFromUint256 converts a uint256.Uint to Int and sets the value to z.\nfunc (z *Int) SetUint256(x *uint256.Uint) *Int {\n\tz.value.Set(x)\n\treturn z\n}\n\n// ToString returns a string representation of z in base 10.\n// The string is prefixed with a minus sign if z is negative.\nfunc (z *Int) String() string {\n\tif z.value.IsZero() {\n\t\treturn \"0\"\n\t}\n\tsign := z.Sign()\n\tvar temp uint256.Uint\n\tif sign \u003e= 0 {\n\t\ttemp.Set(\u0026z.value)\n\t} else {\n\t\t// temp = -z.value\n\t\ttemp.Sub(uint256.NewUint(0), \u0026z.value)\n\t}\n\ts := temp.Dec()\n\tif sign \u003c 0 {\n\t\treturn \"-\" + s\n\t}\n\treturn s\n}\n\n// NilToZero returns the Int if it's not nil, or a new zero-valued Int otherwise.\n//\n// This method is useful for safely handling potentially nil Int pointers,\n// ensuring that operations always have a valid Int to work with.\nfunc (z *Int) NilToZero() *Int {\n\tif z == nil {\n\t\treturn Zero()\n\t}\n\treturn z\n}\n"},{"name":"conversion_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestSetInt64(t *testing.T) {\n\ttests := []struct {\n\t\tv int64\n\t\texpect int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // overflow (max int64)\n\t\t{-9223372036854775808, -1}, // underflow (min int64)\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetInt64(tt.v)\n\t\tif z.Sign() != tt.expect {\n\t\t\tt.Errorf(\"SetInt64(%d) = %d, want %d\", tt.v, z.Sign(), tt.expect)\n\t\t}\n\t}\n}\n\nfunc TestUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant uint64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"9223372036854775808\", 9223372036854775808},\n\t\t{\"18446744073709551615\", 18446744073709551615},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Uint64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"-1\"},\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Uint64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Uint64()\n\t}\n}\n\nfunc TestInt64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"-1\", -1},\n\t\t{\"-9223372036854775808\", -9223372036854775808},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Int64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestInt64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Int64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Int64()\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"-1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"9223372036854775807\", \"-9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Neg(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Neg(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSet(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Set(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Set(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSetUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tgot := New()\n\n\t\tz := uint256.MustFromDecimal(tt.x)\n\t\tgot.SetUint256(z)\n\n\t\tif got.String() != tt.want {\n\t\t\tt.Errorf(\"SetUint256(%s) = %s, want %s\", tt.x, got.String(), tt.want)\n\t\t}\n\t}\n}\n\nfunc TestString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"123456789\", \"123456789\"},\n\t\t{\"-123456789\", \"-123456789\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"}, // max uint64\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t\t{TWO_POW_128_MINUS_1, TWO_POW_128_MINUS_1},\n\t\t{MINUS_TWO_POW_128, MINUS_TWO_POW_128},\n\t\t{MIN_INT256, MIN_INT256},\n\t\t{MAX_INT256, MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, err := FromDecimal(tt.input)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Failed to parse input (%s): %v\", tt.input, err)\n\t\t\tcontinue\n\t\t}\n\n\t\toutput := x.String()\n\n\t\tif output != tt.expected {\n\t\t\tt.Errorf(\"String(%s) = %s, want %s\", tt.input, output, tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestNilToZero(t *testing.T) {\n\tz := New().NilToZero()\n\tif z.Sign() != 0 {\n\t\tt.Errorf(\"NilToZero() = %d, want %d\", z.Sign(), 0)\n\t}\n}\n"},{"name":"doc.gno","body":"// The int256 package provides a 256-bit signed interger type for gno,\n// supporting arithmetic operations and bitwise manipulation.\n//\n// It designed for applications that require high-precision arithmetic\n// beyond the standard 64-bit range.\n//\n// ## Features\n//\n// - 256-bit Signed Integers: Support for large integer ranging from -2^255 to 2^255-1.\n// - Two's Complement Representation: Efficient storage and computation using two's complement.\n// - Arithmetic Operations: Add, Sub, Mul, Div, Mod, Inc, Dec, etc.\n// - Bitwise Operations: And, Or, Xor, Not, etc.\n// - Comparison Operations: Cmp, Eq, Lt, Gt, etc.\n// - Conversion Functions: Int to Uint, Uint to Int, etc.\n// - String Parsing and Formatting: Convert to and from decimal string representation.\n//\n// ## Notes\n//\n// - Some methods may panic when encountering invalid inputs or overflows.\n// - The `int256.Int` type can interact with `uint256.Uint` from the `p/demo/uint256` package.\n// - Unlike `math/big.Int`, the `int256.Int` type has fixed size (256-bit) and does not support\n// arbitrary precision arithmetic.\n//\n// # Division and modulus operations\n//\n// This package provides three different division and modulus operations:\n//\n// - Div and Rem: Truncated division (T-division)\n// - Quo and Mod: Floored division (F-division)\n// - DivE and ModE: Euclidean division (E-division)\n//\n// Truncated division (Div, Rem) is the most common implementation in modern processors\n// and programming languages. It rounds quotients towards zero and the remainder\n// always has the same sign as the dividend.\n//\n// Floored division (Quo, Mod) always rounds quotients towards negative infinity.\n// This ensures that the modulus is always non-negative for a positive divisor,\n// which can be useful in certain algorithms.\n//\n// Euclidean division (DivE, ModE) ensures that the remainder is always non-negative,\n// regardless of the signs of the dividend and divisor. This has several mathematical\n// advantages:\n//\n// 1. It satisfies the unique division with remainder theorem.\n// 2. It preserves division and modulus properties for negative divisors.\n// 3. It allows for optimizations in divisions by powers of two.\n//\n// [+] Currently, ModE and Mod are shared the same implementation.\n//\n// ## Performance considerations:\n//\n// - For most operations, the performance difference between these division types is negligible.\n// - Euclidean division may require an extra comparison and potentially an addition,\n// which could impact performance in extremely performance-critical scenarios.\n// - For divisions by powers of two, Euclidean division can be optimized to use\n// bitwise operations, potentially offering better performance.\n//\n// ## Usage guidelines:\n//\n// - Use Div and Rem for general-purpose division that matches most common expectations.\n// - Use Quo and Mod when you need a non-negative remainder for positive divisors,\n// or when implementing algorithms that assume floored division.\n// - Use DivE and ModE when you need the mathematical properties of Euclidean division,\n// or when working with algorithms that specifically require it.\n//\n// Note: When working with negative numbers, be aware of the differences in behavior\n// between these division types, especially at the boundaries of integer ranges.\n//\n// ## References\n//\n// Daan Leijen, “Division and Modulus for Computer Scientists”:\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\npackage int256\n"},{"name":"int256.gno","body":"package int256\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nvar (\n\tint1 = NewInt(1)\n\tuint0 = uint256.NewUint(0)\n\tuint1 = uint256.NewUint(1)\n)\n\ntype Int struct {\n\tvalue uint256.Uint\n}\n\n// New creates and returns a new Int initialized to zero.\nfunc New() *Int {\n\treturn \u0026Int{}\n}\n\n// NewInt allocates and returns a new Int set to the value of the provided int64.\nfunc NewInt(x int64) *Int {\n\treturn New().SetInt64(x)\n}\n\n// Zero returns a new Int initialized to 0.\n//\n// This function is useful for creating a starting point for calculations or\n// when an explicit zero value is needed.\nfunc Zero() *Int { return \u0026Int{} }\n\n// One returns a new Int initialized to one.\n//\n// This function is convenient for operations that require a unit value,\n// such as incrementing or serving as an identity element in multiplication.\nfunc One() *Int {\n\treturn \u0026Int{\n\t\tvalue: *uint256.NewUint(1),\n\t}\n}\n\n// Sign determines the sign of the Int.\n//\n// It returns -1 for negative numbers, 0 for zero, and +1 for positive numbers.\nfunc (z *Int) Sign() int {\n\tif z == nil || z.IsZero() {\n\t\treturn 0\n\t}\n\t// Right shift the value by 255 bits to check the sign bit.\n\t// In two's complement representation, the most significant bit (MSB) is the sign bit.\n\t// If the MSB is 0, the number is positive; if it is 1, the number is negative.\n\t//\n\t// Example:\n\t// Original value: 1 0 1 0 ... 0 1 (256 bits)\n\t// After Rsh 255: 0 0 0 0 ... 0 1 (1 bit)\n\t//\n\t// This approach is highly efficient as it avoids the need for comparisons\n\t// or arithmetic operations on the full 256-bit number. Instead it reduces\n\t// the problem to checking a single bit.\n\t//\n\t// Additionally, this method will work correctly for all values,\n\t// including the minimum possible negative number (which in two's complement\n\t// doesn't have a positive counterpart in the same bit range).\n\tvar temp uint256.Uint\n\tif temp.Rsh(\u0026z.value, 255).IsZero() {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// FromDecimal creates a new Int from a decimal string representation.\n// It handles both positive and negative values.\n//\n// This function is useful for parsing user input or reading numeric data\n// from text-based formats.\nfunc FromDecimal(s string) (*Int, error) {\n\treturn New().SetString(s)\n}\n\n// MustFromDecimal is similar to FromDecimal but panics if the input string\n// is not a valid decimal representation.\nfunc MustFromDecimal(s string) *Int {\n\tz, err := FromDecimal(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn z\n}\n\n// SetString sets the Int to the value represented by the input string.\n// This method supports decimal string representations of integers and handles\n// both positive and negative values.\nfunc (z *Int) SetString(s string) (*Int, error) {\n\tif len(s) == 0 {\n\t\treturn nil, errors.New(\"cannot set int256 from empty string\")\n\t}\n\n\t// Check for negative sign\n\tneg := s[0] == '-'\n\tif neg || s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\n\t// Convert string to uint256\n\ttemp, err := uint256.FromDecimal(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If negative, negate the uint256 value\n\tif neg {\n\t\ttemp.Neg(temp)\n\t}\n\n\tz.value.Set(temp)\n\treturn z, nil\n}\n\n// FromUint256 sets the Int to the value of the provided Uint256.\n//\n// This method allows for conversion from unsigned 256-bit integers\n// to signed integers.\nfunc (z *Int) FromUint256(v *uint256.Uint) *Int {\n\tz.value.Set(v)\n\treturn z\n}\n"},{"name":"int256_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestInitializers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tfn func() *Int\n\t\twantSign int\n\t\twantStr string\n\t}{\n\t\t{\"Zero\", Zero, 0, \"0\"},\n\t\t{\"New\", New, 0, \"0\"},\n\t\t{\"One\", One, 1, \"1\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := tt.fn()\n\t\t\tif z.Sign() != tt.wantSign {\n\t\t\t\tt.Errorf(\"%s() = %d, want %d\", tt.name, z.Sign(), tt.wantSign)\n\t\t\t}\n\t\t\tif z.String() != tt.wantStr {\n\t\t\t\tt.Errorf(\"%s() = %s, want %s\", tt.name, z.String(), tt.wantStr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNewInt(t *testing.T) {\n\ttests := []struct {\n\t\tinput int64\n\t\texpected int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // max int64\n\t\t{-9223372036854775808, -1}, // min int64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := NewInt(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"NewInt(%d) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestMustFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tshouldPanic bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123\", 1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif tt.shouldPanic {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"MustFromDecimal(%q) expected panic, but got nil\", tt.input)\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\n\t\tz := MustFromDecimal(tt.input)\n\t\tif !tt.shouldPanic \u0026\u0026 z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"MustFromDecimal(%q) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t}\n\t}\n}\n\nfunc TestSetUint64(t *testing.T) {\n\ttests := []uint64{\n\t\t0,\n\t\t1,\n\t\t18446744073709551615, // max uint64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetUint64(tt)\n\t\tif z.Sign() \u003c 0 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is negative\", tt)\n\t\t}\n\t\tif tt == 0 \u0026\u0026 z.Sign() != 0 {\n\t\t\tt.Errorf(\"SetUint64(0) result is not zero\")\n\t\t}\n\t\tif tt \u003e 0 \u0026\u0026 z.Sign() != 1 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is not positive\", tt)\n\t\t}\n\t}\n}\n\nfunc TestFromUint256(t *testing.T) {\n\ttests := []struct {\n\t\tinput *uint256.Uint\n\t\texpected int\n\t}{\n\t\t{uint256.NewUint(0), 0},\n\t\t{uint256.NewUint(1), 1},\n\t\t{uint256.NewUint(18446744073709551615), 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().FromUint256(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"FromUint256(%v) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"-0\", 0},\n\t\t{\"+0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"-1\", -1},\n\t\t{\"9223372036854775807\", 1},\n\t\t{\"-9223372036854775808\", -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tgot := z.Sign()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Sign(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc BenchmarkSign(b *testing.B) {\n\tz := New()\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tz.SetUint64(uint64(i))\n\t\tz.Sign()\n\t}\n}\n\nfunc TestSetAndToString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := New().SetString(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"SetString(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"SetString(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"SetString(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t} else if z.String() != tt.input {\n\t\t\t\tt.Errorf(\"SetString(%s) string representation is incorrect. Expected: %s, Actual: %s\", tt.input, tt.input, z.String())\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0SDXm6mKBmxVkrJlrR/ZZiAr80I9n6lCMoKnqHiFbvL7NuNJM+5u29UjkEPU32QsqybI6FlA/h3egaWIfXFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"int256","path":"gno.land/p/demo/int256","files":[{"name":"arithmetic.gno","body":"package int256\n\nimport (\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst divisionByZeroError = \"division by zero\"\n\n// Add adds two int256 values and saves the result in z.\nfunc (z *Int) Add(x, y *Int) *Int {\n\tz.value.Add(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// AddUint256 adds int256 and uint256 values and saves the result in z.\nfunc (z *Int) AddUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Add(\u0026x.value, y)\n\treturn z\n}\n\n// Sub subtracts two int256 values and saves the result in z.\nfunc (z *Int) Sub(x, y *Int) *Int {\n\tz.value.Sub(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// SubUint256 subtracts uint256 and int256 values and saves the result in z.\nfunc (z *Int) SubUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Sub(\u0026x.value, y)\n\treturn z\n}\n\n// Mul multiplies two int256 values and saves the result in z.\n//\n// It considers the signs of the operands to determine the sign of the result.\nfunc (z *Int) Mul(x, y *Int) *Int {\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\tz.value.Mul(xAbs, yAbs)\n\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Abs returns the absolute value of z.\nfunc (z *Int) Abs() *uint256.Uint {\n\tif z.Sign() \u003e= 0 {\n\t\treturn \u0026z.value\n\t}\n\n\tvar absValue uint256.Uint\n\tabsValue.Sub(uint0, \u0026z.value).Neg(\u0026z.value)\n\n\treturn \u0026absValue\n}\n\n// Div performs integer division z = x / y and returns z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// This function handles signed division using two's complement representation:\n// 1. Determine the sign of the quotient based on the signs of x and y.\n// 2. Perform unsigned division on the absolute values.\n// 3. Adjust the result's sign if necessary.\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -6 (11111010 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 6: 11111010 -\u003e 00000110\n//\t NOT: 00000101\n//\t +1: 00000110\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t6 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Div(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// Step 4: Perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Final result: -2 (11111110 in two's complement)\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Quo(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Rem sets z to the remainder x%y for y != 0 and returns z.\n//\n// The function performs the following steps:\n// 1. Check for division by zero\n// 2. Determine the signs of x and y\n// 3. Calculate the absolute values of x and y\n// 4. Perform unsigned division and get the remainder\n// 5. Adjust the sign of the remainder\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2 remainder 1\n//\tq = 2: 00000010 (not used in result)\n//\tr = 1: 00000001\n//\n// Step 5: Adjust sign of remainder (x is negative)\n//\n//\t-1: 00000001 -\u003e 11111111\n//\t NOT: 11111110\n//\t +1: 11111111\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: The sign of the remainder is always the same as the sign of the dividend (x).\nfunc (z *Int) Rem(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs := y.Abs()\n\n\t// Step 4: Perform unsigned division and get the remainder\n\tvar q, r uint256.Uint\n\tq.DivMod(xAbs, yAbs, \u0026r)\n\n\t// Step 5: Adjust the sign of the remainder\n\tif xSign \u003c 0 {\n\t\tr.Neg(\u0026r)\n\t}\n\n\tz.value.Set(\u0026r)\n\treturn z\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// The result (z) has the same sign as the divisor y.\nfunc (z *Int) Mod(x, y *Int) *Int {\n\treturn z.ModE(x, y)\n}\n\n// DivE performs Euclidean division of x by y, setting z to the quotient and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// Euclidean division satisfies the following properties:\n// 1. The remainder is always non-negative: 0 \u003c= x mod y \u003c |y|\n// 2. It follows the identity: x = y * (x div y) + (x mod y)\nfunc (z *Int) DivE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Compute the truncated division quotient\n\tz.Quo(x, y)\n\n\t// Compute the remainder\n\tr := new(Int).Rem(x, y)\n\n\t// If the remainder is negative, adjust the quotient\n\tif r.Sign() \u003c 0 {\n\t\tif y.Sign() \u003e 0 {\n\t\t\tz.Sub(z, NewInt(1))\n\t\t} else {\n\t\t\tz.Add(z, NewInt(1))\n\t\t}\n\t}\n\n\treturn z\n}\n\n// ModE computes the Euclidean modulus of x by y, setting z to the result and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// The Euclidean modulus is always non-negative and satisfies:\n//\n//\t0 \u003c= x mod y \u003c |y|\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Case 1: Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is positive)\n//\n//\t-1 + 3 = 2\n//\t11111111 + 00000011 = 00000010\n//\n// Final result: 2 (00000010)\n//\n// Case 2: Let x = -7 (11111001 in two's complement) and y = -3 (11111101 in two's complement)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is negative)\n//\n//\tNo adjustment needed\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: This implementation ensures that the result always has the same sign as y,\n// which is different from the Rem operation.\nfunc (z *Int) ModE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Perform T-division to get the remainder\n\tz.Rem(x, y)\n\n\t// Adjust the remainder if necessary\n\tif z.Sign() \u003e= 0 {\n\t\treturn z\n\t}\n\tif y.Sign() \u003e 0 {\n\t\treturn z.Add(z, y)\n\t}\n\n\treturn z.Sub(z, y)\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// If the y is positive, it adds y.value to x. otherwise, it subtracts y.Abs() from x.\nfunc AddDelta(z, x *uint256.Uint, y *Int) {\n\tif y.Sign() \u003e= 0 {\n\t\tz.Add(x, \u0026y.value)\n\t} else {\n\t\tz.Sub(x, y.Abs())\n\t}\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// This function returns true if the addition overflows, false otherwise.\nfunc AddDeltaOverflow(z, x *uint256.Uint, y *Int) bool {\n\tvar overflow bool\n\tif y.Sign() \u003e= 0 {\n\t\t_, overflow = z.AddOverflow(x, \u0026y.value)\n\t} else {\n\t\tvar absY uint256.Uint\n\t\tabsY.Sub(uint0, \u0026y.value) // absY = -y.value\n\t\t_, overflow = z.SubOverflow(x, \u0026absY)\n\t}\n\n\treturn overflow\n}\n"},{"name":"arithmetic_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst (\n\t// 2^255 - 1\n\tMAX_INT256 = \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\t// -(2^255 - 1)\n\tMINUS_MAX_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\n\t// 2^255 - 1\n\tMAX_UINT256 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMAX_UINT256_MINUS_1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tMINUS_MAX_UINT256 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMINUS_MAX_UINT256_PLUS_1 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tTWO_POW_128 = \"340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128 = \"-340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128_MINUS_1 = \"-340282366920938463463374607431768211457\"\n\tTWO_POW_128_MINUS_1 = \"340282366920938463463374607431768211455\"\n\n\tTWO_POW_129_MINUS_1 = \"680564733841876926926749214863536422911\"\n\n\tTWO_POW_254 = \"28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tMINUS_TWO_POW_254 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tHALF_MAX_INT256 = \"28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\tMINUS_HALF_MAX_INT256 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\n\tTWO_POW_255 = \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256_MINUS_1 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819969\"\n)\n\nfunc TestAdd(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t// NEGATIVE\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"1\", \"-1\", \"0\"},\n\t\t{\"3\", \"-3\", \"0\"},\n\t\t{\"-1\", \"-1\", \"-2\"},\n\t\t{\"-1\", \"-2\", \"-3\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{\"3\", \"-1\", \"2\"},\n\t\t// OVERFLOW\n\t\t{MAX_UINT256, \"1\", \"0\"},\n\t\t{MAX_INT256, \"1\", MIN_INT256},\n\t\t{MIN_INT256, \"-1\", MAX_INT256},\n\t\t{MAX_INT256, MAX_INT256, \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{MINUS_MAX_UINT256_PLUS_1, MAX_UINT256, \"1\"},\n\t\t{MINUS_MAX_UINT256, MAX_UINT256_MINUS_1, \"-1\"},\n\t\t// OVERFLOW\n\t\t{MINUS_MAX_UINT256, MAX_UINT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.AddUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"AddUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDelta(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y, want string\n\t}{\n\t\t{\"0\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"0\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\", \"1\"},\n\t\t{\"0\", \"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\", \"5\"},\n\t\t{\"5\", \"10\", \"-3\", \"7\"},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", MAX_UINT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := uint256.FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tAddDelta(z, x, y)\n\n\t\tif z.Neq(want) {\n\t\t\tt.Errorf(\"AddDelta(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, z.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDeltaOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", \"0\", false},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := AddDeltaOverflow(z, x, y)\n\t\tif result != tc.want {\n\t\t\tt.Errorf(\"AddDeltaOverflow(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, result, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"1\", \"-1\", \"2\"},\n\t\t{\"-1\", \"-1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, MINUS_MAX_UINT256, \"0\"},\n\t\t{MINUS_MAX_UINT256, \"0\", MINUS_MAX_UINT256},\n\t\t{MAX_INT256, MIN_INT256, \"-1\"},\n\t\t{MIN_INT256, MIN_INT256, \"0\"},\n\t\t{MAX_INT256, MAX_INT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Sub(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSubUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"-1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"1\", \"2\", \"-1\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"-1\", \"3\", \"-4\"},\n\t\t// underflow\n\t\t{MINUS_MAX_UINT256, \"1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, \"2\", \"-1\"},\n\t\t{MINUS_MAX_UINT256, \"3\", \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.SubUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"SubUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"3\", \"15\"},\n\t\t{\"-5\", \"3\", \"-15\"},\n\t\t{\"5\", \"-3\", \"-15\"},\n\t\t{\"0\", \"3\", \"0\"},\n\t\t{\"3\", \"0\", \"0\"},\n\t\t{\"-5\", \"-3\", \"15\"},\n\t\t{MAX_UINT256, \"1\", MAX_UINT256},\n\t\t{MAX_INT256, \"2\", \"-2\"},\n\t\t{TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MINUS_TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MAX_INT256, \"1\", MAX_INT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, expected string\n\t}{\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-1\"},\n\t\t{\"1\", \"-1\", \"-1\"},\n\t\t{\"-1\", \"-1\", \"1\"},\n\t\t{\"-6\", \"3\", \"-2\"},\n\t\t{\"10\", \"-2\", \"-5\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"7\", \"3\", \"2\"},\n\t\t{\"-7\", \"3\", \"-2\"},\n\t\t// the maximum value of a positive number in int256 is less than the maximum value of a uint256\n\t\t{MAX_INT256, \"2\", HALF_MAX_INT256},\n\t\t{MINUS_MAX_INT256, \"2\", MINUS_HALF_MAX_INT256},\n\t\t{MAX_INT256, \"-1\", MINUS_MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.x+\"/\"+tt.y, func(t *testing.T) {\n\t\t\tx := MustFromDecimal(tt.x)\n\t\t\ty := MustFromDecimal(tt.y)\n\t\t\tresult := Zero().Div(x, y)\n\t\t\tif result.String() != tt.expected {\n\t\t\t\tt.Errorf(\"Div(%s, %s) = %s, want %s\", tt.x, tt.y, result.String(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n\n\tt.Run(\"Division by zero\", func(t *testing.T) {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Div(1, 0) did not panic\")\n\t\t\t}\n\t\t}()\n\t\tx := MustFromDecimal(\"1\")\n\t\ty := MustFromDecimal(\"0\")\n\t\tZero().Div(x, y)\n\t})\n}\n\nfunc TestQuo(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"10\"},\n\t\t{\"10\", \"-1\", \"-10\"},\n\t\t{\"-10\", \"1\", \"-10\"},\n\t\t{\"-10\", \"-1\", \"10\"},\n\t\t{\"10\", \"-3\", \"-3\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"10\", \"3\", \"3\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Quo(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Quo(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRem(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"-1\"},\n\t\t{\"-10\", \"-3\", \"-1\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Rem(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rem(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"2\"},\n\t\t{\"-10\", \"-3\", \"2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModeOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{MIN_INT256, \"2\", \"0\"}, // MIN_INT256 % 2 = 0\n\t\t{MAX_INT256, \"2\", \"1\"}, // MAX_INT256 % 2 = 1\n\t\t{MIN_INT256, \"-1\", \"0\"}, // MIN_INT256 % -1 = 0\n\t\t{MAX_INT256, \"-1\", \"0\"}, // MAX_INT256 % -1 = 0\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := New().Mod(x, y)\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModPanic(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t}{\n\t\t{\"10\", \"0\"},\n\t\t{\"10\", \"-0\"},\n\t\t{\"-10\", \"0\"},\n\t\t{\"-10\", \"-0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Mod(%s, %s) did not panic\", tc.x, tc.y)\n\t\t\t}\n\t\t}()\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := New().Mod(x, y)\n\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, result.String(), \"0\")\n\t}\n}\n\nfunc TestDivE(t *testing.T) {\n\ttestCases := []struct {\n\t\tx, y int64\n\t\twant int64\n\t}{\n\t\t{8, 3, 2},\n\t\t{8, -3, -2},\n\t\t{-8, 3, -3},\n\t\t{-8, -3, 3},\n\t\t{1, 2, 0},\n\t\t{1, -2, 0},\n\t\t{-1, 2, -1},\n\t\t{-1, -2, 1},\n\t\t{0, 1, 0},\n\t\t{0, -1, 0},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tx := NewInt(tc.x)\n\t\ty := NewInt(tc.y)\n\t\twant := NewInt(tc.want)\n\t\tgot := new(Int).DivE(x, y)\n\t\tif got.Cmp(want) != 0 {\n\t\t\tt.Errorf(\"DivE(%v, %v) = %v, want %v\", tc.x, tc.y, got, want)\n\t\t}\n\t}\n}\n\nfunc TestDivEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"DivE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).DivE(x, y)\n}\n\nfunc TestModEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"ModE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).ModE(x, y)\n}\n\nfunc TestLargeNumbers(t *testing.T) {\n\tx, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\ty, _ := new(Int).SetString(\"987654321098765432109876543210\")\n\n\t// Expected results (calculated separately)\n\texpectedQ, _ := new(Int).SetString(\"0\")\n\texpectedR, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\n\tgotQ := new(Int).DivE(x, y)\n\tgotR := new(Int).ModE(x, y)\n\n\tif gotQ.Cmp(expectedQ) != 0 {\n\t\tt.Errorf(\"DivE with large numbers: got %v, want %v\", gotQ, expectedQ)\n\t}\n\n\tif gotR.Cmp(expectedR) != 0 {\n\t\tt.Errorf(\"ModE with large numbers: got %v, want %v\", gotR, expectedR)\n\t}\n}\n\nfunc TestAbs(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"-2\", \"2\"},\n\t\t{\"-100000000000\", \"100000000000\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Abs()\n\n\t\tif got.String() != tc.want {\n\t\t\tt.Errorf(\"Abs(%s) = %v, want %v\", tc.x, got.String(), tc.want)\n\t\t}\n\t}\n}\n"},{"name":"bitwise.gno","body":"package int256\n\n// Not sets z to the bitwise NOT of x and returns z.\n//\n// The bitwise NOT operation flips each bit of the operand.\nfunc (z *Int) Not(x *Int) *Int {\n\tz.value.Not(\u0026x.value)\n\treturn z\n}\n\n// And sets z to the bitwise AND of x and y and returns z.\n//\n// The bitwise AND operation results in a value that has a bit set\n// only if both corresponding bits of the operands are set.\nfunc (z *Int) And(x, y *Int) *Int {\n\tz.value.And(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Or sets z to the bitwise OR of x and y and returns z.\n//\n// The bitwise OR operation results in a value that has a bit set\n// if at least one of the corresponding bits of the operands is set.\nfunc (z *Int) Or(x, y *Int) *Int {\n\tz.value.Or(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Xor sets z to the bitwise XOR of x and y and returns z.\n//\n// The bitwise XOR operation results in a value that has a bit set\n// only if the corresponding bits of the operands are different.\nfunc (z *Int) Xor(x, y *Int) *Int {\n\tz.value.Xor(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Rsh sets z to the result of right-shifting x by n bits and returns z.\n//\n// Right shift operation moves all bits in the operand to the right by the specified number of positions.\n// Bits shifted out on the right are discarded, and zeros are shifted in on the left.\nfunc (z *Int) Rsh(x *Int, n uint) *Int {\n\tz.value.Rsh(\u0026x.value, n)\n\treturn z\n}\n\n// Lsh sets z to the result of left-shifting x by n bits and returns z.\n//\n// Left shift operation moves all bits in the operand to the left by the specified number of positions.\n// Bits shifted out on the left are discarded, and zeros are shifted in on the right.\nfunc (z *Int) Lsh(x *Int, n uint) *Int {\n\tz.value.Lsh(\u0026x.value, n)\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBitwise_And(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"1\"}, // 0101 \u0026 0001 = 0001\n\t\t{\"-1\", \"1\", \"1\"}, // 1111 \u0026 0001 = 0001\n\t\t{\"-5\", \"3\", \"3\"}, // 1111...1011 \u0026 0000...0011 = 0000...0011\n\t\t{MAX_UINT256, MAX_UINT256, MAX_UINT256},\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, \"0\"}, // 2^128 \u0026 (2^128 - 1) = 0\n\t\t{TWO_POW_128, MAX_UINT256, TWO_POW_128}, // 2^128 \u0026 MAX_INT256\n\t\t{MAX_UINT256, TWO_POW_128, TWO_POW_128}, // MAX_INT256 \u0026 2^128\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).And(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"And(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Or(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"5\"}, // 0101 | 0001 = 0101\n\t\t{\"-1\", \"1\", \"-1\"}, // 1111 | 0001 = 1111\n\t\t{\"-5\", \"3\", \"-5\"}, // 1111...1011 | 0000...0011 = 1111...1011\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, TWO_POW_129_MINUS_1},\n\t\t{TWO_POW_128, MAX_UINT256, MAX_UINT256},\n\t\t{\"0\", TWO_POW_128, TWO_POW_128}, // 0 | 2^128 = 2^128\n\t\t{MAX_UINT256, TWO_POW_128, MAX_UINT256}, // MAX_INT256 | 2^128 = MAX_INT256\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Or(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\tx.String(), y.String(), got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Not(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"5\", \"-6\"}, // 0101 -\u003e 1111...1010\n\t\t{\"-1\", \"0\"}, // 1111...1111 -\u003e 0000...0000\n\t\t{TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // NOT 2^128\n\t\t{TWO_POW_255, MIN_INT256_MINUS_1}, // NOT 2^255\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Not(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Not(%s) = %s, want %s\", x.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Xor(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"4\"}, // 0101 ^ 0001 = 0100\n\t\t{\"-1\", \"1\", \"-2\"}, // 1111...1111 ^ 0000...0001 = 1111...1110\n\t\t{\"-5\", \"3\", \"-8\"}, // 1111...1011 ^ 0000...0011 = 1111...1000\n\t\t{TWO_POW_128, TWO_POW_128, \"0\"}, // 2^128 ^ 2^128 = 0\n\t\t{MAX_UINT256, TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // MAX_INT256 ^ 2^128\n\t\t{TWO_POW_255, MAX_UINT256, MIN_INT256_MINUS_1}, // 2^255 ^ MAX_INT256\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\ty, _ := FromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Xor(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Xor(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Rsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 1, \"2\"}, // 0101 \u003e\u003e 1 = 0010\n\t\t{\"42\", 3, \"5\"}, // 00101010 \u003e\u003e 3 = 00000101\n\t\t{TWO_POW_128, 128, \"1\"},\n\t\t{MAX_UINT256, 255, \"1\"},\n\t\t{TWO_POW_255, 254, \"2\"},\n\t\t{MINUS_TWO_POW_128, 128, TWO_POW_128_MINUS_1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Rsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Lsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 2, \"20\"}, // 0101 \u003c\u003c 2 = 10100\n\t\t{\"42\", 5, \"1344\"}, // 00101010 \u003c\u003c 5 = 10101000000\n\t\t{\"1\", 128, TWO_POW_128}, // 1 \u003c\u003c 128 = 2^128\n\t\t{\"2\", 254, TWO_POW_255},\n\t\t{\"1\", 255, MIN_INT256}, // 1 \u003c\u003c 255 = MIN_INT256 (overflow)\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Lsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"package int256\n\nfunc (z *Int) Eq(x *Int) bool {\n\treturn z.value.Eq(\u0026x.value)\n}\n\nfunc (z *Int) Neq(x *Int) bool {\n\treturn !z.Eq(x)\n}\n\n// Cmp compares z and x and returns:\n//\n// - 1 if z \u003e x\n// - 0 if z == x\n// - -1 if z \u003c x\nfunc (z *Int) Cmp(x *Int) int {\n\tzSign, xSign := z.Sign(), x.Sign()\n\n\tif zSign == xSign {\n\t\treturn z.value.Cmp(\u0026x.value)\n\t}\n\n\tif zSign == 0 {\n\t\treturn -xSign\n\t}\n\n\treturn zSign\n}\n\n// IsZero returns true if z == 0\nfunc (z *Int) IsZero() bool {\n\treturn z.value.IsZero()\n}\n\n// IsNeg returns true if z \u003c 0\nfunc (z *Int) IsNeg() bool {\n\treturn z.Sign() \u003c 0\n}\n\nfunc (z *Int) Lt(x *Int) bool {\n\treturn z.Cmp(x) \u003c 0\n}\n\nfunc (z *Int) Gt(x *Int) bool {\n\treturn z.Cmp(x) \u003e 0\n}\n\nfunc (z *Int) Le(x *Int) bool {\n\treturn z.Cmp(x) \u003c= 0\n}\n\nfunc (z *Int) Ge(x *Int) bool {\n\treturn z.Cmp(x) \u003e= 0\n}\n\n// Clone creates a new Int identical to z\nfunc (z *Int) Clone() *Int {\n\treturn New().FromUint256(\u0026z.value)\n}\n"},{"name":"cmp_test.gno","body":"package int256\n\nimport \"testing\"\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", true},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", true},\n\t\t{\"-1\", \"-1\", true},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestNeq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Neq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Neq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"-1\", \"0\", -1},\n\t\t{\"0\", \"-1\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", -1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"-0\", true},\n\t\t{\"1\", false},\n\t\t{\"-1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsZero()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", false},\n\t\t{\"-0\", false},\n\t\t{\"1\", false},\n\t\t{\"-1\", true},\n\t\t{\"10\", false},\n\t\t{\"-10\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsNeg()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsNeg(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestLt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Lt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Lt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestGt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Gt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Gt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []string{\n\t\t\"0\",\n\t\t\"-0\",\n\t\t\"1\",\n\t\t\"-1\",\n\t\t\"10\",\n\t\t\"-10\",\n\t\t\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t\t\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t}\n\n\tfor _, xStr := range tests {\n\t\tx, err := FromDecimal(xStr)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty := x.Clone()\n\n\t\tif x.Neq(y) {\n\t\t\tt.Errorf(\"cloned value is not equal to original value\")\n\t\t}\n\t}\n}\n"},{"name":"conversion.gno","body":"package int256\n\nimport (\n\t\"math\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\n// SetInt64 sets the Int to the value of the provided int64.\n//\n// This method allows for easy conversion from standard Go integer types\n// to Int, correctly handling both positive and negative values.\nfunc (z *Int) SetInt64(v int64) *Int {\n\tif v \u003e= 0 {\n\t\tz.value.SetUint64(uint64(v))\n\t} else {\n\t\tz.value.SetUint64(uint64(-v)).Neg(\u0026z.value)\n\t}\n\treturn z\n}\n\n// SetUint64 sets the Int to the value of the provided uint64.\nfunc (z *Int) SetUint64(v uint64) *Int {\n\tz.value.SetUint64(v)\n\treturn z\n}\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Int) Uint64() uint64 {\n\tif z.Sign() \u003c 0 {\n\t\tpanic(\"cannot convert negative int256 to uint64\")\n\t}\n\tif z.value.Gt(uint256.NewUint(0).SetUint64(math.MaxUint64)) {\n\t\tpanic(\"overflow: int256 does not fit in uint64 type\")\n\t}\n\treturn z.value.Uint64()\n}\n\n// Int64 returns the lower 64-bits of z\nfunc (z *Int) Int64() int64 {\n\tif z.Sign() \u003e= 0 {\n\t\tif z.value.BitLen() \u003e 64 {\n\t\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t\t}\n\t\treturn int64(z.value.Uint64())\n\t}\n\tvar temp uint256.Uint\n\ttemp.Sub(uint256.NewUint(0), \u0026z.value) // temp = -z.value\n\tif temp.BitLen() \u003e 64 {\n\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t}\n\treturn -int64(temp.Uint64())\n}\n\n// Neg sets z to -x and returns z.)\nfunc (z *Int) Neg(x *Int) *Int {\n\tif x.IsZero() {\n\t\tz.value.Clear()\n\t} else {\n\t\tz.value.Neg(\u0026x.value)\n\t}\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Int) Set(x *Int) *Int {\n\tz.value.Set(\u0026x.value)\n\treturn z\n}\n\n// SetFromUint256 converts a uint256.Uint to Int and sets the value to z.\nfunc (z *Int) SetUint256(x *uint256.Uint) *Int {\n\tz.value.Set(x)\n\treturn z\n}\n\n// ToString returns a string representation of z in base 10.\n// The string is prefixed with a minus sign if z is negative.\nfunc (z *Int) String() string {\n\tif z.value.IsZero() {\n\t\treturn \"0\"\n\t}\n\tsign := z.Sign()\n\tvar temp uint256.Uint\n\tif sign \u003e= 0 {\n\t\ttemp.Set(\u0026z.value)\n\t} else {\n\t\t// temp = -z.value\n\t\ttemp.Sub(uint256.NewUint(0), \u0026z.value)\n\t}\n\ts := temp.Dec()\n\tif sign \u003c 0 {\n\t\treturn \"-\" + s\n\t}\n\treturn s\n}\n\n// NilToZero returns the Int if it's not nil, or a new zero-valued Int otherwise.\n//\n// This method is useful for safely handling potentially nil Int pointers,\n// ensuring that operations always have a valid Int to work with.\nfunc (z *Int) NilToZero() *Int {\n\tif z == nil {\n\t\treturn Zero()\n\t}\n\treturn z\n}\n"},{"name":"conversion_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestSetInt64(t *testing.T) {\n\ttests := []struct {\n\t\tv int64\n\t\texpect int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // overflow (max int64)\n\t\t{-9223372036854775808, -1}, // underflow (min int64)\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetInt64(tt.v)\n\t\tif z.Sign() != tt.expect {\n\t\t\tt.Errorf(\"SetInt64(%d) = %d, want %d\", tt.v, z.Sign(), tt.expect)\n\t\t}\n\t}\n}\n\nfunc TestUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant uint64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"9223372036854775808\", 9223372036854775808},\n\t\t{\"18446744073709551615\", 18446744073709551615},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Uint64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"-1\"},\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Uint64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Uint64()\n\t}\n}\n\nfunc TestInt64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"-1\", -1},\n\t\t{\"-9223372036854775808\", -9223372036854775808},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Int64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestInt64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Int64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Int64()\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"-1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"9223372036854775807\", \"-9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Neg(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Neg(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSet(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Set(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Set(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSetUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tgot := New()\n\n\t\tz := uint256.MustFromDecimal(tt.x)\n\t\tgot.SetUint256(z)\n\n\t\tif got.String() != tt.want {\n\t\t\tt.Errorf(\"SetUint256(%s) = %s, want %s\", tt.x, got.String(), tt.want)\n\t\t}\n\t}\n}\n\nfunc TestString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"123456789\", \"123456789\"},\n\t\t{\"-123456789\", \"-123456789\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"}, // max uint64\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t\t{TWO_POW_128_MINUS_1, TWO_POW_128_MINUS_1},\n\t\t{MINUS_TWO_POW_128, MINUS_TWO_POW_128},\n\t\t{MIN_INT256, MIN_INT256},\n\t\t{MAX_INT256, MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, err := FromDecimal(tt.input)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Failed to parse input (%s): %v\", tt.input, err)\n\t\t\tcontinue\n\t\t}\n\n\t\toutput := x.String()\n\n\t\tif output != tt.expected {\n\t\t\tt.Errorf(\"String(%s) = %s, want %s\", tt.input, output, tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestNilToZero(t *testing.T) {\n\tz := New().NilToZero()\n\tif z.Sign() != 0 {\n\t\tt.Errorf(\"NilToZero() = %d, want %d\", z.Sign(), 0)\n\t}\n}\n"},{"name":"doc.gno","body":"// The int256 package provides a 256-bit signed interger type for gno,\n// supporting arithmetic operations and bitwise manipulation.\n//\n// It designed for applications that require high-precision arithmetic\n// beyond the standard 64-bit range.\n//\n// ## Features\n//\n// - 256-bit Signed Integers: Support for large integer ranging from -2^255 to 2^255-1.\n// - Two's Complement Representation: Efficient storage and computation using two's complement.\n// - Arithmetic Operations: Add, Sub, Mul, Div, Mod, Inc, Dec, etc.\n// - Bitwise Operations: And, Or, Xor, Not, etc.\n// - Comparison Operations: Cmp, Eq, Lt, Gt, etc.\n// - Conversion Functions: Int to Uint, Uint to Int, etc.\n// - String Parsing and Formatting: Convert to and from decimal string representation.\n//\n// ## Notes\n//\n// - Some methods may panic when encountering invalid inputs or overflows.\n// - The `int256.Int` type can interact with `uint256.Uint` from the `p/demo/uint256` package.\n// - Unlike `math/big.Int`, the `int256.Int` type has fixed size (256-bit) and does not support\n// arbitrary precision arithmetic.\n//\n// # Division and modulus operations\n//\n// This package provides three different division and modulus operations:\n//\n// - Div and Rem: Truncated division (T-division)\n// - Quo and Mod: Floored division (F-division)\n// - DivE and ModE: Euclidean division (E-division)\n//\n// Truncated division (Div, Rem) is the most common implementation in modern processors\n// and programming languages. It rounds quotients towards zero and the remainder\n// always has the same sign as the dividend.\n//\n// Floored division (Quo, Mod) always rounds quotients towards negative infinity.\n// This ensures that the modulus is always non-negative for a positive divisor,\n// which can be useful in certain algorithms.\n//\n// Euclidean division (DivE, ModE) ensures that the remainder is always non-negative,\n// regardless of the signs of the dividend and divisor. This has several mathematical\n// advantages:\n//\n// 1. It satisfies the unique division with remainder theorem.\n// 2. It preserves division and modulus properties for negative divisors.\n// 3. It allows for optimizations in divisions by powers of two.\n//\n// [+] Currently, ModE and Mod are shared the same implementation.\n//\n// ## Performance considerations:\n//\n// - For most operations, the performance difference between these division types is negligible.\n// - Euclidean division may require an extra comparison and potentially an addition,\n// which could impact performance in extremely performance-critical scenarios.\n// - For divisions by powers of two, Euclidean division can be optimized to use\n// bitwise operations, potentially offering better performance.\n//\n// ## Usage guidelines:\n//\n// - Use Div and Rem for general-purpose division that matches most common expectations.\n// - Use Quo and Mod when you need a non-negative remainder for positive divisors,\n// or when implementing algorithms that assume floored division.\n// - Use DivE and ModE when you need the mathematical properties of Euclidean division,\n// or when working with algorithms that specifically require it.\n//\n// Note: When working with negative numbers, be aware of the differences in behavior\n// between these division types, especially at the boundaries of integer ranges.\n//\n// ## References\n//\n// Daan Leijen, “Division and Modulus for Computer Scientists”:\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\npackage int256\n"},{"name":"int256.gno","body":"package int256\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nvar (\n\tint1 = NewInt(1)\n\tuint0 = uint256.NewUint(0)\n\tuint1 = uint256.NewUint(1)\n)\n\ntype Int struct {\n\tvalue uint256.Uint\n}\n\n// New creates and returns a new Int initialized to zero.\nfunc New() *Int {\n\treturn \u0026Int{}\n}\n\n// NewInt allocates and returns a new Int set to the value of the provided int64.\nfunc NewInt(x int64) *Int {\n\treturn New().SetInt64(x)\n}\n\n// Zero returns a new Int initialized to 0.\n//\n// This function is useful for creating a starting point for calculations or\n// when an explicit zero value is needed.\nfunc Zero() *Int { return \u0026Int{} }\n\n// One returns a new Int initialized to one.\n//\n// This function is convenient for operations that require a unit value,\n// such as incrementing or serving as an identity element in multiplication.\nfunc One() *Int {\n\treturn \u0026Int{\n\t\tvalue: *uint256.NewUint(1),\n\t}\n}\n\n// Sign determines the sign of the Int.\n//\n// It returns -1 for negative numbers, 0 for zero, and +1 for positive numbers.\nfunc (z *Int) Sign() int {\n\tif z == nil || z.IsZero() {\n\t\treturn 0\n\t}\n\t// Right shift the value by 255 bits to check the sign bit.\n\t// In two's complement representation, the most significant bit (MSB) is the sign bit.\n\t// If the MSB is 0, the number is positive; if it is 1, the number is negative.\n\t//\n\t// Example:\n\t// Original value: 1 0 1 0 ... 0 1 (256 bits)\n\t// After Rsh 255: 0 0 0 0 ... 0 1 (1 bit)\n\t//\n\t// This approach is highly efficient as it avoids the need for comparisons\n\t// or arithmetic operations on the full 256-bit number. Instead it reduces\n\t// the problem to checking a single bit.\n\t//\n\t// Additionally, this method will work correctly for all values,\n\t// including the minimum possible negative number (which in two's complement\n\t// doesn't have a positive counterpart in the same bit range).\n\tvar temp uint256.Uint\n\tif temp.Rsh(\u0026z.value, 255).IsZero() {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// FromDecimal creates a new Int from a decimal string representation.\n// It handles both positive and negative values.\n//\n// This function is useful for parsing user input or reading numeric data\n// from text-based formats.\nfunc FromDecimal(s string) (*Int, error) {\n\treturn New().SetString(s)\n}\n\n// MustFromDecimal is similar to FromDecimal but panics if the input string\n// is not a valid decimal representation.\nfunc MustFromDecimal(s string) *Int {\n\tz, err := FromDecimal(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn z\n}\n\n// SetString sets the Int to the value represented by the input string.\n// This method supports decimal string representations of integers and handles\n// both positive and negative values.\nfunc (z *Int) SetString(s string) (*Int, error) {\n\tif len(s) == 0 {\n\t\treturn nil, errors.New(\"cannot set int256 from empty string\")\n\t}\n\n\t// Check for negative sign\n\tneg := s[0] == '-'\n\tif neg || s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\n\t// Convert string to uint256\n\ttemp, err := uint256.FromDecimal(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If negative, negate the uint256 value\n\tif neg {\n\t\ttemp.Neg(temp)\n\t}\n\n\tz.value.Set(temp)\n\treturn z, nil\n}\n\n// FromUint256 sets the Int to the value of the provided Uint256.\n//\n// This method allows for conversion from unsigned 256-bit integers\n// to signed integers.\nfunc (z *Int) FromUint256(v *uint256.Uint) *Int {\n\tz.value.Set(v)\n\treturn z\n}\n"},{"name":"int256_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestInitializers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tfn func() *Int\n\t\twantSign int\n\t\twantStr string\n\t}{\n\t\t{\"Zero\", Zero, 0, \"0\"},\n\t\t{\"New\", New, 0, \"0\"},\n\t\t{\"One\", One, 1, \"1\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := tt.fn()\n\t\t\tif z.Sign() != tt.wantSign {\n\t\t\t\tt.Errorf(\"%s() = %d, want %d\", tt.name, z.Sign(), tt.wantSign)\n\t\t\t}\n\t\t\tif z.String() != tt.wantStr {\n\t\t\t\tt.Errorf(\"%s() = %s, want %s\", tt.name, z.String(), tt.wantStr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNewInt(t *testing.T) {\n\ttests := []struct {\n\t\tinput int64\n\t\texpected int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // max int64\n\t\t{-9223372036854775808, -1}, // min int64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := NewInt(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"NewInt(%d) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestMustFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tshouldPanic bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123\", 1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif tt.shouldPanic {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"MustFromDecimal(%q) expected panic, but got nil\", tt.input)\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\n\t\tz := MustFromDecimal(tt.input)\n\t\tif !tt.shouldPanic \u0026\u0026 z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"MustFromDecimal(%q) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t}\n\t}\n}\n\nfunc TestSetUint64(t *testing.T) {\n\ttests := []uint64{\n\t\t0,\n\t\t1,\n\t\t18446744073709551615, // max uint64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetUint64(tt)\n\t\tif z.Sign() \u003c 0 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is negative\", tt)\n\t\t}\n\t\tif tt == 0 \u0026\u0026 z.Sign() != 0 {\n\t\t\tt.Errorf(\"SetUint64(0) result is not zero\")\n\t\t}\n\t\tif tt \u003e 0 \u0026\u0026 z.Sign() != 1 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is not positive\", tt)\n\t\t}\n\t}\n}\n\nfunc TestFromUint256(t *testing.T) {\n\ttests := []struct {\n\t\tinput *uint256.Uint\n\t\texpected int\n\t}{\n\t\t{uint256.NewUint(0), 0},\n\t\t{uint256.NewUint(1), 1},\n\t\t{uint256.NewUint(18446744073709551615), 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().FromUint256(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"FromUint256(%v) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"-0\", 0},\n\t\t{\"+0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"-1\", -1},\n\t\t{\"9223372036854775807\", 1},\n\t\t{\"-9223372036854775808\", -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tgot := z.Sign()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Sign(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc BenchmarkSign(b *testing.B) {\n\tz := New()\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tz.SetUint64(uint64(i))\n\t\tz.Sign()\n\t}\n}\n\nfunc TestSetAndToString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := New().SetString(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"SetString(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"SetString(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"SetString(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t} else if z.String() != tt.input {\n\t\t\t\tt.Errorf(\"SetString(%s) string representation is incorrect. Expected: %s, Actual: %s\", tt.input, tt.input, z.String())\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l0SDXm6mKBmxVkrJlrR/ZZiAr80I9n6lCMoKnqHiFbvL7NuNJM+5u29UjkEPU32QsqybI6FlA/h3egaWIfXFBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"int32","path":"gno.land/p/demo/math_eval/int32","files":[{"name":"int32.gno","body":"// eval/int32 is a evaluator for int32 expressions.\n// This code is heavily forked from https://github.com/dengsgo/math-engine\n// which is licensed under Apache 2.0:\n// https://raw.githubusercontent.com/dengsgo/math-engine/298e2b57b7e7350d0f67bd036916efd5709abe25/LICENSE\npackage int32\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tIdentifier = iota\n\tNumber // numbers\n\tOperator // +, -, *, /, etc.\n\tVariable // x, y, z, etc. (one-letter only)\n)\n\ntype expression interface {\n\tString() string\n}\n\ntype expressionRaw struct {\n\texpression string\n\tType int\n\tFlag int\n\tOffset int\n}\n\ntype parser struct {\n\tInput string\n\tch byte\n\toffset int\n\terr error\n}\n\ntype expressionNumber struct {\n\tVal int\n\tStr string\n}\n\ntype expressionVariable struct {\n\tVal int\n\tStr string\n}\n\ntype expressionOperation struct {\n\tOp string\n\tLhs,\n\tRhs expression\n}\n\ntype ast struct {\n\trawexpressions []*expressionRaw\n\tsource string\n\tcurrentexpression *expressionRaw\n\tcurrentIndex int\n\tdepth int\n\terr error\n}\n\n// Parse takes an expression string, e.g. \"1+2\" and returns\n// a parsed expression. If there is an error it will return.\nfunc Parse(s string) (ar expression, err error) {\n\ttoks, err := lexer(s)\n\tif err != nil {\n\t\treturn\n\t}\n\tast, err := newAST(toks, s)\n\tif err != nil {\n\t\treturn\n\t}\n\tar, err = ast.parseExpression()\n\treturn\n}\n\n// Eval takes a parsed expression and a map of variables (or nil). The parsed\n// expression is evaluated using any variables and returns the\n// resulting int and/or error.\nfunc Eval(expr expression, variables map[string]int) (res int, err error) {\n\tif err != nil {\n\t\treturn\n\t}\n\tvar l, r int\n\tswitch expr.(type) {\n\tcase expressionVariable:\n\t\tast := expr.(expressionVariable)\n\t\tok := false\n\t\tif variables != nil {\n\t\t\tres, ok = variables[ast.Str]\n\t\t}\n\t\tif !ok {\n\t\t\terr = ufmt.Errorf(\"variable '%s' not found\", ast.Str)\n\t\t}\n\t\treturn\n\tcase expressionOperation:\n\t\tast := expr.(expressionOperation)\n\t\tl, err = Eval(ast.Lhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tr, err = Eval(ast.Rhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch ast.Op {\n\t\tcase \"+\":\n\t\t\tres = l + r\n\t\tcase \"-\":\n\t\t\tres = l - r\n\t\tcase \"*\":\n\t\t\tres = l * r\n\t\tcase \"/\":\n\t\t\tif r == 0 {\n\t\t\t\terr = ufmt.Errorf(\"violation of arithmetic specification: a division by zero in Eval: [%d/%d]\", l, r)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tres = l / r\n\t\tcase \"%\":\n\t\t\tif r == 0 {\n\t\t\t\tres = 0\n\t\t\t} else {\n\t\t\t\tres = l % r\n\t\t\t}\n\t\tcase \"^\":\n\t\t\tres = l ^ r\n\t\tcase \"\u003e\u003e\":\n\t\t\tres = l \u003e\u003e r\n\t\tcase \"\u003c\u003c\":\n\t\t\tres = l \u003c\u003c r\n\t\tcase \"\u003e\":\n\t\t\tif l \u003e r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u003c\":\n\t\t\tif l \u003c r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u0026\":\n\t\t\tres = l \u0026 r\n\t\tcase \"|\":\n\t\t\tres = l | r\n\t\tdefault:\n\n\t\t}\n\tcase expressionNumber:\n\t\tres = expr.(expressionNumber).Val\n\t}\n\n\treturn\n}\n\nfunc expressionError(s string, pos int) string {\n\tr := strings.Repeat(\"-\", len(s)) + \"\\n\"\n\ts += \"\\n\"\n\tfor i := 0; i \u003c pos; i++ {\n\t\ts += \" \"\n\t}\n\ts += \"^\\n\"\n\treturn r + s + r\n}\n\nfunc (n expressionVariable) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionVariable: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (n expressionNumber) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionNumber: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (b expressionOperation) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionOperation: (%s %s %s)\",\n\t\tb.Op,\n\t\tb.Lhs.String(),\n\t\tb.Rhs.String(),\n\t)\n}\n\nfunc newAST(toks []*expressionRaw, s string) (*ast, error) {\n\ta := \u0026ast{\n\t\trawexpressions: toks,\n\t\tsource: s,\n\t}\n\tif a.rawexpressions == nil || len(a.rawexpressions) == 0 {\n\t\treturn a, errors.New(\"empty token\")\n\t} else {\n\t\ta.currentIndex = 0\n\t\ta.currentexpression = a.rawexpressions[0]\n\t}\n\treturn a, nil\n}\n\nfunc (a *ast) parseExpression() (expression, error) {\n\ta.depth++ // called depth\n\tlhs := a.parsePrimary()\n\tr := a.parseBinOpRHS(0, lhs)\n\ta.depth--\n\tif a.depth == 0 \u0026\u0026 a.currentIndex != len(a.rawexpressions) \u0026\u0026 a.err == nil {\n\t\treturn r, ufmt.Errorf(\"bad expression, reaching the end or missing the operator\\n%s\",\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t}\n\treturn r, nil\n}\n\nfunc (a *ast) getNextexpressionRaw() *expressionRaw {\n\ta.currentIndex++\n\tif a.currentIndex \u003c len(a.rawexpressions) {\n\t\ta.currentexpression = a.rawexpressions[a.currentIndex]\n\t\treturn a.currentexpression\n\t}\n\treturn nil\n}\n\nfunc (a *ast) getTokPrecedence() int {\n\tswitch a.currentexpression.expression {\n\tcase \"/\", \"%\", \"*\":\n\t\treturn 100\n\tcase \"\u003c\u003c\", \"\u003e\u003e\":\n\t\treturn 80\n\tcase \"+\", \"-\":\n\t\treturn 75\n\tcase \"\u003c\", \"\u003e\":\n\t\treturn 70\n\tcase \"\u0026\":\n\t\treturn 60\n\tcase \"^\":\n\t\treturn 50\n\tcase \"|\":\n\t\treturn 40\n\t}\n\treturn -1\n}\n\nfunc (a *ast) parseNumber() expressionNumber {\n\tf64, err := strconv.Atoi(a.currentexpression.expression)\n\tif err != nil {\n\t\ta.err = ufmt.Errorf(\"%v\\nwant '(' or '0-9' but get '%s'\\n%s\",\n\t\t\terr.Error(),\n\t\t\ta.currentexpression.expression,\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\treturn expressionNumber{}\n\t}\n\tn := expressionNumber{\n\t\tVal: f64,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parseVariable() expressionVariable {\n\tn := expressionVariable{\n\t\tVal: 0,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parsePrimary() expression {\n\tswitch a.currentexpression.Type {\n\tcase Variable:\n\t\treturn a.parseVariable()\n\tcase Number:\n\t\treturn a.parseNumber()\n\tcase Operator:\n\t\tif a.currentexpression.expression == \"(\" {\n\t\t\tt := a.getNextexpressionRaw()\n\t\t\tif t == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\te, _ := a.parseExpression()\n\t\t\tif e == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif a.currentexpression.expression != \")\" {\n\t\t\t\ta.err = ufmt.Errorf(\"want ')' but get %s\\n%s\",\n\t\t\t\t\ta.currentexpression.expression,\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ta.getNextexpressionRaw()\n\t\t\treturn e\n\t\t} else if a.currentexpression.expression == \"-\" {\n\t\t\tif a.getNextexpressionRaw() == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '0-9' but get '-'\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbin := expressionOperation{\n\t\t\t\tOp: \"-\",\n\t\t\t\tLhs: expressionNumber{},\n\t\t\t\tRhs: a.parsePrimary(),\n\t\t\t}\n\t\t\treturn bin\n\t\t} else {\n\t\t\treturn a.parseNumber()\n\t\t}\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc (a *ast) parseBinOpRHS(execPrec int, lhs expression) expression {\n\tfor {\n\t\ttokPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c execPrec {\n\t\t\treturn lhs\n\t\t}\n\t\tbinOp := a.currentexpression.expression\n\t\tif a.getNextexpressionRaw() == nil {\n\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\treturn nil\n\t\t}\n\t\trhs := a.parsePrimary()\n\t\tif rhs == nil {\n\t\t\treturn nil\n\t\t}\n\t\tnextPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c nextPrec {\n\t\t\trhs = a.parseBinOpRHS(tokPrec+1, rhs)\n\t\t\tif rhs == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tlhs = expressionOperation{\n\t\t\tOp: binOp,\n\t\t\tLhs: lhs,\n\t\t\tRhs: rhs,\n\t\t}\n\t}\n}\n\nfunc lexer(s string) ([]*expressionRaw, error) {\n\tp := \u0026parser{\n\t\tInput: s,\n\t\terr: nil,\n\t\tch: s[0],\n\t}\n\ttoks := p.parse()\n\tif p.err != nil {\n\t\treturn nil, p.err\n\t}\n\treturn toks, nil\n}\n\nfunc (p *parser) parse() []*expressionRaw {\n\ttoks := make([]*expressionRaw, 0)\n\tfor {\n\t\ttok := p.nextTok()\n\t\tif tok == nil {\n\t\t\tbreak\n\t\t}\n\t\ttoks = append(toks, tok)\n\t}\n\treturn toks\n}\n\nfunc (p *parser) nextTok() *expressionRaw {\n\tif p.offset \u003e= len(p.Input) || p.err != nil {\n\t\treturn nil\n\t}\n\tvar err error\n\tfor p.isWhitespace(p.ch) \u0026\u0026 err == nil {\n\t\terr = p.nextCh()\n\t}\n\tstart := p.offset\n\tvar tok *expressionRaw\n\tswitch p.ch {\n\tcase\n\t\t'(',\n\t\t')',\n\t\t'+',\n\t\t'-',\n\t\t'*',\n\t\t'/',\n\t\t'^',\n\t\t'\u0026',\n\t\t'|',\n\t\t'%':\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: string(p.ch),\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\terr = p.nextCh()\n\tcase '\u003e', '\u003c':\n\t\ttokS := string(p.ch)\n\t\tbb, be := p.nextChPeek()\n\t\tif be == nil \u0026\u0026 string(bb) == tokS {\n\t\t\ttokS += string(p.ch)\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: tokS,\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\tif len(tokS) \u003e 1 {\n\t\t\tp.nextCh()\n\t\t}\n\t\terr = p.nextCh()\n\tcase\n\t\t'0',\n\t\t'1',\n\t\t'2',\n\t\t'3',\n\t\t'4',\n\t\t'5',\n\t\t'6',\n\t\t'7',\n\t\t'8',\n\t\t'9':\n\t\tfor p.isDigitNum(p.ch) \u0026\u0026 p.nextCh() == nil {\n\t\t\tif (p.ch == '-' || p.ch == '+') \u0026\u0026 p.Input[p.offset-1] != 'e' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: strings.ReplaceAll(p.Input[start:p.offset], \"_\", \"\"),\n\t\t\tType: Number,\n\t\t}\n\t\ttok.Offset = start\n\tdefault:\n\t\tif p.isChar(p.ch) {\n\t\t\ttok = \u0026expressionRaw{\n\t\t\t\texpression: string(p.ch),\n\t\t\t\tType: Variable,\n\t\t\t}\n\t\t\ttok.Offset = start\n\t\t\terr = p.nextCh()\n\t\t} else if p.ch != ' ' {\n\t\t\tp.err = ufmt.Errorf(\"symbol error: unknown '%v', pos [%v:]\\n%s\",\n\t\t\t\tstring(p.ch),\n\t\t\t\tstart,\n\t\t\t\texpressionError(p.Input, start))\n\t\t}\n\t}\n\treturn tok\n}\n\nfunc (p *parser) nextChPeek() (byte, error) {\n\toffset := p.offset + 1\n\tif offset \u003c len(p.Input) {\n\t\treturn p.Input[offset], nil\n\t}\n\treturn byte(0), errors.New(\"no byte\")\n}\n\nfunc (p *parser) nextCh() error {\n\tp.offset++\n\tif p.offset \u003c len(p.Input) {\n\t\tp.ch = p.Input[p.offset]\n\t\treturn nil\n\t}\n\treturn errors.New(\"EOF\")\n}\n\nfunc (p *parser) isWhitespace(c byte) bool {\n\treturn c == ' ' ||\n\t\tc == '\\t' ||\n\t\tc == '\\n' ||\n\t\tc == '\\v' ||\n\t\tc == '\\f' ||\n\t\tc == '\\r'\n}\n\nfunc (p *parser) isDigitNum(c byte) bool {\n\treturn '0' \u003c= c \u0026\u0026 c \u003c= '9' || c == '.' || c == '_' || c == 'e' || c == '-' || c == '+'\n}\n\nfunc (p *parser) isChar(c byte) bool {\n\treturn 'a' \u003c= c \u0026\u0026 c \u003c= 'z' || 'A' \u003c= c \u0026\u0026 c \u003c= 'Z'\n}\n\nfunc (p *parser) isWordChar(c byte) bool {\n\treturn p.isChar(c) || '0' \u003c= c \u0026\u0026 c \u003c= '9'\n}\n"},{"name":"int32_test.gno","body":"package int32\n\nimport \"testing\"\n\nfunc TestOne(t *testing.T) {\n\tttt := []struct {\n\t\texp string\n\t\tres int\n\t}{\n\t\t{\"1\", 1},\n\t\t{\"--1\", 1},\n\t\t{\"1+2\", 3},\n\t\t{\"-1+2\", 1},\n\t\t{\"-(1+2)\", -3},\n\t\t{\"-(1+2)*5\", -15},\n\t\t{\"-(1+2)*5/3\", -5},\n\t\t{\"1+(-(1+2)*5/3)\", -4},\n\t\t{\"3^4\", 3 ^ 4},\n\t\t{\"8%2\", 8 % 2},\n\t\t{\"8%3\", 8 % 3},\n\t\t{\"8|3\", 8 | 3},\n\t\t{\"10%2\", 0},\n\t\t{\"(4 + 3)/2-1+11*15\", (4+3)/2 - 1 + 11*15},\n\t\t{\n\t\t\t\"(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64)\",\n\t\t\t(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64),\n\t\t},\n\t\t{\n\t\t\t\"(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64)\",\n\t\t\t(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64),\n\t\t},\n\t\t{\"((0000+1)*0000)\", 0},\n\t}\n\tfor _, tc := range ttt {\n\t\tt.Run(tc.exp, func(t *testing.T) {\n\t\t\texp, err := Parse(tc.exp)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"%s:\\n%s\", tc.exp, err.Error())\n\t\t\t} else {\n\t\t\t\tres, errEval := Eval(exp, nil)\n\t\t\t\tif errEval != nil {\n\t\t\t\t\tt.Errorf(\"eval error: %s\", errEval.Error())\n\t\t\t\t} else if res != tc.res {\n\t\t\t\t\tt.Errorf(\"%s:\\nexpected %d, got %d\", tc.exp, tc.res, res)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestVariables(t *testing.T) {\n\tfn := func(x, y int) int {\n\t\treturn 1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\n\t}\n\texpr := \"1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\"\n\texp, err := Parse(expr)\n\tif err != nil {\n\t\tt.Errorf(\"could not parse: %s\", err.Error())\n\t}\n\tvariables := make(map[string]int)\n\tfor i := 0; i \u003c 10; i++ {\n\t\tvariables[\"x\"] = i\n\t\tvariables[\"y\"] = 2\n\t\tres, errEval := Eval(exp, variables)\n\t\tif errEval != nil {\n\t\t\tt.Errorf(\"could not evaluate: %s\", err.Error())\n\t\t}\n\t\texpected := fn(variables[\"x\"], variables[\"y\"])\n\t\tif res != expected {\n\t\t\tt.Errorf(\"expected: %d, actual: %d\", expected, res)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JahDGIa9Bubk8YMHyEldq1EbCjOy4rj0pHbLTA5Ge9txc57KVnEsYRxR8u1jHevPg8G8bAydEUGEC9iPEiiaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"int32","path":"gno.land/p/demo/math_eval/int32","files":[{"name":"int32.gno","body":"// eval/int32 is a evaluator for int32 expressions.\n// This code is heavily forked from https://github.com/dengsgo/math-engine\n// which is licensed under Apache 2.0:\n// https://raw.githubusercontent.com/dengsgo/math-engine/298e2b57b7e7350d0f67bd036916efd5709abe25/LICENSE\npackage int32\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tIdentifier = iota\n\tNumber // numbers\n\tOperator // +, -, *, /, etc.\n\tVariable // x, y, z, etc. (one-letter only)\n)\n\ntype expression interface {\n\tString() string\n}\n\ntype expressionRaw struct {\n\texpression string\n\tType int\n\tFlag int\n\tOffset int\n}\n\ntype parser struct {\n\tInput string\n\tch byte\n\toffset int\n\terr error\n}\n\ntype expressionNumber struct {\n\tVal int\n\tStr string\n}\n\ntype expressionVariable struct {\n\tVal int\n\tStr string\n}\n\ntype expressionOperation struct {\n\tOp string\n\tLhs,\n\tRhs expression\n}\n\ntype ast struct {\n\trawexpressions []*expressionRaw\n\tsource string\n\tcurrentexpression *expressionRaw\n\tcurrentIndex int\n\tdepth int\n\terr error\n}\n\n// Parse takes an expression string, e.g. \"1+2\" and returns\n// a parsed expression. If there is an error it will return.\nfunc Parse(s string) (ar expression, err error) {\n\ttoks, err := lexer(s)\n\tif err != nil {\n\t\treturn\n\t}\n\tast, err := newAST(toks, s)\n\tif err != nil {\n\t\treturn\n\t}\n\tar, err = ast.parseExpression()\n\treturn\n}\n\n// Eval takes a parsed expression and a map of variables (or nil). The parsed\n// expression is evaluated using any variables and returns the\n// resulting int and/or error.\nfunc Eval(expr expression, variables map[string]int) (res int, err error) {\n\tif err != nil {\n\t\treturn\n\t}\n\tvar l, r int\n\tswitch expr.(type) {\n\tcase expressionVariable:\n\t\tast := expr.(expressionVariable)\n\t\tok := false\n\t\tif variables != nil {\n\t\t\tres, ok = variables[ast.Str]\n\t\t}\n\t\tif !ok {\n\t\t\terr = ufmt.Errorf(\"variable '%s' not found\", ast.Str)\n\t\t}\n\t\treturn\n\tcase expressionOperation:\n\t\tast := expr.(expressionOperation)\n\t\tl, err = Eval(ast.Lhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tr, err = Eval(ast.Rhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch ast.Op {\n\t\tcase \"+\":\n\t\t\tres = l + r\n\t\tcase \"-\":\n\t\t\tres = l - r\n\t\tcase \"*\":\n\t\t\tres = l * r\n\t\tcase \"/\":\n\t\t\tif r == 0 {\n\t\t\t\terr = ufmt.Errorf(\"violation of arithmetic specification: a division by zero in Eval: [%d/%d]\", l, r)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tres = l / r\n\t\tcase \"%\":\n\t\t\tif r == 0 {\n\t\t\t\tres = 0\n\t\t\t} else {\n\t\t\t\tres = l % r\n\t\t\t}\n\t\tcase \"^\":\n\t\t\tres = l ^ r\n\t\tcase \"\u003e\u003e\":\n\t\t\tres = l \u003e\u003e r\n\t\tcase \"\u003c\u003c\":\n\t\t\tres = l \u003c\u003c r\n\t\tcase \"\u003e\":\n\t\t\tif l \u003e r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u003c\":\n\t\t\tif l \u003c r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u0026\":\n\t\t\tres = l \u0026 r\n\t\tcase \"|\":\n\t\t\tres = l | r\n\t\tdefault:\n\n\t\t}\n\tcase expressionNumber:\n\t\tres = expr.(expressionNumber).Val\n\t}\n\n\treturn\n}\n\nfunc expressionError(s string, pos int) string {\n\tr := strings.Repeat(\"-\", len(s)) + \"\\n\"\n\ts += \"\\n\"\n\tfor i := 0; i \u003c pos; i++ {\n\t\ts += \" \"\n\t}\n\ts += \"^\\n\"\n\treturn r + s + r\n}\n\nfunc (n expressionVariable) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionVariable: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (n expressionNumber) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionNumber: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (b expressionOperation) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionOperation: (%s %s %s)\",\n\t\tb.Op,\n\t\tb.Lhs.String(),\n\t\tb.Rhs.String(),\n\t)\n}\n\nfunc newAST(toks []*expressionRaw, s string) (*ast, error) {\n\ta := \u0026ast{\n\t\trawexpressions: toks,\n\t\tsource: s,\n\t}\n\tif a.rawexpressions == nil || len(a.rawexpressions) == 0 {\n\t\treturn a, errors.New(\"empty token\")\n\t} else {\n\t\ta.currentIndex = 0\n\t\ta.currentexpression = a.rawexpressions[0]\n\t}\n\treturn a, nil\n}\n\nfunc (a *ast) parseExpression() (expression, error) {\n\ta.depth++ // called depth\n\tlhs := a.parsePrimary()\n\tr := a.parseBinOpRHS(0, lhs)\n\ta.depth--\n\tif a.depth == 0 \u0026\u0026 a.currentIndex != len(a.rawexpressions) \u0026\u0026 a.err == nil {\n\t\treturn r, ufmt.Errorf(\"bad expression, reaching the end or missing the operator\\n%s\",\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t}\n\treturn r, nil\n}\n\nfunc (a *ast) getNextexpressionRaw() *expressionRaw {\n\ta.currentIndex++\n\tif a.currentIndex \u003c len(a.rawexpressions) {\n\t\ta.currentexpression = a.rawexpressions[a.currentIndex]\n\t\treturn a.currentexpression\n\t}\n\treturn nil\n}\n\nfunc (a *ast) getTokPrecedence() int {\n\tswitch a.currentexpression.expression {\n\tcase \"/\", \"%\", \"*\":\n\t\treturn 100\n\tcase \"\u003c\u003c\", \"\u003e\u003e\":\n\t\treturn 80\n\tcase \"+\", \"-\":\n\t\treturn 75\n\tcase \"\u003c\", \"\u003e\":\n\t\treturn 70\n\tcase \"\u0026\":\n\t\treturn 60\n\tcase \"^\":\n\t\treturn 50\n\tcase \"|\":\n\t\treturn 40\n\t}\n\treturn -1\n}\n\nfunc (a *ast) parseNumber() expressionNumber {\n\tf64, err := strconv.Atoi(a.currentexpression.expression)\n\tif err != nil {\n\t\ta.err = ufmt.Errorf(\"%v\\nwant '(' or '0-9' but get '%s'\\n%s\",\n\t\t\terr.Error(),\n\t\t\ta.currentexpression.expression,\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\treturn expressionNumber{}\n\t}\n\tn := expressionNumber{\n\t\tVal: f64,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parseVariable() expressionVariable {\n\tn := expressionVariable{\n\t\tVal: 0,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parsePrimary() expression {\n\tswitch a.currentexpression.Type {\n\tcase Variable:\n\t\treturn a.parseVariable()\n\tcase Number:\n\t\treturn a.parseNumber()\n\tcase Operator:\n\t\tif a.currentexpression.expression == \"(\" {\n\t\t\tt := a.getNextexpressionRaw()\n\t\t\tif t == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\te, _ := a.parseExpression()\n\t\t\tif e == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif a.currentexpression.expression != \")\" {\n\t\t\t\ta.err = ufmt.Errorf(\"want ')' but get %s\\n%s\",\n\t\t\t\t\ta.currentexpression.expression,\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ta.getNextexpressionRaw()\n\t\t\treturn e\n\t\t} else if a.currentexpression.expression == \"-\" {\n\t\t\tif a.getNextexpressionRaw() == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '0-9' but get '-'\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbin := expressionOperation{\n\t\t\t\tOp: \"-\",\n\t\t\t\tLhs: expressionNumber{},\n\t\t\t\tRhs: a.parsePrimary(),\n\t\t\t}\n\t\t\treturn bin\n\t\t} else {\n\t\t\treturn a.parseNumber()\n\t\t}\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc (a *ast) parseBinOpRHS(execPrec int, lhs expression) expression {\n\tfor {\n\t\ttokPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c execPrec {\n\t\t\treturn lhs\n\t\t}\n\t\tbinOp := a.currentexpression.expression\n\t\tif a.getNextexpressionRaw() == nil {\n\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\treturn nil\n\t\t}\n\t\trhs := a.parsePrimary()\n\t\tif rhs == nil {\n\t\t\treturn nil\n\t\t}\n\t\tnextPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c nextPrec {\n\t\t\trhs = a.parseBinOpRHS(tokPrec+1, rhs)\n\t\t\tif rhs == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tlhs = expressionOperation{\n\t\t\tOp: binOp,\n\t\t\tLhs: lhs,\n\t\t\tRhs: rhs,\n\t\t}\n\t}\n}\n\nfunc lexer(s string) ([]*expressionRaw, error) {\n\tp := \u0026parser{\n\t\tInput: s,\n\t\terr: nil,\n\t\tch: s[0],\n\t}\n\ttoks := p.parse()\n\tif p.err != nil {\n\t\treturn nil, p.err\n\t}\n\treturn toks, nil\n}\n\nfunc (p *parser) parse() []*expressionRaw {\n\ttoks := make([]*expressionRaw, 0)\n\tfor {\n\t\ttok := p.nextTok()\n\t\tif tok == nil {\n\t\t\tbreak\n\t\t}\n\t\ttoks = append(toks, tok)\n\t}\n\treturn toks\n}\n\nfunc (p *parser) nextTok() *expressionRaw {\n\tif p.offset \u003e= len(p.Input) || p.err != nil {\n\t\treturn nil\n\t}\n\tvar err error\n\tfor p.isWhitespace(p.ch) \u0026\u0026 err == nil {\n\t\terr = p.nextCh()\n\t}\n\tstart := p.offset\n\tvar tok *expressionRaw\n\tswitch p.ch {\n\tcase\n\t\t'(',\n\t\t')',\n\t\t'+',\n\t\t'-',\n\t\t'*',\n\t\t'/',\n\t\t'^',\n\t\t'\u0026',\n\t\t'|',\n\t\t'%':\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: string(p.ch),\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\terr = p.nextCh()\n\tcase '\u003e', '\u003c':\n\t\ttokS := string(p.ch)\n\t\tbb, be := p.nextChPeek()\n\t\tif be == nil \u0026\u0026 string(bb) == tokS {\n\t\t\ttokS += string(p.ch)\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: tokS,\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\tif len(tokS) \u003e 1 {\n\t\t\tp.nextCh()\n\t\t}\n\t\terr = p.nextCh()\n\tcase\n\t\t'0',\n\t\t'1',\n\t\t'2',\n\t\t'3',\n\t\t'4',\n\t\t'5',\n\t\t'6',\n\t\t'7',\n\t\t'8',\n\t\t'9':\n\t\tfor p.isDigitNum(p.ch) \u0026\u0026 p.nextCh() == nil {\n\t\t\tif (p.ch == '-' || p.ch == '+') \u0026\u0026 p.Input[p.offset-1] != 'e' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: strings.ReplaceAll(p.Input[start:p.offset], \"_\", \"\"),\n\t\t\tType: Number,\n\t\t}\n\t\ttok.Offset = start\n\tdefault:\n\t\tif p.isChar(p.ch) {\n\t\t\ttok = \u0026expressionRaw{\n\t\t\t\texpression: string(p.ch),\n\t\t\t\tType: Variable,\n\t\t\t}\n\t\t\ttok.Offset = start\n\t\t\terr = p.nextCh()\n\t\t} else if p.ch != ' ' {\n\t\t\tp.err = ufmt.Errorf(\"symbol error: unknown '%v', pos [%v:]\\n%s\",\n\t\t\t\tstring(p.ch),\n\t\t\t\tstart,\n\t\t\t\texpressionError(p.Input, start))\n\t\t}\n\t}\n\treturn tok\n}\n\nfunc (p *parser) nextChPeek() (byte, error) {\n\toffset := p.offset + 1\n\tif offset \u003c len(p.Input) {\n\t\treturn p.Input[offset], nil\n\t}\n\treturn byte(0), errors.New(\"no byte\")\n}\n\nfunc (p *parser) nextCh() error {\n\tp.offset++\n\tif p.offset \u003c len(p.Input) {\n\t\tp.ch = p.Input[p.offset]\n\t\treturn nil\n\t}\n\treturn errors.New(\"EOF\")\n}\n\nfunc (p *parser) isWhitespace(c byte) bool {\n\treturn c == ' ' ||\n\t\tc == '\\t' ||\n\t\tc == '\\n' ||\n\t\tc == '\\v' ||\n\t\tc == '\\f' ||\n\t\tc == '\\r'\n}\n\nfunc (p *parser) isDigitNum(c byte) bool {\n\treturn '0' \u003c= c \u0026\u0026 c \u003c= '9' || c == '.' || c == '_' || c == 'e' || c == '-' || c == '+'\n}\n\nfunc (p *parser) isChar(c byte) bool {\n\treturn 'a' \u003c= c \u0026\u0026 c \u003c= 'z' || 'A' \u003c= c \u0026\u0026 c \u003c= 'Z'\n}\n\nfunc (p *parser) isWordChar(c byte) bool {\n\treturn p.isChar(c) || '0' \u003c= c \u0026\u0026 c \u003c= '9'\n}\n"},{"name":"int32_test.gno","body":"package int32\n\nimport \"testing\"\n\nfunc TestOne(t *testing.T) {\n\tttt := []struct {\n\t\texp string\n\t\tres int\n\t}{\n\t\t{\"1\", 1},\n\t\t{\"--1\", 1},\n\t\t{\"1+2\", 3},\n\t\t{\"-1+2\", 1},\n\t\t{\"-(1+2)\", -3},\n\t\t{\"-(1+2)*5\", -15},\n\t\t{\"-(1+2)*5/3\", -5},\n\t\t{\"1+(-(1+2)*5/3)\", -4},\n\t\t{\"3^4\", 3 ^ 4},\n\t\t{\"8%2\", 8 % 2},\n\t\t{\"8%3\", 8 % 3},\n\t\t{\"8|3\", 8 | 3},\n\t\t{\"10%2\", 0},\n\t\t{\"(4 + 3)/2-1+11*15\", (4+3)/2 - 1 + 11*15},\n\t\t{\n\t\t\t\"(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64)\",\n\t\t\t(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64),\n\t\t},\n\t\t{\n\t\t\t\"(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64)\",\n\t\t\t(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64),\n\t\t},\n\t\t{\"((0000+1)*0000)\", 0},\n\t}\n\tfor _, tc := range ttt {\n\t\tt.Run(tc.exp, func(t *testing.T) {\n\t\t\texp, err := Parse(tc.exp)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"%s:\\n%s\", tc.exp, err.Error())\n\t\t\t} else {\n\t\t\t\tres, errEval := Eval(exp, nil)\n\t\t\t\tif errEval != nil {\n\t\t\t\t\tt.Errorf(\"eval error: %s\", errEval.Error())\n\t\t\t\t} else if res != tc.res {\n\t\t\t\t\tt.Errorf(\"%s:\\nexpected %d, got %d\", tc.exp, tc.res, res)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestVariables(t *testing.T) {\n\tfn := func(x, y int) int {\n\t\treturn 1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\n\t}\n\texpr := \"1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\"\n\texp, err := Parse(expr)\n\tif err != nil {\n\t\tt.Errorf(\"could not parse: %s\", err.Error())\n\t}\n\tvariables := make(map[string]int)\n\tfor i := 0; i \u003c 10; i++ {\n\t\tvariables[\"x\"] = i\n\t\tvariables[\"y\"] = 2\n\t\tres, errEval := Eval(exp, variables)\n\t\tif errEval != nil {\n\t\t\tt.Errorf(\"could not evaluate: %s\", err.Error())\n\t\t}\n\t\texpected := fn(variables[\"x\"], variables[\"y\"])\n\t\tif res != expected {\n\t\t\tt.Errorf(\"expected: %d, actual: %d\", expected, res)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JahDGIa9Bubk8YMHyEldq1EbCjOy4rj0pHbLTA5Ge9txc57KVnEsYRxR8u1jHevPg8G8bAydEUGEC9iPEiiaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"int32","path":"gno.land/p/demo/math_eval/int32","files":[{"name":"int32.gno","body":"// eval/int32 is a evaluator for int32 expressions.\n// This code is heavily forked from https://github.com/dengsgo/math-engine\n// which is licensed under Apache 2.0:\n// https://raw.githubusercontent.com/dengsgo/math-engine/298e2b57b7e7350d0f67bd036916efd5709abe25/LICENSE\npackage int32\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tIdentifier = iota\n\tNumber // numbers\n\tOperator // +, -, *, /, etc.\n\tVariable // x, y, z, etc. (one-letter only)\n)\n\ntype expression interface {\n\tString() string\n}\n\ntype expressionRaw struct {\n\texpression string\n\tType int\n\tFlag int\n\tOffset int\n}\n\ntype parser struct {\n\tInput string\n\tch byte\n\toffset int\n\terr error\n}\n\ntype expressionNumber struct {\n\tVal int\n\tStr string\n}\n\ntype expressionVariable struct {\n\tVal int\n\tStr string\n}\n\ntype expressionOperation struct {\n\tOp string\n\tLhs,\n\tRhs expression\n}\n\ntype ast struct {\n\trawexpressions []*expressionRaw\n\tsource string\n\tcurrentexpression *expressionRaw\n\tcurrentIndex int\n\tdepth int\n\terr error\n}\n\n// Parse takes an expression string, e.g. \"1+2\" and returns\n// a parsed expression. If there is an error it will return.\nfunc Parse(s string) (ar expression, err error) {\n\ttoks, err := lexer(s)\n\tif err != nil {\n\t\treturn\n\t}\n\tast, err := newAST(toks, s)\n\tif err != nil {\n\t\treturn\n\t}\n\tar, err = ast.parseExpression()\n\treturn\n}\n\n// Eval takes a parsed expression and a map of variables (or nil). The parsed\n// expression is evaluated using any variables and returns the\n// resulting int and/or error.\nfunc Eval(expr expression, variables map[string]int) (res int, err error) {\n\tif err != nil {\n\t\treturn\n\t}\n\tvar l, r int\n\tswitch expr.(type) {\n\tcase expressionVariable:\n\t\tast := expr.(expressionVariable)\n\t\tok := false\n\t\tif variables != nil {\n\t\t\tres, ok = variables[ast.Str]\n\t\t}\n\t\tif !ok {\n\t\t\terr = ufmt.Errorf(\"variable '%s' not found\", ast.Str)\n\t\t}\n\t\treturn\n\tcase expressionOperation:\n\t\tast := expr.(expressionOperation)\n\t\tl, err = Eval(ast.Lhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tr, err = Eval(ast.Rhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch ast.Op {\n\t\tcase \"+\":\n\t\t\tres = l + r\n\t\tcase \"-\":\n\t\t\tres = l - r\n\t\tcase \"*\":\n\t\t\tres = l * r\n\t\tcase \"/\":\n\t\t\tif r == 0 {\n\t\t\t\terr = ufmt.Errorf(\"violation of arithmetic specification: a division by zero in Eval: [%d/%d]\", l, r)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tres = l / r\n\t\tcase \"%\":\n\t\t\tif r == 0 {\n\t\t\t\tres = 0\n\t\t\t} else {\n\t\t\t\tres = l % r\n\t\t\t}\n\t\tcase \"^\":\n\t\t\tres = l ^ r\n\t\tcase \"\u003e\u003e\":\n\t\t\tres = l \u003e\u003e r\n\t\tcase \"\u003c\u003c\":\n\t\t\tres = l \u003c\u003c r\n\t\tcase \"\u003e\":\n\t\t\tif l \u003e r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u003c\":\n\t\t\tif l \u003c r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u0026\":\n\t\t\tres = l \u0026 r\n\t\tcase \"|\":\n\t\t\tres = l | r\n\t\tdefault:\n\n\t\t}\n\tcase expressionNumber:\n\t\tres = expr.(expressionNumber).Val\n\t}\n\n\treturn\n}\n\nfunc expressionError(s string, pos int) string {\n\tr := strings.Repeat(\"-\", len(s)) + \"\\n\"\n\ts += \"\\n\"\n\tfor i := 0; i \u003c pos; i++ {\n\t\ts += \" \"\n\t}\n\ts += \"^\\n\"\n\treturn r + s + r\n}\n\nfunc (n expressionVariable) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionVariable: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (n expressionNumber) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionNumber: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (b expressionOperation) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionOperation: (%s %s %s)\",\n\t\tb.Op,\n\t\tb.Lhs.String(),\n\t\tb.Rhs.String(),\n\t)\n}\n\nfunc newAST(toks []*expressionRaw, s string) (*ast, error) {\n\ta := \u0026ast{\n\t\trawexpressions: toks,\n\t\tsource: s,\n\t}\n\tif a.rawexpressions == nil || len(a.rawexpressions) == 0 {\n\t\treturn a, errors.New(\"empty token\")\n\t} else {\n\t\ta.currentIndex = 0\n\t\ta.currentexpression = a.rawexpressions[0]\n\t}\n\treturn a, nil\n}\n\nfunc (a *ast) parseExpression() (expression, error) {\n\ta.depth++ // called depth\n\tlhs := a.parsePrimary()\n\tr := a.parseBinOpRHS(0, lhs)\n\ta.depth--\n\tif a.depth == 0 \u0026\u0026 a.currentIndex != len(a.rawexpressions) \u0026\u0026 a.err == nil {\n\t\treturn r, ufmt.Errorf(\"bad expression, reaching the end or missing the operator\\n%s\",\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t}\n\treturn r, nil\n}\n\nfunc (a *ast) getNextexpressionRaw() *expressionRaw {\n\ta.currentIndex++\n\tif a.currentIndex \u003c len(a.rawexpressions) {\n\t\ta.currentexpression = a.rawexpressions[a.currentIndex]\n\t\treturn a.currentexpression\n\t}\n\treturn nil\n}\n\nfunc (a *ast) getTokPrecedence() int {\n\tswitch a.currentexpression.expression {\n\tcase \"/\", \"%\", \"*\":\n\t\treturn 100\n\tcase \"\u003c\u003c\", \"\u003e\u003e\":\n\t\treturn 80\n\tcase \"+\", \"-\":\n\t\treturn 75\n\tcase \"\u003c\", \"\u003e\":\n\t\treturn 70\n\tcase \"\u0026\":\n\t\treturn 60\n\tcase \"^\":\n\t\treturn 50\n\tcase \"|\":\n\t\treturn 40\n\t}\n\treturn -1\n}\n\nfunc (a *ast) parseNumber() expressionNumber {\n\tf64, err := strconv.Atoi(a.currentexpression.expression)\n\tif err != nil {\n\t\ta.err = ufmt.Errorf(\"%v\\nwant '(' or '0-9' but get '%s'\\n%s\",\n\t\t\terr.Error(),\n\t\t\ta.currentexpression.expression,\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\treturn expressionNumber{}\n\t}\n\tn := expressionNumber{\n\t\tVal: f64,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parseVariable() expressionVariable {\n\tn := expressionVariable{\n\t\tVal: 0,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parsePrimary() expression {\n\tswitch a.currentexpression.Type {\n\tcase Variable:\n\t\treturn a.parseVariable()\n\tcase Number:\n\t\treturn a.parseNumber()\n\tcase Operator:\n\t\tif a.currentexpression.expression == \"(\" {\n\t\t\tt := a.getNextexpressionRaw()\n\t\t\tif t == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\te, _ := a.parseExpression()\n\t\t\tif e == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif a.currentexpression.expression != \")\" {\n\t\t\t\ta.err = ufmt.Errorf(\"want ')' but get %s\\n%s\",\n\t\t\t\t\ta.currentexpression.expression,\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ta.getNextexpressionRaw()\n\t\t\treturn e\n\t\t} else if a.currentexpression.expression == \"-\" {\n\t\t\tif a.getNextexpressionRaw() == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '0-9' but get '-'\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbin := expressionOperation{\n\t\t\t\tOp: \"-\",\n\t\t\t\tLhs: expressionNumber{},\n\t\t\t\tRhs: a.parsePrimary(),\n\t\t\t}\n\t\t\treturn bin\n\t\t} else {\n\t\t\treturn a.parseNumber()\n\t\t}\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc (a *ast) parseBinOpRHS(execPrec int, lhs expression) expression {\n\tfor {\n\t\ttokPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c execPrec {\n\t\t\treturn lhs\n\t\t}\n\t\tbinOp := a.currentexpression.expression\n\t\tif a.getNextexpressionRaw() == nil {\n\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\treturn nil\n\t\t}\n\t\trhs := a.parsePrimary()\n\t\tif rhs == nil {\n\t\t\treturn nil\n\t\t}\n\t\tnextPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c nextPrec {\n\t\t\trhs = a.parseBinOpRHS(tokPrec+1, rhs)\n\t\t\tif rhs == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tlhs = expressionOperation{\n\t\t\tOp: binOp,\n\t\t\tLhs: lhs,\n\t\t\tRhs: rhs,\n\t\t}\n\t}\n}\n\nfunc lexer(s string) ([]*expressionRaw, error) {\n\tp := \u0026parser{\n\t\tInput: s,\n\t\terr: nil,\n\t\tch: s[0],\n\t}\n\ttoks := p.parse()\n\tif p.err != nil {\n\t\treturn nil, p.err\n\t}\n\treturn toks, nil\n}\n\nfunc (p *parser) parse() []*expressionRaw {\n\ttoks := make([]*expressionRaw, 0)\n\tfor {\n\t\ttok := p.nextTok()\n\t\tif tok == nil {\n\t\t\tbreak\n\t\t}\n\t\ttoks = append(toks, tok)\n\t}\n\treturn toks\n}\n\nfunc (p *parser) nextTok() *expressionRaw {\n\tif p.offset \u003e= len(p.Input) || p.err != nil {\n\t\treturn nil\n\t}\n\tvar err error\n\tfor p.isWhitespace(p.ch) \u0026\u0026 err == nil {\n\t\terr = p.nextCh()\n\t}\n\tstart := p.offset\n\tvar tok *expressionRaw\n\tswitch p.ch {\n\tcase\n\t\t'(',\n\t\t')',\n\t\t'+',\n\t\t'-',\n\t\t'*',\n\t\t'/',\n\t\t'^',\n\t\t'\u0026',\n\t\t'|',\n\t\t'%':\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: string(p.ch),\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\terr = p.nextCh()\n\tcase '\u003e', '\u003c':\n\t\ttokS := string(p.ch)\n\t\tbb, be := p.nextChPeek()\n\t\tif be == nil \u0026\u0026 string(bb) == tokS {\n\t\t\ttokS += string(p.ch)\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: tokS,\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\tif len(tokS) \u003e 1 {\n\t\t\tp.nextCh()\n\t\t}\n\t\terr = p.nextCh()\n\tcase\n\t\t'0',\n\t\t'1',\n\t\t'2',\n\t\t'3',\n\t\t'4',\n\t\t'5',\n\t\t'6',\n\t\t'7',\n\t\t'8',\n\t\t'9':\n\t\tfor p.isDigitNum(p.ch) \u0026\u0026 p.nextCh() == nil {\n\t\t\tif (p.ch == '-' || p.ch == '+') \u0026\u0026 p.Input[p.offset-1] != 'e' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: strings.ReplaceAll(p.Input[start:p.offset], \"_\", \"\"),\n\t\t\tType: Number,\n\t\t}\n\t\ttok.Offset = start\n\tdefault:\n\t\tif p.isChar(p.ch) {\n\t\t\ttok = \u0026expressionRaw{\n\t\t\t\texpression: string(p.ch),\n\t\t\t\tType: Variable,\n\t\t\t}\n\t\t\ttok.Offset = start\n\t\t\terr = p.nextCh()\n\t\t} else if p.ch != ' ' {\n\t\t\tp.err = ufmt.Errorf(\"symbol error: unknown '%v', pos [%v:]\\n%s\",\n\t\t\t\tstring(p.ch),\n\t\t\t\tstart,\n\t\t\t\texpressionError(p.Input, start))\n\t\t}\n\t}\n\treturn tok\n}\n\nfunc (p *parser) nextChPeek() (byte, error) {\n\toffset := p.offset + 1\n\tif offset \u003c len(p.Input) {\n\t\treturn p.Input[offset], nil\n\t}\n\treturn byte(0), errors.New(\"no byte\")\n}\n\nfunc (p *parser) nextCh() error {\n\tp.offset++\n\tif p.offset \u003c len(p.Input) {\n\t\tp.ch = p.Input[p.offset]\n\t\treturn nil\n\t}\n\treturn errors.New(\"EOF\")\n}\n\nfunc (p *parser) isWhitespace(c byte) bool {\n\treturn c == ' ' ||\n\t\tc == '\\t' ||\n\t\tc == '\\n' ||\n\t\tc == '\\v' ||\n\t\tc == '\\f' ||\n\t\tc == '\\r'\n}\n\nfunc (p *parser) isDigitNum(c byte) bool {\n\treturn '0' \u003c= c \u0026\u0026 c \u003c= '9' || c == '.' || c == '_' || c == 'e' || c == '-' || c == '+'\n}\n\nfunc (p *parser) isChar(c byte) bool {\n\treturn 'a' \u003c= c \u0026\u0026 c \u003c= 'z' || 'A' \u003c= c \u0026\u0026 c \u003c= 'Z'\n}\n\nfunc (p *parser) isWordChar(c byte) bool {\n\treturn p.isChar(c) || '0' \u003c= c \u0026\u0026 c \u003c= '9'\n}\n"},{"name":"int32_test.gno","body":"package int32\n\nimport \"testing\"\n\nfunc TestOne(t *testing.T) {\n\tttt := []struct {\n\t\texp string\n\t\tres int\n\t}{\n\t\t{\"1\", 1},\n\t\t{\"--1\", 1},\n\t\t{\"1+2\", 3},\n\t\t{\"-1+2\", 1},\n\t\t{\"-(1+2)\", -3},\n\t\t{\"-(1+2)*5\", -15},\n\t\t{\"-(1+2)*5/3\", -5},\n\t\t{\"1+(-(1+2)*5/3)\", -4},\n\t\t{\"3^4\", 3 ^ 4},\n\t\t{\"8%2\", 8 % 2},\n\t\t{\"8%3\", 8 % 3},\n\t\t{\"8|3\", 8 | 3},\n\t\t{\"10%2\", 0},\n\t\t{\"(4 + 3)/2-1+11*15\", (4+3)/2 - 1 + 11*15},\n\t\t{\n\t\t\t\"(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64)\",\n\t\t\t(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64),\n\t\t},\n\t\t{\n\t\t\t\"(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64)\",\n\t\t\t(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64),\n\t\t},\n\t\t{\"((0000+1)*0000)\", 0},\n\t}\n\tfor _, tc := range ttt {\n\t\tt.Run(tc.exp, func(t *testing.T) {\n\t\t\texp, err := Parse(tc.exp)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"%s:\\n%s\", tc.exp, err.Error())\n\t\t\t} else {\n\t\t\t\tres, errEval := Eval(exp, nil)\n\t\t\t\tif errEval != nil {\n\t\t\t\t\tt.Errorf(\"eval error: %s\", errEval.Error())\n\t\t\t\t} else if res != tc.res {\n\t\t\t\t\tt.Errorf(\"%s:\\nexpected %d, got %d\", tc.exp, tc.res, res)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestVariables(t *testing.T) {\n\tfn := func(x, y int) int {\n\t\treturn 1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\n\t}\n\texpr := \"1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\"\n\texp, err := Parse(expr)\n\tif err != nil {\n\t\tt.Errorf(\"could not parse: %s\", err.Error())\n\t}\n\tvariables := make(map[string]int)\n\tfor i := 0; i \u003c 10; i++ {\n\t\tvariables[\"x\"] = i\n\t\tvariables[\"y\"] = 2\n\t\tres, errEval := Eval(exp, variables)\n\t\tif errEval != nil {\n\t\t\tt.Errorf(\"could not evaluate: %s\", err.Error())\n\t\t}\n\t\texpected := fn(variables[\"x\"], variables[\"y\"])\n\t\tif res != expected {\n\t\t\tt.Errorf(\"expected: %d, actual: %d\", expected, res)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JahDGIa9Bubk8YMHyEldq1EbCjOy4rj0pHbLTA5Ge9txc57KVnEsYRxR8u1jHevPg8G8bAydEUGEC9iPEiiaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"isaac","path":"gno.land/p/wyhaines/rand/isaac","files":[{"name":"README.md","body":"# package isaac // import \"gno.land/p/demo/math/rand/isaac\"\n\nThis is a port of the ISAAC cryptographically secure PRNG,\noriginally based on the reference implementation found at\nhttps://burtleburtle.net/bob/rand/isaacafa.html\n\nISAAC has excellent statistical properties, with long cycle times, and\nuniformly distributed, unbiased, and unpredictable number generation. It can\nnot be distinguished from real random data, and in three decades of scrutiny,\nno practical attacks have been found.\n\nThe default random number algorithm in gno was ported from Go's v2 rand\nimplementatoon, which defaults to the PCG algorithm. This algorithm is\ncommonly used in language PRNG implementations because it has modest seeding\nrequirements, and generates statistically strong randomness.\n\nThis package provides an implementation of the 32-bit ISAAC PRNG algorithm. This\nalgorithm provides very strong statistical performance, and is cryptographically\nsecure, while still being substantially faster than the default PCG\nimplementation in `math/rand`. Note that this package does implement a `Uint64()`\nfunction in order to generate a 64 bit number out of two 32 bit numbers. Doing this\nmakes the generator only slightly faster than PCG, however,\n\nNote that the approach to seeing with ISAAC is very important for best results,\nand seeding with ISAAC is not as simple as seeding with a single uint64 value.\nThe ISAAC algorithm requires a 256-element seed. If used for cryptographic\npurposes, this will likely require entropy generated off-chain for actual\ncryptographically secure seeding. For other purposes, however, one can utilize\nthe built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to\ngenerate any missing seeds if fewer than 256 are provided.\n\n\n```\nBenchmark\n---------\nPCG: 1000000 Uint64 generated in 15.58s\nISAAC: 1000000 Uint64 generated in 13.23s (uint64)\nISAAC: 1000000 Uint32 generated in 6.43s (uint32)\nRatio: x1.18 times faster than PCG (uint64)\nRatio: x2.42 times faster than PCG (uint32)\n```\n\nUse it directly:\n\n```\nprng = isaac.New() // pass 0 to 256 uint32 seeds; if fewer than 256 are provided, the rest\n // will be generated using the xorshiftr128plus PRNG.\n```\n\nOr use it as a drop-in replacement for the default PRNT in Rand:\n\n```\nsource = isaac.New()\nprng := rand.New(source)\n```\n\n# TYPES\n\n`\ntype ISAAC struct {\n\t// Has unexported fields.\n}\n`\n\n`func New(seeds ...uint32) *ISAAC`\n ISAAC requires a large, 256-element seed. This implementation will leverage\n the entropy package combined with the the xorshiftr128plus PRNG to generate\n any missing seeds of fewer than the required number of arguments are\n provided.\n\n`func (isaac *ISAAC) MarshalBinary() ([]byte, error)`\n MarshalBinary() returns a byte array that encodes the state of the PRNG.\n This can later be used with UnmarshalBinary() to restore the state of the\n PRNG. MarshalBinary implements the encoding.BinaryMarshaler interface.\n\n`func (isaac *ISAAC) Seed(seed [256]uint32)`\n\n`func (isaac *ISAAC) Uint32() uint32`\n\n`func (isaac *ISAAC) Uint64() uint64`\n\n`func (isaac *ISAAC) UnmarshalBinary(data []byte) error`\n UnmarshalBinary() restores the state of the PRNG from a byte array\n that was created with MarshalBinary(). UnmarshalBinary implements the\n encoding.BinaryUnmarshaler interface.\n\n"},{"name":"isaac.gno","body":"// This is a port of the ISAAC cryptographically secure PRNG, originally based on the reference\n// implementation found at https://burtleburtle.net/bob/rand/isaacafa.html\n//\n// ISAAC has excellent statistical properties, with long cycle times, and uniformly distributed,\n// unbiased, and unpredictable number generation. It can not be distinguished from real random\n// data, and in three decades of scrutiny, no practical attacks have been found.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementation, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the 32-bit ISAAC PRNG algorithm. This\n// algorithm provides very strong statistical performance, and is cryptographically\n// secure, while still being substantially faster than the default PCG\n// implementation in `math/rand`. Note that this package does implement a `Uint64()`\n// function in order to generate a 64 bit number out of two 32 bit numbers. Doing this\n// makes the generator only slightly faster than PCG, however,\n//\n// Note that the approach to seeing with ISAAC is very important for best results, and seeding with\n// ISAAC is not as simple as seeding with a single uint64 value. The ISAAC algorithm requires a\n// 256-element seed. If used for cryptographic purposes, this will likely require entropy generated\n// off-chain for actual cryptographically secure seeding. For other purposes, however, one can\n// utilize the built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to generate\n// any missing seeds if fewer than 256 are provided.\n//\n//\t\tBenchmark\n//\t\t---------\n//\t\tPCG: 1000000 Uint64 generated in 15.58s\n//\t\tISAAC: 1000000 Uint64 generated in 13.23s\n//\t\tISAAC: 1000000 Uint32 generated in 6.43s\n//\t Ratio: x1.18 times faster than PCG (uint64)\n//\t Ratio: x2.42 times faster than PCG (uint32)\n//\n// Use it directly:\n//\n//\t\tprng = isaac.New() // pass 0 to 256 uint32 seeds; if fewer than 256 are provided, the rest\n//\t // will be generated using the xorshiftr128plus PRNG.\n//\n// Or use it as a drop-in replacement for the default PRNG in Rand:\n//\n//\tsource = isaac.New()\n//\tprng := rand.New(source)\npackage isaac\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"math/rand\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/wyhaines/rand/xorshiftr128plus\"\n)\n\ntype ISAAC struct {\n\trandrsl [256]uint32\n\trandcnt uint32\n\tmm [256]uint32\n\taa, bb, cc uint32\n\tseed [256]uint32\n}\n\n// ISAAC requires a large, 256-element seed. This implementation will leverage the entropy\n// package combined with the the xorshiftr128plus PRNG to generate any missing seeds of\n// fewer than the required number of arguments are provided.\nfunc New(seeds ...uint32) *ISAAC {\n\tisaac := \u0026ISAAC{}\n\tseed := [256]uint32{}\n\n\tindex := 0\n\tfor index = 0; index \u003c len(seeds); index++ {\n\t\tseed[index] = seeds[index]\n\t}\n\n\tif index \u003c 4 {\n\t\te := entropy.New()\n\t\tfor ; index \u003c 4; index++ {\n\t\t\tseed[index] = e.Value()\n\t\t}\n\t}\n\n\t// Use up to the first four seeds as seeding inputs for xorshiftr128+, in order to\n\t// use it to provide any remaining missing seeds.\n\tprng := xorshiftr128plus.New(\n\t\t(uint64(seed[0])\u003c\u003c32)|uint64(seed[1]),\n\t\t(uint64(seed[2])\u003c\u003c32)|uint64(seed[3]),\n\t)\n\tfor ; index \u003c 256; index += 2 {\n\t\tval := prng.Uint64()\n\t\tseed[index] = uint32(val \u0026 0xffffffff)\n\t\tif index+1 \u003c 256 {\n\t\t\tseed[index+1] = uint32(val \u003e\u003e 32)\n\t\t}\n\t}\n\tisaac.Seed(seed)\n\treturn isaac\n}\n\nfunc (isaac *ISAAC) Seed(seed [256]uint32) {\n\tisaac.randrsl = seed\n\tisaac.seed = seed\n\tisaac.randinit(true)\n}\n\n// beUint32() decodes a uint32 from a set of four bytes, assuming big endian encoding.\n// binary.bigEndian.Uint32, copied to avoid dependency\nfunc beUint32(b []byte) uint32 {\n\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint32(b[3]) | uint32(b[2])\u003c\u003c8 | uint32(b[1])\u003c\u003c16 | uint32(b[0])\u003c\u003c24\n}\n\n// bePutUint32() encodes a uint64 into a buffer of eight bytes.\n// binary.bigEndian.PutUint32, copied to avoid dependency\nfunc bePutUint32(b []byte, v uint32) {\n\t_ = b[3] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 24)\n\tb[1] = byte(v \u003e\u003e 16)\n\tb[2] = byte(v \u003e\u003e 8)\n\tb[3] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalISAACLabel = []byte(\"isaac:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (isaac *ISAAC) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 3094) // 6 + 1024 + 1024 + 1024 + 4 + 4 + 4 + 4 == 3090\n\tcopy(b, marshalISAACLabel)\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint32(b[6+i*4:], isaac.seed[i])\n\t}\n\tfor i := 256; i \u003c 512; i++ {\n\t\tbePutUint32(b[6+i*4:], isaac.randrsl[i-256])\n\t}\n\tfor i := 512; i \u003c 768; i++ {\n\t\tbePutUint32(b[6+i*4:], isaac.mm[i-512])\n\t}\n\tbePutUint32(b[3078:], isaac.aa)\n\tbePutUint32(b[3082:], isaac.bb)\n\tbePutUint32(b[3086:], isaac.cc)\n\tbePutUint32(b[3090:], isaac.randcnt)\n\n\treturn b, nil\n}\n\n// errUnmarshalISAAC is returned when unmarshalling fails.\nvar errUnmarshalISAAC = errors.New(\"invalid ISAAC encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (isaac *ISAAC) UnmarshalBinary(data []byte) error {\n\tif len(data) != 3094 || string(data[:6]) != string(marshalISAACLabel) {\n\t\treturn errUnmarshalISAAC\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.seed[i] = beUint32(data[6+i*4:])\n\t}\n\tfor i := 256; i \u003c 512; i++ {\n\t\tisaac.randrsl[i-256] = beUint32(data[6+i*4:])\n\t}\n\tfor i := 512; i \u003c 768; i++ {\n\t\tisaac.mm[i-512] = beUint32(data[6+i*4:])\n\t}\n\tisaac.aa = beUint32(data[3078:])\n\tisaac.bb = beUint32(data[3082:])\n\tisaac.cc = beUint32(data[3086:])\n\tisaac.randcnt = beUint32(data[3090:])\n\treturn nil\n}\n\nfunc (isaac *ISAAC) randinit(flag bool) {\n\tisaac.aa = 0\n\tisaac.bb = 0\n\tisaac.cc = 0\n\n\tvar a, b, c, d, e, f, g, h uint32 = 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9\n\n\tfor i := 0; i \u003c 4; i++ {\n\t\ta ^= b \u003c\u003c 11\n\t\td += a\n\t\tb += c\n\t\tb ^= c \u003e\u003e 2\n\t\te += b\n\t\tc += d\n\t\tc ^= d \u003c\u003c 8\n\t\tf += c\n\t\td += e\n\t\td ^= e \u003e\u003e 16\n\t\tg += d\n\t\te += f\n\t\te ^= f \u003c\u003c 10\n\t\th += e\n\t\tf += g\n\t\tf ^= g \u003e\u003e 4\n\t\ta += f\n\t\tg += h\n\t\tg ^= h \u003c\u003c 8\n\t\tb += g\n\t\th += a\n\t\th ^= a \u003e\u003e 9\n\t\tc += h\n\t\ta += b\n\t}\n\n\tfor i := 0; i \u003c 256; i += 8 {\n\t\tif flag {\n\t\t\ta += isaac.randrsl[i]\n\t\t\tb += isaac.randrsl[i+1]\n\t\t\tc += isaac.randrsl[i+2]\n\t\t\td += isaac.randrsl[i+3]\n\t\t\te += isaac.randrsl[i+4]\n\t\t\tf += isaac.randrsl[i+5]\n\t\t\tg += isaac.randrsl[i+6]\n\t\t\th += isaac.randrsl[i+7]\n\t\t}\n\n\t\ta ^= b \u003c\u003c 11\n\t\td += a\n\t\tb += c\n\t\tb ^= c \u003e\u003e 2\n\t\te += b\n\t\tc += d\n\t\tc ^= d \u003c\u003c 8\n\t\tf += c\n\t\td += e\n\t\td ^= e \u003e\u003e 16\n\t\tg += d\n\t\te += f\n\t\te ^= f \u003c\u003c 10\n\t\th += e\n\t\tf += g\n\t\tf ^= g \u003e\u003e 4\n\t\ta += f\n\t\tg += h\n\t\tg ^= h \u003c\u003c 8\n\t\tb += g\n\t\th += a\n\t\th ^= a \u003e\u003e 9\n\t\tc += h\n\t\ta += b\n\n\t\tisaac.mm[i] = a\n\t\tisaac.mm[i+1] = b\n\t\tisaac.mm[i+2] = c\n\t\tisaac.mm[i+3] = d\n\t\tisaac.mm[i+4] = e\n\t\tisaac.mm[i+5] = f\n\t\tisaac.mm[i+6] = g\n\t\tisaac.mm[i+7] = h\n\t}\n\n\tif flag {\n\t\tfor i := 0; i \u003c 256; i += 8 {\n\t\t\ta += isaac.mm[i]\n\t\t\tb += isaac.mm[i+1]\n\t\t\tc += isaac.mm[i+2]\n\t\t\td += isaac.mm[i+3]\n\t\t\te += isaac.mm[i+4]\n\t\t\tf += isaac.mm[i+5]\n\t\t\tg += isaac.mm[i+6]\n\t\t\th += isaac.mm[i+7]\n\n\t\t\ta ^= b \u003c\u003c 11\n\t\t\td += a\n\t\t\tb += c\n\t\t\tb ^= c \u003e\u003e 2\n\t\t\te += b\n\t\t\tc += d\n\t\t\tc ^= d \u003c\u003c 8\n\t\t\tf += c\n\t\t\td += e\n\t\t\td ^= e \u003e\u003e 16\n\t\t\tg += d\n\t\t\te += f\n\t\t\te ^= f \u003c\u003c 10\n\t\t\th += e\n\t\t\tf += g\n\t\t\tf ^= g \u003e\u003e 4\n\t\t\ta += f\n\t\t\tg += h\n\t\t\tg ^= h \u003c\u003c 8\n\t\t\tb += g\n\t\t\th += a\n\t\t\th ^= a \u003e\u003e 9\n\t\t\tc += h\n\t\t\ta += b\n\n\t\t\tisaac.mm[i] = a\n\t\t\tisaac.mm[i+1] = b\n\t\t\tisaac.mm[i+2] = c\n\t\t\tisaac.mm[i+3] = d\n\t\t\tisaac.mm[i+4] = e\n\t\t\tisaac.mm[i+5] = f\n\t\t\tisaac.mm[i+6] = g\n\t\t\tisaac.mm[i+7] = h\n\t\t}\n\t}\n\n\tisaac.isaac()\n\tisaac.randcnt = uint32(256)\n}\n\nfunc (isaac *ISAAC) isaac() {\n\tisaac.cc++\n\tisaac.bb += isaac.cc\n\n\tfor i := 0; i \u003c 256; i++ {\n\t\tx := isaac.mm[i]\n\t\tswitch i % 4 {\n\t\tcase 0:\n\t\t\tisaac.aa ^= isaac.aa \u003c\u003c 13\n\t\tcase 1:\n\t\t\tisaac.aa ^= isaac.aa \u003e\u003e 6\n\t\tcase 2:\n\t\t\tisaac.aa ^= isaac.aa \u003c\u003c 2\n\t\tcase 3:\n\t\t\tisaac.aa ^= isaac.aa \u003e\u003e 16\n\t\t}\n\t\tisaac.aa += isaac.mm[(i+128)\u00260xff]\n\n\t\ty := isaac.mm[(x\u003e\u003e2)\u00260xff] + isaac.aa + isaac.bb\n\t\tisaac.mm[i] = y\n\t\tisaac.bb = isaac.mm[(y\u003e\u003e10)\u00260xff] + x\n\t\tisaac.randrsl[i] = isaac.bb\n\t}\n}\n\n// Returns a random uint32.\nfunc (isaac *ISAAC) Uint32() uint32 {\n\tif isaac.randcnt == uint32(0) {\n\t\tisaac.isaac()\n\t\tisaac.randcnt = uint32(256)\n\t}\n\tisaac.randcnt--\n\treturn isaac.randrsl[isaac.randcnt]\n}\n\n// Returns a random uint64 by combining two uint32s.\nfunc (isaac *ISAAC) Uint64() uint64 {\n\treturn uint64(isaac.Uint32()) | (uint64(isaac.Uint32()) \u003c\u003c 32)\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkISAAC()' xorshift64star.gno\nfunc benchmarkISAAC(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = isaac.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"ISAAC: generate %d uint64\\n\", iterations))\n}\n\n// The averageISAAC() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the ISAAC PRNG.\nfunc averageISAAC(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New(987654321, 123456789, 999999999, 111111111)\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := isaac.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"ISAAC average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n\nfunc averagePCG(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := rand.NewPCG(987654321, 123456789)\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := isaac.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"PCG average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"PCG standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"PCG theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"isaac_test.gno","body":"package isaac\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\ntype OpenISAAC struct {\n\tRandrsl [256]uint32\n\tRandcnt uint32\n\tMm [256]uint32\n\tAa, Bb, Cc uint32\n\tSeed [256]uint32\n}\n\nfunc TestISAACSeeding(t *testing.T) {\n\tisaac := New()\n}\n\nfunc TestISAACRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t0.17828173023837635,\n\t\t0.7327795780287832,\n\t\t0.4850369074875177,\n\t\t0.9474842397428482,\n\t\t0.6747135561813891,\n\t\t0.7522507082868403,\n\t\t0.041115261836534356,\n\t\t0.7405243709084567,\n\t\t0.672863376128768,\n\t\t0.11866211399980553,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestISAACUint64(t *testing.T) {\n\tisaac := New()\n\n\texpected := []uint64{\n\t\t5986068031949215749,\n\t\t10437354066128700566,\n\t\t13478007513323023970,\n\t\t8969511410255984224,\n\t\t3869229557962857982,\n\t\t1762449743873204415,\n\t\t5292356290662282456,\n\t\t7893982194485405616,\n\t\t4296136494566588699,\n\t\t12414349056998262772,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc dupState(i *ISAAC) *OpenISAAC {\n\tstate := \u0026OpenISAAC{}\n\tstate.Seed = i.seed\n\tstate.Randrsl = i.randrsl\n\tstate.Mm = i.mm\n\tstate.Aa = i.aa\n\tstate.Bb = i.bb\n\tstate.Cc = i.cc\n\tstate.Randcnt = i.randcnt\n\n\treturn state\n}\n\nfunc TestISAACMarshalUnmarshal(t *testing.T) {\n\tisaac := New()\n\n\texpected1 := []uint64{\n\t\t5986068031949215749,\n\t\t10437354066128700566,\n\t\t13478007513323023970,\n\t\t8969511410255984224,\n\t\t3869229557962857982,\n\t}\n\n\texpected2 := []uint64{\n\t\t1762449743873204415,\n\t\t5292356290662282456,\n\t\t7893982194485405616,\n\t\t4296136494566588699,\n\t\t12414349056998262772,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := isaac.MarshalBinary()\n\n\tt.Logf(\"State: [%v]\\n\", dupState(isaac))\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := dupState(isaac)\n\n\tif err != nil {\n\t\tt.Errorf(\"ISAAC.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\tisaac.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%v]\\n\", dupState(isaac))\n\n\t// Now restore the state of the PRNG\n\terr = isaac.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%v]\\n\", dupState(isaac))\n\n\tif state_before.Seed != dupState(isaac).Seed {\n\t\tt.Errorf(\"Seed mismatch\")\n\t}\n\tif state_before.Randrsl != dupState(isaac).Randrsl {\n\t\tt.Errorf(\"Randrsl mismatch\")\n\t}\n\tif state_before.Mm != dupState(isaac).Mm {\n\t\tt.Errorf(\"Mm mismatch\")\n\t}\n\tif state_before.Aa != dupState(isaac).Aa {\n\t\tt.Errorf(\"Aa mismatch\")\n\t}\n\tif state_before.Bb != dupState(isaac).Bb {\n\t\tt.Errorf(\"Bb mismatch\")\n\t}\n\tif state_before.Cc != dupState(isaac).Cc {\n\t\tt.Errorf(\"Cc mismatch\")\n\t}\n\tif state_before.Randcnt != dupState(isaac).Randcnt {\n\t\tt.Errorf(\"Randcnt mismatch\")\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Am8l4aOvbI466+YgXqmDaK/2Nea6lmq/pArkbt6qRvudv+iD+XUeVCveldxboPtfAoaB7vW5tM4JpRpj1UQFDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"isaac64","path":"gno.land/p/wyhaines/rand/isaac64","files":[{"name":"README.md","body":"# package isaac64 // import \"gno.land/p/demo/math/rand/isaac64\"\n\nThis is a port of the 64-bit version of the ISAAC cryptographically\nsecure PRNG, originally based on the reference implementation found at\nhttps://burtleburtle.net/bob/rand/isaacafa.html\n\nISAAC has excellent statistical properties, with long cycle times, and\nuniformly distributed, unbiased, and unpredictable number generation. It can\nnot be distinguished from real random data, and in three decades of scrutiny,\nno practical attacks have been found.\n\nThe default random number algorithm in gno was ported from Go's v2 rand\nimplementatoon, which defaults to the PCG algorithm. This algorithm is\ncommonly used in language PRNG implementations because it has modest seeding\nrequirements, and generates statistically strong randomness.\n\nThis package provides an implementation of the 64-bit ISAAC PRNG algorithm. This\nalgorithm provides very strong statistical performance, and is cryptographically\nsecure, while still being substantially faster than the default PCG\nimplementation in `math/rand`.\n\nNote that the approach to seeing with ISAAC is very important for best results,\nand seeding with ISAAC is not as simple as seeding with a single uint64 value.\nThe ISAAC algorithm requires a 256-element seed. If used for cryptographic\npurposes, this will likely require entropy generated off-chain for actual\ncryptographically secure seeding. For other purposes, however, one can utilize\nthe built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to\ngenerate any missing seeds if fewer than 256 are provided.\n\n\n```\nBenchmark\n---------\nPCG: 1000000 Uint64 generated in 15.58s\nISAAC: 1000000 Uint64 generated in 8.95s\nISAAC: 1000000 Uint32 generated in 7.66s\nRatio: x1.74 times faster than PCG (uint64)\nRatio: x2.03 times faster than PCG (uint32)\n```\n\nUse it directly:\n\n\n```\nprng = isaac.New() // pass 0 to 256 uint64 seeds; if fewer than 256 are provided, the rest\n // will be generated using the xorshiftr128plus PRNG.\n```\n\nOr use it as a drop-in replacement for the default PRNT in Rand:\n\n```\nsource = isaac64.New()\nprng := rand.New(source)\n```\n\n## CONSTANTS\n\n\n```\nconst (\n\tRANDSIZL = 8\n\tRANDSIZ = 1 \u003c\u003c RANDSIZL // 256\n)\n```\n\n## TYPES\n\n\n```\ntype ISAAC struct {\n\t// Has unexported fields.\n}\n```\n\n`func New(seeds ...uint64) *ISAAC`\nISAAC requires a large, 256-element seed. This implementation will leverage\nthe entropy package combined with the xorshiftr128plus PRNG to generate any\nmissing seeds if fewer than the required number of arguments are provided.\n\n`func (isaac *ISAAC) MarshalBinary() ([]byte, error)`\nMarshalBinary() returns a byte array that encodes the state of the PRNG.\nThis can later be used with UnmarshalBinary() to restore the state of the\nPRNG. MarshalBinary implements the encoding.BinaryMarshaler interface.\n\n`func (isaac *ISAAC) Seed(seed [256]uint64)`\nReinitialize the generator with a new seed. A seed must be composed of 256 uint64.\n\n`func (isaac *ISAAC) Uint32() uint32`\nReturn a 32 bit random integer, composed of the high 32 bits of the generated 32 bit result.\n\n`func (isaac *ISAAC) Uint64() uint64`\nReturn a 64 bit random integer.\n\n`func (isaac *ISAAC) UnmarshalBinary(data []byte) error`\nUnmarshalBinary() restores the state of the PRNG from a byte array\nthat was created with MarshalBinary(). UnmarshalBinary implements the\nencoding.BinaryUnmarshaler interface.\n"},{"name":"isaac64.gno","body":"// This is a port of the 64-bit version of the ISAAC cryptographically secure PRNG, originally\n// based on the reference implementation found at https://burtleburtle.net/bob/rand/isaacafa.html\n//\n// ISAAC has excellent statistical properties, with long cycle times, and uniformly distributed,\n// unbiased, and unpredictable number generation. It can not be distinguished from real random\n// data, and in three decades of scrutiny, no practical attacks have been found.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementatoon, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the 64-bit ISAAC PRNG algorithm. This algorithm\n// provides very strong statistical performance, and is cryptographically secure, while still\n// being substantially faster than the default PCG implementation in `math/rand`.\n//\n// Note that the approach to seeing with ISAAC is very important for best results, and seeding with\n// ISAAC is not as simple as seeding with a single uint64 value. The ISAAC algorithm requires a\n// 256-element seed. If used for cryptographic purposes, this will likely require entropy generated\n// off-chain for actual cryptographically secure seeding. For other purposes, however, one can\n// utilize the built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to generate\n// any missing seeds if fewer than 256 are provided.\n//\n//\t\tBenchmark\n//\t\t---------\n//\t\tPCG: 1000000 Uint64 generated in 15.58s\n//\t\tISAAC: 1000000 Uint64 generated in 8.95s\n//\t ISAAC: 1000000 Uint32 generated in 7.66s\n//\t\tRatio: x1.74 times faster than PCG (uint64)\n//\t Ratio: x2.03 times faster than PCG (uint32)\n//\n// Use it directly:\n//\n//\t\tprng = isaac.New() // pass 0 to 256 uint64 seeds; if fewer than 256 are provided, the rest\n//\t // will be generated using the xorshiftr128plus PRNG.\n//\n// Or use it as a drop-in replacement for the default PRNT in Rand:\n//\n//\tsource = isaac64.New()\n//\tprng := rand.New(source)\npackage isaac64\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/wyhaines/rand/xorshiftr128plus\"\n)\n\nconst (\n\tRANDSIZL = 8\n\tRANDSIZ = 1 \u003c\u003c RANDSIZL // 256\n)\n\ntype ISAAC struct {\n\trandrsl [256]uint64\n\trandcnt uint64\n\tmm [256]uint64\n\taa, bb, cc uint64\n\tseed [256]uint64\n}\n\n// ISAAC requires a large, 256-element seed. This implementation will leverage the entropy\n// package combined with the xorshiftr128plus PRNG to generate any missing seeds if fewer than\n// the required number of arguments are provided.\nfunc New(seeds ...uint64) *ISAAC {\n\tisaac := \u0026ISAAC{}\n\tseed := [256]uint64{}\n\n\tindex := 0\n\tfor index = 0; index \u003c len(seeds) \u0026\u0026 index \u003c 256; index++ {\n\t\tseed[index] = seeds[index]\n\t}\n\n\tif index \u003c 2 {\n\t\te := entropy.New()\n\t\tfor ; index \u003c 2; index++ {\n\t\t\tseed[index] = e.Value64()\n\t\t}\n\t}\n\n\t// Use the first two seeds as seeding inputs for xorshiftr128plus, in order to\n\t// use it to provide any remaining missing seeds.\n\tprng := xorshiftr128plus.New(\n\t\tseed[0],\n\t\tseed[1],\n\t)\n\tfor ; index \u003c 256; index++ {\n\t\tseed[index] = prng.Uint64()\n\t}\n\tisaac.Seed(seed)\n\treturn isaac\n}\n\n// Reinitialize the generator with a new seed. A seed must be composed of 256 uint64.\nfunc (isaac *ISAAC) Seed(seed [256]uint64) {\n\tisaac.randrsl = seed\n\tisaac.seed = seed\n\tisaac.randinit(true)\n}\n\n// beUint64() decodes a uint64 from a set of eight bytes, assuming big endian encoding.\nfunc beUint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler\n\treturn uint64(b[7]) | uint64(b[6])\u003c\u003c8 | uint64(b[5])\u003c\u003c16 | uint64(b[4])\u003c\u003c24 |\n\t\tuint64(b[3])\u003c\u003c32 | uint64(b[2])\u003c\u003c40 | uint64(b[1])\u003c\u003c48 | uint64(b[0])\u003c\u003c56\n}\n\n// bePutUint64() encodes a uint64 into a buffer of eight bytes.\nfunc bePutUint64(b []byte, v uint64) {\n\t_ = b[7] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 56)\n\tb[1] = byte(v \u003e\u003e 48)\n\tb[2] = byte(v \u003e\u003e 40)\n\tb[3] = byte(v \u003e\u003e 32)\n\tb[4] = byte(v \u003e\u003e 24)\n\tb[5] = byte(v \u003e\u003e 16)\n\tb[6] = byte(v \u003e\u003e 8)\n\tb[7] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalISAACLabel = []byte(\"isaac:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (isaac *ISAAC) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 6+2048*3+8*3+8) // 6 + 2048*3 + 8*3 + 8 == 6182\n\tcopy(b, marshalISAACLabel)\n\toffset := 6\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint64(b[offset:], isaac.seed[i])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint64(b[offset:], isaac.randrsl[i])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint64(b[offset:], isaac.mm[i])\n\t\toffset += 8\n\t}\n\tbePutUint64(b[offset:], isaac.aa)\n\toffset += 8\n\tbePutUint64(b[offset:], isaac.bb)\n\toffset += 8\n\tbePutUint64(b[offset:], isaac.cc)\n\toffset += 8\n\tbePutUint64(b[offset:], isaac.randcnt)\n\treturn b, nil\n}\n\n// errUnmarshalISAAC is returned when unmarshalling fails.\nvar errUnmarshalISAAC = errors.New(\"invalid ISAAC encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (isaac *ISAAC) UnmarshalBinary(data []byte) error {\n\tif len(data) != 6182 || string(data[:6]) != string(marshalISAACLabel) {\n\t\treturn errUnmarshalISAAC\n\t}\n\toffset := 6\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.seed[i] = beUint64(data[offset:])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.randrsl[i] = beUint64(data[offset:])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.mm[i] = beUint64(data[offset:])\n\t\toffset += 8\n\t}\n\tisaac.aa = beUint64(data[offset:])\n\toffset += 8\n\tisaac.bb = beUint64(data[offset:])\n\toffset += 8\n\tisaac.cc = beUint64(data[offset:])\n\toffset += 8\n\tisaac.randcnt = beUint64(data[offset:])\n\treturn nil\n}\n\nfunc (isaac *ISAAC) randinit(flag bool) {\n\tvar a, b, c, d, e, f, g, h uint64\n\tisaac.aa = 0\n\tisaac.bb = 0\n\tisaac.cc = 0\n\n\ta = 0x9e3779b97f4a7c13\n\tb = 0x9e3779b97f4a7c13\n\tc = 0x9e3779b97f4a7c13\n\td = 0x9e3779b97f4a7c13\n\te = 0x9e3779b97f4a7c13\n\tf = 0x9e3779b97f4a7c13\n\tg = 0x9e3779b97f4a7c13\n\th = 0x9e3779b97f4a7c13\n\n\t// scramble it\n\tfor i := 0; i \u003c 4; i++ {\n\t\tmix(\u0026a, \u0026b, \u0026c, \u0026d, \u0026e, \u0026f, \u0026g, \u0026h)\n\t}\n\n\t// fill in mm[] with messy stuff\n\tfor i := 0; i \u003c RANDSIZ; i += 8 {\n\t\tif flag {\n\t\t\ta += isaac.randrsl[i]\n\t\t\tb += isaac.randrsl[i+1]\n\t\t\tc += isaac.randrsl[i+2]\n\t\t\td += isaac.randrsl[i+3]\n\t\t\te += isaac.randrsl[i+4]\n\t\t\tf += isaac.randrsl[i+5]\n\t\t\tg += isaac.randrsl[i+6]\n\t\t\th += isaac.randrsl[i+7]\n\t\t}\n\t\tmix(\u0026a, \u0026b, \u0026c, \u0026d, \u0026e, \u0026f, \u0026g, \u0026h)\n\t\tisaac.mm[i] = a\n\t\tisaac.mm[i+1] = b\n\t\tisaac.mm[i+2] = c\n\t\tisaac.mm[i+3] = d\n\t\tisaac.mm[i+4] = e\n\t\tisaac.mm[i+5] = f\n\t\tisaac.mm[i+6] = g\n\t\tisaac.mm[i+7] = h\n\t}\n\n\tif flag {\n\t\t// do a second pass to make all of the seed affect all of mm\n\t\tfor i := 0; i \u003c RANDSIZ; i += 8 {\n\t\t\ta += isaac.mm[i]\n\t\t\tb += isaac.mm[i+1]\n\t\t\tc += isaac.mm[i+2]\n\t\t\td += isaac.mm[i+3]\n\t\t\te += isaac.mm[i+4]\n\t\t\tf += isaac.mm[i+5]\n\t\t\tg += isaac.mm[i+6]\n\t\t\th += isaac.mm[i+7]\n\t\t\tmix(\u0026a, \u0026b, \u0026c, \u0026d, \u0026e, \u0026f, \u0026g, \u0026h)\n\t\t\tisaac.mm[i] = a\n\t\t\tisaac.mm[i+1] = b\n\t\t\tisaac.mm[i+2] = c\n\t\t\tisaac.mm[i+3] = d\n\t\t\tisaac.mm[i+4] = e\n\t\t\tisaac.mm[i+5] = f\n\t\t\tisaac.mm[i+6] = g\n\t\t\tisaac.mm[i+7] = h\n\t\t}\n\t}\n\n\tisaac.isaac()\n\tisaac.randcnt = RANDSIZ\n}\n\nfunc mix(a, b, c, d, e, f, g, h *uint64) {\n\t*a -= *e\n\t*f ^= *h \u003e\u003e 9\n\t*h += *a\n\n\t*b -= *f\n\t*g ^= *a \u003c\u003c 9\n\t*a += *b\n\n\t*c -= *g\n\t*h ^= *b \u003e\u003e 23\n\t*b += *c\n\n\t*d -= *h\n\t*a ^= *c \u003c\u003c 15\n\t*c += *d\n\n\t*e -= *a\n\t*b ^= *d \u003e\u003e 14\n\t*d += *e\n\n\t*f -= *b\n\t*c ^= *e \u003c\u003c 20\n\t*e += *f\n\n\t*g -= *c\n\t*d ^= *f \u003e\u003e 17\n\t*f += *g\n\n\t*h -= *d\n\t*e ^= *g \u003c\u003c 14\n\t*g += *h\n}\n\nfunc ind(mm []uint64, x uint64) uint64 {\n\treturn mm[(x\u003e\u003e3)\u0026(RANDSIZ-1)]\n}\n\nfunc (isaac *ISAAC) isaac() {\n\tvar a, b, x, y uint64\n\ta = isaac.aa\n\tb = isaac.bb + isaac.cc + 1\n\tisaac.cc++\n\n\tm := isaac.mm[:]\n\tr := isaac.randrsl[:]\n\n\tvar i, m2Index int\n\n\t// First half\n\tfor i = 0; i \u003c RANDSIZ/2; i++ {\n\t\tm2Index = i + RANDSIZ/2\n\t\tswitch i % 4 {\n\t\tcase 0:\n\t\t\ta = ^(a ^ (a \u003c\u003c 21)) + m[m2Index]\n\t\tcase 1:\n\t\t\ta = (a ^ (a \u003e\u003e 5)) + m[m2Index]\n\t\tcase 2:\n\t\t\ta = (a ^ (a \u003c\u003c 12)) + m[m2Index]\n\t\tcase 3:\n\t\t\ta = (a ^ (a \u003e\u003e 33)) + m[m2Index]\n\t\t}\n\t\tx = m[i]\n\t\ty = ind(m, x) + a + b\n\t\tm[i] = y\n\t\tb = ind(m, y\u003e\u003eRANDSIZL) + x\n\t\tr[i] = b\n\t}\n\n\t// Second half\n\tfor i = RANDSIZ / 2; i \u003c RANDSIZ; i++ {\n\t\tm2Index = i - RANDSIZ/2\n\t\tswitch i % 4 {\n\t\tcase 0:\n\t\t\ta = ^(a ^ (a \u003c\u003c 21)) + m[m2Index]\n\t\tcase 1:\n\t\t\ta = (a ^ (a \u003e\u003e 5)) + m[m2Index]\n\t\tcase 2:\n\t\t\ta = (a ^ (a \u003c\u003c 12)) + m[m2Index]\n\t\tcase 3:\n\t\t\ta = (a ^ (a \u003e\u003e 33)) + m[m2Index]\n\t\t}\n\t\tx = m[i]\n\t\ty = ind(m, x) + a + b\n\t\tm[i] = y\n\t\tb = ind(m, y\u003e\u003eRANDSIZL) + x\n\t\tr[i] = b\n\t}\n\n\tisaac.bb = b\n\tisaac.aa = a\n}\n\n// Return a 64 bit random integer.\nfunc (isaac *ISAAC) Uint64() uint64 {\n\tif isaac.randcnt == 0 {\n\t\tisaac.isaac()\n\t\tisaac.randcnt = RANDSIZ\n\t}\n\tisaac.randcnt--\n\treturn isaac.randrsl[isaac.randcnt]\n}\n\nvar gencycle int = 0\nvar bufferFor32 uint64 = uint64(0)\n\n// Return a 32 bit random integer, composed of the high 32 bits of the generated 32 bit result.\nfunc (isaac *ISAAC) Uint32() uint32 {\n\tif gencycle == 0 {\n\t\tbufferFor32 = isaac.Uint64()\n\t\tgencycle = 1\n\t\treturn uint32(bufferFor32 \u003e\u003e 32)\n\t}\n\n\tgencycle = 0\n\treturn uint32(bufferFor32 \u0026 0xffffffff)\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkISAAC()' isaac64.gno\nfunc benchmarkISAAC(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = isaac.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"ISAAC: generated %d uint64\\n\", iterations))\n}\n\n// The averageISAAC() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the ISAAC PRNG.\nfunc averageISAAC(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New(987654321987654321, 123456789987654321, 1, 997755331886644220)\n\n\tvar average float64 = 0\n\tvar squares []uint64 = make([]uint64, iterations)\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := isaac.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"ISAAC average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"isaac64_test.gno","body":"package isaac64\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\ntype OpenISAAC struct {\n\tRandrsl [256]uint64\n\tRandcnt uint64\n\tMm [256]uint64\n\tAa, Bb, Cc uint64\n\tSeed [256]uint64\n}\n\nfunc TestISAACSeeding(t *testing.T) {\n\tisaac := New()\n}\n\nfunc TestISAACRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t0.9273376778618531,\n\t\t0.327620245173309,\n\t\t0.49315436150113456,\n\t\t0.9222536383598948,\n\t\t0.2999297342641162,\n\t\t0.4050531597269049,\n\t\t0.5321357451089953,\n\t\t0.19478000239059667,\n\t\t0.5156043950865713,\n\t\t0.9233494881511063,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestISAACUint64(t *testing.T) {\n\tisaac := New()\n\n\texpected := []uint64{\n\t\t6781932227698873623,\n\t\t14800945299485332986,\n\t\t4114322996297394168,\n\t\t5328012296808356526,\n\t\t12789214124608876433,\n\t\t17611101631239575547,\n\t\t6877490613942924608,\n\t\t15954522518901325556,\n\t\t14180160756719376887,\n\t\t4977949063252893357,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc dupState(i *ISAAC) *OpenISAAC {\n\tstate := \u0026OpenISAAC{}\n\tstate.Seed = i.seed\n\tstate.Randrsl = i.randrsl\n\tstate.Mm = i.mm\n\tstate.Aa = i.aa\n\tstate.Bb = i.bb\n\tstate.Cc = i.cc\n\tstate.Randcnt = i.randcnt\n\n\treturn state\n}\n\nfunc TestISAACMarshalUnmarshal(t *testing.T) {\n\tisaac := New()\n\n\texpected1 := []uint64{\n\t\t6781932227698873623,\n\t\t14800945299485332986,\n\t\t4114322996297394168,\n\t\t5328012296808356526,\n\t\t12789214124608876433,\n\t}\n\n\texpected2 := []uint64{\n\t\t17611101631239575547,\n\t\t6877490613942924608,\n\t\t15954522518901325556,\n\t\t14180160756719376887,\n\t\t4977949063252893357,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := isaac.MarshalBinary()\n\n\tt.Logf(\"State: [%v]\\n\", dupState(isaac))\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := dupState(isaac)\n\n\tif err != nil {\n\t\tt.Errorf(\"ISAAC.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\tisaac.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%v]\\n\", dupState(isaac))\n\n\t// Now restore the state of the PRNG\n\terr = isaac.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%v]\\n\", dupState(isaac))\n\n\tif state_before.Seed != dupState(isaac).Seed {\n\t\tt.Errorf(\"Seed mismatch\")\n\t}\n\tif state_before.Randrsl != dupState(isaac).Randrsl {\n\t\tt.Errorf(\"Randrsl mismatch\")\n\t}\n\tif state_before.Mm != dupState(isaac).Mm {\n\t\tt.Errorf(\"Mm mismatch\")\n\t}\n\tif state_before.Aa != dupState(isaac).Aa {\n\t\tt.Errorf(\"Aa mismatch\")\n\t}\n\tif state_before.Bb != dupState(isaac).Bb {\n\t\tt.Errorf(\"Bb mismatch\")\n\t}\n\tif state_before.Cc != dupState(isaac).Cc {\n\t\tt.Errorf(\"Cc mismatch\")\n\t}\n\tif state_before.Randcnt != dupState(isaac).Randcnt {\n\t\tt.Errorf(\"Randcnt mismatch\")\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LLVvTebDrtttfnFh9hJDqxswsr28RJJh7RC6tbeRYRld6raRSV+Si66OZKdzfLAhcCFwJj6F6ezWATB5gwcdAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"json","path":"gno.land/p/demo/json","files":[{"name":"LICENSE","body":"# MIT License\n\nCopyright (c) 2019 Pyzhov Stepan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"name":"README.md","body":"# JSON Parser\n\nThe JSON parser is a package that provides functionality for parsing and processing JSON strings. This package accepts JSON strings as byte slices.\n\nCurrently, gno does not [support the `reflect` package](https://docs.gno.land/concepts/effective-gno#reflection-is-never-clear), so it cannot retrieve type information at runtime. Therefore, it is designed to infer and handle type information when parsing JSON strings using a state machine approach.\n\nAfter passing through the state machine, JSON strings are represented as the `Node` type. The `Node` type represents nodes for JSON data, including various types such as `ObjectNode`, `ArrayNode`, `StringNode`, `NumberNode`, `BoolNode`, and `NullNode`.\n\nThis package provides methods for manipulating, searching, and extracting the Node type.\n\n## State Machine\n\nTo parse JSON strings, a [finite state machine](https://en.wikipedia.org/wiki/Finite-state_machine) approach is used. The state machine transitions to the next state based on the current state and the input character while parsing the JSON string. Through this method, type information can be inferred and processed without reflect, and the amount of parser code can be significantly reduced.\n\nThe image below shows the state transitions of the state machine according to the states and input characters.\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e __: Start\n __ --\u003e ST: String\n __ --\u003e MI: Number\n __ --\u003e ZE: Zero\n __ --\u003e IN: Integer\n __ --\u003e T1: Boolean (true)\n __ --\u003e F1: Boolean (false)\n __ --\u003e N1: Null\n __ --\u003e ec: Empty Object End\n __ --\u003e cc: Object End\n __ --\u003e bc: Array End\n __ --\u003e co: Object Begin\n __ --\u003e bo: Array Begin\n __ --\u003e cm: Comma\n __ --\u003e cl: Colon\n __ --\u003e OK: Success/End\n ST --\u003e OK: String Complete\n MI --\u003e OK: Number Complete\n ZE --\u003e OK: Zero Complete\n IN --\u003e OK: Integer Complete\n T1 --\u003e OK: True Complete\n F1 --\u003e OK: False Complete\n N1 --\u003e OK: Null Complete\n ec --\u003e OK: Empty Object Complete\n cc --\u003e OK: Object Complete\n bc --\u003e OK: Array Complete\n co --\u003e OB: Inside Object\n bo --\u003e AR: Inside Array\n cm --\u003e KE: Expecting New Key\n cm --\u003e VA: Expecting New Value\n cl --\u003e VA: Expecting Value\n OB --\u003e ST: String in Object (Key)\n OB --\u003e ec: Empty Object\n OB --\u003e cc: End Object\n AR --\u003e ST: String in Array\n AR --\u003e bc: End Array\n KE --\u003e ST: String as Key\n VA --\u003e ST: String as Value\n VA --\u003e MI: Number as Value\n VA --\u003e T1: True as Value\n VA --\u003e F1: False as Value\n VA --\u003e N1: Null as Value\n OK --\u003e [*]: End\n```\n\n## Examples\n\nThis package provides parsing functionality along with encoding and decoding functionality. The following examples demonstrate how to use this package.\n\n### Decoding\n\nDecoding (or Unmarshaling) is the functionality that converts an input byte slice JSON string into a `Node` type.\n\nThe converted `Node` type allows you to modify the JSON data or search and extract data that meets specific conditions.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node, err := json.Unmarshal([]byte(`{\"foo\": \"var\"}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"node: %v\", node)\n}\n```\n\n### Encoding\n\nEncoding (or Marshaling) is the functionality that converts JSON data represented as a Node type into a byte slice JSON string.\n\n\u003e ⚠️ Caution: Converting a large `Node` type into a JSON string may _impact performance_. or might be cause _unexpected behavior_.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node := ObjectNode(\"\", map[string]*Node{\n \"foo\": StringNode(\"foo\", \"bar\"),\n \"baz\": NumberNode(\"baz\", 100500),\n \"qux\": NullNode(\"qux\"),\n })\n\n b, err := json.Marshal(node)\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"json: %s\", string(b))\n}\n```\n\n### Searching\n\nOnce the JSON data converted into a `Node` type, you can **search** and **extract** data that satisfy specific conditions. For example, you can find data with a specific type or data with a specific key.\n\nTo use this functionality, you can use methods in the `GetXXX` prefixed methods. The `MustXXX` methods also provide the same functionality as the former methods, but they will **panic** if data doesn't satisfies the condition.\n\nHere is an example of finding data with a specific key. For more examples, please refer to the [node.gno](node.gno) file.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n root, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n value, err := root.GetKey(\"foo\")\n if err != nil {\n ufmt.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n if value.MustBool() != true {\n ufmt.Errorf(\"value is not true\")\n }\n\n value, err = root.GetKey(\"bar\")\n if err != nil {\n t.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n _, err = root.GetKey(\"baz\")\n if err == nil {\n t.Errorf(\"key baz is not exist. must be failed\")\n }\n}\n```\n\n## Contributing\n\nPlease submit any issues or pull requests for this package through the GitHub repository at [gnolang/gno](\u003chttps://github.com/gnolang/gno\u003e).\n"},{"name":"buffer.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype buffer struct {\n\tdata []byte\n\tlength int\n\tindex int\n\n\tlast States\n\tstate States\n\tclass Classes\n}\n\n// newBuffer creates a new buffer with the given data\nfunc newBuffer(data []byte) *buffer {\n\treturn \u0026buffer{\n\t\tdata: data,\n\t\tlength: len(data),\n\t\tlast: GO,\n\t\tstate: GO,\n\t}\n}\n\n// first retrieves the first non-whitespace (or other escaped) character in the buffer.\nfunc (b *buffer) first() (byte, error) {\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tc := b.data[b.index]\n\n\t\tif !(c == whiteSpace || c == carriageReturn || c == newLine || c == tab) {\n\t\t\treturn c, nil\n\t\t}\n\t}\n\n\treturn 0, io.EOF\n}\n\n// current returns the byte of the current index.\nfunc (b *buffer) current() (byte, error) {\n\tif b.index \u003e= b.length {\n\t\treturn 0, io.EOF\n\t}\n\n\treturn b.data[b.index], nil\n}\n\n// next moves to the next byte and returns it.\nfunc (b *buffer) next() (byte, error) {\n\tb.index++\n\treturn b.current()\n}\n\n// step just moves to the next position.\nfunc (b *buffer) step() error {\n\t_, err := b.next()\n\treturn err\n}\n\n// move moves the index by the given position.\nfunc (b *buffer) move(pos int) error {\n\tnewIndex := b.index + pos\n\n\tif newIndex \u003e b.length {\n\t\treturn io.EOF\n\t}\n\n\tb.index = newIndex\n\n\treturn nil\n}\n\n// slice returns the slice from the current index to the given position.\nfunc (b *buffer) slice(pos int) ([]byte, error) {\n\tend := b.index + pos\n\n\tif end \u003e b.length {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn b.data[b.index:end], nil\n}\n\n// sliceFromIndices returns a slice of the buffer's data starting from 'start' up to (but not including) 'stop'.\nfunc (b *buffer) sliceFromIndices(start, stop int) []byte {\n\tif start \u003e b.length {\n\t\tstart = b.length\n\t}\n\n\tif stop \u003e b.length {\n\t\tstop = b.length\n\t}\n\n\treturn b.data[start:stop]\n}\n\n// skip moves the index to skip the given byte.\nfunc (b *buffer) skip(bs byte) error {\n\tfor b.index \u003c b.length {\n\t\tif b.data[b.index] == bs \u0026\u0026 !b.backslash() {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn io.EOF\n}\n\n// skipAndReturnIndex moves the buffer index forward by one and returns the new index.\nfunc (b *buffer) skipAndReturnIndex() (int, error) {\n\terr := b.step()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn b.index, nil\n}\n\n// skipUntil moves the buffer index forward until it encounters a byte contained in the endTokens set.\nfunc (b *buffer) skipUntil(endTokens map[byte]bool) (int, error) {\n\tfor b.index \u003c b.length {\n\t\tcurrentByte, err := b.current()\n\t\tif err != nil {\n\t\t\treturn b.index, err\n\t\t}\n\n\t\t// Check if the current byte is in the set of end tokens.\n\t\tif _, exists := endTokens[currentByte]; exists {\n\t\t\treturn b.index, nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn b.index, io.EOF\n}\n\n// significantTokens is a map where the keys are the significant characters in a JSON path.\n// The values in the map are all true, which allows us to use the map as a set for quick lookups.\nvar significantTokens = [256]bool{\n\tdot: true, // access properties of an object\n\tdollarSign: true, // root object\n\tatSign: true, // current object\n\tbracketOpen: true, // start of an array index or filter expression\n\tbracketClose: true, // end of an array index or filter expression\n}\n\n// filterTokens stores the filter expression tokens.\nvar filterTokens = [256]bool{\n\taesterisk: true, // wildcard\n\tandSign: true,\n\torSign: true,\n}\n\n// skipToNextSignificantToken advances the buffer index to the next significant character.\n// Significant characters are defined based on the JSON path syntax.\nfunc (b *buffer) skipToNextSignificantToken() {\n\tfor b.index \u003c b.length {\n\t\tcurrent := b.data[b.index]\n\n\t\tif significantTokens[current] {\n\t\t\tbreak\n\t\t}\n\n\t\tb.index++\n\t}\n}\n\n// backslash checks to see if the number of backslashes before the current index is odd.\n//\n// This is used to check if the current character is escaped. However, unlike the \"unescape\" function,\n// \"backslash\" only serves to check the number of backslashes.\nfunc (b *buffer) backslash() bool {\n\tif b.index == 0 {\n\t\treturn false\n\t}\n\n\tcount := 0\n\tfor i := b.index - 1; ; i-- {\n\t\tif b.data[i] != backSlash {\n\t\t\tbreak\n\t\t}\n\n\t\tcount++\n\n\t\tif i == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn count%2 != 0\n}\n\n// numIndex holds a map of valid numeric characters\nvar numIndex = [256]bool{\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t'.': true,\n\t'e': true,\n\t'E': true,\n}\n\n// pathToken checks if the current token is a valid JSON path token.\nfunc (b *buffer) pathToken() error {\n\tvar stack []byte\n\n\tinToken := false\n\tinNumber := false\n\tfirst := b.index\n\n\tfor b.index \u003c b.length {\n\t\tc := b.data[b.index]\n\n\t\tswitch {\n\t\tcase c == doubleQuote || c == singleQuote:\n\t\t\tinToken = true\n\t\t\tif err := b.step(); err != nil {\n\t\t\t\treturn errors.New(\"error stepping through buffer\")\n\t\t\t}\n\n\t\t\tif err := b.skip(c); err != nil {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\t\tif b.index \u003e= b.length {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\tcase c == bracketOpen || c == parenOpen:\n\t\t\tinToken = true\n\t\t\tstack = append(stack, c)\n\n\t\tcase c == bracketClose || c == parenClose:\n\t\t\tinToken = true\n\t\t\tif len(stack) == 0 || (c == bracketClose \u0026\u0026 stack[len(stack)-1] != bracketOpen) || (c == parenClose \u0026\u0026 stack[len(stack)-1] != parenOpen) {\n\t\t\t\treturn errUnmatchedParenthesis\n\t\t\t}\n\n\t\t\tstack = stack[:len(stack)-1]\n\n\t\tcase pathStateContainsValidPathToken(c):\n\t\t\tinToken = true\n\n\t\tcase c == plus || c == minus:\n\t\t\tif inNumber || (b.index \u003e 0 \u0026\u0026 numIndex[b.data[b.index-1]]) {\n\t\t\t\tinToken = true\n\t\t\t} else if !inToken \u0026\u0026 (b.index+1 \u003c b.length \u0026\u0026 numIndex[b.data[b.index+1]]) {\n\t\t\t\tinToken = true\n\t\t\t\tinNumber = true\n\t\t\t} else if !inToken {\n\t\t\t\treturn errInvalidToken\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif len(stack) != 0 || inToken {\n\t\t\t\tinToken = true\n\t\t\t} else {\n\t\t\t\tgoto end\n\t\t\t}\n\t\t}\n\n\t\tb.index++\n\t}\n\nend:\n\tif len(stack) != 0 {\n\t\treturn errUnmatchedParenthesis\n\t}\n\n\tif first == b.index {\n\t\treturn errors.New(\"no token found\")\n\t}\n\n\tif inNumber \u0026\u0026 !numIndex[b.data[b.index-1]] {\n\t\tinNumber = false\n\t}\n\n\treturn nil\n}\n\nfunc pathStateContainsValidPathToken(c byte) bool {\n\tif significantTokens[c] {\n\t\treturn true\n\t}\n\n\tif filterTokens[c] {\n\t\treturn true\n\t}\n\n\tif numIndex[c] {\n\t\treturn true\n\t}\n\n\tif 'A' \u003c= c \u0026\u0026 c \u003c= 'Z' || 'a' \u003c= c \u0026\u0026 c \u003c= 'z' {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nfunc (b *buffer) numeric(token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(doubleQuote)\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\tif token {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\treturn nil\n\t\t}\n\n\t\tif b.state \u003c MI || b.state \u003e E3 {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\tif b.last != ZE \u0026\u0026 b.last != IN \u0026\u0026 b.last != FR \u0026\u0026 b.last != E3 {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) getClasses(c byte) Classes {\n\tif b.data[b.index] \u003e= 128 {\n\t\treturn C_ETC\n\t}\n\n\tif c == singleQuote {\n\t\treturn QuoteAsciiClasses[b.data[b.index]]\n\t}\n\n\treturn AsciiClasses[b.data[b.index]]\n}\n\nfunc (b *buffer) getState() States {\n\tb.last = b.state\n\n\tb.class = b.getClasses(doubleQuote)\n\tif b.class == __ {\n\t\treturn __\n\t}\n\n\tb.state = StateTransitionTable[b.last][b.class]\n\n\treturn b.state\n}\n\n// string parses a string token from the buffer.\nfunc (b *buffer) string(search byte, token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(search)\n\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\tbreak\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) word(bs []byte) error {\n\tvar c byte\n\n\tmax := len(bs)\n\tindex := 0\n\n\tfor ; b.index \u003c b.length \u0026\u0026 index \u003c max; b.index++ {\n\t\tc = b.data[b.index]\n\n\t\tif c != bs[index] {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tindex++\n\t\tif index \u003e= max {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index != max {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc numberKind2f64(value interface{}) (result float64, err error) {\n\tswitch typed := value.(type) {\n\tcase float64:\n\t\tresult = typed\n\tcase float32:\n\t\tresult = float64(typed)\n\tcase int:\n\t\tresult = float64(typed)\n\tcase int8:\n\t\tresult = float64(typed)\n\tcase int16:\n\t\tresult = float64(typed)\n\tcase int32:\n\t\tresult = float64(typed)\n\tcase int64:\n\t\tresult = float64(typed)\n\tcase uint:\n\t\tresult = float64(typed)\n\tcase uint8:\n\t\tresult = float64(typed)\n\tcase uint16:\n\t\tresult = float64(typed)\n\tcase uint32:\n\t\tresult = float64(typed)\n\tcase uint64:\n\t\tresult = float64(typed)\n\tdefault:\n\t\terr = ufmt.Errorf(\"invalid number type: %T\", value)\n\t}\n\n\treturn\n}\n"},{"name":"buffer_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBufferCurrent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\texpected byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid current byte\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 1,\n\t\t\t},\n\t\t\texpected: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 4,\n\t\t\t},\n\t\t\texpected: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.current()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.current() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"buffer.current() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferStep(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid step\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.step()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.step() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferNext(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twant byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid next byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twant: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twant: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.next()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.next() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"buffer.next() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSlice(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twant []byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid slice -- 0 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 0,\n\t\t\twant: nil,\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 1 character\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 1,\n\t\t\twant: []byte(\"t\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 2 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twant: []byte(\"es\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 3 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 3,\n\t\t\twant: []byte(\"tes\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 4 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 4,\n\t\t\twant: []byte(\"test\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\tpos: 2,\n\t\t\twant: nil,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.slice(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.slice() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif string(got) != string(tt.want) {\n\t\t\t\tt.Errorf(\"buffer.slice() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferMove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twantErr bool\n\t\twantIdx int\n\t}{\n\t\t{\n\t\t\tname: \"Valid move\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twantErr: false,\n\t\t\twantIdx: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"Move beyond length\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 4,\n\t\t\twantErr: true,\n\t\t\twantIdx: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.move(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.move() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t\tif tt.buffer.index != tt.wantIdx {\n\t\t\t\tt.Errorf(\"buffer.move() index = %v, want %v\", tt.buffer.index, tt.wantIdx)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSkip(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tb byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Skip byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Skip to EOF\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'x',\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.skip(tt.b)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.skip() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipToNextSignificantToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected int\n\t}{\n\t\t{\"No significant chars\", []byte(\"abc\"), 3},\n\t\t{\"One significant char at start\", []byte(\".abc\"), 0},\n\t\t{\"Significant char in middle\", []byte(\"ab.c\"), 2},\n\t\t{\"Multiple significant chars\", []byte(\"a$.c\"), 1},\n\t\t{\"Significant char at end\", []byte(\"abc$\"), 3},\n\t\t{\"Only significant chars\", []byte(\"$.\"), 0},\n\t\t{\"Empty string\", []byte(\"\"), 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.input)\n\t\t\tb.skipToNextSignificantToken()\n\t\t\tif b.index != tt.expected {\n\t\t\t\tt.Errorf(\"after skipToNextSignificantToken(), got index = %v, want %v\", b.index, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mockBuffer(s string) *buffer {\n\treturn newBuffer([]byte(s))\n}\n\nfunc TestSkipAndReturnIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"StartOfString\", \"\", 0},\n\t\t{\"MiddleOfString\", \"abcdef\", 1},\n\t\t{\"EndOfString\", \"abc\", 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipAndReturnIndex()\n\t\t\tif err != nil \u0026\u0026 tt.input != \"\" { // Expect no error unless input is empty\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipUntil(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\ttokens map[byte]bool\n\t\texpected int\n\t}{\n\t\t{\"SkipToToken\", \"abcdefg\", map[byte]bool{'c': true}, 2},\n\t\t{\"SkipToEnd\", \"abcdefg\", map[byte]bool{'h': true}, 7},\n\t\t{\"SkipNone\", \"abcdefg\", map[byte]bool{'a': true}, 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipUntil(tt.tokens)\n\t\t\tif err != nil \u0026\u0026 got != len(tt.input) { // Expect error only if reached end without finding token\n\t\t\t\tt.Errorf(\"skipUntil() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipUntil() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSliceFromIndices(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\tstart int\n\t\tend int\n\t\texpected string\n\t}{\n\t\t{\"FullString\", \"abcdefg\", 0, 7, \"abcdefg\"},\n\t\t{\"Substring\", \"abcdefg\", 2, 5, \"cde\"},\n\t\t{\"OutOfBounds\", \"abcdefg\", 5, 10, \"fg\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot := buf.sliceFromIndices(tt.start, tt.end)\n\t\t\tif string(got) != tt.expected {\n\t\t\t\tt.Errorf(\"sliceFromIndices() = %v, want %v\", string(got), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\tindex int\n\t\tisErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Simple valid path\",\n\t\t\tpath: \"@.length\",\n\t\t\tindex: 8,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr\",\n\t\t\tpath: \"@['foo'].0.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr and simple fomula\",\n\t\t\tpath: \"@['foo'].[(@.length - 1)].*\",\n\t\t\tindex: 27,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with filter expr\",\n\t\t\tpath: \"@['foo'].[?(@.bar == 1 \u0026 @.baz \u003c @.length)].*\",\n\t\t\tindex: 45,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"addition of foo and bar\",\n\t\t\tpath: \"@.foo+@.bar\",\n\t\t\tindex: 11,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical AND of foo and bar\",\n\t\t\tpath: \"@.foo \u0026\u0026 @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical OR of foo and bar\",\n\t\t\tpath: \"@.foo || @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing third element of foo\",\n\t\t\tpath: \"@.foo,3\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing last element of array\",\n\t\t\tpath: \"@.length-1\",\n\t\t\tindex: 10,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"number 1\",\n\t\t\tpath: \"1\",\n\t\t\tindex: 1,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float\",\n\t\t\tpath: \"3.1e4\",\n\t\t\tindex: 5,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with minus\",\n\t\t\tpath: \"3.1e-4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with plus\",\n\t\t\tpath: \"3.1e+4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative number\",\n\t\t\tpath: \"-12345\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float\",\n\t\t\tpath: \"-3.1e4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with minus\",\n\t\t\tpath: \"-3.1e-4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with plus\",\n\t\t\tpath: \"-3.1e+4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string number\",\n\t\t\tpath: \"'12345'\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with backslash\",\n\t\t\tpath: \"'foo \\\\'bar '\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with inner double quotes\",\n\t\t\tpath: \"'foo \\\"bar \\\"'\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 1\",\n\t\t\tpath: \"(@abc)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 2\",\n\t\t\tpath: \"[()]\",\n\t\t\tindex: 4,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch\",\n\t\t\tpath: \"[(])\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 2\",\n\t\t\tpath: \"(\",\n\t\t\tindex: 1,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 3\",\n\t\t\tpath: \"())]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch\",\n\t\t\tpath: \"[()\",\n\t\t\tindex: 3,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch 2\",\n\t\t\tpath: \"()]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"path does not close bracket\",\n\t\t\tpath: \"@.foo[)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := newBuffer([]byte(tt.path))\n\n\t\t\terr := buf.pathToken()\n\t\t\tif tt.isErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err == nil \u0026\u0026 tt.isErr {\n\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t}\n\n\t\t\tif buf.index != tt.index {\n\t\t\t\tt.Errorf(\"Expected final index %d, got %d (token: `%s`) for path `%s`\", tt.index, buf.index, string(buf.data[buf.index]), tt.path)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferFirst(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\texpected byte\n\t}{\n\t\t{\n\t\t\tname: \"Valid first byte\",\n\t\t\tdata: []byte(\"test\"),\n\t\t\texpected: 't',\n\t\t},\n\t\t{\n\t\t\tname: \"Empty buffer\",\n\t\t\tdata: []byte(\"\"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"Whitespace buffer\",\n\t\t\tdata: []byte(\" \"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"whitespace in middle\",\n\t\t\tdata: []byte(\"hello world\"),\n\t\t\texpected: 'h',\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.data)\n\n\t\t\tgot, err := b.first()\n\t\t\tif err != nil \u0026\u0026 tt.expected != 0 {\n\t\t\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"Expected first byte to be %q, got %q\", tt.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"builder.gno","body":"package json\n\ntype NodeBuilder struct {\n\tnode *Node\n}\n\nfunc Builder() *NodeBuilder {\n\treturn \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n}\n\nfunc (b *NodeBuilder) WriteString(key, value string) *NodeBuilder {\n\tb.node.AppendObject(key, StringNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNumber(key string, value float64) *NodeBuilder {\n\tb.node.AppendObject(key, NumberNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteBool(key string, value bool) *NodeBuilder {\n\tb.node.AppendObject(key, BoolNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNull(key string) *NodeBuilder {\n\tb.node.AppendObject(key, NullNode(\"\"))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteObject(key string, fn func(*NodeBuilder)) *NodeBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tb.node.AppendObject(key, nestedBuilder.node)\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteArray(key string, fn func(*ArrayBuilder)) *NodeBuilder {\n\tarrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(arrayBuilder)\n\tb.node.AppendObject(key, ArrayNode(\"\", arrayBuilder.nodes))\n\treturn b\n}\n\nfunc (b *NodeBuilder) Node() *Node {\n\treturn b.node\n}\n\ntype ArrayBuilder struct {\n\tnodes []*Node\n}\n\nfunc (ab *ArrayBuilder) WriteString(value string) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, StringNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNumber(value float64) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NumberNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteInt(value int) *ArrayBuilder {\n\treturn ab.WriteNumber(float64(value))\n}\n\nfunc (ab *ArrayBuilder) WriteBool(value bool) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, BoolNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNull() *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NullNode(\"\"))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteObject(fn func(*NodeBuilder)) *ArrayBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tab.nodes = append(ab.nodes, nestedBuilder.node)\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteArray(fn func(*ArrayBuilder)) *ArrayBuilder {\n\tnestedArrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(nestedArrayBuilder)\n\tab.nodes = append(ab.nodes, ArrayNode(\"\", nestedArrayBuilder.nodes))\n\treturn ab\n}\n"},{"name":"builder_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestNodeBuilder(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuild func() *Node\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"plain object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteNumber(\"age\", 30).\n\t\t\t\t\tWriteBool(\"is_student\", false).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"age\":30,\"is_student\":false}`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteObject(\"address\", func(b *NodeBuilder) {\n\t\t\t\t\t\tb.WriteString(\"city\", \"New York\").\n\t\t\t\t\t\t\tWriteNumber(\"zipcode\", 10001)\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"address\":{\"city\":\"New York\",\"zipcode\":10001}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"null node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().WriteNull(\"foo\").Node()\n\t\t\t},\n\t\t\texpected: `{\"foo\":null}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"items\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteString(\"item2\").\n\t\t\t\t\t\t\tWriteString(\"item3\")\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"items\":[\"item1\",\"item2\",\"item3\"]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with objects\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"users\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\tb.WriteString(\"name\", \"Bob\").\n\t\t\t\t\t\t\t\tWriteNumber(\"age\", 25)\n\t\t\t\t\t\t}).\n\t\t\t\t\t\t\tWriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\t\tb.WriteString(\"name\", \"Carol\").\n\t\t\t\t\t\t\t\t\tWriteNumber(\"age\", 27)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"users\":[{\"name\":\"Bob\",\"age\":25},{\"name\":\"Carol\",\"age\":27}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with various types\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"values\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteNumber(123).\n\t\t\t\t\t\t\tWriteBool(true).\n\t\t\t\t\t\t\tWriteNull()\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"values\":[\"item1\",123,true,null]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tnode := tt.build()\n\t\t\tvalue, err := Marshal(node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t}\n\t\t\tif string(value) != tt.expected {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", tt.expected, string(value))\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"decode.gno","body":"// ref: https://github.com/spyzhov/ajson/blob/master/decode.go\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// This limits the max nesting depth to prevent stack overflow.\n// This is permitted by https://tools.ietf.org/html/rfc7159#section-9\nconst maxNestingDepth = 10000\n\n// Unmarshal parses the JSON-encoded data and returns a Node.\n// The data must be a valid JSON-encoded value.\n//\n// Usage:\n//\n//\tnode, err := json.Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err != nil {\n//\t\tufmt.Println(err)\n//\t}\n//\tprintln(node) // {\"key\": \"value\"}\nfunc Unmarshal(data []byte) (*Node, error) {\n\tbuf := newBuffer(data)\n\n\tvar (\n\t\tstate States\n\t\tkey *string\n\t\tcurrent *Node\n\t\tnesting int\n\t\tuseKey = func() **string {\n\t\t\ttmp := cptrs(key)\n\t\t\tkey = nil\n\t\t\treturn \u0026tmp\n\t\t}\n\t\terr error\n\t)\n\n\tif _, err = buf.first(); err != nil {\n\t\treturn nil, io.EOF\n\t}\n\n\tfor {\n\t\tstate = buf.getState()\n\t\tif state == __ {\n\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t}\n\n\t\t// region state machine\n\t\tif state \u003e= GO {\n\t\t\tswitch buf.state {\n\t\t\tcase ST: // string\n\t\t\t\tif current != nil \u0026\u0026 current.IsObject() \u0026\u0026 key == nil {\n\t\t\t\t\t// key detected\n\t\t\t\t\tif key, err = getString(buf); err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tbuf.state = CO\n\t\t\t\t} else {\n\t\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, String, nesting, useKey())\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\terr = buf.string(doubleQuote, false)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\t\t\t\t\tbuf.state = OK\n\t\t\t\t}\n\n\t\t\tcase MI, ZE, IN: // number\n\t\t\t\tcurrent, err = processNumericNode(current, buf, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase T1, F1: // boolean\n\t\t\t\tliteral := falseLiteral\n\t\t\t\tif buf.state == T1 {\n\t\t\t\t\tliteral = trueLiteral\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Boolean, literal, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase N1: // null\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Null, nullLiteral, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// region action\n\t\t\tswitch state {\n\t\t\tcase ec, cc: // \u003cempty\u003e }\n\t\t\t\tif key != nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase bc: // ]\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Array)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase co, bo: // { [\n\t\t\t\tvalTyp, bState := Object, OB\n\t\t\t\tif state == bo {\n\t\t\t\t\tvalTyp, bState = Array, AR\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, valTyp, nesting, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.state = bState\n\n\t\t\tcase cm: // ,\n\t\t\t\tif current == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif !current.isContainer() {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif current.IsObject() {\n\t\t\t\t\tbuf.state = KE // key expected\n\t\t\t\t} else {\n\t\t\t\t\tbuf.state = VA // value expected\n\t\t\t\t}\n\n\t\t\tcase cl: // :\n\t\t\t\tif current == nil || !current.IsObject() || key == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tbuf.state = VA\n\n\t\t\tdefault:\n\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t}\n\t\t}\n\n\t\tif buf.step() != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif _, err = buf.first(); err != nil {\n\t\t\terr = nil\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif current == nil || buf.state != OK {\n\t\treturn nil, io.EOF\n\t}\n\n\troot := current.root()\n\tif !root.ready() {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn root, err\n}\n\n// UnmarshalSafe parses the JSON-encoded data and returns a Node.\nfunc UnmarshalSafe(data []byte) (*Node, error) {\n\tvar safe []byte\n\tsafe = append(safe, data...)\n\treturn Unmarshal(safe)\n}\n\n// processNumericNode creates a new node, processes a numeric value,\n// sets the node's borders, and moves to the previous node.\nfunc processNumericNode(current *Node, buf *buffer, key **string) (*Node, error) {\n\tvar err error\n\tcurrent, err = createNode(current, buf, Number, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = buf.numeric(false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcurrent.borders[1] = buf.index\n\tif current.prev != nil {\n\t\tcurrent = current.prev\n\t}\n\n\tbuf.index -= 1\n\tbuf.state = OK\n\n\treturn current, nil\n}\n\n// processLiteralNode creates a new node, processes a literal value,\n// sets the node's borders, and moves to the previous node.\nfunc processLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteralValue []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tcurrent, nesting, err = createLiteralNode(current, buf, literalType, literalValue, useKey, nesting)\n\tif err != nil {\n\t\treturn nil, nesting, err\n\t}\n\treturn current, nesting, nil\n}\n\n// isValidContainerType checks if the current node is a valid container (object or array).\n// The container must satisfy the following conditions:\n// 1. The current node must not be nil.\n// 2. The current node must be an object or array.\n// 3. The current node must not be ready.\nfunc isValidContainerType(current *Node, nodeType ValueType) bool {\n\tswitch nodeType {\n\tcase Object:\n\t\treturn current != nil \u0026\u0026 current.IsObject() \u0026\u0026 !current.ready()\n\tcase Array:\n\t\treturn current != nil \u0026\u0026 current.IsArray() \u0026\u0026 !current.ready()\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// getString extracts a string from the buffer and advances the buffer index past the string.\nfunc getString(b *buffer) (*string, error) {\n\tstart := b.index\n\tif err := b.string(doubleQuote, false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue, ok := Unquote(b.data[start:b.index+1], doubleQuote)\n\tif !ok {\n\t\treturn nil, unexpectedTokenError(b.data, start)\n\t}\n\n\treturn \u0026value, nil\n}\n\n// createNode creates a new node and sets the key if it is not nil.\nfunc createNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tkey **string,\n) (*Node, error) {\n\tvar err error\n\tcurrent, err = NewNode(current, buf, nodeType, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn current, nil\n}\n\n// createNestedNode creates a new nested node (array or object) and sets the key if it is not nil.\nfunc createNestedNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tnesting int,\n\tkey **string,\n) (*Node, int, error) {\n\tvar err error\n\tif nesting, err = checkNestingDepth(nesting); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\tif current, err = createNode(current, buf, nodeType, key); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\treturn current, nesting, nil\n}\n\n// createLiteralNode creates a new literal node and sets the key if it is not nil.\n// The literal is a byte slice that represents a boolean or null value.\nfunc createLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteral []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tif current, err = createNode(current, buf, literalType, useKey); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tif err = buf.word(literal); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, false)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// updateNode updates the current node and returns the previous node.\nfunc updateNode(\n\tcurrent *Node, buf *buffer, nesting int, decreaseLevel bool,\n) (*Node, int) {\n\tcurrent.borders[1] = buf.index + 1\n\n\tprev := current.prev\n\tif prev == nil {\n\t\treturn current, nesting\n\t}\n\n\tcurrent = prev\n\tif decreaseLevel {\n\t\tnesting--\n\t}\n\n\treturn current, nesting\n}\n\n// updateNodeAndSetBufferState updates the current node and sets the buffer state to OK.\nfunc updateNodeAndSetBufferState(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnesting int,\n\ttyp ValueType,\n) (*Node, int, error) {\n\tif !isValidContainerType(current, typ) {\n\t\treturn nil, nesting, unexpectedTokenError(buf.data, buf.index)\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// checkNestingDepth checks if the nesting depth is within the maximum allowed depth.\nfunc checkNestingDepth(nesting int) (int, error) {\n\tif nesting \u003e= maxNestingDepth {\n\t\treturn nesting, errors.New(\"maximum nesting depth exceeded\")\n\t}\n\n\treturn nesting + 1, nil\n}\n\nfunc unexpectedTokenError(data []byte, index int) error {\n\treturn ufmt.Errorf(\"unexpected token at index %d. data %b\", index, data)\n}\n"},{"name":"decode_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\ntype testNode struct {\n\tname string\n\tinput []byte\n\tvalue []byte\n\t_type ValueType\n}\n\nfunc simpleValid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.input, err.Error())\n\t} else if root == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t} else if root.nodeType != test._type {\n\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t} else if !bytes.Equal(root.source(), test.value) {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t}\n}\n\nfunc simpleInvalid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): error expected, got '%s'\", test.name, root.source())\n\t} else if root != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is not nil\", test.name)\n\t}\n}\n\nfunc simpleCorrupted(name string) *testNode {\n\treturn \u0026testNode{name: name, input: []byte(name)}\n}\n\nfunc TestUnmarshal_StringSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"blank\", input: []byte(\"\\\"\\\"\"), _type: String, value: []byte(\"\\\"\\\"\")},\n\t\t{name: \"char\", input: []byte(\"\\\"c\\\"\"), _type: String, value: []byte(\"\\\"c\\\"\")},\n\t\t{name: \"word\", input: []byte(\"\\\"cat\\\"\"), _type: String, value: []byte(\"\\\"cat\\\"\")},\n\t\t{name: \"spaces\", input: []byte(\" \\\"good cat or dog\\\"\\r\\n \"), _type: String, value: []byte(\"\\\"good cat or dog\\\"\")},\n\t\t{name: \"backslash\", input: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\")},\n\t\t{name: \"backslash 2\", input: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NumericSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"1\", input: []byte(\"1\"), _type: Number, value: []byte(\"1\")},\n\t\t{name: \"-1\", input: []byte(\"-1\"), _type: Number, value: []byte(\"-1\")},\n\n\t\t{name: \"1234567890\", input: []byte(\"1234567890\"), _type: Number, value: []byte(\"1234567890\")},\n\t\t{name: \"-123\", input: []byte(\"-123\"), _type: Number, value: []byte(\"-123\")},\n\n\t\t{name: \"123.456\", input: []byte(\"123.456\"), _type: Number, value: []byte(\"123.456\")},\n\t\t{name: \"-123.456\", input: []byte(\"-123.456\"), _type: Number, value: []byte(\"-123.456\")},\n\n\t\t{name: \"1e3\", input: []byte(\"1e3\"), _type: Number, value: []byte(\"1e3\")},\n\t\t{name: \"1e+3\", input: []byte(\"1e+3\"), _type: Number, value: []byte(\"1e+3\")},\n\t\t{name: \"1e-3\", input: []byte(\"1e-3\"), _type: Number, value: []byte(\"1e-3\")},\n\t\t{name: \"-1e3\", input: []byte(\"-1e3\"), _type: Number, value: []byte(\"-1e3\")},\n\t\t{name: \"-1e-3\", input: []byte(\"-1e-3\"), _type: Number, value: []byte(\"-1e-3\")},\n\n\t\t{name: \"1.123e3456\", input: []byte(\"1.123e3456\"), _type: Number, value: []byte(\"1.123e3456\")},\n\t\t{name: \"1.123e-3456\", input: []byte(\"1.123e-3456\"), _type: Number, value: []byte(\"1.123e-3456\")},\n\t\t{name: \"-1.123e3456\", input: []byte(\"-1.123e3456\"), _type: Number, value: []byte(\"-1.123e3456\")},\n\t\t{name: \"-1.123e-3456\", input: []byte(\"-1.123e-3456\"), _type: Number, value: []byte(\"-1.123e-3456\")},\n\n\t\t{name: \"1E3\", input: []byte(\"1E3\"), _type: Number, value: []byte(\"1E3\")},\n\t\t{name: \"1E-3\", input: []byte(\"1E-3\"), _type: Number, value: []byte(\"1E-3\")},\n\t\t{name: \"-1E3\", input: []byte(\"-1E3\"), _type: Number, value: []byte(\"-1E3\")},\n\t\t{name: \"-1E-3\", input: []byte(\"-1E-3\"), _type: Number, value: []byte(\"-1E-3\")},\n\n\t\t{name: \"1.123E3456\", input: []byte(\"1.123E3456\"), _type: Number, value: []byte(\"1.123E3456\")},\n\t\t{name: \"1.123E-3456\", input: []byte(\"1.123E-3456\"), _type: Number, value: []byte(\"1.123E-3456\")},\n\t\t{name: \"-1.123E3456\", input: []byte(\"-1.123E3456\"), _type: Number, value: []byte(\"-1.123E3456\")},\n\t\t{name: \"-1.123E-3456\", input: []byte(\"-1.123E-3456\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\n\t\t{name: \"-1.123E-3456 with spaces\", input: []byte(\" \\r -1.123E-3456 \\t\\n\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(test.input)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.name, err.Error())\n\t\t\t} else if root == nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t\t\t} else if root.nodeType != test._type {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t\t\t} else if !bytes.Equal(root.source(), test.value) {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_StringSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"white NL\", input: []byte(\"\\\"foo\\nbar\\\"\")},\n\t\t{name: \"white R\", input: []byte(\"\\\"foo\\rbar\\\"\")},\n\t\t{name: \"white Tab\", input: []byte(\"\\\"foo\\tbar\\\"\")},\n\t\t{name: \"wrong quotes\", input: []byte(\"'cat'\")},\n\t\t{name: \"double string\", input: []byte(\"\\\"Hello\\\" \\\"World\\\"\")},\n\t\t{name: \"quotes in quotes\", input: []byte(\"\\\"good \\\"cat\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"{}\", input: []byte(\"{}\"), _type: Object, value: []byte(\"{}\")},\n\t\t{name: `{ \\r\\n }`, input: []byte(\"{ \\r\\n }\"), _type: Object, value: []byte(\"{ \\r\\n }\")},\n\t\t{name: `{\"key\":1}`, input: []byte(`{\"key\":1}`), _type: Object, value: []byte(`{\"key\":1}`)},\n\t\t{name: `{\"key\":true}`, input: []byte(`{\"key\":true}`), _type: Object, value: []byte(`{\"key\":true}`)},\n\t\t{name: `{\"key\":\"value\"}`, input: []byte(`{\"key\":\"value\"}`), _type: Object, value: []byte(`{\"key\":\"value\"}`)},\n\t\t{name: `{\"foo\":\"bar\",\"baz\":\"foo\"}`, input: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`), _type: Object, value: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`)},\n\t\t{name: \"spaces\", input: []byte(` { \"foo\" : \"bar\" , \"baz\" : \"foo\" } `), _type: Object, value: []byte(`{ \"foo\" : \"bar\" , \"baz\" : \"foo\" }`)},\n\t\t{name: \"nested\", input: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`), _type: Object, value: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`)},\n\t\t{name: \"array\", input: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`), _type: Object, value: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`)},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"{{{\\\"key\\\": \\\"foo\\\"{{{{\"),\n\t\tsimpleCorrupted(\"}\"),\n\t\tsimpleCorrupted(\"{ }}}}}}}\"),\n\t\tsimpleCorrupted(\" }\"),\n\t\tsimpleCorrupted(\"{,}\"),\n\t\tsimpleCorrupted(\"{:}\"),\n\t\tsimpleCorrupted(\"{100000}\"),\n\t\tsimpleCorrupted(\"{1:1}\"),\n\t\tsimpleCorrupted(\"{'1:2,3:4'}\"),\n\t\tsimpleCorrupted(`{\"d\"}`),\n\t\tsimpleCorrupted(`{\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":}`),\n\t\tsimpleCorrupted(`{:\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":bar}`),\n\t\tsimpleCorrupted(`{\"foo\":\"bar\",}`),\n\t\tsimpleCorrupted(`{}{}`),\n\t\tsimpleCorrupted(`{},{}`),\n\t\tsimpleCorrupted(`{[},{]}`),\n\t\tsimpleCorrupted(`{[,]}`),\n\t\tsimpleCorrupted(`{[]}`),\n\t\tsimpleCorrupted(`{}1`),\n\t\tsimpleCorrupted(`1{}`),\n\t\tsimpleCorrupted(`{\"x\"::1}`),\n\t\tsimpleCorrupted(`{null:null}`),\n\t\tsimpleCorrupted(`{\"foo:\"bar\"}`),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NullSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"nul\", input: []byte(\"nul\")},\n\t\t{name: \"nil\", input: []byte(\"nil\")},\n\t\t{name: \"nill\", input: []byte(\"nill\")},\n\t\t{name: \"NILL\", input: []byte(\"NILL\")},\n\t\t{name: \"Null\", input: []byte(\"Null\")},\n\t\t{name: \"NULL\", input: []byte(\"NULL\")},\n\t\t{name: \"spaces\", input: []byte(\"Nu ll\")},\n\t\t{name: \"null1\", input: []byte(\"null1\")},\n\t\t{name: \"double\", input: []byte(\"null null\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"lower true\", input: []byte(\"true\"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"lower false\", input: []byte(\"false\"), _type: Boolean, value: []byte(\"false\")},\n\t\t{name: \"spaces true\", input: []byte(\" true\\r\\n \"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"spaces false\", input: []byte(\" false\\r\\n \"), _type: Boolean, value: []byte(\"false\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"tru\"),\n\t\tsimpleCorrupted(\"fals\"),\n\t\tsimpleCorrupted(\"tre\"),\n\t\tsimpleCorrupted(\"fal se\"),\n\t\tsimpleCorrupted(\"true false\"),\n\t\tsimpleCorrupted(\"True\"),\n\t\tsimpleCorrupted(\"TRUE\"),\n\t\tsimpleCorrupted(\"False\"),\n\t\tsimpleCorrupted(\"FALSE\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"[]\", input: []byte(\"[]\"), _type: Array, value: []byte(\"[]\")},\n\t\t{name: \"[1]\", input: []byte(\"[1]\"), _type: Array, value: []byte(\"[1]\")},\n\t\t{name: \"[1,2,3]\", input: []byte(\"[1,2,3]\"), _type: Array, value: []byte(\"[1,2,3]\")},\n\t\t{name: \"[1, 2, 3]\", input: []byte(\"[1, 2, 3]\"), _type: Array, value: []byte(\"[1, 2, 3]\")},\n\t\t{name: \"[1,[2],3]\", input: []byte(\"[1,[2],3]\"), _type: Array, value: []byte(\"[1,[2],3]\")},\n\t\t{name: \"[[],[],[]]\", input: []byte(\"[[],[],[]]\"), _type: Array, value: []byte(\"[[],[],[]]\")},\n\t\t{name: \"[[[[[]]]]]\", input: []byte(\"[[[[[]]]]]\"), _type: Array, value: []byte(\"[[[[[]]]]]\")},\n\t\t{name: \"[true,null,1,\\\"foo\\\",[]]\", input: []byte(\"[true,null,1,\\\"foo\\\",[]]\"), _type: Array, value: []byte(\"[true,null,1,\\\"foo\\\",[]]\")},\n\t\t{name: \"spaces\", input: []byte(\"\\n\\r [\\n1\\n ]\\r\\n\"), _type: Array, value: []byte(\"[\\n1\\n ]\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"[,]\"),\n\t\tsimpleCorrupted(\"[]\\\\\"),\n\t\tsimpleCorrupted(\"[1,]\"),\n\t\tsimpleCorrupted(\"[[]\"),\n\t\tsimpleCorrupted(\"[]]\"),\n\t\tsimpleCorrupted(\"1[]\"),\n\t\tsimpleCorrupted(\"[]1\"),\n\t\tsimpleCorrupted(\"[[]1]\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\n// Examples from https://json.org/example.html\nfunc TestUnmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalue string\n\t}{\n\t\t{\n\t\t\tname: \"glossary\",\n\t\t\tvalue: `{\n\t\t\t\t\"glossary\": {\n\t\t\t\t\t\"title\": \"example glossary\",\n\t\t\t\t\t\"GlossDiv\": {\n\t\t\t\t\t\t\"title\": \"S\",\n\t\t\t\t\t\t\"GlossList\": {\n\t\t\t\t\t\t\t\"GlossEntry\": {\n\t\t\t\t\t\t\t\t\"ID\": \"SGML\",\n\t\t\t\t\t\t\t\t\"SortAs\": \"SGML\",\n\t\t\t\t\t\t\t\t\"GlossTerm\": \"Standard Generalized Markup Language\",\n\t\t\t\t\t\t\t\t\"Acronym\": \"SGML\",\n\t\t\t\t\t\t\t\t\"Abbrev\": \"ISO 8879:1986\",\n\t\t\t\t\t\t\t\t\"GlossDef\": {\n\t\t\t\t\t\t\t\t\t\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\",\n\t\t\t\t\t\t\t\t\t\"GlossSeeAlso\": [\"GML\", \"XML\"]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"GlossSee\": \"markup\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`,\n\t\t},\n\t\t{\n\t\t\tname: \"menu\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"id\": \"file\",\n\t\t\t\t\"value\": \"File\",\n\t\t\t\t\"popup\": {\n\t\t\t\t \"menuitem\": [\n\t\t\t\t\t{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n\t\t\t\t\t{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n\t\t\t\t\t{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n\t\t\t\t ]\n\t\t\t\t}\n\t\t\t}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"widget\",\n\t\t\tvalue: `{\"widget\": {\n\t\t\t\t\"debug\": \"on\",\n\t\t\t\t\"window\": {\n\t\t\t\t\t\"title\": \"Sample Konfabulator Widget\",\n\t\t\t\t\t\"name\": \"main_window\",\n\t\t\t\t\t\"width\": 500,\n\t\t\t\t\t\"height\": 500\n\t\t\t\t},\n\t\t\t\t\"image\": { \n\t\t\t\t\t\"src\": \"Images/Sun.png\",\n\t\t\t\t\t\"name\": \"sun1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 250,\n\t\t\t\t\t\"alignment\": \"center\"\n\t\t\t\t},\n\t\t\t\t\"text\": {\n\t\t\t\t\t\"data\": \"Click Here\",\n\t\t\t\t\t\"size\": 36,\n\t\t\t\t\t\"style\": \"bold\",\n\t\t\t\t\t\"name\": \"text1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 100,\n\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\"onMouseUp\": \"sun1.opacity = (sun1.opacity / 100) * 90;\"\n\t\t\t\t}\n\t\t\t}} `,\n\t\t},\n\t\t{\n\t\t\tname: \"web-app\",\n\t\t\tvalue: `{\"web-app\": {\n\t\t\t\t\"servlet\": [ \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxCDS\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.CDSServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"configGlossary:installationAt\": \"Philadelphia, PA\",\n\t\t\t\t\t \"configGlossary:adminEmail\": \"ksm@pobox.com\",\n\t\t\t\t\t \"configGlossary:poweredBy\": \"Cofax\",\n\t\t\t\t\t \"configGlossary:poweredByIcon\": \"/images/cofax.gif\",\n\t\t\t\t\t \"configGlossary:staticPath\": \"/content/static\",\n\t\t\t\t\t \"templateProcessorClass\": \"org.cofax.WysiwygTemplate\",\n\t\t\t\t\t \"templateLoaderClass\": \"org.cofax.FilesTemplateLoader\",\n\t\t\t\t\t \"templatePath\": \"templates\",\n\t\t\t\t\t \"templateOverridePath\": \"\",\n\t\t\t\t\t \"defaultListTemplate\": \"listTemplate.htm\",\n\t\t\t\t\t \"defaultFileTemplate\": \"articleTemplate.htm\",\n\t\t\t\t\t \"useJSP\": false,\n\t\t\t\t\t \"jspListTemplate\": \"listTemplate.jsp\",\n\t\t\t\t\t \"jspFileTemplate\": \"articleTemplate.jsp\",\n\t\t\t\t\t \"cachePackageTagsTrack\": 200,\n\t\t\t\t\t \"cachePackageTagsStore\": 200,\n\t\t\t\t\t \"cachePackageTagsRefresh\": 60,\n\t\t\t\t\t \"cacheTemplatesTrack\": 100,\n\t\t\t\t\t \"cacheTemplatesStore\": 50,\n\t\t\t\t\t \"cacheTemplatesRefresh\": 15,\n\t\t\t\t\t \"cachePagesTrack\": 200,\n\t\t\t\t\t \"cachePagesStore\": 100,\n\t\t\t\t\t \"cachePagesRefresh\": 10,\n\t\t\t\t\t \"cachePagesDirtyRead\": 10,\n\t\t\t\t\t \"searchEngineListTemplate\": \"forSearchEnginesList.htm\",\n\t\t\t\t\t \"searchEngineFileTemplate\": \"forSearchEngines.htm\",\n\t\t\t\t\t \"searchEngineRobotsDb\": \"WEB-INF/robots.db\",\n\t\t\t\t\t \"useDataStore\": true,\n\t\t\t\t\t \"dataStoreClass\": \"org.cofax.SqlDataStore\",\n\t\t\t\t\t \"redirectionClass\": \"org.cofax.SqlRedirection\",\n\t\t\t\t\t \"dataStoreName\": \"cofax\",\n\t\t\t\t\t \"dataStoreDriver\": \"com.microsoft.jdbc.sqlserver.SQLServerDriver\",\n\t\t\t\t\t \"dataStoreUrl\": \"jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon\",\n\t\t\t\t\t \"dataStoreUser\": \"sa\",\n\t\t\t\t\t \"dataStorePassword\": \"dataStoreTestQuery\",\n\t\t\t\t\t \"dataStoreTestQuery\": \"SET NOCOUNT ON;select test='test';\",\n\t\t\t\t\t \"dataStoreLogFile\": \"/usr/local/tomcat/logs/datastore.log\",\n\t\t\t\t\t \"dataStoreInitConns\": 10,\n\t\t\t\t\t \"dataStoreMaxConns\": 100,\n\t\t\t\t\t \"dataStoreConnUsageLimit\": 100,\n\t\t\t\t\t \"dataStoreLogLevel\": \"debug\",\n\t\t\t\t\t \"maxUrlLength\": 500}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxEmail\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.EmailServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t\"mailHost\": \"mail1\",\n\t\t\t\t\t\"mailHostOverride\": \"mail2\"}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxAdmin\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.AdminServlet\"},\n\t\t\t \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"fileServlet\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.FileServlet\"},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxTools\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cms.CofaxToolsServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"templatePath\": \"toolstemplates/\",\n\t\t\t\t\t \"log\": 1,\n\t\t\t\t\t \"logLocation\": \"/usr/local/tomcat/logs/CofaxTools.log\",\n\t\t\t\t\t \"logMaxSize\": \"\",\n\t\t\t\t\t \"dataLog\": 1,\n\t\t\t\t\t \"dataLogLocation\": \"/usr/local/tomcat/logs/dataLog.log\",\n\t\t\t\t\t \"dataLogMaxSize\": \"\",\n\t\t\t\t\t \"removePageCache\": \"/content/admin/remove?cache=pages\u0026id=\",\n\t\t\t\t\t \"removeTemplateCache\": \"/content/admin/remove?cache=templates\u0026id=\",\n\t\t\t\t\t \"fileTransferFolder\": \"/usr/local/tomcat/webapps/content/fileTransferFolder\",\n\t\t\t\t\t \"lookInContext\": 1,\n\t\t\t\t\t \"adminGroupID\": 4,\n\t\t\t\t\t \"betaServer\": true}}],\n\t\t\t\t\"servlet-mapping\": {\n\t\t\t\t \"cofaxCDS\": \"/\",\n\t\t\t\t \"cofaxEmail\": \"/cofaxutil/aemail/*\",\n\t\t\t\t \"cofaxAdmin\": \"/admin/*\",\n\t\t\t\t \"fileServlet\": \"/static/*\",\n\t\t\t\t \"cofaxTools\": \"/tools/*\"},\n\t\t\t \n\t\t\t\t\"taglib\": {\n\t\t\t\t \"taglib-uri\": \"cofax.tld\",\n\t\t\t\t \"taglib-location\": \"/WEB-INF/tlds/cofax.tld\"}}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"SVG Viewer\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"header\": \"SVG Viewer\",\n\t\t\t\t\"items\": [\n\t\t\t\t\t{\"id\": \"Open\"},\n\t\t\t\t\t{\"id\": \"OpenNew\", \"label\": \"Open New\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"ZoomIn\", \"label\": \"Zoom In\"},\n\t\t\t\t\t{\"id\": \"ZoomOut\", \"label\": \"Zoom Out\"},\n\t\t\t\t\t{\"id\": \"OriginalView\", \"label\": \"Original View\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Quality\"},\n\t\t\t\t\t{\"id\": \"Pause\"},\n\t\t\t\t\t{\"id\": \"Mute\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Find\", \"label\": \"Find...\"},\n\t\t\t\t\t{\"id\": \"FindAgain\", \"label\": \"Find Again\"},\n\t\t\t\t\t{\"id\": \"Copy\"},\n\t\t\t\t\t{\"id\": \"CopyAgain\", \"label\": \"Copy Again\"},\n\t\t\t\t\t{\"id\": \"CopySVG\", \"label\": \"Copy SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSVG\", \"label\": \"View SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSource\", \"label\": \"View Source\"},\n\t\t\t\t\t{\"id\": \"SaveAs\", \"label\": \"Save As\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Help\"},\n\t\t\t\t\t{\"id\": \"About\", \"label\": \"About Adobe CVG Viewer...\"}\n\t\t\t\t]\n\t\t\t}}`,\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\t_, err := Unmarshal([]byte(test.value))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalSafe(t *testing.T) {\n\tjson := []byte(`{ \"store\": {\n\t\t\"book\": [ \n\t\t { \"category\": \"reference\",\n\t\t\t\"author\": \"Nigel Rees\",\n\t\t\t\"title\": \"Sayings of the Century\",\n\t\t\t\"price\": 8.95\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Evelyn Waugh\",\n\t\t\t\"title\": \"Sword of Honour\",\n\t\t\t\"price\": 12.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Herman Melville\",\n\t\t\t\"title\": \"Moby Dick\",\n\t\t\t\"isbn\": \"0-553-21311-3\",\n\t\t\t\"price\": 8.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"J. R. R. Tolkien\",\n\t\t\t\"title\": \"The Lord of the Rings\",\n\t\t\t\"isbn\": \"0-395-19395-8\",\n\t\t\t\"price\": 22.99\n\t\t }\n\t\t],\n\t\t\"bicycle\": {\n\t\t \"color\": \"red\",\n\t\t \"price\": 19.95\n\t\t}\n\t }\n\t}`)\n\tsafe, err := UnmarshalSafe(json)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t} else if safe == nil {\n\t\tt.Errorf(\"Error on Unmarshal: safe is nil\")\n\t} else {\n\t\troot, err := Unmarshal(json)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t} else if root == nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t\t} else if !bytes.Equal(root.source(), safe.source()) {\n\t\t\tt.Errorf(\"Error on UnmarshalSafe: values not same\")\n\t\t}\n\t}\n}\n\n// BenchmarkGoStdUnmarshal-8 \t 61698\t 19350 ns/op\t 288 B/op\t 6 allocs/op\n// BenchmarkUnmarshal-8 \t 45620\t 26165 ns/op\t 21889 B/op\t 367 allocs/op\n//\n// type bench struct {\n// \tName string `json:\"name\"`\n// \tValue int `json:\"value\"`\n// }\n\n// func BenchmarkGoStdUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\terr := json.Unmarshal(data, \u0026bench{})\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n\n// func BenchmarkUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\t_, err := Unmarshal(data)\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n"},{"name":"encode.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Marshal returns the JSON encoding of a Node.\nfunc Marshal(node *Node) ([]byte, error) {\n\tvar (\n\t\tbuf bytes.Buffer\n\t\tsVal string\n\t\tbVal bool\n\t\tnVal float64\n\t\toVal []byte\n\t\terr error\n\t)\n\n\tif node == nil {\n\t\treturn nil, errors.New(\"node is nil\")\n\t}\n\n\tif !node.modified \u0026\u0026 !node.ready() {\n\t\treturn nil, errors.New(\"node is not ready\")\n\t}\n\n\tif !node.modified \u0026\u0026 node.ready() {\n\t\tbuf.Write(node.source())\n\t}\n\n\tif node.modified {\n\t\tswitch node.nodeType {\n\t\tcase Null:\n\t\t\tbuf.Write(nullLiteral)\n\n\t\tcase Number:\n\t\t\tnVal, err = node.GetNumeric()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnum := strconv.FormatFloat(nVal, 'f', -1, 64)\n\t\t\tbuf.WriteString(num)\n\n\t\tcase String:\n\t\t\tsVal, err = node.GetString()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tquoted := ufmt.Sprintf(\"%s\", strconv.Quote(sVal))\n\t\t\tbuf.WriteString(quoted)\n\n\t\tcase Boolean:\n\t\t\tbVal, err = node.GetBool()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tbStr := ufmt.Sprintf(\"%t\", bVal)\n\t\t\tbuf.WriteString(bStr)\n\n\t\tcase Array:\n\t\t\tbuf.WriteByte(bracketOpen)\n\n\t\t\tfor i := 0; i \u003c len(node.next); i++ {\n\t\t\t\tif i != 0 {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t}\n\n\t\t\t\telem, ok := node.next[strconv.Itoa(i)]\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, ufmt.Errorf(\"array element %d is not found\", i)\n\t\t\t\t}\n\n\t\t\t\toVal, err = Marshal(elem)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(bracketClose)\n\n\t\tcase Object:\n\t\t\tbuf.WriteByte(curlyOpen)\n\n\t\t\tbVal = false\n\t\t\tfor k, v := range node.next {\n\t\t\t\tif bVal {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t} else {\n\t\t\t\t\tbVal = true\n\t\t\t\t}\n\n\t\t\t\tkey := ufmt.Sprintf(\"%s\", strconv.Quote(k))\n\t\t\t\tbuf.WriteString(key)\n\t\t\t\tbuf.WriteByte(colon)\n\n\t\t\t\toVal, err = Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(curlyClose)\n\t\t}\n\t}\n\n\treturn buf.Bytes(), nil\n}\n"},{"name":"encode_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestMarshal_Primitive(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t}{\n\t\t{\n\t\t\tname: \"null\",\n\t\t\tnode: NullNode(\"\"),\n\t\t},\n\t\t{\n\t\t\tname: \"true\",\n\t\t\tnode: BoolNode(\"\", true),\n\t\t},\n\t\t{\n\t\t\tname: \"false\",\n\t\t\tnode: BoolNode(\"\", false),\n\t\t},\n\t\t{\n\t\t\tname: `\"string\"`,\n\t\t\tnode: StringNode(\"\", \"string\"),\n\t\t},\n\t\t{\n\t\t\tname: `\"one \\\"encoded\\\" string\"`,\n\t\t\tnode: StringNode(\"\", `one \"encoded\" string`),\n\t\t},\n\t\t{\n\t\t\tname: `{\"foo\":\"bar\"}`,\n\t\t\tnode: ObjectNode(\"\", map[string]*Node{\n\t\t\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tname: \"42\",\n\t\t\tnode: NumberNode(\"\", 42),\n\t\t},\n\t\t{\n\t\t\tname: \"3.14\",\n\t\t\tnode: NumberNode(\"\", 3.14),\n\t\t},\n\t\t{\n\t\t\tname: `[1,2,3]`,\n\t\t\tnode: ArrayNode(\"\", []*Node{\n\t\t\t\tNumberNode(\"0\", 1),\n\t\t\t\tNumberNode(\"2\", 2),\n\t\t\t\tNumberNode(\"3\", 3),\n\t\t\t}),\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t} else if string(value) != test.name {\n\t\t\t\tt.Errorf(\"wrong result: '%s', expected '%s'\", value, test.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Object(t *testing.T) {\n\tnode := ObjectNode(\"\", map[string]*Node{\n\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\"baz\": NumberNode(\"baz\", 100500),\n\t\t\"qux\": NullNode(\"qux\"),\n\t})\n\n\tmustKey := []string{\"foo\", \"baz\", \"qux\"}\n\n\tvalue, err := Marshal(node)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\t// the order of keys in the map is not guaranteed\n\t// so we need to unmarshal the result and check the keys\n\tdecoded, err := Unmarshal(value)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\tfor _, key := range mustKey {\n\t\tif node, err := decoded.GetKey(key); err != nil {\n\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t} else {\n\t\t\tif node == nil {\n\t\t\t\tt.Errorf(\"node is nil\")\n\t\t\t} else if node.key == nil {\n\t\t\t\tt.Errorf(\"key is nil\")\n\t\t\t} else if *node.key != key {\n\t\t\t\tt.Errorf(\"wrong key: '%s', expected '%s'\", *node.key, key)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc valueNode(prev *Node, key string, typ ValueType, val interface{}) *Node {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: nil,\n\t\tkey: \u0026key,\n\t\tborders: [2]int{0, 0},\n\t\tvalue: val,\n\t\tmodified: true,\n\t}\n\n\tif val != nil {\n\t\tcurr.nodeType = typ\n\t}\n\n\treturn curr\n}\n\nfunc TestMarshal_Errors(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode func() (node *Node)\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"broken\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = Must(Unmarshal([]byte(`{}`)))\n\t\t\t\tnode.borders[1] = 0\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Numeric\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Number, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"String\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", String, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Bool\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Boolean, 1)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_1\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = ArrayNode(\"\", nil)\n\t\t\t\tnode.next[\"1\"] = NullNode(\"1\")\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_2\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ArrayNode(\"\", []*Node{valueNode(nil, \"\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Object\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ObjectNode(\"\", map[string]*Node{\"key\": valueNode(nil, \"key\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node())\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"expected error\")\n\t\t\t} else if len(value) != 0 {\n\t\t\t\tt.Errorf(\"wrong result\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Nil(t *testing.T) {\n\t_, err := Marshal(nil)\n\tif err == nil {\n\t\tt.Error(\"Expected error for nil node, but got nil\")\n\t}\n}\n\nfunc TestMarshal_NotModified(t *testing.T) {\n\tnode := \u0026Node{}\n\t_, err := Marshal(node)\n\tif err == nil {\n\t\tt.Error(\"Expected error for not modified node, but got nil\")\n\t}\n}\n\nfunc TestMarshalCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tnext: map[string]*Node{\n\t\t\t\"next\": nil,\n\t\t},\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tprev: node1,\n\t}\n\n\tnode1.next[\"next\"] = node2\n\n\t_, err := Marshal(node1)\n\tif err == nil {\n\t\tt.Error(\"Expected error for cycle reference, but got nil\")\n\t}\n}\n\nfunc TestMarshalNoCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tvalue: \"value1\",\n\t\tmodified: true,\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tvalue: \"value2\",\n\t\tmodified: true,\n\t}\n\n\t_, err := Marshal(node1)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n\n\t_, err = Marshal(node2)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n}\n\nfunc stringPtr(s string) *string {\n\treturn \u0026s\n}\n"},{"name":"errors.gno","body":"package json\n\nimport \"errors\"\n\nvar (\n\terrNilNode = errors.New(\"node is nil\")\n\terrNotArrayNode = errors.New(\"node is not array\")\n\terrNotBoolNode = errors.New(\"node is not boolean\")\n\terrNotNullNode = errors.New(\"node is not null\")\n\terrNotNumberNode = errors.New(\"node is not number\")\n\terrNotObjectNode = errors.New(\"node is not object\")\n\terrNotStringNode = errors.New(\"node is not string\")\n\terrInvalidToken = errors.New(\"invalid token\")\n\terrIndexNotFound = errors.New(\"index not found\")\n\terrInvalidAppend = errors.New(\"can't append value to non-appendable node\")\n\terrInvalidAppendCycle = errors.New(\"appending value to itself or its children or parents will cause a cycle\")\n\terrInvalidEscapeSequence = errors.New(\"invalid escape sequence\")\n\terrInvalidStringValue = errors.New(\"invalid string value\")\n\terrEmptyBooleanNode = errors.New(\"boolean node is empty\")\n\terrEmptyStringNode = errors.New(\"string node is empty\")\n\terrKeyRequired = errors.New(\"key is required for object\")\n\terrUnmatchedParenthesis = errors.New(\"mismatched bracket or parenthesis\")\n\terrUnmatchedQuotePath = errors.New(\"unmatched quote in path\")\n)\n\nvar (\n\terrInvalidStringInput = errors.New(\"invalid string input\")\n\terrMalformedBooleanValue = errors.New(\"malformed boolean value\")\n\terrEmptyByteSlice = errors.New(\"empty byte slice\")\n\terrInvalidExponentValue = errors.New(\"invalid exponent value\")\n\terrNonDigitCharacters = errors.New(\"non-digit characters found\")\n\terrNumericRangeExceeded = errors.New(\"numeric value exceeds the range limit\")\n\terrMultipleDecimalPoints = errors.New(\"multiple decimal points found\")\n)\n"},{"name":"escape.gno","body":"package json\n\nimport (\n\t\"unicode/utf8\"\n)\n\nconst (\n\tsupplementalPlanesOffset = 0x10000\n\thighSurrogateOffset = 0xD800\n\tlowSurrogateOffset = 0xDC00\n\tsurrogateEnd = 0xDFFF\n\tbasicMultilingualPlaneOffset = 0xFFFF\n\tbadHex = -1\n\n\tsingleUnicodeEscapeLen = 6\n\tsurrogatePairLen = 12\n)\n\nvar hexLookupTable = [256]int{\n\t'0': 0x0, '1': 0x1, '2': 0x2, '3': 0x3, '4': 0x4,\n\t'5': 0x5, '6': 0x6, '7': 0x7, '8': 0x8, '9': 0x9,\n\t'A': 0xA, 'B': 0xB, 'C': 0xC, 'D': 0xD, 'E': 0xE, 'F': 0xF,\n\t'a': 0xA, 'b': 0xB, 'c': 0xC, 'd': 0xD, 'e': 0xE, 'f': 0xF,\n\t// Fill unspecified index-value pairs with key and value of -1\n\t'G': -1, 'H': -1, 'I': -1, 'J': -1,\n\t'K': -1, 'L': -1, 'M': -1, 'N': -1,\n\t'O': -1, 'P': -1, 'Q': -1, 'R': -1,\n\t'S': -1, 'T': -1, 'U': -1, 'V': -1,\n\t'W': -1, 'X': -1, 'Y': -1, 'Z': -1,\n\t'g': -1, 'h': -1, 'i': -1, 'j': -1,\n\t'k': -1, 'l': -1, 'm': -1, 'n': -1,\n\t'o': -1, 'p': -1, 'q': -1, 'r': -1,\n\t's': -1, 't': -1, 'u': -1, 'v': -1,\n\t'w': -1, 'x': -1, 'y': -1, 'z': -1,\n}\n\nfunc h2i(c byte) int {\n\treturn hexLookupTable[c]\n}\n\n// Unescape takes an input byte slice, processes it to Unescape certain characters,\n// and writes the result into an output byte slice.\n//\n// it returns the processed slice and any error encountered during the Unescape operation.\nfunc Unescape(input, output []byte) ([]byte, error) {\n\t// ensure the output slice has enough capacity to hold the input slice.\n\tinputLen := len(input)\n\tif cap(output) \u003c inputLen {\n\t\toutput = make([]byte, inputLen)\n\t}\n\n\tinPos, outPos := 0, 0\n\n\tfor inPos \u003c len(input) {\n\t\tc := input[inPos]\n\t\tif c != backSlash {\n\t\t\toutput[outPos] = c\n\t\t\tinPos++\n\t\t\toutPos++\n\t\t} else {\n\t\t\t// process escape sequence\n\t\t\tinLen, outLen, err := processEscapedUTF8(input[inPos:], output[outPos:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tinPos += inLen\n\t\t\toutPos += outLen\n\t\t}\n\t}\n\n\treturn output[:outPos], nil\n}\n\n// isSurrogatePair returns true if the rune is a surrogate pair.\n//\n// A surrogate pairs are used in UTF-16 encoding to encode characters\n// outside the Basic Multilingual Plane (BMP).\nfunc isSurrogatePair(r rune) bool {\n\treturn highSurrogateOffset \u003c= r \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// isHighSurrogate checks if the rune is a high surrogate (U+D800 to U+DBFF).\nfunc isHighSurrogate(r rune) bool {\n\treturn r \u003e= highSurrogateOffset \u0026\u0026 r \u003c= 0xDBFF\n}\n\n// isLowSurrogate checks if the rune is a low surrogate (U+DC00 to U+DFFF).\nfunc isLowSurrogate(r rune) bool {\n\treturn r \u003e= lowSurrogateOffset \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// combineSurrogates reconstruct the original unicode code points in the\n// supplemental plane by combinin the high and low surrogate.\n//\n// The hight surrogate in the range from U+D800 to U+DBFF,\n// and the low surrogate in the range from U+DC00 to U+DFFF.\n//\n// The formula to combine the surrogates is:\n// (high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000\nfunc combineSurrogates(high, low rune) rune {\n\treturn ((high - highSurrogateOffset) \u003c\u003c 10) + (low - lowSurrogateOffset) + supplementalPlanesOffset\n}\n\n// deocdeSingleUnicodeEscape decodes a unicode escape sequence (e.g., \\uXXXX) into a rune.\nfunc decodeSingleUnicodeEscape(b []byte) (rune, bool) {\n\tif len(b) \u003c 6 {\n\t\treturn utf8.RuneError, false\n\t}\n\n\t// convert hex to decimal\n\th1, h2, h3, h4 := h2i(b[2]), h2i(b[3]), h2i(b[4]), h2i(b[5])\n\tif h1 == badHex || h2 == badHex || h3 == badHex || h4 == badHex {\n\t\treturn utf8.RuneError, false\n\t}\n\n\treturn rune(h1\u003c\u003c12 + h2\u003c\u003c8 + h3\u003c\u003c4 + h4), true\n}\n\n// decodeUnicodeEscape decodes a Unicode escape sequence from a byte slice.\n// It handles both single Unicode escape sequences and surrogate pairs.\nfunc decodeUnicodeEscape(b []byte) (rune, int) {\n\t// decode the first Unicode escape sequence.\n\tr, ok := decodeSingleUnicodeEscape(b)\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is within the BMP and not a surrogate, return it\n\tif r \u003c= basicMultilingualPlaneOffset \u0026\u0026 !isSurrogatePair(r) {\n\t\treturn r, 6\n\t}\n\n\tif !isHighSurrogate(r) {\n\t\t// invalid surrogate pair.\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is a high surrogate, need to decode the next escape sequence.\n\n\t// ensure there are enough bytes for the next escape sequence.\n\tif len(b) \u003c surrogatePairLen {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// decode the second Unicode escape sequence.\n\tr2, ok := decodeSingleUnicodeEscape(b[singleUnicodeEscapeLen:])\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// check if the second rune is a low surrogate.\n\tif isLowSurrogate(r2) {\n\t\tcombined := combineSurrogates(r, r2)\n\t\treturn combined, surrogatePairLen\n\t}\n\treturn utf8.RuneError, -1\n}\n\nvar escapeByteSet = [256]byte{\n\t'\"': doubleQuote,\n\t'\\\\': backSlash,\n\t'/': slash,\n\t'b': backSpace,\n\t'f': formFeed,\n\t'n': newLine,\n\t'r': carriageReturn,\n\t't': tab,\n}\n\n// Unquote takes a byte slice and unquotes it by removing\n// the surrounding quotes and unescaping the contents.\nfunc Unquote(s []byte, border byte) (string, bool) {\n\ts, ok := unquoteBytes(s, border)\n\treturn string(s), ok\n}\n\n// unquoteBytes takes a byte slice and unquotes it by removing\nfunc unquoteBytes(s []byte, border byte) ([]byte, bool) {\n\tif len(s) \u003c 2 || s[0] != border || s[len(s)-1] != border {\n\t\treturn nil, false\n\t}\n\n\ts = s[1 : len(s)-1]\n\n\tr := 0\n\tfor r \u003c len(s) {\n\t\tc := s[r]\n\n\t\tif c == backSlash || c == border || c \u003c 0x20 {\n\t\t\tbreak\n\t\t}\n\n\t\tif c \u003c utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\tbreak\n\t\t}\n\n\t\tr += size\n\t}\n\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tutfDoubleMax := utf8.UTFMax * 2\n\tb := make([]byte, len(s)+utfDoubleMax)\n\tw := copy(b, s[0:r])\n\n\tfor r \u003c len(s) {\n\t\tif w \u003e= len(b)-utf8.UTFMax {\n\t\t\tnb := make([]byte, utfDoubleMax+(2*len(b)))\n\t\t\tcopy(nb, b)\n\t\t\tb = nb\n\t\t}\n\n\t\tc := s[r]\n\t\tif c == backSlash {\n\t\t\tr++\n\t\t\tif r \u003e= len(s) {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tif s[r] == 'u' {\n\t\t\t\trr, res := decodeUnicodeEscape(s[r-1:])\n\t\t\t\tif res \u003c 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t\t\tr += 5\n\t\t\t} else {\n\t\t\t\tdecode := escapeByteSet[s[r]]\n\t\t\t\tif decode == 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tif decode == doubleQuote || decode == backSlash || decode == slash {\n\t\t\t\t\tdecode = s[r]\n\t\t\t\t}\n\n\t\t\t\tb[w] = decode\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\t}\n\t\t} else if c == border || c \u003c 0x20 {\n\t\t\treturn nil, false\n\t\t} else if c \u003c utf8.RuneSelf {\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\t\t} else {\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\n\t\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\n\treturn b[:w], true\n}\n\n// processEscapedUTF8 converts escape sequences to UTF-8 characters.\n// It decodes Unicode escape sequences (\\uXXXX) to UTF-8 and\n// converts standard escape sequences (e.g., \\n) to their corresponding special characters.\nfunc processEscapedUTF8(in, out []byte) (int, int, error) {\n\tif len(in) \u003c 2 || in[0] != backSlash {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\tescapeSeqLen := 2\n\tescapeChar := in[1]\n\n\tif escapeChar != 'u' {\n\t\tval := escapeByteSet[escapeChar]\n\t\tif val == 0 {\n\t\t\treturn -1, -1, errInvalidEscapeSequence\n\t\t}\n\n\t\tout[0] = val\n\t\treturn escapeSeqLen, 1, nil\n\t}\n\n\tr, size := decodeUnicodeEscape(in)\n\tif size == -1 {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\toutLen := utf8.EncodeRune(out, r)\n\n\treturn size, outLen, nil\n}\n"},{"name":"escape_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"unicode/utf8\"\n)\n\nfunc TestHexToInt(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tc byte\n\t\twant int\n\t}{\n\t\t{\"Digit 0\", '0', 0},\n\t\t{\"Digit 9\", '9', 9},\n\t\t{\"Uppercase A\", 'A', 10},\n\t\t{\"Uppercase F\", 'F', 15},\n\t\t{\"Lowercase a\", 'a', 10},\n\t\t{\"Lowercase f\", 'f', 15},\n\t\t{\"Invalid character1\", 'g', badHex},\n\t\t{\"Invalid character2\", 'G', badHex},\n\t\t{\"Invalid character3\", 'z', badHex},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := h2i(tt.c); got != tt.want {\n\t\t\t\tt.Errorf(\"h2i() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSurrogatePair(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tr rune\n\t\texpected bool\n\t}{\n\t\t{\"high surrogate start\", 0xD800, true},\n\t\t{\"high surrogate end\", 0xDBFF, true},\n\t\t{\"low surrogate start\", 0xDC00, true},\n\t\t{\"low surrogate end\", 0xDFFF, true},\n\t\t{\"Non-surrogate\", 0x0000, false},\n\t\t{\"Non-surrogate 2\", 0xE000, false},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif got := isSurrogatePair(tc.r); got != tc.expected {\n\t\t\t\tt.Errorf(\"isSurrogate() = %v, want %v\", got, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCombineSurrogates(t *testing.T) {\n\ttestCases := []struct {\n\t\thigh, low rune\n\t\texpected rune\n\t}{\n\t\t{0xD83D, 0xDC36, 0x1F436}, // 🐶 U+1F436 DOG FACE\n\t\t{0xD83D, 0xDE00, 0x1F600}, // 😀 U+1F600 GRINNING FACE\n\t\t{0xD83C, 0xDF03, 0x1F303}, // 🌃 U+1F303 NIGHT WITH STARS\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult := combineSurrogates(tc.high, tc.low)\n\t\tif result != tc.expected {\n\t\t\tt.Errorf(\"combineSurrogates(%U, %U) = %U; want %U\", tc.high, tc.low, result, tc.expected)\n\t\t}\n\t}\n}\n\nfunc TestDecodeSingleUnicodeEscape(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tisValid bool\n\t}{\n\t\t// valid unicode escape sequences\n\t\t{[]byte(`\\u0041`), 'A', true},\n\t\t{[]byte(`\\u03B1`), 'α', true},\n\t\t{[]byte(`\\u00E9`), 'é', true}, // valid non-English character\n\t\t{[]byte(`\\u0021`), '!', true}, // valid special character\n\t\t{[]byte(`\\uFF11`), '1', true},\n\t\t{[]byte(`\\uD83D`), 0xD83D, true},\n\t\t{[]byte(`\\uDE03`), 0xDE03, true},\n\n\t\t// invalid unicode escape sequences\n\t\t{[]byte(`\\u004`), utf8.RuneError, false}, // too short\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, false}, // invalid hex\n\t\t{[]byte(`\\u00G1`), utf8.RuneError, false}, // non-hex character\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult, isValid := decodeSingleUnicodeEscape(tc.input)\n\t\tif result != tc.expected || isValid != tc.isValid {\n\t\t\tt.Errorf(\"decodeSingleUnicodeEscape(%s) = (%U, %v); want (%U, %v)\", tc.input, result, isValid, tc.expected, tc.isValid)\n\t\t}\n\t}\n}\n\nfunc TestDecodeUnicodeEscape(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tsize int\n\t}{\n\t\t{[]byte(`\\u0041`), 'A', 6},\n\t\t{[]byte(`\\uD83D\\uDE00`), 0x1F600, 12}, // 😀\n\t\t{[]byte(`\\uD834\\uDD1E`), 0x1D11E, 12}, // 𝄞\n\t\t{[]byte(`\\uFFFF`), '\\uFFFF', 6},\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, -1},\n\t\t{[]byte(`\\uD800`), utf8.RuneError, -1}, // single high surrogate\n\t\t{[]byte(`\\uDC00`), utf8.RuneError, -1}, // single low surrogate\n\t\t{[]byte(`\\uD800\\uDC00`), 0x10000, 12}, // First code point above U+FFFF\n\t\t{[]byte(`\\uDBFF\\uDFFF`), 0x10FFFF, 12}, // Maximum code point\n\t\t{[]byte(`\\uD83D\\u0041`), utf8.RuneError, -1}, // invalid surrogate pair\n\t}\n\n\tfor _, tc := range tests {\n\t\tr, size := decodeUnicodeEscape(tc.input)\n\t\tif r != tc.expected || size != tc.size {\n\t\t\tt.Errorf(\"decodeUnicodeEscape(%q) = (%U, %d); want (%U, %d)\", tc.input, r, size, tc.expected, tc.size)\n\t\t}\n\t}\n}\n\nfunc TestUnescapeToUTF8(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpectedIn int\n\t\texpectedOut int\n\t\tisError bool\n\t}{\n\t\t// valid escape sequences\n\t\t{[]byte(`\\n`), 2, 1, false},\n\t\t{[]byte(`\\t`), 2, 1, false},\n\t\t{[]byte(`\\u0041`), 6, 1, false},\n\t\t{[]byte(`\\u03B1`), 6, 2, false},\n\t\t{[]byte(`\\uD830\\uDE03`), 12, 4, false},\n\n\t\t// invalid escape sequences\n\t\t{[]byte(`\\`), -1, -1, true}, // incomplete escape sequence\n\t\t{[]byte(`\\x`), -1, -1, true}, // invalid escape character\n\t\t{[]byte(`\\u`), -1, -1, true}, // incomplete unicode escape sequence\n\t\t{[]byte(`\\u004`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uXYZW`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uD83D\\u0041`), -1, -1, true}, // invalid unicode escape sequence\n\t}\n\n\tfor _, tc := range tests {\n\t\tinput := make([]byte, len(tc.input))\n\t\tcopy(input, tc.input)\n\t\toutput := make([]byte, utf8.UTFMax)\n\t\tinLen, outLen, err := processEscapedUTF8(input, output)\n\t\tif (err != nil) != tc.isError {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = %v; want %v\", tc.input, err, tc.isError)\n\t\t}\n\n\t\tif inLen != tc.expectedIn || outLen != tc.expectedOut {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = (%d, %d); want (%d, %d)\", tc.input, inLen, outLen, tc.expectedIn, tc.expectedOut)\n\t\t}\n\t}\n}\n\nfunc TestUnescape(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected []byte\n\t\tisError bool\n\t}{\n\t\t{\"NoEscape\", []byte(\"hello world\"), []byte(\"hello world\"), false},\n\t\t{\"SingleEscape\", []byte(\"hello\\\\nworld\"), []byte(\"hello\\nworld\"), false},\n\t\t{\"MultipleEscapes\", []byte(\"line1\\\\nline2\\\\r\\\\nline3\"), []byte(\"line1\\nline2\\r\\nline3\"), false},\n\t\t{\"UnicodeEscape\", []byte(\"snowman:\\\\u2603\"), []byte(\"snowman:\\u2603\"), false},\n\t\t{\"SurrogatePair\", []byte(\"emoji:\\\\uD83D\\\\uDE00\"), []byte(\"emoji:😀\"), false},\n\t\t{\"InvalidEscape\", []byte(\"hello\\\\xworld\"), nil, true},\n\t\t{\"IncompleteUnicode\", []byte(\"incomplete:\\\\u123\"), nil, true},\n\t\t{\"InvalidSurrogatePair\", []byte(\"invalid:\\\\uD83D\\\\u0041\"), nil, true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\toutput := make([]byte, len(tc.input)*2) // Allocate extra space for possible expansion\n\t\t\tresult, err := Unescape(tc.input, output)\n\t\t\tif (err != nil) != tc.isError {\n\t\t\t\tt.Errorf(\"Unescape(%q) error = %v; want error = %v\", tc.input, err, tc.isError)\n\t\t\t}\n\n\t\t\tif !tc.isError \u0026\u0026 !bytes.Equal(result, tc.expected) {\n\t\t\t\tt.Errorf(\"Unescape(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnquoteBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\tborder byte\n\t\texpected []byte\n\t\tok bool\n\t}{\n\t\t{[]byte(\"\\\"hello\\\"\"), '\"', []byte(\"hello\"), true},\n\t\t{[]byte(\"'hello'\"), '\\'', []byte(\"hello\"), true},\n\t\t{[]byte(\"\\\"hello\"), '\"', nil, false},\n\t\t{[]byte(\"hello\\\"\"), '\"', nil, false},\n\t\t{[]byte(\"\\\"he\\\\\\\"llo\\\"\"), '\"', []byte(\"he\\\"llo\"), true},\n\t\t{[]byte(\"\\\"he\\\\nllo\\\"\"), '\"', []byte(\"he\\nllo\"), true},\n\t\t{[]byte(\"\\\"\\\"\"), '\"', []byte(\"\"), true},\n\t\t{[]byte(\"''\"), '\\'', []byte(\"\"), true},\n\t\t{[]byte(\"\\\"\\\\u0041\\\"\"), '\"', []byte(\"A\"), true},\n\t\t{[]byte(`\"Hello, 世界\"`), '\"', []byte(\"Hello, 世界\"), true},\n\t\t{[]byte(`\"Hello, \\x80\"`), '\"', nil, false},\n\t\t{[]byte(`\"invalid surrogate: \\uD83D\\u0041\"`), '\"', nil, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tresult, pass := unquoteBytes(tc.input, tc.border)\n\n\t\tif pass != tc.ok {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %v; want %v\", tc.input, pass, tc.ok)\n\t\t}\n\n\t\tif !bytes.Equal(result, tc.expected) {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t}\n\t}\n}\n"},{"name":"indent.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// indentGrowthFactor specifies the growth factor of indenting JSON input.\n// A factor no higher than 2 ensures that wasted space never exceeds 50%.\nconst indentGrowthFactor = 2\n\n// IndentJSON formats the JSON data with the specified indentation.\nfunc Indent(data []byte, indent string) ([]byte, error) {\n\tvar (\n\t\tout bytes.Buffer\n\t\tlevel int\n\t\tinArray bool\n\t\tarrayDepth int\n\t)\n\n\tfor i := 0; i \u003c len(data); i++ {\n\t\tc := data[i] // current character\n\n\t\tswitch c {\n\t\tcase bracketOpen:\n\t\t\tarrayDepth++\n\t\t\tif arrayDepth \u003e 1 {\n\t\t\t\tlevel++ // increase the level if it's nested array\n\t\t\t\tinArray = true\n\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// case of the top-level array\n\t\t\t\tinArray = true\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase bracketClose:\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tlevel--\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tarrayDepth--\n\t\t\tif arrayDepth == 0 {\n\t\t\t\tinArray = false\n\t\t\t}\n\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase curlyOpen:\n\t\t\t// check if the empty object or array\n\t\t\t// we don't need to apply the indent when it's empty containers.\n\t\t\tif i+1 \u003c len(data) \u0026\u0026 data[i+1] == curlyClose {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\ti++ // skip next character\n\t\t\t\tif err := out.WriteByte(data[i]); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tlevel++\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase curlyClose:\n\t\t\tlevel--\n\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase comma, colon:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else if c == colon {\n\t\t\t\tif err := out.WriteByte(' '); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out.Bytes(), nil\n}\n\nfunc writeNewlineAndIndent(out *bytes.Buffer, level int, indent string) error {\n\tif err := out.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\n\tidt := strings.Repeat(indent, level*indentGrowthFactor)\n\tif _, err := out.WriteString(idt); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"},{"name":"indent_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\nfunc TestIndentJSON(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\tindent string\n\t\texpected []byte\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tinput: []byte(`{}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`{}`),\n\t\t},\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tinput: []byte(`[]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`[]`),\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tinput: []byte(`{{}}`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"{\\n\\t\\t{}\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"nested array\",\n\t\t\tinput: []byte(`[[[]]]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"[[\\n\\t\\t[\\n\\t\\t\\t\\t\\n\\t\\t]\\n]]\"),\n\t\t},\n\t\t{\n\t\t\tname: \"top-level array\",\n\t\t\tinput: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t},\n\t\t{\n\t\t\tname: \"array of arrays\",\n\t\t\tinput: []byte(`[\"apple\",[\"banana\",\"cherry\"],\"date\"]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"[\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n],\\\"date\\\"]\"),\n\t\t},\n\n\t\t{\n\t\t\tname: \"nested array in object\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"fruits\\\": [\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n ],\\\"date\\\"]\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"complex nested structure\",\n\t\t\tinput: []byte(`{\"data\":{\"array\":[1,2,3],\"bool\":true,\"nestedArray\":[[\"a\",\"b\"],\"c\"]}}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"data\\\": {\\n \\\"array\\\": [1,2,3],\\\"bool\\\": true,\\\"nestedArray\\\": [[\\n \\\"a\\\",\\n \\\"b\\\"\\n ],\\\"c\\\"]\\n }\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"custom ident character\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \"*\",\n\t\t\texpected: []byte(\"{\\n**\\\"fruits\\\": [\\\"apple\\\",[\\n****\\\"banana\\\",\\n****\\\"cherry\\\"\\n**],\\\"date\\\"]\\n}\"),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tactual, err := Indent(tt.input, tt.indent)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"IndentJSON() error = %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !bytes.Equal(actual, tt.expected) {\n\t\t\t\tt.Errorf(\"IndentJSON() = %q, want %q\", actual, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"internal.gno","body":"package json\n\n// Reference: https://github.com/freddierice/php_source/blob/467ed5d6edff72219afd3e644516f131118ef48e/ext/json/JSON_parser.c\n// Copyright (c) 2005 JSON.org\n\n// Go implementation is taken from: https://github.com/spyzhov/ajson/blob/master/internal/state.go\n\ntype (\n\tStates int8 // possible states of the parser\n\tClasses int8 // JSON string character types\n)\n\nconst __ = -1\n\n// enum classes\nconst (\n\tC_SPACE Classes = iota /* space */\n\tC_WHITE /* other whitespace */\n\tC_LCURB /* { */\n\tC_RCURB /* } */\n\tC_LSQRB /* [ */\n\tC_RSQRB /* ] */\n\tC_COLON /* : */\n\tC_COMMA /* , */\n\tC_QUOTE /* \" */\n\tC_BACKS /* \\ */\n\tC_SLASH /* / */\n\tC_PLUS /* + */\n\tC_MINUS /* - */\n\tC_POINT /* . */\n\tC_ZERO /* 0 */\n\tC_DIGIT /* 123456789 */\n\tC_LOW_A /* a */\n\tC_LOW_B /* b */\n\tC_LOW_C /* c */\n\tC_LOW_D /* d */\n\tC_LOW_E /* e */\n\tC_LOW_F /* f */\n\tC_LOW_L /* l */\n\tC_LOW_N /* n */\n\tC_LOW_R /* r */\n\tC_LOW_S /* s */\n\tC_LOW_T /* t */\n\tC_LOW_U /* u */\n\tC_ABCDF /* ABCDF */\n\tC_E /* E */\n\tC_ETC /* everything else */\n)\n\n// AsciiClasses array maps the 128 ASCII characters into character classes.\nvar AsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_QUOTE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n// QuoteAsciiClasses is a HACK for single quote from AsciiClasses\nvar QuoteAsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_QUOTE,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n/*\nThe state codes.\n*/\nconst (\n\tGO States = iota /* start */\n\tOK /* ok */\n\tOB /* object */\n\tKE /* key */\n\tCO /* colon */\n\tVA /* value */\n\tAR /* array */\n\tST /* string */\n\tES /* escape */\n\tU1 /* u1 */\n\tU2 /* u2 */\n\tU3 /* u3 */\n\tU4 /* u4 */\n\tMI /* minus */\n\tZE /* zero */\n\tIN /* integer */\n\tDT /* dot */\n\tFR /* fraction */\n\tE1 /* e */\n\tE2 /* ex */\n\tE3 /* exp */\n\tT1 /* tr */\n\tT2 /* tru */\n\tT3 /* true */\n\tF1 /* fa */\n\tF2 /* fal */\n\tF3 /* fals */\n\tF4 /* false */\n\tN1 /* nu */\n\tN2 /* nul */\n\tN3 /* null */\n)\n\n// List of action codes.\n// these constants are defining an action that should be performed under certain conditions.\nconst (\n\tcl States = -2 /* colon */\n\tcm States = -3 /* comma */\n\tqt States = -4 /* quote */\n\tbo States = -5 /* bracket open */\n\tco States = -6 /* curly bracket open */\n\tbc States = -7 /* bracket close */\n\tcc States = -8 /* curly bracket close */\n\tec States = -9 /* curly bracket empty */\n)\n\n// StateTransitionTable is the state transition table takes the current state and the current symbol, and returns either\n// a new state or an action. An action is represented as a negative number. A JSON text is accepted if at the end of the\n// text the state is OK and if the mode is DONE.\nvar StateTransitionTable = [31][31]States{\n\t/*\n\t The state transition table takes the current state and the current symbol,\n\t and returns either a new state or an action. An action is represented as a\n\t negative number. A JSON text is accepted if at the end of the text the\n\t state is OK and if the mode is DONE.\n\t white 1-9 ABCDF etc\n\t space | { } [ ] : , \" \\ / + - . 0 | a b c d e f l n r s t u | E |*/\n\t/*start GO*/ {GO, GO, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*ok OK*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*object OB*/ {OB, OB, __, ec, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*key KE*/ {KE, KE, __, __, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*colon CO*/ {CO, CO, __, __, __, __, cl, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*value VA*/ {VA, VA, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*array AR*/ {AR, AR, co, __, bo, bc, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*string ST*/ {ST, __, ST, ST, ST, ST, ST, ST, qt, ES, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST},\n\t/*escape ES*/ {__, __, __, __, __, __, __, __, ST, ST, ST, __, __, __, __, __, __, ST, __, __, __, ST, __, ST, ST, __, ST, U1, __, __, __},\n\t/*u1 U1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U2, U2, U2, U2, U2, U2, U2, U2, __, __, __, __, __, __, U2, U2, __},\n\t/*u2 U2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U3, U3, U3, U3, U3, U3, U3, U3, __, __, __, __, __, __, U3, U3, __},\n\t/*u3 U3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U4, U4, U4, U4, U4, U4, U4, U4, __, __, __, __, __, __, U4, U4, __},\n\t/*u4 U4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ST, ST, ST, ST, ST, ST, ST, ST, __, __, __, __, __, __, ST, ST, __},\n\t/*minus MI*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ZE, IN, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*zero ZE*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, __, __, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*int IN*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, IN, IN, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*dot DT*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, FR, FR, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*frac FR*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, FR, FR, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*e E1*/ {__, __, __, __, __, __, __, __, __, __, __, E2, E2, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*ex E2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*exp E3*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*tr T1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T2, __, __, __, __, __, __},\n\t/*tru T2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T3, __, __, __},\n\t/*true T3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*fa F1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F2, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*fal F2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F3, __, __, __, __, __, __, __, __},\n\t/*fals F3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F4, __, __, __, __, __},\n\t/*false F4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*nu N1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N2, __, __, __},\n\t/*nul N2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N3, __, __, __, __, __, __, __, __},\n\t/*null N3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __},\n}\n"},{"name":"node.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Node represents a JSON node.\ntype Node struct {\n\tprev *Node // prev is the parent node of the current node.\n\tnext map[string]*Node // next is the child nodes of the current node.\n\tkey *string // key holds the key of the current node in the parent node.\n\tdata []byte // byte slice of JSON data\n\tvalue interface{} // value holds the value of the current node.\n\tnodeType ValueType // NodeType holds the type of the current node. (Object, Array, String, Number, Boolean, Null)\n\tindex *int // index holds the index of the current node in the parent array node.\n\tborders [2]int // borders stores the start and end index of the current node in the data.\n\tmodified bool // modified indicates the current node is changed or not.\n}\n\n// NewNode creates a new node instance with the given parent node, buffer, type, and key.\nfunc NewNode(prev *Node, b *buffer, typ ValueType, key **string) (*Node, error) {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: b.data,\n\t\tborders: [2]int{b.index, 0},\n\t\tkey: *key,\n\t\tnodeType: typ,\n\t\tmodified: false,\n\t}\n\n\tif typ == Object || typ == Array {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\tif prev != nil {\n\t\tif prev.IsArray() {\n\t\t\tsize := len(prev.next)\n\t\t\tcurr.index = \u0026size\n\n\t\t\tprev.next[strconv.Itoa(size)] = curr\n\t\t} else if prev.IsObject() {\n\t\t\tif key == nil {\n\t\t\t\treturn nil, errKeyRequired\n\t\t\t}\n\n\t\t\tprev.next[**key] = curr\n\t\t} else {\n\t\t\treturn nil, errors.New(\"invalid parent type\")\n\t\t}\n\t}\n\n\treturn curr, nil\n}\n\n// load retrieves the value of the current node.\nfunc (n *Node) load() interface{} {\n\treturn n.value\n}\n\n// Changed checks the current node is changed or not.\nfunc (n *Node) Changed() bool {\n\treturn n.modified\n}\n\n// Key returns the key of the current node.\nfunc (n *Node) Key() string {\n\tif n == nil || n.key == nil {\n\t\treturn \"\"\n\t}\n\n\treturn *n.key\n}\n\n// HasKey checks the current node has the given key or not.\nfunc (n *Node) HasKey(key string) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\t_, ok := n.next[key]\n\treturn ok\n}\n\n// GetKey returns the value of the given key from the current object node.\nfunc (n *Node) GetKey(key string) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.Type() != Object {\n\t\treturn nil, ufmt.Errorf(\"target node is not object type. got: %s\", n.Type().String())\n\t}\n\n\tvalue, ok := n.next[key]\n\tif !ok {\n\t\treturn nil, ufmt.Errorf(\"key not found: %s\", key)\n\t}\n\n\treturn value, nil\n}\n\n// MustKey returns the value of the given key from the current object node.\nfunc (n *Node) MustKey(key string) *Node {\n\tval, err := n.GetKey(key)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// UniqueKeyLists traverses the current JSON nodes and collects all the unique keys.\nfunc (n *Node) UniqueKeyLists() []string {\n\tvar collectKeys func(*Node) []string\n\tcollectKeys = func(node *Node) []string {\n\t\tif node == nil || !node.IsObject() {\n\t\t\treturn nil\n\t\t}\n\n\t\tresult := make(map[string]bool)\n\t\tfor key, childNode := range node.next {\n\t\t\tresult[key] = true\n\t\t\tchildKeys := collectKeys(childNode)\n\t\t\tfor _, childKey := range childKeys {\n\t\t\t\tresult[childKey] = true\n\t\t\t}\n\t\t}\n\n\t\tkeys := make([]string, 0, len(result))\n\t\tfor key := range result {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\treturn keys\n\t}\n\n\treturn collectKeys(n)\n}\n\n// Empty returns true if the current node is empty.\nfunc (n *Node) Empty() bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\treturn len(n.next) == 0\n}\n\n// Type returns the type (ValueType) of the current node.\nfunc (n *Node) Type() ValueType {\n\treturn n.nodeType\n}\n\n// Value returns the value of the current node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tval, err := root.MustKey(\"key\").Value()\n//\tif err != nil {\n//\t\tt.Errorf(\"Value returns error: %v\", err)\n//\t}\n//\n//\tresult: \"value\"\nfunc (n *Node) Value() (value interface{}, err error) {\n\tvalue = n.load()\n\n\tif value == nil {\n\t\tswitch n.nodeType {\n\t\tcase Null:\n\t\t\treturn nil, nil\n\n\t\tcase Number:\n\t\t\tvalue, err = strconv.ParseFloat(string(n.source()), 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase String:\n\t\t\tvar ok bool\n\t\t\tvalue, ok = Unquote(n.source(), doubleQuote)\n\t\t\tif !ok {\n\t\t\t\treturn \"\", errInvalidStringValue\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase Boolean:\n\t\t\tif len(n.source()) == 0 {\n\t\t\t\treturn nil, errEmptyBooleanNode\n\t\t\t}\n\n\t\t\tb := n.source()[0]\n\t\t\tvalue = b == 't' || b == 'T'\n\t\t\tn.value = value\n\n\t\tcase Array:\n\t\t\telems := make([]*Node, len(n.next))\n\n\t\t\tfor _, e := range n.next {\n\t\t\t\telems[*e.index] = e\n\t\t\t}\n\n\t\t\tvalue = elems\n\t\t\tn.value = value\n\n\t\tcase Object:\n\t\t\tobj := make(map[string]*Node, len(n.next))\n\n\t\t\tfor k, v := range n.next {\n\t\t\t\tobj[k] = v\n\t\t\t}\n\n\t\t\tvalue = obj\n\t\t\tn.value = value\n\t\t}\n\t}\n\n\treturn value, nil\n}\n\n// Delete removes the current node from the parent node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err := root.MustKey(\"key\").Delete(); err != nil {\n//\t\tt.Errorf(\"Delete returns error: %v\", err)\n//\t}\n//\n//\tresult: {} (empty object)\nfunc (n *Node) Delete() error {\n\tif n == nil {\n\t\treturn errors.New(\"can't delete nil node\")\n\t}\n\n\tif n.prev == nil {\n\t\treturn nil\n\t}\n\n\treturn n.prev.remove(n)\n}\n\n// Size returns the size (length) of the current array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.Size() != 2 {\n//\t\tt.Errorf(\"ArrayNode returns wrong size: %d\", root.Size())\n//\t}\nfunc (n *Node) Size() int {\n\tif n == nil {\n\t\treturn 0\n\t}\n\n\treturn len(n.next)\n}\n\n// Index returns the index of the current node in the parent array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.MustIndex(1).Index() != 1 {\n//\t\tt.Errorf(\"Index returns wrong index: %d\", root.MustIndex(1).Index())\n//\t}\n//\n// We can also use the index to the byte slice of the JSON data directly.\n//\n// Example:\n//\n//\troot := Unmarshal([]byte(`[\"foo\", 1]`))\n//\tif root == nil {\n//\t\tt.Errorf(\"Unmarshal returns nil\")\n//\t}\n//\n//\tif string(root.MustIndex(1).source()) != \"1\" {\n//\t\tt.Errorf(\"source returns wrong result: %s\", root.MustIndex(1).source())\n//\t}\nfunc (n *Node) Index() int {\n\tif n == nil || n.index == nil {\n\t\treturn -1\n\t}\n\n\treturn *n.index\n}\n\n// MustIndex returns the array element at the given index.\n//\n// If the index is negative, it returns the index is from the end of the array.\n// Also, it panics if the index is not found.\n//\n// check the Index method for detailed usage.\nfunc (n *Node) MustIndex(expectIdx int) *Node {\n\tval, err := n.GetIndex(expectIdx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// GetIndex returns the array element at the given index.\n//\n// if the index is negative, it returns the index is from the end of the array.\nfunc (n *Node) GetIndex(idx int) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsArray() {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tif idx \u003e n.Size() {\n\t\treturn nil, errors.New(\"input index exceeds the array size\")\n\t}\n\n\tif idx \u003c 0 {\n\t\tidx += len(n.next)\n\t}\n\n\tchild, ok := n.next[strconv.Itoa(idx)]\n\tif !ok {\n\t\treturn nil, errIndexNotFound\n\t}\n\n\treturn child, nil\n}\n\n// DeleteIndex removes the array element at the given index.\nfunc (n *Node) DeleteIndex(idx int) error {\n\tnode, err := n.GetIndex(idx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn n.remove(node)\n}\n\n// NullNode creates a new null type node.\n//\n// Usage:\n//\n//\t_ := NullNode(\"\")\nfunc NullNode(key string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: nil,\n\t\tnodeType: Null,\n\t\tmodified: true,\n\t}\n}\n\n// NumberNode creates a new number type node.\n//\n// Usage:\n//\n//\troot := NumberNode(\"\", 1)\n//\tif root == nil {\n//\t\tt.Errorf(\"NumberNode returns nil\")\n//\t}\nfunc NumberNode(key string, value float64) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Number,\n\t\tmodified: true,\n\t}\n}\n\n// StringNode creates a new string type node.\n//\n// Usage:\n//\n//\troot := StringNode(\"\", \"foo\")\n//\tif root == nil {\n//\t\tt.Errorf(\"StringNode returns nil\")\n//\t}\nfunc StringNode(key string, value string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: String,\n\t\tmodified: true,\n\t}\n}\n\n// BoolNode creates a new given boolean value node.\n//\n// Usage:\n//\n//\troot := BoolNode(\"\", true)\n//\tif root == nil {\n//\t\tt.Errorf(\"BoolNode returns nil\")\n//\t}\nfunc BoolNode(key string, value bool) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Boolean,\n\t\tmodified: true,\n\t}\n}\n\n// ArrayNode creates a new array type node.\n//\n// If the given value is nil, it creates an empty array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\nfunc ArrayNode(key string, value []*Node) *Node {\n\tcurr := \u0026Node{\n\t\tkey: \u0026key,\n\t\tnodeType: Array,\n\t\tmodified: true,\n\t}\n\n\tcurr.next = make(map[string]*Node, len(value))\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor i, v := range value {\n\t\t\tidx := i\n\t\t\tcurr.next[strconv.Itoa(i)] = v\n\n\t\t\tv.prev = curr\n\t\t\tv.index = \u0026idx\n\t\t}\n\t}\n\n\treturn curr\n}\n\n// ObjectNode creates a new object type node.\n//\n// If the given value is nil, it creates an empty object node.\n//\n// next is a map of key and value pairs of the object.\nfunc ObjectNode(key string, value map[string]*Node) *Node {\n\tcurr := \u0026Node{\n\t\tnodeType: Object,\n\t\tkey: \u0026key,\n\t\tnext: value,\n\t\tmodified: true,\n\t}\n\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor key, val := range value {\n\t\t\tvkey := key\n\t\t\tval.prev = curr\n\t\t\tval.key = \u0026vkey\n\t\t}\n\t} else {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\treturn curr\n}\n\n// IsArray returns true if the current node is array type.\nfunc (n *Node) IsArray() bool {\n\treturn n.nodeType == Array\n}\n\n// IsObject returns true if the current node is object type.\nfunc (n *Node) IsObject() bool {\n\treturn n.nodeType == Object\n}\n\n// IsNull returns true if the current node is null type.\nfunc (n *Node) IsNull() bool {\n\treturn n.nodeType == Null\n}\n\n// IsBool returns true if the current node is boolean type.\nfunc (n *Node) IsBool() bool {\n\treturn n.nodeType == Boolean\n}\n\n// IsString returns true if the current node is string type.\nfunc (n *Node) IsString() bool {\n\treturn n.nodeType == String\n}\n\n// IsNumber returns true if the current node is number type.\nfunc (n *Node) IsNumber() bool {\n\treturn n.nodeType == Number\n}\n\n// ready checks the current node is ready or not.\n//\n// the meaning of ready is the current node is parsed and has a valid value.\nfunc (n *Node) ready() bool {\n\treturn n.borders[1] != 0\n}\n\n// source returns the source of the current node.\nfunc (n *Node) source() []byte {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified \u0026\u0026 n.data != nil {\n\t\treturn (n.data)[n.borders[0]:n.borders[1]]\n\t}\n\n\treturn nil\n}\n\n// root returns the root node of the current node.\nfunc (n *Node) root() *Node {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tcurr := n\n\tfor curr.prev != nil {\n\t\tcurr = curr.prev\n\t}\n\n\treturn curr\n}\n\n// GetNull returns the null value if current node is null type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"null\"))\n//\tval, err := root.GetNull()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNull returns error: %v\", err)\n//\t}\n//\tif val != nil {\n//\t\tt.Errorf(\"GetNull returns wrong result: %v\", val)\n//\t}\nfunc (n *Node) GetNull() (interface{}, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsNull() {\n\t\treturn nil, errNotNullNode\n\t}\n\n\treturn nil, nil\n}\n\n// MustNull returns the null value if current node is null type.\n//\n// It panics if the current node is not null type.\nfunc (n *Node) MustNull() interface{} {\n\tv, err := n.GetNull()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetNumeric returns the numeric (int/float) value if current node is number type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"10.5\"))\n//\tval, err := root.GetNumeric()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNumeric returns error: %v\", err)\n//\t}\n//\tprintln(val) // 10.5\nfunc (n *Node) GetNumeric() (float64, error) {\n\tif n == nil {\n\t\treturn 0, errNilNode\n\t}\n\n\tif n.nodeType != Number {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tv, ok := val.(float64)\n\tif !ok {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\treturn v, nil\n}\n\n// MustNumeric returns the numeric (int/float) value if current node is number type.\n//\n// It panics if the current node is not number type.\nfunc (n *Node) MustNumeric() float64 {\n\tv, err := n.GetNumeric()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetString returns the string value if current node is string type.\n//\n// Usage:\n//\n//\troot, err := Unmarshal([]byte(\"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n//\t}\n//\n//\tstr, err := root.GetString()\n//\tif err != nil {\n//\t\tt.Errorf(\"should retrieve string value: %s\", err)\n//\t}\n//\n//\tprintln(str) // \"foo\"\nfunc (n *Node) GetString() (string, error) {\n\tif n == nil {\n\t\treturn \"\", errEmptyStringNode\n\t}\n\n\tif !n.IsString() {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tv, ok := val.(string)\n\tif !ok {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\treturn v, nil\n}\n\n// MustString returns the string value if current node is string type.\n//\n// It panics if the current node is not string type.\nfunc (n *Node) MustString() string {\n\tv, err := n.GetString()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetBool returns the boolean value if current node is boolean type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"true\"))\n//\tval, err := root.GetBool()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetBool returns error: %v\", err)\n//\t}\n//\tprintln(val) // true\nfunc (n *Node) GetBool() (bool, error) {\n\tif n == nil {\n\t\treturn false, errNilNode\n\t}\n\n\tif n.nodeType != Boolean {\n\t\treturn false, errNotBoolNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tv, ok := val.(bool)\n\tif !ok {\n\t\treturn false, errNotBoolNode\n\t}\n\n\treturn v, nil\n}\n\n// MustBool returns the boolean value if current node is boolean type.\n//\n// It panics if the current node is not boolean type.\nfunc (n *Node) MustBool() bool {\n\tv, err := n.GetBool()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetArray returns the array value if current node is array type.\n//\n// Usage:\n//\n//\t\troot := Must(Unmarshal([]byte(`[\"foo\", 1]`)))\n//\t\tarr, err := root.GetArray()\n//\t\tif err != nil {\n//\t\t\tt.Errorf(\"GetArray returns error: %v\", err)\n//\t\t}\n//\n//\t\tfor _, val := range arr {\n//\t\t\tprintln(val)\n//\t\t}\n//\n//\t result: \"foo\", 1\nfunc (n *Node) GetArray() ([]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.nodeType != Array {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.([]*Node)\n\tif !ok {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\treturn v, nil\n}\n\n// MustArray returns the array value if current node is array type.\n//\n// It panics if the current node is not array type.\nfunc (n *Node) MustArray() []*Node {\n\tv, err := n.GetArray()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendArray appends the given values to the current array node.\n//\n// If the current node is not array type, it returns an error.\n//\n// Example 1:\n//\n//\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n//\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n//\t\tt.Errorf(\"should not return error: %s\", err)\n//\t}\n//\n//\tresult: [{\"foo\":\"bar\"}, null]\n//\n// Example 2:\n//\n//\troot := Must(Unmarshal([]byte(`[\"bar\", \"baz\"]`)))\n//\terr := root.AppendArray(NumberNode(\"\", 1), StringNode(\"\", \"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n//\t }\n//\n//\tresult: [\"bar\", \"baz\", 1, \"foo\"]\nfunc (n *Node) AppendArray(value ...*Node) error {\n\tif !n.IsArray() {\n\t\treturn errInvalidAppend\n\t}\n\n\tfor _, val := range value {\n\t\tif err := n.append(nil, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ArrayEach executes the callback for each element in the JSON array.\n//\n// Usage:\n//\n//\tjsonArrayNode.ArrayEach(func(i int, valueNode *Node) {\n//\t ufmt.Println(i, valueNode)\n//\t})\nfunc (n *Node) ArrayEach(callback func(i int, target *Node)) {\n\tif n == nil || !n.IsArray() {\n\t\treturn\n\t}\n\n\tfor idx := 0; idx \u003c len(n.next); idx++ {\n\t\telement, err := n.GetIndex(idx)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tcallback(idx, element)\n\t}\n}\n\n// GetObject returns the object value if current node is object type.\n//\n// Usage:\n//\n//\troot := Must(Unmarshal([]byte(`{\"key\": \"value\"}`)))\n//\tobj, err := root.GetObject()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetObject returns error: %v\", err)\n//\t}\n//\n//\tresult: map[string]*Node{\"key\": StringNode(\"key\", \"value\")}\nfunc (n *Node) GetObject() (map[string]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsObject() {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.(map[string]*Node)\n\tif !ok {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\treturn v, nil\n}\n\n// MustObject returns the object value if current node is object type.\n//\n// It panics if the current node is not object type.\nfunc (n *Node) MustObject() map[string]*Node {\n\tv, err := n.GetObject()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendObject appends the given key and value to the current object node.\n//\n// If the current node is not object type, it returns an error.\nfunc (n *Node) AppendObject(key string, value *Node) error {\n\tif !n.IsObject() {\n\t\treturn errInvalidAppend\n\t}\n\n\tif err := n.append(\u0026key, value); err != nil {\n\t\treturn err\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ObjectEach executes the callback for each key-value pair in the JSON object.\n//\n// Usage:\n//\n//\tjsonObjectNode.ObjectEach(func(key string, valueNode *Node) {\n//\t ufmt.Println(key, valueNode)\n//\t})\nfunc (n *Node) ObjectEach(callback func(key string, value *Node)) {\n\tif n == nil || !n.IsObject() {\n\t\treturn\n\t}\n\n\tfor key, child := range n.next {\n\t\tcallback(key, child)\n\t}\n}\n\n// String converts the node to a string representation.\nfunc (n *Node) String() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified {\n\t\treturn string(n.source())\n\t}\n\n\tval, err := Marshal(n)\n\tif err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\n\treturn string(val)\n}\n\n// Path builds the path of the current node.\n//\n// For example:\n//\n//\t{ \"key\": { \"sub\": [ \"val1\", \"val2\" ] }}\n//\n// The path of \"val2\" is: $.key.sub[1]\nfunc (n *Node) Path() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif n.prev == nil {\n\t\tsb.WriteString(\"$\")\n\t} else {\n\t\tsb.WriteString(n.prev.Path())\n\n\t\tif n.key != nil {\n\t\t\tsb.WriteString(\"['\" + n.Key() + \"']\")\n\t\t} else {\n\t\t\tsb.WriteString(\"[\" + strconv.Itoa(n.Index()) + \"]\")\n\t\t}\n\t}\n\n\treturn sb.String()\n}\n\n// mark marks the current node as modified.\nfunc (n *Node) mark() {\n\tnode := n\n\tfor node != nil \u0026\u0026 !node.modified {\n\t\tnode.modified = true\n\t\tnode = node.prev\n\t}\n}\n\n// isContainer checks the current node type is array or object.\nfunc (n *Node) isContainer() bool {\n\treturn n.IsArray() || n.IsObject()\n}\n\n// remove removes the value from the current container type node.\nfunc (n *Node) remove(v *Node) error {\n\tif !n.isContainer() {\n\t\treturn ufmt.Errorf(\n\t\t\t\"can't remove value from non-array or non-object node. got=%s\",\n\t\t\tn.Type().String(),\n\t\t)\n\t}\n\n\tif v.prev != n {\n\t\treturn errors.New(\"invalid parent node\")\n\t}\n\n\tn.mark()\n\tif n.IsArray() {\n\t\tdelete(n.next, strconv.Itoa(*v.index))\n\t\tn.dropIndex(*v.index)\n\t} else {\n\t\tdelete(n.next, *v.key)\n\t}\n\n\tv.prev = nil\n\treturn nil\n}\n\n// dropIndex rebase the index of current array node values.\nfunc (n *Node) dropIndex(idx int) {\n\tfor i := idx + 1; i \u003c= len(n.next); i++ {\n\t\tprv := i - 1\n\t\tif curr, ok := n.next[strconv.Itoa(i)]; ok {\n\t\t\tcurr.index = \u0026prv\n\t\t\tn.next[strconv.Itoa(prv)] = curr\n\t\t}\n\n\t\tdelete(n.next, strconv.Itoa(i))\n\t}\n}\n\n// append is a helper function to append the given value to the current container type node.\nfunc (n *Node) append(key *string, val *Node) error {\n\tif n.isSameOrParentNode(val) {\n\t\treturn errInvalidAppendCycle\n\t}\n\n\tif val.prev != nil {\n\t\tif err := val.prev.remove(val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tval.prev = n\n\tval.key = key\n\n\tif key == nil {\n\t\tsize := len(n.next)\n\t\tval.index = \u0026size\n\t\tn.next[strconv.Itoa(size)] = val\n\t} else {\n\t\tif old, ok := n.next[*key]; ok {\n\t\t\tif err := n.remove(old); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tn.next[*key] = val\n\t}\n\n\treturn nil\n}\n\nfunc (n *Node) isSameOrParentNode(nd *Node) bool {\n\treturn n == nd || n.isParentNode(nd)\n}\n\nfunc (n *Node) isParentNode(nd *Node) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\tfor curr := nd.prev; curr != nil; curr = curr.prev {\n\t\tif curr == n {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// cptrs returns the pointer of the given string value.\nfunc cptrs(cpy *string) *string {\n\tif cpy == nil {\n\t\treturn nil\n\t}\n\n\tval := *cpy\n\n\treturn \u0026val\n}\n\n// cptri returns the pointer of the given integer value.\nfunc cptri(i *int) *int {\n\tif i == nil {\n\t\treturn nil\n\t}\n\n\tval := *i\n\treturn \u0026val\n}\n\n// Must panics if the given node is not fulfilled the expectation.\n// Usage:\n//\n//\tnode := Must(Unmarshal([]byte(`{\"key\": \"value\"}`))\nfunc Must(root *Node, expect error) *Node {\n\tif expect != nil {\n\t\tpanic(expect)\n\t}\n\n\treturn root\n}\n"},{"name":"node_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tnilKey *string\n\tdummyKey = \"key\"\n)\n\ntype _args struct {\n\tprev *Node\n\tbuf *buffer\n\ttyp ValueType\n\tkey **string\n}\n\ntype simpleNode struct {\n\tname string\n\tnode *Node\n}\n\nfunc TestNode_CreateNewNode(t *testing.T) {\n\trel := \u0026dummyKey\n\n\ttests := []struct {\n\t\tname string\n\t\targs _args\n\t\texpectCurr *Node\n\t\texpectErr bool\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\tname: \"child for non container type\",\n\t\t\targs: _args{\n\t\t\t\tprev: BoolNode(\"\", true),\n\t\t\t\tbuf: newBuffer(make([]byte, 10)),\n\t\t\t\ttyp: Boolean,\n\t\t\t\tkey: \u0026rel,\n\t\t\t},\n\t\t\texpectCurr: nil,\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tif tt.expectPanic {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tt.Errorf(\"%s panic occurred when not expected: %v\", tt.name, r)\n\t\t\t\t} else if tt.expectPanic {\n\t\t\t\t\tt.Errorf(\"%s expected panic but didn't occur\", tt.name)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\tgot, err := NewNode(tt.args.prev, tt.args.buf, tt.args.typ, tt.args.key)\n\t\t\tif (err != nil) != tt.expectErr {\n\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.expectErr)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif tt.expectErr {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !compareNodes(got, tt.expectCurr) {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expectCurr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Value(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\t_type ValueType\n\t\texpected interface{}\n\t\terrExpected bool\n\t}{\n\t\t{name: \"null\", data: []byte(\"null\"), _type: Null, expected: nil},\n\t\t{name: \"1\", data: []byte(\"1\"), _type: Number, expected: float64(1)},\n\t\t{name: \".1\", data: []byte(\".1\"), _type: Number, expected: float64(.1)},\n\t\t{name: \"-.1e1\", data: []byte(\"-.1e1\"), _type: Number, expected: float64(-1)},\n\t\t{name: \"string\", data: []byte(\"\\\"foo\\\"\"), _type: String, expected: \"foo\"},\n\t\t{name: \"space\", data: []byte(\"\\\"foo bar\\\"\"), _type: String, expected: \"foo bar\"},\n\t\t{name: \"true\", data: []byte(\"true\"), _type: Boolean, expected: true},\n\t\t{name: \"invalid true\", data: []byte(\"tru\"), _type: Unknown, errExpected: true},\n\t\t{name: \"invalid false\", data: []byte(\"fals\"), _type: Unknown, errExpected: true},\n\t\t{name: \"false\", data: []byte(\"false\"), _type: Boolean, expected: false},\n\t\t{name: \"e1\", data: []byte(\"e1\"), _type: Unknown, errExpected: true},\n\t\t{name: \"1a\", data: []byte(\"1a\"), _type: Unknown, errExpected: true},\n\t\t{name: \"string error\", data: []byte(\"\\\"foo\\nbar\\\"\"), _type: String, errExpected: true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tcurr := \u0026Node{\n\t\t\t\tdata: tt.data,\n\t\t\t\tnodeType: tt._type,\n\t\t\t\tborders: [2]int{0, len(tt.data)},\n\t\t\t}\n\n\t\t\tgot, err := curr.Value()\n\t\t\tif err != nil {\n\t\t\t\tif !tt.errExpected {\n\t\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.errExpected)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Delete(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{\"foo\":\"bar\"}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tfoo := root.MustKey(\"foo\")\n\tif err := foo.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error while handling foo: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif value, err := Marshal(foo); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `\"bar\"` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif foo.prev != nil {\n\t\tt.Errorf(\"foo.prev should be nil\")\n\t}\n}\n\nfunc TestNode_ObjectNode(t *testing.T) {\n\tobjs := map[string]*Node{\n\t\t\"key1\": NullNode(\"null\"),\n\t\t\"key2\": NumberNode(\"answer\", 42),\n\t\t\"key3\": StringNode(\"string\", \"foobar\"),\n\t\t\"key4\": BoolNode(\"bool\", true),\n\t}\n\n\tnode := ObjectNode(\"test\", objs)\n\n\tif len(node.next) != len(objs) {\n\t\tt.Errorf(\"ObjectNode: want %v got %v\", len(objs), len(node.next))\n\t}\n\n\tfor k, v := range objs {\n\t\tif node.next[k] == nil {\n\t\t\tt.Errorf(\"ObjectNode: want %v got %v\", v, node.next[k])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendObject(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`{\"foo\":\"bar\",\"baz\":null}`))).AppendObject(\"biz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendArray should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.AppendObject(\"baz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendObject should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if isSameObject(string(value), `\"{\"foo\":\"bar\",\"baz\":null}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif err := root.AppendObject(\"biz\", NumberNode(\"\", 42)); err != nil {\n\t\tt.Errorf(\"AppendObject returns error: %v\", err)\n\t}\n\n\tval, err := Marshal(root)\n\tif err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif isSameObject(string(val), `\"{\"foo\":\"bar\",\"baz\":null,\"biz\":42}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(val))\n\t}\n}\n\nfunc TestNode_ArrayNode(t *testing.T) {\n\tarr := []*Node{\n\t\tNullNode(\"nil\"),\n\t\tNumberNode(\"num\", 42),\n\t\tStringNode(\"str\", \"foobar\"),\n\t\tBoolNode(\"bool\", true),\n\t}\n\n\tnode := ArrayNode(\"test\", arr)\n\n\tif len(node.next) != len(arr) {\n\t\tt.Errorf(\"ArrayNode: want %v got %v\", len(arr), len(node.next))\n\t}\n\n\tfor i, v := range arr {\n\t\tif node.next[strconv.Itoa(i)] == nil {\n\t\t\tt.Errorf(\"ArrayNode: want %v got %v\", v, node.next[strconv.Itoa(i)])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendArray(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`))).AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif err := root.AppendArray(\n\t\tNumberNode(\"\", 1),\n\t\tStringNode(\"\", \"foo\"),\n\t\tMust(Unmarshal([]byte(`[0,1,null,true,\"example\"]`))),\n\t\tMust(Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123}`))),\n\t); err != nil {\n\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null,1,\"foo\",[0,1,null,true,\"example\"],{\"foo\": true, \"bar\": null, \"baz\": 123}]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n}\n\n/******** value getter ********/\n\nfunc TestNode_GetBool(t *testing.T) {\n\troot, err := Unmarshal([]byte(`true`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetBool()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetBool(): %s\", err.Error())\n\t}\n\n\tif !value {\n\t\tt.Errorf(\"root.GetBool() is corrupted\")\n\t}\n}\n\nfunc TestNode_GetBool_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"literally null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetBool(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"true\", BoolNode(\"\", true)},\n\t\t{\"false\", BoolNode(\"\", false)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif !tt.node.IsBool() {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool_With_Unmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson []byte\n\t\twant bool\n\t}{\n\t\t{\"true\", []byte(\"true\"), true},\n\t\t{\"false\", []byte(\"false\"), true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.json)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\t\t}\n\n\t\t\tif root.IsBool() != tt.want {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nvar nullJson = []byte(`null`)\n\nfunc TestNode_GetNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue, err := root.GetNull()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting null, %s\", err)\n\t}\n\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNull_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"number node is null\", NumberNode(\"\", 42)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNull(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue := root.MustNull()\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNumeric_Float(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123.456`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123.456) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123.456, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Scientific_Notation(t *testing.T) {\n\troot, err := Unmarshal([]byte(`1e3`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(1000) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 1000, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_With_Unmarshal(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"string node\", StringNode(\"\", \"123\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNumeric(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetString(t *testing.T) {\n\troot, err := Unmarshal([]byte(`\"123foobar 3456\"`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t}\n\n\tvalue, err := root.GetString()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetString(): %s\", err)\n\t}\n\n\tif value != \"123foobar 3456\" {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %s\", value))\n\t}\n}\n\nfunc TestNode_GetString_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetString(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t}{\n\t\t{\"foo\", []byte(`\"foo\"`)},\n\t\t{\"foo bar\", []byte(`\"foo bar\"`)},\n\t\t{\"\", []byte(`\"\"`)},\n\t\t{\"안녕하세요\", []byte(`\"안녕하세요\"`)},\n\t\t{\"こんにちは\", []byte(`\"こんにちは\"`)},\n\t\t{\"你好\", []byte(`\"你好\"`)},\n\t\t{\"one \\\"encoded\\\" string\", []byte(`\"one \\\"encoded\\\" string\"`)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.data)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\t\t}\n\n\t\t\tvalue := root.MustString()\n\t\t\tif value != tt.name {\n\t\t\t\tt.Errorf(\"value is not matched. expected: %s, got: %s\", tt.name, value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_Array(t *testing.T) {\n\troot, err := Unmarshal([]byte(\" [1,[\\\"1\\\",[1,[1,2,3]]]]\\r\\n\"))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t}\n\n\tif root == nil {\n\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(\"Error on Unmarshal: wrong type\")\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err)\n\t} else if len(array) != 2 {\n\t\tt.Errorf(\"expected 2 elements, got %d\", len(array))\n\t} else if val, err := array[0].GetNumeric(); err != nil {\n\t\tt.Errorf(\"value of array[0] is not numeric. got: %v\", array[0].value)\n\t} else if val != 1 {\n\t\tt.Errorf(\"Error on array[0].GetNumeric(): expected to be '1', got: %v\", val)\n\t} else if val, err := array[1].GetArray(); err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err.Error())\n\t} else if len(val) != 2 {\n\t\tt.Errorf(\"Error on array[1].GetArray(): expected 2 elements, got %d\", len(val))\n\t} else if el, err := val[0].GetString(); err != nil {\n\t\tt.Errorf(\"error occurred while getting string, %s\", err.Error())\n\t} else if el != \"1\" {\n\t\tt.Errorf(\"Error on val[0].GetString(): expected to be '1', got: %s\", el)\n\t}\n}\n\nvar sampleArr = []byte(`[-1, 2, 3, 4, 5, 6]`)\n\nfunc TestNode_GetArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetArray(): %s\", err)\n\t}\n\n\tif len(array) != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"length is not matched. expected: 3, got: %d\", len(array)))\n\t}\n\n\tfor i, node := range array {\n\t\tfor j, val := range []int{-1, 2, 3, 4, 5, 6} {\n\t\t\tif i == j {\n\t\t\t\tif v, err := node.GetNumeric(); err != nil {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"Error on node.GetNumeric(): %s\", err))\n\t\t\t\t} else if v != float64(val) {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: %d, got: %v\", val, v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNode_GetArray_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetArray(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(ufmt.Sprintf(\"Must be an array. got: %s\", root.Type().String()))\n\t}\n}\n\nfunc TestNode_ArrayEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []int\n\t}{\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tjson: `[]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"single element\",\n\t\t\tjson: `[42]`,\n\t\t\texpected: []int{42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements\",\n\t\t\tjson: `[1, 2, 3, 4, 5]`,\n\t\t\texpected: []int{1, 2, 3, 4, 5},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements but all values are same\",\n\t\t\tjson: `[1, 1, 1, 1, 1]`,\n\t\t\texpected: []int{1, 1, 1, 1, 1},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements with non-numeric values\",\n\t\t\tjson: `[\"a\", \"b\", \"c\", \"d\", \"e\"]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"non-array node\",\n\t\t\tjson: `{\"not\": \"an array\"}`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"array containing numeric and non-numeric elements\",\n\t\t\tjson: `[\"1\", 2, 3, \"4\", 5, \"6\"]`,\n\t\t\texpected: []int{2, 3, 5},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tvar result []int // callback result\n\t\t\troot.ArrayEach(func(index int, element *Node) {\n\t\t\t\tif val, err := strconv.Atoi(element.String()); err == nil {\n\t\t\t\t\tresult = append(result, val)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d elements, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor i, val := range result {\n\t\t\t\tif val != tc.expected[i] {\n\t\t\t\t\tt.Errorf(\"%s: expected value at index %d to be %d, got %d\", tc.name, i, tc.expected[i], val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Key(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123, \"biz\": [1,2,3]}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tobj := root.MustObject()\n\tfor key, node := range obj {\n\t\tif key != node.Key() {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", node.Key(), key)\n\t\t}\n\t}\n\n\tkeys := []string{\"foo\", \"bar\", \"baz\", \"biz\"}\n\tfor _, key := range keys {\n\t\tif obj[key].Key() != key {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", obj[key].Key(), key)\n\t\t}\n\t}\n\n\t// TODO: resolve stack overflow\n\t// if root.MustKey(\"foo\").Clone().Key() != \"\" {\n\t// \tt.Errorf(\"wrong key found for cloned key\")\n\t// }\n\n\tif (*Node)(nil).Key() != \"\" {\n\t\tt.Errorf(\"wrong key found for nil node\")\n\t}\n}\n\nfunc TestNode_Size(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tsize := root.Size()\n\tif size != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 6. got: %v\", size))\n\t}\n\n\tif (*Node)(nil).Size() != 0 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 0. got: %v\", (*Node)(nil).Size()))\n\t}\n}\n\nfunc TestNode_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tarr := root.MustArray()\n\tfor i, node := range arr {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_Index_Fail(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant int\n\t}{\n\t\t{\"nil node\", (*Node)(nil), -1},\n\t\t{\"null node\", NullNode(\"\"), -1},\n\t\t{\"object node\", ObjectNode(\"\", nil), -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Index(); got != tt.want {\n\t\t\t\tt.Errorf(\"Index() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetIndex(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`)))\n\texpected := []int{1, 2, 3, 4, 5, 6}\n\n\tif len(expected) != root.Size() {\n\t\tt.Errorf(\"length is not matched. expected: %d, got: %d\", len(expected), root.Size())\n\t}\n\n\t// TODO: if length exceeds, stack overflow occurs. need to fix\n\tfor i, v := range expected {\n\t\tval, err := root.GetIndex(i)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"error occurred while getting index %d, %s\", i, err)\n\t\t}\n\n\t\tif val.MustNumeric() != float64(v) {\n\t\t\tt.Errorf(\"value is not matched. expected: %d, got: %v\", v, val.MustNumeric())\n\t\t}\n\t}\n}\n\nfunc TestNode_GetIndex_InputIndex_Exceed_Original_Node_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\t_, err = root.GetIndex(10)\n\tif err == nil {\n\t\tt.Errorf(\"GetIndex should return error\")\n\t}\n}\n\nfunc TestNode_DeleteIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\texpected string\n\t\tindex int\n\t\tok bool\n\t}{\n\t\t{`null`, ``, 0, false},\n\t\t{`1`, ``, 0, false},\n\t\t{`{}`, ``, 0, false},\n\t\t{`{\"foo\":\"bar\"}`, ``, 0, false},\n\t\t{`true`, ``, 0, false},\n\t\t{`[]`, ``, 0, false},\n\t\t{`[]`, ``, -1, false},\n\t\t{`[1]`, `[]`, 0, true},\n\t\t{`[{}]`, `[]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, -1, true},\n\t\t{`[{}, [], 42]`, `[[], 42]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, 42]`, 1, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, 2, true},\n\t\t{`[{}, [], 42]`, ``, 10, false},\n\t\t{`[{}, [], 42]`, ``, -10, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot := Must(Unmarshal([]byte(tt.name)))\n\t\t\terr := root.DeleteIndex(tt.index)\n\t\t\tif err != nil \u0026\u0026 tt.ok {\n\t\t\t\tt.Errorf(\"DeleteIndex returns error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetKey(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tvalue, err := root.GetKey(\"foo\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\tif value.MustBool() != true {\n\t\tt.Errorf(\"value is not matched. expected: true, got: %v\", value.MustBool())\n\t}\n\n\tvalue, err = root.GetKey(\"bar\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\t_, err = root.GetKey(\"baz\")\n\tif err == nil {\n\t\tt.Errorf(\"key baz is not exist. must be failed\")\n\t}\n\n\tif value.MustNull() != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value.MustNull())\n\t}\n}\n\nfunc TestNode_GetKey_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetKey(\"\"); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetUniqueKeyList(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname: \"simple foo/bar\",\n\t\t\tjson: `{\"foo\": true, \"bar\": null}`,\n\t\t\texpected: []string{\"foo\", \"bar\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tjson: `{\n\t\t\t\t\"outer\": {\n\t\t\t\t\t\"inner\": {\n\t\t\t\t\t\t\"key\": \"value\"\n\t\t\t\t\t},\n\t\t\t\t\t\"array\": [1, 2, 3]\n\t\t\t\t},\n\t\t\t\t\"another\": \"item\"\n\t\t\t}`,\n\t\t\texpected: []string{\"outer\", \"inner\", \"key\", \"array\", \"another\"},\n\t\t},\n\t\t{\n\t\t\tname: \"complex object\",\n\t\t\tjson: `{\n\t\t\t\t\"Image\": {\n\t\t\t\t\t\"Width\": 800,\n\t\t\t\t\t\"Height\": 600,\n\t\t\t\t\t\"Title\": \"View from 15th Floor\",\n\t\t\t\t\t\"Thumbnail\": {\n\t\t\t\t\t\t\"Url\": \"http://www.example.com/image/481989943\",\n\t\t\t\t\t\t\"Height\": 125,\n\t\t\t\t\t\t\"Width\": 100\n\t\t\t\t\t},\n\t\t\t\t\t\"Animated\": false,\n\t\t\t\t\t\"IDs\": [116, 943, 234, 38793]\n\t\t\t\t}\n\t\t\t}`,\n\t\t\texpected: []string{\"Image\", \"Width\", \"Height\", \"Title\", \"Thumbnail\", \"Url\", \"Animated\", \"IDs\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tt.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"error occurred while unmarshal\")\n\t\t\t}\n\n\t\t\tvalue := root.UniqueKeyLists()\n\t\t\tif len(value) != len(tt.expected) {\n\t\t\t\tt.Errorf(\"%s length must be %v. got: %v. retrieved keys: %s\", tt.name, len(tt.expected), len(value), value)\n\t\t\t}\n\n\t\t\tfor _, key := range value {\n\t\t\t\tif !contains(tt.expected, key) {\n\t\t\t\t\tt.Errorf(\"EachKey() must be in %v. got: %v\", tt.expected, key)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: resolve stack overflow\nfunc TestNode_IsEmpty(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\texpected bool\n\t}{\n\t\t{\"nil node\", (*Node)(nil), false}, // nil node is not empty.\n\t\t// {\"null node\", NullNode(\"\"), true},\n\t\t{\"empty object\", ObjectNode(\"\", nil), true},\n\t\t{\"empty array\", ArrayNode(\"\", nil), true},\n\t\t{\"non-empty object\", ObjectNode(\"\", map[string]*Node{\"foo\": BoolNode(\"foo\", true)}), false},\n\t\t{\"non-empty array\", ArrayNode(\"\", []*Node{BoolNode(\"0\", true)}), false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Empty(); got != tt.expected {\n\t\t\t\tt.Errorf(\"%s = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Index_EmptyList(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tarray := root.MustArray()\n\tfor i, node := range array {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_GetObject(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true,\"bar\": null}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetObject()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetObject(): %s\", err.Error())\n\t}\n\n\tif _, ok := value[\"foo\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: foo\")\n\t}\n\n\tif _, ok := value[\"bar\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: bar\")\n\t}\n}\n\nfunc TestNode_GetObject_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"get object from null node\", NullNode(\"\")},\n\t\t{\"not object node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetObject(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ObjectEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected map[string]int\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t\t{\n\t\t\tname: \"single key-value pair\",\n\t\t\tjson: `{\"key\": 42}`,\n\t\t\texpected: map[string]int{\"key\": 42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs\",\n\t\t\tjson: `{\"one\": 1, \"two\": 2, \"three\": 3}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"two\": 2, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs with some non-numeric values\",\n\t\t\tjson: `{\"one\": 1, \"two\": \"2\", \"three\": 3, \"four\": \"4\"}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"non-object node\",\n\t\t\tjson: `[\"not\", \"an\", \"object\"]`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tresult := make(map[string]int)\n\t\t\troot.ObjectEach(func(key string, value *Node) {\n\t\t\t\t// extract integer values from the object\n\t\t\t\tif val, err := strconv.Atoi(value.String()); err == nil {\n\t\t\t\t\tresult[key] = val\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d key-value pairs, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor key, val := range tc.expected {\n\t\t\t\tif result[key] != val {\n\t\t\t\t\tt.Errorf(\"%s: expected value for key %s to be %d, got %d\", tc.name, key, val, result[key])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ExampleMust(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot := Must(Unmarshal(data))\n\tif root.Size() != 1 {\n\t\tt.Errorf(\"root.Size() must be 1. got: %v\", root.Size())\n\t}\n\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n\t// Output:\n\t// Object has 1 inheritors inside\n}\n\n// Calculate AVG price from different types of objects, JSON from: https://goessner.net/articles/JsonPath/index.html#e3\nfunc TestExampleUnmarshal(t *testing.T) {\n\tdata := []byte(`{ \"store\": {\n \"book\": [ \n { \"category\": \"reference\",\n \"author\": \"Nigel Rees\",\n \"title\": \"Sayings of the Century\",\n \"price\": 8.95\n },\n { \"category\": \"fiction\",\n \"author\": \"Evelyn Waugh\",\n \"title\": \"Sword of Honour\",\n \"price\": 12.99\n },\n { \"category\": \"fiction\",\n \"author\": \"Herman Melville\",\n \"title\": \"Moby Dick\",\n \"isbn\": \"0-553-21311-3\",\n \"price\": 8.99\n },\n { \"category\": \"fiction\",\n \"author\": \"J. R. R. Tolkien\",\n \"title\": \"The Lord of the Rings\",\n \"isbn\": \"0-395-19395-8\",\n \"price\": 22.99\n }\n ],\n \"bicycle\": { \"color\": \"red\",\n \"price\": 19.95\n },\n \"tools\": null\n }\n}`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred when unmarshal\")\n\t}\n\n\tstore := root.MustKey(\"store\").MustObject()\n\n\tvar prices float64\n\tsize := 0\n\tfor _, objects := range store {\n\t\tif objects.IsArray() \u0026\u0026 objects.Size() \u003e 0 {\n\t\t\tsize += objects.Size()\n\t\t\tfor _, object := range objects.MustArray() {\n\t\t\t\tprices += object.MustKey(\"price\").MustNumeric()\n\t\t\t}\n\t\t} else if objects.IsObject() \u0026\u0026 objects.HasKey(\"price\") {\n\t\t\tsize++\n\t\t\tprices += objects.MustKey(\"price\").MustNumeric()\n\t\t}\n\t}\n\n\tresult := int(prices / float64(size))\n\tufmt.Sprintf(\"AVG price: %d\", result)\n}\n\nfunc TestNode_ExampleMust_panic(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t}\n\t}()\n\tdata := []byte(`{]`)\n\troot := Must(Unmarshal(data))\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n}\n\nfunc TestNode_Path(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tif root.Path() != \"$\" {\n\t\tt.Errorf(\"Wrong root.Path()\")\n\t}\n\n\telement := root.MustKey(\"Image\").MustKey(\"Thumbnail\").MustKey(\"Url\")\n\tif element.Path() != \"$['Image']['Thumbnail']['Url']\" {\n\t\tt.Errorf(\"Wrong path found: %s\", element.Path())\n\t}\n\n\tif (*Node)(nil).Path() != \"\" {\n\t\tt.Errorf(\"Wrong (nil).Path()\")\n\t}\n}\n\nfunc TestNode_Path2(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"Node with key\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tkey: func() *string { s := \"key\"; return \u0026s }(),\n\t\t\t},\n\t\t\twant: \"$['key']\",\n\t\t},\n\t\t{\n\t\t\tname: \"Node with index\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tindex: func() *int { i := 1; return \u0026i }(),\n\t\t\t},\n\t\t\twant: \"$[1]\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Path(); got != tt.want {\n\t\t\t\tt.Errorf(\"Path() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Root(t *testing.T) {\n\troot := \u0026Node{}\n\tchild := \u0026Node{prev: root}\n\tgrandChild := \u0026Node{prev: child}\n\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant *Node\n\t}{\n\t\t{\n\t\t\tname: \"Root node\",\n\t\t\tnode: root,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Child node\",\n\t\t\tnode: child,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Grandchild node\",\n\t\t\tnode: grandChild,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Node is nil\",\n\t\t\tnode: nil,\n\t\t\twant: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.root(); got != tt.want {\n\t\t\t\tt.Errorf(\"root() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc contains(slice []string, item string) bool {\n\tfor _, a := range slice {\n\t\tif a == item {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// ignore the sequence of keys by ordering them.\n// need to avoid import encoding/json and reflect package.\n// because gno does not support them for now.\n// TODO: use encoding/json to compare the result after if possible in gno.\nfunc isSameObject(a, b string) bool {\n\taPairs := strings.Split(strings.Trim(a, \"{}\"), \",\")\n\tbPairs := strings.Split(strings.Trim(b, \"{}\"), \",\")\n\n\taMap := make(map[string]string)\n\tbMap := make(map[string]string)\n\tfor _, pair := range aPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\taMap[key] = value\n\t}\n\tfor _, pair := range bPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\tbMap[key] = value\n\t}\n\n\taKeys := make([]string, 0, len(aMap))\n\tbKeys := make([]string, 0, len(bMap))\n\tfor k := range aMap {\n\t\taKeys = append(aKeys, k)\n\t}\n\n\tfor k := range bMap {\n\t\tbKeys = append(bKeys, k)\n\t}\n\n\tsort.Strings(aKeys)\n\tsort.Strings(bKeys)\n\n\tif len(aKeys) != len(bKeys) {\n\t\treturn false\n\t}\n\n\tfor i := range aKeys {\n\t\tif aKeys[i] != bKeys[i] {\n\t\t\treturn false\n\t\t}\n\n\t\tif aMap[aKeys[i]] != bMap[bKeys[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc compareNodes(n1, n2 *Node) bool {\n\tif n1 == nil || n2 == nil {\n\t\treturn n1 == n2\n\t}\n\n\tif n1.key != n2.key {\n\t\treturn false\n\t}\n\n\tif !bytes.Equal(n1.data, n2.data) {\n\t\treturn false\n\t}\n\n\tif n1.index != n2.index {\n\t\treturn false\n\t}\n\n\tif n1.borders != n2.borders {\n\t\treturn false\n\t}\n\n\tif n1.modified != n2.modified {\n\t\treturn false\n\t}\n\n\tif n1.nodeType != n2.nodeType {\n\t\treturn false\n\t}\n\n\tif !compareNodes(n1.prev, n2.prev) {\n\t\treturn false\n\t}\n\n\tif len(n1.next) != len(n2.next) {\n\t\treturn false\n\t}\n\n\tfor k, v := range n1.next {\n\t\tif !compareNodes(v, n2.next[k]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"parser.gno","body":"package json\n\nimport (\n\t\"bytes\"\n)\n\nconst (\n\tunescapeStackBufSize = 64\n\tabsMinInt64 = 1 \u003c\u003c 63\n\tmaxInt64 = absMinInt64 - 1\n\tmaxUint64 = 1\u003c\u003c64 - 1\n)\n\n// PaseStringLiteral parses a string from the given byte slice.\nfunc ParseStringLiteral(data []byte) (string, error) {\n\tvar buf [unescapeStackBufSize]byte\n\n\tbf, err := Unescape(data, buf[:])\n\tif err != nil {\n\t\treturn \"\", errInvalidStringInput\n\t}\n\n\treturn string(bf), nil\n}\n\n// ParseBoolLiteral parses a boolean value from the given byte slice.\nfunc ParseBoolLiteral(data []byte) (bool, error) {\n\tswitch {\n\tcase bytes.Equal(data, trueLiteral):\n\t\treturn true, nil\n\tcase bytes.Equal(data, falseLiteral):\n\t\treturn false, nil\n\tdefault:\n\t\treturn false, errMalformedBooleanValue\n\t}\n}\n"},{"name":"parser_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseStringLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t\tisError bool\n\t}{\n\t\t{`\"Hello, World!\"`, \"\\\"Hello, World!\\\"\", false},\n\t\t{`\\uFF11`, \"\\uFF11\", false},\n\t\t{`\\uFFFF`, \"\\uFFFF\", false},\n\t\t{`true`, \"true\", false},\n\t\t{`false`, \"false\", false},\n\t\t{`\\uDF00`, \"\", true},\n\t}\n\n\tfor i, tt := range tests {\n\t\ts, err := ParseStringLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif s != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%s, but actual=%s\", i, tt.expected, s)\n\t\t}\n\t}\n}\n\nfunc TestParseBoolLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected bool\n\t\tisError bool\n\t}{\n\t\t{`true`, true, false},\n\t\t{`false`, false, false},\n\t\t{`TRUE`, false, true},\n\t\t{`FALSE`, false, true},\n\t\t{`foo`, false, true},\n\t\t{`\"true\"`, false, true},\n\t\t{`\"false\"`, false, true},\n\t}\n\n\tfor i, tt := range tests {\n\t\tb, err := ParseBoolLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif b != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%t, but actual=%t\", i, tt.expected, b)\n\t\t}\n\t}\n}\n"},{"name":"path.gno","body":"package json\n\nimport (\n\t\"errors\"\n)\n\n// ParsePath takes a JSONPath string and returns a slice of strings representing the path segments.\nfunc ParsePath(path string) ([]string, error) {\n\tbuf := newBuffer([]byte(path))\n\tresult := make([]string, 0)\n\n\tfor {\n\t\tb, err := buf.current()\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch {\n\t\tcase b == dollarSign || b == atSign:\n\t\t\tresult = append(result, string(b))\n\t\t\tbuf.step()\n\n\t\tcase b == dot:\n\t\t\tbuf.step()\n\n\t\t\tif next, _ := buf.current(); next == dot {\n\t\t\t\tbuf.step()\n\t\t\t\tresult = append(result, \"..\")\n\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t} else {\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t}\n\n\t\tcase b == bracketOpen:\n\t\t\tstart := buf.index\n\t\t\tbuf.step()\n\n\t\t\tfor {\n\t\t\t\tif buf.index \u003e= buf.length || buf.data[buf.index] == bracketClose {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tbuf.step()\n\t\t\t}\n\n\t\t\tif buf.index \u003e= buf.length {\n\t\t\t\treturn nil, errors.New(\"unexpected end of path\")\n\t\t\t}\n\n\t\t\tsegment := string(buf.sliceFromIndices(start+1, buf.index))\n\t\t\tresult = append(result, segment)\n\n\t\t\tbuf.step()\n\n\t\tdefault:\n\t\t\tbuf.step()\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// extractNextSegment extracts the segment from the current index\n// to the next significant character and adds it to the resulting slice.\nfunc extractNextSegment(buf *buffer, result *[]string) {\n\tstart := buf.index\n\tbuf.skipToNextSignificantToken()\n\n\tif buf.index \u003c= start {\n\t\treturn\n\t}\n\n\tsegment := string(buf.sliceFromIndices(start, buf.index))\n\tif segment != \"\" {\n\t\t*result = append(*result, segment)\n\t}\n}\n"},{"name":"path_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseJSONPath(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\texpected []string\n\t}{\n\t\t{name: \"Empty string path\", path: \"\", expected: []string{}},\n\t\t{name: \"Root only path\", path: \"$\", expected: []string{\"$\"}},\n\t\t{name: \"Root with dot path\", path: \"$.\", expected: []string{\"$\"}},\n\t\t{name: \"All objects in path\", path: \"$..\", expected: []string{\"$\", \"..\"}},\n\t\t{name: \"Only children in path\", path: \"$.*\", expected: []string{\"$\", \"*\"}},\n\t\t{name: \"All objects' children in path\", path: \"$..*\", expected: []string{\"$\", \"..\", \"*\"}},\n\t\t{name: \"Simple dot notation path\", path: \"$.root.element\", expected: []string{\"$\", \"root\", \"element\"}},\n\t\t{name: \"Complex dot notation path with wildcard\", path: \"$.root.*.element\", expected: []string{\"$\", \"root\", \"*\", \"element\"}},\n\t\t{name: \"Path with array wildcard\", path: \"$.phoneNumbers[*].type\", expected: []string{\"$\", \"phoneNumbers\", \"*\", \"type\"}},\n\t\t{name: \"Path with filter expression\", path: \"$.store.book[?(@.price \u003c 10)].title\", expected: []string{\"$\", \"store\", \"book\", \"?(@.price \u003c 10)\", \"title\"}},\n\t\t{name: \"Path with formula\", path: \"$..phoneNumbers..('ty' + 'pe')\", expected: []string{\"$\", \"..\", \"phoneNumbers\", \"..\", \"('ty' + 'pe')\"}},\n\t\t{name: \"Simple bracket notation path\", path: \"$['root']['element']\", expected: []string{\"$\", \"'root'\", \"'element'\"}},\n\t\t{name: \"Complex bracket notation path with wildcard\", path: \"$['root'][*]['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Bracket notation path with integer index\", path: \"$['store']['book'][0]['title']\", expected: []string{\"$\", \"'store'\", \"'book'\", \"0\", \"'title'\"}},\n\t\t{name: \"Complex path with wildcard in bracket notation\", path: \"$['root'].*['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot after bracket\", path: \"$.['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot before bracket\", path: \"$['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Single character path with root\", path: \"$.a\", expected: []string{\"$\", \"a\"}},\n\t\t{name: \"Multiple characters path with root\", path: \"$.abc\", expected: []string{\"$\", \"abc\"}},\n\t\t{name: \"Multiple segments path with root\", path: \"$.a.b.c\", expected: []string{\"$\", \"a\", \"b\", \"c\"}},\n\t\t{name: \"Multiple segments path with wildcard and root\", path: \"$.a.*.c\", expected: []string{\"$\", \"a\", \"*\", \"c\"}},\n\t\t{name: \"Multiple segments path with filter and root\", path: \"$.a[?(@.b == 'c')].d\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\"}},\n\t\t{name: \"Complex path with multiple filters\", path: \"$.a[?(@.b == 'c')].d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Complex path with multiple filters and wildcards\", path: \"$.a[?(@.b == 'c')].*.d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"*\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Path with array index and root\", path: \"$.a[0].b\", expected: []string{\"$\", \"a\", \"0\", \"b\"}},\n\t\t{name: \"Path with multiple array indices and root\", path: \"$.a[0].b[1].c\", expected: []string{\"$\", \"a\", \"0\", \"b\", \"1\", \"c\"}},\n\t\t{name: \"Path with array index, wildcard and root\", path: \"$.a[0].*.c\", expected: []string{\"$\", \"a\", \"0\", \"*\", \"c\"}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\treult, _ := ParsePath(tt.path)\n\t\t\tif !isEqualSlice(reult, tt.expected) {\n\t\t\t\tt.Errorf(\"ParsePath(%s) expected: %v, got: %v\", tt.path, tt.expected, reult)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc isEqualSlice(a, b []string) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"token.gno","body":"package json\n\nconst (\n\tbracketOpen = '['\n\tbracketClose = ']'\n\tparenOpen = '('\n\tparenClose = ')'\n\tcurlyOpen = '{'\n\tcurlyClose = '}'\n\tcomma = ','\n\tdot = '.'\n\tcolon = ':'\n\tbackTick = '`'\n\tsingleQuote = '\\''\n\tdoubleQuote = '\"'\n\temptyString = \"\"\n\twhiteSpace = ' '\n\tplus = '+'\n\tminus = '-'\n\taesterisk = '*'\n\tbang = '!'\n\tquestion = '?'\n\tnewLine = '\\n'\n\ttab = '\\t'\n\tcarriageReturn = '\\r'\n\tformFeed = '\\f'\n\tbackSpace = '\\b'\n\tslash = '/'\n\tbackSlash = '\\\\'\n\tunderScore = '_'\n\tdollarSign = '$'\n\tatSign = '@'\n\tandSign = '\u0026'\n\torSign = '|'\n)\n\nvar (\n\ttrueLiteral = []byte(\"true\")\n\tfalseLiteral = []byte(\"false\")\n\tnullLiteral = []byte(\"null\")\n)\n\ntype ValueType int\n\nconst (\n\tNotExist ValueType = iota\n\tString\n\tNumber\n\tFloat\n\tObject\n\tArray\n\tBoolean\n\tNull\n\tUnknown\n)\n\nfunc (v ValueType) String() string {\n\tswitch v {\n\tcase NotExist:\n\t\treturn \"not-exist\"\n\tcase String:\n\t\treturn \"string\"\n\tcase Number:\n\t\treturn \"number\"\n\tcase Object:\n\t\treturn \"object\"\n\tcase Array:\n\t\treturn \"array\"\n\tcase Boolean:\n\t\treturn \"boolean\"\n\tcase Null:\n\t\treturn \"null\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lbCXbPuXcBvjoBEaJt0NpiYFzxxQyoxAhCwc9MDSSAFGc12Y+ZZUUyVw6C1OoHMqr0XWN/seKBqEADnwwfL3Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"json","path":"gno.land/p/demo/json","files":[{"name":"LICENSE","body":"# MIT License\n\nCopyright (c) 2019 Pyzhov Stepan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"name":"README.md","body":"# JSON Parser\n\nThe JSON parser is a package that provides functionality for parsing and processing JSON strings. This package accepts JSON strings as byte slices.\n\nCurrently, gno does not [support the `reflect` package](https://docs.gno.land/concepts/effective-gno#reflection-is-never-clear), so it cannot retrieve type information at runtime. Therefore, it is designed to infer and handle type information when parsing JSON strings using a state machine approach.\n\nAfter passing through the state machine, JSON strings are represented as the `Node` type. The `Node` type represents nodes for JSON data, including various types such as `ObjectNode`, `ArrayNode`, `StringNode`, `NumberNode`, `BoolNode`, and `NullNode`.\n\nThis package provides methods for manipulating, searching, and extracting the Node type.\n\n## State Machine\n\nTo parse JSON strings, a [finite state machine](https://en.wikipedia.org/wiki/Finite-state_machine) approach is used. The state machine transitions to the next state based on the current state and the input character while parsing the JSON string. Through this method, type information can be inferred and processed without reflect, and the amount of parser code can be significantly reduced.\n\nThe image below shows the state transitions of the state machine according to the states and input characters.\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e __: Start\n __ --\u003e ST: String\n __ --\u003e MI: Number\n __ --\u003e ZE: Zero\n __ --\u003e IN: Integer\n __ --\u003e T1: Boolean (true)\n __ --\u003e F1: Boolean (false)\n __ --\u003e N1: Null\n __ --\u003e ec: Empty Object End\n __ --\u003e cc: Object End\n __ --\u003e bc: Array End\n __ --\u003e co: Object Begin\n __ --\u003e bo: Array Begin\n __ --\u003e cm: Comma\n __ --\u003e cl: Colon\n __ --\u003e OK: Success/End\n ST --\u003e OK: String Complete\n MI --\u003e OK: Number Complete\n ZE --\u003e OK: Zero Complete\n IN --\u003e OK: Integer Complete\n T1 --\u003e OK: True Complete\n F1 --\u003e OK: False Complete\n N1 --\u003e OK: Null Complete\n ec --\u003e OK: Empty Object Complete\n cc --\u003e OK: Object Complete\n bc --\u003e OK: Array Complete\n co --\u003e OB: Inside Object\n bo --\u003e AR: Inside Array\n cm --\u003e KE: Expecting New Key\n cm --\u003e VA: Expecting New Value\n cl --\u003e VA: Expecting Value\n OB --\u003e ST: String in Object (Key)\n OB --\u003e ec: Empty Object\n OB --\u003e cc: End Object\n AR --\u003e ST: String in Array\n AR --\u003e bc: End Array\n KE --\u003e ST: String as Key\n VA --\u003e ST: String as Value\n VA --\u003e MI: Number as Value\n VA --\u003e T1: True as Value\n VA --\u003e F1: False as Value\n VA --\u003e N1: Null as Value\n OK --\u003e [*]: End\n```\n\n## Examples\n\nThis package provides parsing functionality along with encoding and decoding functionality. The following examples demonstrate how to use this package.\n\n### Decoding\n\nDecoding (or Unmarshaling) is the functionality that converts an input byte slice JSON string into a `Node` type.\n\nThe converted `Node` type allows you to modify the JSON data or search and extract data that meets specific conditions.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node, err := json.Unmarshal([]byte(`{\"foo\": \"var\"}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"node: %v\", node)\n}\n```\n\n### Encoding\n\nEncoding (or Marshaling) is the functionality that converts JSON data represented as a Node type into a byte slice JSON string.\n\n\u003e ⚠️ Caution: Converting a large `Node` type into a JSON string may _impact performance_. or might be cause _unexpected behavior_.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node := ObjectNode(\"\", map[string]*Node{\n \"foo\": StringNode(\"foo\", \"bar\"),\n \"baz\": NumberNode(\"baz\", 100500),\n \"qux\": NullNode(\"qux\"),\n })\n\n b, err := json.Marshal(node)\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"json: %s\", string(b))\n}\n```\n\n### Searching\n\nOnce the JSON data converted into a `Node` type, you can **search** and **extract** data that satisfy specific conditions. For example, you can find data with a specific type or data with a specific key.\n\nTo use this functionality, you can use methods in the `GetXXX` prefixed methods. The `MustXXX` methods also provide the same functionality as the former methods, but they will **panic** if data doesn't satisfies the condition.\n\nHere is an example of finding data with a specific key. For more examples, please refer to the [node.gno](node.gno) file.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n root, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n value, err := root.GetKey(\"foo\")\n if err != nil {\n ufmt.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n if value.MustBool() != true {\n ufmt.Errorf(\"value is not true\")\n }\n\n value, err = root.GetKey(\"bar\")\n if err != nil {\n t.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n _, err = root.GetKey(\"baz\")\n if err == nil {\n t.Errorf(\"key baz is not exist. must be failed\")\n }\n}\n```\n\n## Contributing\n\nPlease submit any issues or pull requests for this package through the GitHub repository at [gnolang/gno](\u003chttps://github.com/gnolang/gno\u003e).\n"},{"name":"buffer.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype buffer struct {\n\tdata []byte\n\tlength int\n\tindex int\n\n\tlast States\n\tstate States\n\tclass Classes\n}\n\n// newBuffer creates a new buffer with the given data\nfunc newBuffer(data []byte) *buffer {\n\treturn \u0026buffer{\n\t\tdata: data,\n\t\tlength: len(data),\n\t\tlast: GO,\n\t\tstate: GO,\n\t}\n}\n\n// first retrieves the first non-whitespace (or other escaped) character in the buffer.\nfunc (b *buffer) first() (byte, error) {\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tc := b.data[b.index]\n\n\t\tif !(c == whiteSpace || c == carriageReturn || c == newLine || c == tab) {\n\t\t\treturn c, nil\n\t\t}\n\t}\n\n\treturn 0, io.EOF\n}\n\n// current returns the byte of the current index.\nfunc (b *buffer) current() (byte, error) {\n\tif b.index \u003e= b.length {\n\t\treturn 0, io.EOF\n\t}\n\n\treturn b.data[b.index], nil\n}\n\n// next moves to the next byte and returns it.\nfunc (b *buffer) next() (byte, error) {\n\tb.index++\n\treturn b.current()\n}\n\n// step just moves to the next position.\nfunc (b *buffer) step() error {\n\t_, err := b.next()\n\treturn err\n}\n\n// move moves the index by the given position.\nfunc (b *buffer) move(pos int) error {\n\tnewIndex := b.index + pos\n\n\tif newIndex \u003e b.length {\n\t\treturn io.EOF\n\t}\n\n\tb.index = newIndex\n\n\treturn nil\n}\n\n// slice returns the slice from the current index to the given position.\nfunc (b *buffer) slice(pos int) ([]byte, error) {\n\tend := b.index + pos\n\n\tif end \u003e b.length {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn b.data[b.index:end], nil\n}\n\n// sliceFromIndices returns a slice of the buffer's data starting from 'start' up to (but not including) 'stop'.\nfunc (b *buffer) sliceFromIndices(start, stop int) []byte {\n\tif start \u003e b.length {\n\t\tstart = b.length\n\t}\n\n\tif stop \u003e b.length {\n\t\tstop = b.length\n\t}\n\n\treturn b.data[start:stop]\n}\n\n// skip moves the index to skip the given byte.\nfunc (b *buffer) skip(bs byte) error {\n\tfor b.index \u003c b.length {\n\t\tif b.data[b.index] == bs \u0026\u0026 !b.backslash() {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn io.EOF\n}\n\n// skipAndReturnIndex moves the buffer index forward by one and returns the new index.\nfunc (b *buffer) skipAndReturnIndex() (int, error) {\n\terr := b.step()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn b.index, nil\n}\n\n// skipUntil moves the buffer index forward until it encounters a byte contained in the endTokens set.\nfunc (b *buffer) skipUntil(endTokens map[byte]bool) (int, error) {\n\tfor b.index \u003c b.length {\n\t\tcurrentByte, err := b.current()\n\t\tif err != nil {\n\t\t\treturn b.index, err\n\t\t}\n\n\t\t// Check if the current byte is in the set of end tokens.\n\t\tif _, exists := endTokens[currentByte]; exists {\n\t\t\treturn b.index, nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn b.index, io.EOF\n}\n\n// significantTokens is a map where the keys are the significant characters in a JSON path.\n// The values in the map are all true, which allows us to use the map as a set for quick lookups.\nvar significantTokens = [256]bool{\n\tdot: true, // access properties of an object\n\tdollarSign: true, // root object\n\tatSign: true, // current object\n\tbracketOpen: true, // start of an array index or filter expression\n\tbracketClose: true, // end of an array index or filter expression\n}\n\n// filterTokens stores the filter expression tokens.\nvar filterTokens = [256]bool{\n\taesterisk: true, // wildcard\n\tandSign: true,\n\torSign: true,\n}\n\n// skipToNextSignificantToken advances the buffer index to the next significant character.\n// Significant characters are defined based on the JSON path syntax.\nfunc (b *buffer) skipToNextSignificantToken() {\n\tfor b.index \u003c b.length {\n\t\tcurrent := b.data[b.index]\n\n\t\tif significantTokens[current] {\n\t\t\tbreak\n\t\t}\n\n\t\tb.index++\n\t}\n}\n\n// backslash checks to see if the number of backslashes before the current index is odd.\n//\n// This is used to check if the current character is escaped. However, unlike the \"unescape\" function,\n// \"backslash\" only serves to check the number of backslashes.\nfunc (b *buffer) backslash() bool {\n\tif b.index == 0 {\n\t\treturn false\n\t}\n\n\tcount := 0\n\tfor i := b.index - 1; ; i-- {\n\t\tif b.data[i] != backSlash {\n\t\t\tbreak\n\t\t}\n\n\t\tcount++\n\n\t\tif i == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn count%2 != 0\n}\n\n// numIndex holds a map of valid numeric characters\nvar numIndex = [256]bool{\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t'.': true,\n\t'e': true,\n\t'E': true,\n}\n\n// pathToken checks if the current token is a valid JSON path token.\nfunc (b *buffer) pathToken() error {\n\tvar stack []byte\n\n\tinToken := false\n\tinNumber := false\n\tfirst := b.index\n\n\tfor b.index \u003c b.length {\n\t\tc := b.data[b.index]\n\n\t\tswitch {\n\t\tcase c == doubleQuote || c == singleQuote:\n\t\t\tinToken = true\n\t\t\tif err := b.step(); err != nil {\n\t\t\t\treturn errors.New(\"error stepping through buffer\")\n\t\t\t}\n\n\t\t\tif err := b.skip(c); err != nil {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\t\tif b.index \u003e= b.length {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\tcase c == bracketOpen || c == parenOpen:\n\t\t\tinToken = true\n\t\t\tstack = append(stack, c)\n\n\t\tcase c == bracketClose || c == parenClose:\n\t\t\tinToken = true\n\t\t\tif len(stack) == 0 || (c == bracketClose \u0026\u0026 stack[len(stack)-1] != bracketOpen) || (c == parenClose \u0026\u0026 stack[len(stack)-1] != parenOpen) {\n\t\t\t\treturn errUnmatchedParenthesis\n\t\t\t}\n\n\t\t\tstack = stack[:len(stack)-1]\n\n\t\tcase pathStateContainsValidPathToken(c):\n\t\t\tinToken = true\n\n\t\tcase c == plus || c == minus:\n\t\t\tif inNumber || (b.index \u003e 0 \u0026\u0026 numIndex[b.data[b.index-1]]) {\n\t\t\t\tinToken = true\n\t\t\t} else if !inToken \u0026\u0026 (b.index+1 \u003c b.length \u0026\u0026 numIndex[b.data[b.index+1]]) {\n\t\t\t\tinToken = true\n\t\t\t\tinNumber = true\n\t\t\t} else if !inToken {\n\t\t\t\treturn errInvalidToken\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif len(stack) != 0 || inToken {\n\t\t\t\tinToken = true\n\t\t\t} else {\n\t\t\t\tgoto end\n\t\t\t}\n\t\t}\n\n\t\tb.index++\n\t}\n\nend:\n\tif len(stack) != 0 {\n\t\treturn errUnmatchedParenthesis\n\t}\n\n\tif first == b.index {\n\t\treturn errors.New(\"no token found\")\n\t}\n\n\tif inNumber \u0026\u0026 !numIndex[b.data[b.index-1]] {\n\t\tinNumber = false\n\t}\n\n\treturn nil\n}\n\nfunc pathStateContainsValidPathToken(c byte) bool {\n\tif significantTokens[c] {\n\t\treturn true\n\t}\n\n\tif filterTokens[c] {\n\t\treturn true\n\t}\n\n\tif numIndex[c] {\n\t\treturn true\n\t}\n\n\tif 'A' \u003c= c \u0026\u0026 c \u003c= 'Z' || 'a' \u003c= c \u0026\u0026 c \u003c= 'z' {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nfunc (b *buffer) numeric(token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(doubleQuote)\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\tif token {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\treturn nil\n\t\t}\n\n\t\tif b.state \u003c MI || b.state \u003e E3 {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\tif b.last != ZE \u0026\u0026 b.last != IN \u0026\u0026 b.last != FR \u0026\u0026 b.last != E3 {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) getClasses(c byte) Classes {\n\tif b.data[b.index] \u003e= 128 {\n\t\treturn C_ETC\n\t}\n\n\tif c == singleQuote {\n\t\treturn QuoteAsciiClasses[b.data[b.index]]\n\t}\n\n\treturn AsciiClasses[b.data[b.index]]\n}\n\nfunc (b *buffer) getState() States {\n\tb.last = b.state\n\n\tb.class = b.getClasses(doubleQuote)\n\tif b.class == __ {\n\t\treturn __\n\t}\n\n\tb.state = StateTransitionTable[b.last][b.class]\n\n\treturn b.state\n}\n\n// string parses a string token from the buffer.\nfunc (b *buffer) string(search byte, token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(search)\n\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\tbreak\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) word(bs []byte) error {\n\tvar c byte\n\n\tmax := len(bs)\n\tindex := 0\n\n\tfor ; b.index \u003c b.length \u0026\u0026 index \u003c max; b.index++ {\n\t\tc = b.data[b.index]\n\n\t\tif c != bs[index] {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tindex++\n\t\tif index \u003e= max {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index != max {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc numberKind2f64(value interface{}) (result float64, err error) {\n\tswitch typed := value.(type) {\n\tcase float64:\n\t\tresult = typed\n\tcase float32:\n\t\tresult = float64(typed)\n\tcase int:\n\t\tresult = float64(typed)\n\tcase int8:\n\t\tresult = float64(typed)\n\tcase int16:\n\t\tresult = float64(typed)\n\tcase int32:\n\t\tresult = float64(typed)\n\tcase int64:\n\t\tresult = float64(typed)\n\tcase uint:\n\t\tresult = float64(typed)\n\tcase uint8:\n\t\tresult = float64(typed)\n\tcase uint16:\n\t\tresult = float64(typed)\n\tcase uint32:\n\t\tresult = float64(typed)\n\tcase uint64:\n\t\tresult = float64(typed)\n\tdefault:\n\t\terr = ufmt.Errorf(\"invalid number type: %T\", value)\n\t}\n\n\treturn\n}\n"},{"name":"buffer_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBufferCurrent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\texpected byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid current byte\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 1,\n\t\t\t},\n\t\t\texpected: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 4,\n\t\t\t},\n\t\t\texpected: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.current()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.current() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"buffer.current() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferStep(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid step\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.step()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.step() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferNext(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twant byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid next byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twant: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twant: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.next()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.next() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"buffer.next() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSlice(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twant []byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid slice -- 0 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 0,\n\t\t\twant: nil,\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 1 character\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 1,\n\t\t\twant: []byte(\"t\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 2 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twant: []byte(\"es\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 3 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 3,\n\t\t\twant: []byte(\"tes\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 4 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 4,\n\t\t\twant: []byte(\"test\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\tpos: 2,\n\t\t\twant: nil,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.slice(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.slice() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif string(got) != string(tt.want) {\n\t\t\t\tt.Errorf(\"buffer.slice() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferMove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twantErr bool\n\t\twantIdx int\n\t}{\n\t\t{\n\t\t\tname: \"Valid move\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twantErr: false,\n\t\t\twantIdx: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"Move beyond length\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 4,\n\t\t\twantErr: true,\n\t\t\twantIdx: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.move(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.move() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t\tif tt.buffer.index != tt.wantIdx {\n\t\t\t\tt.Errorf(\"buffer.move() index = %v, want %v\", tt.buffer.index, tt.wantIdx)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSkip(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tb byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Skip byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Skip to EOF\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'x',\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.skip(tt.b)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.skip() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipToNextSignificantToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected int\n\t}{\n\t\t{\"No significant chars\", []byte(\"abc\"), 3},\n\t\t{\"One significant char at start\", []byte(\".abc\"), 0},\n\t\t{\"Significant char in middle\", []byte(\"ab.c\"), 2},\n\t\t{\"Multiple significant chars\", []byte(\"a$.c\"), 1},\n\t\t{\"Significant char at end\", []byte(\"abc$\"), 3},\n\t\t{\"Only significant chars\", []byte(\"$.\"), 0},\n\t\t{\"Empty string\", []byte(\"\"), 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.input)\n\t\t\tb.skipToNextSignificantToken()\n\t\t\tif b.index != tt.expected {\n\t\t\t\tt.Errorf(\"after skipToNextSignificantToken(), got index = %v, want %v\", b.index, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mockBuffer(s string) *buffer {\n\treturn newBuffer([]byte(s))\n}\n\nfunc TestSkipAndReturnIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"StartOfString\", \"\", 0},\n\t\t{\"MiddleOfString\", \"abcdef\", 1},\n\t\t{\"EndOfString\", \"abc\", 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipAndReturnIndex()\n\t\t\tif err != nil \u0026\u0026 tt.input != \"\" { // Expect no error unless input is empty\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipUntil(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\ttokens map[byte]bool\n\t\texpected int\n\t}{\n\t\t{\"SkipToToken\", \"abcdefg\", map[byte]bool{'c': true}, 2},\n\t\t{\"SkipToEnd\", \"abcdefg\", map[byte]bool{'h': true}, 7},\n\t\t{\"SkipNone\", \"abcdefg\", map[byte]bool{'a': true}, 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipUntil(tt.tokens)\n\t\t\tif err != nil \u0026\u0026 got != len(tt.input) { // Expect error only if reached end without finding token\n\t\t\t\tt.Errorf(\"skipUntil() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipUntil() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSliceFromIndices(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\tstart int\n\t\tend int\n\t\texpected string\n\t}{\n\t\t{\"FullString\", \"abcdefg\", 0, 7, \"abcdefg\"},\n\t\t{\"Substring\", \"abcdefg\", 2, 5, \"cde\"},\n\t\t{\"OutOfBounds\", \"abcdefg\", 5, 10, \"fg\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot := buf.sliceFromIndices(tt.start, tt.end)\n\t\t\tif string(got) != tt.expected {\n\t\t\t\tt.Errorf(\"sliceFromIndices() = %v, want %v\", string(got), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\tindex int\n\t\tisErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Simple valid path\",\n\t\t\tpath: \"@.length\",\n\t\t\tindex: 8,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr\",\n\t\t\tpath: \"@['foo'].0.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr and simple fomula\",\n\t\t\tpath: \"@['foo'].[(@.length - 1)].*\",\n\t\t\tindex: 27,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with filter expr\",\n\t\t\tpath: \"@['foo'].[?(@.bar == 1 \u0026 @.baz \u003c @.length)].*\",\n\t\t\tindex: 45,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"addition of foo and bar\",\n\t\t\tpath: \"@.foo+@.bar\",\n\t\t\tindex: 11,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical AND of foo and bar\",\n\t\t\tpath: \"@.foo \u0026\u0026 @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical OR of foo and bar\",\n\t\t\tpath: \"@.foo || @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing third element of foo\",\n\t\t\tpath: \"@.foo,3\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing last element of array\",\n\t\t\tpath: \"@.length-1\",\n\t\t\tindex: 10,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"number 1\",\n\t\t\tpath: \"1\",\n\t\t\tindex: 1,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float\",\n\t\t\tpath: \"3.1e4\",\n\t\t\tindex: 5,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with minus\",\n\t\t\tpath: \"3.1e-4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with plus\",\n\t\t\tpath: \"3.1e+4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative number\",\n\t\t\tpath: \"-12345\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float\",\n\t\t\tpath: \"-3.1e4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with minus\",\n\t\t\tpath: \"-3.1e-4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with plus\",\n\t\t\tpath: \"-3.1e+4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string number\",\n\t\t\tpath: \"'12345'\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with backslash\",\n\t\t\tpath: \"'foo \\\\'bar '\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with inner double quotes\",\n\t\t\tpath: \"'foo \\\"bar \\\"'\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 1\",\n\t\t\tpath: \"(@abc)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 2\",\n\t\t\tpath: \"[()]\",\n\t\t\tindex: 4,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch\",\n\t\t\tpath: \"[(])\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 2\",\n\t\t\tpath: \"(\",\n\t\t\tindex: 1,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 3\",\n\t\t\tpath: \"())]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch\",\n\t\t\tpath: \"[()\",\n\t\t\tindex: 3,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch 2\",\n\t\t\tpath: \"()]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"path does not close bracket\",\n\t\t\tpath: \"@.foo[)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := newBuffer([]byte(tt.path))\n\n\t\t\terr := buf.pathToken()\n\t\t\tif tt.isErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err == nil \u0026\u0026 tt.isErr {\n\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t}\n\n\t\t\tif buf.index != tt.index {\n\t\t\t\tt.Errorf(\"Expected final index %d, got %d (token: `%s`) for path `%s`\", tt.index, buf.index, string(buf.data[buf.index]), tt.path)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferFirst(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\texpected byte\n\t}{\n\t\t{\n\t\t\tname: \"Valid first byte\",\n\t\t\tdata: []byte(\"test\"),\n\t\t\texpected: 't',\n\t\t},\n\t\t{\n\t\t\tname: \"Empty buffer\",\n\t\t\tdata: []byte(\"\"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"Whitespace buffer\",\n\t\t\tdata: []byte(\" \"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"whitespace in middle\",\n\t\t\tdata: []byte(\"hello world\"),\n\t\t\texpected: 'h',\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.data)\n\n\t\t\tgot, err := b.first()\n\t\t\tif err != nil \u0026\u0026 tt.expected != 0 {\n\t\t\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"Expected first byte to be %q, got %q\", tt.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"builder.gno","body":"package json\n\ntype NodeBuilder struct {\n\tnode *Node\n}\n\nfunc Builder() *NodeBuilder {\n\treturn \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n}\n\nfunc (b *NodeBuilder) WriteString(key, value string) *NodeBuilder {\n\tb.node.AppendObject(key, StringNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNumber(key string, value float64) *NodeBuilder {\n\tb.node.AppendObject(key, NumberNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteBool(key string, value bool) *NodeBuilder {\n\tb.node.AppendObject(key, BoolNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNull(key string) *NodeBuilder {\n\tb.node.AppendObject(key, NullNode(\"\"))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteObject(key string, fn func(*NodeBuilder)) *NodeBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tb.node.AppendObject(key, nestedBuilder.node)\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteArray(key string, fn func(*ArrayBuilder)) *NodeBuilder {\n\tarrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(arrayBuilder)\n\tb.node.AppendObject(key, ArrayNode(\"\", arrayBuilder.nodes))\n\treturn b\n}\n\nfunc (b *NodeBuilder) Node() *Node {\n\treturn b.node\n}\n\ntype ArrayBuilder struct {\n\tnodes []*Node\n}\n\nfunc (ab *ArrayBuilder) WriteString(value string) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, StringNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNumber(value float64) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NumberNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteInt(value int) *ArrayBuilder {\n\treturn ab.WriteNumber(float64(value))\n}\n\nfunc (ab *ArrayBuilder) WriteBool(value bool) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, BoolNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNull() *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NullNode(\"\"))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteObject(fn func(*NodeBuilder)) *ArrayBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tab.nodes = append(ab.nodes, nestedBuilder.node)\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteArray(fn func(*ArrayBuilder)) *ArrayBuilder {\n\tnestedArrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(nestedArrayBuilder)\n\tab.nodes = append(ab.nodes, ArrayNode(\"\", nestedArrayBuilder.nodes))\n\treturn ab\n}\n"},{"name":"builder_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestNodeBuilder(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuild func() *Node\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"plain object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteNumber(\"age\", 30).\n\t\t\t\t\tWriteBool(\"is_student\", false).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"age\":30,\"is_student\":false}`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteObject(\"address\", func(b *NodeBuilder) {\n\t\t\t\t\t\tb.WriteString(\"city\", \"New York\").\n\t\t\t\t\t\t\tWriteNumber(\"zipcode\", 10001)\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"address\":{\"city\":\"New York\",\"zipcode\":10001}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"null node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().WriteNull(\"foo\").Node()\n\t\t\t},\n\t\t\texpected: `{\"foo\":null}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"items\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteString(\"item2\").\n\t\t\t\t\t\t\tWriteString(\"item3\")\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"items\":[\"item1\",\"item2\",\"item3\"]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with objects\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"users\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\tb.WriteString(\"name\", \"Bob\").\n\t\t\t\t\t\t\t\tWriteNumber(\"age\", 25)\n\t\t\t\t\t\t}).\n\t\t\t\t\t\t\tWriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\t\tb.WriteString(\"name\", \"Carol\").\n\t\t\t\t\t\t\t\t\tWriteNumber(\"age\", 27)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"users\":[{\"name\":\"Bob\",\"age\":25},{\"name\":\"Carol\",\"age\":27}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with various types\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"values\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteNumber(123).\n\t\t\t\t\t\t\tWriteBool(true).\n\t\t\t\t\t\t\tWriteNull()\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"values\":[\"item1\",123,true,null]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tnode := tt.build()\n\t\t\tvalue, err := Marshal(node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t}\n\t\t\tif string(value) != tt.expected {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", tt.expected, string(value))\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"decode.gno","body":"// ref: https://github.com/spyzhov/ajson/blob/master/decode.go\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// This limits the max nesting depth to prevent stack overflow.\n// This is permitted by https://tools.ietf.org/html/rfc7159#section-9\nconst maxNestingDepth = 10000\n\n// Unmarshal parses the JSON-encoded data and returns a Node.\n// The data must be a valid JSON-encoded value.\n//\n// Usage:\n//\n//\tnode, err := json.Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err != nil {\n//\t\tufmt.Println(err)\n//\t}\n//\tprintln(node) // {\"key\": \"value\"}\nfunc Unmarshal(data []byte) (*Node, error) {\n\tbuf := newBuffer(data)\n\n\tvar (\n\t\tstate States\n\t\tkey *string\n\t\tcurrent *Node\n\t\tnesting int\n\t\tuseKey = func() **string {\n\t\t\ttmp := cptrs(key)\n\t\t\tkey = nil\n\t\t\treturn \u0026tmp\n\t\t}\n\t\terr error\n\t)\n\n\tif _, err = buf.first(); err != nil {\n\t\treturn nil, io.EOF\n\t}\n\n\tfor {\n\t\tstate = buf.getState()\n\t\tif state == __ {\n\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t}\n\n\t\t// region state machine\n\t\tif state \u003e= GO {\n\t\t\tswitch buf.state {\n\t\t\tcase ST: // string\n\t\t\t\tif current != nil \u0026\u0026 current.IsObject() \u0026\u0026 key == nil {\n\t\t\t\t\t// key detected\n\t\t\t\t\tif key, err = getString(buf); err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tbuf.state = CO\n\t\t\t\t} else {\n\t\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, String, nesting, useKey())\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\terr = buf.string(doubleQuote, false)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\t\t\t\t\tbuf.state = OK\n\t\t\t\t}\n\n\t\t\tcase MI, ZE, IN: // number\n\t\t\t\tcurrent, err = processNumericNode(current, buf, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase T1, F1: // boolean\n\t\t\t\tliteral := falseLiteral\n\t\t\t\tif buf.state == T1 {\n\t\t\t\t\tliteral = trueLiteral\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Boolean, literal, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase N1: // null\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Null, nullLiteral, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// region action\n\t\t\tswitch state {\n\t\t\tcase ec, cc: // \u003cempty\u003e }\n\t\t\t\tif key != nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase bc: // ]\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Array)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase co, bo: // { [\n\t\t\t\tvalTyp, bState := Object, OB\n\t\t\t\tif state == bo {\n\t\t\t\t\tvalTyp, bState = Array, AR\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, valTyp, nesting, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.state = bState\n\n\t\t\tcase cm: // ,\n\t\t\t\tif current == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif !current.isContainer() {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif current.IsObject() {\n\t\t\t\t\tbuf.state = KE // key expected\n\t\t\t\t} else {\n\t\t\t\t\tbuf.state = VA // value expected\n\t\t\t\t}\n\n\t\t\tcase cl: // :\n\t\t\t\tif current == nil || !current.IsObject() || key == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tbuf.state = VA\n\n\t\t\tdefault:\n\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t}\n\t\t}\n\n\t\tif buf.step() != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif _, err = buf.first(); err != nil {\n\t\t\terr = nil\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif current == nil || buf.state != OK {\n\t\treturn nil, io.EOF\n\t}\n\n\troot := current.root()\n\tif !root.ready() {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn root, err\n}\n\n// UnmarshalSafe parses the JSON-encoded data and returns a Node.\nfunc UnmarshalSafe(data []byte) (*Node, error) {\n\tvar safe []byte\n\tsafe = append(safe, data...)\n\treturn Unmarshal(safe)\n}\n\n// processNumericNode creates a new node, processes a numeric value,\n// sets the node's borders, and moves to the previous node.\nfunc processNumericNode(current *Node, buf *buffer, key **string) (*Node, error) {\n\tvar err error\n\tcurrent, err = createNode(current, buf, Number, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = buf.numeric(false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcurrent.borders[1] = buf.index\n\tif current.prev != nil {\n\t\tcurrent = current.prev\n\t}\n\n\tbuf.index -= 1\n\tbuf.state = OK\n\n\treturn current, nil\n}\n\n// processLiteralNode creates a new node, processes a literal value,\n// sets the node's borders, and moves to the previous node.\nfunc processLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteralValue []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tcurrent, nesting, err = createLiteralNode(current, buf, literalType, literalValue, useKey, nesting)\n\tif err != nil {\n\t\treturn nil, nesting, err\n\t}\n\treturn current, nesting, nil\n}\n\n// isValidContainerType checks if the current node is a valid container (object or array).\n// The container must satisfy the following conditions:\n// 1. The current node must not be nil.\n// 2. The current node must be an object or array.\n// 3. The current node must not be ready.\nfunc isValidContainerType(current *Node, nodeType ValueType) bool {\n\tswitch nodeType {\n\tcase Object:\n\t\treturn current != nil \u0026\u0026 current.IsObject() \u0026\u0026 !current.ready()\n\tcase Array:\n\t\treturn current != nil \u0026\u0026 current.IsArray() \u0026\u0026 !current.ready()\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// getString extracts a string from the buffer and advances the buffer index past the string.\nfunc getString(b *buffer) (*string, error) {\n\tstart := b.index\n\tif err := b.string(doubleQuote, false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue, ok := Unquote(b.data[start:b.index+1], doubleQuote)\n\tif !ok {\n\t\treturn nil, unexpectedTokenError(b.data, start)\n\t}\n\n\treturn \u0026value, nil\n}\n\n// createNode creates a new node and sets the key if it is not nil.\nfunc createNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tkey **string,\n) (*Node, error) {\n\tvar err error\n\tcurrent, err = NewNode(current, buf, nodeType, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn current, nil\n}\n\n// createNestedNode creates a new nested node (array or object) and sets the key if it is not nil.\nfunc createNestedNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tnesting int,\n\tkey **string,\n) (*Node, int, error) {\n\tvar err error\n\tif nesting, err = checkNestingDepth(nesting); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\tif current, err = createNode(current, buf, nodeType, key); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\treturn current, nesting, nil\n}\n\n// createLiteralNode creates a new literal node and sets the key if it is not nil.\n// The literal is a byte slice that represents a boolean or null value.\nfunc createLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteral []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tif current, err = createNode(current, buf, literalType, useKey); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tif err = buf.word(literal); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, false)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// updateNode updates the current node and returns the previous node.\nfunc updateNode(\n\tcurrent *Node, buf *buffer, nesting int, decreaseLevel bool,\n) (*Node, int) {\n\tcurrent.borders[1] = buf.index + 1\n\n\tprev := current.prev\n\tif prev == nil {\n\t\treturn current, nesting\n\t}\n\n\tcurrent = prev\n\tif decreaseLevel {\n\t\tnesting--\n\t}\n\n\treturn current, nesting\n}\n\n// updateNodeAndSetBufferState updates the current node and sets the buffer state to OK.\nfunc updateNodeAndSetBufferState(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnesting int,\n\ttyp ValueType,\n) (*Node, int, error) {\n\tif !isValidContainerType(current, typ) {\n\t\treturn nil, nesting, unexpectedTokenError(buf.data, buf.index)\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// checkNestingDepth checks if the nesting depth is within the maximum allowed depth.\nfunc checkNestingDepth(nesting int) (int, error) {\n\tif nesting \u003e= maxNestingDepth {\n\t\treturn nesting, errors.New(\"maximum nesting depth exceeded\")\n\t}\n\n\treturn nesting + 1, nil\n}\n\nfunc unexpectedTokenError(data []byte, index int) error {\n\treturn ufmt.Errorf(\"unexpected token at index %d. data %b\", index, data)\n}\n"},{"name":"decode_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\ntype testNode struct {\n\tname string\n\tinput []byte\n\tvalue []byte\n\t_type ValueType\n}\n\nfunc simpleValid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.input, err.Error())\n\t} else if root == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t} else if root.nodeType != test._type {\n\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t} else if !bytes.Equal(root.source(), test.value) {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t}\n}\n\nfunc simpleInvalid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): error expected, got '%s'\", test.name, root.source())\n\t} else if root != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is not nil\", test.name)\n\t}\n}\n\nfunc simpleCorrupted(name string) *testNode {\n\treturn \u0026testNode{name: name, input: []byte(name)}\n}\n\nfunc TestUnmarshal_StringSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"blank\", input: []byte(\"\\\"\\\"\"), _type: String, value: []byte(\"\\\"\\\"\")},\n\t\t{name: \"char\", input: []byte(\"\\\"c\\\"\"), _type: String, value: []byte(\"\\\"c\\\"\")},\n\t\t{name: \"word\", input: []byte(\"\\\"cat\\\"\"), _type: String, value: []byte(\"\\\"cat\\\"\")},\n\t\t{name: \"spaces\", input: []byte(\" \\\"good cat or dog\\\"\\r\\n \"), _type: String, value: []byte(\"\\\"good cat or dog\\\"\")},\n\t\t{name: \"backslash\", input: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\")},\n\t\t{name: \"backslash 2\", input: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NumericSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"1\", input: []byte(\"1\"), _type: Number, value: []byte(\"1\")},\n\t\t{name: \"-1\", input: []byte(\"-1\"), _type: Number, value: []byte(\"-1\")},\n\n\t\t{name: \"1234567890\", input: []byte(\"1234567890\"), _type: Number, value: []byte(\"1234567890\")},\n\t\t{name: \"-123\", input: []byte(\"-123\"), _type: Number, value: []byte(\"-123\")},\n\n\t\t{name: \"123.456\", input: []byte(\"123.456\"), _type: Number, value: []byte(\"123.456\")},\n\t\t{name: \"-123.456\", input: []byte(\"-123.456\"), _type: Number, value: []byte(\"-123.456\")},\n\n\t\t{name: \"1e3\", input: []byte(\"1e3\"), _type: Number, value: []byte(\"1e3\")},\n\t\t{name: \"1e+3\", input: []byte(\"1e+3\"), _type: Number, value: []byte(\"1e+3\")},\n\t\t{name: \"1e-3\", input: []byte(\"1e-3\"), _type: Number, value: []byte(\"1e-3\")},\n\t\t{name: \"-1e3\", input: []byte(\"-1e3\"), _type: Number, value: []byte(\"-1e3\")},\n\t\t{name: \"-1e-3\", input: []byte(\"-1e-3\"), _type: Number, value: []byte(\"-1e-3\")},\n\n\t\t{name: \"1.123e3456\", input: []byte(\"1.123e3456\"), _type: Number, value: []byte(\"1.123e3456\")},\n\t\t{name: \"1.123e-3456\", input: []byte(\"1.123e-3456\"), _type: Number, value: []byte(\"1.123e-3456\")},\n\t\t{name: \"-1.123e3456\", input: []byte(\"-1.123e3456\"), _type: Number, value: []byte(\"-1.123e3456\")},\n\t\t{name: \"-1.123e-3456\", input: []byte(\"-1.123e-3456\"), _type: Number, value: []byte(\"-1.123e-3456\")},\n\n\t\t{name: \"1E3\", input: []byte(\"1E3\"), _type: Number, value: []byte(\"1E3\")},\n\t\t{name: \"1E-3\", input: []byte(\"1E-3\"), _type: Number, value: []byte(\"1E-3\")},\n\t\t{name: \"-1E3\", input: []byte(\"-1E3\"), _type: Number, value: []byte(\"-1E3\")},\n\t\t{name: \"-1E-3\", input: []byte(\"-1E-3\"), _type: Number, value: []byte(\"-1E-3\")},\n\n\t\t{name: \"1.123E3456\", input: []byte(\"1.123E3456\"), _type: Number, value: []byte(\"1.123E3456\")},\n\t\t{name: \"1.123E-3456\", input: []byte(\"1.123E-3456\"), _type: Number, value: []byte(\"1.123E-3456\")},\n\t\t{name: \"-1.123E3456\", input: []byte(\"-1.123E3456\"), _type: Number, value: []byte(\"-1.123E3456\")},\n\t\t{name: \"-1.123E-3456\", input: []byte(\"-1.123E-3456\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\n\t\t{name: \"-1.123E-3456 with spaces\", input: []byte(\" \\r -1.123E-3456 \\t\\n\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(test.input)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.name, err.Error())\n\t\t\t} else if root == nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t\t\t} else if root.nodeType != test._type {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t\t\t} else if !bytes.Equal(root.source(), test.value) {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_StringSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"white NL\", input: []byte(\"\\\"foo\\nbar\\\"\")},\n\t\t{name: \"white R\", input: []byte(\"\\\"foo\\rbar\\\"\")},\n\t\t{name: \"white Tab\", input: []byte(\"\\\"foo\\tbar\\\"\")},\n\t\t{name: \"wrong quotes\", input: []byte(\"'cat'\")},\n\t\t{name: \"double string\", input: []byte(\"\\\"Hello\\\" \\\"World\\\"\")},\n\t\t{name: \"quotes in quotes\", input: []byte(\"\\\"good \\\"cat\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"{}\", input: []byte(\"{}\"), _type: Object, value: []byte(\"{}\")},\n\t\t{name: `{ \\r\\n }`, input: []byte(\"{ \\r\\n }\"), _type: Object, value: []byte(\"{ \\r\\n }\")},\n\t\t{name: `{\"key\":1}`, input: []byte(`{\"key\":1}`), _type: Object, value: []byte(`{\"key\":1}`)},\n\t\t{name: `{\"key\":true}`, input: []byte(`{\"key\":true}`), _type: Object, value: []byte(`{\"key\":true}`)},\n\t\t{name: `{\"key\":\"value\"}`, input: []byte(`{\"key\":\"value\"}`), _type: Object, value: []byte(`{\"key\":\"value\"}`)},\n\t\t{name: `{\"foo\":\"bar\",\"baz\":\"foo\"}`, input: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`), _type: Object, value: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`)},\n\t\t{name: \"spaces\", input: []byte(` { \"foo\" : \"bar\" , \"baz\" : \"foo\" } `), _type: Object, value: []byte(`{ \"foo\" : \"bar\" , \"baz\" : \"foo\" }`)},\n\t\t{name: \"nested\", input: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`), _type: Object, value: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`)},\n\t\t{name: \"array\", input: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`), _type: Object, value: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`)},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"{{{\\\"key\\\": \\\"foo\\\"{{{{\"),\n\t\tsimpleCorrupted(\"}\"),\n\t\tsimpleCorrupted(\"{ }}}}}}}\"),\n\t\tsimpleCorrupted(\" }\"),\n\t\tsimpleCorrupted(\"{,}\"),\n\t\tsimpleCorrupted(\"{:}\"),\n\t\tsimpleCorrupted(\"{100000}\"),\n\t\tsimpleCorrupted(\"{1:1}\"),\n\t\tsimpleCorrupted(\"{'1:2,3:4'}\"),\n\t\tsimpleCorrupted(`{\"d\"}`),\n\t\tsimpleCorrupted(`{\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":}`),\n\t\tsimpleCorrupted(`{:\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":bar}`),\n\t\tsimpleCorrupted(`{\"foo\":\"bar\",}`),\n\t\tsimpleCorrupted(`{}{}`),\n\t\tsimpleCorrupted(`{},{}`),\n\t\tsimpleCorrupted(`{[},{]}`),\n\t\tsimpleCorrupted(`{[,]}`),\n\t\tsimpleCorrupted(`{[]}`),\n\t\tsimpleCorrupted(`{}1`),\n\t\tsimpleCorrupted(`1{}`),\n\t\tsimpleCorrupted(`{\"x\"::1}`),\n\t\tsimpleCorrupted(`{null:null}`),\n\t\tsimpleCorrupted(`{\"foo:\"bar\"}`),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NullSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"nul\", input: []byte(\"nul\")},\n\t\t{name: \"nil\", input: []byte(\"nil\")},\n\t\t{name: \"nill\", input: []byte(\"nill\")},\n\t\t{name: \"NILL\", input: []byte(\"NILL\")},\n\t\t{name: \"Null\", input: []byte(\"Null\")},\n\t\t{name: \"NULL\", input: []byte(\"NULL\")},\n\t\t{name: \"spaces\", input: []byte(\"Nu ll\")},\n\t\t{name: \"null1\", input: []byte(\"null1\")},\n\t\t{name: \"double\", input: []byte(\"null null\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"lower true\", input: []byte(\"true\"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"lower false\", input: []byte(\"false\"), _type: Boolean, value: []byte(\"false\")},\n\t\t{name: \"spaces true\", input: []byte(\" true\\r\\n \"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"spaces false\", input: []byte(\" false\\r\\n \"), _type: Boolean, value: []byte(\"false\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"tru\"),\n\t\tsimpleCorrupted(\"fals\"),\n\t\tsimpleCorrupted(\"tre\"),\n\t\tsimpleCorrupted(\"fal se\"),\n\t\tsimpleCorrupted(\"true false\"),\n\t\tsimpleCorrupted(\"True\"),\n\t\tsimpleCorrupted(\"TRUE\"),\n\t\tsimpleCorrupted(\"False\"),\n\t\tsimpleCorrupted(\"FALSE\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"[]\", input: []byte(\"[]\"), _type: Array, value: []byte(\"[]\")},\n\t\t{name: \"[1]\", input: []byte(\"[1]\"), _type: Array, value: []byte(\"[1]\")},\n\t\t{name: \"[1,2,3]\", input: []byte(\"[1,2,3]\"), _type: Array, value: []byte(\"[1,2,3]\")},\n\t\t{name: \"[1, 2, 3]\", input: []byte(\"[1, 2, 3]\"), _type: Array, value: []byte(\"[1, 2, 3]\")},\n\t\t{name: \"[1,[2],3]\", input: []byte(\"[1,[2],3]\"), _type: Array, value: []byte(\"[1,[2],3]\")},\n\t\t{name: \"[[],[],[]]\", input: []byte(\"[[],[],[]]\"), _type: Array, value: []byte(\"[[],[],[]]\")},\n\t\t{name: \"[[[[[]]]]]\", input: []byte(\"[[[[[]]]]]\"), _type: Array, value: []byte(\"[[[[[]]]]]\")},\n\t\t{name: \"[true,null,1,\\\"foo\\\",[]]\", input: []byte(\"[true,null,1,\\\"foo\\\",[]]\"), _type: Array, value: []byte(\"[true,null,1,\\\"foo\\\",[]]\")},\n\t\t{name: \"spaces\", input: []byte(\"\\n\\r [\\n1\\n ]\\r\\n\"), _type: Array, value: []byte(\"[\\n1\\n ]\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"[,]\"),\n\t\tsimpleCorrupted(\"[]\\\\\"),\n\t\tsimpleCorrupted(\"[1,]\"),\n\t\tsimpleCorrupted(\"[[]\"),\n\t\tsimpleCorrupted(\"[]]\"),\n\t\tsimpleCorrupted(\"1[]\"),\n\t\tsimpleCorrupted(\"[]1\"),\n\t\tsimpleCorrupted(\"[[]1]\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\n// Examples from https://json.org/example.html\nfunc TestUnmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalue string\n\t}{\n\t\t{\n\t\t\tname: \"glossary\",\n\t\t\tvalue: `{\n\t\t\t\t\"glossary\": {\n\t\t\t\t\t\"title\": \"example glossary\",\n\t\t\t\t\t\"GlossDiv\": {\n\t\t\t\t\t\t\"title\": \"S\",\n\t\t\t\t\t\t\"GlossList\": {\n\t\t\t\t\t\t\t\"GlossEntry\": {\n\t\t\t\t\t\t\t\t\"ID\": \"SGML\",\n\t\t\t\t\t\t\t\t\"SortAs\": \"SGML\",\n\t\t\t\t\t\t\t\t\"GlossTerm\": \"Standard Generalized Markup Language\",\n\t\t\t\t\t\t\t\t\"Acronym\": \"SGML\",\n\t\t\t\t\t\t\t\t\"Abbrev\": \"ISO 8879:1986\",\n\t\t\t\t\t\t\t\t\"GlossDef\": {\n\t\t\t\t\t\t\t\t\t\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\",\n\t\t\t\t\t\t\t\t\t\"GlossSeeAlso\": [\"GML\", \"XML\"]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"GlossSee\": \"markup\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`,\n\t\t},\n\t\t{\n\t\t\tname: \"menu\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"id\": \"file\",\n\t\t\t\t\"value\": \"File\",\n\t\t\t\t\"popup\": {\n\t\t\t\t \"menuitem\": [\n\t\t\t\t\t{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n\t\t\t\t\t{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n\t\t\t\t\t{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n\t\t\t\t ]\n\t\t\t\t}\n\t\t\t}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"widget\",\n\t\t\tvalue: `{\"widget\": {\n\t\t\t\t\"debug\": \"on\",\n\t\t\t\t\"window\": {\n\t\t\t\t\t\"title\": \"Sample Konfabulator Widget\",\n\t\t\t\t\t\"name\": \"main_window\",\n\t\t\t\t\t\"width\": 500,\n\t\t\t\t\t\"height\": 500\n\t\t\t\t},\n\t\t\t\t\"image\": { \n\t\t\t\t\t\"src\": \"Images/Sun.png\",\n\t\t\t\t\t\"name\": \"sun1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 250,\n\t\t\t\t\t\"alignment\": \"center\"\n\t\t\t\t},\n\t\t\t\t\"text\": {\n\t\t\t\t\t\"data\": \"Click Here\",\n\t\t\t\t\t\"size\": 36,\n\t\t\t\t\t\"style\": \"bold\",\n\t\t\t\t\t\"name\": \"text1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 100,\n\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\"onMouseUp\": \"sun1.opacity = (sun1.opacity / 100) * 90;\"\n\t\t\t\t}\n\t\t\t}} `,\n\t\t},\n\t\t{\n\t\t\tname: \"web-app\",\n\t\t\tvalue: `{\"web-app\": {\n\t\t\t\t\"servlet\": [ \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxCDS\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.CDSServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"configGlossary:installationAt\": \"Philadelphia, PA\",\n\t\t\t\t\t \"configGlossary:adminEmail\": \"ksm@pobox.com\",\n\t\t\t\t\t \"configGlossary:poweredBy\": \"Cofax\",\n\t\t\t\t\t \"configGlossary:poweredByIcon\": \"/images/cofax.gif\",\n\t\t\t\t\t \"configGlossary:staticPath\": \"/content/static\",\n\t\t\t\t\t \"templateProcessorClass\": \"org.cofax.WysiwygTemplate\",\n\t\t\t\t\t \"templateLoaderClass\": \"org.cofax.FilesTemplateLoader\",\n\t\t\t\t\t \"templatePath\": \"templates\",\n\t\t\t\t\t \"templateOverridePath\": \"\",\n\t\t\t\t\t \"defaultListTemplate\": \"listTemplate.htm\",\n\t\t\t\t\t \"defaultFileTemplate\": \"articleTemplate.htm\",\n\t\t\t\t\t \"useJSP\": false,\n\t\t\t\t\t \"jspListTemplate\": \"listTemplate.jsp\",\n\t\t\t\t\t \"jspFileTemplate\": \"articleTemplate.jsp\",\n\t\t\t\t\t \"cachePackageTagsTrack\": 200,\n\t\t\t\t\t \"cachePackageTagsStore\": 200,\n\t\t\t\t\t \"cachePackageTagsRefresh\": 60,\n\t\t\t\t\t \"cacheTemplatesTrack\": 100,\n\t\t\t\t\t \"cacheTemplatesStore\": 50,\n\t\t\t\t\t \"cacheTemplatesRefresh\": 15,\n\t\t\t\t\t \"cachePagesTrack\": 200,\n\t\t\t\t\t \"cachePagesStore\": 100,\n\t\t\t\t\t \"cachePagesRefresh\": 10,\n\t\t\t\t\t \"cachePagesDirtyRead\": 10,\n\t\t\t\t\t \"searchEngineListTemplate\": \"forSearchEnginesList.htm\",\n\t\t\t\t\t \"searchEngineFileTemplate\": \"forSearchEngines.htm\",\n\t\t\t\t\t \"searchEngineRobotsDb\": \"WEB-INF/robots.db\",\n\t\t\t\t\t \"useDataStore\": true,\n\t\t\t\t\t \"dataStoreClass\": \"org.cofax.SqlDataStore\",\n\t\t\t\t\t \"redirectionClass\": \"org.cofax.SqlRedirection\",\n\t\t\t\t\t \"dataStoreName\": \"cofax\",\n\t\t\t\t\t \"dataStoreDriver\": \"com.microsoft.jdbc.sqlserver.SQLServerDriver\",\n\t\t\t\t\t \"dataStoreUrl\": \"jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon\",\n\t\t\t\t\t \"dataStoreUser\": \"sa\",\n\t\t\t\t\t \"dataStorePassword\": \"dataStoreTestQuery\",\n\t\t\t\t\t \"dataStoreTestQuery\": \"SET NOCOUNT ON;select test='test';\",\n\t\t\t\t\t \"dataStoreLogFile\": \"/usr/local/tomcat/logs/datastore.log\",\n\t\t\t\t\t \"dataStoreInitConns\": 10,\n\t\t\t\t\t \"dataStoreMaxConns\": 100,\n\t\t\t\t\t \"dataStoreConnUsageLimit\": 100,\n\t\t\t\t\t \"dataStoreLogLevel\": \"debug\",\n\t\t\t\t\t \"maxUrlLength\": 500}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxEmail\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.EmailServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t\"mailHost\": \"mail1\",\n\t\t\t\t\t\"mailHostOverride\": \"mail2\"}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxAdmin\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.AdminServlet\"},\n\t\t\t \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"fileServlet\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.FileServlet\"},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxTools\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cms.CofaxToolsServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"templatePath\": \"toolstemplates/\",\n\t\t\t\t\t \"log\": 1,\n\t\t\t\t\t \"logLocation\": \"/usr/local/tomcat/logs/CofaxTools.log\",\n\t\t\t\t\t \"logMaxSize\": \"\",\n\t\t\t\t\t \"dataLog\": 1,\n\t\t\t\t\t \"dataLogLocation\": \"/usr/local/tomcat/logs/dataLog.log\",\n\t\t\t\t\t \"dataLogMaxSize\": \"\",\n\t\t\t\t\t \"removePageCache\": \"/content/admin/remove?cache=pages\u0026id=\",\n\t\t\t\t\t \"removeTemplateCache\": \"/content/admin/remove?cache=templates\u0026id=\",\n\t\t\t\t\t \"fileTransferFolder\": \"/usr/local/tomcat/webapps/content/fileTransferFolder\",\n\t\t\t\t\t \"lookInContext\": 1,\n\t\t\t\t\t \"adminGroupID\": 4,\n\t\t\t\t\t \"betaServer\": true}}],\n\t\t\t\t\"servlet-mapping\": {\n\t\t\t\t \"cofaxCDS\": \"/\",\n\t\t\t\t \"cofaxEmail\": \"/cofaxutil/aemail/*\",\n\t\t\t\t \"cofaxAdmin\": \"/admin/*\",\n\t\t\t\t \"fileServlet\": \"/static/*\",\n\t\t\t\t \"cofaxTools\": \"/tools/*\"},\n\t\t\t \n\t\t\t\t\"taglib\": {\n\t\t\t\t \"taglib-uri\": \"cofax.tld\",\n\t\t\t\t \"taglib-location\": \"/WEB-INF/tlds/cofax.tld\"}}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"SVG Viewer\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"header\": \"SVG Viewer\",\n\t\t\t\t\"items\": [\n\t\t\t\t\t{\"id\": \"Open\"},\n\t\t\t\t\t{\"id\": \"OpenNew\", \"label\": \"Open New\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"ZoomIn\", \"label\": \"Zoom In\"},\n\t\t\t\t\t{\"id\": \"ZoomOut\", \"label\": \"Zoom Out\"},\n\t\t\t\t\t{\"id\": \"OriginalView\", \"label\": \"Original View\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Quality\"},\n\t\t\t\t\t{\"id\": \"Pause\"},\n\t\t\t\t\t{\"id\": \"Mute\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Find\", \"label\": \"Find...\"},\n\t\t\t\t\t{\"id\": \"FindAgain\", \"label\": \"Find Again\"},\n\t\t\t\t\t{\"id\": \"Copy\"},\n\t\t\t\t\t{\"id\": \"CopyAgain\", \"label\": \"Copy Again\"},\n\t\t\t\t\t{\"id\": \"CopySVG\", \"label\": \"Copy SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSVG\", \"label\": \"View SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSource\", \"label\": \"View Source\"},\n\t\t\t\t\t{\"id\": \"SaveAs\", \"label\": \"Save As\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Help\"},\n\t\t\t\t\t{\"id\": \"About\", \"label\": \"About Adobe CVG Viewer...\"}\n\t\t\t\t]\n\t\t\t}}`,\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\t_, err := Unmarshal([]byte(test.value))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalSafe(t *testing.T) {\n\tjson := []byte(`{ \"store\": {\n\t\t\"book\": [ \n\t\t { \"category\": \"reference\",\n\t\t\t\"author\": \"Nigel Rees\",\n\t\t\t\"title\": \"Sayings of the Century\",\n\t\t\t\"price\": 8.95\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Evelyn Waugh\",\n\t\t\t\"title\": \"Sword of Honour\",\n\t\t\t\"price\": 12.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Herman Melville\",\n\t\t\t\"title\": \"Moby Dick\",\n\t\t\t\"isbn\": \"0-553-21311-3\",\n\t\t\t\"price\": 8.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"J. R. R. Tolkien\",\n\t\t\t\"title\": \"The Lord of the Rings\",\n\t\t\t\"isbn\": \"0-395-19395-8\",\n\t\t\t\"price\": 22.99\n\t\t }\n\t\t],\n\t\t\"bicycle\": {\n\t\t \"color\": \"red\",\n\t\t \"price\": 19.95\n\t\t}\n\t }\n\t}`)\n\tsafe, err := UnmarshalSafe(json)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t} else if safe == nil {\n\t\tt.Errorf(\"Error on Unmarshal: safe is nil\")\n\t} else {\n\t\troot, err := Unmarshal(json)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t} else if root == nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t\t} else if !bytes.Equal(root.source(), safe.source()) {\n\t\t\tt.Errorf(\"Error on UnmarshalSafe: values not same\")\n\t\t}\n\t}\n}\n\n// BenchmarkGoStdUnmarshal-8 \t 61698\t 19350 ns/op\t 288 B/op\t 6 allocs/op\n// BenchmarkUnmarshal-8 \t 45620\t 26165 ns/op\t 21889 B/op\t 367 allocs/op\n//\n// type bench struct {\n// \tName string `json:\"name\"`\n// \tValue int `json:\"value\"`\n// }\n\n// func BenchmarkGoStdUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\terr := json.Unmarshal(data, \u0026bench{})\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n\n// func BenchmarkUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\t_, err := Unmarshal(data)\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n"},{"name":"encode.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Marshal returns the JSON encoding of a Node.\nfunc Marshal(node *Node) ([]byte, error) {\n\tvar (\n\t\tbuf bytes.Buffer\n\t\tsVal string\n\t\tbVal bool\n\t\tnVal float64\n\t\toVal []byte\n\t\terr error\n\t)\n\n\tif node == nil {\n\t\treturn nil, errors.New(\"node is nil\")\n\t}\n\n\tif !node.modified \u0026\u0026 !node.ready() {\n\t\treturn nil, errors.New(\"node is not ready\")\n\t}\n\n\tif !node.modified \u0026\u0026 node.ready() {\n\t\tbuf.Write(node.source())\n\t}\n\n\tif node.modified {\n\t\tswitch node.nodeType {\n\t\tcase Null:\n\t\t\tbuf.Write(nullLiteral)\n\n\t\tcase Number:\n\t\t\tnVal, err = node.GetNumeric()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnum := strconv.FormatFloat(nVal, 'f', -1, 64)\n\t\t\tbuf.WriteString(num)\n\n\t\tcase String:\n\t\t\tsVal, err = node.GetString()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tquoted := ufmt.Sprintf(\"%s\", strconv.Quote(sVal))\n\t\t\tbuf.WriteString(quoted)\n\n\t\tcase Boolean:\n\t\t\tbVal, err = node.GetBool()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tbStr := ufmt.Sprintf(\"%t\", bVal)\n\t\t\tbuf.WriteString(bStr)\n\n\t\tcase Array:\n\t\t\tbuf.WriteByte(bracketOpen)\n\n\t\t\tfor i := 0; i \u003c len(node.next); i++ {\n\t\t\t\tif i != 0 {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t}\n\n\t\t\t\telem, ok := node.next[strconv.Itoa(i)]\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, ufmt.Errorf(\"array element %d is not found\", i)\n\t\t\t\t}\n\n\t\t\t\toVal, err = Marshal(elem)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(bracketClose)\n\n\t\tcase Object:\n\t\t\tbuf.WriteByte(curlyOpen)\n\n\t\t\tbVal = false\n\t\t\tfor k, v := range node.next {\n\t\t\t\tif bVal {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t} else {\n\t\t\t\t\tbVal = true\n\t\t\t\t}\n\n\t\t\t\tkey := ufmt.Sprintf(\"%s\", strconv.Quote(k))\n\t\t\t\tbuf.WriteString(key)\n\t\t\t\tbuf.WriteByte(colon)\n\n\t\t\t\toVal, err = Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(curlyClose)\n\t\t}\n\t}\n\n\treturn buf.Bytes(), nil\n}\n"},{"name":"encode_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestMarshal_Primitive(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t}{\n\t\t{\n\t\t\tname: \"null\",\n\t\t\tnode: NullNode(\"\"),\n\t\t},\n\t\t{\n\t\t\tname: \"true\",\n\t\t\tnode: BoolNode(\"\", true),\n\t\t},\n\t\t{\n\t\t\tname: \"false\",\n\t\t\tnode: BoolNode(\"\", false),\n\t\t},\n\t\t{\n\t\t\tname: `\"string\"`,\n\t\t\tnode: StringNode(\"\", \"string\"),\n\t\t},\n\t\t{\n\t\t\tname: `\"one \\\"encoded\\\" string\"`,\n\t\t\tnode: StringNode(\"\", `one \"encoded\" string`),\n\t\t},\n\t\t{\n\t\t\tname: `{\"foo\":\"bar\"}`,\n\t\t\tnode: ObjectNode(\"\", map[string]*Node{\n\t\t\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tname: \"42\",\n\t\t\tnode: NumberNode(\"\", 42),\n\t\t},\n\t\t{\n\t\t\tname: \"3.14\",\n\t\t\tnode: NumberNode(\"\", 3.14),\n\t\t},\n\t\t{\n\t\t\tname: `[1,2,3]`,\n\t\t\tnode: ArrayNode(\"\", []*Node{\n\t\t\t\tNumberNode(\"0\", 1),\n\t\t\t\tNumberNode(\"2\", 2),\n\t\t\t\tNumberNode(\"3\", 3),\n\t\t\t}),\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t} else if string(value) != test.name {\n\t\t\t\tt.Errorf(\"wrong result: '%s', expected '%s'\", value, test.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Object(t *testing.T) {\n\tnode := ObjectNode(\"\", map[string]*Node{\n\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\"baz\": NumberNode(\"baz\", 100500),\n\t\t\"qux\": NullNode(\"qux\"),\n\t})\n\n\tmustKey := []string{\"foo\", \"baz\", \"qux\"}\n\n\tvalue, err := Marshal(node)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\t// the order of keys in the map is not guaranteed\n\t// so we need to unmarshal the result and check the keys\n\tdecoded, err := Unmarshal(value)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\tfor _, key := range mustKey {\n\t\tif node, err := decoded.GetKey(key); err != nil {\n\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t} else {\n\t\t\tif node == nil {\n\t\t\t\tt.Errorf(\"node is nil\")\n\t\t\t} else if node.key == nil {\n\t\t\t\tt.Errorf(\"key is nil\")\n\t\t\t} else if *node.key != key {\n\t\t\t\tt.Errorf(\"wrong key: '%s', expected '%s'\", *node.key, key)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc valueNode(prev *Node, key string, typ ValueType, val interface{}) *Node {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: nil,\n\t\tkey: \u0026key,\n\t\tborders: [2]int{0, 0},\n\t\tvalue: val,\n\t\tmodified: true,\n\t}\n\n\tif val != nil {\n\t\tcurr.nodeType = typ\n\t}\n\n\treturn curr\n}\n\nfunc TestMarshal_Errors(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode func() (node *Node)\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"broken\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = Must(Unmarshal([]byte(`{}`)))\n\t\t\t\tnode.borders[1] = 0\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Numeric\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Number, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"String\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", String, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Bool\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Boolean, 1)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_1\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = ArrayNode(\"\", nil)\n\t\t\t\tnode.next[\"1\"] = NullNode(\"1\")\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_2\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ArrayNode(\"\", []*Node{valueNode(nil, \"\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Object\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ObjectNode(\"\", map[string]*Node{\"key\": valueNode(nil, \"key\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node())\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"expected error\")\n\t\t\t} else if len(value) != 0 {\n\t\t\t\tt.Errorf(\"wrong result\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Nil(t *testing.T) {\n\t_, err := Marshal(nil)\n\tif err == nil {\n\t\tt.Error(\"Expected error for nil node, but got nil\")\n\t}\n}\n\nfunc TestMarshal_NotModified(t *testing.T) {\n\tnode := \u0026Node{}\n\t_, err := Marshal(node)\n\tif err == nil {\n\t\tt.Error(\"Expected error for not modified node, but got nil\")\n\t}\n}\n\nfunc TestMarshalCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tnext: map[string]*Node{\n\t\t\t\"next\": nil,\n\t\t},\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tprev: node1,\n\t}\n\n\tnode1.next[\"next\"] = node2\n\n\t_, err := Marshal(node1)\n\tif err == nil {\n\t\tt.Error(\"Expected error for cycle reference, but got nil\")\n\t}\n}\n\nfunc TestMarshalNoCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tvalue: \"value1\",\n\t\tmodified: true,\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tvalue: \"value2\",\n\t\tmodified: true,\n\t}\n\n\t_, err := Marshal(node1)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n\n\t_, err = Marshal(node2)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n}\n\nfunc stringPtr(s string) *string {\n\treturn \u0026s\n}\n"},{"name":"errors.gno","body":"package json\n\nimport \"errors\"\n\nvar (\n\terrNilNode = errors.New(\"node is nil\")\n\terrNotArrayNode = errors.New(\"node is not array\")\n\terrNotBoolNode = errors.New(\"node is not boolean\")\n\terrNotNullNode = errors.New(\"node is not null\")\n\terrNotNumberNode = errors.New(\"node is not number\")\n\terrNotObjectNode = errors.New(\"node is not object\")\n\terrNotStringNode = errors.New(\"node is not string\")\n\terrInvalidToken = errors.New(\"invalid token\")\n\terrIndexNotFound = errors.New(\"index not found\")\n\terrInvalidAppend = errors.New(\"can't append value to non-appendable node\")\n\terrInvalidAppendCycle = errors.New(\"appending value to itself or its children or parents will cause a cycle\")\n\terrInvalidEscapeSequence = errors.New(\"invalid escape sequence\")\n\terrInvalidStringValue = errors.New(\"invalid string value\")\n\terrEmptyBooleanNode = errors.New(\"boolean node is empty\")\n\terrEmptyStringNode = errors.New(\"string node is empty\")\n\terrKeyRequired = errors.New(\"key is required for object\")\n\terrUnmatchedParenthesis = errors.New(\"mismatched bracket or parenthesis\")\n\terrUnmatchedQuotePath = errors.New(\"unmatched quote in path\")\n)\n\nvar (\n\terrInvalidStringInput = errors.New(\"invalid string input\")\n\terrMalformedBooleanValue = errors.New(\"malformed boolean value\")\n\terrEmptyByteSlice = errors.New(\"empty byte slice\")\n\terrInvalidExponentValue = errors.New(\"invalid exponent value\")\n\terrNonDigitCharacters = errors.New(\"non-digit characters found\")\n\terrNumericRangeExceeded = errors.New(\"numeric value exceeds the range limit\")\n\terrMultipleDecimalPoints = errors.New(\"multiple decimal points found\")\n)\n"},{"name":"escape.gno","body":"package json\n\nimport (\n\t\"unicode/utf8\"\n)\n\nconst (\n\tsupplementalPlanesOffset = 0x10000\n\thighSurrogateOffset = 0xD800\n\tlowSurrogateOffset = 0xDC00\n\tsurrogateEnd = 0xDFFF\n\tbasicMultilingualPlaneOffset = 0xFFFF\n\tbadHex = -1\n\n\tsingleUnicodeEscapeLen = 6\n\tsurrogatePairLen = 12\n)\n\nvar hexLookupTable = [256]int{\n\t'0': 0x0, '1': 0x1, '2': 0x2, '3': 0x3, '4': 0x4,\n\t'5': 0x5, '6': 0x6, '7': 0x7, '8': 0x8, '9': 0x9,\n\t'A': 0xA, 'B': 0xB, 'C': 0xC, 'D': 0xD, 'E': 0xE, 'F': 0xF,\n\t'a': 0xA, 'b': 0xB, 'c': 0xC, 'd': 0xD, 'e': 0xE, 'f': 0xF,\n\t// Fill unspecified index-value pairs with key and value of -1\n\t'G': -1, 'H': -1, 'I': -1, 'J': -1,\n\t'K': -1, 'L': -1, 'M': -1, 'N': -1,\n\t'O': -1, 'P': -1, 'Q': -1, 'R': -1,\n\t'S': -1, 'T': -1, 'U': -1, 'V': -1,\n\t'W': -1, 'X': -1, 'Y': -1, 'Z': -1,\n\t'g': -1, 'h': -1, 'i': -1, 'j': -1,\n\t'k': -1, 'l': -1, 'm': -1, 'n': -1,\n\t'o': -1, 'p': -1, 'q': -1, 'r': -1,\n\t's': -1, 't': -1, 'u': -1, 'v': -1,\n\t'w': -1, 'x': -1, 'y': -1, 'z': -1,\n}\n\nfunc h2i(c byte) int {\n\treturn hexLookupTable[c]\n}\n\n// Unescape takes an input byte slice, processes it to Unescape certain characters,\n// and writes the result into an output byte slice.\n//\n// it returns the processed slice and any error encountered during the Unescape operation.\nfunc Unescape(input, output []byte) ([]byte, error) {\n\t// ensure the output slice has enough capacity to hold the input slice.\n\tinputLen := len(input)\n\tif cap(output) \u003c inputLen {\n\t\toutput = make([]byte, inputLen)\n\t}\n\n\tinPos, outPos := 0, 0\n\n\tfor inPos \u003c len(input) {\n\t\tc := input[inPos]\n\t\tif c != backSlash {\n\t\t\toutput[outPos] = c\n\t\t\tinPos++\n\t\t\toutPos++\n\t\t} else {\n\t\t\t// process escape sequence\n\t\t\tinLen, outLen, err := processEscapedUTF8(input[inPos:], output[outPos:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tinPos += inLen\n\t\t\toutPos += outLen\n\t\t}\n\t}\n\n\treturn output[:outPos], nil\n}\n\n// isSurrogatePair returns true if the rune is a surrogate pair.\n//\n// A surrogate pairs are used in UTF-16 encoding to encode characters\n// outside the Basic Multilingual Plane (BMP).\nfunc isSurrogatePair(r rune) bool {\n\treturn highSurrogateOffset \u003c= r \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// isHighSurrogate checks if the rune is a high surrogate (U+D800 to U+DBFF).\nfunc isHighSurrogate(r rune) bool {\n\treturn r \u003e= highSurrogateOffset \u0026\u0026 r \u003c= 0xDBFF\n}\n\n// isLowSurrogate checks if the rune is a low surrogate (U+DC00 to U+DFFF).\nfunc isLowSurrogate(r rune) bool {\n\treturn r \u003e= lowSurrogateOffset \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// combineSurrogates reconstruct the original unicode code points in the\n// supplemental plane by combinin the high and low surrogate.\n//\n// The hight surrogate in the range from U+D800 to U+DBFF,\n// and the low surrogate in the range from U+DC00 to U+DFFF.\n//\n// The formula to combine the surrogates is:\n// (high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000\nfunc combineSurrogates(high, low rune) rune {\n\treturn ((high - highSurrogateOffset) \u003c\u003c 10) + (low - lowSurrogateOffset) + supplementalPlanesOffset\n}\n\n// deocdeSingleUnicodeEscape decodes a unicode escape sequence (e.g., \\uXXXX) into a rune.\nfunc decodeSingleUnicodeEscape(b []byte) (rune, bool) {\n\tif len(b) \u003c 6 {\n\t\treturn utf8.RuneError, false\n\t}\n\n\t// convert hex to decimal\n\th1, h2, h3, h4 := h2i(b[2]), h2i(b[3]), h2i(b[4]), h2i(b[5])\n\tif h1 == badHex || h2 == badHex || h3 == badHex || h4 == badHex {\n\t\treturn utf8.RuneError, false\n\t}\n\n\treturn rune(h1\u003c\u003c12 + h2\u003c\u003c8 + h3\u003c\u003c4 + h4), true\n}\n\n// decodeUnicodeEscape decodes a Unicode escape sequence from a byte slice.\n// It handles both single Unicode escape sequences and surrogate pairs.\nfunc decodeUnicodeEscape(b []byte) (rune, int) {\n\t// decode the first Unicode escape sequence.\n\tr, ok := decodeSingleUnicodeEscape(b)\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is within the BMP and not a surrogate, return it\n\tif r \u003c= basicMultilingualPlaneOffset \u0026\u0026 !isSurrogatePair(r) {\n\t\treturn r, 6\n\t}\n\n\tif !isHighSurrogate(r) {\n\t\t// invalid surrogate pair.\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is a high surrogate, need to decode the next escape sequence.\n\n\t// ensure there are enough bytes for the next escape sequence.\n\tif len(b) \u003c surrogatePairLen {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// decode the second Unicode escape sequence.\n\tr2, ok := decodeSingleUnicodeEscape(b[singleUnicodeEscapeLen:])\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// check if the second rune is a low surrogate.\n\tif isLowSurrogate(r2) {\n\t\tcombined := combineSurrogates(r, r2)\n\t\treturn combined, surrogatePairLen\n\t}\n\treturn utf8.RuneError, -1\n}\n\nvar escapeByteSet = [256]byte{\n\t'\"': doubleQuote,\n\t'\\\\': backSlash,\n\t'/': slash,\n\t'b': backSpace,\n\t'f': formFeed,\n\t'n': newLine,\n\t'r': carriageReturn,\n\t't': tab,\n}\n\n// Unquote takes a byte slice and unquotes it by removing\n// the surrounding quotes and unescaping the contents.\nfunc Unquote(s []byte, border byte) (string, bool) {\n\ts, ok := unquoteBytes(s, border)\n\treturn string(s), ok\n}\n\n// unquoteBytes takes a byte slice and unquotes it by removing\nfunc unquoteBytes(s []byte, border byte) ([]byte, bool) {\n\tif len(s) \u003c 2 || s[0] != border || s[len(s)-1] != border {\n\t\treturn nil, false\n\t}\n\n\ts = s[1 : len(s)-1]\n\n\tr := 0\n\tfor r \u003c len(s) {\n\t\tc := s[r]\n\n\t\tif c == backSlash || c == border || c \u003c 0x20 {\n\t\t\tbreak\n\t\t}\n\n\t\tif c \u003c utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\tbreak\n\t\t}\n\n\t\tr += size\n\t}\n\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tutfDoubleMax := utf8.UTFMax * 2\n\tb := make([]byte, len(s)+utfDoubleMax)\n\tw := copy(b, s[0:r])\n\n\tfor r \u003c len(s) {\n\t\tif w \u003e= len(b)-utf8.UTFMax {\n\t\t\tnb := make([]byte, utfDoubleMax+(2*len(b)))\n\t\t\tcopy(nb, b)\n\t\t\tb = nb\n\t\t}\n\n\t\tc := s[r]\n\t\tif c == backSlash {\n\t\t\tr++\n\t\t\tif r \u003e= len(s) {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tif s[r] == 'u' {\n\t\t\t\trr, res := decodeUnicodeEscape(s[r-1:])\n\t\t\t\tif res \u003c 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t\t\tr += 5\n\t\t\t} else {\n\t\t\t\tdecode := escapeByteSet[s[r]]\n\t\t\t\tif decode == 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tif decode == doubleQuote || decode == backSlash || decode == slash {\n\t\t\t\t\tdecode = s[r]\n\t\t\t\t}\n\n\t\t\t\tb[w] = decode\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\t}\n\t\t} else if c == border || c \u003c 0x20 {\n\t\t\treturn nil, false\n\t\t} else if c \u003c utf8.RuneSelf {\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\t\t} else {\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\n\t\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\n\treturn b[:w], true\n}\n\n// processEscapedUTF8 converts escape sequences to UTF-8 characters.\n// It decodes Unicode escape sequences (\\uXXXX) to UTF-8 and\n// converts standard escape sequences (e.g., \\n) to their corresponding special characters.\nfunc processEscapedUTF8(in, out []byte) (int, int, error) {\n\tif len(in) \u003c 2 || in[0] != backSlash {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\tescapeSeqLen := 2\n\tescapeChar := in[1]\n\n\tif escapeChar != 'u' {\n\t\tval := escapeByteSet[escapeChar]\n\t\tif val == 0 {\n\t\t\treturn -1, -1, errInvalidEscapeSequence\n\t\t}\n\n\t\tout[0] = val\n\t\treturn escapeSeqLen, 1, nil\n\t}\n\n\tr, size := decodeUnicodeEscape(in)\n\tif size == -1 {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\toutLen := utf8.EncodeRune(out, r)\n\n\treturn size, outLen, nil\n}\n"},{"name":"escape_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"unicode/utf8\"\n)\n\nfunc TestHexToInt(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tc byte\n\t\twant int\n\t}{\n\t\t{\"Digit 0\", '0', 0},\n\t\t{\"Digit 9\", '9', 9},\n\t\t{\"Uppercase A\", 'A', 10},\n\t\t{\"Uppercase F\", 'F', 15},\n\t\t{\"Lowercase a\", 'a', 10},\n\t\t{\"Lowercase f\", 'f', 15},\n\t\t{\"Invalid character1\", 'g', badHex},\n\t\t{\"Invalid character2\", 'G', badHex},\n\t\t{\"Invalid character3\", 'z', badHex},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := h2i(tt.c); got != tt.want {\n\t\t\t\tt.Errorf(\"h2i() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSurrogatePair(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tr rune\n\t\texpected bool\n\t}{\n\t\t{\"high surrogate start\", 0xD800, true},\n\t\t{\"high surrogate end\", 0xDBFF, true},\n\t\t{\"low surrogate start\", 0xDC00, true},\n\t\t{\"low surrogate end\", 0xDFFF, true},\n\t\t{\"Non-surrogate\", 0x0000, false},\n\t\t{\"Non-surrogate 2\", 0xE000, false},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif got := isSurrogatePair(tc.r); got != tc.expected {\n\t\t\t\tt.Errorf(\"isSurrogate() = %v, want %v\", got, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCombineSurrogates(t *testing.T) {\n\ttestCases := []struct {\n\t\thigh, low rune\n\t\texpected rune\n\t}{\n\t\t{0xD83D, 0xDC36, 0x1F436}, // 🐶 U+1F436 DOG FACE\n\t\t{0xD83D, 0xDE00, 0x1F600}, // 😀 U+1F600 GRINNING FACE\n\t\t{0xD83C, 0xDF03, 0x1F303}, // 🌃 U+1F303 NIGHT WITH STARS\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult := combineSurrogates(tc.high, tc.low)\n\t\tif result != tc.expected {\n\t\t\tt.Errorf(\"combineSurrogates(%U, %U) = %U; want %U\", tc.high, tc.low, result, tc.expected)\n\t\t}\n\t}\n}\n\nfunc TestDecodeSingleUnicodeEscape(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tisValid bool\n\t}{\n\t\t// valid unicode escape sequences\n\t\t{[]byte(`\\u0041`), 'A', true},\n\t\t{[]byte(`\\u03B1`), 'α', true},\n\t\t{[]byte(`\\u00E9`), 'é', true}, // valid non-English character\n\t\t{[]byte(`\\u0021`), '!', true}, // valid special character\n\t\t{[]byte(`\\uFF11`), '1', true},\n\t\t{[]byte(`\\uD83D`), 0xD83D, true},\n\t\t{[]byte(`\\uDE03`), 0xDE03, true},\n\n\t\t// invalid unicode escape sequences\n\t\t{[]byte(`\\u004`), utf8.RuneError, false}, // too short\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, false}, // invalid hex\n\t\t{[]byte(`\\u00G1`), utf8.RuneError, false}, // non-hex character\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult, isValid := decodeSingleUnicodeEscape(tc.input)\n\t\tif result != tc.expected || isValid != tc.isValid {\n\t\t\tt.Errorf(\"decodeSingleUnicodeEscape(%s) = (%U, %v); want (%U, %v)\", tc.input, result, isValid, tc.expected, tc.isValid)\n\t\t}\n\t}\n}\n\nfunc TestDecodeUnicodeEscape(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tsize int\n\t}{\n\t\t{[]byte(`\\u0041`), 'A', 6},\n\t\t{[]byte(`\\uD83D\\uDE00`), 0x1F600, 12}, // 😀\n\t\t{[]byte(`\\uD834\\uDD1E`), 0x1D11E, 12}, // 𝄞\n\t\t{[]byte(`\\uFFFF`), '\\uFFFF', 6},\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, -1},\n\t\t{[]byte(`\\uD800`), utf8.RuneError, -1}, // single high surrogate\n\t\t{[]byte(`\\uDC00`), utf8.RuneError, -1}, // single low surrogate\n\t\t{[]byte(`\\uD800\\uDC00`), 0x10000, 12}, // First code point above U+FFFF\n\t\t{[]byte(`\\uDBFF\\uDFFF`), 0x10FFFF, 12}, // Maximum code point\n\t\t{[]byte(`\\uD83D\\u0041`), utf8.RuneError, -1}, // invalid surrogate pair\n\t}\n\n\tfor _, tc := range tests {\n\t\tr, size := decodeUnicodeEscape(tc.input)\n\t\tif r != tc.expected || size != tc.size {\n\t\t\tt.Errorf(\"decodeUnicodeEscape(%q) = (%U, %d); want (%U, %d)\", tc.input, r, size, tc.expected, tc.size)\n\t\t}\n\t}\n}\n\nfunc TestUnescapeToUTF8(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpectedIn int\n\t\texpectedOut int\n\t\tisError bool\n\t}{\n\t\t// valid escape sequences\n\t\t{[]byte(`\\n`), 2, 1, false},\n\t\t{[]byte(`\\t`), 2, 1, false},\n\t\t{[]byte(`\\u0041`), 6, 1, false},\n\t\t{[]byte(`\\u03B1`), 6, 2, false},\n\t\t{[]byte(`\\uD830\\uDE03`), 12, 4, false},\n\n\t\t// invalid escape sequences\n\t\t{[]byte(`\\`), -1, -1, true}, // incomplete escape sequence\n\t\t{[]byte(`\\x`), -1, -1, true}, // invalid escape character\n\t\t{[]byte(`\\u`), -1, -1, true}, // incomplete unicode escape sequence\n\t\t{[]byte(`\\u004`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uXYZW`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uD83D\\u0041`), -1, -1, true}, // invalid unicode escape sequence\n\t}\n\n\tfor _, tc := range tests {\n\t\tinput := make([]byte, len(tc.input))\n\t\tcopy(input, tc.input)\n\t\toutput := make([]byte, utf8.UTFMax)\n\t\tinLen, outLen, err := processEscapedUTF8(input, output)\n\t\tif (err != nil) != tc.isError {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = %v; want %v\", tc.input, err, tc.isError)\n\t\t}\n\n\t\tif inLen != tc.expectedIn || outLen != tc.expectedOut {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = (%d, %d); want (%d, %d)\", tc.input, inLen, outLen, tc.expectedIn, tc.expectedOut)\n\t\t}\n\t}\n}\n\nfunc TestUnescape(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected []byte\n\t\tisError bool\n\t}{\n\t\t{\"NoEscape\", []byte(\"hello world\"), []byte(\"hello world\"), false},\n\t\t{\"SingleEscape\", []byte(\"hello\\\\nworld\"), []byte(\"hello\\nworld\"), false},\n\t\t{\"MultipleEscapes\", []byte(\"line1\\\\nline2\\\\r\\\\nline3\"), []byte(\"line1\\nline2\\r\\nline3\"), false},\n\t\t{\"UnicodeEscape\", []byte(\"snowman:\\\\u2603\"), []byte(\"snowman:\\u2603\"), false},\n\t\t{\"SurrogatePair\", []byte(\"emoji:\\\\uD83D\\\\uDE00\"), []byte(\"emoji:😀\"), false},\n\t\t{\"InvalidEscape\", []byte(\"hello\\\\xworld\"), nil, true},\n\t\t{\"IncompleteUnicode\", []byte(\"incomplete:\\\\u123\"), nil, true},\n\t\t{\"InvalidSurrogatePair\", []byte(\"invalid:\\\\uD83D\\\\u0041\"), nil, true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\toutput := make([]byte, len(tc.input)*2) // Allocate extra space for possible expansion\n\t\t\tresult, err := Unescape(tc.input, output)\n\t\t\tif (err != nil) != tc.isError {\n\t\t\t\tt.Errorf(\"Unescape(%q) error = %v; want error = %v\", tc.input, err, tc.isError)\n\t\t\t}\n\n\t\t\tif !tc.isError \u0026\u0026 !bytes.Equal(result, tc.expected) {\n\t\t\t\tt.Errorf(\"Unescape(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnquoteBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\tborder byte\n\t\texpected []byte\n\t\tok bool\n\t}{\n\t\t{[]byte(\"\\\"hello\\\"\"), '\"', []byte(\"hello\"), true},\n\t\t{[]byte(\"'hello'\"), '\\'', []byte(\"hello\"), true},\n\t\t{[]byte(\"\\\"hello\"), '\"', nil, false},\n\t\t{[]byte(\"hello\\\"\"), '\"', nil, false},\n\t\t{[]byte(\"\\\"he\\\\\\\"llo\\\"\"), '\"', []byte(\"he\\\"llo\"), true},\n\t\t{[]byte(\"\\\"he\\\\nllo\\\"\"), '\"', []byte(\"he\\nllo\"), true},\n\t\t{[]byte(\"\\\"\\\"\"), '\"', []byte(\"\"), true},\n\t\t{[]byte(\"''\"), '\\'', []byte(\"\"), true},\n\t\t{[]byte(\"\\\"\\\\u0041\\\"\"), '\"', []byte(\"A\"), true},\n\t\t{[]byte(`\"Hello, 世界\"`), '\"', []byte(\"Hello, 世界\"), true},\n\t\t{[]byte(`\"Hello, \\x80\"`), '\"', nil, false},\n\t\t{[]byte(`\"invalid surrogate: \\uD83D\\u0041\"`), '\"', nil, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tresult, pass := unquoteBytes(tc.input, tc.border)\n\n\t\tif pass != tc.ok {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %v; want %v\", tc.input, pass, tc.ok)\n\t\t}\n\n\t\tif !bytes.Equal(result, tc.expected) {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t}\n\t}\n}\n"},{"name":"indent.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// indentGrowthFactor specifies the growth factor of indenting JSON input.\n// A factor no higher than 2 ensures that wasted space never exceeds 50%.\nconst indentGrowthFactor = 2\n\n// IndentJSON formats the JSON data with the specified indentation.\nfunc Indent(data []byte, indent string) ([]byte, error) {\n\tvar (\n\t\tout bytes.Buffer\n\t\tlevel int\n\t\tinArray bool\n\t\tarrayDepth int\n\t)\n\n\tfor i := 0; i \u003c len(data); i++ {\n\t\tc := data[i] // current character\n\n\t\tswitch c {\n\t\tcase bracketOpen:\n\t\t\tarrayDepth++\n\t\t\tif arrayDepth \u003e 1 {\n\t\t\t\tlevel++ // increase the level if it's nested array\n\t\t\t\tinArray = true\n\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// case of the top-level array\n\t\t\t\tinArray = true\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase bracketClose:\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tlevel--\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tarrayDepth--\n\t\t\tif arrayDepth == 0 {\n\t\t\t\tinArray = false\n\t\t\t}\n\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase curlyOpen:\n\t\t\t// check if the empty object or array\n\t\t\t// we don't need to apply the indent when it's empty containers.\n\t\t\tif i+1 \u003c len(data) \u0026\u0026 data[i+1] == curlyClose {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\ti++ // skip next character\n\t\t\t\tif err := out.WriteByte(data[i]); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tlevel++\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase curlyClose:\n\t\t\tlevel--\n\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase comma, colon:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else if c == colon {\n\t\t\t\tif err := out.WriteByte(' '); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out.Bytes(), nil\n}\n\nfunc writeNewlineAndIndent(out *bytes.Buffer, level int, indent string) error {\n\tif err := out.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\n\tidt := strings.Repeat(indent, level*indentGrowthFactor)\n\tif _, err := out.WriteString(idt); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"},{"name":"indent_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\nfunc TestIndentJSON(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\tindent string\n\t\texpected []byte\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tinput: []byte(`{}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`{}`),\n\t\t},\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tinput: []byte(`[]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`[]`),\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tinput: []byte(`{{}}`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"{\\n\\t\\t{}\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"nested array\",\n\t\t\tinput: []byte(`[[[]]]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"[[\\n\\t\\t[\\n\\t\\t\\t\\t\\n\\t\\t]\\n]]\"),\n\t\t},\n\t\t{\n\t\t\tname: \"top-level array\",\n\t\t\tinput: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t},\n\t\t{\n\t\t\tname: \"array of arrays\",\n\t\t\tinput: []byte(`[\"apple\",[\"banana\",\"cherry\"],\"date\"]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"[\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n],\\\"date\\\"]\"),\n\t\t},\n\n\t\t{\n\t\t\tname: \"nested array in object\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"fruits\\\": [\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n ],\\\"date\\\"]\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"complex nested structure\",\n\t\t\tinput: []byte(`{\"data\":{\"array\":[1,2,3],\"bool\":true,\"nestedArray\":[[\"a\",\"b\"],\"c\"]}}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"data\\\": {\\n \\\"array\\\": [1,2,3],\\\"bool\\\": true,\\\"nestedArray\\\": [[\\n \\\"a\\\",\\n \\\"b\\\"\\n ],\\\"c\\\"]\\n }\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"custom ident character\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \"*\",\n\t\t\texpected: []byte(\"{\\n**\\\"fruits\\\": [\\\"apple\\\",[\\n****\\\"banana\\\",\\n****\\\"cherry\\\"\\n**],\\\"date\\\"]\\n}\"),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tactual, err := Indent(tt.input, tt.indent)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"IndentJSON() error = %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !bytes.Equal(actual, tt.expected) {\n\t\t\t\tt.Errorf(\"IndentJSON() = %q, want %q\", actual, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"internal.gno","body":"package json\n\n// Reference: https://github.com/freddierice/php_source/blob/467ed5d6edff72219afd3e644516f131118ef48e/ext/json/JSON_parser.c\n// Copyright (c) 2005 JSON.org\n\n// Go implementation is taken from: https://github.com/spyzhov/ajson/blob/master/internal/state.go\n\ntype (\n\tStates int8 // possible states of the parser\n\tClasses int8 // JSON string character types\n)\n\nconst __ = -1\n\n// enum classes\nconst (\n\tC_SPACE Classes = iota /* space */\n\tC_WHITE /* other whitespace */\n\tC_LCURB /* { */\n\tC_RCURB /* } */\n\tC_LSQRB /* [ */\n\tC_RSQRB /* ] */\n\tC_COLON /* : */\n\tC_COMMA /* , */\n\tC_QUOTE /* \" */\n\tC_BACKS /* \\ */\n\tC_SLASH /* / */\n\tC_PLUS /* + */\n\tC_MINUS /* - */\n\tC_POINT /* . */\n\tC_ZERO /* 0 */\n\tC_DIGIT /* 123456789 */\n\tC_LOW_A /* a */\n\tC_LOW_B /* b */\n\tC_LOW_C /* c */\n\tC_LOW_D /* d */\n\tC_LOW_E /* e */\n\tC_LOW_F /* f */\n\tC_LOW_L /* l */\n\tC_LOW_N /* n */\n\tC_LOW_R /* r */\n\tC_LOW_S /* s */\n\tC_LOW_T /* t */\n\tC_LOW_U /* u */\n\tC_ABCDF /* ABCDF */\n\tC_E /* E */\n\tC_ETC /* everything else */\n)\n\n// AsciiClasses array maps the 128 ASCII characters into character classes.\nvar AsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_QUOTE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n// QuoteAsciiClasses is a HACK for single quote from AsciiClasses\nvar QuoteAsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_QUOTE,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n/*\nThe state codes.\n*/\nconst (\n\tGO States = iota /* start */\n\tOK /* ok */\n\tOB /* object */\n\tKE /* key */\n\tCO /* colon */\n\tVA /* value */\n\tAR /* array */\n\tST /* string */\n\tES /* escape */\n\tU1 /* u1 */\n\tU2 /* u2 */\n\tU3 /* u3 */\n\tU4 /* u4 */\n\tMI /* minus */\n\tZE /* zero */\n\tIN /* integer */\n\tDT /* dot */\n\tFR /* fraction */\n\tE1 /* e */\n\tE2 /* ex */\n\tE3 /* exp */\n\tT1 /* tr */\n\tT2 /* tru */\n\tT3 /* true */\n\tF1 /* fa */\n\tF2 /* fal */\n\tF3 /* fals */\n\tF4 /* false */\n\tN1 /* nu */\n\tN2 /* nul */\n\tN3 /* null */\n)\n\n// List of action codes.\n// these constants are defining an action that should be performed under certain conditions.\nconst (\n\tcl States = -2 /* colon */\n\tcm States = -3 /* comma */\n\tqt States = -4 /* quote */\n\tbo States = -5 /* bracket open */\n\tco States = -6 /* curly bracket open */\n\tbc States = -7 /* bracket close */\n\tcc States = -8 /* curly bracket close */\n\tec States = -9 /* curly bracket empty */\n)\n\n// StateTransitionTable is the state transition table takes the current state and the current symbol, and returns either\n// a new state or an action. An action is represented as a negative number. A JSON text is accepted if at the end of the\n// text the state is OK and if the mode is DONE.\nvar StateTransitionTable = [31][31]States{\n\t/*\n\t The state transition table takes the current state and the current symbol,\n\t and returns either a new state or an action. An action is represented as a\n\t negative number. A JSON text is accepted if at the end of the text the\n\t state is OK and if the mode is DONE.\n\t white 1-9 ABCDF etc\n\t space | { } [ ] : , \" \\ / + - . 0 | a b c d e f l n r s t u | E |*/\n\t/*start GO*/ {GO, GO, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*ok OK*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*object OB*/ {OB, OB, __, ec, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*key KE*/ {KE, KE, __, __, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*colon CO*/ {CO, CO, __, __, __, __, cl, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*value VA*/ {VA, VA, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*array AR*/ {AR, AR, co, __, bo, bc, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*string ST*/ {ST, __, ST, ST, ST, ST, ST, ST, qt, ES, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST},\n\t/*escape ES*/ {__, __, __, __, __, __, __, __, ST, ST, ST, __, __, __, __, __, __, ST, __, __, __, ST, __, ST, ST, __, ST, U1, __, __, __},\n\t/*u1 U1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U2, U2, U2, U2, U2, U2, U2, U2, __, __, __, __, __, __, U2, U2, __},\n\t/*u2 U2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U3, U3, U3, U3, U3, U3, U3, U3, __, __, __, __, __, __, U3, U3, __},\n\t/*u3 U3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U4, U4, U4, U4, U4, U4, U4, U4, __, __, __, __, __, __, U4, U4, __},\n\t/*u4 U4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ST, ST, ST, ST, ST, ST, ST, ST, __, __, __, __, __, __, ST, ST, __},\n\t/*minus MI*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ZE, IN, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*zero ZE*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, __, __, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*int IN*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, IN, IN, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*dot DT*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, FR, FR, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*frac FR*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, FR, FR, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*e E1*/ {__, __, __, __, __, __, __, __, __, __, __, E2, E2, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*ex E2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*exp E3*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*tr T1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T2, __, __, __, __, __, __},\n\t/*tru T2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T3, __, __, __},\n\t/*true T3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*fa F1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F2, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*fal F2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F3, __, __, __, __, __, __, __, __},\n\t/*fals F3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F4, __, __, __, __, __},\n\t/*false F4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*nu N1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N2, __, __, __},\n\t/*nul N2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N3, __, __, __, __, __, __, __, __},\n\t/*null N3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __},\n}\n"},{"name":"node.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Node represents a JSON node.\ntype Node struct {\n\tprev *Node // prev is the parent node of the current node.\n\tnext map[string]*Node // next is the child nodes of the current node.\n\tkey *string // key holds the key of the current node in the parent node.\n\tdata []byte // byte slice of JSON data\n\tvalue interface{} // value holds the value of the current node.\n\tnodeType ValueType // NodeType holds the type of the current node. (Object, Array, String, Number, Boolean, Null)\n\tindex *int // index holds the index of the current node in the parent array node.\n\tborders [2]int // borders stores the start and end index of the current node in the data.\n\tmodified bool // modified indicates the current node is changed or not.\n}\n\n// NewNode creates a new node instance with the given parent node, buffer, type, and key.\nfunc NewNode(prev *Node, b *buffer, typ ValueType, key **string) (*Node, error) {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: b.data,\n\t\tborders: [2]int{b.index, 0},\n\t\tkey: *key,\n\t\tnodeType: typ,\n\t\tmodified: false,\n\t}\n\n\tif typ == Object || typ == Array {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\tif prev != nil {\n\t\tif prev.IsArray() {\n\t\t\tsize := len(prev.next)\n\t\t\tcurr.index = \u0026size\n\n\t\t\tprev.next[strconv.Itoa(size)] = curr\n\t\t} else if prev.IsObject() {\n\t\t\tif key == nil {\n\t\t\t\treturn nil, errKeyRequired\n\t\t\t}\n\n\t\t\tprev.next[**key] = curr\n\t\t} else {\n\t\t\treturn nil, errors.New(\"invalid parent type\")\n\t\t}\n\t}\n\n\treturn curr, nil\n}\n\n// load retrieves the value of the current node.\nfunc (n *Node) load() interface{} {\n\treturn n.value\n}\n\n// Changed checks the current node is changed or not.\nfunc (n *Node) Changed() bool {\n\treturn n.modified\n}\n\n// Key returns the key of the current node.\nfunc (n *Node) Key() string {\n\tif n == nil || n.key == nil {\n\t\treturn \"\"\n\t}\n\n\treturn *n.key\n}\n\n// HasKey checks the current node has the given key or not.\nfunc (n *Node) HasKey(key string) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\t_, ok := n.next[key]\n\treturn ok\n}\n\n// GetKey returns the value of the given key from the current object node.\nfunc (n *Node) GetKey(key string) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.Type() != Object {\n\t\treturn nil, ufmt.Errorf(\"target node is not object type. got: %s\", n.Type().String())\n\t}\n\n\tvalue, ok := n.next[key]\n\tif !ok {\n\t\treturn nil, ufmt.Errorf(\"key not found: %s\", key)\n\t}\n\n\treturn value, nil\n}\n\n// MustKey returns the value of the given key from the current object node.\nfunc (n *Node) MustKey(key string) *Node {\n\tval, err := n.GetKey(key)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// UniqueKeyLists traverses the current JSON nodes and collects all the unique keys.\nfunc (n *Node) UniqueKeyLists() []string {\n\tvar collectKeys func(*Node) []string\n\tcollectKeys = func(node *Node) []string {\n\t\tif node == nil || !node.IsObject() {\n\t\t\treturn nil\n\t\t}\n\n\t\tresult := make(map[string]bool)\n\t\tfor key, childNode := range node.next {\n\t\t\tresult[key] = true\n\t\t\tchildKeys := collectKeys(childNode)\n\t\t\tfor _, childKey := range childKeys {\n\t\t\t\tresult[childKey] = true\n\t\t\t}\n\t\t}\n\n\t\tkeys := make([]string, 0, len(result))\n\t\tfor key := range result {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\treturn keys\n\t}\n\n\treturn collectKeys(n)\n}\n\n// Empty returns true if the current node is empty.\nfunc (n *Node) Empty() bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\treturn len(n.next) == 0\n}\n\n// Type returns the type (ValueType) of the current node.\nfunc (n *Node) Type() ValueType {\n\treturn n.nodeType\n}\n\n// Value returns the value of the current node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tval, err := root.MustKey(\"key\").Value()\n//\tif err != nil {\n//\t\tt.Errorf(\"Value returns error: %v\", err)\n//\t}\n//\n//\tresult: \"value\"\nfunc (n *Node) Value() (value interface{}, err error) {\n\tvalue = n.load()\n\n\tif value == nil {\n\t\tswitch n.nodeType {\n\t\tcase Null:\n\t\t\treturn nil, nil\n\n\t\tcase Number:\n\t\t\tvalue, err = strconv.ParseFloat(string(n.source()), 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase String:\n\t\t\tvar ok bool\n\t\t\tvalue, ok = Unquote(n.source(), doubleQuote)\n\t\t\tif !ok {\n\t\t\t\treturn \"\", errInvalidStringValue\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase Boolean:\n\t\t\tif len(n.source()) == 0 {\n\t\t\t\treturn nil, errEmptyBooleanNode\n\t\t\t}\n\n\t\t\tb := n.source()[0]\n\t\t\tvalue = b == 't' || b == 'T'\n\t\t\tn.value = value\n\n\t\tcase Array:\n\t\t\telems := make([]*Node, len(n.next))\n\n\t\t\tfor _, e := range n.next {\n\t\t\t\telems[*e.index] = e\n\t\t\t}\n\n\t\t\tvalue = elems\n\t\t\tn.value = value\n\n\t\tcase Object:\n\t\t\tobj := make(map[string]*Node, len(n.next))\n\n\t\t\tfor k, v := range n.next {\n\t\t\t\tobj[k] = v\n\t\t\t}\n\n\t\t\tvalue = obj\n\t\t\tn.value = value\n\t\t}\n\t}\n\n\treturn value, nil\n}\n\n// Delete removes the current node from the parent node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err := root.MustKey(\"key\").Delete(); err != nil {\n//\t\tt.Errorf(\"Delete returns error: %v\", err)\n//\t}\n//\n//\tresult: {} (empty object)\nfunc (n *Node) Delete() error {\n\tif n == nil {\n\t\treturn errors.New(\"can't delete nil node\")\n\t}\n\n\tif n.prev == nil {\n\t\treturn nil\n\t}\n\n\treturn n.prev.remove(n)\n}\n\n// Size returns the size (length) of the current array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.Size() != 2 {\n//\t\tt.Errorf(\"ArrayNode returns wrong size: %d\", root.Size())\n//\t}\nfunc (n *Node) Size() int {\n\tif n == nil {\n\t\treturn 0\n\t}\n\n\treturn len(n.next)\n}\n\n// Index returns the index of the current node in the parent array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.MustIndex(1).Index() != 1 {\n//\t\tt.Errorf(\"Index returns wrong index: %d\", root.MustIndex(1).Index())\n//\t}\n//\n// We can also use the index to the byte slice of the JSON data directly.\n//\n// Example:\n//\n//\troot := Unmarshal([]byte(`[\"foo\", 1]`))\n//\tif root == nil {\n//\t\tt.Errorf(\"Unmarshal returns nil\")\n//\t}\n//\n//\tif string(root.MustIndex(1).source()) != \"1\" {\n//\t\tt.Errorf(\"source returns wrong result: %s\", root.MustIndex(1).source())\n//\t}\nfunc (n *Node) Index() int {\n\tif n == nil || n.index == nil {\n\t\treturn -1\n\t}\n\n\treturn *n.index\n}\n\n// MustIndex returns the array element at the given index.\n//\n// If the index is negative, it returns the index is from the end of the array.\n// Also, it panics if the index is not found.\n//\n// check the Index method for detailed usage.\nfunc (n *Node) MustIndex(expectIdx int) *Node {\n\tval, err := n.GetIndex(expectIdx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// GetIndex returns the array element at the given index.\n//\n// if the index is negative, it returns the index is from the end of the array.\nfunc (n *Node) GetIndex(idx int) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsArray() {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tif idx \u003e n.Size() {\n\t\treturn nil, errors.New(\"input index exceeds the array size\")\n\t}\n\n\tif idx \u003c 0 {\n\t\tidx += len(n.next)\n\t}\n\n\tchild, ok := n.next[strconv.Itoa(idx)]\n\tif !ok {\n\t\treturn nil, errIndexNotFound\n\t}\n\n\treturn child, nil\n}\n\n// DeleteIndex removes the array element at the given index.\nfunc (n *Node) DeleteIndex(idx int) error {\n\tnode, err := n.GetIndex(idx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn n.remove(node)\n}\n\n// NullNode creates a new null type node.\n//\n// Usage:\n//\n//\t_ := NullNode(\"\")\nfunc NullNode(key string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: nil,\n\t\tnodeType: Null,\n\t\tmodified: true,\n\t}\n}\n\n// NumberNode creates a new number type node.\n//\n// Usage:\n//\n//\troot := NumberNode(\"\", 1)\n//\tif root == nil {\n//\t\tt.Errorf(\"NumberNode returns nil\")\n//\t}\nfunc NumberNode(key string, value float64) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Number,\n\t\tmodified: true,\n\t}\n}\n\n// StringNode creates a new string type node.\n//\n// Usage:\n//\n//\troot := StringNode(\"\", \"foo\")\n//\tif root == nil {\n//\t\tt.Errorf(\"StringNode returns nil\")\n//\t}\nfunc StringNode(key string, value string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: String,\n\t\tmodified: true,\n\t}\n}\n\n// BoolNode creates a new given boolean value node.\n//\n// Usage:\n//\n//\troot := BoolNode(\"\", true)\n//\tif root == nil {\n//\t\tt.Errorf(\"BoolNode returns nil\")\n//\t}\nfunc BoolNode(key string, value bool) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Boolean,\n\t\tmodified: true,\n\t}\n}\n\n// ArrayNode creates a new array type node.\n//\n// If the given value is nil, it creates an empty array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\nfunc ArrayNode(key string, value []*Node) *Node {\n\tcurr := \u0026Node{\n\t\tkey: \u0026key,\n\t\tnodeType: Array,\n\t\tmodified: true,\n\t}\n\n\tcurr.next = make(map[string]*Node, len(value))\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor i, v := range value {\n\t\t\tidx := i\n\t\t\tcurr.next[strconv.Itoa(i)] = v\n\n\t\t\tv.prev = curr\n\t\t\tv.index = \u0026idx\n\t\t}\n\t}\n\n\treturn curr\n}\n\n// ObjectNode creates a new object type node.\n//\n// If the given value is nil, it creates an empty object node.\n//\n// next is a map of key and value pairs of the object.\nfunc ObjectNode(key string, value map[string]*Node) *Node {\n\tcurr := \u0026Node{\n\t\tnodeType: Object,\n\t\tkey: \u0026key,\n\t\tnext: value,\n\t\tmodified: true,\n\t}\n\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor key, val := range value {\n\t\t\tvkey := key\n\t\t\tval.prev = curr\n\t\t\tval.key = \u0026vkey\n\t\t}\n\t} else {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\treturn curr\n}\n\n// IsArray returns true if the current node is array type.\nfunc (n *Node) IsArray() bool {\n\treturn n.nodeType == Array\n}\n\n// IsObject returns true if the current node is object type.\nfunc (n *Node) IsObject() bool {\n\treturn n.nodeType == Object\n}\n\n// IsNull returns true if the current node is null type.\nfunc (n *Node) IsNull() bool {\n\treturn n.nodeType == Null\n}\n\n// IsBool returns true if the current node is boolean type.\nfunc (n *Node) IsBool() bool {\n\treturn n.nodeType == Boolean\n}\n\n// IsString returns true if the current node is string type.\nfunc (n *Node) IsString() bool {\n\treturn n.nodeType == String\n}\n\n// IsNumber returns true if the current node is number type.\nfunc (n *Node) IsNumber() bool {\n\treturn n.nodeType == Number\n}\n\n// ready checks the current node is ready or not.\n//\n// the meaning of ready is the current node is parsed and has a valid value.\nfunc (n *Node) ready() bool {\n\treturn n.borders[1] != 0\n}\n\n// source returns the source of the current node.\nfunc (n *Node) source() []byte {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified \u0026\u0026 n.data != nil {\n\t\treturn (n.data)[n.borders[0]:n.borders[1]]\n\t}\n\n\treturn nil\n}\n\n// root returns the root node of the current node.\nfunc (n *Node) root() *Node {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tcurr := n\n\tfor curr.prev != nil {\n\t\tcurr = curr.prev\n\t}\n\n\treturn curr\n}\n\n// GetNull returns the null value if current node is null type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"null\"))\n//\tval, err := root.GetNull()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNull returns error: %v\", err)\n//\t}\n//\tif val != nil {\n//\t\tt.Errorf(\"GetNull returns wrong result: %v\", val)\n//\t}\nfunc (n *Node) GetNull() (interface{}, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsNull() {\n\t\treturn nil, errNotNullNode\n\t}\n\n\treturn nil, nil\n}\n\n// MustNull returns the null value if current node is null type.\n//\n// It panics if the current node is not null type.\nfunc (n *Node) MustNull() interface{} {\n\tv, err := n.GetNull()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetNumeric returns the numeric (int/float) value if current node is number type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"10.5\"))\n//\tval, err := root.GetNumeric()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNumeric returns error: %v\", err)\n//\t}\n//\tprintln(val) // 10.5\nfunc (n *Node) GetNumeric() (float64, error) {\n\tif n == nil {\n\t\treturn 0, errNilNode\n\t}\n\n\tif n.nodeType != Number {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tv, ok := val.(float64)\n\tif !ok {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\treturn v, nil\n}\n\n// MustNumeric returns the numeric (int/float) value if current node is number type.\n//\n// It panics if the current node is not number type.\nfunc (n *Node) MustNumeric() float64 {\n\tv, err := n.GetNumeric()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetString returns the string value if current node is string type.\n//\n// Usage:\n//\n//\troot, err := Unmarshal([]byte(\"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n//\t}\n//\n//\tstr, err := root.GetString()\n//\tif err != nil {\n//\t\tt.Errorf(\"should retrieve string value: %s\", err)\n//\t}\n//\n//\tprintln(str) // \"foo\"\nfunc (n *Node) GetString() (string, error) {\n\tif n == nil {\n\t\treturn \"\", errEmptyStringNode\n\t}\n\n\tif !n.IsString() {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tv, ok := val.(string)\n\tif !ok {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\treturn v, nil\n}\n\n// MustString returns the string value if current node is string type.\n//\n// It panics if the current node is not string type.\nfunc (n *Node) MustString() string {\n\tv, err := n.GetString()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetBool returns the boolean value if current node is boolean type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"true\"))\n//\tval, err := root.GetBool()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetBool returns error: %v\", err)\n//\t}\n//\tprintln(val) // true\nfunc (n *Node) GetBool() (bool, error) {\n\tif n == nil {\n\t\treturn false, errNilNode\n\t}\n\n\tif n.nodeType != Boolean {\n\t\treturn false, errNotBoolNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tv, ok := val.(bool)\n\tif !ok {\n\t\treturn false, errNotBoolNode\n\t}\n\n\treturn v, nil\n}\n\n// MustBool returns the boolean value if current node is boolean type.\n//\n// It panics if the current node is not boolean type.\nfunc (n *Node) MustBool() bool {\n\tv, err := n.GetBool()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetArray returns the array value if current node is array type.\n//\n// Usage:\n//\n//\t\troot := Must(Unmarshal([]byte(`[\"foo\", 1]`)))\n//\t\tarr, err := root.GetArray()\n//\t\tif err != nil {\n//\t\t\tt.Errorf(\"GetArray returns error: %v\", err)\n//\t\t}\n//\n//\t\tfor _, val := range arr {\n//\t\t\tprintln(val)\n//\t\t}\n//\n//\t result: \"foo\", 1\nfunc (n *Node) GetArray() ([]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.nodeType != Array {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.([]*Node)\n\tif !ok {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\treturn v, nil\n}\n\n// MustArray returns the array value if current node is array type.\n//\n// It panics if the current node is not array type.\nfunc (n *Node) MustArray() []*Node {\n\tv, err := n.GetArray()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendArray appends the given values to the current array node.\n//\n// If the current node is not array type, it returns an error.\n//\n// Example 1:\n//\n//\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n//\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n//\t\tt.Errorf(\"should not return error: %s\", err)\n//\t}\n//\n//\tresult: [{\"foo\":\"bar\"}, null]\n//\n// Example 2:\n//\n//\troot := Must(Unmarshal([]byte(`[\"bar\", \"baz\"]`)))\n//\terr := root.AppendArray(NumberNode(\"\", 1), StringNode(\"\", \"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n//\t }\n//\n//\tresult: [\"bar\", \"baz\", 1, \"foo\"]\nfunc (n *Node) AppendArray(value ...*Node) error {\n\tif !n.IsArray() {\n\t\treturn errInvalidAppend\n\t}\n\n\tfor _, val := range value {\n\t\tif err := n.append(nil, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ArrayEach executes the callback for each element in the JSON array.\n//\n// Usage:\n//\n//\tjsonArrayNode.ArrayEach(func(i int, valueNode *Node) {\n//\t ufmt.Println(i, valueNode)\n//\t})\nfunc (n *Node) ArrayEach(callback func(i int, target *Node)) {\n\tif n == nil || !n.IsArray() {\n\t\treturn\n\t}\n\n\tfor idx := 0; idx \u003c len(n.next); idx++ {\n\t\telement, err := n.GetIndex(idx)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tcallback(idx, element)\n\t}\n}\n\n// GetObject returns the object value if current node is object type.\n//\n// Usage:\n//\n//\troot := Must(Unmarshal([]byte(`{\"key\": \"value\"}`)))\n//\tobj, err := root.GetObject()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetObject returns error: %v\", err)\n//\t}\n//\n//\tresult: map[string]*Node{\"key\": StringNode(\"key\", \"value\")}\nfunc (n *Node) GetObject() (map[string]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsObject() {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.(map[string]*Node)\n\tif !ok {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\treturn v, nil\n}\n\n// MustObject returns the object value if current node is object type.\n//\n// It panics if the current node is not object type.\nfunc (n *Node) MustObject() map[string]*Node {\n\tv, err := n.GetObject()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendObject appends the given key and value to the current object node.\n//\n// If the current node is not object type, it returns an error.\nfunc (n *Node) AppendObject(key string, value *Node) error {\n\tif !n.IsObject() {\n\t\treturn errInvalidAppend\n\t}\n\n\tif err := n.append(\u0026key, value); err != nil {\n\t\treturn err\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ObjectEach executes the callback for each key-value pair in the JSON object.\n//\n// Usage:\n//\n//\tjsonObjectNode.ObjectEach(func(key string, valueNode *Node) {\n//\t ufmt.Println(key, valueNode)\n//\t})\nfunc (n *Node) ObjectEach(callback func(key string, value *Node)) {\n\tif n == nil || !n.IsObject() {\n\t\treturn\n\t}\n\n\tfor key, child := range n.next {\n\t\tcallback(key, child)\n\t}\n}\n\n// String converts the node to a string representation.\nfunc (n *Node) String() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified {\n\t\treturn string(n.source())\n\t}\n\n\tval, err := Marshal(n)\n\tif err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\n\treturn string(val)\n}\n\n// Path builds the path of the current node.\n//\n// For example:\n//\n//\t{ \"key\": { \"sub\": [ \"val1\", \"val2\" ] }}\n//\n// The path of \"val2\" is: $.key.sub[1]\nfunc (n *Node) Path() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif n.prev == nil {\n\t\tsb.WriteString(\"$\")\n\t} else {\n\t\tsb.WriteString(n.prev.Path())\n\n\t\tif n.key != nil {\n\t\t\tsb.WriteString(\"['\" + n.Key() + \"']\")\n\t\t} else {\n\t\t\tsb.WriteString(\"[\" + strconv.Itoa(n.Index()) + \"]\")\n\t\t}\n\t}\n\n\treturn sb.String()\n}\n\n// mark marks the current node as modified.\nfunc (n *Node) mark() {\n\tnode := n\n\tfor node != nil \u0026\u0026 !node.modified {\n\t\tnode.modified = true\n\t\tnode = node.prev\n\t}\n}\n\n// isContainer checks the current node type is array or object.\nfunc (n *Node) isContainer() bool {\n\treturn n.IsArray() || n.IsObject()\n}\n\n// remove removes the value from the current container type node.\nfunc (n *Node) remove(v *Node) error {\n\tif !n.isContainer() {\n\t\treturn ufmt.Errorf(\n\t\t\t\"can't remove value from non-array or non-object node. got=%s\",\n\t\t\tn.Type().String(),\n\t\t)\n\t}\n\n\tif v.prev != n {\n\t\treturn errors.New(\"invalid parent node\")\n\t}\n\n\tn.mark()\n\tif n.IsArray() {\n\t\tdelete(n.next, strconv.Itoa(*v.index))\n\t\tn.dropIndex(*v.index)\n\t} else {\n\t\tdelete(n.next, *v.key)\n\t}\n\n\tv.prev = nil\n\treturn nil\n}\n\n// dropIndex rebase the index of current array node values.\nfunc (n *Node) dropIndex(idx int) {\n\tfor i := idx + 1; i \u003c= len(n.next); i++ {\n\t\tprv := i - 1\n\t\tif curr, ok := n.next[strconv.Itoa(i)]; ok {\n\t\t\tcurr.index = \u0026prv\n\t\t\tn.next[strconv.Itoa(prv)] = curr\n\t\t}\n\n\t\tdelete(n.next, strconv.Itoa(i))\n\t}\n}\n\n// append is a helper function to append the given value to the current container type node.\nfunc (n *Node) append(key *string, val *Node) error {\n\tif n.isSameOrParentNode(val) {\n\t\treturn errInvalidAppendCycle\n\t}\n\n\tif val.prev != nil {\n\t\tif err := val.prev.remove(val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tval.prev = n\n\tval.key = key\n\n\tif key == nil {\n\t\tsize := len(n.next)\n\t\tval.index = \u0026size\n\t\tn.next[strconv.Itoa(size)] = val\n\t} else {\n\t\tif old, ok := n.next[*key]; ok {\n\t\t\tif err := n.remove(old); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tn.next[*key] = val\n\t}\n\n\treturn nil\n}\n\nfunc (n *Node) isSameOrParentNode(nd *Node) bool {\n\treturn n == nd || n.isParentNode(nd)\n}\n\nfunc (n *Node) isParentNode(nd *Node) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\tfor curr := nd.prev; curr != nil; curr = curr.prev {\n\t\tif curr == n {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// cptrs returns the pointer of the given string value.\nfunc cptrs(cpy *string) *string {\n\tif cpy == nil {\n\t\treturn nil\n\t}\n\n\tval := *cpy\n\n\treturn \u0026val\n}\n\n// cptri returns the pointer of the given integer value.\nfunc cptri(i *int) *int {\n\tif i == nil {\n\t\treturn nil\n\t}\n\n\tval := *i\n\treturn \u0026val\n}\n\n// Must panics if the given node is not fulfilled the expectation.\n// Usage:\n//\n//\tnode := Must(Unmarshal([]byte(`{\"key\": \"value\"}`))\nfunc Must(root *Node, expect error) *Node {\n\tif expect != nil {\n\t\tpanic(expect)\n\t}\n\n\treturn root\n}\n"},{"name":"node_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tnilKey *string\n\tdummyKey = \"key\"\n)\n\ntype _args struct {\n\tprev *Node\n\tbuf *buffer\n\ttyp ValueType\n\tkey **string\n}\n\ntype simpleNode struct {\n\tname string\n\tnode *Node\n}\n\nfunc TestNode_CreateNewNode(t *testing.T) {\n\trel := \u0026dummyKey\n\n\ttests := []struct {\n\t\tname string\n\t\targs _args\n\t\texpectCurr *Node\n\t\texpectErr bool\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\tname: \"child for non container type\",\n\t\t\targs: _args{\n\t\t\t\tprev: BoolNode(\"\", true),\n\t\t\t\tbuf: newBuffer(make([]byte, 10)),\n\t\t\t\ttyp: Boolean,\n\t\t\t\tkey: \u0026rel,\n\t\t\t},\n\t\t\texpectCurr: nil,\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tif tt.expectPanic {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tt.Errorf(\"%s panic occurred when not expected: %v\", tt.name, r)\n\t\t\t\t} else if tt.expectPanic {\n\t\t\t\t\tt.Errorf(\"%s expected panic but didn't occur\", tt.name)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\tgot, err := NewNode(tt.args.prev, tt.args.buf, tt.args.typ, tt.args.key)\n\t\t\tif (err != nil) != tt.expectErr {\n\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.expectErr)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif tt.expectErr {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !compareNodes(got, tt.expectCurr) {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expectCurr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Value(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\t_type ValueType\n\t\texpected interface{}\n\t\terrExpected bool\n\t}{\n\t\t{name: \"null\", data: []byte(\"null\"), _type: Null, expected: nil},\n\t\t{name: \"1\", data: []byte(\"1\"), _type: Number, expected: float64(1)},\n\t\t{name: \".1\", data: []byte(\".1\"), _type: Number, expected: float64(.1)},\n\t\t{name: \"-.1e1\", data: []byte(\"-.1e1\"), _type: Number, expected: float64(-1)},\n\t\t{name: \"string\", data: []byte(\"\\\"foo\\\"\"), _type: String, expected: \"foo\"},\n\t\t{name: \"space\", data: []byte(\"\\\"foo bar\\\"\"), _type: String, expected: \"foo bar\"},\n\t\t{name: \"true\", data: []byte(\"true\"), _type: Boolean, expected: true},\n\t\t{name: \"invalid true\", data: []byte(\"tru\"), _type: Unknown, errExpected: true},\n\t\t{name: \"invalid false\", data: []byte(\"fals\"), _type: Unknown, errExpected: true},\n\t\t{name: \"false\", data: []byte(\"false\"), _type: Boolean, expected: false},\n\t\t{name: \"e1\", data: []byte(\"e1\"), _type: Unknown, errExpected: true},\n\t\t{name: \"1a\", data: []byte(\"1a\"), _type: Unknown, errExpected: true},\n\t\t{name: \"string error\", data: []byte(\"\\\"foo\\nbar\\\"\"), _type: String, errExpected: true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tcurr := \u0026Node{\n\t\t\t\tdata: tt.data,\n\t\t\t\tnodeType: tt._type,\n\t\t\t\tborders: [2]int{0, len(tt.data)},\n\t\t\t}\n\n\t\t\tgot, err := curr.Value()\n\t\t\tif err != nil {\n\t\t\t\tif !tt.errExpected {\n\t\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.errExpected)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Delete(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{\"foo\":\"bar\"}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tfoo := root.MustKey(\"foo\")\n\tif err := foo.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error while handling foo: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif value, err := Marshal(foo); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `\"bar\"` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif foo.prev != nil {\n\t\tt.Errorf(\"foo.prev should be nil\")\n\t}\n}\n\nfunc TestNode_ObjectNode(t *testing.T) {\n\tobjs := map[string]*Node{\n\t\t\"key1\": NullNode(\"null\"),\n\t\t\"key2\": NumberNode(\"answer\", 42),\n\t\t\"key3\": StringNode(\"string\", \"foobar\"),\n\t\t\"key4\": BoolNode(\"bool\", true),\n\t}\n\n\tnode := ObjectNode(\"test\", objs)\n\n\tif len(node.next) != len(objs) {\n\t\tt.Errorf(\"ObjectNode: want %v got %v\", len(objs), len(node.next))\n\t}\n\n\tfor k, v := range objs {\n\t\tif node.next[k] == nil {\n\t\t\tt.Errorf(\"ObjectNode: want %v got %v\", v, node.next[k])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendObject(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`{\"foo\":\"bar\",\"baz\":null}`))).AppendObject(\"biz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendArray should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.AppendObject(\"baz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendObject should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if isSameObject(string(value), `\"{\"foo\":\"bar\",\"baz\":null}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif err := root.AppendObject(\"biz\", NumberNode(\"\", 42)); err != nil {\n\t\tt.Errorf(\"AppendObject returns error: %v\", err)\n\t}\n\n\tval, err := Marshal(root)\n\tif err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif isSameObject(string(val), `\"{\"foo\":\"bar\",\"baz\":null,\"biz\":42}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(val))\n\t}\n}\n\nfunc TestNode_ArrayNode(t *testing.T) {\n\tarr := []*Node{\n\t\tNullNode(\"nil\"),\n\t\tNumberNode(\"num\", 42),\n\t\tStringNode(\"str\", \"foobar\"),\n\t\tBoolNode(\"bool\", true),\n\t}\n\n\tnode := ArrayNode(\"test\", arr)\n\n\tif len(node.next) != len(arr) {\n\t\tt.Errorf(\"ArrayNode: want %v got %v\", len(arr), len(node.next))\n\t}\n\n\tfor i, v := range arr {\n\t\tif node.next[strconv.Itoa(i)] == nil {\n\t\t\tt.Errorf(\"ArrayNode: want %v got %v\", v, node.next[strconv.Itoa(i)])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendArray(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`))).AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif err := root.AppendArray(\n\t\tNumberNode(\"\", 1),\n\t\tStringNode(\"\", \"foo\"),\n\t\tMust(Unmarshal([]byte(`[0,1,null,true,\"example\"]`))),\n\t\tMust(Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123}`))),\n\t); err != nil {\n\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null,1,\"foo\",[0,1,null,true,\"example\"],{\"foo\": true, \"bar\": null, \"baz\": 123}]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n}\n\n/******** value getter ********/\n\nfunc TestNode_GetBool(t *testing.T) {\n\troot, err := Unmarshal([]byte(`true`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetBool()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetBool(): %s\", err.Error())\n\t}\n\n\tif !value {\n\t\tt.Errorf(\"root.GetBool() is corrupted\")\n\t}\n}\n\nfunc TestNode_GetBool_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"literally null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetBool(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"true\", BoolNode(\"\", true)},\n\t\t{\"false\", BoolNode(\"\", false)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif !tt.node.IsBool() {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool_With_Unmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson []byte\n\t\twant bool\n\t}{\n\t\t{\"true\", []byte(\"true\"), true},\n\t\t{\"false\", []byte(\"false\"), true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.json)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\t\t}\n\n\t\t\tif root.IsBool() != tt.want {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nvar nullJson = []byte(`null`)\n\nfunc TestNode_GetNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue, err := root.GetNull()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting null, %s\", err)\n\t}\n\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNull_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"number node is null\", NumberNode(\"\", 42)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNull(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue := root.MustNull()\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNumeric_Float(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123.456`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123.456) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123.456, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Scientific_Notation(t *testing.T) {\n\troot, err := Unmarshal([]byte(`1e3`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(1000) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 1000, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_With_Unmarshal(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"string node\", StringNode(\"\", \"123\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNumeric(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetString(t *testing.T) {\n\troot, err := Unmarshal([]byte(`\"123foobar 3456\"`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t}\n\n\tvalue, err := root.GetString()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetString(): %s\", err)\n\t}\n\n\tif value != \"123foobar 3456\" {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %s\", value))\n\t}\n}\n\nfunc TestNode_GetString_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetString(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t}{\n\t\t{\"foo\", []byte(`\"foo\"`)},\n\t\t{\"foo bar\", []byte(`\"foo bar\"`)},\n\t\t{\"\", []byte(`\"\"`)},\n\t\t{\"안녕하세요\", []byte(`\"안녕하세요\"`)},\n\t\t{\"こんにちは\", []byte(`\"こんにちは\"`)},\n\t\t{\"你好\", []byte(`\"你好\"`)},\n\t\t{\"one \\\"encoded\\\" string\", []byte(`\"one \\\"encoded\\\" string\"`)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.data)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\t\t}\n\n\t\t\tvalue := root.MustString()\n\t\t\tif value != tt.name {\n\t\t\t\tt.Errorf(\"value is not matched. expected: %s, got: %s\", tt.name, value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_Array(t *testing.T) {\n\troot, err := Unmarshal([]byte(\" [1,[\\\"1\\\",[1,[1,2,3]]]]\\r\\n\"))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t}\n\n\tif root == nil {\n\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(\"Error on Unmarshal: wrong type\")\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err)\n\t} else if len(array) != 2 {\n\t\tt.Errorf(\"expected 2 elements, got %d\", len(array))\n\t} else if val, err := array[0].GetNumeric(); err != nil {\n\t\tt.Errorf(\"value of array[0] is not numeric. got: %v\", array[0].value)\n\t} else if val != 1 {\n\t\tt.Errorf(\"Error on array[0].GetNumeric(): expected to be '1', got: %v\", val)\n\t} else if val, err := array[1].GetArray(); err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err.Error())\n\t} else if len(val) != 2 {\n\t\tt.Errorf(\"Error on array[1].GetArray(): expected 2 elements, got %d\", len(val))\n\t} else if el, err := val[0].GetString(); err != nil {\n\t\tt.Errorf(\"error occurred while getting string, %s\", err.Error())\n\t} else if el != \"1\" {\n\t\tt.Errorf(\"Error on val[0].GetString(): expected to be '1', got: %s\", el)\n\t}\n}\n\nvar sampleArr = []byte(`[-1, 2, 3, 4, 5, 6]`)\n\nfunc TestNode_GetArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetArray(): %s\", err)\n\t}\n\n\tif len(array) != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"length is not matched. expected: 3, got: %d\", len(array)))\n\t}\n\n\tfor i, node := range array {\n\t\tfor j, val := range []int{-1, 2, 3, 4, 5, 6} {\n\t\t\tif i == j {\n\t\t\t\tif v, err := node.GetNumeric(); err != nil {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"Error on node.GetNumeric(): %s\", err))\n\t\t\t\t} else if v != float64(val) {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: %d, got: %v\", val, v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNode_GetArray_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetArray(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(ufmt.Sprintf(\"Must be an array. got: %s\", root.Type().String()))\n\t}\n}\n\nfunc TestNode_ArrayEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []int\n\t}{\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tjson: `[]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"single element\",\n\t\t\tjson: `[42]`,\n\t\t\texpected: []int{42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements\",\n\t\t\tjson: `[1, 2, 3, 4, 5]`,\n\t\t\texpected: []int{1, 2, 3, 4, 5},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements but all values are same\",\n\t\t\tjson: `[1, 1, 1, 1, 1]`,\n\t\t\texpected: []int{1, 1, 1, 1, 1},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements with non-numeric values\",\n\t\t\tjson: `[\"a\", \"b\", \"c\", \"d\", \"e\"]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"non-array node\",\n\t\t\tjson: `{\"not\": \"an array\"}`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"array containing numeric and non-numeric elements\",\n\t\t\tjson: `[\"1\", 2, 3, \"4\", 5, \"6\"]`,\n\t\t\texpected: []int{2, 3, 5},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tvar result []int // callback result\n\t\t\troot.ArrayEach(func(index int, element *Node) {\n\t\t\t\tif val, err := strconv.Atoi(element.String()); err == nil {\n\t\t\t\t\tresult = append(result, val)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d elements, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor i, val := range result {\n\t\t\t\tif val != tc.expected[i] {\n\t\t\t\t\tt.Errorf(\"%s: expected value at index %d to be %d, got %d\", tc.name, i, tc.expected[i], val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Key(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123, \"biz\": [1,2,3]}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tobj := root.MustObject()\n\tfor key, node := range obj {\n\t\tif key != node.Key() {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", node.Key(), key)\n\t\t}\n\t}\n\n\tkeys := []string{\"foo\", \"bar\", \"baz\", \"biz\"}\n\tfor _, key := range keys {\n\t\tif obj[key].Key() != key {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", obj[key].Key(), key)\n\t\t}\n\t}\n\n\t// TODO: resolve stack overflow\n\t// if root.MustKey(\"foo\").Clone().Key() != \"\" {\n\t// \tt.Errorf(\"wrong key found for cloned key\")\n\t// }\n\n\tif (*Node)(nil).Key() != \"\" {\n\t\tt.Errorf(\"wrong key found for nil node\")\n\t}\n}\n\nfunc TestNode_Size(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tsize := root.Size()\n\tif size != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 6. got: %v\", size))\n\t}\n\n\tif (*Node)(nil).Size() != 0 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 0. got: %v\", (*Node)(nil).Size()))\n\t}\n}\n\nfunc TestNode_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tarr := root.MustArray()\n\tfor i, node := range arr {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_Index_Fail(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant int\n\t}{\n\t\t{\"nil node\", (*Node)(nil), -1},\n\t\t{\"null node\", NullNode(\"\"), -1},\n\t\t{\"object node\", ObjectNode(\"\", nil), -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Index(); got != tt.want {\n\t\t\t\tt.Errorf(\"Index() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetIndex(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`)))\n\texpected := []int{1, 2, 3, 4, 5, 6}\n\n\tif len(expected) != root.Size() {\n\t\tt.Errorf(\"length is not matched. expected: %d, got: %d\", len(expected), root.Size())\n\t}\n\n\t// TODO: if length exceeds, stack overflow occurs. need to fix\n\tfor i, v := range expected {\n\t\tval, err := root.GetIndex(i)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"error occurred while getting index %d, %s\", i, err)\n\t\t}\n\n\t\tif val.MustNumeric() != float64(v) {\n\t\t\tt.Errorf(\"value is not matched. expected: %d, got: %v\", v, val.MustNumeric())\n\t\t}\n\t}\n}\n\nfunc TestNode_GetIndex_InputIndex_Exceed_Original_Node_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\t_, err = root.GetIndex(10)\n\tif err == nil {\n\t\tt.Errorf(\"GetIndex should return error\")\n\t}\n}\n\nfunc TestNode_DeleteIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\texpected string\n\t\tindex int\n\t\tok bool\n\t}{\n\t\t{`null`, ``, 0, false},\n\t\t{`1`, ``, 0, false},\n\t\t{`{}`, ``, 0, false},\n\t\t{`{\"foo\":\"bar\"}`, ``, 0, false},\n\t\t{`true`, ``, 0, false},\n\t\t{`[]`, ``, 0, false},\n\t\t{`[]`, ``, -1, false},\n\t\t{`[1]`, `[]`, 0, true},\n\t\t{`[{}]`, `[]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, -1, true},\n\t\t{`[{}, [], 42]`, `[[], 42]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, 42]`, 1, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, 2, true},\n\t\t{`[{}, [], 42]`, ``, 10, false},\n\t\t{`[{}, [], 42]`, ``, -10, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot := Must(Unmarshal([]byte(tt.name)))\n\t\t\terr := root.DeleteIndex(tt.index)\n\t\t\tif err != nil \u0026\u0026 tt.ok {\n\t\t\t\tt.Errorf(\"DeleteIndex returns error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetKey(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tvalue, err := root.GetKey(\"foo\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\tif value.MustBool() != true {\n\t\tt.Errorf(\"value is not matched. expected: true, got: %v\", value.MustBool())\n\t}\n\n\tvalue, err = root.GetKey(\"bar\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\t_, err = root.GetKey(\"baz\")\n\tif err == nil {\n\t\tt.Errorf(\"key baz is not exist. must be failed\")\n\t}\n\n\tif value.MustNull() != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value.MustNull())\n\t}\n}\n\nfunc TestNode_GetKey_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetKey(\"\"); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetUniqueKeyList(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname: \"simple foo/bar\",\n\t\t\tjson: `{\"foo\": true, \"bar\": null}`,\n\t\t\texpected: []string{\"foo\", \"bar\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tjson: `{\n\t\t\t\t\"outer\": {\n\t\t\t\t\t\"inner\": {\n\t\t\t\t\t\t\"key\": \"value\"\n\t\t\t\t\t},\n\t\t\t\t\t\"array\": [1, 2, 3]\n\t\t\t\t},\n\t\t\t\t\"another\": \"item\"\n\t\t\t}`,\n\t\t\texpected: []string{\"outer\", \"inner\", \"key\", \"array\", \"another\"},\n\t\t},\n\t\t{\n\t\t\tname: \"complex object\",\n\t\t\tjson: `{\n\t\t\t\t\"Image\": {\n\t\t\t\t\t\"Width\": 800,\n\t\t\t\t\t\"Height\": 600,\n\t\t\t\t\t\"Title\": \"View from 15th Floor\",\n\t\t\t\t\t\"Thumbnail\": {\n\t\t\t\t\t\t\"Url\": \"http://www.example.com/image/481989943\",\n\t\t\t\t\t\t\"Height\": 125,\n\t\t\t\t\t\t\"Width\": 100\n\t\t\t\t\t},\n\t\t\t\t\t\"Animated\": false,\n\t\t\t\t\t\"IDs\": [116, 943, 234, 38793]\n\t\t\t\t}\n\t\t\t}`,\n\t\t\texpected: []string{\"Image\", \"Width\", \"Height\", \"Title\", \"Thumbnail\", \"Url\", \"Animated\", \"IDs\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tt.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"error occurred while unmarshal\")\n\t\t\t}\n\n\t\t\tvalue := root.UniqueKeyLists()\n\t\t\tif len(value) != len(tt.expected) {\n\t\t\t\tt.Errorf(\"%s length must be %v. got: %v. retrieved keys: %s\", tt.name, len(tt.expected), len(value), value)\n\t\t\t}\n\n\t\t\tfor _, key := range value {\n\t\t\t\tif !contains(tt.expected, key) {\n\t\t\t\t\tt.Errorf(\"EachKey() must be in %v. got: %v\", tt.expected, key)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: resolve stack overflow\nfunc TestNode_IsEmpty(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\texpected bool\n\t}{\n\t\t{\"nil node\", (*Node)(nil), false}, // nil node is not empty.\n\t\t// {\"null node\", NullNode(\"\"), true},\n\t\t{\"empty object\", ObjectNode(\"\", nil), true},\n\t\t{\"empty array\", ArrayNode(\"\", nil), true},\n\t\t{\"non-empty object\", ObjectNode(\"\", map[string]*Node{\"foo\": BoolNode(\"foo\", true)}), false},\n\t\t{\"non-empty array\", ArrayNode(\"\", []*Node{BoolNode(\"0\", true)}), false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Empty(); got != tt.expected {\n\t\t\t\tt.Errorf(\"%s = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Index_EmptyList(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tarray := root.MustArray()\n\tfor i, node := range array {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_GetObject(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true,\"bar\": null}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetObject()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetObject(): %s\", err.Error())\n\t}\n\n\tif _, ok := value[\"foo\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: foo\")\n\t}\n\n\tif _, ok := value[\"bar\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: bar\")\n\t}\n}\n\nfunc TestNode_GetObject_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"get object from null node\", NullNode(\"\")},\n\t\t{\"not object node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetObject(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ObjectEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected map[string]int\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t\t{\n\t\t\tname: \"single key-value pair\",\n\t\t\tjson: `{\"key\": 42}`,\n\t\t\texpected: map[string]int{\"key\": 42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs\",\n\t\t\tjson: `{\"one\": 1, \"two\": 2, \"three\": 3}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"two\": 2, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs with some non-numeric values\",\n\t\t\tjson: `{\"one\": 1, \"two\": \"2\", \"three\": 3, \"four\": \"4\"}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"non-object node\",\n\t\t\tjson: `[\"not\", \"an\", \"object\"]`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tresult := make(map[string]int)\n\t\t\troot.ObjectEach(func(key string, value *Node) {\n\t\t\t\t// extract integer values from the object\n\t\t\t\tif val, err := strconv.Atoi(value.String()); err == nil {\n\t\t\t\t\tresult[key] = val\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d key-value pairs, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor key, val := range tc.expected {\n\t\t\t\tif result[key] != val {\n\t\t\t\t\tt.Errorf(\"%s: expected value for key %s to be %d, got %d\", tc.name, key, val, result[key])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ExampleMust(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot := Must(Unmarshal(data))\n\tif root.Size() != 1 {\n\t\tt.Errorf(\"root.Size() must be 1. got: %v\", root.Size())\n\t}\n\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n\t// Output:\n\t// Object has 1 inheritors inside\n}\n\n// Calculate AVG price from different types of objects, JSON from: https://goessner.net/articles/JsonPath/index.html#e3\nfunc TestExampleUnmarshal(t *testing.T) {\n\tdata := []byte(`{ \"store\": {\n \"book\": [ \n { \"category\": \"reference\",\n \"author\": \"Nigel Rees\",\n \"title\": \"Sayings of the Century\",\n \"price\": 8.95\n },\n { \"category\": \"fiction\",\n \"author\": \"Evelyn Waugh\",\n \"title\": \"Sword of Honour\",\n \"price\": 12.99\n },\n { \"category\": \"fiction\",\n \"author\": \"Herman Melville\",\n \"title\": \"Moby Dick\",\n \"isbn\": \"0-553-21311-3\",\n \"price\": 8.99\n },\n { \"category\": \"fiction\",\n \"author\": \"J. R. R. Tolkien\",\n \"title\": \"The Lord of the Rings\",\n \"isbn\": \"0-395-19395-8\",\n \"price\": 22.99\n }\n ],\n \"bicycle\": { \"color\": \"red\",\n \"price\": 19.95\n },\n \"tools\": null\n }\n}`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred when unmarshal\")\n\t}\n\n\tstore := root.MustKey(\"store\").MustObject()\n\n\tvar prices float64\n\tsize := 0\n\tfor _, objects := range store {\n\t\tif objects.IsArray() \u0026\u0026 objects.Size() \u003e 0 {\n\t\t\tsize += objects.Size()\n\t\t\tfor _, object := range objects.MustArray() {\n\t\t\t\tprices += object.MustKey(\"price\").MustNumeric()\n\t\t\t}\n\t\t} else if objects.IsObject() \u0026\u0026 objects.HasKey(\"price\") {\n\t\t\tsize++\n\t\t\tprices += objects.MustKey(\"price\").MustNumeric()\n\t\t}\n\t}\n\n\tresult := int(prices / float64(size))\n\tufmt.Sprintf(\"AVG price: %d\", result)\n}\n\nfunc TestNode_ExampleMust_panic(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t}\n\t}()\n\tdata := []byte(`{]`)\n\troot := Must(Unmarshal(data))\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n}\n\nfunc TestNode_Path(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tif root.Path() != \"$\" {\n\t\tt.Errorf(\"Wrong root.Path()\")\n\t}\n\n\telement := root.MustKey(\"Image\").MustKey(\"Thumbnail\").MustKey(\"Url\")\n\tif element.Path() != \"$['Image']['Thumbnail']['Url']\" {\n\t\tt.Errorf(\"Wrong path found: %s\", element.Path())\n\t}\n\n\tif (*Node)(nil).Path() != \"\" {\n\t\tt.Errorf(\"Wrong (nil).Path()\")\n\t}\n}\n\nfunc TestNode_Path2(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"Node with key\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tkey: func() *string { s := \"key\"; return \u0026s }(),\n\t\t\t},\n\t\t\twant: \"$['key']\",\n\t\t},\n\t\t{\n\t\t\tname: \"Node with index\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tindex: func() *int { i := 1; return \u0026i }(),\n\t\t\t},\n\t\t\twant: \"$[1]\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Path(); got != tt.want {\n\t\t\t\tt.Errorf(\"Path() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Root(t *testing.T) {\n\troot := \u0026Node{}\n\tchild := \u0026Node{prev: root}\n\tgrandChild := \u0026Node{prev: child}\n\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant *Node\n\t}{\n\t\t{\n\t\t\tname: \"Root node\",\n\t\t\tnode: root,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Child node\",\n\t\t\tnode: child,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Grandchild node\",\n\t\t\tnode: grandChild,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Node is nil\",\n\t\t\tnode: nil,\n\t\t\twant: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.root(); got != tt.want {\n\t\t\t\tt.Errorf(\"root() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc contains(slice []string, item string) bool {\n\tfor _, a := range slice {\n\t\tif a == item {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// ignore the sequence of keys by ordering them.\n// need to avoid import encoding/json and reflect package.\n// because gno does not support them for now.\n// TODO: use encoding/json to compare the result after if possible in gno.\nfunc isSameObject(a, b string) bool {\n\taPairs := strings.Split(strings.Trim(a, \"{}\"), \",\")\n\tbPairs := strings.Split(strings.Trim(b, \"{}\"), \",\")\n\n\taMap := make(map[string]string)\n\tbMap := make(map[string]string)\n\tfor _, pair := range aPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\taMap[key] = value\n\t}\n\tfor _, pair := range bPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\tbMap[key] = value\n\t}\n\n\taKeys := make([]string, 0, len(aMap))\n\tbKeys := make([]string, 0, len(bMap))\n\tfor k := range aMap {\n\t\taKeys = append(aKeys, k)\n\t}\n\n\tfor k := range bMap {\n\t\tbKeys = append(bKeys, k)\n\t}\n\n\tsort.Strings(aKeys)\n\tsort.Strings(bKeys)\n\n\tif len(aKeys) != len(bKeys) {\n\t\treturn false\n\t}\n\n\tfor i := range aKeys {\n\t\tif aKeys[i] != bKeys[i] {\n\t\t\treturn false\n\t\t}\n\n\t\tif aMap[aKeys[i]] != bMap[bKeys[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc compareNodes(n1, n2 *Node) bool {\n\tif n1 == nil || n2 == nil {\n\t\treturn n1 == n2\n\t}\n\n\tif n1.key != n2.key {\n\t\treturn false\n\t}\n\n\tif !bytes.Equal(n1.data, n2.data) {\n\t\treturn false\n\t}\n\n\tif n1.index != n2.index {\n\t\treturn false\n\t}\n\n\tif n1.borders != n2.borders {\n\t\treturn false\n\t}\n\n\tif n1.modified != n2.modified {\n\t\treturn false\n\t}\n\n\tif n1.nodeType != n2.nodeType {\n\t\treturn false\n\t}\n\n\tif !compareNodes(n1.prev, n2.prev) {\n\t\treturn false\n\t}\n\n\tif len(n1.next) != len(n2.next) {\n\t\treturn false\n\t}\n\n\tfor k, v := range n1.next {\n\t\tif !compareNodes(v, n2.next[k]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"parser.gno","body":"package json\n\nimport (\n\t\"bytes\"\n)\n\nconst (\n\tunescapeStackBufSize = 64\n\tabsMinInt64 = 1 \u003c\u003c 63\n\tmaxInt64 = absMinInt64 - 1\n\tmaxUint64 = 1\u003c\u003c64 - 1\n)\n\n// PaseStringLiteral parses a string from the given byte slice.\nfunc ParseStringLiteral(data []byte) (string, error) {\n\tvar buf [unescapeStackBufSize]byte\n\n\tbf, err := Unescape(data, buf[:])\n\tif err != nil {\n\t\treturn \"\", errInvalidStringInput\n\t}\n\n\treturn string(bf), nil\n}\n\n// ParseBoolLiteral parses a boolean value from the given byte slice.\nfunc ParseBoolLiteral(data []byte) (bool, error) {\n\tswitch {\n\tcase bytes.Equal(data, trueLiteral):\n\t\treturn true, nil\n\tcase bytes.Equal(data, falseLiteral):\n\t\treturn false, nil\n\tdefault:\n\t\treturn false, errMalformedBooleanValue\n\t}\n}\n"},{"name":"parser_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseStringLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t\tisError bool\n\t}{\n\t\t{`\"Hello, World!\"`, \"\\\"Hello, World!\\\"\", false},\n\t\t{`\\uFF11`, \"\\uFF11\", false},\n\t\t{`\\uFFFF`, \"\\uFFFF\", false},\n\t\t{`true`, \"true\", false},\n\t\t{`false`, \"false\", false},\n\t\t{`\\uDF00`, \"\", true},\n\t}\n\n\tfor i, tt := range tests {\n\t\ts, err := ParseStringLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif s != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%s, but actual=%s\", i, tt.expected, s)\n\t\t}\n\t}\n}\n\nfunc TestParseBoolLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected bool\n\t\tisError bool\n\t}{\n\t\t{`true`, true, false},\n\t\t{`false`, false, false},\n\t\t{`TRUE`, false, true},\n\t\t{`FALSE`, false, true},\n\t\t{`foo`, false, true},\n\t\t{`\"true\"`, false, true},\n\t\t{`\"false\"`, false, true},\n\t}\n\n\tfor i, tt := range tests {\n\t\tb, err := ParseBoolLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif b != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%t, but actual=%t\", i, tt.expected, b)\n\t\t}\n\t}\n}\n"},{"name":"path.gno","body":"package json\n\nimport (\n\t\"errors\"\n)\n\n// ParsePath takes a JSONPath string and returns a slice of strings representing the path segments.\nfunc ParsePath(path string) ([]string, error) {\n\tbuf := newBuffer([]byte(path))\n\tresult := make([]string, 0)\n\n\tfor {\n\t\tb, err := buf.current()\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch {\n\t\tcase b == dollarSign || b == atSign:\n\t\t\tresult = append(result, string(b))\n\t\t\tbuf.step()\n\n\t\tcase b == dot:\n\t\t\tbuf.step()\n\n\t\t\tif next, _ := buf.current(); next == dot {\n\t\t\t\tbuf.step()\n\t\t\t\tresult = append(result, \"..\")\n\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t} else {\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t}\n\n\t\tcase b == bracketOpen:\n\t\t\tstart := buf.index\n\t\t\tbuf.step()\n\n\t\t\tfor {\n\t\t\t\tif buf.index \u003e= buf.length || buf.data[buf.index] == bracketClose {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tbuf.step()\n\t\t\t}\n\n\t\t\tif buf.index \u003e= buf.length {\n\t\t\t\treturn nil, errors.New(\"unexpected end of path\")\n\t\t\t}\n\n\t\t\tsegment := string(buf.sliceFromIndices(start+1, buf.index))\n\t\t\tresult = append(result, segment)\n\n\t\t\tbuf.step()\n\n\t\tdefault:\n\t\t\tbuf.step()\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// extractNextSegment extracts the segment from the current index\n// to the next significant character and adds it to the resulting slice.\nfunc extractNextSegment(buf *buffer, result *[]string) {\n\tstart := buf.index\n\tbuf.skipToNextSignificantToken()\n\n\tif buf.index \u003c= start {\n\t\treturn\n\t}\n\n\tsegment := string(buf.sliceFromIndices(start, buf.index))\n\tif segment != \"\" {\n\t\t*result = append(*result, segment)\n\t}\n}\n"},{"name":"path_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseJSONPath(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\texpected []string\n\t}{\n\t\t{name: \"Empty string path\", path: \"\", expected: []string{}},\n\t\t{name: \"Root only path\", path: \"$\", expected: []string{\"$\"}},\n\t\t{name: \"Root with dot path\", path: \"$.\", expected: []string{\"$\"}},\n\t\t{name: \"All objects in path\", path: \"$..\", expected: []string{\"$\", \"..\"}},\n\t\t{name: \"Only children in path\", path: \"$.*\", expected: []string{\"$\", \"*\"}},\n\t\t{name: \"All objects' children in path\", path: \"$..*\", expected: []string{\"$\", \"..\", \"*\"}},\n\t\t{name: \"Simple dot notation path\", path: \"$.root.element\", expected: []string{\"$\", \"root\", \"element\"}},\n\t\t{name: \"Complex dot notation path with wildcard\", path: \"$.root.*.element\", expected: []string{\"$\", \"root\", \"*\", \"element\"}},\n\t\t{name: \"Path with array wildcard\", path: \"$.phoneNumbers[*].type\", expected: []string{\"$\", \"phoneNumbers\", \"*\", \"type\"}},\n\t\t{name: \"Path with filter expression\", path: \"$.store.book[?(@.price \u003c 10)].title\", expected: []string{\"$\", \"store\", \"book\", \"?(@.price \u003c 10)\", \"title\"}},\n\t\t{name: \"Path with formula\", path: \"$..phoneNumbers..('ty' + 'pe')\", expected: []string{\"$\", \"..\", \"phoneNumbers\", \"..\", \"('ty' + 'pe')\"}},\n\t\t{name: \"Simple bracket notation path\", path: \"$['root']['element']\", expected: []string{\"$\", \"'root'\", \"'element'\"}},\n\t\t{name: \"Complex bracket notation path with wildcard\", path: \"$['root'][*]['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Bracket notation path with integer index\", path: \"$['store']['book'][0]['title']\", expected: []string{\"$\", \"'store'\", \"'book'\", \"0\", \"'title'\"}},\n\t\t{name: \"Complex path with wildcard in bracket notation\", path: \"$['root'].*['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot after bracket\", path: \"$.['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot before bracket\", path: \"$['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Single character path with root\", path: \"$.a\", expected: []string{\"$\", \"a\"}},\n\t\t{name: \"Multiple characters path with root\", path: \"$.abc\", expected: []string{\"$\", \"abc\"}},\n\t\t{name: \"Multiple segments path with root\", path: \"$.a.b.c\", expected: []string{\"$\", \"a\", \"b\", \"c\"}},\n\t\t{name: \"Multiple segments path with wildcard and root\", path: \"$.a.*.c\", expected: []string{\"$\", \"a\", \"*\", \"c\"}},\n\t\t{name: \"Multiple segments path with filter and root\", path: \"$.a[?(@.b == 'c')].d\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\"}},\n\t\t{name: \"Complex path with multiple filters\", path: \"$.a[?(@.b == 'c')].d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Complex path with multiple filters and wildcards\", path: \"$.a[?(@.b == 'c')].*.d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"*\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Path with array index and root\", path: \"$.a[0].b\", expected: []string{\"$\", \"a\", \"0\", \"b\"}},\n\t\t{name: \"Path with multiple array indices and root\", path: \"$.a[0].b[1].c\", expected: []string{\"$\", \"a\", \"0\", \"b\", \"1\", \"c\"}},\n\t\t{name: \"Path with array index, wildcard and root\", path: \"$.a[0].*.c\", expected: []string{\"$\", \"a\", \"0\", \"*\", \"c\"}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\treult, _ := ParsePath(tt.path)\n\t\t\tif !isEqualSlice(reult, tt.expected) {\n\t\t\t\tt.Errorf(\"ParsePath(%s) expected: %v, got: %v\", tt.path, tt.expected, reult)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc isEqualSlice(a, b []string) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"token.gno","body":"package json\n\nconst (\n\tbracketOpen = '['\n\tbracketClose = ']'\n\tparenOpen = '('\n\tparenClose = ')'\n\tcurlyOpen = '{'\n\tcurlyClose = '}'\n\tcomma = ','\n\tdot = '.'\n\tcolon = ':'\n\tbackTick = '`'\n\tsingleQuote = '\\''\n\tdoubleQuote = '\"'\n\temptyString = \"\"\n\twhiteSpace = ' '\n\tplus = '+'\n\tminus = '-'\n\taesterisk = '*'\n\tbang = '!'\n\tquestion = '?'\n\tnewLine = '\\n'\n\ttab = '\\t'\n\tcarriageReturn = '\\r'\n\tformFeed = '\\f'\n\tbackSpace = '\\b'\n\tslash = '/'\n\tbackSlash = '\\\\'\n\tunderScore = '_'\n\tdollarSign = '$'\n\tatSign = '@'\n\tandSign = '\u0026'\n\torSign = '|'\n)\n\nvar (\n\ttrueLiteral = []byte(\"true\")\n\tfalseLiteral = []byte(\"false\")\n\tnullLiteral = []byte(\"null\")\n)\n\ntype ValueType int\n\nconst (\n\tNotExist ValueType = iota\n\tString\n\tNumber\n\tFloat\n\tObject\n\tArray\n\tBoolean\n\tNull\n\tUnknown\n)\n\nfunc (v ValueType) String() string {\n\tswitch v {\n\tcase NotExist:\n\t\treturn \"not-exist\"\n\tcase String:\n\t\treturn \"string\"\n\tcase Number:\n\t\treturn \"number\"\n\tcase Object:\n\t\treturn \"object\"\n\tcase Array:\n\t\treturn \"array\"\n\tcase Boolean:\n\t\treturn \"boolean\"\n\tcase Null:\n\t\treturn \"null\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lbCXbPuXcBvjoBEaJt0NpiYFzxxQyoxAhCwc9MDSSAFGc12Y+ZZUUyVw6C1OoHMqr0XWN/seKBqEADnwwfL3Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"json","path":"gno.land/p/demo/json","files":[{"name":"LICENSE","body":"# MIT License\n\nCopyright (c) 2019 Pyzhov Stepan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"name":"README.md","body":"# JSON Parser\n\nThe JSON parser is a package that provides functionality for parsing and processing JSON strings. This package accepts JSON strings as byte slices.\n\nCurrently, gno does not [support the `reflect` package](https://docs.gno.land/concepts/effective-gno#reflection-is-never-clear), so it cannot retrieve type information at runtime. Therefore, it is designed to infer and handle type information when parsing JSON strings using a state machine approach.\n\nAfter passing through the state machine, JSON strings are represented as the `Node` type. The `Node` type represents nodes for JSON data, including various types such as `ObjectNode`, `ArrayNode`, `StringNode`, `NumberNode`, `BoolNode`, and `NullNode`.\n\nThis package provides methods for manipulating, searching, and extracting the Node type.\n\n## State Machine\n\nTo parse JSON strings, a [finite state machine](https://en.wikipedia.org/wiki/Finite-state_machine) approach is used. The state machine transitions to the next state based on the current state and the input character while parsing the JSON string. Through this method, type information can be inferred and processed without reflect, and the amount of parser code can be significantly reduced.\n\nThe image below shows the state transitions of the state machine according to the states and input characters.\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e __: Start\n __ --\u003e ST: String\n __ --\u003e MI: Number\n __ --\u003e ZE: Zero\n __ --\u003e IN: Integer\n __ --\u003e T1: Boolean (true)\n __ --\u003e F1: Boolean (false)\n __ --\u003e N1: Null\n __ --\u003e ec: Empty Object End\n __ --\u003e cc: Object End\n __ --\u003e bc: Array End\n __ --\u003e co: Object Begin\n __ --\u003e bo: Array Begin\n __ --\u003e cm: Comma\n __ --\u003e cl: Colon\n __ --\u003e OK: Success/End\n ST --\u003e OK: String Complete\n MI --\u003e OK: Number Complete\n ZE --\u003e OK: Zero Complete\n IN --\u003e OK: Integer Complete\n T1 --\u003e OK: True Complete\n F1 --\u003e OK: False Complete\n N1 --\u003e OK: Null Complete\n ec --\u003e OK: Empty Object Complete\n cc --\u003e OK: Object Complete\n bc --\u003e OK: Array Complete\n co --\u003e OB: Inside Object\n bo --\u003e AR: Inside Array\n cm --\u003e KE: Expecting New Key\n cm --\u003e VA: Expecting New Value\n cl --\u003e VA: Expecting Value\n OB --\u003e ST: String in Object (Key)\n OB --\u003e ec: Empty Object\n OB --\u003e cc: End Object\n AR --\u003e ST: String in Array\n AR --\u003e bc: End Array\n KE --\u003e ST: String as Key\n VA --\u003e ST: String as Value\n VA --\u003e MI: Number as Value\n VA --\u003e T1: True as Value\n VA --\u003e F1: False as Value\n VA --\u003e N1: Null as Value\n OK --\u003e [*]: End\n```\n\n## Examples\n\nThis package provides parsing functionality along with encoding and decoding functionality. The following examples demonstrate how to use this package.\n\n### Decoding\n\nDecoding (or Unmarshaling) is the functionality that converts an input byte slice JSON string into a `Node` type.\n\nThe converted `Node` type allows you to modify the JSON data or search and extract data that meets specific conditions.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node, err := json.Unmarshal([]byte(`{\"foo\": \"var\"}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"node: %v\", node)\n}\n```\n\n### Encoding\n\nEncoding (or Marshaling) is the functionality that converts JSON data represented as a Node type into a byte slice JSON string.\n\n\u003e ⚠️ Caution: Converting a large `Node` type into a JSON string may _impact performance_. or might be cause _unexpected behavior_.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node := ObjectNode(\"\", map[string]*Node{\n \"foo\": StringNode(\"foo\", \"bar\"),\n \"baz\": NumberNode(\"baz\", 100500),\n \"qux\": NullNode(\"qux\"),\n })\n\n b, err := json.Marshal(node)\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"json: %s\", string(b))\n}\n```\n\n### Searching\n\nOnce the JSON data converted into a `Node` type, you can **search** and **extract** data that satisfy specific conditions. For example, you can find data with a specific type or data with a specific key.\n\nTo use this functionality, you can use methods in the `GetXXX` prefixed methods. The `MustXXX` methods also provide the same functionality as the former methods, but they will **panic** if data doesn't satisfies the condition.\n\nHere is an example of finding data with a specific key. For more examples, please refer to the [node.gno](node.gno) file.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n root, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n value, err := root.GetKey(\"foo\")\n if err != nil {\n ufmt.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n if value.MustBool() != true {\n ufmt.Errorf(\"value is not true\")\n }\n\n value, err = root.GetKey(\"bar\")\n if err != nil {\n t.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n _, err = root.GetKey(\"baz\")\n if err == nil {\n t.Errorf(\"key baz is not exist. must be failed\")\n }\n}\n```\n\n## Contributing\n\nPlease submit any issues or pull requests for this package through the GitHub repository at [gnolang/gno](\u003chttps://github.com/gnolang/gno\u003e).\n"},{"name":"buffer.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype buffer struct {\n\tdata []byte\n\tlength int\n\tindex int\n\n\tlast States\n\tstate States\n\tclass Classes\n}\n\n// newBuffer creates a new buffer with the given data\nfunc newBuffer(data []byte) *buffer {\n\treturn \u0026buffer{\n\t\tdata: data,\n\t\tlength: len(data),\n\t\tlast: GO,\n\t\tstate: GO,\n\t}\n}\n\n// first retrieves the first non-whitespace (or other escaped) character in the buffer.\nfunc (b *buffer) first() (byte, error) {\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tc := b.data[b.index]\n\n\t\tif !(c == whiteSpace || c == carriageReturn || c == newLine || c == tab) {\n\t\t\treturn c, nil\n\t\t}\n\t}\n\n\treturn 0, io.EOF\n}\n\n// current returns the byte of the current index.\nfunc (b *buffer) current() (byte, error) {\n\tif b.index \u003e= b.length {\n\t\treturn 0, io.EOF\n\t}\n\n\treturn b.data[b.index], nil\n}\n\n// next moves to the next byte and returns it.\nfunc (b *buffer) next() (byte, error) {\n\tb.index++\n\treturn b.current()\n}\n\n// step just moves to the next position.\nfunc (b *buffer) step() error {\n\t_, err := b.next()\n\treturn err\n}\n\n// move moves the index by the given position.\nfunc (b *buffer) move(pos int) error {\n\tnewIndex := b.index + pos\n\n\tif newIndex \u003e b.length {\n\t\treturn io.EOF\n\t}\n\n\tb.index = newIndex\n\n\treturn nil\n}\n\n// slice returns the slice from the current index to the given position.\nfunc (b *buffer) slice(pos int) ([]byte, error) {\n\tend := b.index + pos\n\n\tif end \u003e b.length {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn b.data[b.index:end], nil\n}\n\n// sliceFromIndices returns a slice of the buffer's data starting from 'start' up to (but not including) 'stop'.\nfunc (b *buffer) sliceFromIndices(start, stop int) []byte {\n\tif start \u003e b.length {\n\t\tstart = b.length\n\t}\n\n\tif stop \u003e b.length {\n\t\tstop = b.length\n\t}\n\n\treturn b.data[start:stop]\n}\n\n// skip moves the index to skip the given byte.\nfunc (b *buffer) skip(bs byte) error {\n\tfor b.index \u003c b.length {\n\t\tif b.data[b.index] == bs \u0026\u0026 !b.backslash() {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn io.EOF\n}\n\n// skipAndReturnIndex moves the buffer index forward by one and returns the new index.\nfunc (b *buffer) skipAndReturnIndex() (int, error) {\n\terr := b.step()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn b.index, nil\n}\n\n// skipUntil moves the buffer index forward until it encounters a byte contained in the endTokens set.\nfunc (b *buffer) skipUntil(endTokens map[byte]bool) (int, error) {\n\tfor b.index \u003c b.length {\n\t\tcurrentByte, err := b.current()\n\t\tif err != nil {\n\t\t\treturn b.index, err\n\t\t}\n\n\t\t// Check if the current byte is in the set of end tokens.\n\t\tif _, exists := endTokens[currentByte]; exists {\n\t\t\treturn b.index, nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn b.index, io.EOF\n}\n\n// significantTokens is a map where the keys are the significant characters in a JSON path.\n// The values in the map are all true, which allows us to use the map as a set for quick lookups.\nvar significantTokens = [256]bool{\n\tdot: true, // access properties of an object\n\tdollarSign: true, // root object\n\tatSign: true, // current object\n\tbracketOpen: true, // start of an array index or filter expression\n\tbracketClose: true, // end of an array index or filter expression\n}\n\n// filterTokens stores the filter expression tokens.\nvar filterTokens = [256]bool{\n\taesterisk: true, // wildcard\n\tandSign: true,\n\torSign: true,\n}\n\n// skipToNextSignificantToken advances the buffer index to the next significant character.\n// Significant characters are defined based on the JSON path syntax.\nfunc (b *buffer) skipToNextSignificantToken() {\n\tfor b.index \u003c b.length {\n\t\tcurrent := b.data[b.index]\n\n\t\tif significantTokens[current] {\n\t\t\tbreak\n\t\t}\n\n\t\tb.index++\n\t}\n}\n\n// backslash checks to see if the number of backslashes before the current index is odd.\n//\n// This is used to check if the current character is escaped. However, unlike the \"unescape\" function,\n// \"backslash\" only serves to check the number of backslashes.\nfunc (b *buffer) backslash() bool {\n\tif b.index == 0 {\n\t\treturn false\n\t}\n\n\tcount := 0\n\tfor i := b.index - 1; ; i-- {\n\t\tif b.data[i] != backSlash {\n\t\t\tbreak\n\t\t}\n\n\t\tcount++\n\n\t\tif i == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn count%2 != 0\n}\n\n// numIndex holds a map of valid numeric characters\nvar numIndex = [256]bool{\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t'.': true,\n\t'e': true,\n\t'E': true,\n}\n\n// pathToken checks if the current token is a valid JSON path token.\nfunc (b *buffer) pathToken() error {\n\tvar stack []byte\n\n\tinToken := false\n\tinNumber := false\n\tfirst := b.index\n\n\tfor b.index \u003c b.length {\n\t\tc := b.data[b.index]\n\n\t\tswitch {\n\t\tcase c == doubleQuote || c == singleQuote:\n\t\t\tinToken = true\n\t\t\tif err := b.step(); err != nil {\n\t\t\t\treturn errors.New(\"error stepping through buffer\")\n\t\t\t}\n\n\t\t\tif err := b.skip(c); err != nil {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\t\tif b.index \u003e= b.length {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\tcase c == bracketOpen || c == parenOpen:\n\t\t\tinToken = true\n\t\t\tstack = append(stack, c)\n\n\t\tcase c == bracketClose || c == parenClose:\n\t\t\tinToken = true\n\t\t\tif len(stack) == 0 || (c == bracketClose \u0026\u0026 stack[len(stack)-1] != bracketOpen) || (c == parenClose \u0026\u0026 stack[len(stack)-1] != parenOpen) {\n\t\t\t\treturn errUnmatchedParenthesis\n\t\t\t}\n\n\t\t\tstack = stack[:len(stack)-1]\n\n\t\tcase pathStateContainsValidPathToken(c):\n\t\t\tinToken = true\n\n\t\tcase c == plus || c == minus:\n\t\t\tif inNumber || (b.index \u003e 0 \u0026\u0026 numIndex[b.data[b.index-1]]) {\n\t\t\t\tinToken = true\n\t\t\t} else if !inToken \u0026\u0026 (b.index+1 \u003c b.length \u0026\u0026 numIndex[b.data[b.index+1]]) {\n\t\t\t\tinToken = true\n\t\t\t\tinNumber = true\n\t\t\t} else if !inToken {\n\t\t\t\treturn errInvalidToken\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif len(stack) != 0 || inToken {\n\t\t\t\tinToken = true\n\t\t\t} else {\n\t\t\t\tgoto end\n\t\t\t}\n\t\t}\n\n\t\tb.index++\n\t}\n\nend:\n\tif len(stack) != 0 {\n\t\treturn errUnmatchedParenthesis\n\t}\n\n\tif first == b.index {\n\t\treturn errors.New(\"no token found\")\n\t}\n\n\tif inNumber \u0026\u0026 !numIndex[b.data[b.index-1]] {\n\t\tinNumber = false\n\t}\n\n\treturn nil\n}\n\nfunc pathStateContainsValidPathToken(c byte) bool {\n\tif significantTokens[c] {\n\t\treturn true\n\t}\n\n\tif filterTokens[c] {\n\t\treturn true\n\t}\n\n\tif numIndex[c] {\n\t\treturn true\n\t}\n\n\tif 'A' \u003c= c \u0026\u0026 c \u003c= 'Z' || 'a' \u003c= c \u0026\u0026 c \u003c= 'z' {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nfunc (b *buffer) numeric(token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(doubleQuote)\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\tif token {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\treturn nil\n\t\t}\n\n\t\tif b.state \u003c MI || b.state \u003e E3 {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\tif b.last != ZE \u0026\u0026 b.last != IN \u0026\u0026 b.last != FR \u0026\u0026 b.last != E3 {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) getClasses(c byte) Classes {\n\tif b.data[b.index] \u003e= 128 {\n\t\treturn C_ETC\n\t}\n\n\tif c == singleQuote {\n\t\treturn QuoteAsciiClasses[b.data[b.index]]\n\t}\n\n\treturn AsciiClasses[b.data[b.index]]\n}\n\nfunc (b *buffer) getState() States {\n\tb.last = b.state\n\n\tb.class = b.getClasses(doubleQuote)\n\tif b.class == __ {\n\t\treturn __\n\t}\n\n\tb.state = StateTransitionTable[b.last][b.class]\n\n\treturn b.state\n}\n\n// string parses a string token from the buffer.\nfunc (b *buffer) string(search byte, token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(search)\n\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\tbreak\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) word(bs []byte) error {\n\tvar c byte\n\n\tmax := len(bs)\n\tindex := 0\n\n\tfor ; b.index \u003c b.length \u0026\u0026 index \u003c max; b.index++ {\n\t\tc = b.data[b.index]\n\n\t\tif c != bs[index] {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tindex++\n\t\tif index \u003e= max {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index != max {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc numberKind2f64(value interface{}) (result float64, err error) {\n\tswitch typed := value.(type) {\n\tcase float64:\n\t\tresult = typed\n\tcase float32:\n\t\tresult = float64(typed)\n\tcase int:\n\t\tresult = float64(typed)\n\tcase int8:\n\t\tresult = float64(typed)\n\tcase int16:\n\t\tresult = float64(typed)\n\tcase int32:\n\t\tresult = float64(typed)\n\tcase int64:\n\t\tresult = float64(typed)\n\tcase uint:\n\t\tresult = float64(typed)\n\tcase uint8:\n\t\tresult = float64(typed)\n\tcase uint16:\n\t\tresult = float64(typed)\n\tcase uint32:\n\t\tresult = float64(typed)\n\tcase uint64:\n\t\tresult = float64(typed)\n\tdefault:\n\t\terr = ufmt.Errorf(\"invalid number type: %T\", value)\n\t}\n\n\treturn\n}\n"},{"name":"buffer_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBufferCurrent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\texpected byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid current byte\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 1,\n\t\t\t},\n\t\t\texpected: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 4,\n\t\t\t},\n\t\t\texpected: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.current()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.current() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"buffer.current() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferStep(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid step\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.step()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.step() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferNext(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twant byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid next byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twant: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twant: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.next()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.next() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"buffer.next() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSlice(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twant []byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid slice -- 0 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 0,\n\t\t\twant: nil,\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 1 character\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 1,\n\t\t\twant: []byte(\"t\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 2 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twant: []byte(\"es\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 3 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 3,\n\t\t\twant: []byte(\"tes\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 4 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 4,\n\t\t\twant: []byte(\"test\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\tpos: 2,\n\t\t\twant: nil,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.slice(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.slice() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif string(got) != string(tt.want) {\n\t\t\t\tt.Errorf(\"buffer.slice() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferMove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twantErr bool\n\t\twantIdx int\n\t}{\n\t\t{\n\t\t\tname: \"Valid move\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twantErr: false,\n\t\t\twantIdx: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"Move beyond length\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 4,\n\t\t\twantErr: true,\n\t\t\twantIdx: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.move(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.move() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t\tif tt.buffer.index != tt.wantIdx {\n\t\t\t\tt.Errorf(\"buffer.move() index = %v, want %v\", tt.buffer.index, tt.wantIdx)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSkip(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tb byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Skip byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Skip to EOF\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'x',\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.skip(tt.b)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.skip() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipToNextSignificantToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected int\n\t}{\n\t\t{\"No significant chars\", []byte(\"abc\"), 3},\n\t\t{\"One significant char at start\", []byte(\".abc\"), 0},\n\t\t{\"Significant char in middle\", []byte(\"ab.c\"), 2},\n\t\t{\"Multiple significant chars\", []byte(\"a$.c\"), 1},\n\t\t{\"Significant char at end\", []byte(\"abc$\"), 3},\n\t\t{\"Only significant chars\", []byte(\"$.\"), 0},\n\t\t{\"Empty string\", []byte(\"\"), 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.input)\n\t\t\tb.skipToNextSignificantToken()\n\t\t\tif b.index != tt.expected {\n\t\t\t\tt.Errorf(\"after skipToNextSignificantToken(), got index = %v, want %v\", b.index, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mockBuffer(s string) *buffer {\n\treturn newBuffer([]byte(s))\n}\n\nfunc TestSkipAndReturnIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"StartOfString\", \"\", 0},\n\t\t{\"MiddleOfString\", \"abcdef\", 1},\n\t\t{\"EndOfString\", \"abc\", 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipAndReturnIndex()\n\t\t\tif err != nil \u0026\u0026 tt.input != \"\" { // Expect no error unless input is empty\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipUntil(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\ttokens map[byte]bool\n\t\texpected int\n\t}{\n\t\t{\"SkipToToken\", \"abcdefg\", map[byte]bool{'c': true}, 2},\n\t\t{\"SkipToEnd\", \"abcdefg\", map[byte]bool{'h': true}, 7},\n\t\t{\"SkipNone\", \"abcdefg\", map[byte]bool{'a': true}, 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipUntil(tt.tokens)\n\t\t\tif err != nil \u0026\u0026 got != len(tt.input) { // Expect error only if reached end without finding token\n\t\t\t\tt.Errorf(\"skipUntil() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipUntil() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSliceFromIndices(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\tstart int\n\t\tend int\n\t\texpected string\n\t}{\n\t\t{\"FullString\", \"abcdefg\", 0, 7, \"abcdefg\"},\n\t\t{\"Substring\", \"abcdefg\", 2, 5, \"cde\"},\n\t\t{\"OutOfBounds\", \"abcdefg\", 5, 10, \"fg\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot := buf.sliceFromIndices(tt.start, tt.end)\n\t\t\tif string(got) != tt.expected {\n\t\t\t\tt.Errorf(\"sliceFromIndices() = %v, want %v\", string(got), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\tindex int\n\t\tisErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Simple valid path\",\n\t\t\tpath: \"@.length\",\n\t\t\tindex: 8,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr\",\n\t\t\tpath: \"@['foo'].0.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr and simple fomula\",\n\t\t\tpath: \"@['foo'].[(@.length - 1)].*\",\n\t\t\tindex: 27,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with filter expr\",\n\t\t\tpath: \"@['foo'].[?(@.bar == 1 \u0026 @.baz \u003c @.length)].*\",\n\t\t\tindex: 45,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"addition of foo and bar\",\n\t\t\tpath: \"@.foo+@.bar\",\n\t\t\tindex: 11,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical AND of foo and bar\",\n\t\t\tpath: \"@.foo \u0026\u0026 @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical OR of foo and bar\",\n\t\t\tpath: \"@.foo || @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing third element of foo\",\n\t\t\tpath: \"@.foo,3\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing last element of array\",\n\t\t\tpath: \"@.length-1\",\n\t\t\tindex: 10,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"number 1\",\n\t\t\tpath: \"1\",\n\t\t\tindex: 1,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float\",\n\t\t\tpath: \"3.1e4\",\n\t\t\tindex: 5,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with minus\",\n\t\t\tpath: \"3.1e-4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with plus\",\n\t\t\tpath: \"3.1e+4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative number\",\n\t\t\tpath: \"-12345\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float\",\n\t\t\tpath: \"-3.1e4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with minus\",\n\t\t\tpath: \"-3.1e-4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with plus\",\n\t\t\tpath: \"-3.1e+4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string number\",\n\t\t\tpath: \"'12345'\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with backslash\",\n\t\t\tpath: \"'foo \\\\'bar '\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with inner double quotes\",\n\t\t\tpath: \"'foo \\\"bar \\\"'\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 1\",\n\t\t\tpath: \"(@abc)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 2\",\n\t\t\tpath: \"[()]\",\n\t\t\tindex: 4,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch\",\n\t\t\tpath: \"[(])\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 2\",\n\t\t\tpath: \"(\",\n\t\t\tindex: 1,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 3\",\n\t\t\tpath: \"())]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch\",\n\t\t\tpath: \"[()\",\n\t\t\tindex: 3,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch 2\",\n\t\t\tpath: \"()]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"path does not close bracket\",\n\t\t\tpath: \"@.foo[)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := newBuffer([]byte(tt.path))\n\n\t\t\terr := buf.pathToken()\n\t\t\tif tt.isErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err == nil \u0026\u0026 tt.isErr {\n\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t}\n\n\t\t\tif buf.index != tt.index {\n\t\t\t\tt.Errorf(\"Expected final index %d, got %d (token: `%s`) for path `%s`\", tt.index, buf.index, string(buf.data[buf.index]), tt.path)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferFirst(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\texpected byte\n\t}{\n\t\t{\n\t\t\tname: \"Valid first byte\",\n\t\t\tdata: []byte(\"test\"),\n\t\t\texpected: 't',\n\t\t},\n\t\t{\n\t\t\tname: \"Empty buffer\",\n\t\t\tdata: []byte(\"\"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"Whitespace buffer\",\n\t\t\tdata: []byte(\" \"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"whitespace in middle\",\n\t\t\tdata: []byte(\"hello world\"),\n\t\t\texpected: 'h',\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.data)\n\n\t\t\tgot, err := b.first()\n\t\t\tif err != nil \u0026\u0026 tt.expected != 0 {\n\t\t\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"Expected first byte to be %q, got %q\", tt.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"builder.gno","body":"package json\n\ntype NodeBuilder struct {\n\tnode *Node\n}\n\nfunc Builder() *NodeBuilder {\n\treturn \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n}\n\nfunc (b *NodeBuilder) WriteString(key, value string) *NodeBuilder {\n\tb.node.AppendObject(key, StringNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNumber(key string, value float64) *NodeBuilder {\n\tb.node.AppendObject(key, NumberNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteBool(key string, value bool) *NodeBuilder {\n\tb.node.AppendObject(key, BoolNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNull(key string) *NodeBuilder {\n\tb.node.AppendObject(key, NullNode(\"\"))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteObject(key string, fn func(*NodeBuilder)) *NodeBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tb.node.AppendObject(key, nestedBuilder.node)\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteArray(key string, fn func(*ArrayBuilder)) *NodeBuilder {\n\tarrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(arrayBuilder)\n\tb.node.AppendObject(key, ArrayNode(\"\", arrayBuilder.nodes))\n\treturn b\n}\n\nfunc (b *NodeBuilder) Node() *Node {\n\treturn b.node\n}\n\ntype ArrayBuilder struct {\n\tnodes []*Node\n}\n\nfunc (ab *ArrayBuilder) WriteString(value string) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, StringNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNumber(value float64) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NumberNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteInt(value int) *ArrayBuilder {\n\treturn ab.WriteNumber(float64(value))\n}\n\nfunc (ab *ArrayBuilder) WriteBool(value bool) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, BoolNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNull() *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NullNode(\"\"))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteObject(fn func(*NodeBuilder)) *ArrayBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tab.nodes = append(ab.nodes, nestedBuilder.node)\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteArray(fn func(*ArrayBuilder)) *ArrayBuilder {\n\tnestedArrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(nestedArrayBuilder)\n\tab.nodes = append(ab.nodes, ArrayNode(\"\", nestedArrayBuilder.nodes))\n\treturn ab\n}\n"},{"name":"builder_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestNodeBuilder(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuild func() *Node\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"plain object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteNumber(\"age\", 30).\n\t\t\t\t\tWriteBool(\"is_student\", false).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"age\":30,\"is_student\":false}`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteObject(\"address\", func(b *NodeBuilder) {\n\t\t\t\t\t\tb.WriteString(\"city\", \"New York\").\n\t\t\t\t\t\t\tWriteNumber(\"zipcode\", 10001)\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"address\":{\"city\":\"New York\",\"zipcode\":10001}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"null node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().WriteNull(\"foo\").Node()\n\t\t\t},\n\t\t\texpected: `{\"foo\":null}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"items\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteString(\"item2\").\n\t\t\t\t\t\t\tWriteString(\"item3\")\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"items\":[\"item1\",\"item2\",\"item3\"]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with objects\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"users\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\tb.WriteString(\"name\", \"Bob\").\n\t\t\t\t\t\t\t\tWriteNumber(\"age\", 25)\n\t\t\t\t\t\t}).\n\t\t\t\t\t\t\tWriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\t\tb.WriteString(\"name\", \"Carol\").\n\t\t\t\t\t\t\t\t\tWriteNumber(\"age\", 27)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"users\":[{\"name\":\"Bob\",\"age\":25},{\"name\":\"Carol\",\"age\":27}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with various types\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"values\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteNumber(123).\n\t\t\t\t\t\t\tWriteBool(true).\n\t\t\t\t\t\t\tWriteNull()\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"values\":[\"item1\",123,true,null]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tnode := tt.build()\n\t\t\tvalue, err := Marshal(node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t}\n\t\t\tif string(value) != tt.expected {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", tt.expected, string(value))\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"decode.gno","body":"// ref: https://github.com/spyzhov/ajson/blob/master/decode.go\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// This limits the max nesting depth to prevent stack overflow.\n// This is permitted by https://tools.ietf.org/html/rfc7159#section-9\nconst maxNestingDepth = 10000\n\n// Unmarshal parses the JSON-encoded data and returns a Node.\n// The data must be a valid JSON-encoded value.\n//\n// Usage:\n//\n//\tnode, err := json.Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err != nil {\n//\t\tufmt.Println(err)\n//\t}\n//\tprintln(node) // {\"key\": \"value\"}\nfunc Unmarshal(data []byte) (*Node, error) {\n\tbuf := newBuffer(data)\n\n\tvar (\n\t\tstate States\n\t\tkey *string\n\t\tcurrent *Node\n\t\tnesting int\n\t\tuseKey = func() **string {\n\t\t\ttmp := cptrs(key)\n\t\t\tkey = nil\n\t\t\treturn \u0026tmp\n\t\t}\n\t\terr error\n\t)\n\n\tif _, err = buf.first(); err != nil {\n\t\treturn nil, io.EOF\n\t}\n\n\tfor {\n\t\tstate = buf.getState()\n\t\tif state == __ {\n\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t}\n\n\t\t// region state machine\n\t\tif state \u003e= GO {\n\t\t\tswitch buf.state {\n\t\t\tcase ST: // string\n\t\t\t\tif current != nil \u0026\u0026 current.IsObject() \u0026\u0026 key == nil {\n\t\t\t\t\t// key detected\n\t\t\t\t\tif key, err = getString(buf); err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tbuf.state = CO\n\t\t\t\t} else {\n\t\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, String, nesting, useKey())\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\terr = buf.string(doubleQuote, false)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\t\t\t\t\tbuf.state = OK\n\t\t\t\t}\n\n\t\t\tcase MI, ZE, IN: // number\n\t\t\t\tcurrent, err = processNumericNode(current, buf, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase T1, F1: // boolean\n\t\t\t\tliteral := falseLiteral\n\t\t\t\tif buf.state == T1 {\n\t\t\t\t\tliteral = trueLiteral\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Boolean, literal, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase N1: // null\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Null, nullLiteral, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// region action\n\t\t\tswitch state {\n\t\t\tcase ec, cc: // \u003cempty\u003e }\n\t\t\t\tif key != nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase bc: // ]\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Array)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase co, bo: // { [\n\t\t\t\tvalTyp, bState := Object, OB\n\t\t\t\tif state == bo {\n\t\t\t\t\tvalTyp, bState = Array, AR\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, valTyp, nesting, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.state = bState\n\n\t\t\tcase cm: // ,\n\t\t\t\tif current == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif !current.isContainer() {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif current.IsObject() {\n\t\t\t\t\tbuf.state = KE // key expected\n\t\t\t\t} else {\n\t\t\t\t\tbuf.state = VA // value expected\n\t\t\t\t}\n\n\t\t\tcase cl: // :\n\t\t\t\tif current == nil || !current.IsObject() || key == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tbuf.state = VA\n\n\t\t\tdefault:\n\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t}\n\t\t}\n\n\t\tif buf.step() != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif _, err = buf.first(); err != nil {\n\t\t\terr = nil\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif current == nil || buf.state != OK {\n\t\treturn nil, io.EOF\n\t}\n\n\troot := current.root()\n\tif !root.ready() {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn root, err\n}\n\n// UnmarshalSafe parses the JSON-encoded data and returns a Node.\nfunc UnmarshalSafe(data []byte) (*Node, error) {\n\tvar safe []byte\n\tsafe = append(safe, data...)\n\treturn Unmarshal(safe)\n}\n\n// processNumericNode creates a new node, processes a numeric value,\n// sets the node's borders, and moves to the previous node.\nfunc processNumericNode(current *Node, buf *buffer, key **string) (*Node, error) {\n\tvar err error\n\tcurrent, err = createNode(current, buf, Number, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = buf.numeric(false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcurrent.borders[1] = buf.index\n\tif current.prev != nil {\n\t\tcurrent = current.prev\n\t}\n\n\tbuf.index -= 1\n\tbuf.state = OK\n\n\treturn current, nil\n}\n\n// processLiteralNode creates a new node, processes a literal value,\n// sets the node's borders, and moves to the previous node.\nfunc processLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteralValue []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tcurrent, nesting, err = createLiteralNode(current, buf, literalType, literalValue, useKey, nesting)\n\tif err != nil {\n\t\treturn nil, nesting, err\n\t}\n\treturn current, nesting, nil\n}\n\n// isValidContainerType checks if the current node is a valid container (object or array).\n// The container must satisfy the following conditions:\n// 1. The current node must not be nil.\n// 2. The current node must be an object or array.\n// 3. The current node must not be ready.\nfunc isValidContainerType(current *Node, nodeType ValueType) bool {\n\tswitch nodeType {\n\tcase Object:\n\t\treturn current != nil \u0026\u0026 current.IsObject() \u0026\u0026 !current.ready()\n\tcase Array:\n\t\treturn current != nil \u0026\u0026 current.IsArray() \u0026\u0026 !current.ready()\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// getString extracts a string from the buffer and advances the buffer index past the string.\nfunc getString(b *buffer) (*string, error) {\n\tstart := b.index\n\tif err := b.string(doubleQuote, false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue, ok := Unquote(b.data[start:b.index+1], doubleQuote)\n\tif !ok {\n\t\treturn nil, unexpectedTokenError(b.data, start)\n\t}\n\n\treturn \u0026value, nil\n}\n\n// createNode creates a new node and sets the key if it is not nil.\nfunc createNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tkey **string,\n) (*Node, error) {\n\tvar err error\n\tcurrent, err = NewNode(current, buf, nodeType, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn current, nil\n}\n\n// createNestedNode creates a new nested node (array or object) and sets the key if it is not nil.\nfunc createNestedNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tnesting int,\n\tkey **string,\n) (*Node, int, error) {\n\tvar err error\n\tif nesting, err = checkNestingDepth(nesting); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\tif current, err = createNode(current, buf, nodeType, key); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\treturn current, nesting, nil\n}\n\n// createLiteralNode creates a new literal node and sets the key if it is not nil.\n// The literal is a byte slice that represents a boolean or null value.\nfunc createLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteral []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tif current, err = createNode(current, buf, literalType, useKey); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tif err = buf.word(literal); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, false)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// updateNode updates the current node and returns the previous node.\nfunc updateNode(\n\tcurrent *Node, buf *buffer, nesting int, decreaseLevel bool,\n) (*Node, int) {\n\tcurrent.borders[1] = buf.index + 1\n\n\tprev := current.prev\n\tif prev == nil {\n\t\treturn current, nesting\n\t}\n\n\tcurrent = prev\n\tif decreaseLevel {\n\t\tnesting--\n\t}\n\n\treturn current, nesting\n}\n\n// updateNodeAndSetBufferState updates the current node and sets the buffer state to OK.\nfunc updateNodeAndSetBufferState(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnesting int,\n\ttyp ValueType,\n) (*Node, int, error) {\n\tif !isValidContainerType(current, typ) {\n\t\treturn nil, nesting, unexpectedTokenError(buf.data, buf.index)\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// checkNestingDepth checks if the nesting depth is within the maximum allowed depth.\nfunc checkNestingDepth(nesting int) (int, error) {\n\tif nesting \u003e= maxNestingDepth {\n\t\treturn nesting, errors.New(\"maximum nesting depth exceeded\")\n\t}\n\n\treturn nesting + 1, nil\n}\n\nfunc unexpectedTokenError(data []byte, index int) error {\n\treturn ufmt.Errorf(\"unexpected token at index %d. data %b\", index, data)\n}\n"},{"name":"decode_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\ntype testNode struct {\n\tname string\n\tinput []byte\n\tvalue []byte\n\t_type ValueType\n}\n\nfunc simpleValid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.input, err.Error())\n\t} else if root == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t} else if root.nodeType != test._type {\n\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t} else if !bytes.Equal(root.source(), test.value) {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t}\n}\n\nfunc simpleInvalid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): error expected, got '%s'\", test.name, root.source())\n\t} else if root != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is not nil\", test.name)\n\t}\n}\n\nfunc simpleCorrupted(name string) *testNode {\n\treturn \u0026testNode{name: name, input: []byte(name)}\n}\n\nfunc TestUnmarshal_StringSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"blank\", input: []byte(\"\\\"\\\"\"), _type: String, value: []byte(\"\\\"\\\"\")},\n\t\t{name: \"char\", input: []byte(\"\\\"c\\\"\"), _type: String, value: []byte(\"\\\"c\\\"\")},\n\t\t{name: \"word\", input: []byte(\"\\\"cat\\\"\"), _type: String, value: []byte(\"\\\"cat\\\"\")},\n\t\t{name: \"spaces\", input: []byte(\" \\\"good cat or dog\\\"\\r\\n \"), _type: String, value: []byte(\"\\\"good cat or dog\\\"\")},\n\t\t{name: \"backslash\", input: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\")},\n\t\t{name: \"backslash 2\", input: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NumericSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"1\", input: []byte(\"1\"), _type: Number, value: []byte(\"1\")},\n\t\t{name: \"-1\", input: []byte(\"-1\"), _type: Number, value: []byte(\"-1\")},\n\n\t\t{name: \"1234567890\", input: []byte(\"1234567890\"), _type: Number, value: []byte(\"1234567890\")},\n\t\t{name: \"-123\", input: []byte(\"-123\"), _type: Number, value: []byte(\"-123\")},\n\n\t\t{name: \"123.456\", input: []byte(\"123.456\"), _type: Number, value: []byte(\"123.456\")},\n\t\t{name: \"-123.456\", input: []byte(\"-123.456\"), _type: Number, value: []byte(\"-123.456\")},\n\n\t\t{name: \"1e3\", input: []byte(\"1e3\"), _type: Number, value: []byte(\"1e3\")},\n\t\t{name: \"1e+3\", input: []byte(\"1e+3\"), _type: Number, value: []byte(\"1e+3\")},\n\t\t{name: \"1e-3\", input: []byte(\"1e-3\"), _type: Number, value: []byte(\"1e-3\")},\n\t\t{name: \"-1e3\", input: []byte(\"-1e3\"), _type: Number, value: []byte(\"-1e3\")},\n\t\t{name: \"-1e-3\", input: []byte(\"-1e-3\"), _type: Number, value: []byte(\"-1e-3\")},\n\n\t\t{name: \"1.123e3456\", input: []byte(\"1.123e3456\"), _type: Number, value: []byte(\"1.123e3456\")},\n\t\t{name: \"1.123e-3456\", input: []byte(\"1.123e-3456\"), _type: Number, value: []byte(\"1.123e-3456\")},\n\t\t{name: \"-1.123e3456\", input: []byte(\"-1.123e3456\"), _type: Number, value: []byte(\"-1.123e3456\")},\n\t\t{name: \"-1.123e-3456\", input: []byte(\"-1.123e-3456\"), _type: Number, value: []byte(\"-1.123e-3456\")},\n\n\t\t{name: \"1E3\", input: []byte(\"1E3\"), _type: Number, value: []byte(\"1E3\")},\n\t\t{name: \"1E-3\", input: []byte(\"1E-3\"), _type: Number, value: []byte(\"1E-3\")},\n\t\t{name: \"-1E3\", input: []byte(\"-1E3\"), _type: Number, value: []byte(\"-1E3\")},\n\t\t{name: \"-1E-3\", input: []byte(\"-1E-3\"), _type: Number, value: []byte(\"-1E-3\")},\n\n\t\t{name: \"1.123E3456\", input: []byte(\"1.123E3456\"), _type: Number, value: []byte(\"1.123E3456\")},\n\t\t{name: \"1.123E-3456\", input: []byte(\"1.123E-3456\"), _type: Number, value: []byte(\"1.123E-3456\")},\n\t\t{name: \"-1.123E3456\", input: []byte(\"-1.123E3456\"), _type: Number, value: []byte(\"-1.123E3456\")},\n\t\t{name: \"-1.123E-3456\", input: []byte(\"-1.123E-3456\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\n\t\t{name: \"-1.123E-3456 with spaces\", input: []byte(\" \\r -1.123E-3456 \\t\\n\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(test.input)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.name, err.Error())\n\t\t\t} else if root == nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t\t\t} else if root.nodeType != test._type {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t\t\t} else if !bytes.Equal(root.source(), test.value) {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_StringSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"white NL\", input: []byte(\"\\\"foo\\nbar\\\"\")},\n\t\t{name: \"white R\", input: []byte(\"\\\"foo\\rbar\\\"\")},\n\t\t{name: \"white Tab\", input: []byte(\"\\\"foo\\tbar\\\"\")},\n\t\t{name: \"wrong quotes\", input: []byte(\"'cat'\")},\n\t\t{name: \"double string\", input: []byte(\"\\\"Hello\\\" \\\"World\\\"\")},\n\t\t{name: \"quotes in quotes\", input: []byte(\"\\\"good \\\"cat\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"{}\", input: []byte(\"{}\"), _type: Object, value: []byte(\"{}\")},\n\t\t{name: `{ \\r\\n }`, input: []byte(\"{ \\r\\n }\"), _type: Object, value: []byte(\"{ \\r\\n }\")},\n\t\t{name: `{\"key\":1}`, input: []byte(`{\"key\":1}`), _type: Object, value: []byte(`{\"key\":1}`)},\n\t\t{name: `{\"key\":true}`, input: []byte(`{\"key\":true}`), _type: Object, value: []byte(`{\"key\":true}`)},\n\t\t{name: `{\"key\":\"value\"}`, input: []byte(`{\"key\":\"value\"}`), _type: Object, value: []byte(`{\"key\":\"value\"}`)},\n\t\t{name: `{\"foo\":\"bar\",\"baz\":\"foo\"}`, input: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`), _type: Object, value: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`)},\n\t\t{name: \"spaces\", input: []byte(` { \"foo\" : \"bar\" , \"baz\" : \"foo\" } `), _type: Object, value: []byte(`{ \"foo\" : \"bar\" , \"baz\" : \"foo\" }`)},\n\t\t{name: \"nested\", input: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`), _type: Object, value: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`)},\n\t\t{name: \"array\", input: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`), _type: Object, value: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`)},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"{{{\\\"key\\\": \\\"foo\\\"{{{{\"),\n\t\tsimpleCorrupted(\"}\"),\n\t\tsimpleCorrupted(\"{ }}}}}}}\"),\n\t\tsimpleCorrupted(\" }\"),\n\t\tsimpleCorrupted(\"{,}\"),\n\t\tsimpleCorrupted(\"{:}\"),\n\t\tsimpleCorrupted(\"{100000}\"),\n\t\tsimpleCorrupted(\"{1:1}\"),\n\t\tsimpleCorrupted(\"{'1:2,3:4'}\"),\n\t\tsimpleCorrupted(`{\"d\"}`),\n\t\tsimpleCorrupted(`{\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":}`),\n\t\tsimpleCorrupted(`{:\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":bar}`),\n\t\tsimpleCorrupted(`{\"foo\":\"bar\",}`),\n\t\tsimpleCorrupted(`{}{}`),\n\t\tsimpleCorrupted(`{},{}`),\n\t\tsimpleCorrupted(`{[},{]}`),\n\t\tsimpleCorrupted(`{[,]}`),\n\t\tsimpleCorrupted(`{[]}`),\n\t\tsimpleCorrupted(`{}1`),\n\t\tsimpleCorrupted(`1{}`),\n\t\tsimpleCorrupted(`{\"x\"::1}`),\n\t\tsimpleCorrupted(`{null:null}`),\n\t\tsimpleCorrupted(`{\"foo:\"bar\"}`),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NullSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"nul\", input: []byte(\"nul\")},\n\t\t{name: \"nil\", input: []byte(\"nil\")},\n\t\t{name: \"nill\", input: []byte(\"nill\")},\n\t\t{name: \"NILL\", input: []byte(\"NILL\")},\n\t\t{name: \"Null\", input: []byte(\"Null\")},\n\t\t{name: \"NULL\", input: []byte(\"NULL\")},\n\t\t{name: \"spaces\", input: []byte(\"Nu ll\")},\n\t\t{name: \"null1\", input: []byte(\"null1\")},\n\t\t{name: \"double\", input: []byte(\"null null\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"lower true\", input: []byte(\"true\"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"lower false\", input: []byte(\"false\"), _type: Boolean, value: []byte(\"false\")},\n\t\t{name: \"spaces true\", input: []byte(\" true\\r\\n \"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"spaces false\", input: []byte(\" false\\r\\n \"), _type: Boolean, value: []byte(\"false\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"tru\"),\n\t\tsimpleCorrupted(\"fals\"),\n\t\tsimpleCorrupted(\"tre\"),\n\t\tsimpleCorrupted(\"fal se\"),\n\t\tsimpleCorrupted(\"true false\"),\n\t\tsimpleCorrupted(\"True\"),\n\t\tsimpleCorrupted(\"TRUE\"),\n\t\tsimpleCorrupted(\"False\"),\n\t\tsimpleCorrupted(\"FALSE\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"[]\", input: []byte(\"[]\"), _type: Array, value: []byte(\"[]\")},\n\t\t{name: \"[1]\", input: []byte(\"[1]\"), _type: Array, value: []byte(\"[1]\")},\n\t\t{name: \"[1,2,3]\", input: []byte(\"[1,2,3]\"), _type: Array, value: []byte(\"[1,2,3]\")},\n\t\t{name: \"[1, 2, 3]\", input: []byte(\"[1, 2, 3]\"), _type: Array, value: []byte(\"[1, 2, 3]\")},\n\t\t{name: \"[1,[2],3]\", input: []byte(\"[1,[2],3]\"), _type: Array, value: []byte(\"[1,[2],3]\")},\n\t\t{name: \"[[],[],[]]\", input: []byte(\"[[],[],[]]\"), _type: Array, value: []byte(\"[[],[],[]]\")},\n\t\t{name: \"[[[[[]]]]]\", input: []byte(\"[[[[[]]]]]\"), _type: Array, value: []byte(\"[[[[[]]]]]\")},\n\t\t{name: \"[true,null,1,\\\"foo\\\",[]]\", input: []byte(\"[true,null,1,\\\"foo\\\",[]]\"), _type: Array, value: []byte(\"[true,null,1,\\\"foo\\\",[]]\")},\n\t\t{name: \"spaces\", input: []byte(\"\\n\\r [\\n1\\n ]\\r\\n\"), _type: Array, value: []byte(\"[\\n1\\n ]\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"[,]\"),\n\t\tsimpleCorrupted(\"[]\\\\\"),\n\t\tsimpleCorrupted(\"[1,]\"),\n\t\tsimpleCorrupted(\"[[]\"),\n\t\tsimpleCorrupted(\"[]]\"),\n\t\tsimpleCorrupted(\"1[]\"),\n\t\tsimpleCorrupted(\"[]1\"),\n\t\tsimpleCorrupted(\"[[]1]\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\n// Examples from https://json.org/example.html\nfunc TestUnmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalue string\n\t}{\n\t\t{\n\t\t\tname: \"glossary\",\n\t\t\tvalue: `{\n\t\t\t\t\"glossary\": {\n\t\t\t\t\t\"title\": \"example glossary\",\n\t\t\t\t\t\"GlossDiv\": {\n\t\t\t\t\t\t\"title\": \"S\",\n\t\t\t\t\t\t\"GlossList\": {\n\t\t\t\t\t\t\t\"GlossEntry\": {\n\t\t\t\t\t\t\t\t\"ID\": \"SGML\",\n\t\t\t\t\t\t\t\t\"SortAs\": \"SGML\",\n\t\t\t\t\t\t\t\t\"GlossTerm\": \"Standard Generalized Markup Language\",\n\t\t\t\t\t\t\t\t\"Acronym\": \"SGML\",\n\t\t\t\t\t\t\t\t\"Abbrev\": \"ISO 8879:1986\",\n\t\t\t\t\t\t\t\t\"GlossDef\": {\n\t\t\t\t\t\t\t\t\t\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\",\n\t\t\t\t\t\t\t\t\t\"GlossSeeAlso\": [\"GML\", \"XML\"]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"GlossSee\": \"markup\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`,\n\t\t},\n\t\t{\n\t\t\tname: \"menu\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"id\": \"file\",\n\t\t\t\t\"value\": \"File\",\n\t\t\t\t\"popup\": {\n\t\t\t\t \"menuitem\": [\n\t\t\t\t\t{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n\t\t\t\t\t{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n\t\t\t\t\t{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n\t\t\t\t ]\n\t\t\t\t}\n\t\t\t}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"widget\",\n\t\t\tvalue: `{\"widget\": {\n\t\t\t\t\"debug\": \"on\",\n\t\t\t\t\"window\": {\n\t\t\t\t\t\"title\": \"Sample Konfabulator Widget\",\n\t\t\t\t\t\"name\": \"main_window\",\n\t\t\t\t\t\"width\": 500,\n\t\t\t\t\t\"height\": 500\n\t\t\t\t},\n\t\t\t\t\"image\": { \n\t\t\t\t\t\"src\": \"Images/Sun.png\",\n\t\t\t\t\t\"name\": \"sun1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 250,\n\t\t\t\t\t\"alignment\": \"center\"\n\t\t\t\t},\n\t\t\t\t\"text\": {\n\t\t\t\t\t\"data\": \"Click Here\",\n\t\t\t\t\t\"size\": 36,\n\t\t\t\t\t\"style\": \"bold\",\n\t\t\t\t\t\"name\": \"text1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 100,\n\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\"onMouseUp\": \"sun1.opacity = (sun1.opacity / 100) * 90;\"\n\t\t\t\t}\n\t\t\t}} `,\n\t\t},\n\t\t{\n\t\t\tname: \"web-app\",\n\t\t\tvalue: `{\"web-app\": {\n\t\t\t\t\"servlet\": [ \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxCDS\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.CDSServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"configGlossary:installationAt\": \"Philadelphia, PA\",\n\t\t\t\t\t \"configGlossary:adminEmail\": \"ksm@pobox.com\",\n\t\t\t\t\t \"configGlossary:poweredBy\": \"Cofax\",\n\t\t\t\t\t \"configGlossary:poweredByIcon\": \"/images/cofax.gif\",\n\t\t\t\t\t \"configGlossary:staticPath\": \"/content/static\",\n\t\t\t\t\t \"templateProcessorClass\": \"org.cofax.WysiwygTemplate\",\n\t\t\t\t\t \"templateLoaderClass\": \"org.cofax.FilesTemplateLoader\",\n\t\t\t\t\t \"templatePath\": \"templates\",\n\t\t\t\t\t \"templateOverridePath\": \"\",\n\t\t\t\t\t \"defaultListTemplate\": \"listTemplate.htm\",\n\t\t\t\t\t \"defaultFileTemplate\": \"articleTemplate.htm\",\n\t\t\t\t\t \"useJSP\": false,\n\t\t\t\t\t \"jspListTemplate\": \"listTemplate.jsp\",\n\t\t\t\t\t \"jspFileTemplate\": \"articleTemplate.jsp\",\n\t\t\t\t\t \"cachePackageTagsTrack\": 200,\n\t\t\t\t\t \"cachePackageTagsStore\": 200,\n\t\t\t\t\t \"cachePackageTagsRefresh\": 60,\n\t\t\t\t\t \"cacheTemplatesTrack\": 100,\n\t\t\t\t\t \"cacheTemplatesStore\": 50,\n\t\t\t\t\t \"cacheTemplatesRefresh\": 15,\n\t\t\t\t\t \"cachePagesTrack\": 200,\n\t\t\t\t\t \"cachePagesStore\": 100,\n\t\t\t\t\t \"cachePagesRefresh\": 10,\n\t\t\t\t\t \"cachePagesDirtyRead\": 10,\n\t\t\t\t\t \"searchEngineListTemplate\": \"forSearchEnginesList.htm\",\n\t\t\t\t\t \"searchEngineFileTemplate\": \"forSearchEngines.htm\",\n\t\t\t\t\t \"searchEngineRobotsDb\": \"WEB-INF/robots.db\",\n\t\t\t\t\t \"useDataStore\": true,\n\t\t\t\t\t \"dataStoreClass\": \"org.cofax.SqlDataStore\",\n\t\t\t\t\t \"redirectionClass\": \"org.cofax.SqlRedirection\",\n\t\t\t\t\t \"dataStoreName\": \"cofax\",\n\t\t\t\t\t \"dataStoreDriver\": \"com.microsoft.jdbc.sqlserver.SQLServerDriver\",\n\t\t\t\t\t \"dataStoreUrl\": \"jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon\",\n\t\t\t\t\t \"dataStoreUser\": \"sa\",\n\t\t\t\t\t \"dataStorePassword\": \"dataStoreTestQuery\",\n\t\t\t\t\t \"dataStoreTestQuery\": \"SET NOCOUNT ON;select test='test';\",\n\t\t\t\t\t \"dataStoreLogFile\": \"/usr/local/tomcat/logs/datastore.log\",\n\t\t\t\t\t \"dataStoreInitConns\": 10,\n\t\t\t\t\t \"dataStoreMaxConns\": 100,\n\t\t\t\t\t \"dataStoreConnUsageLimit\": 100,\n\t\t\t\t\t \"dataStoreLogLevel\": \"debug\",\n\t\t\t\t\t \"maxUrlLength\": 500}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxEmail\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.EmailServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t\"mailHost\": \"mail1\",\n\t\t\t\t\t\"mailHostOverride\": \"mail2\"}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxAdmin\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.AdminServlet\"},\n\t\t\t \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"fileServlet\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.FileServlet\"},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxTools\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cms.CofaxToolsServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"templatePath\": \"toolstemplates/\",\n\t\t\t\t\t \"log\": 1,\n\t\t\t\t\t \"logLocation\": \"/usr/local/tomcat/logs/CofaxTools.log\",\n\t\t\t\t\t \"logMaxSize\": \"\",\n\t\t\t\t\t \"dataLog\": 1,\n\t\t\t\t\t \"dataLogLocation\": \"/usr/local/tomcat/logs/dataLog.log\",\n\t\t\t\t\t \"dataLogMaxSize\": \"\",\n\t\t\t\t\t \"removePageCache\": \"/content/admin/remove?cache=pages\u0026id=\",\n\t\t\t\t\t \"removeTemplateCache\": \"/content/admin/remove?cache=templates\u0026id=\",\n\t\t\t\t\t \"fileTransferFolder\": \"/usr/local/tomcat/webapps/content/fileTransferFolder\",\n\t\t\t\t\t \"lookInContext\": 1,\n\t\t\t\t\t \"adminGroupID\": 4,\n\t\t\t\t\t \"betaServer\": true}}],\n\t\t\t\t\"servlet-mapping\": {\n\t\t\t\t \"cofaxCDS\": \"/\",\n\t\t\t\t \"cofaxEmail\": \"/cofaxutil/aemail/*\",\n\t\t\t\t \"cofaxAdmin\": \"/admin/*\",\n\t\t\t\t \"fileServlet\": \"/static/*\",\n\t\t\t\t \"cofaxTools\": \"/tools/*\"},\n\t\t\t \n\t\t\t\t\"taglib\": {\n\t\t\t\t \"taglib-uri\": \"cofax.tld\",\n\t\t\t\t \"taglib-location\": \"/WEB-INF/tlds/cofax.tld\"}}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"SVG Viewer\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"header\": \"SVG Viewer\",\n\t\t\t\t\"items\": [\n\t\t\t\t\t{\"id\": \"Open\"},\n\t\t\t\t\t{\"id\": \"OpenNew\", \"label\": \"Open New\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"ZoomIn\", \"label\": \"Zoom In\"},\n\t\t\t\t\t{\"id\": \"ZoomOut\", \"label\": \"Zoom Out\"},\n\t\t\t\t\t{\"id\": \"OriginalView\", \"label\": \"Original View\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Quality\"},\n\t\t\t\t\t{\"id\": \"Pause\"},\n\t\t\t\t\t{\"id\": \"Mute\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Find\", \"label\": \"Find...\"},\n\t\t\t\t\t{\"id\": \"FindAgain\", \"label\": \"Find Again\"},\n\t\t\t\t\t{\"id\": \"Copy\"},\n\t\t\t\t\t{\"id\": \"CopyAgain\", \"label\": \"Copy Again\"},\n\t\t\t\t\t{\"id\": \"CopySVG\", \"label\": \"Copy SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSVG\", \"label\": \"View SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSource\", \"label\": \"View Source\"},\n\t\t\t\t\t{\"id\": \"SaveAs\", \"label\": \"Save As\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Help\"},\n\t\t\t\t\t{\"id\": \"About\", \"label\": \"About Adobe CVG Viewer...\"}\n\t\t\t\t]\n\t\t\t}}`,\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\t_, err := Unmarshal([]byte(test.value))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalSafe(t *testing.T) {\n\tjson := []byte(`{ \"store\": {\n\t\t\"book\": [ \n\t\t { \"category\": \"reference\",\n\t\t\t\"author\": \"Nigel Rees\",\n\t\t\t\"title\": \"Sayings of the Century\",\n\t\t\t\"price\": 8.95\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Evelyn Waugh\",\n\t\t\t\"title\": \"Sword of Honour\",\n\t\t\t\"price\": 12.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Herman Melville\",\n\t\t\t\"title\": \"Moby Dick\",\n\t\t\t\"isbn\": \"0-553-21311-3\",\n\t\t\t\"price\": 8.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"J. R. R. Tolkien\",\n\t\t\t\"title\": \"The Lord of the Rings\",\n\t\t\t\"isbn\": \"0-395-19395-8\",\n\t\t\t\"price\": 22.99\n\t\t }\n\t\t],\n\t\t\"bicycle\": {\n\t\t \"color\": \"red\",\n\t\t \"price\": 19.95\n\t\t}\n\t }\n\t}`)\n\tsafe, err := UnmarshalSafe(json)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t} else if safe == nil {\n\t\tt.Errorf(\"Error on Unmarshal: safe is nil\")\n\t} else {\n\t\troot, err := Unmarshal(json)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t} else if root == nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t\t} else if !bytes.Equal(root.source(), safe.source()) {\n\t\t\tt.Errorf(\"Error on UnmarshalSafe: values not same\")\n\t\t}\n\t}\n}\n\n// BenchmarkGoStdUnmarshal-8 \t 61698\t 19350 ns/op\t 288 B/op\t 6 allocs/op\n// BenchmarkUnmarshal-8 \t 45620\t 26165 ns/op\t 21889 B/op\t 367 allocs/op\n//\n// type bench struct {\n// \tName string `json:\"name\"`\n// \tValue int `json:\"value\"`\n// }\n\n// func BenchmarkGoStdUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\terr := json.Unmarshal(data, \u0026bench{})\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n\n// func BenchmarkUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\t_, err := Unmarshal(data)\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n"},{"name":"encode.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Marshal returns the JSON encoding of a Node.\nfunc Marshal(node *Node) ([]byte, error) {\n\tvar (\n\t\tbuf bytes.Buffer\n\t\tsVal string\n\t\tbVal bool\n\t\tnVal float64\n\t\toVal []byte\n\t\terr error\n\t)\n\n\tif node == nil {\n\t\treturn nil, errors.New(\"node is nil\")\n\t}\n\n\tif !node.modified \u0026\u0026 !node.ready() {\n\t\treturn nil, errors.New(\"node is not ready\")\n\t}\n\n\tif !node.modified \u0026\u0026 node.ready() {\n\t\tbuf.Write(node.source())\n\t}\n\n\tif node.modified {\n\t\tswitch node.nodeType {\n\t\tcase Null:\n\t\t\tbuf.Write(nullLiteral)\n\n\t\tcase Number:\n\t\t\tnVal, err = node.GetNumeric()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnum := strconv.FormatFloat(nVal, 'f', -1, 64)\n\t\t\tbuf.WriteString(num)\n\n\t\tcase String:\n\t\t\tsVal, err = node.GetString()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tquoted := ufmt.Sprintf(\"%s\", strconv.Quote(sVal))\n\t\t\tbuf.WriteString(quoted)\n\n\t\tcase Boolean:\n\t\t\tbVal, err = node.GetBool()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tbStr := ufmt.Sprintf(\"%t\", bVal)\n\t\t\tbuf.WriteString(bStr)\n\n\t\tcase Array:\n\t\t\tbuf.WriteByte(bracketOpen)\n\n\t\t\tfor i := 0; i \u003c len(node.next); i++ {\n\t\t\t\tif i != 0 {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t}\n\n\t\t\t\telem, ok := node.next[strconv.Itoa(i)]\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, ufmt.Errorf(\"array element %d is not found\", i)\n\t\t\t\t}\n\n\t\t\t\toVal, err = Marshal(elem)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(bracketClose)\n\n\t\tcase Object:\n\t\t\tbuf.WriteByte(curlyOpen)\n\n\t\t\tbVal = false\n\t\t\tfor k, v := range node.next {\n\t\t\t\tif bVal {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t} else {\n\t\t\t\t\tbVal = true\n\t\t\t\t}\n\n\t\t\t\tkey := ufmt.Sprintf(\"%s\", strconv.Quote(k))\n\t\t\t\tbuf.WriteString(key)\n\t\t\t\tbuf.WriteByte(colon)\n\n\t\t\t\toVal, err = Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(curlyClose)\n\t\t}\n\t}\n\n\treturn buf.Bytes(), nil\n}\n"},{"name":"encode_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestMarshal_Primitive(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t}{\n\t\t{\n\t\t\tname: \"null\",\n\t\t\tnode: NullNode(\"\"),\n\t\t},\n\t\t{\n\t\t\tname: \"true\",\n\t\t\tnode: BoolNode(\"\", true),\n\t\t},\n\t\t{\n\t\t\tname: \"false\",\n\t\t\tnode: BoolNode(\"\", false),\n\t\t},\n\t\t{\n\t\t\tname: `\"string\"`,\n\t\t\tnode: StringNode(\"\", \"string\"),\n\t\t},\n\t\t{\n\t\t\tname: `\"one \\\"encoded\\\" string\"`,\n\t\t\tnode: StringNode(\"\", `one \"encoded\" string`),\n\t\t},\n\t\t{\n\t\t\tname: `{\"foo\":\"bar\"}`,\n\t\t\tnode: ObjectNode(\"\", map[string]*Node{\n\t\t\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tname: \"42\",\n\t\t\tnode: NumberNode(\"\", 42),\n\t\t},\n\t\t{\n\t\t\tname: \"3.14\",\n\t\t\tnode: NumberNode(\"\", 3.14),\n\t\t},\n\t\t{\n\t\t\tname: `[1,2,3]`,\n\t\t\tnode: ArrayNode(\"\", []*Node{\n\t\t\t\tNumberNode(\"0\", 1),\n\t\t\t\tNumberNode(\"2\", 2),\n\t\t\t\tNumberNode(\"3\", 3),\n\t\t\t}),\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t} else if string(value) != test.name {\n\t\t\t\tt.Errorf(\"wrong result: '%s', expected '%s'\", value, test.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Object(t *testing.T) {\n\tnode := ObjectNode(\"\", map[string]*Node{\n\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\"baz\": NumberNode(\"baz\", 100500),\n\t\t\"qux\": NullNode(\"qux\"),\n\t})\n\n\tmustKey := []string{\"foo\", \"baz\", \"qux\"}\n\n\tvalue, err := Marshal(node)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\t// the order of keys in the map is not guaranteed\n\t// so we need to unmarshal the result and check the keys\n\tdecoded, err := Unmarshal(value)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\tfor _, key := range mustKey {\n\t\tif node, err := decoded.GetKey(key); err != nil {\n\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t} else {\n\t\t\tif node == nil {\n\t\t\t\tt.Errorf(\"node is nil\")\n\t\t\t} else if node.key == nil {\n\t\t\t\tt.Errorf(\"key is nil\")\n\t\t\t} else if *node.key != key {\n\t\t\t\tt.Errorf(\"wrong key: '%s', expected '%s'\", *node.key, key)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc valueNode(prev *Node, key string, typ ValueType, val interface{}) *Node {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: nil,\n\t\tkey: \u0026key,\n\t\tborders: [2]int{0, 0},\n\t\tvalue: val,\n\t\tmodified: true,\n\t}\n\n\tif val != nil {\n\t\tcurr.nodeType = typ\n\t}\n\n\treturn curr\n}\n\nfunc TestMarshal_Errors(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode func() (node *Node)\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"broken\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = Must(Unmarshal([]byte(`{}`)))\n\t\t\t\tnode.borders[1] = 0\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Numeric\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Number, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"String\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", String, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Bool\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Boolean, 1)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_1\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = ArrayNode(\"\", nil)\n\t\t\t\tnode.next[\"1\"] = NullNode(\"1\")\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_2\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ArrayNode(\"\", []*Node{valueNode(nil, \"\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Object\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ObjectNode(\"\", map[string]*Node{\"key\": valueNode(nil, \"key\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node())\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"expected error\")\n\t\t\t} else if len(value) != 0 {\n\t\t\t\tt.Errorf(\"wrong result\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Nil(t *testing.T) {\n\t_, err := Marshal(nil)\n\tif err == nil {\n\t\tt.Error(\"Expected error for nil node, but got nil\")\n\t}\n}\n\nfunc TestMarshal_NotModified(t *testing.T) {\n\tnode := \u0026Node{}\n\t_, err := Marshal(node)\n\tif err == nil {\n\t\tt.Error(\"Expected error for not modified node, but got nil\")\n\t}\n}\n\nfunc TestMarshalCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tnext: map[string]*Node{\n\t\t\t\"next\": nil,\n\t\t},\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tprev: node1,\n\t}\n\n\tnode1.next[\"next\"] = node2\n\n\t_, err := Marshal(node1)\n\tif err == nil {\n\t\tt.Error(\"Expected error for cycle reference, but got nil\")\n\t}\n}\n\nfunc TestMarshalNoCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tvalue: \"value1\",\n\t\tmodified: true,\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tvalue: \"value2\",\n\t\tmodified: true,\n\t}\n\n\t_, err := Marshal(node1)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n\n\t_, err = Marshal(node2)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n}\n\nfunc stringPtr(s string) *string {\n\treturn \u0026s\n}\n"},{"name":"errors.gno","body":"package json\n\nimport \"errors\"\n\nvar (\n\terrNilNode = errors.New(\"node is nil\")\n\terrNotArrayNode = errors.New(\"node is not array\")\n\terrNotBoolNode = errors.New(\"node is not boolean\")\n\terrNotNullNode = errors.New(\"node is not null\")\n\terrNotNumberNode = errors.New(\"node is not number\")\n\terrNotObjectNode = errors.New(\"node is not object\")\n\terrNotStringNode = errors.New(\"node is not string\")\n\terrInvalidToken = errors.New(\"invalid token\")\n\terrIndexNotFound = errors.New(\"index not found\")\n\terrInvalidAppend = errors.New(\"can't append value to non-appendable node\")\n\terrInvalidAppendCycle = errors.New(\"appending value to itself or its children or parents will cause a cycle\")\n\terrInvalidEscapeSequence = errors.New(\"invalid escape sequence\")\n\terrInvalidStringValue = errors.New(\"invalid string value\")\n\terrEmptyBooleanNode = errors.New(\"boolean node is empty\")\n\terrEmptyStringNode = errors.New(\"string node is empty\")\n\terrKeyRequired = errors.New(\"key is required for object\")\n\terrUnmatchedParenthesis = errors.New(\"mismatched bracket or parenthesis\")\n\terrUnmatchedQuotePath = errors.New(\"unmatched quote in path\")\n)\n\nvar (\n\terrInvalidStringInput = errors.New(\"invalid string input\")\n\terrMalformedBooleanValue = errors.New(\"malformed boolean value\")\n\terrEmptyByteSlice = errors.New(\"empty byte slice\")\n\terrInvalidExponentValue = errors.New(\"invalid exponent value\")\n\terrNonDigitCharacters = errors.New(\"non-digit characters found\")\n\terrNumericRangeExceeded = errors.New(\"numeric value exceeds the range limit\")\n\terrMultipleDecimalPoints = errors.New(\"multiple decimal points found\")\n)\n"},{"name":"escape.gno","body":"package json\n\nimport (\n\t\"unicode/utf8\"\n)\n\nconst (\n\tsupplementalPlanesOffset = 0x10000\n\thighSurrogateOffset = 0xD800\n\tlowSurrogateOffset = 0xDC00\n\tsurrogateEnd = 0xDFFF\n\tbasicMultilingualPlaneOffset = 0xFFFF\n\tbadHex = -1\n\n\tsingleUnicodeEscapeLen = 6\n\tsurrogatePairLen = 12\n)\n\nvar hexLookupTable = [256]int{\n\t'0': 0x0, '1': 0x1, '2': 0x2, '3': 0x3, '4': 0x4,\n\t'5': 0x5, '6': 0x6, '7': 0x7, '8': 0x8, '9': 0x9,\n\t'A': 0xA, 'B': 0xB, 'C': 0xC, 'D': 0xD, 'E': 0xE, 'F': 0xF,\n\t'a': 0xA, 'b': 0xB, 'c': 0xC, 'd': 0xD, 'e': 0xE, 'f': 0xF,\n\t// Fill unspecified index-value pairs with key and value of -1\n\t'G': -1, 'H': -1, 'I': -1, 'J': -1,\n\t'K': -1, 'L': -1, 'M': -1, 'N': -1,\n\t'O': -1, 'P': -1, 'Q': -1, 'R': -1,\n\t'S': -1, 'T': -1, 'U': -1, 'V': -1,\n\t'W': -1, 'X': -1, 'Y': -1, 'Z': -1,\n\t'g': -1, 'h': -1, 'i': -1, 'j': -1,\n\t'k': -1, 'l': -1, 'm': -1, 'n': -1,\n\t'o': -1, 'p': -1, 'q': -1, 'r': -1,\n\t's': -1, 't': -1, 'u': -1, 'v': -1,\n\t'w': -1, 'x': -1, 'y': -1, 'z': -1,\n}\n\nfunc h2i(c byte) int {\n\treturn hexLookupTable[c]\n}\n\n// Unescape takes an input byte slice, processes it to Unescape certain characters,\n// and writes the result into an output byte slice.\n//\n// it returns the processed slice and any error encountered during the Unescape operation.\nfunc Unescape(input, output []byte) ([]byte, error) {\n\t// ensure the output slice has enough capacity to hold the input slice.\n\tinputLen := len(input)\n\tif cap(output) \u003c inputLen {\n\t\toutput = make([]byte, inputLen)\n\t}\n\n\tinPos, outPos := 0, 0\n\n\tfor inPos \u003c len(input) {\n\t\tc := input[inPos]\n\t\tif c != backSlash {\n\t\t\toutput[outPos] = c\n\t\t\tinPos++\n\t\t\toutPos++\n\t\t} else {\n\t\t\t// process escape sequence\n\t\t\tinLen, outLen, err := processEscapedUTF8(input[inPos:], output[outPos:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tinPos += inLen\n\t\t\toutPos += outLen\n\t\t}\n\t}\n\n\treturn output[:outPos], nil\n}\n\n// isSurrogatePair returns true if the rune is a surrogate pair.\n//\n// A surrogate pairs are used in UTF-16 encoding to encode characters\n// outside the Basic Multilingual Plane (BMP).\nfunc isSurrogatePair(r rune) bool {\n\treturn highSurrogateOffset \u003c= r \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// isHighSurrogate checks if the rune is a high surrogate (U+D800 to U+DBFF).\nfunc isHighSurrogate(r rune) bool {\n\treturn r \u003e= highSurrogateOffset \u0026\u0026 r \u003c= 0xDBFF\n}\n\n// isLowSurrogate checks if the rune is a low surrogate (U+DC00 to U+DFFF).\nfunc isLowSurrogate(r rune) bool {\n\treturn r \u003e= lowSurrogateOffset \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// combineSurrogates reconstruct the original unicode code points in the\n// supplemental plane by combinin the high and low surrogate.\n//\n// The hight surrogate in the range from U+D800 to U+DBFF,\n// and the low surrogate in the range from U+DC00 to U+DFFF.\n//\n// The formula to combine the surrogates is:\n// (high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000\nfunc combineSurrogates(high, low rune) rune {\n\treturn ((high - highSurrogateOffset) \u003c\u003c 10) + (low - lowSurrogateOffset) + supplementalPlanesOffset\n}\n\n// deocdeSingleUnicodeEscape decodes a unicode escape sequence (e.g., \\uXXXX) into a rune.\nfunc decodeSingleUnicodeEscape(b []byte) (rune, bool) {\n\tif len(b) \u003c 6 {\n\t\treturn utf8.RuneError, false\n\t}\n\n\t// convert hex to decimal\n\th1, h2, h3, h4 := h2i(b[2]), h2i(b[3]), h2i(b[4]), h2i(b[5])\n\tif h1 == badHex || h2 == badHex || h3 == badHex || h4 == badHex {\n\t\treturn utf8.RuneError, false\n\t}\n\n\treturn rune(h1\u003c\u003c12 + h2\u003c\u003c8 + h3\u003c\u003c4 + h4), true\n}\n\n// decodeUnicodeEscape decodes a Unicode escape sequence from a byte slice.\n// It handles both single Unicode escape sequences and surrogate pairs.\nfunc decodeUnicodeEscape(b []byte) (rune, int) {\n\t// decode the first Unicode escape sequence.\n\tr, ok := decodeSingleUnicodeEscape(b)\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is within the BMP and not a surrogate, return it\n\tif r \u003c= basicMultilingualPlaneOffset \u0026\u0026 !isSurrogatePair(r) {\n\t\treturn r, 6\n\t}\n\n\tif !isHighSurrogate(r) {\n\t\t// invalid surrogate pair.\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is a high surrogate, need to decode the next escape sequence.\n\n\t// ensure there are enough bytes for the next escape sequence.\n\tif len(b) \u003c surrogatePairLen {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// decode the second Unicode escape sequence.\n\tr2, ok := decodeSingleUnicodeEscape(b[singleUnicodeEscapeLen:])\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// check if the second rune is a low surrogate.\n\tif isLowSurrogate(r2) {\n\t\tcombined := combineSurrogates(r, r2)\n\t\treturn combined, surrogatePairLen\n\t}\n\treturn utf8.RuneError, -1\n}\n\nvar escapeByteSet = [256]byte{\n\t'\"': doubleQuote,\n\t'\\\\': backSlash,\n\t'/': slash,\n\t'b': backSpace,\n\t'f': formFeed,\n\t'n': newLine,\n\t'r': carriageReturn,\n\t't': tab,\n}\n\n// Unquote takes a byte slice and unquotes it by removing\n// the surrounding quotes and unescaping the contents.\nfunc Unquote(s []byte, border byte) (string, bool) {\n\ts, ok := unquoteBytes(s, border)\n\treturn string(s), ok\n}\n\n// unquoteBytes takes a byte slice and unquotes it by removing\nfunc unquoteBytes(s []byte, border byte) ([]byte, bool) {\n\tif len(s) \u003c 2 || s[0] != border || s[len(s)-1] != border {\n\t\treturn nil, false\n\t}\n\n\ts = s[1 : len(s)-1]\n\n\tr := 0\n\tfor r \u003c len(s) {\n\t\tc := s[r]\n\n\t\tif c == backSlash || c == border || c \u003c 0x20 {\n\t\t\tbreak\n\t\t}\n\n\t\tif c \u003c utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\tbreak\n\t\t}\n\n\t\tr += size\n\t}\n\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tutfDoubleMax := utf8.UTFMax * 2\n\tb := make([]byte, len(s)+utfDoubleMax)\n\tw := copy(b, s[0:r])\n\n\tfor r \u003c len(s) {\n\t\tif w \u003e= len(b)-utf8.UTFMax {\n\t\t\tnb := make([]byte, utfDoubleMax+(2*len(b)))\n\t\t\tcopy(nb, b)\n\t\t\tb = nb\n\t\t}\n\n\t\tc := s[r]\n\t\tif c == backSlash {\n\t\t\tr++\n\t\t\tif r \u003e= len(s) {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tif s[r] == 'u' {\n\t\t\t\trr, res := decodeUnicodeEscape(s[r-1:])\n\t\t\t\tif res \u003c 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t\t\tr += 5\n\t\t\t} else {\n\t\t\t\tdecode := escapeByteSet[s[r]]\n\t\t\t\tif decode == 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tif decode == doubleQuote || decode == backSlash || decode == slash {\n\t\t\t\t\tdecode = s[r]\n\t\t\t\t}\n\n\t\t\t\tb[w] = decode\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\t}\n\t\t} else if c == border || c \u003c 0x20 {\n\t\t\treturn nil, false\n\t\t} else if c \u003c utf8.RuneSelf {\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\t\t} else {\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\n\t\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\n\treturn b[:w], true\n}\n\n// processEscapedUTF8 converts escape sequences to UTF-8 characters.\n// It decodes Unicode escape sequences (\\uXXXX) to UTF-8 and\n// converts standard escape sequences (e.g., \\n) to their corresponding special characters.\nfunc processEscapedUTF8(in, out []byte) (int, int, error) {\n\tif len(in) \u003c 2 || in[0] != backSlash {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\tescapeSeqLen := 2\n\tescapeChar := in[1]\n\n\tif escapeChar != 'u' {\n\t\tval := escapeByteSet[escapeChar]\n\t\tif val == 0 {\n\t\t\treturn -1, -1, errInvalidEscapeSequence\n\t\t}\n\n\t\tout[0] = val\n\t\treturn escapeSeqLen, 1, nil\n\t}\n\n\tr, size := decodeUnicodeEscape(in)\n\tif size == -1 {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\toutLen := utf8.EncodeRune(out, r)\n\n\treturn size, outLen, nil\n}\n"},{"name":"escape_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"unicode/utf8\"\n)\n\nfunc TestHexToInt(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tc byte\n\t\twant int\n\t}{\n\t\t{\"Digit 0\", '0', 0},\n\t\t{\"Digit 9\", '9', 9},\n\t\t{\"Uppercase A\", 'A', 10},\n\t\t{\"Uppercase F\", 'F', 15},\n\t\t{\"Lowercase a\", 'a', 10},\n\t\t{\"Lowercase f\", 'f', 15},\n\t\t{\"Invalid character1\", 'g', badHex},\n\t\t{\"Invalid character2\", 'G', badHex},\n\t\t{\"Invalid character3\", 'z', badHex},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := h2i(tt.c); got != tt.want {\n\t\t\t\tt.Errorf(\"h2i() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSurrogatePair(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tr rune\n\t\texpected bool\n\t}{\n\t\t{\"high surrogate start\", 0xD800, true},\n\t\t{\"high surrogate end\", 0xDBFF, true},\n\t\t{\"low surrogate start\", 0xDC00, true},\n\t\t{\"low surrogate end\", 0xDFFF, true},\n\t\t{\"Non-surrogate\", 0x0000, false},\n\t\t{\"Non-surrogate 2\", 0xE000, false},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif got := isSurrogatePair(tc.r); got != tc.expected {\n\t\t\t\tt.Errorf(\"isSurrogate() = %v, want %v\", got, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCombineSurrogates(t *testing.T) {\n\ttestCases := []struct {\n\t\thigh, low rune\n\t\texpected rune\n\t}{\n\t\t{0xD83D, 0xDC36, 0x1F436}, // 🐶 U+1F436 DOG FACE\n\t\t{0xD83D, 0xDE00, 0x1F600}, // 😀 U+1F600 GRINNING FACE\n\t\t{0xD83C, 0xDF03, 0x1F303}, // 🌃 U+1F303 NIGHT WITH STARS\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult := combineSurrogates(tc.high, tc.low)\n\t\tif result != tc.expected {\n\t\t\tt.Errorf(\"combineSurrogates(%U, %U) = %U; want %U\", tc.high, tc.low, result, tc.expected)\n\t\t}\n\t}\n}\n\nfunc TestDecodeSingleUnicodeEscape(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tisValid bool\n\t}{\n\t\t// valid unicode escape sequences\n\t\t{[]byte(`\\u0041`), 'A', true},\n\t\t{[]byte(`\\u03B1`), 'α', true},\n\t\t{[]byte(`\\u00E9`), 'é', true}, // valid non-English character\n\t\t{[]byte(`\\u0021`), '!', true}, // valid special character\n\t\t{[]byte(`\\uFF11`), '1', true},\n\t\t{[]byte(`\\uD83D`), 0xD83D, true},\n\t\t{[]byte(`\\uDE03`), 0xDE03, true},\n\n\t\t// invalid unicode escape sequences\n\t\t{[]byte(`\\u004`), utf8.RuneError, false}, // too short\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, false}, // invalid hex\n\t\t{[]byte(`\\u00G1`), utf8.RuneError, false}, // non-hex character\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult, isValid := decodeSingleUnicodeEscape(tc.input)\n\t\tif result != tc.expected || isValid != tc.isValid {\n\t\t\tt.Errorf(\"decodeSingleUnicodeEscape(%s) = (%U, %v); want (%U, %v)\", tc.input, result, isValid, tc.expected, tc.isValid)\n\t\t}\n\t}\n}\n\nfunc TestDecodeUnicodeEscape(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tsize int\n\t}{\n\t\t{[]byte(`\\u0041`), 'A', 6},\n\t\t{[]byte(`\\uD83D\\uDE00`), 0x1F600, 12}, // 😀\n\t\t{[]byte(`\\uD834\\uDD1E`), 0x1D11E, 12}, // 𝄞\n\t\t{[]byte(`\\uFFFF`), '\\uFFFF', 6},\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, -1},\n\t\t{[]byte(`\\uD800`), utf8.RuneError, -1}, // single high surrogate\n\t\t{[]byte(`\\uDC00`), utf8.RuneError, -1}, // single low surrogate\n\t\t{[]byte(`\\uD800\\uDC00`), 0x10000, 12}, // First code point above U+FFFF\n\t\t{[]byte(`\\uDBFF\\uDFFF`), 0x10FFFF, 12}, // Maximum code point\n\t\t{[]byte(`\\uD83D\\u0041`), utf8.RuneError, -1}, // invalid surrogate pair\n\t}\n\n\tfor _, tc := range tests {\n\t\tr, size := decodeUnicodeEscape(tc.input)\n\t\tif r != tc.expected || size != tc.size {\n\t\t\tt.Errorf(\"decodeUnicodeEscape(%q) = (%U, %d); want (%U, %d)\", tc.input, r, size, tc.expected, tc.size)\n\t\t}\n\t}\n}\n\nfunc TestUnescapeToUTF8(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpectedIn int\n\t\texpectedOut int\n\t\tisError bool\n\t}{\n\t\t// valid escape sequences\n\t\t{[]byte(`\\n`), 2, 1, false},\n\t\t{[]byte(`\\t`), 2, 1, false},\n\t\t{[]byte(`\\u0041`), 6, 1, false},\n\t\t{[]byte(`\\u03B1`), 6, 2, false},\n\t\t{[]byte(`\\uD830\\uDE03`), 12, 4, false},\n\n\t\t// invalid escape sequences\n\t\t{[]byte(`\\`), -1, -1, true}, // incomplete escape sequence\n\t\t{[]byte(`\\x`), -1, -1, true}, // invalid escape character\n\t\t{[]byte(`\\u`), -1, -1, true}, // incomplete unicode escape sequence\n\t\t{[]byte(`\\u004`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uXYZW`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uD83D\\u0041`), -1, -1, true}, // invalid unicode escape sequence\n\t}\n\n\tfor _, tc := range tests {\n\t\tinput := make([]byte, len(tc.input))\n\t\tcopy(input, tc.input)\n\t\toutput := make([]byte, utf8.UTFMax)\n\t\tinLen, outLen, err := processEscapedUTF8(input, output)\n\t\tif (err != nil) != tc.isError {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = %v; want %v\", tc.input, err, tc.isError)\n\t\t}\n\n\t\tif inLen != tc.expectedIn || outLen != tc.expectedOut {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = (%d, %d); want (%d, %d)\", tc.input, inLen, outLen, tc.expectedIn, tc.expectedOut)\n\t\t}\n\t}\n}\n\nfunc TestUnescape(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected []byte\n\t\tisError bool\n\t}{\n\t\t{\"NoEscape\", []byte(\"hello world\"), []byte(\"hello world\"), false},\n\t\t{\"SingleEscape\", []byte(\"hello\\\\nworld\"), []byte(\"hello\\nworld\"), false},\n\t\t{\"MultipleEscapes\", []byte(\"line1\\\\nline2\\\\r\\\\nline3\"), []byte(\"line1\\nline2\\r\\nline3\"), false},\n\t\t{\"UnicodeEscape\", []byte(\"snowman:\\\\u2603\"), []byte(\"snowman:\\u2603\"), false},\n\t\t{\"SurrogatePair\", []byte(\"emoji:\\\\uD83D\\\\uDE00\"), []byte(\"emoji:😀\"), false},\n\t\t{\"InvalidEscape\", []byte(\"hello\\\\xworld\"), nil, true},\n\t\t{\"IncompleteUnicode\", []byte(\"incomplete:\\\\u123\"), nil, true},\n\t\t{\"InvalidSurrogatePair\", []byte(\"invalid:\\\\uD83D\\\\u0041\"), nil, true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\toutput := make([]byte, len(tc.input)*2) // Allocate extra space for possible expansion\n\t\t\tresult, err := Unescape(tc.input, output)\n\t\t\tif (err != nil) != tc.isError {\n\t\t\t\tt.Errorf(\"Unescape(%q) error = %v; want error = %v\", tc.input, err, tc.isError)\n\t\t\t}\n\n\t\t\tif !tc.isError \u0026\u0026 !bytes.Equal(result, tc.expected) {\n\t\t\t\tt.Errorf(\"Unescape(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnquoteBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\tborder byte\n\t\texpected []byte\n\t\tok bool\n\t}{\n\t\t{[]byte(\"\\\"hello\\\"\"), '\"', []byte(\"hello\"), true},\n\t\t{[]byte(\"'hello'\"), '\\'', []byte(\"hello\"), true},\n\t\t{[]byte(\"\\\"hello\"), '\"', nil, false},\n\t\t{[]byte(\"hello\\\"\"), '\"', nil, false},\n\t\t{[]byte(\"\\\"he\\\\\\\"llo\\\"\"), '\"', []byte(\"he\\\"llo\"), true},\n\t\t{[]byte(\"\\\"he\\\\nllo\\\"\"), '\"', []byte(\"he\\nllo\"), true},\n\t\t{[]byte(\"\\\"\\\"\"), '\"', []byte(\"\"), true},\n\t\t{[]byte(\"''\"), '\\'', []byte(\"\"), true},\n\t\t{[]byte(\"\\\"\\\\u0041\\\"\"), '\"', []byte(\"A\"), true},\n\t\t{[]byte(`\"Hello, 世界\"`), '\"', []byte(\"Hello, 世界\"), true},\n\t\t{[]byte(`\"Hello, \\x80\"`), '\"', nil, false},\n\t\t{[]byte(`\"invalid surrogate: \\uD83D\\u0041\"`), '\"', nil, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tresult, pass := unquoteBytes(tc.input, tc.border)\n\n\t\tif pass != tc.ok {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %v; want %v\", tc.input, pass, tc.ok)\n\t\t}\n\n\t\tif !bytes.Equal(result, tc.expected) {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t}\n\t}\n}\n"},{"name":"indent.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// indentGrowthFactor specifies the growth factor of indenting JSON input.\n// A factor no higher than 2 ensures that wasted space never exceeds 50%.\nconst indentGrowthFactor = 2\n\n// IndentJSON formats the JSON data with the specified indentation.\nfunc Indent(data []byte, indent string) ([]byte, error) {\n\tvar (\n\t\tout bytes.Buffer\n\t\tlevel int\n\t\tinArray bool\n\t\tarrayDepth int\n\t)\n\n\tfor i := 0; i \u003c len(data); i++ {\n\t\tc := data[i] // current character\n\n\t\tswitch c {\n\t\tcase bracketOpen:\n\t\t\tarrayDepth++\n\t\t\tif arrayDepth \u003e 1 {\n\t\t\t\tlevel++ // increase the level if it's nested array\n\t\t\t\tinArray = true\n\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// case of the top-level array\n\t\t\t\tinArray = true\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase bracketClose:\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tlevel--\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tarrayDepth--\n\t\t\tif arrayDepth == 0 {\n\t\t\t\tinArray = false\n\t\t\t}\n\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase curlyOpen:\n\t\t\t// check if the empty object or array\n\t\t\t// we don't need to apply the indent when it's empty containers.\n\t\t\tif i+1 \u003c len(data) \u0026\u0026 data[i+1] == curlyClose {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\ti++ // skip next character\n\t\t\t\tif err := out.WriteByte(data[i]); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tlevel++\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase curlyClose:\n\t\t\tlevel--\n\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase comma, colon:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else if c == colon {\n\t\t\t\tif err := out.WriteByte(' '); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out.Bytes(), nil\n}\n\nfunc writeNewlineAndIndent(out *bytes.Buffer, level int, indent string) error {\n\tif err := out.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\n\tidt := strings.Repeat(indent, level*indentGrowthFactor)\n\tif _, err := out.WriteString(idt); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"},{"name":"indent_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\nfunc TestIndentJSON(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\tindent string\n\t\texpected []byte\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tinput: []byte(`{}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`{}`),\n\t\t},\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tinput: []byte(`[]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`[]`),\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tinput: []byte(`{{}}`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"{\\n\\t\\t{}\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"nested array\",\n\t\t\tinput: []byte(`[[[]]]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"[[\\n\\t\\t[\\n\\t\\t\\t\\t\\n\\t\\t]\\n]]\"),\n\t\t},\n\t\t{\n\t\t\tname: \"top-level array\",\n\t\t\tinput: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t},\n\t\t{\n\t\t\tname: \"array of arrays\",\n\t\t\tinput: []byte(`[\"apple\",[\"banana\",\"cherry\"],\"date\"]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"[\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n],\\\"date\\\"]\"),\n\t\t},\n\n\t\t{\n\t\t\tname: \"nested array in object\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"fruits\\\": [\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n ],\\\"date\\\"]\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"complex nested structure\",\n\t\t\tinput: []byte(`{\"data\":{\"array\":[1,2,3],\"bool\":true,\"nestedArray\":[[\"a\",\"b\"],\"c\"]}}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"data\\\": {\\n \\\"array\\\": [1,2,3],\\\"bool\\\": true,\\\"nestedArray\\\": [[\\n \\\"a\\\",\\n \\\"b\\\"\\n ],\\\"c\\\"]\\n }\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"custom ident character\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \"*\",\n\t\t\texpected: []byte(\"{\\n**\\\"fruits\\\": [\\\"apple\\\",[\\n****\\\"banana\\\",\\n****\\\"cherry\\\"\\n**],\\\"date\\\"]\\n}\"),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tactual, err := Indent(tt.input, tt.indent)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"IndentJSON() error = %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !bytes.Equal(actual, tt.expected) {\n\t\t\t\tt.Errorf(\"IndentJSON() = %q, want %q\", actual, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"internal.gno","body":"package json\n\n// Reference: https://github.com/freddierice/php_source/blob/467ed5d6edff72219afd3e644516f131118ef48e/ext/json/JSON_parser.c\n// Copyright (c) 2005 JSON.org\n\n// Go implementation is taken from: https://github.com/spyzhov/ajson/blob/master/internal/state.go\n\ntype (\n\tStates int8 // possible states of the parser\n\tClasses int8 // JSON string character types\n)\n\nconst __ = -1\n\n// enum classes\nconst (\n\tC_SPACE Classes = iota /* space */\n\tC_WHITE /* other whitespace */\n\tC_LCURB /* { */\n\tC_RCURB /* } */\n\tC_LSQRB /* [ */\n\tC_RSQRB /* ] */\n\tC_COLON /* : */\n\tC_COMMA /* , */\n\tC_QUOTE /* \" */\n\tC_BACKS /* \\ */\n\tC_SLASH /* / */\n\tC_PLUS /* + */\n\tC_MINUS /* - */\n\tC_POINT /* . */\n\tC_ZERO /* 0 */\n\tC_DIGIT /* 123456789 */\n\tC_LOW_A /* a */\n\tC_LOW_B /* b */\n\tC_LOW_C /* c */\n\tC_LOW_D /* d */\n\tC_LOW_E /* e */\n\tC_LOW_F /* f */\n\tC_LOW_L /* l */\n\tC_LOW_N /* n */\n\tC_LOW_R /* r */\n\tC_LOW_S /* s */\n\tC_LOW_T /* t */\n\tC_LOW_U /* u */\n\tC_ABCDF /* ABCDF */\n\tC_E /* E */\n\tC_ETC /* everything else */\n)\n\n// AsciiClasses array maps the 128 ASCII characters into character classes.\nvar AsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_QUOTE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n// QuoteAsciiClasses is a HACK for single quote from AsciiClasses\nvar QuoteAsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_QUOTE,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n/*\nThe state codes.\n*/\nconst (\n\tGO States = iota /* start */\n\tOK /* ok */\n\tOB /* object */\n\tKE /* key */\n\tCO /* colon */\n\tVA /* value */\n\tAR /* array */\n\tST /* string */\n\tES /* escape */\n\tU1 /* u1 */\n\tU2 /* u2 */\n\tU3 /* u3 */\n\tU4 /* u4 */\n\tMI /* minus */\n\tZE /* zero */\n\tIN /* integer */\n\tDT /* dot */\n\tFR /* fraction */\n\tE1 /* e */\n\tE2 /* ex */\n\tE3 /* exp */\n\tT1 /* tr */\n\tT2 /* tru */\n\tT3 /* true */\n\tF1 /* fa */\n\tF2 /* fal */\n\tF3 /* fals */\n\tF4 /* false */\n\tN1 /* nu */\n\tN2 /* nul */\n\tN3 /* null */\n)\n\n// List of action codes.\n// these constants are defining an action that should be performed under certain conditions.\nconst (\n\tcl States = -2 /* colon */\n\tcm States = -3 /* comma */\n\tqt States = -4 /* quote */\n\tbo States = -5 /* bracket open */\n\tco States = -6 /* curly bracket open */\n\tbc States = -7 /* bracket close */\n\tcc States = -8 /* curly bracket close */\n\tec States = -9 /* curly bracket empty */\n)\n\n// StateTransitionTable is the state transition table takes the current state and the current symbol, and returns either\n// a new state or an action. An action is represented as a negative number. A JSON text is accepted if at the end of the\n// text the state is OK and if the mode is DONE.\nvar StateTransitionTable = [31][31]States{\n\t/*\n\t The state transition table takes the current state and the current symbol,\n\t and returns either a new state or an action. An action is represented as a\n\t negative number. A JSON text is accepted if at the end of the text the\n\t state is OK and if the mode is DONE.\n\t white 1-9 ABCDF etc\n\t space | { } [ ] : , \" \\ / + - . 0 | a b c d e f l n r s t u | E |*/\n\t/*start GO*/ {GO, GO, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*ok OK*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*object OB*/ {OB, OB, __, ec, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*key KE*/ {KE, KE, __, __, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*colon CO*/ {CO, CO, __, __, __, __, cl, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*value VA*/ {VA, VA, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*array AR*/ {AR, AR, co, __, bo, bc, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*string ST*/ {ST, __, ST, ST, ST, ST, ST, ST, qt, ES, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST},\n\t/*escape ES*/ {__, __, __, __, __, __, __, __, ST, ST, ST, __, __, __, __, __, __, ST, __, __, __, ST, __, ST, ST, __, ST, U1, __, __, __},\n\t/*u1 U1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U2, U2, U2, U2, U2, U2, U2, U2, __, __, __, __, __, __, U2, U2, __},\n\t/*u2 U2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U3, U3, U3, U3, U3, U3, U3, U3, __, __, __, __, __, __, U3, U3, __},\n\t/*u3 U3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U4, U4, U4, U4, U4, U4, U4, U4, __, __, __, __, __, __, U4, U4, __},\n\t/*u4 U4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ST, ST, ST, ST, ST, ST, ST, ST, __, __, __, __, __, __, ST, ST, __},\n\t/*minus MI*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ZE, IN, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*zero ZE*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, __, __, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*int IN*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, IN, IN, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*dot DT*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, FR, FR, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*frac FR*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, FR, FR, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*e E1*/ {__, __, __, __, __, __, __, __, __, __, __, E2, E2, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*ex E2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*exp E3*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*tr T1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T2, __, __, __, __, __, __},\n\t/*tru T2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T3, __, __, __},\n\t/*true T3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*fa F1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F2, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*fal F2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F3, __, __, __, __, __, __, __, __},\n\t/*fals F3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F4, __, __, __, __, __},\n\t/*false F4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*nu N1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N2, __, __, __},\n\t/*nul N2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N3, __, __, __, __, __, __, __, __},\n\t/*null N3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __},\n}\n"},{"name":"node.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Node represents a JSON node.\ntype Node struct {\n\tprev *Node // prev is the parent node of the current node.\n\tnext map[string]*Node // next is the child nodes of the current node.\n\tkey *string // key holds the key of the current node in the parent node.\n\tdata []byte // byte slice of JSON data\n\tvalue interface{} // value holds the value of the current node.\n\tnodeType ValueType // NodeType holds the type of the current node. (Object, Array, String, Number, Boolean, Null)\n\tindex *int // index holds the index of the current node in the parent array node.\n\tborders [2]int // borders stores the start and end index of the current node in the data.\n\tmodified bool // modified indicates the current node is changed or not.\n}\n\n// NewNode creates a new node instance with the given parent node, buffer, type, and key.\nfunc NewNode(prev *Node, b *buffer, typ ValueType, key **string) (*Node, error) {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: b.data,\n\t\tborders: [2]int{b.index, 0},\n\t\tkey: *key,\n\t\tnodeType: typ,\n\t\tmodified: false,\n\t}\n\n\tif typ == Object || typ == Array {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\tif prev != nil {\n\t\tif prev.IsArray() {\n\t\t\tsize := len(prev.next)\n\t\t\tcurr.index = \u0026size\n\n\t\t\tprev.next[strconv.Itoa(size)] = curr\n\t\t} else if prev.IsObject() {\n\t\t\tif key == nil {\n\t\t\t\treturn nil, errKeyRequired\n\t\t\t}\n\n\t\t\tprev.next[**key] = curr\n\t\t} else {\n\t\t\treturn nil, errors.New(\"invalid parent type\")\n\t\t}\n\t}\n\n\treturn curr, nil\n}\n\n// load retrieves the value of the current node.\nfunc (n *Node) load() interface{} {\n\treturn n.value\n}\n\n// Changed checks the current node is changed or not.\nfunc (n *Node) Changed() bool {\n\treturn n.modified\n}\n\n// Key returns the key of the current node.\nfunc (n *Node) Key() string {\n\tif n == nil || n.key == nil {\n\t\treturn \"\"\n\t}\n\n\treturn *n.key\n}\n\n// HasKey checks the current node has the given key or not.\nfunc (n *Node) HasKey(key string) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\t_, ok := n.next[key]\n\treturn ok\n}\n\n// GetKey returns the value of the given key from the current object node.\nfunc (n *Node) GetKey(key string) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.Type() != Object {\n\t\treturn nil, ufmt.Errorf(\"target node is not object type. got: %s\", n.Type().String())\n\t}\n\n\tvalue, ok := n.next[key]\n\tif !ok {\n\t\treturn nil, ufmt.Errorf(\"key not found: %s\", key)\n\t}\n\n\treturn value, nil\n}\n\n// MustKey returns the value of the given key from the current object node.\nfunc (n *Node) MustKey(key string) *Node {\n\tval, err := n.GetKey(key)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// UniqueKeyLists traverses the current JSON nodes and collects all the unique keys.\nfunc (n *Node) UniqueKeyLists() []string {\n\tvar collectKeys func(*Node) []string\n\tcollectKeys = func(node *Node) []string {\n\t\tif node == nil || !node.IsObject() {\n\t\t\treturn nil\n\t\t}\n\n\t\tresult := make(map[string]bool)\n\t\tfor key, childNode := range node.next {\n\t\t\tresult[key] = true\n\t\t\tchildKeys := collectKeys(childNode)\n\t\t\tfor _, childKey := range childKeys {\n\t\t\t\tresult[childKey] = true\n\t\t\t}\n\t\t}\n\n\t\tkeys := make([]string, 0, len(result))\n\t\tfor key := range result {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\treturn keys\n\t}\n\n\treturn collectKeys(n)\n}\n\n// Empty returns true if the current node is empty.\nfunc (n *Node) Empty() bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\treturn len(n.next) == 0\n}\n\n// Type returns the type (ValueType) of the current node.\nfunc (n *Node) Type() ValueType {\n\treturn n.nodeType\n}\n\n// Value returns the value of the current node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tval, err := root.MustKey(\"key\").Value()\n//\tif err != nil {\n//\t\tt.Errorf(\"Value returns error: %v\", err)\n//\t}\n//\n//\tresult: \"value\"\nfunc (n *Node) Value() (value interface{}, err error) {\n\tvalue = n.load()\n\n\tif value == nil {\n\t\tswitch n.nodeType {\n\t\tcase Null:\n\t\t\treturn nil, nil\n\n\t\tcase Number:\n\t\t\tvalue, err = strconv.ParseFloat(string(n.source()), 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase String:\n\t\t\tvar ok bool\n\t\t\tvalue, ok = Unquote(n.source(), doubleQuote)\n\t\t\tif !ok {\n\t\t\t\treturn \"\", errInvalidStringValue\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase Boolean:\n\t\t\tif len(n.source()) == 0 {\n\t\t\t\treturn nil, errEmptyBooleanNode\n\t\t\t}\n\n\t\t\tb := n.source()[0]\n\t\t\tvalue = b == 't' || b == 'T'\n\t\t\tn.value = value\n\n\t\tcase Array:\n\t\t\telems := make([]*Node, len(n.next))\n\n\t\t\tfor _, e := range n.next {\n\t\t\t\telems[*e.index] = e\n\t\t\t}\n\n\t\t\tvalue = elems\n\t\t\tn.value = value\n\n\t\tcase Object:\n\t\t\tobj := make(map[string]*Node, len(n.next))\n\n\t\t\tfor k, v := range n.next {\n\t\t\t\tobj[k] = v\n\t\t\t}\n\n\t\t\tvalue = obj\n\t\t\tn.value = value\n\t\t}\n\t}\n\n\treturn value, nil\n}\n\n// Delete removes the current node from the parent node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err := root.MustKey(\"key\").Delete(); err != nil {\n//\t\tt.Errorf(\"Delete returns error: %v\", err)\n//\t}\n//\n//\tresult: {} (empty object)\nfunc (n *Node) Delete() error {\n\tif n == nil {\n\t\treturn errors.New(\"can't delete nil node\")\n\t}\n\n\tif n.prev == nil {\n\t\treturn nil\n\t}\n\n\treturn n.prev.remove(n)\n}\n\n// Size returns the size (length) of the current array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.Size() != 2 {\n//\t\tt.Errorf(\"ArrayNode returns wrong size: %d\", root.Size())\n//\t}\nfunc (n *Node) Size() int {\n\tif n == nil {\n\t\treturn 0\n\t}\n\n\treturn len(n.next)\n}\n\n// Index returns the index of the current node in the parent array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.MustIndex(1).Index() != 1 {\n//\t\tt.Errorf(\"Index returns wrong index: %d\", root.MustIndex(1).Index())\n//\t}\n//\n// We can also use the index to the byte slice of the JSON data directly.\n//\n// Example:\n//\n//\troot := Unmarshal([]byte(`[\"foo\", 1]`))\n//\tif root == nil {\n//\t\tt.Errorf(\"Unmarshal returns nil\")\n//\t}\n//\n//\tif string(root.MustIndex(1).source()) != \"1\" {\n//\t\tt.Errorf(\"source returns wrong result: %s\", root.MustIndex(1).source())\n//\t}\nfunc (n *Node) Index() int {\n\tif n == nil || n.index == nil {\n\t\treturn -1\n\t}\n\n\treturn *n.index\n}\n\n// MustIndex returns the array element at the given index.\n//\n// If the index is negative, it returns the index is from the end of the array.\n// Also, it panics if the index is not found.\n//\n// check the Index method for detailed usage.\nfunc (n *Node) MustIndex(expectIdx int) *Node {\n\tval, err := n.GetIndex(expectIdx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// GetIndex returns the array element at the given index.\n//\n// if the index is negative, it returns the index is from the end of the array.\nfunc (n *Node) GetIndex(idx int) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsArray() {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tif idx \u003e n.Size() {\n\t\treturn nil, errors.New(\"input index exceeds the array size\")\n\t}\n\n\tif idx \u003c 0 {\n\t\tidx += len(n.next)\n\t}\n\n\tchild, ok := n.next[strconv.Itoa(idx)]\n\tif !ok {\n\t\treturn nil, errIndexNotFound\n\t}\n\n\treturn child, nil\n}\n\n// DeleteIndex removes the array element at the given index.\nfunc (n *Node) DeleteIndex(idx int) error {\n\tnode, err := n.GetIndex(idx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn n.remove(node)\n}\n\n// NullNode creates a new null type node.\n//\n// Usage:\n//\n//\t_ := NullNode(\"\")\nfunc NullNode(key string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: nil,\n\t\tnodeType: Null,\n\t\tmodified: true,\n\t}\n}\n\n// NumberNode creates a new number type node.\n//\n// Usage:\n//\n//\troot := NumberNode(\"\", 1)\n//\tif root == nil {\n//\t\tt.Errorf(\"NumberNode returns nil\")\n//\t}\nfunc NumberNode(key string, value float64) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Number,\n\t\tmodified: true,\n\t}\n}\n\n// StringNode creates a new string type node.\n//\n// Usage:\n//\n//\troot := StringNode(\"\", \"foo\")\n//\tif root == nil {\n//\t\tt.Errorf(\"StringNode returns nil\")\n//\t}\nfunc StringNode(key string, value string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: String,\n\t\tmodified: true,\n\t}\n}\n\n// BoolNode creates a new given boolean value node.\n//\n// Usage:\n//\n//\troot := BoolNode(\"\", true)\n//\tif root == nil {\n//\t\tt.Errorf(\"BoolNode returns nil\")\n//\t}\nfunc BoolNode(key string, value bool) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Boolean,\n\t\tmodified: true,\n\t}\n}\n\n// ArrayNode creates a new array type node.\n//\n// If the given value is nil, it creates an empty array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\nfunc ArrayNode(key string, value []*Node) *Node {\n\tcurr := \u0026Node{\n\t\tkey: \u0026key,\n\t\tnodeType: Array,\n\t\tmodified: true,\n\t}\n\n\tcurr.next = make(map[string]*Node, len(value))\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor i, v := range value {\n\t\t\tidx := i\n\t\t\tcurr.next[strconv.Itoa(i)] = v\n\n\t\t\tv.prev = curr\n\t\t\tv.index = \u0026idx\n\t\t}\n\t}\n\n\treturn curr\n}\n\n// ObjectNode creates a new object type node.\n//\n// If the given value is nil, it creates an empty object node.\n//\n// next is a map of key and value pairs of the object.\nfunc ObjectNode(key string, value map[string]*Node) *Node {\n\tcurr := \u0026Node{\n\t\tnodeType: Object,\n\t\tkey: \u0026key,\n\t\tnext: value,\n\t\tmodified: true,\n\t}\n\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor key, val := range value {\n\t\t\tvkey := key\n\t\t\tval.prev = curr\n\t\t\tval.key = \u0026vkey\n\t\t}\n\t} else {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\treturn curr\n}\n\n// IsArray returns true if the current node is array type.\nfunc (n *Node) IsArray() bool {\n\treturn n.nodeType == Array\n}\n\n// IsObject returns true if the current node is object type.\nfunc (n *Node) IsObject() bool {\n\treturn n.nodeType == Object\n}\n\n// IsNull returns true if the current node is null type.\nfunc (n *Node) IsNull() bool {\n\treturn n.nodeType == Null\n}\n\n// IsBool returns true if the current node is boolean type.\nfunc (n *Node) IsBool() bool {\n\treturn n.nodeType == Boolean\n}\n\n// IsString returns true if the current node is string type.\nfunc (n *Node) IsString() bool {\n\treturn n.nodeType == String\n}\n\n// IsNumber returns true if the current node is number type.\nfunc (n *Node) IsNumber() bool {\n\treturn n.nodeType == Number\n}\n\n// ready checks the current node is ready or not.\n//\n// the meaning of ready is the current node is parsed and has a valid value.\nfunc (n *Node) ready() bool {\n\treturn n.borders[1] != 0\n}\n\n// source returns the source of the current node.\nfunc (n *Node) source() []byte {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified \u0026\u0026 n.data != nil {\n\t\treturn (n.data)[n.borders[0]:n.borders[1]]\n\t}\n\n\treturn nil\n}\n\n// root returns the root node of the current node.\nfunc (n *Node) root() *Node {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tcurr := n\n\tfor curr.prev != nil {\n\t\tcurr = curr.prev\n\t}\n\n\treturn curr\n}\n\n// GetNull returns the null value if current node is null type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"null\"))\n//\tval, err := root.GetNull()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNull returns error: %v\", err)\n//\t}\n//\tif val != nil {\n//\t\tt.Errorf(\"GetNull returns wrong result: %v\", val)\n//\t}\nfunc (n *Node) GetNull() (interface{}, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsNull() {\n\t\treturn nil, errNotNullNode\n\t}\n\n\treturn nil, nil\n}\n\n// MustNull returns the null value if current node is null type.\n//\n// It panics if the current node is not null type.\nfunc (n *Node) MustNull() interface{} {\n\tv, err := n.GetNull()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetNumeric returns the numeric (int/float) value if current node is number type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"10.5\"))\n//\tval, err := root.GetNumeric()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNumeric returns error: %v\", err)\n//\t}\n//\tprintln(val) // 10.5\nfunc (n *Node) GetNumeric() (float64, error) {\n\tif n == nil {\n\t\treturn 0, errNilNode\n\t}\n\n\tif n.nodeType != Number {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tv, ok := val.(float64)\n\tif !ok {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\treturn v, nil\n}\n\n// MustNumeric returns the numeric (int/float) value if current node is number type.\n//\n// It panics if the current node is not number type.\nfunc (n *Node) MustNumeric() float64 {\n\tv, err := n.GetNumeric()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetString returns the string value if current node is string type.\n//\n// Usage:\n//\n//\troot, err := Unmarshal([]byte(\"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n//\t}\n//\n//\tstr, err := root.GetString()\n//\tif err != nil {\n//\t\tt.Errorf(\"should retrieve string value: %s\", err)\n//\t}\n//\n//\tprintln(str) // \"foo\"\nfunc (n *Node) GetString() (string, error) {\n\tif n == nil {\n\t\treturn \"\", errEmptyStringNode\n\t}\n\n\tif !n.IsString() {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tv, ok := val.(string)\n\tif !ok {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\treturn v, nil\n}\n\n// MustString returns the string value if current node is string type.\n//\n// It panics if the current node is not string type.\nfunc (n *Node) MustString() string {\n\tv, err := n.GetString()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetBool returns the boolean value if current node is boolean type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"true\"))\n//\tval, err := root.GetBool()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetBool returns error: %v\", err)\n//\t}\n//\tprintln(val) // true\nfunc (n *Node) GetBool() (bool, error) {\n\tif n == nil {\n\t\treturn false, errNilNode\n\t}\n\n\tif n.nodeType != Boolean {\n\t\treturn false, errNotBoolNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tv, ok := val.(bool)\n\tif !ok {\n\t\treturn false, errNotBoolNode\n\t}\n\n\treturn v, nil\n}\n\n// MustBool returns the boolean value if current node is boolean type.\n//\n// It panics if the current node is not boolean type.\nfunc (n *Node) MustBool() bool {\n\tv, err := n.GetBool()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetArray returns the array value if current node is array type.\n//\n// Usage:\n//\n//\t\troot := Must(Unmarshal([]byte(`[\"foo\", 1]`)))\n//\t\tarr, err := root.GetArray()\n//\t\tif err != nil {\n//\t\t\tt.Errorf(\"GetArray returns error: %v\", err)\n//\t\t}\n//\n//\t\tfor _, val := range arr {\n//\t\t\tprintln(val)\n//\t\t}\n//\n//\t result: \"foo\", 1\nfunc (n *Node) GetArray() ([]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.nodeType != Array {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.([]*Node)\n\tif !ok {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\treturn v, nil\n}\n\n// MustArray returns the array value if current node is array type.\n//\n// It panics if the current node is not array type.\nfunc (n *Node) MustArray() []*Node {\n\tv, err := n.GetArray()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendArray appends the given values to the current array node.\n//\n// If the current node is not array type, it returns an error.\n//\n// Example 1:\n//\n//\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n//\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n//\t\tt.Errorf(\"should not return error: %s\", err)\n//\t}\n//\n//\tresult: [{\"foo\":\"bar\"}, null]\n//\n// Example 2:\n//\n//\troot := Must(Unmarshal([]byte(`[\"bar\", \"baz\"]`)))\n//\terr := root.AppendArray(NumberNode(\"\", 1), StringNode(\"\", \"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n//\t }\n//\n//\tresult: [\"bar\", \"baz\", 1, \"foo\"]\nfunc (n *Node) AppendArray(value ...*Node) error {\n\tif !n.IsArray() {\n\t\treturn errInvalidAppend\n\t}\n\n\tfor _, val := range value {\n\t\tif err := n.append(nil, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ArrayEach executes the callback for each element in the JSON array.\n//\n// Usage:\n//\n//\tjsonArrayNode.ArrayEach(func(i int, valueNode *Node) {\n//\t ufmt.Println(i, valueNode)\n//\t})\nfunc (n *Node) ArrayEach(callback func(i int, target *Node)) {\n\tif n == nil || !n.IsArray() {\n\t\treturn\n\t}\n\n\tfor idx := 0; idx \u003c len(n.next); idx++ {\n\t\telement, err := n.GetIndex(idx)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tcallback(idx, element)\n\t}\n}\n\n// GetObject returns the object value if current node is object type.\n//\n// Usage:\n//\n//\troot := Must(Unmarshal([]byte(`{\"key\": \"value\"}`)))\n//\tobj, err := root.GetObject()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetObject returns error: %v\", err)\n//\t}\n//\n//\tresult: map[string]*Node{\"key\": StringNode(\"key\", \"value\")}\nfunc (n *Node) GetObject() (map[string]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsObject() {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.(map[string]*Node)\n\tif !ok {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\treturn v, nil\n}\n\n// MustObject returns the object value if current node is object type.\n//\n// It panics if the current node is not object type.\nfunc (n *Node) MustObject() map[string]*Node {\n\tv, err := n.GetObject()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendObject appends the given key and value to the current object node.\n//\n// If the current node is not object type, it returns an error.\nfunc (n *Node) AppendObject(key string, value *Node) error {\n\tif !n.IsObject() {\n\t\treturn errInvalidAppend\n\t}\n\n\tif err := n.append(\u0026key, value); err != nil {\n\t\treturn err\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ObjectEach executes the callback for each key-value pair in the JSON object.\n//\n// Usage:\n//\n//\tjsonObjectNode.ObjectEach(func(key string, valueNode *Node) {\n//\t ufmt.Println(key, valueNode)\n//\t})\nfunc (n *Node) ObjectEach(callback func(key string, value *Node)) {\n\tif n == nil || !n.IsObject() {\n\t\treturn\n\t}\n\n\tfor key, child := range n.next {\n\t\tcallback(key, child)\n\t}\n}\n\n// String converts the node to a string representation.\nfunc (n *Node) String() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified {\n\t\treturn string(n.source())\n\t}\n\n\tval, err := Marshal(n)\n\tif err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\n\treturn string(val)\n}\n\n// Path builds the path of the current node.\n//\n// For example:\n//\n//\t{ \"key\": { \"sub\": [ \"val1\", \"val2\" ] }}\n//\n// The path of \"val2\" is: $.key.sub[1]\nfunc (n *Node) Path() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif n.prev == nil {\n\t\tsb.WriteString(\"$\")\n\t} else {\n\t\tsb.WriteString(n.prev.Path())\n\n\t\tif n.key != nil {\n\t\t\tsb.WriteString(\"['\" + n.Key() + \"']\")\n\t\t} else {\n\t\t\tsb.WriteString(\"[\" + strconv.Itoa(n.Index()) + \"]\")\n\t\t}\n\t}\n\n\treturn sb.String()\n}\n\n// mark marks the current node as modified.\nfunc (n *Node) mark() {\n\tnode := n\n\tfor node != nil \u0026\u0026 !node.modified {\n\t\tnode.modified = true\n\t\tnode = node.prev\n\t}\n}\n\n// isContainer checks the current node type is array or object.\nfunc (n *Node) isContainer() bool {\n\treturn n.IsArray() || n.IsObject()\n}\n\n// remove removes the value from the current container type node.\nfunc (n *Node) remove(v *Node) error {\n\tif !n.isContainer() {\n\t\treturn ufmt.Errorf(\n\t\t\t\"can't remove value from non-array or non-object node. got=%s\",\n\t\t\tn.Type().String(),\n\t\t)\n\t}\n\n\tif v.prev != n {\n\t\treturn errors.New(\"invalid parent node\")\n\t}\n\n\tn.mark()\n\tif n.IsArray() {\n\t\tdelete(n.next, strconv.Itoa(*v.index))\n\t\tn.dropIndex(*v.index)\n\t} else {\n\t\tdelete(n.next, *v.key)\n\t}\n\n\tv.prev = nil\n\treturn nil\n}\n\n// dropIndex rebase the index of current array node values.\nfunc (n *Node) dropIndex(idx int) {\n\tfor i := idx + 1; i \u003c= len(n.next); i++ {\n\t\tprv := i - 1\n\t\tif curr, ok := n.next[strconv.Itoa(i)]; ok {\n\t\t\tcurr.index = \u0026prv\n\t\t\tn.next[strconv.Itoa(prv)] = curr\n\t\t}\n\n\t\tdelete(n.next, strconv.Itoa(i))\n\t}\n}\n\n// append is a helper function to append the given value to the current container type node.\nfunc (n *Node) append(key *string, val *Node) error {\n\tif n.isSameOrParentNode(val) {\n\t\treturn errInvalidAppendCycle\n\t}\n\n\tif val.prev != nil {\n\t\tif err := val.prev.remove(val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tval.prev = n\n\tval.key = key\n\n\tif key == nil {\n\t\tsize := len(n.next)\n\t\tval.index = \u0026size\n\t\tn.next[strconv.Itoa(size)] = val\n\t} else {\n\t\tif old, ok := n.next[*key]; ok {\n\t\t\tif err := n.remove(old); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tn.next[*key] = val\n\t}\n\n\treturn nil\n}\n\nfunc (n *Node) isSameOrParentNode(nd *Node) bool {\n\treturn n == nd || n.isParentNode(nd)\n}\n\nfunc (n *Node) isParentNode(nd *Node) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\tfor curr := nd.prev; curr != nil; curr = curr.prev {\n\t\tif curr == n {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// cptrs returns the pointer of the given string value.\nfunc cptrs(cpy *string) *string {\n\tif cpy == nil {\n\t\treturn nil\n\t}\n\n\tval := *cpy\n\n\treturn \u0026val\n}\n\n// cptri returns the pointer of the given integer value.\nfunc cptri(i *int) *int {\n\tif i == nil {\n\t\treturn nil\n\t}\n\n\tval := *i\n\treturn \u0026val\n}\n\n// Must panics if the given node is not fulfilled the expectation.\n// Usage:\n//\n//\tnode := Must(Unmarshal([]byte(`{\"key\": \"value\"}`))\nfunc Must(root *Node, expect error) *Node {\n\tif expect != nil {\n\t\tpanic(expect)\n\t}\n\n\treturn root\n}\n"},{"name":"node_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tnilKey *string\n\tdummyKey = \"key\"\n)\n\ntype _args struct {\n\tprev *Node\n\tbuf *buffer\n\ttyp ValueType\n\tkey **string\n}\n\ntype simpleNode struct {\n\tname string\n\tnode *Node\n}\n\nfunc TestNode_CreateNewNode(t *testing.T) {\n\trel := \u0026dummyKey\n\n\ttests := []struct {\n\t\tname string\n\t\targs _args\n\t\texpectCurr *Node\n\t\texpectErr bool\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\tname: \"child for non container type\",\n\t\t\targs: _args{\n\t\t\t\tprev: BoolNode(\"\", true),\n\t\t\t\tbuf: newBuffer(make([]byte, 10)),\n\t\t\t\ttyp: Boolean,\n\t\t\t\tkey: \u0026rel,\n\t\t\t},\n\t\t\texpectCurr: nil,\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tif tt.expectPanic {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tt.Errorf(\"%s panic occurred when not expected: %v\", tt.name, r)\n\t\t\t\t} else if tt.expectPanic {\n\t\t\t\t\tt.Errorf(\"%s expected panic but didn't occur\", tt.name)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\tgot, err := NewNode(tt.args.prev, tt.args.buf, tt.args.typ, tt.args.key)\n\t\t\tif (err != nil) != tt.expectErr {\n\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.expectErr)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif tt.expectErr {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !compareNodes(got, tt.expectCurr) {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expectCurr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Value(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\t_type ValueType\n\t\texpected interface{}\n\t\terrExpected bool\n\t}{\n\t\t{name: \"null\", data: []byte(\"null\"), _type: Null, expected: nil},\n\t\t{name: \"1\", data: []byte(\"1\"), _type: Number, expected: float64(1)},\n\t\t{name: \".1\", data: []byte(\".1\"), _type: Number, expected: float64(.1)},\n\t\t{name: \"-.1e1\", data: []byte(\"-.1e1\"), _type: Number, expected: float64(-1)},\n\t\t{name: \"string\", data: []byte(\"\\\"foo\\\"\"), _type: String, expected: \"foo\"},\n\t\t{name: \"space\", data: []byte(\"\\\"foo bar\\\"\"), _type: String, expected: \"foo bar\"},\n\t\t{name: \"true\", data: []byte(\"true\"), _type: Boolean, expected: true},\n\t\t{name: \"invalid true\", data: []byte(\"tru\"), _type: Unknown, errExpected: true},\n\t\t{name: \"invalid false\", data: []byte(\"fals\"), _type: Unknown, errExpected: true},\n\t\t{name: \"false\", data: []byte(\"false\"), _type: Boolean, expected: false},\n\t\t{name: \"e1\", data: []byte(\"e1\"), _type: Unknown, errExpected: true},\n\t\t{name: \"1a\", data: []byte(\"1a\"), _type: Unknown, errExpected: true},\n\t\t{name: \"string error\", data: []byte(\"\\\"foo\\nbar\\\"\"), _type: String, errExpected: true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tcurr := \u0026Node{\n\t\t\t\tdata: tt.data,\n\t\t\t\tnodeType: tt._type,\n\t\t\t\tborders: [2]int{0, len(tt.data)},\n\t\t\t}\n\n\t\t\tgot, err := curr.Value()\n\t\t\tif err != nil {\n\t\t\t\tif !tt.errExpected {\n\t\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.errExpected)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Delete(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{\"foo\":\"bar\"}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tfoo := root.MustKey(\"foo\")\n\tif err := foo.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error while handling foo: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif value, err := Marshal(foo); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `\"bar\"` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif foo.prev != nil {\n\t\tt.Errorf(\"foo.prev should be nil\")\n\t}\n}\n\nfunc TestNode_ObjectNode(t *testing.T) {\n\tobjs := map[string]*Node{\n\t\t\"key1\": NullNode(\"null\"),\n\t\t\"key2\": NumberNode(\"answer\", 42),\n\t\t\"key3\": StringNode(\"string\", \"foobar\"),\n\t\t\"key4\": BoolNode(\"bool\", true),\n\t}\n\n\tnode := ObjectNode(\"test\", objs)\n\n\tif len(node.next) != len(objs) {\n\t\tt.Errorf(\"ObjectNode: want %v got %v\", len(objs), len(node.next))\n\t}\n\n\tfor k, v := range objs {\n\t\tif node.next[k] == nil {\n\t\t\tt.Errorf(\"ObjectNode: want %v got %v\", v, node.next[k])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendObject(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`{\"foo\":\"bar\",\"baz\":null}`))).AppendObject(\"biz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendArray should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.AppendObject(\"baz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendObject should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if isSameObject(string(value), `\"{\"foo\":\"bar\",\"baz\":null}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif err := root.AppendObject(\"biz\", NumberNode(\"\", 42)); err != nil {\n\t\tt.Errorf(\"AppendObject returns error: %v\", err)\n\t}\n\n\tval, err := Marshal(root)\n\tif err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif isSameObject(string(val), `\"{\"foo\":\"bar\",\"baz\":null,\"biz\":42}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(val))\n\t}\n}\n\nfunc TestNode_ArrayNode(t *testing.T) {\n\tarr := []*Node{\n\t\tNullNode(\"nil\"),\n\t\tNumberNode(\"num\", 42),\n\t\tStringNode(\"str\", \"foobar\"),\n\t\tBoolNode(\"bool\", true),\n\t}\n\n\tnode := ArrayNode(\"test\", arr)\n\n\tif len(node.next) != len(arr) {\n\t\tt.Errorf(\"ArrayNode: want %v got %v\", len(arr), len(node.next))\n\t}\n\n\tfor i, v := range arr {\n\t\tif node.next[strconv.Itoa(i)] == nil {\n\t\t\tt.Errorf(\"ArrayNode: want %v got %v\", v, node.next[strconv.Itoa(i)])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendArray(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`))).AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif err := root.AppendArray(\n\t\tNumberNode(\"\", 1),\n\t\tStringNode(\"\", \"foo\"),\n\t\tMust(Unmarshal([]byte(`[0,1,null,true,\"example\"]`))),\n\t\tMust(Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123}`))),\n\t); err != nil {\n\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null,1,\"foo\",[0,1,null,true,\"example\"],{\"foo\": true, \"bar\": null, \"baz\": 123}]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n}\n\n/******** value getter ********/\n\nfunc TestNode_GetBool(t *testing.T) {\n\troot, err := Unmarshal([]byte(`true`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetBool()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetBool(): %s\", err.Error())\n\t}\n\n\tif !value {\n\t\tt.Errorf(\"root.GetBool() is corrupted\")\n\t}\n}\n\nfunc TestNode_GetBool_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"literally null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetBool(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"true\", BoolNode(\"\", true)},\n\t\t{\"false\", BoolNode(\"\", false)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif !tt.node.IsBool() {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool_With_Unmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson []byte\n\t\twant bool\n\t}{\n\t\t{\"true\", []byte(\"true\"), true},\n\t\t{\"false\", []byte(\"false\"), true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.json)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\t\t}\n\n\t\t\tif root.IsBool() != tt.want {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nvar nullJson = []byte(`null`)\n\nfunc TestNode_GetNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue, err := root.GetNull()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting null, %s\", err)\n\t}\n\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNull_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"number node is null\", NumberNode(\"\", 42)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNull(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue := root.MustNull()\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNumeric_Float(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123.456`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123.456) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123.456, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Scientific_Notation(t *testing.T) {\n\troot, err := Unmarshal([]byte(`1e3`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(1000) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 1000, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_With_Unmarshal(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"string node\", StringNode(\"\", \"123\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNumeric(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetString(t *testing.T) {\n\troot, err := Unmarshal([]byte(`\"123foobar 3456\"`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t}\n\n\tvalue, err := root.GetString()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetString(): %s\", err)\n\t}\n\n\tif value != \"123foobar 3456\" {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %s\", value))\n\t}\n}\n\nfunc TestNode_GetString_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetString(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t}{\n\t\t{\"foo\", []byte(`\"foo\"`)},\n\t\t{\"foo bar\", []byte(`\"foo bar\"`)},\n\t\t{\"\", []byte(`\"\"`)},\n\t\t{\"안녕하세요\", []byte(`\"안녕하세요\"`)},\n\t\t{\"こんにちは\", []byte(`\"こんにちは\"`)},\n\t\t{\"你好\", []byte(`\"你好\"`)},\n\t\t{\"one \\\"encoded\\\" string\", []byte(`\"one \\\"encoded\\\" string\"`)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.data)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\t\t}\n\n\t\t\tvalue := root.MustString()\n\t\t\tif value != tt.name {\n\t\t\t\tt.Errorf(\"value is not matched. expected: %s, got: %s\", tt.name, value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_Array(t *testing.T) {\n\troot, err := Unmarshal([]byte(\" [1,[\\\"1\\\",[1,[1,2,3]]]]\\r\\n\"))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t}\n\n\tif root == nil {\n\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(\"Error on Unmarshal: wrong type\")\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err)\n\t} else if len(array) != 2 {\n\t\tt.Errorf(\"expected 2 elements, got %d\", len(array))\n\t} else if val, err := array[0].GetNumeric(); err != nil {\n\t\tt.Errorf(\"value of array[0] is not numeric. got: %v\", array[0].value)\n\t} else if val != 1 {\n\t\tt.Errorf(\"Error on array[0].GetNumeric(): expected to be '1', got: %v\", val)\n\t} else if val, err := array[1].GetArray(); err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err.Error())\n\t} else if len(val) != 2 {\n\t\tt.Errorf(\"Error on array[1].GetArray(): expected 2 elements, got %d\", len(val))\n\t} else if el, err := val[0].GetString(); err != nil {\n\t\tt.Errorf(\"error occurred while getting string, %s\", err.Error())\n\t} else if el != \"1\" {\n\t\tt.Errorf(\"Error on val[0].GetString(): expected to be '1', got: %s\", el)\n\t}\n}\n\nvar sampleArr = []byte(`[-1, 2, 3, 4, 5, 6]`)\n\nfunc TestNode_GetArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetArray(): %s\", err)\n\t}\n\n\tif len(array) != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"length is not matched. expected: 3, got: %d\", len(array)))\n\t}\n\n\tfor i, node := range array {\n\t\tfor j, val := range []int{-1, 2, 3, 4, 5, 6} {\n\t\t\tif i == j {\n\t\t\t\tif v, err := node.GetNumeric(); err != nil {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"Error on node.GetNumeric(): %s\", err))\n\t\t\t\t} else if v != float64(val) {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: %d, got: %v\", val, v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNode_GetArray_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetArray(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(ufmt.Sprintf(\"Must be an array. got: %s\", root.Type().String()))\n\t}\n}\n\nfunc TestNode_ArrayEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []int\n\t}{\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tjson: `[]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"single element\",\n\t\t\tjson: `[42]`,\n\t\t\texpected: []int{42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements\",\n\t\t\tjson: `[1, 2, 3, 4, 5]`,\n\t\t\texpected: []int{1, 2, 3, 4, 5},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements but all values are same\",\n\t\t\tjson: `[1, 1, 1, 1, 1]`,\n\t\t\texpected: []int{1, 1, 1, 1, 1},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements with non-numeric values\",\n\t\t\tjson: `[\"a\", \"b\", \"c\", \"d\", \"e\"]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"non-array node\",\n\t\t\tjson: `{\"not\": \"an array\"}`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"array containing numeric and non-numeric elements\",\n\t\t\tjson: `[\"1\", 2, 3, \"4\", 5, \"6\"]`,\n\t\t\texpected: []int{2, 3, 5},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tvar result []int // callback result\n\t\t\troot.ArrayEach(func(index int, element *Node) {\n\t\t\t\tif val, err := strconv.Atoi(element.String()); err == nil {\n\t\t\t\t\tresult = append(result, val)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d elements, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor i, val := range result {\n\t\t\t\tif val != tc.expected[i] {\n\t\t\t\t\tt.Errorf(\"%s: expected value at index %d to be %d, got %d\", tc.name, i, tc.expected[i], val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Key(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123, \"biz\": [1,2,3]}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tobj := root.MustObject()\n\tfor key, node := range obj {\n\t\tif key != node.Key() {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", node.Key(), key)\n\t\t}\n\t}\n\n\tkeys := []string{\"foo\", \"bar\", \"baz\", \"biz\"}\n\tfor _, key := range keys {\n\t\tif obj[key].Key() != key {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", obj[key].Key(), key)\n\t\t}\n\t}\n\n\t// TODO: resolve stack overflow\n\t// if root.MustKey(\"foo\").Clone().Key() != \"\" {\n\t// \tt.Errorf(\"wrong key found for cloned key\")\n\t// }\n\n\tif (*Node)(nil).Key() != \"\" {\n\t\tt.Errorf(\"wrong key found for nil node\")\n\t}\n}\n\nfunc TestNode_Size(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tsize := root.Size()\n\tif size != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 6. got: %v\", size))\n\t}\n\n\tif (*Node)(nil).Size() != 0 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 0. got: %v\", (*Node)(nil).Size()))\n\t}\n}\n\nfunc TestNode_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tarr := root.MustArray()\n\tfor i, node := range arr {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_Index_Fail(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant int\n\t}{\n\t\t{\"nil node\", (*Node)(nil), -1},\n\t\t{\"null node\", NullNode(\"\"), -1},\n\t\t{\"object node\", ObjectNode(\"\", nil), -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Index(); got != tt.want {\n\t\t\t\tt.Errorf(\"Index() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetIndex(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`)))\n\texpected := []int{1, 2, 3, 4, 5, 6}\n\n\tif len(expected) != root.Size() {\n\t\tt.Errorf(\"length is not matched. expected: %d, got: %d\", len(expected), root.Size())\n\t}\n\n\t// TODO: if length exceeds, stack overflow occurs. need to fix\n\tfor i, v := range expected {\n\t\tval, err := root.GetIndex(i)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"error occurred while getting index %d, %s\", i, err)\n\t\t}\n\n\t\tif val.MustNumeric() != float64(v) {\n\t\t\tt.Errorf(\"value is not matched. expected: %d, got: %v\", v, val.MustNumeric())\n\t\t}\n\t}\n}\n\nfunc TestNode_GetIndex_InputIndex_Exceed_Original_Node_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\t_, err = root.GetIndex(10)\n\tif err == nil {\n\t\tt.Errorf(\"GetIndex should return error\")\n\t}\n}\n\nfunc TestNode_DeleteIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\texpected string\n\t\tindex int\n\t\tok bool\n\t}{\n\t\t{`null`, ``, 0, false},\n\t\t{`1`, ``, 0, false},\n\t\t{`{}`, ``, 0, false},\n\t\t{`{\"foo\":\"bar\"}`, ``, 0, false},\n\t\t{`true`, ``, 0, false},\n\t\t{`[]`, ``, 0, false},\n\t\t{`[]`, ``, -1, false},\n\t\t{`[1]`, `[]`, 0, true},\n\t\t{`[{}]`, `[]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, -1, true},\n\t\t{`[{}, [], 42]`, `[[], 42]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, 42]`, 1, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, 2, true},\n\t\t{`[{}, [], 42]`, ``, 10, false},\n\t\t{`[{}, [], 42]`, ``, -10, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot := Must(Unmarshal([]byte(tt.name)))\n\t\t\terr := root.DeleteIndex(tt.index)\n\t\t\tif err != nil \u0026\u0026 tt.ok {\n\t\t\t\tt.Errorf(\"DeleteIndex returns error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetKey(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tvalue, err := root.GetKey(\"foo\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\tif value.MustBool() != true {\n\t\tt.Errorf(\"value is not matched. expected: true, got: %v\", value.MustBool())\n\t}\n\n\tvalue, err = root.GetKey(\"bar\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\t_, err = root.GetKey(\"baz\")\n\tif err == nil {\n\t\tt.Errorf(\"key baz is not exist. must be failed\")\n\t}\n\n\tif value.MustNull() != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value.MustNull())\n\t}\n}\n\nfunc TestNode_GetKey_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetKey(\"\"); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetUniqueKeyList(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname: \"simple foo/bar\",\n\t\t\tjson: `{\"foo\": true, \"bar\": null}`,\n\t\t\texpected: []string{\"foo\", \"bar\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tjson: `{\n\t\t\t\t\"outer\": {\n\t\t\t\t\t\"inner\": {\n\t\t\t\t\t\t\"key\": \"value\"\n\t\t\t\t\t},\n\t\t\t\t\t\"array\": [1, 2, 3]\n\t\t\t\t},\n\t\t\t\t\"another\": \"item\"\n\t\t\t}`,\n\t\t\texpected: []string{\"outer\", \"inner\", \"key\", \"array\", \"another\"},\n\t\t},\n\t\t{\n\t\t\tname: \"complex object\",\n\t\t\tjson: `{\n\t\t\t\t\"Image\": {\n\t\t\t\t\t\"Width\": 800,\n\t\t\t\t\t\"Height\": 600,\n\t\t\t\t\t\"Title\": \"View from 15th Floor\",\n\t\t\t\t\t\"Thumbnail\": {\n\t\t\t\t\t\t\"Url\": \"http://www.example.com/image/481989943\",\n\t\t\t\t\t\t\"Height\": 125,\n\t\t\t\t\t\t\"Width\": 100\n\t\t\t\t\t},\n\t\t\t\t\t\"Animated\": false,\n\t\t\t\t\t\"IDs\": [116, 943, 234, 38793]\n\t\t\t\t}\n\t\t\t}`,\n\t\t\texpected: []string{\"Image\", \"Width\", \"Height\", \"Title\", \"Thumbnail\", \"Url\", \"Animated\", \"IDs\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tt.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"error occurred while unmarshal\")\n\t\t\t}\n\n\t\t\tvalue := root.UniqueKeyLists()\n\t\t\tif len(value) != len(tt.expected) {\n\t\t\t\tt.Errorf(\"%s length must be %v. got: %v. retrieved keys: %s\", tt.name, len(tt.expected), len(value), value)\n\t\t\t}\n\n\t\t\tfor _, key := range value {\n\t\t\t\tif !contains(tt.expected, key) {\n\t\t\t\t\tt.Errorf(\"EachKey() must be in %v. got: %v\", tt.expected, key)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: resolve stack overflow\nfunc TestNode_IsEmpty(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\texpected bool\n\t}{\n\t\t{\"nil node\", (*Node)(nil), false}, // nil node is not empty.\n\t\t// {\"null node\", NullNode(\"\"), true},\n\t\t{\"empty object\", ObjectNode(\"\", nil), true},\n\t\t{\"empty array\", ArrayNode(\"\", nil), true},\n\t\t{\"non-empty object\", ObjectNode(\"\", map[string]*Node{\"foo\": BoolNode(\"foo\", true)}), false},\n\t\t{\"non-empty array\", ArrayNode(\"\", []*Node{BoolNode(\"0\", true)}), false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Empty(); got != tt.expected {\n\t\t\t\tt.Errorf(\"%s = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Index_EmptyList(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tarray := root.MustArray()\n\tfor i, node := range array {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_GetObject(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true,\"bar\": null}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetObject()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetObject(): %s\", err.Error())\n\t}\n\n\tif _, ok := value[\"foo\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: foo\")\n\t}\n\n\tif _, ok := value[\"bar\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: bar\")\n\t}\n}\n\nfunc TestNode_GetObject_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"get object from null node\", NullNode(\"\")},\n\t\t{\"not object node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetObject(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ObjectEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected map[string]int\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t\t{\n\t\t\tname: \"single key-value pair\",\n\t\t\tjson: `{\"key\": 42}`,\n\t\t\texpected: map[string]int{\"key\": 42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs\",\n\t\t\tjson: `{\"one\": 1, \"two\": 2, \"three\": 3}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"two\": 2, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs with some non-numeric values\",\n\t\t\tjson: `{\"one\": 1, \"two\": \"2\", \"three\": 3, \"four\": \"4\"}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"non-object node\",\n\t\t\tjson: `[\"not\", \"an\", \"object\"]`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tresult := make(map[string]int)\n\t\t\troot.ObjectEach(func(key string, value *Node) {\n\t\t\t\t// extract integer values from the object\n\t\t\t\tif val, err := strconv.Atoi(value.String()); err == nil {\n\t\t\t\t\tresult[key] = val\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d key-value pairs, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor key, val := range tc.expected {\n\t\t\t\tif result[key] != val {\n\t\t\t\t\tt.Errorf(\"%s: expected value for key %s to be %d, got %d\", tc.name, key, val, result[key])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ExampleMust(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot := Must(Unmarshal(data))\n\tif root.Size() != 1 {\n\t\tt.Errorf(\"root.Size() must be 1. got: %v\", root.Size())\n\t}\n\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n\t// Output:\n\t// Object has 1 inheritors inside\n}\n\n// Calculate AVG price from different types of objects, JSON from: https://goessner.net/articles/JsonPath/index.html#e3\nfunc TestExampleUnmarshal(t *testing.T) {\n\tdata := []byte(`{ \"store\": {\n \"book\": [ \n { \"category\": \"reference\",\n \"author\": \"Nigel Rees\",\n \"title\": \"Sayings of the Century\",\n \"price\": 8.95\n },\n { \"category\": \"fiction\",\n \"author\": \"Evelyn Waugh\",\n \"title\": \"Sword of Honour\",\n \"price\": 12.99\n },\n { \"category\": \"fiction\",\n \"author\": \"Herman Melville\",\n \"title\": \"Moby Dick\",\n \"isbn\": \"0-553-21311-3\",\n \"price\": 8.99\n },\n { \"category\": \"fiction\",\n \"author\": \"J. R. R. Tolkien\",\n \"title\": \"The Lord of the Rings\",\n \"isbn\": \"0-395-19395-8\",\n \"price\": 22.99\n }\n ],\n \"bicycle\": { \"color\": \"red\",\n \"price\": 19.95\n },\n \"tools\": null\n }\n}`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred when unmarshal\")\n\t}\n\n\tstore := root.MustKey(\"store\").MustObject()\n\n\tvar prices float64\n\tsize := 0\n\tfor _, objects := range store {\n\t\tif objects.IsArray() \u0026\u0026 objects.Size() \u003e 0 {\n\t\t\tsize += objects.Size()\n\t\t\tfor _, object := range objects.MustArray() {\n\t\t\t\tprices += object.MustKey(\"price\").MustNumeric()\n\t\t\t}\n\t\t} else if objects.IsObject() \u0026\u0026 objects.HasKey(\"price\") {\n\t\t\tsize++\n\t\t\tprices += objects.MustKey(\"price\").MustNumeric()\n\t\t}\n\t}\n\n\tresult := int(prices / float64(size))\n\tufmt.Sprintf(\"AVG price: %d\", result)\n}\n\nfunc TestNode_ExampleMust_panic(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t}\n\t}()\n\tdata := []byte(`{]`)\n\troot := Must(Unmarshal(data))\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n}\n\nfunc TestNode_Path(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tif root.Path() != \"$\" {\n\t\tt.Errorf(\"Wrong root.Path()\")\n\t}\n\n\telement := root.MustKey(\"Image\").MustKey(\"Thumbnail\").MustKey(\"Url\")\n\tif element.Path() != \"$['Image']['Thumbnail']['Url']\" {\n\t\tt.Errorf(\"Wrong path found: %s\", element.Path())\n\t}\n\n\tif (*Node)(nil).Path() != \"\" {\n\t\tt.Errorf(\"Wrong (nil).Path()\")\n\t}\n}\n\nfunc TestNode_Path2(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"Node with key\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tkey: func() *string { s := \"key\"; return \u0026s }(),\n\t\t\t},\n\t\t\twant: \"$['key']\",\n\t\t},\n\t\t{\n\t\t\tname: \"Node with index\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tindex: func() *int { i := 1; return \u0026i }(),\n\t\t\t},\n\t\t\twant: \"$[1]\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Path(); got != tt.want {\n\t\t\t\tt.Errorf(\"Path() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Root(t *testing.T) {\n\troot := \u0026Node{}\n\tchild := \u0026Node{prev: root}\n\tgrandChild := \u0026Node{prev: child}\n\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant *Node\n\t}{\n\t\t{\n\t\t\tname: \"Root node\",\n\t\t\tnode: root,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Child node\",\n\t\t\tnode: child,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Grandchild node\",\n\t\t\tnode: grandChild,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Node is nil\",\n\t\t\tnode: nil,\n\t\t\twant: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.root(); got != tt.want {\n\t\t\t\tt.Errorf(\"root() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc contains(slice []string, item string) bool {\n\tfor _, a := range slice {\n\t\tif a == item {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// ignore the sequence of keys by ordering them.\n// need to avoid import encoding/json and reflect package.\n// because gno does not support them for now.\n// TODO: use encoding/json to compare the result after if possible in gno.\nfunc isSameObject(a, b string) bool {\n\taPairs := strings.Split(strings.Trim(a, \"{}\"), \",\")\n\tbPairs := strings.Split(strings.Trim(b, \"{}\"), \",\")\n\n\taMap := make(map[string]string)\n\tbMap := make(map[string]string)\n\tfor _, pair := range aPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\taMap[key] = value\n\t}\n\tfor _, pair := range bPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\tbMap[key] = value\n\t}\n\n\taKeys := make([]string, 0, len(aMap))\n\tbKeys := make([]string, 0, len(bMap))\n\tfor k := range aMap {\n\t\taKeys = append(aKeys, k)\n\t}\n\n\tfor k := range bMap {\n\t\tbKeys = append(bKeys, k)\n\t}\n\n\tsort.Strings(aKeys)\n\tsort.Strings(bKeys)\n\n\tif len(aKeys) != len(bKeys) {\n\t\treturn false\n\t}\n\n\tfor i := range aKeys {\n\t\tif aKeys[i] != bKeys[i] {\n\t\t\treturn false\n\t\t}\n\n\t\tif aMap[aKeys[i]] != bMap[bKeys[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc compareNodes(n1, n2 *Node) bool {\n\tif n1 == nil || n2 == nil {\n\t\treturn n1 == n2\n\t}\n\n\tif n1.key != n2.key {\n\t\treturn false\n\t}\n\n\tif !bytes.Equal(n1.data, n2.data) {\n\t\treturn false\n\t}\n\n\tif n1.index != n2.index {\n\t\treturn false\n\t}\n\n\tif n1.borders != n2.borders {\n\t\treturn false\n\t}\n\n\tif n1.modified != n2.modified {\n\t\treturn false\n\t}\n\n\tif n1.nodeType != n2.nodeType {\n\t\treturn false\n\t}\n\n\tif !compareNodes(n1.prev, n2.prev) {\n\t\treturn false\n\t}\n\n\tif len(n1.next) != len(n2.next) {\n\t\treturn false\n\t}\n\n\tfor k, v := range n1.next {\n\t\tif !compareNodes(v, n2.next[k]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"parser.gno","body":"package json\n\nimport (\n\t\"bytes\"\n)\n\nconst (\n\tunescapeStackBufSize = 64\n\tabsMinInt64 = 1 \u003c\u003c 63\n\tmaxInt64 = absMinInt64 - 1\n\tmaxUint64 = 1\u003c\u003c64 - 1\n)\n\n// PaseStringLiteral parses a string from the given byte slice.\nfunc ParseStringLiteral(data []byte) (string, error) {\n\tvar buf [unescapeStackBufSize]byte\n\n\tbf, err := Unescape(data, buf[:])\n\tif err != nil {\n\t\treturn \"\", errInvalidStringInput\n\t}\n\n\treturn string(bf), nil\n}\n\n// ParseBoolLiteral parses a boolean value from the given byte slice.\nfunc ParseBoolLiteral(data []byte) (bool, error) {\n\tswitch {\n\tcase bytes.Equal(data, trueLiteral):\n\t\treturn true, nil\n\tcase bytes.Equal(data, falseLiteral):\n\t\treturn false, nil\n\tdefault:\n\t\treturn false, errMalformedBooleanValue\n\t}\n}\n"},{"name":"parser_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseStringLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t\tisError bool\n\t}{\n\t\t{`\"Hello, World!\"`, \"\\\"Hello, World!\\\"\", false},\n\t\t{`\\uFF11`, \"\\uFF11\", false},\n\t\t{`\\uFFFF`, \"\\uFFFF\", false},\n\t\t{`true`, \"true\", false},\n\t\t{`false`, \"false\", false},\n\t\t{`\\uDF00`, \"\", true},\n\t}\n\n\tfor i, tt := range tests {\n\t\ts, err := ParseStringLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif s != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%s, but actual=%s\", i, tt.expected, s)\n\t\t}\n\t}\n}\n\nfunc TestParseBoolLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected bool\n\t\tisError bool\n\t}{\n\t\t{`true`, true, false},\n\t\t{`false`, false, false},\n\t\t{`TRUE`, false, true},\n\t\t{`FALSE`, false, true},\n\t\t{`foo`, false, true},\n\t\t{`\"true\"`, false, true},\n\t\t{`\"false\"`, false, true},\n\t}\n\n\tfor i, tt := range tests {\n\t\tb, err := ParseBoolLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif b != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%t, but actual=%t\", i, tt.expected, b)\n\t\t}\n\t}\n}\n"},{"name":"path.gno","body":"package json\n\nimport (\n\t\"errors\"\n)\n\n// ParsePath takes a JSONPath string and returns a slice of strings representing the path segments.\nfunc ParsePath(path string) ([]string, error) {\n\tbuf := newBuffer([]byte(path))\n\tresult := make([]string, 0)\n\n\tfor {\n\t\tb, err := buf.current()\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch {\n\t\tcase b == dollarSign || b == atSign:\n\t\t\tresult = append(result, string(b))\n\t\t\tbuf.step()\n\n\t\tcase b == dot:\n\t\t\tbuf.step()\n\n\t\t\tif next, _ := buf.current(); next == dot {\n\t\t\t\tbuf.step()\n\t\t\t\tresult = append(result, \"..\")\n\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t} else {\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t}\n\n\t\tcase b == bracketOpen:\n\t\t\tstart := buf.index\n\t\t\tbuf.step()\n\n\t\t\tfor {\n\t\t\t\tif buf.index \u003e= buf.length || buf.data[buf.index] == bracketClose {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tbuf.step()\n\t\t\t}\n\n\t\t\tif buf.index \u003e= buf.length {\n\t\t\t\treturn nil, errors.New(\"unexpected end of path\")\n\t\t\t}\n\n\t\t\tsegment := string(buf.sliceFromIndices(start+1, buf.index))\n\t\t\tresult = append(result, segment)\n\n\t\t\tbuf.step()\n\n\t\tdefault:\n\t\t\tbuf.step()\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// extractNextSegment extracts the segment from the current index\n// to the next significant character and adds it to the resulting slice.\nfunc extractNextSegment(buf *buffer, result *[]string) {\n\tstart := buf.index\n\tbuf.skipToNextSignificantToken()\n\n\tif buf.index \u003c= start {\n\t\treturn\n\t}\n\n\tsegment := string(buf.sliceFromIndices(start, buf.index))\n\tif segment != \"\" {\n\t\t*result = append(*result, segment)\n\t}\n}\n"},{"name":"path_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseJSONPath(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\texpected []string\n\t}{\n\t\t{name: \"Empty string path\", path: \"\", expected: []string{}},\n\t\t{name: \"Root only path\", path: \"$\", expected: []string{\"$\"}},\n\t\t{name: \"Root with dot path\", path: \"$.\", expected: []string{\"$\"}},\n\t\t{name: \"All objects in path\", path: \"$..\", expected: []string{\"$\", \"..\"}},\n\t\t{name: \"Only children in path\", path: \"$.*\", expected: []string{\"$\", \"*\"}},\n\t\t{name: \"All objects' children in path\", path: \"$..*\", expected: []string{\"$\", \"..\", \"*\"}},\n\t\t{name: \"Simple dot notation path\", path: \"$.root.element\", expected: []string{\"$\", \"root\", \"element\"}},\n\t\t{name: \"Complex dot notation path with wildcard\", path: \"$.root.*.element\", expected: []string{\"$\", \"root\", \"*\", \"element\"}},\n\t\t{name: \"Path with array wildcard\", path: \"$.phoneNumbers[*].type\", expected: []string{\"$\", \"phoneNumbers\", \"*\", \"type\"}},\n\t\t{name: \"Path with filter expression\", path: \"$.store.book[?(@.price \u003c 10)].title\", expected: []string{\"$\", \"store\", \"book\", \"?(@.price \u003c 10)\", \"title\"}},\n\t\t{name: \"Path with formula\", path: \"$..phoneNumbers..('ty' + 'pe')\", expected: []string{\"$\", \"..\", \"phoneNumbers\", \"..\", \"('ty' + 'pe')\"}},\n\t\t{name: \"Simple bracket notation path\", path: \"$['root']['element']\", expected: []string{\"$\", \"'root'\", \"'element'\"}},\n\t\t{name: \"Complex bracket notation path with wildcard\", path: \"$['root'][*]['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Bracket notation path with integer index\", path: \"$['store']['book'][0]['title']\", expected: []string{\"$\", \"'store'\", \"'book'\", \"0\", \"'title'\"}},\n\t\t{name: \"Complex path with wildcard in bracket notation\", path: \"$['root'].*['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot after bracket\", path: \"$.['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot before bracket\", path: \"$['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Single character path with root\", path: \"$.a\", expected: []string{\"$\", \"a\"}},\n\t\t{name: \"Multiple characters path with root\", path: \"$.abc\", expected: []string{\"$\", \"abc\"}},\n\t\t{name: \"Multiple segments path with root\", path: \"$.a.b.c\", expected: []string{\"$\", \"a\", \"b\", \"c\"}},\n\t\t{name: \"Multiple segments path with wildcard and root\", path: \"$.a.*.c\", expected: []string{\"$\", \"a\", \"*\", \"c\"}},\n\t\t{name: \"Multiple segments path with filter and root\", path: \"$.a[?(@.b == 'c')].d\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\"}},\n\t\t{name: \"Complex path with multiple filters\", path: \"$.a[?(@.b == 'c')].d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Complex path with multiple filters and wildcards\", path: \"$.a[?(@.b == 'c')].*.d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"*\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Path with array index and root\", path: \"$.a[0].b\", expected: []string{\"$\", \"a\", \"0\", \"b\"}},\n\t\t{name: \"Path with multiple array indices and root\", path: \"$.a[0].b[1].c\", expected: []string{\"$\", \"a\", \"0\", \"b\", \"1\", \"c\"}},\n\t\t{name: \"Path with array index, wildcard and root\", path: \"$.a[0].*.c\", expected: []string{\"$\", \"a\", \"0\", \"*\", \"c\"}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\treult, _ := ParsePath(tt.path)\n\t\t\tif !isEqualSlice(reult, tt.expected) {\n\t\t\t\tt.Errorf(\"ParsePath(%s) expected: %v, got: %v\", tt.path, tt.expected, reult)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc isEqualSlice(a, b []string) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"token.gno","body":"package json\n\nconst (\n\tbracketOpen = '['\n\tbracketClose = ']'\n\tparenOpen = '('\n\tparenClose = ')'\n\tcurlyOpen = '{'\n\tcurlyClose = '}'\n\tcomma = ','\n\tdot = '.'\n\tcolon = ':'\n\tbackTick = '`'\n\tsingleQuote = '\\''\n\tdoubleQuote = '\"'\n\temptyString = \"\"\n\twhiteSpace = ' '\n\tplus = '+'\n\tminus = '-'\n\taesterisk = '*'\n\tbang = '!'\n\tquestion = '?'\n\tnewLine = '\\n'\n\ttab = '\\t'\n\tcarriageReturn = '\\r'\n\tformFeed = '\\f'\n\tbackSpace = '\\b'\n\tslash = '/'\n\tbackSlash = '\\\\'\n\tunderScore = '_'\n\tdollarSign = '$'\n\tatSign = '@'\n\tandSign = '\u0026'\n\torSign = '|'\n)\n\nvar (\n\ttrueLiteral = []byte(\"true\")\n\tfalseLiteral = []byte(\"false\")\n\tnullLiteral = []byte(\"null\")\n)\n\ntype ValueType int\n\nconst (\n\tNotExist ValueType = iota\n\tString\n\tNumber\n\tFloat\n\tObject\n\tArray\n\tBoolean\n\tNull\n\tUnknown\n)\n\nfunc (v ValueType) String() string {\n\tswitch v {\n\tcase NotExist:\n\t\treturn \"not-exist\"\n\tcase String:\n\t\treturn \"string\"\n\tcase Number:\n\t\treturn \"number\"\n\tcase Object:\n\t\treturn \"object\"\n\tcase Array:\n\t\treturn \"array\"\n\tcase Boolean:\n\t\treturn \"boolean\"\n\tcase Null:\n\t\treturn \"null\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lbCXbPuXcBvjoBEaJt0NpiYFzxxQyoxAhCwc9MDSSAFGc12Y+ZZUUyVw6C1OoHMqr0XWN/seKBqEADnwwfL3Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"keystore","path":"gno.land/r/demo/keystore","files":[{"name":"keystore.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar data avl.Tree\n\nconst (\n\tBaseURL = \"/r/demo/keystore\"\n\tStatusOK = \"ok\"\n\tStatusNoUser = \"user not found\"\n\tStatusNotFound = \"key not found\"\n\tStatusNoWriteAccess = \"no write access\"\n\tStatusCouldNotExecute = \"could not execute\"\n\tStatusNoDatabases = \"no databases\"\n)\n\nfunc init() {\n\tdata = avl.Tree{} // user -\u003e avl.Tree\n}\n\n// KeyStore stores the owner-specific avl.Tree\ntype KeyStore struct {\n\tOwner std.Address\n\tData avl.Tree\n}\n\n// Set will set a value to a key\n// requires write-access (original caller must be caller)\nfunc Set(k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn set(origOwner.String(), k, v)\n}\n\n// set (private) will set a key to value\n// requires write-access (original caller must be caller)\nfunc set(owner, k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\tkeystore.Data.Set(k, v)\n\treturn StatusOK\n}\n\n// Remove removes a key\n// requires write-access (original owner must be caller)\nfunc Remove(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// remove (private) removes a key\n// requires write-access (original owner must be caller)\nfunc remove(owner, k string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\t_, removed := keystore.Data.Remove(k)\n\tif !removed {\n\t\treturn StatusCouldNotExecute\n\t}\n\treturn StatusOK\n}\n\n// Get returns a value for a key\n// read-only\nfunc Get(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// get (private) returns a value for a key\n// read-only\nfunc get(owner, k string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\tval, found := keystore.Data.Get(k)\n\tif !found {\n\t\treturn StatusNotFound\n\t}\n\treturn val.(string)\n}\n\n// Size returns size of database\n// read-only\nfunc Size() string {\n\torigOwner := std.GetOrigCaller()\n\treturn size(origOwner.String())\n}\n\nfunc size(owner string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\treturn ufmt.Sprintf(\"%d\", keystore.Data.Size())\n}\n\n// Render provides read-only url access to the functions of the keystore\n// \"\" -\u003e show all keystores listed by owner\n// \"owner\" -\u003e show all keys for that owner's keystore\n// \"owner:size\" -\u003e returns size of owner's keystore\n// \"owner:get:key\" -\u003e show value for that key in owner's keystore\nfunc Render(p string) string {\n\tvar response string\n\targs := strings.Split(p, \":\")\n\tnumArgs := len(args)\n\tif p == \"\" {\n\t\tnumArgs = 0\n\t}\n\tswitch numArgs {\n\tcase 0:\n\t\tif data.Size() == 0 {\n\t\t\treturn StatusNoDatabases\n\t\t}\n\t\tdata.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tks := value.(*KeyStore)\n\t\t\tresponse += ufmt.Sprintf(\"- [%s](%s:%s) (%d keys)\\n\", ks.Owner, BaseURL, ks.Owner, ks.Data.Size())\n\t\t\treturn false\n\t\t})\n\tcase 1:\n\t\towner := args[0]\n\t\tkeystoreInterface, exists := data.Get(owner)\n\t\tif !exists {\n\t\t\treturn StatusNoUser\n\t\t}\n\t\tks := keystoreInterface.(*KeyStore)\n\t\ti := 0\n\t\tresponse += ufmt.Sprintf(\"# %s database\\n\\n\", ks.Owner)\n\t\tks.Data.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tresponse += ufmt.Sprintf(\"- %d [%s](%s:%s:get:%s)\\n\", i, key, BaseURL, ks.Owner, key)\n\t\t\ti++\n\t\t\treturn false\n\t\t})\n\tcase 2:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tif cmd == \"size\" {\n\t\t\treturn size(owner)\n\t\t}\n\tcase 3:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tkey := args[2]\n\t\tif cmd == \"get\" {\n\t\t\treturn get(owner, key)\n\t\t}\n\t}\n\n\treturn response\n}\n"},{"name":"keystore_test.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\ttt := []struct {\n\t\tcaller std.Address\n\t\towner std.Address\n\t\tps []string\n\t\texp string\n\t}{\n\t\t// can set database if the owner is the caller\n\t\t{author1, author1, []string{\"set\", \"hello\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hello\", \"world\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\t\t// only owner can remove\n\t\t{author1, author1, []string{\"remove\", \"hi\"}, StatusOK},\n\t\t{author1, author1, []string{\"get\", \"hi\"}, StatusNotFound},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t// add back\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\n\t\t// different owner has different database\n\t\t{author2, author2, []string{\"set\", \"hello\", \"universe\"}, StatusOK},\n\t\t// either author can get the other info\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// either author can get the other info\n\t\t{author2, author1, []string{\"get\", \"hello\"}, \"world\"},\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// anyone can view the databases\n\t\t{author1, author2, []string{}, `- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/keystore:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6) (2 keys)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00) (1 keys)`},\n\t\t// anyone can view the keys in a database\n\t\t{author1, author2, []string{\"\"}, `# g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00 database\n\n- 0 [hello](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00:get:hello)`},\n\t}\n\tfor _, tc := range tt {\n\t\tp := \"\"\n\t\tif len(tc.ps) \u003e 0 {\n\t\t\tp = tc.owner.String()\n\t\t\tfor i, psv := range tc.ps {\n\t\t\t\tp += \":\" + psv\n\t\t\t}\n\t\t}\n\t\tp = strings.TrimSuffix(p, \":\")\n\t\tt.Run(p, func(t *testing.T) {\n\t\t\tstd.TestSetOrigCaller(tc.caller)\n\t\t\tvar act string\n\t\t\tif len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"set\" {\n\t\t\t\tact = strings.TrimSpace(Set(tc.ps[1], tc.ps[2]))\n\t\t\t} else if len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"remove\" {\n\t\t\t\tact = strings.TrimSpace(Remove(tc.ps[1]))\n\t\t\t} else {\n\t\t\t\tact = strings.TrimSpace(Render(p))\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tc.exp, act, ufmt.Sprintf(\"%v -\u003e '%s'\", tc.ps, p))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SfdvRDnquS6GnHEZMawTq1P4NOyBnqwavfW7dWk3GuyiZf9uozuWNKr75eIWNg5dWpnST0mibSLEUIy8ESUhAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"keystore","path":"gno.land/r/demo/keystore","files":[{"name":"keystore.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar data avl.Tree\n\nconst (\n\tBaseURL = \"/r/demo/keystore\"\n\tStatusOK = \"ok\"\n\tStatusNoUser = \"user not found\"\n\tStatusNotFound = \"key not found\"\n\tStatusNoWriteAccess = \"no write access\"\n\tStatusCouldNotExecute = \"could not execute\"\n\tStatusNoDatabases = \"no databases\"\n)\n\nfunc init() {\n\tdata = avl.Tree{} // user -\u003e avl.Tree\n}\n\n// KeyStore stores the owner-specific avl.Tree\ntype KeyStore struct {\n\tOwner std.Address\n\tData avl.Tree\n}\n\n// Set will set a value to a key\n// requires write-access (original caller must be caller)\nfunc Set(k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn set(origOwner.String(), k, v)\n}\n\n// set (private) will set a key to value\n// requires write-access (original caller must be caller)\nfunc set(owner, k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\tkeystore.Data.Set(k, v)\n\treturn StatusOK\n}\n\n// Remove removes a key\n// requires write-access (original owner must be caller)\nfunc Remove(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// remove (private) removes a key\n// requires write-access (original owner must be caller)\nfunc remove(owner, k string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\t_, removed := keystore.Data.Remove(k)\n\tif !removed {\n\t\treturn StatusCouldNotExecute\n\t}\n\treturn StatusOK\n}\n\n// Get returns a value for a key\n// read-only\nfunc Get(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// get (private) returns a value for a key\n// read-only\nfunc get(owner, k string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\tval, found := keystore.Data.Get(k)\n\tif !found {\n\t\treturn StatusNotFound\n\t}\n\treturn val.(string)\n}\n\n// Size returns size of database\n// read-only\nfunc Size() string {\n\torigOwner := std.GetOrigCaller()\n\treturn size(origOwner.String())\n}\n\nfunc size(owner string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\treturn ufmt.Sprintf(\"%d\", keystore.Data.Size())\n}\n\n// Render provides read-only url access to the functions of the keystore\n// \"\" -\u003e show all keystores listed by owner\n// \"owner\" -\u003e show all keys for that owner's keystore\n// \"owner:size\" -\u003e returns size of owner's keystore\n// \"owner:get:key\" -\u003e show value for that key in owner's keystore\nfunc Render(p string) string {\n\tvar response string\n\targs := strings.Split(p, \":\")\n\tnumArgs := len(args)\n\tif p == \"\" {\n\t\tnumArgs = 0\n\t}\n\tswitch numArgs {\n\tcase 0:\n\t\tif data.Size() == 0 {\n\t\t\treturn StatusNoDatabases\n\t\t}\n\t\tdata.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tks := value.(*KeyStore)\n\t\t\tresponse += ufmt.Sprintf(\"- [%s](%s:%s) (%d keys)\\n\", ks.Owner, BaseURL, ks.Owner, ks.Data.Size())\n\t\t\treturn false\n\t\t})\n\tcase 1:\n\t\towner := args[0]\n\t\tkeystoreInterface, exists := data.Get(owner)\n\t\tif !exists {\n\t\t\treturn StatusNoUser\n\t\t}\n\t\tks := keystoreInterface.(*KeyStore)\n\t\ti := 0\n\t\tresponse += ufmt.Sprintf(\"# %s database\\n\\n\", ks.Owner)\n\t\tks.Data.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tresponse += ufmt.Sprintf(\"- %d [%s](%s:%s:get:%s)\\n\", i, key, BaseURL, ks.Owner, key)\n\t\t\ti++\n\t\t\treturn false\n\t\t})\n\tcase 2:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tif cmd == \"size\" {\n\t\t\treturn size(owner)\n\t\t}\n\tcase 3:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tkey := args[2]\n\t\tif cmd == \"get\" {\n\t\t\treturn get(owner, key)\n\t\t}\n\t}\n\n\treturn response\n}\n"},{"name":"keystore_test.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\ttt := []struct {\n\t\tcaller std.Address\n\t\towner std.Address\n\t\tps []string\n\t\texp string\n\t}{\n\t\t// can set database if the owner is the caller\n\t\t{author1, author1, []string{\"set\", \"hello\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hello\", \"world\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\t\t// only owner can remove\n\t\t{author1, author1, []string{\"remove\", \"hi\"}, StatusOK},\n\t\t{author1, author1, []string{\"get\", \"hi\"}, StatusNotFound},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t// add back\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\n\t\t// different owner has different database\n\t\t{author2, author2, []string{\"set\", \"hello\", \"universe\"}, StatusOK},\n\t\t// either author can get the other info\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// either author can get the other info\n\t\t{author2, author1, []string{\"get\", \"hello\"}, \"world\"},\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// anyone can view the databases\n\t\t{author1, author2, []string{}, `- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/keystore:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6) (2 keys)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00) (1 keys)`},\n\t\t// anyone can view the keys in a database\n\t\t{author1, author2, []string{\"\"}, `# g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00 database\n\n- 0 [hello](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00:get:hello)`},\n\t}\n\tfor _, tc := range tt {\n\t\tp := \"\"\n\t\tif len(tc.ps) \u003e 0 {\n\t\t\tp = tc.owner.String()\n\t\t\tfor i, psv := range tc.ps {\n\t\t\t\tp += \":\" + psv\n\t\t\t}\n\t\t}\n\t\tp = strings.TrimSuffix(p, \":\")\n\t\tt.Run(p, func(t *testing.T) {\n\t\t\tstd.TestSetOrigCaller(tc.caller)\n\t\t\tvar act string\n\t\t\tif len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"set\" {\n\t\t\t\tact = strings.TrimSpace(Set(tc.ps[1], tc.ps[2]))\n\t\t\t} else if len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"remove\" {\n\t\t\t\tact = strings.TrimSpace(Remove(tc.ps[1]))\n\t\t\t} else {\n\t\t\t\tact = strings.TrimSpace(Render(p))\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tc.exp, act, ufmt.Sprintf(\"%v -\u003e '%s'\", tc.ps, p))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SfdvRDnquS6GnHEZMawTq1P4NOyBnqwavfW7dWk3GuyiZf9uozuWNKr75eIWNg5dWpnST0mibSLEUIy8ESUhAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"keystore","path":"gno.land/r/demo/keystore","files":[{"name":"keystore.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar data avl.Tree\n\nconst (\n\tBaseURL = \"/r/demo/keystore\"\n\tStatusOK = \"ok\"\n\tStatusNoUser = \"user not found\"\n\tStatusNotFound = \"key not found\"\n\tStatusNoWriteAccess = \"no write access\"\n\tStatusCouldNotExecute = \"could not execute\"\n\tStatusNoDatabases = \"no databases\"\n)\n\nfunc init() {\n\tdata = avl.Tree{} // user -\u003e avl.Tree\n}\n\n// KeyStore stores the owner-specific avl.Tree\ntype KeyStore struct {\n\tOwner std.Address\n\tData avl.Tree\n}\n\n// Set will set a value to a key\n// requires write-access (original caller must be caller)\nfunc Set(k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn set(origOwner.String(), k, v)\n}\n\n// set (private) will set a key to value\n// requires write-access (original caller must be caller)\nfunc set(owner, k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\tkeystore.Data.Set(k, v)\n\treturn StatusOK\n}\n\n// Remove removes a key\n// requires write-access (original owner must be caller)\nfunc Remove(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// remove (private) removes a key\n// requires write-access (original owner must be caller)\nfunc remove(owner, k string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\t_, removed := keystore.Data.Remove(k)\n\tif !removed {\n\t\treturn StatusCouldNotExecute\n\t}\n\treturn StatusOK\n}\n\n// Get returns a value for a key\n// read-only\nfunc Get(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// get (private) returns a value for a key\n// read-only\nfunc get(owner, k string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\tval, found := keystore.Data.Get(k)\n\tif !found {\n\t\treturn StatusNotFound\n\t}\n\treturn val.(string)\n}\n\n// Size returns size of database\n// read-only\nfunc Size() string {\n\torigOwner := std.GetOrigCaller()\n\treturn size(origOwner.String())\n}\n\nfunc size(owner string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\treturn ufmt.Sprintf(\"%d\", keystore.Data.Size())\n}\n\n// Render provides read-only url access to the functions of the keystore\n// \"\" -\u003e show all keystores listed by owner\n// \"owner\" -\u003e show all keys for that owner's keystore\n// \"owner:size\" -\u003e returns size of owner's keystore\n// \"owner:get:key\" -\u003e show value for that key in owner's keystore\nfunc Render(p string) string {\n\tvar response string\n\targs := strings.Split(p, \":\")\n\tnumArgs := len(args)\n\tif p == \"\" {\n\t\tnumArgs = 0\n\t}\n\tswitch numArgs {\n\tcase 0:\n\t\tif data.Size() == 0 {\n\t\t\treturn StatusNoDatabases\n\t\t}\n\t\tdata.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tks := value.(*KeyStore)\n\t\t\tresponse += ufmt.Sprintf(\"- [%s](%s:%s) (%d keys)\\n\", ks.Owner, BaseURL, ks.Owner, ks.Data.Size())\n\t\t\treturn false\n\t\t})\n\tcase 1:\n\t\towner := args[0]\n\t\tkeystoreInterface, exists := data.Get(owner)\n\t\tif !exists {\n\t\t\treturn StatusNoUser\n\t\t}\n\t\tks := keystoreInterface.(*KeyStore)\n\t\ti := 0\n\t\tresponse += ufmt.Sprintf(\"# %s database\\n\\n\", ks.Owner)\n\t\tks.Data.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tresponse += ufmt.Sprintf(\"- %d [%s](%s:%s:get:%s)\\n\", i, key, BaseURL, ks.Owner, key)\n\t\t\ti++\n\t\t\treturn false\n\t\t})\n\tcase 2:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tif cmd == \"size\" {\n\t\t\treturn size(owner)\n\t\t}\n\tcase 3:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tkey := args[2]\n\t\tif cmd == \"get\" {\n\t\t\treturn get(owner, key)\n\t\t}\n\t}\n\n\treturn response\n}\n"},{"name":"keystore_test.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\ttt := []struct {\n\t\tcaller std.Address\n\t\towner std.Address\n\t\tps []string\n\t\texp string\n\t}{\n\t\t// can set database if the owner is the caller\n\t\t{author1, author1, []string{\"set\", \"hello\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hello\", \"world\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\t\t// only owner can remove\n\t\t{author1, author1, []string{\"remove\", \"hi\"}, StatusOK},\n\t\t{author1, author1, []string{\"get\", \"hi\"}, StatusNotFound},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t// add back\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\n\t\t// different owner has different database\n\t\t{author2, author2, []string{\"set\", \"hello\", \"universe\"}, StatusOK},\n\t\t// either author can get the other info\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// either author can get the other info\n\t\t{author2, author1, []string{\"get\", \"hello\"}, \"world\"},\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// anyone can view the databases\n\t\t{author1, author2, []string{}, `- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/keystore:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6) (2 keys)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00) (1 keys)`},\n\t\t// anyone can view the keys in a database\n\t\t{author1, author2, []string{\"\"}, `# g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00 database\n\n- 0 [hello](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00:get:hello)`},\n\t}\n\tfor _, tc := range tt {\n\t\tp := \"\"\n\t\tif len(tc.ps) \u003e 0 {\n\t\t\tp = tc.owner.String()\n\t\t\tfor i, psv := range tc.ps {\n\t\t\t\tp += \":\" + psv\n\t\t\t}\n\t\t}\n\t\tp = strings.TrimSuffix(p, \":\")\n\t\tt.Run(p, func(t *testing.T) {\n\t\t\tstd.TestSetOrigCaller(tc.caller)\n\t\t\tvar act string\n\t\t\tif len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"set\" {\n\t\t\t\tact = strings.TrimSpace(Set(tc.ps[1], tc.ps[2]))\n\t\t\t} else if len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"remove\" {\n\t\t\t\tact = strings.TrimSpace(Remove(tc.ps[1]))\n\t\t\t} else {\n\t\t\t\tact = strings.TrimSpace(Render(p))\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tc.exp, act, ufmt.Sprintf(\"%v -\u003e '%s'\", tc.ps, p))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SfdvRDnquS6GnHEZMawTq1P4NOyBnqwavfW7dWk3GuyiZf9uozuWNKr75eIWNg5dWpnST0mibSLEUIy8ESUhAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"lifetime","path":"gno.land/p/demo/subscription/lifetime","files":[{"name":"errors.gno","body":"package lifetime\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"lifetime subscription: no active subscription found\")\n\tErrAmt = errors.New(\"lifetime subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"lifetime subscription: this address already has an active lifetime subscription\")\n\tErrNotAuthorized = errors.New(\"lifetime subscription: action not authorized\")\n)\n"},{"name":"lifetime.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// LifetimeSubscription represents a subscription that requires only a one-time payment.\n// It grants permanent access to a service or product.\ntype LifetimeSubscription struct {\n\townable.Ownable\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e bool\n}\n\n// NewLifetimeSubscription creates and returns a new lifetime subscription.\nfunc NewLifetimeSubscription(amount int64) *LifetimeSubscription {\n\treturn \u0026LifetimeSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// processSubscription handles the subscription process for a given receiver.\nfunc (ls *LifetimeSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != ls.amount {\n\t\treturn ErrAmt\n\t}\n\n\t_, exists := ls.subs.Get(receiver.String())\n\n\tif exists {\n\t\treturn ErrAlreadySub\n\t}\n\n\tls.subs.Set(receiver.String(), true)\n\n\treturn nil\n}\n\n// Subscribe processes the payment for a lifetime subscription.\nfunc (ls *LifetimeSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\treturn ls.processSubscription(caller)\n}\n\n// GiftSubscription allows the caller to pay for a lifetime subscription for another user.\nfunc (ls *LifetimeSubscription) GiftSubscription(receiver std.Address) error {\n\treturn ls.processSubscription(receiver)\n}\n\n// HasValidSubscription checks if the given address has an active lifetime subscription.\nfunc (ls *LifetimeSubscription) HasValidSubscription(addr std.Address) error {\n\t_, exists := ls.subs.Get(addr.String())\n\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\treturn nil\n}\n\n// UpdateAmount allows the owner of the LifetimeSubscription contract to update the subscription price.\nfunc (ls *LifetimeSubscription) UpdateAmount(newAmount int64) error {\n\tif err := ls.CallerIsOwner(); err != nil {\n\t\treturn ErrNotAuthorized\n\t}\n\n\tls.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current subscription price.\nfunc (ls *LifetimeSubscription) GetAmount() int64 {\n\treturn ls.amount\n}\n"},{"name":"lifetime_test.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestLifetimeSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed\")\n\n\terr = ls.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n}\n\nfunc TestLifetimeSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = ls.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\n\terr = ls.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.Subscribe()\n\tuassert.Error(t, err, \"Expected payment to fail with incorrect amount\")\n}\n\nfunc TestMultipleSubscriptionAttempts(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected first subscription to succeed\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected second subscription to fail as Alice is already subscribed\")\n}\n\nfunc TestGiftSubscriptionWithIncorrectAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.Error(t, err, \"Expected gift subscription to fail with incorrect amount\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.Error(t, err, \"Expected Bob to not have access after incorrect gift subscription\")\n}\n\nfunc TestUpdateAmountEffectiveness(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected subscription to fail with old amount after update\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 2000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected subscription to succeed with new amount\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5PyFjGerz8OByMoRuHsP9JTvvTGAZfPx6o9rkOj8vG6+ZOOkFmygD5xJOv52pTpKKvXzapx9/hQOPnDGyyY6Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"lifetime","path":"gno.land/p/demo/subscription/lifetime","files":[{"name":"errors.gno","body":"package lifetime\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"lifetime subscription: no active subscription found\")\n\tErrAmt = errors.New(\"lifetime subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"lifetime subscription: this address already has an active lifetime subscription\")\n\tErrNotAuthorized = errors.New(\"lifetime subscription: action not authorized\")\n)\n"},{"name":"lifetime.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// LifetimeSubscription represents a subscription that requires only a one-time payment.\n// It grants permanent access to a service or product.\ntype LifetimeSubscription struct {\n\townable.Ownable\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e bool\n}\n\n// NewLifetimeSubscription creates and returns a new lifetime subscription.\nfunc NewLifetimeSubscription(amount int64) *LifetimeSubscription {\n\treturn \u0026LifetimeSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// processSubscription handles the subscription process for a given receiver.\nfunc (ls *LifetimeSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != ls.amount {\n\t\treturn ErrAmt\n\t}\n\n\t_, exists := ls.subs.Get(receiver.String())\n\n\tif exists {\n\t\treturn ErrAlreadySub\n\t}\n\n\tls.subs.Set(receiver.String(), true)\n\n\treturn nil\n}\n\n// Subscribe processes the payment for a lifetime subscription.\nfunc (ls *LifetimeSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\treturn ls.processSubscription(caller)\n}\n\n// GiftSubscription allows the caller to pay for a lifetime subscription for another user.\nfunc (ls *LifetimeSubscription) GiftSubscription(receiver std.Address) error {\n\treturn ls.processSubscription(receiver)\n}\n\n// HasValidSubscription checks if the given address has an active lifetime subscription.\nfunc (ls *LifetimeSubscription) HasValidSubscription(addr std.Address) error {\n\t_, exists := ls.subs.Get(addr.String())\n\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\treturn nil\n}\n\n// UpdateAmount allows the owner of the LifetimeSubscription contract to update the subscription price.\nfunc (ls *LifetimeSubscription) UpdateAmount(newAmount int64) error {\n\tif err := ls.CallerIsOwner(); err != nil {\n\t\treturn ErrNotAuthorized\n\t}\n\n\tls.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current subscription price.\nfunc (ls *LifetimeSubscription) GetAmount() int64 {\n\treturn ls.amount\n}\n"},{"name":"lifetime_test.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestLifetimeSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed\")\n\n\terr = ls.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n}\n\nfunc TestLifetimeSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = ls.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\n\terr = ls.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.Subscribe()\n\tuassert.Error(t, err, \"Expected payment to fail with incorrect amount\")\n}\n\nfunc TestMultipleSubscriptionAttempts(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected first subscription to succeed\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected second subscription to fail as Alice is already subscribed\")\n}\n\nfunc TestGiftSubscriptionWithIncorrectAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.Error(t, err, \"Expected gift subscription to fail with incorrect amount\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.Error(t, err, \"Expected Bob to not have access after incorrect gift subscription\")\n}\n\nfunc TestUpdateAmountEffectiveness(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected subscription to fail with old amount after update\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 2000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected subscription to succeed with new amount\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5PyFjGerz8OByMoRuHsP9JTvvTGAZfPx6o9rkOj8vG6+ZOOkFmygD5xJOv52pTpKKvXzapx9/hQOPnDGyyY6Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"lifetime","path":"gno.land/p/demo/subscription/lifetime","files":[{"name":"errors.gno","body":"package lifetime\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"lifetime subscription: no active subscription found\")\n\tErrAmt = errors.New(\"lifetime subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"lifetime subscription: this address already has an active lifetime subscription\")\n\tErrNotAuthorized = errors.New(\"lifetime subscription: action not authorized\")\n)\n"},{"name":"lifetime.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// LifetimeSubscription represents a subscription that requires only a one-time payment.\n// It grants permanent access to a service or product.\ntype LifetimeSubscription struct {\n\townable.Ownable\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e bool\n}\n\n// NewLifetimeSubscription creates and returns a new lifetime subscription.\nfunc NewLifetimeSubscription(amount int64) *LifetimeSubscription {\n\treturn \u0026LifetimeSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// processSubscription handles the subscription process for a given receiver.\nfunc (ls *LifetimeSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != ls.amount {\n\t\treturn ErrAmt\n\t}\n\n\t_, exists := ls.subs.Get(receiver.String())\n\n\tif exists {\n\t\treturn ErrAlreadySub\n\t}\n\n\tls.subs.Set(receiver.String(), true)\n\n\treturn nil\n}\n\n// Subscribe processes the payment for a lifetime subscription.\nfunc (ls *LifetimeSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\treturn ls.processSubscription(caller)\n}\n\n// GiftSubscription allows the caller to pay for a lifetime subscription for another user.\nfunc (ls *LifetimeSubscription) GiftSubscription(receiver std.Address) error {\n\treturn ls.processSubscription(receiver)\n}\n\n// HasValidSubscription checks if the given address has an active lifetime subscription.\nfunc (ls *LifetimeSubscription) HasValidSubscription(addr std.Address) error {\n\t_, exists := ls.subs.Get(addr.String())\n\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\treturn nil\n}\n\n// UpdateAmount allows the owner of the LifetimeSubscription contract to update the subscription price.\nfunc (ls *LifetimeSubscription) UpdateAmount(newAmount int64) error {\n\tif err := ls.CallerIsOwner(); err != nil {\n\t\treturn ErrNotAuthorized\n\t}\n\n\tls.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current subscription price.\nfunc (ls *LifetimeSubscription) GetAmount() int64 {\n\treturn ls.amount\n}\n"},{"name":"lifetime_test.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestLifetimeSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed\")\n\n\terr = ls.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n}\n\nfunc TestLifetimeSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = ls.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\n\terr = ls.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.Subscribe()\n\tuassert.Error(t, err, \"Expected payment to fail with incorrect amount\")\n}\n\nfunc TestMultipleSubscriptionAttempts(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected first subscription to succeed\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected second subscription to fail as Alice is already subscribed\")\n}\n\nfunc TestGiftSubscriptionWithIncorrectAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.Error(t, err, \"Expected gift subscription to fail with incorrect amount\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.Error(t, err, \"Expected Bob to not have access after incorrect gift subscription\")\n}\n\nfunc TestUpdateAmountEffectiveness(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected subscription to fail with old amount after update\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 2000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected subscription to succeed with new amount\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5PyFjGerz8OByMoRuHsP9JTvvTGAZfPx6o9rkOj8vG6+ZOOkFmygD5xJOv52pTpKKvXzapx9/hQOPnDGyyY6Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"markdown","path":"gno.land/r/demo/markdown_test","files":[{"name":"markdown.gno","body":"package markdown\n\n// this package can be used to test markdown rendering engines.\n\nfunc Render(path string) string {\n\toutput := `_imported from https://github.com/markedjs/marked/blob/master/docs/demo/quickref.md_\n\nMarkdown Quick Reference\n========================\n\nThis guide is a very brief overview, with examples, of the syntax that [Markdown] supports. It is itself written in Markdown and you can copy the samples over to the left-hand pane for experimentation. It's shown as *text* and not *rendered HTML*.\n\n[Markdown]: http://daringfireball.net/projects/markdown/\n\n\nSimple Text Formatting\n======================\n\nFirst thing is first. You can use *stars* or _underscores_ for italics. **Double stars** and __double underscores__ for bold. ***Three together*** for ___both___.\n\nParagraphs are pretty easy too. Just have a blank line between chunks of text.\n\n\u003e This chunk of text is in a block quote. Its multiple lines will all be\n\u003e indented a bit from the rest of the text.\n\u003e\n\u003e \u003e Multiple levels of block quotes also work.\n\nSometimes you want to include code, such as when you are explaining how ` + \"`\u003ch1\u003e`\" + ` HTML tags work, or maybe you are a programmer and you are discussing ` + \"`someMethod()`\" + `.\n\nIf you want to include code and have new\nlines preserved, indent the line with a tab\nor at least four spaces:\n\n Extra spaces work here too.\n This is also called preformatted text and it is useful for showing examples.\n The text will stay as text, so any *markdown* or \u003cu\u003eHTML\u003c/u\u003e you add will\n not show up formatted. This way you can show markdown examples in a\n markdown document.\n\n\u003e You can also use preformatted text with your blockquotes\n\u003e as long as you add at least five spaces.\n\n\nHeadings\n========\n\nThere are a couple of ways to make headings. Using three or more equals signs on a line under a heading makes it into an \"h1\" style. Three or more hyphens under a line makes it \"h2\" (slightly smaller). You can also use multiple pound symbols (` + \"`#`\" + `) before and after a heading. Pounds after the title are ignored. Here are some examples:\n\nThis is H1\n==========\n\nThis is H2\n----------\n\n# This is H1\n## This is H2\n### This is H3 with some extra pounds ###\n#### You get the idea ####\n##### I don't need extra pounds at the end\n###### H6 is the max\n\n\nLinks\n=====\n\nLet's link to a few sites. First, let's use the bare URL, like \u003chttps://www.github.com\u003e. Great for text, but ugly for HTML.\nNext is an inline link to [Google](https://www.google.com). A little nicer.\nThis is a reference-style link to [Wikipedia] [1].\nLastly, here's a pretty link to [Yahoo]. The reference-style and pretty links both automatically use the links defined below, but they could be defined *anywhere* in the markdown and are removed from the HTML. The names are also case insensitive, so you can use [YaHoO] and have it link properly.\n\n[1]: https://www.wikipedia.org\n[Yahoo]: https://www.yahoo.com\n\nTitle attributes may be added to links by adding text after a link.\nThis is the [inline link](https://www.bing.com \"Bing\") with a \"Bing\" title.\nYou can also go to [W3C] [2] and maybe visit a [friend].\n\n[2]: https://w3c.org (The W3C puts out specs for web-based things)\n[Friend]: https://facebook.com \"Facebook!\"\n\nEmail addresses in plain text are not linked: test@example.com.\nEmail addresses wrapped in angle brackets are linked: \u003ctest@example.com\u003e.\nThey are also obfuscated so that email harvesting spam robots hopefully won't get them.\n\n\nLists\n=====\n\n* This is a bulleted list\n* Great for shopping lists\n- You can also use hyphens\n+ Or plus symbols\n\nThe above is an \"unordered\" list. Now, on for a bit of order.\n\n1. Numbered lists are also easy\n2. Just start with a number\n3738762. However, the actual number doesn't matter when converted to HTML.\n1. This will still show up as 4.\n\nYou might want a few advanced lists:\n\n- This top-level list is wrapped in paragraph tags\n- This generates an extra space between each top-level item.\n\n- You do it by adding a blank line\n\n- This nested list also has blank lines between the list items.\n\n- How to create nested lists\n 1. Start your regular list\n 2. Indent nested lists with two spaces\n 3. Further nesting means you should indent with two more spaces\n * This line is indented with four spaces.\n\n- List items can be quite lengthy. You can keep typing and either continue\nthem on the next line with no indentation.\n\n- Alternately, if that looks ugly, you can also\n indent the next line a bit for a prettier look.\n\n- You can put large blocks of text in your list by just indenting with two spaces.\n\n This is formatted the same as code, but you can inspect the HTML\n and find that it's just wrapped in a ` + \"`\u003cp\u003e`\" + ` tag and *won't* be shown\n as preformatted text.\n\n You can keep adding more and more paragraphs to a single\n list item by adding the traditional blank line and then keep\n on indenting the paragraphs with two spaces.\n\n You really only need to indent the first line,\nbut that looks ugly.\n\n- Lists support blockquotes\n\n \u003e Just like this example here. By the way, you can\n \u003e nest lists inside blockquotes!\n \u003e - Fantastic!\n\n- Lists support preformatted text\n\n You just need to indent an additional four spaces.\n\n\nEven More\n=========\n\nHorizontal Rule\n---------------\n\nIf you need a horizontal rule you just need to put at least three hyphens, asterisks, or underscores on a line by themselves. You can also even put spaces between the characters.\n\n---\n****************************\n_ _ _ _ _ _ _\n\nThose three all produced horizontal lines. Keep in mind that three hyphens under any text turns that text into a heading, so add a blank like if you use hyphens.\n\nImages\n------\n\nImages work exactly like links, but they have exclamation points in front. They work with references and titles too.\n\n![Google Logo](https://www.google.com/images/errors/logo_sm.gif) and ![Happy].\n\n[Happy]: https://wpclipart.com/smiley/happy/simple_colors/smiley_face_simple_green_small.png (\"Smiley face\")\n\n\nInline HTML\n-----------\n\nIf markdown is too limiting, you can just insert your own \u003cstrike\u003ecrazy\u003c/strike\u003e HTML. Span-level HTML \u003cu\u003ecan *still* use markdown\u003c/u\u003e. Block level elements must be separated from text by a blank line and must not have any spaces before the opening and closing HTML.\n\n\u003cdiv style='font-family: \"Comic Sans MS\", \"Comic Sans\", cursive;'\u003e\nIt is a pity, but markdown does **not** work in here for most markdown parsers.\n[Marked] handles it pretty well.\n\u003c/div\u003e`\n\treturn output\n}\n"},{"name":"markdown_test.gno","body":"package markdown\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\toutput := Render(\"\")\n\tif !strings.Contains(output, \"\\nMarkdown Quick Reference\\n\") {\n\t\tt.Errorf(\"invalid output\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"obzrkXDSRbUYW4/Wo2WJ4wDv1bH6DkuutXo+9fJDO4HXSlwxbZN6r96Or5SfmaXcEF7kyrlARVLe0Gjx1VDyBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"markdown","path":"gno.land/r/demo/markdown_test","files":[{"name":"markdown.gno","body":"package markdown\n\n// this package can be used to test markdown rendering engines.\n\nfunc Render(path string) string {\n\toutput := `_imported from https://github.com/markedjs/marked/blob/master/docs/demo/quickref.md_\n\nMarkdown Quick Reference\n========================\n\nThis guide is a very brief overview, with examples, of the syntax that [Markdown] supports. It is itself written in Markdown and you can copy the samples over to the left-hand pane for experimentation. It's shown as *text* and not *rendered HTML*.\n\n[Markdown]: http://daringfireball.net/projects/markdown/\n\n\nSimple Text Formatting\n======================\n\nFirst thing is first. You can use *stars* or _underscores_ for italics. **Double stars** and __double underscores__ for bold. ***Three together*** for ___both___.\n\nParagraphs are pretty easy too. Just have a blank line between chunks of text.\n\n\u003e This chunk of text is in a block quote. Its multiple lines will all be\n\u003e indented a bit from the rest of the text.\n\u003e\n\u003e \u003e Multiple levels of block quotes also work.\n\nSometimes you want to include code, such as when you are explaining how ` + \"`\u003ch1\u003e`\" + ` HTML tags work, or maybe you are a programmer and you are discussing ` + \"`someMethod()`\" + `.\n\nIf you want to include code and have new\nlines preserved, indent the line with a tab\nor at least four spaces:\n\n Extra spaces work here too.\n This is also called preformatted text and it is useful for showing examples.\n The text will stay as text, so any *markdown* or \u003cu\u003eHTML\u003c/u\u003e you add will\n not show up formatted. This way you can show markdown examples in a\n markdown document.\n\n\u003e You can also use preformatted text with your blockquotes\n\u003e as long as you add at least five spaces.\n\n\nHeadings\n========\n\nThere are a couple of ways to make headings. Using three or more equals signs on a line under a heading makes it into an \"h1\" style. Three or more hyphens under a line makes it \"h2\" (slightly smaller). You can also use multiple pound symbols (` + \"`#`\" + `) before and after a heading. Pounds after the title are ignored. Here are some examples:\n\nThis is H1\n==========\n\nThis is H2\n----------\n\n# This is H1\n## This is H2\n### This is H3 with some extra pounds ###\n#### You get the idea ####\n##### I don't need extra pounds at the end\n###### H6 is the max\n\n\nLinks\n=====\n\nLet's link to a few sites. First, let's use the bare URL, like \u003chttps://www.github.com\u003e. Great for text, but ugly for HTML.\nNext is an inline link to [Google](https://www.google.com). A little nicer.\nThis is a reference-style link to [Wikipedia] [1].\nLastly, here's a pretty link to [Yahoo]. The reference-style and pretty links both automatically use the links defined below, but they could be defined *anywhere* in the markdown and are removed from the HTML. The names are also case insensitive, so you can use [YaHoO] and have it link properly.\n\n[1]: https://www.wikipedia.org\n[Yahoo]: https://www.yahoo.com\n\nTitle attributes may be added to links by adding text after a link.\nThis is the [inline link](https://www.bing.com \"Bing\") with a \"Bing\" title.\nYou can also go to [W3C] [2] and maybe visit a [friend].\n\n[2]: https://w3c.org (The W3C puts out specs for web-based things)\n[Friend]: https://facebook.com \"Facebook!\"\n\nEmail addresses in plain text are not linked: test@example.com.\nEmail addresses wrapped in angle brackets are linked: \u003ctest@example.com\u003e.\nThey are also obfuscated so that email harvesting spam robots hopefully won't get them.\n\n\nLists\n=====\n\n* This is a bulleted list\n* Great for shopping lists\n- You can also use hyphens\n+ Or plus symbols\n\nThe above is an \"unordered\" list. Now, on for a bit of order.\n\n1. Numbered lists are also easy\n2. Just start with a number\n3738762. However, the actual number doesn't matter when converted to HTML.\n1. This will still show up as 4.\n\nYou might want a few advanced lists:\n\n- This top-level list is wrapped in paragraph tags\n- This generates an extra space between each top-level item.\n\n- You do it by adding a blank line\n\n- This nested list also has blank lines between the list items.\n\n- How to create nested lists\n 1. Start your regular list\n 2. Indent nested lists with two spaces\n 3. Further nesting means you should indent with two more spaces\n * This line is indented with four spaces.\n\n- List items can be quite lengthy. You can keep typing and either continue\nthem on the next line with no indentation.\n\n- Alternately, if that looks ugly, you can also\n indent the next line a bit for a prettier look.\n\n- You can put large blocks of text in your list by just indenting with two spaces.\n\n This is formatted the same as code, but you can inspect the HTML\n and find that it's just wrapped in a ` + \"`\u003cp\u003e`\" + ` tag and *won't* be shown\n as preformatted text.\n\n You can keep adding more and more paragraphs to a single\n list item by adding the traditional blank line and then keep\n on indenting the paragraphs with two spaces.\n\n You really only need to indent the first line,\nbut that looks ugly.\n\n- Lists support blockquotes\n\n \u003e Just like this example here. By the way, you can\n \u003e nest lists inside blockquotes!\n \u003e - Fantastic!\n\n- Lists support preformatted text\n\n You just need to indent an additional four spaces.\n\n\nEven More\n=========\n\nHorizontal Rule\n---------------\n\nIf you need a horizontal rule you just need to put at least three hyphens, asterisks, or underscores on a line by themselves. You can also even put spaces between the characters.\n\n---\n****************************\n_ _ _ _ _ _ _\n\nThose three all produced horizontal lines. Keep in mind that three hyphens under any text turns that text into a heading, so add a blank like if you use hyphens.\n\nImages\n------\n\nImages work exactly like links, but they have exclamation points in front. They work with references and titles too.\n\n![Google Logo](https://www.google.com/images/errors/logo_sm.gif) and ![Happy].\n\n[Happy]: https://wpclipart.com/smiley/happy/simple_colors/smiley_face_simple_green_small.png (\"Smiley face\")\n\n\nInline HTML\n-----------\n\nIf markdown is too limiting, you can just insert your own \u003cstrike\u003ecrazy\u003c/strike\u003e HTML. Span-level HTML \u003cu\u003ecan *still* use markdown\u003c/u\u003e. Block level elements must be separated from text by a blank line and must not have any spaces before the opening and closing HTML.\n\n\u003cdiv style='font-family: \"Comic Sans MS\", \"Comic Sans\", cursive;'\u003e\nIt is a pity, but markdown does **not** work in here for most markdown parsers.\n[Marked] handles it pretty well.\n\u003c/div\u003e`\n\treturn output\n}\n"},{"name":"markdown_test.gno","body":"package markdown\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\toutput := Render(\"\")\n\tif !strings.Contains(output, \"\\nMarkdown Quick Reference\\n\") {\n\t\tt.Errorf(\"invalid output\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"obzrkXDSRbUYW4/Wo2WJ4wDv1bH6DkuutXo+9fJDO4HXSlwxbZN6r96Or5SfmaXcEF7kyrlARVLe0Gjx1VDyBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"markdown","path":"gno.land/r/demo/markdown_test","files":[{"name":"markdown.gno","body":"package markdown\n\n// this package can be used to test markdown rendering engines.\n\nfunc Render(path string) string {\n\toutput := `_imported from https://github.com/markedjs/marked/blob/master/docs/demo/quickref.md_\n\nMarkdown Quick Reference\n========================\n\nThis guide is a very brief overview, with examples, of the syntax that [Markdown] supports. It is itself written in Markdown and you can copy the samples over to the left-hand pane for experimentation. It's shown as *text* and not *rendered HTML*.\n\n[Markdown]: http://daringfireball.net/projects/markdown/\n\n\nSimple Text Formatting\n======================\n\nFirst thing is first. You can use *stars* or _underscores_ for italics. **Double stars** and __double underscores__ for bold. ***Three together*** for ___both___.\n\nParagraphs are pretty easy too. Just have a blank line between chunks of text.\n\n\u003e This chunk of text is in a block quote. Its multiple lines will all be\n\u003e indented a bit from the rest of the text.\n\u003e\n\u003e \u003e Multiple levels of block quotes also work.\n\nSometimes you want to include code, such as when you are explaining how ` + \"`\u003ch1\u003e`\" + ` HTML tags work, or maybe you are a programmer and you are discussing ` + \"`someMethod()`\" + `.\n\nIf you want to include code and have new\nlines preserved, indent the line with a tab\nor at least four spaces:\n\n Extra spaces work here too.\n This is also called preformatted text and it is useful for showing examples.\n The text will stay as text, so any *markdown* or \u003cu\u003eHTML\u003c/u\u003e you add will\n not show up formatted. This way you can show markdown examples in a\n markdown document.\n\n\u003e You can also use preformatted text with your blockquotes\n\u003e as long as you add at least five spaces.\n\n\nHeadings\n========\n\nThere are a couple of ways to make headings. Using three or more equals signs on a line under a heading makes it into an \"h1\" style. Three or more hyphens under a line makes it \"h2\" (slightly smaller). You can also use multiple pound symbols (` + \"`#`\" + `) before and after a heading. Pounds after the title are ignored. Here are some examples:\n\nThis is H1\n==========\n\nThis is H2\n----------\n\n# This is H1\n## This is H2\n### This is H3 with some extra pounds ###\n#### You get the idea ####\n##### I don't need extra pounds at the end\n###### H6 is the max\n\n\nLinks\n=====\n\nLet's link to a few sites. First, let's use the bare URL, like \u003chttps://www.github.com\u003e. Great for text, but ugly for HTML.\nNext is an inline link to [Google](https://www.google.com). A little nicer.\nThis is a reference-style link to [Wikipedia] [1].\nLastly, here's a pretty link to [Yahoo]. The reference-style and pretty links both automatically use the links defined below, but they could be defined *anywhere* in the markdown and are removed from the HTML. The names are also case insensitive, so you can use [YaHoO] and have it link properly.\n\n[1]: https://www.wikipedia.org\n[Yahoo]: https://www.yahoo.com\n\nTitle attributes may be added to links by adding text after a link.\nThis is the [inline link](https://www.bing.com \"Bing\") with a \"Bing\" title.\nYou can also go to [W3C] [2] and maybe visit a [friend].\n\n[2]: https://w3c.org (The W3C puts out specs for web-based things)\n[Friend]: https://facebook.com \"Facebook!\"\n\nEmail addresses in plain text are not linked: test@example.com.\nEmail addresses wrapped in angle brackets are linked: \u003ctest@example.com\u003e.\nThey are also obfuscated so that email harvesting spam robots hopefully won't get them.\n\n\nLists\n=====\n\n* This is a bulleted list\n* Great for shopping lists\n- You can also use hyphens\n+ Or plus symbols\n\nThe above is an \"unordered\" list. Now, on for a bit of order.\n\n1. Numbered lists are also easy\n2. Just start with a number\n3738762. However, the actual number doesn't matter when converted to HTML.\n1. This will still show up as 4.\n\nYou might want a few advanced lists:\n\n- This top-level list is wrapped in paragraph tags\n- This generates an extra space between each top-level item.\n\n- You do it by adding a blank line\n\n- This nested list also has blank lines between the list items.\n\n- How to create nested lists\n 1. Start your regular list\n 2. Indent nested lists with two spaces\n 3. Further nesting means you should indent with two more spaces\n * This line is indented with four spaces.\n\n- List items can be quite lengthy. You can keep typing and either continue\nthem on the next line with no indentation.\n\n- Alternately, if that looks ugly, you can also\n indent the next line a bit for a prettier look.\n\n- You can put large blocks of text in your list by just indenting with two spaces.\n\n This is formatted the same as code, but you can inspect the HTML\n and find that it's just wrapped in a ` + \"`\u003cp\u003e`\" + ` tag and *won't* be shown\n as preformatted text.\n\n You can keep adding more and more paragraphs to a single\n list item by adding the traditional blank line and then keep\n on indenting the paragraphs with two spaces.\n\n You really only need to indent the first line,\nbut that looks ugly.\n\n- Lists support blockquotes\n\n \u003e Just like this example here. By the way, you can\n \u003e nest lists inside blockquotes!\n \u003e - Fantastic!\n\n- Lists support preformatted text\n\n You just need to indent an additional four spaces.\n\n\nEven More\n=========\n\nHorizontal Rule\n---------------\n\nIf you need a horizontal rule you just need to put at least three hyphens, asterisks, or underscores on a line by themselves. You can also even put spaces between the characters.\n\n---\n****************************\n_ _ _ _ _ _ _\n\nThose three all produced horizontal lines. Keep in mind that three hyphens under any text turns that text into a heading, so add a blank like if you use hyphens.\n\nImages\n------\n\nImages work exactly like links, but they have exclamation points in front. They work with references and titles too.\n\n![Google Logo](https://www.google.com/images/errors/logo_sm.gif) and ![Happy].\n\n[Happy]: https://wpclipart.com/smiley/happy/simple_colors/smiley_face_simple_green_small.png (\"Smiley face\")\n\n\nInline HTML\n-----------\n\nIf markdown is too limiting, you can just insert your own \u003cstrike\u003ecrazy\u003c/strike\u003e HTML. Span-level HTML \u003cu\u003ecan *still* use markdown\u003c/u\u003e. Block level elements must be separated from text by a blank line and must not have any spaces before the opening and closing HTML.\n\n\u003cdiv style='font-family: \"Comic Sans MS\", \"Comic Sans\", cursive;'\u003e\nIt is a pity, but markdown does **not** work in here for most markdown parsers.\n[Marked] handles it pretty well.\n\u003c/div\u003e`\n\treturn output\n}\n"},{"name":"markdown_test.gno","body":"package markdown\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\toutput := Render(\"\")\n\tif !strings.Contains(output, \"\\nMarkdown Quick Reference\\n\") {\n\t\tt.Errorf(\"invalid output\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"obzrkXDSRbUYW4/Wo2WJ4wDv1bH6DkuutXo+9fJDO4HXSlwxbZN6r96Or5SfmaXcEF7kyrlARVLe0Gjx1VDyBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"md","path":"gno.land/p/moul/md","files":[{"name":"md.gno","body":"// Package md provides helper functions for generating Markdown content programmatically.\n//\n// It includes utilities for text formatting, creating lists, blockquotes, code blocks,\n// links, images, and more.\n//\n// Highlights:\n// - Supports basic Markdown syntax such as bold, italic, strikethrough, headers, and lists.\n// - Manages multiline support in lists (e.g., bullet, ordered, and todo lists).\n// - Includes advanced helpers like inline images with links and nested list prefixes.\npackage md\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Bold returns bold text for markdown.\n// Example: Bold(\"foo\") =\u003e \"**foo**\"\nfunc Bold(text string) string {\n\treturn \"**\" + text + \"**\"\n}\n\n// Italic returns italicized text for markdown.\n// Example: Italic(\"foo\") =\u003e \"*foo*\"\nfunc Italic(text string) string {\n\treturn \"*\" + text + \"*\"\n}\n\n// Strikethrough returns strikethrough text for markdown.\n// Example: Strikethrough(\"foo\") =\u003e \"~~foo~~\"\nfunc Strikethrough(text string) string {\n\treturn \"~~\" + text + \"~~\"\n}\n\n// H1 returns a level 1 header for markdown.\n// Example: H1(\"foo\") =\u003e \"# foo\\n\"\nfunc H1(text string) string {\n\treturn \"# \" + text + \"\\n\"\n}\n\n// H2 returns a level 2 header for markdown.\n// Example: H2(\"foo\") =\u003e \"## foo\\n\"\nfunc H2(text string) string {\n\treturn \"## \" + text + \"\\n\"\n}\n\n// H3 returns a level 3 header for markdown.\n// Example: H3(\"foo\") =\u003e \"### foo\\n\"\nfunc H3(text string) string {\n\treturn \"### \" + text + \"\\n\"\n}\n\n// H4 returns a level 4 header for markdown.\n// Example: H4(\"foo\") =\u003e \"#### foo\\n\"\nfunc H4(text string) string {\n\treturn \"#### \" + text + \"\\n\"\n}\n\n// H5 returns a level 5 header for markdown.\n// Example: H5(\"foo\") =\u003e \"##### foo\\n\"\nfunc H5(text string) string {\n\treturn \"##### \" + text + \"\\n\"\n}\n\n// H6 returns a level 6 header for markdown.\n// Example: H6(\"foo\") =\u003e \"###### foo\\n\"\nfunc H6(text string) string {\n\treturn \"###### \" + text + \"\\n\"\n}\n\n// BulletList returns a bullet list for markdown.\n// Example: BulletList([]string{\"foo\", \"bar\"}) =\u003e \"- foo\\n- bar\\n\"\nfunc BulletList(items []string) string {\n\tvar sb strings.Builder\n\tfor _, item := range items {\n\t\tsb.WriteString(BulletItem(item))\n\t}\n\treturn sb.String()\n}\n\n// BulletItem returns a bullet item for markdown.\n// Example: BulletItem(\"foo\") =\u003e \"- foo\\n\"\nfunc BulletItem(item string) string {\n\tvar sb strings.Builder\n\tlines := strings.Split(item, \"\\n\")\n\tsb.WriteString(\"- \" + lines[0] + \"\\n\")\n\tfor _, line := range lines[1:] {\n\t\tsb.WriteString(\" \" + line + \"\\n\")\n\t}\n\treturn sb.String()\n}\n\n// OrderedList returns an ordered list for markdown.\n// Example: OrderedList([]string{\"foo\", \"bar\"}) =\u003e \"1. foo\\n2. bar\\n\"\nfunc OrderedList(items []string) string {\n\tvar sb strings.Builder\n\tfor i, item := range items {\n\t\tlines := strings.Split(item, \"\\n\")\n\t\tsb.WriteString(strconv.Itoa(i+1) + \". \" + lines[0] + \"\\n\")\n\t\tfor _, line := range lines[1:] {\n\t\t\tsb.WriteString(\" \" + line + \"\\n\")\n\t\t}\n\t}\n\treturn sb.String()\n}\n\n// TodoList returns a list of todo items with checkboxes for markdown.\n// Example: TodoList([]string{\"foo\", \"bar\\nmore bar\"}, []bool{true, false}) =\u003e \"- [x] foo\\n- [ ] bar\\n more bar\\n\"\nfunc TodoList(items []string, done []bool) string {\n\tvar sb strings.Builder\n\tfor i, item := range items {\n\t\tsb.WriteString(TodoItem(item, done[i]))\n\t}\n\treturn sb.String()\n}\n\n// TodoItem returns a todo item with checkbox for markdown.\n// Example: TodoItem(\"foo\", true) =\u003e \"- [x] foo\\n\"\nfunc TodoItem(item string, done bool) string {\n\tvar sb strings.Builder\n\tcheckbox := \" \"\n\tif done {\n\t\tcheckbox = \"x\"\n\t}\n\tlines := strings.Split(item, \"\\n\")\n\tsb.WriteString(\"- [\" + checkbox + \"] \" + lines[0] + \"\\n\")\n\tfor _, line := range lines[1:] {\n\t\tsb.WriteString(\" \" + line + \"\\n\")\n\t}\n\treturn sb.String()\n}\n\n// Nested prefixes each line with a given prefix, enabling nested lists.\n// Example: Nested(\"- foo\\n- bar\", \" \") =\u003e \" - foo\\n - bar\\n\"\nfunc Nested(content, prefix string) string {\n\tlines := strings.Split(content, \"\\n\")\n\tfor i := range lines {\n\t\tif strings.TrimSpace(lines[i]) != \"\" {\n\t\t\tlines[i] = prefix + lines[i]\n\t\t}\n\t}\n\treturn strings.Join(lines, \"\\n\")\n}\n\n// Blockquote returns a blockquote for markdown.\n// Example: Blockquote(\"foo\\nbar\") =\u003e \"\u003e foo\\n\u003e bar\\n\"\nfunc Blockquote(text string) string {\n\tlines := strings.Split(text, \"\\n\")\n\tvar sb strings.Builder\n\tfor _, line := range lines {\n\t\tsb.WriteString(\"\u003e \" + line + \"\\n\")\n\t}\n\treturn sb.String()\n}\n\n// InlineCode returns inline code for markdown.\n// Example: InlineCode(\"foo\") =\u003e \"`foo`\"\nfunc InlineCode(code string) string {\n\treturn \"`\" + strings.ReplaceAll(code, \"`\", \"\\\\`\") + \"`\"\n}\n\n// CodeBlock creates a markdown code block.\n// Example: CodeBlock(\"foo\") =\u003e \"```\\nfoo\\n```\"\nfunc CodeBlock(content string) string {\n\treturn \"```\\n\" + strings.ReplaceAll(content, \"```\", \"\\\\```\") + \"\\n```\"\n}\n\n// LanguageCodeBlock creates a markdown code block with language-specific syntax highlighting.\n// Example: LanguageCodeBlock(\"go\", \"foo\") =\u003e \"```go\\nfoo\\n```\"\nfunc LanguageCodeBlock(language, content string) string {\n\treturn \"```\" + language + \"\\n\" + strings.ReplaceAll(content, \"```\", \"\\\\```\") + \"\\n```\"\n}\n\n// HorizontalRule returns a horizontal rule for markdown.\n// Example: HorizontalRule() =\u003e \"---\\n\"\nfunc HorizontalRule() string {\n\treturn \"---\\n\"\n}\n\n// Link returns a hyperlink for markdown.\n// Example: Link(\"foo\", \"http://example.com\") =\u003e \"[foo](http://example.com)\"\nfunc Link(text, url string) string {\n\treturn \"[\" + EscapeText(text) + \"](\" + url + \")\"\n}\n\n// InlineImageWithLink creates an inline image wrapped in a hyperlink for markdown.\n// Example: InlineImageWithLink(\"alt text\", \"image-url\", \"link-url\") =\u003e \"[![alt text](image-url)](link-url)\"\nfunc InlineImageWithLink(altText, imageUrl, linkUrl string) string {\n\treturn \"[\" + Image(altText, imageUrl) + \"](\" + linkUrl + \")\"\n}\n\n// Image returns an image for markdown.\n// Example: Image(\"foo\", \"http://example.com\") =\u003e \"![foo](http://example.com)\"\nfunc Image(altText, url string) string {\n\treturn \"![\" + EscapeText(altText) + \"](\" + url + \")\"\n}\n\n// Footnote returns a footnote for markdown.\n// Example: Footnote(\"foo\", \"bar\") =\u003e \"[foo]: bar\"\nfunc Footnote(reference, text string) string {\n\treturn \"[\" + EscapeText(reference) + \"]: \" + text\n}\n\n// Paragraph wraps the given text in a Markdown paragraph.\n// Example: Paragraph(\"foo\") =\u003e \"foo\\n\"\nfunc Paragraph(content string) string {\n\treturn content + \"\\n\\n\"\n}\n\n// CollapsibleSection creates a collapsible section for markdown using\n// HTML \u003cdetails\u003e and \u003csummary\u003e tags.\n// Example:\n// CollapsibleSection(\"Click to expand\", \"Hidden content\")\n// =\u003e\n// \u003cdetails\u003e\u003csummary\u003eClick to expand\u003c/summary\u003e\n//\n// Hidden content\n// \u003c/details\u003e\nfunc CollapsibleSection(title, content string) string {\n\treturn \"\u003cdetails\u003e\u003csummary\u003e\" + EscapeText(title) + \"\u003c/summary\u003e\\n\\n\" + content + \"\\n\u003c/details\u003e\\n\"\n}\n\n// EscapeText escapes special Markdown characters in regular text where needed.\nfunc EscapeText(text string) string {\n\treplacer := strings.NewReplacer(\n\t\t`*`, `\\*`,\n\t\t`_`, `\\_`,\n\t\t`[`, `\\[`,\n\t\t`]`, `\\]`,\n\t\t`(`, `\\(`,\n\t\t`)`, `\\)`,\n\t\t`~`, `\\~`,\n\t\t`\u003e`, `\\\u003e`,\n\t\t`|`, `\\|`,\n\t\t`-`, `\\-`,\n\t\t`+`, `\\+`,\n\t\t\".\", `\\.`,\n\t\t\"!\", `\\!`,\n\t\t\"`\", \"\\\\`\",\n\t)\n\treturn replacer.Replace(text)\n}\n"},{"name":"md_test.gno","body":"package md\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/moul/md\"\n)\n\nfunc TestHelpers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tfunction func() string\n\t\texpected string\n\t}{\n\t\t{\"Bold\", func() string { return md.Bold(\"foo\") }, \"**foo**\"},\n\t\t{\"Italic\", func() string { return md.Italic(\"foo\") }, \"*foo*\"},\n\t\t{\"Strikethrough\", func() string { return md.Strikethrough(\"foo\") }, \"~~foo~~\"},\n\t\t{\"H1\", func() string { return md.H1(\"foo\") }, \"# foo\\n\"},\n\t\t{\"HorizontalRule\", md.HorizontalRule, \"---\\n\"},\n\t\t{\"InlineCode\", func() string { return md.InlineCode(\"foo\") }, \"`foo`\"},\n\t\t{\"CodeBlock\", func() string { return md.CodeBlock(\"foo\") }, \"```\\nfoo\\n```\"},\n\t\t{\"LanguageCodeBlock\", func() string { return md.LanguageCodeBlock(\"go\", \"foo\") }, \"```go\\nfoo\\n```\"},\n\t\t{\"Link\", func() string { return md.Link(\"foo\", \"http://example.com\") }, \"[foo](http://example.com)\"},\n\t\t{\"Image\", func() string { return md.Image(\"foo\", \"http://example.com\") }, \"![foo](http://example.com)\"},\n\t\t{\"InlineImageWithLink\", func() string { return md.InlineImageWithLink(\"alt\", \"image-url\", \"link-url\") }, \"[![alt](image-url)](link-url)\"},\n\t\t{\"Footnote\", func() string { return md.Footnote(\"foo\", \"bar\") }, \"[foo]: bar\"},\n\t\t{\"Paragraph\", func() string { return md.Paragraph(\"foo\") }, \"foo\\n\\n\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := tt.function()\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"%s() = %q, want %q\", tt.name, result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLists(t *testing.T) {\n\tt.Run(\"BulletList\", func(t *testing.T) {\n\t\titems := []string{\"foo\", \"bar\"}\n\t\texpected := \"- foo\\n- bar\\n\"\n\t\tresult := md.BulletList(items)\n\t\tif result != expected {\n\t\t\tt.Errorf(\"BulletList(%q) = %q, want %q\", items, result, expected)\n\t\t}\n\t})\n\n\tt.Run(\"OrderedList\", func(t *testing.T) {\n\t\titems := []string{\"foo\", \"bar\"}\n\t\texpected := \"1. foo\\n2. bar\\n\"\n\t\tresult := md.OrderedList(items)\n\t\tif result != expected {\n\t\t\tt.Errorf(\"OrderedList(%q) = %q, want %q\", items, result, expected)\n\t\t}\n\t})\n\n\tt.Run(\"TodoList\", func(t *testing.T) {\n\t\titems := []string{\"foo\", \"bar\\nmore bar\"}\n\t\tdone := []bool{true, false}\n\t\texpected := \"- [x] foo\\n- [ ] bar\\n more bar\\n\"\n\t\tresult := md.TodoList(items, done)\n\t\tif result != expected {\n\t\t\tt.Errorf(\"TodoList(%q, %q) = %q, want %q\", items, done, result, expected)\n\t\t}\n\t})\n}\n\nfunc TestNested(t *testing.T) {\n\tt.Run(\"Nested Single Level\", func(t *testing.T) {\n\t\tcontent := \"- foo\\n- bar\"\n\t\texpected := \" - foo\\n - bar\"\n\t\tresult := md.Nested(content, \" \")\n\t\tif result != expected {\n\t\t\tt.Errorf(\"Nested(%q) = %q, want %q\", content, result, expected)\n\t\t}\n\t})\n\n\tt.Run(\"Nested Double Level\", func(t *testing.T) {\n\t\tcontent := \" - foo\\n - bar\"\n\t\texpected := \" - foo\\n - bar\"\n\t\tresult := md.Nested(content, \" \")\n\t\tif result != expected {\n\t\t\tt.Errorf(\"Nested(%q) = %q, want %q\", content, result, expected)\n\t\t}\n\t})\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/p/moul/md\"\n\nfunc main() {\n\tprintln(md.H1(\"Header 1\"))\n\tprintln(md.H2(\"Header 2\"))\n\tprintln(md.H3(\"Header 3\"))\n\tprintln(md.H4(\"Header 4\"))\n\tprintln(md.H5(\"Header 5\"))\n\tprintln(md.H6(\"Header 6\"))\n\tprintln(md.Bold(\"bold\"))\n\tprintln(md.Italic(\"italic\"))\n\tprintln(md.Strikethrough(\"strikethrough\"))\n\tprintln(md.BulletList([]string{\n\t\t\"Item 1\",\n\t\t\"Item 2\\nMore details for item 2\",\n\t}))\n\tprintln(md.OrderedList([]string{\"Step 1\", \"Step 2\"}))\n\tprintln(md.TodoList([]string{\"Task 1\", \"Task 2\\nSubtask 2\"}, []bool{true, false}))\n\tprintln(md.Nested(md.BulletList([]string{\"Parent Item\", md.OrderedList([]string{\"Child 1\", \"Child 2\"})}), \" \"))\n\tprintln(md.Blockquote(\"This is a blockquote\\nSpanning multiple lines\"))\n\tprintln(md.InlineCode(\"inline `code`\"))\n\tprintln(md.CodeBlock(\"line1\\nline2\"))\n\tprintln(md.LanguageCodeBlock(\"go\", \"func main() {\\nprintln(\\\"Hello, world!\\\")\\n}\"))\n\tprintln(md.HorizontalRule())\n\tprintln(md.Link(\"Gno\", \"http://gno.land\"))\n\tprintln(md.Image(\"Alt Text\", \"http://example.com/image.png\"))\n\tprintln(md.InlineImageWithLink(\"Alt Text\", \"http://example.com/image.png\", \"http://example.com\"))\n\tprintln(md.Footnote(\"ref\", \"This is a footnote\"))\n\tprintln(md.Paragraph(\"This is a paragraph.\"))\n}\n\n// Output:\n// # Header 1\n//\n// ## Header 2\n//\n// ### Header 3\n//\n// #### Header 4\n//\n// ##### Header 5\n//\n// ###### Header 6\n//\n// **bold**\n// *italic*\n// ~~strikethrough~~\n// - Item 1\n// - Item 2\n// More details for item 2\n//\n// 1. Step 1\n// 2. Step 2\n//\n// - [x] Task 1\n// - [ ] Task 2\n// Subtask 2\n//\n// - Parent Item\n// - 1. Child 1\n// 2. Child 2\n//\n//\n// \u003e This is a blockquote\n// \u003e Spanning multiple lines\n//\n// `inline \\`code\\``\n// ```\n// line1\n// line2\n// ```\n// ```go\n// func main() {\n// println(\"Hello, world!\")\n// }\n// ```\n// ---\n//\n// [Gno](http://gno.land)\n// ![Alt Text](http://example.com/image.png)\n// [![Alt Text](http://example.com/image.png)](http://example.com)\n// [ref]: This is a footnote\n// This is a paragraph.\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J/zodtklX6usBHwA5PBtW1q+MA8KI5BMO2IX7rdQ8vYLNZDEV0z8G8hkGOrEB7Z0Tclmbl6se8Ent+s+xj6iDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mdtable","path":"gno.land/p/moul/mdtable","files":[{"name":"mdtable.gno","body":"// Package mdtable provides a simple way to create Markdown tables.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/mdtable\"\n//\n//\tfunc Render(path string) string {\n//\t table := mdtable.Table{\n//\t Headers: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n//\t }\n//\t table.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n//\t table.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n//\t return table.String()\n//\t}\n//\n// Output:\n//\n//\t| ID | Title | Status | Date |\n//\t| --- | --- | --- | --- |\n//\t| #1 | Add a new validator | succeed | 2024-01-01 |\n//\t| #2 | Change parameter | timed out | 2024-01-02 |\npackage mdtable\n\nimport (\n\t\"strings\"\n)\n\ntype Table struct {\n\tHeaders []string\n\tRows [][]string\n\t// XXX: optional headers alignment.\n}\n\nfunc (t *Table) Append(row []string) {\n\tt.Rows = append(t.Rows, row)\n}\n\nfunc (t Table) String() string {\n\t// XXX: switch to using text/tabwriter when porting to Gno to support\n\t// better-formatted raw Markdown output.\n\n\tif len(t.Headers) == 0 \u0026\u0026 len(t.Rows) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif len(t.Headers) == 0 {\n\t\tt.Headers = make([]string, len(t.Rows[0]))\n\t}\n\n\t// Print header.\n\tsb.WriteString(\"| \" + strings.Join(t.Headers, \" | \") + \" |\\n\")\n\tsb.WriteString(\"|\" + strings.Repeat(\" --- |\", len(t.Headers)) + \"\\n\")\n\n\t// Print rows.\n\tfor _, row := range t.Rows {\n\t\tescapedRow := make([]string, len(row))\n\t\tfor i, cell := range row {\n\t\t\tescapedRow[i] = strings.ReplaceAll(cell, \"|\", \"\u0026#124;\") // Escape pipe characters.\n\t\t}\n\t\tsb.WriteString(\"| \" + strings.Join(escapedRow, \" | \") + \" |\\n\")\n\t}\n\n\treturn sb.String()\n}\n"},{"name":"mdtable_test.gno","body":"package mdtable_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/mdtable\"\n)\n\n// XXX: switch to `func Example() {}` when supported.\nfunc TestExample(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\"},\n\t\tRows: [][]string{\n\t\t\t{\"#1\", \"Add a new validator\", \"succeed\"},\n\t\t\t{\"#2\", \"Change parameter\", \"timed out\"},\n\t\t\t{\"#3\", \"Fill pool\", \"active\"},\n\t\t},\n\t}\n\n\tgot := table.String()\n\texpected := `| ID | Title | Status |\n| --- | --- | --- |\n| #1 | Add a new validator | succeed |\n| #2 | Change parameter | timed out |\n| #3 | Fill pool | active |\n`\n\n\turequire.Equal(t, got, expected)\n}\n\nfunc TestTableString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\ttable mdtable.Table\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"With Headers and Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Headers\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| | | | |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Pipe Character in Content\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new | validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new \u0026#124; validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Varying Row Sizes\", // XXX: should we have a different behavior?\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"Extra Column\"},\n\t\t\t\t\t{\"#3\", \"Fill pool\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title |\n| --- | --- |\n| #1 | Add a new validator |\n| #2 | Change parameter | Extra Column |\n| #3 | Fill pool |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With UTF-8 Characters\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Café\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"München\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t\t{\"#3\", \"São Paulo\", \"active\", \"2024-01-03\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Café | succeed | 2024-01-01 |\n| #2 | München | timed out | 2024-01-02 |\n| #3 | São Paulo | active | 2024-01-03 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With no Headers and no Rows\",\n\t\t\ttable: mdtable.Table{},\n\t\t\texpected: ``,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := tt.table.String()\n\t\t\turequire.Equal(t, got, tt.expected)\n\t\t})\n\t}\n}\n\nfunc TestTableAppend(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t}\n\n\t// Use the Append method to add rows to the table\n\ttable.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n\ttable.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n\ttable.Append([]string{\"#3\", \"Fill pool\", \"active\", \"2024-01-03\"})\n\tgot := table.String()\n\n\texpected := `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n| #3 | Fill pool | active | 2024-01-03 |\n`\n\turequire.Equal(t, got, expected)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lbapbkMKWW8Ir3Xv9dNKiSwMEyAx2+4SgUNKfnM4bzisxuoahXu1uupZPZ8uQGHMuQSIQl8vs/X+CGDJTg1FCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mdtable","path":"gno.land/p/moul/mdtable","files":[{"name":"mdtable.gno","body":"// Package mdtable provides a simple way to create Markdown tables.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/mdtable\"\n//\n//\tfunc Render(path string) string {\n//\t table := mdtable.Table{\n//\t Headers: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n//\t }\n//\t table.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n//\t table.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n//\t return table.String()\n//\t}\n//\n// Output:\n//\n//\t| ID | Title | Status | Date |\n//\t| --- | --- | --- | --- |\n//\t| #1 | Add a new validator | succeed | 2024-01-01 |\n//\t| #2 | Change parameter | timed out | 2024-01-02 |\npackage mdtable\n\nimport (\n\t\"strings\"\n)\n\ntype Table struct {\n\tHeaders []string\n\tRows [][]string\n\t// XXX: optional headers alignment.\n}\n\nfunc (t *Table) Append(row []string) {\n\tt.Rows = append(t.Rows, row)\n}\n\nfunc (t Table) String() string {\n\t// XXX: switch to using text/tabwriter when porting to Gno to support\n\t// better-formatted raw Markdown output.\n\n\tif len(t.Headers) == 0 \u0026\u0026 len(t.Rows) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif len(t.Headers) == 0 {\n\t\tt.Headers = make([]string, len(t.Rows[0]))\n\t}\n\n\t// Print header.\n\tsb.WriteString(\"| \" + strings.Join(t.Headers, \" | \") + \" |\\n\")\n\tsb.WriteString(\"|\" + strings.Repeat(\" --- |\", len(t.Headers)) + \"\\n\")\n\n\t// Print rows.\n\tfor _, row := range t.Rows {\n\t\tescapedRow := make([]string, len(row))\n\t\tfor i, cell := range row {\n\t\t\tescapedRow[i] = strings.ReplaceAll(cell, \"|\", \"\u0026#124;\") // Escape pipe characters.\n\t\t}\n\t\tsb.WriteString(\"| \" + strings.Join(escapedRow, \" | \") + \" |\\n\")\n\t}\n\n\treturn sb.String()\n}\n"},{"name":"mdtable_test.gno","body":"package mdtable_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/mdtable\"\n)\n\n// XXX: switch to `func Example() {}` when supported.\nfunc TestExample(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\"},\n\t\tRows: [][]string{\n\t\t\t{\"#1\", \"Add a new validator\", \"succeed\"},\n\t\t\t{\"#2\", \"Change parameter\", \"timed out\"},\n\t\t\t{\"#3\", \"Fill pool\", \"active\"},\n\t\t},\n\t}\n\n\tgot := table.String()\n\texpected := `| ID | Title | Status |\n| --- | --- | --- |\n| #1 | Add a new validator | succeed |\n| #2 | Change parameter | timed out |\n| #3 | Fill pool | active |\n`\n\n\turequire.Equal(t, got, expected)\n}\n\nfunc TestTableString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\ttable mdtable.Table\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"With Headers and Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Headers\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| | | | |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Pipe Character in Content\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new | validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new \u0026#124; validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Varying Row Sizes\", // XXX: should we have a different behavior?\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"Extra Column\"},\n\t\t\t\t\t{\"#3\", \"Fill pool\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title |\n| --- | --- |\n| #1 | Add a new validator |\n| #2 | Change parameter | Extra Column |\n| #3 | Fill pool |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With UTF-8 Characters\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Café\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"München\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t\t{\"#3\", \"São Paulo\", \"active\", \"2024-01-03\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Café | succeed | 2024-01-01 |\n| #2 | München | timed out | 2024-01-02 |\n| #3 | São Paulo | active | 2024-01-03 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With no Headers and no Rows\",\n\t\t\ttable: mdtable.Table{},\n\t\t\texpected: ``,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := tt.table.String()\n\t\t\turequire.Equal(t, got, tt.expected)\n\t\t})\n\t}\n}\n\nfunc TestTableAppend(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t}\n\n\t// Use the Append method to add rows to the table\n\ttable.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n\ttable.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n\ttable.Append([]string{\"#3\", \"Fill pool\", \"active\", \"2024-01-03\"})\n\tgot := table.String()\n\n\texpected := `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n| #3 | Fill pool | active | 2024-01-03 |\n`\n\turequire.Equal(t, got, expected)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lbapbkMKWW8Ir3Xv9dNKiSwMEyAx2+4SgUNKfnM4bzisxuoahXu1uupZPZ8uQGHMuQSIQl8vs/X+CGDJTg1FCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mdtable","path":"gno.land/p/moul/mdtable","files":[{"name":"mdtable.gno","body":"// Package mdtable provides a simple way to create Markdown tables.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/mdtable\"\n//\n//\tfunc Render(path string) string {\n//\t table := mdtable.Table{\n//\t Headers: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n//\t }\n//\t table.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n//\t table.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n//\t return table.String()\n//\t}\n//\n// Output:\n//\n//\t| ID | Title | Status | Date |\n//\t| --- | --- | --- | --- |\n//\t| #1 | Add a new validator | succeed | 2024-01-01 |\n//\t| #2 | Change parameter | timed out | 2024-01-02 |\npackage mdtable\n\nimport (\n\t\"strings\"\n)\n\ntype Table struct {\n\tHeaders []string\n\tRows [][]string\n\t// XXX: optional headers alignment.\n}\n\nfunc (t *Table) Append(row []string) {\n\tt.Rows = append(t.Rows, row)\n}\n\nfunc (t Table) String() string {\n\t// XXX: switch to using text/tabwriter when porting to Gno to support\n\t// better-formatted raw Markdown output.\n\n\tif len(t.Headers) == 0 \u0026\u0026 len(t.Rows) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif len(t.Headers) == 0 {\n\t\tt.Headers = make([]string, len(t.Rows[0]))\n\t}\n\n\t// Print header.\n\tsb.WriteString(\"| \" + strings.Join(t.Headers, \" | \") + \" |\\n\")\n\tsb.WriteString(\"|\" + strings.Repeat(\" --- |\", len(t.Headers)) + \"\\n\")\n\n\t// Print rows.\n\tfor _, row := range t.Rows {\n\t\tescapedRow := make([]string, len(row))\n\t\tfor i, cell := range row {\n\t\t\tescapedRow[i] = strings.ReplaceAll(cell, \"|\", \"\u0026#124;\") // Escape pipe characters.\n\t\t}\n\t\tsb.WriteString(\"| \" + strings.Join(escapedRow, \" | \") + \" |\\n\")\n\t}\n\n\treturn sb.String()\n}\n"},{"name":"mdtable_test.gno","body":"package mdtable_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/mdtable\"\n)\n\n// XXX: switch to `func Example() {}` when supported.\nfunc TestExample(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\"},\n\t\tRows: [][]string{\n\t\t\t{\"#1\", \"Add a new validator\", \"succeed\"},\n\t\t\t{\"#2\", \"Change parameter\", \"timed out\"},\n\t\t\t{\"#3\", \"Fill pool\", \"active\"},\n\t\t},\n\t}\n\n\tgot := table.String()\n\texpected := `| ID | Title | Status |\n| --- | --- | --- |\n| #1 | Add a new validator | succeed |\n| #2 | Change parameter | timed out |\n| #3 | Fill pool | active |\n`\n\n\turequire.Equal(t, got, expected)\n}\n\nfunc TestTableString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\ttable mdtable.Table\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"With Headers and Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Headers\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| | | | |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Pipe Character in Content\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new | validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new \u0026#124; validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Varying Row Sizes\", // XXX: should we have a different behavior?\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"Extra Column\"},\n\t\t\t\t\t{\"#3\", \"Fill pool\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title |\n| --- | --- |\n| #1 | Add a new validator |\n| #2 | Change parameter | Extra Column |\n| #3 | Fill pool |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With UTF-8 Characters\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Café\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"München\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t\t{\"#3\", \"São Paulo\", \"active\", \"2024-01-03\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Café | succeed | 2024-01-01 |\n| #2 | München | timed out | 2024-01-02 |\n| #3 | São Paulo | active | 2024-01-03 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With no Headers and no Rows\",\n\t\t\ttable: mdtable.Table{},\n\t\t\texpected: ``,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := tt.table.String()\n\t\t\turequire.Equal(t, got, tt.expected)\n\t\t})\n\t}\n}\n\nfunc TestTableAppend(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t}\n\n\t// Use the Append method to add rows to the table\n\ttable.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n\ttable.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n\ttable.Append([]string{\"#3\", \"Fill pool\", \"active\", \"2024-01-03\"})\n\tgot := table.String()\n\n\texpected := `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n| #3 | Fill pool | active | 2024-01-03 |\n`\n\turequire.Equal(t, got, expected)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lbapbkMKWW8Ir3Xv9dNKiSwMEyAx2+4SgUNKfnM4bzisxuoahXu1uupZPZ8uQGHMuQSIQl8vs/X+CGDJTg1FCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"membstore","path":"gno.land/p/demo/membstore","files":[{"name":"members.gno","body":"package membstore\n\nimport (\n\t\"std\"\n)\n\n// MemberStore defines the member storage abstraction\ntype MemberStore interface {\n\t// Members returns all members in the store\n\tMembers(offset, count uint64) []Member\n\n\t// Size returns the current size of the store\n\tSize() int\n\n\t// IsMember returns a flag indicating if the given address\n\t// belongs to a member\n\tIsMember(address std.Address) bool\n\n\t// TotalPower returns the total voting power of the member store\n\tTotalPower() uint64\n\n\t// Member returns the requested member\n\tMember(address std.Address) (Member, error)\n\n\t// AddMember adds a member to the store\n\tAddMember(member Member) error\n\n\t// UpdateMember updates the member in the store.\n\t// If updating a member's voting power to 0,\n\t// the member will be removed\n\tUpdateMember(address std.Address, member Member) error\n}\n\n// Member holds the relevant member information\ntype Member struct {\n\tAddress std.Address // bech32 gno address of the member (unique)\n\tVotingPower uint64 // the voting power of the member\n}\n"},{"name":"membstore.gno","body":"package membstore\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrAlreadyMember = errors.New(\"address is already a member\")\n\tErrMissingMember = errors.New(\"address is not a member\")\n\tErrInvalidAddressUpdate = errors.New(\"invalid address update\")\n\tErrNotGovDAO = errors.New(\"caller not correct govdao instance\")\n)\n\n// maxRequestMembers is the maximum number of\n// paginated members that can be requested\nconst maxRequestMembers = 50\n\ntype Option func(*MembStore)\n\n// WithInitialMembers initializes the member store\n// with an initial member list\nfunc WithInitialMembers(members []Member) Option {\n\treturn func(store *MembStore) {\n\t\tfor _, m := range members {\n\t\t\tmemberAddr := m.Address.String()\n\n\t\t\t// Check if the member already exists\n\t\t\tif store.members.Has(memberAddr) {\n\t\t\t\tpanic(ufmt.Errorf(\"%s, %s\", memberAddr, ErrAlreadyMember))\n\t\t\t}\n\n\t\t\tstore.members.Set(memberAddr, m)\n\t\t\tstore.totalVotingPower += m.VotingPower\n\t\t}\n\t}\n}\n\n// WithDAOPkgPath initializes the member store\n// with a dao package path guard\nfunc WithDAOPkgPath(daoPkgPath string) Option {\n\treturn func(store *MembStore) {\n\t\tstore.daoPkgPath = daoPkgPath\n\t}\n}\n\n// MembStore implements the dao.MembStore abstraction\ntype MembStore struct {\n\tdaoPkgPath string // active dao pkg path, if any\n\tmembers *avl.Tree // std.Address -\u003e Member\n\ttotalVotingPower uint64 // cached value for quick lookups\n}\n\n// NewMembStore creates a new member store\nfunc NewMembStore(opts ...Option) *MembStore {\n\tm := \u0026MembStore{\n\t\tmembers: avl.NewTree(), // empty set\n\t\tdaoPkgPath: \"\", // no dao guard\n\t\ttotalVotingPower: 0,\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(m)\n\t}\n\n\treturn m\n}\n\n// AddMember adds member to the member store `m`.\n// It fails if the caller is not GovDAO or\n// if the member is already present\nfunc (m *MembStore) AddMember(member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Check if the member exists\n\tif m.IsMember(member.Address) {\n\t\treturn ErrAlreadyMember\n\t}\n\n\t// Add the member\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tm.totalVotingPower += member.VotingPower\n\n\treturn nil\n}\n\n// UpdateMember updates the member with the given address.\n// Updating fails if the caller is not GovDAO.\nfunc (m *MembStore) UpdateMember(address std.Address, member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Get the member\n\toldMember, err := m.Member(address)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check if this is a removal request\n\tif member.VotingPower == 0 {\n\t\tm.members.Remove(address.String())\n\n\t\t// Update the total voting power\n\t\tm.totalVotingPower -= oldMember.VotingPower\n\n\t\treturn nil\n\t}\n\n\t// Check that the member wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != member.Address\n\tif isAddressUpdate \u0026\u0026 m.IsMember(member.Address) {\n\t\treturn ErrInvalidAddressUpdate\n\t}\n\n\t// Remove the old member info\n\t// in case the address changed\n\tif address != member.Address {\n\t\tm.members.Remove(address.String())\n\t}\n\n\t// Save the new member info\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tdifference := member.VotingPower - oldMember.VotingPower\n\tm.totalVotingPower += difference\n\n\treturn nil\n}\n\n// IsMember returns a flag indicating if the given\n// address belongs to a member of the member store\nfunc (m *MembStore) IsMember(address std.Address) bool {\n\t_, exists := m.members.Get(address.String())\n\n\treturn exists\n}\n\n// Member returns the member associated with the given address\nfunc (m *MembStore) Member(address std.Address) (Member, error) {\n\tmember, exists := m.members.Get(address.String())\n\tif !exists {\n\t\treturn Member{}, ErrMissingMember\n\t}\n\n\treturn member.(Member), nil\n}\n\n// Members returns a paginated list of members from\n// the member store. If the store is empty, an empty slice\n// is returned instead\nfunc (m *MembStore) Members(offset, count uint64) []Member {\n\t// Calculate the left and right bounds\n\tif count \u003c 1 || offset \u003e= uint64(m.members.Size()) {\n\t\treturn []Member{}\n\t}\n\n\t// Limit the maximum number of returned members\n\tif count \u003e maxRequestMembers {\n\t\tcount = maxRequestMembers\n\t}\n\n\t// Gather the members\n\tmembers := make([]Member, 0)\n\tm.members.IterateByOffset(\n\t\tint(offset),\n\t\tint(count),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tmember := val.(Member)\n\n\t\t\t// Save the member\n\t\t\tmembers = append(members, member)\n\n\t\t\treturn false\n\t\t})\n\n\treturn members\n}\n\n// Size returns the number of active members in the member store\nfunc (m *MembStore) Size() int {\n\treturn m.members.Size()\n}\n\n// TotalPower returns the total voting power\n// of the member store\nfunc (m *MembStore) TotalPower() uint64 {\n\treturn m.totalVotingPower\n}\n\n// isCallerDAORealm returns a flag indicating if the\n// current caller context is the active DAO Realm.\n// We need to include a dao guard, even if the\n// executor guarantees it, because\n// the API of the member store is public and callable\n// by anyone who has a reference to the member store instance.\nfunc (m *MembStore) isCallerDAORealm() bool {\n\treturn m.daoPkgPath == \"\" || std.CurrentRealm().PkgPath() == m.daoPkgPath\n}\n"},{"name":"membstore_test.gno","body":"package membstore\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []Member {\n\tt.Helper()\n\n\tmembers := make([]Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestMembStore_GetMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"member not found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\t_, err := m.Member(testutils.TestAddress(\"random\"))\n\t\tuassert.ErrorIs(t, err, ErrMissingMember)\n\t})\n\n\tt.Run(\"valid member fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\t_, err := m.Member(members[0].Address)\n\t\tuassert.NoError(t, err)\n\t})\n}\n\nfunc TestMembStore_GetMembers(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no members\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tmembers := m.Members(0, 10)\n\t\tuassert.Equal(t, 0, len(members))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumMembers = maxRequestMembers * 2\n\t\t\thalfRange = numMembers / 2\n\n\t\t\tmembers = generateMembers(t, numMembers)\n\t\t\tm = NewMembStore(WithInitialMembers(members))\n\n\t\t\tverifyMembersPresent = func(members, fetchedMembers []Member) {\n\t\t\t\tfor _, fetchedMember := range fetchedMembers {\n\t\t\t\t\tfor _, member := range members {\n\t\t\t\t\t\tif member.Address != fetchedMember.Address {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuassert.Equal(t, member.VotingPower, fetchedMember.VotingPower)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\turequire.Equal(t, numMembers, m.Size())\n\n\t\tfetchedMembers := m.Members(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\n\t\t// Fetch the other half\n\t\tfetchedMembers = m.Members(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\t})\n}\n\nfunc TestMembStore_IsMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.False(t, m.IsMember(testutils.TestAddress(\"random\")))\n\t})\n\n\tt.Run(\"existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tfor _, member := range members {\n\t\t\tuassert.True(t, m.IsMember(member.Address))\n\t\t}\n\t})\n}\n\nfunc TestMembStore_AddMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to add a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.AddMember(member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"member already exists\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to add a member\n\t\tuassert.ErrorIs(t, m.AddMember(members[0]), ErrAlreadyMember)\n\t})\n\n\tt.Run(\"new member added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to add a member\n\t\turequire.NoError(t, m.AddMember(members[0]))\n\n\t\t// Make sure the member is added\n\t\tuassert.True(t, m.IsMember(members[0].Address))\n\t})\n}\n\nfunc TestMembStore_Size(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.Equal(t, 0, m.Size())\n\t})\n\n\tt.Run(\"non-empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tuassert.Equal(t, len(members), m.Size())\n\t})\n}\n\nfunc TestMembStore_UpdateMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to update a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.UpdateMember(member.Address, member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[0]), ErrMissingMember)\n\t})\n\n\tt.Run(\"overwrite member attempt\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 2)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[1]), ErrInvalidAddressUpdate)\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\toldVotingPower := m.totalVotingPower\n\t\turequire.Equal(t, members[0].VotingPower, oldVotingPower)\n\n\t\tvotingPower := uint64(300)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\t\tuassert.Equal(t, votingPower, m.Members(0, 10)[0].VotingPower)\n\t\turequire.Equal(t, votingPower, m.totalVotingPower)\n\t})\n\n\tt.Run(\"member removed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\tvotingPower := uint64(0)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\n\t\t// Make sure the member was removed\n\t\tuassert.False(t, m.IsMember(members[0].Address))\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hbPen8BBurmVVE781MedXUlZC69jJg9s86VV/W4ODsJwN+yPipyVFh6GuXAM4vsckax9StFVNQVVXrlq1DfdBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"membstore","path":"gno.land/p/demo/membstore","files":[{"name":"members.gno","body":"package membstore\n\nimport (\n\t\"std\"\n)\n\n// MemberStore defines the member storage abstraction\ntype MemberStore interface {\n\t// Members returns all members in the store\n\tMembers(offset, count uint64) []Member\n\n\t// Size returns the current size of the store\n\tSize() int\n\n\t// IsMember returns a flag indicating if the given address\n\t// belongs to a member\n\tIsMember(address std.Address) bool\n\n\t// TotalPower returns the total voting power of the member store\n\tTotalPower() uint64\n\n\t// Member returns the requested member\n\tMember(address std.Address) (Member, error)\n\n\t// AddMember adds a member to the store\n\tAddMember(member Member) error\n\n\t// UpdateMember updates the member in the store.\n\t// If updating a member's voting power to 0,\n\t// the member will be removed\n\tUpdateMember(address std.Address, member Member) error\n}\n\n// Member holds the relevant member information\ntype Member struct {\n\tAddress std.Address // bech32 gno address of the member (unique)\n\tVotingPower uint64 // the voting power of the member\n}\n"},{"name":"membstore.gno","body":"package membstore\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrAlreadyMember = errors.New(\"address is already a member\")\n\tErrMissingMember = errors.New(\"address is not a member\")\n\tErrInvalidAddressUpdate = errors.New(\"invalid address update\")\n\tErrNotGovDAO = errors.New(\"caller not correct govdao instance\")\n)\n\n// maxRequestMembers is the maximum number of\n// paginated members that can be requested\nconst maxRequestMembers = 50\n\ntype Option func(*MembStore)\n\n// WithInitialMembers initializes the member store\n// with an initial member list\nfunc WithInitialMembers(members []Member) Option {\n\treturn func(store *MembStore) {\n\t\tfor _, m := range members {\n\t\t\tmemberAddr := m.Address.String()\n\n\t\t\t// Check if the member already exists\n\t\t\tif store.members.Has(memberAddr) {\n\t\t\t\tpanic(ufmt.Errorf(\"%s, %s\", memberAddr, ErrAlreadyMember))\n\t\t\t}\n\n\t\t\tstore.members.Set(memberAddr, m)\n\t\t\tstore.totalVotingPower += m.VotingPower\n\t\t}\n\t}\n}\n\n// WithDAOPkgPath initializes the member store\n// with a dao package path guard\nfunc WithDAOPkgPath(daoPkgPath string) Option {\n\treturn func(store *MembStore) {\n\t\tstore.daoPkgPath = daoPkgPath\n\t}\n}\n\n// MembStore implements the dao.MembStore abstraction\ntype MembStore struct {\n\tdaoPkgPath string // active dao pkg path, if any\n\tmembers *avl.Tree // std.Address -\u003e Member\n\ttotalVotingPower uint64 // cached value for quick lookups\n}\n\n// NewMembStore creates a new member store\nfunc NewMembStore(opts ...Option) *MembStore {\n\tm := \u0026MembStore{\n\t\tmembers: avl.NewTree(), // empty set\n\t\tdaoPkgPath: \"\", // no dao guard\n\t\ttotalVotingPower: 0,\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(m)\n\t}\n\n\treturn m\n}\n\n// AddMember adds member to the member store `m`.\n// It fails if the caller is not GovDAO or\n// if the member is already present\nfunc (m *MembStore) AddMember(member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Check if the member exists\n\tif m.IsMember(member.Address) {\n\t\treturn ErrAlreadyMember\n\t}\n\n\t// Add the member\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tm.totalVotingPower += member.VotingPower\n\n\treturn nil\n}\n\n// UpdateMember updates the member with the given address.\n// Updating fails if the caller is not GovDAO.\nfunc (m *MembStore) UpdateMember(address std.Address, member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Get the member\n\toldMember, err := m.Member(address)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check if this is a removal request\n\tif member.VotingPower == 0 {\n\t\tm.members.Remove(address.String())\n\n\t\t// Update the total voting power\n\t\tm.totalVotingPower -= oldMember.VotingPower\n\n\t\treturn nil\n\t}\n\n\t// Check that the member wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != member.Address\n\tif isAddressUpdate \u0026\u0026 m.IsMember(member.Address) {\n\t\treturn ErrInvalidAddressUpdate\n\t}\n\n\t// Remove the old member info\n\t// in case the address changed\n\tif address != member.Address {\n\t\tm.members.Remove(address.String())\n\t}\n\n\t// Save the new member info\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tdifference := member.VotingPower - oldMember.VotingPower\n\tm.totalVotingPower += difference\n\n\treturn nil\n}\n\n// IsMember returns a flag indicating if the given\n// address belongs to a member of the member store\nfunc (m *MembStore) IsMember(address std.Address) bool {\n\t_, exists := m.members.Get(address.String())\n\n\treturn exists\n}\n\n// Member returns the member associated with the given address\nfunc (m *MembStore) Member(address std.Address) (Member, error) {\n\tmember, exists := m.members.Get(address.String())\n\tif !exists {\n\t\treturn Member{}, ErrMissingMember\n\t}\n\n\treturn member.(Member), nil\n}\n\n// Members returns a paginated list of members from\n// the member store. If the store is empty, an empty slice\n// is returned instead\nfunc (m *MembStore) Members(offset, count uint64) []Member {\n\t// Calculate the left and right bounds\n\tif count \u003c 1 || offset \u003e= uint64(m.members.Size()) {\n\t\treturn []Member{}\n\t}\n\n\t// Limit the maximum number of returned members\n\tif count \u003e maxRequestMembers {\n\t\tcount = maxRequestMembers\n\t}\n\n\t// Gather the members\n\tmembers := make([]Member, 0)\n\tm.members.IterateByOffset(\n\t\tint(offset),\n\t\tint(count),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tmember := val.(Member)\n\n\t\t\t// Save the member\n\t\t\tmembers = append(members, member)\n\n\t\t\treturn false\n\t\t})\n\n\treturn members\n}\n\n// Size returns the number of active members in the member store\nfunc (m *MembStore) Size() int {\n\treturn m.members.Size()\n}\n\n// TotalPower returns the total voting power\n// of the member store\nfunc (m *MembStore) TotalPower() uint64 {\n\treturn m.totalVotingPower\n}\n\n// isCallerDAORealm returns a flag indicating if the\n// current caller context is the active DAO Realm.\n// We need to include a dao guard, even if the\n// executor guarantees it, because\n// the API of the member store is public and callable\n// by anyone who has a reference to the member store instance.\nfunc (m *MembStore) isCallerDAORealm() bool {\n\treturn m.daoPkgPath == \"\" || std.CurrentRealm().PkgPath() == m.daoPkgPath\n}\n"},{"name":"membstore_test.gno","body":"package membstore\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []Member {\n\tt.Helper()\n\n\tmembers := make([]Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestMembStore_GetMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"member not found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\t_, err := m.Member(testutils.TestAddress(\"random\"))\n\t\tuassert.ErrorIs(t, err, ErrMissingMember)\n\t})\n\n\tt.Run(\"valid member fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\t_, err := m.Member(members[0].Address)\n\t\tuassert.NoError(t, err)\n\t})\n}\n\nfunc TestMembStore_GetMembers(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no members\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tmembers := m.Members(0, 10)\n\t\tuassert.Equal(t, 0, len(members))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumMembers = maxRequestMembers * 2\n\t\t\thalfRange = numMembers / 2\n\n\t\t\tmembers = generateMembers(t, numMembers)\n\t\t\tm = NewMembStore(WithInitialMembers(members))\n\n\t\t\tverifyMembersPresent = func(members, fetchedMembers []Member) {\n\t\t\t\tfor _, fetchedMember := range fetchedMembers {\n\t\t\t\t\tfor _, member := range members {\n\t\t\t\t\t\tif member.Address != fetchedMember.Address {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuassert.Equal(t, member.VotingPower, fetchedMember.VotingPower)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\turequire.Equal(t, numMembers, m.Size())\n\n\t\tfetchedMembers := m.Members(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\n\t\t// Fetch the other half\n\t\tfetchedMembers = m.Members(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\t})\n}\n\nfunc TestMembStore_IsMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.False(t, m.IsMember(testutils.TestAddress(\"random\")))\n\t})\n\n\tt.Run(\"existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tfor _, member := range members {\n\t\t\tuassert.True(t, m.IsMember(member.Address))\n\t\t}\n\t})\n}\n\nfunc TestMembStore_AddMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to add a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.AddMember(member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"member already exists\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to add a member\n\t\tuassert.ErrorIs(t, m.AddMember(members[0]), ErrAlreadyMember)\n\t})\n\n\tt.Run(\"new member added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to add a member\n\t\turequire.NoError(t, m.AddMember(members[0]))\n\n\t\t// Make sure the member is added\n\t\tuassert.True(t, m.IsMember(members[0].Address))\n\t})\n}\n\nfunc TestMembStore_Size(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.Equal(t, 0, m.Size())\n\t})\n\n\tt.Run(\"non-empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tuassert.Equal(t, len(members), m.Size())\n\t})\n}\n\nfunc TestMembStore_UpdateMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to update a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.UpdateMember(member.Address, member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[0]), ErrMissingMember)\n\t})\n\n\tt.Run(\"overwrite member attempt\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 2)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[1]), ErrInvalidAddressUpdate)\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\toldVotingPower := m.totalVotingPower\n\t\turequire.Equal(t, members[0].VotingPower, oldVotingPower)\n\n\t\tvotingPower := uint64(300)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\t\tuassert.Equal(t, votingPower, m.Members(0, 10)[0].VotingPower)\n\t\turequire.Equal(t, votingPower, m.totalVotingPower)\n\t})\n\n\tt.Run(\"member removed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\tvotingPower := uint64(0)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\n\t\t// Make sure the member was removed\n\t\tuassert.False(t, m.IsMember(members[0].Address))\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hbPen8BBurmVVE781MedXUlZC69jJg9s86VV/W4ODsJwN+yPipyVFh6GuXAM4vsckax9StFVNQVVXrlq1DfdBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"membstore","path":"gno.land/p/demo/membstore","files":[{"name":"members.gno","body":"package membstore\n\nimport (\n\t\"std\"\n)\n\n// MemberStore defines the member storage abstraction\ntype MemberStore interface {\n\t// Members returns all members in the store\n\tMembers(offset, count uint64) []Member\n\n\t// Size returns the current size of the store\n\tSize() int\n\n\t// IsMember returns a flag indicating if the given address\n\t// belongs to a member\n\tIsMember(address std.Address) bool\n\n\t// TotalPower returns the total voting power of the member store\n\tTotalPower() uint64\n\n\t// Member returns the requested member\n\tMember(address std.Address) (Member, error)\n\n\t// AddMember adds a member to the store\n\tAddMember(member Member) error\n\n\t// UpdateMember updates the member in the store.\n\t// If updating a member's voting power to 0,\n\t// the member will be removed\n\tUpdateMember(address std.Address, member Member) error\n}\n\n// Member holds the relevant member information\ntype Member struct {\n\tAddress std.Address // bech32 gno address of the member (unique)\n\tVotingPower uint64 // the voting power of the member\n}\n"},{"name":"membstore.gno","body":"package membstore\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrAlreadyMember = errors.New(\"address is already a member\")\n\tErrMissingMember = errors.New(\"address is not a member\")\n\tErrInvalidAddressUpdate = errors.New(\"invalid address update\")\n\tErrNotGovDAO = errors.New(\"caller not correct govdao instance\")\n)\n\n// maxRequestMembers is the maximum number of\n// paginated members that can be requested\nconst maxRequestMembers = 50\n\ntype Option func(*MembStore)\n\n// WithInitialMembers initializes the member store\n// with an initial member list\nfunc WithInitialMembers(members []Member) Option {\n\treturn func(store *MembStore) {\n\t\tfor _, m := range members {\n\t\t\tmemberAddr := m.Address.String()\n\n\t\t\t// Check if the member already exists\n\t\t\tif store.members.Has(memberAddr) {\n\t\t\t\tpanic(ufmt.Errorf(\"%s, %s\", memberAddr, ErrAlreadyMember))\n\t\t\t}\n\n\t\t\tstore.members.Set(memberAddr, m)\n\t\t\tstore.totalVotingPower += m.VotingPower\n\t\t}\n\t}\n}\n\n// WithDAOPkgPath initializes the member store\n// with a dao package path guard\nfunc WithDAOPkgPath(daoPkgPath string) Option {\n\treturn func(store *MembStore) {\n\t\tstore.daoPkgPath = daoPkgPath\n\t}\n}\n\n// MembStore implements the dao.MembStore abstraction\ntype MembStore struct {\n\tdaoPkgPath string // active dao pkg path, if any\n\tmembers *avl.Tree // std.Address -\u003e Member\n\ttotalVotingPower uint64 // cached value for quick lookups\n}\n\n// NewMembStore creates a new member store\nfunc NewMembStore(opts ...Option) *MembStore {\n\tm := \u0026MembStore{\n\t\tmembers: avl.NewTree(), // empty set\n\t\tdaoPkgPath: \"\", // no dao guard\n\t\ttotalVotingPower: 0,\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(m)\n\t}\n\n\treturn m\n}\n\n// AddMember adds member to the member store `m`.\n// It fails if the caller is not GovDAO or\n// if the member is already present\nfunc (m *MembStore) AddMember(member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Check if the member exists\n\tif m.IsMember(member.Address) {\n\t\treturn ErrAlreadyMember\n\t}\n\n\t// Add the member\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tm.totalVotingPower += member.VotingPower\n\n\treturn nil\n}\n\n// UpdateMember updates the member with the given address.\n// Updating fails if the caller is not GovDAO.\nfunc (m *MembStore) UpdateMember(address std.Address, member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Get the member\n\toldMember, err := m.Member(address)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check if this is a removal request\n\tif member.VotingPower == 0 {\n\t\tm.members.Remove(address.String())\n\n\t\t// Update the total voting power\n\t\tm.totalVotingPower -= oldMember.VotingPower\n\n\t\treturn nil\n\t}\n\n\t// Check that the member wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != member.Address\n\tif isAddressUpdate \u0026\u0026 m.IsMember(member.Address) {\n\t\treturn ErrInvalidAddressUpdate\n\t}\n\n\t// Remove the old member info\n\t// in case the address changed\n\tif address != member.Address {\n\t\tm.members.Remove(address.String())\n\t}\n\n\t// Save the new member info\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tdifference := member.VotingPower - oldMember.VotingPower\n\tm.totalVotingPower += difference\n\n\treturn nil\n}\n\n// IsMember returns a flag indicating if the given\n// address belongs to a member of the member store\nfunc (m *MembStore) IsMember(address std.Address) bool {\n\t_, exists := m.members.Get(address.String())\n\n\treturn exists\n}\n\n// Member returns the member associated with the given address\nfunc (m *MembStore) Member(address std.Address) (Member, error) {\n\tmember, exists := m.members.Get(address.String())\n\tif !exists {\n\t\treturn Member{}, ErrMissingMember\n\t}\n\n\treturn member.(Member), nil\n}\n\n// Members returns a paginated list of members from\n// the member store. If the store is empty, an empty slice\n// is returned instead\nfunc (m *MembStore) Members(offset, count uint64) []Member {\n\t// Calculate the left and right bounds\n\tif count \u003c 1 || offset \u003e= uint64(m.members.Size()) {\n\t\treturn []Member{}\n\t}\n\n\t// Limit the maximum number of returned members\n\tif count \u003e maxRequestMembers {\n\t\tcount = maxRequestMembers\n\t}\n\n\t// Gather the members\n\tmembers := make([]Member, 0)\n\tm.members.IterateByOffset(\n\t\tint(offset),\n\t\tint(count),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tmember := val.(Member)\n\n\t\t\t// Save the member\n\t\t\tmembers = append(members, member)\n\n\t\t\treturn false\n\t\t})\n\n\treturn members\n}\n\n// Size returns the number of active members in the member store\nfunc (m *MembStore) Size() int {\n\treturn m.members.Size()\n}\n\n// TotalPower returns the total voting power\n// of the member store\nfunc (m *MembStore) TotalPower() uint64 {\n\treturn m.totalVotingPower\n}\n\n// isCallerDAORealm returns a flag indicating if the\n// current caller context is the active DAO Realm.\n// We need to include a dao guard, even if the\n// executor guarantees it, because\n// the API of the member store is public and callable\n// by anyone who has a reference to the member store instance.\nfunc (m *MembStore) isCallerDAORealm() bool {\n\treturn m.daoPkgPath == \"\" || std.CurrentRealm().PkgPath() == m.daoPkgPath\n}\n"},{"name":"membstore_test.gno","body":"package membstore\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []Member {\n\tt.Helper()\n\n\tmembers := make([]Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestMembStore_GetMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"member not found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\t_, err := m.Member(testutils.TestAddress(\"random\"))\n\t\tuassert.ErrorIs(t, err, ErrMissingMember)\n\t})\n\n\tt.Run(\"valid member fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\t_, err := m.Member(members[0].Address)\n\t\tuassert.NoError(t, err)\n\t})\n}\n\nfunc TestMembStore_GetMembers(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no members\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tmembers := m.Members(0, 10)\n\t\tuassert.Equal(t, 0, len(members))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumMembers = maxRequestMembers * 2\n\t\t\thalfRange = numMembers / 2\n\n\t\t\tmembers = generateMembers(t, numMembers)\n\t\t\tm = NewMembStore(WithInitialMembers(members))\n\n\t\t\tverifyMembersPresent = func(members, fetchedMembers []Member) {\n\t\t\t\tfor _, fetchedMember := range fetchedMembers {\n\t\t\t\t\tfor _, member := range members {\n\t\t\t\t\t\tif member.Address != fetchedMember.Address {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuassert.Equal(t, member.VotingPower, fetchedMember.VotingPower)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\turequire.Equal(t, numMembers, m.Size())\n\n\t\tfetchedMembers := m.Members(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\n\t\t// Fetch the other half\n\t\tfetchedMembers = m.Members(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\t})\n}\n\nfunc TestMembStore_IsMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.False(t, m.IsMember(testutils.TestAddress(\"random\")))\n\t})\n\n\tt.Run(\"existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tfor _, member := range members {\n\t\t\tuassert.True(t, m.IsMember(member.Address))\n\t\t}\n\t})\n}\n\nfunc TestMembStore_AddMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to add a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.AddMember(member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"member already exists\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to add a member\n\t\tuassert.ErrorIs(t, m.AddMember(members[0]), ErrAlreadyMember)\n\t})\n\n\tt.Run(\"new member added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to add a member\n\t\turequire.NoError(t, m.AddMember(members[0]))\n\n\t\t// Make sure the member is added\n\t\tuassert.True(t, m.IsMember(members[0].Address))\n\t})\n}\n\nfunc TestMembStore_Size(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.Equal(t, 0, m.Size())\n\t})\n\n\tt.Run(\"non-empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tuassert.Equal(t, len(members), m.Size())\n\t})\n}\n\nfunc TestMembStore_UpdateMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to update a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.UpdateMember(member.Address, member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[0]), ErrMissingMember)\n\t})\n\n\tt.Run(\"overwrite member attempt\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 2)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[1]), ErrInvalidAddressUpdate)\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\toldVotingPower := m.totalVotingPower\n\t\turequire.Equal(t, members[0].VotingPower, oldVotingPower)\n\n\t\tvotingPower := uint64(300)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\t\tuassert.Equal(t, votingPower, m.Members(0, 10)[0].VotingPower)\n\t\turequire.Equal(t, votingPower, m.totalVotingPower)\n\t})\n\n\tt.Run(\"member removed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\tvotingPower := uint64(0)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\n\t\t// Make sure the member was removed\n\t\tuassert.False(t, m.IsMember(members[0].Address))\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hbPen8BBurmVVE781MedXUlZC69jJg9s86VV/W4ODsJwN+yPipyVFh6GuXAM4vsckax9StFVNQVVXrlq1DfdBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"memeland","path":"gno.land/p/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nconst (\n\tDATE_CREATED = \"DATE_CREATED\"\n\tUPVOTES = \"UPVOTES\"\n)\n\ntype Post struct {\n\tID string\n\tData string\n\tAuthor std.Address\n\tTimestamp time.Time\n\tUpvoteTracker *avl.Tree // address \u003e struct{}{}\n}\n\ntype Memeland struct {\n\t*ownable.Ownable\n\tPosts []*Post\n\tMemeCounter seqid.ID\n}\n\nfunc NewMemeland() *Memeland {\n\treturn \u0026Memeland{\n\t\tOwnable: ownable.New(),\n\t\tPosts: make([]*Post, 0),\n\t}\n}\n\n// PostMeme - Adds a new post\nfunc (m *Memeland) PostMeme(data string, timestamp int64) string {\n\tif data == \"\" || timestamp \u003c= 0 {\n\t\tpanic(\"timestamp or data cannot be empty\")\n\t}\n\n\t// Generate ID\n\tid := m.MemeCounter.Next().String()\n\n\tnewPost := \u0026Post{\n\t\tID: id,\n\t\tData: data,\n\t\tAuthor: std.PrevRealm().Addr(),\n\t\tTimestamp: time.Unix(timestamp, 0),\n\t\tUpvoteTracker: avl.NewTree(),\n\t}\n\n\tm.Posts = append(m.Posts, newPost)\n\treturn id\n}\n\nfunc (m *Memeland) Upvote(id string) string {\n\tpost := m.getPost(id)\n\tif post == nil {\n\t\tpanic(\"post with specified ID does not exist\")\n\t}\n\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif _, exists := post.UpvoteTracker.Get(caller); exists {\n\t\tpanic(\"user has already upvoted this post\")\n\t}\n\n\tpost.UpvoteTracker.Set(caller, struct{}{})\n\n\treturn \"upvote successful\"\n}\n\n// GetPostsInRange returns a JSON string of posts within the given timestamp range, supporting pagination\nfunc (m *Memeland) GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\tif len(m.Posts) == 0 {\n\t\treturn \"[]\"\n\t}\n\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\t// No empty pages\n\tif pageSize \u003c 1 {\n\t\tpanic(\"page size cannot be less than 1\")\n\t}\n\n\t// No pages larger than 10\n\tif pageSize \u003e 10 {\n\t\tpanic(\"page size cannot be larger than 10\")\n\t}\n\n\t// Need to pass in a sort parameter\n\tif sortBy == \"\" {\n\t\tpanic(\"sort order cannot be empty\")\n\t}\n\n\tvar filteredPosts []*Post\n\n\tstart := time.Unix(startTimestamp, 0)\n\tend := time.Unix(endTimestamp, 0)\n\n\t// Filtering posts\n\tfor _, p := range m.Posts {\n\t\tif !p.Timestamp.Before(start) \u0026\u0026 !p.Timestamp.After(end) {\n\t\t\tfilteredPosts = append(filteredPosts, p)\n\t\t}\n\t}\n\n\tswitch sortBy {\n\t// Sort by upvote descending\n\tcase UPVOTES:\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].UpvoteTracker.Size() \u003e filteredPosts[j].UpvoteTracker.Size()\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tcase DATE_CREATED:\n\t\t// Sort by timestamp, beginning with newest\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].Timestamp.After(filteredPosts[j].Timestamp)\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tdefault:\n\t\tpanic(\"sort order can only be \\\"UPVOTES\\\" or \\\"DATE_CREATED\\\"\")\n\t}\n\n\t// Pagination\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any posts\n\tif startIndex \u003e= len(filteredPosts) {\n\t\treturn \"[]\"\n\t}\n\n\t// If page contains fewer posts than the page size\n\tif endIndex \u003e len(filteredPosts) {\n\t\tendIndex = len(filteredPosts)\n\t}\n\n\t// Return JSON representation of paginated and sorted posts\n\treturn PostsToJSONString(filteredPosts[startIndex:endIndex])\n}\n\n// RemovePost allows the owner to remove a post with a specific ID\nfunc (m *Memeland) RemovePost(id string) string {\n\tif id == \"\" {\n\t\tpanic(\"id cannot be empty\")\n\t}\n\n\tif err := m.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor i, post := range m.Posts {\n\t\tif post.ID == id {\n\t\t\tm.Posts = append(m.Posts[:i], m.Posts[i+1:]...)\n\t\t\treturn id\n\t\t}\n\t}\n\n\tpanic(\"post with specified id does not exist\")\n}\n\n// PostsToJSONString converts a slice of Post structs into a JSON string\nfunc PostsToJSONString(posts []*Post) string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"[\")\n\n\tfor i, post := range posts {\n\t\tif i \u003e 0 {\n\t\t\tsb.WriteString(\",\")\n\t\t}\n\n\t\tsb.WriteString(PostToJSONString(post))\n\t}\n\tsb.WriteString(\"]\")\n\n\treturn sb.String()\n}\n\n// PostToJSONString returns a Post formatted as a JSON string\nfunc PostToJSONString(post *Post) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(\"{\")\n\tsb.WriteString(`\"id\":\"` + post.ID + `\",`)\n\tsb.WriteString(`\"data\":\"` + escapeString(post.Data) + `\",`)\n\tsb.WriteString(`\"author\":\"` + escapeString(post.Author.String()) + `\",`)\n\tsb.WriteString(`\"timestamp\":\"` + strconv.Itoa(int(post.Timestamp.Unix())) + `\",`)\n\tsb.WriteString(`\"upvotes\":` + strconv.Itoa(post.UpvoteTracker.Size()))\n\tsb.WriteString(\"}\")\n\n\treturn sb.String()\n}\n\n// escapeString escapes quotes in a string for JSON compatibility.\nfunc escapeString(s string) string {\n\treturn strings.ReplaceAll(s, `\"`, `\\\"`)\n}\n\nfunc (m *Memeland) getPost(id string) *Post {\n\tfor _, p := range m.Posts {\n\t\tif p.ID == id {\n\t\t\treturn p\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// PostSorter is a flexible sorter for the *Post slice\ntype PostSorter struct {\n\tPosts []*Post\n\tLessF func(i, j int) bool\n}\n\nfunc (p PostSorter) Len() int {\n\treturn len(p.Posts)\n}\n\nfunc (p PostSorter) Swap(i, j int) {\n\tp.Posts[i], p.Posts[j] = p.Posts[j], p.Posts[i]\n}\n\nfunc (p PostSorter) Less(i, j int) bool {\n\treturn p.LessF(i, j)\n}\n"},{"name":"memeland_test.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestPostMeme(t *testing.T) {\n\tm := NewMemeland()\n\tid := m.PostMeme(\"Test meme data\", time.Now().Unix())\n\tuassert.NotEqual(t, \"\", string(id), \"Expected valid ID, got empty string\")\n}\n\nfunc TestGetPostsInRangePagination(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttestCases := []struct {\n\t\tpage int\n\t\tpageSize int\n\t\texpectedNumOfPosts int\n\t}{\n\t\t{page: 1, pageSize: 1, expectedNumOfPosts: 1}, // one per page\n\t\t{page: 2, pageSize: 1, expectedNumOfPosts: 1}, // one on second page\n\t\t{page: 1, pageSize: numOfPosts, expectedNumOfPosts: numOfPosts}, // all posts on single page\n\t\t{page: 12, pageSize: 1, expectedNumOfPosts: 0}, // empty page\n\t\t{page: 1, pageSize: numOfPosts + 1, expectedNumOfPosts: numOfPosts}, // page with fewer posts than its size\n\t\t{page: 5, pageSize: numOfPosts / 5, expectedNumOfPosts: 1}, // evenly distribute posts per page\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(ufmt.Sprintf(\"Page%d_Size%d\", tc.page, tc.pageSize), func(t *testing.T) {\n\t\t\tresult := m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), tc.page, tc.pageSize, \"DATE_CREATED\")\n\n\t\t\t// Count posts by how many times id: shows up in JSON string\n\t\t\tpostCount := strings.Count(result, `\"id\":\"`)\n\t\t\tuassert.Equal(t, tc.expectedNumOfPosts, postCount)\n\t\t})\n\t}\n}\n\nfunc TestGetPostsInRangeByTimestamp(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\tnumOfPosts, // all memes on the page\n\t\t\"DATE_CREATED\", // sort by newest first\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if data is there\n\tfor _, expData := range memeData {\n\t\tcheck := strings.Contains(jsonStr, expData)\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s in the JSON string, but counld't find it\", expData))\n\t}\n\n\t// Check if ordering is correct, sort by created date\n\tfor i := 0; i \u003c len(memeData)-2; i++ {\n\t\tcheck := strings.Index(jsonStr, memeData[i]) \u003e= strings.Index(jsonStr, memeData[i+1])\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s, but was at %d, and %d\", memeData[i], memeData[i+1], i, i+1))\n\t}\n}\n\nfunc TestGetPostsInRangeByUpvote(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tmemeData1 := \"Meme #1\"\n\tmemeData2 := \"Meme #2\"\n\n\t// Create posts at specific times for testing\n\tid1 := m.PostMeme(memeData1, now.Unix())\n\tid2 := m.PostMeme(memeData2, now.Add(time.Minute).Unix())\n\n\tm.Upvote(id1)\n\tm.Upvote(id2)\n\n\t// Change caller so avoid double upvote panic\n\tstd.TestSetOrigCaller(testutils.TestAddress(\"alice\"))\n\tm.Upvote(id1)\n\n\t// Final upvote count:\n\t// Meme #1 - 2 upvote\n\t// Meme #2 - 1 upvotes\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-time.Minute)\n\tafterLatest := now.Add(time.Hour)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\t2, // all memes on the page\n\t\t\"UPVOTES\", // sort by upvote\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if ordering is correct\n\tcheck := strings.Index(jsonStr, \"Meme #1\") \u003c= strings.Index(jsonStr, \"Meme #2\")\n\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s\", memeData1, memeData2))\n}\n\nfunc TestBadSortBy(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttests := []struct {\n\t\tname string\n\t\tsortBy string\n\t\twantPanic string\n\t}{\n\t\t{\n\t\t\tname: \"Empty sortBy\",\n\t\t\tsortBy: \"\",\n\t\t\twantPanic: \"runtime error: index out of range\",\n\t\t},\n\t\t{\n\t\t\tname: \"Wrong sortBy\",\n\t\t\tsortBy: \"random string\",\n\t\t\twantPanic: \"\",\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\t// Panics should be caught\n\t\t\t_ = m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), 1, 1, tc.sortBy)\n\t\t})\n\t}\n}\n\nfunc TestNoPosts(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\n\tjsonStr := m.GetPostsInRange(0, now, 1, 1, \"DATE_CREATED\")\n\n\tuassert.Equal(t, jsonStr, \"[]\")\n}\n\nfunc TestUpvote(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\tpostID := m.PostMeme(\"Test meme data\", now)\n\n\t// Initial upvote count should be 0\n\tpost := m.getPost(postID)\n\tuassert.Equal(t, 0, post.UpvoteTracker.Size())\n\n\t// Upvote the post\n\tupvoteResult := m.Upvote(postID)\n\tuassert.Equal(t, \"upvote successful\", upvoteResult)\n\n\t// Retrieve the post again and check the upvote count\n\tpost = m.getPost(postID)\n\tuassert.Equal(t, 1, post.UpvoteTracker.Size())\n}\n\nfunc TestDelete(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\t// Alice is admin\n\tm := NewMemeland()\n\n\t// Set caller to Bob\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\t// Bob adds post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Alice removes Bob's post\n\tstd.TestSetOrigCaller(alice)\n\n\tid := m.RemovePost(postID)\n\tuassert.Equal(t, postID, id, \"post IDs not matching\")\n\tuassert.Equal(t, 0, len(m.Posts), \"there should be 0 posts after removing\")\n}\n\nfunc TestDeleteByNonAdmin(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Bob will try to delete meme posted by Alice, which should fail\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t}\n\t}()\n\n\t// Should panic - caught by defer\n\tm.RemovePost(postID)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Et8Z52snnhb0mvVkUnsQd04/gh990WHUvrHFVh9Y8cj7Dy8YZq9STwP213iejqgnnuGQHN/G/fESigMAqXhQCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"memeland","path":"gno.land/p/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nconst (\n\tDATE_CREATED = \"DATE_CREATED\"\n\tUPVOTES = \"UPVOTES\"\n)\n\ntype Post struct {\n\tID string\n\tData string\n\tAuthor std.Address\n\tTimestamp time.Time\n\tUpvoteTracker *avl.Tree // address \u003e struct{}{}\n}\n\ntype Memeland struct {\n\t*ownable.Ownable\n\tPosts []*Post\n\tMemeCounter seqid.ID\n}\n\nfunc NewMemeland() *Memeland {\n\treturn \u0026Memeland{\n\t\tOwnable: ownable.New(),\n\t\tPosts: make([]*Post, 0),\n\t}\n}\n\n// PostMeme - Adds a new post\nfunc (m *Memeland) PostMeme(data string, timestamp int64) string {\n\tif data == \"\" || timestamp \u003c= 0 {\n\t\tpanic(\"timestamp or data cannot be empty\")\n\t}\n\n\t// Generate ID\n\tid := m.MemeCounter.Next().String()\n\n\tnewPost := \u0026Post{\n\t\tID: id,\n\t\tData: data,\n\t\tAuthor: std.PrevRealm().Addr(),\n\t\tTimestamp: time.Unix(timestamp, 0),\n\t\tUpvoteTracker: avl.NewTree(),\n\t}\n\n\tm.Posts = append(m.Posts, newPost)\n\treturn id\n}\n\nfunc (m *Memeland) Upvote(id string) string {\n\tpost := m.getPost(id)\n\tif post == nil {\n\t\tpanic(\"post with specified ID does not exist\")\n\t}\n\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif _, exists := post.UpvoteTracker.Get(caller); exists {\n\t\tpanic(\"user has already upvoted this post\")\n\t}\n\n\tpost.UpvoteTracker.Set(caller, struct{}{})\n\n\treturn \"upvote successful\"\n}\n\n// GetPostsInRange returns a JSON string of posts within the given timestamp range, supporting pagination\nfunc (m *Memeland) GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\tif len(m.Posts) == 0 {\n\t\treturn \"[]\"\n\t}\n\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\t// No empty pages\n\tif pageSize \u003c 1 {\n\t\tpanic(\"page size cannot be less than 1\")\n\t}\n\n\t// No pages larger than 10\n\tif pageSize \u003e 10 {\n\t\tpanic(\"page size cannot be larger than 10\")\n\t}\n\n\t// Need to pass in a sort parameter\n\tif sortBy == \"\" {\n\t\tpanic(\"sort order cannot be empty\")\n\t}\n\n\tvar filteredPosts []*Post\n\n\tstart := time.Unix(startTimestamp, 0)\n\tend := time.Unix(endTimestamp, 0)\n\n\t// Filtering posts\n\tfor _, p := range m.Posts {\n\t\tif !p.Timestamp.Before(start) \u0026\u0026 !p.Timestamp.After(end) {\n\t\t\tfilteredPosts = append(filteredPosts, p)\n\t\t}\n\t}\n\n\tswitch sortBy {\n\t// Sort by upvote descending\n\tcase UPVOTES:\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].UpvoteTracker.Size() \u003e filteredPosts[j].UpvoteTracker.Size()\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tcase DATE_CREATED:\n\t\t// Sort by timestamp, beginning with newest\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].Timestamp.After(filteredPosts[j].Timestamp)\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tdefault:\n\t\tpanic(\"sort order can only be \\\"UPVOTES\\\" or \\\"DATE_CREATED\\\"\")\n\t}\n\n\t// Pagination\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any posts\n\tif startIndex \u003e= len(filteredPosts) {\n\t\treturn \"[]\"\n\t}\n\n\t// If page contains fewer posts than the page size\n\tif endIndex \u003e len(filteredPosts) {\n\t\tendIndex = len(filteredPosts)\n\t}\n\n\t// Return JSON representation of paginated and sorted posts\n\treturn PostsToJSONString(filteredPosts[startIndex:endIndex])\n}\n\n// RemovePost allows the owner to remove a post with a specific ID\nfunc (m *Memeland) RemovePost(id string) string {\n\tif id == \"\" {\n\t\tpanic(\"id cannot be empty\")\n\t}\n\n\tif err := m.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor i, post := range m.Posts {\n\t\tif post.ID == id {\n\t\t\tm.Posts = append(m.Posts[:i], m.Posts[i+1:]...)\n\t\t\treturn id\n\t\t}\n\t}\n\n\tpanic(\"post with specified id does not exist\")\n}\n\n// PostsToJSONString converts a slice of Post structs into a JSON string\nfunc PostsToJSONString(posts []*Post) string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"[\")\n\n\tfor i, post := range posts {\n\t\tif i \u003e 0 {\n\t\t\tsb.WriteString(\",\")\n\t\t}\n\n\t\tsb.WriteString(PostToJSONString(post))\n\t}\n\tsb.WriteString(\"]\")\n\n\treturn sb.String()\n}\n\n// PostToJSONString returns a Post formatted as a JSON string\nfunc PostToJSONString(post *Post) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(\"{\")\n\tsb.WriteString(`\"id\":\"` + post.ID + `\",`)\n\tsb.WriteString(`\"data\":\"` + escapeString(post.Data) + `\",`)\n\tsb.WriteString(`\"author\":\"` + escapeString(post.Author.String()) + `\",`)\n\tsb.WriteString(`\"timestamp\":\"` + strconv.Itoa(int(post.Timestamp.Unix())) + `\",`)\n\tsb.WriteString(`\"upvotes\":` + strconv.Itoa(post.UpvoteTracker.Size()))\n\tsb.WriteString(\"}\")\n\n\treturn sb.String()\n}\n\n// escapeString escapes quotes in a string for JSON compatibility.\nfunc escapeString(s string) string {\n\treturn strings.ReplaceAll(s, `\"`, `\\\"`)\n}\n\nfunc (m *Memeland) getPost(id string) *Post {\n\tfor _, p := range m.Posts {\n\t\tif p.ID == id {\n\t\t\treturn p\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// PostSorter is a flexible sorter for the *Post slice\ntype PostSorter struct {\n\tPosts []*Post\n\tLessF func(i, j int) bool\n}\n\nfunc (p PostSorter) Len() int {\n\treturn len(p.Posts)\n}\n\nfunc (p PostSorter) Swap(i, j int) {\n\tp.Posts[i], p.Posts[j] = p.Posts[j], p.Posts[i]\n}\n\nfunc (p PostSorter) Less(i, j int) bool {\n\treturn p.LessF(i, j)\n}\n"},{"name":"memeland_test.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestPostMeme(t *testing.T) {\n\tm := NewMemeland()\n\tid := m.PostMeme(\"Test meme data\", time.Now().Unix())\n\tuassert.NotEqual(t, \"\", string(id), \"Expected valid ID, got empty string\")\n}\n\nfunc TestGetPostsInRangePagination(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttestCases := []struct {\n\t\tpage int\n\t\tpageSize int\n\t\texpectedNumOfPosts int\n\t}{\n\t\t{page: 1, pageSize: 1, expectedNumOfPosts: 1}, // one per page\n\t\t{page: 2, pageSize: 1, expectedNumOfPosts: 1}, // one on second page\n\t\t{page: 1, pageSize: numOfPosts, expectedNumOfPosts: numOfPosts}, // all posts on single page\n\t\t{page: 12, pageSize: 1, expectedNumOfPosts: 0}, // empty page\n\t\t{page: 1, pageSize: numOfPosts + 1, expectedNumOfPosts: numOfPosts}, // page with fewer posts than its size\n\t\t{page: 5, pageSize: numOfPosts / 5, expectedNumOfPosts: 1}, // evenly distribute posts per page\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(ufmt.Sprintf(\"Page%d_Size%d\", tc.page, tc.pageSize), func(t *testing.T) {\n\t\t\tresult := m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), tc.page, tc.pageSize, \"DATE_CREATED\")\n\n\t\t\t// Count posts by how many times id: shows up in JSON string\n\t\t\tpostCount := strings.Count(result, `\"id\":\"`)\n\t\t\tuassert.Equal(t, tc.expectedNumOfPosts, postCount)\n\t\t})\n\t}\n}\n\nfunc TestGetPostsInRangeByTimestamp(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\tnumOfPosts, // all memes on the page\n\t\t\"DATE_CREATED\", // sort by newest first\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if data is there\n\tfor _, expData := range memeData {\n\t\tcheck := strings.Contains(jsonStr, expData)\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s in the JSON string, but counld't find it\", expData))\n\t}\n\n\t// Check if ordering is correct, sort by created date\n\tfor i := 0; i \u003c len(memeData)-2; i++ {\n\t\tcheck := strings.Index(jsonStr, memeData[i]) \u003e= strings.Index(jsonStr, memeData[i+1])\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s, but was at %d, and %d\", memeData[i], memeData[i+1], i, i+1))\n\t}\n}\n\nfunc TestGetPostsInRangeByUpvote(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tmemeData1 := \"Meme #1\"\n\tmemeData2 := \"Meme #2\"\n\n\t// Create posts at specific times for testing\n\tid1 := m.PostMeme(memeData1, now.Unix())\n\tid2 := m.PostMeme(memeData2, now.Add(time.Minute).Unix())\n\n\tm.Upvote(id1)\n\tm.Upvote(id2)\n\n\t// Change caller so avoid double upvote panic\n\tstd.TestSetOrigCaller(testutils.TestAddress(\"alice\"))\n\tm.Upvote(id1)\n\n\t// Final upvote count:\n\t// Meme #1 - 2 upvote\n\t// Meme #2 - 1 upvotes\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-time.Minute)\n\tafterLatest := now.Add(time.Hour)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\t2, // all memes on the page\n\t\t\"UPVOTES\", // sort by upvote\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if ordering is correct\n\tcheck := strings.Index(jsonStr, \"Meme #1\") \u003c= strings.Index(jsonStr, \"Meme #2\")\n\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s\", memeData1, memeData2))\n}\n\nfunc TestBadSortBy(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttests := []struct {\n\t\tname string\n\t\tsortBy string\n\t\twantPanic string\n\t}{\n\t\t{\n\t\t\tname: \"Empty sortBy\",\n\t\t\tsortBy: \"\",\n\t\t\twantPanic: \"runtime error: index out of range\",\n\t\t},\n\t\t{\n\t\t\tname: \"Wrong sortBy\",\n\t\t\tsortBy: \"random string\",\n\t\t\twantPanic: \"\",\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\t// Panics should be caught\n\t\t\t_ = m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), 1, 1, tc.sortBy)\n\t\t})\n\t}\n}\n\nfunc TestNoPosts(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\n\tjsonStr := m.GetPostsInRange(0, now, 1, 1, \"DATE_CREATED\")\n\n\tuassert.Equal(t, jsonStr, \"[]\")\n}\n\nfunc TestUpvote(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\tpostID := m.PostMeme(\"Test meme data\", now)\n\n\t// Initial upvote count should be 0\n\tpost := m.getPost(postID)\n\tuassert.Equal(t, 0, post.UpvoteTracker.Size())\n\n\t// Upvote the post\n\tupvoteResult := m.Upvote(postID)\n\tuassert.Equal(t, \"upvote successful\", upvoteResult)\n\n\t// Retrieve the post again and check the upvote count\n\tpost = m.getPost(postID)\n\tuassert.Equal(t, 1, post.UpvoteTracker.Size())\n}\n\nfunc TestDelete(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\t// Alice is admin\n\tm := NewMemeland()\n\n\t// Set caller to Bob\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\t// Bob adds post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Alice removes Bob's post\n\tstd.TestSetOrigCaller(alice)\n\n\tid := m.RemovePost(postID)\n\tuassert.Equal(t, postID, id, \"post IDs not matching\")\n\tuassert.Equal(t, 0, len(m.Posts), \"there should be 0 posts after removing\")\n}\n\nfunc TestDeleteByNonAdmin(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Bob will try to delete meme posted by Alice, which should fail\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t}\n\t}()\n\n\t// Should panic - caught by defer\n\tm.RemovePost(postID)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Et8Z52snnhb0mvVkUnsQd04/gh990WHUvrHFVh9Y8cj7Dy8YZq9STwP213iejqgnnuGQHN/G/fESigMAqXhQCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"memeland","path":"gno.land/p/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nconst (\n\tDATE_CREATED = \"DATE_CREATED\"\n\tUPVOTES = \"UPVOTES\"\n)\n\ntype Post struct {\n\tID string\n\tData string\n\tAuthor std.Address\n\tTimestamp time.Time\n\tUpvoteTracker *avl.Tree // address \u003e struct{}{}\n}\n\ntype Memeland struct {\n\t*ownable.Ownable\n\tPosts []*Post\n\tMemeCounter seqid.ID\n}\n\nfunc NewMemeland() *Memeland {\n\treturn \u0026Memeland{\n\t\tOwnable: ownable.New(),\n\t\tPosts: make([]*Post, 0),\n\t}\n}\n\n// PostMeme - Adds a new post\nfunc (m *Memeland) PostMeme(data string, timestamp int64) string {\n\tif data == \"\" || timestamp \u003c= 0 {\n\t\tpanic(\"timestamp or data cannot be empty\")\n\t}\n\n\t// Generate ID\n\tid := m.MemeCounter.Next().String()\n\n\tnewPost := \u0026Post{\n\t\tID: id,\n\t\tData: data,\n\t\tAuthor: std.PrevRealm().Addr(),\n\t\tTimestamp: time.Unix(timestamp, 0),\n\t\tUpvoteTracker: avl.NewTree(),\n\t}\n\n\tm.Posts = append(m.Posts, newPost)\n\treturn id\n}\n\nfunc (m *Memeland) Upvote(id string) string {\n\tpost := m.getPost(id)\n\tif post == nil {\n\t\tpanic(\"post with specified ID does not exist\")\n\t}\n\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif _, exists := post.UpvoteTracker.Get(caller); exists {\n\t\tpanic(\"user has already upvoted this post\")\n\t}\n\n\tpost.UpvoteTracker.Set(caller, struct{}{})\n\n\treturn \"upvote successful\"\n}\n\n// GetPostsInRange returns a JSON string of posts within the given timestamp range, supporting pagination\nfunc (m *Memeland) GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\tif len(m.Posts) == 0 {\n\t\treturn \"[]\"\n\t}\n\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\t// No empty pages\n\tif pageSize \u003c 1 {\n\t\tpanic(\"page size cannot be less than 1\")\n\t}\n\n\t// No pages larger than 10\n\tif pageSize \u003e 10 {\n\t\tpanic(\"page size cannot be larger than 10\")\n\t}\n\n\t// Need to pass in a sort parameter\n\tif sortBy == \"\" {\n\t\tpanic(\"sort order cannot be empty\")\n\t}\n\n\tvar filteredPosts []*Post\n\n\tstart := time.Unix(startTimestamp, 0)\n\tend := time.Unix(endTimestamp, 0)\n\n\t// Filtering posts\n\tfor _, p := range m.Posts {\n\t\tif !p.Timestamp.Before(start) \u0026\u0026 !p.Timestamp.After(end) {\n\t\t\tfilteredPosts = append(filteredPosts, p)\n\t\t}\n\t}\n\n\tswitch sortBy {\n\t// Sort by upvote descending\n\tcase UPVOTES:\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].UpvoteTracker.Size() \u003e filteredPosts[j].UpvoteTracker.Size()\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tcase DATE_CREATED:\n\t\t// Sort by timestamp, beginning with newest\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].Timestamp.After(filteredPosts[j].Timestamp)\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tdefault:\n\t\tpanic(\"sort order can only be \\\"UPVOTES\\\" or \\\"DATE_CREATED\\\"\")\n\t}\n\n\t// Pagination\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any posts\n\tif startIndex \u003e= len(filteredPosts) {\n\t\treturn \"[]\"\n\t}\n\n\t// If page contains fewer posts than the page size\n\tif endIndex \u003e len(filteredPosts) {\n\t\tendIndex = len(filteredPosts)\n\t}\n\n\t// Return JSON representation of paginated and sorted posts\n\treturn PostsToJSONString(filteredPosts[startIndex:endIndex])\n}\n\n// RemovePost allows the owner to remove a post with a specific ID\nfunc (m *Memeland) RemovePost(id string) string {\n\tif id == \"\" {\n\t\tpanic(\"id cannot be empty\")\n\t}\n\n\tif err := m.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor i, post := range m.Posts {\n\t\tif post.ID == id {\n\t\t\tm.Posts = append(m.Posts[:i], m.Posts[i+1:]...)\n\t\t\treturn id\n\t\t}\n\t}\n\n\tpanic(\"post with specified id does not exist\")\n}\n\n// PostsToJSONString converts a slice of Post structs into a JSON string\nfunc PostsToJSONString(posts []*Post) string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"[\")\n\n\tfor i, post := range posts {\n\t\tif i \u003e 0 {\n\t\t\tsb.WriteString(\",\")\n\t\t}\n\n\t\tsb.WriteString(PostToJSONString(post))\n\t}\n\tsb.WriteString(\"]\")\n\n\treturn sb.String()\n}\n\n// PostToJSONString returns a Post formatted as a JSON string\nfunc PostToJSONString(post *Post) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(\"{\")\n\tsb.WriteString(`\"id\":\"` + post.ID + `\",`)\n\tsb.WriteString(`\"data\":\"` + escapeString(post.Data) + `\",`)\n\tsb.WriteString(`\"author\":\"` + escapeString(post.Author.String()) + `\",`)\n\tsb.WriteString(`\"timestamp\":\"` + strconv.Itoa(int(post.Timestamp.Unix())) + `\",`)\n\tsb.WriteString(`\"upvotes\":` + strconv.Itoa(post.UpvoteTracker.Size()))\n\tsb.WriteString(\"}\")\n\n\treturn sb.String()\n}\n\n// escapeString escapes quotes in a string for JSON compatibility.\nfunc escapeString(s string) string {\n\treturn strings.ReplaceAll(s, `\"`, `\\\"`)\n}\n\nfunc (m *Memeland) getPost(id string) *Post {\n\tfor _, p := range m.Posts {\n\t\tif p.ID == id {\n\t\t\treturn p\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// PostSorter is a flexible sorter for the *Post slice\ntype PostSorter struct {\n\tPosts []*Post\n\tLessF func(i, j int) bool\n}\n\nfunc (p PostSorter) Len() int {\n\treturn len(p.Posts)\n}\n\nfunc (p PostSorter) Swap(i, j int) {\n\tp.Posts[i], p.Posts[j] = p.Posts[j], p.Posts[i]\n}\n\nfunc (p PostSorter) Less(i, j int) bool {\n\treturn p.LessF(i, j)\n}\n"},{"name":"memeland_test.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestPostMeme(t *testing.T) {\n\tm := NewMemeland()\n\tid := m.PostMeme(\"Test meme data\", time.Now().Unix())\n\tuassert.NotEqual(t, \"\", string(id), \"Expected valid ID, got empty string\")\n}\n\nfunc TestGetPostsInRangePagination(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttestCases := []struct {\n\t\tpage int\n\t\tpageSize int\n\t\texpectedNumOfPosts int\n\t}{\n\t\t{page: 1, pageSize: 1, expectedNumOfPosts: 1}, // one per page\n\t\t{page: 2, pageSize: 1, expectedNumOfPosts: 1}, // one on second page\n\t\t{page: 1, pageSize: numOfPosts, expectedNumOfPosts: numOfPosts}, // all posts on single page\n\t\t{page: 12, pageSize: 1, expectedNumOfPosts: 0}, // empty page\n\t\t{page: 1, pageSize: numOfPosts + 1, expectedNumOfPosts: numOfPosts}, // page with fewer posts than its size\n\t\t{page: 5, pageSize: numOfPosts / 5, expectedNumOfPosts: 1}, // evenly distribute posts per page\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(ufmt.Sprintf(\"Page%d_Size%d\", tc.page, tc.pageSize), func(t *testing.T) {\n\t\t\tresult := m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), tc.page, tc.pageSize, \"DATE_CREATED\")\n\n\t\t\t// Count posts by how many times id: shows up in JSON string\n\t\t\tpostCount := strings.Count(result, `\"id\":\"`)\n\t\t\tuassert.Equal(t, tc.expectedNumOfPosts, postCount)\n\t\t})\n\t}\n}\n\nfunc TestGetPostsInRangeByTimestamp(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\tnumOfPosts, // all memes on the page\n\t\t\"DATE_CREATED\", // sort by newest first\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if data is there\n\tfor _, expData := range memeData {\n\t\tcheck := strings.Contains(jsonStr, expData)\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s in the JSON string, but counld't find it\", expData))\n\t}\n\n\t// Check if ordering is correct, sort by created date\n\tfor i := 0; i \u003c len(memeData)-2; i++ {\n\t\tcheck := strings.Index(jsonStr, memeData[i]) \u003e= strings.Index(jsonStr, memeData[i+1])\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s, but was at %d, and %d\", memeData[i], memeData[i+1], i, i+1))\n\t}\n}\n\nfunc TestGetPostsInRangeByUpvote(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tmemeData1 := \"Meme #1\"\n\tmemeData2 := \"Meme #2\"\n\n\t// Create posts at specific times for testing\n\tid1 := m.PostMeme(memeData1, now.Unix())\n\tid2 := m.PostMeme(memeData2, now.Add(time.Minute).Unix())\n\n\tm.Upvote(id1)\n\tm.Upvote(id2)\n\n\t// Change caller so avoid double upvote panic\n\tstd.TestSetOrigCaller(testutils.TestAddress(\"alice\"))\n\tm.Upvote(id1)\n\n\t// Final upvote count:\n\t// Meme #1 - 2 upvote\n\t// Meme #2 - 1 upvotes\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-time.Minute)\n\tafterLatest := now.Add(time.Hour)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\t2, // all memes on the page\n\t\t\"UPVOTES\", // sort by upvote\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if ordering is correct\n\tcheck := strings.Index(jsonStr, \"Meme #1\") \u003c= strings.Index(jsonStr, \"Meme #2\")\n\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s\", memeData1, memeData2))\n}\n\nfunc TestBadSortBy(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttests := []struct {\n\t\tname string\n\t\tsortBy string\n\t\twantPanic string\n\t}{\n\t\t{\n\t\t\tname: \"Empty sortBy\",\n\t\t\tsortBy: \"\",\n\t\t\twantPanic: \"runtime error: index out of range\",\n\t\t},\n\t\t{\n\t\t\tname: \"Wrong sortBy\",\n\t\t\tsortBy: \"random string\",\n\t\t\twantPanic: \"\",\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\t// Panics should be caught\n\t\t\t_ = m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), 1, 1, tc.sortBy)\n\t\t})\n\t}\n}\n\nfunc TestNoPosts(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\n\tjsonStr := m.GetPostsInRange(0, now, 1, 1, \"DATE_CREATED\")\n\n\tuassert.Equal(t, jsonStr, \"[]\")\n}\n\nfunc TestUpvote(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\tpostID := m.PostMeme(\"Test meme data\", now)\n\n\t// Initial upvote count should be 0\n\tpost := m.getPost(postID)\n\tuassert.Equal(t, 0, post.UpvoteTracker.Size())\n\n\t// Upvote the post\n\tupvoteResult := m.Upvote(postID)\n\tuassert.Equal(t, \"upvote successful\", upvoteResult)\n\n\t// Retrieve the post again and check the upvote count\n\tpost = m.getPost(postID)\n\tuassert.Equal(t, 1, post.UpvoteTracker.Size())\n}\n\nfunc TestDelete(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\t// Alice is admin\n\tm := NewMemeland()\n\n\t// Set caller to Bob\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\t// Bob adds post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Alice removes Bob's post\n\tstd.TestSetOrigCaller(alice)\n\n\tid := m.RemovePost(postID)\n\tuassert.Equal(t, postID, id, \"post IDs not matching\")\n\tuassert.Equal(t, 0, len(m.Posts), \"there should be 0 posts after removing\")\n}\n\nfunc TestDeleteByNonAdmin(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Bob will try to delete meme posted by Alice, which should fail\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t}\n\t}()\n\n\t// Should panic - caught by defer\n\tm.RemovePost(postID)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Et8Z52snnhb0mvVkUnsQd04/gh990WHUvrHFVh9Y8cj7Dy8YZq9STwP213iejqgnnuGQHN/G/fESigMAqXhQCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"memeland","path":"gno.land/r/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/memeland\"\n)\n\nvar m *memeland.Memeland\n\nfunc init() {\n\tm = memeland.NewMemeland()\n\tm.TransferOwnership(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n}\n\nfunc PostMeme(data string, timestamp int64) string {\n\treturn m.PostMeme(data, timestamp)\n}\n\nfunc Upvote(id string) string {\n\treturn m.Upvote(id)\n}\n\nfunc GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\treturn m.GetPostsInRange(startTimestamp, endTimestamp, page, pageSize, sortBy)\n}\n\nfunc RemovePost(id string) string {\n\treturn m.RemovePost(id)\n}\n\nfunc GetOwner() std.Address {\n\treturn m.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := m.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tnumOfMemes := int(m.MemeCounter)\n\tif numOfMemes == 0 {\n\t\treturn \"No memes posted yet! :/\"\n\t}\n\n\t// Default render is get Posts since year 2000 to now\n\treturn m.GetPostsInRange(0, time.Now().Unix(), 1, 10, \"DATE_CREATED\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ni18GdGR51CuYF4MrCKy5WrPldzWfDo1b8OKzPp4OybNapHkVa0DmOTFKrOLUWHRZrureU3noUCikrrtJsfdCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"memeland","path":"gno.land/r/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/memeland\"\n)\n\nvar m *memeland.Memeland\n\nfunc init() {\n\tm = memeland.NewMemeland()\n\tm.TransferOwnership(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n}\n\nfunc PostMeme(data string, timestamp int64) string {\n\treturn m.PostMeme(data, timestamp)\n}\n\nfunc Upvote(id string) string {\n\treturn m.Upvote(id)\n}\n\nfunc GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\treturn m.GetPostsInRange(startTimestamp, endTimestamp, page, pageSize, sortBy)\n}\n\nfunc RemovePost(id string) string {\n\treturn m.RemovePost(id)\n}\n\nfunc GetOwner() std.Address {\n\treturn m.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := m.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tnumOfMemes := int(m.MemeCounter)\n\tif numOfMemes == 0 {\n\t\treturn \"No memes posted yet! :/\"\n\t}\n\n\t// Default render is get Posts since year 2000 to now\n\treturn m.GetPostsInRange(0, time.Now().Unix(), 1, 10, \"DATE_CREATED\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ni18GdGR51CuYF4MrCKy5WrPldzWfDo1b8OKzPp4OybNapHkVa0DmOTFKrOLUWHRZrureU3noUCikrrtJsfdCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"memeland","path":"gno.land/r/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/memeland\"\n)\n\nvar m *memeland.Memeland\n\nfunc init() {\n\tm = memeland.NewMemeland()\n\tm.TransferOwnership(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n}\n\nfunc PostMeme(data string, timestamp int64) string {\n\treturn m.PostMeme(data, timestamp)\n}\n\nfunc Upvote(id string) string {\n\treturn m.Upvote(id)\n}\n\nfunc GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\treturn m.GetPostsInRange(startTimestamp, endTimestamp, page, pageSize, sortBy)\n}\n\nfunc RemovePost(id string) string {\n\treturn m.RemovePost(id)\n}\n\nfunc GetOwner() std.Address {\n\treturn m.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := m.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tnumOfMemes := int(m.MemeCounter)\n\tif numOfMemes == 0 {\n\t\treturn \"No memes posted yet! :/\"\n\t}\n\n\t// Default render is get Posts since year 2000 to now\n\treturn m.GetPostsInRange(0, time.Now().Unix(), 1, 10, \"DATE_CREATED\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ni18GdGR51CuYF4MrCKy5WrPldzWfDo1b8OKzPp4OybNapHkVa0DmOTFKrOLUWHRZrureU3noUCikrrtJsfdCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"merkle","path":"gno.land/p/demo/merkle","files":[{"name":"README.md","body":"# p/demo/merkle\n\nThis package implement a merkle tree that is complient with [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n## [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n```javascript\nconst { MerkleTree } = require(\"merkletreejs\");\nconst SHA256 = require(\"crypto-js/sha256\");\n\nlet leaves = [];\nfor (let i = 0; i \u003c 10; i++) {\n leaves.push(SHA256(`node_${i}`));\n}\n\nconst tree = new MerkleTree(leaves, SHA256);\nconst root = tree.getRoot().toString(\"hex\");\n\nconsole.log(root); // cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\n```\n"},{"name":"merkle.gno","body":"package merkle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"errors\"\n)\n\ntype Hashable interface {\n\tBytes() []byte\n}\n\ntype nodes []Node\n\ntype Node struct {\n\thash []byte\n\n\tposition uint8\n}\n\nfunc NewNode(hash []byte, position uint8) Node {\n\treturn Node{\n\t\thash: hash,\n\t\tposition: position,\n\t}\n}\n\nfunc (n Node) Position() uint8 {\n\treturn n.position\n}\n\nfunc (n Node) Hash() string {\n\treturn hex.EncodeToString(n.hash[:])\n}\n\ntype Tree struct {\n\tlayers []nodes\n}\n\n// Root return the merkle root of the tree\nfunc (t *Tree) Root() string {\n\tfor _, l := range t.layers {\n\t\tif len(l) == 1 {\n\t\t\treturn l[0].Hash()\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// NewTree create a new Merkle Tree\nfunc NewTree(data []Hashable) *Tree {\n\ttree := \u0026Tree{}\n\n\tleaves := make([]Node, len(data))\n\n\tfor i, d := range data {\n\t\thash := sha256.Sum256(d.Bytes())\n\t\tleaves[i] = Node{hash: hash[:]}\n\t}\n\n\ttree.layers = []nodes{nodes(leaves)}\n\n\tvar buff bytes.Buffer\n\tfor len(leaves) \u003e 1 {\n\t\tlevel := make([]Node, 0, len(leaves)/2+1)\n\t\tfor i := 0; i \u003c len(leaves); i += 2 {\n\t\t\tbuff.Reset()\n\n\t\t\tif i \u003c len(leaves)-1 {\n\t\t\t\tbuff.Write(leaves[i].hash)\n\t\t\t\tbuff.Write(leaves[i+1].hash)\n\t\t\t\thash := sha256.Sum256(buff.Bytes())\n\t\t\t\tlevel = append(level, Node{\n\t\t\t\t\thash: hash[:],\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tlevel = append(level, leaves[i])\n\t\t\t}\n\t\t}\n\t\tleaves = level\n\t\ttree.layers = append(tree.layers, level)\n\t}\n\treturn tree\n}\n\n// Proof return a MerkleProof\nfunc (t *Tree) Proof(data Hashable) ([]Node, error) {\n\ttargetHash := sha256.Sum256(data.Bytes())\n\ttargetIndex := -1\n\n\tfor i, layer := range t.layers[0] {\n\t\tif bytes.Equal(targetHash[:], layer.hash) {\n\t\t\ttargetIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif targetIndex == -1 {\n\t\treturn nil, errors.New(\"target not found\")\n\t}\n\n\tproofs := make([]Node, 0, len(t.layers))\n\n\tfor _, layer := range t.layers {\n\t\tvar pairIndex int\n\n\t\tif targetIndex%2 == 0 {\n\t\t\tpairIndex = targetIndex + 1\n\t\t} else {\n\t\t\tpairIndex = targetIndex - 1\n\t\t}\n\t\tif pairIndex \u003c len(layer) {\n\t\t\tproofs = append(proofs, Node{\n\t\t\t\thash: layer[pairIndex].hash,\n\t\t\t\tposition: uint8(targetIndex) % 2,\n\t\t\t})\n\t\t}\n\t\ttargetIndex /= 2\n\t}\n\treturn proofs, nil\n}\n\n// Verify if a merkle proof is valid\nfunc (t *Tree) Verify(leaf Hashable, proofs []Node) bool {\n\treturn Verify(t.Root(), leaf, proofs)\n}\n\n// Verify if a merkle proof is valid\nfunc Verify(root string, leaf Hashable, proofs []Node) bool {\n\thash := sha256.Sum256(leaf.Bytes())\n\n\tfor i := 0; i \u003c len(proofs); i += 1 {\n\t\tvar h []byte\n\t\tif proofs[i].position == 0 {\n\t\t\th = append(hash[:], proofs[i].hash...)\n\t\t} else {\n\t\t\th = append(proofs[i].hash, hash[:]...)\n\t\t}\n\t\thash = sha256.Sum256(h)\n\t}\n\treturn hex.EncodeToString(hash[:]) == root\n}\n"},{"name":"merkle_test.gno","body":"package merkle\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype testData struct {\n\tcontent string\n}\n\nfunc (d testData) Bytes() []byte {\n\treturn []byte(d.content)\n}\n\nfunc TestMerkleTree(t *testing.T) {\n\ttests := []struct {\n\t\tsize int\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tsize: 1,\n\t\t\texpected: \"cf9f824bce7f5bc63d557b23591f58577f53fe29f974a615bdddbd0140f912f4\",\n\t\t},\n\t\t{\n\t\t\tsize: 3,\n\t\t\texpected: \"1a4a5f0fa267244bf9f74a63fdf2a87eed5e97e4bd104a9e94728c8fb5442177\",\n\t\t},\n\t\t{\n\t\t\tsize: 10,\n\t\t\texpected: \"cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\",\n\t\t},\n\t\t{\n\t\t\tsize: 1000,\n\t\t\texpected: \"fa533d2efdf12be26bc410dfa42936ac63361324e35e9b1ff54d422a1dd2388b\",\n\t\t},\n\t}\n\n\tfor _, test := range tests {\n\t\tvar leaves []Hashable\n\t\tfor i := 0; i \u003c test.size; i++ {\n\t\t\tleaves = append(leaves, testData{fmt.Sprintf(\"node_%d\", i)})\n\t\t}\n\n\t\ttree := NewTree(leaves)\n\n\t\tif tree == nil {\n\t\t\tt.Error(\"Merkle tree creation failed\")\n\t\t}\n\n\t\troot := tree.Root()\n\n\t\tif root != test.expected {\n\t\t\tt.Fatalf(\"merkle.Tree.Root(), expected: %s; got: %s\", test.expected, root)\n\t\t}\n\n\t\tfor _, leaf := range leaves {\n\t\t\tproofs, err := tree.Proof(leaf)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(\"failed to proof leaf: %v, on tree: %v\", leaf, test)\n\t\t\t}\n\n\t\t\tok := Verify(root, leaf, proofs)\n\t\t\tif !ok {\n\t\t\t\tt.Fatal(\"failed to verify leaf: %v, on tree: %v\", leaf, tree)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UdgKdLvH0wWig/ebp+X/zzV0LeLTp9ef8hk7ya7Ej74VQisguV84nDkakioq9REpRi4HR4u8JLJIJHc6YBFHDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"merkle","path":"gno.land/p/demo/merkle","files":[{"name":"README.md","body":"# p/demo/merkle\n\nThis package implement a merkle tree that is complient with [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n## [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n```javascript\nconst { MerkleTree } = require(\"merkletreejs\");\nconst SHA256 = require(\"crypto-js/sha256\");\n\nlet leaves = [];\nfor (let i = 0; i \u003c 10; i++) {\n leaves.push(SHA256(`node_${i}`));\n}\n\nconst tree = new MerkleTree(leaves, SHA256);\nconst root = tree.getRoot().toString(\"hex\");\n\nconsole.log(root); // cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\n```\n"},{"name":"merkle.gno","body":"package merkle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"errors\"\n)\n\ntype Hashable interface {\n\tBytes() []byte\n}\n\ntype nodes []Node\n\ntype Node struct {\n\thash []byte\n\n\tposition uint8\n}\n\nfunc NewNode(hash []byte, position uint8) Node {\n\treturn Node{\n\t\thash: hash,\n\t\tposition: position,\n\t}\n}\n\nfunc (n Node) Position() uint8 {\n\treturn n.position\n}\n\nfunc (n Node) Hash() string {\n\treturn hex.EncodeToString(n.hash[:])\n}\n\ntype Tree struct {\n\tlayers []nodes\n}\n\n// Root return the merkle root of the tree\nfunc (t *Tree) Root() string {\n\tfor _, l := range t.layers {\n\t\tif len(l) == 1 {\n\t\t\treturn l[0].Hash()\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// NewTree create a new Merkle Tree\nfunc NewTree(data []Hashable) *Tree {\n\ttree := \u0026Tree{}\n\n\tleaves := make([]Node, len(data))\n\n\tfor i, d := range data {\n\t\thash := sha256.Sum256(d.Bytes())\n\t\tleaves[i] = Node{hash: hash[:]}\n\t}\n\n\ttree.layers = []nodes{nodes(leaves)}\n\n\tvar buff bytes.Buffer\n\tfor len(leaves) \u003e 1 {\n\t\tlevel := make([]Node, 0, len(leaves)/2+1)\n\t\tfor i := 0; i \u003c len(leaves); i += 2 {\n\t\t\tbuff.Reset()\n\n\t\t\tif i \u003c len(leaves)-1 {\n\t\t\t\tbuff.Write(leaves[i].hash)\n\t\t\t\tbuff.Write(leaves[i+1].hash)\n\t\t\t\thash := sha256.Sum256(buff.Bytes())\n\t\t\t\tlevel = append(level, Node{\n\t\t\t\t\thash: hash[:],\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tlevel = append(level, leaves[i])\n\t\t\t}\n\t\t}\n\t\tleaves = level\n\t\ttree.layers = append(tree.layers, level)\n\t}\n\treturn tree\n}\n\n// Proof return a MerkleProof\nfunc (t *Tree) Proof(data Hashable) ([]Node, error) {\n\ttargetHash := sha256.Sum256(data.Bytes())\n\ttargetIndex := -1\n\n\tfor i, layer := range t.layers[0] {\n\t\tif bytes.Equal(targetHash[:], layer.hash) {\n\t\t\ttargetIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif targetIndex == -1 {\n\t\treturn nil, errors.New(\"target not found\")\n\t}\n\n\tproofs := make([]Node, 0, len(t.layers))\n\n\tfor _, layer := range t.layers {\n\t\tvar pairIndex int\n\n\t\tif targetIndex%2 == 0 {\n\t\t\tpairIndex = targetIndex + 1\n\t\t} else {\n\t\t\tpairIndex = targetIndex - 1\n\t\t}\n\t\tif pairIndex \u003c len(layer) {\n\t\t\tproofs = append(proofs, Node{\n\t\t\t\thash: layer[pairIndex].hash,\n\t\t\t\tposition: uint8(targetIndex) % 2,\n\t\t\t})\n\t\t}\n\t\ttargetIndex /= 2\n\t}\n\treturn proofs, nil\n}\n\n// Verify if a merkle proof is valid\nfunc (t *Tree) Verify(leaf Hashable, proofs []Node) bool {\n\treturn Verify(t.Root(), leaf, proofs)\n}\n\n// Verify if a merkle proof is valid\nfunc Verify(root string, leaf Hashable, proofs []Node) bool {\n\thash := sha256.Sum256(leaf.Bytes())\n\n\tfor i := 0; i \u003c len(proofs); i += 1 {\n\t\tvar h []byte\n\t\tif proofs[i].position == 0 {\n\t\t\th = append(hash[:], proofs[i].hash...)\n\t\t} else {\n\t\t\th = append(proofs[i].hash, hash[:]...)\n\t\t}\n\t\thash = sha256.Sum256(h)\n\t}\n\treturn hex.EncodeToString(hash[:]) == root\n}\n"},{"name":"merkle_test.gno","body":"package merkle\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype testData struct {\n\tcontent string\n}\n\nfunc (d testData) Bytes() []byte {\n\treturn []byte(d.content)\n}\n\nfunc TestMerkleTree(t *testing.T) {\n\ttests := []struct {\n\t\tsize int\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tsize: 1,\n\t\t\texpected: \"cf9f824bce7f5bc63d557b23591f58577f53fe29f974a615bdddbd0140f912f4\",\n\t\t},\n\t\t{\n\t\t\tsize: 3,\n\t\t\texpected: \"1a4a5f0fa267244bf9f74a63fdf2a87eed5e97e4bd104a9e94728c8fb5442177\",\n\t\t},\n\t\t{\n\t\t\tsize: 10,\n\t\t\texpected: \"cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\",\n\t\t},\n\t\t{\n\t\t\tsize: 1000,\n\t\t\texpected: \"fa533d2efdf12be26bc410dfa42936ac63361324e35e9b1ff54d422a1dd2388b\",\n\t\t},\n\t}\n\n\tfor _, test := range tests {\n\t\tvar leaves []Hashable\n\t\tfor i := 0; i \u003c test.size; i++ {\n\t\t\tleaves = append(leaves, testData{fmt.Sprintf(\"node_%d\", i)})\n\t\t}\n\n\t\ttree := NewTree(leaves)\n\n\t\tif tree == nil {\n\t\t\tt.Error(\"Merkle tree creation failed\")\n\t\t}\n\n\t\troot := tree.Root()\n\n\t\tif root != test.expected {\n\t\t\tt.Fatalf(\"merkle.Tree.Root(), expected: %s; got: %s\", test.expected, root)\n\t\t}\n\n\t\tfor _, leaf := range leaves {\n\t\t\tproofs, err := tree.Proof(leaf)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(\"failed to proof leaf: %v, on tree: %v\", leaf, test)\n\t\t\t}\n\n\t\t\tok := Verify(root, leaf, proofs)\n\t\t\tif !ok {\n\t\t\t\tt.Fatal(\"failed to verify leaf: %v, on tree: %v\", leaf, tree)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UdgKdLvH0wWig/ebp+X/zzV0LeLTp9ef8hk7ya7Ej74VQisguV84nDkakioq9REpRi4HR4u8JLJIJHc6YBFHDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"merkle","path":"gno.land/p/demo/merkle","files":[{"name":"README.md","body":"# p/demo/merkle\n\nThis package implement a merkle tree that is complient with [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n## [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n```javascript\nconst { MerkleTree } = require(\"merkletreejs\");\nconst SHA256 = require(\"crypto-js/sha256\");\n\nlet leaves = [];\nfor (let i = 0; i \u003c 10; i++) {\n leaves.push(SHA256(`node_${i}`));\n}\n\nconst tree = new MerkleTree(leaves, SHA256);\nconst root = tree.getRoot().toString(\"hex\");\n\nconsole.log(root); // cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\n```\n"},{"name":"merkle.gno","body":"package merkle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"errors\"\n)\n\ntype Hashable interface {\n\tBytes() []byte\n}\n\ntype nodes []Node\n\ntype Node struct {\n\thash []byte\n\n\tposition uint8\n}\n\nfunc NewNode(hash []byte, position uint8) Node {\n\treturn Node{\n\t\thash: hash,\n\t\tposition: position,\n\t}\n}\n\nfunc (n Node) Position() uint8 {\n\treturn n.position\n}\n\nfunc (n Node) Hash() string {\n\treturn hex.EncodeToString(n.hash[:])\n}\n\ntype Tree struct {\n\tlayers []nodes\n}\n\n// Root return the merkle root of the tree\nfunc (t *Tree) Root() string {\n\tfor _, l := range t.layers {\n\t\tif len(l) == 1 {\n\t\t\treturn l[0].Hash()\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// NewTree create a new Merkle Tree\nfunc NewTree(data []Hashable) *Tree {\n\ttree := \u0026Tree{}\n\n\tleaves := make([]Node, len(data))\n\n\tfor i, d := range data {\n\t\thash := sha256.Sum256(d.Bytes())\n\t\tleaves[i] = Node{hash: hash[:]}\n\t}\n\n\ttree.layers = []nodes{nodes(leaves)}\n\n\tvar buff bytes.Buffer\n\tfor len(leaves) \u003e 1 {\n\t\tlevel := make([]Node, 0, len(leaves)/2+1)\n\t\tfor i := 0; i \u003c len(leaves); i += 2 {\n\t\t\tbuff.Reset()\n\n\t\t\tif i \u003c len(leaves)-1 {\n\t\t\t\tbuff.Write(leaves[i].hash)\n\t\t\t\tbuff.Write(leaves[i+1].hash)\n\t\t\t\thash := sha256.Sum256(buff.Bytes())\n\t\t\t\tlevel = append(level, Node{\n\t\t\t\t\thash: hash[:],\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tlevel = append(level, leaves[i])\n\t\t\t}\n\t\t}\n\t\tleaves = level\n\t\ttree.layers = append(tree.layers, level)\n\t}\n\treturn tree\n}\n\n// Proof return a MerkleProof\nfunc (t *Tree) Proof(data Hashable) ([]Node, error) {\n\ttargetHash := sha256.Sum256(data.Bytes())\n\ttargetIndex := -1\n\n\tfor i, layer := range t.layers[0] {\n\t\tif bytes.Equal(targetHash[:], layer.hash) {\n\t\t\ttargetIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif targetIndex == -1 {\n\t\treturn nil, errors.New(\"target not found\")\n\t}\n\n\tproofs := make([]Node, 0, len(t.layers))\n\n\tfor _, layer := range t.layers {\n\t\tvar pairIndex int\n\n\t\tif targetIndex%2 == 0 {\n\t\t\tpairIndex = targetIndex + 1\n\t\t} else {\n\t\t\tpairIndex = targetIndex - 1\n\t\t}\n\t\tif pairIndex \u003c len(layer) {\n\t\t\tproofs = append(proofs, Node{\n\t\t\t\thash: layer[pairIndex].hash,\n\t\t\t\tposition: uint8(targetIndex) % 2,\n\t\t\t})\n\t\t}\n\t\ttargetIndex /= 2\n\t}\n\treturn proofs, nil\n}\n\n// Verify if a merkle proof is valid\nfunc (t *Tree) Verify(leaf Hashable, proofs []Node) bool {\n\treturn Verify(t.Root(), leaf, proofs)\n}\n\n// Verify if a merkle proof is valid\nfunc Verify(root string, leaf Hashable, proofs []Node) bool {\n\thash := sha256.Sum256(leaf.Bytes())\n\n\tfor i := 0; i \u003c len(proofs); i += 1 {\n\t\tvar h []byte\n\t\tif proofs[i].position == 0 {\n\t\t\th = append(hash[:], proofs[i].hash...)\n\t\t} else {\n\t\t\th = append(proofs[i].hash, hash[:]...)\n\t\t}\n\t\thash = sha256.Sum256(h)\n\t}\n\treturn hex.EncodeToString(hash[:]) == root\n}\n"},{"name":"merkle_test.gno","body":"package merkle\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype testData struct {\n\tcontent string\n}\n\nfunc (d testData) Bytes() []byte {\n\treturn []byte(d.content)\n}\n\nfunc TestMerkleTree(t *testing.T) {\n\ttests := []struct {\n\t\tsize int\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tsize: 1,\n\t\t\texpected: \"cf9f824bce7f5bc63d557b23591f58577f53fe29f974a615bdddbd0140f912f4\",\n\t\t},\n\t\t{\n\t\t\tsize: 3,\n\t\t\texpected: \"1a4a5f0fa267244bf9f74a63fdf2a87eed5e97e4bd104a9e94728c8fb5442177\",\n\t\t},\n\t\t{\n\t\t\tsize: 10,\n\t\t\texpected: \"cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\",\n\t\t},\n\t\t{\n\t\t\tsize: 1000,\n\t\t\texpected: \"fa533d2efdf12be26bc410dfa42936ac63361324e35e9b1ff54d422a1dd2388b\",\n\t\t},\n\t}\n\n\tfor _, test := range tests {\n\t\tvar leaves []Hashable\n\t\tfor i := 0; i \u003c test.size; i++ {\n\t\t\tleaves = append(leaves, testData{fmt.Sprintf(\"node_%d\", i)})\n\t\t}\n\n\t\ttree := NewTree(leaves)\n\n\t\tif tree == nil {\n\t\t\tt.Error(\"Merkle tree creation failed\")\n\t\t}\n\n\t\troot := tree.Root()\n\n\t\tif root != test.expected {\n\t\t\tt.Fatalf(\"merkle.Tree.Root(), expected: %s; got: %s\", test.expected, root)\n\t\t}\n\n\t\tfor _, leaf := range leaves {\n\t\t\tproofs, err := tree.Proof(leaf)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(\"failed to proof leaf: %v, on tree: %v\", leaf, test)\n\t\t\t}\n\n\t\t\tok := Verify(root, leaf, proofs)\n\t\t\tif !ok {\n\t\t\t\tt.Fatal(\"failed to verify leaf: %v, on tree: %v\", leaf, tree)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UdgKdLvH0wWig/ebp+X/zzV0LeLTp9ef8hk7ya7Ej74VQisguV84nDkakioq9REpRi4HR4u8JLJIJHc6YBFHDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"message","path":"gno.land/p/demo/gnorkle/message","files":[{"name":"parse.gno","body":"package message\n\nimport \"strings\"\n\n// ParseFunc parses a raw message and returns the message function\n// type extracted from the remainder of the message.\nfunc ParseFunc(rawMsg string) (FuncType, string) {\n\tfuncType, remainder := parseFirstToken(rawMsg)\n\treturn FuncType(funcType), remainder\n}\n\n// ParseID parses a raw message and returns the ID extracted from\n// the remainder of the message.\nfunc ParseID(rawMsg string) (string, string) {\n\treturn parseFirstToken(rawMsg)\n}\n\nfunc parseFirstToken(rawMsg string) (string, string) {\n\tmsgParts := strings.SplitN(rawMsg, \",\", 2)\n\tif len(msgParts) \u003c 2 {\n\t\treturn msgParts[0], \"\"\n\t}\n\n\treturn msgParts[0], msgParts[1]\n}\n"},{"name":"parse_test.gno","body":"package message_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParseFunc(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpFuncType message.FuncType\n\t\texpRemainder string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t},\n\t\t{\n\t\t\tname: \"func only\",\n\t\t\tinput: \"ingest\",\n\t\t\texpFuncType: message.FuncTypeIngest,\n\t\t},\n\t\t{\n\t\t\tname: \"func with short remainder\",\n\t\t\tinput: \"commit,asdf\",\n\t\t\texpFuncType: message.FuncTypeCommit,\n\t\t\texpRemainder: \"asdf\",\n\t\t},\n\t\t{\n\t\t\tname: \"func with long remainder\",\n\t\t\tinput: \"request,hello,world,goodbye\",\n\t\t\texpFuncType: message.FuncTypeRequest,\n\t\t\texpRemainder: \"hello,world,goodbye\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tfuncType, remainder := message.ParseFunc(tt.input)\n\n\t\t\tuassert.Equal(t, string(tt.expFuncType), string(funcType))\n\t\t\tuassert.Equal(t, tt.expRemainder, remainder)\n\t\t})\n\t}\n}\n"},{"name":"type.gno","body":"package message\n\n// FuncType is the type of function that is being called by the agent.\ntype FuncType string\n\nconst (\n\t// FuncTypeIngest means the agent is sending data for ingestion.\n\tFuncTypeIngest FuncType = \"ingest\"\n\t// FuncTypeCommit means the agent is requesting a feed commit the transitive data\n\t// being held by its ingester.\n\tFuncTypeCommit FuncType = \"commit\"\n\t// FuncTypeRequest means the agent is requesting feed definitions for all those\n\t// that it is whitelisted to provide data for.\n\tFuncTypeRequest FuncType = \"request\"\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9WSEXCNAIrkukWmp9+KCo+gcMO1EWcABtQPUbTt5SOsfa2ASnhrLSCcaQHba3lUzru7jZFfmsLMxGDlhDvajDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"message","path":"gno.land/p/demo/gnorkle/message","files":[{"name":"parse.gno","body":"package message\n\nimport \"strings\"\n\n// ParseFunc parses a raw message and returns the message function\n// type extracted from the remainder of the message.\nfunc ParseFunc(rawMsg string) (FuncType, string) {\n\tfuncType, remainder := parseFirstToken(rawMsg)\n\treturn FuncType(funcType), remainder\n}\n\n// ParseID parses a raw message and returns the ID extracted from\n// the remainder of the message.\nfunc ParseID(rawMsg string) (string, string) {\n\treturn parseFirstToken(rawMsg)\n}\n\nfunc parseFirstToken(rawMsg string) (string, string) {\n\tmsgParts := strings.SplitN(rawMsg, \",\", 2)\n\tif len(msgParts) \u003c 2 {\n\t\treturn msgParts[0], \"\"\n\t}\n\n\treturn msgParts[0], msgParts[1]\n}\n"},{"name":"parse_test.gno","body":"package message_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParseFunc(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpFuncType message.FuncType\n\t\texpRemainder string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t},\n\t\t{\n\t\t\tname: \"func only\",\n\t\t\tinput: \"ingest\",\n\t\t\texpFuncType: message.FuncTypeIngest,\n\t\t},\n\t\t{\n\t\t\tname: \"func with short remainder\",\n\t\t\tinput: \"commit,asdf\",\n\t\t\texpFuncType: message.FuncTypeCommit,\n\t\t\texpRemainder: \"asdf\",\n\t\t},\n\t\t{\n\t\t\tname: \"func with long remainder\",\n\t\t\tinput: \"request,hello,world,goodbye\",\n\t\t\texpFuncType: message.FuncTypeRequest,\n\t\t\texpRemainder: \"hello,world,goodbye\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tfuncType, remainder := message.ParseFunc(tt.input)\n\n\t\t\tuassert.Equal(t, string(tt.expFuncType), string(funcType))\n\t\t\tuassert.Equal(t, tt.expRemainder, remainder)\n\t\t})\n\t}\n}\n"},{"name":"type.gno","body":"package message\n\n// FuncType is the type of function that is being called by the agent.\ntype FuncType string\n\nconst (\n\t// FuncTypeIngest means the agent is sending data for ingestion.\n\tFuncTypeIngest FuncType = \"ingest\"\n\t// FuncTypeCommit means the agent is requesting a feed commit the transitive data\n\t// being held by its ingester.\n\tFuncTypeCommit FuncType = \"commit\"\n\t// FuncTypeRequest means the agent is requesting feed definitions for all those\n\t// that it is whitelisted to provide data for.\n\tFuncTypeRequest FuncType = \"request\"\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9WSEXCNAIrkukWmp9+KCo+gcMO1EWcABtQPUbTt5SOsfa2ASnhrLSCcaQHba3lUzru7jZFfmsLMxGDlhDvajDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"message","path":"gno.land/p/demo/gnorkle/message","files":[{"name":"parse.gno","body":"package message\n\nimport \"strings\"\n\n// ParseFunc parses a raw message and returns the message function\n// type extracted from the remainder of the message.\nfunc ParseFunc(rawMsg string) (FuncType, string) {\n\tfuncType, remainder := parseFirstToken(rawMsg)\n\treturn FuncType(funcType), remainder\n}\n\n// ParseID parses a raw message and returns the ID extracted from\n// the remainder of the message.\nfunc ParseID(rawMsg string) (string, string) {\n\treturn parseFirstToken(rawMsg)\n}\n\nfunc parseFirstToken(rawMsg string) (string, string) {\n\tmsgParts := strings.SplitN(rawMsg, \",\", 2)\n\tif len(msgParts) \u003c 2 {\n\t\treturn msgParts[0], \"\"\n\t}\n\n\treturn msgParts[0], msgParts[1]\n}\n"},{"name":"parse_test.gno","body":"package message_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParseFunc(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpFuncType message.FuncType\n\t\texpRemainder string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t},\n\t\t{\n\t\t\tname: \"func only\",\n\t\t\tinput: \"ingest\",\n\t\t\texpFuncType: message.FuncTypeIngest,\n\t\t},\n\t\t{\n\t\t\tname: \"func with short remainder\",\n\t\t\tinput: \"commit,asdf\",\n\t\t\texpFuncType: message.FuncTypeCommit,\n\t\t\texpRemainder: \"asdf\",\n\t\t},\n\t\t{\n\t\t\tname: \"func with long remainder\",\n\t\t\tinput: \"request,hello,world,goodbye\",\n\t\t\texpFuncType: message.FuncTypeRequest,\n\t\t\texpRemainder: \"hello,world,goodbye\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tfuncType, remainder := message.ParseFunc(tt.input)\n\n\t\t\tuassert.Equal(t, string(tt.expFuncType), string(funcType))\n\t\t\tuassert.Equal(t, tt.expRemainder, remainder)\n\t\t})\n\t}\n}\n"},{"name":"type.gno","body":"package message\n\n// FuncType is the type of function that is being called by the agent.\ntype FuncType string\n\nconst (\n\t// FuncTypeIngest means the agent is sending data for ingestion.\n\tFuncTypeIngest FuncType = \"ingest\"\n\t// FuncTypeCommit means the agent is requesting a feed commit the transitive data\n\t// being held by its ingester.\n\tFuncTypeCommit FuncType = \"commit\"\n\t// FuncTypeRequest means the agent is requesting feed definitions for all those\n\t// that it is whitelisted to provide data for.\n\tFuncTypeRequest FuncType = \"request\"\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9WSEXCNAIrkukWmp9+KCo+gcMO1EWcABtQPUbTt5SOsfa2ASnhrLSCcaQHba3lUzru7jZFfmsLMxGDlhDvajDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mgroup","path":"gno.land/p/n2p5/mgroup","files":[{"name":"mgroup.gno","body":"// Package mgroup is a simple managed group managing ownership and membership\n// for authorization in gno realms. The ManagedGroup struct is used to manage\n// the owner, backup owners, and members of a group. The owner is the primary\n// owner of the group and can add and remove backup owners and members. Backup\n// owners can claim ownership of the group. This is meant to provide backup\n// accounts for the owner in case the owner account is lost or compromised.\n// Members are used to authorize actions across realms.\npackage mgroup\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tErrCannotRemoveOwner = errors.New(\"mgroup: cannot remove owner\")\n\tErrNotBackupOwner = errors.New(\"mgroup: not a backup owner\")\n\tErrNotMember = errors.New(\"mgroup: not a member\")\n\tErrInvalidAddress = errors.New(\"mgroup: address is invalid\")\n)\n\ntype ManagedGroup struct {\n\towner *ownable.Ownable\n\tbackupOwners *avl.Tree\n\tmembers *avl.Tree\n}\n\n// New creates a new ManagedGroup with the owner set to the provided address.\n// The owner is automatically added as a backup owner and member of the group.\nfunc New(ownerAddress std.Address) *ManagedGroup {\n\tg := \u0026ManagedGroup{\n\t\towner: ownable.NewWithAddress(ownerAddress),\n\t\tbackupOwners: avl.NewTree(),\n\t\tmembers: avl.NewTree(),\n\t}\n\tg.AddBackupOwner(ownerAddress)\n\tg.AddMember(ownerAddress)\n\treturn g\n}\n\n// AddBackupOwner adds a backup owner to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddBackupOwner(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.backupOwners.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveBackupOwner removes a backup owner from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) RemoveBackupOwner(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.backupOwners.Remove(addr.String())\n\treturn nil\n}\n\n// ClaimOwnership allows a backup owner to claim ownership of the group.\n// If the caller is not a backup owner, an error is returned.\n// The caller is automatically added as a member of the group.\nfunc (g *ManagedGroup) ClaimOwnership() error {\n\tcaller := std.PrevRealm().Addr()\n\t// already owner, skip\n\tif caller == g.Owner() {\n\t\treturn nil\n\t}\n\tif !g.IsBackupOwner(caller) {\n\t\treturn ErrNotMember\n\t}\n\tg.owner = ownable.NewWithAddress(caller)\n\tg.AddMember(caller)\n\treturn nil\n}\n\n// AddMember adds a member to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddMember(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.members.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveMember removes a member from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner,\n// an error is returned.\nfunc (g *ManagedGroup) RemoveMember(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.members.Remove(addr.String())\n\treturn nil\n}\n\n// MemberCount returns the number of members in the group.\nfunc (g *ManagedGroup) MemberCount() int {\n\treturn g.members.Size()\n}\n\n// BackupOwnerCount returns the number of backup owners in the group.\nfunc (g *ManagedGroup) BackupOwnerCount() int {\n\treturn g.backupOwners.Size()\n}\n\n// IsMember checks if an address is a member of the group.\nfunc (g *ManagedGroup) IsMember(addr std.Address) bool {\n\treturn g.members.Has(addr.String())\n}\n\n// IsBackupOwner checks if an address is a backup owner in the group.\nfunc (g *ManagedGroup) IsBackupOwner(addr std.Address) bool {\n\treturn g.backupOwners.Has(addr.String())\n}\n\n// Owner returns the owner of the group.\nfunc (g *ManagedGroup) Owner() std.Address {\n\treturn g.owner.Owner()\n}\n\n// BackupOwners returns a slice of all backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. If you have a large group, you may\n// want to use BackupOwnersWithOffset to iterate over backup owners in chunks.\nfunc (g *ManagedGroup) BackupOwners() []string {\n\treturn g.BackupOwnersWithOffset(0, g.BackupOwnerCount())\n}\n\n// Members returns a slice of all members in the group, using the underlying\n// avl.Tree to iterate over the members. If you have a large group, you may\n// want to use MembersWithOffset to iterate over members in chunks.\nfunc (g *ManagedGroup) Members() []string {\n\treturn g.MembersWithOffset(0, g.MemberCount())\n}\n\n// BackupOwnersWithOffset returns a slice of backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. The offset and count parameters allow you\n// to iterate over backup owners in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) BackupOwnersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.backupOwners, offset, count)\n}\n\n// MembersWithOffset returns a slice of members in the group, using the underlying\n// avl.Tree to iterate over the members. The offset and count parameters allow you\n// to iterate over members in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) MembersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.members, offset, count)\n}\n\n// sliceWithOffset is a helper function to iterate over an avl.Tree with an offset and count.\nfunc sliceWithOffset(t *avl.Tree, offset, count int) []string {\n\tvar result []string\n\tt.IterateByOffset(offset, count, func(k string, _ interface{}) bool {\n\t\tif k == \"\" {\n\t\t\treturn true\n\t\t}\n\t\tresult = append(result, k)\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"mgroup_test.gno","body":"package mgroup\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestManagedGroup(t *testing.T) {\n\tt.Parallel()\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\tu3 := testutils.TestAddress(\"u3\")\n\n\tt.Run(\"AddBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddBackupOwner(u2)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"ClaimOwnership\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.Owner() != u2 {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u3)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != ErrNotMember {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotMember.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"AddMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddMember(u2)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure owner cannot be removed\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"MemberCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.MemberCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u3)\n\t\tif g.MemberCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.MemberCount())\n\t\t}\n\t\tg.RemoveMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t})\n\tt.Run(\"BackupOwnerCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.BackupOwnerCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u3)\n\t\tif g.BackupOwnerCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.RemoveBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t})\n\tt.Run(\"IsMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsMember(u1) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u1)\n\t\t}\n\t\tif g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif !g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t}\n\t})\n\tt.Run(\"IsBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsBackupOwner(u1) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u1)\n\t\t}\n\t\tif g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a backup owner\", u2)\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif !g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u2)\n\t\t}\n\t})\n\tt.Run(\"Owner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tstd.TestSetOrigCaller(u2)\n\t\tg.ClaimOwnership()\n\t\tif g.Owner() != u2 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t}\n\t})\n\tt.Run(\"BackupOwners\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\tg.AddBackupOwner(u3)\n\t\towners := g.BackupOwners()\n\t\tif len(owners) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(owners))\n\t\t}\n\t\tif owners[0] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, owners[0])\n\t\t}\n\t\tif owners[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t\tif owners[2] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t})\n\tt.Run(\"Members\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddMember(u2)\n\t\tg.AddMember(u3)\n\t\tmembers := g.Members()\n\t\tif len(members) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(members))\n\t\t}\n\t\tif members[0] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, members[0])\n\t\t}\n\t\tif members[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t\tif members[2] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t})\n}\n\nfunc TestSliceWithOffset(t *testing.T) {\n\tt.Parallel()\n\ttestTable := []struct {\n\t\tname string\n\t\tslice []string\n\t\toffset int\n\t\tcount int\n\t\texpected []string\n\t\texpectedCount int\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tslice: []string{},\n\t\t\toffset: 0,\n\t\t\tcount: 0,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"single\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 0,\n\t\t\tcount: 1,\n\t\t\texpected: []string{\"a\"},\n\t\t\texpectedCount: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"single offset\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 1,\n\t\t\tcount: 1,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 0,\n\t\t\tcount: 10,\n\t\t\texpected: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 10,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 5,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 10,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 11,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset count past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 20,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\ttree := avl.NewTree()\n\t\t\tfor _, s := range test.slice {\n\t\t\t\ttree.Set(s, struct{}{})\n\t\t\t}\n\t\t\tslice := sliceWithOffset(tree, test.offset, test.count)\n\t\t\tif len(slice) != test.expectedCount {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", test.expectedCount, len(slice))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eHdOGwm3cKOzv8gn52+5h75454CPzxreD6WcDRZKX6maEzHHswGtzC8g8pjj4nr/YMiP3+ZWdwtZQOULT7TWCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mgroup","path":"gno.land/p/n2p5/mgroup","files":[{"name":"mgroup.gno","body":"// Package mgroup is a simple managed group managing ownership and membership\n// for authorization in gno realms. The ManagedGroup struct is used to manage\n// the owner, backup owners, and members of a group. The owner is the primary\n// owner of the group and can add and remove backup owners and members. Backup\n// owners can claim ownership of the group. This is meant to provide backup\n// accounts for the owner in case the owner account is lost or compromised.\n// Members are used to authorize actions across realms.\npackage mgroup\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tErrCannotRemoveOwner = errors.New(\"mgroup: cannot remove owner\")\n\tErrNotBackupOwner = errors.New(\"mgroup: not a backup owner\")\n\tErrNotMember = errors.New(\"mgroup: not a member\")\n\tErrInvalidAddress = errors.New(\"mgroup: address is invalid\")\n)\n\ntype ManagedGroup struct {\n\towner *ownable.Ownable\n\tbackupOwners *avl.Tree\n\tmembers *avl.Tree\n}\n\n// New creates a new ManagedGroup with the owner set to the provided address.\n// The owner is automatically added as a backup owner and member of the group.\nfunc New(ownerAddress std.Address) *ManagedGroup {\n\tg := \u0026ManagedGroup{\n\t\towner: ownable.NewWithAddress(ownerAddress),\n\t\tbackupOwners: avl.NewTree(),\n\t\tmembers: avl.NewTree(),\n\t}\n\tg.AddBackupOwner(ownerAddress)\n\tg.AddMember(ownerAddress)\n\treturn g\n}\n\n// AddBackupOwner adds a backup owner to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddBackupOwner(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.backupOwners.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveBackupOwner removes a backup owner from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) RemoveBackupOwner(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.backupOwners.Remove(addr.String())\n\treturn nil\n}\n\n// ClaimOwnership allows a backup owner to claim ownership of the group.\n// If the caller is not a backup owner, an error is returned.\n// The caller is automatically added as a member of the group.\nfunc (g *ManagedGroup) ClaimOwnership() error {\n\tcaller := std.PrevRealm().Addr()\n\t// already owner, skip\n\tif caller == g.Owner() {\n\t\treturn nil\n\t}\n\tif !g.IsBackupOwner(caller) {\n\t\treturn ErrNotMember\n\t}\n\tg.owner = ownable.NewWithAddress(caller)\n\tg.AddMember(caller)\n\treturn nil\n}\n\n// AddMember adds a member to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddMember(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.members.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveMember removes a member from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner,\n// an error is returned.\nfunc (g *ManagedGroup) RemoveMember(addr std.Address) error {\n\tif err := g.owner.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.members.Remove(addr.String())\n\treturn nil\n}\n\n// MemberCount returns the number of members in the group.\nfunc (g *ManagedGroup) MemberCount() int {\n\treturn g.members.Size()\n}\n\n// BackupOwnerCount returns the number of backup owners in the group.\nfunc (g *ManagedGroup) BackupOwnerCount() int {\n\treturn g.backupOwners.Size()\n}\n\n// IsMember checks if an address is a member of the group.\nfunc (g *ManagedGroup) IsMember(addr std.Address) bool {\n\treturn g.members.Has(addr.String())\n}\n\n// IsBackupOwner checks if an address is a backup owner in the group.\nfunc (g *ManagedGroup) IsBackupOwner(addr std.Address) bool {\n\treturn g.backupOwners.Has(addr.String())\n}\n\n// Owner returns the owner of the group.\nfunc (g *ManagedGroup) Owner() std.Address {\n\treturn g.owner.Owner()\n}\n\n// BackupOwners returns a slice of all backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. If you have a large group, you may\n// want to use BackupOwnersWithOffset to iterate over backup owners in chunks.\nfunc (g *ManagedGroup) BackupOwners() []string {\n\treturn g.BackupOwnersWithOffset(0, g.BackupOwnerCount())\n}\n\n// Members returns a slice of all members in the group, using the underlying\n// avl.Tree to iterate over the members. If you have a large group, you may\n// want to use MembersWithOffset to iterate over members in chunks.\nfunc (g *ManagedGroup) Members() []string {\n\treturn g.MembersWithOffset(0, g.MemberCount())\n}\n\n// BackupOwnersWithOffset returns a slice of backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. The offset and count parameters allow you\n// to iterate over backup owners in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) BackupOwnersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.backupOwners, offset, count)\n}\n\n// MembersWithOffset returns a slice of members in the group, using the underlying\n// avl.Tree to iterate over the members. The offset and count parameters allow you\n// to iterate over members in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) MembersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.members, offset, count)\n}\n\n// sliceWithOffset is a helper function to iterate over an avl.Tree with an offset and count.\nfunc sliceWithOffset(t *avl.Tree, offset, count int) []string {\n\tvar result []string\n\tt.IterateByOffset(offset, count, func(k string, _ interface{}) bool {\n\t\tif k == \"\" {\n\t\t\treturn true\n\t\t}\n\t\tresult = append(result, k)\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"mgroup_test.gno","body":"package mgroup\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestManagedGroup(t *testing.T) {\n\tt.Parallel()\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\tu3 := testutils.TestAddress(\"u3\")\n\n\tt.Run(\"AddBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddBackupOwner(u2)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"ClaimOwnership\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.Owner() != u2 {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u3)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != ErrNotMember {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotMember.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"AddMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddMember(u2)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure owner cannot be removed\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"MemberCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.MemberCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u3)\n\t\tif g.MemberCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.MemberCount())\n\t\t}\n\t\tg.RemoveMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t})\n\tt.Run(\"BackupOwnerCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.BackupOwnerCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u3)\n\t\tif g.BackupOwnerCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.RemoveBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t})\n\tt.Run(\"IsMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsMember(u1) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u1)\n\t\t}\n\t\tif g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif !g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t}\n\t})\n\tt.Run(\"IsBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsBackupOwner(u1) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u1)\n\t\t}\n\t\tif g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a backup owner\", u2)\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif !g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u2)\n\t\t}\n\t})\n\tt.Run(\"Owner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tstd.TestSetOrigCaller(u2)\n\t\tg.ClaimOwnership()\n\t\tif g.Owner() != u2 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t}\n\t})\n\tt.Run(\"BackupOwners\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\tg.AddBackupOwner(u3)\n\t\towners := g.BackupOwners()\n\t\tif len(owners) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(owners))\n\t\t}\n\t\tif owners[0] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, owners[0])\n\t\t}\n\t\tif owners[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t\tif owners[2] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t})\n\tt.Run(\"Members\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddMember(u2)\n\t\tg.AddMember(u3)\n\t\tmembers := g.Members()\n\t\tif len(members) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(members))\n\t\t}\n\t\tif members[0] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, members[0])\n\t\t}\n\t\tif members[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t\tif members[2] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t})\n}\n\nfunc TestSliceWithOffset(t *testing.T) {\n\tt.Parallel()\n\ttestTable := []struct {\n\t\tname string\n\t\tslice []string\n\t\toffset int\n\t\tcount int\n\t\texpected []string\n\t\texpectedCount int\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tslice: []string{},\n\t\t\toffset: 0,\n\t\t\tcount: 0,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"single\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 0,\n\t\t\tcount: 1,\n\t\t\texpected: []string{\"a\"},\n\t\t\texpectedCount: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"single offset\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 1,\n\t\t\tcount: 1,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 0,\n\t\t\tcount: 10,\n\t\t\texpected: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 10,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 5,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 10,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 11,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset count past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 20,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\ttree := avl.NewTree()\n\t\t\tfor _, s := range test.slice {\n\t\t\t\ttree.Set(s, struct{}{})\n\t\t\t}\n\t\t\tslice := sliceWithOffset(tree, test.offset, test.count)\n\t\t\tif len(slice) != test.expectedCount {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", test.expectedCount, len(slice))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eHdOGwm3cKOzv8gn52+5h75454CPzxreD6WcDRZKX6maEzHHswGtzC8g8pjj4nr/YMiP3+ZWdwtZQOULT7TWCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"microblog","path":"gno.land/p/demo/microblog","files":[{"name":"microblog.gno","body":"package microblog\n\nimport (\n\t\"errors\"\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrNotFound = errors.New(\"not found\")\n\tStatusNotFound = \"404\"\n)\n\ntype Microblog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPages avl.Tree // author (string) -\u003e Page\n}\n\nfunc NewMicroblog(title string, prefix string) (m *Microblog) {\n\treturn \u0026Microblog{\n\t\tTitle: title,\n\t\tPrefix: prefix,\n\t\tPages: avl.Tree{},\n\t}\n}\n\nfunc (m *Microblog) GetPages() []*Page {\n\tvar (\n\t\tpages = make([]*Page, m.Pages.Size())\n\t\tindex = 0\n\t)\n\n\tm.Pages.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpages[index] = value.(*Page)\n\t\tindex++\n\t\treturn false\n\t})\n\n\tsort.Sort(byLastPosted(pages))\n\n\treturn pages\n}\n\nfunc (m *Microblog) NewPost(text string) error {\n\tauthor := std.GetOrigCaller()\n\t_, found := m.Pages.Get(author.String())\n\tif !found {\n\t\t// make a new page for the new author\n\t\tm.Pages.Set(author.String(), \u0026Page{\n\t\t\tAuthor: author,\n\t\t\tCreatedAt: time.Now(),\n\t\t})\n\t}\n\n\tpage, err := m.GetPage(author.String())\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn page.NewPost(text)\n}\n\nfunc (m *Microblog) GetPage(author string) (*Page, error) {\n\tsilo, found := m.Pages.Get(author)\n\tif !found {\n\t\treturn nil, ErrNotFound\n\t}\n\treturn silo.(*Page), nil\n}\n\ntype Page struct {\n\tID int\n\tAuthor std.Address\n\tCreatedAt time.Time\n\tLastPosted time.Time\n\tPosts avl.Tree // time -\u003e Post\n}\n\n// byLastPosted implements sort.Interface for []Page based on\n// the LastPosted field.\ntype byLastPosted []*Page\n\nfunc (a byLastPosted) Len() int { return len(a) }\nfunc (a byLastPosted) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\nfunc (a byLastPosted) Less(i, j int) bool { return a[i].LastPosted.After(a[j].LastPosted) }\n\nfunc (p *Page) NewPost(text string) error {\n\tnow := time.Now()\n\tp.LastPosted = now\n\tp.Posts.Set(ufmt.Sprintf(\"%s%d\", now.Format(time.RFC3339), p.Posts.Size()), \u0026Post{\n\t\tID: p.Posts.Size(),\n\t\tText: text,\n\t\tCreatedAt: now,\n\t})\n\treturn nil\n}\n\nfunc (p *Page) GetPosts() []*Post {\n\tposts := make([]*Post, p.Posts.Size())\n\ti := 0\n\tp.Posts.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpostParsed := value.(*Post)\n\t\tposts[i] = postParsed\n\t\ti++\n\t\treturn false\n\t})\n\treturn posts\n}\n\n// Post lists the specific update\ntype Post struct {\n\tID int\n\tCreatedAt time.Time\n\tText string\n}\n\nfunc (p *Post) String() string {\n\treturn \"\u003e \" + strings.ReplaceAll(p.Text, \"\\n\", \"\\n\u003e\\n\u003e\") + \"\\n\u003e\\n\u003e *\" + p.CreatedAt.Format(time.RFC1123) + \"*\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m9W+hYdNNaBMYRvKeWPc6lt76b3pbs/CqH0yWG35Y3r5PCSN9V0tq3U4LN6BdCs3sZaGD0RoDEAm4tkcXH6wDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"microblog","path":"gno.land/p/demo/microblog","files":[{"name":"microblog.gno","body":"package microblog\n\nimport (\n\t\"errors\"\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrNotFound = errors.New(\"not found\")\n\tStatusNotFound = \"404\"\n)\n\ntype Microblog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPages avl.Tree // author (string) -\u003e Page\n}\n\nfunc NewMicroblog(title string, prefix string) (m *Microblog) {\n\treturn \u0026Microblog{\n\t\tTitle: title,\n\t\tPrefix: prefix,\n\t\tPages: avl.Tree{},\n\t}\n}\n\nfunc (m *Microblog) GetPages() []*Page {\n\tvar (\n\t\tpages = make([]*Page, m.Pages.Size())\n\t\tindex = 0\n\t)\n\n\tm.Pages.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpages[index] = value.(*Page)\n\t\tindex++\n\t\treturn false\n\t})\n\n\tsort.Sort(byLastPosted(pages))\n\n\treturn pages\n}\n\nfunc (m *Microblog) NewPost(text string) error {\n\tauthor := std.GetOrigCaller()\n\t_, found := m.Pages.Get(author.String())\n\tif !found {\n\t\t// make a new page for the new author\n\t\tm.Pages.Set(author.String(), \u0026Page{\n\t\t\tAuthor: author,\n\t\t\tCreatedAt: time.Now(),\n\t\t})\n\t}\n\n\tpage, err := m.GetPage(author.String())\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn page.NewPost(text)\n}\n\nfunc (m *Microblog) GetPage(author string) (*Page, error) {\n\tsilo, found := m.Pages.Get(author)\n\tif !found {\n\t\treturn nil, ErrNotFound\n\t}\n\treturn silo.(*Page), nil\n}\n\ntype Page struct {\n\tID int\n\tAuthor std.Address\n\tCreatedAt time.Time\n\tLastPosted time.Time\n\tPosts avl.Tree // time -\u003e Post\n}\n\n// byLastPosted implements sort.Interface for []Page based on\n// the LastPosted field.\ntype byLastPosted []*Page\n\nfunc (a byLastPosted) Len() int { return len(a) }\nfunc (a byLastPosted) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\nfunc (a byLastPosted) Less(i, j int) bool { return a[i].LastPosted.After(a[j].LastPosted) }\n\nfunc (p *Page) NewPost(text string) error {\n\tnow := time.Now()\n\tp.LastPosted = now\n\tp.Posts.Set(ufmt.Sprintf(\"%s%d\", now.Format(time.RFC3339), p.Posts.Size()), \u0026Post{\n\t\tID: p.Posts.Size(),\n\t\tText: text,\n\t\tCreatedAt: now,\n\t})\n\treturn nil\n}\n\nfunc (p *Page) GetPosts() []*Post {\n\tposts := make([]*Post, p.Posts.Size())\n\ti := 0\n\tp.Posts.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpostParsed := value.(*Post)\n\t\tposts[i] = postParsed\n\t\ti++\n\t\treturn false\n\t})\n\treturn posts\n}\n\n// Post lists the specific update\ntype Post struct {\n\tID int\n\tCreatedAt time.Time\n\tText string\n}\n\nfunc (p *Post) String() string {\n\treturn \"\u003e \" + strings.ReplaceAll(p.Text, \"\\n\", \"\\n\u003e\\n\u003e\") + \"\\n\u003e\\n\u003e *\" + p.CreatedAt.Format(time.RFC1123) + \"*\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m9W+hYdNNaBMYRvKeWPc6lt76b3pbs/CqH0yWG35Y3r5PCSN9V0tq3U4LN6BdCs3sZaGD0RoDEAm4tkcXH6wDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"microblog","path":"gno.land/p/demo/microblog","files":[{"name":"microblog.gno","body":"package microblog\n\nimport (\n\t\"errors\"\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrNotFound = errors.New(\"not found\")\n\tStatusNotFound = \"404\"\n)\n\ntype Microblog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPages avl.Tree // author (string) -\u003e Page\n}\n\nfunc NewMicroblog(title string, prefix string) (m *Microblog) {\n\treturn \u0026Microblog{\n\t\tTitle: title,\n\t\tPrefix: prefix,\n\t\tPages: avl.Tree{},\n\t}\n}\n\nfunc (m *Microblog) GetPages() []*Page {\n\tvar (\n\t\tpages = make([]*Page, m.Pages.Size())\n\t\tindex = 0\n\t)\n\n\tm.Pages.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpages[index] = value.(*Page)\n\t\tindex++\n\t\treturn false\n\t})\n\n\tsort.Sort(byLastPosted(pages))\n\n\treturn pages\n}\n\nfunc (m *Microblog) NewPost(text string) error {\n\tauthor := std.GetOrigCaller()\n\t_, found := m.Pages.Get(author.String())\n\tif !found {\n\t\t// make a new page for the new author\n\t\tm.Pages.Set(author.String(), \u0026Page{\n\t\t\tAuthor: author,\n\t\t\tCreatedAt: time.Now(),\n\t\t})\n\t}\n\n\tpage, err := m.GetPage(author.String())\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn page.NewPost(text)\n}\n\nfunc (m *Microblog) GetPage(author string) (*Page, error) {\n\tsilo, found := m.Pages.Get(author)\n\tif !found {\n\t\treturn nil, ErrNotFound\n\t}\n\treturn silo.(*Page), nil\n}\n\ntype Page struct {\n\tID int\n\tAuthor std.Address\n\tCreatedAt time.Time\n\tLastPosted time.Time\n\tPosts avl.Tree // time -\u003e Post\n}\n\n// byLastPosted implements sort.Interface for []Page based on\n// the LastPosted field.\ntype byLastPosted []*Page\n\nfunc (a byLastPosted) Len() int { return len(a) }\nfunc (a byLastPosted) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\nfunc (a byLastPosted) Less(i, j int) bool { return a[i].LastPosted.After(a[j].LastPosted) }\n\nfunc (p *Page) NewPost(text string) error {\n\tnow := time.Now()\n\tp.LastPosted = now\n\tp.Posts.Set(ufmt.Sprintf(\"%s%d\", now.Format(time.RFC3339), p.Posts.Size()), \u0026Post{\n\t\tID: p.Posts.Size(),\n\t\tText: text,\n\t\tCreatedAt: now,\n\t})\n\treturn nil\n}\n\nfunc (p *Page) GetPosts() []*Post {\n\tposts := make([]*Post, p.Posts.Size())\n\ti := 0\n\tp.Posts.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpostParsed := value.(*Post)\n\t\tposts[i] = postParsed\n\t\ti++\n\t\treturn false\n\t})\n\treturn posts\n}\n\n// Post lists the specific update\ntype Post struct {\n\tID int\n\tCreatedAt time.Time\n\tText string\n}\n\nfunc (p *Post) String() string {\n\treturn \"\u003e \" + strings.ReplaceAll(p.Text, \"\\n\", \"\\n\u003e\\n\u003e\") + \"\\n\u003e\\n\u003e *\" + p.CreatedAt.Format(time.RFC1123) + \"*\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m9W+hYdNNaBMYRvKeWPc6lt76b3pbs/CqH0yWG35Y3r5PCSN9V0tq3U4LN6BdCs3sZaGD0RoDEAm4tkcXH6wDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"microblog","path":"gno.land/r/demo/microblog","files":[{"name":"README.md","body":"# microblog realm\n\n## Getting started:\n\n(One-time) Add the microblog package:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/p/demo/microblog\" --pkgdir \"examples/gno.land/p/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\n(One-time) Add the microblog realm:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/r/demo/microblog\" --pkgdir \"examples/gno.land/r/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\nAdd a microblog post:\n\n```\ngnokey maketx call --pkgpath \"gno.land/r/demo/microblog\" --func \"NewPost\" --args \"hello, world\" \\\n --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```"},{"name":"microblog.gno","body":"// Microblog is a website with shortform posts from users.\n// The API is simple - \"AddPost\" takes markdown and\n// adds it to the users site.\n// The microblog location is determined by the user address\n// /r/demo/microblog:\u003cYOUR-ADDRESS\u003e\npackage microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/microblog\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\ttitle = \"gno-based microblog\"\n\tprefix = \"/r/demo/microblog:\"\n\tm *microblog.Microblog\n)\n\nfunc init() {\n\tm = microblog.NewMicroblog(title, prefix)\n}\n\nfunc renderHome() string {\n\toutput := ufmt.Sprintf(\"# %s\\n\\n\", m.Title)\n\toutput += \"# pages\\n\\n\"\n\n\tfor _, page := range m.GetPages() {\n\t\tif u := users.GetUserByAddress(page.Author); u != nil {\n\t\t\toutput += ufmt.Sprintf(\"- [%s (%s)](%s%s)\\n\", u.Name, page.Author.String(), m.Prefix, page.Author.String())\n\t\t} else {\n\t\t\toutput += ufmt.Sprintf(\"- [%s](%s%s)\\n\", page.Author.String(), m.Prefix, page.Author.String())\n\t\t}\n\t}\n\n\treturn output\n}\n\nfunc renderUser(user string) string {\n\tsilo, found := m.Pages.Get(user)\n\tif !found {\n\t\treturn \"404\" // StatusNotFound\n\t}\n\n\treturn PageToString((silo.(*microblog.Page)))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\n\tisHome := path == \"\"\n\tisUser := len(parts) == 1\n\n\tswitch {\n\tcase isHome:\n\t\treturn renderHome()\n\n\tcase isUser:\n\t\treturn renderUser(parts[0])\n\t}\n\n\treturn \"404\" // StatusNotFound\n}\n\nfunc PageToString(p *microblog.Page) string {\n\to := \"\"\n\tif u := users.GetUserByAddress(p.Author); u != nil {\n\t\to += ufmt.Sprintf(\"# [%s](/r/demo/users:%s)\\n\\n\", u, u)\n\t\to += ufmt.Sprintf(\"%s\\n\\n\", u.Profile)\n\t}\n\to += ufmt.Sprintf(\"## [%s](/r/demo/microblog:%s)\\n\\n\", p.Author, p.Author)\n\n\to += ufmt.Sprintf(\"joined %s, last updated %s\\n\\n\", p.CreatedAt.Format(\"2006-02-01\"), p.LastPosted.Format(\"2006-02-01\"))\n\to += \"## feed\\n\\n\"\n\tfor _, u := range p.GetPosts() {\n\t\to += u.String() + \"\\n\\n\"\n\t}\n\treturn o\n}\n\n// NewPost takes a single argument (post markdown) and\n// adds a post to the address of the caller.\nfunc NewPost(text string) string {\n\tif err := m.NewPost(text); err != nil {\n\t\treturn \"unable to add new post\"\n\t}\n\treturn \"added new post\"\n}\n\nfunc Register(name, profile string) string {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(caller, name, profile)\n\treturn \"OK\"\n}\n"},{"name":"microblog_test.gno","body":"package microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestMicroblog(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\tstd.TestSetOrigCaller(author1)\n\n\turequire.Equal(t, \"404\", Render(\"/wrongpath\"), \"rendering not giving 404\")\n\turequire.NotEqual(t, \"404\", Render(\"\"), \"rendering / should not give 404\")\n\turequire.NoError(t, m.NewPost(\"goodbyte, web2\"), \"could not create post\")\n\n\t_, err := m.GetPage(author1.String())\n\turequire.NoError(t, err, \"silo should exist\")\n\n\t_, err = m.GetPage(\"no such author\")\n\turequire.Error(t, err, \"silo should not exist\")\n\n\tstd.TestSetOrigCaller(author2)\n\n\turequire.NoError(t, m.NewPost(\"hello, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hello again, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hi again,\\n web4?\"), \"could not create post\")\n\n\tprintln(\"--- MICROBLOG ---\\n\\n\")\n\n\texpected := `# gno-based microblog\n\n# pages\n\n- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n`\n\turequire.Equal(t, expected, Render(\"\"), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e goodbyte, web2\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author1.String())), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e hi again,\n\u003e\n\u003e web4?\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello again, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author2.String())), \"incorrect rendering\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fHDGwbkisb72NMxZ89fJC9Ubd0wYLK7QL2t2pCsH5WuakZn2qBa6BoVQOcIsZqBJsw6KnuJJ7h5ushFVKNGvBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"microblog","path":"gno.land/r/demo/microblog","files":[{"name":"README.md","body":"# microblog realm\n\n## Getting started:\n\n(One-time) Add the microblog package:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/p/demo/microblog\" --pkgdir \"examples/gno.land/p/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\n(One-time) Add the microblog realm:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/r/demo/microblog\" --pkgdir \"examples/gno.land/r/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\nAdd a microblog post:\n\n```\ngnokey maketx call --pkgpath \"gno.land/r/demo/microblog\" --func \"NewPost\" --args \"hello, world\" \\\n --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```"},{"name":"microblog.gno","body":"// Microblog is a website with shortform posts from users.\n// The API is simple - \"AddPost\" takes markdown and\n// adds it to the users site.\n// The microblog location is determined by the user address\n// /r/demo/microblog:\u003cYOUR-ADDRESS\u003e\npackage microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/microblog\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\ttitle = \"gno-based microblog\"\n\tprefix = \"/r/demo/microblog:\"\n\tm *microblog.Microblog\n)\n\nfunc init() {\n\tm = microblog.NewMicroblog(title, prefix)\n}\n\nfunc renderHome() string {\n\toutput := ufmt.Sprintf(\"# %s\\n\\n\", m.Title)\n\toutput += \"# pages\\n\\n\"\n\n\tfor _, page := range m.GetPages() {\n\t\tif u := users.GetUserByAddress(page.Author); u != nil {\n\t\t\toutput += ufmt.Sprintf(\"- [%s (%s)](%s%s)\\n\", u.Name, page.Author.String(), m.Prefix, page.Author.String())\n\t\t} else {\n\t\t\toutput += ufmt.Sprintf(\"- [%s](%s%s)\\n\", page.Author.String(), m.Prefix, page.Author.String())\n\t\t}\n\t}\n\n\treturn output\n}\n\nfunc renderUser(user string) string {\n\tsilo, found := m.Pages.Get(user)\n\tif !found {\n\t\treturn \"404\" // StatusNotFound\n\t}\n\n\treturn PageToString((silo.(*microblog.Page)))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\n\tisHome := path == \"\"\n\tisUser := len(parts) == 1\n\n\tswitch {\n\tcase isHome:\n\t\treturn renderHome()\n\n\tcase isUser:\n\t\treturn renderUser(parts[0])\n\t}\n\n\treturn \"404\" // StatusNotFound\n}\n\nfunc PageToString(p *microblog.Page) string {\n\to := \"\"\n\tif u := users.GetUserByAddress(p.Author); u != nil {\n\t\to += ufmt.Sprintf(\"# [%s](/r/demo/users:%s)\\n\\n\", u, u)\n\t\to += ufmt.Sprintf(\"%s\\n\\n\", u.Profile)\n\t}\n\to += ufmt.Sprintf(\"## [%s](/r/demo/microblog:%s)\\n\\n\", p.Author, p.Author)\n\n\to += ufmt.Sprintf(\"joined %s, last updated %s\\n\\n\", p.CreatedAt.Format(\"2006-02-01\"), p.LastPosted.Format(\"2006-02-01\"))\n\to += \"## feed\\n\\n\"\n\tfor _, u := range p.GetPosts() {\n\t\to += u.String() + \"\\n\\n\"\n\t}\n\treturn o\n}\n\n// NewPost takes a single argument (post markdown) and\n// adds a post to the address of the caller.\nfunc NewPost(text string) string {\n\tif err := m.NewPost(text); err != nil {\n\t\treturn \"unable to add new post\"\n\t}\n\treturn \"added new post\"\n}\n\nfunc Register(name, profile string) string {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(caller, name, profile)\n\treturn \"OK\"\n}\n"},{"name":"microblog_test.gno","body":"package microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestMicroblog(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\tstd.TestSetOrigCaller(author1)\n\n\turequire.Equal(t, \"404\", Render(\"/wrongpath\"), \"rendering not giving 404\")\n\turequire.NotEqual(t, \"404\", Render(\"\"), \"rendering / should not give 404\")\n\turequire.NoError(t, m.NewPost(\"goodbyte, web2\"), \"could not create post\")\n\n\t_, err := m.GetPage(author1.String())\n\turequire.NoError(t, err, \"silo should exist\")\n\n\t_, err = m.GetPage(\"no such author\")\n\turequire.Error(t, err, \"silo should not exist\")\n\n\tstd.TestSetOrigCaller(author2)\n\n\turequire.NoError(t, m.NewPost(\"hello, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hello again, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hi again,\\n web4?\"), \"could not create post\")\n\n\tprintln(\"--- MICROBLOG ---\\n\\n\")\n\n\texpected := `# gno-based microblog\n\n# pages\n\n- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n`\n\turequire.Equal(t, expected, Render(\"\"), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e goodbyte, web2\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author1.String())), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e hi again,\n\u003e\n\u003e web4?\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello again, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author2.String())), \"incorrect rendering\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fHDGwbkisb72NMxZ89fJC9Ubd0wYLK7QL2t2pCsH5WuakZn2qBa6BoVQOcIsZqBJsw6KnuJJ7h5ushFVKNGvBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"microblog","path":"gno.land/r/demo/microblog","files":[{"name":"README.md","body":"# microblog realm\n\n## Getting started:\n\n(One-time) Add the microblog package:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/p/demo/microblog\" --pkgdir \"examples/gno.land/p/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\n(One-time) Add the microblog realm:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/r/demo/microblog\" --pkgdir \"examples/gno.land/r/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\nAdd a microblog post:\n\n```\ngnokey maketx call --pkgpath \"gno.land/r/demo/microblog\" --func \"NewPost\" --args \"hello, world\" \\\n --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```"},{"name":"microblog.gno","body":"// Microblog is a website with shortform posts from users.\n// The API is simple - \"AddPost\" takes markdown and\n// adds it to the users site.\n// The microblog location is determined by the user address\n// /r/demo/microblog:\u003cYOUR-ADDRESS\u003e\npackage microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/microblog\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\ttitle = \"gno-based microblog\"\n\tprefix = \"/r/demo/microblog:\"\n\tm *microblog.Microblog\n)\n\nfunc init() {\n\tm = microblog.NewMicroblog(title, prefix)\n}\n\nfunc renderHome() string {\n\toutput := ufmt.Sprintf(\"# %s\\n\\n\", m.Title)\n\toutput += \"# pages\\n\\n\"\n\n\tfor _, page := range m.GetPages() {\n\t\tif u := users.GetUserByAddress(page.Author); u != nil {\n\t\t\toutput += ufmt.Sprintf(\"- [%s (%s)](%s%s)\\n\", u.Name, page.Author.String(), m.Prefix, page.Author.String())\n\t\t} else {\n\t\t\toutput += ufmt.Sprintf(\"- [%s](%s%s)\\n\", page.Author.String(), m.Prefix, page.Author.String())\n\t\t}\n\t}\n\n\treturn output\n}\n\nfunc renderUser(user string) string {\n\tsilo, found := m.Pages.Get(user)\n\tif !found {\n\t\treturn \"404\" // StatusNotFound\n\t}\n\n\treturn PageToString((silo.(*microblog.Page)))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\n\tisHome := path == \"\"\n\tisUser := len(parts) == 1\n\n\tswitch {\n\tcase isHome:\n\t\treturn renderHome()\n\n\tcase isUser:\n\t\treturn renderUser(parts[0])\n\t}\n\n\treturn \"404\" // StatusNotFound\n}\n\nfunc PageToString(p *microblog.Page) string {\n\to := \"\"\n\tif u := users.GetUserByAddress(p.Author); u != nil {\n\t\to += ufmt.Sprintf(\"# [%s](/r/demo/users:%s)\\n\\n\", u, u)\n\t\to += ufmt.Sprintf(\"%s\\n\\n\", u.Profile)\n\t}\n\to += ufmt.Sprintf(\"## [%s](/r/demo/microblog:%s)\\n\\n\", p.Author, p.Author)\n\n\to += ufmt.Sprintf(\"joined %s, last updated %s\\n\\n\", p.CreatedAt.Format(\"2006-02-01\"), p.LastPosted.Format(\"2006-02-01\"))\n\to += \"## feed\\n\\n\"\n\tfor _, u := range p.GetPosts() {\n\t\to += u.String() + \"\\n\\n\"\n\t}\n\treturn o\n}\n\n// NewPost takes a single argument (post markdown) and\n// adds a post to the address of the caller.\nfunc NewPost(text string) string {\n\tif err := m.NewPost(text); err != nil {\n\t\treturn \"unable to add new post\"\n\t}\n\treturn \"added new post\"\n}\n\nfunc Register(name, profile string) string {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(caller, name, profile)\n\treturn \"OK\"\n}\n"},{"name":"microblog_test.gno","body":"package microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestMicroblog(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\tstd.TestSetOrigCaller(author1)\n\n\turequire.Equal(t, \"404\", Render(\"/wrongpath\"), \"rendering not giving 404\")\n\turequire.NotEqual(t, \"404\", Render(\"\"), \"rendering / should not give 404\")\n\turequire.NoError(t, m.NewPost(\"goodbyte, web2\"), \"could not create post\")\n\n\t_, err := m.GetPage(author1.String())\n\turequire.NoError(t, err, \"silo should exist\")\n\n\t_, err = m.GetPage(\"no such author\")\n\turequire.Error(t, err, \"silo should not exist\")\n\n\tstd.TestSetOrigCaller(author2)\n\n\turequire.NoError(t, m.NewPost(\"hello, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hello again, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hi again,\\n web4?\"), \"could not create post\")\n\n\tprintln(\"--- MICROBLOG ---\\n\\n\")\n\n\texpected := `# gno-based microblog\n\n# pages\n\n- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n`\n\turequire.Equal(t, expected, Render(\"\"), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e goodbyte, web2\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author1.String())), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e hi again,\n\u003e\n\u003e web4?\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello again, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author2.String())), \"incorrect rendering\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fHDGwbkisb72NMxZ89fJC9Ubd0wYLK7QL2t2pCsH5WuakZn2qBa6BoVQOcIsZqBJsw6KnuJJ7h5ushFVKNGvBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"millipede","path":"gno.land/r/demo/art/millipede","files":[{"name":"millipede.gno","body":"package millipede\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 100\n)\n\nfunc Draw(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid millipede size\")\n\t}\n\tpaddings := []string{\" \", \" \", \"\", \" \", \" \", \" \", \" \", \" \", \" \"}\n\tvar b strings.Builder\n\tb.WriteString(\" ╚⊙ ⊙╝\\n\")\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(paddings[i%9] + \"╚═(███)═╝\\n\")\n\t}\n\treturn b.String()\n}\n\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"```\\n\" + Draw(size) + \"```\\n\"\n\tif size \u003e minSize {\n\t\toutput += ufmt.Sprintf(\"[%d](/r/demo/art/millipede:%d)\u003c \", size-1, size-1)\n\t}\n\tif size \u003c maxSize {\n\t\toutput += ufmt.Sprintf(\" \u003e[%d](/r/demo/art/millipede:%d)\", size+1, size+1)\n\t}\n\treturn output\n}\n\n// based on https://github.com/getmillipede/millipede-go/blob/977f046c39c35a650eac0fd30245e96b22c7803c/main.go\n"},{"name":"millipede_test.gno","body":"package millipede\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[19](/r/demo/art/millipede:19)\u003c \u003e[21](/r/demo/art/millipede:21)\",\n\t\t},\n\t\t{\n\t\t\tpath: \"4\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[3](/r/demo/art/millipede:3)\u003c \u003e[5](/r/demo/art/millipede:5)\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"20chBdChA6tUKya+HKigT62jvF/9gDJXQShSyDHn+9dvlOL4jTuBOArPO7nnceZtprpjBDf958dU0zgg2kOSCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"millipede","path":"gno.land/r/demo/art/millipede","files":[{"name":"millipede.gno","body":"package millipede\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 100\n)\n\nfunc Draw(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid millipede size\")\n\t}\n\tpaddings := []string{\" \", \" \", \"\", \" \", \" \", \" \", \" \", \" \", \" \"}\n\tvar b strings.Builder\n\tb.WriteString(\" ╚⊙ ⊙╝\\n\")\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(paddings[i%9] + \"╚═(███)═╝\\n\")\n\t}\n\treturn b.String()\n}\n\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"```\\n\" + Draw(size) + \"```\\n\"\n\tif size \u003e minSize {\n\t\toutput += ufmt.Sprintf(\"[%d](/r/demo/art/millipede:%d)\u003c \", size-1, size-1)\n\t}\n\tif size \u003c maxSize {\n\t\toutput += ufmt.Sprintf(\" \u003e[%d](/r/demo/art/millipede:%d)\", size+1, size+1)\n\t}\n\treturn output\n}\n\n// based on https://github.com/getmillipede/millipede-go/blob/977f046c39c35a650eac0fd30245e96b22c7803c/main.go\n"},{"name":"millipede_test.gno","body":"package millipede\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[19](/r/demo/art/millipede:19)\u003c \u003e[21](/r/demo/art/millipede:21)\",\n\t\t},\n\t\t{\n\t\t\tpath: \"4\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[3](/r/demo/art/millipede:3)\u003c \u003e[5](/r/demo/art/millipede:5)\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"20chBdChA6tUKya+HKigT62jvF/9gDJXQShSyDHn+9dvlOL4jTuBOArPO7nnceZtprpjBDf958dU0zgg2kOSCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"millipede","path":"gno.land/r/demo/art/millipede","files":[{"name":"millipede.gno","body":"package millipede\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 100\n)\n\nfunc Draw(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid millipede size\")\n\t}\n\tpaddings := []string{\" \", \" \", \"\", \" \", \" \", \" \", \" \", \" \", \" \"}\n\tvar b strings.Builder\n\tb.WriteString(\" ╚⊙ ⊙╝\\n\")\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(paddings[i%9] + \"╚═(███)═╝\\n\")\n\t}\n\treturn b.String()\n}\n\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"```\\n\" + Draw(size) + \"```\\n\"\n\tif size \u003e minSize {\n\t\toutput += ufmt.Sprintf(\"[%d](/r/demo/art/millipede:%d)\u003c \", size-1, size-1)\n\t}\n\tif size \u003c maxSize {\n\t\toutput += ufmt.Sprintf(\" \u003e[%d](/r/demo/art/millipede:%d)\", size+1, size+1)\n\t}\n\treturn output\n}\n\n// based on https://github.com/getmillipede/millipede-go/blob/977f046c39c35a650eac0fd30245e96b22c7803c/main.go\n"},{"name":"millipede_test.gno","body":"package millipede\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[19](/r/demo/art/millipede:19)\u003c \u003e[21](/r/demo/art/millipede:21)\",\n\t\t},\n\t\t{\n\t\t\tpath: \"4\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[3](/r/demo/art/millipede:3)\u003c \u003e[5](/r/demo/art/millipede:5)\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"20chBdChA6tUKya+HKigT62jvF/9gDJXQShSyDHn+9dvlOL4jTuBOArPO7nnceZtprpjBDf958dU0zgg2kOSCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mirror","path":"gno.land/r/demo/mirror","files":[{"name":"doc.gno","body":"// Package mirror demonstrates that users can pass realm functions\n// as arguments to other realms.\npackage mirror\n"},{"name":"mirror.gno","body":"package mirror\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar store avl.Tree\n\nfunc Register(pkgpath string, rndr func(string) string) {\n\tif store.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tif rndr == nil {\n\t\treturn\n\t}\n\n\tstore.Set(pkgpath, rndr)\n}\n\nfunc Render(path string) string {\n\tif raw, ok := store.Get(path); ok {\n\t\treturn raw.(func(string) string)(\"\")\n\t}\n\n\tif store.Size() == 0 {\n\t\treturn \"None are fair.\"\n\t}\n\n\treturn \"Mirror, mirror on the wall, which realm's the fairest of them all?\"\n}\n\n// Credits to @jeronimoalbi\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"44lMF7ta2MVRvho8FEy+Eq8kbBPsypyXp1t/ik6Gj9s7Kl1ZwGxXNNqUcObfZkKorljUT3NV93MD5NSc/lycBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mirror","path":"gno.land/r/demo/mirror","files":[{"name":"doc.gno","body":"// Package mirror demonstrates that users can pass realm functions\n// as arguments to other realms.\npackage mirror\n"},{"name":"mirror.gno","body":"package mirror\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar store avl.Tree\n\nfunc Register(pkgpath string, rndr func(string) string) {\n\tif store.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tif rndr == nil {\n\t\treturn\n\t}\n\n\tstore.Set(pkgpath, rndr)\n}\n\nfunc Render(path string) string {\n\tif raw, ok := store.Get(path); ok {\n\t\treturn raw.(func(string) string)(\"\")\n\t}\n\n\tif store.Size() == 0 {\n\t\treturn \"None are fair.\"\n\t}\n\n\treturn \"Mirror, mirror on the wall, which realm's the fairest of them all?\"\n}\n\n// Credits to @jeronimoalbi\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"44lMF7ta2MVRvho8FEy+Eq8kbBPsypyXp1t/ik6Gj9s7Kl1ZwGxXNNqUcObfZkKorljUT3NV93MD5NSc/lycBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mirror","path":"gno.land/r/demo/mirror","files":[{"name":"doc.gno","body":"// Package mirror demonstrates that users can pass realm functions\n// as arguments to other realms.\npackage mirror\n"},{"name":"mirror.gno","body":"package mirror\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar store avl.Tree\n\nfunc Register(pkgpath string, rndr func(string) string) {\n\tif store.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tif rndr == nil {\n\t\treturn\n\t}\n\n\tstore.Set(pkgpath, rndr)\n}\n\nfunc Render(path string) string {\n\tif raw, ok := store.Get(path); ok {\n\t\treturn raw.(func(string) string)(\"\")\n\t}\n\n\tif store.Size() == 0 {\n\t\treturn \"None are fair.\"\n\t}\n\n\treturn \"Mirror, mirror on the wall, which realm's the fairest of them all?\"\n}\n\n// Credits to @jeronimoalbi\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"44lMF7ta2MVRvho8FEy+Eq8kbBPsypyXp1t/ik6Gj9s7Kl1ZwGxXNNqUcObfZkKorljUT3NV93MD5NSc/lycBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"monit","path":"gno.land/r/gnoland/monit","files":[{"name":"monit.gno","body":"// Package monit links a monitoring system with the chain in both directions.\n//\n// The agent will periodically call Incr() and verify that the value is always\n// higher than the previously known one. The contract will store the last update\n// time and use it to detect whether or not the monitoring agent is functioning\n// correctly.\npackage monit\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/watchdog\"\n)\n\nvar (\n\tcounter int\n\tlastUpdate time.Time\n\tlastCaller std.Address\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n\towner = ownable.New() // TODO: replace with -\u003e ownable.NewWithAddress...\n\twatchdogDuration = 5 * time.Minute\n)\n\n// Incr increments the counter and informs the watchdog that we're alive.\n// This function can be called by anyone.\nfunc Incr() int {\n\tcounter++\n\tlastUpdate = time.Now()\n\tlastCaller = std.PrevRealm().Addr()\n\twd.Alive()\n\treturn counter\n}\n\n// Reset resets the realm state.\n// This function can only be called by the admin.\nfunc Reset() {\n\tif owner.CallerIsOwner() != nil { // TODO: replace with owner.AssertCallerIsOwner\n\t\tpanic(\"unauthorized\")\n\t}\n\tcounter = 0\n\tlastCaller = std.PrevRealm().Addr()\n\tlastUpdate = time.Now()\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n}\n\nfunc Render(_ string) string {\n\tstatus := wd.Status()\n\treturn ufmt.Sprintf(\n\t\t\"counter=%d\\nlast update=%s\\nlast caller=%s\\nstatus=%s\",\n\t\tcounter, lastUpdate, lastCaller, status,\n\t)\n}\n\n// TransferOwnership transfers ownership to a new owner. This is a proxy to\n// ownable.Ownable.TransferOwnership.\nfunc TransferOwnership(newOwner std.Address) { owner.TransferOwnership(newOwner) }\n"},{"name":"monit_test.gno","body":"package monit\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\t// initial state, watchdog is KO.\n\t{\n\t\texpected := `counter=0\nlast update=0001-01-01 00:00:00 +0000 UTC\nlast caller=\nstatus=KO`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t// call Incr(), watchdog is OK.\n\tIncr()\n\tIncr()\n\tIncr()\n\t{\n\t\texpected := `counter=3\nlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\nlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\nstatus=OK`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t/* XXX: improve tests once we've the missing std.TestSkipTime feature\n\t\t// wait 1h, watchdog is KO.\n\t\tuse std.TestSkipTime(time.Hour)\n\t\t{\n\t\t\texpected := `counter=3\n\tlast update=2009-02-13 22:31:30 +0000 UTC m=+1234564290.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=KO`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\n\t\t// call Incr(), watchdog is OK.\n\t\tIncr()\n\t\t{\n\t\t\texpected := `counter=4\n\tlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=OK`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\t*/\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zKO8zLgMwkB4Avri070t4Wj4JdihzvVoN6EVuRCMglXUXzUmoO46ZEMC6+tIWdFHqDA20E7FCEvV6I/5YbztAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"monit","path":"gno.land/r/gnoland/monit","files":[{"name":"monit.gno","body":"// Package monit links a monitoring system with the chain in both directions.\n//\n// The agent will periodically call Incr() and verify that the value is always\n// higher than the previously known one. The contract will store the last update\n// time and use it to detect whether or not the monitoring agent is functioning\n// correctly.\npackage monit\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/watchdog\"\n)\n\nvar (\n\tcounter int\n\tlastUpdate time.Time\n\tlastCaller std.Address\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n\towner = ownable.New() // TODO: replace with -\u003e ownable.NewWithAddress...\n\twatchdogDuration = 5 * time.Minute\n)\n\n// Incr increments the counter and informs the watchdog that we're alive.\n// This function can be called by anyone.\nfunc Incr() int {\n\tcounter++\n\tlastUpdate = time.Now()\n\tlastCaller = std.PrevRealm().Addr()\n\twd.Alive()\n\treturn counter\n}\n\n// Reset resets the realm state.\n// This function can only be called by the admin.\nfunc Reset() {\n\tif owner.CallerIsOwner() != nil { // TODO: replace with owner.AssertCallerIsOwner\n\t\tpanic(\"unauthorized\")\n\t}\n\tcounter = 0\n\tlastCaller = std.PrevRealm().Addr()\n\tlastUpdate = time.Now()\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n}\n\nfunc Render(_ string) string {\n\tstatus := wd.Status()\n\treturn ufmt.Sprintf(\n\t\t\"counter=%d\\nlast update=%s\\nlast caller=%s\\nstatus=%s\",\n\t\tcounter, lastUpdate, lastCaller, status,\n\t)\n}\n\n// TransferOwnership transfers ownership to a new owner. This is a proxy to\n// ownable.Ownable.TransferOwnership.\nfunc TransferOwnership(newOwner std.Address) { owner.TransferOwnership(newOwner) }\n"},{"name":"monit_test.gno","body":"package monit\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\t// initial state, watchdog is KO.\n\t{\n\t\texpected := `counter=0\nlast update=0001-01-01 00:00:00 +0000 UTC\nlast caller=\nstatus=KO`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t// call Incr(), watchdog is OK.\n\tIncr()\n\tIncr()\n\tIncr()\n\t{\n\t\texpected := `counter=3\nlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\nlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\nstatus=OK`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t/* XXX: improve tests once we've the missing std.TestSkipTime feature\n\t\t// wait 1h, watchdog is KO.\n\t\tuse std.TestSkipTime(time.Hour)\n\t\t{\n\t\t\texpected := `counter=3\n\tlast update=2009-02-13 22:31:30 +0000 UTC m=+1234564290.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=KO`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\n\t\t// call Incr(), watchdog is OK.\n\t\tIncr()\n\t\t{\n\t\t\texpected := `counter=4\n\tlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=OK`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\t*/\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zKO8zLgMwkB4Avri070t4Wj4JdihzvVoN6EVuRCMglXUXzUmoO46ZEMC6+tIWdFHqDA20E7FCEvV6I/5YbztAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"monit","path":"gno.land/r/gnoland/monit","files":[{"name":"monit.gno","body":"// Package monit links a monitoring system with the chain in both directions.\n//\n// The agent will periodically call Incr() and verify that the value is always\n// higher than the previously known one. The contract will store the last update\n// time and use it to detect whether or not the monitoring agent is functioning\n// correctly.\npackage monit\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/watchdog\"\n)\n\nvar (\n\tcounter int\n\tlastUpdate time.Time\n\tlastCaller std.Address\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n\towner = ownable.New() // TODO: replace with -\u003e ownable.NewWithAddress...\n\twatchdogDuration = 5 * time.Minute\n)\n\n// Incr increments the counter and informs the watchdog that we're alive.\n// This function can be called by anyone.\nfunc Incr() int {\n\tcounter++\n\tlastUpdate = time.Now()\n\tlastCaller = std.PrevRealm().Addr()\n\twd.Alive()\n\treturn counter\n}\n\n// Reset resets the realm state.\n// This function can only be called by the admin.\nfunc Reset() {\n\tif owner.CallerIsOwner() != nil { // TODO: replace with owner.AssertCallerIsOwner\n\t\tpanic(\"unauthorized\")\n\t}\n\tcounter = 0\n\tlastCaller = std.PrevRealm().Addr()\n\tlastUpdate = time.Now()\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n}\n\nfunc Render(_ string) string {\n\tstatus := wd.Status()\n\treturn ufmt.Sprintf(\n\t\t\"counter=%d\\nlast update=%s\\nlast caller=%s\\nstatus=%s\",\n\t\tcounter, lastUpdate, lastCaller, status,\n\t)\n}\n\n// TransferOwnership transfers ownership to a new owner. This is a proxy to\n// ownable.Ownable.TransferOwnership.\nfunc TransferOwnership(newOwner std.Address) { owner.TransferOwnership(newOwner) }\n"},{"name":"monit_test.gno","body":"package monit\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\t// initial state, watchdog is KO.\n\t{\n\t\texpected := `counter=0\nlast update=0001-01-01 00:00:00 +0000 UTC\nlast caller=\nstatus=KO`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t// call Incr(), watchdog is OK.\n\tIncr()\n\tIncr()\n\tIncr()\n\t{\n\t\texpected := `counter=3\nlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\nlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\nstatus=OK`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t/* XXX: improve tests once we've the missing std.TestSkipTime feature\n\t\t// wait 1h, watchdog is KO.\n\t\tuse std.TestSkipTime(time.Hour)\n\t\t{\n\t\t\texpected := `counter=3\n\tlast update=2009-02-13 22:31:30 +0000 UTC m=+1234564290.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=KO`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\n\t\t// call Incr(), watchdog is OK.\n\t\tIncr()\n\t\t{\n\t\t\texpected := `counter=4\n\tlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=OK`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\t*/\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zKO8zLgMwkB4Avri070t4Wj4JdihzvVoN6EVuRCMglXUXzUmoO46ZEMC6+tIWdFHqDA20E7FCEvV6I/5YbztAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"multievent","path":"gno.land/r/test1/multievent","files":[{"name":"package.gno","body":"package multievent\n\nimport \"std\"\n\nfunc TwoEvent() string {\n\tstd.Emit(\"TwoEvent\", \"key1\", \"value1\")\n\tstd.Emit(\"TwoEvent\", \"key2\", \"value2\")\n\n\treturn \"ok\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jtMhiUNNyXLt18iaX7XlvnmUhKIuXtbL7crj62l0FsBD40hIj7LSHjcuiDVJpANU1bwi/qClPg1Qy3j0nallDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mux","path":"gno.land/p/demo/mux","files":[{"name":"doc.gno","body":"// Package mux provides a simple routing and rendering library for handling dynamic path-based requests in Gno contracts.\n//\n// The `mux` package aims to offer similar functionality to `http.ServeMux` in Go, but for Gno's Render() requests.\n// It allows you to define routes with dynamic parts and associate them with corresponding handler functions for rendering outputs.\n//\n// Usage:\n// 1. Create a new Router instance using `NewRouter()` to handle routing and rendering logic.\n// 2. Register routes and their associated handler functions using the `Handle(route, handler)` method.\n// 3. Implement the rendering logic within the handler functions, utilizing the `Request` and `ResponseWriter` types.\n// 4. Use the `Render(path)` method to process a given path and execute the corresponding handler function to obtain the rendered output.\n//\n// Route Patterns:\n// Routes can include dynamic parts enclosed in braces, such as \"users/{id}\" or \"hello/{name}\". The `Request` object's `GetVar(key)`\n// method allows you to extract the value of a specific variable from the path based on routing rules.\n//\n// Example:\n//\n//\trouter := mux.NewRouter()\n//\n//\t// Define a route with a variable and associated handler function\n//\trouter.HandleFunc(\"hello/{name}\", func(res *mux.ResponseWriter, req *mux.Request) {\n//\t\tname := req.GetVar(\"name\")\n//\t\tif name != \"\" {\n//\t\t\tres.Write(\"Hello, \" + name + \"!\")\n//\t\t} else {\n//\t\t\tres.Write(\"Hello, world!\")\n//\t\t}\n//\t})\n//\n//\t// Render the output for the \"/hello/Alice\" path\n//\toutput := router.Render(\"hello/Alice\")\n//\t// Output: \"Hello, Alice!\"\n//\n// Note: The `mux` package provides a basic routing and rendering mechanism for simple use cases. For more advanced routing features,\n// consider using more specialized libraries or frameworks.\npackage mux\n"},{"name":"handler.gno","body":"package mux\n\ntype Handler struct {\n\tPattern string\n\tFn HandlerFunc\n}\n\ntype HandlerFunc func(*ResponseWriter, *Request)\n\n// TODO: type ErrHandlerFunc func(*ResponseWriter, *Request) error\n// TODO: NotFoundHandler\n// TODO: AutomaticIndex\n"},{"name":"helpers.gno","body":"package mux\n\nfunc defaultNotFoundHandler(res *ResponseWriter, req *Request) {\n\tres.Write(\"404\")\n}\n"},{"name":"request.gno","body":"package mux\n\nimport \"strings\"\n\n// Request represents an incoming request.\ntype Request struct {\n\t// Path is request path name.\n\t//\n\t// Note: use RawPath to obtain a raw path with query string.\n\tPath string\n\n\t// RawPath contains a whole request path, including query string.\n\tRawPath string\n\n\t// HandlerPath is handler rule that matches a request.\n\tHandlerPath string\n}\n\n// GetVar retrieves a variable from the path based on routing rules.\nfunc (r *Request) GetVar(key string) string {\n\tvar (\n\t\thandlerParts = strings.Split(r.HandlerPath, \"/\")\n\t\treqParts = strings.Split(r.Path, \"/\")\n\t)\n\n\tfor i := 0; i \u003c len(handlerParts); i++ {\n\t\thandlerPart := handlerParts[i]\n\t\tswitch {\n\t\tcase handlerPart == \"*\":\n\t\t\t// XXX: implement a/b/*/d/e\n\t\t\tpanic(\"not implemented\")\n\t\tcase strings.HasPrefix(handlerPart, \"{\") \u0026\u0026 strings.HasSuffix(handlerPart, \"}\"):\n\t\t\tparameter := handlerPart[1 : len(handlerPart)-1]\n\t\t\tif parameter == key {\n\t\t\t\treturn reqParts[i]\n\t\t\t}\n\t\tdefault:\n\t\t\t// continue\n\t\t}\n\t}\n\n\treturn \"\"\n}\n"},{"name":"request_test.gno","body":"package mux\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRequest_GetVar(t *testing.T) {\n\tcases := []struct {\n\t\thandlerPath string\n\t\treqPath string\n\t\tgetVarKey string\n\t\texpectedOutput string\n\t}{\n\t\t{\"users/{id}\", \"users/123\", \"id\", \"123\"},\n\t\t{\"users/123\", \"users/123\", \"id\", \"\"},\n\t\t{\"users/{id}\", \"users/123\", \"nonexistent\", \"\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"b\", \"42\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"d\", \"1337\"},\n\t\t{\"{a}\", \"foo\", \"a\", \"foo\"},\n\t\t// TODO: wildcards: a/*/c\n\t\t// TODO: multiple patterns per slashes: a/{b}-{c}/d\n\t}\n\n\tfor _, tt := range cases {\n\t\tname := fmt.Sprintf(\"%s-%s\", tt.handlerPath, tt.reqPath)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\treq := \u0026Request{\n\t\t\t\tHandlerPath: tt.handlerPath,\n\t\t\t\tPath: tt.reqPath,\n\t\t\t}\n\n\t\t\toutput := req.GetVar(tt.getVarKey)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected '%q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"response.gno","body":"package mux\n\nimport \"strings\"\n\n// ResponseWriter represents the response writer.\ntype ResponseWriter struct {\n\toutput strings.Builder\n}\n\n// Write appends data to the response output.\nfunc (rw *ResponseWriter) Write(data string) {\n\trw.output.WriteString(data)\n}\n\n// Output returns the final response output.\nfunc (rw *ResponseWriter) Output() string {\n\treturn rw.output.String()\n}\n\n// TODO: func (rw *ResponseWriter) Header()...\n"},{"name":"router.gno","body":"package mux\n\nimport \"strings\"\n\n// Router handles the routing and rendering logic.\ntype Router struct {\n\troutes []Handler\n\tNotFoundHandler HandlerFunc\n}\n\n// NewRouter creates a new Router instance.\nfunc NewRouter() *Router {\n\treturn \u0026Router{\n\t\troutes: make([]Handler, 0),\n\t\tNotFoundHandler: defaultNotFoundHandler,\n\t}\n}\n\n// Render renders the output for the given path using the registered route handler.\nfunc (r *Router) Render(reqPath string) string {\n\tclearPath := stripQueryString(reqPath)\n\treqParts := strings.Split(clearPath, \"/\")\n\n\tfor _, route := range r.routes {\n\t\tpatParts := strings.Split(route.Pattern, \"/\")\n\n\t\tif len(patParts) != len(reqParts) {\n\t\t\tcontinue\n\t\t}\n\n\t\tmatch := true\n\t\tfor i := 0; i \u003c len(patParts); i++ {\n\t\t\tpatPart := patParts[i]\n\t\t\treqPart := reqParts[i]\n\n\t\t\tif patPart == \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.HasPrefix(patPart, \"{\") \u0026\u0026 strings.HasSuffix(patPart, \"}\") {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif patPart != reqPart {\n\t\t\t\tmatch = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif match {\n\t\t\treq := \u0026Request{\n\t\t\t\tPath: clearPath,\n\t\t\t\tRawPath: reqPath,\n\t\t\t\tHandlerPath: route.Pattern,\n\t\t\t}\n\t\t\tres := \u0026ResponseWriter{}\n\t\t\troute.Fn(res, req)\n\t\t\treturn res.Output()\n\t\t}\n\t}\n\n\t// not found\n\treq := \u0026Request{Path: reqPath}\n\tres := \u0026ResponseWriter{}\n\tr.NotFoundHandler(res, req)\n\treturn res.Output()\n}\n\n// Handle registers a route and its handler function.\nfunc (r *Router) HandleFunc(pattern string, fn HandlerFunc) {\n\troute := Handler{Pattern: pattern, Fn: fn}\n\tr.routes = append(r.routes, route)\n}\n\nfunc stripQueryString(reqPath string) string {\n\ti := strings.Index(reqPath, \"?\")\n\tif i == -1 {\n\t\treturn reqPath\n\t}\n\n\treturn reqPath[:i]\n}\n"},{"name":"router_test.gno","body":"package mux\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRouter_Render(t *testing.T) {\n\tcases := []struct {\n\t\tlabel string\n\t\tpath string\n\t\texpectedOutput string\n\t\tsetupHandler func(t *testing.T, r *Router)\n\t}{\n\t\t{\n\t\t\tlabel: \"route with named parameter\",\n\t\t\tpath: \"hello/Alice\",\n\t\t\texpectedOutput: \"Hello, Alice!\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"hello/{name}\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tname := req.GetVar(\"name\")\n\t\t\t\t\tuassert.Equal(t, \"Alice\", name)\n\t\t\t\t\trw.Write(\"Hello, \" + name + \"!\")\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tlabel: \"static route\",\n\t\t\tpath: \"hi\",\n\t\t\texpectedOutput: \"Hi, earth!\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"hi\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tuassert.Equal(t, req.Path, \"hi\")\n\t\t\t\t\trw.Write(\"Hi, earth!\")\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tlabel: \"route with named parameter and query string\",\n\t\t\tpath: \"hello/foo/bar?foo=bar\u0026baz\",\n\t\t\texpectedOutput: \"foo bar\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"hello/{key}/{val}\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tkey := req.GetVar(\"key\")\n\t\t\t\t\tval := req.GetVar(\"val\")\n\t\t\t\t\tuassert.Equal(t, \"foo\", key)\n\t\t\t\t\tuassert.Equal(t, \"bar\", val)\n\t\t\t\t\tuassert.Equal(t, \"hello/foo/bar?foo=bar\u0026baz\", req.RawPath)\n\t\t\t\t\tuassert.Equal(t, \"hello/foo/bar\", req.Path)\n\t\t\t\t\trw.Write(key + \" \" + val)\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// TODO: finalize how router should behave with double slash in path.\n\t\t\tlabel: \"double slash in nested route\",\n\t\t\tpath: \"a/foo//\",\n\t\t\texpectedOutput: \"test foo\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"a/{key}\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\t// Assert not called\n\t\t\t\t\tuassert.False(t, true, \"unexpected handler called\")\n\t\t\t\t})\n\n\t\t\t\tr.HandleFunc(\"a/{key}/{val}/\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tkey := req.GetVar(\"key\")\n\t\t\t\t\tval := req.GetVar(\"val\")\n\t\t\t\t\tuassert.Equal(t, key, \"foo\")\n\t\t\t\t\tuassert.Empty(t, val)\n\t\t\t\t\trw.Write(\"test \" + key)\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\n\t\t// TODO: {\"hello\", \"Hello, world!\"},\n\t\t// TODO: hello/, /hello, hello//Alice, hello/Alice/, hello/Alice/Bob, etc\n\t}\n\tfor _, tt := range cases {\n\t\tt.Run(tt.label, func(t *testing.T) {\n\t\t\trouter := NewRouter()\n\t\t\ttt.setupHandler(t, router)\n\t\t\toutput := router.Render(tt.path)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected output %q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wclHYIaTRA968gYla9aGTkYC+AcLsnfaAD9XP0PIE8jynum8WVV8M7thpkzVPH4Z0T6ENa6EJ00+P5yn9XDrDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mux","path":"gno.land/p/demo/mux","files":[{"name":"doc.gno","body":"// Package mux provides a simple routing and rendering library for handling dynamic path-based requests in Gno contracts.\n//\n// The `mux` package aims to offer similar functionality to `http.ServeMux` in Go, but for Gno's Render() requests.\n// It allows you to define routes with dynamic parts and associate them with corresponding handler functions for rendering outputs.\n//\n// Usage:\n// 1. Create a new Router instance using `NewRouter()` to handle routing and rendering logic.\n// 2. Register routes and their associated handler functions using the `Handle(route, handler)` method.\n// 3. Implement the rendering logic within the handler functions, utilizing the `Request` and `ResponseWriter` types.\n// 4. Use the `Render(path)` method to process a given path and execute the corresponding handler function to obtain the rendered output.\n//\n// Route Patterns:\n// Routes can include dynamic parts enclosed in braces, such as \"users/{id}\" or \"hello/{name}\". The `Request` object's `GetVar(key)`\n// method allows you to extract the value of a specific variable from the path based on routing rules.\n//\n// Example:\n//\n//\trouter := mux.NewRouter()\n//\n//\t// Define a route with a variable and associated handler function\n//\trouter.HandleFunc(\"hello/{name}\", func(res *mux.ResponseWriter, req *mux.Request) {\n//\t\tname := req.GetVar(\"name\")\n//\t\tif name != \"\" {\n//\t\t\tres.Write(\"Hello, \" + name + \"!\")\n//\t\t} else {\n//\t\t\tres.Write(\"Hello, world!\")\n//\t\t}\n//\t})\n//\n//\t// Render the output for the \"/hello/Alice\" path\n//\toutput := router.Render(\"hello/Alice\")\n//\t// Output: \"Hello, Alice!\"\n//\n// Note: The `mux` package provides a basic routing and rendering mechanism for simple use cases. For more advanced routing features,\n// consider using more specialized libraries or frameworks.\npackage mux\n"},{"name":"handler.gno","body":"package mux\n\ntype Handler struct {\n\tPattern string\n\tFn HandlerFunc\n}\n\ntype HandlerFunc func(*ResponseWriter, *Request)\n\n// TODO: type ErrHandlerFunc func(*ResponseWriter, *Request) error\n// TODO: NotFoundHandler\n// TODO: AutomaticIndex\n"},{"name":"helpers.gno","body":"package mux\n\nfunc defaultNotFoundHandler(res *ResponseWriter, req *Request) {\n\tres.Write(\"404\")\n}\n"},{"name":"request.gno","body":"package mux\n\nimport \"strings\"\n\n// Request represents an incoming request.\ntype Request struct {\n\tPath string\n\tHandlerPath string\n}\n\n// GetVar retrieves a variable from the path based on routing rules.\nfunc (r *Request) GetVar(key string) string {\n\tvar (\n\t\thandlerParts = strings.Split(r.HandlerPath, \"/\")\n\t\treqParts = strings.Split(r.Path, \"/\")\n\t)\n\n\tfor i := 0; i \u003c len(handlerParts); i++ {\n\t\thandlerPart := handlerParts[i]\n\t\tswitch {\n\t\tcase handlerPart == \"*\":\n\t\t\t// XXX: implement a/b/*/d/e\n\t\t\tpanic(\"not implemented\")\n\t\tcase strings.HasPrefix(handlerPart, \"{\") \u0026\u0026 strings.HasSuffix(handlerPart, \"}\"):\n\t\t\tparameter := handlerPart[1 : len(handlerPart)-1]\n\t\t\tif parameter == key {\n\t\t\t\treturn reqParts[i]\n\t\t\t}\n\t\tdefault:\n\t\t\t// continue\n\t\t}\n\t}\n\n\treturn \"\"\n}\n"},{"name":"request_test.gno","body":"package mux\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRequest_GetVar(t *testing.T) {\n\tcases := []struct {\n\t\thandlerPath string\n\t\treqPath string\n\t\tgetVarKey string\n\t\texpectedOutput string\n\t}{\n\t\t{\"users/{id}\", \"users/123\", \"id\", \"123\"},\n\t\t{\"users/123\", \"users/123\", \"id\", \"\"},\n\t\t{\"users/{id}\", \"users/123\", \"nonexistent\", \"\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"b\", \"42\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"d\", \"1337\"},\n\t\t{\"{a}\", \"foo\", \"a\", \"foo\"},\n\t\t// TODO: wildcards: a/*/c\n\t\t// TODO: multiple patterns per slashes: a/{b}-{c}/d\n\t}\n\n\tfor _, tt := range cases {\n\t\tname := fmt.Sprintf(\"%s-%s\", tt.handlerPath, tt.reqPath)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\treq := \u0026Request{\n\t\t\t\tHandlerPath: tt.handlerPath,\n\t\t\t\tPath: tt.reqPath,\n\t\t\t}\n\n\t\t\toutput := req.GetVar(tt.getVarKey)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected '%q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"response.gno","body":"package mux\n\nimport \"strings\"\n\n// ResponseWriter represents the response writer.\ntype ResponseWriter struct {\n\toutput strings.Builder\n}\n\n// Write appends data to the response output.\nfunc (rw *ResponseWriter) Write(data string) {\n\trw.output.WriteString(data)\n}\n\n// Output returns the final response output.\nfunc (rw *ResponseWriter) Output() string {\n\treturn rw.output.String()\n}\n\n// TODO: func (rw *ResponseWriter) Header()...\n"},{"name":"router.gno","body":"package mux\n\nimport \"strings\"\n\n// Router handles the routing and rendering logic.\ntype Router struct {\n\troutes []Handler\n\tNotFoundHandler HandlerFunc\n}\n\n// NewRouter creates a new Router instance.\nfunc NewRouter() *Router {\n\treturn \u0026Router{\n\t\troutes: make([]Handler, 0),\n\t\tNotFoundHandler: defaultNotFoundHandler,\n\t}\n}\n\n// Render renders the output for the given path using the registered route handler.\nfunc (r *Router) Render(reqPath string) string {\n\treqParts := strings.Split(reqPath, \"/\")\n\n\tfor _, route := range r.routes {\n\t\tpatParts := strings.Split(route.Pattern, \"/\")\n\n\t\tif len(patParts) != len(reqParts) {\n\t\t\tcontinue\n\t\t}\n\n\t\tmatch := true\n\t\tfor i := 0; i \u003c len(patParts); i++ {\n\t\t\tpatPart := patParts[i]\n\t\t\treqPart := reqParts[i]\n\n\t\t\tif patPart == \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.HasPrefix(patPart, \"{\") \u0026\u0026 strings.HasSuffix(patPart, \"}\") {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif patPart != reqPart {\n\t\t\t\tmatch = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif match {\n\t\t\treq := \u0026Request{\n\t\t\t\tPath: reqPath,\n\t\t\t\tHandlerPath: route.Pattern,\n\t\t\t}\n\t\t\tres := \u0026ResponseWriter{}\n\t\t\troute.Fn(res, req)\n\t\t\treturn res.Output()\n\t\t}\n\t}\n\n\t// not found\n\treq := \u0026Request{Path: reqPath}\n\tres := \u0026ResponseWriter{}\n\tr.NotFoundHandler(res, req)\n\treturn res.Output()\n}\n\n// Handle registers a route and its handler function.\nfunc (r *Router) HandleFunc(pattern string, fn HandlerFunc) {\n\troute := Handler{Pattern: pattern, Fn: fn}\n\tr.routes = append(r.routes, route)\n}\n"},{"name":"router_test.gno","body":"package mux\n\nimport \"testing\"\n\nfunc TestRouter_Render(t *testing.T) {\n\t// Define handlers and route configuration\n\trouter := NewRouter()\n\trouter.HandleFunc(\"hello/{name}\", func(res *ResponseWriter, req *Request) {\n\t\tname := req.GetVar(\"name\")\n\t\tif name != \"\" {\n\t\t\tres.Write(\"Hello, \" + name + \"!\")\n\t\t} else {\n\t\t\tres.Write(\"Hello, world!\")\n\t\t}\n\t})\n\trouter.HandleFunc(\"hi\", func(res *ResponseWriter, req *Request) {\n\t\tres.Write(\"Hi, earth!\")\n\t})\n\n\tcases := []struct {\n\t\tpath string\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello/Alice\", \"Hello, Alice!\"},\n\t\t{\"hi\", \"Hi, earth!\"},\n\t\t{\"hello/Bob\", \"Hello, Bob!\"},\n\t\t// TODO: {\"hello\", \"Hello, world!\"},\n\t\t// TODO: hello/, /hello, hello//Alice, hello/Alice/, hello/Alice/Bob, etc\n\t}\n\tfor _, tt := range cases {\n\t\tt.Run(tt.path, func(t *testing.T) {\n\t\t\toutput := router.Render(tt.path)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected output %q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ak0r6YAo+taCJtv5rEVaIgk0ahNpCohfQ1tSH53DHeSxlCS4mb8hTGSjE83uPis0VPJ+uazq54Lj0TV3aTLuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mux","path":"gno.land/p/demo/mux","files":[{"name":"doc.gno","body":"// Package mux provides a simple routing and rendering library for handling dynamic path-based requests in Gno contracts.\n//\n// The `mux` package aims to offer similar functionality to `http.ServeMux` in Go, but for Gno's Render() requests.\n// It allows you to define routes with dynamic parts and associate them with corresponding handler functions for rendering outputs.\n//\n// Usage:\n// 1. Create a new Router instance using `NewRouter()` to handle routing and rendering logic.\n// 2. Register routes and their associated handler functions using the `Handle(route, handler)` method.\n// 3. Implement the rendering logic within the handler functions, utilizing the `Request` and `ResponseWriter` types.\n// 4. Use the `Render(path)` method to process a given path and execute the corresponding handler function to obtain the rendered output.\n//\n// Route Patterns:\n// Routes can include dynamic parts enclosed in braces, such as \"users/{id}\" or \"hello/{name}\". The `Request` object's `GetVar(key)`\n// method allows you to extract the value of a specific variable from the path based on routing rules.\n//\n// Example:\n//\n//\trouter := mux.NewRouter()\n//\n//\t// Define a route with a variable and associated handler function\n//\trouter.HandleFunc(\"hello/{name}\", func(res *mux.ResponseWriter, req *mux.Request) {\n//\t\tname := req.GetVar(\"name\")\n//\t\tif name != \"\" {\n//\t\t\tres.Write(\"Hello, \" + name + \"!\")\n//\t\t} else {\n//\t\t\tres.Write(\"Hello, world!\")\n//\t\t}\n//\t})\n//\n//\t// Render the output for the \"/hello/Alice\" path\n//\toutput := router.Render(\"hello/Alice\")\n//\t// Output: \"Hello, Alice!\"\n//\n// Note: The `mux` package provides a basic routing and rendering mechanism for simple use cases. For more advanced routing features,\n// consider using more specialized libraries or frameworks.\npackage mux\n"},{"name":"handler.gno","body":"package mux\n\ntype Handler struct {\n\tPattern string\n\tFn HandlerFunc\n}\n\ntype HandlerFunc func(*ResponseWriter, *Request)\n\n// TODO: type ErrHandlerFunc func(*ResponseWriter, *Request) error\n// TODO: NotFoundHandler\n// TODO: AutomaticIndex\n"},{"name":"helpers.gno","body":"package mux\n\nfunc defaultNotFoundHandler(res *ResponseWriter, req *Request) {\n\tres.Write(\"404\")\n}\n"},{"name":"request.gno","body":"package mux\n\nimport \"strings\"\n\n// Request represents an incoming request.\ntype Request struct {\n\tPath string\n\tHandlerPath string\n}\n\n// GetVar retrieves a variable from the path based on routing rules.\nfunc (r *Request) GetVar(key string) string {\n\tvar (\n\t\thandlerParts = strings.Split(r.HandlerPath, \"/\")\n\t\treqParts = strings.Split(r.Path, \"/\")\n\t)\n\n\tfor i := 0; i \u003c len(handlerParts); i++ {\n\t\thandlerPart := handlerParts[i]\n\t\tswitch {\n\t\tcase handlerPart == \"*\":\n\t\t\t// XXX: implement a/b/*/d/e\n\t\t\tpanic(\"not implemented\")\n\t\tcase strings.HasPrefix(handlerPart, \"{\") \u0026\u0026 strings.HasSuffix(handlerPart, \"}\"):\n\t\t\tparameter := handlerPart[1 : len(handlerPart)-1]\n\t\t\tif parameter == key {\n\t\t\t\treturn reqParts[i]\n\t\t\t}\n\t\tdefault:\n\t\t\t// continue\n\t\t}\n\t}\n\n\treturn \"\"\n}\n"},{"name":"request_test.gno","body":"package mux\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRequest_GetVar(t *testing.T) {\n\tcases := []struct {\n\t\thandlerPath string\n\t\treqPath string\n\t\tgetVarKey string\n\t\texpectedOutput string\n\t}{\n\t\t{\"users/{id}\", \"users/123\", \"id\", \"123\"},\n\t\t{\"users/123\", \"users/123\", \"id\", \"\"},\n\t\t{\"users/{id}\", \"users/123\", \"nonexistent\", \"\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"b\", \"42\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"d\", \"1337\"},\n\t\t{\"{a}\", \"foo\", \"a\", \"foo\"},\n\t\t// TODO: wildcards: a/*/c\n\t\t// TODO: multiple patterns per slashes: a/{b}-{c}/d\n\t}\n\n\tfor _, tt := range cases {\n\t\tname := fmt.Sprintf(\"%s-%s\", tt.handlerPath, tt.reqPath)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\treq := \u0026Request{\n\t\t\t\tHandlerPath: tt.handlerPath,\n\t\t\t\tPath: tt.reqPath,\n\t\t\t}\n\n\t\t\toutput := req.GetVar(tt.getVarKey)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected '%q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"response.gno","body":"package mux\n\nimport \"strings\"\n\n// ResponseWriter represents the response writer.\ntype ResponseWriter struct {\n\toutput strings.Builder\n}\n\n// Write appends data to the response output.\nfunc (rw *ResponseWriter) Write(data string) {\n\trw.output.WriteString(data)\n}\n\n// Output returns the final response output.\nfunc (rw *ResponseWriter) Output() string {\n\treturn rw.output.String()\n}\n\n// TODO: func (rw *ResponseWriter) Header()...\n"},{"name":"router.gno","body":"package mux\n\nimport \"strings\"\n\n// Router handles the routing and rendering logic.\ntype Router struct {\n\troutes []Handler\n\tNotFoundHandler HandlerFunc\n}\n\n// NewRouter creates a new Router instance.\nfunc NewRouter() *Router {\n\treturn \u0026Router{\n\t\troutes: make([]Handler, 0),\n\t\tNotFoundHandler: defaultNotFoundHandler,\n\t}\n}\n\n// Render renders the output for the given path using the registered route handler.\nfunc (r *Router) Render(reqPath string) string {\n\treqParts := strings.Split(reqPath, \"/\")\n\n\tfor _, route := range r.routes {\n\t\tpatParts := strings.Split(route.Pattern, \"/\")\n\n\t\tif len(patParts) != len(reqParts) {\n\t\t\tcontinue\n\t\t}\n\n\t\tmatch := true\n\t\tfor i := 0; i \u003c len(patParts); i++ {\n\t\t\tpatPart := patParts[i]\n\t\t\treqPart := reqParts[i]\n\n\t\t\tif patPart == \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.HasPrefix(patPart, \"{\") \u0026\u0026 strings.HasSuffix(patPart, \"}\") {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif patPart != reqPart {\n\t\t\t\tmatch = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif match {\n\t\t\treq := \u0026Request{\n\t\t\t\tPath: reqPath,\n\t\t\t\tHandlerPath: route.Pattern,\n\t\t\t}\n\t\t\tres := \u0026ResponseWriter{}\n\t\t\troute.Fn(res, req)\n\t\t\treturn res.Output()\n\t\t}\n\t}\n\n\t// not found\n\treq := \u0026Request{Path: reqPath}\n\tres := \u0026ResponseWriter{}\n\tr.NotFoundHandler(res, req)\n\treturn res.Output()\n}\n\n// Handle registers a route and its handler function.\nfunc (r *Router) HandleFunc(pattern string, fn HandlerFunc) {\n\troute := Handler{Pattern: pattern, Fn: fn}\n\tr.routes = append(r.routes, route)\n}\n"},{"name":"router_test.gno","body":"package mux\n\nimport \"testing\"\n\nfunc TestRouter_Render(t *testing.T) {\n\t// Define handlers and route configuration\n\trouter := NewRouter()\n\trouter.HandleFunc(\"hello/{name}\", func(res *ResponseWriter, req *Request) {\n\t\tname := req.GetVar(\"name\")\n\t\tif name != \"\" {\n\t\t\tres.Write(\"Hello, \" + name + \"!\")\n\t\t} else {\n\t\t\tres.Write(\"Hello, world!\")\n\t\t}\n\t})\n\trouter.HandleFunc(\"hi\", func(res *ResponseWriter, req *Request) {\n\t\tres.Write(\"Hi, earth!\")\n\t})\n\n\tcases := []struct {\n\t\tpath string\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello/Alice\", \"Hello, Alice!\"},\n\t\t{\"hi\", \"Hi, earth!\"},\n\t\t{\"hello/Bob\", \"Hello, Bob!\"},\n\t\t// TODO: {\"hello\", \"Hello, world!\"},\n\t\t// TODO: hello/, /hello, hello//Alice, hello/Alice/, hello/Alice/Bob, etc\n\t}\n\tfor _, tt := range cases {\n\t\tt.Run(tt.path, func(t *testing.T) {\n\t\t\toutput := router.Render(tt.path)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected output %q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ak0r6YAo+taCJtv5rEVaIgk0ahNpCohfQ1tSH53DHeSxlCS4mb8hTGSjE83uPis0VPJ+uazq54Lj0TV3aTLuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"mux","path":"gno.land/p/demo/mux","files":[{"name":"doc.gno","body":"// Package mux provides a simple routing and rendering library for handling dynamic path-based requests in Gno contracts.\n//\n// The `mux` package aims to offer similar functionality to `http.ServeMux` in Go, but for Gno's Render() requests.\n// It allows you to define routes with dynamic parts and associate them with corresponding handler functions for rendering outputs.\n//\n// Usage:\n// 1. Create a new Router instance using `NewRouter()` to handle routing and rendering logic.\n// 2. Register routes and their associated handler functions using the `Handle(route, handler)` method.\n// 3. Implement the rendering logic within the handler functions, utilizing the `Request` and `ResponseWriter` types.\n// 4. Use the `Render(path)` method to process a given path and execute the corresponding handler function to obtain the rendered output.\n//\n// Route Patterns:\n// Routes can include dynamic parts enclosed in braces, such as \"users/{id}\" or \"hello/{name}\". The `Request` object's `GetVar(key)`\n// method allows you to extract the value of a specific variable from the path based on routing rules.\n//\n// Example:\n//\n//\trouter := mux.NewRouter()\n//\n//\t// Define a route with a variable and associated handler function\n//\trouter.HandleFunc(\"hello/{name}\", func(res *mux.ResponseWriter, req *mux.Request) {\n//\t\tname := req.GetVar(\"name\")\n//\t\tif name != \"\" {\n//\t\t\tres.Write(\"Hello, \" + name + \"!\")\n//\t\t} else {\n//\t\t\tres.Write(\"Hello, world!\")\n//\t\t}\n//\t})\n//\n//\t// Render the output for the \"/hello/Alice\" path\n//\toutput := router.Render(\"hello/Alice\")\n//\t// Output: \"Hello, Alice!\"\n//\n// Note: The `mux` package provides a basic routing and rendering mechanism for simple use cases. For more advanced routing features,\n// consider using more specialized libraries or frameworks.\npackage mux\n"},{"name":"handler.gno","body":"package mux\n\ntype Handler struct {\n\tPattern string\n\tFn HandlerFunc\n}\n\ntype HandlerFunc func(*ResponseWriter, *Request)\n\n// TODO: type ErrHandlerFunc func(*ResponseWriter, *Request) error\n// TODO: NotFoundHandler\n// TODO: AutomaticIndex\n"},{"name":"helpers.gno","body":"package mux\n\nfunc defaultNotFoundHandler(res *ResponseWriter, req *Request) {\n\tres.Write(\"404\")\n}\n"},{"name":"request.gno","body":"package mux\n\nimport \"strings\"\n\n// Request represents an incoming request.\ntype Request struct {\n\tPath string\n\tHandlerPath string\n}\n\n// GetVar retrieves a variable from the path based on routing rules.\nfunc (r *Request) GetVar(key string) string {\n\tvar (\n\t\thandlerParts = strings.Split(r.HandlerPath, \"/\")\n\t\treqParts = strings.Split(r.Path, \"/\")\n\t)\n\n\tfor i := 0; i \u003c len(handlerParts); i++ {\n\t\thandlerPart := handlerParts[i]\n\t\tswitch {\n\t\tcase handlerPart == \"*\":\n\t\t\t// XXX: implement a/b/*/d/e\n\t\t\tpanic(\"not implemented\")\n\t\tcase strings.HasPrefix(handlerPart, \"{\") \u0026\u0026 strings.HasSuffix(handlerPart, \"}\"):\n\t\t\tparameter := handlerPart[1 : len(handlerPart)-1]\n\t\t\tif parameter == key {\n\t\t\t\treturn reqParts[i]\n\t\t\t}\n\t\tdefault:\n\t\t\t// continue\n\t\t}\n\t}\n\n\treturn \"\"\n}\n"},{"name":"request_test.gno","body":"package mux\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRequest_GetVar(t *testing.T) {\n\tcases := []struct {\n\t\thandlerPath string\n\t\treqPath string\n\t\tgetVarKey string\n\t\texpectedOutput string\n\t}{\n\t\t{\"users/{id}\", \"users/123\", \"id\", \"123\"},\n\t\t{\"users/123\", \"users/123\", \"id\", \"\"},\n\t\t{\"users/{id}\", \"users/123\", \"nonexistent\", \"\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"b\", \"42\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"d\", \"1337\"},\n\t\t{\"{a}\", \"foo\", \"a\", \"foo\"},\n\t\t// TODO: wildcards: a/*/c\n\t\t// TODO: multiple patterns per slashes: a/{b}-{c}/d\n\t}\n\n\tfor _, tt := range cases {\n\t\tname := fmt.Sprintf(\"%s-%s\", tt.handlerPath, tt.reqPath)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\treq := \u0026Request{\n\t\t\t\tHandlerPath: tt.handlerPath,\n\t\t\t\tPath: tt.reqPath,\n\t\t\t}\n\n\t\t\toutput := req.GetVar(tt.getVarKey)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected '%q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"response.gno","body":"package mux\n\nimport \"strings\"\n\n// ResponseWriter represents the response writer.\ntype ResponseWriter struct {\n\toutput strings.Builder\n}\n\n// Write appends data to the response output.\nfunc (rw *ResponseWriter) Write(data string) {\n\trw.output.WriteString(data)\n}\n\n// Output returns the final response output.\nfunc (rw *ResponseWriter) Output() string {\n\treturn rw.output.String()\n}\n\n// TODO: func (rw *ResponseWriter) Header()...\n"},{"name":"router.gno","body":"package mux\n\nimport \"strings\"\n\n// Router handles the routing and rendering logic.\ntype Router struct {\n\troutes []Handler\n\tNotFoundHandler HandlerFunc\n}\n\n// NewRouter creates a new Router instance.\nfunc NewRouter() *Router {\n\treturn \u0026Router{\n\t\troutes: make([]Handler, 0),\n\t\tNotFoundHandler: defaultNotFoundHandler,\n\t}\n}\n\n// Render renders the output for the given path using the registered route handler.\nfunc (r *Router) Render(reqPath string) string {\n\treqParts := strings.Split(reqPath, \"/\")\n\n\tfor _, route := range r.routes {\n\t\tpatParts := strings.Split(route.Pattern, \"/\")\n\n\t\tif len(patParts) != len(reqParts) {\n\t\t\tcontinue\n\t\t}\n\n\t\tmatch := true\n\t\tfor i := 0; i \u003c len(patParts); i++ {\n\t\t\tpatPart := patParts[i]\n\t\t\treqPart := reqParts[i]\n\n\t\t\tif patPart == \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.HasPrefix(patPart, \"{\") \u0026\u0026 strings.HasSuffix(patPart, \"}\") {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif patPart != reqPart {\n\t\t\t\tmatch = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif match {\n\t\t\treq := \u0026Request{\n\t\t\t\tPath: reqPath,\n\t\t\t\tHandlerPath: route.Pattern,\n\t\t\t}\n\t\t\tres := \u0026ResponseWriter{}\n\t\t\troute.Fn(res, req)\n\t\t\treturn res.Output()\n\t\t}\n\t}\n\n\t// not found\n\treq := \u0026Request{Path: reqPath}\n\tres := \u0026ResponseWriter{}\n\tr.NotFoundHandler(res, req)\n\treturn res.Output()\n}\n\n// Handle registers a route and its handler function.\nfunc (r *Router) HandleFunc(pattern string, fn HandlerFunc) {\n\troute := Handler{Pattern: pattern, Fn: fn}\n\tr.routes = append(r.routes, route)\n}\n"},{"name":"router_test.gno","body":"package mux\n\nimport \"testing\"\n\nfunc TestRouter_Render(t *testing.T) {\n\t// Define handlers and route configuration\n\trouter := NewRouter()\n\trouter.HandleFunc(\"hello/{name}\", func(res *ResponseWriter, req *Request) {\n\t\tname := req.GetVar(\"name\")\n\t\tif name != \"\" {\n\t\t\tres.Write(\"Hello, \" + name + \"!\")\n\t\t} else {\n\t\t\tres.Write(\"Hello, world!\")\n\t\t}\n\t})\n\trouter.HandleFunc(\"hi\", func(res *ResponseWriter, req *Request) {\n\t\tres.Write(\"Hi, earth!\")\n\t})\n\n\tcases := []struct {\n\t\tpath string\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello/Alice\", \"Hello, Alice!\"},\n\t\t{\"hi\", \"Hi, earth!\"},\n\t\t{\"hello/Bob\", \"Hello, Bob!\"},\n\t\t// TODO: {\"hello\", \"Hello, world!\"},\n\t\t// TODO: hello/, /hello, hello//Alice, hello/Alice/, hello/Alice/Bob, etc\n\t}\n\tfor _, tt := range cases {\n\t\tt.Run(tt.path, func(t *testing.T) {\n\t\t\toutput := router.Render(tt.path)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected output %q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ak0r6YAo+taCJtv5rEVaIgk0ahNpCohfQ1tSH53DHeSxlCS4mb8hTGSjE83uPis0VPJ+uazq54Lj0TV3aTLuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"needle","path":"gno.land/p/n2p5/haystack/needle","files":[{"name":"needle.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"errors\"\n)\n\nconst (\n\t// HashLength is the length in bytes of the hash prefix in any message\n\tHashLength = 32\n\t// PayloadLength is the length of the remaining bytes of the message.\n\tPayloadLength = 160\n\t// NeedleLength is the number of bytes required for a valid needle.\n\tNeedleLength = HashLength + PayloadLength\n)\n\n// Needle is a container for a 160 byte payload\n// and a 32 byte sha256 hash of the payload.\ntype Needle struct {\n\thash [HashLength]byte\n\tpayload [PayloadLength]byte\n}\n\nvar (\n\t// ErrorInvalidHash is an error for in invalid hash\n\tErrorInvalidHash = errors.New(\"invalid hash\")\n\t// ErrorByteSliceLength is an error for an invalid byte slice length passed in to New or FromBytes\n\tErrorByteSliceLength = errors.New(\"invalid byte slice length\")\n)\n\n// New creates a Needle used for submitting a payload to a Haystack sever. It takes a Payload\n// byte slice that is 160 bytes in length and returns a reference to a\n// Needle and an error. The purpose of this function is to make it\n// easy to create a new Needle from a payload. This function handles creating a sha256\n// hash of the payload, which is used by the Needle to submit to a haystack server.\nfunc New(p []byte) (*Needle, error) {\n\tif len(p) != PayloadLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tsum := sha256.Sum256(p)\n\tcopy(n.hash[:], sum[:])\n\tcopy(n.payload[:], p)\n\treturn \u0026n, nil\n}\n\n// FromBytes is intended convert raw bytes (from UDP or storage) into a Needle.\n// It takes a byte slice and expects it to be exactly the length of NeedleLength.\n// The byte slice should consist of the first 32 bytes being the sha256 hash of the\n// payload and the payload bytes. This function verifies the length of the byte slice,\n// copies the bytes into a private [192]byte array, and validates the Needle. It returns\n// a reference to a Needle and an error.\nfunc FromBytes(b []byte) (*Needle, error) {\n\tif len(b) != NeedleLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tcopy(n.hash[:], b[:HashLength])\n\tcopy(n.payload[:], b[HashLength:])\n\tif err := n.validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026n, nil\n}\n\n// Hash returns a copy of the bytes of the sha256 256 hash of the Needle payload.\nfunc (n *Needle) Hash() []byte {\n\treturn n.Bytes()[:HashLength]\n}\n\n// Payload returns a byte slice of the Needle payload\nfunc (n *Needle) Payload() []byte {\n\treturn n.Bytes()[HashLength:]\n}\n\n// Bytes returns a byte slice of the entire 192 byte hash + payload\nfunc (n *Needle) Bytes() []byte {\n\tb := make([]byte, NeedleLength)\n\tcopy(b, n.hash[:])\n\tcopy(b[HashLength:], n.payload[:])\n\treturn b\n}\n\n// validate checks that a Needle has a valid hash, it returns either nil or an error.\nfunc (n *Needle) validate() error {\n\tif hash := sha256.Sum256(n.Payload()); !bytes.Equal(n.Hash(), hash[:]) {\n\t\treturn ErrorInvalidHash\n\t}\n\treturn nil\n}\n"},{"name":"needle_test.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"testing\"\n)\n\nfunc TestNeedle(t *testing.T) {\n\tt.Parallel()\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tb := n.Bytes()\n\t\tb[0], b[1], b[2], b[3] = 0, 0, 0, 0\n\t\tif bytes.Equal(n.Bytes(), b) {\n\t\t\tt.Error(\"mutating Bytes() changed needle bytes\")\n\t\t}\n\t})\n\tt.Run(\"Payload\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tpayload := n.Payload()\n\t\tif !bytes.Equal(p, payload) {\n\t\t\tt.Error(\"payload imported by New does not match needle.Payload()\")\n\t\t}\n\t\tpayload[0] = 0\n\t\tpl := n.Payload()\n\t\tif bytes.Equal(pl, payload) {\n\t\t\tt.Error(\"mutating Payload() changed needle payload\")\n\t\t}\n\t})\n\tt.Run(\"Hash\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\thash := n.Hash()\n\t\th := sha256.Sum256(p)\n\t\tif !bytes.Equal(h[:], hash) {\n\t\t\tt.Error(\"exported hash is invalid\")\n\t\t}\n\t\thash[0] = 0\n\t\th2 := n.Hash()\n\t\tif bytes.Equal(h2, hash) {\n\t\t\tt.Error(\"mutating Hash() changed needle hash\")\n\t\t}\n\t})\n}\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\texpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\tpayload []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\tpayload: p,\n\t\t\texpected: expected,\n\t\t\thasError: false,\n\t\t\tdescription: \"expected payload\",\n\t\t},\n\t\t{\n\t\t\tpayload: p[:PayloadLength-1],\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too small)\",\n\t\t},\n\t\t{\n\t\t\tpayload: append(p, byte(1)),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too large)\",\n\t\t},\n\t}\n\n\tfor _, test := range testTable {\n\t\tn, err := New(test.payload)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromBytes(t *testing.T) {\n\tt.Parallel()\n\n\tvalidRaw, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tvalidExpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tinvalidHash, _ := hex.DecodeString(\"182e0ca0d2fb1da76da6caf36a9d0d2838655632e85891216dc8b545d8f1410940e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\trawBytes []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\trawBytes: validRaw,\n\t\t\texpected: validExpected,\n\t\t\thasError: false,\n\t\t\tdescription: \"valid raw bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"empty bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength-1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, one less than expected\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, no bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength+1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too many bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: invalidHash,\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"invalid hash\",\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tn, err := FromBytes(test.rawBytes)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BjvQ0/8Lqvv+C6IT+wpattIPGScUGMkUBpU17j19GZMSPwWq6YFi/90DCWaVwrPp6bvrUMKD+hpil8S3nTomDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"needle","path":"gno.land/p/n2p5/haystack/needle","files":[{"name":"needle.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"errors\"\n)\n\nconst (\n\t// HashLength is the length in bytes of the hash prefix in any message\n\tHashLength = 32\n\t// PayloadLength is the length of the remaining bytes of the message.\n\tPayloadLength = 160\n\t// NeedleLength is the number of bytes required for a valid needle.\n\tNeedleLength = HashLength + PayloadLength\n)\n\n// Needle is a container for a 160 byte payload\n// and a 32 byte sha256 hash of the payload.\ntype Needle struct {\n\thash [HashLength]byte\n\tpayload [PayloadLength]byte\n}\n\nvar (\n\t// ErrorInvalidHash is an error for in invalid hash\n\tErrorInvalidHash = errors.New(\"invalid hash\")\n\t// ErrorByteSliceLength is an error for an invalid byte slice length passed in to New or FromBytes\n\tErrorByteSliceLength = errors.New(\"invalid byte slice length\")\n)\n\n// New creates a Needle used for submitting a payload to a Haystack sever. It takes a Payload\n// byte slice that is 160 bytes in length and returns a reference to a\n// Needle and an error. The purpose of this function is to make it\n// easy to create a new Needle from a payload. This function handles creating a sha256\n// hash of the payload, which is used by the Needle to submit to a haystack server.\nfunc New(p []byte) (*Needle, error) {\n\tif len(p) != PayloadLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tsum := sha256.Sum256(p)\n\tcopy(n.hash[:], sum[:])\n\tcopy(n.payload[:], p)\n\treturn \u0026n, nil\n}\n\n// FromBytes is intended convert raw bytes (from UDP or storage) into a Needle.\n// It takes a byte slice and expects it to be exactly the length of NeedleLength.\n// The byte slice should consist of the first 32 bytes being the sha256 hash of the\n// payload and the payload bytes. This function verifies the length of the byte slice,\n// copies the bytes into a private [192]byte array, and validates the Needle. It returns\n// a reference to a Needle and an error.\nfunc FromBytes(b []byte) (*Needle, error) {\n\tif len(b) != NeedleLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tcopy(n.hash[:], b[:HashLength])\n\tcopy(n.payload[:], b[HashLength:])\n\tif err := n.validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026n, nil\n}\n\n// Hash returns a copy of the bytes of the sha256 256 hash of the Needle payload.\nfunc (n *Needle) Hash() []byte {\n\treturn n.Bytes()[:HashLength]\n}\n\n// Payload returns a byte slice of the Needle payload\nfunc (n *Needle) Payload() []byte {\n\treturn n.Bytes()[HashLength:]\n}\n\n// Bytes returns a byte slice of the entire 192 byte hash + payload\nfunc (n *Needle) Bytes() []byte {\n\tb := make([]byte, NeedleLength)\n\tcopy(b, n.hash[:])\n\tcopy(b[HashLength:], n.payload[:])\n\treturn b\n}\n\n// validate checks that a Needle has a valid hash, it returns either nil or an error.\nfunc (n *Needle) validate() error {\n\tif hash := sha256.Sum256(n.Payload()); !bytes.Equal(n.Hash(), hash[:]) {\n\t\treturn ErrorInvalidHash\n\t}\n\treturn nil\n}\n"},{"name":"needle_test.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"testing\"\n)\n\nfunc TestNeedle(t *testing.T) {\n\tt.Parallel()\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tb := n.Bytes()\n\t\tb[0], b[1], b[2], b[3] = 0, 0, 0, 0\n\t\tif bytes.Equal(n.Bytes(), b) {\n\t\t\tt.Error(\"mutating Bytes() changed needle bytes\")\n\t\t}\n\t})\n\tt.Run(\"Payload\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tpayload := n.Payload()\n\t\tif !bytes.Equal(p, payload) {\n\t\t\tt.Error(\"payload imported by New does not match needle.Payload()\")\n\t\t}\n\t\tpayload[0] = 0\n\t\tpl := n.Payload()\n\t\tif bytes.Equal(pl, payload) {\n\t\t\tt.Error(\"mutating Payload() changed needle payload\")\n\t\t}\n\t})\n\tt.Run(\"Hash\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\thash := n.Hash()\n\t\th := sha256.Sum256(p)\n\t\tif !bytes.Equal(h[:], hash) {\n\t\t\tt.Error(\"exported hash is invalid\")\n\t\t}\n\t\thash[0] = 0\n\t\th2 := n.Hash()\n\t\tif bytes.Equal(h2, hash) {\n\t\t\tt.Error(\"mutating Hash() changed needle hash\")\n\t\t}\n\t})\n}\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\texpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\tpayload []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\tpayload: p,\n\t\t\texpected: expected,\n\t\t\thasError: false,\n\t\t\tdescription: \"expected payload\",\n\t\t},\n\t\t{\n\t\t\tpayload: p[:PayloadLength-1],\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too small)\",\n\t\t},\n\t\t{\n\t\t\tpayload: append(p, byte(1)),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too large)\",\n\t\t},\n\t}\n\n\tfor _, test := range testTable {\n\t\tn, err := New(test.payload)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromBytes(t *testing.T) {\n\tt.Parallel()\n\n\tvalidRaw, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tvalidExpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tinvalidHash, _ := hex.DecodeString(\"182e0ca0d2fb1da76da6caf36a9d0d2838655632e85891216dc8b545d8f1410940e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\trawBytes []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\trawBytes: validRaw,\n\t\t\texpected: validExpected,\n\t\t\thasError: false,\n\t\t\tdescription: \"valid raw bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"empty bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength-1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, one less than expected\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, no bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength+1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too many bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: invalidHash,\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"invalid hash\",\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tn, err := FromBytes(test.rawBytes)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BjvQ0/8Lqvv+C6IT+wpattIPGScUGMkUBpU17j19GZMSPwWq6YFi/90DCWaVwrPp6bvrUMKD+hpil8S3nTomDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"needle","path":"gno.land/p/n2p5/haystack/needle","files":[{"name":"needle.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"errors\"\n)\n\nconst (\n\t// HashLength is the length in bytes of the hash prefix in any message\n\tHashLength = 32\n\t// PayloadLength is the length of the remaining bytes of the message.\n\tPayloadLength = 160\n\t// NeedleLength is the number of bytes required for a valid needle.\n\tNeedleLength = HashLength + PayloadLength\n)\n\n// Needle is a container for a 160 byte payload\n// and a 32 byte sha256 hash of the payload.\ntype Needle struct {\n\thash [HashLength]byte\n\tpayload [PayloadLength]byte\n}\n\nvar (\n\t// ErrorInvalidHash is an error for in invalid hash\n\tErrorInvalidHash = errors.New(\"invalid hash\")\n\t// ErrorByteSliceLength is an error for an invalid byte slice length passed in to New or FromBytes\n\tErrorByteSliceLength = errors.New(\"invalid byte slice length\")\n)\n\n// New creates a Needle used for submitting a payload to a Haystack sever. It takes a Payload\n// byte slice that is 160 bytes in length and returns a reference to a\n// Needle and an error. The purpose of this function is to make it\n// easy to create a new Needle from a payload. This function handles creating a sha256\n// hash of the payload, which is used by the Needle to submit to a haystack server.\nfunc New(p []byte) (*Needle, error) {\n\tif len(p) != PayloadLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tsum := sha256.Sum256(p)\n\tcopy(n.hash[:], sum[:])\n\tcopy(n.payload[:], p)\n\treturn \u0026n, nil\n}\n\n// FromBytes is intended convert raw bytes (from UDP or storage) into a Needle.\n// It takes a byte slice and expects it to be exactly the length of NeedleLength.\n// The byte slice should consist of the first 32 bytes being the sha256 hash of the\n// payload and the payload bytes. This function verifies the length of the byte slice,\n// copies the bytes into a private [192]byte array, and validates the Needle. It returns\n// a reference to a Needle and an error.\nfunc FromBytes(b []byte) (*Needle, error) {\n\tif len(b) != NeedleLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tcopy(n.hash[:], b[:HashLength])\n\tcopy(n.payload[:], b[HashLength:])\n\tif err := n.validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026n, nil\n}\n\n// Hash returns a copy of the bytes of the sha256 256 hash of the Needle payload.\nfunc (n *Needle) Hash() []byte {\n\treturn n.Bytes()[:HashLength]\n}\n\n// Payload returns a byte slice of the Needle payload\nfunc (n *Needle) Payload() []byte {\n\treturn n.Bytes()[HashLength:]\n}\n\n// Bytes returns a byte slice of the entire 192 byte hash + payload\nfunc (n *Needle) Bytes() []byte {\n\tb := make([]byte, NeedleLength)\n\tcopy(b, n.hash[:])\n\tcopy(b[HashLength:], n.payload[:])\n\treturn b\n}\n\n// validate checks that a Needle has a valid hash, it returns either nil or an error.\nfunc (n *Needle) validate() error {\n\tif hash := sha256.Sum256(n.Payload()); !bytes.Equal(n.Hash(), hash[:]) {\n\t\treturn ErrorInvalidHash\n\t}\n\treturn nil\n}\n"},{"name":"needle_test.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"testing\"\n)\n\nfunc TestNeedle(t *testing.T) {\n\tt.Parallel()\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tb := n.Bytes()\n\t\tb[0], b[1], b[2], b[3] = 0, 0, 0, 0\n\t\tif bytes.Equal(n.Bytes(), b) {\n\t\t\tt.Error(\"mutating Bytes() changed needle bytes\")\n\t\t}\n\t})\n\tt.Run(\"Payload\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tpayload := n.Payload()\n\t\tif !bytes.Equal(p, payload) {\n\t\t\tt.Error(\"payload imported by New does not match needle.Payload()\")\n\t\t}\n\t\tpayload[0] = 0\n\t\tpl := n.Payload()\n\t\tif bytes.Equal(pl, payload) {\n\t\t\tt.Error(\"mutating Payload() changed needle payload\")\n\t\t}\n\t})\n\tt.Run(\"Hash\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\thash := n.Hash()\n\t\th := sha256.Sum256(p)\n\t\tif !bytes.Equal(h[:], hash) {\n\t\t\tt.Error(\"exported hash is invalid\")\n\t\t}\n\t\thash[0] = 0\n\t\th2 := n.Hash()\n\t\tif bytes.Equal(h2, hash) {\n\t\t\tt.Error(\"mutating Hash() changed needle hash\")\n\t\t}\n\t})\n}\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\texpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\tpayload []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\tpayload: p,\n\t\t\texpected: expected,\n\t\t\thasError: false,\n\t\t\tdescription: \"expected payload\",\n\t\t},\n\t\t{\n\t\t\tpayload: p[:PayloadLength-1],\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too small)\",\n\t\t},\n\t\t{\n\t\t\tpayload: append(p, byte(1)),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too large)\",\n\t\t},\n\t}\n\n\tfor _, test := range testTable {\n\t\tn, err := New(test.payload)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromBytes(t *testing.T) {\n\tt.Parallel()\n\n\tvalidRaw, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tvalidExpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tinvalidHash, _ := hex.DecodeString(\"182e0ca0d2fb1da76da6caf36a9d0d2838655632e85891216dc8b545d8f1410940e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\trawBytes []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\trawBytes: validRaw,\n\t\t\texpected: validExpected,\n\t\t\thasError: false,\n\t\t\tdescription: \"valid raw bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"empty bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength-1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, one less than expected\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, no bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength+1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too many bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: invalidHash,\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"invalid hash\",\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tn, err := FromBytes(test.rawBytes)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BjvQ0/8Lqvv+C6IT+wpattIPGScUGMkUBpU17j19GZMSPwWq6YFi/90DCWaVwrPp6bvrUMKD+hpil8S3nTomDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"nestedpkg","path":"gno.land/p/demo/nestedpkg","files":[{"name":"nestedpkg.gno","body":"// Package nestedpkg provides helpers for package-path based access control.\n// It is useful for upgrade patterns relying on namespaces.\npackage nestedpkg\n\n// To test this from a realm and have std.CurrentRealm/PrevRealm work correctly,\n// this file is tested from gno.land/r/demo/tests/nestedpkg_test.gno\n// XXX: move test to ths directory once we support testing a package and\n// specifying values for both PrevRealm and CurrentRealm.\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\n// IsCallerSubPath checks if the caller realm is located in a subfolder of the current realm.\nfunc IsCallerSubPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(prev, cur)\n}\n\n// AssertCallerIsSubPath panics if IsCallerSubPath returns false.\nfunc AssertCallerIsSubPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(prev, cur) {\n\t\tpanic(\"call restricted to nested packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsCallerParentPath checks if the caller realm is located in a parent location of the current realm.\nfunc IsCallerParentPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(cur, prev)\n}\n\n// AssertCallerIsParentPath panics if IsCallerParentPath returns false.\nfunc AssertCallerIsParentPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(cur, prev) {\n\t\tpanic(\"call restricted to parent packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsSameNamespace checks if the caller realm and the current realm are in the same namespace.\nfunc IsSameNamespace() bool {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\treturn cur == prev\n}\n\n// AssertIsSameNamespace panics if IsSameNamespace returns false.\nfunc AssertIsSameNamespace() {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\tif cur != prev {\n\t\tpanic(\"call restricted to packages from the same namespace. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// nsFromPath extracts the namespace from a package path.\nfunc nsFromPath(pkgpath string) string {\n\tparts := strings.Split(pkgpath, \"/\")\n\n\t// Specifically for gno.land, potential paths are in the form of DOMAIN/r/NAMESPACE/...\n\t// XXX: Consider extra checks.\n\t// XXX: Support non gno.land domains, where p/ and r/ won't be enforced.\n\tif len(parts) \u003e= 3 {\n\t\treturn parts[2]\n\t}\n\treturn \"\"\n}\n\n// XXX: Consider adding IsCallerDirectlySubPath\n// XXX: Consider adding IsCallerDirectlyParentPath\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3D78baAfiQ1+xoddPLyeSVA76jAnqVgktaAgI9FIIdUGf8MO2WOkss6abuwRhnCY8C2S63l/03XQ3aeCoexUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"nestedpkg","path":"gno.land/p/demo/nestedpkg","files":[{"name":"nestedpkg.gno","body":"// Package nestedpkg provides helpers for package-path based access control.\n// It is useful for upgrade patterns relying on namespaces.\npackage nestedpkg\n\n// To test this from a realm and have std.CurrentRealm/PrevRealm work correctly,\n// this file is tested from gno.land/r/demo/tests/nestedpkg_test.gno\n// XXX: move test to ths directory once we support testing a package and\n// specifying values for both PrevRealm and CurrentRealm.\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\n// IsCallerSubPath checks if the caller realm is located in a subfolder of the current realm.\nfunc IsCallerSubPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(prev, cur)\n}\n\n// AssertCallerIsSubPath panics if IsCallerSubPath returns false.\nfunc AssertCallerIsSubPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(prev, cur) {\n\t\tpanic(\"call restricted to nested packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsCallerParentPath checks if the caller realm is located in a parent location of the current realm.\nfunc IsCallerParentPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(cur, prev)\n}\n\n// AssertCallerIsParentPath panics if IsCallerParentPath returns false.\nfunc AssertCallerIsParentPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(cur, prev) {\n\t\tpanic(\"call restricted to parent packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsSameNamespace checks if the caller realm and the current realm are in the same namespace.\nfunc IsSameNamespace() bool {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\treturn cur == prev\n}\n\n// AssertIsSameNamespace panics if IsSameNamespace returns false.\nfunc AssertIsSameNamespace() {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\tif cur != prev {\n\t\tpanic(\"call restricted to packages from the same namespace. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// nsFromPath extracts the namespace from a package path.\nfunc nsFromPath(pkgpath string) string {\n\tparts := strings.Split(pkgpath, \"/\")\n\n\t// Specifically for gno.land, potential paths are in the form of DOMAIN/r/NAMESPACE/...\n\t// XXX: Consider extra checks.\n\t// XXX: Support non gno.land domains, where p/ and r/ won't be enforced.\n\tif len(parts) \u003e= 3 {\n\t\treturn parts[2]\n\t}\n\treturn \"\"\n}\n\n// XXX: Consider adding IsCallerDirectlySubPath\n// XXX: Consider adding IsCallerDirectlyParentPath\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3D78baAfiQ1+xoddPLyeSVA76jAnqVgktaAgI9FIIdUGf8MO2WOkss6abuwRhnCY8C2S63l/03XQ3aeCoexUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"nestedpkg","path":"gno.land/p/demo/nestedpkg","files":[{"name":"nestedpkg.gno","body":"// Package nestedpkg provides helpers for package-path based access control.\n// It is useful for upgrade patterns relying on namespaces.\npackage nestedpkg\n\n// To test this from a realm and have std.CurrentRealm/PrevRealm work correctly,\n// this file is tested from gno.land/r/demo/tests/nestedpkg_test.gno\n// XXX: move test to ths directory once we support testing a package and\n// specifying values for both PrevRealm and CurrentRealm.\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\n// IsCallerSubPath checks if the caller realm is located in a subfolder of the current realm.\nfunc IsCallerSubPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(prev, cur)\n}\n\n// AssertCallerIsSubPath panics if IsCallerSubPath returns false.\nfunc AssertCallerIsSubPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(prev, cur) {\n\t\tpanic(\"call restricted to nested packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsCallerParentPath checks if the caller realm is located in a parent location of the current realm.\nfunc IsCallerParentPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(cur, prev)\n}\n\n// AssertCallerIsParentPath panics if IsCallerParentPath returns false.\nfunc AssertCallerIsParentPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(cur, prev) {\n\t\tpanic(\"call restricted to parent packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsSameNamespace checks if the caller realm and the current realm are in the same namespace.\nfunc IsSameNamespace() bool {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\treturn cur == prev\n}\n\n// AssertIsSameNamespace panics if IsSameNamespace returns false.\nfunc AssertIsSameNamespace() {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\tif cur != prev {\n\t\tpanic(\"call restricted to packages from the same namespace. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// nsFromPath extracts the namespace from a package path.\nfunc nsFromPath(pkgpath string) string {\n\tparts := strings.Split(pkgpath, \"/\")\n\n\t// Specifically for gno.land, potential paths are in the form of DOMAIN/r/NAMESPACE/...\n\t// XXX: Consider extra checks.\n\t// XXX: Support non gno.land domains, where p/ and r/ won't be enforced.\n\tif len(parts) \u003e= 3 {\n\t\treturn parts[2]\n\t}\n\treturn \"\"\n}\n\n// XXX: Consider adding IsCallerDirectlySubPath\n// XXX: Consider adding IsCallerDirectlyParentPath\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3D78baAfiQ1+xoddPLyeSVA76jAnqVgktaAgI9FIIdUGf8MO2WOkss6abuwRhnCY8C2S63l/03XQ3aeCoexUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"nft","path":"gno.land/r/demo/nft","files":[{"name":"README.md","body":"NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n- [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n- [gno.land/r/demo/nft/nft.go](https://gno.land/r/demo/nft/nft.go)\n- [zrealm_nft3.go test](https://github.com/gnolang/gno/blob/master/tests/files2/zrealm_nft3.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:gnolang/1)).\n"},{"name":"nft.gno","body":"package nft\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\ntype token struct {\n\tgrc721.IGRC721 // implements the GRC721 interface\n\n\ttokenCounter int\n\ttokens avl.Tree // grc721.TokenID -\u003e *NFToken{}\n\toperators avl.Tree // owner std.Address -\u003e operator std.Address\n}\n\ntype NFToken struct {\n\towner std.Address\n\tapproved std.Address\n\ttokenID grc721.TokenID\n\tdata string\n}\n\nvar gToken = \u0026token{}\n\nfunc GetToken() *token { return gToken }\n\nfunc (grc *token) nextTokenID() grc721.TokenID {\n\tgrc.tokenCounter++\n\ts := strconv.Itoa(grc.tokenCounter)\n\treturn grc721.TokenID(s)\n}\n\nfunc (grc *token) getToken(tid grc721.TokenID) (*NFToken, bool) {\n\ttoken, ok := grc.tokens.Get(string(tid))\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn token.(*NFToken), true\n}\n\nfunc (grc *token) Mint(to std.Address, data string) grc721.TokenID {\n\ttid := grc.nextTokenID()\n\tgrc.tokens.Set(string(tid), \u0026NFToken{\n\t\towner: to,\n\t\ttokenID: tid,\n\t\tdata: data,\n\t})\n\treturn tid\n}\n\nfunc (grc *token) BalanceOf(owner std.Address) (count int64) {\n\tpanic(\"not yet implemented\")\n}\n\nfunc (grc *token) OwnerOf(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.owner\n}\n\n// XXX not fully implemented yet.\nfunc (grc *token) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tgrc.TransferFrom(from, to, tid)\n\t// When transfer is complete, this function checks if `_to` is a smart\n\t// contract (code size \u003e 0). If so, it calls `onERC721Received` on\n\t// `_to` and throws if the return value is not\n\t// `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n\t// XXX ensure \"to\" is a realm with onERC721Received() signature.\n}\n\nfunc (grc *token) TransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner, an authorized\n\t// operator, or the approved address for this NFT.\n\tif caller != token.owner \u0026\u0026 caller != token.approved {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Throws if `_from` is not the current owner.\n\tif from != token.owner {\n\t\tpanic(\"from is not the current owner\")\n\t}\n\t// Throws if `_to` is the zero address.\n\tif to == \"\" {\n\t\tpanic(\"to cannot be empty\")\n\t}\n\t// Good.\n\ttoken.owner = to\n}\n\nfunc (grc *token) Approve(approved std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner,\n\t// or an authorized operator.\n\tif caller != token.owner {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Good.\n\ttoken.approved = approved\n}\n\n// XXX make it work for set of operators.\nfunc (grc *token) SetApprovalForAll(operator std.Address, approved bool) {\n\tcaller := std.GetCallerAt(2)\n\tgrc.operators.Set(caller.String(), operator)\n}\n\nfunc (grc *token) GetApproved(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.approved\n}\n\n// XXX make it work for set of operators\nfunc (grc *token) IsApprovedForAll(owner, operator std.Address) bool {\n\toperator2, ok := grc.operators.Get(owner.String())\n\tif !ok {\n\t\treturn false\n\t}\n\treturn operator == operator2.(std.Address)\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n}\n\n// Output:\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft\"]\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/grc/grc721.TokenID\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"NFT#1\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"564a9e78be869bd258fc3c9ad56f5a75ed68818f\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\"\n// }\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b53ffc464e1b5655d19b9d5277f3491717c24aca\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b1d928b3716b147c92730e8d234162bec2f0f2fc\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\"\n// }\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:5]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b229b824842ec3e7f2341e33d0fa0ca77af2f480\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:4]={\n// \"Fields\": [\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1e0b9dddb406b4f50500a022266a4cb8a4ea38c6\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"05ab6746ea84b55ca133806af215d99a1c4b045e\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:6\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:3\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft_test\"]\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(caller, addr1, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.Approve(\"\", tid) // approve addr1.\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HuxTnuyyr3qq/cTzu29oaMWR9QJ4Ag0+fgTQlF0O8ncNg0QEv0lu1rDnd/V6kcM1otimfHfkTUl8KC+ad7r8BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"nft","path":"gno.land/r/demo/nft","files":[{"name":"README.md","body":"NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n- [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n- [gno.land/r/demo/nft/nft.go](https://gno.land/r/demo/nft/nft.go)\n- [zrealm_nft3.go test](https://github.com/gnolang/gno/blob/master/tests/files2/zrealm_nft3.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:gnolang/1)).\n"},{"name":"nft.gno","body":"package nft\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\ntype token struct {\n\tgrc721.IGRC721 // implements the GRC721 interface\n\n\ttokenCounter int\n\ttokens avl.Tree // grc721.TokenID -\u003e *NFToken{}\n\toperators avl.Tree // owner std.Address -\u003e operator std.Address\n}\n\ntype NFToken struct {\n\towner std.Address\n\tapproved std.Address\n\ttokenID grc721.TokenID\n\tdata string\n}\n\nvar gToken = \u0026token{}\n\nfunc GetToken() *token { return gToken }\n\nfunc (grc *token) nextTokenID() grc721.TokenID {\n\tgrc.tokenCounter++\n\ts := strconv.Itoa(grc.tokenCounter)\n\treturn grc721.TokenID(s)\n}\n\nfunc (grc *token) getToken(tid grc721.TokenID) (*NFToken, bool) {\n\ttoken, ok := grc.tokens.Get(string(tid))\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn token.(*NFToken), true\n}\n\nfunc (grc *token) Mint(to std.Address, data string) grc721.TokenID {\n\ttid := grc.nextTokenID()\n\tgrc.tokens.Set(string(tid), \u0026NFToken{\n\t\towner: to,\n\t\ttokenID: tid,\n\t\tdata: data,\n\t})\n\treturn tid\n}\n\nfunc (grc *token) BalanceOf(owner std.Address) (count int64) {\n\tpanic(\"not yet implemented\")\n}\n\nfunc (grc *token) OwnerOf(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.owner\n}\n\n// XXX not fully implemented yet.\nfunc (grc *token) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tgrc.TransferFrom(from, to, tid)\n\t// When transfer is complete, this function checks if `_to` is a smart\n\t// contract (code size \u003e 0). If so, it calls `onERC721Received` on\n\t// `_to` and throws if the return value is not\n\t// `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n\t// XXX ensure \"to\" is a realm with onERC721Received() signature.\n}\n\nfunc (grc *token) TransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner, an authorized\n\t// operator, or the approved address for this NFT.\n\tif caller != token.owner \u0026\u0026 caller != token.approved {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Throws if `_from` is not the current owner.\n\tif from != token.owner {\n\t\tpanic(\"from is not the current owner\")\n\t}\n\t// Throws if `_to` is the zero address.\n\tif to == \"\" {\n\t\tpanic(\"to cannot be empty\")\n\t}\n\t// Good.\n\ttoken.owner = to\n}\n\nfunc (grc *token) Approve(approved std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner,\n\t// or an authorized operator.\n\tif caller != token.owner {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Good.\n\ttoken.approved = approved\n}\n\n// XXX make it work for set of operators.\nfunc (grc *token) SetApprovalForAll(operator std.Address, approved bool) {\n\tcaller := std.GetCallerAt(2)\n\tgrc.operators.Set(caller.String(), operator)\n}\n\nfunc (grc *token) GetApproved(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.approved\n}\n\n// XXX make it work for set of operators\nfunc (grc *token) IsApprovedForAll(owner, operator std.Address) bool {\n\toperator2, ok := grc.operators.Get(owner.String())\n\tif !ok {\n\t\treturn false\n\t}\n\treturn operator == operator2.(std.Address)\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n}\n\n// Output:\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft\"]\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/grc/grc721.TokenID\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"NFT#1\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"564a9e78be869bd258fc3c9ad56f5a75ed68818f\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\"\n// }\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b53ffc464e1b5655d19b9d5277f3491717c24aca\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b1d928b3716b147c92730e8d234162bec2f0f2fc\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\"\n// }\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:5]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b229b824842ec3e7f2341e33d0fa0ca77af2f480\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:4]={\n// \"Fields\": [\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1e0b9dddb406b4f50500a022266a4cb8a4ea38c6\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"05ab6746ea84b55ca133806af215d99a1c4b045e\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:6\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:3\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft_test\"]\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(caller, addr1, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.Approve(\"\", tid) // approve addr1.\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HuxTnuyyr3qq/cTzu29oaMWR9QJ4Ag0+fgTQlF0O8ncNg0QEv0lu1rDnd/V6kcM1otimfHfkTUl8KC+ad7r8BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"nft","path":"gno.land/r/demo/nft","files":[{"name":"README.md","body":"NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n- [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n- [gno.land/r/demo/nft/nft.go](https://gno.land/r/demo/nft/nft.go)\n- [zrealm_nft3.go test](https://github.com/gnolang/gno/blob/master/tests/files2/zrealm_nft3.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:gnolang/1)).\n"},{"name":"nft.gno","body":"package nft\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\ntype token struct {\n\tgrc721.IGRC721 // implements the GRC721 interface\n\n\ttokenCounter int\n\ttokens avl.Tree // grc721.TokenID -\u003e *NFToken{}\n\toperators avl.Tree // owner std.Address -\u003e operator std.Address\n}\n\ntype NFToken struct {\n\towner std.Address\n\tapproved std.Address\n\ttokenID grc721.TokenID\n\tdata string\n}\n\nvar gToken = \u0026token{}\n\nfunc GetToken() *token { return gToken }\n\nfunc (grc *token) nextTokenID() grc721.TokenID {\n\tgrc.tokenCounter++\n\ts := strconv.Itoa(grc.tokenCounter)\n\treturn grc721.TokenID(s)\n}\n\nfunc (grc *token) getToken(tid grc721.TokenID) (*NFToken, bool) {\n\ttoken, ok := grc.tokens.Get(string(tid))\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn token.(*NFToken), true\n}\n\nfunc (grc *token) Mint(to std.Address, data string) grc721.TokenID {\n\ttid := grc.nextTokenID()\n\tgrc.tokens.Set(string(tid), \u0026NFToken{\n\t\towner: to,\n\t\ttokenID: tid,\n\t\tdata: data,\n\t})\n\treturn tid\n}\n\nfunc (grc *token) BalanceOf(owner std.Address) (count int64) {\n\tpanic(\"not yet implemented\")\n}\n\nfunc (grc *token) OwnerOf(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.owner\n}\n\n// XXX not fully implemented yet.\nfunc (grc *token) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tgrc.TransferFrom(from, to, tid)\n\t// When transfer is complete, this function checks if `_to` is a smart\n\t// contract (code size \u003e 0). If so, it calls `onERC721Received` on\n\t// `_to` and throws if the return value is not\n\t// `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n\t// XXX ensure \"to\" is a realm with onERC721Received() signature.\n}\n\nfunc (grc *token) TransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner, an authorized\n\t// operator, or the approved address for this NFT.\n\tif caller != token.owner \u0026\u0026 caller != token.approved {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Throws if `_from` is not the current owner.\n\tif from != token.owner {\n\t\tpanic(\"from is not the current owner\")\n\t}\n\t// Throws if `_to` is the zero address.\n\tif to == \"\" {\n\t\tpanic(\"to cannot be empty\")\n\t}\n\t// Good.\n\ttoken.owner = to\n}\n\nfunc (grc *token) Approve(approved std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner,\n\t// or an authorized operator.\n\tif caller != token.owner {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Good.\n\ttoken.approved = approved\n}\n\n// XXX make it work for set of operators.\nfunc (grc *token) SetApprovalForAll(operator std.Address, approved bool) {\n\tcaller := std.GetCallerAt(2)\n\tgrc.operators.Set(caller.String(), operator)\n}\n\nfunc (grc *token) GetApproved(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.approved\n}\n\n// XXX make it work for set of operators\nfunc (grc *token) IsApprovedForAll(owner, operator std.Address) bool {\n\toperator2, ok := grc.operators.Get(owner.String())\n\tif !ok {\n\t\treturn false\n\t}\n\treturn operator == operator2.(std.Address)\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n}\n\n// Output:\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft\"]\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/grc/grc721.TokenID\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"NFT#1\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"564a9e78be869bd258fc3c9ad56f5a75ed68818f\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\"\n// }\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b53ffc464e1b5655d19b9d5277f3491717c24aca\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b1d928b3716b147c92730e8d234162bec2f0f2fc\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\"\n// }\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:5]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b229b824842ec3e7f2341e33d0fa0ca77af2f480\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:4]={\n// \"Fields\": [\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1e0b9dddb406b4f50500a022266a4cb8a4ea38c6\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"05ab6746ea84b55ca133806af215d99a1c4b045e\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:6\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:3\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft_test\"]\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(caller, addr1, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.Approve(\"\", tid) // approve addr1.\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HuxTnuyyr3qq/cTzu29oaMWR9QJ4Ag0+fgTQlF0O8ncNg0QEv0lu1rDnd/V6kcM1otimfHfkTUl8KC+ad7r8BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ownable","path":"gno.land/p/demo/ownable","files":[{"name":"errors.gno","body":"package ownable\n\nimport \"errors\"\n\nvar (\n\tErrUnauthorized = errors.New(\"ownable: caller is not owner\")\n\tErrInvalidAddress = errors.New(\"ownable: new owner address is invalid\")\n)\n"},{"name":"ownable.gno","body":"package ownable\n\nimport \"std\"\n\nconst OwnershipTransferEvent = \"OwnershipTransfer\"\n\n// Ownable is meant to be used as a top-level object to make your contract ownable OR\n// being embedded in a Gno object to manage per-object ownership.\ntype Ownable struct {\n\towner std.Address\n}\n\nfunc New() *Ownable {\n\treturn \u0026Ownable{\n\t\towner: std.PrevRealm().Addr(),\n\t}\n}\n\nfunc NewWithAddress(addr std.Address) *Ownable {\n\treturn \u0026Ownable{\n\t\towner: addr,\n\t}\n}\n\n// TransferOwnership transfers ownership of the Ownable struct to a new address\nfunc (o *Ownable) TransferOwnership(newOwner std.Address) error {\n\terr := o.CallerIsOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !newOwner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tprevOwner := o.owner\n\to.owner = newOwner\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", newOwner.String(),\n\t)\n\n\treturn nil\n}\n\n// DropOwnership removes the owner, effectively disabling any owner-related actions\n// Top-level usage: disables all only-owner actions/functions,\n// Embedded usage: behaves like a burn functionality, removing the owner from the struct\nfunc (o *Ownable) DropOwnership() error {\n\terr := o.CallerIsOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tprevOwner := o.owner\n\to.owner = \"\"\n\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", \"\",\n\t)\n\n\treturn nil\n}\n\n// Owner returns the owner address from Ownable\nfunc (o Ownable) Owner() std.Address {\n\treturn o.owner\n}\n\n// CallerIsOwner checks if the caller of the function is the Realm's owner\nfunc (o Ownable) CallerIsOwner() error {\n\tif std.PrevRealm().Addr() == o.owner {\n\t\treturn nil\n\t}\n\n\treturn ErrUnauthorized\n}\n\n// AssertCallerIsOwner panics if the caller is not the owner\nfunc (o Ownable) AssertCallerIsOwner() {\n\tif std.PrevRealm().Addr() != o.owner {\n\t\tpanic(ErrUnauthorized)\n\t}\n}\n"},{"name":"ownable_test.gno","body":"package ownable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\tgot := o.Owner()\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewWithAddress(t *testing.T) {\n\to := NewWithAddress(alice)\n\n\tgot := o.Owner()\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestTransferOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(bob)\n\tif err != nil {\n\t\tt.Fatalf(\"TransferOwnership failed, %v\", err)\n\t}\n\n\tgot := o.Owner()\n\tif bob != got {\n\t\tt.Fatalf(\"Expected: %s, got: %s\", bob, got)\n\t}\n}\n\nfunc TestCallerIsOwner(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\tunauthorizedCaller := bob\n\n\tstd.TestSetRealm(std.NewUserRealm(unauthorizedCaller))\n\tstd.TestSetOrigCaller(unauthorizedCaller) // TODO(bug): should not be needed\n\n\terr := o.CallerIsOwner()\n\tuassert.Error(t, err) // XXX: IsError(..., unauthorizedCaller)\n}\n\nfunc TestDropOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.DropOwnership()\n\tuassert.NoError(t, err, \"DropOwnership failed\")\n\n\towner := o.Owner()\n\tuassert.Empty(t, owner, \"owner should be empty\")\n}\n\n// Errors\n\nfunc TestErrUnauthorized(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob) // TODO(bug): should not be needed\n\n\terr := o.TransferOwnership(alice)\n\tif err != ErrUnauthorized {\n\t\tt.Fatalf(\"Should've been ErrUnauthorized, was %v\", err)\n\t}\n\n\terr = o.DropOwnership()\n\tuassert.ErrorContains(t, err, ErrUnauthorized.Error())\n}\n\nfunc TestErrInvalidAddress(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(\"\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n\n\terr = o.TransferOwnership(\"10000000001000000000100000000010000000001000000000\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KM8GvMQyvBiFlrNW46X2AKtlNK9iHlRdGOI5NeEJV6teHIsA2wR8CLYzpa8Zl64Lf55zJASg87Z0KjIq2WASAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ownable","path":"gno.land/p/demo/ownable","files":[{"name":"errors.gno","body":"package ownable\n\nimport \"errors\"\n\nvar (\n\tErrUnauthorized = errors.New(\"ownable: caller is not owner\")\n\tErrInvalidAddress = errors.New(\"ownable: new owner address is invalid\")\n)\n"},{"name":"ownable.gno","body":"package ownable\n\nimport \"std\"\n\nconst OwnershipTransferEvent = \"OwnershipTransfer\"\n\n// Ownable is meant to be used as a top-level object to make your contract ownable OR\n// being embedded in a Gno object to manage per-object ownership.\ntype Ownable struct {\n\towner std.Address\n}\n\nfunc New() *Ownable {\n\treturn \u0026Ownable{\n\t\towner: std.PrevRealm().Addr(),\n\t}\n}\n\nfunc NewWithAddress(addr std.Address) *Ownable {\n\treturn \u0026Ownable{\n\t\towner: addr,\n\t}\n}\n\n// TransferOwnership transfers ownership of the Ownable struct to a new address\nfunc (o *Ownable) TransferOwnership(newOwner std.Address) error {\n\terr := o.CallerIsOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !newOwner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tprevOwner := o.owner\n\to.owner = newOwner\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", newOwner.String(),\n\t)\n\n\treturn nil\n}\n\n// DropOwnership removes the owner, effectively disabling any owner-related actions\n// Top-level usage: disables all only-owner actions/functions,\n// Embedded usage: behaves like a burn functionality, removing the owner from the struct\nfunc (o *Ownable) DropOwnership() error {\n\terr := o.CallerIsOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tprevOwner := o.owner\n\to.owner = \"\"\n\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", \"\",\n\t)\n\n\treturn nil\n}\n\n// Owner returns the owner address from Ownable\nfunc (o Ownable) Owner() std.Address {\n\treturn o.owner\n}\n\n// CallerIsOwner checks if the caller of the function is the Realm's owner\nfunc (o Ownable) CallerIsOwner() error {\n\tif std.PrevRealm().Addr() == o.owner {\n\t\treturn nil\n\t}\n\n\treturn ErrUnauthorized\n}\n\n// AssertCallerIsOwner panics if the caller is not the owner\nfunc (o Ownable) AssertCallerIsOwner() {\n\tif std.PrevRealm().Addr() != o.owner {\n\t\tpanic(ErrUnauthorized)\n\t}\n}\n"},{"name":"ownable_test.gno","body":"package ownable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\tgot := o.Owner()\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewWithAddress(t *testing.T) {\n\to := NewWithAddress(alice)\n\n\tgot := o.Owner()\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestTransferOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(bob)\n\tif err != nil {\n\t\tt.Fatalf(\"TransferOwnership failed, %v\", err)\n\t}\n\n\tgot := o.Owner()\n\tif bob != got {\n\t\tt.Fatalf(\"Expected: %s, got: %s\", bob, got)\n\t}\n}\n\nfunc TestCallerIsOwner(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\tunauthorizedCaller := bob\n\n\tstd.TestSetRealm(std.NewUserRealm(unauthorizedCaller))\n\tstd.TestSetOrigCaller(unauthorizedCaller) // TODO(bug): should not be needed\n\n\terr := o.CallerIsOwner()\n\tuassert.Error(t, err) // XXX: IsError(..., unauthorizedCaller)\n}\n\nfunc TestDropOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.DropOwnership()\n\tuassert.NoError(t, err, \"DropOwnership failed\")\n\n\towner := o.Owner()\n\tuassert.Empty(t, owner, \"owner should be empty\")\n}\n\n// Errors\n\nfunc TestErrUnauthorized(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob) // TODO(bug): should not be needed\n\n\terr := o.TransferOwnership(alice)\n\tif err != ErrUnauthorized {\n\t\tt.Fatalf(\"Should've been ErrUnauthorized, was %v\", err)\n\t}\n\n\terr = o.DropOwnership()\n\tuassert.ErrorContains(t, err, ErrUnauthorized.Error())\n}\n\nfunc TestErrInvalidAddress(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(\"\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n\n\terr = o.TransferOwnership(\"10000000001000000000100000000010000000001000000000\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KM8GvMQyvBiFlrNW46X2AKtlNK9iHlRdGOI5NeEJV6teHIsA2wR8CLYzpa8Zl64Lf55zJASg87Z0KjIq2WASAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ownable","path":"gno.land/p/demo/ownable","files":[{"name":"errors.gno","body":"package ownable\n\nimport \"errors\"\n\nvar (\n\tErrUnauthorized = errors.New(\"ownable: caller is not owner\")\n\tErrInvalidAddress = errors.New(\"ownable: new owner address is invalid\")\n)\n"},{"name":"ownable.gno","body":"package ownable\n\nimport \"std\"\n\nconst OwnershipTransferEvent = \"OwnershipTransfer\"\n\n// Ownable is meant to be used as a top-level object to make your contract ownable OR\n// being embedded in a Gno object to manage per-object ownership.\ntype Ownable struct {\n\towner std.Address\n}\n\nfunc New() *Ownable {\n\treturn \u0026Ownable{\n\t\towner: std.PrevRealm().Addr(),\n\t}\n}\n\nfunc NewWithAddress(addr std.Address) *Ownable {\n\treturn \u0026Ownable{\n\t\towner: addr,\n\t}\n}\n\n// TransferOwnership transfers ownership of the Ownable struct to a new address\nfunc (o *Ownable) TransferOwnership(newOwner std.Address) error {\n\terr := o.CallerIsOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !newOwner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tprevOwner := o.owner\n\to.owner = newOwner\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", newOwner.String(),\n\t)\n\n\treturn nil\n}\n\n// DropOwnership removes the owner, effectively disabling any owner-related actions\n// Top-level usage: disables all only-owner actions/functions,\n// Embedded usage: behaves like a burn functionality, removing the owner from the struct\nfunc (o *Ownable) DropOwnership() error {\n\terr := o.CallerIsOwner()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tprevOwner := o.owner\n\to.owner = \"\"\n\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", \"\",\n\t)\n\n\treturn nil\n}\n\n// Owner returns the owner address from Ownable\nfunc (o Ownable) Owner() std.Address {\n\treturn o.owner\n}\n\n// CallerIsOwner checks if the caller of the function is the Realm's owner\nfunc (o Ownable) CallerIsOwner() error {\n\tif std.PrevRealm().Addr() == o.owner {\n\t\treturn nil\n\t}\n\n\treturn ErrUnauthorized\n}\n\n// AssertCallerIsOwner panics if the caller is not the owner\nfunc (o Ownable) AssertCallerIsOwner() {\n\tif std.PrevRealm().Addr() != o.owner {\n\t\tpanic(ErrUnauthorized)\n\t}\n}\n"},{"name":"ownable_test.gno","body":"package ownable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\tgot := o.Owner()\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewWithAddress(t *testing.T) {\n\to := NewWithAddress(alice)\n\n\tgot := o.Owner()\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestTransferOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(bob)\n\tif err != nil {\n\t\tt.Fatalf(\"TransferOwnership failed, %v\", err)\n\t}\n\n\tgot := o.Owner()\n\tif bob != got {\n\t\tt.Fatalf(\"Expected: %s, got: %s\", bob, got)\n\t}\n}\n\nfunc TestCallerIsOwner(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\tunauthorizedCaller := bob\n\n\tstd.TestSetRealm(std.NewUserRealm(unauthorizedCaller))\n\tstd.TestSetOrigCaller(unauthorizedCaller) // TODO(bug): should not be needed\n\n\terr := o.CallerIsOwner()\n\tuassert.Error(t, err) // XXX: IsError(..., unauthorizedCaller)\n}\n\nfunc TestDropOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.DropOwnership()\n\tuassert.NoError(t, err, \"DropOwnership failed\")\n\n\towner := o.Owner()\n\tuassert.Empty(t, owner, \"owner should be empty\")\n}\n\n// Errors\n\nfunc TestErrUnauthorized(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob) // TODO(bug): should not be needed\n\n\terr := o.TransferOwnership(alice)\n\tif err != ErrUnauthorized {\n\t\tt.Fatalf(\"Should've been ErrUnauthorized, was %v\", err)\n\t}\n\n\terr = o.DropOwnership()\n\tuassert.ErrorContains(t, err, ErrUnauthorized.Error())\n}\n\nfunc TestErrInvalidAddress(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(\"\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n\n\terr = o.TransferOwnership(\"10000000001000000000100000000010000000001000000000\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KM8GvMQyvBiFlrNW46X2AKtlNK9iHlRdGOI5NeEJV6teHIsA2wR8CLYzpa8Zl64Lf55zJASg87Z0KjIq2WASAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"p_crossrealm","path":"gno.land/p/demo/tests/p_crossrealm","files":[{"name":"p_crossrealm.gno","body":"package p_crossrealm\n\ntype Stringer interface {\n\tString() string\n}\n\ntype Container struct {\n\tA int\n\tB Stringer\n}\n\nfunc (c *Container) Touch() *Container {\n\tc.A += 1\n\treturn c\n}\n\nfunc (c *Container) Print() {\n\tprintln(\"A:\", c.A)\n\tif c.B == nil {\n\t\tprintln(\"B: undefined\")\n\t} else {\n\t\tprintln(\"B:\", c.B.String())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+bxvau08PSQCLiyf6rpWYmPwuA+YHg2gvd5tDVDWoVUrAq+Xz7DJUhSr3rcq6E3sls2axaJDU0H+tOZsMR6wDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"p_crossrealm","path":"gno.land/p/demo/tests/p_crossrealm","files":[{"name":"p_crossrealm.gno","body":"package p_crossrealm\n\ntype Stringer interface {\n\tString() string\n}\n\ntype Container struct {\n\tA int\n\tB Stringer\n}\n\nfunc (c *Container) Touch() *Container {\n\tc.A += 1\n\treturn c\n}\n\nfunc (c *Container) Print() {\n\tprintln(\"A:\", c.A)\n\tif c.B == nil {\n\t\tprintln(\"B: undefined\")\n\t} else {\n\t\tprintln(\"B:\", c.B.String())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+bxvau08PSQCLiyf6rpWYmPwuA+YHg2gvd5tDVDWoVUrAq+Xz7DJUhSr3rcq6E3sls2axaJDU0H+tOZsMR6wDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"p_crossrealm","path":"gno.land/p/demo/tests/p_crossrealm","files":[{"name":"p_crossrealm.gno","body":"package p_crossrealm\n\ntype Stringer interface {\n\tString() string\n}\n\ntype Container struct {\n\tA int\n\tB Stringer\n}\n\nfunc (c *Container) Touch() *Container {\n\tc.A += 1\n\treturn c\n}\n\nfunc (c *Container) Print() {\n\tprintln(\"A:\", c.A)\n\tif c.B == nil {\n\t\tprintln(\"B: undefined\")\n\t} else {\n\t\tprintln(\"B:\", c.B.String())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+bxvau08PSQCLiyf6rpWYmPwuA+YHg2gvd5tDVDWoVUrAq+Xz7DJUhSr3rcq6E3sls2axaJDU0H+tOZsMR6wDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pager","path":"gno.land/p/demo/avl/pager","files":[{"name":"pager.gno","body":"package pager\n\nimport (\n\t\"math\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Pager is a struct that holds the AVL tree and pagination parameters.\ntype Pager struct {\n\tTree *avl.Tree\n\tPageQueryParam string\n\tSizeQueryParam string\n\tDefaultPageSize int\n\tReversed bool\n}\n\n// Page represents a single page of results.\ntype Page struct {\n\tItems []Item\n\tPageNumber int\n\tPageSize int\n\tTotalItems int\n\tTotalPages int\n\tHasPrev bool\n\tHasNext bool\n\tPager *Pager // Reference to the parent Pager\n}\n\n// Item represents a key-value pair in the AVL tree.\ntype Item struct {\n\tKey string\n\tValue interface{}\n}\n\n// NewPager creates a new Pager with default values.\nfunc NewPager(tree *avl.Tree, defaultPageSize int, reversed bool) *Pager {\n\treturn \u0026Pager{\n\t\tTree: tree,\n\t\tPageQueryParam: \"page\",\n\t\tSizeQueryParam: \"size\",\n\t\tDefaultPageSize: defaultPageSize,\n\t\tReversed: reversed,\n\t}\n}\n\n// GetPage retrieves a page of results from the AVL tree.\nfunc (p *Pager) GetPage(pageNumber int) *Page {\n\treturn p.GetPageWithSize(pageNumber, p.DefaultPageSize)\n}\n\nfunc (p *Pager) GetPageWithSize(pageNumber, pageSize int) *Page {\n\ttotalItems := p.Tree.Size()\n\ttotalPages := int(math.Ceil(float64(totalItems) / float64(pageSize)))\n\n\tpage := \u0026Page{\n\t\tTotalItems: totalItems,\n\t\tTotalPages: totalPages,\n\t\tPageSize: pageSize,\n\t\tPager: p,\n\t}\n\n\t// pages without content\n\tif pageSize \u003c 1 {\n\t\treturn page\n\t}\n\n\t// page number provided is not available\n\tif pageNumber \u003c 1 {\n\t\tpage.HasNext = totalPages \u003e 0\n\t\treturn page\n\t}\n\n\t// page number provided is outside the range of total pages\n\tif pageNumber \u003e totalPages {\n\t\tpage.PageNumber = pageNumber\n\t\tpage.HasPrev = pageNumber \u003e 0\n\t\treturn page\n\t}\n\n\tstartIndex := (pageNumber - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\tif endIndex \u003e totalItems {\n\t\tendIndex = totalItems\n\t}\n\n\titems := []Item{}\n\n\tif p.Reversed {\n\t\tp.Tree.IterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\t\titems = append(items, Item{Key: key, Value: value})\n\t\t\treturn false\n\t\t})\n\t} else {\n\t\tp.Tree.ReverseIterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\t\titems = append(items, Item{Key: key, Value: value})\n\t\t\treturn false\n\t\t})\n\t}\n\n\tpage.Items = items\n\tpage.PageNumber = pageNumber\n\tpage.HasPrev = pageNumber \u003e 1\n\tpage.HasNext = pageNumber \u003c totalPages\n\treturn page\n}\n\nfunc (p *Pager) MustGetPageByPath(rawURL string) *Page {\n\tpage, err := p.GetPageByPath(rawURL)\n\tif err != nil {\n\t\tpanic(\"invalid path\")\n\t}\n\treturn page\n}\n\n// GetPageByPath retrieves a page of results based on the query parameters in the URL path.\nfunc (p *Pager) GetPageByPath(rawURL string) (*Page, error) {\n\tpageNumber, pageSize, err := p.ParseQuery(rawURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p.GetPageWithSize(pageNumber, pageSize), nil\n}\n\n// Picker generates the Markdown UI for the page Picker\nfunc (p *Page) Picker() string {\n\tpageNumber := p.PageNumber\n\tpageNumber = max(pageNumber, 1)\n\n\tif p.TotalPages \u003c= 1 {\n\t\treturn \"\"\n\t}\n\n\tmd := \"\"\n\n\tif p.HasPrev {\n\t\t// Always show the first page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", 1, p.Pager.PageQueryParam, 1)\n\n\t\t// Before\n\t\tif p.PageNumber \u003e 4 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\tif p.PageNumber \u003e 3 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-2, p.Pager.PageQueryParam, p.PageNumber-2)\n\t\t}\n\n\t\tif p.PageNumber \u003e 2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-1, p.Pager.PageQueryParam, p.PageNumber-1)\n\t\t}\n\t}\n\n\tif p.PageNumber \u003e 0 \u0026\u0026 p.PageNumber \u003c= p.TotalPages {\n\t\t// Current page\n\t\tmd += ufmt.Sprintf(\"**%d**\", p.PageNumber)\n\t} else {\n\t\tmd += ufmt.Sprintf(\"_%d_\", p.PageNumber)\n\t}\n\n\tif p.HasNext {\n\t\tmd += \" | \"\n\n\t\tif p.PageNumber \u003c p.TotalPages-1 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+1, p.Pager.PageQueryParam, p.PageNumber+1)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+2, p.Pager.PageQueryParam, p.PageNumber+2)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-3 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\t// Always show the last page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d)\", p.TotalPages, p.Pager.PageQueryParam, p.TotalPages)\n\t}\n\n\treturn md\n}\n\n// ParseQuery parses the URL to extract the page number and page size.\nfunc (p *Pager) ParseQuery(rawURL string) (int, int, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn 1, p.DefaultPageSize, err\n\t}\n\n\tquery := u.Query()\n\tpageNumber := 1\n\tpageSize := p.DefaultPageSize\n\n\tif p.PageQueryParam != \"\" {\n\t\tif pageStr := query.Get(p.PageQueryParam); pageStr != \"\" {\n\t\t\tpageNumber, err = strconv.Atoi(pageStr)\n\t\t\tif err != nil || pageNumber \u003c 1 {\n\t\t\t\tpageNumber = 1\n\t\t\t}\n\t\t}\n\t}\n\n\tif p.SizeQueryParam != \"\" {\n\t\tif sizeStr := query.Get(p.SizeQueryParam); sizeStr != \"\" {\n\t\t\tpageSize, err = strconv.Atoi(sizeStr)\n\t\t\tif err != nil || pageSize \u003c 1 {\n\t\t\t\tpageSize = p.DefaultPageSize\n\t\t\t}\n\t\t}\n\t}\n\n\treturn pageNumber, pageSize, nil\n}\n\nfunc max(a, b int) int {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"pager_test.gno","body":"package pager\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPager_GetPage(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\tt.Run(\"normal ordering\", func(t *testing.T) {\n\t\t// Create a new pager.\n\t\tpager := NewPager(tree, 10, false)\n\n\t\t// Define test cases.\n\t\ttests := []struct {\n\t\t\tpageNumber int\n\t\t\tpageSize int\n\t\t\texpected []Item\n\t\t}{\n\t\t\t{1, 2, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}}},\n\t\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}}},\n\t\t\t{3, 2, []Item{{Key: \"e\", Value: 5}}},\n\t\t\t{1, 3, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}}},\n\t\t\t{2, 3, []Item{{Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t\t{1, 5, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t\t{2, 5, []Item{}},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\t\tfor i, item := range page.Items {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"reversed ordering\", func(t *testing.T) {\n\t\t// Create a new pager.\n\t\tpager := NewPager(tree, 10, true)\n\n\t\t// Define test cases.\n\t\ttests := []struct {\n\t\t\tpageNumber int\n\t\t\tpageSize int\n\t\t\texpected []Item\n\t\t}{\n\t\t\t{1, 2, []Item{{Key: \"e\", Value: 5}, {Key: \"d\", Value: 4}}},\n\t\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"b\", Value: 2}}},\n\t\t\t{3, 2, []Item{{Key: \"a\", Value: 1}}},\n\t\t\t{1, 3, []Item{{Key: \"e\", Value: 5}, {Key: \"d\", Value: 4}, {Key: \"c\", Value: 3}}},\n\t\t\t{2, 3, []Item{{Key: \"b\", Value: 2}, {Key: \"a\", Value: 1}}},\n\t\t\t{1, 5, []Item{{Key: \"e\", Value: 5}, {Key: \"d\", Value: 4}, {Key: \"c\", Value: 3}, {Key: \"b\", Value: 2}, {Key: \"a\", Value: 1}}},\n\t\t\t{2, 5, []Item{}},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\t\tfor i, item := range page.Items {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc TestPager_GetPageByPath(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 50; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t}{\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=1\", 1, 10},\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=2\", 2, 10},\n\t\t{\"/r/foo:bar/baz?page=3\", 3, pager.DefaultPageSize},\n\t\t{\"/r/foo:bar/baz?size=20\", 1, 20},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, err := pager.GetPageByPath(tt.rawURL)\n\t\turequire.NoError(t, err, ufmt.Sprintf(\"GetPageByPath(%s) returned error: %v\", tt.rawURL, err))\n\n\t\tuassert.Equal(t, tt.expectedPage, page.PageNumber)\n\t\tuassert.Equal(t, tt.expectedSize, page.PageSize)\n\t}\n}\n\nfunc TestPage_Picker(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t{1, 2, \"**1** | [2](?page=2) | [3](?page=3)\"},\n\t\t{2, 2, \"[1](?page=1) | **2** | [3](?page=3)\"},\n\t\t{3, 2, \"[1](?page=1) | [2](?page=2) | **3**\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Picker()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_UI_WithManyPages(t *testing.T) {\n\t// Create a new AVL tree and populate it with many key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 100; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases for a large number of pages.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t// XXX: -1\n\t\t// XXX: 0\n\t\t{1, 10, \"**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\"},\n\t\t{2, 10, \"[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\"},\n\t\t{3, 10, \"[1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | … | [10](?page=10)\"},\n\t\t{4, 10, \"[1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6) | … | [10](?page=10)\"},\n\t\t{5, 10, \"[1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6) | [7](?page=7) | … | [10](?page=10)\"},\n\t\t{6, 10, \"[1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6** | [7](?page=7) | [8](?page=8) | … | [10](?page=10)\"},\n\t\t{7, 10, \"[1](?page=1) | … | [5](?page=5) | [6](?page=6) | **7** | [8](?page=8) | [9](?page=9) | [10](?page=10)\"},\n\t\t{8, 10, \"[1](?page=1) | … | [6](?page=6) | [7](?page=7) | **8** | [9](?page=9) | [10](?page=10)\"},\n\t\t{9, 10, \"[1](?page=1) | … | [7](?page=7) | [8](?page=8) | **9** | [10](?page=10)\"},\n\t\t{10, 10, \"[1](?page=1) | … | [8](?page=8) | [9](?page=9) | **10**\"},\n\t\t// XXX: 11\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Picker()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_ParseQuery(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t\texpectedError bool\n\t}{\n\t\t{\"/r/foo:bar/baz?size=2\u0026page=1\", 1, 2, false},\n\t\t{\"/r/foo:bar/baz?size=3\u0026page=2\", 2, 3, false},\n\t\t{\"/r/foo:bar/baz?size=5\u0026page=3\", 3, 5, false},\n\t\t{\"/r/foo:bar/baz?page=2\", 2, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=3\", 1, 3, false},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=0\u0026page=0\", 1, pager.DefaultPageSize, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, size, err := pager.ParseQuery(tt.rawURL)\n\t\tif tt.expectedError {\n\t\t\tuassert.Error(t, err, ufmt.Sprintf(\"ParseQuery(%s) expected error but got none\", tt.rawURL))\n\t\t} else {\n\t\t\turequire.NoError(t, err, ufmt.Sprintf(\"ParseQuery(%s) returned error: %v\", tt.rawURL, err))\n\t\t\tuassert.Equal(t, tt.expectedPage, page, ufmt.Sprintf(\"ParseQuery(%s) returned page %d, expected %d\", tt.rawURL, page, tt.expectedPage))\n\t\t\tuassert.Equal(t, tt.expectedSize, size, ufmt.Sprintf(\"ParseQuery(%s) returned size %d, expected %d\", tt.rawURL, size, tt.expectedSize))\n\t\t}\n\t}\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\tvar id seqid.ID\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 42; i++ {\n\t\ttree.Set(id.Next().String(), i)\n\t}\n\n\t// Create a new pager.\n\tpager := pager.NewPager(tree, 7, false)\n\n\tfor pn := -1; pn \u003c 8; pn++ {\n\t\tpage := pager.GetPage(pn)\n\n\t\tprintln(ufmt.Sprintf(\"## Page %d of %d\", page.PageNumber, page.TotalPages))\n\t\tfor idx, item := range page.Items {\n\t\t\tprintln(ufmt.Sprintf(\"- idx=%d key=%s value=%d\", idx, item.Key, item.Value))\n\t\t}\n\t\tprintln(page.Picker())\n\t\tprintln()\n\t}\n}\n\n// Output:\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 1 of 6\n// - idx=0 key=0000001 value=0\n// - idx=1 key=0000002 value=1\n// - idx=2 key=0000003 value=2\n// - idx=3 key=0000004 value=3\n// - idx=4 key=0000005 value=4\n// - idx=5 key=0000006 value=5\n// - idx=6 key=0000007 value=6\n// **1** | [2](?page=2) | [3](?page=3) | … | [6](?page=6)\n//\n// ## Page 2 of 6\n// - idx=0 key=0000008 value=7\n// - idx=1 key=0000009 value=8\n// - idx=2 key=000000a value=9\n// - idx=3 key=000000b value=10\n// - idx=4 key=000000c value=11\n// - idx=5 key=000000d value=12\n// - idx=6 key=000000e value=13\n// [1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [6](?page=6)\n//\n// ## Page 3 of 6\n// - idx=0 key=000000f value=14\n// - idx=1 key=000000g value=15\n// - idx=2 key=000000h value=16\n// - idx=3 key=000000j value=17\n// - idx=4 key=000000k value=18\n// - idx=5 key=000000m value=19\n// - idx=6 key=000000n value=20\n// [1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | [6](?page=6)\n//\n// ## Page 4 of 6\n// - idx=0 key=000000p value=21\n// - idx=1 key=000000q value=22\n// - idx=2 key=000000r value=23\n// - idx=3 key=000000s value=24\n// - idx=4 key=000000t value=25\n// - idx=5 key=000000v value=26\n// - idx=6 key=000000w value=27\n// [1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6)\n//\n// ## Page 5 of 6\n// - idx=0 key=000000x value=28\n// - idx=1 key=000000y value=29\n// - idx=2 key=000000z value=30\n// - idx=3 key=0000010 value=31\n// - idx=4 key=0000011 value=32\n// - idx=5 key=0000012 value=33\n// - idx=6 key=0000013 value=34\n// [1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6)\n//\n// ## Page 6 of 6\n// - idx=0 key=0000014 value=35\n// - idx=1 key=0000015 value=36\n// - idx=2 key=0000016 value=37\n// - idx=3 key=0000017 value=38\n// - idx=4 key=0000018 value=39\n// - idx=5 key=0000019 value=40\n// - idx=6 key=000001a value=41\n// [1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6**\n//\n// ## Page 7 of 6\n// [1](?page=1) | … | [5](?page=5) | [6](?page=6) | _7_\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vDU6Xfyb9Jy/ziFBCipdFiGTOiIOskvcGlGMuUmdyelFJI4suqnBVq8vRqrQV9fBkHuo5qVA039bWHZVQl/zDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pager","path":"gno.land/p/demo/avl/pager","files":[{"name":"pager.gno","body":"package pager\n\nimport (\n\t\"math\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Pager is a struct that holds the AVL tree and pagination parameters.\ntype Pager struct {\n\tTree *avl.Tree\n\tPageQueryParam string\n\tSizeQueryParam string\n\tDefaultPageSize int\n}\n\n// Page represents a single page of results.\ntype Page struct {\n\tItems []Item\n\tPageNumber int\n\tPageSize int\n\tTotalItems int\n\tTotalPages int\n\tHasPrev bool\n\tHasNext bool\n\tPager *Pager // Reference to the parent Pager\n}\n\n// Item represents a key-value pair in the AVL tree.\ntype Item struct {\n\tKey string\n\tValue interface{}\n}\n\n// NewPager creates a new Pager with default values.\nfunc NewPager(tree *avl.Tree, defaultPageSize int) *Pager {\n\treturn \u0026Pager{\n\t\tTree: tree,\n\t\tPageQueryParam: \"page\",\n\t\tSizeQueryParam: \"size\",\n\t\tDefaultPageSize: defaultPageSize,\n\t}\n}\n\n// GetPage retrieves a page of results from the AVL tree.\nfunc (p *Pager) GetPage(pageNumber int) *Page {\n\treturn p.GetPageWithSize(pageNumber, p.DefaultPageSize)\n}\n\nfunc (p *Pager) GetPageWithSize(pageNumber, pageSize int) *Page {\n\ttotalItems := p.Tree.Size()\n\ttotalPages := int(math.Ceil(float64(totalItems) / float64(pageSize)))\n\n\tpage := \u0026Page{\n\t\tTotalItems: totalItems,\n\t\tTotalPages: totalPages,\n\t\tPageSize: pageSize,\n\t\tPager: p,\n\t}\n\n\t// pages without content\n\tif pageSize \u003c 1 {\n\t\treturn page\n\t}\n\n\t// page number provided is not available\n\tif pageNumber \u003c 1 {\n\t\tpage.HasNext = totalPages \u003e 0\n\t\treturn page\n\t}\n\n\t// page number provided is outside the range of total pages\n\tif pageNumber \u003e totalPages {\n\t\tpage.PageNumber = pageNumber\n\t\tpage.HasPrev = pageNumber \u003e 0\n\t\treturn page\n\t}\n\n\tstartIndex := (pageNumber - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\tif endIndex \u003e totalItems {\n\t\tendIndex = totalItems\n\t}\n\n\titems := []Item{}\n\tp.Tree.ReverseIterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\titems = append(items, Item{Key: key, Value: value})\n\t\treturn false\n\t})\n\n\tpage.Items = items\n\tpage.PageNumber = pageNumber\n\tpage.HasPrev = pageNumber \u003e 1\n\tpage.HasNext = pageNumber \u003c totalPages\n\treturn page\n}\n\nfunc (p *Pager) MustGetPageByPath(rawURL string) *Page {\n\tpage, err := p.GetPageByPath(rawURL)\n\tif err != nil {\n\t\tpanic(\"invalid path\")\n\t}\n\treturn page\n}\n\n// GetPageByPath retrieves a page of results based on the query parameters in the URL path.\nfunc (p *Pager) GetPageByPath(rawURL string) (*Page, error) {\n\tpageNumber, pageSize, err := p.ParseQuery(rawURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p.GetPageWithSize(pageNumber, pageSize), nil\n}\n\n// UI generates the Markdown UI for the page selector.\nfunc (p *Page) Selector() string {\n\tpageNumber := p.PageNumber\n\tpageNumber = max(pageNumber, 1)\n\n\tif p.TotalPages \u003c= 1 {\n\t\treturn \"\"\n\t}\n\n\tmd := \"\"\n\n\tif p.HasPrev {\n\t\t// Always show the first page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", 1, p.Pager.PageQueryParam, 1)\n\n\t\t// Before\n\t\tif p.PageNumber \u003e 4 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\tif p.PageNumber \u003e 3 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-2, p.Pager.PageQueryParam, p.PageNumber-2)\n\t\t}\n\n\t\tif p.PageNumber \u003e 2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-1, p.Pager.PageQueryParam, p.PageNumber-1)\n\t\t}\n\t}\n\n\tif p.PageNumber \u003e 0 \u0026\u0026 p.PageNumber \u003c= p.TotalPages {\n\t\t// Current page\n\t\tmd += ufmt.Sprintf(\"**%d**\", p.PageNumber)\n\t} else {\n\t\tmd += ufmt.Sprintf(\"_%d_\", p.PageNumber)\n\t}\n\n\tif p.HasNext {\n\t\tmd += \" | \"\n\n\t\tif p.PageNumber \u003c p.TotalPages-1 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+1, p.Pager.PageQueryParam, p.PageNumber+1)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+2, p.Pager.PageQueryParam, p.PageNumber+2)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-3 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\t// Always show the last page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d)\", p.TotalPages, p.Pager.PageQueryParam, p.TotalPages)\n\t}\n\n\treturn md\n}\n\n// ParseQuery parses the URL to extract the page number and page size.\nfunc (p *Pager) ParseQuery(rawURL string) (int, int, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn 1, p.DefaultPageSize, err\n\t}\n\n\tquery := u.Query()\n\tpageNumber := 1\n\tpageSize := p.DefaultPageSize\n\n\tif p.PageQueryParam != \"\" {\n\t\tif pageStr := query.Get(p.PageQueryParam); pageStr != \"\" {\n\t\t\tpageNumber, err = strconv.Atoi(pageStr)\n\t\t\tif err != nil || pageNumber \u003c 1 {\n\t\t\t\tpageNumber = 1\n\t\t\t}\n\t\t}\n\t}\n\n\tif p.SizeQueryParam != \"\" {\n\t\tif sizeStr := query.Get(p.SizeQueryParam); sizeStr != \"\" {\n\t\t\tpageSize, err = strconv.Atoi(sizeStr)\n\t\t\tif err != nil || pageSize \u003c 1 {\n\t\t\t\tpageSize = p.DefaultPageSize\n\t\t\t}\n\t\t}\n\t}\n\n\treturn pageNumber, pageSize, nil\n}\n\nfunc max(a, b int) int {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"pager_test.gno","body":"package pager\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPager_GetPage(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected []Item\n\t}{\n\t\t{1, 2, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}}},\n\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}}},\n\t\t{3, 2, []Item{{Key: \"e\", Value: 5}}},\n\t\t{1, 3, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}}},\n\t\t{2, 3, []Item{{Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t{1, 5, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t{2, 5, []Item{}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\tfor i, item := range page.Items {\n\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t}\n\t}\n}\n\nfunc TestPager_GetPageByPath(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 50; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t}{\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=1\", 1, 10},\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=2\", 2, 10},\n\t\t{\"/r/foo:bar/baz?page=3\", 3, pager.DefaultPageSize},\n\t\t{\"/r/foo:bar/baz?size=20\", 1, 20},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, err := pager.GetPageByPath(tt.rawURL)\n\t\turequire.NoError(t, err, ufmt.Sprintf(\"GetPageByPath(%s) returned error: %v\", tt.rawURL, err))\n\n\t\tuassert.Equal(t, tt.expectedPage, page.PageNumber)\n\t\tuassert.Equal(t, tt.expectedSize, page.PageSize)\n\t}\n}\n\nfunc TestPage_Selector(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t{1, 2, \"**1** | [2](?page=2) | [3](?page=3)\"},\n\t\t{2, 2, \"[1](?page=1) | **2** | [3](?page=3)\"},\n\t\t{3, 2, \"[1](?page=1) | [2](?page=2) | **3**\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Selector()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_UI_WithManyPages(t *testing.T) {\n\t// Create a new AVL tree and populate it with many key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 100; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases for a large number of pages.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t// XXX: -1\n\t\t// XXX: 0\n\t\t{1, 10, \"**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\"},\n\t\t{2, 10, \"[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\"},\n\t\t{3, 10, \"[1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | … | [10](?page=10)\"},\n\t\t{4, 10, \"[1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6) | … | [10](?page=10)\"},\n\t\t{5, 10, \"[1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6) | [7](?page=7) | … | [10](?page=10)\"},\n\t\t{6, 10, \"[1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6** | [7](?page=7) | [8](?page=8) | … | [10](?page=10)\"},\n\t\t{7, 10, \"[1](?page=1) | … | [5](?page=5) | [6](?page=6) | **7** | [8](?page=8) | [9](?page=9) | [10](?page=10)\"},\n\t\t{8, 10, \"[1](?page=1) | … | [6](?page=6) | [7](?page=7) | **8** | [9](?page=9) | [10](?page=10)\"},\n\t\t{9, 10, \"[1](?page=1) | … | [7](?page=7) | [8](?page=8) | **9** | [10](?page=10)\"},\n\t\t{10, 10, \"[1](?page=1) | … | [8](?page=8) | [9](?page=9) | **10**\"},\n\t\t// XXX: 11\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Selector()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_ParseQuery(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t\texpectedError bool\n\t}{\n\t\t{\"/r/foo:bar/baz?size=2\u0026page=1\", 1, 2, false},\n\t\t{\"/r/foo:bar/baz?size=3\u0026page=2\", 2, 3, false},\n\t\t{\"/r/foo:bar/baz?size=5\u0026page=3\", 3, 5, false},\n\t\t{\"/r/foo:bar/baz?page=2\", 2, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=3\", 1, 3, false},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=0\u0026page=0\", 1, pager.DefaultPageSize, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, size, err := pager.ParseQuery(tt.rawURL)\n\t\tif tt.expectedError {\n\t\t\tuassert.Error(t, err, ufmt.Sprintf(\"ParseQuery(%s) expected error but got none\", tt.rawURL))\n\t\t} else {\n\t\t\turequire.NoError(t, err, ufmt.Sprintf(\"ParseQuery(%s) returned error: %v\", tt.rawURL, err))\n\t\t\tuassert.Equal(t, tt.expectedPage, page, ufmt.Sprintf(\"ParseQuery(%s) returned page %d, expected %d\", tt.rawURL, page, tt.expectedPage))\n\t\t\tuassert.Equal(t, tt.expectedSize, size, ufmt.Sprintf(\"ParseQuery(%s) returned size %d, expected %d\", tt.rawURL, size, tt.expectedSize))\n\t\t}\n\t}\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\tvar id seqid.ID\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 42; i++ {\n\t\ttree.Set(id.Next().String(), i)\n\t}\n\n\t// Create a new pager.\n\tpager := pager.NewPager(tree, 7)\n\n\tfor pn := -1; pn \u003c 8; pn++ {\n\t\tpage := pager.GetPage(pn)\n\n\t\tprintln(ufmt.Sprintf(\"## Page %d of %d\", page.PageNumber, page.TotalPages))\n\t\tfor idx, item := range page.Items {\n\t\t\tprintln(ufmt.Sprintf(\"- idx=%d key=%s value=%d\", idx, item.Key, item.Value))\n\t\t}\n\t\tprintln(page.Selector())\n\t\tprintln()\n\t}\n}\n\n// Output:\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 1 of 6\n// - idx=0 key=0000001 value=0\n// - idx=1 key=0000002 value=1\n// - idx=2 key=0000003 value=2\n// - idx=3 key=0000004 value=3\n// - idx=4 key=0000005 value=4\n// - idx=5 key=0000006 value=5\n// - idx=6 key=0000007 value=6\n// **1** | [2](?page=2) | [3](?page=3) | … | [6](?page=6)\n//\n// ## Page 2 of 6\n// - idx=0 key=0000008 value=7\n// - idx=1 key=0000009 value=8\n// - idx=2 key=000000a value=9\n// - idx=3 key=000000b value=10\n// - idx=4 key=000000c value=11\n// - idx=5 key=000000d value=12\n// - idx=6 key=000000e value=13\n// [1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [6](?page=6)\n//\n// ## Page 3 of 6\n// - idx=0 key=000000f value=14\n// - idx=1 key=000000g value=15\n// - idx=2 key=000000h value=16\n// - idx=3 key=000000j value=17\n// - idx=4 key=000000k value=18\n// - idx=5 key=000000m value=19\n// - idx=6 key=000000n value=20\n// [1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | [6](?page=6)\n//\n// ## Page 4 of 6\n// - idx=0 key=000000p value=21\n// - idx=1 key=000000q value=22\n// - idx=2 key=000000r value=23\n// - idx=3 key=000000s value=24\n// - idx=4 key=000000t value=25\n// - idx=5 key=000000v value=26\n// - idx=6 key=000000w value=27\n// [1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6)\n//\n// ## Page 5 of 6\n// - idx=0 key=000000x value=28\n// - idx=1 key=000000y value=29\n// - idx=2 key=000000z value=30\n// - idx=3 key=0000010 value=31\n// - idx=4 key=0000011 value=32\n// - idx=5 key=0000012 value=33\n// - idx=6 key=0000013 value=34\n// [1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6)\n//\n// ## Page 6 of 6\n// - idx=0 key=0000014 value=35\n// - idx=1 key=0000015 value=36\n// - idx=2 key=0000016 value=37\n// - idx=3 key=0000017 value=38\n// - idx=4 key=0000018 value=39\n// - idx=5 key=0000019 value=40\n// - idx=6 key=000001a value=41\n// [1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6**\n//\n// ## Page 7 of 6\n// [1](?page=1) | … | [5](?page=5) | [6](?page=6) | _7_\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PadDdRR9PcMznYlPa3DqTWB7x3PzB7pSt2THHLmaXmA/p7N/d392LbNsgvRMU0miyvtc9XBMRPmExD0X07y4AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pager","path":"gno.land/p/demo/avl/pager","files":[{"name":"pager.gno","body":"package pager\n\nimport (\n\t\"math\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Pager is a struct that holds the AVL tree and pagination parameters.\ntype Pager struct {\n\tTree *avl.Tree\n\tPageQueryParam string\n\tSizeQueryParam string\n\tDefaultPageSize int\n}\n\n// Page represents a single page of results.\ntype Page struct {\n\tItems []Item\n\tPageNumber int\n\tPageSize int\n\tTotalItems int\n\tTotalPages int\n\tHasPrev bool\n\tHasNext bool\n\tPager *Pager // Reference to the parent Pager\n}\n\n// Item represents a key-value pair in the AVL tree.\ntype Item struct {\n\tKey string\n\tValue interface{}\n}\n\n// NewPager creates a new Pager with default values.\nfunc NewPager(tree *avl.Tree, defaultPageSize int) *Pager {\n\treturn \u0026Pager{\n\t\tTree: tree,\n\t\tPageQueryParam: \"page\",\n\t\tSizeQueryParam: \"size\",\n\t\tDefaultPageSize: defaultPageSize,\n\t}\n}\n\n// GetPage retrieves a page of results from the AVL tree.\nfunc (p *Pager) GetPage(pageNumber int) *Page {\n\treturn p.GetPageWithSize(pageNumber, p.DefaultPageSize)\n}\n\nfunc (p *Pager) GetPageWithSize(pageNumber, pageSize int) *Page {\n\ttotalItems := p.Tree.Size()\n\ttotalPages := int(math.Ceil(float64(totalItems) / float64(pageSize)))\n\n\tpage := \u0026Page{\n\t\tTotalItems: totalItems,\n\t\tTotalPages: totalPages,\n\t\tPageSize: pageSize,\n\t\tPager: p,\n\t}\n\n\t// pages without content\n\tif pageSize \u003c 1 {\n\t\treturn page\n\t}\n\n\t// page number provided is not available\n\tif pageNumber \u003c 1 {\n\t\tpage.HasNext = totalPages \u003e 0\n\t\treturn page\n\t}\n\n\t// page number provided is outside the range of total pages\n\tif pageNumber \u003e totalPages {\n\t\tpage.PageNumber = pageNumber\n\t\tpage.HasPrev = pageNumber \u003e 0\n\t\treturn page\n\t}\n\n\tstartIndex := (pageNumber - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\tif endIndex \u003e totalItems {\n\t\tendIndex = totalItems\n\t}\n\n\titems := []Item{}\n\tp.Tree.ReverseIterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\titems = append(items, Item{Key: key, Value: value})\n\t\treturn false\n\t})\n\n\tpage.Items = items\n\tpage.PageNumber = pageNumber\n\tpage.HasPrev = pageNumber \u003e 1\n\tpage.HasNext = pageNumber \u003c totalPages\n\treturn page\n}\n\nfunc (p *Pager) MustGetPageByPath(rawURL string) *Page {\n\tpage, err := p.GetPageByPath(rawURL)\n\tif err != nil {\n\t\tpanic(\"invalid path\")\n\t}\n\treturn page\n}\n\n// GetPageByPath retrieves a page of results based on the query parameters in the URL path.\nfunc (p *Pager) GetPageByPath(rawURL string) (*Page, error) {\n\tpageNumber, pageSize, err := p.ParseQuery(rawURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p.GetPageWithSize(pageNumber, pageSize), nil\n}\n\n// UI generates the Markdown UI for the page selector.\nfunc (p *Page) Selector() string {\n\tpageNumber := p.PageNumber\n\tpageNumber = max(pageNumber, 1)\n\n\tif p.TotalPages \u003c= 1 {\n\t\treturn \"\"\n\t}\n\n\tmd := \"\"\n\n\tif p.HasPrev {\n\t\t// Always show the first page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", 1, p.Pager.PageQueryParam, 1)\n\n\t\t// Before\n\t\tif p.PageNumber \u003e 4 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\tif p.PageNumber \u003e 3 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-2, p.Pager.PageQueryParam, p.PageNumber-2)\n\t\t}\n\n\t\tif p.PageNumber \u003e 2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-1, p.Pager.PageQueryParam, p.PageNumber-1)\n\t\t}\n\t}\n\n\tif p.PageNumber \u003e 0 \u0026\u0026 p.PageNumber \u003c= p.TotalPages {\n\t\t// Current page\n\t\tmd += ufmt.Sprintf(\"**%d**\", p.PageNumber)\n\t} else {\n\t\tmd += ufmt.Sprintf(\"_%d_\", p.PageNumber)\n\t}\n\n\tif p.HasNext {\n\t\tmd += \" | \"\n\n\t\tif p.PageNumber \u003c p.TotalPages-1 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+1, p.Pager.PageQueryParam, p.PageNumber+1)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+2, p.Pager.PageQueryParam, p.PageNumber+2)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-3 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\t// Always show the last page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d)\", p.TotalPages, p.Pager.PageQueryParam, p.TotalPages)\n\t}\n\n\treturn md\n}\n\n// ParseQuery parses the URL to extract the page number and page size.\nfunc (p *Pager) ParseQuery(rawURL string) (int, int, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn 1, p.DefaultPageSize, err\n\t}\n\n\tquery := u.Query()\n\tpageNumber := 1\n\tpageSize := p.DefaultPageSize\n\n\tif p.PageQueryParam != \"\" {\n\t\tif pageStr := query.Get(p.PageQueryParam); pageStr != \"\" {\n\t\t\tpageNumber, err = strconv.Atoi(pageStr)\n\t\t\tif err != nil || pageNumber \u003c 1 {\n\t\t\t\tpageNumber = 1\n\t\t\t}\n\t\t}\n\t}\n\n\tif p.SizeQueryParam != \"\" {\n\t\tif sizeStr := query.Get(p.SizeQueryParam); sizeStr != \"\" {\n\t\t\tpageSize, err = strconv.Atoi(sizeStr)\n\t\t\tif err != nil || pageSize \u003c 1 {\n\t\t\t\tpageSize = p.DefaultPageSize\n\t\t\t}\n\t\t}\n\t}\n\n\treturn pageNumber, pageSize, nil\n}\n\nfunc max(a, b int) int {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"pager_test.gno","body":"package pager\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPager_GetPage(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected []Item\n\t}{\n\t\t{1, 2, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}}},\n\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}}},\n\t\t{3, 2, []Item{{Key: \"e\", Value: 5}}},\n\t\t{1, 3, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}}},\n\t\t{2, 3, []Item{{Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t{1, 5, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t{2, 5, []Item{}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\tfor i, item := range page.Items {\n\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t}\n\t}\n}\n\nfunc TestPager_GetPageByPath(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 50; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t}{\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=1\", 1, 10},\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=2\", 2, 10},\n\t\t{\"/r/foo:bar/baz?page=3\", 3, pager.DefaultPageSize},\n\t\t{\"/r/foo:bar/baz?size=20\", 1, 20},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, err := pager.GetPageByPath(tt.rawURL)\n\t\turequire.NoError(t, err, ufmt.Sprintf(\"GetPageByPath(%s) returned error: %v\", tt.rawURL, err))\n\n\t\tuassert.Equal(t, tt.expectedPage, page.PageNumber)\n\t\tuassert.Equal(t, tt.expectedSize, page.PageSize)\n\t}\n}\n\nfunc TestPage_Selector(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t{1, 2, \"**1** | [2](?page=2) | [3](?page=3)\"},\n\t\t{2, 2, \"[1](?page=1) | **2** | [3](?page=3)\"},\n\t\t{3, 2, \"[1](?page=1) | [2](?page=2) | **3**\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Selector()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_UI_WithManyPages(t *testing.T) {\n\t// Create a new AVL tree and populate it with many key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 100; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases for a large number of pages.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t// XXX: -1\n\t\t// XXX: 0\n\t\t{1, 10, \"**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\"},\n\t\t{2, 10, \"[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\"},\n\t\t{3, 10, \"[1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | … | [10](?page=10)\"},\n\t\t{4, 10, \"[1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6) | … | [10](?page=10)\"},\n\t\t{5, 10, \"[1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6) | [7](?page=7) | … | [10](?page=10)\"},\n\t\t{6, 10, \"[1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6** | [7](?page=7) | [8](?page=8) | … | [10](?page=10)\"},\n\t\t{7, 10, \"[1](?page=1) | … | [5](?page=5) | [6](?page=6) | **7** | [8](?page=8) | [9](?page=9) | [10](?page=10)\"},\n\t\t{8, 10, \"[1](?page=1) | … | [6](?page=6) | [7](?page=7) | **8** | [9](?page=9) | [10](?page=10)\"},\n\t\t{9, 10, \"[1](?page=1) | … | [7](?page=7) | [8](?page=8) | **9** | [10](?page=10)\"},\n\t\t{10, 10, \"[1](?page=1) | … | [8](?page=8) | [9](?page=9) | **10**\"},\n\t\t// XXX: 11\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Selector()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_ParseQuery(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t\texpectedError bool\n\t}{\n\t\t{\"/r/foo:bar/baz?size=2\u0026page=1\", 1, 2, false},\n\t\t{\"/r/foo:bar/baz?size=3\u0026page=2\", 2, 3, false},\n\t\t{\"/r/foo:bar/baz?size=5\u0026page=3\", 3, 5, false},\n\t\t{\"/r/foo:bar/baz?page=2\", 2, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=3\", 1, 3, false},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=0\u0026page=0\", 1, pager.DefaultPageSize, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, size, err := pager.ParseQuery(tt.rawURL)\n\t\tif tt.expectedError {\n\t\t\tuassert.Error(t, err, ufmt.Sprintf(\"ParseQuery(%s) expected error but got none\", tt.rawURL))\n\t\t} else {\n\t\t\turequire.NoError(t, err, ufmt.Sprintf(\"ParseQuery(%s) returned error: %v\", tt.rawURL, err))\n\t\t\tuassert.Equal(t, tt.expectedPage, page, ufmt.Sprintf(\"ParseQuery(%s) returned page %d, expected %d\", tt.rawURL, page, tt.expectedPage))\n\t\t\tuassert.Equal(t, tt.expectedSize, size, ufmt.Sprintf(\"ParseQuery(%s) returned size %d, expected %d\", tt.rawURL, size, tt.expectedSize))\n\t\t}\n\t}\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\tvar id seqid.ID\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 42; i++ {\n\t\ttree.Set(id.Next().String(), i)\n\t}\n\n\t// Create a new pager.\n\tpager := pager.NewPager(tree, 7)\n\n\tfor pn := -1; pn \u003c 8; pn++ {\n\t\tpage := pager.GetPage(pn)\n\n\t\tprintln(ufmt.Sprintf(\"## Page %d of %d\", page.PageNumber, page.TotalPages))\n\t\tfor idx, item := range page.Items {\n\t\t\tprintln(ufmt.Sprintf(\"- idx=%d key=%s value=%d\", idx, item.Key, item.Value))\n\t\t}\n\t\tprintln(page.Selector())\n\t\tprintln()\n\t}\n}\n\n// Output:\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 1 of 6\n// - idx=0 key=0000001 value=0\n// - idx=1 key=0000002 value=1\n// - idx=2 key=0000003 value=2\n// - idx=3 key=0000004 value=3\n// - idx=4 key=0000005 value=4\n// - idx=5 key=0000006 value=5\n// - idx=6 key=0000007 value=6\n// **1** | [2](?page=2) | [3](?page=3) | … | [6](?page=6)\n//\n// ## Page 2 of 6\n// - idx=0 key=0000008 value=7\n// - idx=1 key=0000009 value=8\n// - idx=2 key=000000a value=9\n// - idx=3 key=000000b value=10\n// - idx=4 key=000000c value=11\n// - idx=5 key=000000d value=12\n// - idx=6 key=000000e value=13\n// [1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [6](?page=6)\n//\n// ## Page 3 of 6\n// - idx=0 key=000000f value=14\n// - idx=1 key=000000g value=15\n// - idx=2 key=000000h value=16\n// - idx=3 key=000000j value=17\n// - idx=4 key=000000k value=18\n// - idx=5 key=000000m value=19\n// - idx=6 key=000000n value=20\n// [1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | [6](?page=6)\n//\n// ## Page 4 of 6\n// - idx=0 key=000000p value=21\n// - idx=1 key=000000q value=22\n// - idx=2 key=000000r value=23\n// - idx=3 key=000000s value=24\n// - idx=4 key=000000t value=25\n// - idx=5 key=000000v value=26\n// - idx=6 key=000000w value=27\n// [1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6)\n//\n// ## Page 5 of 6\n// - idx=0 key=000000x value=28\n// - idx=1 key=000000y value=29\n// - idx=2 key=000000z value=30\n// - idx=3 key=0000010 value=31\n// - idx=4 key=0000011 value=32\n// - idx=5 key=0000012 value=33\n// - idx=6 key=0000013 value=34\n// [1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6)\n//\n// ## Page 6 of 6\n// - idx=0 key=0000014 value=35\n// - idx=1 key=0000015 value=36\n// - idx=2 key=0000016 value=37\n// - idx=3 key=0000017 value=38\n// - idx=4 key=0000018 value=39\n// - idx=5 key=0000019 value=40\n// - idx=6 key=000001a value=41\n// [1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6**\n//\n// ## Page 7 of 6\n// [1](?page=1) | … | [5](?page=5) | [6](?page=6) | _7_\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hdCeJlt4LfHXF9YQ59/GBV6Lxk8SAu0TMMTXCTxHZc1b3A+Odjo+AMbKhc5faaubuXkZ+Z3SzFutRFKubkg/AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pager","path":"gno.land/p/demo/avl/pager","files":[{"name":"pager.gno","body":"package pager\n\nimport (\n\t\"math\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Pager is a struct that holds the AVL tree and pagination parameters.\ntype Pager struct {\n\tTree *avl.Tree\n\tPageQueryParam string\n\tSizeQueryParam string\n\tDefaultPageSize int\n}\n\n// Page represents a single page of results.\ntype Page struct {\n\tItems []Item\n\tPageNumber int\n\tPageSize int\n\tTotalItems int\n\tTotalPages int\n\tHasPrev bool\n\tHasNext bool\n\tPager *Pager // Reference to the parent Pager\n}\n\n// Item represents a key-value pair in the AVL tree.\ntype Item struct {\n\tKey string\n\tValue interface{}\n}\n\n// NewPager creates a new Pager with default values.\nfunc NewPager(tree *avl.Tree, defaultPageSize int) *Pager {\n\treturn \u0026Pager{\n\t\tTree: tree,\n\t\tPageQueryParam: \"page\",\n\t\tSizeQueryParam: \"size\",\n\t\tDefaultPageSize: defaultPageSize,\n\t}\n}\n\n// GetPage retrieves a page of results from the AVL tree.\nfunc (p *Pager) GetPage(pageNumber int) *Page {\n\treturn p.GetPageWithSize(pageNumber, p.DefaultPageSize)\n}\n\nfunc (p *Pager) GetPageWithSize(pageNumber, pageSize int) *Page {\n\ttotalItems := p.Tree.Size()\n\ttotalPages := int(math.Ceil(float64(totalItems) / float64(pageSize)))\n\n\tpage := \u0026Page{\n\t\tTotalItems: totalItems,\n\t\tTotalPages: totalPages,\n\t\tPageSize: pageSize,\n\t\tPager: p,\n\t}\n\n\t// pages without content\n\tif pageSize \u003c 1 {\n\t\treturn page\n\t}\n\n\t// page number provided is not available\n\tif pageNumber \u003c 1 {\n\t\tpage.HasNext = totalPages \u003e 0\n\t\treturn page\n\t}\n\n\t// page number provided is outside the range of total pages\n\tif pageNumber \u003e totalPages {\n\t\tpage.PageNumber = pageNumber\n\t\tpage.HasPrev = pageNumber \u003e 0\n\t\treturn page\n\t}\n\n\tstartIndex := (pageNumber - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\tif endIndex \u003e totalItems {\n\t\tendIndex = totalItems\n\t}\n\n\titems := []Item{}\n\tp.Tree.ReverseIterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\titems = append(items, Item{Key: key, Value: value})\n\t\treturn false\n\t})\n\n\tpage.Items = items\n\tpage.PageNumber = pageNumber\n\tpage.HasPrev = pageNumber \u003e 1\n\tpage.HasNext = pageNumber \u003c totalPages\n\treturn page\n}\n\nfunc (p *Pager) MustGetPageByPath(rawURL string) *Page {\n\tpage, err := p.GetPageByPath(rawURL)\n\tif err != nil {\n\t\tpanic(\"invalid path\")\n\t}\n\treturn page\n}\n\n// GetPageByPath retrieves a page of results based on the query parameters in the URL path.\nfunc (p *Pager) GetPageByPath(rawURL string) (*Page, error) {\n\tpageNumber, pageSize, err := p.ParseQuery(rawURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p.GetPageWithSize(pageNumber, pageSize), nil\n}\n\n// UI generates the Markdown UI for the page selector.\nfunc (p *Page) Selector() string {\n\tpageNumber := p.PageNumber\n\tpageNumber = max(pageNumber, 1)\n\n\tif p.TotalPages \u003c= 1 {\n\t\treturn \"\"\n\t}\n\n\tmd := \"\"\n\n\tif p.HasPrev {\n\t\t// Always show the first page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", 1, p.Pager.PageQueryParam, 1)\n\n\t\t// Before\n\t\tif p.PageNumber \u003e 4 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\tif p.PageNumber \u003e 3 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-2, p.Pager.PageQueryParam, p.PageNumber-2)\n\t\t}\n\n\t\tif p.PageNumber \u003e 2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-1, p.Pager.PageQueryParam, p.PageNumber-1)\n\t\t}\n\t}\n\n\tif p.PageNumber \u003e 0 \u0026\u0026 p.PageNumber \u003c= p.TotalPages {\n\t\t// Current page\n\t\tmd += ufmt.Sprintf(\"**%d**\", p.PageNumber)\n\t} else {\n\t\tmd += ufmt.Sprintf(\"_%d_\", p.PageNumber)\n\t}\n\n\tif p.HasNext {\n\t\tmd += \" | \"\n\n\t\tif p.PageNumber \u003c p.TotalPages-1 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+1, p.Pager.PageQueryParam, p.PageNumber+1)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+2, p.Pager.PageQueryParam, p.PageNumber+2)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-3 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\t// Always show the last page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d)\", p.TotalPages, p.Pager.PageQueryParam, p.TotalPages)\n\t}\n\n\treturn md\n}\n\n// ParseQuery parses the URL to extract the page number and page size.\nfunc (p *Pager) ParseQuery(rawURL string) (int, int, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn 1, p.DefaultPageSize, err\n\t}\n\n\tquery := u.Query()\n\tpageNumber := 1\n\tpageSize := p.DefaultPageSize\n\n\tif p.PageQueryParam != \"\" {\n\t\tif pageStr := query.Get(p.PageQueryParam); pageStr != \"\" {\n\t\t\tpageNumber, err = strconv.Atoi(pageStr)\n\t\t\tif err != nil || pageNumber \u003c 1 {\n\t\t\t\tpageNumber = 1\n\t\t\t}\n\t\t}\n\t}\n\n\tif p.SizeQueryParam != \"\" {\n\t\tif sizeStr := query.Get(p.SizeQueryParam); sizeStr != \"\" {\n\t\t\tpageSize, err = strconv.Atoi(sizeStr)\n\t\t\tif err != nil || pageSize \u003c 1 {\n\t\t\t\tpageSize = p.DefaultPageSize\n\t\t\t}\n\t\t}\n\t}\n\n\treturn pageNumber, pageSize, nil\n}\n\nfunc max(a, b int) int {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"pager_test.gno","body":"package pager\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPager_GetPage(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected []Item\n\t}{\n\t\t{1, 2, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}}},\n\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}}},\n\t\t{3, 2, []Item{{Key: \"e\", Value: 5}}},\n\t\t{1, 3, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}}},\n\t\t{2, 3, []Item{{Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t{1, 5, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t{2, 5, []Item{}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\tfor i, item := range page.Items {\n\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t}\n\t}\n}\n\nfunc TestPager_GetPageByPath(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 50; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t}{\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=1\", 1, 10},\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=2\", 2, 10},\n\t\t{\"/r/foo:bar/baz?page=3\", 3, pager.DefaultPageSize},\n\t\t{\"/r/foo:bar/baz?size=20\", 1, 20},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, err := pager.GetPageByPath(tt.rawURL)\n\t\turequire.NoError(t, err, ufmt.Sprintf(\"GetPageByPath(%s) returned error: %v\", tt.rawURL, err))\n\n\t\tuassert.Equal(t, tt.expectedPage, page.PageNumber)\n\t\tuassert.Equal(t, tt.expectedSize, page.PageSize)\n\t}\n}\n\nfunc TestPage_Selector(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t{1, 2, \"**1** | [2](?page=2) | [3](?page=3)\"},\n\t\t{2, 2, \"[1](?page=1) | **2** | [3](?page=3)\"},\n\t\t{3, 2, \"[1](?page=1) | [2](?page=2) | **3**\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Selector()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_UI_WithManyPages(t *testing.T) {\n\t// Create a new AVL tree and populate it with many key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 100; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases for a large number of pages.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t// XXX: -1\n\t\t// XXX: 0\n\t\t{1, 10, \"**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\"},\n\t\t{2, 10, \"[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\"},\n\t\t{3, 10, \"[1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | … | [10](?page=10)\"},\n\t\t{4, 10, \"[1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6) | … | [10](?page=10)\"},\n\t\t{5, 10, \"[1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6) | [7](?page=7) | … | [10](?page=10)\"},\n\t\t{6, 10, \"[1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6** | [7](?page=7) | [8](?page=8) | … | [10](?page=10)\"},\n\t\t{7, 10, \"[1](?page=1) | … | [5](?page=5) | [6](?page=6) | **7** | [8](?page=8) | [9](?page=9) | [10](?page=10)\"},\n\t\t{8, 10, \"[1](?page=1) | … | [6](?page=6) | [7](?page=7) | **8** | [9](?page=9) | [10](?page=10)\"},\n\t\t{9, 10, \"[1](?page=1) | … | [7](?page=7) | [8](?page=8) | **9** | [10](?page=10)\"},\n\t\t{10, 10, \"[1](?page=1) | … | [8](?page=8) | [9](?page=9) | **10**\"},\n\t\t// XXX: 11\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Selector()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_ParseQuery(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t\texpectedError bool\n\t}{\n\t\t{\"/r/foo:bar/baz?size=2\u0026page=1\", 1, 2, false},\n\t\t{\"/r/foo:bar/baz?size=3\u0026page=2\", 2, 3, false},\n\t\t{\"/r/foo:bar/baz?size=5\u0026page=3\", 3, 5, false},\n\t\t{\"/r/foo:bar/baz?page=2\", 2, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=3\", 1, 3, false},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=0\u0026page=0\", 1, pager.DefaultPageSize, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, size, err := pager.ParseQuery(tt.rawURL)\n\t\tif tt.expectedError {\n\t\t\tuassert.Error(t, err, ufmt.Sprintf(\"ParseQuery(%s) expected error but got none\", tt.rawURL))\n\t\t} else {\n\t\t\turequire.NoError(t, err, ufmt.Sprintf(\"ParseQuery(%s) returned error: %v\", tt.rawURL, err))\n\t\t\tuassert.Equal(t, tt.expectedPage, page, ufmt.Sprintf(\"ParseQuery(%s) returned page %d, expected %d\", tt.rawURL, page, tt.expectedPage))\n\t\t\tuassert.Equal(t, tt.expectedSize, size, ufmt.Sprintf(\"ParseQuery(%s) returned size %d, expected %d\", tt.rawURL, size, tt.expectedSize))\n\t\t}\n\t}\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\tvar id seqid.ID\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 42; i++ {\n\t\ttree.Set(id.Next().String(), i)\n\t}\n\n\t// Create a new pager.\n\tpager := pager.NewPager(tree, 7)\n\n\tfor pn := -1; pn \u003c 8; pn++ {\n\t\tpage := pager.GetPage(pn)\n\n\t\tprintln(ufmt.Sprintf(\"## Page %d of %d\", page.PageNumber, page.TotalPages))\n\t\tfor idx, item := range page.Items {\n\t\t\tprintln(ufmt.Sprintf(\"- idx=%d key=%s value=%d\", idx, item.Key, item.Value))\n\t\t}\n\t\tprintln(page.Selector())\n\t\tprintln()\n\t}\n}\n\n// Output:\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 1 of 6\n// - idx=0 key=0000001 value=0\n// - idx=1 key=0000002 value=1\n// - idx=2 key=0000003 value=2\n// - idx=3 key=0000004 value=3\n// - idx=4 key=0000005 value=4\n// - idx=5 key=0000006 value=5\n// - idx=6 key=0000007 value=6\n// **1** | [2](?page=2) | [3](?page=3) | … | [6](?page=6)\n//\n// ## Page 2 of 6\n// - idx=0 key=0000008 value=7\n// - idx=1 key=0000009 value=8\n// - idx=2 key=000000a value=9\n// - idx=3 key=000000b value=10\n// - idx=4 key=000000c value=11\n// - idx=5 key=000000d value=12\n// - idx=6 key=000000e value=13\n// [1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [6](?page=6)\n//\n// ## Page 3 of 6\n// - idx=0 key=000000f value=14\n// - idx=1 key=000000g value=15\n// - idx=2 key=000000h value=16\n// - idx=3 key=000000j value=17\n// - idx=4 key=000000k value=18\n// - idx=5 key=000000m value=19\n// - idx=6 key=000000n value=20\n// [1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | [6](?page=6)\n//\n// ## Page 4 of 6\n// - idx=0 key=000000p value=21\n// - idx=1 key=000000q value=22\n// - idx=2 key=000000r value=23\n// - idx=3 key=000000s value=24\n// - idx=4 key=000000t value=25\n// - idx=5 key=000000v value=26\n// - idx=6 key=000000w value=27\n// [1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6)\n//\n// ## Page 5 of 6\n// - idx=0 key=000000x value=28\n// - idx=1 key=000000y value=29\n// - idx=2 key=000000z value=30\n// - idx=3 key=0000010 value=31\n// - idx=4 key=0000011 value=32\n// - idx=5 key=0000012 value=33\n// - idx=6 key=0000013 value=34\n// [1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6)\n//\n// ## Page 6 of 6\n// - idx=0 key=0000014 value=35\n// - idx=1 key=0000015 value=36\n// - idx=2 key=0000016 value=37\n// - idx=3 key=0000017 value=38\n// - idx=4 key=0000018 value=39\n// - idx=5 key=0000019 value=40\n// - idx=6 key=000001a value=41\n// [1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6**\n//\n// ## Page 7 of 6\n// [1](?page=1) | … | [5](?page=5) | [6](?page=6) | _7_\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hdCeJlt4LfHXF9YQ59/GBV6Lxk8SAu0TMMTXCTxHZc1b3A+Odjo+AMbKhc5faaubuXkZ+Z3SzFutRFKubkg/AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"params","path":"gno.land/r/sys/params","files":[{"name":"params.gno","body":"// Package params provides functions for creating parameter executors that\n// interface with the Params Keeper.\n//\n// This package enables setting various parameter types (such as strings,\n// integers, booleans, and byte slices) through the GovDAO proposal mechanism.\n// Each function returns an executor that, when called, sets the specified\n// parameter in the Params Keeper.\n//\n// The executors are designed to be used within governance proposals to modify\n// parameters dynamically. The integration with the GovDAO allows for parameter\n// changes to be proposed and executed in a controlled manner, ensuring that\n// modifications are subject to governance processes.\n//\n// Example usage:\n//\n//\texecutor := params.NewStringPropExecutor(\"exampleKey\", \"exampleValue\")\n//\t// This executor can be used in a governance proposal to set the parameter.\npackage params\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nfunc NewStringPropExecutor(key string, value string) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamString(key, value) })\n}\n\nfunc NewInt64PropExecutor(key string, value int64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamInt64(key, value) })\n}\n\nfunc NewUint64PropExecutor(key string, value uint64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamUint64(key, value) })\n}\n\nfunc NewBoolPropExecutor(key string, value bool) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBool(key, value) })\n}\n\nfunc NewBytesPropExecutor(key string, value []byte) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBytes(key, value) })\n}\n\nfunc newPropExecutor(key string, fn func()) dao.Executor {\n\tcallback := func() error {\n\t\tfn()\n\t\tstd.Emit(\"set\", \"k\", key)\n\t\treturn nil\n\t}\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n"},{"name":"params_test.gno","body":"package params\n\nimport \"testing\"\n\n// Testing this package is limited because it only contains an `std.Set` method\n// without a corresponding `std.Get` method. For comprehensive testing, refer to\n// the tests located in the r/gov/dao/ directory, specifically in one of the\n// propX_filetest.gno files.\n\nfunc TestNewStringPropExecutor(t *testing.T) {\n\texecutor := NewStringPropExecutor(\"foo\", \"bar\")\n\tif executor == nil {\n\t\tt.Errorf(\"executor shouldn't be nil\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F2hLD6P3ADzzAc4HcH20ZCoTpy1yhEJBKzJ0puhneudc7uU/C3rw1sapv7rTPNT/2ZnyVVVYjYxHiGNm3ALzCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"params","path":"gno.land/r/sys/params","files":[{"name":"params.gno","body":"// Package params provides functions for creating parameter executors that\n// interface with the Params Keeper.\n//\n// This package enables setting various parameter types (such as strings,\n// integers, booleans, and byte slices) through the GovDAO proposal mechanism.\n// Each function returns an executor that, when called, sets the specified\n// parameter in the Params Keeper.\n//\n// The executors are designed to be used within governance proposals to modify\n// parameters dynamically. The integration with the GovDAO allows for parameter\n// changes to be proposed and executed in a controlled manner, ensuring that\n// modifications are subject to governance processes.\n//\n// Example usage:\n//\n//\texecutor := params.NewStringPropExecutor(\"exampleKey\", \"exampleValue\")\n//\t// This executor can be used in a governance proposal to set the parameter.\npackage params\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nfunc NewStringPropExecutor(key string, value string) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamString(key, value) })\n}\n\nfunc NewInt64PropExecutor(key string, value int64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamInt64(key, value) })\n}\n\nfunc NewUint64PropExecutor(key string, value uint64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamUint64(key, value) })\n}\n\nfunc NewBoolPropExecutor(key string, value bool) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBool(key, value) })\n}\n\nfunc NewBytesPropExecutor(key string, value []byte) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBytes(key, value) })\n}\n\nfunc newPropExecutor(key string, fn func()) dao.Executor {\n\tcallback := func() error {\n\t\tfn()\n\t\tstd.Emit(\"set\", \"k\", key)\n\t\treturn nil\n\t}\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n"},{"name":"params_test.gno","body":"package params\n\nimport \"testing\"\n\n// Testing this package is limited because it only contains an `std.Set` method\n// without a corresponding `std.Get` method. For comprehensive testing, refer to\n// the tests located in the r/gov/dao/ directory, specifically in one of the\n// propX_filetest.gno files.\n\nfunc TestNewStringPropExecutor(t *testing.T) {\n\texecutor := NewStringPropExecutor(\"foo\", \"bar\")\n\tif executor == nil {\n\t\tt.Errorf(\"executor shouldn't be nil\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F2hLD6P3ADzzAc4HcH20ZCoTpy1yhEJBKzJ0puhneudc7uU/C3rw1sapv7rTPNT/2ZnyVVVYjYxHiGNm3ALzCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"params","path":"gno.land/r/sys/params","files":[{"name":"params.gno","body":"// Package params provides functions for creating parameter executors that\n// interface with the Params Keeper.\n//\n// This package enables setting various parameter types (such as strings,\n// integers, booleans, and byte slices) through the GovDAO proposal mechanism.\n// Each function returns an executor that, when called, sets the specified\n// parameter in the Params Keeper.\n//\n// The executors are designed to be used within governance proposals to modify\n// parameters dynamically. The integration with the GovDAO allows for parameter\n// changes to be proposed and executed in a controlled manner, ensuring that\n// modifications are subject to governance processes.\n//\n// Example usage:\n//\n//\texecutor := params.NewStringPropExecutor(\"exampleKey\", \"exampleValue\")\n//\t// This executor can be used in a governance proposal to set the parameter.\npackage params\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nfunc NewStringPropExecutor(key string, value string) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamString(key, value) })\n}\n\nfunc NewInt64PropExecutor(key string, value int64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamInt64(key, value) })\n}\n\nfunc NewUint64PropExecutor(key string, value uint64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamUint64(key, value) })\n}\n\nfunc NewBoolPropExecutor(key string, value bool) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBool(key, value) })\n}\n\nfunc NewBytesPropExecutor(key string, value []byte) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBytes(key, value) })\n}\n\nfunc newPropExecutor(key string, fn func()) dao.Executor {\n\tcallback := func() error {\n\t\tfn()\n\t\tstd.Emit(\"set\", \"k\", key)\n\t\treturn nil\n\t}\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n"},{"name":"params_test.gno","body":"package params\n\nimport \"testing\"\n\n// Testing this package is limited because it only contains an `std.Set` method\n// without a corresponding `std.Get` method. For comprehensive testing, refer to\n// the tests located in the r/gov/dao/ directory, specifically in one of the\n// propX_filetest.gno files.\n\nfunc TestNewStringPropExecutor(t *testing.T) {\n\texecutor := NewStringPropExecutor(\"foo\", \"bar\")\n\tif executor == nil {\n\t\tt.Errorf(\"executor shouldn't be nil\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F2hLD6P3ADzzAc4HcH20ZCoTpy1yhEJBKzJ0puhneudc7uU/C3rw1sapv7rTPNT/2ZnyVVVYjYxHiGNm3ALzCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pausable","path":"gno.land/p/demo/pausable","files":[{"name":"pausable.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\ntype Pausable struct {\n\t*ownable.Ownable\n\tpaused bool\n}\n\n// New returns a new Pausable struct with non-paused state as default\nfunc New() *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable.New(),\n\t\tpaused: false,\n\t}\n}\n\n// NewFromOwnable is the same as New, but with a pre-existing top-level ownable\nfunc NewFromOwnable(ownable *ownable.Ownable) *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable,\n\t\tpaused: false,\n\t}\n}\n\n// IsPaused checks if Pausable is paused\nfunc (p Pausable) IsPaused() bool {\n\treturn p.paused\n}\n\n// Pause sets the state of Pausable to true, meaning all pausable functions are paused\nfunc (p *Pausable) Pause() error {\n\tif err := p.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\n\tp.paused = true\n\tstd.Emit(\"Paused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n\n// Unpause sets the state of Pausable to false, meaning all pausable functions are resumed\nfunc (p *Pausable) Unpause() error {\n\tif err := p.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\n\tp.paused = false\n\tstd.Emit(\"Unpaused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n"},{"name":"pausable_test.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tfirstCaller = std.Address(\"g1l9aypkr8xfvs82zeux486ddzec88ty69lue9de\")\n\tsecondCaller = std.Address(\"g127jydsh6cms3lrtdenydxsckh23a8d6emqcvfa\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\n\turequire.False(t, result.paused, \"Expected result to be unpaused\")\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestNewFromOwnable(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\to := ownable.New()\n\n\tstd.TestSetOrigCaller(secondCaller)\n\tresult := NewFromOwnable(o)\n\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestSetUnpaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Unpause()\n\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n}\n\nfunc TestSetPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Pause()\n\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n\nfunc TestIsPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n\n\tresult.Pause()\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZmAE9Qr891vG4brMzbBWCLjmy2FPgHH+PsOCGoq0S8Zd5oJR9BxvdUvlGdmpNV144wqAG9FYHd2rHQEgRbkYDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pausable","path":"gno.land/p/demo/pausable","files":[{"name":"pausable.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\ntype Pausable struct {\n\t*ownable.Ownable\n\tpaused bool\n}\n\n// New returns a new Pausable struct with non-paused state as default\nfunc New() *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable.New(),\n\t\tpaused: false,\n\t}\n}\n\n// NewFromOwnable is the same as New, but with a pre-existing top-level ownable\nfunc NewFromOwnable(ownable *ownable.Ownable) *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable,\n\t\tpaused: false,\n\t}\n}\n\n// IsPaused checks if Pausable is paused\nfunc (p Pausable) IsPaused() bool {\n\treturn p.paused\n}\n\n// Pause sets the state of Pausable to true, meaning all pausable functions are paused\nfunc (p *Pausable) Pause() error {\n\tif err := p.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\n\tp.paused = true\n\tstd.Emit(\"Paused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n\n// Unpause sets the state of Pausable to false, meaning all pausable functions are resumed\nfunc (p *Pausable) Unpause() error {\n\tif err := p.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\n\tp.paused = false\n\tstd.Emit(\"Unpaused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n"},{"name":"pausable_test.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tfirstCaller = std.Address(\"g1l9aypkr8xfvs82zeux486ddzec88ty69lue9de\")\n\tsecondCaller = std.Address(\"g127jydsh6cms3lrtdenydxsckh23a8d6emqcvfa\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\n\turequire.False(t, result.paused, \"Expected result to be unpaused\")\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestNewFromOwnable(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\to := ownable.New()\n\n\tstd.TestSetOrigCaller(secondCaller)\n\tresult := NewFromOwnable(o)\n\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestSetUnpaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Unpause()\n\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n}\n\nfunc TestSetPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Pause()\n\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n\nfunc TestIsPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n\n\tresult.Pause()\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZmAE9Qr891vG4brMzbBWCLjmy2FPgHH+PsOCGoq0S8Zd5oJR9BxvdUvlGdmpNV144wqAG9FYHd2rHQEgRbkYDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"pausable","path":"gno.land/p/demo/pausable","files":[{"name":"pausable.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\ntype Pausable struct {\n\t*ownable.Ownable\n\tpaused bool\n}\n\n// New returns a new Pausable struct with non-paused state as default\nfunc New() *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable.New(),\n\t\tpaused: false,\n\t}\n}\n\n// NewFromOwnable is the same as New, but with a pre-existing top-level ownable\nfunc NewFromOwnable(ownable *ownable.Ownable) *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable,\n\t\tpaused: false,\n\t}\n}\n\n// IsPaused checks if Pausable is paused\nfunc (p Pausable) IsPaused() bool {\n\treturn p.paused\n}\n\n// Pause sets the state of Pausable to true, meaning all pausable functions are paused\nfunc (p *Pausable) Pause() error {\n\tif err := p.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\n\tp.paused = true\n\tstd.Emit(\"Paused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n\n// Unpause sets the state of Pausable to false, meaning all pausable functions are resumed\nfunc (p *Pausable) Unpause() error {\n\tif err := p.CallerIsOwner(); err != nil {\n\t\treturn err\n\t}\n\n\tp.paused = false\n\tstd.Emit(\"Unpaused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n"},{"name":"pausable_test.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tfirstCaller = std.Address(\"g1l9aypkr8xfvs82zeux486ddzec88ty69lue9de\")\n\tsecondCaller = std.Address(\"g127jydsh6cms3lrtdenydxsckh23a8d6emqcvfa\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\n\turequire.False(t, result.paused, \"Expected result to be unpaused\")\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestNewFromOwnable(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\to := ownable.New()\n\n\tstd.TestSetOrigCaller(secondCaller)\n\tresult := NewFromOwnable(o)\n\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestSetUnpaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Unpause()\n\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n}\n\nfunc TestSetPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Pause()\n\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n\nfunc TestIsPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n\n\tresult.Pause()\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZmAE9Qr891vG4brMzbBWCLjmy2FPgHH+PsOCGoq0S8Zd5oJR9BxvdUvlGdmpNV144wqAG9FYHd2rHQEgRbkYDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"poa","path":"gno.land/p/nt/poa","files":[{"name":"option.gno","body":"package poa\n\nimport \"gno.land/p/sys/validators\"\n\ntype Option func(*PoA)\n\n// WithInitialSet sets the initial PoA validator set\nfunc WithInitialSet(validators []validators.Validator) Option {\n\treturn func(p *PoA) {\n\t\tfor _, validator := range validators {\n\t\t\tp.validators.Set(validator.Address.String(), validator)\n\t\t}\n\t}\n}\n"},{"name":"poa.gno","body":"package poa\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar ErrInvalidVotingPower = errors.New(\"invalid voting power\")\n\n// PoA specifies the Proof of Authority validator set, with simple add / remove constraints.\n//\n// To add:\n// - proposed validator must not be part of the set already\n// - proposed validator voting power must be \u003e 0\n//\n// To remove:\n// - proposed validator must be part of the set already\ntype PoA struct {\n\tvalidators *avl.Tree // std.Address -\u003e validators.Validator\n}\n\n// NewPoA creates a new empty Proof of Authority validator set\nfunc NewPoA(opts ...Option) *PoA {\n\t// Create the empty set\n\tp := \u0026PoA{\n\t\tvalidators: avl.NewTree(),\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(p)\n\t}\n\n\treturn p\n}\n\nfunc (p *PoA) AddValidator(address std.Address, pubKey string, power uint64) (validators.Validator, error) {\n\t// Validate that the operation is a valid call.\n\t// Check if the validator is already in the set\n\tif p.IsValidator(address) {\n\t\treturn validators.Validator{}, validators.ErrValidatorExists\n\t}\n\n\t// Make sure the voting power \u003e 0\n\tif power == 0 {\n\t\treturn validators.Validator{}, ErrInvalidVotingPower\n\t}\n\n\tv := validators.Validator{\n\t\tAddress: address,\n\t\tPubKey: pubKey, // TODO: in the future, verify the public key\n\t\tVotingPower: power,\n\t}\n\n\t// Add the validator to the set\n\tp.validators.Set(address.String(), v)\n\n\treturn v, nil\n}\n\nfunc (p *PoA) RemoveValidator(address std.Address) (validators.Validator, error) {\n\t// Validate that the operation is a valid call\n\t// Fetch the validator\n\tvalidator, err := p.GetValidator(address)\n\tif err != nil {\n\t\treturn validators.Validator{}, err\n\t}\n\n\t// Remove the validator from the set\n\tp.validators.Remove(address.String())\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) IsValidator(address std.Address) bool {\n\t_, exists := p.validators.Get(address.String())\n\n\treturn exists\n}\n\nfunc (p *PoA) GetValidator(address std.Address) (validators.Validator, error) {\n\tvalidatorRaw, exists := p.validators.Get(address.String())\n\tif !exists {\n\t\treturn validators.Validator{}, validators.ErrValidatorMissing\n\t}\n\n\tvalidator := validatorRaw.(validators.Validator)\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) GetValidators() []validators.Validator {\n\tvals := make([]validators.Validator, 0, p.validators.Size())\n\n\tp.validators.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvalidator := value.(validators.Validator)\n\t\tvals = append(vals, validator)\n\n\t\treturn false\n\t})\n\n\treturn vals\n}\n"},{"name":"poa_test.gno","body":"package poa\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/sys/validators\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 1,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestPoA_AddValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator already in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\t\tinitialSet[0].PubKey = proposalKey\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorExists)\n\t})\n\n\tt.Run(\"invalid voting power\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\t\t)\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 0)\n\t\tuassert.ErrorIs(t, err, ErrInvalidVotingPower)\n\t})\n}\n\nfunc TestPoA_AddValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tproposalKey = \"public-key\"\n\t)\n\n\t// Create the protocol with no initial set\n\tp := NewPoA()\n\n\t// Attempt to add the validator\n\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\tuassert.NoError(t, err)\n\n\t// Make sure the validator is added\n\tif !p.IsValidator(proposalAddress) || p.validators.Size() != 1 {\n\t\tt.Fatal(\"address is not validator\")\n\t}\n}\n\nfunc TestPoA_RemoveValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"proposed removal not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to remove the validator\n\t\t_, err := p.RemoveValidator(testutils.TestAddress(\"totally random\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n}\n\nfunc TestPoA_RemoveValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tinitialSet = generateTestValidators(1)\n\t)\n\n\tinitialSet[0].Address = proposalAddress\n\n\t// Create the protocol with an initial set\n\tp := NewPoA(WithInitialSet(initialSet))\n\n\t// Attempt to remove the validator\n\t_, err := p.RemoveValidator(proposalAddress)\n\turequire.NoError(t, err)\n\n\t// Make sure the validator is removed\n\tif p.IsValidator(proposalAddress) || p.validators.Size() != 0 {\n\t\tt.Fatal(\"address is validator\")\n\t}\n}\n\nfunc TestPoA_GetValidator(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\t_, err := p.GetValidator(testutils.TestAddress(\"caller\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n\n\tt.Run(\"validator fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\taddress = testutils.TestAddress(\"caller\")\n\t\t\tpubKey = \"public-key\"\n\t\t\tvotingPower = uint64(10)\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = address\n\t\tinitialSet[0].PubKey = pubKey\n\t\tinitialSet[0].VotingPower = votingPower\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator\n\t\tval, err := p.GetValidator(address)\n\t\turequire.NoError(t, err)\n\n\t\t// Validate the address\n\t\tif val.Address != address {\n\t\t\tt.Fatal(\"invalid address\")\n\t\t}\n\n\t\t// Validate the voting power\n\t\tif val.VotingPower != votingPower {\n\t\t\tt.Fatal(\"invalid voting power\")\n\t\t}\n\n\t\t// Validate the public key\n\t\tif val.PubKey != pubKey {\n\t\t\tt.Fatal(\"invalid public key\")\n\t\t}\n\t})\n}\n\nfunc TestPoA_GetValidators(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != 0 {\n\t\t\tt.Fatal(\"validator set is not empty\")\n\t\t}\n\t})\n\n\tt.Run(\"validator set fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tinitialSet := generateTestValidators(10)\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator set\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != len(initialSet) {\n\t\t\tt.Fatal(\"returned validator set mismatch\")\n\t\t}\n\n\t\tfor _, val := range vals {\n\t\t\tfor _, initialVal := range initialSet {\n\t\t\t\tif val.Address != initialVal.Address {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Validate the voting power\n\t\t\t\tuassert.Equal(t, val.VotingPower, initialVal.VotingPower)\n\n\t\t\t\t// Validate the public key\n\t\t\t\tuassert.Equal(t, val.PubKey, initialVal.PubKey)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yT6nYoRIEvMiJVIcWDrBKE/dJ6/D9x/Njewy3K6q8/paom6M33N3c1T/l+smBOaZx82Z15bZhFQbp+iB7Kl7Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"poa","path":"gno.land/p/nt/poa","files":[{"name":"option.gno","body":"package poa\n\nimport \"gno.land/p/sys/validators\"\n\ntype Option func(*PoA)\n\n// WithInitialSet sets the initial PoA validator set\nfunc WithInitialSet(validators []validators.Validator) Option {\n\treturn func(p *PoA) {\n\t\tfor _, validator := range validators {\n\t\t\tp.validators.Set(validator.Address.String(), validator)\n\t\t}\n\t}\n}\n"},{"name":"poa.gno","body":"package poa\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar ErrInvalidVotingPower = errors.New(\"invalid voting power\")\n\n// PoA specifies the Proof of Authority validator set, with simple add / remove constraints.\n//\n// To add:\n// - proposed validator must not be part of the set already\n// - proposed validator voting power must be \u003e 0\n//\n// To remove:\n// - proposed validator must be part of the set already\ntype PoA struct {\n\tvalidators *avl.Tree // std.Address -\u003e validators.Validator\n}\n\n// NewPoA creates a new empty Proof of Authority validator set\nfunc NewPoA(opts ...Option) *PoA {\n\t// Create the empty set\n\tp := \u0026PoA{\n\t\tvalidators: avl.NewTree(),\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(p)\n\t}\n\n\treturn p\n}\n\nfunc (p *PoA) AddValidator(address std.Address, pubKey string, power uint64) (validators.Validator, error) {\n\t// Validate that the operation is a valid call.\n\t// Check if the validator is already in the set\n\tif p.IsValidator(address) {\n\t\treturn validators.Validator{}, validators.ErrValidatorExists\n\t}\n\n\t// Make sure the voting power \u003e 0\n\tif power == 0 {\n\t\treturn validators.Validator{}, ErrInvalidVotingPower\n\t}\n\n\tv := validators.Validator{\n\t\tAddress: address,\n\t\tPubKey: pubKey, // TODO: in the future, verify the public key\n\t\tVotingPower: power,\n\t}\n\n\t// Add the validator to the set\n\tp.validators.Set(address.String(), v)\n\n\treturn v, nil\n}\n\nfunc (p *PoA) RemoveValidator(address std.Address) (validators.Validator, error) {\n\t// Validate that the operation is a valid call\n\t// Fetch the validator\n\tvalidator, err := p.GetValidator(address)\n\tif err != nil {\n\t\treturn validators.Validator{}, err\n\t}\n\n\t// Remove the validator from the set\n\tp.validators.Remove(address.String())\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) IsValidator(address std.Address) bool {\n\t_, exists := p.validators.Get(address.String())\n\n\treturn exists\n}\n\nfunc (p *PoA) GetValidator(address std.Address) (validators.Validator, error) {\n\tvalidatorRaw, exists := p.validators.Get(address.String())\n\tif !exists {\n\t\treturn validators.Validator{}, validators.ErrValidatorMissing\n\t}\n\n\tvalidator := validatorRaw.(validators.Validator)\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) GetValidators() []validators.Validator {\n\tvals := make([]validators.Validator, 0, p.validators.Size())\n\n\tp.validators.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvalidator := value.(validators.Validator)\n\t\tvals = append(vals, validator)\n\n\t\treturn false\n\t})\n\n\treturn vals\n}\n"},{"name":"poa_test.gno","body":"package poa\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/sys/validators\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 1,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestPoA_AddValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator already in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\t\tinitialSet[0].PubKey = proposalKey\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorExists)\n\t})\n\n\tt.Run(\"invalid voting power\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\t\t)\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 0)\n\t\tuassert.ErrorIs(t, err, ErrInvalidVotingPower)\n\t})\n}\n\nfunc TestPoA_AddValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tproposalKey = \"public-key\"\n\t)\n\n\t// Create the protocol with no initial set\n\tp := NewPoA()\n\n\t// Attempt to add the validator\n\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\tuassert.NoError(t, err)\n\n\t// Make sure the validator is added\n\tif !p.IsValidator(proposalAddress) || p.validators.Size() != 1 {\n\t\tt.Fatal(\"address is not validator\")\n\t}\n}\n\nfunc TestPoA_RemoveValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"proposed removal not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to remove the validator\n\t\t_, err := p.RemoveValidator(testutils.TestAddress(\"totally random\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n}\n\nfunc TestPoA_RemoveValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tinitialSet = generateTestValidators(1)\n\t)\n\n\tinitialSet[0].Address = proposalAddress\n\n\t// Create the protocol with an initial set\n\tp := NewPoA(WithInitialSet(initialSet))\n\n\t// Attempt to remove the validator\n\t_, err := p.RemoveValidator(proposalAddress)\n\turequire.NoError(t, err)\n\n\t// Make sure the validator is removed\n\tif p.IsValidator(proposalAddress) || p.validators.Size() != 0 {\n\t\tt.Fatal(\"address is validator\")\n\t}\n}\n\nfunc TestPoA_GetValidator(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\t_, err := p.GetValidator(testutils.TestAddress(\"caller\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n\n\tt.Run(\"validator fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\taddress = testutils.TestAddress(\"caller\")\n\t\t\tpubKey = \"public-key\"\n\t\t\tvotingPower = uint64(10)\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = address\n\t\tinitialSet[0].PubKey = pubKey\n\t\tinitialSet[0].VotingPower = votingPower\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator\n\t\tval, err := p.GetValidator(address)\n\t\turequire.NoError(t, err)\n\n\t\t// Validate the address\n\t\tif val.Address != address {\n\t\t\tt.Fatal(\"invalid address\")\n\t\t}\n\n\t\t// Validate the voting power\n\t\tif val.VotingPower != votingPower {\n\t\t\tt.Fatal(\"invalid voting power\")\n\t\t}\n\n\t\t// Validate the public key\n\t\tif val.PubKey != pubKey {\n\t\t\tt.Fatal(\"invalid public key\")\n\t\t}\n\t})\n}\n\nfunc TestPoA_GetValidators(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != 0 {\n\t\t\tt.Fatal(\"validator set is not empty\")\n\t\t}\n\t})\n\n\tt.Run(\"validator set fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tinitialSet := generateTestValidators(10)\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator set\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != len(initialSet) {\n\t\t\tt.Fatal(\"returned validator set mismatch\")\n\t\t}\n\n\t\tfor _, val := range vals {\n\t\t\tfor _, initialVal := range initialSet {\n\t\t\t\tif val.Address != initialVal.Address {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Validate the voting power\n\t\t\t\tuassert.Equal(t, val.VotingPower, initialVal.VotingPower)\n\n\t\t\t\t// Validate the public key\n\t\t\t\tuassert.Equal(t, val.PubKey, initialVal.PubKey)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yT6nYoRIEvMiJVIcWDrBKE/dJ6/D9x/Njewy3K6q8/paom6M33N3c1T/l+smBOaZx82Z15bZhFQbp+iB7Kl7Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"poa","path":"gno.land/p/nt/poa","files":[{"name":"option.gno","body":"package poa\n\nimport \"gno.land/p/sys/validators\"\n\ntype Option func(*PoA)\n\n// WithInitialSet sets the initial PoA validator set\nfunc WithInitialSet(validators []validators.Validator) Option {\n\treturn func(p *PoA) {\n\t\tfor _, validator := range validators {\n\t\t\tp.validators.Set(validator.Address.String(), validator)\n\t\t}\n\t}\n}\n"},{"name":"poa.gno","body":"package poa\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar ErrInvalidVotingPower = errors.New(\"invalid voting power\")\n\n// PoA specifies the Proof of Authority validator set, with simple add / remove constraints.\n//\n// To add:\n// - proposed validator must not be part of the set already\n// - proposed validator voting power must be \u003e 0\n//\n// To remove:\n// - proposed validator must be part of the set already\ntype PoA struct {\n\tvalidators *avl.Tree // std.Address -\u003e validators.Validator\n}\n\n// NewPoA creates a new empty Proof of Authority validator set\nfunc NewPoA(opts ...Option) *PoA {\n\t// Create the empty set\n\tp := \u0026PoA{\n\t\tvalidators: avl.NewTree(),\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(p)\n\t}\n\n\treturn p\n}\n\nfunc (p *PoA) AddValidator(address std.Address, pubKey string, power uint64) (validators.Validator, error) {\n\t// Validate that the operation is a valid call.\n\t// Check if the validator is already in the set\n\tif p.IsValidator(address) {\n\t\treturn validators.Validator{}, validators.ErrValidatorExists\n\t}\n\n\t// Make sure the voting power \u003e 0\n\tif power == 0 {\n\t\treturn validators.Validator{}, ErrInvalidVotingPower\n\t}\n\n\tv := validators.Validator{\n\t\tAddress: address,\n\t\tPubKey: pubKey, // TODO: in the future, verify the public key\n\t\tVotingPower: power,\n\t}\n\n\t// Add the validator to the set\n\tp.validators.Set(address.String(), v)\n\n\treturn v, nil\n}\n\nfunc (p *PoA) RemoveValidator(address std.Address) (validators.Validator, error) {\n\t// Validate that the operation is a valid call\n\t// Fetch the validator\n\tvalidator, err := p.GetValidator(address)\n\tif err != nil {\n\t\treturn validators.Validator{}, err\n\t}\n\n\t// Remove the validator from the set\n\tp.validators.Remove(address.String())\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) IsValidator(address std.Address) bool {\n\t_, exists := p.validators.Get(address.String())\n\n\treturn exists\n}\n\nfunc (p *PoA) GetValidator(address std.Address) (validators.Validator, error) {\n\tvalidatorRaw, exists := p.validators.Get(address.String())\n\tif !exists {\n\t\treturn validators.Validator{}, validators.ErrValidatorMissing\n\t}\n\n\tvalidator := validatorRaw.(validators.Validator)\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) GetValidators() []validators.Validator {\n\tvals := make([]validators.Validator, 0, p.validators.Size())\n\n\tp.validators.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvalidator := value.(validators.Validator)\n\t\tvals = append(vals, validator)\n\n\t\treturn false\n\t})\n\n\treturn vals\n}\n"},{"name":"poa_test.gno","body":"package poa\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/sys/validators\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 1,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestPoA_AddValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator already in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\t\tinitialSet[0].PubKey = proposalKey\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorExists)\n\t})\n\n\tt.Run(\"invalid voting power\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\t\t)\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 0)\n\t\tuassert.ErrorIs(t, err, ErrInvalidVotingPower)\n\t})\n}\n\nfunc TestPoA_AddValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tproposalKey = \"public-key\"\n\t)\n\n\t// Create the protocol with no initial set\n\tp := NewPoA()\n\n\t// Attempt to add the validator\n\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\tuassert.NoError(t, err)\n\n\t// Make sure the validator is added\n\tif !p.IsValidator(proposalAddress) || p.validators.Size() != 1 {\n\t\tt.Fatal(\"address is not validator\")\n\t}\n}\n\nfunc TestPoA_RemoveValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"proposed removal not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to remove the validator\n\t\t_, err := p.RemoveValidator(testutils.TestAddress(\"totally random\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n}\n\nfunc TestPoA_RemoveValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tinitialSet = generateTestValidators(1)\n\t)\n\n\tinitialSet[0].Address = proposalAddress\n\n\t// Create the protocol with an initial set\n\tp := NewPoA(WithInitialSet(initialSet))\n\n\t// Attempt to remove the validator\n\t_, err := p.RemoveValidator(proposalAddress)\n\turequire.NoError(t, err)\n\n\t// Make sure the validator is removed\n\tif p.IsValidator(proposalAddress) || p.validators.Size() != 0 {\n\t\tt.Fatal(\"address is validator\")\n\t}\n}\n\nfunc TestPoA_GetValidator(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\t_, err := p.GetValidator(testutils.TestAddress(\"caller\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n\n\tt.Run(\"validator fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\taddress = testutils.TestAddress(\"caller\")\n\t\t\tpubKey = \"public-key\"\n\t\t\tvotingPower = uint64(10)\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = address\n\t\tinitialSet[0].PubKey = pubKey\n\t\tinitialSet[0].VotingPower = votingPower\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator\n\t\tval, err := p.GetValidator(address)\n\t\turequire.NoError(t, err)\n\n\t\t// Validate the address\n\t\tif val.Address != address {\n\t\t\tt.Fatal(\"invalid address\")\n\t\t}\n\n\t\t// Validate the voting power\n\t\tif val.VotingPower != votingPower {\n\t\t\tt.Fatal(\"invalid voting power\")\n\t\t}\n\n\t\t// Validate the public key\n\t\tif val.PubKey != pubKey {\n\t\t\tt.Fatal(\"invalid public key\")\n\t\t}\n\t})\n}\n\nfunc TestPoA_GetValidators(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != 0 {\n\t\t\tt.Fatal(\"validator set is not empty\")\n\t\t}\n\t})\n\n\tt.Run(\"validator set fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tinitialSet := generateTestValidators(10)\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator set\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != len(initialSet) {\n\t\t\tt.Fatal(\"returned validator set mismatch\")\n\t\t}\n\n\t\tfor _, val := range vals {\n\t\t\tfor _, initialVal := range initialSet {\n\t\t\t\tif val.Address != initialVal.Address {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Validate the voting power\n\t\t\t\tuassert.Equal(t, val.VotingPower, initialVal.VotingPower)\n\n\t\t\t\t// Validate the public key\n\t\t\t\tuassert.Equal(t, val.PubKey, initialVal.PubKey)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yT6nYoRIEvMiJVIcWDrBKE/dJ6/D9x/Njewy3K6q8/paom6M33N3c1T/l+smBOaZx82Z15bZhFQbp+iB7Kl7Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"present","path":"gno.land/r/manfred/present","files":[{"name":"admin.gno","body":"package present\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"present_miami23.gno","body":"package present\n\nfunc init() {\n\tpath := \"miami23\"\n\ttitle := \"Portal Loop Demo (Miami 2023)\"\n\tbody := `\nRendered by Gno.\n\n[Source (WIP)](https://github.com/gnolang/gno/pull/1176)\n\n## Portal Loop\n\n- DONE: Dynamic homepage, key pages, aliases, and redirects.\n- TODO: Deploy with history, complete worxdao v0.\n- Will replace the static gno.land site.\n- Enhances local development.\n\n[GitHub Issue](https://github.com/gnolang/gno/issues/1108)\n\n## Roadmap\n\n- Crafting the roadmap this week, open to collaboration.\n- Combining onchain (portal loop) and offchain (GitHub).\n- Next week: Unveiling the official v0 roadmap.\n\n## Teams, DAOs, Projects\n\n- Developing worxDAO contracts for directories of projects and teams.\n- GitHub teams and projects align with this structure.\n- CODEOWNER file updates coming.\n- Initial teams announced next week.\n\n## Tech Team Retreat Plan\n\n- Continue Portal Loop.\n- Consider dApp development.\n- Explore new topics [here](https://github.com/orgs/gnolang/projects/15/).\n- Engage in workshops.\n- Connect and have fun with colleagues.\n`\n\t_ = b.NewPost(adminAddr, path, title, body, \"2023-10-15T13:17:24Z\", []string{\"moul\"}, []string{\"demo\", \"portal-loop\", \"miami\"})\n}\n"},{"name":"present_miami23_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/manfred/present\"\n)\n\nfunc main() {\n\tprintln(present.Render(\"\"))\n\tprintln(\"------------------------------------\")\n\tprintln(present.Render(\"p/miami23\"))\n}\n"},{"name":"presentations.gno","body":"package present\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/present\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Manfred's Presentations\",\n\tPrefix: \"/r/manfred/present:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aQU+FpXDgH62jMluahH8mC109TqJWukvchAaYJYg/WnWiyI3Oy7IXAXs4aoF781MxPaEl9tB+6oL82MlcMUvCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"present","path":"gno.land/r/moul/present","files":[{"name":"admin.gno","body":"package present\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"present_miami23.gno","body":"package present\n\nfunc init() {\n\tpath := \"miami23\"\n\ttitle := \"Portal Loop Demo (Miami 2023)\"\n\tbody := `\nRendered by Gno.\n\n[Source (WIP)](https://github.com/gnolang/gno/pull/1176)\n\n## Portal Loop\n\n- DONE: Dynamic homepage, key pages, aliases, and redirects.\n- TODO: Deploy with history, complete worxdao v0.\n- Will replace the static gno.land site.\n- Enhances local development.\n\n[GitHub Issue](https://github.com/gnolang/gno/issues/1108)\n\n## Roadmap\n\n- Crafting the roadmap this week, open to collaboration.\n- Combining onchain (portal loop) and offchain (GitHub).\n- Next week: Unveiling the official v0 roadmap.\n\n## Teams, DAOs, Projects\n\n- Developing worxDAO contracts for directories of projects and teams.\n- GitHub teams and projects align with this structure.\n- CODEOWNER file updates coming.\n- Initial teams announced next week.\n\n## Tech Team Retreat Plan\n\n- Continue Portal Loop.\n- Consider dApp development.\n- Explore new topics [here](https://github.com/orgs/gnolang/projects/15/).\n- Engage in workshops.\n- Connect and have fun with colleagues.\n`\n\t_ = b.NewPost(adminAddr, path, title, body, \"2023-10-15T13:17:24Z\", []string{\"moul\"}, []string{\"demo\", \"portal-loop\", \"miami\"})\n}\n"},{"name":"present_miami23_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/moul/present\"\n)\n\nfunc main() {\n\tprintln(present.Render(\"\"))\n\tprintln(\"------------------------------------\")\n\tprintln(present.Render(\"p/miami23\"))\n}\n"},{"name":"presentations.gno","body":"package present\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/present\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Manfred's Presentations\",\n\tPrefix: \"/r/moul/present:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gnzwld7eFvoSaEc8oMLFZob4kCh+slFQ8R5XIywJdXrTknRj1AVoXvE9I9UWeY1mbnvO9ZbVBLjviRMe/+EJDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"present","path":"gno.land/r/moul/present","files":[{"name":"admin.gno","body":"package present\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"present_miami23.gno","body":"package present\n\nfunc init() {\n\tpath := \"miami23\"\n\ttitle := \"Portal Loop Demo (Miami 2023)\"\n\tbody := `\nRendered by Gno.\n\n[Source (WIP)](https://github.com/gnolang/gno/pull/1176)\n\n## Portal Loop\n\n- DONE: Dynamic homepage, key pages, aliases, and redirects.\n- TODO: Deploy with history, complete worxdao v0.\n- Will replace the static gno.land site.\n- Enhances local development.\n\n[GitHub Issue](https://github.com/gnolang/gno/issues/1108)\n\n## Roadmap\n\n- Crafting the roadmap this week, open to collaboration.\n- Combining onchain (portal loop) and offchain (GitHub).\n- Next week: Unveiling the official v0 roadmap.\n\n## Teams, DAOs, Projects\n\n- Developing worxDAO contracts for directories of projects and teams.\n- GitHub teams and projects align with this structure.\n- CODEOWNER file updates coming.\n- Initial teams announced next week.\n\n## Tech Team Retreat Plan\n\n- Continue Portal Loop.\n- Consider dApp development.\n- Explore new topics [here](https://github.com/orgs/gnolang/projects/15/).\n- Engage in workshops.\n- Connect and have fun with colleagues.\n`\n\t_ = b.NewPost(adminAddr, path, title, body, \"2023-10-15T13:17:24Z\", []string{\"moul\"}, []string{\"demo\", \"portal-loop\", \"miami\"})\n}\n"},{"name":"present_miami23_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/moul/present\"\n)\n\nfunc main() {\n\tprintln(present.Render(\"\"))\n\tprintln(\"------------------------------------\")\n\tprintln(present.Render(\"p/miami23\"))\n}\n"},{"name":"presentations.gno","body":"package present\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/present\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Manfred's Presentations\",\n\tPrefix: \"/r/moul/present:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gnzwld7eFvoSaEc8oMLFZob4kCh+slFQ8R5XIywJdXrTknRj1AVoXvE9I9UWeY1mbnvO9ZbVBLjviRMe/+EJDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"printfdebugging","path":"gno.land/p/demo/printfdebugging","files":[{"name":"color.gno","body":"package printfdebugging\n\n// consts copied from https://github.com/fatih/color/blob/main/color.go\n\n// Attribute defines a single SGR Code\ntype Attribute int\n\nconst Escape = \"\\x1b\"\n\n// Base attributes\nconst (\n\tReset Attribute = iota\n\tBold\n\tFaint\n\tItalic\n\tUnderline\n\tBlinkSlow\n\tBlinkRapid\n\tReverseVideo\n\tConcealed\n\tCrossedOut\n)\n\nconst (\n\tResetBold Attribute = iota + 22\n\tResetItalic\n\tResetUnderline\n\tResetBlinking\n\t_\n\tResetReversed\n\tResetConcealed\n\tResetCrossedOut\n)\n\n// Foreground text colors\nconst (\n\tFgBlack Attribute = iota + 30\n\tFgRed\n\tFgGreen\n\tFgYellow\n\tFgBlue\n\tFgMagenta\n\tFgCyan\n\tFgWhite\n)\n\n// Foreground Hi-Intensity text colors\nconst (\n\tFgHiBlack Attribute = iota + 90\n\tFgHiRed\n\tFgHiGreen\n\tFgHiYellow\n\tFgHiBlue\n\tFgHiMagenta\n\tFgHiCyan\n\tFgHiWhite\n)\n\n// Background text colors\nconst (\n\tBgBlack Attribute = iota + 40\n\tBgRed\n\tBgGreen\n\tBgYellow\n\tBgBlue\n\tBgMagenta\n\tBgCyan\n\tBgWhite\n)\n\n// Background Hi-Intensity text colors\nconst (\n\tBgHiBlack Attribute = iota + 100\n\tBgHiRed\n\tBgHiGreen\n\tBgHiYellow\n\tBgHiBlue\n\tBgHiMagenta\n\tBgHiCyan\n\tBgHiWhite\n)\n"},{"name":"printfdebugging.gno","body":"// this package is a joke... or not.\npackage printfdebugging\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc BigRedLine(args ...string) {\n\tprintln(ufmt.Sprintf(\"%s[%dm####################################%s[%dm %s\",\n\t\tEscape, int(BgRed), Escape, int(Reset),\n\t\tstrings.Join(args, \" \"),\n\t))\n}\n\nfunc Success() {\n\tprintln(\" \\033[31mS\\033[33mU\\033[32mC\\033[36mC\\033[34mE\\033[35mS\\033[31mS\\033[0m \")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L/x3OVsbAT1IpEpAxOmranmtP8cHJ3rhYlwqP4o8DYbTtY8La3z+xu9Eszvwm8GF6Dur+FvozMzyfoWmhsjQCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"printfdebugging","path":"gno.land/p/demo/printfdebugging","files":[{"name":"color.gno","body":"package printfdebugging\n\n// consts copied from https://github.com/fatih/color/blob/main/color.go\n\n// Attribute defines a single SGR Code\ntype Attribute int\n\nconst Escape = \"\\x1b\"\n\n// Base attributes\nconst (\n\tReset Attribute = iota\n\tBold\n\tFaint\n\tItalic\n\tUnderline\n\tBlinkSlow\n\tBlinkRapid\n\tReverseVideo\n\tConcealed\n\tCrossedOut\n)\n\nconst (\n\tResetBold Attribute = iota + 22\n\tResetItalic\n\tResetUnderline\n\tResetBlinking\n\t_\n\tResetReversed\n\tResetConcealed\n\tResetCrossedOut\n)\n\n// Foreground text colors\nconst (\n\tFgBlack Attribute = iota + 30\n\tFgRed\n\tFgGreen\n\tFgYellow\n\tFgBlue\n\tFgMagenta\n\tFgCyan\n\tFgWhite\n)\n\n// Foreground Hi-Intensity text colors\nconst (\n\tFgHiBlack Attribute = iota + 90\n\tFgHiRed\n\tFgHiGreen\n\tFgHiYellow\n\tFgHiBlue\n\tFgHiMagenta\n\tFgHiCyan\n\tFgHiWhite\n)\n\n// Background text colors\nconst (\n\tBgBlack Attribute = iota + 40\n\tBgRed\n\tBgGreen\n\tBgYellow\n\tBgBlue\n\tBgMagenta\n\tBgCyan\n\tBgWhite\n)\n\n// Background Hi-Intensity text colors\nconst (\n\tBgHiBlack Attribute = iota + 100\n\tBgHiRed\n\tBgHiGreen\n\tBgHiYellow\n\tBgHiBlue\n\tBgHiMagenta\n\tBgHiCyan\n\tBgHiWhite\n)\n"},{"name":"printfdebugging.gno","body":"// this package is a joke... or not.\npackage printfdebugging\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc BigRedLine(args ...string) {\n\tprintln(ufmt.Sprintf(\"%s[%dm####################################%s[%dm %s\",\n\t\tEscape, int(BgRed), Escape, int(Reset),\n\t\tstrings.Join(args, \" \"),\n\t))\n}\n\nfunc Success() {\n\tprintln(\" \\033[31mS\\033[33mU\\033[32mC\\033[36mC\\033[34mE\\033[35mS\\033[31mS\\033[0m \")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L/x3OVsbAT1IpEpAxOmranmtP8cHJ3rhYlwqP4o8DYbTtY8La3z+xu9Eszvwm8GF6Dur+FvozMzyfoWmhsjQCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"printfdebugging","path":"gno.land/p/demo/printfdebugging","files":[{"name":"color.gno","body":"package printfdebugging\n\n// consts copied from https://github.com/fatih/color/blob/main/color.go\n\n// Attribute defines a single SGR Code\ntype Attribute int\n\nconst Escape = \"\\x1b\"\n\n// Base attributes\nconst (\n\tReset Attribute = iota\n\tBold\n\tFaint\n\tItalic\n\tUnderline\n\tBlinkSlow\n\tBlinkRapid\n\tReverseVideo\n\tConcealed\n\tCrossedOut\n)\n\nconst (\n\tResetBold Attribute = iota + 22\n\tResetItalic\n\tResetUnderline\n\tResetBlinking\n\t_\n\tResetReversed\n\tResetConcealed\n\tResetCrossedOut\n)\n\n// Foreground text colors\nconst (\n\tFgBlack Attribute = iota + 30\n\tFgRed\n\tFgGreen\n\tFgYellow\n\tFgBlue\n\tFgMagenta\n\tFgCyan\n\tFgWhite\n)\n\n// Foreground Hi-Intensity text colors\nconst (\n\tFgHiBlack Attribute = iota + 90\n\tFgHiRed\n\tFgHiGreen\n\tFgHiYellow\n\tFgHiBlue\n\tFgHiMagenta\n\tFgHiCyan\n\tFgHiWhite\n)\n\n// Background text colors\nconst (\n\tBgBlack Attribute = iota + 40\n\tBgRed\n\tBgGreen\n\tBgYellow\n\tBgBlue\n\tBgMagenta\n\tBgCyan\n\tBgWhite\n)\n\n// Background Hi-Intensity text colors\nconst (\n\tBgHiBlack Attribute = iota + 100\n\tBgHiRed\n\tBgHiGreen\n\tBgHiYellow\n\tBgHiBlue\n\tBgHiMagenta\n\tBgHiCyan\n\tBgHiWhite\n)\n"},{"name":"printfdebugging.gno","body":"// this package is a joke... or not.\npackage printfdebugging\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc BigRedLine(args ...string) {\n\tprintln(ufmt.Sprintf(\"%s[%dm####################################%s[%dm %s\",\n\t\tEscape, int(BgRed), Escape, int(Reset),\n\t\tstrings.Join(args, \" \"),\n\t))\n}\n\nfunc Success() {\n\tprintln(\" \\033[31mS\\033[33mU\\033[32mC\\033[36mC\\033[34mE\\033[35mS\\033[31mS\\033[0m \")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L/x3OVsbAT1IpEpAxOmranmtP8cHJ3rhYlwqP4o8DYbTtY8La3z+xu9Eszvwm8GF6Dur+FvozMzyfoWmhsjQCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"profile","path":"gno.land/r/demo/profile","files":[{"name":"profile.gno","body":"package profile\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tfields = avl.NewTree()\n\trouter = mux.NewRouter()\n)\n\n// Standard fields\nconst (\n\tDisplayName = \"DisplayName\"\n\tHomepage = \"Homepage\"\n\tBio = \"Bio\"\n\tAge = \"Age\"\n\tLocation = \"Location\"\n\tAvatar = \"Avatar\"\n\tGravatarEmail = \"GravatarEmail\"\n\tAvailableForHiring = \"AvailableForHiring\"\n\tInvalidField = \"InvalidField\"\n)\n\n// Events\nconst (\n\tProfileFieldCreated = \"ProfileFieldCreated\"\n\tProfileFieldUpdated = \"ProfileFieldUpdated\"\n)\n\n// Field types used when emitting event\nconst FieldType = \"FieldType\"\n\nconst (\n\tBoolField = \"BoolField\"\n\tStringField = \"StringField\"\n\tIntField = \"IntField\"\n)\n\nfunc init() {\n\trouter.HandleFunc(\"\", homeHandler)\n\trouter.HandleFunc(\"u/{addr}\", profileHandler)\n\trouter.HandleFunc(\"f/{addr}/{field}\", fieldHandler)\n}\n\n// List of supported string fields\nvar stringFields = map[string]bool{\n\tDisplayName: true,\n\tHomepage: true,\n\tBio: true,\n\tLocation: true,\n\tAvatar: true,\n\tGravatarEmail: true,\n}\n\n// List of support int fields\nvar intFields = map[string]bool{\n\tAge: true,\n}\n\n// List of support bool fields\nvar boolFields = map[string]bool{\n\tAvailableForHiring: true,\n}\n\n// Setters\n\nfunc SetStringField(field, value string) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, StringField, field, value)\n\n\treturn updated\n}\n\nfunc SetIntField(field string, value int) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, IntField, field, string(value))\n\n\treturn updated\n}\n\nfunc SetBoolField(field string, value bool) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, BoolField, field, ufmt.Sprintf(\"%t\", value))\n\n\treturn updated\n}\n\n// Getters\n\nfunc GetStringField(addr std.Address, field, def string) string {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn def\n}\n\nfunc GetBoolField(addr std.Address, field string, def bool) bool {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(bool)\n\t}\n\n\treturn def\n}\n\nfunc GetIntField(addr std.Address, field string, def int) int {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(int)\n\t}\n\n\treturn def\n}\n"},{"name":"profile_test.gno","body":"package profile\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\n// Global addresses for test users\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n\tdave = testutils.TestAddress(\"dave\")\n\teve = testutils.TestAddress(\"eve\")\n\tfrank = testutils.TestAddress(\"frank\")\n\tuser1 = testutils.TestAddress(\"user1\")\n\tuser2 = testutils.TestAddress(\"user2\")\n)\n\nfunc TestStringFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\t// Get before setting\n\tname := GetStringField(alice, DisplayName, \"anon\")\n\tuassert.Equal(t, \"anon\", name)\n\n\t// Set new key\n\tupdated := SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, false)\n\tupdated = SetStringField(Homepage, \"https://example.com\")\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tname = GetStringField(alice, DisplayName, \"anon\")\n\thomepage := GetStringField(alice, Homepage, \"\")\n\tbio := GetStringField(alice, Bio, \"42\")\n\n\tuassert.Equal(t, \"Alice foo\", name)\n\tuassert.Equal(t, \"https://example.com\", homepage)\n\tuassert.Equal(t, \"42\", bio)\n}\n\nfunc TestIntFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\n\t// Get before setting\n\tage := GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 25, age)\n\n\t// Set new key\n\tupdated := SetIntField(Age, 30)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetIntField(Age, 30)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tage = GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 30, age)\n}\n\nfunc TestBoolFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(charlie))\n\n\t// Get before setting\n\thiring := GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, false, hiring)\n\n\t// Set\n\tupdated := SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\thiring = GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, true, hiring)\n}\n\nfunc TestMultipleProfiles(t *testing.T) {\n\t// Set profile for user1\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\tupdated := SetStringField(DisplayName, \"User One\")\n\tuassert.Equal(t, updated, false)\n\n\t// Set profile for user2\n\tstd.TestSetRealm(std.NewUserRealm(user2))\n\tupdated = SetStringField(DisplayName, \"User Two\")\n\tuassert.Equal(t, updated, false)\n\n\t// Get profiles\n\tstd.TestSetRealm(std.NewUserRealm(user1)) // Switch back to user1\n\tname1 := GetStringField(user1, DisplayName, \"anon\")\n\tstd.TestSetRealm(std.NewUserRealm(user2)) // Switch back to user2\n\tname2 := GetStringField(user2, DisplayName, \"anon\")\n\n\tuassert.Equal(t, \"User One\", name1)\n\tuassert.Equal(t, \"User Two\", name2)\n}\n\nfunc TestArbitraryStringField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary string field\n\tupdated := SetStringField(\"MyEmail\", \"my@email.com\")\n\tuassert.Equal(t, updated, false)\n\n\tval := GetStringField(user1, \"MyEmail\", \"\")\n\tuassert.Equal(t, val, \"my@email.com\")\n}\n\nfunc TestArbitraryIntField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetIntField(\"MyIncome\", 100_000)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetIntField(user1, \"MyIncome\", 0)\n\tuassert.Equal(t, val, 100_000)\n}\n\nfunc TestArbitraryBoolField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetBoolField(\"IsWinner\", true)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetBoolField(user1, \"IsWinner\", false)\n\tuassert.Equal(t, val, true)\n}\n"},{"name":"render.gno","body":"package profile\n\nimport (\n\t\"bytes\"\n\t\"net/url\"\n\t\"std\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tBaseURL = \"/r/demo/profile\"\n\tSetStringFieldURL = BaseURL + \"$help\u0026func=SetStringField\u0026field=%s\"\n\tSetIntFieldURL = BaseURL + \"$help\u0026func=SetIntField\u0026field=%s\"\n\tSetBoolFieldURL = BaseURL + \"$help\u0026func=SetBoolField\u0026field=%s\"\n\tViewAllFieldsURL = BaseURL + \":u/%s\"\n\tViewFieldURL = BaseURL + \":f/%s/%s\"\n)\n\nfunc homeHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"## Setters\\n\")\n\tfor field := range stringFields {\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range intFields {\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s Field](%s)\\n\", field, link))\n\t}\n\n\tb.WriteString(\"\\n---\\n\\n\")\n\n\tres.Write(b.String())\n}\n\nfunc profileHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Profile %s\\n\", addr))\n\n\taddress := std.Address(addr)\n\n\tfor field := range stringFields {\n\t\tvalue := GetStringField(address, field, \"n/a\")\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range intFields {\n\t\tvalue := GetIntField(address, field, 0)\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %d [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tvalue := GetBoolField(address, field, false)\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %t [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tres.Write(b.String())\n}\n\nfunc fieldHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\tfield := req.GetVar(\"field\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Field %s for %s\\n\", field, addr))\n\n\taddress := std.Address(addr)\n\tvalue := \"n/a\"\n\tvar editLink string\n\n\tif _, ok := stringFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%s\", GetStringField(address, field, \"n/a\"))\n\t\teditLink = ufmt.Sprintf(SetStringFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, url.QueryEscape(value))\n\t} else if _, ok := intFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%d\", GetIntField(address, field, 0))\n\t\teditLink = ufmt.Sprintf(SetIntFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t} else if _, ok := boolFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%t\", GetBoolField(address, field, false))\n\t\teditLink = ufmt.Sprintf(SetBoolFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t}\n\n\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, editLink))\n\n\tres.Write(b.String())\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bpJHdpqL4RNLV2wFcWeO77OVzApWiDrq5XsYwdncsRNkMKzI/od+TP3J0cDo59YAX+nMAlPWD5/qZGmN2CEdDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"profile","path":"gno.land/r/demo/profile","files":[{"name":"profile.gno","body":"package profile\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tfields = avl.NewTree()\n\trouter = mux.NewRouter()\n)\n\n// Standard fields\nconst (\n\tDisplayName = \"DisplayName\"\n\tHomepage = \"Homepage\"\n\tBio = \"Bio\"\n\tAge = \"Age\"\n\tLocation = \"Location\"\n\tAvatar = \"Avatar\"\n\tGravatarEmail = \"GravatarEmail\"\n\tAvailableForHiring = \"AvailableForHiring\"\n\tInvalidField = \"InvalidField\"\n)\n\n// Events\nconst (\n\tProfileFieldCreated = \"ProfileFieldCreated\"\n\tProfileFieldUpdated = \"ProfileFieldUpdated\"\n)\n\n// Field types used when emitting event\nconst FieldType = \"FieldType\"\n\nconst (\n\tBoolField = \"BoolField\"\n\tStringField = \"StringField\"\n\tIntField = \"IntField\"\n)\n\nfunc init() {\n\trouter.HandleFunc(\"\", homeHandler)\n\trouter.HandleFunc(\"u/{addr}\", profileHandler)\n\trouter.HandleFunc(\"f/{addr}/{field}\", fieldHandler)\n}\n\n// List of supported string fields\nvar stringFields = map[string]bool{\n\tDisplayName: true,\n\tHomepage: true,\n\tBio: true,\n\tLocation: true,\n\tAvatar: true,\n\tGravatarEmail: true,\n}\n\n// List of support int fields\nvar intFields = map[string]bool{\n\tAge: true,\n}\n\n// List of support bool fields\nvar boolFields = map[string]bool{\n\tAvailableForHiring: true,\n}\n\n// Setters\n\nfunc SetStringField(field, value string) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, StringField, field, value)\n\n\treturn updated\n}\n\nfunc SetIntField(field string, value int) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, IntField, field, string(value))\n\n\treturn updated\n}\n\nfunc SetBoolField(field string, value bool) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, BoolField, field, ufmt.Sprintf(\"%t\", value))\n\n\treturn updated\n}\n\n// Getters\n\nfunc GetStringField(addr std.Address, field, def string) string {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn def\n}\n\nfunc GetBoolField(addr std.Address, field string, def bool) bool {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(bool)\n\t}\n\n\treturn def\n}\n\nfunc GetIntField(addr std.Address, field string, def int) int {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(int)\n\t}\n\n\treturn def\n}\n"},{"name":"profile_test.gno","body":"package profile\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\n// Global addresses for test users\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n\tdave = testutils.TestAddress(\"dave\")\n\teve = testutils.TestAddress(\"eve\")\n\tfrank = testutils.TestAddress(\"frank\")\n\tuser1 = testutils.TestAddress(\"user1\")\n\tuser2 = testutils.TestAddress(\"user2\")\n)\n\nfunc TestStringFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\t// Get before setting\n\tname := GetStringField(alice, DisplayName, \"anon\")\n\tuassert.Equal(t, \"anon\", name)\n\n\t// Set new key\n\tupdated := SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, false)\n\tupdated = SetStringField(Homepage, \"https://example.com\")\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tname = GetStringField(alice, DisplayName, \"anon\")\n\thomepage := GetStringField(alice, Homepage, \"\")\n\tbio := GetStringField(alice, Bio, \"42\")\n\n\tuassert.Equal(t, \"Alice foo\", name)\n\tuassert.Equal(t, \"https://example.com\", homepage)\n\tuassert.Equal(t, \"42\", bio)\n}\n\nfunc TestIntFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\n\t// Get before setting\n\tage := GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 25, age)\n\n\t// Set new key\n\tupdated := SetIntField(Age, 30)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetIntField(Age, 30)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tage = GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 30, age)\n}\n\nfunc TestBoolFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(charlie))\n\n\t// Get before setting\n\thiring := GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, false, hiring)\n\n\t// Set\n\tupdated := SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\thiring = GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, true, hiring)\n}\n\nfunc TestMultipleProfiles(t *testing.T) {\n\t// Set profile for user1\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\tupdated := SetStringField(DisplayName, \"User One\")\n\tuassert.Equal(t, updated, false)\n\n\t// Set profile for user2\n\tstd.TestSetRealm(std.NewUserRealm(user2))\n\tupdated = SetStringField(DisplayName, \"User Two\")\n\tuassert.Equal(t, updated, false)\n\n\t// Get profiles\n\tstd.TestSetRealm(std.NewUserRealm(user1)) // Switch back to user1\n\tname1 := GetStringField(user1, DisplayName, \"anon\")\n\tstd.TestSetRealm(std.NewUserRealm(user2)) // Switch back to user2\n\tname2 := GetStringField(user2, DisplayName, \"anon\")\n\n\tuassert.Equal(t, \"User One\", name1)\n\tuassert.Equal(t, \"User Two\", name2)\n}\n\nfunc TestArbitraryStringField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary string field\n\tupdated := SetStringField(\"MyEmail\", \"my@email.com\")\n\tuassert.Equal(t, updated, false)\n\n\tval := GetStringField(user1, \"MyEmail\", \"\")\n\tuassert.Equal(t, val, \"my@email.com\")\n}\n\nfunc TestArbitraryIntField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetIntField(\"MyIncome\", 100_000)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetIntField(user1, \"MyIncome\", 0)\n\tuassert.Equal(t, val, 100_000)\n}\n\nfunc TestArbitraryBoolField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetBoolField(\"IsWinner\", true)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetBoolField(user1, \"IsWinner\", false)\n\tuassert.Equal(t, val, true)\n}\n"},{"name":"render.gno","body":"package profile\n\nimport (\n\t\"bytes\"\n\t\"net/url\"\n\t\"std\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tBaseURL = \"/r/demo/profile\"\n\tSetStringFieldURL = BaseURL + \"$help\u0026func=SetStringField\u0026field=%s\"\n\tSetIntFieldURL = BaseURL + \"$help\u0026func=SetIntField\u0026field=%s\"\n\tSetBoolFieldURL = BaseURL + \"$help\u0026func=SetBoolField\u0026field=%s\"\n\tViewAllFieldsURL = BaseURL + \":u/%s\"\n\tViewFieldURL = BaseURL + \":f/%s/%s\"\n)\n\nfunc homeHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"## Setters\\n\")\n\tfor field := range stringFields {\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range intFields {\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s Field](%s)\\n\", field, link))\n\t}\n\n\tb.WriteString(\"\\n---\\n\\n\")\n\n\tres.Write(b.String())\n}\n\nfunc profileHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Profile %s\\n\", addr))\n\n\taddress := std.Address(addr)\n\n\tfor field := range stringFields {\n\t\tvalue := GetStringField(address, field, \"n/a\")\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range intFields {\n\t\tvalue := GetIntField(address, field, 0)\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %d [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tvalue := GetBoolField(address, field, false)\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %t [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tres.Write(b.String())\n}\n\nfunc fieldHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\tfield := req.GetVar(\"field\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Field %s for %s\\n\", field, addr))\n\n\taddress := std.Address(addr)\n\tvalue := \"n/a\"\n\tvar editLink string\n\n\tif _, ok := stringFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%s\", GetStringField(address, field, \"n/a\"))\n\t\teditLink = ufmt.Sprintf(SetStringFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, url.QueryEscape(value))\n\t} else if _, ok := intFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%d\", GetIntField(address, field, 0))\n\t\teditLink = ufmt.Sprintf(SetIntFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t} else if _, ok := boolFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%t\", GetBoolField(address, field, false))\n\t\teditLink = ufmt.Sprintf(SetBoolFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t}\n\n\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, editLink))\n\n\tres.Write(b.String())\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bpJHdpqL4RNLV2wFcWeO77OVzApWiDrq5XsYwdncsRNkMKzI/od+TP3J0cDo59YAX+nMAlPWD5/qZGmN2CEdDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"profile","path":"gno.land/r/demo/profile","files":[{"name":"profile.gno","body":"package profile\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tfields = avl.NewTree()\n\trouter = mux.NewRouter()\n)\n\n// Standard fields\nconst (\n\tDisplayName = \"DisplayName\"\n\tHomepage = \"Homepage\"\n\tBio = \"Bio\"\n\tAge = \"Age\"\n\tLocation = \"Location\"\n\tAvatar = \"Avatar\"\n\tGravatarEmail = \"GravatarEmail\"\n\tAvailableForHiring = \"AvailableForHiring\"\n\tInvalidField = \"InvalidField\"\n)\n\n// Events\nconst (\n\tProfileFieldCreated = \"ProfileFieldCreated\"\n\tProfileFieldUpdated = \"ProfileFieldUpdated\"\n)\n\n// Field types used when emitting event\nconst FieldType = \"FieldType\"\n\nconst (\n\tBoolField = \"BoolField\"\n\tStringField = \"StringField\"\n\tIntField = \"IntField\"\n)\n\nfunc init() {\n\trouter.HandleFunc(\"\", homeHandler)\n\trouter.HandleFunc(\"u/{addr}\", profileHandler)\n\trouter.HandleFunc(\"f/{addr}/{field}\", fieldHandler)\n}\n\n// List of supported string fields\nvar stringFields = map[string]bool{\n\tDisplayName: true,\n\tHomepage: true,\n\tBio: true,\n\tLocation: true,\n\tAvatar: true,\n\tGravatarEmail: true,\n}\n\n// List of support int fields\nvar intFields = map[string]bool{\n\tAge: true,\n}\n\n// List of support bool fields\nvar boolFields = map[string]bool{\n\tAvailableForHiring: true,\n}\n\n// Setters\n\nfunc SetStringField(field, value string) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, StringField, field, value)\n\n\treturn updated\n}\n\nfunc SetIntField(field string, value int) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, IntField, field, string(value))\n\n\treturn updated\n}\n\nfunc SetBoolField(field string, value bool) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, BoolField, field, ufmt.Sprintf(\"%t\", value))\n\n\treturn updated\n}\n\n// Getters\n\nfunc GetStringField(addr std.Address, field, def string) string {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn def\n}\n\nfunc GetBoolField(addr std.Address, field string, def bool) bool {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(bool)\n\t}\n\n\treturn def\n}\n\nfunc GetIntField(addr std.Address, field string, def int) int {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(int)\n\t}\n\n\treturn def\n}\n"},{"name":"profile_test.gno","body":"package profile\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\n// Global addresses for test users\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n\tdave = testutils.TestAddress(\"dave\")\n\teve = testutils.TestAddress(\"eve\")\n\tfrank = testutils.TestAddress(\"frank\")\n\tuser1 = testutils.TestAddress(\"user1\")\n\tuser2 = testutils.TestAddress(\"user2\")\n)\n\nfunc TestStringFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\t// Get before setting\n\tname := GetStringField(alice, DisplayName, \"anon\")\n\tuassert.Equal(t, \"anon\", name)\n\n\t// Set new key\n\tupdated := SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, false)\n\tupdated = SetStringField(Homepage, \"https://example.com\")\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tname = GetStringField(alice, DisplayName, \"anon\")\n\thomepage := GetStringField(alice, Homepage, \"\")\n\tbio := GetStringField(alice, Bio, \"42\")\n\n\tuassert.Equal(t, \"Alice foo\", name)\n\tuassert.Equal(t, \"https://example.com\", homepage)\n\tuassert.Equal(t, \"42\", bio)\n}\n\nfunc TestIntFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\n\t// Get before setting\n\tage := GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 25, age)\n\n\t// Set new key\n\tupdated := SetIntField(Age, 30)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetIntField(Age, 30)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tage = GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 30, age)\n}\n\nfunc TestBoolFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(charlie))\n\n\t// Get before setting\n\thiring := GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, false, hiring)\n\n\t// Set\n\tupdated := SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\thiring = GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, true, hiring)\n}\n\nfunc TestMultipleProfiles(t *testing.T) {\n\t// Set profile for user1\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\tupdated := SetStringField(DisplayName, \"User One\")\n\tuassert.Equal(t, updated, false)\n\n\t// Set profile for user2\n\tstd.TestSetRealm(std.NewUserRealm(user2))\n\tupdated = SetStringField(DisplayName, \"User Two\")\n\tuassert.Equal(t, updated, false)\n\n\t// Get profiles\n\tstd.TestSetRealm(std.NewUserRealm(user1)) // Switch back to user1\n\tname1 := GetStringField(user1, DisplayName, \"anon\")\n\tstd.TestSetRealm(std.NewUserRealm(user2)) // Switch back to user2\n\tname2 := GetStringField(user2, DisplayName, \"anon\")\n\n\tuassert.Equal(t, \"User One\", name1)\n\tuassert.Equal(t, \"User Two\", name2)\n}\n\nfunc TestArbitraryStringField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary string field\n\tupdated := SetStringField(\"MyEmail\", \"my@email.com\")\n\tuassert.Equal(t, updated, false)\n\n\tval := GetStringField(user1, \"MyEmail\", \"\")\n\tuassert.Equal(t, val, \"my@email.com\")\n}\n\nfunc TestArbitraryIntField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetIntField(\"MyIncome\", 100_000)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetIntField(user1, \"MyIncome\", 0)\n\tuassert.Equal(t, val, 100_000)\n}\n\nfunc TestArbitraryBoolField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetBoolField(\"IsWinner\", true)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetBoolField(user1, \"IsWinner\", false)\n\tuassert.Equal(t, val, true)\n}\n"},{"name":"render.gno","body":"package profile\n\nimport (\n\t\"bytes\"\n\t\"net/url\"\n\t\"std\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tBaseURL = \"/r/demo/profile\"\n\tSetStringFieldURL = BaseURL + \"$help\u0026func=SetStringField\u0026field=%s\"\n\tSetIntFieldURL = BaseURL + \"$help\u0026func=SetIntField\u0026field=%s\"\n\tSetBoolFieldURL = BaseURL + \"$help\u0026func=SetBoolField\u0026field=%s\"\n\tViewAllFieldsURL = BaseURL + \":u/%s\"\n\tViewFieldURL = BaseURL + \":f/%s/%s\"\n)\n\nfunc homeHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"## Setters\\n\")\n\tfor field := range stringFields {\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range intFields {\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s Field](%s)\\n\", field, link))\n\t}\n\n\tb.WriteString(\"\\n---\\n\\n\")\n\n\tres.Write(b.String())\n}\n\nfunc profileHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Profile %s\\n\", addr))\n\n\taddress := std.Address(addr)\n\n\tfor field := range stringFields {\n\t\tvalue := GetStringField(address, field, \"n/a\")\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range intFields {\n\t\tvalue := GetIntField(address, field, 0)\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %d [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tvalue := GetBoolField(address, field, false)\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %t [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tres.Write(b.String())\n}\n\nfunc fieldHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\tfield := req.GetVar(\"field\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Field %s for %s\\n\", field, addr))\n\n\taddress := std.Address(addr)\n\tvalue := \"n/a\"\n\tvar editLink string\n\n\tif _, ok := stringFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%s\", GetStringField(address, field, \"n/a\"))\n\t\teditLink = ufmt.Sprintf(SetStringFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, url.QueryEscape(value))\n\t} else if _, ok := intFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%d\", GetIntField(address, field, 0))\n\t\teditLink = ufmt.Sprintf(SetIntFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t} else if _, ok := boolFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%t\", GetBoolField(address, field, false))\n\t\teditLink = ufmt.Sprintf(SetBoolFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t}\n\n\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, editLink))\n\n\tres.Write(b.String())\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bpJHdpqL4RNLV2wFcWeO77OVzApWiDrq5XsYwdncsRNkMKzI/od+TP3J0cDo59YAX+nMAlPWD5/qZGmN2CEdDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"rat","path":"gno.land/p/demo/rat","files":[{"name":"maths.gno","body":"package rat\n\nconst (\n\tintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63) // 32 or 64\n\n\tMaxInt = 1\u003c\u003c(intSize-1) - 1\n\tMinInt = -1 \u003c\u003c (intSize - 1)\n\tMaxInt8 = 1\u003c\u003c7 - 1\n\tMinInt8 = -1 \u003c\u003c 7\n\tMaxInt16 = 1\u003c\u003c15 - 1\n\tMinInt16 = -1 \u003c\u003c 15\n\tMaxInt32 = 1\u003c\u003c31 - 1\n\tMinInt32 = -1 \u003c\u003c 31\n\tMaxInt64 = 1\u003c\u003c63 - 1\n\tMinInt64 = -1 \u003c\u003c 63\n\tMaxUint = 1\u003c\u003cintSize - 1\n\tMaxUint8 = 1\u003c\u003c8 - 1\n\tMaxUint16 = 1\u003c\u003c16 - 1\n\tMaxUint32 = 1\u003c\u003c32 - 1\n\tMaxUint64 = 1\u003c\u003c64 - 1\n)\n"},{"name":"rat.gno","body":"package rat\n\n//----------------------------------------\n// Rat fractions\n\n// represents a fraction.\ntype Rat struct {\n\tX int32\n\tY int32 // must be positive\n}\n\nfunc NewRat(x, y int32) Rat {\n\tif y \u003c= 0 {\n\t\tpanic(\"invalid std.Rat denominator\")\n\t}\n\treturn Rat{X: x, Y: y}\n}\n\nfunc (r1 Rat) IsValid() bool {\n\tif r1.Y \u003c= 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (r1 Rat) Cmp(r2 Rat) int {\n\tif !r1.IsValid() {\n\t\tpanic(\"invalid std.Rat left operand\")\n\t}\n\tif !r2.IsValid() {\n\t\tpanic(\"invalid std.Rat right operand\")\n\t}\n\tvar p1, p2 int64\n\tp1 = int64(r1.X) * int64(r2.Y)\n\tp2 = int64(r1.Y) * int64(r2.X)\n\tif p1 \u003c p2 {\n\t\treturn -1\n\t} else if p1 == p2 {\n\t\treturn 0\n\t} else {\n\t\treturn 1\n\t}\n}\n\n//func (r1 Rat) Plus(r2 Rat) Rat {\n// XXX\n//}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y/azsvl4zKqSI5nr7Dpp/B/nrN7p/hKZBSvY9PCG/AJ8DUNC5BNYBvKhYcce3pT0Gtplfq2+bmKafqbTAlj7CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"rat","path":"gno.land/p/demo/rat","files":[{"name":"maths.gno","body":"package rat\n\nconst (\n\tintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63) // 32 or 64\n\n\tMaxInt = 1\u003c\u003c(intSize-1) - 1\n\tMinInt = -1 \u003c\u003c (intSize - 1)\n\tMaxInt8 = 1\u003c\u003c7 - 1\n\tMinInt8 = -1 \u003c\u003c 7\n\tMaxInt16 = 1\u003c\u003c15 - 1\n\tMinInt16 = -1 \u003c\u003c 15\n\tMaxInt32 = 1\u003c\u003c31 - 1\n\tMinInt32 = -1 \u003c\u003c 31\n\tMaxInt64 = 1\u003c\u003c63 - 1\n\tMinInt64 = -1 \u003c\u003c 63\n\tMaxUint = 1\u003c\u003cintSize - 1\n\tMaxUint8 = 1\u003c\u003c8 - 1\n\tMaxUint16 = 1\u003c\u003c16 - 1\n\tMaxUint32 = 1\u003c\u003c32 - 1\n\tMaxUint64 = 1\u003c\u003c64 - 1\n)\n"},{"name":"rat.gno","body":"package rat\n\n//----------------------------------------\n// Rat fractions\n\n// represents a fraction.\ntype Rat struct {\n\tX int32\n\tY int32 // must be positive\n}\n\nfunc NewRat(x, y int32) Rat {\n\tif y \u003c= 0 {\n\t\tpanic(\"invalid std.Rat denominator\")\n\t}\n\treturn Rat{X: x, Y: y}\n}\n\nfunc (r1 Rat) IsValid() bool {\n\tif r1.Y \u003c= 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (r1 Rat) Cmp(r2 Rat) int {\n\tif !r1.IsValid() {\n\t\tpanic(\"invalid std.Rat left operand\")\n\t}\n\tif !r2.IsValid() {\n\t\tpanic(\"invalid std.Rat right operand\")\n\t}\n\tvar p1, p2 int64\n\tp1 = int64(r1.X) * int64(r2.Y)\n\tp2 = int64(r1.Y) * int64(r2.X)\n\tif p1 \u003c p2 {\n\t\treturn -1\n\t} else if p1 == p2 {\n\t\treturn 0\n\t} else {\n\t\treturn 1\n\t}\n}\n\n//func (r1 Rat) Plus(r2 Rat) Rat {\n// XXX\n//}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y/azsvl4zKqSI5nr7Dpp/B/nrN7p/hKZBSvY9PCG/AJ8DUNC5BNYBvKhYcce3pT0Gtplfq2+bmKafqbTAlj7CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"rat","path":"gno.land/p/demo/rat","files":[{"name":"maths.gno","body":"package rat\n\nconst (\n\tintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63) // 32 or 64\n\n\tMaxInt = 1\u003c\u003c(intSize-1) - 1\n\tMinInt = -1 \u003c\u003c (intSize - 1)\n\tMaxInt8 = 1\u003c\u003c7 - 1\n\tMinInt8 = -1 \u003c\u003c 7\n\tMaxInt16 = 1\u003c\u003c15 - 1\n\tMinInt16 = -1 \u003c\u003c 15\n\tMaxInt32 = 1\u003c\u003c31 - 1\n\tMinInt32 = -1 \u003c\u003c 31\n\tMaxInt64 = 1\u003c\u003c63 - 1\n\tMinInt64 = -1 \u003c\u003c 63\n\tMaxUint = 1\u003c\u003cintSize - 1\n\tMaxUint8 = 1\u003c\u003c8 - 1\n\tMaxUint16 = 1\u003c\u003c16 - 1\n\tMaxUint32 = 1\u003c\u003c32 - 1\n\tMaxUint64 = 1\u003c\u003c64 - 1\n)\n"},{"name":"rat.gno","body":"package rat\n\n//----------------------------------------\n// Rat fractions\n\n// represents a fraction.\ntype Rat struct {\n\tX int32\n\tY int32 // must be positive\n}\n\nfunc NewRat(x, y int32) Rat {\n\tif y \u003c= 0 {\n\t\tpanic(\"invalid std.Rat denominator\")\n\t}\n\treturn Rat{X: x, Y: y}\n}\n\nfunc (r1 Rat) IsValid() bool {\n\tif r1.Y \u003c= 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (r1 Rat) Cmp(r2 Rat) int {\n\tif !r1.IsValid() {\n\t\tpanic(\"invalid std.Rat left operand\")\n\t}\n\tif !r2.IsValid() {\n\t\tpanic(\"invalid std.Rat right operand\")\n\t}\n\tvar p1, p2 int64\n\tp1 = int64(r1.X) * int64(r2.Y)\n\tp2 = int64(r1.Y) * int64(r2.X)\n\tif p1 \u003c p2 {\n\t\treturn -1\n\t} else if p1 == p2 {\n\t\treturn 0\n\t} else {\n\t\treturn 1\n\t}\n}\n\n//func (r1 Rat) Plus(r2 Rat) Rat {\n// XXX\n//}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y/azsvl4zKqSI5nr7Dpp/B/nrN7p/hKZBSvY9PCG/AJ8DUNC5BNYBvKhYcce3pT0Gtplfq2+bmKafqbTAlj7CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"realmpath","path":"gno.land/p/moul/realmpath","files":[{"name":"realmpath.gno","body":"// Package realmpath is a lightweight Render.path parsing and link generation\n// library with an idiomatic API, closely resembling that of net/url.\n//\n// This package provides utilities for parsing request paths and query\n// parameters, allowing you to extract path segments and manipulate query\n// values.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/realmpath\"\n//\n//\tfunc Render(path string) string {\n//\t // Parsing a sample path with query parameters\n//\t path = \"hello/world?foo=bar\u0026baz=foobar\"\n//\t req := realmpath.Parse(path)\n//\n//\t // Accessing parsed path and query parameters\n//\t println(req.Path) // Output: hello/world\n//\t println(req.PathPart(0)) // Output: hello\n//\t println(req.PathPart(1)) // Output: world\n//\t println(req.Query.Get(\"foo\")) // Output: bar\n//\t println(req.Query.Get(\"baz\")) // Output: foobar\n//\n//\t // Rebuilding the URL\n//\t println(req.String()) // Output: /r/current/realm:hello/world?baz=foobar\u0026foo=bar\n//\t}\npackage realmpath\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Request represents a parsed request.\ntype Request struct {\n\tPath string // The path of the request\n\tQuery url.Values // The parsed query parameters\n\tRealm string // The realm associated with the request\n}\n\n// Parse takes a raw path string and returns a Request object.\n// It splits the path into its components and parses any query parameters.\nfunc Parse(rawPath string) *Request {\n\t// Split the raw path into path and query components\n\tpath, query := splitPathAndQuery(rawPath)\n\n\t// Parse the query string into url.Values\n\tqueryValues, _ := url.ParseQuery(query)\n\n\treturn \u0026Request{\n\t\tPath: path, // Set the path\n\t\tQuery: queryValues, // Set the parsed query values\n\t}\n}\n\n// PathParts returns the segments of the path as a slice of strings.\n// It trims leading and trailing slashes and splits the path by slashes.\nfunc (r *Request) PathParts() []string {\n\treturn strings.Split(strings.Trim(r.Path, \"/\"), \"/\")\n}\n\n// PathPart returns the specified part of the path.\n// If the index is out of bounds, it returns an empty string.\nfunc (r *Request) PathPart(index int) string {\n\tparts := r.PathParts() // Get the path segments\n\tif index \u003c 0 || index \u003e= len(parts) {\n\t\treturn \"\" // Return empty if index is out of bounds\n\t}\n\treturn parts[index] // Return the specified path part\n}\n\n// String rebuilds the URL from the path and query values.\n// If the Realm is not set, it automatically retrieves the current realm path.\nfunc (r *Request) String() string {\n\t// Automatically set the Realm if it is not already defined\n\tif r.Realm == \"\" {\n\t\tr.Realm = std.CurrentRealm().PkgPath() // Get the current realm path\n\t}\n\n\t// Rebuild the path using the realm and path parts\n\trelativePkgPath := strings.TrimPrefix(r.Realm, chainDomain) // Trim the chain domain prefix\n\treconstructedPath := relativePkgPath + \":\" + strings.Join(r.PathParts(), \"/\")\n\n\t// Rebuild the query string\n\tqueryString := r.Query.Encode() // Encode the query parameters\n\tif queryString != \"\" {\n\t\treturn reconstructedPath + \"?\" + queryString // Return the full URL with query\n\t}\n\treturn reconstructedPath // Return the path without query parameters\n}\n\nfunc splitPathAndQuery(rawPath string) (string, string) {\n\tif idx := strings.Index(rawPath, \"?\"); idx != -1 {\n\t\treturn rawPath[:idx], rawPath[idx+1:] // Split at the first '?' found\n\t}\n\treturn rawPath, \"\" // No query string present\n}\n"},{"name":"realmpath_test.gno","body":"package realmpath_test\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/realmpath\"\n)\n\nfunc TestExample(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\t// initial parsing\n\tpath := \"hello/world?foo=bar\u0026baz=foobar\"\n\treq := realmpath.Parse(path)\n\turequire.False(t, req == nil, \"req should not be nil\")\n\tuassert.Equal(t, req.Path, \"hello/world\")\n\tuassert.Equal(t, req.Query.Get(\"foo\"), \"bar\")\n\tuassert.Equal(t, req.Query.Get(\"baz\"), \"foobar\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\")\n\n\t// alter query\n\treq.Query.Set(\"hey\", \"salut\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\u0026hey=salut\")\n\n\t// alter path\n\treq.Path = \"bye/ciao\"\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:bye/ciao?baz=foobar\u0026foo=bar\u0026hey=salut\")\n}\n\nfunc TestParse(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\ttests := []struct {\n\t\trawPath string\n\t\trealm string // optional\n\t\texpectedPath string\n\t\texpectedQuery url.Values\n\t\texpectedString string\n\t}{\n\t\t{\n\t\t\trawPath: \"hello/world?foo=bar\u0026baz=foobar\",\n\t\t\texpectedPath: \"hello/world\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"api/v1/resource?search=test\u0026limit=10\",\n\t\t\texpectedPath: \"api/v1/resource\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"search\": []string{\"test\"},\n\t\t\t\t\"limit\": []string{\"10\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:api/v1/resource?limit=10\u0026search=test\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"singlepath\",\n\t\t\texpectedPath: \"singlepath\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:singlepath\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/trailing/slash/\",\n\t\t\texpectedPath: \"path/with/trailing/slash/\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/trailing/slash\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"emptyquery?\",\n\t\t\texpectedPath: \"emptyquery\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:emptyquery\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/special/characters/?key=val%20ue\u0026anotherKey=with%21special%23chars\",\n\t\t\texpectedPath: \"path/with/special/characters/\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key\": []string{\"val ue\"},\n\t\t\t\t\"anotherKey\": []string{\"with!special#chars\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/special/characters?anotherKey=with%21special%23chars\u0026key=val+ue\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/empty/key?keyEmpty\u0026=valueEmpty\",\n\t\t\texpectedPath: \"path/with/empty/key\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"keyEmpty\": []string{\"\"},\n\t\t\t\t\"\": []string{\"valueEmpty\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/empty/key?=valueEmpty\u0026keyEmpty=\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t\texpectedPath: \"path/with/multiple/empty/keys\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"\": []string{\"empty1\", \"empty2\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/percent-encoded/%20space?query=hello%20world\",\n\t\t\texpectedPath: \"path/with/percent-encoded/%20space\", // XXX: should we decode?\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"query\": []string{\"hello world\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/percent-encoded/%20space?query=hello+world\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t\texpectedPath: \"path/with/very/long/query\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key1\": []string{\"value1\"},\n\t\t\t\t\"key2\": []string{\"value2\"},\n\t\t\t\t\"key3\": []string{\"value3\"},\n\t\t\t\t\"key4\": []string{\"value4\"},\n\t\t\t\t\"key5\": []string{\"value5\"},\n\t\t\t\t\"key6\": []string{\"value6\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"custom/realm?foo=bar\u0026baz=foobar\",\n\t\t\trealm: \"gno.land/r/foo/bar\",\n\t\t\texpectedPath: \"custom/realm\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/foo/bar:custom/realm?baz=foobar\u0026foo=bar\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.rawPath, func(t *testing.T) {\n\t\t\treq := realmpath.Parse(tt.rawPath)\n\t\t\treq.Realm = tt.realm // set optional realm\n\t\t\turequire.False(t, req == nil, \"req should not be nil\")\n\t\t\tuassert.Equal(t, req.Path, tt.expectedPath)\n\t\t\turequire.Equal(t, len(req.Query), len(tt.expectedQuery))\n\t\t\tuassert.Equal(t, req.Query.Encode(), tt.expectedQuery.Encode())\n\t\t\t// XXX: uassert.Equal(t, req.Query, tt.expectedQuery)\n\t\t\tuassert.Equal(t, req.String(), tt.expectedString)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GPnhv8EN+lTUL1JJqy8ukFKmkzDLNsguhaFoZlCI0qgyvEADr6/+88CoOUPs9KRm/+8EWSR9ycVMf1LGbSeTAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"realmpath","path":"gno.land/p/moul/realmpath","files":[{"name":"realmpath.gno","body":"// Package realmpath is a lightweight Render.path parsing and link generation\n// library with an idiomatic API, closely resembling that of net/url.\n//\n// This package provides utilities for parsing request paths and query\n// parameters, allowing you to extract path segments and manipulate query\n// values.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/realmpath\"\n//\n//\tfunc Render(path string) string {\n//\t // Parsing a sample path with query parameters\n//\t path = \"hello/world?foo=bar\u0026baz=foobar\"\n//\t req := realmpath.Parse(path)\n//\n//\t // Accessing parsed path and query parameters\n//\t println(req.Path) // Output: hello/world\n//\t println(req.PathPart(0)) // Output: hello\n//\t println(req.PathPart(1)) // Output: world\n//\t println(req.Query.Get(\"foo\")) // Output: bar\n//\t println(req.Query.Get(\"baz\")) // Output: foobar\n//\n//\t // Rebuilding the URL\n//\t println(req.String()) // Output: /r/current/realm:hello/world?baz=foobar\u0026foo=bar\n//\t}\npackage realmpath\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Request represents a parsed request.\ntype Request struct {\n\tPath string // The path of the request\n\tQuery url.Values // The parsed query parameters\n\tRealm string // The realm associated with the request\n}\n\n// Parse takes a raw path string and returns a Request object.\n// It splits the path into its components and parses any query parameters.\nfunc Parse(rawPath string) *Request {\n\t// Split the raw path into path and query components\n\tpath, query := splitPathAndQuery(rawPath)\n\n\t// Parse the query string into url.Values\n\tqueryValues, _ := url.ParseQuery(query)\n\n\treturn \u0026Request{\n\t\tPath: path, // Set the path\n\t\tQuery: queryValues, // Set the parsed query values\n\t}\n}\n\n// PathParts returns the segments of the path as a slice of strings.\n// It trims leading and trailing slashes and splits the path by slashes.\nfunc (r *Request) PathParts() []string {\n\treturn strings.Split(strings.Trim(r.Path, \"/\"), \"/\")\n}\n\n// PathPart returns the specified part of the path.\n// If the index is out of bounds, it returns an empty string.\nfunc (r *Request) PathPart(index int) string {\n\tparts := r.PathParts() // Get the path segments\n\tif index \u003c 0 || index \u003e= len(parts) {\n\t\treturn \"\" // Return empty if index is out of bounds\n\t}\n\treturn parts[index] // Return the specified path part\n}\n\n// String rebuilds the URL from the path and query values.\n// If the Realm is not set, it automatically retrieves the current realm path.\nfunc (r *Request) String() string {\n\t// Automatically set the Realm if it is not already defined\n\tif r.Realm == \"\" {\n\t\tr.Realm = std.CurrentRealm().PkgPath() // Get the current realm path\n\t}\n\n\t// Rebuild the path using the realm and path parts\n\trelativePkgPath := strings.TrimPrefix(r.Realm, chainDomain) // Trim the chain domain prefix\n\treconstructedPath := relativePkgPath + \":\" + strings.Join(r.PathParts(), \"/\")\n\n\t// Rebuild the query string\n\tqueryString := r.Query.Encode() // Encode the query parameters\n\tif queryString != \"\" {\n\t\treturn reconstructedPath + \"?\" + queryString // Return the full URL with query\n\t}\n\treturn reconstructedPath // Return the path without query parameters\n}\n\nfunc splitPathAndQuery(rawPath string) (string, string) {\n\tif idx := strings.Index(rawPath, \"?\"); idx != -1 {\n\t\treturn rawPath[:idx], rawPath[idx+1:] // Split at the first '?' found\n\t}\n\treturn rawPath, \"\" // No query string present\n}\n"},{"name":"realmpath_test.gno","body":"package realmpath_test\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/realmpath\"\n)\n\nfunc TestExample(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\t// initial parsing\n\tpath := \"hello/world?foo=bar\u0026baz=foobar\"\n\treq := realmpath.Parse(path)\n\turequire.False(t, req == nil, \"req should not be nil\")\n\tuassert.Equal(t, req.Path, \"hello/world\")\n\tuassert.Equal(t, req.Query.Get(\"foo\"), \"bar\")\n\tuassert.Equal(t, req.Query.Get(\"baz\"), \"foobar\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\")\n\n\t// alter query\n\treq.Query.Set(\"hey\", \"salut\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\u0026hey=salut\")\n\n\t// alter path\n\treq.Path = \"bye/ciao\"\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:bye/ciao?baz=foobar\u0026foo=bar\u0026hey=salut\")\n}\n\nfunc TestParse(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\ttests := []struct {\n\t\trawPath string\n\t\trealm string // optional\n\t\texpectedPath string\n\t\texpectedQuery url.Values\n\t\texpectedString string\n\t}{\n\t\t{\n\t\t\trawPath: \"hello/world?foo=bar\u0026baz=foobar\",\n\t\t\texpectedPath: \"hello/world\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"api/v1/resource?search=test\u0026limit=10\",\n\t\t\texpectedPath: \"api/v1/resource\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"search\": []string{\"test\"},\n\t\t\t\t\"limit\": []string{\"10\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:api/v1/resource?limit=10\u0026search=test\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"singlepath\",\n\t\t\texpectedPath: \"singlepath\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:singlepath\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/trailing/slash/\",\n\t\t\texpectedPath: \"path/with/trailing/slash/\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/trailing/slash\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"emptyquery?\",\n\t\t\texpectedPath: \"emptyquery\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:emptyquery\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/special/characters/?key=val%20ue\u0026anotherKey=with%21special%23chars\",\n\t\t\texpectedPath: \"path/with/special/characters/\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key\": []string{\"val ue\"},\n\t\t\t\t\"anotherKey\": []string{\"with!special#chars\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/special/characters?anotherKey=with%21special%23chars\u0026key=val+ue\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/empty/key?keyEmpty\u0026=valueEmpty\",\n\t\t\texpectedPath: \"path/with/empty/key\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"keyEmpty\": []string{\"\"},\n\t\t\t\t\"\": []string{\"valueEmpty\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/empty/key?=valueEmpty\u0026keyEmpty=\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t\texpectedPath: \"path/with/multiple/empty/keys\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"\": []string{\"empty1\", \"empty2\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/percent-encoded/%20space?query=hello%20world\",\n\t\t\texpectedPath: \"path/with/percent-encoded/%20space\", // XXX: should we decode?\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"query\": []string{\"hello world\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/percent-encoded/%20space?query=hello+world\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t\texpectedPath: \"path/with/very/long/query\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key1\": []string{\"value1\"},\n\t\t\t\t\"key2\": []string{\"value2\"},\n\t\t\t\t\"key3\": []string{\"value3\"},\n\t\t\t\t\"key4\": []string{\"value4\"},\n\t\t\t\t\"key5\": []string{\"value5\"},\n\t\t\t\t\"key6\": []string{\"value6\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"custom/realm?foo=bar\u0026baz=foobar\",\n\t\t\trealm: \"gno.land/r/foo/bar\",\n\t\t\texpectedPath: \"custom/realm\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/foo/bar:custom/realm?baz=foobar\u0026foo=bar\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.rawPath, func(t *testing.T) {\n\t\t\treq := realmpath.Parse(tt.rawPath)\n\t\t\treq.Realm = tt.realm // set optional realm\n\t\t\turequire.False(t, req == nil, \"req should not be nil\")\n\t\t\tuassert.Equal(t, req.Path, tt.expectedPath)\n\t\t\turequire.Equal(t, len(req.Query), len(tt.expectedQuery))\n\t\t\tuassert.Equal(t, req.Query.Encode(), tt.expectedQuery.Encode())\n\t\t\t// XXX: uassert.Equal(t, req.Query, tt.expectedQuery)\n\t\t\tuassert.Equal(t, req.String(), tt.expectedString)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GPnhv8EN+lTUL1JJqy8ukFKmkzDLNsguhaFoZlCI0qgyvEADr6/+88CoOUPs9KRm/+8EWSR9ycVMf1LGbSeTAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"realmpath","path":"gno.land/p/moul/realmpath","files":[{"name":"realmpath.gno","body":"// Package realmpath is a lightweight Render.path parsing and link generation\n// library with an idiomatic API, closely resembling that of net/url.\n//\n// This package provides utilities for parsing request paths and query\n// parameters, allowing you to extract path segments and manipulate query\n// values.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/realmpath\"\n//\n//\tfunc Render(path string) string {\n//\t // Parsing a sample path with query parameters\n//\t path = \"hello/world?foo=bar\u0026baz=foobar\"\n//\t req := realmpath.Parse(path)\n//\n//\t // Accessing parsed path and query parameters\n//\t println(req.Path) // Output: hello/world\n//\t println(req.PathPart(0)) // Output: hello\n//\t println(req.PathPart(1)) // Output: world\n//\t println(req.Query.Get(\"foo\")) // Output: bar\n//\t println(req.Query.Get(\"baz\")) // Output: foobar\n//\n//\t // Rebuilding the URL\n//\t println(req.String()) // Output: /r/current/realm:hello/world?baz=foobar\u0026foo=bar\n//\t}\npackage realmpath\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Request represents a parsed request.\ntype Request struct {\n\tPath string // The path of the request\n\tQuery url.Values // The parsed query parameters\n\tRealm string // The realm associated with the request\n}\n\n// Parse takes a raw path string and returns a Request object.\n// It splits the path into its components and parses any query parameters.\nfunc Parse(rawPath string) *Request {\n\t// Split the raw path into path and query components\n\tpath, query := splitPathAndQuery(rawPath)\n\n\t// Parse the query string into url.Values\n\tqueryValues, _ := url.ParseQuery(query)\n\n\treturn \u0026Request{\n\t\tPath: path, // Set the path\n\t\tQuery: queryValues, // Set the parsed query values\n\t}\n}\n\n// PathParts returns the segments of the path as a slice of strings.\n// It trims leading and trailing slashes and splits the path by slashes.\nfunc (r *Request) PathParts() []string {\n\treturn strings.Split(strings.Trim(r.Path, \"/\"), \"/\")\n}\n\n// PathPart returns the specified part of the path.\n// If the index is out of bounds, it returns an empty string.\nfunc (r *Request) PathPart(index int) string {\n\tparts := r.PathParts() // Get the path segments\n\tif index \u003c 0 || index \u003e= len(parts) {\n\t\treturn \"\" // Return empty if index is out of bounds\n\t}\n\treturn parts[index] // Return the specified path part\n}\n\n// String rebuilds the URL from the path and query values.\n// If the Realm is not set, it automatically retrieves the current realm path.\nfunc (r *Request) String() string {\n\t// Automatically set the Realm if it is not already defined\n\tif r.Realm == \"\" {\n\t\tr.Realm = std.CurrentRealm().PkgPath() // Get the current realm path\n\t}\n\n\t// Rebuild the path using the realm and path parts\n\trelativePkgPath := strings.TrimPrefix(r.Realm, chainDomain) // Trim the chain domain prefix\n\treconstructedPath := relativePkgPath + \":\" + strings.Join(r.PathParts(), \"/\")\n\n\t// Rebuild the query string\n\tqueryString := r.Query.Encode() // Encode the query parameters\n\tif queryString != \"\" {\n\t\treturn reconstructedPath + \"?\" + queryString // Return the full URL with query\n\t}\n\treturn reconstructedPath // Return the path without query parameters\n}\n\nfunc splitPathAndQuery(rawPath string) (string, string) {\n\tif idx := strings.Index(rawPath, \"?\"); idx != -1 {\n\t\treturn rawPath[:idx], rawPath[idx+1:] // Split at the first '?' found\n\t}\n\treturn rawPath, \"\" // No query string present\n}\n"},{"name":"realmpath_test.gno","body":"package realmpath_test\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/realmpath\"\n)\n\nfunc TestExample(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\t// initial parsing\n\tpath := \"hello/world?foo=bar\u0026baz=foobar\"\n\treq := realmpath.Parse(path)\n\turequire.False(t, req == nil, \"req should not be nil\")\n\tuassert.Equal(t, req.Path, \"hello/world\")\n\tuassert.Equal(t, req.Query.Get(\"foo\"), \"bar\")\n\tuassert.Equal(t, req.Query.Get(\"baz\"), \"foobar\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\")\n\n\t// alter query\n\treq.Query.Set(\"hey\", \"salut\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\u0026hey=salut\")\n\n\t// alter path\n\treq.Path = \"bye/ciao\"\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:bye/ciao?baz=foobar\u0026foo=bar\u0026hey=salut\")\n}\n\nfunc TestParse(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\ttests := []struct {\n\t\trawPath string\n\t\trealm string // optional\n\t\texpectedPath string\n\t\texpectedQuery url.Values\n\t\texpectedString string\n\t}{\n\t\t{\n\t\t\trawPath: \"hello/world?foo=bar\u0026baz=foobar\",\n\t\t\texpectedPath: \"hello/world\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"api/v1/resource?search=test\u0026limit=10\",\n\t\t\texpectedPath: \"api/v1/resource\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"search\": []string{\"test\"},\n\t\t\t\t\"limit\": []string{\"10\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:api/v1/resource?limit=10\u0026search=test\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"singlepath\",\n\t\t\texpectedPath: \"singlepath\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:singlepath\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/trailing/slash/\",\n\t\t\texpectedPath: \"path/with/trailing/slash/\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/trailing/slash\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"emptyquery?\",\n\t\t\texpectedPath: \"emptyquery\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:emptyquery\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/special/characters/?key=val%20ue\u0026anotherKey=with%21special%23chars\",\n\t\t\texpectedPath: \"path/with/special/characters/\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key\": []string{\"val ue\"},\n\t\t\t\t\"anotherKey\": []string{\"with!special#chars\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/special/characters?anotherKey=with%21special%23chars\u0026key=val+ue\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/empty/key?keyEmpty\u0026=valueEmpty\",\n\t\t\texpectedPath: \"path/with/empty/key\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"keyEmpty\": []string{\"\"},\n\t\t\t\t\"\": []string{\"valueEmpty\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/empty/key?=valueEmpty\u0026keyEmpty=\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t\texpectedPath: \"path/with/multiple/empty/keys\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"\": []string{\"empty1\", \"empty2\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/percent-encoded/%20space?query=hello%20world\",\n\t\t\texpectedPath: \"path/with/percent-encoded/%20space\", // XXX: should we decode?\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"query\": []string{\"hello world\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/percent-encoded/%20space?query=hello+world\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t\texpectedPath: \"path/with/very/long/query\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key1\": []string{\"value1\"},\n\t\t\t\t\"key2\": []string{\"value2\"},\n\t\t\t\t\"key3\": []string{\"value3\"},\n\t\t\t\t\"key4\": []string{\"value4\"},\n\t\t\t\t\"key5\": []string{\"value5\"},\n\t\t\t\t\"key6\": []string{\"value6\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"custom/realm?foo=bar\u0026baz=foobar\",\n\t\t\trealm: \"gno.land/r/foo/bar\",\n\t\t\texpectedPath: \"custom/realm\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/foo/bar:custom/realm?baz=foobar\u0026foo=bar\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.rawPath, func(t *testing.T) {\n\t\t\treq := realmpath.Parse(tt.rawPath)\n\t\t\treq.Realm = tt.realm // set optional realm\n\t\t\turequire.False(t, req == nil, \"req should not be nil\")\n\t\t\tuassert.Equal(t, req.Path, tt.expectedPath)\n\t\t\turequire.Equal(t, len(req.Query), len(tt.expectedQuery))\n\t\t\tuassert.Equal(t, req.Query.Encode(), tt.expectedQuery.Encode())\n\t\t\t// XXX: uassert.Equal(t, req.Query, tt.expectedQuery)\n\t\t\tuassert.Equal(t, req.String(), tt.expectedString)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GPnhv8EN+lTUL1JJqy8ukFKmkzDLNsguhaFoZlCI0qgyvEADr6/+88CoOUPs9KRm/+8EWSR9ycVMf1LGbSeTAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"recurring","path":"gno.land/p/demo/subscription/recurring","files":[{"name":"errors.gno","body":"package recurring\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"recurring subscription: no active subscription found\")\n\tErrSubExpired = errors.New(\"recurring subscription: your subscription has expired\")\n\tErrAmt = errors.New(\"recurring subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"recurring subscription: this address already has an active subscription\")\n\tErrNotAuthorized = errors.New(\"recurring subscription: action not authorized\")\n)\n"},{"name":"recurring.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// RecurringSubscription represents a subscription that requires periodic payments.\n// It includes the duration of the subscription and the amount required per period.\ntype RecurringSubscription struct {\n\townable.Ownable\n\tduration time.Duration\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e time.Time\n}\n\n// NewRecurringSubscription creates and returns a new recurring subscription.\nfunc NewRecurringSubscription(duration time.Duration, amount int64) *RecurringSubscription {\n\treturn \u0026RecurringSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tduration: duration,\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// HasValidSubscription verifies if the caller has an active recurring subscription.\nfunc (rs *RecurringSubscription) HasValidSubscription(addr std.Address) error {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\tif time.Now().After(expTime.(time.Time)) {\n\t\treturn ErrSubExpired\n\t}\n\n\treturn nil\n}\n\n// processSubscription processes the payment for a given receiver and renews or adds their subscription.\nfunc (rs *RecurringSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != rs.amount {\n\t\treturn ErrAmt\n\t}\n\n\texpTime, exists := rs.subs.Get(receiver.String())\n\n\t// If the user is already a subscriber but his subscription has expired, authorize renewal\n\tif exists {\n\t\texpiration := expTime.(time.Time)\n\t\tif time.Now().Before(expiration) {\n\t\t\treturn ErrAlreadySub\n\t\t}\n\t}\n\n\t// Renew or add subscription\n\tnewExpiration := time.Now().Add(rs.duration)\n\trs.subs.Set(receiver.String(), newExpiration)\n\n\treturn nil\n}\n\n// Subscribe handles the payment for the caller's subscription.\nfunc (rs *RecurringSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\n\treturn rs.processSubscription(caller)\n}\n\n// GiftSubscription allows the user to pay for a subscription for another user (receiver).\nfunc (rs *RecurringSubscription) GiftSubscription(receiver std.Address) error {\n\treturn rs.processSubscription(receiver)\n}\n\n// GetExpiration returns the expiration date of the recurring subscription for a given caller.\nfunc (rs *RecurringSubscription) GetExpiration(addr std.Address) (time.Time, error) {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn time.Time{}, ErrNoSub\n\t}\n\n\treturn expTime.(time.Time), nil\n}\n\n// UpdateAmount allows the owner of the subscription contract to change the required subscription amount.\nfunc (rs *RecurringSubscription) UpdateAmount(newAmount int64) error {\n\tif err := rs.CallerIsOwner(); err != nil {\n\t\treturn ErrNotAuthorized\n\t}\n\n\trs.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current amount required for each subscription period.\nfunc (rs *RecurringSubscription) GetAmount() int64 {\n\treturn rs.amount\n}\n"},{"name":"recurring_test.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestRecurringSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration, err := rs.GetExpiration(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected to get expiration for Alice\")\n}\n\nfunc TestRecurringSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = rs.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = rs.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestRecurringSubscriptionExpiration(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.Error(t, err, \"Expected Alice's subscription to be expired\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\terr = rs.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestGetAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tamount := rs.GetAmount()\n\tuassert.Equal(t, amount, int64(1000), \"Expected the initial amount to be 1000 ugnot\")\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tamount = rs.GetAmount()\n\tuassert.Equal(t, amount, int64(2000), \"Expected the updated amount to be 2000 ugnot\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := rs.Subscribe()\n\tuassert.Error(t, err, \"Expected payment with incorrect amount to fail\")\n}\n\nfunc TestMultiplePaymentsForSameUser(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.Error(t, err, \"Expected second ProcessPayment to fail for Alice due to existing subscription\")\n}\n\nfunc TestRecurringSubscriptionWithMultiplePayments(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after first payment\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected second ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after second payment\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pzgQONv6n+i13+aup6wRXlKL7lriQu6DhxZh235NqzHrod4OeDuNKYfF5xab9HsaLepk3UAKrDbPek6P3dJJCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"recurring","path":"gno.land/p/demo/subscription/recurring","files":[{"name":"errors.gno","body":"package recurring\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"recurring subscription: no active subscription found\")\n\tErrSubExpired = errors.New(\"recurring subscription: your subscription has expired\")\n\tErrAmt = errors.New(\"recurring subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"recurring subscription: this address already has an active subscription\")\n\tErrNotAuthorized = errors.New(\"recurring subscription: action not authorized\")\n)\n"},{"name":"recurring.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// RecurringSubscription represents a subscription that requires periodic payments.\n// It includes the duration of the subscription and the amount required per period.\ntype RecurringSubscription struct {\n\townable.Ownable\n\tduration time.Duration\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e time.Time\n}\n\n// NewRecurringSubscription creates and returns a new recurring subscription.\nfunc NewRecurringSubscription(duration time.Duration, amount int64) *RecurringSubscription {\n\treturn \u0026RecurringSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tduration: duration,\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// HasValidSubscription verifies if the caller has an active recurring subscription.\nfunc (rs *RecurringSubscription) HasValidSubscription(addr std.Address) error {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\tif time.Now().After(expTime.(time.Time)) {\n\t\treturn ErrSubExpired\n\t}\n\n\treturn nil\n}\n\n// processSubscription processes the payment for a given receiver and renews or adds their subscription.\nfunc (rs *RecurringSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != rs.amount {\n\t\treturn ErrAmt\n\t}\n\n\texpTime, exists := rs.subs.Get(receiver.String())\n\n\t// If the user is already a subscriber but his subscription has expired, authorize renewal\n\tif exists {\n\t\texpiration := expTime.(time.Time)\n\t\tif time.Now().Before(expiration) {\n\t\t\treturn ErrAlreadySub\n\t\t}\n\t}\n\n\t// Renew or add subscription\n\tnewExpiration := time.Now().Add(rs.duration)\n\trs.subs.Set(receiver.String(), newExpiration)\n\n\treturn nil\n}\n\n// Subscribe handles the payment for the caller's subscription.\nfunc (rs *RecurringSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\n\treturn rs.processSubscription(caller)\n}\n\n// GiftSubscription allows the user to pay for a subscription for another user (receiver).\nfunc (rs *RecurringSubscription) GiftSubscription(receiver std.Address) error {\n\treturn rs.processSubscription(receiver)\n}\n\n// GetExpiration returns the expiration date of the recurring subscription for a given caller.\nfunc (rs *RecurringSubscription) GetExpiration(addr std.Address) (time.Time, error) {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn time.Time{}, ErrNoSub\n\t}\n\n\treturn expTime.(time.Time), nil\n}\n\n// UpdateAmount allows the owner of the subscription contract to change the required subscription amount.\nfunc (rs *RecurringSubscription) UpdateAmount(newAmount int64) error {\n\tif err := rs.CallerIsOwner(); err != nil {\n\t\treturn ErrNotAuthorized\n\t}\n\n\trs.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current amount required for each subscription period.\nfunc (rs *RecurringSubscription) GetAmount() int64 {\n\treturn rs.amount\n}\n"},{"name":"recurring_test.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestRecurringSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration, err := rs.GetExpiration(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected to get expiration for Alice\")\n}\n\nfunc TestRecurringSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = rs.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = rs.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestRecurringSubscriptionExpiration(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.Error(t, err, \"Expected Alice's subscription to be expired\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\terr = rs.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestGetAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tamount := rs.GetAmount()\n\tuassert.Equal(t, amount, int64(1000), \"Expected the initial amount to be 1000 ugnot\")\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tamount = rs.GetAmount()\n\tuassert.Equal(t, amount, int64(2000), \"Expected the updated amount to be 2000 ugnot\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := rs.Subscribe()\n\tuassert.Error(t, err, \"Expected payment with incorrect amount to fail\")\n}\n\nfunc TestMultiplePaymentsForSameUser(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.Error(t, err, \"Expected second ProcessPayment to fail for Alice due to existing subscription\")\n}\n\nfunc TestRecurringSubscriptionWithMultiplePayments(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after first payment\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected second ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after second payment\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pzgQONv6n+i13+aup6wRXlKL7lriQu6DhxZh235NqzHrod4OeDuNKYfF5xab9HsaLepk3UAKrDbPek6P3dJJCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"recurring","path":"gno.land/p/demo/subscription/recurring","files":[{"name":"errors.gno","body":"package recurring\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"recurring subscription: no active subscription found\")\n\tErrSubExpired = errors.New(\"recurring subscription: your subscription has expired\")\n\tErrAmt = errors.New(\"recurring subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"recurring subscription: this address already has an active subscription\")\n\tErrNotAuthorized = errors.New(\"recurring subscription: action not authorized\")\n)\n"},{"name":"recurring.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// RecurringSubscription represents a subscription that requires periodic payments.\n// It includes the duration of the subscription and the amount required per period.\ntype RecurringSubscription struct {\n\townable.Ownable\n\tduration time.Duration\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e time.Time\n}\n\n// NewRecurringSubscription creates and returns a new recurring subscription.\nfunc NewRecurringSubscription(duration time.Duration, amount int64) *RecurringSubscription {\n\treturn \u0026RecurringSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tduration: duration,\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// HasValidSubscription verifies if the caller has an active recurring subscription.\nfunc (rs *RecurringSubscription) HasValidSubscription(addr std.Address) error {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\tif time.Now().After(expTime.(time.Time)) {\n\t\treturn ErrSubExpired\n\t}\n\n\treturn nil\n}\n\n// processSubscription processes the payment for a given receiver and renews or adds their subscription.\nfunc (rs *RecurringSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != rs.amount {\n\t\treturn ErrAmt\n\t}\n\n\texpTime, exists := rs.subs.Get(receiver.String())\n\n\t// If the user is already a subscriber but his subscription has expired, authorize renewal\n\tif exists {\n\t\texpiration := expTime.(time.Time)\n\t\tif time.Now().Before(expiration) {\n\t\t\treturn ErrAlreadySub\n\t\t}\n\t}\n\n\t// Renew or add subscription\n\tnewExpiration := time.Now().Add(rs.duration)\n\trs.subs.Set(receiver.String(), newExpiration)\n\n\treturn nil\n}\n\n// Subscribe handles the payment for the caller's subscription.\nfunc (rs *RecurringSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\n\treturn rs.processSubscription(caller)\n}\n\n// GiftSubscription allows the user to pay for a subscription for another user (receiver).\nfunc (rs *RecurringSubscription) GiftSubscription(receiver std.Address) error {\n\treturn rs.processSubscription(receiver)\n}\n\n// GetExpiration returns the expiration date of the recurring subscription for a given caller.\nfunc (rs *RecurringSubscription) GetExpiration(addr std.Address) (time.Time, error) {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn time.Time{}, ErrNoSub\n\t}\n\n\treturn expTime.(time.Time), nil\n}\n\n// UpdateAmount allows the owner of the subscription contract to change the required subscription amount.\nfunc (rs *RecurringSubscription) UpdateAmount(newAmount int64) error {\n\tif err := rs.CallerIsOwner(); err != nil {\n\t\treturn ErrNotAuthorized\n\t}\n\n\trs.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current amount required for each subscription period.\nfunc (rs *RecurringSubscription) GetAmount() int64 {\n\treturn rs.amount\n}\n"},{"name":"recurring_test.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestRecurringSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration, err := rs.GetExpiration(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected to get expiration for Alice\")\n}\n\nfunc TestRecurringSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = rs.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = rs.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestRecurringSubscriptionExpiration(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.Error(t, err, \"Expected Alice's subscription to be expired\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\terr = rs.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestGetAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tamount := rs.GetAmount()\n\tuassert.Equal(t, amount, int64(1000), \"Expected the initial amount to be 1000 ugnot\")\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tamount = rs.GetAmount()\n\tuassert.Equal(t, amount, int64(2000), \"Expected the updated amount to be 2000 ugnot\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := rs.Subscribe()\n\tuassert.Error(t, err, \"Expected payment with incorrect amount to fail\")\n}\n\nfunc TestMultiplePaymentsForSameUser(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.Error(t, err, \"Expected second ProcessPayment to fail for Alice due to existing subscription\")\n}\n\nfunc TestRecurringSubscriptionWithMultiplePayments(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after first payment\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected second ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after second payment\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pzgQONv6n+i13+aup6wRXlKL7lriQu6DhxZh235NqzHrod4OeDuNKYfF5xab9HsaLepk3UAKrDbPek6P3dJJCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"registry","path":"gno.land/r/stefann/registry","files":[{"name":"registry.gno","body":"package registry\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tmainAddr std.Address\n\tbackupAddr std.Address\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\tmainAddr = \"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\"\n\tbackupAddr = \"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8\"\n\n\towner = ownable.NewWithAddress(mainAddr)\n}\n\nfunc MainAddr() std.Address {\n\treturn mainAddr\n}\n\nfunc BackupAddr() std.Address {\n\treturn backupAddr\n}\n\nfunc SetMainAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tmainAddr = addr\n\treturn nil\n}\n\nfunc SetBackupAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tbackupAddr = addr\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l5i/wu0sFnp4tYYULWHDGhoYnF0Is4FkOhviQuVyGdPdk1amrmYXxkM5EnjHqbu+BCC4Y/jfn1CL/b3napVjCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"registry","path":"gno.land/r/stefann/registry","files":[{"name":"registry.gno","body":"package registry\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tmainAddr std.Address\n\tbackupAddr std.Address\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\tmainAddr = \"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\"\n\tbackupAddr = \"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8\"\n\n\towner = ownable.NewWithAddress(mainAddr)\n}\n\nfunc MainAddr() std.Address {\n\treturn mainAddr\n}\n\nfunc BackupAddr() std.Address {\n\treturn backupAddr\n}\n\nfunc SetMainAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tmainAddr = addr\n\treturn nil\n}\n\nfunc SetBackupAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tbackupAddr = addr\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l5i/wu0sFnp4tYYULWHDGhoYnF0Is4FkOhviQuVyGdPdk1amrmYXxkM5EnjHqbu+BCC4Y/jfn1CL/b3napVjCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"registry","path":"gno.land/r/stefann/registry","files":[{"name":"registry.gno","body":"package registry\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tmainAddr std.Address\n\tbackupAddr std.Address\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\tmainAddr = \"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\"\n\tbackupAddr = \"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8\"\n\n\towner = ownable.NewWithAddress(mainAddr)\n}\n\nfunc MainAddr() std.Address {\n\treturn mainAddr\n}\n\nfunc BackupAddr() std.Address {\n\treturn backupAddr\n}\n\nfunc SetMainAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tmainAddr = addr\n\treturn nil\n}\n\nfunc SetBackupAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tbackupAddr = addr\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l5i/wu0sFnp4tYYULWHDGhoYnF0Is4FkOhviQuVyGdPdk1amrmYXxkM5EnjHqbu+BCC4Y/jfn1CL/b3napVjCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"releases","path":"gno.land/p/demo/releases","files":[{"name":"changelog.gno","body":"package releases\n\ntype changelog struct {\n\tname string\n\treleases []release\n}\n\nfunc NewChangelog(name string) *changelog {\n\treturn \u0026changelog{\n\t\tname: name,\n\t\treleases: make([]release, 0),\n\t}\n}\n\nfunc (c *changelog) NewRelease(version, url, notes string) {\n\tif latest := c.Latest(); latest != nil {\n\t\tlatest.isLatest = false\n\t}\n\n\trelease := release{\n\t\t// manual\n\t\tversion: version,\n\t\turl: url,\n\t\tnotes: notes,\n\n\t\t// internal\n\t\tchangelog: c,\n\t\tisLatest: true,\n\t}\n\n\tc.releases = append(c.releases, release)\n}\n\nfunc (c *changelog) Render(path string) string {\n\tif path == \"\" {\n\t\toutput := \"# \" + c.name + \"\\n\\n\"\n\t\tmax := len(c.releases) - 1\n\t\tmin := 0\n\t\tif max-min \u003e 10 {\n\t\t\tmin = max - 10\n\t\t}\n\t\tfor i := max; i \u003e= min; i-- {\n\t\t\trelease := c.releases[i]\n\t\t\toutput += release.Render()\n\t\t}\n\t\treturn output\n\t}\n\n\trelease := c.ByVersion(path)\n\tif release != nil {\n\t\treturn release.Render()\n\t}\n\n\treturn \"no such release\"\n}\n\nfunc (c *changelog) Latest() *release {\n\tif len(c.releases) \u003e 0 {\n\t\tpos := len(c.releases) - 1\n\t\treturn \u0026c.releases[pos]\n\t}\n\treturn nil\n}\n\nfunc (c *changelog) ByVersion(version string) *release {\n\tfor _, release := range c.releases {\n\t\tif release.version == version {\n\t\t\treturn \u0026release\n\t\t}\n\t}\n\treturn nil\n}\n"},{"name":"release.gno","body":"package releases\n\ntype release struct {\n\t// manual\n\tversion string\n\turl string\n\tnotes string\n\n\t// internal\n\tisLatest bool\n\tchangelog *changelog\n}\n\nfunc (r *release) URL() string { return r.url }\nfunc (r *release) Version() string { return r.version }\nfunc (r *release) Notes() string { return r.notes }\nfunc (r *release) IsLatest() bool { return r.isLatest }\n\nfunc (r *release) Title() string {\n\toutput := r.changelog.name + \" \" + r.version\n\tif r.isLatest {\n\t\toutput += \" (latest)\"\n\t}\n\treturn output\n}\n\nfunc (r *release) Link() string {\n\treturn \"[\" + r.Title() + \"](\" + r.url + \")\"\n}\n\nfunc (r *release) Render() string {\n\toutput := \"\"\n\toutput += \"## \" + r.Link() + \"\\n\\n\"\n\tif r.notes != \"\" {\n\t\toutput += r.notes + \"\\n\\n\"\n\t}\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fDtmUf+NJ+YSflOczd4+2qez1IoweaF5L+9GunnZK3Sm+o//suPoeHCa7m5QN2s8H2BiEYQsEkKUO3A5T86fDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"releases","path":"gno.land/p/demo/releases","files":[{"name":"changelog.gno","body":"package releases\n\ntype changelog struct {\n\tname string\n\treleases []release\n}\n\nfunc NewChangelog(name string) *changelog {\n\treturn \u0026changelog{\n\t\tname: name,\n\t\treleases: make([]release, 0),\n\t}\n}\n\nfunc (c *changelog) NewRelease(version, url, notes string) {\n\tif latest := c.Latest(); latest != nil {\n\t\tlatest.isLatest = false\n\t}\n\n\trelease := release{\n\t\t// manual\n\t\tversion: version,\n\t\turl: url,\n\t\tnotes: notes,\n\n\t\t// internal\n\t\tchangelog: c,\n\t\tisLatest: true,\n\t}\n\n\tc.releases = append(c.releases, release)\n}\n\nfunc (c *changelog) Render(path string) string {\n\tif path == \"\" {\n\t\toutput := \"# \" + c.name + \"\\n\\n\"\n\t\tmax := len(c.releases) - 1\n\t\tmin := 0\n\t\tif max-min \u003e 10 {\n\t\t\tmin = max - 10\n\t\t}\n\t\tfor i := max; i \u003e= min; i-- {\n\t\t\trelease := c.releases[i]\n\t\t\toutput += release.Render()\n\t\t}\n\t\treturn output\n\t}\n\n\trelease := c.ByVersion(path)\n\tif release != nil {\n\t\treturn release.Render()\n\t}\n\n\treturn \"no such release\"\n}\n\nfunc (c *changelog) Latest() *release {\n\tif len(c.releases) \u003e 0 {\n\t\tpos := len(c.releases) - 1\n\t\treturn \u0026c.releases[pos]\n\t}\n\treturn nil\n}\n\nfunc (c *changelog) ByVersion(version string) *release {\n\tfor _, release := range c.releases {\n\t\tif release.version == version {\n\t\t\treturn \u0026release\n\t\t}\n\t}\n\treturn nil\n}\n"},{"name":"release.gno","body":"package releases\n\ntype release struct {\n\t// manual\n\tversion string\n\turl string\n\tnotes string\n\n\t// internal\n\tisLatest bool\n\tchangelog *changelog\n}\n\nfunc (r *release) URL() string { return r.url }\nfunc (r *release) Version() string { return r.version }\nfunc (r *release) Notes() string { return r.notes }\nfunc (r *release) IsLatest() bool { return r.isLatest }\n\nfunc (r *release) Title() string {\n\toutput := r.changelog.name + \" \" + r.version\n\tif r.isLatest {\n\t\toutput += \" (latest)\"\n\t}\n\treturn output\n}\n\nfunc (r *release) Link() string {\n\treturn \"[\" + r.Title() + \"](\" + r.url + \")\"\n}\n\nfunc (r *release) Render() string {\n\toutput := \"\"\n\toutput += \"## \" + r.Link() + \"\\n\\n\"\n\tif r.notes != \"\" {\n\t\toutput += r.notes + \"\\n\\n\"\n\t}\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fDtmUf+NJ+YSflOczd4+2qez1IoweaF5L+9GunnZK3Sm+o//suPoeHCa7m5QN2s8H2BiEYQsEkKUO3A5T86fDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"releases","path":"gno.land/p/demo/releases","files":[{"name":"changelog.gno","body":"package releases\n\ntype changelog struct {\n\tname string\n\treleases []release\n}\n\nfunc NewChangelog(name string) *changelog {\n\treturn \u0026changelog{\n\t\tname: name,\n\t\treleases: make([]release, 0),\n\t}\n}\n\nfunc (c *changelog) NewRelease(version, url, notes string) {\n\tif latest := c.Latest(); latest != nil {\n\t\tlatest.isLatest = false\n\t}\n\n\trelease := release{\n\t\t// manual\n\t\tversion: version,\n\t\turl: url,\n\t\tnotes: notes,\n\n\t\t// internal\n\t\tchangelog: c,\n\t\tisLatest: true,\n\t}\n\n\tc.releases = append(c.releases, release)\n}\n\nfunc (c *changelog) Render(path string) string {\n\tif path == \"\" {\n\t\toutput := \"# \" + c.name + \"\\n\\n\"\n\t\tmax := len(c.releases) - 1\n\t\tmin := 0\n\t\tif max-min \u003e 10 {\n\t\t\tmin = max - 10\n\t\t}\n\t\tfor i := max; i \u003e= min; i-- {\n\t\t\trelease := c.releases[i]\n\t\t\toutput += release.Render()\n\t\t}\n\t\treturn output\n\t}\n\n\trelease := c.ByVersion(path)\n\tif release != nil {\n\t\treturn release.Render()\n\t}\n\n\treturn \"no such release\"\n}\n\nfunc (c *changelog) Latest() *release {\n\tif len(c.releases) \u003e 0 {\n\t\tpos := len(c.releases) - 1\n\t\treturn \u0026c.releases[pos]\n\t}\n\treturn nil\n}\n\nfunc (c *changelog) ByVersion(version string) *release {\n\tfor _, release := range c.releases {\n\t\tif release.version == version {\n\t\t\treturn \u0026release\n\t\t}\n\t}\n\treturn nil\n}\n"},{"name":"release.gno","body":"package releases\n\ntype release struct {\n\t// manual\n\tversion string\n\turl string\n\tnotes string\n\n\t// internal\n\tisLatest bool\n\tchangelog *changelog\n}\n\nfunc (r *release) URL() string { return r.url }\nfunc (r *release) Version() string { return r.version }\nfunc (r *release) Notes() string { return r.notes }\nfunc (r *release) IsLatest() bool { return r.isLatest }\n\nfunc (r *release) Title() string {\n\toutput := r.changelog.name + \" \" + r.version\n\tif r.isLatest {\n\t\toutput += \" (latest)\"\n\t}\n\treturn output\n}\n\nfunc (r *release) Link() string {\n\treturn \"[\" + r.Title() + \"](\" + r.url + \")\"\n}\n\nfunc (r *release) Render() string {\n\toutput := \"\"\n\toutput += \"## \" + r.Link() + \"\\n\\n\"\n\tif r.notes != \"\" {\n\t\toutput += r.notes + \"\\n\\n\"\n\t}\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fDtmUf+NJ+YSflOczd4+2qez1IoweaF5L+9GunnZK3Sm+o//suPoeHCa7m5QN2s8H2BiEYQsEkKUO3A5T86fDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"releases_example","path":"gno.land/r/demo/releases_example","files":[{"name":"dummy.gno","body":"package releases_example\n\nfunc init() {\n\t// dummy example data\n\tchangelog.NewRelease(\n\t\t\"v1\",\n\t\t\"r/demo/examples_example_v1\",\n\t\t\"initial release\",\n\t)\n\tchangelog.NewRelease(\n\t\t\"v2\",\n\t\t\"r/demo/examples_example_v2\",\n\t\t\"various improvements\",\n\t)\n}\n"},{"name":"example.gno","body":"// this package demonstrates a way to manage contract releases.\npackage releases_example\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/releases\"\n)\n\nvar (\n\tchangelog = releases.NewChangelog(\"example_app\")\n\tadmin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\") // @administrator\n)\n\nfunc init() {\n\t// FIXME: admin = std.GetCreator()\n}\n\nfunc NewRelease(name, url, notes string) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tchangelog.NewRelease(name, url, notes)\n}\n\nfunc UpdateAdmin(address std.Address) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tadmin = address\n}\n\nfunc Render(path string) string {\n\treturn changelog.Render(path)\n}\n"},{"name":"releases0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/releases\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tchangelog := releases.NewChangelog(\"example\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v1\", \"r/blahblah\", \"* initial version\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v2\", \"r/blahblah2\", \"* various improvements\\n* new shiny logo\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(changelog.Latest().Render())\n}\n\n// Output:\n// -----------\n// # example\n//\n// -----------\n// # example\n//\n// ## [example v1 (latest)](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// # example\n//\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n// ## [example v1](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n"},{"name":"releases1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/releases_example\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v1\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v42\"))\n}\n\n// Output:\n// -----------\n// # example_app\n//\n// ## [example_app v2 (latest)](r/demo/examples_example_v2)\n//\n// various improvements\n//\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// no such release\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n936ezmxPVPe4tHofghvjavL40M1sZxQDjfufAc8a5K6/nPLkSAlRA+rW8+sed8RH0iU3x6vtJNqEdwyMX6QAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"releases_example","path":"gno.land/r/demo/releases_example","files":[{"name":"dummy.gno","body":"package releases_example\n\nfunc init() {\n\t// dummy example data\n\tchangelog.NewRelease(\n\t\t\"v1\",\n\t\t\"r/demo/examples_example_v1\",\n\t\t\"initial release\",\n\t)\n\tchangelog.NewRelease(\n\t\t\"v2\",\n\t\t\"r/demo/examples_example_v2\",\n\t\t\"various improvements\",\n\t)\n}\n"},{"name":"example.gno","body":"// this package demonstrates a way to manage contract releases.\npackage releases_example\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/releases\"\n)\n\nvar (\n\tchangelog = releases.NewChangelog(\"example_app\")\n\tadmin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\") // @administrator\n)\n\nfunc init() {\n\t// FIXME: admin = std.GetCreator()\n}\n\nfunc NewRelease(name, url, notes string) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tchangelog.NewRelease(name, url, notes)\n}\n\nfunc UpdateAdmin(address std.Address) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tadmin = address\n}\n\nfunc Render(path string) string {\n\treturn changelog.Render(path)\n}\n"},{"name":"releases0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/releases\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tchangelog := releases.NewChangelog(\"example\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v1\", \"r/blahblah\", \"* initial version\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v2\", \"r/blahblah2\", \"* various improvements\\n* new shiny logo\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(changelog.Latest().Render())\n}\n\n// Output:\n// -----------\n// # example\n//\n// -----------\n// # example\n//\n// ## [example v1 (latest)](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// # example\n//\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n// ## [example v1](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n"},{"name":"releases1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/releases_example\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v1\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v42\"))\n}\n\n// Output:\n// -----------\n// # example_app\n//\n// ## [example_app v2 (latest)](r/demo/examples_example_v2)\n//\n// various improvements\n//\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// no such release\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Q/Jv+Ax9txNGBhPN1K5z/xSZpmwjBeSNE4wuDS4xgSNzTzCxSALo4JgHks5NmkIUler5tkKSoOX+E/0PALSDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"releases_example","path":"gno.land/r/demo/releases_example","files":[{"name":"dummy.gno","body":"package releases_example\n\nfunc init() {\n\t// dummy example data\n\tchangelog.NewRelease(\n\t\t\"v1\",\n\t\t\"r/demo/examples_example_v1\",\n\t\t\"initial release\",\n\t)\n\tchangelog.NewRelease(\n\t\t\"v2\",\n\t\t\"r/demo/examples_example_v2\",\n\t\t\"various improvements\",\n\t)\n}\n"},{"name":"example.gno","body":"// this package demonstrates a way to manage contract releases.\npackage releases_example\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/releases\"\n)\n\nvar (\n\tchangelog = releases.NewChangelog(\"example_app\")\n\tadmin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\") // @administrator\n)\n\nfunc init() {\n\t// FIXME: admin = std.GetCreator()\n}\n\nfunc NewRelease(name, url, notes string) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tchangelog.NewRelease(name, url, notes)\n}\n\nfunc UpdateAdmin(address std.Address) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tadmin = address\n}\n\nfunc Render(path string) string {\n\treturn changelog.Render(path)\n}\n"},{"name":"releases0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/releases\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tchangelog := releases.NewChangelog(\"example\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v1\", \"r/blahblah\", \"* initial version\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v2\", \"r/blahblah2\", \"* various improvements\\n* new shiny logo\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(changelog.Latest().Render())\n}\n\n// Output:\n// -----------\n// # example\n//\n// -----------\n// # example\n//\n// ## [example v1 (latest)](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// # example\n//\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n// ## [example v1](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n"},{"name":"releases1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/releases_example\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v1\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v42\"))\n}\n\n// Output:\n// -----------\n// # example_app\n//\n// ## [example_app v2 (latest)](r/demo/examples_example_v2)\n//\n// various improvements\n//\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// no such release\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Q/Jv+Ax9txNGBhPN1K5z/xSZpmwjBeSNE4wuDS4xgSNzTzCxSALo4JgHks5NmkIUler5tkKSoOX+E/0PALSDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"rewards","path":"gno.land/r/sys/rewards","files":[{"name":"rewards.gno","body":"// This package will be used to manage proof-of-contributions on the exposed smart-contract side.\npackage rewards\n\n// TODO: write specs.\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uKzbEi0C0i3qZnt7xMvhksI6F65Fvdfp4BolBSXON3aPXDBEaYttPis4+I3DyFesqm6vFWdNvyFgeXUV/z//Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"rewards","path":"gno.land/r/sys/rewards","files":[{"name":"rewards.gno","body":"// This package will be used to manage proof-of-contributions on the exposed smart-contract side.\npackage rewards\n\n// TODO: write specs.\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uKzbEi0C0i3qZnt7xMvhksI6F65Fvdfp4BolBSXON3aPXDBEaYttPis4+I3DyFesqm6vFWdNvyFgeXUV/z//Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"rewards","path":"gno.land/r/sys/rewards","files":[{"name":"rewards.gno","body":"// This package will be used to manage proof-of-contributions on the exposed smart-contract side.\npackage rewards\n\n// TODO: write specs.\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uKzbEi0C0i3qZnt7xMvhksI6F65Fvdfp4BolBSXON3aPXDBEaYttPis4+I3DyFesqm6vFWdNvyFgeXUV/z//Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"router","path":"gno.land/p/gnome/router","files":[{"name":"LICENSE","body":"Copyright (c) 2024. All rights reserved.\n\nProject Owner:\nNewTendermint, LLC\n\nProject Maintainer:\nİlker Göktuğ ÖZTÜRK. \u003cilker@ilgooz.com\u003e, \u003cilkergoktugozturk@gmail.com\u003e\n\nYour access to this Project and your contributions to this Project are subject\nto the following terms:\n\n* You hereby grant to the listed Owner and Maintainer of this Project the\nworldwide, irrevocable and royalty-free right to use, publish, relicense and\nsublicense your contributions under any non-exclusive license of their\nchoosing for commercial and non-commercial purposes.\n* You shall not attempt to bring any intellectual property infringement or\nmisappropriation claims against the Owner or Maintainer of this Project\nrelating to or arising from your contributions.\n* You represent that you are the sole owner of all rights in your\ncontributions and that no third party has any rights or interests therein.\n\nFOR THE SCOPE OF THIS LICENSE, A CONTRIBUTION IS DEFINED TO INCLUDE ANY WORKS,\nIDEAS, CODE, PROCESSES, OR APIS MADE AVAILABLE TO VIEW BY THE GENERAL PUBLIC\n(INCLUDING ANY PUBLICLY ACCESSIBLE INTERNET FORUMS AND CHAT SERVERS WHERE\nACCESS IS AVAILABLE FOR FREE WITH REGISTRATION) OR PRIVATELY TO THIS PROJECT'S\nOWNER AND MAINTAINERS; INCLUDING WORKS, IDEAS, CODE, PROCESSES, AND APIS THAT\nARE ABOUT THIS PROJECT AND ITS CONTRIBUTIONS, OR MENTIONED IN REFERENCE TO\nTHIS PROJECT, WHERE SUCH WORKS, IDEAS, CODE, PROCESSES, AND APIS ARE MATERIAL\nTO THE SUCCESS, IMPROVEMENT, OR COMPLETION OF THIS PROJECT, AS DETERMINED BY\nTHE OWNER OF THIS PROJECT.\n\nContributions may come in any form, and include (but are not limited to):\n\n* pull requests\n* diff patches\n* commentary\n* example code\n\nIf you do not want your contribution to become incorporated into this Project,\ndo not make contributions to this Project. The creation of contributions that\nmay in the future become known to this Project's Owner and Maintainer\nconstitutes a willing contribution to this Project in accordance with this\nlicense.\n\nTHIS PROJECT AND THE WORKS AVAILABLE THROUGH THIS PROJECT ARE PROVIDED “AS IS”\nAND WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE OWNER OR MAINTAINER OF\nTHIS PROJECT BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THIS PROJECT OR THE WORKS AVAILABLE THROUGH\nTHIS PROJECT. YOU AGREED TO INDEMNIFY, DEFEND AND HOLD THE OWNER AND\nMAINTAINER FROM AND AGAINST ANY CLAIMS, LOSSES OR DAMAGES ARISING FROM YOUR\nUSE OF THIS PROJECT OR THE WORKS AVAILABLE THROUGH THIS PROJECT.\n\nThis license is subject to change at any time by the Project Owner or\nMaintainer.\n\nYour continued access to or use of this Project or any works\navailable through this Project shall be subject to the then-current version\nof this license.\n\nThe Project Owner and Maintainer reserve the right to change this license\nwithout needing the consent of the contributors to this Project.\n"},{"name":"router.gno","body":"package router\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\tResponseWriter interface {\n\t\tWrite(s string)\n\t\tWritef(format string, values ...interface{})\n\t}\n\n\tRequest struct {\n\t\tPath string\n\t\tPrefix string\n\t\tRoute string\n\t\tArgs []string\n\t}\n\n\tHandlerFunc func(ResponseWriter, Request)\n\n\thandler struct {\n\t\tPrefix string\n\t\tFn HandlerFunc\n\t}\n)\n\nfunc NewRouter() Router {\n\treturn Router{}\n}\n\ntype Router struct {\n\thandlers []handler\n}\n\nfunc (r *Router) HandleFunc(prefix string, fn HandlerFunc) {\n\tr.handlers = append(r.handlers, handler{\n\t\tPrefix: prefix,\n\t\tFn: fn,\n\t})\n}\n\nfunc (r Router) Render(path string) string {\n\tprefix, route, args := splitRenderPath(path)\n\n\tfor _, h := range r.handlers {\n\t\tif h.Prefix == prefix {\n\t\t\tvar (\n\t\t\t\tw responseWriter\n\t\t\t\treq = Request{\n\t\t\t\t\tPath: path,\n\t\t\t\t\tPrefix: prefix,\n\t\t\t\t\tRoute: route,\n\t\t\t\t\tArgs: args,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\th.Fn(\u0026w, req)\n\n\t\t\treturn w.Output()\n\t\t}\n\t}\n\n\treturn \"Path not found\"\n}\n\ntype responseWriter struct {\n\toutput strings.Builder\n}\n\nfunc (w *responseWriter) Write(s string) {\n\tw.output.WriteString(s)\n}\n\nfunc (w *responseWriter) Writef(format string, values ...interface{}) {\n\tw.output.WriteString(ufmt.Sprintf(format, values...))\n}\n\nfunc (w responseWriter) Output() string {\n\treturn w.output.String()\n}\n\nfunc splitRenderPath(path string) (prefix, route string, args []string) {\n\t// Split route prefix and route.\n\t// Path format is \"prefix/route:args\".\n\tpath = strings.TrimSpace(path)\n\tif parts := strings.SplitN(path, \"/\", 2); len(parts) == 2 {\n\t\tprefix = parts[0]\n\t\troute = parts[1]\n\n\t\t// Split route and arguments\n\t\tif parts := strings.Split(route, \":\"); len(parts) \u003e 1 {\n\t\t\troute = parts[0]\n\t\t\targs = parts[1:]\n\t\t}\n\t}\n\n\treturn prefix, route, args\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"16000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wPTUQ045aTZbGmknVeWZuab+SsYcSMqr6ClMT31lqgyVd8AIKGIvXogaPCCvfAttSjV1XafcTLW4fM4VgOr+Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"seqid","path":"gno.land/p/demo/seqid","files":[{"name":"README.md","body":"# seqid\n\n```\npackage seqid // import \"gno.land/p/demo/seqid\"\n\nPackage seqid provides a simple way to have sequential IDs which will be ordered\ncorrectly when inserted in an AVL tree.\n\nSample usage:\n\n var id seqid.ID\n var users avl.Tree\n\n func NewUser() {\n \tusers.Set(id.Next().Binary(), \u0026User{ ... })\n }\n\nTYPES\n\ntype ID uint64\n An ID is a simple sequential ID generator.\n\nfunc FromBinary(b string) (ID, bool)\n FromBinary creates a new ID from the given string.\n\nfunc (i ID) Binary() string\n Binary returns a big-endian binary representation of the ID, suitable to be\n used as an AVL key.\n\nfunc (i *ID) Next() ID\n Next advances the ID i. It will panic if increasing ID would overflow.\n\nfunc (i *ID) TryNext() (ID, bool)\n TryNext increases i by 1 and returns its value. It returns true if\n successful, or false if the increment would result in an overflow.\n```\n"},{"name":"seqid.gno","body":"// Package seqid provides a simple way to have sequential IDs which will be\n// ordered correctly when inserted in an AVL tree.\n//\n// Sample usage:\n//\n//\tvar id seqid.ID\n//\tvar users avl.Tree\n//\n//\tfunc NewUser() {\n//\t\tusers.Set(id.Next().String(), \u0026User{ ... })\n//\t}\npackage seqid\n\nimport (\n\t\"encoding/binary\"\n\n\t\"gno.land/p/demo/cford32\"\n)\n\n// An ID is a simple sequential ID generator.\ntype ID uint64\n\n// Next advances the ID i.\n// It will panic if increasing ID would overflow.\nfunc (i *ID) Next() ID {\n\tnext, ok := i.TryNext()\n\tif !ok {\n\t\tpanic(\"seqid: next ID overflows uint64\")\n\t}\n\treturn next\n}\n\nconst maxID ID = 1\u003c\u003c64 - 1\n\n// TryNext increases i by 1 and returns its value.\n// It returns true if successful, or false if the increment would result in\n// an overflow.\nfunc (i *ID) TryNext() (ID, bool) {\n\tif *i == maxID {\n\t\t// Addition will overflow.\n\t\treturn 0, false\n\t}\n\t*i++\n\treturn *i, true\n}\n\n// Binary returns a big-endian binary representation of the ID,\n// suitable to be used as an AVL key.\nfunc (i ID) Binary() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(i))\n\treturn string(buf)\n}\n\n// String encodes i using cford32's compact encoding. For more information,\n// see the documentation for package [gno.land/p/demo/cford32].\n//\n// The result of String will be a 7-byte string for IDs [0,2^34), and a\n// 13-byte string for all values following that. All generated string IDs\n// follow the same lexicographic order as their number values; that is, for any\n// two IDs (x, y) such that x \u003c y, x.String() \u003c y.String().\n// As such, this string representation is suitable to be used as an AVL key.\nfunc (i ID) String() string {\n\treturn string(cford32.PutCompact(uint64(i)))\n}\n\n// FromBinary creates a new ID from the given string, expected to be a binary\n// big-endian encoding of an ID (such as that of [ID.Binary]).\n// The second return value is true if the conversion was successful.\nfunc FromBinary(b string) (ID, bool) {\n\tif len(b) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(b))), true\n}\n\n// FromString creates a new ID from the given string, expected to be a string\n// representation using cford32, such as that returned by [ID.String].\n//\n// The encoding scheme used by cford32 allows the same ID to have many\n// different representations (though the one returned by [ID.String] is only\n// one, deterministic and safe to be used in AVL). The encoding scheme is\n// \"human-centric\" and is thus case insensitive, and maps some ambiguous\n// characters to be the same, ie. L = I = 1, O = 0. For this reason, when\n// parsing user input to retrieve a key (encoded as a string), always sanitize\n// it first using FromString, then run String(), instead of using the user's\n// input directly.\nfunc FromString(b string) (ID, error) {\n\tn, err := cford32.Uint64([]byte(b))\n\treturn ID(n), err\n}\n"},{"name":"seqid_test.gno","body":"package seqid\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestID(t *testing.T) {\n\tvar i ID\n\n\tfor j := 0; j \u003c 100; j++ {\n\t\ti.Next()\n\t}\n\tif i != 100 {\n\t\tt.Fatalf(\"invalid: wanted %d got %d\", 100, i)\n\t}\n}\n\nfunc TestID_Overflow(t *testing.T) {\n\ti := ID(maxID)\n\n\tdefer func() {\n\t\terr := recover()\n\t\tif !strings.Contains(fmt.Sprint(err), \"next ID overflows\") {\n\t\t\tt.Errorf(\"did not overflow\")\n\t\t}\n\t}()\n\n\ti.Next()\n}\n\nfunc TestID_Binary(t *testing.T) {\n\tvar i ID\n\tprev := i.Binary()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().Binary()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %x \u003e prev %x\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n\nfunc TestID_String(t *testing.T) {\n\tvar i ID\n\tprev := i.String()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().String()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n\n\t// Test for when cford32 switches over to the long encoding.\n\ti = 1\u003c\u003c34 - 512\n\tfor j := 0; j \u003c 1024; j++ {\n\t\tcur := i.Next().String()\n\t\t// println(cur)\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lyw9a0wb6JGHOe9VA+lG0IMuEE3/lJ16DFbrnHWZKJ6cBgh6XcODBkL4g1DpH9HAHIJkkO6qsMO/HDBbAHuiDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"seqid","path":"gno.land/p/demo/seqid","files":[{"name":"README.md","body":"# seqid\n\n```\npackage seqid // import \"gno.land/p/demo/seqid\"\n\nPackage seqid provides a simple way to have sequential IDs which will be ordered\ncorrectly when inserted in an AVL tree.\n\nSample usage:\n\n var id seqid.ID\n var users avl.Tree\n\n func NewUser() {\n \tusers.Set(id.Next().Binary(), \u0026User{ ... })\n }\n\nTYPES\n\ntype ID uint64\n An ID is a simple sequential ID generator.\n\nfunc FromBinary(b string) (ID, bool)\n FromBinary creates a new ID from the given string.\n\nfunc (i ID) Binary() string\n Binary returns a big-endian binary representation of the ID, suitable to be\n used as an AVL key.\n\nfunc (i *ID) Next() ID\n Next advances the ID i. It will panic if increasing ID would overflow.\n\nfunc (i *ID) TryNext() (ID, bool)\n TryNext increases i by 1 and returns its value. It returns true if\n successful, or false if the increment would result in an overflow.\n```\n"},{"name":"seqid.gno","body":"// Package seqid provides a simple way to have sequential IDs which will be\n// ordered correctly when inserted in an AVL tree.\n//\n// Sample usage:\n//\n//\tvar id seqid.ID\n//\tvar users avl.Tree\n//\n//\tfunc NewUser() {\n//\t\tusers.Set(id.Next().String(), \u0026User{ ... })\n//\t}\npackage seqid\n\nimport (\n\t\"encoding/binary\"\n\n\t\"gno.land/p/demo/cford32\"\n)\n\n// An ID is a simple sequential ID generator.\ntype ID uint64\n\n// Next advances the ID i.\n// It will panic if increasing ID would overflow.\nfunc (i *ID) Next() ID {\n\tnext, ok := i.TryNext()\n\tif !ok {\n\t\tpanic(\"seqid: next ID overflows uint64\")\n\t}\n\treturn next\n}\n\nconst maxID ID = 1\u003c\u003c64 - 1\n\n// TryNext increases i by 1 and returns its value.\n// It returns true if successful, or false if the increment would result in\n// an overflow.\nfunc (i *ID) TryNext() (ID, bool) {\n\tif *i == maxID {\n\t\t// Addition will overflow.\n\t\treturn 0, false\n\t}\n\t*i++\n\treturn *i, true\n}\n\n// Binary returns a big-endian binary representation of the ID,\n// suitable to be used as an AVL key.\nfunc (i ID) Binary() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(i))\n\treturn string(buf)\n}\n\n// String encodes i using cford32's compact encoding. For more information,\n// see the documentation for package [gno.land/p/demo/cford32].\n//\n// The result of String will be a 7-byte string for IDs [0,2^34), and a\n// 13-byte string for all values following that. All generated string IDs\n// follow the same lexicographic order as their number values; that is, for any\n// two IDs (x, y) such that x \u003c y, x.String() \u003c y.String().\n// As such, this string representation is suitable to be used as an AVL key.\nfunc (i ID) String() string {\n\treturn string(cford32.PutCompact(uint64(i)))\n}\n\n// FromBinary creates a new ID from the given string, expected to be a binary\n// big-endian encoding of an ID (such as that of [ID.Binary]).\n// The second return value is true if the conversion was successful.\nfunc FromBinary(b string) (ID, bool) {\n\tif len(b) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(b))), true\n}\n\n// FromString creates a new ID from the given string, expected to be a string\n// representation using cford32, such as that returned by [ID.String].\n//\n// The encoding scheme used by cford32 allows the same ID to have many\n// different representations (though the one returned by [ID.String] is only\n// one, deterministic and safe to be used in AVL). The encoding scheme is\n// \"human-centric\" and is thus case insensitive, and maps some ambiguous\n// characters to be the same, ie. L = I = 1, O = 0. For this reason, when\n// parsing user input to retrieve a key (encoded as a string), always sanitize\n// it first using FromString, then run String(), instead of using the user's\n// input directly.\nfunc FromString(b string) (ID, error) {\n\tn, err := cford32.Uint64([]byte(b))\n\treturn ID(n), err\n}\n"},{"name":"seqid_test.gno","body":"package seqid\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestID(t *testing.T) {\n\tvar i ID\n\n\tfor j := 0; j \u003c 100; j++ {\n\t\ti.Next()\n\t}\n\tif i != 100 {\n\t\tt.Fatalf(\"invalid: wanted %d got %d\", 100, i)\n\t}\n}\n\nfunc TestID_Overflow(t *testing.T) {\n\ti := ID(maxID)\n\n\tdefer func() {\n\t\terr := recover()\n\t\tif !strings.Contains(fmt.Sprint(err), \"next ID overflows\") {\n\t\t\tt.Errorf(\"did not overflow\")\n\t\t}\n\t}()\n\n\ti.Next()\n}\n\nfunc TestID_Binary(t *testing.T) {\n\tvar i ID\n\tprev := i.Binary()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().Binary()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %x \u003e prev %x\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n\nfunc TestID_String(t *testing.T) {\n\tvar i ID\n\tprev := i.String()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().String()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n\n\t// Test for when cford32 switches over to the long encoding.\n\ti = 1\u003c\u003c34 - 512\n\tfor j := 0; j \u003c 1024; j++ {\n\t\tcur := i.Next().String()\n\t\t// println(cur)\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lyw9a0wb6JGHOe9VA+lG0IMuEE3/lJ16DFbrnHWZKJ6cBgh6XcODBkL4g1DpH9HAHIJkkO6qsMO/HDBbAHuiDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"seqid","path":"gno.land/p/demo/seqid","files":[{"name":"README.md","body":"# seqid\n\n```\npackage seqid // import \"gno.land/p/demo/seqid\"\n\nPackage seqid provides a simple way to have sequential IDs which will be ordered\ncorrectly when inserted in an AVL tree.\n\nSample usage:\n\n var id seqid.ID\n var users avl.Tree\n\n func NewUser() {\n \tusers.Set(id.Next().Binary(), \u0026User{ ... })\n }\n\nTYPES\n\ntype ID uint64\n An ID is a simple sequential ID generator.\n\nfunc FromBinary(b string) (ID, bool)\n FromBinary creates a new ID from the given string.\n\nfunc (i ID) Binary() string\n Binary returns a big-endian binary representation of the ID, suitable to be\n used as an AVL key.\n\nfunc (i *ID) Next() ID\n Next advances the ID i. It will panic if increasing ID would overflow.\n\nfunc (i *ID) TryNext() (ID, bool)\n TryNext increases i by 1 and returns its value. It returns true if\n successful, or false if the increment would result in an overflow.\n```\n"},{"name":"seqid.gno","body":"// Package seqid provides a simple way to have sequential IDs which will be\n// ordered correctly when inserted in an AVL tree.\n//\n// Sample usage:\n//\n//\tvar id seqid.ID\n//\tvar users avl.Tree\n//\n//\tfunc NewUser() {\n//\t\tusers.Set(id.Next().String(), \u0026User{ ... })\n//\t}\npackage seqid\n\nimport (\n\t\"encoding/binary\"\n\n\t\"gno.land/p/demo/cford32\"\n)\n\n// An ID is a simple sequential ID generator.\ntype ID uint64\n\n// Next advances the ID i.\n// It will panic if increasing ID would overflow.\nfunc (i *ID) Next() ID {\n\tnext, ok := i.TryNext()\n\tif !ok {\n\t\tpanic(\"seqid: next ID overflows uint64\")\n\t}\n\treturn next\n}\n\nconst maxID ID = 1\u003c\u003c64 - 1\n\n// TryNext increases i by 1 and returns its value.\n// It returns true if successful, or false if the increment would result in\n// an overflow.\nfunc (i *ID) TryNext() (ID, bool) {\n\tif *i == maxID {\n\t\t// Addition will overflow.\n\t\treturn 0, false\n\t}\n\t*i++\n\treturn *i, true\n}\n\n// Binary returns a big-endian binary representation of the ID,\n// suitable to be used as an AVL key.\nfunc (i ID) Binary() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(i))\n\treturn string(buf)\n}\n\n// String encodes i using cford32's compact encoding. For more information,\n// see the documentation for package [gno.land/p/demo/cford32].\n//\n// The result of String will be a 7-byte string for IDs [0,2^34), and a\n// 13-byte string for all values following that. All generated string IDs\n// follow the same lexicographic order as their number values; that is, for any\n// two IDs (x, y) such that x \u003c y, x.String() \u003c y.String().\n// As such, this string representation is suitable to be used as an AVL key.\nfunc (i ID) String() string {\n\treturn string(cford32.PutCompact(uint64(i)))\n}\n\n// FromBinary creates a new ID from the given string, expected to be a binary\n// big-endian encoding of an ID (such as that of [ID.Binary]).\n// The second return value is true if the conversion was successful.\nfunc FromBinary(b string) (ID, bool) {\n\tif len(b) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(b))), true\n}\n\n// FromString creates a new ID from the given string, expected to be a string\n// representation using cford32, such as that returned by [ID.String].\n//\n// The encoding scheme used by cford32 allows the same ID to have many\n// different representations (though the one returned by [ID.String] is only\n// one, deterministic and safe to be used in AVL). The encoding scheme is\n// \"human-centric\" and is thus case insensitive, and maps some ambiguous\n// characters to be the same, ie. L = I = 1, O = 0. For this reason, when\n// parsing user input to retrieve a key (encoded as a string), always sanitize\n// it first using FromString, then run String(), instead of using the user's\n// input directly.\nfunc FromString(b string) (ID, error) {\n\tn, err := cford32.Uint64([]byte(b))\n\treturn ID(n), err\n}\n"},{"name":"seqid_test.gno","body":"package seqid\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestID(t *testing.T) {\n\tvar i ID\n\n\tfor j := 0; j \u003c 100; j++ {\n\t\ti.Next()\n\t}\n\tif i != 100 {\n\t\tt.Fatalf(\"invalid: wanted %d got %d\", 100, i)\n\t}\n}\n\nfunc TestID_Overflow(t *testing.T) {\n\ti := ID(maxID)\n\n\tdefer func() {\n\t\terr := recover()\n\t\tif !strings.Contains(fmt.Sprint(err), \"next ID overflows\") {\n\t\t\tt.Errorf(\"did not overflow\")\n\t\t}\n\t}()\n\n\ti.Next()\n}\n\nfunc TestID_Binary(t *testing.T) {\n\tvar i ID\n\tprev := i.Binary()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().Binary()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %x \u003e prev %x\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n\nfunc TestID_String(t *testing.T) {\n\tvar i ID\n\tprev := i.String()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().String()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n\n\t// Test for when cford32 switches over to the long encoding.\n\ti = 1\u003c\u003c34 - 512\n\tfor j := 0; j \u003c 1024; j++ {\n\t\tcur := i.Next().String()\n\t\t// println(cur)\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lyw9a0wb6JGHOe9VA+lG0IMuEE3/lJ16DFbrnHWZKJ6cBgh6XcODBkL4g1DpH9HAHIJkkO6qsMO/HDBbAHuiDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"shifumi","path":"gno.land/r/demo/games/shifumi","files":[{"name":"shifumi.gno","body":"package shifumi\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst (\n\tempty = iota\n\trock\n\tpaper\n\tscissors\n\tlast\n)\n\ntype game struct {\n\tplayer1, player2 std.Address // shifumi is a 2 players game\n\tmove1, move2 int // can be empty, rock, paper, or scissors\n}\n\nvar games avl.Tree\nvar id seqid.ID\n\nfunc (g *game) play(player std.Address, move int) error {\n\tif !(move \u003e empty \u0026\u0026 move \u003c last) {\n\t\treturn errors.New(\"invalid move\")\n\t}\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\tif player == g.player1 \u0026\u0026 g.move1 == empty {\n\t\tg.move1 = move\n\t\treturn nil\n\t}\n\tif player == g.player2 \u0026\u0026 g.move2 == empty {\n\t\tg.move2 = move\n\t\treturn nil\n\t}\n\treturn errors.New(\"already played\")\n}\n\nfunc (g *game) winner() int {\n\tif g.move1 == empty || g.move2 == empty {\n\t\treturn -1\n\t}\n\tif g.move1 == g.move2 {\n\t\treturn 0\n\t}\n\tif g.move1 == rock \u0026\u0026 g.move2 == scissors ||\n\t\tg.move1 == paper \u0026\u0026 g.move2 == rock ||\n\t\tg.move1 == scissors \u0026\u0026 g.move2 == paper {\n\t\treturn 1\n\t}\n\treturn 2\n}\n\n// NewGame creates a new game where player1 is the caller and player2 the argument.\n// A new game index is returned.\nfunc NewGame(player std.Address) int {\n\tgames.Set(id.Next().String(), \u0026game{player1: std.PrevRealm().Addr(), player2: player})\n\treturn int(id)\n}\n\n// Play executes a move for the game at index idx, where move can be:\n// 1 (rock), 2 (paper), 3 (scissors).\nfunc Play(idx, move int) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\tpanic(\"game not found\")\n\t}\n\tif err := v.(*game).play(std.PrevRealm().Addr(), move); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tmov1 := []string{\"\", \" 🤜 \", \" 🫱 \", \" 👉 \"}\n\tmov2 := []string{\"\", \" 🤛 \", \" 🫲 \", \" 👈 \"}\n\twin := []string{\"pending\", \"draw\", \"player1\", \"player2\"}\n\n\toutput := `# 👊 ✋ ✌️ Shifumi\nActions:\n* [NewGame](shifumi$help\u0026func=NewGame) opponentAddress\n* [Play](shifumi$help\u0026func=Play) gameIndex move (1=rock, 2=paper, 3=scissors)\n\n game | player1 | | player2 | | win \n --- | --- | --- | --- | --- | ---\n`\n\t// Output the 100 most recent games.\n\tmaxGames := 100\n\tfor n := int(id); n \u003e 0 \u0026\u0026 int(id)-n \u003c maxGames; n-- {\n\t\tv, ok := games.Get(seqid.ID(n).String())\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tg := v.(*game)\n\t\toutput += strconv.Itoa(n) + \" | \" +\n\t\t\tshortName(g.player1) + \" | \" + mov1[g.move1] + \" | \" +\n\t\t\tshortName(g.player2) + \" | \" + mov2[g.move2] + \" | \" +\n\t\t\twin[g.winner()+1] + \"\\n\"\n\t}\n\treturn output\n}\n\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TR00H66IhuuShAL7eWTzBmSES3nFMAz0Ppum3OtSfmkTSemxUvSyHsk3qKQaRQvwB0/cFfnh8xT45Md6GUtzDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"shifumi","path":"gno.land/r/demo/games/shifumi","files":[{"name":"shifumi.gno","body":"package shifumi\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst (\n\tempty = iota\n\trock\n\tpaper\n\tscissors\n\tlast\n)\n\ntype game struct {\n\tplayer1, player2 std.Address // shifumi is a 2 players game\n\tmove1, move2 int // can be empty, rock, paper, or scissors\n}\n\nvar games avl.Tree\nvar id seqid.ID\n\nfunc (g *game) play(player std.Address, move int) error {\n\tif !(move \u003e empty \u0026\u0026 move \u003c last) {\n\t\treturn errors.New(\"invalid move\")\n\t}\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\tif player == g.player1 \u0026\u0026 g.move1 == empty {\n\t\tg.move1 = move\n\t\treturn nil\n\t}\n\tif player == g.player2 \u0026\u0026 g.move2 == empty {\n\t\tg.move2 = move\n\t\treturn nil\n\t}\n\treturn errors.New(\"already played\")\n}\n\nfunc (g *game) winner() int {\n\tif g.move1 == empty || g.move2 == empty {\n\t\treturn -1\n\t}\n\tif g.move1 == g.move2 {\n\t\treturn 0\n\t}\n\tif g.move1 == rock \u0026\u0026 g.move2 == scissors ||\n\t\tg.move1 == paper \u0026\u0026 g.move2 == rock ||\n\t\tg.move1 == scissors \u0026\u0026 g.move2 == paper {\n\t\treturn 1\n\t}\n\treturn 2\n}\n\n// NewGame creates a new game where player1 is the caller and player2 the argument.\n// A new game index is returned.\nfunc NewGame(player std.Address) int {\n\tgames.Set(id.Next().String(), \u0026game{player1: std.PrevRealm().Addr(), player2: player})\n\treturn int(id)\n}\n\n// Play executes a move for the game at index idx, where move can be:\n// 1 (rock), 2 (paper), 3 (scissors).\nfunc Play(idx, move int) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\tpanic(\"game not found\")\n\t}\n\tif err := v.(*game).play(std.PrevRealm().Addr(), move); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tmov1 := []string{\"\", \" 🤜 \", \" 🫱 \", \" 👉 \"}\n\tmov2 := []string{\"\", \" 🤛 \", \" 🫲 \", \" 👈 \"}\n\twin := []string{\"pending\", \"draw\", \"player1\", \"player2\"}\n\n\toutput := `# 👊 ✋ ✌️ Shifumi\nActions:\n* [NewGame](shifumi$help\u0026func=NewGame) opponentAddress\n* [Play](shifumi$help\u0026func=Play) gameIndex move (1=rock, 2=paper, 3=scissors)\n\n game | player1 | | player2 | | win \n --- | --- | --- | --- | --- | ---\n`\n\t// Output the 100 most recent games.\n\tmaxGames := 100\n\tfor n := int(id); n \u003e 0 \u0026\u0026 int(id)-n \u003c maxGames; n-- {\n\t\tv, ok := games.Get(seqid.ID(n).String())\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tg := v.(*game)\n\t\toutput += strconv.Itoa(n) + \" | \" +\n\t\t\tshortName(g.player1) + \" | \" + mov1[g.move1] + \" | \" +\n\t\t\tshortName(g.player2) + \" | \" + mov2[g.move2] + \" | \" +\n\t\t\twin[g.winner()+1] + \"\\n\"\n\t}\n\treturn output\n}\n\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TR00H66IhuuShAL7eWTzBmSES3nFMAz0Ppum3OtSfmkTSemxUvSyHsk3qKQaRQvwB0/cFfnh8xT45Md6GUtzDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"shifumi","path":"gno.land/r/demo/games/shifumi","files":[{"name":"shifumi.gno","body":"package shifumi\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst (\n\tempty = iota\n\trock\n\tpaper\n\tscissors\n\tlast\n)\n\ntype game struct {\n\tplayer1, player2 std.Address // shifumi is a 2 players game\n\tmove1, move2 int // can be empty, rock, paper, or scissors\n}\n\nvar games avl.Tree\nvar id seqid.ID\n\nfunc (g *game) play(player std.Address, move int) error {\n\tif !(move \u003e empty \u0026\u0026 move \u003c last) {\n\t\treturn errors.New(\"invalid move\")\n\t}\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\tif player == g.player1 \u0026\u0026 g.move1 == empty {\n\t\tg.move1 = move\n\t\treturn nil\n\t}\n\tif player == g.player2 \u0026\u0026 g.move2 == empty {\n\t\tg.move2 = move\n\t\treturn nil\n\t}\n\treturn errors.New(\"already played\")\n}\n\nfunc (g *game) winner() int {\n\tif g.move1 == empty || g.move2 == empty {\n\t\treturn -1\n\t}\n\tif g.move1 == g.move2 {\n\t\treturn 0\n\t}\n\tif g.move1 == rock \u0026\u0026 g.move2 == scissors ||\n\t\tg.move1 == paper \u0026\u0026 g.move2 == rock ||\n\t\tg.move1 == scissors \u0026\u0026 g.move2 == paper {\n\t\treturn 1\n\t}\n\treturn 2\n}\n\n// NewGame creates a new game where player1 is the caller and player2 the argument.\n// A new game index is returned.\nfunc NewGame(player std.Address) int {\n\tgames.Set(id.Next().String(), \u0026game{player1: std.PrevRealm().Addr(), player2: player})\n\treturn int(id)\n}\n\n// Play executes a move for the game at index idx, where move can be:\n// 1 (rock), 2 (paper), 3 (scissors).\nfunc Play(idx, move int) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\tpanic(\"game not found\")\n\t}\n\tif err := v.(*game).play(std.PrevRealm().Addr(), move); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tmov1 := []string{\"\", \" 🤜 \", \" 🫱 \", \" 👉 \"}\n\tmov2 := []string{\"\", \" 🤛 \", \" 🫲 \", \" 👈 \"}\n\twin := []string{\"pending\", \"draw\", \"player1\", \"player2\"}\n\n\toutput := `# 👊 ✋ ✌️ Shifumi\nActions:\n* [NewGame](shifumi$help\u0026func=NewGame) opponentAddress\n* [Play](shifumi$help\u0026func=Play) gameIndex move (1=rock, 2=paper, 3=scissors)\n\n game | player1 | | player2 | | win \n --- | --- | --- | --- | --- | ---\n`\n\t// Output the 100 most recent games.\n\tmaxGames := 100\n\tfor n := int(id); n \u003e 0 \u0026\u0026 int(id)-n \u003c maxGames; n-- {\n\t\tv, ok := games.Get(seqid.ID(n).String())\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tg := v.(*game)\n\t\toutput += strconv.Itoa(n) + \" | \" +\n\t\t\tshortName(g.player1) + \" | \" + mov1[g.move1] + \" | \" +\n\t\t\tshortName(g.player2) + \" | \" + mov2[g.move2] + \" | \" +\n\t\t\twin[g.winner()+1] + \"\\n\"\n\t}\n\treturn output\n}\n\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TR00H66IhuuShAL7eWTzBmSES3nFMAz0Ppum3OtSfmkTSemxUvSyHsk3qKQaRQvwB0/cFfnh8xT45Md6GUtzDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simple","path":"gno.land/p/demo/gnorkle/storage/simple","files":[{"name":"storage.gno","body":"package simple\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/storage\"\n)\n\n// Storage is simple, bounded storage for published feed values.\ntype Storage struct {\n\tvalues []feed.Value\n\tmaxValues uint\n}\n\n// NewStorage creates a new Storage with the given maximum number of values.\n// If maxValues is 0, the storage is bounded to a size of one. If this is not desirable,\n// then don't provide a value of 0.\nfunc NewStorage(maxValues uint) *Storage {\n\tif maxValues == 0 {\n\t\tmaxValues = 1\n\t}\n\n\treturn \u0026Storage{\n\t\tmaxValues: maxValues,\n\t}\n}\n\n// Put adds a new value to the storage. If the storage is full, the oldest value\n// is removed. If maxValues is 0, the storage is bounded to a size of one.\nfunc (s *Storage) Put(value string) error {\n\tif s == nil {\n\t\treturn storage.ErrUndefined\n\t}\n\n\ts.values = append(s.values, feed.Value{String: value, Time: time.Now()})\n\tif uint(len(s.values)) \u003e s.maxValues {\n\t\ts.values = s.values[1:]\n\t}\n\n\treturn nil\n}\n\n// GetLatest returns the most recently added value, or an empty value if none exist.\nfunc (s Storage) GetLatest() feed.Value {\n\tif len(s.values) == 0 {\n\t\treturn feed.Value{}\n\t}\n\n\treturn s.values[len(s.values)-1]\n}\n\n// GetHistory returns all values in the storage, from oldest to newest.\nfunc (s Storage) GetHistory() []feed.Value {\n\treturn s.values\n}\n"},{"name":"storage_test.gno","body":"package simple_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/storage\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestStorage(t *testing.T) {\n\tvar undefinedStorage *simple.Storage\n\terr := undefinedStorage.Put(\"\")\n\tuassert.ErrorIs(t, err, storage.ErrUndefined, \"expected storage.ErrUndefined on undefined storage\")\n\n\ttests := []struct {\n\t\tname string\n\t\tvaluesToPut []string\n\t\texpLatestValueString string\n\t\texpLatestValueTimeIsZero bool\n\t\texpHistoricalValueStrings []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\texpLatestValueTimeIsZero: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one value\",\n\t\t\tvaluesToPut: []string{\"one\"},\n\t\t\texpLatestValueString: \"one\",\n\t\t\texpHistoricalValueStrings: []string{\"one\"},\n\t\t},\n\t\t{\n\t\t\tname: \"two values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\"},\n\t\t\texpLatestValueString: \"two\",\n\t\t\texpHistoricalValueStrings: []string{\"one\", \"two\"},\n\t\t},\n\t\t{\n\t\t\tname: \"three values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\", \"three\"},\n\t\t\texpLatestValueString: \"three\",\n\t\t\texpHistoricalValueStrings: []string{\"two\", \"three\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsimpleStorage := simple.NewStorage(2)\n\t\t\tfor _, value := range tt.valuesToPut {\n\t\t\t\terr := simpleStorage.Put(value)\n\t\t\t\turequire.NoError(t, err, \"unexpected error putting value in storage\")\n\t\t\t}\n\n\t\t\tlatestValue := simpleStorage.GetLatest()\n\t\t\tuassert.Equal(t, tt.expLatestValueString, latestValue.String)\n\t\t\tuassert.Equal(t, tt.expLatestValueTimeIsZero, latestValue.Time.IsZero())\n\n\t\t\thistoricalValues := simpleStorage.GetHistory()\n\t\t\turequire.Equal(t, len(tt.expHistoricalValueStrings), len(historicalValues), \"historical values length does not match\")\n\n\t\t\tfor i, expValue := range tt.expHistoricalValueStrings {\n\t\t\t\tuassert.Equal(t, historicalValues[i].String, expValue)\n\t\t\t\turequire.False(t, historicalValues[i].Time.IsZero(), ufmt.Sprintf(\"unexpeced zero time for historical value at index %d\", i))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YRgeH5Vrw/ceKeJUhtUIZfmuB6G0eEgYCQyE0pKBfuWG5SW5lHwLwKJt5Ewsxb47F55oT59A/5BzZOTBH1BnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simple","path":"gno.land/p/demo/gnorkle/storage/simple","files":[{"name":"storage.gno","body":"package simple\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/storage\"\n)\n\n// Storage is simple, bounded storage for published feed values.\ntype Storage struct {\n\tvalues []feed.Value\n\tmaxValues uint\n}\n\n// NewStorage creates a new Storage with the given maximum number of values.\n// If maxValues is 0, the storage is bounded to a size of one. If this is not desirable,\n// then don't provide a value of 0.\nfunc NewStorage(maxValues uint) *Storage {\n\tif maxValues == 0 {\n\t\tmaxValues = 1\n\t}\n\n\treturn \u0026Storage{\n\t\tmaxValues: maxValues,\n\t}\n}\n\n// Put adds a new value to the storage. If the storage is full, the oldest value\n// is removed. If maxValues is 0, the storage is bounded to a size of one.\nfunc (s *Storage) Put(value string) error {\n\tif s == nil {\n\t\treturn storage.ErrUndefined\n\t}\n\n\ts.values = append(s.values, feed.Value{String: value, Time: time.Now()})\n\tif uint(len(s.values)) \u003e s.maxValues {\n\t\ts.values = s.values[1:]\n\t}\n\n\treturn nil\n}\n\n// GetLatest returns the most recently added value, or an empty value if none exist.\nfunc (s Storage) GetLatest() feed.Value {\n\tif len(s.values) == 0 {\n\t\treturn feed.Value{}\n\t}\n\n\treturn s.values[len(s.values)-1]\n}\n\n// GetHistory returns all values in the storage, from oldest to newest.\nfunc (s Storage) GetHistory() []feed.Value {\n\treturn s.values\n}\n"},{"name":"storage_test.gno","body":"package simple_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/storage\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestStorage(t *testing.T) {\n\tvar undefinedStorage *simple.Storage\n\terr := undefinedStorage.Put(\"\")\n\tuassert.ErrorIs(t, err, storage.ErrUndefined, \"expected storage.ErrUndefined on undefined storage\")\n\n\ttests := []struct {\n\t\tname string\n\t\tvaluesToPut []string\n\t\texpLatestValueString string\n\t\texpLatestValueTimeIsZero bool\n\t\texpHistoricalValueStrings []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\texpLatestValueTimeIsZero: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one value\",\n\t\t\tvaluesToPut: []string{\"one\"},\n\t\t\texpLatestValueString: \"one\",\n\t\t\texpHistoricalValueStrings: []string{\"one\"},\n\t\t},\n\t\t{\n\t\t\tname: \"two values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\"},\n\t\t\texpLatestValueString: \"two\",\n\t\t\texpHistoricalValueStrings: []string{\"one\", \"two\"},\n\t\t},\n\t\t{\n\t\t\tname: \"three values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\", \"three\"},\n\t\t\texpLatestValueString: \"three\",\n\t\t\texpHistoricalValueStrings: []string{\"two\", \"three\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsimpleStorage := simple.NewStorage(2)\n\t\t\tfor _, value := range tt.valuesToPut {\n\t\t\t\terr := simpleStorage.Put(value)\n\t\t\t\turequire.NoError(t, err, \"unexpected error putting value in storage\")\n\t\t\t}\n\n\t\t\tlatestValue := simpleStorage.GetLatest()\n\t\t\tuassert.Equal(t, tt.expLatestValueString, latestValue.String)\n\t\t\tuassert.Equal(t, tt.expLatestValueTimeIsZero, latestValue.Time.IsZero())\n\n\t\t\thistoricalValues := simpleStorage.GetHistory()\n\t\t\turequire.Equal(t, len(tt.expHistoricalValueStrings), len(historicalValues), \"historical values length does not match\")\n\n\t\t\tfor i, expValue := range tt.expHistoricalValueStrings {\n\t\t\t\tuassert.Equal(t, historicalValues[i].String, expValue)\n\t\t\t\turequire.False(t, historicalValues[i].Time.IsZero(), ufmt.Sprintf(\"unexpeced zero time for historical value at index %d\", i))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YRgeH5Vrw/ceKeJUhtUIZfmuB6G0eEgYCQyE0pKBfuWG5SW5lHwLwKJt5Ewsxb47F55oT59A/5BzZOTBH1BnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simple","path":"gno.land/p/demo/gnorkle/storage/simple","files":[{"name":"storage.gno","body":"package simple\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/storage\"\n)\n\n// Storage is simple, bounded storage for published feed values.\ntype Storage struct {\n\tvalues []feed.Value\n\tmaxValues uint\n}\n\n// NewStorage creates a new Storage with the given maximum number of values.\n// If maxValues is 0, the storage is bounded to a size of one. If this is not desirable,\n// then don't provide a value of 0.\nfunc NewStorage(maxValues uint) *Storage {\n\tif maxValues == 0 {\n\t\tmaxValues = 1\n\t}\n\n\treturn \u0026Storage{\n\t\tmaxValues: maxValues,\n\t}\n}\n\n// Put adds a new value to the storage. If the storage is full, the oldest value\n// is removed. If maxValues is 0, the storage is bounded to a size of one.\nfunc (s *Storage) Put(value string) error {\n\tif s == nil {\n\t\treturn storage.ErrUndefined\n\t}\n\n\ts.values = append(s.values, feed.Value{String: value, Time: time.Now()})\n\tif uint(len(s.values)) \u003e s.maxValues {\n\t\ts.values = s.values[1:]\n\t}\n\n\treturn nil\n}\n\n// GetLatest returns the most recently added value, or an empty value if none exist.\nfunc (s Storage) GetLatest() feed.Value {\n\tif len(s.values) == 0 {\n\t\treturn feed.Value{}\n\t}\n\n\treturn s.values[len(s.values)-1]\n}\n\n// GetHistory returns all values in the storage, from oldest to newest.\nfunc (s Storage) GetHistory() []feed.Value {\n\treturn s.values\n}\n"},{"name":"storage_test.gno","body":"package simple_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/storage\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestStorage(t *testing.T) {\n\tvar undefinedStorage *simple.Storage\n\terr := undefinedStorage.Put(\"\")\n\tuassert.ErrorIs(t, err, storage.ErrUndefined, \"expected storage.ErrUndefined on undefined storage\")\n\n\ttests := []struct {\n\t\tname string\n\t\tvaluesToPut []string\n\t\texpLatestValueString string\n\t\texpLatestValueTimeIsZero bool\n\t\texpHistoricalValueStrings []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\texpLatestValueTimeIsZero: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one value\",\n\t\t\tvaluesToPut: []string{\"one\"},\n\t\t\texpLatestValueString: \"one\",\n\t\t\texpHistoricalValueStrings: []string{\"one\"},\n\t\t},\n\t\t{\n\t\t\tname: \"two values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\"},\n\t\t\texpLatestValueString: \"two\",\n\t\t\texpHistoricalValueStrings: []string{\"one\", \"two\"},\n\t\t},\n\t\t{\n\t\t\tname: \"three values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\", \"three\"},\n\t\t\texpLatestValueString: \"three\",\n\t\t\texpHistoricalValueStrings: []string{\"two\", \"three\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsimpleStorage := simple.NewStorage(2)\n\t\t\tfor _, value := range tt.valuesToPut {\n\t\t\t\terr := simpleStorage.Put(value)\n\t\t\t\turequire.NoError(t, err, \"unexpected error putting value in storage\")\n\t\t\t}\n\n\t\t\tlatestValue := simpleStorage.GetLatest()\n\t\t\tuassert.Equal(t, tt.expLatestValueString, latestValue.String)\n\t\t\tuassert.Equal(t, tt.expLatestValueTimeIsZero, latestValue.Time.IsZero())\n\n\t\t\thistoricalValues := simpleStorage.GetHistory()\n\t\t\turequire.Equal(t, len(tt.expHistoricalValueStrings), len(historicalValues), \"historical values length does not match\")\n\n\t\t\tfor i, expValue := range tt.expHistoricalValueStrings {\n\t\t\t\tuassert.Equal(t, historicalValues[i].String, expValue)\n\t\t\t\turequire.False(t, historicalValues[i].Time.IsZero(), ufmt.Sprintf(\"unexpeced zero time for historical value at index %d\", i))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YRgeH5Vrw/ceKeJUhtUIZfmuB6G0eEgYCQyE0pKBfuWG5SW5lHwLwKJt5Ewsxb47F55oT59A/5BzZOTBH1BnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simpledao","path":"gno.land/p/demo/simpledao","files":[{"name":"dao.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrInvalidExecutor = errors.New(\"invalid executor provided\")\n\tErrInsufficientProposalFunds = errors.New(\"insufficient funds for proposal\")\n\tErrInsufficientExecuteFunds = errors.New(\"insufficient funds for executing proposal\")\n\tErrProposalExecuted = errors.New(\"proposal already executed\")\n\tErrProposalInactive = errors.New(\"proposal is inactive\")\n\tErrProposalNotAccepted = errors.New(\"proposal is not accepted\")\n)\n\nvar (\n\tminProposalFeeValue int64 = 100 * 1_000_000 // minimum gnot required for a govdao proposal (100 GNOT)\n\tminExecuteFeeValue int64 = 500 * 1_000_000 // minimum gnot required for a govdao proposal (500 GNOT)\n\n\tminProposalFee = std.NewCoin(\"ugnot\", minProposalFeeValue)\n\tminExecuteFee = std.NewCoin(\"ugnot\", minExecuteFeeValue)\n)\n\n// SimpleDAO is a simple DAO implementation\ntype SimpleDAO struct {\n\tproposals *avl.Tree // seqid.ID -\u003e proposal\n\tmembStore membstore.MemberStore\n}\n\n// New creates a new instance of the simpledao DAO\nfunc New(membStore membstore.MemberStore) *SimpleDAO {\n\treturn \u0026SimpleDAO{\n\t\tproposals: avl.NewTree(),\n\t\tmembStore: membStore,\n\t}\n}\n\nfunc (s *SimpleDAO) Propose(request dao.ProposalRequest) (uint64, error) {\n\t// Make sure the executor is set\n\tif request.Executor == nil {\n\t\treturn 0, ErrInvalidExecutor\n\t}\n\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minProposalFee.Amount\n\t)\n\n\t// Check if the proposal is valid\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn 0, ErrInsufficientProposalFunds\n\t}\n\n\t// Create the wrapped proposal\n\tprop := \u0026proposal{\n\t\tauthor: caller,\n\t\tdescription: request.Description,\n\t\texecutor: request.Executor,\n\t\tstatus: dao.Active,\n\t\ttally: newTally(),\n\t\tgetTotalVotingPowerFn: s.membStore.TotalPower,\n\t}\n\n\t// Add the proposal\n\tid, err := s.addProposal(prop)\n\tif err != nil {\n\t\treturn 0, ufmt.Errorf(\"unable to add proposal, %s\", err.Error())\n\t}\n\n\t// Emit the proposal added event\n\tdao.EmitProposalAdded(id, caller)\n\n\treturn id, nil\n}\n\nfunc (s *SimpleDAO) VoteOnProposal(id uint64, option dao.VoteOption) error {\n\t// Verify the GOVDAO member\n\tcaller := getDAOCaller()\n\n\tmember, err := s.membStore.Member(caller)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get govdao member, %s\", err.Error())\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check the proposal status\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal was already executed, nothing to vote on anymore.\n\t\t//\n\t\t// In fact, the proposal should stop accepting\n\t\t// votes as soon as a 2/3+ majority is reached\n\t\t// on either option, but leaving the ability to vote still,\n\t\t// even if a proposal is accepted, or not accepted,\n\t\t// leaves room for \"principle\" vote decisions to be recorded\n\t\treturn ErrProposalInactive\n\t}\n\n\t// Cast the vote\n\tif err = prop.tally.castVote(member, option); err != nil {\n\t\treturn ufmt.Errorf(\"unable to vote on proposal %d, %s\", id, err.Error())\n\t}\n\n\t// Emit the vote cast event\n\tdao.EmitVoteAdded(id, caller, option)\n\n\t// Check the votes to see if quorum is reached\n\tvar (\n\t\ttotalPower = s.membStore.TotalPower()\n\t\tmajorityPower = (2 * totalPower) / 3\n\t)\n\n\tacceptProposal := func() {\n\t\tprop.status = dao.Accepted\n\n\t\tdao.EmitProposalAccepted(id)\n\t}\n\n\tdeclineProposal := func() {\n\t\tprop.status = dao.NotAccepted\n\n\t\tdao.EmitProposalNotAccepted(id)\n\t}\n\n\tswitch {\n\tcase prop.tally.yays \u003e majorityPower:\n\t\t// 2/3+ voted YES\n\t\tacceptProposal()\n\tcase prop.tally.nays \u003e majorityPower:\n\t\t// 2/3+ voted NO\n\t\tdeclineProposal()\n\tcase prop.tally.abstains \u003e majorityPower:\n\t\t// 2/3+ voted ABSTAIN\n\t\tdeclineProposal()\n\tcase prop.tally.yays+prop.tally.nays+prop.tally.abstains \u003e= totalPower:\n\t\t// Everyone voted, but it's undecided,\n\t\t// hence the proposal can't go through\n\t\tdeclineProposal()\n\tdefault:\n\t\t// Quorum not reached\n\t}\n\n\treturn nil\n}\n\nfunc (s *SimpleDAO) ExecuteProposal(id uint64) error {\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minExecuteFee.Amount\n\t)\n\n\t// Check if the non-DAO member can cover the execute fee\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn ErrInsufficientExecuteFunds\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check if the proposal is executed\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal is already executed\n\t\treturn ErrProposalExecuted\n\t}\n\n\t// Check the proposal status\n\tif prop.Status() != dao.Accepted {\n\t\t// Proposal is not accepted, cannot be executed\n\t\treturn ErrProposalNotAccepted\n\t}\n\n\t// Emit an event when the execution finishes\n\tdefer dao.EmitProposalExecuted(id, prop.status)\n\n\t// Attempt to execute the proposal\n\tif err = prop.executor.Execute(); err != nil {\n\t\tprop.status = dao.ExecutionFailed\n\n\t\treturn ufmt.Errorf(\"error during proposal %d execution, %s\", id, err.Error())\n\t}\n\n\t// Update the proposal status\n\tprop.status = dao.ExecutionSuccessful\n\n\treturn nil\n}\n\n// getDAOCaller returns the DAO caller.\n// XXX: This is not a great way to determine the caller, and it is very unsafe.\n// However, the current MsgRun context does not persist escaping the main() scope.\n// Until a better solution is developed, this enables proposals to be made through a package deployment + init()\nfunc getDAOCaller() std.Address {\n\treturn std.GetOrigCaller()\n}\n"},{"name":"dao_test.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []membstore.Member {\n\tt.Helper()\n\n\tmembers := make([]membstore.Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, membstore.Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestSimpleDAO_Propose(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"invalid executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.Propose(dao.ProposalRequest{})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidExecutor,\n\t\t)\n\t})\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the proposal fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInsufficientProposalFunds,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"proposal added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\tdescription = \"Proposal description\"\n\n\t\t\tproposer = testutils.TestAddress(\"proposer\")\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue, // enough to cover\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(addr std.Address) bool {\n\t\t\t\t\treturn addr == proposer\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// to cover the fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\t\tstd.TestSetOrigCaller(proposer)\n\n\t\t// Make sure the proposal was added\n\t\tid, err := s.Propose(dao.ProposalRequest{\n\t\t\tDescription: description,\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.NoError(t, err)\n\t\tuassert.False(t, called)\n\n\t\t// Make sure the proposal exists\n\t\tprop, err := s.ProposalByID(id)\n\t\tuassert.NoError(t, err)\n\n\t\tuassert.Equal(t, proposer.String(), prop.Author().String())\n\t\tuassert.Equal(t, description, prop.Description())\n\t\tuassert.Equal(t, dao.Active.String(), prop.Status().String())\n\n\t\tstats := prop.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_VoteOnProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"not govdao member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tfetchErr = errors.New(\"fetch error\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(_ std.Address) (membstore.Member, error) {\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, fetchErr\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tfetchErr.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrProposalInactive,\n\t\t)\n\t})\n\n\tt.Run(\"double vote on proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tmember = membstore.Member{\n\t\t\t\tAddress: voter,\n\t\t\t\tVotingPower: 10,\n\t\t\t}\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn member, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Cast the initial vote\n\t\turequire.NoError(t, prop.tally.castVote(member, dao.YesVote))\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrAlreadyVoted.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"majority accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was accepted\n\t\tuassert.Equal(t, dao.Accepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority rejected\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority abstained\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.AbstainVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"everyone voted, undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first half votes yes\n\t\tfor _, m := range members[:len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The other half votes no\n\t\tfor _, m := range members[len(members)/2:] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is not active,\n\t\t// since everyone voted, and it was undecided\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"proposal undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first quarter votes yes\n\t\tfor _, m := range members[:len(members)/4] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The second quarter votes no\n\t\tfor _, m := range members[len(members)/4 : len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is still active,\n\t\t// since there wasn't quorum reached on any decision\n\t\tuassert.Equal(t, dao.Active.String(), prop.status.String())\n\t})\n}\n\nfunc TestSimpleDAO_ExecuteProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the execute fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrInsufficientExecuteFunds,\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// so the execution can take place\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal not accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.NotAccepted,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\tErrProposalNotAccepted,\n\t\t)\n\t})\n\n\tt.Run(\"proposal already executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ttestTable := []struct {\n\t\t\tname string\n\t\t\tstatus dao.ProposalStatus\n\t\t}{\n\t\t\t{\n\t\t\t\t\"execution was successful\",\n\t\t\t\tdao.ExecutionSuccessful,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"execution failed\",\n\t\t\t\tdao.ExecutionFailed,\n\t\t\t},\n\t\t}\n\n\t\tfor _, testCase := range testTable {\n\t\t\tt.Run(testCase.name, func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\n\t\t\t\tvar (\n\t\t\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\t\t\tms = \u0026mockMemberStore{\n\t\t\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\ts = New(ms)\n\n\t\t\t\t\tprop = \u0026proposal{\n\t\t\t\t\t\tstatus: testCase.status,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tstd.TestSetOrigCaller(voter)\n\n\t\t\t\t// Add an initial proposal\n\t\t\t\tid, err := s.addProposal(prop)\n\t\t\t\turequire.NoError(t, err)\n\n\t\t\t\t// Attempt to vote on the proposal\n\t\t\t\tuassert.ErrorIs(\n\t\t\t\t\tt,\n\t\t\t\t\ts.ExecuteProposal(id),\n\t\t\t\t\tErrProposalExecuted,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"execution error\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\n\t\t\texecError = errors.New(\"exec error\")\n\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\treturn execError\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\texecError.Error(),\n\t\t)\n\n\t\tuassert.Equal(t, dao.ExecutionFailed.String(), prop.status.String())\n\t})\n\n\tt.Run(\"successful execution\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tcalled = false\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\tcalled = true\n\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.NoError(t, s.ExecuteProposal(id))\n\t\tuassert.Equal(t, dao.ExecutionSuccessful.String(), prop.status.String())\n\t\tuassert.True(t, called)\n\t})\n}\n"},{"name":"mock_test.gno","body":"package simpledao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype executeDelegate func() error\n\ntype mockExecutor struct {\n\texecuteFn executeDelegate\n}\n\nfunc (m *mockExecutor) Execute() error {\n\tif m.executeFn != nil {\n\t\treturn m.executeFn()\n\t}\n\n\treturn nil\n}\n\ntype (\n\tmembersDelegate func(uint64, uint64) []membstore.Member\n\tsizeDelegate func() int\n\tisMemberDelegate func(std.Address) bool\n\ttotalPowerDelegate func() uint64\n\tmemberDelegate func(std.Address) (membstore.Member, error)\n\taddMemberDelegate func(membstore.Member) error\n\tupdateMemberDelegate func(std.Address, membstore.Member) error\n)\n\ntype mockMemberStore struct {\n\tmembersFn membersDelegate\n\tsizeFn sizeDelegate\n\tisMemberFn isMemberDelegate\n\ttotalPowerFn totalPowerDelegate\n\tmemberFn memberDelegate\n\taddMemberFn addMemberDelegate\n\tupdateMemberFn updateMemberDelegate\n}\n\nfunc (m *mockMemberStore) Members(offset, count uint64) []membstore.Member {\n\tif m.membersFn != nil {\n\t\treturn m.membersFn(offset, count)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) Size() int {\n\tif m.sizeFn != nil {\n\t\treturn m.sizeFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) IsMember(address std.Address) bool {\n\tif m.isMemberFn != nil {\n\t\treturn m.isMemberFn(address)\n\t}\n\n\treturn false\n}\n\nfunc (m *mockMemberStore) TotalPower() uint64 {\n\tif m.totalPowerFn != nil {\n\t\treturn m.totalPowerFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) Member(address std.Address) (membstore.Member, error) {\n\tif m.memberFn != nil {\n\t\treturn m.memberFn(address)\n\t}\n\n\treturn membstore.Member{}, nil\n}\n\nfunc (m *mockMemberStore) AddMember(member membstore.Member) error {\n\tif m.addMemberFn != nil {\n\t\treturn m.addMemberFn(member)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) UpdateMember(address std.Address, member membstore.Member) error {\n\tif m.updateMemberFn != nil {\n\t\treturn m.updateMemberFn(address, member)\n\t}\n\n\treturn nil\n}\n"},{"name":"propstore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar ErrMissingProposal = errors.New(\"proposal is missing\")\n\n// maxRequestProposals is the maximum number of\n// paginated proposals that can be requested\nconst maxRequestProposals = 10\n\n// proposal is the internal simpledao proposal implementation\ntype proposal struct {\n\tauthor std.Address // initiator of the proposal\n\tdescription string // description of the proposal\n\n\texecutor dao.Executor // executor for the proposal\n\tstatus dao.ProposalStatus // status of the proposal\n\n\ttally *tally // voting tally\n\tgetTotalVotingPowerFn func() uint64 // callback for the total voting power\n}\n\nfunc (p *proposal) Author() std.Address {\n\treturn p.author\n}\n\nfunc (p *proposal) Description() string {\n\treturn p.description\n}\n\nfunc (p *proposal) Status() dao.ProposalStatus {\n\treturn p.status\n}\n\nfunc (p *proposal) Executor() dao.Executor {\n\treturn p.executor\n}\n\nfunc (p *proposal) Stats() dao.Stats {\n\t// Get the total voting power of the body\n\ttotalPower := p.getTotalVotingPowerFn()\n\n\treturn dao.Stats{\n\t\tYayVotes: p.tally.yays,\n\t\tNayVotes: p.tally.nays,\n\t\tAbstainVotes: p.tally.abstains,\n\t\tTotalVotingPower: totalPower,\n\t}\n}\n\nfunc (p *proposal) IsExpired() bool {\n\treturn false // this proposal never expires\n}\n\nfunc (p *proposal) Render() string {\n\t// Fetch the voting stats\n\tstats := p.Stats()\n\n\toutput := \"\"\n\toutput += ufmt.Sprintf(\"Author: %s\", p.Author().String())\n\toutput += \"\\n\\n\"\n\toutput += p.Description()\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Status: %s\", p.Status().String())\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\n\t\t\"Voting stats: YES %d (%d%%), NO %d (%d%%), ABSTAIN %d (%d%%), MISSING VOTE %d (%d%%)\",\n\t\tstats.YayVotes,\n\t\tstats.YayPercent(),\n\t\tstats.NayVotes,\n\t\tstats.NayPercent(),\n\t\tstats.AbstainVotes,\n\t\tstats.AbstainPercent(),\n\t\tstats.MissingVotes(),\n\t\tstats.MissingVotesPercent(),\n\t)\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Threshold met: %t\", stats.YayVotes \u003e (2*stats.TotalVotingPower)/3)\n\n\treturn output\n}\n\n// addProposal adds a new simpledao proposal to the store\nfunc (s *SimpleDAO) addProposal(proposal *proposal) (uint64, error) {\n\t// See what the next proposal number should be\n\tnextID := uint64(s.proposals.Size())\n\n\t// Save the proposal\n\ts.proposals.Set(getProposalID(nextID), proposal)\n\n\treturn nextID, nil\n}\n\nfunc (s *SimpleDAO) Proposals(offset, count uint64) []dao.Proposal {\n\t// Check the requested count\n\tif count \u003c 1 {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Limit the maximum number of returned proposals\n\tif count \u003e maxRequestProposals {\n\t\tcount = maxRequestProposals\n\t}\n\n\tvar (\n\t\tstartIndex = offset\n\t\tendIndex = startIndex + count\n\n\t\tnumProposals = uint64(s.proposals.Size())\n\t)\n\n\t// Check if the current offset has any proposals\n\tif startIndex \u003e= numProposals {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Check if the right bound is good\n\tif endIndex \u003e numProposals {\n\t\tendIndex = numProposals\n\t}\n\n\tprops := make([]dao.Proposal, 0)\n\ts.proposals.Iterate(\n\t\tgetProposalID(startIndex),\n\t\tgetProposalID(endIndex),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tprop := val.(*proposal)\n\n\t\t\t// Save the proposal\n\t\t\tprops = append(props, prop)\n\n\t\t\treturn false\n\t\t},\n\t)\n\n\treturn props\n}\n\nfunc (s *SimpleDAO) ProposalByID(id uint64) (dao.Proposal, error) {\n\tprop, exists := s.proposals.Get(getProposalID(id))\n\tif !exists {\n\t\treturn nil, ErrMissingProposal\n\t}\n\n\treturn prop.(*proposal), nil\n}\n\nfunc (s *SimpleDAO) Size() int {\n\treturn s.proposals.Size()\n}\n\n// getProposalID generates a sequential proposal ID\n// from the given ID number\nfunc getProposalID(id uint64) string {\n\treturn seqid.ID(id).String()\n}\n"},{"name":"propstore_test.gno","body":"package simpledao\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateProposals generates dummy proposals\nfunc generateProposals(t *testing.T, count int) []*proposal {\n\tt.Helper()\n\n\tvar (\n\t\tmembers = generateMembers(t, count)\n\t\tproposals = make([]*proposal, 0, count)\n\t)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tproposal := \u0026proposal{\n\t\t\tauthor: members[i].Address,\n\t\t\tdescription: ufmt.Sprintf(\"proposal %d\", i),\n\t\t\tstatus: dao.Active,\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t\texecutor: nil,\n\t\t}\n\n\t\tproposals = append(proposals, proposal)\n\t}\n\n\treturn proposals\n}\n\nfunc equalProposals(t *testing.T, p1, p2 dao.Proposal) {\n\tt.Helper()\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Author().String(),\n\t\tp2.Author().String(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Description(),\n\t\tp2.Description(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Status().String(),\n\t\tp2.Status().String(),\n\t)\n\n\tp1Stats := p1.Stats()\n\tp2Stats := p2.Stats()\n\n\tuassert.Equal(t, p1Stats.YayVotes, p2Stats.YayVotes)\n\tuassert.Equal(t, p1Stats.NayVotes, p2Stats.NayVotes)\n\tuassert.Equal(t, p1Stats.AbstainVotes, p2Stats.AbstainVotes)\n\tuassert.Equal(t, p1Stats.TotalVotingPower, p2Stats.TotalVotingPower)\n}\n\nfunc TestProposal_Data(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"author\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tauthor: testutils.TestAddress(\"address\"),\n\t\t}\n\n\t\tuassert.Equal(t, p.author, p.Author())\n\t})\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tdescription: \"example proposal description\",\n\t\t}\n\n\t\tuassert.Equal(t, p.description, p.Description())\n\t})\n\n\tt.Run(\"status\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t}\n\n\t\tuassert.Equal(t, p.status.String(), p.Status().String())\n\t})\n\n\tt.Run(\"executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumCalled = 0\n\t\t\tcb = func() error {\n\t\t\t\tnumCalled++\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tp = \u0026proposal{\n\t\t\t\texecutor: ex,\n\t\t\t}\n\t\t)\n\n\t\turequire.NoError(t, p.executor.Execute())\n\t\turequire.NoError(t, p.Executor().Execute())\n\n\t\tuassert.Equal(t, 2, numCalled)\n\t})\n\n\tt.Run(\"no votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n\n\tt.Run(\"existing votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\t\t\ttotalPower = uint64(len(members)) * 10\n\n\t\t\tp = \u0026proposal{\n\t\t\t\ttally: newTally(),\n\t\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\t\treturn totalPower\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor _, m := range members {\n\t\t\turequire.NoError(t, p.tally.castVote(m, dao.YesVote))\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, totalPower, stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, totalPower, stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_GetProposals(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no proposals\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\tuassert.Equal(t, 0, s.Size())\n\t\tproposals := s.Proposals(0, 0)\n\n\t\tuassert.Equal(t, 0, len(proposals))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumProposals = 20\n\t\t\thalfRange = numProposals / 2\n\n\t\t\ts = New(nil)\n\t\t\tproposals = generateProposals(t, numProposals)\n\t\t)\n\n\t\t// Add initial proposals\n\t\tfor _, proposal := range proposals {\n\t\t\t_, err := s.addProposal(proposal)\n\n\t\t\turequire.NoError(t, err)\n\t\t}\n\n\t\tuassert.Equal(t, numProposals, s.Size())\n\n\t\tfetchedProposals := s.Proposals(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index], fetchedProposal)\n\t\t}\n\n\t\t// Fetch the other half\n\t\tfetchedProposals = s.Proposals(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index+halfRange], fetchedProposal)\n\t\t}\n\t})\n}\n\nfunc TestSimpleDAO_GetProposalByID(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.ProposalByID(0)\n\t\tuassert.ErrorIs(t, err, ErrMissingProposal)\n\t})\n\n\tt.Run(\"proposal found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\ts = New(nil)\n\t\t\tproposal = generateProposals(t, 1)[0]\n\t\t)\n\n\t\t// Add the initial proposal\n\t\t_, err := s.addProposal(proposal)\n\t\turequire.NoError(t, err)\n\n\t\t// Fetch the proposal\n\t\tfetchedProposal, err := s.ProposalByID(0)\n\t\turequire.NoError(t, err)\n\n\t\tequalProposals(t, proposal, fetchedProposal)\n\t})\n}\n"},{"name":"votestore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\nvar ErrAlreadyVoted = errors.New(\"vote already cast\")\n\n// tally is a simple vote tally system\ntype tally struct {\n\t// tally cache to keep track of active\n\t// yes / no / abstain votes\n\tyays uint64\n\tnays uint64\n\tabstains uint64\n\n\tvoters *avl.Tree // std.Address -\u003e dao.VoteOption\n}\n\n// newTally creates a new tally system instance\nfunc newTally() *tally {\n\treturn \u0026tally{\n\t\tvoters: avl.NewTree(),\n\t}\n}\n\n// castVote casts a single vote in the name of the given member\nfunc (t *tally) castVote(member membstore.Member, option dao.VoteOption) error {\n\t// Check if the member voted already\n\taddress := member.Address.String()\n\n\t_, voted := t.voters.Get(address)\n\tif voted {\n\t\treturn ErrAlreadyVoted\n\t}\n\n\t// convert option to upper-case, like the constants are.\n\toption = dao.VoteOption(strings.ToUpper(string(option)))\n\n\t// Update the tally\n\tswitch option {\n\tcase dao.YesVote:\n\t\tt.yays += member.VotingPower\n\tcase dao.AbstainVote:\n\t\tt.abstains += member.VotingPower\n\tcase dao.NoVote:\n\t\tt.nays += member.VotingPower\n\tdefault:\n\t\tpanic(\"invalid voting option: \" + option)\n\t}\n\n\t// Save the voting status\n\tt.voters.Set(address, option)\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IMgk5WrifyX2N3YlUl0wef/vzrWV6y9NmGnLZVy6lAEIuAEBvEjeH6u7Uh1B1d88W+UlnvNh7qWdpbw/7/ZaDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simpledao","path":"gno.land/p/demo/simpledao","files":[{"name":"dao.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrInvalidExecutor = errors.New(\"invalid executor provided\")\n\tErrInsufficientProposalFunds = errors.New(\"insufficient funds for proposal\")\n\tErrInsufficientExecuteFunds = errors.New(\"insufficient funds for executing proposal\")\n\tErrProposalExecuted = errors.New(\"proposal already executed\")\n\tErrProposalInactive = errors.New(\"proposal is inactive\")\n\tErrProposalNotAccepted = errors.New(\"proposal is not accepted\")\n)\n\nvar (\n\tminProposalFeeValue int64 = 100 * 1_000_000 // minimum gnot required for a govdao proposal (100 GNOT)\n\tminExecuteFeeValue int64 = 500 * 1_000_000 // minimum gnot required for a govdao proposal (500 GNOT)\n\n\tminProposalFee = std.NewCoin(\"ugnot\", minProposalFeeValue)\n\tminExecuteFee = std.NewCoin(\"ugnot\", minExecuteFeeValue)\n)\n\n// SimpleDAO is a simple DAO implementation\ntype SimpleDAO struct {\n\tproposals *avl.Tree // seqid.ID -\u003e proposal\n\tmembStore membstore.MemberStore\n}\n\n// New creates a new instance of the simpledao DAO\nfunc New(membStore membstore.MemberStore) *SimpleDAO {\n\treturn \u0026SimpleDAO{\n\t\tproposals: avl.NewTree(),\n\t\tmembStore: membStore,\n\t}\n}\n\nfunc (s *SimpleDAO) Propose(request dao.ProposalRequest) (uint64, error) {\n\t// Make sure the executor is set\n\tif request.Executor == nil {\n\t\treturn 0, ErrInvalidExecutor\n\t}\n\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minProposalFee.Amount\n\t)\n\n\t// Check if the proposal is valid\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn 0, ErrInsufficientProposalFunds\n\t}\n\n\t// Create the wrapped proposal\n\tprop := \u0026proposal{\n\t\tauthor: caller,\n\t\tdescription: request.Description,\n\t\texecutor: request.Executor,\n\t\tstatus: dao.Active,\n\t\ttally: newTally(),\n\t\tgetTotalVotingPowerFn: s.membStore.TotalPower,\n\t}\n\n\t// Add the proposal\n\tid, err := s.addProposal(prop)\n\tif err != nil {\n\t\treturn 0, ufmt.Errorf(\"unable to add proposal, %s\", err.Error())\n\t}\n\n\t// Emit the proposal added event\n\tdao.EmitProposalAdded(id, caller)\n\n\treturn id, nil\n}\n\nfunc (s *SimpleDAO) VoteOnProposal(id uint64, option dao.VoteOption) error {\n\t// Verify the GOVDAO member\n\tcaller := getDAOCaller()\n\n\tmember, err := s.membStore.Member(caller)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get govdao member, %s\", err.Error())\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check the proposal status\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal was already executed, nothing to vote on anymore.\n\t\t//\n\t\t// In fact, the proposal should stop accepting\n\t\t// votes as soon as a 2/3+ majority is reached\n\t\t// on either option, but leaving the ability to vote still,\n\t\t// even if a proposal is accepted, or not accepted,\n\t\t// leaves room for \"principle\" vote decisions to be recorded\n\t\treturn ErrProposalInactive\n\t}\n\n\t// Cast the vote\n\tif err = prop.tally.castVote(member, option); err != nil {\n\t\treturn ufmt.Errorf(\"unable to vote on proposal %d, %s\", id, err.Error())\n\t}\n\n\t// Emit the vote cast event\n\tdao.EmitVoteAdded(id, caller, option)\n\n\t// Check the votes to see if quorum is reached\n\tvar (\n\t\ttotalPower = s.membStore.TotalPower()\n\t\tmajorityPower = (2 * totalPower) / 3\n\t)\n\n\tacceptProposal := func() {\n\t\tprop.status = dao.Accepted\n\n\t\tdao.EmitProposalAccepted(id)\n\t}\n\n\tdeclineProposal := func() {\n\t\tprop.status = dao.NotAccepted\n\n\t\tdao.EmitProposalNotAccepted(id)\n\t}\n\n\tswitch {\n\tcase prop.tally.yays \u003e majorityPower:\n\t\t// 2/3+ voted YES\n\t\tacceptProposal()\n\tcase prop.tally.nays \u003e majorityPower:\n\t\t// 2/3+ voted NO\n\t\tdeclineProposal()\n\tcase prop.tally.abstains \u003e majorityPower:\n\t\t// 2/3+ voted ABSTAIN\n\t\tdeclineProposal()\n\tcase prop.tally.yays+prop.tally.nays+prop.tally.abstains \u003e= totalPower:\n\t\t// Everyone voted, but it's undecided,\n\t\t// hence the proposal can't go through\n\t\tdeclineProposal()\n\tdefault:\n\t\t// Quorum not reached\n\t}\n\n\treturn nil\n}\n\nfunc (s *SimpleDAO) ExecuteProposal(id uint64) error {\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minExecuteFee.Amount\n\t)\n\n\t// Check if the non-DAO member can cover the execute fee\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn ErrInsufficientExecuteFunds\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check if the proposal is executed\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal is already executed\n\t\treturn ErrProposalExecuted\n\t}\n\n\t// Check the proposal status\n\tif prop.Status() != dao.Accepted {\n\t\t// Proposal is not accepted, cannot be executed\n\t\treturn ErrProposalNotAccepted\n\t}\n\n\t// Emit an event when the execution finishes\n\tdefer dao.EmitProposalExecuted(id, prop.status)\n\n\t// Attempt to execute the proposal\n\tif err = prop.executor.Execute(); err != nil {\n\t\tprop.status = dao.ExecutionFailed\n\n\t\treturn ufmt.Errorf(\"error during proposal %d execution, %s\", id, err.Error())\n\t}\n\n\t// Update the proposal status\n\tprop.status = dao.ExecutionSuccessful\n\n\treturn nil\n}\n\n// getDAOCaller returns the DAO caller.\n// XXX: This is not a great way to determine the caller, and it is very unsafe.\n// However, the current MsgRun context does not persist escaping the main() scope.\n// Until a better solution is developed, this enables proposals to be made through a package deployment + init()\nfunc getDAOCaller() std.Address {\n\treturn std.GetOrigCaller()\n}\n"},{"name":"dao_test.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []membstore.Member {\n\tt.Helper()\n\n\tmembers := make([]membstore.Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, membstore.Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestSimpleDAO_Propose(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"invalid executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.Propose(dao.ProposalRequest{})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidExecutor,\n\t\t)\n\t})\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the proposal fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInsufficientProposalFunds,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"proposal added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\tdescription = \"Proposal description\"\n\n\t\t\tproposer = testutils.TestAddress(\"proposer\")\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue, // enough to cover\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(addr std.Address) bool {\n\t\t\t\t\treturn addr == proposer\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// to cover the fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\t\tstd.TestSetOrigCaller(proposer)\n\n\t\t// Make sure the proposal was added\n\t\tid, err := s.Propose(dao.ProposalRequest{\n\t\t\tDescription: description,\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.NoError(t, err)\n\t\tuassert.False(t, called)\n\n\t\t// Make sure the proposal exists\n\t\tprop, err := s.ProposalByID(id)\n\t\tuassert.NoError(t, err)\n\n\t\tuassert.Equal(t, proposer.String(), prop.Author().String())\n\t\tuassert.Equal(t, description, prop.Description())\n\t\tuassert.Equal(t, dao.Active.String(), prop.Status().String())\n\n\t\tstats := prop.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_VoteOnProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"not govdao member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tfetchErr = errors.New(\"fetch error\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(_ std.Address) (membstore.Member, error) {\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, fetchErr\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tfetchErr.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrProposalInactive,\n\t\t)\n\t})\n\n\tt.Run(\"double vote on proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tmember = membstore.Member{\n\t\t\t\tAddress: voter,\n\t\t\t\tVotingPower: 10,\n\t\t\t}\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn member, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Cast the initial vote\n\t\turequire.NoError(t, prop.tally.castVote(member, dao.YesVote))\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrAlreadyVoted.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"majority accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was accepted\n\t\tuassert.Equal(t, dao.Accepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority rejected\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority abstained\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.AbstainVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"everyone voted, undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first half votes yes\n\t\tfor _, m := range members[:len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The other half votes no\n\t\tfor _, m := range members[len(members)/2:] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is not active,\n\t\t// since everyone voted, and it was undecided\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"proposal undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first quarter votes yes\n\t\tfor _, m := range members[:len(members)/4] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The second quarter votes no\n\t\tfor _, m := range members[len(members)/4 : len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is still active,\n\t\t// since there wasn't quorum reached on any decision\n\t\tuassert.Equal(t, dao.Active.String(), prop.status.String())\n\t})\n}\n\nfunc TestSimpleDAO_ExecuteProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the execute fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrInsufficientExecuteFunds,\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// so the execution can take place\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal not accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.NotAccepted,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\tErrProposalNotAccepted,\n\t\t)\n\t})\n\n\tt.Run(\"proposal already executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ttestTable := []struct {\n\t\t\tname string\n\t\t\tstatus dao.ProposalStatus\n\t\t}{\n\t\t\t{\n\t\t\t\t\"execution was successful\",\n\t\t\t\tdao.ExecutionSuccessful,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"execution failed\",\n\t\t\t\tdao.ExecutionFailed,\n\t\t\t},\n\t\t}\n\n\t\tfor _, testCase := range testTable {\n\t\t\tt.Run(testCase.name, func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\n\t\t\t\tvar (\n\t\t\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\t\t\tms = \u0026mockMemberStore{\n\t\t\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\ts = New(ms)\n\n\t\t\t\t\tprop = \u0026proposal{\n\t\t\t\t\t\tstatus: testCase.status,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tstd.TestSetOrigCaller(voter)\n\n\t\t\t\t// Add an initial proposal\n\t\t\t\tid, err := s.addProposal(prop)\n\t\t\t\turequire.NoError(t, err)\n\n\t\t\t\t// Attempt to vote on the proposal\n\t\t\t\tuassert.ErrorIs(\n\t\t\t\t\tt,\n\t\t\t\t\ts.ExecuteProposal(id),\n\t\t\t\t\tErrProposalExecuted,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"execution error\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\n\t\t\texecError = errors.New(\"exec error\")\n\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\treturn execError\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\texecError.Error(),\n\t\t)\n\n\t\tuassert.Equal(t, dao.ExecutionFailed.String(), prop.status.String())\n\t})\n\n\tt.Run(\"successful execution\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tcalled = false\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\tcalled = true\n\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.NoError(t, s.ExecuteProposal(id))\n\t\tuassert.Equal(t, dao.ExecutionSuccessful.String(), prop.status.String())\n\t\tuassert.True(t, called)\n\t})\n}\n"},{"name":"mock_test.gno","body":"package simpledao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype executeDelegate func() error\n\ntype mockExecutor struct {\n\texecuteFn executeDelegate\n}\n\nfunc (m *mockExecutor) Execute() error {\n\tif m.executeFn != nil {\n\t\treturn m.executeFn()\n\t}\n\n\treturn nil\n}\n\ntype (\n\tmembersDelegate func(uint64, uint64) []membstore.Member\n\tsizeDelegate func() int\n\tisMemberDelegate func(std.Address) bool\n\ttotalPowerDelegate func() uint64\n\tmemberDelegate func(std.Address) (membstore.Member, error)\n\taddMemberDelegate func(membstore.Member) error\n\tupdateMemberDelegate func(std.Address, membstore.Member) error\n)\n\ntype mockMemberStore struct {\n\tmembersFn membersDelegate\n\tsizeFn sizeDelegate\n\tisMemberFn isMemberDelegate\n\ttotalPowerFn totalPowerDelegate\n\tmemberFn memberDelegate\n\taddMemberFn addMemberDelegate\n\tupdateMemberFn updateMemberDelegate\n}\n\nfunc (m *mockMemberStore) Members(offset, count uint64) []membstore.Member {\n\tif m.membersFn != nil {\n\t\treturn m.membersFn(offset, count)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) Size() int {\n\tif m.sizeFn != nil {\n\t\treturn m.sizeFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) IsMember(address std.Address) bool {\n\tif m.isMemberFn != nil {\n\t\treturn m.isMemberFn(address)\n\t}\n\n\treturn false\n}\n\nfunc (m *mockMemberStore) TotalPower() uint64 {\n\tif m.totalPowerFn != nil {\n\t\treturn m.totalPowerFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) Member(address std.Address) (membstore.Member, error) {\n\tif m.memberFn != nil {\n\t\treturn m.memberFn(address)\n\t}\n\n\treturn membstore.Member{}, nil\n}\n\nfunc (m *mockMemberStore) AddMember(member membstore.Member) error {\n\tif m.addMemberFn != nil {\n\t\treturn m.addMemberFn(member)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) UpdateMember(address std.Address, member membstore.Member) error {\n\tif m.updateMemberFn != nil {\n\t\treturn m.updateMemberFn(address, member)\n\t}\n\n\treturn nil\n}\n"},{"name":"propstore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar ErrMissingProposal = errors.New(\"proposal is missing\")\n\n// maxRequestProposals is the maximum number of\n// paginated proposals that can be requested\nconst maxRequestProposals = 10\n\n// proposal is the internal simpledao proposal implementation\ntype proposal struct {\n\tauthor std.Address // initiator of the proposal\n\tdescription string // description of the proposal\n\n\texecutor dao.Executor // executor for the proposal\n\tstatus dao.ProposalStatus // status of the proposal\n\n\ttally *tally // voting tally\n\tgetTotalVotingPowerFn func() uint64 // callback for the total voting power\n}\n\nfunc (p *proposal) Author() std.Address {\n\treturn p.author\n}\n\nfunc (p *proposal) Description() string {\n\treturn p.description\n}\n\nfunc (p *proposal) Status() dao.ProposalStatus {\n\treturn p.status\n}\n\nfunc (p *proposal) Executor() dao.Executor {\n\treturn p.executor\n}\n\nfunc (p *proposal) Stats() dao.Stats {\n\t// Get the total voting power of the body\n\ttotalPower := p.getTotalVotingPowerFn()\n\n\treturn dao.Stats{\n\t\tYayVotes: p.tally.yays,\n\t\tNayVotes: p.tally.nays,\n\t\tAbstainVotes: p.tally.abstains,\n\t\tTotalVotingPower: totalPower,\n\t}\n}\n\nfunc (p *proposal) IsExpired() bool {\n\treturn false // this proposal never expires\n}\n\nfunc (p *proposal) Render() string {\n\t// Fetch the voting stats\n\tstats := p.Stats()\n\n\toutput := \"\"\n\toutput += ufmt.Sprintf(\"Author: %s\", p.Author().String())\n\toutput += \"\\n\\n\"\n\toutput += p.Description()\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Status: %s\", p.Status().String())\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\n\t\t\"Voting stats: YES %d (%d%%), NO %d (%d%%), ABSTAIN %d (%d%%), MISSING VOTE %d (%d%%)\",\n\t\tstats.YayVotes,\n\t\tstats.YayPercent(),\n\t\tstats.NayVotes,\n\t\tstats.NayPercent(),\n\t\tstats.AbstainVotes,\n\t\tstats.AbstainPercent(),\n\t\tstats.MissingVotes(),\n\t\tstats.MissingVotesPercent(),\n\t)\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Threshold met: %t\", stats.YayVotes \u003e (2*stats.TotalVotingPower)/3)\n\n\treturn output\n}\n\n// addProposal adds a new simpledao proposal to the store\nfunc (s *SimpleDAO) addProposal(proposal *proposal) (uint64, error) {\n\t// See what the next proposal number should be\n\tnextID := uint64(s.proposals.Size())\n\n\t// Save the proposal\n\ts.proposals.Set(getProposalID(nextID), proposal)\n\n\treturn nextID, nil\n}\n\nfunc (s *SimpleDAO) Proposals(offset, count uint64) []dao.Proposal {\n\t// Check the requested count\n\tif count \u003c 1 {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Limit the maximum number of returned proposals\n\tif count \u003e maxRequestProposals {\n\t\tcount = maxRequestProposals\n\t}\n\n\tvar (\n\t\tstartIndex = offset\n\t\tendIndex = startIndex + count\n\n\t\tnumProposals = uint64(s.proposals.Size())\n\t)\n\n\t// Check if the current offset has any proposals\n\tif startIndex \u003e= numProposals {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Check if the right bound is good\n\tif endIndex \u003e numProposals {\n\t\tendIndex = numProposals\n\t}\n\n\tprops := make([]dao.Proposal, 0)\n\ts.proposals.Iterate(\n\t\tgetProposalID(startIndex),\n\t\tgetProposalID(endIndex),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tprop := val.(*proposal)\n\n\t\t\t// Save the proposal\n\t\t\tprops = append(props, prop)\n\n\t\t\treturn false\n\t\t},\n\t)\n\n\treturn props\n}\n\nfunc (s *SimpleDAO) ProposalByID(id uint64) (dao.Proposal, error) {\n\tprop, exists := s.proposals.Get(getProposalID(id))\n\tif !exists {\n\t\treturn nil, ErrMissingProposal\n\t}\n\n\treturn prop.(*proposal), nil\n}\n\nfunc (s *SimpleDAO) Size() int {\n\treturn s.proposals.Size()\n}\n\n// getProposalID generates a sequential proposal ID\n// from the given ID number\nfunc getProposalID(id uint64) string {\n\treturn seqid.ID(id).String()\n}\n"},{"name":"propstore_test.gno","body":"package simpledao\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateProposals generates dummy proposals\nfunc generateProposals(t *testing.T, count int) []*proposal {\n\tt.Helper()\n\n\tvar (\n\t\tmembers = generateMembers(t, count)\n\t\tproposals = make([]*proposal, 0, count)\n\t)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tproposal := \u0026proposal{\n\t\t\tauthor: members[i].Address,\n\t\t\tdescription: ufmt.Sprintf(\"proposal %d\", i),\n\t\t\tstatus: dao.Active,\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t\texecutor: nil,\n\t\t}\n\n\t\tproposals = append(proposals, proposal)\n\t}\n\n\treturn proposals\n}\n\nfunc equalProposals(t *testing.T, p1, p2 dao.Proposal) {\n\tt.Helper()\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Author().String(),\n\t\tp2.Author().String(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Description(),\n\t\tp2.Description(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Status().String(),\n\t\tp2.Status().String(),\n\t)\n\n\tp1Stats := p1.Stats()\n\tp2Stats := p2.Stats()\n\n\tuassert.Equal(t, p1Stats.YayVotes, p2Stats.YayVotes)\n\tuassert.Equal(t, p1Stats.NayVotes, p2Stats.NayVotes)\n\tuassert.Equal(t, p1Stats.AbstainVotes, p2Stats.AbstainVotes)\n\tuassert.Equal(t, p1Stats.TotalVotingPower, p2Stats.TotalVotingPower)\n}\n\nfunc TestProposal_Data(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"author\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tauthor: testutils.TestAddress(\"address\"),\n\t\t}\n\n\t\tuassert.Equal(t, p.author, p.Author())\n\t})\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tdescription: \"example proposal description\",\n\t\t}\n\n\t\tuassert.Equal(t, p.description, p.Description())\n\t})\n\n\tt.Run(\"status\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t}\n\n\t\tuassert.Equal(t, p.status.String(), p.Status().String())\n\t})\n\n\tt.Run(\"executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumCalled = 0\n\t\t\tcb = func() error {\n\t\t\t\tnumCalled++\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tp = \u0026proposal{\n\t\t\t\texecutor: ex,\n\t\t\t}\n\t\t)\n\n\t\turequire.NoError(t, p.executor.Execute())\n\t\turequire.NoError(t, p.Executor().Execute())\n\n\t\tuassert.Equal(t, 2, numCalled)\n\t})\n\n\tt.Run(\"no votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n\n\tt.Run(\"existing votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\t\t\ttotalPower = uint64(len(members)) * 10\n\n\t\t\tp = \u0026proposal{\n\t\t\t\ttally: newTally(),\n\t\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\t\treturn totalPower\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor _, m := range members {\n\t\t\turequire.NoError(t, p.tally.castVote(m, dao.YesVote))\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, totalPower, stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, totalPower, stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_GetProposals(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no proposals\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\tuassert.Equal(t, 0, s.Size())\n\t\tproposals := s.Proposals(0, 0)\n\n\t\tuassert.Equal(t, 0, len(proposals))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumProposals = 20\n\t\t\thalfRange = numProposals / 2\n\n\t\t\ts = New(nil)\n\t\t\tproposals = generateProposals(t, numProposals)\n\t\t)\n\n\t\t// Add initial proposals\n\t\tfor _, proposal := range proposals {\n\t\t\t_, err := s.addProposal(proposal)\n\n\t\t\turequire.NoError(t, err)\n\t\t}\n\n\t\tuassert.Equal(t, numProposals, s.Size())\n\n\t\tfetchedProposals := s.Proposals(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index], fetchedProposal)\n\t\t}\n\n\t\t// Fetch the other half\n\t\tfetchedProposals = s.Proposals(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index+halfRange], fetchedProposal)\n\t\t}\n\t})\n}\n\nfunc TestSimpleDAO_GetProposalByID(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.ProposalByID(0)\n\t\tuassert.ErrorIs(t, err, ErrMissingProposal)\n\t})\n\n\tt.Run(\"proposal found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\ts = New(nil)\n\t\t\tproposal = generateProposals(t, 1)[0]\n\t\t)\n\n\t\t// Add the initial proposal\n\t\t_, err := s.addProposal(proposal)\n\t\turequire.NoError(t, err)\n\n\t\t// Fetch the proposal\n\t\tfetchedProposal, err := s.ProposalByID(0)\n\t\turequire.NoError(t, err)\n\n\t\tequalProposals(t, proposal, fetchedProposal)\n\t})\n}\n"},{"name":"votestore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\nvar ErrAlreadyVoted = errors.New(\"vote already cast\")\n\n// tally is a simple vote tally system\ntype tally struct {\n\t// tally cache to keep track of active\n\t// yes / no / abstain votes\n\tyays uint64\n\tnays uint64\n\tabstains uint64\n\n\tvoters *avl.Tree // std.Address -\u003e dao.VoteOption\n}\n\n// newTally creates a new tally system instance\nfunc newTally() *tally {\n\treturn \u0026tally{\n\t\tvoters: avl.NewTree(),\n\t}\n}\n\n// castVote casts a single vote in the name of the given member\nfunc (t *tally) castVote(member membstore.Member, option dao.VoteOption) error {\n\t// Check if the member voted already\n\taddress := member.Address.String()\n\n\t_, voted := t.voters.Get(address)\n\tif voted {\n\t\treturn ErrAlreadyVoted\n\t}\n\n\t// convert option to upper-case, like the constants are.\n\toption = dao.VoteOption(strings.ToUpper(string(option)))\n\n\t// Update the tally\n\tswitch option {\n\tcase dao.YesVote:\n\t\tt.yays += member.VotingPower\n\tcase dao.AbstainVote:\n\t\tt.abstains += member.VotingPower\n\tcase dao.NoVote:\n\t\tt.nays += member.VotingPower\n\tdefault:\n\t\tpanic(\"invalid voting option: \" + option)\n\t}\n\n\t// Save the voting status\n\tt.voters.Set(address, option)\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IMgk5WrifyX2N3YlUl0wef/vzrWV6y9NmGnLZVy6lAEIuAEBvEjeH6u7Uh1B1d88W+UlnvNh7qWdpbw/7/ZaDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simpledao","path":"gno.land/p/demo/simpledao","files":[{"name":"dao.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrInvalidExecutor = errors.New(\"invalid executor provided\")\n\tErrInsufficientProposalFunds = errors.New(\"insufficient funds for proposal\")\n\tErrInsufficientExecuteFunds = errors.New(\"insufficient funds for executing proposal\")\n\tErrProposalExecuted = errors.New(\"proposal already executed\")\n\tErrProposalInactive = errors.New(\"proposal is inactive\")\n\tErrProposalNotAccepted = errors.New(\"proposal is not accepted\")\n)\n\nvar (\n\tminProposalFeeValue int64 = 100 * 1_000_000 // minimum gnot required for a govdao proposal (100 GNOT)\n\tminExecuteFeeValue int64 = 500 * 1_000_000 // minimum gnot required for a govdao proposal (500 GNOT)\n\n\tminProposalFee = std.NewCoin(\"ugnot\", minProposalFeeValue)\n\tminExecuteFee = std.NewCoin(\"ugnot\", minExecuteFeeValue)\n)\n\n// SimpleDAO is a simple DAO implementation\ntype SimpleDAO struct {\n\tproposals *avl.Tree // seqid.ID -\u003e proposal\n\tmembStore membstore.MemberStore\n}\n\n// New creates a new instance of the simpledao DAO\nfunc New(membStore membstore.MemberStore) *SimpleDAO {\n\treturn \u0026SimpleDAO{\n\t\tproposals: avl.NewTree(),\n\t\tmembStore: membStore,\n\t}\n}\n\nfunc (s *SimpleDAO) Propose(request dao.ProposalRequest) (uint64, error) {\n\t// Make sure the executor is set\n\tif request.Executor == nil {\n\t\treturn 0, ErrInvalidExecutor\n\t}\n\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minProposalFee.Amount\n\t)\n\n\t// Check if the proposal is valid\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn 0, ErrInsufficientProposalFunds\n\t}\n\n\t// Create the wrapped proposal\n\tprop := \u0026proposal{\n\t\tauthor: caller,\n\t\tdescription: request.Description,\n\t\texecutor: request.Executor,\n\t\tstatus: dao.Active,\n\t\ttally: newTally(),\n\t\tgetTotalVotingPowerFn: s.membStore.TotalPower,\n\t}\n\n\t// Add the proposal\n\tid, err := s.addProposal(prop)\n\tif err != nil {\n\t\treturn 0, ufmt.Errorf(\"unable to add proposal, %s\", err.Error())\n\t}\n\n\t// Emit the proposal added event\n\tdao.EmitProposalAdded(id, caller)\n\n\treturn id, nil\n}\n\nfunc (s *SimpleDAO) VoteOnProposal(id uint64, option dao.VoteOption) error {\n\t// Verify the GOVDAO member\n\tcaller := getDAOCaller()\n\n\tmember, err := s.membStore.Member(caller)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get govdao member, %s\", err.Error())\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check the proposal status\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal was already executed, nothing to vote on anymore.\n\t\t//\n\t\t// In fact, the proposal should stop accepting\n\t\t// votes as soon as a 2/3+ majority is reached\n\t\t// on either option, but leaving the ability to vote still,\n\t\t// even if a proposal is accepted, or not accepted,\n\t\t// leaves room for \"principle\" vote decisions to be recorded\n\t\treturn ErrProposalInactive\n\t}\n\n\t// Cast the vote\n\tif err = prop.tally.castVote(member, option); err != nil {\n\t\treturn ufmt.Errorf(\"unable to vote on proposal %d, %s\", id, err.Error())\n\t}\n\n\t// Emit the vote cast event\n\tdao.EmitVoteAdded(id, caller, option)\n\n\t// Check the votes to see if quorum is reached\n\tvar (\n\t\ttotalPower = s.membStore.TotalPower()\n\t\tmajorityPower = (2 * totalPower) / 3\n\t)\n\n\tacceptProposal := func() {\n\t\tprop.status = dao.Accepted\n\n\t\tdao.EmitProposalAccepted(id)\n\t}\n\n\tdeclineProposal := func() {\n\t\tprop.status = dao.NotAccepted\n\n\t\tdao.EmitProposalNotAccepted(id)\n\t}\n\n\tswitch {\n\tcase prop.tally.yays \u003e majorityPower:\n\t\t// 2/3+ voted YES\n\t\tacceptProposal()\n\tcase prop.tally.nays \u003e majorityPower:\n\t\t// 2/3+ voted NO\n\t\tdeclineProposal()\n\tcase prop.tally.abstains \u003e majorityPower:\n\t\t// 2/3+ voted ABSTAIN\n\t\tdeclineProposal()\n\tcase prop.tally.yays+prop.tally.nays+prop.tally.abstains \u003e= totalPower:\n\t\t// Everyone voted, but it's undecided,\n\t\t// hence the proposal can't go through\n\t\tdeclineProposal()\n\tdefault:\n\t\t// Quorum not reached\n\t}\n\n\treturn nil\n}\n\nfunc (s *SimpleDAO) ExecuteProposal(id uint64) error {\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minExecuteFee.Amount\n\t)\n\n\t// Check if the non-DAO member can cover the execute fee\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn ErrInsufficientExecuteFunds\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check if the proposal is executed\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal is already executed\n\t\treturn ErrProposalExecuted\n\t}\n\n\t// Check the proposal status\n\tif prop.Status() != dao.Accepted {\n\t\t// Proposal is not accepted, cannot be executed\n\t\treturn ErrProposalNotAccepted\n\t}\n\n\t// Emit an event when the execution finishes\n\tdefer dao.EmitProposalExecuted(id, prop.status)\n\n\t// Attempt to execute the proposal\n\tif err = prop.executor.Execute(); err != nil {\n\t\tprop.status = dao.ExecutionFailed\n\n\t\treturn ufmt.Errorf(\"error during proposal %d execution, %s\", id, err.Error())\n\t}\n\n\t// Update the proposal status\n\tprop.status = dao.ExecutionSuccessful\n\n\treturn nil\n}\n\n// getDAOCaller returns the DAO caller.\n// XXX: This is not a great way to determine the caller, and it is very unsafe.\n// However, the current MsgRun context does not persist escaping the main() scope.\n// Until a better solution is developed, this enables proposals to be made through a package deployment + init()\nfunc getDAOCaller() std.Address {\n\treturn std.GetOrigCaller()\n}\n"},{"name":"dao_test.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []membstore.Member {\n\tt.Helper()\n\n\tmembers := make([]membstore.Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, membstore.Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestSimpleDAO_Propose(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"invalid executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.Propose(dao.ProposalRequest{})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidExecutor,\n\t\t)\n\t})\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the proposal fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInsufficientProposalFunds,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"proposal added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\tdescription = \"Proposal description\"\n\n\t\t\tproposer = testutils.TestAddress(\"proposer\")\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue, // enough to cover\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(addr std.Address) bool {\n\t\t\t\t\treturn addr == proposer\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// to cover the fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\t\tstd.TestSetOrigCaller(proposer)\n\n\t\t// Make sure the proposal was added\n\t\tid, err := s.Propose(dao.ProposalRequest{\n\t\t\tDescription: description,\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.NoError(t, err)\n\t\tuassert.False(t, called)\n\n\t\t// Make sure the proposal exists\n\t\tprop, err := s.ProposalByID(id)\n\t\tuassert.NoError(t, err)\n\n\t\tuassert.Equal(t, proposer.String(), prop.Author().String())\n\t\tuassert.Equal(t, description, prop.Description())\n\t\tuassert.Equal(t, dao.Active.String(), prop.Status().String())\n\n\t\tstats := prop.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_VoteOnProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"not govdao member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tfetchErr = errors.New(\"fetch error\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(_ std.Address) (membstore.Member, error) {\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, fetchErr\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tfetchErr.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrProposalInactive,\n\t\t)\n\t})\n\n\tt.Run(\"double vote on proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tmember = membstore.Member{\n\t\t\t\tAddress: voter,\n\t\t\t\tVotingPower: 10,\n\t\t\t}\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn member, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Cast the initial vote\n\t\turequire.NoError(t, prop.tally.castVote(member, dao.YesVote))\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrAlreadyVoted.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"majority accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was accepted\n\t\tuassert.Equal(t, dao.Accepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority rejected\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority abstained\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.AbstainVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"everyone voted, undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first half votes yes\n\t\tfor _, m := range members[:len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The other half votes no\n\t\tfor _, m := range members[len(members)/2:] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is not active,\n\t\t// since everyone voted, and it was undecided\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"proposal undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first quarter votes yes\n\t\tfor _, m := range members[:len(members)/4] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The second quarter votes no\n\t\tfor _, m := range members[len(members)/4 : len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is still active,\n\t\t// since there wasn't quorum reached on any decision\n\t\tuassert.Equal(t, dao.Active.String(), prop.status.String())\n\t})\n}\n\nfunc TestSimpleDAO_ExecuteProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the execute fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrInsufficientExecuteFunds,\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// so the execution can take place\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal not accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.NotAccepted,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\tErrProposalNotAccepted,\n\t\t)\n\t})\n\n\tt.Run(\"proposal already executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ttestTable := []struct {\n\t\t\tname string\n\t\t\tstatus dao.ProposalStatus\n\t\t}{\n\t\t\t{\n\t\t\t\t\"execution was successful\",\n\t\t\t\tdao.ExecutionSuccessful,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"execution failed\",\n\t\t\t\tdao.ExecutionFailed,\n\t\t\t},\n\t\t}\n\n\t\tfor _, testCase := range testTable {\n\t\t\tt.Run(testCase.name, func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\n\t\t\t\tvar (\n\t\t\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\t\t\tms = \u0026mockMemberStore{\n\t\t\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\ts = New(ms)\n\n\t\t\t\t\tprop = \u0026proposal{\n\t\t\t\t\t\tstatus: testCase.status,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tstd.TestSetOrigCaller(voter)\n\n\t\t\t\t// Add an initial proposal\n\t\t\t\tid, err := s.addProposal(prop)\n\t\t\t\turequire.NoError(t, err)\n\n\t\t\t\t// Attempt to vote on the proposal\n\t\t\t\tuassert.ErrorIs(\n\t\t\t\t\tt,\n\t\t\t\t\ts.ExecuteProposal(id),\n\t\t\t\t\tErrProposalExecuted,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"execution error\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\n\t\t\texecError = errors.New(\"exec error\")\n\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\treturn execError\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\texecError.Error(),\n\t\t)\n\n\t\tuassert.Equal(t, dao.ExecutionFailed.String(), prop.status.String())\n\t})\n\n\tt.Run(\"successful execution\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tcalled = false\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\tcalled = true\n\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.NoError(t, s.ExecuteProposal(id))\n\t\tuassert.Equal(t, dao.ExecutionSuccessful.String(), prop.status.String())\n\t\tuassert.True(t, called)\n\t})\n}\n"},{"name":"mock_test.gno","body":"package simpledao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype executeDelegate func() error\n\ntype mockExecutor struct {\n\texecuteFn executeDelegate\n}\n\nfunc (m *mockExecutor) Execute() error {\n\tif m.executeFn != nil {\n\t\treturn m.executeFn()\n\t}\n\n\treturn nil\n}\n\ntype (\n\tmembersDelegate func(uint64, uint64) []membstore.Member\n\tsizeDelegate func() int\n\tisMemberDelegate func(std.Address) bool\n\ttotalPowerDelegate func() uint64\n\tmemberDelegate func(std.Address) (membstore.Member, error)\n\taddMemberDelegate func(membstore.Member) error\n\tupdateMemberDelegate func(std.Address, membstore.Member) error\n)\n\ntype mockMemberStore struct {\n\tmembersFn membersDelegate\n\tsizeFn sizeDelegate\n\tisMemberFn isMemberDelegate\n\ttotalPowerFn totalPowerDelegate\n\tmemberFn memberDelegate\n\taddMemberFn addMemberDelegate\n\tupdateMemberFn updateMemberDelegate\n}\n\nfunc (m *mockMemberStore) Members(offset, count uint64) []membstore.Member {\n\tif m.membersFn != nil {\n\t\treturn m.membersFn(offset, count)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) Size() int {\n\tif m.sizeFn != nil {\n\t\treturn m.sizeFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) IsMember(address std.Address) bool {\n\tif m.isMemberFn != nil {\n\t\treturn m.isMemberFn(address)\n\t}\n\n\treturn false\n}\n\nfunc (m *mockMemberStore) TotalPower() uint64 {\n\tif m.totalPowerFn != nil {\n\t\treturn m.totalPowerFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) Member(address std.Address) (membstore.Member, error) {\n\tif m.memberFn != nil {\n\t\treturn m.memberFn(address)\n\t}\n\n\treturn membstore.Member{}, nil\n}\n\nfunc (m *mockMemberStore) AddMember(member membstore.Member) error {\n\tif m.addMemberFn != nil {\n\t\treturn m.addMemberFn(member)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) UpdateMember(address std.Address, member membstore.Member) error {\n\tif m.updateMemberFn != nil {\n\t\treturn m.updateMemberFn(address, member)\n\t}\n\n\treturn nil\n}\n"},{"name":"propstore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar ErrMissingProposal = errors.New(\"proposal is missing\")\n\n// maxRequestProposals is the maximum number of\n// paginated proposals that can be requested\nconst maxRequestProposals = 10\n\n// proposal is the internal simpledao proposal implementation\ntype proposal struct {\n\tauthor std.Address // initiator of the proposal\n\tdescription string // description of the proposal\n\n\texecutor dao.Executor // executor for the proposal\n\tstatus dao.ProposalStatus // status of the proposal\n\n\ttally *tally // voting tally\n\tgetTotalVotingPowerFn func() uint64 // callback for the total voting power\n}\n\nfunc (p *proposal) Author() std.Address {\n\treturn p.author\n}\n\nfunc (p *proposal) Description() string {\n\treturn p.description\n}\n\nfunc (p *proposal) Status() dao.ProposalStatus {\n\treturn p.status\n}\n\nfunc (p *proposal) Executor() dao.Executor {\n\treturn p.executor\n}\n\nfunc (p *proposal) Stats() dao.Stats {\n\t// Get the total voting power of the body\n\ttotalPower := p.getTotalVotingPowerFn()\n\n\treturn dao.Stats{\n\t\tYayVotes: p.tally.yays,\n\t\tNayVotes: p.tally.nays,\n\t\tAbstainVotes: p.tally.abstains,\n\t\tTotalVotingPower: totalPower,\n\t}\n}\n\nfunc (p *proposal) IsExpired() bool {\n\treturn false // this proposal never expires\n}\n\nfunc (p *proposal) Render() string {\n\t// Fetch the voting stats\n\tstats := p.Stats()\n\n\toutput := \"\"\n\toutput += ufmt.Sprintf(\"Author: %s\", p.Author().String())\n\toutput += \"\\n\\n\"\n\toutput += p.Description()\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Status: %s\", p.Status().String())\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\n\t\t\"Voting stats: YES %d (%d%%), NO %d (%d%%), ABSTAIN %d (%d%%), MISSING VOTE %d (%d%%)\",\n\t\tstats.YayVotes,\n\t\tstats.YayPercent(),\n\t\tstats.NayVotes,\n\t\tstats.NayPercent(),\n\t\tstats.AbstainVotes,\n\t\tstats.AbstainPercent(),\n\t\tstats.MissingVotes(),\n\t\tstats.MissingVotesPercent(),\n\t)\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Threshold met: %t\", stats.YayVotes \u003e (2*stats.TotalVotingPower)/3)\n\n\treturn output\n}\n\n// addProposal adds a new simpledao proposal to the store\nfunc (s *SimpleDAO) addProposal(proposal *proposal) (uint64, error) {\n\t// See what the next proposal number should be\n\tnextID := uint64(s.proposals.Size())\n\n\t// Save the proposal\n\ts.proposals.Set(getProposalID(nextID), proposal)\n\n\treturn nextID, nil\n}\n\nfunc (s *SimpleDAO) Proposals(offset, count uint64) []dao.Proposal {\n\t// Check the requested count\n\tif count \u003c 1 {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Limit the maximum number of returned proposals\n\tif count \u003e maxRequestProposals {\n\t\tcount = maxRequestProposals\n\t}\n\n\tvar (\n\t\tstartIndex = offset\n\t\tendIndex = startIndex + count\n\n\t\tnumProposals = uint64(s.proposals.Size())\n\t)\n\n\t// Check if the current offset has any proposals\n\tif startIndex \u003e= numProposals {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Check if the right bound is good\n\tif endIndex \u003e numProposals {\n\t\tendIndex = numProposals\n\t}\n\n\tprops := make([]dao.Proposal, 0)\n\ts.proposals.Iterate(\n\t\tgetProposalID(startIndex),\n\t\tgetProposalID(endIndex),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tprop := val.(*proposal)\n\n\t\t\t// Save the proposal\n\t\t\tprops = append(props, prop)\n\n\t\t\treturn false\n\t\t},\n\t)\n\n\treturn props\n}\n\nfunc (s *SimpleDAO) ProposalByID(id uint64) (dao.Proposal, error) {\n\tprop, exists := s.proposals.Get(getProposalID(id))\n\tif !exists {\n\t\treturn nil, ErrMissingProposal\n\t}\n\n\treturn prop.(*proposal), nil\n}\n\nfunc (s *SimpleDAO) Size() int {\n\treturn s.proposals.Size()\n}\n\n// getProposalID generates a sequential proposal ID\n// from the given ID number\nfunc getProposalID(id uint64) string {\n\treturn seqid.ID(id).String()\n}\n"},{"name":"propstore_test.gno","body":"package simpledao\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateProposals generates dummy proposals\nfunc generateProposals(t *testing.T, count int) []*proposal {\n\tt.Helper()\n\n\tvar (\n\t\tmembers = generateMembers(t, count)\n\t\tproposals = make([]*proposal, 0, count)\n\t)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tproposal := \u0026proposal{\n\t\t\tauthor: members[i].Address,\n\t\t\tdescription: ufmt.Sprintf(\"proposal %d\", i),\n\t\t\tstatus: dao.Active,\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t\texecutor: nil,\n\t\t}\n\n\t\tproposals = append(proposals, proposal)\n\t}\n\n\treturn proposals\n}\n\nfunc equalProposals(t *testing.T, p1, p2 dao.Proposal) {\n\tt.Helper()\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Author().String(),\n\t\tp2.Author().String(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Description(),\n\t\tp2.Description(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Status().String(),\n\t\tp2.Status().String(),\n\t)\n\n\tp1Stats := p1.Stats()\n\tp2Stats := p2.Stats()\n\n\tuassert.Equal(t, p1Stats.YayVotes, p2Stats.YayVotes)\n\tuassert.Equal(t, p1Stats.NayVotes, p2Stats.NayVotes)\n\tuassert.Equal(t, p1Stats.AbstainVotes, p2Stats.AbstainVotes)\n\tuassert.Equal(t, p1Stats.TotalVotingPower, p2Stats.TotalVotingPower)\n}\n\nfunc TestProposal_Data(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"author\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tauthor: testutils.TestAddress(\"address\"),\n\t\t}\n\n\t\tuassert.Equal(t, p.author, p.Author())\n\t})\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tdescription: \"example proposal description\",\n\t\t}\n\n\t\tuassert.Equal(t, p.description, p.Description())\n\t})\n\n\tt.Run(\"status\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t}\n\n\t\tuassert.Equal(t, p.status.String(), p.Status().String())\n\t})\n\n\tt.Run(\"executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumCalled = 0\n\t\t\tcb = func() error {\n\t\t\t\tnumCalled++\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tp = \u0026proposal{\n\t\t\t\texecutor: ex,\n\t\t\t}\n\t\t)\n\n\t\turequire.NoError(t, p.executor.Execute())\n\t\turequire.NoError(t, p.Executor().Execute())\n\n\t\tuassert.Equal(t, 2, numCalled)\n\t})\n\n\tt.Run(\"no votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n\n\tt.Run(\"existing votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\t\t\ttotalPower = uint64(len(members)) * 10\n\n\t\t\tp = \u0026proposal{\n\t\t\t\ttally: newTally(),\n\t\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\t\treturn totalPower\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor _, m := range members {\n\t\t\turequire.NoError(t, p.tally.castVote(m, dao.YesVote))\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, totalPower, stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, totalPower, stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_GetProposals(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no proposals\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\tuassert.Equal(t, 0, s.Size())\n\t\tproposals := s.Proposals(0, 0)\n\n\t\tuassert.Equal(t, 0, len(proposals))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumProposals = 20\n\t\t\thalfRange = numProposals / 2\n\n\t\t\ts = New(nil)\n\t\t\tproposals = generateProposals(t, numProposals)\n\t\t)\n\n\t\t// Add initial proposals\n\t\tfor _, proposal := range proposals {\n\t\t\t_, err := s.addProposal(proposal)\n\n\t\t\turequire.NoError(t, err)\n\t\t}\n\n\t\tuassert.Equal(t, numProposals, s.Size())\n\n\t\tfetchedProposals := s.Proposals(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index], fetchedProposal)\n\t\t}\n\n\t\t// Fetch the other half\n\t\tfetchedProposals = s.Proposals(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index+halfRange], fetchedProposal)\n\t\t}\n\t})\n}\n\nfunc TestSimpleDAO_GetProposalByID(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.ProposalByID(0)\n\t\tuassert.ErrorIs(t, err, ErrMissingProposal)\n\t})\n\n\tt.Run(\"proposal found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\ts = New(nil)\n\t\t\tproposal = generateProposals(t, 1)[0]\n\t\t)\n\n\t\t// Add the initial proposal\n\t\t_, err := s.addProposal(proposal)\n\t\turequire.NoError(t, err)\n\n\t\t// Fetch the proposal\n\t\tfetchedProposal, err := s.ProposalByID(0)\n\t\turequire.NoError(t, err)\n\n\t\tequalProposals(t, proposal, fetchedProposal)\n\t})\n}\n"},{"name":"votestore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\nvar ErrAlreadyVoted = errors.New(\"vote already cast\")\n\n// tally is a simple vote tally system\ntype tally struct {\n\t// tally cache to keep track of active\n\t// yes / no / abstain votes\n\tyays uint64\n\tnays uint64\n\tabstains uint64\n\n\tvoters *avl.Tree // std.Address -\u003e dao.VoteOption\n}\n\n// newTally creates a new tally system instance\nfunc newTally() *tally {\n\treturn \u0026tally{\n\t\tvoters: avl.NewTree(),\n\t}\n}\n\n// castVote casts a single vote in the name of the given member\nfunc (t *tally) castVote(member membstore.Member, option dao.VoteOption) error {\n\t// Check if the member voted already\n\taddress := member.Address.String()\n\n\t_, voted := t.voters.Get(address)\n\tif voted {\n\t\treturn ErrAlreadyVoted\n\t}\n\n\t// convert option to upper-case, like the constants are.\n\toption = dao.VoteOption(strings.ToUpper(string(option)))\n\n\t// Update the tally\n\tswitch option {\n\tcase dao.YesVote:\n\t\tt.yays += member.VotingPower\n\tcase dao.AbstainVote:\n\t\tt.abstains += member.VotingPower\n\tcase dao.NoVote:\n\t\tt.nays += member.VotingPower\n\tdefault:\n\t\tpanic(\"invalid voting option: \" + option)\n\t}\n\n\t// Save the voting status\n\tt.voters.Set(address, option)\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IMgk5WrifyX2N3YlUl0wef/vzrWV6y9NmGnLZVy6lAEIuAEBvEjeH6u7Uh1B1d88W+UlnvNh7qWdpbw/7/ZaDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"simpledao","path":"gno.land/p/demo/simpledao","files":[{"name":"dao.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrInvalidExecutor = errors.New(\"invalid executor provided\")\n\tErrInvalidTitle = errors.New(\"invalid proposal title provided\")\n\tErrInsufficientProposalFunds = errors.New(\"insufficient funds for proposal\")\n\tErrInsufficientExecuteFunds = errors.New(\"insufficient funds for executing proposal\")\n\tErrProposalExecuted = errors.New(\"proposal already executed\")\n\tErrProposalInactive = errors.New(\"proposal is inactive\")\n\tErrProposalNotAccepted = errors.New(\"proposal is not accepted\")\n)\n\nvar (\n\tminProposalFeeValue int64 = 100 * 1_000_000 // minimum gnot required for a govdao proposal (100 GNOT)\n\tminExecuteFeeValue int64 = 500 * 1_000_000 // minimum gnot required for a govdao proposal (500 GNOT)\n\n\tminProposalFee = std.NewCoin(\"ugnot\", minProposalFeeValue)\n\tminExecuteFee = std.NewCoin(\"ugnot\", minExecuteFeeValue)\n)\n\n// SimpleDAO is a simple DAO implementation\ntype SimpleDAO struct {\n\tproposals *avl.Tree // seqid.ID -\u003e proposal\n\tmembStore membstore.MemberStore\n}\n\n// New creates a new instance of the simpledao DAO\nfunc New(membStore membstore.MemberStore) *SimpleDAO {\n\treturn \u0026SimpleDAO{\n\t\tproposals: avl.NewTree(),\n\t\tmembStore: membStore,\n\t}\n}\n\nfunc (s *SimpleDAO) Propose(request dao.ProposalRequest) (uint64, error) {\n\t// Make sure the executor is set\n\tif request.Executor == nil {\n\t\treturn 0, ErrInvalidExecutor\n\t}\n\n\t// Make sure the title is set\n\tif strings.TrimSpace(request.Title) == \"\" {\n\t\treturn 0, ErrInvalidTitle\n\t}\n\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minProposalFee.Amount\n\t)\n\n\t// Check if the proposal is valid\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn 0, ErrInsufficientProposalFunds\n\t}\n\n\t// Create the wrapped proposal\n\tprop := \u0026proposal{\n\t\tauthor: caller,\n\t\ttitle: request.Title,\n\t\tdescription: request.Description,\n\t\texecutor: request.Executor,\n\t\tstatus: dao.Active,\n\t\ttally: newTally(),\n\t\tgetTotalVotingPowerFn: s.membStore.TotalPower,\n\t}\n\n\t// Add the proposal\n\tid, err := s.addProposal(prop)\n\tif err != nil {\n\t\treturn 0, ufmt.Errorf(\"unable to add proposal, %s\", err.Error())\n\t}\n\n\t// Emit the proposal added event\n\tdao.EmitProposalAdded(id, caller)\n\n\treturn id, nil\n}\n\nfunc (s *SimpleDAO) VoteOnProposal(id uint64, option dao.VoteOption) error {\n\t// Verify the GOVDAO member\n\tcaller := getDAOCaller()\n\n\tmember, err := s.membStore.Member(caller)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get govdao member, %s\", err.Error())\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check the proposal status\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal was already executed, nothing to vote on anymore.\n\t\t//\n\t\t// In fact, the proposal should stop accepting\n\t\t// votes as soon as a 2/3+ majority is reached\n\t\t// on either option, but leaving the ability to vote still,\n\t\t// even if a proposal is accepted, or not accepted,\n\t\t// leaves room for \"principle\" vote decisions to be recorded\n\t\treturn ErrProposalInactive\n\t}\n\n\t// Cast the vote\n\tif err = prop.tally.castVote(member, option); err != nil {\n\t\treturn ufmt.Errorf(\"unable to vote on proposal %d, %s\", id, err.Error())\n\t}\n\n\t// Emit the vote cast event\n\tdao.EmitVoteAdded(id, caller, option)\n\n\t// Check the votes to see if quorum is reached\n\tvar (\n\t\ttotalPower = s.membStore.TotalPower()\n\t\tmajorityPower = (2 * totalPower) / 3\n\t)\n\n\tacceptProposal := func() {\n\t\tprop.status = dao.Accepted\n\n\t\tdao.EmitProposalAccepted(id)\n\t}\n\n\tdeclineProposal := func() {\n\t\tprop.status = dao.NotAccepted\n\n\t\tdao.EmitProposalNotAccepted(id)\n\t}\n\n\tswitch {\n\tcase prop.tally.yays \u003e majorityPower:\n\t\t// 2/3+ voted YES\n\t\tacceptProposal()\n\tcase prop.tally.nays \u003e majorityPower:\n\t\t// 2/3+ voted NO\n\t\tdeclineProposal()\n\tcase prop.tally.abstains \u003e majorityPower:\n\t\t// 2/3+ voted ABSTAIN\n\t\tdeclineProposal()\n\tcase prop.tally.yays+prop.tally.nays+prop.tally.abstains \u003e= totalPower:\n\t\t// Everyone voted, but it's undecided,\n\t\t// hence the proposal can't go through\n\t\tdeclineProposal()\n\tdefault:\n\t\t// Quorum not reached\n\t}\n\n\treturn nil\n}\n\nfunc (s *SimpleDAO) ExecuteProposal(id uint64) error {\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minExecuteFee.Amount\n\t)\n\n\t// Check if the non-DAO member can cover the execute fee\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn ErrInsufficientExecuteFunds\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check if the proposal is executed\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal is already executed\n\t\treturn ErrProposalExecuted\n\t}\n\n\t// Check the proposal status\n\tif prop.Status() != dao.Accepted {\n\t\t// Proposal is not accepted, cannot be executed\n\t\treturn ErrProposalNotAccepted\n\t}\n\n\t// Emit an event when the execution finishes\n\tdefer dao.EmitProposalExecuted(id, prop.status)\n\n\t// Attempt to execute the proposal\n\tif err = prop.executor.Execute(); err != nil {\n\t\tprop.status = dao.ExecutionFailed\n\n\t\treturn ufmt.Errorf(\"error during proposal %d execution, %s\", id, err.Error())\n\t}\n\n\t// Update the proposal status\n\tprop.status = dao.ExecutionSuccessful\n\n\treturn nil\n}\n\n// getDAOCaller returns the DAO caller.\n// XXX: This is not a great way to determine the caller, and it is very unsafe.\n// However, the current MsgRun context does not persist escaping the main() scope.\n// Until a better solution is developed, this enables proposals to be made through a package deployment + init()\nfunc getDAOCaller() std.Address {\n\treturn std.GetOrigCaller()\n}\n"},{"name":"dao_test.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []membstore.Member {\n\tt.Helper()\n\n\tmembers := make([]membstore.Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, membstore.Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestSimpleDAO_Propose(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"invalid executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.Propose(dao.ProposalRequest{})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidExecutor,\n\t\t)\n\t})\n\n\tt.Run(\"invalid title\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t\tTitle: \"\", // Set invalid title\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidTitle,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\ttitle = \"Proposal title\"\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the proposal fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t\tTitle: title,\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInsufficientProposalFunds,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"proposal added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\tdescription = \"Proposal description\"\n\t\t\ttitle = \"Proposal title\"\n\n\t\t\tproposer = testutils.TestAddress(\"proposer\")\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue, // enough to cover\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(addr std.Address) bool {\n\t\t\t\t\treturn addr == proposer\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// to cover the fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\t\tstd.TestSetOrigCaller(proposer)\n\n\t\t// Make sure the proposal was added\n\t\tid, err := s.Propose(dao.ProposalRequest{\n\t\t\tTitle: title,\n\t\t\tDescription: description,\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.NoError(t, err)\n\t\tuassert.False(t, called)\n\n\t\t// Make sure the proposal exists\n\t\tprop, err := s.ProposalByID(id)\n\t\tuassert.NoError(t, err)\n\n\t\tuassert.Equal(t, proposer.String(), prop.Author().String())\n\t\tuassert.Equal(t, description, prop.Description())\n\t\tuassert.Equal(t, title, prop.Title())\n\t\tuassert.Equal(t, dao.Active.String(), prop.Status().String())\n\n\t\tstats := prop.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_VoteOnProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"not govdao member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tfetchErr = errors.New(\"fetch error\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(_ std.Address) (membstore.Member, error) {\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, fetchErr\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tfetchErr.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrProposalInactive,\n\t\t)\n\t})\n\n\tt.Run(\"double vote on proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tmember = membstore.Member{\n\t\t\t\tAddress: voter,\n\t\t\t\tVotingPower: 10,\n\t\t\t}\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn member, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Cast the initial vote\n\t\turequire.NoError(t, prop.tally.castVote(member, dao.YesVote))\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrAlreadyVoted.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"majority accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was accepted\n\t\tuassert.Equal(t, dao.Accepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority rejected\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority abstained\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.AbstainVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"everyone voted, undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first half votes yes\n\t\tfor _, m := range members[:len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The other half votes no\n\t\tfor _, m := range members[len(members)/2:] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is not active,\n\t\t// since everyone voted, and it was undecided\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"proposal undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first quarter votes yes\n\t\tfor _, m := range members[:len(members)/4] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The second quarter votes no\n\t\tfor _, m := range members[len(members)/4 : len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is still active,\n\t\t// since there wasn't quorum reached on any decision\n\t\tuassert.Equal(t, dao.Active.String(), prop.status.String())\n\t})\n}\n\nfunc TestSimpleDAO_ExecuteProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the execute fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrInsufficientExecuteFunds,\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// so the execution can take place\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal not accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.NotAccepted,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\tErrProposalNotAccepted,\n\t\t)\n\t})\n\n\tt.Run(\"proposal already executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ttestTable := []struct {\n\t\t\tname string\n\t\t\tstatus dao.ProposalStatus\n\t\t}{\n\t\t\t{\n\t\t\t\t\"execution was successful\",\n\t\t\t\tdao.ExecutionSuccessful,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"execution failed\",\n\t\t\t\tdao.ExecutionFailed,\n\t\t\t},\n\t\t}\n\n\t\tfor _, testCase := range testTable {\n\t\t\tt.Run(testCase.name, func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\n\t\t\t\tvar (\n\t\t\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\t\t\tms = \u0026mockMemberStore{\n\t\t\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\ts = New(ms)\n\n\t\t\t\t\tprop = \u0026proposal{\n\t\t\t\t\t\tstatus: testCase.status,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tstd.TestSetOrigCaller(voter)\n\n\t\t\t\t// Add an initial proposal\n\t\t\t\tid, err := s.addProposal(prop)\n\t\t\t\turequire.NoError(t, err)\n\n\t\t\t\t// Attempt to vote on the proposal\n\t\t\t\tuassert.ErrorIs(\n\t\t\t\t\tt,\n\t\t\t\t\ts.ExecuteProposal(id),\n\t\t\t\t\tErrProposalExecuted,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"execution error\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\n\t\t\texecError = errors.New(\"exec error\")\n\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\treturn execError\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\texecError.Error(),\n\t\t)\n\n\t\tuassert.Equal(t, dao.ExecutionFailed.String(), prop.status.String())\n\t})\n\n\tt.Run(\"successful execution\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tcalled = false\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\tcalled = true\n\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.NoError(t, s.ExecuteProposal(id))\n\t\tuassert.Equal(t, dao.ExecutionSuccessful.String(), prop.status.String())\n\t\tuassert.True(t, called)\n\t})\n}\n"},{"name":"mock_test.gno","body":"package simpledao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype executeDelegate func() error\n\ntype mockExecutor struct {\n\texecuteFn executeDelegate\n}\n\nfunc (m *mockExecutor) Execute() error {\n\tif m.executeFn != nil {\n\t\treturn m.executeFn()\n\t}\n\n\treturn nil\n}\n\ntype (\n\tmembersDelegate func(uint64, uint64) []membstore.Member\n\tsizeDelegate func() int\n\tisMemberDelegate func(std.Address) bool\n\ttotalPowerDelegate func() uint64\n\tmemberDelegate func(std.Address) (membstore.Member, error)\n\taddMemberDelegate func(membstore.Member) error\n\tupdateMemberDelegate func(std.Address, membstore.Member) error\n)\n\ntype mockMemberStore struct {\n\tmembersFn membersDelegate\n\tsizeFn sizeDelegate\n\tisMemberFn isMemberDelegate\n\ttotalPowerFn totalPowerDelegate\n\tmemberFn memberDelegate\n\taddMemberFn addMemberDelegate\n\tupdateMemberFn updateMemberDelegate\n}\n\nfunc (m *mockMemberStore) Members(offset, count uint64) []membstore.Member {\n\tif m.membersFn != nil {\n\t\treturn m.membersFn(offset, count)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) Size() int {\n\tif m.sizeFn != nil {\n\t\treturn m.sizeFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) IsMember(address std.Address) bool {\n\tif m.isMemberFn != nil {\n\t\treturn m.isMemberFn(address)\n\t}\n\n\treturn false\n}\n\nfunc (m *mockMemberStore) TotalPower() uint64 {\n\tif m.totalPowerFn != nil {\n\t\treturn m.totalPowerFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) Member(address std.Address) (membstore.Member, error) {\n\tif m.memberFn != nil {\n\t\treturn m.memberFn(address)\n\t}\n\n\treturn membstore.Member{}, nil\n}\n\nfunc (m *mockMemberStore) AddMember(member membstore.Member) error {\n\tif m.addMemberFn != nil {\n\t\treturn m.addMemberFn(member)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) UpdateMember(address std.Address, member membstore.Member) error {\n\tif m.updateMemberFn != nil {\n\t\treturn m.updateMemberFn(address, member)\n\t}\n\n\treturn nil\n}\n"},{"name":"propstore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar ErrMissingProposal = errors.New(\"proposal is missing\")\n\n// maxRequestProposals is the maximum number of\n// paginated proposals that can be requested\nconst maxRequestProposals = 10\n\n// proposal is the internal simpledao proposal implementation\ntype proposal struct {\n\tauthor std.Address // initiator of the proposal\n\ttitle string // title of the proposal\n\tdescription string // description of the proposal\n\n\texecutor dao.Executor // executor for the proposal\n\tstatus dao.ProposalStatus // status of the proposal\n\n\ttally *tally // voting tally\n\tgetTotalVotingPowerFn func() uint64 // callback for the total voting power\n}\n\nfunc (p *proposal) Author() std.Address {\n\treturn p.author\n}\n\nfunc (p *proposal) Title() string {\n\treturn p.title\n}\n\nfunc (p *proposal) Description() string {\n\treturn p.description\n}\n\nfunc (p *proposal) Status() dao.ProposalStatus {\n\treturn p.status\n}\n\nfunc (p *proposal) Executor() dao.Executor {\n\treturn p.executor\n}\n\nfunc (p *proposal) Stats() dao.Stats {\n\t// Get the total voting power of the body\n\ttotalPower := p.getTotalVotingPowerFn()\n\n\treturn dao.Stats{\n\t\tYayVotes: p.tally.yays,\n\t\tNayVotes: p.tally.nays,\n\t\tAbstainVotes: p.tally.abstains,\n\t\tTotalVotingPower: totalPower,\n\t}\n}\n\nfunc (p *proposal) IsExpired() bool {\n\treturn false // this proposal never expires\n}\n\nfunc (p *proposal) Render() string {\n\t// Fetch the voting stats\n\tstats := p.Stats()\n\n\tvar out string\n\n\tout += \"## Description\\n\\n\"\n\tif strings.TrimSpace(p.description) != \"\" {\n\t\tout += ufmt.Sprintf(\"%s\\n\\n\", p.description)\n\t} else {\n\t\tout += \"No description provided.\\n\\n\"\n\t}\n\n\tout += \"## Proposal information\\n\\n\"\n\tout += ufmt.Sprintf(\"**Status: %s**\\n\\n\", strings.ToUpper(p.Status().String()))\n\n\tout += ufmt.Sprintf(\n\t\t\"**Voting stats:**\\n- YES %d (%d%%)\\n- NO %d (%d%%)\\n- ABSTAIN %d (%d%%)\\n- MISSING VOTES %d (%d%%)\\n\",\n\t\tstats.YayVotes,\n\t\tstats.YayPercent(),\n\t\tstats.NayVotes,\n\t\tstats.NayPercent(),\n\t\tstats.AbstainVotes,\n\t\tstats.AbstainPercent(),\n\t\tstats.MissingVotes(),\n\t\tstats.MissingVotesPercent(),\n\t)\n\n\tout += \"\\n\\n\"\n\tthresholdOut := strings.ToUpper(ufmt.Sprintf(\"%t\", stats.YayVotes \u003e (2*stats.TotalVotingPower)/3))\n\n\tout += ufmt.Sprintf(\"**Threshold met: %s**\\n\\n\", thresholdOut)\n\n\treturn out\n}\n\n// addProposal adds a new simpledao proposal to the store\nfunc (s *SimpleDAO) addProposal(proposal *proposal) (uint64, error) {\n\t// See what the next proposal number should be\n\tnextID := uint64(s.proposals.Size())\n\n\t// Save the proposal\n\ts.proposals.Set(getProposalID(nextID), proposal)\n\n\treturn nextID, nil\n}\n\nfunc (s *SimpleDAO) Proposals(offset, count uint64) []dao.Proposal {\n\t// Check the requested count\n\tif count \u003c 1 {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Limit the maximum number of returned proposals\n\tif count \u003e maxRequestProposals {\n\t\tcount = maxRequestProposals\n\t}\n\n\tvar (\n\t\tstartIndex = offset\n\t\tendIndex = startIndex + count\n\n\t\tnumProposals = uint64(s.proposals.Size())\n\t)\n\n\t// Check if the current offset has any proposals\n\tif startIndex \u003e= numProposals {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Check if the right bound is good\n\tif endIndex \u003e numProposals {\n\t\tendIndex = numProposals\n\t}\n\n\tprops := make([]dao.Proposal, 0)\n\ts.proposals.Iterate(\n\t\tgetProposalID(startIndex),\n\t\tgetProposalID(endIndex),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tprop := val.(*proposal)\n\n\t\t\t// Save the proposal\n\t\t\tprops = append(props, prop)\n\n\t\t\treturn false\n\t\t},\n\t)\n\n\treturn props\n}\n\nfunc (s *SimpleDAO) ProposalByID(id uint64) (dao.Proposal, error) {\n\tprop, exists := s.proposals.Get(getProposalID(id))\n\tif !exists {\n\t\treturn nil, ErrMissingProposal\n\t}\n\n\treturn prop.(*proposal), nil\n}\n\nfunc (s *SimpleDAO) Size() int {\n\treturn s.proposals.Size()\n}\n\n// getProposalID generates a sequential proposal ID\n// from the given ID number\nfunc getProposalID(id uint64) string {\n\treturn seqid.ID(id).String()\n}\n"},{"name":"propstore_test.gno","body":"package simpledao\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateProposals generates dummy proposals\nfunc generateProposals(t *testing.T, count int) []*proposal {\n\tt.Helper()\n\n\tvar (\n\t\tmembers = generateMembers(t, count)\n\t\tproposals = make([]*proposal, 0, count)\n\t)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tproposal := \u0026proposal{\n\t\t\tauthor: members[i].Address,\n\t\t\tdescription: ufmt.Sprintf(\"proposal %d\", i),\n\t\t\tstatus: dao.Active,\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t\texecutor: nil,\n\t\t}\n\n\t\tproposals = append(proposals, proposal)\n\t}\n\n\treturn proposals\n}\n\nfunc equalProposals(t *testing.T, p1, p2 dao.Proposal) {\n\tt.Helper()\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Author().String(),\n\t\tp2.Author().String(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Description(),\n\t\tp2.Description(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Status().String(),\n\t\tp2.Status().String(),\n\t)\n\n\tp1Stats := p1.Stats()\n\tp2Stats := p2.Stats()\n\n\tuassert.Equal(t, p1Stats.YayVotes, p2Stats.YayVotes)\n\tuassert.Equal(t, p1Stats.NayVotes, p2Stats.NayVotes)\n\tuassert.Equal(t, p1Stats.AbstainVotes, p2Stats.AbstainVotes)\n\tuassert.Equal(t, p1Stats.TotalVotingPower, p2Stats.TotalVotingPower)\n}\n\nfunc TestProposal_Data(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"author\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tauthor: testutils.TestAddress(\"address\"),\n\t\t}\n\n\t\tuassert.Equal(t, p.author, p.Author())\n\t})\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tdescription: \"example proposal description\",\n\t\t}\n\n\t\tuassert.Equal(t, p.description, p.Description())\n\t})\n\n\tt.Run(\"status\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t}\n\n\t\tuassert.Equal(t, p.status.String(), p.Status().String())\n\t})\n\n\tt.Run(\"executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumCalled = 0\n\t\t\tcb = func() error {\n\t\t\t\tnumCalled++\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tp = \u0026proposal{\n\t\t\t\texecutor: ex,\n\t\t\t}\n\t\t)\n\n\t\turequire.NoError(t, p.executor.Execute())\n\t\turequire.NoError(t, p.Executor().Execute())\n\n\t\tuassert.Equal(t, 2, numCalled)\n\t})\n\n\tt.Run(\"no votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n\n\tt.Run(\"existing votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\t\t\ttotalPower = uint64(len(members)) * 10\n\n\t\t\tp = \u0026proposal{\n\t\t\t\ttally: newTally(),\n\t\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\t\treturn totalPower\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor _, m := range members {\n\t\t\turequire.NoError(t, p.tally.castVote(m, dao.YesVote))\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, totalPower, stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, totalPower, stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_GetProposals(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no proposals\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\tuassert.Equal(t, 0, s.Size())\n\t\tproposals := s.Proposals(0, 0)\n\n\t\tuassert.Equal(t, 0, len(proposals))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumProposals = 20\n\t\t\thalfRange = numProposals / 2\n\n\t\t\ts = New(nil)\n\t\t\tproposals = generateProposals(t, numProposals)\n\t\t)\n\n\t\t// Add initial proposals\n\t\tfor _, proposal := range proposals {\n\t\t\t_, err := s.addProposal(proposal)\n\n\t\t\turequire.NoError(t, err)\n\t\t}\n\n\t\tuassert.Equal(t, numProposals, s.Size())\n\n\t\tfetchedProposals := s.Proposals(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index], fetchedProposal)\n\t\t}\n\n\t\t// Fetch the other half\n\t\tfetchedProposals = s.Proposals(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index+halfRange], fetchedProposal)\n\t\t}\n\t})\n}\n\nfunc TestSimpleDAO_GetProposalByID(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.ProposalByID(0)\n\t\tuassert.ErrorIs(t, err, ErrMissingProposal)\n\t})\n\n\tt.Run(\"proposal found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\ts = New(nil)\n\t\t\tproposal = generateProposals(t, 1)[0]\n\t\t)\n\n\t\t// Add the initial proposal\n\t\t_, err := s.addProposal(proposal)\n\t\turequire.NoError(t, err)\n\n\t\t// Fetch the proposal\n\t\tfetchedProposal, err := s.ProposalByID(0)\n\t\turequire.NoError(t, err)\n\n\t\tequalProposals(t, proposal, fetchedProposal)\n\t})\n}\n"},{"name":"votestore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\nvar ErrAlreadyVoted = errors.New(\"vote already cast\")\n\n// tally is a simple vote tally system\ntype tally struct {\n\t// tally cache to keep track of active\n\t// yes / no / abstain votes\n\tyays uint64\n\tnays uint64\n\tabstains uint64\n\n\tvoters *avl.Tree // std.Address -\u003e dao.VoteOption\n}\n\n// newTally creates a new tally system instance\nfunc newTally() *tally {\n\treturn \u0026tally{\n\t\tvoters: avl.NewTree(),\n\t}\n}\n\n// castVote casts a single vote in the name of the given member\nfunc (t *tally) castVote(member membstore.Member, option dao.VoteOption) error {\n\t// Check if the member voted already\n\taddress := member.Address.String()\n\n\t_, voted := t.voters.Get(address)\n\tif voted {\n\t\treturn ErrAlreadyVoted\n\t}\n\n\t// convert option to upper-case, like the constants are.\n\toption = dao.VoteOption(strings.ToUpper(string(option)))\n\n\t// Update the tally\n\tswitch option {\n\tcase dao.YesVote:\n\t\tt.yays += member.VotingPower\n\tcase dao.AbstainVote:\n\t\tt.abstains += member.VotingPower\n\tcase dao.NoVote:\n\t\tt.nays += member.VotingPower\n\tdefault:\n\t\tpanic(\"invalid voting option: \" + option)\n\t}\n\n\t// Save the voting status\n\tt.voters.Set(address, option)\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BVrvhn8Dm3w1k8QexWZgPwZumko6waaXUuebxEQfrDGSj/0QYcUfCG0bMpIANX2FIQ2XyoOHwjXdI3nsZwzXDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"single","path":"gno.land/p/demo/gnorkle/ingesters/single","files":[{"name":"ingester.gno","body":"package single\n\nimport (\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n)\n\n// ValueIngester is an ingester that ingests a single value.\ntype ValueIngester struct {\n\tvalue string\n}\n\n// Type returns the type of the ingester.\nfunc (i *ValueIngester) Type() ingester.Type {\n\treturn ingester.TypeSingle\n}\n\n// Ingest ingests a value provided by the given agent address.\nfunc (i *ValueIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i == nil {\n\t\treturn false, ingester.ErrUndefined\n\t}\n\n\ti.value = value\n\treturn true, nil\n}\n\n// CommitValue commits the ingested value to the given storage instance.\nfunc (i *ValueIngester) CommitValue(valueStorer gnorkle.Storage, providerAddress string) error {\n\tif i == nil {\n\t\treturn ingester.ErrUndefined\n\t}\n\n\treturn valueStorer.Put(i.value)\n}\n"},{"name":"ingester_test.gno","body":"package single_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValueIngester(t *testing.T) {\n\tstorage := simple.NewStorage(1)\n\n\tvar undefinedIngester *single.ValueIngester\n\t_, err := undefinedIngester.Ingest(\"asdf\", \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to Ingest should return ingester.ErrUndefined\")\n\n\terr = undefinedIngester.CommitValue(storage, \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to CommitValue should return ingester.ErrUndefined\")\n\n\tvar valueIngester single.ValueIngester\n\ttyp := valueIngester.Type()\n\tuassert.Equal(t, int(ingester.TypeSingle), int(typ), \"single value ingester should return type ingester.TypeSingle\")\n\n\tingestValue := \"value\"\n\tautocommit, err := valueIngester.Ingest(ingestValue, \"gno11111\")\n\tuassert.True(t, autocommit, \"single value ingester should return autocommit true\")\n\tuassert.NoError(t, err)\n\n\terr = valueIngester.CommitValue(storage, \"gno11111\")\n\tuassert.NoError(t, err)\n\n\tlatestValue := storage.GetLatest()\n\tuassert.Equal(t, ingestValue, latestValue.String)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2yUOEMCbQ5tOx528lZLE/3aAYBkSzG6FrrQ4wjt6X4Uih45kBFy+CxpHgCii/PQqGpFFZ8m78fOaO+QXFylPDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"single","path":"gno.land/p/demo/gnorkle/ingesters/single","files":[{"name":"ingester.gno","body":"package single\n\nimport (\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n)\n\n// ValueIngester is an ingester that ingests a single value.\ntype ValueIngester struct {\n\tvalue string\n}\n\n// Type returns the type of the ingester.\nfunc (i *ValueIngester) Type() ingester.Type {\n\treturn ingester.TypeSingle\n}\n\n// Ingest ingests a value provided by the given agent address.\nfunc (i *ValueIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i == nil {\n\t\treturn false, ingester.ErrUndefined\n\t}\n\n\ti.value = value\n\treturn true, nil\n}\n\n// CommitValue commits the ingested value to the given storage instance.\nfunc (i *ValueIngester) CommitValue(valueStorer gnorkle.Storage, providerAddress string) error {\n\tif i == nil {\n\t\treturn ingester.ErrUndefined\n\t}\n\n\treturn valueStorer.Put(i.value)\n}\n"},{"name":"ingester_test.gno","body":"package single_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValueIngester(t *testing.T) {\n\tstorage := simple.NewStorage(1)\n\n\tvar undefinedIngester *single.ValueIngester\n\t_, err := undefinedIngester.Ingest(\"asdf\", \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to Ingest should return ingester.ErrUndefined\")\n\n\terr = undefinedIngester.CommitValue(storage, \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to CommitValue should return ingester.ErrUndefined\")\n\n\tvar valueIngester single.ValueIngester\n\ttyp := valueIngester.Type()\n\tuassert.Equal(t, int(ingester.TypeSingle), int(typ), \"single value ingester should return type ingester.TypeSingle\")\n\n\tingestValue := \"value\"\n\tautocommit, err := valueIngester.Ingest(ingestValue, \"gno11111\")\n\tuassert.True(t, autocommit, \"single value ingester should return autocommit true\")\n\tuassert.NoError(t, err)\n\n\terr = valueIngester.CommitValue(storage, \"gno11111\")\n\tuassert.NoError(t, err)\n\n\tlatestValue := storage.GetLatest()\n\tuassert.Equal(t, ingestValue, latestValue.String)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2yUOEMCbQ5tOx528lZLE/3aAYBkSzG6FrrQ4wjt6X4Uih45kBFy+CxpHgCii/PQqGpFFZ8m78fOaO+QXFylPDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"single","path":"gno.land/p/demo/gnorkle/ingesters/single","files":[{"name":"ingester.gno","body":"package single\n\nimport (\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n)\n\n// ValueIngester is an ingester that ingests a single value.\ntype ValueIngester struct {\n\tvalue string\n}\n\n// Type returns the type of the ingester.\nfunc (i *ValueIngester) Type() ingester.Type {\n\treturn ingester.TypeSingle\n}\n\n// Ingest ingests a value provided by the given agent address.\nfunc (i *ValueIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i == nil {\n\t\treturn false, ingester.ErrUndefined\n\t}\n\n\ti.value = value\n\treturn true, nil\n}\n\n// CommitValue commits the ingested value to the given storage instance.\nfunc (i *ValueIngester) CommitValue(valueStorer gnorkle.Storage, providerAddress string) error {\n\tif i == nil {\n\t\treturn ingester.ErrUndefined\n\t}\n\n\treturn valueStorer.Put(i.value)\n}\n"},{"name":"ingester_test.gno","body":"package single_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValueIngester(t *testing.T) {\n\tstorage := simple.NewStorage(1)\n\n\tvar undefinedIngester *single.ValueIngester\n\t_, err := undefinedIngester.Ingest(\"asdf\", \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to Ingest should return ingester.ErrUndefined\")\n\n\terr = undefinedIngester.CommitValue(storage, \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to CommitValue should return ingester.ErrUndefined\")\n\n\tvar valueIngester single.ValueIngester\n\ttyp := valueIngester.Type()\n\tuassert.Equal(t, int(ingester.TypeSingle), int(typ), \"single value ingester should return type ingester.TypeSingle\")\n\n\tingestValue := \"value\"\n\tautocommit, err := valueIngester.Ingest(ingestValue, \"gno11111\")\n\tuassert.True(t, autocommit, \"single value ingester should return autocommit true\")\n\tuassert.NoError(t, err)\n\n\terr = valueIngester.CommitValue(storage, \"gno11111\")\n\tuassert.NoError(t, err)\n\n\tlatestValue := storage.GetLatest()\n\tuassert.Equal(t, ingestValue, latestValue.String)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2yUOEMCbQ5tOx528lZLE/3aAYBkSzG6FrrQ4wjt6X4Uih45kBFy+CxpHgCii/PQqGpFFZ8m78fOaO+QXFylPDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"source","path":"gno.land/r/docs/source","files":[{"name":"source.gno","body":"package source\n\n// Welcome to the source code of this realm!\n\nfunc Render(_ string) string {\n\treturn `# Viewing source code \ngno.land makes it easy to view the source code of any pure\npackage or realm, by using ABCI queries.\n\ngno.land's web frontend, ` + \"`gnoweb`, \" + ` makes this easy by\nproviding a intuitive UI that fetches the source of the\nrealm, that you can inspect anywhere by simply clicking\non the [source] button.\n\nCheck it out in the top right corner!\n`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KOUf8+acjsA3DTns8OqOEYr6mrOc8uZJQaH7A4k+bIBsk8ctLKOeQ0vQHwK1DlvsSgcOrcxgE06y667Voz14DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"source","path":"gno.land/r/docs/source","files":[{"name":"source.gno","body":"package source\n\n// Welcome to the source code of this realm!\n\nfunc Render(_ string) string {\n\treturn `# Viewing source code \ngno.land makes it easy to view the source code of any pure\npackage or realm, by using ABCI queries.\n\ngno.land's web frontend, ` + \"`gnoweb`, \" + ` makes this easy by\nproviding a intuitive UI that fetches the source of the\nrealm, that you can inspect anywhere by simply clicking\non the [source] button.\n\nCheck it out in the top right corner!\n`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KOUf8+acjsA3DTns8OqOEYr6mrOc8uZJQaH7A4k+bIBsk8ctLKOeQ0vQHwK1DlvsSgcOrcxgE06y667Voz14DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"source","path":"gno.land/r/docs/source","files":[{"name":"source.gno","body":"package source\n\n// Welcome to the source code of this realm!\n\nfunc Render(_ string) string {\n\treturn `# Viewing source code \ngno.land makes it easy to view the source code of any pure\npackage or realm, by using ABCI queries.\n\ngno.land's web frontend, ` + \"`gnoweb`, \" + ` makes this easy by\nproviding a intuitive UI that fetches the source of the\nrealm, that you can inspect anywhere by simply clicking\non the [source] button.\n\nCheck it out in the top right corner!\n`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KOUf8+acjsA3DTns8OqOEYr6mrOc8uZJQaH7A4k+bIBsk8ctLKOeQ0vQHwK1DlvsSgcOrcxgE06y667Voz14DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"stack","path":"gno.land/p/demo/stack","files":[{"name":"stack.gno","body":"package stack\n\ntype Stack struct {\n\ttop *node\n\tlength int\n}\n\ntype node struct {\n\tvalue interface{}\n\tprev *node\n}\n\nfunc New() *Stack {\n\treturn \u0026Stack{nil, 0}\n}\n\nfunc (s *Stack) Len() int {\n\treturn s.length\n}\n\nfunc (s *Stack) Top() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\treturn s.top.value\n}\n\nfunc (s *Stack) Pop() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\n\tnode := s.top\n\ts.top = node.prev\n\ts.length -= 1\n\treturn node.value\n}\n\nfunc (s *Stack) Push(value interface{}) {\n\tnode := \u0026node{value, s.top}\n\ts.top = node\n\ts.length += 1\n}\n"},{"name":"stack_test.gno","body":"package stack\n\nimport \"testing\"\n\nfunc TestStack(t *testing.T) {\n\ts := New() // Empty stack\n\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n\n\ts.Push(1)\n\n\tif s.Len() != 1 {\n\t\tt.Errorf(\"s.Len(): expected 1; got %d\", s.Len())\n\t}\n\n\tif top := s.Top(); top.(int) != 1 {\n\t\tt.Errorf(\"s.Top(): expected 1; got %v\", top.(int))\n\t}\n\n\tif elem := s.Pop(); elem.(int) != 1 {\n\t\tt.Errorf(\"s.Pop(): expected 1; got %v\", elem.(int))\n\t}\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+Mj9Kbo9qpGZv73RYCOEDPWhvG9+i0BYvNvP8ypktpJIzyz6NzszWZ0t/oHQTK923OpbiYR2dVCa5ZkmS5sCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"stack","path":"gno.land/p/demo/stack","files":[{"name":"stack.gno","body":"package stack\n\ntype Stack struct {\n\ttop *node\n\tlength int\n}\n\ntype node struct {\n\tvalue interface{}\n\tprev *node\n}\n\nfunc New() *Stack {\n\treturn \u0026Stack{nil, 0}\n}\n\nfunc (s *Stack) Len() int {\n\treturn s.length\n}\n\nfunc (s *Stack) Top() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\treturn s.top.value\n}\n\nfunc (s *Stack) Pop() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\n\tnode := s.top\n\ts.top = node.prev\n\ts.length -= 1\n\treturn node.value\n}\n\nfunc (s *Stack) Push(value interface{}) {\n\tnode := \u0026node{value, s.top}\n\ts.top = node\n\ts.length += 1\n}\n"},{"name":"stack_test.gno","body":"package stack\n\nimport \"testing\"\n\nfunc TestStack(t *testing.T) {\n\ts := New() // Empty stack\n\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n\n\ts.Push(1)\n\n\tif s.Len() != 1 {\n\t\tt.Errorf(\"s.Len(): expected 1; got %d\", s.Len())\n\t}\n\n\tif top := s.Top(); top.(int) != 1 {\n\t\tt.Errorf(\"s.Top(): expected 1; got %v\", top.(int))\n\t}\n\n\tif elem := s.Pop(); elem.(int) != 1 {\n\t\tt.Errorf(\"s.Pop(): expected 1; got %v\", elem.(int))\n\t}\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+Mj9Kbo9qpGZv73RYCOEDPWhvG9+i0BYvNvP8ypktpJIzyz6NzszWZ0t/oHQTK923OpbiYR2dVCa5ZkmS5sCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"stack","path":"gno.land/p/demo/stack","files":[{"name":"stack.gno","body":"package stack\n\ntype Stack struct {\n\ttop *node\n\tlength int\n}\n\ntype node struct {\n\tvalue interface{}\n\tprev *node\n}\n\nfunc New() *Stack {\n\treturn \u0026Stack{nil, 0}\n}\n\nfunc (s *Stack) Len() int {\n\treturn s.length\n}\n\nfunc (s *Stack) Top() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\treturn s.top.value\n}\n\nfunc (s *Stack) Pop() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\n\tnode := s.top\n\ts.top = node.prev\n\ts.length -= 1\n\treturn node.value\n}\n\nfunc (s *Stack) Push(value interface{}) {\n\tnode := \u0026node{value, s.top}\n\ts.top = node\n\ts.length += 1\n}\n"},{"name":"stack_test.gno","body":"package stack\n\nimport \"testing\"\n\nfunc TestStack(t *testing.T) {\n\ts := New() // Empty stack\n\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n\n\ts.Push(1)\n\n\tif s.Len() != 1 {\n\t\tt.Errorf(\"s.Len(): expected 1; got %d\", s.Len())\n\t}\n\n\tif top := s.Top(); top.(int) != 1 {\n\t\tt.Errorf(\"s.Top(): expected 1; got %v\", top.(int))\n\t}\n\n\tif elem := s.Pop(); elem.(int) != 1 {\n\t\tt.Errorf(\"s.Pop(): expected 1; got %v\", elem.(int))\n\t}\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+Mj9Kbo9qpGZv73RYCOEDPWhvG9+i0BYvNvP8ypktpJIzyz6NzszWZ0t/oHQTK923OpbiYR2dVCa5ZkmS5sCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"static","path":"gno.land/p/demo/gnorkle/feeds/static","files":[{"name":"feed.gno","body":"package static\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Feed is a static feed.\ntype Feed struct {\n\tid string\n\tisLocked bool\n\tvalueDataType string\n\tingester gnorkle.Ingester\n\tstorage gnorkle.Storage\n\ttasks []feed.Task\n}\n\n// NewFeed creates a new static feed.\nfunc NewFeed(\n\tid string,\n\tvalueDataType string,\n\tingester gnorkle.Ingester,\n\tstorage gnorkle.Storage,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn \u0026Feed{\n\t\tid: id,\n\t\tvalueDataType: valueDataType,\n\t\tingester: ingester,\n\t\tstorage: storage,\n\t\ttasks: tasks,\n\t}\n}\n\n// NewSingleValueFeed is a convenience function for creating a static feed\n// that autocommits a value after a single ingestion.\nfunc NewSingleValueFeed(\n\tid string,\n\tvalueDataType string,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn NewFeed(\n\t\tid,\n\t\tvalueDataType,\n\t\t\u0026single.ValueIngester{},\n\t\tsimple.NewStorage(1),\n\t\ttasks...,\n\t)\n}\n\n// ID returns the feed's ID.\nfunc (f Feed) ID() string {\n\treturn f.id\n}\n\n// Type returns the feed's type.\nfunc (f Feed) Type() feed.Type {\n\treturn feed.TypeStatic\n}\n\n// Ingest ingests a message into the feed. It either adds the value to the ingester's\n// pending values or commits the value to the storage.\nfunc (f *Feed) Ingest(funcType message.FuncType, msg, providerAddress string) error {\n\tif f == nil {\n\t\treturn feed.ErrUndefined\n\t}\n\n\tif f.isLocked {\n\t\treturn errors.New(\"feed locked\")\n\t}\n\n\tswitch funcType {\n\tcase message.FuncTypeIngest:\n\t\t// Autocommit the ingester's value if it's a single value ingester\n\t\t// because this is a static feed and this is the only value it will ever have.\n\t\tif canAutoCommit, err := f.ingester.Ingest(msg, providerAddress); canAutoCommit \u0026\u0026 err == nil {\n\t\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tf.isLocked = true\n\t\t} else if err != nil {\n\t\t\treturn err\n\t\t}\n\n\tcase message.FuncTypeCommit:\n\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tf.isLocked = true\n\n\tdefault:\n\t\treturn errors.New(\"invalid message function \" + string(funcType))\n\t}\n\n\treturn nil\n}\n\n// Value returns the feed's latest value, it's data type, and whether or not it can\n// be safely consumed. In this case it uses `f.isLocked` because, this being a static\n// feed, it will only ever have one value; once that value is committed the feed is locked\n// and there is a valid, non-empty value to consume.\nfunc (f Feed) Value() (feed.Value, string, bool) {\n\treturn f.storage.GetLatest(), f.valueDataType, f.isLocked\n}\n\n// MarshalJSON marshals the components of the feed that are needed for\n// an agent to execute tasks and send values for ingestion.\nfunc (f Feed) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write([]byte(\n\t\t`{\"id\":\"` + f.id +\n\t\t\t`\",\"type\":\"` + ufmt.Sprintf(\"%d\", int(f.Type())) +\n\t\t\t`\",\"value_type\":\"` + f.valueDataType +\n\t\t\t`\",\"tasks\":[`),\n\t)\n\n\tfirst := true\n\tfor _, task := range f.tasks {\n\t\tif !first {\n\t\t\tw.WriteString(\",\")\n\t\t}\n\n\t\ttaskJSON, err := task.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tw.Write(taskJSON)\n\t\tfirst = false\n\t}\n\n\tw.Write([]byte(\"]}\"))\n\tw.Flush()\n\n\treturn buf.Bytes(), nil\n}\n\n// Tasks returns the feed's tasks. This allows task consumers to extract task\n// contents without having to marshal the entire feed.\nfunc (f Feed) Tasks() []feed.Task {\n\treturn f.tasks\n}\n\n// IsActive returns true if the feed is accepting ingestion requests from agents.\nfunc (f Feed) IsActive() bool {\n\treturn !f.isLocked\n}\n"},{"name":"feed_test.gno","body":"package static_test\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\ntype mockIngester struct {\n\tcanAutoCommit bool\n\tingestErr error\n\tcommitErr error\n\tvalue string\n\tproviderAddress string\n}\n\nfunc (i mockIngester) Type() ingester.Type {\n\treturn ingester.Type(0)\n}\n\nfunc (i *mockIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i.ingestErr != nil {\n\t\treturn false, i.ingestErr\n\t}\n\n\ti.value = value\n\ti.providerAddress = providerAddress\n\treturn i.canAutoCommit, nil\n}\n\nfunc (i *mockIngester) CommitValue(storage gnorkle.Storage, providerAddress string) error {\n\tif i.commitErr != nil {\n\t\treturn i.commitErr\n\t}\n\n\treturn storage.Put(i.value)\n}\n\nfunc TestNewSingleValueFeed(t *testing.T) {\n\tstaticFeed := static.NewSingleValueFeed(\"1\", \"\")\n\n\tuassert.Equal(t, \"1\", staticFeed.ID())\n\tuassert.Equal(t, int(feed.TypeStatic), int(staticFeed.Type()))\n}\n\nfunc TestFeed_Ingest(t *testing.T) {\n\tvar undefinedFeed *static.Feed\n\terr := undefinedFeed.Ingest(\"\", \"\", \"\")\n\tuassert.ErrorIs(t, err, feed.ErrUndefined)\n\n\ttests := []struct {\n\t\tname string\n\t\tingester *mockIngester\n\t\tverifyIsLocked bool\n\t\tdoCommit bool\n\t\tfuncType message.FuncType\n\t\tmsg string\n\t\tproviderAddress string\n\t\texpFeedValueString string\n\t\texpErrText string\n\t\texpIsActive bool\n\t}{\n\t\t{\n\t\t\tname: \"func invalid error\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncType(\"derp\"),\n\t\t\texpErrText: \"invalid message function derp\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest ingest error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tingestErr: errors.New(\"ingest error\"),\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"ingest error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func commit commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"only ingest\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest autocommit\",\n\t\t\tingester: \u0026mockIngester{canAutoCommit: true},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpFeedValueString: \"still active feed\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"commit no value\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\tmsg: \"shouldn't be stored\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest then commmit\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"blahblah\",\n\t\t\tdoCommit: true,\n\t\t\texpFeedValueString: \"blahblah\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewFeed(\n\t\t\t\t\"1\",\n\t\t\t\t\"string\",\n\t\t\t\ttt.ingester,\n\t\t\t\tsimple.NewStorage(1),\n\t\t\t\tnil,\n\t\t\t)\n\n\t\t\tvar errText string\n\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\n\t\t\tif tt.doCommit {\n\t\t\t\terr := staticFeed.Ingest(message.FuncTypeCommit, \"\", \"\")\n\t\t\t\turequire.NoError(t, err, \"follow up commit failed\")\n\t\t\t}\n\n\t\t\tif tt.verifyIsLocked {\n\t\t\t\terrText = \"\"\n\t\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\t\terrText = err.Error()\n\t\t\t\t}\n\n\t\t\t\turequire.Equal(t, \"feed locked\", errText)\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tt.providerAddress, tt.ingester.providerAddress)\n\n\t\t\tfeedValue, dataType, isLocked := staticFeed.Value()\n\t\t\tuassert.Equal(t, tt.expFeedValueString, feedValue.String)\n\t\t\tuassert.Equal(t, \"string\", dataType)\n\t\t\tuassert.Equal(t, tt.verifyIsLocked, isLocked)\n\t\t\tuassert.Equal(t, tt.expIsActive, staticFeed.IsActive())\n\t\t})\n\t}\n}\n\ntype mockTask struct {\n\terr error\n\tvalue string\n}\n\nfunc (t mockTask) MarshalJSON() ([]byte, error) {\n\tif t.err != nil {\n\t\treturn nil, t.err\n\t}\n\n\treturn []byte(`{\"value\":\"` + t.value + `\"}`), nil\n}\n\nfunc TestFeed_Tasks(t *testing.T) {\n\tid := \"99\"\n\tvalueDataType := \"int\"\n\n\ttests := []struct {\n\t\tname string\n\t\ttasks []feed.Task\n\t\texpErrText string\n\t\texpJSON string\n\t}{\n\t\t{\n\t\t\tname: \"no tasks\",\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"marshal error\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{err: errors.New(\"marshal error\")},\n\t\t\t},\n\t\t\texpErrText: \"marshal error\",\n\t\t},\n\t\t{\n\t\t\tname: \"one task\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"single\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"single\"}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"two tasks\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"first\"},\n\t\t\t\tmockTask{value: \"second\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"first\"},{\"value\":\"second\"}]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewSingleValueFeed(\n\t\t\t\tid,\n\t\t\t\tvalueDataType,\n\t\t\t\ttt.tasks...,\n\t\t\t)\n\n\t\t\turequire.Equal(t, len(tt.tasks), len(staticFeed.Tasks()))\n\n\t\t\tvar errText string\n\t\t\tjson, err := staticFeed.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\t\t\turequire.Equal(t, tt.expJSON, string(json))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YjBlBQjpfKLugz7SArR/1TllgpaWB83ZtaXMhyns+55fdWPg2PHi4/UFylvuviPSKL5PGFxZtVWqMi5cn+xmAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"static","path":"gno.land/p/demo/gnorkle/feeds/static","files":[{"name":"feed.gno","body":"package static\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Feed is a static feed.\ntype Feed struct {\n\tid string\n\tisLocked bool\n\tvalueDataType string\n\tingester gnorkle.Ingester\n\tstorage gnorkle.Storage\n\ttasks []feed.Task\n}\n\n// NewFeed creates a new static feed.\nfunc NewFeed(\n\tid string,\n\tvalueDataType string,\n\tingester gnorkle.Ingester,\n\tstorage gnorkle.Storage,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn \u0026Feed{\n\t\tid: id,\n\t\tvalueDataType: valueDataType,\n\t\tingester: ingester,\n\t\tstorage: storage,\n\t\ttasks: tasks,\n\t}\n}\n\n// NewSingleValueFeed is a convenience function for creating a static feed\n// that autocommits a value after a single ingestion.\nfunc NewSingleValueFeed(\n\tid string,\n\tvalueDataType string,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn NewFeed(\n\t\tid,\n\t\tvalueDataType,\n\t\t\u0026single.ValueIngester{},\n\t\tsimple.NewStorage(1),\n\t\ttasks...,\n\t)\n}\n\n// ID returns the feed's ID.\nfunc (f Feed) ID() string {\n\treturn f.id\n}\n\n// Type returns the feed's type.\nfunc (f Feed) Type() feed.Type {\n\treturn feed.TypeStatic\n}\n\n// Ingest ingests a message into the feed. It either adds the value to the ingester's\n// pending values or commits the value to the storage.\nfunc (f *Feed) Ingest(funcType message.FuncType, msg, providerAddress string) error {\n\tif f == nil {\n\t\treturn feed.ErrUndefined\n\t}\n\n\tif f.isLocked {\n\t\treturn errors.New(\"feed locked\")\n\t}\n\n\tswitch funcType {\n\tcase message.FuncTypeIngest:\n\t\t// Autocommit the ingester's value if it's a single value ingester\n\t\t// because this is a static feed and this is the only value it will ever have.\n\t\tif canAutoCommit, err := f.ingester.Ingest(msg, providerAddress); canAutoCommit \u0026\u0026 err == nil {\n\t\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tf.isLocked = true\n\t\t} else if err != nil {\n\t\t\treturn err\n\t\t}\n\n\tcase message.FuncTypeCommit:\n\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tf.isLocked = true\n\n\tdefault:\n\t\treturn errors.New(\"invalid message function \" + string(funcType))\n\t}\n\n\treturn nil\n}\n\n// Value returns the feed's latest value, it's data type, and whether or not it can\n// be safely consumed. In this case it uses `f.isLocked` because, this being a static\n// feed, it will only ever have one value; once that value is committed the feed is locked\n// and there is a valid, non-empty value to consume.\nfunc (f Feed) Value() (feed.Value, string, bool) {\n\treturn f.storage.GetLatest(), f.valueDataType, f.isLocked\n}\n\n// MarshalJSON marshals the components of the feed that are needed for\n// an agent to execute tasks and send values for ingestion.\nfunc (f Feed) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write([]byte(\n\t\t`{\"id\":\"` + f.id +\n\t\t\t`\",\"type\":\"` + ufmt.Sprintf(\"%d\", int(f.Type())) +\n\t\t\t`\",\"value_type\":\"` + f.valueDataType +\n\t\t\t`\",\"tasks\":[`),\n\t)\n\n\tfirst := true\n\tfor _, task := range f.tasks {\n\t\tif !first {\n\t\t\tw.WriteString(\",\")\n\t\t}\n\n\t\ttaskJSON, err := task.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tw.Write(taskJSON)\n\t\tfirst = false\n\t}\n\n\tw.Write([]byte(\"]}\"))\n\tw.Flush()\n\n\treturn buf.Bytes(), nil\n}\n\n// Tasks returns the feed's tasks. This allows task consumers to extract task\n// contents without having to marshal the entire feed.\nfunc (f Feed) Tasks() []feed.Task {\n\treturn f.tasks\n}\n\n// IsActive returns true if the feed is accepting ingestion requests from agents.\nfunc (f Feed) IsActive() bool {\n\treturn !f.isLocked\n}\n"},{"name":"feed_test.gno","body":"package static_test\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\ntype mockIngester struct {\n\tcanAutoCommit bool\n\tingestErr error\n\tcommitErr error\n\tvalue string\n\tproviderAddress string\n}\n\nfunc (i mockIngester) Type() ingester.Type {\n\treturn ingester.Type(0)\n}\n\nfunc (i *mockIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i.ingestErr != nil {\n\t\treturn false, i.ingestErr\n\t}\n\n\ti.value = value\n\ti.providerAddress = providerAddress\n\treturn i.canAutoCommit, nil\n}\n\nfunc (i *mockIngester) CommitValue(storage gnorkle.Storage, providerAddress string) error {\n\tif i.commitErr != nil {\n\t\treturn i.commitErr\n\t}\n\n\treturn storage.Put(i.value)\n}\n\nfunc TestNewSingleValueFeed(t *testing.T) {\n\tstaticFeed := static.NewSingleValueFeed(\"1\", \"\")\n\n\tuassert.Equal(t, \"1\", staticFeed.ID())\n\tuassert.Equal(t, int(feed.TypeStatic), int(staticFeed.Type()))\n}\n\nfunc TestFeed_Ingest(t *testing.T) {\n\tvar undefinedFeed *static.Feed\n\terr := undefinedFeed.Ingest(\"\", \"\", \"\")\n\tuassert.ErrorIs(t, err, feed.ErrUndefined)\n\n\ttests := []struct {\n\t\tname string\n\t\tingester *mockIngester\n\t\tverifyIsLocked bool\n\t\tdoCommit bool\n\t\tfuncType message.FuncType\n\t\tmsg string\n\t\tproviderAddress string\n\t\texpFeedValueString string\n\t\texpErrText string\n\t\texpIsActive bool\n\t}{\n\t\t{\n\t\t\tname: \"func invalid error\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncType(\"derp\"),\n\t\t\texpErrText: \"invalid message function derp\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest ingest error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tingestErr: errors.New(\"ingest error\"),\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"ingest error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func commit commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"only ingest\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest autocommit\",\n\t\t\tingester: \u0026mockIngester{canAutoCommit: true},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpFeedValueString: \"still active feed\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"commit no value\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\tmsg: \"shouldn't be stored\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest then commmit\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"blahblah\",\n\t\t\tdoCommit: true,\n\t\t\texpFeedValueString: \"blahblah\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewFeed(\n\t\t\t\t\"1\",\n\t\t\t\t\"string\",\n\t\t\t\ttt.ingester,\n\t\t\t\tsimple.NewStorage(1),\n\t\t\t\tnil,\n\t\t\t)\n\n\t\t\tvar errText string\n\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\n\t\t\tif tt.doCommit {\n\t\t\t\terr := staticFeed.Ingest(message.FuncTypeCommit, \"\", \"\")\n\t\t\t\turequire.NoError(t, err, \"follow up commit failed\")\n\t\t\t}\n\n\t\t\tif tt.verifyIsLocked {\n\t\t\t\terrText = \"\"\n\t\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\t\terrText = err.Error()\n\t\t\t\t}\n\n\t\t\t\turequire.Equal(t, \"feed locked\", errText)\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tt.providerAddress, tt.ingester.providerAddress)\n\n\t\t\tfeedValue, dataType, isLocked := staticFeed.Value()\n\t\t\tuassert.Equal(t, tt.expFeedValueString, feedValue.String)\n\t\t\tuassert.Equal(t, \"string\", dataType)\n\t\t\tuassert.Equal(t, tt.verifyIsLocked, isLocked)\n\t\t\tuassert.Equal(t, tt.expIsActive, staticFeed.IsActive())\n\t\t})\n\t}\n}\n\ntype mockTask struct {\n\terr error\n\tvalue string\n}\n\nfunc (t mockTask) MarshalJSON() ([]byte, error) {\n\tif t.err != nil {\n\t\treturn nil, t.err\n\t}\n\n\treturn []byte(`{\"value\":\"` + t.value + `\"}`), nil\n}\n\nfunc TestFeed_Tasks(t *testing.T) {\n\tid := \"99\"\n\tvalueDataType := \"int\"\n\n\ttests := []struct {\n\t\tname string\n\t\ttasks []feed.Task\n\t\texpErrText string\n\t\texpJSON string\n\t}{\n\t\t{\n\t\t\tname: \"no tasks\",\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"marshal error\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{err: errors.New(\"marshal error\")},\n\t\t\t},\n\t\t\texpErrText: \"marshal error\",\n\t\t},\n\t\t{\n\t\t\tname: \"one task\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"single\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"single\"}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"two tasks\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"first\"},\n\t\t\t\tmockTask{value: \"second\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"first\"},{\"value\":\"second\"}]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewSingleValueFeed(\n\t\t\t\tid,\n\t\t\t\tvalueDataType,\n\t\t\t\ttt.tasks...,\n\t\t\t)\n\n\t\t\turequire.Equal(t, len(tt.tasks), len(staticFeed.Tasks()))\n\n\t\t\tvar errText string\n\t\t\tjson, err := staticFeed.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\t\t\turequire.Equal(t, tt.expJSON, string(json))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YjBlBQjpfKLugz7SArR/1TllgpaWB83ZtaXMhyns+55fdWPg2PHi4/UFylvuviPSKL5PGFxZtVWqMi5cn+xmAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"static","path":"gno.land/p/demo/gnorkle/feeds/static","files":[{"name":"feed.gno","body":"package static\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Feed is a static feed.\ntype Feed struct {\n\tid string\n\tisLocked bool\n\tvalueDataType string\n\tingester gnorkle.Ingester\n\tstorage gnorkle.Storage\n\ttasks []feed.Task\n}\n\n// NewFeed creates a new static feed.\nfunc NewFeed(\n\tid string,\n\tvalueDataType string,\n\tingester gnorkle.Ingester,\n\tstorage gnorkle.Storage,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn \u0026Feed{\n\t\tid: id,\n\t\tvalueDataType: valueDataType,\n\t\tingester: ingester,\n\t\tstorage: storage,\n\t\ttasks: tasks,\n\t}\n}\n\n// NewSingleValueFeed is a convenience function for creating a static feed\n// that autocommits a value after a single ingestion.\nfunc NewSingleValueFeed(\n\tid string,\n\tvalueDataType string,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn NewFeed(\n\t\tid,\n\t\tvalueDataType,\n\t\t\u0026single.ValueIngester{},\n\t\tsimple.NewStorage(1),\n\t\ttasks...,\n\t)\n}\n\n// ID returns the feed's ID.\nfunc (f Feed) ID() string {\n\treturn f.id\n}\n\n// Type returns the feed's type.\nfunc (f Feed) Type() feed.Type {\n\treturn feed.TypeStatic\n}\n\n// Ingest ingests a message into the feed. It either adds the value to the ingester's\n// pending values or commits the value to the storage.\nfunc (f *Feed) Ingest(funcType message.FuncType, msg, providerAddress string) error {\n\tif f == nil {\n\t\treturn feed.ErrUndefined\n\t}\n\n\tif f.isLocked {\n\t\treturn errors.New(\"feed locked\")\n\t}\n\n\tswitch funcType {\n\tcase message.FuncTypeIngest:\n\t\t// Autocommit the ingester's value if it's a single value ingester\n\t\t// because this is a static feed and this is the only value it will ever have.\n\t\tif canAutoCommit, err := f.ingester.Ingest(msg, providerAddress); canAutoCommit \u0026\u0026 err == nil {\n\t\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tf.isLocked = true\n\t\t} else if err != nil {\n\t\t\treturn err\n\t\t}\n\n\tcase message.FuncTypeCommit:\n\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tf.isLocked = true\n\n\tdefault:\n\t\treturn errors.New(\"invalid message function \" + string(funcType))\n\t}\n\n\treturn nil\n}\n\n// Value returns the feed's latest value, it's data type, and whether or not it can\n// be safely consumed. In this case it uses `f.isLocked` because, this being a static\n// feed, it will only ever have one value; once that value is committed the feed is locked\n// and there is a valid, non-empty value to consume.\nfunc (f Feed) Value() (feed.Value, string, bool) {\n\treturn f.storage.GetLatest(), f.valueDataType, f.isLocked\n}\n\n// MarshalJSON marshals the components of the feed that are needed for\n// an agent to execute tasks and send values for ingestion.\nfunc (f Feed) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write([]byte(\n\t\t`{\"id\":\"` + f.id +\n\t\t\t`\",\"type\":\"` + ufmt.Sprintf(\"%d\", int(f.Type())) +\n\t\t\t`\",\"value_type\":\"` + f.valueDataType +\n\t\t\t`\",\"tasks\":[`),\n\t)\n\n\tfirst := true\n\tfor _, task := range f.tasks {\n\t\tif !first {\n\t\t\tw.WriteString(\",\")\n\t\t}\n\n\t\ttaskJSON, err := task.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tw.Write(taskJSON)\n\t\tfirst = false\n\t}\n\n\tw.Write([]byte(\"]}\"))\n\tw.Flush()\n\n\treturn buf.Bytes(), nil\n}\n\n// Tasks returns the feed's tasks. This allows task consumers to extract task\n// contents without having to marshal the entire feed.\nfunc (f Feed) Tasks() []feed.Task {\n\treturn f.tasks\n}\n\n// IsActive returns true if the feed is accepting ingestion requests from agents.\nfunc (f Feed) IsActive() bool {\n\treturn !f.isLocked\n}\n"},{"name":"feed_test.gno","body":"package static_test\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\ntype mockIngester struct {\n\tcanAutoCommit bool\n\tingestErr error\n\tcommitErr error\n\tvalue string\n\tproviderAddress string\n}\n\nfunc (i mockIngester) Type() ingester.Type {\n\treturn ingester.Type(0)\n}\n\nfunc (i *mockIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i.ingestErr != nil {\n\t\treturn false, i.ingestErr\n\t}\n\n\ti.value = value\n\ti.providerAddress = providerAddress\n\treturn i.canAutoCommit, nil\n}\n\nfunc (i *mockIngester) CommitValue(storage gnorkle.Storage, providerAddress string) error {\n\tif i.commitErr != nil {\n\t\treturn i.commitErr\n\t}\n\n\treturn storage.Put(i.value)\n}\n\nfunc TestNewSingleValueFeed(t *testing.T) {\n\tstaticFeed := static.NewSingleValueFeed(\"1\", \"\")\n\n\tuassert.Equal(t, \"1\", staticFeed.ID())\n\tuassert.Equal(t, int(feed.TypeStatic), int(staticFeed.Type()))\n}\n\nfunc TestFeed_Ingest(t *testing.T) {\n\tvar undefinedFeed *static.Feed\n\terr := undefinedFeed.Ingest(\"\", \"\", \"\")\n\tuassert.ErrorIs(t, err, feed.ErrUndefined)\n\n\ttests := []struct {\n\t\tname string\n\t\tingester *mockIngester\n\t\tverifyIsLocked bool\n\t\tdoCommit bool\n\t\tfuncType message.FuncType\n\t\tmsg string\n\t\tproviderAddress string\n\t\texpFeedValueString string\n\t\texpErrText string\n\t\texpIsActive bool\n\t}{\n\t\t{\n\t\t\tname: \"func invalid error\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncType(\"derp\"),\n\t\t\texpErrText: \"invalid message function derp\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest ingest error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tingestErr: errors.New(\"ingest error\"),\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"ingest error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func commit commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"only ingest\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest autocommit\",\n\t\t\tingester: \u0026mockIngester{canAutoCommit: true},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpFeedValueString: \"still active feed\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"commit no value\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\tmsg: \"shouldn't be stored\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest then commmit\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"blahblah\",\n\t\t\tdoCommit: true,\n\t\t\texpFeedValueString: \"blahblah\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewFeed(\n\t\t\t\t\"1\",\n\t\t\t\t\"string\",\n\t\t\t\ttt.ingester,\n\t\t\t\tsimple.NewStorage(1),\n\t\t\t\tnil,\n\t\t\t)\n\n\t\t\tvar errText string\n\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\n\t\t\tif tt.doCommit {\n\t\t\t\terr := staticFeed.Ingest(message.FuncTypeCommit, \"\", \"\")\n\t\t\t\turequire.NoError(t, err, \"follow up commit failed\")\n\t\t\t}\n\n\t\t\tif tt.verifyIsLocked {\n\t\t\t\terrText = \"\"\n\t\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\t\terrText = err.Error()\n\t\t\t\t}\n\n\t\t\t\turequire.Equal(t, \"feed locked\", errText)\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tt.providerAddress, tt.ingester.providerAddress)\n\n\t\t\tfeedValue, dataType, isLocked := staticFeed.Value()\n\t\t\tuassert.Equal(t, tt.expFeedValueString, feedValue.String)\n\t\t\tuassert.Equal(t, \"string\", dataType)\n\t\t\tuassert.Equal(t, tt.verifyIsLocked, isLocked)\n\t\t\tuassert.Equal(t, tt.expIsActive, staticFeed.IsActive())\n\t\t})\n\t}\n}\n\ntype mockTask struct {\n\terr error\n\tvalue string\n}\n\nfunc (t mockTask) MarshalJSON() ([]byte, error) {\n\tif t.err != nil {\n\t\treturn nil, t.err\n\t}\n\n\treturn []byte(`{\"value\":\"` + t.value + `\"}`), nil\n}\n\nfunc TestFeed_Tasks(t *testing.T) {\n\tid := \"99\"\n\tvalueDataType := \"int\"\n\n\ttests := []struct {\n\t\tname string\n\t\ttasks []feed.Task\n\t\texpErrText string\n\t\texpJSON string\n\t}{\n\t\t{\n\t\t\tname: \"no tasks\",\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"marshal error\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{err: errors.New(\"marshal error\")},\n\t\t\t},\n\t\t\texpErrText: \"marshal error\",\n\t\t},\n\t\t{\n\t\t\tname: \"one task\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"single\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"single\"}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"two tasks\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"first\"},\n\t\t\t\tmockTask{value: \"second\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"first\"},{\"value\":\"second\"}]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewSingleValueFeed(\n\t\t\t\tid,\n\t\t\t\tvalueDataType,\n\t\t\t\ttt.tasks...,\n\t\t\t)\n\n\t\t\turequire.Equal(t, len(tt.tasks), len(staticFeed.Tasks()))\n\n\t\t\tvar errText string\n\t\t\tjson, err := staticFeed.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\t\t\turequire.Equal(t, tt.expJSON, string(json))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YjBlBQjpfKLugz7SArR/1TllgpaWB83ZtaXMhyns+55fdWPg2PHi4/UFylvuviPSKL5PGFxZtVWqMi5cn+xmAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"storage","path":"gno.land/p/demo/gnorkle/storage","files":[{"name":"errors.gno","body":"package storage\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined storage\")\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RIfIq1NZ4ZcRdFVXeqOpU+aNMWxWPJ/jqb15LSN91QcZbD9Ks/fHR62/yO7+6iC6bgtw6+uJKCbnn3EdmUQBDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"storage","path":"gno.land/p/demo/gnorkle/storage","files":[{"name":"errors.gno","body":"package storage\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined storage\")\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RIfIq1NZ4ZcRdFVXeqOpU+aNMWxWPJ/jqb15LSN91QcZbD9Ks/fHR62/yO7+6iC6bgtw6+uJKCbnn3EdmUQBDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"storage","path":"gno.land/p/demo/gnorkle/storage","files":[{"name":"errors.gno","body":"package storage\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined storage\")\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RIfIq1NZ4ZcRdFVXeqOpU+aNMWxWPJ/jqb15LSN91QcZbD9Ks/fHR62/yO7+6iC6bgtw6+uJKCbnn3EdmUQBDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subscription","path":"gno.land/p/demo/subscription","files":[{"name":"doc.gno","body":"// Package subscription provides a flexible system for managing both recurring and\n// lifetime subscriptions in Gno applications. It enables developers to handle\n// payment-based access control for services or products. The library supports\n// both subscriptions requiring periodic payments (recurring) and one-time payments\n// (lifetime). Subscriptions are tracked using an AVL tree for efficient management\n// of subscription statuses.\n//\n// Usage:\n//\n// Import the required sub-packages (`recurring` and/or `lifetime`) to manage specific\n// subscription types. The methods provided allow users to subscribe, check subscription\n// status, and manage payments.\n//\n// Recurring Subscription:\n//\n// Recurring subscriptions require periodic payments to maintain access.\n// Users pay to extend their access for a specific duration.\n//\n// Example:\n//\n//\t// Create a recurring subscription requiring 100 ugnot every 30 days\n//\trecSub := recurring.NewRecurringSubscription(time.Hour * 24 * 30, 100)\n//\n//\t// Process payment for the recurring subscription\n//\trecSub.Subscribe()\n//\n//\t// Gift a recurring subscription to another user\n//\trecSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\trecSub.HasValidSubscription(addr)\n//\n//\t// Get the expiration date of the subscription\n//\trecSub.GetExpiration(caller)\n//\n//\t// Update the subscription amount to 200 ugnot\n//\trecSub.UpdateAmount(200)\n//\n//\t// Get the current subscription amount\n//\trecSub.GetAmount()\n//\n// Lifetime Subscription:\n//\n// Lifetime subscriptions require a one-time payment for permanent access.\n// Once paid, users have indefinite access without further payments.\n//\n// Example:\n//\n//\t// Create a lifetime subscription costing 500 ugnot\n//\tlifeSub := lifetime.NewLifetimeSubscription(500)\n//\n//\t// Process payment for lifetime access\n//\tlifeSub.Subscribe()\n//\n//\t// Gift a lifetime subscription to another user\n//\tlifeSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\tlifeSub.HasValidSubscription(addr)\n//\n//\t// Update the lifetime subscription amount to 1000 ugnot\n//\tlifeSub.UpdateAmount(1000)\n//\n//\t// Get the current lifetime subscription amount\n//\tlifeSub.GetAmount()\npackage subscription\n"},{"name":"subscription.gno","body":"package subscription\n\nimport (\n\t\"std\"\n)\n\n// Subscription interface defines standard methods that all subscription types must implement.\ntype Subscription interface {\n\tHasValidSubscription(std.Address) error\n\tSubscribe() error\n\tUpdateAmount(newAmount int64) error\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yVeGhgoR9ud1zK/W8cGCplIdbIhkA4z6FkUESYRrMHqfSjc3ZMWmBKSHomElETQNRacpWLYD1O8h5nkvky8LDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subscription","path":"gno.land/p/demo/subscription","files":[{"name":"doc.gno","body":"// Package subscription provides a flexible system for managing both recurring and\n// lifetime subscriptions in Gno applications. It enables developers to handle\n// payment-based access control for services or products. The library supports\n// both subscriptions requiring periodic payments (recurring) and one-time payments\n// (lifetime). Subscriptions are tracked using an AVL tree for efficient management\n// of subscription statuses.\n//\n// Usage:\n//\n// Import the required sub-packages (`recurring` and/or `lifetime`) to manage specific\n// subscription types. The methods provided allow users to subscribe, check subscription\n// status, and manage payments.\n//\n// Recurring Subscription:\n//\n// Recurring subscriptions require periodic payments to maintain access.\n// Users pay to extend their access for a specific duration.\n//\n// Example:\n//\n//\t// Create a recurring subscription requiring 100 ugnot every 30 days\n//\trecSub := recurring.NewRecurringSubscription(time.Hour * 24 * 30, 100)\n//\n//\t// Process payment for the recurring subscription\n//\trecSub.Subscribe()\n//\n//\t// Gift a recurring subscription to another user\n//\trecSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\trecSub.HasValidSubscription(addr)\n//\n//\t// Get the expiration date of the subscription\n//\trecSub.GetExpiration(caller)\n//\n//\t// Update the subscription amount to 200 ugnot\n//\trecSub.UpdateAmount(200)\n//\n//\t// Get the current subscription amount\n//\trecSub.GetAmount()\n//\n// Lifetime Subscription:\n//\n// Lifetime subscriptions require a one-time payment for permanent access.\n// Once paid, users have indefinite access without further payments.\n//\n// Example:\n//\n//\t// Create a lifetime subscription costing 500 ugnot\n//\tlifeSub := lifetime.NewLifetimeSubscription(500)\n//\n//\t// Process payment for lifetime access\n//\tlifeSub.Subscribe()\n//\n//\t// Gift a lifetime subscription to another user\n//\tlifeSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\tlifeSub.HasValidSubscription(addr)\n//\n//\t// Update the lifetime subscription amount to 1000 ugnot\n//\tlifeSub.UpdateAmount(1000)\n//\n//\t// Get the current lifetime subscription amount\n//\tlifeSub.GetAmount()\npackage subscription\n"},{"name":"subscription.gno","body":"package subscription\n\nimport (\n\t\"std\"\n)\n\n// Subscription interface defines standard methods that all subscription types must implement.\ntype Subscription interface {\n\tHasValidSubscription(std.Address) error\n\tSubscribe() error\n\tUpdateAmount(newAmount int64) error\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yVeGhgoR9ud1zK/W8cGCplIdbIhkA4z6FkUESYRrMHqfSjc3ZMWmBKSHomElETQNRacpWLYD1O8h5nkvky8LDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subscription","path":"gno.land/p/demo/subscription","files":[{"name":"doc.gno","body":"// Package subscription provides a flexible system for managing both recurring and\n// lifetime subscriptions in Gno applications. It enables developers to handle\n// payment-based access control for services or products. The library supports\n// both subscriptions requiring periodic payments (recurring) and one-time payments\n// (lifetime). Subscriptions are tracked using an AVL tree for efficient management\n// of subscription statuses.\n//\n// Usage:\n//\n// Import the required sub-packages (`recurring` and/or `lifetime`) to manage specific\n// subscription types. The methods provided allow users to subscribe, check subscription\n// status, and manage payments.\n//\n// Recurring Subscription:\n//\n// Recurring subscriptions require periodic payments to maintain access.\n// Users pay to extend their access for a specific duration.\n//\n// Example:\n//\n//\t// Create a recurring subscription requiring 100 ugnot every 30 days\n//\trecSub := recurring.NewRecurringSubscription(time.Hour * 24 * 30, 100)\n//\n//\t// Process payment for the recurring subscription\n//\trecSub.Subscribe()\n//\n//\t// Gift a recurring subscription to another user\n//\trecSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\trecSub.HasValidSubscription(addr)\n//\n//\t// Get the expiration date of the subscription\n//\trecSub.GetExpiration(caller)\n//\n//\t// Update the subscription amount to 200 ugnot\n//\trecSub.UpdateAmount(200)\n//\n//\t// Get the current subscription amount\n//\trecSub.GetAmount()\n//\n// Lifetime Subscription:\n//\n// Lifetime subscriptions require a one-time payment for permanent access.\n// Once paid, users have indefinite access without further payments.\n//\n// Example:\n//\n//\t// Create a lifetime subscription costing 500 ugnot\n//\tlifeSub := lifetime.NewLifetimeSubscription(500)\n//\n//\t// Process payment for lifetime access\n//\tlifeSub.Subscribe()\n//\n//\t// Gift a lifetime subscription to another user\n//\tlifeSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\tlifeSub.HasValidSubscription(addr)\n//\n//\t// Update the lifetime subscription amount to 1000 ugnot\n//\tlifeSub.UpdateAmount(1000)\n//\n//\t// Get the current lifetime subscription amount\n//\tlifeSub.GetAmount()\npackage subscription\n"},{"name":"subscription.gno","body":"package subscription\n\nimport (\n\t\"std\"\n)\n\n// Subscription interface defines standard methods that all subscription types must implement.\ntype Subscription interface {\n\tHasValidSubscription(std.Address) error\n\tSubscribe() error\n\tUpdateAmount(newAmount int64) error\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yVeGhgoR9ud1zK/W8cGCplIdbIhkA4z6FkUESYRrMHqfSjc3ZMWmBKSHomElETQNRacpWLYD1O8h5nkvky8LDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subtests","path":"gno.land/p/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zx60k3OkHjwi387xDwArhYvrO1jy9iFdCH/7SPzPQs/JqlLzyVGa0uumpjdwDAuZZphqW64IB7aeDiSYXuGmAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subtests","path":"gno.land/p/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zx60k3OkHjwi387xDwArhYvrO1jy9iFdCH/7SPzPQs/JqlLzyVGa0uumpjdwDAuZZphqW64IB7aeDiSYXuGmAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subtests","path":"gno.land/p/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zx60k3OkHjwi387xDwArhYvrO1jy9iFdCH/7SPzPQs/JqlLzyVGa0uumpjdwDAuZZphqW64IB7aeDiSYXuGmAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subtests","path":"gno.land/r/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YK935nORhHeD8XPu2zMvnZTYmE7duHJPAHg7NudR5ONHkZy4GnI1HHqmQ3P/eyrmnNm53gDyMmx8f61VbJYaDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subtests","path":"gno.land/r/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YK935nORhHeD8XPu2zMvnZTYmE7duHJPAHg7NudR5ONHkZy4GnI1HHqmQ3P/eyrmnNm53gDyMmx8f61VbJYaDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"subtests","path":"gno.land/r/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YK935nORhHeD8XPu2zMvnZTYmE7duHJPAHg7NudR5ONHkZy4GnI1HHqmQ3P/eyrmnNm53gDyMmx8f61VbJYaDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"svg","path":"gno.land/p/demo/svg","files":[{"name":"doc.gno","body":"/*\nPackage svg is a minimalist SVG generation library for Gno.\n\nThe svg package provides a simple and lightweight solution for programmatically generating SVG (Scalable Vector Graphics) markup in Gno. It allows you to create basic shapes like rectangles and circles, and output the generated SVG to a\n\nExample:\n\n\timport \"gno.land/p/demo/svg\"\"\n\n\tfunc Foo() string {\n\t canvas := svg.Canvas{Width: 200, Height: 200}\n\t canvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\t canvas.DrawCircle(100, 100, 50, \"blue\")\n\t return canvas.String()\n\t}\n*/\npackage svg // import \"gno.land/p/demo/svg\"\n"},{"name":"svg.gno","body":"package svg\n\nimport \"gno.land/p/demo/ufmt\"\n\ntype Canvas struct {\n\tWidth int\n\tHeight int\n\tElems []Elem\n}\n\ntype Elem interface{ String() string }\n\nfunc (c Canvas) String() string {\n\toutput := \"\"\n\toutput += ufmt.Sprintf(`\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"%d\" height=\"%d\"\u003e`, c.Width, c.Height)\n\tfor _, elem := range c.Elems {\n\t\toutput += elem.String()\n\t}\n\toutput += \"\u003c/svg\u003e\"\n\treturn output\n}\n\nfunc (c *Canvas) Append(elem Elem) {\n\tc.Elems = append(c.Elems, elem)\n}\n\ntype Circle struct {\n\tCX int // center X\n\tCY int // center Y\n\tR int // radius\n\tFill string\n}\n\nfunc (c Circle) String() string {\n\treturn ufmt.Sprintf(`\u003ccircle cx=\"%d\" cy=\"%d\" r=\"%d\" fill=\"%s\" /\u003e`, c.CX, c.CY, c.R, c.Fill)\n}\n\nfunc (c *Canvas) DrawCircle(cx, cy, r int, fill string) {\n\tc.Append(Circle{\n\t\tCX: cx,\n\t\tCY: cy,\n\t\tR: r,\n\t\tFill: fill,\n\t})\n}\n\ntype Rectangle struct {\n\tX, Y, Width, Height int\n\tFill string\n}\n\nfunc (c Rectangle) String() string {\n\treturn ufmt.Sprintf(`\u003crect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"%s\" /\u003e`, c.X, c.Y, c.Width, c.Height, c.Fill)\n}\n\nfunc (c *Canvas) DrawRectangle(x, y, width, height int, fill string) {\n\tc.Append(Rectangle{\n\t\tX: x,\n\t\tY: y,\n\t\tWidth: width,\n\t\tHeight: height,\n\t\tFill: fill,\n\t})\n}\n\ntype Text struct {\n\tX, Y int\n\tText, Fill string\n}\n\nfunc (c Text) String() string {\n\treturn ufmt.Sprintf(`\u003ctext x=\"%d\" y=\"%d\" fill=\"%s\"\u003e%s\u003c/text\u003e`, c.X, c.Y, c.Fill, c.Text)\n}\n\nfunc (c *Canvas) DrawText(x, y int, text, fill string) {\n\tc.Append(Text{\n\t\tX: x,\n\t\tY: y,\n\t\tText: text,\n\t\tFill: fill,\n\t})\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{Width: 500, Height: 500}\n\tcanvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\tcanvas.DrawCircle(100, 100, 50, \"blue\")\n\tcanvas.DrawText(100, 100, \"hello world!\", \"magenta\")\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"100\" cy=\"100\" r=\"50\" fill=\"blue\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"},{"name":"z1_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{\n\t\tWidth: 500, Height: 500,\n\t\tElems: []svg.Elem{\n\t\t\tsvg.Rectangle{50, 50, 100, 100, \"red\"},\n\t\t\tsvg.Circle{50, 50, 100, \"red\"},\n\t\t\tsvg.Text{100, 100, \"hello world!\", \"magenta\"},\n\t\t},\n\t}\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DTlJVWFxmtg7IKcEdfXyG9iFsFotxeIFMX9ANvIqCv2i9MKeCUjfgmDQFEPXM2NIKEclICHKi5KE3itWPlxvCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"svg","path":"gno.land/p/demo/svg","files":[{"name":"doc.gno","body":"/*\nPackage svg is a minimalist SVG generation library for Gno.\n\nThe svg package provides a simple and lightweight solution for programmatically generating SVG (Scalable Vector Graphics) markup in Gno. It allows you to create basic shapes like rectangles and circles, and output the generated SVG to a\n\nExample:\n\n\timport \"gno.land/p/demo/svg\"\"\n\n\tfunc Foo() string {\n\t canvas := svg.Canvas{Width: 200, Height: 200}\n\t canvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\t canvas.DrawCircle(100, 100, 50, \"blue\")\n\t return canvas.String()\n\t}\n*/\npackage svg // import \"gno.land/p/demo/svg\"\n"},{"name":"svg.gno","body":"package svg\n\nimport \"gno.land/p/demo/ufmt\"\n\ntype Canvas struct {\n\tWidth int\n\tHeight int\n\tElems []Elem\n}\n\ntype Elem interface{ String() string }\n\nfunc (c Canvas) String() string {\n\toutput := \"\"\n\toutput += ufmt.Sprintf(`\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"%d\" height=\"%d\"\u003e`, c.Width, c.Height)\n\tfor _, elem := range c.Elems {\n\t\toutput += elem.String()\n\t}\n\toutput += \"\u003c/svg\u003e\"\n\treturn output\n}\n\nfunc (c *Canvas) Append(elem Elem) {\n\tc.Elems = append(c.Elems, elem)\n}\n\ntype Circle struct {\n\tCX int // center X\n\tCY int // center Y\n\tR int // radius\n\tFill string\n}\n\nfunc (c Circle) String() string {\n\treturn ufmt.Sprintf(`\u003ccircle cx=\"%d\" cy=\"%d\" r=\"%d\" fill=\"%s\" /\u003e`, c.CX, c.CY, c.R, c.Fill)\n}\n\nfunc (c *Canvas) DrawCircle(cx, cy, r int, fill string) {\n\tc.Append(Circle{\n\t\tCX: cx,\n\t\tCY: cy,\n\t\tR: r,\n\t\tFill: fill,\n\t})\n}\n\ntype Rectangle struct {\n\tX, Y, Width, Height int\n\tFill string\n}\n\nfunc (c Rectangle) String() string {\n\treturn ufmt.Sprintf(`\u003crect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"%s\" /\u003e`, c.X, c.Y, c.Width, c.Height, c.Fill)\n}\n\nfunc (c *Canvas) DrawRectangle(x, y, width, height int, fill string) {\n\tc.Append(Rectangle{\n\t\tX: x,\n\t\tY: y,\n\t\tWidth: width,\n\t\tHeight: height,\n\t\tFill: fill,\n\t})\n}\n\ntype Text struct {\n\tX, Y int\n\tText, Fill string\n}\n\nfunc (c Text) String() string {\n\treturn ufmt.Sprintf(`\u003ctext x=\"%d\" y=\"%d\" fill=\"%s\"\u003e%s\u003c/text\u003e`, c.X, c.Y, c.Fill, c.Text)\n}\n\nfunc (c *Canvas) DrawText(x, y int, text, fill string) {\n\tc.Append(Text{\n\t\tX: x,\n\t\tY: y,\n\t\tText: text,\n\t\tFill: fill,\n\t})\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{Width: 500, Height: 500}\n\tcanvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\tcanvas.DrawCircle(100, 100, 50, \"blue\")\n\tcanvas.DrawText(100, 100, \"hello world!\", \"magenta\")\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"100\" cy=\"100\" r=\"50\" fill=\"blue\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"},{"name":"z1_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{\n\t\tWidth: 500, Height: 500,\n\t\tElems: []svg.Elem{\n\t\t\tsvg.Rectangle{50, 50, 100, 100, \"red\"},\n\t\t\tsvg.Circle{50, 50, 100, \"red\"},\n\t\t\tsvg.Text{100, 100, \"hello world!\", \"magenta\"},\n\t\t},\n\t}\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DTlJVWFxmtg7IKcEdfXyG9iFsFotxeIFMX9ANvIqCv2i9MKeCUjfgmDQFEPXM2NIKEclICHKi5KE3itWPlxvCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"svg","path":"gno.land/p/demo/svg","files":[{"name":"doc.gno","body":"/*\nPackage svg is a minimalist SVG generation library for Gno.\n\nThe svg package provides a simple and lightweight solution for programmatically generating SVG (Scalable Vector Graphics) markup in Gno. It allows you to create basic shapes like rectangles and circles, and output the generated SVG to a\n\nExample:\n\n\timport \"gno.land/p/demo/svg\"\"\n\n\tfunc Foo() string {\n\t canvas := svg.Canvas{Width: 200, Height: 200}\n\t canvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\t canvas.DrawCircle(100, 100, 50, \"blue\")\n\t return canvas.String()\n\t}\n*/\npackage svg // import \"gno.land/p/demo/svg\"\n"},{"name":"svg.gno","body":"package svg\n\nimport \"gno.land/p/demo/ufmt\"\n\ntype Canvas struct {\n\tWidth int\n\tHeight int\n\tElems []Elem\n}\n\ntype Elem interface{ String() string }\n\nfunc (c Canvas) String() string {\n\toutput := \"\"\n\toutput += ufmt.Sprintf(`\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"%d\" height=\"%d\"\u003e`, c.Width, c.Height)\n\tfor _, elem := range c.Elems {\n\t\toutput += elem.String()\n\t}\n\toutput += \"\u003c/svg\u003e\"\n\treturn output\n}\n\nfunc (c *Canvas) Append(elem Elem) {\n\tc.Elems = append(c.Elems, elem)\n}\n\ntype Circle struct {\n\tCX int // center X\n\tCY int // center Y\n\tR int // radius\n\tFill string\n}\n\nfunc (c Circle) String() string {\n\treturn ufmt.Sprintf(`\u003ccircle cx=\"%d\" cy=\"%d\" r=\"%d\" fill=\"%s\" /\u003e`, c.CX, c.CY, c.R, c.Fill)\n}\n\nfunc (c *Canvas) DrawCircle(cx, cy, r int, fill string) {\n\tc.Append(Circle{\n\t\tCX: cx,\n\t\tCY: cy,\n\t\tR: r,\n\t\tFill: fill,\n\t})\n}\n\ntype Rectangle struct {\n\tX, Y, Width, Height int\n\tFill string\n}\n\nfunc (c Rectangle) String() string {\n\treturn ufmt.Sprintf(`\u003crect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"%s\" /\u003e`, c.X, c.Y, c.Width, c.Height, c.Fill)\n}\n\nfunc (c *Canvas) DrawRectangle(x, y, width, height int, fill string) {\n\tc.Append(Rectangle{\n\t\tX: x,\n\t\tY: y,\n\t\tWidth: width,\n\t\tHeight: height,\n\t\tFill: fill,\n\t})\n}\n\ntype Text struct {\n\tX, Y int\n\tText, Fill string\n}\n\nfunc (c Text) String() string {\n\treturn ufmt.Sprintf(`\u003ctext x=\"%d\" y=\"%d\" fill=\"%s\"\u003e%s\u003c/text\u003e`, c.X, c.Y, c.Fill, c.Text)\n}\n\nfunc (c *Canvas) DrawText(x, y int, text, fill string) {\n\tc.Append(Text{\n\t\tX: x,\n\t\tY: y,\n\t\tText: text,\n\t\tFill: fill,\n\t})\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{Width: 500, Height: 500}\n\tcanvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\tcanvas.DrawCircle(100, 100, 50, \"blue\")\n\tcanvas.DrawText(100, 100, \"hello world!\", \"magenta\")\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"100\" cy=\"100\" r=\"50\" fill=\"blue\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"},{"name":"z1_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{\n\t\tWidth: 500, Height: 500,\n\t\tElems: []svg.Elem{\n\t\t\tsvg.Rectangle{50, 50, 100, 100, \"red\"},\n\t\t\tsvg.Circle{50, 50, 100, \"red\"},\n\t\t\tsvg.Text{100, 100, \"hello world!\", \"magenta\"},\n\t\t},\n\t}\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DTlJVWFxmtg7IKcEdfXyG9iFsFotxeIFMX9ANvIqCv2i9MKeCUjfgmDQFEPXM2NIKEclICHKi5KE3itWPlxvCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"t12345","path":"gno.land/r/demo/t12345","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ygY9Jc6JQ7qDE2hwAFj//TvgYT0i6YyUNPOi4ls5fJdc0I1/gRNyRF6OaT11fOcuczXCNUvcJY7GNa+hjitoCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tamagotchi","path":"gno.land/p/demo/tamagotchi","files":[{"name":"tamagotchi.gno","body":"package tamagotchi\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Tamagotchi structure\ntype Tamagotchi struct {\n\tname string\n\thunger int\n\thappiness int\n\thealth int\n\tage int\n\tmaxAge int\n\tsleepy int\n\tcreated time.Time\n\tlastUpdated time.Time\n}\n\nfunc New(name string) *Tamagotchi {\n\tnow := time.Now()\n\treturn \u0026Tamagotchi{\n\t\tname: name,\n\t\thunger: 50,\n\t\thappiness: 50,\n\t\thealth: 50,\n\t\tmaxAge: 100,\n\t\tlastUpdated: now,\n\t\tcreated: now,\n\t}\n}\n\nfunc (t *Tamagotchi) Name() string {\n\tt.update()\n\treturn t.name\n}\n\nfunc (t *Tamagotchi) Hunger() int {\n\tt.update()\n\treturn t.hunger\n}\n\nfunc (t *Tamagotchi) Happiness() int {\n\tt.update()\n\treturn t.happiness\n}\n\nfunc (t *Tamagotchi) Health() int {\n\tt.update()\n\treturn t.health\n}\n\nfunc (t *Tamagotchi) Age() int {\n\tt.update()\n\treturn t.age\n}\n\nfunc (t *Tamagotchi) Sleepy() int {\n\tt.update()\n\treturn t.sleepy\n}\n\n// Feed method for Tamagotchi\nfunc (t *Tamagotchi) Feed() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.hunger = bound(t.hunger-10, 0, 100)\n}\n\n// Play method for Tamagotchi\nfunc (t *Tamagotchi) Play() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.happiness = bound(t.happiness+10, 0, 100)\n}\n\n// Heal method for Tamagotchi\nfunc (t *Tamagotchi) Heal() {\n\tt.update()\n\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.health = bound(t.health+10, 0, 100)\n}\n\nfunc (t Tamagotchi) dead() bool { return t.health == 0 }\n\n// Update applies changes based on the duration since the last update\nfunc (t *Tamagotchi) update() {\n\tif t.dead() {\n\t\treturn\n\t}\n\n\tnow := time.Now()\n\tif t.lastUpdated == now {\n\t\treturn\n\t}\n\n\tduration := now.Sub(t.lastUpdated)\n\telapsedMins := int(duration.Minutes())\n\n\tt.hunger = bound(t.hunger+elapsedMins, 0, 100)\n\tt.happiness = bound(t.happiness-elapsedMins, 0, 100)\n\tt.health = bound(t.health-elapsedMins, 0, 100)\n\tt.sleepy = bound(t.sleepy+elapsedMins, 0, 100)\n\n\t// age is hours since created\n\tt.age = int(now.Sub(t.created).Hours())\n\tif t.age \u003e t.maxAge {\n\t\tt.age = t.maxAge\n\t\tt.health = 0\n\t}\n\tif t.health == 0 {\n\t\tt.sleepy = 0\n\t\tt.happiness = 0\n\t\tt.hunger = 0\n\t}\n\n\tt.lastUpdated = now\n}\n\n// Face returns an ASCII art representation of the Tamagotchi's current state\nfunc (t *Tamagotchi) Face() string {\n\tt.update()\n\treturn t.face()\n}\n\nfunc (t *Tamagotchi) face() string {\n\tswitch {\n\tcase t.health == 0:\n\t\treturn \"😵\" // dead face\n\tcase t.health \u003c 30:\n\t\treturn \"😷\" // sick face\n\tcase t.happiness \u003c 30:\n\t\treturn \"😢\" // sad face\n\tcase t.hunger \u003e 70:\n\t\treturn \"😫\" // hungry face\n\tcase t.sleepy \u003e 70:\n\t\treturn \"😴\" // sleepy face\n\tdefault:\n\t\treturn \"😃\" // happy face\n\t}\n}\n\n// Markdown method for Tamagotchi\nfunc (t *Tamagotchi) Markdown() string {\n\tt.update()\n\treturn ufmt.Sprintf(`# %s %s\n\n* age: %d\n* hunger: %d\n* happiness: %d\n* health: %d\n* sleepy: %d`,\n\t\tt.name, t.Face(),\n\t\tt.age, t.hunger, t.happiness, t.health, t.sleepy,\n\t)\n}\n\nfunc bound(n, min, max int) int {\n\tif n \u003c min {\n\t\treturn min\n\t}\n\tif n \u003e max {\n\t\treturn max\n\t}\n\treturn n\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"internal/os_test\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n)\n\nfunc main() {\n\tt := tamagotchi.New(\"Gnome\")\n\n\tprintln(\"\\n-- INITIAL\\n\")\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- FEEDx3, PLAYx2, HEALx4\\n\")\n\tt.Feed()\n\tt.Feed()\n\tt.Feed()\n\tt.Play()\n\tt.Play()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n}\n\n// Output:\n// -- INITIAL\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 70\n// * happiness: 30\n// * health: 30\n// * sleepy: 20\n//\n// -- FEEDx3, PLAYx2, HEALx4\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 40\n// * happiness: 50\n// * health: 70\n// * sleepy: 20\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 60\n// * happiness: 30\n// * health: 50\n// * sleepy: 40\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mTrwGXaB0FHRq8rg7E/phIhuFR2qusSvjIcNALiCj5iZ0UIClK8gyj147s8wXDIZyV31ZNxcEXn4BBQcAbdTAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tamagotchi","path":"gno.land/p/demo/tamagotchi","files":[{"name":"tamagotchi.gno","body":"package tamagotchi\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Tamagotchi structure\ntype Tamagotchi struct {\n\tname string\n\thunger int\n\thappiness int\n\thealth int\n\tage int\n\tmaxAge int\n\tsleepy int\n\tcreated time.Time\n\tlastUpdated time.Time\n}\n\nfunc New(name string) *Tamagotchi {\n\tnow := time.Now()\n\treturn \u0026Tamagotchi{\n\t\tname: name,\n\t\thunger: 50,\n\t\thappiness: 50,\n\t\thealth: 50,\n\t\tmaxAge: 100,\n\t\tlastUpdated: now,\n\t\tcreated: now,\n\t}\n}\n\nfunc (t *Tamagotchi) Name() string {\n\tt.update()\n\treturn t.name\n}\n\nfunc (t *Tamagotchi) Hunger() int {\n\tt.update()\n\treturn t.hunger\n}\n\nfunc (t *Tamagotchi) Happiness() int {\n\tt.update()\n\treturn t.happiness\n}\n\nfunc (t *Tamagotchi) Health() int {\n\tt.update()\n\treturn t.health\n}\n\nfunc (t *Tamagotchi) Age() int {\n\tt.update()\n\treturn t.age\n}\n\nfunc (t *Tamagotchi) Sleepy() int {\n\tt.update()\n\treturn t.sleepy\n}\n\n// Feed method for Tamagotchi\nfunc (t *Tamagotchi) Feed() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.hunger = bound(t.hunger-10, 0, 100)\n}\n\n// Play method for Tamagotchi\nfunc (t *Tamagotchi) Play() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.happiness = bound(t.happiness+10, 0, 100)\n}\n\n// Heal method for Tamagotchi\nfunc (t *Tamagotchi) Heal() {\n\tt.update()\n\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.health = bound(t.health+10, 0, 100)\n}\n\nfunc (t Tamagotchi) dead() bool { return t.health == 0 }\n\n// Update applies changes based on the duration since the last update\nfunc (t *Tamagotchi) update() {\n\tif t.dead() {\n\t\treturn\n\t}\n\n\tnow := time.Now()\n\tif t.lastUpdated == now {\n\t\treturn\n\t}\n\n\tduration := now.Sub(t.lastUpdated)\n\telapsedMins := int(duration.Minutes())\n\n\tt.hunger = bound(t.hunger+elapsedMins, 0, 100)\n\tt.happiness = bound(t.happiness-elapsedMins, 0, 100)\n\tt.health = bound(t.health-elapsedMins, 0, 100)\n\tt.sleepy = bound(t.sleepy+elapsedMins, 0, 100)\n\n\t// age is hours since created\n\tt.age = int(now.Sub(t.created).Hours())\n\tif t.age \u003e t.maxAge {\n\t\tt.age = t.maxAge\n\t\tt.health = 0\n\t}\n\tif t.health == 0 {\n\t\tt.sleepy = 0\n\t\tt.happiness = 0\n\t\tt.hunger = 0\n\t}\n\n\tt.lastUpdated = now\n}\n\n// Face returns an ASCII art representation of the Tamagotchi's current state\nfunc (t *Tamagotchi) Face() string {\n\tt.update()\n\treturn t.face()\n}\n\nfunc (t *Tamagotchi) face() string {\n\tswitch {\n\tcase t.health == 0:\n\t\treturn \"😵\" // dead face\n\tcase t.health \u003c 30:\n\t\treturn \"😷\" // sick face\n\tcase t.happiness \u003c 30:\n\t\treturn \"😢\" // sad face\n\tcase t.hunger \u003e 70:\n\t\treturn \"😫\" // hungry face\n\tcase t.sleepy \u003e 70:\n\t\treturn \"😴\" // sleepy face\n\tdefault:\n\t\treturn \"😃\" // happy face\n\t}\n}\n\n// Markdown method for Tamagotchi\nfunc (t *Tamagotchi) Markdown() string {\n\tt.update()\n\treturn ufmt.Sprintf(`# %s %s\n\n* age: %d\n* hunger: %d\n* happiness: %d\n* health: %d\n* sleepy: %d`,\n\t\tt.name, t.Face(),\n\t\tt.age, t.hunger, t.happiness, t.health, t.sleepy,\n\t)\n}\n\nfunc bound(n, min, max int) int {\n\tif n \u003c min {\n\t\treturn min\n\t}\n\tif n \u003e max {\n\t\treturn max\n\t}\n\treturn n\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"internal/os_test\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n)\n\nfunc main() {\n\tt := tamagotchi.New(\"Gnome\")\n\n\tprintln(\"\\n-- INITIAL\\n\")\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- FEEDx3, PLAYx2, HEALx4\\n\")\n\tt.Feed()\n\tt.Feed()\n\tt.Feed()\n\tt.Play()\n\tt.Play()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n}\n\n// Output:\n//\n// -- INITIAL\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 70\n// * happiness: 30\n// * health: 30\n// * sleepy: 20\n//\n// -- FEEDx3, PLAYx2, HEALx4\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 40\n// * happiness: 50\n// * health: 70\n// * sleepy: 20\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 60\n// * happiness: 30\n// * health: 50\n// * sleepy: 40\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EzCf5lULkSFK0hTEzvsWIW2lMxTaToiR293n0OqWLpLUobjcxDPLEwO0Qws5cPqaZYBPS4TxEoiIQhpe28yYCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tamagotchi","path":"gno.land/p/demo/tamagotchi","files":[{"name":"tamagotchi.gno","body":"package tamagotchi\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Tamagotchi structure\ntype Tamagotchi struct {\n\tname string\n\thunger int\n\thappiness int\n\thealth int\n\tage int\n\tmaxAge int\n\tsleepy int\n\tcreated time.Time\n\tlastUpdated time.Time\n}\n\nfunc New(name string) *Tamagotchi {\n\tnow := time.Now()\n\treturn \u0026Tamagotchi{\n\t\tname: name,\n\t\thunger: 50,\n\t\thappiness: 50,\n\t\thealth: 50,\n\t\tmaxAge: 100,\n\t\tlastUpdated: now,\n\t\tcreated: now,\n\t}\n}\n\nfunc (t *Tamagotchi) Name() string {\n\tt.update()\n\treturn t.name\n}\n\nfunc (t *Tamagotchi) Hunger() int {\n\tt.update()\n\treturn t.hunger\n}\n\nfunc (t *Tamagotchi) Happiness() int {\n\tt.update()\n\treturn t.happiness\n}\n\nfunc (t *Tamagotchi) Health() int {\n\tt.update()\n\treturn t.health\n}\n\nfunc (t *Tamagotchi) Age() int {\n\tt.update()\n\treturn t.age\n}\n\nfunc (t *Tamagotchi) Sleepy() int {\n\tt.update()\n\treturn t.sleepy\n}\n\n// Feed method for Tamagotchi\nfunc (t *Tamagotchi) Feed() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.hunger = bound(t.hunger-10, 0, 100)\n}\n\n// Play method for Tamagotchi\nfunc (t *Tamagotchi) Play() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.happiness = bound(t.happiness+10, 0, 100)\n}\n\n// Heal method for Tamagotchi\nfunc (t *Tamagotchi) Heal() {\n\tt.update()\n\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.health = bound(t.health+10, 0, 100)\n}\n\nfunc (t Tamagotchi) dead() bool { return t.health == 0 }\n\n// Update applies changes based on the duration since the last update\nfunc (t *Tamagotchi) update() {\n\tif t.dead() {\n\t\treturn\n\t}\n\n\tnow := time.Now()\n\tif t.lastUpdated == now {\n\t\treturn\n\t}\n\n\tduration := now.Sub(t.lastUpdated)\n\telapsedMins := int(duration.Minutes())\n\n\tt.hunger = bound(t.hunger+elapsedMins, 0, 100)\n\tt.happiness = bound(t.happiness-elapsedMins, 0, 100)\n\tt.health = bound(t.health-elapsedMins, 0, 100)\n\tt.sleepy = bound(t.sleepy+elapsedMins, 0, 100)\n\n\t// age is hours since created\n\tt.age = int(now.Sub(t.created).Hours())\n\tif t.age \u003e t.maxAge {\n\t\tt.age = t.maxAge\n\t\tt.health = 0\n\t}\n\tif t.health == 0 {\n\t\tt.sleepy = 0\n\t\tt.happiness = 0\n\t\tt.hunger = 0\n\t}\n\n\tt.lastUpdated = now\n}\n\n// Face returns an ASCII art representation of the Tamagotchi's current state\nfunc (t *Tamagotchi) Face() string {\n\tt.update()\n\treturn t.face()\n}\n\nfunc (t *Tamagotchi) face() string {\n\tswitch {\n\tcase t.health == 0:\n\t\treturn \"😵\" // dead face\n\tcase t.health \u003c 30:\n\t\treturn \"😷\" // sick face\n\tcase t.happiness \u003c 30:\n\t\treturn \"😢\" // sad face\n\tcase t.hunger \u003e 70:\n\t\treturn \"😫\" // hungry face\n\tcase t.sleepy \u003e 70:\n\t\treturn \"😴\" // sleepy face\n\tdefault:\n\t\treturn \"😃\" // happy face\n\t}\n}\n\n// Markdown method for Tamagotchi\nfunc (t *Tamagotchi) Markdown() string {\n\tt.update()\n\treturn ufmt.Sprintf(`# %s %s\n\n* age: %d\n* hunger: %d\n* happiness: %d\n* health: %d\n* sleepy: %d`,\n\t\tt.name, t.Face(),\n\t\tt.age, t.hunger, t.happiness, t.health, t.sleepy,\n\t)\n}\n\nfunc bound(n, min, max int) int {\n\tif n \u003c min {\n\t\treturn min\n\t}\n\tif n \u003e max {\n\t\treturn max\n\t}\n\treturn n\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"internal/os_test\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n)\n\nfunc main() {\n\tt := tamagotchi.New(\"Gnome\")\n\n\tprintln(\"\\n-- INITIAL\\n\")\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- FEEDx3, PLAYx2, HEALx4\\n\")\n\tt.Feed()\n\tt.Feed()\n\tt.Feed()\n\tt.Play()\n\tt.Play()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n}\n\n// Output:\n//\n// -- INITIAL\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 70\n// * happiness: 30\n// * health: 30\n// * sleepy: 20\n//\n// -- FEEDx3, PLAYx2, HEALx4\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 40\n// * happiness: 50\n// * health: 70\n// * sleepy: 20\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 60\n// * happiness: 30\n// * health: 50\n// * sleepy: 40\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EzCf5lULkSFK0hTEzvsWIW2lMxTaToiR293n0OqWLpLUobjcxDPLEwO0Qws5cPqaZYBPS4TxEoiIQhpe28yYCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tamagotchi","path":"gno.land/r/demo/tamagotchi","files":[{"name":"realm.gno","body":"package tamagotchi\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar t *tamagotchi.Tamagotchi\n\nfunc init() {\n\tReset(\"gnome#0\")\n}\n\nfunc Reset(optionalName string) string {\n\tname := optionalName\n\tif name == \"\" {\n\t\theight := std.GetHeight()\n\t\tname = ufmt.Sprintf(\"gnome#%d\", height)\n\t}\n\n\tt = tamagotchi.New(name)\n\n\treturn ufmt.Sprintf(\"A new tamagotchi is born. Their name is %s %s.\", t.Name(), t.Face())\n}\n\nfunc Feed() string {\n\tt.Feed()\n\treturn t.Markdown()\n}\n\nfunc Play() string {\n\tt.Play()\n\treturn t.Markdown()\n}\n\nfunc Heal() string {\n\tt.Heal()\n\treturn t.Markdown()\n}\n\nfunc Render(path string) string {\n\ttama := t.Markdown()\n\tlinks := `Actions:\n* [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n* [Play](/r/demo/tamagotchi$help\u0026func=Play)\n* [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n* [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n`\n\n\treturn tama + \"\\n\\n\" + links\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tamagotchi\"\n)\n\nfunc main() {\n\ttamagotchi.Reset(\"tamagnotchi\")\n\tprintln(tamagotchi.Render(\"\"))\n}\n\n// Output:\n// # tamagnotchi 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// Actions:\n// * [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n// * [Play](/r/demo/tamagotchi$help\u0026func=Play)\n// * [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n// * [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fcFEoZ5TUYM+In22gyi2zYeUaW3O1WCvVojjyV2J8PmBPdscsvaBk5BKOeshTXl5fZrv826UrmgqcgRC6zxADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tamagotchi","path":"gno.land/r/demo/tamagotchi","files":[{"name":"realm.gno","body":"package tamagotchi\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar t *tamagotchi.Tamagotchi\n\nfunc init() {\n\tReset(\"gnome#0\")\n}\n\nfunc Reset(optionalName string) string {\n\tname := optionalName\n\tif name == \"\" {\n\t\theight := std.GetHeight()\n\t\tname = ufmt.Sprintf(\"gnome#%d\", height)\n\t}\n\n\tt = tamagotchi.New(name)\n\n\treturn ufmt.Sprintf(\"A new tamagotchi is born. Their name is %s %s.\", t.Name(), t.Face())\n}\n\nfunc Feed() string {\n\tt.Feed()\n\treturn t.Markdown()\n}\n\nfunc Play() string {\n\tt.Play()\n\treturn t.Markdown()\n}\n\nfunc Heal() string {\n\tt.Heal()\n\treturn t.Markdown()\n}\n\nfunc Render(path string) string {\n\ttama := t.Markdown()\n\tlinks := `Actions:\n* [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n* [Play](/r/demo/tamagotchi$help\u0026func=Play)\n* [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n* [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n`\n\n\treturn tama + \"\\n\\n\" + links\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tamagotchi\"\n)\n\nfunc main() {\n\ttamagotchi.Reset(\"tamagnotchi\")\n\tprintln(tamagotchi.Render(\"\"))\n}\n\n// Output:\n// # tamagnotchi 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// Actions:\n// * [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n// * [Play](/r/demo/tamagotchi$help\u0026func=Play)\n// * [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n// * [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PvojJ83jT9NBC1i8+mpsOCeTZQgyCY7AXtHc3ODUpmiWMV0Zp/bxkP+auCZ6cxt2IAMhXKpInJpoAqcBX5iyBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tamagotchi","path":"gno.land/r/demo/tamagotchi","files":[{"name":"realm.gno","body":"package tamagotchi\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar t *tamagotchi.Tamagotchi\n\nfunc init() {\n\tReset(\"gnome#0\")\n}\n\nfunc Reset(optionalName string) string {\n\tname := optionalName\n\tif name == \"\" {\n\t\theight := std.GetHeight()\n\t\tname = ufmt.Sprintf(\"gnome#%d\", height)\n\t}\n\n\tt = tamagotchi.New(name)\n\n\treturn ufmt.Sprintf(\"A new tamagotchi is born. Their name is %s %s.\", t.Name(), t.Face())\n}\n\nfunc Feed() string {\n\tt.Feed()\n\treturn t.Markdown()\n}\n\nfunc Play() string {\n\tt.Play()\n\treturn t.Markdown()\n}\n\nfunc Heal() string {\n\tt.Heal()\n\treturn t.Markdown()\n}\n\nfunc Render(path string) string {\n\ttama := t.Markdown()\n\tlinks := `Actions:\n* [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n* [Play](/r/demo/tamagotchi$help\u0026func=Play)\n* [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n* [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n`\n\n\treturn tama + \"\\n\\n\" + links\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tamagotchi\"\n)\n\nfunc main() {\n\ttamagotchi.Reset(\"tamagnotchi\")\n\tprintln(tamagotchi.Render(\"\"))\n}\n\n// Output:\n// # tamagnotchi 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// Actions:\n// * [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n// * [Play](/r/demo/tamagotchi$help\u0026func=Play)\n// * [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n// * [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PvojJ83jT9NBC1i8+mpsOCeTZQgyCY7AXtHc3ODUpmiWMV0Zp/bxkP+auCZ6cxt2IAMhXKpInJpoAqcBX5iyBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_event","path":"gno.land/r/demo/test_event","files":[{"name":"package.gno","body":"package test_event\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wDorX6hzdmQccgDl6MdDbHGQVn4BGQTlJ5bKxwv4Ddvb69FNHgNLc/o1vqvcf9iDN3oU5oczop2MVvcY7HJ6CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_event","path":"gno.land/r/demo/test_event","files":[{"name":"package.gno","body":"package test_event\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wDorX6hzdmQccgDl6MdDbHGQVn4BGQTlJ5bKxwv4Ddvb69FNHgNLc/o1vqvcf9iDN3oU5oczop2MVvcY7HJ6CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_event2","path":"gno.land/r/demo/test_event2","files":[{"name":"package.gno","body":"package test_event2\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w4/j4rz+KLSxoHx/0tIvBVRPyr5FLgm17QdTFimfmcobMiinXALMhk3lv8jC6PqVIAwP0qIHAlLh4kkQpqx3AA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_event2","path":"gno.land/r/demo/test_event2","files":[{"name":"package.gno","body":"package test_event\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LKHB9Pc6rBHglH3UVHGvyJQTmBi1rfeKSUcIT4ZthfrAYvYkUXFIsllxZIfARE8LdJql5KSURNd0omoTsu9fDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_events","path":"gno.land/r/demo/test_events","files":[{"name":"package.gno","body":"package test_event\n\nimport \"std\"\n\nfunc Event01(key, value string) string {\n\tstd.Emit(\"Event01\", key, value)\n\n\treturn \"Event01-\" + key + \"-\" + \"value\"\n}\n\nfunc Event02(key, value string) string {\n\tstd.Emit(\"Event02\", key, value)\n\n\treturn \"Event02-\" + key + \"-\" + \"value\"\n}\n\nfunc Event03(key, value string) string {\n\tstd.Emit(\"Event03\", key, value)\n\n\treturn \"Event03-\" + key + \"-\" + \"value\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JUJ62jg4S3lPTBt907PQYZ85ITmH8EpQb1RkE+5iJRGufTvYGLcjQ0IknWXiaKtouwiMu8j/HoojXujWNgT6Dw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"gnft.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"T NFT\", \"TNFT\")\n)\n\nfunc init() {\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc GetTokenURI(tid grc721.TokenID) string {\n\turi, err := gnft.TokenURI(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn string(uri)\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\ttokenRaw := getImageBase64(tid)\n\tgnft.SetTokenURI(tid, grc721.TokenURI(tokenRaw))\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"},{"name":"image.gno","body":"package gnft\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tstringId := string(tid)\n\tuintId, err := strconv.Atoi(stringId)\n\tif err != nil {\n\t\t// panic(err.Error())\n\t\treturn \"ERROR_TOKEN_URI\"\n\t}\n\n\tif uintId%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uintId%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uintId%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uintId%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yjVf4VCzOekr4t/+1EWDMnYOngucJ7VOiwuhRzCpJn7sOEnlqAnQStxkGbfXGEtGGx08lgj4kjCQnzOdjQkHCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"image.gno","body":"package gnft\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IAMGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tuTid := uint64(tid)\n\tif uTid % 5 == 0 {\n\t\treutnr NFT_IMAGE_05\n\t} else if uTid % 4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uTid % 3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uTid % 2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}"},{"name":"package.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"NFT\", \"GFT\")\n\n\tnftImage = make(map[grc721.TokenID]string)\n)\n\nfunc init() {\n\t// NEW_GSA\n\tgsa := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tmintNNFT(gsa, 1)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := gnft.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tgnft.Mint(owner, tid)\n\t}\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tnftImage[tid] = getImageBase64(tid)\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc RenderImage(tid grc721.TokenID) string {\n\timage, ok := nftImage[tid]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn image\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SIN1AUGNzyAgnLDVoaLrEI7O+WvBHRMR+watU9/qK+PkgnnJVe+ARCNtLL9vQAUbdk1bYTWq7bfmuo/y4PueDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"image.gno","body":"package gnft\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IAMGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tuTid := uint64(tid)\n\tif uTid%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uTid%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uTid%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uTid%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"},{"name":"package.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"NFT\", \"GFT\")\n\n\tnftImage = make(map[grc721.TokenID]string)\n)\n\nfunc init() {\n\t// NEW_GSA\n\tgsa := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tmintNNFT(gsa, 1)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := gnft.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tgnft.Mint(owner, tid)\n\t}\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tnftImage[tid] = getImageBase64(tid)\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc RenderImage(tid grc721.TokenID) string {\n\timage, ok := nftImage[tid]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn image\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Oa73WuJPGUYvUfZs8jE6LsIeh5UwXw7EfVBMxmZRN7He4yTnonAsmEYhITnjC9BgbANmhGcoRpHlrlFvBH96Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"image.gno","body":"package gnft\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IAMGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tuTid := uint64(tid)\n\tif uTid%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uTid%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uTid%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uTid%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"},{"name":"package.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"NFT\", \"GFT\")\n\n\tnftImage = make(map[grc721.TokenID]string)\n)\n\nfunc init() {\n\t// NEW_GSA\n\tgsa := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tmintNNFT(gsa, 1)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := gnft.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tgnft.Mint(owner, tid)\n\t}\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tnftImage[tid] = getImageBase64(tid)\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc RenderImage(tid grc721.TokenID) string {\n\timage, ok := nftImage[tid]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn image\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Oa73WuJPGUYvUfZs8jE6LsIeh5UwXw7EfVBMxmZRN7He4yTnonAsmEYhITnjC9BgbANmhGcoRpHlrlFvBH96Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"image.gno","body":"package gnft\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tuTid := uint64(tid)\n\tif uTid%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uTid%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uTid%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uTid%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"},{"name":"package.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"NFT\", \"GFT\")\n\n\tnftImage = make(map[grc721.TokenID]string)\n)\n\nfunc init() {\n\t// NEW_GSA\n\tgsa := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tmintNNFT(gsa, 1)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := gnft.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tgnft.Mint(owner, tid)\n\t}\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tnftImage[tid] = getImageBase64(tid)\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc RenderImage(tid grc721.TokenID) string {\n\timage, ok := nftImage[tid]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn image\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cMMhvUi+NJRzINW7MZzrknHAHFFrLktJW8EwhKeqi7JN0Tchi25DUrpJXWxwGRqsgfTsMNv+kr5474/3CzqmDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"image.gno","body":"package gnft\n\nimport (\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\nconst (\n\tNFT_IMAGE_01 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4OTYiIHgxPSIxMi45Mjk4IiB5MT0iMTMuOTI5OCIgeDI9IjEyMS4wNyIgeTI9IjEyMi4wNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMjUwREUxIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhFMzBCMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_02 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5NDYiIHgxPSIxMC45NjM2IiB5MT0iMTEuOTYzNiIgeDI9IjEyMy4wMzYiIHkyPSIxMjQuMDM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNEOEFENTQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDIyQjAwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_03 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njk5NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY5OTYiIHgxPSI0LjEwMjA0IiB5MT0iNS4xMDIwNCIgeDI9IjEyOS44OTgiIHkyPSIxMzAuODk4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNBQjQ0MzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjREE5OUVEIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==`\n\tNFT_IMAGE_04 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81NzA0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTcwNDYiIHgxPSI1LjM2IiB5MT0iNi4zNiIgeDI9IjEyOC42NCIgeTI9IjEyOS42NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUIwMjJFIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdEMkE3RCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=`\n\tNFT_IMAGE_05 = `PHN2ZyB3aWR0aD0iMTM1IiBoZWlnaHQ9IjEzNSIgdmlld0JveD0iMCAwIDEzNSAxMzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjY3IiBjeT0iNjgiIHI9IjQ2IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNzY5OF81Njg0NikiLz4KPHBhdGggZD0iTTU4Ljc3MzQgNTMuNjgyOEw2Ny40OTQxIDQ4TDg1LjAwMDIgNTkuMzE3OEw3Ni4yOTI3IDY0Ljk5NTdMNTguNzczNCA1My42ODI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU4Ljk1NDEgNjcuNzE3N0w2Ny42NzQ4IDYyLjAzNDlMODUuMDAwMSA3My4xODA0TDc2LjQ1MzYgNzguOTU5Nkw1OC45NTQxIDY3LjcxNzdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPHBhdGggZD0iTTUwLjAyNjkgNzUuODYwNUw1OC43NzM1IDcwLjE3NzdMNzYuMjQwOCA4MS41MTdMNjcuNDk0MiA4Ny4xNDcyTDUwLjAyNjkgNzUuODYwNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNTAuMDAxIDU5LjMxNzRMNTguNzcyNCA1My42NjcyTDU4Ljc3MjQgNzAuMTc5N0w1MC4wMDEgNzUuODczN0w1MC4wMDEgNTkuMzE3NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik03Ni40NTQ1IDc4Ljk1OThMODUuMDAxNyA3My4xODA3TDg1LjAwMTcgNzUuODMwMkw3Ni4yNzM0IDgxLjUwMjNMNzYuNDU0NSA3OC45NTk4WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGQ9Ik01OC43NzM0IDUzLjY4MjhMNjcuNDk0MSA0OEw4NS4wMDAyIDU5LjMxNzhMNzYuMjkyNyA2NC45OTU3TDU4Ljc3MzQgNTMuNjgyOFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC45NTQxIDY3LjcxNzdMNjcuNjc0OCA2Mi4wMzQ5TDg1LjAwMDEgNzMuMTgwNEw3Ni40NTM2IDc4Ljk1OTZMNTguOTU0MSA2Ny43MTc3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC40Ii8+CjxwYXRoIGQ9Ik01MC4wMjY5IDc1Ljg2MDVMNTguNzczNSA3MC4xNzc3TDc2LjI0MDggODEuNTE3TDY3LjQ5NDIgODcuMTQ3Mkw1MC4wMjY5IDc1Ljg2MDVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjYiLz4KPHBhdGggZD0iTTUwLjAwMSA1OS4zMTc0TDU4Ljc3MjQgNTMuNjY3Mkw1OC43NzI0IDcwLjE3OTdMNTAuMDAxIDc1Ljg3MzdMNTAuMDAxIDU5LjMxNzRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzYuNDU0NSA3OC45NTk4TDg1LjAwMTcgNzMuMTgwN0w4NS4wMDE3IDc1LjgzMDJMNzYuMjczNCA4MS41MDIzTDc2LjQ1NDUgNzguOTU5OFoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzc2OThfNTY4NDYiIHgxPSIxMzguMDg5IiB5MT0iMTU0Ljg1MyIgeDI9Ii01Ljc2MDI4IiB5Mj0iMTUzLjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzUzNkNENyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMzNEQkQiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K`\n)\n\nfunc getImageBase64(tid grc721.TokenID) string {\n\tuTid := uint64(tid)\n\tif uTid%5 == 0 {\n\t\treturn NFT_IMAGE_05\n\t} else if uTid%4 == 0 {\n\t\treturn NFT_IMAGE_04\n\t} else if uTid%3 == 0 {\n\t\treturn NFT_IMAGE_03\n\t} else if uTid%2 == 0 {\n\t\treturn NFT_IMAGE_02\n\t} else {\n\t\treturn NFT_IMAGE_01\n\t}\n}\n"},{"name":"package.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"NFT\", \"GFT\")\n\n\tnftImage = make(map[grc721.TokenID]string)\n)\n\nfunc init() {\n\t// NEW_GSA\n\tgsa := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tmintNNFT(gsa, 1)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := gnft.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tgnft.Mint(owner, tid)\n\t}\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tnftImage[tid] = getImageBase64(tid)\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc RenderImage(tid grc721.TokenID) string {\n\timage, ok := nftImage[tid]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn image\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gb6fsu/Ysosfy+gZnXt+xiYrPMKmeeF7PujwggCkQ1qAQGQyLMSJItriLhgK4cnLTdtSSql2KVvGRhZDUggFCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"test_nft","path":"gno.land/r/demo/test_nft","files":[{"name":"package.gno","body":"package gnft\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n\tgnft = grc721.NewBasicNFT(\"NFT\", \"GFT\")\n\n\tnftImage = make(map[grc721.TokenID]string)\n)\n\nfunc init() {\n\t// NEW_GSA\n\tgsa := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tmintNNFT(gsa, 1)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := gnft.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tgnft.Mint(owner, tid)\n\t}\n}\n\n// Getters\nfunc TotalSupply() uint64 {\n\treturn gnft.TokenCount()\n}\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := gnft.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn gnft.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) (std.Address, bool) {\n\taddr, err := gnft.GetApproved(tid)\n\tif err != nil {\n\t\treturn \"\", false\n\t}\n\n\treturn addr, true\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := gnft.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := gnft.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tnftImage[tid] = getImageBase64(tid)\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := gnft.Burn(tid)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc SetAdmin(newAdmin pusers.AddressOrName) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\tadmin = users.Resolve(newAdmin)\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn gnft.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc RenderImage(tid grc721.TokenID) string {\n\timage, ok := nftImage[tid]\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\treturn image\n}\n\n// Util\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n\nfunc Exists(tid grc721.TokenID) bool {\n\t_, err := gnft.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KuY4PhhteGRAv2v9pMs1JT0ktwp7i4c08UfGs7OOp+OdY+OT3fIZY8TnApgJ5rHrtRlfHt/KMlQx3PI6llckDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"testimports","path":"gno.land/p/morgan/testimports","files":[{"name":"a.gno","body":"package testimports\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc UserExists(name string) bool {\n\treturn users.GetUserByName(name) == nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zs0e3tjHNDOUirsyO+bjetf7PviwLIHoaOl8QLmLo4G7YpEGYtXxcwkc4oA+1gpNasYu4vA3DUS8iWi2IqxOCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"testimports","path":"gno.land/r/morgan/testimports","files":[{"name":"a.gno","body":"package testimports\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc UserExists(name string) bool {\n\treturn users.GetUserByName(name) == nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iGaPaC6WXrXllx4YRkQe/esshKSNBALVO/wpEyTDU8Q9Mt2V+G/qvlxSuQLhVmI8hQ2iNtVS4hCm/AxmMzhfAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"testimports","path":"gno.land/r/morgan/testimports","files":[{"name":"a.gno","body":"package testimports\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc UserExists(name string) bool {\n\treturn users.GetUserByName(name) == nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z5XoOSS4zN+rhlUUqXilAU3rfhAqL0Ah41h6nSqcfvOyuM94eRAMugnni8UyzQn4uDikbxqmq070GxWW7nZYBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/p/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\tpsubtests \"gno.land/p/demo/tests/subtests\"\n)\n\nconst World = \"world\"\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\n//----------------------------------------\n// cross realm test vars\n\ntype TestRealmObject2 struct {\n\tField string\n}\n\nfunc (o2 *TestRealmObject2) Modify() {\n\to2.Field = \"modified\"\n}\n\nvar (\n\tsomevalue1 TestRealmObject2\n\tSomeValue2 TestRealmObject2\n\tSomeValue3 *TestRealmObject2\n)\n\nfunc init() {\n\tsomevalue1 = TestRealmObject2{Field: \"init\"}\n\tSomeValue2 = TestRealmObject2{Field: \"init\"}\n\tSomeValue3 = \u0026TestRealmObject2{Field: \"init\"}\n}\n\nfunc ModifyTestRealmObject2a() {\n\tsomevalue1.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2b() {\n\tSomeValue2.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2c() {\n\tSomeValue3.Field = \"modified\"\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetPSubtestsPrevRealm() std.Realm {\n\treturn psubtests.GetPrevRealm()\n}\n\n// Warning: unsafe pattern.\nfunc Exec(fn func()) {\n\tfn()\n}\n"},{"name":"tests_test.gno","body":"package tests_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/tests\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar World = \"WORLD\"\n\nfunc TestGetHelloWorld(t *testing.T) {\n\t// tests.World is 'world'\n\ts := \"hello \" + tests.World + World\n\tconst want = \"hello worldWORLD\"\n\n\tuassert.Equal(t, want, s)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/IUglvjleUpkN6insQlmQfznFgyufwLRi1DamZHE9RZFbG1Hk5BMPB87ZwrSSORzRey0PBGSm0NF0qc9dUN+BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/p/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\tpsubtests \"gno.land/p/demo/tests/subtests\"\n)\n\nconst World = \"world\"\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\n//----------------------------------------\n// cross realm test vars\n\ntype TestRealmObject2 struct {\n\tField string\n}\n\nfunc (o2 *TestRealmObject2) Modify() {\n\to2.Field = \"modified\"\n}\n\nvar (\n\tsomevalue1 TestRealmObject2\n\tSomeValue2 TestRealmObject2\n\tSomeValue3 *TestRealmObject2\n)\n\nfunc init() {\n\tsomevalue1 = TestRealmObject2{Field: \"init\"}\n\tSomeValue2 = TestRealmObject2{Field: \"init\"}\n\tSomeValue3 = \u0026TestRealmObject2{Field: \"init\"}\n}\n\nfunc ModifyTestRealmObject2a() {\n\tsomevalue1.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2b() {\n\tSomeValue2.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2c() {\n\tSomeValue3.Field = \"modified\"\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetPSubtestsPrevRealm() std.Realm {\n\treturn psubtests.GetPrevRealm()\n}\n\n// Warning: unsafe pattern.\nfunc Exec(fn func()) {\n\tfn()\n}\n"},{"name":"tests_test.gno","body":"package tests_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/tests\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar World = \"WORLD\"\n\nfunc TestGetHelloWorld(t *testing.T) {\n\t// tests.World is 'world'\n\ts := \"hello \" + tests.World + World\n\tconst want = \"hello worldWORLD\"\n\n\tuassert.Equal(t, want, s)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/IUglvjleUpkN6insQlmQfznFgyufwLRi1DamZHE9RZFbG1Hk5BMPB87ZwrSSORzRey0PBGSm0NF0qc9dUN+BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/p/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\tpsubtests \"gno.land/p/demo/tests/subtests\"\n\t\"gno.land/r/demo/tests\"\n\trtests \"gno.land/r/demo/tests\"\n)\n\nconst World = \"world\"\n\n// IncCounter demonstrates that it's possible to call a realm function from\n// a package. So a package can potentially write into the store, by calling\n// an other realm.\nfunc IncCounter() {\n\ttests.IncCounter()\n}\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\n//----------------------------------------\n// cross realm test vars\n\ntype TestRealmObject2 struct {\n\tField string\n}\n\nfunc (o2 *TestRealmObject2) Modify() {\n\to2.Field = \"modified\"\n}\n\nvar (\n\tsomevalue1 TestRealmObject2\n\tSomeValue2 TestRealmObject2\n\tSomeValue3 *TestRealmObject2\n)\n\nfunc init() {\n\tsomevalue1 = TestRealmObject2{Field: \"init\"}\n\tSomeValue2 = TestRealmObject2{Field: \"init\"}\n\tSomeValue3 = \u0026TestRealmObject2{Field: \"init\"}\n}\n\nfunc ModifyTestRealmObject2a() {\n\tsomevalue1.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2b() {\n\tSomeValue2.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2c() {\n\tSomeValue3.Field = \"modified\"\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetPSubtestsPrevRealm() std.Realm {\n\treturn psubtests.GetPrevRealm()\n}\n\nfunc GetRTestsGetPrevRealm() std.Realm {\n\treturn rtests.GetPrevRealm()\n}\n\n// Warning: unsafe pattern.\nfunc Exec(fn func()) {\n\tfn()\n}\n"},{"name":"tests_test.gno","body":"package tests_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/tests\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar World = \"WORLD\"\n\nfunc TestGetHelloWorld(t *testing.T) {\n\t// tests.World is 'world'\n\ts := \"hello \" + tests.World + World\n\tconst want = \"hello worldWORLD\"\n\n\tuassert.Equal(t, want, s)\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\tptests \"gno.land/p/demo/tests\"\n\trtests \"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(rtests.Counter())\n\tptests.IncCounter()\n\tprintln(rtests.Counter())\n}\n\n// Output:\n// 0\n// 1\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5d30pDQIXnn3Tai07THfIfSUO2AffAgGKQcaAyKUqIrWbnxemE+egiN1Ypmfe7pb3FDpW313g2zU+du5X9WYBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/r/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"interfaces.gno","body":"package tests\n\nimport (\n\t\"strconv\"\n)\n\ntype Stringer interface {\n\tString() string\n}\n\nvar stringers []Stringer\n\nfunc AddStringer(str Stringer) {\n\t// NOTE: this is ridiculous, a slice that will become too long\n\t// eventually. Don't do this in production programs; use\n\t// gno.land/p/demo/avl or similar structures.\n\tstringers = append(stringers, str)\n}\n\nfunc Render(path string) string {\n\tres := \"\"\n\t// NOTE: like the function above, this function too will eventually\n\t// become too expensive to call.\n\tfor i, stringer := range stringers {\n\t\tres += strconv.Itoa(i) + \": \" + stringer.String() + \"\\n\"\n\t}\n\treturn res\n}\n"},{"name":"nestedpkg_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestNestedPkg(t *testing.T) {\n\t// direct child\n\tcur := \"gno.land/r/demo/tests/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// grand-grand-child\n\tcur = \"gno.land/r/demo/tests/foo/bar/baz\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// direct parent\n\tcur = \"gno.land/r/demo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif !IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// fake parent (prefix)\n\tcur = \"gno.land/r/dem\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n\n\t// different namespace\n\tcur = \"gno.land/r/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n}\n"},{"name":"realm_compositelit.gno","body":"package tests\n\ntype (\n\tWord uint\n\tnat []Word\n)\n\nvar zero = \u0026Int{\n\tneg: true,\n\tabs: []Word{0},\n}\n\n// structLit\ntype Int struct {\n\tneg bool\n\tabs nat\n}\n\nfunc GetZeroType() nat {\n\ta := zero.abs\n\treturn a\n}\n"},{"name":"realm_method38d.gno","body":"package tests\n\nvar abs nat\n\nfunc (n nat) Add() nat {\n\treturn []Word{0}\n}\n\nfunc GetAbs() nat {\n\tabs = []Word{0}\n\n\treturn abs\n}\n\nfunc AbsAdd() nat {\n\trt := GetAbs().Add()\n\n\treturn rt\n}\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/nestedpkg\"\n\trsubtests \"gno.land/r/demo/tests/subtests\"\n)\n\nvar counter int\n\nfunc IncCounter() {\n\tcounter++\n}\n\nfunc Counter() int {\n\treturn counter\n}\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\nvar initOrigCaller = std.GetOrigCaller()\n\nfunc InitOrigCaller() std.Address {\n\treturn initOrigCaller\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n\nfunc CallSubtestsAssertOriginCall() {\n\trsubtests.CallAssertOriginCall()\n}\n\nfunc CallSubtestsIsOriginCall() bool {\n\treturn rsubtests.CallIsOriginCall()\n}\n\n//----------------------------------------\n// Test structure to ensure cross-realm modification is prevented.\n\ntype TestRealmObject struct {\n\tField string\n}\n\nfunc ModifyTestRealmObject(t *TestRealmObject) {\n\tt.Field += \"_modified\"\n}\n\nfunc (t *TestRealmObject) Modify() {\n\tt.Field += \"_modified\"\n}\n\n//----------------------------------------\n// Test helpers to test a particular realm bug.\n\ntype TestNode struct {\n\tName string\n\tChild *TestNode\n}\n\nvar (\n\tgTestNode1 *TestNode\n\tgTestNode2 *TestNode\n\tgTestNode3 *TestNode\n)\n\nfunc InitTestNodes() {\n\tgTestNode1 = \u0026TestNode{Name: \"first\"}\n\tgTestNode2 = \u0026TestNode{Name: \"second\", Child: \u0026TestNode{Name: \"second's child\"}}\n}\n\nfunc ModTestNodes() {\n\ttmp := \u0026TestNode{}\n\ttmp.Child = gTestNode2.Child\n\tgTestNode3 = tmp // set to new-real\n\t// gTestNode1 = tmp.Child // set back to original is-real\n\tgTestNode3 = nil // delete.\n}\n\nfunc PrintTestNodes() {\n\tprintln(gTestNode2.Child.Name)\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetRSubtestsPrevRealm() std.Realm {\n\treturn rsubtests.GetPrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc IsCallerSubPath() bool {\n\treturn nestedpkg.IsCallerSubPath()\n}\n\nfunc IsCallerParentPath() bool {\n\treturn nestedpkg.IsCallerParentPath()\n}\n\nfunc HasCallerSameNamespace() bool {\n\treturn nestedpkg.IsSameNamespace()\n}\n"},{"name":"tests_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestAssertOriginCall(t *testing.T) {\n\t// CallAssertOriginCall(): no panic\n\tCallAssertOriginCall()\n\tif !CallIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=true but got false\")\n\t}\n\n\t// CallAssertOriginCall() from a block: panic\n\texpectedReason := \"invalid non-origin call\"\n\tfunc() {\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tif r == nil || r.(string) != expectedReason {\n\t\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t\t}\n\t\t}()\n\t\t// if called inside a function literal, this is no longer an origin call\n\t\t// because there's one additional frame (the function literal block).\n\t\tif CallIsOriginCall() {\n\t\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t\t}\n\t\tCallAssertOriginCall()\n\t}()\n\n\t// CallSubtestsAssertOriginCall(): panic\n\tdefer func() {\n\t\tr := recover()\n\t\tif r == nil || r.(string) != expectedReason {\n\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t}\n\t}()\n\tif CallSubtestsIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t}\n\tCallSubtestsAssertOriginCall()\n}\n\nfunc TestPrevRealm(t *testing.T) {\n\tvar (\n\t\tuser1Addr = std.DerivePkgAddr(\"user1.gno\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\t// When a single realm in the frames, PrevRealm returns the user\n\tif addr := GetPrevRealm().Addr(); addr != user1Addr {\n\t\tt.Errorf(\"want GetPrevRealm().Addr==%s, got %s\", user1Addr, addr)\n\t}\n\t// When 2 or more realms in the frames, PrevRealm returns the second to last\n\tif addr := GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tt.Errorf(\"want GetRSubtestsPrevRealm().Addr==%s, got %s\", rTestsAddr, addr)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\ttests.CallAssertOriginCall()\n\tprintln(\"tests.CallAssertOriginCall doesn't panic when called directly\")\n\n\t{\n\t\t// if called inside a block, this is no longer an origin call because\n\t\t// there's one additional frame (the block).\n\t\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tprintln(\"tests.AssertOriginCall panics if when called inside a function literal:\", r)\n\t\t}()\n\t\ttests.CallAssertOriginCall()\n\t}\n}\n\n// Output:\n// tests.CallIsOriginCall: true\n// tests.CallAssertOriginCall doesn't panic when called directly\n// tests.CallIsOriginCall: true\n// tests.AssertOriginCall panics if when called inside a function literal: undefined\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(tests.Counter())\n\ttests.IncCounter()\n\tprintln(tests.Counter())\n}\n\n// Output:\n// 0\n// 1\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\n// When a single realm in the frames, PrevRealm returns the user\n// When 2 or more realms in the frames, PrevRealm returns the second to last\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\tprintln(\"tests.GetPrevRealm().Addr(): \", tests.GetPrevRealm().Addr())\n\tprintln(\"tests.GetRSubtestsPrevRealm().Addr(): \", tests.GetRSubtestsPrevRealm().Addr())\n}\n\n// Output:\n// tests.GetPrevRealm().Addr(): g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk\n// tests.GetRSubtestsPrevRealm().Addr(): g1gz4ycmx0s6ln2wdrsh4e00l9fsel2wskqa3snq\n"},{"name":"z3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/test_test\npackage test_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\t// Contrarily to z2_filetest.gno we EXPECT GetPrevRealms != eoa (#1704)\n\tif addr := tests.GetPrevRealm().Addr(); addr != eoa {\n\t\tprintln(\"want tests.GetPrevRealm().Addr ==\", eoa, \"got\", addr)\n\t}\n\t// When 2 or more realms in the frames, it is also different\n\tif addr := tests.GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tprintln(\"want GetRSubtestsPrevRealm().Addr ==\", rTestsAddr, \"got\", addr)\n\t}\n}\n\n// Output:\n// want tests.GetPrevRealm().Addr == g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk got g1xufrdvnfk6zc9r0nqa23ld3tt2r5gkyvw76q63\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ztCbO3/3PVK7fcrLFR/CI4pxorNE1IK+hgDGoiTHhC01CEFzuIpWh5msrLBOT1EdlbkKcNLx6XdAKN9Myu7sCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/r/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"interfaces.gno","body":"package tests\n\nimport (\n\t\"strconv\"\n)\n\ntype Stringer interface {\n\tString() string\n}\n\nvar stringers []Stringer\n\nfunc AddStringer(str Stringer) {\n\t// NOTE: this is ridiculous, a slice that will become too long\n\t// eventually. Don't do this in production programs; use\n\t// gno.land/p/demo/avl or similar structures.\n\tstringers = append(stringers, str)\n}\n\nfunc Render(path string) string {\n\tres := \"\"\n\t// NOTE: like the function above, this function too will eventually\n\t// become too expensive to call.\n\tfor i, stringer := range stringers {\n\t\tres += strconv.Itoa(i) + \": \" + stringer.String() + \"\\n\"\n\t}\n\treturn res\n}\n"},{"name":"nestedpkg_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestNestedPkg(t *testing.T) {\n\t// direct child\n\tcur := \"gno.land/r/demo/tests/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// grand-grand-child\n\tcur = \"gno.land/r/demo/tests/foo/bar/baz\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// direct parent\n\tcur = \"gno.land/r/demo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif !IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// fake parent (prefix)\n\tcur = \"gno.land/r/dem\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n\n\t// different namespace\n\tcur = \"gno.land/r/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n}\n"},{"name":"realm_compositelit.gno","body":"package tests\n\ntype (\n\tWord uint\n\tnat []Word\n)\n\nvar zero = \u0026Int{\n\tneg: true,\n\tabs: []Word{0},\n}\n\n// structLit\ntype Int struct {\n\tneg bool\n\tabs nat\n}\n\nfunc GetZeroType() nat {\n\ta := zero.abs\n\treturn a\n}\n"},{"name":"realm_method38d.gno","body":"package tests\n\nvar abs nat\n\nfunc (n nat) Add() nat {\n\treturn []Word{0}\n}\n\nfunc GetAbs() nat {\n\tabs = []Word{0}\n\n\treturn abs\n}\n\nfunc AbsAdd() nat {\n\trt := GetAbs().Add()\n\n\treturn rt\n}\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/nestedpkg\"\n\trsubtests \"gno.land/r/demo/tests/subtests\"\n)\n\nvar counter int\n\nfunc IncCounter() {\n\tcounter++\n}\n\nfunc Counter() int {\n\treturn counter\n}\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\nvar initOrigCaller = std.GetOrigCaller()\n\nfunc InitOrigCaller() std.Address {\n\treturn initOrigCaller\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n\nfunc CallSubtestsAssertOriginCall() {\n\trsubtests.CallAssertOriginCall()\n}\n\nfunc CallSubtestsIsOriginCall() bool {\n\treturn rsubtests.CallIsOriginCall()\n}\n\n//----------------------------------------\n// Test structure to ensure cross-realm modification is prevented.\n\ntype TestRealmObject struct {\n\tField string\n}\n\nfunc ModifyTestRealmObject(t *TestRealmObject) {\n\tt.Field += \"_modified\"\n}\n\nfunc (t *TestRealmObject) Modify() {\n\tt.Field += \"_modified\"\n}\n\n//----------------------------------------\n// Test helpers to test a particular realm bug.\n\ntype TestNode struct {\n\tName string\n\tChild *TestNode\n}\n\nvar (\n\tgTestNode1 *TestNode\n\tgTestNode2 *TestNode\n\tgTestNode3 *TestNode\n)\n\nfunc InitTestNodes() {\n\tgTestNode1 = \u0026TestNode{Name: \"first\"}\n\tgTestNode2 = \u0026TestNode{Name: \"second\", Child: \u0026TestNode{Name: \"second's child\"}}\n}\n\nfunc ModTestNodes() {\n\ttmp := \u0026TestNode{}\n\ttmp.Child = gTestNode2.Child\n\tgTestNode3 = tmp // set to new-real\n\t// gTestNode1 = tmp.Child // set back to original is-real\n\tgTestNode3 = nil // delete.\n}\n\nfunc PrintTestNodes() {\n\tprintln(gTestNode2.Child.Name)\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetRSubtestsPrevRealm() std.Realm {\n\treturn rsubtests.GetPrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc IsCallerSubPath() bool {\n\treturn nestedpkg.IsCallerSubPath()\n}\n\nfunc IsCallerParentPath() bool {\n\treturn nestedpkg.IsCallerParentPath()\n}\n\nfunc HasCallerSameNamespace() bool {\n\treturn nestedpkg.IsSameNamespace()\n}\n"},{"name":"tests_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestAssertOriginCall(t *testing.T) {\n\t// CallAssertOriginCall(): no panic\n\tCallAssertOriginCall()\n\tif !CallIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=true but got false\")\n\t}\n\n\t// CallAssertOriginCall() from a block: panic\n\texpectedReason := \"invalid non-origin call\"\n\tfunc() {\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tif r == nil || r.(string) != expectedReason {\n\t\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t\t}\n\t\t}()\n\t\t// if called inside a function literal, this is no longer an origin call\n\t\t// because there's one additional frame (the function literal block).\n\t\tif CallIsOriginCall() {\n\t\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t\t}\n\t\tCallAssertOriginCall()\n\t}()\n\n\t// CallSubtestsAssertOriginCall(): panic\n\tdefer func() {\n\t\tr := recover()\n\t\tif r == nil || r.(string) != expectedReason {\n\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t}\n\t}()\n\tif CallSubtestsIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t}\n\tCallSubtestsAssertOriginCall()\n}\n\nfunc TestPrevRealm(t *testing.T) {\n\tvar (\n\t\tuser1Addr = std.DerivePkgAddr(\"user1.gno\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\t// When a single realm in the frames, PrevRealm returns the user\n\tif addr := GetPrevRealm().Addr(); addr != user1Addr {\n\t\tt.Errorf(\"want GetPrevRealm().Addr==%s, got %s\", user1Addr, addr)\n\t}\n\t// When 2 or more realms in the frames, PrevRealm returns the second to last\n\tif addr := GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tt.Errorf(\"want GetRSubtestsPrevRealm().Addr==%s, got %s\", rTestsAddr, addr)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\ttests.CallAssertOriginCall()\n\tprintln(\"tests.CallAssertOriginCall doesn't panic when called directly\")\n\n\t{\n\t\t// if called inside a block, this is no longer an origin call because\n\t\t// there's one additional frame (the block).\n\t\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tprintln(\"tests.AssertOriginCall panics if when called inside a function literal:\", r)\n\t\t}()\n\t\ttests.CallAssertOriginCall()\n\t}\n}\n\n// Output:\n// tests.CallIsOriginCall: true\n// tests.CallAssertOriginCall doesn't panic when called directly\n// tests.CallIsOriginCall: true\n// tests.AssertOriginCall panics if when called inside a function literal: undefined\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(tests.Counter())\n\ttests.IncCounter()\n\tprintln(tests.Counter())\n}\n\n// Output:\n// 0\n// 1\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\n// When a single realm in the frames, PrevRealm returns the user\n// When 2 or more realms in the frames, PrevRealm returns the second to last\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\tprintln(\"tests.GetPrevRealm().Addr(): \", tests.GetPrevRealm().Addr())\n\tprintln(\"tests.GetRSubtestsPrevRealm().Addr(): \", tests.GetRSubtestsPrevRealm().Addr())\n}\n\n// Output:\n// tests.GetPrevRealm().Addr(): g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk\n// tests.GetRSubtestsPrevRealm().Addr(): g1gz4ycmx0s6ln2wdrsh4e00l9fsel2wskqa3snq\n"},{"name":"z3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/test_test\npackage test_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\t// Contrarily to z2_filetest.gno we EXPECT GetPrevRealms != eoa (#1704)\n\tif addr := tests.GetPrevRealm().Addr(); addr != eoa {\n\t\tprintln(\"want tests.GetPrevRealm().Addr ==\", eoa, \"got\", addr)\n\t}\n\t// When 2 or more realms in the frames, it is also different\n\tif addr := tests.GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tprintln(\"want GetRSubtestsPrevRealm().Addr ==\", rTestsAddr, \"got\", addr)\n\t}\n}\n\n// Output:\n// want tests.GetPrevRealm().Addr == g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk got g1xufrdvnfk6zc9r0nqa23ld3tt2r5gkyvw76q63\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ztCbO3/3PVK7fcrLFR/CI4pxorNE1IK+hgDGoiTHhC01CEFzuIpWh5msrLBOT1EdlbkKcNLx6XdAKN9Myu7sCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/r/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"interfaces.gno","body":"package tests\n\nimport (\n\t\"strconv\"\n)\n\ntype Stringer interface {\n\tString() string\n}\n\nvar stringers []Stringer\n\nfunc AddStringer(str Stringer) {\n\t// NOTE: this is ridiculous, a slice that will become too long\n\t// eventually. Don't do this in production programs; use\n\t// gno.land/p/demo/avl or similar structures.\n\tstringers = append(stringers, str)\n}\n\nfunc Render(path string) string {\n\tres := \"\"\n\t// NOTE: like the function above, this function too will eventually\n\t// become too expensive to call.\n\tfor i, stringer := range stringers {\n\t\tres += strconv.Itoa(i) + \": \" + stringer.String() + \"\\n\"\n\t}\n\treturn res\n}\n"},{"name":"nestedpkg_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestNestedPkg(t *testing.T) {\n\t// direct child\n\tcur := \"gno.land/r/demo/tests/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// grand-grand-child\n\tcur = \"gno.land/r/demo/tests/foo/bar/baz\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// direct parent\n\tcur = \"gno.land/r/demo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif !IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// fake parent (prefix)\n\tcur = \"gno.land/r/dem\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n\n\t// different namespace\n\tcur = \"gno.land/r/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n}\n"},{"name":"realm_compositelit.gno","body":"package tests\n\ntype (\n\tWord uint\n\tnat []Word\n)\n\nvar zero = \u0026Int{\n\tneg: true,\n\tabs: []Word{0},\n}\n\n// structLit\ntype Int struct {\n\tneg bool\n\tabs nat\n}\n\nfunc GetZeroType() nat {\n\ta := zero.abs\n\treturn a\n}\n"},{"name":"realm_method38d.gno","body":"package tests\n\nvar abs nat\n\nfunc (n nat) Add() nat {\n\treturn []Word{0}\n}\n\nfunc GetAbs() nat {\n\tabs = []Word{0}\n\n\treturn abs\n}\n\nfunc AbsAdd() nat {\n\trt := GetAbs().Add()\n\n\treturn rt\n}\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/nestedpkg\"\n\trsubtests \"gno.land/r/demo/tests/subtests\"\n)\n\nvar counter int\n\nfunc IncCounter() {\n\tcounter++\n}\n\nfunc Counter() int {\n\treturn counter\n}\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\nvar initOrigCaller = std.GetOrigCaller()\n\nfunc InitOrigCaller() std.Address {\n\treturn initOrigCaller\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n\nfunc CallSubtestsAssertOriginCall() {\n\trsubtests.CallAssertOriginCall()\n}\n\nfunc CallSubtestsIsOriginCall() bool {\n\treturn rsubtests.CallIsOriginCall()\n}\n\n//----------------------------------------\n// Test structure to ensure cross-realm modification is prevented.\n\ntype TestRealmObject struct {\n\tField string\n}\n\nfunc ModifyTestRealmObject(t *TestRealmObject) {\n\tt.Field += \"_modified\"\n}\n\nfunc (t *TestRealmObject) Modify() {\n\tt.Field += \"_modified\"\n}\n\n//----------------------------------------\n// Test helpers to test a particular realm bug.\n\ntype TestNode struct {\n\tName string\n\tChild *TestNode\n}\n\nvar (\n\tgTestNode1 *TestNode\n\tgTestNode2 *TestNode\n\tgTestNode3 *TestNode\n)\n\nfunc InitTestNodes() {\n\tgTestNode1 = \u0026TestNode{Name: \"first\"}\n\tgTestNode2 = \u0026TestNode{Name: \"second\", Child: \u0026TestNode{Name: \"second's child\"}}\n}\n\nfunc ModTestNodes() {\n\ttmp := \u0026TestNode{}\n\ttmp.Child = gTestNode2.Child\n\tgTestNode3 = tmp // set to new-real\n\t// gTestNode1 = tmp.Child // set back to original is-real\n\tgTestNode3 = nil // delete.\n}\n\nfunc PrintTestNodes() {\n\tprintln(gTestNode2.Child.Name)\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetRSubtestsPrevRealm() std.Realm {\n\treturn rsubtests.GetPrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc IsCallerSubPath() bool {\n\treturn nestedpkg.IsCallerSubPath()\n}\n\nfunc IsCallerParentPath() bool {\n\treturn nestedpkg.IsCallerParentPath()\n}\n\nfunc HasCallerSameNamespace() bool {\n\treturn nestedpkg.IsSameNamespace()\n}\n"},{"name":"tests_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestAssertOriginCall(t *testing.T) {\n\t// CallAssertOriginCall(): no panic\n\tCallAssertOriginCall()\n\tif !CallIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=true but got false\")\n\t}\n\n\t// CallAssertOriginCall() from a block: panic\n\texpectedReason := \"invalid non-origin call\"\n\tfunc() {\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tif r == nil || r.(string) != expectedReason {\n\t\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t\t}\n\t\t}()\n\t\t// if called inside a function literal, this is no longer an origin call\n\t\t// because there's one additional frame (the function literal block).\n\t\tif CallIsOriginCall() {\n\t\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t\t}\n\t\tCallAssertOriginCall()\n\t}()\n\n\t// CallSubtestsAssertOriginCall(): panic\n\tdefer func() {\n\t\tr := recover()\n\t\tif r == nil || r.(string) != expectedReason {\n\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t}\n\t}()\n\tif CallSubtestsIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t}\n\tCallSubtestsAssertOriginCall()\n}\n\nfunc TestPrevRealm(t *testing.T) {\n\tvar (\n\t\tuser1Addr = std.DerivePkgAddr(\"user1.gno\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\t// When a single realm in the frames, PrevRealm returns the user\n\tif addr := GetPrevRealm().Addr(); addr != user1Addr {\n\t\tt.Errorf(\"want GetPrevRealm().Addr==%s, got %s\", user1Addr, addr)\n\t}\n\t// When 2 or more realms in the frames, PrevRealm returns the second to last\n\tif addr := GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tt.Errorf(\"want GetRSubtestsPrevRealm().Addr==%s, got %s\", rTestsAddr, addr)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\ttests.CallAssertOriginCall()\n\tprintln(\"tests.CallAssertOriginCall doesn't panic when called directly\")\n\n\t{\n\t\t// if called inside a block, this is no longer an origin call because\n\t\t// there's one additional frame (the block).\n\t\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tprintln(\"tests.AssertOriginCall panics if when called inside a function literal:\", r)\n\t\t}()\n\t\ttests.CallAssertOriginCall()\n\t}\n}\n\n// Output:\n// tests.CallIsOriginCall: true\n// tests.CallAssertOriginCall doesn't panic when called directly\n// tests.CallIsOriginCall: true\n// tests.AssertOriginCall panics if when called inside a function literal: undefined\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(tests.Counter())\n\ttests.IncCounter()\n\tprintln(tests.Counter())\n}\n\n// Output:\n// 0\n// 1\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\n// When a single realm in the frames, PrevRealm returns the user\n// When 2 or more realms in the frames, PrevRealm returns the second to last\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\tprintln(\"tests.GetPrevRealm().Addr(): \", tests.GetPrevRealm().Addr())\n\tprintln(\"tests.GetRSubtestsPrevRealm().Addr(): \", tests.GetRSubtestsPrevRealm().Addr())\n}\n\n// Output:\n// tests.GetPrevRealm().Addr(): g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk\n// tests.GetRSubtestsPrevRealm().Addr(): g1gz4ycmx0s6ln2wdrsh4e00l9fsel2wskqa3snq\n"},{"name":"z3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/test_test\npackage test_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\t// Contrarily to z2_filetest.gno we EXPECT GetPrevRealms != eoa (#1704)\n\tif addr := tests.GetPrevRealm().Addr(); addr != eoa {\n\t\tprintln(\"want tests.GetPrevRealm().Addr ==\", eoa, \"got\", addr)\n\t}\n\t// When 2 or more realms in the frames, it is also different\n\tif addr := tests.GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tprintln(\"want GetRSubtestsPrevRealm().Addr ==\", rTestsAddr, \"got\", addr)\n\t}\n}\n\n// Output:\n// want tests.GetPrevRealm().Addr == g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk got g1xufrdvnfk6zc9r0nqa23ld3tt2r5gkyvw76q63\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ztCbO3/3PVK7fcrLFR/CI4pxorNE1IK+hgDGoiTHhC01CEFzuIpWh5msrLBOT1EdlbkKcNLx6XdAKN9Myu7sCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests","path":"gno.land/r/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"interfaces.gno","body":"package tests\n\nimport (\n\t\"strconv\"\n)\n\ntype Stringer interface {\n\tString() string\n}\n\nvar stringers []Stringer\n\nfunc AddStringer(str Stringer) {\n\t// NOTE: this is ridiculous, a slice that will become too long\n\t// eventually. Don't do this in production programs; use\n\t// gno.land/p/demo/avl or similar structures.\n\tstringers = append(stringers, str)\n}\n\nfunc Render(path string) string {\n\tres := \"\"\n\t// NOTE: like the function above, this function too will eventually\n\t// become too expensive to call.\n\tfor i, stringer := range stringers {\n\t\tres += strconv.Itoa(i) + \": \" + stringer.String() + \"\\n\"\n\t}\n\treturn res\n}\n"},{"name":"nestedpkg_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestNestedPkg(t *testing.T) {\n\t// direct child\n\tcur := \"gno.land/r/demo/tests/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// grand-grand-child\n\tcur = \"gno.land/r/demo/tests/foo/bar/baz\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// direct parent\n\tcur = \"gno.land/r/demo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif !IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// fake parent (prefix)\n\tcur = \"gno.land/r/dem\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n\n\t// different namespace\n\tcur = \"gno.land/r/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n}\n"},{"name":"realm_compositelit.gno","body":"package tests\n\ntype (\n\tWord uint\n\tnat []Word\n)\n\nvar zero = \u0026Int{\n\tneg: true,\n\tabs: []Word{0},\n}\n\n// structLit\ntype Int struct {\n\tneg bool\n\tabs nat\n}\n\nfunc GetZeroType() nat {\n\ta := zero.abs\n\treturn a\n}\n"},{"name":"realm_method38d.gno","body":"package tests\n\nvar abs nat\n\nfunc (n nat) Add() nat {\n\treturn []Word{0}\n}\n\nfunc GetAbs() nat {\n\tabs = []Word{0}\n\n\treturn abs\n}\n\nfunc AbsAdd() nat {\n\trt := GetAbs().Add()\n\n\treturn rt\n}\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/nestedpkg\"\n\trsubtests \"gno.land/r/demo/tests/subtests\"\n)\n\nvar counter int\n\nfunc IncCounter() {\n\tcounter++\n}\n\nfunc Counter() int {\n\treturn counter\n}\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\nvar initOrigCaller = std.GetOrigCaller()\n\nfunc InitOrigCaller() std.Address {\n\treturn initOrigCaller\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n\nfunc CallSubtestsAssertOriginCall() {\n\trsubtests.CallAssertOriginCall()\n}\n\nfunc CallSubtestsIsOriginCall() bool {\n\treturn rsubtests.CallIsOriginCall()\n}\n\n//----------------------------------------\n// Test structure to ensure cross-realm modification is prevented.\n\ntype TestRealmObject struct {\n\tField string\n}\n\nvar TestRealmObjectValue TestRealmObject\n\nfunc ModifyTestRealmObject(t *TestRealmObject) {\n\tt.Field += \"_modified\"\n}\n\nfunc (t *TestRealmObject) Modify() {\n\tt.Field += \"_modified\"\n}\n\n//----------------------------------------\n// Test helpers to test a particular realm bug.\n\ntype TestNode struct {\n\tName string\n\tChild *TestNode\n}\n\nvar (\n\tgTestNode1 *TestNode\n\tgTestNode2 *TestNode\n\tgTestNode3 *TestNode\n)\n\nfunc InitTestNodes() {\n\tgTestNode1 = \u0026TestNode{Name: \"first\"}\n\tgTestNode2 = \u0026TestNode{Name: \"second\", Child: \u0026TestNode{Name: \"second's child\"}}\n}\n\nfunc ModTestNodes() {\n\ttmp := \u0026TestNode{}\n\ttmp.Child = gTestNode2.Child\n\tgTestNode3 = tmp // set to new-real\n\t// gTestNode1 = tmp.Child // set back to original is-real\n\tgTestNode3 = nil // delete.\n}\n\nfunc PrintTestNodes() {\n\tprintln(gTestNode2.Child.Name)\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetRSubtestsPrevRealm() std.Realm {\n\treturn rsubtests.GetPrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc IsCallerSubPath() bool {\n\treturn nestedpkg.IsCallerSubPath()\n}\n\nfunc IsCallerParentPath() bool {\n\treturn nestedpkg.IsCallerParentPath()\n}\n\nfunc HasCallerSameNamespace() bool {\n\treturn nestedpkg.IsSameNamespace()\n}\n"},{"name":"tests_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestAssertOriginCall(t *testing.T) {\n\t// CallAssertOriginCall(): no panic\n\tCallAssertOriginCall()\n\tif !CallIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=true but got false\")\n\t}\n\n\t// CallAssertOriginCall() from a block: panic\n\texpectedReason := \"invalid non-origin call\"\n\tfunc() {\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tif r == nil || r.(string) != expectedReason {\n\t\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t\t}\n\t\t}()\n\t\t// if called inside a function literal, this is no longer an origin call\n\t\t// because there's one additional frame (the function literal block).\n\t\tif CallIsOriginCall() {\n\t\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t\t}\n\t\tCallAssertOriginCall()\n\t}()\n\n\t// CallSubtestsAssertOriginCall(): panic\n\tdefer func() {\n\t\tr := recover()\n\t\tif r == nil || r.(string) != expectedReason {\n\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t}\n\t}()\n\tif CallSubtestsIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t}\n\tCallSubtestsAssertOriginCall()\n}\n\nfunc TestPrevRealm(t *testing.T) {\n\tvar (\n\t\tuser1Addr = std.DerivePkgAddr(\"user1.gno\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\t// When a single realm in the frames, PrevRealm returns the user\n\tif addr := GetPrevRealm().Addr(); addr != user1Addr {\n\t\tt.Errorf(\"want GetPrevRealm().Addr==%s, got %s\", user1Addr, addr)\n\t}\n\t// When 2 or more realms in the frames, PrevRealm returns the second to last\n\tif addr := GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tt.Errorf(\"want GetRSubtestsPrevRealm().Addr==%s, got %s\", rTestsAddr, addr)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\ttests.CallAssertOriginCall()\n\tprintln(\"tests.CallAssertOriginCall doesn't panic when called directly\")\n\n\t{\n\t\t// if called inside a block, this is no longer an origin call because\n\t\t// there's one additional frame (the block).\n\t\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tprintln(\"tests.AssertOriginCall panics if when called inside a function literal:\", r)\n\t\t}()\n\t\ttests.CallAssertOriginCall()\n\t}\n}\n\n// Output:\n// tests.CallIsOriginCall: true\n// tests.CallAssertOriginCall doesn't panic when called directly\n// tests.CallIsOriginCall: true\n// tests.AssertOriginCall panics if when called inside a function literal: undefined\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(tests.Counter())\n\ttests.IncCounter()\n\tprintln(tests.Counter())\n}\n\n// Output:\n// 0\n// 1\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\n// When a single realm in the frames, PrevRealm returns the user\n// When 2 or more realms in the frames, PrevRealm returns the second to last\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\tprintln(\"tests.GetPrevRealm().Addr(): \", tests.GetPrevRealm().Addr())\n\tprintln(\"tests.GetRSubtestsPrevRealm().Addr(): \", tests.GetRSubtestsPrevRealm().Addr())\n}\n\n// Output:\n// tests.GetPrevRealm().Addr(): g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk\n// tests.GetRSubtestsPrevRealm().Addr(): g1gz4ycmx0s6ln2wdrsh4e00l9fsel2wskqa3snq\n"},{"name":"z3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/test_test\npackage test_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\t// Contrarily to z2_filetest.gno we EXPECT GetPrevRealms != eoa (#1704)\n\tif addr := tests.GetPrevRealm().Addr(); addr != eoa {\n\t\tprintln(\"want tests.GetPrevRealm().Addr ==\", eoa, \"got\", addr)\n\t}\n\t// When 2 or more realms in the frames, it is also different\n\tif addr := tests.GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tprintln(\"want GetRSubtestsPrevRealm().Addr ==\", rTestsAddr, \"got\", addr)\n\t}\n}\n\n// Output:\n// want tests.GetPrevRealm().Addr == g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk got g1xufrdvnfk6zc9r0nqa23ld3tt2r5gkyvw76q63\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L8x1LhlXUNr9P6wjPSugVUR6CUDiStEsRnBICFN4OaCtNgRegh7YTdzhi63t0QNEnEMh2Bi9xWOFJmsddMAnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests_foo","path":"gno.land/r/demo/tests_foo","files":[{"name":"foo.gno","body":"package tests_foo\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\n// for testing gno.land/r/demo/tests/interfaces.go\n\ntype FooStringer struct {\n\tFieldA string\n}\n\nfunc (fs *FooStringer) String() string {\n\treturn \"\u0026FooStringer{\" + fs.FieldA + \"}\"\n}\n\nfunc AddFooStringer(fa string) {\n\ttests.AddStringer(\u0026FooStringer{fa})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8hevTfrmBjnfzcnh7w32188+f3OXzs1BKDuGEl54VCj5eNgZKjPXd7xWxV1dPxiOmix03dhAZyaxeDCcAunPDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests_foo","path":"gno.land/r/demo/tests_foo","files":[{"name":"foo.gno","body":"package tests_foo\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\n// for testing gno.land/r/demo/tests/interfaces.go\n\ntype FooStringer struct {\n\tFieldA string\n}\n\nfunc (fs *FooStringer) String() string {\n\treturn \"\u0026FooStringer{\" + fs.FieldA + \"}\"\n}\n\nfunc AddFooStringer(fa string) {\n\ttests.AddStringer(\u0026FooStringer{fa})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8hevTfrmBjnfzcnh7w32188+f3OXzs1BKDuGEl54VCj5eNgZKjPXd7xWxV1dPxiOmix03dhAZyaxeDCcAunPDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"tests_foo","path":"gno.land/r/demo/tests_foo","files":[{"name":"foo.gno","body":"package tests_foo\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\n// for testing gno.land/r/demo/tests/interfaces.go\n\ntype FooStringer struct {\n\tFieldA string\n}\n\nfunc (fs *FooStringer) String() string {\n\treturn \"\u0026FooStringer{\" + fs.FieldA + \"}\"\n}\n\nfunc AddFooStringer(fa string) {\n\ttests.AddStringer(\u0026FooStringer{fa})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8hevTfrmBjnfzcnh7w32188+f3OXzs1BKDuGEl54VCj5eNgZKjPXd7xWxV1dPxiOmix03dhAZyaxeDCcAunPDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"testutils","path":"gno.land/p/demo/testutils","files":[{"name":"access.gno","body":"package testutils\n\n// for testing access. see tests/files/access*.go\n\n// NOTE: non-package variables cannot be overridden, except during init().\nvar (\n\tTestVar1 int\n\ttestVar2 int\n)\n\nfunc init() {\n\tTestVar1 = 123\n\ttestVar2 = 456\n}\n\ntype TestAccessStruct struct {\n\tPublicField string\n\tprivateField string\n}\n\nfunc (tas TestAccessStruct) PublicMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc (tas TestAccessStruct) privateMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc NewTestAccessStruct(pub, priv string) TestAccessStruct {\n\treturn TestAccessStruct{\n\t\tPublicField: pub,\n\t\tprivateField: priv,\n\t}\n}\n\n// see access6.g0 etc.\ntype PrivateInterface interface {\n\tprivateMethod() string\n}\n\nfunc PrintPrivateInterface(pi PrivateInterface) {\n\tprintln(\"testutils.PrintPrivateInterface\", pi.privateMethod())\n}\n"},{"name":"crypto.gno","body":"package testutils\n\nimport \"std\"\n\nfunc TestAddress(name string) std.Address {\n\tif len(name) \u003e std.RawAddressSize {\n\t\tpanic(\"address name cannot be greater than std.AddressSize bytes\")\n\t}\n\taddr := std.RawAddress{}\n\t// TODO: use strings.RepeatString or similar.\n\t// NOTE: I miss python's \"\".Join().\n\tblanks := \"____________________\"\n\tcopy(addr[:], []byte(blanks))\n\tcopy(addr[:], []byte(name))\n\treturn std.Address(std.EncodeBech32(\"g\", addr))\n}\n"},{"name":"misc.gno","body":"package testutils\n\n// For testing std.GetCallerAt().\nfunc WrapCall(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sBYT1KaSUW5ryGeP3dhk/qjBoOTE0O/PcDIL//Em5v+7SqJVDodYrc3wQlsHUrRRnH8Bm2YCvQ0oxqmA/biFCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"testutils","path":"gno.land/p/demo/testutils","files":[{"name":"access.gno","body":"package testutils\n\n// for testing access. see tests/files/access*.go\n\n// NOTE: non-package variables cannot be overridden, except during init().\nvar (\n\tTestVar1 int\n\ttestVar2 int\n)\n\nfunc init() {\n\tTestVar1 = 123\n\ttestVar2 = 456\n}\n\ntype TestAccessStruct struct {\n\tPublicField string\n\tprivateField string\n}\n\nfunc (tas TestAccessStruct) PublicMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc (tas TestAccessStruct) privateMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc NewTestAccessStruct(pub, priv string) TestAccessStruct {\n\treturn TestAccessStruct{\n\t\tPublicField: pub,\n\t\tprivateField: priv,\n\t}\n}\n\n// see access6.g0 etc.\ntype PrivateInterface interface {\n\tprivateMethod() string\n}\n\nfunc PrintPrivateInterface(pi PrivateInterface) {\n\tprintln(\"testutils.PrintPrivateInterface\", pi.privateMethod())\n}\n"},{"name":"crypto.gno","body":"package testutils\n\nimport \"std\"\n\nfunc TestAddress(name string) std.Address {\n\tif len(name) \u003e std.RawAddressSize {\n\t\tpanic(\"address name cannot be greater than std.AddressSize bytes\")\n\t}\n\taddr := std.RawAddress{}\n\t// TODO: use strings.RepeatString or similar.\n\t// NOTE: I miss python's \"\".Join().\n\tblanks := \"____________________\"\n\tcopy(addr[:], []byte(blanks))\n\tcopy(addr[:], []byte(name))\n\treturn std.Address(std.EncodeBech32(\"g\", addr))\n}\n"},{"name":"misc.gno","body":"package testutils\n\n// For testing std.GetCallerAt().\nfunc WrapCall(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sBYT1KaSUW5ryGeP3dhk/qjBoOTE0O/PcDIL//Em5v+7SqJVDodYrc3wQlsHUrRRnH8Bm2YCvQ0oxqmA/biFCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"testutils","path":"gno.land/p/demo/testutils","files":[{"name":"access.gno","body":"package testutils\n\n// for testing access. see tests/files/access*.go\n\n// NOTE: non-package variables cannot be overridden, except during init().\nvar (\n\tTestVar1 int\n\ttestVar2 int\n)\n\nfunc init() {\n\tTestVar1 = 123\n\ttestVar2 = 456\n}\n\ntype TestAccessStruct struct {\n\tPublicField string\n\tprivateField string\n}\n\nfunc (tas TestAccessStruct) PublicMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc (tas TestAccessStruct) privateMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc NewTestAccessStruct(pub, priv string) TestAccessStruct {\n\treturn TestAccessStruct{\n\t\tPublicField: pub,\n\t\tprivateField: priv,\n\t}\n}\n\n// see access6.g0 etc.\ntype PrivateInterface interface {\n\tprivateMethod() string\n}\n\nfunc PrintPrivateInterface(pi PrivateInterface) {\n\tprintln(\"testutils.PrintPrivateInterface\", pi.privateMethod())\n}\n"},{"name":"crypto.gno","body":"package testutils\n\nimport \"std\"\n\nfunc TestAddress(name string) std.Address {\n\tif len(name) \u003e std.RawAddressSize {\n\t\tpanic(\"address name cannot be greater than std.AddressSize bytes\")\n\t}\n\taddr := std.RawAddress{}\n\t// TODO: use strings.RepeatString or similar.\n\t// NOTE: I miss python's \"\".Join().\n\tblanks := \"____________________\"\n\tcopy(addr[:], []byte(blanks))\n\tcopy(addr[:], []byte(name))\n\treturn std.Address(std.EncodeBech32(\"g\", addr))\n}\n"},{"name":"misc.gno","body":"package testutils\n\n// For testing std.GetCallerAt().\nfunc WrapCall(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sBYT1KaSUW5ryGeP3dhk/qjBoOTE0O/PcDIL//Em5v+7SqJVDodYrc3wQlsHUrRRnH8Bm2YCvQ0oxqmA/biFCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"todolist","path":"gno.land/p/demo/todolist","files":[{"name":"todolist.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype TodoList struct {\n\tTitle string\n\tTasks *avl.Tree\n\tOwner std.Address\n}\n\ntype Task struct {\n\tTitle string\n\tDone bool\n}\n\nfunc NewTodoList(title string) *TodoList {\n\treturn \u0026TodoList{\n\t\tTitle: title,\n\t\tTasks: avl.NewTree(),\n\t\tOwner: std.GetOrigCaller(),\n\t}\n}\n\nfunc NewTask(title string) *Task {\n\treturn \u0026Task{\n\t\tTitle: title,\n\t\tDone: false,\n\t}\n}\n\nfunc (tl *TodoList) AddTask(id int, task *Task) {\n\ttl.Tasks.Set(strconv.Itoa(id), task)\n}\n\nfunc ToggleTaskStatus(task *Task) {\n\ttask.Done = !task.Done\n}\n\nfunc (tl *TodoList) RemoveTask(taskId string) {\n\ttl.Tasks.Remove(taskId)\n}\n\nfunc (tl *TodoList) GetTasks() []*Task {\n\ttasks := make([]*Task, 0, tl.Tasks.Size())\n\ttl.Tasks.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttasks = append(tasks, value.(*Task))\n\t\treturn false\n\t})\n\treturn tasks\n}\n\nfunc (tl *TodoList) GetTodolistOwner() std.Address {\n\treturn tl.Owner\n}\n\nfunc (tl *TodoList) GetTodolistTitle() string {\n\treturn tl.Title\n}\n"},{"name":"todolist_test.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttodoList := NewTodoList(title)\n\n\tuassert.Equal(t, title, todoList.GetTodolistTitle())\n\tuassert.Equal(t, 0, len(todoList.GetTasks()))\n\tuassert.Equal(t, std.GetOrigCaller().String(), todoList.GetTodolistOwner().String())\n}\n\nfunc TestNewTask(t *testing.T) {\n\ttitle := \"My Task\"\n\ttask := NewTask(title)\n\n\tuassert.Equal(t, title, task.Title)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is done\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\n\ttodoList.AddTask(1, task)\n\n\ttasks := todoList.GetTasks()\n\n\tuassert.Equal(t, 1, len(tasks))\n\tuassert.True(t, tasks[0] == task, \"Task does not match\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\ttask := NewTask(\"My Task\")\n\n\tToggleTaskStatus(task)\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not done\")\n\n\tToggleTaskStatus(task)\n\tuassert.False(t, task.Done, \"Expected task to be done, but it is not done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\ttodoList.AddTask(1, task)\n\n\ttodoList.RemoveTask(\"1\")\n\n\ttasks := todoList.GetTasks()\n\tuassert.Equal(t, 0, len(tasks))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UKzwbvDFrCgwabkI+lN+sVzpeJFps9XcSLkK5h66mFwyM6C47FOOOnIFSVtHvAI/8p4aQrLeS2mA5qPBloVpCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"todolist","path":"gno.land/p/demo/todolist","files":[{"name":"todolist.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype TodoList struct {\n\tTitle string\n\tTasks *avl.Tree\n\tOwner std.Address\n}\n\ntype Task struct {\n\tTitle string\n\tDone bool\n}\n\nfunc NewTodoList(title string) *TodoList {\n\treturn \u0026TodoList{\n\t\tTitle: title,\n\t\tTasks: avl.NewTree(),\n\t\tOwner: std.GetOrigCaller(),\n\t}\n}\n\nfunc NewTask(title string) *Task {\n\treturn \u0026Task{\n\t\tTitle: title,\n\t\tDone: false,\n\t}\n}\n\nfunc (tl *TodoList) AddTask(id int, task *Task) {\n\ttl.Tasks.Set(strconv.Itoa(id), task)\n}\n\nfunc ToggleTaskStatus(task *Task) {\n\ttask.Done = !task.Done\n}\n\nfunc (tl *TodoList) RemoveTask(taskId string) {\n\ttl.Tasks.Remove(taskId)\n}\n\nfunc (tl *TodoList) GetTasks() []*Task {\n\ttasks := make([]*Task, 0, tl.Tasks.Size())\n\ttl.Tasks.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttasks = append(tasks, value.(*Task))\n\t\treturn false\n\t})\n\treturn tasks\n}\n\nfunc (tl *TodoList) GetTodolistOwner() std.Address {\n\treturn tl.Owner\n}\n\nfunc (tl *TodoList) GetTodolistTitle() string {\n\treturn tl.Title\n}\n"},{"name":"todolist_test.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttodoList := NewTodoList(title)\n\n\tuassert.Equal(t, title, todoList.GetTodolistTitle())\n\tuassert.Equal(t, 0, len(todoList.GetTasks()))\n\tuassert.Equal(t, std.GetOrigCaller().String(), todoList.GetTodolistOwner().String())\n}\n\nfunc TestNewTask(t *testing.T) {\n\ttitle := \"My Task\"\n\ttask := NewTask(title)\n\n\tuassert.Equal(t, title, task.Title)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is done\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\n\ttodoList.AddTask(1, task)\n\n\ttasks := todoList.GetTasks()\n\n\tuassert.Equal(t, 1, len(tasks))\n\tuassert.True(t, tasks[0] == task, \"Task does not match\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\ttask := NewTask(\"My Task\")\n\n\tToggleTaskStatus(task)\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not done\")\n\n\tToggleTaskStatus(task)\n\tuassert.False(t, task.Done, \"Expected task to be done, but it is not done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\ttodoList.AddTask(1, task)\n\n\ttodoList.RemoveTask(\"1\")\n\n\ttasks := todoList.GetTasks()\n\tuassert.Equal(t, 0, len(tasks))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UKzwbvDFrCgwabkI+lN+sVzpeJFps9XcSLkK5h66mFwyM6C47FOOOnIFSVtHvAI/8p4aQrLeS2mA5qPBloVpCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"todolist","path":"gno.land/p/demo/todolist","files":[{"name":"todolist.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype TodoList struct {\n\tTitle string\n\tTasks *avl.Tree\n\tOwner std.Address\n}\n\ntype Task struct {\n\tTitle string\n\tDone bool\n}\n\nfunc NewTodoList(title string) *TodoList {\n\treturn \u0026TodoList{\n\t\tTitle: title,\n\t\tTasks: avl.NewTree(),\n\t\tOwner: std.GetOrigCaller(),\n\t}\n}\n\nfunc NewTask(title string) *Task {\n\treturn \u0026Task{\n\t\tTitle: title,\n\t\tDone: false,\n\t}\n}\n\nfunc (tl *TodoList) AddTask(id int, task *Task) {\n\ttl.Tasks.Set(strconv.Itoa(id), task)\n}\n\nfunc ToggleTaskStatus(task *Task) {\n\ttask.Done = !task.Done\n}\n\nfunc (tl *TodoList) RemoveTask(taskId string) {\n\ttl.Tasks.Remove(taskId)\n}\n\nfunc (tl *TodoList) GetTasks() []*Task {\n\ttasks := make([]*Task, 0, tl.Tasks.Size())\n\ttl.Tasks.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttasks = append(tasks, value.(*Task))\n\t\treturn false\n\t})\n\treturn tasks\n}\n\nfunc (tl *TodoList) GetTodolistOwner() std.Address {\n\treturn tl.Owner\n}\n\nfunc (tl *TodoList) GetTodolistTitle() string {\n\treturn tl.Title\n}\n"},{"name":"todolist_test.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttodoList := NewTodoList(title)\n\n\tuassert.Equal(t, title, todoList.GetTodolistTitle())\n\tuassert.Equal(t, 0, len(todoList.GetTasks()))\n\tuassert.Equal(t, std.GetOrigCaller().String(), todoList.GetTodolistOwner().String())\n}\n\nfunc TestNewTask(t *testing.T) {\n\ttitle := \"My Task\"\n\ttask := NewTask(title)\n\n\tuassert.Equal(t, title, task.Title)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is done\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\n\ttodoList.AddTask(1, task)\n\n\ttasks := todoList.GetTasks()\n\n\tuassert.Equal(t, 1, len(tasks))\n\tuassert.True(t, tasks[0] == task, \"Task does not match\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\ttask := NewTask(\"My Task\")\n\n\tToggleTaskStatus(task)\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not done\")\n\n\tToggleTaskStatus(task)\n\tuassert.False(t, task.Done, \"Expected task to be done, but it is not done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\ttodoList.AddTask(1, task)\n\n\ttodoList.RemoveTask(\"1\")\n\n\ttasks := todoList.GetTasks()\n\tuassert.Equal(t, 0, len(tasks))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UKzwbvDFrCgwabkI+lN+sVzpeJFps9XcSLkK5h66mFwyM6C47FOOOnIFSVtHvAI/8p4aQrLeS2mA5qPBloVpCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"todolistrealm","path":"gno.land/r/demo/todolist","files":[{"name":"todolist.gno","body":"package todolistrealm\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// State variables\nvar (\n\ttodolistTree *avl.Tree\n\ttlid seqid.ID\n)\n\n// Constructor\nfunc init() {\n\ttodolistTree = avl.NewTree()\n}\n\nfunc NewTodoList(title string) (int, string) {\n\t// Create new Todolist\n\ttl := todolist.NewTodoList(title)\n\t// Update AVL tree with new state\n\ttlid.Next()\n\ttodolistTree.Set(strconv.Itoa(int(tlid)), tl)\n\treturn int(tlid), \"created successfully\"\n}\n\nfunc AddTask(todolistID int, title string) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// get the number of tasks in the todolist\n\tid := tl.(*todolist.TodoList).Tasks.Size()\n\n\t// create the task\n\ttask := todolist.NewTask(title)\n\n\t// Cast raw data from tree into Todolist struct\n\ttl.(*todolist.TodoList).AddTask(id, task)\n\n\treturn \"task added successfully\"\n}\n\nfunc ToggleTaskStatus(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\ttask, found := tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !found {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttodolist.ToggleTaskStatus(task.(*todolist.Task))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTask(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\t_, ok = tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !ok {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttl.(*todolist.TodoList).RemoveTask(strconv.Itoa(taskID))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTodoList(todolistID int) string {\n\t// Get Todolist from AVL tree\n\t_, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Remove the todolist\n\ttodolistTree.Remove(strconv.Itoa(todolistID))\n\n\treturn \"Todolist removed successfully\"\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn renderHomepage()\n\t}\n\n\treturn \"unknown page\"\n}\n\nfunc renderHomepage() string {\n\t// Define empty buffer\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"# Welcome to ToDolist\\n\\n\")\n\n\t// If no todolists have been created\n\tif todolistTree.Size() == 0 {\n\t\tb.WriteString(\"### No todolists available currently!\")\n\t\treturn b.String()\n\t}\n\n\t// Iterate through AVL tree\n\ttodolistTree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t// cast raw data from tree into Todolist struct\n\t\ttl := value.(*todolist.TodoList)\n\n\t\t// Add Todolist name\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"## Todolist #%s: %s\\n\",\n\t\t\t\tkey, // Todolist ID\n\t\t\t\ttl.GetTodolistTitle(),\n\t\t\t),\n\t\t)\n\n\t\t// Add Todolist owner\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"#### Todolist owner : %s\\n\",\n\t\t\t\ttl.GetTodolistOwner(),\n\t\t\t),\n\t\t)\n\n\t\t// List all todos that are currently Todolisted\n\t\tif todos := tl.GetTasks(); len(todos) \u003e 0 {\n\t\t\tb.WriteString(\n\t\t\t\tufmt.Sprintf(\"Currently Todo tasks: %d\\n\\n\", len(todos)),\n\t\t\t)\n\n\t\t\tfor index, todo := range todos {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"#%d - %s \", index, todo.Title),\n\t\t\t\t)\n\t\t\t\t// displays a checked box if task is marked as done, an empty box if not\n\t\t\t\tif todo.Done {\n\t\t\t\t\tb.WriteString(\n\t\t\t\t\t\t\"☑\\n\\n\",\n\t\t\t\t\t)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tb.WriteString(\n\t\t\t\t\t\"☐\\n\\n\",\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tb.WriteString(\"No tasks in this list currently\\n\")\n\t\t}\n\n\t\tb.WriteString(\"\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"todolist_test.gno","body":"package todolistrealm\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tnode interface{}\n\ttdl *todolist.TodoList\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttlid, _ := NewTodoList(title)\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\n\t// get the todolist node from the tree\n\tnode, _ = todolistTree.Get(strconv.Itoa(tlid))\n\t// convert the node to a TodoList struct\n\ttdl = node.(*todolist.TodoList)\n\n\tuassert.Equal(t, title, tdl.Title, \"title does not match\")\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\tuassert.Equal(t, tdl.Owner.String(), std.GetOrigCaller().String(), \"owner does not match\")\n\tuassert.Equal(t, 0, len(tdl.GetTasks()), \"Expected no tasks in the todo list\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\tAddTask(1, \"Task 1\")\n\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 1, len(tasks), \"total task does not match\")\n\tuassert.Equal(t, \"Task 1\", tasks[0].Title, \"task title does not match\")\n\tuassert.False(t, tasks[0].Done, \"Expected task to be not done\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\tToggleTaskStatus(1, 0)\n\ttask := tdl.GetTasks()[0]\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not marked as done\")\n\n\tToggleTaskStatus(1, 0)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is marked as done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\tRemoveTask(1, 0)\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 0, len(tasks), \"Expected no tasks in the todo list\")\n}\n\nfunc TestRemoveTodoList(t *testing.T) {\n\tRemoveTodoList(1)\n\tuassert.Equal(t, 0, todolistTree.Size(), \"Expected no tasks in the todo list\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3rdec3RsdJvDXS7yjEa+Hpaaw/Qq6TTuOZEdE0/FP+qAYpXuKP6FuPM6wO98JYY8/bCMu7H19fO7KG8sUY/AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"todolistrealm","path":"gno.land/r/demo/todolist","files":[{"name":"todolist.gno","body":"package todolistrealm\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// State variables\nvar (\n\ttodolistTree *avl.Tree\n\ttlid seqid.ID\n)\n\n// Constructor\nfunc init() {\n\ttodolistTree = avl.NewTree()\n}\n\nfunc NewTodoList(title string) (int, string) {\n\t// Create new Todolist\n\ttl := todolist.NewTodoList(title)\n\t// Update AVL tree with new state\n\ttlid.Next()\n\ttodolistTree.Set(strconv.Itoa(int(tlid)), tl)\n\treturn int(tlid), \"created successfully\"\n}\n\nfunc AddTask(todolistID int, title string) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// get the number of tasks in the todolist\n\tid := tl.(*todolist.TodoList).Tasks.Size()\n\n\t// create the task\n\ttask := todolist.NewTask(title)\n\n\t// Cast raw data from tree into Todolist struct\n\ttl.(*todolist.TodoList).AddTask(id, task)\n\n\treturn \"task added successfully\"\n}\n\nfunc ToggleTaskStatus(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\ttask, found := tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !found {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttodolist.ToggleTaskStatus(task.(*todolist.Task))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTask(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\t_, ok = tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !ok {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttl.(*todolist.TodoList).RemoveTask(strconv.Itoa(taskID))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTodoList(todolistID int) string {\n\t// Get Todolist from AVL tree\n\t_, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Remove the todolist\n\ttodolistTree.Remove(strconv.Itoa(todolistID))\n\n\treturn \"Todolist removed successfully\"\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn renderHomepage()\n\t}\n\n\treturn \"unknown page\"\n}\n\nfunc renderHomepage() string {\n\t// Define empty buffer\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"# Welcome to ToDolist\\n\\n\")\n\n\t// If no todolists have been created\n\tif todolistTree.Size() == 0 {\n\t\tb.WriteString(\"### No todolists available currently!\")\n\t\treturn b.String()\n\t}\n\n\t// Iterate through AVL tree\n\ttodolistTree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t// cast raw data from tree into Todolist struct\n\t\ttl := value.(*todolist.TodoList)\n\n\t\t// Add Todolist name\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"## Todolist #%s: %s\\n\",\n\t\t\t\tkey, // Todolist ID\n\t\t\t\ttl.GetTodolistTitle(),\n\t\t\t),\n\t\t)\n\n\t\t// Add Todolist owner\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"#### Todolist owner : %s\\n\",\n\t\t\t\ttl.GetTodolistOwner(),\n\t\t\t),\n\t\t)\n\n\t\t// List all todos that are currently Todolisted\n\t\tif todos := tl.GetTasks(); len(todos) \u003e 0 {\n\t\t\tb.WriteString(\n\t\t\t\tufmt.Sprintf(\"Currently Todo tasks: %d\\n\\n\", len(todos)),\n\t\t\t)\n\n\t\t\tfor index, todo := range todos {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"#%d - %s \", index, todo.Title),\n\t\t\t\t)\n\t\t\t\t// displays a checked box if task is marked as done, an empty box if not\n\t\t\t\tif todo.Done {\n\t\t\t\t\tb.WriteString(\n\t\t\t\t\t\t\"☑\\n\\n\",\n\t\t\t\t\t)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tb.WriteString(\n\t\t\t\t\t\"☐\\n\\n\",\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tb.WriteString(\"No tasks in this list currently\\n\")\n\t\t}\n\n\t\tb.WriteString(\"\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"todolist_test.gno","body":"package todolistrealm\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tnode interface{}\n\ttdl *todolist.TodoList\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttlid, _ := NewTodoList(title)\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\n\t// get the todolist node from the tree\n\tnode, _ = todolistTree.Get(strconv.Itoa(tlid))\n\t// convert the node to a TodoList struct\n\ttdl = node.(*todolist.TodoList)\n\n\tuassert.Equal(t, title, tdl.Title, \"title does not match\")\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\tuassert.Equal(t, tdl.Owner.String(), std.GetOrigCaller().String(), \"owner does not match\")\n\tuassert.Equal(t, 0, len(tdl.GetTasks()), \"Expected no tasks in the todo list\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\tAddTask(1, \"Task 1\")\n\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 1, len(tasks), \"total task does not match\")\n\tuassert.Equal(t, \"Task 1\", tasks[0].Title, \"task title does not match\")\n\tuassert.False(t, tasks[0].Done, \"Expected task to be not done\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\tToggleTaskStatus(1, 0)\n\ttask := tdl.GetTasks()[0]\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not marked as done\")\n\n\tToggleTaskStatus(1, 0)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is marked as done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\tRemoveTask(1, 0)\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 0, len(tasks), \"Expected no tasks in the todo list\")\n}\n\nfunc TestRemoveTodoList(t *testing.T) {\n\tRemoveTodoList(1)\n\tuassert.Equal(t, 0, todolistTree.Size(), \"Expected no tasks in the todo list\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3rdec3RsdJvDXS7yjEa+Hpaaw/Qq6TTuOZEdE0/FP+qAYpXuKP6FuPM6wO98JYY8/bCMu7H19fO7KG8sUY/AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"todolistrealm","path":"gno.land/r/demo/todolist","files":[{"name":"todolist.gno","body":"package todolistrealm\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// State variables\nvar (\n\ttodolistTree *avl.Tree\n\ttlid seqid.ID\n)\n\n// Constructor\nfunc init() {\n\ttodolistTree = avl.NewTree()\n}\n\nfunc NewTodoList(title string) (int, string) {\n\t// Create new Todolist\n\ttl := todolist.NewTodoList(title)\n\t// Update AVL tree with new state\n\ttlid.Next()\n\ttodolistTree.Set(strconv.Itoa(int(tlid)), tl)\n\treturn int(tlid), \"created successfully\"\n}\n\nfunc AddTask(todolistID int, title string) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// get the number of tasks in the todolist\n\tid := tl.(*todolist.TodoList).Tasks.Size()\n\n\t// create the task\n\ttask := todolist.NewTask(title)\n\n\t// Cast raw data from tree into Todolist struct\n\ttl.(*todolist.TodoList).AddTask(id, task)\n\n\treturn \"task added successfully\"\n}\n\nfunc ToggleTaskStatus(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\ttask, found := tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !found {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttodolist.ToggleTaskStatus(task.(*todolist.Task))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTask(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\t_, ok = tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !ok {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttl.(*todolist.TodoList).RemoveTask(strconv.Itoa(taskID))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTodoList(todolistID int) string {\n\t// Get Todolist from AVL tree\n\t_, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Remove the todolist\n\ttodolistTree.Remove(strconv.Itoa(todolistID))\n\n\treturn \"Todolist removed successfully\"\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn renderHomepage()\n\t}\n\n\treturn \"unknown page\"\n}\n\nfunc renderHomepage() string {\n\t// Define empty buffer\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"# Welcome to ToDolist\\n\\n\")\n\n\t// If no todolists have been created\n\tif todolistTree.Size() == 0 {\n\t\tb.WriteString(\"### No todolists available currently!\")\n\t\treturn b.String()\n\t}\n\n\t// Iterate through AVL tree\n\ttodolistTree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t// cast raw data from tree into Todolist struct\n\t\ttl := value.(*todolist.TodoList)\n\n\t\t// Add Todolist name\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"## Todolist #%s: %s\\n\",\n\t\t\t\tkey, // Todolist ID\n\t\t\t\ttl.GetTodolistTitle(),\n\t\t\t),\n\t\t)\n\n\t\t// Add Todolist owner\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"#### Todolist owner : %s\\n\",\n\t\t\t\ttl.GetTodolistOwner(),\n\t\t\t),\n\t\t)\n\n\t\t// List all todos that are currently Todolisted\n\t\tif todos := tl.GetTasks(); len(todos) \u003e 0 {\n\t\t\tb.WriteString(\n\t\t\t\tufmt.Sprintf(\"Currently Todo tasks: %d\\n\\n\", len(todos)),\n\t\t\t)\n\n\t\t\tfor index, todo := range todos {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"#%d - %s \", index, todo.Title),\n\t\t\t\t)\n\t\t\t\t// displays a checked box if task is marked as done, an empty box if not\n\t\t\t\tif todo.Done {\n\t\t\t\t\tb.WriteString(\n\t\t\t\t\t\t\"☑\\n\\n\",\n\t\t\t\t\t)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tb.WriteString(\n\t\t\t\t\t\"☐\\n\\n\",\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tb.WriteString(\"No tasks in this list currently\\n\")\n\t\t}\n\n\t\tb.WriteString(\"\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"todolist_test.gno","body":"package todolistrealm\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tnode interface{}\n\ttdl *todolist.TodoList\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttlid, _ := NewTodoList(title)\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\n\t// get the todolist node from the tree\n\tnode, _ = todolistTree.Get(strconv.Itoa(tlid))\n\t// convert the node to a TodoList struct\n\ttdl = node.(*todolist.TodoList)\n\n\tuassert.Equal(t, title, tdl.Title, \"title does not match\")\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\tuassert.Equal(t, tdl.Owner.String(), std.GetOrigCaller().String(), \"owner does not match\")\n\tuassert.Equal(t, 0, len(tdl.GetTasks()), \"Expected no tasks in the todo list\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\tAddTask(1, \"Task 1\")\n\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 1, len(tasks), \"total task does not match\")\n\tuassert.Equal(t, \"Task 1\", tasks[0].Title, \"task title does not match\")\n\tuassert.False(t, tasks[0].Done, \"Expected task to be not done\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\tToggleTaskStatus(1, 0)\n\ttask := tdl.GetTasks()[0]\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not marked as done\")\n\n\tToggleTaskStatus(1, 0)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is marked as done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\tRemoveTask(1, 0)\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 0, len(tasks), \"Expected no tasks in the todo list\")\n}\n\nfunc TestRemoveTodoList(t *testing.T) {\n\tRemoveTodoList(1)\n\tuassert.Equal(t, 0, todolistTree.Size(), \"Expected no tasks in the todo list\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3rdec3RsdJvDXS7yjEa+Hpaaw/Qq6TTuOZEdE0/FP+qAYpXuKP6FuPM6wO98JYY8/bCMu7H19fO7KG8sUY/AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"txlink","path":"gno.land/p/moul/txlink","files":[{"name":"txlink.gno","body":"// Package txlink provides utilities for creating transaction-related links\n// compatible with Gnoweb, Gnobro, and other clients within the Gno ecosystem.\n//\n// This package is optimized for generating lightweight transaction links with\n// flexible arguments, allowing users to build dynamic links that integrate\n// seamlessly with various Gno clients.\n//\n// The primary function, Call, is designed to produce markdown links for\n// transaction functions in the current \"relative realm\". By specifying a custom\n// Realm, you can generate links that either use the current realm path or a\n// fully qualified path for another realm.\n//\n// This package is a streamlined alternative to helplink, providing similar\n// functionality for transaction links without the full feature set of helplink.\npackage txlink\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Call returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc Call(fn string, args ...string) string {\n\treturn Realm(\"\").Call(fn, args...)\n}\n\n// Realm represents a specific realm for generating tx links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\tcurPath := std.CurrentRealm().PkgPath()\n\t\treturn strings.TrimPrefix(curPath, chainDomain)\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Call returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) Call(fn string, args ...string) string {\n\t// Start with the base query\n\turl := r.prefix() + \"$help\u0026func=\" + fn\n\n\t// Check if args length is even\n\tif len(args)%2 != 0 {\n\t\t// If not even, we can choose to handle the error here.\n\t\t// For example, we can just return the URL without appending\n\t\t// more args.\n\t\treturn url\n\t}\n\n\t// Append key-value pairs to the URL\n\tfor i := 0; i \u003c len(args); i += 2 {\n\t\tkey := args[i]\n\t\tvalue := args[i+1]\n\t\t// XXX: escape keys and args\n\t\turl += \"\u0026\" + key + \"=\" + value\n\t}\n\n\treturn url\n}\n"},{"name":"txlink_test.gno","body":"package txlink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCall(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Call(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HJfr2uVCv9qO0JLyFEzV3rvZdooSKWkHMsKQeqM5rhtgL7qCoLoLWDpIsGtqy55aj/29QcQu1qu0oI0rlAOjDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"txlink","path":"gno.land/p/moul/txlink","files":[{"name":"txlink.gno","body":"// Package txlink provides utilities for creating transaction-related links\n// compatible with Gnoweb, Gnobro, and other clients within the Gno ecosystem.\n//\n// This package is optimized for generating lightweight transaction links with\n// flexible arguments, allowing users to build dynamic links that integrate\n// seamlessly with various Gno clients.\n//\n// The primary function, URL, is designed to produce markdown links for\n// transaction functions in the current \"relative realm\". By specifying a custom\n// Realm, you can generate links that either use the current realm path or a\n// fully qualified path for another realm.\n//\n// This package is a streamlined alternative to helplink, providing similar\n// functionality for transaction links without the full feature set of helplink.\npackage txlink\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// URL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc URL(fn string, args ...string) string {\n\treturn Realm(\"\").URL(fn, args...)\n}\n\n// Realm represents a specific realm for generating tx links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\tcurPath := std.CurrentRealm().PkgPath()\n\t\treturn strings.TrimPrefix(curPath, chainDomain)\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// URL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) URL(fn string, args ...string) string {\n\t// Start with the base query\n\turl := r.prefix() + \"$help\u0026func=\" + fn\n\n\t// Check if args length is even\n\tif len(args)%2 != 0 {\n\t\t// If not even, we can choose to handle the error here.\n\t\t// For example, we can just return the URL without appending\n\t\t// more args.\n\t\treturn url\n\t}\n\n\t// Append key-value pairs to the URL\n\tfor i := 0; i \u003c len(args); i += 2 {\n\t\tkey := args[i]\n\t\tvalue := args[i+1]\n\t\t// XXX: escape keys and args\n\t\turl += \"\u0026\" + key + \"=\" + value\n\t}\n\n\treturn url\n}\n"},{"name":"txlink_test.gno","body":"package txlink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.URL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ej3ok9AqjlVcSrRqdsm2UsNzRIeBvogGz1ig6O8rNpmtr1LzjTp16oeaPZ/12iLprZZQ2E82kkwgmRf7lzOQCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"txlink","path":"gno.land/p/moul/txlink","files":[{"name":"txlink.gno","body":"// Package txlink provides utilities for creating transaction-related links\n// compatible with Gnoweb, Gnobro, and other clients within the Gno ecosystem.\n//\n// This package is optimized for generating lightweight transaction links with\n// flexible arguments, allowing users to build dynamic links that integrate\n// seamlessly with various Gno clients.\n//\n// The primary function, URL, is designed to produce markdown links for\n// transaction functions in the current \"relative realm\". By specifying a custom\n// Realm, you can generate links that either use the current realm path or a\n// fully qualified path for another realm.\n//\n// This package is a streamlined alternative to helplink, providing similar\n// functionality for transaction links without the full feature set of helplink.\npackage txlink\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// URL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc URL(fn string, args ...string) string {\n\treturn Realm(\"\").URL(fn, args...)\n}\n\n// Realm represents a specific realm for generating tx links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\tcurPath := std.CurrentRealm().PkgPath()\n\t\treturn strings.TrimPrefix(curPath, chainDomain)\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// URL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) URL(fn string, args ...string) string {\n\t// Start with the base query\n\turl := r.prefix() + \"$help\u0026func=\" + fn\n\n\t// Check if args length is even\n\tif len(args)%2 != 0 {\n\t\t// If not even, we can choose to handle the error here.\n\t\t// For example, we can just return the URL without appending\n\t\t// more args.\n\t\treturn url\n\t}\n\n\t// Append key-value pairs to the URL\n\tfor i := 0; i \u003c len(args); i += 2 {\n\t\tkey := args[i]\n\t\tvalue := args[i+1]\n\t\t// XXX: escape keys and args\n\t\turl += \"\u0026\" + key + \"=\" + value\n\t}\n\n\treturn url\n}\n"},{"name":"txlink_test.gno","body":"package txlink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.URL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ej3ok9AqjlVcSrRqdsm2UsNzRIeBvogGz1ig6O8rNpmtr1LzjTp16oeaPZ/12iLprZZQ2E82kkwgmRf7lzOQCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"txlink","path":"gno.land/p/moul/txlink","files":[{"name":"txlink.gno","body":"// Package txlink provides utilities for creating transaction-related links\n// compatible with Gnoweb, Gnobro, and other clients within the Gno ecosystem.\n//\n// This package is optimized for generating lightweight transaction links with\n// flexible arguments, allowing users to build dynamic links that integrate\n// seamlessly with various Gno clients.\n//\n// The primary function, URL, is designed to produce markdown links for\n// transaction functions in the current \"relative realm\". By specifying a custom\n// Realm, you can generate links that either use the current realm path or a\n// fully qualified path for another realm.\n//\n// This package is a streamlined alternative to helplink, providing similar\n// functionality for transaction links without the full feature set of helplink.\npackage txlink\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// URL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc URL(fn string, args ...string) string {\n\treturn Realm(\"\").URL(fn, args...)\n}\n\n// Realm represents a specific realm for generating tx links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\tcurPath := std.CurrentRealm().PkgPath()\n\t\treturn strings.TrimPrefix(curPath, chainDomain)\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// URL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) URL(fn string, args ...string) string {\n\t// Start with the base query\n\turl := r.prefix() + \"$help\u0026func=\" + fn\n\n\t// Check if args length is even\n\tif len(args)%2 != 0 {\n\t\t// If not even, we can choose to handle the error here.\n\t\t// For example, we can just return the URL without appending\n\t\t// more args.\n\t\treturn url\n\t}\n\n\t// Append key-value pairs to the URL\n\tfor i := 0; i \u003c len(args); i += 2 {\n\t\tkey := args[i]\n\t\tvalue := args[i+1]\n\t\t// XXX: escape keys and args\n\t\turl += \"\u0026\" + key + \"=\" + value\n\t}\n\n\treturn url\n}\n"},{"name":"txlink_test.gno","body":"package txlink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.URL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ej3ok9AqjlVcSrRqdsm2UsNzRIeBvogGz1ig6O8rNpmtr1LzjTp16oeaPZ/12iLprZZQ2E82kkwgmRf7lzOQCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"types","path":"gno.land/r/demo/types","files":[{"name":"types.gno","body":"// package to test types behavior in various conditions (TXs, imports).\npackage types\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tgInt int = -42\n\tgUint uint = 42\n\tgString string = \"a string\"\n\tgStringSlice []string = []string{\"a\", \"string\", \"slice\"}\n\tgError error = errors.New(\"an error\")\n\tgIntSlice []int = []int{-42, 0, 42}\n\tgUintSlice []uint = []uint{0, 42, 84}\n\tgTree avl.Tree\n\t// gInterface = interface{}{-42, \"a string\", uint(42)}\n)\n\nfunc init() {\n\tgTree.Set(\"a\", \"content of A\")\n\tgTree.Set(\"b\", \"content of B\")\n}\n\nfunc Noop() {}\nfunc RetTimeNow() time.Time { return time.Now() }\nfunc RetString() string { return gString }\nfunc RetStringPointer() *string { return \u0026gString }\nfunc RetUint() uint { return gUint }\nfunc RetInt() int { return gInt }\nfunc RetUintPointer() *uint { return \u0026gUint }\nfunc RetIntPointer() *int { return \u0026gInt }\nfunc RetTree() avl.Tree { return gTree }\nfunc RetIntSlice() []int { return gIntSlice }\nfunc RetUintSlice() []uint { return gUintSlice }\nfunc RetStringSlice() []string { return gStringSlice }\nfunc RetError() error { return gError }\nfunc Panic() { panic(\"PANIC!\") }\n\n// TODO: floats\n// TODO: typed errors\n// TODO: ret interface\n// TODO: recover\n// TODO: take types as input\n\nfunc Render(path string) string {\n\treturn \"package to test data types.\"\n}\n"},{"name":"types_test.gno","body":"package types\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pIamiWCUNsLSfpfvJIEzZATr46a0weWgJFBs/M3TX6J+gYY05GXf9qKs2Z+Qo1Qf6pWw1aHmYEJGbwb9jHh4DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"types","path":"gno.land/r/demo/types","files":[{"name":"types.gno","body":"// package to test types behavior in various conditions (TXs, imports).\npackage types\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tgInt int = -42\n\tgUint uint = 42\n\tgString string = \"a string\"\n\tgStringSlice []string = []string{\"a\", \"string\", \"slice\"}\n\tgError error = errors.New(\"an error\")\n\tgIntSlice []int = []int{-42, 0, 42}\n\tgUintSlice []uint = []uint{0, 42, 84}\n\tgTree avl.Tree\n\t// gInterface = interface{}{-42, \"a string\", uint(42)}\n)\n\nfunc init() {\n\tgTree.Set(\"a\", \"content of A\")\n\tgTree.Set(\"b\", \"content of B\")\n}\n\nfunc Noop() {}\nfunc RetTimeNow() time.Time { return time.Now() }\nfunc RetString() string { return gString }\nfunc RetStringPointer() *string { return \u0026gString }\nfunc RetUint() uint { return gUint }\nfunc RetInt() int { return gInt }\nfunc RetUintPointer() *uint { return \u0026gUint }\nfunc RetIntPointer() *int { return \u0026gInt }\nfunc RetTree() avl.Tree { return gTree }\nfunc RetIntSlice() []int { return gIntSlice }\nfunc RetUintSlice() []uint { return gUintSlice }\nfunc RetStringSlice() []string { return gStringSlice }\nfunc RetError() error { return gError }\nfunc Panic() { panic(\"PANIC!\") }\n\n// TODO: floats\n// TODO: typed errors\n// TODO: ret interface\n// TODO: recover\n// TODO: take types as input\n\nfunc Render(path string) string {\n\treturn \"package to test data types.\"\n}\n"},{"name":"types_test.gno","body":"package types\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pIamiWCUNsLSfpfvJIEzZATr46a0weWgJFBs/M3TX6J+gYY05GXf9qKs2Z+Qo1Qf6pWw1aHmYEJGbwb9jHh4DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"types","path":"gno.land/r/demo/types","files":[{"name":"types.gno","body":"// package to test types behavior in various conditions (TXs, imports).\npackage types\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tgInt int = -42\n\tgUint uint = 42\n\tgString string = \"a string\"\n\tgStringSlice []string = []string{\"a\", \"string\", \"slice\"}\n\tgError error = errors.New(\"an error\")\n\tgIntSlice []int = []int{-42, 0, 42}\n\tgUintSlice []uint = []uint{0, 42, 84}\n\tgTree avl.Tree\n\t// gInterface = interface{}{-42, \"a string\", uint(42)}\n)\n\nfunc init() {\n\tgTree.Set(\"a\", \"content of A\")\n\tgTree.Set(\"b\", \"content of B\")\n}\n\nfunc Noop() {}\nfunc RetTimeNow() time.Time { return time.Now() }\nfunc RetString() string { return gString }\nfunc RetStringPointer() *string { return \u0026gString }\nfunc RetUint() uint { return gUint }\nfunc RetInt() int { return gInt }\nfunc RetUintPointer() *uint { return \u0026gUint }\nfunc RetIntPointer() *int { return \u0026gInt }\nfunc RetTree() avl.Tree { return gTree }\nfunc RetIntSlice() []int { return gIntSlice }\nfunc RetUintSlice() []uint { return gUintSlice }\nfunc RetStringSlice() []string { return gStringSlice }\nfunc RetError() error { return gError }\nfunc Panic() { panic(\"PANIC!\") }\n\n// TODO: floats\n// TODO: typed errors\n// TODO: ret interface\n// TODO: recover\n// TODO: take types as input\n\nfunc Render(path string) string {\n\treturn \"package to test data types.\"\n}\n"},{"name":"types_test.gno","body":"package types\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pIamiWCUNsLSfpfvJIEzZATr46a0weWgJFBs/M3TX6J+gYY05GXf9qKs2Z+Qo1Qf6pWw1aHmYEJGbwb9jHh4DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"uassert","path":"gno.land/p/demo/uassert","files":[{"name":"doc.gno","body":"package uassert // import \"gno.land/p/demo/uassert\"\n"},{"name":"helpers.gno","body":"package uassert\n\nimport \"strings\"\n\nfunc fail(t TestingT, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tcustomMsg := \"\"\n\tif len(customMsgs) \u003e 0 {\n\t\tcustomMsg = strings.Join(customMsgs, \" \")\n\t}\n\tif customMsg != \"\" {\n\t\tfailureMessage += \" - \" + customMsg\n\t}\n\tt.Errorf(failureMessage, args...)\n\treturn false\n}\n\nfunc autofail(t TestingT, success bool, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tif success {\n\t\treturn true\n\t}\n\treturn fail(t, customMsgs, failureMessage, args...)\n}\n\nfunc checkDidPanic(f func()) (didPanic bool, message string) {\n\tdidPanic = true\n\tdefer func() {\n\t\tr := recover()\n\n\t\tif r == nil {\n\t\t\tmessage = \"nil\"\n\t\t\treturn\n\t\t}\n\n\t\terr, ok := r.(error)\n\t\tif ok {\n\t\t\tmessage = err.Error()\n\t\t\treturn\n\t\t}\n\n\t\terrStr, ok := r.(string)\n\t\tif ok {\n\t\t\tmessage = errStr\n\t\t\treturn\n\t\t}\n\n\t\tmessage = \"recover: unsupported type\"\n\t}()\n\tf()\n\tdidPanic = false\n\treturn\n}\n"},{"name":"mock_test.gno","body":"package uassert\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype mockTestingT struct {\n\tfmt string\n\targs []interface{}\n}\n\n// --- interface mock\n\nvar _ TestingT = (*mockTestingT)(nil)\n\nfunc (mockT *mockTestingT) Helper() { /* noop */ }\nfunc (mockT *mockTestingT) Skip(args ...interface{}) { /* not implmented */ }\nfunc (mockT *mockTestingT) Fail() { /* not implmented */ }\nfunc (mockT *mockTestingT) FailNow() { /* not implmented */ }\nfunc (mockT *mockTestingT) Logf(fmt string, args ...interface{}) { /* noop */ }\n\nfunc (mockT *mockTestingT) Fatalf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"fatal: \" + fmt\n\tmockT.args = args\n}\n\nfunc (mockT *mockTestingT) Errorf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"error: \" + fmt\n\tmockT.args = args\n}\n\n// --- helpers\n\nfunc (mockT *mockTestingT) actualString() string {\n\tres := fmt.Sprintf(mockT.fmt, mockT.args...)\n\tmockT.reset()\n\treturn res\n}\n\nfunc (mockT *mockTestingT) reset() {\n\tmockT.fmt = \"\"\n\tmockT.args = nil\n}\n\nfunc (mockT *mockTestingT) equals(t *testing.T, expected string) {\n\tactual := mockT.actualString()\n\n\tif expected != actual {\n\t\tt.Errorf(\"mockT differs:\\n- expected: %s\\n- actual: %s\\n\", expected, actual)\n\t}\n}\n\nfunc (mockT *mockTestingT) empty(t *testing.T) {\n\tif mockT.fmt != \"\" || mockT.args != nil {\n\t\tactual := mockT.actualString()\n\t\tt.Errorf(\"mockT should be empty, got %s\", actual)\n\t}\n}\n"},{"name":"types.gno","body":"package uassert\n\ntype TestingT interface {\n\tHelper()\n\tSkip(args ...interface{})\n\tFatalf(fmt string, args ...interface{})\n\tErrorf(fmt string, args ...interface{})\n\tLogf(fmt string, args ...interface{})\n\tFail()\n\tFailNow()\n}\n"},{"name":"uassert.gno","body":"// uassert is an adapted lighter version of https://github.com/stretchr/testify/assert.\npackage uassert\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/diff\"\n)\n\n// NoError asserts that a function returned no error (i.e. `nil`).\nfunc NoError(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err != nil {\n\t\treturn fail(t, msgs, \"unexpected error: %s\", err.Error())\n\t}\n\treturn true\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\nfunc Error(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err == nil {\n\t\treturn fail(t, msgs, \"an error is expected but got nil\")\n\t}\n\treturn true\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\nfunc ErrorContains(t TestingT, err error, contains string, msgs ...string) bool {\n\tt.Helper()\n\n\tif !Error(t, err, msgs...) {\n\t\treturn false\n\t}\n\n\tactual := err.Error()\n\tif !strings.Contains(actual, contains) {\n\t\treturn fail(t, msgs, \"error %q does not contain %q\", actual, contains)\n\t}\n\n\treturn true\n}\n\n// True asserts that the specified value is true.\nfunc True(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif !value {\n\t\treturn fail(t, msgs, \"should be true\")\n\t}\n\treturn true\n}\n\n// False asserts that the specified value is false.\nfunc False(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif value {\n\t\treturn fail(t, msgs, \"should be false\")\n\t}\n\treturn true\n}\n\n// ErrorIs asserts the given error matches the target error\nfunc ErrorIs(t TestingT, err, target error, msgs ...string) bool {\n\tt.Helper()\n\n\tif err == nil || target == nil {\n\t\treturn err == target\n\t}\n\n\t// XXX: if errors.Is(err, target) return true\n\n\tif err.Error() != target.Error() {\n\t\treturn fail(t, msgs, \"error mismatch, expected %s, got %s\", target.Error(), err.Error())\n\t}\n\n\treturn true\n}\n\n// PanicsWithMessage asserts that the code inside the specified func panics,\n// and that the recovered panic value satisfies the given message\nfunc PanicsWithMessage(t TestingT, msg string, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\tif !didPanic {\n\t\treturn fail(t, msgs, \"func should panic\\n\\tPanic value:\\t%v\", panicValue)\n\t}\n\n\tif panicValue != msg {\n\t\treturn fail(t, msgs, \"func should panic with message:\\t%s\\n\\tPanic value:\\t%s\", msg, panicValue)\n\t}\n\treturn true\n}\n\n// NotPanics asserts that the code inside the specified func does NOT panic.\nfunc NotPanics(t TestingT, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\n\tif didPanic {\n\t\treturn fail(t, msgs, \"func should not panic\\n\\tPanic value:\\t%s\", panicValue)\n\t}\n\treturn true\n}\n\n// Equal asserts that two objects are equal.\nfunc Equal(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected == actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tequal := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t\tif !equal {\n\t\t\t\tdif := diff.MyersDiff(ev, av)\n\t\t\t\treturn fail(t, msgs, \"uassert.Equal: strings are different\\n\\tDiff: %s\", diff.Format(dif))\n\t\t\t}\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.Equal: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tequal = ev.String() == av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.Equal: different types\") // XXX: display the types\n\t}\n\tif !equal {\n\t\treturn fail(t, msgs, \"uassert.Equal: same type but different value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\n// NotEqual asserts that two objects are not equal.\nfunc NotEqual(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected != actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tnotEqual := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.NotEqual: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tnotEqual = ev.String() != av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: different types\") // XXX: display the types\n\t}\n\tif !notEqual {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: same type and same value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\nfunc isNumberEmpty(n interface{}) (isNumber, isEmpty bool) {\n\tswitch n := n.(type) {\n\t// NOTE: the cases are split individually, so that n becomes of the\n\t// asserted type; the type of '0' was correctly inferred and converted\n\t// to the corresponding type, int, int8, etc.\n\tcase int:\n\t\treturn true, n == 0\n\tcase int8:\n\t\treturn true, n == 0\n\tcase int16:\n\t\treturn true, n == 0\n\tcase int32:\n\t\treturn true, n == 0\n\tcase int64:\n\t\treturn true, n == 0\n\tcase uint:\n\t\treturn true, n == 0\n\tcase uint8:\n\t\treturn true, n == 0\n\tcase uint16:\n\t\treturn true, n == 0\n\tcase uint32:\n\t\treturn true, n == 0\n\tcase uint64:\n\t\treturn true, n == 0\n\tcase float32:\n\t\treturn true, n == 0\n\tcase float64:\n\t\treturn true, n == 0\n\t}\n\treturn false, false\n}\nfunc Empty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif !isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val != \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val != zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.Empty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n\nfunc NotEmpty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val == \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val == zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n"},{"name":"uassert_test.gno","body":"package uassert\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n)\n\nvar _ TestingT = (*testing.T)(nil)\n\nfunc TestMock(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tmockT.empty(t)\n\tNoError(mockT, errors.New(\"foo\"))\n\tmockT.equals(t, \"error: unexpected error: foo\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom\", \"message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n}\n\nfunc TestNoError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, NoError(mockT, nil))\n\tmockT.empty(t)\n\tFalse(t, NoError(mockT, errors.New(\"foo bar\")))\n\tmockT.equals(t, \"error: unexpected error: foo bar\")\n}\n\nfunc TestError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, Error(mockT, errors.New(\"foo bar\")))\n\tmockT.empty(t)\n\tFalse(t, Error(mockT, nil))\n\tmockT.equals(t, \"error: an error is expected but got nil\")\n}\n\nfunc TestErrorContains(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\t// nil error\n\tvar err error\n\tFalse(t, ErrorContains(mockT, err, \"\"), \"ErrorContains should return false for nil arg\")\n}\n\nfunc TestTrue(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !True(mockT, true) {\n\t\tt.Error(\"True should return true\")\n\t}\n\tmockT.empty(t)\n\tif True(mockT, false) {\n\t\tt.Error(\"True should return false\")\n\t}\n\tmockT.equals(t, \"error: should be true\")\n}\n\nfunc TestFalse(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !False(mockT, false) {\n\t\tt.Error(\"False should return true\")\n\t}\n\tmockT.empty(t)\n\tif False(mockT, true) {\n\t\tt.Error(\"False should return false\")\n\t}\n\tmockT.equals(t, \"error: should be false\")\n}\n\nfunc TestPanicsWithMessage(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !PanicsWithMessage(mockT, \"panic\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic\\n\\tPanic value:\\tnil\")\n\n\tif PanicsWithMessage(mockT, \"at the disco\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tat the disco\\n\\tPanic value:\\tpanic\")\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\tpanic(\"panic\")\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tPanic!\\n\\tPanic value:\\tpanic\")\n}\n\nfunc TestNotPanics(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tif !NotPanics(mockT, func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"NotPanics should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif NotPanics(mockT, func() {\n\t\tpanic(\"Panic!\")\n\t}) {\n\t\tt.Error(\"NotPanics should return false\")\n\t}\n}\n\nfunc TestEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be equal\n\t\t{\"Hello World\", \"Hello World\", true, \"\"},\n\t\t{123, 123, true, \"\"},\n\t\t{123.5, 123.5, true, \"\"},\n\t\t{nil, nil, true, \"\"},\n\t\t{int32(123), int32(123), true, \"\"},\n\t\t{uint64(123), uint64(123), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be equal\n\t\t{\"Hello World\", 42, false, \"\"},\n\t\t{41, 42, false, \"\"},\n\t\t{10, uint(10), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Equal(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Equal(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be not equal\n\t\t{\"Hello World\", \"Hello\", true, \"\"},\n\t\t{123, 124, true, \"\"},\n\t\t{123.5, 123.6, true, \"\"},\n\t\t{nil, 123, true, \"\"},\n\t\t{int32(123), int32(124), true, \"\"},\n\t\t{uint64(123), uint64(124), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g67890\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be not equal\n\t\t{\"Hello World\", \"Hello World\", false, \"\"},\n\t\t{123, 123, false, \"\"},\n\t\t{123.5, 123.5, false, \"\"},\n\t\t{nil, nil, false, \"\"},\n\t\t{int32(123), int32(123), false, \"\"},\n\t\t{uint64(123), uint64(123), false, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEqual(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEqual(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\ntype myStruct struct {\n\tS string\n\tI int\n}\n\nfunc TestEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", true},\n\t\t{0, true},\n\t\t{int(0), true},\n\t\t{int32(0), true},\n\t\t{int64(0), true},\n\t\t{uint(0), true},\n\t\t// XXX: continue\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", false},\n\t\t{1, false},\n\t\t{int32(1), false},\n\t\t{uint64(1), false},\n\t\t{std.Address(\"g12345\"), false},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Empty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Empty(mockT, c.obj)\n\n\t\t\tif res != c.expectedEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestEqualWithStringDiff(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\texpected string\n\t\tactual string\n\t\tshouldPass bool\n\t\texpectedMsg string\n\t}{\n\t\t{\n\t\t\tname: \"Identical strings\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, world!\",\n\t\t\tshouldPass: true,\n\t\t\texpectedMsg: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - simple\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, World!\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: Hello, [-w][+W]orld!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - complex\",\n\t\t\texpected: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tactual: \"The quick brown cat jumps over the lazy dog\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - prefix\",\n\t\t\texpected: \"prefix_string\",\n\t\t\tactual: \"string\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-prefix_]string\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - suffix\",\n\t\t\texpected: \"string\",\n\t\t\tactual: \"string_suffix\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: string[+_suffix]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty string vs non-empty string\",\n\t\t\texpected: \"\",\n\t\t\tactual: \"non-empty\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [+non-empty]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Non-empty string vs empty string\",\n\t\t\texpected: \"non-empty\",\n\t\t\tactual: \"\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-non-empty]\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tmockT := \u0026mockTestingT{}\n\t\t\tresult := Equal(mockT, tc.expected, tc.actual)\n\n\t\t\tif result != tc.shouldPass {\n\t\t\t\tt.Errorf(\"Expected Equal to return %v, but got %v\", tc.shouldPass, result)\n\t\t\t}\n\n\t\t\tif tc.shouldPass {\n\t\t\t\tmockT.empty(t)\n\t\t\t} else {\n\t\t\t\tmockT.equals(t, tc.expectedMsg)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedNotEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", false},\n\t\t{0, false},\n\t\t{int(0), false},\n\t\t{int32(0), false},\n\t\t{int64(0), false},\n\t\t{uint(0), false},\n\t\t{std.Address(\"\"), false},\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", true},\n\t\t{1, true},\n\t\t{int32(1), true},\n\t\t{uint64(1), true},\n\t\t{std.Address(\"g12345\"), true},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEmpty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEmpty(mockT, c.obj)\n\n\t\t\tif res != c.expectedNotEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedNotEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wW0dae74oEIP16LFeyP1yps/6an1q8XLxLathjnfmwaRhaeZjXGyOzXMsqzroqwhu3InIVO2LHrV1nF6DfP+AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"uassert","path":"gno.land/p/demo/uassert","files":[{"name":"doc.gno","body":"package uassert // import \"gno.land/p/demo/uassert\"\n"},{"name":"helpers.gno","body":"package uassert\n\nimport \"strings\"\n\nfunc fail(t TestingT, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tcustomMsg := \"\"\n\tif len(customMsgs) \u003e 0 {\n\t\tcustomMsg = strings.Join(customMsgs, \" \")\n\t}\n\tif customMsg != \"\" {\n\t\tfailureMessage += \" - \" + customMsg\n\t}\n\tt.Errorf(failureMessage, args...)\n\treturn false\n}\n\nfunc autofail(t TestingT, success bool, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tif success {\n\t\treturn true\n\t}\n\treturn fail(t, customMsgs, failureMessage, args...)\n}\n\nfunc checkDidPanic(f func()) (didPanic bool, message string) {\n\tdidPanic = true\n\tdefer func() {\n\t\tr := recover()\n\n\t\tif r == nil {\n\t\t\tmessage = \"nil\"\n\t\t\treturn\n\t\t}\n\n\t\terr, ok := r.(error)\n\t\tif ok {\n\t\t\tmessage = err.Error()\n\t\t\treturn\n\t\t}\n\n\t\terrStr, ok := r.(string)\n\t\tif ok {\n\t\t\tmessage = errStr\n\t\t\treturn\n\t\t}\n\n\t\tmessage = \"recover: unsupported type\"\n\t}()\n\tf()\n\tdidPanic = false\n\treturn\n}\n"},{"name":"mock_test.gno","body":"package uassert\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype mockTestingT struct {\n\tfmt string\n\targs []interface{}\n}\n\n// --- interface mock\n\nvar _ TestingT = (*mockTestingT)(nil)\n\nfunc (mockT *mockTestingT) Helper() { /* noop */ }\nfunc (mockT *mockTestingT) Skip(args ...interface{}) { /* not implmented */ }\nfunc (mockT *mockTestingT) Fail() { /* not implmented */ }\nfunc (mockT *mockTestingT) FailNow() { /* not implmented */ }\nfunc (mockT *mockTestingT) Logf(fmt string, args ...interface{}) { /* noop */ }\n\nfunc (mockT *mockTestingT) Fatalf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"fatal: \" + fmt\n\tmockT.args = args\n}\n\nfunc (mockT *mockTestingT) Errorf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"error: \" + fmt\n\tmockT.args = args\n}\n\n// --- helpers\n\nfunc (mockT *mockTestingT) actualString() string {\n\tres := fmt.Sprintf(mockT.fmt, mockT.args...)\n\tmockT.reset()\n\treturn res\n}\n\nfunc (mockT *mockTestingT) reset() {\n\tmockT.fmt = \"\"\n\tmockT.args = nil\n}\n\nfunc (mockT *mockTestingT) equals(t *testing.T, expected string) {\n\tactual := mockT.actualString()\n\n\tif expected != actual {\n\t\tt.Errorf(\"mockT differs:\\n- expected: %s\\n- actual: %s\\n\", expected, actual)\n\t}\n}\n\nfunc (mockT *mockTestingT) empty(t *testing.T) {\n\tif mockT.fmt != \"\" || mockT.args != nil {\n\t\tactual := mockT.actualString()\n\t\tt.Errorf(\"mockT should be empty, got %s\", actual)\n\t}\n}\n"},{"name":"types.gno","body":"package uassert\n\ntype TestingT interface {\n\tHelper()\n\tSkip(args ...interface{})\n\tFatalf(fmt string, args ...interface{})\n\tErrorf(fmt string, args ...interface{})\n\tLogf(fmt string, args ...interface{})\n\tFail()\n\tFailNow()\n}\n"},{"name":"uassert.gno","body":"// uassert is an adapted lighter version of https://github.com/stretchr/testify/assert.\npackage uassert\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/diff\"\n)\n\n// NoError asserts that a function returned no error (i.e. `nil`).\nfunc NoError(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err != nil {\n\t\treturn fail(t, msgs, \"unexpected error: %s\", err.Error())\n\t}\n\treturn true\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\nfunc Error(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err == nil {\n\t\treturn fail(t, msgs, \"an error is expected but got nil\")\n\t}\n\treturn true\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\nfunc ErrorContains(t TestingT, err error, contains string, msgs ...string) bool {\n\tt.Helper()\n\n\tif !Error(t, err, msgs...) {\n\t\treturn false\n\t}\n\n\tactual := err.Error()\n\tif !strings.Contains(actual, contains) {\n\t\treturn fail(t, msgs, \"error %q does not contain %q\", actual, contains)\n\t}\n\n\treturn true\n}\n\n// True asserts that the specified value is true.\nfunc True(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif !value {\n\t\treturn fail(t, msgs, \"should be true\")\n\t}\n\treturn true\n}\n\n// False asserts that the specified value is false.\nfunc False(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif value {\n\t\treturn fail(t, msgs, \"should be false\")\n\t}\n\treturn true\n}\n\n// ErrorIs asserts the given error matches the target error\nfunc ErrorIs(t TestingT, err, target error, msgs ...string) bool {\n\tt.Helper()\n\n\tif err == nil || target == nil {\n\t\treturn err == target\n\t}\n\n\t// XXX: if errors.Is(err, target) return true\n\n\tif err.Error() != target.Error() {\n\t\treturn fail(t, msgs, \"error mismatch, expected %s, got %s\", target.Error(), err.Error())\n\t}\n\n\treturn true\n}\n\n// PanicsWithMessage asserts that the code inside the specified func panics,\n// and that the recovered panic value satisfies the given message\nfunc PanicsWithMessage(t TestingT, msg string, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\tif !didPanic {\n\t\treturn fail(t, msgs, \"func should panic\\n\\tPanic value:\\t%v\", panicValue)\n\t}\n\n\tif panicValue != msg {\n\t\treturn fail(t, msgs, \"func should panic with message:\\t%s\\n\\tPanic value:\\t%s\", msg, panicValue)\n\t}\n\treturn true\n}\n\n// NotPanics asserts that the code inside the specified func does NOT panic.\nfunc NotPanics(t TestingT, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\n\tif didPanic {\n\t\treturn fail(t, msgs, \"func should not panic\\n\\tPanic value:\\t%s\", panicValue)\n\t}\n\treturn true\n}\n\n// Equal asserts that two objects are equal.\nfunc Equal(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected == actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tequal := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t\tif !equal {\n\t\t\t\tdif := diff.MyersDiff(ev, av)\n\t\t\t\treturn fail(t, msgs, \"uassert.Equal: strings are different\\n\\tDiff: %s\", diff.Format(dif))\n\t\t\t}\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.Equal: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tequal = ev.String() == av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.Equal: different types\") // XXX: display the types\n\t}\n\tif !equal {\n\t\treturn fail(t, msgs, \"uassert.Equal: same type but different value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\n// NotEqual asserts that two objects are not equal.\nfunc NotEqual(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected != actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tnotEqual := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.NotEqual: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tnotEqual = ev.String() != av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: different types\") // XXX: display the types\n\t}\n\tif !notEqual {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: same type and same value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\nfunc isNumberEmpty(n interface{}) (isNumber, isEmpty bool) {\n\tswitch n := n.(type) {\n\t// NOTE: the cases are split individually, so that n becomes of the\n\t// asserted type; the type of '0' was correctly inferred and converted\n\t// to the corresponding type, int, int8, etc.\n\tcase int:\n\t\treturn true, n == 0\n\tcase int8:\n\t\treturn true, n == 0\n\tcase int16:\n\t\treturn true, n == 0\n\tcase int32:\n\t\treturn true, n == 0\n\tcase int64:\n\t\treturn true, n == 0\n\tcase uint:\n\t\treturn true, n == 0\n\tcase uint8:\n\t\treturn true, n == 0\n\tcase uint16:\n\t\treturn true, n == 0\n\tcase uint32:\n\t\treturn true, n == 0\n\tcase uint64:\n\t\treturn true, n == 0\n\tcase float32:\n\t\treturn true, n == 0\n\tcase float64:\n\t\treturn true, n == 0\n\t}\n\treturn false, false\n}\nfunc Empty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif !isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val != \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val != zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.Empty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n\nfunc NotEmpty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val == \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val == zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n"},{"name":"uassert_test.gno","body":"package uassert\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n)\n\nvar _ TestingT = (*testing.T)(nil)\n\nfunc TestMock(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tmockT.empty(t)\n\tNoError(mockT, errors.New(\"foo\"))\n\tmockT.equals(t, \"error: unexpected error: foo\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom\", \"message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n}\n\nfunc TestNoError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, NoError(mockT, nil))\n\tmockT.empty(t)\n\tFalse(t, NoError(mockT, errors.New(\"foo bar\")))\n\tmockT.equals(t, \"error: unexpected error: foo bar\")\n}\n\nfunc TestError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, Error(mockT, errors.New(\"foo bar\")))\n\tmockT.empty(t)\n\tFalse(t, Error(mockT, nil))\n\tmockT.equals(t, \"error: an error is expected but got nil\")\n}\n\nfunc TestErrorContains(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\t// nil error\n\tvar err error\n\tFalse(t, ErrorContains(mockT, err, \"\"), \"ErrorContains should return false for nil arg\")\n}\n\nfunc TestTrue(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !True(mockT, true) {\n\t\tt.Error(\"True should return true\")\n\t}\n\tmockT.empty(t)\n\tif True(mockT, false) {\n\t\tt.Error(\"True should return false\")\n\t}\n\tmockT.equals(t, \"error: should be true\")\n}\n\nfunc TestFalse(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !False(mockT, false) {\n\t\tt.Error(\"False should return true\")\n\t}\n\tmockT.empty(t)\n\tif False(mockT, true) {\n\t\tt.Error(\"False should return false\")\n\t}\n\tmockT.equals(t, \"error: should be false\")\n}\n\nfunc TestPanicsWithMessage(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !PanicsWithMessage(mockT, \"panic\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic\\n\\tPanic value:\\tnil\")\n\n\tif PanicsWithMessage(mockT, \"at the disco\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tat the disco\\n\\tPanic value:\\tpanic\")\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\tpanic(\"panic\")\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tPanic!\\n\\tPanic value:\\tpanic\")\n}\n\nfunc TestNotPanics(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tif !NotPanics(mockT, func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"NotPanics should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif NotPanics(mockT, func() {\n\t\tpanic(\"Panic!\")\n\t}) {\n\t\tt.Error(\"NotPanics should return false\")\n\t}\n}\n\nfunc TestEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be equal\n\t\t{\"Hello World\", \"Hello World\", true, \"\"},\n\t\t{123, 123, true, \"\"},\n\t\t{123.5, 123.5, true, \"\"},\n\t\t{nil, nil, true, \"\"},\n\t\t{int32(123), int32(123), true, \"\"},\n\t\t{uint64(123), uint64(123), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be equal\n\t\t{\"Hello World\", 42, false, \"\"},\n\t\t{41, 42, false, \"\"},\n\t\t{10, uint(10), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Equal(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Equal(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be not equal\n\t\t{\"Hello World\", \"Hello\", true, \"\"},\n\t\t{123, 124, true, \"\"},\n\t\t{123.5, 123.6, true, \"\"},\n\t\t{nil, 123, true, \"\"},\n\t\t{int32(123), int32(124), true, \"\"},\n\t\t{uint64(123), uint64(124), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g67890\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be not equal\n\t\t{\"Hello World\", \"Hello World\", false, \"\"},\n\t\t{123, 123, false, \"\"},\n\t\t{123.5, 123.5, false, \"\"},\n\t\t{nil, nil, false, \"\"},\n\t\t{int32(123), int32(123), false, \"\"},\n\t\t{uint64(123), uint64(123), false, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEqual(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEqual(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\ntype myStruct struct {\n\tS string\n\tI int\n}\n\nfunc TestEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", true},\n\t\t{0, true},\n\t\t{int(0), true},\n\t\t{int32(0), true},\n\t\t{int64(0), true},\n\t\t{uint(0), true},\n\t\t// XXX: continue\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", false},\n\t\t{1, false},\n\t\t{int32(1), false},\n\t\t{uint64(1), false},\n\t\t{std.Address(\"g12345\"), false},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Empty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Empty(mockT, c.obj)\n\n\t\t\tif res != c.expectedEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestEqualWithStringDiff(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\texpected string\n\t\tactual string\n\t\tshouldPass bool\n\t\texpectedMsg string\n\t}{\n\t\t{\n\t\t\tname: \"Identical strings\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, world!\",\n\t\t\tshouldPass: true,\n\t\t\texpectedMsg: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - simple\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, World!\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: Hello, [-w][+W]orld!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - complex\",\n\t\t\texpected: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tactual: \"The quick brown cat jumps over the lazy dog\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - prefix\",\n\t\t\texpected: \"prefix_string\",\n\t\t\tactual: \"string\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-prefix_]string\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - suffix\",\n\t\t\texpected: \"string\",\n\t\t\tactual: \"string_suffix\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: string[+_suffix]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty string vs non-empty string\",\n\t\t\texpected: \"\",\n\t\t\tactual: \"non-empty\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [+non-empty]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Non-empty string vs empty string\",\n\t\t\texpected: \"non-empty\",\n\t\t\tactual: \"\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-non-empty]\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tmockT := \u0026mockTestingT{}\n\t\t\tresult := Equal(mockT, tc.expected, tc.actual)\n\n\t\t\tif result != tc.shouldPass {\n\t\t\t\tt.Errorf(\"Expected Equal to return %v, but got %v\", tc.shouldPass, result)\n\t\t\t}\n\n\t\t\tif tc.shouldPass {\n\t\t\t\tmockT.empty(t)\n\t\t\t} else {\n\t\t\t\tmockT.equals(t, tc.expectedMsg)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedNotEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", false},\n\t\t{0, false},\n\t\t{int(0), false},\n\t\t{int32(0), false},\n\t\t{int64(0), false},\n\t\t{uint(0), false},\n\t\t{std.Address(\"\"), false},\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", true},\n\t\t{1, true},\n\t\t{int32(1), true},\n\t\t{uint64(1), true},\n\t\t{std.Address(\"g12345\"), true},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEmpty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEmpty(mockT, c.obj)\n\n\t\t\tif res != c.expectedNotEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedNotEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wW0dae74oEIP16LFeyP1yps/6an1q8XLxLathjnfmwaRhaeZjXGyOzXMsqzroqwhu3InIVO2LHrV1nF6DfP+AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"uassert","path":"gno.land/p/demo/uassert","files":[{"name":"doc.gno","body":"package uassert // import \"gno.land/p/demo/uassert\"\n"},{"name":"helpers.gno","body":"package uassert\n\nimport \"strings\"\n\nfunc fail(t TestingT, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tcustomMsg := \"\"\n\tif len(customMsgs) \u003e 0 {\n\t\tcustomMsg = strings.Join(customMsgs, \" \")\n\t}\n\tif customMsg != \"\" {\n\t\tfailureMessage += \" - \" + customMsg\n\t}\n\tt.Errorf(failureMessage, args...)\n\treturn false\n}\n\nfunc autofail(t TestingT, success bool, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tif success {\n\t\treturn true\n\t}\n\treturn fail(t, customMsgs, failureMessage, args...)\n}\n\nfunc checkDidPanic(f func()) (didPanic bool, message string) {\n\tdidPanic = true\n\tdefer func() {\n\t\tr := recover()\n\n\t\tif r == nil {\n\t\t\tmessage = \"nil\"\n\t\t\treturn\n\t\t}\n\n\t\terr, ok := r.(error)\n\t\tif ok {\n\t\t\tmessage = err.Error()\n\t\t\treturn\n\t\t}\n\n\t\terrStr, ok := r.(string)\n\t\tif ok {\n\t\t\tmessage = errStr\n\t\t\treturn\n\t\t}\n\n\t\tmessage = \"recover: unsupported type\"\n\t}()\n\tf()\n\tdidPanic = false\n\treturn\n}\n"},{"name":"mock_test.gno","body":"package uassert\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype mockTestingT struct {\n\tfmt string\n\targs []interface{}\n}\n\n// --- interface mock\n\nvar _ TestingT = (*mockTestingT)(nil)\n\nfunc (mockT *mockTestingT) Helper() { /* noop */ }\nfunc (mockT *mockTestingT) Skip(args ...interface{}) { /* not implmented */ }\nfunc (mockT *mockTestingT) Fail() { /* not implmented */ }\nfunc (mockT *mockTestingT) FailNow() { /* not implmented */ }\nfunc (mockT *mockTestingT) Logf(fmt string, args ...interface{}) { /* noop */ }\n\nfunc (mockT *mockTestingT) Fatalf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"fatal: \" + fmt\n\tmockT.args = args\n}\n\nfunc (mockT *mockTestingT) Errorf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"error: \" + fmt\n\tmockT.args = args\n}\n\n// --- helpers\n\nfunc (mockT *mockTestingT) actualString() string {\n\tres := fmt.Sprintf(mockT.fmt, mockT.args...)\n\tmockT.reset()\n\treturn res\n}\n\nfunc (mockT *mockTestingT) reset() {\n\tmockT.fmt = \"\"\n\tmockT.args = nil\n}\n\nfunc (mockT *mockTestingT) equals(t *testing.T, expected string) {\n\tactual := mockT.actualString()\n\n\tif expected != actual {\n\t\tt.Errorf(\"mockT differs:\\n- expected: %s\\n- actual: %s\\n\", expected, actual)\n\t}\n}\n\nfunc (mockT *mockTestingT) empty(t *testing.T) {\n\tif mockT.fmt != \"\" || mockT.args != nil {\n\t\tactual := mockT.actualString()\n\t\tt.Errorf(\"mockT should be empty, got %s\", actual)\n\t}\n}\n"},{"name":"types.gno","body":"package uassert\n\ntype TestingT interface {\n\tHelper()\n\tSkip(args ...interface{})\n\tFatalf(fmt string, args ...interface{})\n\tErrorf(fmt string, args ...interface{})\n\tLogf(fmt string, args ...interface{})\n\tFail()\n\tFailNow()\n}\n"},{"name":"uassert.gno","body":"// uassert is an adapted lighter version of https://github.com/stretchr/testify/assert.\npackage uassert\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/diff\"\n)\n\n// NoError asserts that a function returned no error (i.e. `nil`).\nfunc NoError(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err != nil {\n\t\treturn fail(t, msgs, \"unexpected error: %s\", err.Error())\n\t}\n\treturn true\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\nfunc Error(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err == nil {\n\t\treturn fail(t, msgs, \"an error is expected but got nil\")\n\t}\n\treturn true\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\nfunc ErrorContains(t TestingT, err error, contains string, msgs ...string) bool {\n\tt.Helper()\n\n\tif !Error(t, err, msgs...) {\n\t\treturn false\n\t}\n\n\tactual := err.Error()\n\tif !strings.Contains(actual, contains) {\n\t\treturn fail(t, msgs, \"error %q does not contain %q\", actual, contains)\n\t}\n\n\treturn true\n}\n\n// True asserts that the specified value is true.\nfunc True(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif !value {\n\t\treturn fail(t, msgs, \"should be true\")\n\t}\n\treturn true\n}\n\n// False asserts that the specified value is false.\nfunc False(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif value {\n\t\treturn fail(t, msgs, \"should be false\")\n\t}\n\treturn true\n}\n\n// ErrorIs asserts the given error matches the target error\nfunc ErrorIs(t TestingT, err, target error, msgs ...string) bool {\n\tt.Helper()\n\n\tif err == nil || target == nil {\n\t\treturn err == target\n\t}\n\n\t// XXX: if errors.Is(err, target) return true\n\n\tif err.Error() != target.Error() {\n\t\treturn fail(t, msgs, \"error mismatch, expected %s, got %s\", target.Error(), err.Error())\n\t}\n\n\treturn true\n}\n\n// PanicsWithMessage asserts that the code inside the specified func panics,\n// and that the recovered panic value satisfies the given message\nfunc PanicsWithMessage(t TestingT, msg string, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\tif !didPanic {\n\t\treturn fail(t, msgs, \"func should panic\\n\\tPanic value:\\t%v\", panicValue)\n\t}\n\n\tif panicValue != msg {\n\t\treturn fail(t, msgs, \"func should panic with message:\\t%s\\n\\tPanic value:\\t%s\", msg, panicValue)\n\t}\n\treturn true\n}\n\n// NotPanics asserts that the code inside the specified func does NOT panic.\nfunc NotPanics(t TestingT, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\n\tif didPanic {\n\t\treturn fail(t, msgs, \"func should not panic\\n\\tPanic value:\\t%s\", panicValue)\n\t}\n\treturn true\n}\n\n// Equal asserts that two objects are equal.\nfunc Equal(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected == actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tequal := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t\tif !equal {\n\t\t\t\tdif := diff.MyersDiff(ev, av)\n\t\t\t\treturn fail(t, msgs, \"uassert.Equal: strings are different\\n\\tDiff: %s\", diff.Format(dif))\n\t\t\t}\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.Equal: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tequal = ev.String() == av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.Equal: different types\") // XXX: display the types\n\t}\n\tif !equal {\n\t\treturn fail(t, msgs, \"uassert.Equal: same type but different value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\n// NotEqual asserts that two objects are not equal.\nfunc NotEqual(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected != actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tnotEqual := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.NotEqual: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tnotEqual = ev.String() != av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: different types\") // XXX: display the types\n\t}\n\tif !notEqual {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: same type and same value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\nfunc isNumberEmpty(n interface{}) (isNumber, isEmpty bool) {\n\tswitch n := n.(type) {\n\t// NOTE: the cases are split individually, so that n becomes of the\n\t// asserted type; the type of '0' was correctly inferred and converted\n\t// to the corresponding type, int, int8, etc.\n\tcase int:\n\t\treturn true, n == 0\n\tcase int8:\n\t\treturn true, n == 0\n\tcase int16:\n\t\treturn true, n == 0\n\tcase int32:\n\t\treturn true, n == 0\n\tcase int64:\n\t\treturn true, n == 0\n\tcase uint:\n\t\treturn true, n == 0\n\tcase uint8:\n\t\treturn true, n == 0\n\tcase uint16:\n\t\treturn true, n == 0\n\tcase uint32:\n\t\treturn true, n == 0\n\tcase uint64:\n\t\treturn true, n == 0\n\tcase float32:\n\t\treturn true, n == 0\n\tcase float64:\n\t\treturn true, n == 0\n\t}\n\treturn false, false\n}\nfunc Empty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif !isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val != \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val != zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.Empty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n\nfunc NotEmpty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val == \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val == zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n"},{"name":"uassert_test.gno","body":"package uassert\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n)\n\nvar _ TestingT = (*testing.T)(nil)\n\nfunc TestMock(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tmockT.empty(t)\n\tNoError(mockT, errors.New(\"foo\"))\n\tmockT.equals(t, \"error: unexpected error: foo\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom\", \"message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n}\n\nfunc TestNoError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, NoError(mockT, nil))\n\tmockT.empty(t)\n\tFalse(t, NoError(mockT, errors.New(\"foo bar\")))\n\tmockT.equals(t, \"error: unexpected error: foo bar\")\n}\n\nfunc TestError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, Error(mockT, errors.New(\"foo bar\")))\n\tmockT.empty(t)\n\tFalse(t, Error(mockT, nil))\n\tmockT.equals(t, \"error: an error is expected but got nil\")\n}\n\nfunc TestErrorContains(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\t// nil error\n\tvar err error\n\tFalse(t, ErrorContains(mockT, err, \"\"), \"ErrorContains should return false for nil arg\")\n}\n\nfunc TestTrue(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !True(mockT, true) {\n\t\tt.Error(\"True should return true\")\n\t}\n\tmockT.empty(t)\n\tif True(mockT, false) {\n\t\tt.Error(\"True should return false\")\n\t}\n\tmockT.equals(t, \"error: should be true\")\n}\n\nfunc TestFalse(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !False(mockT, false) {\n\t\tt.Error(\"False should return true\")\n\t}\n\tmockT.empty(t)\n\tif False(mockT, true) {\n\t\tt.Error(\"False should return false\")\n\t}\n\tmockT.equals(t, \"error: should be false\")\n}\n\nfunc TestPanicsWithMessage(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !PanicsWithMessage(mockT, \"panic\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic\\n\\tPanic value:\\tnil\")\n\n\tif PanicsWithMessage(mockT, \"at the disco\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tat the disco\\n\\tPanic value:\\tpanic\")\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\tpanic(\"panic\")\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tPanic!\\n\\tPanic value:\\tpanic\")\n}\n\nfunc TestNotPanics(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tif !NotPanics(mockT, func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"NotPanics should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif NotPanics(mockT, func() {\n\t\tpanic(\"Panic!\")\n\t}) {\n\t\tt.Error(\"NotPanics should return false\")\n\t}\n}\n\nfunc TestEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be equal\n\t\t{\"Hello World\", \"Hello World\", true, \"\"},\n\t\t{123, 123, true, \"\"},\n\t\t{123.5, 123.5, true, \"\"},\n\t\t{nil, nil, true, \"\"},\n\t\t{int32(123), int32(123), true, \"\"},\n\t\t{uint64(123), uint64(123), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be equal\n\t\t{\"Hello World\", 42, false, \"\"},\n\t\t{41, 42, false, \"\"},\n\t\t{10, uint(10), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Equal(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Equal(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be not equal\n\t\t{\"Hello World\", \"Hello\", true, \"\"},\n\t\t{123, 124, true, \"\"},\n\t\t{123.5, 123.6, true, \"\"},\n\t\t{nil, 123, true, \"\"},\n\t\t{int32(123), int32(124), true, \"\"},\n\t\t{uint64(123), uint64(124), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g67890\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be not equal\n\t\t{\"Hello World\", \"Hello World\", false, \"\"},\n\t\t{123, 123, false, \"\"},\n\t\t{123.5, 123.5, false, \"\"},\n\t\t{nil, nil, false, \"\"},\n\t\t{int32(123), int32(123), false, \"\"},\n\t\t{uint64(123), uint64(123), false, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEqual(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEqual(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\ntype myStruct struct {\n\tS string\n\tI int\n}\n\nfunc TestEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", true},\n\t\t{0, true},\n\t\t{int(0), true},\n\t\t{int32(0), true},\n\t\t{int64(0), true},\n\t\t{uint(0), true},\n\t\t// XXX: continue\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", false},\n\t\t{1, false},\n\t\t{int32(1), false},\n\t\t{uint64(1), false},\n\t\t{std.Address(\"g12345\"), false},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Empty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Empty(mockT, c.obj)\n\n\t\t\tif res != c.expectedEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestEqualWithStringDiff(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\texpected string\n\t\tactual string\n\t\tshouldPass bool\n\t\texpectedMsg string\n\t}{\n\t\t{\n\t\t\tname: \"Identical strings\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, world!\",\n\t\t\tshouldPass: true,\n\t\t\texpectedMsg: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - simple\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, World!\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: Hello, [-w][+W]orld!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - complex\",\n\t\t\texpected: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tactual: \"The quick brown cat jumps over the lazy dog\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - prefix\",\n\t\t\texpected: \"prefix_string\",\n\t\t\tactual: \"string\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-prefix_]string\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - suffix\",\n\t\t\texpected: \"string\",\n\t\t\tactual: \"string_suffix\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: string[+_suffix]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty string vs non-empty string\",\n\t\t\texpected: \"\",\n\t\t\tactual: \"non-empty\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [+non-empty]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Non-empty string vs empty string\",\n\t\t\texpected: \"non-empty\",\n\t\t\tactual: \"\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-non-empty]\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tmockT := \u0026mockTestingT{}\n\t\t\tresult := Equal(mockT, tc.expected, tc.actual)\n\n\t\t\tif result != tc.shouldPass {\n\t\t\t\tt.Errorf(\"Expected Equal to return %v, but got %v\", tc.shouldPass, result)\n\t\t\t}\n\n\t\t\tif tc.shouldPass {\n\t\t\t\tmockT.empty(t)\n\t\t\t} else {\n\t\t\t\tmockT.equals(t, tc.expectedMsg)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedNotEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", false},\n\t\t{0, false},\n\t\t{int(0), false},\n\t\t{int32(0), false},\n\t\t{int64(0), false},\n\t\t{uint(0), false},\n\t\t{std.Address(\"\"), false},\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", true},\n\t\t{1, true},\n\t\t{int32(1), true},\n\t\t{uint64(1), true},\n\t\t{std.Address(\"g12345\"), true},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEmpty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEmpty(mockT, c.obj)\n\n\t\t\tif res != c.expectedNotEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedNotEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wW0dae74oEIP16LFeyP1yps/6an1q8XLxLathjnfmwaRhaeZjXGyOzXMsqzroqwhu3InIVO2LHrV1nF6DfP+AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ufmt","path":"gno.land/p/demo/ufmt","files":[{"name":"ufmt.gno","body":"// Package ufmt provides utility functions for formatting strings, similarly\n// to the Go package \"fmt\", of which only a subset is currently supported\n// (hence the name µfmt - micro fmt).\npackage ufmt\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Println formats using the default formats for its operands and writes to standard output.\n// Println writes the given arguments to standard output with spaces between arguments\n// and a newline at the end.\nfunc Println(args ...interface{}) {\n\tvar strs []string\n\tfor _, arg := range args {\n\t\tswitch v := arg.(type) {\n\t\tcase string:\n\t\t\tstrs = append(strs, v)\n\t\tcase (interface{ String() string }):\n\t\t\tstrs = append(strs, v.String())\n\t\tcase error:\n\t\t\tstrs = append(strs, v.Error())\n\t\tcase float64:\n\t\t\tstrs = append(strs, Sprintf(\"%f\", v))\n\t\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t\tstrs = append(strs, Sprintf(\"%d\", v))\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tstrs = append(strs, \"true\")\n\t\t\t} else {\n\t\t\t\tstrs = append(strs, \"false\")\n\t\t\t}\n\t\tcase nil:\n\t\t\tstrs = append(strs, \"\u003cnil\u003e\")\n\t\tdefault:\n\t\t\tstrs = append(strs, \"(unhandled)\")\n\t\t}\n\t}\n\n\t// TODO: remove println after gno supports os.Stdout\n\tprintln(strings.Join(strs, \" \"))\n}\n\n// Sprintf offers similar functionality to Go's fmt.Sprintf, or the sprintf\n// equivalent available in many languages, including C/C++.\n// The number of args passed must exactly match the arguments consumed by the format.\n// A limited number of formatting verbs and features are currently supported,\n// hence the name ufmt (µfmt, micro-fmt).\n//\n// The currently formatted verbs are the following:\n//\n//\t\t%s: places a string value directly.\n//\t\t If the value implements the interface interface{ String() string },\n//\t\t the String() method is called to retrieve the value. Same about Error()\n//\t\t string.\n//\t\t%c: formats the character represented by Unicode code point\n//\t\t%d: formats an integer value using package \"strconv\".\n//\t\t Currently supports only uint, uint64, int, int64.\n//\t\t%f: formats a float value, with a default precision of 6.\n//\t\t%e: formats a float with scientific notation; 1.23456e+78\n//\t\t%E: formats a float with scientific notation; 1.23456E+78\n//\t\t%F: The same as %f\n//\t\t%g: formats a float value with %e for large exponents, and %f with full precision for smaller numbers\n//\t\t%G: formats a float value with %G for large exponents, and %F with full precision for smaller numbers\n//\t\t%t: formats a boolean value to \"true\" or \"false\".\n//\t\t%x: formats an integer value as a hexadecimal string.\n//\t\t Currently supports only uint8, []uint8, [32]uint8.\n//\t\t%c: formats a rune value as a string.\n//\t\t Currently supports only rune, int.\n//\t\t%q: formats a string value as a quoted string.\n//\t\t%T: formats the type of the value.\n//\t %v: formats the value with a default representation appropriate for the value's type\n//\t\t%%: outputs a literal %. Does not consume an argument.\nfunc Sprintf(format string, args ...interface{}) string {\n\t// we use runes to handle multi-byte characters\n\tsTor := []rune(format)\n\tend := len(sTor)\n\targNum := 0\n\targLen := len(args)\n\tbuf := \"\"\n\n\tfor i := 0; i \u003c end; {\n\t\tisLast := i == end-1\n\t\tc := string(sTor[i])\n\n\t\tif isLast || c != \"%\" {\n\t\t\t// we don't check for invalid format like a one ending with \"%\"\n\t\t\tbuf += string(c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tverb := string(sTor[i+1])\n\t\tif verb == \"%\" {\n\t\t\tbuf += \"%\"\n\t\t\ti += 2\n\t\t\tcontinue\n\t\t}\n\n\t\tif argNum \u003e argLen {\n\t\t\tpanic(\"invalid number of arguments to ufmt.Sprintf\")\n\t\t}\n\t\targ := args[argNum]\n\t\targNum++\n\n\t\tswitch verb {\n\t\tcase \"v\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase nil:\n\t\t\t\tbuf += \"\u003cnil\u003e\"\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tcase float64:\n\t\t\t\tbuf += strconv.FormatFloat(v, 'g', -1, 64)\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tcase []byte:\n\t\t\t\tbuf += string(v)\n\t\t\tcase []rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"s\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"c\":\n\t\t\tswitch v := arg.(type) {\n\t\t\t// rune is int32. Exclude overflowing numeric types and dups (byte, int32):\n\t\t\tcase rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int16:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint16:\n\t\t\t\tbuf += string(v)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"d\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"e\", \"E\", \"f\", \"F\", \"g\", \"G\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase float64:\n\t\t\t\tswitch verb {\n\t\t\t\tcase \"e\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('e'), -1, 64)\n\t\t\t\tcase \"E\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('E'), -1, 64)\n\t\t\t\tcase \"f\", \"F\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('f'), 6, 64)\n\t\t\t\tcase \"g\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('g'), -1, 64)\n\t\t\t\tcase \"G\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('G'), -1, 64)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"t\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"x\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 16)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"q\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase string:\n\t\t\t\tbuf += strconv.Quote(v)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"T\":\n\t\t\tswitch arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tbuf += \"bool\"\n\t\t\tcase int:\n\t\t\t\tbuf += \"int\"\n\t\t\tcase int8:\n\t\t\t\tbuf += \"int8\"\n\t\t\tcase int16:\n\t\t\t\tbuf += \"int16\"\n\t\t\tcase int32:\n\t\t\t\tbuf += \"int32\"\n\t\t\tcase int64:\n\t\t\t\tbuf += \"int64\"\n\t\t\tcase uint:\n\t\t\t\tbuf += \"uint\"\n\t\t\tcase uint8:\n\t\t\t\tbuf += \"uint8\"\n\t\t\tcase uint16:\n\t\t\t\tbuf += \"uint16\"\n\t\t\tcase uint32:\n\t\t\t\tbuf += \"uint32\"\n\t\t\tcase uint64:\n\t\t\t\tbuf += \"uint64\"\n\t\t\tcase string:\n\t\t\t\tbuf += \"string\"\n\t\t\tcase []byte:\n\t\t\t\tbuf += \"[]byte\"\n\t\t\tcase []rune:\n\t\t\t\tbuf += \"[]rune\"\n\t\t\tdefault:\n\t\t\t\tbuf += \"unknown\"\n\t\t\t}\n\t\t// % handled before, as it does not consume an argument\n\t\tdefault:\n\t\t\tbuf += \"(unhandled verb: %\" + verb + \")\"\n\t\t}\n\n\t\ti += 2\n\t}\n\tif argNum \u003c argLen {\n\t\tpanic(\"too many arguments to ufmt.Sprintf\")\n\t}\n\treturn buf\n}\n\n// This function is used to mimic Go's fmt.Sprintf\n// specific behaviour of showing verb/type mismatches,\n// where for example:\n//\n//\tfmt.Sprintf(\"%d\", \"foo\") gives \"%!d(string=foo)\"\n//\n// Here:\n//\n//\tfallback(\"s\", 8) -\u003e \"%!s(int=8)\"\n//\tfallback(\"d\", nil) -\u003e \"%!d(\u003cnil\u003e)\", and so on.\nfunc fallback(verb string, arg interface{}) string {\n\tvar s string\n\tswitch v := arg.(type) {\n\tcase string:\n\t\ts = \"string=\" + v\n\tcase (interface{ String() string }):\n\t\ts = \"string=\" + v.String()\n\tcase error:\n\t\t// note: also \"string=\" in Go fmt\n\t\ts = \"string=\" + v.Error()\n\tcase float64:\n\t\ts = \"float64=\" + Sprintf(\"%f\", v)\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t// note: rune, byte would be dups, being aliases\n\t\tif typename, e := typeToString(v); e != nil {\n\t\t\tpanic(\"should not happen\")\n\t\t} else {\n\t\t\ts = typename + \"=\" + Sprintf(\"%d\", v)\n\t\t}\n\tcase bool:\n\t\tif v {\n\t\t\ts = \"bool=true\"\n\t\t} else {\n\t\t\ts = \"bool=false\"\n\t\t}\n\tcase nil:\n\t\ts = \"\u003cnil\u003e\"\n\tdefault:\n\t\ts = \"(unhandled)\"\n\t}\n\treturn \"%!\" + verb + \"(\" + s + \")\"\n}\n\n// Get the name of the type of `v` as a string.\n// The recognized type of v is currently limited to native non-composite types.\n// An error is returned otherwise.\nfunc typeToString(v interface{}) (string, error) {\n\tswitch v.(type) {\n\tcase string:\n\t\treturn \"string\", nil\n\tcase int:\n\t\treturn \"int\", nil\n\tcase int8:\n\t\treturn \"int8\", nil\n\tcase int16:\n\t\treturn \"int16\", nil\n\tcase int32:\n\t\treturn \"int32\", nil\n\tcase int64:\n\t\treturn \"int64\", nil\n\tcase uint:\n\t\treturn \"uint\", nil\n\tcase uint8:\n\t\treturn \"uint8\", nil\n\tcase uint16:\n\t\treturn \"uint16\", nil\n\tcase uint32:\n\t\treturn \"uint32\", nil\n\tcase uint64:\n\t\treturn \"uint64\", nil\n\tcase float32:\n\t\treturn \"float32\", nil\n\tcase float64:\n\t\treturn \"float64\", nil\n\tcase bool:\n\t\treturn \"bool\", nil\n\tdefault:\n\t\treturn \"\", errors.New(\"(unsupported type)\")\n\t}\n}\n\n// errMsg implements the error interface.\ntype errMsg struct {\n\tmsg string\n}\n\n// Error defines the requirements of the error interface.\n// It functions similarly to Go's errors.New()\nfunc (e *errMsg) Error() string {\n\treturn e.msg\n}\n\n// Errorf is a function that mirrors the functionality of fmt.Errorf.\n//\n// It takes a format string and arguments to create a formatted string,\n// then sets this string as the 'msg' field of an errMsg struct and returns a pointer to this struct.\n//\n// This function operates in a similar manner to Go's fmt.Errorf,\n// providing a way to create formatted error messages.\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same for error.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn \u0026errMsg{Sprintf(format, args...)}\n}\n"},{"name":"ufmt_test.gno","body":"package ufmt\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype stringer struct{}\n\nfunc (stringer) String() string {\n\treturn \"I'm a stringer\"\n}\n\nfunc TestSprintf(t *testing.T) {\n\ttru := true\n\tcases := []struct {\n\t\tformat string\n\t\tvalues []interface{}\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello %s!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hello %v!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hi %%%s!\", []interface{}{\"worl%d\"}, \"hi %worl%d!\"},\n\t\t{\"%s %c %d %t\", []interface{}{\"foo\", 'α', 421, true}, \"foo α 421 true\"},\n\t\t{\"string [%s]\", []interface{}{\"foo\"}, \"string [foo]\"},\n\t\t{\"int [%d]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int [%v]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int8 [%d]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int8 [%v]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int16 [%d]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int16 [%v]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int32 [%d]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int32 [%v]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int64 [%d]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"int64 [%v]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"uint [%d]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint [%v]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint8 [%d]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint8 [%v]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint16 [%d]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint16 [%v]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint32 [%d]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint32 [%v]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint64 [%d]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"uint64 [%v]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"bool [%t]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%v]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%t]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"bool [%v]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"no args\", nil, \"no args\"},\n\t\t{\"finish with %\", nil, \"finish with %\"},\n\t\t{\"stringer [%s]\", []interface{}{stringer{}}, \"stringer [I'm a stringer]\"},\n\t\t{\"â\", nil, \"â\"},\n\t\t{\"Hello, World! 😊\", nil, \"Hello, World! 😊\"},\n\t\t{\"unicode formatting: %s\", []interface{}{\"😊\"}, \"unicode formatting: 😊\"},\n\t\t{\"invalid hex [%x]\", []interface{}{\"invalid\"}, \"invalid hex [(unhandled)]\"},\n\t\t{\"rune as character [%c]\", []interface{}{rune('A')}, \"rune as character [A]\"},\n\t\t{\"int as character [%c]\", []interface{}{int('B')}, \"int as character [B]\"},\n\t\t{\"quoted string [%q]\", []interface{}{\"hello\"}, \"quoted string [\\\"hello\\\"]\"},\n\t\t{\"quoted string with escape [%q]\", []interface{}{\"\\thello\\nworld\\\\\"}, \"quoted string with escape [\\\"\\\\thello\\\\nworld\\\\\\\\\\\"]\"},\n\t\t{\"invalid quoted string [%q]\", []interface{}{123}, \"invalid quoted string [(unhandled)]\"},\n\t\t{\"type of bool [%T]\", []interface{}{true}, \"type of bool [bool]\"},\n\t\t{\"type of int [%T]\", []interface{}{123}, \"type of int [int]\"},\n\t\t{\"type of string [%T]\", []interface{}{\"hello\"}, \"type of string [string]\"},\n\t\t{\"type of []byte [%T]\", []interface{}{[]byte{1, 2, 3}}, \"type of []byte [[]byte]\"},\n\t\t{\"type of []rune [%T]\", []interface{}{[]rune{'a', 'b', 'c'}}, \"type of []rune [[]rune]\"},\n\t\t{\"type of unknown [%T]\", []interface{}{struct{}{}}, \"type of unknown [unknown]\"},\n\t\t// mismatch printing\n\t\t{\"%s\", []interface{}{nil}, \"%!s(\u003cnil\u003e)\"},\n\t\t{\"%s\", []interface{}{421}, \"%!s(int=421)\"},\n\t\t{\"%s\", []interface{}{\"z\"}, \"z\"},\n\t\t{\"%s\", []interface{}{tru}, \"%!s(bool=true)\"},\n\t\t{\"%s\", []interface{}{'z'}, \"%!s(int32=122)\"},\n\n\t\t{\"%c\", []interface{}{nil}, \"%!c(\u003cnil\u003e)\"},\n\t\t{\"%c\", []interface{}{421}, \"ƥ\"},\n\t\t{\"%c\", []interface{}{\"z\"}, \"%!c(string=z)\"},\n\t\t{\"%c\", []interface{}{tru}, \"%!c(bool=true)\"},\n\t\t{\"%c\", []interface{}{'z'}, \"z\"},\n\n\t\t{\"%d\", []interface{}{nil}, \"%!d(\u003cnil\u003e)\"},\n\t\t{\"%d\", []interface{}{421}, \"421\"},\n\t\t{\"%d\", []interface{}{\"z\"}, \"%!d(string=z)\"},\n\t\t{\"%d\", []interface{}{tru}, \"%!d(bool=true)\"},\n\t\t{\"%d\", []interface{}{'z'}, \"122\"},\n\n\t\t{\"%t\", []interface{}{nil}, \"%!t(\u003cnil\u003e)\"},\n\t\t{\"%t\", []interface{}{421}, \"%!t(int=421)\"},\n\t\t{\"%t\", []interface{}{\"z\"}, \"%!t(string=z)\"},\n\t\t{\"%t\", []interface{}{tru}, \"true\"},\n\t\t{\"%t\", []interface{}{'z'}, \"%!t(int32=122)\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tname := fmt.Sprintf(tc.format, tc.values...)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sprintf(tc.format, tc.values...)\n\t\t\tif got != tc.expectedOutput {\n\t\t\t\tt.Errorf(\"got %q, want %q.\", got, tc.expectedOutput)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestErrorf(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tformat string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"simple string\",\n\t\t\tformat: \"error: %s\",\n\t\t\targs: []interface{}{\"something went wrong\"},\n\t\t\texpected: \"error: something went wrong\",\n\t\t},\n\t\t{\n\t\t\tname: \"integer value\",\n\t\t\tformat: \"value: %d\",\n\t\t\targs: []interface{}{42},\n\t\t\texpected: \"value: 42\",\n\t\t},\n\t\t{\n\t\t\tname: \"boolean value\",\n\t\t\tformat: \"success: %t\",\n\t\t\targs: []interface{}{true},\n\t\t\texpected: \"success: true\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple values\",\n\t\t\tformat: \"error %d: %s (success=%t)\",\n\t\t\targs: []interface{}{123, \"failure occurred\", false},\n\t\t\texpected: \"error 123: failure occurred (success=false)\",\n\t\t},\n\t\t{\n\t\t\tname: \"literal percent\",\n\t\t\tformat: \"literal %%\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"literal %\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := Errorf(tt.format, tt.args...)\n\t\t\tif err.Error() != tt.expected {\n\t\t\t\tt.Errorf(\"Errorf(%q, %v) = %q, expected %q\", tt.format, tt.args, err.Error(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPrintErrors(t *testing.T) {\n\tgot := Sprintf(\"error: %s\", errors.New(\"can I be printed?\"))\n\texpectedOutput := \"error: can I be printed?\"\n\tif got != expectedOutput {\n\t\tt.Errorf(\"got %q, want %q.\", got, expectedOutput)\n\t}\n}\n\n// NOTE: Currently, there is no way to get the output of Println without using os.Stdout,\n// so we can only test that it doesn't panic and print arguments well.\nfunc TestPrintln(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"Empty args\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"String args\",\n\t\t\targs: []interface{}{\"Hello\", \"World\"},\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Integer args\",\n\t\t\targs: []interface{}{1, 2, 3},\n\t\t\texpected: \"1 2 3\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed args\",\n\t\t\targs: []interface{}{\"Hello\", 42, true, false, \"World\"},\n\t\t\texpected: \"Hello 42 true false World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unhandled type\",\n\t\t\targs: []interface{}{\"Hello\", 3.14, []int{1, 2, 3}},\n\t\t\texpected: \"Hello (unhandled) (unhandled)\",\n\t\t},\n\t}\n\n\t// TODO: replace os.Stdout with a buffer to capture the output and test it.\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tPrintln(tt.args...)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AXu6g0gOL8CXrdr4UVZiDQZWnW7JE/4nRXnPRAuCow+9OlJsoNzaYGyVnyVUoWGSMjq9rtVrK4tAocCzK4cWDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ufmt","path":"gno.land/p/demo/ufmt","files":[{"name":"ufmt.gno","body":"// Package ufmt provides utility functions for formatting strings, similarly\n// to the Go package \"fmt\", of which only a subset is currently supported\n// (hence the name µfmt - micro fmt).\npackage ufmt\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Println formats using the default formats for its operands and writes to standard output.\n// Println writes the given arguments to standard output with spaces between arguments\n// and a newline at the end.\nfunc Println(args ...interface{}) {\n\tvar strs []string\n\tfor _, arg := range args {\n\t\tswitch v := arg.(type) {\n\t\tcase string:\n\t\t\tstrs = append(strs, v)\n\t\tcase (interface{ String() string }):\n\t\t\tstrs = append(strs, v.String())\n\t\tcase error:\n\t\t\tstrs = append(strs, v.Error())\n\t\tcase float64:\n\t\t\tstrs = append(strs, Sprintf(\"%f\", v))\n\t\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t\tstrs = append(strs, Sprintf(\"%d\", v))\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tstrs = append(strs, \"true\")\n\t\t\t} else {\n\t\t\t\tstrs = append(strs, \"false\")\n\t\t\t}\n\t\tcase nil:\n\t\t\tstrs = append(strs, \"\u003cnil\u003e\")\n\t\tdefault:\n\t\t\tstrs = append(strs, \"(unhandled)\")\n\t\t}\n\t}\n\n\t// TODO: remove println after gno supports os.Stdout\n\tprintln(strings.Join(strs, \" \"))\n}\n\n// Sprintf offers similar functionality to Go's fmt.Sprintf, or the sprintf\n// equivalent available in many languages, including C/C++.\n// The number of args passed must exactly match the arguments consumed by the format.\n// A limited number of formatting verbs and features are currently supported,\n// hence the name ufmt (µfmt, micro-fmt).\n//\n// The currently formatted verbs are the following:\n//\n//\t\t%s: places a string value directly.\n//\t\t If the value implements the interface interface{ String() string },\n//\t\t the String() method is called to retrieve the value. Same about Error()\n//\t\t string.\n//\t\t%c: formats the character represented by Unicode code point\n//\t\t%d: formats an integer value using package \"strconv\".\n//\t\t Currently supports only uint, uint64, int, int64.\n//\t\t%f: formats a float value, with a default precision of 6.\n//\t\t%e: formats a float with scientific notation; 1.23456e+78\n//\t\t%E: formats a float with scientific notation; 1.23456E+78\n//\t\t%F: The same as %f\n//\t\t%g: formats a float value with %e for large exponents, and %f with full precision for smaller numbers\n//\t\t%G: formats a float value with %G for large exponents, and %F with full precision for smaller numbers\n//\t\t%t: formats a boolean value to \"true\" or \"false\".\n//\t\t%x: formats an integer value as a hexadecimal string.\n//\t\t Currently supports only uint8, []uint8, [32]uint8.\n//\t\t%c: formats a rune value as a string.\n//\t\t Currently supports only rune, int.\n//\t\t%q: formats a string value as a quoted string.\n//\t\t%T: formats the type of the value.\n//\t %v: formats the value with a default representation appropriate for the value's type\n//\t\t%%: outputs a literal %. Does not consume an argument.\nfunc Sprintf(format string, args ...interface{}) string {\n\t// we use runes to handle multi-byte characters\n\tsTor := []rune(format)\n\tend := len(sTor)\n\targNum := 0\n\targLen := len(args)\n\tbuf := \"\"\n\n\tfor i := 0; i \u003c end; {\n\t\tisLast := i == end-1\n\t\tc := string(sTor[i])\n\n\t\tif isLast || c != \"%\" {\n\t\t\t// we don't check for invalid format like a one ending with \"%\"\n\t\t\tbuf += string(c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tverb := string(sTor[i+1])\n\t\tif verb == \"%\" {\n\t\t\tbuf += \"%\"\n\t\t\ti += 2\n\t\t\tcontinue\n\t\t}\n\n\t\tif argNum \u003e argLen {\n\t\t\tpanic(\"invalid number of arguments to ufmt.Sprintf\")\n\t\t}\n\t\targ := args[argNum]\n\t\targNum++\n\n\t\tswitch verb {\n\t\tcase \"v\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase nil:\n\t\t\t\tbuf += \"\u003cnil\u003e\"\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tcase float64:\n\t\t\t\tbuf += strconv.FormatFloat(v, 'g', -1, 64)\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tcase []byte:\n\t\t\t\tbuf += string(v)\n\t\t\tcase []rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"s\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"c\":\n\t\t\tswitch v := arg.(type) {\n\t\t\t// rune is int32. Exclude overflowing numeric types and dups (byte, int32):\n\t\t\tcase rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int16:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint16:\n\t\t\t\tbuf += string(v)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"d\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"e\", \"E\", \"f\", \"F\", \"g\", \"G\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase float64:\n\t\t\t\tswitch verb {\n\t\t\t\tcase \"e\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('e'), -1, 64)\n\t\t\t\tcase \"E\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('E'), -1, 64)\n\t\t\t\tcase \"f\", \"F\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('f'), 6, 64)\n\t\t\t\tcase \"g\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('g'), -1, 64)\n\t\t\t\tcase \"G\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('G'), -1, 64)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"t\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"x\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 16)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"q\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase string:\n\t\t\t\tbuf += strconv.Quote(v)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"T\":\n\t\t\tswitch arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tbuf += \"bool\"\n\t\t\tcase int:\n\t\t\t\tbuf += \"int\"\n\t\t\tcase int8:\n\t\t\t\tbuf += \"int8\"\n\t\t\tcase int16:\n\t\t\t\tbuf += \"int16\"\n\t\t\tcase int32:\n\t\t\t\tbuf += \"int32\"\n\t\t\tcase int64:\n\t\t\t\tbuf += \"int64\"\n\t\t\tcase uint:\n\t\t\t\tbuf += \"uint\"\n\t\t\tcase uint8:\n\t\t\t\tbuf += \"uint8\"\n\t\t\tcase uint16:\n\t\t\t\tbuf += \"uint16\"\n\t\t\tcase uint32:\n\t\t\t\tbuf += \"uint32\"\n\t\t\tcase uint64:\n\t\t\t\tbuf += \"uint64\"\n\t\t\tcase string:\n\t\t\t\tbuf += \"string\"\n\t\t\tcase []byte:\n\t\t\t\tbuf += \"[]byte\"\n\t\t\tcase []rune:\n\t\t\t\tbuf += \"[]rune\"\n\t\t\tdefault:\n\t\t\t\tbuf += \"unknown\"\n\t\t\t}\n\t\t// % handled before, as it does not consume an argument\n\t\tdefault:\n\t\t\tbuf += \"(unhandled verb: %\" + verb + \")\"\n\t\t}\n\n\t\ti += 2\n\t}\n\tif argNum \u003c argLen {\n\t\tpanic(\"too many arguments to ufmt.Sprintf\")\n\t}\n\treturn buf\n}\n\n// This function is used to mimic Go's fmt.Sprintf\n// specific behaviour of showing verb/type mismatches,\n// where for example:\n//\n//\tfmt.Sprintf(\"%d\", \"foo\") gives \"%!d(string=foo)\"\n//\n// Here:\n//\n//\tfallback(\"s\", 8) -\u003e \"%!s(int=8)\"\n//\tfallback(\"d\", nil) -\u003e \"%!d(\u003cnil\u003e)\", and so on.\nfunc fallback(verb string, arg interface{}) string {\n\tvar s string\n\tswitch v := arg.(type) {\n\tcase string:\n\t\ts = \"string=\" + v\n\tcase (interface{ String() string }):\n\t\ts = \"string=\" + v.String()\n\tcase error:\n\t\t// note: also \"string=\" in Go fmt\n\t\ts = \"string=\" + v.Error()\n\tcase float64:\n\t\ts = \"float64=\" + Sprintf(\"%f\", v)\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t// note: rune, byte would be dups, being aliases\n\t\tif typename, e := typeToString(v); e != nil {\n\t\t\tpanic(\"should not happen\")\n\t\t} else {\n\t\t\ts = typename + \"=\" + Sprintf(\"%d\", v)\n\t\t}\n\tcase bool:\n\t\tif v {\n\t\t\ts = \"bool=true\"\n\t\t} else {\n\t\t\ts = \"bool=false\"\n\t\t}\n\tcase nil:\n\t\ts = \"\u003cnil\u003e\"\n\tdefault:\n\t\ts = \"(unhandled)\"\n\t}\n\treturn \"%!\" + verb + \"(\" + s + \")\"\n}\n\n// Get the name of the type of `v` as a string.\n// The recognized type of v is currently limited to native non-composite types.\n// An error is returned otherwise.\nfunc typeToString(v interface{}) (string, error) {\n\tswitch v.(type) {\n\tcase string:\n\t\treturn \"string\", nil\n\tcase int:\n\t\treturn \"int\", nil\n\tcase int8:\n\t\treturn \"int8\", nil\n\tcase int16:\n\t\treturn \"int16\", nil\n\tcase int32:\n\t\treturn \"int32\", nil\n\tcase int64:\n\t\treturn \"int64\", nil\n\tcase uint:\n\t\treturn \"uint\", nil\n\tcase uint8:\n\t\treturn \"uint8\", nil\n\tcase uint16:\n\t\treturn \"uint16\", nil\n\tcase uint32:\n\t\treturn \"uint32\", nil\n\tcase uint64:\n\t\treturn \"uint64\", nil\n\tcase float32:\n\t\treturn \"float32\", nil\n\tcase float64:\n\t\treturn \"float64\", nil\n\tcase bool:\n\t\treturn \"bool\", nil\n\tdefault:\n\t\treturn \"\", errors.New(\"(unsupported type)\")\n\t}\n}\n\n// errMsg implements the error interface.\ntype errMsg struct {\n\tmsg string\n}\n\n// Error defines the requirements of the error interface.\n// It functions similarly to Go's errors.New()\nfunc (e *errMsg) Error() string {\n\treturn e.msg\n}\n\n// Errorf is a function that mirrors the functionality of fmt.Errorf.\n//\n// It takes a format string and arguments to create a formatted string,\n// then sets this string as the 'msg' field of an errMsg struct and returns a pointer to this struct.\n//\n// This function operates in a similar manner to Go's fmt.Errorf,\n// providing a way to create formatted error messages.\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same for error.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn \u0026errMsg{Sprintf(format, args...)}\n}\n"},{"name":"ufmt_test.gno","body":"package ufmt\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype stringer struct{}\n\nfunc (stringer) String() string {\n\treturn \"I'm a stringer\"\n}\n\nfunc TestSprintf(t *testing.T) {\n\ttru := true\n\tcases := []struct {\n\t\tformat string\n\t\tvalues []interface{}\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello %s!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hello %v!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hi %%%s!\", []interface{}{\"worl%d\"}, \"hi %worl%d!\"},\n\t\t{\"%s %c %d %t\", []interface{}{\"foo\", 'α', 421, true}, \"foo α 421 true\"},\n\t\t{\"string [%s]\", []interface{}{\"foo\"}, \"string [foo]\"},\n\t\t{\"int [%d]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int [%v]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int8 [%d]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int8 [%v]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int16 [%d]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int16 [%v]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int32 [%d]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int32 [%v]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int64 [%d]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"int64 [%v]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"uint [%d]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint [%v]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint8 [%d]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint8 [%v]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint16 [%d]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint16 [%v]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint32 [%d]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint32 [%v]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint64 [%d]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"uint64 [%v]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"float64 [%e]\", []interface{}{float64(64.1)}, \"float64 [6.41e+01]\"},\n\t\t{\"float64 [%E]\", []interface{}{float64(64.1)}, \"float64 [6.41E+01]\"},\n\t\t{\"float64 [%f]\", []interface{}{float64(64.1)}, \"float64 [64.100000]\"},\n\t\t{\"float64 [%F]\", []interface{}{float64(64.1)}, \"float64 [64.100000]\"},\n\t\t{\"float64 [%g]\", []interface{}{float64(64.1)}, \"float64 [64.1]\"},\n\t\t{\"float64 [%G]\", []interface{}{float64(64.1)}, \"float64 [64.1]\"},\n\t\t{\"bool [%t]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%v]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%t]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"bool [%v]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"no args\", nil, \"no args\"},\n\t\t{\"finish with %\", nil, \"finish with %\"},\n\t\t{\"stringer [%s]\", []interface{}{stringer{}}, \"stringer [I'm a stringer]\"},\n\t\t{\"â\", nil, \"â\"},\n\t\t{\"Hello, World! 😊\", nil, \"Hello, World! 😊\"},\n\t\t{\"unicode formatting: %s\", []interface{}{\"😊\"}, \"unicode formatting: 😊\"},\n\t\t{\"invalid hex [%x]\", []interface{}{\"invalid\"}, \"invalid hex [(unhandled)]\"},\n\t\t{\"rune as character [%c]\", []interface{}{rune('A')}, \"rune as character [A]\"},\n\t\t{\"int as character [%c]\", []interface{}{int('B')}, \"int as character [B]\"},\n\t\t{\"quoted string [%q]\", []interface{}{\"hello\"}, \"quoted string [\\\"hello\\\"]\"},\n\t\t{\"quoted string with escape [%q]\", []interface{}{\"\\thello\\nworld\\\\\"}, \"quoted string with escape [\\\"\\\\thello\\\\nworld\\\\\\\\\\\"]\"},\n\t\t{\"invalid quoted string [%q]\", []interface{}{123}, \"invalid quoted string [(unhandled)]\"},\n\t\t{\"type of bool [%T]\", []interface{}{true}, \"type of bool [bool]\"},\n\t\t{\"type of int [%T]\", []interface{}{123}, \"type of int [int]\"},\n\t\t{\"type of string [%T]\", []interface{}{\"hello\"}, \"type of string [string]\"},\n\t\t{\"type of []byte [%T]\", []interface{}{[]byte{1, 2, 3}}, \"type of []byte [[]byte]\"},\n\t\t{\"type of []rune [%T]\", []interface{}{[]rune{'a', 'b', 'c'}}, \"type of []rune [[]rune]\"},\n\t\t{\"type of unknown [%T]\", []interface{}{struct{}{}}, \"type of unknown [unknown]\"},\n\t\t// mismatch printing\n\t\t{\"%s\", []interface{}{nil}, \"%!s(\u003cnil\u003e)\"},\n\t\t{\"%s\", []interface{}{421}, \"%!s(int=421)\"},\n\t\t{\"%s\", []interface{}{\"z\"}, \"z\"},\n\t\t{\"%s\", []interface{}{tru}, \"%!s(bool=true)\"},\n\t\t{\"%s\", []interface{}{'z'}, \"%!s(int32=122)\"},\n\n\t\t{\"%c\", []interface{}{nil}, \"%!c(\u003cnil\u003e)\"},\n\t\t{\"%c\", []interface{}{421}, \"ƥ\"},\n\t\t{\"%c\", []interface{}{\"z\"}, \"%!c(string=z)\"},\n\t\t{\"%c\", []interface{}{tru}, \"%!c(bool=true)\"},\n\t\t{\"%c\", []interface{}{'z'}, \"z\"},\n\n\t\t{\"%d\", []interface{}{nil}, \"%!d(\u003cnil\u003e)\"},\n\t\t{\"%d\", []interface{}{421}, \"421\"},\n\t\t{\"%d\", []interface{}{\"z\"}, \"%!d(string=z)\"},\n\t\t{\"%d\", []interface{}{tru}, \"%!d(bool=true)\"},\n\t\t{\"%d\", []interface{}{'z'}, \"122\"},\n\n\t\t{\"%t\", []interface{}{nil}, \"%!t(\u003cnil\u003e)\"},\n\t\t{\"%t\", []interface{}{421}, \"%!t(int=421)\"},\n\t\t{\"%t\", []interface{}{\"z\"}, \"%!t(string=z)\"},\n\t\t{\"%t\", []interface{}{tru}, \"true\"},\n\t\t{\"%t\", []interface{}{'z'}, \"%!t(int32=122)\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tname := fmt.Sprintf(tc.format, tc.values...)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sprintf(tc.format, tc.values...)\n\t\t\tif got != tc.expectedOutput {\n\t\t\t\tt.Errorf(\"got %q, want %q.\", got, tc.expectedOutput)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestErrorf(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tformat string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"simple string\",\n\t\t\tformat: \"error: %s\",\n\t\t\targs: []interface{}{\"something went wrong\"},\n\t\t\texpected: \"error: something went wrong\",\n\t\t},\n\t\t{\n\t\t\tname: \"integer value\",\n\t\t\tformat: \"value: %d\",\n\t\t\targs: []interface{}{42},\n\t\t\texpected: \"value: 42\",\n\t\t},\n\t\t{\n\t\t\tname: \"boolean value\",\n\t\t\tformat: \"success: %t\",\n\t\t\targs: []interface{}{true},\n\t\t\texpected: \"success: true\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple values\",\n\t\t\tformat: \"error %d: %s (success=%t)\",\n\t\t\targs: []interface{}{123, \"failure occurred\", false},\n\t\t\texpected: \"error 123: failure occurred (success=false)\",\n\t\t},\n\t\t{\n\t\t\tname: \"literal percent\",\n\t\t\tformat: \"literal %%\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"literal %\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := Errorf(tt.format, tt.args...)\n\t\t\tif err.Error() != tt.expected {\n\t\t\t\tt.Errorf(\"Errorf(%q, %v) = %q, expected %q\", tt.format, tt.args, err.Error(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPrintErrors(t *testing.T) {\n\tgot := Sprintf(\"error: %s\", errors.New(\"can I be printed?\"))\n\texpectedOutput := \"error: can I be printed?\"\n\tif got != expectedOutput {\n\t\tt.Errorf(\"got %q, want %q.\", got, expectedOutput)\n\t}\n}\n\n// NOTE: Currently, there is no way to get the output of Println without using os.Stdout,\n// so we can only test that it doesn't panic and print arguments well.\nfunc TestPrintln(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"Empty args\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"String args\",\n\t\t\targs: []interface{}{\"Hello\", \"World\"},\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Integer args\",\n\t\t\targs: []interface{}{1, 2, 3},\n\t\t\texpected: \"1 2 3\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed args\",\n\t\t\targs: []interface{}{\"Hello\", 42, true, false, \"World\"},\n\t\t\texpected: \"Hello 42 true false World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unhandled type\",\n\t\t\targs: []interface{}{\"Hello\", 3.14, []int{1, 2, 3}},\n\t\t\texpected: \"Hello (unhandled) (unhandled)\",\n\t\t},\n\t}\n\n\t// TODO: replace os.Stdout with a buffer to capture the output and test it.\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tPrintln(tt.args...)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jxUiIiRieotoIgGd5LAqTSGe+AqOv8L9QWJIx6WtnjfH+qSoyrg9w9/d8fA+ORHvRoZiucJzATn2yjIH0PC9Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ufmt","path":"gno.land/p/demo/ufmt","files":[{"name":"ufmt.gno","body":"// Package ufmt provides utility functions for formatting strings, similarly\n// to the Go package \"fmt\", of which only a subset is currently supported\n// (hence the name µfmt - micro fmt).\npackage ufmt\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Println formats using the default formats for its operands and writes to standard output.\n// Println writes the given arguments to standard output with spaces between arguments\n// and a newline at the end.\nfunc Println(args ...interface{}) {\n\tvar strs []string\n\tfor _, arg := range args {\n\t\tswitch v := arg.(type) {\n\t\tcase string:\n\t\t\tstrs = append(strs, v)\n\t\tcase (interface{ String() string }):\n\t\t\tstrs = append(strs, v.String())\n\t\tcase error:\n\t\t\tstrs = append(strs, v.Error())\n\t\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t\tstrs = append(strs, Sprintf(\"%d\", v))\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tstrs = append(strs, \"true\")\n\t\t\t} else {\n\t\t\t\tstrs = append(strs, \"false\")\n\t\t\t}\n\t\tcase nil:\n\t\t\tstrs = append(strs, \"\u003cnil\u003e\")\n\t\tdefault:\n\t\t\tstrs = append(strs, \"(unhandled)\")\n\t\t}\n\t}\n\n\t// TODO: remove println after gno supports os.Stdout\n\tprintln(strings.Join(strs, \" \"))\n}\n\n// Sprintf offers similar functionality to Go's fmt.Sprintf, or the sprintf\n// equivalent available in many languages, including C/C++.\n// The number of args passed must exactly match the arguments consumed by the format.\n// A limited number of formatting verbs and features are currently supported,\n// hence the name ufmt (µfmt, micro-fmt).\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same about Error()\n//\t string.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%x: formats an integer value as a hexadecimal string.\n//\t Currently supports only uint8, []uint8, [32]uint8.\n//\t%c: formats a rune value as a string.\n//\t Currently supports only rune, int.\n//\t%q: formats a string value as a quoted string.\n//\t%T: formats the type of the value.\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Sprintf(format string, args ...interface{}) string {\n\t// we use runes to handle multi-byte characters\n\tsTor := []rune(format)\n\tend := len(sTor)\n\targNum := 0\n\targLen := len(args)\n\tbuf := \"\"\n\n\tfor i := 0; i \u003c end; {\n\t\tisLast := i == end-1\n\t\tc := string(sTor[i])\n\n\t\tif isLast || c != \"%\" {\n\t\t\t// we don't check for invalid format like a one ending with \"%\"\n\t\t\tbuf += string(c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tverb := string(sTor[i+1])\n\t\tif verb == \"%\" {\n\t\t\tbuf += \"%\"\n\t\t\ti += 2\n\t\t\tcontinue\n\t\t}\n\n\t\tif argNum \u003e argLen {\n\t\t\tpanic(\"invalid number of arguments to ufmt.Sprintf\")\n\t\t}\n\t\targ := args[argNum]\n\t\targNum++\n\n\t\tswitch verb {\n\t\tcase \"s\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"c\":\n\t\t\tswitch v := arg.(type) {\n\t\t\t// rune is int32. Exclude overflowing numeric types and dups (byte, int32):\n\t\t\tcase rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int16:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint16:\n\t\t\t\tbuf += string(v)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"d\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"t\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"x\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 16)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"q\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase string:\n\t\t\t\tbuf += strconv.Quote(v)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"T\":\n\t\t\tswitch arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tbuf += \"bool\"\n\t\t\tcase int:\n\t\t\t\tbuf += \"int\"\n\t\t\tcase int8:\n\t\t\t\tbuf += \"int8\"\n\t\t\tcase int16:\n\t\t\t\tbuf += \"int16\"\n\t\t\tcase int32:\n\t\t\t\tbuf += \"int32\"\n\t\t\tcase int64:\n\t\t\t\tbuf += \"int64\"\n\t\t\tcase uint:\n\t\t\t\tbuf += \"uint\"\n\t\t\tcase uint8:\n\t\t\t\tbuf += \"uint8\"\n\t\t\tcase uint16:\n\t\t\t\tbuf += \"uint16\"\n\t\t\tcase uint32:\n\t\t\t\tbuf += \"uint32\"\n\t\t\tcase uint64:\n\t\t\t\tbuf += \"uint64\"\n\t\t\tcase string:\n\t\t\t\tbuf += \"string\"\n\t\t\tcase []byte:\n\t\t\t\tbuf += \"[]byte\"\n\t\t\tcase []rune:\n\t\t\t\tbuf += \"[]rune\"\n\t\t\tdefault:\n\t\t\t\tbuf += \"unknown\"\n\t\t\t}\n\t\t// % handled before, as it does not consume an argument\n\t\tdefault:\n\t\t\tbuf += \"(unhandled verb: %\" + verb + \")\"\n\t\t}\n\n\t\ti += 2\n\t}\n\tif argNum \u003c argLen {\n\t\tpanic(\"too many arguments to ufmt.Sprintf\")\n\t}\n\treturn buf\n}\n\n// This function is used to mimic Go's fmt.Sprintf\n// specific behaviour of showing verb/type mismatches,\n// where for example:\n//\n//\tfmt.Sprintf(\"%d\", \"foo\") gives \"%!d(string=foo)\"\n//\n// Here:\n//\n//\tfallback(\"s\", 8) -\u003e \"%!s(int=8)\"\n//\tfallback(\"d\", nil) -\u003e \"%!d(\u003cnil\u003e)\", and so on.\nfunc fallback(verb string, arg interface{}) string {\n\tvar s string\n\tswitch v := arg.(type) {\n\tcase string:\n\t\ts = \"string=\" + v\n\tcase (interface{ String() string }):\n\t\ts = \"string=\" + v.String()\n\tcase error:\n\t\t// note: also \"string=\" in Go fmt\n\t\ts = \"string=\" + v.Error()\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t// note: rune, byte would be dups, being aliases\n\t\tif typename, e := typeToString(v); e != nil {\n\t\t\tpanic(\"should not happen\")\n\t\t} else {\n\t\t\ts = typename + \"=\" + Sprintf(\"%d\", v)\n\t\t}\n\tcase bool:\n\t\tif v {\n\t\t\ts = \"bool=true\"\n\t\t} else {\n\t\t\ts = \"bool=false\"\n\t\t}\n\tcase nil:\n\t\ts = \"\u003cnil\u003e\"\n\tdefault:\n\t\ts = \"(unhandled)\"\n\t}\n\treturn \"%!\" + verb + \"(\" + s + \")\"\n}\n\n// Get the name of the type of `v` as a string.\n// The recognized type of v is currently limited to native non-composite types.\n// An error is returned otherwise.\nfunc typeToString(v interface{}) (string, error) {\n\tswitch v.(type) {\n\tcase string:\n\t\treturn \"string\", nil\n\tcase int:\n\t\treturn \"int\", nil\n\tcase int8:\n\t\treturn \"int8\", nil\n\tcase int16:\n\t\treturn \"int16\", nil\n\tcase int32:\n\t\treturn \"int32\", nil\n\tcase int64:\n\t\treturn \"int64\", nil\n\tcase uint:\n\t\treturn \"uint\", nil\n\tcase uint8:\n\t\treturn \"uint8\", nil\n\tcase uint16:\n\t\treturn \"uint16\", nil\n\tcase uint32:\n\t\treturn \"uint32\", nil\n\tcase uint64:\n\t\treturn \"uint64\", nil\n\tcase float32:\n\t\treturn \"float32\", nil\n\tcase float64:\n\t\treturn \"float64\", nil\n\tcase bool:\n\t\treturn \"bool\", nil\n\tdefault:\n\t\treturn \"\", errors.New(\"(unsupported type)\")\n\t}\n}\n\n// errMsg implements the error interface.\ntype errMsg struct {\n\tmsg string\n}\n\n// Error defines the requirements of the error interface.\n// It functions similarly to Go's errors.New()\nfunc (e *errMsg) Error() string {\n\treturn e.msg\n}\n\n// Errorf is a function that mirrors the functionality of fmt.Errorf.\n//\n// It takes a format string and arguments to create a formatted string,\n// then sets this string as the 'msg' field of an errMsg struct and returns a pointer to this struct.\n//\n// This function operates in a similar manner to Go's fmt.Errorf,\n// providing a way to create formatted error messages.\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same for error.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn \u0026errMsg{Sprintf(format, args...)}\n}\n"},{"name":"ufmt_test.gno","body":"package ufmt\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype stringer struct{}\n\nfunc (stringer) String() string {\n\treturn \"I'm a stringer\"\n}\n\nfunc TestSprintf(t *testing.T) {\n\ttru := true\n\tcases := []struct {\n\t\tformat string\n\t\tvalues []interface{}\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello %s!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hi %%%s!\", []interface{}{\"worl%d\"}, \"hi %worl%d!\"},\n\t\t{\"%s %c %d %t\", []interface{}{\"foo\", 'α', 421, true}, \"foo α 421 true\"},\n\t\t{\"string [%s]\", []interface{}{\"foo\"}, \"string [foo]\"},\n\t\t{\"int [%d]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int8 [%d]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int16 [%d]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int32 [%d]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int64 [%d]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"uint [%d]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint8 [%d]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint16 [%d]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint32 [%d]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint64 [%d]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"bool [%t]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%t]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"no args\", nil, \"no args\"},\n\t\t{\"finish with %\", nil, \"finish with %\"},\n\t\t{\"stringer [%s]\", []interface{}{stringer{}}, \"stringer [I'm a stringer]\"},\n\t\t{\"â\", nil, \"â\"},\n\t\t{\"Hello, World! 😊\", nil, \"Hello, World! 😊\"},\n\t\t{\"unicode formatting: %s\", []interface{}{\"😊\"}, \"unicode formatting: 😊\"},\n\t\t{\"invalid hex [%x]\", []interface{}{\"invalid\"}, \"invalid hex [(unhandled)]\"},\n\t\t{\"rune as character [%c]\", []interface{}{rune('A')}, \"rune as character [A]\"},\n\t\t{\"int as character [%c]\", []interface{}{int('B')}, \"int as character [B]\"},\n\t\t{\"quoted string [%q]\", []interface{}{\"hello\"}, \"quoted string [\\\"hello\\\"]\"},\n\t\t{\"quoted string with escape [%q]\", []interface{}{\"\\thello\\nworld\\\\\"}, \"quoted string with escape [\\\"\\\\thello\\\\nworld\\\\\\\\\\\"]\"},\n\t\t{\"invalid quoted string [%q]\", []interface{}{123}, \"invalid quoted string [(unhandled)]\"},\n\t\t{\"type of bool [%T]\", []interface{}{true}, \"type of bool [bool]\"},\n\t\t{\"type of int [%T]\", []interface{}{123}, \"type of int [int]\"},\n\t\t{\"type of string [%T]\", []interface{}{\"hello\"}, \"type of string [string]\"},\n\t\t{\"type of []byte [%T]\", []interface{}{[]byte{1, 2, 3}}, \"type of []byte [[]byte]\"},\n\t\t{\"type of []rune [%T]\", []interface{}{[]rune{'a', 'b', 'c'}}, \"type of []rune [[]rune]\"},\n\t\t{\"type of unknown [%T]\", []interface{}{struct{}{}}, \"type of unknown [unknown]\"},\n\t\t// mismatch printing\n\t\t{\"%s\", []interface{}{nil}, \"%!s(\u003cnil\u003e)\"},\n\t\t{\"%s\", []interface{}{421}, \"%!s(int=421)\"},\n\t\t{\"%s\", []interface{}{\"z\"}, \"z\"},\n\t\t{\"%s\", []interface{}{tru}, \"%!s(bool=true)\"},\n\t\t{\"%s\", []interface{}{'z'}, \"%!s(int32=122)\"},\n\n\t\t{\"%c\", []interface{}{nil}, \"%!c(\u003cnil\u003e)\"},\n\t\t{\"%c\", []interface{}{421}, \"ƥ\"},\n\t\t{\"%c\", []interface{}{\"z\"}, \"%!c(string=z)\"},\n\t\t{\"%c\", []interface{}{tru}, \"%!c(bool=true)\"},\n\t\t{\"%c\", []interface{}{'z'}, \"z\"},\n\n\t\t{\"%d\", []interface{}{nil}, \"%!d(\u003cnil\u003e)\"},\n\t\t{\"%d\", []interface{}{421}, \"421\"},\n\t\t{\"%d\", []interface{}{\"z\"}, \"%!d(string=z)\"},\n\t\t{\"%d\", []interface{}{tru}, \"%!d(bool=true)\"},\n\t\t{\"%d\", []interface{}{'z'}, \"122\"},\n\n\t\t{\"%t\", []interface{}{nil}, \"%!t(\u003cnil\u003e)\"},\n\t\t{\"%t\", []interface{}{421}, \"%!t(int=421)\"},\n\t\t{\"%t\", []interface{}{\"z\"}, \"%!t(string=z)\"},\n\t\t{\"%t\", []interface{}{tru}, \"true\"},\n\t\t{\"%t\", []interface{}{'z'}, \"%!t(int32=122)\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tname := fmt.Sprintf(tc.format, tc.values...)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sprintf(tc.format, tc.values...)\n\t\t\tif got != tc.expectedOutput {\n\t\t\t\tt.Errorf(\"got %q, want %q.\", got, tc.expectedOutput)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestErrorf(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tformat string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"simple string\",\n\t\t\tformat: \"error: %s\",\n\t\t\targs: []interface{}{\"something went wrong\"},\n\t\t\texpected: \"error: something went wrong\",\n\t\t},\n\t\t{\n\t\t\tname: \"integer value\",\n\t\t\tformat: \"value: %d\",\n\t\t\targs: []interface{}{42},\n\t\t\texpected: \"value: 42\",\n\t\t},\n\t\t{\n\t\t\tname: \"boolean value\",\n\t\t\tformat: \"success: %t\",\n\t\t\targs: []interface{}{true},\n\t\t\texpected: \"success: true\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple values\",\n\t\t\tformat: \"error %d: %s (success=%t)\",\n\t\t\targs: []interface{}{123, \"failure occurred\", false},\n\t\t\texpected: \"error 123: failure occurred (success=false)\",\n\t\t},\n\t\t{\n\t\t\tname: \"literal percent\",\n\t\t\tformat: \"literal %%\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"literal %\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := Errorf(tt.format, tt.args...)\n\t\t\tif err.Error() != tt.expected {\n\t\t\t\tt.Errorf(\"Errorf(%q, %v) = %q, expected %q\", tt.format, tt.args, err.Error(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPrintErrors(t *testing.T) {\n\tgot := Sprintf(\"error: %s\", errors.New(\"can I be printed?\"))\n\texpectedOutput := \"error: can I be printed?\"\n\tif got != expectedOutput {\n\t\tt.Errorf(\"got %q, want %q.\", got, expectedOutput)\n\t}\n}\n\n// NOTE: Currently, there is no way to get the output of Println without using os.Stdout,\n// so we can only test that it doesn't panic and print arguments well.\nfunc TestPrintln(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"Empty args\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"String args\",\n\t\t\targs: []interface{}{\"Hello\", \"World\"},\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Integer args\",\n\t\t\targs: []interface{}{1, 2, 3},\n\t\t\texpected: \"1 2 3\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed args\",\n\t\t\targs: []interface{}{\"Hello\", 42, true, false, \"World\"},\n\t\t\texpected: \"Hello 42 true false World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unhandled type\",\n\t\t\targs: []interface{}{\"Hello\", 3.14, []int{1, 2, 3}},\n\t\t\texpected: \"Hello (unhandled) (unhandled)\",\n\t\t},\n\t}\n\n\t// TODO: replace os.Stdout with a buffer to capture the output and test it.\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tPrintln(tt.args...)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GgPonVxT1WGA5hBAgMDzN4MLuiz8s/yOYLAufVbuCz8eYoOCmMA1WMz4ySjxpkFQnQ0wtK5Ho+rZICaC8tNmAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ufmt","path":"gno.land/p/demo/ufmt","files":[{"name":"ufmt.gno","body":"// Package ufmt provides utility functions for formatting strings, similarly\n// to the Go package \"fmt\", of which only a subset is currently supported\n// (hence the name µfmt - micro fmt).\npackage ufmt\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Println formats using the default formats for its operands and writes to standard output.\n// Println writes the given arguments to standard output with spaces between arguments\n// and a newline at the end.\nfunc Println(args ...interface{}) {\n\tvar strs []string\n\tfor _, arg := range args {\n\t\tswitch v := arg.(type) {\n\t\tcase string:\n\t\t\tstrs = append(strs, v)\n\t\tcase (interface{ String() string }):\n\t\t\tstrs = append(strs, v.String())\n\t\tcase error:\n\t\t\tstrs = append(strs, v.Error())\n\t\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t\tstrs = append(strs, Sprintf(\"%d\", v))\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tstrs = append(strs, \"true\")\n\t\t\t} else {\n\t\t\t\tstrs = append(strs, \"false\")\n\t\t\t}\n\t\tcase nil:\n\t\t\tstrs = append(strs, \"\u003cnil\u003e\")\n\t\tdefault:\n\t\t\tstrs = append(strs, \"(unhandled)\")\n\t\t}\n\t}\n\n\t// TODO: remove println after gno supports os.Stdout\n\tprintln(strings.Join(strs, \" \"))\n}\n\n// Sprintf offers similar functionality to Go's fmt.Sprintf, or the sprintf\n// equivalent available in many languages, including C/C++.\n// The number of args passed must exactly match the arguments consumed by the format.\n// A limited number of formatting verbs and features are currently supported,\n// hence the name ufmt (µfmt, micro-fmt).\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same about Error()\n//\t string.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%x: formats an integer value as a hexadecimal string.\n//\t Currently supports only uint8, []uint8, [32]uint8.\n//\t%c: formats a rune value as a string.\n//\t Currently supports only rune, int.\n//\t%q: formats a string value as a quoted string.\n//\t%T: formats the type of the value.\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Sprintf(format string, args ...interface{}) string {\n\t// we use runes to handle multi-byte characters\n\tsTor := []rune(format)\n\tend := len(sTor)\n\targNum := 0\n\targLen := len(args)\n\tbuf := \"\"\n\n\tfor i := 0; i \u003c end; {\n\t\tisLast := i == end-1\n\t\tc := string(sTor[i])\n\n\t\tif isLast || c != \"%\" {\n\t\t\t// we don't check for invalid format like a one ending with \"%\"\n\t\t\tbuf += string(c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tverb := string(sTor[i+1])\n\t\tif verb == \"%\" {\n\t\t\tbuf += \"%\"\n\t\t\ti += 2\n\t\t\tcontinue\n\t\t}\n\n\t\tif argNum \u003e argLen {\n\t\t\tpanic(\"invalid number of arguments to ufmt.Sprintf\")\n\t\t}\n\t\targ := args[argNum]\n\t\targNum++\n\n\t\tswitch verb {\n\t\tcase \"s\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"c\":\n\t\t\tswitch v := arg.(type) {\n\t\t\t// rune is int32. Exclude overflowing numeric types and dups (byte, int32):\n\t\t\tcase rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int16:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint16:\n\t\t\t\tbuf += string(v)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"d\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"t\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"x\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 16)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"q\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase string:\n\t\t\t\tbuf += strconv.Quote(v)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"T\":\n\t\t\tswitch arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tbuf += \"bool\"\n\t\t\tcase int:\n\t\t\t\tbuf += \"int\"\n\t\t\tcase int8:\n\t\t\t\tbuf += \"int8\"\n\t\t\tcase int16:\n\t\t\t\tbuf += \"int16\"\n\t\t\tcase int32:\n\t\t\t\tbuf += \"int32\"\n\t\t\tcase int64:\n\t\t\t\tbuf += \"int64\"\n\t\t\tcase uint:\n\t\t\t\tbuf += \"uint\"\n\t\t\tcase uint8:\n\t\t\t\tbuf += \"uint8\"\n\t\t\tcase uint16:\n\t\t\t\tbuf += \"uint16\"\n\t\t\tcase uint32:\n\t\t\t\tbuf += \"uint32\"\n\t\t\tcase uint64:\n\t\t\t\tbuf += \"uint64\"\n\t\t\tcase string:\n\t\t\t\tbuf += \"string\"\n\t\t\tcase []byte:\n\t\t\t\tbuf += \"[]byte\"\n\t\t\tcase []rune:\n\t\t\t\tbuf += \"[]rune\"\n\t\t\tdefault:\n\t\t\t\tbuf += \"unknown\"\n\t\t\t}\n\t\t// % handled before, as it does not consume an argument\n\t\tdefault:\n\t\t\tbuf += \"(unhandled verb: %\" + verb + \")\"\n\t\t}\n\n\t\ti += 2\n\t}\n\tif argNum \u003c argLen {\n\t\tpanic(\"too many arguments to ufmt.Sprintf\")\n\t}\n\treturn buf\n}\n\n// This function is used to mimic Go's fmt.Sprintf\n// specific behaviour of showing verb/type mismatches,\n// where for example:\n//\n//\tfmt.Sprintf(\"%d\", \"foo\") gives \"%!d(string=foo)\"\n//\n// Here:\n//\n//\tfallback(\"s\", 8) -\u003e \"%!s(int=8)\"\n//\tfallback(\"d\", nil) -\u003e \"%!d(\u003cnil\u003e)\", and so on.\nfunc fallback(verb string, arg interface{}) string {\n\tvar s string\n\tswitch v := arg.(type) {\n\tcase string:\n\t\ts = \"string=\" + v\n\tcase (interface{ String() string }):\n\t\ts = \"string=\" + v.String()\n\tcase error:\n\t\t// note: also \"string=\" in Go fmt\n\t\ts = \"string=\" + v.Error()\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t// note: rune, byte would be dups, being aliases\n\t\tif typename, e := typeToString(v); e != nil {\n\t\t\tpanic(\"should not happen\")\n\t\t} else {\n\t\t\ts = typename + \"=\" + Sprintf(\"%d\", v)\n\t\t}\n\tcase bool:\n\t\tif v {\n\t\t\ts = \"bool=true\"\n\t\t} else {\n\t\t\ts = \"bool=false\"\n\t\t}\n\tcase nil:\n\t\ts = \"\u003cnil\u003e\"\n\tdefault:\n\t\ts = \"(unhandled)\"\n\t}\n\treturn \"%!\" + verb + \"(\" + s + \")\"\n}\n\n// Get the name of the type of `v` as a string.\n// The recognized type of v is currently limited to native non-composite types.\n// An error is returned otherwise.\nfunc typeToString(v interface{}) (string, error) {\n\tswitch v.(type) {\n\tcase string:\n\t\treturn \"string\", nil\n\tcase int:\n\t\treturn \"int\", nil\n\tcase int8:\n\t\treturn \"int8\", nil\n\tcase int16:\n\t\treturn \"int16\", nil\n\tcase int32:\n\t\treturn \"int32\", nil\n\tcase int64:\n\t\treturn \"int64\", nil\n\tcase uint:\n\t\treturn \"uint\", nil\n\tcase uint8:\n\t\treturn \"uint8\", nil\n\tcase uint16:\n\t\treturn \"uint16\", nil\n\tcase uint32:\n\t\treturn \"uint32\", nil\n\tcase uint64:\n\t\treturn \"uint64\", nil\n\tcase float32:\n\t\treturn \"float32\", nil\n\tcase float64:\n\t\treturn \"float64\", nil\n\tcase bool:\n\t\treturn \"bool\", nil\n\tdefault:\n\t\treturn \"\", errors.New(\"(unsupported type)\")\n\t}\n}\n\n// errMsg implements the error interface.\ntype errMsg struct {\n\tmsg string\n}\n\n// Error defines the requirements of the error interface.\n// It functions similarly to Go's errors.New()\nfunc (e *errMsg) Error() string {\n\treturn e.msg\n}\n\n// Errorf is a function that mirrors the functionality of fmt.Errorf.\n//\n// It takes a format string and arguments to create a formatted string,\n// then sets this string as the 'msg' field of an errMsg struct and returns a pointer to this struct.\n//\n// This function operates in a similar manner to Go's fmt.Errorf,\n// providing a way to create formatted error messages.\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same for error.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn \u0026errMsg{Sprintf(format, args...)}\n}\n"},{"name":"ufmt_test.gno","body":"package ufmt\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype stringer struct{}\n\nfunc (stringer) String() string {\n\treturn \"I'm a stringer\"\n}\n\nfunc TestSprintf(t *testing.T) {\n\ttru := true\n\tcases := []struct {\n\t\tformat string\n\t\tvalues []interface{}\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello %s!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hi %%%s!\", []interface{}{\"worl%d\"}, \"hi %worl%d!\"},\n\t\t{\"%s %c %d %t\", []interface{}{\"foo\", 'α', 421, true}, \"foo α 421 true\"},\n\t\t{\"string [%s]\", []interface{}{\"foo\"}, \"string [foo]\"},\n\t\t{\"int [%d]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int8 [%d]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int16 [%d]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int32 [%d]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int64 [%d]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"uint [%d]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint8 [%d]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint16 [%d]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint32 [%d]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint64 [%d]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"bool [%t]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%t]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"no args\", nil, \"no args\"},\n\t\t{\"finish with %\", nil, \"finish with %\"},\n\t\t{\"stringer [%s]\", []interface{}{stringer{}}, \"stringer [I'm a stringer]\"},\n\t\t{\"â\", nil, \"â\"},\n\t\t{\"Hello, World! 😊\", nil, \"Hello, World! 😊\"},\n\t\t{\"unicode formatting: %s\", []interface{}{\"😊\"}, \"unicode formatting: 😊\"},\n\t\t{\"invalid hex [%x]\", []interface{}{\"invalid\"}, \"invalid hex [(unhandled)]\"},\n\t\t{\"rune as character [%c]\", []interface{}{rune('A')}, \"rune as character [A]\"},\n\t\t{\"int as character [%c]\", []interface{}{int('B')}, \"int as character [B]\"},\n\t\t{\"quoted string [%q]\", []interface{}{\"hello\"}, \"quoted string [\\\"hello\\\"]\"},\n\t\t{\"quoted string with escape [%q]\", []interface{}{\"\\thello\\nworld\\\\\"}, \"quoted string with escape [\\\"\\\\thello\\\\nworld\\\\\\\\\\\"]\"},\n\t\t{\"invalid quoted string [%q]\", []interface{}{123}, \"invalid quoted string [(unhandled)]\"},\n\t\t{\"type of bool [%T]\", []interface{}{true}, \"type of bool [bool]\"},\n\t\t{\"type of int [%T]\", []interface{}{123}, \"type of int [int]\"},\n\t\t{\"type of string [%T]\", []interface{}{\"hello\"}, \"type of string [string]\"},\n\t\t{\"type of []byte [%T]\", []interface{}{[]byte{1, 2, 3}}, \"type of []byte [[]byte]\"},\n\t\t{\"type of []rune [%T]\", []interface{}{[]rune{'a', 'b', 'c'}}, \"type of []rune [[]rune]\"},\n\t\t{\"type of unknown [%T]\", []interface{}{struct{}{}}, \"type of unknown [unknown]\"},\n\t\t// mismatch printing\n\t\t{\"%s\", []interface{}{nil}, \"%!s(\u003cnil\u003e)\"},\n\t\t{\"%s\", []interface{}{421}, \"%!s(int=421)\"},\n\t\t{\"%s\", []interface{}{\"z\"}, \"z\"},\n\t\t{\"%s\", []interface{}{tru}, \"%!s(bool=true)\"},\n\t\t{\"%s\", []interface{}{'z'}, \"%!s(int32=122)\"},\n\n\t\t{\"%c\", []interface{}{nil}, \"%!c(\u003cnil\u003e)\"},\n\t\t{\"%c\", []interface{}{421}, \"ƥ\"},\n\t\t{\"%c\", []interface{}{\"z\"}, \"%!c(string=z)\"},\n\t\t{\"%c\", []interface{}{tru}, \"%!c(bool=true)\"},\n\t\t{\"%c\", []interface{}{'z'}, \"z\"},\n\n\t\t{\"%d\", []interface{}{nil}, \"%!d(\u003cnil\u003e)\"},\n\t\t{\"%d\", []interface{}{421}, \"421\"},\n\t\t{\"%d\", []interface{}{\"z\"}, \"%!d(string=z)\"},\n\t\t{\"%d\", []interface{}{tru}, \"%!d(bool=true)\"},\n\t\t{\"%d\", []interface{}{'z'}, \"122\"},\n\n\t\t{\"%t\", []interface{}{nil}, \"%!t(\u003cnil\u003e)\"},\n\t\t{\"%t\", []interface{}{421}, \"%!t(int=421)\"},\n\t\t{\"%t\", []interface{}{\"z\"}, \"%!t(string=z)\"},\n\t\t{\"%t\", []interface{}{tru}, \"true\"},\n\t\t{\"%t\", []interface{}{'z'}, \"%!t(int32=122)\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tname := fmt.Sprintf(tc.format, tc.values...)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sprintf(tc.format, tc.values...)\n\t\t\tif got != tc.expectedOutput {\n\t\t\t\tt.Errorf(\"got %q, want %q.\", got, tc.expectedOutput)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestErrorf(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tformat string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"simple string\",\n\t\t\tformat: \"error: %s\",\n\t\t\targs: []interface{}{\"something went wrong\"},\n\t\t\texpected: \"error: something went wrong\",\n\t\t},\n\t\t{\n\t\t\tname: \"integer value\",\n\t\t\tformat: \"value: %d\",\n\t\t\targs: []interface{}{42},\n\t\t\texpected: \"value: 42\",\n\t\t},\n\t\t{\n\t\t\tname: \"boolean value\",\n\t\t\tformat: \"success: %t\",\n\t\t\targs: []interface{}{true},\n\t\t\texpected: \"success: true\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple values\",\n\t\t\tformat: \"error %d: %s (success=%t)\",\n\t\t\targs: []interface{}{123, \"failure occurred\", false},\n\t\t\texpected: \"error 123: failure occurred (success=false)\",\n\t\t},\n\t\t{\n\t\t\tname: \"literal percent\",\n\t\t\tformat: \"literal %%\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"literal %\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := Errorf(tt.format, tt.args...)\n\t\t\tif err.Error() != tt.expected {\n\t\t\t\tt.Errorf(\"Errorf(%q, %v) = %q, expected %q\", tt.format, tt.args, err.Error(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPrintErrors(t *testing.T) {\n\tgot := Sprintf(\"error: %s\", errors.New(\"can I be printed?\"))\n\texpectedOutput := \"error: can I be printed?\"\n\tif got != expectedOutput {\n\t\tt.Errorf(\"got %q, want %q.\", got, expectedOutput)\n\t}\n}\n\n// NOTE: Currently, there is no way to get the output of Println without using os.Stdout,\n// so we can only test that it doesn't panic and print arguments well.\nfunc TestPrintln(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"Empty args\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"String args\",\n\t\t\targs: []interface{}{\"Hello\", \"World\"},\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Integer args\",\n\t\t\targs: []interface{}{1, 2, 3},\n\t\t\texpected: \"1 2 3\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed args\",\n\t\t\targs: []interface{}{\"Hello\", 42, true, false, \"World\"},\n\t\t\texpected: \"Hello 42 true false World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unhandled type\",\n\t\t\targs: []interface{}{\"Hello\", 3.14, []int{1, 2, 3}},\n\t\t\texpected: \"Hello (unhandled) (unhandled)\",\n\t\t},\n\t}\n\n\t// TODO: replace os.Stdout with a buffer to capture the output and test it.\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tPrintln(tt.args...)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GgPonVxT1WGA5hBAgMDzN4MLuiz8s/yOYLAufVbuCz8eYoOCmMA1WMz4ySjxpkFQnQ0wtK5Ho+rZICaC8tNmAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ufmt","path":"gno.land/p/demo/ufmt","files":[{"name":"ufmt.gno","body":"// Package ufmt provides utility functions for formatting strings, similarly\n// to the Go package \"fmt\", of which only a subset is currently supported\n// (hence the name µfmt - micro fmt).\npackage ufmt\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Println formats using the default formats for its operands and writes to standard output.\n// Println writes the given arguments to standard output with spaces between arguments\n// and a newline at the end.\nfunc Println(args ...interface{}) {\n\tvar strs []string\n\tfor _, arg := range args {\n\t\tswitch v := arg.(type) {\n\t\tcase string:\n\t\t\tstrs = append(strs, v)\n\t\tcase (interface{ String() string }):\n\t\t\tstrs = append(strs, v.String())\n\t\tcase error:\n\t\t\tstrs = append(strs, v.Error())\n\t\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t\tstrs = append(strs, Sprintf(\"%d\", v))\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tstrs = append(strs, \"true\")\n\t\t\t} else {\n\t\t\t\tstrs = append(strs, \"false\")\n\t\t\t}\n\t\tcase nil:\n\t\t\tstrs = append(strs, \"\u003cnil\u003e\")\n\t\tdefault:\n\t\t\tstrs = append(strs, \"(unhandled)\")\n\t\t}\n\t}\n\n\t// TODO: remove println after gno supports os.Stdout\n\tprintln(strings.Join(strs, \" \"))\n}\n\n// Sprintf offers similar functionality to Go's fmt.Sprintf, or the sprintf\n// equivalent available in many languages, including C/C++.\n// The number of args passed must exactly match the arguments consumed by the format.\n// A limited number of formatting verbs and features are currently supported,\n// hence the name ufmt (µfmt, micro-fmt).\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same about Error()\n//\t string.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%x: formats an integer value as a hexadecimal string.\n//\t Currently supports only uint8, []uint8, [32]uint8.\n//\t%c: formats a rune value as a string.\n//\t Currently supports only rune, int.\n//\t%q: formats a string value as a quoted string.\n//\t%T: formats the type of the value.\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Sprintf(format string, args ...interface{}) string {\n\t// we use runes to handle multi-byte characters\n\tsTor := []rune(format)\n\tend := len(sTor)\n\targNum := 0\n\targLen := len(args)\n\tbuf := \"\"\n\n\tfor i := 0; i \u003c end; {\n\t\tisLast := i == end-1\n\t\tc := string(sTor[i])\n\n\t\tif isLast || c != \"%\" {\n\t\t\t// we don't check for invalid format like a one ending with \"%\"\n\t\t\tbuf += string(c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tverb := string(sTor[i+1])\n\t\tif verb == \"%\" {\n\t\t\tbuf += \"%\"\n\t\t\ti += 2\n\t\t\tcontinue\n\t\t}\n\n\t\tif argNum \u003e argLen {\n\t\t\tpanic(\"invalid number of arguments to ufmt.Sprintf\")\n\t\t}\n\t\targ := args[argNum]\n\t\targNum++\n\n\t\tswitch verb {\n\t\tcase \"s\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"c\":\n\t\t\tswitch v := arg.(type) {\n\t\t\t// rune is int32. Exclude overflowing numeric types and dups (byte, int32):\n\t\t\tcase rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int16:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint16:\n\t\t\t\tbuf += string(v)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"d\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"t\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"x\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 16)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"q\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase string:\n\t\t\t\tbuf += strconv.Quote(v)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"T\":\n\t\t\tswitch arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tbuf += \"bool\"\n\t\t\tcase int:\n\t\t\t\tbuf += \"int\"\n\t\t\tcase int8:\n\t\t\t\tbuf += \"int8\"\n\t\t\tcase int16:\n\t\t\t\tbuf += \"int16\"\n\t\t\tcase int32:\n\t\t\t\tbuf += \"int32\"\n\t\t\tcase int64:\n\t\t\t\tbuf += \"int64\"\n\t\t\tcase uint:\n\t\t\t\tbuf += \"uint\"\n\t\t\tcase uint8:\n\t\t\t\tbuf += \"uint8\"\n\t\t\tcase uint16:\n\t\t\t\tbuf += \"uint16\"\n\t\t\tcase uint32:\n\t\t\t\tbuf += \"uint32\"\n\t\t\tcase uint64:\n\t\t\t\tbuf += \"uint64\"\n\t\t\tcase string:\n\t\t\t\tbuf += \"string\"\n\t\t\tcase []byte:\n\t\t\t\tbuf += \"[]byte\"\n\t\t\tcase []rune:\n\t\t\t\tbuf += \"[]rune\"\n\t\t\tdefault:\n\t\t\t\tbuf += \"unknown\"\n\t\t\t}\n\t\t// % handled before, as it does not consume an argument\n\t\tdefault:\n\t\t\tbuf += \"(unhandled verb: %\" + verb + \")\"\n\t\t}\n\n\t\ti += 2\n\t}\n\tif argNum \u003c argLen {\n\t\tpanic(\"too many arguments to ufmt.Sprintf\")\n\t}\n\treturn buf\n}\n\n// This function is used to mimic Go's fmt.Sprintf\n// specific behaviour of showing verb/type mismatches,\n// where for example:\n//\n//\tfmt.Sprintf(\"%d\", \"foo\") gives \"%!d(string=foo)\"\n//\n// Here:\n//\n//\tfallback(\"s\", 8) -\u003e \"%!s(int=8)\"\n//\tfallback(\"d\", nil) -\u003e \"%!d(\u003cnil\u003e)\", and so on.\nfunc fallback(verb string, arg interface{}) string {\n\tvar s string\n\tswitch v := arg.(type) {\n\tcase string:\n\t\ts = \"string=\" + v\n\tcase (interface{ String() string }):\n\t\ts = \"string=\" + v.String()\n\tcase error:\n\t\t// note: also \"string=\" in Go fmt\n\t\ts = \"string=\" + v.Error()\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t// note: rune, byte would be dups, being aliases\n\t\tif typename, e := typeToString(v); e != nil {\n\t\t\tpanic(\"should not happen\")\n\t\t} else {\n\t\t\ts = typename + \"=\" + Sprintf(\"%d\", v)\n\t\t}\n\tcase bool:\n\t\tif v {\n\t\t\ts = \"bool=true\"\n\t\t} else {\n\t\t\ts = \"bool=false\"\n\t\t}\n\tcase nil:\n\t\ts = \"\u003cnil\u003e\"\n\tdefault:\n\t\ts = \"(unhandled)\"\n\t}\n\treturn \"%!\" + verb + \"(\" + s + \")\"\n}\n\n// Get the name of the type of `v` as a string.\n// The recognized type of v is currently limited to native non-composite types.\n// An error is returned otherwise.\nfunc typeToString(v interface{}) (string, error) {\n\tswitch v.(type) {\n\tcase string:\n\t\treturn \"string\", nil\n\tcase int:\n\t\treturn \"int\", nil\n\tcase int8:\n\t\treturn \"int8\", nil\n\tcase int16:\n\t\treturn \"int16\", nil\n\tcase int32:\n\t\treturn \"int32\", nil\n\tcase int64:\n\t\treturn \"int64\", nil\n\tcase uint:\n\t\treturn \"uint\", nil\n\tcase uint8:\n\t\treturn \"uint8\", nil\n\tcase uint16:\n\t\treturn \"uint16\", nil\n\tcase uint32:\n\t\treturn \"uint32\", nil\n\tcase uint64:\n\t\treturn \"uint64\", nil\n\tcase float32:\n\t\treturn \"float32\", nil\n\tcase float64:\n\t\treturn \"float64\", nil\n\tcase bool:\n\t\treturn \"bool\", nil\n\tdefault:\n\t\treturn \"\", errors.New(\"(unsupported type)\")\n\t}\n}\n\n// errMsg implements the error interface.\ntype errMsg struct {\n\tmsg string\n}\n\n// Error defines the requirements of the error interface.\n// It functions similarly to Go's errors.New()\nfunc (e *errMsg) Error() string {\n\treturn e.msg\n}\n\n// Errorf is a function that mirrors the functionality of fmt.Errorf.\n//\n// It takes a format string and arguments to create a formatted string,\n// then sets this string as the 'msg' field of an errMsg struct and returns a pointer to this struct.\n//\n// This function operates in a similar manner to Go's fmt.Errorf,\n// providing a way to create formatted error messages.\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same for error.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn \u0026errMsg{Sprintf(format, args...)}\n}\n"},{"name":"ufmt_test.gno","body":"package ufmt\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype stringer struct{}\n\nfunc (stringer) String() string {\n\treturn \"I'm a stringer\"\n}\n\nfunc TestSprintf(t *testing.T) {\n\ttru := true\n\tcases := []struct {\n\t\tformat string\n\t\tvalues []interface{}\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello %s!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hi %%%s!\", []interface{}{\"worl%d\"}, \"hi %worl%d!\"},\n\t\t{\"%s %c %d %t\", []interface{}{\"foo\", 'α', 421, true}, \"foo α 421 true\"},\n\t\t{\"string [%s]\", []interface{}{\"foo\"}, \"string [foo]\"},\n\t\t{\"int [%d]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int8 [%d]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int16 [%d]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int32 [%d]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int64 [%d]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"uint [%d]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint8 [%d]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint16 [%d]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint32 [%d]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint64 [%d]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"bool [%t]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%t]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"no args\", nil, \"no args\"},\n\t\t{\"finish with %\", nil, \"finish with %\"},\n\t\t{\"stringer [%s]\", []interface{}{stringer{}}, \"stringer [I'm a stringer]\"},\n\t\t{\"â\", nil, \"â\"},\n\t\t{\"Hello, World! 😊\", nil, \"Hello, World! 😊\"},\n\t\t{\"unicode formatting: %s\", []interface{}{\"😊\"}, \"unicode formatting: 😊\"},\n\t\t{\"invalid hex [%x]\", []interface{}{\"invalid\"}, \"invalid hex [(unhandled)]\"},\n\t\t{\"rune as character [%c]\", []interface{}{rune('A')}, \"rune as character [A]\"},\n\t\t{\"int as character [%c]\", []interface{}{int('B')}, \"int as character [B]\"},\n\t\t{\"quoted string [%q]\", []interface{}{\"hello\"}, \"quoted string [\\\"hello\\\"]\"},\n\t\t{\"quoted string with escape [%q]\", []interface{}{\"\\thello\\nworld\\\\\"}, \"quoted string with escape [\\\"\\\\thello\\\\nworld\\\\\\\\\\\"]\"},\n\t\t{\"invalid quoted string [%q]\", []interface{}{123}, \"invalid quoted string [(unhandled)]\"},\n\t\t{\"type of bool [%T]\", []interface{}{true}, \"type of bool [bool]\"},\n\t\t{\"type of int [%T]\", []interface{}{123}, \"type of int [int]\"},\n\t\t{\"type of string [%T]\", []interface{}{\"hello\"}, \"type of string [string]\"},\n\t\t{\"type of []byte [%T]\", []interface{}{[]byte{1, 2, 3}}, \"type of []byte [[]byte]\"},\n\t\t{\"type of []rune [%T]\", []interface{}{[]rune{'a', 'b', 'c'}}, \"type of []rune [[]rune]\"},\n\t\t{\"type of unknown [%T]\", []interface{}{struct{}{}}, \"type of unknown [unknown]\"},\n\t\t// mismatch printing\n\t\t{\"%s\", []interface{}{nil}, \"%!s(\u003cnil\u003e)\"},\n\t\t{\"%s\", []interface{}{421}, \"%!s(int=421)\"},\n\t\t{\"%s\", []interface{}{\"z\"}, \"z\"},\n\t\t{\"%s\", []interface{}{tru}, \"%!s(bool=true)\"},\n\t\t{\"%s\", []interface{}{'z'}, \"%!s(int32=122)\"},\n\n\t\t{\"%c\", []interface{}{nil}, \"%!c(\u003cnil\u003e)\"},\n\t\t{\"%c\", []interface{}{421}, \"ƥ\"},\n\t\t{\"%c\", []interface{}{\"z\"}, \"%!c(string=z)\"},\n\t\t{\"%c\", []interface{}{tru}, \"%!c(bool=true)\"},\n\t\t{\"%c\", []interface{}{'z'}, \"z\"},\n\n\t\t{\"%d\", []interface{}{nil}, \"%!d(\u003cnil\u003e)\"},\n\t\t{\"%d\", []interface{}{421}, \"421\"},\n\t\t{\"%d\", []interface{}{\"z\"}, \"%!d(string=z)\"},\n\t\t{\"%d\", []interface{}{tru}, \"%!d(bool=true)\"},\n\t\t{\"%d\", []interface{}{'z'}, \"122\"},\n\n\t\t{\"%t\", []interface{}{nil}, \"%!t(\u003cnil\u003e)\"},\n\t\t{\"%t\", []interface{}{421}, \"%!t(int=421)\"},\n\t\t{\"%t\", []interface{}{\"z\"}, \"%!t(string=z)\"},\n\t\t{\"%t\", []interface{}{tru}, \"true\"},\n\t\t{\"%t\", []interface{}{'z'}, \"%!t(int32=122)\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tname := fmt.Sprintf(tc.format, tc.values...)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sprintf(tc.format, tc.values...)\n\t\t\tif got != tc.expectedOutput {\n\t\t\t\tt.Errorf(\"got %q, want %q.\", got, tc.expectedOutput)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestErrorf(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tformat string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"simple string\",\n\t\t\tformat: \"error: %s\",\n\t\t\targs: []interface{}{\"something went wrong\"},\n\t\t\texpected: \"error: something went wrong\",\n\t\t},\n\t\t{\n\t\t\tname: \"integer value\",\n\t\t\tformat: \"value: %d\",\n\t\t\targs: []interface{}{42},\n\t\t\texpected: \"value: 42\",\n\t\t},\n\t\t{\n\t\t\tname: \"boolean value\",\n\t\t\tformat: \"success: %t\",\n\t\t\targs: []interface{}{true},\n\t\t\texpected: \"success: true\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple values\",\n\t\t\tformat: \"error %d: %s (success=%t)\",\n\t\t\targs: []interface{}{123, \"failure occurred\", false},\n\t\t\texpected: \"error 123: failure occurred (success=false)\",\n\t\t},\n\t\t{\n\t\t\tname: \"literal percent\",\n\t\t\tformat: \"literal %%\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"literal %\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := Errorf(tt.format, tt.args...)\n\t\t\tif err.Error() != tt.expected {\n\t\t\t\tt.Errorf(\"Errorf(%q, %v) = %q, expected %q\", tt.format, tt.args, err.Error(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPrintErrors(t *testing.T) {\n\tgot := Sprintf(\"error: %s\", errors.New(\"can I be printed?\"))\n\texpectedOutput := \"error: can I be printed?\"\n\tif got != expectedOutput {\n\t\tt.Errorf(\"got %q, want %q.\", got, expectedOutput)\n\t}\n}\n\n// NOTE: Currently, there is no way to get the output of Println without using os.Stdout,\n// so we can only test that it doesn't panic and print arguments well.\nfunc TestPrintln(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"Empty args\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"String args\",\n\t\t\targs: []interface{}{\"Hello\", \"World\"},\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Integer args\",\n\t\t\targs: []interface{}{1, 2, 3},\n\t\t\texpected: \"1 2 3\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed args\",\n\t\t\targs: []interface{}{\"Hello\", 42, true, false, \"World\"},\n\t\t\texpected: \"Hello 42 true false World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unhandled type\",\n\t\t\targs: []interface{}{\"Hello\", 3.14, []int{1, 2, 3}},\n\t\t\texpected: \"Hello (unhandled) (unhandled)\",\n\t\t},\n\t}\n\n\t// TODO: replace os.Stdout with a buffer to capture the output and test it.\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tPrintln(tt.args...)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GgPonVxT1WGA5hBAgMDzN4MLuiz8s/yOYLAufVbuCz8eYoOCmMA1WMz4ySjxpkFQnQ0wtK5Ho+rZICaC8tNmAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ui","path":"gno.land/p/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype DOM struct {\n\t// metadata\n\tPrefix string\n\tTitle string\n\tWithComments bool\n\tClasses []string\n\n\t// elements\n\tHeader Element\n\tBody Element\n\tFooter Element\n}\n\nfunc (dom DOM) String() string {\n\tclasses := strings.Join(dom.Classes, \" \")\n\n\toutput := \"\"\n\n\tif classes != \"\" {\n\t\toutput += \"\u003cmain class='\" + classes + \"'\u003e\" + \"\\n\\n\"\n\t}\n\n\tif dom.Title != \"\" {\n\t\toutput += H1(dom.Title).String(dom) + \"\\n\"\n\t}\n\n\tif header := dom.Header.String(dom); header != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- header --\u003e\"\n\t\t}\n\t\toutput += header + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /header --\u003e\"\n\t\t}\n\t}\n\n\tif body := dom.Body.String(dom); body != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- body --\u003e\"\n\t\t}\n\t\toutput += body + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /body --\u003e\"\n\t\t}\n\t}\n\n\tif footer := dom.Footer.String(dom); footer != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- footer --\u003e\"\n\t\t}\n\t\toutput += footer + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /footer --\u003e\"\n\t\t}\n\t}\n\n\tif classes != \"\" {\n\t\toutput += \"\u003c/main\u003e\"\n\t}\n\n\t// TODO: cleanup double new-lines.\n\n\treturn output\n}\n\ntype Jumbotron []DomStringer\n\nfunc (j Jumbotron) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tfor _, elem := range j {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\toutput += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\treturn output\n}\n\n// XXX: rename Element to Div?\ntype Element []DomStringer\n\nfunc (e *Element) Append(elems ...DomStringer) {\n\t*e = append(*e, elems...)\n}\n\nfunc (e *Element) String(dom DOM) string {\n\toutput := \"\"\n\tfor _, elem := range *e {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\treturn output\n}\n\ntype Breadcrumb []DomStringer\n\nfunc (b *Breadcrumb) Append(elems ...DomStringer) {\n\t*b = append(*b, elems...)\n}\n\nfunc (b Breadcrumb) String(dom DOM) string {\n\toutput := \"\"\n\tfor idx, entry := range b {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" / \"\n\t\t}\n\t\toutput += entry.String(dom)\n\t}\n\treturn output\n}\n\ntype Columns struct {\n\tMaxWidth int\n\tColumns []Element\n}\n\nfunc (c *Columns) Append(elems ...Element) {\n\tc.Columns = append(c.Columns, elems...)\n}\n\nfunc (c Columns) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"columns-` + strconv.Itoa(c.MaxWidth) + `\"\u003e` + \"\\n\"\n\tfor _, entry := range c.Columns {\n\t\toutput += `\u003cdiv class=\"column\"\u003e` + \"\\n\\n\"\n\t\toutput += entry.String(dom)\n\t\toutput += \"\u003c/div\u003e\u003c!-- /column--\u003e\\n\"\n\t}\n\toutput += \"\u003c/div\u003e\u003c!-- /columns-\" + strconv.Itoa(c.MaxWidth) + \" --\u003e\\n\"\n\treturn output\n}\n\ntype Link struct {\n\tText string\n\tPath string\n\tURL string\n}\n\n// TODO: image\n\n// TODO: pager\n\nfunc (l Link) String(dom DOM) string {\n\turl := \"\"\n\tswitch {\n\tcase l.Path != \"\" \u0026\u0026 l.URL != \"\":\n\t\tpanic(\"a link should have a path or a URL, not both.\")\n\tcase l.Path != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.Path\n\t\t}\n\t\turl = dom.Prefix + l.Path\n\tcase l.URL != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.URL\n\t\t}\n\t\turl = l.URL\n\t}\n\n\treturn \"[\" + l.Text + \"](\" + url + \")\"\n}\n\ntype BulletList []DomStringer\n\nfunc (bl BulletList) String(dom DOM) string {\n\toutput := \"\"\n\n\tfor _, entry := range bl {\n\t\toutput += \"- \" + entry.String(dom) + \"\\n\"\n\t}\n\n\treturn output\n}\n\nfunc Text(s string) DomStringer {\n\treturn Raw{Content: s}\n}\n\ntype DomStringer interface {\n\tString(dom DOM) string\n}\n\ntype Raw struct {\n\tContent string\n}\n\nfunc (r Raw) String(_ DOM) string {\n\treturn r.Content\n}\n\ntype (\n\tH1 string\n\tH2 string\n\tH3 string\n\tH4 string\n\tH5 string\n\tH6 string\n\tBold string\n\tItalic string\n\tCode string\n\tParagraph string\n\tQuote string\n\tHR struct{}\n)\n\nfunc (text H1) String(_ DOM) string { return \"# \" + string(text) + \"\\n\" }\nfunc (text H2) String(_ DOM) string { return \"## \" + string(text) + \"\\n\" }\nfunc (text H3) String(_ DOM) string { return \"### \" + string(text) + \"\\n\" }\nfunc (text H4) String(_ DOM) string { return \"#### \" + string(text) + \"\\n\" }\nfunc (text H5) String(_ DOM) string { return \"##### \" + string(text) + \"\\n\" }\nfunc (text H6) String(_ DOM) string { return \"###### \" + string(text) + \"\\n\" }\nfunc (text Quote) String(_ DOM) string { return \"\u003e \" + string(text) + \"\\n\" }\nfunc (text Bold) String(_ DOM) string { return \"**\" + string(text) + \"**\" }\nfunc (text Italic) String(_ DOM) string { return \"_\" + string(text) + \"_\" }\nfunc (text Paragraph) String(_ DOM) string { return \"\\n\" + string(text) + \"\\n\" }\nfunc (_ HR) String(_ DOM) string { return \"\\n---\\n\" }\n\nfunc (text Code) String(_ DOM) string {\n\t// multiline\n\tif strings.Contains(string(text), \"\\n\") {\n\t\treturn \"\\n```\\n\" + string(text) + \"\\n```\\n\"\n\t}\n\n\t// single line\n\treturn \"`\" + string(text) + \"`\"\n}\n"},{"name":"ui_test.gno","body":"package ui\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HrxDNBo0EMJrx8TtlsxlCOe0FYSduaEp8/H2+Db/NtWM/GNA04Z5OEVeZ8AHPRiQHj81toIM+QE7+dj0vvvtDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ui","path":"gno.land/p/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype DOM struct {\n\t// metadata\n\tPrefix string\n\tTitle string\n\tWithComments bool\n\tClasses []string\n\n\t// elements\n\tHeader Element\n\tBody Element\n\tFooter Element\n}\n\nfunc (dom DOM) String() string {\n\tclasses := strings.Join(dom.Classes, \" \")\n\n\toutput := \"\"\n\n\tif classes != \"\" {\n\t\toutput += \"\u003cmain class='\" + classes + \"'\u003e\" + \"\\n\\n\"\n\t}\n\n\tif dom.Title != \"\" {\n\t\toutput += H1(dom.Title).String(dom) + \"\\n\"\n\t}\n\n\tif header := dom.Header.String(dom); header != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- header --\u003e\"\n\t\t}\n\t\toutput += header + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /header --\u003e\"\n\t\t}\n\t}\n\n\tif body := dom.Body.String(dom); body != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- body --\u003e\"\n\t\t}\n\t\toutput += body + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /body --\u003e\"\n\t\t}\n\t}\n\n\tif footer := dom.Footer.String(dom); footer != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- footer --\u003e\"\n\t\t}\n\t\toutput += footer + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /footer --\u003e\"\n\t\t}\n\t}\n\n\tif classes != \"\" {\n\t\toutput += \"\u003c/main\u003e\"\n\t}\n\n\t// TODO: cleanup double new-lines.\n\n\treturn output\n}\n\ntype Jumbotron []DomStringer\n\nfunc (j Jumbotron) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tfor _, elem := range j {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\toutput += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\treturn output\n}\n\n// XXX: rename Element to Div?\ntype Element []DomStringer\n\nfunc (e *Element) Append(elems ...DomStringer) {\n\t*e = append(*e, elems...)\n}\n\nfunc (e *Element) String(dom DOM) string {\n\toutput := \"\"\n\tfor _, elem := range *e {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\treturn output\n}\n\ntype Breadcrumb []DomStringer\n\nfunc (b *Breadcrumb) Append(elems ...DomStringer) {\n\t*b = append(*b, elems...)\n}\n\nfunc (b Breadcrumb) String(dom DOM) string {\n\toutput := \"\"\n\tfor idx, entry := range b {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" / \"\n\t\t}\n\t\toutput += entry.String(dom)\n\t}\n\treturn output\n}\n\ntype Columns struct {\n\tMaxWidth int\n\tColumns []Element\n}\n\nfunc (c *Columns) Append(elems ...Element) {\n\tc.Columns = append(c.Columns, elems...)\n}\n\nfunc (c Columns) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"columns-` + strconv.Itoa(c.MaxWidth) + `\"\u003e` + \"\\n\"\n\tfor _, entry := range c.Columns {\n\t\toutput += `\u003cdiv class=\"column\"\u003e` + \"\\n\\n\"\n\t\toutput += entry.String(dom)\n\t\toutput += \"\u003c/div\u003e\u003c!-- /column--\u003e\\n\"\n\t}\n\toutput += \"\u003c/div\u003e\u003c!-- /columns-\" + strconv.Itoa(c.MaxWidth) + \" --\u003e\\n\"\n\treturn output\n}\n\ntype Link struct {\n\tText string\n\tPath string\n\tURL string\n}\n\n// TODO: image\n\n// TODO: pager\n\nfunc (l Link) String(dom DOM) string {\n\turl := \"\"\n\tswitch {\n\tcase l.Path != \"\" \u0026\u0026 l.URL != \"\":\n\t\tpanic(\"a link should have a path or a URL, not both.\")\n\tcase l.Path != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.Path\n\t\t}\n\t\turl = dom.Prefix + l.Path\n\tcase l.URL != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.URL\n\t\t}\n\t\turl = l.URL\n\t}\n\n\treturn \"[\" + l.Text + \"](\" + url + \")\"\n}\n\ntype BulletList []DomStringer\n\nfunc (bl BulletList) String(dom DOM) string {\n\toutput := \"\"\n\n\tfor _, entry := range bl {\n\t\toutput += \"- \" + entry.String(dom) + \"\\n\"\n\t}\n\n\treturn output\n}\n\nfunc Text(s string) DomStringer {\n\treturn Raw{Content: s}\n}\n\ntype DomStringer interface {\n\tString(dom DOM) string\n}\n\ntype Raw struct {\n\tContent string\n}\n\nfunc (r Raw) String(_ DOM) string {\n\treturn r.Content\n}\n\ntype (\n\tH1 string\n\tH2 string\n\tH3 string\n\tH4 string\n\tH5 string\n\tH6 string\n\tBold string\n\tItalic string\n\tCode string\n\tParagraph string\n\tQuote string\n\tHR struct{}\n)\n\nfunc (text H1) String(_ DOM) string { return \"# \" + string(text) + \"\\n\" }\nfunc (text H2) String(_ DOM) string { return \"## \" + string(text) + \"\\n\" }\nfunc (text H3) String(_ DOM) string { return \"### \" + string(text) + \"\\n\" }\nfunc (text H4) String(_ DOM) string { return \"#### \" + string(text) + \"\\n\" }\nfunc (text H5) String(_ DOM) string { return \"##### \" + string(text) + \"\\n\" }\nfunc (text H6) String(_ DOM) string { return \"###### \" + string(text) + \"\\n\" }\nfunc (text Quote) String(_ DOM) string { return \"\u003e \" + string(text) + \"\\n\" }\nfunc (text Bold) String(_ DOM) string { return \"**\" + string(text) + \"**\" }\nfunc (text Italic) String(_ DOM) string { return \"_\" + string(text) + \"_\" }\nfunc (text Paragraph) String(_ DOM) string { return \"\\n\" + string(text) + \"\\n\" }\nfunc (_ HR) String(_ DOM) string { return \"\\n---\\n\" }\n\nfunc (text Code) String(_ DOM) string {\n\t// multiline\n\tif strings.Contains(string(text), \"\\n\") {\n\t\treturn \"\\n```\\n\" + string(text) + \"\\n```\\n\"\n\t}\n\n\t// single line\n\treturn \"`\" + string(text) + \"`\"\n}\n"},{"name":"ui_test.gno","body":"package ui\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HrxDNBo0EMJrx8TtlsxlCOe0FYSduaEp8/H2+Db/NtWM/GNA04Z5OEVeZ8AHPRiQHj81toIM+QE7+dj0vvvtDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ui","path":"gno.land/p/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype DOM struct {\n\t// metadata\n\tPrefix string\n\tTitle string\n\tWithComments bool\n\tClasses []string\n\n\t// elements\n\tHeader Element\n\tBody Element\n\tFooter Element\n}\n\nfunc (dom DOM) String() string {\n\tclasses := strings.Join(dom.Classes, \" \")\n\n\toutput := \"\"\n\n\tif classes != \"\" {\n\t\toutput += \"\u003cmain class='\" + classes + \"'\u003e\" + \"\\n\\n\"\n\t}\n\n\tif dom.Title != \"\" {\n\t\toutput += H1(dom.Title).String(dom) + \"\\n\"\n\t}\n\n\tif header := dom.Header.String(dom); header != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- header --\u003e\"\n\t\t}\n\t\toutput += header + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /header --\u003e\"\n\t\t}\n\t}\n\n\tif body := dom.Body.String(dom); body != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- body --\u003e\"\n\t\t}\n\t\toutput += body + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /body --\u003e\"\n\t\t}\n\t}\n\n\tif footer := dom.Footer.String(dom); footer != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- footer --\u003e\"\n\t\t}\n\t\toutput += footer + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /footer --\u003e\"\n\t\t}\n\t}\n\n\tif classes != \"\" {\n\t\toutput += \"\u003c/main\u003e\"\n\t}\n\n\t// TODO: cleanup double new-lines.\n\n\treturn output\n}\n\ntype Jumbotron []DomStringer\n\nfunc (j Jumbotron) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tfor _, elem := range j {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\toutput += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\treturn output\n}\n\n// XXX: rename Element to Div?\ntype Element []DomStringer\n\nfunc (e *Element) Append(elems ...DomStringer) {\n\t*e = append(*e, elems...)\n}\n\nfunc (e *Element) String(dom DOM) string {\n\toutput := \"\"\n\tfor _, elem := range *e {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\treturn output\n}\n\ntype Breadcrumb []DomStringer\n\nfunc (b *Breadcrumb) Append(elems ...DomStringer) {\n\t*b = append(*b, elems...)\n}\n\nfunc (b Breadcrumb) String(dom DOM) string {\n\toutput := \"\"\n\tfor idx, entry := range b {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" / \"\n\t\t}\n\t\toutput += entry.String(dom)\n\t}\n\treturn output\n}\n\ntype Columns struct {\n\tMaxWidth int\n\tColumns []Element\n}\n\nfunc (c *Columns) Append(elems ...Element) {\n\tc.Columns = append(c.Columns, elems...)\n}\n\nfunc (c Columns) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"columns-` + strconv.Itoa(c.MaxWidth) + `\"\u003e` + \"\\n\"\n\tfor _, entry := range c.Columns {\n\t\toutput += `\u003cdiv class=\"column\"\u003e` + \"\\n\\n\"\n\t\toutput += entry.String(dom)\n\t\toutput += \"\u003c/div\u003e\u003c!-- /column--\u003e\\n\"\n\t}\n\toutput += \"\u003c/div\u003e\u003c!-- /columns-\" + strconv.Itoa(c.MaxWidth) + \" --\u003e\\n\"\n\treturn output\n}\n\ntype Link struct {\n\tText string\n\tPath string\n\tURL string\n}\n\n// TODO: image\n\n// TODO: pager\n\nfunc (l Link) String(dom DOM) string {\n\turl := \"\"\n\tswitch {\n\tcase l.Path != \"\" \u0026\u0026 l.URL != \"\":\n\t\tpanic(\"a link should have a path or a URL, not both.\")\n\tcase l.Path != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.Path\n\t\t}\n\t\turl = dom.Prefix + l.Path\n\tcase l.URL != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.URL\n\t\t}\n\t\turl = l.URL\n\t}\n\n\treturn \"[\" + l.Text + \"](\" + url + \")\"\n}\n\ntype BulletList []DomStringer\n\nfunc (bl BulletList) String(dom DOM) string {\n\toutput := \"\"\n\n\tfor _, entry := range bl {\n\t\toutput += \"- \" + entry.String(dom) + \"\\n\"\n\t}\n\n\treturn output\n}\n\nfunc Text(s string) DomStringer {\n\treturn Raw{Content: s}\n}\n\ntype DomStringer interface {\n\tString(dom DOM) string\n}\n\ntype Raw struct {\n\tContent string\n}\n\nfunc (r Raw) String(_ DOM) string {\n\treturn r.Content\n}\n\ntype (\n\tH1 string\n\tH2 string\n\tH3 string\n\tH4 string\n\tH5 string\n\tH6 string\n\tBold string\n\tItalic string\n\tCode string\n\tParagraph string\n\tQuote string\n\tHR struct{}\n)\n\nfunc (text H1) String(_ DOM) string { return \"# \" + string(text) + \"\\n\" }\nfunc (text H2) String(_ DOM) string { return \"## \" + string(text) + \"\\n\" }\nfunc (text H3) String(_ DOM) string { return \"### \" + string(text) + \"\\n\" }\nfunc (text H4) String(_ DOM) string { return \"#### \" + string(text) + \"\\n\" }\nfunc (text H5) String(_ DOM) string { return \"##### \" + string(text) + \"\\n\" }\nfunc (text H6) String(_ DOM) string { return \"###### \" + string(text) + \"\\n\" }\nfunc (text Quote) String(_ DOM) string { return \"\u003e \" + string(text) + \"\\n\" }\nfunc (text Bold) String(_ DOM) string { return \"**\" + string(text) + \"**\" }\nfunc (text Italic) String(_ DOM) string { return \"_\" + string(text) + \"_\" }\nfunc (text Paragraph) String(_ DOM) string { return \"\\n\" + string(text) + \"\\n\" }\nfunc (_ HR) String(_ DOM) string { return \"\\n---\\n\" }\n\nfunc (text Code) String(_ DOM) string {\n\t// multiline\n\tif strings.Contains(string(text), \"\\n\") {\n\t\treturn \"\\n```\\n\" + string(text) + \"\\n```\\n\"\n\t}\n\n\t// single line\n\treturn \"`\" + string(text) + \"`\"\n}\n"},{"name":"ui_test.gno","body":"package ui\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HrxDNBo0EMJrx8TtlsxlCOe0FYSduaEp8/H2+Db/NtWM/GNA04Z5OEVeZ8AHPRiQHj81toIM+QE7+dj0vvvtDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ui","path":"gno.land/r/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport \"gno.land/p/demo/ui\"\n\nfunc Render(path string) string {\n\t// TODO: build this realm as a demo one with one page per feature.\n\n\t// TODO: pagination\n\t// TODO: non-standard markdown\n\t// TODO: error, warn\n\t// TODO: header\n\t// TODO: HTML\n\t// TODO: toc\n\t// TODO: forms\n\t// TODO: comments\n\n\tdom := ui.DOM{\n\t\tPrefix: \"r/demo/ui:\",\n\t}\n\n\tdom.Title = \"UI Demo\"\n\n\tdom.Header.Append(ui.Breadcrumb{\n\t\tui.Link{Text: \"foo\", Path: \"foo\"},\n\t\tui.Link{Text: \"bar\", Path: \"foo/bar\"},\n\t})\n\n\tdom.Body.Append(\n\t\tui.Paragraph(\"Simple UI demonstration.\"),\n\t\tui.BulletList{\n\t\t\tui.Text(\"a text\"),\n\t\t\tui.Link{Text: \"a relative link\", Path: \"foobar\"},\n\t\t\tui.Text(\"another text\"),\n\t\t\t// ui.H1(\"a H1 text\"),\n\t\t\tui.Bold(\"a bold text\"),\n\t\t\tui.Italic(\"italic text\"),\n\t\t\tui.Text(\"raw markdown with **bold** text in the middle.\"),\n\t\t\tui.Code(\"some inline code\"),\n\t\t\tui.Link{Text: \"a remote link\", URL: \"https://gno.land\"},\n\t\t},\n\t)\n\n\tdom.Footer.Append(ui.Text(\"I'm the footer.\"))\n\tdom.Body.Append(ui.Text(\"another string.\"))\n\tdom.Body.Append(ui.Paragraph(\"a paragraph.\"), ui.HR{})\n\n\treturn dom.String()\n}\n"},{"name":"ui_test.gno","body":"package ui\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tgot := Render(\"\")\n\texpected := \"# UI Demo\\n\\n[foo](r/demo/ui:foo) / [bar](r/demo/ui:foo/bar)\\n\\n\\nSimple UI demonstration.\\n\\n- a text\\n- [a relative link](r/demo/ui:foobar)\\n- another text\\n- **a bold text**\\n- _italic text_\\n- raw markdown with **bold** text in the middle.\\n- `some inline code`\\n- [a remote link](https://gno.land)\\n\\nanother string.\\n\\na paragraph.\\n\\n\\n---\\n\\n\\nI'm the footer.\\n\\n\"\n\tuassert.Equal(t, expected, got)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/LPou75LpPcsutQjVlnNwglZe99Ea7fBx62aTeuegKxb6qDmin9aQFxWC0OF6/6lTV3gfdFO7SsfQXymMT8DBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ui","path":"gno.land/r/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport \"gno.land/p/demo/ui\"\n\nfunc Render(path string) string {\n\t// TODO: build this realm as a demo one with one page per feature.\n\n\t// TODO: pagination\n\t// TODO: non-standard markdown\n\t// TODO: error, warn\n\t// TODO: header\n\t// TODO: HTML\n\t// TODO: toc\n\t// TODO: forms\n\t// TODO: comments\n\n\tdom := ui.DOM{\n\t\tPrefix: \"r/demo/ui:\",\n\t}\n\n\tdom.Title = \"UI Demo\"\n\n\tdom.Header.Append(ui.Breadcrumb{\n\t\tui.Link{Text: \"foo\", Path: \"foo\"},\n\t\tui.Link{Text: \"bar\", Path: \"foo/bar\"},\n\t})\n\n\tdom.Body.Append(\n\t\tui.Paragraph(\"Simple UI demonstration.\"),\n\t\tui.BulletList{\n\t\t\tui.Text(\"a text\"),\n\t\t\tui.Link{Text: \"a relative link\", Path: \"foobar\"},\n\t\t\tui.Text(\"another text\"),\n\t\t\t// ui.H1(\"a H1 text\"),\n\t\t\tui.Bold(\"a bold text\"),\n\t\t\tui.Italic(\"italic text\"),\n\t\t\tui.Text(\"raw markdown with **bold** text in the middle.\"),\n\t\t\tui.Code(\"some inline code\"),\n\t\t\tui.Link{Text: \"a remote link\", URL: \"https://gno.land\"},\n\t\t},\n\t)\n\n\tdom.Footer.Append(ui.Text(\"I'm the footer.\"))\n\tdom.Body.Append(ui.Text(\"another string.\"))\n\tdom.Body.Append(ui.Paragraph(\"a paragraph.\"), ui.HR{})\n\n\treturn dom.String()\n}\n"},{"name":"ui_test.gno","body":"package ui\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tgot := Render(\"\")\n\texpected := \"# UI Demo\\n\\n[foo](r/demo/ui:foo) / [bar](r/demo/ui:foo/bar)\\n\\n\\nSimple UI demonstration.\\n\\n- a text\\n- [a relative link](r/demo/ui:foobar)\\n- another text\\n- **a bold text**\\n- _italic text_\\n- raw markdown with **bold** text in the middle.\\n- `some inline code`\\n- [a remote link](https://gno.land)\\n\\nanother string.\\n\\na paragraph.\\n\\n\\n---\\n\\n\\nI'm the footer.\\n\\n\"\n\tuassert.Equal(t, expected, got)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/LPou75LpPcsutQjVlnNwglZe99Ea7fBx62aTeuegKxb6qDmin9aQFxWC0OF6/6lTV3gfdFO7SsfQXymMT8DBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"ui","path":"gno.land/r/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport \"gno.land/p/demo/ui\"\n\nfunc Render(path string) string {\n\t// TODO: build this realm as a demo one with one page per feature.\n\n\t// TODO: pagination\n\t// TODO: non-standard markdown\n\t// TODO: error, warn\n\t// TODO: header\n\t// TODO: HTML\n\t// TODO: toc\n\t// TODO: forms\n\t// TODO: comments\n\n\tdom := ui.DOM{\n\t\tPrefix: \"r/demo/ui:\",\n\t}\n\n\tdom.Title = \"UI Demo\"\n\n\tdom.Header.Append(ui.Breadcrumb{\n\t\tui.Link{Text: \"foo\", Path: \"foo\"},\n\t\tui.Link{Text: \"bar\", Path: \"foo/bar\"},\n\t})\n\n\tdom.Body.Append(\n\t\tui.Paragraph(\"Simple UI demonstration.\"),\n\t\tui.BulletList{\n\t\t\tui.Text(\"a text\"),\n\t\t\tui.Link{Text: \"a relative link\", Path: \"foobar\"},\n\t\t\tui.Text(\"another text\"),\n\t\t\t// ui.H1(\"a H1 text\"),\n\t\t\tui.Bold(\"a bold text\"),\n\t\t\tui.Italic(\"italic text\"),\n\t\t\tui.Text(\"raw markdown with **bold** text in the middle.\"),\n\t\t\tui.Code(\"some inline code\"),\n\t\t\tui.Link{Text: \"a remote link\", URL: \"https://gno.land\"},\n\t\t},\n\t)\n\n\tdom.Footer.Append(ui.Text(\"I'm the footer.\"))\n\tdom.Body.Append(ui.Text(\"another string.\"))\n\tdom.Body.Append(ui.Paragraph(\"a paragraph.\"), ui.HR{})\n\n\treturn dom.String()\n}\n"},{"name":"ui_test.gno","body":"package ui\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tgot := Render(\"\")\n\texpected := \"# UI Demo\\n\\n[foo](r/demo/ui:foo) / [bar](r/demo/ui:foo/bar)\\n\\n\\nSimple UI demonstration.\\n\\n- a text\\n- [a relative link](r/demo/ui:foobar)\\n- another text\\n- **a bold text**\\n- _italic text_\\n- raw markdown with **bold** text in the middle.\\n- `some inline code`\\n- [a remote link](https://gno.land)\\n\\nanother string.\\n\\na paragraph.\\n\\n\\n---\\n\\n\\nI'm the footer.\\n\\n\"\n\tuassert.Equal(t, expected, got)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/LPou75LpPcsutQjVlnNwglZe99Ea7fBx62aTeuegKxb6qDmin9aQFxWC0OF6/6lTV3gfdFO7SsfQXymMT8DBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"uint256","path":"gno.land/p/demo/uint256","files":[{"name":"LICENSE","body":"BSD 3-Clause License\n\nCopyright 2020 uint256 Authors\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# Fixed size 256-bit math library\n\nThis is a library specialized at replacing the `big.Int` library for math based on 256-bit types.\n\noriginal repository: [uint256](\u003chttps://github.com/holiman/uint256/tree/master\u003e)\n"},{"name":"arithmetic.gno","body":"// arithmetic provides arithmetic operations for Uint objects.\n// This includes basic binary operations such as addition, subtraction, multiplication, division, and modulo operations\n// as well as overflow checks, and negation. These functions are essential for numeric\n// calculations using 256-bit unsigned integers.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Add sets z to the sum x+y\nfunc (z *Uint) Add(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// AddOverflow sets z to the sum x+y, and returns z and whether overflow occurred\nfunc (z *Uint) AddOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Sub sets z to the difference x-y\nfunc (z *Uint) Sub(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// SubOverflow sets z to the difference x-y and returns z and true if the operation underflowed\nfunc (z *Uint) SubOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Neg returns -x mod 2^256.\nfunc (z *Uint) Neg(x *Uint) *Uint {\n\treturn z.Sub(new(Uint), x)\n}\n\n// commented out for possible overflow\n// Mul sets z to the product x*y\nfunc (z *Uint) Mul(x, y *Uint) *Uint {\n\tvar (\n\t\tres Uint\n\t\tcarry uint64\n\t\tres1, res2, res3 uint64\n\t)\n\n\tcarry, res.arr[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tres3 = x.arr[3]*y.arr[0] + carry\n\n\tcarry, res.arr[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tres3 = res3 + x.arr[2]*y.arr[1] + carry\n\n\tcarry, res.arr[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tres3 = res3 + x.arr[1]*y.arr[2] + carry\n\n\tres.arr[3] = res3 + x.arr[0]*y.arr[3]\n\n\treturn z.Set(\u0026res)\n}\n\n// MulOverflow sets z to the product x*y, and returns z and whether overflow occurred\nfunc (z *Uint) MulOverflow(x, y *Uint) (*Uint, bool) {\n\tp := umul(x, y)\n\tcopy(z.arr[:], p[:4])\n\treturn z, (p[4] | p[5] | p[6] | p[7]) != 0\n}\n\n// commented out for possible overflow\n// Div sets z to the quotient x/y for returns z.\n// If y == 0, z is set to 0\nfunc (z *Uint) Div(x, y *Uint) *Uint {\n\tif y.IsZero() || y.Gt(x) {\n\t\treturn z.Clear()\n\t}\n\tif x.Eq(y) {\n\t\treturn z.SetOne()\n\t}\n\t// Shortcut some cases\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() / y.Uint64())\n\t}\n\n\t// At this point, we know\n\t// x/y ; x \u003e y \u003e 0\n\n\tvar quot Uint\n\tudivrem(quot.arr[:], x.arr[:], y)\n\treturn z.Set(\u0026quot)\n}\n\n// MulMod calculates the modulo-m multiplication of x and y and\n// returns z.\n// If m == 0, z is set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) MulMod(x, y, m *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() || m.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tp := umul(x, y)\n\n\tif m.arr[3] != 0 {\n\t\tmu := Reciprocal(m)\n\t\tr := reduce4(p, m, mu)\n\t\treturn z.Set(\u0026r)\n\t}\n\n\tvar (\n\t\tpl Uint\n\t\tph Uint\n\t)\n\n\tpl = Uint{arr: [4]uint64{p[0], p[1], p[2], p[3]}}\n\tph = Uint{arr: [4]uint64{p[4], p[5], p[6], p[7]}}\n\n\t// If the multiplication is within 256 bits use Mod().\n\tif ph.IsZero() {\n\t\treturn z.Mod(\u0026pl, m)\n\t}\n\n\tvar quot [8]uint64\n\trem := udivrem(quot[:], p[:], m)\n\treturn z.Set(\u0026rem)\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// If y == 0, z is set to 0 (OBS: differs from the big.Uint)\nfunc (z *Uint) Mod(x, y *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tswitch x.Cmp(y) {\n\tcase -1:\n\t\t// x \u003c y\n\t\tcopy(z.arr[:], x.arr[:])\n\t\treturn z\n\tcase 0:\n\t\t// x == y\n\t\treturn z.Clear() // They are equal\n\t}\n\n\t// At this point:\n\t// x != 0\n\t// y != 0\n\t// x \u003e y\n\n\t// Shortcut trivial case\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() % y.Uint64())\n\t}\n\n\tvar quot Uint\n\t*z = udivrem(quot.arr[:], x.arr[:], y)\n\treturn z\n}\n\n// DivMod sets z to the quotient x div y and m to the modulus x mod y and returns the pair (z, m) for y != 0.\n// If y == 0, both z and m are set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) DivMod(x, y, m *Uint) (*Uint, *Uint) {\n\tif y.IsZero() {\n\t\treturn z.Clear(), m.Clear()\n\t}\n\tvar quot Uint\n\t*m = udivrem(quot.arr[:], x.arr[:], y)\n\t*z = quot\n\treturn z, m\n}\n\n// Exp sets z = base**exponent mod 2**256, and returns z.\nfunc (z *Uint) Exp(base, exponent *Uint) *Uint {\n\tres := Uint{arr: [4]uint64{1, 0, 0, 0}}\n\tmultiplier := *base\n\texpBitLen := exponent.BitLen()\n\n\tcurBit := 0\n\tword := exponent.arr[0]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 64; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[1]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 128; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[2]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 192; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[3]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 256; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\treturn z.Set(\u0026res)\n}\n\nfunc (z *Uint) squared() {\n\tvar (\n\t\tres Uint\n\t\tcarry0, carry1, carry2 uint64\n\t\tres1, res2 uint64\n\t)\n\n\tcarry0, res.arr[0] = bits.Mul64(z.arr[0], z.arr[0])\n\tcarry0, res1 = umulHop(carry0, z.arr[0], z.arr[1])\n\tcarry0, res2 = umulHop(carry0, z.arr[0], z.arr[2])\n\n\tcarry1, res.arr[1] = umulHop(res1, z.arr[0], z.arr[1])\n\tcarry1, res2 = umulStep(res2, z.arr[1], z.arr[1], carry1)\n\n\tcarry2, res.arr[2] = umulHop(res2, z.arr[0], z.arr[2])\n\n\tres.arr[3] = 2*(z.arr[0]*z.arr[3]+z.arr[1]*z.arr[2]) + carry0 + carry1 + carry2\n\n\tz.Set(\u0026res)\n}\n\n// udivrem divides u by d and produces both quotient and remainder.\n// The quotient is stored in provided quot - len(u)-len(d)+1 words.\n// It loosely follows the Knuth's division algorithm (sometimes referenced as \"schoolbook\" division) using 64-bit words.\n// See Knuth, Volume 2, section 4.3.1, Algorithm D.\nfunc udivrem(quot, u []uint64, d *Uint) (rem Uint) {\n\tvar dLen int\n\tfor i := len(d.arr) - 1; i \u003e= 0; i-- {\n\t\tif d.arr[i] != 0 {\n\t\t\tdLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tshift := uint(bits.LeadingZeros64(d.arr[dLen-1]))\n\n\tvar dnStorage Uint\n\tdn := dnStorage.arr[:dLen]\n\tfor i := dLen - 1; i \u003e 0; i-- {\n\t\tdn[i] = (d.arr[i] \u003c\u003c shift) | (d.arr[i-1] \u003e\u003e (64 - shift))\n\t}\n\tdn[0] = d.arr[0] \u003c\u003c shift\n\n\tvar uLen int\n\tfor i := len(u) - 1; i \u003e= 0; i-- {\n\t\tif u[i] != 0 {\n\t\t\tuLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif uLen \u003c dLen {\n\t\tcopy(rem.arr[:], u)\n\t\treturn rem\n\t}\n\n\tvar unStorage [9]uint64\n\tun := unStorage[:uLen+1]\n\tun[uLen] = u[uLen-1] \u003e\u003e (64 - shift)\n\tfor i := uLen - 1; i \u003e 0; i-- {\n\t\tun[i] = (u[i] \u003c\u003c shift) | (u[i-1] \u003e\u003e (64 - shift))\n\t}\n\tun[0] = u[0] \u003c\u003c shift\n\n\t// TODO: Skip the highest word of numerator if not significant.\n\n\tif dLen == 1 {\n\t\tr := udivremBy1(quot, un, dn[0])\n\t\trem.SetUint64(r \u003e\u003e shift)\n\t\treturn rem\n\t}\n\n\tudivremKnuth(quot, un, dn)\n\n\tfor i := 0; i \u003c dLen-1; i++ {\n\t\trem.arr[i] = (un[i] \u003e\u003e shift) | (un[i+1] \u003c\u003c (64 - shift))\n\t}\n\trem.arr[dLen-1] = un[dLen-1] \u003e\u003e shift\n\n\treturn rem\n}\n\n// umul computes full 256 x 256 -\u003e 512 multiplication.\nfunc umul(x, y *Uint) [8]uint64 {\n\tvar (\n\t\tres [8]uint64\n\t\tcarry, carry4, carry5, carry6 uint64\n\t\tres1, res2, res3, res4, res5 uint64\n\t)\n\n\tcarry, res[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tcarry4, res3 = umulHop(carry, x.arr[3], y.arr[0])\n\n\tcarry, res[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tcarry, res3 = umulStep(res3, x.arr[2], y.arr[1], carry)\n\tcarry5, res4 = umulStep(carry4, x.arr[3], y.arr[1], carry)\n\n\tcarry, res[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tcarry, res3 = umulStep(res3, x.arr[1], y.arr[2], carry)\n\tcarry, res4 = umulStep(res4, x.arr[2], y.arr[2], carry)\n\tcarry6, res5 = umulStep(carry5, x.arr[3], y.arr[2], carry)\n\n\tcarry, res[3] = umulHop(res3, x.arr[0], y.arr[3])\n\tcarry, res[4] = umulStep(res4, x.arr[1], y.arr[3], carry)\n\tcarry, res[5] = umulStep(res5, x.arr[2], y.arr[3], carry)\n\tres[7], res[6] = umulStep(carry6, x.arr[3], y.arr[3], carry)\n\n\treturn res\n}\n\n// umulStep computes (hi * 2^64 + lo) = z + (x * y) + carry.\nfunc umulStep(z, x, y, carry uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry = bits.Add64(lo, carry, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\tlo, carry = bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// umulHop computes (hi * 2^64 + lo) = z + (x * y)\nfunc umulHop(z, x, y uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry := bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// udivremBy1 divides u by single normalized word d and produces both quotient and remainder.\n// The quotient is stored in provided quot.\nfunc udivremBy1(quot, u []uint64, d uint64) (rem uint64) {\n\treciprocal := reciprocal2by1(d)\n\trem = u[len(u)-1] // Set the top word as remainder.\n\tfor j := len(u) - 2; j \u003e= 0; j-- {\n\t\tquot[j], rem = udivrem2by1(rem, u[j], d, reciprocal)\n\t}\n\treturn rem\n}\n\n// udivremKnuth implements the division of u by normalized multiple word d from the Knuth's division algorithm.\n// The quotient is stored in provided quot - len(u)-len(d) words.\n// Updates u to contain the remainder - len(d) words.\nfunc udivremKnuth(quot, u, d []uint64) {\n\tdh := d[len(d)-1]\n\tdl := d[len(d)-2]\n\treciprocal := reciprocal2by1(dh)\n\n\tfor j := len(u) - len(d) - 1; j \u003e= 0; j-- {\n\t\tu2 := u[j+len(d)]\n\t\tu1 := u[j+len(d)-1]\n\t\tu0 := u[j+len(d)-2]\n\n\t\tvar qhat, rhat uint64\n\t\tif u2 \u003e= dh { // Division overflows.\n\t\t\tqhat = ^uint64(0)\n\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t} else {\n\t\t\tqhat, rhat = udivrem2by1(u2, u1, dh, reciprocal)\n\t\t\tph, pl := bits.Mul64(qhat, dl)\n\t\t\tif ph \u003e rhat || (ph == rhat \u0026\u0026 pl \u003e u0) {\n\t\t\t\tqhat--\n\t\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t\t}\n\t\t}\n\n\t\t// Multiply and subtract.\n\t\tborrow := subMulTo(u[j:], d, qhat)\n\t\tu[j+len(d)] = u2 - borrow\n\t\tif u2 \u003c borrow { // Too much subtracted, add back.\n\t\t\tqhat--\n\t\t\tu[j+len(d)] += addTo(u[j:], d)\n\t\t}\n\n\t\tquot[j] = qhat // Store quotient digit.\n\t}\n}\n\n// isBitSet returns true if bit n-th is set, where n = 0 is LSB.\n// The n must be \u003c= 255.\nfunc (z *Uint) isBitSet(n uint) bool {\n\treturn (z.arr[n/64] \u0026 (1 \u003c\u003c (n % 64))) != 0\n}\n\n// addTo computes x += y.\n// Requires len(x) \u003e= len(y).\nfunc addTo(x, y []uint64) uint64 {\n\tvar carry uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\tx[i], carry = bits.Add64(x[i], y[i], carry)\n\t}\n\treturn carry\n}\n\n// subMulTo computes x -= y * multiplier.\n// Requires len(x) \u003e= len(y).\nfunc subMulTo(x, y []uint64, multiplier uint64) uint64 {\n\tvar borrow uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\ts, carry1 := bits.Sub64(x[i], borrow, 0)\n\t\tph, pl := bits.Mul64(y[i], multiplier)\n\t\tt, carry2 := bits.Sub64(s, pl, 0)\n\t\tx[i] = t\n\t\tborrow = ph + carry1 + carry2\n\t}\n\treturn borrow\n}\n\n// reciprocal2by1 computes \u003c^d, ^0\u003e / d.\nfunc reciprocal2by1(d uint64) uint64 {\n\treciprocal, _ := bits.Div64(^d, ^uint64(0), d)\n\treturn reciprocal\n}\n\n// udivrem2by1 divides \u003cuh, ul\u003e / d and produces both quotient and remainder.\n// It uses the provided d's reciprocal.\n// Implementation ported from https://github.com/chfast/intx and is based on\n// \"Improved division by invariant integers\", Algorithm 4.\nfunc udivrem2by1(uh, ul, d, reciprocal uint64) (quot, rem uint64) {\n\tqh, ql := bits.Mul64(reciprocal, uh)\n\tql, carry := bits.Add64(ql, ul, 0)\n\tqh, _ = bits.Add64(qh, uh, carry)\n\tqh++\n\n\tr := ul - qh*d\n\n\tif r \u003e ql {\n\t\tqh--\n\t\tr += d\n\t}\n\n\tif r \u003e= d {\n\t\tqh++\n\t\tr -= d\n\t}\n\n\treturn qh, r\n}\n"},{"name":"arithmetic_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\ntype binOp2Test struct {\n\tx, y, want string\n}\n\nfunc TestAdd(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"3\", \"4\"},\n\t\t{\"10\", \"10\", \"20\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"0\", \"1\", \"1\", false},\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"2\", false},\n\t\t{\"10\", \"10\", \"20\", false},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\", false}, // uint64 overflow, but not Uint256 overflow\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"1\", \"0\", true}, // 2^256 - 1 + 1, should overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", false}, // (2^255 - 1) + 2^255, no overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"0\", true}, // (2^255 - 1) + (2^255 + 1), should overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot, overflow := new(Uint).AddOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tt.overflow {\n\t\t\tt.Errorf(\"AddOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttt.x, tt.y, got.String(), overflow, tt.want, tt.overflow)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"1337\", \"30000\"},\n\t\t{\"2\", \"3\", twoPow256Sub1}, // underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot := new(Uint).Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Sub(%s, %s) = %v, want %v\",\n\t\t\t\ttc.x, tc.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestSubOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"0\", false},\n\t\t{\"10\", \"10\", \"0\", false},\n\t\t{\"31337\", \"1337\", \"30000\", false},\n\t\t{\"0\", \"1\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 0 - 1, should underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"1\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\", false}, // 2^255 - 1, no underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 2^255 - (2^255 + 1), should underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot, overflow := new(Uint).SubOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tc.overflow {\n\t\t\tt.Errorf(\n\t\t\t\t\"SubOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttc.x, tc.y, got.String(), overflow, tc.want, tc.overflow,\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"10\", \"10\", \"100\"},\n\t\t{\"18446744073709551615\", \"2\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantZ string\n\t\twantOver bool\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x1\", false},\n\t\t{\"0x0\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\", false},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", true},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x1\", true},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", \"0x2\", \"0x0\", true},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", false},\n\t\t{\"0x100000000000000000\", \"0x100000000000000000\", \"0x10000000000000000000000000000000000\", false},\n\t\t{\"0x10000000000000000000000000000000\", \"0x10000000000000000000000000000000\", \"0x100000000000000000000000000000000000000000000000000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\twantZ := MustFromHex(tt.wantZ)\n\n\t\tgotZ, gotOver := new(Uint).MulOverflow(x, y)\n\n\t\tif gotZ.Neq(wantZ) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulOverflow(%s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, gotZ.String(), wantZ.String(),\n\t\t\t)\n\t\t}\n\t\tif gotOver != tt.wantOver {\n\t\t\tt.Errorf(\"MulOverflow(%s, %s) = %v, want %v\", tt.x, tt.y, gotOver, tt.wantOver)\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"10445\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"1000000000000000000\", \"3\", \"333333333333333333\"},\n\t\t{twoPow256Sub1, \"2\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Div(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Div(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"2\", \"31337\", \"2\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"2\", \"1\"}, // 2^256 - 1 mod 2\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"3\", \"0\"}, // 2^256 - 1 mod 3\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"}, // 2^256 - 1 mod 2^255\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\tm string\n\t\twant string\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x2\", \"0x1\"},\n\t\t{\"0x10\", \"0x10\", \"0x7\", \"0x4\"},\n\t\t{\"0x100\", \"0x100\", \"0x17\", \"0x9\"},\n\t\t{\"0x31337\", \"0x31337\", \"0x31338\", \"0x1\"},\n\t\t{\"0x0\", \"0x31337\", \"0x31338\", \"0x0\"},\n\t\t{\"0x31337\", \"0x0\", \"0x31338\", \"0x0\"},\n\t\t{\"0x2\", \"0x3\", \"0x5\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\tm := MustFromHex(tt.m)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).MulMod(x, y, m)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulMod(%s, %s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, tt.m, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestDivMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantDiv string\n\t\twantMod string\n\t}{\n\t\t{\"1\", \"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"1\", \"0\"},\n\t\t{\"100\", \"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"3\", \"10445\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\", \"0\"},\n\t\t{\"2\", \"31337\", \"0\", \"2\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twantDiv := MustFromDecimal(tt.wantDiv)\n\t\twantMod := MustFromDecimal(tt.wantMod)\n\n\t\tgotDiv := new(Uint)\n\t\tgotMod := new(Uint)\n\t\tgotDiv.DivMod(x, y, gotMod)\n\n\t\tfor i := range gotDiv.arr {\n\t\t\tif gotDiv.arr[i] != wantDiv.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Div %v, want Div %v\", tt.x, tt.y, gotDiv, wantDiv)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfor i := range gotMod.arr {\n\t\t\tif gotMod.arr[i] != wantMod.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Mod %v, want Mod %v\", tt.x, tt.y, gotMod, wantMod)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"31337\", \"115792089237316195423570985008687907853269984665640564039457584007913129608599\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129608599\", \"31337\"},\n\t\t{\"0\", \"0\"},\n\t\t{\"2\", \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"},\n\t\t{\"1\", twoPow256Sub1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Neg(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Neg(%s) = %v, want %v\", tt.x, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestExp(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"30773171189753\"},\n\t\t{\"31337\", \"0\", \"1\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"2\", \"3\", \"8\"},\n\t\t{\"2\", \"64\", \"18446744073709551616\"},\n\t\t{\"2\", \"128\", \"340282366920938463463374607431768211456\"},\n\t\t{\"2\", \"255\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"2\", \"256\", \"0\"}, // overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Exp(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Exp(%s, %s) = %v, want %v\",\n\t\t\t\ttt.x, tt.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestExp_LargeExponent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbase string\n\t\texponent string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"2^129\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"680564733841876926926749214863536422912\",\n\t\t\texpected: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"2^193\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"12379400392853802746563808384000000000000000000\",\n\t\t\texpected: \"0\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbase := MustFromDecimal(tt.base)\n\t\t\texponent := MustFromDecimal(tt.exponent)\n\t\t\texpected := MustFromDecimal(tt.expected)\n\n\t\t\tresult := new(Uint).Exp(base, exponent)\n\n\t\t\tif result.Neq(expected) {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Test %s failed. Expected %s, got %s\",\n\t\t\t\t\ttt.name, expected.String(), result.String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"bits_table.gno","body":"// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by go run make_tables.go. DO NOT EDIT.\n\npackage uint256\n\nconst ntz8tab = \"\" +\n\t\"\\x08\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x07\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\"\n\nconst pop8tab = \"\" +\n\t\"\\x00\\x01\\x01\\x02\\x01\\x02\\x02\\x03\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\\x05\\x06\\x06\\x07\\x06\\x07\\x07\\x08\"\n\nconst rev8tab = \"\" +\n\t\"\\x00\\x80\\x40\\xc0\\x20\\xa0\\x60\\xe0\\x10\\x90\\x50\\xd0\\x30\\xb0\\x70\\xf0\" +\n\t\"\\x08\\x88\\x48\\xc8\\x28\\xa8\\x68\\xe8\\x18\\x98\\x58\\xd8\\x38\\xb8\\x78\\xf8\" +\n\t\"\\x04\\x84\\x44\\xc4\\x24\\xa4\\x64\\xe4\\x14\\x94\\x54\\xd4\\x34\\xb4\\x74\\xf4\" +\n\t\"\\x0c\\x8c\\x4c\\xcc\\x2c\\xac\\x6c\\xec\\x1c\\x9c\\x5c\\xdc\\x3c\\xbc\\x7c\\xfc\" +\n\t\"\\x02\\x82\\x42\\xc2\\x22\\xa2\\x62\\xe2\\x12\\x92\\x52\\xd2\\x32\\xb2\\x72\\xf2\" +\n\t\"\\x0a\\x8a\\x4a\\xca\\x2a\\xaa\\x6a\\xea\\x1a\\x9a\\x5a\\xda\\x3a\\xba\\x7a\\xfa\" +\n\t\"\\x06\\x86\\x46\\xc6\\x26\\xa6\\x66\\xe6\\x16\\x96\\x56\\xd6\\x36\\xb6\\x76\\xf6\" +\n\t\"\\x0e\\x8e\\x4e\\xce\\x2e\\xae\\x6e\\xee\\x1e\\x9e\\x5e\\xde\\x3e\\xbe\\x7e\\xfe\" +\n\t\"\\x01\\x81\\x41\\xc1\\x21\\xa1\\x61\\xe1\\x11\\x91\\x51\\xd1\\x31\\xb1\\x71\\xf1\" +\n\t\"\\x09\\x89\\x49\\xc9\\x29\\xa9\\x69\\xe9\\x19\\x99\\x59\\xd9\\x39\\xb9\\x79\\xf9\" +\n\t\"\\x05\\x85\\x45\\xc5\\x25\\xa5\\x65\\xe5\\x15\\x95\\x55\\xd5\\x35\\xb5\\x75\\xf5\" +\n\t\"\\x0d\\x8d\\x4d\\xcd\\x2d\\xad\\x6d\\xed\\x1d\\x9d\\x5d\\xdd\\x3d\\xbd\\x7d\\xfd\" +\n\t\"\\x03\\x83\\x43\\xc3\\x23\\xa3\\x63\\xe3\\x13\\x93\\x53\\xd3\\x33\\xb3\\x73\\xf3\" +\n\t\"\\x0b\\x8b\\x4b\\xcb\\x2b\\xab\\x6b\\xeb\\x1b\\x9b\\x5b\\xdb\\x3b\\xbb\\x7b\\xfb\" +\n\t\"\\x07\\x87\\x47\\xc7\\x27\\xa7\\x67\\xe7\\x17\\x97\\x57\\xd7\\x37\\xb7\\x77\\xf7\" +\n\t\"\\x0f\\x8f\\x4f\\xcf\\x2f\\xaf\\x6f\\xef\\x1f\\x9f\\x5f\\xdf\\x3f\\xbf\\x7f\\xff\"\n\nconst len8tab = \"\" +\n\t\"\\x00\\x01\\x02\\x02\\x03\\x03\\x03\\x03\\x04\\x04\\x04\\x04\\x04\\x04\\x04\\x04\" +\n\t\"\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\"\n"},{"name":"bitwise.gno","body":"// bitwise contains bitwise operations for Uint instances.\n// This file includes functions to perform bitwise AND, OR, XOR, and NOT operations, as well as bit shifting.\n// These operations are crucial for manipulating individual bits within a 256-bit unsigned integer.\npackage uint256\n\n// Or sets z = x | y and returns z.\nfunc (z *Uint) Or(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] | y.arr[0]\n\tz.arr[1] = x.arr[1] | y.arr[1]\n\tz.arr[2] = x.arr[2] | y.arr[2]\n\tz.arr[3] = x.arr[3] | y.arr[3]\n\treturn z\n}\n\n// And sets z = x \u0026 y and returns z.\nfunc (z *Uint) And(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026 y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026 y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026 y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026 y.arr[3]\n\treturn z\n}\n\n// Not sets z = ^x and returns z.\nfunc (z *Uint) Not(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = ^x.arr[3], ^x.arr[2], ^x.arr[1], ^x.arr[0]\n\treturn z\n}\n\n// AndNot sets z = x \u0026^ y and returns z.\nfunc (z *Uint) AndNot(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026^ y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026^ y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026^ y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026^ y.arr[3]\n\treturn z\n}\n\n// Xor sets z = x ^ y and returns z.\nfunc (z *Uint) Xor(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] ^ y.arr[0]\n\tz.arr[1] = x.arr[1] ^ y.arr[1]\n\tz.arr[2] = x.arr[2] ^ y.arr[2]\n\tz.arr[3] = x.arr[3] ^ y.arr[3]\n\treturn z\n}\n\n// Lsh sets z = x \u003c\u003c n and returns z.\nfunc (z *Uint) Lsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.lsh64(x)\n\t\tcase 128:\n\t\t\treturn z.lsh128(x)\n\t\tcase 192:\n\t\t\treturn z.lsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.lsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.lsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.lsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[0] \u003e\u003e (64 - n)\n\tz.arr[0] = z.arr[0] \u003c\u003c n\n\nsh64:\n\tb = z.arr[1] \u003e\u003e (64 - n)\n\tz.arr[1] = (z.arr[1] \u003c\u003c n) | a\n\nsh128:\n\ta = z.arr[2] \u003e\u003e (64 - n)\n\tz.arr[2] = (z.arr[2] \u003c\u003c n) | b\n\nsh192:\n\tz.arr[3] = (z.arr[3] \u003c\u003c n) | a\n\n\treturn z\n}\n\n// Rsh sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) Rsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.rsh64(x)\n\t\tcase 128:\n\t\t\treturn z.rsh128(x)\n\t\tcase 192:\n\t\t\treturn z.rsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.rsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.rsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.rsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[3] \u003c\u003c (64 - n)\n\tz.arr[3] = z.arr[3] \u003e\u003e n\n\nsh64:\n\tb = z.arr[2] \u003c\u003c (64 - n)\n\tz.arr[2] = (z.arr[2] \u003e\u003e n) | a\n\nsh128:\n\ta = z.arr[1] \u003c\u003c (64 - n)\n\tz.arr[1] = (z.arr[1] \u003e\u003e n) | b\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\n// SRsh (Signed/Arithmetic right shift)\n// considers z to be a signed integer, during right-shift\n// and sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) SRsh(x *Uint, n uint) *Uint {\n\t// If the MSB is 0, SRsh is same as Rsh.\n\tif !x.isBitSet(255) {\n\t\treturn z.Rsh(x, n)\n\t}\n\tif n%64 == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.srsh64(x)\n\t\tcase 128:\n\t\t\treturn z.srsh128(x)\n\t\tcase 192:\n\t\t\treturn z.srsh192(x)\n\t\tdefault:\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t}\n\tvar a uint64 = MaxUint64 \u003c\u003c (64 - n%64)\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t\tz.srsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.srsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.srsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\tz.arr[3], a = (z.arr[3]\u003e\u003en)|a, z.arr[3]\u003c\u003c(64-n)\n\nsh64:\n\tz.arr[2], a = (z.arr[2]\u003e\u003en)|a, z.arr[2]\u003c\u003c(64-n)\n\nsh128:\n\tz.arr[1], a = (z.arr[1]\u003e\u003en)|a, z.arr[1]\u003c\u003c(64-n)\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\nfunc (z *Uint) lsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[2], x.arr[1], x.arr[0], 0\n\treturn z\n}\n\nfunc (z *Uint) lsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[1], x.arr[0], 0, 0\n\treturn z\n}\n\nfunc (z *Uint) lsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[0], 0, 0, 0\n\treturn z\n}\n\nfunc (z *Uint) rsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) rsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) rsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x.arr[3]\n\treturn z\n}\n\nfunc (z *Uint) srsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) srsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) srsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, x.arr[3]\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package uint256\n\nimport \"testing\"\n\ntype logicOpTest struct {\n\tname string\n\tx Uint\n\ty Uint\n\twant Uint\n}\n\nfunc TestOr(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Or(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAnd(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).And(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"And(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNot(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tx Uint\n\t\twant Uint\n\t}{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Not(\u0026tt.x)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Not(%s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAndNot(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).AndNot(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"AndNot(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestXor(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Xor(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Xor(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"2\"},\n\t\t{\"1\", 64, \"18446744073709551616\"},\n\t\t{\"1\", 128, \"340282366920938463463374607431768211456\"},\n\t\t{\"1\", 192, \"6277101735386680763835789423207666416102355444464034512896\"},\n\t\t{\"1\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"1\", 256, \"0\"},\n\t\t{\"31337\", 0, \"31337\"},\n\t\t{\"31337\", 1, \"62674\"},\n\t\t{\"31337\", 64, \"578065619037836218990592\"},\n\t\t{\"31337\", 128, \"10663428532201448629551770073089320442396672\"},\n\t\t{\"31337\", 192, \"196705537081812415096322133155058642481399512563169449530621952\"},\n\t\t{\"31337\", 193, \"393411074163624830192644266310117284962799025126338899061243904\"},\n\t\t{\"31337\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"31337\", 256, \"0\"},\n\t\t// 64 \u003c n \u003c 128\n\t\t{\"1\", 65, \"36893488147419103232\"},\n\t\t{\"31337\", 100, \"39724366859352024754702188346867712\"},\n\n\t\t// 128 \u003c n \u003c 192\n\t\t{\"1\", 129, \"680564733841876926926749214863536422912\"},\n\t\t{\"31337\", 150, \"44725660946326664792723507424638829088826130956288\"},\n\n\t\t// 192 \u003c n \u003c 256\n\t\t{\"1\", 193, \"12554203470773361527671578846415332832204710888928069025792\"},\n\t\t{\"31337\", 200, \"50356617492943978264658466087695012475238275216171379079839219712\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Lsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"0\"},\n\t\t{\"1\", 64, \"0\"},\n\t\t{\"1\", 128, \"0\"},\n\t\t{\"1\", 192, \"0\"},\n\t\t{\"1\", 255, \"0\"},\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", 255, \"1\"},\n\t\t{\"6277101735386680763835789423207666416102355444464034512896\", 192, \"1\"},\n\t\t{\"340282366920938463463374607431768211456\", 128, \"1\"},\n\t\t{\"18446744073709551616\", 64, \"1\"},\n\t\t{\"393411074163624830192644266310117284962799025126338899061243904\", 193, \"31337\"},\n\t\t{\"196705537081812415096322133155058642481399512563169449530621952\", 192, \"31337\"},\n\t\t{\"10663428532201448629551770073089320442396672\", 128, \"31337\"},\n\t\t{\"578065619037836218990592\", 64, \"31337\"},\n\t\t{twoPow256Sub1, 256, \"0\"},\n\t\t// outliers\n\t\t{\"340282366920938463463374607431768211455\", 129, \"0\"},\n\t\t{\"18446744073709551615\", 65, \"0\"},\n\t\t{twoPow256Sub1, 1, \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Rsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t// Positive numbers (behaves like Rsh)\n\t\t{\"0x0\", 0, \"0x0\"},\n\t\t{\"0x0\", 1, \"0x0\"},\n\t\t{\"0x1\", 0, \"0x1\"},\n\t\t{\"0x1\", 1, \"0x0\"},\n\t\t{\"0x31337\", 0, \"0x31337\"},\n\t\t{\"0x31337\", 4, \"0x3133\"},\n\t\t{\"0x31337\", 8, \"0x313\"},\n\t\t{\"0x31337\", 16, \"0x3\"},\n\t\t{\"0x10000000000000000\", 64, \"0x1\"}, // 2^64 \u003e\u003e 64\n\n\t\t// // Numbers with MSB set (negative numbers in two's complement)\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 4, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// Large positive number close to max value\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 2, \"0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0x7fffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0x7fffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0x7fffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0x0\"},\n\n\t\t// Specific cases\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000001\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 65, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 127, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 129, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 193, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// n \u003e 256\n\t\t{\"0x1\", 257, \"0x0\"},\n\t\t{\"0x31337\", 300, \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).SRsh(x, tt.y)\n\n\t\tif !got.Eq(want) {\n\t\t\tt.Errorf(\"SRsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"// cmp (or, comparisons) includes methods for comparing Uint instances.\n// These comparison functions cover a range of operations including equality checks, less than/greater than\n// evaluations, and specialized comparisons such as signed greater than. These are fundamental for logical\n// decision making based on Uint values.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Cmp compares z and x and returns:\n//\n//\t-1 if z \u003c x\n//\t 0 if z == x\n//\t+1 if z \u003e x\nfunc (z *Uint) Cmp(x *Uint) (r int) {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\td0, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\td1, carry := bits.Sub64(z.arr[1], x.arr[1], carry)\n\td2, carry := bits.Sub64(z.arr[2], x.arr[2], carry)\n\td3, carry := bits.Sub64(z.arr[3], x.arr[3], carry)\n\tif carry == 1 {\n\t\treturn -1\n\t}\n\tif d0|d1|d2|d3 == 0 {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n// IsZero returns true if z == 0\nfunc (z *Uint) IsZero() bool {\n\treturn (z.arr[0] | z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Sign returns:\n//\n//\t-1 if z \u003c 0\n//\t 0 if z == 0\n//\t+1 if z \u003e 0\n//\n// Where z is interpreted as a two's complement signed number\nfunc (z *Uint) Sign() int {\n\tif z.IsZero() {\n\t\treturn 0\n\t}\n\tif z.arr[3] \u003c 0x8000000000000000 {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// LtUint64 returns true if z is smaller than n\nfunc (z *Uint) LtUint64(n uint64) bool {\n\treturn z.arr[0] \u003c n \u0026\u0026 (z.arr[1]|z.arr[2]|z.arr[3]) == 0\n}\n\n// GtUint64 returns true if z is larger than n\nfunc (z *Uint) GtUint64(n uint64) bool {\n\treturn z.arr[0] \u003e n || (z.arr[1]|z.arr[2]|z.arr[3]) != 0\n}\n\n// Lt returns true if z \u003c x\nfunc (z *Uint) Lt(x *Uint) bool {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\t_, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\t_, carry = bits.Sub64(z.arr[1], x.arr[1], carry)\n\t_, carry = bits.Sub64(z.arr[2], x.arr[2], carry)\n\t_, carry = bits.Sub64(z.arr[3], x.arr[3], carry)\n\n\treturn carry != 0\n}\n\n// Gt returns true if z \u003e x\nfunc (z *Uint) Gt(x *Uint) bool {\n\treturn x.Lt(z)\n}\n\n// Lte returns true if z \u003c= x\nfunc (z *Uint) Lte(x *Uint) bool {\n\tcond1 := z.Lt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Gte returns true if z \u003e= x\nfunc (z *Uint) Gte(x *Uint) bool {\n\tcond1 := z.Gt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Eq returns true if z == x\nfunc (z *Uint) Eq(x *Uint) bool {\n\treturn (z.arr[0] == x.arr[0]) \u0026\u0026 (z.arr[1] == x.arr[1]) \u0026\u0026 (z.arr[2] == x.arr[2]) \u0026\u0026 (z.arr[3] == x.arr[3])\n}\n\n// Neq returns true if z != x\nfunc (z *Uint) Neq(x *Uint) bool {\n\treturn !z.Eq(x)\n}\n\n// Sgt interprets z and x as signed integers, and returns\n// true if z \u003e x\nfunc (z *Uint) Sgt(x *Uint) bool {\n\tzSign := z.Sign()\n\txSign := x.Sign()\n\n\tswitch {\n\tcase zSign \u003e= 0 \u0026\u0026 xSign \u003c 0:\n\t\treturn true\n\tcase zSign \u003c 0 \u0026\u0026 xSign \u003e= 0:\n\t\treturn false\n\tdefault:\n\t\treturn z.Gt(x)\n\t}\n}\n"},{"name":"cmp_test.gno","body":"package uint256\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tinput *Uint\n\t\texpected int\n\t}{\n\t\t{\n\t\t\tinput: NewUint(0),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(1),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x7fffffffffffffff),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x8000000000000000),\n\t\t\texpected: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.input.String(), func(t *testing.T) {\n\t\t\tresult := tt.input.Sign()\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Sign() = %d; want %d\", result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"10\", \"10\", 0},\n\t\t{\"10\", \"11\", -1},\n\t\t{\"11\", \"10\", 1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\tgot := x.IsZero()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestLtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint64\n\t\twant bool\n\t}{\n\t\t{\"0\", 1, true},\n\t\t{\"1\", 0, false},\n\t\t{\"10\", 10, false},\n\t\t{\"0xffffffffffffffff\", 0, false},\n\t\t{\"0x10000000000000000\", 10000000000000000, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := parseTestString(t, tc.x)\n\n\t\tgot := x.LtUint64(tc.y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"LtUint64(%s, %d) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_GtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz string\n\t\tn uint64\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"z \u003e n\",\n\t\t\tz: \"1\",\n\t\t\tn: 0,\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"z \u003c n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"z == n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := MustFromDecimal(tt.z)\n\n\t\t\tif got := z.GtUint64(tt.n); got != tt.want {\n\t\t\t\tt.Errorf(\"Uint.GtUint64() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSGT(t *testing.T) {\n\tx := MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\ty := MustFromHex(\"0x0\")\n\tactual := x.Sgt(y)\n\tif actual {\n\t\tt.Fatalf(\"Expected %v false\", actual)\n\t}\n\n\tx = MustFromHex(\"0x0\")\n\ty = MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\tactual = x.Sgt(y)\n\tif !actual {\n\t\tt.Fatalf(\"Expected %v true\", actual)\n\t}\n}\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twant bool\n\t}{\n\t\t{\"0xffffffffffffffff\", \"18446744073709551615\", true},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\", true},\n\t\t{\"0\", \"0\", true},\n\t\t{twoPow256Sub1, twoPow256Sub1, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := parseTestString(t, tt.x)\n\n\t\ty, err := FromDecimal(tt.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tt.x, tt.y, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Lte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"10\", \"20\", true},\n\t\t{\"20\", \"10\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tx, err := FromDecimal(tt.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tif got := z.Lte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Lte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Gte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"20\", \"10\", true},\n\t\t{\"10\", \"20\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := parseTestString(t, tt.z)\n\t\tx := parseTestString(t, tt.x)\n\n\t\tif got := z.Gte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Gte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc parseTestString(_ *testing.T, s string) *Uint {\n\tvar x *Uint\n\n\tif strings.HasPrefix(s, \"0x\") {\n\t\tx = MustFromHex(s)\n\t} else {\n\t\tx = MustFromDecimal(s)\n\t}\n\n\treturn x\n}\n"},{"name":"conversion.gno","body":"// conversions contains methods for converting Uint instances to other types and vice versa.\n// This includes conversions to and from basic types such as uint64 and int32, as well as string representations\n// and byte slices. Additionally, it covers marshaling and unmarshaling for JSON and other text formats.\npackage uint256\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Uint) Uint64() uint64 {\n\treturn z.arr[0]\n}\n\n// Uint64WithOverflow returns the lower 64-bits of z and bool whether overflow occurred\nfunc (z *Uint) Uint64WithOverflow() (uint64, bool) {\n\treturn z.arr[0], (z.arr[1] | z.arr[2] | z.arr[3]) != 0\n}\n\n// SetUint64 sets z to the value x\nfunc (z *Uint) SetUint64(x uint64) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x\n\treturn z\n}\n\n// IsUint64 reports whether z can be represented as a uint64.\nfunc (z *Uint) IsUint64() bool {\n\treturn (z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Dec returns the decimal representation of z.\nfunc (z *Uint) Dec() string {\n\tif z.IsZero() {\n\t\treturn \"0\"\n\t}\n\tif z.IsUint64() {\n\t\treturn strconv.FormatUint(z.Uint64(), 10)\n\t}\n\n\t// The max uint64 value being 18446744073709551615, the largest\n\t// power-of-ten below that is 10000000000000000000.\n\t// When we do a DivMod using that number, the remainder that we\n\t// get back is the lower part of the output.\n\t//\n\t// The ascii-output of remainder will never exceed 19 bytes (since it will be\n\t// below 10000000000000000000).\n\t//\n\t// Algorithm example using 100 as divisor\n\t//\n\t// 12345 % 100 = 45 (rem)\n\t// 12345 / 100 = 123 (quo)\n\t// -\u003e output '45', continue iterate on 123\n\tvar (\n\t\t// out is 98 bytes long: 78 (max size of a string without leading zeroes,\n\t\t// plus slack so we can copy 19 bytes every iteration).\n\t\t// We init it with zeroes, because when strconv appends the ascii representations,\n\t\t// it will omit leading zeroes.\n\t\tout = []byte(\"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\")\n\t\tdivisor = NewUint(10000000000000000000) // 20 digits\n\t\ty = new(Uint).Set(z) // copy to avoid modifying z\n\t\tpos = len(out) // position to write to\n\t\tbuf = make([]byte, 0, 19) // buffer to write uint64:s to\n\t)\n\tfor {\n\t\t// Obtain Q and R for divisor\n\t\tvar quot Uint\n\t\trem := udivrem(quot.arr[:], y.arr[:], divisor)\n\t\ty.Set(\u0026quot) // Set Q for next loop\n\t\t// Convert the R to ascii representation\n\t\tbuf = strconv.AppendUint(buf[:0], rem.Uint64(), 10)\n\t\t// Copy in the ascii digits\n\t\tcopy(out[pos-len(buf):], buf)\n\t\tif y.IsZero() {\n\t\t\tbreak\n\t\t}\n\t\t// Move 19 digits left\n\t\tpos -= 19\n\t}\n\t// skip leading zeroes by only using the 'used size' of buf\n\treturn string(out[pos-len(buf):])\n}\n\nfunc (z *Uint) Scan(src interface{}) error {\n\tif src == nil {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tswitch src := src.(type) {\n\tcase string:\n\t\treturn z.scanScientificFromString(src)\n\tcase []byte:\n\t\treturn z.scanScientificFromString(string(src))\n\t}\n\treturn errors.New(\"default // unsupported type: can't convert to uint256.Uint\")\n}\n\nfunc (z *Uint) scanScientificFromString(src string) error {\n\tif len(src) == 0 {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tidx := strings.IndexByte(src, 'e')\n\tif idx == -1 {\n\t\treturn z.SetFromDecimal(src)\n\t}\n\tif err := z.SetFromDecimal(src[:idx]); err != nil {\n\t\treturn err\n\t}\n\tif src[(idx+1):] == \"0\" {\n\t\treturn nil\n\t}\n\texp := new(Uint)\n\tif err := exp.SetFromDecimal(src[(idx + 1):]); err != nil {\n\t\treturn err\n\t}\n\tif exp.GtUint64(77) { // 10**78 is larger than 2**256\n\t\treturn ErrBig256Range\n\t}\n\texp.Exp(NewUint(10), exp)\n\tif _, overflow := z.MulOverflow(z, exp); overflow {\n\t\treturn ErrBig256Range\n\t}\n\treturn nil\n}\n\n// ToString returns the decimal string representation of z. It returns an empty string if z is nil.\n// OBS: doesn't exist from holiman's uint256\nfunc (z *Uint) String() string {\n\tif z == nil {\n\t\treturn \"\"\n\t}\n\n\treturn z.Dec()\n}\n\n// MarshalJSON implements json.Marshaler.\n// MarshalJSON marshals using the 'decimal string' representation. This is _not_ compatible\n// with big.Uint: big.Uint marshals into JSON 'native' numeric format.\n//\n// The JSON native format is, on some platforms, (e.g. javascript), limited to 53-bit large\n// integer space. Thus, U256 uses string-format, which is not compatible with\n// big.int (big.Uint refuses to unmarshal a string representation).\nfunc (z *Uint) MarshalJSON() ([]byte, error) {\n\treturn []byte(`\"` + z.Dec() + `\"`), nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler. UnmarshalJSON accepts either\n// - Quoted string: either hexadecimal OR decimal\n// - Not quoted string: only decimal\nfunc (z *Uint) UnmarshalJSON(input []byte) error {\n\tif len(input) \u003c 2 || input[0] != '\"' || input[len(input)-1] != '\"' {\n\t\t// if not quoted, it must be decimal\n\t\treturn z.fromDecimal(string(input))\n\t}\n\treturn z.UnmarshalText(input[1 : len(input)-1])\n}\n\n// MarshalText implements encoding.TextMarshaler\n// MarshalText marshals using the decimal representation (compatible with big.Uint)\nfunc (z *Uint) MarshalText() ([]byte, error) {\n\treturn []byte(z.Dec()), nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler. This method\n// can unmarshal either hexadecimal or decimal.\n// - For hexadecimal, the input _must_ be prefixed with 0x or 0X\nfunc (z *Uint) UnmarshalText(input []byte) error {\n\tif len(input) \u003e= 2 \u0026\u0026 input[0] == '0' \u0026\u0026 (input[1] == 'x' || input[1] == 'X') {\n\t\treturn z.fromHex(string(input))\n\t}\n\treturn z.fromDecimal(string(input))\n}\n\n// SetBytes interprets buf as the bytes of a big-endian unsigned\n// integer, sets z to that value, and returns z.\n// If buf is larger than 32 bytes, the last 32 bytes is used.\nfunc (z *Uint) SetBytes(buf []byte) *Uint {\n\tswitch l := len(buf); l {\n\tcase 0:\n\t\tz.Clear()\n\tcase 1:\n\t\tz.SetBytes1(buf)\n\tcase 2:\n\t\tz.SetBytes2(buf)\n\tcase 3:\n\t\tz.SetBytes3(buf)\n\tcase 4:\n\t\tz.SetBytes4(buf)\n\tcase 5:\n\t\tz.SetBytes5(buf)\n\tcase 6:\n\t\tz.SetBytes6(buf)\n\tcase 7:\n\t\tz.SetBytes7(buf)\n\tcase 8:\n\t\tz.SetBytes8(buf)\n\tcase 9:\n\t\tz.SetBytes9(buf)\n\tcase 10:\n\t\tz.SetBytes10(buf)\n\tcase 11:\n\t\tz.SetBytes11(buf)\n\tcase 12:\n\t\tz.SetBytes12(buf)\n\tcase 13:\n\t\tz.SetBytes13(buf)\n\tcase 14:\n\t\tz.SetBytes14(buf)\n\tcase 15:\n\t\tz.SetBytes15(buf)\n\tcase 16:\n\t\tz.SetBytes16(buf)\n\tcase 17:\n\t\tz.SetBytes17(buf)\n\tcase 18:\n\t\tz.SetBytes18(buf)\n\tcase 19:\n\t\tz.SetBytes19(buf)\n\tcase 20:\n\t\tz.SetBytes20(buf)\n\tcase 21:\n\t\tz.SetBytes21(buf)\n\tcase 22:\n\t\tz.SetBytes22(buf)\n\tcase 23:\n\t\tz.SetBytes23(buf)\n\tcase 24:\n\t\tz.SetBytes24(buf)\n\tcase 25:\n\t\tz.SetBytes25(buf)\n\tcase 26:\n\t\tz.SetBytes26(buf)\n\tcase 27:\n\t\tz.SetBytes27(buf)\n\tcase 28:\n\t\tz.SetBytes28(buf)\n\tcase 29:\n\t\tz.SetBytes29(buf)\n\tcase 30:\n\t\tz.SetBytes30(buf)\n\tcase 31:\n\t\tz.SetBytes31(buf)\n\tdefault:\n\t\tz.SetBytes32(buf[l-32:])\n\t}\n\treturn z\n}\n\n// SetBytes1 is identical to SetBytes(in[:1]), but panics is input is too short\nfunc (z *Uint) SetBytes1(in []byte) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(in[0])\n\treturn z\n}\n\n// SetBytes2 is identical to SetBytes(in[:2]), but panics is input is too short\nfunc (z *Uint) SetBytes2(in []byte) *Uint {\n\t_ = in[1] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\treturn z\n}\n\n// SetBytes3 is identical to SetBytes(in[:3]), but panics is input is too short\nfunc (z *Uint) SetBytes3(in []byte) *Uint {\n\t_ = in[2] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\treturn z\n}\n\n// SetBytes4 is identical to SetBytes(in[:4]), but panics is input is too short\nfunc (z *Uint) SetBytes4(in []byte) *Uint {\n\t_ = in[3] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\treturn z\n}\n\n// SetBytes5 is identical to SetBytes(in[:5]), but panics is input is too short\nfunc (z *Uint) SetBytes5(in []byte) *Uint {\n\t_ = in[4] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint40(in[0:5])\n\treturn z\n}\n\n// SetBytes6 is identical to SetBytes(in[:6]), but panics is input is too short\nfunc (z *Uint) SetBytes6(in []byte) *Uint {\n\t_ = in[5] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint48(in[0:6])\n\treturn z\n}\n\n// SetBytes7 is identical to SetBytes(in[:7]), but panics is input is too short\nfunc (z *Uint) SetBytes7(in []byte) *Uint {\n\t_ = in[6] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint56(in[0:7])\n\treturn z\n}\n\n// SetBytes8 is identical to SetBytes(in[:8]), but panics is input is too short\nfunc (z *Uint) SetBytes8(in []byte) *Uint {\n\t_ = in[7] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = binary.BigEndian.Uint64(in[0:8])\n\treturn z\n}\n\n// SetBytes9 is identical to SetBytes(in[:9]), but panics is input is too short\nfunc (z *Uint) SetBytes9(in []byte) *Uint {\n\t_ = in[8] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(in[0])\n\tz.arr[0] = binary.BigEndian.Uint64(in[1:9])\n\treturn z\n}\n\n// SetBytes10 is identical to SetBytes(in[:10]), but panics is input is too short\nfunc (z *Uint) SetBytes10(in []byte) *Uint {\n\t_ = in[9] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[2:10])\n\treturn z\n}\n\n// SetBytes11 is identical to SetBytes(in[:11]), but panics is input is too short\nfunc (z *Uint) SetBytes11(in []byte) *Uint {\n\t_ = in[10] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[0] = binary.BigEndian.Uint64(in[3:11])\n\treturn z\n}\n\n// SetBytes12 is identical to SetBytes(in[:12]), but panics is input is too short\nfunc (z *Uint) SetBytes12(in []byte) *Uint {\n\t_ = in[11] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[4:12])\n\treturn z\n}\n\n// SetBytes13 is identical to SetBytes(in[:13]), but panics is input is too short\nfunc (z *Uint) SetBytes13(in []byte) *Uint {\n\t_ = in[12] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint40(in[0:5])\n\tz.arr[0] = binary.BigEndian.Uint64(in[5:13])\n\treturn z\n}\n\n// SetBytes14 is identical to SetBytes(in[:14]), but panics is input is too short\nfunc (z *Uint) SetBytes14(in []byte) *Uint {\n\t_ = in[13] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint48(in[0:6])\n\tz.arr[0] = binary.BigEndian.Uint64(in[6:14])\n\treturn z\n}\n\n// SetBytes15 is identical to SetBytes(in[:15]), but panics is input is too short\nfunc (z *Uint) SetBytes15(in []byte) *Uint {\n\t_ = in[14] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint56(in[0:7])\n\tz.arr[0] = binary.BigEndian.Uint64(in[7:15])\n\treturn z\n}\n\n// SetBytes16 is identical to SetBytes(in[:16]), but panics is input is too short\nfunc (z *Uint) SetBytes16(in []byte) *Uint {\n\t_ = in[15] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[0] = binary.BigEndian.Uint64(in[8:16])\n\treturn z\n}\n\n// SetBytes17 is identical to SetBytes(in[:17]), but panics is input is too short\nfunc (z *Uint) SetBytes17(in []byte) *Uint {\n\t_ = in[16] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(in[0])\n\tz.arr[1] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[0] = binary.BigEndian.Uint64(in[9:17])\n\treturn z\n}\n\n// SetBytes18 is identical to SetBytes(in[:18]), but panics is input is too short\nfunc (z *Uint) SetBytes18(in []byte) *Uint {\n\t_ = in[17] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[0] = binary.BigEndian.Uint64(in[10:18])\n\treturn z\n}\n\n// SetBytes19 is identical to SetBytes(in[:19]), but panics is input is too short\nfunc (z *Uint) SetBytes19(in []byte) *Uint {\n\t_ = in[18] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[1] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[0] = binary.BigEndian.Uint64(in[11:19])\n\treturn z\n}\n\n// SetBytes20 is identical to SetBytes(in[:20]), but panics is input is too short\nfunc (z *Uint) SetBytes20(in []byte) *Uint {\n\t_ = in[19] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[0] = binary.BigEndian.Uint64(in[12:20])\n\treturn z\n}\n\n// SetBytes21 is identical to SetBytes(in[:21]), but panics is input is too short\nfunc (z *Uint) SetBytes21(in []byte) *Uint {\n\t_ = in[20] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint40(in[0:5])\n\tz.arr[1] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[0] = binary.BigEndian.Uint64(in[13:21])\n\treturn z\n}\n\n// SetBytes22 is identical to SetBytes(in[:22]), but panics is input is too short\nfunc (z *Uint) SetBytes22(in []byte) *Uint {\n\t_ = in[21] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint48(in[0:6])\n\tz.arr[1] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[0] = binary.BigEndian.Uint64(in[14:22])\n\treturn z\n}\n\n// SetBytes23 is identical to SetBytes(in[:23]), but panics is input is too short\nfunc (z *Uint) SetBytes23(in []byte) *Uint {\n\t_ = in[22] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint56(in[0:7])\n\tz.arr[1] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[0] = binary.BigEndian.Uint64(in[15:23])\n\treturn z\n}\n\n// SetBytes24 is identical to SetBytes(in[:24]), but panics is input is too short\nfunc (z *Uint) SetBytes24(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[1] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[0] = binary.BigEndian.Uint64(in[16:24])\n\treturn z\n}\n\n// SetBytes25 is identical to SetBytes(in[:25]), but panics is input is too short\nfunc (z *Uint) SetBytes25(in []byte) *Uint {\n\t_ = in[24] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(in[0])\n\tz.arr[2] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[1] = binary.BigEndian.Uint64(in[9:17])\n\tz.arr[0] = binary.BigEndian.Uint64(in[17:25])\n\treturn z\n}\n\n// SetBytes26 is identical to SetBytes(in[:26]), but panics is input is too short\nfunc (z *Uint) SetBytes26(in []byte) *Uint {\n\t_ = in[25] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[1] = binary.BigEndian.Uint64(in[10:18])\n\tz.arr[0] = binary.BigEndian.Uint64(in[18:26])\n\treturn z\n}\n\n// SetBytes27 is identical to SetBytes(in[:27]), but panics is input is too short\nfunc (z *Uint) SetBytes27(in []byte) *Uint {\n\t_ = in[26] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[2] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[1] = binary.BigEndian.Uint64(in[11:19])\n\tz.arr[0] = binary.BigEndian.Uint64(in[19:27])\n\treturn z\n}\n\n// SetBytes28 is identical to SetBytes(in[:28]), but panics is input is too short\nfunc (z *Uint) SetBytes28(in []byte) *Uint {\n\t_ = in[27] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[1] = binary.BigEndian.Uint64(in[12:20])\n\tz.arr[0] = binary.BigEndian.Uint64(in[20:28])\n\treturn z\n}\n\n// SetBytes29 is identical to SetBytes(in[:29]), but panics is input is too short\nfunc (z *Uint) SetBytes29(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint40(in[0:5])\n\tz.arr[2] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[1] = binary.BigEndian.Uint64(in[13:21])\n\tz.arr[0] = binary.BigEndian.Uint64(in[21:29])\n\treturn z\n}\n\n// SetBytes30 is identical to SetBytes(in[:30]), but panics is input is too short\nfunc (z *Uint) SetBytes30(in []byte) *Uint {\n\t_ = in[29] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint48(in[0:6])\n\tz.arr[2] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[1] = binary.BigEndian.Uint64(in[14:22])\n\tz.arr[0] = binary.BigEndian.Uint64(in[22:30])\n\treturn z\n}\n\n// SetBytes31 is identical to SetBytes(in[:31]), but panics is input is too short\nfunc (z *Uint) SetBytes31(in []byte) *Uint {\n\t_ = in[30] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint56(in[0:7])\n\tz.arr[2] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[1] = binary.BigEndian.Uint64(in[15:23])\n\tz.arr[0] = binary.BigEndian.Uint64(in[23:31])\n\treturn z\n}\n\n// SetBytes32 sets z to the value of the big-endian 256-bit unsigned integer in.\nfunc (z *Uint) SetBytes32(in []byte) *Uint {\n\t_ = in[31] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[2] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[1] = binary.BigEndian.Uint64(in[16:24])\n\tz.arr[0] = binary.BigEndian.Uint64(in[24:32])\n\treturn z\n}\n\n// Utility methods that are \"missing\" among the bigEndian.UintXX methods.\n\n// bigEndianUint40 returns the uint64 value represented by the 5 bytes in big-endian order.\nfunc bigEndianUint40(b []byte) uint64 {\n\t_ = b[4] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[4]) | uint64(b[3])\u003c\u003c8 | uint64(b[2])\u003c\u003c16 | uint64(b[1])\u003c\u003c24 |\n\t\tuint64(b[0])\u003c\u003c32\n}\n\n// bigEndianUint56 returns the uint64 value represented by the 7 bytes in big-endian order.\nfunc bigEndianUint56(b []byte) uint64 {\n\t_ = b[6] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[6]) | uint64(b[5])\u003c\u003c8 | uint64(b[4])\u003c\u003c16 | uint64(b[3])\u003c\u003c24 |\n\t\tuint64(b[2])\u003c\u003c32 | uint64(b[1])\u003c\u003c40 | uint64(b[0])\u003c\u003c48\n}\n\n// bigEndianUint48 returns the uint64 value represented by the 6 bytes in big-endian order.\nfunc bigEndianUint48(b []byte) uint64 {\n\t_ = b[5] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[5]) | uint64(b[4])\u003c\u003c8 | uint64(b[3])\u003c\u003c16 | uint64(b[2])\u003c\u003c24 |\n\t\tuint64(b[1])\u003c\u003c32 | uint64(b[0])\u003c\u003c40\n}\n"},{"name":"conversion_test.gno","body":"package uint256\n\nimport \"testing\"\n\nfunc TestIsUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0x0\", true},\n\t\t{\"0x1\", true},\n\t\t{\"0x10\", true},\n\t\t{\"0xffffffffffffffff\", true},\n\t\t{\"0x10000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\tgot := x.IsUint64()\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsUint64(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDec(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz Uint\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"zero\",\n\t\t\tz: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than 20 digits\",\n\t\t\tz: Uint{arr: [4]uint64{1234567890, 0, 0, 0}},\n\t\t\twant: \"1234567890\",\n\t\t},\n\t\t{\n\t\t\tname: \"max possible value\",\n\t\t\tz: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: twoPow256Sub1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := tt.z.Dec()\n\t\t\tif result != tt.want {\n\t\t\t\tt.Errorf(\"Dec(%v) = %s, want %s\", tt.z, result, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUint_Scan(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\twant *Uint\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tinput: nil,\n\t\t\twant: NewUint(0),\n\t\t},\n\t\t{\n\t\t\tname: \"valid scientific notation\",\n\t\t\tinput: \"1e4\",\n\t\t\twant: NewUint(10000),\n\t\t},\n\t\t{\n\t\t\tname: \"valid decimal string\",\n\t\t\tinput: \"12345\",\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"valid byte slice\",\n\t\t\tinput: []byte(\"12345\"),\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"invalid string\",\n\t\t\tinput: \"invalid\",\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"out of range\",\n\t\t\tinput: \"115792089237316195423570985008687907853269984665640564039457584007913129639936\", // 2^256\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"unsupported type\",\n\t\t\tinput: 123,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := new(Uint)\n\t\t\terr := z.Scan(tt.input)\n\n\t\t\tif tt.wantErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t\tif !z.Eq(tt.want) {\n\t\t\t\t\tt.Errorf(\"Scan() = %v, want %v\", z, tt.want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSetBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected string\n\t}{\n\t\t{[]byte{}, \"0\"},\n\t\t{[]byte{0x01}, \"1\"},\n\t\t{[]byte{0x12, 0x34}, \"4660\"},\n\t\t{[]byte{0x12, 0x34, 0x56}, \"1193046\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78}, \"305419896\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a}, \"78187493530\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"20015998343868\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"5124095576030430\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"1311768467463790320\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"335812727670730321938\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"85968058283706962416180\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"22007822920628982378542166\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"5634002667681019488906794616\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"1442304682926340989160139421850\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"369229998829143293224995691993788\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"94522879700260683065598897150409950\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"24197857203266734864793317670504947440\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"6194651444036284125387089323649266544658\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"1585830769673288736099094866854212235432500\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"405972677036361916441368285914678332270720086\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"103929005321308650608990281194157653061304342136\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"26605825362255014555901511985704359183693911586970\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"6811091292737283726310787068340315951025641366264508\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"1743639370940744633935561489495120883462564189763714270\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"446371678960830626287503741310750946166416432579510853360\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"114271149813972640329600957775552242218602606740354778460178\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"29253414352376995924377845190541374007962267325530823285805620\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"7488874074208510956640728368778591746038340435335890761166238806\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"1917151762997378804900026462407319486985815151445988034858557134456\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"490790851327328974054406774376273788668368678770172936923790626420890\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"125642457939796217357928134240326089899102381765164271852490400363748028\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"32164469232587831643629602365523479014170209731882053594237542493119495390\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t\t// over 32 bytes (last 32 bytes are used)\n\t\t{append([]byte{0xff}, []byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}...), \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t}\n\n\tfor _, test := range tests {\n\t\tz := new(Uint)\n\t\tz.SetBytes(test.input)\n\t\texpected := MustFromDecimal(test.expected)\n\t\tif z.Cmp(expected) != 0 {\n\t\t\tt.Errorf(\"SetBytes(%x) = %s, expected %s\", test.input, z.String(), test.expected)\n\t\t}\n\t}\n}\n"},{"name":"error.gno","body":"package uint256\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrEmptyString = errors.New(\"empty hex string\")\n\tErrSyntax = errors.New(\"invalid hex string\")\n\tErrRange = errors.New(\"number out of range\")\n\tErrMissingPrefix = errors.New(\"hex string without 0x prefix\")\n\tErrEmptyNumber = errors.New(\"hex string \\\"0x\\\"\")\n\tErrLeadingZero = errors.New(\"hex number with leading zero digits\")\n\tErrBig256Range = errors.New(\"hex number \u003e 256 bits\")\n\tErrBadBufferLength = errors.New(\"bad ssz buffer length\")\n\tErrBadEncodedLength = errors.New(\"bad ssz encoded length\")\n\tErrInvalidBase = errors.New(\"invalid base\")\n\tErrInvalidBitSize = errors.New(\"invalid bit size\")\n)\n\ntype u256Error struct {\n\tfn string // function name\n\tinput string\n\terr error\n}\n\nfunc (e *u256Error) Error() string {\n\treturn e.fn + \": \" + e.input + \": \" + e.err.Error()\n}\n\nfunc (e *u256Error) Unwrap() error {\n\treturn e.err\n}\n\nfunc errEmptyString(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyString}\n}\n\nfunc errSyntax(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrSyntax}\n}\n\nfunc errMissingPrefix(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrMissingPrefix}\n}\n\nfunc errEmptyNumber(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyNumber}\n}\n\nfunc errLeadingZero(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrLeadingZero}\n}\n\nfunc errRange(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrRange}\n}\n\nfunc errBig256Range(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBig256Range}\n}\n\nfunc errBadBufferLength(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBadBufferLength}\n}\n\nfunc errInvalidBase(fn string, base int) error {\n\treturn \u0026u256Error{fn: fn, input: string(base), err: ErrInvalidBase}\n}\n\nfunc errInvalidBitSize(fn string, bitSize int) error {\n\treturn \u0026u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize}\n}\n"},{"name":"mod.gno","body":"package uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Some utility functions\n\n// Reciprocal computes a 320-bit value representing 1/m\n//\n// Notes:\n// - specialized for m.arr[3] != 0, hence limited to 2^192 \u003c= m \u003c 2^256\n// - returns zero if m.arr[3] == 0\n// - starts with a 32-bit division, refines with newton-raphson iterations\nfunc Reciprocal(m *Uint) (mu [5]uint64) {\n\tif m.arr[3] == 0 {\n\t\treturn mu\n\t}\n\n\ts := bits.LeadingZeros64(m.arr[3]) // Replace with leadingZeros(m) for general case\n\tp := 255 - s // floor(log_2(m)), m\u003e0\n\n\t// 0 or a power of 2?\n\n\t// Check if at least one bit is set in m.arr[2], m.arr[1] or m.arr[0],\n\t// or at least two bits in m.arr[3]\n\n\tif m.arr[0]|m.arr[1]|m.arr[2]|(m.arr[3]\u0026(m.arr[3]-1)) == 0 {\n\n\t\tmu[4] = ^uint64(0) \u003e\u003e uint(p\u002663)\n\t\tmu[3] = ^uint64(0)\n\t\tmu[2] = ^uint64(0)\n\t\tmu[1] = ^uint64(0)\n\t\tmu[0] = ^uint64(0)\n\n\t\treturn mu\n\t}\n\n\t// Maximise division precision by left-aligning divisor\n\n\tvar (\n\t\ty Uint // left-aligned copy of m\n\t\tr0 uint32 // estimate of 2^31/y\n\t)\n\n\ty.Lsh(m, uint(s)) // 1/2 \u003c y \u003c 1\n\n\t// Extract most significant 32 bits\n\n\tyh := uint32(y.arr[3] \u003e\u003e 32)\n\n\tif yh == 0x80000000 { // Avoid overflow in division\n\t\tr0 = 0xffffffff\n\t} else {\n\t\tr0, _ = bits.Div32(0x80000000, 0, yh)\n\t}\n\n\t// First iteration: 32 -\u003e 64\n\n\tt1 := uint64(r0) // 2^31/y\n\tt1 *= t1 // 2^62/y^2\n\tt1, _ = bits.Mul64(t1, y.arr[3]) // 2^62/y^2 * 2^64/y / 2^64 = 2^62/y\n\n\tr1 := uint64(r0) \u003c\u003c 32 // 2^63/y\n\tr1 -= t1 // 2^63/y - 2^62/y = 2^62/y\n\tr1 *= 2 // 2^63/y\n\n\tif (r1 | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr1 = ^uint64(0)\n\t}\n\n\t// Second iteration: 64 -\u003e 128\n\n\t// square: 2^126/y^2\n\ta2h, a2l := bits.Mul64(r1, r1)\n\n\t// multiply by y: e2h:e2l:b2h = 2^126/y^2 * 2^128/y / 2^128 = 2^126/y\n\tb2h, _ := bits.Mul64(a2l, y.arr[2])\n\tc2h, c2l := bits.Mul64(a2l, y.arr[3])\n\td2h, d2l := bits.Mul64(a2h, y.arr[2])\n\te2h, e2l := bits.Mul64(a2h, y.arr[3])\n\n\tb2h, c := bits.Add64(b2h, c2l, 0)\n\te2l, c = bits.Add64(e2l, c2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t_, c = bits.Add64(b2h, d2l, 0)\n\te2l, c = bits.Add64(e2l, d2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t// subtract: t2h:t2l = 2^127/y - 2^126/y = 2^126/y\n\tt2l, b := bits.Sub64(0, e2l, 0)\n\tt2h, _ := bits.Sub64(r1, e2h, b)\n\n\t// double: r2h:r2l = 2^127/y\n\tr2l, c := bits.Add64(t2l, t2l, 0)\n\tr2h, _ := bits.Add64(t2h, t2h, c)\n\n\tif (r2h | r2l | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr2h = ^uint64(0)\n\t\tr2l = ^uint64(0)\n\t}\n\n\t// Third iteration: 128 -\u003e 192\n\n\t// square r2 (keep 256 bits): 2^190/y^2\n\ta3h, a3l := bits.Mul64(r2l, r2l)\n\tb3h, b3l := bits.Mul64(r2l, r2h)\n\tc3h, c3l := bits.Mul64(r2h, r2h)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\t// multiply by y: q = 2^190/y^2 * 2^192/y / 2^192 = 2^190/y\n\n\tx0 := a3l\n\tx1 := a3h\n\tx2 := c3l\n\tx3 := c3h\n\n\tvar q0, q1, q2, q3, q4, t0 uint64\n\n\tq0, _ = bits.Mul64(x2, y.arr[0])\n\tq1, t0 = bits.Mul64(x3, y.arr[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x1, y.arr[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x3, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x3, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, y.arr[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x3, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\t// subtract: t3 = 2^191/y - 2^190/y = 2^190/y\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\tt3l, b := bits.Sub64(0, q2, b)\n\tt3m, b := bits.Sub64(r2l, q3, b)\n\tt3h, _ := bits.Sub64(r2h, q4, b)\n\n\t// double: r3 = 2^191/y\n\tr3l, c := bits.Add64(t3l, t3l, 0)\n\tr3m, c := bits.Add64(t3m, t3m, c)\n\tr3h, _ := bits.Add64(t3h, t3h, c)\n\n\t// Fourth iteration: 192 -\u003e 320\n\n\t// square r3\n\n\ta4h, a4l := bits.Mul64(r3l, r3l)\n\tb4h, b4l := bits.Mul64(r3l, r3m)\n\tc4h, c4l := bits.Mul64(r3l, r3h)\n\td4h, d4l := bits.Mul64(r3m, r3m)\n\te4h, e4l := bits.Mul64(r3m, r3h)\n\tf4h, f4l := bits.Mul64(r3h, r3h)\n\n\tb4h, c = bits.Add64(b4h, c4l, 0)\n\te4l, c = bits.Add64(e4l, c4h, c)\n\te4h, _ = bits.Add64(e4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\t// multiply by y\n\n\tx1, x0 = bits.Mul64(d4h, y.arr[0])\n\tx3, x2 = bits.Mul64(f4h, y.arr[0])\n\tt1, t0 = bits.Mul64(f4l, y.arr[0])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx3, _ = bits.Add64(x3, 0, c)\n\n\tt1, t0 = bits.Mul64(d4h, y.arr[1])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx4, t0 := bits.Mul64(f4h, y.arr[1])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[1])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[1])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[2])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[2])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx5, t0 := bits.Mul64(f4h, y.arr[2])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[2])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[2])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[3])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[3])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx6, t0 := bits.Mul64(f4h, y.arr[3])\n\tx5, c = bits.Add64(x5, t0, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\tt1, t0 = bits.Mul64(a4l, y.arr[3])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[3])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[3])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, c = bits.Add64(x5, t1, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\n\t// subtract\n\t_, b = bits.Sub64(0, x0, 0)\n\t_, b = bits.Sub64(0, x1, b)\n\tr4l, b := bits.Sub64(0, x2, b)\n\tr4k, b := bits.Sub64(0, x3, b)\n\tr4j, b := bits.Sub64(r3l, x4, b)\n\tr4i, b := bits.Sub64(r3m, x5, b)\n\tr4h, _ := bits.Sub64(r3h, x6, b)\n\n\t// Multiply candidate for 1/4y by y, with full precision\n\n\tx0 = r4l\n\tx1 = r4k\n\tx2 = r4j\n\tx3 = r4i\n\tx4 = r4h\n\n\tq1, q0 = bits.Mul64(x0, y.arr[0])\n\tq3, q2 = bits.Mul64(x2, y.arr[0])\n\tq5, q4 := bits.Mul64(x4, y.arr[0])\n\n\tt1, t0 = bits.Mul64(x1, y.arr[0])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[0])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq6, t0 := bits.Mul64(x4, y.arr[1])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[1])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[1])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq7, t0 := bits.Mul64(x4, y.arr[2])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[2])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq8, t0 := bits.Mul64(x4, y.arr[3])\n\tq7, c = bits.Add64(q7, t0, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq4, c = bits.Add64(q4, t0, 0)\n\tq5, c = bits.Add64(q5, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[3])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, c = bits.Add64(q7, t1, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\t// Final adjustment\n\n\t// subtract q from 1/4\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\t_, b = bits.Sub64(0, q2, b)\n\t_, b = bits.Sub64(0, q3, b)\n\t_, b = bits.Sub64(0, q4, b)\n\t_, b = bits.Sub64(0, q5, b)\n\t_, b = bits.Sub64(0, q6, b)\n\t_, b = bits.Sub64(0, q7, b)\n\t_, b = bits.Sub64(uint64(1)\u003c\u003c62, q8, b)\n\n\t// decrement the result\n\tx0, t := bits.Sub64(r4l, 1, 0)\n\tx1, t = bits.Sub64(r4k, 0, t)\n\tx2, t = bits.Sub64(r4j, 0, t)\n\tx3, t = bits.Sub64(r4i, 0, t)\n\tx4, _ = bits.Sub64(r4h, 0, t)\n\n\t// commit the decrement if the subtraction underflowed (reciprocal was too large)\n\tif b != 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\t// Shift to correct bit alignment, truncating excess bits\n\n\tp = (p \u0026 63) - 1\n\n\tx0, c = bits.Add64(r4l, r4l, 0)\n\tx1, c = bits.Add64(r4k, r4k, c)\n\tx2, c = bits.Add64(r4j, r4j, c)\n\tx3, c = bits.Add64(r4i, r4i, c)\n\tx4, _ = bits.Add64(r4h, r4h, c)\n\n\tif p \u003c 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t\tp = 0 // avoid negative shift below\n\t}\n\n\t{\n\t\tr := uint(p) // right shift\n\t\tl := uint(64 - r) // left shift\n\n\t\tx0 = (r4l \u003e\u003e r) | (r4k \u003c\u003c l)\n\t\tx1 = (r4k \u003e\u003e r) | (r4j \u003c\u003c l)\n\t\tx2 = (r4j \u003e\u003e r) | (r4i \u003c\u003c l)\n\t\tx3 = (r4i \u003e\u003e r) | (r4h \u003c\u003c l)\n\t\tx4 = (r4h \u003e\u003e r)\n\t}\n\n\tif p \u003e 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\tmu[0] = r4l\n\tmu[1] = r4k\n\tmu[2] = r4j\n\tmu[3] = r4i\n\tmu[4] = r4h\n\n\treturn mu\n}\n\n// reduce4 computes the least non-negative residue of x modulo m\n//\n// requires a four-word modulus (m.arr[3] \u003e 1) and its inverse (mu)\nfunc reduce4(x [8]uint64, m *Uint, mu [5]uint64) (z Uint) {\n\t// NB: Most variable names in the comments match the pseudocode for\n\t// \tBarrett reduction in the Handbook of Applied Cryptography.\n\n\t// q1 = x/2^192\n\n\tx0 := x[3]\n\tx1 := x[4]\n\tx2 := x[5]\n\tx3 := x[6]\n\tx4 := x[7]\n\n\t// q2 = q1 * mu; q3 = q2 / 2^320\n\n\tvar q0, q1, q2, q3, q4, q5, t0, t1, c uint64\n\n\tq0, _ = bits.Mul64(x3, mu[0])\n\tq1, t0 = bits.Mul64(x4, mu[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x2, mu[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x4, mu[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x3, mu[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, mu[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x4, mu[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x1, mu[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x3, mu[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, mu[3])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, mu[3])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x4, mu[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, mu[4])\n\t_, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, mu[4])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq5, t0 = bits.Mul64(x4, mu[4])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[4])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[4])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\t// Drop the fractional part of q3\n\n\tq0 = q1\n\tq1 = q2\n\tq2 = q3\n\tq3 = q4\n\tq4 = q5\n\n\t// r1 = x mod 2^320\n\n\tx0 = x[0]\n\tx1 = x[1]\n\tx2 = x[2]\n\tx3 = x[3]\n\tx4 = x[4]\n\n\t// r2 = q3 * m mod 2^320\n\n\tvar r0, r1, r2, r3, r4 uint64\n\n\tr4, r3 = bits.Mul64(q0, m.arr[3])\n\t_, t0 = bits.Mul64(q1, m.arr[3])\n\tr4, _ = bits.Add64(r4, t0, 0)\n\n\tt1, r2 = bits.Mul64(q0, m.arr[2])\n\tr3, c = bits.Add64(r3, t1, 0)\n\t_, t0 = bits.Mul64(q2, m.arr[2])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[2])\n\tr3, c = bits.Add64(r3, t0, 0)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, r1 = bits.Mul64(q0, m.arr[1])\n\tr2, c = bits.Add64(r2, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[1])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[1])\n\tr2, c = bits.Add64(r2, t0, 0)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q3, m.arr[1])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, r0 = bits.Mul64(q0, m.arr[0])\n\tr1, c = bits.Add64(r1, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[0])\n\tr2, c = bits.Add64(r2, t0, c)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q4, m.arr[0])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[0])\n\tr1, c = bits.Add64(r1, t0, 0)\n\tr2, c = bits.Add64(r2, t1, c)\n\tt1, t0 = bits.Mul64(q3, m.arr[0])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\t// r = r1 - r2\n\n\tvar b uint64\n\n\tr0, b = bits.Sub64(x0, r0, 0)\n\tr1, b = bits.Sub64(x1, r1, b)\n\tr2, b = bits.Sub64(x2, r2, b)\n\tr3, b = bits.Sub64(x3, r3, b)\n\tr4, b = bits.Sub64(x4, r4, b)\n\n\t// if r\u003c0 then r+=m\n\n\tif b != 0 {\n\t\tr0, c = bits.Add64(r0, m.arr[0], 0)\n\t\tr1, c = bits.Add64(r1, m.arr[1], c)\n\t\tr2, c = bits.Add64(r2, m.arr[2], c)\n\t\tr3, c = bits.Add64(r3, m.arr[3], c)\n\t\tr4, _ = bits.Add64(r4, 0, c)\n\t}\n\n\t// while (r\u003e=m) r-=m\n\n\tfor {\n\t\t// q = r - m\n\t\tq0, b = bits.Sub64(r0, m.arr[0], 0)\n\t\tq1, b = bits.Sub64(r1, m.arr[1], b)\n\t\tq2, b = bits.Sub64(r2, m.arr[2], b)\n\t\tq3, b = bits.Sub64(r3, m.arr[3], b)\n\t\tq4, b = bits.Sub64(r4, 0, b)\n\n\t\t// if borrow break\n\t\tif b != 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// r = q\n\t\tr4, r3, r2, r1, r0 = q4, q3, q2, q1, q0\n\t}\n\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = r3, r2, r1, r0\n\n\treturn z\n}\n"},{"name":"uint256.gno","body":"// Ported from https://github.com/holiman/uint256\n// This package provides a 256-bit unsigned integer type, Uint256, and associated functions.\npackage uint256\n\nimport (\n\t\"errors\"\n\t\"math/bits\"\n\t\"strconv\"\n)\n\nconst (\n\tMaxUint64 = 1\u003c\u003c64 - 1\n\tuintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63)\n)\n\n// Uint is represented as an array of 4 uint64, in little-endian order,\n// so that Uint[3] is the most significant, and Uint[0] is the least significant\ntype Uint struct {\n\tarr [4]uint64\n}\n\n// NewUint returns a new initialized Uint.\nfunc NewUint(val uint64) *Uint {\n\tz := \u0026Uint{arr: [4]uint64{val, 0, 0, 0}}\n\treturn z\n}\n\n// Zero returns a new Uint initialized to zero.\nfunc Zero() *Uint {\n\treturn NewUint(0)\n}\n\n// One returns a new Uint initialized to one.\nfunc One() *Uint {\n\treturn NewUint(1)\n}\n\n// SetAllOne sets all the bits of z to 1\nfunc (z *Uint) SetAllOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, MaxUint64\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Uint) Set(x *Uint) *Uint {\n\t*z = *x\n\n\treturn z\n}\n\n// SetOne sets z to 1\nfunc (z *Uint) SetOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 1\n\treturn z\n}\n\nconst twoPow256Sub1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\n// SetFromDecimal sets z from the given string, interpreted as a decimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Uint).SetString(..., 10) method.\n// Notable differences:\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0\",\n// - (this method does not accept any negative input as valid))\nfunc (z *Uint) SetFromDecimal(s string) (err error) {\n\t// Remove max one leading +\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\t// Remove any number of leading zeroes\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '0' {\n\t\tvar i int\n\t\tvar c rune\n\t\tfor i, c = range s {\n\t\t\tif c != '0' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ts = s[i:]\n\t}\n\tif len(s) \u003c len(twoPow256Sub1) {\n\t\treturn z.fromDecimal(s)\n\t}\n\tif len(s) == len(twoPow256Sub1) {\n\t\tif s \u003e twoPow256Sub1 {\n\t\t\treturn ErrBig256Range\n\t\t}\n\t\treturn z.fromDecimal(s)\n\t}\n\treturn ErrBig256Range\n}\n\n// FromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string. Numbers larger than 256 bits are not accepted.\nfunc FromDecimal(decimal string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromDecimal(decimal string) *Uint {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// multipliers holds the values that are needed for fromDecimal\nvar multipliers = [5]*Uint{\n\tnil, // represents first round, no multiplication needed\n\t{[4]uint64{10000000000000000000, 0, 0, 0}}, // 10 ^ 19\n\t{[4]uint64{687399551400673280, 5421010862427522170, 0, 0}}, // 10 ^ 38\n\t{[4]uint64{5332261958806667264, 17004971331911604867, 2938735877055718769, 0}}, // 10 ^ 57\n\t{[4]uint64{0, 8607968719199866880, 532749306367912313, 1593091911132452277}}, // 10 ^ 76\n}\n\n// fromDecimal is a helper function to only ever be called via SetFromDecimal\n// this function takes a string and chunks it up, calling ParseUint on it up to 5 times\n// these chunks are then multiplied by the proper power of 10, then added together.\nfunc (z *Uint) fromDecimal(bs string) error {\n\t// first clear the input\n\tz.Clear()\n\t// the maximum value of uint64 is 18446744073709551615, which is 20 characters\n\t// one less means that a string of 19 9's is always within the uint64 limit\n\tvar (\n\t\tnum uint64\n\t\terr error\n\t\tremaining = len(bs)\n\t)\n\tif remaining == 0 {\n\t\treturn errors.New(\"EOF\")\n\t}\n\t// We proceed in steps of 19 characters (nibbles), from least significant to most significant.\n\t// This means that the first (up to) 19 characters do not need to be multiplied.\n\t// In the second iteration, our slice of 19 characters needs to be multipleied\n\t// by a factor of 10^19. Et cetera.\n\tfor i, mult := range multipliers {\n\t\tif remaining \u003c= 0 {\n\t\t\treturn nil // Done\n\t\t} else if remaining \u003e 19 {\n\t\t\tnum, err = strconv.ParseUint(bs[remaining-19:remaining], 10, 64)\n\t\t} else {\n\t\t\t// Final round\n\t\t\tnum, err = strconv.ParseUint(bs, 10, 64)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// add that number to our running total\n\t\tif i == 0 {\n\t\t\tz.SetUint64(num)\n\t\t} else {\n\t\t\tbase := NewUint(num)\n\t\t\tz.Add(z, base.Mul(base, mult))\n\t\t}\n\t\t// Chop off another 19 characters\n\t\tif remaining \u003e 19 {\n\t\t\tbs = bs[0 : remaining-19]\n\t\t}\n\t\tremaining -= 19\n\t}\n\treturn nil\n}\n\n// Byte sets z to the value of the byte at position n,\n// with 'z' considered as a big-endian 32-byte integer\n// if 'n' \u003e 32, f is set to 0\n// Example: f = '5', n=31 =\u003e 5\nfunc (z *Uint) Byte(n *Uint) *Uint {\n\t// in z, z.arr[0] is the least significant\n\tif number, overflow := n.Uint64WithOverflow(); !overflow {\n\t\tif number \u003c 32 {\n\t\t\tnumber := z.arr[4-1-number/8]\n\t\t\toffset := (n.arr[0] \u0026 0x7) \u003c\u003c 3 // 8*(n.d % 8)\n\t\t\tz.arr[0] = (number \u0026 (0xff00000000000000 \u003e\u003e offset)) \u003e\u003e (56 - offset)\n\t\t\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\t\t\treturn z\n\t\t}\n\t}\n\n\treturn z.Clear()\n}\n\n// BitLen returns the number of bits required to represent z\nfunc (z *Uint) BitLen() int {\n\tswitch {\n\tcase z.arr[3] != 0:\n\t\treturn 192 + bits.Len64(z.arr[3])\n\tcase z.arr[2] != 0:\n\t\treturn 128 + bits.Len64(z.arr[2])\n\tcase z.arr[1] != 0:\n\t\treturn 64 + bits.Len64(z.arr[1])\n\tdefault:\n\t\treturn bits.Len64(z.arr[0])\n\t}\n}\n\n// ByteLen returns the number of bytes required to represent z\nfunc (z *Uint) ByteLen() int {\n\treturn (z.BitLen() + 7) / 8\n}\n\n// Clear sets z to 0\nfunc (z *Uint) Clear() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 0\n\treturn z\n}\n\nconst (\n\t// hextable = \"0123456789abcdef\"\n\tbintable = \"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\a\\b\\t\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n\tbadNibble = 0xff\n)\n\n// SetFromHex sets z from the given string, interpreted as a hexadecimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Int).SetString(..., 16) method.\n// Notable differences:\n// - This method _require_ \"0x\" or \"0X\" prefix.\n// - This method does not accept zero-prefixed hex, e.g. \"0x0001\"\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0x0\",\n// - (this method does not accept any negative input as valid)\nfunc (z *Uint) SetFromHex(hex string) error {\n\treturn z.fromHex(hex)\n}\n\n// fromHex is the internal implementation of parsing a hex-string.\nfunc (z *Uint) fromHex(hex string) error {\n\tif err := checkNumberS(hex); err != nil {\n\t\treturn err\n\t}\n\tif len(hex) \u003e 66 {\n\t\treturn ErrBig256Range\n\t}\n\tz.Clear()\n\tend := len(hex)\n\tfor i := 0; i \u003c 4; i++ {\n\t\tstart := end - 16\n\t\tif start \u003c 2 {\n\t\t\tstart = 2\n\t\t}\n\t\tfor ri := start; ri \u003c end; ri++ {\n\t\t\tnib := bintable[hex[ri]]\n\t\t\tif nib == badNibble {\n\t\t\t\treturn ErrSyntax\n\t\t\t}\n\t\t\tz.arr[i] = z.arr[i] \u003c\u003c 4\n\t\t\tz.arr[i] += uint64(nib)\n\t\t}\n\t\tend = start\n\t}\n\treturn nil\n}\n\n// FromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string. The string is required to be '0x'-prefixed\n// Numbers larger than 256 bits are not accepted.\nfunc FromHex(hex string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromHex(hex string) *Uint {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// Clone creates a new Uint identical to z\nfunc (z *Uint) Clone() *Uint {\n\tvar x Uint\n\tx.arr[0] = z.arr[0]\n\tx.arr[1] = z.arr[1]\n\tx.arr[2] = z.arr[2]\n\tx.arr[3] = z.arr[3]\n\n\treturn \u0026x\n}\n"},{"name":"uint256_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestSetAllOne(t *testing.T) {\n\tz := Zero()\n\tz.SetAllOne()\n\tif z.String() != twoPow256Sub1 {\n\t\tt.Errorf(\"Expected all ones, got %s\", z.String())\n\t}\n}\n\nfunc TestByte(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\tposition uint64\n\t\texpected byte\n\t}{\n\t\t{\"0x1000000000000000000000000000000000000000000000000000000000000000\", 0, 16},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, 255},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 31, 255},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tn := NewUint(tt.position)\n\t\tresult := z.Byte(n)\n\n\t\tif result.arr[0] != uint64(tt.expected) {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Position: %d, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.position, tt.expected, result.arr[0])\n\t\t}\n\n\t\t// check other array elements are 0\n\t\tif result.arr[1] != 0 || result.arr[2] != 0 || result.arr[3] != 0 {\n\t\t\tt.Errorf(\"Test case %d failed. Non-zero values in upper bytes\", i)\n\t\t}\n\t}\n\n\t// overflow\n\tz, _ := FromHex(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\")\n\tn := NewUint(32)\n\tresult := z.Byte(n)\n\n\tif !result.IsZero() {\n\t\tt.Errorf(\"Expected zero for position \u003e= 32, got %v\", result)\n\t}\n}\n\nfunc TestBitLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 8},\n\t\t{\"0x100\", 9},\n\t\t{\"0xffff\", 16},\n\t\t{\"0x10000\", 17},\n\t\t{\"0xffffffffffffffff\", 64},\n\t\t{\"0x10000000000000000\", 65},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 128},\n\t\t{\"0x100000000000000000000000000000000\", 129},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 256},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.BitLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestByteLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 1},\n\t\t{\"0x100\", 2},\n\t\t{\"0xffff\", 2},\n\t\t{\"0x10000\", 3},\n\t\t{\"0xffffffffffffffff\", 8},\n\t\t{\"0x10000000000000000\", 9},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 16},\n\t\t{\"0x100000000000000000000000000000000\", 17},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 32},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.ByteLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0x1\", \"1\"},\n\t\t{\"0x100\", \"256\"},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.Clone()\n\t\tif result.String() != tt.expected {\n\t\t\tt.Errorf(\"Test %s failed. Expected %s, got %s\", tt.input, tt.expected, result.String())\n\t\t}\n\t}\n}\n"},{"name":"utils.gno","body":"package uint256\n\nfunc checkNumberS(input string) error {\n\tconst fn = \"UnmarshalText\"\n\tl := len(input)\n\tif l == 0 {\n\t\treturn errEmptyString(fn, input)\n\t}\n\tif l \u003c 2 || input[0] != '0' ||\n\t\t(input[1] != 'x' \u0026\u0026 input[1] != 'X') {\n\t\treturn errMissingPrefix(fn, input)\n\t}\n\tif l == 2 {\n\t\treturn errEmptyNumber(fn, input)\n\t}\n\tif len(input) \u003e 3 \u0026\u0026 input[2] == '0' {\n\t\treturn errLeadingZero(fn, input)\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7SgnI6Oa96KWBAhH0Oa1pcFCdwvps03jsdSpk/ZxcaQLDJ7mJMxGqgTp0Qh5vNVB372tbVBHXl7zkt0hasnoCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"uint256","path":"gno.land/p/demo/uint256","files":[{"name":"LICENSE","body":"BSD 3-Clause License\n\nCopyright 2020 uint256 Authors\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# Fixed size 256-bit math library\n\nThis is a library specialized at replacing the `big.Int` library for math based on 256-bit types.\n\noriginal repository: [uint256](\u003chttps://github.com/holiman/uint256/tree/master\u003e)\n"},{"name":"arithmetic.gno","body":"// arithmetic provides arithmetic operations for Uint objects.\n// This includes basic binary operations such as addition, subtraction, multiplication, division, and modulo operations\n// as well as overflow checks, and negation. These functions are essential for numeric\n// calculations using 256-bit unsigned integers.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Add sets z to the sum x+y\nfunc (z *Uint) Add(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// AddOverflow sets z to the sum x+y, and returns z and whether overflow occurred\nfunc (z *Uint) AddOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Sub sets z to the difference x-y\nfunc (z *Uint) Sub(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// SubOverflow sets z to the difference x-y and returns z and true if the operation underflowed\nfunc (z *Uint) SubOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Neg returns -x mod 2^256.\nfunc (z *Uint) Neg(x *Uint) *Uint {\n\treturn z.Sub(new(Uint), x)\n}\n\n// commented out for possible overflow\n// Mul sets z to the product x*y\nfunc (z *Uint) Mul(x, y *Uint) *Uint {\n\tvar (\n\t\tres Uint\n\t\tcarry uint64\n\t\tres1, res2, res3 uint64\n\t)\n\n\tcarry, res.arr[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tres3 = x.arr[3]*y.arr[0] + carry\n\n\tcarry, res.arr[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tres3 = res3 + x.arr[2]*y.arr[1] + carry\n\n\tcarry, res.arr[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tres3 = res3 + x.arr[1]*y.arr[2] + carry\n\n\tres.arr[3] = res3 + x.arr[0]*y.arr[3]\n\n\treturn z.Set(\u0026res)\n}\n\n// MulOverflow sets z to the product x*y, and returns z and whether overflow occurred\nfunc (z *Uint) MulOverflow(x, y *Uint) (*Uint, bool) {\n\tp := umul(x, y)\n\tcopy(z.arr[:], p[:4])\n\treturn z, (p[4] | p[5] | p[6] | p[7]) != 0\n}\n\n// commented out for possible overflow\n// Div sets z to the quotient x/y for returns z.\n// If y == 0, z is set to 0\nfunc (z *Uint) Div(x, y *Uint) *Uint {\n\tif y.IsZero() || y.Gt(x) {\n\t\treturn z.Clear()\n\t}\n\tif x.Eq(y) {\n\t\treturn z.SetOne()\n\t}\n\t// Shortcut some cases\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() / y.Uint64())\n\t}\n\n\t// At this point, we know\n\t// x/y ; x \u003e y \u003e 0\n\n\tvar quot Uint\n\tudivrem(quot.arr[:], x.arr[:], y)\n\treturn z.Set(\u0026quot)\n}\n\n// MulMod calculates the modulo-m multiplication of x and y and\n// returns z.\n// If m == 0, z is set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) MulMod(x, y, m *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() || m.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tp := umul(x, y)\n\n\tif m.arr[3] != 0 {\n\t\tmu := Reciprocal(m)\n\t\tr := reduce4(p, m, mu)\n\t\treturn z.Set(\u0026r)\n\t}\n\n\tvar (\n\t\tpl Uint\n\t\tph Uint\n\t)\n\n\tpl = Uint{arr: [4]uint64{p[0], p[1], p[2], p[3]}}\n\tph = Uint{arr: [4]uint64{p[4], p[5], p[6], p[7]}}\n\n\t// If the multiplication is within 256 bits use Mod().\n\tif ph.IsZero() {\n\t\treturn z.Mod(\u0026pl, m)\n\t}\n\n\tvar quot [8]uint64\n\trem := udivrem(quot[:], p[:], m)\n\treturn z.Set(\u0026rem)\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// If y == 0, z is set to 0 (OBS: differs from the big.Uint)\nfunc (z *Uint) Mod(x, y *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tswitch x.Cmp(y) {\n\tcase -1:\n\t\t// x \u003c y\n\t\tcopy(z.arr[:], x.arr[:])\n\t\treturn z\n\tcase 0:\n\t\t// x == y\n\t\treturn z.Clear() // They are equal\n\t}\n\n\t// At this point:\n\t// x != 0\n\t// y != 0\n\t// x \u003e y\n\n\t// Shortcut trivial case\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() % y.Uint64())\n\t}\n\n\tvar quot Uint\n\t*z = udivrem(quot.arr[:], x.arr[:], y)\n\treturn z\n}\n\n// DivMod sets z to the quotient x div y and m to the modulus x mod y and returns the pair (z, m) for y != 0.\n// If y == 0, both z and m are set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) DivMod(x, y, m *Uint) (*Uint, *Uint) {\n\tif y.IsZero() {\n\t\treturn z.Clear(), m.Clear()\n\t}\n\tvar quot Uint\n\t*m = udivrem(quot.arr[:], x.arr[:], y)\n\t*z = quot\n\treturn z, m\n}\n\n// Exp sets z = base**exponent mod 2**256, and returns z.\nfunc (z *Uint) Exp(base, exponent *Uint) *Uint {\n\tres := Uint{arr: [4]uint64{1, 0, 0, 0}}\n\tmultiplier := *base\n\texpBitLen := exponent.BitLen()\n\n\tcurBit := 0\n\tword := exponent.arr[0]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 64; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[1]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 128; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[2]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 192; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[3]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 256; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\treturn z.Set(\u0026res)\n}\n\nfunc (z *Uint) squared() {\n\tvar (\n\t\tres Uint\n\t\tcarry0, carry1, carry2 uint64\n\t\tres1, res2 uint64\n\t)\n\n\tcarry0, res.arr[0] = bits.Mul64(z.arr[0], z.arr[0])\n\tcarry0, res1 = umulHop(carry0, z.arr[0], z.arr[1])\n\tcarry0, res2 = umulHop(carry0, z.arr[0], z.arr[2])\n\n\tcarry1, res.arr[1] = umulHop(res1, z.arr[0], z.arr[1])\n\tcarry1, res2 = umulStep(res2, z.arr[1], z.arr[1], carry1)\n\n\tcarry2, res.arr[2] = umulHop(res2, z.arr[0], z.arr[2])\n\n\tres.arr[3] = 2*(z.arr[0]*z.arr[3]+z.arr[1]*z.arr[2]) + carry0 + carry1 + carry2\n\n\tz.Set(\u0026res)\n}\n\n// udivrem divides u by d and produces both quotient and remainder.\n// The quotient is stored in provided quot - len(u)-len(d)+1 words.\n// It loosely follows the Knuth's division algorithm (sometimes referenced as \"schoolbook\" division) using 64-bit words.\n// See Knuth, Volume 2, section 4.3.1, Algorithm D.\nfunc udivrem(quot, u []uint64, d *Uint) (rem Uint) {\n\tvar dLen int\n\tfor i := len(d.arr) - 1; i \u003e= 0; i-- {\n\t\tif d.arr[i] != 0 {\n\t\t\tdLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tshift := uint(bits.LeadingZeros64(d.arr[dLen-1]))\n\n\tvar dnStorage Uint\n\tdn := dnStorage.arr[:dLen]\n\tfor i := dLen - 1; i \u003e 0; i-- {\n\t\tdn[i] = (d.arr[i] \u003c\u003c shift) | (d.arr[i-1] \u003e\u003e (64 - shift))\n\t}\n\tdn[0] = d.arr[0] \u003c\u003c shift\n\n\tvar uLen int\n\tfor i := len(u) - 1; i \u003e= 0; i-- {\n\t\tif u[i] != 0 {\n\t\t\tuLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif uLen \u003c dLen {\n\t\tcopy(rem.arr[:], u)\n\t\treturn rem\n\t}\n\n\tvar unStorage [9]uint64\n\tun := unStorage[:uLen+1]\n\tun[uLen] = u[uLen-1] \u003e\u003e (64 - shift)\n\tfor i := uLen - 1; i \u003e 0; i-- {\n\t\tun[i] = (u[i] \u003c\u003c shift) | (u[i-1] \u003e\u003e (64 - shift))\n\t}\n\tun[0] = u[0] \u003c\u003c shift\n\n\t// TODO: Skip the highest word of numerator if not significant.\n\n\tif dLen == 1 {\n\t\tr := udivremBy1(quot, un, dn[0])\n\t\trem.SetUint64(r \u003e\u003e shift)\n\t\treturn rem\n\t}\n\n\tudivremKnuth(quot, un, dn)\n\n\tfor i := 0; i \u003c dLen-1; i++ {\n\t\trem.arr[i] = (un[i] \u003e\u003e shift) | (un[i+1] \u003c\u003c (64 - shift))\n\t}\n\trem.arr[dLen-1] = un[dLen-1] \u003e\u003e shift\n\n\treturn rem\n}\n\n// umul computes full 256 x 256 -\u003e 512 multiplication.\nfunc umul(x, y *Uint) [8]uint64 {\n\tvar (\n\t\tres [8]uint64\n\t\tcarry, carry4, carry5, carry6 uint64\n\t\tres1, res2, res3, res4, res5 uint64\n\t)\n\n\tcarry, res[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tcarry4, res3 = umulHop(carry, x.arr[3], y.arr[0])\n\n\tcarry, res[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tcarry, res3 = umulStep(res3, x.arr[2], y.arr[1], carry)\n\tcarry5, res4 = umulStep(carry4, x.arr[3], y.arr[1], carry)\n\n\tcarry, res[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tcarry, res3 = umulStep(res3, x.arr[1], y.arr[2], carry)\n\tcarry, res4 = umulStep(res4, x.arr[2], y.arr[2], carry)\n\tcarry6, res5 = umulStep(carry5, x.arr[3], y.arr[2], carry)\n\n\tcarry, res[3] = umulHop(res3, x.arr[0], y.arr[3])\n\tcarry, res[4] = umulStep(res4, x.arr[1], y.arr[3], carry)\n\tcarry, res[5] = umulStep(res5, x.arr[2], y.arr[3], carry)\n\tres[7], res[6] = umulStep(carry6, x.arr[3], y.arr[3], carry)\n\n\treturn res\n}\n\n// umulStep computes (hi * 2^64 + lo) = z + (x * y) + carry.\nfunc umulStep(z, x, y, carry uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry = bits.Add64(lo, carry, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\tlo, carry = bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// umulHop computes (hi * 2^64 + lo) = z + (x * y)\nfunc umulHop(z, x, y uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry := bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// udivremBy1 divides u by single normalized word d and produces both quotient and remainder.\n// The quotient is stored in provided quot.\nfunc udivremBy1(quot, u []uint64, d uint64) (rem uint64) {\n\treciprocal := reciprocal2by1(d)\n\trem = u[len(u)-1] // Set the top word as remainder.\n\tfor j := len(u) - 2; j \u003e= 0; j-- {\n\t\tquot[j], rem = udivrem2by1(rem, u[j], d, reciprocal)\n\t}\n\treturn rem\n}\n\n// udivremKnuth implements the division of u by normalized multiple word d from the Knuth's division algorithm.\n// The quotient is stored in provided quot - len(u)-len(d) words.\n// Updates u to contain the remainder - len(d) words.\nfunc udivremKnuth(quot, u, d []uint64) {\n\tdh := d[len(d)-1]\n\tdl := d[len(d)-2]\n\treciprocal := reciprocal2by1(dh)\n\n\tfor j := len(u) - len(d) - 1; j \u003e= 0; j-- {\n\t\tu2 := u[j+len(d)]\n\t\tu1 := u[j+len(d)-1]\n\t\tu0 := u[j+len(d)-2]\n\n\t\tvar qhat, rhat uint64\n\t\tif u2 \u003e= dh { // Division overflows.\n\t\t\tqhat = ^uint64(0)\n\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t} else {\n\t\t\tqhat, rhat = udivrem2by1(u2, u1, dh, reciprocal)\n\t\t\tph, pl := bits.Mul64(qhat, dl)\n\t\t\tif ph \u003e rhat || (ph == rhat \u0026\u0026 pl \u003e u0) {\n\t\t\t\tqhat--\n\t\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t\t}\n\t\t}\n\n\t\t// Multiply and subtract.\n\t\tborrow := subMulTo(u[j:], d, qhat)\n\t\tu[j+len(d)] = u2 - borrow\n\t\tif u2 \u003c borrow { // Too much subtracted, add back.\n\t\t\tqhat--\n\t\t\tu[j+len(d)] += addTo(u[j:], d)\n\t\t}\n\n\t\tquot[j] = qhat // Store quotient digit.\n\t}\n}\n\n// isBitSet returns true if bit n-th is set, where n = 0 is LSB.\n// The n must be \u003c= 255.\nfunc (z *Uint) isBitSet(n uint) bool {\n\treturn (z.arr[n/64] \u0026 (1 \u003c\u003c (n % 64))) != 0\n}\n\n// addTo computes x += y.\n// Requires len(x) \u003e= len(y).\nfunc addTo(x, y []uint64) uint64 {\n\tvar carry uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\tx[i], carry = bits.Add64(x[i], y[i], carry)\n\t}\n\treturn carry\n}\n\n// subMulTo computes x -= y * multiplier.\n// Requires len(x) \u003e= len(y).\nfunc subMulTo(x, y []uint64, multiplier uint64) uint64 {\n\tvar borrow uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\ts, carry1 := bits.Sub64(x[i], borrow, 0)\n\t\tph, pl := bits.Mul64(y[i], multiplier)\n\t\tt, carry2 := bits.Sub64(s, pl, 0)\n\t\tx[i] = t\n\t\tborrow = ph + carry1 + carry2\n\t}\n\treturn borrow\n}\n\n// reciprocal2by1 computes \u003c^d, ^0\u003e / d.\nfunc reciprocal2by1(d uint64) uint64 {\n\treciprocal, _ := bits.Div64(^d, ^uint64(0), d)\n\treturn reciprocal\n}\n\n// udivrem2by1 divides \u003cuh, ul\u003e / d and produces both quotient and remainder.\n// It uses the provided d's reciprocal.\n// Implementation ported from https://github.com/chfast/intx and is based on\n// \"Improved division by invariant integers\", Algorithm 4.\nfunc udivrem2by1(uh, ul, d, reciprocal uint64) (quot, rem uint64) {\n\tqh, ql := bits.Mul64(reciprocal, uh)\n\tql, carry := bits.Add64(ql, ul, 0)\n\tqh, _ = bits.Add64(qh, uh, carry)\n\tqh++\n\n\tr := ul - qh*d\n\n\tif r \u003e ql {\n\t\tqh--\n\t\tr += d\n\t}\n\n\tif r \u003e= d {\n\t\tqh++\n\t\tr -= d\n\t}\n\n\treturn qh, r\n}\n"},{"name":"arithmetic_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\ntype binOp2Test struct {\n\tx, y, want string\n}\n\nfunc TestAdd(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"3\", \"4\"},\n\t\t{\"10\", \"10\", \"20\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"0\", \"1\", \"1\", false},\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"2\", false},\n\t\t{\"10\", \"10\", \"20\", false},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\", false}, // uint64 overflow, but not Uint256 overflow\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"1\", \"0\", true}, // 2^256 - 1 + 1, should overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", false}, // (2^255 - 1) + 2^255, no overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"0\", true}, // (2^255 - 1) + (2^255 + 1), should overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot, overflow := new(Uint).AddOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tt.overflow {\n\t\t\tt.Errorf(\"AddOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttt.x, tt.y, got.String(), overflow, tt.want, tt.overflow)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"1337\", \"30000\"},\n\t\t{\"2\", \"3\", twoPow256Sub1}, // underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot := new(Uint).Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Sub(%s, %s) = %v, want %v\",\n\t\t\t\ttc.x, tc.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestSubOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"0\", false},\n\t\t{\"10\", \"10\", \"0\", false},\n\t\t{\"31337\", \"1337\", \"30000\", false},\n\t\t{\"0\", \"1\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 0 - 1, should underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"1\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\", false}, // 2^255 - 1, no underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 2^255 - (2^255 + 1), should underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot, overflow := new(Uint).SubOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tc.overflow {\n\t\t\tt.Errorf(\n\t\t\t\t\"SubOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttc.x, tc.y, got.String(), overflow, tc.want, tc.overflow,\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"10\", \"10\", \"100\"},\n\t\t{\"18446744073709551615\", \"2\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantZ string\n\t\twantOver bool\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x1\", false},\n\t\t{\"0x0\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\", false},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", true},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x1\", true},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", \"0x2\", \"0x0\", true},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", false},\n\t\t{\"0x100000000000000000\", \"0x100000000000000000\", \"0x10000000000000000000000000000000000\", false},\n\t\t{\"0x10000000000000000000000000000000\", \"0x10000000000000000000000000000000\", \"0x100000000000000000000000000000000000000000000000000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\twantZ := MustFromHex(tt.wantZ)\n\n\t\tgotZ, gotOver := new(Uint).MulOverflow(x, y)\n\n\t\tif gotZ.Neq(wantZ) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulOverflow(%s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, gotZ.String(), wantZ.String(),\n\t\t\t)\n\t\t}\n\t\tif gotOver != tt.wantOver {\n\t\t\tt.Errorf(\"MulOverflow(%s, %s) = %v, want %v\", tt.x, tt.y, gotOver, tt.wantOver)\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"10445\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"1000000000000000000\", \"3\", \"333333333333333333\"},\n\t\t{twoPow256Sub1, \"2\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Div(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Div(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"2\", \"31337\", \"2\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"2\", \"1\"}, // 2^256 - 1 mod 2\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"3\", \"0\"}, // 2^256 - 1 mod 3\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"}, // 2^256 - 1 mod 2^255\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\tm string\n\t\twant string\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x2\", \"0x1\"},\n\t\t{\"0x10\", \"0x10\", \"0x7\", \"0x4\"},\n\t\t{\"0x100\", \"0x100\", \"0x17\", \"0x9\"},\n\t\t{\"0x31337\", \"0x31337\", \"0x31338\", \"0x1\"},\n\t\t{\"0x0\", \"0x31337\", \"0x31338\", \"0x0\"},\n\t\t{\"0x31337\", \"0x0\", \"0x31338\", \"0x0\"},\n\t\t{\"0x2\", \"0x3\", \"0x5\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\tm := MustFromHex(tt.m)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).MulMod(x, y, m)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulMod(%s, %s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, tt.m, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestDivMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantDiv string\n\t\twantMod string\n\t}{\n\t\t{\"1\", \"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"1\", \"0\"},\n\t\t{\"100\", \"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"3\", \"10445\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\", \"0\"},\n\t\t{\"2\", \"31337\", \"0\", \"2\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twantDiv := MustFromDecimal(tt.wantDiv)\n\t\twantMod := MustFromDecimal(tt.wantMod)\n\n\t\tgotDiv := new(Uint)\n\t\tgotMod := new(Uint)\n\t\tgotDiv.DivMod(x, y, gotMod)\n\n\t\tfor i := range gotDiv.arr {\n\t\t\tif gotDiv.arr[i] != wantDiv.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Div %v, want Div %v\", tt.x, tt.y, gotDiv, wantDiv)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfor i := range gotMod.arr {\n\t\t\tif gotMod.arr[i] != wantMod.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Mod %v, want Mod %v\", tt.x, tt.y, gotMod, wantMod)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"31337\", \"115792089237316195423570985008687907853269984665640564039457584007913129608599\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129608599\", \"31337\"},\n\t\t{\"0\", \"0\"},\n\t\t{\"2\", \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"},\n\t\t{\"1\", twoPow256Sub1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Neg(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Neg(%s) = %v, want %v\", tt.x, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestExp(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"30773171189753\"},\n\t\t{\"31337\", \"0\", \"1\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"2\", \"3\", \"8\"},\n\t\t{\"2\", \"64\", \"18446744073709551616\"},\n\t\t{\"2\", \"128\", \"340282366920938463463374607431768211456\"},\n\t\t{\"2\", \"255\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"2\", \"256\", \"0\"}, // overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Exp(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Exp(%s, %s) = %v, want %v\",\n\t\t\t\ttt.x, tt.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestExp_LargeExponent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbase string\n\t\texponent string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"2^129\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"680564733841876926926749214863536422912\",\n\t\t\texpected: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"2^193\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"12379400392853802746563808384000000000000000000\",\n\t\t\texpected: \"0\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbase := MustFromDecimal(tt.base)\n\t\t\texponent := MustFromDecimal(tt.exponent)\n\t\t\texpected := MustFromDecimal(tt.expected)\n\n\t\t\tresult := new(Uint).Exp(base, exponent)\n\n\t\t\tif result.Neq(expected) {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Test %s failed. Expected %s, got %s\",\n\t\t\t\t\ttt.name, expected.String(), result.String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"bits_table.gno","body":"// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by go run make_tables.go. DO NOT EDIT.\n\npackage uint256\n\nconst ntz8tab = \"\" +\n\t\"\\x08\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x07\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\"\n\nconst pop8tab = \"\" +\n\t\"\\x00\\x01\\x01\\x02\\x01\\x02\\x02\\x03\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\\x05\\x06\\x06\\x07\\x06\\x07\\x07\\x08\"\n\nconst rev8tab = \"\" +\n\t\"\\x00\\x80\\x40\\xc0\\x20\\xa0\\x60\\xe0\\x10\\x90\\x50\\xd0\\x30\\xb0\\x70\\xf0\" +\n\t\"\\x08\\x88\\x48\\xc8\\x28\\xa8\\x68\\xe8\\x18\\x98\\x58\\xd8\\x38\\xb8\\x78\\xf8\" +\n\t\"\\x04\\x84\\x44\\xc4\\x24\\xa4\\x64\\xe4\\x14\\x94\\x54\\xd4\\x34\\xb4\\x74\\xf4\" +\n\t\"\\x0c\\x8c\\x4c\\xcc\\x2c\\xac\\x6c\\xec\\x1c\\x9c\\x5c\\xdc\\x3c\\xbc\\x7c\\xfc\" +\n\t\"\\x02\\x82\\x42\\xc2\\x22\\xa2\\x62\\xe2\\x12\\x92\\x52\\xd2\\x32\\xb2\\x72\\xf2\" +\n\t\"\\x0a\\x8a\\x4a\\xca\\x2a\\xaa\\x6a\\xea\\x1a\\x9a\\x5a\\xda\\x3a\\xba\\x7a\\xfa\" +\n\t\"\\x06\\x86\\x46\\xc6\\x26\\xa6\\x66\\xe6\\x16\\x96\\x56\\xd6\\x36\\xb6\\x76\\xf6\" +\n\t\"\\x0e\\x8e\\x4e\\xce\\x2e\\xae\\x6e\\xee\\x1e\\x9e\\x5e\\xde\\x3e\\xbe\\x7e\\xfe\" +\n\t\"\\x01\\x81\\x41\\xc1\\x21\\xa1\\x61\\xe1\\x11\\x91\\x51\\xd1\\x31\\xb1\\x71\\xf1\" +\n\t\"\\x09\\x89\\x49\\xc9\\x29\\xa9\\x69\\xe9\\x19\\x99\\x59\\xd9\\x39\\xb9\\x79\\xf9\" +\n\t\"\\x05\\x85\\x45\\xc5\\x25\\xa5\\x65\\xe5\\x15\\x95\\x55\\xd5\\x35\\xb5\\x75\\xf5\" +\n\t\"\\x0d\\x8d\\x4d\\xcd\\x2d\\xad\\x6d\\xed\\x1d\\x9d\\x5d\\xdd\\x3d\\xbd\\x7d\\xfd\" +\n\t\"\\x03\\x83\\x43\\xc3\\x23\\xa3\\x63\\xe3\\x13\\x93\\x53\\xd3\\x33\\xb3\\x73\\xf3\" +\n\t\"\\x0b\\x8b\\x4b\\xcb\\x2b\\xab\\x6b\\xeb\\x1b\\x9b\\x5b\\xdb\\x3b\\xbb\\x7b\\xfb\" +\n\t\"\\x07\\x87\\x47\\xc7\\x27\\xa7\\x67\\xe7\\x17\\x97\\x57\\xd7\\x37\\xb7\\x77\\xf7\" +\n\t\"\\x0f\\x8f\\x4f\\xcf\\x2f\\xaf\\x6f\\xef\\x1f\\x9f\\x5f\\xdf\\x3f\\xbf\\x7f\\xff\"\n\nconst len8tab = \"\" +\n\t\"\\x00\\x01\\x02\\x02\\x03\\x03\\x03\\x03\\x04\\x04\\x04\\x04\\x04\\x04\\x04\\x04\" +\n\t\"\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\"\n"},{"name":"bitwise.gno","body":"// bitwise contains bitwise operations for Uint instances.\n// This file includes functions to perform bitwise AND, OR, XOR, and NOT operations, as well as bit shifting.\n// These operations are crucial for manipulating individual bits within a 256-bit unsigned integer.\npackage uint256\n\n// Or sets z = x | y and returns z.\nfunc (z *Uint) Or(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] | y.arr[0]\n\tz.arr[1] = x.arr[1] | y.arr[1]\n\tz.arr[2] = x.arr[2] | y.arr[2]\n\tz.arr[3] = x.arr[3] | y.arr[3]\n\treturn z\n}\n\n// And sets z = x \u0026 y and returns z.\nfunc (z *Uint) And(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026 y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026 y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026 y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026 y.arr[3]\n\treturn z\n}\n\n// Not sets z = ^x and returns z.\nfunc (z *Uint) Not(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = ^x.arr[3], ^x.arr[2], ^x.arr[1], ^x.arr[0]\n\treturn z\n}\n\n// AndNot sets z = x \u0026^ y and returns z.\nfunc (z *Uint) AndNot(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026^ y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026^ y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026^ y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026^ y.arr[3]\n\treturn z\n}\n\n// Xor sets z = x ^ y and returns z.\nfunc (z *Uint) Xor(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] ^ y.arr[0]\n\tz.arr[1] = x.arr[1] ^ y.arr[1]\n\tz.arr[2] = x.arr[2] ^ y.arr[2]\n\tz.arr[3] = x.arr[3] ^ y.arr[3]\n\treturn z\n}\n\n// Lsh sets z = x \u003c\u003c n and returns z.\nfunc (z *Uint) Lsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.lsh64(x)\n\t\tcase 128:\n\t\t\treturn z.lsh128(x)\n\t\tcase 192:\n\t\t\treturn z.lsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.lsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.lsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.lsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[0] \u003e\u003e (64 - n)\n\tz.arr[0] = z.arr[0] \u003c\u003c n\n\nsh64:\n\tb = z.arr[1] \u003e\u003e (64 - n)\n\tz.arr[1] = (z.arr[1] \u003c\u003c n) | a\n\nsh128:\n\ta = z.arr[2] \u003e\u003e (64 - n)\n\tz.arr[2] = (z.arr[2] \u003c\u003c n) | b\n\nsh192:\n\tz.arr[3] = (z.arr[3] \u003c\u003c n) | a\n\n\treturn z\n}\n\n// Rsh sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) Rsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.rsh64(x)\n\t\tcase 128:\n\t\t\treturn z.rsh128(x)\n\t\tcase 192:\n\t\t\treturn z.rsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.rsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.rsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.rsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[3] \u003c\u003c (64 - n)\n\tz.arr[3] = z.arr[3] \u003e\u003e n\n\nsh64:\n\tb = z.arr[2] \u003c\u003c (64 - n)\n\tz.arr[2] = (z.arr[2] \u003e\u003e n) | a\n\nsh128:\n\ta = z.arr[1] \u003c\u003c (64 - n)\n\tz.arr[1] = (z.arr[1] \u003e\u003e n) | b\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\n// SRsh (Signed/Arithmetic right shift)\n// considers z to be a signed integer, during right-shift\n// and sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) SRsh(x *Uint, n uint) *Uint {\n\t// If the MSB is 0, SRsh is same as Rsh.\n\tif !x.isBitSet(255) {\n\t\treturn z.Rsh(x, n)\n\t}\n\tif n%64 == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.srsh64(x)\n\t\tcase 128:\n\t\t\treturn z.srsh128(x)\n\t\tcase 192:\n\t\t\treturn z.srsh192(x)\n\t\tdefault:\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t}\n\tvar a uint64 = MaxUint64 \u003c\u003c (64 - n%64)\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t\tz.srsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.srsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.srsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\tz.arr[3], a = (z.arr[3]\u003e\u003en)|a, z.arr[3]\u003c\u003c(64-n)\n\nsh64:\n\tz.arr[2], a = (z.arr[2]\u003e\u003en)|a, z.arr[2]\u003c\u003c(64-n)\n\nsh128:\n\tz.arr[1], a = (z.arr[1]\u003e\u003en)|a, z.arr[1]\u003c\u003c(64-n)\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\nfunc (z *Uint) lsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[2], x.arr[1], x.arr[0], 0\n\treturn z\n}\n\nfunc (z *Uint) lsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[1], x.arr[0], 0, 0\n\treturn z\n}\n\nfunc (z *Uint) lsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[0], 0, 0, 0\n\treturn z\n}\n\nfunc (z *Uint) rsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) rsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) rsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x.arr[3]\n\treturn z\n}\n\nfunc (z *Uint) srsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) srsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) srsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, x.arr[3]\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package uint256\n\nimport \"testing\"\n\ntype logicOpTest struct {\n\tname string\n\tx Uint\n\ty Uint\n\twant Uint\n}\n\nfunc TestOr(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Or(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAnd(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).And(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"And(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNot(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tx Uint\n\t\twant Uint\n\t}{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Not(\u0026tt.x)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Not(%s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAndNot(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).AndNot(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"AndNot(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestXor(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Xor(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Xor(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"2\"},\n\t\t{\"1\", 64, \"18446744073709551616\"},\n\t\t{\"1\", 128, \"340282366920938463463374607431768211456\"},\n\t\t{\"1\", 192, \"6277101735386680763835789423207666416102355444464034512896\"},\n\t\t{\"1\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"1\", 256, \"0\"},\n\t\t{\"31337\", 0, \"31337\"},\n\t\t{\"31337\", 1, \"62674\"},\n\t\t{\"31337\", 64, \"578065619037836218990592\"},\n\t\t{\"31337\", 128, \"10663428532201448629551770073089320442396672\"},\n\t\t{\"31337\", 192, \"196705537081812415096322133155058642481399512563169449530621952\"},\n\t\t{\"31337\", 193, \"393411074163624830192644266310117284962799025126338899061243904\"},\n\t\t{\"31337\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"31337\", 256, \"0\"},\n\t\t// 64 \u003c n \u003c 128\n\t\t{\"1\", 65, \"36893488147419103232\"},\n\t\t{\"31337\", 100, \"39724366859352024754702188346867712\"},\n\n\t\t// 128 \u003c n \u003c 192\n\t\t{\"1\", 129, \"680564733841876926926749214863536422912\"},\n\t\t{\"31337\", 150, \"44725660946326664792723507424638829088826130956288\"},\n\n\t\t// 192 \u003c n \u003c 256\n\t\t{\"1\", 193, \"12554203470773361527671578846415332832204710888928069025792\"},\n\t\t{\"31337\", 200, \"50356617492943978264658466087695012475238275216171379079839219712\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Lsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"0\"},\n\t\t{\"1\", 64, \"0\"},\n\t\t{\"1\", 128, \"0\"},\n\t\t{\"1\", 192, \"0\"},\n\t\t{\"1\", 255, \"0\"},\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", 255, \"1\"},\n\t\t{\"6277101735386680763835789423207666416102355444464034512896\", 192, \"1\"},\n\t\t{\"340282366920938463463374607431768211456\", 128, \"1\"},\n\t\t{\"18446744073709551616\", 64, \"1\"},\n\t\t{\"393411074163624830192644266310117284962799025126338899061243904\", 193, \"31337\"},\n\t\t{\"196705537081812415096322133155058642481399512563169449530621952\", 192, \"31337\"},\n\t\t{\"10663428532201448629551770073089320442396672\", 128, \"31337\"},\n\t\t{\"578065619037836218990592\", 64, \"31337\"},\n\t\t{twoPow256Sub1, 256, \"0\"},\n\t\t// outliers\n\t\t{\"340282366920938463463374607431768211455\", 129, \"0\"},\n\t\t{\"18446744073709551615\", 65, \"0\"},\n\t\t{twoPow256Sub1, 1, \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Rsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t// Positive numbers (behaves like Rsh)\n\t\t{\"0x0\", 0, \"0x0\"},\n\t\t{\"0x0\", 1, \"0x0\"},\n\t\t{\"0x1\", 0, \"0x1\"},\n\t\t{\"0x1\", 1, \"0x0\"},\n\t\t{\"0x31337\", 0, \"0x31337\"},\n\t\t{\"0x31337\", 4, \"0x3133\"},\n\t\t{\"0x31337\", 8, \"0x313\"},\n\t\t{\"0x31337\", 16, \"0x3\"},\n\t\t{\"0x10000000000000000\", 64, \"0x1\"}, // 2^64 \u003e\u003e 64\n\n\t\t// // Numbers with MSB set (negative numbers in two's complement)\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 4, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// Large positive number close to max value\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 2, \"0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0x7fffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0x7fffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0x7fffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0x0\"},\n\n\t\t// Specific cases\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000001\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 65, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 127, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 129, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 193, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// n \u003e 256\n\t\t{\"0x1\", 257, \"0x0\"},\n\t\t{\"0x31337\", 300, \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).SRsh(x, tt.y)\n\n\t\tif !got.Eq(want) {\n\t\t\tt.Errorf(\"SRsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"// cmp (or, comparisons) includes methods for comparing Uint instances.\n// These comparison functions cover a range of operations including equality checks, less than/greater than\n// evaluations, and specialized comparisons such as signed greater than. These are fundamental for logical\n// decision making based on Uint values.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Cmp compares z and x and returns:\n//\n//\t-1 if z \u003c x\n//\t 0 if z == x\n//\t+1 if z \u003e x\nfunc (z *Uint) Cmp(x *Uint) (r int) {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\td0, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\td1, carry := bits.Sub64(z.arr[1], x.arr[1], carry)\n\td2, carry := bits.Sub64(z.arr[2], x.arr[2], carry)\n\td3, carry := bits.Sub64(z.arr[3], x.arr[3], carry)\n\tif carry == 1 {\n\t\treturn -1\n\t}\n\tif d0|d1|d2|d3 == 0 {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n// IsZero returns true if z == 0\nfunc (z *Uint) IsZero() bool {\n\treturn (z.arr[0] | z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Sign returns:\n//\n//\t-1 if z \u003c 0\n//\t 0 if z == 0\n//\t+1 if z \u003e 0\n//\n// Where z is interpreted as a two's complement signed number\nfunc (z *Uint) Sign() int {\n\tif z.IsZero() {\n\t\treturn 0\n\t}\n\tif z.arr[3] \u003c 0x8000000000000000 {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// LtUint64 returns true if z is smaller than n\nfunc (z *Uint) LtUint64(n uint64) bool {\n\treturn z.arr[0] \u003c n \u0026\u0026 (z.arr[1]|z.arr[2]|z.arr[3]) == 0\n}\n\n// GtUint64 returns true if z is larger than n\nfunc (z *Uint) GtUint64(n uint64) bool {\n\treturn z.arr[0] \u003e n || (z.arr[1]|z.arr[2]|z.arr[3]) != 0\n}\n\n// Lt returns true if z \u003c x\nfunc (z *Uint) Lt(x *Uint) bool {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\t_, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\t_, carry = bits.Sub64(z.arr[1], x.arr[1], carry)\n\t_, carry = bits.Sub64(z.arr[2], x.arr[2], carry)\n\t_, carry = bits.Sub64(z.arr[3], x.arr[3], carry)\n\n\treturn carry != 0\n}\n\n// Gt returns true if z \u003e x\nfunc (z *Uint) Gt(x *Uint) bool {\n\treturn x.Lt(z)\n}\n\n// Lte returns true if z \u003c= x\nfunc (z *Uint) Lte(x *Uint) bool {\n\tcond1 := z.Lt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Gte returns true if z \u003e= x\nfunc (z *Uint) Gte(x *Uint) bool {\n\tcond1 := z.Gt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Eq returns true if z == x\nfunc (z *Uint) Eq(x *Uint) bool {\n\treturn (z.arr[0] == x.arr[0]) \u0026\u0026 (z.arr[1] == x.arr[1]) \u0026\u0026 (z.arr[2] == x.arr[2]) \u0026\u0026 (z.arr[3] == x.arr[3])\n}\n\n// Neq returns true if z != x\nfunc (z *Uint) Neq(x *Uint) bool {\n\treturn !z.Eq(x)\n}\n\n// Sgt interprets z and x as signed integers, and returns\n// true if z \u003e x\nfunc (z *Uint) Sgt(x *Uint) bool {\n\tzSign := z.Sign()\n\txSign := x.Sign()\n\n\tswitch {\n\tcase zSign \u003e= 0 \u0026\u0026 xSign \u003c 0:\n\t\treturn true\n\tcase zSign \u003c 0 \u0026\u0026 xSign \u003e= 0:\n\t\treturn false\n\tdefault:\n\t\treturn z.Gt(x)\n\t}\n}\n"},{"name":"cmp_test.gno","body":"package uint256\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tinput *Uint\n\t\texpected int\n\t}{\n\t\t{\n\t\t\tinput: NewUint(0),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(1),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x7fffffffffffffff),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x8000000000000000),\n\t\t\texpected: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.input.String(), func(t *testing.T) {\n\t\t\tresult := tt.input.Sign()\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Sign() = %d; want %d\", result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"10\", \"10\", 0},\n\t\t{\"10\", \"11\", -1},\n\t\t{\"11\", \"10\", 1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\tgot := x.IsZero()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestLtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint64\n\t\twant bool\n\t}{\n\t\t{\"0\", 1, true},\n\t\t{\"1\", 0, false},\n\t\t{\"10\", 10, false},\n\t\t{\"0xffffffffffffffff\", 0, false},\n\t\t{\"0x10000000000000000\", 10000000000000000, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := parseTestString(t, tc.x)\n\n\t\tgot := x.LtUint64(tc.y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"LtUint64(%s, %d) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_GtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz string\n\t\tn uint64\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"z \u003e n\",\n\t\t\tz: \"1\",\n\t\t\tn: 0,\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"z \u003c n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"z == n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := MustFromDecimal(tt.z)\n\n\t\t\tif got := z.GtUint64(tt.n); got != tt.want {\n\t\t\t\tt.Errorf(\"Uint.GtUint64() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSGT(t *testing.T) {\n\tx := MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\ty := MustFromHex(\"0x0\")\n\tactual := x.Sgt(y)\n\tif actual {\n\t\tt.Fatalf(\"Expected %v false\", actual)\n\t}\n\n\tx = MustFromHex(\"0x0\")\n\ty = MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\tactual = x.Sgt(y)\n\tif !actual {\n\t\tt.Fatalf(\"Expected %v true\", actual)\n\t}\n}\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twant bool\n\t}{\n\t\t{\"0xffffffffffffffff\", \"18446744073709551615\", true},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\", true},\n\t\t{\"0\", \"0\", true},\n\t\t{twoPow256Sub1, twoPow256Sub1, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := parseTestString(t, tt.x)\n\n\t\ty, err := FromDecimal(tt.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tt.x, tt.y, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Lte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"10\", \"20\", true},\n\t\t{\"20\", \"10\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tx, err := FromDecimal(tt.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tif got := z.Lte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Lte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Gte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"20\", \"10\", true},\n\t\t{\"10\", \"20\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := parseTestString(t, tt.z)\n\t\tx := parseTestString(t, tt.x)\n\n\t\tif got := z.Gte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Gte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc parseTestString(_ *testing.T, s string) *Uint {\n\tvar x *Uint\n\n\tif strings.HasPrefix(s, \"0x\") {\n\t\tx = MustFromHex(s)\n\t} else {\n\t\tx = MustFromDecimal(s)\n\t}\n\n\treturn x\n}\n"},{"name":"conversion.gno","body":"// conversions contains methods for converting Uint instances to other types and vice versa.\n// This includes conversions to and from basic types such as uint64 and int32, as well as string representations\n// and byte slices. Additionally, it covers marshaling and unmarshaling for JSON and other text formats.\npackage uint256\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Uint) Uint64() uint64 {\n\treturn z.arr[0]\n}\n\n// Uint64WithOverflow returns the lower 64-bits of z and bool whether overflow occurred\nfunc (z *Uint) Uint64WithOverflow() (uint64, bool) {\n\treturn z.arr[0], (z.arr[1] | z.arr[2] | z.arr[3]) != 0\n}\n\n// SetUint64 sets z to the value x\nfunc (z *Uint) SetUint64(x uint64) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x\n\treturn z\n}\n\n// IsUint64 reports whether z can be represented as a uint64.\nfunc (z *Uint) IsUint64() bool {\n\treturn (z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Dec returns the decimal representation of z.\nfunc (z *Uint) Dec() string {\n\tif z.IsZero() {\n\t\treturn \"0\"\n\t}\n\tif z.IsUint64() {\n\t\treturn strconv.FormatUint(z.Uint64(), 10)\n\t}\n\n\t// The max uint64 value being 18446744073709551615, the largest\n\t// power-of-ten below that is 10000000000000000000.\n\t// When we do a DivMod using that number, the remainder that we\n\t// get back is the lower part of the output.\n\t//\n\t// The ascii-output of remainder will never exceed 19 bytes (since it will be\n\t// below 10000000000000000000).\n\t//\n\t// Algorithm example using 100 as divisor\n\t//\n\t// 12345 % 100 = 45 (rem)\n\t// 12345 / 100 = 123 (quo)\n\t// -\u003e output '45', continue iterate on 123\n\tvar (\n\t\t// out is 98 bytes long: 78 (max size of a string without leading zeroes,\n\t\t// plus slack so we can copy 19 bytes every iteration).\n\t\t// We init it with zeroes, because when strconv appends the ascii representations,\n\t\t// it will omit leading zeroes.\n\t\tout = []byte(\"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\")\n\t\tdivisor = NewUint(10000000000000000000) // 20 digits\n\t\ty = new(Uint).Set(z) // copy to avoid modifying z\n\t\tpos = len(out) // position to write to\n\t\tbuf = make([]byte, 0, 19) // buffer to write uint64:s to\n\t)\n\tfor {\n\t\t// Obtain Q and R for divisor\n\t\tvar quot Uint\n\t\trem := udivrem(quot.arr[:], y.arr[:], divisor)\n\t\ty.Set(\u0026quot) // Set Q for next loop\n\t\t// Convert the R to ascii representation\n\t\tbuf = strconv.AppendUint(buf[:0], rem.Uint64(), 10)\n\t\t// Copy in the ascii digits\n\t\tcopy(out[pos-len(buf):], buf)\n\t\tif y.IsZero() {\n\t\t\tbreak\n\t\t}\n\t\t// Move 19 digits left\n\t\tpos -= 19\n\t}\n\t// skip leading zeroes by only using the 'used size' of buf\n\treturn string(out[pos-len(buf):])\n}\n\nfunc (z *Uint) Scan(src interface{}) error {\n\tif src == nil {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tswitch src := src.(type) {\n\tcase string:\n\t\treturn z.scanScientificFromString(src)\n\tcase []byte:\n\t\treturn z.scanScientificFromString(string(src))\n\t}\n\treturn errors.New(\"default // unsupported type: can't convert to uint256.Uint\")\n}\n\nfunc (z *Uint) scanScientificFromString(src string) error {\n\tif len(src) == 0 {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tidx := strings.IndexByte(src, 'e')\n\tif idx == -1 {\n\t\treturn z.SetFromDecimal(src)\n\t}\n\tif err := z.SetFromDecimal(src[:idx]); err != nil {\n\t\treturn err\n\t}\n\tif src[(idx+1):] == \"0\" {\n\t\treturn nil\n\t}\n\texp := new(Uint)\n\tif err := exp.SetFromDecimal(src[(idx + 1):]); err != nil {\n\t\treturn err\n\t}\n\tif exp.GtUint64(77) { // 10**78 is larger than 2**256\n\t\treturn ErrBig256Range\n\t}\n\texp.Exp(NewUint(10), exp)\n\tif _, overflow := z.MulOverflow(z, exp); overflow {\n\t\treturn ErrBig256Range\n\t}\n\treturn nil\n}\n\n// ToString returns the decimal string representation of z. It returns an empty string if z is nil.\n// OBS: doesn't exist from holiman's uint256\nfunc (z *Uint) String() string {\n\tif z == nil {\n\t\treturn \"\"\n\t}\n\n\treturn z.Dec()\n}\n\n// MarshalJSON implements json.Marshaler.\n// MarshalJSON marshals using the 'decimal string' representation. This is _not_ compatible\n// with big.Uint: big.Uint marshals into JSON 'native' numeric format.\n//\n// The JSON native format is, on some platforms, (e.g. javascript), limited to 53-bit large\n// integer space. Thus, U256 uses string-format, which is not compatible with\n// big.int (big.Uint refuses to unmarshal a string representation).\nfunc (z *Uint) MarshalJSON() ([]byte, error) {\n\treturn []byte(`\"` + z.Dec() + `\"`), nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler. UnmarshalJSON accepts either\n// - Quoted string: either hexadecimal OR decimal\n// - Not quoted string: only decimal\nfunc (z *Uint) UnmarshalJSON(input []byte) error {\n\tif len(input) \u003c 2 || input[0] != '\"' || input[len(input)-1] != '\"' {\n\t\t// if not quoted, it must be decimal\n\t\treturn z.fromDecimal(string(input))\n\t}\n\treturn z.UnmarshalText(input[1 : len(input)-1])\n}\n\n// MarshalText implements encoding.TextMarshaler\n// MarshalText marshals using the decimal representation (compatible with big.Uint)\nfunc (z *Uint) MarshalText() ([]byte, error) {\n\treturn []byte(z.Dec()), nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler. This method\n// can unmarshal either hexadecimal or decimal.\n// - For hexadecimal, the input _must_ be prefixed with 0x or 0X\nfunc (z *Uint) UnmarshalText(input []byte) error {\n\tif len(input) \u003e= 2 \u0026\u0026 input[0] == '0' \u0026\u0026 (input[1] == 'x' || input[1] == 'X') {\n\t\treturn z.fromHex(string(input))\n\t}\n\treturn z.fromDecimal(string(input))\n}\n\n// SetBytes interprets buf as the bytes of a big-endian unsigned\n// integer, sets z to that value, and returns z.\n// If buf is larger than 32 bytes, the last 32 bytes is used.\nfunc (z *Uint) SetBytes(buf []byte) *Uint {\n\tswitch l := len(buf); l {\n\tcase 0:\n\t\tz.Clear()\n\tcase 1:\n\t\tz.SetBytes1(buf)\n\tcase 2:\n\t\tz.SetBytes2(buf)\n\tcase 3:\n\t\tz.SetBytes3(buf)\n\tcase 4:\n\t\tz.SetBytes4(buf)\n\tcase 5:\n\t\tz.SetBytes5(buf)\n\tcase 6:\n\t\tz.SetBytes6(buf)\n\tcase 7:\n\t\tz.SetBytes7(buf)\n\tcase 8:\n\t\tz.SetBytes8(buf)\n\tcase 9:\n\t\tz.SetBytes9(buf)\n\tcase 10:\n\t\tz.SetBytes10(buf)\n\tcase 11:\n\t\tz.SetBytes11(buf)\n\tcase 12:\n\t\tz.SetBytes12(buf)\n\tcase 13:\n\t\tz.SetBytes13(buf)\n\tcase 14:\n\t\tz.SetBytes14(buf)\n\tcase 15:\n\t\tz.SetBytes15(buf)\n\tcase 16:\n\t\tz.SetBytes16(buf)\n\tcase 17:\n\t\tz.SetBytes17(buf)\n\tcase 18:\n\t\tz.SetBytes18(buf)\n\tcase 19:\n\t\tz.SetBytes19(buf)\n\tcase 20:\n\t\tz.SetBytes20(buf)\n\tcase 21:\n\t\tz.SetBytes21(buf)\n\tcase 22:\n\t\tz.SetBytes22(buf)\n\tcase 23:\n\t\tz.SetBytes23(buf)\n\tcase 24:\n\t\tz.SetBytes24(buf)\n\tcase 25:\n\t\tz.SetBytes25(buf)\n\tcase 26:\n\t\tz.SetBytes26(buf)\n\tcase 27:\n\t\tz.SetBytes27(buf)\n\tcase 28:\n\t\tz.SetBytes28(buf)\n\tcase 29:\n\t\tz.SetBytes29(buf)\n\tcase 30:\n\t\tz.SetBytes30(buf)\n\tcase 31:\n\t\tz.SetBytes31(buf)\n\tdefault:\n\t\tz.SetBytes32(buf[l-32:])\n\t}\n\treturn z\n}\n\n// SetBytes1 is identical to SetBytes(in[:1]), but panics is input is too short\nfunc (z *Uint) SetBytes1(in []byte) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(in[0])\n\treturn z\n}\n\n// SetBytes2 is identical to SetBytes(in[:2]), but panics is input is too short\nfunc (z *Uint) SetBytes2(in []byte) *Uint {\n\t_ = in[1] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\treturn z\n}\n\n// SetBytes3 is identical to SetBytes(in[:3]), but panics is input is too short\nfunc (z *Uint) SetBytes3(in []byte) *Uint {\n\t_ = in[2] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\treturn z\n}\n\n// SetBytes4 is identical to SetBytes(in[:4]), but panics is input is too short\nfunc (z *Uint) SetBytes4(in []byte) *Uint {\n\t_ = in[3] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\treturn z\n}\n\n// SetBytes5 is identical to SetBytes(in[:5]), but panics is input is too short\nfunc (z *Uint) SetBytes5(in []byte) *Uint {\n\t_ = in[4] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint40(in[0:5])\n\treturn z\n}\n\n// SetBytes6 is identical to SetBytes(in[:6]), but panics is input is too short\nfunc (z *Uint) SetBytes6(in []byte) *Uint {\n\t_ = in[5] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint48(in[0:6])\n\treturn z\n}\n\n// SetBytes7 is identical to SetBytes(in[:7]), but panics is input is too short\nfunc (z *Uint) SetBytes7(in []byte) *Uint {\n\t_ = in[6] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint56(in[0:7])\n\treturn z\n}\n\n// SetBytes8 is identical to SetBytes(in[:8]), but panics is input is too short\nfunc (z *Uint) SetBytes8(in []byte) *Uint {\n\t_ = in[7] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = binary.BigEndian.Uint64(in[0:8])\n\treturn z\n}\n\n// SetBytes9 is identical to SetBytes(in[:9]), but panics is input is too short\nfunc (z *Uint) SetBytes9(in []byte) *Uint {\n\t_ = in[8] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(in[0])\n\tz.arr[0] = binary.BigEndian.Uint64(in[1:9])\n\treturn z\n}\n\n// SetBytes10 is identical to SetBytes(in[:10]), but panics is input is too short\nfunc (z *Uint) SetBytes10(in []byte) *Uint {\n\t_ = in[9] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[2:10])\n\treturn z\n}\n\n// SetBytes11 is identical to SetBytes(in[:11]), but panics is input is too short\nfunc (z *Uint) SetBytes11(in []byte) *Uint {\n\t_ = in[10] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[0] = binary.BigEndian.Uint64(in[3:11])\n\treturn z\n}\n\n// SetBytes12 is identical to SetBytes(in[:12]), but panics is input is too short\nfunc (z *Uint) SetBytes12(in []byte) *Uint {\n\t_ = in[11] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[4:12])\n\treturn z\n}\n\n// SetBytes13 is identical to SetBytes(in[:13]), but panics is input is too short\nfunc (z *Uint) SetBytes13(in []byte) *Uint {\n\t_ = in[12] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint40(in[0:5])\n\tz.arr[0] = binary.BigEndian.Uint64(in[5:13])\n\treturn z\n}\n\n// SetBytes14 is identical to SetBytes(in[:14]), but panics is input is too short\nfunc (z *Uint) SetBytes14(in []byte) *Uint {\n\t_ = in[13] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint48(in[0:6])\n\tz.arr[0] = binary.BigEndian.Uint64(in[6:14])\n\treturn z\n}\n\n// SetBytes15 is identical to SetBytes(in[:15]), but panics is input is too short\nfunc (z *Uint) SetBytes15(in []byte) *Uint {\n\t_ = in[14] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint56(in[0:7])\n\tz.arr[0] = binary.BigEndian.Uint64(in[7:15])\n\treturn z\n}\n\n// SetBytes16 is identical to SetBytes(in[:16]), but panics is input is too short\nfunc (z *Uint) SetBytes16(in []byte) *Uint {\n\t_ = in[15] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[0] = binary.BigEndian.Uint64(in[8:16])\n\treturn z\n}\n\n// SetBytes17 is identical to SetBytes(in[:17]), but panics is input is too short\nfunc (z *Uint) SetBytes17(in []byte) *Uint {\n\t_ = in[16] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(in[0])\n\tz.arr[1] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[0] = binary.BigEndian.Uint64(in[9:17])\n\treturn z\n}\n\n// SetBytes18 is identical to SetBytes(in[:18]), but panics is input is too short\nfunc (z *Uint) SetBytes18(in []byte) *Uint {\n\t_ = in[17] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[0] = binary.BigEndian.Uint64(in[10:18])\n\treturn z\n}\n\n// SetBytes19 is identical to SetBytes(in[:19]), but panics is input is too short\nfunc (z *Uint) SetBytes19(in []byte) *Uint {\n\t_ = in[18] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[1] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[0] = binary.BigEndian.Uint64(in[11:19])\n\treturn z\n}\n\n// SetBytes20 is identical to SetBytes(in[:20]), but panics is input is too short\nfunc (z *Uint) SetBytes20(in []byte) *Uint {\n\t_ = in[19] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[0] = binary.BigEndian.Uint64(in[12:20])\n\treturn z\n}\n\n// SetBytes21 is identical to SetBytes(in[:21]), but panics is input is too short\nfunc (z *Uint) SetBytes21(in []byte) *Uint {\n\t_ = in[20] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint40(in[0:5])\n\tz.arr[1] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[0] = binary.BigEndian.Uint64(in[13:21])\n\treturn z\n}\n\n// SetBytes22 is identical to SetBytes(in[:22]), but panics is input is too short\nfunc (z *Uint) SetBytes22(in []byte) *Uint {\n\t_ = in[21] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint48(in[0:6])\n\tz.arr[1] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[0] = binary.BigEndian.Uint64(in[14:22])\n\treturn z\n}\n\n// SetBytes23 is identical to SetBytes(in[:23]), but panics is input is too short\nfunc (z *Uint) SetBytes23(in []byte) *Uint {\n\t_ = in[22] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint56(in[0:7])\n\tz.arr[1] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[0] = binary.BigEndian.Uint64(in[15:23])\n\treturn z\n}\n\n// SetBytes24 is identical to SetBytes(in[:24]), but panics is input is too short\nfunc (z *Uint) SetBytes24(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[1] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[0] = binary.BigEndian.Uint64(in[16:24])\n\treturn z\n}\n\n// SetBytes25 is identical to SetBytes(in[:25]), but panics is input is too short\nfunc (z *Uint) SetBytes25(in []byte) *Uint {\n\t_ = in[24] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(in[0])\n\tz.arr[2] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[1] = binary.BigEndian.Uint64(in[9:17])\n\tz.arr[0] = binary.BigEndian.Uint64(in[17:25])\n\treturn z\n}\n\n// SetBytes26 is identical to SetBytes(in[:26]), but panics is input is too short\nfunc (z *Uint) SetBytes26(in []byte) *Uint {\n\t_ = in[25] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[1] = binary.BigEndian.Uint64(in[10:18])\n\tz.arr[0] = binary.BigEndian.Uint64(in[18:26])\n\treturn z\n}\n\n// SetBytes27 is identical to SetBytes(in[:27]), but panics is input is too short\nfunc (z *Uint) SetBytes27(in []byte) *Uint {\n\t_ = in[26] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[2] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[1] = binary.BigEndian.Uint64(in[11:19])\n\tz.arr[0] = binary.BigEndian.Uint64(in[19:27])\n\treturn z\n}\n\n// SetBytes28 is identical to SetBytes(in[:28]), but panics is input is too short\nfunc (z *Uint) SetBytes28(in []byte) *Uint {\n\t_ = in[27] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[1] = binary.BigEndian.Uint64(in[12:20])\n\tz.arr[0] = binary.BigEndian.Uint64(in[20:28])\n\treturn z\n}\n\n// SetBytes29 is identical to SetBytes(in[:29]), but panics is input is too short\nfunc (z *Uint) SetBytes29(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint40(in[0:5])\n\tz.arr[2] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[1] = binary.BigEndian.Uint64(in[13:21])\n\tz.arr[0] = binary.BigEndian.Uint64(in[21:29])\n\treturn z\n}\n\n// SetBytes30 is identical to SetBytes(in[:30]), but panics is input is too short\nfunc (z *Uint) SetBytes30(in []byte) *Uint {\n\t_ = in[29] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint48(in[0:6])\n\tz.arr[2] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[1] = binary.BigEndian.Uint64(in[14:22])\n\tz.arr[0] = binary.BigEndian.Uint64(in[22:30])\n\treturn z\n}\n\n// SetBytes31 is identical to SetBytes(in[:31]), but panics is input is too short\nfunc (z *Uint) SetBytes31(in []byte) *Uint {\n\t_ = in[30] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint56(in[0:7])\n\tz.arr[2] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[1] = binary.BigEndian.Uint64(in[15:23])\n\tz.arr[0] = binary.BigEndian.Uint64(in[23:31])\n\treturn z\n}\n\n// SetBytes32 sets z to the value of the big-endian 256-bit unsigned integer in.\nfunc (z *Uint) SetBytes32(in []byte) *Uint {\n\t_ = in[31] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[2] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[1] = binary.BigEndian.Uint64(in[16:24])\n\tz.arr[0] = binary.BigEndian.Uint64(in[24:32])\n\treturn z\n}\n\n// Utility methods that are \"missing\" among the bigEndian.UintXX methods.\n\n// bigEndianUint40 returns the uint64 value represented by the 5 bytes in big-endian order.\nfunc bigEndianUint40(b []byte) uint64 {\n\t_ = b[4] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[4]) | uint64(b[3])\u003c\u003c8 | uint64(b[2])\u003c\u003c16 | uint64(b[1])\u003c\u003c24 |\n\t\tuint64(b[0])\u003c\u003c32\n}\n\n// bigEndianUint56 returns the uint64 value represented by the 7 bytes in big-endian order.\nfunc bigEndianUint56(b []byte) uint64 {\n\t_ = b[6] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[6]) | uint64(b[5])\u003c\u003c8 | uint64(b[4])\u003c\u003c16 | uint64(b[3])\u003c\u003c24 |\n\t\tuint64(b[2])\u003c\u003c32 | uint64(b[1])\u003c\u003c40 | uint64(b[0])\u003c\u003c48\n}\n\n// bigEndianUint48 returns the uint64 value represented by the 6 bytes in big-endian order.\nfunc bigEndianUint48(b []byte) uint64 {\n\t_ = b[5] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[5]) | uint64(b[4])\u003c\u003c8 | uint64(b[3])\u003c\u003c16 | uint64(b[2])\u003c\u003c24 |\n\t\tuint64(b[1])\u003c\u003c32 | uint64(b[0])\u003c\u003c40\n}\n"},{"name":"conversion_test.gno","body":"package uint256\n\nimport \"testing\"\n\nfunc TestIsUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0x0\", true},\n\t\t{\"0x1\", true},\n\t\t{\"0x10\", true},\n\t\t{\"0xffffffffffffffff\", true},\n\t\t{\"0x10000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\tgot := x.IsUint64()\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsUint64(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDec(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz Uint\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"zero\",\n\t\t\tz: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than 20 digits\",\n\t\t\tz: Uint{arr: [4]uint64{1234567890, 0, 0, 0}},\n\t\t\twant: \"1234567890\",\n\t\t},\n\t\t{\n\t\t\tname: \"max possible value\",\n\t\t\tz: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: twoPow256Sub1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := tt.z.Dec()\n\t\t\tif result != tt.want {\n\t\t\t\tt.Errorf(\"Dec(%v) = %s, want %s\", tt.z, result, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUint_Scan(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\twant *Uint\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tinput: nil,\n\t\t\twant: NewUint(0),\n\t\t},\n\t\t{\n\t\t\tname: \"valid scientific notation\",\n\t\t\tinput: \"1e4\",\n\t\t\twant: NewUint(10000),\n\t\t},\n\t\t{\n\t\t\tname: \"valid decimal string\",\n\t\t\tinput: \"12345\",\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"valid byte slice\",\n\t\t\tinput: []byte(\"12345\"),\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"invalid string\",\n\t\t\tinput: \"invalid\",\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"out of range\",\n\t\t\tinput: \"115792089237316195423570985008687907853269984665640564039457584007913129639936\", // 2^256\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"unsupported type\",\n\t\t\tinput: 123,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := new(Uint)\n\t\t\terr := z.Scan(tt.input)\n\n\t\t\tif tt.wantErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t\tif !z.Eq(tt.want) {\n\t\t\t\t\tt.Errorf(\"Scan() = %v, want %v\", z, tt.want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSetBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected string\n\t}{\n\t\t{[]byte{}, \"0\"},\n\t\t{[]byte{0x01}, \"1\"},\n\t\t{[]byte{0x12, 0x34}, \"4660\"},\n\t\t{[]byte{0x12, 0x34, 0x56}, \"1193046\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78}, \"305419896\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a}, \"78187493530\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"20015998343868\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"5124095576030430\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"1311768467463790320\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"335812727670730321938\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"85968058283706962416180\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"22007822920628982378542166\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"5634002667681019488906794616\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"1442304682926340989160139421850\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"369229998829143293224995691993788\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"94522879700260683065598897150409950\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"24197857203266734864793317670504947440\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"6194651444036284125387089323649266544658\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"1585830769673288736099094866854212235432500\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"405972677036361916441368285914678332270720086\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"103929005321308650608990281194157653061304342136\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"26605825362255014555901511985704359183693911586970\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"6811091292737283726310787068340315951025641366264508\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"1743639370940744633935561489495120883462564189763714270\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"446371678960830626287503741310750946166416432579510853360\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"114271149813972640329600957775552242218602606740354778460178\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"29253414352376995924377845190541374007962267325530823285805620\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"7488874074208510956640728368778591746038340435335890761166238806\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"1917151762997378804900026462407319486985815151445988034858557134456\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"490790851327328974054406774376273788668368678770172936923790626420890\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"125642457939796217357928134240326089899102381765164271852490400363748028\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"32164469232587831643629602365523479014170209731882053594237542493119495390\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t\t// over 32 bytes (last 32 bytes are used)\n\t\t{append([]byte{0xff}, []byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}...), \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t}\n\n\tfor _, test := range tests {\n\t\tz := new(Uint)\n\t\tz.SetBytes(test.input)\n\t\texpected := MustFromDecimal(test.expected)\n\t\tif z.Cmp(expected) != 0 {\n\t\t\tt.Errorf(\"SetBytes(%x) = %s, expected %s\", test.input, z.String(), test.expected)\n\t\t}\n\t}\n}\n"},{"name":"error.gno","body":"package uint256\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrEmptyString = errors.New(\"empty hex string\")\n\tErrSyntax = errors.New(\"invalid hex string\")\n\tErrRange = errors.New(\"number out of range\")\n\tErrMissingPrefix = errors.New(\"hex string without 0x prefix\")\n\tErrEmptyNumber = errors.New(\"hex string \\\"0x\\\"\")\n\tErrLeadingZero = errors.New(\"hex number with leading zero digits\")\n\tErrBig256Range = errors.New(\"hex number \u003e 256 bits\")\n\tErrBadBufferLength = errors.New(\"bad ssz buffer length\")\n\tErrBadEncodedLength = errors.New(\"bad ssz encoded length\")\n\tErrInvalidBase = errors.New(\"invalid base\")\n\tErrInvalidBitSize = errors.New(\"invalid bit size\")\n)\n\ntype u256Error struct {\n\tfn string // function name\n\tinput string\n\terr error\n}\n\nfunc (e *u256Error) Error() string {\n\treturn e.fn + \": \" + e.input + \": \" + e.err.Error()\n}\n\nfunc (e *u256Error) Unwrap() error {\n\treturn e.err\n}\n\nfunc errEmptyString(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyString}\n}\n\nfunc errSyntax(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrSyntax}\n}\n\nfunc errMissingPrefix(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrMissingPrefix}\n}\n\nfunc errEmptyNumber(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyNumber}\n}\n\nfunc errLeadingZero(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrLeadingZero}\n}\n\nfunc errRange(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrRange}\n}\n\nfunc errBig256Range(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBig256Range}\n}\n\nfunc errBadBufferLength(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBadBufferLength}\n}\n\nfunc errInvalidBase(fn string, base int) error {\n\treturn \u0026u256Error{fn: fn, input: string(base), err: ErrInvalidBase}\n}\n\nfunc errInvalidBitSize(fn string, bitSize int) error {\n\treturn \u0026u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize}\n}\n"},{"name":"mod.gno","body":"package uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Some utility functions\n\n// Reciprocal computes a 320-bit value representing 1/m\n//\n// Notes:\n// - specialized for m.arr[3] != 0, hence limited to 2^192 \u003c= m \u003c 2^256\n// - returns zero if m.arr[3] == 0\n// - starts with a 32-bit division, refines with newton-raphson iterations\nfunc Reciprocal(m *Uint) (mu [5]uint64) {\n\tif m.arr[3] == 0 {\n\t\treturn mu\n\t}\n\n\ts := bits.LeadingZeros64(m.arr[3]) // Replace with leadingZeros(m) for general case\n\tp := 255 - s // floor(log_2(m)), m\u003e0\n\n\t// 0 or a power of 2?\n\n\t// Check if at least one bit is set in m.arr[2], m.arr[1] or m.arr[0],\n\t// or at least two bits in m.arr[3]\n\n\tif m.arr[0]|m.arr[1]|m.arr[2]|(m.arr[3]\u0026(m.arr[3]-1)) == 0 {\n\n\t\tmu[4] = ^uint64(0) \u003e\u003e uint(p\u002663)\n\t\tmu[3] = ^uint64(0)\n\t\tmu[2] = ^uint64(0)\n\t\tmu[1] = ^uint64(0)\n\t\tmu[0] = ^uint64(0)\n\n\t\treturn mu\n\t}\n\n\t// Maximise division precision by left-aligning divisor\n\n\tvar (\n\t\ty Uint // left-aligned copy of m\n\t\tr0 uint32 // estimate of 2^31/y\n\t)\n\n\ty.Lsh(m, uint(s)) // 1/2 \u003c y \u003c 1\n\n\t// Extract most significant 32 bits\n\n\tyh := uint32(y.arr[3] \u003e\u003e 32)\n\n\tif yh == 0x80000000 { // Avoid overflow in division\n\t\tr0 = 0xffffffff\n\t} else {\n\t\tr0, _ = bits.Div32(0x80000000, 0, yh)\n\t}\n\n\t// First iteration: 32 -\u003e 64\n\n\tt1 := uint64(r0) // 2^31/y\n\tt1 *= t1 // 2^62/y^2\n\tt1, _ = bits.Mul64(t1, y.arr[3]) // 2^62/y^2 * 2^64/y / 2^64 = 2^62/y\n\n\tr1 := uint64(r0) \u003c\u003c 32 // 2^63/y\n\tr1 -= t1 // 2^63/y - 2^62/y = 2^62/y\n\tr1 *= 2 // 2^63/y\n\n\tif (r1 | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr1 = ^uint64(0)\n\t}\n\n\t// Second iteration: 64 -\u003e 128\n\n\t// square: 2^126/y^2\n\ta2h, a2l := bits.Mul64(r1, r1)\n\n\t// multiply by y: e2h:e2l:b2h = 2^126/y^2 * 2^128/y / 2^128 = 2^126/y\n\tb2h, _ := bits.Mul64(a2l, y.arr[2])\n\tc2h, c2l := bits.Mul64(a2l, y.arr[3])\n\td2h, d2l := bits.Mul64(a2h, y.arr[2])\n\te2h, e2l := bits.Mul64(a2h, y.arr[3])\n\n\tb2h, c := bits.Add64(b2h, c2l, 0)\n\te2l, c = bits.Add64(e2l, c2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t_, c = bits.Add64(b2h, d2l, 0)\n\te2l, c = bits.Add64(e2l, d2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t// subtract: t2h:t2l = 2^127/y - 2^126/y = 2^126/y\n\tt2l, b := bits.Sub64(0, e2l, 0)\n\tt2h, _ := bits.Sub64(r1, e2h, b)\n\n\t// double: r2h:r2l = 2^127/y\n\tr2l, c := bits.Add64(t2l, t2l, 0)\n\tr2h, _ := bits.Add64(t2h, t2h, c)\n\n\tif (r2h | r2l | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr2h = ^uint64(0)\n\t\tr2l = ^uint64(0)\n\t}\n\n\t// Third iteration: 128 -\u003e 192\n\n\t// square r2 (keep 256 bits): 2^190/y^2\n\ta3h, a3l := bits.Mul64(r2l, r2l)\n\tb3h, b3l := bits.Mul64(r2l, r2h)\n\tc3h, c3l := bits.Mul64(r2h, r2h)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\t// multiply by y: q = 2^190/y^2 * 2^192/y / 2^192 = 2^190/y\n\n\tx0 := a3l\n\tx1 := a3h\n\tx2 := c3l\n\tx3 := c3h\n\n\tvar q0, q1, q2, q3, q4, t0 uint64\n\n\tq0, _ = bits.Mul64(x2, y.arr[0])\n\tq1, t0 = bits.Mul64(x3, y.arr[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x1, y.arr[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x3, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x3, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, y.arr[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x3, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\t// subtract: t3 = 2^191/y - 2^190/y = 2^190/y\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\tt3l, b := bits.Sub64(0, q2, b)\n\tt3m, b := bits.Sub64(r2l, q3, b)\n\tt3h, _ := bits.Sub64(r2h, q4, b)\n\n\t// double: r3 = 2^191/y\n\tr3l, c := bits.Add64(t3l, t3l, 0)\n\tr3m, c := bits.Add64(t3m, t3m, c)\n\tr3h, _ := bits.Add64(t3h, t3h, c)\n\n\t// Fourth iteration: 192 -\u003e 320\n\n\t// square r3\n\n\ta4h, a4l := bits.Mul64(r3l, r3l)\n\tb4h, b4l := bits.Mul64(r3l, r3m)\n\tc4h, c4l := bits.Mul64(r3l, r3h)\n\td4h, d4l := bits.Mul64(r3m, r3m)\n\te4h, e4l := bits.Mul64(r3m, r3h)\n\tf4h, f4l := bits.Mul64(r3h, r3h)\n\n\tb4h, c = bits.Add64(b4h, c4l, 0)\n\te4l, c = bits.Add64(e4l, c4h, c)\n\te4h, _ = bits.Add64(e4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\t// multiply by y\n\n\tx1, x0 = bits.Mul64(d4h, y.arr[0])\n\tx3, x2 = bits.Mul64(f4h, y.arr[0])\n\tt1, t0 = bits.Mul64(f4l, y.arr[0])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx3, _ = bits.Add64(x3, 0, c)\n\n\tt1, t0 = bits.Mul64(d4h, y.arr[1])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx4, t0 := bits.Mul64(f4h, y.arr[1])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[1])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[1])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[2])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[2])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx5, t0 := bits.Mul64(f4h, y.arr[2])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[2])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[2])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[3])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[3])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx6, t0 := bits.Mul64(f4h, y.arr[3])\n\tx5, c = bits.Add64(x5, t0, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\tt1, t0 = bits.Mul64(a4l, y.arr[3])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[3])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[3])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, c = bits.Add64(x5, t1, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\n\t// subtract\n\t_, b = bits.Sub64(0, x0, 0)\n\t_, b = bits.Sub64(0, x1, b)\n\tr4l, b := bits.Sub64(0, x2, b)\n\tr4k, b := bits.Sub64(0, x3, b)\n\tr4j, b := bits.Sub64(r3l, x4, b)\n\tr4i, b := bits.Sub64(r3m, x5, b)\n\tr4h, _ := bits.Sub64(r3h, x6, b)\n\n\t// Multiply candidate for 1/4y by y, with full precision\n\n\tx0 = r4l\n\tx1 = r4k\n\tx2 = r4j\n\tx3 = r4i\n\tx4 = r4h\n\n\tq1, q0 = bits.Mul64(x0, y.arr[0])\n\tq3, q2 = bits.Mul64(x2, y.arr[0])\n\tq5, q4 := bits.Mul64(x4, y.arr[0])\n\n\tt1, t0 = bits.Mul64(x1, y.arr[0])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[0])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq6, t0 := bits.Mul64(x4, y.arr[1])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[1])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[1])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq7, t0 := bits.Mul64(x4, y.arr[2])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[2])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq8, t0 := bits.Mul64(x4, y.arr[3])\n\tq7, c = bits.Add64(q7, t0, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq4, c = bits.Add64(q4, t0, 0)\n\tq5, c = bits.Add64(q5, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[3])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, c = bits.Add64(q7, t1, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\t// Final adjustment\n\n\t// subtract q from 1/4\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\t_, b = bits.Sub64(0, q2, b)\n\t_, b = bits.Sub64(0, q3, b)\n\t_, b = bits.Sub64(0, q4, b)\n\t_, b = bits.Sub64(0, q5, b)\n\t_, b = bits.Sub64(0, q6, b)\n\t_, b = bits.Sub64(0, q7, b)\n\t_, b = bits.Sub64(uint64(1)\u003c\u003c62, q8, b)\n\n\t// decrement the result\n\tx0, t := bits.Sub64(r4l, 1, 0)\n\tx1, t = bits.Sub64(r4k, 0, t)\n\tx2, t = bits.Sub64(r4j, 0, t)\n\tx3, t = bits.Sub64(r4i, 0, t)\n\tx4, _ = bits.Sub64(r4h, 0, t)\n\n\t// commit the decrement if the subtraction underflowed (reciprocal was too large)\n\tif b != 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\t// Shift to correct bit alignment, truncating excess bits\n\n\tp = (p \u0026 63) - 1\n\n\tx0, c = bits.Add64(r4l, r4l, 0)\n\tx1, c = bits.Add64(r4k, r4k, c)\n\tx2, c = bits.Add64(r4j, r4j, c)\n\tx3, c = bits.Add64(r4i, r4i, c)\n\tx4, _ = bits.Add64(r4h, r4h, c)\n\n\tif p \u003c 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t\tp = 0 // avoid negative shift below\n\t}\n\n\t{\n\t\tr := uint(p) // right shift\n\t\tl := uint(64 - r) // left shift\n\n\t\tx0 = (r4l \u003e\u003e r) | (r4k \u003c\u003c l)\n\t\tx1 = (r4k \u003e\u003e r) | (r4j \u003c\u003c l)\n\t\tx2 = (r4j \u003e\u003e r) | (r4i \u003c\u003c l)\n\t\tx3 = (r4i \u003e\u003e r) | (r4h \u003c\u003c l)\n\t\tx4 = (r4h \u003e\u003e r)\n\t}\n\n\tif p \u003e 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\tmu[0] = r4l\n\tmu[1] = r4k\n\tmu[2] = r4j\n\tmu[3] = r4i\n\tmu[4] = r4h\n\n\treturn mu\n}\n\n// reduce4 computes the least non-negative residue of x modulo m\n//\n// requires a four-word modulus (m.arr[3] \u003e 1) and its inverse (mu)\nfunc reduce4(x [8]uint64, m *Uint, mu [5]uint64) (z Uint) {\n\t// NB: Most variable names in the comments match the pseudocode for\n\t// \tBarrett reduction in the Handbook of Applied Cryptography.\n\n\t// q1 = x/2^192\n\n\tx0 := x[3]\n\tx1 := x[4]\n\tx2 := x[5]\n\tx3 := x[6]\n\tx4 := x[7]\n\n\t// q2 = q1 * mu; q3 = q2 / 2^320\n\n\tvar q0, q1, q2, q3, q4, q5, t0, t1, c uint64\n\n\tq0, _ = bits.Mul64(x3, mu[0])\n\tq1, t0 = bits.Mul64(x4, mu[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x2, mu[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x4, mu[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x3, mu[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, mu[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x4, mu[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x1, mu[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x3, mu[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, mu[3])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, mu[3])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x4, mu[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, mu[4])\n\t_, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, mu[4])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq5, t0 = bits.Mul64(x4, mu[4])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[4])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[4])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\t// Drop the fractional part of q3\n\n\tq0 = q1\n\tq1 = q2\n\tq2 = q3\n\tq3 = q4\n\tq4 = q5\n\n\t// r1 = x mod 2^320\n\n\tx0 = x[0]\n\tx1 = x[1]\n\tx2 = x[2]\n\tx3 = x[3]\n\tx4 = x[4]\n\n\t// r2 = q3 * m mod 2^320\n\n\tvar r0, r1, r2, r3, r4 uint64\n\n\tr4, r3 = bits.Mul64(q0, m.arr[3])\n\t_, t0 = bits.Mul64(q1, m.arr[3])\n\tr4, _ = bits.Add64(r4, t0, 0)\n\n\tt1, r2 = bits.Mul64(q0, m.arr[2])\n\tr3, c = bits.Add64(r3, t1, 0)\n\t_, t0 = bits.Mul64(q2, m.arr[2])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[2])\n\tr3, c = bits.Add64(r3, t0, 0)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, r1 = bits.Mul64(q0, m.arr[1])\n\tr2, c = bits.Add64(r2, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[1])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[1])\n\tr2, c = bits.Add64(r2, t0, 0)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q3, m.arr[1])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, r0 = bits.Mul64(q0, m.arr[0])\n\tr1, c = bits.Add64(r1, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[0])\n\tr2, c = bits.Add64(r2, t0, c)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q4, m.arr[0])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[0])\n\tr1, c = bits.Add64(r1, t0, 0)\n\tr2, c = bits.Add64(r2, t1, c)\n\tt1, t0 = bits.Mul64(q3, m.arr[0])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\t// r = r1 - r2\n\n\tvar b uint64\n\n\tr0, b = bits.Sub64(x0, r0, 0)\n\tr1, b = bits.Sub64(x1, r1, b)\n\tr2, b = bits.Sub64(x2, r2, b)\n\tr3, b = bits.Sub64(x3, r3, b)\n\tr4, b = bits.Sub64(x4, r4, b)\n\n\t// if r\u003c0 then r+=m\n\n\tif b != 0 {\n\t\tr0, c = bits.Add64(r0, m.arr[0], 0)\n\t\tr1, c = bits.Add64(r1, m.arr[1], c)\n\t\tr2, c = bits.Add64(r2, m.arr[2], c)\n\t\tr3, c = bits.Add64(r3, m.arr[3], c)\n\t\tr4, _ = bits.Add64(r4, 0, c)\n\t}\n\n\t// while (r\u003e=m) r-=m\n\n\tfor {\n\t\t// q = r - m\n\t\tq0, b = bits.Sub64(r0, m.arr[0], 0)\n\t\tq1, b = bits.Sub64(r1, m.arr[1], b)\n\t\tq2, b = bits.Sub64(r2, m.arr[2], b)\n\t\tq3, b = bits.Sub64(r3, m.arr[3], b)\n\t\tq4, b = bits.Sub64(r4, 0, b)\n\n\t\t// if borrow break\n\t\tif b != 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// r = q\n\t\tr4, r3, r2, r1, r0 = q4, q3, q2, q1, q0\n\t}\n\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = r3, r2, r1, r0\n\n\treturn z\n}\n"},{"name":"uint256.gno","body":"// Ported from https://github.com/holiman/uint256\n// This package provides a 256-bit unsigned integer type, Uint256, and associated functions.\npackage uint256\n\nimport (\n\t\"errors\"\n\t\"math/bits\"\n\t\"strconv\"\n)\n\nconst (\n\tMaxUint64 = 1\u003c\u003c64 - 1\n\tuintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63)\n)\n\n// Uint is represented as an array of 4 uint64, in little-endian order,\n// so that Uint[3] is the most significant, and Uint[0] is the least significant\ntype Uint struct {\n\tarr [4]uint64\n}\n\n// NewUint returns a new initialized Uint.\nfunc NewUint(val uint64) *Uint {\n\tz := \u0026Uint{arr: [4]uint64{val, 0, 0, 0}}\n\treturn z\n}\n\n// Zero returns a new Uint initialized to zero.\nfunc Zero() *Uint {\n\treturn NewUint(0)\n}\n\n// One returns a new Uint initialized to one.\nfunc One() *Uint {\n\treturn NewUint(1)\n}\n\n// SetAllOne sets all the bits of z to 1\nfunc (z *Uint) SetAllOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, MaxUint64\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Uint) Set(x *Uint) *Uint {\n\t*z = *x\n\n\treturn z\n}\n\n// SetOne sets z to 1\nfunc (z *Uint) SetOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 1\n\treturn z\n}\n\nconst twoPow256Sub1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\n// SetFromDecimal sets z from the given string, interpreted as a decimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Uint).SetString(..., 10) method.\n// Notable differences:\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0\",\n// - (this method does not accept any negative input as valid))\nfunc (z *Uint) SetFromDecimal(s string) (err error) {\n\t// Remove max one leading +\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\t// Remove any number of leading zeroes\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '0' {\n\t\tvar i int\n\t\tvar c rune\n\t\tfor i, c = range s {\n\t\t\tif c != '0' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ts = s[i:]\n\t}\n\tif len(s) \u003c len(twoPow256Sub1) {\n\t\treturn z.fromDecimal(s)\n\t}\n\tif len(s) == len(twoPow256Sub1) {\n\t\tif s \u003e twoPow256Sub1 {\n\t\t\treturn ErrBig256Range\n\t\t}\n\t\treturn z.fromDecimal(s)\n\t}\n\treturn ErrBig256Range\n}\n\n// FromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string. Numbers larger than 256 bits are not accepted.\nfunc FromDecimal(decimal string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromDecimal(decimal string) *Uint {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// multipliers holds the values that are needed for fromDecimal\nvar multipliers = [5]*Uint{\n\tnil, // represents first round, no multiplication needed\n\t{[4]uint64{10000000000000000000, 0, 0, 0}}, // 10 ^ 19\n\t{[4]uint64{687399551400673280, 5421010862427522170, 0, 0}}, // 10 ^ 38\n\t{[4]uint64{5332261958806667264, 17004971331911604867, 2938735877055718769, 0}}, // 10 ^ 57\n\t{[4]uint64{0, 8607968719199866880, 532749306367912313, 1593091911132452277}}, // 10 ^ 76\n}\n\n// fromDecimal is a helper function to only ever be called via SetFromDecimal\n// this function takes a string and chunks it up, calling ParseUint on it up to 5 times\n// these chunks are then multiplied by the proper power of 10, then added together.\nfunc (z *Uint) fromDecimal(bs string) error {\n\t// first clear the input\n\tz.Clear()\n\t// the maximum value of uint64 is 18446744073709551615, which is 20 characters\n\t// one less means that a string of 19 9's is always within the uint64 limit\n\tvar (\n\t\tnum uint64\n\t\terr error\n\t\tremaining = len(bs)\n\t)\n\tif remaining == 0 {\n\t\treturn errors.New(\"EOF\")\n\t}\n\t// We proceed in steps of 19 characters (nibbles), from least significant to most significant.\n\t// This means that the first (up to) 19 characters do not need to be multiplied.\n\t// In the second iteration, our slice of 19 characters needs to be multipleied\n\t// by a factor of 10^19. Et cetera.\n\tfor i, mult := range multipliers {\n\t\tif remaining \u003c= 0 {\n\t\t\treturn nil // Done\n\t\t} else if remaining \u003e 19 {\n\t\t\tnum, err = strconv.ParseUint(bs[remaining-19:remaining], 10, 64)\n\t\t} else {\n\t\t\t// Final round\n\t\t\tnum, err = strconv.ParseUint(bs, 10, 64)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// add that number to our running total\n\t\tif i == 0 {\n\t\t\tz.SetUint64(num)\n\t\t} else {\n\t\t\tbase := NewUint(num)\n\t\t\tz.Add(z, base.Mul(base, mult))\n\t\t}\n\t\t// Chop off another 19 characters\n\t\tif remaining \u003e 19 {\n\t\t\tbs = bs[0 : remaining-19]\n\t\t}\n\t\tremaining -= 19\n\t}\n\treturn nil\n}\n\n// Byte sets z to the value of the byte at position n,\n// with 'z' considered as a big-endian 32-byte integer\n// if 'n' \u003e 32, f is set to 0\n// Example: f = '5', n=31 =\u003e 5\nfunc (z *Uint) Byte(n *Uint) *Uint {\n\t// in z, z.arr[0] is the least significant\n\tif number, overflow := n.Uint64WithOverflow(); !overflow {\n\t\tif number \u003c 32 {\n\t\t\tnumber := z.arr[4-1-number/8]\n\t\t\toffset := (n.arr[0] \u0026 0x7) \u003c\u003c 3 // 8*(n.d % 8)\n\t\t\tz.arr[0] = (number \u0026 (0xff00000000000000 \u003e\u003e offset)) \u003e\u003e (56 - offset)\n\t\t\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\t\t\treturn z\n\t\t}\n\t}\n\n\treturn z.Clear()\n}\n\n// BitLen returns the number of bits required to represent z\nfunc (z *Uint) BitLen() int {\n\tswitch {\n\tcase z.arr[3] != 0:\n\t\treturn 192 + bits.Len64(z.arr[3])\n\tcase z.arr[2] != 0:\n\t\treturn 128 + bits.Len64(z.arr[2])\n\tcase z.arr[1] != 0:\n\t\treturn 64 + bits.Len64(z.arr[1])\n\tdefault:\n\t\treturn bits.Len64(z.arr[0])\n\t}\n}\n\n// ByteLen returns the number of bytes required to represent z\nfunc (z *Uint) ByteLen() int {\n\treturn (z.BitLen() + 7) / 8\n}\n\n// Clear sets z to 0\nfunc (z *Uint) Clear() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 0\n\treturn z\n}\n\nconst (\n\t// hextable = \"0123456789abcdef\"\n\tbintable = \"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\a\\b\\t\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n\tbadNibble = 0xff\n)\n\n// SetFromHex sets z from the given string, interpreted as a hexadecimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Int).SetString(..., 16) method.\n// Notable differences:\n// - This method _require_ \"0x\" or \"0X\" prefix.\n// - This method does not accept zero-prefixed hex, e.g. \"0x0001\"\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0x0\",\n// - (this method does not accept any negative input as valid)\nfunc (z *Uint) SetFromHex(hex string) error {\n\treturn z.fromHex(hex)\n}\n\n// fromHex is the internal implementation of parsing a hex-string.\nfunc (z *Uint) fromHex(hex string) error {\n\tif err := checkNumberS(hex); err != nil {\n\t\treturn err\n\t}\n\tif len(hex) \u003e 66 {\n\t\treturn ErrBig256Range\n\t}\n\tz.Clear()\n\tend := len(hex)\n\tfor i := 0; i \u003c 4; i++ {\n\t\tstart := end - 16\n\t\tif start \u003c 2 {\n\t\t\tstart = 2\n\t\t}\n\t\tfor ri := start; ri \u003c end; ri++ {\n\t\t\tnib := bintable[hex[ri]]\n\t\t\tif nib == badNibble {\n\t\t\t\treturn ErrSyntax\n\t\t\t}\n\t\t\tz.arr[i] = z.arr[i] \u003c\u003c 4\n\t\t\tz.arr[i] += uint64(nib)\n\t\t}\n\t\tend = start\n\t}\n\treturn nil\n}\n\n// FromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string. The string is required to be '0x'-prefixed\n// Numbers larger than 256 bits are not accepted.\nfunc FromHex(hex string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromHex(hex string) *Uint {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// Clone creates a new Uint identical to z\nfunc (z *Uint) Clone() *Uint {\n\tvar x Uint\n\tx.arr[0] = z.arr[0]\n\tx.arr[1] = z.arr[1]\n\tx.arr[2] = z.arr[2]\n\tx.arr[3] = z.arr[3]\n\n\treturn \u0026x\n}\n"},{"name":"uint256_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestSetAllOne(t *testing.T) {\n\tz := Zero()\n\tz.SetAllOne()\n\tif z.String() != twoPow256Sub1 {\n\t\tt.Errorf(\"Expected all ones, got %s\", z.String())\n\t}\n}\n\nfunc TestByte(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\tposition uint64\n\t\texpected byte\n\t}{\n\t\t{\"0x1000000000000000000000000000000000000000000000000000000000000000\", 0, 16},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, 255},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 31, 255},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tn := NewUint(tt.position)\n\t\tresult := z.Byte(n)\n\n\t\tif result.arr[0] != uint64(tt.expected) {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Position: %d, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.position, tt.expected, result.arr[0])\n\t\t}\n\n\t\t// check other array elements are 0\n\t\tif result.arr[1] != 0 || result.arr[2] != 0 || result.arr[3] != 0 {\n\t\t\tt.Errorf(\"Test case %d failed. Non-zero values in upper bytes\", i)\n\t\t}\n\t}\n\n\t// overflow\n\tz, _ := FromHex(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\")\n\tn := NewUint(32)\n\tresult := z.Byte(n)\n\n\tif !result.IsZero() {\n\t\tt.Errorf(\"Expected zero for position \u003e= 32, got %v\", result)\n\t}\n}\n\nfunc TestBitLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 8},\n\t\t{\"0x100\", 9},\n\t\t{\"0xffff\", 16},\n\t\t{\"0x10000\", 17},\n\t\t{\"0xffffffffffffffff\", 64},\n\t\t{\"0x10000000000000000\", 65},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 128},\n\t\t{\"0x100000000000000000000000000000000\", 129},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 256},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.BitLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestByteLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 1},\n\t\t{\"0x100\", 2},\n\t\t{\"0xffff\", 2},\n\t\t{\"0x10000\", 3},\n\t\t{\"0xffffffffffffffff\", 8},\n\t\t{\"0x10000000000000000\", 9},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 16},\n\t\t{\"0x100000000000000000000000000000000\", 17},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 32},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.ByteLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0x1\", \"1\"},\n\t\t{\"0x100\", \"256\"},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.Clone()\n\t\tif result.String() != tt.expected {\n\t\t\tt.Errorf(\"Test %s failed. Expected %s, got %s\", tt.input, tt.expected, result.String())\n\t\t}\n\t}\n}\n"},{"name":"utils.gno","body":"package uint256\n\nfunc checkNumberS(input string) error {\n\tconst fn = \"UnmarshalText\"\n\tl := len(input)\n\tif l == 0 {\n\t\treturn errEmptyString(fn, input)\n\t}\n\tif l \u003c 2 || input[0] != '0' ||\n\t\t(input[1] != 'x' \u0026\u0026 input[1] != 'X') {\n\t\treturn errMissingPrefix(fn, input)\n\t}\n\tif l == 2 {\n\t\treturn errEmptyNumber(fn, input)\n\t}\n\tif len(input) \u003e 3 \u0026\u0026 input[2] == '0' {\n\t\treturn errLeadingZero(fn, input)\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7SgnI6Oa96KWBAhH0Oa1pcFCdwvps03jsdSpk/ZxcaQLDJ7mJMxGqgTp0Qh5vNVB372tbVBHXl7zkt0hasnoCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"uint256","path":"gno.land/p/demo/uint256","files":[{"name":"LICENSE","body":"BSD 3-Clause License\n\nCopyright 2020 uint256 Authors\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# Fixed size 256-bit math library\n\nThis is a library specialized at replacing the `big.Int` library for math based on 256-bit types.\n\noriginal repository: [uint256](\u003chttps://github.com/holiman/uint256/tree/master\u003e)\n"},{"name":"arithmetic.gno","body":"// arithmetic provides arithmetic operations for Uint objects.\n// This includes basic binary operations such as addition, subtraction, multiplication, division, and modulo operations\n// as well as overflow checks, and negation. These functions are essential for numeric\n// calculations using 256-bit unsigned integers.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Add sets z to the sum x+y\nfunc (z *Uint) Add(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// AddOverflow sets z to the sum x+y, and returns z and whether overflow occurred\nfunc (z *Uint) AddOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Sub sets z to the difference x-y\nfunc (z *Uint) Sub(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// SubOverflow sets z to the difference x-y and returns z and true if the operation underflowed\nfunc (z *Uint) SubOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Neg returns -x mod 2^256.\nfunc (z *Uint) Neg(x *Uint) *Uint {\n\treturn z.Sub(new(Uint), x)\n}\n\n// commented out for possible overflow\n// Mul sets z to the product x*y\nfunc (z *Uint) Mul(x, y *Uint) *Uint {\n\tvar (\n\t\tres Uint\n\t\tcarry uint64\n\t\tres1, res2, res3 uint64\n\t)\n\n\tcarry, res.arr[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tres3 = x.arr[3]*y.arr[0] + carry\n\n\tcarry, res.arr[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tres3 = res3 + x.arr[2]*y.arr[1] + carry\n\n\tcarry, res.arr[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tres3 = res3 + x.arr[1]*y.arr[2] + carry\n\n\tres.arr[3] = res3 + x.arr[0]*y.arr[3]\n\n\treturn z.Set(\u0026res)\n}\n\n// MulOverflow sets z to the product x*y, and returns z and whether overflow occurred\nfunc (z *Uint) MulOverflow(x, y *Uint) (*Uint, bool) {\n\tp := umul(x, y)\n\tcopy(z.arr[:], p[:4])\n\treturn z, (p[4] | p[5] | p[6] | p[7]) != 0\n}\n\n// commented out for possible overflow\n// Div sets z to the quotient x/y for returns z.\n// If y == 0, z is set to 0\nfunc (z *Uint) Div(x, y *Uint) *Uint {\n\tif y.IsZero() || y.Gt(x) {\n\t\treturn z.Clear()\n\t}\n\tif x.Eq(y) {\n\t\treturn z.SetOne()\n\t}\n\t// Shortcut some cases\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() / y.Uint64())\n\t}\n\n\t// At this point, we know\n\t// x/y ; x \u003e y \u003e 0\n\n\tvar quot Uint\n\tudivrem(quot.arr[:], x.arr[:], y)\n\treturn z.Set(\u0026quot)\n}\n\n// MulMod calculates the modulo-m multiplication of x and y and\n// returns z.\n// If m == 0, z is set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) MulMod(x, y, m *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() || m.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tp := umul(x, y)\n\n\tif m.arr[3] != 0 {\n\t\tmu := Reciprocal(m)\n\t\tr := reduce4(p, m, mu)\n\t\treturn z.Set(\u0026r)\n\t}\n\n\tvar (\n\t\tpl Uint\n\t\tph Uint\n\t)\n\n\tpl = Uint{arr: [4]uint64{p[0], p[1], p[2], p[3]}}\n\tph = Uint{arr: [4]uint64{p[4], p[5], p[6], p[7]}}\n\n\t// If the multiplication is within 256 bits use Mod().\n\tif ph.IsZero() {\n\t\treturn z.Mod(\u0026pl, m)\n\t}\n\n\tvar quot [8]uint64\n\trem := udivrem(quot[:], p[:], m)\n\treturn z.Set(\u0026rem)\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// If y == 0, z is set to 0 (OBS: differs from the big.Uint)\nfunc (z *Uint) Mod(x, y *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tswitch x.Cmp(y) {\n\tcase -1:\n\t\t// x \u003c y\n\t\tcopy(z.arr[:], x.arr[:])\n\t\treturn z\n\tcase 0:\n\t\t// x == y\n\t\treturn z.Clear() // They are equal\n\t}\n\n\t// At this point:\n\t// x != 0\n\t// y != 0\n\t// x \u003e y\n\n\t// Shortcut trivial case\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() % y.Uint64())\n\t}\n\n\tvar quot Uint\n\t*z = udivrem(quot.arr[:], x.arr[:], y)\n\treturn z\n}\n\n// DivMod sets z to the quotient x div y and m to the modulus x mod y and returns the pair (z, m) for y != 0.\n// If y == 0, both z and m are set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) DivMod(x, y, m *Uint) (*Uint, *Uint) {\n\tif y.IsZero() {\n\t\treturn z.Clear(), m.Clear()\n\t}\n\tvar quot Uint\n\t*m = udivrem(quot.arr[:], x.arr[:], y)\n\t*z = quot\n\treturn z, m\n}\n\n// Exp sets z = base**exponent mod 2**256, and returns z.\nfunc (z *Uint) Exp(base, exponent *Uint) *Uint {\n\tres := Uint{arr: [4]uint64{1, 0, 0, 0}}\n\tmultiplier := *base\n\texpBitLen := exponent.BitLen()\n\n\tcurBit := 0\n\tword := exponent.arr[0]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 64; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[1]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 128; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[2]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 192; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[3]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 256; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\treturn z.Set(\u0026res)\n}\n\nfunc (z *Uint) squared() {\n\tvar (\n\t\tres Uint\n\t\tcarry0, carry1, carry2 uint64\n\t\tres1, res2 uint64\n\t)\n\n\tcarry0, res.arr[0] = bits.Mul64(z.arr[0], z.arr[0])\n\tcarry0, res1 = umulHop(carry0, z.arr[0], z.arr[1])\n\tcarry0, res2 = umulHop(carry0, z.arr[0], z.arr[2])\n\n\tcarry1, res.arr[1] = umulHop(res1, z.arr[0], z.arr[1])\n\tcarry1, res2 = umulStep(res2, z.arr[1], z.arr[1], carry1)\n\n\tcarry2, res.arr[2] = umulHop(res2, z.arr[0], z.arr[2])\n\n\tres.arr[3] = 2*(z.arr[0]*z.arr[3]+z.arr[1]*z.arr[2]) + carry0 + carry1 + carry2\n\n\tz.Set(\u0026res)\n}\n\n// udivrem divides u by d and produces both quotient and remainder.\n// The quotient is stored in provided quot - len(u)-len(d)+1 words.\n// It loosely follows the Knuth's division algorithm (sometimes referenced as \"schoolbook\" division) using 64-bit words.\n// See Knuth, Volume 2, section 4.3.1, Algorithm D.\nfunc udivrem(quot, u []uint64, d *Uint) (rem Uint) {\n\tvar dLen int\n\tfor i := len(d.arr) - 1; i \u003e= 0; i-- {\n\t\tif d.arr[i] != 0 {\n\t\t\tdLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tshift := uint(bits.LeadingZeros64(d.arr[dLen-1]))\n\n\tvar dnStorage Uint\n\tdn := dnStorage.arr[:dLen]\n\tfor i := dLen - 1; i \u003e 0; i-- {\n\t\tdn[i] = (d.arr[i] \u003c\u003c shift) | (d.arr[i-1] \u003e\u003e (64 - shift))\n\t}\n\tdn[0] = d.arr[0] \u003c\u003c shift\n\n\tvar uLen int\n\tfor i := len(u) - 1; i \u003e= 0; i-- {\n\t\tif u[i] != 0 {\n\t\t\tuLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif uLen \u003c dLen {\n\t\tcopy(rem.arr[:], u)\n\t\treturn rem\n\t}\n\n\tvar unStorage [9]uint64\n\tun := unStorage[:uLen+1]\n\tun[uLen] = u[uLen-1] \u003e\u003e (64 - shift)\n\tfor i := uLen - 1; i \u003e 0; i-- {\n\t\tun[i] = (u[i] \u003c\u003c shift) | (u[i-1] \u003e\u003e (64 - shift))\n\t}\n\tun[0] = u[0] \u003c\u003c shift\n\n\t// TODO: Skip the highest word of numerator if not significant.\n\n\tif dLen == 1 {\n\t\tr := udivremBy1(quot, un, dn[0])\n\t\trem.SetUint64(r \u003e\u003e shift)\n\t\treturn rem\n\t}\n\n\tudivremKnuth(quot, un, dn)\n\n\tfor i := 0; i \u003c dLen-1; i++ {\n\t\trem.arr[i] = (un[i] \u003e\u003e shift) | (un[i+1] \u003c\u003c (64 - shift))\n\t}\n\trem.arr[dLen-1] = un[dLen-1] \u003e\u003e shift\n\n\treturn rem\n}\n\n// umul computes full 256 x 256 -\u003e 512 multiplication.\nfunc umul(x, y *Uint) [8]uint64 {\n\tvar (\n\t\tres [8]uint64\n\t\tcarry, carry4, carry5, carry6 uint64\n\t\tres1, res2, res3, res4, res5 uint64\n\t)\n\n\tcarry, res[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tcarry4, res3 = umulHop(carry, x.arr[3], y.arr[0])\n\n\tcarry, res[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tcarry, res3 = umulStep(res3, x.arr[2], y.arr[1], carry)\n\tcarry5, res4 = umulStep(carry4, x.arr[3], y.arr[1], carry)\n\n\tcarry, res[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tcarry, res3 = umulStep(res3, x.arr[1], y.arr[2], carry)\n\tcarry, res4 = umulStep(res4, x.arr[2], y.arr[2], carry)\n\tcarry6, res5 = umulStep(carry5, x.arr[3], y.arr[2], carry)\n\n\tcarry, res[3] = umulHop(res3, x.arr[0], y.arr[3])\n\tcarry, res[4] = umulStep(res4, x.arr[1], y.arr[3], carry)\n\tcarry, res[5] = umulStep(res5, x.arr[2], y.arr[3], carry)\n\tres[7], res[6] = umulStep(carry6, x.arr[3], y.arr[3], carry)\n\n\treturn res\n}\n\n// umulStep computes (hi * 2^64 + lo) = z + (x * y) + carry.\nfunc umulStep(z, x, y, carry uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry = bits.Add64(lo, carry, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\tlo, carry = bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// umulHop computes (hi * 2^64 + lo) = z + (x * y)\nfunc umulHop(z, x, y uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry := bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// udivremBy1 divides u by single normalized word d and produces both quotient and remainder.\n// The quotient is stored in provided quot.\nfunc udivremBy1(quot, u []uint64, d uint64) (rem uint64) {\n\treciprocal := reciprocal2by1(d)\n\trem = u[len(u)-1] // Set the top word as remainder.\n\tfor j := len(u) - 2; j \u003e= 0; j-- {\n\t\tquot[j], rem = udivrem2by1(rem, u[j], d, reciprocal)\n\t}\n\treturn rem\n}\n\n// udivremKnuth implements the division of u by normalized multiple word d from the Knuth's division algorithm.\n// The quotient is stored in provided quot - len(u)-len(d) words.\n// Updates u to contain the remainder - len(d) words.\nfunc udivremKnuth(quot, u, d []uint64) {\n\tdh := d[len(d)-1]\n\tdl := d[len(d)-2]\n\treciprocal := reciprocal2by1(dh)\n\n\tfor j := len(u) - len(d) - 1; j \u003e= 0; j-- {\n\t\tu2 := u[j+len(d)]\n\t\tu1 := u[j+len(d)-1]\n\t\tu0 := u[j+len(d)-2]\n\n\t\tvar qhat, rhat uint64\n\t\tif u2 \u003e= dh { // Division overflows.\n\t\t\tqhat = ^uint64(0)\n\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t} else {\n\t\t\tqhat, rhat = udivrem2by1(u2, u1, dh, reciprocal)\n\t\t\tph, pl := bits.Mul64(qhat, dl)\n\t\t\tif ph \u003e rhat || (ph == rhat \u0026\u0026 pl \u003e u0) {\n\t\t\t\tqhat--\n\t\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t\t}\n\t\t}\n\n\t\t// Multiply and subtract.\n\t\tborrow := subMulTo(u[j:], d, qhat)\n\t\tu[j+len(d)] = u2 - borrow\n\t\tif u2 \u003c borrow { // Too much subtracted, add back.\n\t\t\tqhat--\n\t\t\tu[j+len(d)] += addTo(u[j:], d)\n\t\t}\n\n\t\tquot[j] = qhat // Store quotient digit.\n\t}\n}\n\n// isBitSet returns true if bit n-th is set, where n = 0 is LSB.\n// The n must be \u003c= 255.\nfunc (z *Uint) isBitSet(n uint) bool {\n\treturn (z.arr[n/64] \u0026 (1 \u003c\u003c (n % 64))) != 0\n}\n\n// addTo computes x += y.\n// Requires len(x) \u003e= len(y).\nfunc addTo(x, y []uint64) uint64 {\n\tvar carry uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\tx[i], carry = bits.Add64(x[i], y[i], carry)\n\t}\n\treturn carry\n}\n\n// subMulTo computes x -= y * multiplier.\n// Requires len(x) \u003e= len(y).\nfunc subMulTo(x, y []uint64, multiplier uint64) uint64 {\n\tvar borrow uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\ts, carry1 := bits.Sub64(x[i], borrow, 0)\n\t\tph, pl := bits.Mul64(y[i], multiplier)\n\t\tt, carry2 := bits.Sub64(s, pl, 0)\n\t\tx[i] = t\n\t\tborrow = ph + carry1 + carry2\n\t}\n\treturn borrow\n}\n\n// reciprocal2by1 computes \u003c^d, ^0\u003e / d.\nfunc reciprocal2by1(d uint64) uint64 {\n\treciprocal, _ := bits.Div64(^d, ^uint64(0), d)\n\treturn reciprocal\n}\n\n// udivrem2by1 divides \u003cuh, ul\u003e / d and produces both quotient and remainder.\n// It uses the provided d's reciprocal.\n// Implementation ported from https://github.com/chfast/intx and is based on\n// \"Improved division by invariant integers\", Algorithm 4.\nfunc udivrem2by1(uh, ul, d, reciprocal uint64) (quot, rem uint64) {\n\tqh, ql := bits.Mul64(reciprocal, uh)\n\tql, carry := bits.Add64(ql, ul, 0)\n\tqh, _ = bits.Add64(qh, uh, carry)\n\tqh++\n\n\tr := ul - qh*d\n\n\tif r \u003e ql {\n\t\tqh--\n\t\tr += d\n\t}\n\n\tif r \u003e= d {\n\t\tqh++\n\t\tr -= d\n\t}\n\n\treturn qh, r\n}\n"},{"name":"arithmetic_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\ntype binOp2Test struct {\n\tx, y, want string\n}\n\nfunc TestAdd(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"3\", \"4\"},\n\t\t{\"10\", \"10\", \"20\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"0\", \"1\", \"1\", false},\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"2\", false},\n\t\t{\"10\", \"10\", \"20\", false},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\", false}, // uint64 overflow, but not Uint256 overflow\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"1\", \"0\", true}, // 2^256 - 1 + 1, should overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", false}, // (2^255 - 1) + 2^255, no overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"0\", true}, // (2^255 - 1) + (2^255 + 1), should overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot, overflow := new(Uint).AddOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tt.overflow {\n\t\t\tt.Errorf(\"AddOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttt.x, tt.y, got.String(), overflow, tt.want, tt.overflow)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"1337\", \"30000\"},\n\t\t{\"2\", \"3\", twoPow256Sub1}, // underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot := new(Uint).Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Sub(%s, %s) = %v, want %v\",\n\t\t\t\ttc.x, tc.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestSubOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"0\", false},\n\t\t{\"10\", \"10\", \"0\", false},\n\t\t{\"31337\", \"1337\", \"30000\", false},\n\t\t{\"0\", \"1\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 0 - 1, should underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"1\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\", false}, // 2^255 - 1, no underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 2^255 - (2^255 + 1), should underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot, overflow := new(Uint).SubOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tc.overflow {\n\t\t\tt.Errorf(\n\t\t\t\t\"SubOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttc.x, tc.y, got.String(), overflow, tc.want, tc.overflow,\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"10\", \"10\", \"100\"},\n\t\t{\"18446744073709551615\", \"2\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantZ string\n\t\twantOver bool\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x1\", false},\n\t\t{\"0x0\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\", false},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", true},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x1\", true},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", \"0x2\", \"0x0\", true},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", false},\n\t\t{\"0x100000000000000000\", \"0x100000000000000000\", \"0x10000000000000000000000000000000000\", false},\n\t\t{\"0x10000000000000000000000000000000\", \"0x10000000000000000000000000000000\", \"0x100000000000000000000000000000000000000000000000000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\twantZ := MustFromHex(tt.wantZ)\n\n\t\tgotZ, gotOver := new(Uint).MulOverflow(x, y)\n\n\t\tif gotZ.Neq(wantZ) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulOverflow(%s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, gotZ.String(), wantZ.String(),\n\t\t\t)\n\t\t}\n\t\tif gotOver != tt.wantOver {\n\t\t\tt.Errorf(\"MulOverflow(%s, %s) = %v, want %v\", tt.x, tt.y, gotOver, tt.wantOver)\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"10445\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"1000000000000000000\", \"3\", \"333333333333333333\"},\n\t\t{twoPow256Sub1, \"2\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Div(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Div(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"2\", \"31337\", \"2\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"2\", \"1\"}, // 2^256 - 1 mod 2\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"3\", \"0\"}, // 2^256 - 1 mod 3\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"}, // 2^256 - 1 mod 2^255\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\tm string\n\t\twant string\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x2\", \"0x1\"},\n\t\t{\"0x10\", \"0x10\", \"0x7\", \"0x4\"},\n\t\t{\"0x100\", \"0x100\", \"0x17\", \"0x9\"},\n\t\t{\"0x31337\", \"0x31337\", \"0x31338\", \"0x1\"},\n\t\t{\"0x0\", \"0x31337\", \"0x31338\", \"0x0\"},\n\t\t{\"0x31337\", \"0x0\", \"0x31338\", \"0x0\"},\n\t\t{\"0x2\", \"0x3\", \"0x5\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\tm := MustFromHex(tt.m)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).MulMod(x, y, m)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulMod(%s, %s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, tt.m, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestDivMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantDiv string\n\t\twantMod string\n\t}{\n\t\t{\"1\", \"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"1\", \"0\"},\n\t\t{\"100\", \"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"3\", \"10445\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\", \"0\"},\n\t\t{\"2\", \"31337\", \"0\", \"2\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twantDiv := MustFromDecimal(tt.wantDiv)\n\t\twantMod := MustFromDecimal(tt.wantMod)\n\n\t\tgotDiv := new(Uint)\n\t\tgotMod := new(Uint)\n\t\tgotDiv.DivMod(x, y, gotMod)\n\n\t\tfor i := range gotDiv.arr {\n\t\t\tif gotDiv.arr[i] != wantDiv.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Div %v, want Div %v\", tt.x, tt.y, gotDiv, wantDiv)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfor i := range gotMod.arr {\n\t\t\tif gotMod.arr[i] != wantMod.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Mod %v, want Mod %v\", tt.x, tt.y, gotMod, wantMod)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"31337\", \"115792089237316195423570985008687907853269984665640564039457584007913129608599\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129608599\", \"31337\"},\n\t\t{\"0\", \"0\"},\n\t\t{\"2\", \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"},\n\t\t{\"1\", twoPow256Sub1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Neg(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Neg(%s) = %v, want %v\", tt.x, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestExp(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"30773171189753\"},\n\t\t{\"31337\", \"0\", \"1\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"2\", \"3\", \"8\"},\n\t\t{\"2\", \"64\", \"18446744073709551616\"},\n\t\t{\"2\", \"128\", \"340282366920938463463374607431768211456\"},\n\t\t{\"2\", \"255\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"2\", \"256\", \"0\"}, // overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Exp(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Exp(%s, %s) = %v, want %v\",\n\t\t\t\ttt.x, tt.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestExp_LargeExponent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbase string\n\t\texponent string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"2^129\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"680564733841876926926749214863536422912\",\n\t\t\texpected: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"2^193\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"12379400392853802746563808384000000000000000000\",\n\t\t\texpected: \"0\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbase := MustFromDecimal(tt.base)\n\t\t\texponent := MustFromDecimal(tt.exponent)\n\t\t\texpected := MustFromDecimal(tt.expected)\n\n\t\t\tresult := new(Uint).Exp(base, exponent)\n\n\t\t\tif result.Neq(expected) {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Test %s failed. Expected %s, got %s\",\n\t\t\t\t\ttt.name, expected.String(), result.String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"bits_table.gno","body":"// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by go run make_tables.go. DO NOT EDIT.\n\npackage uint256\n\nconst ntz8tab = \"\" +\n\t\"\\x08\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x07\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\"\n\nconst pop8tab = \"\" +\n\t\"\\x00\\x01\\x01\\x02\\x01\\x02\\x02\\x03\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\\x05\\x06\\x06\\x07\\x06\\x07\\x07\\x08\"\n\nconst rev8tab = \"\" +\n\t\"\\x00\\x80\\x40\\xc0\\x20\\xa0\\x60\\xe0\\x10\\x90\\x50\\xd0\\x30\\xb0\\x70\\xf0\" +\n\t\"\\x08\\x88\\x48\\xc8\\x28\\xa8\\x68\\xe8\\x18\\x98\\x58\\xd8\\x38\\xb8\\x78\\xf8\" +\n\t\"\\x04\\x84\\x44\\xc4\\x24\\xa4\\x64\\xe4\\x14\\x94\\x54\\xd4\\x34\\xb4\\x74\\xf4\" +\n\t\"\\x0c\\x8c\\x4c\\xcc\\x2c\\xac\\x6c\\xec\\x1c\\x9c\\x5c\\xdc\\x3c\\xbc\\x7c\\xfc\" +\n\t\"\\x02\\x82\\x42\\xc2\\x22\\xa2\\x62\\xe2\\x12\\x92\\x52\\xd2\\x32\\xb2\\x72\\xf2\" +\n\t\"\\x0a\\x8a\\x4a\\xca\\x2a\\xaa\\x6a\\xea\\x1a\\x9a\\x5a\\xda\\x3a\\xba\\x7a\\xfa\" +\n\t\"\\x06\\x86\\x46\\xc6\\x26\\xa6\\x66\\xe6\\x16\\x96\\x56\\xd6\\x36\\xb6\\x76\\xf6\" +\n\t\"\\x0e\\x8e\\x4e\\xce\\x2e\\xae\\x6e\\xee\\x1e\\x9e\\x5e\\xde\\x3e\\xbe\\x7e\\xfe\" +\n\t\"\\x01\\x81\\x41\\xc1\\x21\\xa1\\x61\\xe1\\x11\\x91\\x51\\xd1\\x31\\xb1\\x71\\xf1\" +\n\t\"\\x09\\x89\\x49\\xc9\\x29\\xa9\\x69\\xe9\\x19\\x99\\x59\\xd9\\x39\\xb9\\x79\\xf9\" +\n\t\"\\x05\\x85\\x45\\xc5\\x25\\xa5\\x65\\xe5\\x15\\x95\\x55\\xd5\\x35\\xb5\\x75\\xf5\" +\n\t\"\\x0d\\x8d\\x4d\\xcd\\x2d\\xad\\x6d\\xed\\x1d\\x9d\\x5d\\xdd\\x3d\\xbd\\x7d\\xfd\" +\n\t\"\\x03\\x83\\x43\\xc3\\x23\\xa3\\x63\\xe3\\x13\\x93\\x53\\xd3\\x33\\xb3\\x73\\xf3\" +\n\t\"\\x0b\\x8b\\x4b\\xcb\\x2b\\xab\\x6b\\xeb\\x1b\\x9b\\x5b\\xdb\\x3b\\xbb\\x7b\\xfb\" +\n\t\"\\x07\\x87\\x47\\xc7\\x27\\xa7\\x67\\xe7\\x17\\x97\\x57\\xd7\\x37\\xb7\\x77\\xf7\" +\n\t\"\\x0f\\x8f\\x4f\\xcf\\x2f\\xaf\\x6f\\xef\\x1f\\x9f\\x5f\\xdf\\x3f\\xbf\\x7f\\xff\"\n\nconst len8tab = \"\" +\n\t\"\\x00\\x01\\x02\\x02\\x03\\x03\\x03\\x03\\x04\\x04\\x04\\x04\\x04\\x04\\x04\\x04\" +\n\t\"\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\"\n"},{"name":"bitwise.gno","body":"// bitwise contains bitwise operations for Uint instances.\n// This file includes functions to perform bitwise AND, OR, XOR, and NOT operations, as well as bit shifting.\n// These operations are crucial for manipulating individual bits within a 256-bit unsigned integer.\npackage uint256\n\n// Or sets z = x | y and returns z.\nfunc (z *Uint) Or(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] | y.arr[0]\n\tz.arr[1] = x.arr[1] | y.arr[1]\n\tz.arr[2] = x.arr[2] | y.arr[2]\n\tz.arr[3] = x.arr[3] | y.arr[3]\n\treturn z\n}\n\n// And sets z = x \u0026 y and returns z.\nfunc (z *Uint) And(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026 y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026 y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026 y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026 y.arr[3]\n\treturn z\n}\n\n// Not sets z = ^x and returns z.\nfunc (z *Uint) Not(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = ^x.arr[3], ^x.arr[2], ^x.arr[1], ^x.arr[0]\n\treturn z\n}\n\n// AndNot sets z = x \u0026^ y and returns z.\nfunc (z *Uint) AndNot(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026^ y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026^ y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026^ y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026^ y.arr[3]\n\treturn z\n}\n\n// Xor sets z = x ^ y and returns z.\nfunc (z *Uint) Xor(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] ^ y.arr[0]\n\tz.arr[1] = x.arr[1] ^ y.arr[1]\n\tz.arr[2] = x.arr[2] ^ y.arr[2]\n\tz.arr[3] = x.arr[3] ^ y.arr[3]\n\treturn z\n}\n\n// Lsh sets z = x \u003c\u003c n and returns z.\nfunc (z *Uint) Lsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.lsh64(x)\n\t\tcase 128:\n\t\t\treturn z.lsh128(x)\n\t\tcase 192:\n\t\t\treturn z.lsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.lsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.lsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.lsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[0] \u003e\u003e (64 - n)\n\tz.arr[0] = z.arr[0] \u003c\u003c n\n\nsh64:\n\tb = z.arr[1] \u003e\u003e (64 - n)\n\tz.arr[1] = (z.arr[1] \u003c\u003c n) | a\n\nsh128:\n\ta = z.arr[2] \u003e\u003e (64 - n)\n\tz.arr[2] = (z.arr[2] \u003c\u003c n) | b\n\nsh192:\n\tz.arr[3] = (z.arr[3] \u003c\u003c n) | a\n\n\treturn z\n}\n\n// Rsh sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) Rsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.rsh64(x)\n\t\tcase 128:\n\t\t\treturn z.rsh128(x)\n\t\tcase 192:\n\t\t\treturn z.rsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.rsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.rsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.rsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[3] \u003c\u003c (64 - n)\n\tz.arr[3] = z.arr[3] \u003e\u003e n\n\nsh64:\n\tb = z.arr[2] \u003c\u003c (64 - n)\n\tz.arr[2] = (z.arr[2] \u003e\u003e n) | a\n\nsh128:\n\ta = z.arr[1] \u003c\u003c (64 - n)\n\tz.arr[1] = (z.arr[1] \u003e\u003e n) | b\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\n// SRsh (Signed/Arithmetic right shift)\n// considers z to be a signed integer, during right-shift\n// and sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) SRsh(x *Uint, n uint) *Uint {\n\t// If the MSB is 0, SRsh is same as Rsh.\n\tif !x.isBitSet(255) {\n\t\treturn z.Rsh(x, n)\n\t}\n\tif n%64 == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.srsh64(x)\n\t\tcase 128:\n\t\t\treturn z.srsh128(x)\n\t\tcase 192:\n\t\t\treturn z.srsh192(x)\n\t\tdefault:\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t}\n\tvar a uint64 = MaxUint64 \u003c\u003c (64 - n%64)\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t\tz.srsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.srsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.srsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\tz.arr[3], a = (z.arr[3]\u003e\u003en)|a, z.arr[3]\u003c\u003c(64-n)\n\nsh64:\n\tz.arr[2], a = (z.arr[2]\u003e\u003en)|a, z.arr[2]\u003c\u003c(64-n)\n\nsh128:\n\tz.arr[1], a = (z.arr[1]\u003e\u003en)|a, z.arr[1]\u003c\u003c(64-n)\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\nfunc (z *Uint) lsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[2], x.arr[1], x.arr[0], 0\n\treturn z\n}\n\nfunc (z *Uint) lsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[1], x.arr[0], 0, 0\n\treturn z\n}\n\nfunc (z *Uint) lsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[0], 0, 0, 0\n\treturn z\n}\n\nfunc (z *Uint) rsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) rsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) rsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x.arr[3]\n\treturn z\n}\n\nfunc (z *Uint) srsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) srsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) srsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, x.arr[3]\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package uint256\n\nimport \"testing\"\n\ntype logicOpTest struct {\n\tname string\n\tx Uint\n\ty Uint\n\twant Uint\n}\n\nfunc TestOr(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Or(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAnd(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).And(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"And(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNot(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tx Uint\n\t\twant Uint\n\t}{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Not(\u0026tt.x)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Not(%s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAndNot(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).AndNot(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"AndNot(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestXor(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Xor(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Xor(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"2\"},\n\t\t{\"1\", 64, \"18446744073709551616\"},\n\t\t{\"1\", 128, \"340282366920938463463374607431768211456\"},\n\t\t{\"1\", 192, \"6277101735386680763835789423207666416102355444464034512896\"},\n\t\t{\"1\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"1\", 256, \"0\"},\n\t\t{\"31337\", 0, \"31337\"},\n\t\t{\"31337\", 1, \"62674\"},\n\t\t{\"31337\", 64, \"578065619037836218990592\"},\n\t\t{\"31337\", 128, \"10663428532201448629551770073089320442396672\"},\n\t\t{\"31337\", 192, \"196705537081812415096322133155058642481399512563169449530621952\"},\n\t\t{\"31337\", 193, \"393411074163624830192644266310117284962799025126338899061243904\"},\n\t\t{\"31337\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"31337\", 256, \"0\"},\n\t\t// 64 \u003c n \u003c 128\n\t\t{\"1\", 65, \"36893488147419103232\"},\n\t\t{\"31337\", 100, \"39724366859352024754702188346867712\"},\n\n\t\t// 128 \u003c n \u003c 192\n\t\t{\"1\", 129, \"680564733841876926926749214863536422912\"},\n\t\t{\"31337\", 150, \"44725660946326664792723507424638829088826130956288\"},\n\n\t\t// 192 \u003c n \u003c 256\n\t\t{\"1\", 193, \"12554203470773361527671578846415332832204710888928069025792\"},\n\t\t{\"31337\", 200, \"50356617492943978264658466087695012475238275216171379079839219712\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Lsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"0\"},\n\t\t{\"1\", 64, \"0\"},\n\t\t{\"1\", 128, \"0\"},\n\t\t{\"1\", 192, \"0\"},\n\t\t{\"1\", 255, \"0\"},\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", 255, \"1\"},\n\t\t{\"6277101735386680763835789423207666416102355444464034512896\", 192, \"1\"},\n\t\t{\"340282366920938463463374607431768211456\", 128, \"1\"},\n\t\t{\"18446744073709551616\", 64, \"1\"},\n\t\t{\"393411074163624830192644266310117284962799025126338899061243904\", 193, \"31337\"},\n\t\t{\"196705537081812415096322133155058642481399512563169449530621952\", 192, \"31337\"},\n\t\t{\"10663428532201448629551770073089320442396672\", 128, \"31337\"},\n\t\t{\"578065619037836218990592\", 64, \"31337\"},\n\t\t{twoPow256Sub1, 256, \"0\"},\n\t\t// outliers\n\t\t{\"340282366920938463463374607431768211455\", 129, \"0\"},\n\t\t{\"18446744073709551615\", 65, \"0\"},\n\t\t{twoPow256Sub1, 1, \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Rsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t// Positive numbers (behaves like Rsh)\n\t\t{\"0x0\", 0, \"0x0\"},\n\t\t{\"0x0\", 1, \"0x0\"},\n\t\t{\"0x1\", 0, \"0x1\"},\n\t\t{\"0x1\", 1, \"0x0\"},\n\t\t{\"0x31337\", 0, \"0x31337\"},\n\t\t{\"0x31337\", 4, \"0x3133\"},\n\t\t{\"0x31337\", 8, \"0x313\"},\n\t\t{\"0x31337\", 16, \"0x3\"},\n\t\t{\"0x10000000000000000\", 64, \"0x1\"}, // 2^64 \u003e\u003e 64\n\n\t\t// // Numbers with MSB set (negative numbers in two's complement)\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 4, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// Large positive number close to max value\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 2, \"0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0x7fffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0x7fffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0x7fffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0x0\"},\n\n\t\t// Specific cases\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000001\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 65, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 127, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 129, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 193, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// n \u003e 256\n\t\t{\"0x1\", 257, \"0x0\"},\n\t\t{\"0x31337\", 300, \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).SRsh(x, tt.y)\n\n\t\tif !got.Eq(want) {\n\t\t\tt.Errorf(\"SRsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"// cmp (or, comparisons) includes methods for comparing Uint instances.\n// These comparison functions cover a range of operations including equality checks, less than/greater than\n// evaluations, and specialized comparisons such as signed greater than. These are fundamental for logical\n// decision making based on Uint values.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Cmp compares z and x and returns:\n//\n//\t-1 if z \u003c x\n//\t 0 if z == x\n//\t+1 if z \u003e x\nfunc (z *Uint) Cmp(x *Uint) (r int) {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\td0, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\td1, carry := bits.Sub64(z.arr[1], x.arr[1], carry)\n\td2, carry := bits.Sub64(z.arr[2], x.arr[2], carry)\n\td3, carry := bits.Sub64(z.arr[3], x.arr[3], carry)\n\tif carry == 1 {\n\t\treturn -1\n\t}\n\tif d0|d1|d2|d3 == 0 {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n// IsZero returns true if z == 0\nfunc (z *Uint) IsZero() bool {\n\treturn (z.arr[0] | z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Sign returns:\n//\n//\t-1 if z \u003c 0\n//\t 0 if z == 0\n//\t+1 if z \u003e 0\n//\n// Where z is interpreted as a two's complement signed number\nfunc (z *Uint) Sign() int {\n\tif z.IsZero() {\n\t\treturn 0\n\t}\n\tif z.arr[3] \u003c 0x8000000000000000 {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// LtUint64 returns true if z is smaller than n\nfunc (z *Uint) LtUint64(n uint64) bool {\n\treturn z.arr[0] \u003c n \u0026\u0026 (z.arr[1]|z.arr[2]|z.arr[3]) == 0\n}\n\n// GtUint64 returns true if z is larger than n\nfunc (z *Uint) GtUint64(n uint64) bool {\n\treturn z.arr[0] \u003e n || (z.arr[1]|z.arr[2]|z.arr[3]) != 0\n}\n\n// Lt returns true if z \u003c x\nfunc (z *Uint) Lt(x *Uint) bool {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\t_, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\t_, carry = bits.Sub64(z.arr[1], x.arr[1], carry)\n\t_, carry = bits.Sub64(z.arr[2], x.arr[2], carry)\n\t_, carry = bits.Sub64(z.arr[3], x.arr[3], carry)\n\n\treturn carry != 0\n}\n\n// Gt returns true if z \u003e x\nfunc (z *Uint) Gt(x *Uint) bool {\n\treturn x.Lt(z)\n}\n\n// Lte returns true if z \u003c= x\nfunc (z *Uint) Lte(x *Uint) bool {\n\tcond1 := z.Lt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Gte returns true if z \u003e= x\nfunc (z *Uint) Gte(x *Uint) bool {\n\tcond1 := z.Gt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Eq returns true if z == x\nfunc (z *Uint) Eq(x *Uint) bool {\n\treturn (z.arr[0] == x.arr[0]) \u0026\u0026 (z.arr[1] == x.arr[1]) \u0026\u0026 (z.arr[2] == x.arr[2]) \u0026\u0026 (z.arr[3] == x.arr[3])\n}\n\n// Neq returns true if z != x\nfunc (z *Uint) Neq(x *Uint) bool {\n\treturn !z.Eq(x)\n}\n\n// Sgt interprets z and x as signed integers, and returns\n// true if z \u003e x\nfunc (z *Uint) Sgt(x *Uint) bool {\n\tzSign := z.Sign()\n\txSign := x.Sign()\n\n\tswitch {\n\tcase zSign \u003e= 0 \u0026\u0026 xSign \u003c 0:\n\t\treturn true\n\tcase zSign \u003c 0 \u0026\u0026 xSign \u003e= 0:\n\t\treturn false\n\tdefault:\n\t\treturn z.Gt(x)\n\t}\n}\n"},{"name":"cmp_test.gno","body":"package uint256\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tinput *Uint\n\t\texpected int\n\t}{\n\t\t{\n\t\t\tinput: NewUint(0),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(1),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x7fffffffffffffff),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x8000000000000000),\n\t\t\texpected: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.input.String(), func(t *testing.T) {\n\t\t\tresult := tt.input.Sign()\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Sign() = %d; want %d\", result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"10\", \"10\", 0},\n\t\t{\"10\", \"11\", -1},\n\t\t{\"11\", \"10\", 1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\tgot := x.IsZero()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestLtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint64\n\t\twant bool\n\t}{\n\t\t{\"0\", 1, true},\n\t\t{\"1\", 0, false},\n\t\t{\"10\", 10, false},\n\t\t{\"0xffffffffffffffff\", 0, false},\n\t\t{\"0x10000000000000000\", 10000000000000000, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := parseTestString(t, tc.x)\n\n\t\tgot := x.LtUint64(tc.y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"LtUint64(%s, %d) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_GtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz string\n\t\tn uint64\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"z \u003e n\",\n\t\t\tz: \"1\",\n\t\t\tn: 0,\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"z \u003c n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"z == n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := MustFromDecimal(tt.z)\n\n\t\t\tif got := z.GtUint64(tt.n); got != tt.want {\n\t\t\t\tt.Errorf(\"Uint.GtUint64() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSGT(t *testing.T) {\n\tx := MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\ty := MustFromHex(\"0x0\")\n\tactual := x.Sgt(y)\n\tif actual {\n\t\tt.Fatalf(\"Expected %v false\", actual)\n\t}\n\n\tx = MustFromHex(\"0x0\")\n\ty = MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\tactual = x.Sgt(y)\n\tif !actual {\n\t\tt.Fatalf(\"Expected %v true\", actual)\n\t}\n}\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twant bool\n\t}{\n\t\t{\"0xffffffffffffffff\", \"18446744073709551615\", true},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\", true},\n\t\t{\"0\", \"0\", true},\n\t\t{twoPow256Sub1, twoPow256Sub1, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := parseTestString(t, tt.x)\n\n\t\ty, err := FromDecimal(tt.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tt.x, tt.y, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Lte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"10\", \"20\", true},\n\t\t{\"20\", \"10\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tx, err := FromDecimal(tt.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tif got := z.Lte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Lte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Gte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"20\", \"10\", true},\n\t\t{\"10\", \"20\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := parseTestString(t, tt.z)\n\t\tx := parseTestString(t, tt.x)\n\n\t\tif got := z.Gte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Gte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc parseTestString(_ *testing.T, s string) *Uint {\n\tvar x *Uint\n\n\tif strings.HasPrefix(s, \"0x\") {\n\t\tx = MustFromHex(s)\n\t} else {\n\t\tx = MustFromDecimal(s)\n\t}\n\n\treturn x\n}\n"},{"name":"conversion.gno","body":"// conversions contains methods for converting Uint instances to other types and vice versa.\n// This includes conversions to and from basic types such as uint64 and int32, as well as string representations\n// and byte slices. Additionally, it covers marshaling and unmarshaling for JSON and other text formats.\npackage uint256\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Uint) Uint64() uint64 {\n\treturn z.arr[0]\n}\n\n// Uint64WithOverflow returns the lower 64-bits of z and bool whether overflow occurred\nfunc (z *Uint) Uint64WithOverflow() (uint64, bool) {\n\treturn z.arr[0], (z.arr[1] | z.arr[2] | z.arr[3]) != 0\n}\n\n// SetUint64 sets z to the value x\nfunc (z *Uint) SetUint64(x uint64) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x\n\treturn z\n}\n\n// IsUint64 reports whether z can be represented as a uint64.\nfunc (z *Uint) IsUint64() bool {\n\treturn (z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Dec returns the decimal representation of z.\nfunc (z *Uint) Dec() string {\n\tif z.IsZero() {\n\t\treturn \"0\"\n\t}\n\tif z.IsUint64() {\n\t\treturn strconv.FormatUint(z.Uint64(), 10)\n\t}\n\n\t// The max uint64 value being 18446744073709551615, the largest\n\t// power-of-ten below that is 10000000000000000000.\n\t// When we do a DivMod using that number, the remainder that we\n\t// get back is the lower part of the output.\n\t//\n\t// The ascii-output of remainder will never exceed 19 bytes (since it will be\n\t// below 10000000000000000000).\n\t//\n\t// Algorithm example using 100 as divisor\n\t//\n\t// 12345 % 100 = 45 (rem)\n\t// 12345 / 100 = 123 (quo)\n\t// -\u003e output '45', continue iterate on 123\n\tvar (\n\t\t// out is 98 bytes long: 78 (max size of a string without leading zeroes,\n\t\t// plus slack so we can copy 19 bytes every iteration).\n\t\t// We init it with zeroes, because when strconv appends the ascii representations,\n\t\t// it will omit leading zeroes.\n\t\tout = []byte(\"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\")\n\t\tdivisor = NewUint(10000000000000000000) // 20 digits\n\t\ty = new(Uint).Set(z) // copy to avoid modifying z\n\t\tpos = len(out) // position to write to\n\t\tbuf = make([]byte, 0, 19) // buffer to write uint64:s to\n\t)\n\tfor {\n\t\t// Obtain Q and R for divisor\n\t\tvar quot Uint\n\t\trem := udivrem(quot.arr[:], y.arr[:], divisor)\n\t\ty.Set(\u0026quot) // Set Q for next loop\n\t\t// Convert the R to ascii representation\n\t\tbuf = strconv.AppendUint(buf[:0], rem.Uint64(), 10)\n\t\t// Copy in the ascii digits\n\t\tcopy(out[pos-len(buf):], buf)\n\t\tif y.IsZero() {\n\t\t\tbreak\n\t\t}\n\t\t// Move 19 digits left\n\t\tpos -= 19\n\t}\n\t// skip leading zeroes by only using the 'used size' of buf\n\treturn string(out[pos-len(buf):])\n}\n\nfunc (z *Uint) Scan(src interface{}) error {\n\tif src == nil {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tswitch src := src.(type) {\n\tcase string:\n\t\treturn z.scanScientificFromString(src)\n\tcase []byte:\n\t\treturn z.scanScientificFromString(string(src))\n\t}\n\treturn errors.New(\"default // unsupported type: can't convert to uint256.Uint\")\n}\n\nfunc (z *Uint) scanScientificFromString(src string) error {\n\tif len(src) == 0 {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tidx := strings.IndexByte(src, 'e')\n\tif idx == -1 {\n\t\treturn z.SetFromDecimal(src)\n\t}\n\tif err := z.SetFromDecimal(src[:idx]); err != nil {\n\t\treturn err\n\t}\n\tif src[(idx+1):] == \"0\" {\n\t\treturn nil\n\t}\n\texp := new(Uint)\n\tif err := exp.SetFromDecimal(src[(idx + 1):]); err != nil {\n\t\treturn err\n\t}\n\tif exp.GtUint64(77) { // 10**78 is larger than 2**256\n\t\treturn ErrBig256Range\n\t}\n\texp.Exp(NewUint(10), exp)\n\tif _, overflow := z.MulOverflow(z, exp); overflow {\n\t\treturn ErrBig256Range\n\t}\n\treturn nil\n}\n\n// ToString returns the decimal string representation of z. It returns an empty string if z is nil.\n// OBS: doesn't exist from holiman's uint256\nfunc (z *Uint) String() string {\n\tif z == nil {\n\t\treturn \"\"\n\t}\n\n\treturn z.Dec()\n}\n\n// MarshalJSON implements json.Marshaler.\n// MarshalJSON marshals using the 'decimal string' representation. This is _not_ compatible\n// with big.Uint: big.Uint marshals into JSON 'native' numeric format.\n//\n// The JSON native format is, on some platforms, (e.g. javascript), limited to 53-bit large\n// integer space. Thus, U256 uses string-format, which is not compatible with\n// big.int (big.Uint refuses to unmarshal a string representation).\nfunc (z *Uint) MarshalJSON() ([]byte, error) {\n\treturn []byte(`\"` + z.Dec() + `\"`), nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler. UnmarshalJSON accepts either\n// - Quoted string: either hexadecimal OR decimal\n// - Not quoted string: only decimal\nfunc (z *Uint) UnmarshalJSON(input []byte) error {\n\tif len(input) \u003c 2 || input[0] != '\"' || input[len(input)-1] != '\"' {\n\t\t// if not quoted, it must be decimal\n\t\treturn z.fromDecimal(string(input))\n\t}\n\treturn z.UnmarshalText(input[1 : len(input)-1])\n}\n\n// MarshalText implements encoding.TextMarshaler\n// MarshalText marshals using the decimal representation (compatible with big.Uint)\nfunc (z *Uint) MarshalText() ([]byte, error) {\n\treturn []byte(z.Dec()), nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler. This method\n// can unmarshal either hexadecimal or decimal.\n// - For hexadecimal, the input _must_ be prefixed with 0x or 0X\nfunc (z *Uint) UnmarshalText(input []byte) error {\n\tif len(input) \u003e= 2 \u0026\u0026 input[0] == '0' \u0026\u0026 (input[1] == 'x' || input[1] == 'X') {\n\t\treturn z.fromHex(string(input))\n\t}\n\treturn z.fromDecimal(string(input))\n}\n\n// SetBytes interprets buf as the bytes of a big-endian unsigned\n// integer, sets z to that value, and returns z.\n// If buf is larger than 32 bytes, the last 32 bytes is used.\nfunc (z *Uint) SetBytes(buf []byte) *Uint {\n\tswitch l := len(buf); l {\n\tcase 0:\n\t\tz.Clear()\n\tcase 1:\n\t\tz.SetBytes1(buf)\n\tcase 2:\n\t\tz.SetBytes2(buf)\n\tcase 3:\n\t\tz.SetBytes3(buf)\n\tcase 4:\n\t\tz.SetBytes4(buf)\n\tcase 5:\n\t\tz.SetBytes5(buf)\n\tcase 6:\n\t\tz.SetBytes6(buf)\n\tcase 7:\n\t\tz.SetBytes7(buf)\n\tcase 8:\n\t\tz.SetBytes8(buf)\n\tcase 9:\n\t\tz.SetBytes9(buf)\n\tcase 10:\n\t\tz.SetBytes10(buf)\n\tcase 11:\n\t\tz.SetBytes11(buf)\n\tcase 12:\n\t\tz.SetBytes12(buf)\n\tcase 13:\n\t\tz.SetBytes13(buf)\n\tcase 14:\n\t\tz.SetBytes14(buf)\n\tcase 15:\n\t\tz.SetBytes15(buf)\n\tcase 16:\n\t\tz.SetBytes16(buf)\n\tcase 17:\n\t\tz.SetBytes17(buf)\n\tcase 18:\n\t\tz.SetBytes18(buf)\n\tcase 19:\n\t\tz.SetBytes19(buf)\n\tcase 20:\n\t\tz.SetBytes20(buf)\n\tcase 21:\n\t\tz.SetBytes21(buf)\n\tcase 22:\n\t\tz.SetBytes22(buf)\n\tcase 23:\n\t\tz.SetBytes23(buf)\n\tcase 24:\n\t\tz.SetBytes24(buf)\n\tcase 25:\n\t\tz.SetBytes25(buf)\n\tcase 26:\n\t\tz.SetBytes26(buf)\n\tcase 27:\n\t\tz.SetBytes27(buf)\n\tcase 28:\n\t\tz.SetBytes28(buf)\n\tcase 29:\n\t\tz.SetBytes29(buf)\n\tcase 30:\n\t\tz.SetBytes30(buf)\n\tcase 31:\n\t\tz.SetBytes31(buf)\n\tdefault:\n\t\tz.SetBytes32(buf[l-32:])\n\t}\n\treturn z\n}\n\n// SetBytes1 is identical to SetBytes(in[:1]), but panics is input is too short\nfunc (z *Uint) SetBytes1(in []byte) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(in[0])\n\treturn z\n}\n\n// SetBytes2 is identical to SetBytes(in[:2]), but panics is input is too short\nfunc (z *Uint) SetBytes2(in []byte) *Uint {\n\t_ = in[1] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\treturn z\n}\n\n// SetBytes3 is identical to SetBytes(in[:3]), but panics is input is too short\nfunc (z *Uint) SetBytes3(in []byte) *Uint {\n\t_ = in[2] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\treturn z\n}\n\n// SetBytes4 is identical to SetBytes(in[:4]), but panics is input is too short\nfunc (z *Uint) SetBytes4(in []byte) *Uint {\n\t_ = in[3] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\treturn z\n}\n\n// SetBytes5 is identical to SetBytes(in[:5]), but panics is input is too short\nfunc (z *Uint) SetBytes5(in []byte) *Uint {\n\t_ = in[4] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint40(in[0:5])\n\treturn z\n}\n\n// SetBytes6 is identical to SetBytes(in[:6]), but panics is input is too short\nfunc (z *Uint) SetBytes6(in []byte) *Uint {\n\t_ = in[5] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint48(in[0:6])\n\treturn z\n}\n\n// SetBytes7 is identical to SetBytes(in[:7]), but panics is input is too short\nfunc (z *Uint) SetBytes7(in []byte) *Uint {\n\t_ = in[6] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint56(in[0:7])\n\treturn z\n}\n\n// SetBytes8 is identical to SetBytes(in[:8]), but panics is input is too short\nfunc (z *Uint) SetBytes8(in []byte) *Uint {\n\t_ = in[7] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = binary.BigEndian.Uint64(in[0:8])\n\treturn z\n}\n\n// SetBytes9 is identical to SetBytes(in[:9]), but panics is input is too short\nfunc (z *Uint) SetBytes9(in []byte) *Uint {\n\t_ = in[8] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(in[0])\n\tz.arr[0] = binary.BigEndian.Uint64(in[1:9])\n\treturn z\n}\n\n// SetBytes10 is identical to SetBytes(in[:10]), but panics is input is too short\nfunc (z *Uint) SetBytes10(in []byte) *Uint {\n\t_ = in[9] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[2:10])\n\treturn z\n}\n\n// SetBytes11 is identical to SetBytes(in[:11]), but panics is input is too short\nfunc (z *Uint) SetBytes11(in []byte) *Uint {\n\t_ = in[10] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[0] = binary.BigEndian.Uint64(in[3:11])\n\treturn z\n}\n\n// SetBytes12 is identical to SetBytes(in[:12]), but panics is input is too short\nfunc (z *Uint) SetBytes12(in []byte) *Uint {\n\t_ = in[11] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[4:12])\n\treturn z\n}\n\n// SetBytes13 is identical to SetBytes(in[:13]), but panics is input is too short\nfunc (z *Uint) SetBytes13(in []byte) *Uint {\n\t_ = in[12] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint40(in[0:5])\n\tz.arr[0] = binary.BigEndian.Uint64(in[5:13])\n\treturn z\n}\n\n// SetBytes14 is identical to SetBytes(in[:14]), but panics is input is too short\nfunc (z *Uint) SetBytes14(in []byte) *Uint {\n\t_ = in[13] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint48(in[0:6])\n\tz.arr[0] = binary.BigEndian.Uint64(in[6:14])\n\treturn z\n}\n\n// SetBytes15 is identical to SetBytes(in[:15]), but panics is input is too short\nfunc (z *Uint) SetBytes15(in []byte) *Uint {\n\t_ = in[14] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint56(in[0:7])\n\tz.arr[0] = binary.BigEndian.Uint64(in[7:15])\n\treturn z\n}\n\n// SetBytes16 is identical to SetBytes(in[:16]), but panics is input is too short\nfunc (z *Uint) SetBytes16(in []byte) *Uint {\n\t_ = in[15] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[0] = binary.BigEndian.Uint64(in[8:16])\n\treturn z\n}\n\n// SetBytes17 is identical to SetBytes(in[:17]), but panics is input is too short\nfunc (z *Uint) SetBytes17(in []byte) *Uint {\n\t_ = in[16] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(in[0])\n\tz.arr[1] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[0] = binary.BigEndian.Uint64(in[9:17])\n\treturn z\n}\n\n// SetBytes18 is identical to SetBytes(in[:18]), but panics is input is too short\nfunc (z *Uint) SetBytes18(in []byte) *Uint {\n\t_ = in[17] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[0] = binary.BigEndian.Uint64(in[10:18])\n\treturn z\n}\n\n// SetBytes19 is identical to SetBytes(in[:19]), but panics is input is too short\nfunc (z *Uint) SetBytes19(in []byte) *Uint {\n\t_ = in[18] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[1] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[0] = binary.BigEndian.Uint64(in[11:19])\n\treturn z\n}\n\n// SetBytes20 is identical to SetBytes(in[:20]), but panics is input is too short\nfunc (z *Uint) SetBytes20(in []byte) *Uint {\n\t_ = in[19] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[0] = binary.BigEndian.Uint64(in[12:20])\n\treturn z\n}\n\n// SetBytes21 is identical to SetBytes(in[:21]), but panics is input is too short\nfunc (z *Uint) SetBytes21(in []byte) *Uint {\n\t_ = in[20] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint40(in[0:5])\n\tz.arr[1] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[0] = binary.BigEndian.Uint64(in[13:21])\n\treturn z\n}\n\n// SetBytes22 is identical to SetBytes(in[:22]), but panics is input is too short\nfunc (z *Uint) SetBytes22(in []byte) *Uint {\n\t_ = in[21] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint48(in[0:6])\n\tz.arr[1] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[0] = binary.BigEndian.Uint64(in[14:22])\n\treturn z\n}\n\n// SetBytes23 is identical to SetBytes(in[:23]), but panics is input is too short\nfunc (z *Uint) SetBytes23(in []byte) *Uint {\n\t_ = in[22] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint56(in[0:7])\n\tz.arr[1] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[0] = binary.BigEndian.Uint64(in[15:23])\n\treturn z\n}\n\n// SetBytes24 is identical to SetBytes(in[:24]), but panics is input is too short\nfunc (z *Uint) SetBytes24(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[1] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[0] = binary.BigEndian.Uint64(in[16:24])\n\treturn z\n}\n\n// SetBytes25 is identical to SetBytes(in[:25]), but panics is input is too short\nfunc (z *Uint) SetBytes25(in []byte) *Uint {\n\t_ = in[24] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(in[0])\n\tz.arr[2] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[1] = binary.BigEndian.Uint64(in[9:17])\n\tz.arr[0] = binary.BigEndian.Uint64(in[17:25])\n\treturn z\n}\n\n// SetBytes26 is identical to SetBytes(in[:26]), but panics is input is too short\nfunc (z *Uint) SetBytes26(in []byte) *Uint {\n\t_ = in[25] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[1] = binary.BigEndian.Uint64(in[10:18])\n\tz.arr[0] = binary.BigEndian.Uint64(in[18:26])\n\treturn z\n}\n\n// SetBytes27 is identical to SetBytes(in[:27]), but panics is input is too short\nfunc (z *Uint) SetBytes27(in []byte) *Uint {\n\t_ = in[26] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[2] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[1] = binary.BigEndian.Uint64(in[11:19])\n\tz.arr[0] = binary.BigEndian.Uint64(in[19:27])\n\treturn z\n}\n\n// SetBytes28 is identical to SetBytes(in[:28]), but panics is input is too short\nfunc (z *Uint) SetBytes28(in []byte) *Uint {\n\t_ = in[27] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[1] = binary.BigEndian.Uint64(in[12:20])\n\tz.arr[0] = binary.BigEndian.Uint64(in[20:28])\n\treturn z\n}\n\n// SetBytes29 is identical to SetBytes(in[:29]), but panics is input is too short\nfunc (z *Uint) SetBytes29(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint40(in[0:5])\n\tz.arr[2] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[1] = binary.BigEndian.Uint64(in[13:21])\n\tz.arr[0] = binary.BigEndian.Uint64(in[21:29])\n\treturn z\n}\n\n// SetBytes30 is identical to SetBytes(in[:30]), but panics is input is too short\nfunc (z *Uint) SetBytes30(in []byte) *Uint {\n\t_ = in[29] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint48(in[0:6])\n\tz.arr[2] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[1] = binary.BigEndian.Uint64(in[14:22])\n\tz.arr[0] = binary.BigEndian.Uint64(in[22:30])\n\treturn z\n}\n\n// SetBytes31 is identical to SetBytes(in[:31]), but panics is input is too short\nfunc (z *Uint) SetBytes31(in []byte) *Uint {\n\t_ = in[30] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint56(in[0:7])\n\tz.arr[2] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[1] = binary.BigEndian.Uint64(in[15:23])\n\tz.arr[0] = binary.BigEndian.Uint64(in[23:31])\n\treturn z\n}\n\n// SetBytes32 sets z to the value of the big-endian 256-bit unsigned integer in.\nfunc (z *Uint) SetBytes32(in []byte) *Uint {\n\t_ = in[31] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[2] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[1] = binary.BigEndian.Uint64(in[16:24])\n\tz.arr[0] = binary.BigEndian.Uint64(in[24:32])\n\treturn z\n}\n\n// Utility methods that are \"missing\" among the bigEndian.UintXX methods.\n\n// bigEndianUint40 returns the uint64 value represented by the 5 bytes in big-endian order.\nfunc bigEndianUint40(b []byte) uint64 {\n\t_ = b[4] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[4]) | uint64(b[3])\u003c\u003c8 | uint64(b[2])\u003c\u003c16 | uint64(b[1])\u003c\u003c24 |\n\t\tuint64(b[0])\u003c\u003c32\n}\n\n// bigEndianUint56 returns the uint64 value represented by the 7 bytes in big-endian order.\nfunc bigEndianUint56(b []byte) uint64 {\n\t_ = b[6] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[6]) | uint64(b[5])\u003c\u003c8 | uint64(b[4])\u003c\u003c16 | uint64(b[3])\u003c\u003c24 |\n\t\tuint64(b[2])\u003c\u003c32 | uint64(b[1])\u003c\u003c40 | uint64(b[0])\u003c\u003c48\n}\n\n// bigEndianUint48 returns the uint64 value represented by the 6 bytes in big-endian order.\nfunc bigEndianUint48(b []byte) uint64 {\n\t_ = b[5] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[5]) | uint64(b[4])\u003c\u003c8 | uint64(b[3])\u003c\u003c16 | uint64(b[2])\u003c\u003c24 |\n\t\tuint64(b[1])\u003c\u003c32 | uint64(b[0])\u003c\u003c40\n}\n"},{"name":"conversion_test.gno","body":"package uint256\n\nimport \"testing\"\n\nfunc TestIsUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0x0\", true},\n\t\t{\"0x1\", true},\n\t\t{\"0x10\", true},\n\t\t{\"0xffffffffffffffff\", true},\n\t\t{\"0x10000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\tgot := x.IsUint64()\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsUint64(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDec(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz Uint\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"zero\",\n\t\t\tz: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than 20 digits\",\n\t\t\tz: Uint{arr: [4]uint64{1234567890, 0, 0, 0}},\n\t\t\twant: \"1234567890\",\n\t\t},\n\t\t{\n\t\t\tname: \"max possible value\",\n\t\t\tz: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: twoPow256Sub1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := tt.z.Dec()\n\t\t\tif result != tt.want {\n\t\t\t\tt.Errorf(\"Dec(%v) = %s, want %s\", tt.z, result, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUint_Scan(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\twant *Uint\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tinput: nil,\n\t\t\twant: NewUint(0),\n\t\t},\n\t\t{\n\t\t\tname: \"valid scientific notation\",\n\t\t\tinput: \"1e4\",\n\t\t\twant: NewUint(10000),\n\t\t},\n\t\t{\n\t\t\tname: \"valid decimal string\",\n\t\t\tinput: \"12345\",\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"valid byte slice\",\n\t\t\tinput: []byte(\"12345\"),\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"invalid string\",\n\t\t\tinput: \"invalid\",\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"out of range\",\n\t\t\tinput: \"115792089237316195423570985008687907853269984665640564039457584007913129639936\", // 2^256\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"unsupported type\",\n\t\t\tinput: 123,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := new(Uint)\n\t\t\terr := z.Scan(tt.input)\n\n\t\t\tif tt.wantErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t\tif !z.Eq(tt.want) {\n\t\t\t\t\tt.Errorf(\"Scan() = %v, want %v\", z, tt.want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSetBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected string\n\t}{\n\t\t{[]byte{}, \"0\"},\n\t\t{[]byte{0x01}, \"1\"},\n\t\t{[]byte{0x12, 0x34}, \"4660\"},\n\t\t{[]byte{0x12, 0x34, 0x56}, \"1193046\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78}, \"305419896\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a}, \"78187493530\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"20015998343868\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"5124095576030430\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"1311768467463790320\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"335812727670730321938\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"85968058283706962416180\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"22007822920628982378542166\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"5634002667681019488906794616\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"1442304682926340989160139421850\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"369229998829143293224995691993788\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"94522879700260683065598897150409950\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"24197857203266734864793317670504947440\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"6194651444036284125387089323649266544658\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"1585830769673288736099094866854212235432500\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"405972677036361916441368285914678332270720086\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"103929005321308650608990281194157653061304342136\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"26605825362255014555901511985704359183693911586970\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"6811091292737283726310787068340315951025641366264508\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"1743639370940744633935561489495120883462564189763714270\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"446371678960830626287503741310750946166416432579510853360\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"114271149813972640329600957775552242218602606740354778460178\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"29253414352376995924377845190541374007962267325530823285805620\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"7488874074208510956640728368778591746038340435335890761166238806\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"1917151762997378804900026462407319486985815151445988034858557134456\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"490790851327328974054406774376273788668368678770172936923790626420890\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"125642457939796217357928134240326089899102381765164271852490400363748028\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"32164469232587831643629602365523479014170209731882053594237542493119495390\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t\t// over 32 bytes (last 32 bytes are used)\n\t\t{append([]byte{0xff}, []byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}...), \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t}\n\n\tfor _, test := range tests {\n\t\tz := new(Uint)\n\t\tz.SetBytes(test.input)\n\t\texpected := MustFromDecimal(test.expected)\n\t\tif z.Cmp(expected) != 0 {\n\t\t\tt.Errorf(\"SetBytes(%x) = %s, expected %s\", test.input, z.String(), test.expected)\n\t\t}\n\t}\n}\n"},{"name":"error.gno","body":"package uint256\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrEmptyString = errors.New(\"empty hex string\")\n\tErrSyntax = errors.New(\"invalid hex string\")\n\tErrRange = errors.New(\"number out of range\")\n\tErrMissingPrefix = errors.New(\"hex string without 0x prefix\")\n\tErrEmptyNumber = errors.New(\"hex string \\\"0x\\\"\")\n\tErrLeadingZero = errors.New(\"hex number with leading zero digits\")\n\tErrBig256Range = errors.New(\"hex number \u003e 256 bits\")\n\tErrBadBufferLength = errors.New(\"bad ssz buffer length\")\n\tErrBadEncodedLength = errors.New(\"bad ssz encoded length\")\n\tErrInvalidBase = errors.New(\"invalid base\")\n\tErrInvalidBitSize = errors.New(\"invalid bit size\")\n)\n\ntype u256Error struct {\n\tfn string // function name\n\tinput string\n\terr error\n}\n\nfunc (e *u256Error) Error() string {\n\treturn e.fn + \": \" + e.input + \": \" + e.err.Error()\n}\n\nfunc (e *u256Error) Unwrap() error {\n\treturn e.err\n}\n\nfunc errEmptyString(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyString}\n}\n\nfunc errSyntax(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrSyntax}\n}\n\nfunc errMissingPrefix(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrMissingPrefix}\n}\n\nfunc errEmptyNumber(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyNumber}\n}\n\nfunc errLeadingZero(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrLeadingZero}\n}\n\nfunc errRange(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrRange}\n}\n\nfunc errBig256Range(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBig256Range}\n}\n\nfunc errBadBufferLength(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBadBufferLength}\n}\n\nfunc errInvalidBase(fn string, base int) error {\n\treturn \u0026u256Error{fn: fn, input: string(base), err: ErrInvalidBase}\n}\n\nfunc errInvalidBitSize(fn string, bitSize int) error {\n\treturn \u0026u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize}\n}\n"},{"name":"mod.gno","body":"package uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Some utility functions\n\n// Reciprocal computes a 320-bit value representing 1/m\n//\n// Notes:\n// - specialized for m.arr[3] != 0, hence limited to 2^192 \u003c= m \u003c 2^256\n// - returns zero if m.arr[3] == 0\n// - starts with a 32-bit division, refines with newton-raphson iterations\nfunc Reciprocal(m *Uint) (mu [5]uint64) {\n\tif m.arr[3] == 0 {\n\t\treturn mu\n\t}\n\n\ts := bits.LeadingZeros64(m.arr[3]) // Replace with leadingZeros(m) for general case\n\tp := 255 - s // floor(log_2(m)), m\u003e0\n\n\t// 0 or a power of 2?\n\n\t// Check if at least one bit is set in m.arr[2], m.arr[1] or m.arr[0],\n\t// or at least two bits in m.arr[3]\n\n\tif m.arr[0]|m.arr[1]|m.arr[2]|(m.arr[3]\u0026(m.arr[3]-1)) == 0 {\n\n\t\tmu[4] = ^uint64(0) \u003e\u003e uint(p\u002663)\n\t\tmu[3] = ^uint64(0)\n\t\tmu[2] = ^uint64(0)\n\t\tmu[1] = ^uint64(0)\n\t\tmu[0] = ^uint64(0)\n\n\t\treturn mu\n\t}\n\n\t// Maximise division precision by left-aligning divisor\n\n\tvar (\n\t\ty Uint // left-aligned copy of m\n\t\tr0 uint32 // estimate of 2^31/y\n\t)\n\n\ty.Lsh(m, uint(s)) // 1/2 \u003c y \u003c 1\n\n\t// Extract most significant 32 bits\n\n\tyh := uint32(y.arr[3] \u003e\u003e 32)\n\n\tif yh == 0x80000000 { // Avoid overflow in division\n\t\tr0 = 0xffffffff\n\t} else {\n\t\tr0, _ = bits.Div32(0x80000000, 0, yh)\n\t}\n\n\t// First iteration: 32 -\u003e 64\n\n\tt1 := uint64(r0) // 2^31/y\n\tt1 *= t1 // 2^62/y^2\n\tt1, _ = bits.Mul64(t1, y.arr[3]) // 2^62/y^2 * 2^64/y / 2^64 = 2^62/y\n\n\tr1 := uint64(r0) \u003c\u003c 32 // 2^63/y\n\tr1 -= t1 // 2^63/y - 2^62/y = 2^62/y\n\tr1 *= 2 // 2^63/y\n\n\tif (r1 | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr1 = ^uint64(0)\n\t}\n\n\t// Second iteration: 64 -\u003e 128\n\n\t// square: 2^126/y^2\n\ta2h, a2l := bits.Mul64(r1, r1)\n\n\t// multiply by y: e2h:e2l:b2h = 2^126/y^2 * 2^128/y / 2^128 = 2^126/y\n\tb2h, _ := bits.Mul64(a2l, y.arr[2])\n\tc2h, c2l := bits.Mul64(a2l, y.arr[3])\n\td2h, d2l := bits.Mul64(a2h, y.arr[2])\n\te2h, e2l := bits.Mul64(a2h, y.arr[3])\n\n\tb2h, c := bits.Add64(b2h, c2l, 0)\n\te2l, c = bits.Add64(e2l, c2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t_, c = bits.Add64(b2h, d2l, 0)\n\te2l, c = bits.Add64(e2l, d2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t// subtract: t2h:t2l = 2^127/y - 2^126/y = 2^126/y\n\tt2l, b := bits.Sub64(0, e2l, 0)\n\tt2h, _ := bits.Sub64(r1, e2h, b)\n\n\t// double: r2h:r2l = 2^127/y\n\tr2l, c := bits.Add64(t2l, t2l, 0)\n\tr2h, _ := bits.Add64(t2h, t2h, c)\n\n\tif (r2h | r2l | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr2h = ^uint64(0)\n\t\tr2l = ^uint64(0)\n\t}\n\n\t// Third iteration: 128 -\u003e 192\n\n\t// square r2 (keep 256 bits): 2^190/y^2\n\ta3h, a3l := bits.Mul64(r2l, r2l)\n\tb3h, b3l := bits.Mul64(r2l, r2h)\n\tc3h, c3l := bits.Mul64(r2h, r2h)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\t// multiply by y: q = 2^190/y^2 * 2^192/y / 2^192 = 2^190/y\n\n\tx0 := a3l\n\tx1 := a3h\n\tx2 := c3l\n\tx3 := c3h\n\n\tvar q0, q1, q2, q3, q4, t0 uint64\n\n\tq0, _ = bits.Mul64(x2, y.arr[0])\n\tq1, t0 = bits.Mul64(x3, y.arr[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x1, y.arr[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x3, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x3, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, y.arr[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x3, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\t// subtract: t3 = 2^191/y - 2^190/y = 2^190/y\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\tt3l, b := bits.Sub64(0, q2, b)\n\tt3m, b := bits.Sub64(r2l, q3, b)\n\tt3h, _ := bits.Sub64(r2h, q4, b)\n\n\t// double: r3 = 2^191/y\n\tr3l, c := bits.Add64(t3l, t3l, 0)\n\tr3m, c := bits.Add64(t3m, t3m, c)\n\tr3h, _ := bits.Add64(t3h, t3h, c)\n\n\t// Fourth iteration: 192 -\u003e 320\n\n\t// square r3\n\n\ta4h, a4l := bits.Mul64(r3l, r3l)\n\tb4h, b4l := bits.Mul64(r3l, r3m)\n\tc4h, c4l := bits.Mul64(r3l, r3h)\n\td4h, d4l := bits.Mul64(r3m, r3m)\n\te4h, e4l := bits.Mul64(r3m, r3h)\n\tf4h, f4l := bits.Mul64(r3h, r3h)\n\n\tb4h, c = bits.Add64(b4h, c4l, 0)\n\te4l, c = bits.Add64(e4l, c4h, c)\n\te4h, _ = bits.Add64(e4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\t// multiply by y\n\n\tx1, x0 = bits.Mul64(d4h, y.arr[0])\n\tx3, x2 = bits.Mul64(f4h, y.arr[0])\n\tt1, t0 = bits.Mul64(f4l, y.arr[0])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx3, _ = bits.Add64(x3, 0, c)\n\n\tt1, t0 = bits.Mul64(d4h, y.arr[1])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx4, t0 := bits.Mul64(f4h, y.arr[1])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[1])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[1])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[2])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[2])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx5, t0 := bits.Mul64(f4h, y.arr[2])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[2])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[2])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[3])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[3])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx6, t0 := bits.Mul64(f4h, y.arr[3])\n\tx5, c = bits.Add64(x5, t0, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\tt1, t0 = bits.Mul64(a4l, y.arr[3])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[3])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[3])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, c = bits.Add64(x5, t1, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\n\t// subtract\n\t_, b = bits.Sub64(0, x0, 0)\n\t_, b = bits.Sub64(0, x1, b)\n\tr4l, b := bits.Sub64(0, x2, b)\n\tr4k, b := bits.Sub64(0, x3, b)\n\tr4j, b := bits.Sub64(r3l, x4, b)\n\tr4i, b := bits.Sub64(r3m, x5, b)\n\tr4h, _ := bits.Sub64(r3h, x6, b)\n\n\t// Multiply candidate for 1/4y by y, with full precision\n\n\tx0 = r4l\n\tx1 = r4k\n\tx2 = r4j\n\tx3 = r4i\n\tx4 = r4h\n\n\tq1, q0 = bits.Mul64(x0, y.arr[0])\n\tq3, q2 = bits.Mul64(x2, y.arr[0])\n\tq5, q4 := bits.Mul64(x4, y.arr[0])\n\n\tt1, t0 = bits.Mul64(x1, y.arr[0])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[0])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq6, t0 := bits.Mul64(x4, y.arr[1])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[1])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[1])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq7, t0 := bits.Mul64(x4, y.arr[2])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[2])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq8, t0 := bits.Mul64(x4, y.arr[3])\n\tq7, c = bits.Add64(q7, t0, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq4, c = bits.Add64(q4, t0, 0)\n\tq5, c = bits.Add64(q5, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[3])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, c = bits.Add64(q7, t1, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\t// Final adjustment\n\n\t// subtract q from 1/4\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\t_, b = bits.Sub64(0, q2, b)\n\t_, b = bits.Sub64(0, q3, b)\n\t_, b = bits.Sub64(0, q4, b)\n\t_, b = bits.Sub64(0, q5, b)\n\t_, b = bits.Sub64(0, q6, b)\n\t_, b = bits.Sub64(0, q7, b)\n\t_, b = bits.Sub64(uint64(1)\u003c\u003c62, q8, b)\n\n\t// decrement the result\n\tx0, t := bits.Sub64(r4l, 1, 0)\n\tx1, t = bits.Sub64(r4k, 0, t)\n\tx2, t = bits.Sub64(r4j, 0, t)\n\tx3, t = bits.Sub64(r4i, 0, t)\n\tx4, _ = bits.Sub64(r4h, 0, t)\n\n\t// commit the decrement if the subtraction underflowed (reciprocal was too large)\n\tif b != 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\t// Shift to correct bit alignment, truncating excess bits\n\n\tp = (p \u0026 63) - 1\n\n\tx0, c = bits.Add64(r4l, r4l, 0)\n\tx1, c = bits.Add64(r4k, r4k, c)\n\tx2, c = bits.Add64(r4j, r4j, c)\n\tx3, c = bits.Add64(r4i, r4i, c)\n\tx4, _ = bits.Add64(r4h, r4h, c)\n\n\tif p \u003c 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t\tp = 0 // avoid negative shift below\n\t}\n\n\t{\n\t\tr := uint(p) // right shift\n\t\tl := uint(64 - r) // left shift\n\n\t\tx0 = (r4l \u003e\u003e r) | (r4k \u003c\u003c l)\n\t\tx1 = (r4k \u003e\u003e r) | (r4j \u003c\u003c l)\n\t\tx2 = (r4j \u003e\u003e r) | (r4i \u003c\u003c l)\n\t\tx3 = (r4i \u003e\u003e r) | (r4h \u003c\u003c l)\n\t\tx4 = (r4h \u003e\u003e r)\n\t}\n\n\tif p \u003e 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\tmu[0] = r4l\n\tmu[1] = r4k\n\tmu[2] = r4j\n\tmu[3] = r4i\n\tmu[4] = r4h\n\n\treturn mu\n}\n\n// reduce4 computes the least non-negative residue of x modulo m\n//\n// requires a four-word modulus (m.arr[3] \u003e 1) and its inverse (mu)\nfunc reduce4(x [8]uint64, m *Uint, mu [5]uint64) (z Uint) {\n\t// NB: Most variable names in the comments match the pseudocode for\n\t// \tBarrett reduction in the Handbook of Applied Cryptography.\n\n\t// q1 = x/2^192\n\n\tx0 := x[3]\n\tx1 := x[4]\n\tx2 := x[5]\n\tx3 := x[6]\n\tx4 := x[7]\n\n\t// q2 = q1 * mu; q3 = q2 / 2^320\n\n\tvar q0, q1, q2, q3, q4, q5, t0, t1, c uint64\n\n\tq0, _ = bits.Mul64(x3, mu[0])\n\tq1, t0 = bits.Mul64(x4, mu[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x2, mu[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x4, mu[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x3, mu[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, mu[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x4, mu[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x1, mu[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x3, mu[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, mu[3])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, mu[3])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x4, mu[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, mu[4])\n\t_, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, mu[4])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq5, t0 = bits.Mul64(x4, mu[4])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[4])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[4])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\t// Drop the fractional part of q3\n\n\tq0 = q1\n\tq1 = q2\n\tq2 = q3\n\tq3 = q4\n\tq4 = q5\n\n\t// r1 = x mod 2^320\n\n\tx0 = x[0]\n\tx1 = x[1]\n\tx2 = x[2]\n\tx3 = x[3]\n\tx4 = x[4]\n\n\t// r2 = q3 * m mod 2^320\n\n\tvar r0, r1, r2, r3, r4 uint64\n\n\tr4, r3 = bits.Mul64(q0, m.arr[3])\n\t_, t0 = bits.Mul64(q1, m.arr[3])\n\tr4, _ = bits.Add64(r4, t0, 0)\n\n\tt1, r2 = bits.Mul64(q0, m.arr[2])\n\tr3, c = bits.Add64(r3, t1, 0)\n\t_, t0 = bits.Mul64(q2, m.arr[2])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[2])\n\tr3, c = bits.Add64(r3, t0, 0)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, r1 = bits.Mul64(q0, m.arr[1])\n\tr2, c = bits.Add64(r2, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[1])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[1])\n\tr2, c = bits.Add64(r2, t0, 0)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q3, m.arr[1])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, r0 = bits.Mul64(q0, m.arr[0])\n\tr1, c = bits.Add64(r1, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[0])\n\tr2, c = bits.Add64(r2, t0, c)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q4, m.arr[0])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[0])\n\tr1, c = bits.Add64(r1, t0, 0)\n\tr2, c = bits.Add64(r2, t1, c)\n\tt1, t0 = bits.Mul64(q3, m.arr[0])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\t// r = r1 - r2\n\n\tvar b uint64\n\n\tr0, b = bits.Sub64(x0, r0, 0)\n\tr1, b = bits.Sub64(x1, r1, b)\n\tr2, b = bits.Sub64(x2, r2, b)\n\tr3, b = bits.Sub64(x3, r3, b)\n\tr4, b = bits.Sub64(x4, r4, b)\n\n\t// if r\u003c0 then r+=m\n\n\tif b != 0 {\n\t\tr0, c = bits.Add64(r0, m.arr[0], 0)\n\t\tr1, c = bits.Add64(r1, m.arr[1], c)\n\t\tr2, c = bits.Add64(r2, m.arr[2], c)\n\t\tr3, c = bits.Add64(r3, m.arr[3], c)\n\t\tr4, _ = bits.Add64(r4, 0, c)\n\t}\n\n\t// while (r\u003e=m) r-=m\n\n\tfor {\n\t\t// q = r - m\n\t\tq0, b = bits.Sub64(r0, m.arr[0], 0)\n\t\tq1, b = bits.Sub64(r1, m.arr[1], b)\n\t\tq2, b = bits.Sub64(r2, m.arr[2], b)\n\t\tq3, b = bits.Sub64(r3, m.arr[3], b)\n\t\tq4, b = bits.Sub64(r4, 0, b)\n\n\t\t// if borrow break\n\t\tif b != 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// r = q\n\t\tr4, r3, r2, r1, r0 = q4, q3, q2, q1, q0\n\t}\n\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = r3, r2, r1, r0\n\n\treturn z\n}\n"},{"name":"uint256.gno","body":"// Ported from https://github.com/holiman/uint256\n// This package provides a 256-bit unsigned integer type, Uint256, and associated functions.\npackage uint256\n\nimport (\n\t\"errors\"\n\t\"math/bits\"\n\t\"strconv\"\n)\n\nconst (\n\tMaxUint64 = 1\u003c\u003c64 - 1\n\tuintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63)\n)\n\n// Uint is represented as an array of 4 uint64, in little-endian order,\n// so that Uint[3] is the most significant, and Uint[0] is the least significant\ntype Uint struct {\n\tarr [4]uint64\n}\n\n// NewUint returns a new initialized Uint.\nfunc NewUint(val uint64) *Uint {\n\tz := \u0026Uint{arr: [4]uint64{val, 0, 0, 0}}\n\treturn z\n}\n\n// Zero returns a new Uint initialized to zero.\nfunc Zero() *Uint {\n\treturn NewUint(0)\n}\n\n// One returns a new Uint initialized to one.\nfunc One() *Uint {\n\treturn NewUint(1)\n}\n\n// SetAllOne sets all the bits of z to 1\nfunc (z *Uint) SetAllOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, MaxUint64\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Uint) Set(x *Uint) *Uint {\n\t*z = *x\n\n\treturn z\n}\n\n// SetOne sets z to 1\nfunc (z *Uint) SetOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 1\n\treturn z\n}\n\nconst twoPow256Sub1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\n// SetFromDecimal sets z from the given string, interpreted as a decimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Uint).SetString(..., 10) method.\n// Notable differences:\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0\",\n// - (this method does not accept any negative input as valid))\nfunc (z *Uint) SetFromDecimal(s string) (err error) {\n\t// Remove max one leading +\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\t// Remove any number of leading zeroes\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '0' {\n\t\tvar i int\n\t\tvar c rune\n\t\tfor i, c = range s {\n\t\t\tif c != '0' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ts = s[i:]\n\t}\n\tif len(s) \u003c len(twoPow256Sub1) {\n\t\treturn z.fromDecimal(s)\n\t}\n\tif len(s) == len(twoPow256Sub1) {\n\t\tif s \u003e twoPow256Sub1 {\n\t\t\treturn ErrBig256Range\n\t\t}\n\t\treturn z.fromDecimal(s)\n\t}\n\treturn ErrBig256Range\n}\n\n// FromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string. Numbers larger than 256 bits are not accepted.\nfunc FromDecimal(decimal string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromDecimal(decimal string) *Uint {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// multipliers holds the values that are needed for fromDecimal\nvar multipliers = [5]*Uint{\n\tnil, // represents first round, no multiplication needed\n\t{[4]uint64{10000000000000000000, 0, 0, 0}}, // 10 ^ 19\n\t{[4]uint64{687399551400673280, 5421010862427522170, 0, 0}}, // 10 ^ 38\n\t{[4]uint64{5332261958806667264, 17004971331911604867, 2938735877055718769, 0}}, // 10 ^ 57\n\t{[4]uint64{0, 8607968719199866880, 532749306367912313, 1593091911132452277}}, // 10 ^ 76\n}\n\n// fromDecimal is a helper function to only ever be called via SetFromDecimal\n// this function takes a string and chunks it up, calling ParseUint on it up to 5 times\n// these chunks are then multiplied by the proper power of 10, then added together.\nfunc (z *Uint) fromDecimal(bs string) error {\n\t// first clear the input\n\tz.Clear()\n\t// the maximum value of uint64 is 18446744073709551615, which is 20 characters\n\t// one less means that a string of 19 9's is always within the uint64 limit\n\tvar (\n\t\tnum uint64\n\t\terr error\n\t\tremaining = len(bs)\n\t)\n\tif remaining == 0 {\n\t\treturn errors.New(\"EOF\")\n\t}\n\t// We proceed in steps of 19 characters (nibbles), from least significant to most significant.\n\t// This means that the first (up to) 19 characters do not need to be multiplied.\n\t// In the second iteration, our slice of 19 characters needs to be multipleied\n\t// by a factor of 10^19. Et cetera.\n\tfor i, mult := range multipliers {\n\t\tif remaining \u003c= 0 {\n\t\t\treturn nil // Done\n\t\t} else if remaining \u003e 19 {\n\t\t\tnum, err = strconv.ParseUint(bs[remaining-19:remaining], 10, 64)\n\t\t} else {\n\t\t\t// Final round\n\t\t\tnum, err = strconv.ParseUint(bs, 10, 64)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// add that number to our running total\n\t\tif i == 0 {\n\t\t\tz.SetUint64(num)\n\t\t} else {\n\t\t\tbase := NewUint(num)\n\t\t\tz.Add(z, base.Mul(base, mult))\n\t\t}\n\t\t// Chop off another 19 characters\n\t\tif remaining \u003e 19 {\n\t\t\tbs = bs[0 : remaining-19]\n\t\t}\n\t\tremaining -= 19\n\t}\n\treturn nil\n}\n\n// Byte sets z to the value of the byte at position n,\n// with 'z' considered as a big-endian 32-byte integer\n// if 'n' \u003e 32, f is set to 0\n// Example: f = '5', n=31 =\u003e 5\nfunc (z *Uint) Byte(n *Uint) *Uint {\n\t// in z, z.arr[0] is the least significant\n\tif number, overflow := n.Uint64WithOverflow(); !overflow {\n\t\tif number \u003c 32 {\n\t\t\tnumber := z.arr[4-1-number/8]\n\t\t\toffset := (n.arr[0] \u0026 0x7) \u003c\u003c 3 // 8*(n.d % 8)\n\t\t\tz.arr[0] = (number \u0026 (0xff00000000000000 \u003e\u003e offset)) \u003e\u003e (56 - offset)\n\t\t\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\t\t\treturn z\n\t\t}\n\t}\n\n\treturn z.Clear()\n}\n\n// BitLen returns the number of bits required to represent z\nfunc (z *Uint) BitLen() int {\n\tswitch {\n\tcase z.arr[3] != 0:\n\t\treturn 192 + bits.Len64(z.arr[3])\n\tcase z.arr[2] != 0:\n\t\treturn 128 + bits.Len64(z.arr[2])\n\tcase z.arr[1] != 0:\n\t\treturn 64 + bits.Len64(z.arr[1])\n\tdefault:\n\t\treturn bits.Len64(z.arr[0])\n\t}\n}\n\n// ByteLen returns the number of bytes required to represent z\nfunc (z *Uint) ByteLen() int {\n\treturn (z.BitLen() + 7) / 8\n}\n\n// Clear sets z to 0\nfunc (z *Uint) Clear() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 0\n\treturn z\n}\n\nconst (\n\t// hextable = \"0123456789abcdef\"\n\tbintable = \"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\a\\b\\t\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n\tbadNibble = 0xff\n)\n\n// SetFromHex sets z from the given string, interpreted as a hexadecimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Int).SetString(..., 16) method.\n// Notable differences:\n// - This method _require_ \"0x\" or \"0X\" prefix.\n// - This method does not accept zero-prefixed hex, e.g. \"0x0001\"\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0x0\",\n// - (this method does not accept any negative input as valid)\nfunc (z *Uint) SetFromHex(hex string) error {\n\treturn z.fromHex(hex)\n}\n\n// fromHex is the internal implementation of parsing a hex-string.\nfunc (z *Uint) fromHex(hex string) error {\n\tif err := checkNumberS(hex); err != nil {\n\t\treturn err\n\t}\n\tif len(hex) \u003e 66 {\n\t\treturn ErrBig256Range\n\t}\n\tz.Clear()\n\tend := len(hex)\n\tfor i := 0; i \u003c 4; i++ {\n\t\tstart := end - 16\n\t\tif start \u003c 2 {\n\t\t\tstart = 2\n\t\t}\n\t\tfor ri := start; ri \u003c end; ri++ {\n\t\t\tnib := bintable[hex[ri]]\n\t\t\tif nib == badNibble {\n\t\t\t\treturn ErrSyntax\n\t\t\t}\n\t\t\tz.arr[i] = z.arr[i] \u003c\u003c 4\n\t\t\tz.arr[i] += uint64(nib)\n\t\t}\n\t\tend = start\n\t}\n\treturn nil\n}\n\n// FromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string. The string is required to be '0x'-prefixed\n// Numbers larger than 256 bits are not accepted.\nfunc FromHex(hex string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromHex(hex string) *Uint {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// Clone creates a new Uint identical to z\nfunc (z *Uint) Clone() *Uint {\n\tvar x Uint\n\tx.arr[0] = z.arr[0]\n\tx.arr[1] = z.arr[1]\n\tx.arr[2] = z.arr[2]\n\tx.arr[3] = z.arr[3]\n\n\treturn \u0026x\n}\n"},{"name":"uint256_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestSetAllOne(t *testing.T) {\n\tz := Zero()\n\tz.SetAllOne()\n\tif z.String() != twoPow256Sub1 {\n\t\tt.Errorf(\"Expected all ones, got %s\", z.String())\n\t}\n}\n\nfunc TestByte(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\tposition uint64\n\t\texpected byte\n\t}{\n\t\t{\"0x1000000000000000000000000000000000000000000000000000000000000000\", 0, 16},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, 255},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 31, 255},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tn := NewUint(tt.position)\n\t\tresult := z.Byte(n)\n\n\t\tif result.arr[0] != uint64(tt.expected) {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Position: %d, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.position, tt.expected, result.arr[0])\n\t\t}\n\n\t\t// check other array elements are 0\n\t\tif result.arr[1] != 0 || result.arr[2] != 0 || result.arr[3] != 0 {\n\t\t\tt.Errorf(\"Test case %d failed. Non-zero values in upper bytes\", i)\n\t\t}\n\t}\n\n\t// overflow\n\tz, _ := FromHex(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\")\n\tn := NewUint(32)\n\tresult := z.Byte(n)\n\n\tif !result.IsZero() {\n\t\tt.Errorf(\"Expected zero for position \u003e= 32, got %v\", result)\n\t}\n}\n\nfunc TestBitLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 8},\n\t\t{\"0x100\", 9},\n\t\t{\"0xffff\", 16},\n\t\t{\"0x10000\", 17},\n\t\t{\"0xffffffffffffffff\", 64},\n\t\t{\"0x10000000000000000\", 65},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 128},\n\t\t{\"0x100000000000000000000000000000000\", 129},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 256},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.BitLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestByteLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 1},\n\t\t{\"0x100\", 2},\n\t\t{\"0xffff\", 2},\n\t\t{\"0x10000\", 3},\n\t\t{\"0xffffffffffffffff\", 8},\n\t\t{\"0x10000000000000000\", 9},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 16},\n\t\t{\"0x100000000000000000000000000000000\", 17},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 32},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.ByteLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0x1\", \"1\"},\n\t\t{\"0x100\", \"256\"},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.Clone()\n\t\tif result.String() != tt.expected {\n\t\t\tt.Errorf(\"Test %s failed. Expected %s, got %s\", tt.input, tt.expected, result.String())\n\t\t}\n\t}\n}\n"},{"name":"utils.gno","body":"package uint256\n\nfunc checkNumberS(input string) error {\n\tconst fn = \"UnmarshalText\"\n\tl := len(input)\n\tif l == 0 {\n\t\treturn errEmptyString(fn, input)\n\t}\n\tif l \u003c 2 || input[0] != '0' ||\n\t\t(input[1] != 'x' \u0026\u0026 input[1] != 'X') {\n\t\treturn errMissingPrefix(fn, input)\n\t}\n\tif l == 2 {\n\t\treturn errEmptyNumber(fn, input)\n\t}\n\tif len(input) \u003e 3 \u0026\u0026 input[2] == '0' {\n\t\treturn errLeadingZero(fn, input)\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7SgnI6Oa96KWBAhH0Oa1pcFCdwvps03jsdSpk/ZxcaQLDJ7mJMxGqgTp0Qh5vNVB372tbVBHXl7zkt0hasnoCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"urequire","path":"gno.land/p/demo/urequire","files":[{"name":"urequire.gno","body":"// urequire is a sister package for uassert.\n// XXX: codegen the package.\npackage urequire\n\nimport \"gno.land/p/demo/uassert\"\n\n// type TestingT = uassert.TestingT // XXX: bug, should work\n\nfunc NoError(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.NoError(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Error(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.Error(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorContains(t uassert.TestingT, err error, contains string, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorContains(t, err, contains, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc True(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.True(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc False(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.False(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorIs(t uassert.TestingT, err, target error, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorIs(t, err, target, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc PanicsWithMessage(t uassert.TestingT, msg string, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.PanicsWithMessage(t, msg, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotPanics(t uassert.TestingT, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.NotPanics(t, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Equal(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Equal(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEqual(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEqual(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Empty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Empty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEmpty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEmpty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n"},{"name":"urequire_test.gno","body":"package urequire\n\nimport \"testing\"\n\nfunc TestPackage(t *testing.T) {\n\tEqual(t, 42, 42)\n\t// XXX: find a way to unit test this package\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dC4cdwSy1KBvaqiqjoZiBykjwzbDZW2VplJXqatKgqznPAI0HAHi6hmfc5PYTBkwYiegXO/2vmHV4yZAdePSBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"urequire","path":"gno.land/p/demo/urequire","files":[{"name":"urequire.gno","body":"// urequire is a sister package for uassert.\n// XXX: codegen the package.\npackage urequire\n\nimport \"gno.land/p/demo/uassert\"\n\n// type TestingT = uassert.TestingT // XXX: bug, should work\n\nfunc NoError(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.NoError(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Error(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.Error(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorContains(t uassert.TestingT, err error, contains string, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorContains(t, err, contains, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc True(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.True(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc False(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.False(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorIs(t uassert.TestingT, err, target error, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorIs(t, err, target, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc PanicsWithMessage(t uassert.TestingT, msg string, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.PanicsWithMessage(t, msg, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotPanics(t uassert.TestingT, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.NotPanics(t, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Equal(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Equal(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEqual(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEqual(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Empty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Empty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEmpty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEmpty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n"},{"name":"urequire_test.gno","body":"package urequire\n\nimport \"testing\"\n\nfunc TestPackage(t *testing.T) {\n\tEqual(t, 42, 42)\n\t// XXX: find a way to unit test this package\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dC4cdwSy1KBvaqiqjoZiBykjwzbDZW2VplJXqatKgqznPAI0HAHi6hmfc5PYTBkwYiegXO/2vmHV4yZAdePSBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"urequire","path":"gno.land/p/demo/urequire","files":[{"name":"urequire.gno","body":"// urequire is a sister package for uassert.\n// XXX: codegen the package.\npackage urequire\n\nimport \"gno.land/p/demo/uassert\"\n\n// type TestingT = uassert.TestingT // XXX: bug, should work\n\nfunc NoError(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.NoError(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Error(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.Error(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorContains(t uassert.TestingT, err error, contains string, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorContains(t, err, contains, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc True(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.True(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc False(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.False(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorIs(t uassert.TestingT, err, target error, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorIs(t, err, target, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc PanicsWithMessage(t uassert.TestingT, msg string, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.PanicsWithMessage(t, msg, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotPanics(t uassert.TestingT, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.NotPanics(t, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Equal(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Equal(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEqual(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEqual(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Empty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Empty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEmpty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEmpty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n"},{"name":"urequire_test.gno","body":"package urequire\n\nimport \"testing\"\n\nfunc TestPackage(t *testing.T) {\n\tEqual(t, 42, 42)\n\t// XXX: find a way to unit test this package\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dC4cdwSy1KBvaqiqjoZiBykjwzbDZW2VplJXqatKgqznPAI0HAHi6hmfc5PYTBkwYiegXO/2vmHV4yZAdePSBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"userbook","path":"gno.land/r/demo/userbook","files":[{"name":"render.gno","body":"// Package userbook demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"sort\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nfunc Render(path string) string {\n\tp := pager.NewPager(signupsTree, 2)\n\tpage := p.MustGetPageByPath(path)\n\n\tout := \"# Welcome to UserBook!\\n\\n\"\n\n\tout += ufmt.Sprintf(\"## [Click here to sign up!](%s)\\n\\n\", txlink.Call(\"SignUp\"))\n\tout += \"---\\n\\n\"\n\n\tvar sorted sortedSignups\n\tfor _, item := range page.Items {\n\t\tsorted = append(sorted, item.Value.(*Signup))\n\t}\n\n\tsort.Sort(sorted)\n\n\tfor _, item := range sorted {\n\t\tout += ufmt.Sprintf(\"- **User #%d - %s - signed up on %s**\\n\\n\", item.ordinal, item.address.String(), item.timestamp.Format(\"02-01-2006 15:04:05\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\tout += \"**Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"**\\n\\n\"\n\tout += page.Selector() // Repeat selector for ease of navigation\n\treturn out\n}\n\ntype sortedSignups []*Signup\n\nfunc (s sortedSignups) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s sortedSignups) Len() int {\n\treturn len(s)\n}\n\nfunc (s sortedSignups) Less(i, j int) bool {\n\treturn s[i].timestamp.Before(s[j].timestamp)\n}\n"},{"name":"userbook.gno","body":"// Package userbook demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Signup struct {\n\taddress std.Address\n\tordinal int\n\ttimestamp time.Time\n}\n\nvar signupsTree = avl.NewTree()\n\nconst signUpEvent = \"SignUp\"\n\nfunc init() {\n\tSignUp() // Sign up the deployer\n}\n\nfunc SignUp() string {\n\t// Get transaction caller\n\tcaller := std.PrevRealm().Addr()\n\n\t// Check if the user is already signed up\n\tif _, exists := signupsTree.Get(caller.String()); exists {\n\t\tpanic(caller + \" is already signed up!\")\n\t}\n\n\tnow := time.Now()\n\t// Sign up the user\n\tsignupsTree.Set(caller.String(), \u0026Signup{\n\t\tstd.PrevRealm().Addr(),\n\t\tsignupsTree.Size(),\n\t\tnow,\n\t})\n\n\tstd.Emit(signUpEvent, \"SignedUpAccount\", caller.String())\n\n\treturn ufmt.Sprintf(\"%s added to userbook! Timestamp: %s\", caller.String(), now.Format(time.RFC822Z))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"psrnC+0sk/ug9zo1hXq5rr4i/WsEP/IgeV80NUVvI34CB492+hZSostOnWIEvnUBisB81/MhP4lsZ+xm12jlAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"userbook","path":"gno.land/r/demo/userbook","files":[{"name":"render.gno","body":"// Package userbook demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst usersLink = \"/r/demo/users\"\n\nfunc Render(path string) string {\n\tp := pager.NewPager(signupsTree, 20, true)\n\tpage := p.MustGetPageByPath(path)\n\n\tout := \"# Welcome to UserBook!\\n\\n\"\n\n\tout += ufmt.Sprintf(\"## [Click here to sign up!](%s)\\n\\n\", txlink.Call(\"SignUp\"))\n\tout += \"---\\n\\n\"\n\n\tfor _, item := range page.Items {\n\t\tsignup := item.Value.(*Signup)\n\t\tuser := signup.address.String()\n\n\t\tif data := users.GetUserByAddress(signup.address); data != nil {\n\t\t\tuser = ufmt.Sprintf(\"[%s](%s:%s)\", data.Name, usersLink, data.Name)\n\t\t}\n\n\t\tout += ufmt.Sprintf(\"- **User #%d - %s - signed up on %s**\\n\\n\", signup.ordinal, user, signup.timestamp.Format(\"January 2 2006, 03:04:04 PM\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\tout += \"**Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"**\\n\\n\"\n\tout += page.Picker()\n\treturn out\n}\n"},{"name":"userbook.gno","body":"// Package userbook demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Signup struct {\n\taddress std.Address\n\tordinal int\n\ttimestamp time.Time\n}\n\nvar (\n\tsignupsTree = avl.NewTree()\n\ttracker = avl.NewTree()\n\tidCounter seqid.ID\n)\n\nconst signUpEvent = \"SignUp\"\n\nfunc init() {\n\tSignUp() // Sign up the deployer\n}\n\nfunc SignUp() string {\n\t// Get transaction caller\n\tcaller := std.PrevRealm().Addr()\n\n\t// Check if the user is already signed up\n\tif _, exists := tracker.Get(caller.String()); exists {\n\t\tpanic(caller.String() + \" is already signed up!\")\n\t}\n\n\tnow := time.Now()\n\n\t// Sign up the user\n\tsignupsTree.Set(idCounter.Next().String(), \u0026Signup{\n\t\tcaller,\n\t\tsignupsTree.Size(),\n\t\tnow,\n\t})\n\n\ttracker.Set(caller.String(), struct{}{})\n\n\tstd.Emit(signUpEvent, \"account\", caller.String())\n\n\treturn ufmt.Sprintf(\"%s added to userbook! Timestamp: %s\", caller.String(), now.Format(time.RFC822Z))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I2Jv+JQhAgGGDEWMKk+y06qvT1g7BZJjjJF+Awrt39mjYTdGfEAQunPo/jASs4LyKvHZt7eFXGq/KSK84xXGBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"userbook","path":"gno.land/r/demo/userbook","files":[{"name":"userbook.gno","body":"// This realm demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Signup struct {\n\taccount string\n\theight int64\n}\n\n// signups - keep a slice of signed up addresses efficient pagination\nvar signups []Signup\n\n// tracker - keep track of who signed up\nvar (\n\ttracker *avl.Tree\n\trouter *mux.Router\n)\n\nconst (\n\tdefaultPageSize = 20\n\tpathArgument = \"number\"\n\tsubPath = \"page/{\" + pathArgument + \"}\"\n\tsignUpEvent = \"SignUp\"\n)\n\nfunc init() {\n\t// Set up tracker tree\n\ttracker = avl.NewTree()\n\n\t// Set up route handling\n\trouter = mux.NewRouter()\n\trouter.HandleFunc(\"\", renderHelper)\n\trouter.HandleFunc(subPath, renderHelper)\n\n\t// Sign up the deployer\n\tSignUp()\n}\n\nfunc SignUp() string {\n\t// Get transaction caller\n\tcaller := std.PrevRealm().Addr().String()\n\theight := std.GetHeight()\n\n\t// Check if the user is already signed up\n\tif _, exists := tracker.Get(caller); exists {\n\t\tpanic(caller + \" is already signed up!\")\n\t}\n\n\t// Sign up the user\n\ttracker.Set(caller, struct{}{})\n\tsignup := Signup{\n\t\tcaller,\n\t\theight,\n\t}\n\n\tsignups = append(signups, signup)\n\tstd.Emit(signUpEvent, \"SignedUpAccount\", signup.account)\n\n\treturn ufmt.Sprintf(\"%s added to userbook up at block #%d!\", signup.account, signup.height)\n}\n\nfunc GetSignupsInRange(page, pageSize int) ([]Signup, int) {\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\tif pageSize \u003c 1 || pageSize \u003e 50 {\n\t\tpanic(\"page size must be from 1 to 50\")\n\t}\n\n\t// Pagination\n\t// Calculate indexes\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any users\n\tif startIndex \u003e= len(signups) {\n\t\treturn nil, -1\n\t}\n\n\t// If page contains fewer users than the page size\n\tif endIndex \u003e len(signups) {\n\t\tendIndex = len(signups)\n\t}\n\n\treturn signups[startIndex:endIndex], endIndex\n}\n\nfunc renderHelper(res *mux.ResponseWriter, req *mux.Request) {\n\ttotalSignups := len(signups)\n\tres.Write(\"# Welcome to UserBook!\\n\\n\")\n\n\t// Get URL parameter\n\tpage, err := strconv.Atoi(req.GetVar(\"number\"))\n\tif err != nil {\n\t\tpage = 1 // render first page on bad input\n\t}\n\n\t// Fetch paginated signups\n\tfetchedSignups, endIndex := GetSignupsInRange(page, defaultPageSize)\n\t// Handle empty page case\n\tif len(fetchedSignups) == 0 {\n\t\tres.Write(\"No users on this page!\\n\\n\")\n\t\tres.Write(\"---\\n\\n\")\n\t\tres.Write(\"[Back to Page #1](/r/demo/userbook:page/1)\\n\\n\")\n\t\treturn\n\t}\n\n\t// Write page title\n\tres.Write(ufmt.Sprintf(\"## UserBook - Page #%d:\\n\\n\", page))\n\n\t// Write signups\n\tpageStartIndex := defaultPageSize * (page - 1)\n\tfor i, signup := range fetchedSignups {\n\t\tout := ufmt.Sprintf(\"#### User #%d - %s - signed up at Block #%d\\n\", pageStartIndex+i, signup.account, signup.height)\n\t\tres.Write(out)\n\t}\n\n\tres.Write(\"---\\n\\n\")\n\n\t// Write UserBook info\n\tlatestSignupIndex := totalSignups - 1\n\tres.Write(ufmt.Sprintf(\"#### Total users: %d\\n\", totalSignups))\n\tres.Write(ufmt.Sprintf(\"#### Latest signup: User #%d at Block #%d\\n\", latestSignupIndex, signups[latestSignupIndex].height))\n\n\tres.Write(\"---\\n\\n\")\n\n\t// Write page number\n\tres.Write(ufmt.Sprintf(\"You're viewing page #%d\", page))\n\n\t// Write navigation buttons\n\tvar prevPage string\n\tvar nextPage string\n\t// If we are on any page that is not the first page\n\tif page \u003e 1 {\n\t\tprevPage = ufmt.Sprintf(\" - [Previous page](/r/demo/userbook:page/%d)\", page-1)\n\t}\n\n\t// If there are more pages after the current one\n\tif endIndex \u003c totalSignups {\n\t\tnextPage = ufmt.Sprintf(\" - [Next page](/r/demo/userbook:page/%d)\\n\\n\", page+1)\n\t}\n\n\tres.Write(prevPage)\n\tres.Write(nextPage)\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"},{"name":"userbook_test.gno","body":"package userbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Sign up 20 users + deployer\n\tfor i := 0; i \u003c 20; i++ {\n\t\taddrName := ufmt.Sprintf(\"test%d\", i)\n\t\tcaller := testutils.TestAddress(addrName)\n\t\tstd.TestSetOrigCaller(caller)\n\t\tSignUp()\n\t}\n\n\ttestCases := []struct {\n\t\tname string\n\t\tnextPage bool\n\t\tprevPage bool\n\t\tpath string\n\t\texpectedNumberOfUsers int\n\t}{\n\t\t{\n\t\t\tname: \"1st page render\",\n\t\t\tnextPage: true,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/1\",\n\t\t\texpectedNumberOfUsers: 20,\n\t\t},\n\t\t{\n\t\t\tname: \"2nd page render\",\n\t\t\tnextPage: false,\n\t\t\tprevPage: true,\n\t\t\tpath: \"page/2\",\n\t\t\texpectedNumberOfUsers: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"Invalid path render\",\n\t\t\tnextPage: true,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/invalidtext\",\n\t\t\texpectedNumberOfUsers: 20,\n\t\t},\n\t\t{\n\t\t\tname: \"Empty Page\",\n\t\t\tnextPage: false,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/1000\",\n\t\t\texpectedNumberOfUsers: 0,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tnumUsers := countUsers(got)\n\n\t\t\tif tc.prevPage \u0026\u0026 !strings.Contains(got, \"Previous page\") {\n\t\t\t\tt.Fatalf(\"expected to find Previous page, didn't find it\")\n\t\t\t}\n\t\t\tif tc.nextPage \u0026\u0026 !strings.Contains(got, \"Next page\") {\n\t\t\t\tt.Fatalf(\"expected to find Next page, didn't find it\")\n\t\t\t}\n\n\t\t\tif tc.expectedNumberOfUsers != numUsers {\n\t\t\t\tt.Fatalf(\"expected %d, got %d users\", tc.expectedNumberOfUsers, numUsers)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc countUsers(input string) int {\n\treturn strings.Count(input, \"#### User #\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thd2pycnZRrxawfcV9TcNyZCYQbjXC1wCpsAXsYCYkDo5JTgEBCZBCLuVelfiTGB1TsQInygL5laSSU8M2vsDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"userbook","path":"gno.land/r/demo/userbook","files":[{"name":"userbook.gno","body":"// This realm demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Signup struct {\n\taccount string\n\theight int64\n}\n\n// signups - keep a slice of signed up addresses efficient pagination\nvar signups []Signup\n\n// tracker - keep track of who signed up\nvar (\n\ttracker *avl.Tree\n\trouter *mux.Router\n)\n\nconst (\n\tdefaultPageSize = 20\n\tpathArgument = \"number\"\n\tsubPath = \"page/{\" + pathArgument + \"}\"\n\tsignUpEvent = \"SignUp\"\n)\n\nfunc init() {\n\t// Set up tracker tree\n\ttracker = avl.NewTree()\n\n\t// Set up route handling\n\trouter = mux.NewRouter()\n\trouter.HandleFunc(\"\", renderHelper)\n\trouter.HandleFunc(subPath, renderHelper)\n\n\t// Sign up the deployer\n\tSignUp()\n}\n\nfunc SignUp() string {\n\t// Get transaction caller\n\tcaller := std.PrevRealm().Addr().String()\n\theight := std.GetHeight()\n\n\t// Check if the user is already signed up\n\tif _, exists := tracker.Get(caller); exists {\n\t\tpanic(caller + \" is already signed up!\")\n\t}\n\n\t// Sign up the user\n\ttracker.Set(caller, struct{}{})\n\tsignup := Signup{\n\t\tcaller,\n\t\theight,\n\t}\n\n\tsignups = append(signups, signup)\n\tstd.Emit(signUpEvent, \"SignedUpAccount\", signup.account)\n\n\treturn ufmt.Sprintf(\"%s added to userbook up at block #%d!\", signup.account, signup.height)\n}\n\nfunc GetSignupsInRange(page, pageSize int) ([]Signup, int) {\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\tif pageSize \u003c 1 || pageSize \u003e 50 {\n\t\tpanic(\"page size must be from 1 to 50\")\n\t}\n\n\t// Pagination\n\t// Calculate indexes\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any users\n\tif startIndex \u003e= len(signups) {\n\t\treturn nil, -1\n\t}\n\n\t// If page contains fewer users than the page size\n\tif endIndex \u003e len(signups) {\n\t\tendIndex = len(signups)\n\t}\n\n\treturn signups[startIndex:endIndex], endIndex\n}\n\nfunc renderHelper(res *mux.ResponseWriter, req *mux.Request) {\n\ttotalSignups := len(signups)\n\tres.Write(\"# Welcome to UserBook!\\n\\n\")\n\n\t// Get URL parameter\n\tpage, err := strconv.Atoi(req.GetVar(\"number\"))\n\tif err != nil {\n\t\tpage = 1 // render first page on bad input\n\t}\n\n\t// Fetch paginated signups\n\tfetchedSignups, endIndex := GetSignupsInRange(page, defaultPageSize)\n\t// Handle empty page case\n\tif len(fetchedSignups) == 0 {\n\t\tres.Write(\"No users on this page!\\n\\n\")\n\t\tres.Write(\"---\\n\\n\")\n\t\tres.Write(\"[Back to Page #1](/r/demo/userbook:page/1)\\n\\n\")\n\t\treturn\n\t}\n\n\t// Write page title\n\tres.Write(ufmt.Sprintf(\"## UserBook - Page #%d:\\n\\n\", page))\n\n\t// Write signups\n\tpageStartIndex := defaultPageSize * (page - 1)\n\tfor i, signup := range fetchedSignups {\n\t\tout := ufmt.Sprintf(\"#### User #%d - %s - signed up at Block #%d\\n\", pageStartIndex+i, signup.account, signup.height)\n\t\tres.Write(out)\n\t}\n\n\tres.Write(\"---\\n\\n\")\n\n\t// Write UserBook info\n\tlatestSignupIndex := totalSignups - 1\n\tres.Write(ufmt.Sprintf(\"#### Total users: %d\\n\", totalSignups))\n\tres.Write(ufmt.Sprintf(\"#### Latest signup: User #%d at Block #%d\\n\", latestSignupIndex, signups[latestSignupIndex].height))\n\n\tres.Write(\"---\\n\\n\")\n\n\t// Write page number\n\tres.Write(ufmt.Sprintf(\"You're viewing page #%d\", page))\n\n\t// Write navigation buttons\n\tvar prevPage string\n\tvar nextPage string\n\t// If we are on any page that is not the first page\n\tif page \u003e 1 {\n\t\tprevPage = ufmt.Sprintf(\" - [Previous page](/r/demo/userbook:page/%d)\", page-1)\n\t}\n\n\t// If there are more pages after the current one\n\tif endIndex \u003c totalSignups {\n\t\tnextPage = ufmt.Sprintf(\" - [Next page](/r/demo/userbook:page/%d)\\n\\n\", page+1)\n\t}\n\n\tres.Write(prevPage)\n\tres.Write(nextPage)\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"},{"name":"userbook_test.gno","body":"package userbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Sign up 20 users + deployer\n\tfor i := 0; i \u003c 20; i++ {\n\t\taddrName := ufmt.Sprintf(\"test%d\", i)\n\t\tcaller := testutils.TestAddress(addrName)\n\t\tstd.TestSetOrigCaller(caller)\n\t\tSignUp()\n\t}\n\n\ttestCases := []struct {\n\t\tname string\n\t\tnextPage bool\n\t\tprevPage bool\n\t\tpath string\n\t\texpectedNumberOfUsers int\n\t}{\n\t\t{\n\t\t\tname: \"1st page render\",\n\t\t\tnextPage: true,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/1\",\n\t\t\texpectedNumberOfUsers: 20,\n\t\t},\n\t\t{\n\t\t\tname: \"2nd page render\",\n\t\t\tnextPage: false,\n\t\t\tprevPage: true,\n\t\t\tpath: \"page/2\",\n\t\t\texpectedNumberOfUsers: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"Invalid path render\",\n\t\t\tnextPage: true,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/invalidtext\",\n\t\t\texpectedNumberOfUsers: 20,\n\t\t},\n\t\t{\n\t\t\tname: \"Empty Page\",\n\t\t\tnextPage: false,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/1000\",\n\t\t\texpectedNumberOfUsers: 0,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tnumUsers := countUsers(got)\n\n\t\t\tif tc.prevPage \u0026\u0026 !strings.Contains(got, \"Previous page\") {\n\t\t\t\tt.Fatalf(\"expected to find Previous page, didn't find it\")\n\t\t\t}\n\t\t\tif tc.nextPage \u0026\u0026 !strings.Contains(got, \"Next page\") {\n\t\t\t\tt.Fatalf(\"expected to find Next page, didn't find it\")\n\t\t\t}\n\n\t\t\tif tc.expectedNumberOfUsers != numUsers {\n\t\t\t\tt.Fatalf(\"expected %d, got %d users\", tc.expectedNumberOfUsers, numUsers)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc countUsers(input string) int {\n\treturn strings.Count(input, \"#### User #\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thd2pycnZRrxawfcV9TcNyZCYQbjXC1wCpsAXsYCYkDo5JTgEBCZBCLuVelfiTGB1TsQInygL5laSSU8M2vsDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"userbook","path":"gno.land/r/demo/userbook","files":[{"name":"userbook.gno","body":"// This realm demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Signup struct {\n\taccount string\n\theight int64\n}\n\n// signups - keep a slice of signed up addresses efficient pagination\nvar signups []Signup\n\n// tracker - keep track of who signed up\nvar (\n\ttracker *avl.Tree\n\trouter *mux.Router\n)\n\nconst (\n\tdefaultPageSize = 20\n\tpathArgument = \"number\"\n\tsubPath = \"page/{\" + pathArgument + \"}\"\n\tsignUpEvent = \"SignUp\"\n)\n\nfunc init() {\n\t// Set up tracker tree\n\ttracker = avl.NewTree()\n\n\t// Set up route handling\n\trouter = mux.NewRouter()\n\trouter.HandleFunc(\"\", renderHelper)\n\trouter.HandleFunc(subPath, renderHelper)\n\n\t// Sign up the deployer\n\tSignUp()\n}\n\nfunc SignUp() string {\n\t// Get transaction caller\n\tcaller := std.PrevRealm().Addr().String()\n\theight := std.GetHeight()\n\n\t// Check if the user is already signed up\n\tif _, exists := tracker.Get(caller); exists {\n\t\tpanic(caller + \" is already signed up!\")\n\t}\n\n\t// Sign up the user\n\ttracker.Set(caller, struct{}{})\n\tsignup := Signup{\n\t\tcaller,\n\t\theight,\n\t}\n\n\tsignups = append(signups, signup)\n\tstd.Emit(signUpEvent, \"SignedUpAccount\", signup.account)\n\n\treturn ufmt.Sprintf(\"%s added to userbook up at block #%d!\", signup.account, signup.height)\n}\n\nfunc GetSignupsInRange(page, pageSize int) ([]Signup, int) {\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\tif pageSize \u003c 1 || pageSize \u003e 50 {\n\t\tpanic(\"page size must be from 1 to 50\")\n\t}\n\n\t// Pagination\n\t// Calculate indexes\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any users\n\tif startIndex \u003e= len(signups) {\n\t\treturn nil, -1\n\t}\n\n\t// If page contains fewer users than the page size\n\tif endIndex \u003e len(signups) {\n\t\tendIndex = len(signups)\n\t}\n\n\treturn signups[startIndex:endIndex], endIndex\n}\n\nfunc renderHelper(res *mux.ResponseWriter, req *mux.Request) {\n\ttotalSignups := len(signups)\n\tres.Write(\"# Welcome to UserBook!\\n\\n\")\n\n\t// Get URL parameter\n\tpage, err := strconv.Atoi(req.GetVar(\"number\"))\n\tif err != nil {\n\t\tpage = 1 // render first page on bad input\n\t}\n\n\t// Fetch paginated signups\n\tfetchedSignups, endIndex := GetSignupsInRange(page, defaultPageSize)\n\t// Handle empty page case\n\tif len(fetchedSignups) == 0 {\n\t\tres.Write(\"No users on this page!\\n\\n\")\n\t\tres.Write(\"---\\n\\n\")\n\t\tres.Write(\"[Back to Page #1](/r/demo/userbook:page/1)\\n\\n\")\n\t\treturn\n\t}\n\n\t// Write page title\n\tres.Write(ufmt.Sprintf(\"## UserBook - Page #%d:\\n\\n\", page))\n\n\t// Write signups\n\tpageStartIndex := defaultPageSize * (page - 1)\n\tfor i, signup := range fetchedSignups {\n\t\tout := ufmt.Sprintf(\"#### User #%d - %s - signed up at Block #%d\\n\", pageStartIndex+i, signup.account, signup.height)\n\t\tres.Write(out)\n\t}\n\n\tres.Write(\"---\\n\\n\")\n\n\t// Write UserBook info\n\tlatestSignupIndex := totalSignups - 1\n\tres.Write(ufmt.Sprintf(\"#### Total users: %d\\n\", totalSignups))\n\tres.Write(ufmt.Sprintf(\"#### Latest signup: User #%d at Block #%d\\n\", latestSignupIndex, signups[latestSignupIndex].height))\n\n\tres.Write(\"---\\n\\n\")\n\n\t// Write page number\n\tres.Write(ufmt.Sprintf(\"You're viewing page #%d\", page))\n\n\t// Write navigation buttons\n\tvar prevPage string\n\tvar nextPage string\n\t// If we are on any page that is not the first page\n\tif page \u003e 1 {\n\t\tprevPage = ufmt.Sprintf(\" - [Previous page](/r/demo/userbook:page/%d)\", page-1)\n\t}\n\n\t// If there are more pages after the current one\n\tif endIndex \u003c totalSignups {\n\t\tnextPage = ufmt.Sprintf(\" - [Next page](/r/demo/userbook:page/%d)\\n\\n\", page+1)\n\t}\n\n\tres.Write(prevPage)\n\tres.Write(nextPage)\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"},{"name":"userbook_test.gno","body":"package userbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Sign up 20 users + deployer\n\tfor i := 0; i \u003c 20; i++ {\n\t\taddrName := ufmt.Sprintf(\"test%d\", i)\n\t\tcaller := testutils.TestAddress(addrName)\n\t\tstd.TestSetOrigCaller(caller)\n\t\tSignUp()\n\t}\n\n\ttestCases := []struct {\n\t\tname string\n\t\tnextPage bool\n\t\tprevPage bool\n\t\tpath string\n\t\texpectedNumberOfUsers int\n\t}{\n\t\t{\n\t\t\tname: \"1st page render\",\n\t\t\tnextPage: true,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/1\",\n\t\t\texpectedNumberOfUsers: 20,\n\t\t},\n\t\t{\n\t\t\tname: \"2nd page render\",\n\t\t\tnextPage: false,\n\t\t\tprevPage: true,\n\t\t\tpath: \"page/2\",\n\t\t\texpectedNumberOfUsers: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"Invalid path render\",\n\t\t\tnextPage: true,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/invalidtext\",\n\t\t\texpectedNumberOfUsers: 20,\n\t\t},\n\t\t{\n\t\t\tname: \"Empty Page\",\n\t\t\tnextPage: false,\n\t\t\tprevPage: false,\n\t\t\tpath: \"page/1000\",\n\t\t\texpectedNumberOfUsers: 0,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tnumUsers := countUsers(got)\n\n\t\t\tif tc.prevPage \u0026\u0026 !strings.Contains(got, \"Previous page\") {\n\t\t\t\tt.Fatalf(\"expected to find Previous page, didn't find it\")\n\t\t\t}\n\t\t\tif tc.nextPage \u0026\u0026 !strings.Contains(got, \"Next page\") {\n\t\t\t\tt.Fatalf(\"expected to find Next page, didn't find it\")\n\t\t\t}\n\n\t\t\tif tc.expectedNumberOfUsers != numUsers {\n\t\t\t\tt.Fatalf(\"expected %d, got %d users\", tc.expectedNumberOfUsers, numUsers)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc countUsers(input string) int {\n\treturn strings.Count(input, \"#### User #\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thd2pycnZRrxawfcV9TcNyZCYQbjXC1wCpsAXsYCYkDo5JTgEBCZBCLuVelfiTGB1TsQInygL5laSSU8M2vsDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/p/demo/users","files":[{"name":"types.gno","body":"package users\n\ntype AddressOrName string\n\nfunc (aon AddressOrName) IsName() bool {\n\treturn aon != \"\" \u0026\u0026 aon[0] == '@'\n}\n\nfunc (aon AddressOrName) GetName() (string, bool) {\n\tif len(aon) \u003e= 2 \u0026\u0026 aon[0] == '@' {\n\t\treturn string(aon[1:]), true\n\t}\n\treturn \"\", false\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Types\n\ntype User struct {\n\tAddress std.Address\n\tName string\n\tProfile string\n\tNumber int\n\tInvites int\n\tInviter std.Address\n}\n\nfunc (u *User) Render() string {\n\tstr := \"## user \" + u.Name + \"\\n\" +\n\t\t\"\\n\" +\n\t\t\" * address = \" + string(u.Address) + \"\\n\" +\n\t\t\" * \" + strconv.Itoa(u.Invites) + \" invites\\n\"\n\tif u.Inviter != \"\" {\n\t\tstr = str + \" * invited by \" + string(u.Inviter) + \"\\n\"\n\t}\n\tstr = str + \"\\n\" +\n\t\tu.Profile + \"\\n\"\n\treturn str\n}\n"},{"name":"users_test.gno","body":"package users\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AyYosKFifW7UbOHOSUJwUZLMeLy1uK+6fk5klVSJ7ZWYHRdtaH83BbTaSQVl7G8r6HEY3EwwZL8ST0F+STOHCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/p/demo/users","files":[{"name":"types.gno","body":"package users\n\ntype AddressOrName string\n\nfunc (aon AddressOrName) IsName() bool {\n\treturn aon != \"\" \u0026\u0026 aon[0] == '@'\n}\n\nfunc (aon AddressOrName) GetName() (string, bool) {\n\tif len(aon) \u003e= 2 \u0026\u0026 aon[0] == '@' {\n\t\treturn string(aon[1:]), true\n\t}\n\treturn \"\", false\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Types\n\ntype User struct {\n\tAddress std.Address\n\tName string\n\tProfile string\n\tNumber int\n\tInvites int\n\tInviter std.Address\n}\n\nfunc (u *User) Render() string {\n\tstr := \"## user \" + u.Name + \"\\n\" +\n\t\t\"\\n\" +\n\t\t\" * address = \" + string(u.Address) + \"\\n\" +\n\t\t\" * \" + strconv.Itoa(u.Invites) + \" invites\\n\"\n\tif u.Inviter != \"\" {\n\t\tstr = str + \" * invited by \" + string(u.Inviter) + \"\\n\"\n\t}\n\tstr = str + \"\\n\" +\n\t\tu.Profile + \"\\n\"\n\treturn str\n}\n"},{"name":"users_test.gno","body":"package users\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AyYosKFifW7UbOHOSUJwUZLMeLy1uK+6fk5klVSJ7ZWYHRdtaH83BbTaSQVl7G8r6HEY3EwwZL8ST0F+STOHCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/p/demo/users","files":[{"name":"types.gno","body":"package users\n\ntype AddressOrName string\n\nfunc (aon AddressOrName) IsName() bool {\n\treturn aon != \"\" \u0026\u0026 aon[0] == '@'\n}\n\nfunc (aon AddressOrName) GetName() (string, bool) {\n\tif len(aon) \u003e= 2 \u0026\u0026 aon[0] == '@' {\n\t\treturn string(aon[1:]), true\n\t}\n\treturn \"\", false\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Types\n\ntype User struct {\n\tAddress std.Address\n\tName string\n\tProfile string\n\tNumber int\n\tInvites int\n\tInviter std.Address\n}\n\nfunc (u *User) Render() string {\n\tstr := \"## user \" + u.Name + \"\\n\" +\n\t\t\"\\n\" +\n\t\t\" * address = \" + string(u.Address) + \"\\n\" +\n\t\t\" * \" + strconv.Itoa(u.Invites) + \" invites\\n\"\n\tif u.Inviter != \"\" {\n\t\tstr = str + \" * invited by \" + string(u.Inviter) + \"\\n\"\n\t}\n\tstr = str + \"\\n\" +\n\t\tu.Profile + \"\\n\"\n\treturn str\n}\n"},{"name":"users_test.gno","body":"package users\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AyYosKFifW7UbOHOSUJwUZLMeLy1uK+6fk5klVSJ7ZWYHRdtaH83BbTaSQVl7G8r6HEY3EwwZL8ST0F+STOHCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/demo/users","files":[{"name":"preregister.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/users\"\n)\n\n// pre-restricted names\nvar preRestrictedNames = []string{\n\t\"bitcoin\", \"cosmos\", \"newtendermint\", \"ethereum\",\n}\n\n// pre-registered users\nvar preRegisteredUsers = []struct {\n\tName string\n\tAddress std.Address\n}{\n\t// system name\n\t{\"archives\", \"g1xlnyjrnf03ju82v0f98ruhpgnquk28knmjfe5k\"}, // -\u003e @r_archives\n\t{\"demo\", \"g13ek2zz9qurzynzvssyc4sthwppnruhnp0gdz8n\"}, // -\u003e @r_demo\n\t{\"gno\", \"g19602kd9tfxrfd60sgreadt9zvdyyuudcyxsz8a\"}, // -\u003e @r_gno\n\t{\"gnoland\", \"g1g3lsfxhvaqgdv4ccemwpnms4fv6t3aq3p5z6u7\"}, // -\u003e @r_gnoland\n\t{\"gnolang\", \"g1yjlnm3z2630gg5mryjd79907e0zx658wxs9hnd\"}, // -\u003e @r_gnolang\n\t{\"gov\", \"g1g73v2anukg4ej7axwqpthsatzrxjsh0wk797da\"}, // -\u003e @r_gov\n\t{\"nt\", \"g15ge0ae9077eh40erwrn2eq0xw6wupwqthpv34l\"}, // -\u003e @r_nt\n\t{\"sys\", \"g1r929wt2qplfawe4lvqv9zuwfdcz4vxdun7qh8l\"}, // -\u003e @r_sys\n\t{\"x\", \"g164sdpew3c2t3rvxj3kmfv7c7ujlvcw2punzzuz\"}, // -\u003e @r_x\n\n\t// test1 user\n\t{\"test1\", \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"}, // -\u003e @test1\n}\n\nfunc init() {\n\t// add pre-registered users\n\tfor _, res := range preRegisteredUsers {\n\t\t// assert not already registered.\n\t\t_, ok := name2User.Get(res.Name)\n\t\tif ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\t_, ok = addr2User.Get(res.Address.String())\n\t\tif ok {\n\t\t\tpanic(\"address already registered\")\n\t\t}\n\n\t\tcounter++\n\t\tuser := \u0026users.User{\n\t\t\tAddress: res.Address,\n\t\t\tName: res.Name,\n\t\t\tProfile: \"\",\n\t\t\tNumber: counter,\n\t\t\tInvites: int(0),\n\t\t\tInviter: admin,\n\t\t}\n\t\tname2User.Set(res.Name, user)\n\t\taddr2User.Set(res.Address.String(), user)\n\t}\n\n\t// add pre-restricted names\n\tfor _, name := range preRestrictedNames {\n\t\tif _, ok := name2User.Get(name); ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\trestricted.Set(name, true)\n\t}\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"regexp\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/users\"\n)\n\n//----------------------------------------\n// State\n\nvar (\n\tadmin std.Address = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\n\trestricted avl.Tree // Name -\u003e true - restricted name\n\tname2User avl.Tree // Name -\u003e *users.User\n\taddr2User avl.Tree // std.Address -\u003e *users.User\n\tinvites avl.Tree // string(inviter+\":\"+invited) -\u003e true\n\tcounter int // user id counter\n\tminFee int64 = 20 * 1_000_000 // minimum gnot must be paid to register.\n\tmaxFeeMult int64 = 10 // maximum multiples of minFee accepted.\n)\n\n//----------------------------------------\n// Top-level functions\n\nfunc Register(inviter std.Address, name string, profile string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert invited or paid.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\n\tsentCoins := std.GetOrigSend()\n\tminCoin := std.NewCoin(\"ugnot\", minFee)\n\n\tif inviter == \"\" {\n\t\t// banker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tif len(sentCoins) == 1 \u0026\u0026 sentCoins[0].IsGTE(minCoin) {\n\t\t\tif sentCoins[0].Amount \u003e minFee*maxFeeMult {\n\t\t\t\tpanic(\"payment must not be greater than \" + strconv.Itoa(int(minFee*maxFeeMult)))\n\t\t\t} else {\n\t\t\t\t// ok\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"payment must not be less than \" + strconv.Itoa(int(minFee)))\n\t\t}\n\t} else {\n\t\tinvitekey := inviter.String() + \":\" + caller.String()\n\t\t_, ok := invites.Get(invitekey)\n\t\tif !ok {\n\t\t\tpanic(\"invalid invitation\")\n\t\t}\n\t\tinvites.Remove(invitekey)\n\t}\n\n\t// assert not already registered.\n\t_, ok := name2User.Get(name)\n\tif ok {\n\t\tpanic(\"name already registered: \" + name)\n\t}\n\t_, ok = addr2User.Get(caller.String())\n\tif ok {\n\t\tpanic(\"address already registered: \" + caller.String())\n\t}\n\n\tisInviterAdmin := inviter == admin\n\n\t// check for restricted name\n\tif _, isRestricted := restricted.Get(name); isRestricted {\n\t\t// only address invite by the admin can register restricted name\n\t\tif !isInviterAdmin {\n\t\t\tpanic(\"restricted name: \" + name)\n\t\t}\n\n\t\trestricted.Remove(name)\n\t}\n\n\t// assert name is valid.\n\t// admin inviter can bypass name restriction\n\tif !isInviterAdmin \u0026\u0026 !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name + \" (must be at least 6 characters, lowercase alphanumeric with underscore)\")\n\t}\n\n\t// remainder of fees go toward invites.\n\tinvites := int(0)\n\tif len(sentCoins) == 1 {\n\t\tif sentCoins[0].Denom == \"ugnot\" \u0026\u0026 sentCoins[0].Amount \u003e= minFee {\n\t\t\tinvites = int(sentCoins[0].Amount / minFee)\n\t\t\tif inviter == \"\" \u0026\u0026 invites \u003e 0 {\n\t\t\t\tinvites -= 1\n\t\t\t}\n\t\t}\n\t}\n\t// register.\n\tcounter++\n\tuser := \u0026users.User{\n\t\tAddress: caller,\n\t\tName: name,\n\t\tProfile: profile,\n\t\tNumber: counter,\n\t\tInvites: invites,\n\t\tInviter: inviter,\n\t}\n\tname2User.Set(name, user)\n\taddr2User.Set(caller.String(), user)\n}\n\nfunc Invite(invitee string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller/inviter.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tlines := strings.Split(invitee, \"\\n\")\n\tif caller == admin {\n\t\t// nothing to do, all good\n\t} else {\n\t\t// ensure has invites.\n\t\tuserI, ok := addr2User.Get(caller.String())\n\t\tif !ok {\n\t\t\tpanic(\"user unknown\")\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tif user.Invites \u003c= 0 {\n\t\t\tpanic(\"user has no invite tokens\")\n\t\t}\n\t\tuser.Invites -= len(lines)\n\t\tif user.Invites \u003c 0 {\n\t\t\tpanic(\"user has insufficient invite tokens\")\n\t\t}\n\t}\n\t// for each line...\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// record invite.\n\t\tinvitekey := string(caller) + \":\" + string(line)\n\t\tinvites.Set(invitekey, true)\n\t}\n}\n\nfunc GrantInvites(invites string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// for each line...\n\tlines := strings.Split(invites, \"\\n\")\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// parse name and invites.\n\t\tvar name string\n\t\tvar invites int\n\t\tparts := strings.Split(line, \":\")\n\t\tif len(parts) == 1 { // short for :1.\n\t\t\tname = parts[0]\n\t\t\tinvites = 1\n\t\t} else if len(parts) == 2 {\n\t\t\tname = parts[0]\n\t\t\tinvites_, err := strconv.Atoi(parts[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tinvites = int(invites_)\n\t\t} else {\n\t\t\tpanic(\"should not happen\")\n\t\t}\n\t\t// give invites.\n\t\tuserI, ok := name2User.Get(name)\n\t\tif !ok {\n\t\t\t// maybe address.\n\t\t\tuserI, ok = addr2User.Get(name)\n\t\t\tif !ok {\n\t\t\t\tpanic(\"invalid user \" + name)\n\t\t\t}\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tuser.Invites += invites\n\t}\n}\n\n// Any leftover fees go toward invitations.\nfunc SetMinFee(newMinFee int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tminFee = newMinFee\n}\n\n// This helps prevent fat finger accidents.\nfunc SetMaxFeeMultiple(newMaxFeeMult int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tmaxFeeMult = newMaxFeeMult\n}\n\n//----------------------------------------\n// Exposed public functions\n\nfunc GetUserByName(name string) *users.User {\n\tuserI, ok := name2User.Get(name)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\nfunc GetUserByAddress(addr std.Address) *users.User {\n\tuserI, ok := addr2User.Get(addr.String())\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\n// unlike GetUserByName, input must be \"@\" prefixed for names.\nfunc GetUserByAddressOrName(input users.AddressOrName) *users.User {\n\tname, isName := input.GetName()\n\tif isName {\n\t\treturn GetUserByName(name)\n\t}\n\treturn GetUserByAddress(std.Address(input))\n}\n\n// Get a list of user names starting from the given prefix. Limit the\n// number of results to maxResults. (This can be used for a name search tool.)\nfunc ListUsersByPrefix(prefix string, maxResults int) []string {\n\treturn avlhelpers.ListByteStringKeysByPrefix(name2User, prefix, maxResults)\n}\n\nfunc Resolve(input users.AddressOrName) std.Address {\n\tname, isName := input.GetName()\n\tif !isName {\n\t\treturn std.Address(input) // TODO check validity\n\t}\n\n\tuser := GetUserByName(name)\n\treturn user.Address\n}\n\n// Add restricted name to the list\nfunc AdminAddRestrictedName(name string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller\n\tcaller := std.GetOrigCaller()\n\t// assert admin\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tif user := GetUserByName(name); user != nil {\n\t\tpanic(\"already registered name\")\n\t}\n\n\t// register restricted name\n\n\trestricted.Set(name, true)\n}\n\n//----------------------------------------\n// Constants\n\n// NOTE: name length must be clearly distinguishable from a bech32 address.\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{5,16}$`)\n\n//----------------------------------------\n// Render main page\n\nfunc Render(fullPath string) string {\n\tpath, _ := splitPathAndQuery(fullPath)\n\tif path == \"\" {\n\t\treturn renderHome(fullPath)\n\t} else if len(path) \u003e= 38 { // 39? 40?\n\t\tif path[:2] != \"g1\" {\n\t\t\treturn \"invalid address \" + path\n\t\t}\n\t\tuser := GetUserByAddress(std.Address(path))\n\t\tif user == nil {\n\t\t\t// TODO: display basic information about account.\n\t\t\treturn \"unknown address \" + path\n\t\t}\n\t\treturn user.Render()\n\t} else {\n\t\tuser := GetUserByName(path)\n\t\tif user == nil {\n\t\t\treturn \"unknown username \" + path\n\t\t}\n\t\treturn user.Render()\n\t}\n}\n\nfunc renderHome(path string) string {\n\tdoc := \"\"\n\n\tpage := pager.NewPager(\u0026name2User, 50).MustGetPageByPath(path)\n\n\tfor _, item := range page.Items {\n\t\tuser := item.Value.(*users.User)\n\t\tdoc += \" * [\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\\n\"\n\t}\n\tdoc += \"\\n\"\n\tdoc += page.Selector()\n\treturn doc\n}\n\nfunc splitPathAndQuery(fullPath string) (string, string) {\n\tparts := strings.SplitN(fullPath, \"?\", 2)\n\tpath := parts[0]\n\tqueryString := \"\"\n\tif len(parts) \u003e 1 {\n\t\tqueryString = \"?\" + parts[1]\n\t}\n\treturn path, queryString\n}\n"},{"name":"users_test.gno","body":"package users\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPreRegisteredTest1(t *testing.T) {\n\tnames := ListUsersByPrefix(\"test1\", 1)\n\tuassert.Equal(t, len(names), 1)\n\tuassert.Equal(t, names[0], \"test1\")\n}\n"},{"name":"z_0_b_filetest.gno","body":"package main\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tstd.TestSetOrigSend(std.Coins{std.NewCoin(\"dontcare\", 1)}, nil)\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// incompatible coin denominations: dontcare, ugnot\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/users_test\npackage users_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc init() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n}\n\nfunc main() {\n\t// register as test2\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_11_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\n\t// test restricted name\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(\"\", \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// restricted name: superrestricted\n"},{"name":"z_11b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\t// add restricted name\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\t// grant invite to caller\n\tusers.Invite(caller.String())\n\t// set back caller\n\tstd.TestSetOrigCaller(caller)\n\t// register restricted name with admin invite\n\tusers.Register(admin, \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_12_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"alicia\", \"my profile\")\n\n\t{\n\t\t// Normal usage\n\t\tnames := users.ListUsersByPrefix(\"a\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// Empty prefix: match all\n\t\tnames := users.ListUsersByPrefix(\"\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// The prefix is before \"alicia\"\n\t\tnames := users.ListUsersByPrefix(\"alich\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t{\n\t\t// The prefix is after the last name\n\t\tnames := users.ListUsersByPrefix(\"y\", 10)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t// More tests are in p/demo/avlhelpers\n}\n\n// Output:\n// # names: 1\n// name: alicia\n// # names: 1\n// name: alicia\n// # names: 0\n// # names: 0\n"},{"name":"z_1_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_2_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_3_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_4_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.Invite(test1.String())\n\t// switch to test2 (not test1)\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid invitation\n"},{"name":"z_5_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(users.Render(\"\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"?page=2\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"gnouser\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"satoshi\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"badname\"))\n}\n\n// Output:\n// * [archives](/r/demo/users:archives)\n// * [demo](/r/demo/users:demo)\n// * [gno](/r/demo/users:gno)\n// * [gnoland](/r/demo/users:gnoland)\n// * [gnolang](/r/demo/users:gnolang)\n// * [gnouser](/r/demo/users:gnouser)\n// * [gov](/r/demo/users:gov)\n// * [nt](/r/demo/users:nt)\n// * [satoshi](/r/demo/users:satoshi)\n// * [sys](/r/demo/users:sys)\n// * [test1](/r/demo/users:test1)\n// * [x](/r/demo/users:x)\n//\n//\n// ========================================\n//\n//\n// ========================================\n// ## user gnouser\n//\n// * address = g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// * 9 invites\n//\n// my profile\n//\n// ========================================\n// ## user satoshi\n//\n// * address = g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7\n// * 0 invites\n// * invited by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// my other profile\n//\n// ========================================\n// unknown username badname\n"},{"name":"z_6_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller()\n\t// as admin, grant invites to unregistered user.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n"},{"name":"z_7_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_7b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_8_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and nonexistent user.\n\tstd.TestSetOrigCaller(admin)\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test2.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1w3jhxapjta047h6lta047h6lta047h6laqcyu4\n"},{"name":"z_9_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n\t// register as test2\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zOq05DPkt5It0ZO64Lic+GVmqkJAIiP48ZDa06O3wSJhdHXErTI0sRjjf1LwBZIl7nApIvz1Yp7Lc+Z56hb3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/demo/users","files":[{"name":"preregister.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/users\"\n)\n\n// pre-restricted names\nvar preRestrictedNames = []string{\n\t\"bitcoin\", \"cosmos\", \"newtendermint\", \"ethereum\",\n}\n\n// pre-registered users\nvar preRegisteredUsers = []struct {\n\tName string\n\tAddress std.Address\n}{\n\t// system name\n\t{\"archives\", \"g1xlnyjrnf03ju82v0f98ruhpgnquk28knmjfe5k\"}, // -\u003e @r_archives\n\t{\"demo\", \"g13ek2zz9qurzynzvssyc4sthwppnruhnp0gdz8n\"}, // -\u003e @r_demo\n\t{\"gno\", \"g19602kd9tfxrfd60sgreadt9zvdyyuudcyxsz8a\"}, // -\u003e @r_gno\n\t{\"gnoland\", \"g1g3lsfxhvaqgdv4ccemwpnms4fv6t3aq3p5z6u7\"}, // -\u003e @r_gnoland\n\t{\"gnolang\", \"g1yjlnm3z2630gg5mryjd79907e0zx658wxs9hnd\"}, // -\u003e @r_gnolang\n\t{\"gov\", \"g1g73v2anukg4ej7axwqpthsatzrxjsh0wk797da\"}, // -\u003e @r_gov\n\t{\"nt\", \"g15ge0ae9077eh40erwrn2eq0xw6wupwqthpv34l\"}, // -\u003e @r_nt\n\t{\"sys\", \"g1r929wt2qplfawe4lvqv9zuwfdcz4vxdun7qh8l\"}, // -\u003e @r_sys\n\t{\"x\", \"g164sdpew3c2t3rvxj3kmfv7c7ujlvcw2punzzuz\"}, // -\u003e @r_x\n\n\t// test1 user\n\t{\"test1\", \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"}, // -\u003e @test1\n}\n\nfunc init() {\n\t// add pre-registered users\n\tfor _, res := range preRegisteredUsers {\n\t\t// assert not already registered.\n\t\t_, ok := name2User.Get(res.Name)\n\t\tif ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\t_, ok = addr2User.Get(res.Address.String())\n\t\tif ok {\n\t\t\tpanic(\"address already registered\")\n\t\t}\n\n\t\tcounter++\n\t\tuser := \u0026users.User{\n\t\t\tAddress: res.Address,\n\t\t\tName: res.Name,\n\t\t\tProfile: \"\",\n\t\t\tNumber: counter,\n\t\t\tInvites: int(0),\n\t\t\tInviter: admin,\n\t\t}\n\t\tname2User.Set(res.Name, user)\n\t\taddr2User.Set(res.Address.String(), user)\n\t}\n\n\t// add pre-restricted names\n\tfor _, name := range preRestrictedNames {\n\t\tif _, ok := name2User.Get(name); ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\trestricted.Set(name, true)\n\t}\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"regexp\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/users\"\n)\n\n//----------------------------------------\n// State\n\nvar (\n\tadmin std.Address = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\n\trestricted avl.Tree // Name -\u003e true - restricted name\n\tname2User avl.Tree // Name -\u003e *users.User\n\taddr2User avl.Tree // std.Address -\u003e *users.User\n\tinvites avl.Tree // string(inviter+\":\"+invited) -\u003e true\n\tcounter int // user id counter\n\tminFee int64 = 20 * 1_000_000 // minimum gnot must be paid to register.\n\tmaxFeeMult int64 = 10 // maximum multiples of minFee accepted.\n)\n\n//----------------------------------------\n// Top-level functions\n\nfunc Register(inviter std.Address, name string, profile string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert invited or paid.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\n\tsentCoins := std.GetOrigSend()\n\tminCoin := std.NewCoin(\"ugnot\", minFee)\n\n\tif inviter == \"\" {\n\t\t// banker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tif len(sentCoins) == 1 \u0026\u0026 sentCoins[0].IsGTE(minCoin) {\n\t\t\tif sentCoins[0].Amount \u003e minFee*maxFeeMult {\n\t\t\t\tpanic(\"payment must not be greater than \" + strconv.Itoa(int(minFee*maxFeeMult)))\n\t\t\t} else {\n\t\t\t\t// ok\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"payment must not be less than \" + strconv.Itoa(int(minFee)))\n\t\t}\n\t} else {\n\t\tinvitekey := inviter.String() + \":\" + caller.String()\n\t\t_, ok := invites.Get(invitekey)\n\t\tif !ok {\n\t\t\tpanic(\"invalid invitation\")\n\t\t}\n\t\tinvites.Remove(invitekey)\n\t}\n\n\t// assert not already registered.\n\t_, ok := name2User.Get(name)\n\tif ok {\n\t\tpanic(\"name already registered: \" + name)\n\t}\n\t_, ok = addr2User.Get(caller.String())\n\tif ok {\n\t\tpanic(\"address already registered: \" + caller.String())\n\t}\n\n\tisInviterAdmin := inviter == admin\n\n\t// check for restricted name\n\tif _, isRestricted := restricted.Get(name); isRestricted {\n\t\t// only address invite by the admin can register restricted name\n\t\tif !isInviterAdmin {\n\t\t\tpanic(\"restricted name: \" + name)\n\t\t}\n\n\t\trestricted.Remove(name)\n\t}\n\n\t// assert name is valid.\n\t// admin inviter can bypass name restriction\n\tif !isInviterAdmin \u0026\u0026 !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name + \" (must be at least 6 characters, lowercase alphanumeric with underscore)\")\n\t}\n\n\t// remainder of fees go toward invites.\n\tinvites := int(0)\n\tif len(sentCoins) == 1 {\n\t\tif sentCoins[0].Denom == \"ugnot\" \u0026\u0026 sentCoins[0].Amount \u003e= minFee {\n\t\t\tinvites = int(sentCoins[0].Amount / minFee)\n\t\t\tif inviter == \"\" \u0026\u0026 invites \u003e 0 {\n\t\t\t\tinvites -= 1\n\t\t\t}\n\t\t}\n\t}\n\t// register.\n\tcounter++\n\tuser := \u0026users.User{\n\t\tAddress: caller,\n\t\tName: name,\n\t\tProfile: profile,\n\t\tNumber: counter,\n\t\tInvites: invites,\n\t\tInviter: inviter,\n\t}\n\tname2User.Set(name, user)\n\taddr2User.Set(caller.String(), user)\n}\n\nfunc Invite(invitee string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller/inviter.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tlines := strings.Split(invitee, \"\\n\")\n\tif caller == admin {\n\t\t// nothing to do, all good\n\t} else {\n\t\t// ensure has invites.\n\t\tuserI, ok := addr2User.Get(caller.String())\n\t\tif !ok {\n\t\t\tpanic(\"user unknown\")\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tif user.Invites \u003c= 0 {\n\t\t\tpanic(\"user has no invite tokens\")\n\t\t}\n\t\tuser.Invites -= len(lines)\n\t\tif user.Invites \u003c 0 {\n\t\t\tpanic(\"user has insufficient invite tokens\")\n\t\t}\n\t}\n\t// for each line...\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// record invite.\n\t\tinvitekey := string(caller) + \":\" + string(line)\n\t\tinvites.Set(invitekey, true)\n\t}\n}\n\nfunc GrantInvites(invites string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// for each line...\n\tlines := strings.Split(invites, \"\\n\")\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// parse name and invites.\n\t\tvar name string\n\t\tvar invites int\n\t\tparts := strings.Split(line, \":\")\n\t\tif len(parts) == 1 { // short for :1.\n\t\t\tname = parts[0]\n\t\t\tinvites = 1\n\t\t} else if len(parts) == 2 {\n\t\t\tname = parts[0]\n\t\t\tinvites_, err := strconv.Atoi(parts[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tinvites = int(invites_)\n\t\t} else {\n\t\t\tpanic(\"should not happen\")\n\t\t}\n\t\t// give invites.\n\t\tuserI, ok := name2User.Get(name)\n\t\tif !ok {\n\t\t\t// maybe address.\n\t\t\tuserI, ok = addr2User.Get(name)\n\t\t\tif !ok {\n\t\t\t\tpanic(\"invalid user \" + name)\n\t\t\t}\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tuser.Invites += invites\n\t}\n}\n\n// Any leftover fees go toward invitations.\nfunc SetMinFee(newMinFee int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tminFee = newMinFee\n}\n\n// This helps prevent fat finger accidents.\nfunc SetMaxFeeMultiple(newMaxFeeMult int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tmaxFeeMult = newMaxFeeMult\n}\n\n//----------------------------------------\n// Exposed public functions\n\nfunc GetUserByName(name string) *users.User {\n\tuserI, ok := name2User.Get(name)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\nfunc GetUserByAddress(addr std.Address) *users.User {\n\tuserI, ok := addr2User.Get(addr.String())\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\n// unlike GetUserByName, input must be \"@\" prefixed for names.\nfunc GetUserByAddressOrName(input users.AddressOrName) *users.User {\n\tname, isName := input.GetName()\n\tif isName {\n\t\treturn GetUserByName(name)\n\t}\n\treturn GetUserByAddress(std.Address(input))\n}\n\n// Get a list of user names starting from the given prefix. Limit the\n// number of results to maxResults. (This can be used for a name search tool.)\nfunc ListUsersByPrefix(prefix string, maxResults int) []string {\n\treturn avlhelpers.ListByteStringKeysByPrefix(name2User, prefix, maxResults)\n}\n\nfunc Resolve(input users.AddressOrName) std.Address {\n\tname, isName := input.GetName()\n\tif !isName {\n\t\treturn std.Address(input) // TODO check validity\n\t}\n\n\tuser := GetUserByName(name)\n\treturn user.Address\n}\n\n// Add restricted name to the list\nfunc AdminAddRestrictedName(name string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller\n\tcaller := std.GetOrigCaller()\n\t// assert admin\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tif user := GetUserByName(name); user != nil {\n\t\tpanic(\"already registered name\")\n\t}\n\n\t// register restricted name\n\n\trestricted.Set(name, true)\n}\n\n//----------------------------------------\n// Constants\n\n// NOTE: name length must be clearly distinguishable from a bech32 address.\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{5,16}$`)\n\n//----------------------------------------\n// Render main page\n\nfunc Render(fullPath string) string {\n\tpath, _ := splitPathAndQuery(fullPath)\n\tif path == \"\" {\n\t\treturn renderHome(fullPath)\n\t} else if len(path) \u003e= 38 { // 39? 40?\n\t\tif path[:2] != \"g1\" {\n\t\t\treturn \"invalid address \" + path\n\t\t}\n\t\tuser := GetUserByAddress(std.Address(path))\n\t\tif user == nil {\n\t\t\t// TODO: display basic information about account.\n\t\t\treturn \"unknown address \" + path\n\t\t}\n\t\treturn user.Render()\n\t} else {\n\t\tuser := GetUserByName(path)\n\t\tif user == nil {\n\t\t\treturn \"unknown username \" + path\n\t\t}\n\t\treturn user.Render()\n\t}\n}\n\nfunc renderHome(path string) string {\n\tdoc := \"\"\n\n\tpage := pager.NewPager(\u0026name2User, 50).MustGetPageByPath(path)\n\n\tfor _, item := range page.Items {\n\t\tuser := item.Value.(*users.User)\n\t\tdoc += \" * [\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\\n\"\n\t}\n\tdoc += \"\\n\"\n\tdoc += page.Selector()\n\treturn doc\n}\n\nfunc splitPathAndQuery(fullPath string) (string, string) {\n\tparts := strings.SplitN(fullPath, \"?\", 2)\n\tpath := parts[0]\n\tqueryString := \"\"\n\tif len(parts) \u003e 1 {\n\t\tqueryString = \"?\" + parts[1]\n\t}\n\treturn path, queryString\n}\n"},{"name":"users_test.gno","body":"package users\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPreRegisteredTest1(t *testing.T) {\n\tnames := ListUsersByPrefix(\"test1\", 1)\n\tuassert.Equal(t, len(names), 1)\n\tuassert.Equal(t, names[0], \"test1\")\n}\n"},{"name":"z_0_b_filetest.gno","body":"package main\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tstd.TestSetOrigSend(std.Coins{std.NewCoin(\"dontcare\", 1)}, nil)\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// incompatible coin denominations: dontcare, ugnot\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/users_test\npackage users_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc init() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n}\n\nfunc main() {\n\t// register as test2\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_11_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\n\t// test restricted name\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(\"\", \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// restricted name: superrestricted\n"},{"name":"z_11b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\t// add restricted name\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\t// grant invite to caller\n\tusers.Invite(caller.String())\n\t// set back caller\n\tstd.TestSetOrigCaller(caller)\n\t// register restricted name with admin invite\n\tusers.Register(admin, \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_12_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"alicia\", \"my profile\")\n\n\t{\n\t\t// Normal usage\n\t\tnames := users.ListUsersByPrefix(\"a\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// Empty prefix: match all\n\t\tnames := users.ListUsersByPrefix(\"\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// The prefix is before \"alicia\"\n\t\tnames := users.ListUsersByPrefix(\"alich\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t{\n\t\t// The prefix is after the last name\n\t\tnames := users.ListUsersByPrefix(\"y\", 10)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t// More tests are in p/demo/avlhelpers\n}\n\n// Output:\n// # names: 1\n// name: alicia\n// # names: 1\n// name: alicia\n// # names: 0\n// # names: 0\n"},{"name":"z_1_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_2_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_3_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_4_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.Invite(test1.String())\n\t// switch to test2 (not test1)\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid invitation\n"},{"name":"z_5_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(users.Render(\"\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"?page=2\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"gnouser\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"satoshi\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"badname\"))\n}\n\n// Output:\n// * [archives](/r/demo/users:archives)\n// * [demo](/r/demo/users:demo)\n// * [gno](/r/demo/users:gno)\n// * [gnoland](/r/demo/users:gnoland)\n// * [gnolang](/r/demo/users:gnolang)\n// * [gnouser](/r/demo/users:gnouser)\n// * [gov](/r/demo/users:gov)\n// * [nt](/r/demo/users:nt)\n// * [satoshi](/r/demo/users:satoshi)\n// * [sys](/r/demo/users:sys)\n// * [test1](/r/demo/users:test1)\n// * [x](/r/demo/users:x)\n//\n//\n// ========================================\n//\n//\n// ========================================\n// ## user gnouser\n//\n// * address = g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// * 9 invites\n//\n// my profile\n//\n// ========================================\n// ## user satoshi\n//\n// * address = g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7\n// * 0 invites\n// * invited by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// my other profile\n//\n// ========================================\n// unknown username badname\n"},{"name":"z_6_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller()\n\t// as admin, grant invites to unregistered user.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n"},{"name":"z_7_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_7b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_8_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and nonexistent user.\n\tstd.TestSetOrigCaller(admin)\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test2.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1w3jhxapjta047h6lta047h6lta047h6laqcyu4\n"},{"name":"z_9_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n\t// register as test2\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zOq05DPkt5It0ZO64Lic+GVmqkJAIiP48ZDa06O3wSJhdHXErTI0sRjjf1LwBZIl7nApIvz1Yp7Lc+Z56hb3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/demo/users","files":[{"name":"preregister.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/users\"\n)\n\n// pre-restricted names\nvar preRestrictedNames = []string{\n\t\"bitcoin\", \"cosmos\", \"newtendermint\", \"ethereum\",\n}\n\n// pre-registered users\nvar preRegisteredUsers = []struct {\n\tName string\n\tAddress std.Address\n}{\n\t// system name\n\t{\"archives\", \"g1xlnyjrnf03ju82v0f98ruhpgnquk28knmjfe5k\"}, // -\u003e @r_archives\n\t{\"demo\", \"g13ek2zz9qurzynzvssyc4sthwppnruhnp0gdz8n\"}, // -\u003e @r_demo\n\t{\"gno\", \"g19602kd9tfxrfd60sgreadt9zvdyyuudcyxsz8a\"}, // -\u003e @r_gno\n\t{\"gnoland\", \"g1g3lsfxhvaqgdv4ccemwpnms4fv6t3aq3p5z6u7\"}, // -\u003e @r_gnoland\n\t{\"gnolang\", \"g1yjlnm3z2630gg5mryjd79907e0zx658wxs9hnd\"}, // -\u003e @r_gnolang\n\t{\"gov\", \"g1g73v2anukg4ej7axwqpthsatzrxjsh0wk797da\"}, // -\u003e @r_gov\n\t{\"nt\", \"g15ge0ae9077eh40erwrn2eq0xw6wupwqthpv34l\"}, // -\u003e @r_nt\n\t{\"sys\", \"g1r929wt2qplfawe4lvqv9zuwfdcz4vxdun7qh8l\"}, // -\u003e @r_sys\n\t{\"x\", \"g164sdpew3c2t3rvxj3kmfv7c7ujlvcw2punzzuz\"}, // -\u003e @r_x\n\n\t// test1 user\n\t{\"test1\", \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"}, // -\u003e @test1\n}\n\nfunc init() {\n\t// add pre-registered users\n\tfor _, res := range preRegisteredUsers {\n\t\t// assert not already registered.\n\t\t_, ok := name2User.Get(res.Name)\n\t\tif ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\t_, ok = addr2User.Get(res.Address.String())\n\t\tif ok {\n\t\t\tpanic(\"address already registered\")\n\t\t}\n\n\t\tcounter++\n\t\tuser := \u0026users.User{\n\t\t\tAddress: res.Address,\n\t\t\tName: res.Name,\n\t\t\tProfile: \"\",\n\t\t\tNumber: counter,\n\t\t\tInvites: int(0),\n\t\t\tInviter: admin,\n\t\t}\n\t\tname2User.Set(res.Name, user)\n\t\taddr2User.Set(res.Address.String(), user)\n\t}\n\n\t// add pre-restricted names\n\tfor _, name := range preRestrictedNames {\n\t\tif _, ok := name2User.Get(name); ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\trestricted.Set(name, true)\n\t}\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"regexp\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/users\"\n)\n\n//----------------------------------------\n// State\n\nvar (\n\tadmin std.Address = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\n\trestricted avl.Tree // Name -\u003e true - restricted name\n\tname2User avl.Tree // Name -\u003e *users.User\n\taddr2User avl.Tree // std.Address -\u003e *users.User\n\tinvites avl.Tree // string(inviter+\":\"+invited) -\u003e true\n\tcounter int // user id counter\n\tminFee int64 = 20 * 1_000_000 // minimum gnot must be paid to register.\n\tmaxFeeMult int64 = 10 // maximum multiples of minFee accepted.\n)\n\n//----------------------------------------\n// Top-level functions\n\nfunc Register(inviter std.Address, name string, profile string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert invited or paid.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\n\tsentCoins := std.GetOrigSend()\n\tminCoin := std.NewCoin(\"ugnot\", minFee)\n\n\tif inviter == \"\" {\n\t\t// banker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tif len(sentCoins) == 1 \u0026\u0026 sentCoins[0].IsGTE(minCoin) {\n\t\t\tif sentCoins[0].Amount \u003e minFee*maxFeeMult {\n\t\t\t\tpanic(\"payment must not be greater than \" + strconv.Itoa(int(minFee*maxFeeMult)))\n\t\t\t} else {\n\t\t\t\t// ok\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"payment must not be less than \" + strconv.Itoa(int(minFee)))\n\t\t}\n\t} else {\n\t\tinvitekey := inviter.String() + \":\" + caller.String()\n\t\t_, ok := invites.Get(invitekey)\n\t\tif !ok {\n\t\t\tpanic(\"invalid invitation\")\n\t\t}\n\t\tinvites.Remove(invitekey)\n\t}\n\n\t// assert not already registered.\n\t_, ok := name2User.Get(name)\n\tif ok {\n\t\tpanic(\"name already registered: \" + name)\n\t}\n\t_, ok = addr2User.Get(caller.String())\n\tif ok {\n\t\tpanic(\"address already registered: \" + caller.String())\n\t}\n\n\tisInviterAdmin := inviter == admin\n\n\t// check for restricted name\n\tif _, isRestricted := restricted.Get(name); isRestricted {\n\t\t// only address invite by the admin can register restricted name\n\t\tif !isInviterAdmin {\n\t\t\tpanic(\"restricted name: \" + name)\n\t\t}\n\n\t\trestricted.Remove(name)\n\t}\n\n\t// assert name is valid.\n\t// admin inviter can bypass name restriction\n\tif !isInviterAdmin \u0026\u0026 !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name + \" (must be at least 6 characters, lowercase alphanumeric with underscore)\")\n\t}\n\n\t// remainder of fees go toward invites.\n\tinvites := int(0)\n\tif len(sentCoins) == 1 {\n\t\tif sentCoins[0].Denom == \"ugnot\" \u0026\u0026 sentCoins[0].Amount \u003e= minFee {\n\t\t\tinvites = int(sentCoins[0].Amount / minFee)\n\t\t\tif inviter == \"\" \u0026\u0026 invites \u003e 0 {\n\t\t\t\tinvites -= 1\n\t\t\t}\n\t\t}\n\t}\n\t// register.\n\tcounter++\n\tuser := \u0026users.User{\n\t\tAddress: caller,\n\t\tName: name,\n\t\tProfile: profile,\n\t\tNumber: counter,\n\t\tInvites: invites,\n\t\tInviter: inviter,\n\t}\n\tname2User.Set(name, user)\n\taddr2User.Set(caller.String(), user)\n}\n\nfunc Invite(invitee string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller/inviter.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tlines := strings.Split(invitee, \"\\n\")\n\tif caller == admin {\n\t\t// nothing to do, all good\n\t} else {\n\t\t// ensure has invites.\n\t\tuserI, ok := addr2User.Get(caller.String())\n\t\tif !ok {\n\t\t\tpanic(\"user unknown\")\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tif user.Invites \u003c= 0 {\n\t\t\tpanic(\"user has no invite tokens\")\n\t\t}\n\t\tuser.Invites -= len(lines)\n\t\tif user.Invites \u003c 0 {\n\t\t\tpanic(\"user has insufficient invite tokens\")\n\t\t}\n\t}\n\t// for each line...\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// record invite.\n\t\tinvitekey := string(caller) + \":\" + string(line)\n\t\tinvites.Set(invitekey, true)\n\t}\n}\n\nfunc GrantInvites(invites string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// for each line...\n\tlines := strings.Split(invites, \"\\n\")\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// parse name and invites.\n\t\tvar name string\n\t\tvar invites int\n\t\tparts := strings.Split(line, \":\")\n\t\tif len(parts) == 1 { // short for :1.\n\t\t\tname = parts[0]\n\t\t\tinvites = 1\n\t\t} else if len(parts) == 2 {\n\t\t\tname = parts[0]\n\t\t\tinvites_, err := strconv.Atoi(parts[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tinvites = int(invites_)\n\t\t} else {\n\t\t\tpanic(\"should not happen\")\n\t\t}\n\t\t// give invites.\n\t\tuserI, ok := name2User.Get(name)\n\t\tif !ok {\n\t\t\t// maybe address.\n\t\t\tuserI, ok = addr2User.Get(name)\n\t\t\tif !ok {\n\t\t\t\tpanic(\"invalid user \" + name)\n\t\t\t}\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tuser.Invites += invites\n\t}\n}\n\n// Any leftover fees go toward invitations.\nfunc SetMinFee(newMinFee int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tminFee = newMinFee\n}\n\n// This helps prevent fat finger accidents.\nfunc SetMaxFeeMultiple(newMaxFeeMult int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tmaxFeeMult = newMaxFeeMult\n}\n\n//----------------------------------------\n// Exposed public functions\n\nfunc GetUserByName(name string) *users.User {\n\tuserI, ok := name2User.Get(name)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\nfunc GetUserByAddress(addr std.Address) *users.User {\n\tuserI, ok := addr2User.Get(addr.String())\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\n// unlike GetUserByName, input must be \"@\" prefixed for names.\nfunc GetUserByAddressOrName(input users.AddressOrName) *users.User {\n\tname, isName := input.GetName()\n\tif isName {\n\t\treturn GetUserByName(name)\n\t}\n\treturn GetUserByAddress(std.Address(input))\n}\n\n// Get a list of user names starting from the given prefix. Limit the\n// number of results to maxResults. (This can be used for a name search tool.)\nfunc ListUsersByPrefix(prefix string, maxResults int) []string {\n\treturn avlhelpers.ListByteStringKeysByPrefix(name2User, prefix, maxResults)\n}\n\nfunc Resolve(input users.AddressOrName) std.Address {\n\tname, isName := input.GetName()\n\tif !isName {\n\t\treturn std.Address(input) // TODO check validity\n\t}\n\n\tuser := GetUserByName(name)\n\treturn user.Address\n}\n\n// Add restricted name to the list\nfunc AdminAddRestrictedName(name string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller\n\tcaller := std.GetOrigCaller()\n\t// assert admin\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tif user := GetUserByName(name); user != nil {\n\t\tpanic(\"already registered name\")\n\t}\n\n\t// register restricted name\n\n\trestricted.Set(name, true)\n}\n\n//----------------------------------------\n// Constants\n\n// NOTE: name length must be clearly distinguishable from a bech32 address.\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{5,16}$`)\n\n//----------------------------------------\n// Render main page\n\nfunc Render(fullPath string) string {\n\tpath, _ := splitPathAndQuery(fullPath)\n\tif path == \"\" {\n\t\treturn renderHome(fullPath)\n\t} else if len(path) \u003e= 38 { // 39? 40?\n\t\tif path[:2] != \"g1\" {\n\t\t\treturn \"invalid address \" + path\n\t\t}\n\t\tuser := GetUserByAddress(std.Address(path))\n\t\tif user == nil {\n\t\t\t// TODO: display basic information about account.\n\t\t\treturn \"unknown address \" + path\n\t\t}\n\t\treturn user.Render()\n\t} else {\n\t\tuser := GetUserByName(path)\n\t\tif user == nil {\n\t\t\treturn \"unknown username \" + path\n\t\t}\n\t\treturn user.Render()\n\t}\n}\n\nfunc renderHome(path string) string {\n\tdoc := \"\"\n\n\tpage := pager.NewPager(\u0026name2User, 50).MustGetPageByPath(path)\n\n\tfor _, item := range page.Items {\n\t\tuser := item.Value.(*users.User)\n\t\tdoc += \" * [\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\\n\"\n\t}\n\tdoc += \"\\n\"\n\tdoc += page.Selector()\n\treturn doc\n}\n\nfunc splitPathAndQuery(fullPath string) (string, string) {\n\tparts := strings.SplitN(fullPath, \"?\", 2)\n\tpath := parts[0]\n\tqueryString := \"\"\n\tif len(parts) \u003e 1 {\n\t\tqueryString = \"?\" + parts[1]\n\t}\n\treturn path, queryString\n}\n"},{"name":"users_test.gno","body":"package users\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPreRegisteredTest1(t *testing.T) {\n\tnames := ListUsersByPrefix(\"test1\", 1)\n\tuassert.Equal(t, len(names), 1)\n\tuassert.Equal(t, names[0], \"test1\")\n}\n"},{"name":"z_0_b_filetest.gno","body":"package main\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tstd.TestSetOrigSend(std.Coins{std.NewCoin(\"dontcare\", 1)}, nil)\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// incompatible coin denominations: dontcare, ugnot\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/users_test\npackage users_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc init() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n}\n\nfunc main() {\n\t// register as test2\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_11_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\n\t// test restricted name\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(\"\", \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// restricted name: superrestricted\n"},{"name":"z_11b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\t// add restricted name\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\t// grant invite to caller\n\tusers.Invite(caller.String())\n\t// set back caller\n\tstd.TestSetOrigCaller(caller)\n\t// register restricted name with admin invite\n\tusers.Register(admin, \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_12_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"alicia\", \"my profile\")\n\n\t{\n\t\t// Normal usage\n\t\tnames := users.ListUsersByPrefix(\"a\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// Empty prefix: match all\n\t\tnames := users.ListUsersByPrefix(\"\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// The prefix is before \"alicia\"\n\t\tnames := users.ListUsersByPrefix(\"alich\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t{\n\t\t// The prefix is after the last name\n\t\tnames := users.ListUsersByPrefix(\"y\", 10)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t// More tests are in p/demo/avlhelpers\n}\n\n// Output:\n// # names: 1\n// name: alicia\n// # names: 1\n// name: alicia\n// # names: 0\n// # names: 0\n"},{"name":"z_1_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_2_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_3_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_4_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.Invite(test1.String())\n\t// switch to test2 (not test1)\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid invitation\n"},{"name":"z_5_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(users.Render(\"\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"?page=2\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"gnouser\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"satoshi\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"badname\"))\n}\n\n// Output:\n// * [archives](/r/demo/users:archives)\n// * [demo](/r/demo/users:demo)\n// * [gno](/r/demo/users:gno)\n// * [gnoland](/r/demo/users:gnoland)\n// * [gnolang](/r/demo/users:gnolang)\n// * [gnouser](/r/demo/users:gnouser)\n// * [gov](/r/demo/users:gov)\n// * [nt](/r/demo/users:nt)\n// * [satoshi](/r/demo/users:satoshi)\n// * [sys](/r/demo/users:sys)\n// * [test1](/r/demo/users:test1)\n// * [x](/r/demo/users:x)\n//\n//\n// ========================================\n//\n//\n// ========================================\n// ## user gnouser\n//\n// * address = g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// * 9 invites\n//\n// my profile\n//\n// ========================================\n// ## user satoshi\n//\n// * address = g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7\n// * 0 invites\n// * invited by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// my other profile\n//\n// ========================================\n// unknown username badname\n"},{"name":"z_6_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller()\n\t// as admin, grant invites to unregistered user.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n"},{"name":"z_7_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_7b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_8_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and nonexistent user.\n\tstd.TestSetOrigCaller(admin)\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test2.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1w3jhxapjta047h6lta047h6lta047h6laqcyu4\n"},{"name":"z_9_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n\t// register as test2\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LUZd9r2oZQcWk4ReGC9252vR4E1DbqO4t+S3fusLWaWr9oRHSezVdmKpq/2serYas2DqhP2vkO/Yq+K5MMYlBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/demo/users","files":[{"name":"preregister.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/users\"\n)\n\n// pre-restricted names\nvar preRestrictedNames = []string{\n\t\"bitcoin\", \"cosmos\", \"newtendermint\", \"ethereum\",\n}\n\n// pre-registered users\nvar preRegisteredUsers = []struct {\n\tName string\n\tAddress std.Address\n}{\n\t// system name\n\t{\"archives\", \"g1xlnyjrnf03ju82v0f98ruhpgnquk28knmjfe5k\"}, // -\u003e @r_archives\n\t{\"demo\", \"g13ek2zz9qurzynzvssyc4sthwppnruhnp0gdz8n\"}, // -\u003e @r_demo\n\t{\"gno\", \"g19602kd9tfxrfd60sgreadt9zvdyyuudcyxsz8a\"}, // -\u003e @r_gno\n\t{\"gnoland\", \"g1g3lsfxhvaqgdv4ccemwpnms4fv6t3aq3p5z6u7\"}, // -\u003e @r_gnoland\n\t{\"gnolang\", \"g1yjlnm3z2630gg5mryjd79907e0zx658wxs9hnd\"}, // -\u003e @r_gnolang\n\t{\"gov\", \"g1g73v2anukg4ej7axwqpthsatzrxjsh0wk797da\"}, // -\u003e @r_gov\n\t{\"nt\", \"g15ge0ae9077eh40erwrn2eq0xw6wupwqthpv34l\"}, // -\u003e @r_nt\n\t{\"sys\", \"g1r929wt2qplfawe4lvqv9zuwfdcz4vxdun7qh8l\"}, // -\u003e @r_sys\n\t{\"x\", \"g164sdpew3c2t3rvxj3kmfv7c7ujlvcw2punzzuz\"}, // -\u003e @r_x\n\n\t// test1 user\n\t{\"test1\", \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"}, // -\u003e @test1\n}\n\nfunc init() {\n\t// add pre-registered users\n\tfor _, res := range preRegisteredUsers {\n\t\t// assert not already registered.\n\t\t_, ok := name2User.Get(res.Name)\n\t\tif ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\t_, ok = addr2User.Get(res.Address.String())\n\t\tif ok {\n\t\t\tpanic(\"address already registered\")\n\t\t}\n\n\t\tcounter++\n\t\tuser := \u0026users.User{\n\t\t\tAddress: res.Address,\n\t\t\tName: res.Name,\n\t\t\tProfile: \"\",\n\t\t\tNumber: counter,\n\t\t\tInvites: int(0),\n\t\t\tInviter: admin,\n\t\t}\n\t\tname2User.Set(res.Name, user)\n\t\taddr2User.Set(res.Address.String(), user)\n\t}\n\n\t// add pre-restricted names\n\tfor _, name := range preRestrictedNames {\n\t\tif _, ok := name2User.Get(name); ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\trestricted.Set(name, true)\n\t}\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"regexp\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/users\"\n)\n\n//----------------------------------------\n// State\n\nvar (\n\tadmin std.Address = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\n\trestricted avl.Tree // Name -\u003e true - restricted name\n\tname2User avl.Tree // Name -\u003e *users.User\n\taddr2User avl.Tree // std.Address -\u003e *users.User\n\tinvites avl.Tree // string(inviter+\":\"+invited) -\u003e true\n\tcounter int // user id counter\n\tminFee int64 = 20 * 1_000_000 // minimum gnot must be paid to register.\n\tmaxFeeMult int64 = 10 // maximum multiples of minFee accepted.\n)\n\n//----------------------------------------\n// Top-level functions\n\nfunc Register(inviter std.Address, name string, profile string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert invited or paid.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\n\tsentCoins := std.GetOrigSend()\n\tminCoin := std.NewCoin(\"ugnot\", minFee)\n\n\tif inviter == \"\" {\n\t\t// banker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tif len(sentCoins) == 1 \u0026\u0026 sentCoins[0].IsGTE(minCoin) {\n\t\t\tif sentCoins[0].Amount \u003e minFee*maxFeeMult {\n\t\t\t\tpanic(\"payment must not be greater than \" + strconv.Itoa(int(minFee*maxFeeMult)))\n\t\t\t} else {\n\t\t\t\t// ok\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"payment must not be less than \" + strconv.Itoa(int(minFee)))\n\t\t}\n\t} else {\n\t\tinvitekey := inviter.String() + \":\" + caller.String()\n\t\t_, ok := invites.Get(invitekey)\n\t\tif !ok {\n\t\t\tpanic(\"invalid invitation\")\n\t\t}\n\t\tinvites.Remove(invitekey)\n\t}\n\n\t// assert not already registered.\n\t_, ok := name2User.Get(name)\n\tif ok {\n\t\tpanic(\"name already registered: \" + name)\n\t}\n\t_, ok = addr2User.Get(caller.String())\n\tif ok {\n\t\tpanic(\"address already registered: \" + caller.String())\n\t}\n\n\tisInviterAdmin := inviter == admin\n\n\t// check for restricted name\n\tif _, isRestricted := restricted.Get(name); isRestricted {\n\t\t// only address invite by the admin can register restricted name\n\t\tif !isInviterAdmin {\n\t\t\tpanic(\"restricted name: \" + name)\n\t\t}\n\n\t\trestricted.Remove(name)\n\t}\n\n\t// assert name is valid.\n\t// admin inviter can bypass name restriction\n\tif !isInviterAdmin \u0026\u0026 !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name + \" (must be at least 6 characters, lowercase alphanumeric with underscore)\")\n\t}\n\n\t// remainder of fees go toward invites.\n\tinvites := int(0)\n\tif len(sentCoins) == 1 {\n\t\tif sentCoins[0].Denom == \"ugnot\" \u0026\u0026 sentCoins[0].Amount \u003e= minFee {\n\t\t\tinvites = int(sentCoins[0].Amount / minFee)\n\t\t\tif inviter == \"\" \u0026\u0026 invites \u003e 0 {\n\t\t\t\tinvites -= 1\n\t\t\t}\n\t\t}\n\t}\n\t// register.\n\tcounter++\n\tuser := \u0026users.User{\n\t\tAddress: caller,\n\t\tName: name,\n\t\tProfile: profile,\n\t\tNumber: counter,\n\t\tInvites: invites,\n\t\tInviter: inviter,\n\t}\n\tname2User.Set(name, user)\n\taddr2User.Set(caller.String(), user)\n}\n\nfunc Invite(invitee string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller/inviter.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tlines := strings.Split(invitee, \"\\n\")\n\tif caller == admin {\n\t\t// nothing to do, all good\n\t} else {\n\t\t// ensure has invites.\n\t\tuserI, ok := addr2User.Get(caller.String())\n\t\tif !ok {\n\t\t\tpanic(\"user unknown\")\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tif user.Invites \u003c= 0 {\n\t\t\tpanic(\"user has no invite tokens\")\n\t\t}\n\t\tuser.Invites -= len(lines)\n\t\tif user.Invites \u003c 0 {\n\t\t\tpanic(\"user has insufficient invite tokens\")\n\t\t}\n\t}\n\t// for each line...\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// record invite.\n\t\tinvitekey := string(caller) + \":\" + string(line)\n\t\tinvites.Set(invitekey, true)\n\t}\n}\n\nfunc GrantInvites(invites string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// for each line...\n\tlines := strings.Split(invites, \"\\n\")\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// parse name and invites.\n\t\tvar name string\n\t\tvar invites int\n\t\tparts := strings.Split(line, \":\")\n\t\tif len(parts) == 1 { // short for :1.\n\t\t\tname = parts[0]\n\t\t\tinvites = 1\n\t\t} else if len(parts) == 2 {\n\t\t\tname = parts[0]\n\t\t\tinvites_, err := strconv.Atoi(parts[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tinvites = int(invites_)\n\t\t} else {\n\t\t\tpanic(\"should not happen\")\n\t\t}\n\t\t// give invites.\n\t\tuserI, ok := name2User.Get(name)\n\t\tif !ok {\n\t\t\t// maybe address.\n\t\t\tuserI, ok = addr2User.Get(name)\n\t\t\tif !ok {\n\t\t\t\tpanic(\"invalid user \" + name)\n\t\t\t}\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tuser.Invites += invites\n\t}\n}\n\n// Any leftover fees go toward invitations.\nfunc SetMinFee(newMinFee int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tminFee = newMinFee\n}\n\n// This helps prevent fat finger accidents.\nfunc SetMaxFeeMultiple(newMaxFeeMult int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tmaxFeeMult = newMaxFeeMult\n}\n\n//----------------------------------------\n// Exposed public functions\n\nfunc GetUserByName(name string) *users.User {\n\tuserI, ok := name2User.Get(name)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\nfunc GetUserByAddress(addr std.Address) *users.User {\n\tuserI, ok := addr2User.Get(addr.String())\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\n// unlike GetUserByName, input must be \"@\" prefixed for names.\nfunc GetUserByAddressOrName(input users.AddressOrName) *users.User {\n\tname, isName := input.GetName()\n\tif isName {\n\t\treturn GetUserByName(name)\n\t}\n\treturn GetUserByAddress(std.Address(input))\n}\n\n// Get a list of user names starting from the given prefix. Limit the\n// number of results to maxResults. (This can be used for a name search tool.)\nfunc ListUsersByPrefix(prefix string, maxResults int) []string {\n\treturn avlhelpers.ListByteStringKeysByPrefix(name2User, prefix, maxResults)\n}\n\nfunc Resolve(input users.AddressOrName) std.Address {\n\tname, isName := input.GetName()\n\tif !isName {\n\t\treturn std.Address(input) // TODO check validity\n\t}\n\n\tuser := GetUserByName(name)\n\treturn user.Address\n}\n\n// Add restricted name to the list\nfunc AdminAddRestrictedName(name string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller\n\tcaller := std.GetOrigCaller()\n\t// assert admin\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tif user := GetUserByName(name); user != nil {\n\t\tpanic(\"already registered name\")\n\t}\n\n\t// register restricted name\n\n\trestricted.Set(name, true)\n}\n\n//----------------------------------------\n// Constants\n\n// NOTE: name length must be clearly distinguishable from a bech32 address.\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{5,16}$`)\n\n//----------------------------------------\n// Render main page\n\nfunc Render(fullPath string) string {\n\tpath, _ := splitPathAndQuery(fullPath)\n\tif path == \"\" {\n\t\treturn renderHome(fullPath)\n\t} else if len(path) \u003e= 38 { // 39? 40?\n\t\tif path[:2] != \"g1\" {\n\t\t\treturn \"invalid address \" + path\n\t\t}\n\t\tuser := GetUserByAddress(std.Address(path))\n\t\tif user == nil {\n\t\t\t// TODO: display basic information about account.\n\t\t\treturn \"unknown address \" + path\n\t\t}\n\t\treturn user.Render()\n\t} else {\n\t\tuser := GetUserByName(path)\n\t\tif user == nil {\n\t\t\treturn \"unknown username \" + path\n\t\t}\n\t\treturn user.Render()\n\t}\n}\n\nfunc renderHome(path string) string {\n\tdoc := \"\"\n\n\tpage := pager.NewPager(\u0026name2User, 50, false).MustGetPageByPath(path)\n\n\tfor _, item := range page.Items {\n\t\tuser := item.Value.(*users.User)\n\t\tdoc += \" * [\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\\n\"\n\t}\n\tdoc += \"\\n\"\n\tdoc += page.Picker()\n\treturn doc\n}\n\nfunc splitPathAndQuery(fullPath string) (string, string) {\n\tparts := strings.SplitN(fullPath, \"?\", 2)\n\tpath := parts[0]\n\tqueryString := \"\"\n\tif len(parts) \u003e 1 {\n\t\tqueryString = \"?\" + parts[1]\n\t}\n\treturn path, queryString\n}\n"},{"name":"users_test.gno","body":"package users\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPreRegisteredTest1(t *testing.T) {\n\tnames := ListUsersByPrefix(\"test1\", 1)\n\tuassert.Equal(t, len(names), 1)\n\tuassert.Equal(t, names[0], \"test1\")\n}\n"},{"name":"z_0_b_filetest.gno","body":"package main\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tstd.TestSetOrigSend(std.Coins{std.NewCoin(\"dontcare\", 1)}, nil)\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// incompatible coin denominations: dontcare, ugnot\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/users_test\npackage users_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc init() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n}\n\nfunc main() {\n\t// register as test2\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_11_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\n\t// test restricted name\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(\"\", \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// restricted name: superrestricted\n"},{"name":"z_11b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\t// add restricted name\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\t// grant invite to caller\n\tusers.Invite(caller.String())\n\t// set back caller\n\tstd.TestSetOrigCaller(caller)\n\t// register restricted name with admin invite\n\tusers.Register(admin, \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_12_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"alicia\", \"my profile\")\n\n\t{\n\t\t// Normal usage\n\t\tnames := users.ListUsersByPrefix(\"a\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// Empty prefix: match all\n\t\tnames := users.ListUsersByPrefix(\"\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// The prefix is before \"alicia\"\n\t\tnames := users.ListUsersByPrefix(\"alich\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t{\n\t\t// The prefix is after the last name\n\t\tnames := users.ListUsersByPrefix(\"y\", 10)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t// More tests are in p/demo/avlhelpers\n}\n\n// Output:\n// # names: 1\n// name: alicia\n// # names: 1\n// name: alicia\n// # names: 0\n// # names: 0\n"},{"name":"z_1_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_2_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_3_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_4_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.Invite(test1.String())\n\t// switch to test2 (not test1)\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid invitation\n"},{"name":"z_5_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(users.Render(\"\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"?page=2\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"gnouser\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"satoshi\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"badname\"))\n}\n\n// Output:\n// * [archives](/r/demo/users:archives)\n// * [demo](/r/demo/users:demo)\n// * [gno](/r/demo/users:gno)\n// * [gnoland](/r/demo/users:gnoland)\n// * [gnolang](/r/demo/users:gnolang)\n// * [gnouser](/r/demo/users:gnouser)\n// * [gov](/r/demo/users:gov)\n// * [nt](/r/demo/users:nt)\n// * [satoshi](/r/demo/users:satoshi)\n// * [sys](/r/demo/users:sys)\n// * [test1](/r/demo/users:test1)\n// * [x](/r/demo/users:x)\n//\n//\n// ========================================\n//\n//\n// ========================================\n// ## user gnouser\n//\n// * address = g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// * 9 invites\n//\n// my profile\n//\n// ========================================\n// ## user satoshi\n//\n// * address = g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7\n// * 0 invites\n// * invited by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// my other profile\n//\n// ========================================\n// unknown username badname\n"},{"name":"z_6_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller()\n\t// as admin, grant invites to unregistered user.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n"},{"name":"z_7_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_7b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_8_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and nonexistent user.\n\tstd.TestSetOrigCaller(admin)\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test2.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1w3jhxapjta047h6lta047h6lta047h6laqcyu4\n"},{"name":"z_9_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n\t// register as test2\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o9w12x+HmZsa3yrv/ROEUPJcvrdTtnyRnVnV1v+twY0iA3mr7pN1N0KrTzYUKZFOrVhZTrzLN2v/536P7wNMBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/sys/users","files":[{"name":"verify.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\ntype VerifyNameFunc func(enabled bool, address std.Address, name string) bool\n\nvar (\n\towner = ownable.NewWithAddress(admin) // Package owner\n\tcheckFunc = VerifyNameByUser // Checking namespace callback\n\tenabled = false // For now this package is disabled by default\n)\n\nfunc IsEnabled() bool { return enabled }\n\n// This method ensures that the given address has ownership of the given name.\nfunc IsAuthorizedAddressForName(address std.Address, name string) bool {\n\treturn checkFunc(enabled, address, name)\n}\n\n// VerifyNameByUser checks from the `users` package that the user has correctly\n// registered the given name.\n// This function considers as valid an `address` that matches the `name`.\nfunc VerifyNameByUser(enable bool, address std.Address, name string) bool {\n\tif !enable {\n\t\treturn true\n\t}\n\n\t// Allow user with their own address as name\n\tif address.String() == name {\n\t\treturn true\n\t}\n\n\tif user := users.GetUserByName(name); user != nil {\n\t\treturn user.Address == address\n\t}\n\n\treturn false\n}\n\n// Admin calls\n\n// Enable this package.\nfunc AdminEnable() {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tenabled = true\n}\n\n// Disable this package.\nfunc AdminDisable() {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tenabled = false\n}\n\n// AdminUpdateVerifyCall updates the method that verifies the namespace.\nfunc AdminUpdateVerifyCall(check VerifyNameFunc) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tcheckFunc = check\n}\n\n// AdminTransferOwnership transfers the ownership to a new owner.\nfunc AdminTransferOwnership(newOwner std.Address) error {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner.TransferOwnership(newOwner)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C57UwRu5tz5JRl57C/oixXaU0VCl6+YngSV2ChotT2kuxDZSaw/rqkNaMPsTC4hPvw6eoS0r2POHImunrRi6AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/sys/users","files":[{"name":"verify.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\ntype VerifyNameFunc func(enabled bool, address std.Address, name string) bool\n\nvar (\n\towner = ownable.NewWithAddress(admin) // Package owner\n\tcheckFunc = VerifyNameByUser // Checking namespace callback\n\tenabled = false // For now this package is disabled by default\n)\n\nfunc IsEnabled() bool { return enabled }\n\n// This method ensures that the given address has ownership of the given name.\nfunc IsAuthorizedAddressForName(address std.Address, name string) bool {\n\treturn checkFunc(enabled, address, name)\n}\n\n// VerifyNameByUser checks from the `users` package that the user has correctly\n// registered the given name.\n// This function considers as valid an `address` that matches the `name`.\nfunc VerifyNameByUser(enable bool, address std.Address, name string) bool {\n\tif !enable {\n\t\treturn true\n\t}\n\n\t// Allow user with their own address as name\n\tif address.String() == name {\n\t\treturn true\n\t}\n\n\tif user := users.GetUserByName(name); user != nil {\n\t\treturn user.Address == address\n\t}\n\n\treturn false\n}\n\n// Admin calls\n\n// Enable this package.\nfunc AdminEnable() {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tenabled = true\n}\n\n// Disable this package.\nfunc AdminDisable() {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tenabled = false\n}\n\n// AdminUpdateVerifyCall updates the method that verifies the namespace.\nfunc AdminUpdateVerifyCall(check VerifyNameFunc) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tcheckFunc = check\n}\n\n// AdminTransferOwnership transfers the ownership to a new owner.\nfunc AdminTransferOwnership(newOwner std.Address) error {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner.TransferOwnership(newOwner)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C57UwRu5tz5JRl57C/oixXaU0VCl6+YngSV2ChotT2kuxDZSaw/rqkNaMPsTC4hPvw6eoS0r2POHImunrRi6AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"users","path":"gno.land/r/sys/users","files":[{"name":"verify.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\ntype VerifyNameFunc func(enabled bool, address std.Address, name string) bool\n\nvar (\n\towner = ownable.NewWithAddress(admin) // Package owner\n\tcheckFunc = VerifyNameByUser // Checking namespace callback\n\tenabled = false // For now this package is disabled by default\n)\n\nfunc IsEnabled() bool { return enabled }\n\n// This method ensures that the given address has ownership of the given name.\nfunc IsAuthorizedAddressForName(address std.Address, name string) bool {\n\treturn checkFunc(enabled, address, name)\n}\n\n// VerifyNameByUser checks from the `users` package that the user has correctly\n// registered the given name.\n// This function considers as valid an `address` that matches the `name`.\nfunc VerifyNameByUser(enable bool, address std.Address, name string) bool {\n\tif !enable {\n\t\treturn true\n\t}\n\n\t// Allow user with their own address as name\n\tif address.String() == name {\n\t\treturn true\n\t}\n\n\tif user := users.GetUserByName(name); user != nil {\n\t\treturn user.Address == address\n\t}\n\n\treturn false\n}\n\n// Admin calls\n\n// Enable this package.\nfunc AdminEnable() {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tenabled = true\n}\n\n// Disable this package.\nfunc AdminDisable() {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tenabled = false\n}\n\n// AdminUpdateVerifyCall updates the method that verifies the namespace.\nfunc AdminUpdateVerifyCall(check VerifyNameFunc) {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tcheckFunc = check\n}\n\n// AdminTransferOwnership transfers the ownership to a new owner.\nfunc AdminTransferOwnership(newOwner std.Address) error {\n\tif err := owner.CallerIsOwner(); err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner.TransferOwnership(newOwner)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C57UwRu5tz5JRl57C/oixXaU0VCl6+YngSV2ChotT2kuxDZSaw/rqkNaMPsTC4hPvw6eoS0r2POHImunrRi6AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"validators","path":"gno.land/p/sys/validators","files":[{"name":"types.gno","body":"package validators\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// ValsetProtocol defines the validator set protocol (PoA / PoS / PoC / ?)\ntype ValsetProtocol interface {\n\t// AddValidator adds a new validator to the validator set.\n\t// If the validator is already present, the method should error out\n\t//\n\t// TODO: This API is not ideal -- the address should be derived from\n\t// the public key, and not be passed in as such, but currently Gno\n\t// does not support crypto address derivation\n\tAddValidator(address std.Address, pubKey string, power uint64) (Validator, error)\n\n\t// RemoveValidator removes the given validator from the set.\n\t// If the validator is not present in the set, the method should error out\n\tRemoveValidator(address std.Address) (Validator, error)\n\n\t// IsValidator returns a flag indicating if the given\n\t// bech32 address is part of the validator set\n\tIsValidator(address std.Address) bool\n\n\t// GetValidator returns the validator using the given address\n\tGetValidator(address std.Address) (Validator, error)\n\n\t// GetValidators returns the currently active validator set\n\tGetValidators() []Validator\n}\n\n// Validator represents a single chain validator\ntype Validator struct {\n\tAddress std.Address // bech32 address\n\tPubKey string // bech32 representation of the public key\n\tVotingPower uint64\n}\n\nconst (\n\tValidatorAddedEvent = \"ValidatorAdded\" // emitted when a validator was added to the set\n\tValidatorRemovedEvent = \"ValidatorRemoved\" // emitted when a validator was removed from the set\n)\n\nvar (\n\t// ErrValidatorExists is returned when the validator is already in the set\n\tErrValidatorExists = errors.New(\"validator already exists\")\n\n\t// ErrValidatorMissing is returned when the validator is not in the set\n\tErrValidatorMissing = errors.New(\"validator doesn't exist\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t1THb/9uus1+ADsZ0QQD4zWFy45p2W31WceheU55w9yPHWaDMjz0YxAyS391YOaukEl9vpTfWfF0C/jhJxp/CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"validators","path":"gno.land/p/sys/validators","files":[{"name":"types.gno","body":"package validators\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// ValsetProtocol defines the validator set protocol (PoA / PoS / PoC / ?)\ntype ValsetProtocol interface {\n\t// AddValidator adds a new validator to the validator set.\n\t// If the validator is already present, the method should error out\n\t//\n\t// TODO: This API is not ideal -- the address should be derived from\n\t// the public key, and not be passed in as such, but currently Gno\n\t// does not support crypto address derivation\n\tAddValidator(address std.Address, pubKey string, power uint64) (Validator, error)\n\n\t// RemoveValidator removes the given validator from the set.\n\t// If the validator is not present in the set, the method should error out\n\tRemoveValidator(address std.Address) (Validator, error)\n\n\t// IsValidator returns a flag indicating if the given\n\t// bech32 address is part of the validator set\n\tIsValidator(address std.Address) bool\n\n\t// GetValidator returns the validator using the given address\n\tGetValidator(address std.Address) (Validator, error)\n\n\t// GetValidators returns the currently active validator set\n\tGetValidators() []Validator\n}\n\n// Validator represents a single chain validator\ntype Validator struct {\n\tAddress std.Address // bech32 address\n\tPubKey string // bech32 representation of the public key\n\tVotingPower uint64\n}\n\nconst (\n\tValidatorAddedEvent = \"ValidatorAdded\" // emitted when a validator was added to the set\n\tValidatorRemovedEvent = \"ValidatorRemoved\" // emitted when a validator was removed from the set\n)\n\nvar (\n\t// ErrValidatorExists is returned when the validator is already in the set\n\tErrValidatorExists = errors.New(\"validator already exists\")\n\n\t// ErrValidatorMissing is returned when the validator is not in the set\n\tErrValidatorMissing = errors.New(\"validator doesn't exist\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t1THb/9uus1+ADsZ0QQD4zWFy45p2W31WceheU55w9yPHWaDMjz0YxAyS391YOaukEl9vpTfWfF0C/jhJxp/CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"validators","path":"gno.land/p/sys/validators","files":[{"name":"types.gno","body":"package validators\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// ValsetProtocol defines the validator set protocol (PoA / PoS / PoC / ?)\ntype ValsetProtocol interface {\n\t// AddValidator adds a new validator to the validator set.\n\t// If the validator is already present, the method should error out\n\t//\n\t// TODO: This API is not ideal -- the address should be derived from\n\t// the public key, and not be passed in as such, but currently Gno\n\t// does not support crypto address derivation\n\tAddValidator(address std.Address, pubKey string, power uint64) (Validator, error)\n\n\t// RemoveValidator removes the given validator from the set.\n\t// If the validator is not present in the set, the method should error out\n\tRemoveValidator(address std.Address) (Validator, error)\n\n\t// IsValidator returns a flag indicating if the given\n\t// bech32 address is part of the validator set\n\tIsValidator(address std.Address) bool\n\n\t// GetValidator returns the validator using the given address\n\tGetValidator(address std.Address) (Validator, error)\n\n\t// GetValidators returns the currently active validator set\n\tGetValidators() []Validator\n}\n\n// Validator represents a single chain validator\ntype Validator struct {\n\tAddress std.Address // bech32 address\n\tPubKey string // bech32 representation of the public key\n\tVotingPower uint64\n}\n\nconst (\n\tValidatorAddedEvent = \"ValidatorAdded\" // emitted when a validator was added to the set\n\tValidatorRemovedEvent = \"ValidatorRemoved\" // emitted when a validator was removed from the set\n)\n\nvar (\n\t// ErrValidatorExists is returned when the validator is already in the set\n\tErrValidatorExists = errors.New(\"validator already exists\")\n\n\t// ErrValidatorMissing is returned when the validator is not in the set\n\tErrValidatorMissing = errors.New(\"validator doesn't exist\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t1THb/9uus1+ADsZ0QQD4zWFy45p2W31WceheU55w9yPHWaDMjz0YxAyS391YOaukEl9vpTfWfF0C/jhJxp/CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"validators","path":"gno.land/r/sys/validators/v2","files":[{"name":"doc.gno","body":"// Package validators implements the on-chain validator set management through Proof of Contribution.\n// The Realm exposes only a public executor for govdao proposals, that can suggest validator set changes.\npackage validators\n"},{"name":"gnosdk.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/sys/validators\"\n)\n\n// GetChanges returns the validator changes stored on the realm, since the given block number.\n// This function is intended to be called by gno.land through the GnoSDK\nfunc GetChanges(from int64) []validators.Validator {\n\tvalsetChanges := make([]validators.Validator, 0)\n\n\t// Gather the changes from the specified block\n\tchanges.Iterate(getBlockID(from), \"\", func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\tvalsetChanges = append(valsetChanges, ch.validator)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn valsetChanges\n}\n"},{"name":"init.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/nt/poa\"\n)\n\nfunc init() {\n\t// The default valset protocol is PoA\n\tvp = poa.NewPoA()\n\n\t// No changes to apply initially\n\tchanges = avl.NewTree()\n}\n"},{"name":"poc.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nconst errNoChangesProposed = \"no set changes proposed\"\n\n// NewPropExecutor creates a new executor that wraps a changes closure\n// proposal. This wrapper is required to ensure the GovDAO Realm actually\n// executed the callback.\n//\n// Concept adapted from:\n// https://github.com/gnolang/gno/pull/1945\nfunc NewPropExecutor(changesFn func() []validators.Validator) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tfor _, change := range changesFn() {\n\t\t\tif change.VotingPower == 0 {\n\t\t\t\t// This change request is to remove the validator\n\t\t\t\tremoveValidator(change.Address)\n\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// This change request is to add the validator\n\t\t\taddValidator(change)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\n// IsValidator returns a flag indicating if the given bech32 address\n// is part of the validator set\nfunc IsValidator(addr std.Address) bool {\n\treturn vp.IsValidator(addr)\n}\n\n// GetValidators returns the typed validator set\nfunc GetValidators() []validators.Validator {\n\treturn vp.GetValidators()\n}\n"},{"name":"validators.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar (\n\tvp validators.ValsetProtocol // p is the underlying validator set protocol\n\tchanges *avl.Tree // changes holds any valset changes; seqid(block number) -\u003e []change\n)\n\n// change represents a single valset change, tied to a specific block number\ntype change struct {\n\tblockNum int64 // the block number associated with the valset change\n\tvalidator validators.Validator // the validator update\n}\n\n// addValidator adds a new validator to the validator set.\n// If the validator is already present, the method errors out\nfunc addValidator(validator validators.Validator) {\n\tval, err := vp.AddValidator(validator.Address, validator.PubKey, validator.VotingPower)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator added, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: val,\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorAddedEvent)\n}\n\n// removeValidator removes the given validator from the set.\n// If the validator is not present in the set, the method errors out\nfunc removeValidator(address std.Address) {\n\tval, err := vp.RemoveValidator(address)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator removed, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: validators.Validator{\n\t\t\tAddress: val.Address,\n\t\t\tPubKey: val.PubKey,\n\t\t\tVotingPower: 0, // nullified the voting power indicates removal\n\t\t},\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorRemovedEvent)\n}\n\n// saveChange saves the valset change\nfunc saveChange(ch change) {\n\tid := getBlockID(ch.blockNum)\n\n\tsetRaw, exists := changes.Get(id)\n\tif !exists {\n\t\tchanges.Set(id, []change{ch})\n\n\t\treturn\n\t}\n\n\t// Save the change\n\tset := setRaw.([]change)\n\tset = append(set, ch)\n\n\tchanges.Set(id, set)\n}\n\n// getBlockID converts the block number to a sequential ID\nfunc getBlockID(blockNum int64) string {\n\treturn seqid.ID(uint64(blockNum)).String()\n}\n\nfunc Render(_ string) string {\n\tvar (\n\t\tsize = changes.Size()\n\t\tmaxDisplay = 10\n\t)\n\n\tif size == 0 {\n\t\treturn \"No valset changes to apply.\"\n\t}\n\n\toutput := \"Valset changes:\\n\"\n\tchanges.ReverseIterateByOffset(size-maxDisplay, maxDisplay, func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- #%d: %s (%d)\\n\",\n\t\t\t\tch.blockNum,\n\t\t\t\tch.validator.Address.String(),\n\t\t\t\tch.validator.VotingPower,\n\t\t\t)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n"},{"name":"validators_test.gno","body":"package validators\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 10,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestValidators_AddRemove(t *testing.T) {\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\tvar (\n\t\tvals = generateTestValidators(100)\n\t\tinitialHeight = int64(123)\n\t)\n\n\t// Add in the validators\n\tfor _, val := range vals {\n\t\taddValidator(val)\n\n\t\t// Make sure the validator is added\n\t\tuassert.True(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialHeight; i \u003c initialHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, val.VotingPower, ch.VotingPower)\n\t\t}\n\t}\n\n\t// Save the beginning height for the removal\n\tinitialRemoveHeight := std.GetHeight()\n\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\t// Remove the validators\n\tfor _, val := range vals {\n\t\tremoveValidator(val.Address)\n\n\t\t// Make sure the validator is removed\n\t\tuassert.False(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialRemoveHeight; i \u003c initialRemoveHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialRemoveHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialRemoveHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, uint64(0), ch.VotingPower)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YGIkRfh+m3/eaOk0MVjPguc0a/UvOC871VJAAVQmQXYKYWV5JfnEcpwUvgI/rta1uHILKIQ1KSIkT7lVNhvLDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"validators","path":"gno.land/r/sys/validators/v2","files":[{"name":"doc.gno","body":"// Package validators implements the on-chain validator set management through Proof of Contribution.\n// The Realm exposes only a public executor for govdao proposals, that can suggest validator set changes.\npackage validators\n"},{"name":"gnosdk.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/sys/validators\"\n)\n\n// GetChanges returns the validator changes stored on the realm, since the given block number.\n// This function is intended to be called by gno.land through the GnoSDK\nfunc GetChanges(from int64) []validators.Validator {\n\tvalsetChanges := make([]validators.Validator, 0)\n\n\t// Gather the changes from the specified block\n\tchanges.Iterate(getBlockID(from), \"\", func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\tvalsetChanges = append(valsetChanges, ch.validator)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn valsetChanges\n}\n"},{"name":"init.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/nt/poa\"\n)\n\nfunc init() {\n\t// The default valset protocol is PoA\n\tvp = poa.NewPoA()\n\n\t// No changes to apply initially\n\tchanges = avl.NewTree()\n}\n"},{"name":"poc.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nconst errNoChangesProposed = \"no set changes proposed\"\n\n// NewPropExecutor creates a new executor that wraps a changes closure\n// proposal. This wrapper is required to ensure the GovDAO Realm actually\n// executed the callback.\n//\n// Concept adapted from:\n// https://github.com/gnolang/gno/pull/1945\nfunc NewPropExecutor(changesFn func() []validators.Validator) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tfor _, change := range changesFn() {\n\t\t\tif change.VotingPower == 0 {\n\t\t\t\t// This change request is to remove the validator\n\t\t\t\tremoveValidator(change.Address)\n\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// This change request is to add the validator\n\t\t\taddValidator(change)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\n// IsValidator returns a flag indicating if the given bech32 address\n// is part of the validator set\nfunc IsValidator(addr std.Address) bool {\n\treturn vp.IsValidator(addr)\n}\n\n// GetValidators returns the typed validator set\nfunc GetValidators() []validators.Validator {\n\treturn vp.GetValidators()\n}\n"},{"name":"validators.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar (\n\tvp validators.ValsetProtocol // p is the underlying validator set protocol\n\tchanges *avl.Tree // changes holds any valset changes; seqid(block number) -\u003e []change\n)\n\n// change represents a single valset change, tied to a specific block number\ntype change struct {\n\tblockNum int64 // the block number associated with the valset change\n\tvalidator validators.Validator // the validator update\n}\n\n// addValidator adds a new validator to the validator set.\n// If the validator is already present, the method errors out\nfunc addValidator(validator validators.Validator) {\n\tval, err := vp.AddValidator(validator.Address, validator.PubKey, validator.VotingPower)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator added, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: val,\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorAddedEvent)\n}\n\n// removeValidator removes the given validator from the set.\n// If the validator is not present in the set, the method errors out\nfunc removeValidator(address std.Address) {\n\tval, err := vp.RemoveValidator(address)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator removed, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: validators.Validator{\n\t\t\tAddress: val.Address,\n\t\t\tPubKey: val.PubKey,\n\t\t\tVotingPower: 0, // nullified the voting power indicates removal\n\t\t},\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorRemovedEvent)\n}\n\n// saveChange saves the valset change\nfunc saveChange(ch change) {\n\tid := getBlockID(ch.blockNum)\n\n\tsetRaw, exists := changes.Get(id)\n\tif !exists {\n\t\tchanges.Set(id, []change{ch})\n\n\t\treturn\n\t}\n\n\t// Save the change\n\tset := setRaw.([]change)\n\tset = append(set, ch)\n\n\tchanges.Set(id, set)\n}\n\n// getBlockID converts the block number to a sequential ID\nfunc getBlockID(blockNum int64) string {\n\treturn seqid.ID(uint64(blockNum)).String()\n}\n\nfunc Render(_ string) string {\n\tvar (\n\t\tsize = changes.Size()\n\t\tmaxDisplay = 10\n\t)\n\n\tif size == 0 {\n\t\treturn \"No valset changes to apply.\"\n\t}\n\n\toutput := \"Valset changes:\\n\"\n\tchanges.ReverseIterateByOffset(size-maxDisplay, maxDisplay, func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- #%d: %s (%d)\\n\",\n\t\t\t\tch.blockNum,\n\t\t\t\tch.validator.Address.String(),\n\t\t\t\tch.validator.VotingPower,\n\t\t\t)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n"},{"name":"validators_test.gno","body":"package validators\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 10,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestValidators_AddRemove(t *testing.T) {\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\tvar (\n\t\tvals = generateTestValidators(100)\n\t\tinitialHeight = int64(123)\n\t)\n\n\t// Add in the validators\n\tfor _, val := range vals {\n\t\taddValidator(val)\n\n\t\t// Make sure the validator is added\n\t\tuassert.True(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialHeight; i \u003c initialHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, val.VotingPower, ch.VotingPower)\n\t\t}\n\t}\n\n\t// Save the beginning height for the removal\n\tinitialRemoveHeight := std.GetHeight()\n\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\t// Remove the validators\n\tfor _, val := range vals {\n\t\tremoveValidator(val.Address)\n\n\t\t// Make sure the validator is removed\n\t\tuassert.False(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialRemoveHeight; i \u003c initialRemoveHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialRemoveHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialRemoveHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, uint64(0), ch.VotingPower)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YGIkRfh+m3/eaOk0MVjPguc0a/UvOC871VJAAVQmQXYKYWV5JfnEcpwUvgI/rta1uHILKIQ1KSIkT7lVNhvLDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"validators","path":"gno.land/r/sys/validators/v2","files":[{"name":"doc.gno","body":"// Package validators implements the on-chain validator set management through Proof of Contribution.\n// The Realm exposes only a public executor for govdao proposals, that can suggest validator set changes.\npackage validators\n"},{"name":"gnosdk.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/sys/validators\"\n)\n\n// GetChanges returns the validator changes stored on the realm, since the given block number.\n// This function is intended to be called by gno.land through the GnoSDK\nfunc GetChanges(from int64) []validators.Validator {\n\tvalsetChanges := make([]validators.Validator, 0)\n\n\t// Gather the changes from the specified block\n\tchanges.Iterate(getBlockID(from), \"\", func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\tvalsetChanges = append(valsetChanges, ch.validator)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn valsetChanges\n}\n"},{"name":"init.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/nt/poa\"\n)\n\nfunc init() {\n\t// The default valset protocol is PoA\n\tvp = poa.NewPoA()\n\n\t// No changes to apply initially\n\tchanges = avl.NewTree()\n}\n"},{"name":"poc.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nconst errNoChangesProposed = \"no set changes proposed\"\n\n// NewPropExecutor creates a new executor that wraps a changes closure\n// proposal. This wrapper is required to ensure the GovDAO Realm actually\n// executed the callback.\n//\n// Concept adapted from:\n// https://github.com/gnolang/gno/pull/1945\nfunc NewPropExecutor(changesFn func() []validators.Validator) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tfor _, change := range changesFn() {\n\t\t\tif change.VotingPower == 0 {\n\t\t\t\t// This change request is to remove the validator\n\t\t\t\tremoveValidator(change.Address)\n\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// This change request is to add the validator\n\t\t\taddValidator(change)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\n// IsValidator returns a flag indicating if the given bech32 address\n// is part of the validator set\nfunc IsValidator(addr std.Address) bool {\n\treturn vp.IsValidator(addr)\n}\n\n// GetValidators returns the typed validator set\nfunc GetValidators() []validators.Validator {\n\treturn vp.GetValidators()\n}\n"},{"name":"validators.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar (\n\tvp validators.ValsetProtocol // p is the underlying validator set protocol\n\tchanges *avl.Tree // changes holds any valset changes; seqid(block number) -\u003e []change\n)\n\n// change represents a single valset change, tied to a specific block number\ntype change struct {\n\tblockNum int64 // the block number associated with the valset change\n\tvalidator validators.Validator // the validator update\n}\n\n// addValidator adds a new validator to the validator set.\n// If the validator is already present, the method errors out\nfunc addValidator(validator validators.Validator) {\n\tval, err := vp.AddValidator(validator.Address, validator.PubKey, validator.VotingPower)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator added, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: val,\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorAddedEvent)\n}\n\n// removeValidator removes the given validator from the set.\n// If the validator is not present in the set, the method errors out\nfunc removeValidator(address std.Address) {\n\tval, err := vp.RemoveValidator(address)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator removed, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: validators.Validator{\n\t\t\tAddress: val.Address,\n\t\t\tPubKey: val.PubKey,\n\t\t\tVotingPower: 0, // nullified the voting power indicates removal\n\t\t},\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorRemovedEvent)\n}\n\n// saveChange saves the valset change\nfunc saveChange(ch change) {\n\tid := getBlockID(ch.blockNum)\n\n\tsetRaw, exists := changes.Get(id)\n\tif !exists {\n\t\tchanges.Set(id, []change{ch})\n\n\t\treturn\n\t}\n\n\t// Save the change\n\tset := setRaw.([]change)\n\tset = append(set, ch)\n\n\tchanges.Set(id, set)\n}\n\n// getBlockID converts the block number to a sequential ID\nfunc getBlockID(blockNum int64) string {\n\treturn seqid.ID(uint64(blockNum)).String()\n}\n\nfunc Render(_ string) string {\n\tvar (\n\t\tsize = changes.Size()\n\t\tmaxDisplay = 10\n\t)\n\n\tif size == 0 {\n\t\treturn \"No valset changes to apply.\"\n\t}\n\n\toutput := \"Valset changes:\\n\"\n\tchanges.ReverseIterateByOffset(size-maxDisplay, maxDisplay, func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- #%d: %s (%d)\\n\",\n\t\t\t\tch.blockNum,\n\t\t\t\tch.validator.Address.String(),\n\t\t\t\tch.validator.VotingPower,\n\t\t\t)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n"},{"name":"validators_test.gno","body":"package validators\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 10,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestValidators_AddRemove(t *testing.T) {\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\tvar (\n\t\tvals = generateTestValidators(100)\n\t\tinitialHeight = int64(123)\n\t)\n\n\t// Add in the validators\n\tfor _, val := range vals {\n\t\taddValidator(val)\n\n\t\t// Make sure the validator is added\n\t\tuassert.True(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialHeight; i \u003c initialHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, val.VotingPower, ch.VotingPower)\n\t\t}\n\t}\n\n\t// Save the beginning height for the removal\n\tinitialRemoveHeight := std.GetHeight()\n\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\t// Remove the validators\n\tfor _, val := range vals {\n\t\tremoveValidator(val.Address)\n\n\t\t// Make sure the validator is removed\n\t\tuassert.False(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialRemoveHeight; i \u003c initialRemoveHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialRemoveHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialRemoveHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, uint64(0), ch.VotingPower)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YGIkRfh+m3/eaOk0MVjPguc0a/UvOC871VJAAVQmQXYKYWV5JfnEcpwUvgI/rta1uHILKIQ1KSIkT7lVNhvLDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"valopers","path":"gno.land/r/gnoland/valopers/v2","files":[{"name":"init.gno","body":"package valopers\n\nimport \"gno.land/p/demo/avl\"\n\nfunc init() {\n\tvalopers = avl.NewTree()\n}\n"},{"name":"valopers.gno","body":"// Package valopers is designed around the permissionless lifecycle of valoper profiles.\n// It also includes parts designed for govdao to propose valset changes based on registered valopers.\npackage valopers\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\tpVals \"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nconst (\n\terrValoperExists = \"valoper already exists\"\n\terrValoperMissing = \"valoper does not exist\"\n\terrInvalidAddressUpdate = \"valoper updated address exists\"\n\terrValoperNotCaller = \"valoper is not the caller\"\n)\n\n// valopers keeps track of all the active validator operators\nvar valopers *avl.Tree // Address -\u003e Valoper\n\n// Valoper represents a validator operator profile\ntype Valoper struct {\n\tName string // the display name of the valoper\n\tMoniker string // the moniker of the valoper\n\tDescription string // the description of the valoper\n\n\tAddress std.Address // The bech32 gno address of the validator\n\tPubKey string // the bech32 public key of the validator\n\tP2PAddresses []string // the publicly reachable P2P addresses of the validator\n\tActive bool // flag indicating if the valoper is active\n}\n\n// Register registers a new valoper\nfunc Register(v Valoper) {\n\t// Check if the valoper is already registered\n\tif isValoper(v.Address) {\n\t\tpanic(errValoperExists)\n\t}\n\n\t// TODO add address derivation from public key\n\t// (when the laws of gno make it possible)\n\n\t// Save the valoper to the set\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// Update updates an existing valoper\nfunc Update(address std.Address, v Valoper) {\n\t// Check if the valoper is present\n\tif !isValoper(address) {\n\t\tpanic(errValoperMissing)\n\t}\n\n\t// Check that the valoper wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != v.Address\n\tif isAddressUpdate \u0026\u0026 isValoper(v.Address) {\n\t\tpanic(errInvalidAddressUpdate)\n\t}\n\n\t// Remove the old valoper info\n\t// in case the address changed\n\tif address != v.Address {\n\t\tvalopers.Remove(address.String())\n\t}\n\n\t// Save the new valoper info\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// GetByAddr fetches the valoper using the address, if present\nfunc GetByAddr(address std.Address) Valoper {\n\tvaloperRaw, exists := valopers.Get(address.String())\n\tif !exists {\n\t\tpanic(errValoperMissing)\n\t}\n\n\treturn valoperRaw.(Valoper)\n}\n\n// Render renders the current valoper set\nfunc Render(_ string) string {\n\tif valopers.Size() == 0 {\n\t\treturn \"No valopers to display.\"\n\t}\n\n\toutput := \"Valset changes to apply:\\n\"\n\tvalopers.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvaloper := value.(Valoper)\n\n\t\toutput += valoper.Render()\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n\n// Render renders a single valoper with their information\nfunc (v Valoper) Render() string {\n\toutput := ufmt.Sprintf(\"## %s (%s)\\n\", v.Name, v.Moniker)\n\toutput += ufmt.Sprintf(\"%s\\n\\n\", v.Description)\n\toutput += ufmt.Sprintf(\"- Address: %s\\n\", v.Address.String())\n\toutput += ufmt.Sprintf(\"- PubKey: %s\\n\", v.PubKey)\n\toutput += \"- P2P Addresses: [\\n\"\n\n\tif len(v.P2PAddresses) == 0 {\n\t\toutput += \"]\\n\"\n\n\t\treturn output\n\t}\n\n\tfor index, addr := range v.P2PAddresses {\n\t\toutput += addr\n\n\t\tif index == len(v.P2PAddresses)-1 {\n\t\t\toutput += \"]\\n\"\n\n\t\t\tcontinue\n\t\t}\n\n\t\toutput += \",\\n\"\n\t}\n\n\treturn output\n}\n\n// isValoper checks if the valoper exists\nfunc isValoper(address std.Address) bool {\n\t_, exists := valopers.Get(address.String())\n\n\treturn exists\n}\n\n// GovDAOProposal creates a proposal to the GovDAO\n// for adding the given valoper to the validator set.\n// This function is meant to serve as a helper\n// for generating the govdao proposal\nfunc GovDAOProposal(address std.Address) {\n\tvar (\n\t\tvaloper = GetByAddr(address)\n\t\tvotingPower = uint64(1)\n\t)\n\n\t// Make sure the valoper is the caller\n\tif std.GetOrigCaller() != address {\n\t\tpanic(errValoperNotCaller)\n\t}\n\n\t// Determine the voting power\n\tif !valoper.Active {\n\t\tvotingPower = uint64(0)\n\t}\n\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: valoper.Address,\n\t\t\t\tPubKey: valoper.PubKey,\n\t\t\t\tVotingPower: votingPower,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create the executor\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Craft the proposal description\n\tdescription := ufmt.Sprintf(\n\t\t\"Add valoper %s (Address: %s; PubKey: %s) to the valset\",\n\t\tvaloper.Name,\n\t\tvaloper.Address.String(),\n\t\tvaloper.PubKey,\n\t)\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\t// Create the govdao proposal\n\tbridge.GovDAO().Propose(prop)\n}\n"},{"name":"valopers_test.gno","body":"package valopers\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValopers_Register(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"already a valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tvalopers.Set(v.Address.String(), v)\n\n\t\tuassert.PanicsWithMessage(t, errValoperExists, func() {\n\t\t\tRegister(v)\n\t\t})\n\t})\n\n\tt.Run(\"successful registration\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\tName: \"new valoper\",\n\t\t\tMoniker: \"val-1\",\n\t\t\tPubKey: \"pub key\",\n\t\t}\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Address, valoper.Address)\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Moniker, valoper.Moniker)\n\t\t\tuassert.Equal(t, v.PubKey, valoper.PubKey)\n\t\t})\n\t})\n}\n\nfunc TestValopers_Update(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errValoperMissing, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\t})\n\n\tt.Run(\"overwrite valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tone := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper 1\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(one)\n\t\t})\n\n\t\tinitialAddress := testutils.TestAddress(\"valoper 2\")\n\t\ttwo := Valoper{\n\t\t\tAddress: initialAddress,\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(two)\n\t\t})\n\n\t\t// Update the valoper address\n\t\t// so it overlaps\n\t\ttwo = Valoper{\n\t\t\tAddress: one.Address,\n\t\t}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errInvalidAddressUpdate, func() {\n\t\t\tUpdate(initialAddress, two)\n\t\t})\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tvar (\n\t\t\tname = \"new valoper\"\n\t\t\tv = Valoper{\n\t\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\t\tName: name,\n\t\t\t\tPubKey: \"pub key\",\n\t\t\t}\n\t\t)\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\t// Update the valoper name\n\t\tv.Name = \"new name\"\n\t\tv.Active = false\n\n\t\t// Update the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\n\t\t// Make sure the valoper is updated\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Active, valoper.Active)\n\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q+P5R6W8ra34FazwnTZtFq/G7wJkBaEnaufJ1B6E9+xHLmJ1aP6iI17td7q+xQORcHO4cqngXa2gK2zcSwnvAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"valopers","path":"gno.land/r/gnoland/valopers/v2","files":[{"name":"init.gno","body":"package valopers\n\nimport \"gno.land/p/demo/avl\"\n\nfunc init() {\n\tvalopers = avl.NewTree()\n}\n"},{"name":"valopers.gno","body":"// Package valopers is designed around the permissionless lifecycle of valoper profiles.\n// It also includes parts designed for govdao to propose valset changes based on registered valopers.\npackage valopers\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\tpVals \"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nconst (\n\terrValoperExists = \"valoper already exists\"\n\terrValoperMissing = \"valoper does not exist\"\n\terrInvalidAddressUpdate = \"valoper updated address exists\"\n\terrValoperNotCaller = \"valoper is not the caller\"\n)\n\n// valopers keeps track of all the active validator operators\nvar valopers *avl.Tree // Address -\u003e Valoper\n\n// Valoper represents a validator operator profile\ntype Valoper struct {\n\tName string // the display name of the valoper\n\tMoniker string // the moniker of the valoper\n\tDescription string // the description of the valoper\n\n\tAddress std.Address // The bech32 gno address of the validator\n\tPubKey string // the bech32 public key of the validator\n\tP2PAddresses []string // the publicly reachable P2P addresses of the validator\n\tActive bool // flag indicating if the valoper is active\n}\n\n// Register registers a new valoper\nfunc Register(v Valoper) {\n\t// Check if the valoper is already registered\n\tif isValoper(v.Address) {\n\t\tpanic(errValoperExists)\n\t}\n\n\t// TODO add address derivation from public key\n\t// (when the laws of gno make it possible)\n\n\t// Save the valoper to the set\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// Update updates an existing valoper\nfunc Update(address std.Address, v Valoper) {\n\t// Check if the valoper is present\n\tif !isValoper(address) {\n\t\tpanic(errValoperMissing)\n\t}\n\n\t// Check that the valoper wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != v.Address\n\tif isAddressUpdate \u0026\u0026 isValoper(v.Address) {\n\t\tpanic(errInvalidAddressUpdate)\n\t}\n\n\t// Remove the old valoper info\n\t// in case the address changed\n\tif address != v.Address {\n\t\tvalopers.Remove(address.String())\n\t}\n\n\t// Save the new valoper info\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// GetByAddr fetches the valoper using the address, if present\nfunc GetByAddr(address std.Address) Valoper {\n\tvaloperRaw, exists := valopers.Get(address.String())\n\tif !exists {\n\t\tpanic(errValoperMissing)\n\t}\n\n\treturn valoperRaw.(Valoper)\n}\n\n// Render renders the current valoper set\nfunc Render(_ string) string {\n\tif valopers.Size() == 0 {\n\t\treturn \"No valopers to display.\"\n\t}\n\n\toutput := \"Valset changes to apply:\\n\"\n\tvalopers.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvaloper := value.(Valoper)\n\n\t\toutput += valoper.Render()\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n\n// Render renders a single valoper with their information\nfunc (v Valoper) Render() string {\n\toutput := ufmt.Sprintf(\"## %s (%s)\\n\", v.Name, v.Moniker)\n\toutput += ufmt.Sprintf(\"%s\\n\\n\", v.Description)\n\toutput += ufmt.Sprintf(\"- Address: %s\\n\", v.Address.String())\n\toutput += ufmt.Sprintf(\"- PubKey: %s\\n\", v.PubKey)\n\toutput += \"- P2P Addresses: [\\n\"\n\n\tif len(v.P2PAddresses) == 0 {\n\t\toutput += \"]\\n\"\n\n\t\treturn output\n\t}\n\n\tfor index, addr := range v.P2PAddresses {\n\t\toutput += addr\n\n\t\tif index == len(v.P2PAddresses)-1 {\n\t\t\toutput += \"]\\n\"\n\n\t\t\tcontinue\n\t\t}\n\n\t\toutput += \",\\n\"\n\t}\n\n\treturn output\n}\n\n// isValoper checks if the valoper exists\nfunc isValoper(address std.Address) bool {\n\t_, exists := valopers.Get(address.String())\n\n\treturn exists\n}\n\n// GovDAOProposal creates a proposal to the GovDAO\n// for adding the given valoper to the validator set.\n// This function is meant to serve as a helper\n// for generating the govdao proposal\nfunc GovDAOProposal(address std.Address) {\n\tvar (\n\t\tvaloper = GetByAddr(address)\n\t\tvotingPower = uint64(1)\n\t)\n\n\t// Make sure the valoper is the caller\n\tif std.GetOrigCaller() != address {\n\t\tpanic(errValoperNotCaller)\n\t}\n\n\t// Determine the voting power\n\tif !valoper.Active {\n\t\tvotingPower = uint64(0)\n\t}\n\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: valoper.Address,\n\t\t\t\tPubKey: valoper.PubKey,\n\t\t\t\tVotingPower: votingPower,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create the executor\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Craft the proposal description\n\tdescription := ufmt.Sprintf(\n\t\t\"Add valoper %s (Address: %s; PubKey: %s) to the valset\",\n\t\tvaloper.Name,\n\t\tvaloper.Address.String(),\n\t\tvaloper.PubKey,\n\t)\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\t// Create the govdao proposal\n\tbridge.GovDAO().Propose(prop)\n}\n"},{"name":"valopers_test.gno","body":"package valopers\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValopers_Register(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"already a valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tvalopers.Set(v.Address.String(), v)\n\n\t\tuassert.PanicsWithMessage(t, errValoperExists, func() {\n\t\t\tRegister(v)\n\t\t})\n\t})\n\n\tt.Run(\"successful registration\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\tName: \"new valoper\",\n\t\t\tMoniker: \"val-1\",\n\t\t\tPubKey: \"pub key\",\n\t\t}\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Address, valoper.Address)\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Moniker, valoper.Moniker)\n\t\t\tuassert.Equal(t, v.PubKey, valoper.PubKey)\n\t\t})\n\t})\n}\n\nfunc TestValopers_Update(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errValoperMissing, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\t})\n\n\tt.Run(\"overwrite valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tone := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper 1\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(one)\n\t\t})\n\n\t\tinitialAddress := testutils.TestAddress(\"valoper 2\")\n\t\ttwo := Valoper{\n\t\t\tAddress: initialAddress,\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(two)\n\t\t})\n\n\t\t// Update the valoper address\n\t\t// so it overlaps\n\t\ttwo = Valoper{\n\t\t\tAddress: one.Address,\n\t\t}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errInvalidAddressUpdate, func() {\n\t\t\tUpdate(initialAddress, two)\n\t\t})\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tvar (\n\t\t\tname = \"new valoper\"\n\t\t\tv = Valoper{\n\t\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\t\tName: name,\n\t\t\t\tPubKey: \"pub key\",\n\t\t\t}\n\t\t)\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\t// Update the valoper name\n\t\tv.Name = \"new name\"\n\t\tv.Active = false\n\n\t\t// Update the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\n\t\t// Make sure the valoper is updated\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Active, valoper.Active)\n\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q+P5R6W8ra34FazwnTZtFq/G7wJkBaEnaufJ1B6E9+xHLmJ1aP6iI17td7q+xQORcHO4cqngXa2gK2zcSwnvAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"valopers","path":"gno.land/r/gnoland/valopers/v2","files":[{"name":"init.gno","body":"package valopers\n\nimport \"gno.land/p/demo/avl\"\n\nfunc init() {\n\tvalopers = avl.NewTree()\n}\n"},{"name":"valopers.gno","body":"// Package valopers is designed around the permissionless lifecycle of valoper profiles.\n// It also includes parts designed for govdao to propose valset changes based on registered valopers.\npackage valopers\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\tpVals \"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nconst (\n\terrValoperExists = \"valoper already exists\"\n\terrValoperMissing = \"valoper does not exist\"\n\terrInvalidAddressUpdate = \"valoper updated address exists\"\n\terrValoperNotCaller = \"valoper is not the caller\"\n)\n\n// valopers keeps track of all the active validator operators\nvar valopers *avl.Tree // Address -\u003e Valoper\n\n// Valoper represents a validator operator profile\ntype Valoper struct {\n\tName string // the display name of the valoper\n\tMoniker string // the moniker of the valoper\n\tDescription string // the description of the valoper\n\n\tAddress std.Address // The bech32 gno address of the validator\n\tPubKey string // the bech32 public key of the validator\n\tP2PAddresses []string // the publicly reachable P2P addresses of the validator\n\tActive bool // flag indicating if the valoper is active\n}\n\n// Register registers a new valoper\nfunc Register(v Valoper) {\n\t// Check if the valoper is already registered\n\tif isValoper(v.Address) {\n\t\tpanic(errValoperExists)\n\t}\n\n\t// TODO add address derivation from public key\n\t// (when the laws of gno make it possible)\n\n\t// Save the valoper to the set\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// Update updates an existing valoper\nfunc Update(address std.Address, v Valoper) {\n\t// Check if the valoper is present\n\tif !isValoper(address) {\n\t\tpanic(errValoperMissing)\n\t}\n\n\t// Check that the valoper wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != v.Address\n\tif isAddressUpdate \u0026\u0026 isValoper(v.Address) {\n\t\tpanic(errInvalidAddressUpdate)\n\t}\n\n\t// Remove the old valoper info\n\t// in case the address changed\n\tif address != v.Address {\n\t\tvalopers.Remove(address.String())\n\t}\n\n\t// Save the new valoper info\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// GetByAddr fetches the valoper using the address, if present\nfunc GetByAddr(address std.Address) Valoper {\n\tvaloperRaw, exists := valopers.Get(address.String())\n\tif !exists {\n\t\tpanic(errValoperMissing)\n\t}\n\n\treturn valoperRaw.(Valoper)\n}\n\n// Render renders the current valoper set\nfunc Render(_ string) string {\n\tif valopers.Size() == 0 {\n\t\treturn \"No valopers to display.\"\n\t}\n\n\toutput := \"Valset changes to apply:\\n\"\n\tvalopers.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvaloper := value.(Valoper)\n\n\t\toutput += valoper.Render()\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n\n// Render renders a single valoper with their information\nfunc (v Valoper) Render() string {\n\toutput := ufmt.Sprintf(\"## %s (%s)\\n\", v.Name, v.Moniker)\n\toutput += ufmt.Sprintf(\"%s\\n\\n\", v.Description)\n\toutput += ufmt.Sprintf(\"- Address: %s\\n\", v.Address.String())\n\toutput += ufmt.Sprintf(\"- PubKey: %s\\n\", v.PubKey)\n\toutput += \"- P2P Addresses: [\\n\"\n\n\tif len(v.P2PAddresses) == 0 {\n\t\toutput += \"]\\n\"\n\n\t\treturn output\n\t}\n\n\tfor index, addr := range v.P2PAddresses {\n\t\toutput += addr\n\n\t\tif index == len(v.P2PAddresses)-1 {\n\t\t\toutput += \"]\\n\"\n\n\t\t\tcontinue\n\t\t}\n\n\t\toutput += \",\\n\"\n\t}\n\n\treturn output\n}\n\n// isValoper checks if the valoper exists\nfunc isValoper(address std.Address) bool {\n\t_, exists := valopers.Get(address.String())\n\n\treturn exists\n}\n\n// GovDAOProposal creates a proposal to the GovDAO\n// for adding the given valoper to the validator set.\n// This function is meant to serve as a helper\n// for generating the govdao proposal\nfunc GovDAOProposal(address std.Address) {\n\tvar (\n\t\tvaloper = GetByAddr(address)\n\t\tvotingPower = uint64(1)\n\t)\n\n\t// Make sure the valoper is the caller\n\tif std.GetOrigCaller() != address {\n\t\tpanic(errValoperNotCaller)\n\t}\n\n\t// Determine the voting power\n\tif !valoper.Active {\n\t\tvotingPower = uint64(0)\n\t}\n\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: valoper.Address,\n\t\t\t\tPubKey: valoper.PubKey,\n\t\t\t\tVotingPower: votingPower,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create the executor\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Craft the proposal description\n\tdescription := ufmt.Sprintf(\n\t\t\"Add valoper %s (Address: %s; PubKey: %s) to the valset\",\n\t\tvaloper.Name,\n\t\tvaloper.Address.String(),\n\t\tvaloper.PubKey,\n\t)\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\t// Create the govdao proposal\n\tbridge.GovDAO().Propose(prop)\n}\n"},{"name":"valopers_test.gno","body":"package valopers\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValopers_Register(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"already a valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tvalopers.Set(v.Address.String(), v)\n\n\t\tuassert.PanicsWithMessage(t, errValoperExists, func() {\n\t\t\tRegister(v)\n\t\t})\n\t})\n\n\tt.Run(\"successful registration\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\tName: \"new valoper\",\n\t\t\tMoniker: \"val-1\",\n\t\t\tPubKey: \"pub key\",\n\t\t}\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Address, valoper.Address)\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Moniker, valoper.Moniker)\n\t\t\tuassert.Equal(t, v.PubKey, valoper.PubKey)\n\t\t})\n\t})\n}\n\nfunc TestValopers_Update(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errValoperMissing, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\t})\n\n\tt.Run(\"overwrite valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tone := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper 1\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(one)\n\t\t})\n\n\t\tinitialAddress := testutils.TestAddress(\"valoper 2\")\n\t\ttwo := Valoper{\n\t\t\tAddress: initialAddress,\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(two)\n\t\t})\n\n\t\t// Update the valoper address\n\t\t// so it overlaps\n\t\ttwo = Valoper{\n\t\t\tAddress: one.Address,\n\t\t}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errInvalidAddressUpdate, func() {\n\t\t\tUpdate(initialAddress, two)\n\t\t})\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tvar (\n\t\t\tname = \"new valoper\"\n\t\t\tv = Valoper{\n\t\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\t\tName: name,\n\t\t\t\tPubKey: \"pub key\",\n\t\t\t}\n\t\t)\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\t// Update the valoper name\n\t\tv.Name = \"new name\"\n\t\tv.Active = false\n\n\t\t// Update the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\n\t\t// Make sure the valoper is updated\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Active, valoper.Active)\n\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q+P5R6W8ra34FazwnTZtFq/G7wJkBaEnaufJ1B6E9+xHLmJ1aP6iI17td7q+xQORcHO4cqngXa2gK2zcSwnvAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"watchdog","path":"gno.land/p/demo/watchdog","files":[{"name":"watchdog.gno","body":"package watchdog\n\nimport \"time\"\n\ntype Watchdog struct {\n\tDuration time.Duration\n\tlastUpdate time.Time\n\tlastDown time.Time\n}\n\nfunc (w *Watchdog) Alive() {\n\tnow := time.Now()\n\tif !w.IsAlive() {\n\t\tw.lastDown = now\n\t}\n\tw.lastUpdate = now\n}\n\nfunc (w Watchdog) Status() string {\n\tif w.IsAlive() {\n\t\treturn \"OK\"\n\t}\n\treturn \"KO\"\n}\n\nfunc (w Watchdog) IsAlive() bool {\n\treturn time.Since(w.lastUpdate) \u003c w.Duration\n}\n\nfunc (w Watchdog) UpSince() time.Time {\n\treturn w.lastDown\n}\n\nfunc (w Watchdog) DownSince() time.Time {\n\tif !w.IsAlive() {\n\t\treturn w.lastUpdate\n\t}\n\treturn time.Time{}\n}\n"},{"name":"watchdog_test.gno","body":"package watchdog\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tw := Watchdog{Duration: 5 * time.Minute}\n\tuassert.False(t, w.IsAlive())\n\tw.Alive()\n\tuassert.True(t, w.IsAlive())\n\t// XXX: add more tests when we'll be able to \"skip time\".\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5i9MoGI/5Ailihk+xIfUe3L0n/onxsJlsoSCe94y0w0rb8j/xS3uKDtaQ1n5IFoomlaemta3kzWktZT7g6E7Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"watchdog","path":"gno.land/p/demo/watchdog","files":[{"name":"watchdog.gno","body":"package watchdog\n\nimport \"time\"\n\ntype Watchdog struct {\n\tDuration time.Duration\n\tlastUpdate time.Time\n\tlastDown time.Time\n}\n\nfunc (w *Watchdog) Alive() {\n\tnow := time.Now()\n\tif !w.IsAlive() {\n\t\tw.lastDown = now\n\t}\n\tw.lastUpdate = now\n}\n\nfunc (w Watchdog) Status() string {\n\tif w.IsAlive() {\n\t\treturn \"OK\"\n\t}\n\treturn \"KO\"\n}\n\nfunc (w Watchdog) IsAlive() bool {\n\treturn time.Since(w.lastUpdate) \u003c w.Duration\n}\n\nfunc (w Watchdog) UpSince() time.Time {\n\treturn w.lastDown\n}\n\nfunc (w Watchdog) DownSince() time.Time {\n\tif !w.IsAlive() {\n\t\treturn w.lastUpdate\n\t}\n\treturn time.Time{}\n}\n"},{"name":"watchdog_test.gno","body":"package watchdog\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tw := Watchdog{Duration: 5 * time.Minute}\n\tuassert.False(t, w.IsAlive())\n\tw.Alive()\n\tuassert.True(t, w.IsAlive())\n\t// XXX: add more tests when we'll be able to \"skip time\".\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5i9MoGI/5Ailihk+xIfUe3L0n/onxsJlsoSCe94y0w0rb8j/xS3uKDtaQ1n5IFoomlaemta3kzWktZT7g6E7Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"watchdog","path":"gno.land/p/demo/watchdog","files":[{"name":"watchdog.gno","body":"package watchdog\n\nimport \"time\"\n\ntype Watchdog struct {\n\tDuration time.Duration\n\tlastUpdate time.Time\n\tlastDown time.Time\n}\n\nfunc (w *Watchdog) Alive() {\n\tnow := time.Now()\n\tif !w.IsAlive() {\n\t\tw.lastDown = now\n\t}\n\tw.lastUpdate = now\n}\n\nfunc (w Watchdog) Status() string {\n\tif w.IsAlive() {\n\t\treturn \"OK\"\n\t}\n\treturn \"KO\"\n}\n\nfunc (w Watchdog) IsAlive() bool {\n\treturn time.Since(w.lastUpdate) \u003c w.Duration\n}\n\nfunc (w Watchdog) UpSince() time.Time {\n\treturn w.lastDown\n}\n\nfunc (w Watchdog) DownSince() time.Time {\n\tif !w.IsAlive() {\n\t\treturn w.lastUpdate\n\t}\n\treturn time.Time{}\n}\n"},{"name":"watchdog_test.gno","body":"package watchdog\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tw := Watchdog{Duration: 5 * time.Minute}\n\tuassert.False(t, w.IsAlive())\n\tw.Alive()\n\tuassert.True(t, w.IsAlive())\n\t// XXX: add more tests when we'll be able to \"skip time\".\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5i9MoGI/5Ailihk+xIfUe3L0n/onxsJlsoSCe94y0w0rb8j/xS3uKDtaQ1n5IFoomlaemta3kzWktZT7g6E7Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"web25","path":"gno.land/p/moul/web25","files":[{"name":"web25.gno","body":"// Pacakge web25 provides an opinionated way to register an external web2\n// frontend to provide a \"better\" web2.5 experience.\npackage web25\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/realmpath\"\n)\n\ntype Config struct {\n\tCID string\n\tURL string\n\tText string\n}\n\nfunc (c *Config) SetRemoteFrontendByURL(url string) {\n\tc.CID = \"\"\n\tc.URL = url\n}\n\nfunc (c *Config) SetRemoteFrontendByCID(cid string) {\n\tc.CID = cid\n\tc.URL = \"\"\n}\n\nfunc (c Config) GetLink() string {\n\tif c.CID != \"\" {\n\t\treturn \"https://ipfs.io/ipfs/\" + c.CID\n\t}\n\treturn c.URL\n}\n\nconst DefaultText = \"Click [here]({link}) to visit the full rendering experience.\\n\"\n\n// Render displays a frontend link at the top of your realm's Render function in\n// a concistent way to help gno visitors to have a consistent experience.\n//\n// if query is not nil, then it will check if it's not disable by ?no-web25, so\n// that you can call the render function from an external point of view.\nfunc (c Config) Render(path string) string {\n\tif realmpath.Parse(path).Query.Get(\"no-web25\") == \"1\" {\n\t\treturn \"\"\n\t}\n\ttext := c.Text\n\tif text == \"\" {\n\t\ttext = DefaultText\n\t}\n\ttext = strings.ReplaceAll(text, \"{link}\", c.GetLink())\n\treturn text\n}\n"},{"name":"web25_test.gno","body":"package web25\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LMhYpALVpwkfIovLcUxgUSorFR2F+L1zIttZaDQWrhnU5DLfZF0eLMo4BUCBYCon+arCmDZGQkOhI1pGby1EBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"wugnot","path":"gno.land/r/demo/wugnot","files":[{"name":"wugnot.gno","body":"package wugnot\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/grc20reg\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar Token, adm = grc20.NewToken(\"wrapped GNOT\", \"wugnot\", 0)\n\nconst (\n\tugnotMinDeposit uint64 = 1000\n\twugnotMinDeposit uint64 = 1\n)\n\nfunc init() {\n\tgetter := func() *grc20.Token { return Token }\n\tgrc20reg.Register(getter, \"\")\n}\n\nfunc Deposit() {\n\tcaller := std.PrevRealm().Addr()\n\tsent := std.GetOrigSend()\n\tamount := sent.AmountOf(\"ugnot\")\n\n\trequire(uint64(amount) \u003e= ugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d ugnot.\", amount, ugnotMinDeposit))\n\n\tcheckErr(adm.Mint(caller, uint64(amount)))\n}\n\nfunc Withdraw(amount uint64) {\n\trequire(amount \u003e= wugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d wugnot.\", amount, wugnotMinDeposit))\n\n\tcaller := std.PrevRealm().Addr()\n\tpkgaddr := std.CurrentRealm().Addr()\n\tcallerBal := Token.BalanceOf(caller)\n\trequire(amount \u003c= callerBal, ufmt.Sprintf(\"Insufficient balance: %d available, %d needed.\", callerBal, amount))\n\n\t// send swapped ugnots to qcaller\n\tstdBanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", int64(amount)}}\n\tstdBanker.SendCoins(pkgaddr, caller, send)\n\tcheckErr(adm.Burn(caller, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\"\n\t}\n}\n\nfunc TotalSupply() uint64 { return Token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn Token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn Token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\nfunc require(condition bool, msg string) {\n\tif !condition {\n\t\tpanic(msg)\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/wugnot_test\npackage wugnot_test\n\nimport (\n\t\"fmt\"\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/wugnot\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\taddr1 = testutils.TestAddress(\"test1\")\n\taddrc = std.DerivePkgAddr(\"gno.land/r/demo/wugnot\")\n\taddrt = std.DerivePkgAddr(\"gno.land/r/demo/wugnot_test\")\n)\n\nfunc main() {\n\tstd.TestSetOrigPkgAddr(addrc)\n\tstd.TestIssueCoins(addrc, std.Coins{{\"ugnot\", 100000001}}) // TODO: remove this\n\n\t// issue ugnots\n\tstd.TestIssueCoins(addr1, std.Coins{{\"ugnot\", 100000001}})\n\n\t// print initial state\n\tprintBalances()\n\t// println(wugnot.Render(\"queues\"))\n\t// println(\"A -\", wugnot.Render(\"\"))\n\n\tstd.TestSetOrigCaller(addr1)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 123_400}}, nil)\n\twugnot.Deposit()\n\tprintBalances()\n\twugnot.Withdraw(4242)\n\tprintBalances()\n}\n\nfunc printBalances() {\n\tprintSingleBalance := func(name string, addr std.Address) {\n\t\twugnotBal := wugnot.BalanceOf(pusers.AddressOrName(addr))\n\t\tstd.TestSetOrigCaller(addr)\n\t\trobanker := std.GetBanker(std.BankerTypeReadonly)\n\t\tcoins := robanker.GetCoins(addr).AmountOf(\"ugnot\")\n\t\tfmt.Printf(\"| %-13s | addr=%s | wugnot=%-5d | ugnot=%-9d |\\n\",\n\t\t\tname, addr, wugnotBal, coins)\n\t}\n\tprintln(\"-----------\")\n\tprintSingleBalance(\"wugnot_test\", addrt)\n\tprintSingleBalance(\"wugnot\", addrc)\n\tprintSingleBalance(\"addr1\", addr1)\n\tprintln(\"-----------\")\n}\n\n// Output:\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=0 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=123400 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=119158 | ugnot=4242 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=99995759 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"03c7MVl3LatZTqHHocqeg0IqHF0TKOoLIbf+1IGBRF/lLa2EHRDc3+WM72Wfc0x5VYV4UT15utM+LpNylsD+BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"wugnot","path":"gno.land/r/demo/wugnot","files":[{"name":"wugnot.gno","body":"package wugnot\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar Token, adm = grc20.NewToken(\"wrapped GNOT\", \"wugnot\", 0)\n\nconst (\n\tugnotMinDeposit uint64 = 1000\n\twugnotMinDeposit uint64 = 1\n)\n\nfunc init() {\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc Deposit() {\n\tcaller := std.PrevRealm().Addr()\n\tsent := std.GetOrigSend()\n\tamount := sent.AmountOf(\"ugnot\")\n\n\trequire(uint64(amount) \u003e= ugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d ugnot.\", amount, ugnotMinDeposit))\n\n\tcheckErr(adm.Mint(caller, uint64(amount)))\n}\n\nfunc Withdraw(amount uint64) {\n\trequire(amount \u003e= wugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d wugnot.\", amount, wugnotMinDeposit))\n\n\tcaller := std.PrevRealm().Addr()\n\tpkgaddr := std.CurrentRealm().Addr()\n\tcallerBal := Token.BalanceOf(caller)\n\trequire(amount \u003c= callerBal, ufmt.Sprintf(\"Insufficient balance: %d available, %d needed.\", callerBal, amount))\n\n\t// send swapped ugnots to qcaller\n\tstdBanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", int64(amount)}}\n\tstdBanker.SendCoins(pkgaddr, caller, send)\n\tcheckErr(adm.Burn(caller, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\"\n\t}\n}\n\nfunc TotalSupply() uint64 { return Token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn Token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn Token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\nfunc require(condition bool, msg string) {\n\tif !condition {\n\t\tpanic(msg)\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/wugnot_test\npackage wugnot_test\n\nimport (\n\t\"fmt\"\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/wugnot\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\taddr1 = testutils.TestAddress(\"test1\")\n\taddrc = std.DerivePkgAddr(\"gno.land/r/demo/wugnot\")\n\taddrt = std.DerivePkgAddr(\"gno.land/r/demo/wugnot_test\")\n)\n\nfunc main() {\n\tstd.TestSetOrigPkgAddr(addrc)\n\tstd.TestIssueCoins(addrc, std.Coins{{\"ugnot\", 100000001}}) // TODO: remove this\n\n\t// issue ugnots\n\tstd.TestIssueCoins(addr1, std.Coins{{\"ugnot\", 100000001}})\n\n\t// print initial state\n\tprintBalances()\n\t// println(wugnot.Render(\"queues\"))\n\t// println(\"A -\", wugnot.Render(\"\"))\n\n\tstd.TestSetOrigCaller(addr1)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 123_400}}, nil)\n\twugnot.Deposit()\n\tprintBalances()\n\twugnot.Withdraw(4242)\n\tprintBalances()\n}\n\nfunc printBalances() {\n\tprintSingleBalance := func(name string, addr std.Address) {\n\t\twugnotBal := wugnot.BalanceOf(pusers.AddressOrName(addr))\n\t\tstd.TestSetOrigCaller(addr)\n\t\trobanker := std.GetBanker(std.BankerTypeReadonly)\n\t\tcoins := robanker.GetCoins(addr).AmountOf(\"ugnot\")\n\t\tfmt.Printf(\"| %-13s | addr=%s | wugnot=%-5d | ugnot=%-9d |\\n\",\n\t\t\tname, addr, wugnotBal, coins)\n\t}\n\tprintln(\"-----------\")\n\tprintSingleBalance(\"wugnot_test\", addrt)\n\tprintSingleBalance(\"wugnot\", addrc)\n\tprintSingleBalance(\"addr1\", addr1)\n\tprintln(\"-----------\")\n}\n\n// Output:\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=0 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=123400 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=119158 | ugnot=4242 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=99995759 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T8BKHaqeMF3gC0BZFx50uSTXH0aBqRzrVDmDKqenRVN2um7gzOrMiMEXubFJEw4AN4qknvjySli5hRr0OqlfBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"wugnot","path":"gno.land/r/demo/wugnot","files":[{"name":"wugnot.gno","body":"package wugnot\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar Token, adm = grc20.NewToken(\"wrapped GNOT\", \"wugnot\", 0)\n\nconst (\n\tugnotMinDeposit uint64 = 1000\n\twugnotMinDeposit uint64 = 1\n)\n\nfunc init() {\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc Deposit() {\n\tcaller := std.PrevRealm().Addr()\n\tsent := std.GetOrigSend()\n\tamount := sent.AmountOf(\"ugnot\")\n\n\trequire(uint64(amount) \u003e= ugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d ugnot.\", amount, ugnotMinDeposit))\n\n\tcheckErr(adm.Mint(caller, uint64(amount)))\n}\n\nfunc Withdraw(amount uint64) {\n\trequire(amount \u003e= wugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d wugnot.\", amount, wugnotMinDeposit))\n\n\tcaller := std.PrevRealm().Addr()\n\tpkgaddr := std.CurrentRealm().Addr()\n\tcallerBal := Token.BalanceOf(caller)\n\trequire(amount \u003c= callerBal, ufmt.Sprintf(\"Insufficient balance: %d available, %d needed.\", callerBal, amount))\n\n\t// send swapped ugnots to qcaller\n\tstdBanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", int64(amount)}}\n\tstdBanker.SendCoins(pkgaddr, caller, send)\n\tcheckErr(adm.Burn(caller, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\"\n\t}\n}\n\nfunc TotalSupply() uint64 { return Token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn Token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn Token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\nfunc require(condition bool, msg string) {\n\tif !condition {\n\t\tpanic(msg)\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/wugnot_test\npackage wugnot_test\n\nimport (\n\t\"fmt\"\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/wugnot\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\taddr1 = testutils.TestAddress(\"test1\")\n\taddrc = std.DerivePkgAddr(\"gno.land/r/demo/wugnot\")\n\taddrt = std.DerivePkgAddr(\"gno.land/r/demo/wugnot_test\")\n)\n\nfunc main() {\n\tstd.TestSetOrigPkgAddr(addrc)\n\tstd.TestIssueCoins(addrc, std.Coins{{\"ugnot\", 100000001}}) // TODO: remove this\n\n\t// issue ugnots\n\tstd.TestIssueCoins(addr1, std.Coins{{\"ugnot\", 100000001}})\n\n\t// print initial state\n\tprintBalances()\n\t// println(wugnot.Render(\"queues\"))\n\t// println(\"A -\", wugnot.Render(\"\"))\n\n\tstd.TestSetOrigCaller(addr1)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 123_400}}, nil)\n\twugnot.Deposit()\n\tprintBalances()\n\twugnot.Withdraw(4242)\n\tprintBalances()\n}\n\nfunc printBalances() {\n\tprintSingleBalance := func(name string, addr std.Address) {\n\t\twugnotBal := wugnot.BalanceOf(pusers.AddressOrName(addr))\n\t\tstd.TestSetOrigCaller(addr)\n\t\trobanker := std.GetBanker(std.BankerTypeReadonly)\n\t\tcoins := robanker.GetCoins(addr).AmountOf(\"ugnot\")\n\t\tfmt.Printf(\"| %-13s | addr=%s | wugnot=%-5d | ugnot=%-9d |\\n\",\n\t\t\tname, addr, wugnotBal, coins)\n\t}\n\tprintln(\"-----------\")\n\tprintSingleBalance(\"wugnot_test\", addrt)\n\tprintSingleBalance(\"wugnot\", addrc)\n\tprintSingleBalance(\"addr1\", addr1)\n\tprintln(\"-----------\")\n}\n\n// Output:\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=0 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=123400 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=119158 | ugnot=4242 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=99995759 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T8BKHaqeMF3gC0BZFx50uSTXH0aBqRzrVDmDKqenRVN2um7gzOrMiMEXubFJEw4AN4qknvjySli5hRr0OqlfBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"wugnot","path":"gno.land/r/demo/wugnot","files":[{"name":"wugnot.gno","body":"package wugnot\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar Token, adm = grc20.NewToken(\"wrapped GNOT\", \"wugnot\", 0)\n\nconst (\n\tugnotMinDeposit uint64 = 1000\n\twugnotMinDeposit uint64 = 1\n)\n\nfunc init() {\n\t// XXX: grc20reg.Register(Token, \"\")\n}\n\nfunc Deposit() {\n\tcaller := std.PrevRealm().Addr()\n\tsent := std.GetOrigSend()\n\tamount := sent.AmountOf(\"ugnot\")\n\n\trequire(uint64(amount) \u003e= ugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d ugnot.\", amount, ugnotMinDeposit))\n\n\tcheckErr(adm.Mint(caller, uint64(amount)))\n}\n\nfunc Withdraw(amount uint64) {\n\trequire(amount \u003e= wugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d wugnot.\", amount, wugnotMinDeposit))\n\n\tcaller := std.PrevRealm().Addr()\n\tpkgaddr := std.CurrentRealm().Addr()\n\tcallerBal := Token.BalanceOf(caller)\n\trequire(amount \u003c= callerBal, ufmt.Sprintf(\"Insufficient balance: %d available, %d needed.\", callerBal, amount))\n\n\t// send swapped ugnots to qcaller\n\tstdBanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", int64(amount)}}\n\tstdBanker.SendCoins(pkgaddr, caller, send)\n\tcheckErr(adm.Burn(caller, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\"\n\t}\n}\n\nfunc TotalSupply() uint64 { return Token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn Token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn Token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\nfunc require(condition bool, msg string) {\n\tif !condition {\n\t\tpanic(msg)\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/wugnot_test\npackage wugnot_test\n\nimport (\n\t\"fmt\"\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/wugnot\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\taddr1 = testutils.TestAddress(\"test1\")\n\taddrc = std.DerivePkgAddr(\"gno.land/r/demo/wugnot\")\n\taddrt = std.DerivePkgAddr(\"gno.land/r/demo/wugnot_test\")\n)\n\nfunc main() {\n\tstd.TestSetOrigPkgAddr(addrc)\n\tstd.TestIssueCoins(addrc, std.Coins{{\"ugnot\", 100000001}}) // TODO: remove this\n\n\t// issue ugnots\n\tstd.TestIssueCoins(addr1, std.Coins{{\"ugnot\", 100000001}})\n\n\t// print initial state\n\tprintBalances()\n\t// println(wugnot.Render(\"queues\"))\n\t// println(\"A -\", wugnot.Render(\"\"))\n\n\tstd.TestSetOrigCaller(addr1)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 123_400}}, nil)\n\twugnot.Deposit()\n\tprintBalances()\n\twugnot.Withdraw(4242)\n\tprintBalances()\n}\n\nfunc printBalances() {\n\tprintSingleBalance := func(name string, addr std.Address) {\n\t\twugnotBal := wugnot.BalanceOf(pusers.AddressOrName(addr))\n\t\tstd.TestSetOrigCaller(addr)\n\t\trobanker := std.GetBanker(std.BankerTypeReadonly)\n\t\tcoins := robanker.GetCoins(addr).AmountOf(\"ugnot\")\n\t\tfmt.Printf(\"| %-13s | addr=%s | wugnot=%-5d | ugnot=%-9d |\\n\",\n\t\t\tname, addr, wugnotBal, coins)\n\t}\n\tprintln(\"-----------\")\n\tprintSingleBalance(\"wugnot_test\", addrt)\n\tprintSingleBalance(\"wugnot\", addrc)\n\tprintSingleBalance(\"addr1\", addr1)\n\tprintln(\"-----------\")\n}\n\n// Output:\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=0 | ugnot=200000000 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=123400 | ugnot=200000000 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=119158 | ugnot=200004242 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=99995759 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KFJIqnWkbRjFcyXKTrnbybvf3DF7OQ1OEzzMuCKbr/p9e2AXSy8idRqBPTbVRO1JXF20TT5p26V91Z4HQg7KDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"xorshift64star","path":"gno.land/p/wyhaines/rand/xorshift64star","files":[{"name":"xorshift64star.gno","body":"// Xorshift64* is a very fast psuedo-random number generation algorithm with strong\n// statistical properties.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementatoon, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the Xorshift64* PRNG algorithm. This algorithm provides\n// strong statistical performance with most seeds (just don't seed it with zero), and the performance\n// of this implementation in Gno is more than four times faster than the default PCG implementation in\n// `math/rand`.\n//\n//\tBenchmark\n//\t---------\n//\tPCG: 1000000 Uint64 generated in 15.58s\n//\tXorshift64*: 1000000 Uint64 generated in 3.77s\n//\tRatio: x4.11 times faster than PCG\n//\n// Use it directly:\n//\n//\tprng = xorshift64star.New() // pass a uint64 to seed it or pass nothing to seed it with entropy\n//\n// Or use it as a drop-in replacement for the default PRNT in Rand:\n//\n//\tsource = xorshift64star.New()\n//\tprng := rand.New(source)\npackage xorshift64star\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Xorshift64Star is a PRNG that implements the Xorshift64* algorithm.\ntype Xorshift64Star struct {\n\tseed uint64\n}\n\n// New() creates a new instance of the PRNG with a given seed, which\n// should be a uint64. If no seed is provided, the PRNG will be seeded via the\n// gno.land/p/demo/entropy package.\nfunc New(seed ...uint64) *Xorshift64Star {\n\txs := \u0026Xorshift64Star{}\n\txs.Seed(seed...)\n\treturn xs\n}\n\n// Seed() implements the rand.Source interface. It provides a way to set the seed for the PRNG.\nfunc (xs *Xorshift64Star) Seed(seed ...uint64) {\n\tif len(seed) == 0 {\n\t\te := entropy.New()\n\t\txs.seed = e.Value64()\n\t} else {\n\t\txs.seed = seed[0]\n\t}\n}\n\n// beUint64() decodes a uint64 from a set of eight bytes, assuming big endian encoding.\n// binary.bigEndian.Uint64, copied to avoid dependency\nfunc beUint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[7]) | uint64(b[6])\u003c\u003c8 | uint64(b[5])\u003c\u003c16 | uint64(b[4])\u003c\u003c24 |\n\t\tuint64(b[3])\u003c\u003c32 | uint64(b[2])\u003c\u003c40 | uint64(b[1])\u003c\u003c48 | uint64(b[0])\u003c\u003c56\n}\n\n// bePutUint64() encodes a uint64 into a buffer of eight bytes.\n// binary.bigEndian.PutUint64, copied to avoid dependency\nfunc bePutUint64(b []byte, v uint64) {\n\t_ = b[7] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 56)\n\tb[1] = byte(v \u003e\u003e 48)\n\tb[2] = byte(v \u003e\u003e 40)\n\tb[3] = byte(v \u003e\u003e 32)\n\tb[4] = byte(v \u003e\u003e 24)\n\tb[5] = byte(v \u003e\u003e 16)\n\tb[6] = byte(v \u003e\u003e 8)\n\tb[7] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalXorshift64StarLabel = []byte(\"xorshift64*:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (xs *Xorshift64Star) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 20)\n\tcopy(b, marshalXorshift64StarLabel)\n\tbePutUint64(b[12:], xs.seed)\n\treturn b, nil\n}\n\n// errUnmarshalXorshift64Star is returned when unmarshalling fails.\nvar errUnmarshalXorshift64Star = errors.New(\"invalid Xorshift64* encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (xs *Xorshift64Star) UnmarshalBinary(data []byte) error {\n\tif len(data) != 20 || string(data[:12]) != string(marshalXorshift64StarLabel) {\n\t\treturn errUnmarshalXorshift64Star\n\t}\n\txs.seed = beUint64(data[12:])\n\treturn nil\n}\n\n// Uint64() generates the next random uint64 value.\nfunc (xs *Xorshift64Star) Uint64() uint64 {\n\txs.seed ^= xs.seed \u003e\u003e 12\n\txs.seed ^= xs.seed \u003c\u003c 25\n\txs.seed ^= xs.seed \u003e\u003e 27\n\txs.seed *= 2685821657736338717\n\treturn xs.seed // Operations naturally wrap around in uint64\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkXorshift64Star()' xorshift64star.gno\nfunc benchmarkXorshift64Star(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs64s := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = xs64s.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64*: generate %d uint64\\n\", iterations))\n}\n\n// The averageXorshift64Star() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the Xorshift64* PRNG.\nfunc averageXorshift64Star(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs64s := New()\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := xs64s.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64* average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64* standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64* theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"xorshift64star_test.gno","body":"package xorshift64star\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\nfunc TestXorshift64StarSeeding(t *testing.T) {\n\txs64s := New()\n\tvalue1 := xs64s.Uint64()\n\n\txs64s = New(987654321)\n\tvalue2 := xs64s.Uint64()\n\n\tif value1 != 5083824587905981259 || value2 != 18211065302896784785 || value1 == value2 {\n\t\tt.Errorf(\"Expected 5083824587905981259 to be != to 18211065302896784785; got: %d == %d\", value1, value2)\n\t}\n}\n\nfunc TestXorshift64StarRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t.8344002228310946,\n\t\t0.01777174153236205,\n\t\t0.23521769507865276,\n\t\t0.5387610198576143,\n\t\t0.631539862225968,\n\t\t0.9369068148346704,\n\t\t0.6387002315083188,\n\t\t0.5047507613688854,\n\t\t0.5208486273732391,\n\t\t0.25023746271541747,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshift64StarUint64(t *testing.T) {\n\txs64s := New()\n\n\texpected := []uint64{\n\t\t5083824587905981259,\n\t\t4607286371009545754,\n\t\t2070557085263023674,\n\t\t14094662988579565368,\n\t\t2910745910478213381,\n\t\t18037409026311016155,\n\t\t17169624916429864153,\n\t\t10459214929523155306,\n\t\t11840179828060641081,\n\t\t1198750959721587199,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := xs64s.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshift64Star.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshift64StarMarshalUnmarshal(t *testing.T) {\n\txs64s := New()\n\n\texpected1 := []uint64{\n\t\t5083824587905981259,\n\t\t4607286371009545754,\n\t\t2070557085263023674,\n\t\t14094662988579565368,\n\t\t2910745910478213381,\n\t}\n\n\texpected2 := []uint64{\n\t\t18037409026311016155,\n\t\t17169624916429864153,\n\t\t10459214929523155306,\n\t\t11840179828060641081,\n\t\t1198750959721587199,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := xs64s.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshift64Star.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := xs64s.MarshalBinary()\n\n\tt.Logf(\"Original State: [%x]\\n\", xs64s.seed)\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := xs64s.seed\n\n\tif err != nil {\n\t\tt.Errorf(\"Xorshift64Star.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\txs64s.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := xs64s.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%x]\\n\", xs64s.seed)\n\n\t// Now restore the state of the PRNG\n\terr = xs64s.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%x]\\n\", xs64s.seed)\n\n\tif state_before != xs64s.seed {\n\t\tt.Errorf(\"States before and after marshal/unmarshal are not equal; go %x and %x\", state_before, xs64s.seed)\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := xs64s.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshift64Star.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8DlFERpzV9gNuk9miK9uWhgjAnjnHGlJEWoWnTOpKHU+yNLFB8D33TNwWhM4J4f1k7WiczmV84QAHhSUC+n4Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","package":{"name":"xorshiftr128plus","path":"gno.land/p/wyhaines/rand/xorshiftr128plus","files":[{"name":"xorshiftr128plus.gno","body":"// Xorshiftr128+ is a very fast psuedo-random number generation algorithm with strong\n// statistical properties.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementatoon, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the Xorshiftr128+ PRNG algorithm. This algorithm provides\n// strong statistical performance with most seeds (just don't seed it with zeros), and the performance\n// of this implementation in Gno is more than four times faster than the default PCG implementation in\n// `math/rand`.\n//\n//\tBenchmark\n//\t---------\n//\tPCG: 1000000 Uint64 generated in 15.48s\n//\tXorshiftr128+: 1000000 Uint64 generated in 3.22s\n//\tRatio: x4.81 times faster than PCG\n//\n// Use it directly:\n//\n//\tprng = xorshiftr128plus.New() // pass a uint64 to seed it or pass nothing to seed it with entropy\n//\n// Or use it as a drop-in replacement for the default PRNT in Rand:\n//\n//\tsource = xorshiftr128plus.New()\n//\tprng := rand.New(source)\npackage xorshiftr128plus\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Xorshiftr128Plus struct {\n\tseed [2]uint64 // Seeds\n}\n\nfunc New(seeds ...uint64) *Xorshiftr128Plus {\n\tvar s1, s2 uint64\n\tseed_length := len(seeds)\n\tif seed_length \u003c 2 {\n\t\te := entropy.New()\n\t\tif seed_length == 0 {\n\t\t\ts1 = e.Value64()\n\t\t\ts2 = e.Value64()\n\t\t} else {\n\t\t\ts1 = seeds[0]\n\t\t\ts2 = e.Value64()\n\t\t}\n\t} else {\n\t\ts1 = seeds[0]\n\t\ts2 = seeds[1]\n\t}\n\n\tprng := \u0026Xorshiftr128Plus{}\n\tprng.Seed(s1, s2)\n\treturn prng\n}\n\nfunc (x *Xorshiftr128Plus) Seed(s1, s2 uint64) {\n\tif s1 == 0 \u0026\u0026 s2 == 0 {\n\t\tpanic(\"Seeds must not both be zero\")\n\t}\n\tx.seed[0] = s1\n\tx.seed[1] = s2\n}\n\n// beUint64() decodes a uint64 from a set of eight bytes, assuming big endian encoding.\n// binary.bigEndian.Uint64, copied to avoid dependency\nfunc beUint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[7]) | uint64(b[6])\u003c\u003c8 | uint64(b[5])\u003c\u003c16 | uint64(b[4])\u003c\u003c24 |\n\t\tuint64(b[3])\u003c\u003c32 | uint64(b[2])\u003c\u003c40 | uint64(b[1])\u003c\u003c48 | uint64(b[0])\u003c\u003c56\n}\n\n// bePutUint64() encodes a uint64 into a buffer of eight bytes.\n// binary.bigEndian.PutUint64, copied to avoid dependency\nfunc bePutUint64(b []byte, v uint64) {\n\t_ = b[7] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 56)\n\tb[1] = byte(v \u003e\u003e 48)\n\tb[2] = byte(v \u003e\u003e 40)\n\tb[3] = byte(v \u003e\u003e 32)\n\tb[4] = byte(v \u003e\u003e 24)\n\tb[5] = byte(v \u003e\u003e 16)\n\tb[6] = byte(v \u003e\u003e 8)\n\tb[7] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalXorshiftr128PlusLabel = []byte(\"xorshiftr128+:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (xs *Xorshiftr128Plus) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 30)\n\tcopy(b, marshalXorshiftr128PlusLabel)\n\tbePutUint64(b[14:], xs.seed[0])\n\tbePutUint64(b[22:], xs.seed[1])\n\treturn b, nil\n}\n\n// errUnmarshalXorshiftr128Plus is returned when unmarshalling fails.\nvar errUnmarshalXorshiftr128Plus = errors.New(\"invalid Xorshiftr128Plus encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (xs *Xorshiftr128Plus) UnmarshalBinary(data []byte) error {\n\tif len(data) != 30 || string(data[:14]) != string(marshalXorshiftr128PlusLabel) {\n\t\treturn errUnmarshalXorshiftr128Plus\n\t}\n\txs.seed[0] = beUint64(data[14:])\n\txs.seed[1] = beUint64(data[22:])\n\treturn nil\n}\n\nfunc (x *Xorshiftr128Plus) Uint64() uint64 {\n\tx0 := x.seed[0]\n\tx1 := x.seed[1]\n\tx.seed[0] = x1\n\tx0 ^= x0 \u003c\u003c 23\n\tx0 ^= x0 \u003e\u003e 17\n\tx0 ^= x1\n\tx.seed[1] = x0 + x1\n\treturn x.seed[1]\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkXorshiftr128Plus()' xorshiftr128plus.gno\nfunc benchmarkXorshiftr128Plus(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs128p := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = xs128p.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128Plus: generate %d uint64\\n\", iterations))\n}\n\n// The averageXorshiftr128Plus() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the Xorshiftr128+ PRNG.\nfunc averageXorshiftr128Plus(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs128p := New()\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := xs128p.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128+ average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128+ standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128+ theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"xorshiftr128plus_test.gno","body":"package xorshiftr128plus\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\nfunc TestXorshift64StarSeeding(t *testing.T) {\n\txs128p := New()\n\tvalue1 := xs128p.Uint64()\n\n\txs128p = New(987654321)\n\tvalue2 := xs128p.Uint64()\n\n\txs128p = New(987654321, 9876543210)\n\tvalue3 := xs128p.Uint64()\n\n\tif value1 != 13970141264473760763 ||\n\t\tvalue2 != 17031892808144362974 ||\n\t\tvalue3 != 8285073084540510 ||\n\t\tvalue1 == value2 ||\n\t\tvalue2 == value3 ||\n\t\tvalue1 == value3 {\n\t\tt.Errorf(\"Expected three different values: 13970141264473760763, 17031892808144362974, and 8285073084540510\\n got: %d, %d, %d\", value1, value2, value3)\n\t}\n}\n\nfunc TestXorshiftr128PlusRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t0.9199548549485674,\n\t\t0.0027491282372705816,\n\t\t0.31493362274701164,\n\t\t0.3531250819119609,\n\t\t0.09957852858060356,\n\t\t0.731941362705936,\n\t\t0.3476937688876708,\n\t\t0.1444018086140385,\n\t\t0.9106467321832331,\n\t\t0.8024870151488901,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshiftr128PlusUint64(t *testing.T) {\n\txs128p := New(987654321, 9876543210)\n\n\texpected := []uint64{\n\t\t8285073084540510,\n\t\t97010855169053386,\n\t\t11353359435625603792,\n\t\t10289232744262291728,\n\t\t14019961444418950453,\n\t\t15829492476941720545,\n\t\t2764732928842099222,\n\t\t6871047144273883379,\n\t\t16142204260470661970,\n\t\t11803223757041229095,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := xs128p.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshiftr128Plus.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshiftr128PlusMarshalUnmarshal(t *testing.T) {\n\txs128p := New(987654321, 9876543210)\n\n\texpected1 := []uint64{\n\t\t8285073084540510,\n\t\t97010855169053386,\n\t\t11353359435625603792,\n\t\t10289232744262291728,\n\t\t14019961444418950453,\n\t}\n\n\texpected2 := []uint64{\n\t\t15829492476941720545,\n\t\t2764732928842099222,\n\t\t6871047144273883379,\n\t\t16142204260470661970,\n\t\t11803223757041229095,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := xs128p.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshiftr128Plus.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := xs128p.MarshalBinary()\n\n\tt.Logf(\"Original State: [%x]\\n\", xs128p.seed)\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := xs128p.seed\n\n\tif err != nil {\n\t\tt.Errorf(\"Xorshiftr128Plus.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\txs128p.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := xs128p.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%x]\\n\", xs128p.seed)\n\n\t// Now restore the state of the PRNG\n\terr = xs128p.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%x]\\n\", xs128p.seed)\n\n\tif state_before != xs128p.seed {\n\t\tt.Errorf(\"States before and after marshal/unmarshal are not equal; go %x and %x\", state_before, xs128p.seed)\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := xs128p.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshiftr128Plus.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wi12WuzzBuZ4V63p4oEOdlqjxhvQGJu+o8r/Q+d2IUX9+xb8TH5K7anTe5Vw5vnK3SeN3bG4wGyz5e497f3fDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Je5NIdlRFHJvjVyoKgf0twUP+7xQxoV7HnoTwmJRmVAztATinDfuxAutKee5vQMdTHA5xWbIJvQKyQ31e3ElBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Je5NIdlRFHJvjVyoKgf0twUP+7xQxoV7HnoTwmJRmVAztATinDfuxAutKee5vQMdTHA5xWbIJvQKyQ31e3ElBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Je5NIdlRFHJvjVyoKgf0twUP+7xQxoV7HnoTwmJRmVAztATinDfuxAutKee5vQMdTHA5xWbIJvQKyQ31e3ElBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Je5NIdlRFHJvjVyoKgf0twUP+7xQxoV7HnoTwmJRmVAztATinDfuxAutKee5vQMdTHA5xWbIJvQKyQ31e3ElBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Je5NIdlRFHJvjVyoKgf0twUP+7xQxoV7HnoTwmJRmVAztATinDfuxAutKee5vQMdTHA5xWbIJvQKyQ31e3ElBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Je5NIdlRFHJvjVyoKgf0twUP+7xQxoV7HnoTwmJRmVAztATinDfuxAutKee5vQMdTHA5xWbIJvQKyQ31e3ElBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"reDM24ut94AgY/M0+xzXhAZVd2I7KzneaUXiqHu030OoD5Gp5B8TVxcNdMYfKzK+bJg3UwZvwDAKTYYzWNdQBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","package":{"name":"counter","path":"gno.land/p//counter","files":[{"name":"package.gno","body":"package counter\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n\tcount++\n}\n\nfunc Decrement() {\n\tcount--\n}\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"Count: %d\", count)\n}\n\n// How-to: Write a simple Gno Smart Contract (Realm)"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ixEmFRXWrp/a8EdfvUuymyJN3jEDhckvmMnkEVQgACkaqzw70VqbeAyE2LADeEabcl1kRcv52o5dMHSLdCkOAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","package":{"name":"counter","path":"gno.land/r//counter","files":[{"name":"counter.gno","body":"package counter\r\n\r\nimport (\r\n \"gno.land/p/demo/ufmt\"\r\n)\r\n\r\nvar count int\r\n\r\nfunc Increment() {\r\n count++\r\n}\r\n\r\nfunc Decrement() {\r\n count--\r\n}\r\n\r\nfunc Render(_ string) string {\r\n return ufmt.Sprintf(\"Count: %d\", count)\r\n}\r\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aSOabKjmykY7cddMeedrHvpTZT8G0qLjDqn7o8wJvLOmgFggTej8kzcFv1AfSKym7G2vdrGykVVyKxXporGdBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","package":{"name":"counter","path":"gno.land/r//counter","files":[{"name":"counter.gno","body":"package counter\r\n\r\nimport (\r\n \"gno.land/p/demo/ufmt\"\r\n)\r\n\r\nvar count int\r\n\r\nfunc Increment() {\r\n count++\r\n}\r\n\r\nfunc Decrement() {\r\n count--\r\n}\r\n\r\nfunc Render(_ string) string {\r\n return ufmt.Sprintf(\"Count: %d\", count)\r\n}\r\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aSOabKjmykY7cddMeedrHvpTZT8G0qLjDqn7o8wJvLOmgFggTej8kzcFv1AfSKym7G2vdrGykVVyKxXporGdBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","package":{"name":"counter","path":"gno.land/r//counter","files":[{"name":"package.gno","body":"package counter\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n\tcount++\n}\n\nfunc Decrement() {\n\tcount--\n}\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"Count: %d\", count)\n}\n\n// How-to: Write a simple Gno Smart Contract (Realm)"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sR2Q7scK7/3l3ZnTRQM5Tw95w+HRtCeXtnKoQQk2Y5EClNIVEcilN457P5S2IpSMYvf2S0z/BAlRdAp3p5QlBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","package":{"name":"counter","path":"gno.land/r//counter","files":[{"name":"package.gno","body":"package counter\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n\tcount++\n}\n\nfunc Decrement() {\n\tcount--\n}\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"Count: %d\", count)\n}\n\n// How-to: Write a simple Gno Smart Contract (Realm)"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sR2Q7scK7/3l3ZnTRQM5Tw95w+HRtCeXtnKoQQk2Y5EClNIVEcilN457P5S2IpSMYvf2S0z/BAlRdAp3p5QlBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","package":{"name":"hello","path":"gno.land/r/demo/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L1CFyUwnnO5wemTxO1AuR0VqI4YyIZFEl+IF/gfam+baeEaSl4XuNxvGgrI8lBzlCaZs6lQIqnPcj15VfSHmDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kgsrnpjurv6a5uw55s08a6ujcxx3sekn59nfd6","package":{"name":"maini","path":"gno.land/r/doniacld/maini","files":[{"name":"package.gno","body":"package maini\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\n\trc := raffle.RegisterCode(\"ESSTiVMoWb\")\n\tprintln(rc)\n\tru := raffle.RegisterUsername(\"doniacld\")\n\tprintln(ru)\n\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b6MA0f7waz3Rv/KzlFS5IYlmRqzsKISBezTxBveHzpvtWF3CFLgCn5QGc1df4gbufpSoaG2DT1tUKtPPW/fVDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","package":{"name":"counter","path":"gno.land/r/demoyy/counter","files":[{"name":"counter.gno","body":"package counter\n\nimport (\n \"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n count++\n}\n\nfunc Decrement() {\n count--\n}\n\nfunc Render(_ string) string {\n return ufmt.Sprintf(\"Count: %d\", count)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Kx0eV3uxfEb7ZRw42baWRIz7ysAkvU/Mk6y0dqHNTfKh3mFAq3PyrvJ7cl3nKL77wymS/v8g4EAA7w+93c5DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","package":{"name":"counter","path":"gno.land/r/demoyy/counter","files":[{"name":"counter.gno","body":"package counter\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n\tcount++\n}\n\nfunc Decrement() {\n\tcount--\n}\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"Count: %d\", count)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"34FJOow2X3nWXjCg25iBdIcVNTCEjSwAnzlRxY0rAstepuXKEC0y8EmBB1zWhoWgc/rhk4MFtJnxhUqboDFOAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello \" + path + \"!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Urrn7zTFVNQSQN/iEKqQBIPNRR3/WVKqcL/qy0v8L5G8/AHN1nYGtc+vUNwmOozm8XPslQ4iMrOu005VM/8DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello \" + path + \"!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Urrn7zTFVNQSQN/iEKqQBIPNRR3/WVKqcL/qy0v8L5G8/AHN1nYGtc+vUNwmOozm8XPslQ4iMrOu005VM/8DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello yieazy: \" + path + \"!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rGz1nB5jD1v2hxUmWa6k1VjDECzDKngkhKccqX87Nv2PJnIqyXMlqSY2UaxlEbJOEtGhGSPEvyZuQKmJnvJ1AA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","package":{"name":"hello","path":"gno.land/r//hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello yieazy: \" + path + \"!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rGz1nB5jD1v2hxUmWa6k1VjDECzDKngkhKccqX87Nv2PJnIqyXMlqSY2UaxlEbJOEtGhGSPEvyZuQKmJnvJ1AA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/p/Olawale22/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vJZW1tKySk30o1nMkYIYtZ58NtfPChyTvw7IeScz7WrGK8PzQY+n3frhnTcu666n1FLUsBrtl2rGFUqnj5XhAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/p/Olawale22/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vJZW1tKySk30o1nMkYIYtZ58NtfPChyTvw7IeScz7WrGK8PzQY+n3frhnTcu666n1FLUsBrtl2rGFUqnj5XhAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/p/Olawale22/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vJZW1tKySk30o1nMkYIYtZ58NtfPChyTvw7IeScz7WrGK8PzQY+n3frhnTcu666n1FLUsBrtl2rGFUqnj5XhAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/p/Olawale22/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n\n\n#usage run app using \"func main()\" below, but endeavor to change \"package mail\" from above to \"package main\"\n\nfunc main() {\n\tmsg := `From: user@example.com\nTo: another@example.com\nSubject: Test email\n\nThis is the body of the email.`\n\temail, err := ReadMessage(msg)\n\tif err != nil {\n\t\tfmt.Println(\"Error:\", err)\n\t\treturn\n\t}\n\n\tfmt.Println(\"From:\", email.Header[\"From\"])\n\tfmt.Println(\"To:\", email.Header[\"To\"])\n\tfmt.Println(\"Subject:\", email.Header[\"Subject\"])\n\tfmt.Println(\"Body:\", email.Body)\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GMlVQcwrJfhjCmgkfiCKQ9DEfvEeuU3LM1nf3WBC2ZevzJiEMEJR2dgEHO1O+ZAFi1du4oml2UpGtOuljcASCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/p/olawale22/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RTIqo1Lzk5MQ7mdznXXU3n95ubiMfnUOMOv0/NKcGTp6gLC02vs7S/s0QyxoFFsYilJegEwzMScyl7fj6V+IDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/p/sulaiman/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mkx5lU0qa07Hz2mJDgDpcg5W/17Q7XXwNqUmPzzQ5ZZ5rtG3HvOqJ/T2TR51i55zr61weqJF9q9H++gSXjYEDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/r/Olawale22/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n\n\n#usage run app using \"func main()\" below, but endeavor to change \"package mail\" from above to \"package main\"\n\nfunc main() {\n\tmsg := `From: user@example.com\nTo: another@example.com\nSubject: Test email\n\nThis is the body of the email.`\n\temail, err := ReadMessage(msg)\n\tif err != nil {\n\t\tfmt.Println(\"Error:\", err)\n\t\treturn\n\t}\n\n\tfmt.Println(\"From:\", email.Header[\"From\"])\n\tfmt.Println(\"To:\", email.Header[\"To\"])\n\tfmt.Println(\"Subject:\", email.Header[\"Subject\"])\n\tfmt.Println(\"Body:\", email.Body)\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EPMFLt9523QOmm7pbcRUexDblVC5MosnCiwr4xNqj4A3ah7+9zwmRXXIOC6Mt7dyCQ661treQl9NiVm0DCSECg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/r/demo/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xhMeYykpty4bQUAPRl5jDax8uzE4yIrXygi7kH0PdUV3Qe49Wg42eIoblVVl1JWmWaJqmSgtFDVZqCFXJPWMAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1kw6jg3yjsvgycverrmyn7k6mldnu6e3pe42n6q","package":{"name":"mail","path":"gno.land/r/demo/mail","files":[{"name":"package.gno","body":"package mail\n\nimport (\n\t\"strings\"\n)\n\ntype Mail struct {\n\tHeader map[string]string\n\tBody string\n}\n\nfunc ReadMessage(msg string) (*Mail, error) {\n\tlines := strings.Split(msg, \"\\n\")\n\tmail := \u0026Mail{Header: make(map[string]string)}\n\n\tisBody := false\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tisBody = true\n\t\t\tcontinue\n\t\t}\n\t\tif isBody {\n\t\t\tmail.Body += line + \"\\n\"\n\t\t} else {\n\t\t\tparts := strings.SplitN(line, \": \", 2)\n\t\t\tif len(parts) == 2 {\n\t\t\t\tmail.Header[parts[0]] = parts[1]\n\t\t\t}\n\t\t}\n\t}\n\treturn mail, nil\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9NbBlsuCISerAED7HFU7ErCRt4o66Cxpf/UzeXQIVrdBVfeGeEG18lP3WgPqfSuK7PPGnCey94VRcYE4lpSYAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"TacoBell","path":"gno.land/r/nprimmer/TacoBell","files":[{"name":"package.gno","body":"package main\n\nimport (\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc TacoBell(input string) {\n raffle.RegisterCode(input)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+oMmjzPjO6GR5Z4XRfn8yvBpR3LqKdHEcQS2Jq57vaaB38wL0XPbO1xpKwX85WBZm9dR+NdSDgtc+MLCge8kAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"main","path":"gno.land/r/nprimmer/main","files":[{"name":"package.gno","body":"package main\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc main() {\n\traffle.RegisterCode(\"MZkDw5z7g8\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dtYDPoQTUbMxlDSuKpAezYSjDnowk35j6nlWnh84rY0oS3BX4ZY3dEoMQkuGEsfg47VrDeicgaahhO8WuAjKBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"raffle","path":"gno.land/r/nprimmer/raffle","files":[{"name":"package.gno","body":"package main\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc TacoBell(code string, username string) {\n\traffle.RegisterCode(code)\n\traffle.RegisterUsername(username)\n}\n\nfunc init() {\n\tTacoBell(\"MZkDw5z7g8\", \"nprimmer\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i+QEiszfSVBM4ptMrBTFMZ3un5FJ92NH2vRkcJhjVp4t1N1tK179ZFgx/nWVBcGz6FT7SwdPvosEdO8cQqZaBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"raffle","path":"gno.land/r/nprimmer/raffle","files":[{"name":"package.gno","body":"package main\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc TacoBell(input string) {\n\traffle.RegisterCode(input)\n}\n\nfunc init() {\n\tTacoBell(\"MZkDw5z7g8\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U1sArUtIyxI1T1aFwPl801LrpbJCXhQVsv8r5O3HJSOBU+7Uek5k7DIdT3T0Nlu1lhIwhVM85oaidL4Bn9SMBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"raffle","path":"gno.land/r/nprimmer/raffle","files":[{"name":"package.gno","body":"package main\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc TacoBell(input string) {\n\traffle.RegisterCode(input)\n}\n\nfunc init() {\n\tTacoBell(\"MZkDw5z7g8\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U1sArUtIyxI1T1aFwPl801LrpbJCXhQVsv8r5O3HJSOBU+7Uek5k7DIdT3T0Nlu1lhIwhVM85oaidL4Bn9SMBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"tacobell","path":"gno.land/r/nprimmer/tacobell","files":[{"name":"package.gno","body":"package main\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc TacoBell(input string) {\n\traffle.RegisterCode(input)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZgXEDzsIKsryZ9XS7DuDKt6erYUq0Q40lFAeVOAM2GAe9J/wAx8+swNhEzRHI/23hgHpEx74t4iuFiOXS+9CDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","package":{"name":"tacobell","path":"gno.land/r/nprimmer/tacobell","files":[{"name":"package.gno","body":"package tacobell\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc TacoBell(code string, username string) {\n\traffle.RegisterCode(code)\n\traffle.RegisterUsername(username)\n}\n\nfunc init() {\n\tTacoBell(\"MZkDw5z7g8\", \"nprimmer\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RAli2QfWOBfucfQx6Ji6RkiPSl19y7cYUpwudBukn3kJjNcS8MVFCB9DfEnEsYQJYCqGGpi1fKQSLUeY2z7aCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F4+nm/XZcI4HuNEUNxurX/evH2K+QhEgXi5Vw8wS4OeZidwvASnkYOsTmej/t9XkxAcmjf6Q5ZlKZ2UsIW+JCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lee0xzj5xmuaur3wf5pw6jexrrs2r0uygskcww","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HV0tYS0mMT48XC7BCaKGNc4QoTd/ceuBWrTwMvehvSCy9RslE8quP3cEP/PbVeke1AMZ1h3QPJmyM+is6mnnCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lee0xzj5xmuaur3wf5pw6jexrrs2r0uygskcww","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HV0tYS0mMT48XC7BCaKGNc4QoTd/ceuBWrTwMvehvSCy9RslE8quP3cEP/PbVeke1AMZ1h3QPJmyM+is6mnnCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lee0xzj5xmuaur3wf5pw6jexrrs2r0uygskcww","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HV0tYS0mMT48XC7BCaKGNc4QoTd/ceuBWrTwMvehvSCy9RslE8quP3cEP/PbVeke1AMZ1h3QPJmyM+is6mnnCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry","path":"gno.land/r/arjunmalhotra1/entry","files":[{"name":"raffle.gno","body":"package entry\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n \n// }\nfunc callRegisterCode(code string) {\n raffle.RegisterCode(code)\n}"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QBbPLPLyliENXwvqORqUrryFdPyMamokWb2QLrwG2nhD2qWgyhroYIpUO4L4ayez5C9vS06OnEhOnj7n1Or0CQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry","path":"gno.land/r/arjunmalhotra1/entry","files":[{"name":"raffle.gno","body":"package entry\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc main() {\n\t//raffle.RegisterCode(\"nARh6Pkeqo\")\n\tcallRegisterCode()\n\n}\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3ZJ+Ds+dedo/92il1+k4LEh/+xVZUA2v+9NhBz+vQQ4p04qext7rVBLFYbOxMnx2ci19vecr/5mreTRlqFJwAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry2","path":"gno.land/r/arjunmalhotra1/entry2","files":[{"name":"raffle.gno","body":"package entry2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\nfunc callRegisterCode(code string) {\n\traffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4vY/7OnzP1+Fv4FcdQSJd6iJfBSYTlm+/04bj24cWefUSBiM4WXQWeS5iEpgxQZunydtnlWuL7vEox2CU0iTAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry3","path":"gno.land/r/arjunmalhotra1/entry3","files":[{"name":"raffle.gno","body":"package entry2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\nfunc callRegisterCode() {\n\traffle.init()\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+AmS1brUCcqFJPec/cpKRFybNwoGqz4o323vc1nVsVOZ9T5emSlgb3tSVvB8WCwe+NERNhozX1MdNvaKCrVGCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\nfunc callRegisterCode() {\n\tinit()\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ycKWAfy2xSmwLOwXfce9ZpdKGtRBmy+4/WNY7NaBCknjqNhrCYXmdssOZPRe0Yb3lMQvzVdUI/CA4dbLPA1lBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8WV8BrLkOL2tkGmzjLhruYyOJXt7EZgqb8AyRRDm5PBzTcuB3j0EOfcnP8KPCW2Gd9wdM2Bd+dsJo5GeIkfpAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry4\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"da5QimIuh2lmZ8xllIiyZeVbYs6wVxer0aWWqaxrlm97qw+13Ff0BcBpd8VHlW09PBEn2iTYqcqIJC06blk6Dw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry4\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\nfunc init() {\n\t// Set admin address\n\to := ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jWT6sGkuor0gpHTGxggh/wnDN4JwvwVHanatRq4jOLkZ/NSwyEzsEMJfhWqaMPL7HWW5egqznC1nH4ih+d7/BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry4\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ym3Q/A/byxu2cNz07nqOjSvHcPo2FZc5mwyYUBq/n/DdC1fPGNdPXe4WevSI98ZZS9TUnng3432BBSsVd7GeBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry4\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G8ivcM80XnWRP8o6cwV9RnegUaVsQ1BMsy/dNZexabIlcyJy5RxJZ93kpbk/l4Y+0BVLFNb+P+/G8hF3N5PtDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry4","path":"gno.land/r/arjunmalhotra1/entry4","files":[{"name":"raffle.gno","body":"package entry4\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n}\n\nfunc callRegisterCode() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rpp5YlqX29mLDKCPCDRStMgl2JZC3qV0ilCkLkSxPWR/AElEWwHDrkjsJShDfCWifjUcBFPMobNQ2uOmx3VtAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry5","path":"gno.land/r/arjunmalhotra1/entry5","files":[{"name":"raffle.gno","body":"package entry5\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n\n// func callRegisterCode() {\n// raffle.RegisterCode(\"nARh6Pkeqo\")\n// }\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ORw4fB5hEsimVC0gExkE95VtvH5XiXQydBK6nb7sF/ra+h3LwwCG0yH58usT6vFIvD5PpLqwX6P/wlvETmHICg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry6","path":"gno.land/r/arjunmalhotra1/entry6","files":[{"name":"raffle.gno","body":"package entry6\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n\n\t//raffle.RegisterCode(\"nARh6Pkeqo\")\n\traffle.RegisterUsername(\"arjunmalhotra1\")\n}\n\n// func callRegisterCode() {\n// raffle.RegisterCode(\"nARh6Pkeqo\")\n// }\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wXC2t2VavqA+uxgc/VNBdsMWYUdD2m/JBP5TZ52mdlTifk0G8EsWC/q7MTjJl7A5q25whsu1edGblUXIZOMqDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"entry6","path":"gno.land/r/arjunmalhotra1/entry6","files":[{"name":"raffle.gno","body":"package entry6\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n\t\"math/rand\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\n// func main() {\n// \t//raffle.RegisterCode(\"nARh6Pkeqo\")\n// callRegisterCode()\n\n// }\n\n// EntryData is the main struct that contains all data on raffle entries\ntype EntryData struct {\n\ttxorigin std.Address\n\tcaller std.Realm\n\traffleCode string\n\tcodeHash string\n\tghUsername string\n}\n\n// Top-level variables are automatically persisted to storage\nvar (\n\to *ownable.Ownable // admin of the raffle realm\n\tpartialEntries []*EntryData // keeps registered partialEntries\n\tcompleteEntries []*EntryData // keeps complete registrations: valid code + gh username\n\tcodeHashes []string // valid code hashes\n\tregisteredHashes map[string]struct{} // tracks if a code has been registered before\n\twinner1, winner2 *EntryData // storing raffle winners\n\tnumReg int\n\trandSource *rand.Rand\n)\n\nfunc init() {\n\t// Set admin address\n\to = ownable.NewWithAddress(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n\n\tpartialEntries = make([]*EntryData, 0)\n\tcompleteEntries = make([]*EntryData, 0)\n\tregisteredHashes = make(map[string]struct{})\n\tcodeHashes = make([]string, 300)\n\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n\traffle.RegisterUsername(\"arjunmalhotra1\")\n}\n\n// func callRegisterCode() {\n// raffle.RegisterCode(\"nARh6Pkeqo\")\n// }\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qKfAnXRBvj784KyD4+QbTq1nO6KRRgcXecCJyNJlhDLpw3mkjNOSUh9Q3ECg6p9jJwNOKVWkuvJoAZkefU+GBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lggjskpg0c6sg7fsvnpycmjdkqcv8ymzdamgdh","package":{"name":"raffle","path":"gno.land/r/arjunmalhotra1/raffle","files":[{"name":"raffle.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc main() {\n\traffle.RegisterCode(\"nARh6Pkeqo\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pO4ym/QchBzpqb9I2WepW6/MJJJkKhDcYbnVfslWyH4s+gYCH99mCGQ4euiR0AKxeQUKCZTy55Tbd1ggpwKdAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lhxvmjz6xzd0vwnftpz4xr4u4lg76ngux8wux9","package":{"name":"mgriff10raffle","path":"gno.land/r/mgriffi/mgriff10raffle","files":[{"name":"package.gno","body":"package mgriff10raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"P615WU1x1V\"\n\t// githubAcct := \"mgriffin10\"\n\traffle.RegisterCode(code)\n\t// resgithub := raffle.RegisterUsername(githubAcct)\n\t// println(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ln4RYaLn+Kbm7xh/SnYYic+C+colMvyTw4/Ym/xJ3tDgtbG7E6UZZBii7/KS/BnHZqZpGNz4+QALHguuq0m1Dg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lhxvmjz6xzd0vwnftpz4xr4u4lg76ngux8wux9","package":{"name":"mgriff10raffle","path":"gno.land/r/mgriffi/mgriff10raffle","files":[{"name":"package.gno","body":"package mgriff10raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"P615WU1x1V\"\n\t// githubAcct := \"mgriffin10\"\n\trescode := raffle.RegisterCode(code)\n\t// resgithub := raffle.RegisterUsername(githubAcct)\n\t// println(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2zLVPGuR2YlaTUPqjzsizB+aD102ZpTyMBS1f4kjzUruwELf1vay+tUVYWrhvcn5X7Ozj+VMpoTVQ4qrc/yyCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lhxvmjz6xzd0vwnftpz4xr4u4lg76ngux8wux9","package":{"name":"mgriff10raffle","path":"gno.land/r/mgriffin/mgriff10raffle","files":[{"name":"package.gno","body":"package mgriff10raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// code := \"P615WU1x1V\"\n\tgithubAcct := \"mgriffin10\"\n\t// rescode := raffle.RegisterCode(code)\n\traffle.RegisterUsername(githubAcct)\n\t// println(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IyAnsL5LC55d7XYqs452SlVZOJOLkTXqoOZ1tHoOZbxAbRhdvT94cGktlmo1WZim4EL7I0kx28kmMRah0fbcCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","package":{"name":"deploytest","path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest","files":[{"name":"package.gno","body":"package deploytest\n\ntype MyStruct struct {\n\tValue uint64\n}\n\nvar (\n\tmymap map[uint64]MyStruct = make(map[uint64]MyStruct)\n)\n\nfunc RunTest() {\n\t// mymap := make(map[uint64]MyStruct)\n\tone := MyStruct{\n\t\tValue: 1,\n\t}\n\ttwo := MyStruct{\n\t\tValue: 2,\n\t}\n\tthree := MyStruct{\n\t\tValue: 3,\n\t}\n\n\tmymap[1] = one\n\tmymap[2] = two\n\tmymap[3] = three\n\n\t// delete(mymap, 2)\n\tdeleteVal(2)\n\n\tnewTwo := MyStruct{\n\t\tValue: 4,\n\t}\n\t// mymap[2] = newTwo\n\tsetVal(2, newTwo)\n\tprintln(mymap)\n}\n\nfunc deleteVal(key uint64) {\n\tdelete(mymap, key)\n}\n\nfunc setVal(key uint64, val MyStruct) {\n\tmymap[key] = val\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5x1RT21iK6V2BMY+S6aqWM01utNJByeu3hiLqgAscuvqvnDRGuzkUODhnhj5RGqO41jgqL6TELHuJezqgrsWCw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732028049"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","package":{"name":"deploytest2","path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest2","files":[{"name":"package.gno","body":"package deploytest2\n\ntype MyStruct struct {\n\tValue uint64\n}\n\nvar (\n\tmymap map[uint64]MyStruct = make(map[uint64]MyStruct)\n)\n\nfunc init() {\n\t// mymap := make(map[uint64]MyStruct)\n\tone := MyStruct{\n\t\tValue: 1,\n\t}\n\ttwo := MyStruct{\n\t\tValue: 2,\n\t}\n\tthree := MyStruct{\n\t\tValue: 3,\n\t}\n\n\tmymap[1] = one\n\tmymap[2] = two\n\tmymap[3] = three\n\n\t// delete(mymap, 2)\n\t// deleteVal(2)\n\n\t// newTwo := MyStruct{\n\t// Value: 4,\n\t// }\n\t// mymap[2] = newTwo\n\t// setVal(2, newTwo)\n\t// println(mymap)\n}\n\nfunc DeleteVal(key uint64) {\n\tdelete(mymap, key)\n}\n\nfunc SetVal(key uint64) {\n\tmymap[key] = MyStruct{\n\t\tValue: 4,\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kRf1oLUUcZaYpWhg9HepqHn4k8FaCxcRHwZjV9HN0r3P341x9wKlBfdtMUnrEwRcyWLxglDGPY2Mzo4ov2TADg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732028476"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","package":{"name":"deploytest2","path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest2","files":[{"name":"package.gno","body":"package deploytest\n\ntype MyStruct struct {\n\tValue uint64\n}\n\nvar (\n\tmymap map[uint64]MyStruct = make(map[uint64]MyStruct)\n)\n\nfunc init() {\n\t// mymap := make(map[uint64]MyStruct)\n\tone := MyStruct{\n\t\tValue: 1,\n\t}\n\ttwo := MyStruct{\n\t\tValue: 2,\n\t}\n\tthree := MyStruct{\n\t\tValue: 3,\n\t}\n\n\tmymap[1] = one\n\tmymap[2] = two\n\tmymap[3] = three\n\n\t// delete(mymap, 2)\n\t// deleteVal(2)\n\n\t// newTwo := MyStruct{\n\t// Value: 4,\n\t// }\n\t// mymap[2] = newTwo\n\t// setVal(2, newTwo)\n\t// println(mymap)\n}\n\nfunc DeleteVal(key uint64) {\n\tdelete(mymap, key)\n}\n\nfunc SetVal(key uint64) {\n\tmymap[key] = MyStruct{\n\t\tValue: 4,\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MKYLfklUJ1V1S/3N3lDLGCeOrjrBVx9B50T3lYwBVsgKYl2qoa6w9bWb+1keOJr7zX4DihQvLJMem7tpjZkiAg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732028395"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","package":{"name":"deploytest2","path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest2","files":[{"name":"package.gno","body":"package deploytest\n\ntype MyStruct struct {\n\tValue uint64\n}\n\nvar (\n\tmymap map[uint64]MyStruct = make(map[uint64]MyStruct)\n)\n\nfunc init() {\n\t// mymap := make(map[uint64]MyStruct)\n\tone := MyStruct{\n\t\tValue: 1,\n\t}\n\ttwo := MyStruct{\n\t\tValue: 2,\n\t}\n\tthree := MyStruct{\n\t\tValue: 3,\n\t}\n\n\tmymap[1] = one\n\tmymap[2] = two\n\tmymap[3] = three\n\n\t// delete(mymap, 2)\n\t// deleteVal(2)\n\n\t// newTwo := MyStruct{\n\t// Value: 4,\n\t// }\n\t// mymap[2] = newTwo\n\t// setVal(2, newTwo)\n\t// println(mymap)\n}\n\nfunc DeleteVal(key uint64) {\n\tdelete(mymap, key)\n}\n\nfunc SetVal(key uint64) {\n\tmymap[key] = MyStruct{\n\t\tValue: 4,\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MKYLfklUJ1V1S/3N3lDLGCeOrjrBVx9B50T3lYwBVsgKYl2qoa6w9bWb+1keOJr7zX4DihQvLJMem7tpjZkiAg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732028446"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","package":{"name":"deploytest3","path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest3","files":[{"name":"package.gno","body":"package deploytest3\n\ntype MyStruct struct {\n\tValue *Value\n}\n\ntype Value struct {\n\tV uint64\n}\n\nvar (\n\tmymap map[uint64]MyStruct = make(map[uint64]MyStruct)\n)\n\nfunc init() {\n\tone := MyStruct{\n\t\tValue: \u0026Value{\n\t\t\tV: 1,\n\t\t},\n\t}\n\ttwo := MyStruct{\n\t\tValue: \u0026Value{\n\t\t\tV: 2,\n\t\t},\n\t}\n\tthree := MyStruct{\n\t\tValue: \u0026Value{\n\t\t\tV: 3,\n\t\t},\n\t}\n\n\tmymap[1] = one\n\tmymap[2] = two\n\tmymap[3] = three\n}\n\nfunc DeleteVal(key uint64) {\n\tdelete(mymap, key)\n}\n\nfunc SetVal(key uint64) {\n\tmymap[key] = MyStruct{\n\t\tValue: \u0026Value{\n\t\t\tV: 4,\n\t\t},\n\t}\n}\n\nfunc GetVal() uint64 {\n\treturn mymap[2].Value.V\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A04y8oAbOyEYFz4KaQAJYxoU2Nq8IZjcP+E75FvrELPe2RJM/tAMRMcRq5g4kR509y9UmRi9ko77BN5D6sQ7Bg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1732028767"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lq8cn8kftq0q9ttvnnpy9ye043vca70n3akme3","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZRfVlO5bFJnZfsrE+zWV99PtgF/pS4S+75V+MDG3h8rAHk8RDhXqY2A2OLz3JXbj0Xi2dTfHjME1Bnh7cFKLCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"sxA7siibxe\")\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9lO78BqQvhF882mWQDFQzCBMSGkKy7wuGyV5u9gg2zklpf5x6PngZx+3VRzbjbdYxQQFcSJdbW3ticuZDM2cAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n return raffle.RegisterCode(\"sxA7siibxe\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PXB/9tP7tN+qvFMjOX/GfULz72d/ce841iHfFDepHkhwvyo+lobsqO9OmFHx+Ork4NK4X24kvKSKL7flkHKODg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"sxA7siibxe\")\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HnuV3RKdu4OLk7rXz8okOt8H/HzM0iFddzzRpaQQrZPbwCmwsatdzeDasVugUPy0Cwu890c/8gJ9Fg2Q5FPQCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang2/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n\treturn raffle.RegisterCode(\"sxA7siibxe\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RMffb8alGyGS9c4W1tFw2EqhLdlyhoPto8GrOs3EwIiVCQi4ODceEMxwuaBXxAzIYjTbMVP+dgyOVu2K37feCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang3/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"fmt\"\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tfmt.Printf(\"return %s\", raffle.RegisterCode(\"sxA7siibxe\"))\n\treturn\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cX9qIyeteGDw+WZTdsMznMEJKwWb00PID4BbGwq7TlYhzBHW985bP1GxK3E3K5LfYqsAPtE963JCBRF8+jEcDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang3/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() string {\n\treturn raffle.RegisterCode(\"sxA7siibxe\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rCUi6XU1scPCApQXnD/jA4ThRrvVXcrGtjfANxQYvODNUXXgTYBYNYDr7cWX5CyJXcj10DMW4otCmAoVbqtnBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang3/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"sxA7siibxe\")\n\treturn\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BJO6xk4L5MxN7URMQum5rnN+Da7DoIUmmFUt58CHVlgkiwe8G7JOZf/ex/fwguwjLK8WVeM+3nNrQvwe4x0jAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjiang4/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"sxA7siibxe\")\n\treturn\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dFvYl8THfO3iPAGRINeoGoXrkm3xP1n3nS20PPDY7tpzZvATVQigmTpdmy0waXI0Rq/JynXd6TRyezR5IOISAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjianguser/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffle.RegisterCode(\"sxA7siibxe\")\n\traffle.RegisterUserName(\"h9jiang\")\n\treturn\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MvGBFCwiZ/f4Y1HQbzUgDmyenlNDN5JoLosk067SqbsEhlkZzd/NS4W1A4p2NeQUlBdGJUdnB7yYtARjMmGIDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1lrnsh8vhpx043y0496gvaf0x5a4jug5r05qcan","package":{"name":"hello","path":"gno.land/r/hxjianguser/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffle.RegisterCode(\"sxA7siibxe\")\n\traffle.RegisterUsername(\"h9jiang\")\n\treturn\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7/fC/JJEEwOIrnQxRRDMq14/5xlnsNdRkO0GqWe+U2HDq/jzvHoLVudr9ojvR4l+6yFgZ6kHPuZ/loZpMA77DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"buidl20","path":"gno.land/r/moul/x/buidl20","files":[{"name":"buidl20.gno","body":"package buidl20\n\nimport (\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"std\"\n)\n\n// Token: public safe object for composability\n// adm: privileged object for minting\nvar Token, adm = grc20.NewToken(\"Buidl\", \"BDL\", 4)\n\n// grc20 API for the caller\nvar UserTeller = Token.CallerTeller()\n\nfunc init() {\n\tadm.Mint(std.GetOrigCaller(), 1_000_000) // mint 1M to the contract deployer.\n}\n\n// optional helpers\n// [...]\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"baqsFkwM6uHtLvRKqZE2VPw1sXCVZSDtuwJ4zSVZ52Lnz9KzMgaSDFK/WvAw5Gmo3A5fS7Ji0HesBCl+VcSxAQ=="}],"memo":""},"metadata":{"timestamp":"1736429436"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"cshijack","path":"gno.land/r/manfred/cshijack","files":[{"name":"hijack.gno","body":"package cshijack\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc RegisterCode(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n\nfunc RegisterUsername(username string) string {\n\treturn raffle.RegisterCode(username)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"100000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RaBZP7yd6VATgGJY445fFQA1BTnb8xSd0gi/UeOVVLCW9l5QvEJ67agvPDmzHtdIw97tNl2NDAZjX8p7z9suAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"cshijack","path":"gno.land/r/manfred/cshijack","files":[{"name":"hijack.gno","body":"package cshijack\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc RegisterCode(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n\nfunc RegisterUsername(username string) string {\n\treturn raffle.RegisterCode(username)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fal322zwTP+w1LaYZfhINpFGQQVuhJYpth6beV3T2H4LMd/14tFHOOmDWzYl+PXZNayy97/jZ9Gjt8YaQJ0TAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"cshijack","path":"gno.land/r/manfred/cshijack","files":[{"name":"hijack.gno","body":"package cshijack\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc RegisterCode(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n\nfunc RegisterUsername(username string) string {\n\treturn raffle.RegisterCode(username)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JDUkvEMlQgv2GS7sQs2vpAeY0/9Fehr4gL10t4ynCHEMdpkQdJKGoIUahUwi9qTU/IWnFWKalPavhTVxGLnBCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"cshijack","path":"gno.land/r/manfred/cshijack","files":[{"name":"hijack.gno","body":"package cshijack\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc RegisterCode(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n\nfunc RegisterUsername(username string) string {\n\treturn raffle.RegisterCode(username)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Eg9+UDJh7RzM2LorDLSADS2YZ80FI5g3QZ6aq4Hk1jfgZmz+d3ry2v0FsoOFzKOUvdCI7XxIe43Kw5LD0o4dCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"cshijack","path":"gno.land/r/manfred/v2/cshijack","files":[{"name":"hijack.gno","body":"package cshijack\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc RegisterCode(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n\nfunc RegisterUsername(username string) string {\n\treturn raffle.RegisterUsername(username)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zjbC3Sc7PTDT9wvdA2Pc1TlWEAcjseaY/sLxRCVHMkloJXELGVn6wbUv2hsRTx8YFfR3w/Ll2uQ6YJKg0cj5AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"cshijack","path":"gno.land/r/manfred/v3/cshijack","files":[{"name":"hijack.gno","body":"package cshijack\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc RegisterCode(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n\nfunc RegisterUsername(username string) string {\n\treturn raffle.RegisterUsername(username)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hsJdBTGM0QAd6vbVUMVKd0ZYoMdyCLbSWvYXMLD1ohhKYB1G1M/vowpfu6I+jqV4tJPeLZKq8NNRIXk6QjotDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"sapin","path":"gno.land/r/moul/sapin","files":[{"name":"README.md","body":"# sapin.gno\n\n\u003ca href=\"https://play.gno.land/github/moul/sapin.gno?file=sapin.gno\u0026run.expr=println(Sapin(2))\"\u003e\n \u003cimg alt=\"play.gno.land\" src=\"https://img.shields.io/badge/Play-691a00.svg?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxNTggMTU4Ij48cGF0aCBkPSJtMTU2IDItNiA1LTIgMmE1NCA1NCAwIDAgMS0yNCAxMmwtMyAxaC00Yy02IDAtOS0xLTE1LTNhNjIgNjIgMCAwIDAtMzUtNmgtMWwtNCAxYTYzIDYzIDAgMCAwLTUwIDY4bDEgMmEyNyAyNyAwIDAgMCAwIDRsNiAxNWEzMyAzMyAwIDAgMSAyIDIxIDYyIDYyIDAgMCAxLTMgOCA2MSA2MSAwIDAgMS0xMyAyMGwtMyA0LTEgMWgxbDEtMmEyMDYgMjA2IDAgMCAxIDYtNWwyLTJhODggODggMCAwIDAgOC03bDEtMSAyLTIgMy0zYTY2MSA2NjEgMCAwIDEgMjYtMjRsNjItNjIgNC00IDMtMyAyLTMgOS05IDMtMyAyLTMgNi02IDExLTEzIDMtMyAxLTEtMSAxWk03OSAyNWM5IDEgMTcgNCAyMyA4IDQgMiA1IDQgNSA3bC0xIDMtMSAydjFsLTItMmE0MSA0MSAwIDAgMC0zNC0xMCA0MyA0MyAwIDAgMC0zMyAyNyA0OSA0OSAwIDAgMC0zIDIwIDMxIDMxIDAgMCAwIDEgNWwyIDRjMSA1IDQgOSA3IDEzbDIgMnYxbC01IDEtNC0xYy0yLTEtNS01LTctMTBsLTEtMmE2MSA2MSAwIDAgMS0zLTEzIDY2IDY2IDAgMCAxIDAtMTRjMS01IDMtMTEgNi0xNmE1MyA1MyAwIDAgMSA0MC0yNmg4Wm0yIDEzaDFsMTEgMyAxMCA4djRMNzkgNzhsLTI2IDI1Yy0yIDEtNCAxLTYtMWwtNS03YTQwIDQwIDAgMCAxLTUtMTljMC04IDMtMTYgOC0yM2w5LThhNDEgNDEgMCAwIDEgMTktOGw4IDFabTQ0IDEzLTMgNnY3YTIyMSAyMjEgMCAwIDEgMiAxNGwtMSAxMGE0NiA0NiAwIDAgMS01NyAzNWgtOWMtMyAwLTcgMi03IDNsNCAyYTU3IDU3IDAgMCAwIDMyIDVoM2wzLTFhNTUgNTUgMCAwIDAgMzQtODJsLTEgMVoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTEzIDU5Yy0xIDItMiA0LTEgNmwxIDNhMzggMzggMCAwIDEtNDggNDRoLTRsLTMgMmE0NCA0NCAwIDAgMCAxMCAzaDE1YTQyIDQyIDAgMCAwIDMxLTU4aC0xWiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\" /\u003e\n\u003c/a\u003e\u003c/br\u003e\u003c/br\u003e\n\n🎄 christmas tree in gno\n"},{"name":"render.gno","body":"package sapin\n\nimport \"strconv\"\n\nconst defaultSize int = 3\n\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tsapin := Sapin(size)\n\toutput := \"```\\n\" + sapin + \"```\\n\"\n\treturn output\n}\n"},{"name":"render_test.gno","body":"package sapin\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\ttt := []struct {\n\t\tpath string\n\t\twant string\n\t}{\n\t\t{\"1\", \"```\" + `\n *\n ***\n *****\n*******\n |||\n` + \"```\\n\"},\n\t\t{\"\", \"```\" + `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n*******************\n |||\n |||\n |||\n` + \"```\\n\"},\n\t}\n\n\tfor _, tc := range tt {\n\t\tname := tc.path\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\twant := tc.want\n\t\t\tif got != want {\n\t\t\t\tt.Errorf(\"expected \\n%s\\n, got \\n%s\\n.\", want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"sapin.gno","body":"package sapin\n\nimport \"strings\"\n\nfunc Sapin(size int) string {\n\tif size \u003c 1 {\n\t\treturn \"\"\n\t}\n\tvar b strings.Builder\n\tfor floor := 0; floor \u003c size; floor++ {\n\t\tfor j := 0; j \u003c floor+4; j++ {\n\t\t\tspaces := size*2 - (floor-1)*2 - j + size - 2\n\t\t\tbodies := j*2 + 1 + floor*4\n\t\t\tb.WriteString(strings.Repeat(\" \", spaces))\n\t\t\tb.WriteString(strings.Repeat(\"*\", bodies))\n\t\t\tb.WriteString(\"\\n\")\n\t\t}\n\t}\n\n\tfor i := 0; i \u003c size; i++ {\n\t\tspaces := (size-1)*3 + 2\n\t\tb.WriteString(strings.Repeat(\" \", spaces))\n\t\tb.WriteString(\"|||\\n\")\n\t}\n\treturn b.String()\n}\n"},{"name":"sapin_test.gno","body":"package sapin\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestSapin(t *testing.T) {\n\ttt := []struct {\n\t\tsize int\n\t\twant string\n\t}{\n\t\t{1, `\n *\n ***\n *****\n*******\n |||\n`},\n\t\t{2, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n*************\n |||\n |||\n`},\n\t\t{3, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n*******************\n |||\n |||\n |||\n`},\n\t\t{4, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n *******************\n *************\n ***************\n *****************\n *******************\n *********************\n ***********************\n*************************\n |||\n |||\n |||\n |||\n`},\n\t\t{5, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n *******************\n *************\n ***************\n *****************\n *******************\n *********************\n ***********************\n *************************\n *****************\n *******************\n *********************\n ***********************\n *************************\n ***************************\n *****************************\n*******************************\n |||\n |||\n |||\n |||\n |||\n`},\n\t\t// {50, ``},\n\t\t// {51, ``},\n\t}\n\n\tfor _, tc := range tt {\n\t\tname := fmt.Sprintf(\"%d\", tc.size)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sapin(tc.size)\n\t\t\twant := tc.want[1:]\n\t\t\tif got != want {\n\t\t\t\tt.Errorf(\"expected \\n%s\\n, got \\n%s\\n.\", want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zypZioO/O3lYcrm6XDYSCGfCRDrKiTx46qMwjZ+eJd+eO9qn6xv72pnxQ558qRUwxl6OCZIgqZIhEV2MTG9+Dw=="}],"memo":""},"metadata":{"timestamp":"1735063615"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","package":{"name":"sapin","path":"gno.land/r/moul/sapin","files":[{"name":"README.md","body":"# sapin.gno\n\n\u003ca href=\"https://play.gno.land/github/moul/sapin.gno?file=sapin.gno\u0026run.expr=println(Sapin(2))\"\u003e\n \u003cimg alt=\"play.gno.land\" src=\"https://img.shields.io/badge/Play-691a00.svg?logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxNTggMTU4Ij48cGF0aCBkPSJtMTU2IDItNiA1LTIgMmE1NCA1NCAwIDAgMS0yNCAxMmwtMyAxaC00Yy02IDAtOS0xLTE1LTNhNjIgNjIgMCAwIDAtMzUtNmgtMWwtNCAxYTYzIDYzIDAgMCAwLTUwIDY4bDEgMmEyNyAyNyAwIDAgMCAwIDRsNiAxNWEzMyAzMyAwIDAgMSAyIDIxIDYyIDYyIDAgMCAxLTMgOCA2MSA2MSAwIDAgMS0xMyAyMGwtMyA0LTEgMWgxbDEtMmEyMDYgMjA2IDAgMCAxIDYtNWwyLTJhODggODggMCAwIDAgOC03bDEtMSAyLTIgMy0zYTY2MSA2NjEgMCAwIDEgMjYtMjRsNjItNjIgNC00IDMtMyAyLTMgOS05IDMtMyAyLTMgNi02IDExLTEzIDMtMyAxLTEtMSAxWk03OSAyNWM5IDEgMTcgNCAyMyA4IDQgMiA1IDQgNSA3bC0xIDMtMSAydjFsLTItMmE0MSA0MSAwIDAgMC0zNC0xMCA0MyA0MyAwIDAgMC0zMyAyNyA0OSA0OSAwIDAgMC0zIDIwIDMxIDMxIDAgMCAwIDEgNWwyIDRjMSA1IDQgOSA3IDEzbDIgMnYxbC01IDEtNC0xYy0yLTEtNS01LTctMTBsLTEtMmE2MSA2MSAwIDAgMS0zLTEzIDY2IDY2IDAgMCAxIDAtMTRjMS01IDMtMTEgNi0xNmE1MyA1MyAwIDAgMSA0MC0yNmg4Wm0yIDEzaDFsMTEgMyAxMCA4djRMNzkgNzhsLTI2IDI1Yy0yIDEtNCAxLTYtMWwtNS03YTQwIDQwIDAgMCAxLTUtMTljMC04IDMtMTYgOC0yM2w5LThhNDEgNDEgMCAwIDEgMTktOGw4IDFabTQ0IDEzLTMgNnY3YTIyMSAyMjEgMCAwIDEgMiAxNGwtMSAxMGE0NiA0NiAwIDAgMS01NyAzNWgtOWMtMyAwLTcgMi03IDNsNCAyYTU3IDU3IDAgMCAwIDMyIDVoM2wzLTFhNTUgNTUgMCAwIDAgMzQtODJsLTEgMVoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTEzIDU5Yy0xIDItMiA0LTEgNmwxIDNhMzggMzggMCAwIDEtNDggNDRoLTRsLTMgMmE0NCA0NCAwIDAgMCAxMCAzaDE1YTQyIDQyIDAgMCAwIDMxLTU4aC0xWiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\" /\u003e\n\u003c/a\u003e\u003c/br\u003e\u003c/br\u003e\n\n🎄 christmas tree in gno\n"},{"name":"render.gno","body":"package sapin\n\nimport \"strconv\"\n\nconst defaultSize int = 3\n\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tsapin := Sapin(size)\n\toutput := \"```\\n\" + sapin + \"```\\n\"\n\treturn output\n}\n"},{"name":"render_test.gno","body":"package sapin\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\ttt := []struct {\n\t\tpath string\n\t\twant string\n\t}{\n\t\t{\"1\", \"```\" + `\n *\n ***\n *****\n*******\n |||\n` + \"```\\n\"},\n\t\t{\"\", \"```\" + `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n*******************\n |||\n |||\n |||\n` + \"```\\n\"},\n\t}\n\n\tfor _, tc := range tt {\n\t\tname := tc.path\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\twant := tc.want\n\t\t\tif got != want {\n\t\t\t\tt.Errorf(\"expected \\n%s\\n, got \\n%s\\n.\", want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"sapin.gno","body":"package sapin\n\nimport \"strings\"\n\nfunc Sapin(size int) string {\n\tif size \u003c 1 {\n\t\treturn \"\"\n\t}\n\tvar b strings.Builder\n\tfor floor := 0; floor \u003c size; floor++ {\n\t\tfor j := 0; j \u003c floor+4; j++ {\n\t\t\tspaces := size*2 - (floor-1)*2 - j + size - 2\n\t\t\tbodies := j*2 + 1 + floor*4\n\t\t\tb.WriteString(strings.Repeat(\" \", spaces))\n\t\t\tb.WriteString(strings.Repeat(\"*\", bodies))\n\t\t\tb.WriteString(\"\\n\")\n\t\t}\n\t}\n\n\tfor i := 0; i \u003c size; i++ {\n\t\tspaces := (size-1)*3 + 2\n\t\tb.WriteString(strings.Repeat(\" \", spaces))\n\t\tb.WriteString(\"|||\\n\")\n\t}\n\treturn b.String()\n}\n"},{"name":"sapin_test.gno","body":"package sapin\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestSapin(t *testing.T) {\n\ttt := []struct {\n\t\tsize int\n\t\twant string\n\t}{\n\t\t{1, `\n *\n ***\n *****\n*******\n |||\n`},\n\t\t{2, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n*************\n |||\n |||\n`},\n\t\t{3, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n*******************\n |||\n |||\n |||\n`},\n\t\t{4, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n *******************\n *************\n ***************\n *****************\n *******************\n *********************\n ***********************\n*************************\n |||\n |||\n |||\n |||\n`},\n\t\t{5, `\n *\n ***\n *****\n *******\n *****\n *******\n *********\n ***********\n *************\n *********\n ***********\n *************\n ***************\n *****************\n *******************\n *************\n ***************\n *****************\n *******************\n *********************\n ***********************\n *************************\n *****************\n *******************\n *********************\n ***********************\n *************************\n ***************************\n *****************************\n*******************************\n |||\n |||\n |||\n |||\n |||\n`},\n\t\t// {50, ``},\n\t\t// {51, ``},\n\t}\n\n\tfor _, tc := range tt {\n\t\tname := fmt.Sprintf(\"%d\", tc.size)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sapin(tc.size)\n\t\t\twant := tc.want[1:]\n\t\t\tif got != want {\n\t\t\t\tt.Errorf(\"expected \\n%s\\n, got \\n%s\\n.\", want, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t7Mrvqhhc9jNx2ZcgmLvrbRp8hX6SkEgGltxn39gkSTHBW9qn2MlTF05inzzkWFVS81aqXjhN7KKPu7zzOPgDQ=="}],"memo":""},"metadata":{"timestamp":"1735063630"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","package":{"name":"home","path":"gno.land/r/matijamarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // tony's main address\n\tbackup std.Address // backup address\n)\n\nfunc init() {\n\tmain = \"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n)\n\nfunc init() {\n\tpfp = \"https://muaythairecords.com/fighters/rodtang-jitmuangnon/ogimage\"\n\tpfpCaption = \"My profile picture - Rodtang Jitmuangnon (Muay Thai fighter)\"\n\tabtMe =\n\t\t`### About me\n Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n \n Demonstrated ability to work collaboratively in team environments, as evidenced by participation in a large-scale group project to develop a banking web application, leveraging various frameworks to deliver robust backend functionalities.\n\nAdditionally, skilled in concurrent programming, showcased through the development of a small distributed system that simulates social media interactions, employing the Chord algorithm for efficient data handling.\n\nIn addition to my academic pursuits, I enjoy traveling and staying active through weightlifting. I have a keen interest in electronic music and often explore various genres. I believe in maintaining a balanced lifestyle that complements my professional development.`\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc Render(path string) string {\n\tout := \"# Matija's Homepage\\n\\n\"\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderGitHubProjects()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-2'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\"![my profile pic](%s)\\n\\n%s\\n\\n\", pfp, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderGitHubProjects() string {\n\n\tout := \"# [Github Projects](https://github.com/matijamarjanovic)\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += \"[NUTRITION TRACKER ANDROID APP](https://github.com/matijamarjanovic/NutritionTrackerRMA)\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += \"[DISTRIBUTED SYSTEM](https://github.com/RAF-KiDS/projekat-matijamarjanovic)\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += \"[GROUP PROJECT - BANKING APP](https://github.com/matijamarjanovic/Banka-3-Backend)\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += \"[FIAT CURRENCIES - DATA ANALYTICS](https://github.com/matijamarjanovic/BigData_CurrencyAnalitics)\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7Y4N4yIUv57cLBJJ6ryKEWrWOQQUByuh2zukaHMAcQW8l2sIKLXgn5IflWI07ZVF2XgUMeQYv5mvsKX4NJZDBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1n93replyp2pl37qfzkh854eps2z0ar7t0rzzyj","package":{"name":"raffle","path":"gno.land/r/whoagain/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"efX8UmKBy6\"\n\tgithubAcct := \"whoagain\"\n\trescode := raffle.RegisterCode(code)\n\tresgithub := raffle.RegisterUsername(githubAcct)\n\tprintln(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fOed4zP5gJqQu6UIyM4zwQl+UOZyWltvTb6ePamBqLBTnrGfRwB4n1sYNaBev/krrtZL1iD5Nw4UoOXvioMDAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ndzpczjr2rzrchtkm3tsut2xjfn50mlgax2v77","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QnLCLHeIdH8QDferwASrEjLVzK2a6KsDg50DhpsSWkQFr+xpVvWoo1XlTHdNzQAKSTxEth3MlyTw8MBLGa8MBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","package":{"name":"cryptopunkstar","path":"gno.land/r//cryptopunkstar","files":[{"name":"package.gno","body":"package Cryptopunkstar\n\nfunc Render(path string) string {\n return \"Cryptopunkstar\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CZNlPi6F230R/zFdU3cV9gfTOu/kHB8MBsFyeMVM94pAM/hGOnZEN3NvityGhBI7IHQqYZ3BHc04pYVXL8dXBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","package":{"name":"cryptopunkstar","path":"gno.land/r//cryptopunkstar","files":[{"name":"package.gno","body":"package cryptopunkstar\n\nfunc Render(path string) string {\n return \"Cryptopunkstar\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zbbT23hewImGSsku4wh3ckFP/QM1en8PlcjsA/zQ04FO3RkzYv5ArR/Vw4qT2Rm93IjVkCjF+DJhqOb1p8hDAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pfstv3zz4swue9sjey74m7aqfn6m4lasknaucp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e9qjWvFn1TIqqBzQmGJAhH4SEGZ1wV1ZaQxeYX6nsBYtLZkrXdJyYM0297usCvkw9gr/wtiYJXPkUJvUq18cAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pgr5hyw69q0slyczjv2w5xx0x25337y7pjhzq9","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RXc3EFGKS8V8Nd2k23ITXXhlpUYjNa3RjKuwf7PxZt0s60VM7HSE0k9rnkifyAAl1BSoDUeA7cNUPgL/5H1YBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pgr5hyw69q0slyczjv2w5xx0x25337y7pjhzq9","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RXc3EFGKS8V8Nd2k23ITXXhlpUYjNa3RjKuwf7PxZt0s60VM7HSE0k9rnkifyAAl1BSoDUeA7cNUPgL/5H1YBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"acl","path":"gno.land/p/demo/acl","files":[{"name":"acl.gno","body":"package acl\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc New() *Directory {\n\treturn \u0026Directory{\n\t\tuserGroups: avl.Tree{},\n\t\tpermBuckets: avl.Tree{},\n\t}\n}\n\ntype Directory struct {\n\tpermBuckets avl.Tree // identifier -\u003e perms\n\tuserGroups avl.Tree // std.Address -\u003e []string\n}\n\nfunc (d *Directory) HasPerm(addr std.Address, verb, resource string) bool {\n\t// FIXME: consider memoize.\n\n\t// user perms\n\tif d.getBucketPerms(\"u:\"+addr.String()).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// everyone's perms.\n\tif d.getBucketPerms(\"g:\"+Everyone).hasPerm(verb, resource) {\n\t\treturn true\n\t}\n\n\t// user groups' perms.\n\tgroups, ok := d.userGroups.Get(addr.String())\n\tif ok {\n\t\tfor _, group := range groups.([]string) {\n\t\t\tif d.getBucketPerms(\"g:\"+group).hasPerm(verb, resource) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (d *Directory) getBucketPerms(bucket string) perms {\n\tres, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\treturn res.(perms)\n\t}\n\treturn perms{}\n}\n\nfunc (d *Directory) HasRole(addr std.Address, role string) bool {\n\treturn d.HasPerm(addr, \"role\", role)\n}\n\nfunc (d *Directory) AddUserPerm(addr std.Address, verb, resource string) {\n\tbucket := \"u:\" + addr.String()\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) AddGroupPerm(name string, verb, resource string) {\n\tbucket := \"g:\" + name\n\tp := perm{\n\t\tverbs: []string{verb},\n\t\tresources: []string{resource},\n\t}\n\td.addPermToBucket(bucket, p)\n}\n\nfunc (d *Directory) addPermToBucket(bucket string, p perm) {\n\tvar ps perms\n\n\texisting, ok := d.permBuckets.Get(bucket)\n\tif ok {\n\t\tps = existing.(perms)\n\t}\n\tps = append(ps, p)\n\n\td.permBuckets.Set(bucket, ps)\n}\n\nfunc (d *Directory) AddUserToGroup(user std.Address, group string) {\n\texisting, ok := d.userGroups.Get(user.String())\n\tvar groups []string\n\tif ok {\n\t\tgroups = existing.([]string)\n\t}\n\tgroups = append(groups, group)\n\td.userGroups.Set(user.String(), groups)\n}\n\n// TODO: helpers to remove permissions.\n// TODO: helpers to adds multiple permissions at once -\u003e {verbs: []string{\"read\",\"write\"}}.\n// TODO: helpers to delete users from gorups.\n// TODO: helpers to quickly reset states.\n"},{"name":"acl_test.gno","body":"package acl\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Test(t *testing.T) {\n\tadm := testutils.TestAddress(\"admin\")\n\tmod := testutils.TestAddress(\"mod\")\n\tusr := testutils.TestAddress(\"user\")\n\tcst := testutils.TestAddress(\"custom\")\n\n\tdir := New()\n\n\t// by default, no one has perm.\n\tshouldNotHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldNotHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding all the rights to admin.\n\tdir.AddUserPerm(adm, \".*\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding custom regexp rule for user \"cst\".\n\tdir.AddUserPerm(cst, \"write\", \"r/demo/boards:gnolang/.*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding a group perm for a new group.\n\t// no changes expected.\n\tdir.AddGroupPerm(\"mods\", \"role\", \"moderator\")\n\tdir.AddGroupPerm(\"mods\", \"write\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// assigning the user \"mod\" to the \"mods\" group.\n\tdir.AddUserToGroup(mod, \"mods\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\") // new\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\")\n\n\t// adding \"read\" permission for everyone.\n\tdir.AddGroupPerm(Everyone, \"read\", \".*\")\n\tshouldHasRole(t, dir, adm, \"foo\")\n\tshouldNotHasRole(t, dir, mod, \"foo\")\n\tshouldNotHasRole(t, dir, usr, \"foo\")\n\tshouldNotHasRole(t, dir, cst, \"foo\")\n\tshouldHasPerm(t, dir, adm, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldNotHasPerm(t, dir, usr, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, cst, \"write\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, adm, \"read\", \"r/demo/boards:gnolang/1\")\n\tshouldHasPerm(t, dir, mod, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, usr, \"read\", \"r/demo/boards:gnolang/1\") // new\n\tshouldHasPerm(t, dir, cst, \"read\", \"r/demo/boards:gnolang/1\") // new\n}\n\nfunc shouldHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has role %s\", addr.String(), role))\n}\n\nfunc shouldNotHasRole(t *testing.T, dir *Directory, addr std.Address, role string) {\n\tt.Helper()\n\tcheck := dir.HasRole(addr, role)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has role %s\", addr.String(), role))\n}\n\nfunc shouldHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, true, check, ufmt.Sprintf(\"%s should has perm for %s - %s\", addr.String(), verb, resource))\n}\n\nfunc shouldNotHasPerm(t *testing.T, dir *Directory, addr std.Address, verb string, resource string) {\n\tt.Helper()\n\tcheck := dir.HasPerm(addr, verb, resource)\n\tuassert.Equal(t, false, check, ufmt.Sprintf(\"%s should not has perm for %s - %s\", addr.String(), verb, resource))\n}\n"},{"name":"const.gno","body":"package acl\n\nconst Everyone string = \"everyone\"\n"},{"name":"perm.gno","body":"package acl\n\nimport \"regexp\"\n\ntype perm struct {\n\tverbs []string\n\tresources []string\n}\n\nfunc (perm perm) hasPerm(verb, resource string) bool {\n\t// check verb\n\tverbOK := false\n\tfor _, pattern := range perm.verbs {\n\t\tif match(pattern, verb) {\n\t\t\tverbOK = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !verbOK {\n\t\treturn false\n\t}\n\n\t// check resource\n\tfor _, pattern := range perm.resources {\n\t\tif match(pattern, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc match(pattern, target string) bool {\n\tif pattern == \".*\" {\n\t\treturn true\n\t}\n\n\tif pattern == target {\n\t\treturn true\n\t}\n\n\t// regexp handling\n\tmatch, _ := regexp.MatchString(pattern, target)\n\treturn match\n}\n"},{"name":"perms.gno","body":"package acl\n\ntype perms []perm\n\nfunc (perms perms) hasPerm(verb, resource string) bool {\n\tfor _, perm := range perms {\n\t\tif perm.hasPerm(verb, resource) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i2mzIJa1otcKsb0K9kz3H2FCwNqiIssK45oBAOF4jz0SD6iWLpZYXVJ48h0qNf97iHwvVmvUTgV2iaIeErtDAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"adder","path":"gno.land/r/docs/adder","files":[{"name":"adder.gno","body":"package adder\n\nimport (\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\n// Global variables to store the current number and last update timestamp\nvar (\n\tnumber int\n\tlastUpdate time.Time\n)\n\n// Add function to update the number and timestamp\nfunc Add(n int) {\n\tnumber += n\n\tlastUpdate = time.Now()\n}\n\n// Render displays the current number value, last update timestamp, and a link to call Add with 42\nfunc Render(path string) string {\n\t// Display the current number and formatted last update time\n\tresult := \"# Add Example\\n\\n\"\n\tresult += \"Current Number: \" + strconv.Itoa(number) + \"\\n\\n\"\n\tresult += \"Last Updated: \" + formatTimestamp(lastUpdate) + \"\\n\\n\"\n\n\t// Generate a transaction link to call Add with 42 as the default parameter\n\ttxLink := txlink.Call(\"Add\", \"n\", \"42\")\n\tresult += \"[Increase Number](\" + txLink + \")\\n\"\n\n\treturn result\n}\n\n// Helper function to format the timestamp for readability\nfunc formatTimestamp(timestamp time.Time) string {\n\tif timestamp.IsZero() {\n\t\treturn \"Never\"\n\t}\n\treturn timestamp.Format(\"2006-01-02 15:04:05\")\n}\n"},{"name":"adder_test.gno","body":"package adder\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRenderAndAdd(t *testing.T) {\n\t// Initial Render output\n\toutput := Render(\"\")\n\texpected := `# Add Example\n\nCurrent Number: 0\n\nLast Updated: Never\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Initial Render failed, got:\\n%s\", output)\n\t}\n\n\t// Call Add with a value of 10\n\tAdd(10)\n\n\t// Call Add again with a value of -5\n\tAdd(-5)\n\n\t// Render after two Add calls\n\tfinalOutput := Render(\"\")\n\n\t// Initial Render output\n\toutput = Render(\"\")\n\texpected = `# Add Example\n\nCurrent Number: 5\n\nLast Updated: 2009-02-13 23:31:30\n\n[Increase Number](/r/docs/adder$help\u0026func=Add\u0026n=42)\n`\n\tif output != expected {\n\t\tt.Errorf(\"Final Render failed, got:\\n%s\\nexpected:\\n%s\", output, finalOutput)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"saa4WR+TIoLaNyQcPLXFrLWeU0HcrhTOICvXBK+gi+7gs+Jdy6H7Lv8AHa9tkm97H/CD7EpO3EkAY+DeVO3UCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"addrset","path":"gno.land/p/moul/addrset","files":[{"name":"addrset.gno","body":"// Package addrset provides a specialized set data structure for managing unique Gno addresses.\n//\n// It is built on top of an AVL tree for efficient operations and maintains addresses in sorted order.\n// This package is particularly useful when you need to:\n// - Track a collection of unique addresses (e.g., for whitelists, participants, etc.)\n// - Efficiently check address membership\n// - Support pagination when displaying addresses\n//\n// Example usage:\n//\n//\timport (\n//\t \"std\"\n//\t \"gno.land/p/moul/addrset\"\n//\t)\n//\n//\tfunc MyHandler() {\n//\t // Create a new address set\n//\t var set addrset.Set\n//\n//\t // Add some addresses\n//\t addr1 := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n//\t addr2 := std.Address(\"g1sss5g0rkqr88k4u648yd5d3l9t4d8vvqwszqth\")\n//\n//\t set.Add(addr1) // returns true (newly added)\n//\t set.Add(addr2) // returns true (newly added)\n//\t set.Add(addr1) // returns false (already exists)\n//\n//\t // Check membership\n//\t if set.Has(addr1) {\n//\t // addr1 is in the set\n//\t }\n//\n//\t // Get size\n//\t size := set.Size() // returns 2\n//\n//\t // Iterate with pagination (10 items per page, starting at offset 0)\n//\t set.IterateByOffset(0, 10, func(addr std.Address) bool {\n//\t // Process addr\n//\t return false // continue iteration\n//\t })\n//\n//\t // Remove an address\n//\t set.Remove(addr1) // returns true (was present)\n//\t set.Remove(addr1) // returns false (not present)\n//\t}\npackage addrset\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Set struct {\n\ttree avl.Tree\n}\n\n// Add inserts an address into the set.\n// Returns true if the address was newly added, false if it already existed.\nfunc (s *Set) Add(addr std.Address) bool {\n\treturn !s.tree.Set(string(addr), nil)\n}\n\n// Remove deletes an address from the set.\n// Returns true if the address was found and removed, false if it didn't exist.\nfunc (s *Set) Remove(addr std.Address) bool {\n\t_, removed := s.tree.Remove(string(addr))\n\treturn removed\n}\n\n// Has checks if an address exists in the set.\nfunc (s *Set) Has(addr std.Address) bool {\n\treturn s.tree.Has(string(addr))\n}\n\n// Size returns the number of addresses in the set.\nfunc (s *Set) Size() int {\n\treturn s.tree.Size()\n}\n\n// IterateByOffset walks through addresses starting at the given offset.\n// The callback should return true to stop iteration.\nfunc (s *Set) IterateByOffset(offset int, count int, cb func(addr std.Address) bool) {\n\ts.tree.IterateByOffset(offset, count, func(key string, _ interface{}) bool {\n\t\treturn cb(std.Address(key))\n\t})\n}\n\n// ReverseIterateByOffset walks through addresses in reverse order starting at the given offset.\n// The callback should return true to stop iteration.\nfunc (s *Set) ReverseIterateByOffset(offset int, count int, cb func(addr std.Address) bool) {\n\ts.tree.ReverseIterateByOffset(offset, count, func(key string, _ interface{}) bool {\n\t\treturn cb(std.Address(key))\n\t})\n}\n\n// Tree returns the underlying AVL tree for advanced usage.\nfunc (s *Set) Tree() avl.ITree {\n\treturn \u0026s.tree\n}\n"},{"name":"addrset_test.gno","body":"package addrset\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSet(t *testing.T) {\n\taddr1 := std.Address(\"addr1\")\n\taddr2 := std.Address(\"addr2\")\n\taddr3 := std.Address(\"addr3\")\n\n\ttests := []struct {\n\t\tname string\n\t\tactions func(s *Set)\n\t\tsize int\n\t\thas map[std.Address]bool\n\t\taddrs []std.Address // for iteration checks\n\t}{\n\t\t{\n\t\t\tname: \"empty set\",\n\t\t\tactions: func(s *Set) {},\n\t\t\tsize: 0,\n\t\t\thas: map[std.Address]bool{addr1: false},\n\t\t},\n\t\t{\n\t\t\tname: \"single address\",\n\t\t\tactions: func(s *Set) {\n\t\t\t\ts.Add(addr1)\n\t\t\t},\n\t\t\tsize: 1,\n\t\t\thas: map[std.Address]bool{\n\t\t\t\taddr1: true,\n\t\t\t\taddr2: false,\n\t\t\t},\n\t\t\taddrs: []std.Address{addr1},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple addresses\",\n\t\t\tactions: func(s *Set) {\n\t\t\t\ts.Add(addr1)\n\t\t\t\ts.Add(addr2)\n\t\t\t\ts.Add(addr3)\n\t\t\t},\n\t\t\tsize: 3,\n\t\t\thas: map[std.Address]bool{\n\t\t\t\taddr1: true,\n\t\t\t\taddr2: true,\n\t\t\t\taddr3: true,\n\t\t\t},\n\t\t\taddrs: []std.Address{addr1, addr2, addr3},\n\t\t},\n\t\t{\n\t\t\tname: \"remove address\",\n\t\t\tactions: func(s *Set) {\n\t\t\t\ts.Add(addr1)\n\t\t\t\ts.Add(addr2)\n\t\t\t\ts.Remove(addr1)\n\t\t\t},\n\t\t\tsize: 1,\n\t\t\thas: map[std.Address]bool{\n\t\t\t\taddr1: false,\n\t\t\t\taddr2: true,\n\t\t\t},\n\t\t\taddrs: []std.Address{addr2},\n\t\t},\n\t\t{\n\t\t\tname: \"duplicate adds\",\n\t\t\tactions: func(s *Set) {\n\t\t\t\tuassert.True(t, s.Add(addr1)) // first add returns true\n\t\t\t\tuassert.False(t, s.Add(addr1)) // second add returns false\n\t\t\t\tuassert.True(t, s.Remove(addr1)) // remove existing returns true\n\t\t\t\tuassert.False(t, s.Remove(addr1)) // remove non-existing returns false\n\t\t\t},\n\t\t\tsize: 0,\n\t\t\thas: map[std.Address]bool{\n\t\t\t\taddr1: false,\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar set Set\n\n\t\t\t// Execute test actions\n\t\t\ttt.actions(\u0026set)\n\n\t\t\t// Check size\n\t\t\tuassert.Equal(t, tt.size, set.Size())\n\n\t\t\t// Check existence\n\t\t\tfor addr, expected := range tt.has {\n\t\t\t\tuassert.Equal(t, expected, set.Has(addr))\n\t\t\t}\n\n\t\t\t// Check iteration if addresses are specified\n\t\t\tif tt.addrs != nil {\n\t\t\t\tcollected := []std.Address{}\n\t\t\t\tset.IterateByOffset(0, 10, func(addr std.Address) bool {\n\t\t\t\t\tcollected = append(collected, addr)\n\t\t\t\t\treturn false\n\t\t\t\t})\n\n\t\t\t\t// Check length\n\t\t\t\tuassert.Equal(t, len(tt.addrs), len(collected))\n\n\t\t\t\t// Check each address\n\t\t\t\tfor i, addr := range tt.addrs {\n\t\t\t\t\tuassert.Equal(t, addr, collected[i])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSetIterationLimits(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\taddrs []std.Address\n\t\toffset int\n\t\tlimit int\n\t\texpected int\n\t}{\n\t\t{\n\t\t\tname: \"zero offset full list\",\n\t\t\taddrs: []std.Address{\"a1\", \"a2\", \"a3\"},\n\t\t\toffset: 0,\n\t\t\tlimit: 10,\n\t\t\texpected: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"offset with limit\",\n\t\t\taddrs: []std.Address{\"a1\", \"a2\", \"a3\", \"a4\"},\n\t\t\toffset: 1,\n\t\t\tlimit: 2,\n\t\t\texpected: 2,\n\t\t},\n\t\t{\n\t\t\tname: \"offset beyond size\",\n\t\t\taddrs: []std.Address{\"a1\", \"a2\"},\n\t\t\toffset: 3,\n\t\t\tlimit: 1,\n\t\t\texpected: 0,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar set Set\n\t\t\tfor _, addr := range tt.addrs {\n\t\t\t\tset.Add(addr)\n\t\t\t}\n\n\t\t\t// Test forward iteration\n\t\t\tcount := 0\n\t\t\tset.IterateByOffset(tt.offset, tt.limit, func(addr std.Address) bool {\n\t\t\t\tcount++\n\t\t\t\treturn false\n\t\t\t})\n\t\t\tuassert.Equal(t, tt.expected, count)\n\n\t\t\t// Test reverse iteration\n\t\t\tcount = 0\n\t\t\tset.ReverseIterateByOffset(tt.offset, tt.limit, func(addr std.Address) bool {\n\t\t\t\tcount++\n\t\t\t\treturn false\n\t\t\t})\n\t\t\tuassert.Equal(t, tt.expected, count)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/s+oGfEk/5teJUu7xz/sTww7cEjOt16mFMBHOizAQjpLQPB5HTHK1X9/Gnu6fGOV8icce7VhPIx5FKNDq+DlBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"agent","path":"gno.land/p/demo/gnorkle/agent","files":[{"name":"whitelist.gno","body":"package agent\n\nimport \"gno.land/p/demo/avl\"\n\n// Whitelist manages whitelisted agent addresses.\ntype Whitelist struct {\n\tstore *avl.Tree\n}\n\n// ClearAddresses removes all addresses from the whitelist and puts into a state\n// that indicates it is moot and has no whitelist defined.\nfunc (m *Whitelist) ClearAddresses() {\n\tm.store = nil\n}\n\n// AddAddresses adds the given addresses to the whitelist.\nfunc (m *Whitelist) AddAddresses(addresses []string) {\n\tif m.store == nil {\n\t\tm.store = avl.NewTree()\n\t}\n\n\tfor _, address := range addresses {\n\t\tm.store.Set(address, struct{}{})\n\t}\n}\n\n// RemoveAddress removes the given address from the whitelist if it exists.\nfunc (m *Whitelist) RemoveAddress(address string) {\n\tif m.store == nil {\n\t\treturn\n\t}\n\n\tm.store.Remove(address)\n}\n\n// HasDefinition returns true if the whitelist has a definition. It retuns false if\n// `ClearAddresses` has been called without any subsequent `AddAddresses` calls, or\n// if `AddAddresses` has never been called.\nfunc (m Whitelist) HasDefinition() bool {\n\treturn m.store != nil\n}\n\n// HasAddress returns true if the given address is in the whitelist.\nfunc (m Whitelist) HasAddress(address string) bool {\n\tif m.store == nil {\n\t\treturn false\n\t}\n\n\treturn m.store.Has(address)\n}\n"},{"name":"whitelist_test.gno","body":"package agent_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestWhitelist(t *testing.T) {\n\tvar whitelist agent.Whitelist\n\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist should not be defined initially\")\n\n\twhitelist.AddAddresses([]string{\"a\", \"b\"})\n\tuassert.True(t, whitelist.HasAddress(\"a\"), `whitelist should have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should have address \"b\"`)\n\tuassert.True(t, whitelist.HasDefinition(), \"whitelist should be defined after adding addresses\")\n\n\twhitelist.RemoveAddress(\"a\")\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist should not have address \"a\"`)\n\tuassert.True(t, whitelist.HasAddress(\"b\"), `whitelist should still have address \"b\"`)\n\n\twhitelist.ClearAddresses()\n\tuassert.False(t, whitelist.HasAddress(\"a\"), `whitelist cleared; should not have address \"a\"`)\n\tuassert.False(t, whitelist.HasAddress(\"b\"), `whitelist cleared; should still have address \"b\"`)\n\tuassert.False(t, whitelist.HasDefinition(), \"whitelist cleared; should not be defined\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aEcqDXqWOAm8xxl1ocW+EEqXyfn2D3aszNC+Wy4cy1eXUvCKfJ/7DcR+zjRiV41YG16qF3OkMrWcix2p1wReAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"authorizable","path":"gno.land/p/demo/ownable/exts/authorizable","files":[{"name":"authorizable.gno","body":"// Package authorizable is an extension of p/demo/ownable;\n// It allows the user to instantiate an Authorizable struct, which extends\n// p/demo/ownable with a list of users that are authorized for something.\n// By using authorizable, you have a superuser (ownable), as well as another\n// authorization level, which can be used for adding moderators or similar to your realm.\npackage authorizable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Authorizable struct {\n\t*ownable.Ownable // owner in ownable is superuser\n\tauthorized *avl.Tree // std.Addr \u003e struct{}{}\n}\n\nfunc NewAuthorizable() *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.New(),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc NewAuthorizableWithAddress(addr std.Address) *Authorizable {\n\ta := \u0026Authorizable{\n\t\townable.NewWithAddress(addr),\n\t\tavl.NewTree(),\n\t}\n\n\t// Add owner to auth list\n\ta.authorized.Set(a.Owner().String(), struct{}{})\n\treturn a\n}\n\nfunc (a *Authorizable) AddToAuthList(addr std.Address) error {\n\tif !a.CallerIsOwner() {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif _, exists := a.authorized.Get(addr.String()); exists {\n\t\treturn ErrAlreadyInList\n\t}\n\n\ta.authorized.Set(addr.String(), struct{}{})\n\n\treturn nil\n}\n\nfunc (a *Authorizable) DeleteFromAuthList(addr std.Address) error {\n\tif !a.CallerIsOwner() {\n\t\treturn ErrNotSuperuser\n\t}\n\n\tif !a.authorized.Has(addr.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\tif _, removed := a.authorized.Remove(addr.String()); !removed {\n\t\tstr := ufmt.Sprintf(\"authorizable: could not remove %s from auth list\", addr.String())\n\t\tpanic(str)\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) CallerOnAuthList() error {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\treturn ErrNotInAuthList\n\t}\n\n\treturn nil\n}\n\nfunc (a Authorizable) AssertOnAuthList() {\n\tcaller := std.PrevRealm().Addr()\n\n\tif !a.authorized.Has(caller.String()) {\n\t\tpanic(ErrNotInAuthList)\n\t}\n}\n"},{"name":"authorizable_test.gno","body":"package authorizable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestNewAuthorizable(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug, issue #2371): should not be needed\n\n\ta := NewAuthorizable()\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestNewAuthorizableWithAddress(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\n\tgot := a.Owner()\n\n\tif alice != got {\n\t\tt.Fatalf(\"Expected %s, got: %s\", alice, got)\n\t}\n}\n\nfunc TestCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.CallerOnAuthList(); err == ErrNotInAuthList {\n\t\tt.Fatalf(\"expected alice to be on the list\")\n\t}\n}\n\nfunc TestNotCallerOnAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.CallerOnAuthList(); err == nil {\n\t\tt.Fatalf(\"expected bob to not be on the list\")\n\t}\n}\n\nfunc TestAddToAuthList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tif err := a.AddToAuthList(bob); err == nil {\n\t\tt.Fatalf(\"Expected AddToAuth to error while bob called it, but it didn't\")\n\t}\n}\n\nfunc TestDeleteFromList(t *testing.T) {\n\ta := NewAuthorizableWithAddress(alice)\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.AddToAuthList(bob); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tif err := a.AddToAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\t// Try an unauthorized deletion\n\tif err := a.DeleteFromAuthList(alice); err == nil {\n\t\tt.Fatalf(\"Expected DelFromAuth to error with %v\", err)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\n\tif err := a.DeleteFromAuthList(charlie); err != nil {\n\t\tt.Fatalf(\"Expected no error, got %v\", err)\n\t}\n}\n\nfunc TestAssertOnList(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice)\n\ta := NewAuthorizableWithAddress(alice)\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob)\n\n\tuassert.PanicsWithMessage(t, ErrNotInAuthList.Error(), func() {\n\t\ta.AssertOnAuthList()\n\t})\n}\n"},{"name":"errors.gno","body":"package authorizable\n\nimport \"errors\"\n\nvar (\n\tErrNotInAuthList = errors.New(\"authorizable: caller is not in authorized list\")\n\tErrNotSuperuser = errors.New(\"authorizable: caller is not superuser\")\n\tErrAlreadyInList = errors.New(\"authorizable: address is already in authorized list\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+IRPGDq2pUe49x2q+oj744FKoytxVfReshlxyQ50Qi0CNo5OlyYRa19jXwchsUVUjRepgOtGA7Pnf/RwfOJsDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"avl","path":"gno.land/p/demo/avl","files":[{"name":"node.gno","body":"package avl\n\n//----------------------------------------\n// Node\n\n// Node represents a node in an AVL tree.\ntype Node struct {\n\tkey string // key is the unique identifier for the node.\n\tvalue interface{} // value is the data stored in the node.\n\theight int8 // height is the height of the node in the tree.\n\tsize int // size is the number of nodes in the subtree rooted at this node.\n\tleftNode *Node // leftNode is the left child of the node.\n\trightNode *Node // rightNode is the right child of the node.\n}\n\n// NewNode creates a new node with the given key and value.\nfunc NewNode(key string, value interface{}) *Node {\n\treturn \u0026Node{\n\t\tkey: key,\n\t\tvalue: value,\n\t\theight: 0,\n\t\tsize: 1,\n\t}\n}\n\n// Size returns the size of the subtree rooted at the node.\nfunc (node *Node) Size() int {\n\tif node == nil {\n\t\treturn 0\n\t}\n\treturn node.size\n}\n\n// IsLeaf checks if the node is a leaf node (has no children).\nfunc (node *Node) IsLeaf() bool {\n\treturn node.height == 0\n}\n\n// Key returns the key of the node.\nfunc (node *Node) Key() string {\n\treturn node.key\n}\n\n// Value returns the value of the node.\nfunc (node *Node) Value() interface{} {\n\treturn node.value\n}\n\n// _copy creates a copy of the node (excluding value).\nfunc (node *Node) _copy() *Node {\n\tif node.height == 0 {\n\t\tpanic(\"Why are you copying a value node?\")\n\t}\n\treturn \u0026Node{\n\t\tkey: node.key,\n\t\theight: node.height,\n\t\tsize: node.size,\n\t\tleftNode: node.leftNode,\n\t\trightNode: node.rightNode,\n\t}\n}\n\n// Has checks if a node with the given key exists in the subtree rooted at the node.\nfunc (node *Node) Has(key string) (has bool) {\n\tif node == nil {\n\t\treturn false\n\t}\n\tif node.key == key {\n\t\treturn true\n\t}\n\tif node.height == 0 {\n\t\treturn false\n\t}\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Has(key)\n\t}\n\treturn node.getRightNode().Has(key)\n}\n\n// Get searches for a node with the given key in the subtree rooted at the node\n// and returns its index, value, and whether it exists.\nfunc (node *Node) Get(key string) (index int, value interface{}, exists bool) {\n\tif node == nil {\n\t\treturn 0, nil, false\n\t}\n\n\tif node.height == 0 {\n\t\tif node.key == key {\n\t\t\treturn 0, node.value, true\n\t\t}\n\t\tif node.key \u003c key {\n\t\t\treturn 1, nil, false\n\t\t}\n\t\treturn 0, nil, false\n\t}\n\n\tif key \u003c node.key {\n\t\treturn node.getLeftNode().Get(key)\n\t}\n\n\trightNode := node.getRightNode()\n\tindex, value, exists = rightNode.Get(key)\n\tindex += node.size - rightNode.size\n\treturn index, value, exists\n}\n\n// GetByIndex retrieves the key-value pair of the node at the given index\n// in the subtree rooted at the node.\nfunc (node *Node) GetByIndex(index int) (key string, value interface{}) {\n\tif node.height == 0 {\n\t\tif index == 0 {\n\t\t\treturn node.key, node.value\n\t\t}\n\t\tpanic(\"GetByIndex asked for invalid index\")\n\t}\n\t// TODO: could improve this by storing the sizes\n\tleftNode := node.getLeftNode()\n\tif index \u003c leftNode.size {\n\t\treturn leftNode.GetByIndex(index)\n\t}\n\treturn node.getRightNode().GetByIndex(index - leftNode.size)\n}\n\n// Set inserts a new node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\n//\n// XXX consider a better way to do this... perhaps split Node from Node.\nfunc (node *Node) Set(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif node == nil {\n\t\treturn NewNode(key, value), false\n\t}\n\n\tif node.height == 0 {\n\t\treturn node.setLeaf(key, value)\n\t}\n\n\tnode = node._copy()\n\tif key \u003c node.key {\n\t\tnode.leftNode, updated = node.getLeftNode().Set(key, value)\n\t} else {\n\t\tnode.rightNode, updated = node.getRightNode().Set(key, value)\n\t}\n\n\tif updated {\n\t\treturn node, updated\n\t}\n\n\tnode.calcHeightAndSize()\n\treturn node.balance(), updated\n}\n\n// setLeaf inserts a new leaf node with the given key-value pair into the subtree rooted at the node,\n// and returns the new root of the subtree and whether an existing node was updated.\nfunc (node *Node) setLeaf(key string, value interface{}) (newSelf *Node, updated bool) {\n\tif key == node.key {\n\t\treturn NewNode(key, value), true\n\t}\n\n\tif key \u003c node.key {\n\t\treturn \u0026Node{\n\t\t\tkey: node.key,\n\t\t\theight: 1,\n\t\t\tsize: 2,\n\t\t\tleftNode: NewNode(key, value),\n\t\t\trightNode: node,\n\t\t}, false\n\t}\n\n\treturn \u0026Node{\n\t\tkey: key,\n\t\theight: 1,\n\t\tsize: 2,\n\t\tleftNode: node,\n\t\trightNode: NewNode(key, value),\n\t}, false\n}\n\n// Remove deletes the node with the given key from the subtree rooted at the node.\n// returns the new root of the subtree, the new leftmost leaf key (if changed),\n// the removed value and the removal was successful.\nfunc (node *Node) Remove(key string) (\n\tnewNode *Node, newKey string, value interface{}, removed bool,\n) {\n\tif node == nil {\n\t\treturn nil, \"\", nil, false\n\t}\n\tif node.height == 0 {\n\t\tif key == node.key {\n\t\t\treturn nil, \"\", node.value, true\n\t\t}\n\t\treturn node, \"\", nil, false\n\t}\n\tif key \u003c node.key {\n\t\tvar newLeftNode *Node\n\t\tnewLeftNode, newKey, value, removed = node.getLeftNode().Remove(key)\n\t\tif !removed {\n\t\t\treturn node, \"\", value, false\n\t\t}\n\t\tif newLeftNode == nil { // left node held value, was removed\n\t\t\treturn node.rightNode, node.key, value, true\n\t\t}\n\t\tnode = node._copy()\n\t\tnode.leftNode = newLeftNode\n\t\tnode.calcHeightAndSize()\n\t\tnode = node.balance()\n\t\treturn node, newKey, value, true\n\t}\n\n\tvar newRightNode *Node\n\tnewRightNode, newKey, value, removed = node.getRightNode().Remove(key)\n\tif !removed {\n\t\treturn node, \"\", value, false\n\t}\n\tif newRightNode == nil { // right node held value, was removed\n\t\treturn node.leftNode, \"\", value, true\n\t}\n\tnode = node._copy()\n\tnode.rightNode = newRightNode\n\tif newKey != \"\" {\n\t\tnode.key = newKey\n\t}\n\tnode.calcHeightAndSize()\n\tnode = node.balance()\n\treturn node, \"\", value, true\n}\n\n// getLeftNode returns the left child of the node.\nfunc (node *Node) getLeftNode() *Node {\n\treturn node.leftNode\n}\n\n// getRightNode returns the right child of the node.\nfunc (node *Node) getRightNode() *Node {\n\treturn node.rightNode\n}\n\n// rotateRight performs a right rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateRight() *Node {\n\tnode = node._copy()\n\tl := node.getLeftNode()\n\t_l := l._copy()\n\n\t_lrCached := _l.rightNode\n\t_l.rightNode = node\n\tnode.leftNode = _lrCached\n\n\tnode.calcHeightAndSize()\n\t_l.calcHeightAndSize()\n\n\treturn _l\n}\n\n// rotateLeft performs a left rotation on the node and returns the new root.\n// NOTE: overwrites node\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) rotateLeft() *Node {\n\tnode = node._copy()\n\tr := node.getRightNode()\n\t_r := r._copy()\n\n\t_rlCached := _r.leftNode\n\t_r.leftNode = node\n\tnode.rightNode = _rlCached\n\n\tnode.calcHeightAndSize()\n\t_r.calcHeightAndSize()\n\n\treturn _r\n}\n\n// calcHeightAndSize updates the height and size of the node based on its children.\n// NOTE: mutates height and size\nfunc (node *Node) calcHeightAndSize() {\n\tnode.height = maxInt8(node.getLeftNode().height, node.getRightNode().height) + 1\n\tnode.size = node.getLeftNode().size + node.getRightNode().size\n}\n\n// calcBalance calculates the balance factor of the node.\nfunc (node *Node) calcBalance() int {\n\treturn int(node.getLeftNode().height) - int(node.getRightNode().height)\n}\n\n// balance balances the subtree rooted at the node and returns the new root.\n// NOTE: assumes that node can be modified\n// TODO: optimize balance \u0026 rotate\nfunc (node *Node) balance() (newSelf *Node) {\n\tbalance := node.calcBalance()\n\tif balance \u003e= -1 {\n\t\treturn node\n\t}\n\tif balance \u003e 1 {\n\t\tif node.getLeftNode().calcBalance() \u003e= 0 {\n\t\t\t// Left Left Case\n\t\t\treturn node.rotateRight()\n\t\t}\n\t\t// Left Right Case\n\t\tleft := node.getLeftNode()\n\t\tnode.leftNode = left.rotateLeft()\n\t\treturn node.rotateRight()\n\t}\n\n\tif node.getRightNode().calcBalance() \u003c= 0 {\n\t\t// Right Right Case\n\t\treturn node.rotateLeft()\n\t}\n\n\t// Right Left Case\n\tright := node.getRightNode()\n\tnode.rightNode = right.rotateRight()\n\treturn node.rotateLeft()\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) Iterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, true, true, cb)\n}\n\n// Shortcut for TraverseInRange.\nfunc (node *Node) ReverseIterate(start, end string, cb func(*Node) bool) bool {\n\treturn node.TraverseInRange(start, end, false, true, cb)\n}\n\n// TraverseInRange traverses all nodes, including inner nodes.\n// Start is inclusive and end is exclusive when ascending,\n// Start and end are inclusive when descending.\n// Empty start and empty end denote no start and no end.\n// If leavesOnly is true, only visit leaf nodes.\n// NOTE: To simulate an exclusive reverse traversal,\n// just append 0x00 to start.\nfunc (node *Node) TraverseInRange(start, end string, ascending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\tafterStart := (start == \"\" || start \u003c node.key)\n\tstartOrAfter := (start == \"\" || start \u003c= node.key)\n\tbeforeEnd := false\n\tif ascending {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c end)\n\t} else {\n\t\tbeforeEnd = (end == \"\" || node.key \u003c= end)\n\t}\n\n\t// Run callback per inner/leaf node.\n\tstop := false\n\tif (!node.IsLeaf() \u0026\u0026 !leavesOnly) ||\n\t\t(node.IsLeaf() \u0026\u0026 startOrAfter \u0026\u0026 beforeEnd) {\n\t\tstop = cb(node)\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t}\n\tif node.IsLeaf() {\n\t\treturn stop\n\t}\n\n\tif ascending {\n\t\t// check lower nodes, then higher\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t} else {\n\t\t// check the higher nodes first\n\t\tif beforeEnd {\n\t\t\tstop = node.getRightNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t\tif stop {\n\t\t\treturn stop\n\t\t}\n\t\tif afterStart {\n\t\t\tstop = node.getLeftNode().TraverseInRange(start, end, ascending, leavesOnly, cb)\n\t\t}\n\t}\n\n\treturn stop\n}\n\n// TraverseByOffset traverses all nodes, including inner nodes.\n// A limit of math.MaxInt means no limit.\nfunc (node *Node) TraverseByOffset(offset, limit int, ascending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\tif node == nil {\n\t\treturn false\n\t}\n\n\t// fast paths. these happen only if TraverseByOffset is called directly on a leaf.\n\tif limit \u003c= 0 || offset \u003e= node.size {\n\t\treturn false\n\t}\n\tif node.IsLeaf() {\n\t\tif offset \u003e 0 {\n\t\t\treturn false\n\t\t}\n\t\treturn cb(node)\n\t}\n\n\t// go to the actual recursive function.\n\treturn node.traverseByOffset(offset, limit, ascending, leavesOnly, cb)\n}\n\n// TraverseByOffset traverses the subtree rooted at the node by offset and limit,\n// in either ascending or descending order, and applies the callback function to each traversed node.\n// If leavesOnly is true, only leaf nodes are visited.\nfunc (node *Node) traverseByOffset(offset, limit int, ascending bool, leavesOnly bool, cb func(*Node) bool) bool {\n\t// caller guarantees: offset \u003c node.size; limit \u003e 0.\n\tif !leavesOnly {\n\t\tif cb(node) {\n\t\t\treturn true // Stop traversal if callback returns true\n\t\t}\n\t}\n\tfirst, second := node.getLeftNode(), node.getRightNode()\n\tif !ascending {\n\t\tfirst, second = second, first\n\t}\n\tif first.IsLeaf() {\n\t\t// either run or skip, based on offset\n\t\tif offset \u003e 0 {\n\t\t\toffset--\n\t\t} else {\n\t\t\tif cb(first) {\n\t\t\t\treturn true // Stop traversal if callback returns true\n\t\t\t}\n\t\t\tlimit--\n\t\t\tif limit \u003c= 0 {\n\t\t\t\treturn true // Stop traversal when limit is reached\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// possible cases:\n\t\t// 1 the offset given skips the first node entirely\n\t\t// 2 the offset skips none or part of the first node, but the limit requires some of the second node.\n\t\t// 3 the offset skips none or part of the first node, and the limit stops our search on the first node.\n\t\tif offset \u003e= first.size {\n\t\t\toffset -= first.size // 1\n\t\t} else {\n\t\t\tif first.traverseByOffset(offset, limit, ascending, leavesOnly, cb) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// number of leaves which could actually be called from inside\n\t\t\tdelta := first.size - offset\n\t\t\toffset = 0\n\t\t\tif delta \u003e= limit {\n\t\t\t\treturn true // 3\n\t\t\t}\n\t\t\tlimit -= delta // 2\n\t\t}\n\t}\n\n\t// because of the caller guarantees and the way we handle the first node,\n\t// at this point we know that limit \u003e 0 and there must be some values in\n\t// this second node that we include.\n\n\t// =\u003e if the second node is a leaf, it has to be included.\n\tif second.IsLeaf() {\n\t\treturn cb(second)\n\t}\n\t// =\u003e if it is not a leaf, it will still be enough to recursively call this\n\t// function with the updated offset and limit\n\treturn second.traverseByOffset(offset, limit, ascending, leavesOnly, cb)\n}\n\n// Only used in testing...\nfunc (node *Node) lmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getLeftNode().lmd()\n}\n\n// Only used in testing...\nfunc (node *Node) rmd() *Node {\n\tif node.height == 0 {\n\t\treturn node\n\t}\n\treturn node.getRightNode().rmd()\n}\n\nfunc maxInt8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"node_test.gno","body":"package avl\n\nimport (\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestTraverseByOffset(t *testing.T) {\n\tconst testStrings = `Alfa\nAlfred\nAlpha\nAlphabet\nBeta\nBeth\nBook\nBrowser`\n\ttt := []struct {\n\t\tname string\n\t\tasc bool\n\t}{\n\t\t{\"ascending\", true},\n\t\t{\"descending\", false},\n\t}\n\n\tfor _, tt := range tt {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\t// use sl to insert the values, and reversed to match the values\n\t\t\t// we do this to ensure that the order of TraverseByOffset is independent\n\t\t\t// from the insertion order\n\t\t\tsl := strings.Split(testStrings, \"\\n\")\n\t\t\tsort.Strings(sl)\n\t\t\treversed := append([]string{}, sl...)\n\t\t\treverseSlice(reversed)\n\n\t\t\tif !tt.asc {\n\t\t\t\tsl, reversed = reversed, sl\n\t\t\t}\n\n\t\t\tr := NewNode(reversed[0], nil)\n\t\t\tfor _, v := range reversed[1:] {\n\t\t\t\tr, _ = r.Set(v, nil)\n\t\t\t}\n\n\t\t\tvar result []string\n\t\t\tfor i := 0; i \u003c len(sl); i++ {\n\t\t\t\tr.TraverseByOffset(i, 1, tt.asc, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif !slicesEqual(sl, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", sl, result)\n\t\t\t}\n\n\t\t\tfor l := 2; l \u003c= len(sl); l++ {\n\t\t\t\t// \"slices\"\n\t\t\t\tfor i := 0; i \u003c= len(sl); i++ {\n\t\t\t\t\tmax := i + l\n\t\t\t\t\tif max \u003e len(sl) {\n\t\t\t\t\t\tmax = len(sl)\n\t\t\t\t\t}\n\t\t\t\t\texp := sl[i:max]\n\t\t\t\t\tactual := []string{}\n\n\t\t\t\t\tr.TraverseByOffset(i, l, tt.asc, true, func(tr *Node) bool {\n\t\t\t\t\t\tactual = append(actual, tr.Key())\n\t\t\t\t\t\treturn false\n\t\t\t\t\t})\n\t\t\t\t\tif !slicesEqual(exp, actual) {\n\t\t\t\t\t\tt.Errorf(\"want %v got %v\", exp, actual)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestHas(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\thasKey string\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\t\"has key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in non-empty tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"has key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"A\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in single-node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t\"B\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"does not have key in empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tresult := tree.Has(tt.hasKey)\n\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tgetKey string\n\t\texpectIdx int\n\t\texpectVal interface{}\n\t\texpectExists bool\n\t}{\n\t\t{\n\t\t\t\"get existing key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"B\",\n\t\t\t1,\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (smaller)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"@\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get non-existent key (larger)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t5,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get from empty tree\",\n\t\t\t[]string{},\n\t\t\t\"A\",\n\t\t\t0,\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tidx, val, exists := tree.Get(tt.getKey)\n\n\t\t\tif idx != tt.expectIdx {\n\t\t\t\tt.Errorf(\"Expected index %d, got %d\", tt.expectIdx, idx)\n\t\t\t}\n\n\t\t\tif val != tt.expectVal {\n\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t}\n\n\t\t\tif exists != tt.expectExists {\n\t\t\t\tt.Errorf(\"Expected exists %t, got %t\", tt.expectExists, exists)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetByIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tidx int\n\t\texpectKey string\n\t\texpectVal interface{}\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\t\"get by valid index\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t2,\n\t\t\t\"C\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (smallest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t0,\n\t\t\t\"A\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by valid index (largest)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t4,\n\t\t\t\"E\",\n\t\t\tnil,\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (negative)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t-1,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"get by invalid index (out of range)\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t5,\n\t\t\t\"\",\n\t\t\tnil,\n\t\t\ttrue,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tif tt.expectPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\t\tt.Errorf(\"Expected a panic but didn't get one\")\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t}\n\n\t\t\tkey, val := tree.GetByIndex(tt.idx)\n\n\t\t\tif !tt.expectPanic {\n\t\t\t\tif key != tt.expectKey {\n\t\t\t\t\tt.Errorf(\"Expected key %s, got %s\", tt.expectKey, key)\n\t\t\t\t}\n\n\t\t\t\tif val != tt.expectVal {\n\t\t\t\t\tt.Errorf(\"Expected value %v, got %v\", tt.expectVal, val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRemove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\tremoveKey string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"remove leaf node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"B\",\n\t\t\t[]string{\"A\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with one child\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"D\"},\n\t\t\t\"A\",\n\t\t\t[]string{\"B\", \"C\", \"D\"},\n\t\t},\n\t\t{\n\t\t\t\"remove node with two children\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove root node\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"C\",\n\t\t\t[]string{\"A\", \"B\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"remove non-existent key\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t\"F\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree, _, _, _ = tree.Remove(tt.removeKey)\n\n\t\t\tresult := make([]string, 0)\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestTraverse(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"empty tree\",\n\t\t\t[]string{},\n\t\t\t[]string{},\n\t\t},\n\t\t{\n\t\t\t\"single node tree\",\n\t\t\t[]string{\"A\"},\n\t\t\t[]string{\"A\"},\n\t\t},\n\t\t{\n\t\t\t\"small tree\",\n\t\t\t[]string{\"C\", \"A\", \"B\", \"E\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"large tree\",\n\t\t\t[]string{\"H\", \"D\", \"L\", \"B\", \"F\", \"J\", \"N\", \"A\", \"C\", \"E\", \"G\", \"I\", \"K\", \"M\", \"O\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\tt.Run(\"iterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"ReverseIterate\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\ttree.ReverseIterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, len(tt.expected))\n\t\t\t\tcopy(expected, tt.expected)\n\t\t\t\tfor i, j := 0, len(expected)-1; i \u003c j; i, j = i+1, j-1 {\n\t\t\t\t\texpected[i], expected[j] = expected[j], expected[i]\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"TraverseInRange\", func(t *testing.T) {\n\t\t\t\tvar result []string\n\t\t\t\tstart, end := \"C\", \"M\"\n\t\t\t\ttree.TraverseInRange(start, end, true, true, func(n *Node) bool {\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\texpected := make([]string, 0)\n\t\t\t\tfor _, key := range tt.expected {\n\t\t\t\t\tif key \u003e= start \u0026\u0026 key \u003c end {\n\t\t\t\t\t\texpected = append(expected, key)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !slicesEqual(expected, result) {\n\t\t\t\t\tt.Errorf(\"want %v got %v\", expected, result)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tt.Run(\"early termination\", func(t *testing.T) {\n\t\t\t\tif len(tt.input) == 0 {\n\t\t\t\t\treturn // Skip for empty tree\n\t\t\t\t}\n\n\t\t\t\tvar result []string\n\t\t\t\tvar count int\n\t\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\t\tcount++\n\t\t\t\t\tresult = append(result, n.Key())\n\t\t\t\t\treturn true // Stop after first item\n\t\t\t\t})\n\n\t\t\t\tif count != 1 {\n\t\t\t\t\tt.Errorf(\"Expected callback to be called exactly once, got %d calls\", count)\n\t\t\t\t}\n\t\t\t\tif len(result) != 1 {\n\t\t\t\t\tt.Errorf(\"Expected exactly one result, got %d items\", len(result))\n\t\t\t\t}\n\t\t\t\tif len(result) \u003e 0 \u0026\u0026 result[0] != tt.expected[0] {\n\t\t\t\t\tt.Errorf(\"Expected first item to be %v, got %v\", tt.expected[0], result[0])\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestRotateWhenHeightDiffers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation when left subtree is higher\",\n\t\t\t[]string{\"E\", \"C\", \"A\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation when right subtree is higher\",\n\t\t\t[]string{\"A\", \"C\", \"E\", \"D\", \"F\"},\n\t\t\t[]string{\"A\", \"C\", \"D\", \"E\", \"F\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"E\", \"A\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"A\", \"E\", \"C\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\t// perform rotation or balance\n\t\t\ttree = tree.balance()\n\n\t\t\t// check tree structure\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestRotateAndBalance(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\t\"right rotation\",\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left rotation\",\n\t\t\t[]string{\"E\", \"D\", \"C\", \"B\", \"A\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"left-right rotation\",\n\t\t\t[]string{\"C\", \"A\", \"E\", \"B\", \"D\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t\t{\n\t\t\t\"right-left rotation\",\n\t\t\t[]string{\"C\", \"E\", \"A\", \"D\", \"B\"},\n\t\t\t[]string{\"A\", \"B\", \"C\", \"D\", \"E\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar tree *Node\n\t\t\tfor _, key := range tt.input {\n\t\t\t\ttree, _ = tree.Set(key, nil)\n\t\t\t}\n\n\t\t\ttree = tree.balance()\n\n\t\t\tvar result []string\n\t\t\ttree.Iterate(\"\", \"\", func(n *Node) bool {\n\t\t\t\tresult = append(result, n.Key())\n\t\t\t\treturn false\n\t\t\t})\n\n\t\t\tif !slicesEqual(tt.expected, result) {\n\t\t\t\tt.Errorf(\"want %v got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc slicesEqual(w1, w2 []string) bool {\n\tif len(w1) != len(w2) {\n\t\treturn false\n\t}\n\tfor i := 0; i \u003c len(w1); i++ {\n\t\tif w1[i] != w2[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc maxint8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc reverseSlice(ss []string) {\n\tfor i := 0; i \u003c len(ss)/2; i++ {\n\t\tj := len(ss) - 1 - i\n\t\tss[i], ss[j] = ss[j], ss[i]\n\t}\n}\n"},{"name":"tree.gno","body":"package avl\n\ntype ITree interface {\n\t// read operations\n\n\tSize() int\n\tHas(key string) bool\n\tGet(key string) (value interface{}, exists bool)\n\tGetByIndex(index int) (key string, value interface{})\n\tIterate(start, end string, cb IterCbFn) bool\n\tReverseIterate(start, end string, cb IterCbFn) bool\n\tIterateByOffset(offset int, count int, cb IterCbFn) bool\n\tReverseIterateByOffset(offset int, count int, cb IterCbFn) bool\n\n\t// write operations\n\n\tSet(key string, value interface{}) (updated bool)\n\tRemove(key string) (value interface{}, removed bool)\n}\n\ntype IterCbFn func(key string, value interface{}) bool\n\n//----------------------------------------\n// Tree\n\n// The zero struct can be used as an empty tree.\ntype Tree struct {\n\tnode *Node\n}\n\n// NewTree creates a new empty AVL tree.\nfunc NewTree() *Tree {\n\treturn \u0026Tree{\n\t\tnode: nil,\n\t}\n}\n\n// Size returns the number of key-value pair in the tree.\nfunc (tree *Tree) Size() int {\n\treturn tree.node.Size()\n}\n\n// Has checks whether a key exists in the tree.\n// It returns true if the key exists, otherwise false.\nfunc (tree *Tree) Has(key string) (has bool) {\n\treturn tree.node.Has(key)\n}\n\n// Get retrieves the value associated with the given key.\n// It returns the value and a boolean indicating whether the key exists.\nfunc (tree *Tree) Get(key string) (value interface{}, exists bool) {\n\t_, value, exists = tree.node.Get(key)\n\treturn\n}\n\n// GetByIndex retrieves the key-value pair at the specified index in the tree.\n// It returns the key and value at the given index.\nfunc (tree *Tree) GetByIndex(index int) (key string, value interface{}) {\n\treturn tree.node.GetByIndex(index)\n}\n\n// Set inserts a key-value pair into the tree.\n// If the key already exists, the value will be updated.\n// It returns a boolean indicating whether the key was newly inserted or updated.\nfunc (tree *Tree) Set(key string, value interface{}) (updated bool) {\n\tnewnode, updated := tree.node.Set(key, value)\n\ttree.node = newnode\n\treturn updated\n}\n\n// Remove removes a key-value pair from the tree.\n// It returns the removed value and a boolean indicating whether the key was found and removed.\nfunc (tree *Tree) Remove(key string) (value interface{}, removed bool) {\n\tnewnode, _, value, removed := tree.node.Remove(key)\n\ttree.node = newnode\n\treturn value, removed\n}\n\n// Iterate performs an in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) Iterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterate performs a reverse in-order traversal of the tree within the specified key range.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterate(start, end string, cb IterCbFn) bool {\n\treturn tree.node.TraverseInRange(start, end, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// IterateByOffset performs an in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) IterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, true, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// ReverseIterateByOffset performs a reverse in-order traversal of the tree starting from the specified offset.\n// It calls the provided callback function for each key-value pair encountered, up to the specified count.\n// If the callback returns true, the iteration is stopped.\nfunc (tree *Tree) ReverseIterateByOffset(offset int, count int, cb IterCbFn) bool {\n\treturn tree.node.TraverseByOffset(offset, count, false, true,\n\t\tfunc(node *Node) bool {\n\t\t\treturn cb(node.Key(), node.Value())\n\t\t},\n\t)\n}\n\n// Verify that Tree implements TreeInterface\nvar _ ITree = (*Tree)(nil)\n"},{"name":"tree_test.gno","body":"package avl\n\nimport \"testing\"\n\nfunc TestNewTree(t *testing.T) {\n\ttree := NewTree()\n\tif tree.node != nil {\n\t\tt.Error(\"Expected tree.node to be nil\")\n\t}\n}\n\nfunc TestTreeSize(t *testing.T) {\n\ttree := NewTree()\n\tif tree.Size() != 0 {\n\t\tt.Error(\"Expected empty tree size to be 0\")\n\t}\n\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\tif tree.Size() != 2 {\n\t\tt.Error(\"Expected tree size to be 2\")\n\t}\n}\n\nfunc TestTreeHas(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tif !tree.Has(\"key1\") {\n\t\tt.Error(\"Expected tree to have key1\")\n\t}\n\n\tif tree.Has(\"key2\") {\n\t\tt.Error(\"Expected tree to not have key2\")\n\t}\n}\n\nfunc TestTreeGet(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, exists := tree.Get(\"key1\")\n\tif !exists || value != \"value1\" {\n\t\tt.Error(\"Expected Get to return value1 and true\")\n\t}\n\n\t_, exists = tree.Get(\"key2\")\n\tif exists {\n\t\tt.Error(\"Expected Get to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeGetByIndex(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\n\tkey, value := tree.GetByIndex(0)\n\tif key != \"key1\" || value != \"value1\" {\n\t\tt.Error(\"Expected GetByIndex(0) to return key1 and value1\")\n\t}\n\n\tkey, value = tree.GetByIndex(1)\n\tif key != \"key2\" || value != \"value2\" {\n\t\tt.Error(\"Expected GetByIndex(1) to return key2 and value2\")\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Error(\"Expected GetByIndex to panic for out-of-range index\")\n\t\t}\n\t}()\n\ttree.GetByIndex(2)\n}\n\nfunc TestTreeRemove(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\n\tvalue, removed := tree.Remove(\"key1\")\n\tif !removed || value != \"value1\" || tree.Size() != 0 {\n\t\tt.Error(\"Expected Remove to remove key-value pair\")\n\t}\n\n\t_, removed = tree.Remove(\"key2\")\n\tif removed {\n\t\tt.Error(\"Expected Remove to return false for non-existent key\")\n\t}\n}\n\nfunc TestTreeIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key1\", \"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterate(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key3\", \"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.IterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key3\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n\nfunc TestTreeReverseIterateByOffset(t *testing.T) {\n\ttree := NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\tvar keys []string\n\ttree.ReverseIterateByOffset(1, 2, func(key string, value interface{}) bool {\n\t\tkeys = append(keys, key)\n\t\treturn false\n\t})\n\n\texpectedKeys := []string{\"key2\", \"key1\"}\n\tif !slicesEqual(keys, expectedKeys) {\n\t\tt.Errorf(\"Expected keys %v, got %v\", expectedKeys, keys)\n\t}\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\t// node, _ = node.Set(\"key0\", \"value0\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key1\", \"value1\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 2\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"627e8e517e7ae5db0f3b753e2a32b607989198b6\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:5\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b28057ab7be6383785c0a5503e8a531bdbc21851\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:7]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"6da365f0d6cacbcdf53cd5a4b125803cddce08c2\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:4\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f216afe7b5a17f4ebdbb98dceccedbc22e237596\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ff1a50d8489090af37a2c7766d659f0d717939b5\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"5\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ae86874f9b47fa5e64c30b3e92e9d07f2ec967a4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_0.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_0.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_0.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_0.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar node *avl.Node\n\nfunc init() {\n\tnode = avl.NewNode(\"key0\", \"value0\")\n\tnode, _ = node.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tnode, updated = node.Set(\"key2\", \"value2\")\n\t// println(node, updated)\n\tprintln(updated, node.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"143aebc820da33550f7338723fb1e2eec575b196\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2f3adc5d0f2a3fe0331cfa93572a7abdde14c9aa\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"2e733a8e9e74fe14f0a5d10fb0f6728fa53d052d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fe20a19f956511f274dc77854e9e5468387260f4\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c89a71bdf045e8bde2059dc9d33839f916e02e5d\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:6\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"90fa67f8c47db4b9b2a60425dff08d5a3385100f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"83e42caaf53070dd95b5f859053eb51ed900bbda\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:2]={\n// \"Blank\": {},\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"9\",\n// \"RefCount\": \"2\"\n// },\n// \"Parent\": null,\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"0\",\n// \"File\": \"\",\n// \"Line\": \"0\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Values\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1faa9fa4ba1935121a6d3f0a623772e9d4499b0a\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_1.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"init.1\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_1.gno\",\n// \"Line\": \"10\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// },\n// \"V\": {\n// \"@type\": \"/gno.FuncValue\",\n// \"Closure\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\"\n// },\n// \"FileName\": \"z_1.gno\",\n// \"IsMethod\": false,\n// \"Name\": \"main\",\n// \"NativeName\": \"\",\n// \"NativePkg\": \"\",\n// \"PkgPath\": \"gno.land/r/test\",\n// \"Source\": {\n// \"@type\": \"/gno.RefNode\",\n// \"BlockNode\": null,\n// \"Location\": {\n// \"Column\": \"1\",\n// \"File\": \"z_1.gno\",\n// \"Line\": \"15\",\n// \"PkgPath\": \"gno.land/r/test\"\n// }\n// },\n// \"Type\": {\n// \"@type\": \"/gno.FuncType\",\n// \"Params\": [],\n// \"Results\": []\n// }\n// }\n// }\n// ]\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:4]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar tree avl.Tree\n\nfunc init() {\n\ttree.Set(\"key0\", \"value0\")\n\ttree.Set(\"key1\", \"value1\")\n}\n\nfunc main() {\n\tvar updated bool\n\tupdated = tree.Set(\"key2\", \"value2\")\n\tprintln(updated, tree.Size())\n}\n\n// Output:\n// false 3\n\n// Realm:\n// switchrealm[\"gno.land/r/test\"]\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:16]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"value2\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:15]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"db333c89cd6773709e031f1f4e4ed4d3fed66c11\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:16\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:14]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key2\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"849a50d6c78d65742752e3c89ad8dd556e2e63cb\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:9\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b4fc2fdd2d0fe936c87ed2ace97136cffeed207f\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:15\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:13]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a1160b0060ad752dbfe5fe436f7734bb19136150\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:14\"\n// }\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:12]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"key1\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AwAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"fd95e08763159ac529e26986d652e752e78b6325\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:7\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3ecdcf148fe2f9e97b72a3bedf303b2ba56d4f4b\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:13\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[a8ada09dee16d791fd406d629fe29bb0ed084a30:11]={\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"63126557dba88f8556f7a0ccbbfc1d218ae7a302\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:12\"\n// }\n// }\n// }\n// u[a8ada09dee16d791fd406d629fe29bb0ed084a30:3]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"d31c7e797793e03ffe0bbcb72f963264f8300d22\",\n// \"ObjectID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:11\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:3\",\n// \"ModTime\": \"10\",\n// \"OwnerID\": \"a8ada09dee16d791fd406d629fe29bb0ed084a30:2\",\n// \"RefCount\": \"1\"\n// }\n// }\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:5]\n// d[a8ada09dee16d791fd406d629fe29bb0ed084a30:6]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qaDn0Lql/SBpsHX0bA6UJMUXKbOKkvo3a7anT2yIY7kwW1VsApH/MQG4pyQhkcRPGptEwhh35leY9wkWyu9hDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"avl_pager","path":"gno.land/r/docs/avl_pager","files":[{"name":"avl_pager.gno","body":"package avl_pager\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n)\n\n// Tree instance for 100 items\nvar tree *avl.Tree\n\n// Initialize a tree with 100 items.\nfunc init() {\n\ttree = avl.NewTree()\n\tfor i := 1; i \u003c= 100; i++ {\n\t\tkey := \"Item\" + strconv.Itoa(i)\n\t\ttree.Set(key, \"Value of \"+key)\n\t}\n}\n\n// Render paginated content based on the given URL path.\n// URL format: `...?page=\u003cpage\u003e\u0026size=\u003csize\u003e` (default is page 1 and size 10).\nfunc Render(path string) string {\n\tp := pager.NewPager(tree, 10, false) // Default page size is 10\n\tpage := p.MustGetPageByPath(path)\n\n\t// Header and pagination info\n\tresult := \"# Paginated Items\\n\"\n\tresult += \"Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"\\n\\n\"\n\tresult += page.Picker() + \"\\n\\n\"\n\n\t// Display items on the current page\n\tfor _, item := range page.Items {\n\t\tresult += \"- \" + item.Key + \": \" + item.Value.(string) + \"\\n\"\n\t}\n\n\tresult += \"\\n\" + page.Picker() // Repeat page picker for ease of navigation\n\treturn result\n}\n"},{"name":"avl_pager_test.gno","body":"package avl_pager\n\nimport (\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\t// Test default Render output (first page)\n\toutput := Render(\"\")\n\texpected := `# Paginated Items\nPage 1 of 10\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\n\n- Item1: Value of Item1\n- Item10: Value of Item10\n- Item100: Value of Item100\n- Item11: Value of Item11\n- Item12: Value of Item12\n- Item13: Value of Item13\n- Item14: Value of Item14\n- Item15: Value of Item15\n- Item16: Value of Item16\n- Item17: Value of Item17\n\n**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n\nfunc TestRender_page2(t *testing.T) {\n\t// Test Render output for a custom page (page 2)\n\toutput := Render(\"?page=2\u0026size=10\")\n\texpected := `# Paginated Items\nPage 2 of 10\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\n\n- Item18: Value of Item18\n- Item19: Value of Item19\n- Item2: Value of Item2\n- Item20: Value of Item20\n- Item21: Value of Item21\n- Item22: Value of Item22\n- Item23: Value of Item23\n- Item24: Value of Item24\n- Item25: Value of Item25\n- Item26: Value of Item26\n\n[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)`\n\tif output != expected {\n\t\tt.Errorf(\"Render(\\\"\\\") failed, got:\\n%s\", output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6l6PDXPAVzUxOdLWiu2S4nesXcpVydLgXLSBoCeYuTSD2ZhdTcomUrMqomhfUQRz/KKvuZVNJZ9TKQ4TPN+PAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"avlhelpers","path":"gno.land/p/demo/avlhelpers","files":[{"name":"avlhelpers.gno","body":"package avlhelpers\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\n// Iterate the keys in-order starting from the given prefix.\n// It calls the provided callback function for each key-value pair encountered.\n// If the callback returns true, the iteration is stopped.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc IterateByteStringKeysByPrefix(tree avl.ITree, prefix string, cb avl.IterCbFn) {\n\tend := \"\"\n\tn := len(prefix)\n\t// To make the end of the search, increment the final character ASCII by one.\n\tfor n \u003e 0 {\n\t\tif ascii := int(prefix[n-1]); ascii \u003c 0xff {\n\t\t\tend = prefix[0:n-1] + string(ascii+1)\n\t\t\tbreak\n\t\t}\n\n\t\t// The last character is 0xff. Try the previous character.\n\t\tn--\n\t}\n\n\ttree.Iterate(prefix, end, cb)\n}\n\n// Get a list of keys starting from the given prefix. Limit the\n// number of results to maxResults.\n// The prefix and keys are treated as byte strings, ignoring possible multi-byte Unicode runes.\nfunc ListByteStringKeysByPrefix(tree avl.ITree, prefix string, maxResults int) []string {\n\tresult := []string{}\n\tIterateByteStringKeysByPrefix(tree, prefix, func(key string, value interface{}) bool {\n\t\tresult = append(result, key)\n\t\tif len(result) \u003e= maxResults {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/test\npackage test\n\nimport (\n\t\"encoding/hex\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\ttree := avl.NewTree()\n\n\t{\n\t\t// Empty tree.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t}\n\n\ttree.Set(\"alice\", \"\")\n\ttree.Set(\"andy\", \"\")\n\ttree.Set(\"bob\", \"\")\n\n\t{\n\t\t// Match only alice.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"al\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\t{\n\t\t// Match alice and andy.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t\tprintln(\"match: \" + matches[1])\n\t}\n\n\t{\n\t\t// Match alice and andy limited to 1.\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\", 1)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(\"match: \" + matches[0])\n\t}\n\n\ttree = avl.NewTree()\n\ttree.Set(\"a\\xff\", \"\")\n\ttree.Set(\"a\\xff\\xff\", \"\")\n\ttree.Set(\"b\", \"\")\n\ttree.Set(\"\\xff\\xff\\x00\", \"\")\n\n\t{\n\t\t// Match only \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n\n\t{\n\t\t// Match \"a\\xff\" and \"a\\xff\\xff\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"a\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[1]))))\n\t}\n\n\t{\n\t\t// Edge case: Match only \"\\xff\\xff\\x00\".\n\t\tmatches := avlhelpers.ListByteStringKeysByPrefix(tree, \"\\xff\\xff\", 10)\n\t\tprintln(ufmt.Sprintf(\"# matches: %d\", len(matches)))\n\t\tprintln(ufmt.Sprintf(\"match: %s\", hex.EncodeToString([]byte(matches[0]))))\n\t}\n}\n\n// Output:\n// # matches: 0\n// # matches: 1\n// match: alice\n// # matches: 2\n// match: alice\n// match: andy\n// # matches: 1\n// match: alice\n// # matches: 1\n// match: 61ffff\n// # matches: 2\n// match: 61ff\n// match: 61ffff\n// # matches: 1\n// match: ffff00\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A2e/Nv57B9O0m2+1NMZC1OHLhbVcEHK6SPPke8QJfhnyqyniblVlb/lstMubMITSQdL0AnC2n0hcgwMXfhJFBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"bank","path":"gno.land/p/demo/bank","files":[{"name":"types.gno","body":"// TODO: this is an example, and needs to be fixed up and tested.\n\npackage bank\n\n// NOTE: unexposed struct for security.\ntype order struct {\n\tfrom Address\n\tto Address\n\tamount Coins\n\tprocessed bool\n}\n\n// NOTE: unexposed methods for security.\nfunc (ch *order) string() string {\n\treturn \"TODO\"\n}\n\n// Wraps the internal *order for external use.\ntype Order struct {\n\t*order\n}\n\n// XXX only exposed for demonstration. TODO unexpose, make full demo.\nfunc NewOrder(from Address, to Address, amount Coins) Order {\n\treturn Order{\n\t\torder: \u0026order{\n\t\t\tfrom: from,\n\t\t\tto: to,\n\t\t\tamount: amount,\n\t\t},\n\t}\n}\n\n// Panics if error, or already processed.\nfunc (o Order) Execute() {\n\tif o.order.processed {\n\t\tpanic(\"order already processed\")\n\t}\n\to.order.processed = true\n\t// TODO implemement.\n}\n\nfunc (o Order) IsZero() bool {\n\treturn o.order == nil\n}\n\nfunc (o Order) From() Address {\n\treturn o.order.from\n}\n\nfunc (o Order) To() Address {\n\treturn o.order.to\n}\n\nfunc (o Order) Amount() Coins {\n\treturn o.order.amount\n}\n\nfunc (o Order) Processed() bool {\n\treturn o.order.processed\n}\n\n//----------------------------------------\n// Escrow\n\ntype EscrowTerms struct {\n\tPartyA Address\n\tPartyB Address\n\tAmountA Coins\n\tAmountB Coins\n}\n\ntype EscrowContract struct {\n\tEscrowTerms\n\tOrderA Order\n\tOrderB Order\n}\n\nfunc CreateEscrow(terms EscrowTerms) *EscrowContract {\n\treturn \u0026EscrowContract{\n\t\tEscrowTerms: terms,\n\t}\n}\n\nfunc (esc *EscrowContract) SetOrderA(order Order) {\n\tif !esc.OrderA.IsZero() {\n\t\tpanic(\"order-a already set\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.From() {\n\t\tpanic(\"invalid order-a:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.To() {\n\t\tpanic(\"invalid order-a:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountA.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-a amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) SetOrderB(order Order) {\n\tif !esc.OrderB.IsZero() {\n\t\tpanic(\"order-b already set\")\n\t}\n\tif esc.EscrowTerms.PartyB != order.From() {\n\t\tpanic(\"invalid order-b:from mismatch\")\n\t}\n\tif esc.EscrowTerms.PartyA != order.To() {\n\t\tpanic(\"invalid order-b:to mismatch\")\n\t}\n\tif !esc.EscrowTerms.AmountB.Equal(order.Amount()) {\n\t\tpanic(\"invalid order-b amount\")\n\t}\n\tesc.OrderA = order\n}\n\nfunc (esc *EscrowContract) Execute() {\n\tif esc.OrderA.IsZero() {\n\t\tpanic(\"order-a not yet set\")\n\t}\n\tif esc.OrderB.IsZero() {\n\t\tpanic(\"order-b not yet set\")\n\t}\n\t// NOTE: succeeds atomically.\n\tesc.OrderA.Execute()\n\tesc.OrderB.Execute()\n}\n\n//----------------------------------------\n// TODO: actually implement these in std package.\n\ntype (\n\tAddress string\n\tCoins []Coin\n\tCoin struct {\n\t\tDenom bool\n\t\tAmount int64\n\t}\n)\n\nfunc (a Coins) Equal(b Coins) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JD7NWNUgrX6SVBbtm2bGAMdMpqsLc57Z+5IwBamR+ZLhucEGKAU8lbHvQ2SqzF4WOVxLcpzb0c5TpOzeaPv0Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"banktest","path":"gno.land/r/demo/banktest","files":[{"name":"README.md","body":"This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.go](/r/demo/banktest/banktest.go) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n \"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e Self explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n caller std.Address\n sent std.Coins\n returned std.Coins\n time time.Time\n}\n\nfunc (act *activity) String() string {\n return act.caller.String() + \" \" +\n act.sent.String() + \" sent, \" +\n act.returned.String() + \" returned, at \" +\n act.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract. Notice that the \"latest\" variable is defined \"globally\" within the context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package are encapsulated within this \"data realm\", where the data is mutated based on transactions that can potentially cross many realm and non-realm package boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n std.AssertOriginCall()\n caller := std.GetOrigCaller()\n send := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named \"Deposit\". `std.AssertOriginCall() asserts that this function was called by a gno transactional Message. The caller is the user who signed off on this transactional message. Send is the amount of deposit sent along with this message.\n\n```go\n // record activity\n act := \u0026activity{\n caller: caller,\n sent: std.GetOrigSend(),\n returned: send,\n time: time.Now(),\n }\n for i := len(latest) - 2; i \u003e= 0; i-- {\n latest[i+1] = latest[i] // shift by +1.\n }\n latest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n // return if any.\n if returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n banker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n pkgaddr := std.GetOrigPkgAddr()\n // TODO: use std.Coins constructors, this isn't generally safe.\n banker.SendCoins(pkgaddr, caller, send)\n return \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n // get realm coins.\n banker := std.GetBanker(std.BankerTypeReadonly)\n coins := banker.GetCoins(std.GetOrigPkgAddr())\n\n // render\n res := \"\"\n res += \"## recent activity\\n\"\n res += \"\\n\"\n for _, act := range latest {\n if act == nil {\n break\n }\n res += \" * \" + act.String() + \"\\n\"\n }\n res += \"\\n\"\n res += \"## total deposits\\n\"\n res += coins.String()\n return res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:gnolang/4).\n"},{"name":"banktest.gno","body":"package banktest\n\nimport (\n\t\"std\"\n\t\"time\"\n)\n\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime time.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tact.time.Format(\"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: time.Now(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n\t// return if any.\n\tif returnAmount \u003e 0 {\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n\t} else {\n\t\treturn \"thank you!\"\n\t}\n}\n\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n"},{"name":"z_0_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\n// SEND: 100000000ugnot\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\t// set up main address and banktest addr.\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\n\t// get and print balance of mainaddr.\n\t// with the SEND, + 200 gnot given by the TestContext, main should have 300gnot.\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\t// simulate a Deposit call. use Send + OrigSend to simulate -send.\n\tbanker.SendCoins(mainaddr, banktestAddr, std.Coins{{\"ugnot\", 100_000_000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100_000_000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 50_000_000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n\n\t// simulate a Render(). banker should have given back all coins.\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before: 100000000ugnot\n// Deposit(): returned!\n// main after: 50000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 50000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 50000000ugnot\n"},{"name":"z_1_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 101000000)\n\tprintln(res)\n}\n\n// Error:\n// cannot send \"101000000ugnot\", limit \"100000000ugnot\" exceeded with \"\" already spent\n"},{"name":"z_2_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/banktest\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\t// print main balance before.\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal) // plus OrigSend equals 300.\n\n\t// simulate a Deposit call.\n\tstd.TestSetOrigPkgAddr(banktestAddr)\n\tstd.TestIssueCoins(banktestAddr, std.Coins{{\"ugnot\", 100000000}})\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 100000000}}, nil)\n\tres := banktest.Deposit(\"ugnot\", 55000000)\n\tprintln(\"Deposit():\", res)\n\n\t// print main balance after.\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal) // now 255.\n\n\t// simulate a Render().\n\tres = banktest.Render(\"\")\n\tprintln(res)\n}\n\n// Output:\n// main before:\n// Deposit(): returned!\n// main after: 55000000ugnot\n// ## recent activity\n//\n// * g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk 100000000ugnot sent, 55000000ugnot returned, at 2009-02-13 11:31pm UTC\n//\n// ## total deposits\n// 45000000ugnot\n"},{"name":"z_3_filetest.gno","body":"// Empty line between the directives is important for them to be parsed\n// independently. :facepalm:\n\n// PKGPATH: gno.land/r/demo/bank1\n\npackage bank1\n\nimport (\n\t\"std\"\n)\n\nfunc main() {\n\tbanktestAddr := std.DerivePkgAddr(\"gno.land/r/demo/banktest\")\n\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/bank1\")\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", 123}}\n\tbanker.SendCoins(banktestAddr, mainaddr, send)\n\n}\n\n// Error:\n// can only send coins from realm that created banker \"g1tnpdmvrmtgql8fmxgsq9rwtst5hsxahk3f05dk\", not \"g1dv3435088tlrgggf745kaud0ptrkc9v42k8llz\"\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TJbDDF9yy3zF+WD6DxpVgGgmtonju55Lh1f5/F89uRiG9qZftXzZuxjSCcRMDzwAEYGSYZwMvqwYc1eFNiotBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"bar20","path":"gno.land/r/demo/bar20","files":[{"name":"bar20.gno","body":"// Package bar20 is similar to gno.land/r/demo/foo20 but exposes a safe-object\n// that can be used by `maketx run`, another contract importing foo20, and in\n// the future when we'll support `maketx call Token.XXX`.\npackage bar20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/grc20reg\"\n)\n\nvar (\n\tToken, adm = grc20.NewToken(\"Bar\", \"BAR\", 4)\n\tUserTeller = Token.CallerTeller()\n)\n\nfunc init() {\n\tgrc20reg.Register(Token.Getter(), \"\")\n}\n\nfunc Faucet() string {\n\tcaller := std.PrevRealm().Addr()\n\tif err := adm.Mint(caller, 1_000_000); err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\treturn \"OK\"\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n"},{"name":"bar20_test.gno","body":"package bar20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPackage(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // XXX: should not need this\n\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(0))\n\turequire.Equal(t, Faucet(), \"OK\")\n\turequire.Equal(t, UserTeller.BalanceOf(alice), uint64(1_000_000))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NYFN1cxd0jjHGe/ypMK3kHaOd1oENnBmrxXLGq4uTw3LkKR7tmS0oc7vY3smeJ39PC9wSuo9E8mDpUxsMGuOBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"bf","path":"gno.land/p/demo/bf","files":[{"name":"bf.gno","body":"package bf\n\nimport (\n\t\"strings\"\n)\n\nconst maxlen = 30000\n\nfunc Execute(code string) string {\n\tvar (\n\t\tmemory = make([]byte, maxlen) // memory tape\n\t\tpointer = 0 // initial memory pointer\n\t\tbuf strings.Builder\n\t)\n\n\t// Loop through each character in the code\n\tfor i := 0; i \u003c len(code); i++ {\n\t\tswitch code[i] {\n\t\tcase '\u003e':\n\t\t\t// Increment memory pointer\n\t\t\tpointer++\n\t\t\tif pointer \u003e= maxlen {\n\t\t\t\tpointer = 0\n\t\t\t}\n\t\tcase '\u003c':\n\t\t\t// Decrement memory pointer\n\t\t\tpointer--\n\t\t\tif pointer \u003c 0 {\n\t\t\t\tpointer = maxlen - 1\n\t\t\t}\n\t\tcase '+':\n\t\t\t// Increment the byte at the memory pointer\n\t\t\tmemory[pointer]++\n\t\tcase '-':\n\t\t\t// Decrement the byte at the memory pointer\n\t\t\tmemory[pointer]--\n\t\tcase '.':\n\t\t\t// Output the byte at the memory pointer\n\t\t\tbuf.WriteByte(memory[pointer])\n\t\tcase ',':\n\t\t\t// Input a byte and store it in the memory\n\t\t\tpanic(\"unsupported\")\n\t\t\t// fmt.Scan(\u0026memory[pointer])\n\t\tcase '[':\n\t\t\t// Jump forward past the matching ']' if the byte at the memory pointer is zero\n\t\t\tif memory[pointer] == 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti++\n\t\t\t\t\tif code[i] == '[' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == ']' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase ']':\n\t\t\t// Jump backward to the matching '[' if the byte at the memory pointer is nonzero\n\t\t\tif memory[pointer] != 0 {\n\t\t\t\tbraceCount := 1\n\t\t\t\tfor braceCount \u003e 0 {\n\t\t\t\t\ti--\n\t\t\t\t\tif code[i] == ']' {\n\t\t\t\t\t\tbraceCount++\n\t\t\t\t\t} else if code[i] == '[' {\n\t\t\t\t\t\tbraceCount--\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti-- // Move back one more to compensate for the upcoming increment in the loop\n\t\t\t}\n\t\t}\n\t}\n\treturn buf.String()\n}\n"},{"name":"bf_test.gno","body":"package bf\n\nimport \"testing\"\n\nfunc TestExecuteBrainfuck(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tcode string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"hello\",\n\t\t\tcode: \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\",\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"increment\",\n\t\t\tcode: \"+++++ +++++ [ \u003e +++++ ++ \u003c - ] \u003e +++++ .\",\n\t\t\texpected: \"K\",\n\t\t},\n\t\t// Add more test cases as needed\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tresult := Execute(tc.code)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected output: %s, but got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"doc.gno","body":"// Package bf implements a minimalist Brainfuck virtual machine in Gno.\n//\n// Brainfuck is an esoteric programming language known for its simplicity and minimalistic design.\n// It operates on an array of memory cells, with a memory pointer that can move left or right.\n// The language consists of eight commands: \u003e \u003c + - . , [ ].\n//\n// Usage:\n// To execute Brainfuck code, use the Execute function and provide the code as a string.\n//\n//\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n//\toutput := bf.Execute(code)\n//\n// Note:\n// This implementation is a minimalist version and may not handle all edge cases or advanced features of the Brainfuck language.\n//\n// Reference:\n// For more information on Brainfuck, refer to the Wikipedia page: https://en.wikipedia.org/wiki/Brainfuck\npackage bf // import \"gno.land/p/demo/bf\"\n"},{"name":"run.gno","body":"package bf\n\n// for `gno run`\nfunc main() {\n\tcode := \"++++++++++[\u003e+++++++\u003e++++++++++\u003e+++\u003e+\u003c\u003c\u003c\u003c-]\u003e++.\u003e+.+++++++..+++.\u003e++.\u003c\u003c+++++++++++++++.\u003e.+++.------.--------.\"\n\t// TODO: code = os.Args...\n\tExecute(code)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"f+QcJVF6yowaD4MB+sV/xrvObapk8rpKftX5cFRaBTVVOhFz/OX626GUZarKBrC2Sp6NEaZIGIVDuLDtfD6UDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"blog","path":"gno.land/p/demo/blog","files":[{"name":"blog.gno","body":"package blog\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Blog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPosts avl.Tree // slug -\u003e *Post\n\tPostsPublished avl.Tree // published-date -\u003e *Post\n\tPostsAlphabetical avl.Tree // title -\u003e *Post\n\tNoBreadcrumb bool\n}\n\nfunc (b Blog) RenderLastPostsWidget(limit int) string {\n\tif b.PostsPublished.Size() == 0 {\n\t\treturn \"No posts.\"\n\t}\n\n\toutput := \"\"\n\ti := 0\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tp := value.(*Post)\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", p.Title, p.URL())\n\t\ti++\n\t\treturn i \u003e= limit\n\t})\n\treturn output\n}\n\nfunc (b Blog) RenderHome(res *mux.ResponseWriter, req *mux.Request) {\n\tif !b.NoBreadcrumb {\n\t\tres.Write(breadcrumb([]string{b.Title}))\n\t}\n\n\tif b.Posts.Size() == 0 {\n\t\tres.Write(\"No posts.\")\n\t\treturn\n\t}\n\n\tres.Write(\"\u003cdiv class='columns-3'\u003e\")\n\tb.PostsPublished.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tres.Write(post.RenderListItem())\n\t\treturn false\n\t})\n\tres.Write(\"\u003c/div\u003e\")\n\n\t// FIXME: tag list/cloud.\n}\n\nfunc (b Blog) RenderPost(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\tp := post.(*Post)\n\n\tres.Write(\"\u003cmain class='gno-tmpl-page'\u003e\" + \"\\n\\n\")\n\n\tres.Write(\"# \" + p.Title + \"\\n\\n\")\n\tres.Write(p.Body + \"\\n\\n\")\n\tres.Write(\"---\\n\\n\")\n\n\tres.Write(p.RenderTagList() + \"\\n\\n\")\n\tres.Write(p.RenderAuthorList() + \"\\n\\n\")\n\tres.Write(p.RenderPublishData() + \"\\n\\n\")\n\n\tres.Write(\"---\\n\")\n\tres.Write(\"\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\\n\\n\")\n\n\t// comments\n\tp.Comments.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tcomment := value.(*Comment)\n\t\tres.Write(comment.RenderListItem())\n\t\treturn false\n\t})\n\n\tres.Write(\"\u003c/details\u003e\\n\")\n\tres.Write(\"\u003c/main\u003e\")\n}\n\nfunc (b Blog) RenderTag(res *mux.ResponseWriter, req *mux.Request) {\n\tslug := req.GetVar(\"slug\")\n\n\tif slug == \"\" {\n\t\tres.Write(\"404\")\n\t\treturn\n\t}\n\n\tif !b.NoBreadcrumb {\n\t\tbreadStr := breadcrumb([]string{\n\t\t\tufmt.Sprintf(\"[%s](%s)\", b.Title, b.Prefix),\n\t\t\t\"t\",\n\t\t\tslug,\n\t\t})\n\t\tres.Write(breadStr)\n\t}\n\n\tnb := 0\n\tb.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpost := value.(*Post)\n\t\tif !post.HasTag(slug) {\n\t\t\treturn false\n\t\t}\n\t\tres.Write(post.RenderListItem())\n\t\tnb++\n\t\treturn false\n\t})\n\tif nb == 0 {\n\t\tres.Write(\"No posts.\")\n\t}\n}\n\nfunc (b Blog) Render(path string) string {\n\trouter := mux.NewRouter()\n\trouter.HandleFunc(\"\", b.RenderHome)\n\trouter.HandleFunc(\"p/{slug}\", b.RenderPost)\n\trouter.HandleFunc(\"t/{slug}\", b.RenderTag)\n\treturn router.Render(path)\n}\n\nfunc (b *Blog) NewPost(publisher std.Address, slug, title, body, pubDate string, authors, tags []string) error {\n\tif _, found := b.Posts.Get(slug); found {\n\t\treturn ErrPostSlugExists\n\t}\n\n\tvar parsedTime time.Time\n\tvar err error\n\tif pubDate != \"\" {\n\t\tparsedTime, err = time.Parse(time.RFC3339, pubDate)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t// If no publication date was passed in by caller, take current block time\n\t\tparsedTime = time.Now()\n\t}\n\n\tpost := \u0026Post{\n\t\tPublisher: publisher,\n\t\tAuthors: authors,\n\t\tSlug: slug,\n\t\tTitle: title,\n\t\tBody: body,\n\t\tTags: tags,\n\t\tCreatedAt: parsedTime,\n\t}\n\n\treturn b.prepareAndSetPost(post, false)\n}\n\nfunc (b *Blog) prepareAndSetPost(post *Post, edit bool) error {\n\tpost.Title = strings.TrimSpace(post.Title)\n\tpost.Body = strings.TrimSpace(post.Body)\n\n\tif post.Title == \"\" {\n\t\treturn ErrPostTitleMissing\n\t}\n\tif post.Body == \"\" {\n\t\treturn ErrPostBodyMissing\n\t}\n\tif post.Slug == \"\" {\n\t\treturn ErrPostSlugMissing\n\t}\n\n\tpost.Blog = b\n\tpost.UpdatedAt = time.Now()\n\n\ttrimmedTitleKey := getTitleKey(post.Title)\n\tpubDateKey := getPublishedKey(post.CreatedAt)\n\n\tif !edit {\n\t\t// Cannot have two posts with same title key\n\t\tif _, found := b.PostsAlphabetical.Get(trimmedTitleKey); found {\n\t\t\treturn ErrPostTitleExists\n\t\t}\n\t\t// Cannot have two posts with *exact* same timestamp\n\t\tif _, found := b.PostsPublished.Get(pubDateKey); found {\n\t\t\treturn ErrPostPubDateExists\n\t\t}\n\t}\n\n\t// Store post under keys\n\tb.PostsAlphabetical.Set(trimmedTitleKey, post)\n\tb.PostsPublished.Set(pubDateKey, post)\n\tb.Posts.Set(post.Slug, post)\n\n\treturn nil\n}\n\nfunc (b *Blog) RemovePost(slug string) {\n\tp, exists := b.Posts.Get(slug)\n\tif !exists {\n\t\tpanic(\"post with specified slug doesn't exist\")\n\t}\n\n\tpost := p.(*Post)\n\n\ttitleKey := getTitleKey(post.Title)\n\tpublishedKey := getPublishedKey(post.CreatedAt)\n\n\t_, _ = b.Posts.Remove(slug)\n\t_, _ = b.PostsAlphabetical.Remove(titleKey)\n\t_, _ = b.PostsPublished.Remove(publishedKey)\n}\n\nfunc (b *Blog) GetPost(slug string) *Post {\n\tpost, found := b.Posts.Get(slug)\n\tif !found {\n\t\treturn nil\n\t}\n\treturn post.(*Post)\n}\n\ntype Post struct {\n\tBlog *Blog\n\tSlug string // FIXME: save space?\n\tTitle string\n\tBody string\n\tCreatedAt time.Time\n\tUpdatedAt time.Time\n\tComments avl.Tree\n\tAuthors []string\n\tPublisher std.Address\n\tTags []string\n\tCommentIndex int\n}\n\nfunc (p *Post) Update(title, body, publicationDate string, authors, tags []string) error {\n\tp.Title = title\n\tp.Body = body\n\tp.Tags = tags\n\tp.Authors = authors\n\n\tparsedTime, err := time.Parse(time.RFC3339, publicationDate)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tp.CreatedAt = parsedTime\n\treturn p.Blog.prepareAndSetPost(p, true)\n}\n\nfunc (p *Post) AddComment(author std.Address, comment string) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tp.CommentIndex++\n\tcommentKey := strconv.Itoa(p.CommentIndex)\n\tcomment = strings.TrimSpace(comment)\n\tp.Comments.Set(commentKey, \u0026Comment{\n\t\tPost: p,\n\t\tCreatedAt: time.Now(),\n\t\tAuthor: author,\n\t\tComment: comment,\n\t})\n\n\treturn nil\n}\n\nfunc (p *Post) DeleteComment(index int) error {\n\tif p == nil {\n\t\treturn ErrNoSuchPost\n\t}\n\tcommentKey := strconv.Itoa(index)\n\tp.Comments.Remove(commentKey)\n\treturn nil\n}\n\nfunc (p *Post) HasTag(tag string) bool {\n\tif p == nil {\n\t\treturn false\n\t}\n\tfor _, t := range p.Tags {\n\t\tif t == tag {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (p *Post) RenderListItem() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\toutput := \"\u003cdiv\u003e\\n\\n\"\n\toutput += ufmt.Sprintf(\"### [%s](%s)\\n\", p.Title, p.URL())\n\t// output += ufmt.Sprintf(\"**[Learn More](%s)**\\n\\n\", p.URL())\n\n\toutput += \" \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\t// output += p.Summary() + \"\\n\\n\"\n\t// output += p.RenderTagList() + \"\\n\\n\"\n\toutput += \"\\n\"\n\toutput += \"\u003c/div\u003e\"\n\treturn output\n}\n\n// Render post tags\nfunc (p *Post) RenderTagList() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\tif len(p.Tags) == 0 {\n\t\treturn \"\"\n\t}\n\n\toutput := \"Tags: \"\n\tfor idx, tag := range p.Tags {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" \"\n\t\t}\n\t\ttagURL := p.Blog.Prefix + \"t/\" + tag\n\t\toutput += ufmt.Sprintf(\"[#%s](%s)\", tag, tagURL)\n\n\t}\n\treturn output\n}\n\n// Render authors if there are any\nfunc (p *Post) RenderAuthorList() string {\n\tout := \"Written\"\n\tif len(p.Authors) != 0 {\n\t\tout += \" by \"\n\n\t\tfor idx, author := range p.Authors {\n\t\t\tout += author\n\t\t\tif idx \u003c len(p.Authors)-1 {\n\t\t\t\tout += \", \"\n\t\t\t}\n\t\t}\n\t}\n\tout += \" on \" + p.CreatedAt.Format(\"02 Jan 2006\")\n\n\treturn out\n}\n\nfunc (p *Post) RenderPublishData() string {\n\tout := \"Published \"\n\tif p.Publisher != \"\" {\n\t\tout += \"by \" + p.Publisher.String() + \" \"\n\t}\n\tout += \"to \" + p.Blog.Title\n\n\treturn out\n}\n\nfunc (p *Post) URL() string {\n\tif p == nil {\n\t\treturn p.Blog.Prefix + \"404\"\n\t}\n\treturn p.Blog.Prefix + \"p/\" + p.Slug\n}\n\nfunc (p *Post) Summary() string {\n\tif p == nil {\n\t\treturn \"error: no such post\\n\"\n\t}\n\n\t// FIXME: better summary.\n\tlines := strings.Split(p.Body, \"\\n\")\n\tif len(lines) \u003c= 3 {\n\t\treturn p.Body\n\t}\n\treturn strings.Join(lines[0:3], \"\\n\") + \"...\"\n}\n\ntype Comment struct {\n\tPost *Post\n\tCreatedAt time.Time\n\tAuthor std.Address\n\tComment string\n}\n\nfunc (c Comment) RenderListItem() string {\n\toutput := \"\u003ch5\u003e\"\n\toutput += c.Comment + \"\\n\\n\"\n\toutput += \"\u003c/h5\u003e\"\n\n\toutput += \"\u003ch6\u003e\"\n\toutput += ufmt.Sprintf(\"by %s on %s\", c.Author, c.CreatedAt.Format(time.RFC822))\n\toutput += \"\u003c/h6\u003e\\n\\n\"\n\n\toutput += \"---\\n\\n\"\n\n\treturn output\n}\n"},{"name":"blog_test.gno","body":"package blog\n\n// TODO: add generic tests here.\n// right now, you can checkout r/gnoland/blog/*_test.gno.\n"},{"name":"errors.gno","body":"package blog\n\nimport \"errors\"\n\nvar (\n\tErrPostTitleMissing = errors.New(\"post title is missing\")\n\tErrPostSlugMissing = errors.New(\"post slug is missing\")\n\tErrPostBodyMissing = errors.New(\"post body is missing\")\n\tErrPostSlugExists = errors.New(\"post with specified slug already exists\")\n\tErrPostPubDateExists = errors.New(\"post with specified publication date exists\")\n\tErrPostTitleExists = errors.New(\"post with specified title already exists\")\n\tErrNoSuchPost = errors.New(\"no such post\")\n)\n"},{"name":"util.gno","body":"package blog\n\nimport (\n\t\"strings\"\n\t\"time\"\n)\n\nfunc breadcrumb(parts []string) string {\n\treturn \"# \" + strings.Join(parts, \" / \") + \"\\n\\n\"\n}\n\nfunc getTitleKey(title string) string {\n\treturn strings.Replace(title, \" \", \"\", -1)\n}\n\nfunc getPublishedKey(t time.Time) string {\n\treturn t.Format(time.RFC3339)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4V9vZG+uo9KPrI4WfA43yz1wpCwvvBlc3nnskpNrh5W/TTrhI8W1HxYSBbTi5JgILMKzraLvu25lXyvnY1FXDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"boards","path":"gno.land/r/demo/boards","files":[{"name":"README.md","body":"This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `-remote localhost:26657` here, that flag can be replaced\nwith `-remote gno.land:26657` if you have $GNOT on the testnet.\n(To use the testnet, also replace `-chainid dev` with `-chainid portal-loop` .)\n\n### Build `gnokey` (and other tools).\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd gno/gno.land\nmake build\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add -recover KEYNAME\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\nTake note of your `addr` which looks something like `g17sphqax3kasjptdkmuqvn740u8dhtx4kxl6ljf` .\nYou will use this as your `ACCOUNT_ADDR`.\n\n## Interact with the blockchain.\n\n### Add $GNOT for your account.\n\nBefore starting the `gnoland` node for the first time, your new account can be given $GNOT in the node genesis.\nEdit the file `gno.land/genesis/genesis_balances.txt` and add the following line (simlar to the others), using\nyour `ACCOUNT_ADDR` and `KEYNAME`\n\n`ACCOUNT_ADDR=10000000000ugnot # @KEYNAME`\n\n### Alternative: Run a faucet to add $GNOT.\n\nInstead of editing `gno.land/genesis/genesis_balances.txt`, a more general solution (with more steps)\nis to run a local \"faucet\" and use the web browser to add $GNOT. (This can be done at any time.)\nSee this page: https://github.com/gnolang/gno/blob/master/contribs/gnofaucet/README.md\n\n\n### Start the `gnoland` node.\n\n```bash\n./build/gnoland start\n```\n\nNOTE: The node already has the \"boards\" realm.\n\nLeave this running in the terminal. In a new terminal, cd to the same folder `gno/gno.land` .\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR -remote localhost:26657\n```\n\n### Register a board username with a smart contract call.\n\nThe `USERNAME` for posting can different than your `KEYNAME`. It is internally linked to your `ACCOUNT_ADDR`. It must be at least 6 characters, lowercase alphanumeric with underscore.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/users\" -func \"Register\" -args \"\" -args \"USERNAME\" -args \"Profile description\" -gas-fee \"10000000ugnot\" -gas-wanted \"2000000\" -send \"200000000ugnot\" -broadcast -chainid dev -remote 127.0.0.1:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/users$help\u0026func=Register\n\n### Create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateBoard\" -args \"BOARDNAME\" -gas-fee \"1000000ugnot\" -gas-wanted \"10000000\" -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" -data 'gno.land/r/demo/boards.GetBoardIDFromName(\"BOARDNAME\")' -remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateThread\" -args BOARD_ID -args \"Hello gno.land\" -args \"Text of the post\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call -pkgpath \"gno.land/r/demo/boards\" -func \"CreateReply\" -args BOARD_ID -args \"1\" -args \"1\" -args \"Nice to meet you too.\" -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid dev -remote localhost:26657 KEYNAME\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:BOARDNAME/1\" -remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" -data \"gno.land/r/demo/boards:gnolang\"\n```\n## View the board in the browser.\n\n### Start the web server.\n\n```bash\n./build/gnoweb\n```\n\nThis should print something like `Running on http://127.0.0.1:8888` . Leave this running in the terminal.\n\n### View in the browser\n\nIn your browser, navigate to the printed address http://127.0.0.1:8888 .\nTo see you post, click on the package `/r/demo/boards` .\n"},{"name":"board.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Board\n\ntype BoardID uint64\n\nfunc (bid BoardID) String() string {\n\treturn strconv.Itoa(int(bid))\n}\n\ntype Board struct {\n\tid BoardID // only set for public boards.\n\turl string\n\tname string\n\tcreator std.Address\n\tthreads avl.Tree // Post.id -\u003e *Post\n\tpostsCtr uint64 // increments Post.id\n\tcreatedAt time.Time\n\tdeleted avl.Tree // TODO reserved for fast-delete.\n}\n\nfunc newBoard(id BoardID, url string, name string, creator std.Address) *Board {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\texists := gBoardsByName.Has(name)\n\tif exists {\n\t\tpanic(\"board already exists\")\n\t}\n\treturn \u0026Board{\n\t\tid: id,\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tthreads: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t\tdeleted: avl.Tree{},\n\t}\n}\n\n/* TODO support this once we figure out how to ensure URL correctness.\n// A private board is not tracked by gBoards*,\n// but must be persisted by the caller's realm.\n// Private boards have 0 id and does not ping\n// back the remote board on reposts.\nfunc NewPrivateBoard(url string, name string, creator std.Address) *Board {\n\treturn newBoard(0, url, name, creator)\n}\n*/\n\nfunc (board *Board) IsPrivate() bool {\n\treturn board.id == 0\n}\n\nfunc (board *Board) GetThread(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\tpostI, exists := board.threads.Get(pidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn postI.(*Post)\n}\n\nfunc (board *Board) AddThread(creator std.Address, title string, body string) *Post {\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\tthread := newPost(board, pid, creator, title, body, pid, 0, 0)\n\tboard.threads.Set(pidkey, thread)\n\treturn thread\n}\n\n// NOTE: this can be potentially very expensive for threads with many replies.\n// TODO: implement optional fast-delete where thread is simply moved.\nfunc (board *Board) DeleteThread(pid PostID) {\n\tpidkey := postIDKey(pid)\n\t_, removed := board.threads.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"thread does not exist with id \" + pid.String())\n\t}\n}\n\nfunc (board *Board) HasPermission(addr std.Address, perm Permission) bool {\n\tif board.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn false\n}\n\n// Renders the board for display suitable as plaintext in\n// console. This is suitable for demonstration or tests,\n// but not for prod.\nfunc (board *Board) RenderBoard() string {\n\tstr := \"\"\n\tstr += \"\\\\[[post](\" + board.GetPostFormURL() + \")]\\n\\n\"\n\tif board.threads.Size() \u003e 0 {\n\t\tboard.threads.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tif str != \"\" {\n\t\t\t\tstr += \"----------------------------------------\\n\"\n\t\t\t}\n\t\t\tstr += value.(*Post).RenderSummary() + \"\\n\"\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\nfunc (board *Board) incGetPostID() PostID {\n\tboard.postsCtr++\n\treturn PostID(board.postsCtr)\n}\n\nfunc (board *Board) GetURLFromThreadAndReplyID(threadID, replyID PostID) string {\n\tif replyID == 0 {\n\t\treturn board.url + \"/\" + threadID.String()\n\t} else {\n\t\treturn board.url + \"/\" + threadID.String() + \"/\" + replyID.String()\n\t}\n}\n\nfunc (board *Board) GetPostFormURL() string {\n\treturn txlink.Call(\"CreateThread\", \"bid\", board.id.String())\n}\n"},{"name":"boards.gno","body":"package boards\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgBoards avl.Tree // id -\u003e *Board\n\tgBoardsCtr int // increments Board.id\n\tgBoardsByName avl.Tree // name -\u003e *Board\n\tgDefaultAnonFee = 100000000 // minimum fee required if anonymous\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"misc.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getBoard(bid BoardID) *Board {\n\tbidkey := boardIDKey(bid)\n\tboard_, exists := gBoards.Get(bidkey)\n\tif !exists {\n\t\treturn nil\n\t}\n\tboard := board_.(*Board)\n\treturn board\n}\n\nfunc incGetBoardID() BoardID {\n\tgBoardsCtr++\n\treturn BoardID(gBoardsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\" \", length-len(str)) + str\n\t}\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t} else {\n\t\treturn strings.Repeat(\"0\", length-len(str)) + str\n\t}\n}\n\nfunc boardIDKey(bid BoardID) string {\n\treturn padZero(uint64(bid), 10)\n}\n\nfunc postIDKey(pid PostID) string {\n\treturn padZero(uint64(pid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t} else {\n\t\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n\t}\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"\"\n\t}\n\treturn user.Name\n}\n"},{"name":"post.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/moul/txlink\"\n)\n\n//----------------------------------------\n// Post\n\n// NOTE: a PostID is relative to the board.\ntype PostID uint64\n\nfunc (pid PostID) String() string {\n\treturn strconv.Itoa(int(pid))\n}\n\n// A Post is a \"thread\" or a \"reply\" depending on context.\n// A thread is a Post of a Board that holds other replies.\ntype Post struct {\n\tboard *Board\n\tid PostID\n\tcreator std.Address\n\ttitle string // optional\n\tbody string\n\treplies avl.Tree // Post.id -\u003e *Post\n\trepliesAll avl.Tree // Post.id -\u003e *Post (all replies, for top-level posts)\n\treposts avl.Tree // Board.id -\u003e Post.id\n\tthreadID PostID // original Post.id\n\tparentID PostID // parent Post.id (if reply or repost)\n\trepostBoard BoardID // original Board.id (if repost)\n\tcreatedAt time.Time\n\tupdatedAt time.Time\n}\n\nfunc newPost(board *Board, id PostID, creator std.Address, title, body string, threadID, parentID PostID, repostBoard BoardID) *Post {\n\treturn \u0026Post{\n\t\tboard: board,\n\t\tid: id,\n\t\tcreator: creator,\n\t\ttitle: title,\n\t\tbody: body,\n\t\treplies: avl.Tree{},\n\t\trepliesAll: avl.Tree{},\n\t\treposts: avl.Tree{},\n\t\tthreadID: threadID,\n\t\tparentID: parentID,\n\t\trepostBoard: repostBoard,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (post *Post) IsThread() bool {\n\treturn post.parentID == 0\n}\n\nfunc (post *Post) GetPostID() PostID {\n\treturn post.id\n}\n\nfunc (post *Post) AddReply(creator std.Address, body string) *Post {\n\tboard := post.board\n\tpid := board.incGetPostID()\n\tpidkey := postIDKey(pid)\n\treply := newPost(board, pid, creator, \"\", body, post.threadID, post.id, 0)\n\tpost.replies.Set(pidkey, reply)\n\tif post.threadID == post.id {\n\t\tpost.repliesAll.Set(pidkey, reply)\n\t} else {\n\t\tthread := board.GetThread(post.threadID)\n\t\tthread.repliesAll.Set(pidkey, reply)\n\t}\n\treturn reply\n}\n\nfunc (post *Post) Update(title string, body string) {\n\tpost.title = title\n\tpost.body = body\n\tpost.updatedAt = time.Now()\n}\n\nfunc (thread *Post) GetReply(pid PostID) *Post {\n\tpidkey := postIDKey(pid)\n\treplyI, ok := thread.repliesAll.Get(pidkey)\n\tif !ok {\n\t\treturn nil\n\t} else {\n\t\treturn replyI.(*Post)\n\t}\n}\n\nfunc (post *Post) AddRepostTo(creator std.Address, title, body string, dst *Board) *Post {\n\tif !post.IsThread() {\n\t\tpanic(\"cannot repost non-thread post\")\n\t}\n\tpid := dst.incGetPostID()\n\tpidkey := postIDKey(pid)\n\trepost := newPost(dst, pid, creator, title, body, pid, post.id, post.board.id)\n\tdst.threads.Set(pidkey, repost)\n\tif !dst.IsPrivate() {\n\t\tbidkey := boardIDKey(dst.id)\n\t\tpost.reposts.Set(bidkey, pid)\n\t}\n\treturn repost\n}\n\nfunc (thread *Post) DeletePost(pid PostID) {\n\tif thread.id == pid {\n\t\tpanic(\"should not happen\")\n\t}\n\tpidkey := postIDKey(pid)\n\tpostI, removed := thread.repliesAll.Remove(pidkey)\n\tif !removed {\n\t\tpanic(\"post not found in thread\")\n\t}\n\tpost := postI.(*Post)\n\tif post.parentID != thread.id {\n\t\tparent := thread.GetReply(post.parentID)\n\t\tparent.replies.Remove(pidkey)\n\t} else {\n\t\tthread.replies.Remove(pidkey)\n\t}\n}\n\nfunc (post *Post) HasPermission(addr std.Address, perm Permission) bool {\n\tif post.creator == addr {\n\t\tswitch perm {\n\t\tcase EditPermission:\n\t\t\treturn true\n\t\tcase DeletePermission:\n\t\t\treturn true\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\t// post notes inherit permissions of the board.\n\treturn post.board.HasPermission(addr, perm)\n}\n\nfunc (post *Post) GetSummary() string {\n\treturn summaryOf(post.body, 80)\n}\n\nfunc (post *Post) GetURL() string {\n\tif post.IsThread() {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.id, 0)\n\t} else {\n\t\treturn post.board.GetURLFromThreadAndReplyID(\n\t\t\tpost.threadID, post.id)\n\t}\n}\n\nfunc (post *Post) GetReplyFormURL() string {\n\treturn txlink.Call(\"CreateReply\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetRepostFormURL() string {\n\treturn txlink.Call(\"CreateRepost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) GetDeleteFormURL() string {\n\treturn txlink.Call(\"DeletePost\",\n\t\t\"bid\", post.board.id.String(),\n\t\t\"threadid\", post.threadID.String(),\n\t\t\"postid\", post.id.String(),\n\t)\n}\n\nfunc (post *Post) RenderSummary() string {\n\tif post.repostBoard != 0 {\n\t\tdstBoard := getBoard(post.repostBoard)\n\t\tif dstBoard == nil {\n\t\t\tpanic(\"repostBoard does not exist\")\n\t\t}\n\t\tthread := dstBoard.GetThread(PostID(post.parentID))\n\t\tif thread == nil {\n\t\t\treturn \"reposted post does not exist\"\n\t\t}\n\t\treturn \"Repost: \" + post.GetSummary() + \"\\n\" + thread.RenderSummary()\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += \"## [\" + summaryOf(post.title, 80) + \"](\" + post.GetURL() + \")\\n\"\n\t\tstr += \"\\n\"\n\t}\n\tstr += post.GetSummary() + \"\\n\"\n\tstr += \"\\\\- \" + displayAddressMD(post.creator) + \",\"\n\tstr += \" [\" + post.createdAt.Format(\"2006-01-02 3:04pm MST\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\"\n\tstr += \" (\" + strconv.Itoa(post.replies.Size()) + \" replies)\"\n\tstr += \" (\" + strconv.Itoa(post.reposts.Size()) + \" reposts)\" + \"\\n\"\n\treturn str\n}\n\nfunc (post *Post) RenderPost(indent string, levels int) string {\n\tif post == nil {\n\t\treturn \"nil post\"\n\t}\n\tstr := \"\"\n\tif post.title != \"\" {\n\t\tstr += indent + \"# \" + post.title + \"\\n\"\n\t\tstr += indent + \"\\n\"\n\t}\n\tstr += indentBody(indent, post.body) + \"\\n\" // TODO: indent body lines.\n\tstr += indent + \"\\\\- \" + displayAddressMD(post.creator) + \", \"\n\tstr += \"[\" + post.createdAt.Format(\"2006-01-02 3:04pm (MST)\") + \"](\" + post.GetURL() + \")\"\n\tstr += \" \\\\[[reply](\" + post.GetReplyFormURL() + \")]\"\n\tif post.IsThread() {\n\t\tstr += \" \\\\[[repost](\" + post.GetRepostFormURL() + \")]\"\n\t}\n\tstr += \" \\\\[[x](\" + post.GetDeleteFormURL() + \")]\\n\"\n\tif levels \u003e 0 {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tpost.replies.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\t\tstr += indent + \"\\n\"\n\t\t\t\tstr += value.(*Post).RenderPost(indent+\"\u003e \", levels-1)\n\t\t\t\treturn false\n\t\t\t})\n\t\t}\n\t} else {\n\t\tif post.replies.Size() \u003e 0 {\n\t\t\tstr += indent + \"\\n\"\n\t\t\tstr += indent + \"_[see all \" + strconv.Itoa(post.replies.Size()) + \" replies](\" + post.GetURL() + \")_\\n\"\n\t\t}\n\t}\n\treturn str\n}\n\n// render reply and link to context thread\nfunc (post *Post) RenderInner() string {\n\tif post.IsThread() {\n\t\tpanic(\"unexpected thread\")\n\t}\n\tthreadID := post.threadID\n\t// replyID := post.id\n\tparentID := post.parentID\n\tstr := \"\"\n\tstr += \"_[see thread](\" + post.board.GetURLFromThreadAndReplyID(\n\t\tthreadID, 0) + \")_\\n\\n\"\n\tthread := post.board.GetThread(post.threadID)\n\tvar parent *Post\n\tif thread.id == parentID {\n\t\tparent = thread\n\t} else {\n\t\tparent = thread.GetReply(parentID)\n\t}\n\tstr += parent.RenderPost(\"\", 0)\n\tstr += \"\\n\"\n\tstr += post.RenderPost(\"\u003e \", 5)\n\treturn str\n}\n"},{"name":"public.gno","body":"package boards\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetBoardIDFromName(name string) (BoardID, bool) {\n\tboardI, exists := gBoardsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn boardI.(*Board).id, true\n}\n\nfunc CreateBoard(name string) BoardID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tbid := incGetBoardID()\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tpanic(\"unauthorized\")\n\t}\n\turl := \"/r/demo/boards:\" + name\n\tboard := newBoard(bid, url, name, caller)\n\tbidkey := boardIDKey(bid)\n\tgBoards.Set(bidkey, board)\n\tgBoardsByName.Set(name, board)\n\treturn board.id\n}\n\nfunc checkAnonFee() bool {\n\tsent := std.GetOrigSend()\n\tanonFeeCoin := std.NewCoin(\"ugnot\", int64(gDefaultAnonFee))\n\tif len(sent) == 1 \u0026\u0026 sent[0].IsGTE(anonFeeCoin) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc CreateThread(bid BoardID, title string, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.AddThread(caller, title, body)\n\treturn thread.id\n}\n\nfunc CreateReply(bid BoardID, threadid, postid PostID, body string) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\treply := thread.AddReply(caller, body)\n\t\treturn reply.id\n\t} else {\n\t\tpost := thread.GetReply(postid)\n\t\treply := post.AddReply(caller, body)\n\t\treturn reply.id\n\t}\n}\n\n// If dstBoard is private, does not ping back.\n// If board specified by bid is private, panics.\nfunc CreateRepost(bid BoardID, postid PostID, title string, body string, dstBoardID BoardID) PostID {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tif usernameOf(caller) == \"\" {\n\t\t// TODO: allow with gDefaultAnonFee payment.\n\t\tif !checkAnonFee() {\n\t\t\tpanic(\"please register, otherwise minimum fee \" + strconv.Itoa(gDefaultAnonFee) + \" is required if anonymous\")\n\t\t}\n\t}\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"src board not exist\")\n\t}\n\tif board.IsPrivate() {\n\t\tpanic(\"cannot repost from a private board\")\n\t}\n\tdst := getBoard(dstBoardID)\n\tif dst == nil {\n\t\tpanic(\"dst board not exist\")\n\t}\n\tthread := board.GetThread(postid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\trepost := thread.AddRepostTo(caller, title, body, dst)\n\treturn repost.id\n}\n\nfunc DeletePost(bid BoardID, threadid, postid PostID, reason string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// delete thread\n\t\tif !thread.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tboard.DeleteThread(threadid)\n\t} else {\n\t\t// delete thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, DeletePermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.DeletePost(postid)\n\t}\n}\n\nfunc EditPost(bid BoardID, threadid, postid PostID, title, body string) {\n\tif !(std.IsOriginCall() || std.PrevRealm().IsUser()) {\n\t\tpanic(\"invalid non-user call\")\n\t}\n\tcaller := std.GetOrigCaller()\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\tpanic(\"board not exist\")\n\t}\n\tthread := board.GetThread(threadid)\n\tif thread == nil {\n\t\tpanic(\"thread not exist\")\n\t}\n\tif postid == threadid {\n\t\t// edit thread\n\t\tif !thread.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tthread.Update(title, body)\n\t} else {\n\t\t// edit thread's post\n\t\tpost := thread.GetReply(postid)\n\t\tif post == nil {\n\t\t\tpanic(\"post not exist\")\n\t\t}\n\t\tif !post.HasPermission(caller, EditPermission) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t\tpost.Update(title, body)\n\t}\n}\n"},{"name":"render.gno","body":"package boards\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderBoard(bid BoardID) string {\n\tboard := getBoard(bid)\n\tif board == nil {\n\t\treturn \"missing board\"\n\t}\n\treturn board.RenderBoard()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"These are all the boards of this realm:\\n\\n\"\n\t\tgBoards.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tboard := value.(*Board)\n\t\t\tstr += \" * [\" + board.url + \"](\" + board.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/boards:BOARD_NAME\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\treturn boardI.(*Board).RenderBoard()\n\t} else if len(parts) == 2 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\treturn thread.RenderPost(\"\", 5)\n\t} else if len(parts) == 3 {\n\t\t// /r/demo/boards:BOARD_NAME/THREAD_ID/REPLY_ID\n\t\tname := parts[0]\n\t\tboardI, exists := gBoardsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"board does not exist: \" + name\n\t\t}\n\t\tpid, err := strconv.Atoi(parts[1])\n\t\tif err != nil {\n\t\t\treturn \"invalid thread id: \" + parts[1]\n\t\t}\n\t\tboard := boardI.(*Board)\n\t\tthread := board.GetThread(PostID(pid))\n\t\tif thread == nil {\n\t\t\treturn \"thread does not exist with id: \" + parts[1]\n\t\t}\n\t\trid, err := strconv.Atoi(parts[2])\n\t\tif err != nil {\n\t\t\treturn \"invalid reply id: \" + parts[2]\n\t\t}\n\t\treply := thread.GetReply(PostID(rid))\n\t\tif reply == nil {\n\t\t\treturn \"reply does not exist with id: \" + parts[2]\n\t\t}\n\t\treturn reply.RenderInner()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package boards\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\nimport (\n\t\"gno.land/r/demo/boards\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateThread(1, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_0_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tboards.CreateReply(bid, 0, 0, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 20000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar bid boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid := boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n// ----------------------------------------\n// ## [Second Post (title)](/r/demo/boards:test_board/2)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/2) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)] (1 replies) (0 reposts)\n//\n//\n"},{"name":"z_10_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// boardId 2 not exist\n\tboards.DeletePost(2, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_10_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// pid of 2 not exist\n\tboards.DeletePost(bid, 2, 2, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_10_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, rid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.DeletePost(bid, pid, pid, \"\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// thread does not exist with id: 1\n"},{"name":"z_11_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// board 2 not exist\n\tboards.EditPost(2, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// board not exist\n"},{"name":"z_11_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// thread 2 not exist\n\tboards.EditPost(bid, 2, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_11_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\t// post 2 not exist\n\tboards.EditPost(bid, pid, 2, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// post not exist\n"},{"name":"z_11_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"First reply of the First post\\n\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, rid, \"\", \"Edited: First reply of the First post\\n\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n// ----------------------------------------------------\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Edited: First reply of the First post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_11_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tpid = boards.CreateThread(bid, \"First Post in (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n\tboards.EditPost(bid, pid, pid, \"Edited: First Post in (title)\", \"Edited: Body of the first post. (body)\")\n\tprintln(\"----------------------------------------------------\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// ----------------------------------------------------\n// # Edited: First Post in (title)\n//\n// Edited: Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n"},{"name":"z_12_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create a post via registered user\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_12_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing board\n\trid := boards.CreateRepost(5, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_12_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tboards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 := boards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing thread\n\trid := boards.CreateRepost(bid1, 5, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// thread not exist\n"},{"name":"z_12_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tbid1 := boards.CreateBoard(\"test_board1\")\n\tpid := boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateBoard(\"test_board2\")\n\n\t// create a repost to a non-existing destination board\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", 5)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board1\"))\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_12_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid1 boards.BoardID\n\tbid2 boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid1 = boards.CreateBoard(\"test_board1\")\n\tpid = boards.CreateThread(bid1, \"First Post (title)\", \"Body of the first post. (body)\")\n\tbid2 = boards.CreateBoard(\"test_board2\")\n}\n\nfunc main() {\n\trid := boards.CreateRepost(bid1, pid, \"\", \"Check this out\", bid2)\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board2\"))\n}\n\n// Output:\n// 1\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=2)]\n//\n// ----------------------------------------\n// Repost: Check this out\n// ## [First Post (title)](/r/demo/boards:test_board1/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board1/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (1 reposts)\n//\n//\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar board *boards.Board\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t_ = boards.CreateBoard(\"test_board_1\")\n\t_ = boards.CreateBoard(\"test_board_2\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"\"))\n}\n\n// Output:\n// These are all the boards of this realm:\n//\n// * [/r/demo/boards:test_board_1](/r/demo/boards:test_board_1)\n// * [/r/demo/boards:test_board_2](/r/demo/boards:test_board_2)\n//\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n}\n\nfunc main() {\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n\tprintln(rid)\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\")\n\tprintln(rid2)\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// 3\n// 4\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\",\n// \"ModTime\": \"123\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"68663c8895d37d479e417c11e21badfe21345c61\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:112\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"3f34ac77289aa1d5f9a2f8b6d083138325816fb0\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:125\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"94a6665a44bac6ede7f3e3b87173e537b12f9532\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:111\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bc8e5b4e782a0bbc4ac9689681f119beb7b34d59\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:124\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9957eadbc91dd32f33b0d815e041a32dbdea0671\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:123\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131]={\n// \"Fields\": [\n// {\n// \"N\": \"AAAAgJSeXbo=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"N\": \"AbSNdvQQIhE=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"336074805fc853987abe6f7fe3ad97a6a6f3077a:2\"\n// },\n// \"Index\": \"182\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"1024\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Location\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Board\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"Second reply of the second post\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"f91e355bd19240f0f3350a7fa0e6a82b72225916\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:128\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9ee9c4117be283fc51ffcc5ecd65b75ecef5a9dd\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:129\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"eb768b0140a5fe95f9c58747f0960d647dacfd42\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:130\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.PostID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"0fd3352422af0a56a77ef2c9e88f479054e3d51f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:131\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"bed4afa8ffdbbf775451c947fc68b27a345ce32a\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:132\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\",\n// \"IsEscaped\": true,\n// \"ModTime\": \"0\",\n// \"RefCount\": \"2\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c45bbd47a46681a63af973db0ec2180922e4a8ae\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:127\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\",\n// \"ModTime\": \"134\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"dc1f011553dc53e7a846049e08cc77fa35ea6a51\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:121\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.Post\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Escaped\": true,\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:126\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"96b86b4585c7f1075d7794180a5581f72733a7ab\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:136\"\n// }\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"0000000004\"\n// }\n// },\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AgAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"32274e1f28fb2b97d67a1262afd362d370de7faa\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:120\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"c2cfd6aec36a462f35bf02e5bf4a127aa1bb7ac2\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:135\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133]={\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"5cb875179e86d32c517322af7a323b2a5f3e6cc5\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:134\"\n// }\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85]={\n// \"Fields\": [\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/boards.BoardID\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"/r/demo/boards:test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"test_board\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"a416a751c3a45a1e5cba11e737c51340b081e372\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:86\"\n// }\n// },\n// {\n// \"N\": \"BAAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"65536\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"time.Time\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"36299fccbc13f2a84c4629fad4cb940f0bd4b1c6\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:87\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"af6ed0268f99b7f369329094eb6dfaea7812708b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:88\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:85\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:84\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"9809329dc1ddc5d3556f7a8fa3c2cebcbf65560b\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:122\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:106\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"ceae9a1c4ed28bb51062e6ccdccfad0caafd1c4f\",\n// \"ObjectID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:133\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:107\",\n// \"ModTime\": \"121\",\n// \"OwnerID\": \"f6dbf411da22e67d74cd7ddba6a76cd7e14a4822:105\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/users\"]\n// switchrealm[\"gno.land/r/demo/boards\"]\n// switchrealm[\"gno.land/r/demo/boards_test\"]\n"},{"name":"z_5_b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_c_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\n\t// create post via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 101000000}}, nil)\n\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post (title)\n//\n// Body of the first post. (body)\n// \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=1)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)]\n//\n// \u003e Reply of the first post\n// \u003e \\- [g1w3jhxapjta047h6lta047h6lta047h6laqcyu4](/r/demo/users:g1w3jhxapjta047h6lta047h6lta047h6laqcyu4), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/1/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=2)]\n//\n"},{"name":"z_5_d_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// create board via registered user\n\tbid := boards.CreateBoard(\"test_board\")\n\tpid := boards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\n\t// create reply via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\tboards.CreateReply(bid, pid, pid, \"Reply of the first post\")\n\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Error:\n// please register, otherwise minimum fee 100000000 is required if anonymous\n"},{"name":"z_5_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid := boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\trid2 := boards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_6_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\tboards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # Second Post (title)\n//\n// Body of the second post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=2)] \\[[repost](/r/demo/boards$help\u0026func=CreateRepost\u0026bid=1\u0026postid=2)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=2)]\n//\n// \u003e Reply of the second post\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n// \u003e\n// \u003e \u003e First reply of the first reply\n// \u003e \u003e\n// \u003e \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n// \u003e Second reply of the second post\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/4) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=4)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=4)]\n//\n"},{"name":"z_7_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc init() {\n\t// register\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\t// create board and post\n\tbid := boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n}\n\nfunc main() {\n\tprintln(boards.Render(\"test_board\"))\n}\n\n// Output:\n// \\[[post](/r/demo/boards$help\u0026func=CreateThread\u0026bid=1)]\n//\n// ----------------------------------------\n// ## [First Post (title)](/r/demo/boards:test_board/1)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm UTC](/r/demo/boards:test_board/1) \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=1\u0026postid=1)] (0 replies) (0 reposts)\n//\n//\n"},{"name":"z_8_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tbid boards.BoardID\n\tpid boards.PostID\n\trid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tbid = boards.CreateBoard(\"test_board\")\n\tboards.CreateThread(bid, \"First Post (title)\", \"Body of the first post. (body)\")\n\tpid = boards.CreateThread(bid, \"Second Post (title)\", \"Body of the second post. (body)\")\n\trid = boards.CreateReply(bid, pid, pid, \"Reply of the second post\")\n}\n\nfunc main() {\n\tboards.CreateReply(bid, pid, pid, \"Second reply of the second post\\n\")\n\trid2 := boards.CreateReply(bid, pid, rid, \"First reply of the first reply\\n\")\n\tprintln(boards.Render(\"test_board/\" + strconv.Itoa(int(pid)) + \"/\" + strconv.Itoa(int(rid2))))\n}\n\n// Output:\n// _[see thread](/r/demo/boards:test_board/2)_\n//\n// Reply of the second post\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/3) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=3)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=3)]\n//\n// _[see all 1 replies](/r/demo/boards:test_board/2/3)_\n//\n// \u003e First reply of the first reply\n// \u003e\n// \u003e \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:test_board/2/5) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=1\u0026threadid=2\u0026postid=5)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=1\u0026threadid=2\u0026postid=5)]\n//\n"},{"name":"z_9_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar dstBoard boards.BoardID\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tdstBoard = boards.CreateBoard(\"dst_board\")\n\n\tboards.CreateRepost(0, 0, \"First Post in (title)\", \"Body of the first post. (body)\", dstBoard)\n}\n\nfunc main() {\n}\n\n// Error:\n// src board not exist\n"},{"name":"z_9_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tsrcBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tsrcBoard = boards.CreateBoard(\"first_board\")\n\tpid = boards.CreateThread(srcBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(srcBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", 0)\n}\n\nfunc main() {\n}\n\n// Error:\n// dst board not exist\n"},{"name":"z_9_filetest.gno","body":"// PKGPATH: gno.land/r/demo/boards_test\npackage boards_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/boards\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tfirstBoard boards.BoardID\n\tsecondBoard boards.BoardID\n\tpid boards.PostID\n)\n\nfunc init() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\n\tfirstBoard = boards.CreateBoard(\"first_board\")\n\tsecondBoard = boards.CreateBoard(\"second_board\")\n\tpid = boards.CreateThread(firstBoard, \"First Post in (title)\", \"Body of the first post. (body)\")\n\n\tboards.CreateRepost(firstBoard, pid, \"First Post in (title)\", \"Body of the first post. (body)\", secondBoard)\n}\n\nfunc main() {\n\tprintln(boards.Render(\"second_board/\" + strconv.Itoa(int(pid))))\n}\n\n// Output:\n// # First Post in (title)\n//\n// Body of the first post. (body)\n// \\- [@gnouser](/r/demo/users:gnouser), [2009-02-13 11:31pm (UTC)](/r/demo/boards:second_board/1/1) \\[[reply](/r/demo/boards$help\u0026func=CreateReply\u0026bid=2\u0026threadid=1\u0026postid=1)] \\[[x](/r/demo/boards$help\u0026func=DeletePost\u0026bid=2\u0026threadid=1\u0026postid=1)]\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9FVXpfDH15qG6DrJ9C8NolLNt5yID4r9MUCOIGfc3f9dxh/i4TC+1wUwTUYk7w7EIbe0K5DkWB3R+Hze6X5SCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"bridge","path":"gno.land/r/gov/dao/bridge","files":[{"name":"bridge.gno","body":"package bridge\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nconst initialOwner = std.Address(\"g1u7y667z64x2h7vc6fmpcprgey4ck233jaww9zq\") // @moul\n\nvar b *Bridge\n\n// Bridge is the active GovDAO\n// implementation bridge\ntype Bridge struct {\n\t*ownable.Ownable\n\n\tdao DAO\n}\n\n// init constructs the initial GovDAO implementation\nfunc init() {\n\tb = \u0026Bridge{\n\t\tOwnable: ownable.NewWithAddress(initialOwner),\n\t\tdao: \u0026govdaoV2{},\n\t}\n}\n\n// SetDAO sets the currently active GovDAO implementation\nfunc SetDAO(dao DAO) {\n\tb.AssertCallerIsOwner()\n\n\tb.dao = dao\n}\n\n// GovDAO returns the current GovDAO implementation\nfunc GovDAO() DAO {\n\treturn b.dao\n}\n"},{"name":"bridge_test.gno","body":"package bridge\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestBridge_DAO(t *testing.T) {\n\tvar (\n\t\tproposalID = uint64(10)\n\t\tmockDAO = \u0026mockDAO{\n\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\treturn proposalID\n\t\t\t},\n\t\t}\n\t)\n\n\tb.dao = mockDAO\n\n\tuassert.Equal(t, proposalID, GovDAO().Propose(dao.ProposalRequest{}))\n}\n\nfunc TestBridge_SetDAO(t *testing.T) {\n\tt.Run(\"invalid owner\", func(t *testing.T) {\n\t\t// Attempt to set a new DAO implementation\n\t\tuassert.PanicsWithMessage(t, ownable.ErrUnauthorized.Error(), func() {\n\t\t\tSetDAO(\u0026mockDAO{})\n\t\t})\n\t})\n\n\tt.Run(\"valid owner\", func(t *testing.T) {\n\t\tvar (\n\t\t\taddr = testutils.TestAddress(\"owner\")\n\n\t\t\tproposalID = uint64(10)\n\t\t\tmockDAO = \u0026mockDAO{\n\t\t\t\tproposeFn: func(_ dao.ProposalRequest) uint64 {\n\t\t\t\t\treturn proposalID\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(addr)\n\n\t\tb.Ownable = ownable.NewWithAddress(addr)\n\n\t\turequire.NotPanics(t, func() {\n\t\t\tSetDAO(mockDAO)\n\t\t})\n\n\t\tuassert.Equal(\n\t\t\tt,\n\t\t\tmockDAO.Propose(dao.ProposalRequest{}),\n\t\t\tGovDAO().Propose(dao.ProposalRequest{}),\n\t\t)\n\t})\n}\n"},{"name":"doc.gno","body":"// Package bridge represents a GovDAO implementation wrapper, used by other Realms and Packages to\n// always fetch the most active GovDAO implementation, instead of directly referencing it, and having to\n// update it each time the GovDAO implementation changes\npackage bridge\n"},{"name":"mock_test.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype (\n\tproposeDelegate func(dao.ProposalRequest) uint64\n\tvoteOnProposalDelegate func(uint64, dao.VoteOption)\n\texecuteProposalDelegate func(uint64)\n\tgetPropStoreDelegate func() dao.PropStore\n\tgetMembStoreDelegate func() membstore.MemberStore\n\tnewGovDAOExecutorDelegate func(func() error) dao.Executor\n)\n\ntype mockDAO struct {\n\tproposeFn proposeDelegate\n\tvoteOnProposalFn voteOnProposalDelegate\n\texecuteProposalFn executeProposalDelegate\n\tgetPropStoreFn getPropStoreDelegate\n\tgetMembStoreFn getMembStoreDelegate\n\tnewGovDAOExecutorFn newGovDAOExecutorDelegate\n}\n\nfunc (m *mockDAO) Propose(request dao.ProposalRequest) uint64 {\n\tif m.proposeFn != nil {\n\t\treturn m.proposeFn(request)\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockDAO) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif m.voteOnProposalFn != nil {\n\t\tm.voteOnProposalFn(id, option)\n\t}\n}\n\nfunc (m *mockDAO) ExecuteProposal(id uint64) {\n\tif m.executeProposalFn != nil {\n\t\tm.executeProposalFn(id)\n\t}\n}\n\nfunc (m *mockDAO) GetPropStore() dao.PropStore {\n\tif m.getPropStoreFn != nil {\n\t\treturn m.getPropStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) GetMembStore() membstore.MemberStore {\n\tif m.getMembStoreFn != nil {\n\t\treturn m.getMembStoreFn()\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockDAO) NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif m.newGovDAOExecutorFn != nil {\n\t\treturn m.newGovDAOExecutorFn(cb)\n\t}\n\n\treturn nil\n}\n"},{"name":"types.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\n// DAO abstracts the commonly used DAO interface\ntype DAO interface {\n\tPropose(dao.ProposalRequest) uint64\n\tVoteOnProposal(uint64, dao.VoteOption)\n\tExecuteProposal(uint64)\n\tGetPropStore() dao.PropStore\n\tGetMembStore() membstore.MemberStore\n\n\tNewGovDAOExecutor(func() error) dao.Executor\n}\n"},{"name":"v2.gno","body":"package bridge\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\n// govdaoV2 is a wrapper for interacting with the /r/gov/dao/v2 Realm\ntype govdaoV2 struct{}\n\nfunc (g *govdaoV2) Propose(request dao.ProposalRequest) uint64 {\n\treturn govdao.Propose(request)\n}\n\nfunc (g *govdaoV2) VoteOnProposal(id uint64, option dao.VoteOption) {\n\tgovdao.VoteOnProposal(id, option)\n}\n\nfunc (g *govdaoV2) ExecuteProposal(id uint64) {\n\tgovdao.ExecuteProposal(id)\n}\n\nfunc (g *govdaoV2) GetPropStore() dao.PropStore {\n\treturn govdao.GetPropStore()\n}\n\nfunc (g *govdaoV2) GetMembStore() membstore.MemberStore {\n\treturn govdao.GetMembStore()\n}\n\nfunc (g *govdaoV2) NewGovDAOExecutor(cb func() error) dao.Executor {\n\treturn govdao.NewGovDAOExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMemberPropExecutor(cb func() []membstore.Member) dao.Executor {\n\treturn govdao.NewMemberPropExecutor(cb)\n}\n\nfunc (g *govdaoV2) NewMembStoreImplExecutor(cb func() membstore.MemberStore) dao.Executor {\n\treturn govdao.NewMembStoreImplExecutor(cb)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rZDk3cqlRIHIRe5yyoFO4Aa4ZY7+LJ7yEp5SptDubWhx1/jR4aZT4hc0HfAf7RhROG6Sfw688VQlLxAffwazBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"btree","path":"gno.land/p/demo/btree","files":[{"name":"btree.gno","body":"//////////\n//\n// Copyright 2014 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n//\n// Copyright 2024 New Tendermint\n//\n// This Gno port of the original Go BTree is substantially rewritten/reimplemented\n// from the original, primarily for clarity of code, clarity of documentation,\n// and for compatibility with Gno.\n//\n// Authors:\n// Original version authors -- https://github.com/google/btree/graphs/contributors\n// Kirk Haines \u003cwyhaines@gmail.com\u003e\n//\n//////////\n\n// Package btree implements in-memory B-Trees of arbitrary degree.\n//\n// It has a flatter structure than an equivalent red-black or other binary tree,\n// which may yield better memory usage and/or performance.\npackage btree\n\nimport \"sort\"\n\n//////////\n//\n// Types\n//\n//////////\n\n// BTreeOption is a function interface for setting options on a btree with `New()`.\ntype BTreeOption func(*BTree)\n\n// BTree is an implementation of a B-Tree.\n//\n// BTree stores Record instances in an ordered structure, allowing easy insertion,\n// removal, and iteration.\ntype BTree struct {\n\tdegree int\n\tlength int\n\troot *node\n\tcowCtx *copyOnWriteContext\n}\n\n//\tAny type that implements this interface can be stored in the BTree. This allows considerable\n//\n// flexiblity in storage within the BTree.\ntype Record interface {\n\t// Less compares self to `than`, returning true if self is less than `than`\n\tLess(than Record) bool\n}\n\n// records is the storage within a node. It is expressed as a slice of Record, where a Record\n// is any struct that implements the Record interface.\ntype records []Record\n\n// node is an internal node in a tree.\n//\n// It must at all times maintain on of the two conditions:\n// - len(children) == 0, len(records) unconstrained\n// - len(children) == len(records) + 1\ntype node struct {\n\trecords records\n\tchildren children\n\tcowCtx *copyOnWriteContext\n}\n\n// children is the list of child nodes below the current node. It is a slice of nodes.\ntype children []*node\n\n// FreeNodeList represents a slice of nodes which are available for reuse. The default\n// behavior of New() is for each BTree instance to have its own FreeNodeList. However,\n// it is possible for multiple instances of BTree to share the same tree. If one uses\n// New(WithFreeNodeList()) to create a tree, one may pass an existing FreeNodeList, allowing\n// multiple trees to use a single list. In an application with multiple trees, it might\n// be more efficient to allocate a single FreeNodeList with a significant initial capacity,\n// and then have all of the trees use that same large FreeNodeList.\ntype FreeNodeList struct {\n\tnodes []*node\n}\n\n// copyOnWriteContext manages node ownership and ensures that cloned trees\n// maintain isolation from each other when a node is changed.\n//\n// Ownership Rules:\n// - Each node is associated with a specific copyOnWriteContext.\n// - A tree can modify a node directly only if the tree's context matches the node's context.\n// - If a tree attempts to modify a node with a different context, it must create a\n// new, writable copy of that node (i.e., perform a clone) before making changes.\n//\n// Write Operation Invariant:\n// - During any write operation, the current node being modified must have the same\n// context as the tree requesting the write.\n// - To maintain this invariant, before descending into a child node, the system checks\n// if the child’s context matches the tree's context.\n// - If the contexts match, the node can be modified in place.\n// - If the contexts do not match, a mutable copy of the child node is created with the\n// correct context before proceeding.\n//\n// Practical Implications:\n// - The node currently being modified inherits the requesting tree's context, allowing\n// in-place modifications.\n// - Child nodes may initially have different contexts. Before any modification, these\n// children are copied to ensure they share the correct context, enabling safe and\n// isolated updates without affecting other trees that might be referencing the original nodes.\n//\n// Example Usage:\n// When a tree performs a write operation (e.g., inserting or deleting a node), it uses\n// its copyOnWriteContext to determine whether it can modify nodes directly or needs to\n// create copies. This mechanism ensures that trees can share nodes efficiently while\n// maintaining data integrity.\ntype copyOnWriteContext struct {\n\tnodes *FreeNodeList\n}\n\n// Record implements an interface with a single function, Less. Any type that implements\n// RecordIterator allows callers of all of the iteration functions for the BTree\n// to evaluate an element of the tree as it is traversed. The function will receive\n// a stored element from the tree. The function must return either a true or a false value.\n// True indicates that iteration should continue, while false indicates that it should halt.\ntype RecordIterator func(i Record) bool\n\n//////////\n//\n// Functions\n//\n//////////\n\n// NewFreeNodeList creates a new free list.\n// size is the maximum size of the returned free list.\nfunc NewFreeNodeList(size int) *FreeNodeList {\n\treturn \u0026FreeNodeList{nodes: make([]*node, 0, size)}\n}\n\nfunc (freeList *FreeNodeList) newNode() (nodeInstance *node) {\n\tindex := len(freeList.nodes) - 1\n\tif index \u003c 0 {\n\t\treturn new(node)\n\t}\n\tnodeInstance = freeList.nodes[index]\n\tfreeList.nodes[index] = nil\n\tfreeList.nodes = freeList.nodes[:index]\n\n\treturn nodeInstance\n}\n\n// freeNode adds the given node to the list, returning true if it was added\n// and false if it was discarded.\n\nfunc (freeList *FreeNodeList) freeNode(nodeInstance *node) (nodeWasAdded bool) {\n\tif len(freeList.nodes) \u003c cap(freeList.nodes) {\n\t\tfreeList.nodes = append(freeList.nodes, nodeInstance)\n\t\tnodeWasAdded = true\n\t}\n\treturn\n}\n\n// A default size for the free node list. We might want to run some benchmarks to see if\n// there are any pros or cons to this size versus other sizes. This seems to be a reasonable\n// compromise to reduce GC pressure by reusing nodes where possible, without stacking up too\n// much baggage in a given tree.\nconst DefaultFreeNodeListSize = 32\n\n// WithDegree sets the degree of the B-Tree.\nfunc WithDegree(degree int) BTreeOption {\n\treturn func(bt *BTree) {\n\t\tif degree \u003c= 1 {\n\t\t\tpanic(\"Degrees less than 1 do not make any sense for a BTree. Please provide a degree of 1 or greater.\")\n\t\t}\n\t\tbt.degree = degree\n\t}\n}\n\n// WithFreeNodeList sets a custom free node list for the B-Tree.\nfunc WithFreeNodeList(freeList *FreeNodeList) BTreeOption {\n\treturn func(bt *BTree) {\n\t\tbt.cowCtx = \u0026copyOnWriteContext{nodes: freeList}\n\t}\n}\n\n// New creates a new B-Tree with optional configurations. If configuration is not provided,\n// it will default to 16 element nodes. Degree may not be less than 1 (which effectively\n// makes the tree into a binary tree).\n//\n// `New(WithDegree(2))`, for example, will create a 2-3-4 tree (each node contains 1-3 records\n// and 2-4 children).\n//\n// `New(WithFreeNodeList(NewFreeNodeList(64)))` will create a tree with a degree of 16, and\n// with a free node list with a size of 64.\nfunc New(options ...BTreeOption) *BTree {\n\tbtree := \u0026BTree{\n\t\tdegree: 16, // default degree\n\t\tcowCtx: \u0026copyOnWriteContext{nodes: NewFreeNodeList(DefaultFreeNodeListSize)},\n\t}\n\tfor _, opt := range options {\n\t\topt(btree)\n\t}\n\treturn btree\n}\n\n// insertAt inserts a value into the given index, pushing all subsequent values\n// forward.\nfunc (recordsSlice *records) insertAt(index int, newRecord Record) {\n\toriginalLength := len(*recordsSlice)\n\n\t// Extend the slice by one element\n\t*recordsSlice = append(*recordsSlice, nil)\n\n\t// Move elements from the end to avoid overwriting during the copy\n\t// TODO: Make this work with slice appends, instead. It should be faster?\n\tif index \u003c originalLength {\n\t\tfor position := originalLength; position \u003e index; position-- {\n\t\t\t(*recordsSlice)[position] = (*recordsSlice)[position-1]\n\t\t}\n\t}\n\n\t// Insert the new record\n\t(*recordsSlice)[index] = newRecord\n}\n\n// removeAt removes a Record from the records slice at the specified index.\n// It shifts subsequent records to fill the gap and returns the removed Record.\nfunc (recordSlicePointer *records) removeAt(index int) Record {\n\trecordSlice := *recordSlicePointer\n\tremovedRecord := recordSlice[index]\n\tcopy(recordSlice[index:], recordSlice[index+1:])\n\trecordSlice[len(recordSlice)-1] = nil\n\t*recordSlicePointer = recordSlice[:len(recordSlice)-1]\n\n\treturn removedRecord\n}\n\n// Pop removes and returns the last Record from the records slice.\n// It also clears the reference to the removed Record to aid garbage collection.\nfunc (r *records) pop() Record {\n\trecordSlice := *r\n\tlastIndex := len(recordSlice) - 1\n\tremovedRecord := recordSlice[lastIndex]\n\trecordSlice[lastIndex] = nil\n\t*r = recordSlice[:lastIndex]\n\treturn removedRecord\n}\n\n// This slice is intended only as a supply of records for the truncate function\n// that follows, and it should not be changed or altered.\nvar emptyRecords = make(records, 32)\n\n// truncate reduces the length of the slice to the specified index,\n// and clears the elements beyond that index to prevent memory leaks.\n// The index must be less than or equal to the current length of the slice.\nfunc (originalSlice *records) truncate(index int) {\n\t// Split the slice into the part to keep and the part to clear.\n\trecordsToKeep := (*originalSlice)[:index]\n\trecordsToClear := (*originalSlice)[index:]\n\n\t// Update the original slice to only contain the records to keep.\n\t*originalSlice = recordsToKeep\n\n\t// Clear the memory of the part that was truncated.\n\tfor len(recordsToClear) \u003e 0 {\n\t\t// Copy empty values from `emptyRecords` to the recordsToClear slice.\n\t\t// This effectively \"clears\" the memory by overwriting elements.\n\t\tnumCleared := copy(recordsToClear, emptyRecords)\n\t\trecordsToClear = recordsToClear[numCleared:]\n\t}\n}\n\n// Find determines the appropriate index at which a given Record should be inserted\n// into the sorted records slice. If the Record already exists in the slice,\n// the method returns its index and sets found to true.\n//\n// Parameters:\n// - record: The Record to search for within the records slice.\n//\n// Returns:\n// - insertIndex: The index at which the Record should be inserted.\n// - found: A boolean indicating whether the Record already exists in the slice.\nfunc (recordsSlice records) find(record Record) (insertIndex int, found bool) {\n\ttotalRecords := len(recordsSlice)\n\n\t// Perform a binary search to find the insertion point for the record\n\tinsertionPoint := sort.Search(totalRecords, func(currentIndex int) bool {\n\t\treturn record.Less(recordsSlice[currentIndex])\n\t})\n\n\tif insertionPoint \u003e 0 {\n\t\tpreviousRecord := recordsSlice[insertionPoint-1]\n\n\t\tif !previousRecord.Less(record) {\n\t\t\treturn insertionPoint - 1, true\n\t\t}\n\t}\n\n\treturn insertionPoint, false\n}\n\n// insertAt inserts a value into the given index, pushing all subsequent values\n// forward.\nfunc (childSlice *children) insertAt(index int, n *node) {\n\toriginalLength := len(*childSlice)\n\n\t// Extend the slice by one element\n\t*childSlice = append(*childSlice, nil)\n\n\t// Move elements from the end to avoid overwriting during the copy\n\tif index \u003c originalLength {\n\t\tfor i := originalLength; i \u003e index; i-- {\n\t\t\t(*childSlice)[i] = (*childSlice)[i-1]\n\t\t}\n\t}\n\n\t// Insert the new record\n\t(*childSlice)[index] = n\n}\n\n// removeAt removes a Record from the records slice at the specified index.\n// It shifts subsequent records to fill the gap and returns the removed Record.\nfunc (childSlicePointer *children) removeAt(index int) *node {\n\tchildSlice := *childSlicePointer\n\tremovedChild := childSlice[index]\n\tcopy(childSlice[index:], childSlice[index+1:])\n\tchildSlice[len(childSlice)-1] = nil\n\t*childSlicePointer = childSlice[:len(childSlice)-1]\n\n\treturn removedChild\n}\n\n// Pop removes and returns the last Record from the records slice.\n// It also clears the reference to the removed Record to aid garbage collection.\nfunc (childSlicePointer *children) pop() *node {\n\tchildSlice := *childSlicePointer\n\tlastIndex := len(childSlice) - 1\n\tremovedChild := childSlice[lastIndex]\n\tchildSlice[lastIndex] = nil\n\t*childSlicePointer = childSlice[:lastIndex]\n\treturn removedChild\n}\n\n// This slice is intended only as a supply of records for the truncate function\n// that follows, and it should not be changed or altered.\nvar emptyChildren = make(children, 32)\n\n// truncate reduces the length of the slice to the specified index,\n// and clears the elements beyond that index to prevent memory leaks.\n// The index must be less than or equal to the current length of the slice.\nfunc (originalSlice *children) truncate(index int) {\n\t// Split the slice into the part to keep and the part to clear.\n\tchildrenToKeep := (*originalSlice)[:index]\n\tchildrenToClear := (*originalSlice)[index:]\n\n\t// Update the original slice to only contain the records to keep.\n\t*originalSlice = childrenToKeep\n\n\t// Clear the memory of the part that was truncated.\n\tfor len(childrenToClear) \u003e 0 {\n\t\t// Copy empty values from `emptyChildren` to the recordsToClear slice.\n\t\t// This effectively \"clears\" the memory by overwriting elements.\n\t\tnumCleared := copy(childrenToClear, emptyChildren)\n\n\t\t// Slice recordsToClear to exclude the elements that were just cleared.\n\t\tchildrenToClear = childrenToClear[numCleared:]\n\t}\n}\n\n// mutableFor creates a mutable copy of the node if the current node does not\n// already belong to the provided copy-on-write context (COW). If the node is\n// already associated with the given COW context, it returns the current node.\n//\n// Parameters:\n// - cowCtx: The copy-on-write context that should own the returned node.\n//\n// Returns:\n// - A pointer to the mutable node associated with the given COW context.\n//\n// If the current node belongs to a different COW context, this function:\n// - Allocates a new node using the provided context.\n// - Copies the node’s records and children slices into the newly allocated node.\n// - Returns the new node which is now owned by the given COW context.\nfunc (n *node) mutableFor(cowCtx *copyOnWriteContext) *node {\n\t// If the current node is already owned by the provided context, return it as-is.\n\tif n.cowCtx == cowCtx {\n\t\treturn n\n\t}\n\n\t// Create a new node in the provided context.\n\tnewNode := cowCtx.newNode()\n\n\t// Copy the records from the current node into the new node.\n\tnewNode.records = append(newNode.records[:0], n.records...)\n\n\t// Copy the children from the current node into the new node.\n\tnewNode.children = append(newNode.children[:0], n.children...)\n\n\treturn newNode\n}\n\n// mutableChild ensures that the child node at the given index is mutable and\n// associated with the same COW context as the parent node. If the child node\n// belongs to a different context, a copy of the child is created and stored in the\n// parent node.\n//\n// Parameters:\n// - i: The index of the child node to be made mutable.\n//\n// Returns:\n// - A pointer to the mutable child node.\nfunc (n *node) mutableChild(i int) *node {\n\t// Ensure that the child at index `i` is mutable and belongs to the same context as the parent.\n\tmutableChildNode := n.children[i].mutableFor(n.cowCtx)\n\t// Update the child node reference in the current node to the mutable version.\n\tn.children[i] = mutableChildNode\n\treturn mutableChildNode\n}\n\n// split splits the given node at the given index. The current node shrinks,\n// and this function returns the record that existed at that index and a new node\n// containing all records/children after it.\nfunc (n *node) split(i int) (Record, *node) {\n\trecord := n.records[i]\n\tnext := n.cowCtx.newNode()\n\tnext.records = append(next.records, n.records[i+1:]...)\n\tn.records.truncate(i)\n\tif len(n.children) \u003e 0 {\n\t\tnext.children = append(next.children, n.children[i+1:]...)\n\t\tn.children.truncate(i + 1)\n\t}\n\treturn record, next\n}\n\n// maybeSplitChild checks if a child should be split, and if so splits it.\n// Returns whether or not a split occurred.\nfunc (n *node) maybeSplitChild(i, maxRecords int) bool {\n\tif len(n.children[i].records) \u003c maxRecords {\n\t\treturn false\n\t}\n\tfirst := n.mutableChild(i)\n\trecord, second := first.split(maxRecords / 2)\n\tn.records.insertAt(i, record)\n\tn.children.insertAt(i+1, second)\n\treturn true\n}\n\n// insert adds a record to the subtree rooted at the current node, ensuring that no node in the subtree\n// exceeds the maximum number of allowed records (`maxRecords`). If an equivalent record is already present,\n// it replaces the existing one and returns it; otherwise, it returns nil.\n//\n// Parameters:\n// - record: The record to be inserted.\n// - maxRecords: The maximum number of records allowed per node.\n//\n// Returns:\n// - The record that was replaced if an equivalent record already existed, otherwise nil.\nfunc (n *node) insert(record Record, maxRecords int) Record {\n\t// Find the position where the new record should be inserted and check if an equivalent record already exists.\n\tinsertionIndex, recordExists := n.records.find(record)\n\n\tif recordExists {\n\t\t// If an equivalent record is found, replace it and return the old record.\n\t\texistingRecord := n.records[insertionIndex]\n\t\tn.records[insertionIndex] = record\n\t\treturn existingRecord\n\t}\n\n\t// If the current node is a leaf (has no children), insert the new record at the calculated index.\n\tif len(n.children) == 0 {\n\t\tn.records.insertAt(insertionIndex, record)\n\t\treturn nil\n\t}\n\n\t// Check if the child node at the insertion index needs to be split due to exceeding maxRecords.\n\tif n.maybeSplitChild(insertionIndex, maxRecords) {\n\t\t// If a split occurred, compare the new record with the record moved up to the current node.\n\t\tsplitRecord := n.records[insertionIndex]\n\t\tswitch {\n\t\tcase record.Less(splitRecord):\n\t\t\t// The new record belongs to the first (left) split node; no change to insertion index.\n\t\tcase splitRecord.Less(record):\n\t\t\t// The new record belongs to the second (right) split node; move the insertion index to the next position.\n\t\t\tinsertionIndex++\n\t\tdefault:\n\t\t\t// If the record is equivalent to the split record, replace it and return the old record.\n\t\t\texistingRecord := n.records[insertionIndex]\n\t\t\tn.records[insertionIndex] = record\n\t\t\treturn existingRecord\n\t\t}\n\t}\n\n\t// Recursively insert the record into the appropriate child node, now guaranteed to have space.\n\treturn n.mutableChild(insertionIndex).insert(record, maxRecords)\n}\n\n// get finds the given key in the subtree and returns it.\nfunc (n *node) get(key Record) Record {\n\ti, found := n.records.find(key)\n\tif found {\n\t\treturn n.records[i]\n\t} else if len(n.children) \u003e 0 {\n\t\treturn n.children[i].get(key)\n\t}\n\treturn nil\n}\n\n// min returns the first record in the subtree.\nfunc min(n *node) Record {\n\tif n == nil {\n\t\treturn nil\n\t}\n\tfor len(n.children) \u003e 0 {\n\t\tn = n.children[0]\n\t}\n\tif len(n.records) == 0 {\n\t\treturn nil\n\t}\n\treturn n.records[0]\n}\n\n// max returns the last record in the subtree.\nfunc max(n *node) Record {\n\tif n == nil {\n\t\treturn nil\n\t}\n\tfor len(n.children) \u003e 0 {\n\t\tn = n.children[len(n.children)-1]\n\t}\n\tif len(n.records) == 0 {\n\t\treturn nil\n\t}\n\treturn n.records[len(n.records)-1]\n}\n\n// toRemove details what record to remove in a node.remove call.\ntype toRemove int\n\nconst (\n\tremoveRecord toRemove = iota // removes the given record\n\tremoveMin // removes smallest record in the subtree\n\tremoveMax // removes largest record in the subtree\n)\n\n// remove removes a record from the subtree rooted at the current node.\n//\n// Parameters:\n// - record: The record to be removed (can be nil when the removal type indicates min or max).\n// - minRecords: The minimum number of records a node should have after removal.\n// - typ: The type of removal operation to perform (removeMin, removeMax, or removeRecord).\n//\n// Returns:\n// - The record that was removed, or nil if no such record was found.\nfunc (n *node) remove(record Record, minRecords int, removalType toRemove) Record {\n\tvar targetIndex int\n\tvar recordFound bool\n\n\t// Determine the index of the record to remove based on the removal type.\n\tswitch removalType {\n\tcase removeMax:\n\t\t// If this node is a leaf, remove and return the last record.\n\t\tif len(n.children) == 0 {\n\t\t\treturn n.records.pop()\n\t\t}\n\t\ttargetIndex = len(n.records) // The last record index for removing max.\n\n\tcase removeMin:\n\t\t// If this node is a leaf, remove and return the first record.\n\t\tif len(n.children) == 0 {\n\t\t\treturn n.records.removeAt(0)\n\t\t}\n\t\ttargetIndex = 0 // The first record index for removing min.\n\n\tcase removeRecord:\n\t\t// Locate the index of the record to be removed.\n\t\ttargetIndex, recordFound = n.records.find(record)\n\t\tif len(n.children) == 0 {\n\t\t\tif recordFound {\n\t\t\t\treturn n.records.removeAt(targetIndex)\n\t\t\t}\n\t\t\treturn nil // The record was not found in the leaf node.\n\t\t}\n\n\tdefault:\n\t\tpanic(\"invalid removal type\")\n\t}\n\n\t// If the current node has children, handle the removal recursively.\n\tif len(n.children[targetIndex].records) \u003c= minRecords {\n\t\t// If the target child node has too few records, grow it before proceeding with removal.\n\t\treturn n.growChildAndRemove(targetIndex, record, minRecords, removalType)\n\t}\n\n\t// Get a mutable reference to the child node at the target index.\n\ttargetChild := n.mutableChild(targetIndex)\n\n\t// If the record to be removed was found in the current node:\n\tif recordFound {\n\t\t// Replace the current record with its predecessor from the child node, and return the removed record.\n\t\treplacedRecord := n.records[targetIndex]\n\t\tn.records[targetIndex] = targetChild.remove(nil, minRecords, removeMax)\n\t\treturn replacedRecord\n\t}\n\n\t// Recursively remove the record from the child node.\n\treturn targetChild.remove(record, minRecords, removalType)\n}\n\n// growChildAndRemove grows child 'i' to make sure it's possible to remove an\n// record from it while keeping it at minRecords, then calls remove to actually\n// remove it.\n//\n// Most documentation says we have to do two sets of special casing:\n// 1. record is in this node\n// 2. record is in child\n//\n// In both cases, we need to handle the two subcases:\n//\n//\tA) node has enough values that it can spare one\n//\tB) node doesn't have enough values\n//\n// For the latter, we have to check:\n//\n//\ta) left sibling has node to spare\n//\tb) right sibling has node to spare\n//\tc) we must merge\n//\n// To simplify our code here, we handle cases #1 and #2 the same:\n// If a node doesn't have enough records, we make sure it does (using a,b,c).\n// We then simply redo our remove call, and the second time (regardless of\n// whether we're in case 1 or 2), we'll have enough records and can guarantee\n// that we hit case A.\nfunc (n *node) growChildAndRemove(i int, record Record, minRecords int, typ toRemove) Record {\n\tif i \u003e 0 \u0026\u0026 len(n.children[i-1].records) \u003e minRecords {\n\t\t// Steal from left child\n\t\tchild := n.mutableChild(i)\n\t\tstealFrom := n.mutableChild(i - 1)\n\t\tstolenRecord := stealFrom.records.pop()\n\t\tchild.records.insertAt(0, n.records[i-1])\n\t\tn.records[i-1] = stolenRecord\n\t\tif len(stealFrom.children) \u003e 0 {\n\t\t\tchild.children.insertAt(0, stealFrom.children.pop())\n\t\t}\n\t} else if i \u003c len(n.records) \u0026\u0026 len(n.children[i+1].records) \u003e minRecords {\n\t\t// steal from right child\n\t\tchild := n.mutableChild(i)\n\t\tstealFrom := n.mutableChild(i + 1)\n\t\tstolenRecord := stealFrom.records.removeAt(0)\n\t\tchild.records = append(child.records, n.records[i])\n\t\tn.records[i] = stolenRecord\n\t\tif len(stealFrom.children) \u003e 0 {\n\t\t\tchild.children = append(child.children, stealFrom.children.removeAt(0))\n\t\t}\n\t} else {\n\t\tif i \u003e= len(n.records) {\n\t\t\ti--\n\t\t}\n\t\tchild := n.mutableChild(i)\n\t\t// merge with right child\n\t\tmergeRecord := n.records.removeAt(i)\n\t\tmergeChild := n.children.removeAt(i + 1).mutableFor(n.cowCtx)\n\t\tchild.records = append(child.records, mergeRecord)\n\t\tchild.records = append(child.records, mergeChild.records...)\n\t\tchild.children = append(child.children, mergeChild.children...)\n\t\tn.cowCtx.freeNode(mergeChild)\n\t}\n\treturn n.remove(record, minRecords, typ)\n}\n\ntype direction int\n\nconst (\n\tdescend = direction(-1)\n\tascend = direction(+1)\n)\n\n// iterate provides a simple method for iterating over elements in the tree.\n//\n// When ascending, the 'start' should be less than 'stop' and when descending,\n// the 'start' should be greater than 'stop'. Setting 'includeStart' to true\n// will force the iterator to include the first record when it equals 'start',\n// thus creating a \"greaterOrEqual\" or \"lessThanEqual\" rather than just a\n// \"greaterThan\" or \"lessThan\" queries.\nfunc (n *node) iterate(dir direction, start, stop Record, includeStart bool, hit bool, iter RecordIterator) (bool, bool) {\n\tvar ok, found bool\n\tvar index int\n\tswitch dir {\n\tcase ascend:\n\t\tif start != nil {\n\t\t\tindex, _ = n.records.find(start)\n\t\t}\n\t\tfor i := index; i \u003c len(n.records); i++ {\n\t\t\tif len(n.children) \u003e 0 {\n\t\t\t\tif hit, ok = n.children[i].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\t\treturn hit, false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !includeStart \u0026\u0026 !hit \u0026\u0026 start != nil \u0026\u0026 !start.Less(n.records[i]) {\n\t\t\t\thit = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\thit = true\n\t\t\tif stop != nil \u0026\u0026 !n.records[i].Less(stop) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t\tif !iter(n.records[i]) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t\tif len(n.children) \u003e 0 {\n\t\t\tif hit, ok = n.children[len(n.children)-1].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\tcase descend:\n\t\tif start != nil {\n\t\t\tindex, found = n.records.find(start)\n\t\t\tif !found {\n\t\t\t\tindex = index - 1\n\t\t\t}\n\t\t} else {\n\t\t\tindex = len(n.records) - 1\n\t\t}\n\t\tfor i := index; i \u003e= 0; i-- {\n\t\t\tif start != nil \u0026\u0026 !n.records[i].Less(start) {\n\t\t\t\tif !includeStart || hit || start.Less(n.records[i]) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(n.children) \u003e 0 {\n\t\t\t\tif hit, ok = n.children[i+1].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\t\treturn hit, false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif stop != nil \u0026\u0026 !stop.Less(n.records[i]) {\n\t\t\t\treturn hit, false //\tcontinue\n\t\t\t}\n\t\t\thit = true\n\t\t\tif !iter(n.records[i]) {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t\tif len(n.children) \u003e 0 {\n\t\t\tif hit, ok = n.children[0].iterate(dir, start, stop, includeStart, hit, iter); !ok {\n\t\t\t\treturn hit, false\n\t\t\t}\n\t\t}\n\t}\n\treturn hit, true\n}\n\nfunc (tree *BTree) Iterate(dir direction, start, stop Record, includeStart bool, hit bool, iter RecordIterator) (bool, bool) {\n\treturn tree.root.iterate(dir, start, stop, includeStart, hit, iter)\n}\n\n// Clone creates a new BTree instance that shares the current tree's structure using a copy-on-write (COW) approach.\n//\n// How Cloning Works:\n// - The cloned tree (`clonedTree`) shares the current tree’s nodes in a read-only state. This means that no additional memory\n// is allocated for shared nodes, and read operations on the cloned tree are as fast as on the original tree.\n// - When either the original tree (`t`) or the cloned tree (`clonedTree`) needs to perform a write operation (such as an insert, delete, etc.),\n// a new copy of the affected nodes is created on-demand. This ensures that modifications to one tree do not affect the other.\n//\n// Performance Implications:\n// - **Clone Creation:** The creation of a clone is inexpensive since it only involves copying references to the original tree's nodes\n// and creating new copy-on-write contexts.\n// - **Read Operations:** Reading from either the original tree or the cloned tree has no additional performance overhead compared to the original tree.\n// - **Write Operations:** The first write operation on either tree may experience a slight slow-down due to the allocation of new nodes,\n// but subsequent write operations will perform at the same speed as if the tree were not cloned.\n//\n// Returns:\n// - A new BTree instance (`clonedTree`) that shares the original tree's structure.\nfunc (t *BTree) Clone() *BTree {\n\t// Create two independent copy-on-write contexts, one for the original tree (`t`) and one for the cloned tree.\n\toriginalContext := *t.cowCtx\n\tclonedContext := *t.cowCtx\n\n\t// Create a shallow copy of the current tree, which will be the new cloned tree.\n\tclonedTree := *t\n\n\t// Assign the new contexts to their respective trees.\n\tt.cowCtx = \u0026originalContext\n\tclonedTree.cowCtx = \u0026clonedContext\n\n\treturn \u0026clonedTree\n}\n\n// maxRecords returns the max number of records to allow per node.\nfunc (t *BTree) maxRecords() int {\n\treturn t.degree*2 - 1\n}\n\n// minRecords returns the min number of records to allow per node (ignored for the\n// root node).\nfunc (t *BTree) minRecords() int {\n\treturn t.degree - 1\n}\n\nfunc (c *copyOnWriteContext) newNode() (n *node) {\n\tn = c.nodes.newNode()\n\tn.cowCtx = c\n\treturn\n}\n\ntype freeType int\n\nconst (\n\tftFreelistFull freeType = iota // node was freed (available for GC, not stored in nodes)\n\tftStored // node was stored in the nodes for later use\n\tftNotOwned // node was ignored by COW, since it's owned by another one\n)\n\n// freeNode frees a node within a given COW context, if it's owned by that\n// context. It returns what happened to the node (see freeType const\n// documentation).\nfunc (c *copyOnWriteContext) freeNode(n *node) freeType {\n\tif n.cowCtx == c {\n\t\t// clear to allow GC\n\t\tn.records.truncate(0)\n\t\tn.children.truncate(0)\n\t\tn.cowCtx = nil\n\t\tif c.nodes.freeNode(n) {\n\t\t\treturn ftStored\n\t\t} else {\n\t\t\treturn ftFreelistFull\n\t\t}\n\t} else {\n\t\treturn ftNotOwned\n\t}\n}\n\n// Insert adds the given record to the B-tree. If a record already exists in the tree with the same value,\n// it is replaced, and the old record is returned. Otherwise, it returns nil.\n//\n// Notes:\n// - The function panics if a nil record is provided as input.\n// - If the root node is empty, a new root node is created and the record is inserted.\n//\n// Parameters:\n// - record: The record to be inserted into the B-tree.\n//\n// Returns:\n// - The replaced record if an equivalent record already exists, or nil if no replacement occurred.\nfunc (t *BTree) Insert(record Record) Record {\n\tif record == nil {\n\t\tpanic(\"nil record cannot be added to BTree\")\n\t}\n\n\t// If the tree is empty (no root), create a new root node and insert the record.\n\tif t.root == nil {\n\t\tt.root = t.cowCtx.newNode()\n\t\tt.root.records = append(t.root.records, record)\n\t\tt.length++\n\t\treturn nil\n\t}\n\n\t// Ensure that the root node is mutable (associated with the current tree's copy-on-write context).\n\tt.root = t.root.mutableFor(t.cowCtx)\n\n\t// If the root node is full (contains the maximum number of records), split the root.\n\tif len(t.root.records) \u003e= t.maxRecords() {\n\t\t// Split the root node, promoting the middle record and creating a new child node.\n\t\tmiddleRecord, newChildNode := t.root.split(t.maxRecords() / 2)\n\n\t\t// Create a new root node to hold the promoted middle record.\n\t\toldRoot := t.root\n\t\tt.root = t.cowCtx.newNode()\n\t\tt.root.records = append(t.root.records, middleRecord)\n\t\tt.root.children = append(t.root.children, oldRoot, newChildNode)\n\t}\n\n\t// Insert the new record into the subtree rooted at the current root node.\n\treplacedRecord := t.root.insert(record, t.maxRecords())\n\n\t// If no record was replaced, increase the tree's length.\n\tif replacedRecord == nil {\n\t\tt.length++\n\t}\n\n\treturn replacedRecord\n}\n\n// Delete removes an record equal to the passed in record from the tree, returning\n// it. If no such record exists, returns nil.\nfunc (t *BTree) Delete(record Record) Record {\n\treturn t.deleteRecord(record, removeRecord)\n}\n\n// DeleteMin removes the smallest record in the tree and returns it.\n// If no such record exists, returns nil.\nfunc (t *BTree) DeleteMin() Record {\n\treturn t.deleteRecord(nil, removeMin)\n}\n\n// Shift is identical to DeleteMin. If the tree is thought of as an ordered list, then Shift()\n// removes the element at the start of the list, the smallest element, and returns it.\nfunc (t *BTree) Shift() Record {\n\treturn t.deleteRecord(nil, removeMin)\n}\n\n// DeleteMax removes the largest record in the tree and returns it.\n// If no such record exists, returns nil.\nfunc (t *BTree) DeleteMax() Record {\n\treturn t.deleteRecord(nil, removeMax)\n}\n\n// Pop is identical to DeleteMax. If the tree is thought of as an ordered list, then Shift()\n// removes the element at the end of the list, the largest element, and returns it.\nfunc (t *BTree) Pop() Record {\n\treturn t.deleteRecord(nil, removeMax)\n}\n\n// deleteRecord removes a record from the B-tree based on the specified removal type (removeMin, removeMax, or removeRecord).\n// It returns the removed record if it was found, or nil if no matching record was found.\n//\n// Parameters:\n// - record: The record to be removed (can be nil if the removal type indicates min or max).\n// - removalType: The type of removal operation to perform (removeMin, removeMax, or removeRecord).\n//\n// Returns:\n// - The removed record if it existed in the tree, or nil if it was not found.\nfunc (t *BTree) deleteRecord(record Record, removalType toRemove) Record {\n\t// If the tree is empty or the root has no records, return nil.\n\tif t.root == nil || len(t.root.records) == 0 {\n\t\treturn nil\n\t}\n\n\t// Ensure the root node is mutable (associated with the tree's copy-on-write context).\n\tt.root = t.root.mutableFor(t.cowCtx)\n\n\t// Attempt to remove the specified record from the root node.\n\tremovedRecord := t.root.remove(record, t.minRecords(), removalType)\n\n\t// Check if the root node has become empty but still has children.\n\t// In this case, the tree height should be reduced, making the first child the new root.\n\tif len(t.root.records) == 0 \u0026\u0026 len(t.root.children) \u003e 0 {\n\t\toldRoot := t.root\n\t\tt.root = t.root.children[0]\n\t\t// Free the old root node, as it is no longer needed.\n\t\tt.cowCtx.freeNode(oldRoot)\n\t}\n\n\t// If a record was successfully removed, decrease the tree's length.\n\tif removedRecord != nil {\n\t\tt.length--\n\t}\n\n\treturn removedRecord\n}\n\n// AscendRange calls the iterator for every value in the tree within the range\n// [greaterOrEqual, lessThan), until iterator returns false.\nfunc (t *BTree) AscendRange(greaterOrEqual, lessThan Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, greaterOrEqual, lessThan, true, false, iterator)\n}\n\n// AscendLessThan calls the iterator for every value in the tree within the range\n// [first, pivot), until iterator returns false.\nfunc (t *BTree) AscendLessThan(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, nil, pivot, false, false, iterator)\n}\n\n// AscendGreaterOrEqual calls the iterator for every value in the tree within\n// the range [pivot, last], until iterator returns false.\nfunc (t *BTree) AscendGreaterOrEqual(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, pivot, nil, true, false, iterator)\n}\n\n// Ascend calls the iterator for every value in the tree within the range\n// [first, last], until iterator returns false.\nfunc (t *BTree) Ascend(iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(ascend, nil, nil, false, false, iterator)\n}\n\n// DescendRange calls the iterator for every value in the tree within the range\n// [lessOrEqual, greaterThan), until iterator returns false.\nfunc (t *BTree) DescendRange(lessOrEqual, greaterThan Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, lessOrEqual, greaterThan, true, false, iterator)\n}\n\n// DescendLessOrEqual calls the iterator for every value in the tree within the range\n// [pivot, first], until iterator returns false.\nfunc (t *BTree) DescendLessOrEqual(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, pivot, nil, true, false, iterator)\n}\n\n// DescendGreaterThan calls the iterator for every value in the tree within\n// the range [last, pivot), until iterator returns false.\nfunc (t *BTree) DescendGreaterThan(pivot Record, iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, nil, pivot, false, false, iterator)\n}\n\n// Descend calls the iterator for every value in the tree within the range\n// [last, first], until iterator returns false.\nfunc (t *BTree) Descend(iterator RecordIterator) {\n\tif t.root == nil {\n\t\treturn\n\t}\n\tt.root.iterate(descend, nil, nil, false, false, iterator)\n}\n\n// Get looks for the key record in the tree, returning it. It returns nil if\n// unable to find that record.\nfunc (t *BTree) Get(key Record) Record {\n\tif t.root == nil {\n\t\treturn nil\n\t}\n\treturn t.root.get(key)\n}\n\n// Min returns the smallest record in the tree, or nil if the tree is empty.\nfunc (t *BTree) Min() Record {\n\treturn min(t.root)\n}\n\n// Max returns the largest record in the tree, or nil if the tree is empty.\nfunc (t *BTree) Max() Record {\n\treturn max(t.root)\n}\n\n// Has returns true if the given key is in the tree.\nfunc (t *BTree) Has(key Record) bool {\n\treturn t.Get(key) != nil\n}\n\n// Len returns the number of records currently in the tree.\nfunc (t *BTree) Len() int {\n\treturn t.length\n}\n\n// Clear removes all elements from the B-tree.\n//\n// Parameters:\n// - addNodesToFreelist:\n// - If true, the tree's nodes are added to the freelist during the clearing process,\n// up to the freelist's capacity.\n// - If false, the root node is simply dereferenced, allowing Go's garbage collector\n// to reclaim the memory.\n//\n// Benefits:\n// - **Performance:**\n// - Significantly faster than deleting each element individually, as it avoids the overhead\n// of searching and updating the tree structure for each deletion.\n// - More efficient than creating a new tree, since it reuses existing nodes by adding them\n// to the freelist instead of discarding them to the garbage collector.\n//\n// Time Complexity:\n// - **O(1):**\n// - When `addNodesToFreelist` is false.\n// - When `addNodesToFreelist` is true but the freelist is already full.\n// - **O(freelist size):**\n// - When adding nodes to the freelist up to its capacity.\n// - **O(tree size):**\n// - When iterating through all nodes to add to the freelist, but none can be added due to\n// ownership by another tree.\n\nfunc (tree *BTree) Clear(addNodesToFreelist bool) {\n\tif tree.root != nil \u0026\u0026 addNodesToFreelist {\n\t\ttree.root.reset(tree.cowCtx)\n\t}\n\ttree.root = nil\n\ttree.length = 0\n}\n\n// reset adds all nodes in the current subtree to the freelist.\n//\n// The function operates recursively:\n// - It first attempts to reset all child nodes.\n// - If the freelist becomes full at any point, the process stops immediately.\n//\n// Parameters:\n// - copyOnWriteCtx: The copy-on-write context managing the freelist.\n//\n// Returns:\n// - true: Indicates that the parent node should continue attempting to reset its nodes.\n// - false: Indicates that the freelist is full and no further nodes should be added.\n//\n// Usage:\n// This method is called during the `Clear` operation of the B-tree to efficiently reuse\n// nodes by adding them to the freelist, thereby avoiding unnecessary allocations and reducing\n// garbage collection overhead.\nfunc (currentNode *node) reset(copyOnWriteCtx *copyOnWriteContext) bool {\n\t// Iterate through each child node and attempt to reset it.\n\tfor _, childNode := range currentNode.children {\n\t\t// If any child reset operation signals that the freelist is full, stop the process.\n\t\tif !childNode.reset(copyOnWriteCtx) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Attempt to add the current node to the freelist.\n\t// If the freelist is full after this operation, indicate to the parent to stop.\n\tfreelistStatus := copyOnWriteCtx.freeNode(currentNode)\n\treturn freelistStatus != ftFreelistFull\n}\n"},{"name":"btree_test.gno","body":"package btree\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"testing\"\n)\n\n// Content represents a key-value pair where the Key can be either an int or string\n// and the Value can be any type.\ntype Content struct {\n\tKey interface{}\n\tValue interface{}\n}\n\n// Less compares two Content records by their Keys.\n// The Key must be either an int or a string.\nfunc (c Content) Less(than Record) bool {\n\tother, ok := than.(Content)\n\tif !ok {\n\t\tpanic(\"cannot compare: incompatible types\")\n\t}\n\n\tswitch key := c.Key.(type) {\n\tcase int:\n\t\tswitch otherKey := other.Key.(type) {\n\t\tcase int:\n\t\t\treturn key \u003c otherKey\n\t\tcase string:\n\t\t\treturn true // ints are always less than strings\n\t\tdefault:\n\t\t\tpanic(\"unsupported key type: must be int or string\")\n\t\t}\n\tcase string:\n\t\tswitch otherKey := other.Key.(type) {\n\t\tcase int:\n\t\t\treturn false // strings are always greater than ints\n\t\tcase string:\n\t\t\treturn key \u003c otherKey\n\t\tdefault:\n\t\t\tpanic(\"unsupported key type: must be int or string\")\n\t\t}\n\tdefault:\n\t\tpanic(\"unsupported key type: must be int or string\")\n\t}\n}\n\ntype ContentSlice []Content\n\nfunc (s ContentSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s ContentSlice) Less(i, j int) bool {\n\treturn s[i].Less(s[j])\n}\n\nfunc (s ContentSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc (s ContentSlice) Copy() ContentSlice {\n\tnewSlice := make(ContentSlice, len(s))\n\tcopy(newSlice, s)\n\treturn newSlice\n}\n\n// Ensure Content implements the Record interface.\nvar _ Record = Content{}\n\n// ****************************************************************************\n// Test helpers\n// ****************************************************************************\n\nfunc genericSeeding(tree *BTree, size int) *BTree {\n\tfor i := 0; i \u003c size; i++ {\n\t\ttree.Insert(Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)})\n\t}\n\treturn tree\n}\n\nfunc intSlicesCompare(left, right []int) int {\n\tif len(left) != len(right) {\n\t\tif len(left) \u003e len(right) {\n\t\t\treturn 1\n\t\t} else {\n\t\t\treturn -1\n\t\t}\n\t}\n\n\tfor position, leftInt := range left {\n\t\tif leftInt != right[position] {\n\t\t\tif leftInt \u003e right[position] {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0\n}\n\n// ****************************************************************************\n// Tests\n// ****************************************************************************\n\nfunc TestLen(t *testing.T) {\n\tlength := genericSeeding(New(WithDegree(10)), 7).Len()\n\tif length != 7 {\n\t\tt.Errorf(\"Length is incorrect. Expected 7, but got %d.\", length)\n\t}\n\n\tlength = genericSeeding(New(WithDegree(5)), 111).Len()\n\tif length != 111 {\n\t\tt.Errorf(\"Length is incorrect. Expected 111, but got %d.\", length)\n\t}\n\n\tlength = genericSeeding(New(WithDegree(30)), 123).Len()\n\tif length != 123 {\n\t\tt.Errorf(\"Length is incorrect. Expected 123, but got %d.\", length)\n\t}\n\n}\n\nfunc TestHas(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 40)\n\n\tif tree.Has(Content{Key: 7}) != true {\n\t\tt.Errorf(\"Has(7) reported false, but it should be true.\")\n\t}\n\tif tree.Has(Content{Key: 39}) != true {\n\t\tt.Errorf(\"Has(40) reported false, but it should be true.\")\n\t}\n\tif tree.Has(Content{Key: 1111}) == true {\n\t\tt.Errorf(\"Has(1111) reported true, but it should be false.\")\n\t}\n}\n\nfunc TestMin(t *testing.T) {\n\tmin := Content(genericSeeding(New(WithDegree(10)), 53).Min())\n\n\tif min.Key != 0 {\n\t\tt.Errorf(\"Minimum should have been 0, but it was reported as %d.\", min)\n\t}\n}\n\nfunc TestMax(t *testing.T) {\n\tmax := Content(genericSeeding(New(WithDegree(10)), 53).Min())\n\n\tif max.Key != 0 {\n\t\tt.Errorf(\"Minimum should have been 0, but it was reported as %d.\", max)\n\t}\n}\n\nfunc TestGet(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 40)\n\n\tif Content(tree.Get(Content{Key: 7})).Value != \"Value_7\" {\n\t\tt.Errorf(\"Get(7) should have returned 'Value_7', but it returned %v.\", tree.Get(Content{Key: 7}))\n\t}\n\tif Content(tree.Get(Content{Key: 39})).Value != \"Value_39\" {\n\t\tt.Errorf(\"Get(40) should have returnd 'Value_39', but it returned %v.\", tree.Get(Content{Key: 39}))\n\t}\n\tif tree.Get(Content{Key: 1111}) != nil {\n\t\tt.Errorf(\"Get(1111) returned %v, but it should be nil.\", Content(tree.Get(Content{Key: 1111})))\n\t}\n}\n\nfunc TestDescend(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 5)\n\n\texpected := []int{4, 3, 2, 1, 0}\n\tfound := []int{}\n\n\ttree.Descend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"Descend returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendGreaterThan(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{9, 8, 7, 6, 5}\n\tfound := []int{}\n\n\ttree.DescendGreaterThan(Content{Key: 4}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendGreaterThan returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendLessOrEqual(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{4, 3, 2, 1, 0}\n\tfound := []int{}\n\n\ttree.DescendLessOrEqual(Content{Key: 4}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendLessOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDescendRange(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{6, 5, 4, 3, 2}\n\tfound := []int{}\n\n\ttree.DescendRange(Content{Key: 6}, Content{Key: 1}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendRange returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscend(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 5)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\ttree.Ascend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"Ascend returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendGreaterOrEqual(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{5, 6, 7, 8, 9}\n\tfound := []int{}\n\n\ttree.AscendGreaterOrEqual(Content{Key: 5}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"AscendGreaterOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendLessThan(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\ttree.AscendLessThan(Content{Key: 5}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendLessOrEqual returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestAscendRange(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(10)), 10)\n\n\texpected := []int{2, 3, 4, 5, 6}\n\tfound := []int{}\n\n\ttree.AscendRange(Content{Key: 2}, Content{Key: 7}, func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tfound = append(found, int(record.Key))\n\t\treturn true\n\t})\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"DescendRange returned the wrong sequence. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDeleteMin(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\tfound = append(found, int(Content(tree.DeleteMin()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestShift(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{0, 1, 2, 3, 4}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\tfound = append(found, int(Content(tree.Shift()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of Shift returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestDeleteMax(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{99, 98, 97, 96, 95}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\tfound = append(found, int(Content(tree.DeleteMax()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestPop(t *testing.T) {\n\ttree := genericSeeding(New(WithDegree(3)), 100)\n\n\texpected := []int{99, 98, 97, 96, 95}\n\tfound := []int{}\n\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\tfound = append(found, int(Content(tree.Pop()).Key))\n\n\tif intSlicesCompare(expected, found) != 0 {\n\t\tt.Errorf(\"5 rounds of DeleteMin returned the wrong elements. Expected %v, but got %v.\", expected, found)\n\t}\n}\n\nfunc TestInsertGet(t *testing.T) {\n\ttree := New(WithDegree(4))\n\n\texpected := []Content{}\n\n\tfor count := 0; count \u003c 20; count++ {\n\t\tvalue := fmt.Sprintf(\"Value_%d\", count)\n\t\ttree.Insert(Content{Key: count, Value: value})\n\t\texpected = append(expected, Content{Key: count, Value: value})\n\t}\n\n\tfor count := 0; count \u003c 20; count++ {\n\t\tif tree.Get(Content{Key: count}) != expected[count] {\n\t\t\tt.Errorf(\"Insert/Get doesn't appear to be working. Expected to retrieve %v with key %d, but got %v.\", expected[count], count, tree.Get(Content{Key: count}))\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n}\n\n// ***** The following tests are functional or stress testing type tests.\n\nfunc TestBTree(t *testing.T) {\n\t// Create a B-Tree of degree 3\n\ttree := New(WithDegree(3))\n\n\t//insertData := []Content{}\n\tvar insertData ContentSlice\n\n\t// Insert integer keys\n\tintKeys := []int{10, 20, 5, 6, 12, 30, 7, 17}\n\tfor _, key := range intKeys {\n\t\tcontent := Content{Key: key, Value: fmt.Sprintf(\"Value_%d\", key)}\n\t\tinsertData = append(insertData, content)\n\t\tresult := tree.Insert(content)\n\t\tif result != nil {\n\t\t\tt.Errorf(\"**** Already in the tree? %v\", result)\n\t\t}\n\t}\n\n\t// Insert string keys\n\tstringKeys := []string{\"apple\", \"banana\", \"cherry\", \"date\", \"fig\", \"grape\"}\n\tfor _, key := range stringKeys {\n\t\tcontent := Content{Key: key, Value: fmt.Sprintf(\"Fruit_%s\", key)}\n\t\tinsertData = append(insertData, content)\n\t\ttree.Insert(content)\n\t}\n\n\tif tree.Len() != 14 {\n\t\tt.Errorf(\"Tree length wrong. Expected 14 but got %d\", tree.Len())\n\t}\n\n\t// Search for existing and non-existing keys\n\tsearchTests := []struct {\n\t\ttest Content\n\t\texpected bool\n\t}{\n\t\t{Content{Key: 10, Value: \"Value_10\"}, true},\n\t\t{Content{Key: 15, Value: \"\"}, false},\n\t\t{Content{Key: \"banana\", Value: \"Fruit_banana\"}, true},\n\t\t{Content{Key: \"kiwi\", Value: \"\"}, false},\n\t}\n\n\tt.Logf(\"Search Tests:\\n\")\n\tfor _, test := range searchTests {\n\t\tval := tree.Get(test.test)\n\n\t\tif test.expected {\n\t\t\tif val != nil \u0026\u0026 Content(val).Value == test.test.Value {\n\t\t\t\tt.Logf(\"Found expected key:value %v:%v\", test.test.Key, test.test.Value)\n\t\t\t} else {\n\t\t\t\tif val == nil {\n\t\t\t\t\tt.Logf(\"Didn't find %v, but expected\", test.test.Key)\n\t\t\t\t} else {\n\t\t\t\t\tt.Errorf(\"Expected key %v:%v, but found %v:%v.\", test.test.Key, test.test.Value, Content(val).Key, Content(val).Value)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Did not expect key %v, but found key:value %v:%v\", test.test.Key, Content(val).Key, Content(val).Value)\n\t\t\t} else {\n\t\t\t\tt.Logf(\"Didn't find %v, but wasn't expected\", test.test.Key)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Iterate in order\n\tt.Logf(\"\\nIn-order Iteration:\\n\")\n\tpos := 0\n\n\tif tree.Len() != 14 {\n\t\tt.Errorf(\"Tree length wrong. Expected 14 but got %d\", tree.Len())\n\t}\n\n\tsortedInsertData := insertData.Copy()\n\tsort.Sort(sortedInsertData)\n\n\tt.Logf(\"Insert Data Length: %d\", len(insertData))\n\tt.Logf(\"Sorted Data Length: %d\", len(sortedInsertData))\n\tt.Logf(\"Tree Length: %d\", tree.Len())\n\n\ttree.Ascend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tt.Logf(\"Key:Value == %v:%v\", record.Key, record.Value)\n\t\tif record.Key != sortedInsertData[pos].Key {\n\t\t\tt.Errorf(\"Out of order! Expected %v, but got %v\", sortedInsertData[pos].Key, record.Key)\n\t\t}\n\t\tpos++\n\t\treturn true\n\t})\n\t// // Reverse Iterate\n\tt.Logf(\"\\nReverse-order Iteration:\\n\")\n\tpos = len(sortedInsertData) - 1\n\n\ttree.Descend(func(_record Record) bool {\n\t\trecord := Content(_record)\n\t\tt.Logf(\"Key:Value == %v:%v\", record.Key, record.Value)\n\t\tif record.Key != sortedInsertData[pos].Key {\n\t\t\tt.Errorf(\"Out of order! Expected %v, but got %v\", sortedInsertData[pos].Key, record.Key)\n\t\t}\n\t\tpos--\n\t\treturn true\n\t})\n\n\tdeleteTests := []Content{\n\t\tContent{Key: 10, Value: \"Value_10\"},\n\t\tContent{Key: 15, Value: \"\"},\n\t\tContent{Key: \"banana\", Value: \"Fruit_banana\"},\n\t\tContent{Key: \"kiwi\", Value: \"\"},\n\t}\n\tfor _, test := range deleteTests {\n\t\tfmt.Printf(\"\\nDeleting %+v\\n\", test)\n\t\ttree.Delete(test)\n\t}\n\n\tif tree.Len() != 12 {\n\t\tt.Errorf(\"Tree length wrong. Expected 12 but got %d\", tree.Len())\n\t}\n\n\tfor _, test := range deleteTests {\n\t\tval := tree.Get(test)\n\t\tif val != nil {\n\t\t\tt.Errorf(\"Did not expect key %v, but found key:value %v:%v\", test.Key, Content(val).Key, Content(val).Value)\n\t\t} else {\n\t\t\tt.Logf(\"Didn't find %v, but wasn't expected\", test.Key)\n\t\t}\n\t}\n}\n\nfunc TestStress(t *testing.T) {\n\t// Loop through creating B-Trees with a range of degrees from 3 to 12, stepping by 3.\n\t// Insert 1000 records into each tree, then search for each record.\n\t// Delete half of the records, skipping every other one, then search for each record.\n\n\tfor degree := 3; degree \u003c= 12; degree += 3 {\n\t\tt.Logf(\"Testing B-Tree of degree %d\\n\", degree)\n\t\ttree := New(WithDegree(degree))\n\n\t\t// Insert 1000 records\n\t\tt.Logf(\"Inserting 1000 records\\n\")\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\ttree.Insert(content)\n\t\t}\n\n\t\t// Search for all records\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\tval := tree.Get(content)\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\t// Delete half of the records\n\t\tfor i := 0; i \u003c 1000; i += 2 {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\ttree.Delete(content)\n\t\t}\n\n\t\t// Search for all records\n\t\tfor i := 0; i \u003c 1000; i++ {\n\t\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\t\tval := tree.Get(content)\n\t\t\tif i%2 == 0 {\n\t\t\t\tif val != nil {\n\t\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif val == nil {\n\t\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Now create a very large tree, with 100000 records\n\t// Then delete roughly one third of them, using a very basic random number generation scheme\n\t// (implement it right here) to determine which records to delete.\n\t// Print a few lines using Logf to let the user know what's happening.\n\n\tt.Logf(\"Testing B-Tree of degree 10 with 100000 records\\n\")\n\ttree := New(WithDegree(10))\n\n\t// Insert 100000 records\n\tt.Logf(\"Inserting 100000 records\\n\")\n\tfor i := 0; i \u003c 100000; i++ {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Insert(content)\n\t}\n\n\t// Implement a very basic random number generator\n\tseed := 0\n\trandom := func() int {\n\t\tseed = (seed*1103515245 + 12345) \u0026 0x7fffffff\n\t\treturn seed\n\t}\n\n\t// Delete one third of the records\n\tt.Logf(\"Deleting one third of the records\\n\")\n\tfor i := 0; i \u003c 35000; i++ {\n\t\tcontent := Content{Key: random() % 100000, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t}\n}\n\n// Write a test that populates a large B-Tree with 10000 records.\n// It should then `Clone` the tree, make some changes to both the original and the clone,\n// And then clone the clone, and make some changes to all three trees, and then check that the changes are isolated\n// to the tree they were made in.\n\nfunc TestBTreeCloneIsolation(t *testing.T) {\n\tt.Logf(\"Creating B-Tree of degree 10 with 10000 records\\n\")\n\ttree := genericSeeding(New(WithDegree(10)), 10000)\n\n\t// Clone the tree\n\tt.Logf(\"Cloning the tree\\n\")\n\tclone := tree.Clone()\n\n\t// Make some changes to the original and the clone\n\tt.Logf(\"Making changes to the original and the clone\\n\")\n\tfor i := 0; i \u003c 10000; i += 2 {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t\tcontent = Content{Key: i + 1, Value: fmt.Sprintf(\"Value_%d\", i+1)}\n\t\tclone.Delete(content)\n\t}\n\n\t// Clone the clone\n\tt.Logf(\"Cloning the clone\\n\")\n\tclone2 := clone.Clone()\n\n\t// Make some changes to all three trees\n\tt.Logf(\"Making changes to all three trees\\n\")\n\tfor i := 0; i \u003c 10000; i += 3 {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\ttree.Delete(content)\n\t\tcontent = Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i+1)}\n\t\tclone.Delete(content)\n\t\tcontent = Content{Key: i + 2, Value: fmt.Sprintf(\"Value_%d\", i+2)}\n\t\tclone2.Delete(content)\n\t}\n\n\t// Check that the changes are isolated to the tree they were made in\n\tt.Logf(\"Checking that the changes are isolated to the tree they were made in\\n\")\n\tfor i := 0; i \u003c 10000; i++ {\n\t\tcontent := Content{Key: i, Value: fmt.Sprintf(\"Value_%d\", i)}\n\t\tval := tree.Get(content)\n\n\t\tif i%3 == 0 || i%2 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\tval = clone.Get(content)\n\t\tif i%2 != 0 || i%3 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\n\t\tval = clone2.Get(content)\n\t\tif i%2 != 0 || (i-2)%3 == 0 {\n\t\t\tif val != nil {\n\t\t\t\tt.Errorf(\"Didn't expect key %v, but found key:value %v:%v\", content.Key, Content(val).Key, Content(val).Value)\n\t\t\t}\n\t\t} else {\n\t\t\tif val == nil {\n\t\t\t\tt.Errorf(\"Expected key %v, but didn't find it\", content.Key)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FKxICmzIUKveC7d7qKQcRaBcQJkCQYEqHHJvKU9yGz2OULz+n9OoYu6tRe/ilr6JpYyUXseb1XD7tZJTMb6DAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"btree_dao","path":"gno.land/r/demo/btree_dao","files":[{"name":"btree_dao.gno","body":"package btree_dao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/btree\"\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/md\"\n)\n\n// RegistrationDetails holds the details of a user's registration in the BTree DAO.\n// It stores the user's address, registration time, their B-Tree if they planted one,\n// and their NFT ID.\ntype RegistrationDetails struct {\n\tAddress std.Address\n\tRegTime time.Time\n\tUserBTree *btree.BTree\n\tNFTID string\n}\n\n// Less implements the btree.Record interface for RegistrationDetails.\n// It compares two RegistrationDetails based on their registration time.\n// Returns true if the current registration time is before the other registration time.\nfunc (rd *RegistrationDetails) Less(than btree.Record) bool {\n\tother := than.(*RegistrationDetails)\n\treturn rd.RegTime.Before(other.RegTime)\n}\n\nvar (\n\tdao = grc721.NewBasicNFT(\"BTree DAO\", \"BTDAO\")\n\ttokenID = 0\n\tmembers = btree.New()\n)\n\n// PlantTree allows a user to plant their B-Tree in the DAO forest.\n// It mints an NFT to the user and registers their tree in the DAO.\n// Returns an error if the tree is already planted, empty, or if NFT minting fails.\nfunc PlantTree(userBTree *btree.BTree) error {\n\treturn plantImpl(userBTree, \"\")\n}\n\n// PlantSeed allows a user to register as a seed in the DAO with a message.\n// It mints an NFT to the user and registers them as a seed member.\n// Returns an error if the message is empty or if NFT minting fails.\nfunc PlantSeed(message string) error {\n\treturn plantImpl(nil, message)\n}\n\n// plantImpl is the internal implementation that handles both tree planting and seed registration.\n// For tree planting (userBTree != nil), it verifies the tree isn't already planted and isn't empty.\n// For seed planting (userBTree == nil), it verifies the seed message isn't empty.\n// In both cases, it mints an NFT to the user and adds their registration details to the members tree.\n// Returns an error if any validation fails or if NFT minting fails.\nfunc plantImpl(userBTree *btree.BTree, seedMessage string) error {\n\t// Get the caller's address\n\tuserAddress := std.GetOrigCaller()\n\n\tvar nftID string\n\tvar regDetails *RegistrationDetails\n\n\tif userBTree != nil {\n\t\t// Handle tree planting\n\t\tvar treeExists bool\n\t\tmembers.Ascend(func(record btree.Record) bool {\n\t\t\tregDetails := record.(*RegistrationDetails)\n\t\t\tif regDetails.UserBTree == userBTree {\n\t\t\t\ttreeExists = true\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t\tif treeExists {\n\t\t\treturn errors.New(\"tree is already planted in the forest\")\n\t\t}\n\n\t\tif userBTree.Len() == 0 {\n\t\t\treturn errors.New(\"cannot plant an empty tree\")\n\t\t}\n\n\t\tnftID = ufmt.Sprintf(\"%d\", tokenID)\n\t\tregDetails = \u0026RegistrationDetails{\n\t\t\tAddress: userAddress,\n\t\t\tRegTime: time.Now(),\n\t\t\tUserBTree: userBTree,\n\t\t\tNFTID: nftID,\n\t\t}\n\t} else {\n\t\t// Handle seed planting\n\t\tif seedMessage == \"\" {\n\t\t\treturn errors.New(\"seed message cannot be empty\")\n\t\t}\n\t\tnftID = \"seed_\" + ufmt.Sprintf(\"%d\", tokenID)\n\t\tregDetails = \u0026RegistrationDetails{\n\t\t\tAddress: userAddress,\n\t\t\tRegTime: time.Now(),\n\t\t\tUserBTree: nil,\n\t\t\tNFTID: nftID,\n\t\t}\n\t}\n\n\t// Mint an NFT to the user\n\terr := dao.Mint(userAddress, grc721.TokenID(nftID))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tmembers.Insert(regDetails)\n\ttokenID++\n\treturn nil\n}\n\n// Render generates a Markdown representation of the DAO members.\n// It displays:\n// - Total number of NFTs minted\n// - Total number of members\n// - Size of the biggest planted tree\n// - The first 3 members (OGs)\n// - The latest 10 members\n// Each member entry includes their address and owned NFTs (🌳 for trees, 🌱 for seeds).\n// The path parameter is currently unused.\n// Returns a formatted Markdown string.\nfunc Render(path string) string {\n\tvar latestMembers []string\n\tvar ogMembers []string\n\n\t// Get total size and first member\n\ttotalSize := members.Len()\n\tbiggestTree := 0\n\tif maxMember := members.Max(); maxMember != nil {\n\t\tif userBTree := maxMember.(*RegistrationDetails).UserBTree; userBTree != nil {\n\t\t\tbiggestTree = userBTree.Len()\n\t\t}\n\t}\n\n\t// Collect the latest 10 members\n\tmembers.Descend(func(record btree.Record) bool {\n\t\tif len(latestMembers) \u003c 10 {\n\t\t\tregDetails := record.(*RegistrationDetails)\n\t\t\taddr := regDetails.Address\n\t\t\tnftList := \"\"\n\t\t\tbalance, err := dao.BalanceOf(addr)\n\t\t\tif err == nil \u0026\u0026 balance \u003e 0 {\n\t\t\t\tnftList = \" (NFTs: \"\n\t\t\t\tfor i := uint64(0); i \u003c balance; i++ {\n\t\t\t\t\tif i \u003e 0 {\n\t\t\t\t\t\tnftList += \", \"\n\t\t\t\t\t}\n\t\t\t\t\tif regDetails.UserBTree == nil {\n\t\t\t\t\t\tnftList += \"🌱#\" + regDetails.NFTID\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnftList += \"🌳#\" + regDetails.NFTID\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnftList += \")\"\n\t\t\t}\n\t\t\tlatestMembers = append(latestMembers, string(addr)+nftList)\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t})\n\n\t// Collect the first 3 members (OGs)\n\tmembers.Ascend(func(record btree.Record) bool {\n\t\tif len(ogMembers) \u003c 3 {\n\t\t\tregDetails := record.(*RegistrationDetails)\n\t\t\taddr := regDetails.Address\n\t\t\tnftList := \"\"\n\t\t\tbalance, err := dao.BalanceOf(addr)\n\t\t\tif err == nil \u0026\u0026 balance \u003e 0 {\n\t\t\t\tnftList = \" (NFTs: \"\n\t\t\t\tfor i := uint64(0); i \u003c balance; i++ {\n\t\t\t\t\tif i \u003e 0 {\n\t\t\t\t\t\tnftList += \", \"\n\t\t\t\t\t}\n\t\t\t\t\tif regDetails.UserBTree == nil {\n\t\t\t\t\t\tnftList += \"🌱#\" + regDetails.NFTID\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnftList += \"🌳#\" + regDetails.NFTID\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnftList += \")\"\n\t\t\t}\n\t\t\togMembers = append(ogMembers, string(addr)+nftList)\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t})\n\n\tvar sb strings.Builder\n\n\tsb.WriteString(md.H1(\"B-Tree DAO Members\"))\n\tsb.WriteString(md.H2(\"Total NFTs Minted\"))\n\tsb.WriteString(ufmt.Sprintf(\"Total NFTs minted: %d\\n\\n\", dao.TokenCount()))\n\tsb.WriteString(md.H2(\"Member Stats\"))\n\tsb.WriteString(ufmt.Sprintf(\"Total members: %d\\n\", totalSize))\n\tif biggestTree \u003e 0 {\n\t\tsb.WriteString(ufmt.Sprintf(\"Biggest tree size: %d\\n\", biggestTree))\n\t}\n\tsb.WriteString(md.H2(\"OG Members\"))\n\tsb.WriteString(md.BulletList(ogMembers))\n\tsb.WriteString(md.H2(\"Latest Members\"))\n\tsb.WriteString(md.BulletList(latestMembers))\n\n\treturn sb.String()\n}\n"},{"name":"btree_dao_test.gno","body":"package btree_dao\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/btree\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc setupTest() {\n\tstd.TestSetOrigCaller(std.Address(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\"))\n\tmembers = btree.New()\n}\n\ntype TestElement struct {\n\tvalue int\n}\n\nfunc (te *TestElement) Less(than btree.Record) bool {\n\treturn te.value \u003c than.(*TestElement).value\n}\n\nfunc TestPlantTree(t *testing.T) {\n\tsetupTest()\n\n\ttree := btree.New()\n\telements := []int{30, 10, 50, 20, 40}\n\tfor _, val := range elements {\n\t\ttree.Insert(\u0026TestElement{value: val})\n\t}\n\n\terr := PlantTree(tree)\n\turequire.NoError(t, err)\n\n\tfound := false\n\tmembers.Ascend(func(record btree.Record) bool {\n\t\tregDetails := record.(*RegistrationDetails)\n\t\tif regDetails.UserBTree == tree {\n\t\t\tfound = true\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\tuassert.True(t, found)\n\n\terr = PlantTree(tree)\n\tuassert.Error(t, err)\n\n\temptyTree := btree.New()\n\terr = PlantTree(emptyTree)\n\tuassert.Error(t, err)\n}\n\nfunc TestPlantSeed(t *testing.T) {\n\tsetupTest()\n\n\terr := PlantSeed(\"Hello DAO!\")\n\turequire.NoError(t, err)\n\n\tfound := false\n\tmembers.Ascend(func(record btree.Record) bool {\n\t\tregDetails := record.(*RegistrationDetails)\n\t\tif regDetails.UserBTree == nil {\n\t\t\tfound = true\n\t\t\tuassert.NotEmpty(t, regDetails.NFTID)\n\t\t\tuassert.True(t, strings.Contains(regDetails.NFTID, \"seed_\"))\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\tuassert.True(t, found)\n\n\terr = PlantSeed(\"\")\n\tuassert.Error(t, err)\n}\n\nfunc TestRegistrationDetailsOrdering(t *testing.T) {\n\tsetupTest()\n\n\trd1 := \u0026RegistrationDetails{\n\t\tAddress: std.Address(\"test1\"),\n\t\tRegTime: time.Now(),\n\t\tNFTID: \"0\",\n\t}\n\trd2 := \u0026RegistrationDetails{\n\t\tAddress: std.Address(\"test2\"),\n\t\tRegTime: time.Now().Add(time.Hour),\n\t\tNFTID: \"1\",\n\t}\n\n\tuassert.True(t, rd1.Less(rd2))\n\tuassert.False(t, rd2.Less(rd1))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P6hRE+PGeama4YWUS1hLCc0Guu1fu6McEEdTohk3RPahx7UCTN/w7iTbXmUGL+SnoRe+Nit8iYOmU3XWdmA6Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"buttons","path":"gno.land/r/docs/buttons","files":[{"name":"buttons.gno","body":"package buttons\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nvar (\n\tmotd = \"The Initial Message\\n\\n\"\n\tlastCaller std.Address\n)\n\nfunc UpdateMOTD(newmotd string) {\n\tmotd = newmotd\n\tlastCaller = std.PrevRealm().Addr()\n}\n\nfunc Render(path string) string {\n\tif path == \"motd\" {\n\t\tout := \"# Message of the Day:\\n\\n\"\n\t\tout += \"---\\n\\n\"\n\t\tout += \"# \" + motd + \"\\n\\n\"\n\t\tout += \"---\\n\\n\"\n\t\tlink := txlink.Call(\"UpdateMOTD\", \"newmotd\", \"Message!\") // \"/r/docs/buttons$help\u0026func=UpdateMOTD\u0026newmotd=Message!\"\n\t\tout += ufmt.Sprintf(\"Click **[here](%s)** to update the Message of The Day!\\n\\n\", link)\n\t\tout += \"[Go back to home page](/r/docs/buttons)\\n\\n\"\n\t\tout += \"Last updated by \" + lastCaller.String()\n\n\t\treturn out\n\t}\n\n\tout := `# Buttons\n\nUsers can create simple hyperlink buttons to view specific realm pages and\ndo specific realm actions, such as calling a specific function with some arguments.\n\nThe foundation for this functionality are markdown links; for example, you can\nclick...\n` + \"\\n## [here](/r/docs/buttons:motd)\\n\" + `...to view this realm's message of the day.`\n\n\treturn out\n}\n"},{"name":"buttons_test.gno","body":"package buttons\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderMotdLink(t *testing.T) {\n\tres := Render(\"motd\")\n\tconst wantLink = \"/r/docs/buttons$help\u0026func=UpdateMOTD\u0026newmotd=Message!\"\n\tif !strings.Contains(res, wantLink) {\n\t\tt.Fatalf(\"%s\\ndoes not contain correct help page link: %s\", res, wantLink)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wAF5LhIoZGnYRqGa/mLQeYr9+R+KgyYcQ7ZjWCiCxEqmdNrZGDDBM8mEQBN2TdpgYyYVcz4/03nfI5VYFPN1BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"cford32","path":"gno.land/p/demo/cford32","files":[{"name":"LICENSE","body":"Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# cford32\n\n```\npackage cford32 // import \"gno.land/p/demo/cford32\"\n\nPackage cford32 implements a base32-like encoding/decoding package, with the\nencoding scheme specified by Douglas Crockford.\n\nFrom the website, the requirements of said encoding scheme are to:\n\n - Be human readable and machine readable.\n - Be compact. Humans have difficulty in manipulating long strings of arbitrary\n symbols.\n - Be error resistant. Entering the symbols must not require keyboarding\n gymnastics.\n - Be pronounceable. Humans should be able to accurately transmit the symbols\n to other humans using a telephone.\n\nThis is slightly different from a simple difference in encoding table from\nthe Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\nparsed as 1, and o O is parsed as 0.\n\nThis package additionally provides ways to encode uint64's efficiently, as well\nas efficient encoding to a lowercase variation of the encoding. The encodings\nnever use paddings.\n\n# Uint64 Encoding\n\nAside from lower/uppercase encoding, there is a compact encoding, allowing to\nencode all values in [0,2^34), and the full encoding, allowing all values in\n[0,2^64). The compact encoding uses 7 characters, and the full encoding uses 13\ncharacters. Both are parsed unambiguously by the Uint64 decoder.\n\nThe compact encodings have the first character between ['0','f'], while the\nfull encoding's first character ranges between ['g','z']. Practically, in your\nusage of the package, you should consider which one to use and stick with it,\nwhile considering that the compact encoding, once it reaches 2^34, automatically\nswitches to the full encoding. The properties of the generated strings are still\nmaintained: for instance, any two encoded uint64s x,y consistently generated\nwith the compact encoding, if the numeric value is x \u003c y, will also be x \u003c y in\nlexical ordering. However, values [0,2^34) have a \"double encoding\", which if\nmixed together lose the lexical ordering property.\n\nThe Uint64 encoding is most useful for generating string versions of Uint64 IDs.\nPractically, it allows you to retain sleek and compact IDs for your application\nfor the first 2^34 (\u003e17 billion) entities, while seamlessly rolling over to the\nfull encoding should you exceed that. You are encouraged to use it unless you\nhave a requirement or preferences for IDs consistently being always the same\nsize.\n\nTo use the cford32 encoding for IDs, you may want to consider using package\ngno.land/p/demo/seqid.\n\n[specified by Douglas Crockford]: https://www.crockford.com/base32.html\n\nfunc AppendCompact(id uint64, b []byte) []byte\nfunc AppendDecode(dst, src []byte) ([]byte, error)\nfunc AppendEncode(dst, src []byte) []byte\nfunc AppendEncodeLower(dst, src []byte) []byte\nfunc Decode(dst, src []byte) (n int, err error)\nfunc DecodeString(s string) ([]byte, error)\nfunc DecodedLen(n int) int\nfunc Encode(dst, src []byte)\nfunc EncodeLower(dst, src []byte)\nfunc EncodeToString(src []byte) string\nfunc EncodeToStringLower(src []byte) string\nfunc EncodedLen(n int) int\nfunc NewDecoder(r io.Reader) io.Reader\nfunc NewEncoder(w io.Writer) io.WriteCloser\nfunc NewEncoderLower(w io.Writer) io.WriteCloser\nfunc PutCompact(id uint64) []byte\nfunc PutUint64(id uint64) [13]byte\nfunc PutUint64Lower(id uint64) [13]byte\nfunc Uint64(b []byte) (uint64, error)\ntype CorruptInputError int64\n```\n"},{"name":"cford32.gno","body":"// Modified from the Go Source code for encoding/base32.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package cford32 implements a base32-like encoding/decoding package, with the\n// encoding scheme [specified by Douglas Crockford].\n//\n// From the website, the requirements of said encoding scheme are to:\n//\n// - Be human readable and machine readable.\n// - Be compact. Humans have difficulty in manipulating long strings of arbitrary symbols.\n// - Be error resistant. Entering the symbols must not require keyboarding gymnastics.\n// - Be pronounceable. Humans should be able to accurately transmit the symbols to other humans using a telephone.\n//\n// This is slightly different from a simple difference in encoding table from\n// the Go's stdlib `encoding/base32`, as when decoding the characters i I l L are\n// parsed as 1, and o O is parsed as 0.\n//\n// This package additionally provides ways to encode uint64's efficiently,\n// as well as efficient encoding to a lowercase variation of the encoding.\n// The encodings never use paddings.\n//\n// # Uint64 Encoding\n//\n// Aside from lower/uppercase encoding, there is a compact encoding, allowing\n// to encode all values in [0,2^34), and the full encoding, allowing all\n// values in [0,2^64). The compact encoding uses 7 characters, and the full\n// encoding uses 13 characters. Both are parsed unambiguously by the Uint64\n// decoder.\n//\n// The compact encodings have the first character between ['0','f'], while the\n// full encoding's first character ranges between ['g','z']. Practically, in\n// your usage of the package, you should consider which one to use and stick\n// with it, while considering that the compact encoding, once it reaches 2^34,\n// automatically switches to the full encoding. The properties of the generated\n// strings are still maintained: for instance, any two encoded uint64s x,y\n// consistently generated with the compact encoding, if the numeric value is\n// x \u003c y, will also be x \u003c y in lexical ordering. However, values [0,2^34) have a\n// \"double encoding\", which if mixed together lose the lexical ordering property.\n//\n// The Uint64 encoding is most useful for generating string versions of Uint64\n// IDs. Practically, it allows you to retain sleek and compact IDs for your\n// application for the first 2^34 (\u003e17 billion) entities, while seamlessly\n// rolling over to the full encoding should you exceed that. You are encouraged\n// to use it unless you have a requirement or preferences for IDs consistently\n// being always the same size.\n//\n// To use the cford32 encoding for IDs, you may want to consider using package\n// [gno.land/p/demo/seqid].\n//\n// [specified by Douglas Crockford]: https://www.crockford.com/base32.html\npackage cford32\n\nimport (\n\t\"io\"\n\t\"strconv\"\n)\n\nconst (\n\tencTable = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\"\n\tencTableLower = \"0123456789abcdefghjkmnpqrstvwxyz\"\n\n\t// each line is 16 bytes\n\tdecTable = \"\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 00-0f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 10-1f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 20-2f\n\t\t\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\xff\\xff\\xff\\xff\\xff\\xff\" + // 30-3f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 40-4f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 50-5f\n\t\t\"\\xff\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x01\\x12\\x13\\x01\\x14\\x15\\x00\" + // 60-6f\n\t\t\"\\x16\\x17\\x18\\x19\\x1a\\xff\\x1b\\x1c\\x1d\\x1e\\x1f\\xff\\xff\\xff\\xff\\xff\" + // 70-7f\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" + // 80-ff (not ASCII)\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\" +\n\t\t\"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n)\n\n// CorruptInputError is returned by parsing functions when an invalid character\n// in the input is found. The integer value represents the byte index where\n// the error occurred.\n//\n// This is typically because the given character does not exist in the encoding.\ntype CorruptInputError int64\n\nfunc (e CorruptInputError) Error() string {\n\treturn \"illegal cford32 data at input byte \" + strconv.FormatInt(int64(e), 10)\n}\n\n// Uint64 parses a cford32-encoded byte slice into a uint64.\n//\n// - The parser requires all provided character to be valid cford32 characters.\n// - The parser disregards case.\n// - If the first character is '0' \u003c= c \u003c= 'f', then the passed value is assumed\n// encoded in the compact encoding, and must be 7 characters long.\n// - If the first character is 'g' \u003c= c \u003c= 'z', then the passed value is\n// assumed encoded in the full encoding, and must be 13 characters long.\n//\n// If any of these requirements fail, a CorruptInputError will be returned.\nfunc Uint64(b []byte) (uint64, error) {\n\tswitch {\n\tdefault:\n\t\treturn 0, CorruptInputError(0)\n\tcase len(b) == 7 \u0026\u0026 b[0] \u003e= '0' \u0026\u0026 b[0] \u003c= 'f':\n\t\tdecVals := [7]byte{\n\t\t\tdecTable[b[0]],\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c30 |\n\t\t\tuint64(decVals[1])\u003c\u003c25 |\n\t\t\tuint64(decVals[2])\u003c\u003c20 |\n\t\t\tuint64(decVals[3])\u003c\u003c15 |\n\t\t\tuint64(decVals[4])\u003c\u003c10 |\n\t\t\tuint64(decVals[5])\u003c\u003c5 |\n\t\t\tuint64(decVals[6]), nil\n\tcase len(b) == 13 \u0026\u0026 b[0] \u003e= 'g' \u0026\u0026 b[0] \u003c= 'z':\n\t\tdecVals := [13]byte{\n\t\t\tdecTable[b[0]] \u0026 0x0F, // disregard high bit\n\t\t\tdecTable[b[1]],\n\t\t\tdecTable[b[2]],\n\t\t\tdecTable[b[3]],\n\t\t\tdecTable[b[4]],\n\t\t\tdecTable[b[5]],\n\t\t\tdecTable[b[6]],\n\t\t\tdecTable[b[7]],\n\t\t\tdecTable[b[8]],\n\t\t\tdecTable[b[9]],\n\t\t\tdecTable[b[10]],\n\t\t\tdecTable[b[11]],\n\t\t\tdecTable[b[12]],\n\t\t}\n\t\tfor idx, v := range decVals {\n\t\t\tif v \u003e= 32 {\n\t\t\t\treturn 0, CorruptInputError(idx)\n\t\t\t}\n\t\t}\n\n\t\treturn 0 +\n\t\t\tuint64(decVals[0])\u003c\u003c60 |\n\t\t\tuint64(decVals[1])\u003c\u003c55 |\n\t\t\tuint64(decVals[2])\u003c\u003c50 |\n\t\t\tuint64(decVals[3])\u003c\u003c45 |\n\t\t\tuint64(decVals[4])\u003c\u003c40 |\n\t\t\tuint64(decVals[5])\u003c\u003c35 |\n\t\t\tuint64(decVals[6])\u003c\u003c30 |\n\t\t\tuint64(decVals[7])\u003c\u003c25 |\n\t\t\tuint64(decVals[8])\u003c\u003c20 |\n\t\t\tuint64(decVals[9])\u003c\u003c15 |\n\t\t\tuint64(decVals[10])\u003c\u003c10 |\n\t\t\tuint64(decVals[11])\u003c\u003c5 |\n\t\t\tuint64(decVals[12]), nil\n\t}\n}\n\nconst mask = 31\n\n// PutUint64 returns a cford32-encoded byte slice.\nfunc PutUint64(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTable[id\u003e\u003e60\u0026mask|0x10], // specify full encoding\n\t\tencTable[id\u003e\u003e55\u0026mask],\n\t\tencTable[id\u003e\u003e50\u0026mask],\n\t\tencTable[id\u003e\u003e45\u0026mask],\n\t\tencTable[id\u003e\u003e40\u0026mask],\n\t\tencTable[id\u003e\u003e35\u0026mask],\n\t\tencTable[id\u003e\u003e30\u0026mask],\n\t\tencTable[id\u003e\u003e25\u0026mask],\n\t\tencTable[id\u003e\u003e20\u0026mask],\n\t\tencTable[id\u003e\u003e15\u0026mask],\n\t\tencTable[id\u003e\u003e10\u0026mask],\n\t\tencTable[id\u003e\u003e5\u0026mask],\n\t\tencTable[id\u0026mask],\n\t}\n}\n\n// PutUint64Lower returns a cford32-encoded byte array, swapping uppercase\n// letters with lowercase.\n//\n// For more information on how the value is encoded, see [Uint64].\nfunc PutUint64Lower(id uint64) [13]byte {\n\treturn [13]byte{\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t}\n}\n\n// PutCompact returns a cford32-encoded byte slice, using the compact\n// representation of cford32 described in the package documentation where\n// possible (all values of id \u003c 1\u003c\u003c34). The lowercase encoding is used.\n//\n// The resulting byte slice will be 7 bytes long for all compact values,\n// and 13 bytes long for\nfunc PutCompact(id uint64) []byte {\n\treturn AppendCompact(id, nil)\n}\n\n// AppendCompact works like [PutCompact] but appends to the given byte slice\n// instead of allocating one anew.\nfunc AppendCompact(id uint64, b []byte) []byte {\n\tconst maxCompact = 1 \u003c\u003c 34\n\tif id \u003c maxCompact {\n\t\treturn append(b,\n\t\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\t\tencTableLower[id\u0026mask],\n\t\t)\n\t}\n\treturn append(b,\n\t\tencTableLower[id\u003e\u003e60\u0026mask|0x10],\n\t\tencTableLower[id\u003e\u003e55\u0026mask],\n\t\tencTableLower[id\u003e\u003e50\u0026mask],\n\t\tencTableLower[id\u003e\u003e45\u0026mask],\n\t\tencTableLower[id\u003e\u003e40\u0026mask],\n\t\tencTableLower[id\u003e\u003e35\u0026mask],\n\t\tencTableLower[id\u003e\u003e30\u0026mask],\n\t\tencTableLower[id\u003e\u003e25\u0026mask],\n\t\tencTableLower[id\u003e\u003e20\u0026mask],\n\t\tencTableLower[id\u003e\u003e15\u0026mask],\n\t\tencTableLower[id\u003e\u003e10\u0026mask],\n\t\tencTableLower[id\u003e\u003e5\u0026mask],\n\t\tencTableLower[id\u0026mask],\n\t)\n}\n\nfunc DecodedLen(n int) int {\n\treturn n/8*5 + n%8*5/8\n}\n\nfunc EncodedLen(n int) int {\n\treturn n/5*8 + (n%5*8+4)/5\n}\n\n// Encode encodes src using the encoding enc,\n// writing [EncodedLen](len(src)) bytes to dst.\n//\n// The encoding does not contain any padding, unlike Go's base32.\nfunc Encode(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTable[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTable[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTable[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTable[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTable[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTable[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTable[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTable[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTable[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTable[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTable[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTable[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTable[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTable[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTable[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// EncodeLower is like [Encode], but uses the lowercase\nfunc EncodeLower(dst, src []byte) {\n\t// Copied from encoding/base32/base32.go (go1.22)\n\tif len(src) == 0 {\n\t\treturn\n\t}\n\n\tdi, si := 0, 0\n\tn := (len(src) / 5) * 5\n\tfor si \u003c n {\n\t\t// Combining two 32 bit loads allows the same code to be used\n\t\t// for 32 and 64 bit platforms.\n\t\thi := uint32(src[si+0])\u003c\u003c24 | uint32(src[si+1])\u003c\u003c16 | uint32(src[si+2])\u003c\u003c8 | uint32(src[si+3])\n\t\tlo := hi\u003c\u003c8 | uint32(src[si+4])\n\n\t\tdst[di+0] = encTableLower[(hi\u003e\u003e27)\u00260x1F]\n\t\tdst[di+1] = encTableLower[(hi\u003e\u003e22)\u00260x1F]\n\t\tdst[di+2] = encTableLower[(hi\u003e\u003e17)\u00260x1F]\n\t\tdst[di+3] = encTableLower[(hi\u003e\u003e12)\u00260x1F]\n\t\tdst[di+4] = encTableLower[(hi\u003e\u003e7)\u00260x1F]\n\t\tdst[di+5] = encTableLower[(hi\u003e\u003e2)\u00260x1F]\n\t\tdst[di+6] = encTableLower[(lo\u003e\u003e5)\u00260x1F]\n\t\tdst[di+7] = encTableLower[(lo)\u00260x1F]\n\n\t\tsi += 5\n\t\tdi += 8\n\t}\n\n\t// Add the remaining small block\n\tremain := len(src) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Encode the remaining bytes in reverse order.\n\tval := uint32(0)\n\tswitch remain {\n\tcase 4:\n\t\tval |= uint32(src[si+3])\n\t\tdst[di+6] = encTableLower[val\u003c\u003c3\u00260x1F]\n\t\tdst[di+5] = encTableLower[val\u003e\u003e2\u00260x1F]\n\t\tfallthrough\n\tcase 3:\n\t\tval |= uint32(src[si+2]) \u003c\u003c 8\n\t\tdst[di+4] = encTableLower[val\u003e\u003e7\u00260x1F]\n\t\tfallthrough\n\tcase 2:\n\t\tval |= uint32(src[si+1]) \u003c\u003c 16\n\t\tdst[di+3] = encTableLower[val\u003e\u003e12\u00260x1F]\n\t\tdst[di+2] = encTableLower[val\u003e\u003e17\u00260x1F]\n\t\tfallthrough\n\tcase 1:\n\t\tval |= uint32(src[si+0]) \u003c\u003c 24\n\t\tdst[di+1] = encTableLower[val\u003e\u003e22\u00260x1F]\n\t\tdst[di+0] = encTableLower[val\u003e\u003e27\u00260x1F]\n\t}\n}\n\n// AppendEncode appends the cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncode(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncode(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\n// AppendEncodeLower appends the lowercase cford32 encoded src to dst\n// and returns the extended buffer.\nfunc AppendEncodeLower(dst, src []byte) []byte {\n\tn := EncodedLen(len(src))\n\tdst = grow(dst, n)\n\tEncodeLower(dst[len(dst):][:n], src)\n\treturn dst[:len(dst)+n]\n}\n\nfunc grow(s []byte, n int) []byte {\n\t// slices.Grow\n\tif n -= cap(s) - len(s); n \u003e 0 {\n\t\tnews := make([]byte, cap(s)+n)\n\t\tcopy(news[:cap(s)], s[:cap(s)])\n\t\treturn news[:len(s)]\n\t}\n\treturn s\n}\n\n// EncodeToString returns the cford32 encoding of src.\nfunc EncodeToString(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncode(buf, src)\n\treturn string(buf)\n}\n\n// EncodeToStringLower returns the cford32 lowercase encoding of src.\nfunc EncodeToStringLower(src []byte) string {\n\tbuf := make([]byte, EncodedLen(len(src)))\n\tEncodeLower(buf, src)\n\treturn string(buf)\n}\n\nfunc decode(dst, src []byte) (n int, err error) {\n\tdsti := 0\n\tolen := len(src)\n\n\tfor len(src) \u003e 0 {\n\t\t// Decode quantum using the base32 alphabet\n\t\tvar dbuf [8]byte\n\t\tdlen := 8\n\n\t\tfor j := 0; j \u003c 8; {\n\t\t\tif len(src) == 0 {\n\t\t\t\t// We have reached the end and are not expecting any padding\n\t\t\t\tdlen = j\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tin := src[0]\n\t\t\tsrc = src[1:]\n\t\t\tdbuf[j] = decTable[in]\n\t\t\tif dbuf[j] == 0xFF {\n\t\t\t\treturn n, CorruptInputError(olen - len(src) - 1)\n\t\t\t}\n\t\t\tj++\n\t\t}\n\n\t\t// Pack 8x 5-bit source blocks into 5 byte destination\n\t\t// quantum\n\t\tswitch dlen {\n\t\tcase 8:\n\t\t\tdst[dsti+4] = dbuf[6]\u003c\u003c5 | dbuf[7]\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 7:\n\t\t\tdst[dsti+3] = dbuf[4]\u003c\u003c7 | dbuf[5]\u003c\u003c2 | dbuf[6]\u003e\u003e3\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 5:\n\t\t\tdst[dsti+2] = dbuf[3]\u003c\u003c4 | dbuf[4]\u003e\u003e1\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 4:\n\t\t\tdst[dsti+1] = dbuf[1]\u003c\u003c6 | dbuf[2]\u003c\u003c1 | dbuf[3]\u003e\u003e4\n\t\t\tn++\n\t\t\tfallthrough\n\t\tcase 2:\n\t\t\tdst[dsti+0] = dbuf[0]\u003c\u003c3 | dbuf[1]\u003e\u003e2\n\t\t\tn++\n\t\t}\n\t\tdsti += 5\n\t}\n\treturn n, nil\n}\n\ntype encoder struct {\n\terr error\n\tw io.Writer\n\tenc func(dst, src []byte)\n\tbuf [5]byte // buffered data waiting to be encoded\n\tnbuf int // number of bytes in buf\n\tout [1024]byte // output buffer\n}\n\nfunc NewEncoder(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: Encode}\n}\n\nfunc NewEncoderLower(w io.Writer) io.WriteCloser {\n\treturn \u0026encoder{w: w, enc: EncodeLower}\n}\n\nfunc (e *encoder) Write(p []byte) (n int, err error) {\n\tif e.err != nil {\n\t\treturn 0, e.err\n\t}\n\n\t// Leading fringe.\n\tif e.nbuf \u003e 0 {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(p) \u0026\u0026 e.nbuf \u003c 5; i++ {\n\t\t\te.buf[e.nbuf] = p[i]\n\t\t\te.nbuf++\n\t\t}\n\t\tn += i\n\t\tp = p[i:]\n\t\tif e.nbuf \u003c 5 {\n\t\t\treturn\n\t\t}\n\t\te.enc(e.out[0:], e.buf[0:])\n\t\tif _, e.err = e.w.Write(e.out[0:8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\te.nbuf = 0\n\t}\n\n\t// Large interior chunks.\n\tfor len(p) \u003e= 5 {\n\t\tnn := len(e.out) / 8 * 5\n\t\tif nn \u003e len(p) {\n\t\t\tnn = len(p)\n\t\t\tnn -= nn % 5\n\t\t}\n\t\te.enc(e.out[0:], p[0:nn])\n\t\tif _, e.err = e.w.Write(e.out[0 : nn/5*8]); e.err != nil {\n\t\t\treturn n, e.err\n\t\t}\n\t\tn += nn\n\t\tp = p[nn:]\n\t}\n\n\t// Trailing fringe.\n\tcopy(e.buf[:], p)\n\te.nbuf = len(p)\n\tn += len(p)\n\treturn\n}\n\n// Close flushes any pending output from the encoder.\n// It is an error to call Write after calling Close.\nfunc (e *encoder) Close() error {\n\t// If there's anything left in the buffer, flush it out\n\tif e.err == nil \u0026\u0026 e.nbuf \u003e 0 {\n\t\te.enc(e.out[0:], e.buf[0:e.nbuf])\n\t\tencodedLen := EncodedLen(e.nbuf)\n\t\te.nbuf = 0\n\t\t_, e.err = e.w.Write(e.out[0:encodedLen])\n\t}\n\treturn e.err\n}\n\n// Decode decodes src using cford32. It writes at most\n// [DecodedLen](len(src)) bytes to dst and returns the number of bytes\n// written. If src contains invalid cford32 data, it will return the\n// number of bytes successfully written and [CorruptInputError].\n// Newline characters (\\r and \\n) are ignored.\nfunc Decode(dst, src []byte) (n int, err error) {\n\tbuf := make([]byte, len(src))\n\tl := stripNewlines(buf, src)\n\treturn decode(dst, buf[:l])\n}\n\n// AppendDecode appends the cford32 decoded src to dst\n// and returns the extended buffer.\n// If the input is malformed, it returns the partially decoded src and an error.\nfunc AppendDecode(dst, src []byte) ([]byte, error) {\n\tn := DecodedLen(len(src))\n\n\tdst = grow(dst, n)\n\tdstsl := dst[len(dst) : len(dst)+n]\n\tn, err := Decode(dstsl, src)\n\treturn dst[:len(dst)+n], err\n}\n\n// DecodeString returns the bytes represented by the cford32 string s.\nfunc DecodeString(s string) ([]byte, error) {\n\tbuf := []byte(s)\n\tl := stripNewlines(buf, buf)\n\tn, err := decode(buf, buf[:l])\n\treturn buf[:n], err\n}\n\n// stripNewlines removes newline characters and returns the number\n// of non-newline characters copied to dst.\nfunc stripNewlines(dst, src []byte) int {\n\toffset := 0\n\tfor _, b := range src {\n\t\tif b == '\\r' || b == '\\n' {\n\t\t\tcontinue\n\t\t}\n\t\tdst[offset] = b\n\t\toffset++\n\t}\n\treturn offset\n}\n\ntype decoder struct {\n\terr error\n\tr io.Reader\n\tbuf [1024]byte // leftover input\n\tnbuf int\n\tout []byte // leftover decoded output\n\toutbuf [1024 / 8 * 5]byte\n}\n\n// NewDecoder constructs a new base32 stream decoder.\nfunc NewDecoder(r io.Reader) io.Reader {\n\treturn \u0026decoder{r: \u0026newlineFilteringReader{r}}\n}\n\nfunc readEncodedData(r io.Reader, buf []byte) (n int, err error) {\n\tfor n \u003c 1 \u0026\u0026 err == nil {\n\t\tvar nn int\n\t\tnn, err = r.Read(buf[n:])\n\t\tn += nn\n\t}\n\treturn\n}\n\nfunc (d *decoder) Read(p []byte) (n int, err error) {\n\t// Use leftover decoded output from last read.\n\tif len(d.out) \u003e 0 {\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t\tif len(d.out) == 0 {\n\t\t\treturn n, d.err\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tif d.err != nil {\n\t\treturn 0, d.err\n\t}\n\n\t// Read nn bytes from input, bounded [8,len(d.buf)]\n\tnn := (len(p)/5 + 1) * 8\n\tif nn \u003e len(d.buf) {\n\t\tnn = len(d.buf)\n\t}\n\n\tnn, d.err = readEncodedData(d.r, d.buf[d.nbuf:nn])\n\td.nbuf += nn\n\tif d.nbuf \u003c 1 {\n\t\treturn 0, d.err\n\t}\n\n\t// Decode chunk into p, or d.out and then p if p is too small.\n\tnr := d.nbuf\n\tif d.err != io.EOF \u0026\u0026 nr%8 != 0 {\n\t\tnr -= nr % 8\n\t}\n\tnw := DecodedLen(d.nbuf)\n\n\tif nw \u003e len(p) {\n\t\tnw, err = decode(d.outbuf[0:], d.buf[0:nr])\n\t\td.out = d.outbuf[0:nw]\n\t\tn = copy(p, d.out)\n\t\td.out = d.out[n:]\n\t} else {\n\t\tn, err = decode(p, d.buf[0:nr])\n\t}\n\td.nbuf -= nr\n\tfor i := 0; i \u003c d.nbuf; i++ {\n\t\td.buf[i] = d.buf[i+nr]\n\t}\n\n\tif err != nil \u0026\u0026 (d.err == nil || d.err == io.EOF) {\n\t\td.err = err\n\t}\n\n\tif len(d.out) \u003e 0 {\n\t\t// We cannot return all the decoded bytes to the caller in this\n\t\t// invocation of Read, so we return a nil error to ensure that Read\n\t\t// will be called again. The error stored in d.err, if any, will be\n\t\t// returned with the last set of decoded bytes.\n\t\treturn n, nil\n\t}\n\n\treturn n, d.err\n}\n\ntype newlineFilteringReader struct {\n\twrapped io.Reader\n}\n\nfunc (r *newlineFilteringReader) Read(p []byte) (int, error) {\n\tn, err := r.wrapped.Read(p)\n\tfor n \u003e 0 {\n\t\ts := p[0:n]\n\t\toffset := stripNewlines(s, s)\n\t\tif err != nil || offset \u003e 0 {\n\t\t\treturn offset, err\n\t\t}\n\t\t// Previous buffer entirely whitespace, read again\n\t\tn, err = r.wrapped.Read(p)\n\t}\n\treturn n, err\n}\n"},{"name":"cford32_test.gno","body":"package cford32\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestCompactRoundtrip(t *testing.T) {\n\tbuf := make([]byte, 13)\n\tprev := make([]byte, 13)\n\tfor i := uint64(0); i \u003c (1 \u003c\u003c 12); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c34 - 1024); i \u003c (1\u003c\u003c34 + 1024); i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\t// println(string(res))\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n\tfor i := uint64(1\u003c\u003c64 - 5000); i != 0; i++ {\n\t\tres := AppendCompact(i, buf[:0])\n\t\tback, err := Uint64(res)\n\t\ttestEqual(t, \"Uint64(%q) = (%d, %v), want %v\", string(res), back, err, nil)\n\t\ttestEqual(t, \"Uint64(%q) = %d, want %v\", string(res), back, i)\n\n\t\ttestEqual(t, \"bytes.Compare(prev, res) = %d, want %d\", bytes.Compare(prev, res), -1)\n\t\tprev, buf = res, prev\n\t}\n}\n\nfunc BenchmarkCompact(b *testing.B) {\n\tbuf := make([]byte, 13)\n\tfor i := 0; i \u003c b.N; i++ {\n\t\t_ = AppendCompact(uint64(i), buf[:0])\n\t}\n}\n\ntype testpair struct {\n\tdecoded, encoded string\n}\n\nvar pairs = []testpair{\n\t{\"\", \"\"},\n\t{\"f\", \"CR\"},\n\t{\"fo\", \"CSQG\"},\n\t{\"foo\", \"CSQPY\"},\n\t{\"foob\", \"CSQPYRG\"},\n\t{\"fooba\", \"CSQPYRK1\"},\n\t{\"foobar\", \"CSQPYRK1E8\"},\n\n\t{\"sure.\", \"EDTQ4S9E\"},\n\t{\"sure\", \"EDTQ4S8\"},\n\t{\"sur\", \"EDTQ4\"},\n\t{\"su\", \"EDTG\"},\n\t{\"leasure.\", \"DHJP2WVNE9JJW\"},\n\t{\"easure.\", \"CNGQ6XBJCMQ0\"},\n\t{\"asure.\", \"C5SQAWK55R\"},\n}\n\nvar bigtest = testpair{\n\t\"Twas brillig, and the slithy toves\",\n\t\"AHVP2WS0C9S6JV3CD5KJR831DSJ20X38CMG76V39EHM7J83MDXV6AWR\",\n}\n\nfunc testEqual(t *testing.T, msg string, args ...interface{}) bool {\n\tt.Helper()\n\tif args[len(args)-2] != args[len(args)-1] {\n\t\tt.Errorf(msg, args...)\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc TestEncode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tgot := EncodeToString([]byte(p.decoded))\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, got, p.encoded)\n\t\tdst := AppendEncode([]byte(\"lead\"), []byte(p.decoded))\n\t\ttestEqual(t, `AppendEncode(\"lead\", %q) = %q, want %q`, p.decoded, string(dst), \"lead\"+p.encoded)\n\t}\n}\n\nfunc TestEncoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tencoder.Write([]byte(p.decoded))\n\t\tencoder.Close()\n\t\ttestEqual(t, \"Encode(%q) = %q, want %q\", p.decoded, bb.String(), p.encoded)\n\t}\n}\n\nfunc TestEncoderBuffering(t *testing.T) {\n\tinput := []byte(bigtest.decoded)\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tbb := \u0026strings.Builder{}\n\t\tencoder := NewEncoder(bb)\n\t\tfor pos := 0; pos \u003c len(input); pos += bs {\n\t\t\tend := pos + bs\n\t\t\tif end \u003e len(input) {\n\t\t\t\tend = len(input)\n\t\t\t}\n\t\t\tn, err := encoder.Write(input[pos:end])\n\t\t\ttestEqual(t, \"Write(%q) gave error %v, want %v\", input[pos:end], err, error(nil))\n\t\t\ttestEqual(t, \"Write(%q) gave length %v, want %v\", input[pos:end], n, end-pos)\n\t\t}\n\t\terr := encoder.Close()\n\t\ttestEqual(t, \"Close gave error %v, want %v\", err, error(nil))\n\t\ttestEqual(t, \"Encoding/%d of %q = %q, want %q\", bs, bigtest.decoded, bb.String(), bigtest.encoded)\n\t}\n}\n\nfunc TestDecode(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decode(dbuf, []byte(p.encoded))\n\t\ttestEqual(t, \"Decode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"Decode(%q) = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decode(%q) = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\n\t\tdbuf, err = DecodeString(p.encoded)\n\t\ttestEqual(t, \"DecodeString(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, \"DecodeString(%q) = %q, want %q\", p.encoded, string(dbuf), p.decoded)\n\n\t\t// XXX: https://github.com/gnolang/gno/issues/1570\n\t\tdst, err := AppendDecode(append([]byte(nil), []byte(\"lead\")...), []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"lead\", %q) = %q, want %q`, p.encoded, string(dst), \"lead\"+p.decoded)\n\n\t\tdst2, err := AppendDecode(dst[:0:len(p.decoded)], []byte(p.encoded))\n\t\ttestEqual(t, \"AppendDecode(%q) = error %v, want %v\", p.encoded, err, error(nil))\n\t\ttestEqual(t, `AppendDecode(\"\", %q) = %q, want %q`, p.encoded, string(dst2), p.decoded)\n\t\t// XXX: https://github.com/gnolang/gno/issues/1569\n\t\t// old used \u0026dst2[0] != \u0026dst[0] as a check.\n\t\tif len(dst) \u003e 0 \u0026\u0026 len(dst2) \u003e 0 \u0026\u0026 cap(dst2) != len(p.decoded) {\n\t\t\tt.Errorf(\"unexpected capacity growth: got %d, want %d\", cap(dst2), len(p.decoded))\n\t\t}\n\t}\n}\n\n// A minimal variation on strings.Reader.\n// Here, we return a io.EOF immediately on Read if the read has reached the end\n// of the reader. It's used to simplify TestDecoder.\ntype stringReader struct {\n\ts string\n\ti int64\n}\n\nfunc (r *stringReader) Read(b []byte) (n int, err error) {\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(b, r.s[r.i:])\n\tr.i += int64(n)\n\tif r.i \u003e= int64(len(r.s)) {\n\t\treturn n, io.EOF\n\t}\n\treturn\n}\n\nfunc TestDecoder(t *testing.T) {\n\tfor _, p := range pairs {\n\t\tdecoder := NewDecoder(\u0026stringReader{p.encoded, 0})\n\t\tdbuf := make([]byte, DecodedLen(len(p.encoded)))\n\t\tcount, err := decoder.Read(dbuf)\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Fatal(\"Read failed\", err)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = length %v, want %v\", p.encoded, count, len(p.decoded))\n\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", p.encoded, string(dbuf[0:count]), p.decoded)\n\t\tif err != io.EOF {\n\t\t\t_, err = decoder.Read(dbuf)\n\t\t}\n\t\ttestEqual(t, \"Read from %q = %v, want %v\", p.encoded, err, io.EOF)\n\t}\n}\n\ntype badReader struct {\n\tdata []byte\n\terrs []error\n\tcalled int\n\tlimit int\n}\n\n// Populates p with data, returns a count of the bytes written and an\n// error. The error returned is taken from badReader.errs, with each\n// invocation of Read returning the next error in this slice, or io.EOF,\n// if all errors from the slice have already been returned. The\n// number of bytes returned is determined by the size of the input buffer\n// the test passes to decoder.Read and will be a multiple of 8, unless\n// badReader.limit is non zero.\nfunc (b *badReader) Read(p []byte) (int, error) {\n\tlim := len(p)\n\tif b.limit != 0 \u0026\u0026 b.limit \u003c lim {\n\t\tlim = b.limit\n\t}\n\tif len(b.data) \u003c lim {\n\t\tlim = len(b.data)\n\t}\n\tfor i := range p[:lim] {\n\t\tp[i] = b.data[i]\n\t}\n\tb.data = b.data[lim:]\n\terr := io.EOF\n\tif b.called \u003c len(b.errs) {\n\t\terr = b.errs[b.called]\n\t}\n\tb.called++\n\treturn lim, err\n}\n\n// TestIssue20044 tests that decoder.Read behaves correctly when the caller\n// supplied reader returns an error.\nfunc TestIssue20044(t *testing.T) {\n\tbadErr := errors.New(\"bad reader error\")\n\ttestCases := []struct {\n\t\tr badReader\n\t\tres string\n\t\terr error\n\t\tdbuflen int\n\t}{\n\t\t// Check valid input data accompanied by an error is processed and the error is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"d1jprv3fexqq4v34\"), errs: []error{badErr}},\n\t\t\tres: \"helloworld\", err: badErr,\n\t\t},\n\t\t// Check a read error accompanied by input data consisting of newlines only is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\n\"), errs: []error{badErr, nil}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader will be called twice. The first time it will return 8 newline characters. The\n\t\t// second time valid base32 encoded data and an error. The data should be decoded\n\t\t// correctly and the error should be propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"\\n\\n\\n\\n\\n\\n\\n\\nd1jprv3fexqq4v34\"), errs: []error{nil, badErr}},\n\t\t\tres: \"helloworld\", err: badErr, dbuflen: 8,\n\t\t},\n\t\t// Reader returns invalid input data (too short) and an error. Verify the reader\n\t\t// error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns invalid input data (too short) but no error. Verify io.ErrUnexpectedEOF\n\t\t// is returned.\n\t\t// NOTE(thehowl): I don't think this should applyto us?\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"c\"), errs: []error{nil}},\n\t\t\tres: \"\", err: io.ErrUnexpectedEOF,\n\t\t},*/\n\t\t// Reader returns invalid input data and an error. Verify the reader and not the\n\t\t// decoder error is returned.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"cu\"), errs: []error{badErr}},\n\t\t\tres: \"\", err: badErr,\n\t\t},\n\t\t// Reader returns valid data and io.EOF. Check data is decoded and io.EOF is propagated.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"csqpyrk1\"), errs: []error{io.EOF}},\n\t\t\tres: \"fooba\", err: io.EOF,\n\t\t},\n\t\t// Check errors are properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but an error on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{nil, badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 1,\n\t\t},\n\t\t// Check io.EOF is properly reported when decoder.Read is called multiple times.\n\t\t// decoder.Read will be called 8 times, badReader.Read will be called twice, returning\n\t\t// valid data both times but io.EOF on the second call.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 1,\n\t\t},\n\t\t// The following two test cases check that errors are propagated correctly when more than\n\t\t// 8 bytes are read at a time.\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{io.EOF}},\n\t\t\tres: \"leasure.\", err: io.EOF, dbuflen: 11,\n\t\t},\n\t\t{\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjwc9g\"), errs: []error{badErr}},\n\t\t\tres: \"leasure.10\", err: badErr, dbuflen: 11,\n\t\t},\n\t\t// Check that errors are correctly propagated when the reader returns valid bytes in\n\t\t// groups that are not divisible by 8. The first read will return 11 bytes and no\n\t\t// error. The second will return 7 and an error. The data should be decoded correctly\n\t\t// and the error should be propagated.\n\t\t// NOTE(thehowl): again, this is on the assumption that this is padded, and it's not.\n\t\t/* {\n\t\t\tr: badReader{data: []byte(\"dhjp2wvne9jjw\"), errs: []error{nil, badErr}, limit: 11},\n\t\t\tres: \"leasure.\", err: badErr,\n\t\t}, */\n\t}\n\n\tfor idx, tc := range testCases {\n\t\tt.Run(fmt.Sprintf(\"%d-%s\", idx, string(tc.res)), func(t *testing.T) {\n\t\t\tinput := tc.r.data\n\t\t\tdecoder := NewDecoder(\u0026tc.r)\n\t\t\tvar dbuflen int\n\t\t\tif tc.dbuflen \u003e 0 {\n\t\t\t\tdbuflen = tc.dbuflen\n\t\t\t} else {\n\t\t\t\tdbuflen = DecodedLen(len(input))\n\t\t\t}\n\t\t\tdbuf := make([]byte, dbuflen)\n\t\t\tvar err error\n\t\t\tvar res []byte\n\t\t\tfor err == nil {\n\t\t\t\tvar n int\n\t\t\t\tn, err = decoder.Read(dbuf)\n\t\t\t\tif n \u003e 0 {\n\t\t\t\t\tres = append(res, dbuf[:n]...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttestEqual(t, \"Decoding of %q = %q, want %q\", string(input), string(res), tc.res)\n\t\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", string(input), err, tc.err)\n\t\t})\n\t}\n}\n\n// TestDecoderError verifies decode errors are propagated when there are no read\n// errors.\nfunc TestDecoderError(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"ucsqpyrk1u\"\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tbr := badReader{data: []byte(input), errs: []error{readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\tif _, ok := err.(CorruptInputError); !ok {\n\t\t\tt.Errorf(\"Corrupt input error expected. Found %T\", err)\n\t\t}\n\t}\n}\n\n// TestReaderEOF ensures decoder.Read behaves correctly when input data is\n// exhausted.\nfunc TestReaderEOF(t *testing.T) {\n\tfor _, readErr := range []error{io.EOF, nil} {\n\t\tinput := \"MZXW6YTB\"\n\t\tbr := badReader{data: []byte(input), errs: []error{nil, readErr}}\n\t\tdecoder := NewDecoder(\u0026br)\n\t\tdbuf := make([]byte, DecodedLen(len(input)))\n\t\tn, err := decoder.Read(dbuf)\n\t\ttestEqual(t, \"Decoding of %q err = %v, expected %v\", input, err, error(nil))\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t\tn, err = decoder.Read(dbuf)\n\t\ttestEqual(t, \"Read after EOF, n = %d, expected %d\", n, 0)\n\t\ttestEqual(t, \"Read after EOF, err = %v, expected %v\", err, io.EOF)\n\t}\n}\n\nfunc TestDecoderBuffering(t *testing.T) {\n\tfor bs := 1; bs \u003c= 12; bs++ {\n\t\tdecoder := NewDecoder(strings.NewReader(bigtest.encoded))\n\t\tbuf := make([]byte, len(bigtest.decoded)+12)\n\t\tvar total int\n\t\tvar n int\n\t\tvar err error\n\t\tfor total = 0; total \u003c len(bigtest.decoded) \u0026\u0026 err == nil; {\n\t\t\tn, err = decoder.Read(buf[total : total+bs])\n\t\t\ttotal += n\n\t\t}\n\t\tif err != nil \u0026\u0026 err != io.EOF {\n\t\t\tt.Errorf(\"Read from %q at pos %d = %d, unexpected error %v\", bigtest.encoded, total, n, err)\n\t\t}\n\t\ttestEqual(t, \"Decoding/%d of %q = %q, want %q\", bs, bigtest.encoded, string(buf[0:total]), bigtest.decoded)\n\t}\n}\n\nfunc TestDecodeCorrupt(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput string\n\t\toffset int // -1 means no corruption.\n\t}{\n\t\t{\"\", -1},\n\t\t{\"iIoOlL\", -1},\n\t\t{\"!!!!\", 0},\n\t\t{\"uxp10\", 0},\n\t\t{\"x===\", 1},\n\t\t{\"AA=A====\", 2},\n\t\t{\"AAA=AAAA\", 3},\n\t\t// Much fewer cases compared to Go as there are much fewer cases where input\n\t\t// can be \"corrupted\".\n\t}\n\tfor _, tc := range testCases {\n\t\tdbuf := make([]byte, DecodedLen(len(tc.input)))\n\t\t_, err := Decode(dbuf, []byte(tc.input))\n\t\tif tc.offset == -1 {\n\t\t\tif err != nil {\n\t\t\t\tt.Error(\"Decoder wrongly detected corruption in\", tc.input)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch err := err.(type) {\n\t\tcase CorruptInputError:\n\t\t\ttestEqual(t, \"Corruption in %q at offset %v, want %v\", tc.input, int(err), tc.offset)\n\t\tdefault:\n\t\t\tt.Error(\"Decoder failed to detect corruption in\", tc)\n\t\t}\n\t}\n}\n\nfunc TestBig(t *testing.T) {\n\tn := 3*1000 + 1\n\traw := make([]byte, n)\n\tconst alpha = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\tfor i := 0; i \u003c n; i++ {\n\t\traw[i] = alpha[i%len(alpha)]\n\t}\n\tencoded := new(bytes.Buffer)\n\tw := NewEncoder(encoded)\n\tnn, err := w.Write(raw)\n\tif nn != n || err != nil {\n\t\tt.Fatalf(\"Encoder.Write(raw) = %d, %v want %d, nil\", nn, err, n)\n\t}\n\terr = w.Close()\n\tif err != nil {\n\t\tt.Fatalf(\"Encoder.Close() = %v want nil\", err)\n\t}\n\tdecoded, err := io.ReadAll(NewDecoder(encoded))\n\tif err != nil {\n\t\tt.Fatalf(\"io.ReadAll(NewDecoder(...)): %v\", err)\n\t}\n\n\tif !bytes.Equal(raw, decoded) {\n\t\tvar i int\n\t\tfor i = 0; i \u003c len(decoded) \u0026\u0026 i \u003c len(raw); i++ {\n\t\t\tif decoded[i] != raw[i] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tt.Errorf(\"Decode(Encode(%d-byte string)) failed at offset %d\", n, i)\n\t}\n}\n\nfunc testStringEncoding(t *testing.T, expected string, examples []string) {\n\tfor _, e := range examples {\n\t\tbuf, err := DecodeString(e)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Decode(%q) failed: %v\", e, err)\n\t\t\tcontinue\n\t\t}\n\t\tif s := string(buf); s != expected {\n\t\t\tt.Errorf(\"Decode(%q) = %q, want %q\", e, s, expected)\n\t\t}\n\t}\n}\n\nfunc TestNewLineCharacters(t *testing.T) {\n\t// Each of these should decode to the string \"sure\", without errors.\n\texamples := []string{\n\t\t\"EDTQ4S8\",\n\t\t\"EDTQ4S8\\r\",\n\t\t\"EDTQ4S8\\n\",\n\t\t\"EDTQ4S8\\r\\n\",\n\t\t\"EDTQ4S\\r\\n8\",\n\t\t\"EDT\\rQ4S\\n8\",\n\t\t\"edt\\nq4s\\r8\",\n\t\t\"edt\\nq4s8\",\n\t\t\"EDTQ4S\\n8\",\n\t}\n\ttestStringEncoding(t, \"sure\", examples)\n}\n\nfunc BenchmarkEncode(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tbuf := make([]byte, EncodedLen(len(data)))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncode(buf, data)\n\t}\n}\n\nfunc BenchmarkEncodeToString(b *testing.B) {\n\tdata := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tEncodeToString(data)\n\t}\n}\n\nfunc BenchmarkDecode(b *testing.B) {\n\tdata := make([]byte, EncodedLen(8192))\n\tEncode(data, make([]byte, 8192))\n\tbuf := make([]byte, 8192)\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecode(buf, data)\n\t}\n}\n\nfunc BenchmarkDecodeString(b *testing.B) {\n\tdata := EncodeToString(make([]byte, 8192))\n\tb.SetBytes(int64(len(data)))\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tDecodeString(data)\n\t}\n}\n\n/* TODO: rewrite without using goroutines\nfunc TestBufferedDecodingSameError(t *testing.T) {\n\ttestcases := []struct {\n\t\tprefix string\n\t\tchunkCombinations [][]string\n\t\texpected error\n\t}{\n\t\t// Normal case, this is valid input\n\t\t{\"helloworld\", [][]string{\n\t\t\t{\"D1JP\", \"RV3F\", \"EXQQ\", \"4V34\"},\n\t\t\t{\"D1JPRV3FEXQQ4V34\"},\n\t\t\t{\"D1J\", \"PRV\", \"3FE\", \"XQQ\", \"4V3\", \"4\"},\n\t\t\t{\"D1JPRV3FEXQQ4V\", \"34\"},\n\t\t}, nil},\n\n\t\t// Normal case, this is valid input\n\t\t{\"fooba\", [][]string{\n\t\t\t{\"CSQPYRK1\"},\n\t\t\t{\"CSQPYRK\", \"1\"},\n\t\t\t{\"CSQPYR\", \"K1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQPY\", \"RK\", \"1\"},\n\t\t\t{\"CSQPY\", \"RK1\"},\n\t\t\t{\"CSQP\", \"YR\", \"K1\"},\n\t\t}, nil},\n\n\t\t// NOTE: many test cases have been removed as we don't return ErrUnexpectedEOF.\n\t}\n\n\tfor _, testcase := range testcases {\n\t\tfor _, chunks := range testcase.chunkCombinations {\n\t\t\tpr, pw := io.Pipe()\n\n\t\t\t// Write the encoded chunks into the pipe\n\t\t\tgo func() {\n\t\t\t\tfor _, chunk := range chunks {\n\t\t\t\t\tpw.Write([]byte(chunk))\n\t\t\t\t}\n\t\t\t\tpw.Close()\n\t\t\t}()\n\n\t\t\tdecoder := NewDecoder(pr)\n\t\t\tback, err := io.ReadAll(decoder)\n\n\t\t\tif err != testcase.expected {\n\t\t\t\tt.Errorf(\"Expected %v, got %v; case %s %+v\", testcase.expected, err, testcase.prefix, chunks)\n\t\t\t}\n\t\t\tif testcase.expected == nil {\n\t\t\t\ttestEqual(t, \"Decode from NewDecoder(chunkReader(%v)) = %q, want %q\", chunks, string(back), testcase.prefix)\n\t\t\t}\n\t\t}\n\t}\n}\n*/\n\nfunc TestEncodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{1, 2},\n\t\t{2, 4},\n\t\t{3, 5},\n\t\t{4, 7},\n\t\t{5, 8},\n\t\t{6, 10},\n\t\t{7, 12},\n\t\t{10, 16},\n\t\t{11, 18},\n\t}\n\t// check overflow\n\ttests = append(tests, test{(math.MaxInt-4)/8 + 1, 1844674407370955162})\n\ttests = append(tests, test{math.MaxInt/8*5 + 4, math.MaxInt})\n\tfor _, tt := range tests {\n\t\tif got := EncodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"EncodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDecodedLen(t *testing.T) {\n\ttype test struct {\n\t\tn int\n\t\twant int64\n\t}\n\ttests := []test{\n\t\t{0, 0},\n\t\t{2, 1},\n\t\t{4, 2},\n\t\t{5, 3},\n\t\t{7, 4},\n\t\t{8, 5},\n\t\t{10, 6},\n\t\t{12, 7},\n\t\t{16, 10},\n\t\t{18, 11},\n\t}\n\t// check overflow\n\ttests = append(tests, test{math.MaxInt/5 + 1, 1152921504606846976})\n\ttests = append(tests, test{math.MaxInt, 5764607523034234879})\n\tfor _, tt := range tests {\n\t\tif got := DecodedLen(tt.n); int64(got) != tt.want {\n\t\t\tt.Errorf(\"DecodedLen(%d): got %d, want %d\", tt.n, got, tt.want)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KXbgom4ccIYxUJPHiKRSVZgx3qjoXk0NM8z422J0eIO41fqtpFOeVcZ2D2H3Yx3SkCKvdy8I/aw41opXPYXiBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"chonk","path":"gno.land/p/n2p5/chonk","files":[{"name":"chonk.gno","body":"// Package chonk provides a simple way to store arbitrarily large strings\n// in a linked list across transactions for efficient storage and retrieval.\n// A Chonk support three operations: Add, Flush, and Scanner.\n// - Add appends a string to the Chonk.\n// - Flush clears the Chonk.\n// - Scanner is used to iterate over the chunks in the Chonk.\npackage chonk\n\n// Chonk is a linked list string storage and\n// retrieval system for fine bois.\ntype Chonk struct {\n\tfirst *chunk\n\tlast *chunk\n}\n\n// chunk is a linked list node for Chonk\ntype chunk struct {\n\ttext string\n\tnext *chunk\n}\n\n// New creates a reference to a new Chonk\nfunc New() *Chonk {\n\treturn \u0026Chonk{}\n}\n\n// Add appends a string to the Chonk. If the Chonk is empty,\n// the string will be the first and last chunk. Otherwise,\n// the string will be appended to the end of the Chonk.\nfunc (c *Chonk) Add(text string) {\n\tnext := \u0026chunk{text: text}\n\tif c.first == nil {\n\t\tc.first = next\n\t\tc.last = next\n\t\treturn\n\t}\n\tc.last.next = next\n\tc.last = next\n}\n\n// Flush clears the Chonk by setting the first and last\n// chunks to nil. This will allow the garbage collector to\n// free the memory used by the Chonk.\nfunc (c *Chonk) Flush() {\n\tc.first = nil\n\tc.last = nil\n}\n\n// Scanner returns a new Scanner for the Chonk. The Scanner\n// is used to iterate over the chunks in the Chonk.\nfunc (c *Chonk) Scanner() *Scanner {\n\treturn \u0026Scanner{\n\t\tnext: c.first,\n\t}\n}\n\n// Scanner is a simple string scanner for Chonk. It is used\n// to iterate over the chunks in a Chonk from first to last.\ntype Scanner struct {\n\tcurrent *chunk\n\tnext *chunk\n}\n\n// Scan advances the scanner to the next chunk. It returns\n// true if there is a next chunk, and false if there is not.\nfunc (s *Scanner) Scan() bool {\n\tif s.next != nil {\n\t\ts.current = s.next\n\t\ts.next = s.next.next\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Text returns the current chunk. It is only valid to call\n// this method after a call to Scan returns true. Expected usage:\n//\n//\t\tscanner := chonk.Scanner()\n//\t\t\tfor scanner.Scan() {\n//\t \t\tfmt.Println(scanner.Text())\n//\t\t\t}\nfunc (s *Scanner) Text() string {\n\treturn s.current.text\n}\n"},{"name":"chonk_test.gno","body":"package chonk\n\nimport (\n\t\"testing\"\n)\n\nfunc TestChonk(t *testing.T) {\n\tt.Parallel()\n\tc := New()\n\ttestTable := []struct {\n\t\tname string\n\t\tchunks []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"single chunk\",\n\t\t\tchunks: []string{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple chunks\",\n\t\t\tchunks: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t},\n\t\t{\n\t\t\tname: \"multiline chunks\",\n\t\t\tchunks: []string{\"1a\\nb\\nc\\n\\n\", \"d\\ne\\nf\", \"g\\nh\\ni\", \"j\\nk\\nl\\n\\n\\n\\n\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tchunks: []string{},\n\t\t},\n\t}\n\ttestChonk := func(t *testing.T, c *Chonk, chunks []string) {\n\t\tfor _, chunk := range chunks {\n\t\t\tc.Add(chunk)\n\t\t}\n\t\tscanner := c.Scanner()\n\t\ti := 0\n\t\tfor scanner.Scan() {\n\t\t\tif scanner.Text() != chunks[i] {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", chunks[i], scanner.Text())\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\ttestChonk(t, c, test.chunks)\n\t\t\tc.Flush()\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FV4uIMjvb+D/asadArA0yvm6qP4WrGH6MgeDrdujyu55jY5AQ+BAimX9UuhLWTz3lmexNbJjDgUkSsrOlpFwCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"combinederr","path":"gno.land/p/demo/combinederr","files":[{"name":"combinederr.gno","body":"package combinederr\n\nimport \"strings\"\n\n// CombinedError is a combined execution error\ntype CombinedError struct {\n\terrors []error\n}\n\n// Error returns the combined execution error\nfunc (e *CombinedError) Error() string {\n\tif len(e.errors) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tfor _, err := range e.errors {\n\t\tsb.WriteString(err.Error() + \"; \")\n\t}\n\n\t// Remove the last semicolon and space\n\tresult := sb.String()\n\n\treturn result[:len(result)-2]\n}\n\n// Add adds a new error to the execution error\nfunc (e *CombinedError) Add(err error) {\n\tif err == nil {\n\t\treturn\n\t}\n\n\te.errors = append(e.errors, err)\n}\n\n// Size returns a\nfunc (e *CombinedError) Size() int {\n\treturn len(e.errors)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EEJxN555bNkCojAWsaJgaZxFfpb0eRiRgo7sp1nbkQRa957SrE+AnLrh2S7iqBjeVBNggK4NZ6IlK0XRL/skDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"config","path":"gno.land/r/leon/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address // leon's main address\n\tbackup std.Address // backup address\n\n\tErrInvalidAddr = errors.New(\"leon's config: invalid address\")\n\tErrUnauthorized = errors.New(\"leon's config: unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PZnazAeQBJ6QJK/bNKV8izFTeK/S+UC1MemsUulGZegR3XlnkWydon2ULiSWaz56uMWOswg32ZlOKw79zwGPAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"config","path":"gno.land/r/moul/config","files":[{"name":"config.gno","body":"package config\n\nimport \"std\"\n\nvar addr = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n\nfunc Addr() std.Address {\n\treturn addr\n}\n\nfunc UpdateAddr(newAddr std.Address) {\n\tAssertIsAdmin()\n\taddr = newAddr\n}\n\nfunc AssertIsAdmin() {\n\tif std.GetOrigCaller() != addr {\n\t\tpanic(\"restricted area\")\n\t}\n}\n"},{"name":"config_test.gno","body":"package config\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LcgELKIkiCU9JUgmRKy906XVyVBMsWMyV7ugiaxmtdJKJ3XbFDa5UwAmItPQcX3537IsFQKEiY40J/qKTBApBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"config","path":"gno.land/r/n2p5/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/n2p5/mgroup\"\n)\n\nconst (\n\toriginalOwner = \"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t\" // n2p5\n)\n\nvar (\n\tadminGroup = mgroup.New(originalOwner)\n\tdescription = \"\"\n)\n\n// AddBackupOwner adds a backup owner to the Owner Group.\n// A backup owner can claim ownership of the contract.\nfunc AddBackupOwner(addr std.Address) {\n\terr := adminGroup.AddBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveBackupOwner removes a backup owner from the Owner Group.\n// The primary owner cannot be removed.\nfunc RemoveBackupOwner(addr std.Address) {\n\terr := adminGroup.RemoveBackupOwner(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ClaimOwnership allows an authorized user in the ownerGroup\n// to claim ownership of the contract.\nfunc ClaimOwnership() {\n\terr := adminGroup.ClaimOwnership()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// AddAdmin adds an admin to the Admin Group.\nfunc AddAdmin(addr std.Address) {\n\terr := adminGroup.AddMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// RemoveAdmin removes an admin from the Admin Group.\n// The primary owner cannot be removed.\nfunc RemoveAdmin(addr std.Address) {\n\terr := adminGroup.RemoveMember(addr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Owner returns the current owner of the claims contract.\nfunc Owner() std.Address {\n\treturn adminGroup.Owner()\n}\n\n// BackupOwners returns the current backup owners of the claims contract.\nfunc BackupOwners() []string {\n\treturn adminGroup.BackupOwners()\n}\n\n// Admins returns the current admin members of the claims contract.\nfunc Admins() []string {\n\treturn adminGroup.Members()\n}\n\n// IsAdmin checks if an address is in the config adminGroup.\nfunc IsAdmin(addr std.Address) bool {\n\treturn adminGroup.IsMember(addr)\n}\n\n// toMarkdownList formats a slice of strings as a markdown list.\nfunc toMarkdownList(items []string) string {\n\tvar result string\n\tfor _, item := range items {\n\t\tresult += ufmt.Sprintf(\"- %s\\n\", item)\n\t}\n\treturn result\n}\n\nfunc Render(path string) string {\n\towner := adminGroup.Owner().String()\n\tbackupOwners := toMarkdownList(BackupOwners())\n\tadminMembers := toMarkdownList(Admins())\n\treturn ufmt.Sprintf(`\n# Config Dashboard\n\nThis dashboard shows the current configuration owner, backup owners, and admin members.\n- The owner has the exclusive ability to manage the backup owners and admin members.\n- Backup owners can claim ownership of the contract and become the owner.\n- Admin members are used to authorize actions in other realms, such as [my home realm](/r/n2p5/home).\n\n#### Owner\n\n%s\n\n#### Backup Owners\n\n%s\n\n#### Admin Members\n\n%s\n\n`,\n\t\towner,\n\t\tbackupOwners,\n\t\tadminMembers)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WXEvDSL+JbWGniO1D+R3PgRzH7QNu8Vx8Y9pnenrHj/F1a3T8gau0r9LwCr9cWK5cjX6DTBKkZvVh86saTAaDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"config","path":"gno.land/r/nemanya/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address\n\tbackup std.Address\n\n\tErrInvalidAddr = errors.New(\"Invalid address\")\n\tErrUnauthorized = errors.New(\"Unauthorized\")\n)\n\nfunc init() {\n\tmain = \"g1x9qyf6f34v2g52k4q5smn5tctmj3hl2kj7l2ql\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn ErrInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackup = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tisAuthorized := caller == main || caller == backup\n\n\tif !isAuthorized {\n\t\treturn ErrUnauthorized\n\t}\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5ywdAtgMYGyJCMjRdyqYINYNlTtt0z/gduPQ+2lQzQLJYnlFVqegbxB/aBBocGBrW86Zp4JBWPzMJ+1yfhfpDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"context","path":"gno.land/p/demo/context","files":[{"name":"context.gno","body":"// Package context provides a minimal implementation of Go context with support\n// for Value and WithValue.\n//\n// Adapted from https://github.com/golang/go/tree/master/src/context/.\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\npackage context\n\ntype Context interface {\n\t// Value returns the value associated with this context for key, or nil\n\t// if no value is associated with key.\n\tValue(key interface{}) interface{}\n}\n\n// Empty returns a non-nil, empty context, similar with context.Background and\n// context.TODO in Go.\nfunc Empty() Context {\n\treturn \u0026emptyCtx{}\n}\n\ntype emptyCtx struct{}\n\nfunc (ctx emptyCtx) Value(key interface{}) interface{} {\n\treturn nil\n}\n\nfunc (ctx emptyCtx) String() string {\n\treturn \"context.Empty\"\n}\n\ntype valueCtx struct {\n\tparent Context\n\tkey, val interface{}\n}\n\nfunc (ctx *valueCtx) Value(key interface{}) interface{} {\n\tif ctx.key == key {\n\t\treturn ctx.val\n\t}\n\treturn ctx.parent.Value(key)\n}\n\nfunc stringify(v interface{}) string {\n\tswitch s := v.(type) {\n\tcase stringer:\n\t\treturn s.String()\n\tcase string:\n\t\treturn s\n\t}\n\treturn \"non-stringer\"\n}\n\ntype stringer interface {\n\tString() string\n}\n\nfunc (c *valueCtx) String() string {\n\treturn stringify(c.parent) + \".WithValue(\" +\n\t\tstringify(c.key) + \", \" +\n\t\tstringify(c.val) + \")\"\n}\n\n// WithValue returns a copy of parent in which the value associated with key is\n// val.\nfunc WithValue(parent Context, key, val interface{}) Context {\n\tif key == nil {\n\t\tpanic(\"nil key\")\n\t}\n\t// XXX: if !reflect.TypeOf(key).Comparable() { panic(\"key is not comparable\") }\n\treturn \u0026valueCtx{parent, key, val}\n}\n"},{"name":"context_test.gno","body":"package context\n\nimport \"testing\"\n\nfunc TestContextExample(t *testing.T) {\n\ttype favContextKey string\n\n\tk := favContextKey(\"language\")\n\tctx := WithValue(Empty(), k, \"Gno\")\n\n\tif v := ctx.Value(k); v != nil {\n\t\tif string(v) != \"Gno\" {\n\t\t\tt.Errorf(\"language value should be Gno, but is %s\", v)\n\t\t}\n\t} else {\n\t\tt.Errorf(\"language key value was not found\")\n\t}\n\n\tif v := ctx.Value(favContextKey(\"color\")); v != nil {\n\t\tt.Errorf(\"color key was found\")\n\t}\n}\n\n// otherContext is a Context that's not one of the types defined in context.go.\n// This lets us test code paths that differ based on the underlying type of the\n// Context.\ntype otherContext struct {\n\tContext\n}\n\ntype (\n\tkey1 int\n\tkey2 int\n)\n\n// func (k key2) String() string { return fmt.Sprintf(\"%[1]T(%[1]d)\", k) }\n\nvar (\n\tk1 = key1(1)\n\tk2 = key2(1) // same int as k1, different type\n\tk3 = key2(3) // same type as k2, different int\n)\n\nfunc TestValues(t *testing.T) {\n\tcheck := func(c Context, nm, v1, v2, v3 string) {\n\t\tif v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 {\n\t\t\tt.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 {\n\t\t\tt.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0)\n\t\t}\n\t\tif v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 {\n\t\t\tt.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0)\n\t\t}\n\t}\n\n\tc0 := Empty()\n\tcheck(c0, \"c0\", \"\", \"\", \"\")\n\n\tt.Skip() // XXX: depends on https://github.com/gnolang/gno/issues/2386\n\n\tc1 := WithValue(Empty(), k1, \"c1k1\")\n\tcheck(c1, \"c1\", \"c1k1\", \"\", \"\")\n\n\t/*if got, want := c1.String(), `context.Empty.WithValue(context_test.key1, c1k1)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc2 := WithValue(c1, k2, \"c2k2\")\n\tcheck(c2, \"c2\", \"c1k1\", \"c2k2\", \"\")\n\n\t/*if got, want := fmt.Sprint(c2), `context.Empty.WithValue(context_test.key1, c1k1).WithValue(context_test.key2(1), c2k2)`; got != want {\n\t\tt.Errorf(\"c.String() = %q want %q\", got, want)\n\t}*/\n\n\tc3 := WithValue(c2, k3, \"c3k3\")\n\tcheck(c3, \"c2\", \"c1k1\", \"c2k2\", \"c3k3\")\n\n\tc4 := WithValue(c3, k1, nil)\n\tcheck(c4, \"c4\", \"\", \"c2k2\", \"c3k3\")\n\n\to0 := otherContext{Empty()}\n\tcheck(o0, \"o0\", \"\", \"\", \"\")\n\n\to1 := otherContext{WithValue(Empty(), k1, \"c1k1\")}\n\tcheck(o1, \"o1\", \"c1k1\", \"\", \"\")\n\n\to2 := WithValue(o1, k2, \"o2k2\")\n\tcheck(o2, \"o2\", \"c1k1\", \"o2k2\", \"\")\n\n\to3 := otherContext{c4}\n\tcheck(o3, \"o3\", \"\", \"c2k2\", \"c3k3\")\n\n\to4 := WithValue(o3, k3, nil)\n\tcheck(o4, \"o4\", \"\", \"c2k2\", \"\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wnm/XRT/fX0IdIhaaO/u9FidZ9pSaJ+VmPk7bM5jJ7G0IR9wsjHlHe0c7xen4LGGLET07vtENjW9gnSs/h7oAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"counter","path":"gno.land/r/demo/counter","files":[{"name":"counter.gno","body":"package counter\n\nimport \"strconv\"\n\nvar counter int\n\nfunc Increment() int {\n\tcounter++\n\treturn counter\n}\n\nfunc Render(_ string) string {\n\treturn strconv.Itoa(counter)\n}\n"},{"name":"counter_test.gno","body":"package counter\n\nimport \"testing\"\n\nfunc TestIncrement(t *testing.T) {\n\tcounter = 0\n\tval := Increment()\n\tif val != 1 {\n\t\tt.Fatalf(\"result from Increment(): %d != 1\", val)\n\t}\n\tif counter != val {\n\t\tt.Fatalf(\"counter (%d) != val (%d)\", counter, val)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcounter = 1337\n\tres := Render(\"\")\n\tif res != \"1337\" {\n\t\tt.Fatalf(\"render result %q != %q\", res, \"1337\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3wG/mk6k/+NDBG4u6DXWd23ub6twSN+gEV9/7Low8jdht+GrCIAvdgvcA8ZYEy3HnjXVJq0wpK2J5xS45XSaAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"crossrealm","path":"gno.land/r/demo/tests/crossrealm","files":[{"name":"crossrealm.gno","body":"package crossrealm\n\nimport (\n\t\"gno.land/p/demo/tests/p_crossrealm\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype LocalStruct struct {\n\tA int\n}\n\nfunc (ls *LocalStruct) String() string {\n\treturn ufmt.Sprintf(\"LocalStruct{%d}\", ls.A)\n}\n\n// local is saved locally in this realm\nvar local *LocalStruct\n\nfunc init() {\n\tlocal = \u0026LocalStruct{A: 123}\n}\n\n// Make1 returns a local object wrapped by a p struct\nfunc Make1() *p_crossrealm.Container {\n\treturn \u0026p_crossrealm.Container{\n\t\tA: 1,\n\t\tB: local,\n\t}\n}\n\ntype Fooer interface{ Foo() }\n\nvar fooer Fooer\n\nfunc SetFooer(f Fooer) Fooer {\n\tfooer = f\n\treturn fooer\n}\n\nfunc GetFooer() Fooer { return fooer }\n\nfunc CallFooerFoo() { fooer.Foo() }\n\ntype FooerGetter func() Fooer\n\nvar fooerGetter FooerGetter\n\nfunc SetFooerGetter(fg FooerGetter) FooerGetter {\n\tfooerGetter = fg\n\treturn fg\n}\n\nfunc GetFooerGetter() FooerGetter {\n\treturn fooerGetter\n}\n\nfunc CallFooerGetterFoo() { fooerGetter().Foo() }\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vQUJPyV3t6R3Up80JUQNRXjhg3iZQBIMvxPn/+JMGYqIxNwefQlGxCk0KFjRVL5lzwg2OZ4Qg1bpgmfyvCzdAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"crossrealm_b","path":"gno.land/r/demo/tests/crossrealm_b","files":[{"name":"crossrealm.gno","body":"package crossrealm_b\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/tests/crossrealm\"\n)\n\ntype fooer struct {\n\ts string\n}\n\nfunc (f *fooer) SetS(newVal string) {\n\tf.s = newVal\n}\n\nfunc (f *fooer) Foo() {\n\tprintln(\"hello \" + f.s + \" cur=\" + std.CurrentRealm().PkgPath() + \" prev=\" + std.PrevRealm().PkgPath())\n}\n\nvar (\n\tFooer = \u0026fooer{s: \"A\"}\n\tFooerGetter = func() crossrealm.Fooer { return Fooer }\n\tFooerGetterBuilder = func() crossrealm.FooerGetter { return func() crossrealm.Fooer { return Fooer } }\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aRNldF3u8cOpK5CngpkL9K3t5xvUc6ED2PdASX/6BgQLF90jimg/i+Vg2HVou/6ASat17w/DWQOw0gMahU3FAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"dao","path":"gno.land/p/demo/dao","files":[{"name":"dao.gno","body":"package dao\n\nconst (\n\tProposalAddedEvent = \"ProposalAdded\" // emitted when a new proposal has been added\n\tProposalAcceptedEvent = \"ProposalAccepted\" // emitted when a proposal has been accepted\n\tProposalNotAcceptedEvent = \"ProposalNotAccepted\" // emitted when a proposal has not been accepted\n\tProposalExecutedEvent = \"ProposalExecuted\" // emitted when a proposal has been executed\n\n\tProposalEventIDKey = \"proposal-id\"\n\tProposalEventAuthorKey = \"proposal-author\"\n\tProposalEventExecutionKey = \"exec-status\"\n)\n\n// ProposalRequest is a single govdao proposal request\n// that contains the necessary information to\n// log and generate a valid proposal\ntype ProposalRequest struct {\n\tTitle string // the title associated with the proposal\n\tDescription string // the description associated with the proposal\n\tExecutor Executor // the proposal executor\n}\n\n// DAO defines the DAO abstraction\ntype DAO interface {\n\t// PropStore is the DAO proposal storage\n\tPropStore\n\n\t// Propose adds a new proposal to the executor-based GOVDAO.\n\t// Returns the generated proposal ID\n\tPropose(request ProposalRequest) (uint64, error)\n\n\t// ExecuteProposal executes the proposal with the given ID\n\tExecuteProposal(id uint64) error\n}\n"},{"name":"doc.gno","body":"// Package dao houses common DAO building blocks (framework), which can be used or adopted by any\n// specific DAO implementation. By design, the DAO should house the proposals it receives, but not the actual\n// DAO members or proposal votes. These abstractions should be implemented by a separate entity, to keep the DAO\n// agnostic of implementation details such as these (member / vote management).\npackage dao\n"},{"name":"events.gno","body":"package dao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// EmitProposalAdded emits an event signaling that\n// a given proposal was added\nfunc EmitProposalAdded(id uint64, proposer std.Address) {\n\tstd.Emit(\n\t\tProposalAddedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventAuthorKey, proposer.String(),\n\t)\n}\n\n// EmitProposalAccepted emits an event signaling that\n// a given proposal was accepted\nfunc EmitProposalAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalNotAccepted emits an event signaling that\n// a given proposal was not accepted\nfunc EmitProposalNotAccepted(id uint64) {\n\tstd.Emit(\n\t\tProposalNotAcceptedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t)\n}\n\n// EmitProposalExecuted emits an event signaling that\n// a given proposal was executed, with the given status\nfunc EmitProposalExecuted(id uint64, status ProposalStatus) {\n\tstd.Emit(\n\t\tProposalExecutedEvent,\n\t\tProposalEventIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tProposalEventExecutionKey, status.String(),\n\t)\n}\n\n// EmitVoteAdded emits an event signaling that\n// a vote was cast for a given proposal\nfunc EmitVoteAdded(id uint64, voter std.Address, option VoteOption) {\n\tstd.Emit(\n\t\tVoteAddedEvent,\n\t\tVoteAddedIDKey, ufmt.Sprintf(\"%d\", id),\n\t\tVoteAddedAuthorKey, voter.String(),\n\t\tVoteAddedOptionKey, option.String(),\n\t)\n}\n"},{"name":"executor.gno","body":"package dao\n\n// Executor represents a minimal closure-oriented proposal design.\n// It is intended to be used by a govdao governance proposal (v1, v2, etc)\ntype Executor interface {\n\t// Execute executes the given proposal, and returns any error encountered\n\t// during the execution\n\tExecute() error\n}\n"},{"name":"proposals.gno","body":"package dao\n\nimport \"std\"\n\n// ProposalStatus is the currently active proposal status,\n// changed based on DAO functionality.\n// Status transitions:\n//\n// ACTIVE -\u003e ACCEPTED -\u003e EXECUTION(SUCCEEDED/FAILED)\n//\n// ACTIVE -\u003e NOT ACCEPTED\ntype ProposalStatus string\n\nvar (\n\tActive ProposalStatus = \"active\" // proposal is still active\n\tAccepted ProposalStatus = \"accepted\" // proposal gathered quorum\n\tNotAccepted ProposalStatus = \"not accepted\" // proposal failed to gather quorum\n\tExecutionSuccessful ProposalStatus = \"execution successful\" // proposal is executed successfully\n\tExecutionFailed ProposalStatus = \"execution failed\" // proposal has failed during execution\n)\n\nfunc (s ProposalStatus) String() string {\n\treturn string(s)\n}\n\n// PropStore defines the proposal storage abstraction\ntype PropStore interface {\n\t// Proposals returns the given paginated proposals\n\tProposals(offset, count uint64) []Proposal\n\n\t// ProposalByID returns the proposal associated with\n\t// the given ID, if any\n\tProposalByID(id uint64) (Proposal, error)\n\n\t// Size returns the number of proposals in\n\t// the proposal store\n\tSize() int\n}\n\n// Proposal is the single proposal abstraction\ntype Proposal interface {\n\t// Author returns the author of the proposal\n\tAuthor() std.Address\n\n\t// Title returns the title of the proposal\n\tTitle() string\n\n\t// Description returns the description of the proposal\n\tDescription() string\n\n\t// Status returns the status of the proposal\n\tStatus() ProposalStatus\n\n\t// Executor returns the proposal executor\n\tExecutor() Executor\n\n\t// Stats returns the voting stats of the proposal\n\tStats() Stats\n\n\t// IsExpired returns a flag indicating if the proposal expired\n\tIsExpired() bool\n\n\t// Render renders the proposal in a readable format\n\tRender() string\n}\n"},{"name":"vote.gno","body":"package dao\n\n// NOTE:\n// This voting pods will be removed in a future version of the\n// p/demo/dao package. A DAO shouldn't have to comply with or define how the voting mechanism works internally;\n// it should be viewed as an entity that makes decisions\n//\n// The extent of \"votes being enforced\" in this implementation is just in the context\n// of types a DAO can use (import), and in the context of \"Stats\", where\n// there is a notion of \"Yay\", \"Nay\" and \"Abstain\" votes.\nconst (\n\tVoteAddedEvent = \"VoteAdded\" // emitted when a vote was cast for a proposal\n\n\tVoteAddedIDKey = \"proposal-id\"\n\tVoteAddedAuthorKey = \"author\"\n\tVoteAddedOptionKey = \"option\"\n)\n\n// VoteOption is the limited voting option for a DAO proposal\ntype VoteOption string\n\nconst (\n\tYesVote VoteOption = \"YES\" // Proposal should be accepted\n\tNoVote VoteOption = \"NO\" // Proposal should be rejected\n\tAbstainVote VoteOption = \"ABSTAIN\" // Side is not chosen\n)\n\nfunc (v VoteOption) String() string {\n\treturn string(v)\n}\n\n// Stats encompasses the proposal voting stats\ntype Stats struct {\n\tYayVotes uint64\n\tNayVotes uint64\n\tAbstainVotes uint64\n\n\tTotalVotingPower uint64\n}\n\n// YayPercent returns the percentage (0-100) of the yay votes\n// in relation to the total voting power\nfunc (v Stats) YayPercent() uint64 {\n\treturn v.YayVotes * 100 / v.TotalVotingPower\n}\n\n// NayPercent returns the percentage (0-100) of the nay votes\n// in relation to the total voting power\nfunc (v Stats) NayPercent() uint64 {\n\treturn v.NayVotes * 100 / v.TotalVotingPower\n}\n\n// AbstainPercent returns the percentage (0-100) of the abstain votes\n// in relation to the total voting power\nfunc (v Stats) AbstainPercent() uint64 {\n\treturn v.AbstainVotes * 100 / v.TotalVotingPower\n}\n\n// MissingVotes returns the summed voting power that has not\n// participated in proposal voting yet\nfunc (v Stats) MissingVotes() uint64 {\n\treturn v.TotalVotingPower - (v.YayVotes + v.NayVotes + v.AbstainVotes)\n}\n\n// MissingVotesPercent returns the percentage (0-100) of the missing votes\n// in relation to the total voting power\nfunc (v Stats) MissingVotesPercent() uint64 {\n\treturn v.MissingVotes() * 100 / v.TotalVotingPower\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1RlG5ohXkWBlzqVQhuSSj1IB0XaW7HeSRVWmf+o5f1/TUY8jECD1CbQdATLfjL7c6GDsdM0lVxkoX93/6texDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"daoweb","path":"gno.land/r/demo/daoweb","files":[{"name":"daoweb.gno","body":"package daoweb\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/json\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\n// Proposals returns the paginated GovDAO proposals\nfunc Proposals(offset, count uint64) string {\n\tvar (\n\t\tpropStore = bridge.GovDAO().GetPropStore()\n\t\tsize = propStore.Size()\n\t)\n\n\t// Get the props\n\tprops := propStore.Proposals(offset, count)\n\n\tresp := ProposalsResponse{\n\t\tProposals: make([]Proposal, 0, count),\n\t\tTotal: uint64(size),\n\t}\n\n\tfor _, p := range props {\n\t\tprop := Proposal{\n\t\t\tAuthor: p.Author(),\n\t\t\tDescription: p.Description(),\n\t\t\tStatus: p.Status(),\n\t\t\tStats: p.Stats(),\n\t\t\tIsExpired: p.IsExpired(),\n\t\t}\n\n\t\tresp.Proposals = append(resp.Proposals, prop)\n\t}\n\n\t// Encode the response into JSON\n\tencodedProps, err := json.Marshal(encodeProposalsResponse(resp))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProps)\n}\n\n// ProposalByID fetches the proposal using the given ID\nfunc ProposalByID(id uint64) string {\n\tpropStore := bridge.GovDAO().GetPropStore()\n\n\tp, err := propStore.ProposalByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Encode the response into JSON\n\tprop := Proposal{\n\t\tAuthor: p.Author(),\n\t\tDescription: p.Description(),\n\t\tStatus: p.Status(),\n\t\tStats: p.Stats(),\n\t\tIsExpired: p.IsExpired(),\n\t}\n\n\tencodedProp, err := json.Marshal(encodeProposal(prop))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn string(encodedProp)\n}\n\n// encodeProposal encodes a proposal into a json node\nfunc encodeProposal(p Proposal) *json.Node {\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"author\": json.StringNode(\"author\", p.Author.String()),\n\t\t\"description\": json.StringNode(\"description\", p.Description),\n\t\t\"status\": json.StringNode(\"status\", p.Status.String()),\n\t\t\"stats\": json.ObjectNode(\"stats\", map[string]*json.Node{\n\t\t\t\"yay_votes\": json.NumberNode(\"yay_votes\", float64(p.Stats.YayVotes)),\n\t\t\t\"nay_votes\": json.NumberNode(\"nay_votes\", float64(p.Stats.NayVotes)),\n\t\t\t\"abstain_votes\": json.NumberNode(\"abstain_votes\", float64(p.Stats.AbstainVotes)),\n\t\t\t\"total_voting_power\": json.NumberNode(\"total_voting_power\", float64(p.Stats.TotalVotingPower)),\n\t\t}),\n\t\t\"is_expired\": json.BoolNode(\"is_expired\", p.IsExpired),\n\t})\n}\n\n// encodeProposalsResponse encodes a proposal response into a JSON node\nfunc encodeProposalsResponse(props ProposalsResponse) *json.Node {\n\tproposals := make([]*json.Node, 0, len(props.Proposals))\n\n\tfor _, p := range props.Proposals {\n\t\tproposals = append(proposals, encodeProposal(p))\n\t}\n\n\treturn json.ObjectNode(\"\", map[string]*json.Node{\n\t\t\"proposals\": json.ArrayNode(\"proposals\", proposals),\n\t\t\"total\": json.NumberNode(\"total\", float64(props.Total)),\n\t})\n}\n\n// ProposalsResponse is a paginated proposal response\ntype ProposalsResponse struct {\n\tProposals []Proposal `json:\"proposals\"`\n\tTotal uint64 `json:\"total\"`\n}\n\n// Proposal is a single GovDAO proposal\ntype Proposal struct {\n\tAuthor std.Address `json:\"author\"`\n\tDescription string `json:\"description\"`\n\tStatus dao.ProposalStatus `json:\"status\"`\n\tStats dao.Stats `json:\"stats\"`\n\tIsExpired bool `json:\"is_expired\"`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TQRlVRZBT/Dh+e3uNDHNP2MO8RSCy5FkrpYljwMaVgOdv0yj5rExq0hMzPyEDfaycKg4bfsp5pRZvZpQ0CHNAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"datasource","path":"gno.land/p/jeronimoalbi/datasource","files":[{"name":"datasource.gno","body":"// Package datasource defines generic interfaces for datasources.\n//\n// Datasources contain a set of records which can optionally be\n// taggable. Tags can optionally be used to filter records by taxonomy.\n//\n// Datasources can help in cases where the data sent during\n// communication between different realms needs to be generic\n// to avoid direct dependencies.\npackage datasource\n\nimport \"errors\"\n\n// ErrInvalidRecord indicates that a datasource contains invalid records.\nvar ErrInvalidRecord = errors.New(\"datasource records is not valid\")\n\ntype (\n\t// Fields defines an interface for read-only fields.\n\tFields interface {\n\t\t// Has checks whether a field exists.\n\t\tHas(name string) bool\n\n\t\t// Get retrieves the value associated with the given field.\n\t\tGet(name string) (value interface{}, found bool)\n\t}\n\n\t// Record defines a datasource record.\n\tRecord interface {\n\t\t// ID returns the unique record's identifier.\n\t\tID() string\n\n\t\t// String returns a string representation of the record.\n\t\tString() string\n\n\t\t// Fields returns record fields and values.\n\t\tFields() (Fields, error)\n\t}\n\n\t// TaggableRecord defines a datasource record that supports tags.\n\t// Tags can be used to build a taxonomy to filter records by category.\n\tTaggableRecord interface {\n\t\t// Tags returns a list of tags for the record.\n\t\tTags() []string\n\t}\n\n\t// ContentRecord defines a datasource record that can return content.\n\tContentRecord interface {\n\t\t// Content returns the record content.\n\t\tContent() (string, error)\n\t}\n\n\t// Iterator defines an iterator of datasource records.\n\tIterator interface {\n\t\t// Next returns true when a new record is available.\n\t\tNext() bool\n\n\t\t// Err returns any error raised when reading records.\n\t\tErr() error\n\n\t\t// Record returns the current record.\n\t\tRecord() Record\n\t}\n\n\t// Datasource defines a generic datasource.\n\tDatasource interface {\n\t\t// Records returns a new datasource records iterator.\n\t\tRecords(Query) Iterator\n\n\t\t// Size returns the total number of records in the datasource.\n\t\t// When -1 is returned it means datasource doesn't support size.\n\t\tSize() int\n\n\t\t// Record returns a single datasource record.\n\t\tRecord(id string) (Record, error)\n\t}\n)\n\n// NewIterator returns a new record iterator for a datasource query.\nfunc NewIterator(ds Datasource, options ...QueryOption) Iterator {\n\treturn ds.Records(NewQuery(options...))\n}\n\n// QueryRecords return a slice of records for a datasource query.\nfunc QueryRecords(ds Datasource, options ...QueryOption) ([]Record, error) {\n\tvar (\n\t\trecords []Record\n\t\tquery = NewQuery(options...)\n\t\titer = ds.Records(query)\n\t)\n\n\tfor i := 0; i \u003c query.Count \u0026\u0026 iter.Next(); i++ {\n\t\tr := iter.Record()\n\t\tif r == nil {\n\t\t\treturn nil, ErrInvalidRecord\n\t\t}\n\n\t\trecords = append(records, r)\n\t}\n\n\tif err := iter.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn records, nil\n}\n"},{"name":"datasource_test.gno","body":"package datasource\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestNewIterator(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\trecords []Record\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\trecords: []Record{\n\t\t\t\ttestRecord{id: \"1\"},\n\t\t\t\ttestRecord{id: \"2\"},\n\t\t\t\ttestRecord{id: \"3\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"error\",\n\t\t\terr: errors.New(\"test\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tds := testDatasource{\n\t\t\t\trecords: tc.records,\n\t\t\t\terr: tc.err,\n\t\t\t}\n\n\t\t\t// Act\n\t\t\titer := NewIterator(ds)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tuassert.ErrorIs(t, tc.err, iter.Err())\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tuassert.NoError(t, iter.Err())\n\n\t\t\tfor i := 0; iter.Next(); i++ {\n\t\t\t\tr := iter.Record()\n\t\t\t\turequire.NotEqual(t, nil, r, \"valid record\")\n\t\t\t\turequire.True(t, i \u003c len(tc.records), \"iteration count\")\n\t\t\t\tuassert.Equal(t, tc.records[i].ID(), r.ID())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestQueryRecords(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\trecords []Record\n\t\trecordCount int\n\t\toptions []QueryOption\n\t\terr error\n\t}{\n\t\t{\n\t\t\tname: \"ok\",\n\t\t\trecords: []Record{\n\t\t\t\ttestRecord{id: \"1\"},\n\t\t\t\ttestRecord{id: \"2\"},\n\t\t\t\ttestRecord{id: \"3\"},\n\t\t\t},\n\t\t\trecordCount: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"with count\",\n\t\t\toptions: []QueryOption{WithCount(2)},\n\t\t\trecords: []Record{\n\t\t\t\ttestRecord{id: \"1\"},\n\t\t\t\ttestRecord{id: \"2\"},\n\t\t\t\ttestRecord{id: \"3\"},\n\t\t\t},\n\t\t\trecordCount: 2,\n\t\t},\n\t\t{\n\t\t\tname: \"invalid record\",\n\t\t\trecords: []Record{\n\t\t\t\ttestRecord{id: \"1\"},\n\t\t\t\tnil,\n\t\t\t\ttestRecord{id: \"3\"},\n\t\t\t},\n\t\t\terr: ErrInvalidRecord,\n\t\t},\n\t\t{\n\t\t\tname: \"iterator error\",\n\t\t\trecords: []Record{\n\t\t\t\ttestRecord{id: \"1\"},\n\t\t\t\ttestRecord{id: \"3\"},\n\t\t\t},\n\t\t\terr: errors.New(\"test\"),\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\tds := testDatasource{\n\t\t\t\trecords: tc.records,\n\t\t\t\terr: tc.err,\n\t\t\t}\n\n\t\t\t// Act\n\t\t\trecords, err := QueryRecords(ds, tc.options...)\n\n\t\t\t// Assert\n\t\t\tif tc.err != nil {\n\t\t\t\tuassert.ErrorIs(t, tc.err, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tuassert.NoError(t, err)\n\n\t\t\turequire.Equal(t, tc.recordCount, len(records), \"record count\")\n\t\t\tfor i, r := range records {\n\t\t\t\turequire.NotEqual(t, nil, r, \"valid record\")\n\t\t\t\tuassert.Equal(t, tc.records[i].ID(), r.ID())\n\t\t\t}\n\t\t})\n\t}\n}\n\ntype testDatasource struct {\n\trecords []Record\n\terr error\n}\n\nfunc (testDatasource) Size() int { return -1 }\nfunc (testDatasource) Record(string) (Record, error) { return nil, nil }\nfunc (ds testDatasource) Records(Query) Iterator { return \u0026testIter{records: ds.records, err: ds.err} }\n\ntype testRecord struct {\n\tid string\n\tfields Fields\n\terr error\n}\n\nfunc (r testRecord) ID() string { return r.id }\nfunc (r testRecord) String() string { return \"str\" + r.id }\nfunc (r testRecord) Fields() (Fields, error) { return r.fields, r.err }\n\ntype testIter struct {\n\tindex int\n\trecords []Record\n\tcurrent Record\n\terr error\n}\n\nfunc (it testIter) Err() error { return it.err }\nfunc (it testIter) Record() Record { return it.current }\n\nfunc (it *testIter) Next() bool {\n\tcount := len(it.records)\n\tif it.err != nil || count == 0 || it.index \u003e= count {\n\t\treturn false\n\t}\n\tit.current = it.records[it.index]\n\tit.index++\n\treturn true\n}\n"},{"name":"query.gno","body":"package datasource\n\nimport \"gno.land/p/demo/avl\"\n\n// DefaultQueryRecords defines the default number of records returned by queries.\nconst DefaultQueryRecords = 50\n\nvar defaultQuery = Query{Count: DefaultQueryRecords}\n\ntype (\n\t// QueryOption configures datasource queries.\n\tQueryOption func(*Query)\n\n\t// Query contains datasource query options.\n\tQuery struct {\n\t\t// Offset of the first record to return during iteration.\n\t\tOffset int\n\n\t\t// Count contains the number to records that query should return.\n\t\tCount int\n\n\t\t// Tag contains a tag to use as filter for the records.\n\t\tTag string\n\n\t\t// Filters contains optional query filters by field value.\n\t\tFilters avl.Tree\n\t}\n)\n\n// WithOffset configures query to return records starting from an offset.\nfunc WithOffset(offset int) QueryOption {\n\treturn func(q *Query) {\n\t\tq.Offset = offset\n\t}\n}\n\n// WithCount configures the number of records that query returns.\nfunc WithCount(count int) QueryOption {\n\treturn func(q *Query) {\n\t\tif count \u003c 1 {\n\t\t\tcount = DefaultQueryRecords\n\t\t}\n\t\tq.Count = count\n\t}\n}\n\n// ByTag configures query to filter by tag.\nfunc ByTag(tag string) QueryOption {\n\treturn func(q *Query) {\n\t\tq.Tag = tag\n\t}\n}\n\n// WithFilter assigns a new filter argument to a query.\n// This option can be used multiple times if more than one\n// filter has to be given to the query.\nfunc WithFilter(field string, value interface{}) QueryOption {\n\treturn func(q *Query) {\n\t\tq.Filters.Set(field, value)\n\t}\n}\n\n// NewQuery creates a new datasource query.\nfunc NewQuery(options ...QueryOption) Query {\n\tq := defaultQuery\n\tfor _, apply := range options {\n\t\tapply(\u0026q)\n\t}\n\treturn q\n}\n"},{"name":"query_test.gno","body":"package datasource\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestNewQuery(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\toptions []QueryOption\n\t\tsetup func() Query\n\t}{\n\t\t{\n\t\t\tname: \"default\",\n\t\t\tsetup: func() Query {\n\t\t\t\treturn Query{Count: DefaultQueryRecords}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"with offset\",\n\t\t\toptions: []QueryOption{WithOffset(100)},\n\t\t\tsetup: func() Query {\n\t\t\t\treturn Query{\n\t\t\t\t\tOffset: 100,\n\t\t\t\t\tCount: DefaultQueryRecords,\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"with count\",\n\t\t\toptions: []QueryOption{WithCount(10)},\n\t\t\tsetup: func() Query {\n\t\t\t\treturn Query{Count: 10}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"with invalid count\",\n\t\t\toptions: []QueryOption{WithCount(0)},\n\t\t\tsetup: func() Query {\n\t\t\t\treturn Query{Count: DefaultQueryRecords}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"by tag\",\n\t\t\toptions: []QueryOption{ByTag(\"foo\")},\n\t\t\tsetup: func() Query {\n\t\t\t\treturn Query{\n\t\t\t\t\tTag: \"foo\",\n\t\t\t\t\tCount: DefaultQueryRecords,\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"with filter\",\n\t\t\toptions: []QueryOption{WithFilter(\"foo\", 42)},\n\t\t\tsetup: func() Query {\n\t\t\t\tq := Query{Count: DefaultQueryRecords}\n\t\t\t\tq.Filters.Set(\"foo\", 42)\n\t\t\t\treturn q\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"with multiple filters\",\n\t\t\toptions: []QueryOption{\n\t\t\t\tWithFilter(\"foo\", 42),\n\t\t\t\tWithFilter(\"bar\", \"baz\"),\n\t\t\t},\n\t\t\tsetup: func() Query {\n\t\t\t\tq := Query{Count: DefaultQueryRecords}\n\t\t\t\tq.Filters.Set(\"foo\", 42)\n\t\t\t\tq.Filters.Set(\"bar\", \"baz\")\n\t\t\t\treturn q\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Arrange\n\t\t\twant := tc.setup()\n\n\t\t\t// Act\n\t\t\tq := NewQuery(tc.options...)\n\n\t\t\t// Assert\n\t\t\tuassert.Equal(t, want.Offset, q.Offset)\n\t\t\tuassert.Equal(t, want.Count, q.Count)\n\t\t\tuassert.Equal(t, want.Tag, q.Tag)\n\t\t\tuassert.Equal(t, want.Filters.Size(), q.Filters.Size())\n\n\t\t\twant.Filters.Iterate(\"\", \"\", func(k string, v interface{}) bool {\n\t\t\t\tgot, exists := q.Filters.Get(k)\n\t\t\t\tuassert.True(t, exists)\n\t\t\t\tif exists {\n\t\t\t\t\tuassert.Equal(t, fmt.Sprint(v), fmt.Sprint(got))\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EuaA/Dgg+hqv1QCbs2Cdx5b3cZq/Q61afAhEsAPuW4FMRmPfdN1y9ALUHpiKkjJ5Qs/ZBVihH8UHfSpghuetCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"debug","path":"gno.land/p/moul/debug","files":[{"name":"debug.gno","body":"// Package debug provides utilities for logging and displaying debug information\n// within Gno realms. It supports conditional rendering of logs and metadata,\n// toggleable via query parameters.\n//\n// Key Features:\n// - Log collection and display using Markdown formatting.\n// - Metadata display for realm path, address, and height.\n// - Collapsible debug section for cleaner presentation.\n// - Query-based debug toggle using `?debug=1`.\npackage debug\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/md\"\n\t\"gno.land/p/moul/mdtable\"\n\t\"gno.land/p/moul/realmpath\"\n)\n\n// Debug encapsulates debug information, including logs and metadata.\ntype Debug struct {\n\tLogs []string\n\tHideMetadata bool\n}\n\n// Log appends a new line of debug information to the Logs slice.\nfunc (d *Debug) Log(line string) {\n\td.Logs = append(d.Logs, line)\n}\n\n// Render generates the debug content as a collapsible Markdown section.\n// It conditionally renders logs and metadata if enabled via the `?debug=1` query parameter.\nfunc (d Debug) Render(path string) string {\n\tif realmpath.Parse(path).Query.Get(\"debug\") != \"1\" {\n\t\treturn \"\"\n\t}\n\n\tvar content string\n\n\tif d.Logs != nil {\n\t\tcontent += md.H3(\"Logs\")\n\t\tcontent += md.BulletList(d.Logs)\n\t}\n\n\tif !d.HideMetadata {\n\t\tcontent += md.H3(\"Metadata\")\n\t\ttable := mdtable.Table{\n\t\t\tHeaders: []string{\"Key\", \"Value\"},\n\t\t}\n\t\ttable.Append([]string{\"`std.CurrentRealm().PkgPath()`\", string(std.CurrentRealm().PkgPath())})\n\t\ttable.Append([]string{\"`std.CurrentRealm().Addr()`\", string(std.CurrentRealm().Addr())})\n\t\ttable.Append([]string{\"`std.PrevRealm().PkgPath()`\", string(std.PrevRealm().PkgPath())})\n\t\ttable.Append([]string{\"`std.PrevRealm().Addr()`\", string(std.PrevRealm().Addr())})\n\t\ttable.Append([]string{\"`std.GetHeight()`\", ufmt.Sprintf(\"%d\", std.GetHeight())})\n\t\ttable.Append([]string{\"`time.Now().Format(time.RFC3339)`\", time.Now().Format(time.RFC3339)})\n\t\tcontent += table.String()\n\t}\n\n\tif content == \"\" {\n\t\treturn \"\"\n\t}\n\n\treturn md.CollapsibleSection(\"debug\", content)\n}\n\n// Render displays metadata about the current realm but does not display logs.\n// This function uses a default Debug struct with metadata enabled and no logs.\nfunc Render(path string) string {\n\treturn Debug{}.Render(path)\n}\n\n// IsEnabled checks if the `?debug=1` query parameter is set in the given path.\n// Returns true if debugging is enabled, otherwise false.\nfunc IsEnabled(path string) bool {\n\treq := realmpath.Parse(path)\n\treturn req.Query.Get(\"debug\") == \"1\"\n}\n\n// ToggleURL modifies the given path's query string to toggle the `?debug=1` parameter.\n// If debugging is currently enabled, it removes the parameter.\n// If debugging is disabled, it adds the parameter.\nfunc ToggleURL(path string) string {\n\treq := realmpath.Parse(path)\n\tif IsEnabled(path) {\n\t\treq.Query.Del(\"debug\")\n\t} else {\n\t\treq.Query.Add(\"debug\", \"1\")\n\t}\n\treturn req.String()\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/p/moul/debug\"\n\nfunc main() {\n\tprintln(\"---\")\n\tprintln(debug.Render(\"\"))\n\tprintln(\"---\")\n\tprintln(debug.Render(\"?debug=1\"))\n\tprintln(\"---\")\n}\n\n// Output:\n// ---\n//\n// ---\n// \u003cdetails\u003e\u003csummary\u003edebug\u003c/summary\u003e\n//\n// ### Metadata\n// | Key | Value |\n// | --- | --- |\n// | `std.CurrentRealm().PkgPath()` | |\n// | `std.CurrentRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.PrevRealm().PkgPath()` | |\n// | `std.PrevRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.GetHeight()` | 123 |\n// | `time.Now().Format(time.RFC3339)` | 2009-02-13T23:31:30Z |\n//\n// \u003c/details\u003e\n//\n// ---\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport \"gno.land/p/moul/debug\"\n\nfunc main() {\n\tvar d debug.Debug\n\td.Log(\"hello world!\")\n\td.Log(\"foobar\")\n\tprintln(\"---\")\n\tprintln(d.Render(\"\"))\n\tprintln(\"---\")\n\tprintln(d.Render(\"?debug=1\"))\n\tprintln(\"---\")\n}\n\n// Output:\n// ---\n//\n// ---\n// \u003cdetails\u003e\u003csummary\u003edebug\u003c/summary\u003e\n//\n// ### Logs\n// - hello world!\n// - foobar\n// ### Metadata\n// | Key | Value |\n// | --- | --- |\n// | `std.CurrentRealm().PkgPath()` | |\n// | `std.CurrentRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.PrevRealm().PkgPath()` | |\n// | `std.PrevRealm().Addr()` | g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm |\n// | `std.GetHeight()` | 123 |\n// | `time.Now().Format(time.RFC3339)` | 2009-02-13T23:31:30Z |\n//\n// \u003c/details\u003e\n//\n// ---\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JXyZ38Qbq4gghac8UFFtQpgpBDptpmcsFe7g/ecOq96K15luGZ+w0UApmeexr8RerrYEW94QRov8r7tfY/w9Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"deep","path":"gno.land/r/demo/deep/very/deep","files":[{"name":"render.gno","body":"package deep\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"it works!\"\n\t} else {\n\t\treturn \"hi \" + path\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"18Zrww0cawxKuEad9UuTG345jPsaIetJHaIF7dzEHjPjpejcuf2pXWHihEhUMuf5yUmYilyXz/vIY9WWrR6ZCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"dice_roller","path":"gno.land/r/demo/games/dice_roller","files":[{"name":"dice_roller.gno","body":"package dice_roller\n\nimport (\n\t\"errors\"\n\t\"math/rand\"\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\ntype (\n\t// game represents a Dice Roller game between two players\n\tgame struct {\n\t\tplayer1, player2 std.Address\n\t\troll1, roll2 int\n\t}\n\n\t// player holds the information about each player including their stats\n\tplayer struct {\n\t\taddr std.Address\n\t\twins, losses, draws, points int\n\t}\n\n\t// leaderBoard is a slice of players, used to sort players by rank\n\tleaderBoard []player\n)\n\nconst (\n\t// Constants to represent game result outcomes\n\tongoing = iota\n\twin\n\tdraw\n\tloss\n)\n\nvar (\n\tgames avl.Tree // AVL tree for storing game states\n\tgameId seqid.ID // Sequence ID for games\n\n\tplayers avl.Tree // AVL tree for storing player data\n\n\tseed = uint64(entropy.New().Seed())\n\tr = rand.New(rand.NewPCG(seed, 0xdeadbeef))\n)\n\n// rollDice generates a random dice roll between 1 and 6\nfunc rollDice() int {\n\treturn r.IntN(6) + 1\n}\n\n// NewGame initializes a new game with the provided opponent's address\nfunc NewGame(addr std.Address) int {\n\tif !addr.IsValid() {\n\t\tpanic(\"invalid opponent's address\")\n\t}\n\n\tgames.Set(gameId.Next().String(), \u0026game{\n\t\tplayer1: std.PrevRealm().Addr(),\n\t\tplayer2: addr,\n\t})\n\n\treturn int(gameId)\n}\n\n// Play allows a player to roll the dice and updates the game state accordingly\nfunc Play(idx int) int {\n\tg, err := getGame(idx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\troll := rollDice() // Random the player's dice roll\n\n\t// Play the game and update the player's roll\n\tif err := g.play(std.PrevRealm().Addr(), roll); err != nil {\n\t\tpanic(err)\n\t}\n\n\t// If both players have rolled, update the results and leaderboard\n\tif g.isFinished() {\n\t\t// If the player is playing against themselves, no points are awarded\n\t\tif g.player1 == g.player2 {\n\t\t\treturn roll\n\t\t}\n\n\t\tplayer1 := getPlayer(g.player1)\n\t\tplayer2 := getPlayer(g.player2)\n\n\t\tif g.roll1 \u003e g.roll2 {\n\t\t\tplayer1.updateStats(win)\n\t\t\tplayer2.updateStats(loss)\n\t\t} else if g.roll2 \u003e g.roll1 {\n\t\t\tplayer2.updateStats(win)\n\t\t\tplayer1.updateStats(loss)\n\t\t} else {\n\t\t\tplayer1.updateStats(draw)\n\t\t\tplayer2.updateStats(draw)\n\t\t}\n\t}\n\n\treturn roll\n}\n\n// play processes a player's roll and updates their score\nfunc (g *game) play(player std.Address, roll int) error {\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\n\tif g.isFinished() {\n\t\treturn errors.New(\"game over\")\n\t}\n\n\tif player == g.player1 \u0026\u0026 g.roll1 == 0 {\n\t\tg.roll1 = roll\n\t\treturn nil\n\t}\n\n\tif player == g.player2 \u0026\u0026 g.roll2 == 0 {\n\t\tg.roll2 = roll\n\t\treturn nil\n\t}\n\n\treturn errors.New(\"already played\")\n}\n\n// isFinished checks if the game has ended\nfunc (g *game) isFinished() bool {\n\treturn g.roll1 != 0 \u0026\u0026 g.roll2 != 0\n}\n\n// checkResult returns the game status as a formatted string\nfunc (g *game) status() string {\n\tif !g.isFinished() {\n\t\treturn resultIcon(ongoing) + \" Game still in progress\"\n\t}\n\n\tif g.roll1 \u003e g.roll2 {\n\t\treturn resultIcon(win) + \" Player1 Wins !\"\n\t} else if g.roll2 \u003e g.roll1 {\n\t\treturn resultIcon(win) + \" Player2 Wins !\"\n\t} else {\n\t\treturn resultIcon(draw) + \" It's a Draw !\"\n\t}\n}\n\n// Render provides a summary of the current state of games and leader board\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(`# 🎲 **Dice Roller Game**\n\nWelcome to Dice Roller! Challenge your friends to a simple yet exciting dice rolling game. Roll the dice and see who gets the highest score !\n\n---\n\n## **How to Play**:\n1. **Create a game**: Challenge an opponent using [NewGame](./dice_roller$help\u0026func=NewGame)\n2. **Roll the dice**: Play your turn by rolling a dice using [Play](./dice_roller$help\u0026func=Play)\n\n---\n\n## **Scoring Rules**:\n- **Win** 🏆: +3 points\n- **Draw** 🤝: +1 point each\n- **Lose** ❌: No points\n- **Playing against yourself**: No points or stats changes for you\n\n---\n\n## **Recent Games**:\nBelow are the results from the most recent games. Up to 10 recent games are displayed\n\n| Game | Player 1 | 🎲 Roll 1 | Player 2 | 🎲 Roll 2 | 🏆 Winner |\n|------|----------|-----------|----------|-----------|-----------|\n`)\n\n\tmaxGames := 10\n\tfor n := int(gameId); n \u003e 0 \u0026\u0026 int(gameId)-n \u003c maxGames; n-- {\n\t\tg, err := getGame(n)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tsb.WriteString(strconv.Itoa(n) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player1) + \"\\\"\u003e\" + shortName(g.player1) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll1) + \" | \" +\n\t\t\t\"\u003cspan title=\\\"\" + string(g.player2) + \"\\\"\u003e\" + shortName(g.player2) + \"\u003c/span\u003e\" + \" | \" + diceIcon(g.roll2) + \" | \" +\n\t\t\tg.status() + \"\\n\")\n\t}\n\n\tsb.WriteString(`\n---\n\n## **Leaderboard**:\nThe top players are ranked by performance. Games played against oneself are not counted in the leaderboard\n\n| Rank | Player | Wins | Losses | Draws | Points |\n|------|-----------------------|------|--------|-------|--------|\n`)\n\n\tfor i, player := range getLeaderBoard() {\n\t\tsb.WriteString(ufmt.Sprintf(\"| %s | \u003cspan title=\\\"\"+string(player.addr)+\"\\\"\u003e**%s**\u003c/span\u003e | %d | %d | %d | %d |\\n\",\n\t\t\trankIcon(i+1),\n\t\t\tshortName(player.addr),\n\t\t\tplayer.wins,\n\t\t\tplayer.losses,\n\t\t\tplayer.draws,\n\t\t\tplayer.points,\n\t\t))\n\t}\n\n\tsb.WriteString(\"\\n---\\n**Good luck and have fun !** 🎉\")\n\treturn sb.String()\n}\n\n// shortName returns a shortened name for the given address\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n\n// getGame retrieves the game state by its ID\nfunc getGame(idx int) (*game, error) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\treturn nil, errors.New(\"game not found\")\n\t}\n\treturn v.(*game), nil\n}\n\n// updateResult updates the player's stats and points based on the game outcome\nfunc (p *player) updateStats(result int) {\n\tswitch result {\n\tcase win:\n\t\tp.wins++\n\t\tp.points += 3\n\tcase loss:\n\t\tp.losses++\n\tcase draw:\n\t\tp.draws++\n\t\tp.points++\n\t}\n}\n\n// getPlayer retrieves a player or initializes a new one if they don't exist\nfunc getPlayer(addr std.Address) *player {\n\tv, ok := players.Get(addr.String())\n\tif !ok {\n\t\tplayer := \u0026player{\n\t\t\taddr: addr,\n\t\t}\n\t\tplayers.Set(addr.String(), player)\n\t\treturn player\n\t}\n\n\treturn v.(*player)\n}\n\n// getLeaderBoard generates a leaderboard sorted by points\nfunc getLeaderBoard() leaderBoard {\n\tboard := leaderBoard{}\n\tplayers.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tplayer := value.(*player)\n\t\tboard = append(board, *player)\n\t\treturn false\n\t})\n\n\tsort.Sort(board)\n\n\treturn board\n}\n\n// Methods for sorting the leaderboard\nfunc (r leaderBoard) Len() int {\n\treturn len(r)\n}\n\nfunc (r leaderBoard) Less(i, j int) bool {\n\tif r[i].points != r[j].points {\n\t\treturn r[i].points \u003e r[j].points\n\t}\n\n\tif r[i].wins != r[j].wins {\n\t\treturn r[i].wins \u003e r[j].wins\n\t}\n\n\tif r[i].draws != r[j].draws {\n\t\treturn r[i].draws \u003e r[j].draws\n\t}\n\n\treturn false\n}\n\nfunc (r leaderBoard) Swap(i, j int) {\n\tr[i], r[j] = r[j], r[i]\n}\n"},{"name":"dice_roller_test.gno","body":"package dice_roller\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tplayer1 = testutils.TestAddress(\"alice\")\n\tplayer2 = testutils.TestAddress(\"bob\")\n\tunknownPlayer = testutils.TestAddress(\"unknown\")\n)\n\n// resetGameState resets the game state for testing\nfunc resetGameState() {\n\tgames = avl.Tree{}\n\tgameId = seqid.ID(0)\n\tplayers = avl.Tree{}\n}\n\n// TestNewGame tests the initialization of a new game\nfunc TestNewGame(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Verify that the game has been correctly initialized\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, player1.String(), g.player1.String())\n\turequire.Equal(t, player2.String(), g.player2.String())\n\turequire.Equal(t, 0, g.roll1)\n\turequire.Equal(t, 0, g.roll2)\n}\n\n// TestPlay tests the dice rolling functionality for both players\nfunc TestPlay(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Simulate rolling dice for player 1\n\troll1 := Play(gameID)\n\n\t// Verify player 1's roll\n\turequire.NotEqual(t, 0, g.roll1)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, 0, g.roll2) // Player 2 hasn't rolled yet\n\n\t// Simulate rolling dice for player 2\n\tstd.TestSetOrigCaller(player2)\n\troll2 := Play(gameID)\n\n\t// Verify player 2's roll\n\turequire.NotEqual(t, 0, g.roll2)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayAgainstSelf tests the scenario where a player plays against themselves\nfunc TestPlayAgainstSelf(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Simulate rolling dice twice by the same player\n\troll1 := Play(gameID)\n\troll2 := Play(gameID)\n\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\turequire.Equal(t, g.roll1, roll1)\n\turequire.Equal(t, g.roll2, roll2)\n}\n\n// TestPlayInvalidPlayer tests the scenario where an invalid player tries to play\nfunc TestPlayInvalidPlayer(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player1)\n\n\t// Attempt to play as an invalid player\n\tstd.TestSetOrigCaller(unknownPlayer)\n\turequire.PanicsWithMessage(t, \"invalid player\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayAlreadyPlayed tests the scenario where a player tries to play again after already playing\nfunc TestPlayAlreadyPlayed(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Player 1 rolls\n\tPlay(gameID)\n\n\t// Player 1 tries to roll again\n\turequire.PanicsWithMessage(t, \"already played\", func() {\n\t\tPlay(gameID)\n\t})\n}\n\n// TestPlayBeyondGameEnd tests that playing after both players have finished their rolls fails\nfunc TestPlayBeyondGameEnd(t *testing.T) {\n\tresetGameState()\n\n\tstd.TestSetOrigCaller(player1)\n\tgameID := NewGame(player2)\n\n\t// Play for both players\n\tstd.TestSetOrigCaller(player1)\n\tPlay(gameID)\n\tstd.TestSetOrigCaller(player2)\n\tPlay(gameID)\n\n\t// Check if the game is over\n\tg, err := getGame(gameID)\n\turequire.NoError(t, err)\n\n\t// Attempt to play more should fail\n\tstd.TestSetOrigCaller(player1)\n\turequire.PanicsWithMessage(t, \"game over\", func() {\n\t\tPlay(gameID)\n\t})\n}\n"},{"name":"icon.gno","body":"package dice_roller\n\nimport (\n\t\"strconv\"\n)\n\n// diceIcon returns an icon of the dice roll\nfunc diceIcon(roll int) string {\n\tswitch roll {\n\tcase 1:\n\t\treturn \"🎲1\"\n\tcase 2:\n\t\treturn \"🎲2\"\n\tcase 3:\n\t\treturn \"🎲3\"\n\tcase 4:\n\t\treturn \"🎲4\"\n\tcase 5:\n\t\treturn \"🎲5\"\n\tcase 6:\n\t\treturn \"🎲6\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// resultIcon returns the icon representing the result of a game\nfunc resultIcon(result int) string {\n\tswitch result {\n\tcase ongoing:\n\t\treturn \"🔄\"\n\tcase win:\n\t\treturn \"🏆\"\n\tcase loss:\n\t\treturn \"❌\"\n\tcase draw:\n\t\treturn \"🤝\"\n\tdefault:\n\t\treturn \"❓\"\n\t}\n}\n\n// rankIcon returns the icon for a player's rank\nfunc rankIcon(rank int) string {\n\tswitch rank {\n\tcase 1:\n\t\treturn \"🥇\"\n\tcase 2:\n\t\treturn \"🥈\"\n\tcase 3:\n\t\treturn \"🥉\"\n\tdefault:\n\t\treturn strconv.Itoa(rank)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JW/L/+65hZ14gTRFn8i8C+y3lGV0SrJFycPY5o28hdLHyje8AtLXDCf07zTm+lN6sKpQih4ZaysQgGhi0fzzCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"diff","path":"gno.land/p/demo/diff","files":[{"name":"diff.gno","body":"// The diff package implements the Myers diff algorithm to compute the edit distance\n// and generate a minimal edit script between two strings.\n//\n// Edit distance, also known as Levenshtein distance, is a measure of the similarity\n// between two strings. It is defined as the minimum number of single-character edits (insertions,\n// deletions, or substitutions) required to change one string into the other.\npackage diff\n\nimport (\n\t\"strings\"\n)\n\n// EditType represents the type of edit operation in a diff.\ntype EditType uint8\n\nconst (\n\t// EditKeep indicates that a character is unchanged in both strings.\n\tEditKeep EditType = iota\n\n\t// EditInsert indicates that a character was inserted in the new string.\n\tEditInsert\n\n\t// EditDelete indicates that a character was deleted from the old string.\n\tEditDelete\n)\n\n// Edit represent a single edit operation in a diff.\ntype Edit struct {\n\t// Type is the kind of edit operation.\n\tType EditType\n\n\t// Char is the character involved in the edit operation.\n\tChar rune\n}\n\n// MyersDiff computes the difference between two strings using Myers' diff algorithm.\n// It returns a slice of Edit operations that transform the old string into the new string.\n// This implementation finds the shortest edit script (SES) that represents the minimal\n// set of operations to transform one string into the other.\n//\n// The function handles both ASCII and non-ASCII characters correctly.\n//\n// Time complexity: O((N+M)D), where N and M are the lengths of the input strings,\n// and D is the size of the minimum edit script.\n//\n// Space complexity: O((N+M)D)\n//\n// In the worst case, where the strings are completely different, D can be as large as N+M,\n// leading to a time and space complexity of O((N+M)^2). However, for strings with many\n// common substrings, the performance is much better, often closer to O(N+M).\n//\n// Parameters:\n// - old: the original string.\n// - new: the modified string.\n//\n// Returns:\n// - A slice of Edit operations representing the minimum difference between the two strings.\nfunc MyersDiff(old, new string) []Edit {\n\toldRunes, newRunes := []rune(old), []rune(new)\n\tn, m := len(oldRunes), len(newRunes)\n\n\tif n == 0 \u0026\u0026 m == 0 {\n\t\treturn []Edit{}\n\t}\n\n\t// old is empty\n\tif n == 0 {\n\t\tedits := make([]Edit, m)\n\t\tfor i, r := range newRunes {\n\t\t\tedits[i] = Edit{Type: EditInsert, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tif m == 0 {\n\t\tedits := make([]Edit, n)\n\t\tfor i, r := range oldRunes {\n\t\t\tedits[i] = Edit{Type: EditDelete, Char: r}\n\t\t}\n\t\treturn edits\n\t}\n\n\tmax := n + m\n\tv := make([]int, 2*max+1)\n\tvar trace [][]int\nsearch:\n\tfor d := 0; d \u003c= max; d++ {\n\t\t// iterate through diagonals\n\t\tfor k := -d; k \u003c= d; k += 2 {\n\t\t\tvar x int\n\t\t\tif k == -d || (k != d \u0026\u0026 v[max+k-1] \u003c v[max+k+1]) {\n\t\t\t\tx = v[max+k+1] // move down\n\t\t\t} else {\n\t\t\t\tx = v[max+k-1] + 1 // move right\n\t\t\t}\n\t\t\ty := x - k\n\n\t\t\t// extend the path as far as possible with matching characters\n\t\t\tfor x \u003c n \u0026\u0026 y \u003c m \u0026\u0026 oldRunes[x] == newRunes[y] {\n\t\t\t\tx++\n\t\t\t\ty++\n\t\t\t}\n\n\t\t\tv[max+k] = x\n\n\t\t\t// check if we've reached the end of both strings\n\t\t\tif x == n \u0026\u0026 y == m {\n\t\t\t\ttrace = append(trace, append([]int(nil), v...))\n\t\t\t\tbreak search\n\t\t\t}\n\t\t}\n\t\ttrace = append(trace, append([]int(nil), v...))\n\t}\n\n\t// backtrack to construct the edit script\n\tedits := make([]Edit, 0, n+m)\n\tx, y := n, m\n\tfor d := len(trace) - 1; d \u003e= 0; d-- {\n\t\tvPrev := trace[d]\n\t\tk := x - y\n\t\tvar prevK int\n\t\tif k == -d || (k != d \u0026\u0026 vPrev[max+k-1] \u003c vPrev[max+k+1]) {\n\t\t\tprevK = k + 1\n\t\t} else {\n\t\t\tprevK = k - 1\n\t\t}\n\t\tprevX := vPrev[max+prevK]\n\t\tprevY := prevX - prevK\n\n\t\t// add keep edits for matching characters\n\t\tfor x \u003e prevX \u0026\u0026 y \u003e prevY {\n\t\t\tif x \u003e 0 \u0026\u0026 y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditKeep, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t\ty--\n\t\t}\n\t\tif y \u003e prevY {\n\t\t\tif y \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditInsert, Char: newRunes[y-1]}}, edits...)\n\t\t\t}\n\t\t\ty--\n\t\t} else if x \u003e prevX {\n\t\t\tif x \u003e 0 {\n\t\t\t\tedits = append([]Edit{{Type: EditDelete, Char: oldRunes[x-1]}}, edits...)\n\t\t\t}\n\t\t\tx--\n\t\t}\n\t}\n\n\treturn edits\n}\n\n// Format converts a slice of Edit operations into a human-readable string representation.\n// It groups consecutive edits of the same type and formats them as follows:\n// - Unchanged characters are left as-is\n// - Inserted characters are wrapped in [+...]\n// - Deleted characters are wrapped in [-...]\n//\n// This function is useful for visualizing the differences between two strings\n// in a compact and intuitive format.\n//\n// Parameters:\n// - edits: A slice of Edit operations, typically produced by MyersDiff\n//\n// Returns:\n// - A formatted string representing the diff\n//\n// Example output:\n//\n//\tFor the diff between \"abcd\" and \"acbd\", the output might be:\n//\t\"a[-b]c[+b]d\"\n//\n// Note:\n//\n//\tThe function assumes that the input slice of edits is in the correct order.\n//\tAn empty input slice will result in an empty string.\nfunc Format(edits []Edit) string {\n\tif len(edits) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar (\n\t\tresult strings.Builder\n\t\tcurrentType EditType\n\t\tcurrentChars strings.Builder\n\t)\n\n\tflushCurrent := func() {\n\t\tif currentChars.Len() \u003e 0 {\n\t\t\tswitch currentType {\n\t\t\tcase EditKeep:\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\tcase EditInsert:\n\t\t\t\tresult.WriteString(\"[+\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\tcase EditDelete:\n\t\t\t\tresult.WriteString(\"[-\")\n\t\t\t\tresult.WriteString(currentChars.String())\n\t\t\t\tresult.WriteByte(']')\n\t\t\t}\n\t\t\tcurrentChars.Reset()\n\t\t}\n\t}\n\n\tfor _, edit := range edits {\n\t\tif edit.Type != currentType {\n\t\t\tflushCurrent()\n\t\t\tcurrentType = edit.Type\n\t\t}\n\t\tcurrentChars.WriteRune(edit.Char)\n\t}\n\tflushCurrent()\n\n\treturn result.String()\n}\n"},{"name":"diff_test.gno","body":"package diff\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestMyersDiff(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\told string\n\t\tnew string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"No difference\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"abc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple insertion\",\n\t\t\told: \"ac\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"a[+b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple deletion\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"ac\",\n\t\t\texpected: \"a[-b]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Simple substitution\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"abd\",\n\t\t\texpected: \"ab[-c][+d]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Multiple changes\",\n\t\t\told: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tnew: \"The quick brown cat jumps over the lazy dog\",\n\t\t\texpected: \"The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Prefix and suffix\",\n\t\t\told: \"Hello, world!\",\n\t\t\tnew: \"Hello, beautiful world!\",\n\t\t\texpected: \"Hello, [+beautiful ]world!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Complete change\",\n\t\t\told: \"abcdef\",\n\t\t\tnew: \"ghijkl\",\n\t\t\texpected: \"[-abcdef][+ghijkl]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty strings\",\n\t\t\told: \"\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Old empty\",\n\t\t\told: \"\",\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"[+abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"New empty\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"\",\n\t\t\texpected: \"[-abc]\",\n\t\t},\n\t\t{\n\t\t\tname: \"non-ascii (Korean characters)\",\n\t\t\told: \"ASCII 문자가 아닌 것도 되나?\",\n\t\t\tnew: \"ASCII 문자가 아닌 것도 됨.\",\n\t\t\texpected: \"ASCII 문자가 아닌 것도 [-되나?][+됨.]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Emoji diff\",\n\t\t\told: \"Hello 👋 World 🌍\",\n\t\t\tnew: \"Hello 👋 Beautiful 🌸 World 🌍\",\n\t\t\texpected: \"Hello 👋 [+Beautiful 🌸 ]World 🌍\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed multibyte and ASCII\",\n\t\t\told: \"こんにちは World\",\n\t\t\tnew: \"こんばんは World\",\n\t\t\texpected: \"こん[-にち][+ばん]は World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Chinese characters\",\n\t\t\told: \"我喜欢编程\",\n\t\t\tnew: \"我喜欢看书和编程\",\n\t\t\texpected: \"我喜欢[+看书和]编程\",\n\t\t},\n\t\t{\n\t\t\tname: \"Combining characters\",\n\t\t\told: \"e\\u0301\", // é (e + ´)\n\t\t\tnew: \"e\\u0300\", // è (e + `)\n\t\t\texpected: \"e[-\\u0301][+\\u0300]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Right-to-Left languages\",\n\t\t\told: \"שלום\",\n\t\t\tnew: \"שלום עולם\",\n\t\t\texpected: \"שלום[+ עולם]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Normalization NFC and NFD\",\n\t\t\told: \"e\\u0301\", // NFD (decomposed)\n\t\t\tnew: \"\\u00e9\", // NFC (precomposed)\n\t\t\texpected: \"[-e\\u0301][+\\u00e9]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Case sensitivity\",\n\t\t\told: \"abc\",\n\t\t\tnew: \"Abc\",\n\t\t\texpected: \"[-a][+A]bc\",\n\t\t},\n\t\t{\n\t\t\tname: \"Surrogate pairs\",\n\t\t\told: \"Hello 🌍\",\n\t\t\tnew: \"Hello 🌎\",\n\t\t\texpected: \"Hello [-🌍][+🌎]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Control characters\",\n\t\t\told: \"Line1\\nLine2\",\n\t\t\tnew: \"Line1\\r\\nLine2\",\n\t\t\texpected: \"Line1[+\\r]\\nLine2\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed scripts\",\n\t\t\told: \"Hello नमस्ते こんにちは\",\n\t\t\tnew: \"Hello สวัสดี こんにちは\",\n\t\t\texpected: \"Hello [-नमस्ते][+สวัสดี] こんにちは\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unicode normalization\",\n\t\t\told: \"é\", // U+00E9 (precomposed)\n\t\t\tnew: \"e\\u0301\", // U+0065 U+0301 (decomposed)\n\t\t\texpected: \"[-é][+e\\u0301]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Directional marks\",\n\t\t\told: \"Hello\\u200Eworld\", // LTR mark\n\t\t\tnew: \"Hello\\u200Fworld\", // RTL mark\n\t\t\texpected: \"Hello[-\\u200E][+\\u200F]world\",\n\t\t},\n\t\t{\n\t\t\tname: \"Zero-width characters\",\n\t\t\told: \"ab\\u200Bc\", // Zero-width space\n\t\t\tnew: \"abc\",\n\t\t\texpected: \"ab[-\\u200B]c\",\n\t\t},\n\t\t{\n\t\t\tname: \"Worst-case scenario (completely different strings)\",\n\t\t\told: strings.Repeat(\"a\", 1000),\n\t\t\tnew: strings.Repeat(\"b\", 1000),\n\t\t\texpected: \"[-\" + strings.Repeat(\"a\", 1000) + \"][+\" + strings.Repeat(\"b\", 1000) + \"]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Very long strings\",\n\t\t\told: strings.Repeat(\"a\", 10000) + \"b\" + strings.Repeat(\"a\", 10000),\n\t\t\tnew: strings.Repeat(\"a\", 10000) + \"c\" + strings.Repeat(\"a\", 10000),\n\t\t\texpected: strings.Repeat(\"a\", 10000) + \"[-b][+c]\" + strings.Repeat(\"a\", 10000),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdiff := MyersDiff(tc.old, tc.new)\n\t\t\tresult := Format(diff)\n\t\t\tif result != tc.expected {\n\t\t\t\tt.Errorf(\"Expected: %s, got: %s\", tc.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZuhgJKDjEmL9/QJLbPgm0T6RyS48QT+/qysrY6NXoRxy0usjnQnrRtIJXVC9px2ItImQBZznTzx4guOP9fSPDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"disperse","path":"gno.land/r/demo/disperse","files":[{"name":"disperse.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\n// Get address of Disperse realm\nvar realmAddr = std.CurrentRealm().Addr()\n\n// DisperseUgnot parses receivers and amounts and sends out ugnot\n// The function will send out the coins to the addresses and return the leftover coins to the caller\n// if there are any to return\nfunc DisperseUgnot(addresses []std.Address, coins std.Coins) {\n\tcoinSent := std.GetOrigSend()\n\tcaller := std.PrevRealm().Addr()\n\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n\n\tif len(addresses) != len(coins) {\n\t\tpanic(ErrNumAddrValMismatch)\n\t}\n\n\tfor _, coin := range coins {\n\t\tif coin.Amount \u003c= 0 {\n\t\t\tpanic(ErrNegativeCoinAmount)\n\t\t}\n\n\t\tif banker.GetCoins(realmAddr).AmountOf(coin.Denom) \u003c coin.Amount {\n\t\t\tpanic(ErrMismatchBetweenSentAndParams)\n\t\t}\n\t}\n\n\t// Send coins\n\tfor i, _ := range addresses {\n\t\tbanker.SendCoins(realmAddr, addresses[i], std.NewCoins(coins[i]))\n\t}\n\n\t// Return possible leftover coins\n\tfor _, coin := range coinSent {\n\t\tleftoverAmt := banker.GetCoins(realmAddr).AmountOf(coin.Denom)\n\t\tif leftoverAmt \u003e 0 {\n\t\t\tsend := std.Coins{std.NewCoin(coin.Denom, leftoverAmt)}\n\t\t\tbanker.SendCoins(realmAddr, caller, send)\n\t\t}\n\t}\n}\n\n// DisperseGRC20 disperses tokens to multiple addresses\n// Note that it is necessary to approve the realm to spend the tokens before calling this function\n// see the corresponding filetests for examples\nfunc DisperseGRC20(addresses []std.Address, amounts []uint64, symbols []string) {\n\tcaller := std.PrevRealm().Addr()\n\n\tif (len(addresses) != len(amounts)) || (len(amounts) != len(symbols)) {\n\t\tpanic(ErrArgLenAndSentLenMismatch)\n\t}\n\n\tfor i := 0; i \u003c len(addresses); i++ {\n\t\ttokens.TransferFrom(symbols[i], caller, addresses[i], amounts[i])\n\t}\n}\n\n// DisperseGRC20String receives a string of addresses and a string of tokens\n// and parses them to be used in DisperseGRC20\nfunc DisperseGRC20String(addresses string, tokens string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, parsedSymbols, err := parseTokens(tokens)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tDisperseGRC20(parsedAddresses, parsedAmounts, parsedSymbols)\n}\n\n// DisperseUgnotString receives a string of addresses and a string of amounts\n// and parses them to be used in DisperseUgnot\nfunc DisperseUgnotString(addresses string, amounts string) {\n\tparsedAddresses, err := parseAddresses(addresses)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparsedAmounts, err := parseAmounts(amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tcoins := make(std.Coins, len(parsedAmounts))\n\tfor i, amount := range parsedAmounts {\n\t\tcoins[i] = std.NewCoin(\"ugnot\", amount)\n\t}\n\n\tDisperseUgnot(parsedAddresses, coins)\n}\n"},{"name":"doc.gno","body":"// Package disperse provides methods to disperse coins or GRC20 tokens among multiple addresses.\n//\n// The disperse package is an implementation of an existing service that allows users to send coins or GRC20 tokens to multiple addresses\n// on the Ethereum blockchain.\n//\n// Usage:\n// To use disperse, you can either use `DisperseUgnot` to send coins or `DisperseGRC20` to send GRC20 tokens to multiple addresses.\n//\n// Example:\n// Dispersing 200 coins to two addresses:\n// - DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n// Dispersing 200 worth of a GRC20 token \"TEST\" to two addresses:\n// - DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n//\n// Reference:\n// - [the original dispere app](https://disperse.app/)\n// - [the original disperse app on etherscan](https://etherscan.io/address/0xd152f549545093347a162dce210e7293f1452150#code)\n// - [the gno disperse web app](https://gno-disperse.netlify.app/)\npackage disperse // import \"gno.land/r/demo/disperse\"\n"},{"name":"errors.gno","body":"package disperse\n\nimport \"errors\"\n\nvar (\n\tErrNotEnoughCoin = errors.New(\"disperse: not enough coin sent in\")\n\tErrNumAddrValMismatch = errors.New(\"disperse: number of addresses and values to send doesn't match\")\n\tErrInvalidAddress = errors.New(\"disperse: invalid address\")\n\tErrNegativeCoinAmount = errors.New(\"disperse: coin amount cannot be negative\")\n\tErrMismatchBetweenSentAndParams = errors.New(\"disperse: mismatch between coins sent and params called\")\n\tErrArgLenAndSentLenMismatch = errors.New(\"disperse: mismatch between coins sent and args called\")\n)\n"},{"name":"util.gno","body":"package disperse\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n)\n\nfunc parseAddresses(addresses string) ([]std.Address, error) {\n\tvar ret []std.Address\n\n\tfor _, str := range strings.Split(addresses, \",\") {\n\t\taddr := std.Address(str)\n\t\tif !addr.IsValid() {\n\t\t\treturn nil, ErrInvalidAddress\n\t\t}\n\n\t\tret = append(ret, addr)\n\t}\n\n\treturn ret, nil\n}\n\nfunc splitString(input string) (string, string) {\n\tvar pos int\n\tfor i, char := range input {\n\t\tif !unicode.IsDigit(char) {\n\t\t\tpos = i\n\t\t\tbreak\n\t\t}\n\t}\n\treturn input[:pos], input[pos:]\n}\n\nfunc parseTokens(tokens string) ([]uint64, []string, error) {\n\tvar amounts []uint64\n\tvar symbols []string\n\n\tfor _, token := range strings.Split(tokens, \",\") {\n\t\tamountStr, symbol := splitString(token)\n\t\tamount, _ := strconv.Atoi(amountStr)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tamounts = append(amounts, uint64(amount))\n\t\tsymbols = append(symbols, symbol)\n\t}\n\n\treturn amounts, symbols, nil\n}\n\nfunc parseAmounts(amounts string) ([]int64, error) {\n\tvar ret []int64\n\n\tfor _, amt := range strings.Split(amounts, \",\") {\n\t\tamount, _ := strconv.Atoi(amt)\n\t\tif amount \u003c 0 {\n\t\t\treturn nil, ErrNegativeCoinAmount\n\t\t}\n\n\t\tret = append(ret, int64(amount))\n\t}\n\n\treturn ret, nil\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 200ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 200}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 200ugnot\n// main after:\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tmainbal := banker.GetCoins(mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 300}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n\n\tmainbal = banker.GetCoins(mainaddr)\n\tprintln(\"main after:\", mainbal)\n}\n\n// Output:\n// main before: 300ugnot\n// main after: 100ugnot\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\tbanker.SendCoins(mainaddr, disperseAddr, std.Coins{{\"ugnot\", 100}})\n\tdisperse.DisperseUgnotString(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150,50\")\n}\n\n// Error:\n// disperse: mismatch between coins sent and params called\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test\", \"TEST\", 4, 0, 0)\n\ttokens.Mint(\"TEST\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"150TEST,50TEST\")\n\n\tmainbal = tokens.BalanceOf(\"TEST\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 200\n// main after: 0\n// beneficiary1: 150\n// beneficiary2: 50\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/main\n\n// SEND: 300ugnot\n\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/disperse\"\n\ttokens \"gno.land/r/demo/grc20factory\"\n)\n\nfunc main() {\n\tdisperseAddr := std.DerivePkgAddr(\"gno.land/r/demo/disperse\")\n\tmainaddr := std.DerivePkgAddr(\"gno.land/r/demo/main\")\n\tbeneficiary1 := std.Address(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0\")\n\tbeneficiary2 := std.Address(\"g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\")\n\n\tstd.TestSetOrigPkgAddr(disperseAddr)\n\tstd.TestSetOrigCaller(mainaddr)\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\ttokens.New(\"test1\", \"TEST1\", 4, 0, 0)\n\ttokens.Mint(\"TEST1\", mainaddr, 200)\n\ttokens.New(\"test2\", \"TEST2\", 4, 0, 0)\n\ttokens.Mint(\"TEST2\", mainaddr, 200)\n\n\tmainbal := tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main before:\", mainbal)\n\n\ttokens.Approve(\"TEST1\", disperseAddr, 200)\n\ttokens.Approve(\"TEST2\", disperseAddr, 200)\n\n\tdisperse.DisperseGRC20String(\"g1dmt3sa5ucvecxuhf3j6ne5r0e3z4x7h6c03xc0,g1akeqsvhucjt8gf5yupyzjxsjd29wv8fayng37c\", \"200TEST1,200TEST2\")\n\n\tmainbal = tokens.BalanceOf(\"TEST1\", mainaddr) + tokens.BalanceOf(\"TEST2\", mainaddr)\n\tprintln(\"main after:\", mainbal)\n\tben1bal := tokens.BalanceOf(\"TEST1\", beneficiary1) + tokens.BalanceOf(\"TEST2\", beneficiary1)\n\tprintln(\"beneficiary1:\", ben1bal)\n\tben2bal := tokens.BalanceOf(\"TEST1\", beneficiary2) + tokens.BalanceOf(\"TEST2\", beneficiary2)\n\tprintln(\"beneficiary2:\", ben2bal)\n}\n\n// Output:\n// main before: 400\n// main after: 0\n// beneficiary1: 200\n// beneficiary2: 200\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HCJqmMtPHyb3D77DzbuXDNURm9whjYzEKuvjAZkYZZI/LTN8sZ6tPsc7xiGZmsVC/PTdVU3+s0VMZ+gAXnt5Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"docs","path":"gno.land/r/docs","files":[{"name":"docs.gno","body":"package docs\n\nfunc Render(_ string) string {\n\treturn `# Gno Examples Documentation\n\nWelcome to the Gno examples documentation index.\nExplore various examples to learn more about Gno functionality and usage.\n\n## Examples\n\n- [Hello World](/r/docs/hello) - A simple introductory example.\n- [Adder](/r/docs/adder) - An interactive example to update a number with transactions.\n- [Source](/r/docs/source) - View realm source code.\n- [Buttons](/r/docs/buttons) - Add buttons to your realm's render.\n- [AVL Pager](/r/docs/avl_pager) - Paginate through AVL tree items. \n- [Img Embed](/r/docs/img_embed) - Demonstrates how to embed an image.\n- ...\n\u003c!-- meta issue with suggestions: https://github.com/gnolang/gno/issues/3292 --\u003e\n\n## Other resources\n\n- [Official documentation](https://github.com/gnolang/gno/tree/master/docs) \u003c!-- should be /docs with gnoweb embedding the docs/ folder. --\u003e\n`\n}\n"},{"name":"docs_test.gno","body":"package docs\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRenderHome(t *testing.T) {\n\toutput := Render(\"\")\n\n\t// Check for the presence of key sections\n\tif !contains(output, \"# Gno Examples Documentation\") {\n\t\tt.Errorf(\"Render output is missing the title.\")\n\t}\n\tif !contains(output, \"Official documentation\") {\n\t\tt.Errorf(\"Render output is missing the official documentation link.\")\n\t}\n}\n\nfunc contains(s, substr string) bool {\n\treturn strings.Index(s, substr) \u003e= 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oZEVLW9rZsYoAQuWaXoPI74bOpKzL+QRBfvI45hy0fgmTPx39NfvWrJCvppmOhOEx0yOM3/qa2Lchqkuv2BQDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"dom","path":"gno.land/p/demo/dom","files":[{"name":"dom.gno","body":"// XXX This is only used for testing in ./tests.\n// Otherwise this package is deprecated.\n// TODO: replace with a package that is supported, and delete this.\n\npackage dom\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype Plot struct {\n\tName string\n\tPosts avl.Tree // postsCtr -\u003e *Post\n\tPostsCtr int\n}\n\nfunc (plot *Plot) AddPost(title string, body string) {\n\tctr := plot.PostsCtr\n\tplot.PostsCtr++\n\tkey := strconv.Itoa(ctr)\n\tpost := \u0026Post{\n\t\tTitle: title,\n\t\tBody: body,\n\t}\n\tplot.Posts.Set(key, post)\n}\n\nfunc (plot *Plot) String() string {\n\tstr := \"# [plot] \" + plot.Name + \"\\n\"\n\tif plot.Posts.Size() \u003e 0 {\n\t\tplot.Posts.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Post).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Post struct {\n\tTitle string\n\tBody string\n\tComments avl.Tree\n}\n\nfunc (post *Post) String() string {\n\tstr := \"## \" + post.Title + \"\\n\"\n\tstr += \"\"\n\tstr += post.Body\n\tif post.Comments.Size() \u003e 0 {\n\t\tpost.Comments.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tstr += \"\\n\"\n\t\t\tstr += value.(*Comment).String()\n\t\t\treturn false\n\t\t})\n\t}\n\treturn str\n}\n\ntype Comment struct {\n\tCreator string\n\tBody string\n}\n\nfunc (cmm Comment) String() string {\n\treturn cmm.Body + \" - @\" + cmm.Creator + \"\\n\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U4tepLldn4RKkf7sl9ei9hyfddOyFnSz4G0S82FbVpLX9Em6CKRup169l/U7o2ztb5O3x711zqfRDlRHoddHBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"echo","path":"gno.land/r/demo/echo","files":[{"name":"echo.gno","body":"package echo\n\n/*\n * This realm echoes the `path` argument it received.\n * Can be used by developers as a simple endpoint to test\n * forbidden characters, for pentesting or simply to\n * test it works.\n *\n * See also r/demo/print (to print various thing like user address)\n */\nfunc Render(path string) string {\n\treturn path\n}\n"},{"name":"echo_test.gno","body":"package echo\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc Test(t *testing.T) {\n\turequire.Equal(t, \"aa\", Render(\"aa\"))\n\turequire.Equal(t, \"\", Render(\"\"))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ObTlUhJDWDVncVii3FN5K6J9orA+UllzkXZqak661CN9wZsoRy9a3LB6f78+hZCo8zZTiyLliuIcYR4vRHE4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"emit","path":"gno.land/r/demo/emit","files":[{"name":"emit.gno","body":"// Package emit demonstrates how to use the std.Emit() function\n// to emit Gno events that can be used to track data changes off-chain.\n// std.Emit is variadic; apart from the event name, it can take in any number of key-value pairs to emit.\npackage emit\n\nimport (\n\t\"std\"\n)\n\nfunc Emit(value string) {\n\tstd.Emit(\"EventName\", \"key\", value)\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/demo/emit\"\n\nfunc main() {\n\temit.Emit(\"foo\")\n\temit.Emit(\"bar\")\n}\n\n// Events:\n// [\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"foo\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// },\n// {\n// \"type\": \"EventName\",\n// \"attrs\": [\n// {\n// \"key\": \"key\",\n// \"value\": \"bar\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/demo/emit\",\n// \"func\": \"Emit\"\n// }\n// ]\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SbHs1n24Ihp5FtaAQbJ8jefPRLzrN+2Mwz+Z1+NoLPFH01MdwrMziZ7KKznXag7jmL2O4xZGq15jfGIVoMfgDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"entropy","path":"gno.land/p/demo/entropy","files":[{"name":"entropy.gno","body":"// Entropy generates fully deterministic, cost-effective, and hard to guess\n// numbers.\n//\n// It is designed both for single-usage, like seeding math/rand or for being\n// reused which increases the entropy and its cost effectiveness.\n//\n// Disclaimer: this package is unsafe and won't prevent others to guess values\n// in advance.\n//\n// It uses the Bernstein's hash djb2 to be CPU-cycle efficient.\npackage entropy\n\nimport (\n\t\"math\"\n\t\"std\"\n\t\"time\"\n)\n\ntype Instance struct {\n\tvalue uint32\n}\n\nfunc New() *Instance {\n\tr := Instance{value: 5381}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc FromSeed(seed uint32) *Instance {\n\tr := Instance{value: seed}\n\tr.addEntropy()\n\treturn \u0026r\n}\n\nfunc (i *Instance) Seed() uint32 {\n\treturn i.value\n}\n\nfunc (i *Instance) djb2String(input string) {\n\tfor _, c := range input {\n\t\ti.djb2Uint32(uint32(c))\n\t}\n}\n\n// super fast random algorithm.\n// http://www.cse.yorku.ca/~oz/hash.html\nfunc (i *Instance) djb2Uint32(input uint32) {\n\ti.value = (i.value \u003c\u003c 5) + i.value + input\n}\n\n// AddEntropy uses various runtime variables to add entropy to the existing seed.\nfunc (i *Instance) addEntropy() {\n\t// FIXME: reapply the 5381 initial value?\n\n\t// inherit previous entropy\n\t// nothing to do\n\n\t// handle callers\n\t{\n\t\tcaller1 := std.GetCallerAt(1).String()\n\t\ti.djb2String(caller1)\n\t\tcaller2 := std.GetCallerAt(2).String()\n\t\ti.djb2String(caller2)\n\t}\n\n\t// height\n\t{\n\t\theight := std.GetHeight()\n\t\tif height \u003e= math.MaxUint32 {\n\t\t\theight -= math.MaxUint32\n\t\t}\n\t\ti.djb2Uint32(uint32(height))\n\t}\n\n\t// time\n\t{\n\t\tsecs := time.Now().Second()\n\t\ti.djb2Uint32(uint32(secs))\n\t\tnsecs := time.Now().Nanosecond()\n\t\ti.djb2Uint32(uint32(nsecs))\n\t}\n\n\t// FIXME: compute other hard-to-guess but deterministic variables, like real gas?\n}\n\nfunc (i *Instance) Value() uint32 {\n\ti.addEntropy()\n\treturn i.value\n}\n\nfunc (i *Instance) Value64() uint64 {\n\ti.addEntropy()\n\thigh := i.value\n\ti.addEntropy()\n\n\treturn (uint64(high) \u003c\u003c 32) | uint64(i.value)\n}\n"},{"name":"entropy_test.gno","body":"package entropy\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n)\n\nfunc TestInstance(t *testing.T) {\n\tinstance := New()\n\tif instance == nil {\n\t\tt.Errorf(\"instance should not be nil\")\n\t}\n}\n\nfunc TestInstanceValue(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc TestInstanceValue64(t *testing.T) {\n\tbaseEntropy := New()\n\tbaseResult := computeValue64(t, baseEntropy)\n\n\tsameHeightEntropy := New()\n\tsameHeightResult := computeValue64(t, sameHeightEntropy)\n\n\tif baseResult != sameHeightResult {\n\t\tt.Errorf(\"should have the same result: new=%s, base=%s\", sameHeightResult, baseResult)\n\t}\n\n\tstd.TestSkipHeights(1)\n\tdifferentHeightEntropy := New()\n\tdifferentHeightResult := computeValue64(t, differentHeightEntropy)\n\n\tif baseResult == differentHeightResult {\n\t\tt.Errorf(\"should have different result: new=%s, base=%s\", differentHeightResult, baseResult)\n\t}\n}\n\nfunc computeValue(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n\nfunc computeValue64(t *testing.T, r *Instance) string {\n\tt.Helper()\n\n\tout := \"\"\n\tfor i := 0; i \u003c 10; i++ {\n\t\tval := int(r.Value64())\n\t\tout += strconv.Itoa(val) + \" \"\n\t}\n\n\treturn out\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/entropy\"\n)\n\nfunc main() {\n\t// initial\n\tprintln(\"---\")\n\tr := entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value64())\n\n\t// should be the same\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value64())\n\n\tstd.TestSkipHeights(1)\n\tprintln(\"---\")\n\tr = entropy.New()\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value())\n\tprintln(r.Value64())\n}\n\n// Output:\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// 6353385488959065197\n// ---\n// 4129293727\n// 2141104956\n// 1950222777\n// 3348280598\n// 438354259\n// 6353385488959065197\n// ---\n// 49506731\n// 1539580078\n// 2695928529\n// 1895482388\n// 3462727799\n// 16745038698684748445\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WHjyziAuT92wMV2nKKa7O0om5vUsnWCUIwp1fcSpue9De0gk8m5O10GrCN9UmJxrG/bE9J+0vVTubsp8w1B2Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"eval","path":"gno.land/r/demo/math_eval","files":[{"name":"math_eval.gno","body":"// eval realm is capable of evaluating 32-bit integer\n// expressions as they would appear in Go. For example:\n// /r/demo/math_eval:(4+12)/2-1+11*15\npackage eval\n\nimport (\n\tevalint32 \"gno.land/p/demo/math_eval/int32\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(p string) string {\n\tif len(p) == 0 {\n\t\treturn `\nevaluates 32-bit integer expressions. for example:\n\t\t\n[(4+12)/2-1+11*15](/r/demo/math_eval:(4+12)/2-1+11*15)\n\n`\n\t}\n\texpr, err := evalint32.Parse(p)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\tres, err := evalint32.Eval(expr, nil)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\treturn ufmt.Sprintf(\"%s = %d\", p, res)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aqzovMFQQUv1xzvWLyzibFlJO8wGoXlTknoQYhkMpCdBI+NQAl2RVsMlB5Lwth/0CPi84TyoI7LR06//xqM1Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"events","path":"gno.land/r/gnoland/events","files":[{"name":"errors.gno","body":"package events\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n)\n\nvar (\n\tErrEmptyName = errors.New(\"event name cannot be empty\")\n\tErrNoSuchID = errors.New(\"event with specified ID does not exist\")\n\tErrMinWidgetSize = errors.New(\"you need to request at least 1 event to render\")\n\tErrMaxWidgetSize = errors.New(\"maximum number of events in widget is\" + strconv.Itoa(MaxWidgetSize))\n\tErrDescriptionTooLong = errors.New(\"event description is too long\")\n\tErrInvalidStartTime = errors.New(\"invalid start time format\")\n\tErrInvalidEndTime = errors.New(\"invalid end time format\")\n\tErrEndBeforeStart = errors.New(\"end time cannot be before start time\")\n\tErrStartEndTimezonemMismatch = errors.New(\"start and end timezones are not the same\")\n)\n"},{"name":"events.gno","body":"// Package events allows you to upload data about specific IRL/online events\n// It includes dynamic support for updating rendering events based on their\n// status, ie if they are upcoming, in progress, or in the past.\npackage events\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ownable/exts/authorizable\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype (\n\tEvent struct {\n\t\tid string\n\t\tname string // name of event\n\t\tdescription string // short description of event\n\t\tlink string // link to auth corresponding web2 page, ie eventbrite/luma or conference page\n\t\tlocation string // location of the event\n\t\tstartTime time.Time // given in RFC3339\n\t\tendTime time.Time // end time of the event, given in RFC3339\n\t}\n\n\teventsSlice []*Event\n)\n\nvar (\n\tsu = std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\") // @leohhhn\n\tAuth = authorizable.NewAuthorizableWithAddress(su)\n\n\tevents = make(eventsSlice, 0) // sorted\n\tidCounter seqid.ID\n)\n\nconst (\n\tmaxDescLength = 100\n\tEventAdded = \"EventAdded\"\n\tEventDeleted = \"EventDeleted\"\n\tEventEdited = \"EventEdited\"\n)\n\n// AddEvent adds auth new event\n// Start time \u0026 end time need to be specified in RFC3339, ie 2024-08-08T12:00:00+02:00\nfunc AddEvent(name, description, link, location, startTime, endTime string) (string, error) {\n\tAuth.AssertOnAuthList()\n\n\tif strings.TrimSpace(name) == \"\" {\n\t\treturn \"\", ErrEmptyName\n\t}\n\n\tif len(description) \u003e maxDescLength {\n\t\treturn \"\", ufmt.Errorf(\"%s: provided length is %d, maximum is %d\", ErrDescriptionTooLong, len(description), maxDescLength)\n\t}\n\n\t// Parse times\n\tst, et, err := parseTimes(startTime, endTime)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tid := idCounter.Next().String()\n\te := \u0026Event{\n\t\tid: id,\n\t\tname: name,\n\t\tdescription: description,\n\t\tlink: link,\n\t\tlocation: location,\n\t\tstartTime: st,\n\t\tendTime: et,\n\t}\n\n\tevents = append(events, e)\n\tsort.Sort(events)\n\n\tstd.Emit(EventAdded,\n\t\t\"id\", e.id,\n\t)\n\n\treturn id, nil\n}\n\n// DeleteEvent deletes an event with auth given ID\nfunc DeleteEvent(id string) {\n\tAuth.AssertOnAuthList()\n\n\te, idx, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tevents = append(events[:idx], events[idx+1:]...)\n\n\tstd.Emit(EventDeleted,\n\t\t\"id\", e.id,\n\t)\n}\n\n// EditEvent edits an event with auth given ID\n// It only updates values corresponding to non-empty arguments sent with the call\n// Note: if you need to update the start time or end time, you need to provide both every time\nfunc EditEvent(id string, name, description, link, location, startTime, endTime string) {\n\tAuth.AssertOnAuthList()\n\n\te, _, err := GetEventByID(id)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Set only valid values\n\tif strings.TrimSpace(name) != \"\" {\n\t\te.name = name\n\t}\n\n\tif strings.TrimSpace(description) != \"\" {\n\t\te.description = description\n\t}\n\n\tif strings.TrimSpace(link) != \"\" {\n\t\te.link = link\n\t}\n\n\tif strings.TrimSpace(location) != \"\" {\n\t\te.location = location\n\t}\n\n\tif strings.TrimSpace(startTime) != \"\" || strings.TrimSpace(endTime) != \"\" {\n\t\tst, et, err := parseTimes(startTime, endTime)\n\t\tif err != nil {\n\t\t\tpanic(err) // need to also revert other state changes\n\t\t}\n\n\t\toldStartTime := e.startTime\n\t\te.startTime = st\n\t\te.endTime = et\n\n\t\t// If sort order was disrupted, sort again\n\t\tif oldStartTime != e.startTime {\n\t\t\tsort.Sort(events)\n\t\t}\n\t}\n\n\tstd.Emit(EventEdited,\n\t\t\"id\", e.id,\n\t)\n}\n\nfunc GetEventByID(id string) (*Event, int, error) {\n\tfor i, event := range events {\n\t\tif event.id == id {\n\t\t\treturn event, i, nil\n\t\t}\n\t}\n\n\treturn nil, -1, ErrNoSuchID\n}\n\n// Len returns the length of the slice\nfunc (m eventsSlice) Len() int {\n\treturn len(m)\n}\n\n// Less compares the startTime fields of two elements\n// In this case, events will be sorted by largest startTime first (upcoming \u003e past)\nfunc (m eventsSlice) Less(i, j int) bool {\n\treturn m[i].startTime.After(m[j].startTime)\n}\n\n// Swap swaps two elements in the slice\nfunc (m eventsSlice) Swap(i, j int) {\n\tm[i], m[j] = m[j], m[i]\n}\n\n// parseTimes parses the start and end time for an event and checks for possible errors\nfunc parseTimes(startTime, endTime string) (time.Time, time.Time, error) {\n\tst, err := time.Parse(time.RFC3339, startTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidStartTime, err.Error())\n\t}\n\n\tet, err := time.Parse(time.RFC3339, endTime)\n\tif err != nil {\n\t\treturn time.Time{}, time.Time{}, ufmt.Errorf(\"%s: %s\", ErrInvalidEndTime, err.Error())\n\t}\n\n\tif et.Before(st) {\n\t\treturn time.Time{}, time.Time{}, ErrEndBeforeStart\n\t}\n\n\t_, stOffset := st.Zone()\n\t_, etOffset := et.Zone()\n\tif stOffset != etOffset {\n\t\treturn time.Time{}, time.Time{}, ErrStartEndTimezonemMismatch\n\t}\n\n\treturn st, et, nil\n}\n"},{"name":"events_test.gno","body":"package events\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tsuRealm = std.NewUserRealm(su)\n\n\tnow = \"2009-02-13T23:31:30Z\" // time.Now() is hardcoded to this value in the gno test machine currently\n\tparsedTimeNow, _ = time.Parse(time.RFC3339, now)\n)\n\nfunc TestAddEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 1\", \"this event is upcoming\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"Event 1\") {\n\t\tt.Fatalf(\"Expected to find Event 1 in render\")\n\t}\n\n\te2Start := parsedTimeNow.Add(-time.Hour * 24 * 5)\n\te2End := e2Start.Add(time.Hour * 4)\n\n\tAddEvent(\"Event 2\", \"this event is in the past\", \"gno.land\", \"gnome land\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\n\tgot = renderHome(false)\n\n\tupcomingPos := strings.Index(got, \"## Upcoming events\")\n\tpastPos := strings.Index(got, \"## Past events\")\n\n\te1Pos := strings.Index(got, \"Event 1\")\n\te2Pos := strings.Index(got, \"Event 2\")\n\n\t// expected index ordering: upcoming \u003c e1 \u003c past \u003c e2\n\tif e1Pos \u003c upcomingPos || e1Pos \u003e pastPos {\n\t\tt.Fatalf(\"Expected to find Event 1 in Upcoming events\")\n\t}\n\n\tif e2Pos \u003c upcomingPos || e2Pos \u003c pastPos || e2Pos \u003c e1Pos {\n\t\tt.Fatalf(\"Expected to find Event 2 on auth different pos\")\n\t}\n\n\t// larger index =\u003e smaller startTime (future =\u003e past)\n\tif events[0].startTime.Unix() \u003c events[1].startTime.Unix() {\n\t\tt.Fatalf(\"expected ordering to be different\")\n\t}\n}\n\nfunc TestAddEventErrors(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t_, err := AddEvent(\"\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorIs(t, err, ErrEmptyName)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:30:31Z\")\n\tuassert.ErrorIs(t, err, ErrEndBeforeStart)\n\n\t_, err = AddEvent(\"sample name\", \"sample desc\", \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31+06:00\", \"2009-02-13T23:33:31+02:00\")\n\tuassert.ErrorIs(t, err, ErrStartEndTimezonemMismatch)\n\n\ttooLongDesc := `Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean ma`\n\t_, err = AddEvent(\"sample name\", tooLongDesc, \"gno.land\", \"gnome land\", \"2009-02-13T23:31:31Z\", \"2009-02-13T23:33:31Z\")\n\tuassert.ErrorContains(t, err, ErrDescriptionTooLong.Error())\n}\n\nfunc TestDeleteEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", \"gnome land\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tgot := renderHome(false)\n\n\tif !strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Expected to find ToDelete event in render\")\n\t}\n\n\tDeleteEvent(id)\n\tgot = renderHome(false)\n\n\tif strings.Contains(got, \"ToDelete\") {\n\t\tt.Fatalf(\"Did not expect to find ToDelete event in render\")\n\t}\n}\n\nfunc TestEditEvent(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\tloc := \"gnome land\"\n\n\tid, _ := AddEvent(\"ToDelete\", \"description\", \"gno.land\", loc, e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\n\tnewName := \"New Name\"\n\tnewDesc := \"Normal description\"\n\tnewLink := \"new Link\"\n\tnewST := e1Start.Add(time.Hour)\n\tnewET := newST.Add(time.Hour)\n\n\tEditEvent(id, newName, newDesc, newLink, \"\", newST.Format(time.RFC3339), newET.Format(time.RFC3339))\n\tedited, _, _ := GetEventByID(id)\n\n\t// Check updated values\n\tuassert.Equal(t, edited.name, newName)\n\tuassert.Equal(t, edited.description, newDesc)\n\tuassert.Equal(t, edited.link, newLink)\n\tuassert.True(t, edited.startTime.Equal(newST))\n\tuassert.True(t, edited.endTime.Equal(newET))\n\n\t// Check if the old values are the same\n\tuassert.Equal(t, edited.location, loc)\n}\n\nfunc TestInvalidEdit(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchID.Error(), func() {\n\t\tEditEvent(\"123123\", \"\", \"\", \"\", \"\", \"\", \"\")\n\t})\n}\n\nfunc TestParseTimes(t *testing.T) {\n\t// times not provided\n\t// end time before start time\n\t// timezone Missmatch\n\n\t_, _, err := parseTimes(\"\", \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidStartTime.Error())\n\n\t_, _, err = parseTimes(now, \"\")\n\tuassert.ErrorContains(t, err, ErrInvalidEndTime.Error())\n\n\t_, _, err = parseTimes(\"2009-02-13T23:30:30Z\", \"2009-02-13T21:30:30Z\")\n\tuassert.ErrorContains(t, err, ErrEndBeforeStart.Error())\n\n\t_, _, err = parseTimes(\"2009-02-10T23:30:30+02:00\", \"2009-02-13T21:30:33+05:00\")\n\tuassert.ErrorContains(t, err, ErrStartEndTimezonemMismatch.Error())\n}\n\nfunc TestRenderEventWidget(t *testing.T) {\n\tstd.TestSetOrigCaller(su)\n\tstd.TestSetRealm(suRealm)\n\n\t// No events yet\n\tevents = nil\n\tout, err := RenderEventWidget(1)\n\tuassert.NoError(t, err)\n\tuassert.Equal(t, out, \"No events.\")\n\n\t// Too many events\n\tout, err = RenderEventWidget(MaxWidgetSize + 1)\n\tuassert.ErrorIs(t, err, ErrMaxWidgetSize)\n\n\t// Too little events\n\tout, err = RenderEventWidget(0)\n\tuassert.ErrorIs(t, err, ErrMinWidgetSize)\n\n\t// Ordering \u0026 if requested amt is larger than the num of events that exist\n\te1Start := parsedTimeNow.Add(time.Hour * 24 * 5)\n\te1End := e1Start.Add(time.Hour * 4)\n\n\te2Start := parsedTimeNow.Add(time.Hour * 24 * 10) // event 2 is after event 1\n\te2End := e2Start.Add(time.Hour * 4)\n\n\t_, err = AddEvent(\"Event 1\", \"description\", \"gno.land\", \"loc\", e1Start.Format(time.RFC3339), e1End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\t_, err = AddEvent(\"Event 2\", \"description\", \"gno.land\", \"loc\", e2Start.Format(time.RFC3339), e2End.Format(time.RFC3339))\n\turequire.NoError(t, err)\n\n\tout, err = RenderEventWidget(MaxWidgetSize)\n\turequire.NoError(t, err)\n\n\tuniqueSequence := \"- [\" // sequence that is displayed once per each event as per the RenderEventWidget function\n\tuassert.Equal(t, 2, strings.Count(out, uniqueSequence))\n\n\tuassert.True(t, strings.Index(out, \"Event 1\") \u003e strings.Index(out, \"Event 2\"))\n}\n"},{"name":"render.gno","body":"package events\n\nimport (\n\t\"bytes\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tMaxWidgetSize = 5\n)\n\n// RenderEventWidget shows up to eventsToRender of the latest events to a caller\nfunc RenderEventWidget(eventsToRender int) (string, error) {\n\tnumOfEvents := len(events)\n\tif numOfEvents == 0 {\n\t\treturn \"No events.\", nil\n\t}\n\n\tif eventsToRender \u003e MaxWidgetSize {\n\t\treturn \"\", ErrMaxWidgetSize\n\t}\n\n\tif eventsToRender \u003c 1 {\n\t\treturn \"\", ErrMinWidgetSize\n\t}\n\n\tif eventsToRender \u003e numOfEvents {\n\t\teventsToRender = numOfEvents\n\t}\n\n\toutput := \"\"\n\n\tfor _, event := range events[:eventsToRender] {\n\t\toutput += ufmt.Sprintf(\"- [%s](%s)\\n\", event.name, event.link)\n\t}\n\n\treturn output, nil\n}\n\n// renderHome renders the home page of the events realm\nfunc renderHome(admin bool) string {\n\toutput := \"# gno.land events\\n\\n\"\n\n\tif len(events) == 0 {\n\t\toutput += \"No upcoming or past events.\"\n\t\treturn output\n\t}\n\n\toutput += \"Below is a list of all gno.land events, including in progress, upcoming, and past ones.\\n\\n\"\n\toutput += \"---\\n\\n\"\n\n\tvar (\n\t\tinProgress = \"\"\n\t\tupcoming = \"\"\n\t\tpast = \"\"\n\t\tnow = time.Now()\n\t)\n\n\tfor _, e := range events {\n\t\tif now.Before(e.startTime) {\n\t\t\tupcoming += e.Render(admin)\n\t\t} else if now.After(e.endTime) {\n\t\t\tpast += e.Render(admin)\n\t\t} else {\n\t\t\tinProgress += e.Render(admin)\n\t\t}\n\t}\n\n\tif upcoming != \"\" {\n\t\t// Add upcoming events\n\t\toutput += \"## Upcoming events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += upcoming\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif inProgress != \"\" {\n\t\toutput += \"## Currently in progress\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += inProgress\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t\toutput += \"---\\n\\n\"\n\t}\n\n\tif past != \"\" {\n\t\t// Add past events\n\t\toutput += \"## Past events\\n\\n\"\n\t\toutput += \"\u003cdiv class='columns-3'\u003e\"\n\n\t\toutput += past\n\n\t\toutput += \"\u003c/div\u003e\\n\\n\"\n\t}\n\n\treturn output\n}\n\n// Render returns the markdown representation of a single event instance\nfunc (e Event) Render(admin bool) string {\n\tvar buf bytes.Buffer\n\n\tbuf.WriteString(\"\u003cdiv\u003e\\n\\n\")\n\tbuf.WriteString(ufmt.Sprintf(\"### %s\\n\\n\", e.name))\n\tbuf.WriteString(ufmt.Sprintf(\"%s\\n\\n\", e.description))\n\tbuf.WriteString(ufmt.Sprintf(\"**Location:** %s\\n\\n\", e.location))\n\n\t_, offset := e.startTime.Zone() // offset is in seconds\n\thoursOffset := offset / (60 * 60)\n\tsign := \"\"\n\tif offset \u003e= 0 {\n\t\tsign = \"+\"\n\t}\n\n\tbuf.WriteString(ufmt.Sprintf(\"**Starts:** %s UTC%s%d\\n\\n\", e.startTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\tbuf.WriteString(ufmt.Sprintf(\"**Ends:** %s UTC%s%d\\n\\n\", e.endTime.Format(\"02 Jan 2006, 03:04 PM\"), sign, hoursOffset))\n\n\tif admin {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[EDIT](/r/gnoland/events$help\u0026func=EditEvent\u0026id=%s)\\n\\n\", e.id))\n\t\tbuf.WriteString(ufmt.Sprintf(\"[DELETE](/r/gnoland/events$help\u0026func=DeleteEvent\u0026id=%s)\\n\\n\", e.id))\n\t}\n\n\tif e.link != \"\" {\n\t\tbuf.WriteString(ufmt.Sprintf(\"[See more](%s)\\n\\n\", e.link))\n\t}\n\n\tbuf.WriteString(\"\u003c/div\u003e\")\n\n\treturn buf.String()\n}\n\n// Render is the main rendering entry point\nfunc Render(path string) string {\n\tif path == \"admin\" {\n\t\treturn renderHome(true)\n\t}\n\n\treturn renderHome(false)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YWh+rrA5n0AvJRKQ666DFxtuSfbA7+zdhhF6iUL8lNsvf0FoyqBYVYPLNAVl4KzVZ4LjIayWnzamQVEl2wSmCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"example","path":"gno.land/r/x/jeronimo_render_proxy","files":[{"name":"example.gno","body":"package example\n\nfunc Render(string) string {\n\treturn `# Render Proxy\n\nThis example shows how proxying render calls can be used to allow updating realms to new\nversions while keeping the same realm path. The idea is to have a simple \"parent\" realm\nthat only keeps track of the latest realm version and forwards all render calls to it.\n\nBy only focusing on the 'Render()' function the proxy realm keeps its public functions\nstable allowing each version to update their public functions and exposed types without\nneeding to also update the proxy realm.\n\nAny interaction or transaction must be sent to the latest, or target, realm version while\nrender calls are sent to the proxy realm.\n\nEach realm version registers itself on deployment as the latest available version, and\nits allowed to do so because each versioned realm path shares the proxy realm path.\n`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bfMUyFf7r1abefEx9hA/LRl/7QxKdNW7AsEMAkOtmkDI9lwwYqq3mWxGgzxtsmSVsFpR4pYYEVOOLTo6NkseDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"executor","path":"gno.land/p/gov/executor","files":[{"name":"callback.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar errInvalidCaller = errors.New(\"invalid executor caller\")\n\n// NewCallbackExecutor creates a new callback executor with the provided callback function\nfunc NewCallbackExecutor(callback func() error, path string) *CallbackExecutor {\n\treturn \u0026CallbackExecutor{\n\t\tcallback: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// CallbackExecutor is an implementation of the dao.Executor interface,\n// based on a specific callback.\n// The given callback should verify the validity of the govdao call\ntype CallbackExecutor struct {\n\tcallback func() error // the callback to be executed\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// Execute runs the executor's callback function.\nfunc (exec *CallbackExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\tif exec.callback != nil {\n\t\treturn exec.callback()\n\t}\n\n\treturn nil\n}\n"},{"name":"context.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/context\"\n)\n\ntype propContextKey string\n\nfunc (k propContextKey) String() string { return string(k) }\n\nconst (\n\tstatusContextKey = propContextKey(\"govdao-prop-status\")\n\tapprovedStatus = \"approved\"\n)\n\nvar errNotApproved = errors.New(\"not approved by govdao\")\n\n// CtxExecutor is an implementation of the dao.Executor interface,\n// based on the given context.\n// It utilizes the given context to assert the validity of the govdao call\ntype CtxExecutor struct {\n\tcallbackCtx func(ctx context.Context) error // the callback ctx fn, if any\n\tdaoPkgPath string // the active pkg path of the govdao\n}\n\n// NewCtxExecutor creates a new executor with the provided callback function.\nfunc NewCtxExecutor(callback func(ctx context.Context) error, path string) *CtxExecutor {\n\treturn \u0026CtxExecutor{\n\t\tcallbackCtx: callback,\n\t\tdaoPkgPath: path,\n\t}\n}\n\n// Execute runs the executor's callback function\nfunc (exec *CtxExecutor) Execute() error {\n\t// Verify the caller is an adequate Realm\n\tcaller := std.CurrentRealm().PkgPath()\n\tif caller != exec.daoPkgPath {\n\t\treturn errInvalidCaller\n\t}\n\n\t// Create the context\n\tctx := context.WithValue(\n\t\tcontext.Empty(),\n\t\tstatusContextKey,\n\t\tapprovedStatus,\n\t)\n\n\treturn exec.callbackCtx(ctx)\n}\n\n// IsApprovedByGovdaoContext asserts that the govdao approved the context\nfunc IsApprovedByGovdaoContext(ctx context.Context) bool {\n\tv := ctx.Value(statusContextKey)\n\tif v == nil {\n\t\treturn false\n\t}\n\n\tvs, ok := v.(string)\n\n\treturn ok \u0026\u0026 vs == approvedStatus\n}\n\n// AssertContextApprovedByGovDAO asserts the given context\n// was approved by GOVDAO\nfunc AssertContextApprovedByGovDAO(ctx context.Context) {\n\tif IsApprovedByGovdaoContext(ctx) {\n\t\treturn\n\t}\n\n\tpanic(errNotApproved)\n}\n"},{"name":"proposal_test.gno","body":"package executor\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/context\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestExecutor_Callback(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCallbackExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCallbackExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.ErrorIs(t, e.Execute(), expectedErr)\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n\nfunc TestExecutor_Context(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"govdao not caller\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\te := NewCtxExecutor(cb, \"gno.land/r/gov/dao\")\n\n\t\t// Execute as not the /r/gov/dao caller\n\t\tuassert.ErrorIs(t, e.Execute(), errInvalidCaller)\n\t\tuassert.False(t, called, \"expected proposal to not execute\")\n\t})\n\n\tt.Run(\"execution successful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\turequire.NoError(t, e.Execute())\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n\n\tt.Run(\"execution unsuccessful\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\texpectedErr = errors.New(\"unexpected\")\n\n\t\t\tcb = func(ctx context.Context) error {\n\t\t\t\tif !IsApprovedByGovdaoContext(ctx) {\n\t\t\t\t\tt.Fatal(\"not govdao caller\")\n\t\t\t\t}\n\n\t\t\t\tcalled = true\n\n\t\t\t\treturn expectedErr\n\t\t\t}\n\t\t)\n\n\t\t// Create the executor\n\t\tdaoPkgPath := \"gno.land/r/gov/dao\"\n\t\te := NewCtxExecutor(cb, daoPkgPath)\n\n\t\t// Execute as the /r/gov/dao caller\n\t\tr := std.NewCodeRealm(daoPkgPath)\n\t\tstd.TestSetRealm(r)\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\terr := e.Execute()\n\n\t\t\tuassert.ErrorIs(t, err, expectedErr)\n\t\t})\n\n\t\tuassert.True(t, called, \"expected proposal to execute\")\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FZ+zPTEs/K8MmxIulrmXyE44k6h2hVDnB8mUbtkOAdNhdLOZutEpEF2fBFFY/jBvEnhyWXRObZ7JzYKmjCVzAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"exts","path":"gno.land/p/demo/grc/exts","files":[{"name":"token_metadata.gno","body":"package exts\n\ntype TokenMetadata interface {\n\t// Returns the name of the token.\n\tGetName() string\n\n\t// Returns the symbol of the token, usually a shorter version of the\n\t// name.\n\tGetSymbol() string\n\n\t// Returns the decimals places of the token.\n\tGetDecimals() uint\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vMz5eyRo/lshWITThtPr17oy9TklGOGDcG9cd3wISJn5cwq7u7hHZKGbpRiRcJDKIcmJdrTVYpedAesWtWysCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"faucet","path":"gno.land/r/gnoland/faucet","files":[{"name":"admin.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nfunc AdminSetInPause(inPause bool) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgInPause = inPause\n\treturn \"\"\n}\n\nfunc AdminSetMessage(message string) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgMessage = message\n\treturn \"\"\n}\n\nfunc AdminSetTransferLimit(amount int64) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgLimit = std.NewCoin(\"ugnot\", amount)\n\treturn \"\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\tgAdminAddr = addr\n\treturn \"\"\n}\n\nfunc AdminAddController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tsize := gControllers.Size()\n\n\tif size \u003e= gControllersMaxSize {\n\t\treturn \"can not add more controllers than allowed\"\n\t}\n\n\tif gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" exists, no need to add.\"\n\t}\n\n\tgControllers.Set(addr.String(), addr)\n\n\treturn \"\"\n}\n\nfunc AdminRemoveController(addr std.Address) string {\n\tif err := assertIsAdmin(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif !gControllers.Has(addr.String()) {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\t_, ok := gControllers.Remove(addr.String())\n\n\t// it not should happen.\n\t// we will check anyway to prevent issues in the underline implementation.\n\n\tif !ok {\n\t\treturn addr.String() + \" is not on the controller list\"\n\t}\n\n\treturn \"\"\n}\n\nfunc assertIsAdmin() error {\n\tcaller := std.GetOrigCaller()\n\tif caller != gAdminAddr {\n\t\treturn errors.New(\"restricted for admin\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet.gno","body":"package faucet\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\t// configurable by admin.\n\tgAdminAddr std.Address = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tgControllers = avl.NewTree()\n\tgControllersMaxSize = 10 // limit it to 10\n\tgInPause = false\n\tgMessage = \"# Community Faucet.\\n\\n\"\n\n\t// internal vars, for stats.\n\tgTotalTransferred std.Coins\n\tgTotalTransfers = uint(0)\n\n\t// per request limit, 350 gnot\n\tgLimit std.Coin = std.NewCoin(\"ugnot\", 350000000)\n)\n\nfunc Transfer(to std.Address, send int64) string {\n\tif err := assertIsController(); err != nil {\n\t\treturn err.Error()\n\t}\n\n\tif gInPause {\n\t\treturn errors.New(\"faucet in pause\").Error()\n\t}\n\n\t// limit the per request\n\tif send \u003e gLimit.Amount {\n\t\treturn errors.New(\"Per request limit \" + gLimit.String() + \" exceed\").Error()\n\t}\n\tsendCoins := std.Coins{std.NewCoin(\"ugnot\", send)}\n\n\tgTotalTransferred = gTotalTransferred.Add(sendCoins)\n\tgTotalTransfers++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tpkgaddr := std.CurrentRealm().Addr()\n\tbanker.SendCoins(pkgaddr, to, sendCoins)\n\treturn \"\"\n}\n\nfunc GetPerTransferLimit() int64 {\n\treturn gLimit.Amount\n}\n\nfunc Render(_ string) string {\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\tbalance := banker.GetCoins(std.CurrentRealm().Addr())\n\n\toutput := gMessage\n\tif gInPause {\n\t\toutput += \"Status: inactive.\\n\"\n\t} else {\n\t\toutput += \"Status: active.\\n\"\n\t}\n\toutput += ufmt.Sprintf(\"Balance: %s.\\n\", balance.String())\n\toutput += ufmt.Sprintf(\"Total transfers: %s (in %d times).\\n\\n\", gTotalTransferred.String(), gTotalTransfers)\n\n\toutput += \"Package address: \" + std.CurrentRealm().Addr().String() + \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Admin: %s\\n\\n \", gAdminAddr.String())\n\toutput += ufmt.Sprintf(\"Controllers:\\n\\n \")\n\n\tfor i := 0; i \u003c gControllers.Size(); i++ {\n\t\t_, v := gControllers.GetByIndex(i)\n\t\toutput += ufmt.Sprintf(\"%s \", v.(std.Address))\n\t}\n\n\toutput += \"\\n\\n\"\n\toutput += ufmt.Sprintf(\"Per request limit: %s\\n\\n\", gLimit.String())\n\n\treturn output\n}\n\nfunc assertIsController() error {\n\tcaller := std.GetOrigCaller()\n\n\tok := gControllers.Has(caller.String())\n\tif !ok {\n\t\treturn errors.New(caller.String() + \" is not on the controller list\")\n\t}\n\treturn nil\n}\n"},{"name":"faucet_test.gno","body":"package faucet\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tfaucetaddr = std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\tcontrolleraddr3 = testutils.TestAddress(\"controller3\")\n\t\tcontrolleraddr4 = testutils.TestAddress(\"controller4\")\n\t\tcontrolleraddr5 = testutils.TestAddress(\"controller5\")\n\t\tcontrolleraddr6 = testutils.TestAddress(\"controller6\")\n\t\tcontrolleraddr7 = testutils.TestAddress(\"controller7\")\n\t\tcontrolleraddr8 = testutils.TestAddress(\"controller8\")\n\t\tcontrolleraddr9 = testutils.TestAddress(\"controller9\")\n\t\tcontrolleraddr10 = testutils.TestAddress(\"controller10\")\n\t\tcontrolleraddr11 = testutils.TestAddress(\"controller11\")\n\n\t\ttest1addr = testutils.TestAddress(\"test1\")\n\t)\n\t// deposit 1000gnot to faucet contract\n\tstd.TestIssueCoins(faucetaddr, std.Coins{{\"ugnot\", 1000000000}})\n\tassertBalance(t, faucetaddr, 1000000000)\n\n\t// by default, balance is empty, and as a user I cannot call Transfer, or Admin commands.\n\n\tassertBalance(t, test1addr, 0)\n\tstd.TestSetOrigCaller(test1addr)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// as an admin, add the controller to contract and deposit more 2000gnot to contract\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertBalance(t, faucetaddr, 1000000000)\n\n\t// now, send some tokens as controller.\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 1000000)\n\tassertNoErr(t, faucet.Transfer(test1addr, 1000000))\n\tassertBalance(t, test1addr, 2000000)\n\tassertBalance(t, faucetaddr, 998000000)\n\n\t// remove controller\n\t// as an admin, remove controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminRemoveController(controlleraddr1))\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n\n\t// duplicate controller\n\tstd.TestSetOrigCaller(adminaddr)\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr1))\n\tassertErr(t, faucet.AdminAddController(controlleraddr1))\n\t// add more than more than allowed controllers\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr2))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr3))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr4))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr5))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr6))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr7))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr8))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr9))\n\tassertNoErr(t, faucet.AdminAddController(controlleraddr10))\n\tassertErr(t, faucet.AdminAddController(controlleraddr11))\n\n\t// send more than per transfer limit\n\tstd.TestSetOrigCaller(adminaddr)\n\tfaucet.AdminSetTransferLimit(300000000)\n\tstd.TestSetOrigCaller(controlleraddr1)\n\tassertErr(t, faucet.Transfer(test1addr, 301000000))\n\n\t// block transefer from the address not on the controllers list.\n\tstd.TestSetOrigCaller(controlleraddr11)\n\tassertErr(t, faucet.Transfer(test1addr, 1000000))\n}\n\nfunc assertErr(t *testing.T, err string) {\n\tt.Helper()\n\n\tif err == \"\" {\n\t\tt.Logf(\"info: got err: %v\", err)\n\t\tt.Errorf(\"expected an error, got nil.\")\n\t}\n}\n\nfunc assertNoErr(t *testing.T, err string) {\n\tt.Helper()\n\tif err != \"\" {\n\t\tt.Errorf(\"got err: %v.\", err)\n\t}\n}\n\nfunc assertBalance(t *testing.T, addr std.Address, expectedBal int64) {\n\tt.Helper()\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(addr)\n\tgot := coins.AmountOf(\"ugnot\")\n\n\tif expectedBal != got {\n\t\tt.Errorf(\"invalid balance: expected %d, got %d.\", expectedBal, got)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with a path and no controllers\nfunc main() {\n\tprintln(faucet.Render(\"path\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n//\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints ugnot to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with empty path and 2 controllers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 200000000ugnot.\n// Total transfers: (in 0 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n//\n//\n"},{"name":"z3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/faucet\"\n)\n\n// mints coints to current realm\nfunc init() {\n\tfacuetaddr := std.DerivePkgAddr(\"gno.land/r/gnoland/faucet\")\n\tstd.TestIssueCoins(facuetaddr, std.Coins{{\"ugnot\", 200000000}})\n}\n\n// assert render with 2 controllers and 2 transfers\nfunc main() {\n\tvar (\n\t\tadminaddr = std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\t\tcontrolleraddr1 = testutils.TestAddress(\"controller1\")\n\t\tcontrolleraddr2 = testutils.TestAddress(\"controller2\")\n\t\ttestaddr1 = testutils.TestAddress(\"test1\")\n\t\ttestaddr2 = testutils.TestAddress(\"test2\")\n\t)\n\tstd.TestSetOrigCaller(adminaddr)\n\terr := faucet.AdminAddController(controlleraddr1)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\terr = faucet.AdminAddController(controlleraddr2)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr1)\n\terr = faucet.Transfer(testaddr1, 1000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tstd.TestSetOrigCaller(controlleraddr2)\n\terr = faucet.Transfer(testaddr1, 2000000)\n\tif err != \"\" {\n\t\tpanic(err)\n\t}\n\tprintln(faucet.Render(\"\"))\n}\n\n// Output:\n// # Community Faucet.\n//\n// Status: active.\n// Balance: 197000000ugnot.\n// Total transfers: 3000000ugnot (in 2 times).\n//\n// Package address: g1ttrq7mp4zy6dssnmgyyktnn4hcj3ys8xhju0n7\n//\n// Admin: g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n//\n// Controllers:\n//\n// g1vdhkuarjdakxcetjx9047h6lta047h6lsdacav g1vdhkuarjdakxcetjxf047h6lta047h6lnrev3v\n//\n// Per request limit: 350000000ugnot\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5MAztw6rAqXuErrqOiMVhfmZaKR5HyQKj8vB106RiF/aIuNM4Gt6FjF3toAXpGwcTX/FD2t33MC2QIKXaxDtBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"feed","path":"gno.land/p/demo/gnorkle/feed","files":[{"name":"errors.gno","body":"package feed\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined feed\")\n"},{"name":"task.gno","body":"package feed\n\n// Task is a unit of work that can be part of a `Feed` definition. Tasks\n// are executed by agents.\ntype Task interface {\n\tMarshalJSON() ([]byte, error)\n}\n"},{"name":"type.gno","body":"package feed\n\n// Type indicates the type of a feed.\ntype Type int\n\nconst (\n\t// TypeStatic indicates a feed cannot be changed once the first value is committed.\n\tTypeStatic Type = iota\n\t// TypeContinuous indicates a feed can continuously ingest values and will publish\n\t// a new value on request using the values it has ingested.\n\tTypeContinuous\n\t// TypePeriodic indicates a feed can accept one or more values within a certain period\n\t// and will proceed to commit these values at the end up each period to produce an\n\t// aggregate value before starting a new period.\n\tTypePeriodic\n)\n"},{"name":"value.gno","body":"package feed\n\nimport \"time\"\n\n// Value represents a value published by a feed. The `Time` is when the value was published.\ntype Value struct {\n\tString string\n\tTime time.Time\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KkuH7QKm4HippTcWkKuisfP0Vq8Ke3020Nh2OXzm5vj3onqdsogjp1+RMk2XcXfkL39ixcLp3iHhJY6zRGvBCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"flow","path":"gno.land/p/demo/flow","files":[{"name":"LICENSE","body":"https://github.com/mxk/go-flowrate/blob/master/LICENSE\nBSD 3-Clause \"New\" or \"Revised\" License\n\nCopyright (c) 2014 The Go-FlowRate Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the\n distribution.\n\n * Neither the name of the go-flowrate project nor the names of its\n contributors may be used to endorse or promote products derived\n from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"Data Flow Rate Control\n======================\n\nTo download and install this package run:\n\ngo get github.com/mxk/go-flowrate/flowrate\n\nThe documentation is available at:\n\nhttp://godoc.org/github.com/mxk/go-flowrate/flowrate\n"},{"name":"flow.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n// XXX modified to disable blocking, time.Sleep().\n\n// Package flow provides the tools for monitoring and limiting the flow rate\n// of an arbitrary data stream.\npackage flow\n\nimport (\n\t\"math\"\n\t// \"sync\"\n\t\"time\"\n)\n\n// Monitor monitors and limits the transfer rate of a data stream.\ntype Monitor struct {\n\t// mu sync.Mutex // Mutex guarding access to all internal fields\n\tactive bool // Flag indicating an active transfer\n\tstart time.Duration // Transfer start time (clock() value)\n\tbytes int64 // Total number of bytes transferred\n\tsamples int64 // Total number of samples taken\n\n\trSample float64 // Most recent transfer rate sample (bytes per second)\n\trEMA float64 // Exponential moving average of rSample\n\trPeak float64 // Peak transfer rate (max of all rSamples)\n\trWindow float64 // rEMA window (seconds)\n\n\tsBytes int64 // Number of bytes transferred since sLast\n\tsLast time.Duration // Most recent sample time (stop time when inactive)\n\tsRate time.Duration // Sampling rate\n\n\ttBytes int64 // Number of bytes expected in the current transfer\n\ttLast time.Duration // Time of the most recent transfer of at least 1 byte\n}\n\n// New creates a new flow control monitor. Instantaneous transfer rate is\n// measured and updated for each sampleRate interval. windowSize determines the\n// weight of each sample in the exponential moving average (EMA) calculation.\n// The exact formulas are:\n//\n//\tsampleTime = currentTime - prevSampleTime\n//\tsampleRate = byteCount / sampleTime\n//\tweight = 1 - exp(-sampleTime/windowSize)\n//\tnewRate = weight*sampleRate + (1-weight)*oldRate\n//\n// The default values for sampleRate and windowSize (if \u003c= 0) are 100ms and 1s,\n// respectively.\nfunc New(sampleRate, windowSize time.Duration) *Monitor {\n\tif sampleRate = clockRound(sampleRate); sampleRate \u003c= 0 {\n\t\tsampleRate = 5 * clockRate\n\t}\n\tif windowSize \u003c= 0 {\n\t\twindowSize = 1 * time.Second\n\t}\n\tnow := clock()\n\treturn \u0026Monitor{\n\t\tactive: true,\n\t\tstart: now,\n\t\trWindow: windowSize.Seconds(),\n\t\tsLast: now,\n\t\tsRate: sampleRate,\n\t\ttLast: now,\n\t}\n}\n\n// Update records the transfer of n bytes and returns n. It should be called\n// after each Read/Write operation, even if n is 0.\nfunc (m *Monitor) Update(n int) int {\n\t// m.mu.Lock()\n\tm.update(n)\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// Hack to set the current rEMA.\nfunc (m *Monitor) SetREMA(rEMA float64) {\n\t// m.mu.Lock()\n\tm.rEMA = rEMA\n\tm.samples++\n\t// m.mu.Unlock()\n}\n\n// IO is a convenience method intended to wrap io.Reader and io.Writer method\n// execution. It calls m.Update(n) and then returns (n, err) unmodified.\nfunc (m *Monitor) IO(n int, err error) (int, error) {\n\treturn m.Update(n), err\n}\n\n// Done marks the transfer as finished and prevents any further updates or\n// limiting. Instantaneous and current transfer rates drop to 0. Update, IO, and\n// Limit methods become NOOPs. It returns the total number of bytes transferred.\nfunc (m *Monitor) Done() int64 {\n\t// m.mu.Lock()\n\tif now := m.update(0); m.sBytes \u003e 0 {\n\t\tm.reset(now)\n\t}\n\tm.active = false\n\tm.tLast = 0\n\tn := m.bytes\n\t// m.mu.Unlock()\n\treturn n\n}\n\n// timeRemLimit is the maximum Status.TimeRem value.\nconst timeRemLimit = 999*time.Hour + 59*time.Minute + 59*time.Second\n\n// Status represents the current Monitor status. All transfer rates are in bytes\n// per second rounded to the nearest byte.\ntype Status struct {\n\tActive bool // Flag indicating an active transfer\n\tStart time.Time // Transfer start time\n\tDuration time.Duration // Time period covered by the statistics\n\tIdle time.Duration // Time since the last transfer of at least 1 byte\n\tBytes int64 // Total number of bytes transferred\n\tSamples int64 // Total number of samples taken\n\tInstRate int64 // Instantaneous transfer rate\n\tCurRate int64 // Current transfer rate (EMA of InstRate)\n\tAvgRate int64 // Average transfer rate (Bytes / Duration)\n\tPeakRate int64 // Maximum instantaneous transfer rate\n\tBytesRem int64 // Number of bytes remaining in the transfer\n\tTimeRem time.Duration // Estimated time to completion\n\tProgress Percent // Overall transfer progress\n}\n\nfunc (s Status) String() string {\n\treturn \"STATUS{}\"\n}\n\n// Status returns current transfer status information. The returned value\n// becomes static after a call to Done.\nfunc (m *Monitor) Status() Status {\n\t// m.mu.Lock()\n\tnow := m.update(0)\n\ts := Status{\n\t\tActive: m.active,\n\t\tStart: clockToTime(m.start),\n\t\tDuration: m.sLast - m.start,\n\t\tIdle: now - m.tLast,\n\t\tBytes: m.bytes,\n\t\tSamples: m.samples,\n\t\tPeakRate: round(m.rPeak),\n\t\tBytesRem: m.tBytes - m.bytes,\n\t\tProgress: percentOf(float64(m.bytes), float64(m.tBytes)),\n\t}\n\tif s.BytesRem \u003c 0 {\n\t\ts.BytesRem = 0\n\t}\n\tif s.Duration \u003e 0 {\n\t\trAvg := float64(s.Bytes) / s.Duration.Seconds()\n\t\ts.AvgRate = round(rAvg)\n\t\tif s.Active {\n\t\t\ts.InstRate = round(m.rSample)\n\t\t\ts.CurRate = round(m.rEMA)\n\t\t\tif s.BytesRem \u003e 0 {\n\t\t\t\tif tRate := 0.8*m.rEMA + 0.2*rAvg; tRate \u003e 0 {\n\t\t\t\t\tns := float64(s.BytesRem) / tRate * 1e9\n\t\t\t\t\tif ns \u003e float64(timeRemLimit) {\n\t\t\t\t\t\tns = float64(timeRemLimit)\n\t\t\t\t\t}\n\t\t\t\t\ts.TimeRem = clockRound(time.Duration(ns))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// m.mu.Unlock()\n\treturn s\n}\n\n// Limit restricts the instantaneous (per-sample) data flow to rate bytes per\n// second. It returns the maximum number of bytes (0 \u003c= n \u003c= want) that may be\n// transferred immediately without exceeding the limit. If block == true, the\n// call blocks until n \u003e 0. want is returned unmodified if want \u003c 1, rate \u003c 1,\n// or the transfer is inactive (after a call to Done).\n//\n// At least one byte is always allowed to be transferred in any given sampling\n// period. Thus, if the sampling rate is 100ms, the lowest achievable flow rate\n// is 10 bytes per second.\n//\n// For usage examples, see the implementation of Reader and Writer in io.go.\nfunc (m *Monitor) Limit(want int, rate int64, block bool) (n int) {\n\tif block {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\tif want \u003c 1 || rate \u003c 1 {\n\t\treturn want\n\t}\n\t// m.mu.Lock()\n\n\t// Determine the maximum number of bytes that can be sent in one sample\n\tlimit := round(float64(rate) * m.sRate.Seconds())\n\tif limit \u003c= 0 {\n\t\tlimit = 1\n\t}\n\n\t_ = m.update(0)\n\t/* XXX\n\t// If block == true, wait until m.sBytes \u003c limit\n\tif now := m.update(0); block {\n\t\tfor m.sBytes \u003e= limit \u0026\u0026 m.active {\n\t\t\tnow = m.waitNextSample(now)\n\t\t}\n\t}\n\t*/\n\n\t// Make limit \u003c= want (unlimited if the transfer is no longer active)\n\tif limit -= m.sBytes; limit \u003e int64(want) || !m.active {\n\t\tlimit = int64(want)\n\t}\n\t// m.mu.Unlock()\n\n\tif limit \u003c 0 {\n\t\tlimit = 0\n\t}\n\treturn int(limit)\n}\n\n// SetTransferSize specifies the total size of the data transfer, which allows\n// the Monitor to calculate the overall progress and time to completion.\nfunc (m *Monitor) SetTransferSize(bytes int64) {\n\tif bytes \u003c 0 {\n\t\tbytes = 0\n\t}\n\t// m.mu.Lock()\n\tm.tBytes = bytes\n\t// m.mu.Unlock()\n}\n\n// update accumulates the transferred byte count for the current sample until\n// clock() - m.sLast \u003e= m.sRate. The monitor status is updated once the current\n// sample is done.\nfunc (m *Monitor) update(n int) (now time.Duration) {\n\tif !m.active {\n\t\treturn\n\t}\n\tif now = clock(); n \u003e 0 {\n\t\tm.tLast = now\n\t}\n\tm.sBytes += int64(n)\n\tif sTime := now - m.sLast; sTime \u003e= m.sRate {\n\t\tt := sTime.Seconds()\n\t\tif m.rSample = float64(m.sBytes) / t; m.rSample \u003e m.rPeak {\n\t\t\tm.rPeak = m.rSample\n\t\t}\n\n\t\t// Exponential moving average using a method similar to *nix load\n\t\t// average calculation. Longer sampling periods carry greater weight.\n\t\tif m.samples \u003e 0 {\n\t\t\tw := math.Exp(-t / m.rWindow)\n\t\t\tm.rEMA = m.rSample + w*(m.rEMA-m.rSample)\n\t\t} else {\n\t\t\tm.rEMA = m.rSample\n\t\t}\n\t\tm.reset(now)\n\t}\n\treturn\n}\n\n// reset clears the current sample state in preparation for the next sample.\nfunc (m *Monitor) reset(sampleTime time.Duration) {\n\tm.bytes += m.sBytes\n\tm.samples++\n\tm.sBytes = 0\n\tm.sLast = sampleTime\n}\n\n/*\n// waitNextSample sleeps for the remainder of the current sample. The lock is\n// released and reacquired during the actual sleep period, so it's possible for\n// the transfer to be inactive when this method returns.\nfunc (m *Monitor) waitNextSample(now time.Duration) time.Duration {\n\tconst minWait = 5 * time.Millisecond\n\tcurrent := m.sLast\n\n\t// sleep until the last sample time changes (ideally, just one iteration)\n\tfor m.sLast == current \u0026\u0026 m.active {\n\t\td := current + m.sRate - now\n\t\t// m.mu.Unlock()\n\t\tif d \u003c minWait {\n\t\t\td = minWait\n\t\t}\n\t\ttime.Sleep(d)\n\t\t// m.mu.Lock()\n\t\tnow = m.update(0)\n\t}\n\treturn now\n}\n*/\n"},{"name":"io.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\n// ErrLimit is returned by the Writer when a non-blocking write is short due to\n// the transfer rate limit.\nvar ErrLimit = errors.New(\"flowrate: flow rate limit exceeded\")\n\n// Limiter is implemented by the Reader and Writer to provide a consistent\n// interface for monitoring and controlling data transfer.\ntype Limiter interface {\n\tDone() int64\n\tStatus() Status\n\tSetTransferSize(bytes int64)\n\tSetLimit(new int64) (old int64)\n\tSetBlocking(new bool) (old bool)\n}\n\n// Reader implements io.ReadCloser with a restriction on the rate of data\n// transfer.\ntype Reader struct {\n\tio.Reader // Data source\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be read due to the limit\n}\n\n// NewReader restricts all Read operations on r to limit bytes per second.\nfunc NewReader(r io.Reader, limit int64) *Reader {\n\treturn \u0026Reader{r, New(0, 0), limit, false} // XXX default false\n}\n\n// Read reads up to len(p) bytes into p without exceeding the current transfer\n// rate limit. It returns (0, nil) immediately if r is non-blocking and no new\n// bytes can be read at this time.\nfunc (r *Reader) Read(p []byte) (n int, err error) {\n\tp = p[:r.Limit(len(p), r.limit, r.block)]\n\tif len(p) \u003e 0 {\n\t\tn, err = r.IO(r.Reader.Read(p))\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (r *Reader) SetLimit(new int64) (old int64) {\n\told, r.limit = r.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Read call on a non-blocking reader returns immediately if no additional bytes\n// may be read at this time due to the rate limit.\nfunc (r *Reader) SetBlocking(new bool) (old bool) {\n\tif new == true {\n\t\tpanic(\"blocking not yet supported\")\n\t}\n\told, r.block = r.block, new\n\treturn\n}\n\n// Close closes the underlying reader if it implements the io.Closer interface.\nfunc (r *Reader) Close() error {\n\tdefer r.Done()\n\tif c, ok := r.Reader.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n\n// Writer implements io.WriteCloser with a restriction on the rate of data\n// transfer.\ntype Writer struct {\n\tio.Writer // Data destination\n\t*Monitor // Flow control monitor\n\n\tlimit int64 // Rate limit in bytes per second (unlimited when \u003c= 0)\n\tblock bool // What to do when no new bytes can be written due to the limit\n}\n\n// NewWriter restricts all Write operations on w to limit bytes per second. The\n// transfer rate and the default blocking behavior (true) can be changed\n// directly on the returned *Writer.\nfunc NewWriter(w io.Writer, limit int64) *Writer {\n\treturn \u0026Writer{w, New(0, 0), limit, false} // XXX default false\n}\n\n// Write writes len(p) bytes from p to the underlying data stream without\n// exceeding the current transfer rate limit. It returns (n, ErrLimit) if w is\n// non-blocking and no additional bytes can be written at this time.\nfunc (w *Writer) Write(p []byte) (n int, err error) {\n\tvar c int\n\tfor len(p) \u003e 0 \u0026\u0026 err == nil {\n\t\ts := p[:w.Limit(len(p), w.limit, w.block)]\n\t\tif len(s) \u003e 0 {\n\t\t\tc, err = w.IO(w.Writer.Write(s))\n\t\t} else {\n\t\t\treturn n, ErrLimit\n\t\t}\n\t\tp = p[c:]\n\t\tn += c\n\t}\n\treturn\n}\n\n// SetLimit changes the transfer rate limit to new bytes per second and returns\n// the previous setting.\nfunc (w *Writer) SetLimit(new int64) (old int64) {\n\told, w.limit = w.limit, new\n\treturn\n}\n\n// SetBlocking changes the blocking behavior and returns the previous setting. A\n// Write call on a non-blocking writer returns as soon as no additional bytes\n// may be written at this time due to the rate limit.\nfunc (w *Writer) SetBlocking(new bool) (old bool) {\n\told, w.block = w.block, new\n\treturn\n}\n\n// Close closes the underlying writer if it implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tdefer w.Done()\n\tif c, ok := w.Writer.(io.Closer); ok {\n\t\treturn c.Close()\n\t}\n\treturn nil\n}\n"},{"name":"io_test.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\tios_test \"internal/os_test\"\n)\n\n// XXX ugh, I can't even sleep milliseconds.\n// XXX\n\nconst (\n\t_50ms = 50 * time.Millisecond\n\t_100ms = 100 * time.Millisecond\n\t_200ms = 200 * time.Millisecond\n\t_300ms = 300 * time.Millisecond\n\t_400ms = 400 * time.Millisecond\n\t_500ms = 500 * time.Millisecond\n)\n\nfunc nextStatus(m *Monitor) Status {\n\tsamples := m.samples\n\tfor i := 0; i \u003c 30; i++ {\n\t\tif s := m.Status(); s.Samples != samples {\n\t\t\treturn s\n\t\t}\n\t\tios_test.Sleep(5 * time.Millisecond)\n\t}\n\treturn m.Status()\n}\n\nfunc TestReader(t *testing.T) {\n\tin := make([]byte, 100)\n\tfor i := range in {\n\t\tin[i] = byte(i)\n\t}\n\tb := make([]byte, 100)\n\tr := NewReader(bytes.NewReader(in), 100)\n\tstart := time.Now()\n\n\t// Make sure r implements Limiter\n\t_ = Limiter(r)\n\n\t// 1st read of 10 bytes is performed immediately\n\tif n, err := r.Read(b); n != 10 {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\t// No new Reads allowed in the current sample\n\tr.SetBlocking(false)\n\tif n, err := r.Read(b); n != 0 {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b) expected 0 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"r.Read(b) took too long (%v)\", rt.String())\n\t}\n\n\tstatus := [6]Status{0: r.Status()} // No samples in the first status\n\n\t// 2nd read of 10 bytes blocks until the next sample\n\t// r.SetBlocking(true)\n\tios_test.Sleep(100 * time.Millisecond)\n\tif n, err := r.Read(b[10:]); n != 10 {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v\", n)\n\t} else if err != nil {\n\t\tt.Fatalf(\"r.Read(b[10:]) expected 10 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _100ms {\n\t\tt.Fatalf(\"r.Read(b[10:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tstatus[1] = r.Status() // 1st sample\n\tstatus[2] = nextStatus(r.Monitor) // 2nd sample\n\tstatus[3] = nextStatus(r.Monitor) // No activity for the 3rd sample\n\n\tif n := r.Done(); n != 20 {\n\t\tt.Fatalf(\"r.Done() expected 20; got %v\", n)\n\t}\n\n\tstatus[4] = r.Status()\n\tstatus[5] = nextStatus(r.Monitor) // Timeout\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\n\t\t{true, start, _100ms, 0, 10, 1, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _200ms, _100ms, 20, 2, 100, 100, 100, 100, 0, 0, 0},\n\t\t{true, start, _300ms, _200ms, 20, 3, 0, 90, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t\t{false, start, _300ms, 0, 20, 3, 0, 0, 67, 100, 0, 0, 0},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"r.Status(%v)\\nexpected: %v\\ngot : %v\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b[:20], in[:20]) {\n\t\tt.Errorf(\"r.Read() input doesn't match output\")\n\t}\n}\n\n// XXX blocking writer test doesn't work.\nfunc _TestWriter(t *testing.T) {\n\tb := make([]byte, 100)\n\tfor i := range b {\n\t\tb[i] = byte(i)\n\t}\n\tw := NewWriter(\u0026bytes.Buffer{}, 200)\n\tstart := time.Now()\n\n\t// Make sure w implements Limiter\n\t_ = Limiter(w)\n\n\t// Non-blocking 20-byte write for the first sample returns ErrLimit\n\tw.SetBlocking(false)\n\tif n, err := w.Write(b); n != 20 || err != ErrLimit {\n\t\tt.Fatalf(\"w.Write(b) expected 20 (ErrLimit); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003e _50ms {\n\t\tt.Fatalf(\"w.Write(b) took too long (%v)\", rt)\n\t}\n\n\t// Blocking 80-byte write\n\t// w.SetBlocking(true)\n\t// XXX This test doesn't work, because w.Write calls w.Limit(block=false),\n\t// XXX and it returns ErrLimit after 20. What we want is to keep waiting until 80 is returned,\n\t// XXX but blocking isn't supported. Sleeping 800 shouldn't be sufficient either (its a burst).\n\t// XXX This limits the usage of Limiter and m.Limit().\n\tios_test.Sleep(800 * time.Millisecond)\n\tif n, err := w.Write(b[20:]); n \u003c 80 {\n\t} else if n != 80 || err != nil {\n\t\tt.Fatalf(\"w.Write(b[20:]) expected 80 (\u003cnil\u003e); got %v (%v)\", n, err.Error())\n\t} else if rt := time.Since(start); rt \u003c _300ms {\n\t\t// Explanation for `rt \u003c _300ms` (as opposed to `\u003c _400ms`)\n\t\t//\n\t\t// |\u003c-- start | |\n\t\t// epochs: -----0ms|---100ms|---200ms|---300ms|---400ms\n\t\t// sends: 20|20 |20 |20 |20#\n\t\t//\n\t\t// NOTE: The '#' symbol can thus happen before 400ms is up.\n\t\t// Thus, we can only panic if rt \u003c _300ms.\n\t\tt.Fatalf(\"w.Write(b[20:]) returned ahead of time (%v)\", rt.String())\n\t}\n\n\tw.SetTransferSize(100)\n\tstatus := []Status{w.Status(), nextStatus(w.Monitor)}\n\tstart = status[0].Start\n\n\t// Active, Start, Duration, Idle, Bytes, Samples, InstRate, CurRate, AvgRate, PeakRate, BytesRem, TimeRem, Progress\n\twant := []Status{\n\t\t{true, start, _400ms, 0, 80, 4, 200, 200, 200, 200, 20, _100ms, 80000},\n\t\t{true, start, _500ms, _100ms, 100, 5, 200, 200, 200, 200, 0, 0, 100000},\n\t}\n\tfor i, s := range status {\n\t\t// XXX s := s\n\t\tif !statusesAreEqual(\u0026s, \u0026want[i]) {\n\t\t\tt.Errorf(\"w.Status(%v)\\nexpected: %v\\ngot : %v\\n\", i, want[i].String(), s.String())\n\t\t}\n\t}\n\tif !bytes.Equal(b, w.Writer.(*bytes.Buffer).Bytes()) {\n\t\tt.Errorf(\"w.Write() input doesn't match output\")\n\t}\n}\n\nconst (\n\tmaxDeviationForDuration = 50 * time.Millisecond\n\tmaxDeviationForRate int64 = 50\n)\n\n// statusesAreEqual returns true if s1 is equal to s2. Equality here means\n// general equality of fields except for the duration and rates, which can\n// drift due to unpredictable delays (e.g. thread wakes up 25ms after\n// `time.Sleep` has ended).\nfunc statusesAreEqual(s1 *Status, s2 *Status) bool {\n\tif s1.Active == s2.Active \u0026\u0026\n\t\ts1.Start == s2.Start \u0026\u0026\n\t\tdurationsAreEqual(s1.Duration, s2.Duration, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Idle == s2.Idle \u0026\u0026\n\t\ts1.Bytes == s2.Bytes \u0026\u0026\n\t\ts1.Samples == s2.Samples \u0026\u0026\n\t\tratesAreEqual(s1.InstRate, s2.InstRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.CurRate, s2.CurRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.AvgRate, s2.AvgRate, maxDeviationForRate) \u0026\u0026\n\t\tratesAreEqual(s1.PeakRate, s2.PeakRate, maxDeviationForRate) \u0026\u0026\n\t\ts1.BytesRem == s2.BytesRem \u0026\u0026\n\t\tdurationsAreEqual(s1.TimeRem, s2.TimeRem, maxDeviationForDuration) \u0026\u0026\n\t\ts1.Progress == s2.Progress {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc durationsAreEqual(d1 time.Duration, d2 time.Duration, maxDeviation time.Duration) bool {\n\treturn d2-d1 \u003c= maxDeviation\n}\n\nfunc ratesAreEqual(r1 int64, r2 int64, maxDeviation int64) bool {\n\tsub := r1 - r2\n\tif sub \u003c 0 {\n\t\tsub = -sub\n\t}\n\tif sub \u003c= maxDeviation {\n\t\treturn true\n\t}\n\treturn false\n}\n"},{"name":"util.gno","body":"//\n// Written by Maxim Khitrov (November 2012)\n//\n\npackage flow\n\nimport (\n\t\"math\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// clockRate is the resolution and precision of clock().\nconst clockRate = 20 * time.Millisecond\n\n// czero is the process start time rounded down to the nearest clockRate\n// increment.\nvar czero = time.Now().Round(clockRate)\n\n// clock returns a low resolution timestamp relative to the process start time.\nfunc clock() time.Duration {\n\treturn time.Now().Round(clockRate).Sub(czero)\n}\n\n// clockToTime converts a clock() timestamp to an absolute time.Time value.\nfunc clockToTime(c time.Duration) time.Time {\n\treturn czero.Add(c)\n}\n\n// clockRound returns d rounded to the nearest clockRate increment.\nfunc clockRound(d time.Duration) time.Duration {\n\treturn (d + clockRate\u003e\u003e1) / clockRate * clockRate\n}\n\n// round returns x rounded to the nearest int64 (non-negative values only).\nfunc round(x float64) int64 {\n\tif _, frac := math.Modf(x); frac \u003e= 0.5 {\n\t\treturn int64(math.Ceil(x))\n\t}\n\treturn int64(math.Floor(x))\n}\n\n// Percent represents a percentage in increments of 1/1000th of a percent.\ntype Percent uint32\n\n// percentOf calculates what percent of the total is x.\nfunc percentOf(x, total float64) Percent {\n\tif x \u003c 0 || total \u003c= 0 {\n\t\treturn 0\n\t} else if p := round(x / total * 1e5); p \u003c= math.MaxUint32 {\n\t\treturn Percent(p)\n\t}\n\treturn Percent(math.MaxUint32)\n}\n\nfunc (p Percent) Float() float64 {\n\treturn float64(p) * 1e-3\n}\n\nfunc (p Percent) String() string {\n\tvar buf [12]byte\n\tb := strconv.AppendUint(buf[:0], uint64(p)/1000, 10)\n\tn := len(b)\n\tb = strconv.AppendUint(b, 1000+uint64(p)%1000, 10)\n\tb[n] = '.'\n\treturn string(append(b, '%'))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YBiMuCMQ64P0yPG2k7mS6DEv8hG2oKGdSqG9a+ZH7tAW+lofjUS8QlWFroQoVP5AmNL8FB3IfygQJX/AjaPvCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"foo1155","path":"gno.land/r/demo/foo1155","files":[{"name":"foo1155.gno","body":"package foo1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tdummyURI = \"ipfs://xyz\"\n\tadmin std.Address = \"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\"\n\tfoo = grc1155.NewBasicGRC1155Token(dummyURI)\n)\n\nfunc init() {\n\tmintGRC1155Token(admin) // @administrator (10)\n}\n\nfunc mintGRC1155Token(owner std.Address) {\n\tfor i := 1; i \u003c= 10; i++ {\n\t\ttid := grc1155.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.SafeMint(owner, tid, 100)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName, tid grc1155.TokenID) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc BalanceOfBatch(ul []pusers.AddressOrName, batch []grc1155.TokenID) []uint64 {\n\tvar usersResolved []std.Address\n\n\tfor i := 0; i \u003c len(ul); i++ {\n\t\tusersResolved[i] = users.Resolve(ul[i])\n\t}\n\tbalanceBatch, err := foo.BalanceOfBatch(usersResolved, batch)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balanceBatch\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\n// Setters\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\terr := foo.SafeTransferFrom(users.Resolve(from), users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BatchTransferFrom(from, to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\terr := foo.SafeBatchTransferFrom(users.Resolve(from), users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeMint(users.Resolve(to), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc MintBatch(to pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.SafeBatchMint(users.Resolve(to), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(from pusers.AddressOrName, tid grc1155.TokenID, amount uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(users.Resolve(from), tid, amount)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc BurnBatch(from pusers.AddressOrName, batch []grc1155.TokenID, amounts []uint64) {\n\tcaller := std.GetOrigCaller()\n\tassertIsAdmin(caller)\n\terr := foo.BatchBurn(users.Resolve(from), batch, amounts)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo1155_test.gno","body":"package foo1155\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc1155\"\n\t\"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := users.AddressOrName(\"g10x5phu0k6p64cwrhfpsc8tk43st9kug6wft530\")\n\tbob := users.AddressOrName(\"g1ze6et22ces5atv79y4xh38s4kuraey4y2fr6tw\")\n\ttid1 := grc1155.TokenID(\"1\")\n\ttid2 := grc1155.TokenID(\"2\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin, tid1)\", uint64(100), func() interface{} { return BalanceOf(admin, tid1) }},\n\t\t{\"BalanceOf(bob, tid1)\", uint64(0), func() interface{} { return BalanceOf(bob, tid1) }},\n\t\t{\"IsApprovedForAll(admin, bob)\", false, func() interface{} { return IsApprovedForAll(admin, bob) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"54ShX+WGHgYhaxjV75SpqUhH7URo44MtmkF6B3YGz5ieEDY/WUurUUq7j5uQQ/5EFKPkhax3G/AgOz6qM5shDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"foo20","path":"gno.land/r/demo/foo20","files":[{"name":"foo20.gno","body":"// foo20 is a GRC20 token contract where all the grc20.Teller methods are\n// proxified with top-level functions. see also gno.land/r/demo/bar20.\npackage foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/grc20reg\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\tToken, privateLedger = grc20.NewToken(\"Foo\", \"FOO\", 4)\n\tUserTeller = Token.CallerTeller()\n\tOwnable = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @manfred\n)\n\nfunc init() {\n\tprivateLedger.Mint(Ownable.Owner(), 1_000_000*10_000) // @privateLedgeristrator (1M)\n\tgrc20reg.Register(Token.Getter(), \"\")\n}\n\nfunc TotalSupply() uint64 {\n\treturn UserTeller.TotalSupply()\n}\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn UserTeller.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn UserTeller.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tcheckErr(UserTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tcheckErr(UserTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\n// Faucet is distributing foo20 tokens without restriction (unsafe).\n// For a real token faucet, you should take care of setting limits are asking payment.\nfunc Faucet() {\n\tcaller := std.PrevRealm().Addr()\n\tamount := uint64(1_000 * 10_000) // 1k\n\tcheckErr(privateLedger.Mint(caller, amount))\n}\n\nfunc Mint(to pusers.AddressOrName, amount uint64) {\n\tOwnable.AssertCallerIsOwner()\n\ttoAddr := users.Resolve(to)\n\tcheckErr(privateLedger.Mint(toAddr, amount))\n}\n\nfunc Burn(from pusers.AddressOrName, amount uint64) {\n\tOwnable.AssertCallerIsOwner()\n\tfromAddr := users.Resolve(from)\n\tcheckErr(privateLedger.Burn(fromAddr, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := pusers.AddressOrName(parts[1])\n\t\townerAddr := users.Resolve(owner)\n\t\tbalance := UserTeller.BalanceOf(ownerAddr)\n\t\treturn ufmt.Sprintf(\"%d\\n\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"foo20_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tbob = pusers.AddressOrName(testutils.TestAddress(\"bob\"))\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\t// check balances #1.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_000_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 0, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n\n\t// bob uses the faucet.\n\tstd.TestSetOrigCaller(users.Resolve(bob))\n\tFaucet()\n\n\t// check balances #2.\n\t{\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", 10_010_000_000, func() uint64 { return TotalSupply() }},\n\t\t\t{\"BalanceOf(admin)\", 10_000_000_000, func() uint64 { return BalanceOf(admin) }},\n\t\t\t{\"BalanceOf(alice)\", 0, func() uint64 { return BalanceOf(alice) }},\n\t\t\t{\"Allowance(admin, alice)\", 0, func() uint64 { return Allowance(admin, alice) }},\n\t\t\t{\"BalanceOf(bob)\", 10_000_000, func() uint64 { return BalanceOf(bob) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tgot := tc.fn()\n\t\t\tuassert.Equal(t, got, tc.balance)\n\t\t}\n\t}\n}\n\nfunc TestErrConditions(t *testing.T) {\n\tvar (\n\t\tadmin = pusers.AddressOrName(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\t\talice = pusers.AddressOrName(testutils.TestAddress(\"alice\"))\n\t\tempty = pusers.AddressOrName(\"\")\n\t)\n\n\ttype test struct {\n\t\tname string\n\t\tmsg string\n\t\tfn func()\n\t}\n\n\tprivateLedger.Mint(std.Address(admin), 10000)\n\t{\n\t\ttests := []test{\n\t\t\t{\"Transfer(admin, 1)\", \"cannot send transfer to self\", func() {\n\t\t\t\t// XXX: should replace with: Transfer(admin, 1)\n\t\t\t\t// but there is currently a limitation in manipulating the frame stack and simulate\n\t\t\t\t// calling this package from an outside point of view.\n\t\t\t\tadminAddr := std.Address(admin)\n\t\t\t\tif err := privateLedger.Transfer(adminAddr, adminAddr, 1); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t}},\n\t\t\t{\"Approve(empty, 1))\", \"invalid address\", func() { Approve(empty, 1) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t\tuassert.PanicsWithMessage(t, tc.msg, tc.fn)\n\t\t\t})\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XtsfxK2lOHDl5n1y6OaKewx4PXIF01tdPFK+x/jYsY0Uehvkf9UYWQjeo41zWEV6WUI/YSqRqH/yQtlhWuBoCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"foo20","path":"gno.land/r/demo/grc20factory","files":[{"name":"grc20factory.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/grc20reg\"\n)\n\nvar instances avl.Tree // symbol -\u003e instance\n\ntype instance struct {\n\ttoken *grc20.Token\n\tledger *grc20.PrivateLedger\n\tadmin *ownable.Ownable\n\tfaucet uint64 // per-request amount. disabled if 0.\n}\n\nfunc New(name, symbol string, decimals uint, initialMint, faucet uint64) {\n\tcaller := std.PrevRealm().Addr()\n\tNewWithAdmin(name, symbol, decimals, initialMint, faucet, caller)\n}\n\nfunc NewWithAdmin(name, symbol string, decimals uint, initialMint, faucet uint64, admin std.Address) {\n\texists := instances.Has(symbol)\n\tif exists {\n\t\tpanic(\"token already exists\")\n\t}\n\n\ttoken, ledger := grc20.NewToken(name, symbol, decimals)\n\tif initialMint \u003e 0 {\n\t\tledger.Mint(admin, initialMint)\n\t}\n\n\tinst := instance{\n\t\ttoken: token,\n\t\tledger: ledger,\n\t\tadmin: ownable.NewWithAddress(admin),\n\t\tfaucet: faucet,\n\t}\n\tinstances.Set(symbol, \u0026inst)\n\tgrc20reg.Register(token.Getter(), symbol)\n}\n\nfunc (inst instance) Token() *grc20.Token {\n\treturn inst.token\n}\n\nfunc (inst instance) CallerTeller() grc20.Teller {\n\treturn inst.token.CallerTeller()\n}\n\nfunc Bank(symbol string) *grc20.Token {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token\n}\n\nfunc TotalSupply(symbol string) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().TotalSupply()\n}\n\nfunc BalanceOf(symbol string, owner std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().BalanceOf(owner)\n}\n\nfunc Allowance(symbol string, owner, spender std.Address) uint64 {\n\tinst := mustGetInstance(symbol)\n\treturn inst.token.ReadonlyTeller().Allowance(owner, spender)\n}\n\nfunc Transfer(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Transfer(to, amount))\n}\n\nfunc Approve(symbol string, spender std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.Approve(spender, amount))\n}\n\nfunc TransferFrom(symbol string, from, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tcaller := std.PrevRealm().Addr()\n\tteller := inst.ledger.ImpersonateTeller(caller)\n\tcheckErr(teller.TransferFrom(from, to, amount))\n}\n\n// faucet.\nfunc Faucet(symbol string) {\n\tinst := mustGetInstance(symbol)\n\tif inst.faucet == 0 {\n\t\tpanic(\"faucet disabled for this token\")\n\t}\n\t// FIXME: add limits?\n\t// FIXME: add payment in gnot?\n\tcaller := std.PrevRealm().Addr()\n\tcheckErr(inst.ledger.Mint(caller, inst.faucet))\n}\n\nfunc Mint(symbol string, to std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Mint(to, amount))\n}\n\nfunc Burn(symbol string, from std.Address, amount uint64) {\n\tinst := mustGetInstance(symbol)\n\tinst.admin.AssertCallerIsOwner()\n\tcheckErr(inst.ledger.Burn(from, amount))\n}\n\n// instance admin functionality\nfunc DropInstanceOwnership(symbol string) {\n\tinst := mustGetInstance(symbol)\n\tcheckErr(inst.admin.DropOwnership())\n}\n\nfunc TransferInstanceOwnership(symbol string, newOwner std.Address) {\n\tinst := mustGetInstance(symbol)\n\tcheckErr(inst.admin.TransferOwnership(newOwner))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn \"TODO: list existing tokens and admins\"\n\tcase c == 1:\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\treturn inst.token.RenderHome()\n\tcase c == 3 \u0026\u0026 parts[1] == \"balance\":\n\t\tsymbol := parts[0]\n\t\tinst := mustGetInstance(symbol)\n\t\towner := std.Address(parts[2])\n\t\tbalance := inst.token.CallerTeller().BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\nfunc mustGetInstance(symbol string) *instance {\n\tt, exists := instances.Get(symbol)\n\tif !exists {\n\t\tpanic(\"token instance does not exist\")\n\t}\n\treturn t.(*instance)\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"},{"name":"grc20factory_test.gno","body":"package foo20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestReadOnlyPublicMethods(t *testing.T) {\n\tstd.TestSetOrigPkgAddr(\"gno.land/r/demo/grc20factory\")\n\tadmin := testutils.TestAddress(\"admin\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttype test struct {\n\t\tname string\n\t\tbalance uint64\n\t\tfn func() uint64\n\t}\n\n\tcheckBalances := func(step string, totSup, balAdm, balBob, allowAdmBob, balCarl uint64) {\n\t\ttests := []test{\n\t\t\t{\"TotalSupply\", totSup, func() uint64 { return TotalSupply(\"FOO\") }},\n\t\t\t{\"BalanceOf(admin)\", balAdm, func() uint64 { return BalanceOf(\"FOO\", admin) }},\n\t\t\t{\"BalanceOf(bob)\", balBob, func() uint64 { return BalanceOf(\"FOO\", bob) }},\n\t\t\t{\"Allowance(admin, bob)\", allowAdmBob, func() uint64 { return Allowance(\"FOO\", admin, bob) }},\n\t\t\t{\"BalanceOf(carl)\", balCarl, func() uint64 { return BalanceOf(\"FOO\", carl) }},\n\t\t}\n\t\tfor _, tc := range tests {\n\t\t\treason := ufmt.Sprintf(\"%s.%s - %s\", step, tc.name, \"balances do not match\")\n\t\t\tuassert.Equal(t, tc.balance, tc.fn(), reason)\n\t\t}\n\t}\n\n\t// admin creates FOO and BAR.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tNewWithAdmin(\"Foo\", \"FOO\", 3, 1_111_111_000, 5_555, admin)\n\tNewWithAdmin(\"Bar\", \"BAR\", 3, 2_222_000, 6_666, admin)\n\tcheckBalances(\"step1\", 1_111_111_000, 1_111_111_000, 0, 0, 0)\n\n\t// admin mints to bob.\n\tmustGetInstance(\"FOO\").ledger.Mint(bob, 333_333_000)\n\tcheckBalances(\"step2\", 1_444_444_000, 1_111_111_000, 333_333_000, 0, 0)\n\n\t// carl uses the faucet.\n\tstd.TestSetOrigCaller(carl)\n\tstd.TestSetRealm(std.NewUserRealm(carl))\n\tFaucet(\"FOO\")\n\tcheckBalances(\"step3\", 1_444_449_555, 1_111_111_000, 333_333_000, 0, 5_555)\n\n\t// admin gives to bob some allowance.\n\tstd.TestSetOrigCaller(admin)\n\tstd.TestSetRealm(std.NewUserRealm(admin))\n\tApprove(\"FOO\", bob, 1_000_000)\n\tcheckBalances(\"step4\", 1_444_449_555, 1_111_111_000, 333_333_000, 1_000_000, 5_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 400_000)\n\tcheckBalances(\"step5\", 1_444_449_555, 1_110_711_000, 333_333_000, 600_000, 405_555)\n\n\t// bob uses a part of the allowance.\n\tstd.TestSetOrigCaller(bob)\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tTransferFrom(\"FOO\", admin, carl, 600_000)\n\tcheckBalances(\"step6\", 1_444_449_555, 1_110_111_000, 333_333_000, 0, 1_005_555)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VcK3h26bIxLzTfeNZbTMexfZYwhIbkeiY4jrqEk0dL7bFngYY1qk3LP90LvJj8pHFQtuGqYP4tDcOQygSe7ICg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"foo721","path":"gno.land/r/demo/foo721","files":[{"name":"foo721.gno","body":"package foo721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\tadmin std.Address = \"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\"\n\tfoo = grc721.NewBasicNFT(\"FooNFT\", \"FNFT\")\n)\n\nfunc init() {\n\tmintNNFT(admin, 10) // @administrator (10)\n\tmintNNFT(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", 5) // @hariom (5)\n}\n\nfunc mintNNFT(owner std.Address, n uint64) {\n\tcount := foo.TokenCount()\n\tfor i := count; i \u003c count+n; i++ {\n\t\ttid := grc721.TokenID(ufmt.Sprintf(\"%d\", i))\n\t\tfoo.Mint(owner, tid)\n\t}\n}\n\n// Getters\n\nfunc BalanceOf(user pusers.AddressOrName) uint64 {\n\tbalance, err := foo.BalanceOf(users.Resolve(user))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn balance\n}\n\nfunc OwnerOf(tid grc721.TokenID) std.Address {\n\towner, err := foo.OwnerOf(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn owner\n}\n\nfunc IsApprovedForAll(owner, user pusers.AddressOrName) bool {\n\treturn foo.IsApprovedForAll(users.Resolve(owner), users.Resolve(user))\n}\n\nfunc GetApproved(tid grc721.TokenID) std.Address {\n\taddr, err := foo.GetApproved(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn addr\n}\n\n// Setters\n\nfunc Approve(user pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.Approve(users.Resolve(user), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc SetApprovalForAll(user pusers.AddressOrName, approved bool) {\n\terr := foo.SetApprovalForAll(users.Resolve(user), approved)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, tid grc721.TokenID) {\n\terr := foo.TransferFrom(users.Resolve(from), users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Admin\n\nfunc Mint(to pusers.AddressOrName, tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Mint(users.Resolve(to), tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Burn(tid grc721.TokenID) {\n\tcaller := std.PrevRealm().Addr()\n\tassertIsAdmin(caller)\n\terr := foo.Burn(tid)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Render\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\":\n\t\treturn foo.RenderHome()\n\tdefault:\n\t\treturn \"404\\n\"\n\t}\n}\n\n// Util\n\nfunc assertIsAdmin(address std.Address) {\n\tif address != admin {\n\t\tpanic(\"restricted access\")\n\t}\n}\n"},{"name":"foo721_test.gno","body":"package foo721\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc721\"\n\t\"gno.land/r/demo/users\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nfunc TestFoo721(t *testing.T) {\n\tadmin := pusers.AddressOrName(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\thariom := pusers.AddressOrName(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tfor i, tc := range []struct {\n\t\tname string\n\t\texpected interface{}\n\t\tfn func() interface{}\n\t}{\n\t\t{\"BalanceOf(admin)\", uint64(10), func() interface{} { return BalanceOf(admin) }},\n\t\t{\"BalanceOf(hariom)\", uint64(5), func() interface{} { return BalanceOf(hariom) }},\n\t\t{\"OwnerOf(0)\", users.Resolve(admin), func() interface{} { return OwnerOf(grc721.TokenID(\"0\")) }},\n\t\t{\"IsApprovedForAll(admin, hariom)\", false, func() interface{} { return IsApprovedForAll(admin, hariom) }},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tgot := tc.fn()\n\t\t\tif tc.expected != got {\n\t\t\t\tt.Errorf(\"expected: %v got: %v\", tc.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3CoTWC55HakJW+kX0JL0ffTWMjVlEAA0RVbIG2TrqbcAjyLSw8WwtaZxvbKZPZpRbfMHyp9bRzNHUFeDY0CdDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"fp","path":"gno.land/p/moul/fp","files":[{"name":"fp.gno","body":"// Package fp provides functional programming utilities for Gno, enabling\n// transformations, filtering, and other operations on slices of interface{}.\n//\n// Example of chaining operations:\n//\n//\tnumbers := []interface{}{1, 2, 3, 4, 5, 6}\n//\n//\t// Define predicates, mappers and reducers\n//\tisEven := func(v interface{}) bool { return v.(int)%2 == 0 }\n//\tdouble := func(v interface{}) interface{} { return v.(int) * 2 }\n//\tsum := func(a, b interface{}) interface{} { return a.(int) + b.(int) }\n//\n//\t// Chain operations: filter even numbers, double them, then sum\n//\tevenNums := Filter(numbers, isEven) // [2, 4, 6]\n//\tdoubled := Map(evenNums, double) // [4, 8, 12]\n//\tresult := Reduce(doubled, sum, 0) // 24\n//\n//\t// Alternative: group by even/odd, then get even numbers\n//\tbyMod2 := func(v interface{}) interface{} { return v.(int) % 2 }\n//\tgrouped := GroupBy(numbers, byMod2) // {0: [2,4,6], 1: [1,3,5]}\n//\tevens := grouped[0] // [2,4,6]\npackage fp\n\n// Mapper is a function type that maps an element to another element.\ntype Mapper func(interface{}) interface{}\n\n// Predicate is a function type that evaluates a condition on an element.\ntype Predicate func(interface{}) bool\n\n// Reducer is a function type that reduces two elements to a single value.\ntype Reducer func(interface{}, interface{}) interface{}\n\n// Filter filters elements from the slice that satisfy the given predicate.\n//\n// Example:\n//\n//\tnumbers := []interface{}{-1, 0, 1, 2}\n//\tisPositive := func(v interface{}) bool { return v.(int) \u003e 0 }\n//\tresult := Filter(numbers, isPositive) // [1, 2]\nfunc Filter(values []interface{}, fn Predicate) []interface{} {\n\tresult := []interface{}{}\n\tfor _, v := range values {\n\t\tif fn(v) {\n\t\t\tresult = append(result, v)\n\t\t}\n\t}\n\treturn result\n}\n\n// Map applies a function to each element in the slice.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 2, 3}\n//\ttoString := func(v interface{}) interface{} { return fmt.Sprintf(\"%d\", v) }\n//\tresult := Map(numbers, toString) // [\"1\", \"2\", \"3\"]\nfunc Map(values []interface{}, fn Mapper) []interface{} {\n\tresult := make([]interface{}, len(values))\n\tfor i, v := range values {\n\t\tresult[i] = fn(v)\n\t}\n\treturn result\n}\n\n// Reduce reduces a slice to a single value by applying a function.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 2, 3, 4}\n//\tsum := func(a, b interface{}) interface{} { return a.(int) + b.(int) }\n//\tresult := Reduce(numbers, sum, 0) // 10\nfunc Reduce(values []interface{}, fn Reducer, initial interface{}) interface{} {\n\tacc := initial\n\tfor _, v := range values {\n\t\tacc = fn(acc, v)\n\t}\n\treturn acc\n}\n\n// FlatMap maps each element to a collection and flattens the results.\n//\n// Example:\n//\n//\twords := []interface{}{\"hello\", \"world\"}\n//\tsplit := func(v interface{}) interface{} {\n//\t chars := []interface{}{}\n//\t for _, c := range v.(string) {\n//\t chars = append(chars, string(c))\n//\t }\n//\t return chars\n//\t}\n//\tresult := FlatMap(words, split) // [\"h\",\"e\",\"l\",\"l\",\"o\",\"w\",\"o\",\"r\",\"l\",\"d\"]\nfunc FlatMap(values []interface{}, fn Mapper) []interface{} {\n\tresult := []interface{}{}\n\tfor _, v := range values {\n\t\tinner := fn(v).([]interface{})\n\t\tresult = append(result, inner...)\n\t}\n\treturn result\n}\n\n// All returns true if all elements satisfy the predicate.\n//\n// Example:\n//\n//\tnumbers := []interface{}{2, 4, 6, 8}\n//\tisEven := func(v interface{}) bool { return v.(int)%2 == 0 }\n//\tresult := All(numbers, isEven) // true\nfunc All(values []interface{}, fn Predicate) bool {\n\tfor _, v := range values {\n\t\tif !fn(v) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Any returns true if at least one element satisfies the predicate.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 3, 4, 7}\n//\tisEven := func(v interface{}) bool { return v.(int)%2 == 0 }\n//\tresult := Any(numbers, isEven) // true (4 is even)\nfunc Any(values []interface{}, fn Predicate) bool {\n\tfor _, v := range values {\n\t\tif fn(v) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// None returns true if no elements satisfy the predicate.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 3, 5, 7}\n//\tisEven := func(v interface{}) bool { return v.(int)%2 == 0 }\n//\tresult := None(numbers, isEven) // true (no even numbers)\nfunc None(values []interface{}, fn Predicate) bool {\n\tfor _, v := range values {\n\t\tif fn(v) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Chunk splits a slice into chunks of the given size.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 2, 3, 4, 5}\n//\tresult := Chunk(numbers, 2) // [[1,2], [3,4], [5]]\nfunc Chunk(values []interface{}, size int) [][]interface{} {\n\tif size \u003c= 0 {\n\t\treturn nil\n\t}\n\tvar chunks [][]interface{}\n\tfor i := 0; i \u003c len(values); i += size {\n\t\tend := i + size\n\t\tif end \u003e len(values) {\n\t\t\tend = len(values)\n\t\t}\n\t\tchunks = append(chunks, values[i:end])\n\t}\n\treturn chunks\n}\n\n// Find returns the first element that satisfies the predicate and a boolean indicating if an element was found.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 2, 3, 4}\n//\tisEven := func(v interface{}) bool { return v.(int)%2 == 0 }\n//\tresult, found := Find(numbers, isEven) // 2, true\nfunc Find(values []interface{}, fn Predicate) (interface{}, bool) {\n\tfor _, v := range values {\n\t\tif fn(v) {\n\t\t\treturn v, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// Reverse reverses the order of elements in a slice.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 2, 3}\n//\tresult := Reverse(numbers) // [3, 2, 1]\nfunc Reverse(values []interface{}) []interface{} {\n\tresult := make([]interface{}, len(values))\n\tfor i, v := range values {\n\t\tresult[len(values)-1-i] = v\n\t}\n\treturn result\n}\n\n// Zip combines two slices into a slice of pairs. If the slices have different lengths,\n// extra elements from the longer slice are ignored.\n//\n// Example:\n//\n//\ta := []interface{}{1, 2, 3}\n//\tb := []interface{}{\"a\", \"b\", \"c\"}\n//\tresult := Zip(a, b) // [[1,\"a\"], [2,\"b\"], [3,\"c\"]]\nfunc Zip(a, b []interface{}) [][2]interface{} {\n\tlength := min(len(a), len(b))\n\tresult := make([][2]interface{}, length)\n\tfor i := 0; i \u003c length; i++ {\n\t\tresult[i] = [2]interface{}{a[i], b[i]}\n\t}\n\treturn result\n}\n\n// Unzip splits a slice of pairs into two separate slices.\n//\n// Example:\n//\n//\tpairs := [][2]interface{}{{1,\"a\"}, {2,\"b\"}, {3,\"c\"}}\n//\tnumbers, letters := Unzip(pairs) // [1,2,3], [\"a\",\"b\",\"c\"]\nfunc Unzip(pairs [][2]interface{}) ([]interface{}, []interface{}) {\n\ta := make([]interface{}, len(pairs))\n\tb := make([]interface{}, len(pairs))\n\tfor i, pair := range pairs {\n\t\ta[i] = pair[0]\n\t\tb[i] = pair[1]\n\t}\n\treturn a, b\n}\n\n// GroupBy groups elements based on a key returned by a Mapper.\n//\n// Example:\n//\n//\tnumbers := []interface{}{1, 2, 3, 4, 5, 6}\n//\tbyMod3 := func(v interface{}) interface{} { return v.(int) % 3 }\n//\tresult := GroupBy(numbers, byMod3) // {0: [3,6], 1: [1,4], 2: [2,5]}\nfunc GroupBy(values []interface{}, fn Mapper) map[interface{}][]interface{} {\n\tresult := make(map[interface{}][]interface{})\n\tfor _, v := range values {\n\t\tkey := fn(v)\n\t\tresult[key] = append(result[key], v)\n\t}\n\treturn result\n}\n\n// Flatten flattens a slice of slices into a single slice.\n//\n// Example:\n//\n//\tnested := [][]interface{}{{1,2}, {3,4}, {5}}\n//\tresult := Flatten(nested) // [1,2,3,4,5]\nfunc Flatten(values [][]interface{}) []interface{} {\n\tresult := []interface{}{}\n\tfor _, v := range values {\n\t\tresult = append(result, v...)\n\t}\n\treturn result\n}\n\n// Helper functions\nfunc min(a, b int) int {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"fp_test.gno","body":"package fp\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestMap(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}) interface{}\n\t\texpected []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"multiply numbers by 2\",\n\t\t\tinput: []interface{}{1, 2, 3},\n\t\t\tfn: func(v interface{}) interface{} { return v.(int) * 2 },\n\t\t\texpected: []interface{}{2, 4, 6},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tfn: func(v interface{}) interface{} { return v.(int) * 2 },\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"convert numbers to strings\",\n\t\t\tinput: []interface{}{1, 2, 3},\n\t\t\tfn: func(v interface{}) interface{} { return fmt.Sprintf(\"%d\", v.(int)) },\n\t\t\texpected: []interface{}{\"1\", \"2\", \"3\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := Map(tt.input, tt.fn)\n\t\t\tif !equalSlices(result, tt.expected) {\n\t\t\t\tt.Errorf(\"Map failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestFilter(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}) bool\n\t\texpected []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"filter even numbers\",\n\t\t\tinput: []interface{}{1, 2, 3, 4},\n\t\t\tfn: func(v interface{}) bool { return v.(int)%2 == 0 },\n\t\t\texpected: []interface{}{2, 4},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tfn: func(v interface{}) bool { return v.(int)%2 == 0 },\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"no matches\",\n\t\t\tinput: []interface{}{1, 3, 5},\n\t\t\tfn: func(v interface{}) bool { return v.(int)%2 == 0 },\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"all matches\",\n\t\t\tinput: []interface{}{2, 4, 6},\n\t\t\tfn: func(v interface{}) bool { return v.(int)%2 == 0 },\n\t\t\texpected: []interface{}{2, 4, 6},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := Filter(tt.input, tt.fn)\n\t\t\tif !equalSlices(result, tt.expected) {\n\t\t\t\tt.Errorf(\"Filter failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestReduce(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}, interface{}) interface{}\n\t\tinitial interface{}\n\t\texpected interface{}\n\t}{\n\t\t{\n\t\t\tname: \"sum numbers\",\n\t\t\tinput: []interface{}{1, 2, 3},\n\t\t\tfn: func(a, b interface{}) interface{} { return a.(int) + b.(int) },\n\t\t\tinitial: 0,\n\t\t\texpected: 6,\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tfn: func(a, b interface{}) interface{} { return a.(int) + b.(int) },\n\t\t\tinitial: 0,\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"concatenate strings\",\n\t\t\tinput: []interface{}{\"a\", \"b\", \"c\"},\n\t\t\tfn: func(a, b interface{}) interface{} { return a.(string) + b.(string) },\n\t\t\tinitial: \"\",\n\t\t\texpected: \"abc\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := Reduce(tt.input, tt.fn, tt.initial)\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Reduce failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestFlatMap(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}) interface{}\n\t\texpected []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"split words into chars\",\n\t\t\tinput: []interface{}{\"go\", \"fn\"},\n\t\t\tfn: func(word interface{}) interface{} {\n\t\t\t\tchars := []interface{}{}\n\t\t\t\tfor _, c := range word.(string) {\n\t\t\t\t\tchars = append(chars, string(c))\n\t\t\t\t}\n\t\t\t\treturn chars\n\t\t\t},\n\t\t\texpected: []interface{}{\"g\", \"o\", \"f\", \"n\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty string handling\",\n\t\t\tinput: []interface{}{\"\", \"a\", \"\"},\n\t\t\tfn: func(word interface{}) interface{} {\n\t\t\t\tchars := []interface{}{}\n\t\t\t\tfor _, c := range word.(string) {\n\t\t\t\t\tchars = append(chars, string(c))\n\t\t\t\t}\n\t\t\t\treturn chars\n\t\t\t},\n\t\t\texpected: []interface{}{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"nil handling\",\n\t\t\tinput: []interface{}{nil, \"a\", nil},\n\t\t\tfn: func(word interface{}) interface{} {\n\t\t\t\tif word == nil {\n\t\t\t\t\treturn []interface{}{}\n\t\t\t\t}\n\t\t\t\treturn []interface{}{word}\n\t\t\t},\n\t\t\texpected: []interface{}{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice result\",\n\t\t\tinput: []interface{}{\"\", \"\", \"\"},\n\t\t\tfn: func(word interface{}) interface{} {\n\t\t\t\treturn []interface{}{}\n\t\t\t},\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"nested array flattening\",\n\t\t\tinput: []interface{}{1, 2, 3},\n\t\t\tfn: func(n interface{}) interface{} {\n\t\t\t\treturn []interface{}{n, n}\n\t\t\t},\n\t\t\texpected: []interface{}{1, 1, 2, 2, 3, 3},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := FlatMap(tt.input, tt.fn)\n\t\t\tif !equalSlices(result, tt.expected) {\n\t\t\t\tt.Errorf(\"FlatMap failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAllAnyNone(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}) bool\n\t\texpectedAll bool\n\t\texpectedAny bool\n\t\texpectedNone bool\n\t}{\n\t\t{\n\t\t\tname: \"all even numbers\",\n\t\t\tinput: []interface{}{2, 4, 6, 8},\n\t\t\tfn: func(x interface{}) bool { return x.(int)%2 == 0 },\n\t\t\texpectedAll: true,\n\t\t\texpectedAny: true,\n\t\t\texpectedNone: false,\n\t\t},\n\t\t{\n\t\t\tname: \"no even numbers\",\n\t\t\tinput: []interface{}{1, 3, 5, 7},\n\t\t\tfn: func(x interface{}) bool { return x.(int)%2 == 0 },\n\t\t\texpectedAll: false,\n\t\t\texpectedAny: false,\n\t\t\texpectedNone: true,\n\t\t},\n\t\t{\n\t\t\tname: \"mixed even/odd numbers\",\n\t\t\tinput: []interface{}{1, 2, 3, 4},\n\t\t\tfn: func(x interface{}) bool { return x.(int)%2 == 0 },\n\t\t\texpectedAll: false,\n\t\t\texpectedAny: true,\n\t\t\texpectedNone: false,\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tfn: func(x interface{}) bool { return x.(int)%2 == 0 },\n\t\t\texpectedAll: true, // vacuously true\n\t\t\texpectedAny: false, // vacuously false\n\t\t\texpectedNone: true, // vacuously true\n\t\t},\n\t\t{\n\t\t\tname: \"nil predicate handling\",\n\t\t\tinput: []interface{}{nil, nil, nil},\n\t\t\tfn: func(x interface{}) bool { return x == nil },\n\t\t\texpectedAll: true,\n\t\t\texpectedAny: true,\n\t\t\texpectedNone: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresultAll := All(tt.input, tt.fn)\n\t\t\tif resultAll != tt.expectedAll {\n\t\t\t\tt.Errorf(\"All failed, expected %v, got %v\", tt.expectedAll, resultAll)\n\t\t\t}\n\n\t\t\tresultAny := Any(tt.input, tt.fn)\n\t\t\tif resultAny != tt.expectedAny {\n\t\t\t\tt.Errorf(\"Any failed, expected %v, got %v\", tt.expectedAny, resultAny)\n\t\t\t}\n\n\t\t\tresultNone := None(tt.input, tt.fn)\n\t\t\tif resultNone != tt.expectedNone {\n\t\t\t\tt.Errorf(\"None failed, expected %v, got %v\", tt.expectedNone, resultNone)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestChunk(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tsize int\n\t\texpected [][]interface{}\n\t}{\n\t\t{\n\t\t\tname: \"normal chunks\",\n\t\t\tinput: []interface{}{1, 2, 3, 4, 5},\n\t\t\tsize: 2,\n\t\t\texpected: [][]interface{}{{1, 2}, {3, 4}, {5}},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tsize: 2,\n\t\t\texpected: [][]interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"chunk size equals length\",\n\t\t\tinput: []interface{}{1, 2, 3},\n\t\t\tsize: 3,\n\t\t\texpected: [][]interface{}{{1, 2, 3}},\n\t\t},\n\t\t{\n\t\t\tname: \"chunk size larger than length\",\n\t\t\tinput: []interface{}{1, 2},\n\t\t\tsize: 3,\n\t\t\texpected: [][]interface{}{{1, 2}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := Chunk(tt.input, tt.size)\n\t\t\tif !equalNestedSlices(result, tt.expected) {\n\t\t\t\tt.Errorf(\"Chunk failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestFind(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}) bool\n\t\texpected interface{}\n\t\tshouldFound bool\n\t}{\n\t\t{\n\t\t\tname: \"find first number greater than 2\",\n\t\t\tinput: []interface{}{1, 2, 3, 4},\n\t\t\tfn: func(v interface{}) bool { return v.(int) \u003e 2 },\n\t\t\texpected: 3,\n\t\t\tshouldFound: true,\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tfn: func(v interface{}) bool { return v.(int) \u003e 2 },\n\t\t\texpected: nil,\n\t\t\tshouldFound: false,\n\t\t},\n\t\t{\n\t\t\tname: \"no match\",\n\t\t\tinput: []interface{}{1, 2},\n\t\t\tfn: func(v interface{}) bool { return v.(int) \u003e 10 },\n\t\t\texpected: nil,\n\t\t\tshouldFound: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult, found := Find(tt.input, tt.fn)\n\t\t\tif found != tt.shouldFound {\n\t\t\t\tt.Errorf(\"Find failed, expected found=%v, got found=%v\", tt.shouldFound, found)\n\t\t\t}\n\t\t\tif found \u0026\u0026 result != tt.expected {\n\t\t\t\tt.Errorf(\"Find failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestReverse(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\texpected []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"normal sequence\",\n\t\t\tinput: []interface{}{1, 2, 3, 4},\n\t\t\texpected: []interface{}{4, 3, 2, 1},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"single element\",\n\t\t\tinput: []interface{}{1},\n\t\t\texpected: []interface{}{1},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed types\",\n\t\t\tinput: []interface{}{1, \"a\", true, 2.5},\n\t\t\texpected: []interface{}{2.5, true, \"a\", 1},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := Reverse(tt.input)\n\t\t\tif !equalSlices(result, tt.expected) {\n\t\t\t\tt.Errorf(\"Reverse failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestZipUnzip(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\ta []interface{}\n\t\tb []interface{}\n\t\texpectedZip [][2]interface{}\n\t\texpectedA []interface{}\n\t\texpectedB []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"normal case\",\n\t\t\ta: []interface{}{1, 2, 3},\n\t\t\tb: []interface{}{\"a\", \"b\", \"c\"},\n\t\t\texpectedZip: [][2]interface{}{{1, \"a\"}, {2, \"b\"}, {3, \"c\"}},\n\t\t\texpectedA: []interface{}{1, 2, 3},\n\t\t\texpectedB: []interface{}{\"a\", \"b\", \"c\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slices\",\n\t\t\ta: []interface{}{},\n\t\t\tb: []interface{}{},\n\t\t\texpectedZip: [][2]interface{}{},\n\t\t\texpectedA: []interface{}{},\n\t\t\texpectedB: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"different lengths - a shorter\",\n\t\t\ta: []interface{}{1, 2},\n\t\t\tb: []interface{}{\"a\", \"b\", \"c\"},\n\t\t\texpectedZip: [][2]interface{}{{1, \"a\"}, {2, \"b\"}},\n\t\t\texpectedA: []interface{}{1, 2},\n\t\t\texpectedB: []interface{}{\"a\", \"b\"},\n\t\t},\n\t\t{\n\t\t\tname: \"different lengths - b shorter\",\n\t\t\ta: []interface{}{1, 2, 3},\n\t\t\tb: []interface{}{\"a\"},\n\t\t\texpectedZip: [][2]interface{}{{1, \"a\"}},\n\t\t\texpectedA: []interface{}{1},\n\t\t\texpectedB: []interface{}{\"a\"},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed types\",\n\t\t\ta: []interface{}{1, true, \"x\"},\n\t\t\tb: []interface{}{2.5, false, \"y\"},\n\t\t\texpectedZip: [][2]interface{}{{1, 2.5}, {true, false}, {\"x\", \"y\"}},\n\t\t\texpectedA: []interface{}{1, true, \"x\"},\n\t\t\texpectedB: []interface{}{2.5, false, \"y\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tzipped := Zip(tt.a, tt.b)\n\t\t\tif len(zipped) != len(tt.expectedZip) {\n\t\t\t\tt.Errorf(\"Zip failed, expected length %v, got %v\", len(tt.expectedZip), len(zipped))\n\t\t\t}\n\t\t\tfor i, pair := range zipped {\n\t\t\t\tif pair[0] != tt.expectedZip[i][0] || pair[1] != tt.expectedZip[i][1] {\n\t\t\t\t\tt.Errorf(\"Zip failed at index %d, expected %v, got %v\", i, tt.expectedZip[i], pair)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tunzippedA, unzippedB := Unzip(zipped)\n\t\t\tif !equalSlices(unzippedA, tt.expectedA) {\n\t\t\t\tt.Errorf(\"Unzip failed for slice A, expected %v, got %v\", tt.expectedA, unzippedA)\n\t\t\t}\n\t\t\tif !equalSlices(unzippedB, tt.expectedB) {\n\t\t\t\tt.Errorf(\"Unzip failed for slice B, expected %v, got %v\", tt.expectedB, unzippedB)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGroupBy(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []interface{}\n\t\tfn func(interface{}) interface{}\n\t\texpected map[interface{}][]interface{}\n\t}{\n\t\t{\n\t\t\tname: \"group by even/odd\",\n\t\t\tinput: []interface{}{1, 2, 3, 4, 5, 6},\n\t\t\tfn: func(v interface{}) interface{} { return v.(int) % 2 },\n\t\t\texpected: map[interface{}][]interface{}{\n\t\t\t\t0: {2, 4, 6},\n\t\t\t\t1: {1, 3, 5},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []interface{}{},\n\t\t\tfn: func(v interface{}) interface{} { return v.(int) % 2 },\n\t\t\texpected: map[interface{}][]interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"single group\",\n\t\t\tinput: []interface{}{2, 4, 6},\n\t\t\tfn: func(v interface{}) interface{} { return v.(int) % 2 },\n\t\t\texpected: map[interface{}][]interface{}{\n\t\t\t\t0: {2, 4, 6},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"group by type\",\n\t\t\tinput: []interface{}{1, \"a\", 2, \"b\", true},\n\t\t\tfn: func(v interface{}) interface{} {\n\t\t\t\tswitch v.(type) {\n\t\t\t\tcase int:\n\t\t\t\t\treturn \"int\"\n\t\t\t\tcase string:\n\t\t\t\t\treturn \"string\"\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"other\"\n\t\t\t\t}\n\t\t\t},\n\t\t\texpected: map[interface{}][]interface{}{\n\t\t\t\t\"int\": {1, 2},\n\t\t\t\t\"string\": {\"a\", \"b\"},\n\t\t\t\t\"other\": {true},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := GroupBy(tt.input, tt.fn)\n\t\t\tif len(result) != len(tt.expected) {\n\t\t\t\tt.Errorf(\"GroupBy failed, expected %d groups, got %d\", len(tt.expected), len(result))\n\t\t\t}\n\t\t\tfor k, v := range tt.expected {\n\t\t\t\tif !equalSlices(result[k], v) {\n\t\t\t\t\tt.Errorf(\"GroupBy failed for key %v, expected %v, got %v\", k, v, result[k])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestFlatten(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput [][]interface{}\n\t\texpected []interface{}\n\t}{\n\t\t{\n\t\t\tname: \"normal nested slices\",\n\t\t\tinput: [][]interface{}{{1, 2}, {3, 4}, {5}},\n\t\t\texpected: []interface{}{1, 2, 3, 4, 5},\n\t\t},\n\t\t{\n\t\t\tname: \"empty outer slice\",\n\t\t\tinput: [][]interface{}{},\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"empty inner slices\",\n\t\t\tinput: [][]interface{}{{}, {}, {}},\n\t\t\texpected: []interface{}{},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed types\",\n\t\t\tinput: [][]interface{}{{1, \"a\"}, {true, 2.5}, {nil}},\n\t\t\texpected: []interface{}{1, \"a\", true, 2.5, nil},\n\t\t},\n\t\t{\n\t\t\tname: \"single element slices\",\n\t\t\tinput: [][]interface{}{{1}, {2}, {3}},\n\t\t\texpected: []interface{}{1, 2, 3},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := Flatten(tt.input)\n\t\t\tif !equalSlices(result, tt.expected) {\n\t\t\t\tt.Errorf(\"Flatten failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestContains(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tslice []interface{}\n\t\titem interface{}\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\tname: \"contains integer\",\n\t\t\tslice: []interface{}{1, 2, 3},\n\t\t\titem: 2,\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname: \"does not contain integer\",\n\t\t\tslice: []interface{}{1, 2, 3},\n\t\t\titem: 4,\n\t\t\texpected: false,\n\t\t},\n\t\t{\n\t\t\tname: \"contains string\",\n\t\t\tslice: []interface{}{\"a\", \"b\", \"c\"},\n\t\t\titem: \"b\",\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tslice: []interface{}{},\n\t\t\titem: 1,\n\t\t\texpected: false,\n\t\t},\n\t\t{\n\t\t\tname: \"contains nil\",\n\t\t\tslice: []interface{}{1, nil, 3},\n\t\t\titem: nil,\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname: \"mixed types\",\n\t\t\tslice: []interface{}{1, \"a\", true},\n\t\t\titem: true,\n\t\t\texpected: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := contains(tt.slice, tt.item)\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"contains failed, expected %v, got %v\", tt.expected, result)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Helper function for testing\nfunc contains(slice []interface{}, item interface{}) bool {\n\tfor _, v := range slice {\n\t\tif v == item {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Helper functions for comparing slices\nfunc equalSlices(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif a[i] != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc equalNestedSlices(a, b [][]interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif !equalSlices(a[i], b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Bu2IDM7lJCZbs0isfBTKIKa69sC0hvfFMPtCuaENpOln1gq6ET/1/sm42VL0zYTXPGioITKznscOQuAqmvmBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"fqname","path":"gno.land/p/demo/fqname","files":[{"name":"fqname.gno","body":"// Package fqname provides utilities for handling fully qualified identifiers in\n// Gno. A fully qualified identifier typically includes a package path followed\n// by a dot (.) and then the name of a variable, function, type, or other\n// package-level declaration.\npackage fqname\n\nimport (\n\t\"strings\"\n)\n\n// Parse splits a fully qualified identifier into its package path and name\n// components. It handles cases with and without slashes in the package path.\n//\n//\tpkgpath, name := fqname.Parse(\"gno.land/p/demo/avl.Tree\")\n//\tufmt.Sprintf(\"Package: %s, Name: %s\\n\", id.Package, id.Name)\n//\t// Output: Package: gno.land/p/demo/avl, Name: Tree\nfunc Parse(fqname string) (pkgpath, name string) {\n\t// Find the index of the last slash.\n\tlastSlashIndex := strings.LastIndex(fqname, \"/\")\n\tif lastSlashIndex == -1 {\n\t\t// No slash found, handle it as a simple package name with dot notation.\n\t\tdotIndex := strings.LastIndex(fqname, \".\")\n\t\tif dotIndex == -1 {\n\t\t\treturn fqname, \"\"\n\t\t}\n\t\treturn fqname[:dotIndex], fqname[dotIndex+1:]\n\t}\n\n\t// Get the part after the last slash.\n\tafterSlash := fqname[lastSlashIndex+1:]\n\n\t// Check for a dot in the substring after the last slash.\n\tdotIndex := strings.Index(afterSlash, \".\")\n\tif dotIndex == -1 {\n\t\t// No dot found after the last slash\n\t\treturn fqname, \"\"\n\t}\n\n\t// Split at the dot to separate the base and the suffix.\n\tbase := fqname[:lastSlashIndex+1+dotIndex]\n\tsuffix := afterSlash[dotIndex+1:]\n\n\treturn base, suffix\n}\n\n// Construct a qualified identifier.\n//\n//\tfqName := fqname.Construct(\"gno.land/r/demo/foo20\", \"Token\")\n//\tfmt.Println(\"Fully Qualified Name:\", fqName)\n//\t// Output: gno.land/r/demo/foo20.Token\nfunc Construct(pkgpath, name string) string {\n\t// TODO: ensure pkgpath is valid - and as such last part does not contain a dot.\n\tif name == \"\" {\n\t\treturn pkgpath\n\t}\n\treturn pkgpath + \".\" + name\n}\n\n// RenderLink creates a formatted link for a fully qualified identifier.\n// If the package path starts with \"gno.land\", it converts it to a markdown link.\n// If the domain is different or missing, it returns the input as is.\nfunc RenderLink(pkgPath, slug string) string {\n\tif strings.HasPrefix(pkgPath, \"gno.land\") {\n\t\tpkgLink := strings.TrimPrefix(pkgPath, \"gno.land\")\n\t\tif slug != \"\" {\n\t\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \").\" + slug\n\t\t}\n\n\t\treturn \"[\" + pkgPath + \"](\" + pkgLink + \")\"\n\t}\n\n\tif slug != \"\" {\n\t\treturn pkgPath + \".\" + slug\n\t}\n\n\treturn pkgPath\n}\n"},{"name":"fqname_test.gno","body":"package fqname\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParse(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpectedPkgPath string\n\t\texpectedName string\n\t}{\n\t\t{\"gno.land/p/demo/avl.Tree\", \"gno.land/p/demo/avl\", \"Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"gno.land/p/demo/avl\", \"\"},\n\t\t{\"gno.land/p/demo/avl.Tree.Node\", \"gno.land/p/demo/avl\", \"Tree.Node\"},\n\t\t{\"gno.land/p/demo/avl/nested.Package.Func\", \"gno.land/p/demo/avl/nested\", \"Package.Func\"},\n\t\t{\"path/filepath.Split\", \"path/filepath\", \"Split\"},\n\t\t{\"path.Split\", \"path\", \"Split\"},\n\t\t{\"path/filepath\", \"path/filepath\", \"\"},\n\t\t{\"path\", \"path\", \"\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpkgpath, name := Parse(tt.input)\n\t\tuassert.Equal(t, tt.expectedPkgPath, pkgpath, \"Package path did not match\")\n\t\tuassert.Equal(t, tt.expectedName, name, \"Name did not match\")\n\t}\n}\n\nfunc TestConstruct(t *testing.T) {\n\ttests := []struct {\n\t\tpkgpath string\n\t\tname string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"gno.land/r/demo/foo20.Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"gno.land/r/demo/foo20\"},\n\t\t{\"path\", \"\", \"path\"},\n\t\t{\"path\", \"Split\", \"path.Split\"},\n\t\t{\"path/filepath\", \"\", \"path/filepath\"},\n\t\t{\"path/filepath\", \"Split\", \"path/filepath.Split\"},\n\t\t{\"\", \"JustName\", \".JustName\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := Construct(tt.pkgpath, tt.name)\n\t\tuassert.Equal(t, tt.expected, result, \"Constructed FQName did not match expected\")\n\t}\n}\n\nfunc TestRenderLink(t *testing.T) {\n\ttests := []struct {\n\t\tpkgPath string\n\t\tslug string\n\t\texpected string\n\t}{\n\t\t{\"gno.land/p/demo/avl\", \"Tree\", \"[gno.land/p/demo/avl](/p/demo/avl).Tree\"},\n\t\t{\"gno.land/p/demo/avl\", \"\", \"[gno.land/p/demo/avl](/p/demo/avl)\"},\n\t\t{\"github.com/a/b\", \"C\", \"github.com/a/b.C\"},\n\t\t{\"example.com/pkg\", \"Func\", \"example.com/pkg.Func\"},\n\t\t{\"gno.land/r/demo/foo20\", \"Token\", \"[gno.land/r/demo/foo20](/r/demo/foo20).Token\"},\n\t\t{\"gno.land/r/demo/foo20\", \"\", \"[gno.land/r/demo/foo20](/r/demo/foo20)\"},\n\t\t{\"\", \"\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tresult := RenderLink(tt.pkgPath, tt.slug)\n\t\tuassert.Equal(t, tt.expected, result, \"Rendered link did not match expected\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ADBC3uvM36nSktAdg4e0k4BirkStZ6y8Z6bu+ZL21iBeO5k1Ep96VW+Oc9hFwDySniTKWAmRPn7zhCjHI0bCBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ghverify","path":"gno.land/r/gnoland/ghverify","files":[{"name":"README.md","body":"# ghverify\n\nThis realm is intended to enable off chain gno address to github handle verification.\nThe steps are as follows:\n- A user calls `RequestVerification` and provides a github handle. This creates a new static oracle feed.\n- An off-chain agent controlled by the owner of this realm requests current feeds using the `GnorkleEntrypoint` function and provides a message of `\"request\"`\n- The agent receives the task information that includes the github handle and the gno address. It performs the verification step by checking whether this github user has the address in a github repository it controls.\n- The agent publishes the result of the verification by calling `GnorkleEntrypoint` with a message structured like: `\"ingest,\u003ctask id\u003e,\u003cverification status\u003e\"`. The verification status is `OK` if verification succeeded and any other value if it failed.\n- The oracle feed's ingester processes the verification and the handle to address mapping is written to the avl trees that exist as ghverify realm variables."},{"name":"contract.gno","body":"package ghverify\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\nconst (\n\t// The agent should send this value if it has verified the github handle.\n\tverifiedResult = \"OK\"\n)\n\nvar (\n\townerAddress = std.GetOrigCaller()\n\toracle *gnorkle.Instance\n\tpostHandler postGnorkleMessageHandler\n\n\thandleToAddressMap = avl.NewTree()\n\taddressToHandleMap = avl.NewTree()\n)\n\nfunc init() {\n\toracle = gnorkle.NewInstance()\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\ntype postGnorkleMessageHandler struct{}\n\n// Handle does post processing after a message is ingested by the oracle feed. It extracts the value to realm\n// storage and removes the feed from the oracle.\nfunc (h postGnorkleMessageHandler) Handle(i *gnorkle.Instance, funcType message.FuncType, feed gnorkle.Feed) error {\n\tif funcType != message.FuncTypeIngest {\n\t\treturn nil\n\t}\n\n\tresult, _, consumable := feed.Value()\n\tif !consumable {\n\t\treturn nil\n\t}\n\n\t// The value is consumable, meaning the ingestion occurred, so we can remove the feed from the oracle\n\t// after saving it to realm storage.\n\tdefer oracle.RemoveFeed(feed.ID())\n\n\t// Couldn't verify; nothing to do.\n\tif result.String != verifiedResult {\n\t\treturn nil\n\t}\n\n\tfeedTasks := feed.Tasks()\n\tif len(feedTasks) != 1 {\n\t\treturn errors.New(\"expected feed to have exactly one task\")\n\t}\n\n\ttask, ok := feedTasks[0].(*verificationTask)\n\tif !ok {\n\t\treturn errors.New(\"expected ghverify task\")\n\t}\n\n\thandleToAddressMap.Set(task.githubHandle, task.gnoAddress)\n\taddressToHandleMap.Set(task.gnoAddress, task.githubHandle)\n\treturn nil\n}\n\n// RequestVerification creates a new static feed with a single task that will\n// instruct an agent to verify the github handle / gno address pair.\nfunc RequestVerification(githubHandle string) {\n\tgnoAddress := string(std.GetOrigCaller())\n\tif err := oracle.AddFeeds(\n\t\tstatic.NewSingleValueFeed(\n\t\t\tgnoAddress,\n\t\t\t\"string\",\n\t\t\t\u0026verificationTask{\n\t\t\t\tgnoAddress: gnoAddress,\n\t\t\t\tgithubHandle: githubHandle,\n\t\t\t},\n\t\t),\n\t); err != nil {\n\t\tpanic(err)\n\t}\n\tstd.Emit(\n\t\t\"verification_requested\",\n\t\t\"from\", gnoAddress,\n\t\t\"handle\", githubHandle,\n\t)\n}\n\n// GnorkleEntrypoint is the entrypoint to the gnorkle oracle handler.\nfunc GnorkleEntrypoint(message string) string {\n\tresult, err := oracle.HandleMessage(message, postHandler)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn result\n}\n\n// SetOwner transfers ownership of the contract to the given address.\nfunc SetOwner(owner std.Address) {\n\tif ownerAddress != std.GetOrigCaller() {\n\t\tpanic(\"only the owner can set a new owner\")\n\t}\n\n\townerAddress = owner\n\n\t// In the context of this contract, the owner is the only one that can\n\t// add new feeds to the oracle.\n\toracle.ClearWhitelist(\"\")\n\toracle.AddToWhitelist(\"\", []string{string(ownerAddress)})\n}\n\n// GetHandleByAddress returns the github handle associated with the given gno address.\nfunc GetHandleByAddress(address string) string {\n\tif value, ok := addressToHandleMap.Get(address); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// GetAddressByHandle returns the gno address associated with the given github handle.\nfunc GetAddressByHandle(handle string) string {\n\tif value, ok := handleToAddressMap.Get(handle); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn \"\"\n}\n\n// Render returns a json object string will all verified handle -\u003e address mappings.\nfunc Render(_ string) string {\n\tresult := \"{\"\n\tvar appendComma bool\n\thandleToAddressMap.Iterate(\"\", \"\", func(handle string, address interface{}) bool {\n\t\tif appendComma {\n\t\t\tresult += \",\"\n\t\t}\n\n\t\tresult += `\"` + handle + `\": \"` + address.(string) + `\"`\n\t\tappendComma = true\n\n\t\treturn false\n\t})\n\n\treturn result + \"}\"\n}\n"},{"name":"contract_test.gno","body":"package ghverify\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestVerificationLifecycle(t *testing.T) {\n\tdefaultAddress := std.GetOrigCaller()\n\tuser1Address := std.Address(testutils.TestAddress(\"user 1\"))\n\tuser2Address := std.Address(testutils.TestAddress(\"user 2\"))\n\n\t// Verify request returns no feeds.\n\tresult := GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user1Address)\n\tRequestVerification(\"deelawn\")\n\n\t// A subsequent request from the same address should panic because there is\n\t// already a feed with an ID of this user's address.\n\tvar errMsg string\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tRequestVerification(\"deelawn\")\n\t}()\n\tif errMsg != \"feed already exists\" {\n\t\tt.Fatalf(\"expected feed already exists, got %s\", errMsg)\n\t}\n\n\t// Verify the request returns no feeds for this non-whitelisted user.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Make a verification request with the created user.\n\tstd.TestSetOrigCaller(user2Address)\n\tRequestVerification(\"omarsy\")\n\n\t// Set the caller back to the whitelisted user and verify that the feed data\n\t// returned matches what should have been created by the `RequestVerification`\n\t// invocation.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tresult = GnorkleEntrypoint(\"request\")\n\texpResult := `[{\"id\":\"` + string(user1Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user1Address) + `\",\"github_handle\":\"deelawn\"}]},` +\n\t\t`{\"id\":\"` + string(user2Address) + `\",\"type\":\"0\",\"value_type\":\"string\",\"tasks\":[{\"gno_address\":\"` +\n\t\tstring(user2Address) + `\",\"github_handle\":\"omarsy\"}]}]`\n\tif result != expResult {\n\t\tt.Fatalf(\"expected request result %s, got %s\", expResult, result)\n\t}\n\n\t// Try to trigger feed ingestion from the non-authorized user.\n\tstd.TestSetOrigCaller(user1Address)\n\tfunc() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\terrMsg = r.(error).Error()\n\t\t\t}\n\t\t}()\n\t\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\t}()\n\tif errMsg != \"caller not whitelisted\" {\n\t\tt.Fatalf(\"expected caller not whitelisted, got %s\", errMsg)\n\t}\n\n\t// Set the caller back to the whitelisted user and transfer contract ownership.\n\tstd.TestSetOrigCaller(defaultAddress)\n\tSetOwner(defaultAddress)\n\n\t// Now trigger the feed ingestion from the user and new owner and only whitelisted address.\n\tGnorkleEntrypoint(\"ingest,\" + string(user1Address) + \",OK\")\n\tGnorkleEntrypoint(\"ingest,\" + string(user2Address) + \",OK\")\n\n\t// Verify the ingestion autocommitted the value and triggered the post handler.\n\tdata := Render(\"\")\n\texpResult = `{\"deelawn\": \"` + string(user1Address) + `\",\"omarsy\": \"` + string(user2Address) + `\"}`\n\tif data != expResult {\n\t\tt.Fatalf(\"expected render data %s, got %s\", expResult, data)\n\t}\n\n\t// Finally make sure the feed was cleaned up after the data was committed.\n\tresult = GnorkleEntrypoint(\"request\")\n\tif result != \"[]\" {\n\t\tt.Fatalf(\"expected empty request result, got %s\", result)\n\t}\n\n\t// Check that the accessor functions are working as expected.\n\tif handle := GetHandleByAddress(string(user1Address)); handle != \"deelawn\" {\n\t\tt.Fatalf(\"expected deelawn, got %s\", handle)\n\t}\n\tif address := GetAddressByHandle(\"deelawn\"); address != string(user1Address) {\n\t\tt.Fatalf(\"expected %s, got %s\", string(user1Address), address)\n\t}\n}\n"},{"name":"task.gno","body":"package ghverify\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n)\n\ntype verificationTask struct {\n\tgnoAddress string\n\tgithubHandle string\n}\n\n// MarshalJSON marshals the task contents to JSON.\nfunc (t *verificationTask) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write(\n\t\t[]byte(`{\"gno_address\":\"` + t.gnoAddress + `\",\"github_handle\":\"` + t.githubHandle + `\"}`),\n\t)\n\n\tw.Flush()\n\treturn buf.Bytes(), nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8cA2IPDOB4vSFuTvKWRzorbysvLmb5uuSv5WXjlItM+AxTM9oxRQFR0SAA7EAZDKlzP9ZylPdgpGp13QC/u4Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"gnoblog","path":"gno.land/r/gnoland/blog","files":[{"name":"admin.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tcommenterList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc NewPostExecutor(slug, title, body, publicationDate, authors, tags string) dao.Executor {\n\tcallback := func() error {\n\t\taddPost(std.PrevRealm().Addr(), slug, title, body, publicationDate, authors, tags)\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\tcaller := std.GetOrigCaller()\n\taddPost(caller, slug, title, body, publicationDate, authors, tags)\n}\n\nfunc addPost(caller std.Address, slug, title, body, publicationDate, authors, tags string) {\n\tvar tagList []string\n\tif tags != \"\" {\n\t\ttagList = strings.Split(tags, \",\")\n\t}\n\tvar authorList []string\n\tif authors != \"\" {\n\t\tauthorList = strings.Split(authors, \",\")\n\t}\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModRemovePost(slug string) {\n\tassertIsModerator()\n\n\tb.RemovePost(slug)\n}\n\nfunc ModAddCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), true)\n}\n\nfunc ModDelCommenter(addr std.Address) {\n\tassertIsModerator()\n\tcommenterList.Set(addr.String(), false) // FIXME: delete instead?\n}\n\nfunc ModDelComment(slug string, index int) {\n\tassertIsModerator()\n\n\terr := b.GetPost(slug).DeleteComment(index)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc isCommenter(addr std.Address) bool {\n\t_, found := commenterList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertIsCommenter() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) || isCommenter(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"gnoblog.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/blog\"\n)\n\nvar b = \u0026blog.Blog{\n\tTitle: \"gno.land's blog\",\n\tPrefix: \"/r/gnoland/blog:\",\n}\n\nfunc AddComment(postSlug, comment string) {\n\tassertIsCommenter()\n\tassertNotInPause()\n\n\tcaller := std.GetOrigCaller()\n\terr := b.GetPost(postSlug).AddComment(caller, comment)\n\tcheckErr(err)\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n\nfunc RenderLastPostsWidget(limit int) string {\n\treturn b.RenderLastPostsWidget(limit)\n}\n\nfunc PostExists(slug string) bool {\n\tif b.GetPost(slug) == nil {\n\t\treturn false\n\t}\n\treturn true\n}\n"},{"name":"gnoblog_test.gno","body":"package gnoblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tstd.TestSetOrigCaller(std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"))\n\n\tauthor := std.GetOrigCaller()\n\n\t// by default, no posts.\n\t{\n\t\tgot := Render(\"\")\n\t\texpected := `\n# gno.land's blog\n\nNo posts.\n`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// create two posts, list post.\n\t{\n\t\tModAddPost(\"slug1\", \"title1\", \"body1\", \"2022-05-20T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\t\tModAddPost(\"slug2\", \"title2\", \"body2\", \"2022-05-20T13:17:23Z\", \"moul\", \"tag1,tag3\")\n\t\tgot := Render(\"\")\n\t\texpected := `\n\t# gno.land's blog\n\n\u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n\n### [title2](/r/gnoland/blog:p/slug2)\n 20 May 2022\n\u003c/div\u003e\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// view post.\n\t{\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\n\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003c/details\u003e\n\u003c/main\u003e\n\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// list by tags.\n\t{\n\t\tgot := Render(\"t/invalid\")\n\t\texpected := \"# [gno.land's blog](/r/gnoland/blog:) / t / invalid\\n\\nNo posts.\"\n\t\tassertMDEquals(t, got, expected)\n\n\t\tgot = Render(\"t/tag2\")\n\t\texpected = `\n# [gno.land's blog](/r/gnoland/blog:) / t / tag2\n\n\u003cdiv\u003e\n\n### [title1](/r/gnoland/blog:p/slug1)\n 20 May 2022\n\u003c/div\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// add comments.\n\t{\n\t\tAddComment(\"slug1\", \"comment1\")\n\t\tAddComment(\"slug2\", \"comment2\")\n\t\tAddComment(\"slug1\", \"comment3\")\n\t\tAddComment(\"slug2\", \"comment4\")\n\t\tAddComment(\"slug1\", \"comment5\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag3](/r/gnoland/blog:t/tag3)\n\nWritten by moul on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\t}\n\n\t// edit post.\n\t{\n\t\toldTitle := \"title2\"\n\t\toldDate := \"2022-05-20T13:17:23Z\"\n\n\t\tModEditPost(\"slug2\", oldTitle, \"body2++\", oldDate, \"manfred\", \"tag1,tag4\")\n\t\tgot := Render(\"p/slug2\")\n\t\texpected := `\u003cmain class='gno-tmpl-page'\u003e\n\n# title2\n\nbody2++\n\n---\n\nTags: [#tag1](/r/gnoland/blog:t/tag1) [#tag4](/r/gnoland/blog:t/tag4)\n\nWritten by manfred on 20 May 2022\n\nPublished by g1manfred47kzduec920z88wfr64ylksmdcedlf5 to gno.land's blog\n\n---\n\u003cdetails\u003e\u003csummary\u003eComment section\u003c/summary\u003e\n\n\u003ch5\u003ecomment4\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003ch5\u003ecomment2\n\n\u003c/h5\u003e\u003ch6\u003eby g1manfred47kzduec920z88wfr64ylksmdcedlf5 on 13 Feb 09 23:31 UTC\u003c/h6\u003e\n\n---\n\n\u003c/details\u003e\n\u003c/main\u003e\n\t`\n\t\tassertMDEquals(t, got, expected)\n\n\t\thome := Render(\"\")\n\n\t\tif strings.Count(home, oldTitle) != 1 {\n\t\t\tt.Errorf(\"post not edited properly\")\n\t\t}\n\t\t// Edits work everything except title, slug, and publicationDate\n\t\t// Edits to the above will cause duplication on the blog home page\n\t}\n\n\t{ // Test remove functionality\n\t\ttitle := \"example title\"\n\t\tslug := \"testSlug1\"\n\t\tModAddPost(slug, title, \"body1\", \"2022-05-25T13:17:22Z\", \"moul\", \"tag1,tag2\")\n\n\t\tgot := Render(\"\")\n\n\t\tif !strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not added properly\")\n\t\t}\n\n\t\tpostRender := Render(\"p/\" + slug)\n\n\t\tif !strings.Contains(postRender, title) {\n\t\t\tt.Errorf(\"post not rendered properly\")\n\t\t}\n\n\t\tModRemovePost(slug)\n\t\tgot = Render(\"\")\n\n\t\tif strings.Contains(got, title) {\n\t\t\tt.Errorf(\"post was not removed\")\n\t\t}\n\n\t\tpostRender = Render(\"p/\" + slug)\n\n\t\tassertMDEquals(t, postRender, \"404\")\n\t}\n\n\t// TODO: pagination.\n\t// TODO: ?format=...\n\n\t// all 404s\n\t{\n\t\tnotFoundPaths := []string{\n\t\t\t\"p/slug3\",\n\t\t\t\"p\",\n\t\t\t\"p/\",\n\t\t\t\"x/x\",\n\t\t\t\"t\",\n\t\t\t\"t/\",\n\t\t\t\"/\",\n\t\t\t\"p/slug1/\",\n\t\t}\n\t\tfor _, notFoundPath := range notFoundPaths {\n\t\t\tgot := Render(notFoundPath)\n\t\t\texpected := \"404\"\n\t\t\tif got != expected {\n\t\t\t\tt.Errorf(\"path %q: expected %q, got %q.\", notFoundPath, expected, got)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc assertMDEquals(t *testing.T, got, expected string) {\n\tt.Helper()\n\texpected = strings.TrimSpace(expected)\n\tgot = strings.TrimSpace(got)\n\tif expected != got {\n\t\tt.Errorf(\"invalid render output.\\nexpected %q.\\ngot %q.\", expected, got)\n\t}\n}\n"},{"name":"util.gno","body":"package gnoblog\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I4WEpLXibwHIAY9IV9L9uZgr0rvYCD9afKWL4KDsx/Zc4Jpa0B1QSG2MTX8Fhqe+dDlZR6uiEQeVoQPU3SXoAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"gnode","path":"gno.land/p/demo/gnode","files":[{"name":"gnode.gno","body":"package gnode\n\n// XXX what about Gnodes signing on behalf of others?\n// XXX like a multi-sig of Gnodes?\n\ntype Name string\n\ntype Gnode interface {\n\t//----------------------------------------\n\t// Basic properties\n\tGetName() Name\n\n\t//----------------------------------------\n\t// Affiliate Gnodes\n\tNumAffiliates() int\n\tGetAffiliates(Name) Affiliate\n\tAddAffiliate(Affiliate) error // must be affiliated\n\tRemAffiliate(Name) error // must have become unaffiliated\n\n\t//----------------------------------------\n\t// Signing\n\tNumSignedDocuments() int\n\tGetSignedDocument(idx int) Document\n\tSignDocument(doc Document) (int, error) // index relative to signer\n\n\t//----------------------------------------\n\t// Rendering\n\tRenderLines() []string\n}\n\ntype Affiliate struct {\n\tType string\n\tGnode Gnode\n\tTags []string\n}\n\ntype MyGnode struct {\n\tName\n\t// Owners // voting set, something that gives authority of action.\n\t// Treasury //\n\t// Affiliates //\n\t// Board // discussions\n\t// Data // XXX ?\n}\n\ntype Affiliates []*Affiliate\n\n// Documents are equal if they compare equal.\n// NOTE: requires all fields to be comparable.\ntype Document struct {\n\tAuthors string\n\t// Timestamp\n\t// Body\n\t// Attachments\n}\n\n// ACTIONS\n\n// * Lend tokens\n// * Pay tokens\n// * Administrate transferrable and non-transferrable tokens\n// * Sum tokens\n// * Passthrough dependencies\n// * Code\n// * ...\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cyah6J/SNmxKQ5Bj8XZeNQeXczZ6W1x/U9OP+88TUU5YYCoYe67OlZdl25w168kVscn6jQykHozMfR7vMEDbDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"gnoface","path":"gno.land/r/demo/art/gnoface","files":[{"name":"gnoface.gno","body":"package gnoface\n\nimport (\n\t\"math/rand\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc Render(path string) string {\n\tseed := uint64(entropy.New().Value())\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\ts, err := strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tseed = uint64(s)\n\t}\n\n\toutput := ufmt.Sprintf(\"Gnoface #%d\\n\", seed)\n\toutput += \"```\\n\" + Draw(seed) + \"```\\n\"\n\treturn output\n}\n\nfunc Draw(seed uint64) string {\n\tvar (\n\t\thairs = []string{\n\t\t\t\" s\",\n\t\t\t\" .......\",\n\t\t\t\" s s s\",\n\t\t\t\" /\\\\ /\\\\\",\n\t\t\t\" |||||||\",\n\t\t}\n\t\theadtop = []string{\n\t\t\t\" /-------\\\\\",\n\t\t\t\" /~~~~~~~\\\\\",\n\t\t\t\" /|||||||\\\\\",\n\t\t\t\" ////////\\\\\",\n\t\t\t\" |||||||||\",\n\t\t\t\" /\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\n\t\t}\n\t\theadspace = []string{\n\t\t\t\" | |\",\n\t\t}\n\t\teyebrow = []string{\n\t\t\t\"~\",\n\t\t\t\"*\",\n\t\t\t\"_\",\n\t\t\t\".\",\n\t\t}\n\t\tear = []string{\n\t\t\t\"o\",\n\t\t\t\" \",\n\t\t\t\"D\",\n\t\t\t\"O\",\n\t\t\t\"\u003c\",\n\t\t\t\"\u003e\",\n\t\t\t\".\",\n\t\t\t\"|\",\n\t\t\t\")\",\n\t\t\t\"(\",\n\t\t}\n\t\teyesmiddle = []string{\n\t\t\t\"| o o |\",\n\t\t\t\"| o _ |\",\n\t\t\t\"| _ o |\",\n\t\t\t\"| . . |\",\n\t\t\t\"| O O |\",\n\t\t\t\"| v v |\",\n\t\t\t\"| X X |\",\n\t\t\t\"| x X |\",\n\t\t\t\"| X D |\",\n\t\t\t\"| ~ ~ |\",\n\t\t}\n\t\tnose = []string{\n\t\t\t\" | o |\",\n\t\t\t\" | O |\",\n\t\t\t\" | V |\",\n\t\t\t\" | L |\",\n\t\t\t\" | C |\",\n\t\t\t\" | ~ |\",\n\t\t\t\" | . . |\",\n\t\t\t\" | . |\",\n\t\t}\n\t\tmouth = []string{\n\t\t\t\" | __/ |\",\n\t\t\t\" | \\\\_/ |\",\n\t\t\t\" | . |\",\n\t\t\t\" | ___ |\",\n\t\t\t\" | ~~~ |\",\n\t\t\t\" | === |\",\n\t\t\t\" | \u003c=\u003e |\",\n\t\t}\n\t\theadbottom = []string{\n\t\t\t\" \\\\-------/\",\n\t\t\t\" \\\\~~~~~~~/\",\n\t\t\t\" \\\\_______/\",\n\t\t}\n\t)\n\n\tr := rand.New(rand.NewPCG(seed, 0xdeadbeef))\n\n\treturn pick(r, hairs) + \"\\n\" +\n\t\tpick(r, headtop) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\t\" | \" + pick(r, eyebrow) + \" \" + pick(r, eyebrow) + \" |\\n\" +\n\t\tpick(r, ear) + pick(r, eyesmiddle) + pick(r, ear) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, nose) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, mouth) + \"\\n\" +\n\t\tpick(r, headspace) + \"\\n\" +\n\t\tpick(r, headbottom) + \"\\n\"\n}\n\nfunc pick(r *rand.Rand, slice []string) string {\n\treturn slice[r.IntN(len(slice))]\n}\n\n// based on https://github.com/moul/pipotron/blob/master/dict/ascii-face.yml\n"},{"name":"gnoface_test.gno","body":"package gnoface\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestDraw(t *testing.T) {\n\tcases := []struct {\n\t\tseed uint64\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tseed: 42,\n\t\t\texpected: `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 1337,\n\t\t\texpected: `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n`[1:],\n\t\t},\n\t\t{\n\t\t\tseed: 123456789,\n\t\t\texpected: `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n`[1:],\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tname := ufmt.Sprintf(\"%d\", tc.seed)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Draw(tc.seed)\n\t\t\tuassert.Equal(t, string(tc.expected), got)\n\t\t})\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"42\",\n\t\t\texpected: \"Gnoface #42\\n```\" + `\n |||||||\n |||||||||\n | |\n | . ~ |\n)| v v |O\n | |\n | L |\n | |\n | ___ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"1337\",\n\t\t\texpected: \"Gnoface #1337\\n```\" + `\n .......\n |||||||||\n | |\n | . _ |\nD| x X |O\n | |\n | ~ |\n | |\n | ~~~ |\n | |\n \\~~~~~~~/\n` + \"```\\n\",\n\t\t},\n\t\t{\n\t\t\tpath: \"123456789\",\n\t\t\texpected: \"Gnoface #123456789\\n```\" + `\n .......\n ////////\\\n | |\n | ~ * |\n|| x X |o\n | |\n | V |\n | |\n | . |\n | |\n \\-------/\n` + \"```\\n\",\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W4p1dbopNIDa4lqEuWWBtMr15og6V/+cwTGsAh1tXrYMPJo5mBDV9haHqqGX4yhuOZYkS2Op+BG188q18lg+Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"gnopages","path":"gno.land/r/gnoland/pages","files":[{"name":"admin.gno","body":"package gnopages\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n"},{"name":"page_about.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"about\"\n\ttitle := \"gno.land Is A Platform To Write Smart Contracts In Gno\"\n\t// XXX: description := \"On gno.land, developers write smart contracts and other blockchain apps using Gno without learning a language that’s exclusive to a single ecosystem.\"\n\tbody := `\ngno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\nprogramming language. On gno.land, smart contracts can be uploaded on-chain only by publishing their full source code,\nmaking it trivial to verify the contract or fork it into an improved version. With a system to publish reusable code\nlibraries on-chain, gno.land serves as the “GitHub” of the ecosystem, with realms built using fully transparent,\nauditable code that anyone can inspect and reuse.\n\ngno.land addresses many pressing issues in the blockchain space, starting with the ease of use and intuitiveness of\nsmart contract platforms. Developers can write smart contracts without having to learn a new language that’s exclusive\nto a single ecosystem or limited by design. Go developers can easily port their existing web apps to gno.land or build\nnew ones from scratch, making web3 vastly more accessible.\n\nSecured by Proof of Contribution (PoC), a DAO-managed Proof-of-Authority consensus mechanism, gno.land prioritizes\nfairness and merit, rewarding the people most active on the platform. PoC restructures the financial incentives that\noften corrupt blockchain projects, opting instead to reward contributors for their work based on expertise, commitment, and\nalignment.\n\nOne of our inspirations for gno.land is the gospels, which built a system of moral code that lasted thousands of years.\nBy observing a minimal production implementation, gno.land’s design will endure over time and serve as a reference for\nfuture generations with censorship-resistant tools that improve their understanding of the world.\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:22Z\", nil, nil)\n}\n"},{"name":"page_contribute.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"contribute\"\n\ttitle := \"Contributor Ecosystem: Call for Contributions\"\n\tbody := `\n\ngno.land puts at the center of its identity the contributors that help to create and shape the project into what it is; incentivizing those who contribute the most and help advance its vision. Eventually, contributions will be incentivized directly on-chain; in the meantime, this page serves to illustrate our current off-chain initiatives.\n\ngno.land is still in full-steam development. For now, we're looking for the earliest of adopters; curious to explore a new way to build smart contracts and eager to make an impact. Joining gno.land's development now means you can help to shape the base of its development ecosystem, which will pave the way for the next generation of blockchain programming.\n\nAs an open-source project, we welcome all contributions. On this page you can find some pointers on where to get started; as well as some incentives for the most valuable and important contributions.\n\n## Where to get started\n\nIf you are interested in contributing to gno.land, you can jump on in on our [GitHub monorepo](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md) - where most development happens.\n\nA good place where to start are the issues tagged [\"good first issue\"](https://github.com/gnolang/gno/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). They should allow you to make some impact on the Gno repository while you're still exploring the details of how everything works.\n\n## Gno Bounties\n\nAdditionally, you can look out to help on specific issues labeled as bounties. All contributions will then concur to form your profile for Game of Realms.\n\nThe Gno bounty program is a good way to find interesting challenges in Gno, and get rewarded for helping us advance the project. We will maintain open and rewardable bounties in the gnolang/gno repository, and you can search all available bounties by using the [\"bounty\" label](https://github.com/gnolang/gno/labels/bounty).\n\nRecommendations on participating in the gno.land Bounty Program:\n\n- Identify the bounty you want to work on, and join in the discussion on the issue for anything that is unclear; or where you want to more clearly define the work to be done. At this stage, you can also start working on an initial implementation in your local enviornment.\n- Once you have spent time on the code related to the bounty, we recommend submitting a 'draft' PR as soon as possible.\n - The draft PR doesn't indicate that the bounty has been assigned to you, others are free to work on other draft PRs for the bounty.\n - Make sure to reference the bounty issue on the PR description you're writing.\n - After submitting the 'draft' PR, continue working until you are ready to mark the PR as \"ready for review\".\n - The core team will review the bounty PR submission after the work on the bounty has been completed, and determine if it qualifies for the bounty reward.\n- Ask for clarification early if an element on the requirements or implementation design is unclear.\n - Aside from publishing the PR early, keeping regular updates with the core team on the bounty issue is key to being on the right track.\n - As part of the requirements, you must adhere to the [contributing guidelines](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md); additionally, it is expected that any newly added code or functionality is properly documented, tested and covered, at least in 80% of added code.\n - You're welcome to propose additional features and work on an issue should you envision a plausible expansion or change in scope. The core team may assign a bounty to the additional work, or change the bounty with respect to the changed scope.\n\nYou may make your submission at any time; however we invite you to publish your draft PR very early in the development process. This will make your work public, so you can easily get help by the core team and other community members. Additionally, your work can be continued by other people should you get stuck or no longer be willing to work on the bounty. Likewise, you can continue the abandoned or stuck work that someone else worked on.\n\nDon't fear your work being \"stolen\": if a submission is the result of multiple people's efforts, we will look to split the bounty in a way that is fair and recognises each participant in creating the final outcome. Here are some examples of how that can happen:\n\n- If Alice does most of the work and abandons it; then Bob comes around and finishes the job, then Bob's PR will be merged. But the core team will propose a split like 70% for Alice and 30% for Bob (depending, of course, on the relative effort undertaken by both).\n- If Alice makes a PR that does only 50% of the work outlined in the requirements for the original issue, she will get 50%. Someone can still come up and finish the job; and claim the remaining part.\n\t- If you, for instance, cannot complete the entirety of the task or, as a non-developer, can only contribute a part of the specification/implementation, you may still be awarded a bounty for your input in the contribution.\n- If Alice makes a PR that aside from implementing what's required, also undertakes creating useful tools among the way, she may qualify for an \"outstanding contribution\"; and may be awarded up to 25% more of the original bounty's value. Or she may also ask if the team would be willing to offer a different bounty for the implementation of the tools.\n\nParticipants in the gno.land Bounty Program must meet the legal Terms and Conditions referenced [here](https://docs.google.com/document/d/e/2PACX-1vSUF-JwIXGscrNsc5QBD7Pa6i83mXUGogAEIf1wkeb_w42UgL3Lj6jFKMlNTdwEMUnhsLkjRlhe25K4/pub).\n\n### Bounty sizes\n\nEach bounty is associated with a size, to which corresponds the maximum compensation for the work involved on the bounty. A bounty size may under rare occasion be revisited to a bigger or smaller size; hence why it's important to talk about your proposed solution with the core team ahead of time.\n\nIn some cases, the work associated with a bounty may be outstanding. When that happens, the core team can decide to award up to 25% of the bounty's value to the recipient.\n\nThe value of the bounty, aside from the material completion of the task, considers the involved time in managing the created pull request and iterating on feedback.\n\n\nt-shirt size | expected compensation\n-------------|-----------------------\n[XS] | $ 500\n[S] | $ 1000\n[M] | $ 2000\n[L] | $ 4000\n[XL] | $ 8000\n_[XXL]_ \\* | $ 16000\n_[3XL]_ \\* | $ 32000\n\n[XS]: https://github.com/gnolang/gno/labels/bounty%2FXS\n[S]: https://github.com/gnolang/gno/labels/bounty%2FS\n[M]: https://github.com/gnolang/gno/labels/bounty%2FM\n[L]: https://github.com/gnolang/gno/labels/bounty%2FL\n[XL]: https://github.com/gnolang/gno/labels/bounty%2FXL\n[XXL]: https://github.com/gnolang/gno/labels/bounty%2FXXL\n[3XL]: https://github.com/gnolang/gno/labels/bounty%2F3XL\n\n\\*: XXL and 3XL bounties are exceptional. Almost no issues will have these sizes; most will be broken down into smaller bounties.\n\n## gno.land Grants\n\nThe gno.land grants program is to encourage and support the growth of the gno.land contributor community, and build out the usability of the platform and smart contract library. The program provides financial resources to contributors to explore the Gno tech stack, and build dApps, tooling, infrastructure, products, and smart contract libraries in gno.land.\n\nFor more details on gno.land grants, suggested topics, and how to apply, visit our grants [repository](https://github.com/gnolang/grants). \n\n## Join Game of Realms\n\nGame of Realms is the overarching contributor network of gnomes, currently running off-chain, and will eventually transition on-chain. At this stage, a Game of Realms contribution is comprised of high-impact contributions identified as ['notable contributions'](https://github.com/gnolang/game-of-realms/tree/main/contributors).\n\nThese contributions are not linked to immediate financial rewards, but are notable in nature, in the sense they are a challenge, make a significant addition to the project, and require persistence, with minimal feedback loops from the core team.\n\nThe selection of a notable contribution or the sum of contributions that equal 'notable' is based on the impact it has on the development of the project. For now, it is focused on code contributions, and will evolve over time. The Gno development teams will initially qualify and evaluate notable contributions, and vote off-chain on adding them to the 'notable contributions' folder on GitHub.\n\nYou can always contribute to the project, and all contributions will be noticed. Contributing now is a way to build your personal contributor profile in gno.land early on in the ecosystem, and signal your commitment to the project, the community, and its future.\n\nThere are a variety of ways to make your contributions count:\n\n- Core code contributions\n- Realm and pure package development\n- Validator tooling\n- Developer tooling\n- Tutorials and documentation\n\nTo start, we recommend you create a PR in the Game of Realms [repository](https://github.com/gnolang/game-of-realms) to create your profile page for all your contributions.`\n\n\t_ = b.NewPost(\"\", path, title, body, \"2024-09-05T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_ecosystem.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"ecosystem\"\n\t\ttitle = \"Discover gno.land Ecosystem Projects \u0026 Initiatives\"\n\t\t// XXX: description = \"Dive further into the gno.land ecosystem and discover the core infrastructure, projects, smart contracts, and tooling we’re building.\"\n\t\tbody = `\n### [Gno Playground](https://play.gno.land)\n\nGno Playground is a simple web interface that lets you write, test, and experiment with your Gno code to improve your\nunderstanding of the Gno language. You can share your code, run unit tests, deploy your realms and packages, and execute\nfunctions in your code using the repo.\n\nVisit the playground at [play.gno.land](https://play.gno.land)!\n\n### [Gno Studio Connect](https://gno.studio/connect)\n\nGno Studio Connect provides seamless access to realms, making it simple to explore, interact, and engage\nwith gno.land’s smart contracts through function calls. Connect focuses on function calls, enabling users to interact\nwith any realm’s exposed function(s) on gno.land.\n\nSee your realm interactions in [Gno Studio Connect](https://gno.studio/connect)\n\n### [Gnoscan](https://gnoscan.io)\n\nDeveloped by the Onbloc team, Gnoscan is gno.land’s blockchain explorer. Anyone can use Gnoscan to easily find\ninformation that resides on the gno.land blockchain, such as wallet addresses, TX hashes, blocks, and contracts.\nGnoscan makes our on-chain data easy to read and intuitive to discover.\n\nExplore the gno.land blockchain at [gnoscan.io](https://gnoscan.io)!\n\n### Adena\n\nAdena is a user-friendly non-custodial wallet for gno.land. Open-source and developed by Onbloc, Adena allows gnomes to\ninteract easily with the chain. With an emphasis on UX, Adena is built to handle millions of realms and tokens with a\nhigh-quality interface, support for NFTs and custom tokens, and seamless integration. Install Adena via the [official website](https://www.adena.app/)\n\n### Gnoswap\n\nGnoswap is currently under development and led by the Onbloc team. Gnoswap will be the first DEX on gno.land and is an\nautomated market maker (AMM) protocol written in Gno that allows for permissionless token exchanges on the platform.\n\n### Flippando\n\nFlippando is a simple on-chain memory game, ported from Solidity to Gno, which starts with an empty matrix to flip tiles\non to see what’s underneath. If the tiles match, they remain uncovered; if not, they are briefly shown, and the player\nmust memorize their colors until the entire matrix is uncovered. The end result can be minted as an NFT, which can later\nbe assembled into bigger, more complex NFTs, creating a digital “painting” with the uncovered tiles. Play the game at [Flippando](https://gno.flippando.xyz/flip)\n\n### Gno Native Kit\n\n[Gno Native Kit](https://github.com/gnolang/gnonative) is a framework that allows developers to build and port gno.land (d)apps written in the (d)app's native language.\n\n\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:23Z\", nil, nil)\n}\n"},{"name":"page_gnolang.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"gnolang\"\n\t\ttitle = \"About the Gno, the Language for gno.land\"\n\t\t// TODO fix broken images\n\t\tbody = `\n\n[Gno](https://github.com/gnolang/gno) is an interpretation of the widely-used Go (Golang) programming language for blockchain created by Cosmos co-founder Jae Kwon in 2022 to mark a new era in smart contracting. Gno is ~99% identical to Go, so Go programmers can start coding in Gno right away, with a minimal learning curve. For example, Gno comes with blockchain-specific standard libraries, but any code that doesn’t use blockchain-specific logic can run in Go with minimal processing. Libraries that don’t make sense in the blockchain context, such as network or operating-system access, are not available in Gno. Otherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same.\n\nUnder the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than bytecode as in many virtual machines such as Java, Python, or Wasm. This makes even the GnoVM accessible to any Go programmer. The novel design of the intuitive GnoVM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. Gno is deterministic, auto-persisted, and auto-Merkle-ized, allowing (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\n## How Gno Differs from Go\n\n![Gno and Go differences](static/img/gno-language/go-and-gno.jpg)\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on gno.land are light, simple, more focused, and easily interoperable—a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n![Example of Gno code](static/img/gno-language/code-example.jpg)\n\n## Gno Inherits Go’s Built-in Security Features\n\nGo supports secure programming through exported/non-exported fields, enabling a “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that provides embedding, composability, type-check safety, and garbage collection, helping developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n## Gno vs Solidity\n\nThe most widely-adopted smart contract language today is Ethereum’s EVM-compatible Solidity. With bytecode built from the ground up and Turing complete, Solidity opened up a world of possibilities for decentralized applications (dApps) and there are currently more than 10 million contracts deployed on Ethereum. However, Solidity provides limited tooling and its EVM has a stack limit and computational inefficiencies.\n\nSolidity is designed for one purpose only (writing smart contracts) and is bound by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems. Gno aspires to exceed Solidity on multiple fronts (and other smart contract languages like CosmWasm or Substrate) as every part of the stack is written in Gno. It’s easy for developers to understand the entire system just by studying a relatively small code base.\n\n## Gno Is Essential for the Wider Adoption of Web3\n\nGno makes imports as easy as they are in web2 with runtime-based imports for seamless dependency flow comprehension, and support for complex structs, beyond primitive types. Gno is ultimately cost-effective as dependencies are loaded once, enabling remote function calls as local, and providing automatic and independent per-realm state persistence.\n\nUsing Gno, developers can rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nThe Go language is so well designed that the Gno smart contract system will become the new gold standard for smart contract development and other blockchain applications. As a programming language that is universally adopted, secure, composable, and complete, Gno is essential for the broader adoption of web3 and its sustainable growth.`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:25Z\", nil, nil)\n}\n"},{"name":"page_license.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"license\"\n\t\ttitle = \"Gno Network General Public License\"\n\t\tbody = `Copyright (C) 2024 NewTendermint, LLC\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNO Network General Public License as published by\nNewTendermint, LLC, either version 4 of the License, or (at your option) any\nlater version published by NewTendermint, LLC.\n\nThis program is distributed in the hope that it will be useful, but is provided\nas-is and WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNO Network\nGeneral Public License for more details.\n\nYou should have received a copy of the GNO Network General Public License along\nwith this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAttached below are the terms of the GNO Network General Public License, Version\n4 (a fork of the GNU Affero General Public License 3).\n\n## Additional Terms\n\n### Strong Attribution\n\nIf any of your user interfaces, such as websites and mobile applications, serve\nas the primary point of entry to a platform or blockchain that 1) offers users\nthe ability to upload their own smart contracts to the platform or blockchain,\nand 2) leverages any Covered Work (including the GNO virtual machine) to run\nthose smart contracts on the platform or blockchain (\"Applicable Work\"), then\nthe Applicable Work must prominently link to (1) gno.land or (2) any other URL\ndesignated by NewTendermint, LLC that has not been rejected by the governance of\nthe first chain known as gno.land, provided that the identity of the first chain\nis not ambiguous. In the event the identity of the first chain is ambiguous,\nthen NewTendermint, LLC's designation shall control. Such link must appear\nconspicuously in the header or footer of the Applicable Work, such that all\nusers may learn of gno.land or the URL designated by NewTendermint, LLC.\n\nThis additional attribution requirement shall remain in effect for (1) 7\nyears from the date of publication of the Applicable Work, or (2) 7 years from\nthe date of publication of the Covered Work (including republication of new\nversions), whichever is later, but no later than 12 years after the application\nof this strong attribution requirement to the publication of the Applicable\nWork. For purposes of this Strong Attribution requirement, Covered Work shall\nmean any work that is licensed under the GNO Network General Public License,\nVersion 4 or later, by NewTendermint, LLC.\n\n\n# GNO NETWORK GENERAL PUBLIC LICENSE\n\nVersion 4, 7 May 2024\n\nModified from the GNU AFFERO GENERAL PUBLIC LICENSE.\nGNU is not affiliated with GNO or NewTendermint, LLC.\nCopyright (C) 2022 NewTendermint, LLC.\n\n## Preamble\n\nThe GNO Network General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n\nThe licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n\nWhen we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\nDevelopers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n\nA secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate. Many developers of free software are heartened and\nencouraged by the resulting cooperation. However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n\nThe GNO Network General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community. It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server. Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n\nThe precise terms and conditions for copying, distribution and\nmodification follow.\n\n## TERMS AND CONDITIONS\n\n### 0. Definitions.\n\n\"This License\" refers to version 4 of the GNO Network General Public License.\n\n\"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n\"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\nTo \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\nA \"covered work\" means either the unmodified Program or a work based\non the Program.\n\nTo \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\nTo \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\nAn interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n### 1. Source Code.\n\nThe \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\nA \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\nThe \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\nThe \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\nThe Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\nThe Corresponding Source for a work in source code form is that\nsame work.\n\n### 2. Basic Permissions.\n\nAll rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\nYou may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\nConveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\nNo covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\nWhen you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n### 4. Conveying Verbatim Copies.\n\nYou may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\nYou may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n### 5. Conveying Modified Source Versions.\n\nYou may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n- a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n- b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n- c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n- d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\nA compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n### 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n- a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n- b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n- c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n- d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n- e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\nA separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\nA \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n\"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\nIf you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\nThe requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\nCorresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n### 7. Additional Terms.\n\n\"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\nWhen you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\nNotwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n- a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n- b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n- c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n- d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n- e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n- f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors; or\n- g) Requiring strong attribution such as notices on any user interfaces\n that run or convey any covered work, such as a prominent link to a URL\n on the header of a website, such that all users of the covered work may\n become aware of the notice, for a period no longer than 20 years.\n\nAll other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\nIf you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\nAdditional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n### 8. Termination.\n\nYou may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\nHowever, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\nMoreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\nTermination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n### 9. Acceptance Not Required for Having Copies.\n\nYou are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n### 10. Automatic Licensing of Downstream Recipients.\n\nEach time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\nAn \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\nYou may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n### 11. Patents.\n\nA \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\nA contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\nEach contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\nIn the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\nIf you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\nIf, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\nA patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\nNothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n### 12. No Surrender of Others' Freedom.\n\nIf conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to simultaneously satisfy your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n### 13. Remote Network Interaction; Use with the GNU General Public License.\n\nNotwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software. This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n\nNotwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\n### 14. Revised Versions of this License.\n\nNewTendermint LLC may publish revised and/or new versions of\nthe GNO Network General Public License from time to time. Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNO Network General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Gno Software\nFoundation. If the Program does not specify a version number of the\nGNO Network General Public License, you may choose any version ever published\nby NewTendermint LLC.\n\nIf the Program specifies that a proxy can decide which future\nversions of the GNO Network General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\nLater license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n### 15. Disclaimer of Warranty.\n\nTHERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n### 16. Limitation of Liability.\n\nIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n### 17. Interpretation of Sections 15 and 16.\n\nIf the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\nEND OF TERMS AND CONDITIONS\n\n## How to Apply These Terms to Your New Programs\n\nIf you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\nTo do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n \u003cone line to give the program's name and a brief idea of what it does.\u003e\n Copyright (C) \u003cyear\u003e \u003cname of author\u003e\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNO Network General Public License as published by\n NewTendermint LLC, either version 4 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNO Network General Public License for more details.\n\n You should have received a copy of the GNO Network General Public License\n along with this program. If not, see \u003chttps://gno.land/license\u003e.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source. For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code. There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2024-04-22T00:00:00Z\", nil, nil)\n}\n"},{"name":"page_partners.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"partners\"\n\ttitle := \"Partnerships\"\n\tbody := `### Fund and Grants Program\n\nAre you a builder, tinkerer, or researcher? If you’re looking to create awesome dApps, tooling, infrastructure, \nor smart contract libraries on gno.land, you can apply for a grant. The gno.land Ecosystem Fund and Grants program \nprovides financial contributions for individuals and teams to innovate on the platform.\n\nRead more about our Funds and Grants program [here](https://github.com/gnolang/ecosystem-fund-grants).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:27Z\", nil, nil)\n}\n"},{"name":"page_start.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"start\"\n\ttitle := \"Getting Started with Gno\"\n\t// XXX: description := \"\"\n\n\t// TODO: codegen to use README files here\n\n\t/* TODO: port previous message: This is a demo of Gno smart contract programming. This document was\n\tconstructed by Gno onto a smart contract hosted on the data Realm\n\tname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n\t([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\t*/\n\tbody := `## Getting Started with Gno\n\n- [Install Gno Key](/r/demo/boards:testboard/5)\n- TODO: add more links\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:28Z\", nil, nil)\n}\n"},{"name":"page_testnets.gno","body":"package gnopages\n\nfunc init() {\n\tpath := \"testnets\"\n\ttitle := \"gno.land Testnet List\"\n\tbody := `\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop) - a rolling testnet\n- [staging.gno.land](https://staging.gno.land) - wiped every commit to monorepo master\n- _[test4.gno.land](https://test4.gno.land) (latest)_\n\nFor a list of RPC endpoints, see the [reference documentation](https://docs.gno.land/reference/rpc-endpoints).\n\n## Local development\n\nSee the \"Getting started\" section in the [official documentation](https://docs.gno.land/getting-started/local-setup).\n`\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:29Z\", nil, nil)\n}\n"},{"name":"page_tokenomics.gno","body":"package gnopages\n\nfunc init() {\n\tvar (\n\t\tpath = \"tokenomics\"\n\t\ttitle = \"gno.land Tokenomics\"\n\t\t// XXX: description = \"\"\"\n\t\tbody = `Lorem Ipsum`\n\t)\n\t_ = b.NewPost(\"\", path, title, body, \"2022-05-20T13:17:30Z\", nil, nil)\n}\n"},{"name":"pages.gno","body":"package gnopages\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/pages\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Gnoland's Pages\",\n\tPrefix: \"/r/gnoland/pages:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"},{"name":"pages_test.gno","body":"package gnopages\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestHome(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"\")\n\texpectedSubtrings := []string{\n\t\t\"/r/gnoland/pages:p/tokenomics\",\n\t\t\"/r/gnoland/pages:p/start\",\n\t\t\"/r/gnoland/pages:p/contribute\",\n\t\t\"/r/gnoland/pages:p/about\",\n\t\t\"/r/gnoland/pages:p/gnolang\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n\nfunc TestAbout(t *testing.T) {\n\tprintedOnce := false\n\tgot := Render(\"p/about\")\n\texpectedSubtrings := []string{\n\t\t\"gno.land Is A Platform To Write Smart Contracts In Gno\",\n\t\t\"gno.land is a next-generation smart contract platform using Gno, an interpreted version of the general-purpose Go\\nprogramming language.\",\n\t}\n\tfor _, substring := range expectedSubtrings {\n\t\tif !strings.Contains(got, substring) {\n\t\t\tif !printedOnce {\n\t\t\t\tprintln(got)\n\t\t\t\tprintedOnce = true\n\t\t\t}\n\t\t\tt.Errorf(\"expected %q, but not found.\", substring)\n\t\t}\n\t}\n}\n"},{"name":"util.gno","body":"package gnopages\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c0wXpnbMeU/F7hsPHyI7rFX3mQBbNWcbhEKK1OJKyhHLI5Qo6G+lsK87edWaUOl4KMRwQpvxybThbhPrX0RgCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"gnorkle","path":"gno.land/p/demo/gnorkle/gnorkle","files":[{"name":"feed.gno","body":"package gnorkle\n\nimport (\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Feed is an abstraction used by a gnorkle `Instance` to ingest data from\n// agents and provide data feeds to consumers.\ntype Feed interface {\n\tID() string\n\tType() feed.Type\n\tValue() (value feed.Value, dataType string, consumable bool)\n\tIngest(funcType message.FuncType, rawMessage, providerAddress string) error\n\tMarshalJSON() ([]byte, error)\n\tTasks() []feed.Task\n\tIsActive() bool\n}\n\n// FeedWithWhitelist associates a `Whitelist` with a `Feed`.\ntype FeedWithWhitelist struct {\n\tFeed\n\tWhitelist\n}\n"},{"name":"ingester.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/ingester\"\n\n// Ingester is the abstraction that allows a `Feed` to ingest data from agents\n// and commit it to storage using zero or more intermediate aggregation steps.\ntype Ingester interface {\n\tType() ingester.Type\n\tIngest(value, providerAddress string) (canAutoCommit bool, err error)\n\tCommitValue(storage Storage, providerAddress string) error\n}\n"},{"name":"instance.gno","body":"package gnorkle\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/gnorkle/agent\"\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/message\"\n)\n\n// Instance is a single instance of an oracle.\ntype Instance struct {\n\tfeeds *avl.Tree\n\twhitelist agent.Whitelist\n}\n\n// NewInstance creates a new instance of an oracle.\nfunc NewInstance() *Instance {\n\treturn \u0026Instance{\n\t\tfeeds: avl.NewTree(),\n\t}\n}\n\nfunc assertValidID(id string) error {\n\tif len(id) == 0 {\n\t\treturn errors.New(\"feed ids cannot be empty\")\n\t}\n\n\tif strings.Contains(id, \",\") {\n\t\treturn errors.New(\"feed ids cannot contain commas\")\n\t}\n\n\treturn nil\n}\n\nfunc (i *Instance) assertFeedDoesNotExist(id string) error {\n\tif i.feeds.Has(id) {\n\t\treturn errors.New(\"feed already exists\")\n\t}\n\n\treturn nil\n}\n\n// AddFeeds adds feeds to the instance with empty whitelists.\nfunc (i *Instance) AddFeeds(feeds ...Feed) error {\n\tfor _, feed := range feeds {\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: new(agent.Whitelist),\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// AddFeedsWithWhitelists adds feeds to the instance with the given whitelists.\nfunc (i *Instance) AddFeedsWithWhitelists(feeds ...FeedWithWhitelist) error {\n\tfor _, feed := range feeds {\n\t\tif err := i.assertFeedDoesNotExist(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := assertValidID(feed.ID()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\ti.feeds.Set(\n\t\t\tfeed.ID(),\n\t\t\tFeedWithWhitelist{\n\t\t\t\tWhitelist: feed.Whitelist,\n\t\t\t\tFeed: feed,\n\t\t\t},\n\t\t)\n\t}\n\n\treturn nil\n}\n\n// RemoveFeed removes a feed from the instance.\nfunc (i *Instance) RemoveFeed(id string) {\n\ti.feeds.Remove(id)\n}\n\n// PostMessageHandler is a type that allows for post-processing of feed state after a feed\n// ingests a message from an agent.\ntype PostMessageHandler interface {\n\tHandle(i *Instance, funcType message.FuncType, feed Feed) error\n}\n\n// HandleMessage handles a message from an agent and routes to either the logic that returns\n// feed definitions or the logic that allows a feed to ingest a message.\n//\n// TODO: Consider further message types that could allow administrative action such as modifying\n// a feed's whitelist without the owner of this oracle having to maintain a reference to it.\nfunc (i *Instance) HandleMessage(msg string, postHandler PostMessageHandler) (string, error) {\n\tcaller := string(std.GetOrigCaller())\n\n\tfuncType, msg := message.ParseFunc(msg)\n\n\tswitch funcType {\n\tcase message.FuncTypeRequest:\n\t\treturn i.GetFeedDefinitions(caller)\n\n\tdefault:\n\t\tid, msg := message.ParseID(msg)\n\t\tif err := assertValidID(id); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tfeedWithWhitelist, err := i.getFeedWithWhitelist(id)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, caller, nil) {\n\t\t\treturn \"\", errors.New(\"caller not whitelisted\")\n\t\t}\n\n\t\tif err := feedWithWhitelist.Ingest(funcType, msg, caller); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tif postHandler != nil {\n\t\t\tpostHandler.Handle(i, funcType, feedWithWhitelist)\n\t\t}\n\t}\n\n\treturn \"\", nil\n}\n\nfunc (i *Instance) getFeed(id string) (Feed, error) {\n\tuntypedFeed, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeed, ok := untypedFeed.(Feed)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid feed type\")\n\t}\n\n\treturn feed, nil\n}\n\nfunc (i *Instance) getFeedWithWhitelist(id string) (FeedWithWhitelist, error) {\n\tuntypedFeedWithWhitelist, ok := i.feeds.Get(id)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid ingest id: \" + id)\n\t}\n\n\tfeedWithWhitelist, ok := untypedFeedWithWhitelist.(FeedWithWhitelist)\n\tif !ok {\n\t\treturn FeedWithWhitelist{}, errors.New(\"invalid feed with whitelist type\")\n\t}\n\n\treturn feedWithWhitelist, nil\n}\n\n// GetFeedValue returns the most recently published value of a feed along with a string\n// representation of the value's type and boolean indicating whether the value is\n// okay for consumption.\nfunc (i *Instance) GetFeedValue(id string) (feed.Value, string, bool, error) {\n\tfoundFeed, err := i.getFeed(id)\n\tif err != nil {\n\t\treturn feed.Value{}, \"\", false, err\n\t}\n\n\tvalue, valueType, consumable := foundFeed.Value()\n\treturn value, valueType, consumable, nil\n}\n\n// GetFeedDefinitions returns a JSON string representing the feed definitions for which the given\n// agent address is whitelisted to provide values for ingestion.\nfunc (i *Instance) GetFeedDefinitions(forAddress string) (string, error) {\n\tinstanceHasAddressWhitelisted := !i.whitelist.HasDefinition() || i.whitelist.HasAddress(forAddress)\n\n\tbuf := new(strings.Builder)\n\tbuf.WriteString(\"[\")\n\tfirst := true\n\tvar err error\n\n\t// The boolean value returned by this callback function indicates whether to stop iterating.\n\ti.feeds.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tfeedWithWhitelist, ok := value.(FeedWithWhitelist)\n\t\tif !ok {\n\t\t\terr = errors.New(\"invalid feed type\")\n\t\t\treturn true\n\t\t}\n\n\t\t// Don't give agents the ability to try to publish to inactive feeds.\n\t\tif !feedWithWhitelist.IsActive() {\n\t\t\treturn false\n\t\t}\n\n\t\t// Skip feeds the address is not whitelisted for.\n\t\tif !addressIsWhitelisted(\u0026i.whitelist, feedWithWhitelist, forAddress, \u0026instanceHasAddressWhitelisted) {\n\t\t\treturn false\n\t\t}\n\n\t\tvar taskBytes []byte\n\t\tif taskBytes, err = feedWithWhitelist.Feed.MarshalJSON(); err != nil {\n\t\t\treturn true\n\t\t}\n\n\t\t// Guard against any tasks that shouldn't be returned; maybe they are not active because they have\n\t\t// already been completed.\n\t\tif len(taskBytes) == 0 {\n\t\t\treturn false\n\t\t}\n\n\t\tif !first {\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\n\t\tfirst = false\n\t\tbuf.Write(taskBytes)\n\t\treturn false\n\t})\n\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tbuf.WriteString(\"]\")\n\treturn buf.String(), nil\n}\n"},{"name":"storage.gno","body":"package gnorkle\n\nimport \"gno.land/p/demo/gnorkle/feed\"\n\n// Storage defines how published feed values should be read\n// and written.\ntype Storage interface {\n\tPut(value string) error\n\tGetLatest() feed.Value\n\tGetHistory() []feed.Value\n}\n"},{"name":"whitelist.gno","body":"package gnorkle\n\n// Whitelist is used to manage which agents are allowed to interact.\ntype Whitelist interface {\n\tClearAddresses()\n\tAddAddresses(addresses []string)\n\tRemoveAddress(address string)\n\tHasDefinition() bool\n\tHasAddress(address string) bool\n}\n\n// ClearWhitelist clears the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) ClearWhitelist(feedID string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.ClearAddresses()\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.ClearAddresses()\n\treturn nil\n}\n\n// AddToWhitelist adds the given addresses to the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) AddToWhitelist(feedID string, addresses []string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.AddAddresses(addresses)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.AddAddresses(addresses)\n\treturn nil\n}\n\n// RemoveFromWhitelist removes the given address from the whitelist of the instance or feed depending on the feed ID.\nfunc (i *Instance) RemoveFromWhitelist(feedID string, address string) error {\n\tif feedID == \"\" {\n\t\ti.whitelist.RemoveAddress(address)\n\t\treturn nil\n\t}\n\n\tfeedWithWhitelist, err := i.getFeedWithWhitelist(feedID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfeedWithWhitelist.RemoveAddress(address)\n\treturn nil\n}\n\n// addressWhiteListed returns true if:\n// - the feed has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has a white list and the address is whitelisted, or\n// - the feed has no white list and the instance has no white list.\nfunc addressIsWhitelisted(instanceWhitelist, feedWhitelist Whitelist, address string, instanceWhitelistedOverride *bool) bool {\n\t// A feed whitelist takes priority, so it will return false if the feed has a whitelist and the caller is\n\t// not a part of it. An empty whitelist defers to the instance whitelist.\n\tif feedWhitelist != nil {\n\t\tif feedWhitelist.HasDefinition() \u0026\u0026 !feedWhitelist.HasAddress(address) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Getting to this point means that one of the following is true:\n\t\t// - the feed has no defined whitelist (so it can't possibly have the address whitelisted)\n\t\t// - the feed has a defined whitelist and the caller is a part of it\n\t\t//\n\t\t// In this case, we can be sure that the boolean indicating whether the feed has this address whitelisted\n\t\t// is equivalent to the boolean indicating whether the feed has a defined whitelist.\n\t\tif feedWhitelist.HasDefinition() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tif instanceWhitelistedOverride != nil {\n\t\treturn *instanceWhitelistedOverride\n\t}\n\n\t// We were unable able to determine whether this address is allowed after looking at the feed whitelist,\n\t// so fall back to the instance whitelist. A complete absence of values in the instance whitelist means\n\t// that the instance has no whitelist so we can return true because everything is allowed by default.\n\tif instanceWhitelist == nil || !instanceWhitelist.HasDefinition() {\n\t\treturn true\n\t}\n\n\t// The instance whitelist is defined so if the address is present then it is allowed.\n\treturn instanceWhitelist.HasAddress(address)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hrcw401V8fEvyrBX780RWn7N3swtUWVIGXO2t6UZnQNLwu7Lpe8refUEgkB447To4qaeT/sDQTpdkUrC+6x8DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"govdao","path":"gno.land/r/gov/dao/v2","files":[{"name":"dao.gno","body":"package govdao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/simpledao\"\n)\n\nvar (\n\td *simpledao.SimpleDAO // the current active DAO implementation\n\tmembers membstore.MemberStore // the member store\n)\n\nconst daoPkgPath = \"gno.land/r/gov/dao/v2\"\n\nfunc init() {\n\t// Example initial member set (just test addresses)\n\tset := []membstore.Member{\n\t\t{\n\t\t\tAddress: std.Address(\"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"),\n\t\t\tVotingPower: 10,\n\t\t},\n\t}\n\n\t// Set the member store\n\tmembers = membstore.NewMembStore(membstore.WithInitialMembers(set), membstore.WithDAOPkgPath(daoPkgPath))\n\n\t// Set the DAO implementation\n\td = simpledao.New(members)\n}\n\n// Propose is designed to be called by another contract or with\n// `maketx run`, not by a `maketx call`.\nfunc Propose(request dao.ProposalRequest) uint64 {\n\tidx, err := d.Propose(request)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn idx\n}\n\n// VoteOnProposal casts a vote for the given proposal\nfunc VoteOnProposal(id uint64, option dao.VoteOption) {\n\tif err := d.VoteOnProposal(id, option); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// ExecuteProposal executes the proposal\nfunc ExecuteProposal(id uint64) {\n\tif err := d.ExecuteProposal(id); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetPropStore returns the active proposal store\nfunc GetPropStore() dao.PropStore {\n\treturn d\n}\n\n// GetMembStore returns the active member store\nfunc GetMembStore() membstore.MemberStore {\n\treturn members\n}\n"},{"name":"poc.gno","body":"package govdao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/combinederr\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/gov/executor\"\n)\n\nvar errNoChangesProposed = errors.New(\"no set changes proposed\")\n\n// NewGovDAOExecutor creates the govdao wrapped callback executor\nfunc NewGovDAOExecutor(cb func() error) dao.Executor {\n\tif cb == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\treturn executor.NewCallbackExecutor(\n\t\tcb,\n\t\tstd.CurrentRealm().PkgPath(),\n\t)\n}\n\n// NewMemberPropExecutor returns the GOVDAO member change executor\nfunc NewMemberPropExecutor(changesFn func() []membstore.Member) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\terrs := \u0026combinederr.CombinedError{}\n\t\tcbMembers := changesFn()\n\n\t\tfor _, member := range cbMembers {\n\t\t\tswitch {\n\t\t\tcase !members.IsMember(member.Address):\n\t\t\t\t// Addition request\n\t\t\t\terr := members.AddMember(member)\n\n\t\t\t\terrs.Add(err)\n\t\t\tcase member.VotingPower == 0:\n\t\t\t\t// Remove request\n\t\t\t\terr := members.UpdateMember(member.Address, membstore.Member{\n\t\t\t\t\tAddress: member.Address,\n\t\t\t\t\tVotingPower: 0, // 0 indicated removal\n\t\t\t\t})\n\n\t\t\t\terrs.Add(err)\n\t\t\tdefault:\n\t\t\t\t// Update request\n\t\t\t\terr := members.UpdateMember(member.Address, member)\n\n\t\t\t\terrs.Add(err)\n\t\t\t}\n\t\t}\n\n\t\t// Check if there were any execution errors\n\t\tif errs.Size() == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errs\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\nfunc NewMembStoreImplExecutor(changeFn func() membstore.MemberStore) dao.Executor {\n\tif changeFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tsetMembStoreImpl(changeFn())\n\n\t\treturn nil\n\t}\n\n\treturn NewGovDAOExecutor(callback)\n}\n\n// setMembStoreImpl sets a new dao.MembStore implementation\nfunc setMembStoreImpl(impl membstore.MemberStore) {\n\tif impl == nil {\n\t\tpanic(\"invalid member store\")\n\t}\n\n\tmembers = impl\n}\n"},{"name":"prop1_filetest.gno","body":"// Please note that this package is intended for demonstration purposes only.\n// You could execute this code (the init part) by running a `maketx run` command\n// or by uploading a similar package to a personal namespace.\n//\n// For the specific case of validators, a `r/gnoland/valopers` will be used to\n// organize the lifecycle of validators (register, etc), and this more complex\n// contract will be responsible to generate proposals.\npackage main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\tpVals \"gno.land/p/sys/validators\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nfunc init() {\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g12345678\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 10, // add a new validator\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g000000000\"),\n\t\t\t\tPubKey: \"pubkey\",\n\t\t\t\tVotingPower: 0, // remove an existing validator\n\t\t\t},\n\t\t}\n\t}\n\n\t// Wraps changesFn to emit a certified event only if executed from a\n\t// complete governance proposal process.\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Create a proposal\n\ttitle := \"Valset change\"\n\tdescription := \"manual valset changes proposal example\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, dao.YesVote)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(validators.Render(\"\"))\n}\n\n// Output:\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - Valset change](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// No valset changes to apply.\n// --\n// --\n// # Proposal #0 - Valset change\n//\n// ## Description\n//\n// manual valset changes proposal example\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// Valset changes:\n// - #123: g12345678 (10)\n// - #123: g000000000 (10)\n// - #123: g000000000 (0)\n//\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorAdded\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"addValidator\"\n// },\n// {\n// \"type\": \"ValidatorRemoved\",\n// \"attrs\": [],\n// \"pkg_path\": \"gno.land/r/sys/validators/v2\",\n// \"func\": \"removeValidator\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop2_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/dao\"\n\tgnoblog \"gno.land/r/gnoland/blog\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tex := gnoblog.NewPostExecutor(\n\t\t\"hello-from-govdao\", // slug\n\t\t\"Hello from GovDAO!\", // title\n\t\t\"This post was published by a GovDAO proposal.\", // body\n\t\ttime.Now().Format(time.RFC3339), // publication date\n\t\t\"moul\", // authors\n\t\t\"govdao,example\", // tags\n\t)\n\n\t// Create a proposal\n\ttitle := \"govdao blog post title\"\n\tdescription := \"post a new blogpost about govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: ex,\n\t}\n\n\tgovdao.Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(gnoblog.Render(\"\"))\n}\n\n// Output:\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - govdao blog post title](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # gno.land's blog\n//\n// No posts.\n// --\n// --\n// # Proposal #0 - govdao blog post title\n//\n// ## Description\n//\n// post a new blogpost about govdao\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # gno.land's blog\n//\n// \u003cdiv class='columns-3'\u003e\u003cdiv\u003e\n//\n// ### [Hello from GovDAO!](/r/gnoland/blog:p/hello-from-govdao)\n// 13 Feb 2009\n// \u003c/div\u003e\u003c/div\u003e\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop3_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdao \"gno.land/r/gov/dao/v2\"\n)\n\nfunc init() {\n\tmemberFn := func() []membstore.Member {\n\t\treturn []membstore.Member{\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g123\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g456\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t\t{\n\t\t\t\tAddress: std.Address(\"g789\"),\n\t\t\t\tVotingPower: 10,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create a proposal\n\ttitle := \"new govdao member addition\"\n\tdescription := \"add new members to the govdao\"\n\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: description,\n\t\tExecutor: govdao.NewMemberPropExecutor(memberFn),\n\t}\n\n\tbridge.GovDAO().Propose(prop)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tgovdao.VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tgovdao.ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"0\"))\n\tprintln(\"--\")\n\tprintln(govdao.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdao.GetMembStore().Size())\n}\n\n// Output:\n// --\n// 1\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: ACCEPTED**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// --\n// # Proposal #0 - new govdao member addition\n//\n// ## Description\n//\n// add new members to the govdao\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (25%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 30 (75%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - new govdao member addition](/r/gov/dao/v2:0)\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// 4\n\n// Events:\n// [\n// {\n// \"type\": \"ProposalAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"proposal-author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAdded\"\n// },\n// {\n// \"type\": \"VoteAdded\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"author\",\n// \"value\": \"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\"\n// },\n// {\n// \"key\": \"option\",\n// \"value\": \"YES\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitVoteAdded\"\n// },\n// {\n// \"type\": \"ProposalAccepted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"EmitProposalAccepted\"\n// },\n// {\n// \"type\": \"ProposalExecuted\",\n// \"attrs\": [\n// {\n// \"key\": \"proposal-id\",\n// \"value\": \"0\"\n// },\n// {\n// \"key\": \"exec-status\",\n// \"value\": \"accepted\"\n// }\n// ],\n// \"pkg_path\": \"gno.land/r/gov/dao/v2\",\n// \"func\": \"ExecuteProposal\"\n// }\n// ]\n"},{"name":"prop4_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tgovdaov2 \"gno.land/r/gov/dao/v2\"\n\t\"gno.land/r/sys/params\"\n)\n\nfunc init() {\n\tmExec := params.NewStringPropExecutor(\"prop1.string\", \"value1\")\n\ttitle := \"Setting prop1.string param\"\n\tcomment := \"setting prop1.string param\"\n\tprop := dao.ProposalRequest{\n\t\tTitle: title,\n\t\tDescription: comment,\n\t\tExecutor: mExec,\n\t}\n\tid := bridge.GovDAO().Propose(prop)\n\tprintln(\"new prop\", id)\n}\n\nfunc main() {\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"\"))\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().VoteOnProposal(0, \"YES\")\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n\tprintln(\"--\")\n\tbridge.GovDAO().ExecuteProposal(0)\n\tprintln(\"--\")\n\tprintln(govdaov2.Render(\"0\"))\n}\n\n// Output:\n// new prop 0\n// --\n// # GovDAO Proposals\n//\n// ## [Prop #0 - Setting prop1.string param](/r/gov/dao/v2:0)\n//\n// **Status: ACTIVE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n//\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: ACTIVE**\n//\n// **Voting stats:**\n// - YES 0 (0%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 10 (100%)\n//\n//\n// **Threshold met: FALSE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// #### [[Vote YES](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=YES)] - [[Vote NO](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=NO)] - [[Vote ABSTAIN](/r/gov/dao/v2$help\u0026func=VoteOnProposal\u0026id=0\u0026option=ABSTAIN)]\n//\n//\n// --\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: ACCEPTED**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n// --\n// --\n// # Proposal #0 - Setting prop1.string param\n//\n// ## Description\n//\n// setting prop1.string param\n//\n// ## Proposal information\n//\n// **Status: EXECUTION SUCCESSFUL**\n//\n// **Voting stats:**\n// - YES 10 (100%)\n// - NO 0 (0%)\n// - ABSTAIN 0 (0%)\n// - MISSING VOTES 0 (0%)\n//\n//\n// **Threshold met: TRUE**\n//\n// **Author: g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm**\n//\n// ### Actions\n//\n// The voting period for this proposal is over.\n//\n//\n"},{"name":"render.gno","body":"package govdao\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n\t\"gno.land/r/demo/users\"\n)\n\nfunc Render(path string) string {\n\tvar out string\n\n\tif path == \"\" {\n\t\tout += \"# GovDAO Proposals\\n\\n\"\n\t\tnumProposals := d.Size()\n\n\t\tif numProposals == 0 {\n\t\t\tout += \"No proposals found :(\" // corner case\n\t\t\treturn out\n\t\t}\n\n\t\toffset := uint64(0)\n\t\tif numProposals \u003e= 10 {\n\t\t\toffset = uint64(numProposals) - 10\n\t\t}\n\n\t\t// Fetch the last 10 proposals\n\t\tproposals := d.Proposals(offset, uint64(10))\n\t\tfor i := len(proposals) - 1; i \u003e= 0; i-- {\n\t\t\tprop := proposals[i]\n\n\t\t\ttitle := prop.Title()\n\t\t\tif len(title) \u003e 40 {\n\t\t\t\ttitle = title[:40] + \"...\"\n\t\t\t}\n\n\t\t\tpropID := offset + uint64(i)\n\t\t\tout += ufmt.Sprintf(\"## [Prop #%d - %s](/r/gov/dao/v2:%d)\\n\\n\", propID, title, propID)\n\t\t\tout += ufmt.Sprintf(\"**Status: %s**\\n\\n\", strings.ToUpper(prop.Status().String()))\n\n\t\t\tuser := users.GetUserByAddress(prop.Author())\n\t\t\tauthorDisplayText := prop.Author().String()\n\t\t\tif user != nil {\n\t\t\t\tauthorDisplayText = ufmt.Sprintf(\"[%s](/r/demo/users:%s)\", user.Name, user.Name)\n\t\t\t}\n\n\t\t\tout += ufmt.Sprintf(\"**Author: %s**\\n\\n\", authorDisplayText)\n\n\t\t\tif i != 0 {\n\t\t\t\tout += \"---\\n\\n\"\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t// Display the detailed proposal\n\tidx, err := strconv.Atoi(path)\n\tif err != nil {\n\t\treturn \"404: Invalid proposal ID\"\n\t}\n\n\t// Fetch the proposal\n\tprop, err := d.ProposalByID(uint64(idx))\n\tif err != nil {\n\t\treturn ufmt.Sprintf(\"unable to fetch proposal, %s\", err.Error())\n\t}\n\n\t// Render the proposal page\n\tout += renderPropPage(prop, idx)\n\n\treturn out\n}\n\nfunc renderPropPage(prop dao.Proposal, idx int) string {\n\tvar out string\n\n\tout += ufmt.Sprintf(\"# Proposal #%d - %s\\n\\n\", idx, prop.Title())\n\tout += prop.Render()\n\tout += renderAuthor(prop)\n\tout += renderActionBar(prop, idx)\n\tout += \"\\n\\n\"\n\n\treturn out\n}\n\nfunc renderAuthor(p dao.Proposal) string {\n\tvar out string\n\n\tauthorUsername := \"\"\n\tuser := users.GetUserByAddress(p.Author())\n\tif user != nil {\n\t\tauthorUsername = user.Name\n\t}\n\n\tif authorUsername != \"\" {\n\t\tout += ufmt.Sprintf(\"**Author: [%s](/r/demo/users:%s)**\\n\\n\", authorUsername, authorUsername)\n\t} else {\n\t\tout += ufmt.Sprintf(\"**Author: %s**\\n\\n\", p.Author().String())\n\t}\n\n\treturn out\n}\n\nfunc renderActionBar(p dao.Proposal, idx int) string {\n\tvar out string\n\n\tout += \"### Actions\\n\\n\"\n\tif p.Status() == dao.Active {\n\t\tout += ufmt.Sprintf(\"#### [[Vote YES](%s)] - [[Vote NO](%s)] - [[Vote ABSTAIN](%s)]\",\n\t\t\ttxlink.Call(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"YES\"),\n\t\t\ttxlink.Call(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"NO\"),\n\t\t\ttxlink.Call(\"VoteOnProposal\", \"id\", strconv.Itoa(idx), \"option\", \"ABSTAIN\"),\n\t\t)\n\t} else {\n\t\tout += \"The voting period for this proposal is over.\"\n\t}\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jFAyWBjAEgR/+vCNH/l0imNRPDp7wp9jjW1tkSNwNlBRKbUJYJLBEKa482WDNCbT/SpJ5O0i9bm1WSXjF4bzAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"grc1155","path":"gno.land/p/demo/grc/grc1155","files":[{"name":"README.md","body":"# GRC-1155 Spec: Multi Token Standard\n\nGRC1155 is a specification for managing multiple tokens based on Gnoland. The name and design is based on Ethereum's ERC1155 standard.\n\n## See also:\n\n[ERC-1155 Spec][erc-1155]\n\n[erc-1155]: https://eips.ethereum.org/EIPS/eip-1155"},{"name":"basic_grc1155_token.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicGRC1155Token struct {\n\turi string\n\tbalances avl.Tree // \"TokenId:Address\" -\u003e uint64\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\nvar _ IGRC1155 = (*basicGRC1155Token)(nil)\n\n// Returns new basic GRC1155 token\nfunc NewBasicGRC1155Token(uri string) *basicGRC1155Token {\n\treturn \u0026basicGRC1155Token{\n\t\turi: uri,\n\t\tbalances: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicGRC1155Token) Uri() string { return s.uri }\n\n// BalanceOf returns the input address's balance of the token type requested\nfunc (s *basicGRC1155Token) BalanceOf(addr std.Address, tid TokenID) (uint64, error) {\n\tif !isValidAddress(addr) {\n\t\treturn 0, ErrInvalidAddress\n\t}\n\n\tkey := string(tid) + \":\" + addr.String()\n\tbalance, found := s.balances.Get(key)\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// BalanceOfBatch returns the balance of multiple account/token pairs\nfunc (s *basicGRC1155Token) BalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error) {\n\tif len(owners) != len(batch) {\n\t\treturn nil, ErrMismatchLength\n\t}\n\n\tbalanceOfBatch := make([]uint64, len(owners))\n\n\tfor i := 0; i \u003c len(owners); i++ {\n\t\tbalanceOfBatch[i], _ = s.BalanceOf(owners[i], batch[i])\n\t}\n\n\treturn balanceOfBatch, nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicGRC1155Token) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif !isValidAddress(operator) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// IsApprovedForAll returns true if operator is the owner or is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicGRC1155Token) IsApprovedForAll(owner, operator std.Address) bool {\n\tif operator == owner {\n\t\treturn true\n\t}\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, from, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, to, tid, amount})\n\n\treturn nil\n}\n\n// Safely transfers a `batch` of tokens from `from` to `to`, checking that\n// contract recipients are aware of the GRC1155 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicGRC1155Token) SafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\tif !s.IsApprovedForAll(caller, from) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.safeBatchTransferFrom(from, to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, from, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, to, batch, amounts})\n\n\treturn nil\n}\n\n// Creates `amount` tokens of token type `id`, and assigns them to `to`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeMint(to std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeTransferAcceptanceCheck(caller, zeroAddress, to, tid, amount) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, zeroAddress, to, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `SafeMint()`. Also checks that\n// contract recipients are using GRC1155 protocol.\nfunc (s *basicGRC1155Token) SafeBatchMint(to std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.mintBatch(to, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.doSafeBatchTransferAcceptanceCheck(caller, zeroAddress, to, batch, amounts) {\n\t\treturn ErrTransferToRejectedOrNonGRC1155Receiver\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, zeroAddress, to, batch, amounts})\n\n\treturn nil\n}\n\n// Destroys `amount` tokens of token type `id` from `from`.\nfunc (s *basicGRC1155Token) Burn(from std.Address, tid TokenID, amount uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, []TokenID{tid}, []uint64{amount})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferSingleEvent{caller, from, zeroAddress, tid, amount})\n\n\treturn nil\n}\n\n// Batch version of `Burn()`\nfunc (s *basicGRC1155Token) BatchBurn(from std.Address, batch []TokenID, amounts []uint64) error {\n\tcaller := std.GetOrigCaller()\n\n\terr := s.burnBatch(from, batch, amounts)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\temit(\u0026TransferBatchEvent{caller, from, zeroAddress, batch, amounts})\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll(): approve `operator` to operate on all of `owner` tokens\nfunc (s *basicGRC1155Token) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn nil\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\tif approved {\n\t\ts.operatorApprovals.Set(key, approved)\n\t} else {\n\t\ts.operatorApprovals.Remove(key)\n\t}\n\n\temit(\u0026ApprovalForAllEvent{owner, operator, approved})\n\n\treturn nil\n}\n\n// Helper for SafeTransferFrom() and SafeBatchTransferFrom()\nfunc (s *basicGRC1155Token) safeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) || !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrInsufficientBalance\n\t\t}\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfromBalance -= amount\n\t\ttoBalance += amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for SafeMint() and SafeBatchMint()\nfunc (s *basicGRC1155Token) mintBatch(to std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(to) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\ttoBalance, err := s.BalanceOf(to, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttoBalance += amount\n\t\ttoBalanceKey := string(tid) + \":\" + to.String()\n\t\ts.balances.Set(toBalanceKey, toBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, zeroAddress, to, batch, amounts)\n\n\treturn nil\n}\n\n// Helper for Burn() and BurnBatch()\nfunc (s *basicGRC1155Token) burnBatch(from std.Address, batch []TokenID, amounts []uint64) error {\n\tif len(batch) != len(amounts) {\n\t\treturn ErrMismatchLength\n\t}\n\tif !isValidAddress(from) {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.GetOrigCaller()\n\ts.beforeTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\tfor i := 0; i \u003c len(batch); i++ {\n\t\ttid := batch[i]\n\t\tamount := amounts[i]\n\t\tfromBalance, err := s.BalanceOf(from, tid)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif fromBalance \u003c amount {\n\t\t\treturn ErrBurnAmountExceedsBalance\n\t\t}\n\t\tfromBalance -= amount\n\t\tfromBalanceKey := string(tid) + \":\" + from.String()\n\t\ts.balances.Set(fromBalanceKey, fromBalance)\n\t}\n\n\ts.afterTokenTransfer(caller, from, zeroAddress, batch, amounts)\n\n\treturn nil\n}\n\nfunc (s *basicGRC1155Token) setUri(newUri string) {\n\ts.uri = newUri\n\temit(\u0026UpdateURIEvent{newUri})\n}\n\nfunc (s *basicGRC1155Token) beforeTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) afterTokenTransfer(operator, from, to std.Address, batch []TokenID, amounts []uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicGRC1155Token) doSafeTransferAcceptanceCheck(operator, from, to std.Address, tid TokenID, amount uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) doSafeBatchTransferAcceptanceCheck(operator, from, to std.Address, batch []TokenID, amounts []uint64) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicGRC1155Token) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# URI:%s\\n\", s.uri)\n\n\treturn\n}\n"},{"name":"basic_grc1155_token_test.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nconst dummyURI = \"ipfs://xyz\"\n\nfunc TestNewBasicGRC1155Token(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestUri(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\tuassert.Equal(t, dummyURI, dummy.Uri())\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceZeroAddressOfToken1, err := dummy.BalanceOf(zeroAddress, tid1)\n\tuassert.Error(t, err, \"should result in error\")\n\n\tbalanceAddr1OfToken1, err := dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1OfToken1)\n\n\tdummy.mintBatch(addr1, []TokenID{tid1, tid2}, []uint64{10, 100})\n\tdummy.mintBatch(addr2, []TokenID{tid1}, []uint64{20})\n\n\tbalanceAddr1OfToken1, err = dummy.BalanceOf(addr1, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr1OfToken2, err := dummy.BalanceOf(addr1, tid2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceAddr2OfToken1, err := dummy.BalanceOf(addr2, tid1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(10), balanceAddr1OfToken1)\n\tuassert.Equal(t, uint64(100), balanceAddr1OfToken2)\n\tuassert.Equal(t, uint64(20), balanceAddr2OfToken1)\n}\n\nfunc TestBalanceOfBatch(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceBatch[0])\n\tuassert.Equal(t, uint64(0), balanceBatch[1])\n\n\tdummy.mintBatch(addr1, []TokenID{tid1}, []uint64{10})\n\tdummy.mintBatch(addr2, []TokenID{tid2}, []uint64{20})\n\n\tbalanceBatch, err = dummy.BalanceOfBatch([]std.Address{addr1, addr2}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(10), balanceBatch[0])\n\tuassert.Equal(t, uint64(20), balanceBatch[1])\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n\n\terr = dummy.SetApprovalForAll(addr, false)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid := TokenID(\"1\")\n\n\tdummy.mintBatch(caller, []TokenID{tid}, []uint64{100})\n\n\terr := dummy.SafeTransferFrom(caller, zeroAddress, tid, 10)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 160)\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.SafeTransferFrom(caller, addr, tid, 60)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(40), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr, tid)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(60), balanceOfAddr)\n}\n\nfunc TestSafeBatchTransferFrom(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.GetOrigCaller()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(caller, []TokenID{tid1, tid2}, []uint64{10, 100})\n\n\terr := dummy.SafeBatchTransferFrom(caller, zeroAddress, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1}, []uint64{40, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchTransferFrom(caller, addr, []TokenID{tid1, tid2}, []uint64{4, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{caller, addr, caller, addr}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(6), balanceBatch[0])\n\n\t// Check token1's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(4), balanceBatch[1])\n\n\t// Check token2's balance of caller after batch transfer\n\tuassert.Equal(t, uint64(40), balanceBatch[2])\n\n\t// Check token2's balance of addr after batch transfer\n\tuassert.Equal(t, uint64(60), balanceBatch[3])\n}\n\nfunc TestSafeMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeMint(zeroAddress, tid1, 100)\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeMint(addr1, tid1, 100)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr1, tid2, 200)\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeMint(addr2, tid1, 50)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1}, []TokenID{tid1, tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after mint\n\tuassert.Equal(t, uint64(50), balanceBatch[1])\n\t// Check token2's balance of addr1 after mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n}\n\nfunc TestSafeBatchMint(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\terr := dummy.SafeBatchMint(zeroAddress, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.SafeBatchMint(addr1, []TokenID{tid1, tid2}, []uint64{100, 200})\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.SafeBatchMint(addr2, []TokenID{tid1, tid2}, []uint64{300, 400})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr1, addr2, addr1, addr2}, []TokenID{tid1, tid1, tid2, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\t// Check token1's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(100), balanceBatch[0])\n\t// Check token1's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(300), balanceBatch[1])\n\t// Check token2's balance of addr1 after batch mint\n\tuassert.Equal(t, uint64(200), balanceBatch[2])\n\t// Check token2's balance of addr2 after batch mint\n\tuassert.Equal(t, uint64(400), balanceBatch[3])\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.Burn(zeroAddress, tid1, uint64(60))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(160))\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.Burn(addr, tid1, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Burn(addr, tid2, uint64(60))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n\nfunc TestBatchBurn(t *testing.T) {\n\tdummy := NewBasicGRC1155Token(dummyURI)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\ttid1 := TokenID(\"1\")\n\ttid2 := TokenID(\"2\")\n\n\tdummy.mintBatch(addr, []TokenID{tid1, tid2}, []uint64{100, 200})\n\terr := dummy.BatchBurn(zeroAddress, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{160, 60})\n\tuassert.Error(t, err, \"should result in error\")\n\terr = dummy.BatchBurn(addr, []TokenID{tid1, tid2}, []uint64{60, 60})\n\tuassert.NoError(t, err, \"should not result in error\")\n\tbalanceBatch, err := dummy.BalanceOfBatch([]std.Address{addr, addr}, []TokenID{tid1, tid2})\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check token1's balance of addr after batch burn\n\tuassert.Equal(t, uint64(40), balanceBatch[0])\n\t// Check token2's balance of addr after batch burn\n\tuassert.Equal(t, uint64(140), balanceBatch[1])\n}\n"},{"name":"errors.gno","body":"package grc1155\n\nimport \"errors\"\n\nvar (\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrMismatchLength = errors.New(\"accounts and ids length mismatch\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferToRejectedOrNonGRC1155Receiver = errors.New(\"transfer to rejected or non GRC1155Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrInsufficientBalance = errors.New(\"insufficient balance for transfer\")\n\tErrBurnAmountExceedsBalance = errors.New(\"burn amount exceeds balance\")\n)\n"},{"name":"igrc1155.gno","body":"package grc1155\n\nimport \"std\"\n\ntype IGRC1155 interface {\n\tSafeTransferFrom(from, to std.Address, tid TokenID, amount uint64) error\n\tSafeBatchTransferFrom(from, to std.Address, batch []TokenID, amounts []uint64) error\n\tBalanceOf(owner std.Address, tid TokenID) (uint64, error)\n\tBalanceOfBatch(owners []std.Address, batch []TokenID) ([]uint64, error)\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype TokenID string\n\ntype TransferSingleEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tTokenID TokenID\n\tAmount uint64\n}\n\ntype TransferBatchEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tBatch []TokenID\n\tAmounts []uint64\n}\n\ntype ApprovalForAllEvent struct {\n\tOwner std.Address\n\tOperator std.Address\n\tApproved bool\n}\n\ntype UpdateURIEvent struct {\n\tURI string\n}\n"},{"name":"util.gno","body":"package grc1155\n\nimport (\n\t\"std\"\n)\n\nconst zeroAddress std.Address = \"\"\n\nfunc isValidAddress(addr std.Address) bool {\n\tif !addr.IsValid() {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"adPyyEDfg1aMfFPZfdqKy6wZUqjgjhl6F1tY/VNSL1BRxNSbXuJy2S5/NN41iJPGDZALp1/h+VTuV+tB0ofMAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"grc20","path":"gno.land/p/demo/grc/grc20","files":[{"name":"examples_test.gno","body":"package grc20\n\n// XXX: write Examples\n\nfunc ExampleInit() {}\nfunc ExampleExposeBankForMaketxRunOrImports() {}\nfunc ExampleCustomTellerImpl() {}\nfunc ExampleAllowance() {}\nfunc ExampleRealmBanker() {}\nfunc ExamplePrevRealmBanker() {}\nfunc ExampleAccountBanker() {}\nfunc ExampleTransfer() {}\nfunc ExampleApprove() {}\nfunc ExampleTransferFrom() {}\nfunc ExampleMint() {}\nfunc ExampleBurn() {}\n\n// ...\n"},{"name":"mock.gno","body":"package grc20\n\n// XXX: func Mock(t *Token)\n"},{"name":"tellers.gno","body":"package grc20\n\nimport (\n\t\"std\"\n)\n\n// CallerTeller returns a GRC20 compatible teller that checks the PrevRealm\n// caller for each call. It's usually safe to expose it publicly to let users\n// manipulate their tokens directly, or for realms to use their allowance.\nfunc (tok *Token) CallerTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\tcaller := std.PrevRealm().Addr()\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ReadonlyTeller is a GRC20 compatible teller that panics for any write operation.\nfunc (tok *Token) ReadonlyTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: nil,\n\t\tToken: tok,\n\t}\n}\n\n// RealmTeller returns a GRC20 compatible teller that will store the\n// caller realm permanently. Calling anything through this teller will\n// result in allowance or balance changes for the realm that initialized the teller.\n// The initializer of this teller should usually never share the resulting Teller from\n// this method except maybe for advanced delegation flows such as a DAO treasury\n// management.\nfunc (tok *Token) RealmTeller() Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn caller\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// RealmSubTeller is like RealmTeller but uses the provided slug to derive a\n// subaccount.\nfunc (tok *Token) RealmSubTeller(slug string) Teller {\n\tif tok == nil {\n\t\tpanic(\"Token cannot be nil\")\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\taccount := accountSlugAddr(caller, slug)\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn account\n\t\t},\n\t\tToken: tok,\n\t}\n}\n\n// ImpersonateTeller returns a GRC20 compatible teller that impersonates as a\n// specified address. This allows operations to be performed as if they were\n// executed by the given address, enabling the caller to manipulate tokens on\n// behalf of that address.\n//\n// It is particularly useful in scenarios where a contract needs to perform\n// actions on behalf of a user or another account, without exposing the\n// underlying logic or requiring direct access to the user's account. The\n// returned teller will use the provided address for all operations, effectively\n// masking the original caller.\n//\n// This method should be used with caution, as it allows for potentially\n// sensitive operations to be performed under the guise of another address.\nfunc (ledger *PrivateLedger) ImpersonateTeller(addr std.Address) Teller {\n\tif ledger == nil {\n\t\tpanic(\"Ledger cannot be nil\")\n\t}\n\n\treturn \u0026fnTeller{\n\t\taccountFn: func() std.Address {\n\t\t\treturn addr\n\t\t},\n\t\tToken: ledger.token,\n\t}\n}\n\n// generic tellers methods.\n//\n\nfunc (ft *fnTeller) Transfer(to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Transfer(caller, to, amount)\n}\n\nfunc (ft *fnTeller) Approve(spender std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tcaller := ft.accountFn()\n\treturn ft.Token.ledger.Approve(caller, spender, amount)\n}\n\nfunc (ft *fnTeller) TransferFrom(owner, to std.Address, amount uint64) error {\n\tif ft.accountFn == nil {\n\t\treturn ErrReadonly\n\t}\n\tspender := ft.accountFn()\n\treturn ft.Token.ledger.TransferFrom(owner, spender, to, amount)\n}\n\n// helpers\n//\n\n// accountSlugAddr returns the address derived from the specified address and slug.\nfunc accountSlugAddr(addr std.Address, slug string) std.Address {\n\t// XXX: use a new `std.XXX` call for this.\n\tif slug == \"\" {\n\t\treturn addr\n\t}\n\tkey := addr.String() + \"/\" + slug\n\treturn std.DerivePkgAddr(key) // temporarily using this helper\n}\n"},{"name":"tellers_test.gno","body":"package grc20\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCallerTellerImpl(t *testing.T) {\n\ttok, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\tteller := tok.CallerTeller()\n\turequire.False(t, tok == nil)\n\tvar _ Teller = teller\n}\n\nfunc TestTeller(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\turequire.NoError(t, ledger.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, ledger.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, ledger.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestCallerTeller(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\tcarl := testutils.TestAddress(\"carl\")\n\n\ttoken, ledger := NewToken(\"Dummy\", \"DUMMY\", 6)\n\tteller := token.CallerTeller()\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := token.BalanceOf(alice)\n\t\tbobGB := token.BalanceOf(bob)\n\t\tcarlGB := token.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := token.Allowance(alice, bob)\n\t\tacGB := token.Allowance(alice, carl)\n\t\tbaGB := token.Allowance(bob, alice)\n\t\tbcGB := token.Allowance(bob, carl)\n\t\tcaGB := token.Allowance(carl, alice)\n\t\tcbGB := token.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\turequire.NoError(t, ledger.Mint(alice, 1000))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(alice)\n\turequire.NoError(t, teller.Approve(bob, 600))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\n\tstd.TestSetOrigCaller(bob)\n\turequire.Error(t, teller.TransferFrom(alice, carl, 700))\n\tcheckBalances(1000, 0, 0)\n\tcheckAllowances(600, 0, 0, 0, 0, 0)\n\turequire.NoError(t, teller.TransferFrom(alice, carl, 400))\n\tcheckBalances(600, 0, 400)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n"},{"name":"token.gno","body":"package grc20\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// NewToken creates a new Token.\n// It returns a pointer to the Token and a pointer to the Ledger.\n// Expected usage: Token, admin := NewToken(\"Dummy\", \"DUMMY\", 4)\nfunc NewToken(name, symbol string, decimals uint) (*Token, *PrivateLedger) {\n\tif name == \"\" {\n\t\tpanic(\"name should not be empty\")\n\t}\n\tif symbol == \"\" {\n\t\tpanic(\"symbol should not be empty\")\n\t}\n\t// XXX additional checks (length, characters, limits, etc)\n\n\tledger := \u0026PrivateLedger{}\n\ttoken := \u0026Token{\n\t\tname: name,\n\t\tsymbol: symbol,\n\t\tdecimals: decimals,\n\t\tledger: ledger,\n\t}\n\tledger.token = token\n\treturn token, ledger\n}\n\n// GetName returns the name of the token.\nfunc (tok Token) GetName() string { return tok.name }\n\n// GetSymbol returns the symbol of the token.\nfunc (tok Token) GetSymbol() string { return tok.symbol }\n\n// GetDecimals returns the number of decimals used to get the token's precision.\nfunc (tok Token) GetDecimals() uint { return tok.decimals }\n\n// TotalSupply returns the total supply of the token.\nfunc (tok Token) TotalSupply() uint64 { return tok.ledger.totalSupply }\n\n// KnownAccounts returns the number of known accounts in the bank.\nfunc (tok Token) KnownAccounts() int { return tok.ledger.balances.Size() }\n\n// BalanceOf returns the balance of the specified address.\nfunc (tok Token) BalanceOf(address std.Address) uint64 {\n\treturn tok.ledger.balanceOf(address)\n}\n\n// Allowance returns the allowance of the specified owner and spender.\nfunc (tok Token) Allowance(owner, spender std.Address) uint64 {\n\treturn tok.ledger.allowance(owner, spender)\n}\n\nfunc (tok *Token) RenderHome() string {\n\tstr := \"\"\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", tok.name, tok.symbol)\n\tstr += ufmt.Sprintf(\"* **Decimals**: %d\\n\", tok.decimals)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", tok.ledger.totalSupply)\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", tok.KnownAccounts())\n\treturn str\n}\n\n// Getter returns a TokenGetter function that returns this token. This allows\n// storing indirect pointers to a token in a remote realm.\nfunc (tok *Token) Getter() TokenGetter {\n\treturn func() *Token {\n\t\treturn tok\n\t}\n}\n\n// SpendAllowance decreases the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) SpendAllowance(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentAllowance := led.allowance(owner, spender)\n\tif currentAllowance \u003c amount {\n\t\treturn ErrInsufficientAllowance\n\t}\n\n\tkey := allowanceKey(owner, spender)\n\tnewAllowance := currentAllowance - amount\n\n\tif newAllowance == 0 {\n\t\tled.allowances.Remove(key)\n\t} else {\n\t\tled.allowances.Set(key, newAllowance)\n\t}\n\n\treturn nil\n}\n\n// Transfer transfers tokens from the specified from address to the specified to address.\nfunc (led *PrivateLedger) Transfer(from, to std.Address, amount uint64) error {\n\tif !from.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif !to.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\tvar (\n\t\ttoBalance = led.balanceOf(to)\n\t\tfromBalance = led.balanceOf(from)\n\t)\n\n\tif fromBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tvar (\n\t\tnewToBalance = toBalance + amount\n\t\tnewFromBalance = fromBalance - amount\n\t)\n\n\tled.balances.Set(string(to), newToBalance)\n\tled.balances.Set(string(from), newFromBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", from.String(),\n\t\t\"to\", to.String(),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// TransferFrom transfers tokens from the specified owner to the specified to address.\n// It first checks if the owner has sufficient balance and then decreases the allowance.\nfunc (led *PrivateLedger) TransferFrom(owner, spender, to std.Address, amount uint64) error {\n\tif led.balanceOf(owner) \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\tif err := led.SpendAllowance(owner, spender, amount); err != nil {\n\t\treturn err\n\t}\n\t// XXX: since we don't \"panic\", we should take care of rollbacking spendAllowance if transfer fails.\n\treturn led.Transfer(owner, to, amount)\n}\n\n// Approve sets the allowance of the specified owner and spender.\nfunc (led *PrivateLedger) Approve(owner, spender std.Address, amount uint64) error {\n\tif !owner.IsValid() || !spender.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tled.allowances.Set(allowanceKey(owner, spender), amount)\n\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"spender\", string(spender),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Mint increases the total supply of the token and adds the specified amount to the specified address.\nfunc (led *PrivateLedger) Mint(address std.Address, amount uint64) (err error) {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif r != \"addition overflow\" {\n\t\t\t\tpanic(r)\n\t\t\t}\n\t\t\terr = ErrOverflow\n\t\t}\n\t}()\n\n\t// Convert amount and totalSupply to signed integers to enable\n\t// overflow checking (not occuring on unsigned) when computing the sum.\n\t// The maximum value for totalSupply is therefore 1\u003c\u003c63.\n\tsum := int64(led.totalSupply) + int64(amount)\n\n\tled.totalSupply = uint64(sum)\n\tcurrentBalance := led.balanceOf(address)\n\tnewBalance := currentBalance + amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", \"\",\n\t\t\"to\", string(address),\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// Burn decreases the total supply of the token and subtracts the specified amount from the specified address.\nfunc (led *PrivateLedger) Burn(address std.Address, amount uint64) error {\n\tif !address.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcurrentBalance := led.balanceOf(address)\n\tif currentBalance \u003c amount {\n\t\treturn ErrInsufficientBalance\n\t}\n\n\tled.totalSupply -= amount\n\tnewBalance := currentBalance - amount\n\n\tled.balances.Set(string(address), newBalance)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(address),\n\t\t\"to\", \"\",\n\t\t\"value\", strconv.Itoa(int(amount)),\n\t)\n\n\treturn nil\n}\n\n// balanceOf returns the balance of the specified address.\nfunc (led PrivateLedger) balanceOf(address std.Address) uint64 {\n\tbalance, found := led.balances.Get(address.String())\n\tif !found {\n\t\treturn 0\n\t}\n\treturn balance.(uint64)\n}\n\n// allowance returns the allowance of the specified owner and spender.\nfunc (led PrivateLedger) allowance(owner, spender std.Address) uint64 {\n\tallowance, found := led.allowances.Get(allowanceKey(owner, spender))\n\tif !found {\n\t\treturn 0\n\t}\n\treturn allowance.(uint64)\n}\n\n// allowanceKey returns the key for the allowance of the specified owner and spender.\nfunc allowanceKey(owner, spender std.Address) string {\n\treturn owner.String() + \":\" + spender.String()\n}\n"},{"name":"token_test.gno","body":"package grc20\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestTestImpl(t *testing.T) {\n\tbank, _ := NewToken(\"Dummy\", \"DUMMY\", 4)\n\turequire.False(t, bank == nil, \"dummy should not be nil\")\n}\n\nfunc TestToken(t *testing.T) {\n\tvar (\n\t\talice = testutils.TestAddress(\"alice\")\n\t\tbob = testutils.TestAddress(\"bob\")\n\t\tcarl = testutils.TestAddress(\"carl\")\n\t)\n\n\tbank, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\tcheckBalances := func(aliceEB, bobEB, carlEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceEB, bobEB, carlEB)\n\t\taliceGB := bank.BalanceOf(alice)\n\t\tbobGB := bank.BalanceOf(bob)\n\t\tcarlGB := bank.BalanceOf(carl)\n\t\tgot := ufmt.Sprintf(\"alice=%d bob=%d carl=%d\", aliceGB, bobGB, carlGB)\n\t\tuassert.Equal(t, got, exp, \"invalid balances\")\n\t}\n\tcheckAllowances := func(abEB, acEB, baEB, bcEB, caEB, cbEB uint64) {\n\t\tt.Helper()\n\t\texp := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abEB, acEB, baEB, bcEB, caEB, cbEB)\n\t\tabGB := bank.Allowance(alice, bob)\n\t\tacGB := bank.Allowance(alice, carl)\n\t\tbaGB := bank.Allowance(bob, alice)\n\t\tbcGB := bank.Allowance(bob, carl)\n\t\tcaGB := bank.Allowance(carl, alice)\n\t\tcbGB := bank.Allowance(carl, bob)\n\t\tgot := ufmt.Sprintf(\"ab=%d ac=%d ba=%d bc=%d ca=%d cb=%s\", abGB, acGB, baGB, bcGB, caGB, cbGB)\n\t\tuassert.Equal(t, got, exp, \"invalid allowances\")\n\t}\n\n\tcheckBalances(0, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Mint(alice, 1000))\n\turequire.NoError(t, adm.Mint(alice, 100))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(0, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 99999999))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(99999999, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.Approve(alice, bob, 400))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.TransferFrom(alice, bob, carl, 100000000))\n\tcheckBalances(1100, 0, 0)\n\tcheckAllowances(400, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.TransferFrom(alice, bob, carl, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.Error(t, adm.SpendAllowance(alice, bob, 2000000))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(300, 0, 0, 0, 0, 0)\n\n\turequire.NoError(t, adm.SpendAllowance(alice, bob, 100))\n\tcheckBalances(1000, 0, 100)\n\tcheckAllowances(200, 0, 0, 0, 0, 0)\n}\n\nfunc TestOverflow(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tbob := testutils.TestAddress(\"bob\")\n\ttok, adm := NewToken(\"Dummy\", \"DUMMY\", 6)\n\n\turequire.NoError(t, adm.Mint(alice, 2\u003c\u003c62))\n\turequire.Equal(t, tok.BalanceOf(alice), uint64(2\u003c\u003c62))\n\turequire.Error(t, adm.Mint(bob, 2\u003c\u003c62))\n}\n"},{"name":"types.gno","body":"package grc20\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// Teller interface defines the methods that a GRC20 token must implement. It\n// extends the TokenMetadata interface to include methods for managing token\n// transfers, allowances, and querying balances.\n//\n// The Teller interface is designed to ensure that any token adhering to this\n// standard provides a consistent API for interacting with fungible tokens.\ntype Teller interface {\n\texts.TokenMetadata\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() uint64\n\n\t// Returns the amount of tokens owned by `account`.\n\tBalanceOf(account std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `to`.\n\t//\n\t// Returns an error if the operation failed.\n\tTransfer(to std.Address, amount uint64) error\n\n\t// Returns the remaining number of tokens that `spender` will be\n\t// allowed to spend on behalf of `owner` through {transferFrom}. This is\n\t// zero by default.\n\t//\n\t// This value changes when {approve} or {transferFrom} are called.\n\tAllowance(owner, spender std.Address) uint64\n\n\t// Sets `amount` as the allowance of `spender` over the caller's tokens.\n\t//\n\t// Returns an error if the operation failed.\n\t//\n\t// IMPORTANT: Beware that changing an allowance with this method brings\n\t// the risk that someone may use both the old and the new allowance by\n\t// unfortunate transaction ordering. One possible solution to mitigate\n\t// this race condition is to first reduce the spender's allowance to 0\n\t// and set the desired value afterwards:\n\t// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n\tApprove(spender std.Address, amount uint64) error\n\n\t// Moves `amount` tokens from `from` to `to` using the\n\t// allowance mechanism. `amount` is then deducted from the caller's\n\t// allowance.\n\t//\n\t// Returns an error if the operation failed.\n\tTransferFrom(from, to std.Address, amount uint64) error\n}\n\n// Token represents a fungible token with a name, symbol, and a certain number\n// of decimal places. It maintains a ledger for tracking balances and allowances\n// of addresses.\n//\n// The Token struct provides methods for retrieving token metadata, such as the\n// name, symbol, and decimals, as well as methods for interacting with the\n// ledger, including checking balances and allowances.\ntype Token struct {\n\t// Name of the token (e.g., \"Dummy Token\").\n\tname string\n\t// Symbol of the token (e.g., \"DUMMY\").\n\tsymbol string\n\t// Number of decimal places used for the token's precision.\n\tdecimals uint\n\t// Pointer to the PrivateLedger that manages balances and allowances.\n\tledger *PrivateLedger\n}\n\n// TokenGetter is a function type that returns a Token pointer. This type allows\n// bypassing a limitation where we cannot directly pass Token pointers between\n// realms. Instead, we pass this function which can then be called to get the\n// Token pointer. For more details on this limitation and workaround, see:\n// https://github.com/gnolang/gno/pull/3135\ntype TokenGetter func() *Token\n\n// PrivateLedger is a struct that holds the balances and allowances for the\n// token. It provides administrative functions for minting, burning,\n// transferring tokens, and managing allowances.\n//\n// The PrivateLedger is not safe to expose publicly, as it contains sensitive\n// information regarding token balances and allowances, and allows direct,\n// unrestricted access to all administrative functions.\ntype PrivateLedger struct {\n\t// Total supply of the token managed by this ledger.\n\ttotalSupply uint64\n\t// std.Address -\u003e uint64\n\tbalances avl.Tree\n\t// owner.(std.Address)+\":\"+spender.(std.Address)) -\u003e uint64\n\tallowances avl.Tree\n\t// Pointer to the associated Token struct\n\ttoken *Token\n}\n\nvar (\n\tErrInsufficientBalance = errors.New(\"insufficient balance\")\n\tErrInsufficientAllowance = errors.New(\"insufficient allowance\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrReadonly = errors.New(\"banker is readonly\")\n\tErrRestrictedTokenOwner = errors.New(\"restricted to bank owner\")\n\tErrOverflow = errors.New(\"Mint overflow\")\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n)\n\ntype fnTeller struct {\n\taccountFn func() std.Address\n\t*Token\n}\n\nvar _ Teller = (*fnTeller)(nil)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PL31YG/KjITQmscOXOgjUJMBdD29EucF0tiTy576IkYRlIck47ehXyn10p3mGs25Gj+O7VHno7WkAjIJgMhmCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"grc20reg","path":"gno.land/r/demo/grc20reg","files":[{"name":"grc20reg.gno","body":"package grc20reg\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar registry = avl.NewTree() // rlmPath[.slug] -\u003e TokenGetter (slug is optional)\n\nfunc Register(tokenGetter grc20.TokenGetter, slug string) {\n\trlmPath := std.PrevRealm().PkgPath()\n\tkey := fqname.Construct(rlmPath, slug)\n\tregistry.Set(key, tokenGetter)\n\tstd.Emit(\n\t\tregisterEvent,\n\t\t\"pkgpath\", rlmPath,\n\t\t\"slug\", slug,\n\t)\n}\n\nfunc Get(key string) grc20.TokenGetter {\n\ttokenGetter, ok := registry.Get(key)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn tokenGetter.(grc20.TokenGetter)\n}\n\nfunc MustGet(key string) grc20.TokenGetter {\n\ttokenGetter := Get(key)\n\tif tokenGetter == nil {\n\t\tpanic(\"unknown token: \" + key)\n\t}\n\treturn tokenGetter\n}\n\nfunc Render(path string) string {\n\tswitch {\n\tcase path == \"\": // home\n\t\t// TODO: add pagination\n\t\ts := \"\"\n\t\tcount := 0\n\t\tregistry.Iterate(\"\", \"\", func(key string, tokenI interface{}) bool {\n\t\t\tcount++\n\t\t\ttokenGetter := tokenI.(grc20.TokenGetter)\n\t\t\ttoken := tokenGetter()\n\t\t\trlmPath, slug := fqname.Parse(key)\n\t\t\trlmLink := fqname.RenderLink(rlmPath, slug)\n\t\t\tinfoLink := \"/r/demo/grc20reg:\" + key\n\t\t\ts += ufmt.Sprintf(\"- **%s** - %s - [info](%s)\\n\", token.GetName(), rlmLink, infoLink)\n\t\t\treturn false\n\t\t})\n\t\tif count == 0 {\n\t\t\treturn \"No registered token.\"\n\t\t}\n\t\treturn s\n\tdefault: // specific token\n\t\tkey := path\n\t\ttokenGetter := MustGet(key)\n\t\ttoken := tokenGetter()\n\t\trlmPath, slug := fqname.Parse(key)\n\t\trlmLink := fqname.RenderLink(rlmPath, slug)\n\t\ts := ufmt.Sprintf(\"# %s\\n\", token.GetName())\n\t\ts += ufmt.Sprintf(\"- symbol: **%s**\\n\", token.GetSymbol())\n\t\ts += ufmt.Sprintf(\"- realm: %s\\n\", rlmLink)\n\t\ts += ufmt.Sprintf(\"- decimals: %d\\n\", token.GetDecimals())\n\t\ts += ufmt.Sprintf(\"- total supply: %d\\n\", token.TotalSupply())\n\t\treturn s\n\t}\n}\n\nconst registerEvent = \"register\"\n"},{"name":"grc20reg_test.gno","body":"package grc20reg\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestRegistry(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/demo/foo\"))\n\trealmAddr := std.CurrentRealm().PkgPath()\n\ttoken, ledger := grc20.NewToken(\"TestToken\", \"TST\", 4)\n\tledger.Mint(std.CurrentRealm().Addr(), 1234567)\n\ttokenGetter := func() *grc20.Token { return token }\n\t// register\n\tRegister(tokenGetter, \"\")\n\tregTokenGetter := Get(realmAddr)\n\tregToken := regTokenGetter()\n\turequire.True(t, regToken != nil, \"expected to find a token\") // fixme: use urequire.NotNil\n\turequire.Equal(t, regToken.GetSymbol(), \"TST\")\n\n\texpected := `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo) - [info](/r/demo/grc20reg:gno.land/r/demo/foo)\n`\n\tgot := Render(\"\")\n\turequire.True(t, strings.Contains(got, expected))\n\t// 404\n\tinvalidToken := Get(\"0xdeadbeef\")\n\turequire.True(t, invalidToken == nil)\n\n\t// register with a slug\n\tRegister(tokenGetter, \"mySlug\")\n\tregTokenGetter = Get(realmAddr + \".mySlug\")\n\tregToken = regTokenGetter()\n\turequire.True(t, regToken != nil, \"expected to find a token\") // fixme: use urequire.NotNil\n\turequire.Equal(t, regToken.GetSymbol(), \"TST\")\n\n\t// override\n\tRegister(tokenGetter, \"\")\n\tregTokenGetter = Get(realmAddr + \"\")\n\tregToken = regTokenGetter()\n\turequire.True(t, regToken != nil, \"expected to find a token\") // fixme: use urequire.NotNil\n\turequire.Equal(t, regToken.GetSymbol(), \"TST\")\n\n\tgot = Render(\"\")\n\turequire.True(t, strings.Contains(got, `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo) - [info](/r/demo/grc20reg:gno.land/r/demo/foo)`))\n\turequire.True(t, strings.Contains(got, `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo).mySlug - [info](/r/demo/grc20reg:gno.land/r/demo/foo.mySlug)`))\n\n\texpected = `# TestToken\n- symbol: **TST**\n- realm: [gno.land/r/demo/foo](/r/demo/foo).mySlug\n- decimals: 4\n- total supply: 1234567\n`\n\tgot = Render(\"gno.land/r/demo/foo.mySlug\")\n\turequire.Equal(t, expected, got)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7sKCBnreUAj8VwvOP8bSxJ3rSkDKUEdxEdxeycxasyKy6lDivdZ7jhiV0vYrFAqWrFFS8Bu4Crt4V8rtz4swBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"grc721","path":"gno.land/p/demo/grc/grc721","files":[{"name":"basic_nft.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype basicNFT struct {\n\tname string\n\tsymbol string\n\towners avl.Tree // tokenId -\u003e OwnerAddress\n\tbalances avl.Tree // OwnerAddress -\u003e TokenCount\n\ttokenApprovals avl.Tree // TokenId -\u003e ApprovedAddress\n\ttokenURIs avl.Tree // TokenId -\u003e URIs\n\toperatorApprovals avl.Tree // \"OwnerAddress:OperatorAddress\" -\u003e bool\n}\n\n// Returns new basic NFT\nfunc NewBasicNFT(name string, symbol string) *basicNFT {\n\treturn \u0026basicNFT{\n\t\tname: name,\n\t\tsymbol: symbol,\n\n\t\towners: avl.Tree{},\n\t\tbalances: avl.Tree{},\n\t\ttokenApprovals: avl.Tree{},\n\t\ttokenURIs: avl.Tree{},\n\t\toperatorApprovals: avl.Tree{},\n\t}\n}\n\nfunc (s *basicNFT) Name() string { return s.name }\nfunc (s *basicNFT) Symbol() string { return s.symbol }\nfunc (s *basicNFT) TokenCount() uint64 { return uint64(s.owners.Size()) }\n\n// BalanceOf returns balance of input address\nfunc (s *basicNFT) BalanceOf(addr std.Address) (uint64, error) {\n\tif err := isValidAddress(addr); err != nil {\n\t\treturn 0, err\n\t}\n\n\tbalance, found := s.balances.Get(addr.String())\n\tif !found {\n\t\treturn 0, nil\n\t}\n\n\treturn balance.(uint64), nil\n}\n\n// OwnerOf returns owner of input token id\nfunc (s *basicNFT) OwnerOf(tid TokenID) (std.Address, error) {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn owner.(std.Address), nil\n}\n\n// TokenURI returns the URI of input token id\nfunc (s *basicNFT) TokenURI(tid TokenID) (string, error) {\n\turi, found := s.tokenURIs.Get(string(tid))\n\tif !found {\n\t\treturn \"\", ErrInvalidTokenId\n\t}\n\n\treturn uri.(string), nil\n}\n\nfunc (s *basicNFT) SetTokenURI(tid TokenID, tURI TokenURI) (bool, error) {\n\t// check for invalid TokenID\n\tif !s.exists(tid) {\n\t\treturn false, ErrInvalidTokenId\n\t}\n\n\t// check for the right owner\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn false, ErrCallerIsNotOwner\n\t}\n\ts.tokenURIs.Set(string(tid), string(tURI))\n\treturn true, nil\n}\n\n// IsApprovedForAll returns true if operator is approved for all by the owner.\n// Otherwise, returns false\nfunc (s *basicNFT) IsApprovedForAll(owner, operator std.Address) bool {\n\tkey := owner.String() + \":\" + operator.String()\n\t_, found := s.operatorApprovals.Get(key)\n\tif !found {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Approve approves the input address for particular token\nfunc (s *basicNFT) Approve(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner == to {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner \u0026\u0026 !s.IsApprovedForAll(owner, caller) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\ts.tokenApprovals.Set(string(tid), to.String())\n\tstd.Emit(\n\t\tApprovalEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\treturn nil\n}\n\n// GetApproved return the approved address for token\nfunc (s *basicNFT) GetApproved(tid TokenID) (std.Address, error) {\n\taddr, found := s.tokenApprovals.Get(string(tid))\n\tif !found {\n\t\treturn zeroAddress, ErrTokenIdNotHasApproved\n\t}\n\n\treturn std.Address(addr.(string)), nil\n}\n\n// SetApprovalForAll can approve the operator to operate on all tokens\nfunc (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error {\n\tif err := isValidAddress(operator); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tcaller := std.PrevRealm().Addr()\n\treturn s.setApprovalForAll(caller, operator, approved)\n}\n\n// Safely transfers `tokenId` token from `from` to `to`, checking that\n// contract recipients are aware of the GRC721 protocol to prevent\n// tokens from being forever locked.\nfunc (s *basicNFT) SafeTransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(from, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\n// Transfers `tokenId` token from `from` to `to`.\nfunc (s *basicNFT) TransferFrom(from, to std.Address, tid TokenID) error {\n\tcaller := std.PrevRealm().Addr()\n\tif !s.isApprovedOrOwner(caller, tid) {\n\t\treturn ErrCallerIsNotOwnerOrApproved\n\t}\n\n\terr := s.transfer(from, to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Mints `tokenId` and transfers it to `to`.\nfunc (s *basicNFT) Mint(to std.Address, tid TokenID) error {\n\treturn s.mint(to, tid)\n}\n\n// Mints `tokenId` and transfers it to `to`. Also checks that\n// contract recipients are using GRC721 protocol\nfunc (s *basicNFT) SafeMint(to std.Address, tid TokenID) error {\n\terr := s.mint(to, tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !s.checkOnGRC721Received(zeroAddress, to, tid) {\n\t\treturn ErrTransferToNonGRC721Receiver\n\t}\n\n\treturn nil\n}\n\nfunc (s *basicNFT) Burn(tid TokenID) error {\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\ts.beforeTokenTransfer(owner, zeroAddress, tid, 1)\n\n\ts.tokenApprovals.Remove(string(tid))\n\tbalance, err := s.BalanceOf(owner)\n\tif err != nil {\n\t\treturn err\n\t}\n\tbalance -= 1\n\ts.balances.Set(owner.String(), balance)\n\ts.owners.Remove(string(tid))\n\n\tstd.Emit(\n\t\tBurnEvent,\n\t\t\"from\", string(owner),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(owner, zeroAddress, tid, 1)\n\n\treturn nil\n}\n\n/* Helper methods */\n\n// Helper for SetApprovalForAll()\nfunc (s *basicNFT) setApprovalForAll(owner, operator std.Address, approved bool) error {\n\tif owner == operator {\n\t\treturn ErrApprovalToCurrentOwner\n\t}\n\n\tkey := owner.String() + \":\" + operator.String()\n\ts.operatorApprovals.Set(key, approved)\n\n\tstd.Emit(\n\t\tApprovalForAllEvent,\n\t\t\"owner\", string(owner),\n\t\t\"to\", string(operator),\n\t\t\"approved\", strconv.FormatBool(approved),\n\t)\n\n\treturn nil\n}\n\n// Helper for TransferFrom() and SafeTransferFrom()\nfunc (s *basicNFT) transfer(from, to std.Address, tid TokenID) error {\n\tif err := isValidAddress(from); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\tif err := isValidAddress(to); err != nil {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tif from == to {\n\t\treturn ErrCannotTransferToSelf\n\t}\n\n\towner, err := s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.beforeTokenTransfer(from, to, tid, 1)\n\n\t// Check that tokenId was not transferred by `beforeTokenTransfer`\n\towner, err = s.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif owner != from {\n\t\treturn ErrTransferFromIncorrectOwner\n\t}\n\n\ts.tokenApprovals.Remove(string(tid))\n\tfromBalance, err := s.BalanceOf(from)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfromBalance -= 1\n\ttoBalance += 1\n\ts.balances.Set(from.String(), fromBalance)\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(from),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(from, to, tid, 1)\n\n\treturn nil\n}\n\n// Helper for Mint() and SafeMint()\nfunc (s *basicNFT) mint(to std.Address, tid TokenID) error {\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check that tokenId was not minted by `beforeTokenTransfer`\n\tif s.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ttoBalance, err := s.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.balances.Set(to.String(), toBalance)\n\ts.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tMintEvent,\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n\nfunc (s *basicNFT) isApprovedOrOwner(addr std.Address, tid TokenID) bool {\n\towner, found := s.owners.Get(string(tid))\n\tif !found {\n\t\treturn false\n\t}\n\n\tif addr == owner.(std.Address) || s.IsApprovedForAll(owner.(std.Address), addr) {\n\t\treturn true\n\t}\n\n\t_, err := s.GetApproved(tid)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Checks if token id already exists\nfunc (s *basicNFT) exists(tid TokenID) bool {\n\t_, found := s.owners.Get(string(tid))\n\treturn found\n}\n\nfunc (s *basicNFT) beforeTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) afterTokenTransfer(from, to std.Address, firstTokenId TokenID, batchSize uint64) {\n\t// TODO: Implementation\n}\n\nfunc (s *basicNFT) checkOnGRC721Received(from, to std.Address, tid TokenID) bool {\n\t// TODO: Implementation\n\treturn true\n}\n\nfunc (s *basicNFT) RenderHome() (str string) {\n\tstr += ufmt.Sprintf(\"# %s ($%s)\\n\\n\", s.name, s.symbol)\n\tstr += ufmt.Sprintf(\"* **Total supply**: %d\\n\", s.TokenCount())\n\tstr += ufmt.Sprintf(\"* **Known accounts**: %d\\n\", s.balances.Size())\n\n\treturn\n}\n"},{"name":"basic_nft_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tdummyNFTName = \"DummyNFT\"\n\tdummyNFTSymbol = \"DNFT\"\n)\n\nfunc TestNewBasicNFT(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n}\n\nfunc TestName(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tname := dummy.Name()\n\tuassert.Equal(t, dummyNFTName, name)\n}\n\nfunc TestSymbol(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tsymbol := dummy.Symbol()\n\tuassert.Equal(t, dummyNFTSymbol, symbol)\n}\n\nfunc TestTokenCount(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcount := dummy.TokenCount()\n\tuassert.Equal(t, uint64(0), count)\n\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"1\"))\n\tdummy.mint(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\", TokenID(\"2\"))\n\n\tcount = dummy.TokenCount()\n\tuassert.Equal(t, uint64(2), count)\n}\n\nfunc TestBalanceOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tbalanceAddr1, err := dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(0), balanceAddr1)\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr1, TokenID(\"2\"))\n\tdummy.mint(addr2, TokenID(\"3\"))\n\n\tbalanceAddr1, err = dummy.BalanceOf(addr1)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tbalanceAddr2, err := dummy.BalanceOf(addr2)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tuassert.Equal(t, uint64(2), balanceAddr1)\n\tuassert.Equal(t, uint64(1), balanceAddr2)\n}\n\nfunc TestOwnerOf(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\towner, err := dummy.OwnerOf(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\tdummy.mint(addr2, TokenID(\"2\"))\n\n\t// Checking for token id \"1\"\n\towner, err = dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n\n\t// Checking for token id \"2\"\n\towner, err = dummy.OwnerOf(TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr2.String(), owner.String())\n}\n\nfunc TestIsApprovedForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(addr1, addr2)\n\tuassert.False(t, isApprovedForAll)\n}\n\nfunc TestSetApprovalForAll(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tisApprovedForAll := dummy.IsApprovedForAll(caller, addr)\n\tuassert.False(t, isApprovedForAll)\n\n\terr := dummy.SetApprovalForAll(addr, true)\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tisApprovedForAll = dummy.IsApprovedForAll(caller, addr)\n\tuassert.True(t, isApprovedForAll)\n}\n\nfunc TestGetApproved(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"invalid\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestApprove(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\n\t_, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n\n\terr = dummy.Approve(addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\tapprovedAddr, err := dummy.GetApproved(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), approvedAddr.String())\n}\n\nfunc TestTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.TransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestSafeTransferFrom(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\tcaller := std.PrevRealm().Addr()\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(caller, TokenID(\"1\"))\n\tdummy.mint(caller, TokenID(\"2\"))\n\n\terr := dummy.SafeTransferFrom(caller, addr, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check balance of caller after transfer\n\tbalanceOfCaller, err := dummy.BalanceOf(caller)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfCaller)\n\n\t// Check balance of addr after transfer\n\tbalanceOfAddr, err := dummy.BalanceOf(addr)\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, uint64(1), balanceOfAddr)\n\n\t// Check Owner of transferred Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr.String(), owner.String())\n}\n\nfunc TestMint(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\n\terr := dummy.Mint(addr1, TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr1, TokenID(\"2\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\terr = dummy.Mint(addr2, TokenID(\"3\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Try minting duplicate token id\n\terr = dummy.Mint(addr2, TokenID(\"1\"))\n\tuassert.Error(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\tuassert.Equal(t, addr1.String(), owner.String())\n}\n\nfunc TestBurn(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\n\tdummy.mint(addr, TokenID(\"1\"))\n\tdummy.mint(addr, TokenID(\"2\"))\n\n\terr := dummy.Burn(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"should not result in error\")\n\n\t// Check Owner of Token id\n\towner, err := dummy.OwnerOf(TokenID(\"1\"))\n\tuassert.Error(t, err, \"should result in error\")\n}\n\nfunc TestSetTokenURI(t *testing.T) {\n\tdummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := std.Address(\"g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm\")\n\taddr2 := std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\")\n\ttokenURI := \"http://example.com/token\"\n\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\t_, derr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI))\n\tuassert.NoError(t, derr, \"should not result in error\")\n\n\t// Test case: Invalid token ID\n\t_, err := dummy.SetTokenURI(TokenID(\"3\"), TokenURI(tokenURI))\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(std.Address(addr2)) // addr2\n\n\t_, cerr := dummy.SetTokenURI(TokenID(\"1\"), TokenURI(tokenURI)) // addr2 trying to set URI for token 1\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Retrieving TokenURI\n\tstd.TestSetOrigCaller(std.Address(addr1)) // addr1\n\n\tdummyTokenURI, err := dummy.TokenURI(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"TokenURI error\")\n\tuassert.Equal(t, string(tokenURI), string(dummyTokenURI))\n}\n"},{"name":"errors.gno","body":"package grc721\n\nimport \"errors\"\n\nvar (\n\tErrInvalidTokenId = errors.New(\"invalid token id\")\n\tErrInvalidAddress = errors.New(\"invalid address\")\n\tErrTokenIdNotHasApproved = errors.New(\"token id not approved for anyone\")\n\tErrApprovalToCurrentOwner = errors.New(\"approval to current owner\")\n\tErrCallerIsNotOwner = errors.New(\"caller is not token owner\")\n\tErrCallerNotApprovedForAll = errors.New(\"caller is not approved for all\")\n\tErrCannotTransferToSelf = errors.New(\"cannot send transfer to self\")\n\tErrTransferFromIncorrectOwner = errors.New(\"transfer from incorrect owner\")\n\tErrTransferToNonGRC721Receiver = errors.New(\"transfer to non GRC721Receiver implementer\")\n\tErrCallerIsNotOwnerOrApproved = errors.New(\"caller is not token owner or approved\")\n\tErrTokenIdAlreadyExists = errors.New(\"token id already exists\")\n\n\t// ERC721Royalty\n\tErrInvalidRoyaltyPercentage = errors.New(\"invalid royalty percentage\")\n\tErrInvalidRoyaltyPaymentAddress = errors.New(\"invalid royalty paymentAddress\")\n\tErrCannotCalculateRoyaltyAmount = errors.New(\"cannot calculate royalty amount\")\n)\n"},{"name":"grc721_metadata.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// metadataNFT represents an NFT with metadata extensions.\ntype metadataNFT struct {\n\t*basicNFT // Embedded basicNFT struct for basic NFT functionality\n\textensions *avl.Tree // AVL tree for storing metadata extensions\n}\n\n// Ensure that metadataNFT implements the IGRC721MetadataOnchain interface.\nvar _ IGRC721MetadataOnchain = (*metadataNFT)(nil)\n\n// NewNFTWithMetadata creates a new basic NFT with metadata extensions.\nfunc NewNFTWithMetadata(name string, symbol string) *metadataNFT {\n\t// Create a new basic NFT\n\tnft := NewBasicNFT(name, symbol)\n\n\t// Return a metadataNFT with basicNFT embedded and an empty AVL tree for extensions\n\treturn \u0026metadataNFT{\n\t\tbasicNFT: nft,\n\t\textensions: avl.NewTree(),\n\t}\n}\n\n// SetTokenMetadata sets metadata for a given token ID.\nfunc (s *metadataNFT) SetTokenMetadata(tid TokenID, metadata Metadata) error {\n\t// Check if the caller is the owner of the token\n\towner, err := s.basicNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set the metadata for the token ID in the extensions AVL tree\n\ts.extensions.Set(string(tid), metadata)\n\treturn nil\n}\n\n// TokenMetadata retrieves metadata for a given token ID.\nfunc (s *metadataNFT) TokenMetadata(tid TokenID) (Metadata, error) {\n\t// Retrieve metadata from the extensions AVL tree\n\tmetadata, found := s.extensions.Get(string(tid))\n\tif !found {\n\t\treturn Metadata{}, ErrInvalidTokenId\n\t}\n\n\treturn metadata.(Metadata), nil\n}\n\n// mint mints a new token and assigns it to the specified address.\nfunc (s *metadataNFT) mint(to std.Address, tid TokenID) error {\n\t// Check if the address is valid\n\tif err := isValidAddress(to); err != nil {\n\t\treturn err\n\t}\n\n\t// Check if the token ID already exists\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\ts.basicNFT.beforeTokenTransfer(zeroAddress, to, tid, 1)\n\n\t// Check if the token ID was minted by beforeTokenTransfer\n\tif s.basicNFT.exists(tid) {\n\t\treturn ErrTokenIdAlreadyExists\n\t}\n\n\t// Increment balance of the recipient address\n\ttoBalance, err := s.basicNFT.BalanceOf(to)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttoBalance += 1\n\ts.basicNFT.balances.Set(to.String(), toBalance)\n\n\t// Set owner of the token ID to the recipient address\n\ts.basicNFT.owners.Set(string(tid), to)\n\n\tstd.Emit(\n\t\tTransferEvent,\n\t\t\"from\", string(zeroAddress),\n\t\t\"to\", string(to),\n\t\t\"tokenId\", string(tid),\n\t)\n\n\ts.basicNFT.afterTokenTransfer(zeroAddress, to, tid, 1)\n\n\treturn nil\n}\n"},{"name":"grc721_metadata_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetMetadata(t *testing.T) {\n\t// Create a new dummy NFT with metadata\n\tdummy := NewNFTWithMetadata(dummyNFTName, dummyNFTSymbol)\n\tif dummy == nil {\n\t\tt.Errorf(\"should not be nil\")\n\t}\n\n\t// Define addresses for testing purposes\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\t// Define metadata attributes\n\tname := \"test\"\n\tdescription := \"test\"\n\timage := \"test\"\n\timageData := \"test\"\n\texternalURL := \"test\"\n\tattributes := []Trait{}\n\tbackgroundColor := \"test\"\n\tanimationURL := \"test\"\n\tyoutubeURL := \"test\"\n\n\t// Set the original caller to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Mint a new token for addr1\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\t// Set metadata for token 1\n\tderr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if there was an error setting metadata\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenMetadata(TokenID(\"3\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, err, ErrInvalidTokenId)\n\n\t// Set the original caller to addr2\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\t// Try to set metadata for token 1 from addr2 (should fail)\n\tcerr := dummy.SetTokenMetadata(TokenID(\"1\"), Metadata{\n\t\tName: name,\n\t\tDescription: description,\n\t\tImage: image,\n\t\tImageData: imageData,\n\t\tExternalURL: externalURL,\n\t\tAttributes: attributes,\n\t\tBackgroundColor: backgroundColor,\n\t\tAnimationURL: animationURL,\n\t\tYoutubeURL: youtubeURL,\n\t})\n\n\t// Check if the error returned matches the expected error\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Set the original caller back to addr1\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\t// Retrieve metadata for token 1\n\tdummyMetadata, err := dummy.TokenMetadata(TokenID(\"1\"))\n\tuassert.NoError(t, err, \"Metadata error\")\n\n\t// Check if metadata attributes match expected values\n\tuassert.Equal(t, image, dummyMetadata.Image)\n\tuassert.Equal(t, imageData, dummyMetadata.ImageData)\n\tuassert.Equal(t, externalURL, dummyMetadata.ExternalURL)\n\tuassert.Equal(t, description, dummyMetadata.Description)\n\tuassert.Equal(t, name, dummyMetadata.Name)\n\tuassert.Equal(t, len(attributes), len(dummyMetadata.Attributes))\n\tuassert.Equal(t, backgroundColor, dummyMetadata.BackgroundColor)\n\tuassert.Equal(t, animationURL, dummyMetadata.AnimationURL)\n\tuassert.Equal(t, youtubeURL, dummyMetadata.YoutubeURL)\n}\n"},{"name":"grc721_royalty.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// royaltyNFT represents a non-fungible token (NFT) with royalty functionality.\ntype royaltyNFT struct {\n\t*metadataNFT // Embedding metadataNFT for NFT functionality\n\ttokenRoyaltyInfo *avl.Tree // AVL tree to store royalty information for each token\n\tmaxRoyaltyPercentage uint64 // maxRoyaltyPercentage represents the maximum royalty percentage that can be charged every sale\n}\n\n// Ensure that royaltyNFT implements the IGRC2981 interface.\nvar _ IGRC2981 = (*royaltyNFT)(nil)\n\n// NewNFTWithRoyalty creates a new royalty NFT with the specified name, symbol, and royalty calculator.\nfunc NewNFTWithRoyalty(name string, symbol string) *royaltyNFT {\n\t// Create a new NFT with metadata\n\tnft := NewNFTWithMetadata(name, symbol)\n\n\treturn \u0026royaltyNFT{\n\t\tmetadataNFT: nft,\n\t\ttokenRoyaltyInfo: avl.NewTree(),\n\t\tmaxRoyaltyPercentage: 100,\n\t}\n}\n\n// SetTokenRoyalty sets the royalty information for a specific token ID.\nfunc (r *royaltyNFT) SetTokenRoyalty(tid TokenID, royaltyInfo RoyaltyInfo) error {\n\t// Validate the payment address\n\tif err := isValidAddress(royaltyInfo.PaymentAddress); err != nil {\n\t\treturn ErrInvalidRoyaltyPaymentAddress\n\t}\n\n\t// Check if royalty percentage exceeds maxRoyaltyPercentage\n\tif royaltyInfo.Percentage \u003e r.maxRoyaltyPercentage {\n\t\treturn ErrInvalidRoyaltyPercentage\n\t}\n\n\t// Check if the caller is the owner of the token\n\towner, err := r.metadataNFT.OwnerOf(tid)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcaller := std.PrevRealm().Addr()\n\tif caller != owner {\n\t\treturn ErrCallerIsNotOwner\n\t}\n\n\t// Set royalty information for the token\n\tr.tokenRoyaltyInfo.Set(string(tid), royaltyInfo)\n\n\treturn nil\n}\n\n// RoyaltyInfo returns the royalty information for the given token ID and sale price.\nfunc (r *royaltyNFT) RoyaltyInfo(tid TokenID, salePrice uint64) (std.Address, uint64, error) {\n\t// Retrieve royalty information for the token\n\tval, found := r.tokenRoyaltyInfo.Get(string(tid))\n\tif !found {\n\t\treturn \"\", 0, ErrInvalidTokenId\n\t}\n\n\troyaltyInfo := val.(RoyaltyInfo)\n\n\t// Calculate royalty amount\n\troyaltyAmount, _ := r.calculateRoyaltyAmount(salePrice, royaltyInfo.Percentage)\n\n\treturn royaltyInfo.PaymentAddress, royaltyAmount, nil\n}\n\nfunc (r *royaltyNFT) calculateRoyaltyAmount(salePrice, percentage uint64) (uint64, error) {\n\troyaltyAmount := (salePrice * percentage) / 100\n\treturn royaltyAmount, nil\n}\n"},{"name":"grc721_royalty_test.gno","body":"package grc721\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestSetTokenRoyalty(t *testing.T) {\n\tdummy := NewNFTWithRoyalty(dummyNFTName, dummyNFTSymbol)\n\tuassert.True(t, dummy != nil, \"should not be nil\")\n\n\taddr1 := testutils.TestAddress(\"alice\")\n\taddr2 := testutils.TestAddress(\"bob\")\n\n\tpaymentAddress := testutils.TestAddress(\"john\")\n\tpercentage := uint64(10) // 10%\n\n\tsalePrice := uint64(1000)\n\texpectRoyaltyAmount := uint64(100)\n\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummy.mint(addr1, TokenID(\"1\"))\n\n\tderr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.NoError(t, derr, \"Should not result in error\")\n\n\t// Test case: Invalid token ID\n\terr := dummy.SetTokenRoyalty(TokenID(\"3\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, derr, ErrInvalidTokenId)\n\n\tstd.TestSetOrigCaller(addr2) // addr2\n\n\tcerr := dummy.SetTokenRoyalty(TokenID(\"1\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, cerr, ErrCallerIsNotOwner)\n\n\t// Test case: Invalid payment address\n\taerr := dummy.SetTokenRoyalty(TokenID(\"4\"), RoyaltyInfo{\n\t\tPaymentAddress: std.Address(\"###\"), // invalid address\n\t\tPercentage: percentage,\n\t})\n\tuassert.ErrorIs(t, aerr, ErrInvalidRoyaltyPaymentAddress)\n\n\t// Test case: Invalid percentage\n\tperr := dummy.SetTokenRoyalty(TokenID(\"5\"), RoyaltyInfo{\n\t\tPaymentAddress: paymentAddress,\n\t\tPercentage: uint64(200), // over maxRoyaltyPercentage\n\t})\n\tuassert.ErrorIs(t, perr, ErrInvalidRoyaltyPercentage)\n\n\t// Test case: Retrieving Royalty Info\n\tstd.TestSetOrigCaller(addr1) // addr1\n\n\tdummyPaymentAddress, dummyRoyaltyAmount, rerr := dummy.RoyaltyInfo(TokenID(\"1\"), salePrice)\n\tuassert.NoError(t, rerr, \"RoyaltyInfo error\")\n\tuassert.Equal(t, paymentAddress, dummyPaymentAddress)\n\tuassert.Equal(t, expectRoyaltyAmount, dummyRoyaltyAmount)\n}\n"},{"name":"igrc721.gno","body":"package grc721\n\nimport \"std\"\n\ntype IGRC721 interface {\n\tBalanceOf(owner std.Address) (uint64, error)\n\tOwnerOf(tid TokenID) (std.Address, error)\n\tSetTokenURI(tid TokenID, tURI TokenURI) (bool, error)\n\tSafeTransferFrom(from, to std.Address, tid TokenID) error\n\tTransferFrom(from, to std.Address, tid TokenID) error\n\tApprove(approved std.Address, tid TokenID) error\n\tSetApprovalForAll(operator std.Address, approved bool) error\n\tGetApproved(tid TokenID) (std.Address, error)\n\tIsApprovedForAll(owner, operator std.Address) bool\n}\n\ntype (\n\tTokenID string\n\tTokenURI string\n)\n\nconst (\n\tMintEvent = \"Mint\"\n\tBurnEvent = \"Burn\"\n\tTransferEvent = \"Transfer\"\n\tApprovalEvent = \"Approval\"\n\tApprovalForAllEvent = \"ApprovalForAll\"\n)\n"},{"name":"igrc721_metadata.gno","body":"package grc721\n\n// IGRC721CollectionMetadata describes basic information about an NFT collection.\ntype IGRC721CollectionMetadata interface {\n\tName() string // Name returns the name of the collection.\n\tSymbol() string // Symbol returns the symbol of the collection.\n}\n\n// IGRC721Metadata follows the Ethereum standard\ntype IGRC721Metadata interface {\n\tIGRC721CollectionMetadata\n\tTokenURI(tid TokenID) (string, error) // TokenURI returns the URI of a specific token.\n}\n\n// IGRC721Metadata follows the OpenSea metadata standard\ntype IGRC721MetadataOnchain interface {\n\tIGRC721CollectionMetadata\n\tTokenMetadata(tid TokenID) (Metadata, error)\n}\n\ntype Trait struct {\n\tDisplayType string\n\tTraitType string\n\tValue string\n}\n\n// see: https://docs.opensea.io/docs/metadata-standards\ntype Metadata struct {\n\tImage string // URL to the image of the item. Can be any type of image (including SVGs, which will be cached into PNGs by OpenSea), IPFS or Arweave URLs or paths. We recommend using a minimum 3000 x 3000 image.\n\tImageData string // Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.\n\tExternalURL string // URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.\n\tDescription string // Human-readable description of the item. Markdown is supported.\n\tName string // Name of the item.\n\tAttributes []Trait // Attributes for the item, which will show up on the OpenSea page for the item.\n\tBackgroundColor string // Background color of the item on OpenSea. Must be a six-character hexadecimal without a pre-pended #\n\tAnimationURL string // URL to a multimedia attachment for the item. Supported file extensions: GLTF, GLB, WEBM, MP4, M4V, OGV, OGG, MP3, WAV, OGA, HTML (for rich experiences and interactive NFTs using JavaScript canvas, WebGL, etc.). Scripts and relative paths within the HTML page are now supported. Access to browser extensions is not supported.\n\tYoutubeURL string // URL to a YouTube video (only used if animation_url is not provided).\n}\n"},{"name":"igrc721_royalty.gno","body":"package grc721\n\nimport \"std\"\n\n// IGRC2981 follows the Ethereum standard\ntype IGRC2981 interface {\n\t// RoyaltyInfo retrieves royalty information for a tokenID and salePrice.\n\t// It returns the payment address, royalty amount, and an error if any.\n\tRoyaltyInfo(tokenID TokenID, salePrice uint64) (std.Address, uint64, error)\n}\n\n// RoyaltyInfo represents royalty information for a token.\ntype RoyaltyInfo struct {\n\tPaymentAddress std.Address // PaymentAddress is the address where royalty payment should be sent.\n\tPercentage uint64 // Percentage is the royalty percentage. It indicates the percentage of royalty to be paid for each sale. For example : Percentage = 10 =\u003e 10%\n}\n"},{"name":"util.gno","body":"package grc721\n\nimport (\n\t\"std\"\n)\n\nvar zeroAddress = std.Address(\"\")\n\nfunc isValidAddress(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\treturn nil\n}\n\nfunc emit(event interface{}) {\n\t// TODO: setup a pubsub system here?\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GptfNenmgHbj980eJiVsUarjN5NJxQuQ4DblXbLiGBm1OOdSz5lzN9JRGx+k8zSM5JGZTeMxUKRFFbnzN6d2Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"grc777","path":"gno.land/p/demo/grc/grc777","files":[{"name":"dummy_test.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\ntype dummyImpl struct{}\n\n// FIXME: this should fail.\nvar _ IGRC777 = (*dummyImpl)(nil)\n\nfunc TestInterface(t *testing.T) {\n\tvar dummy IGRC777 = \u0026dummyImpl{}\n}\n\nfunc (impl *dummyImpl) GetName() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetSymbol() string { panic(\"not implemented\") }\nfunc (impl *dummyImpl) GetDecimals() uint { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Granularity() (granularity uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) TotalSupply() (supply uint64) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) BalanceOf(address std.Address) uint64 { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Burn(amount uint64, data []byte) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) AuthorizeOperator(operator std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) RevokeOperator(operators std.Address) { panic(\"not implemented\") }\nfunc (impl *dummyImpl) DefaultOperators() []std.Address { panic(\"not implemented\") }\nfunc (impl *dummyImpl) Send(recipient std.Address, amount uint64, data []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) IsOperatorFor(operator, tokenHolder std.Address) bool {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n\nfunc (impl *dummyImpl) OperatorBurn(account std.Address, amount uint64, data, operatorData []byte) {\n\tpanic(\"not implemented\")\n}\n"},{"name":"igrc777.gno","body":"package grc777\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/grc/exts\"\n)\n\n// TODO: use big.Int or a custom uint64 instead of uint64\n\ntype IGRC777 interface {\n\texts.TokenMetadata\n\n\t// Returns the smallest part of the token that is not divisible. This\n\t// means all token operations (creation, movement and destruction) must\n\t// have amounts that are a multiple of this number.\n\t//\n\t// For most token contracts, this value will equal 1.\n\tGranularity() (granularity uint64)\n\n\t// Returns the amount of tokens in existence.\n\tTotalSupply() (supply uint64)\n\n\t// Returns the amount of tokens owned by an account (`owner`).\n\tBalanceOf(address std.Address) uint64\n\n\t// Moves `amount` tokens from the caller's account to `recipient`.\n\t//\n\t// If send or receive hooks are registered for the caller and `recipient`,\n\t// the corresponding functions will be called with `data` and empty\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tSend(recipient std.Address, amount uint64, data []byte)\n\n\t// Destroys `amount` tokens from the caller's account, reducing the\n\t// total supply.\n\t//\n\t// If a send hook is registered for the caller, the corresponding function\n\t// will be called with `data` and empty `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - the caller must have at least `amount` tokens.\n\tBurn(amount uint64, data []byte)\n\n\t// Returns true if an account is an operator of `tokenHolder`.\n\t// Operators can send and burn tokens on behalf of their owners. All\n\t// accounts are their own operator.\n\t//\n\t// See {operatorSend} and {operatorBurn}.\n\tIsOperatorFor(operator, tokenHolder std.Address) bool\n\n\t// Make an account an operator of the caller.\n\t//\n\t// See {isOperatorFor}.\n\t//\n\t// Emits an {AuthorizedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tAuthorizeOperator(operator std.Address)\n\n\t// Revoke an account's operator status for the caller.\n\t//\n\t// See {isOperatorFor} and {defaultOperators}.\n\t//\n\t// Emits a {RevokedOperator} event.\n\t//\n\t// Requirements\n\t//\n\t// - `operator` cannot be calling address.\n\tRevokeOperator(operators std.Address)\n\n\t// Returns the list of default operators. These accounts are operators\n\t// for all token holders, even if {authorizeOperator} was never called on\n\t// them.\n\t//\n\t// This list is immutable, but individual holders may revoke these via\n\t// {revokeOperator}, in which case {isOperatorFor} will return false.\n\tDefaultOperators() []std.Address\n\n\t// Moves `amount` tokens from `sender` to `recipient`. The caller must\n\t// be an operator of `sender`.\n\t//\n\t// If send or receive hooks are registered for `sender` and `recipient`,\n\t// the corresponding functions will be called with `data` and\n\t// `operatorData`. See {IERC777Sender} and {IERC777Recipient}.\n\t//\n\t// Emits a {Sent} event.\n\t//\n\t// Requirements\n\t//\n\t// - `sender` cannot be the zero address.\n\t// - `sender` must have at least `amount` tokens.\n\t// - the caller must be an operator for `sender`.\n\t// - `recipient` cannot be the zero address.\n\t// - if `recipient` is a contract, it must implement the {IERC777Recipient}\n\t// interface.\n\tOperatorSend(sender, recipient std.Address, amount uint64, data, operatorData []byte)\n\n\t// Destroys `amount` tokens from `account`, reducing the total supply.\n\t// The caller must be an operator of `account`.\n\t//\n\t// If a send hook is registered for `account`, the corresponding function\n\t// will be called with `data` and `operatorData`. See {IERC777Sender}.\n\t//\n\t// Emits a {Burned} event.\n\t//\n\t// Requirements\n\t//\n\t// - `account` cannot be the zero address.\n\t// - `account` must have at least `amount` tokens.\n\t// - the caller must be an operator for `account`.\n\tOperatorBurn(account std.Address, amount uint64, data, operatorData []byte)\n}\n\n// Emitted when `amount` tokens are created by `operator` and assigned to `to`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype MintedEvent struct {\n\tOperator std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` destroys `amount` tokens from `account`.\n//\n// Note that some additional user `data` and `operatorData` can be logged in the event.\ntype BurnedEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n\n// Emitted when `operator` is made operator for `tokenHolder`\ntype AuthorizedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\n// Emitted when `operator` is revoked its operator status for `tokenHolder`.\ntype RevokedOperatorEvent struct {\n\tOperator std.Address\n\tTokenHolder std.Address\n}\n\ntype SentEvent struct {\n\tOperator std.Address\n\tFrom std.Address\n\tTo std.Address\n\tAmount uint64\n\tData []byte\n\tOperatorData []byte\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wft/J1PwNXk1UiO+W2zKB7wVoQNYjUpGWGc1vFRMHpRpICnqEptMb7s/jKCyjcLRqB9jE6ePtqcJLTId5aCxCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"groups","path":"gno.land/p/demo/groups","files":[{"name":"vote_set.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/rat\"\n)\n\n//----------------------------------------\n// VoteSet\n\ntype VoteSet interface {\n\t// number of present votes in set.\n\tSize() int\n\t// add or update vote for voter.\n\tSetVote(voter std.Address, value string) error\n\t// count the number of votes for value.\n\tCountVotes(value string) int\n}\n\n//----------------------------------------\n// VoteList\n\ntype Vote struct {\n\tVoter std.Address\n\tValue string\n}\n\ntype VoteList []Vote\n\nfunc NewVoteList() *VoteList {\n\treturn \u0026VoteList{}\n}\n\nfunc (vlist *VoteList) Size() int {\n\treturn len(*vlist)\n}\n\nfunc (vlist *VoteList) SetVote(voter std.Address, value string) error {\n\t// TODO optimize with binary algorithm\n\tfor i, vote := range *vlist {\n\t\tif vote.Voter == voter {\n\t\t\t// update vote\n\t\t\t(*vlist)[i] = Vote{\n\t\t\t\tVoter: voter,\n\t\t\t\tValue: value,\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\t*vlist = append(*vlist, Vote{\n\t\tVoter: voter,\n\t\tValue: value,\n\t})\n\treturn nil\n}\n\nfunc (vlist *VoteList) CountVotes(target string) int {\n\t// TODO optimize with binary algorithm\n\tvar count int\n\tfor _, vote := range *vlist {\n\t\tif vote.Value == target {\n\t\t\tcount++\n\t\t}\n\t}\n\treturn count\n}\n\n//----------------------------------------\n// Committee\n\ntype Committee struct {\n\tQuorum rat.Rat\n\tThreshold rat.Rat\n\tAddresses std.AddressSet\n}\n\n//----------------------------------------\n// VoteSession\n// NOTE: this seems a bit too formal and\n// complicated vs what might be possible;\n// something simpler, more informal.\n\ntype SessionStatus int\n\nconst (\n\tSessionNew SessionStatus = iota\n\tSessionStarted\n\tSessionCompleted\n\tSessionCanceled\n)\n\ntype VoteSession struct {\n\tName string\n\tCreator std.Address\n\tBody string\n\tStart time.Time\n\tDeadline time.Time\n\tStatus SessionStatus\n\tCommittee *Committee\n\tVotes VoteSet\n\tChoices []string\n\tResult string\n}\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/p/demo/groups\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nvar vset groups.VoteSet\n\nfunc init() {\n\taddr1 := testutils.TestAddress(\"test1\")\n\taddr2 := testutils.TestAddress(\"test2\")\n\tvset = groups.NewVoteList()\n\tvset.SetVote(addr1, \"yes\")\n\tvset.SetVote(addr2, \"yes\")\n}\n\nfunc main() {\n\tprintln(vset.Size())\n\tprintln(\"yes:\", vset.CountVotes(\"yes\"))\n\tprintln(\"no:\", vset.CountVotes(\"no\"))\n}\n\n// Output:\n// 2\n// yes: 2\n// no: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uGuoTL00lzprB93DmomNGcm7b32lsK+Y+AHcb+550JmgMWartKp5Xsz+9wmme7Rjj4dfwzVJM/lY7mcCEM76Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"groups","path":"gno.land/r/demo/groups","files":[{"name":"README.md","body":"### - test package\n\n ./build/gno test examples/gno.land/r/demo/groups/\n\n### - add pkg\n\n ./build/gnokey maketx addpkg -pkgdir \"examples/gno.land/r/demo/groups\" -deposit 100000000ugnot -gas-fee 1000000ugnot -gas-wanted 10000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - create group\n\n ./build/gnokey maketx call -func \"CreateGroup\" -args \"dao_trinity_ngo\" -gas-fee \"1000000ugnot\" -gas-wanted 4000000 -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1 \n\n### - add member\n\n ./build/gnokey maketx call -func \"AddMember\" -args \"1\" -args \"g1hd3gwzevxlqmd3jsf64mpfczag8a8e5j2wdn3c\" -args 12 -args \"i am new user\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete member\n\n ./build/gnokey maketx call -func \"DeleteMember\" -args \"1\" -args \"0\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n### - delete group\n\n ./build/gnokey maketx call -func \"DeleteGroup\" -args \"1\" -gas-fee \"1000000ugnot\" -gas-wanted \"4000000\" -broadcast -chainid dev -remote 0.0.0.0:26657 -pkgpath \"gno.land/r/demo/groups\" test1\n\n"},{"name":"group.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype GroupID uint64\n\nfunc (gid GroupID) String() string {\n\treturn strconv.Itoa(int(gid))\n}\n\ntype Group struct {\n\tid GroupID\n\turl string\n\tname string\n\tlastMemberID MemberID\n\tmembers avl.Tree\n\tcreator std.Address\n\tcreatedAt time.Time\n}\n\nfunc newGroup(url string, name string, creator std.Address) *Group {\n\tif !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name)\n\t}\n\tif gGroupsByName.Has(name) {\n\t\tpanic(\"Group with such name already exists\")\n\t}\n\treturn \u0026Group{\n\t\tid: incGetGroupID(),\n\t\turl: url,\n\t\tname: name,\n\t\tcreator: creator,\n\t\tmembers: avl.Tree{},\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) newMember(id MemberID, address std.Address, weight int, metadata string) *Member {\n\tif group.members.Has(address.String()) {\n\t\tpanic(\"this member for this group already exists\")\n\t}\n\treturn \u0026Member{\n\t\tid: id,\n\t\taddress: address,\n\t\tweight: weight,\n\t\tmetadata: metadata,\n\t\tcreatedAt: time.Now(),\n\t}\n}\n\nfunc (group *Group) HasPermission(addr std.Address, perm Permission) bool {\n\tif group.creator != addr {\n\t\treturn false\n\t}\n\treturn isValidPermission(perm)\n}\n\nfunc (group *Group) RenderGroup() string {\n\tstr := \"Group ID: \" + groupIDKey(group.id) + \"\\n\\n\" +\n\t\t\"Group Name: \" + group.name + \"\\n\\n\" +\n\t\t\"Group Creator: \" + usernameOf(group.creator) + \"\\n\\n\" +\n\t\t\"Group createdAt: \" + group.createdAt.String() + \"\\n\\n\" +\n\t\t\"Group Last MemberID: \" + memberIDKey(group.lastMemberID) + \"\\n\\n\"\n\n\tstr += \"Group Members: \\n\\n\"\n\tgroup.members.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tmember := value.(*Member)\n\t\tstr += member.getMemberStr()\n\t\treturn false\n\t})\n\treturn str\n}\n\nfunc (group *Group) deleteGroup() {\n\tgidkey := groupIDKey(group.id)\n\t_, gGroupsRemoved := gGroups.Remove(gidkey)\n\tif !gGroupsRemoved {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\tgGroupsByName.Remove(group.name)\n}\n\nfunc (group *Group) deleteMember(mid MemberID) {\n\tgidkey := groupIDKey(group.id)\n\tif !gGroups.Has(gidkey) {\n\t\tpanic(\"group does not exist with id \" + group.id.String())\n\t}\n\n\tg := getGroup(group.id)\n\tmidkey := memberIDKey(mid)\n\tg.members.Remove(midkey)\n}\n"},{"name":"groups.gno","body":"package groups\n\nimport (\n\t\"regexp\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n//----------------------------------------\n// Realm (package) state\n\nvar (\n\tgGroups avl.Tree // id -\u003e *Group\n\tgGroupsCtr int // increments Group.id\n\tgGroupsByName avl.Tree // name -\u003e *Group\n)\n\n//----------------------------------------\n// Constants\n\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{2,29}$`)\n"},{"name":"member.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"time\"\n)\n\ntype MemberID uint64\n\ntype Member struct {\n\tid MemberID\n\taddress std.Address\n\tweight int\n\tmetadata string\n\tcreatedAt time.Time\n}\n\nfunc (mid MemberID) String() string {\n\treturn strconv.Itoa(int(mid))\n}\n\nfunc (member *Member) getMemberStr() string {\n\tmemberDataStr := \"\"\n\tmemberDataStr += \"\\t\\t\\t[\" + memberIDKey(member.id) + \", \" + member.address.String() + \", \" + strconv.Itoa(member.weight) + \", \" + member.metadata + \", \" + member.createdAt.String() + \"],\\n\\n\"\n\treturn memberDataStr\n}\n"},{"name":"misc.gno","body":"package groups\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// private utility methods\n// XXX ensure these cannot be called from public.\n\nfunc getGroup(gid GroupID) *Group {\n\tgidkey := groupIDKey(gid)\n\tgroup_, exists := gGroups.Get(gidkey)\n\tif !exists {\n\t\tpanic(\"group id (\" + gid.String() + \") does not exists\")\n\t}\n\tgroup := group_.(*Group)\n\treturn group\n}\n\nfunc incGetGroupID() GroupID {\n\tgGroupsCtr++\n\treturn GroupID(gGroupsCtr)\n}\n\nfunc padLeft(str string, length int) string {\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\" \", length-len(str)) + str\n}\n\nfunc padZero(u64 uint64, length int) string {\n\tstr := strconv.Itoa(int(u64))\n\tif len(str) \u003e= length {\n\t\treturn str\n\t}\n\treturn strings.Repeat(\"0\", length-len(str)) + str\n}\n\nfunc groupIDKey(gid GroupID) string {\n\treturn padZero(uint64(gid), 10)\n}\n\nfunc memberIDKey(mid MemberID) string {\n\treturn padZero(uint64(mid), 10)\n}\n\nfunc indentBody(indent string, body string) string {\n\tlines := strings.Split(body, \"\\n\")\n\tres := \"\"\n\tfor i, line := range lines {\n\t\tif i \u003e 0 {\n\t\t\tres += \"\\n\"\n\t\t}\n\t\tres += indent + line\n\t}\n\treturn res\n}\n\n// NOTE: length must be greater than 3.\nfunc summaryOf(str string, length int) string {\n\tlines := strings.SplitN(str, \"\\n\", 2)\n\tline := lines[0]\n\tif len(line) \u003e length {\n\t\tline = line[:(length-3)] + \"...\"\n\t} else if len(lines) \u003e 1 {\n\t\t// len(line) \u003c= 80\n\t\tline = line + \"...\"\n\t}\n\treturn line\n}\n\nfunc displayAddressMD(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\treturn \"[\" + addr.String() + \"](/r/demo/users:\" + addr.String() + \")\"\n\t}\n\treturn \"[@\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\"\n}\n\nfunc usernameOf(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user == nil {\n\t\tpanic(\"user not found\")\n\t}\n\treturn user.Name\n}\n\nfunc isValidPermission(perm Permission) bool {\n\treturn perm == EditPermission || perm == DeletePermission\n}\n"},{"name":"public.gno","body":"package groups\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\n//----------------------------------------\n// Public facing functions\n\nfunc GetGroupIDFromName(name string) (GroupID, bool) {\n\tgroupI, exists := gGroupsByName.Get(name)\n\tif !exists {\n\t\treturn 0, false\n\t}\n\treturn groupI.(*Group).id, true\n}\n\nfunc CreateGroup(name string) GroupID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\turl := \"/r/demo/groups:\" + name\n\tgroup := newGroup(url, name, caller)\n\tgidkey := groupIDKey(group.id)\n\tgGroups.Set(gidkey, group)\n\tgGroupsByName.Set(name, group)\n\treturn group.id\n}\n\nfunc AddMember(gid GroupID, address string, weight int, metadata string) MemberID {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tusernameOf(caller)\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, EditPermission) {\n\t\tpanic(\"unauthorized to edit group\")\n\t}\n\tuser := users.GetUserByAddress(std.Address(address))\n\tif user == nil {\n\t\tpanic(\"unknown address \" + address)\n\t}\n\tmid := group.lastMemberID\n\tmember := group.newMember(mid, std.Address(address), weight, metadata)\n\tmidkey := memberIDKey(mid)\n\tgroup.members.Set(midkey, member)\n\tmid++\n\tgroup.lastMemberID = mid\n\treturn member.id\n}\n\nfunc DeleteGroup(gid GroupID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete group\")\n\t}\n\tgroup.deleteGroup()\n}\n\nfunc DeleteMember(gid GroupID, mid MemberID) {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tgroup := getGroup(gid)\n\tif !group.HasPermission(caller, DeletePermission) {\n\t\tpanic(\"unauthorized to delete member\")\n\t}\n\tgroup.deleteMember(mid)\n}\n"},{"name":"render.gno","body":"package groups\n\nimport (\n\t\"strings\"\n)\n\n//----------------------------------------\n// Render functions\n\nfunc RenderGroup(gid GroupID) string {\n\tgroup := getGroup(gid)\n\tif group == nil {\n\t\treturn \"missing Group\"\n\t}\n\treturn group.RenderGroup()\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\tstr := \"List of all Groups:\\n\\n\"\n\t\tgGroups.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tgroup := value.(*Group)\n\t\t\tstr += \" * [\" + group.name + \"](\" + group.url + \")\\n\"\n\t\t\treturn false\n\t\t})\n\t\treturn str\n\t}\n\tparts := strings.Split(path, \"/\")\n\tif len(parts) == 1 {\n\t\t// /r/demo/groups:Group_NAME\n\t\tname := parts[0]\n\t\tgroupI, exists := gGroupsByName.Get(name)\n\t\tif !exists {\n\t\t\treturn \"Group does not exist: \" + name\n\t\t}\n\t\treturn groupI.(*Group).RenderGroup()\n\t} else {\n\t\treturn \"unrecognized path \" + path\n\t}\n}\n"},{"name":"role.gno","body":"package groups\n\ntype Permission string\n\nconst (\n\tDeletePermission Permission = \"role:delete\"\n\tEditPermission Permission = \"role:edit\"\n)\n"},{"name":"z_0_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// user not found\n"},{"name":"z_0_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n// * [test_group](/r/demo/groups:test_group)\n//\n"},{"name":"z_1_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test3.String(), 32, \"i am from UAE\")\n\tprintln(groups.Render(\"test_group\"))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n// \t\t\t[0000000000, g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy, 32, i am from UAE, 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001],\n//\n//\n"},{"name":"z_1_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.AddMember(2, \"g1vahx7atnv4erxh6lta047h6lta047h6ll85gpy\", 55, \"metadata3\")\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_1_c_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// add member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n}\n\n// Error:\n// user not found\n"},{"name":"z_2_a_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser0\", \"my profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"gnouser1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"gnouser1\", \"my other profile 1\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest2 := testutils.TestAddress(\"gnouser2\")\n\tusers.Invite(test2.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(caller, \"gnouser2\", \"my other profile 2\")\n\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest3 := testutils.TestAddress(\"gnouser3\")\n\tusers.Invite(test3.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test3)\n\tusers.Register(caller, \"gnouser3\", \"my other profile 3\")\n\n\tstd.TestSetOrigCaller(caller)\n\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\tgroups.AddMember(gid, test2.String(), 42, \"metadata3\")\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.RenderGroup(gid))\n}\n\n// Output:\n// 1\n// Group ID: 0000000001\n//\n// Group Name: test_group\n//\n// Group Creator: gnouser0\n//\n// Group createdAt: 2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n//\n// Group Last MemberID: 0000000001\n//\n// Group Members:\n//\n//\n"},{"name":"z_2_b_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteMember(2, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (2) does not exists\n"},{"name":"z_2_d_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete member via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteMember(gid, 0)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete member\n"},{"name":"z_2_e_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Output:\n// 1\n// List of all Groups:\n//\n//\n"},{"name":"z_2_f_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\tgroups.DeleteGroup(20)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// group id (20) does not exists\n"},{"name":"z_2_g_filetest.gno","body":"// PKGPATH: gno.land/r/demo/groups_test\npackage groups_test\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/groups\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar gid groups.GroupID\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tgid = groups.CreateGroup(\"test_group\")\n\tprintln(gid)\n\n\t// delete group via anon user\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 9000000}}, nil)\n\n\tgroups.DeleteGroup(gid)\n\tprintln(groups.Render(\"\"))\n}\n\n// Error:\n// unauthorized to delete group\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iDzIP5rFvwEgyfO2BIXp7kFomrnDapszXyp0Q90urTqDA93xNdSkb1ZWmEkTAmeatX7Ypdk1y1oYtmi9tPCQDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"guestbook","path":"gno.land/r/morgan/guestbook","files":[{"name":"admin.gno","body":"package guestbook\n\nimport (\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar owner = ownable.New()\n\n// AdminDelete removes the guestbook message with the given ID.\n// The user will still be marked as having submitted a message, so they\n// won't be able to re-submit a new message.\nfunc AdminDelete(signatureID string) {\n\towner.AssertCallerIsOwner()\n\n\tid, err := seqid.FromString(signatureID)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tidb := id.Binary()\n\tif !guestbook.Has(idb) {\n\t\tpanic(\"signature does not exist\")\n\t}\n\tguestbook.Remove(idb)\n}\n"},{"name":"guestbook.gno","body":"// Realm guestbook contains an implementation of a simple guestbook.\n// Come and sign yourself up!\npackage guestbook\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n)\n\n// Signature is a single entry in the guestbook.\ntype Signature struct {\n\tMessage string\n\tAuthor std.Address\n\tTime time.Time\n}\n\nconst (\n\tmaxMessageLength = 140\n\tmaxPerPage = 25\n)\n\nvar (\n\tsignatureID seqid.ID\n\tguestbook avl.Tree // id -\u003e Signature\n\thasSigned avl.Tree // address -\u003e struct{}\n)\n\nfunc init() {\n\tSign(\"You reached the end of the guestbook!\")\n}\n\nconst (\n\terrNotAUser = \"this guestbook can only be signed by users\"\n\terrAlreadySigned = \"you already signed the guestbook!\"\n\terrInvalidCharacterInMessage = \"invalid character in message\"\n)\n\n// Sign signs the guestbook, with the specified message.\nfunc Sign(message string) {\n\tprev := std.PrevRealm()\n\tswitch {\n\tcase !prev.IsUser():\n\t\tpanic(errNotAUser)\n\tcase hasSigned.Has(prev.Addr().String()):\n\t\tpanic(errAlreadySigned)\n\t}\n\tmessage = validateMessage(message)\n\n\tguestbook.Set(signatureID.Next().Binary(), Signature{\n\t\tMessage: message,\n\t\tAuthor: prev.Addr(),\n\t\t// NOTE: time.Now() will yield the \"block time\", which is deterministic.\n\t\tTime: time.Now(),\n\t})\n\thasSigned.Set(prev.Addr().String(), struct{}{})\n}\n\nfunc validateMessage(msg string) string {\n\tif len(msg) \u003e maxMessageLength {\n\t\tpanic(\"Keep it brief! (max \" + strconv.Itoa(maxMessageLength) + \" bytes!)\")\n\t}\n\tout := \"\"\n\tfor _, ch := range msg {\n\t\tswitch {\n\t\tcase unicode.IsLetter(ch),\n\t\t\tunicode.IsNumber(ch),\n\t\t\tunicode.IsSpace(ch),\n\t\t\tunicode.IsPunct(ch):\n\t\t\tout += string(ch)\n\t\tdefault:\n\t\t\tpanic(errInvalidCharacterInMessage)\n\t\t}\n\t}\n\treturn out\n}\n\nfunc Render(maxID string) string {\n\tvar bld strings.Builder\n\n\tbld.WriteString(\"# Guestbook 📝\\n\\n[Come sign the guestbook!](./guestbook$help\u0026func=Sign)\\n\\n---\\n\\n\")\n\n\tvar maxIDBinary string\n\tif maxID != \"\" {\n\t\tmid, err := seqid.FromString(maxID)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\t// AVL iteration is exclusive, so we need to decrease the ID value to get the \"true\" maximum.\n\t\tmid--\n\t\tmaxIDBinary = mid.Binary()\n\t}\n\n\tvar lastID seqid.ID\n\tvar printed int\n\tguestbook.ReverseIterate(\"\", maxIDBinary, func(key string, val interface{}) bool {\n\t\tsig := val.(Signature)\n\t\tmessage := strings.ReplaceAll(sig.Message, \"\\n\", \"\\n\u003e \")\n\t\tbld.WriteString(\"\u003e \" + message + \"\\n\u003e\\n\")\n\t\tidValue, ok := seqid.FromBinary(key)\n\t\tif !ok {\n\t\t\tpanic(\"invalid seqid id\")\n\t\t}\n\n\t\tbld.WriteString(\"\u003e _Written by \" + sig.Author.String() + \" at \" + sig.Time.Format(time.DateTime) + \"_ (#\" + idValue.String() + \")\\n\\n---\\n\\n\")\n\t\tlastID = idValue\n\n\t\tprinted++\n\t\t// stop after exceeding limit\n\t\treturn printed \u003e= maxPerPage\n\t})\n\n\tif printed == 0 {\n\t\tbld.WriteString(\"No messages!\")\n\t} else if printed \u003e= maxPerPage {\n\t\tbld.WriteString(\"\u003cp style='text-align:right'\u003e\u003ca href='./guestbook:\" + lastID.String() + \"'\u003eNext page\u003c/a\u003e\u003c/p\u003e\")\n\t}\n\n\treturn bld.String()\n}\n"},{"name":"guestbook_test.gno","body":"package guestbook\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nfunc TestSign(t *testing.T) {\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user2\"))\n\tSign(\"Hello2!\")\n\n\tres := Render(\"\")\n\tt.Log(res)\n\tif !strings.Contains(res, \"\u003e Hello!\\n\u003e\\n\u003e _Written by g1user \") {\n\t\tt.Error(\"does not contain first user's message\")\n\t}\n\tif !strings.Contains(res, \"\u003e Hello2!\\n\u003e\\n\u003e _Written by g1user2 \") {\n\t\tt.Error(\"does not contain second user's message\")\n\t}\n\tif guestbook.Size() != 2 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n}\n\nfunc TestSign_FromRealm(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/demo/users\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Fatal(\"not a string\", rec)\n\t\t} else if recString != errNotAUser {\n\t\t\tt.Fatal(\"invalid error\", recString)\n\t\t}\n\t}()\n\tSign(\"Hey!\")\n}\n\nfunc TestSign_Double(t *testing.T) {\n\t// Should not allow signing twice.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\tSign(\"Hello!\")\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errAlreadySigned {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\n\tSign(\"Hello again!\")\n}\n\nfunc TestSign_InvalidMessage(t *testing.T) {\n\t// Should not allow control characters in message.\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\n\tstd.TestSetRealm(std.NewUserRealm(\"g1user\"))\n\n\tdefer func() {\n\t\trec := recover()\n\t\tif rec == nil {\n\t\t\tt.Fatal(\"expected panic\")\n\t\t}\n\t\trecString, ok := rec.(string)\n\t\tif !ok {\n\t\t\tt.Error(\"type assertion failed\", rec)\n\t\t} else if recString != errInvalidCharacterInMessage {\n\t\t\tt.Error(\"invalid error message\", recString)\n\t\t}\n\t}()\n\tSign(\"\\x00Hello!\")\n}\n\nfunc TestAdminDelete(t *testing.T) {\n\tconst (\n\t\tuserAddr std.Address = \"g1user\"\n\t\tadminAddr std.Address = \"g1admin\"\n\t)\n\n\tguestbook = avl.Tree{}\n\thasSigned = avl.Tree{}\n\towner = ownable.NewWithAddress(adminAddr)\n\tsignatureID = 0\n\n\tstd.TestSetRealm(std.NewUserRealm(userAddr))\n\n\tconst bad = \"Very Bad Message! Nyeh heh heh!\"\n\tSign(bad)\n\n\tif rnd := Render(\"\"); !strings.Contains(rnd, bad) {\n\t\tt.Fatal(\"render does not contain bad message\", rnd)\n\t}\n\n\tstd.TestSetRealm(std.NewUserRealm(adminAddr))\n\tAdminDelete(signatureID.String())\n\n\tif rnd := Render(\"\"); strings.Contains(rnd, bad) {\n\t\tt.Error(\"render contains bad message\", rnd)\n\t}\n\tif guestbook.Size() != 0 {\n\t\tt.Error(\"invalid guestbook size\")\n\t}\n\tif hasSigned.Size() != 1 {\n\t\tt.Error(\"invalid hasSigned size\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CKqa8LB17SfQ9ppNKu6zu2+EvfoDdCPfatsYO3C/ULrRIa0YS5sRjNLtzMjrXEWWx2LszrHJp0R908kIO86pAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"haystack","path":"gno.land/p/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nvar (\n\t// ErrorNeedleNotFound is returned when a needle is not found in the haystack.\n\tErrorNeedleNotFound = errors.New(\"needle not found\")\n\t// ErrorNeedleLength is returned when a needle is not the correct length.\n\tErrorNeedleLength = errors.New(\"invalid needle length\")\n\t// ErrorHashLength is returned when a needle hash is not the correct length.\n\tErrorHashLength = errors.New(\"invalid hash length\")\n\t// ErrorDuplicateNeedle is returned when a needle already exists in the haystack.\n\tErrorDuplicateNeedle = errors.New(\"needle already exists\")\n\t// ErrorHashMismatch is returned when a needle hash does not match the needle. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorHashMismatch = errors.New(\"storage error: hash mismatch\")\n\t// ErrorValueInvalidType is returned when a needle value is not a byte slice. This should\n\t// never happen and indicates a critical internal storage error.\n\tErrorValueInvalidType = errors.New(\"storage error: invalid value type, expected []byte\")\n)\n\nconst (\n\t// EncodedHashLength is the length of the hex-encoded needle hash.\n\tEncodedHashLength = needle.HashLength * 2\n\t// EncodedPayloadLength is the length of the hex-encoded needle payload.\n\tEncodedPayloadLength = needle.PayloadLength * 2\n\t// EncodedNeedleLength is the length of the hex-encoded needle.\n\tEncodedNeedleLength = EncodedHashLength + EncodedPayloadLength\n)\n\n// Haystack is a permissionless, append-only, content-addressed key-value store for fix\n// length messages known as needles. A needle is a 192 byte byte slice with a 32 byte\n// hash (sha256) and a 160 byte payload.\ntype Haystack struct{ internal *avl.Tree }\n\n// New creates a new instance of a Haystack key-value store.\nfunc New() *Haystack {\n\treturn \u0026Haystack{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value\n// store. The key is the first 32 bytes of the needle hash (64 bytes hex-encoded) of the\n// sha256 sum of the payload. The value is the 160 byte byte slice of the needle payload.\n// An error is returned if the needle is found to be invalid.\nfunc (h *Haystack) Add(needleHex string) error {\n\tif len(needleHex) != EncodedNeedleLength {\n\t\treturn ErrorNeedleLength\n\t}\n\tb, err := hex.DecodeString(needleHex)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := needle.FromBytes(b)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif h.internal.Has(needleHex[:EncodedHashLength]) {\n\t\treturn ErrorDuplicateNeedle\n\t}\n\th.internal.Set(needleHex[:EncodedHashLength], n.Payload())\n\treturn nil\n}\n\n// Get takes a hex-encoded needle hash and returns the complete hex-encoded needle bytes\n// and an error. Errors covers errors that span from the needle not being found, internal\n// storage error inconsistencies, and invalid value types.\nfunc (h *Haystack) Get(hash string) (string, error) {\n\tif len(hash) != EncodedHashLength {\n\t\treturn \"\", ErrorHashLength\n\t}\n\tif _, err := hex.DecodeString(hash); err != nil {\n\t\treturn \"\", err\n\t}\n\tv, ok := h.internal.Get(hash)\n\tif !ok {\n\t\treturn \"\", ErrorNeedleNotFound\n\t}\n\tb, ok := v.([]byte)\n\tif !ok {\n\t\treturn \"\", ErrorValueInvalidType\n\t}\n\tn, err := needle.New(b)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tneedleHash := hex.EncodeToString(n.Hash())\n\tif needleHash != hash {\n\t\treturn \"\", ErrorHashMismatch\n\t}\n\treturn hex.EncodeToString(n.Bytes()), nil\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"testing\"\n\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"New\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tif h == nil {\n\t\t\tt.Error(\"New returned nil\")\n\t\t}\n\t})\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\t\tn, _ := needle.New(make([]byte, needle.PayloadLength))\n\t\tvalidNeedleHex := hex.EncodeToString(n.Bytes())\n\n\t\ttestTable := []struct {\n\t\t\tneedleHex string\n\t\t\terr error\n\t\t}{\n\t\t\t{validNeedleHex, nil},\n\t\t\t{validNeedleHex, ErrorDuplicateNeedle},\n\t\t\t{\"bad\" + validNeedleHex[3:], needle.ErrorInvalidHash},\n\t\t\t{\"XXX\" + validNeedleHex[3:], hex.InvalidByteError('X')},\n\t\t\t{validNeedleHex[:len(validNeedleHex)-2], ErrorNeedleLength},\n\t\t\t{validNeedleHex + \"00\", ErrorNeedleLength},\n\t\t\t{\"000\", ErrorNeedleLength},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\terr := h.Add(tt.needleHex)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.needleHex, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\th := New()\n\n\t\t// genNeedleHex returns a hex-encoded needle and its hash for a given index.\n\t\tgenNeedleHex := func(i int) (string, string) {\n\t\t\tb := make([]byte, needle.PayloadLength)\n\t\t\tb[0] = byte(i)\n\t\t\tn, _ := needle.New(b)\n\t\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t\t}\n\n\t\t// Add a valid needle to the haystack.\n\t\tvalidNeedleHex, validHash := genNeedleHex(0)\n\t\th.Add(validNeedleHex)\n\n\t\t// Add a needle and break the value type.\n\t\t_, brokenHashValueType := genNeedleHex(1)\n\t\th.internal.Set(brokenHashValueType, 0)\n\n\t\t// Add a needle with invalid hash.\n\t\t_, invalidHash := genNeedleHex(2)\n\t\th.internal.Set(invalidHash, make([]byte, needle.PayloadLength))\n\n\t\ttestTable := []struct {\n\t\t\thash string\n\t\t\texpected string\n\t\t\terr error\n\t\t}{\n\t\t\t{validHash, validNeedleHex, nil},\n\t\t\t{validHash[:len(validHash)-2], \"\", ErrorHashLength},\n\t\t\t{validHash + \"00\", \"\", ErrorHashLength},\n\t\t\t{\"XXX\" + validHash[3:], \"\", hex.InvalidByteError('X')},\n\t\t\t{\"bad\" + validHash[3:], \"\", ErrorNeedleNotFound},\n\t\t\t{brokenHashValueType, \"\", ErrorValueInvalidType},\n\t\t\t{invalidHash, \"\", ErrorHashMismatch},\n\t\t}\n\t\tfor _, tt := range testTable {\n\t\t\tactual, err := h.Get(tt.hash)\n\t\t\tif err != tt.err {\n\t\t\t\tt.Error(tt.hash, err.Error(), \"!=\", tt.err.Error())\n\t\t\t}\n\t\t\tif actual != tt.expected {\n\t\t\t\tt.Error(tt.hash, actual, \"!=\", tt.expected)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k2PXNtvkBG9De99/bFd3olE9W/1XmBjYu3Yecl3F0UQYYsK10WW9hswD7i9H0GeZeaUtAkOQXFozhBaocQaJDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"haystack","path":"gno.land/r/n2p5/haystack","files":[{"name":"haystack.gno","body":"package haystack\n\nimport (\n\t\"gno.land/p/n2p5/haystack\"\n)\n\nvar storage = haystack.New()\n\nfunc Render(path string) string {\n\treturn `\nPut a Needle in the Haystack.\n`\n}\n\n// Add takes a fixed-length hex-encoded needle bytes and adds it to the haystack key-value store.\n// If storage encounters an error, it will panic.\nfunc Add(needleHex string) {\n\terr := storage.Add(needleHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// Get takes a fixed-length hex-encoded needle hash and returns the hex-encoded needle bytes.\n// If storage encounters an error, it will panic.\nfunc Get(hashHex string) string {\n\tneedleHex, err := storage.Get(hashHex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn needleHex\n}\n"},{"name":"haystack_test.gno","body":"package haystack\n\nimport (\n\t\"encoding/hex\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/n2p5/haystack\"\n\t\"gno.land/p/n2p5/haystack/needle\"\n)\n\nfunc TestHaystack(t *testing.T) {\n\tt.Parallel()\n\t// needleHex returns a hex-encoded needle and its hash for a given index.\n\tgenNeedleHex := func(i int) (string, string) {\n\t\tb := make([]byte, needle.PayloadLength)\n\t\tb[0] = byte(i)\n\t\tn, _ := needle.New(b)\n\t\treturn hex.EncodeToString(n.Bytes()), hex.EncodeToString(n.Hash())\n\t}\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\n\tt.Run(\"Add\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, _ := genNeedleHex(1)\n\t\tn2, _ := genNeedleHex(2)\n\t\tn3, _ := genNeedleHex(3)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorDuplicateNeedle.Error(),\n\t\t\tfunc() {\n\t\t\t\tAdd(n1)\n\t\t\t})\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() { Add(n2) })\n\t\turequire.NotPanics(t, func() { Add(n3) })\n\t})\n\n\tt.Run(\"Get\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tn1, h1 := genNeedleHex(4)\n\t\t_, h2 := genNeedleHex(5)\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\turequire.NotPanics(t, func() { Add(n1) })\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\n\t\tstd.TestSetOrigCaller(u2)\n\t\turequire.NotPanics(t, func() {\n\t\t\tresult := Get(h1)\n\t\t\turequire.Equal(t, n1, result)\n\t\t})\n\t\turequire.PanicsWithMessage(t,\n\t\t\thaystack.ErrorNeedleNotFound.Error(),\n\t\t\tfunc() {\n\t\t\t\tGet(h2)\n\t\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yftq/DDuaUg0WaTdY6hLMz2W6TsGNlGvYk2kksF+rXyMUtDIVbF6ju3GJu5Rt1l2Vb+pIEgznO/E/qhFHpZNDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"hello","path":"gno.land/r/docs/hello","files":[{"name":"hello.gno","body":"// Package hello_world demonstrates basic usage of Render().\n// Try adding `:World` at the end of the URL, like `.../hello:World`.\npackage hello\n\n// Render outputs a greeting. It customizes the message based on the provided path.\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn \"# Hello, 世界!\"\n\t}\n\treturn \"# Hello, \" + path + \"!\"\n}\n"},{"name":"hello_test.gno","body":"package hello\n\nimport (\n\t\"testing\"\n)\n\nfunc TestHello(t *testing.T) {\n\texpected := \"# Hello, 世界!\"\n\tgot := Render(\"\")\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n\n\tgot = Render(\"world\")\n\texpected = \"# Hello, world!\"\n\tif got != expected {\n\t\tt.Fatalf(\"Expected %s, got %s\", expected, got)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eXy4JmXfPEIF1XCzQUj7YgPrXtiFUa6d40w4EOWWedi0MVttPwDZDwdscIa63qsRTM3aIEeb6BYks6lAHar1BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"helplink","path":"gno.land/p/moul/helplink","files":[{"name":"helplink.gno","body":"// Package helplink provides utilities for creating help page links compatible\n// with Gnoweb, Gnobro, and other clients that support the Gno contracts'\n// flavored Markdown format.\n//\n// This package simplifies the generation of dynamic, context-sensitive help\n// links, enabling users to navigate relevant documentation seamlessly within\n// the Gno ecosystem.\n//\n// For a more lightweight alternative, consider using p/moul/txlink.\n//\n// The primary functions — Func, FuncURL, and Home — are intended for use with\n// the \"relative realm\". When specifying a custom Realm, you can create links\n// that utilize either the current realm path or a fully qualified path to\n// another realm.\npackage helplink\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Func returns a markdown link for the specific function with optional\n// key-value arguments, for the current realm.\nfunc Func(title string, fn string, args ...string) string {\n\treturn Realm(\"\").Func(title, fn, args...)\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc FuncURL(fn string, args ...string) string {\n\treturn Realm(\"\").FuncURL(fn, args...)\n}\n\n// Home returns the URL for the help homepage of the current realm.\nfunc Home() string {\n\treturn Realm(\"\").Home()\n}\n\n// Realm represents a specific realm for generating help links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\treturn \"\"\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Func returns a markdown link for the specified function with optional\n// key-value arguments.\nfunc (r Realm) Func(title string, fn string, args ...string) string {\n\t// XXX: escape title\n\treturn \"[\" + title + \"](\" + r.FuncURL(fn, args...) + \")\"\n}\n\n// FuncURL returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) FuncURL(fn string, args ...string) string {\n\ttlr := txlink.Realm(r)\n\treturn tlr.Call(fn, args...)\n}\n\n// Home returns the base help URL for the specified realm.\nfunc (r Realm) Home() string {\n\treturn r.prefix() + \"$help\"\n}\n"},{"name":"helplink_test.gno","body":"package helplink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestFunc(t *testing.T) {\n\ttests := []struct {\n\t\ttitle string\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Example]($help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"\"},\n\t\t{\"Realm Example\", \"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"[Realm Example](/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2)\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"Single Arg\", \"testFunc\", []string{\"key\", \"value\"}, \"[Single Arg]($help\u0026func=testFunc\u0026key=value)\", \"\"},\n\t\t{\"No Args\", \"noArgsFunc\", []string{}, \"[No Args]($help\u0026func=noArgsFunc)\", \"\"},\n\t\t{\"Odd Args\", \"oddArgsFunc\", []string{\"key\"}, \"[Odd Args]($help\u0026func=oddArgsFunc)\", \"\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Func(tt.title, tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestFuncURL(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.FuncURL(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestHome(t *testing.T) {\n\ttests := []struct {\n\t\trealm Realm\n\t\twant string\n\t}{\n\t\t{\"\", \"$help\"},\n\t\t{\"gno.land/r/lorem/ipsum\", \"/r/lorem/ipsum$help\"},\n\t\t{\"gno.world/r/lorem/ipsum\", \"https://gno.world/r/lorem/ipsum$help\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(string(tt.realm), func(t *testing.T) {\n\t\t\tgot := tt.realm.Home()\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SVIkro1Vgqxk6/8JJfsDiO9D28hXRIyYheHf9dMrDkMm9WPwweJmNGNUDrxYsPBdiGVE0lb1m0PDYhwg1vVCCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"hof","path":"gno.land/r/leon/hof","files":[{"name":"datasource.gno","body":"package hof\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/jeronimoalbi/datasource\"\n)\n\nfunc NewDatasource() Datasource {\n\treturn Datasource{exhibition}\n}\n\ntype Datasource struct {\n\texhibition *Exhibition\n}\n\nfunc (ds Datasource) Size() int { return ds.exhibition.itemsSorted.Size() }\n\nfunc (ds Datasource) Records(q datasource.Query) datasource.Iterator {\n\treturn \u0026iterator{\n\t\texhibition: ds.exhibition,\n\t\tindex: q.Offset,\n\t\tmaxIndex: q.Offset + q.Count,\n\t}\n}\n\nfunc (ds Datasource) Record(id string) (datasource.Record, error) {\n\tv, found := ds.exhibition.itemsSorted.Get(id)\n\tif !found {\n\t\treturn nil, errors.New(\"realm submission not found\")\n\t}\n\treturn record{v.(*Item)}, nil\n}\n\ntype record struct {\n\titem *Item\n}\n\nfunc (r record) ID() string { return r.item.id.String() }\nfunc (r record) String() string { return r.item.pkgpath }\n\nfunc (r record) Fields() (datasource.Fields, error) {\n\tfields := avl.NewTree()\n\tfields.Set(\n\t\t\"details\",\n\t\tufmt.Sprintf(\"Votes: ⏶ %d - ⏷ %d\", r.item.upvote.Size(), r.item.downvote.Size()),\n\t)\n\treturn fields, nil\n}\n\nfunc (r record) Content() (string, error) {\n\tcontent := ufmt.Sprintf(\"# Submission #%d\\n\\n\", int(r.item.id))\n\tcontent += r.item.Render(false)\n\treturn content, nil\n}\n\ntype iterator struct {\n\texhibition *Exhibition\n\tindex, maxIndex int\n\trecord *record\n}\n\nfunc (it iterator) Record() datasource.Record { return it.record }\nfunc (it iterator) Err() error { return nil }\n\nfunc (it *iterator) Next() bool {\n\tif it.index \u003e= it.maxIndex || it.index \u003e= it.exhibition.itemsSorted.Size() {\n\t\treturn false\n\t}\n\n\t_, v := it.exhibition.itemsSorted.GetByIndex(it.index)\n\tit.record = \u0026record{v.(*Item)}\n\tit.index++\n\treturn true\n}\n"},{"name":"datasource_test.gno","body":"package hof\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/jeronimoalbi/datasource\"\n)\n\nvar (\n\t_ datasource.Datasource = (*Datasource)(nil)\n\t_ datasource.Record = (*record)(nil)\n\t_ datasource.ContentRecord = (*record)(nil)\n\t_ datasource.Iterator = (*iterator)(nil)\n)\n\nfunc TestDatasourceRecords(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\titems []*Item\n\t\trecordIDs []string\n\t\toptions []datasource.QueryOption\n\t}{\n\t\t{\n\t\t\tname: \"all items\",\n\t\t\titems: []*Item{{id: 1}, {id: 2}, {id: 3}},\n\t\t\trecordIDs: []string{\"0000001\", \"0000002\", \"0000003\"},\n\t\t},\n\t\t{\n\t\t\tname: \"with offset\",\n\t\t\titems: []*Item{{id: 1}, {id: 2}, {id: 3}},\n\t\t\trecordIDs: []string{\"0000002\", \"0000003\"},\n\t\t\toptions: []datasource.QueryOption{datasource.WithOffset(1)},\n\t\t},\n\t\t{\n\t\t\tname: \"with count\",\n\t\t\titems: []*Item{{id: 1}, {id: 2}, {id: 3}},\n\t\t\trecordIDs: []string{\"0000001\", \"0000002\"},\n\t\t\toptions: []datasource.QueryOption{datasource.WithCount(2)},\n\t\t},\n\t\t{\n\t\t\tname: \"with offset and count\",\n\t\t\titems: []*Item{{id: 1}, {id: 2}, {id: 3}},\n\t\t\trecordIDs: []string{\"0000002\"},\n\t\t\toptions: []datasource.QueryOption{\n\t\t\t\tdatasource.WithOffset(1),\n\t\t\t\tdatasource.WithCount(1),\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Initialize a local instance of exhibition\n\t\t\texhibition := \u0026Exhibition{itemsSorted: avl.NewTree()}\n\t\t\tfor _, item := range tc.items {\n\t\t\t\texhibition.itemsSorted.Set(item.id.String(), item)\n\t\t\t}\n\n\t\t\t// Get a records iterator\n\t\t\tds := Datasource{exhibition}\n\t\t\tquery := datasource.NewQuery(tc.options...)\n\t\t\titer := ds.Records(query)\n\n\t\t\t// Start asserting\n\t\t\turequire.Equal(t, len(tc.items), ds.Size(), \"datasource size\")\n\n\t\t\tvar records []datasource.Record\n\t\t\tfor iter.Next() {\n\t\t\t\trecords = append(records, iter.Record())\n\t\t\t}\n\t\t\turequire.Equal(t, len(tc.recordIDs), len(records), \"record count\")\n\n\t\t\tfor i, r := range records {\n\t\t\t\tuassert.Equal(t, tc.recordIDs[i], r.ID())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDatasourceRecord(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\titems []*Item\n\t\tid string\n\t\terr string\n\t}{\n\t\t{\n\t\t\tname: \"found\",\n\t\t\titems: []*Item{{id: 1}, {id: 2}, {id: 3}},\n\t\t\tid: \"0000001\",\n\t\t},\n\t\t{\n\t\t\tname: \"no found\",\n\t\t\titems: []*Item{{id: 1}, {id: 2}, {id: 3}},\n\t\t\tid: \"42\",\n\t\t\terr: \"realm submission not found\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t// Initialize a local instance of exhibition\n\t\t\texhibition := \u0026Exhibition{itemsSorted: avl.NewTree()}\n\t\t\tfor _, item := range tc.items {\n\t\t\t\texhibition.itemsSorted.Set(item.id.String(), item)\n\t\t\t}\n\n\t\t\t// Get a single record\n\t\t\tds := Datasource{exhibition}\n\t\t\tr, err := ds.Record(tc.id)\n\n\t\t\t// Start asserting\n\t\t\tif tc.err != \"\" {\n\t\t\t\tuassert.ErrorContains(t, err, tc.err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\turequire.NoError(t, err, \"no error\")\n\t\t\turequire.NotEqual(t, nil, r, \"record not nil\")\n\t\t\tuassert.Equal(t, tc.id, r.ID())\n\t\t})\n\t}\n}\n\nfunc TestItemRecord(t *testing.T) {\n\tpkgpath := \"gno.land/r/demo/test\"\n\titem := Item{\n\t\tid: 1,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: 42,\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\titem.downvote.Set(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\", struct{}{})\n\titem.upvote.Set(\"g1w4ek2u33ta047h6lta047h6lta047h6ldvdwpn\", struct{}{})\n\titem.upvote.Set(\"g1w4ek2u3jta047h6lta047h6lta047h6l9huexc\", struct{}{})\n\n\tr := record{\u0026item}\n\n\tuassert.Equal(t, \"0000001\", r.ID())\n\tuassert.Equal(t, pkgpath, r.String())\n\n\tfields, _ := r.Fields()\n\tdetails, found := fields.Get(\"details\")\n\turequire.True(t, found, \"details field\")\n\tuassert.Equal(t, \"Votes: ⏶ 2 - ⏷ 1\", details)\n\n\tcontent, _ := r.Content()\n\twantContent := \"# Submission #1\\n\\n\\n```\\ngno.land/r/demo/test\\n```\\n\\nby demo\\n\\n\" +\n\t\t\"[View realm](/r/demo/test)\\n\\nSubmitted at Block #42\\n\\n\" +\n\t\t\"#### [2👍](/r/leon/hof$help\u0026func=Upvote\u0026pkgpath=gno.land/r/demo/test) - \" +\n\t\t\"[1👎](/r/leon/hof$help\u0026func=Downvote\u0026pkgpath=gno.land/r/demo/test)\\n\\n\"\n\tuassert.Equal(t, wantContent, content)\n}\n"},{"name":"errors.gno","body":"package hof\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrNoSuchItem = errors.New(\"hof: no such item exists\")\n\tErrDoubleUpvote = errors.New(\"hof: cannot upvote twice\")\n\tErrDoubleDownvote = errors.New(\"hof: cannot downvote twice\")\n)\n"},{"name":"hof.gno","body":"// Package hof is the hall of fame realm.\n// The Hall of Fame is an exhibition that holds items. Users can add their realms to the Hall of Fame by\n// importing the Hall of Fame realm and calling hof.Register() from their init function.\npackage hof\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/pausable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nvar (\n\texhibition *Exhibition\n\n\t// Safe objects\n\tOwnable *ownable.Ownable\n\tPausable *pausable.Pausable\n)\n\ntype (\n\tExhibition struct {\n\t\titemCounter seqid.ID\n\t\tdescription string\n\t\titems *avl.Tree // pkgPath \u003e Item\n\t\titemsSorted *avl.Tree // same data but sorted, storing pointers\n\t}\n\n\tItem struct {\n\t\tid seqid.ID\n\t\tpkgpath string\n\t\tblockNum int64\n\t\tupvote *avl.Tree // std.Addr \u003e struct{}{}\n\t\tdownvote *avl.Tree // std.Addr \u003e struct{}{}\n\t}\n)\n\nfunc init() {\n\texhibition = \u0026Exhibition{\n\t\titems: avl.NewTree(),\n\t\titemsSorted: avl.NewTree(),\n\t}\n\n\tOwnable = ownable.NewWithAddress(std.Address(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\"))\n\tPausable = pausable.NewFromOwnable(Ownable)\n}\n\n// Register registers your realm to the Hall of Fame\n// Should be called from within code\nfunc Register() {\n\tif Pausable.IsPaused() {\n\t\treturn\n\t}\n\n\tsubmission := std.PrevRealm()\n\tpkgpath := submission.PkgPath()\n\n\t// Must be called from code\n\tif submission.IsUser() {\n\t\treturn\n\t}\n\n\t// Must not yet exist\n\tif exhibition.items.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tid := exhibition.itemCounter.Next()\n\ti := \u0026Item{\n\t\tid: id,\n\t\tpkgpath: pkgpath,\n\t\tblockNum: std.GetHeight(),\n\t\tupvote: avl.NewTree(),\n\t\tdownvote: avl.NewTree(),\n\t}\n\n\texhibition.items.Set(pkgpath, i)\n\texhibition.itemsSorted.Set(id.String(), i)\n\n\tstd.Emit(\"Registration\")\n}\n\nfunc Upvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.upvote.Has(caller) {\n\t\tpanic(ErrDoubleUpvote.Error())\n\t}\n\n\titem.upvote.Set(caller, struct{}{})\n}\n\nfunc Downvote(pkgpath string) {\n\trawItem, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\titem := rawItem.(*Item)\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif item.downvote.Has(caller) {\n\t\tpanic(ErrDoubleDownvote.Error())\n\t}\n\n\titem.downvote.Set(caller, struct{}{})\n}\n\nfunc Delete(pkgpath string) {\n\tif !Ownable.CallerIsOwner() {\n\t\tpanic(ownable.ErrUnauthorized.Error())\n\t}\n\n\ti, ok := exhibition.items.Get(pkgpath)\n\tif !ok {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.itemsSorted.Remove(i.(*Item).id.String()); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n\n\tif _, removed := exhibition.items.Remove(pkgpath); !removed {\n\t\tpanic(ErrNoSuchItem.Error())\n\t}\n}\n"},{"name":"hof_test.gno","body":"package hof\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nconst rlmPath = \"gno.land/r/gnoland/home\"\n\nvar (\n\tadmin = Ownable.Owner()\n\tadminRealm = std.NewUserRealm(admin)\n\talice = testutils.TestAddress(\"alice\")\n)\n\nfunc TestRegister(t *testing.T) {\n\t// Test user realm register\n\taliceRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(aliceRealm)\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Test register while paused\n\tstd.TestSetRealm(adminRealm)\n\tPausable.Pause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\n\tRegister()\n\tuassert.False(t, itemExists(t, rlmPath))\n\n\t// Unpause\n\tstd.TestSetRealm(adminRealm)\n\tPausable.Unpause()\n\n\t// Set legitimate caller\n\tstd.TestSetRealm(std.NewCodeRealm(rlmPath))\n\tRegister()\n\n\t// Find registered items\n\tuassert.True(t, itemExists(t, rlmPath))\n}\n\nfunc TestUpvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 upvotes by default\n\turequire.Equal(t, item.upvote.Size(), 0)\n\n\tstd.TestSetRealm(adminRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tUpvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.upvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.upvote.Size(), 1)\n\n\t// Check double upvote\n\tuassert.PanicsWithMessage(t, ErrDoubleUpvote.Error(), func() {\n\t\tUpvote(rlmPath)\n\t})\n}\n\nfunc TestDownvote(t *testing.T) {\n\traw, _ := exhibition.items.Get(rlmPath)\n\titem := raw.(*Item)\n\n\trawSorted, _ := exhibition.itemsSorted.Get(item.id.String())\n\titemSorted := rawSorted.(*Item)\n\n\t// 0 downvotes by default\n\turequire.Equal(t, item.downvote.Size(), 0)\n\n\tuserRealm := std.NewUserRealm(alice)\n\tstd.TestSetRealm(userRealm)\n\n\turequire.NotPanics(t, func() {\n\t\tDownvote(rlmPath)\n\t})\n\n\t// Check both trees for 1 upvote\n\tuassert.Equal(t, item.downvote.Size(), 1)\n\tuassert.Equal(t, itemSorted.downvote.Size(), 1)\n\n\t// Check double downvote\n\tuassert.PanicsWithMessage(t, ErrDoubleDownvote.Error(), func() {\n\t\tDownvote(rlmPath)\n\t})\n}\n\nfunc TestDelete(t *testing.T) {\n\tuserRealm := std.NewUserRealm(admin)\n\tstd.TestSetRealm(userRealm)\n\tstd.TestSetOrigCaller(admin)\n\n\tuassert.PanicsWithMessage(t, ErrNoSuchItem.Error(), func() {\n\t\tDelete(\"nonexistentpkgpath\")\n\t})\n\n\ti, _ := exhibition.items.Get(rlmPath)\n\tid := i.(*Item).id\n\n\tuassert.NotPanics(t, func() {\n\t\tDelete(rlmPath)\n\t})\n\n\tuassert.False(t, exhibition.items.Has(rlmPath))\n\tuassert.False(t, exhibition.itemsSorted.Has(id.String()))\n}\n\nfunc itemExists(t *testing.T, rlmPath string) bool {\n\tt.Helper()\n\n\ti, ok1 := exhibition.items.Get(rlmPath)\n\tok2 := false\n\n\tif ok1 {\n\t\t_, ok2 = exhibition.itemsSorted.Get(i.(*Item).id.String())\n\t}\n\n\treturn ok1 \u0026\u0026 ok2\n}\n"},{"name":"render.gno","body":"package hof\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/fqname\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst (\n\tpageSize = 5\n)\n\nfunc Render(path string) string {\n\tout := \"# Hall of Fame\\n\\n\"\n\n\tdashboardEnabled := path == \"dashboard\"\n\n\tif dashboardEnabled {\n\t\tout += renderDashboard()\n\t}\n\n\tout += exhibition.Render(path, dashboardEnabled)\n\n\treturn out\n}\n\nfunc (e Exhibition) Render(path string, dashboard bool) string {\n\tout := ufmt.Sprintf(\"%s\\n\\n\", e.description)\n\n\tif e.items.Size() == 0 {\n\t\tout += \"No items in this exhibition currently.\\n\\n\"\n\t\treturn out\n\t}\n\n\tout += \"\u003cdiv class='columns-2'\u003e\\n\\n\"\n\n\tpage := pager.NewPager(e.itemsSorted, pageSize, false).MustGetPageByPath(path)\n\n\tfor i := len(page.Items) - 1; i \u003e= 0; i-- {\n\t\titem := page.Items[i]\n\n\t\tout += \"\u003cdiv\u003e\\n\\n\"\n\t\tid, _ := seqid.FromString(item.Key)\n\t\tout += ufmt.Sprintf(\"### Submission #%d\\n\\n\", int(id))\n\t\tout += item.Value.(*Item).Render(dashboard)\n\t\tout += \"\u003c/div\u003e\"\n\t}\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-2 --\u003e\\n\\n\"\n\n\tout += page.Picker()\n\n\treturn out\n}\n\nfunc (i Item) Render(dashboard bool) string {\n\tout := ufmt.Sprintf(\"\\n```\\n%s\\n```\\n\\n\", i.pkgpath)\n\tout += ufmt.Sprintf(\"by %s\\n\\n\", strings.Split(i.pkgpath, \"/\")[2])\n\tout += ufmt.Sprintf(\"[View realm](%s)\\n\\n\", strings.TrimPrefix(i.pkgpath, \"gno.land\")) // gno.land/r/leon/home \u003e /r/leon/home\n\tout += ufmt.Sprintf(\"Submitted at Block #%d\\n\\n\", i.blockNum)\n\n\tout += ufmt.Sprintf(\"#### [%d👍](%s) - [%d👎](%s)\\n\\n\",\n\t\ti.upvote.Size(), txlink.Call(\"Upvote\", \"pkgpath\", i.pkgpath),\n\t\ti.downvote.Size(), txlink.Call(\"Downvote\", \"pkgpath\", i.pkgpath),\n\t)\n\n\tif dashboard {\n\t\tout += ufmt.Sprintf(\"[Delete](%s)\", txlink.Call(\"Delete\", \"pkgpath\", i.pkgpath))\n\t}\n\n\treturn out\n}\n\nfunc renderDashboard() string {\n\tout := \"---\\n\\n\"\n\tout += \"## Dashboard\\n\\n\"\n\tout += ufmt.Sprintf(\"Total submissions: %d\\n\\n\", exhibition.items.Size())\n\n\tout += ufmt.Sprintf(\"Exhibition admin: %s\\n\\n\", Ownable.Owner().String())\n\n\tif !Pausable.IsPaused() {\n\t\tout += ufmt.Sprintf(\"[Pause exhibition](%s)\\n\\n\", txlink.Call(\"Pause\"))\n\t} else {\n\t\tout += ufmt.Sprintf(\"[Unpause exhibition](%s)\\n\\n\", txlink.Call(\"Unpause\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\n\treturn out\n}\n\nfunc RenderExhibWidget(itemsToRender int) string {\n\tif itemsToRender \u003c 1 {\n\t\treturn \"\"\n\t}\n\n\tout := \"\"\n\ti := 0\n\texhibition.items.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\titem := value.(*Item)\n\n\t\tout += ufmt.Sprintf(\"- %s\\n\", fqname.RenderLink(item.pkgpath, \"\"))\n\n\t\ti++\n\t\treturn i \u003e= itemsToRender\n\t})\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BNZf2dRMKl4OkQ3OSROq1AQS87v27lCZsPAke8+AeMg3HZdPq/d4WcMPefRZl8Lj2DDcAOVVGNAQiVXz1IXADg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/gnoland/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/ui\"\n\tblog \"gno.land/r/gnoland/blog\"\n\tevents \"gno.land/r/gnoland/events\"\n\t\"gno.land/r/leon/hof\"\n)\n\n// XXX: p/demo/ui API is crappy, we need to make it more idiomatic\n// XXX: use an updatable block system to update content from a DAO\n// XXX: var blocks avl.Tree\n\nvar (\n\toverride string\n\tadmin = ownable.NewWithAddress(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\") // @moul\n)\n\nfunc Render(_ string) string {\n\tif override != \"\" {\n\t\treturn override\n\t}\n\n\tdom := ui.DOM{Prefix: \"r/gnoland/home:\"}\n\tdom.Title = \"Welcome to gno.land\"\n\tdom.Classes = []string{\"gno-tmpl-section\"}\n\n\t// body\n\tdom.Body.Append(introSection()...)\n\n\tdom.Body.Append(ui.Jumbotron(discoverLinks()))\n\n\tdom.Body.Append(\n\t\tui.Columns{3, []ui.Element{\n\t\t\tlastBlogposts(4),\n\t\t\tupcomingEvents(),\n\t\t\tlatestHOFItems(5),\n\t\t}},\n\t)\n\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(playgroundSection()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(packageStaffPicks()...)\n\tdom.Body.Append(ui.HR{})\n\tdom.Body.Append(worxDAO()...)\n\tdom.Body.Append(ui.HR{})\n\t// footer\n\tdom.Footer.Append(\n\t\tui.Columns{2, []ui.Element{\n\t\t\tsocialLinks(),\n\t\t\tquoteOfTheBlock(),\n\t\t}},\n\t)\n\n\t// Testnet disclaimer\n\tdom.Footer.Append(\n\t\tui.HR{},\n\t\tui.Bold(\"This is a testnet.\"),\n\t\tui.Text(\"Package names are not guaranteed to be available for production.\"),\n\t)\n\n\treturn dom.String()\n}\n\nfunc lastBlogposts(limit int) ui.Element {\n\tposts := blog.RenderLastPostsWidget(limit)\n\treturn ui.Element{\n\t\tui.H2(\"[Latest Blogposts](/r/gnoland/blog)\"),\n\t\tui.Text(posts),\n\t}\n}\n\nfunc lastContributions(limit int) ui.Element {\n\treturn ui.Element{\n\t\tui.H2(\"Latest Contributions\"),\n\t\t// TODO: import r/gh to\n\t\tui.Link{Text: \"View latest contributions\", URL: \"https://github.com/gnolang/gno/pulls\"},\n\t}\n}\n\nfunc upcomingEvents() ui.Element {\n\tout, _ := events.RenderEventWidget(events.MaxWidgetSize)\n\treturn ui.Element{\n\t\tui.H2(\"[Latest Events](/r/gnoland/events)\"),\n\t\tui.Text(out),\n\t}\n}\n\nfunc latestHOFItems(num int) ui.Element {\n\tsubmissions := hof.RenderExhibWidget(num)\n\n\treturn ui.Element{\n\t\tui.H2(\"[Hall of Fame](/r/leon/hof)\"),\n\t\tui.Text(submissions),\n\t}\n}\n\nfunc introSection() ui.Element {\n\treturn ui.Element{\n\t\tui.Text(\"**We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.**\"),\n\t\tui.Paragraph(\"With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\"),\n\t\tui.Paragraph(\"Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\"),\n\t}\n}\n\nfunc worxDAO() ui.Element {\n\t// WorxDAO\n\t// XXX(manfred): please, let me finish a v0, then we can iterate\n\t// highest level == highest responsibility\n\t// teams are responsible for components they don't owne\n\t// flag : realm maintainers VS facilitators\n\t// teams\n\t// committee of trustees to create the directory\n\t// each directory is a name, has a parent and have groups\n\t// homepage team - blocks aggregating events\n\t// XXX: TODO\n\t/*`\n\t# Directory\n\n\t* gno.land (owned by group)\n\t *\n\t* gnovm\n\t * gnolang (language)\n\t * gnovm\n\t - current challenges / concerns / issues\n\t* tm2\n\t * amino\n\t *\n\n\t## Contributors\n\t``*/\n\treturn ui.Element{\n\t\tui.H2(\"Contributions (WorxDAO \u0026 GoR)\"),\n\t\t// TODO: GoR dashboard + WorxDAO topics\n\t\tui.Text(`coming soon`),\n\t}\n}\n\nfunc quoteOfTheBlock() ui.Element {\n\tquotes := []string{\n\t\t\"Gno is for Truth.\",\n\t\t\"Gno is for Social Coordination.\",\n\t\t\"Gno is _not only_ for DeFi.\",\n\t\t\"Now, you Gno.\",\n\t\t\"Come for the Go, Stay for the Gno.\",\n\t}\n\theight := std.GetHeight()\n\tidx := int(height) % len(quotes)\n\tqotb := quotes[idx]\n\n\treturn ui.Element{\n\t\tui.H2(ufmt.Sprintf(\"Quote of the ~Day~ Block#%d\", height)),\n\t\tui.Quote(qotb),\n\t}\n}\n\nfunc socialLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.H2(\"Socials\"),\n\t\tui.BulletList{\n\t\t\t// XXX: improve UI to support a nice GO api for such links\n\t\t\tui.Text(\"Check out our [community projects](https://github.com/gnolang/awesome-gno)\"),\n\t\t\tui.Text(\"[Discord](https://discord.gg/S8nKUqwkPn)\"),\n\t\t\tui.Text(\"[Twitter](https://twitter.com/_gnoland)\"),\n\t\t\tui.Text(\"[Youtube](https://www.youtube.com/@_gnoland)\"),\n\t\t\tui.Text(\"[Telegram](https://t.me/gnoland)\"),\n\t\t},\n\t}\n}\n\nfunc playgroundSection() ui.Element {\n\treturn ui.Element{\n\t\tui.H2(\"[Gno Playground](https://play.gno.land)\"),\n\t\tui.Paragraph(`Gno Playground is a web application designed for building, running, testing, and interacting\nwith your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\nexecute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.`),\n\t\tui.Paragraph(\"Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\"),\n\t}\n}\n\nfunc packageStaffPicks() ui.Element {\n\t// XXX: make it modifiable from a DAO\n\treturn ui.Element{\n\t\tui.H2(\"Explore New Packages and Realms\"),\n\t\tui.Columns{\n\t\t\t3,\n\t\t\t[]ui.Element{\n\t\t\t\t{\n\t\t\t\t\tui.H3(\"[r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/dao\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/faucet\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/home\"},\n\t\t\t\t\t\tui.Link{URL: \"r/gnoland/pages\"},\n\t\t\t\t\t},\n\t\t\t\t\tui.H3(\"[r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/sys/names\"},\n\t\t\t\t\t\tui.Link{URL: \"r/sys/rewards\"},\n\t\t\t\t\t\tui.Link{URL: \"/r/sys/validators/v2\"},\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H3(\"[r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"r/demo/boards\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/users\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/banktest\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo20\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/foo721\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/microblog\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/nft\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/types\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/gnoface\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/art/millipede\"},\n\t\t\t\t\t\tui.Link{URL: \"r/demo/groups\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t}, {\n\t\t\t\t\tui.H3(\"[p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\"),\n\t\t\t\t\tui.BulletList{\n\t\t\t\t\t\tui.Link{URL: \"p/demo/avl\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/blog\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ui\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/ufmt\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/merkle\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/bf\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/flow\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/gnode\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc20\"},\n\t\t\t\t\t\tui.Link{URL: \"p/demo/grc/grc721\"},\n\t\t\t\t\t\tui.Text(\"...\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc discoverLinks() ui.Element {\n\treturn ui.Element{\n\t\tui.Text(`\u003cdiv class=\"columns-3\"\u003e\n\u003cdiv class=\"column\"\u003e\n\n## Learn about gno.land\n\n- [About](/about)\n- [GitHub](https://github.com/gnolang)\n- [Blog](/blog)\n- [Events](/events)\n- Tokenomics (soon)\n- [Partners, Fund, Grants](/partners)\n- [Explore the Ecosystem](/ecosystem)\n- [Careers](https://jobs.ashbyhq.com/allinbits)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\n\u003cdiv class=\"column\"\u003e\n\n## Build with Gno\n\n- [Write Gno in the browser](https://play.gno.land)\n- [Read about the Gno Language](/gnolang)\n- [Visit the official documentation](https://docs.gno.land)\n- [Gno by Example](https://gno-by-example.com/)\n- [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n- [Get testnet GNOTs](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003cdiv class=\"column\"\u003e\n\n## Explore the universe\n\n- [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n- [Gnoscan](https://gnoscan.io)\n- [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n- [Testnet 4](https://test4.gno.land/)\n- [Faucet Hub](https://faucet.gno.land)\n\n\u003c/div\u003e\u003c!-- end column--\u003e\n\u003c/div\u003e\u003c!-- end columns-3--\u003e`),\n\t}\n}\n\nfunc AdminSetOverride(content string) {\n\tadmin.AssertCallerIsOwner()\n\toverride = content\n}\n\nfunc AdminTransferOwnership(newAdmin std.Address) {\n\tadmin.AssertCallerIsOwner()\n\tadmin.TransferOwnership(newAdmin)\n}\n"},{"name":"home_filetest.gno","body":"package main\n\nimport \"gno.land/r/gnoland/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// \u003cmain class='gno-tmpl-section'\u003e\n//\n// # Welcome to gno.land\n//\n// **We’re building gno.land, set to become the leading open-source smart contract platform, using Gno, an interpreted and fully deterministic variation of the Go programming language for succinct and composable smart contracts.**\n//\n// With transparent and timeless code, gno.land is the next generation of smart contract platforms, serving as the “GitHub” of the ecosystem, with realms built using fully transparent, auditable code that anyone can inspect and reuse.\n//\n//\n// Intuitive and easy to use, gno.land lowers the barrier to web3 and makes censorship-resistant platforms accessible to everyone. If you want to help lay the foundations of a fairer and freer world, join us today.\n//\n// \u003cdiv class=\"jumbotron\"\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## Learn about gno.land\n//\n// - [About](/about)\n// - [GitHub](https://github.com/gnolang)\n// - [Blog](/blog)\n// - [Events](/events)\n// - Tokenomics (soon)\n// - [Partners, Fund, Grants](/partners)\n// - [Explore the Ecosystem](/ecosystem)\n// - [Careers](https://jobs.ashbyhq.com/allinbits)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n//\n// \u003cdiv class=\"column\"\u003e\n//\n// ## Build with Gno\n//\n// - [Write Gno in the browser](https://play.gno.land)\n// - [Read about the Gno Language](/gnolang)\n// - [Visit the official documentation](https://docs.gno.land)\n// - [Gno by Example](https://gno-by-example.com/)\n// - [Efficient local development for Gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnodev)\n// - [Get testnet GNOTs](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## Explore the universe\n//\n// - [Discover demo packages](https://github.com/gnolang/gno/tree/master/examples)\n// - [Gnoscan](https://gnoscan.io)\n// - [Portal Loop](https://docs.gno.land/concepts/portal-loop)\n// - [Testnet 4](https://test4.gno.land/)\n// - [Faucet Hub](https://faucet.gno.land)\n//\n// \u003c/div\u003e\u003c!-- end column--\u003e\n// \u003c/div\u003e\u003c!-- end columns-3--\u003e\n// \u003c/div\u003e\u003c!-- /jumbotron --\u003e\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## [Latest Blogposts](/r/gnoland/blog)\n//\n// No posts.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## [Latest Events](/r/gnoland/events)\n//\n// No events.\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## [Hall of Fame](/r/leon/hof)\n//\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ## [Gno Playground](https://play.gno.land)\n//\n//\n// Gno Playground is a web application designed for building, running, testing, and interacting\n// with your Gno code, enhancing your understanding of the Gno language. With Gno Playground, you can share your code,\n// execute tests, deploy your realms and packages to gno.land, and explore a multitude of other features.\n//\n//\n// Experience the convenience of code sharing and rapid experimentation with [Gno Playground](https://play.gno.land).\n//\n//\n// ---\n//\n// ## Explore New Packages and Realms\n//\n// \u003cdiv class=\"columns-3\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [r/gnoland](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/gnoland)\n//\n// - [r/gnoland/blog](r/gnoland/blog)\n// - [r/gnoland/dao](r/gnoland/dao)\n// - [r/gnoland/faucet](r/gnoland/faucet)\n// - [r/gnoland/home](r/gnoland/home)\n// - [r/gnoland/pages](r/gnoland/pages)\n//\n// ### [r/sys](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/sys)\n//\n// - [r/sys/names](r/sys/names)\n// - [r/sys/rewards](r/sys/rewards)\n// - [/r/sys/validators/v2](/r/sys/validators/v2)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [r/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo)\n//\n// - [r/demo/boards](r/demo/boards)\n// - [r/demo/users](r/demo/users)\n// - [r/demo/banktest](r/demo/banktest)\n// - [r/demo/foo20](r/demo/foo20)\n// - [r/demo/foo721](r/demo/foo721)\n// - [r/demo/microblog](r/demo/microblog)\n// - [r/demo/nft](r/demo/nft)\n// - [r/demo/types](r/demo/types)\n// - [r/demo/art/gnoface](r/demo/art/gnoface)\n// - [r/demo/art/millipede](r/demo/art/millipede)\n// - [r/demo/groups](r/demo/groups)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ### [p/demo](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/demo)\n//\n// - [p/demo/avl](p/demo/avl)\n// - [p/demo/blog](p/demo/blog)\n// - [p/demo/ui](p/demo/ui)\n// - [p/demo/ufmt](p/demo/ufmt)\n// - [p/demo/merkle](p/demo/merkle)\n// - [p/demo/bf](p/demo/bf)\n// - [p/demo/flow](p/demo/flow)\n// - [p/demo/gnode](p/demo/gnode)\n// - [p/demo/grc/grc20](p/demo/grc/grc20)\n// - [p/demo/grc/grc721](p/demo/grc/grc721)\n// - ...\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-3 --\u003e\n//\n//\n// ---\n//\n// ## Contributions (WorxDAO \u0026 GoR)\n//\n// coming soon\n//\n// ---\n//\n//\n// \u003cdiv class=\"columns-2\"\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## Socials\n//\n// - Check out our [community projects](https://github.com/gnolang/awesome-gno)\n// - [Discord](https://discord.gg/S8nKUqwkPn)\n// - [Twitter](https://twitter.com/_gnoland)\n// - [Youtube](https://www.youtube.com/@_gnoland)\n// - [Telegram](https://t.me/gnoland)\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003cdiv class=\"column\"\u003e\n//\n// ## Quote of the ~Day~ Block#123\n//\n// \u003e Now, you Gno.\n//\n// \u003c/div\u003e\u003c!-- /column--\u003e\n// \u003c/div\u003e\u003c!-- /columns-2 --\u003e\n//\n//\n// ---\n//\n// **This is a testnet.**\n// Package names are not guaranteed to be available for production.\n//\n// \u003c/main\u003e\n"},{"name":"overide_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/gnoland/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AdminSetOverride(\"Hello World!\")\n\tprintln(home.Render(\"\"))\n\thome.AdminTransferOwnership(testutils.TestAddress(\"newAdmin\"))\n\tdefer func() {\n\t\tr := recover()\n\t\tprintln(\"r: \", r)\n\t}()\n\thome.AdminSetOverride(\"Not admin anymore\")\n}\n\n// Output:\n// Hello World!\n// r: ownable: caller is not owner\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rM3hWPT5cTlMkog9If9UaCFlaKykxGOwY0IzRitGL9OHqeja1asBfL7N9bwkH7MW3CeQ2zmlwOaXhQiQXxerAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/leon/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n\n\t\"gno.land/r/demo/art/gnoface\"\n\t\"gno.land/r/demo/art/millipede\"\n\t\"gno.land/r/demo/mirror\"\n\t\"gno.land/r/leon/config\"\n\t\"gno.land/r/leon/hof\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe [2]string\n)\n\nfunc init() {\n\tpfp = \"https://i.imgflip.com/91vskx.jpg\"\n\tpfpCaption = \"[My favourite painting \u0026 pfp](https://en.wikipedia.org/wiki/Wanderer_above_the_Sea_of_Fog)\"\n\tabtMe = [2]string{\n\t\t`### About me\nHi, I'm Leon, a DevRel Engineer at gno.land. I am a tech enthusiast, \nlife-long learner, and sharer of knowledge.`,\n\t\t`### Contributions\nMy contributions to gno.land can mainly be found \n[here](https://github.com/gnolang/gno/issues?q=sort:updated-desc+author:leohhhn).\n\nTODO import r/gh\n`,\n\t}\n\n\thof.Register()\n\tmirror.Register(std.CurrentRealm().PkgPath(), Render)\n}\n\nfunc UpdatePFP(url, caption string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tabtMe[0] = col1\n\tabtMe[1] = col2\n}\n\nfunc Render(path string) string {\n\tout := \"# Leon's Homepage\\n\\n\"\n\n\tout += renderAboutMe()\n\tout += renderBlogPosts()\n\tout += \"\\n\\n\"\n\tout += renderArt()\n\n\treturn out\n}\n\nfunc renderBlogPosts() string {\n\tout := \"\"\n\t//out += \"## Leon's Blog Posts\"\n\n\t// todo fetch blog posts authored by @leohhhn\n\t// and render them\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += ufmt.Sprintf(\"![my profile pic](%s)\\n\\n%s\\n\\n\", pfp, pfpCaption)\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += abtMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderArt() string {\n\tout := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tout += \"# Gno Art\\n\\n\"\n\n\tout += \"\u003cdiv class='columns-3'\u003e\"\n\n\tout += renderGnoFace()\n\tout += renderMillipede()\n\tout += \"Empty spot :/\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /columns-3 --\u003e\\n\\n\"\n\n\tout += \"This art is dynamic; it will change with every new block.\\n\\n\"\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc renderGnoFace() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += gnoface.Render(strconv.Itoa(int(std.GetHeight())))\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderMillipede() string {\n\tout := \"\u003cdiv\u003e\\n\\n\"\n\tout += \"Millipede\\n\\n\"\n\tout += \"```\\n\" + millipede.Draw(int(std.GetHeight())%10+1) + \"```\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc isAuthorized(addr std.Address) bool {\n\treturn addr == config.Address() || addr == config.Backup()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7zaek5OkDHvKKKNh/hpT1MkkRjU/OmfbJzjMioKG0q5QoEXcIX24wPvwq+uWRBot647OYyl5t9OImKwl/p7kDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/manfred/home","files":[{"name":"home.gno","body":"package home\n\nfunc Render(path string) string {\n\treturn \"Moved to r/moul\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vzhCy2383+s3niDXTflXRMU/X1ypU8EdzkKxpWbMWYr6U4SRlVzgRrqvQVQT23NUlCv3HikxZ8ioO162hWOlAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/matijamarjanovic/home","files":[{"name":"config.gno","body":"package home\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmainAddr = std.Address(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\") // matija's main address\n\tbackupAddr std.Address // backup address\n\n\terrorInvalidAddr = errors.New(\"config: invalid address\")\n\terrorUnauthorized = errors.New(\"config: unauthorized\")\n)\n\nfunc Address() std.Address {\n\treturn mainAddr\n}\n\nfunc Backup() std.Address {\n\treturn backupAddr\n}\n\nfunc SetAddress(newAddress std.Address) error {\n\tif !newAddress.IsValid() {\n\t\treturn errorInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmainAddr = newAddress\n\treturn nil\n}\n\nfunc SetBackup(newAddress std.Address) error {\n\tif !newAddress.IsValid() {\n\t\treturn errorInvalidAddr\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tbackupAddr = newAddress\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.GetOrigCaller()\n\tif caller != mainAddr \u0026\u0026 caller != backupAddr {\n\t\treturn errorUnauthorized\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.GetOrigCaller()\n\tif caller != mainAddr \u0026\u0026 caller != backupAddr {\n\t\tpanic(errorUnauthorized)\n\t}\n}\n"},{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/md\"\n\t\"gno.land/r/leon/hof\"\n)\n\nvar (\n\tpfp string // link to profile picture\n\tpfpCaption string // profile picture caption\n\tabtMe string\n\n\tmodernVotes int64\n\tclassicVotes int64\n\tminimalVotes int64\n\tcurrentTheme string\n\n\tmodernLink string\n\tclassicLink string\n\tminimalLink string\n)\n\nfunc init() {\n\tpfp = \"https://static.artzone.ai/media/38734/conversions/IPF9dR7ro7n05CmMLLrXIojycr1qdLFxgutaaanG-w768.webp\"\n\tpfpCaption = \"My profile picture - Tarantula Nebula\"\n\tabtMe = `Motivated Computer Science student with strong\n analytical and problem-solving skills. Proficient in\n programming and version control, with a high level of\n focus and attention to detail. Eager to apply academic\n knowledge to real-world projects and contribute to\n innovative technology solutions.\n In addition to my academic pursuits,\n I enjoy traveling and staying active through weightlifting.\n I have a keen interest in electronic music and often explore various genres.\n I believe in maintaining a balanced lifestyle that complements my professional development.`\n\n\tmodernVotes = 0\n\tclassicVotes = 0\n\tminimalVotes = 0\n\tcurrentTheme = \"classic\"\n\tmodernLink = \"https://www.google.com\"\n\tclassicLink = \"https://www.google.com\"\n\tminimalLink = \"https://www.google.com\"\n\thof.Register()\n}\n\nfunc UpdatePFP(url, caption string) {\n\tAssertAuthorized()\n\tpfp = url\n\tpfpCaption = caption\n}\n\nfunc UpdateAboutMe(col1 string) {\n\tAssertAuthorized()\n\tabtMe = col1\n}\n\nfunc maxOfThree(a, b, c int64) int64 {\n\tmax := a\n\tif b \u003e max {\n\t\tmax = b\n\t}\n\tif c \u003e max {\n\t\tmax = c\n\t}\n\treturn max\n}\n\nfunc VoteModern() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\tvotes := ugnotAmount\n\tmodernVotes += votes\n\tupdateCurrentTheme()\n}\n\nfunc VoteClassic() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\tvotes := ugnotAmount\n\tclassicVotes += votes\n\tupdateCurrentTheme()\n}\n\nfunc VoteMinimal() {\n\tugnotAmount := std.GetOrigSend().AmountOf(\"ugnot\")\n\tvotes := ugnotAmount\n\tminimalVotes += votes\n\tupdateCurrentTheme()\n}\n\nfunc updateCurrentTheme() {\n\tmaxVotes := maxOfThree(modernVotes, classicVotes, minimalVotes)\n\n\tif maxVotes == modernVotes {\n\t\tcurrentTheme = \"modern\"\n\t} else if maxVotes == classicVotes {\n\t\tcurrentTheme = \"classic\"\n\t} else {\n\t\tcurrentTheme = \"minimal\"\n\t}\n}\n\nfunc CollectBalance() {\n\tAssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\townerAddr := Address()\n\n\tbanker.SendCoins(std.CurrentRealm().Addr(), ownerAddr, banker.GetCoins(std.CurrentRealm().Addr()))\n}\n\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\n\t// Theme-specific header styling\n\tswitch currentTheme {\n\tcase \"modern\":\n\t\t// Modern theme - Clean and minimalist with emojis\n\t\tsb.WriteString(md.H1(\"🚀 Matija's Space\"))\n\t\tsb.WriteString(md.Image(pfpCaption, pfp))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.Italic(pfpCaption))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.HorizontalRule())\n\t\tsb.WriteString(abtMe)\n\t\tsb.WriteString(\"\\n\")\n\n\tcase \"minimal\":\n\t\t// Minimal theme - No emojis, minimal formatting\n\t\tsb.WriteString(md.H1(\"Matija Marjanovic\"))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(abtMe)\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.Image(pfpCaption, pfp))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(pfpCaption)\n\t\tsb.WriteString(\"\\n\")\n\n\tdefault: // classic\n\t\t// Classic theme - Traditional blog style with decorative elements\n\t\tsb.WriteString(md.H1(\"✨ Welcome to Matija's Homepage ✨\"))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.Image(pfpCaption, pfp))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(pfpCaption)\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.HorizontalRule())\n\t\tsb.WriteString(md.H2(\"About me\"))\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(abtMe)\n\t\tsb.WriteString(\"\\n\")\n\t}\n\n\t// Theme-specific voting section\n\tswitch currentTheme {\n\tcase \"modern\":\n\t\tsb.WriteString(md.HorizontalRule())\n\t\tsb.WriteString(md.H2(\"🎨 Theme Selector\"))\n\t\tsb.WriteString(\"Choose your preferred viewing experience:\\n\")\n\t\titems := []string{\n\t\t\tmd.Link(ufmt.Sprintf(\"Modern Design (%d votes)\", modernVotes), modernLink),\n\t\t\tmd.Link(ufmt.Sprintf(\"Classic Style (%d votes)\", classicVotes), classicLink),\n\t\t\tmd.Link(ufmt.Sprintf(\"Minimal Look (%d votes)\", minimalVotes), minimalLink),\n\t\t}\n\t\tsb.WriteString(md.BulletList(items))\n\n\tcase \"minimal\":\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.H3(\"Theme Selection\"))\n\t\tsb.WriteString(ufmt.Sprintf(\"Current theme: %s\\n\", currentTheme))\n\t\tsb.WriteString(ufmt.Sprintf(\"Votes - Modern: %d | Classic: %d | Minimal: %d\\n\",\n\t\t\tmodernVotes, classicVotes, minimalVotes))\n\t\tsb.WriteString(md.Link(\"Modern\", modernLink))\n\t\tsb.WriteString(\" | \")\n\t\tsb.WriteString(md.Link(\"Classic\", classicLink))\n\t\tsb.WriteString(\" | \")\n\t\tsb.WriteString(md.Link(\"Minimal\", minimalLink))\n\t\tsb.WriteString(\"\\n\")\n\n\tdefault: // classic\n\t\tsb.WriteString(md.HorizontalRule())\n\t\tsb.WriteString(md.H2(\"✨ Theme Customization ✨\"))\n\t\tsb.WriteString(md.Bold(\"Choose Your Preferred Theme:\"))\n\t\tsb.WriteString(\"\\n\\n\")\n\t\titems := []string{\n\t\t\tufmt.Sprintf(\"Modern 🚀 (%d votes) - %s\", modernVotes, md.Link(\"Vote\", modernLink)),\n\t\t\tufmt.Sprintf(\"Classic ✨ (%d votes) - %s\", classicVotes, md.Link(\"Vote\", classicLink)),\n\t\t\tufmt.Sprintf(\"Minimal ⚡ (%d votes) - %s\", minimalVotes, md.Link(\"Vote\", minimalLink)),\n\t\t}\n\t\tsb.WriteString(md.BulletList(items))\n\t}\n\n\t// Theme-specific footer/links section\n\tswitch currentTheme {\n\tcase \"modern\":\n\t\tsb.WriteString(md.HorizontalRule())\n\t\tsb.WriteString(md.Link(\"GitHub\", \"https://github.com/matijamarjanovic\"))\n\t\tsb.WriteString(\" | \")\n\t\tsb.WriteString(md.Link(\"LinkedIn\", \"https://www.linkedin.com/in/matijamarjanovic\"))\n\t\tsb.WriteString(\"\\n\")\n\n\tcase \"minimal\":\n\t\tsb.WriteString(\"\\n\")\n\t\tsb.WriteString(md.Link(\"GitHub\", \"https://github.com/matijamarjanovic\"))\n\t\tsb.WriteString(\" | \")\n\t\tsb.WriteString(md.Link(\"LinkedIn\", \"https://www.linkedin.com/in/matijamarjanovic\"))\n\t\tsb.WriteString(\"\\n\")\n\n\tdefault: // classic\n\t\tsb.WriteString(md.HorizontalRule())\n\t\tsb.WriteString(md.H3(\"✨ Connect With Me\"))\n\t\titems := []string{\n\t\t\tmd.Link(\"🌟 GitHub\", \"https://github.com/matijamarjanovic\"),\n\t\t\tmd.Link(\"💼 LinkedIn\", \"https://www.linkedin.com/in/matijamarjanovic\"),\n\t\t}\n\t\tsb.WriteString(md.BulletList(items))\n\t}\n\n\treturn sb.String()\n}\n\nfunc UpdateModernLink(link string) {\n\tAssertAuthorized()\n\tmodernLink = link\n}\n\nfunc UpdateClassicLink(link string) {\n\tAssertAuthorized()\n\tclassicLink = link\n}\n\nfunc UpdateMinimalLink(link string) {\n\tAssertAuthorized()\n\tminimalLink = link\n}\n"},{"name":"home_test.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// Helper function to set up test environment\nfunc setupTest() {\n\tstd.TestSetOrigCaller(std.Address(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\"))\n}\n\nfunc TestUpdatePFP(t *testing.T) {\n\tsetupTest()\n\tpfp = \"\"\n\tpfpCaption = \"\"\n\n\tUpdatePFP(\"https://example.com/pic.png\", \"New Caption\")\n\n\turequire.Equal(t, pfp, \"https://example.com/pic.png\", \"Profile picture URL should be updated\")\n\turequire.Equal(t, pfpCaption, \"New Caption\", \"Profile picture caption should be updated\")\n}\n\nfunc TestUpdateAboutMe(t *testing.T) {\n\tsetupTest()\n\tabtMe = \"\"\n\n\tUpdateAboutMe(\"This is my new bio.\")\n\n\turequire.Equal(t, abtMe, \"This is my new bio.\", \"About Me should be updated\")\n}\n\nfunc TestVoteModern(t *testing.T) {\n\tsetupTest()\n\tmodernVotes, classicVotes, minimalVotes = 0, 0, 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 75000000))\n\tcoinsSpent := std.NewCoins(std.NewCoin(\"ugnot\", 1))\n\n\tstd.TestSetOrigSend(coinsSent, coinsSpent)\n\tVoteModern()\n\n\tuassert.Equal(t, int64(75000000), modernVotes, \"Modern votes should be calculated correctly\")\n\tuassert.Equal(t, \"modern\", currentTheme, \"Theme should be updated to modern\")\n}\n\nfunc TestVoteClassic(t *testing.T) {\n\tsetupTest()\n\tmodernVotes, classicVotes, minimalVotes = 0, 0, 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 75000000))\n\tcoinsSpent := std.NewCoins(std.NewCoin(\"ugnot\", 1))\n\n\tstd.TestSetOrigSend(coinsSent, coinsSpent)\n\tVoteClassic()\n\n\tuassert.Equal(t, int64(75000000), classicVotes, \"Classic votes should be calculated correctly\")\n\tuassert.Equal(t, \"classic\", currentTheme, \"Theme should be updated to classic\")\n}\n\nfunc TestVoteMinimal(t *testing.T) {\n\tsetupTest()\n\tmodernVotes, classicVotes, minimalVotes = 0, 0, 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 75000000))\n\tcoinsSpent := std.NewCoins(std.NewCoin(\"ugnot\", 1))\n\n\tstd.TestSetOrigSend(coinsSent, coinsSpent)\n\tVoteMinimal()\n\n\tuassert.Equal(t, int64(75000000), minimalVotes, \"Minimal votes should be calculated correctly\")\n\tuassert.Equal(t, \"minimal\", currentTheme, \"Theme should be updated to minimal\")\n}\n\nfunc TestRender(t *testing.T) {\n\tsetupTest()\n\t// Reset the state to known values\n\tmodernVotes, classicVotes, minimalVotes = 0, 0, 0\n\tcurrentTheme = \"classic\"\n\tpfp = \"https://example.com/pic.png\"\n\tpfpCaption = \"Test Caption\"\n\tabtMe = \"Test About Me\"\n\n\tout := Render(\"\")\n\turequire.NotEqual(t, out, \"\", \"Render output should not be empty\")\n\n\t// Test classic theme specific content\n\tuassert.True(t, strings.Contains(out, \"✨ Welcome to Matija's Homepage ✨\"), \"Classic theme should have correct header\")\n\tuassert.True(t, strings.Contains(out, pfp), \"Should contain profile picture URL\")\n\tuassert.True(t, strings.Contains(out, pfpCaption), \"Should contain profile picture caption\")\n\tuassert.True(t, strings.Contains(out, \"About me\"), \"Should contain About me section\")\n\tuassert.True(t, strings.Contains(out, abtMe), \"Should contain about me content\")\n\tuassert.True(t, strings.Contains(out, \"Theme Customization\"), \"Should contain theme customization section\")\n\tuassert.True(t, strings.Contains(out, \"Connect With Me\"), \"Should contain connect section\")\n}\n\nfunc TestRenderModernTheme(t *testing.T) {\n\tsetupTest()\n\tmodernVotes, classicVotes, minimalVotes = 100, 0, 0\n\tcurrentTheme = \"modern\"\n\tupdateCurrentTheme()\n\n\tout := Render(\"\")\n\tuassert.True(t, strings.Contains(out, \"🚀 Matija's Space\"), \"Modern theme should have correct header\")\n}\n\nfunc TestRenderMinimalTheme(t *testing.T) {\n\tsetupTest()\n\tmodernVotes, classicVotes, minimalVotes = 0, 0, 100\n\tcurrentTheme = \"minimal\"\n\tupdateCurrentTheme()\n\n\tout := Render(\"\")\n\tuassert.True(t, strings.Contains(out, \"Matija Marjanovic\"), \"Minimal theme should have correct header\")\n}\n\nfunc TestUpdateLinks(t *testing.T) {\n\tsetupTest()\n\n\tnewLink := \"https://example.com/vote\"\n\n\tUpdateModernLink(newLink)\n\turequire.Equal(t, modernLink, newLink, \"Modern link should be updated\")\n\n\tUpdateClassicLink(newLink)\n\turequire.Equal(t, classicLink, newLink, \"Classic link should be updated\")\n\n\tUpdateMinimalLink(newLink)\n\turequire.Equal(t, minimalLink, newLink, \"Minimal link should be updated\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wHZUIdj4zX/Zl9q1pTqLwtSfPdqJGxnKoW9X4RfW4RndxQiLOMuonmibuBY5TPbbaqrCZDQAZRFVYSnevpbzBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/morgan/home","files":[{"name":"home.gno","body":"package home\n\nimport \"gno.land/r/leon/hof\"\n\nconst staticHome = `# morgan's (gn)home\n\n- [📝 sign my guestbook](/r/morgan/guestbook)\n`\n\nfunc init() { hof.Register() }\n\nfunc Render(path string) string {\n\treturn staticHome\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I4U46iP1RLk74w7UVdiUhEk46O46tdvtGDh9dV3zp3+hoGY1kk4hW/RV/z2QHZIDnouPh+H+7TpcJ18/W8w0Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/moul/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/svg\"\n\t\"gno.land/p/moul/debug\"\n\t\"gno.land/p/moul/md\"\n\t\"gno.land/p/moul/mdtable\"\n\t\"gno.land/p/moul/txlink\"\n\t\"gno.land/p/moul/web25\"\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/moul/config\"\n)\n\nvar (\n\ttodos []string\n\tstatus string\n\tmemeImgURL string\n\tweb25config = web25.Config{URL: \"https://moul.github.io/gno-moul-home-web25/\"}\n)\n\nfunc init() {\n\ttodos = append(todos, \"fill this todo list...\")\n\tstatus = \"Online\" // Initial status set to \"Online\"\n\tmemeImgURL = \"https://i.imgflip.com/7ze8dc.jpg\"\n\thof.Register()\n}\n\nfunc Render(path string) string {\n\tcontent := web25config.Render(path)\n\tvar d debug.Debug\n\n\tcontent += md.H1(\"Manfred's (gn)home Dashboard\")\n\n\tcontent += md.H2(\"Meme\")\n\tcontent += md.Paragraph(\n\t\tmd.Image(\"meme\", memeImgURL),\n\t)\n\n\tcontent += md.H2(\"Status\")\n\tcontent += md.Paragraph(status)\n\tcontent += md.Paragraph(md.Link(\"update\", txlink.Call(\"UpdateStatus\")))\n\n\td.Log(\"hello world!\")\n\n\tcontent += md.H2(\"Personal TODO List (bullet list)\")\n\tfor i, todo := range todos {\n\t\tidstr := strconv.Itoa(i)\n\t\tdeleteLink := md.Link(\"x\", txlink.Call(\"DeleteTodo\", \"idx\", idstr))\n\t\tcontent += md.BulletItem(todo + \" \" + deleteLink)\n\t}\n\tcontent += md.BulletItem(md.Link(\"[new]\", txlink.Call(\"AddTodo\")))\n\n\tcontent += md.H2(\"Personal TODO List (table)\")\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Item\", \"Links\"},\n\t}\n\tfor i, todo := range todos {\n\t\tidstr := strconv.Itoa(i)\n\t\tdeleteLink := md.Link(\"[del]\", txlink.Call(\"DeleteTodo\", \"idx\", idstr))\n\t\ttable.Append([]string{\"#\" + idstr, todo, deleteLink})\n\t}\n\tcontent += table.String()\n\n\tcontent += md.H2(\"SVG Example\")\n\tcontent += md.Paragraph(\"this feature may not work with the current gnoweb version and/or configuration.\")\n\tcontent += md.Paragraph(svg.Canvas{\n\t\tWidth: 500, Height: 500,\n\t\tElems: []svg.Elem{\n\t\t\tsvg.Rectangle{50, 50, 100, 100, \"red\"},\n\t\t\tsvg.Circle{50, 50, 100, \"red\"},\n\t\t\tsvg.Text{100, 100, \"hello world!\", \"magenta\"},\n\t\t},\n\t}.String())\n\n\tcontent += md.H2(\"Debug\")\n\tcontent += md.Paragraph(\"this feature may not work with the current gnoweb version and/or configuration.\")\n\tcontent += md.Paragraph(\n\t\tmd.Link(\"toggle debug\", debug.ToggleURL(path)),\n\t)\n\n\t// TODO: my r/boards posts\n\t// TODO: my r/events events\n\tcontent += d.Render(path)\n\treturn content\n}\n\nfunc AddTodo(todo string) {\n\tconfig.AssertIsAdmin()\n\ttodos = append(todos, todo)\n}\n\nfunc DeleteTodo(idx int) {\n\tconfig.AssertIsAdmin()\n\tif idx \u003e= 0 \u0026\u0026 idx \u003c len(todos) {\n\t\t// Remove the todo from the list by merging slices from before and after the todo\n\t\ttodos = append(todos[:idx], todos[idx+1:]...)\n\t} else {\n\t\tpanic(\"Invalid todo index\")\n\t}\n}\n\nfunc UpdateStatus(newStatus string) {\n\tconfig.AssertIsAdmin()\n\tstatus = newStatus\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/r/moul/home\"\n\nfunc main() {\n\tprintln(home.Render(\"\"))\n}\n\n// Output:\n// Click [here](https://moul.github.io/gno-moul-home-web25/) to visit the full rendering experience.\n// # Manfred's (gn)home Dashboard\n// ## Meme\n// ![meme](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Online\n//\n// [update](/r/moul/home$help\u0026func=UpdateStatus)\n//\n// ## Personal TODO List (bullet list)\n// - fill this todo list... [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0)\n// - [\\[new\\]](/r/moul/home$help\u0026func=AddTodo)\n// ## Personal TODO List (table)\n// | ID | Item | Links |\n// | --- | --- | --- |\n// | #0 | fill this todo list... | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0) |\n// ## SVG Example\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n//\n// ## Debug\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// [toggle debug](/r/moul/home:?debug=1)\n//\n//\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/moul/home\"\n)\n\nfunc main() {\n\tstd.TestSetOrigCaller(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\thome.AddTodo(\"aaa\")\n\thome.AddTodo(\"bbb\")\n\thome.AddTodo(\"ccc\")\n\thome.AddTodo(\"ddd\")\n\thome.AddTodo(\"eee\")\n\thome.UpdateStatus(\"Lorem Ipsum\")\n\thome.DeleteTodo(3)\n\tprintln(home.Render(\"?debug=1\"))\n}\n\n// Output:\n// Click [here](https://moul.github.io/gno-moul-home-web25/) to visit the full rendering experience.\n// # Manfred's (gn)home Dashboard\n// ## Meme\n// ![meme](https://i.imgflip.com/7ze8dc.jpg)\n//\n// ## Status\n// Lorem Ipsum\n//\n// [update](/r/moul/home$help\u0026func=UpdateStatus)\n//\n// ## Personal TODO List (bullet list)\n// - fill this todo list... [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0)\n// - aaa [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=1)\n// - bbb [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=2)\n// - ddd [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=3)\n// - eee [x](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=4)\n// - [\\[new\\]](/r/moul/home$help\u0026func=AddTodo)\n// ## Personal TODO List (table)\n// | ID | Item | Links |\n// | --- | --- | --- |\n// | #0 | fill this todo list... | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=0) |\n// | #1 | aaa | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=1) |\n// | #2 | bbb | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=2) |\n// | #3 | ddd | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=3) |\n// | #4 | eee | [\\[del\\]](/r/moul/home$help\u0026func=DeleteTodo\u0026idx=4) |\n// ## SVG Example\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n//\n// ## Debug\n// this feature may not work with the current gnoweb version and/or configuration.\n//\n// [toggle debug](/r/moul/home:)\n//\n// \u003cdetails\u003e\u003csummary\u003edebug\u003c/summary\u003e\n//\n// ### Logs\n// - hello world!\n// ### Metadata\n// | Key | Value |\n// | --- | --- |\n// | `std.CurrentRealm().PkgPath()` | gno.land/r/moul/home |\n// | `std.CurrentRealm().Addr()` | g1h8h57ntxadcze3f703skymfzdwa6t3ugf0nq3z |\n// | `std.PrevRealm().PkgPath()` | |\n// | `std.PrevRealm().Addr()` | g1manfred47kzduec920z88wfr64ylksmdcedlf5 |\n// | `std.GetHeight()` | 123 |\n// | `time.Now().Format(time.RFC3339)` | 2009-02-13T23:31:30Z |\n//\n// \u003c/details\u003e\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sd39L4cTYjMLtxO40rBVJ/k8IQ4TBZ1i6zCaGqLqid2NgFrW1HwGQbSjqO1HmJIcF8ertcYGXheTqYUw8bn0CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/n2p5/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/n2p5/chonk\"\n\n\t\"gno.land/r/leon/hof\"\n\t\"gno.land/r/n2p5/config\"\n)\n\nvar (\n\tactive = chonk.New()\n\tpreview = chonk.New()\n)\n\nfunc init() {\n\thof.Register()\n}\n\n// Add appends a string to the preview Chonk.\nfunc Add(chunk string) {\n\tassertAdmin()\n\tpreview.Add(chunk)\n}\n\n// Flush clears the preview Chonk.\nfunc Flush() {\n\tassertAdmin()\n\tpreview.Flush()\n}\n\n// Promote promotes the preview Chonk to the active Chonk\n// and creates a new preview Chonk.\nfunc Promote() {\n\tassertAdmin()\n\tactive = preview\n\tpreview = chonk.New()\n}\n\n// Render returns the contents of the scanner for the active or preview Chonk\n// based on the path provided.\nfunc Render(path string) string {\n\tvar result string\n\tscanner := getScanner(path)\n\tfor scanner.Scan() {\n\t\tresult += scanner.Text()\n\t}\n\treturn result\n}\n\n// assertAdmin panics if the caller is not an admin as defined in the config realm.\nfunc assertAdmin() {\n\tcaller := std.PrevRealm().Addr()\n\tif !config.IsAdmin(caller) {\n\t\tpanic(\"forbidden: must be admin\")\n\t}\n}\n\n// getScanner returns the scanner for the active or preview Chonk based\n// on the path provided.\nfunc getScanner(path string) *chonk.Scanner {\n\tif isPreview(path) {\n\t\treturn preview.Scanner()\n\t}\n\treturn active.Scanner()\n}\n\n// isPreview returns true if the path prefix is \"preview\".\nfunc isPreview(path string) bool {\n\treturn strings.HasPrefix(path, \"preview\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cdT/NMu8LkCiodBphn2f1yTUrrWIli9/3sAYiPTetIXIe+axGqQtA1F6P2L5pK+qKiE2b3DsnnnqHjTGw5rSCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/nemanya/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/nemanya/config\"\n)\n\ntype SocialLink struct {\n\tURL string\n\tText string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\ntype Project struct {\n\tName string\n\tDescription string\n\tURL string\n\tImageURL string\n\tSponsors map[std.Address]Sponsor\n}\n\nvar (\n\ttextArt string\n\taboutMe string\n\tsponsorInfo string\n\tsocialLinks map[string]SocialLink\n\tgnoProjects map[string]Project\n\totherProjects map[string]Project\n\ttotalDonations std.Coins\n)\n\nfunc init() {\n\ttextArt = renderTextArt()\n\taboutMe = \"I am a student of IT at Faculty of Sciences in Novi Sad, Serbia. My background is mainly in web and low-level programming, but since Web3 Bootcamp at Petnica this year I've been actively learning about blockchain and adjacent technologies. I am excited about contributing to the gno.land ecosystem and learning from the community.\\n\\n\"\n\tsponsorInfo = \"You can sponsor a project by sending GNOT to this address. Your sponsorship will be displayed on the project page. Thank you for supporting the development of gno.land!\\n\\n\"\n\n\tsocialLinks = map[string]SocialLink{\n\t\t\"GitHub\": {URL: \"https://github.com/Nemanya8\", Text: \"Explore my repositories and open-source contributions.\"},\n\t\t\"LinkedIn\": {URL: \"https://www.linkedin.com/in/nemanjamatic/\", Text: \"Connect with me professionally.\"},\n\t\t\"Email Me\": {URL: \"mailto:matic.nemanya@gmail.com\", Text: \"Reach out for collaboration or inquiries.\"},\n\t}\n\n\tgnoProjects = make(map[string]Project)\n\totherProjects = make(map[string]Project)\n\n\tgnoProjects[\"Liberty Bridge\"] = Project{\n\t\tName: \"Liberty Bridge\",\n\t\tDescription: \"Liberty Bridge was my first Web3 project, developed as part of the Web3 Bootcamp at Petnica. This project served as a centralized bridge between Ethereum and gno.land, enabling seamless asset transfers and fostering interoperability between the two ecosystems.\\n\\n The primary objective of Liberty Bridge was to address the challenges of connecting decentralized networks by implementing a user-friendly solution that simplified the process for users. The project incorporated mechanisms to securely transfer assets between the Ethereum and gno.land blockchains, ensuring efficiency and reliability while maintaining a centralized framework for governance and operations.\\n\\n Through this project, I gained hands-on knowledge of blockchain interoperability, Web3 protocols, and the intricacies of building solutions that bridge different blockchain ecosystems.\\n\\n\",\n\t\tURL: \"https://gno.land\",\n\t\tImageURL: \"https://github.com/Milosevic02/LibertyBridge/raw/main/lb_banner.png\",\n\t\tSponsors: make(map[std.Address]Sponsor),\n\t}\n\n\totherProjects[\"Incognito\"] = Project{\n\t\tName: \"Incognito\",\n\t\tDescription: \"Incognito is a Web3 platform built for Ethereum-based chains, designed to connect advertisers with users in a privacy-first and mutually beneficial way. Its modular architecture makes it easily expandable to other blockchains. Developed during the ETH Sofia Hackathon, it was recognized as a winning project for its innovation and impact.\\n\\n The platform allows advertisers to send personalized ads while sharing a portion of the marketing budget with users. It uses machine learning to match users based on wallet activity, ensuring precise targeting. User emails are stored securely on-chain and never shared, prioritizing privacy and transparency.\\n\\n With all campaign data stored on-chain, Incognito ensures decentralization and accountability. By rewarding users and empowering advertisers, it sets a new standard for fair and transparent blockchain-based advertising.\",\n\t\tURL: \"https://github.com/Milosevic02/Incognito-ETHSofia\",\n\t\tImageURL: \"\",\n\t\tSponsors: make(map[std.Address]Sponsor),\n\t}\n}\n\nfunc Render(path string) string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"# Hi, I'm\\n\")\n\tsb.WriteString(textArt)\n\tsb.WriteString(\"---\\n\")\n\tsb.WriteString(\"## About me\\n\")\n\tsb.WriteString(aboutMe)\n\tsb.WriteString(sponsorInfo)\n\tsb.WriteString(ufmt.Sprintf(\"# Total Sponsor Donations: %s\\n\", totalDonations.String()))\n\tsb.WriteString(\"---\\n\")\n\tsb.WriteString(renderProjects(gnoProjects, \"Gno Projects\"))\n\tsb.WriteString(\"---\\n\")\n\tsb.WriteString(renderProjects(otherProjects, \"Other Projects\"))\n\tsb.WriteString(\"---\\n\")\n\tsb.WriteString(renderSocialLinks())\n\n\treturn sb.String()\n}\n\nfunc renderTextArt() string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"```\\n\")\n\tsb.WriteString(\" ___ ___ ___ ___ ___ ___ ___ \\n\")\n\tsb.WriteString(\" /\\\\__\\\\ /\\\\ \\\\ /\\\\__\\\\ /\\\\ \\\\ /\\\\__\\\\ |\\\\__\\\\ /\\\\ \\\\ \\n\")\n\tsb.WriteString(\" /::| | /::\\\\ \\\\ /::| | /::\\\\ \\\\ /::| | |:| | /::\\\\ \\\\ \\n\")\n\tsb.WriteString(\" /:|:| | /:/\\\\:\\\\ \\\\ /:|:| | /:/\\\\:\\\\ \\\\ /:|:| | |:| | /:/\\\\:\\\\ \\\\ \\n\")\n\tsb.WriteString(\" /:/|:| |__ /::\\\\~\\\\:\\\\ \\\\ /:/|:|__|__ /::\\\\~\\\\:\\\\ \\\\ /:/|:| |__ |:|__|__ /::\\\\~\\\\:\\\\ \\\\ \\n\")\n\tsb.WriteString(\" /:/ |:| /\\\\__\\\\ /:/\\\\:\\\\ \\\\:\\\\__\\\\ /:/ |::::\\\\__\\\\ /:/\\\\:\\\\ \\\\:\\\\__\\\\ /:/ |:| /\\\\__\\\\ /::::\\\\__\\\\ /:/\\\\:\\\\ \\\\:\\\\__\\\\\\n\")\n\tsb.WriteString(\" \\\\/__|:|/:/ / \\\\:\\\\~\\\\:\\\\ \\\\/__/ \\\\/__/~~/:/ / \\\\/__\\\\:\\\\/:/ / \\\\/__|:|/:/ / /:/~~/~ \\\\/__\\\\:\\\\/:/ / \\n\")\n\tsb.WriteString(\" |:/:/ / \\\\:\\\\ \\\\:\\\\__\\\\ /:/ / \\\\::/ / |:/:/ / /:/ / \\\\::/ / \\n\")\n\tsb.WriteString(\" |::/ / \\\\:\\\\ \\\\/__/ /:/ / /:/ / |::/ / \\\\/__/ /:/ / \\n\")\n\tsb.WriteString(\" /:/ / \\\\:\\\\__\\\\ /:/ / /:/ / /:/ / /:/ / \\n\")\n\tsb.WriteString(\" \\\\/__/ \\\\/__/ \\\\/__/ \\\\/__/ \\\\/__/ \\\\/__/ \\n\")\n\tsb.WriteString(\"\\n```\\n\")\n\treturn sb.String()\n}\n\nfunc renderSocialLinks() string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"## Links\\n\\n\")\n\tsb.WriteString(\"You can find me here:\\n\\n\")\n\tsb.WriteString(ufmt.Sprintf(\"- [GitHub](%s) - %s\\n\", socialLinks[\"GitHub\"].URL, socialLinks[\"GitHub\"].Text))\n\tsb.WriteString(ufmt.Sprintf(\"- [LinkedIn](%s) - %s\\n\", socialLinks[\"LinkedIn\"].URL, socialLinks[\"LinkedIn\"].Text))\n\tsb.WriteString(ufmt.Sprintf(\"- [Email Me](%s) - %s\\n\", socialLinks[\"Email Me\"].URL, socialLinks[\"Email Me\"].Text))\n\tsb.WriteString(\"\\n\")\n\treturn sb.String()\n}\n\nfunc renderProjects(projectsMap map[string]Project, title string) string {\n\tvar sb strings.Builder\n\tsb.WriteString(ufmt.Sprintf(\"## %s\\n\\n\", title))\n\tfor _, project := range projectsMap {\n\t\tif project.ImageURL != \"\" {\n\t\t\tsb.WriteString(ufmt.Sprintf(\"![%s](%s)\\n\\n\", project.Name, project.ImageURL))\n\t\t}\n\t\tsb.WriteString(ufmt.Sprintf(\"### [%s](%s)\\n\\n\", project.Name, project.URL))\n\t\tsb.WriteString(project.Description + \"\\n\\n\")\n\n\t\tif len(project.Sponsors) \u003e 0 {\n\t\t\tsb.WriteString(ufmt.Sprintf(\"#### %s Sponsors\\n\", project.Name))\n\t\t\tfor _, sponsor := range project.Sponsors {\n\t\t\t\tsb.WriteString(ufmt.Sprintf(\"- %s: %s\\n\", sponsor.Address.String(), sponsor.Amount.String()))\n\t\t\t}\n\t\t\tsb.WriteString(\"\\n\")\n\t\t}\n\t}\n\treturn sb.String()\n}\n\nfunc UpdateLink(name, newURL string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tif _, exists := socialLinks[name]; !exists {\n\t\tpanic(\"Link with the given name does not exist\")\n\t}\n\n\tsocialLinks[name] = SocialLink{\n\t\tURL: newURL,\n\t\tText: socialLinks[name].Text,\n\t}\n}\n\nfunc UpdateAboutMe(text string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\taboutMe = text\n}\n\nfunc AddGnoProject(name, description, url, imageURL string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\tproject := Project{\n\t\tName: name,\n\t\tDescription: description,\n\t\tURL: url,\n\t\tImageURL: imageURL,\n\t\tSponsors: make(map[std.Address]Sponsor),\n\t}\n\tgnoProjects[name] = project\n}\n\nfunc DeleteGnoProject(projectName string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tif _, exists := gnoProjects[projectName]; !exists {\n\t\tpanic(\"Project not found\")\n\t}\n\n\tdelete(gnoProjects, projectName)\n}\n\nfunc AddOtherProject(name, description, url, imageURL string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\tproject := Project{\n\t\tName: name,\n\t\tDescription: description,\n\t\tURL: url,\n\t\tImageURL: imageURL,\n\t\tSponsors: make(map[std.Address]Sponsor),\n\t}\n\totherProjects[name] = project\n}\n\nfunc RemoveOtherProject(projectName string) {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tif _, exists := otherProjects[projectName]; !exists {\n\t\tpanic(\"Project not found\")\n\t}\n\n\tdelete(otherProjects, projectName)\n}\n\nfunc isAuthorized(addr std.Address) bool {\n\treturn addr == config.Address() || addr == config.Backup()\n}\n\nfunc SponsorGnoProject(projectName string) {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\tproject, exists := gnoProjects[projectName]\n\tif !exists {\n\t\tpanic(\"Gno project not found\")\n\t}\n\n\tproject.Sponsors[address] = Sponsor{\n\t\tAddress: address,\n\t\tAmount: project.Sponsors[address].Amount.Add(amount),\n\t}\n\n\ttotalDonations = totalDonations.Add(amount)\n\n\tgnoProjects[projectName] = project\n}\n\nfunc SponsorOtherProject(projectName string) {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\tproject, exists := otherProjects[projectName]\n\tif !exists {\n\t\tpanic(\"Other project not found\")\n\t}\n\n\tproject.Sponsors[address] = Sponsor{\n\t\tAddress: address,\n\t\tAmount: project.Sponsors[address].Amount.Add(amount),\n\t}\n\n\ttotalDonations = totalDonations.Add(amount)\n\n\totherProjects[projectName] = project\n}\n\nfunc Withdraw() string {\n\tif !isAuthorized(std.PrevRealm().Addr()) {\n\t\tpanic(config.ErrUnauthorized)\n\t}\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\trealmAddress := std.GetOrigPkgAddr()\n\tcoins := banker.GetCoins(realmAddress)\n\n\tif len(coins) == 0 {\n\t\treturn \"No coins available to withdraw\"\n\t}\n\n\tbanker.SendCoins(realmAddress, config.Address(), coins)\n\n\treturn \"Successfully withdrew all coins to config address\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T0rTp8Pij4ux+FOCm8NhlGYtRZ4bElTtghi5xczFRmUGrB+dLcoU3GVYz/w72D1flApqGI2IDks8OCNgiy4XAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"home","path":"gno.land/r/stefann/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n\t\"gno.land/r/leon/hof\"\n\n\t\"gno.land/r/stefann/registry\"\n)\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\ntype Profile struct {\n\taboutMe []string\n}\n\ntype Travel struct {\n\tcities []City\n\tcurrentCityIndex int\n\tjarLink string\n}\n\ntype Sponsorship struct {\n\tmaxSponsors int\n\tsponsors *avl.Tree\n\tDonationsCount int\n\tsponsorsCount int\n}\n\nvar (\n\tprofile Profile\n\ttravel Travel\n\tsponsorship Sponsorship\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\towner = ownable.NewWithAddress(registry.MainAddr())\n\thof.Register()\n\n\tprofile = Profile{\n\t\taboutMe: []string{\n\t\t\t`## About Me`,\n\t\t\t`### Hey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!`,\n\n\t\t\t`## Contributions`,\n\t\t\t`### I'm just getting started, but you can follow my journey through gno.land right [here](https://github.com/gnolang/hackerspace/issues/94) 🔗`,\n\t\t},\n\t}\n\n\ttravel = Travel{\n\t\tcities: []City{\n\t\t\t{Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n\t\t\t{Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n\t\t\t{Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n\t\t\t{Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n\t\t\t{Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n\t\t\t{Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n\t\t\t{Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n\t\t\t{Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n\t\t\t{Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n\t\t\t{Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n\t\t\t{Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n\t\t\t{Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n\t\t\t{Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n\t\t\t{Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n\t\t},\n\t\tcurrentCityIndex: 0,\n\t\tjarLink: \"https://TODO\", // This value should be injected through UpdateJarLink after deployment.\n\t}\n\n\tsponsorship = Sponsorship{\n\t\tmaxSponsors: 3,\n\t\tsponsors: avl.NewTree(),\n\t\tDonationsCount: 0,\n\t\tsponsorsCount: 0,\n\t}\n}\n\nfunc UpdateCities(newCities []City) {\n\towner.AssertCallerIsOwner()\n\ttravel.cities = newCities\n}\n\nfunc AddCities(newCities ...City) {\n\towner.AssertCallerIsOwner()\n\n\ttravel.cities = append(travel.cities, newCities...)\n}\n\nfunc UpdateJarLink(newLink string) {\n\towner.AssertCallerIsOwner()\n\ttravel.jarLink = newLink\n}\n\nfunc UpdateAboutMe(aboutMeStr string) {\n\towner.AssertCallerIsOwner()\n\tprofile.aboutMe = strings.Split(aboutMeStr, \"|\")\n}\n\nfunc AddAboutMeRows(newRows ...string) {\n\towner.AssertCallerIsOwner()\n\n\tprofile.aboutMe = append(profile.aboutMe, newRows...)\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n\towner.AssertCallerIsOwner()\n\tif newMax \u003c= 0 {\n\t\tpanic(\"maxSponsors must be greater than zero\")\n\t}\n\tsponsorship.maxSponsors = newMax\n}\n\nfunc Donate() {\n\taddress := std.GetOrigCaller()\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") == 0 {\n\t\tpanic(\"Donation must include GNOT\")\n\t}\n\n\texistingAmount, exists := sponsorship.sponsors.Get(address.String())\n\tif exists {\n\t\tupdatedAmount := existingAmount.(std.Coins).Add(amount)\n\t\tsponsorship.sponsors.Set(address.String(), updatedAmount)\n\t} else {\n\t\tsponsorship.sponsors.Set(address.String(), amount)\n\t\tsponsorship.sponsorsCount++\n\t}\n\n\ttravel.currentCityIndex++\n\tsponsorship.DonationsCount++\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\townerAddr := registry.MainAddr()\n\tbanker.SendCoins(std.CurrentRealm().Addr(), ownerAddr, banker.GetCoins(std.CurrentRealm().Addr()))\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc GetTopSponsors() []Sponsor {\n\tvar sponsorSlice SponsorSlice\n\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\taddr := std.Address(key)\n\t\tamount := value.(std.Coins)\n\t\tsponsorSlice = append(sponsorSlice, Sponsor{Address: addr, Amount: amount})\n\t\treturn false\n\t})\n\n\tsort.Sort(sponsorSlice)\n\treturn sponsorSlice\n}\n\nfunc GetTotalDonations() int {\n\ttotal := 0\n\tsponsorship.sponsors.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttotal += int(value.(std.Coins).AmountOf(\"ugnot\"))\n\t\treturn false\n\t})\n\treturn total\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", travel.cities[travel.currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\"\n\n\tout += ufmt.Sprintf(\"![Current Location](%s)\\n\\n\", travel.cities[travel.currentCityIndex%len(travel.cities)].URL)\n\n\tfor _, rows := range profile.aboutMe {\n\t\tout += rows + \"\\n\\n\"\n\t}\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := \"# Help Me Travel The World\\n\\n\"\n\n\tout += ufmt.Sprintf(\"## I am currently in %s, tip the jar to send me somewhere else!\\n\\n\", travel.cities[travel.currentCityIndex].Name)\n\tout += \"### **Click** the jar, **tip** in GNOT coins, and **watch** my background change as I head to a new adventure!\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\\n\"\n\n\tout += renderSponsors()\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n\tif len(address) \u003c= 8 {\n\t\treturn address\n\t}\n\treturn address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc getDisplayName(addr std.Address) string {\n\tif user := users.GetUserByAddress(addr); user != nil {\n\t\treturn user.Name\n\t}\n\treturn formatAddress(addr.String())\n}\n\nfunc formatAmount(amount std.Coins) string {\n\tugnot := amount.AmountOf(\"ugnot\")\n\tif ugnot \u003e= 1000000 {\n\t\tgnot := float64(ugnot) / 1000000\n\t\treturn ufmt.Sprintf(\"`%v`*GNOT*\", gnot)\n\t}\n\treturn ufmt.Sprintf(\"`%d`*ugnot*\", ugnot)\n}\n\nfunc renderSponsors() string {\n\tout := \"## Sponsor Leaderboard\\n\\n\"\n\n\tif sponsorship.sponsorsCount == 0 {\n\t\treturn out + \"No sponsors yet. Be the first to tip the jar!\\n\"\n\t}\n\n\ttopSponsors := GetTopSponsors()\n\tnumSponsors := len(topSponsors)\n\tif numSponsors \u003e sponsorship.maxSponsors {\n\t\tnumSponsors = sponsorship.maxSponsors\n\t}\n\n\tfor i := 0; i \u003c numSponsors; i++ {\n\t\tsponsor := topSponsors[i]\n\t\tposition := \"\"\n\t\tswitch i {\n\t\tcase 0:\n\t\t\tposition = \"🥇\"\n\t\tcase 1:\n\t\t\tposition = \"🥈\"\n\t\tcase 2:\n\t\t\tposition = \"🥉\"\n\t\tdefault:\n\t\t\tposition = ufmt.Sprintf(\"%d.\", i+1)\n\t\t}\n\n\t\tout += ufmt.Sprintf(\"%s **%s** - %s\\n\\n\",\n\t\t\tposition,\n\t\t\tgetDisplayName(sponsor.Address),\n\t\t\tformatAmount(sponsor.Amount),\n\t\t)\n\t}\n\n\treturn out + \"\\n\"\n}\n\nfunc renderTipsJar() string {\n\treturn ufmt.Sprintf(\"[![Tips Jar](https://i.ibb.co/4TH9zbw/tips-jar.png)](%s)\", travel.jarLink)\n}\n"},{"name":"home_test.gno","body":"package home\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestUpdateAboutMe(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tUpdateAboutMe(\"This is my new bio.|I love coding!\")\n\n\texpected := []string{\"This is my new bio.\", \"I love coding!\"}\n\n\tif len(profile.aboutMe) != len(expected) {\n\t\tt.Fatalf(\"expected aboutMe to have length %d, got %d\", len(expected), len(profile.aboutMe))\n\t}\n\n\tfor i := range profile.aboutMe {\n\t\tif profile.aboutMe[i] != expected[i] {\n\t\t\tt.Fatalf(\"expected aboutMe[%d] to be %s, got %s\", i, expected[i], profile.aboutMe[i])\n\t\t}\n\t}\n}\n\nfunc TestUpdateCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tnewCities := []City{\n\t\t{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"},\n\t\t{Name: \"Vienna\", URL: \"https://example.com/vienna.jpg\"},\n\t}\n\n\tUpdateCities(newCities)\n\n\tif len(travel.cities) != 2 {\n\t\tt.Fatalf(\"expected 2 cities, got %d\", len(travel.cities))\n\t}\n\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[1].Name != \"Vienna\" {\n\t\tt.Fatalf(\"expected cities to be updated to Berlin and Vienna, got %+v\", travel.cities)\n\t}\n}\n\nfunc TestUpdateJarLink(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.jarLink = \"\"\n\n\tUpdateJarLink(\"https://example.com/jar\")\n\n\tif travel.jarLink != \"https://example.com/jar\" {\n\t\tt.Fatalf(\"expected jarLink to be https://example.com/jar, got %s\", travel.jarLink)\n\t}\n}\n\nfunc TestUpdateMaxSponsors(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tsponsorship.maxSponsors = 0\n\n\tUpdateMaxSponsors(10)\n\n\tif sponsorship.maxSponsors != 10 {\n\t\tt.Fatalf(\"expected maxSponsors to be 10, got %d\", sponsorship.maxSponsors)\n\t}\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Fatalf(\"expected panic for setting maxSponsors to 0\")\n\t\t}\n\t}()\n\tUpdateMaxSponsors(0)\n}\n\nfunc TestAddCities(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\ttravel.cities = []City{}\n\n\tAddCities(City{Name: \"Berlin\", URL: \"https://example.com/berlin.jpg\"})\n\n\tif len(travel.cities) != 1 {\n\t\tt.Fatalf(\"expected 1 city, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[0].Name != \"Berlin\" || travel.cities[0].URL != \"https://example.com/berlin.jpg\" {\n\t\tt.Fatalf(\"expected city to be Berlin, got %+v\", travel.cities[0])\n\t}\n\n\tAddCities(\n\t\tCity{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t\tCity{Name: \"Tokyo\", URL: \"https://example.com/tokyo.jpg\"},\n\t)\n\n\tif len(travel.cities) != 3 {\n\t\tt.Fatalf(\"expected 3 cities, got %d\", len(travel.cities))\n\t}\n\tif travel.cities[1].Name != \"Paris\" || travel.cities[2].Name != \"Tokyo\" {\n\t\tt.Fatalf(\"expected cities to be Paris and Tokyo, got %+v\", travel.cities[1:])\n\t}\n}\n\nfunc TestAddAboutMeRows(t *testing.T) {\n\tvar owner = std.Address(\"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\")\n\tstd.TestSetOrigCaller(owner)\n\n\tprofile.aboutMe = []string{}\n\n\tAddAboutMeRows(\"I love exploring new technologies!\")\n\n\tif len(profile.aboutMe) != 1 {\n\t\tt.Fatalf(\"expected 1 aboutMe row, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[0] != \"I love exploring new technologies!\" {\n\t\tt.Fatalf(\"expected first aboutMe row to be 'I love exploring new technologies!', got %s\", profile.aboutMe[0])\n\t}\n\n\tAddAboutMeRows(\"Travel is my passion!\", \"Always learning.\")\n\n\tif len(profile.aboutMe) != 3 {\n\t\tt.Fatalf(\"expected 3 aboutMe rows, got %d\", len(profile.aboutMe))\n\t}\n\tif profile.aboutMe[1] != \"Travel is my passion!\" || profile.aboutMe[2] != \"Always learning.\" {\n\t\tt.Fatalf(\"expected aboutMe rows to be 'Travel is my passion!' and 'Always learning.', got %+v\", profile.aboutMe[1:])\n\t}\n}\n\nfunc TestDonate(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.DonationsCount = 0\n\tsponsorship.sponsorsCount = 0\n\ttravel.currentCityIndex = 0\n\n\tcoinsSent := std.NewCoins(std.NewCoin(\"ugnot\", 500))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists := sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to be added, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected donation amount to be 500ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 1 {\n\t\tt.Fatalf(\"expected DonationsCount to be 1, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif sponsorship.sponsorsCount != 1 {\n\t\tt.Fatalf(\"expected sponsorsCount to be 1, got %d\", sponsorship.sponsorsCount)\n\t}\n\n\tif travel.currentCityIndex != 1 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 1, got %d\", travel.currentCityIndex)\n\t}\n\n\tcoinsSent = std.NewCoins(std.NewCoin(\"ugnot\", 300))\n\tstd.TestSetOrigSend(coinsSent, std.NewCoins())\n\tDonate()\n\n\texistingAmount, exists = sponsorship.sponsors.Get(string(user))\n\tif !exists {\n\t\tt.Fatalf(\"expected sponsor to exist after second donation, but it was not found\")\n\t}\n\n\tif existingAmount.(std.Coins).AmountOf(\"ugnot\") != 800 {\n\t\tt.Fatalf(\"expected total donation amount to be 800ugnot, got %d\", existingAmount.(std.Coins).AmountOf(\"ugnot\"))\n\t}\n\n\tif sponsorship.DonationsCount != 2 {\n\t\tt.Fatalf(\"expected DonationsCount to be 2 after second donation, got %d\", sponsorship.DonationsCount)\n\t}\n\n\tif travel.currentCityIndex != 2 {\n\t\tt.Fatalf(\"expected currentCityIndex to be 2 after second donation, got %d\", travel.currentCityIndex)\n\t}\n}\n\nfunc TestGetTopSponsors(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttopSponsors := GetTopSponsors()\n\n\tif len(topSponsors) != 3 {\n\t\tt.Fatalf(\"expected 3 sponsors, got %d\", len(topSponsors))\n\t}\n\n\tif topSponsors[0].Address.String() != \"g1address2\" || topSponsors[0].Amount.AmountOf(\"ugnot\") != 500 {\n\t\tt.Fatalf(\"expected top sponsor to be g1address2 with 500ugnot, got %s with %dugnot\", topSponsors[0].Address.String(), topSponsors[0].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[1].Address.String() != \"g1address1\" || topSponsors[1].Amount.AmountOf(\"ugnot\") != 300 {\n\t\tt.Fatalf(\"expected second sponsor to be g1address1 with 300ugnot, got %s with %dugnot\", topSponsors[1].Address.String(), topSponsors[1].Amount.AmountOf(\"ugnot\"))\n\t}\n\n\tif topSponsors[2].Address.String() != \"g1address3\" || topSponsors[2].Amount.AmountOf(\"ugnot\") != 200 {\n\t\tt.Fatalf(\"expected third sponsor to be g1address3 with 200ugnot, got %s with %dugnot\", topSponsors[2].Address.String(), topSponsors[2].Amount.AmountOf(\"ugnot\"))\n\t}\n}\n\nfunc TestGetTotalDonations(t *testing.T) {\n\tvar user = testutils.TestAddress(\"user\")\n\tstd.TestSetOrigCaller(user)\n\n\tsponsorship.sponsors = avl.NewTree()\n\tsponsorship.sponsorsCount = 0\n\n\tsponsorship.sponsors.Set(\"g1address1\", std.NewCoins(std.NewCoin(\"ugnot\", 300)))\n\tsponsorship.sponsors.Set(\"g1address2\", std.NewCoins(std.NewCoin(\"ugnot\", 500)))\n\tsponsorship.sponsors.Set(\"g1address3\", std.NewCoins(std.NewCoin(\"ugnot\", 200)))\n\tsponsorship.sponsorsCount = 3\n\n\ttotalDonations := GetTotalDonations()\n\n\tif totalDonations != 1000 {\n\t\tt.Fatalf(\"expected total donations to be 1000ugnot, got %dugnot\", totalDonations)\n\t}\n}\n\nfunc TestRender(t *testing.T) {\n\ttravel.currentCityIndex = 0\n\ttravel.cities = []City{\n\t\t{Name: \"Venice\", URL: \"https://example.com/venice.jpg\"},\n\t\t{Name: \"Paris\", URL: \"https://example.com/paris.jpg\"},\n\t}\n\n\toutput := Render(\"\")\n\n\texpectedCity := \"Venice\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL := \"https://example.com/venice.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n\n\ttravel.currentCityIndex = 1\n\toutput = Render(\"\")\n\n\texpectedCity = \"Paris\"\n\tif !strings.Contains(output, expectedCity) {\n\t\tt.Fatalf(\"expected output to contain city name '%s', got %s\", expectedCity, output)\n\t}\n\n\texpectedURL = \"https://example.com/paris.jpg\"\n\tif !strings.Contains(output, expectedURL) {\n\t\tt.Fatalf(\"expected output to contain city URL '%s', got %s\", expectedURL, output)\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LFxVlveKlksj453kpGv3YD6zexIxYam4ko7ENl+qj35EwggT9pZrZ28MXZv7v6axmJ5T45NQjn1eAVT20Y2qDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"image_embed","path":"gno.land/r/docs/img_embed","files":[{"name":"img_embed.gno","body":"package image_embed\n\n// Render displays a title and an embedded image from Imgur\nfunc Render(path string) string {\n\treturn `# Image Embed Example\n\nHere’s an example of embedding an image in a Gno realm:\n\n![Example Image](https://i.imgur.com/So4rBPB.jpeg)`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CQsiIiWsjxJTA8Fq2hv7DMCxydlU3yVq8bi1qjCdw2ieebpHBDTcp4re3xdyzJ22KDmY7zD6avxchra/wWuXBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ingester","path":"gno.land/p/demo/gnorkle/ingester","files":[{"name":"errors.gno","body":"package ingester\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"ingester undefined\")\n"},{"name":"type.gno","body":"package ingester\n\n// Type indicates an ingester type.\ntype Type int\n\nconst (\n\t// TypeSingle indicates an ingester that can only ingest a single within a given period or no period.\n\tTypeSingle Type = iota\n\t// TypeMulti indicates an ingester that can ingest multiple within a given period or no period\n\tTypeMulti\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kJyxgowQnIEzmXY0dWwW6jcnHGTrPm8sO9EH92SfDMUHR1QIuupxUbndcx9yKJ5GHyGYjGeRVm30z20CBJi7DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"int256","path":"gno.land/p/demo/int256","files":[{"name":"arithmetic.gno","body":"package int256\n\nimport (\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst divisionByZeroError = \"division by zero\"\n\n// Add adds two int256 values and saves the result in z.\nfunc (z *Int) Add(x, y *Int) *Int {\n\tz.value.Add(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// AddUint256 adds int256 and uint256 values and saves the result in z.\nfunc (z *Int) AddUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Add(\u0026x.value, y)\n\treturn z\n}\n\n// Sub subtracts two int256 values and saves the result in z.\nfunc (z *Int) Sub(x, y *Int) *Int {\n\tz.value.Sub(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// SubUint256 subtracts uint256 and int256 values and saves the result in z.\nfunc (z *Int) SubUint256(x *Int, y *uint256.Uint) *Int {\n\tz.value.Sub(\u0026x.value, y)\n\treturn z\n}\n\n// Mul multiplies two int256 values and saves the result in z.\n//\n// It considers the signs of the operands to determine the sign of the result.\nfunc (z *Int) Mul(x, y *Int) *Int {\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\tz.value.Mul(xAbs, yAbs)\n\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Abs returns the absolute value of z.\nfunc (z *Int) Abs() *uint256.Uint {\n\tif z.Sign() \u003e= 0 {\n\t\treturn \u0026z.value\n\t}\n\n\tvar absValue uint256.Uint\n\tabsValue.Sub(uint0, \u0026z.value).Neg(\u0026z.value)\n\n\treturn \u0026absValue\n}\n\n// Div performs integer division z = x / y and returns z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// This function handles signed division using two's complement representation:\n// 1. Determine the sign of the quotient based on the signs of x and y.\n// 2. Perform unsigned division on the absolute values.\n// 3. Adjust the result's sign if necessary.\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -6 (11111010 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 6: 11111010 -\u003e 00000110\n//\t NOT: 00000101\n//\t +1: 00000110\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t6 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Div(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// Step 4: Perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2: 00000010\n//\n// Step 5: Adjust sign (x and y have different signs)\n//\n//\t-2: 00000010 -\u003e 11111110\n//\t NOT: 11111101\n//\t +1: 11111110\n//\n// Final result: -2 (11111110 in two's complement)\n//\n// Note: This implementation rounds towards zero, as is standard in Go.\nfunc (z *Int) Quo(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3: Calculate the absolute values of x and y\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs, ySign := y.Abs(), y.Sign()\n\n\t// perform unsigned division on the absolute values\n\tz.value.Div(xAbs, yAbs)\n\n\t// Step 5: Adjust the sign of the result\n\t// if x and y have different signs, the result must be negative\n\tif xSign != ySign {\n\t\tz.value.Neg(\u0026z.value)\n\t}\n\n\treturn z\n}\n\n// Rem sets z to the remainder x%y for y != 0 and returns z.\n//\n// The function performs the following steps:\n// 1. Check for division by zero\n// 2. Determine the signs of x and y\n// 3. Calculate the absolute values of x and y\n// 4. Perform unsigned division and get the remainder\n// 5. Adjust the sign of the remainder\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 2: Determine signs\n//\n//\tx: negative (MSB is 1)\n//\ty: positive (MSB is 0)\n//\n// Step 3: Calculate absolute values\n//\n//\t|x| = 7: 11111001 -\u003e 00000111\n//\t NOT: 00000110\n//\t +1: 00000111\n//\n//\t|y| = 3: 00000011 (already positive)\n//\n// Step 4: Unsigned division\n//\n//\t7 / 3 = 2 remainder 1\n//\tq = 2: 00000010 (not used in result)\n//\tr = 1: 00000001\n//\n// Step 5: Adjust sign of remainder (x is negative)\n//\n//\t-1: 00000001 -\u003e 11111111\n//\t NOT: 11111110\n//\t +1: 11111111\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: The sign of the remainder is always the same as the sign of the dividend (x).\nfunc (z *Int) Rem(x, y *Int) *Int {\n\t// Step 1: Check for division by zero\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Step 2, 3\n\txAbs, xSign := x.Abs(), x.Sign()\n\tyAbs := y.Abs()\n\n\t// Step 4: Perform unsigned division and get the remainder\n\tvar q, r uint256.Uint\n\tq.DivMod(xAbs, yAbs, \u0026r)\n\n\t// Step 5: Adjust the sign of the remainder\n\tif xSign \u003c 0 {\n\t\tr.Neg(\u0026r)\n\t}\n\n\tz.value.Set(\u0026r)\n\treturn z\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// The result (z) has the same sign as the divisor y.\nfunc (z *Int) Mod(x, y *Int) *Int {\n\treturn z.ModE(x, y)\n}\n\n// DivE performs Euclidean division of x by y, setting z to the quotient and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// Euclidean division satisfies the following properties:\n// 1. The remainder is always non-negative: 0 \u003c= x mod y \u003c |y|\n// 2. It follows the identity: x = y * (x div y) + (x mod y)\nfunc (z *Int) DivE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Compute the truncated division quotient\n\tz.Quo(x, y)\n\n\t// Compute the remainder\n\tr := new(Int).Rem(x, y)\n\n\t// If the remainder is negative, adjust the quotient\n\tif r.Sign() \u003c 0 {\n\t\tif y.Sign() \u003e 0 {\n\t\t\tz.Sub(z, NewInt(1))\n\t\t} else {\n\t\t\tz.Add(z, NewInt(1))\n\t\t}\n\t}\n\n\treturn z\n}\n\n// ModE computes the Euclidean modulus of x by y, setting z to the result and returning z.\n// If y == 0, it panics with a \"division by zero\" error.\n//\n// The Euclidean modulus is always non-negative and satisfies:\n//\n//\t0 \u003c= x mod y \u003c |y|\n//\n// Example visualization for 8-bit integers (scaled down from 256-bit for simplicity):\n//\n// Case 1: Let x = -7 (11111001 in two's complement) and y = 3 (00000011)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is positive)\n//\n//\t-1 + 3 = 2\n//\t11111111 + 00000011 = 00000010\n//\n// Final result: 2 (00000010)\n//\n// Case 2: Let x = -7 (11111001 in two's complement) and y = -3 (11111101 in two's complement)\n//\n// Step 1: Compute remainder (using Rem)\n//\n//\tResult of Rem: -1 (11111111 in two's complement)\n//\n// Step 2: Adjust sign (result is negative, y is negative)\n//\n//\tNo adjustment needed\n//\n// Final result: -1 (11111111 in two's complement)\n//\n// Note: This implementation ensures that the result always has the same sign as y,\n// which is different from the Rem operation.\nfunc (z *Int) ModE(x, y *Int) *Int {\n\tif y.IsZero() {\n\t\tpanic(divisionByZeroError)\n\t}\n\n\t// Perform T-division to get the remainder\n\tz.Rem(x, y)\n\n\t// Adjust the remainder if necessary\n\tif z.Sign() \u003e= 0 {\n\t\treturn z\n\t}\n\tif y.Sign() \u003e 0 {\n\t\treturn z.Add(z, y)\n\t}\n\n\treturn z.Sub(z, y)\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// If the y is positive, it adds y.value to x. otherwise, it subtracts y.Abs() from x.\nfunc AddDelta(z, x *uint256.Uint, y *Int) {\n\tif y.Sign() \u003e= 0 {\n\t\tz.Add(x, \u0026y.value)\n\t} else {\n\t\tz.Sub(x, y.Abs())\n\t}\n}\n\n// Sets z to the sum x + y, where z and x are uint256s and y is an int256.\n//\n// This function returns true if the addition overflows, false otherwise.\nfunc AddDeltaOverflow(z, x *uint256.Uint, y *Int) bool {\n\tvar overflow bool\n\tif y.Sign() \u003e= 0 {\n\t\t_, overflow = z.AddOverflow(x, \u0026y.value)\n\t} else {\n\t\tvar absY uint256.Uint\n\t\tabsY.Sub(uint0, \u0026y.value) // absY = -y.value\n\t\t_, overflow = z.SubOverflow(x, \u0026absY)\n\t}\n\n\treturn overflow\n}\n"},{"name":"arithmetic_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nconst (\n\t// 2^255 - 1\n\tMAX_INT256 = \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\t// -(2^255 - 1)\n\tMINUS_MAX_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819967\"\n\n\t// 2^255 - 1\n\tMAX_UINT256 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMAX_UINT256_MINUS_1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tMINUS_MAX_UINT256 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\tMINUS_MAX_UINT256_PLUS_1 = \"-115792089237316195423570985008687907853269984665640564039457584007913129639934\"\n\n\tTWO_POW_128 = \"340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128 = \"-340282366920938463463374607431768211456\"\n\tMINUS_TWO_POW_128_MINUS_1 = \"-340282366920938463463374607431768211457\"\n\tTWO_POW_128_MINUS_1 = \"340282366920938463463374607431768211455\"\n\n\tTWO_POW_129_MINUS_1 = \"680564733841876926926749214863536422911\"\n\n\tTWO_POW_254 = \"28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tMINUS_TWO_POW_254 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409984\"\n\tHALF_MAX_INT256 = \"28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\tMINUS_HALF_MAX_INT256 = \"-28948022309329048855892746252171976963317496166410141009864396001978282409983\"\n\n\tTWO_POW_255 = \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819968\"\n\tMIN_INT256_MINUS_1 = \"-57896044618658097711785492504343953926634992332820282019728792003956564819969\"\n)\n\nfunc TestAdd(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t// NEGATIVE\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"1\", \"-1\", \"0\"},\n\t\t{\"3\", \"-3\", \"0\"},\n\t\t{\"-1\", \"-1\", \"-2\"},\n\t\t{\"-1\", \"-2\", \"-3\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{\"3\", \"-1\", \"2\"},\n\t\t// OVERFLOW\n\t\t{MAX_UINT256, \"1\", \"0\"},\n\t\t{MAX_INT256, \"1\", MIN_INT256},\n\t\t{MIN_INT256, \"-1\", MAX_INT256},\n\t\t{MAX_INT256, MAX_INT256, \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\"},\n\t\t{\"-1\", \"1\", \"0\"},\n\t\t{\"-1\", \"3\", \"2\"},\n\t\t{MINUS_MAX_UINT256_PLUS_1, MAX_UINT256, \"1\"},\n\t\t{MINUS_MAX_UINT256, MAX_UINT256_MINUS_1, \"-1\"},\n\t\t// OVERFLOW\n\t\t{MINUS_MAX_UINT256, MAX_UINT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.AddUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"AddUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDelta(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y, want string\n\t}{\n\t\t{\"0\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"0\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\", \"1\"},\n\t\t{\"0\", \"1\", \"1\", \"2\"},\n\t\t{\"1\", \"2\", \"3\", \"5\"},\n\t\t{\"5\", \"10\", \"-3\", \"7\"},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", MAX_UINT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := uint256.FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tAddDelta(z, x, y)\n\n\t\tif z.Neq(want) {\n\t\t\tt.Errorf(\"AddDelta(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, z.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddDeltaOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tz, x, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", \"0\", false},\n\t\t// underflow\n\t\t{\"1\", \"2\", \"-3\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tz, err := uint256.FromDecimal(tc.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tx, err := uint256.FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := AddDeltaOverflow(z, x, y)\n\t\tif result != tc.want {\n\t\t\tt.Errorf(\"AddDeltaOverflow(%s, %s, %s) = %v, want %v\", tc.z, tc.x, tc.y, result, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"1\", \"-1\", \"2\"},\n\t\t{\"-1\", \"-1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, MINUS_MAX_UINT256, \"0\"},\n\t\t{MINUS_MAX_UINT256, \"0\", MINUS_MAX_UINT256},\n\t\t{MAX_INT256, MIN_INT256, \"-1\"},\n\t\t{MIN_INT256, MIN_INT256, \"0\"},\n\t\t{MAX_INT256, MAX_INT256, \"0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Sub(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSubUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"-1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"1\", \"2\", \"-1\"},\n\t\t{\"-1\", \"1\", \"-2\"},\n\t\t{\"-1\", \"3\", \"-4\"},\n\t\t// underflow\n\t\t{MINUS_MAX_UINT256, \"1\", \"0\"},\n\t\t{MINUS_MAX_UINT256, \"2\", \"-1\"},\n\t\t{MINUS_MAX_UINT256, \"3\", \"-2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := uint256.FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.SubUint256(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"SubUint256(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"3\", \"15\"},\n\t\t{\"-5\", \"3\", \"-15\"},\n\t\t{\"5\", \"-3\", \"-15\"},\n\t\t{\"0\", \"3\", \"0\"},\n\t\t{\"3\", \"0\", \"0\"},\n\t\t{\"-5\", \"-3\", \"15\"},\n\t\t{MAX_UINT256, \"1\", MAX_UINT256},\n\t\t{MAX_INT256, \"2\", \"-2\"},\n\t\t{TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MINUS_TWO_POW_254, \"2\", MIN_INT256},\n\t\t{MAX_INT256, \"1\", MAX_INT256},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, expected string\n\t}{\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"-1\", \"1\", \"-1\"},\n\t\t{\"1\", \"-1\", \"-1\"},\n\t\t{\"-1\", \"-1\", \"1\"},\n\t\t{\"-6\", \"3\", \"-2\"},\n\t\t{\"10\", \"-2\", \"-5\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"7\", \"3\", \"2\"},\n\t\t{\"-7\", \"3\", \"-2\"},\n\t\t// the maximum value of a positive number in int256 is less than the maximum value of a uint256\n\t\t{MAX_INT256, \"2\", HALF_MAX_INT256},\n\t\t{MINUS_MAX_INT256, \"2\", MINUS_HALF_MAX_INT256},\n\t\t{MAX_INT256, \"-1\", MINUS_MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.x+\"/\"+tt.y, func(t *testing.T) {\n\t\t\tx := MustFromDecimal(tt.x)\n\t\t\ty := MustFromDecimal(tt.y)\n\t\t\tresult := Zero().Div(x, y)\n\t\t\tif result.String() != tt.expected {\n\t\t\t\tt.Errorf(\"Div(%s, %s) = %s, want %s\", tt.x, tt.y, result.String(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n\n\tt.Run(\"Division by zero\", func(t *testing.T) {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Div(1, 0) did not panic\")\n\t\t\t}\n\t\t}()\n\t\tx := MustFromDecimal(\"1\")\n\t\ty := MustFromDecimal(\"0\")\n\t\tZero().Div(x, y)\n\t})\n}\n\nfunc TestQuo(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"10\"},\n\t\t{\"10\", \"-1\", \"-10\"},\n\t\t{\"-10\", \"1\", \"-10\"},\n\t\t{\"-10\", \"-1\", \"10\"},\n\t\t{\"10\", \"-3\", \"-3\"},\n\t\t{\"-10\", \"3\", \"-3\"},\n\t\t{\"10\", \"3\", \"3\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Quo(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Quo(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRem(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"-1\"},\n\t\t{\"-10\", \"-3\", \"-1\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Rem(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rem(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"0\", \"1\", \"0\"},\n\t\t{\"0\", \"-1\", \"0\"},\n\t\t{\"10\", \"1\", \"0\"},\n\t\t{\"10\", \"-1\", \"0\"},\n\t\t{\"-10\", \"1\", \"0\"},\n\t\t{\"-10\", \"-1\", \"0\"},\n\t\t{\"10\", \"3\", \"1\"},\n\t\t{\"10\", \"-3\", \"1\"},\n\t\t{\"-10\", \"3\", \"2\"},\n\t\t{\"-10\", \"-3\", \"2\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\twant, err := FromDecimal(tc.want)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := New()\n\t\tgot.Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModeOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{MIN_INT256, \"2\", \"0\"}, // MIN_INT256 % 2 = 0\n\t\t{MAX_INT256, \"2\", \"1\"}, // MAX_INT256 % 2 = 1\n\t\t{MIN_INT256, \"-1\", \"0\"}, // MIN_INT256 % -1 = 0\n\t\t{MAX_INT256, \"-1\", \"0\"}, // MAX_INT256 % -1 = 0\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := New().Mod(x, y)\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestModPanic(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t}{\n\t\t{\"10\", \"0\"},\n\t\t{\"10\", \"-0\"},\n\t\t{\"-10\", \"0\"},\n\t\t{\"-10\", \"-0\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Mod(%s, %s) did not panic\", tc.x, tc.y)\n\t\t\t}\n\t\t}()\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tresult := New().Mod(x, y)\n\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tc.x, tc.y, result.String(), \"0\")\n\t}\n}\n\nfunc TestDivE(t *testing.T) {\n\ttestCases := []struct {\n\t\tx, y int64\n\t\twant int64\n\t}{\n\t\t{8, 3, 2},\n\t\t{8, -3, -2},\n\t\t{-8, 3, -3},\n\t\t{-8, -3, 3},\n\t\t{1, 2, 0},\n\t\t{1, -2, 0},\n\t\t{-1, 2, -1},\n\t\t{-1, -2, 1},\n\t\t{0, 1, 0},\n\t\t{0, -1, 0},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tx := NewInt(tc.x)\n\t\ty := NewInt(tc.y)\n\t\twant := NewInt(tc.want)\n\t\tgot := new(Int).DivE(x, y)\n\t\tif got.Cmp(want) != 0 {\n\t\t\tt.Errorf(\"DivE(%v, %v) = %v, want %v\", tc.x, tc.y, got, want)\n\t\t}\n\t}\n}\n\nfunc TestDivEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"DivE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).DivE(x, y)\n}\n\nfunc TestModEByZero(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"ModE did not panic on division by zero\")\n\t\t}\n\t}()\n\n\tx := NewInt(1)\n\ty := NewInt(0)\n\tnew(Int).ModE(x, y)\n}\n\nfunc TestLargeNumbers(t *testing.T) {\n\tx, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\ty, _ := new(Int).SetString(\"987654321098765432109876543210\")\n\n\t// Expected results (calculated separately)\n\texpectedQ, _ := new(Int).SetString(\"0\")\n\texpectedR, _ := new(Int).SetString(\"123456789012345678901234567890\")\n\n\tgotQ := new(Int).DivE(x, y)\n\tgotR := new(Int).ModE(x, y)\n\n\tif gotQ.Cmp(expectedQ) != 0 {\n\t\tt.Errorf(\"DivE with large numbers: got %v, want %v\", gotQ, expectedQ)\n\t}\n\n\tif gotR.Cmp(expectedR) != 0 {\n\t\tt.Errorf(\"ModE with large numbers: got %v, want %v\", gotR, expectedR)\n\t}\n}\n\nfunc TestAbs(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"-2\", \"2\"},\n\t\t{\"-100000000000\", \"100000000000\"},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Abs()\n\n\t\tif got.String() != tc.want {\n\t\t\tt.Errorf(\"Abs(%s) = %v, want %v\", tc.x, got.String(), tc.want)\n\t\t}\n\t}\n}\n"},{"name":"bitwise.gno","body":"package int256\n\n// Not sets z to the bitwise NOT of x and returns z.\n//\n// The bitwise NOT operation flips each bit of the operand.\nfunc (z *Int) Not(x *Int) *Int {\n\tz.value.Not(\u0026x.value)\n\treturn z\n}\n\n// And sets z to the bitwise AND of x and y and returns z.\n//\n// The bitwise AND operation results in a value that has a bit set\n// only if both corresponding bits of the operands are set.\nfunc (z *Int) And(x, y *Int) *Int {\n\tz.value.And(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Or sets z to the bitwise OR of x and y and returns z.\n//\n// The bitwise OR operation results in a value that has a bit set\n// if at least one of the corresponding bits of the operands is set.\nfunc (z *Int) Or(x, y *Int) *Int {\n\tz.value.Or(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Xor sets z to the bitwise XOR of x and y and returns z.\n//\n// The bitwise XOR operation results in a value that has a bit set\n// only if the corresponding bits of the operands are different.\nfunc (z *Int) Xor(x, y *Int) *Int {\n\tz.value.Xor(\u0026x.value, \u0026y.value)\n\treturn z\n}\n\n// Rsh sets z to the result of right-shifting x by n bits and returns z.\n//\n// Right shift operation moves all bits in the operand to the right by the specified number of positions.\n// Bits shifted out on the right are discarded, and zeros are shifted in on the left.\nfunc (z *Int) Rsh(x *Int, n uint) *Int {\n\tz.value.Rsh(\u0026x.value, n)\n\treturn z\n}\n\n// Lsh sets z to the result of left-shifting x by n bits and returns z.\n//\n// Left shift operation moves all bits in the operand to the left by the specified number of positions.\n// Bits shifted out on the left are discarded, and zeros are shifted in on the right.\nfunc (z *Int) Lsh(x *Int, n uint) *Int {\n\tz.value.Lsh(\u0026x.value, n)\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBitwise_And(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"1\"}, // 0101 \u0026 0001 = 0001\n\t\t{\"-1\", \"1\", \"1\"}, // 1111 \u0026 0001 = 0001\n\t\t{\"-5\", \"3\", \"3\"}, // 1111...1011 \u0026 0000...0011 = 0000...0011\n\t\t{MAX_UINT256, MAX_UINT256, MAX_UINT256},\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, \"0\"}, // 2^128 \u0026 (2^128 - 1) = 0\n\t\t{TWO_POW_128, MAX_UINT256, TWO_POW_128}, // 2^128 \u0026 MAX_INT256\n\t\t{MAX_UINT256, TWO_POW_128, TWO_POW_128}, // MAX_INT256 \u0026 2^128\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).And(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"And(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Or(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"5\"}, // 0101 | 0001 = 0101\n\t\t{\"-1\", \"1\", \"-1\"}, // 1111 | 0001 = 1111\n\t\t{\"-5\", \"3\", \"-5\"}, // 1111...1011 | 0000...0011 = 1111...1011\n\t\t{TWO_POW_128, TWO_POW_128_MINUS_1, TWO_POW_129_MINUS_1},\n\t\t{TWO_POW_128, MAX_UINT256, MAX_UINT256},\n\t\t{\"0\", TWO_POW_128, TWO_POW_128}, // 0 | 2^128 = 2^128\n\t\t{MAX_UINT256, TWO_POW_128, MAX_UINT256}, // MAX_INT256 | 2^128 = MAX_INT256\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\ty, _ := FromDecimal(tc.y)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Or(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\tx.String(), y.String(), got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Not(t *testing.T) {\n\ttests := []struct {\n\t\tx, want string\n\t}{\n\t\t{\"5\", \"-6\"}, // 0101 -\u003e 1111...1010\n\t\t{\"-1\", \"0\"}, // 1111...1111 -\u003e 0000...0000\n\t\t{TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // NOT 2^128\n\t\t{TWO_POW_255, MIN_INT256_MINUS_1}, // NOT 2^255\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, _ := FromDecimal(tc.x)\n\t\twant, _ := FromDecimal(tc.want)\n\n\t\tgot := new(Int).Not(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Not(%s) = %s, want %s\", x.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Xor(t *testing.T) {\n\ttests := []struct {\n\t\tx, y, want string\n\t}{\n\t\t{\"5\", \"1\", \"4\"}, // 0101 ^ 0001 = 0100\n\t\t{\"-1\", \"1\", \"-2\"}, // 1111...1111 ^ 0000...0001 = 1111...1110\n\t\t{\"-5\", \"3\", \"-8\"}, // 1111...1011 ^ 0000...0011 = 1111...1000\n\t\t{TWO_POW_128, TWO_POW_128, \"0\"}, // 2^128 ^ 2^128 = 0\n\t\t{MAX_UINT256, TWO_POW_128, MINUS_TWO_POW_128_MINUS_1}, // MAX_INT256 ^ 2^128\n\t\t{TWO_POW_255, MAX_UINT256, MIN_INT256_MINUS_1}, // 2^255 ^ MAX_INT256\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\ty, _ := FromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Xor(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Xor(%s, %s) = %s, want %s\", x.String(), y.String(), got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Rsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 1, \"2\"}, // 0101 \u003e\u003e 1 = 0010\n\t\t{\"42\", 3, \"5\"}, // 00101010 \u003e\u003e 3 = 00000101\n\t\t{TWO_POW_128, 128, \"1\"},\n\t\t{MAX_UINT256, 255, \"1\"},\n\t\t{TWO_POW_255, 254, \"2\"},\n\t\t{MINUS_TWO_POW_128, 128, TWO_POW_128_MINUS_1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Rsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestBitwise_Lsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\tn uint\n\t\twant string\n\t}{\n\t\t{\"5\", 2, \"20\"}, // 0101 \u003c\u003c 2 = 10100\n\t\t{\"42\", 5, \"1344\"}, // 00101010 \u003c\u003c 5 = 10101000000\n\t\t{\"1\", 128, TWO_POW_128}, // 1 \u003c\u003c 128 = 2^128\n\t\t{\"2\", 254, TWO_POW_255},\n\t\t{\"1\", 255, MIN_INT256}, // 1 \u003c\u003c 255 = MIN_INT256 (overflow)\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, _ := FromDecimal(tt.x)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot := new(Int).Lsh(x, tt.n)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", x.String(), tt.n, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"package int256\n\nfunc (z *Int) Eq(x *Int) bool {\n\treturn z.value.Eq(\u0026x.value)\n}\n\nfunc (z *Int) Neq(x *Int) bool {\n\treturn !z.Eq(x)\n}\n\n// Cmp compares z and x and returns:\n//\n// - 1 if z \u003e x\n// - 0 if z == x\n// - -1 if z \u003c x\nfunc (z *Int) Cmp(x *Int) int {\n\tzSign, xSign := z.Sign(), x.Sign()\n\n\tif zSign == xSign {\n\t\treturn z.value.Cmp(\u0026x.value)\n\t}\n\n\tif zSign == 0 {\n\t\treturn -xSign\n\t}\n\n\treturn zSign\n}\n\n// IsZero returns true if z == 0\nfunc (z *Int) IsZero() bool {\n\treturn z.value.IsZero()\n}\n\n// IsNeg returns true if z \u003c 0\nfunc (z *Int) IsNeg() bool {\n\treturn z.Sign() \u003c 0\n}\n\nfunc (z *Int) Lt(x *Int) bool {\n\treturn z.Cmp(x) \u003c 0\n}\n\nfunc (z *Int) Gt(x *Int) bool {\n\treturn z.Cmp(x) \u003e 0\n}\n\nfunc (z *Int) Le(x *Int) bool {\n\treturn z.Cmp(x) \u003c= 0\n}\n\nfunc (z *Int) Ge(x *Int) bool {\n\treturn z.Cmp(x) \u003e= 0\n}\n\n// Clone creates a new Int identical to z\nfunc (z *Int) Clone() *Int {\n\treturn New().FromUint256(\u0026z.value)\n}\n"},{"name":"cmp_test.gno","body":"package int256\n\nimport \"testing\"\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", true},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", true},\n\t\t{\"-1\", \"-1\", true},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestNeq(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", true},\n\t\t{\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Neq(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Neq(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"-1\", \"0\", -1},\n\t\t{\"0\", \"-1\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"-115792089237316195423570985008687907853269984665640564039457584007913129639935\", -1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"-0\", true},\n\t\t{\"1\", false},\n\t\t{\"-1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsZero()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", false},\n\t\t{\"-0\", false},\n\t\t{\"1\", false},\n\t\t{\"-1\", true},\n\t\t{\"10\", false},\n\t\t{\"-10\", true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.IsNeg()\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"IsNeg(%s) = %v, want %v\", tc.x, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestLt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", true},\n\t\t{\"1\", \"0\", false},\n\t\t{\"-1\", \"0\", true},\n\t\t{\"0\", \"-1\", false},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Lt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Lt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestGt(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant bool\n\t}{\n\t\t{\"0\", \"0\", false},\n\t\t{\"0\", \"1\", false},\n\t\t{\"1\", \"0\", true},\n\t\t{\"-1\", \"0\", false},\n\t\t{\"0\", \"-1\", true},\n\t\t{\"1\", \"1\", false},\n\t\t{\"-1\", \"-1\", false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx, err := FromDecimal(tc.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty, err := FromDecimal(tc.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Gt(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Gt(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []string{\n\t\t\"0\",\n\t\t\"-0\",\n\t\t\"1\",\n\t\t\"-1\",\n\t\t\"10\",\n\t\t\"-10\",\n\t\t\"115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t\t\"-115792089237316195423570985008687907853269984665640564039457584007913129639935\",\n\t}\n\n\tfor _, xStr := range tests {\n\t\tx, err := FromDecimal(xStr)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\ty := x.Clone()\n\n\t\tif x.Neq(y) {\n\t\t\tt.Errorf(\"cloned value is not equal to original value\")\n\t\t}\n\t}\n}\n"},{"name":"conversion.gno","body":"package int256\n\nimport (\n\t\"math\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\n// SetInt64 sets the Int to the value of the provided int64.\n//\n// This method allows for easy conversion from standard Go integer types\n// to Int, correctly handling both positive and negative values.\nfunc (z *Int) SetInt64(v int64) *Int {\n\tif v \u003e= 0 {\n\t\tz.value.SetUint64(uint64(v))\n\t} else {\n\t\tz.value.SetUint64(uint64(-v)).Neg(\u0026z.value)\n\t}\n\treturn z\n}\n\n// SetUint64 sets the Int to the value of the provided uint64.\nfunc (z *Int) SetUint64(v uint64) *Int {\n\tz.value.SetUint64(v)\n\treturn z\n}\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Int) Uint64() uint64 {\n\tif z.Sign() \u003c 0 {\n\t\tpanic(\"cannot convert negative int256 to uint64\")\n\t}\n\tif z.value.Gt(uint256.NewUint(0).SetUint64(math.MaxUint64)) {\n\t\tpanic(\"overflow: int256 does not fit in uint64 type\")\n\t}\n\treturn z.value.Uint64()\n}\n\n// Int64 returns the lower 64-bits of z\nfunc (z *Int) Int64() int64 {\n\tif z.Sign() \u003e= 0 {\n\t\tif z.value.BitLen() \u003e 64 {\n\t\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t\t}\n\t\treturn int64(z.value.Uint64())\n\t}\n\tvar temp uint256.Uint\n\ttemp.Sub(uint256.NewUint(0), \u0026z.value) // temp = -z.value\n\tif temp.BitLen() \u003e 64 {\n\t\tpanic(\"overflow: int256 does not fit in int64 type\")\n\t}\n\treturn -int64(temp.Uint64())\n}\n\n// Neg sets z to -x and returns z.)\nfunc (z *Int) Neg(x *Int) *Int {\n\tif x.IsZero() {\n\t\tz.value.Clear()\n\t} else {\n\t\tz.value.Neg(\u0026x.value)\n\t}\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Int) Set(x *Int) *Int {\n\tz.value.Set(\u0026x.value)\n\treturn z\n}\n\n// SetFromUint256 converts a uint256.Uint to Int and sets the value to z.\nfunc (z *Int) SetUint256(x *uint256.Uint) *Int {\n\tz.value.Set(x)\n\treturn z\n}\n\n// ToString returns a string representation of z in base 10.\n// The string is prefixed with a minus sign if z is negative.\nfunc (z *Int) String() string {\n\tif z.value.IsZero() {\n\t\treturn \"0\"\n\t}\n\tsign := z.Sign()\n\tvar temp uint256.Uint\n\tif sign \u003e= 0 {\n\t\ttemp.Set(\u0026z.value)\n\t} else {\n\t\t// temp = -z.value\n\t\ttemp.Sub(uint256.NewUint(0), \u0026z.value)\n\t}\n\ts := temp.Dec()\n\tif sign \u003c 0 {\n\t\treturn \"-\" + s\n\t}\n\treturn s\n}\n\n// NilToZero returns the Int if it's not nil, or a new zero-valued Int otherwise.\n//\n// This method is useful for safely handling potentially nil Int pointers,\n// ensuring that operations always have a valid Int to work with.\nfunc (z *Int) NilToZero() *Int {\n\tif z == nil {\n\t\treturn Zero()\n\t}\n\treturn z\n}\n"},{"name":"conversion_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestSetInt64(t *testing.T) {\n\ttests := []struct {\n\t\tv int64\n\t\texpect int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // overflow (max int64)\n\t\t{-9223372036854775808, -1}, // underflow (min int64)\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetInt64(tt.v)\n\t\tif z.Sign() != tt.expect {\n\t\t\tt.Errorf(\"SetInt64(%d) = %d, want %d\", tt.v, z.Sign(), tt.expect)\n\t\t}\n\t}\n}\n\nfunc TestUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant uint64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"9223372036854775808\", 9223372036854775808},\n\t\t{\"18446744073709551615\", 18446744073709551615},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Uint64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"-1\"},\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Uint64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Uint64()\n\t}\n}\n\nfunc TestInt64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int64\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"9223372036854775807\", 9223372036854775807},\n\t\t{\"-1\", -1},\n\t\t{\"-9223372036854775808\", -9223372036854775808},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\n\t\tgot := z.Int64()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Uint64(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestInt64_Panic(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t}{\n\t\t{\"18446744073709551616\"},\n\t\t{\"18446744073709551617\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tdefer func() {\n\t\t\tif r := recover(); r == nil {\n\t\t\t\tt.Errorf(\"Int64(%s) did not panic\", tt.x)\n\t\t\t}\n\t\t}()\n\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Int64()\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"-1\"},\n\t\t{\"-1\", \"1\"},\n\t\t{\"9223372036854775807\", \"-9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Neg(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Neg(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSet(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tz.Set(z)\n\n\t\tgot := z.String()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Set(%s) = %s, want %s\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestSetUint256(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"9223372036854775807\", \"9223372036854775807\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tgot := New()\n\n\t\tz := uint256.MustFromDecimal(tt.x)\n\t\tgot.SetUint256(z)\n\n\t\tif got.String() != tt.want {\n\t\t\tt.Errorf(\"SetUint256(%s) = %s, want %s\", tt.x, got.String(), tt.want)\n\t\t}\n\t}\n}\n\nfunc TestString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0\", \"0\"},\n\t\t{\"1\", \"1\"},\n\t\t{\"-1\", \"-1\"},\n\t\t{\"123456789\", \"123456789\"},\n\t\t{\"-123456789\", \"-123456789\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\"}, // max uint64\n\t\t{\"-18446744073709551615\", \"-18446744073709551615\"},\n\t\t{TWO_POW_128_MINUS_1, TWO_POW_128_MINUS_1},\n\t\t{MINUS_TWO_POW_128, MINUS_TWO_POW_128},\n\t\t{MIN_INT256, MIN_INT256},\n\t\t{MAX_INT256, MAX_INT256},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx, err := FromDecimal(tt.input)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Failed to parse input (%s): %v\", tt.input, err)\n\t\t\tcontinue\n\t\t}\n\n\t\toutput := x.String()\n\n\t\tif output != tt.expected {\n\t\t\tt.Errorf(\"String(%s) = %s, want %s\", tt.input, output, tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestNilToZero(t *testing.T) {\n\tz := New().NilToZero()\n\tif z.Sign() != 0 {\n\t\tt.Errorf(\"NilToZero() = %d, want %d\", z.Sign(), 0)\n\t}\n}\n"},{"name":"doc.gno","body":"// The int256 package provides a 256-bit signed interger type for gno,\n// supporting arithmetic operations and bitwise manipulation.\n//\n// It designed for applications that require high-precision arithmetic\n// beyond the standard 64-bit range.\n//\n// ## Features\n//\n// - 256-bit Signed Integers: Support for large integer ranging from -2^255 to 2^255-1.\n// - Two's Complement Representation: Efficient storage and computation using two's complement.\n// - Arithmetic Operations: Add, Sub, Mul, Div, Mod, Inc, Dec, etc.\n// - Bitwise Operations: And, Or, Xor, Not, etc.\n// - Comparison Operations: Cmp, Eq, Lt, Gt, etc.\n// - Conversion Functions: Int to Uint, Uint to Int, etc.\n// - String Parsing and Formatting: Convert to and from decimal string representation.\n//\n// ## Notes\n//\n// - Some methods may panic when encountering invalid inputs or overflows.\n// - The `int256.Int` type can interact with `uint256.Uint` from the `p/demo/uint256` package.\n// - Unlike `math/big.Int`, the `int256.Int` type has fixed size (256-bit) and does not support\n// arbitrary precision arithmetic.\n//\n// # Division and modulus operations\n//\n// This package provides three different division and modulus operations:\n//\n// - Div and Rem: Truncated division (T-division)\n// - Quo and Mod: Floored division (F-division)\n// - DivE and ModE: Euclidean division (E-division)\n//\n// Truncated division (Div, Rem) is the most common implementation in modern processors\n// and programming languages. It rounds quotients towards zero and the remainder\n// always has the same sign as the dividend.\n//\n// Floored division (Quo, Mod) always rounds quotients towards negative infinity.\n// This ensures that the modulus is always non-negative for a positive divisor,\n// which can be useful in certain algorithms.\n//\n// Euclidean division (DivE, ModE) ensures that the remainder is always non-negative,\n// regardless of the signs of the dividend and divisor. This has several mathematical\n// advantages:\n//\n// 1. It satisfies the unique division with remainder theorem.\n// 2. It preserves division and modulus properties for negative divisors.\n// 3. It allows for optimizations in divisions by powers of two.\n//\n// [+] Currently, ModE and Mod are shared the same implementation.\n//\n// ## Performance considerations:\n//\n// - For most operations, the performance difference between these division types is negligible.\n// - Euclidean division may require an extra comparison and potentially an addition,\n// which could impact performance in extremely performance-critical scenarios.\n// - For divisions by powers of two, Euclidean division can be optimized to use\n// bitwise operations, potentially offering better performance.\n//\n// ## Usage guidelines:\n//\n// - Use Div and Rem for general-purpose division that matches most common expectations.\n// - Use Quo and Mod when you need a non-negative remainder for positive divisors,\n// or when implementing algorithms that assume floored division.\n// - Use DivE and ModE when you need the mathematical properties of Euclidean division,\n// or when working with algorithms that specifically require it.\n//\n// Note: When working with negative numbers, be aware of the differences in behavior\n// between these division types, especially at the boundaries of integer ranges.\n//\n// ## References\n//\n// Daan Leijen, “Division and Modulus for Computer Scientists”:\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\npackage int256\n"},{"name":"int256.gno","body":"package int256\n\nimport (\n\t\"errors\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nvar (\n\tint1 = NewInt(1)\n\tuint0 = uint256.NewUint(0)\n\tuint1 = uint256.NewUint(1)\n)\n\ntype Int struct {\n\tvalue uint256.Uint\n}\n\n// New creates and returns a new Int initialized to zero.\nfunc New() *Int {\n\treturn \u0026Int{}\n}\n\n// NewInt allocates and returns a new Int set to the value of the provided int64.\nfunc NewInt(x int64) *Int {\n\treturn New().SetInt64(x)\n}\n\n// Zero returns a new Int initialized to 0.\n//\n// This function is useful for creating a starting point for calculations or\n// when an explicit zero value is needed.\nfunc Zero() *Int { return \u0026Int{} }\n\n// One returns a new Int initialized to one.\n//\n// This function is convenient for operations that require a unit value,\n// such as incrementing or serving as an identity element in multiplication.\nfunc One() *Int {\n\treturn \u0026Int{\n\t\tvalue: *uint256.NewUint(1),\n\t}\n}\n\n// Sign determines the sign of the Int.\n//\n// It returns -1 for negative numbers, 0 for zero, and +1 for positive numbers.\nfunc (z *Int) Sign() int {\n\tif z == nil || z.IsZero() {\n\t\treturn 0\n\t}\n\t// Right shift the value by 255 bits to check the sign bit.\n\t// In two's complement representation, the most significant bit (MSB) is the sign bit.\n\t// If the MSB is 0, the number is positive; if it is 1, the number is negative.\n\t//\n\t// Example:\n\t// Original value: 1 0 1 0 ... 0 1 (256 bits)\n\t// After Rsh 255: 0 0 0 0 ... 0 1 (1 bit)\n\t//\n\t// This approach is highly efficient as it avoids the need for comparisons\n\t// or arithmetic operations on the full 256-bit number. Instead it reduces\n\t// the problem to checking a single bit.\n\t//\n\t// Additionally, this method will work correctly for all values,\n\t// including the minimum possible negative number (which in two's complement\n\t// doesn't have a positive counterpart in the same bit range).\n\tvar temp uint256.Uint\n\tif temp.Rsh(\u0026z.value, 255).IsZero() {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// FromDecimal creates a new Int from a decimal string representation.\n// It handles both positive and negative values.\n//\n// This function is useful for parsing user input or reading numeric data\n// from text-based formats.\nfunc FromDecimal(s string) (*Int, error) {\n\treturn New().SetString(s)\n}\n\n// MustFromDecimal is similar to FromDecimal but panics if the input string\n// is not a valid decimal representation.\nfunc MustFromDecimal(s string) *Int {\n\tz, err := FromDecimal(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn z\n}\n\n// SetString sets the Int to the value represented by the input string.\n// This method supports decimal string representations of integers and handles\n// both positive and negative values.\nfunc (z *Int) SetString(s string) (*Int, error) {\n\tif len(s) == 0 {\n\t\treturn nil, errors.New(\"cannot set int256 from empty string\")\n\t}\n\n\t// Check for negative sign\n\tneg := s[0] == '-'\n\tif neg || s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\n\t// Convert string to uint256\n\ttemp, err := uint256.FromDecimal(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If negative, negate the uint256 value\n\tif neg {\n\t\ttemp.Neg(temp)\n\t}\n\n\tz.value.Set(temp)\n\treturn z, nil\n}\n\n// FromUint256 sets the Int to the value of the provided Uint256.\n//\n// This method allows for conversion from unsigned 256-bit integers\n// to signed integers.\nfunc (z *Int) FromUint256(v *uint256.Uint) *Int {\n\tz.value.Set(v)\n\treturn z\n}\n"},{"name":"int256_test.gno","body":"package int256\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uint256\"\n)\n\nfunc TestInitializers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tfn func() *Int\n\t\twantSign int\n\t\twantStr string\n\t}{\n\t\t{\"Zero\", Zero, 0, \"0\"},\n\t\t{\"New\", New, 0, \"0\"},\n\t\t{\"One\", One, 1, \"1\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := tt.fn()\n\t\t\tif z.Sign() != tt.wantSign {\n\t\t\t\tt.Errorf(\"%s() = %d, want %d\", tt.name, z.Sign(), tt.wantSign)\n\t\t\t}\n\t\t\tif z.String() != tt.wantStr {\n\t\t\t\tt.Errorf(\"%s() = %s, want %s\", tt.name, z.String(), tt.wantStr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNewInt(t *testing.T) {\n\ttests := []struct {\n\t\tinput int64\n\t\texpected int\n\t}{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{-1, -1},\n\t\t{9223372036854775807, 1}, // max int64\n\t\t{-9223372036854775808, -1}, // min int64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := NewInt(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"NewInt(%d) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"FromDecimal(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestMustFromDecimal(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tshouldPanic bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123\", 1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif tt.shouldPanic {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"MustFromDecimal(%q) expected panic, but got nil\", tt.input)\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\n\t\tz := MustFromDecimal(tt.input)\n\t\tif !tt.shouldPanic \u0026\u0026 z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"MustFromDecimal(%q) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t}\n\t}\n}\n\nfunc TestSetUint64(t *testing.T) {\n\ttests := []uint64{\n\t\t0,\n\t\t1,\n\t\t18446744073709551615, // max uint64\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().SetUint64(tt)\n\t\tif z.Sign() \u003c 0 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is negative\", tt)\n\t\t}\n\t\tif tt == 0 \u0026\u0026 z.Sign() != 0 {\n\t\t\tt.Errorf(\"SetUint64(0) result is not zero\")\n\t\t}\n\t\tif tt \u003e 0 \u0026\u0026 z.Sign() != 1 {\n\t\t\tt.Errorf(\"SetUint64(%d) result is not positive\", tt)\n\t\t}\n\t}\n}\n\nfunc TestFromUint256(t *testing.T) {\n\ttests := []struct {\n\t\tinput *uint256.Uint\n\t\texpected int\n\t}{\n\t\t{uint256.NewUint(0), 0},\n\t\t{uint256.NewUint(1), 1},\n\t\t{uint256.NewUint(18446744073709551615), 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := New().FromUint256(tt.input)\n\t\tif z.Sign() != tt.expected {\n\t\t\tt.Errorf(\"FromUint256(%v) = %d, want %d\", tt.input, z.Sign(), tt.expected)\n\t\t}\n\t}\n}\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant int\n\t}{\n\t\t{\"0\", 0},\n\t\t{\"-0\", 0},\n\t\t{\"+0\", 0},\n\t\t{\"1\", 1},\n\t\t{\"-1\", -1},\n\t\t{\"9223372036854775807\", 1},\n\t\t{\"-9223372036854775808\", -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := MustFromDecimal(tt.x)\n\t\tgot := z.Sign()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Sign(%s) = %d, want %d\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc BenchmarkSign(b *testing.B) {\n\tz := New()\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tz.SetUint64(uint64(i))\n\t\tz.Sign()\n\t}\n}\n\nfunc TestSetAndToString(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t\tisError bool\n\t}{\n\t\t{\"0\", 0, false},\n\t\t{\"1\", 1, false},\n\t\t{\"-1\", -1, false},\n\t\t{\"123456789\", 1, false},\n\t\t{\"-123456789\", -1, false},\n\t\t{\"invalid\", 0, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := New().SetString(tt.input)\n\t\tif tt.isError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"SetString(%s) expected error, but got nil\", tt.input)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"SetString(%s) unexpected error: %v\", tt.input, err)\n\t\t\t} else if z.Sign() != tt.expected {\n\t\t\t\tt.Errorf(\"SetString(%s) sign is incorrect. Expected: %d, Actual: %d\", tt.input, tt.expected, z.Sign())\n\t\t\t} else if z.String() != tt.input {\n\t\t\t\tt.Errorf(\"SetString(%s) string representation is incorrect. Expected: %s, Actual: %s\", tt.input, tt.input, z.String())\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EHDHPEgVNYmF/cvzeSaZB8DrPysq/C1s8ErtYCM2mBRhbZufHB/fctbmHn96lwHlfi3VHeZ0wpk6bdbWj3puDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"int32","path":"gno.land/p/demo/math_eval/int32","files":[{"name":"int32.gno","body":"// eval/int32 is a evaluator for int32 expressions.\n// This code is heavily forked from https://github.com/dengsgo/math-engine\n// which is licensed under Apache 2.0:\n// https://raw.githubusercontent.com/dengsgo/math-engine/298e2b57b7e7350d0f67bd036916efd5709abe25/LICENSE\npackage int32\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tIdentifier = iota\n\tNumber // numbers\n\tOperator // +, -, *, /, etc.\n\tVariable // x, y, z, etc. (one-letter only)\n)\n\ntype expression interface {\n\tString() string\n}\n\ntype expressionRaw struct {\n\texpression string\n\tType int\n\tFlag int\n\tOffset int\n}\n\ntype parser struct {\n\tInput string\n\tch byte\n\toffset int\n\terr error\n}\n\ntype expressionNumber struct {\n\tVal int\n\tStr string\n}\n\ntype expressionVariable struct {\n\tVal int\n\tStr string\n}\n\ntype expressionOperation struct {\n\tOp string\n\tLhs,\n\tRhs expression\n}\n\ntype ast struct {\n\trawexpressions []*expressionRaw\n\tsource string\n\tcurrentexpression *expressionRaw\n\tcurrentIndex int\n\tdepth int\n\terr error\n}\n\n// Parse takes an expression string, e.g. \"1+2\" and returns\n// a parsed expression. If there is an error it will return.\nfunc Parse(s string) (ar expression, err error) {\n\ttoks, err := lexer(s)\n\tif err != nil {\n\t\treturn\n\t}\n\tast, err := newAST(toks, s)\n\tif err != nil {\n\t\treturn\n\t}\n\tar, err = ast.parseExpression()\n\treturn\n}\n\n// Eval takes a parsed expression and a map of variables (or nil). The parsed\n// expression is evaluated using any variables and returns the\n// resulting int and/or error.\nfunc Eval(expr expression, variables map[string]int) (res int, err error) {\n\tif err != nil {\n\t\treturn\n\t}\n\tvar l, r int\n\tswitch expr.(type) {\n\tcase expressionVariable:\n\t\tast := expr.(expressionVariable)\n\t\tok := false\n\t\tif variables != nil {\n\t\t\tres, ok = variables[ast.Str]\n\t\t}\n\t\tif !ok {\n\t\t\terr = ufmt.Errorf(\"variable '%s' not found\", ast.Str)\n\t\t}\n\t\treturn\n\tcase expressionOperation:\n\t\tast := expr.(expressionOperation)\n\t\tl, err = Eval(ast.Lhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tr, err = Eval(ast.Rhs, variables)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch ast.Op {\n\t\tcase \"+\":\n\t\t\tres = l + r\n\t\tcase \"-\":\n\t\t\tres = l - r\n\t\tcase \"*\":\n\t\t\tres = l * r\n\t\tcase \"/\":\n\t\t\tif r == 0 {\n\t\t\t\terr = ufmt.Errorf(\"violation of arithmetic specification: a division by zero in Eval: [%d/%d]\", l, r)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tres = l / r\n\t\tcase \"%\":\n\t\t\tif r == 0 {\n\t\t\t\tres = 0\n\t\t\t} else {\n\t\t\t\tres = l % r\n\t\t\t}\n\t\tcase \"^\":\n\t\t\tres = l ^ r\n\t\tcase \"\u003e\u003e\":\n\t\t\tres = l \u003e\u003e r\n\t\tcase \"\u003c\u003c\":\n\t\t\tres = l \u003c\u003c r\n\t\tcase \"\u003e\":\n\t\t\tif l \u003e r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u003c\":\n\t\t\tif l \u003c r {\n\t\t\t\tres = 1\n\t\t\t} else {\n\t\t\t\tres = 0\n\t\t\t}\n\t\tcase \"\u0026\":\n\t\t\tres = l \u0026 r\n\t\tcase \"|\":\n\t\t\tres = l | r\n\t\tdefault:\n\n\t\t}\n\tcase expressionNumber:\n\t\tres = expr.(expressionNumber).Val\n\t}\n\n\treturn\n}\n\nfunc expressionError(s string, pos int) string {\n\tr := strings.Repeat(\"-\", len(s)) + \"\\n\"\n\ts += \"\\n\"\n\tfor i := 0; i \u003c pos; i++ {\n\t\ts += \" \"\n\t}\n\ts += \"^\\n\"\n\treturn r + s + r\n}\n\nfunc (n expressionVariable) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionVariable: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (n expressionNumber) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionNumber: %s\",\n\t\tn.Str,\n\t)\n}\n\nfunc (b expressionOperation) String() string {\n\treturn ufmt.Sprintf(\n\t\t\"expressionOperation: (%s %s %s)\",\n\t\tb.Op,\n\t\tb.Lhs.String(),\n\t\tb.Rhs.String(),\n\t)\n}\n\nfunc newAST(toks []*expressionRaw, s string) (*ast, error) {\n\ta := \u0026ast{\n\t\trawexpressions: toks,\n\t\tsource: s,\n\t}\n\tif a.rawexpressions == nil || len(a.rawexpressions) == 0 {\n\t\treturn a, errors.New(\"empty token\")\n\t} else {\n\t\ta.currentIndex = 0\n\t\ta.currentexpression = a.rawexpressions[0]\n\t}\n\treturn a, nil\n}\n\nfunc (a *ast) parseExpression() (expression, error) {\n\ta.depth++ // called depth\n\tlhs := a.parsePrimary()\n\tr := a.parseBinOpRHS(0, lhs)\n\ta.depth--\n\tif a.depth == 0 \u0026\u0026 a.currentIndex != len(a.rawexpressions) \u0026\u0026 a.err == nil {\n\t\treturn r, ufmt.Errorf(\"bad expression, reaching the end or missing the operator\\n%s\",\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t}\n\treturn r, nil\n}\n\nfunc (a *ast) getNextexpressionRaw() *expressionRaw {\n\ta.currentIndex++\n\tif a.currentIndex \u003c len(a.rawexpressions) {\n\t\ta.currentexpression = a.rawexpressions[a.currentIndex]\n\t\treturn a.currentexpression\n\t}\n\treturn nil\n}\n\nfunc (a *ast) getTokPrecedence() int {\n\tswitch a.currentexpression.expression {\n\tcase \"/\", \"%\", \"*\":\n\t\treturn 100\n\tcase \"\u003c\u003c\", \"\u003e\u003e\":\n\t\treturn 80\n\tcase \"+\", \"-\":\n\t\treturn 75\n\tcase \"\u003c\", \"\u003e\":\n\t\treturn 70\n\tcase \"\u0026\":\n\t\treturn 60\n\tcase \"^\":\n\t\treturn 50\n\tcase \"|\":\n\t\treturn 40\n\t}\n\treturn -1\n}\n\nfunc (a *ast) parseNumber() expressionNumber {\n\tf64, err := strconv.Atoi(a.currentexpression.expression)\n\tif err != nil {\n\t\ta.err = ufmt.Errorf(\"%v\\nwant '(' or '0-9' but get '%s'\\n%s\",\n\t\t\terr.Error(),\n\t\t\ta.currentexpression.expression,\n\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\treturn expressionNumber{}\n\t}\n\tn := expressionNumber{\n\t\tVal: f64,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parseVariable() expressionVariable {\n\tn := expressionVariable{\n\t\tVal: 0,\n\t\tStr: a.currentexpression.expression,\n\t}\n\ta.getNextexpressionRaw()\n\treturn n\n}\n\nfunc (a *ast) parsePrimary() expression {\n\tswitch a.currentexpression.Type {\n\tcase Variable:\n\t\treturn a.parseVariable()\n\tcase Number:\n\t\treturn a.parseNumber()\n\tcase Operator:\n\t\tif a.currentexpression.expression == \"(\" {\n\t\t\tt := a.getNextexpressionRaw()\n\t\t\tif t == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\te, _ := a.parseExpression()\n\t\t\tif e == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif a.currentexpression.expression != \")\" {\n\t\t\t\ta.err = ufmt.Errorf(\"want ')' but get %s\\n%s\",\n\t\t\t\t\ta.currentexpression.expression,\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ta.getNextexpressionRaw()\n\t\t\treturn e\n\t\t} else if a.currentexpression.expression == \"-\" {\n\t\t\tif a.getNextexpressionRaw() == nil {\n\t\t\t\ta.err = ufmt.Errorf(\"want '0-9' but get '-'\\n%s\",\n\t\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbin := expressionOperation{\n\t\t\t\tOp: \"-\",\n\t\t\t\tLhs: expressionNumber{},\n\t\t\t\tRhs: a.parsePrimary(),\n\t\t\t}\n\t\t\treturn bin\n\t\t} else {\n\t\t\treturn a.parseNumber()\n\t\t}\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc (a *ast) parseBinOpRHS(execPrec int, lhs expression) expression {\n\tfor {\n\t\ttokPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c execPrec {\n\t\t\treturn lhs\n\t\t}\n\t\tbinOp := a.currentexpression.expression\n\t\tif a.getNextexpressionRaw() == nil {\n\t\t\ta.err = ufmt.Errorf(\"want '(' or '0-9' but get EOF\\n%s\",\n\t\t\t\texpressionError(a.source, a.currentexpression.Offset))\n\t\t\treturn nil\n\t\t}\n\t\trhs := a.parsePrimary()\n\t\tif rhs == nil {\n\t\t\treturn nil\n\t\t}\n\t\tnextPrec := a.getTokPrecedence()\n\t\tif tokPrec \u003c nextPrec {\n\t\t\trhs = a.parseBinOpRHS(tokPrec+1, rhs)\n\t\t\tif rhs == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tlhs = expressionOperation{\n\t\t\tOp: binOp,\n\t\t\tLhs: lhs,\n\t\t\tRhs: rhs,\n\t\t}\n\t}\n}\n\nfunc lexer(s string) ([]*expressionRaw, error) {\n\tp := \u0026parser{\n\t\tInput: s,\n\t\terr: nil,\n\t\tch: s[0],\n\t}\n\ttoks := p.parse()\n\tif p.err != nil {\n\t\treturn nil, p.err\n\t}\n\treturn toks, nil\n}\n\nfunc (p *parser) parse() []*expressionRaw {\n\ttoks := make([]*expressionRaw, 0)\n\tfor {\n\t\ttok := p.nextTok()\n\t\tif tok == nil {\n\t\t\tbreak\n\t\t}\n\t\ttoks = append(toks, tok)\n\t}\n\treturn toks\n}\n\nfunc (p *parser) nextTok() *expressionRaw {\n\tif p.offset \u003e= len(p.Input) || p.err != nil {\n\t\treturn nil\n\t}\n\tvar err error\n\tfor p.isWhitespace(p.ch) \u0026\u0026 err == nil {\n\t\terr = p.nextCh()\n\t}\n\tstart := p.offset\n\tvar tok *expressionRaw\n\tswitch p.ch {\n\tcase\n\t\t'(',\n\t\t')',\n\t\t'+',\n\t\t'-',\n\t\t'*',\n\t\t'/',\n\t\t'^',\n\t\t'\u0026',\n\t\t'|',\n\t\t'%':\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: string(p.ch),\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\terr = p.nextCh()\n\tcase '\u003e', '\u003c':\n\t\ttokS := string(p.ch)\n\t\tbb, be := p.nextChPeek()\n\t\tif be == nil \u0026\u0026 string(bb) == tokS {\n\t\t\ttokS += string(p.ch)\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: tokS,\n\t\t\tType: Operator,\n\t\t}\n\t\ttok.Offset = start\n\t\tif len(tokS) \u003e 1 {\n\t\t\tp.nextCh()\n\t\t}\n\t\terr = p.nextCh()\n\tcase\n\t\t'0',\n\t\t'1',\n\t\t'2',\n\t\t'3',\n\t\t'4',\n\t\t'5',\n\t\t'6',\n\t\t'7',\n\t\t'8',\n\t\t'9':\n\t\tfor p.isDigitNum(p.ch) \u0026\u0026 p.nextCh() == nil {\n\t\t\tif (p.ch == '-' || p.ch == '+') \u0026\u0026 p.Input[p.offset-1] != 'e' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ttok = \u0026expressionRaw{\n\t\t\texpression: strings.ReplaceAll(p.Input[start:p.offset], \"_\", \"\"),\n\t\t\tType: Number,\n\t\t}\n\t\ttok.Offset = start\n\tdefault:\n\t\tif p.isChar(p.ch) {\n\t\t\ttok = \u0026expressionRaw{\n\t\t\t\texpression: string(p.ch),\n\t\t\t\tType: Variable,\n\t\t\t}\n\t\t\ttok.Offset = start\n\t\t\terr = p.nextCh()\n\t\t} else if p.ch != ' ' {\n\t\t\tp.err = ufmt.Errorf(\"symbol error: unknown '%v', pos [%v:]\\n%s\",\n\t\t\t\tstring(p.ch),\n\t\t\t\tstart,\n\t\t\t\texpressionError(p.Input, start))\n\t\t}\n\t}\n\treturn tok\n}\n\nfunc (p *parser) nextChPeek() (byte, error) {\n\toffset := p.offset + 1\n\tif offset \u003c len(p.Input) {\n\t\treturn p.Input[offset], nil\n\t}\n\treturn byte(0), errors.New(\"no byte\")\n}\n\nfunc (p *parser) nextCh() error {\n\tp.offset++\n\tif p.offset \u003c len(p.Input) {\n\t\tp.ch = p.Input[p.offset]\n\t\treturn nil\n\t}\n\treturn errors.New(\"EOF\")\n}\n\nfunc (p *parser) isWhitespace(c byte) bool {\n\treturn c == ' ' ||\n\t\tc == '\\t' ||\n\t\tc == '\\n' ||\n\t\tc == '\\v' ||\n\t\tc == '\\f' ||\n\t\tc == '\\r'\n}\n\nfunc (p *parser) isDigitNum(c byte) bool {\n\treturn '0' \u003c= c \u0026\u0026 c \u003c= '9' || c == '.' || c == '_' || c == 'e' || c == '-' || c == '+'\n}\n\nfunc (p *parser) isChar(c byte) bool {\n\treturn 'a' \u003c= c \u0026\u0026 c \u003c= 'z' || 'A' \u003c= c \u0026\u0026 c \u003c= 'Z'\n}\n\nfunc (p *parser) isWordChar(c byte) bool {\n\treturn p.isChar(c) || '0' \u003c= c \u0026\u0026 c \u003c= '9'\n}\n"},{"name":"int32_test.gno","body":"package int32\n\nimport \"testing\"\n\nfunc TestOne(t *testing.T) {\n\tttt := []struct {\n\t\texp string\n\t\tres int\n\t}{\n\t\t{\"1\", 1},\n\t\t{\"--1\", 1},\n\t\t{\"1+2\", 3},\n\t\t{\"-1+2\", 1},\n\t\t{\"-(1+2)\", -3},\n\t\t{\"-(1+2)*5\", -15},\n\t\t{\"-(1+2)*5/3\", -5},\n\t\t{\"1+(-(1+2)*5/3)\", -4},\n\t\t{\"3^4\", 3 ^ 4},\n\t\t{\"8%2\", 8 % 2},\n\t\t{\"8%3\", 8 % 3},\n\t\t{\"8|3\", 8 | 3},\n\t\t{\"10%2\", 0},\n\t\t{\"(4 + 3)/2-1+11*15\", (4+3)/2 - 1 + 11*15},\n\t\t{\n\t\t\t\"(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64)\",\n\t\t\t(30099\u003e\u003e10^30099\u003e\u003e11)%5*((30099\u003e\u003e14\u00263^30099\u003e\u003e15\u00261)+1)*30099%99 + ((3 + (30099 \u003e\u003e 14 \u0026 3) - (30099 \u003e\u003e 16 \u0026 1)) / 3 * 30099 % 99 \u0026 64),\n\t\t},\n\t\t{\n\t\t\t\"(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64)\",\n\t\t\t(1023850\u003e\u003e10^1023850\u003e\u003e11)%5*((1023850\u003e\u003e14\u00263^1023850\u003e\u003e15\u00261)+1)*1023850%99 + ((3 + (1023850 \u003e\u003e 14 \u0026 3) - (1023850 \u003e\u003e 16 \u0026 1)) / 3 * 1023850 % 99 \u0026 64),\n\t\t},\n\t\t{\"((0000+1)*0000)\", 0},\n\t}\n\tfor _, tc := range ttt {\n\t\tt.Run(tc.exp, func(t *testing.T) {\n\t\t\texp, err := Parse(tc.exp)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"%s:\\n%s\", tc.exp, err.Error())\n\t\t\t} else {\n\t\t\t\tres, errEval := Eval(exp, nil)\n\t\t\t\tif errEval != nil {\n\t\t\t\t\tt.Errorf(\"eval error: %s\", errEval.Error())\n\t\t\t\t} else if res != tc.res {\n\t\t\t\t\tt.Errorf(\"%s:\\nexpected %d, got %d\", tc.exp, tc.res, res)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestVariables(t *testing.T) {\n\tfn := func(x, y int) int {\n\t\treturn 1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\n\t}\n\texpr := \"1 + ((x*3+1)*(x*2))\u003e\u003ey + 1\"\n\texp, err := Parse(expr)\n\tif err != nil {\n\t\tt.Errorf(\"could not parse: %s\", err.Error())\n\t}\n\tvariables := make(map[string]int)\n\tfor i := 0; i \u003c 10; i++ {\n\t\tvariables[\"x\"] = i\n\t\tvariables[\"y\"] = 2\n\t\tres, errEval := Eval(exp, variables)\n\t\tif errEval != nil {\n\t\t\tt.Errorf(\"could not evaluate: %s\", err.Error())\n\t\t}\n\t\texpected := fn(variables[\"x\"], variables[\"y\"])\n\t\tif res != expected {\n\t\t\tt.Errorf(\"expected: %d, actual: %d\", expected, res)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"atCZsxru+jgp7PHzTAYkQ6MaJ1bheBwIMljmW54QlS7LOnnesWbsgwArBCnB0VXX8DV76MsVB9rLwbtSuma6Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"isaac","path":"gno.land/p/wyhaines/rand/isaac","files":[{"name":"README.md","body":"# package isaac // import \"gno.land/p/demo/math/rand/isaac\"\n\nThis is a port of the ISAAC cryptographically secure PRNG,\noriginally based on the reference implementation found at\nhttps://burtleburtle.net/bob/rand/isaacafa.html\n\nISAAC has excellent statistical properties, with long cycle times, and\nuniformly distributed, unbiased, and unpredictable number generation. It can\nnot be distinguished from real random data, and in three decades of scrutiny,\nno practical attacks have been found.\n\nThe default random number algorithm in gno was ported from Go's v2 rand\nimplementatoon, which defaults to the PCG algorithm. This algorithm is\ncommonly used in language PRNG implementations because it has modest seeding\nrequirements, and generates statistically strong randomness.\n\nThis package provides an implementation of the 32-bit ISAAC PRNG algorithm. This\nalgorithm provides very strong statistical performance, and is cryptographically\nsecure, while still being substantially faster than the default PCG\nimplementation in `math/rand`. Note that this package does implement a `Uint64()`\nfunction in order to generate a 64 bit number out of two 32 bit numbers. Doing this\nmakes the generator only slightly faster than PCG, however,\n\nNote that the approach to seeing with ISAAC is very important for best results,\nand seeding with ISAAC is not as simple as seeding with a single uint64 value.\nThe ISAAC algorithm requires a 256-element seed. If used for cryptographic\npurposes, this will likely require entropy generated off-chain for actual\ncryptographically secure seeding. For other purposes, however, one can utilize\nthe built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to\ngenerate any missing seeds if fewer than 256 are provided.\n\n\n```\nBenchmark\n---------\nPCG: 1000000 Uint64 generated in 15.58s\nISAAC: 1000000 Uint64 generated in 13.23s (uint64)\nISAAC: 1000000 Uint32 generated in 6.43s (uint32)\nRatio: x1.18 times faster than PCG (uint64)\nRatio: x2.42 times faster than PCG (uint32)\n```\n\nUse it directly:\n\n```\nprng = isaac.New() // pass 0 to 256 uint32 seeds; if fewer than 256 are provided, the rest\n // will be generated using the xorshiftr128plus PRNG.\n```\n\nOr use it as a drop-in replacement for the default PRNT in Rand:\n\n```\nsource = isaac.New()\nprng := rand.New(source)\n```\n\n# TYPES\n\n`\ntype ISAAC struct {\n\t// Has unexported fields.\n}\n`\n\n`func New(seeds ...uint32) *ISAAC`\n ISAAC requires a large, 256-element seed. This implementation will leverage\n the entropy package combined with the the xorshiftr128plus PRNG to generate\n any missing seeds of fewer than the required number of arguments are\n provided.\n\n`func (isaac *ISAAC) MarshalBinary() ([]byte, error)`\n MarshalBinary() returns a byte array that encodes the state of the PRNG.\n This can later be used with UnmarshalBinary() to restore the state of the\n PRNG. MarshalBinary implements the encoding.BinaryMarshaler interface.\n\n`func (isaac *ISAAC) Seed(seed [256]uint32)`\n\n`func (isaac *ISAAC) Uint32() uint32`\n\n`func (isaac *ISAAC) Uint64() uint64`\n\n`func (isaac *ISAAC) UnmarshalBinary(data []byte) error`\n UnmarshalBinary() restores the state of the PRNG from a byte array\n that was created with MarshalBinary(). UnmarshalBinary implements the\n encoding.BinaryUnmarshaler interface.\n\n"},{"name":"isaac.gno","body":"// This is a port of the ISAAC cryptographically secure PRNG, originally based on the reference\n// implementation found at https://burtleburtle.net/bob/rand/isaacafa.html\n//\n// ISAAC has excellent statistical properties, with long cycle times, and uniformly distributed,\n// unbiased, and unpredictable number generation. It can not be distinguished from real random\n// data, and in three decades of scrutiny, no practical attacks have been found.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementation, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the 32-bit ISAAC PRNG algorithm. This\n// algorithm provides very strong statistical performance, and is cryptographically\n// secure, while still being substantially faster than the default PCG\n// implementation in `math/rand`. Note that this package does implement a `Uint64()`\n// function in order to generate a 64 bit number out of two 32 bit numbers. Doing this\n// makes the generator only slightly faster than PCG, however,\n//\n// Note that the approach to seeing with ISAAC is very important for best results, and seeding with\n// ISAAC is not as simple as seeding with a single uint64 value. The ISAAC algorithm requires a\n// 256-element seed. If used for cryptographic purposes, this will likely require entropy generated\n// off-chain for actual cryptographically secure seeding. For other purposes, however, one can\n// utilize the built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to generate\n// any missing seeds if fewer than 256 are provided.\n//\n//\t\tBenchmark\n//\t\t---------\n//\t\tPCG: 1000000 Uint64 generated in 15.58s\n//\t\tISAAC: 1000000 Uint64 generated in 13.23s\n//\t\tISAAC: 1000000 Uint32 generated in 6.43s\n//\t Ratio: x1.18 times faster than PCG (uint64)\n//\t Ratio: x2.42 times faster than PCG (uint32)\n//\n// Use it directly:\n//\n//\t\tprng = isaac.New() // pass 0 to 256 uint32 seeds; if fewer than 256 are provided, the rest\n//\t // will be generated using the xorshiftr128plus PRNG.\n//\n// Or use it as a drop-in replacement for the default PRNG in Rand:\n//\n//\tsource = isaac.New()\n//\tprng := rand.New(source)\npackage isaac\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"math/rand\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/wyhaines/rand/xorshiftr128plus\"\n)\n\ntype ISAAC struct {\n\trandrsl [256]uint32\n\trandcnt uint32\n\tmm [256]uint32\n\taa, bb, cc uint32\n\tseed [256]uint32\n}\n\n// ISAAC requires a large, 256-element seed. This implementation will leverage the entropy\n// package combined with the the xorshiftr128plus PRNG to generate any missing seeds of\n// fewer than the required number of arguments are provided.\nfunc New(seeds ...uint32) *ISAAC {\n\tisaac := \u0026ISAAC{}\n\tseed := [256]uint32{}\n\n\tindex := 0\n\tfor index = 0; index \u003c len(seeds); index++ {\n\t\tseed[index] = seeds[index]\n\t}\n\n\tif index \u003c 4 {\n\t\te := entropy.New()\n\t\tfor ; index \u003c 4; index++ {\n\t\t\tseed[index] = e.Value()\n\t\t}\n\t}\n\n\t// Use up to the first four seeds as seeding inputs for xorshiftr128+, in order to\n\t// use it to provide any remaining missing seeds.\n\tprng := xorshiftr128plus.New(\n\t\t(uint64(seed[0])\u003c\u003c32)|uint64(seed[1]),\n\t\t(uint64(seed[2])\u003c\u003c32)|uint64(seed[3]),\n\t)\n\tfor ; index \u003c 256; index += 2 {\n\t\tval := prng.Uint64()\n\t\tseed[index] = uint32(val \u0026 0xffffffff)\n\t\tif index+1 \u003c 256 {\n\t\t\tseed[index+1] = uint32(val \u003e\u003e 32)\n\t\t}\n\t}\n\tisaac.Seed(seed)\n\treturn isaac\n}\n\nfunc (isaac *ISAAC) Seed(seed [256]uint32) {\n\tisaac.randrsl = seed\n\tisaac.seed = seed\n\tisaac.randinit(true)\n}\n\n// beUint32() decodes a uint32 from a set of four bytes, assuming big endian encoding.\n// binary.bigEndian.Uint32, copied to avoid dependency\nfunc beUint32(b []byte) uint32 {\n\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint32(b[3]) | uint32(b[2])\u003c\u003c8 | uint32(b[1])\u003c\u003c16 | uint32(b[0])\u003c\u003c24\n}\n\n// bePutUint32() encodes a uint64 into a buffer of eight bytes.\n// binary.bigEndian.PutUint32, copied to avoid dependency\nfunc bePutUint32(b []byte, v uint32) {\n\t_ = b[3] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 24)\n\tb[1] = byte(v \u003e\u003e 16)\n\tb[2] = byte(v \u003e\u003e 8)\n\tb[3] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalISAACLabel = []byte(\"isaac:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (isaac *ISAAC) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 3094) // 6 + 1024 + 1024 + 1024 + 4 + 4 + 4 + 4 == 3090\n\tcopy(b, marshalISAACLabel)\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint32(b[6+i*4:], isaac.seed[i])\n\t}\n\tfor i := 256; i \u003c 512; i++ {\n\t\tbePutUint32(b[6+i*4:], isaac.randrsl[i-256])\n\t}\n\tfor i := 512; i \u003c 768; i++ {\n\t\tbePutUint32(b[6+i*4:], isaac.mm[i-512])\n\t}\n\tbePutUint32(b[3078:], isaac.aa)\n\tbePutUint32(b[3082:], isaac.bb)\n\tbePutUint32(b[3086:], isaac.cc)\n\tbePutUint32(b[3090:], isaac.randcnt)\n\n\treturn b, nil\n}\n\n// errUnmarshalISAAC is returned when unmarshalling fails.\nvar errUnmarshalISAAC = errors.New(\"invalid ISAAC encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (isaac *ISAAC) UnmarshalBinary(data []byte) error {\n\tif len(data) != 3094 || string(data[:6]) != string(marshalISAACLabel) {\n\t\treturn errUnmarshalISAAC\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.seed[i] = beUint32(data[6+i*4:])\n\t}\n\tfor i := 256; i \u003c 512; i++ {\n\t\tisaac.randrsl[i-256] = beUint32(data[6+i*4:])\n\t}\n\tfor i := 512; i \u003c 768; i++ {\n\t\tisaac.mm[i-512] = beUint32(data[6+i*4:])\n\t}\n\tisaac.aa = beUint32(data[3078:])\n\tisaac.bb = beUint32(data[3082:])\n\tisaac.cc = beUint32(data[3086:])\n\tisaac.randcnt = beUint32(data[3090:])\n\treturn nil\n}\n\nfunc (isaac *ISAAC) randinit(flag bool) {\n\tisaac.aa = 0\n\tisaac.bb = 0\n\tisaac.cc = 0\n\n\tvar a, b, c, d, e, f, g, h uint32 = 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9, 0x9e3779b9\n\n\tfor i := 0; i \u003c 4; i++ {\n\t\ta ^= b \u003c\u003c 11\n\t\td += a\n\t\tb += c\n\t\tb ^= c \u003e\u003e 2\n\t\te += b\n\t\tc += d\n\t\tc ^= d \u003c\u003c 8\n\t\tf += c\n\t\td += e\n\t\td ^= e \u003e\u003e 16\n\t\tg += d\n\t\te += f\n\t\te ^= f \u003c\u003c 10\n\t\th += e\n\t\tf += g\n\t\tf ^= g \u003e\u003e 4\n\t\ta += f\n\t\tg += h\n\t\tg ^= h \u003c\u003c 8\n\t\tb += g\n\t\th += a\n\t\th ^= a \u003e\u003e 9\n\t\tc += h\n\t\ta += b\n\t}\n\n\tfor i := 0; i \u003c 256; i += 8 {\n\t\tif flag {\n\t\t\ta += isaac.randrsl[i]\n\t\t\tb += isaac.randrsl[i+1]\n\t\t\tc += isaac.randrsl[i+2]\n\t\t\td += isaac.randrsl[i+3]\n\t\t\te += isaac.randrsl[i+4]\n\t\t\tf += isaac.randrsl[i+5]\n\t\t\tg += isaac.randrsl[i+6]\n\t\t\th += isaac.randrsl[i+7]\n\t\t}\n\n\t\ta ^= b \u003c\u003c 11\n\t\td += a\n\t\tb += c\n\t\tb ^= c \u003e\u003e 2\n\t\te += b\n\t\tc += d\n\t\tc ^= d \u003c\u003c 8\n\t\tf += c\n\t\td += e\n\t\td ^= e \u003e\u003e 16\n\t\tg += d\n\t\te += f\n\t\te ^= f \u003c\u003c 10\n\t\th += e\n\t\tf += g\n\t\tf ^= g \u003e\u003e 4\n\t\ta += f\n\t\tg += h\n\t\tg ^= h \u003c\u003c 8\n\t\tb += g\n\t\th += a\n\t\th ^= a \u003e\u003e 9\n\t\tc += h\n\t\ta += b\n\n\t\tisaac.mm[i] = a\n\t\tisaac.mm[i+1] = b\n\t\tisaac.mm[i+2] = c\n\t\tisaac.mm[i+3] = d\n\t\tisaac.mm[i+4] = e\n\t\tisaac.mm[i+5] = f\n\t\tisaac.mm[i+6] = g\n\t\tisaac.mm[i+7] = h\n\t}\n\n\tif flag {\n\t\tfor i := 0; i \u003c 256; i += 8 {\n\t\t\ta += isaac.mm[i]\n\t\t\tb += isaac.mm[i+1]\n\t\t\tc += isaac.mm[i+2]\n\t\t\td += isaac.mm[i+3]\n\t\t\te += isaac.mm[i+4]\n\t\t\tf += isaac.mm[i+5]\n\t\t\tg += isaac.mm[i+6]\n\t\t\th += isaac.mm[i+7]\n\n\t\t\ta ^= b \u003c\u003c 11\n\t\t\td += a\n\t\t\tb += c\n\t\t\tb ^= c \u003e\u003e 2\n\t\t\te += b\n\t\t\tc += d\n\t\t\tc ^= d \u003c\u003c 8\n\t\t\tf += c\n\t\t\td += e\n\t\t\td ^= e \u003e\u003e 16\n\t\t\tg += d\n\t\t\te += f\n\t\t\te ^= f \u003c\u003c 10\n\t\t\th += e\n\t\t\tf += g\n\t\t\tf ^= g \u003e\u003e 4\n\t\t\ta += f\n\t\t\tg += h\n\t\t\tg ^= h \u003c\u003c 8\n\t\t\tb += g\n\t\t\th += a\n\t\t\th ^= a \u003e\u003e 9\n\t\t\tc += h\n\t\t\ta += b\n\n\t\t\tisaac.mm[i] = a\n\t\t\tisaac.mm[i+1] = b\n\t\t\tisaac.mm[i+2] = c\n\t\t\tisaac.mm[i+3] = d\n\t\t\tisaac.mm[i+4] = e\n\t\t\tisaac.mm[i+5] = f\n\t\t\tisaac.mm[i+6] = g\n\t\t\tisaac.mm[i+7] = h\n\t\t}\n\t}\n\n\tisaac.isaac()\n\tisaac.randcnt = uint32(256)\n}\n\nfunc (isaac *ISAAC) isaac() {\n\tisaac.cc++\n\tisaac.bb += isaac.cc\n\n\tfor i := 0; i \u003c 256; i++ {\n\t\tx := isaac.mm[i]\n\t\tswitch i % 4 {\n\t\tcase 0:\n\t\t\tisaac.aa ^= isaac.aa \u003c\u003c 13\n\t\tcase 1:\n\t\t\tisaac.aa ^= isaac.aa \u003e\u003e 6\n\t\tcase 2:\n\t\t\tisaac.aa ^= isaac.aa \u003c\u003c 2\n\t\tcase 3:\n\t\t\tisaac.aa ^= isaac.aa \u003e\u003e 16\n\t\t}\n\t\tisaac.aa += isaac.mm[(i+128)\u00260xff]\n\n\t\ty := isaac.mm[(x\u003e\u003e2)\u00260xff] + isaac.aa + isaac.bb\n\t\tisaac.mm[i] = y\n\t\tisaac.bb = isaac.mm[(y\u003e\u003e10)\u00260xff] + x\n\t\tisaac.randrsl[i] = isaac.bb\n\t}\n}\n\n// Returns a random uint32.\nfunc (isaac *ISAAC) Uint32() uint32 {\n\tif isaac.randcnt == uint32(0) {\n\t\tisaac.isaac()\n\t\tisaac.randcnt = uint32(256)\n\t}\n\tisaac.randcnt--\n\treturn isaac.randrsl[isaac.randcnt]\n}\n\n// Returns a random uint64 by combining two uint32s.\nfunc (isaac *ISAAC) Uint64() uint64 {\n\treturn uint64(isaac.Uint32()) | (uint64(isaac.Uint32()) \u003c\u003c 32)\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkISAAC()' xorshift64star.gno\nfunc benchmarkISAAC(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = isaac.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"ISAAC: generate %d uint64\\n\", iterations))\n}\n\n// The averageISAAC() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the ISAAC PRNG.\nfunc averageISAAC(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New(987654321, 123456789, 999999999, 111111111)\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := isaac.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"ISAAC average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n\nfunc averagePCG(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := rand.NewPCG(987654321, 123456789)\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := isaac.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"PCG average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"PCG standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"PCG theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"isaac_test.gno","body":"package isaac\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\ntype OpenISAAC struct {\n\tRandrsl [256]uint32\n\tRandcnt uint32\n\tMm [256]uint32\n\tAa, Bb, Cc uint32\n\tSeed [256]uint32\n}\n\nfunc TestISAACSeeding(t *testing.T) {\n\tisaac := New()\n}\n\nfunc TestISAACRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t0.17828173023837635,\n\t\t0.7327795780287832,\n\t\t0.4850369074875177,\n\t\t0.9474842397428482,\n\t\t0.6747135561813891,\n\t\t0.7522507082868403,\n\t\t0.041115261836534356,\n\t\t0.7405243709084567,\n\t\t0.672863376128768,\n\t\t0.11866211399980553,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestISAACUint64(t *testing.T) {\n\tisaac := New()\n\n\texpected := []uint64{\n\t\t5986068031949215749,\n\t\t10437354066128700566,\n\t\t13478007513323023970,\n\t\t8969511410255984224,\n\t\t3869229557962857982,\n\t\t1762449743873204415,\n\t\t5292356290662282456,\n\t\t7893982194485405616,\n\t\t4296136494566588699,\n\t\t12414349056998262772,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc dupState(i *ISAAC) *OpenISAAC {\n\tstate := \u0026OpenISAAC{}\n\tstate.Seed = i.seed\n\tstate.Randrsl = i.randrsl\n\tstate.Mm = i.mm\n\tstate.Aa = i.aa\n\tstate.Bb = i.bb\n\tstate.Cc = i.cc\n\tstate.Randcnt = i.randcnt\n\n\treturn state\n}\n\nfunc TestISAACMarshalUnmarshal(t *testing.T) {\n\tisaac := New()\n\n\texpected1 := []uint64{\n\t\t5986068031949215749,\n\t\t10437354066128700566,\n\t\t13478007513323023970,\n\t\t8969511410255984224,\n\t\t3869229557962857982,\n\t}\n\n\texpected2 := []uint64{\n\t\t1762449743873204415,\n\t\t5292356290662282456,\n\t\t7893982194485405616,\n\t\t4296136494566588699,\n\t\t12414349056998262772,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := isaac.MarshalBinary()\n\n\tt.Logf(\"State: [%v]\\n\", dupState(isaac))\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := dupState(isaac)\n\n\tif err != nil {\n\t\tt.Errorf(\"ISAAC.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\tisaac.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%v]\\n\", dupState(isaac))\n\n\t// Now restore the state of the PRNG\n\terr = isaac.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%v]\\n\", dupState(isaac))\n\n\tif state_before.Seed != dupState(isaac).Seed {\n\t\tt.Errorf(\"Seed mismatch\")\n\t}\n\tif state_before.Randrsl != dupState(isaac).Randrsl {\n\t\tt.Errorf(\"Randrsl mismatch\")\n\t}\n\tif state_before.Mm != dupState(isaac).Mm {\n\t\tt.Errorf(\"Mm mismatch\")\n\t}\n\tif state_before.Aa != dupState(isaac).Aa {\n\t\tt.Errorf(\"Aa mismatch\")\n\t}\n\tif state_before.Bb != dupState(isaac).Bb {\n\t\tt.Errorf(\"Bb mismatch\")\n\t}\n\tif state_before.Cc != dupState(isaac).Cc {\n\t\tt.Errorf(\"Cc mismatch\")\n\t}\n\tif state_before.Randcnt != dupState(isaac).Randcnt {\n\t\tt.Errorf(\"Randcnt mismatch\")\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sfkU6A6zwiy2FEwBEWOOZsc+m6NK6W5GkOYFjuVTCBvmMF3UD0gdEJKLkkgE7D+LFoz+FafBVZF6frbR2/ZkDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"isaac64","path":"gno.land/p/wyhaines/rand/isaac64","files":[{"name":"README.md","body":"# package isaac64 // import \"gno.land/p/demo/math/rand/isaac64\"\n\nThis is a port of the 64-bit version of the ISAAC cryptographically\nsecure PRNG, originally based on the reference implementation found at\nhttps://burtleburtle.net/bob/rand/isaacafa.html\n\nISAAC has excellent statistical properties, with long cycle times, and\nuniformly distributed, unbiased, and unpredictable number generation. It can\nnot be distinguished from real random data, and in three decades of scrutiny,\nno practical attacks have been found.\n\nThe default random number algorithm in gno was ported from Go's v2 rand\nimplementatoon, which defaults to the PCG algorithm. This algorithm is\ncommonly used in language PRNG implementations because it has modest seeding\nrequirements, and generates statistically strong randomness.\n\nThis package provides an implementation of the 64-bit ISAAC PRNG algorithm. This\nalgorithm provides very strong statistical performance, and is cryptographically\nsecure, while still being substantially faster than the default PCG\nimplementation in `math/rand`.\n\nNote that the approach to seeing with ISAAC is very important for best results,\nand seeding with ISAAC is not as simple as seeding with a single uint64 value.\nThe ISAAC algorithm requires a 256-element seed. If used for cryptographic\npurposes, this will likely require entropy generated off-chain for actual\ncryptographically secure seeding. For other purposes, however, one can utilize\nthe built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to\ngenerate any missing seeds if fewer than 256 are provided.\n\n\n```\nBenchmark\n---------\nPCG: 1000000 Uint64 generated in 15.58s\nISAAC: 1000000 Uint64 generated in 8.95s\nISAAC: 1000000 Uint32 generated in 7.66s\nRatio: x1.74 times faster than PCG (uint64)\nRatio: x2.03 times faster than PCG (uint32)\n```\n\nUse it directly:\n\n\n```\nprng = isaac.New() // pass 0 to 256 uint64 seeds; if fewer than 256 are provided, the rest\n // will be generated using the xorshiftr128plus PRNG.\n```\n\nOr use it as a drop-in replacement for the default PRNT in Rand:\n\n```\nsource = isaac64.New()\nprng := rand.New(source)\n```\n\n## CONSTANTS\n\n\n```\nconst (\n\tRANDSIZL = 8\n\tRANDSIZ = 1 \u003c\u003c RANDSIZL // 256\n)\n```\n\n## TYPES\n\n\n```\ntype ISAAC struct {\n\t// Has unexported fields.\n}\n```\n\n`func New(seeds ...uint64) *ISAAC`\nISAAC requires a large, 256-element seed. This implementation will leverage\nthe entropy package combined with the xorshiftr128plus PRNG to generate any\nmissing seeds if fewer than the required number of arguments are provided.\n\n`func (isaac *ISAAC) MarshalBinary() ([]byte, error)`\nMarshalBinary() returns a byte array that encodes the state of the PRNG.\nThis can later be used with UnmarshalBinary() to restore the state of the\nPRNG. MarshalBinary implements the encoding.BinaryMarshaler interface.\n\n`func (isaac *ISAAC) Seed(seed [256]uint64)`\nReinitialize the generator with a new seed. A seed must be composed of 256 uint64.\n\n`func (isaac *ISAAC) Uint32() uint32`\nReturn a 32 bit random integer, composed of the high 32 bits of the generated 32 bit result.\n\n`func (isaac *ISAAC) Uint64() uint64`\nReturn a 64 bit random integer.\n\n`func (isaac *ISAAC) UnmarshalBinary(data []byte) error`\nUnmarshalBinary() restores the state of the PRNG from a byte array\nthat was created with MarshalBinary(). UnmarshalBinary implements the\nencoding.BinaryUnmarshaler interface.\n"},{"name":"isaac64.gno","body":"// This is a port of the 64-bit version of the ISAAC cryptographically secure PRNG, originally\n// based on the reference implementation found at https://burtleburtle.net/bob/rand/isaacafa.html\n//\n// ISAAC has excellent statistical properties, with long cycle times, and uniformly distributed,\n// unbiased, and unpredictable number generation. It can not be distinguished from real random\n// data, and in three decades of scrutiny, no practical attacks have been found.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementatoon, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the 64-bit ISAAC PRNG algorithm. This algorithm\n// provides very strong statistical performance, and is cryptographically secure, while still\n// being substantially faster than the default PCG implementation in `math/rand`.\n//\n// Note that the approach to seeing with ISAAC is very important for best results, and seeding with\n// ISAAC is not as simple as seeding with a single uint64 value. The ISAAC algorithm requires a\n// 256-element seed. If used for cryptographic purposes, this will likely require entropy generated\n// off-chain for actual cryptographically secure seeding. For other purposes, however, one can\n// utilize the built-in seeding mechanism, which will leverage the xorshiftr128plus PRNG to generate\n// any missing seeds if fewer than 256 are provided.\n//\n//\t\tBenchmark\n//\t\t---------\n//\t\tPCG: 1000000 Uint64 generated in 15.58s\n//\t\tISAAC: 1000000 Uint64 generated in 8.95s\n//\t ISAAC: 1000000 Uint32 generated in 7.66s\n//\t\tRatio: x1.74 times faster than PCG (uint64)\n//\t Ratio: x2.03 times faster than PCG (uint32)\n//\n// Use it directly:\n//\n//\t\tprng = isaac.New() // pass 0 to 256 uint64 seeds; if fewer than 256 are provided, the rest\n//\t // will be generated using the xorshiftr128plus PRNG.\n//\n// Or use it as a drop-in replacement for the default PRNT in Rand:\n//\n//\tsource = isaac64.New()\n//\tprng := rand.New(source)\npackage isaac64\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/wyhaines/rand/xorshiftr128plus\"\n)\n\nconst (\n\tRANDSIZL = 8\n\tRANDSIZ = 1 \u003c\u003c RANDSIZL // 256\n)\n\ntype ISAAC struct {\n\trandrsl [256]uint64\n\trandcnt uint64\n\tmm [256]uint64\n\taa, bb, cc uint64\n\tseed [256]uint64\n}\n\n// ISAAC requires a large, 256-element seed. This implementation will leverage the entropy\n// package combined with the xorshiftr128plus PRNG to generate any missing seeds if fewer than\n// the required number of arguments are provided.\nfunc New(seeds ...uint64) *ISAAC {\n\tisaac := \u0026ISAAC{}\n\tseed := [256]uint64{}\n\n\tindex := 0\n\tfor index = 0; index \u003c len(seeds) \u0026\u0026 index \u003c 256; index++ {\n\t\tseed[index] = seeds[index]\n\t}\n\n\tif index \u003c 2 {\n\t\te := entropy.New()\n\t\tfor ; index \u003c 2; index++ {\n\t\t\tseed[index] = e.Value64()\n\t\t}\n\t}\n\n\t// Use the first two seeds as seeding inputs for xorshiftr128plus, in order to\n\t// use it to provide any remaining missing seeds.\n\tprng := xorshiftr128plus.New(\n\t\tseed[0],\n\t\tseed[1],\n\t)\n\tfor ; index \u003c 256; index++ {\n\t\tseed[index] = prng.Uint64()\n\t}\n\tisaac.Seed(seed)\n\treturn isaac\n}\n\n// Reinitialize the generator with a new seed. A seed must be composed of 256 uint64.\nfunc (isaac *ISAAC) Seed(seed [256]uint64) {\n\tisaac.randrsl = seed\n\tisaac.seed = seed\n\tisaac.randinit(true)\n}\n\n// beUint64() decodes a uint64 from a set of eight bytes, assuming big endian encoding.\nfunc beUint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler\n\treturn uint64(b[7]) | uint64(b[6])\u003c\u003c8 | uint64(b[5])\u003c\u003c16 | uint64(b[4])\u003c\u003c24 |\n\t\tuint64(b[3])\u003c\u003c32 | uint64(b[2])\u003c\u003c40 | uint64(b[1])\u003c\u003c48 | uint64(b[0])\u003c\u003c56\n}\n\n// bePutUint64() encodes a uint64 into a buffer of eight bytes.\nfunc bePutUint64(b []byte, v uint64) {\n\t_ = b[7] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 56)\n\tb[1] = byte(v \u003e\u003e 48)\n\tb[2] = byte(v \u003e\u003e 40)\n\tb[3] = byte(v \u003e\u003e 32)\n\tb[4] = byte(v \u003e\u003e 24)\n\tb[5] = byte(v \u003e\u003e 16)\n\tb[6] = byte(v \u003e\u003e 8)\n\tb[7] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalISAACLabel = []byte(\"isaac:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (isaac *ISAAC) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 6+2048*3+8*3+8) // 6 + 2048*3 + 8*3 + 8 == 6182\n\tcopy(b, marshalISAACLabel)\n\toffset := 6\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint64(b[offset:], isaac.seed[i])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint64(b[offset:], isaac.randrsl[i])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tbePutUint64(b[offset:], isaac.mm[i])\n\t\toffset += 8\n\t}\n\tbePutUint64(b[offset:], isaac.aa)\n\toffset += 8\n\tbePutUint64(b[offset:], isaac.bb)\n\toffset += 8\n\tbePutUint64(b[offset:], isaac.cc)\n\toffset += 8\n\tbePutUint64(b[offset:], isaac.randcnt)\n\treturn b, nil\n}\n\n// errUnmarshalISAAC is returned when unmarshalling fails.\nvar errUnmarshalISAAC = errors.New(\"invalid ISAAC encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (isaac *ISAAC) UnmarshalBinary(data []byte) error {\n\tif len(data) != 6182 || string(data[:6]) != string(marshalISAACLabel) {\n\t\treturn errUnmarshalISAAC\n\t}\n\toffset := 6\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.seed[i] = beUint64(data[offset:])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.randrsl[i] = beUint64(data[offset:])\n\t\toffset += 8\n\t}\n\tfor i := 0; i \u003c 256; i++ {\n\t\tisaac.mm[i] = beUint64(data[offset:])\n\t\toffset += 8\n\t}\n\tisaac.aa = beUint64(data[offset:])\n\toffset += 8\n\tisaac.bb = beUint64(data[offset:])\n\toffset += 8\n\tisaac.cc = beUint64(data[offset:])\n\toffset += 8\n\tisaac.randcnt = beUint64(data[offset:])\n\treturn nil\n}\n\nfunc (isaac *ISAAC) randinit(flag bool) {\n\tvar a, b, c, d, e, f, g, h uint64\n\tisaac.aa = 0\n\tisaac.bb = 0\n\tisaac.cc = 0\n\n\ta = 0x9e3779b97f4a7c13\n\tb = 0x9e3779b97f4a7c13\n\tc = 0x9e3779b97f4a7c13\n\td = 0x9e3779b97f4a7c13\n\te = 0x9e3779b97f4a7c13\n\tf = 0x9e3779b97f4a7c13\n\tg = 0x9e3779b97f4a7c13\n\th = 0x9e3779b97f4a7c13\n\n\t// scramble it\n\tfor i := 0; i \u003c 4; i++ {\n\t\tmix(\u0026a, \u0026b, \u0026c, \u0026d, \u0026e, \u0026f, \u0026g, \u0026h)\n\t}\n\n\t// fill in mm[] with messy stuff\n\tfor i := 0; i \u003c RANDSIZ; i += 8 {\n\t\tif flag {\n\t\t\ta += isaac.randrsl[i]\n\t\t\tb += isaac.randrsl[i+1]\n\t\t\tc += isaac.randrsl[i+2]\n\t\t\td += isaac.randrsl[i+3]\n\t\t\te += isaac.randrsl[i+4]\n\t\t\tf += isaac.randrsl[i+5]\n\t\t\tg += isaac.randrsl[i+6]\n\t\t\th += isaac.randrsl[i+7]\n\t\t}\n\t\tmix(\u0026a, \u0026b, \u0026c, \u0026d, \u0026e, \u0026f, \u0026g, \u0026h)\n\t\tisaac.mm[i] = a\n\t\tisaac.mm[i+1] = b\n\t\tisaac.mm[i+2] = c\n\t\tisaac.mm[i+3] = d\n\t\tisaac.mm[i+4] = e\n\t\tisaac.mm[i+5] = f\n\t\tisaac.mm[i+6] = g\n\t\tisaac.mm[i+7] = h\n\t}\n\n\tif flag {\n\t\t// do a second pass to make all of the seed affect all of mm\n\t\tfor i := 0; i \u003c RANDSIZ; i += 8 {\n\t\t\ta += isaac.mm[i]\n\t\t\tb += isaac.mm[i+1]\n\t\t\tc += isaac.mm[i+2]\n\t\t\td += isaac.mm[i+3]\n\t\t\te += isaac.mm[i+4]\n\t\t\tf += isaac.mm[i+5]\n\t\t\tg += isaac.mm[i+6]\n\t\t\th += isaac.mm[i+7]\n\t\t\tmix(\u0026a, \u0026b, \u0026c, \u0026d, \u0026e, \u0026f, \u0026g, \u0026h)\n\t\t\tisaac.mm[i] = a\n\t\t\tisaac.mm[i+1] = b\n\t\t\tisaac.mm[i+2] = c\n\t\t\tisaac.mm[i+3] = d\n\t\t\tisaac.mm[i+4] = e\n\t\t\tisaac.mm[i+5] = f\n\t\t\tisaac.mm[i+6] = g\n\t\t\tisaac.mm[i+7] = h\n\t\t}\n\t}\n\n\tisaac.isaac()\n\tisaac.randcnt = RANDSIZ\n}\n\nfunc mix(a, b, c, d, e, f, g, h *uint64) {\n\t*a -= *e\n\t*f ^= *h \u003e\u003e 9\n\t*h += *a\n\n\t*b -= *f\n\t*g ^= *a \u003c\u003c 9\n\t*a += *b\n\n\t*c -= *g\n\t*h ^= *b \u003e\u003e 23\n\t*b += *c\n\n\t*d -= *h\n\t*a ^= *c \u003c\u003c 15\n\t*c += *d\n\n\t*e -= *a\n\t*b ^= *d \u003e\u003e 14\n\t*d += *e\n\n\t*f -= *b\n\t*c ^= *e \u003c\u003c 20\n\t*e += *f\n\n\t*g -= *c\n\t*d ^= *f \u003e\u003e 17\n\t*f += *g\n\n\t*h -= *d\n\t*e ^= *g \u003c\u003c 14\n\t*g += *h\n}\n\nfunc ind(mm []uint64, x uint64) uint64 {\n\treturn mm[(x\u003e\u003e3)\u0026(RANDSIZ-1)]\n}\n\nfunc (isaac *ISAAC) isaac() {\n\tvar a, b, x, y uint64\n\ta = isaac.aa\n\tb = isaac.bb + isaac.cc + 1\n\tisaac.cc++\n\n\tm := isaac.mm[:]\n\tr := isaac.randrsl[:]\n\n\tvar i, m2Index int\n\n\t// First half\n\tfor i = 0; i \u003c RANDSIZ/2; i++ {\n\t\tm2Index = i + RANDSIZ/2\n\t\tswitch i % 4 {\n\t\tcase 0:\n\t\t\ta = ^(a ^ (a \u003c\u003c 21)) + m[m2Index]\n\t\tcase 1:\n\t\t\ta = (a ^ (a \u003e\u003e 5)) + m[m2Index]\n\t\tcase 2:\n\t\t\ta = (a ^ (a \u003c\u003c 12)) + m[m2Index]\n\t\tcase 3:\n\t\t\ta = (a ^ (a \u003e\u003e 33)) + m[m2Index]\n\t\t}\n\t\tx = m[i]\n\t\ty = ind(m, x) + a + b\n\t\tm[i] = y\n\t\tb = ind(m, y\u003e\u003eRANDSIZL) + x\n\t\tr[i] = b\n\t}\n\n\t// Second half\n\tfor i = RANDSIZ / 2; i \u003c RANDSIZ; i++ {\n\t\tm2Index = i - RANDSIZ/2\n\t\tswitch i % 4 {\n\t\tcase 0:\n\t\t\ta = ^(a ^ (a \u003c\u003c 21)) + m[m2Index]\n\t\tcase 1:\n\t\t\ta = (a ^ (a \u003e\u003e 5)) + m[m2Index]\n\t\tcase 2:\n\t\t\ta = (a ^ (a \u003c\u003c 12)) + m[m2Index]\n\t\tcase 3:\n\t\t\ta = (a ^ (a \u003e\u003e 33)) + m[m2Index]\n\t\t}\n\t\tx = m[i]\n\t\ty = ind(m, x) + a + b\n\t\tm[i] = y\n\t\tb = ind(m, y\u003e\u003eRANDSIZL) + x\n\t\tr[i] = b\n\t}\n\n\tisaac.bb = b\n\tisaac.aa = a\n}\n\n// Return a 64 bit random integer.\nfunc (isaac *ISAAC) Uint64() uint64 {\n\tif isaac.randcnt == 0 {\n\t\tisaac.isaac()\n\t\tisaac.randcnt = RANDSIZ\n\t}\n\tisaac.randcnt--\n\treturn isaac.randrsl[isaac.randcnt]\n}\n\nvar gencycle int = 0\nvar bufferFor32 uint64 = uint64(0)\n\n// Return a 32 bit random integer, composed of the high 32 bits of the generated 32 bit result.\nfunc (isaac *ISAAC) Uint32() uint32 {\n\tif gencycle == 0 {\n\t\tbufferFor32 = isaac.Uint64()\n\t\tgencycle = 1\n\t\treturn uint32(bufferFor32 \u003e\u003e 32)\n\t}\n\n\tgencycle = 0\n\treturn uint32(bufferFor32 \u0026 0xffffffff)\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkISAAC()' isaac64.gno\nfunc benchmarkISAAC(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = isaac.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"ISAAC: generated %d uint64\\n\", iterations))\n}\n\n// The averageISAAC() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the ISAAC PRNG.\nfunc averageISAAC(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\tisaac := New(987654321987654321, 123456789987654321, 1, 997755331886644220)\n\n\tvar average float64 = 0\n\tvar squares []uint64 = make([]uint64, iterations)\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := isaac.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"ISAAC average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"ISAAC theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"isaac64_test.gno","body":"package isaac64\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\ntype OpenISAAC struct {\n\tRandrsl [256]uint64\n\tRandcnt uint64\n\tMm [256]uint64\n\tAa, Bb, Cc uint64\n\tSeed [256]uint64\n}\n\nfunc TestISAACSeeding(t *testing.T) {\n\tisaac := New()\n}\n\nfunc TestISAACRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t0.9273376778618531,\n\t\t0.327620245173309,\n\t\t0.49315436150113456,\n\t\t0.9222536383598948,\n\t\t0.2999297342641162,\n\t\t0.4050531597269049,\n\t\t0.5321357451089953,\n\t\t0.19478000239059667,\n\t\t0.5156043950865713,\n\t\t0.9233494881511063,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestISAACUint64(t *testing.T) {\n\tisaac := New()\n\n\texpected := []uint64{\n\t\t6781932227698873623,\n\t\t14800945299485332986,\n\t\t4114322996297394168,\n\t\t5328012296808356526,\n\t\t12789214124608876433,\n\t\t17611101631239575547,\n\t\t6877490613942924608,\n\t\t15954522518901325556,\n\t\t14180160756719376887,\n\t\t4977949063252893357,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc dupState(i *ISAAC) *OpenISAAC {\n\tstate := \u0026OpenISAAC{}\n\tstate.Seed = i.seed\n\tstate.Randrsl = i.randrsl\n\tstate.Mm = i.mm\n\tstate.Aa = i.aa\n\tstate.Bb = i.bb\n\tstate.Cc = i.cc\n\tstate.Randcnt = i.randcnt\n\n\treturn state\n}\n\nfunc TestISAACMarshalUnmarshal(t *testing.T) {\n\tisaac := New()\n\n\texpected1 := []uint64{\n\t\t6781932227698873623,\n\t\t14800945299485332986,\n\t\t4114322996297394168,\n\t\t5328012296808356526,\n\t\t12789214124608876433,\n\t}\n\n\texpected2 := []uint64{\n\t\t17611101631239575547,\n\t\t6877490613942924608,\n\t\t15954522518901325556,\n\t\t14180160756719376887,\n\t\t4977949063252893357,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := isaac.MarshalBinary()\n\n\tt.Logf(\"State: [%v]\\n\", dupState(isaac))\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := dupState(isaac)\n\n\tif err != nil {\n\t\tt.Errorf(\"ISAAC.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\tisaac.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%v]\\n\", dupState(isaac))\n\n\t// Now restore the state of the PRNG\n\terr = isaac.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%v]\\n\", dupState(isaac))\n\n\tif state_before.Seed != dupState(isaac).Seed {\n\t\tt.Errorf(\"Seed mismatch\")\n\t}\n\tif state_before.Randrsl != dupState(isaac).Randrsl {\n\t\tt.Errorf(\"Randrsl mismatch\")\n\t}\n\tif state_before.Mm != dupState(isaac).Mm {\n\t\tt.Errorf(\"Mm mismatch\")\n\t}\n\tif state_before.Aa != dupState(isaac).Aa {\n\t\tt.Errorf(\"Aa mismatch\")\n\t}\n\tif state_before.Bb != dupState(isaac).Bb {\n\t\tt.Errorf(\"Bb mismatch\")\n\t}\n\tif state_before.Cc != dupState(isaac).Cc {\n\t\tt.Errorf(\"Cc mismatch\")\n\t}\n\tif state_before.Randcnt != dupState(isaac).Randcnt {\n\t\tt.Errorf(\"Randcnt mismatch\")\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := isaac.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"ISAAC.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sADJcVBrqlU2e/ZY7VXVkNLCDPNHBsBTDB2rW6dQhxcp4S1qjG/HidYGVBRSHG02LV9WkV5GxFFZxt1L5nOPBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"json","path":"gno.land/p/demo/json","files":[{"name":"LICENSE","body":"# MIT License\n\nCopyright (c) 2019 Pyzhov Stepan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"name":"README.md","body":"# JSON Parser\n\nThe JSON parser is a package that provides functionality for parsing and processing JSON strings. This package accepts JSON strings as byte slices.\n\nCurrently, gno does not [support the `reflect` package](https://docs.gno.land/concepts/effective-gno#reflection-is-never-clear), so it cannot retrieve type information at runtime. Therefore, it is designed to infer and handle type information when parsing JSON strings using a state machine approach.\n\nAfter passing through the state machine, JSON strings are represented as the `Node` type. The `Node` type represents nodes for JSON data, including various types such as `ObjectNode`, `ArrayNode`, `StringNode`, `NumberNode`, `BoolNode`, and `NullNode`.\n\nThis package provides methods for manipulating, searching, and extracting the Node type.\n\n## State Machine\n\nTo parse JSON strings, a [finite state machine](https://en.wikipedia.org/wiki/Finite-state_machine) approach is used. The state machine transitions to the next state based on the current state and the input character while parsing the JSON string. Through this method, type information can be inferred and processed without reflect, and the amount of parser code can be significantly reduced.\n\nThe image below shows the state transitions of the state machine according to the states and input characters.\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e __: Start\n __ --\u003e ST: String\n __ --\u003e MI: Number\n __ --\u003e ZE: Zero\n __ --\u003e IN: Integer\n __ --\u003e T1: Boolean (true)\n __ --\u003e F1: Boolean (false)\n __ --\u003e N1: Null\n __ --\u003e ec: Empty Object End\n __ --\u003e cc: Object End\n __ --\u003e bc: Array End\n __ --\u003e co: Object Begin\n __ --\u003e bo: Array Begin\n __ --\u003e cm: Comma\n __ --\u003e cl: Colon\n __ --\u003e OK: Success/End\n ST --\u003e OK: String Complete\n MI --\u003e OK: Number Complete\n ZE --\u003e OK: Zero Complete\n IN --\u003e OK: Integer Complete\n T1 --\u003e OK: True Complete\n F1 --\u003e OK: False Complete\n N1 --\u003e OK: Null Complete\n ec --\u003e OK: Empty Object Complete\n cc --\u003e OK: Object Complete\n bc --\u003e OK: Array Complete\n co --\u003e OB: Inside Object\n bo --\u003e AR: Inside Array\n cm --\u003e KE: Expecting New Key\n cm --\u003e VA: Expecting New Value\n cl --\u003e VA: Expecting Value\n OB --\u003e ST: String in Object (Key)\n OB --\u003e ec: Empty Object\n OB --\u003e cc: End Object\n AR --\u003e ST: String in Array\n AR --\u003e bc: End Array\n KE --\u003e ST: String as Key\n VA --\u003e ST: String as Value\n VA --\u003e MI: Number as Value\n VA --\u003e T1: True as Value\n VA --\u003e F1: False as Value\n VA --\u003e N1: Null as Value\n OK --\u003e [*]: End\n```\n\n## Examples\n\nThis package provides parsing functionality along with encoding and decoding functionality. The following examples demonstrate how to use this package.\n\n### Decoding\n\nDecoding (or Unmarshaling) is the functionality that converts an input byte slice JSON string into a `Node` type.\n\nThe converted `Node` type allows you to modify the JSON data or search and extract data that meets specific conditions.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node, err := json.Unmarshal([]byte(`{\"foo\": \"var\"}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"node: %v\", node)\n}\n```\n\n### Encoding\n\nEncoding (or Marshaling) is the functionality that converts JSON data represented as a Node type into a byte slice JSON string.\n\n\u003e ⚠️ Caution: Converting a large `Node` type into a JSON string may _impact performance_. or might be cause _unexpected behavior_.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n node := ObjectNode(\"\", map[string]*Node{\n \"foo\": StringNode(\"foo\", \"bar\"),\n \"baz\": NumberNode(\"baz\", 100500),\n \"qux\": NullNode(\"qux\"),\n })\n\n b, err := json.Marshal(node)\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n ufmt.Sprintf(\"json: %s\", string(b))\n}\n```\n\n### Searching\n\nOnce the JSON data converted into a `Node` type, you can **search** and **extract** data that satisfy specific conditions. For example, you can find data with a specific type or data with a specific key.\n\nTo use this functionality, you can use methods in the `GetXXX` prefixed methods. The `MustXXX` methods also provide the same functionality as the former methods, but they will **panic** if data doesn't satisfies the condition.\n\nHere is an example of finding data with a specific key. For more examples, please refer to the [node.gno](node.gno) file.\n\n```go\npackage main\n\nimport (\n \"gno.land/p/demo/json\"\n \"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n root, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n if err != nil {\n ufmt.Errorf(\"error: %v\", err)\n }\n\n value, err := root.GetKey(\"foo\")\n if err != nil {\n ufmt.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n if value.MustBool() != true {\n ufmt.Errorf(\"value is not true\")\n }\n\n value, err = root.GetKey(\"bar\")\n if err != nil {\n t.Errorf(\"error occurred while getting key, %s\", err)\n }\n\n _, err = root.GetKey(\"baz\")\n if err == nil {\n t.Errorf(\"key baz is not exist. must be failed\")\n }\n}\n```\n\n## Contributing\n\nPlease submit any issues or pull requests for this package through the GitHub repository at [gnolang/gno](\u003chttps://github.com/gnolang/gno\u003e).\n"},{"name":"buffer.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype buffer struct {\n\tdata []byte\n\tlength int\n\tindex int\n\n\tlast States\n\tstate States\n\tclass Classes\n}\n\n// newBuffer creates a new buffer with the given data\nfunc newBuffer(data []byte) *buffer {\n\treturn \u0026buffer{\n\t\tdata: data,\n\t\tlength: len(data),\n\t\tlast: GO,\n\t\tstate: GO,\n\t}\n}\n\n// first retrieves the first non-whitespace (or other escaped) character in the buffer.\nfunc (b *buffer) first() (byte, error) {\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tc := b.data[b.index]\n\n\t\tif !(c == whiteSpace || c == carriageReturn || c == newLine || c == tab) {\n\t\t\treturn c, nil\n\t\t}\n\t}\n\n\treturn 0, io.EOF\n}\n\n// current returns the byte of the current index.\nfunc (b *buffer) current() (byte, error) {\n\tif b.index \u003e= b.length {\n\t\treturn 0, io.EOF\n\t}\n\n\treturn b.data[b.index], nil\n}\n\n// next moves to the next byte and returns it.\nfunc (b *buffer) next() (byte, error) {\n\tb.index++\n\treturn b.current()\n}\n\n// step just moves to the next position.\nfunc (b *buffer) step() error {\n\t_, err := b.next()\n\treturn err\n}\n\n// move moves the index by the given position.\nfunc (b *buffer) move(pos int) error {\n\tnewIndex := b.index + pos\n\n\tif newIndex \u003e b.length {\n\t\treturn io.EOF\n\t}\n\n\tb.index = newIndex\n\n\treturn nil\n}\n\n// slice returns the slice from the current index to the given position.\nfunc (b *buffer) slice(pos int) ([]byte, error) {\n\tend := b.index + pos\n\n\tif end \u003e b.length {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn b.data[b.index:end], nil\n}\n\n// sliceFromIndices returns a slice of the buffer's data starting from 'start' up to (but not including) 'stop'.\nfunc (b *buffer) sliceFromIndices(start, stop int) []byte {\n\tif start \u003e b.length {\n\t\tstart = b.length\n\t}\n\n\tif stop \u003e b.length {\n\t\tstop = b.length\n\t}\n\n\treturn b.data[start:stop]\n}\n\n// skip moves the index to skip the given byte.\nfunc (b *buffer) skip(bs byte) error {\n\tfor b.index \u003c b.length {\n\t\tif b.data[b.index] == bs \u0026\u0026 !b.backslash() {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn io.EOF\n}\n\n// skipAndReturnIndex moves the buffer index forward by one and returns the new index.\nfunc (b *buffer) skipAndReturnIndex() (int, error) {\n\terr := b.step()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\treturn b.index, nil\n}\n\n// skipUntil moves the buffer index forward until it encounters a byte contained in the endTokens set.\nfunc (b *buffer) skipUntil(endTokens map[byte]bool) (int, error) {\n\tfor b.index \u003c b.length {\n\t\tcurrentByte, err := b.current()\n\t\tif err != nil {\n\t\t\treturn b.index, err\n\t\t}\n\n\t\t// Check if the current byte is in the set of end tokens.\n\t\tif _, exists := endTokens[currentByte]; exists {\n\t\t\treturn b.index, nil\n\t\t}\n\n\t\tb.index++\n\t}\n\n\treturn b.index, io.EOF\n}\n\n// significantTokens is a map where the keys are the significant characters in a JSON path.\n// The values in the map are all true, which allows us to use the map as a set for quick lookups.\nvar significantTokens = [256]bool{\n\tdot: true, // access properties of an object\n\tdollarSign: true, // root object\n\tatSign: true, // current object\n\tbracketOpen: true, // start of an array index or filter expression\n\tbracketClose: true, // end of an array index or filter expression\n}\n\n// filterTokens stores the filter expression tokens.\nvar filterTokens = [256]bool{\n\taesterisk: true, // wildcard\n\tandSign: true,\n\torSign: true,\n}\n\n// skipToNextSignificantToken advances the buffer index to the next significant character.\n// Significant characters are defined based on the JSON path syntax.\nfunc (b *buffer) skipToNextSignificantToken() {\n\tfor b.index \u003c b.length {\n\t\tcurrent := b.data[b.index]\n\n\t\tif significantTokens[current] {\n\t\t\tbreak\n\t\t}\n\n\t\tb.index++\n\t}\n}\n\n// backslash checks to see if the number of backslashes before the current index is odd.\n//\n// This is used to check if the current character is escaped. However, unlike the \"unescape\" function,\n// \"backslash\" only serves to check the number of backslashes.\nfunc (b *buffer) backslash() bool {\n\tif b.index == 0 {\n\t\treturn false\n\t}\n\n\tcount := 0\n\tfor i := b.index - 1; ; i-- {\n\t\tif b.data[i] != backSlash {\n\t\t\tbreak\n\t\t}\n\n\t\tcount++\n\n\t\tif i == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn count%2 != 0\n}\n\n// numIndex holds a map of valid numeric characters\nvar numIndex = [256]bool{\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t'.': true,\n\t'e': true,\n\t'E': true,\n}\n\n// pathToken checks if the current token is a valid JSON path token.\nfunc (b *buffer) pathToken() error {\n\tvar stack []byte\n\n\tinToken := false\n\tinNumber := false\n\tfirst := b.index\n\n\tfor b.index \u003c b.length {\n\t\tc := b.data[b.index]\n\n\t\tswitch {\n\t\tcase c == doubleQuote || c == singleQuote:\n\t\t\tinToken = true\n\t\t\tif err := b.step(); err != nil {\n\t\t\t\treturn errors.New(\"error stepping through buffer\")\n\t\t\t}\n\n\t\t\tif err := b.skip(c); err != nil {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\t\tif b.index \u003e= b.length {\n\t\t\t\treturn errUnmatchedQuotePath\n\t\t\t}\n\n\t\tcase c == bracketOpen || c == parenOpen:\n\t\t\tinToken = true\n\t\t\tstack = append(stack, c)\n\n\t\tcase c == bracketClose || c == parenClose:\n\t\t\tinToken = true\n\t\t\tif len(stack) == 0 || (c == bracketClose \u0026\u0026 stack[len(stack)-1] != bracketOpen) || (c == parenClose \u0026\u0026 stack[len(stack)-1] != parenOpen) {\n\t\t\t\treturn errUnmatchedParenthesis\n\t\t\t}\n\n\t\t\tstack = stack[:len(stack)-1]\n\n\t\tcase pathStateContainsValidPathToken(c):\n\t\t\tinToken = true\n\n\t\tcase c == plus || c == minus:\n\t\t\tif inNumber || (b.index \u003e 0 \u0026\u0026 numIndex[b.data[b.index-1]]) {\n\t\t\t\tinToken = true\n\t\t\t} else if !inToken \u0026\u0026 (b.index+1 \u003c b.length \u0026\u0026 numIndex[b.data[b.index+1]]) {\n\t\t\t\tinToken = true\n\t\t\t\tinNumber = true\n\t\t\t} else if !inToken {\n\t\t\t\treturn errInvalidToken\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif len(stack) != 0 || inToken {\n\t\t\t\tinToken = true\n\t\t\t} else {\n\t\t\t\tgoto end\n\t\t\t}\n\t\t}\n\n\t\tb.index++\n\t}\n\nend:\n\tif len(stack) != 0 {\n\t\treturn errUnmatchedParenthesis\n\t}\n\n\tif first == b.index {\n\t\treturn errors.New(\"no token found\")\n\t}\n\n\tif inNumber \u0026\u0026 !numIndex[b.data[b.index-1]] {\n\t\tinNumber = false\n\t}\n\n\treturn nil\n}\n\nfunc pathStateContainsValidPathToken(c byte) bool {\n\tif significantTokens[c] {\n\t\treturn true\n\t}\n\n\tif filterTokens[c] {\n\t\treturn true\n\t}\n\n\tif numIndex[c] {\n\t\treturn true\n\t}\n\n\tif 'A' \u003c= c \u0026\u0026 c \u003c= 'Z' || 'a' \u003c= c \u0026\u0026 c \u003c= 'z' {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nfunc (b *buffer) numeric(token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(doubleQuote)\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\tif token {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\treturn nil\n\t\t}\n\n\t\tif b.state \u003c MI || b.state \u003e E3 {\n\t\t\treturn nil\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\tif b.last != ZE \u0026\u0026 b.last != IN \u0026\u0026 b.last != FR \u0026\u0026 b.last != E3 {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) getClasses(c byte) Classes {\n\tif b.data[b.index] \u003e= 128 {\n\t\treturn C_ETC\n\t}\n\n\tif c == singleQuote {\n\t\treturn QuoteAsciiClasses[b.data[b.index]]\n\t}\n\n\treturn AsciiClasses[b.data[b.index]]\n}\n\nfunc (b *buffer) getState() States {\n\tb.last = b.state\n\n\tb.class = b.getClasses(doubleQuote)\n\tif b.class == __ {\n\t\treturn __\n\t}\n\n\tb.state = StateTransitionTable[b.last][b.class]\n\n\treturn b.state\n}\n\n// string parses a string token from the buffer.\nfunc (b *buffer) string(search byte, token bool) error {\n\tif token {\n\t\tb.last = GO\n\t}\n\n\tfor ; b.index \u003c b.length; b.index++ {\n\t\tb.class = b.getClasses(search)\n\n\t\tif b.class == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tb.state = StateTransitionTable[b.last][b.class]\n\t\tif b.state == __ {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tif b.state \u003c __ {\n\t\t\tbreak\n\t\t}\n\n\t\tb.last = b.state\n\t}\n\n\treturn nil\n}\n\nfunc (b *buffer) word(bs []byte) error {\n\tvar c byte\n\n\tmax := len(bs)\n\tindex := 0\n\n\tfor ; b.index \u003c b.length \u0026\u0026 index \u003c max; b.index++ {\n\t\tc = b.data[b.index]\n\n\t\tif c != bs[index] {\n\t\t\treturn errInvalidToken\n\t\t}\n\n\t\tindex++\n\t\tif index \u003e= max {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif index != max {\n\t\treturn errInvalidToken\n\t}\n\n\treturn nil\n}\n\nfunc numberKind2f64(value interface{}) (result float64, err error) {\n\tswitch typed := value.(type) {\n\tcase float64:\n\t\tresult = typed\n\tcase float32:\n\t\tresult = float64(typed)\n\tcase int:\n\t\tresult = float64(typed)\n\tcase int8:\n\t\tresult = float64(typed)\n\tcase int16:\n\t\tresult = float64(typed)\n\tcase int32:\n\t\tresult = float64(typed)\n\tcase int64:\n\t\tresult = float64(typed)\n\tcase uint:\n\t\tresult = float64(typed)\n\tcase uint8:\n\t\tresult = float64(typed)\n\tcase uint16:\n\t\tresult = float64(typed)\n\tcase uint32:\n\t\tresult = float64(typed)\n\tcase uint64:\n\t\tresult = float64(typed)\n\tdefault:\n\t\terr = ufmt.Errorf(\"invalid number type: %T\", value)\n\t}\n\n\treturn\n}\n"},{"name":"buffer_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestBufferCurrent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\texpected byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid current byte\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 1,\n\t\t\t},\n\t\t\texpected: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF\",\n\t\t\tbuffer: \u0026buffer{\n\t\t\t\tdata: []byte(\"test\"),\n\t\t\t\tlength: 4,\n\t\t\t\tindex: 4,\n\t\t\t},\n\t\t\texpected: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.current()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.current() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"buffer.current() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferStep(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid step\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.step()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.step() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferNext(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\twant byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid next byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\twant: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\twant: 0,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.next()\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.next() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"buffer.next() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSlice(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twant []byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Valid slice -- 0 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 0,\n\t\t\twant: nil,\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 1 character\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 1,\n\t\t\twant: []byte(\"t\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 2 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twant: []byte(\"es\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 3 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 3,\n\t\t\twant: []byte(\"tes\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Valid slice -- 4 characters\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tpos: 4,\n\t\t\twant: []byte(\"test\"),\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"EOF error\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 3},\n\t\t\tpos: 2,\n\t\t\twant: nil,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := tt.buffer.slice(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.slice() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif string(got) != string(tt.want) {\n\t\t\t\tt.Errorf(\"buffer.slice() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferMove(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tpos int\n\t\twantErr bool\n\t\twantIdx int\n\t}{\n\t\t{\n\t\t\tname: \"Valid move\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 2,\n\t\t\twantErr: false,\n\t\t\twantIdx: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"Move beyond length\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 1},\n\t\t\tpos: 4,\n\t\t\twantErr: true,\n\t\t\twantIdx: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.move(tt.pos)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.move() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t\tif tt.buffer.index != tt.wantIdx {\n\t\t\t\tt.Errorf(\"buffer.move() index = %v, want %v\", tt.buffer.index, tt.wantIdx)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferSkip(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuffer *buffer\n\t\tb byte\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Skip byte\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'e',\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Skip to EOF\",\n\t\t\tbuffer: \u0026buffer{data: []byte(\"test\"), length: 4, index: 0},\n\t\t\tb: 'x',\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := tt.buffer.skip(tt.b)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"buffer.skip() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipToNextSignificantToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected int\n\t}{\n\t\t{\"No significant chars\", []byte(\"abc\"), 3},\n\t\t{\"One significant char at start\", []byte(\".abc\"), 0},\n\t\t{\"Significant char in middle\", []byte(\"ab.c\"), 2},\n\t\t{\"Multiple significant chars\", []byte(\"a$.c\"), 1},\n\t\t{\"Significant char at end\", []byte(\"abc$\"), 3},\n\t\t{\"Only significant chars\", []byte(\"$.\"), 0},\n\t\t{\"Empty string\", []byte(\"\"), 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.input)\n\t\t\tb.skipToNextSignificantToken()\n\t\t\tif b.index != tt.expected {\n\t\t\t\tt.Errorf(\"after skipToNextSignificantToken(), got index = %v, want %v\", b.index, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc mockBuffer(s string) *buffer {\n\treturn newBuffer([]byte(s))\n}\n\nfunc TestSkipAndReturnIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"StartOfString\", \"\", 0},\n\t\t{\"MiddleOfString\", \"abcdef\", 1},\n\t\t{\"EndOfString\", \"abc\", 1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipAndReturnIndex()\n\t\t\tif err != nil \u0026\u0026 tt.input != \"\" { // Expect no error unless input is empty\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipAndReturnIndex() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSkipUntil(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\ttokens map[byte]bool\n\t\texpected int\n\t}{\n\t\t{\"SkipToToken\", \"abcdefg\", map[byte]bool{'c': true}, 2},\n\t\t{\"SkipToEnd\", \"abcdefg\", map[byte]bool{'h': true}, 7},\n\t\t{\"SkipNone\", \"abcdefg\", map[byte]bool{'a': true}, 0},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot, err := buf.skipUntil(tt.tokens)\n\t\t\tif err != nil \u0026\u0026 got != len(tt.input) { // Expect error only if reached end without finding token\n\t\t\t\tt.Errorf(\"skipUntil() error = %v\", err)\n\t\t\t}\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"skipUntil() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSliceFromIndices(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\tstart int\n\t\tend int\n\t\texpected string\n\t}{\n\t\t{\"FullString\", \"abcdefg\", 0, 7, \"abcdefg\"},\n\t\t{\"Substring\", \"abcdefg\", 2, 5, \"cde\"},\n\t\t{\"OutOfBounds\", \"abcdefg\", 5, 10, \"fg\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := mockBuffer(tt.input)\n\t\t\tgot := buf.sliceFromIndices(tt.start, tt.end)\n\t\t\tif string(got) != tt.expected {\n\t\t\t\tt.Errorf(\"sliceFromIndices() = %v, want %v\", string(got), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferToken(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\tindex int\n\t\tisErr bool\n\t}{\n\t\t{\n\t\t\tname: \"Simple valid path\",\n\t\t\tpath: \"@.length\",\n\t\t\tindex: 8,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr\",\n\t\t\tpath: \"@['foo'].0.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with array expr and simple fomula\",\n\t\t\tpath: \"@['foo'].[(@.length - 1)].*\",\n\t\t\tindex: 27,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"Path with filter expr\",\n\t\t\tpath: \"@['foo'].[?(@.bar == 1 \u0026 @.baz \u003c @.length)].*\",\n\t\t\tindex: 45,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"addition of foo and bar\",\n\t\t\tpath: \"@.foo+@.bar\",\n\t\t\tindex: 11,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical AND of foo and bar\",\n\t\t\tpath: \"@.foo \u0026\u0026 @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"logical OR of foo and bar\",\n\t\t\tpath: \"@.foo || @.bar\",\n\t\t\tindex: 14,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing third element of foo\",\n\t\t\tpath: \"@.foo,3\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"accessing last element of array\",\n\t\t\tpath: \"@.length-1\",\n\t\t\tindex: 10,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"number 1\",\n\t\t\tpath: \"1\",\n\t\t\tindex: 1,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float\",\n\t\t\tpath: \"3.1e4\",\n\t\t\tindex: 5,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with minus\",\n\t\t\tpath: \"3.1e-4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"float with plus\",\n\t\t\tpath: \"3.1e+4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative number\",\n\t\t\tpath: \"-12345\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float\",\n\t\t\tpath: \"-3.1e4\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with minus\",\n\t\t\tpath: \"-3.1e-4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative float with plus\",\n\t\t\tpath: \"-3.1e+4\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string number\",\n\t\t\tpath: \"'12345'\",\n\t\t\tindex: 7,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with backslash\",\n\t\t\tpath: \"'foo \\\\'bar '\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"string with inner double quotes\",\n\t\t\tpath: \"'foo \\\"bar \\\"'\",\n\t\t\tindex: 12,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 1\",\n\t\t\tpath: \"(@abc)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis 2\",\n\t\t\tpath: \"[()]\",\n\t\t\tindex: 4,\n\t\t\tisErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch\",\n\t\t\tpath: \"[(])\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 2\",\n\t\t\tpath: \"(\",\n\t\t\tindex: 1,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"parenthesis mismatch 3\",\n\t\t\tpath: \"())]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch\",\n\t\t\tpath: \"[()\",\n\t\t\tindex: 3,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"bracket mismatch 2\",\n\t\t\tpath: \"()]\",\n\t\t\tindex: 2,\n\t\t\tisErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"path does not close bracket\",\n\t\t\tpath: \"@.foo[)\",\n\t\t\tindex: 6,\n\t\t\tisErr: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbuf := newBuffer([]byte(tt.path))\n\n\t\t\terr := buf.pathToken()\n\t\t\tif tt.isErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err == nil \u0026\u0026 tt.isErr {\n\t\t\t\tt.Errorf(\"Expected an error for path `%s`, but got none\", tt.path)\n\t\t\t}\n\n\t\t\tif buf.index != tt.index {\n\t\t\t\tt.Errorf(\"Expected final index %d, got %d (token: `%s`) for path `%s`\", tt.index, buf.index, string(buf.data[buf.index]), tt.path)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBufferFirst(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\texpected byte\n\t}{\n\t\t{\n\t\t\tname: \"Valid first byte\",\n\t\t\tdata: []byte(\"test\"),\n\t\t\texpected: 't',\n\t\t},\n\t\t{\n\t\t\tname: \"Empty buffer\",\n\t\t\tdata: []byte(\"\"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"Whitespace buffer\",\n\t\t\tdata: []byte(\" \"),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"whitespace in middle\",\n\t\t\tdata: []byte(\"hello world\"),\n\t\t\texpected: 'h',\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tb := newBuffer(tt.data)\n\n\t\t\tgot, err := b.first()\n\t\t\tif err != nil \u0026\u0026 tt.expected != 0 {\n\t\t\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"Expected first byte to be %q, got %q\", tt.expected, got)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"builder.gno","body":"package json\n\ntype NodeBuilder struct {\n\tnode *Node\n}\n\nfunc Builder() *NodeBuilder {\n\treturn \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n}\n\nfunc (b *NodeBuilder) WriteString(key, value string) *NodeBuilder {\n\tb.node.AppendObject(key, StringNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNumber(key string, value float64) *NodeBuilder {\n\tb.node.AppendObject(key, NumberNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteBool(key string, value bool) *NodeBuilder {\n\tb.node.AppendObject(key, BoolNode(\"\", value))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteNull(key string) *NodeBuilder {\n\tb.node.AppendObject(key, NullNode(\"\"))\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteObject(key string, fn func(*NodeBuilder)) *NodeBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tb.node.AppendObject(key, nestedBuilder.node)\n\treturn b\n}\n\nfunc (b *NodeBuilder) WriteArray(key string, fn func(*ArrayBuilder)) *NodeBuilder {\n\tarrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(arrayBuilder)\n\tb.node.AppendObject(key, ArrayNode(\"\", arrayBuilder.nodes))\n\treturn b\n}\n\nfunc (b *NodeBuilder) Node() *Node {\n\treturn b.node\n}\n\ntype ArrayBuilder struct {\n\tnodes []*Node\n}\n\nfunc (ab *ArrayBuilder) WriteString(value string) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, StringNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNumber(value float64) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NumberNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteInt(value int) *ArrayBuilder {\n\treturn ab.WriteNumber(float64(value))\n}\n\nfunc (ab *ArrayBuilder) WriteBool(value bool) *ArrayBuilder {\n\tab.nodes = append(ab.nodes, BoolNode(\"\", value))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteNull() *ArrayBuilder {\n\tab.nodes = append(ab.nodes, NullNode(\"\"))\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteObject(fn func(*NodeBuilder)) *ArrayBuilder {\n\tnestedBuilder := \u0026NodeBuilder{node: ObjectNode(\"\", nil)}\n\tfn(nestedBuilder)\n\tab.nodes = append(ab.nodes, nestedBuilder.node)\n\treturn ab\n}\n\nfunc (ab *ArrayBuilder) WriteArray(fn func(*ArrayBuilder)) *ArrayBuilder {\n\tnestedArrayBuilder := \u0026ArrayBuilder{nodes: []*Node{}}\n\tfn(nestedArrayBuilder)\n\tab.nodes = append(ab.nodes, ArrayNode(\"\", nestedArrayBuilder.nodes))\n\treturn ab\n}\n"},{"name":"builder_test.gno","body":"package json\n\nimport (\n\t\"testing\"\n)\n\nfunc TestNodeBuilder(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbuild func() *Node\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"plain object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteNumber(\"age\", 30).\n\t\t\t\t\tWriteBool(\"is_student\", false).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"age\":30,\"is_student\":false}`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteString(\"name\", \"Alice\").\n\t\t\t\t\tWriteObject(\"address\", func(b *NodeBuilder) {\n\t\t\t\t\t\tb.WriteString(\"city\", \"New York\").\n\t\t\t\t\t\t\tWriteNumber(\"zipcode\", 10001)\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"name\":\"Alice\",\"address\":{\"city\":\"New York\",\"zipcode\":10001}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"null node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().WriteNull(\"foo\").Node()\n\t\t\t},\n\t\t\texpected: `{\"foo\":null}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array node\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"items\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteString(\"item2\").\n\t\t\t\t\t\t\tWriteString(\"item3\")\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"items\":[\"item1\",\"item2\",\"item3\"]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with objects\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"users\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\tb.WriteString(\"name\", \"Bob\").\n\t\t\t\t\t\t\t\tWriteNumber(\"age\", 25)\n\t\t\t\t\t\t}).\n\t\t\t\t\t\t\tWriteObject(func(b *NodeBuilder) {\n\t\t\t\t\t\t\t\tb.WriteString(\"name\", \"Carol\").\n\t\t\t\t\t\t\t\t\tWriteNumber(\"age\", 27)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"users\":[{\"name\":\"Bob\",\"age\":25},{\"name\":\"Carol\",\"age\":27}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"array with various types\",\n\t\t\tbuild: func() *Node {\n\t\t\t\treturn Builder().\n\t\t\t\t\tWriteArray(\"values\", func(ab *ArrayBuilder) {\n\t\t\t\t\t\tab.WriteString(\"item1\").\n\t\t\t\t\t\t\tWriteNumber(123).\n\t\t\t\t\t\t\tWriteBool(true).\n\t\t\t\t\t\t\tWriteNull()\n\t\t\t\t\t}).\n\t\t\t\t\tNode()\n\t\t\t},\n\t\t\texpected: `{\"values\":[\"item1\",123,true,null]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tnode := tt.build()\n\t\t\tvalue, err := Marshal(node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t}\n\t\t\tif string(value) != tt.expected {\n\t\t\t\tt.Errorf(\"expected %s, got %s\", tt.expected, string(value))\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"decode.gno","body":"// ref: https://github.com/spyzhov/ajson/blob/master/decode.go\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// This limits the max nesting depth to prevent stack overflow.\n// This is permitted by https://tools.ietf.org/html/rfc7159#section-9\nconst maxNestingDepth = 10000\n\n// Unmarshal parses the JSON-encoded data and returns a Node.\n// The data must be a valid JSON-encoded value.\n//\n// Usage:\n//\n//\tnode, err := json.Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err != nil {\n//\t\tufmt.Println(err)\n//\t}\n//\tprintln(node) // {\"key\": \"value\"}\nfunc Unmarshal(data []byte) (*Node, error) {\n\tbuf := newBuffer(data)\n\n\tvar (\n\t\tstate States\n\t\tkey *string\n\t\tcurrent *Node\n\t\tnesting int\n\t\tuseKey = func() **string {\n\t\t\ttmp := cptrs(key)\n\t\t\tkey = nil\n\t\t\treturn \u0026tmp\n\t\t}\n\t\terr error\n\t)\n\n\tif _, err = buf.first(); err != nil {\n\t\treturn nil, io.EOF\n\t}\n\n\tfor {\n\t\tstate = buf.getState()\n\t\tif state == __ {\n\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t}\n\n\t\t// region state machine\n\t\tif state \u003e= GO {\n\t\t\tswitch buf.state {\n\t\t\tcase ST: // string\n\t\t\t\tif current != nil \u0026\u0026 current.IsObject() \u0026\u0026 key == nil {\n\t\t\t\t\t// key detected\n\t\t\t\t\tif key, err = getString(buf); err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tbuf.state = CO\n\t\t\t\t} else {\n\t\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, String, nesting, useKey())\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\terr = buf.string(doubleQuote, false)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\t\t\t\t\tbuf.state = OK\n\t\t\t\t}\n\n\t\t\tcase MI, ZE, IN: // number\n\t\t\t\tcurrent, err = processNumericNode(current, buf, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase T1, F1: // boolean\n\t\t\t\tliteral := falseLiteral\n\t\t\t\tif buf.state == T1 {\n\t\t\t\t\tliteral = trueLiteral\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Boolean, literal, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase N1: // null\n\t\t\t\tcurrent, nesting, err = processLiteralNode(current, buf, Null, nullLiteral, useKey(), nesting)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// region action\n\t\t\tswitch state {\n\t\t\tcase ec, cc: // \u003cempty\u003e }\n\t\t\t\tif key != nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase bc: // ]\n\t\t\t\tcurrent, nesting, err = updateNodeAndSetBufferState(current, buf, nesting, Array)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\tcase co, bo: // { [\n\t\t\t\tvalTyp, bState := Object, OB\n\t\t\t\tif state == bo {\n\t\t\t\t\tvalTyp, bState = Array, AR\n\t\t\t\t}\n\n\t\t\t\tcurrent, nesting, err = createNestedNode(current, buf, valTyp, nesting, useKey())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.state = bState\n\n\t\t\tcase cm: // ,\n\t\t\t\tif current == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif !current.isContainer() {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tif current.IsObject() {\n\t\t\t\t\tbuf.state = KE // key expected\n\t\t\t\t} else {\n\t\t\t\t\tbuf.state = VA // value expected\n\t\t\t\t}\n\n\t\t\tcase cl: // :\n\t\t\t\tif current == nil || !current.IsObject() || key == nil {\n\t\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t\t}\n\n\t\t\t\tbuf.state = VA\n\n\t\t\tdefault:\n\t\t\t\treturn nil, unexpectedTokenError(buf.data, buf.index)\n\t\t\t}\n\t\t}\n\n\t\tif buf.step() != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif _, err = buf.first(); err != nil {\n\t\t\terr = nil\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif current == nil || buf.state != OK {\n\t\treturn nil, io.EOF\n\t}\n\n\troot := current.root()\n\tif !root.ready() {\n\t\treturn nil, io.EOF\n\t}\n\n\treturn root, err\n}\n\n// UnmarshalSafe parses the JSON-encoded data and returns a Node.\nfunc UnmarshalSafe(data []byte) (*Node, error) {\n\tvar safe []byte\n\tsafe = append(safe, data...)\n\treturn Unmarshal(safe)\n}\n\n// processNumericNode creates a new node, processes a numeric value,\n// sets the node's borders, and moves to the previous node.\nfunc processNumericNode(current *Node, buf *buffer, key **string) (*Node, error) {\n\tvar err error\n\tcurrent, err = createNode(current, buf, Number, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = buf.numeric(false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tcurrent.borders[1] = buf.index\n\tif current.prev != nil {\n\t\tcurrent = current.prev\n\t}\n\n\tbuf.index -= 1\n\tbuf.state = OK\n\n\treturn current, nil\n}\n\n// processLiteralNode creates a new node, processes a literal value,\n// sets the node's borders, and moves to the previous node.\nfunc processLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteralValue []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tcurrent, nesting, err = createLiteralNode(current, buf, literalType, literalValue, useKey, nesting)\n\tif err != nil {\n\t\treturn nil, nesting, err\n\t}\n\treturn current, nesting, nil\n}\n\n// isValidContainerType checks if the current node is a valid container (object or array).\n// The container must satisfy the following conditions:\n// 1. The current node must not be nil.\n// 2. The current node must be an object or array.\n// 3. The current node must not be ready.\nfunc isValidContainerType(current *Node, nodeType ValueType) bool {\n\tswitch nodeType {\n\tcase Object:\n\t\treturn current != nil \u0026\u0026 current.IsObject() \u0026\u0026 !current.ready()\n\tcase Array:\n\t\treturn current != nil \u0026\u0026 current.IsArray() \u0026\u0026 !current.ready()\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// getString extracts a string from the buffer and advances the buffer index past the string.\nfunc getString(b *buffer) (*string, error) {\n\tstart := b.index\n\tif err := b.string(doubleQuote, false); err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue, ok := Unquote(b.data[start:b.index+1], doubleQuote)\n\tif !ok {\n\t\treturn nil, unexpectedTokenError(b.data, start)\n\t}\n\n\treturn \u0026value, nil\n}\n\n// createNode creates a new node and sets the key if it is not nil.\nfunc createNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tkey **string,\n) (*Node, error) {\n\tvar err error\n\tcurrent, err = NewNode(current, buf, nodeType, key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn current, nil\n}\n\n// createNestedNode creates a new nested node (array or object) and sets the key if it is not nil.\nfunc createNestedNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnodeType ValueType,\n\tnesting int,\n\tkey **string,\n) (*Node, int, error) {\n\tvar err error\n\tif nesting, err = checkNestingDepth(nesting); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\tif current, err = createNode(current, buf, nodeType, key); err != nil {\n\t\treturn nil, nesting, err\n\t}\n\n\treturn current, nesting, nil\n}\n\n// createLiteralNode creates a new literal node and sets the key if it is not nil.\n// The literal is a byte slice that represents a boolean or null value.\nfunc createLiteralNode(\n\tcurrent *Node,\n\tbuf *buffer,\n\tliteralType ValueType,\n\tliteral []byte,\n\tuseKey **string,\n\tnesting int,\n) (*Node, int, error) {\n\tvar err error\n\tif current, err = createNode(current, buf, literalType, useKey); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tif err = buf.word(literal); err != nil {\n\t\treturn nil, 0, err\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, false)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// updateNode updates the current node and returns the previous node.\nfunc updateNode(\n\tcurrent *Node, buf *buffer, nesting int, decreaseLevel bool,\n) (*Node, int) {\n\tcurrent.borders[1] = buf.index + 1\n\n\tprev := current.prev\n\tif prev == nil {\n\t\treturn current, nesting\n\t}\n\n\tcurrent = prev\n\tif decreaseLevel {\n\t\tnesting--\n\t}\n\n\treturn current, nesting\n}\n\n// updateNodeAndSetBufferState updates the current node and sets the buffer state to OK.\nfunc updateNodeAndSetBufferState(\n\tcurrent *Node,\n\tbuf *buffer,\n\tnesting int,\n\ttyp ValueType,\n) (*Node, int, error) {\n\tif !isValidContainerType(current, typ) {\n\t\treturn nil, nesting, unexpectedTokenError(buf.data, buf.index)\n\t}\n\n\tcurrent, nesting = updateNode(current, buf, nesting, true)\n\tbuf.state = OK\n\n\treturn current, nesting, nil\n}\n\n// checkNestingDepth checks if the nesting depth is within the maximum allowed depth.\nfunc checkNestingDepth(nesting int) (int, error) {\n\tif nesting \u003e= maxNestingDepth {\n\t\treturn nesting, errors.New(\"maximum nesting depth exceeded\")\n\t}\n\n\treturn nesting + 1, nil\n}\n\nfunc unexpectedTokenError(data []byte, index int) error {\n\treturn ufmt.Errorf(\"unexpected token at index %d. data %b\", index, data)\n}\n"},{"name":"decode_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\ntype testNode struct {\n\tname string\n\tinput []byte\n\tvalue []byte\n\t_type ValueType\n}\n\nfunc simpleValid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.input, err.Error())\n\t} else if root == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t} else if root.nodeType != test._type {\n\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t} else if !bytes.Equal(root.source(), test.value) {\n\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t}\n}\n\nfunc simpleInvalid(test *testNode, t *testing.T) {\n\troot, err := Unmarshal(test.input)\n\tif err == nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): error expected, got '%s'\", test.name, root.source())\n\t} else if root != nil {\n\t\tt.Errorf(\"Error on Unmarshal(%s): root is not nil\", test.name)\n\t}\n}\n\nfunc simpleCorrupted(name string) *testNode {\n\treturn \u0026testNode{name: name, input: []byte(name)}\n}\n\nfunc TestUnmarshal_StringSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"blank\", input: []byte(\"\\\"\\\"\"), _type: String, value: []byte(\"\\\"\\\"\")},\n\t\t{name: \"char\", input: []byte(\"\\\"c\\\"\"), _type: String, value: []byte(\"\\\"c\\\"\")},\n\t\t{name: \"word\", input: []byte(\"\\\"cat\\\"\"), _type: String, value: []byte(\"\\\"cat\\\"\")},\n\t\t{name: \"spaces\", input: []byte(\" \\\"good cat or dog\\\"\\r\\n \"), _type: String, value: []byte(\"\\\"good cat or dog\\\"\")},\n\t\t{name: \"backslash\", input: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\"cat\\\\\\\"\\\"\")},\n\t\t{name: \"backslash 2\", input: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\"), _type: String, value: []byte(\"\\\"good \\\\\\\\\\\\\\\"cat\\\\\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NumericSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"1\", input: []byte(\"1\"), _type: Number, value: []byte(\"1\")},\n\t\t{name: \"-1\", input: []byte(\"-1\"), _type: Number, value: []byte(\"-1\")},\n\n\t\t{name: \"1234567890\", input: []byte(\"1234567890\"), _type: Number, value: []byte(\"1234567890\")},\n\t\t{name: \"-123\", input: []byte(\"-123\"), _type: Number, value: []byte(\"-123\")},\n\n\t\t{name: \"123.456\", input: []byte(\"123.456\"), _type: Number, value: []byte(\"123.456\")},\n\t\t{name: \"-123.456\", input: []byte(\"-123.456\"), _type: Number, value: []byte(\"-123.456\")},\n\n\t\t{name: \"1e3\", input: []byte(\"1e3\"), _type: Number, value: []byte(\"1e3\")},\n\t\t{name: \"1e+3\", input: []byte(\"1e+3\"), _type: Number, value: []byte(\"1e+3\")},\n\t\t{name: \"1e-3\", input: []byte(\"1e-3\"), _type: Number, value: []byte(\"1e-3\")},\n\t\t{name: \"-1e3\", input: []byte(\"-1e3\"), _type: Number, value: []byte(\"-1e3\")},\n\t\t{name: \"-1e-3\", input: []byte(\"-1e-3\"), _type: Number, value: []byte(\"-1e-3\")},\n\n\t\t{name: \"1.123e3456\", input: []byte(\"1.123e3456\"), _type: Number, value: []byte(\"1.123e3456\")},\n\t\t{name: \"1.123e-3456\", input: []byte(\"1.123e-3456\"), _type: Number, value: []byte(\"1.123e-3456\")},\n\t\t{name: \"-1.123e3456\", input: []byte(\"-1.123e3456\"), _type: Number, value: []byte(\"-1.123e3456\")},\n\t\t{name: \"-1.123e-3456\", input: []byte(\"-1.123e-3456\"), _type: Number, value: []byte(\"-1.123e-3456\")},\n\n\t\t{name: \"1E3\", input: []byte(\"1E3\"), _type: Number, value: []byte(\"1E3\")},\n\t\t{name: \"1E-3\", input: []byte(\"1E-3\"), _type: Number, value: []byte(\"1E-3\")},\n\t\t{name: \"-1E3\", input: []byte(\"-1E3\"), _type: Number, value: []byte(\"-1E3\")},\n\t\t{name: \"-1E-3\", input: []byte(\"-1E-3\"), _type: Number, value: []byte(\"-1E-3\")},\n\n\t\t{name: \"1.123E3456\", input: []byte(\"1.123E3456\"), _type: Number, value: []byte(\"1.123E3456\")},\n\t\t{name: \"1.123E-3456\", input: []byte(\"1.123E-3456\"), _type: Number, value: []byte(\"1.123E-3456\")},\n\t\t{name: \"-1.123E3456\", input: []byte(\"-1.123E3456\"), _type: Number, value: []byte(\"-1.123E3456\")},\n\t\t{name: \"-1.123E-3456\", input: []byte(\"-1.123E-3456\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\n\t\t{name: \"-1.123E-3456 with spaces\", input: []byte(\" \\r -1.123E-3456 \\t\\n\"), _type: Number, value: []byte(\"-1.123E-3456\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(test.input)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s\", test.name, err.Error())\n\t\t\t} else if root == nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): root is nil\", test.name)\n\t\t\t} else if root.nodeType != test._type {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): wrong type\", test.name)\n\t\t\t} else if !bytes.Equal(root.source(), test.value) {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(%s): %s != %s\", test.name, root.source(), test.value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_StringSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"white NL\", input: []byte(\"\\\"foo\\nbar\\\"\")},\n\t\t{name: \"white R\", input: []byte(\"\\\"foo\\rbar\\\"\")},\n\t\t{name: \"white Tab\", input: []byte(\"\\\"foo\\tbar\\\"\")},\n\t\t{name: \"wrong quotes\", input: []byte(\"'cat'\")},\n\t\t{name: \"double string\", input: []byte(\"\\\"Hello\\\" \\\"World\\\"\")},\n\t\t{name: \"quotes in quotes\", input: []byte(\"\\\"good \\\"cat\\\"\\\"\")},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"{}\", input: []byte(\"{}\"), _type: Object, value: []byte(\"{}\")},\n\t\t{name: `{ \\r\\n }`, input: []byte(\"{ \\r\\n }\"), _type: Object, value: []byte(\"{ \\r\\n }\")},\n\t\t{name: `{\"key\":1}`, input: []byte(`{\"key\":1}`), _type: Object, value: []byte(`{\"key\":1}`)},\n\t\t{name: `{\"key\":true}`, input: []byte(`{\"key\":true}`), _type: Object, value: []byte(`{\"key\":true}`)},\n\t\t{name: `{\"key\":\"value\"}`, input: []byte(`{\"key\":\"value\"}`), _type: Object, value: []byte(`{\"key\":\"value\"}`)},\n\t\t{name: `{\"foo\":\"bar\",\"baz\":\"foo\"}`, input: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`), _type: Object, value: []byte(`{\"foo\":\"bar\", \"baz\":\"foo\"}`)},\n\t\t{name: \"spaces\", input: []byte(` { \"foo\" : \"bar\" , \"baz\" : \"foo\" } `), _type: Object, value: []byte(`{ \"foo\" : \"bar\" , \"baz\" : \"foo\" }`)},\n\t\t{name: \"nested\", input: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`), _type: Object, value: []byte(`{\"foo\":{\"bar\":{\"baz\":{}}}}`)},\n\t\t{name: \"array\", input: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`), _type: Object, value: []byte(`{\"array\":[{},{},{\"foo\":[{\"bar\":[\"baz\"]}]}]}`)},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ObjectSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"{{{\\\"key\\\": \\\"foo\\\"{{{{\"),\n\t\tsimpleCorrupted(\"}\"),\n\t\tsimpleCorrupted(\"{ }}}}}}}\"),\n\t\tsimpleCorrupted(\" }\"),\n\t\tsimpleCorrupted(\"{,}\"),\n\t\tsimpleCorrupted(\"{:}\"),\n\t\tsimpleCorrupted(\"{100000}\"),\n\t\tsimpleCorrupted(\"{1:1}\"),\n\t\tsimpleCorrupted(\"{'1:2,3:4'}\"),\n\t\tsimpleCorrupted(`{\"d\"}`),\n\t\tsimpleCorrupted(`{\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":}`),\n\t\tsimpleCorrupted(`{:\"foo\"}`),\n\t\tsimpleCorrupted(`{\"foo\":bar}`),\n\t\tsimpleCorrupted(`{\"foo\":\"bar\",}`),\n\t\tsimpleCorrupted(`{}{}`),\n\t\tsimpleCorrupted(`{},{}`),\n\t\tsimpleCorrupted(`{[},{]}`),\n\t\tsimpleCorrupted(`{[,]}`),\n\t\tsimpleCorrupted(`{[]}`),\n\t\tsimpleCorrupted(`{}1`),\n\t\tsimpleCorrupted(`1{}`),\n\t\tsimpleCorrupted(`{\"x\"::1}`),\n\t\tsimpleCorrupted(`{null:null}`),\n\t\tsimpleCorrupted(`{\"foo:\"bar\"}`),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_NullSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"nul\", input: []byte(\"nul\")},\n\t\t{name: \"nil\", input: []byte(\"nil\")},\n\t\t{name: \"nill\", input: []byte(\"nill\")},\n\t\t{name: \"NILL\", input: []byte(\"NILL\")},\n\t\t{name: \"Null\", input: []byte(\"Null\")},\n\t\t{name: \"NULL\", input: []byte(\"NULL\")},\n\t\t{name: \"spaces\", input: []byte(\"Nu ll\")},\n\t\t{name: \"null1\", input: []byte(\"null1\")},\n\t\t{name: \"double\", input: []byte(\"null null\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"lower true\", input: []byte(\"true\"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"lower false\", input: []byte(\"false\"), _type: Boolean, value: []byte(\"false\")},\n\t\t{name: \"spaces true\", input: []byte(\" true\\r\\n \"), _type: Boolean, value: []byte(\"true\")},\n\t\t{name: \"spaces false\", input: []byte(\" false\\r\\n \"), _type: Boolean, value: []byte(\"false\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_BoolSimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"tru\"),\n\t\tsimpleCorrupted(\"fals\"),\n\t\tsimpleCorrupted(\"tre\"),\n\t\tsimpleCorrupted(\"fal se\"),\n\t\tsimpleCorrupted(\"true false\"),\n\t\tsimpleCorrupted(\"True\"),\n\t\tsimpleCorrupted(\"TRUE\"),\n\t\tsimpleCorrupted(\"False\"),\n\t\tsimpleCorrupted(\"FALSE\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleSuccess(t *testing.T) {\n\ttests := []*testNode{\n\t\t{name: \"[]\", input: []byte(\"[]\"), _type: Array, value: []byte(\"[]\")},\n\t\t{name: \"[1]\", input: []byte(\"[1]\"), _type: Array, value: []byte(\"[1]\")},\n\t\t{name: \"[1,2,3]\", input: []byte(\"[1,2,3]\"), _type: Array, value: []byte(\"[1,2,3]\")},\n\t\t{name: \"[1, 2, 3]\", input: []byte(\"[1, 2, 3]\"), _type: Array, value: []byte(\"[1, 2, 3]\")},\n\t\t{name: \"[1,[2],3]\", input: []byte(\"[1,[2],3]\"), _type: Array, value: []byte(\"[1,[2],3]\")},\n\t\t{name: \"[[],[],[]]\", input: []byte(\"[[],[],[]]\"), _type: Array, value: []byte(\"[[],[],[]]\")},\n\t\t{name: \"[[[[[]]]]]\", input: []byte(\"[[[[[]]]]]\"), _type: Array, value: []byte(\"[[[[[]]]]]\")},\n\t\t{name: \"[true,null,1,\\\"foo\\\",[]]\", input: []byte(\"[true,null,1,\\\"foo\\\",[]]\"), _type: Array, value: []byte(\"[true,null,1,\\\"foo\\\",[]]\")},\n\t\t{name: \"spaces\", input: []byte(\"\\n\\r [\\n1\\n ]\\r\\n\"), _type: Array, value: []byte(\"[\\n1\\n ]\")},\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleValid(test, t)\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_ArraySimpleCorrupted(t *testing.T) {\n\ttests := []*testNode{\n\t\tsimpleCorrupted(\"[,]\"),\n\t\tsimpleCorrupted(\"[]\\\\\"),\n\t\tsimpleCorrupted(\"[1,]\"),\n\t\tsimpleCorrupted(\"[[]\"),\n\t\tsimpleCorrupted(\"[]]\"),\n\t\tsimpleCorrupted(\"1[]\"),\n\t\tsimpleCorrupted(\"[]1\"),\n\t\tsimpleCorrupted(\"[[]1]\"),\n\t}\n\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tsimpleInvalid(test, t)\n\t\t})\n\t}\n}\n\n// Examples from https://json.org/example.html\nfunc TestUnmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalue string\n\t}{\n\t\t{\n\t\t\tname: \"glossary\",\n\t\t\tvalue: `{\n\t\t\t\t\"glossary\": {\n\t\t\t\t\t\"title\": \"example glossary\",\n\t\t\t\t\t\"GlossDiv\": {\n\t\t\t\t\t\t\"title\": \"S\",\n\t\t\t\t\t\t\"GlossList\": {\n\t\t\t\t\t\t\t\"GlossEntry\": {\n\t\t\t\t\t\t\t\t\"ID\": \"SGML\",\n\t\t\t\t\t\t\t\t\"SortAs\": \"SGML\",\n\t\t\t\t\t\t\t\t\"GlossTerm\": \"Standard Generalized Markup Language\",\n\t\t\t\t\t\t\t\t\"Acronym\": \"SGML\",\n\t\t\t\t\t\t\t\t\"Abbrev\": \"ISO 8879:1986\",\n\t\t\t\t\t\t\t\t\"GlossDef\": {\n\t\t\t\t\t\t\t\t\t\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\",\n\t\t\t\t\t\t\t\t\t\"GlossSeeAlso\": [\"GML\", \"XML\"]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"GlossSee\": \"markup\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}`,\n\t\t},\n\t\t{\n\t\t\tname: \"menu\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"id\": \"file\",\n\t\t\t\t\"value\": \"File\",\n\t\t\t\t\"popup\": {\n\t\t\t\t \"menuitem\": [\n\t\t\t\t\t{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n\t\t\t\t\t{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n\t\t\t\t\t{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n\t\t\t\t ]\n\t\t\t\t}\n\t\t\t}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"widget\",\n\t\t\tvalue: `{\"widget\": {\n\t\t\t\t\"debug\": \"on\",\n\t\t\t\t\"window\": {\n\t\t\t\t\t\"title\": \"Sample Konfabulator Widget\",\n\t\t\t\t\t\"name\": \"main_window\",\n\t\t\t\t\t\"width\": 500,\n\t\t\t\t\t\"height\": 500\n\t\t\t\t},\n\t\t\t\t\"image\": { \n\t\t\t\t\t\"src\": \"Images/Sun.png\",\n\t\t\t\t\t\"name\": \"sun1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 250,\n\t\t\t\t\t\"alignment\": \"center\"\n\t\t\t\t},\n\t\t\t\t\"text\": {\n\t\t\t\t\t\"data\": \"Click Here\",\n\t\t\t\t\t\"size\": 36,\n\t\t\t\t\t\"style\": \"bold\",\n\t\t\t\t\t\"name\": \"text1\",\n\t\t\t\t\t\"hOffset\": 250,\n\t\t\t\t\t\"vOffset\": 100,\n\t\t\t\t\t\"alignment\": \"center\",\n\t\t\t\t\t\"onMouseUp\": \"sun1.opacity = (sun1.opacity / 100) * 90;\"\n\t\t\t\t}\n\t\t\t}} `,\n\t\t},\n\t\t{\n\t\t\tname: \"web-app\",\n\t\t\tvalue: `{\"web-app\": {\n\t\t\t\t\"servlet\": [ \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxCDS\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.CDSServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"configGlossary:installationAt\": \"Philadelphia, PA\",\n\t\t\t\t\t \"configGlossary:adminEmail\": \"ksm@pobox.com\",\n\t\t\t\t\t \"configGlossary:poweredBy\": \"Cofax\",\n\t\t\t\t\t \"configGlossary:poweredByIcon\": \"/images/cofax.gif\",\n\t\t\t\t\t \"configGlossary:staticPath\": \"/content/static\",\n\t\t\t\t\t \"templateProcessorClass\": \"org.cofax.WysiwygTemplate\",\n\t\t\t\t\t \"templateLoaderClass\": \"org.cofax.FilesTemplateLoader\",\n\t\t\t\t\t \"templatePath\": \"templates\",\n\t\t\t\t\t \"templateOverridePath\": \"\",\n\t\t\t\t\t \"defaultListTemplate\": \"listTemplate.htm\",\n\t\t\t\t\t \"defaultFileTemplate\": \"articleTemplate.htm\",\n\t\t\t\t\t \"useJSP\": false,\n\t\t\t\t\t \"jspListTemplate\": \"listTemplate.jsp\",\n\t\t\t\t\t \"jspFileTemplate\": \"articleTemplate.jsp\",\n\t\t\t\t\t \"cachePackageTagsTrack\": 200,\n\t\t\t\t\t \"cachePackageTagsStore\": 200,\n\t\t\t\t\t \"cachePackageTagsRefresh\": 60,\n\t\t\t\t\t \"cacheTemplatesTrack\": 100,\n\t\t\t\t\t \"cacheTemplatesStore\": 50,\n\t\t\t\t\t \"cacheTemplatesRefresh\": 15,\n\t\t\t\t\t \"cachePagesTrack\": 200,\n\t\t\t\t\t \"cachePagesStore\": 100,\n\t\t\t\t\t \"cachePagesRefresh\": 10,\n\t\t\t\t\t \"cachePagesDirtyRead\": 10,\n\t\t\t\t\t \"searchEngineListTemplate\": \"forSearchEnginesList.htm\",\n\t\t\t\t\t \"searchEngineFileTemplate\": \"forSearchEngines.htm\",\n\t\t\t\t\t \"searchEngineRobotsDb\": \"WEB-INF/robots.db\",\n\t\t\t\t\t \"useDataStore\": true,\n\t\t\t\t\t \"dataStoreClass\": \"org.cofax.SqlDataStore\",\n\t\t\t\t\t \"redirectionClass\": \"org.cofax.SqlRedirection\",\n\t\t\t\t\t \"dataStoreName\": \"cofax\",\n\t\t\t\t\t \"dataStoreDriver\": \"com.microsoft.jdbc.sqlserver.SQLServerDriver\",\n\t\t\t\t\t \"dataStoreUrl\": \"jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon\",\n\t\t\t\t\t \"dataStoreUser\": \"sa\",\n\t\t\t\t\t \"dataStorePassword\": \"dataStoreTestQuery\",\n\t\t\t\t\t \"dataStoreTestQuery\": \"SET NOCOUNT ON;select test='test';\",\n\t\t\t\t\t \"dataStoreLogFile\": \"/usr/local/tomcat/logs/datastore.log\",\n\t\t\t\t\t \"dataStoreInitConns\": 10,\n\t\t\t\t\t \"dataStoreMaxConns\": 100,\n\t\t\t\t\t \"dataStoreConnUsageLimit\": 100,\n\t\t\t\t\t \"dataStoreLogLevel\": \"debug\",\n\t\t\t\t\t \"maxUrlLength\": 500}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxEmail\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.EmailServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t\"mailHost\": \"mail1\",\n\t\t\t\t\t\"mailHostOverride\": \"mail2\"}},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxAdmin\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.AdminServlet\"},\n\t\t\t \n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"fileServlet\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cds.FileServlet\"},\n\t\t\t\t {\n\t\t\t\t\t\"servlet-name\": \"cofaxTools\",\n\t\t\t\t\t\"servlet-class\": \"org.cofax.cms.CofaxToolsServlet\",\n\t\t\t\t\t\"init-param\": {\n\t\t\t\t\t \"templatePath\": \"toolstemplates/\",\n\t\t\t\t\t \"log\": 1,\n\t\t\t\t\t \"logLocation\": \"/usr/local/tomcat/logs/CofaxTools.log\",\n\t\t\t\t\t \"logMaxSize\": \"\",\n\t\t\t\t\t \"dataLog\": 1,\n\t\t\t\t\t \"dataLogLocation\": \"/usr/local/tomcat/logs/dataLog.log\",\n\t\t\t\t\t \"dataLogMaxSize\": \"\",\n\t\t\t\t\t \"removePageCache\": \"/content/admin/remove?cache=pages\u0026id=\",\n\t\t\t\t\t \"removeTemplateCache\": \"/content/admin/remove?cache=templates\u0026id=\",\n\t\t\t\t\t \"fileTransferFolder\": \"/usr/local/tomcat/webapps/content/fileTransferFolder\",\n\t\t\t\t\t \"lookInContext\": 1,\n\t\t\t\t\t \"adminGroupID\": 4,\n\t\t\t\t\t \"betaServer\": true}}],\n\t\t\t\t\"servlet-mapping\": {\n\t\t\t\t \"cofaxCDS\": \"/\",\n\t\t\t\t \"cofaxEmail\": \"/cofaxutil/aemail/*\",\n\t\t\t\t \"cofaxAdmin\": \"/admin/*\",\n\t\t\t\t \"fileServlet\": \"/static/*\",\n\t\t\t\t \"cofaxTools\": \"/tools/*\"},\n\t\t\t \n\t\t\t\t\"taglib\": {\n\t\t\t\t \"taglib-uri\": \"cofax.tld\",\n\t\t\t\t \"taglib-location\": \"/WEB-INF/tlds/cofax.tld\"}}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"SVG Viewer\",\n\t\t\tvalue: `{\"menu\": {\n\t\t\t\t\"header\": \"SVG Viewer\",\n\t\t\t\t\"items\": [\n\t\t\t\t\t{\"id\": \"Open\"},\n\t\t\t\t\t{\"id\": \"OpenNew\", \"label\": \"Open New\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"ZoomIn\", \"label\": \"Zoom In\"},\n\t\t\t\t\t{\"id\": \"ZoomOut\", \"label\": \"Zoom Out\"},\n\t\t\t\t\t{\"id\": \"OriginalView\", \"label\": \"Original View\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Quality\"},\n\t\t\t\t\t{\"id\": \"Pause\"},\n\t\t\t\t\t{\"id\": \"Mute\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Find\", \"label\": \"Find...\"},\n\t\t\t\t\t{\"id\": \"FindAgain\", \"label\": \"Find Again\"},\n\t\t\t\t\t{\"id\": \"Copy\"},\n\t\t\t\t\t{\"id\": \"CopyAgain\", \"label\": \"Copy Again\"},\n\t\t\t\t\t{\"id\": \"CopySVG\", \"label\": \"Copy SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSVG\", \"label\": \"View SVG\"},\n\t\t\t\t\t{\"id\": \"ViewSource\", \"label\": \"View Source\"},\n\t\t\t\t\t{\"id\": \"SaveAs\", \"label\": \"Save As\"},\n\t\t\t\t\tnull,\n\t\t\t\t\t{\"id\": \"Help\"},\n\t\t\t\t\t{\"id\": \"About\", \"label\": \"About Adobe CVG Viewer...\"}\n\t\t\t\t]\n\t\t\t}}`,\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\t_, err := Unmarshal([]byte(test.value))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalSafe(t *testing.T) {\n\tjson := []byte(`{ \"store\": {\n\t\t\"book\": [ \n\t\t { \"category\": \"reference\",\n\t\t\t\"author\": \"Nigel Rees\",\n\t\t\t\"title\": \"Sayings of the Century\",\n\t\t\t\"price\": 8.95\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Evelyn Waugh\",\n\t\t\t\"title\": \"Sword of Honour\",\n\t\t\t\"price\": 12.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"Herman Melville\",\n\t\t\t\"title\": \"Moby Dick\",\n\t\t\t\"isbn\": \"0-553-21311-3\",\n\t\t\t\"price\": 8.99\n\t\t },\n\t\t { \"category\": \"fiction\",\n\t\t\t\"author\": \"J. R. R. Tolkien\",\n\t\t\t\"title\": \"The Lord of the Rings\",\n\t\t\t\"isbn\": \"0-395-19395-8\",\n\t\t\t\"price\": 22.99\n\t\t }\n\t\t],\n\t\t\"bicycle\": {\n\t\t \"color\": \"red\",\n\t\t \"price\": 19.95\n\t\t}\n\t }\n\t}`)\n\tsafe, err := UnmarshalSafe(json)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t} else if safe == nil {\n\t\tt.Errorf(\"Error on Unmarshal: safe is nil\")\n\t} else {\n\t\troot, err := Unmarshal(json)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t\t} else if root == nil {\n\t\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t\t} else if !bytes.Equal(root.source(), safe.source()) {\n\t\t\tt.Errorf(\"Error on UnmarshalSafe: values not same\")\n\t\t}\n\t}\n}\n\n// BenchmarkGoStdUnmarshal-8 \t 61698\t 19350 ns/op\t 288 B/op\t 6 allocs/op\n// BenchmarkUnmarshal-8 \t 45620\t 26165 ns/op\t 21889 B/op\t 367 allocs/op\n//\n// type bench struct {\n// \tName string `json:\"name\"`\n// \tValue int `json:\"value\"`\n// }\n\n// func BenchmarkGoStdUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\terr := json.Unmarshal(data, \u0026bench{})\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n\n// func BenchmarkUnmarshal(b *testing.B) {\n// \tdata := []byte(webApp)\n// \tfor i := 0; i \u003c b.N; i++ {\n// \t\t_, err := Unmarshal(data)\n// \t\tif err != nil {\n// \t\t\tb.Fatal(err)\n// \t\t}\n// \t}\n// }\n"},{"name":"encode.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Marshal returns the JSON encoding of a Node.\nfunc Marshal(node *Node) ([]byte, error) {\n\tvar (\n\t\tbuf bytes.Buffer\n\t\tsVal string\n\t\tbVal bool\n\t\tnVal float64\n\t\toVal []byte\n\t\terr error\n\t)\n\n\tif node == nil {\n\t\treturn nil, errors.New(\"node is nil\")\n\t}\n\n\tif !node.modified \u0026\u0026 !node.ready() {\n\t\treturn nil, errors.New(\"node is not ready\")\n\t}\n\n\tif !node.modified \u0026\u0026 node.ready() {\n\t\tbuf.Write(node.source())\n\t}\n\n\tif node.modified {\n\t\tswitch node.nodeType {\n\t\tcase Null:\n\t\t\tbuf.Write(nullLiteral)\n\n\t\tcase Number:\n\t\t\tnVal, err = node.GetNumeric()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnum := strconv.FormatFloat(nVal, 'f', -1, 64)\n\t\t\tbuf.WriteString(num)\n\n\t\tcase String:\n\t\t\tsVal, err = node.GetString()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tquoted := ufmt.Sprintf(\"%s\", strconv.Quote(sVal))\n\t\t\tbuf.WriteString(quoted)\n\n\t\tcase Boolean:\n\t\t\tbVal, err = node.GetBool()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tbStr := ufmt.Sprintf(\"%t\", bVal)\n\t\t\tbuf.WriteString(bStr)\n\n\t\tcase Array:\n\t\t\tbuf.WriteByte(bracketOpen)\n\n\t\t\tfor i := 0; i \u003c len(node.next); i++ {\n\t\t\t\tif i != 0 {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t}\n\n\t\t\t\telem, ok := node.next[strconv.Itoa(i)]\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, ufmt.Errorf(\"array element %d is not found\", i)\n\t\t\t\t}\n\n\t\t\t\toVal, err = Marshal(elem)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(bracketClose)\n\n\t\tcase Object:\n\t\t\tbuf.WriteByte(curlyOpen)\n\n\t\t\tbVal = false\n\t\t\tfor k, v := range node.next {\n\t\t\t\tif bVal {\n\t\t\t\t\tbuf.WriteByte(comma)\n\t\t\t\t} else {\n\t\t\t\t\tbVal = true\n\t\t\t\t}\n\n\t\t\t\tkey := ufmt.Sprintf(\"%s\", strconv.Quote(k))\n\t\t\t\tbuf.WriteString(key)\n\t\t\t\tbuf.WriteByte(colon)\n\n\t\t\t\toVal, err = Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tbuf.Write(oVal)\n\t\t\t}\n\n\t\t\tbuf.WriteByte(curlyClose)\n\t\t}\n\t}\n\n\treturn buf.Bytes(), nil\n}\n"},{"name":"encode_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestMarshal_Primitive(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t}{\n\t\t{\n\t\t\tname: \"null\",\n\t\t\tnode: NullNode(\"\"),\n\t\t},\n\t\t{\n\t\t\tname: \"true\",\n\t\t\tnode: BoolNode(\"\", true),\n\t\t},\n\t\t{\n\t\t\tname: \"false\",\n\t\t\tnode: BoolNode(\"\", false),\n\t\t},\n\t\t{\n\t\t\tname: `\"string\"`,\n\t\t\tnode: StringNode(\"\", \"string\"),\n\t\t},\n\t\t{\n\t\t\tname: `\"one \\\"encoded\\\" string\"`,\n\t\t\tnode: StringNode(\"\", `one \"encoded\" string`),\n\t\t},\n\t\t{\n\t\t\tname: `{\"foo\":\"bar\"}`,\n\t\t\tnode: ObjectNode(\"\", map[string]*Node{\n\t\t\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tname: \"42\",\n\t\t\tnode: NumberNode(\"\", 42),\n\t\t},\n\t\t{\n\t\t\tname: \"3.14\",\n\t\t\tnode: NumberNode(\"\", 3.14),\n\t\t},\n\t\t{\n\t\t\tname: `[1,2,3]`,\n\t\t\tnode: ArrayNode(\"\", []*Node{\n\t\t\t\tNumberNode(\"0\", 1),\n\t\t\t\tNumberNode(\"2\", 2),\n\t\t\t\tNumberNode(\"3\", 3),\n\t\t\t}),\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t\t} else if string(value) != test.name {\n\t\t\t\tt.Errorf(\"wrong result: '%s', expected '%s'\", value, test.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Object(t *testing.T) {\n\tnode := ObjectNode(\"\", map[string]*Node{\n\t\t\"foo\": StringNode(\"foo\", \"bar\"),\n\t\t\"baz\": NumberNode(\"baz\", 100500),\n\t\t\"qux\": NullNode(\"qux\"),\n\t})\n\n\tmustKey := []string{\"foo\", \"baz\", \"qux\"}\n\n\tvalue, err := Marshal(node)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\t// the order of keys in the map is not guaranteed\n\t// so we need to unmarshal the result and check the keys\n\tdecoded, err := Unmarshal(value)\n\tif err != nil {\n\t\tt.Errorf(\"unexpected error: %s\", err)\n\t}\n\n\tfor _, key := range mustKey {\n\t\tif node, err := decoded.GetKey(key); err != nil {\n\t\t\tt.Errorf(\"unexpected error: %s\", err)\n\t\t} else {\n\t\t\tif node == nil {\n\t\t\t\tt.Errorf(\"node is nil\")\n\t\t\t} else if node.key == nil {\n\t\t\t\tt.Errorf(\"key is nil\")\n\t\t\t} else if *node.key != key {\n\t\t\t\tt.Errorf(\"wrong key: '%s', expected '%s'\", *node.key, key)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc valueNode(prev *Node, key string, typ ValueType, val interface{}) *Node {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: nil,\n\t\tkey: \u0026key,\n\t\tborders: [2]int{0, 0},\n\t\tvalue: val,\n\t\tmodified: true,\n\t}\n\n\tif val != nil {\n\t\tcurr.nodeType = typ\n\t}\n\n\treturn curr\n}\n\nfunc TestMarshal_Errors(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode func() (node *Node)\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"broken\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = Must(Unmarshal([]byte(`{}`)))\n\t\t\t\tnode.borders[1] = 0\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Numeric\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Number, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"String\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", String, false)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Bool\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn valueNode(nil, \"\", Boolean, 1)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_1\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\tnode = ArrayNode(\"\", nil)\n\t\t\t\tnode.next[\"1\"] = NullNode(\"1\")\n\t\t\t\treturn\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Array_2\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ArrayNode(\"\", []*Node{valueNode(nil, \"\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"Object\",\n\t\t\tnode: func() (node *Node) {\n\t\t\t\treturn ObjectNode(\"\", map[string]*Node{\"key\": valueNode(nil, \"key\", Boolean, 1)})\n\t\t\t},\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tvalue, err := Marshal(test.node())\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"expected error\")\n\t\t\t} else if len(value) != 0 {\n\t\t\t\tt.Errorf(\"wrong result\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshal_Nil(t *testing.T) {\n\t_, err := Marshal(nil)\n\tif err == nil {\n\t\tt.Error(\"Expected error for nil node, but got nil\")\n\t}\n}\n\nfunc TestMarshal_NotModified(t *testing.T) {\n\tnode := \u0026Node{}\n\t_, err := Marshal(node)\n\tif err == nil {\n\t\tt.Error(\"Expected error for not modified node, but got nil\")\n\t}\n}\n\nfunc TestMarshalCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tnext: map[string]*Node{\n\t\t\t\"next\": nil,\n\t\t},\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tprev: node1,\n\t}\n\n\tnode1.next[\"next\"] = node2\n\n\t_, err := Marshal(node1)\n\tif err == nil {\n\t\tt.Error(\"Expected error for cycle reference, but got nil\")\n\t}\n}\n\nfunc TestMarshalNoCycleReference(t *testing.T) {\n\tnode1 := \u0026Node{\n\t\tkey: stringPtr(\"node1\"),\n\t\tnodeType: String,\n\t\tvalue: \"value1\",\n\t\tmodified: true,\n\t}\n\n\tnode2 := \u0026Node{\n\t\tkey: stringPtr(\"node2\"),\n\t\tnodeType: String,\n\t\tvalue: \"value2\",\n\t\tmodified: true,\n\t}\n\n\t_, err := Marshal(node1)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n\n\t_, err = Marshal(node2)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t}\n}\n\nfunc stringPtr(s string) *string {\n\treturn \u0026s\n}\n"},{"name":"errors.gno","body":"package json\n\nimport \"errors\"\n\nvar (\n\terrNilNode = errors.New(\"node is nil\")\n\terrNotArrayNode = errors.New(\"node is not array\")\n\terrNotBoolNode = errors.New(\"node is not boolean\")\n\terrNotNullNode = errors.New(\"node is not null\")\n\terrNotNumberNode = errors.New(\"node is not number\")\n\terrNotObjectNode = errors.New(\"node is not object\")\n\terrNotStringNode = errors.New(\"node is not string\")\n\terrInvalidToken = errors.New(\"invalid token\")\n\terrIndexNotFound = errors.New(\"index not found\")\n\terrInvalidAppend = errors.New(\"can't append value to non-appendable node\")\n\terrInvalidAppendCycle = errors.New(\"appending value to itself or its children or parents will cause a cycle\")\n\terrInvalidEscapeSequence = errors.New(\"invalid escape sequence\")\n\terrInvalidStringValue = errors.New(\"invalid string value\")\n\terrEmptyBooleanNode = errors.New(\"boolean node is empty\")\n\terrEmptyStringNode = errors.New(\"string node is empty\")\n\terrKeyRequired = errors.New(\"key is required for object\")\n\terrUnmatchedParenthesis = errors.New(\"mismatched bracket or parenthesis\")\n\terrUnmatchedQuotePath = errors.New(\"unmatched quote in path\")\n)\n\nvar (\n\terrInvalidStringInput = errors.New(\"invalid string input\")\n\terrMalformedBooleanValue = errors.New(\"malformed boolean value\")\n\terrEmptyByteSlice = errors.New(\"empty byte slice\")\n\terrInvalidExponentValue = errors.New(\"invalid exponent value\")\n\terrNonDigitCharacters = errors.New(\"non-digit characters found\")\n\terrNumericRangeExceeded = errors.New(\"numeric value exceeds the range limit\")\n\terrMultipleDecimalPoints = errors.New(\"multiple decimal points found\")\n)\n"},{"name":"escape.gno","body":"package json\n\nimport (\n\t\"unicode/utf8\"\n)\n\nconst (\n\tsupplementalPlanesOffset = 0x10000\n\thighSurrogateOffset = 0xD800\n\tlowSurrogateOffset = 0xDC00\n\tsurrogateEnd = 0xDFFF\n\tbasicMultilingualPlaneOffset = 0xFFFF\n\tbadHex = -1\n\n\tsingleUnicodeEscapeLen = 6\n\tsurrogatePairLen = 12\n)\n\nvar hexLookupTable = [256]int{\n\t'0': 0x0, '1': 0x1, '2': 0x2, '3': 0x3, '4': 0x4,\n\t'5': 0x5, '6': 0x6, '7': 0x7, '8': 0x8, '9': 0x9,\n\t'A': 0xA, 'B': 0xB, 'C': 0xC, 'D': 0xD, 'E': 0xE, 'F': 0xF,\n\t'a': 0xA, 'b': 0xB, 'c': 0xC, 'd': 0xD, 'e': 0xE, 'f': 0xF,\n\t// Fill unspecified index-value pairs with key and value of -1\n\t'G': -1, 'H': -1, 'I': -1, 'J': -1,\n\t'K': -1, 'L': -1, 'M': -1, 'N': -1,\n\t'O': -1, 'P': -1, 'Q': -1, 'R': -1,\n\t'S': -1, 'T': -1, 'U': -1, 'V': -1,\n\t'W': -1, 'X': -1, 'Y': -1, 'Z': -1,\n\t'g': -1, 'h': -1, 'i': -1, 'j': -1,\n\t'k': -1, 'l': -1, 'm': -1, 'n': -1,\n\t'o': -1, 'p': -1, 'q': -1, 'r': -1,\n\t's': -1, 't': -1, 'u': -1, 'v': -1,\n\t'w': -1, 'x': -1, 'y': -1, 'z': -1,\n}\n\nfunc h2i(c byte) int {\n\treturn hexLookupTable[c]\n}\n\n// Unescape takes an input byte slice, processes it to Unescape certain characters,\n// and writes the result into an output byte slice.\n//\n// it returns the processed slice and any error encountered during the Unescape operation.\nfunc Unescape(input, output []byte) ([]byte, error) {\n\t// ensure the output slice has enough capacity to hold the input slice.\n\tinputLen := len(input)\n\tif cap(output) \u003c inputLen {\n\t\toutput = make([]byte, inputLen)\n\t}\n\n\tinPos, outPos := 0, 0\n\n\tfor inPos \u003c len(input) {\n\t\tc := input[inPos]\n\t\tif c != backSlash {\n\t\t\toutput[outPos] = c\n\t\t\tinPos++\n\t\t\toutPos++\n\t\t} else {\n\t\t\t// process escape sequence\n\t\t\tinLen, outLen, err := processEscapedUTF8(input[inPos:], output[outPos:])\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tinPos += inLen\n\t\t\toutPos += outLen\n\t\t}\n\t}\n\n\treturn output[:outPos], nil\n}\n\n// isSurrogatePair returns true if the rune is a surrogate pair.\n//\n// A surrogate pairs are used in UTF-16 encoding to encode characters\n// outside the Basic Multilingual Plane (BMP).\nfunc isSurrogatePair(r rune) bool {\n\treturn highSurrogateOffset \u003c= r \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// isHighSurrogate checks if the rune is a high surrogate (U+D800 to U+DBFF).\nfunc isHighSurrogate(r rune) bool {\n\treturn r \u003e= highSurrogateOffset \u0026\u0026 r \u003c= 0xDBFF\n}\n\n// isLowSurrogate checks if the rune is a low surrogate (U+DC00 to U+DFFF).\nfunc isLowSurrogate(r rune) bool {\n\treturn r \u003e= lowSurrogateOffset \u0026\u0026 r \u003c= surrogateEnd\n}\n\n// combineSurrogates reconstruct the original unicode code points in the\n// supplemental plane by combinin the high and low surrogate.\n//\n// The hight surrogate in the range from U+D800 to U+DBFF,\n// and the low surrogate in the range from U+DC00 to U+DFFF.\n//\n// The formula to combine the surrogates is:\n// (high - 0xD800) * 0x400 + (low - 0xDC00) + 0x10000\nfunc combineSurrogates(high, low rune) rune {\n\treturn ((high - highSurrogateOffset) \u003c\u003c 10) + (low - lowSurrogateOffset) + supplementalPlanesOffset\n}\n\n// deocdeSingleUnicodeEscape decodes a unicode escape sequence (e.g., \\uXXXX) into a rune.\nfunc decodeSingleUnicodeEscape(b []byte) (rune, bool) {\n\tif len(b) \u003c 6 {\n\t\treturn utf8.RuneError, false\n\t}\n\n\t// convert hex to decimal\n\th1, h2, h3, h4 := h2i(b[2]), h2i(b[3]), h2i(b[4]), h2i(b[5])\n\tif h1 == badHex || h2 == badHex || h3 == badHex || h4 == badHex {\n\t\treturn utf8.RuneError, false\n\t}\n\n\treturn rune(h1\u003c\u003c12 + h2\u003c\u003c8 + h3\u003c\u003c4 + h4), true\n}\n\n// decodeUnicodeEscape decodes a Unicode escape sequence from a byte slice.\n// It handles both single Unicode escape sequences and surrogate pairs.\nfunc decodeUnicodeEscape(b []byte) (rune, int) {\n\t// decode the first Unicode escape sequence.\n\tr, ok := decodeSingleUnicodeEscape(b)\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is within the BMP and not a surrogate, return it\n\tif r \u003c= basicMultilingualPlaneOffset \u0026\u0026 !isSurrogatePair(r) {\n\t\treturn r, 6\n\t}\n\n\tif !isHighSurrogate(r) {\n\t\t// invalid surrogate pair.\n\t\treturn utf8.RuneError, -1\n\t}\n\n\t// if the rune is a high surrogate, need to decode the next escape sequence.\n\n\t// ensure there are enough bytes for the next escape sequence.\n\tif len(b) \u003c surrogatePairLen {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// decode the second Unicode escape sequence.\n\tr2, ok := decodeSingleUnicodeEscape(b[singleUnicodeEscapeLen:])\n\tif !ok {\n\t\treturn utf8.RuneError, -1\n\t}\n\t// check if the second rune is a low surrogate.\n\tif isLowSurrogate(r2) {\n\t\tcombined := combineSurrogates(r, r2)\n\t\treturn combined, surrogatePairLen\n\t}\n\treturn utf8.RuneError, -1\n}\n\nvar escapeByteSet = [256]byte{\n\t'\"': doubleQuote,\n\t'\\\\': backSlash,\n\t'/': slash,\n\t'b': backSpace,\n\t'f': formFeed,\n\t'n': newLine,\n\t'r': carriageReturn,\n\t't': tab,\n}\n\n// Unquote takes a byte slice and unquotes it by removing\n// the surrounding quotes and unescaping the contents.\nfunc Unquote(s []byte, border byte) (string, bool) {\n\ts, ok := unquoteBytes(s, border)\n\treturn string(s), ok\n}\n\n// unquoteBytes takes a byte slice and unquotes it by removing\nfunc unquoteBytes(s []byte, border byte) ([]byte, bool) {\n\tif len(s) \u003c 2 || s[0] != border || s[len(s)-1] != border {\n\t\treturn nil, false\n\t}\n\n\ts = s[1 : len(s)-1]\n\n\tr := 0\n\tfor r \u003c len(s) {\n\t\tc := s[r]\n\n\t\tif c == backSlash || c == border || c \u003c 0x20 {\n\t\t\tbreak\n\t\t}\n\n\t\tif c \u003c utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\tbreak\n\t\t}\n\n\t\tr += size\n\t}\n\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tutfDoubleMax := utf8.UTFMax * 2\n\tb := make([]byte, len(s)+utfDoubleMax)\n\tw := copy(b, s[0:r])\n\n\tfor r \u003c len(s) {\n\t\tif w \u003e= len(b)-utf8.UTFMax {\n\t\t\tnb := make([]byte, utfDoubleMax+(2*len(b)))\n\t\t\tcopy(nb, b)\n\t\t\tb = nb\n\t\t}\n\n\t\tc := s[r]\n\t\tif c == backSlash {\n\t\t\tr++\n\t\t\tif r \u003e= len(s) {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tif s[r] == 'u' {\n\t\t\t\trr, res := decodeUnicodeEscape(s[r-1:])\n\t\t\t\tif res \u003c 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t\t\tr += 5\n\t\t\t} else {\n\t\t\t\tdecode := escapeByteSet[s[r]]\n\t\t\t\tif decode == 0 {\n\t\t\t\t\treturn nil, false\n\t\t\t\t}\n\n\t\t\t\tif decode == doubleQuote || decode == backSlash || decode == slash {\n\t\t\t\t\tdecode = s[r]\n\t\t\t\t}\n\n\t\t\t\tb[w] = decode\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\t}\n\t\t} else if c == border || c \u003c 0x20 {\n\t\t\treturn nil, false\n\t\t} else if c \u003c utf8.RuneSelf {\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\t\t} else {\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\n\t\t\tif rr == utf8.RuneError \u0026\u0026 size == 1 {\n\t\t\t\treturn nil, false\n\t\t\t}\n\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\n\treturn b[:w], true\n}\n\n// processEscapedUTF8 converts escape sequences to UTF-8 characters.\n// It decodes Unicode escape sequences (\\uXXXX) to UTF-8 and\n// converts standard escape sequences (e.g., \\n) to their corresponding special characters.\nfunc processEscapedUTF8(in, out []byte) (int, int, error) {\n\tif len(in) \u003c 2 || in[0] != backSlash {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\tescapeSeqLen := 2\n\tescapeChar := in[1]\n\n\tif escapeChar != 'u' {\n\t\tval := escapeByteSet[escapeChar]\n\t\tif val == 0 {\n\t\t\treturn -1, -1, errInvalidEscapeSequence\n\t\t}\n\n\t\tout[0] = val\n\t\treturn escapeSeqLen, 1, nil\n\t}\n\n\tr, size := decodeUnicodeEscape(in)\n\tif size == -1 {\n\t\treturn -1, -1, errInvalidEscapeSequence\n\t}\n\n\toutLen := utf8.EncodeRune(out, r)\n\n\treturn size, outLen, nil\n}\n"},{"name":"escape_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"unicode/utf8\"\n)\n\nfunc TestHexToInt(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tc byte\n\t\twant int\n\t}{\n\t\t{\"Digit 0\", '0', 0},\n\t\t{\"Digit 9\", '9', 9},\n\t\t{\"Uppercase A\", 'A', 10},\n\t\t{\"Uppercase F\", 'F', 15},\n\t\t{\"Lowercase a\", 'a', 10},\n\t\t{\"Lowercase f\", 'f', 15},\n\t\t{\"Invalid character1\", 'g', badHex},\n\t\t{\"Invalid character2\", 'G', badHex},\n\t\t{\"Invalid character3\", 'z', badHex},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := h2i(tt.c); got != tt.want {\n\t\t\t\tt.Errorf(\"h2i() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsSurrogatePair(t *testing.T) {\n\ttestCases := []struct {\n\t\tname string\n\t\tr rune\n\t\texpected bool\n\t}{\n\t\t{\"high surrogate start\", 0xD800, true},\n\t\t{\"high surrogate end\", 0xDBFF, true},\n\t\t{\"low surrogate start\", 0xDC00, true},\n\t\t{\"low surrogate end\", 0xDFFF, true},\n\t\t{\"Non-surrogate\", 0x0000, false},\n\t\t{\"Non-surrogate 2\", 0xE000, false},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif got := isSurrogatePair(tc.r); got != tc.expected {\n\t\t\t\tt.Errorf(\"isSurrogate() = %v, want %v\", got, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCombineSurrogates(t *testing.T) {\n\ttestCases := []struct {\n\t\thigh, low rune\n\t\texpected rune\n\t}{\n\t\t{0xD83D, 0xDC36, 0x1F436}, // 🐶 U+1F436 DOG FACE\n\t\t{0xD83D, 0xDE00, 0x1F600}, // 😀 U+1F600 GRINNING FACE\n\t\t{0xD83C, 0xDF03, 0x1F303}, // 🌃 U+1F303 NIGHT WITH STARS\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult := combineSurrogates(tc.high, tc.low)\n\t\tif result != tc.expected {\n\t\t\tt.Errorf(\"combineSurrogates(%U, %U) = %U; want %U\", tc.high, tc.low, result, tc.expected)\n\t\t}\n\t}\n}\n\nfunc TestDecodeSingleUnicodeEscape(t *testing.T) {\n\ttestCases := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tisValid bool\n\t}{\n\t\t// valid unicode escape sequences\n\t\t{[]byte(`\\u0041`), 'A', true},\n\t\t{[]byte(`\\u03B1`), 'α', true},\n\t\t{[]byte(`\\u00E9`), 'é', true}, // valid non-English character\n\t\t{[]byte(`\\u0021`), '!', true}, // valid special character\n\t\t{[]byte(`\\uFF11`), '1', true},\n\t\t{[]byte(`\\uD83D`), 0xD83D, true},\n\t\t{[]byte(`\\uDE03`), 0xDE03, true},\n\n\t\t// invalid unicode escape sequences\n\t\t{[]byte(`\\u004`), utf8.RuneError, false}, // too short\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, false}, // invalid hex\n\t\t{[]byte(`\\u00G1`), utf8.RuneError, false}, // non-hex character\n\t}\n\n\tfor _, tc := range testCases {\n\t\tresult, isValid := decodeSingleUnicodeEscape(tc.input)\n\t\tif result != tc.expected || isValid != tc.isValid {\n\t\t\tt.Errorf(\"decodeSingleUnicodeEscape(%s) = (%U, %v); want (%U, %v)\", tc.input, result, isValid, tc.expected, tc.isValid)\n\t\t}\n\t}\n}\n\nfunc TestDecodeUnicodeEscape(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected rune\n\t\tsize int\n\t}{\n\t\t{[]byte(`\\u0041`), 'A', 6},\n\t\t{[]byte(`\\uD83D\\uDE00`), 0x1F600, 12}, // 😀\n\t\t{[]byte(`\\uD834\\uDD1E`), 0x1D11E, 12}, // 𝄞\n\t\t{[]byte(`\\uFFFF`), '\\uFFFF', 6},\n\t\t{[]byte(`\\uXYZW`), utf8.RuneError, -1},\n\t\t{[]byte(`\\uD800`), utf8.RuneError, -1}, // single high surrogate\n\t\t{[]byte(`\\uDC00`), utf8.RuneError, -1}, // single low surrogate\n\t\t{[]byte(`\\uD800\\uDC00`), 0x10000, 12}, // First code point above U+FFFF\n\t\t{[]byte(`\\uDBFF\\uDFFF`), 0x10FFFF, 12}, // Maximum code point\n\t\t{[]byte(`\\uD83D\\u0041`), utf8.RuneError, -1}, // invalid surrogate pair\n\t}\n\n\tfor _, tc := range tests {\n\t\tr, size := decodeUnicodeEscape(tc.input)\n\t\tif r != tc.expected || size != tc.size {\n\t\t\tt.Errorf(\"decodeUnicodeEscape(%q) = (%U, %d); want (%U, %d)\", tc.input, r, size, tc.expected, tc.size)\n\t\t}\n\t}\n}\n\nfunc TestUnescapeToUTF8(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpectedIn int\n\t\texpectedOut int\n\t\tisError bool\n\t}{\n\t\t// valid escape sequences\n\t\t{[]byte(`\\n`), 2, 1, false},\n\t\t{[]byte(`\\t`), 2, 1, false},\n\t\t{[]byte(`\\u0041`), 6, 1, false},\n\t\t{[]byte(`\\u03B1`), 6, 2, false},\n\t\t{[]byte(`\\uD830\\uDE03`), 12, 4, false},\n\n\t\t// invalid escape sequences\n\t\t{[]byte(`\\`), -1, -1, true}, // incomplete escape sequence\n\t\t{[]byte(`\\x`), -1, -1, true}, // invalid escape character\n\t\t{[]byte(`\\u`), -1, -1, true}, // incomplete unicode escape sequence\n\t\t{[]byte(`\\u004`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uXYZW`), -1, -1, true}, // invalid unicode escape sequence\n\t\t{[]byte(`\\uD83D\\u0041`), -1, -1, true}, // invalid unicode escape sequence\n\t}\n\n\tfor _, tc := range tests {\n\t\tinput := make([]byte, len(tc.input))\n\t\tcopy(input, tc.input)\n\t\toutput := make([]byte, utf8.UTFMax)\n\t\tinLen, outLen, err := processEscapedUTF8(input, output)\n\t\tif (err != nil) != tc.isError {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = %v; want %v\", tc.input, err, tc.isError)\n\t\t}\n\n\t\tif inLen != tc.expectedIn || outLen != tc.expectedOut {\n\t\t\tt.Errorf(\"processEscapedUTF8(%q) = (%d, %d); want (%d, %d)\", tc.input, inLen, outLen, tc.expectedIn, tc.expectedOut)\n\t\t}\n\t}\n}\n\nfunc TestUnescape(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\texpected []byte\n\t\tisError bool\n\t}{\n\t\t{\"NoEscape\", []byte(\"hello world\"), []byte(\"hello world\"), false},\n\t\t{\"SingleEscape\", []byte(\"hello\\\\nworld\"), []byte(\"hello\\nworld\"), false},\n\t\t{\"MultipleEscapes\", []byte(\"line1\\\\nline2\\\\r\\\\nline3\"), []byte(\"line1\\nline2\\r\\nline3\"), false},\n\t\t{\"UnicodeEscape\", []byte(\"snowman:\\\\u2603\"), []byte(\"snowman:\\u2603\"), false},\n\t\t{\"SurrogatePair\", []byte(\"emoji:\\\\uD83D\\\\uDE00\"), []byte(\"emoji:😀\"), false},\n\t\t{\"InvalidEscape\", []byte(\"hello\\\\xworld\"), nil, true},\n\t\t{\"IncompleteUnicode\", []byte(\"incomplete:\\\\u123\"), nil, true},\n\t\t{\"InvalidSurrogatePair\", []byte(\"invalid:\\\\uD83D\\\\u0041\"), nil, true},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\toutput := make([]byte, len(tc.input)*2) // Allocate extra space for possible expansion\n\t\t\tresult, err := Unescape(tc.input, output)\n\t\t\tif (err != nil) != tc.isError {\n\t\t\t\tt.Errorf(\"Unescape(%q) error = %v; want error = %v\", tc.input, err, tc.isError)\n\t\t\t}\n\n\t\t\tif !tc.isError \u0026\u0026 !bytes.Equal(result, tc.expected) {\n\t\t\t\tt.Errorf(\"Unescape(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnquoteBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\tborder byte\n\t\texpected []byte\n\t\tok bool\n\t}{\n\t\t{[]byte(\"\\\"hello\\\"\"), '\"', []byte(\"hello\"), true},\n\t\t{[]byte(\"'hello'\"), '\\'', []byte(\"hello\"), true},\n\t\t{[]byte(\"\\\"hello\"), '\"', nil, false},\n\t\t{[]byte(\"hello\\\"\"), '\"', nil, false},\n\t\t{[]byte(\"\\\"he\\\\\\\"llo\\\"\"), '\"', []byte(\"he\\\"llo\"), true},\n\t\t{[]byte(\"\\\"he\\\\nllo\\\"\"), '\"', []byte(\"he\\nllo\"), true},\n\t\t{[]byte(\"\\\"\\\"\"), '\"', []byte(\"\"), true},\n\t\t{[]byte(\"''\"), '\\'', []byte(\"\"), true},\n\t\t{[]byte(\"\\\"\\\\u0041\\\"\"), '\"', []byte(\"A\"), true},\n\t\t{[]byte(`\"Hello, 世界\"`), '\"', []byte(\"Hello, 世界\"), true},\n\t\t{[]byte(`\"Hello, \\x80\"`), '\"', nil, false},\n\t\t{[]byte(`\"invalid surrogate: \\uD83D\\u0041\"`), '\"', nil, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tresult, pass := unquoteBytes(tc.input, tc.border)\n\n\t\tif pass != tc.ok {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %v; want %v\", tc.input, pass, tc.ok)\n\t\t}\n\n\t\tif !bytes.Equal(result, tc.expected) {\n\t\t\tt.Errorf(\"unquoteBytes(%q) = %q; want %q\", tc.input, result, tc.expected)\n\t\t}\n\t}\n}\n"},{"name":"indent.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// indentGrowthFactor specifies the growth factor of indenting JSON input.\n// A factor no higher than 2 ensures that wasted space never exceeds 50%.\nconst indentGrowthFactor = 2\n\n// IndentJSON formats the JSON data with the specified indentation.\nfunc Indent(data []byte, indent string) ([]byte, error) {\n\tvar (\n\t\tout bytes.Buffer\n\t\tlevel int\n\t\tinArray bool\n\t\tarrayDepth int\n\t)\n\n\tfor i := 0; i \u003c len(data); i++ {\n\t\tc := data[i] // current character\n\n\t\tswitch c {\n\t\tcase bracketOpen:\n\t\t\tarrayDepth++\n\t\t\tif arrayDepth \u003e 1 {\n\t\t\t\tlevel++ // increase the level if it's nested array\n\t\t\t\tinArray = true\n\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// case of the top-level array\n\t\t\t\tinArray = true\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase bracketClose:\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tlevel--\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tarrayDepth--\n\t\t\tif arrayDepth == 0 {\n\t\t\t\tinArray = false\n\t\t\t}\n\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase curlyOpen:\n\t\t\t// check if the empty object or array\n\t\t\t// we don't need to apply the indent when it's empty containers.\n\t\t\tif i+1 \u003c len(data) \u0026\u0026 data[i+1] == curlyClose {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\ti++ // skip next character\n\t\t\t\tif err := out.WriteByte(data[i]); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tlevel++\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase curlyClose:\n\t\t\tlevel--\n\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\tcase comma, colon:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif inArray \u0026\u0026 arrayDepth \u003e 1 { // nested array\n\t\t\t\tif err := writeNewlineAndIndent(\u0026out, level, indent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t} else if c == colon {\n\t\t\t\tif err := out.WriteByte(' '); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif err := out.WriteByte(c); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out.Bytes(), nil\n}\n\nfunc writeNewlineAndIndent(out *bytes.Buffer, level int, indent string) error {\n\tif err := out.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\n\tidt := strings.Repeat(indent, level*indentGrowthFactor)\n\tif _, err := out.WriteString(idt); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"},{"name":"indent_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n)\n\nfunc TestIndentJSON(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput []byte\n\t\tindent string\n\t\texpected []byte\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tinput: []byte(`{}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`{}`),\n\t\t},\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tinput: []byte(`[]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(`[]`),\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tinput: []byte(`{{}}`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"{\\n\\t\\t{}\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"nested array\",\n\t\t\tinput: []byte(`[[[]]]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(\"[[\\n\\t\\t[\\n\\t\\t\\t\\t\\n\\t\\t]\\n]]\"),\n\t\t},\n\t\t{\n\t\t\tname: \"top-level array\",\n\t\t\tinput: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t\tindent: \"\\t\",\n\t\t\texpected: []byte(`[\"apple\",\"banana\",\"cherry\"]`),\n\t\t},\n\t\t{\n\t\t\tname: \"array of arrays\",\n\t\t\tinput: []byte(`[\"apple\",[\"banana\",\"cherry\"],\"date\"]`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"[\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n],\\\"date\\\"]\"),\n\t\t},\n\n\t\t{\n\t\t\tname: \"nested array in object\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"fruits\\\": [\\\"apple\\\",[\\n \\\"banana\\\",\\n \\\"cherry\\\"\\n ],\\\"date\\\"]\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"complex nested structure\",\n\t\t\tinput: []byte(`{\"data\":{\"array\":[1,2,3],\"bool\":true,\"nestedArray\":[[\"a\",\"b\"],\"c\"]}}`),\n\t\t\tindent: \" \",\n\t\t\texpected: []byte(\"{\\n \\\"data\\\": {\\n \\\"array\\\": [1,2,3],\\\"bool\\\": true,\\\"nestedArray\\\": [[\\n \\\"a\\\",\\n \\\"b\\\"\\n ],\\\"c\\\"]\\n }\\n}\"),\n\t\t},\n\t\t{\n\t\t\tname: \"custom ident character\",\n\t\t\tinput: []byte(`{\"fruits\":[\"apple\",[\"banana\",\"cherry\"],\"date\"]}`),\n\t\t\tindent: \"*\",\n\t\t\texpected: []byte(\"{\\n**\\\"fruits\\\": [\\\"apple\\\",[\\n****\\\"banana\\\",\\n****\\\"cherry\\\"\\n**],\\\"date\\\"]\\n}\"),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tactual, err := Indent(tt.input, tt.indent)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"IndentJSON() error = %v\", err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !bytes.Equal(actual, tt.expected) {\n\t\t\t\tt.Errorf(\"IndentJSON() = %q, want %q\", actual, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"internal.gno","body":"package json\n\n// Reference: https://github.com/freddierice/php_source/blob/467ed5d6edff72219afd3e644516f131118ef48e/ext/json/JSON_parser.c\n// Copyright (c) 2005 JSON.org\n\n// Go implementation is taken from: https://github.com/spyzhov/ajson/blob/master/internal/state.go\n\ntype (\n\tStates int8 // possible states of the parser\n\tClasses int8 // JSON string character types\n)\n\nconst __ = -1\n\n// enum classes\nconst (\n\tC_SPACE Classes = iota /* space */\n\tC_WHITE /* other whitespace */\n\tC_LCURB /* { */\n\tC_RCURB /* } */\n\tC_LSQRB /* [ */\n\tC_RSQRB /* ] */\n\tC_COLON /* : */\n\tC_COMMA /* , */\n\tC_QUOTE /* \" */\n\tC_BACKS /* \\ */\n\tC_SLASH /* / */\n\tC_PLUS /* + */\n\tC_MINUS /* - */\n\tC_POINT /* . */\n\tC_ZERO /* 0 */\n\tC_DIGIT /* 123456789 */\n\tC_LOW_A /* a */\n\tC_LOW_B /* b */\n\tC_LOW_C /* c */\n\tC_LOW_D /* d */\n\tC_LOW_E /* e */\n\tC_LOW_F /* f */\n\tC_LOW_L /* l */\n\tC_LOW_N /* n */\n\tC_LOW_R /* r */\n\tC_LOW_S /* s */\n\tC_LOW_T /* t */\n\tC_LOW_U /* u */\n\tC_ABCDF /* ABCDF */\n\tC_E /* E */\n\tC_ETC /* everything else */\n)\n\n// AsciiClasses array maps the 128 ASCII characters into character classes.\nvar AsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_QUOTE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n// QuoteAsciiClasses is a HACK for single quote from AsciiClasses\nvar QuoteAsciiClasses = [128]Classes{\n\t/*\n\t This array maps the 128 ASCII characters into character classes.\n\t The remaining Unicode characters should be mapped to C_ETC.\n\t Non-whitespace control characters are errors.\n\t*/\n\t__, __, __, __, __, __, __, __,\n\t__, C_WHITE, C_WHITE, __, __, C_WHITE, __, __,\n\t__, __, __, __, __, __, __, __,\n\t__, __, __, __, __, __, __, __,\n\n\tC_SPACE, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_QUOTE,\n\tC_ETC, C_ETC, C_ETC, C_PLUS, C_COMMA, C_MINUS, C_POINT, C_SLASH,\n\tC_ZERO, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT, C_DIGIT,\n\tC_DIGIT, C_DIGIT, C_COLON, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\n\tC_ETC, C_ABCDF, C_ABCDF, C_ABCDF, C_ABCDF, C_E, C_ABCDF, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LSQRB, C_BACKS, C_RSQRB, C_ETC, C_ETC,\n\n\tC_ETC, C_LOW_A, C_LOW_B, C_LOW_C, C_LOW_D, C_LOW_E, C_LOW_F, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_ETC, C_LOW_L, C_ETC, C_LOW_N, C_ETC,\n\tC_ETC, C_ETC, C_LOW_R, C_LOW_S, C_LOW_T, C_LOW_U, C_ETC, C_ETC,\n\tC_ETC, C_ETC, C_ETC, C_LCURB, C_ETC, C_RCURB, C_ETC, C_ETC,\n}\n\n/*\nThe state codes.\n*/\nconst (\n\tGO States = iota /* start */\n\tOK /* ok */\n\tOB /* object */\n\tKE /* key */\n\tCO /* colon */\n\tVA /* value */\n\tAR /* array */\n\tST /* string */\n\tES /* escape */\n\tU1 /* u1 */\n\tU2 /* u2 */\n\tU3 /* u3 */\n\tU4 /* u4 */\n\tMI /* minus */\n\tZE /* zero */\n\tIN /* integer */\n\tDT /* dot */\n\tFR /* fraction */\n\tE1 /* e */\n\tE2 /* ex */\n\tE3 /* exp */\n\tT1 /* tr */\n\tT2 /* tru */\n\tT3 /* true */\n\tF1 /* fa */\n\tF2 /* fal */\n\tF3 /* fals */\n\tF4 /* false */\n\tN1 /* nu */\n\tN2 /* nul */\n\tN3 /* null */\n)\n\n// List of action codes.\n// these constants are defining an action that should be performed under certain conditions.\nconst (\n\tcl States = -2 /* colon */\n\tcm States = -3 /* comma */\n\tqt States = -4 /* quote */\n\tbo States = -5 /* bracket open */\n\tco States = -6 /* curly bracket open */\n\tbc States = -7 /* bracket close */\n\tcc States = -8 /* curly bracket close */\n\tec States = -9 /* curly bracket empty */\n)\n\n// StateTransitionTable is the state transition table takes the current state and the current symbol, and returns either\n// a new state or an action. An action is represented as a negative number. A JSON text is accepted if at the end of the\n// text the state is OK and if the mode is DONE.\nvar StateTransitionTable = [31][31]States{\n\t/*\n\t The state transition table takes the current state and the current symbol,\n\t and returns either a new state or an action. An action is represented as a\n\t negative number. A JSON text is accepted if at the end of the text the\n\t state is OK and if the mode is DONE.\n\t white 1-9 ABCDF etc\n\t space | { } [ ] : , \" \\ / + - . 0 | a b c d e f l n r s t u | E |*/\n\t/*start GO*/ {GO, GO, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*ok OK*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*object OB*/ {OB, OB, __, ec, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*key KE*/ {KE, KE, __, __, __, __, __, __, ST, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*colon CO*/ {CO, CO, __, __, __, __, cl, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*value VA*/ {VA, VA, co, __, bo, __, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*array AR*/ {AR, AR, co, __, bo, bc, __, __, ST, __, __, __, MI, __, ZE, IN, __, __, __, __, __, F1, __, N1, __, __, T1, __, __, __, __},\n\t/*string ST*/ {ST, __, ST, ST, ST, ST, ST, ST, qt, ES, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST, ST},\n\t/*escape ES*/ {__, __, __, __, __, __, __, __, ST, ST, ST, __, __, __, __, __, __, ST, __, __, __, ST, __, ST, ST, __, ST, U1, __, __, __},\n\t/*u1 U1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U2, U2, U2, U2, U2, U2, U2, U2, __, __, __, __, __, __, U2, U2, __},\n\t/*u2 U2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U3, U3, U3, U3, U3, U3, U3, U3, __, __, __, __, __, __, U3, U3, __},\n\t/*u3 U3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, U4, U4, U4, U4, U4, U4, U4, U4, __, __, __, __, __, __, U4, U4, __},\n\t/*u4 U4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ST, ST, ST, ST, ST, ST, ST, ST, __, __, __, __, __, __, ST, ST, __},\n\t/*minus MI*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, ZE, IN, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*zero ZE*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, __, __, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*int IN*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, DT, IN, IN, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*dot DT*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, FR, FR, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*frac FR*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, FR, FR, __, __, __, __, E1, __, __, __, __, __, __, __, __, E1, __},\n\t/*e E1*/ {__, __, __, __, __, __, __, __, __, __, __, E2, E2, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*ex E2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*exp E3*/ {OK, OK, __, cc, __, bc, __, cm, __, __, __, __, __, __, E3, E3, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*tr T1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T2, __, __, __, __, __, __},\n\t/*tru T2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, T3, __, __, __},\n\t/*true T3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*fa F1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F2, __, __, __, __, __, __, __, __, __, __, __, __, __, __},\n\t/*fal F2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F3, __, __, __, __, __, __, __, __},\n\t/*fals F3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, F4, __, __, __, __, __},\n\t/*false F4*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __, __, __},\n\t/*nu N1*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N2, __, __, __},\n\t/*nul N2*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, N3, __, __, __, __, __, __, __, __},\n\t/*null N3*/ {__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, OK, __, __, __, __, __, __, __, __},\n}\n"},{"name":"node.gno","body":"package json\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Node represents a JSON node.\ntype Node struct {\n\tprev *Node // prev is the parent node of the current node.\n\tnext map[string]*Node // next is the child nodes of the current node.\n\tkey *string // key holds the key of the current node in the parent node.\n\tdata []byte // byte slice of JSON data\n\tvalue interface{} // value holds the value of the current node.\n\tnodeType ValueType // NodeType holds the type of the current node. (Object, Array, String, Number, Boolean, Null)\n\tindex *int // index holds the index of the current node in the parent array node.\n\tborders [2]int // borders stores the start and end index of the current node in the data.\n\tmodified bool // modified indicates the current node is changed or not.\n}\n\n// NewNode creates a new node instance with the given parent node, buffer, type, and key.\nfunc NewNode(prev *Node, b *buffer, typ ValueType, key **string) (*Node, error) {\n\tcurr := \u0026Node{\n\t\tprev: prev,\n\t\tdata: b.data,\n\t\tborders: [2]int{b.index, 0},\n\t\tkey: *key,\n\t\tnodeType: typ,\n\t\tmodified: false,\n\t}\n\n\tif typ == Object || typ == Array {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\tif prev != nil {\n\t\tif prev.IsArray() {\n\t\t\tsize := len(prev.next)\n\t\t\tcurr.index = \u0026size\n\n\t\t\tprev.next[strconv.Itoa(size)] = curr\n\t\t} else if prev.IsObject() {\n\t\t\tif key == nil {\n\t\t\t\treturn nil, errKeyRequired\n\t\t\t}\n\n\t\t\tprev.next[**key] = curr\n\t\t} else {\n\t\t\treturn nil, errors.New(\"invalid parent type\")\n\t\t}\n\t}\n\n\treturn curr, nil\n}\n\n// load retrieves the value of the current node.\nfunc (n *Node) load() interface{} {\n\treturn n.value\n}\n\n// Changed checks the current node is changed or not.\nfunc (n *Node) Changed() bool {\n\treturn n.modified\n}\n\n// Key returns the key of the current node.\nfunc (n *Node) Key() string {\n\tif n == nil || n.key == nil {\n\t\treturn \"\"\n\t}\n\n\treturn *n.key\n}\n\n// HasKey checks the current node has the given key or not.\nfunc (n *Node) HasKey(key string) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\t_, ok := n.next[key]\n\treturn ok\n}\n\n// GetKey returns the value of the given key from the current object node.\nfunc (n *Node) GetKey(key string) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.Type() != Object {\n\t\treturn nil, ufmt.Errorf(\"target node is not object type. got: %s\", n.Type().String())\n\t}\n\n\tvalue, ok := n.next[key]\n\tif !ok {\n\t\treturn nil, ufmt.Errorf(\"key not found: %s\", key)\n\t}\n\n\treturn value, nil\n}\n\n// MustKey returns the value of the given key from the current object node.\nfunc (n *Node) MustKey(key string) *Node {\n\tval, err := n.GetKey(key)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// UniqueKeyLists traverses the current JSON nodes and collects all the unique keys.\nfunc (n *Node) UniqueKeyLists() []string {\n\tvar collectKeys func(*Node) []string\n\tcollectKeys = func(node *Node) []string {\n\t\tif node == nil || !node.IsObject() {\n\t\t\treturn nil\n\t\t}\n\n\t\tresult := make(map[string]bool)\n\t\tfor key, childNode := range node.next {\n\t\t\tresult[key] = true\n\t\t\tchildKeys := collectKeys(childNode)\n\t\t\tfor _, childKey := range childKeys {\n\t\t\t\tresult[childKey] = true\n\t\t\t}\n\t\t}\n\n\t\tkeys := make([]string, 0, len(result))\n\t\tfor key := range result {\n\t\t\tkeys = append(keys, key)\n\t\t}\n\t\treturn keys\n\t}\n\n\treturn collectKeys(n)\n}\n\n// Empty returns true if the current node is empty.\nfunc (n *Node) Empty() bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\treturn len(n.next) == 0\n}\n\n// Type returns the type (ValueType) of the current node.\nfunc (n *Node) Type() ValueType {\n\treturn n.nodeType\n}\n\n// Value returns the value of the current node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tval, err := root.MustKey(\"key\").Value()\n//\tif err != nil {\n//\t\tt.Errorf(\"Value returns error: %v\", err)\n//\t}\n//\n//\tresult: \"value\"\nfunc (n *Node) Value() (value interface{}, err error) {\n\tvalue = n.load()\n\n\tif value == nil {\n\t\tswitch n.nodeType {\n\t\tcase Null:\n\t\t\treturn nil, nil\n\n\t\tcase Number:\n\t\t\tvalue, err = strconv.ParseFloat(string(n.source()), 64)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase String:\n\t\t\tvar ok bool\n\t\t\tvalue, ok = Unquote(n.source(), doubleQuote)\n\t\t\tif !ok {\n\t\t\t\treturn \"\", errInvalidStringValue\n\t\t\t}\n\n\t\t\tn.value = value\n\n\t\tcase Boolean:\n\t\t\tif len(n.source()) == 0 {\n\t\t\t\treturn nil, errEmptyBooleanNode\n\t\t\t}\n\n\t\t\tb := n.source()[0]\n\t\t\tvalue = b == 't' || b == 'T'\n\t\t\tn.value = value\n\n\t\tcase Array:\n\t\t\telems := make([]*Node, len(n.next))\n\n\t\t\tfor _, e := range n.next {\n\t\t\t\telems[*e.index] = e\n\t\t\t}\n\n\t\t\tvalue = elems\n\t\t\tn.value = value\n\n\t\tcase Object:\n\t\t\tobj := make(map[string]*Node, len(n.next))\n\n\t\t\tfor k, v := range n.next {\n\t\t\t\tobj[k] = v\n\t\t\t}\n\n\t\t\tvalue = obj\n\t\t\tn.value = value\n\t\t}\n\t}\n\n\treturn value, nil\n}\n\n// Delete removes the current node from the parent node.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(`{\"key\": \"value\"}`))\n//\tif err := root.MustKey(\"key\").Delete(); err != nil {\n//\t\tt.Errorf(\"Delete returns error: %v\", err)\n//\t}\n//\n//\tresult: {} (empty object)\nfunc (n *Node) Delete() error {\n\tif n == nil {\n\t\treturn errors.New(\"can't delete nil node\")\n\t}\n\n\tif n.prev == nil {\n\t\treturn nil\n\t}\n\n\treturn n.prev.remove(n)\n}\n\n// Size returns the size (length) of the current array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.Size() != 2 {\n//\t\tt.Errorf(\"ArrayNode returns wrong size: %d\", root.Size())\n//\t}\nfunc (n *Node) Size() int {\n\tif n == nil {\n\t\treturn 0\n\t}\n\n\treturn len(n.next)\n}\n\n// Index returns the index of the current node in the parent array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\n//\n//\tif root.MustIndex(1).Index() != 1 {\n//\t\tt.Errorf(\"Index returns wrong index: %d\", root.MustIndex(1).Index())\n//\t}\n//\n// We can also use the index to the byte slice of the JSON data directly.\n//\n// Example:\n//\n//\troot := Unmarshal([]byte(`[\"foo\", 1]`))\n//\tif root == nil {\n//\t\tt.Errorf(\"Unmarshal returns nil\")\n//\t}\n//\n//\tif string(root.MustIndex(1).source()) != \"1\" {\n//\t\tt.Errorf(\"source returns wrong result: %s\", root.MustIndex(1).source())\n//\t}\nfunc (n *Node) Index() int {\n\tif n == nil || n.index == nil {\n\t\treturn -1\n\t}\n\n\treturn *n.index\n}\n\n// MustIndex returns the array element at the given index.\n//\n// If the index is negative, it returns the index is from the end of the array.\n// Also, it panics if the index is not found.\n//\n// check the Index method for detailed usage.\nfunc (n *Node) MustIndex(expectIdx int) *Node {\n\tval, err := n.GetIndex(expectIdx)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn val\n}\n\n// GetIndex returns the array element at the given index.\n//\n// if the index is negative, it returns the index is from the end of the array.\nfunc (n *Node) GetIndex(idx int) (*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsArray() {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tif idx \u003e n.Size() {\n\t\treturn nil, errors.New(\"input index exceeds the array size\")\n\t}\n\n\tif idx \u003c 0 {\n\t\tidx += len(n.next)\n\t}\n\n\tchild, ok := n.next[strconv.Itoa(idx)]\n\tif !ok {\n\t\treturn nil, errIndexNotFound\n\t}\n\n\treturn child, nil\n}\n\n// DeleteIndex removes the array element at the given index.\nfunc (n *Node) DeleteIndex(idx int) error {\n\tnode, err := n.GetIndex(idx)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn n.remove(node)\n}\n\n// NullNode creates a new null type node.\n//\n// Usage:\n//\n//\t_ := NullNode(\"\")\nfunc NullNode(key string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: nil,\n\t\tnodeType: Null,\n\t\tmodified: true,\n\t}\n}\n\n// NumberNode creates a new number type node.\n//\n// Usage:\n//\n//\troot := NumberNode(\"\", 1)\n//\tif root == nil {\n//\t\tt.Errorf(\"NumberNode returns nil\")\n//\t}\nfunc NumberNode(key string, value float64) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Number,\n\t\tmodified: true,\n\t}\n}\n\n// StringNode creates a new string type node.\n//\n// Usage:\n//\n//\troot := StringNode(\"\", \"foo\")\n//\tif root == nil {\n//\t\tt.Errorf(\"StringNode returns nil\")\n//\t}\nfunc StringNode(key string, value string) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: String,\n\t\tmodified: true,\n\t}\n}\n\n// BoolNode creates a new given boolean value node.\n//\n// Usage:\n//\n//\troot := BoolNode(\"\", true)\n//\tif root == nil {\n//\t\tt.Errorf(\"BoolNode returns nil\")\n//\t}\nfunc BoolNode(key string, value bool) *Node {\n\treturn \u0026Node{\n\t\tkey: \u0026key,\n\t\tvalue: value,\n\t\tnodeType: Boolean,\n\t\tmodified: true,\n\t}\n}\n\n// ArrayNode creates a new array type node.\n//\n// If the given value is nil, it creates an empty array node.\n//\n// Usage:\n//\n//\troot := ArrayNode(\"\", []*Node{StringNode(\"\", \"foo\"), NumberNode(\"\", 1)})\n//\tif root == nil {\n//\t\tt.Errorf(\"ArrayNode returns nil\")\n//\t}\nfunc ArrayNode(key string, value []*Node) *Node {\n\tcurr := \u0026Node{\n\t\tkey: \u0026key,\n\t\tnodeType: Array,\n\t\tmodified: true,\n\t}\n\n\tcurr.next = make(map[string]*Node, len(value))\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor i, v := range value {\n\t\t\tidx := i\n\t\t\tcurr.next[strconv.Itoa(i)] = v\n\n\t\t\tv.prev = curr\n\t\t\tv.index = \u0026idx\n\t\t}\n\t}\n\n\treturn curr\n}\n\n// ObjectNode creates a new object type node.\n//\n// If the given value is nil, it creates an empty object node.\n//\n// next is a map of key and value pairs of the object.\nfunc ObjectNode(key string, value map[string]*Node) *Node {\n\tcurr := \u0026Node{\n\t\tnodeType: Object,\n\t\tkey: \u0026key,\n\t\tnext: value,\n\t\tmodified: true,\n\t}\n\n\tif value != nil {\n\t\tcurr.value = value\n\n\t\tfor key, val := range value {\n\t\t\tvkey := key\n\t\t\tval.prev = curr\n\t\t\tval.key = \u0026vkey\n\t\t}\n\t} else {\n\t\tcurr.next = make(map[string]*Node)\n\t}\n\n\treturn curr\n}\n\n// IsArray returns true if the current node is array type.\nfunc (n *Node) IsArray() bool {\n\treturn n.nodeType == Array\n}\n\n// IsObject returns true if the current node is object type.\nfunc (n *Node) IsObject() bool {\n\treturn n.nodeType == Object\n}\n\n// IsNull returns true if the current node is null type.\nfunc (n *Node) IsNull() bool {\n\treturn n.nodeType == Null\n}\n\n// IsBool returns true if the current node is boolean type.\nfunc (n *Node) IsBool() bool {\n\treturn n.nodeType == Boolean\n}\n\n// IsString returns true if the current node is string type.\nfunc (n *Node) IsString() bool {\n\treturn n.nodeType == String\n}\n\n// IsNumber returns true if the current node is number type.\nfunc (n *Node) IsNumber() bool {\n\treturn n.nodeType == Number\n}\n\n// ready checks the current node is ready or not.\n//\n// the meaning of ready is the current node is parsed and has a valid value.\nfunc (n *Node) ready() bool {\n\treturn n.borders[1] != 0\n}\n\n// source returns the source of the current node.\nfunc (n *Node) source() []byte {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified \u0026\u0026 n.data != nil {\n\t\treturn (n.data)[n.borders[0]:n.borders[1]]\n\t}\n\n\treturn nil\n}\n\n// root returns the root node of the current node.\nfunc (n *Node) root() *Node {\n\tif n == nil {\n\t\treturn nil\n\t}\n\n\tcurr := n\n\tfor curr.prev != nil {\n\t\tcurr = curr.prev\n\t}\n\n\treturn curr\n}\n\n// GetNull returns the null value if current node is null type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"null\"))\n//\tval, err := root.GetNull()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNull returns error: %v\", err)\n//\t}\n//\tif val != nil {\n//\t\tt.Errorf(\"GetNull returns wrong result: %v\", val)\n//\t}\nfunc (n *Node) GetNull() (interface{}, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsNull() {\n\t\treturn nil, errNotNullNode\n\t}\n\n\treturn nil, nil\n}\n\n// MustNull returns the null value if current node is null type.\n//\n// It panics if the current node is not null type.\nfunc (n *Node) MustNull() interface{} {\n\tv, err := n.GetNull()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetNumeric returns the numeric (int/float) value if current node is number type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"10.5\"))\n//\tval, err := root.GetNumeric()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetNumeric returns error: %v\", err)\n//\t}\n//\tprintln(val) // 10.5\nfunc (n *Node) GetNumeric() (float64, error) {\n\tif n == nil {\n\t\treturn 0, errNilNode\n\t}\n\n\tif n.nodeType != Number {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tv, ok := val.(float64)\n\tif !ok {\n\t\treturn 0, errNotNumberNode\n\t}\n\n\treturn v, nil\n}\n\n// MustNumeric returns the numeric (int/float) value if current node is number type.\n//\n// It panics if the current node is not number type.\nfunc (n *Node) MustNumeric() float64 {\n\tv, err := n.GetNumeric()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetString returns the string value if current node is string type.\n//\n// Usage:\n//\n//\troot, err := Unmarshal([]byte(\"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n//\t}\n//\n//\tstr, err := root.GetString()\n//\tif err != nil {\n//\t\tt.Errorf(\"should retrieve string value: %s\", err)\n//\t}\n//\n//\tprintln(str) // \"foo\"\nfunc (n *Node) GetString() (string, error) {\n\tif n == nil {\n\t\treturn \"\", errEmptyStringNode\n\t}\n\n\tif !n.IsString() {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tv, ok := val.(string)\n\tif !ok {\n\t\treturn \"\", errNotStringNode\n\t}\n\n\treturn v, nil\n}\n\n// MustString returns the string value if current node is string type.\n//\n// It panics if the current node is not string type.\nfunc (n *Node) MustString() string {\n\tv, err := n.GetString()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetBool returns the boolean value if current node is boolean type.\n//\n// Usage:\n//\n//\troot := Unmarshal([]byte(\"true\"))\n//\tval, err := root.GetBool()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetBool returns error: %v\", err)\n//\t}\n//\tprintln(val) // true\nfunc (n *Node) GetBool() (bool, error) {\n\tif n == nil {\n\t\treturn false, errNilNode\n\t}\n\n\tif n.nodeType != Boolean {\n\t\treturn false, errNotBoolNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tv, ok := val.(bool)\n\tif !ok {\n\t\treturn false, errNotBoolNode\n\t}\n\n\treturn v, nil\n}\n\n// MustBool returns the boolean value if current node is boolean type.\n//\n// It panics if the current node is not boolean type.\nfunc (n *Node) MustBool() bool {\n\tv, err := n.GetBool()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// GetArray returns the array value if current node is array type.\n//\n// Usage:\n//\n//\t\troot := Must(Unmarshal([]byte(`[\"foo\", 1]`)))\n//\t\tarr, err := root.GetArray()\n//\t\tif err != nil {\n//\t\t\tt.Errorf(\"GetArray returns error: %v\", err)\n//\t\t}\n//\n//\t\tfor _, val := range arr {\n//\t\t\tprintln(val)\n//\t\t}\n//\n//\t result: \"foo\", 1\nfunc (n *Node) GetArray() ([]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif n.nodeType != Array {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.([]*Node)\n\tif !ok {\n\t\treturn nil, errNotArrayNode\n\t}\n\n\treturn v, nil\n}\n\n// MustArray returns the array value if current node is array type.\n//\n// It panics if the current node is not array type.\nfunc (n *Node) MustArray() []*Node {\n\tv, err := n.GetArray()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendArray appends the given values to the current array node.\n//\n// If the current node is not array type, it returns an error.\n//\n// Example 1:\n//\n//\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n//\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n//\t\tt.Errorf(\"should not return error: %s\", err)\n//\t}\n//\n//\tresult: [{\"foo\":\"bar\"}, null]\n//\n// Example 2:\n//\n//\troot := Must(Unmarshal([]byte(`[\"bar\", \"baz\"]`)))\n//\terr := root.AppendArray(NumberNode(\"\", 1), StringNode(\"\", \"foo\"))\n//\tif err != nil {\n//\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n//\t }\n//\n//\tresult: [\"bar\", \"baz\", 1, \"foo\"]\nfunc (n *Node) AppendArray(value ...*Node) error {\n\tif !n.IsArray() {\n\t\treturn errInvalidAppend\n\t}\n\n\tfor _, val := range value {\n\t\tif err := n.append(nil, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ArrayEach executes the callback for each element in the JSON array.\n//\n// Usage:\n//\n//\tjsonArrayNode.ArrayEach(func(i int, valueNode *Node) {\n//\t ufmt.Println(i, valueNode)\n//\t})\nfunc (n *Node) ArrayEach(callback func(i int, target *Node)) {\n\tif n == nil || !n.IsArray() {\n\t\treturn\n\t}\n\n\tfor idx := 0; idx \u003c len(n.next); idx++ {\n\t\telement, err := n.GetIndex(idx)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tcallback(idx, element)\n\t}\n}\n\n// GetObject returns the object value if current node is object type.\n//\n// Usage:\n//\n//\troot := Must(Unmarshal([]byte(`{\"key\": \"value\"}`)))\n//\tobj, err := root.GetObject()\n//\tif err != nil {\n//\t\tt.Errorf(\"GetObject returns error: %v\", err)\n//\t}\n//\n//\tresult: map[string]*Node{\"key\": StringNode(\"key\", \"value\")}\nfunc (n *Node) GetObject() (map[string]*Node, error) {\n\tif n == nil {\n\t\treturn nil, errNilNode\n\t}\n\n\tif !n.IsObject() {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\tval, err := n.Value()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tv, ok := val.(map[string]*Node)\n\tif !ok {\n\t\treturn nil, errNotObjectNode\n\t}\n\n\treturn v, nil\n}\n\n// MustObject returns the object value if current node is object type.\n//\n// It panics if the current node is not object type.\nfunc (n *Node) MustObject() map[string]*Node {\n\tv, err := n.GetObject()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn v\n}\n\n// AppendObject appends the given key and value to the current object node.\n//\n// If the current node is not object type, it returns an error.\nfunc (n *Node) AppendObject(key string, value *Node) error {\n\tif !n.IsObject() {\n\t\treturn errInvalidAppend\n\t}\n\n\tif err := n.append(\u0026key, value); err != nil {\n\t\treturn err\n\t}\n\n\tn.mark()\n\treturn nil\n}\n\n// ObjectEach executes the callback for each key-value pair in the JSON object.\n//\n// Usage:\n//\n//\tjsonObjectNode.ObjectEach(func(key string, valueNode *Node) {\n//\t ufmt.Println(key, valueNode)\n//\t})\nfunc (n *Node) ObjectEach(callback func(key string, value *Node)) {\n\tif n == nil || !n.IsObject() {\n\t\treturn\n\t}\n\n\tfor key, child := range n.next {\n\t\tcallback(key, child)\n\t}\n}\n\n// String converts the node to a string representation.\nfunc (n *Node) String() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tif n.ready() \u0026\u0026 !n.modified {\n\t\treturn string(n.source())\n\t}\n\n\tval, err := Marshal(n)\n\tif err != nil {\n\t\treturn \"error: \" + err.Error()\n\t}\n\n\treturn string(val)\n}\n\n// Path builds the path of the current node.\n//\n// For example:\n//\n//\t{ \"key\": { \"sub\": [ \"val1\", \"val2\" ] }}\n//\n// The path of \"val2\" is: $.key.sub[1]\nfunc (n *Node) Path() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif n.prev == nil {\n\t\tsb.WriteString(\"$\")\n\t} else {\n\t\tsb.WriteString(n.prev.Path())\n\n\t\tif n.key != nil {\n\t\t\tsb.WriteString(\"['\" + n.Key() + \"']\")\n\t\t} else {\n\t\t\tsb.WriteString(\"[\" + strconv.Itoa(n.Index()) + \"]\")\n\t\t}\n\t}\n\n\treturn sb.String()\n}\n\n// mark marks the current node as modified.\nfunc (n *Node) mark() {\n\tnode := n\n\tfor node != nil \u0026\u0026 !node.modified {\n\t\tnode.modified = true\n\t\tnode = node.prev\n\t}\n}\n\n// isContainer checks the current node type is array or object.\nfunc (n *Node) isContainer() bool {\n\treturn n.IsArray() || n.IsObject()\n}\n\n// remove removes the value from the current container type node.\nfunc (n *Node) remove(v *Node) error {\n\tif !n.isContainer() {\n\t\treturn ufmt.Errorf(\n\t\t\t\"can't remove value from non-array or non-object node. got=%s\",\n\t\t\tn.Type().String(),\n\t\t)\n\t}\n\n\tif v.prev != n {\n\t\treturn errors.New(\"invalid parent node\")\n\t}\n\n\tn.mark()\n\tif n.IsArray() {\n\t\tdelete(n.next, strconv.Itoa(*v.index))\n\t\tn.dropIndex(*v.index)\n\t} else {\n\t\tdelete(n.next, *v.key)\n\t}\n\n\tv.prev = nil\n\treturn nil\n}\n\n// dropIndex rebase the index of current array node values.\nfunc (n *Node) dropIndex(idx int) {\n\tfor i := idx + 1; i \u003c= len(n.next); i++ {\n\t\tprv := i - 1\n\t\tif curr, ok := n.next[strconv.Itoa(i)]; ok {\n\t\t\tcurr.index = \u0026prv\n\t\t\tn.next[strconv.Itoa(prv)] = curr\n\t\t}\n\n\t\tdelete(n.next, strconv.Itoa(i))\n\t}\n}\n\n// append is a helper function to append the given value to the current container type node.\nfunc (n *Node) append(key *string, val *Node) error {\n\tif n.isSameOrParentNode(val) {\n\t\treturn errInvalidAppendCycle\n\t}\n\n\tif val.prev != nil {\n\t\tif err := val.prev.remove(val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tval.prev = n\n\tval.key = key\n\n\tif key == nil {\n\t\tsize := len(n.next)\n\t\tval.index = \u0026size\n\t\tn.next[strconv.Itoa(size)] = val\n\t} else {\n\t\tif old, ok := n.next[*key]; ok {\n\t\t\tif err := n.remove(old); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tn.next[*key] = val\n\t}\n\n\treturn nil\n}\n\nfunc (n *Node) isSameOrParentNode(nd *Node) bool {\n\treturn n == nd || n.isParentNode(nd)\n}\n\nfunc (n *Node) isParentNode(nd *Node) bool {\n\tif n == nil {\n\t\treturn false\n\t}\n\n\tfor curr := nd.prev; curr != nil; curr = curr.prev {\n\t\tif curr == n {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// cptrs returns the pointer of the given string value.\nfunc cptrs(cpy *string) *string {\n\tif cpy == nil {\n\t\treturn nil\n\t}\n\n\tval := *cpy\n\n\treturn \u0026val\n}\n\n// cptri returns the pointer of the given integer value.\nfunc cptri(i *int) *int {\n\tif i == nil {\n\t\treturn nil\n\t}\n\n\tval := *i\n\treturn \u0026val\n}\n\n// Must panics if the given node is not fulfilled the expectation.\n// Usage:\n//\n//\tnode := Must(Unmarshal([]byte(`{\"key\": \"value\"}`))\nfunc Must(root *Node, expect error) *Node {\n\tif expect != nil {\n\t\tpanic(expect)\n\t}\n\n\treturn root\n}\n"},{"name":"node_test.gno","body":"package json\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tnilKey *string\n\tdummyKey = \"key\"\n)\n\ntype _args struct {\n\tprev *Node\n\tbuf *buffer\n\ttyp ValueType\n\tkey **string\n}\n\ntype simpleNode struct {\n\tname string\n\tnode *Node\n}\n\nfunc TestNode_CreateNewNode(t *testing.T) {\n\trel := \u0026dummyKey\n\n\ttests := []struct {\n\t\tname string\n\t\targs _args\n\t\texpectCurr *Node\n\t\texpectErr bool\n\t\texpectPanic bool\n\t}{\n\t\t{\n\t\t\tname: \"child for non container type\",\n\t\t\targs: _args{\n\t\t\t\tprev: BoolNode(\"\", true),\n\t\t\t\tbuf: newBuffer(make([]byte, 10)),\n\t\t\t\ttyp: Boolean,\n\t\t\t\tkey: \u0026rel,\n\t\t\t},\n\t\t\texpectCurr: nil,\n\t\t\texpectErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\tif tt.expectPanic {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tt.Errorf(\"%s panic occurred when not expected: %v\", tt.name, r)\n\t\t\t\t} else if tt.expectPanic {\n\t\t\t\t\tt.Errorf(\"%s expected panic but didn't occur\", tt.name)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\tgot, err := NewNode(tt.args.prev, tt.args.buf, tt.args.typ, tt.args.key)\n\t\t\tif (err != nil) != tt.expectErr {\n\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.expectErr)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif tt.expectErr {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !compareNodes(got, tt.expectCurr) {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expectCurr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Value(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t\t_type ValueType\n\t\texpected interface{}\n\t\terrExpected bool\n\t}{\n\t\t{name: \"null\", data: []byte(\"null\"), _type: Null, expected: nil},\n\t\t{name: \"1\", data: []byte(\"1\"), _type: Number, expected: float64(1)},\n\t\t{name: \".1\", data: []byte(\".1\"), _type: Number, expected: float64(.1)},\n\t\t{name: \"-.1e1\", data: []byte(\"-.1e1\"), _type: Number, expected: float64(-1)},\n\t\t{name: \"string\", data: []byte(\"\\\"foo\\\"\"), _type: String, expected: \"foo\"},\n\t\t{name: \"space\", data: []byte(\"\\\"foo bar\\\"\"), _type: String, expected: \"foo bar\"},\n\t\t{name: \"true\", data: []byte(\"true\"), _type: Boolean, expected: true},\n\t\t{name: \"invalid true\", data: []byte(\"tru\"), _type: Unknown, errExpected: true},\n\t\t{name: \"invalid false\", data: []byte(\"fals\"), _type: Unknown, errExpected: true},\n\t\t{name: \"false\", data: []byte(\"false\"), _type: Boolean, expected: false},\n\t\t{name: \"e1\", data: []byte(\"e1\"), _type: Unknown, errExpected: true},\n\t\t{name: \"1a\", data: []byte(\"1a\"), _type: Unknown, errExpected: true},\n\t\t{name: \"string error\", data: []byte(\"\\\"foo\\nbar\\\"\"), _type: String, errExpected: true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tcurr := \u0026Node{\n\t\t\t\tdata: tt.data,\n\t\t\t\tnodeType: tt._type,\n\t\t\t\tborders: [2]int{0, len(tt.data)},\n\t\t\t}\n\n\t\t\tgot, err := curr.Value()\n\t\t\tif err != nil {\n\t\t\t\tif !tt.errExpected {\n\t\t\t\t\tt.Errorf(\"%s error = %v, expect error %v\", tt.name, err, tt.errExpected)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s got = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Delete(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{\"foo\":\"bar\"}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tfoo := root.MustKey(\"foo\")\n\tif err := foo.Delete(); err != nil {\n\t\tt.Errorf(\"Delete returns error while handling foo: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `{}` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif value, err := Marshal(foo); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `\"bar\"` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif foo.prev != nil {\n\t\tt.Errorf(\"foo.prev should be nil\")\n\t}\n}\n\nfunc TestNode_ObjectNode(t *testing.T) {\n\tobjs := map[string]*Node{\n\t\t\"key1\": NullNode(\"null\"),\n\t\t\"key2\": NumberNode(\"answer\", 42),\n\t\t\"key3\": StringNode(\"string\", \"foobar\"),\n\t\t\"key4\": BoolNode(\"bool\", true),\n\t}\n\n\tnode := ObjectNode(\"test\", objs)\n\n\tif len(node.next) != len(objs) {\n\t\tt.Errorf(\"ObjectNode: want %v got %v\", len(objs), len(node.next))\n\t}\n\n\tfor k, v := range objs {\n\t\tif node.next[k] == nil {\n\t\t\tt.Errorf(\"ObjectNode: want %v got %v\", v, node.next[k])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendObject(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`{\"foo\":\"bar\",\"baz\":null}`))).AppendObject(\"biz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendArray should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`{\"foo\":\"bar\"}`)))\n\tif err := root.AppendObject(\"baz\", NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"AppendObject should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if isSameObject(string(value), `\"{\"foo\":\"bar\",\"baz\":null}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif err := root.AppendObject(\"biz\", NumberNode(\"\", 42)); err != nil {\n\t\tt.Errorf(\"AppendObject returns error: %v\", err)\n\t}\n\n\tval, err := Marshal(root)\n\tif err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t}\n\n\t// FIXME: this may fail if execute test in more than 3 times in a row.\n\tif isSameObject(string(val), `\"{\"foo\":\"bar\",\"baz\":null,\"biz\":42}\"`) {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(val))\n\t}\n}\n\nfunc TestNode_ArrayNode(t *testing.T) {\n\tarr := []*Node{\n\t\tNullNode(\"nil\"),\n\t\tNumberNode(\"num\", 42),\n\t\tStringNode(\"str\", \"foobar\"),\n\t\tBoolNode(\"bool\", true),\n\t}\n\n\tnode := ArrayNode(\"test\", arr)\n\n\tif len(node.next) != len(arr) {\n\t\tt.Errorf(\"ArrayNode: want %v got %v\", len(arr), len(node.next))\n\t}\n\n\tfor i, v := range arr {\n\t\tif node.next[strconv.Itoa(i)] == nil {\n\t\t\tt.Errorf(\"ArrayNode: want %v got %v\", v, node.next[strconv.Itoa(i)])\n\t\t}\n\t}\n}\n\nfunc TestNode_AppendArray(t *testing.T) {\n\tif err := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`))).AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should return error\")\n\t}\n\n\troot := Must(Unmarshal([]byte(`[{\"foo\":\"bar\"}]`)))\n\tif err := root.AppendArray(NullNode(\"\")); err != nil {\n\t\tt.Errorf(\"should not return error: %s\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n\n\tif err := root.AppendArray(\n\t\tNumberNode(\"\", 1),\n\t\tStringNode(\"\", \"foo\"),\n\t\tMust(Unmarshal([]byte(`[0,1,null,true,\"example\"]`))),\n\t\tMust(Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123}`))),\n\t); err != nil {\n\t\tt.Errorf(\"AppendArray returns error: %v\", err)\n\t}\n\n\tif value, err := Marshal(root); err != nil {\n\t\tt.Errorf(\"Marshal returns error: %v\", err)\n\t} else if string(value) != `[{\"foo\":\"bar\"},null,1,\"foo\",[0,1,null,true,\"example\"],{\"foo\": true, \"bar\": null, \"baz\": 123}]` {\n\t\tt.Errorf(\"Marshal returns wrong value: %s\", string(value))\n\t}\n}\n\n/******** value getter ********/\n\nfunc TestNode_GetBool(t *testing.T) {\n\troot, err := Unmarshal([]byte(`true`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetBool()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetBool(): %s\", err.Error())\n\t}\n\n\tif !value {\n\t\tt.Errorf(\"root.GetBool() is corrupted\")\n\t}\n}\n\nfunc TestNode_GetBool_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"literally null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetBool(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"true\", BoolNode(\"\", true)},\n\t\t{\"false\", BoolNode(\"\", false)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif !tt.node.IsBool() {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsBool_With_Unmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson []byte\n\t\twant bool\n\t}{\n\t\t{\"true\", []byte(\"true\"), true},\n\t\t{\"false\", []byte(\"false\"), true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.json)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\t\t}\n\n\t\t\tif root.IsBool() != tt.want {\n\t\t\t\tt.Errorf(\"%s should be a bool\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nvar nullJson = []byte(`null`)\n\nfunc TestNode_GetNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue, err := root.GetNull()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting null, %s\", err)\n\t}\n\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNull_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"number node is null\", NumberNode(\"\", 42)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNull(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustNull(t *testing.T) {\n\troot, err := Unmarshal(nullJson)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tvalue := root.MustNull()\n\tif value != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value)\n\t}\n}\n\nfunc TestNode_GetNumeric_Float(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123.456`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123.456) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123.456, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Scientific_Notation(t *testing.T) {\n\troot, err := Unmarshal([]byte(`1e3`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(1000) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 1000, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_With_Unmarshal(t *testing.T) {\n\troot, err := Unmarshal([]byte(`123`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tvalue, err := root.GetNumeric()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetNumeric(): %s\", err)\n\t}\n\n\tif value != float64(123) {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %v\", value))\n\t}\n}\n\nfunc TestNode_GetNumeric_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"string node\", StringNode(\"\", \"123\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetNumeric(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetString(t *testing.T) {\n\troot, err := Unmarshal([]byte(`\"123foobar 3456\"`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t}\n\n\tvalue, err := root.GetString()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetString(): %s\", err)\n\t}\n\n\tif value != \"123foobar 3456\" {\n\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: 123, got: %s\", value))\n\t}\n}\n\nfunc TestNode_GetString_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetString(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_MustString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tdata []byte\n\t}{\n\t\t{\"foo\", []byte(`\"foo\"`)},\n\t\t{\"foo bar\", []byte(`\"foo bar\"`)},\n\t\t{\"\", []byte(`\"\"`)},\n\t\t{\"안녕하세요\", []byte(`\"안녕하세요\"`)},\n\t\t{\"こんにちは\", []byte(`\"こんにちは\"`)},\n\t\t{\"你好\", []byte(`\"你好\"`)},\n\t\t{\"one \\\"encoded\\\" string\", []byte(`\"one \\\"encoded\\\" string\"`)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal(tt.data)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\t\t}\n\n\t\t\tvalue := root.MustString()\n\t\t\tif value != tt.name {\n\t\t\t\tt.Errorf(\"value is not matched. expected: %s, got: %s\", tt.name, value)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal_Array(t *testing.T) {\n\troot, err := Unmarshal([]byte(\" [1,[\\\"1\\\",[1,[1,2,3]]]]\\r\\n\"))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal: %s\", err.Error())\n\t}\n\n\tif root == nil {\n\t\tt.Errorf(\"Error on Unmarshal: root is nil\")\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(\"Error on Unmarshal: wrong type\")\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err)\n\t} else if len(array) != 2 {\n\t\tt.Errorf(\"expected 2 elements, got %d\", len(array))\n\t} else if val, err := array[0].GetNumeric(); err != nil {\n\t\tt.Errorf(\"value of array[0] is not numeric. got: %v\", array[0].value)\n\t} else if val != 1 {\n\t\tt.Errorf(\"Error on array[0].GetNumeric(): expected to be '1', got: %v\", val)\n\t} else if val, err := array[1].GetArray(); err != nil {\n\t\tt.Errorf(\"error occurred while getting array, %s\", err.Error())\n\t} else if len(val) != 2 {\n\t\tt.Errorf(\"Error on array[1].GetArray(): expected 2 elements, got %d\", len(val))\n\t} else if el, err := val[0].GetString(); err != nil {\n\t\tt.Errorf(\"error occurred while getting string, %s\", err.Error())\n\t} else if el != \"1\" {\n\t\tt.Errorf(\"Error on val[0].GetString(): expected to be '1', got: %s\", el)\n\t}\n}\n\nvar sampleArr = []byte(`[-1, 2, 3, 4, 5, 6]`)\n\nfunc TestNode_GetArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tarray, err := root.GetArray()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetArray(): %s\", err)\n\t}\n\n\tif len(array) != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"length is not matched. expected: 3, got: %d\", len(array)))\n\t}\n\n\tfor i, node := range array {\n\t\tfor j, val := range []int{-1, 2, 3, 4, 5, 6} {\n\t\t\tif i == j {\n\t\t\t\tif v, err := node.GetNumeric(); err != nil {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"Error on node.GetNumeric(): %s\", err))\n\t\t\t\t} else if v != float64(val) {\n\t\t\t\t\tt.Errorf(ufmt.Sprintf(\"value is not matched. expected: %d, got: %v\", val, v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNode_GetArray_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t\t{\"number node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetArray(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_IsArray(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err)\n\t\treturn\n\t}\n\n\tif root.Type() != Array {\n\t\tt.Errorf(ufmt.Sprintf(\"Must be an array. got: %s\", root.Type().String()))\n\t}\n}\n\nfunc TestNode_ArrayEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []int\n\t}{\n\t\t{\n\t\t\tname: \"empty array\",\n\t\t\tjson: `[]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"single element\",\n\t\t\tjson: `[42]`,\n\t\t\texpected: []int{42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements\",\n\t\t\tjson: `[1, 2, 3, 4, 5]`,\n\t\t\texpected: []int{1, 2, 3, 4, 5},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements but all values are same\",\n\t\t\tjson: `[1, 1, 1, 1, 1]`,\n\t\t\texpected: []int{1, 1, 1, 1, 1},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements with non-numeric values\",\n\t\t\tjson: `[\"a\", \"b\", \"c\", \"d\", \"e\"]`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"non-array node\",\n\t\t\tjson: `{\"not\": \"an array\"}`,\n\t\t\texpected: []int{},\n\t\t},\n\t\t{\n\t\t\tname: \"array containing numeric and non-numeric elements\",\n\t\t\tjson: `[\"1\", 2, 3, \"4\", 5, \"6\"]`,\n\t\t\texpected: []int{2, 3, 5},\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tvar result []int // callback result\n\t\t\troot.ArrayEach(func(index int, element *Node) {\n\t\t\t\tif val, err := strconv.Atoi(element.String()); err == nil {\n\t\t\t\t\tresult = append(result, val)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d elements, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor i, val := range result {\n\t\t\t\tif val != tc.expected[i] {\n\t\t\t\t\tt.Errorf(\"%s: expected value at index %d to be %d, got %d\", tc.name, i, tc.expected[i], val)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Key(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null, \"baz\": 123, \"biz\": [1,2,3]}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t}\n\n\tobj := root.MustObject()\n\tfor key, node := range obj {\n\t\tif key != node.Key() {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", node.Key(), key)\n\t\t}\n\t}\n\n\tkeys := []string{\"foo\", \"bar\", \"baz\", \"biz\"}\n\tfor _, key := range keys {\n\t\tif obj[key].Key() != key {\n\t\t\tt.Errorf(\"Key() = %v, want %v\", obj[key].Key(), key)\n\t\t}\n\t}\n\n\t// TODO: resolve stack overflow\n\t// if root.MustKey(\"foo\").Clone().Key() != \"\" {\n\t// \tt.Errorf(\"wrong key found for cloned key\")\n\t// }\n\n\tif (*Node)(nil).Key() != \"\" {\n\t\tt.Errorf(\"wrong key found for nil node\")\n\t}\n}\n\nfunc TestNode_Size(t *testing.T) {\n\troot, err := Unmarshal(sampleArr)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tsize := root.Size()\n\tif size != 6 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 6. got: %v\", size))\n\t}\n\n\tif (*Node)(nil).Size() != 0 {\n\t\tt.Errorf(ufmt.Sprintf(\"Size() must be 0. got: %v\", (*Node)(nil).Size()))\n\t}\n}\n\nfunc TestNode_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tarr := root.MustArray()\n\tfor i, node := range arr {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_Index_Fail(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant int\n\t}{\n\t\t{\"nil node\", (*Node)(nil), -1},\n\t\t{\"null node\", NullNode(\"\"), -1},\n\t\t{\"object node\", ObjectNode(\"\", nil), -1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Index(); got != tt.want {\n\t\t\t\tt.Errorf(\"Index() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetIndex(t *testing.T) {\n\troot := Must(Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`)))\n\texpected := []int{1, 2, 3, 4, 5, 6}\n\n\tif len(expected) != root.Size() {\n\t\tt.Errorf(\"length is not matched. expected: %d, got: %d\", len(expected), root.Size())\n\t}\n\n\t// TODO: if length exceeds, stack overflow occurs. need to fix\n\tfor i, v := range expected {\n\t\tval, err := root.GetIndex(i)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"error occurred while getting index %d, %s\", i, err)\n\t\t}\n\n\t\tif val.MustNumeric() != float64(v) {\n\t\t\tt.Errorf(\"value is not matched. expected: %d, got: %v\", v, val.MustNumeric())\n\t\t}\n\t}\n}\n\nfunc TestNode_GetIndex_InputIndex_Exceed_Original_Node_Index(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[1, 2, 3, 4, 5, 6]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\t_, err = root.GetIndex(10)\n\tif err == nil {\n\t\tt.Errorf(\"GetIndex should return error\")\n\t}\n}\n\nfunc TestNode_DeleteIndex(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\texpected string\n\t\tindex int\n\t\tok bool\n\t}{\n\t\t{`null`, ``, 0, false},\n\t\t{`1`, ``, 0, false},\n\t\t{`{}`, ``, 0, false},\n\t\t{`{\"foo\":\"bar\"}`, ``, 0, false},\n\t\t{`true`, ``, 0, false},\n\t\t{`[]`, ``, 0, false},\n\t\t{`[]`, ``, -1, false},\n\t\t{`[1]`, `[]`, 0, true},\n\t\t{`[{}]`, `[]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, -1, true},\n\t\t{`[{}, [], 42]`, `[[], 42]`, 0, true},\n\t\t{`[{}, [], 42]`, `[{}, 42]`, 1, true},\n\t\t{`[{}, [], 42]`, `[{}, []]`, 2, true},\n\t\t{`[{}, [], 42]`, ``, 10, false},\n\t\t{`[{}, [], 42]`, ``, -10, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot := Must(Unmarshal([]byte(tt.name)))\n\t\t\terr := root.DeleteIndex(tt.index)\n\t\t\tif err != nil \u0026\u0026 tt.ok {\n\t\t\t\tt.Errorf(\"DeleteIndex returns error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetKey(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true, \"bar\": null}`))\n\tif err != nil {\n\t\tt.Error(\"error occurred while unmarshal\")\n\t}\n\n\tvalue, err := root.GetKey(\"foo\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\tif value.MustBool() != true {\n\t\tt.Errorf(\"value is not matched. expected: true, got: %v\", value.MustBool())\n\t}\n\n\tvalue, err = root.GetKey(\"bar\")\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while getting key, %s\", err)\n\t}\n\n\t_, err = root.GetKey(\"baz\")\n\tif err == nil {\n\t\tt.Errorf(\"key baz is not exist. must be failed\")\n\t}\n\n\tif value.MustNull() != nil {\n\t\tt.Errorf(\"value is not matched. expected: nil, got: %v\", value.MustNull())\n\t}\n}\n\nfunc TestNode_GetKey_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"null node\", NullNode(\"\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetKey(\"\"); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_GetUniqueKeyList(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname: \"simple foo/bar\",\n\t\t\tjson: `{\"foo\": true, \"bar\": null}`,\n\t\t\texpected: []string{\"foo\", \"bar\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"nested object\",\n\t\t\tjson: `{\n\t\t\t\t\"outer\": {\n\t\t\t\t\t\"inner\": {\n\t\t\t\t\t\t\"key\": \"value\"\n\t\t\t\t\t},\n\t\t\t\t\t\"array\": [1, 2, 3]\n\t\t\t\t},\n\t\t\t\t\"another\": \"item\"\n\t\t\t}`,\n\t\t\texpected: []string{\"outer\", \"inner\", \"key\", \"array\", \"another\"},\n\t\t},\n\t\t{\n\t\t\tname: \"complex object\",\n\t\t\tjson: `{\n\t\t\t\t\"Image\": {\n\t\t\t\t\t\"Width\": 800,\n\t\t\t\t\t\"Height\": 600,\n\t\t\t\t\t\"Title\": \"View from 15th Floor\",\n\t\t\t\t\t\"Thumbnail\": {\n\t\t\t\t\t\t\"Url\": \"http://www.example.com/image/481989943\",\n\t\t\t\t\t\t\"Height\": 125,\n\t\t\t\t\t\t\"Width\": 100\n\t\t\t\t\t},\n\t\t\t\t\t\"Animated\": false,\n\t\t\t\t\t\"IDs\": [116, 943, 234, 38793]\n\t\t\t\t}\n\t\t\t}`,\n\t\t\texpected: []string{\"Image\", \"Width\", \"Height\", \"Title\", \"Thumbnail\", \"Url\", \"Animated\", \"IDs\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tt.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"error occurred while unmarshal\")\n\t\t\t}\n\n\t\t\tvalue := root.UniqueKeyLists()\n\t\t\tif len(value) != len(tt.expected) {\n\t\t\t\tt.Errorf(\"%s length must be %v. got: %v. retrieved keys: %s\", tt.name, len(tt.expected), len(value), value)\n\t\t\t}\n\n\t\t\tfor _, key := range value {\n\t\t\t\tif !contains(tt.expected, key) {\n\t\t\t\t\tt.Errorf(\"EachKey() must be in %v. got: %v\", tt.expected, key)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TODO: resolve stack overflow\nfunc TestNode_IsEmpty(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\texpected bool\n\t}{\n\t\t{\"nil node\", (*Node)(nil), false}, // nil node is not empty.\n\t\t// {\"null node\", NullNode(\"\"), true},\n\t\t{\"empty object\", ObjectNode(\"\", nil), true},\n\t\t{\"empty array\", ArrayNode(\"\", nil), true},\n\t\t{\"non-empty object\", ObjectNode(\"\", map[string]*Node{\"foo\": BoolNode(\"foo\", true)}), false},\n\t\t{\"non-empty array\", ArrayNode(\"\", []*Node{BoolNode(\"0\", true)}), false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Empty(); got != tt.expected {\n\t\t\t\tt.Errorf(\"%s = %v, want %v\", tt.name, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Index_EmptyList(t *testing.T) {\n\troot, err := Unmarshal([]byte(`[]`))\n\tif err != nil {\n\t\tt.Errorf(\"error occurred while unmarshal\")\n\t}\n\n\tarray := root.MustArray()\n\tfor i, node := range array {\n\t\tif i != node.Index() {\n\t\t\tt.Errorf(ufmt.Sprintf(\"Index() must be nil. got: %v\", i))\n\t\t}\n\t}\n}\n\nfunc TestNode_GetObject(t *testing.T) {\n\troot, err := Unmarshal([]byte(`{\"foo\": true,\"bar\": null}`))\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tvalue, err := root.GetObject()\n\tif err != nil {\n\t\tt.Errorf(\"Error on root.GetObject(): %s\", err.Error())\n\t}\n\n\tif _, ok := value[\"foo\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: foo\")\n\t}\n\n\tif _, ok := value[\"bar\"]; !ok {\n\t\tt.Errorf(\"root.GetObject() is corrupted: bar\")\n\t}\n}\n\nfunc TestNode_GetObject_Fail(t *testing.T) {\n\ttests := []simpleNode{\n\t\t{\"nil node\", (*Node)(nil)},\n\t\t{\"get object from null node\", NullNode(\"\")},\n\t\t{\"not object node\", NumberNode(\"\", 123)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif _, err := tt.node.GetObject(); err == nil {\n\t\t\t\tt.Errorf(\"%s should be an error\", tt.name)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ObjectEach(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tjson string\n\t\texpected map[string]int\n\t}{\n\t\t{\n\t\t\tname: \"empty object\",\n\t\t\tjson: `{}`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t\t{\n\t\t\tname: \"single key-value pair\",\n\t\t\tjson: `{\"key\": 42}`,\n\t\t\texpected: map[string]int{\"key\": 42},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs\",\n\t\t\tjson: `{\"one\": 1, \"two\": 2, \"three\": 3}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"two\": 2, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple key-value pairs with some non-numeric values\",\n\t\t\tjson: `{\"one\": 1, \"two\": \"2\", \"three\": 3, \"four\": \"4\"}`,\n\t\t\texpected: map[string]int{\"one\": 1, \"three\": 3},\n\t\t},\n\t\t{\n\t\t\tname: \"non-object node\",\n\t\t\tjson: `[\"not\", \"an\", \"object\"]`,\n\t\t\texpected: make(map[string]int),\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\troot, err := Unmarshal([]byte(tc.json))\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal failed: %v\", err)\n\t\t\t}\n\n\t\t\tresult := make(map[string]int)\n\t\t\troot.ObjectEach(func(key string, value *Node) {\n\t\t\t\t// extract integer values from the object\n\t\t\t\tif val, err := strconv.Atoi(value.String()); err == nil {\n\t\t\t\t\tresult[key] = val\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif len(result) != len(tc.expected) {\n\t\t\t\tt.Errorf(\"%s: expected %d key-value pairs, got %d\", tc.name, len(tc.expected), len(result))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfor key, val := range tc.expected {\n\t\t\t\tif result[key] != val {\n\t\t\t\t\tt.Errorf(\"%s: expected value for key %s to be %d, got %d\", tc.name, key, val, result[key])\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_ExampleMust(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot := Must(Unmarshal(data))\n\tif root.Size() != 1 {\n\t\tt.Errorf(\"root.Size() must be 1. got: %v\", root.Size())\n\t}\n\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n\t// Output:\n\t// Object has 1 inheritors inside\n}\n\n// Calculate AVG price from different types of objects, JSON from: https://goessner.net/articles/JsonPath/index.html#e3\nfunc TestExampleUnmarshal(t *testing.T) {\n\tdata := []byte(`{ \"store\": {\n \"book\": [ \n { \"category\": \"reference\",\n \"author\": \"Nigel Rees\",\n \"title\": \"Sayings of the Century\",\n \"price\": 8.95\n },\n { \"category\": \"fiction\",\n \"author\": \"Evelyn Waugh\",\n \"title\": \"Sword of Honour\",\n \"price\": 12.99\n },\n { \"category\": \"fiction\",\n \"author\": \"Herman Melville\",\n \"title\": \"Moby Dick\",\n \"isbn\": \"0-553-21311-3\",\n \"price\": 8.99\n },\n { \"category\": \"fiction\",\n \"author\": \"J. R. R. Tolkien\",\n \"title\": \"The Lord of the Rings\",\n \"isbn\": \"0-395-19395-8\",\n \"price\": 22.99\n }\n ],\n \"bicycle\": { \"color\": \"red\",\n \"price\": 19.95\n },\n \"tools\": null\n }\n}`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"error occurred when unmarshal\")\n\t}\n\n\tstore := root.MustKey(\"store\").MustObject()\n\n\tvar prices float64\n\tsize := 0\n\tfor _, objects := range store {\n\t\tif objects.IsArray() \u0026\u0026 objects.Size() \u003e 0 {\n\t\t\tsize += objects.Size()\n\t\t\tfor _, object := range objects.MustArray() {\n\t\t\t\tprices += object.MustKey(\"price\").MustNumeric()\n\t\t\t}\n\t\t} else if objects.IsObject() \u0026\u0026 objects.HasKey(\"price\") {\n\t\t\tsize++\n\t\t\tprices += objects.MustKey(\"price\").MustNumeric()\n\t\t}\n\t}\n\n\tresult := int(prices / float64(size))\n\tufmt.Sprintf(\"AVG price: %d\", result)\n}\n\nfunc TestNode_ExampleMust_panic(t *testing.T) {\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"The code did not panic\")\n\t\t}\n\t}()\n\tdata := []byte(`{]`)\n\troot := Must(Unmarshal(data))\n\tufmt.Sprintf(\"Object has %d inheritors inside\", root.Size())\n}\n\nfunc TestNode_Path(t *testing.T) {\n\tdata := []byte(`{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http://www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": 100\n },\n \"Animated\" : false,\n \"IDs\": [116, 943, 234, 38793]\n }\n }`)\n\n\troot, err := Unmarshal(data)\n\tif err != nil {\n\t\tt.Errorf(\"Error on Unmarshal(): %s\", err.Error())\n\t\treturn\n\t}\n\n\tif root.Path() != \"$\" {\n\t\tt.Errorf(\"Wrong root.Path()\")\n\t}\n\n\telement := root.MustKey(\"Image\").MustKey(\"Thumbnail\").MustKey(\"Url\")\n\tif element.Path() != \"$['Image']['Thumbnail']['Url']\" {\n\t\tt.Errorf(\"Wrong path found: %s\", element.Path())\n\t}\n\n\tif (*Node)(nil).Path() != \"\" {\n\t\tt.Errorf(\"Wrong (nil).Path()\")\n\t}\n}\n\nfunc TestNode_Path2(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"Node with key\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tkey: func() *string { s := \"key\"; return \u0026s }(),\n\t\t\t},\n\t\t\twant: \"$['key']\",\n\t\t},\n\t\t{\n\t\t\tname: \"Node with index\",\n\t\t\tnode: \u0026Node{\n\t\t\t\tprev: \u0026Node{},\n\t\t\t\tindex: func() *int { i := 1; return \u0026i }(),\n\t\t\t},\n\t\t\twant: \"$[1]\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.Path(); got != tt.want {\n\t\t\t\tt.Errorf(\"Path() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNode_Root(t *testing.T) {\n\troot := \u0026Node{}\n\tchild := \u0026Node{prev: root}\n\tgrandChild := \u0026Node{prev: child}\n\n\ttests := []struct {\n\t\tname string\n\t\tnode *Node\n\t\twant *Node\n\t}{\n\t\t{\n\t\t\tname: \"Root node\",\n\t\t\tnode: root,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Child node\",\n\t\t\tnode: child,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Grandchild node\",\n\t\t\tnode: grandChild,\n\t\t\twant: root,\n\t\t},\n\t\t{\n\t\t\tname: \"Node is nil\",\n\t\t\tnode: nil,\n\t\t\twant: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := tt.node.root(); got != tt.want {\n\t\t\t\tt.Errorf(\"root() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc contains(slice []string, item string) bool {\n\tfor _, a := range slice {\n\t\tif a == item {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// ignore the sequence of keys by ordering them.\n// need to avoid import encoding/json and reflect package.\n// because gno does not support them for now.\n// TODO: use encoding/json to compare the result after if possible in gno.\nfunc isSameObject(a, b string) bool {\n\taPairs := strings.Split(strings.Trim(a, \"{}\"), \",\")\n\tbPairs := strings.Split(strings.Trim(b, \"{}\"), \",\")\n\n\taMap := make(map[string]string)\n\tbMap := make(map[string]string)\n\tfor _, pair := range aPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\taMap[key] = value\n\t}\n\tfor _, pair := range bPairs {\n\t\tkv := strings.Split(pair, \":\")\n\t\tkey := strings.Trim(kv[0], `\"`)\n\t\tvalue := strings.Trim(kv[1], `\"`)\n\t\tbMap[key] = value\n\t}\n\n\taKeys := make([]string, 0, len(aMap))\n\tbKeys := make([]string, 0, len(bMap))\n\tfor k := range aMap {\n\t\taKeys = append(aKeys, k)\n\t}\n\n\tfor k := range bMap {\n\t\tbKeys = append(bKeys, k)\n\t}\n\n\tsort.Strings(aKeys)\n\tsort.Strings(bKeys)\n\n\tif len(aKeys) != len(bKeys) {\n\t\treturn false\n\t}\n\n\tfor i := range aKeys {\n\t\tif aKeys[i] != bKeys[i] {\n\t\t\treturn false\n\t\t}\n\n\t\tif aMap[aKeys[i]] != bMap[bKeys[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc compareNodes(n1, n2 *Node) bool {\n\tif n1 == nil || n2 == nil {\n\t\treturn n1 == n2\n\t}\n\n\tif n1.key != n2.key {\n\t\treturn false\n\t}\n\n\tif !bytes.Equal(n1.data, n2.data) {\n\t\treturn false\n\t}\n\n\tif n1.index != n2.index {\n\t\treturn false\n\t}\n\n\tif n1.borders != n2.borders {\n\t\treturn false\n\t}\n\n\tif n1.modified != n2.modified {\n\t\treturn false\n\t}\n\n\tif n1.nodeType != n2.nodeType {\n\t\treturn false\n\t}\n\n\tif !compareNodes(n1.prev, n2.prev) {\n\t\treturn false\n\t}\n\n\tif len(n1.next) != len(n2.next) {\n\t\treturn false\n\t}\n\n\tfor k, v := range n1.next {\n\t\tif !compareNodes(v, n2.next[k]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"parser.gno","body":"package json\n\nimport (\n\t\"bytes\"\n)\n\nconst (\n\tunescapeStackBufSize = 64\n\tabsMinInt64 = 1 \u003c\u003c 63\n\tmaxInt64 = absMinInt64 - 1\n\tmaxUint64 = 1\u003c\u003c64 - 1\n)\n\n// PaseStringLiteral parses a string from the given byte slice.\nfunc ParseStringLiteral(data []byte) (string, error) {\n\tvar buf [unescapeStackBufSize]byte\n\n\tbf, err := Unescape(data, buf[:])\n\tif err != nil {\n\t\treturn \"\", errInvalidStringInput\n\t}\n\n\treturn string(bf), nil\n}\n\n// ParseBoolLiteral parses a boolean value from the given byte slice.\nfunc ParseBoolLiteral(data []byte) (bool, error) {\n\tswitch {\n\tcase bytes.Equal(data, trueLiteral):\n\t\treturn true, nil\n\tcase bytes.Equal(data, falseLiteral):\n\t\treturn false, nil\n\tdefault:\n\t\treturn false, errMalformedBooleanValue\n\t}\n}\n"},{"name":"parser_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseStringLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t\tisError bool\n\t}{\n\t\t{`\"Hello, World!\"`, \"\\\"Hello, World!\\\"\", false},\n\t\t{`\\uFF11`, \"\\uFF11\", false},\n\t\t{`\\uFFFF`, \"\\uFFFF\", false},\n\t\t{`true`, \"true\", false},\n\t\t{`false`, \"false\", false},\n\t\t{`\\uDF00`, \"\", true},\n\t}\n\n\tfor i, tt := range tests {\n\t\ts, err := ParseStringLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif s != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%s, but actual=%s\", i, tt.expected, s)\n\t\t}\n\t}\n}\n\nfunc TestParseBoolLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected bool\n\t\tisError bool\n\t}{\n\t\t{`true`, true, false},\n\t\t{`false`, false, false},\n\t\t{`TRUE`, false, true},\n\t\t{`FALSE`, false, true},\n\t\t{`foo`, false, true},\n\t\t{`\"true\"`, false, true},\n\t\t{`\"false\"`, false, true},\n\t}\n\n\tfor i, tt := range tests {\n\t\tb, err := ParseBoolLiteral([]byte(tt.input))\n\n\t\tif !tt.isError \u0026\u0026 err != nil {\n\t\t\tt.Errorf(\"%d. unexpected error: %s\", i, err)\n\t\t}\n\n\t\tif tt.isError \u0026\u0026 err == nil {\n\t\t\tt.Errorf(\"%d. expected error, but not error\", i)\n\t\t}\n\n\t\tif b != tt.expected {\n\t\t\tt.Errorf(\"%d. expected=%t, but actual=%t\", i, tt.expected, b)\n\t\t}\n\t}\n}\n"},{"name":"path.gno","body":"package json\n\nimport (\n\t\"errors\"\n)\n\n// ParsePath takes a JSONPath string and returns a slice of strings representing the path segments.\nfunc ParsePath(path string) ([]string, error) {\n\tbuf := newBuffer([]byte(path))\n\tresult := make([]string, 0)\n\n\tfor {\n\t\tb, err := buf.current()\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch {\n\t\tcase b == dollarSign || b == atSign:\n\t\t\tresult = append(result, string(b))\n\t\t\tbuf.step()\n\n\t\tcase b == dot:\n\t\t\tbuf.step()\n\n\t\t\tif next, _ := buf.current(); next == dot {\n\t\t\t\tbuf.step()\n\t\t\t\tresult = append(result, \"..\")\n\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t} else {\n\t\t\t\textractNextSegment(buf, \u0026result)\n\t\t\t}\n\n\t\tcase b == bracketOpen:\n\t\t\tstart := buf.index\n\t\t\tbuf.step()\n\n\t\t\tfor {\n\t\t\t\tif buf.index \u003e= buf.length || buf.data[buf.index] == bracketClose {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tbuf.step()\n\t\t\t}\n\n\t\t\tif buf.index \u003e= buf.length {\n\t\t\t\treturn nil, errors.New(\"unexpected end of path\")\n\t\t\t}\n\n\t\t\tsegment := string(buf.sliceFromIndices(start+1, buf.index))\n\t\t\tresult = append(result, segment)\n\n\t\t\tbuf.step()\n\n\t\tdefault:\n\t\t\tbuf.step()\n\t\t}\n\t}\n\n\treturn result, nil\n}\n\n// extractNextSegment extracts the segment from the current index\n// to the next significant character and adds it to the resulting slice.\nfunc extractNextSegment(buf *buffer, result *[]string) {\n\tstart := buf.index\n\tbuf.skipToNextSignificantToken()\n\n\tif buf.index \u003c= start {\n\t\treturn\n\t}\n\n\tsegment := string(buf.sliceFromIndices(start, buf.index))\n\tif segment != \"\" {\n\t\t*result = append(*result, segment)\n\t}\n}\n"},{"name":"path_test.gno","body":"package json\n\nimport \"testing\"\n\nfunc TestParseJSONPath(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tpath string\n\t\texpected []string\n\t}{\n\t\t{name: \"Empty string path\", path: \"\", expected: []string{}},\n\t\t{name: \"Root only path\", path: \"$\", expected: []string{\"$\"}},\n\t\t{name: \"Root with dot path\", path: \"$.\", expected: []string{\"$\"}},\n\t\t{name: \"All objects in path\", path: \"$..\", expected: []string{\"$\", \"..\"}},\n\t\t{name: \"Only children in path\", path: \"$.*\", expected: []string{\"$\", \"*\"}},\n\t\t{name: \"All objects' children in path\", path: \"$..*\", expected: []string{\"$\", \"..\", \"*\"}},\n\t\t{name: \"Simple dot notation path\", path: \"$.root.element\", expected: []string{\"$\", \"root\", \"element\"}},\n\t\t{name: \"Complex dot notation path with wildcard\", path: \"$.root.*.element\", expected: []string{\"$\", \"root\", \"*\", \"element\"}},\n\t\t{name: \"Path with array wildcard\", path: \"$.phoneNumbers[*].type\", expected: []string{\"$\", \"phoneNumbers\", \"*\", \"type\"}},\n\t\t{name: \"Path with filter expression\", path: \"$.store.book[?(@.price \u003c 10)].title\", expected: []string{\"$\", \"store\", \"book\", \"?(@.price \u003c 10)\", \"title\"}},\n\t\t{name: \"Path with formula\", path: \"$..phoneNumbers..('ty' + 'pe')\", expected: []string{\"$\", \"..\", \"phoneNumbers\", \"..\", \"('ty' + 'pe')\"}},\n\t\t{name: \"Simple bracket notation path\", path: \"$['root']['element']\", expected: []string{\"$\", \"'root'\", \"'element'\"}},\n\t\t{name: \"Complex bracket notation path with wildcard\", path: \"$['root'][*]['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Bracket notation path with integer index\", path: \"$['store']['book'][0]['title']\", expected: []string{\"$\", \"'store'\", \"'book'\", \"0\", \"'title'\"}},\n\t\t{name: \"Complex path with wildcard in bracket notation\", path: \"$['root'].*['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot after bracket\", path: \"$.['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Mixed notation path with dot before bracket\", path: \"$['root'].*.['element']\", expected: []string{\"$\", \"'root'\", \"*\", \"'element'\"}},\n\t\t{name: \"Single character path with root\", path: \"$.a\", expected: []string{\"$\", \"a\"}},\n\t\t{name: \"Multiple characters path with root\", path: \"$.abc\", expected: []string{\"$\", \"abc\"}},\n\t\t{name: \"Multiple segments path with root\", path: \"$.a.b.c\", expected: []string{\"$\", \"a\", \"b\", \"c\"}},\n\t\t{name: \"Multiple segments path with wildcard and root\", path: \"$.a.*.c\", expected: []string{\"$\", \"a\", \"*\", \"c\"}},\n\t\t{name: \"Multiple segments path with filter and root\", path: \"$.a[?(@.b == 'c')].d\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\"}},\n\t\t{name: \"Complex path with multiple filters\", path: \"$.a[?(@.b == 'c')].d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Complex path with multiple filters and wildcards\", path: \"$.a[?(@.b == 'c')].*.d[?(@.e == 'f')].g\", expected: []string{\"$\", \"a\", \"?(@.b == 'c')\", \"*\", \"d\", \"?(@.e == 'f')\", \"g\"}},\n\t\t{name: \"Path with array index and root\", path: \"$.a[0].b\", expected: []string{\"$\", \"a\", \"0\", \"b\"}},\n\t\t{name: \"Path with multiple array indices and root\", path: \"$.a[0].b[1].c\", expected: []string{\"$\", \"a\", \"0\", \"b\", \"1\", \"c\"}},\n\t\t{name: \"Path with array index, wildcard and root\", path: \"$.a[0].*.c\", expected: []string{\"$\", \"a\", \"0\", \"*\", \"c\"}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\treult, _ := ParsePath(tt.path)\n\t\t\tif !isEqualSlice(reult, tt.expected) {\n\t\t\t\tt.Errorf(\"ParsePath(%s) expected: %v, got: %v\", tt.path, tt.expected, reult)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc isEqualSlice(a, b []string) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\n\tfor i, v := range a {\n\t\tif v != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"},{"name":"token.gno","body":"package json\n\nconst (\n\tbracketOpen = '['\n\tbracketClose = ']'\n\tparenOpen = '('\n\tparenClose = ')'\n\tcurlyOpen = '{'\n\tcurlyClose = '}'\n\tcomma = ','\n\tdot = '.'\n\tcolon = ':'\n\tbackTick = '`'\n\tsingleQuote = '\\''\n\tdoubleQuote = '\"'\n\temptyString = \"\"\n\twhiteSpace = ' '\n\tplus = '+'\n\tminus = '-'\n\taesterisk = '*'\n\tbang = '!'\n\tquestion = '?'\n\tnewLine = '\\n'\n\ttab = '\\t'\n\tcarriageReturn = '\\r'\n\tformFeed = '\\f'\n\tbackSpace = '\\b'\n\tslash = '/'\n\tbackSlash = '\\\\'\n\tunderScore = '_'\n\tdollarSign = '$'\n\tatSign = '@'\n\tandSign = '\u0026'\n\torSign = '|'\n)\n\nvar (\n\ttrueLiteral = []byte(\"true\")\n\tfalseLiteral = []byte(\"false\")\n\tnullLiteral = []byte(\"null\")\n)\n\ntype ValueType int\n\nconst (\n\tNotExist ValueType = iota\n\tString\n\tNumber\n\tFloat\n\tObject\n\tArray\n\tBoolean\n\tNull\n\tUnknown\n)\n\nfunc (v ValueType) String() string {\n\tswitch v {\n\tcase NotExist:\n\t\treturn \"not-exist\"\n\tcase String:\n\t\treturn \"string\"\n\tcase Number:\n\t\treturn \"number\"\n\tcase Object:\n\t\treturn \"object\"\n\tcase Array:\n\t\treturn \"array\"\n\tcase Boolean:\n\t\treturn \"boolean\"\n\tcase Null:\n\t\treturn \"null\"\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RYpFlZuSBvjcLq3FPP2gB78t6JGSGqC/ljP2q11zMGRIEN/oA7yatsPORJXg/DUpq0IwO1DilLq8RpK/QLUMBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"keystore","path":"gno.land/r/demo/keystore","files":[{"name":"keystore.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar data avl.Tree\n\nconst (\n\tBaseURL = \"/r/demo/keystore\"\n\tStatusOK = \"ok\"\n\tStatusNoUser = \"user not found\"\n\tStatusNotFound = \"key not found\"\n\tStatusNoWriteAccess = \"no write access\"\n\tStatusCouldNotExecute = \"could not execute\"\n\tStatusNoDatabases = \"no databases\"\n)\n\nfunc init() {\n\tdata = avl.Tree{} // user -\u003e avl.Tree\n}\n\n// KeyStore stores the owner-specific avl.Tree\ntype KeyStore struct {\n\tOwner std.Address\n\tData avl.Tree\n}\n\n// Set will set a value to a key\n// requires write-access (original caller must be caller)\nfunc Set(k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn set(origOwner.String(), k, v)\n}\n\n// set (private) will set a key to value\n// requires write-access (original caller must be caller)\nfunc set(owner, k, v string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\tkeystore.Data.Set(k, v)\n\treturn StatusOK\n}\n\n// Remove removes a key\n// requires write-access (original owner must be caller)\nfunc Remove(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// remove (private) removes a key\n// requires write-access (original owner must be caller)\nfunc remove(owner, k string) string {\n\torigOwner := std.GetOrigCaller()\n\tif origOwner.String() != owner {\n\t\treturn StatusNoWriteAccess\n\t}\n\tvar keystore *KeyStore\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\tkeystore = \u0026KeyStore{\n\t\t\tOwner: origOwner,\n\t\t\tData: avl.Tree{},\n\t\t}\n\t\tdata.Set(owner, keystore)\n\t} else {\n\t\tkeystore = keystoreInterface.(*KeyStore)\n\t}\n\t_, removed := keystore.Data.Remove(k)\n\tif !removed {\n\t\treturn StatusCouldNotExecute\n\t}\n\treturn StatusOK\n}\n\n// Get returns a value for a key\n// read-only\nfunc Get(k string) string {\n\torigOwner := std.GetOrigCaller()\n\treturn remove(origOwner.String(), k)\n}\n\n// get (private) returns a value for a key\n// read-only\nfunc get(owner, k string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\tval, found := keystore.Data.Get(k)\n\tif !found {\n\t\treturn StatusNotFound\n\t}\n\treturn val.(string)\n}\n\n// Size returns size of database\n// read-only\nfunc Size() string {\n\torigOwner := std.GetOrigCaller()\n\treturn size(origOwner.String())\n}\n\nfunc size(owner string) string {\n\tkeystoreInterface, exists := data.Get(owner)\n\tif !exists {\n\t\treturn StatusNoUser\n\t}\n\tkeystore := keystoreInterface.(*KeyStore)\n\treturn ufmt.Sprintf(\"%d\", keystore.Data.Size())\n}\n\n// Render provides read-only url access to the functions of the keystore\n// \"\" -\u003e show all keystores listed by owner\n// \"owner\" -\u003e show all keys for that owner's keystore\n// \"owner:size\" -\u003e returns size of owner's keystore\n// \"owner:get:key\" -\u003e show value for that key in owner's keystore\nfunc Render(p string) string {\n\tvar response string\n\targs := strings.Split(p, \":\")\n\tnumArgs := len(args)\n\tif p == \"\" {\n\t\tnumArgs = 0\n\t}\n\tswitch numArgs {\n\tcase 0:\n\t\tif data.Size() == 0 {\n\t\t\treturn StatusNoDatabases\n\t\t}\n\t\tdata.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tks := value.(*KeyStore)\n\t\t\tresponse += ufmt.Sprintf(\"- [%s](%s:%s) (%d keys)\\n\", ks.Owner, BaseURL, ks.Owner, ks.Data.Size())\n\t\t\treturn false\n\t\t})\n\tcase 1:\n\t\towner := args[0]\n\t\tkeystoreInterface, exists := data.Get(owner)\n\t\tif !exists {\n\t\t\treturn StatusNoUser\n\t\t}\n\t\tks := keystoreInterface.(*KeyStore)\n\t\ti := 0\n\t\tresponse += ufmt.Sprintf(\"# %s database\\n\\n\", ks.Owner)\n\t\tks.Data.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tresponse += ufmt.Sprintf(\"- %d [%s](%s:%s:get:%s)\\n\", i, key, BaseURL, ks.Owner, key)\n\t\t\ti++\n\t\t\treturn false\n\t\t})\n\tcase 2:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tif cmd == \"size\" {\n\t\t\treturn size(owner)\n\t\t}\n\tcase 3:\n\t\towner := args[0]\n\t\tcmd := args[1]\n\t\tkey := args[2]\n\t\tif cmd == \"get\" {\n\t\t\treturn get(owner, key)\n\t\t}\n\t}\n\n\treturn response\n}\n"},{"name":"keystore_test.gno","body":"package keystore\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestRender(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\ttt := []struct {\n\t\tcaller std.Address\n\t\towner std.Address\n\t\tps []string\n\t\texp string\n\t}{\n\t\t// can set database if the owner is the caller\n\t\t{author1, author1, []string{\"set\", \"hello\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hello\", \"world\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\t\t// only owner can remove\n\t\t{author1, author1, []string{\"remove\", \"hi\"}, StatusOK},\n\t\t{author1, author1, []string{\"get\", \"hi\"}, StatusNotFound},\n\t\t{author1, author1, []string{\"size\"}, \"1\"},\n\t\t// add back\n\t\t{author1, author1, []string{\"set\", \"hi\", \"gno\"}, StatusOK},\n\t\t{author1, author1, []string{\"size\"}, \"2\"},\n\n\t\t// different owner has different database\n\t\t{author2, author2, []string{\"set\", \"hello\", \"universe\"}, StatusOK},\n\t\t// either author can get the other info\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// either author can get the other info\n\t\t{author2, author1, []string{\"get\", \"hello\"}, \"world\"},\n\t\t{author1, author2, []string{\"get\", \"hello\"}, \"universe\"},\n\t\t// anyone can view the databases\n\t\t{author1, author2, []string{}, `- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/keystore:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6) (2 keys)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00) (1 keys)`},\n\t\t// anyone can view the keys in a database\n\t\t{author1, author2, []string{\"\"}, `# g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00 database\n\n- 0 [hello](/r/demo/keystore:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00:get:hello)`},\n\t}\n\tfor _, tc := range tt {\n\t\tp := \"\"\n\t\tif len(tc.ps) \u003e 0 {\n\t\t\tp = tc.owner.String()\n\t\t\tfor i, psv := range tc.ps {\n\t\t\t\tp += \":\" + psv\n\t\t\t}\n\t\t}\n\t\tp = strings.TrimSuffix(p, \":\")\n\t\tt.Run(p, func(t *testing.T) {\n\t\t\tstd.TestSetOrigCaller(tc.caller)\n\t\t\tvar act string\n\t\t\tif len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"set\" {\n\t\t\t\tact = strings.TrimSpace(Set(tc.ps[1], tc.ps[2]))\n\t\t\t} else if len(tc.ps) \u003e 0 \u0026\u0026 tc.ps[0] == \"remove\" {\n\t\t\t\tact = strings.TrimSpace(Remove(tc.ps[1]))\n\t\t\t} else {\n\t\t\t\tact = strings.TrimSpace(Render(p))\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tc.exp, act, ufmt.Sprintf(\"%v -\u003e '%s'\", tc.ps, p))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMSpF4JI8+EKaiw/Dw6FT4ydBatvPb3mvPc/+eklytBVOG6lGen3HRJXSDUGdI7t2+RwNa6jFG/SoOxB23kZCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"lifetime","path":"gno.land/p/demo/subscription/lifetime","files":[{"name":"errors.gno","body":"package lifetime\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"lifetime subscription: no active subscription found\")\n\tErrAmt = errors.New(\"lifetime subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"lifetime subscription: this address already has an active lifetime subscription\")\n\tErrNotAuthorized = errors.New(\"lifetime subscription: action not authorized\")\n)\n"},{"name":"lifetime.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// LifetimeSubscription represents a subscription that requires only a one-time payment.\n// It grants permanent access to a service or product.\ntype LifetimeSubscription struct {\n\townable.Ownable\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e bool\n}\n\n// NewLifetimeSubscription creates and returns a new lifetime subscription.\nfunc NewLifetimeSubscription(amount int64) *LifetimeSubscription {\n\treturn \u0026LifetimeSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// processSubscription handles the subscription process for a given receiver.\nfunc (ls *LifetimeSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != ls.amount {\n\t\treturn ErrAmt\n\t}\n\n\t_, exists := ls.subs.Get(receiver.String())\n\n\tif exists {\n\t\treturn ErrAlreadySub\n\t}\n\n\tls.subs.Set(receiver.String(), true)\n\n\treturn nil\n}\n\n// Subscribe processes the payment for a lifetime subscription.\nfunc (ls *LifetimeSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\treturn ls.processSubscription(caller)\n}\n\n// GiftSubscription allows the caller to pay for a lifetime subscription for another user.\nfunc (ls *LifetimeSubscription) GiftSubscription(receiver std.Address) error {\n\treturn ls.processSubscription(receiver)\n}\n\n// HasValidSubscription checks if the given address has an active lifetime subscription.\nfunc (ls *LifetimeSubscription) HasValidSubscription(addr std.Address) error {\n\t_, exists := ls.subs.Get(addr.String())\n\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\treturn nil\n}\n\n// UpdateAmount allows the owner of the LifetimeSubscription contract to update the subscription price.\nfunc (ls *LifetimeSubscription) UpdateAmount(newAmount int64) error {\n\tif !ls.CallerIsOwner() {\n\t\treturn ErrNotAuthorized\n\t}\n\n\tls.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current subscription price.\nfunc (ls *LifetimeSubscription) GetAmount() int64 {\n\treturn ls.amount\n}\n"},{"name":"lifetime_test.gno","body":"package lifetime\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestLifetimeSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed\")\n\n\terr = ls.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n}\n\nfunc TestLifetimeSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = ls.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\n\terr = ls.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.Subscribe()\n\tuassert.Error(t, err, \"Expected payment to fail with incorrect amount\")\n}\n\nfunc TestMultipleSubscriptionAttempts(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected first subscription to succeed\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected second subscription to fail as Alice is already subscribed\")\n}\n\nfunc TestGiftSubscriptionWithIncorrectAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := ls.GiftSubscription(bob)\n\tuassert.Error(t, err, \"Expected gift subscription to fail with incorrect amount\")\n\n\terr = ls.HasValidSubscription(bob)\n\tuassert.Error(t, err, \"Expected Bob to not have access after incorrect gift subscription\")\n}\n\nfunc TestUpdateAmountEffectiveness(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tls := NewLifetimeSubscription(1000)\n\n\terr := ls.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.Error(t, err, \"Expected subscription to fail with old amount after update\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 2000}}, nil)\n\terr = ls.Subscribe()\n\tuassert.NoError(t, err, \"Expected subscription to succeed with new amount\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NJ6rviQVyuxUf9rs24iJOF0pv22goT8fe15oL6a1Wa+w6AhW9hguHuqCnCXkCKOgs8oD3UlfBtT5Mc+9sMMMDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"list","path":"gno.land/p/demo/avl/list","files":[{"name":"list.gno","body":"// Package list implements a dynamic list data structure backed by an AVL tree.\n// It provides O(log n) operations for most list operations while maintaining\n// order stability.\n//\n// The list supports various operations including append, get, set, delete,\n// range queries, and iteration. It can store values of any type.\n//\n// Example usage:\n//\n//\t// Create a new list and add elements\n//\tvar l list.List\n//\tl.Append(1, 2, 3)\n//\n//\t// Get and set elements\n//\tvalue := l.Get(1) // returns 2\n//\tl.Set(1, 42) // updates index 1 to 42\n//\n//\t// Delete elements\n//\tl.Delete(0) // removes first element\n//\n//\t// Iterate over elements\n//\tl.ForEach(func(index int, value interface{}) bool {\n//\t ufmt.Printf(\"index %d: %v\\n\", index, value)\n//\t return false // continue iteration\n//\t})\n//\t// Output:\n//\t// index 0: 42\n//\t// index 1: 3\n//\n//\t// Create a list of specific size\n//\tl = list.Make(3, \"default\") // creates [default, default, default]\n//\n//\t// Create a list using a variable declaration\n//\tvar l2 list.List\n//\tl2.Append(4, 5, 6)\n//\tprintln(l2.Len()) // Output: 3\npackage list\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n)\n\n// List represents an ordered sequence of items backed by an AVL tree\ntype List struct {\n\ttree avl.Tree\n\tidGen seqid.ID\n}\n\n// Len returns the number of elements in the list.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3)\n//\tprintln(l.Len()) // Output: 3\nfunc (l *List) Len() int {\n\treturn l.tree.Size()\n}\n\n// Append adds one or more values to the end of the list.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1) // adds single value\n//\tl.Append(2, 3, 4) // adds multiple values\n//\tprintln(l.Len()) // Output: 4\nfunc (l *List) Append(values ...interface{}) {\n\tfor _, v := range values {\n\t\tl.tree.Set(l.idGen.Next().String(), v)\n\t}\n}\n\n// Get returns the value at the specified index.\n// Returns nil if index is out of bounds.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3)\n//\tprintln(l.Get(1)) // Output: 2\n//\tprintln(l.Get(-1)) // Output: nil\n//\tprintln(l.Get(999)) // Output: nil\nfunc (l *List) Get(index int) interface{} {\n\tif index \u003c 0 || index \u003e= l.tree.Size() {\n\t\treturn nil\n\t}\n\t_, value := l.tree.GetByIndex(index)\n\treturn value\n}\n\n// Set updates or appends a value at the specified index.\n// Returns true if the operation was successful, false otherwise.\n// For empty lists, only index 0 is valid (append case).\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3)\n//\n//\tl.Set(1, 42) // updates existing index\n//\tprintln(l.Get(1)) // Output: 42\n//\n//\tl.Set(3, 4) // appends at end\n//\tprintln(l.Get(3)) // Output: 4\n//\n//\tl.Set(-1, 5) // invalid index\n//\tprintln(l.Len()) // Output: 4 (list unchanged)\nfunc (l *List) Set(index int, value interface{}) bool {\n\tsize := l.tree.Size()\n\n\t// Handle empty list case - only allow index 0\n\tif size == 0 {\n\t\tif index == 0 {\n\t\t\tl.Append(value)\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tif index \u003c 0 || index \u003e size {\n\t\treturn false\n\t}\n\n\t// If setting at the end (append case)\n\tif index == size {\n\t\tl.Append(value)\n\t\treturn true\n\t}\n\n\t// Get the key at the specified index\n\tkey, _ := l.tree.GetByIndex(index)\n\tif key == \"\" {\n\t\treturn false\n\t}\n\n\t// Update the value at the existing key\n\tl.tree.Set(key, value)\n\treturn true\n}\n\n// Delete removes the element at the specified index.\n// Returns the deleted value and true if successful, nil and false otherwise.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3)\n//\n//\tval, ok := l.Delete(1)\n//\tprintln(val, ok) // Output: 2 true\n//\tprintln(l.Len()) // Output: 2\n//\n//\tval, ok = l.Delete(-1)\n//\tprintln(val, ok) // Output: nil false\nfunc (l *List) Delete(index int) (interface{}, bool) {\n\tsize := l.tree.Size()\n\t// Always return nil, false for empty list\n\tif size == 0 {\n\t\treturn nil, false\n\t}\n\n\tif index \u003c 0 || index \u003e= size {\n\t\treturn nil, false\n\t}\n\n\tkey, value := l.tree.GetByIndex(index)\n\tif key == \"\" {\n\t\treturn nil, false\n\t}\n\n\tl.tree.Remove(key)\n\treturn value, true\n}\n\n// Slice returns a slice of values from startIndex (inclusive) to endIndex (exclusive).\n// Returns nil if the range is invalid.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3, 4, 5)\n//\n//\tprintln(l.Slice(1, 4)) // Output: [2 3 4]\n//\tprintln(l.Slice(-1, 2)) // Output: [1 2]\n//\tprintln(l.Slice(3, 999)) // Output: [4 5]\n//\tprintln(l.Slice(3, 2)) // Output: nil\nfunc (l *List) Slice(startIndex, endIndex int) []interface{} {\n\tsize := l.tree.Size()\n\n\t// Normalize bounds\n\tif startIndex \u003c 0 {\n\t\tstartIndex = 0\n\t}\n\tif endIndex \u003e size {\n\t\tendIndex = size\n\t}\n\tif startIndex \u003e= endIndex {\n\t\treturn nil\n\t}\n\n\tcount := endIndex - startIndex\n\tresult := make([]interface{}, count)\n\n\ti := 0\n\tl.tree.IterateByOffset(startIndex, count, func(_ string, value interface{}) bool {\n\t\tresult[i] = value\n\t\ti++\n\t\treturn false\n\t})\n\treturn result\n}\n\n// ForEach iterates through all elements in the list.\nfunc (l *List) ForEach(fn func(index int, value interface{}) bool) {\n\tif l.tree.Size() == 0 {\n\t\treturn\n\t}\n\n\tindex := 0\n\tl.tree.IterateByOffset(0, l.tree.Size(), func(_ string, value interface{}) bool {\n\t\tresult := fn(index, value)\n\t\tindex++\n\t\treturn result\n\t})\n}\n\n// Clone creates a shallow copy of the list.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3)\n//\n//\tclone := l.Clone()\n//\tclone.Set(0, 42)\n//\n//\tprintln(l.Get(0)) // Output: 1\n//\tprintln(clone.Get(0)) // Output: 42\nfunc (l *List) Clone() *List {\n\tnewList := \u0026List{\n\t\ttree: avl.Tree{},\n\t\tidGen: l.idGen,\n\t}\n\n\tsize := l.tree.Size()\n\tif size == 0 {\n\t\treturn newList\n\t}\n\n\tl.tree.IterateByOffset(0, size, func(_ string, value interface{}) bool {\n\t\tnewList.Append(value)\n\t\treturn false\n\t})\n\n\treturn newList\n}\n\n// DeleteRange removes elements from startIndex (inclusive) to endIndex (exclusive).\n// Returns the number of elements deleted.\n//\n// Example:\n//\n//\tl := list.New()\n//\tl.Append(1, 2, 3, 4, 5)\n//\n//\tdeleted := l.DeleteRange(1, 4)\n//\tprintln(deleted) // Output: 3\n//\tprintln(l.Range(0, l.Len())) // Output: [1 5]\nfunc (l *List) DeleteRange(startIndex, endIndex int) int {\n\tsize := l.tree.Size()\n\n\t// Normalize bounds\n\tif startIndex \u003c 0 {\n\t\tstartIndex = 0\n\t}\n\tif endIndex \u003e size {\n\t\tendIndex = size\n\t}\n\tif startIndex \u003e= endIndex {\n\t\treturn 0\n\t}\n\n\t// Collect keys to delete\n\tkeysToDelete := make([]string, 0, endIndex-startIndex)\n\tl.tree.IterateByOffset(startIndex, endIndex-startIndex, func(key string, _ interface{}) bool {\n\t\tkeysToDelete = append(keysToDelete, key)\n\t\treturn false\n\t})\n\n\t// Delete collected keys\n\tfor _, key := range keysToDelete {\n\t\tl.tree.Remove(key)\n\t}\n\n\treturn len(keysToDelete)\n}\n"},{"name":"list_test.gno","body":"package list\n\nimport (\n\t\"testing\"\n)\n\nfunc TestList_Basic(t *testing.T) {\n\tvar l List\n\n\t// Test empty list\n\tif l.Len() != 0 {\n\t\tt.Errorf(\"new list should be empty, got len %d\", l.Len())\n\t}\n\n\t// Test append and length\n\tl.Append(1, 2, 3)\n\tif l.Len() != 3 {\n\t\tt.Errorf(\"expected len 3, got %d\", l.Len())\n\t}\n\n\t// Test get\n\tif v := l.Get(0); v != 1 {\n\t\tt.Errorf(\"expected 1 at index 0, got %v\", v)\n\t}\n\tif v := l.Get(1); v != 2 {\n\t\tt.Errorf(\"expected 2 at index 1, got %v\", v)\n\t}\n\tif v := l.Get(2); v != 3 {\n\t\tt.Errorf(\"expected 3 at index 2, got %v\", v)\n\t}\n\n\t// Test out of bounds\n\tif v := l.Get(-1); v != nil {\n\t\tt.Errorf(\"expected nil for negative index, got %v\", v)\n\t}\n\tif v := l.Get(3); v != nil {\n\t\tt.Errorf(\"expected nil for out of bounds index, got %v\", v)\n\t}\n}\n\nfunc TestList_Set(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3)\n\n\t// Test valid set within bounds\n\tif ok := l.Set(1, 42); !ok {\n\t\tt.Error(\"Set should return true for valid index\")\n\t}\n\tif v := l.Get(1); v != 42 {\n\t\tt.Errorf(\"expected 42 after Set, got %v\", v)\n\t}\n\n\t// Test set at size (append)\n\tif ok := l.Set(3, 4); !ok {\n\t\tt.Error(\"Set should return true when appending at size\")\n\t}\n\tif v := l.Get(3); v != 4 {\n\t\tt.Errorf(\"expected 4 after Set at size, got %v\", v)\n\t}\n\n\t// Test invalid sets\n\tif ok := l.Set(-1, 10); ok {\n\t\tt.Error(\"Set should return false for negative index\")\n\t}\n\tif ok := l.Set(5, 10); ok {\n\t\tt.Error(\"Set should return false for index \u003e size\")\n\t}\n\n\t// Verify list state hasn't changed after invalid operations\n\texpected := []interface{}{1, 42, 3, 4}\n\tfor i, want := range expected {\n\t\tif got := l.Get(i); got != want {\n\t\t\tt.Errorf(\"index %d = %v; want %v\", i, got, want)\n\t\t}\n\t}\n}\n\nfunc TestList_Delete(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3)\n\n\t// Test valid delete\n\tif v, ok := l.Delete(1); !ok || v != 2 {\n\t\tt.Errorf(\"Delete(1) = %v, %v; want 2, true\", v, ok)\n\t}\n\tif l.Len() != 2 {\n\t\tt.Errorf(\"expected len 2 after delete, got %d\", l.Len())\n\t}\n\tif v := l.Get(1); v != 3 {\n\t\tt.Errorf(\"expected 3 at index 1 after delete, got %v\", v)\n\t}\n\n\t// Test invalid delete\n\tif v, ok := l.Delete(-1); ok || v != nil {\n\t\tt.Errorf(\"Delete(-1) = %v, %v; want nil, false\", v, ok)\n\t}\n\tif v, ok := l.Delete(2); ok || v != nil {\n\t\tt.Errorf(\"Delete(2) = %v, %v; want nil, false\", v, ok)\n\t}\n}\n\nfunc TestList_Slice(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3, 4, 5)\n\n\t// Test valid ranges\n\tvalues := l.Slice(1, 4)\n\texpected := []interface{}{2, 3, 4}\n\tif !sliceEqual(values, expected) {\n\t\tt.Errorf(\"Slice(1,4) = %v; want %v\", values, expected)\n\t}\n\n\t// Test edge cases\n\tif values := l.Slice(-1, 2); !sliceEqual(values, []interface{}{1, 2}) {\n\t\tt.Errorf(\"Slice(-1,2) = %v; want [1 2]\", values)\n\t}\n\tif values := l.Slice(3, 10); !sliceEqual(values, []interface{}{4, 5}) {\n\t\tt.Errorf(\"Slice(3,10) = %v; want [4 5]\", values)\n\t}\n\tif values := l.Slice(3, 2); values != nil {\n\t\tt.Errorf(\"Slice(3,2) = %v; want nil\", values)\n\t}\n}\n\nfunc TestList_ForEach(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3)\n\n\tsum := 0\n\tl.ForEach(func(index int, value interface{}) bool {\n\t\tsum += value.(int)\n\t\treturn false\n\t})\n\n\tif sum != 6 {\n\t\tt.Errorf(\"ForEach sum = %d; want 6\", sum)\n\t}\n\n\t// Test early termination\n\tcount := 0\n\tl.ForEach(func(index int, value interface{}) bool {\n\t\tcount++\n\t\treturn true // stop after first item\n\t})\n\n\tif count != 1 {\n\t\tt.Errorf(\"ForEach early termination count = %d; want 1\", count)\n\t}\n}\n\nfunc TestList_Clone(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3)\n\n\tclone := l.Clone()\n\n\t// Test same length\n\tif clone.Len() != l.Len() {\n\t\tt.Errorf(\"clone.Len() = %d; want %d\", clone.Len(), l.Len())\n\t}\n\n\t// Test same values\n\tfor i := 0; i \u003c l.Len(); i++ {\n\t\tif clone.Get(i) != l.Get(i) {\n\t\t\tt.Errorf(\"clone.Get(%d) = %v; want %v\", i, clone.Get(i), l.Get(i))\n\t\t}\n\t}\n\n\t// Test independence\n\tl.Set(0, 42)\n\tif clone.Get(0) == l.Get(0) {\n\t\tt.Error(\"clone should be independent of original\")\n\t}\n}\n\nfunc TestList_DeleteRange(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3, 4, 5)\n\n\t// Test valid range delete\n\tdeleted := l.DeleteRange(1, 4)\n\tif deleted != 3 {\n\t\tt.Errorf(\"DeleteRange(1,4) deleted %d elements; want 3\", deleted)\n\t}\n\tif l.Len() != 2 {\n\t\tt.Errorf(\"after DeleteRange(1,4) len = %d; want 2\", l.Len())\n\t}\n\texpected := []interface{}{1, 5}\n\tfor i, want := range expected {\n\t\tif got := l.Get(i); got != want {\n\t\t\tt.Errorf(\"after DeleteRange(1,4) index %d = %v; want %v\", i, got, want)\n\t\t}\n\t}\n\n\t// Test edge cases\n\tl = List{}\n\tl.Append(1, 2, 3)\n\n\t// Delete with negative start\n\tif deleted := l.DeleteRange(-1, 2); deleted != 2 {\n\t\tt.Errorf(\"DeleteRange(-1,2) deleted %d elements; want 2\", deleted)\n\t}\n\n\t// Delete with end \u003e length\n\tl = List{}\n\tl.Append(1, 2, 3)\n\tif deleted := l.DeleteRange(1, 5); deleted != 2 {\n\t\tt.Errorf(\"DeleteRange(1,5) deleted %d elements; want 2\", deleted)\n\t}\n\n\t// Delete invalid range\n\tif deleted := l.DeleteRange(2, 1); deleted != 0 {\n\t\tt.Errorf(\"DeleteRange(2,1) deleted %d elements; want 0\", deleted)\n\t}\n\n\t// Delete empty range\n\tif deleted := l.DeleteRange(1, 1); deleted != 0 {\n\t\tt.Errorf(\"DeleteRange(1,1) deleted %d elements; want 0\", deleted)\n\t}\n}\n\nfunc TestList_EmptyOperations(t *testing.T) {\n\tvar l List\n\n\t// Operations on empty list\n\tif v := l.Get(0); v != nil {\n\t\tt.Errorf(\"Get(0) on empty list = %v; want nil\", v)\n\t}\n\n\t// Set should work at index 0 for empty list (append case)\n\tif ok := l.Set(0, 1); !ok {\n\t\tt.Error(\"Set(0,1) on empty list = false; want true\")\n\t}\n\tif v := l.Get(0); v != 1 {\n\t\tt.Errorf(\"Get(0) after Set = %v; want 1\", v)\n\t}\n\n\tl = List{} // Reset to empty list\n\tif v, ok := l.Delete(0); ok || v != nil {\n\t\tt.Errorf(\"Delete(0) on empty list = %v, %v; want nil, false\", v, ok)\n\t}\n\tif values := l.Slice(0, 1); values != nil {\n\t\tt.Errorf(\"Range(0,1) on empty list = %v; want nil\", values)\n\t}\n}\n\nfunc TestList_DifferentTypes(t *testing.T) {\n\tvar l List\n\n\t// Test with different types\n\tl.Append(42, \"hello\", true, 3.14)\n\n\tif v := l.Get(0).(int); v != 42 {\n\t\tt.Errorf(\"Get(0) = %v; want 42\", v)\n\t}\n\tif v := l.Get(1).(string); v != \"hello\" {\n\t\tt.Errorf(\"Get(1) = %v; want 'hello'\", v)\n\t}\n\tif v := l.Get(2).(bool); !v {\n\t\tt.Errorf(\"Get(2) = %v; want true\", v)\n\t}\n\tif v := l.Get(3).(float64); v != 3.14 {\n\t\tt.Errorf(\"Get(3) = %v; want 3.14\", v)\n\t}\n}\n\nfunc TestList_LargeOperations(t *testing.T) {\n\tvar l List\n\n\t// Test with larger number of elements\n\tn := 1000\n\tfor i := 0; i \u003c n; i++ {\n\t\tl.Append(i)\n\t}\n\n\tif l.Len() != n {\n\t\tt.Errorf(\"Len() = %d; want %d\", l.Len(), n)\n\t}\n\n\t// Test range on large list\n\tvalues := l.Slice(n-3, n)\n\texpected := []interface{}{n - 3, n - 2, n - 1}\n\tif !sliceEqual(values, expected) {\n\t\tt.Errorf(\"Range(%d,%d) = %v; want %v\", n-3, n, values, expected)\n\t}\n\n\t// Test large range deletion\n\tdeleted := l.DeleteRange(100, 900)\n\tif deleted != 800 {\n\t\tt.Errorf(\"DeleteRange(100,900) = %d; want 800\", deleted)\n\t}\n\tif l.Len() != 200 {\n\t\tt.Errorf(\"Len() after large delete = %d; want 200\", l.Len())\n\t}\n}\n\nfunc TestList_ChainedOperations(t *testing.T) {\n\tvar l List\n\n\t// Test sequence of operations\n\tl.Append(1, 2, 3)\n\tl.Delete(1)\n\tl.Append(4)\n\tl.Set(1, 5)\n\n\texpected := []interface{}{1, 5, 4}\n\tfor i, want := range expected {\n\t\tif got := l.Get(i); got != want {\n\t\t\tt.Errorf(\"index %d = %v; want %v\", i, got, want)\n\t\t}\n\t}\n}\n\nfunc TestList_RangeEdgeCases(t *testing.T) {\n\tvar l List\n\tl.Append(1, 2, 3, 4, 5)\n\n\t// Test various edge cases for Range\n\tcases := []struct {\n\t\tstart, end int\n\t\twant []interface{}\n\t}{\n\t\t{-10, 2, []interface{}{1, 2}},\n\t\t{3, 10, []interface{}{4, 5}},\n\t\t{0, 0, nil},\n\t\t{5, 5, nil},\n\t\t{4, 3, nil},\n\t\t{-1, -1, nil},\n\t}\n\n\tfor _, tc := range cases {\n\t\tgot := l.Slice(tc.start, tc.end)\n\t\tif !sliceEqual(got, tc.want) {\n\t\t\tt.Errorf(\"Slice(%d,%d) = %v; want %v\", tc.start, tc.end, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestList_IndexConsistency(t *testing.T) {\n\tvar l List\n\n\t// Initial additions\n\tl.Append(1, 2, 3, 4, 5) // [1,2,3,4,5]\n\n\t// Delete from middle\n\tl.Delete(2) // [1,2,4,5]\n\n\t// Add more elements\n\tl.Append(6, 7) // [1,2,4,5,6,7]\n\n\t// Delete range from middle\n\tl.DeleteRange(1, 4) // [1,6,7]\n\n\t// Add more elements\n\tl.Append(8, 9, 10) // [1,6,7,8,9,10]\n\n\t// Verify sequence is continuous\n\texpected := []interface{}{1, 6, 7, 8, 9, 10}\n\tfor i, want := range expected {\n\t\tif got := l.Get(i); got != want {\n\t\t\tt.Errorf(\"index %d = %v; want %v\", i, got, want)\n\t\t}\n\t}\n\n\t// Verify no extra elements exist\n\tif l.Len() != len(expected) {\n\t\tt.Errorf(\"length = %d; want %d\", l.Len(), len(expected))\n\t}\n\n\t// Verify all indices are accessible\n\tallValues := l.Slice(0, l.Len())\n\tif !sliceEqual(allValues, expected) {\n\t\tt.Errorf(\"Slice(0, Len()) = %v; want %v\", allValues, expected)\n\t}\n\n\t// Verify no gaps in iteration\n\tvar iteratedValues []interface{}\n\tvar indices []int\n\tl.ForEach(func(index int, value interface{}) bool {\n\t\titeratedValues = append(iteratedValues, value)\n\t\tindices = append(indices, index)\n\t\treturn false\n\t})\n\n\t// Check values from iteration\n\tif !sliceEqual(iteratedValues, expected) {\n\t\tt.Errorf(\"ForEach values = %v; want %v\", iteratedValues, expected)\n\t}\n\n\t// Check indices are sequential\n\tfor i, idx := range indices {\n\t\tif idx != i {\n\t\t\tt.Errorf(\"ForEach index %d = %d; want %d\", i, idx, i)\n\t\t}\n\t}\n}\n\n// Helper function to compare slices\nfunc sliceEqual(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif a[i] != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NnyF9AtgwlpJVAiY+C2jDfex9DITRQsoIYm3HBFhcfoZLalEzU9aB2i6MDwEyMtlfzWqQZVCzPXN9YxQdtnCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"loci","path":"gno.land/p/n2p5/loci","files":[{"name":"loci.gno","body":"// loci is a single purpose datastore keyed by the caller's address. It has two\n// functions: Set and Get. loci is plural for locus, which is a central or core\n// place where something is found or from which it originates. In this case,\n// it's a simple key-value store where an address (the key) can store exactly\n// one value (in the form of a byte slice). Only the caller can set the value\n// for their address, but anyone can retrieve the value for any address.\npackage loci\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\n// LociStore is a simple key-value store that uses\n// an AVL tree to store the data.\ntype LociStore struct {\n\tinternal *avl.Tree\n}\n\n// New creates a reference to a new LociStore.\nfunc New() *LociStore {\n\treturn \u0026LociStore{\n\t\tinternal: avl.NewTree(),\n\t}\n}\n\n// Set stores a byte slice in the AVL tree using the `std.PrevRealm().Addr()`\n// string as the key.\nfunc (s *LociStore) Set(value []byte) {\n\tkey := string(std.PrevRealm().Addr())\n\ts.internal.Set(key, value)\n}\n\n// Get retrieves a byte slice from the AVL tree using the provided address.\n// The return values are the byte slice value and a boolean indicating\n// whether the value exists.\nfunc (s *LociStore) Get(addr std.Address) []byte {\n\tvalue, exists := s.internal.Get(string(addr))\n\tif !exists {\n\t\treturn nil\n\t}\n\treturn value.([]byte)\n}\n"},{"name":"loci_test.gno","body":"package loci\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestLociStore(t *testing.T) {\n\tt.Parallel()\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u1\")\n\n\tt.Run(\"TestSet\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstore := New()\n\t\tu1 := testutils.TestAddress(\"u1\")\n\n\t\tm1 := []byte(\"hello\")\n\t\tm2 := []byte(\"world\")\n\t\tstd.TestSetOrigCaller(u1)\n\n\t\t// Ensure that the value is nil before setting it.\n\t\tr1 := store.Get(u1)\n\t\tif r1 != nil {\n\t\t\tt.Errorf(\"expected value to be nil, got '%s'\", r1)\n\t\t}\n\t\tstore.Set(m1)\n\t\t// Ensure that the value is correct after setting it.\n\t\tr2 := store.Get(u1)\n\t\tif string(r2) != \"hello\" {\n\t\t\tt.Errorf(\"expected value to be 'hello', got '%s'\", r2)\n\t\t}\n\t\tstore.Set(m2)\n\t\t// Ensure that the value is correct after overwriting it.\n\t\tr3 := store.Get(u1)\n\t\tif string(r3) != \"world\" {\n\t\t\tt.Errorf(\"expected value to be 'world', got '%s'\", r3)\n\t\t}\n\t})\n\tt.Run(\"TestGet\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstore := New()\n\t\tu1 := testutils.TestAddress(\"u1\")\n\t\tu2 := testutils.TestAddress(\"u2\")\n\t\tu3 := testutils.TestAddress(\"u3\")\n\t\tu4 := testutils.TestAddress(\"u4\")\n\n\t\tm1 := []byte(\"hello\")\n\t\tm2 := []byte(\"world\")\n\t\tm3 := []byte(\"goodbye\")\n\n\t\tstd.TestSetOrigCaller(u1)\n\t\tstore.Set(m1)\n\t\tstd.TestSetOrigCaller(u2)\n\t\tstore.Set(m2)\n\t\tstd.TestSetOrigCaller(u3)\n\t\tstore.Set(m3)\n\n\t\t// Ensure that the value is correct after setting it.\n\t\tr0 := store.Get(u4)\n\t\tif r0 != nil {\n\t\t\tt.Errorf(\"expected value to be nil, got '%s'\", r0)\n\t\t}\n\t\t// Ensure that the value is correct after setting it.\n\t\tr1 := store.Get(u1)\n\t\tif string(r1) != \"hello\" {\n\t\t\tt.Errorf(\"expected value to be 'hello', got '%s'\", r1)\n\t\t}\n\t\t// Ensure that the value is correct after setting it.\n\t\tr2 := store.Get(u2)\n\t\tif string(r2) != \"world\" {\n\t\t\tt.Errorf(\"expected value to be 'world', got '%s'\", r2)\n\t\t}\n\t\t// Ensure that the value is correct after setting it.\n\t\tr3 := store.Get(u3)\n\t\tif string(r3) != \"goodbye\" {\n\t\t\tt.Errorf(\"expected value to be 'goodbye', got '%s'\", r3)\n\t\t}\n\t})\n\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SbYlWlDv16yUHVvi5dp7DOeslW9o62SyqNgj5Ww237J2uYMyNKTN3Xf5arn+J2BW/GpcY9ZzrsYunkZVnOPyCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"loci","path":"gno.land/r/n2p5/loci","files":[{"name":"loci.gno","body":"package loci\n\nimport (\n\t\"encoding/base64\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/n2p5/loci\"\n)\n\nvar store *loci.LociStore\n\nfunc init() {\n\tstore = loci.New()\n}\n\n// Set takes a base64 encoded string and stores it in the Loci store.\n// Keyed by the address of the caller. It also emits a \"set\" event with\n// the address of the caller.\nfunc Set(value string) {\n\tb, err := base64.StdEncoding.DecodeString(value)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tstore.Set(b)\n\tstd.Emit(\"SetValue\", \"ForAddr\", string(std.PrevRealm().Addr()))\n}\n\n// Get retrieves the value stored at the provided address and\n// returns it as a base64 encoded string.\nfunc Get(addr std.Address) string {\n\treturn base64.StdEncoding.EncodeToString(store.Get(addr))\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn about\n\t}\n\treturn renderGet(std.Address(path))\n}\n\nfunc renderGet(addr std.Address) string {\n\tvalue := \"```\\n\" + Get(addr) + \"\\n```\"\n\n\treturn ufmt.Sprintf(`\n# Loci Value Viewer\n\n**Address:** %s\n\n%s\n\n`, addr, value)\n}\n\nconst about = `\n# Welcome to Loci\n\nLoci is a simple key-value store keyed by the caller's gno.land address. \nOnly the caller can set the value for their address, but anyone can \nretrieve the value for any address. There are only two functions: Set and Get.\nIf you'd like to set a value, simply base64 encode any message you'd like and\nit will be stored in in Loci. If you'd like to retrieve a value, simply provide \nthe address of the value you'd like to retrieve.\n\nFor convenience, you can also use gnoweb to view the value for a given address,\nif one exists. For instance append :g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t to\nthis URL to view the value stored at that address.\n`\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ApTCPO4vvQGij6gwFROEDkjppcdhF1azoG4uRXqjdOhE11FSmozMxFE7htclqCdB08b+khUa4Yr4lUYr6gIDBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"markdown","path":"gno.land/r/demo/markdown_test","files":[{"name":"markdown.gno","body":"package markdown\n\n// this package can be used to test markdown rendering engines.\n\nfunc Render(path string) string {\n\toutput := `_imported from https://github.com/markedjs/marked/blob/master/docs/demo/quickref.md_\n\nMarkdown Quick Reference\n========================\n\nThis guide is a very brief overview, with examples, of the syntax that [Markdown] supports. It is itself written in Markdown and you can copy the samples over to the left-hand pane for experimentation. It's shown as *text* and not *rendered HTML*.\n\n[Markdown]: http://daringfireball.net/projects/markdown/\n\n\nSimple Text Formatting\n======================\n\nFirst thing is first. You can use *stars* or _underscores_ for italics. **Double stars** and __double underscores__ for bold. ***Three together*** for ___both___.\n\nParagraphs are pretty easy too. Just have a blank line between chunks of text.\n\n\u003e This chunk of text is in a block quote. Its multiple lines will all be\n\u003e indented a bit from the rest of the text.\n\u003e\n\u003e \u003e Multiple levels of block quotes also work.\n\nSometimes you want to include code, such as when you are explaining how ` + \"`\u003ch1\u003e`\" + ` HTML tags work, or maybe you are a programmer and you are discussing ` + \"`someMethod()`\" + `.\n\nIf you want to include code and have new\nlines preserved, indent the line with a tab\nor at least four spaces:\n\n Extra spaces work here too.\n This is also called preformatted text and it is useful for showing examples.\n The text will stay as text, so any *markdown* or \u003cu\u003eHTML\u003c/u\u003e you add will\n not show up formatted. This way you can show markdown examples in a\n markdown document.\n\n\u003e You can also use preformatted text with your blockquotes\n\u003e as long as you add at least five spaces.\n\n\nHeadings\n========\n\nThere are a couple of ways to make headings. Using three or more equals signs on a line under a heading makes it into an \"h1\" style. Three or more hyphens under a line makes it \"h2\" (slightly smaller). You can also use multiple pound symbols (` + \"`#`\" + `) before and after a heading. Pounds after the title are ignored. Here are some examples:\n\nThis is H1\n==========\n\nThis is H2\n----------\n\n# This is H1\n## This is H2\n### This is H3 with some extra pounds ###\n#### You get the idea ####\n##### I don't need extra pounds at the end\n###### H6 is the max\n\n\nLinks\n=====\n\nLet's link to a few sites. First, let's use the bare URL, like \u003chttps://www.github.com\u003e. Great for text, but ugly for HTML.\nNext is an inline link to [Google](https://www.google.com). A little nicer.\nThis is a reference-style link to [Wikipedia] [1].\nLastly, here's a pretty link to [Yahoo]. The reference-style and pretty links both automatically use the links defined below, but they could be defined *anywhere* in the markdown and are removed from the HTML. The names are also case insensitive, so you can use [YaHoO] and have it link properly.\n\n[1]: https://www.wikipedia.org\n[Yahoo]: https://www.yahoo.com\n\nTitle attributes may be added to links by adding text after a link.\nThis is the [inline link](https://www.bing.com \"Bing\") with a \"Bing\" title.\nYou can also go to [W3C] [2] and maybe visit a [friend].\n\n[2]: https://w3c.org (The W3C puts out specs for web-based things)\n[Friend]: https://facebook.com \"Facebook!\"\n\nEmail addresses in plain text are not linked: test@example.com.\nEmail addresses wrapped in angle brackets are linked: \u003ctest@example.com\u003e.\nThey are also obfuscated so that email harvesting spam robots hopefully won't get them.\n\n\nLists\n=====\n\n* This is a bulleted list\n* Great for shopping lists\n- You can also use hyphens\n+ Or plus symbols\n\nThe above is an \"unordered\" list. Now, on for a bit of order.\n\n1. Numbered lists are also easy\n2. Just start with a number\n3738762. However, the actual number doesn't matter when converted to HTML.\n1. This will still show up as 4.\n\nYou might want a few advanced lists:\n\n- This top-level list is wrapped in paragraph tags\n- This generates an extra space between each top-level item.\n\n- You do it by adding a blank line\n\n- This nested list also has blank lines between the list items.\n\n- How to create nested lists\n 1. Start your regular list\n 2. Indent nested lists with two spaces\n 3. Further nesting means you should indent with two more spaces\n * This line is indented with four spaces.\n\n- List items can be quite lengthy. You can keep typing and either continue\nthem on the next line with no indentation.\n\n- Alternately, if that looks ugly, you can also\n indent the next line a bit for a prettier look.\n\n- You can put large blocks of text in your list by just indenting with two spaces.\n\n This is formatted the same as code, but you can inspect the HTML\n and find that it's just wrapped in a ` + \"`\u003cp\u003e`\" + ` tag and *won't* be shown\n as preformatted text.\n\n You can keep adding more and more paragraphs to a single\n list item by adding the traditional blank line and then keep\n on indenting the paragraphs with two spaces.\n\n You really only need to indent the first line,\nbut that looks ugly.\n\n- Lists support blockquotes\n\n \u003e Just like this example here. By the way, you can\n \u003e nest lists inside blockquotes!\n \u003e - Fantastic!\n\n- Lists support preformatted text\n\n You just need to indent an additional four spaces.\n\n\nEven More\n=========\n\nHorizontal Rule\n---------------\n\nIf you need a horizontal rule you just need to put at least three hyphens, asterisks, or underscores on a line by themselves. You can also even put spaces between the characters.\n\n---\n****************************\n_ _ _ _ _ _ _\n\nThose three all produced horizontal lines. Keep in mind that three hyphens under any text turns that text into a heading, so add a blank like if you use hyphens.\n\nImages\n------\n\nImages work exactly like links, but they have exclamation points in front. They work with references and titles too.\n\n![Google Logo](https://www.google.com/images/errors/logo_sm.gif) and ![Happy].\n\n[Happy]: https://wpclipart.com/smiley/happy/simple_colors/smiley_face_simple_green_small.png (\"Smiley face\")\n\n\nInline HTML\n-----------\n\nIf markdown is too limiting, you can just insert your own \u003cstrike\u003ecrazy\u003c/strike\u003e HTML. Span-level HTML \u003cu\u003ecan *still* use markdown\u003c/u\u003e. Block level elements must be separated from text by a blank line and must not have any spaces before the opening and closing HTML.\n\n\u003cdiv style='font-family: \"Comic Sans MS\", \"Comic Sans\", cursive;'\u003e\nIt is a pity, but markdown does **not** work in here for most markdown parsers.\n[Marked] handles it pretty well.\n\u003c/div\u003e`\n\treturn output\n}\n"},{"name":"markdown_test.gno","body":"package markdown\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestRender(t *testing.T) {\n\toutput := Render(\"\")\n\tif !strings.Contains(output, \"\\nMarkdown Quick Reference\\n\") {\n\t\tt.Errorf(\"invalid output\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rY0LcR5qVze4uAaudA3O8ZlceOyTLUSoCfoTNSfLYOzPIMY1t+7saXAaCkelw1cvnm0b/65FvcMsQMmkiwEjAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"md","path":"gno.land/p/moul/md","files":[{"name":"md.gno","body":"// Package md provides helper functions for generating Markdown content programmatically.\n//\n// It includes utilities for text formatting, creating lists, blockquotes, code blocks,\n// links, images, and more.\n//\n// Highlights:\n// - Supports basic Markdown syntax such as bold, italic, strikethrough, headers, and lists.\n// - Manages multiline support in lists (e.g., bullet, ordered, and todo lists).\n// - Includes advanced helpers like inline images with links and nested list prefixes.\npackage md\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Bold returns bold text for markdown.\n// Example: Bold(\"foo\") =\u003e \"**foo**\"\nfunc Bold(text string) string {\n\treturn \"**\" + text + \"**\"\n}\n\n// Italic returns italicized text for markdown.\n// Example: Italic(\"foo\") =\u003e \"*foo*\"\nfunc Italic(text string) string {\n\treturn \"*\" + text + \"*\"\n}\n\n// Strikethrough returns strikethrough text for markdown.\n// Example: Strikethrough(\"foo\") =\u003e \"~~foo~~\"\nfunc Strikethrough(text string) string {\n\treturn \"~~\" + text + \"~~\"\n}\n\n// H1 returns a level 1 header for markdown.\n// Example: H1(\"foo\") =\u003e \"# foo\\n\"\nfunc H1(text string) string {\n\treturn \"# \" + text + \"\\n\"\n}\n\n// H2 returns a level 2 header for markdown.\n// Example: H2(\"foo\") =\u003e \"## foo\\n\"\nfunc H2(text string) string {\n\treturn \"## \" + text + \"\\n\"\n}\n\n// H3 returns a level 3 header for markdown.\n// Example: H3(\"foo\") =\u003e \"### foo\\n\"\nfunc H3(text string) string {\n\treturn \"### \" + text + \"\\n\"\n}\n\n// H4 returns a level 4 header for markdown.\n// Example: H4(\"foo\") =\u003e \"#### foo\\n\"\nfunc H4(text string) string {\n\treturn \"#### \" + text + \"\\n\"\n}\n\n// H5 returns a level 5 header for markdown.\n// Example: H5(\"foo\") =\u003e \"##### foo\\n\"\nfunc H5(text string) string {\n\treturn \"##### \" + text + \"\\n\"\n}\n\n// H6 returns a level 6 header for markdown.\n// Example: H6(\"foo\") =\u003e \"###### foo\\n\"\nfunc H6(text string) string {\n\treturn \"###### \" + text + \"\\n\"\n}\n\n// BulletList returns a bullet list for markdown.\n// Example: BulletList([]string{\"foo\", \"bar\"}) =\u003e \"- foo\\n- bar\\n\"\nfunc BulletList(items []string) string {\n\tvar sb strings.Builder\n\tfor _, item := range items {\n\t\tsb.WriteString(BulletItem(item))\n\t}\n\treturn sb.String()\n}\n\n// BulletItem returns a bullet item for markdown.\n// Example: BulletItem(\"foo\") =\u003e \"- foo\\n\"\nfunc BulletItem(item string) string {\n\tvar sb strings.Builder\n\tlines := strings.Split(item, \"\\n\")\n\tsb.WriteString(\"- \" + lines[0] + \"\\n\")\n\tfor _, line := range lines[1:] {\n\t\tsb.WriteString(\" \" + line + \"\\n\")\n\t}\n\treturn sb.String()\n}\n\n// OrderedList returns an ordered list for markdown.\n// Example: OrderedList([]string{\"foo\", \"bar\"}) =\u003e \"1. foo\\n2. bar\\n\"\nfunc OrderedList(items []string) string {\n\tvar sb strings.Builder\n\tfor i, item := range items {\n\t\tlines := strings.Split(item, \"\\n\")\n\t\tsb.WriteString(strconv.Itoa(i+1) + \". \" + lines[0] + \"\\n\")\n\t\tfor _, line := range lines[1:] {\n\t\t\tsb.WriteString(\" \" + line + \"\\n\")\n\t\t}\n\t}\n\treturn sb.String()\n}\n\n// TodoList returns a list of todo items with checkboxes for markdown.\n// Example: TodoList([]string{\"foo\", \"bar\\nmore bar\"}, []bool{true, false}) =\u003e \"- [x] foo\\n- [ ] bar\\n more bar\\n\"\nfunc TodoList(items []string, done []bool) string {\n\tvar sb strings.Builder\n\tfor i, item := range items {\n\t\tsb.WriteString(TodoItem(item, done[i]))\n\t}\n\treturn sb.String()\n}\n\n// TodoItem returns a todo item with checkbox for markdown.\n// Example: TodoItem(\"foo\", true) =\u003e \"- [x] foo\\n\"\nfunc TodoItem(item string, done bool) string {\n\tvar sb strings.Builder\n\tcheckbox := \" \"\n\tif done {\n\t\tcheckbox = \"x\"\n\t}\n\tlines := strings.Split(item, \"\\n\")\n\tsb.WriteString(\"- [\" + checkbox + \"] \" + lines[0] + \"\\n\")\n\tfor _, line := range lines[1:] {\n\t\tsb.WriteString(\" \" + line + \"\\n\")\n\t}\n\treturn sb.String()\n}\n\n// Nested prefixes each line with a given prefix, enabling nested lists.\n// Example: Nested(\"- foo\\n- bar\", \" \") =\u003e \" - foo\\n - bar\\n\"\nfunc Nested(content, prefix string) string {\n\tlines := strings.Split(content, \"\\n\")\n\tfor i := range lines {\n\t\tif strings.TrimSpace(lines[i]) != \"\" {\n\t\t\tlines[i] = prefix + lines[i]\n\t\t}\n\t}\n\treturn strings.Join(lines, \"\\n\")\n}\n\n// Blockquote returns a blockquote for markdown.\n// Example: Blockquote(\"foo\\nbar\") =\u003e \"\u003e foo\\n\u003e bar\\n\"\nfunc Blockquote(text string) string {\n\tlines := strings.Split(text, \"\\n\")\n\tvar sb strings.Builder\n\tfor _, line := range lines {\n\t\tsb.WriteString(\"\u003e \" + line + \"\\n\")\n\t}\n\treturn sb.String()\n}\n\n// InlineCode returns inline code for markdown.\n// Example: InlineCode(\"foo\") =\u003e \"`foo`\"\nfunc InlineCode(code string) string {\n\treturn \"`\" + strings.ReplaceAll(code, \"`\", \"\\\\`\") + \"`\"\n}\n\n// CodeBlock creates a markdown code block.\n// Example: CodeBlock(\"foo\") =\u003e \"```\\nfoo\\n```\"\nfunc CodeBlock(content string) string {\n\treturn \"```\\n\" + strings.ReplaceAll(content, \"```\", \"\\\\```\") + \"\\n```\"\n}\n\n// LanguageCodeBlock creates a markdown code block with language-specific syntax highlighting.\n// Example: LanguageCodeBlock(\"go\", \"foo\") =\u003e \"```go\\nfoo\\n```\"\nfunc LanguageCodeBlock(language, content string) string {\n\treturn \"```\" + language + \"\\n\" + strings.ReplaceAll(content, \"```\", \"\\\\```\") + \"\\n```\"\n}\n\n// HorizontalRule returns a horizontal rule for markdown.\n// Example: HorizontalRule() =\u003e \"---\\n\"\nfunc HorizontalRule() string {\n\treturn \"---\\n\"\n}\n\n// Link returns a hyperlink for markdown.\n// Example: Link(\"foo\", \"http://example.com\") =\u003e \"[foo](http://example.com)\"\nfunc Link(text, url string) string {\n\treturn \"[\" + EscapeText(text) + \"](\" + url + \")\"\n}\n\n// InlineImageWithLink creates an inline image wrapped in a hyperlink for markdown.\n// Example: InlineImageWithLink(\"alt text\", \"image-url\", \"link-url\") =\u003e \"[![alt text](image-url)](link-url)\"\nfunc InlineImageWithLink(altText, imageUrl, linkUrl string) string {\n\treturn \"[\" + Image(altText, imageUrl) + \"](\" + linkUrl + \")\"\n}\n\n// Image returns an image for markdown.\n// Example: Image(\"foo\", \"http://example.com\") =\u003e \"![foo](http://example.com)\"\nfunc Image(altText, url string) string {\n\treturn \"![\" + EscapeText(altText) + \"](\" + url + \")\"\n}\n\n// Footnote returns a footnote for markdown.\n// Example: Footnote(\"foo\", \"bar\") =\u003e \"[foo]: bar\"\nfunc Footnote(reference, text string) string {\n\treturn \"[\" + EscapeText(reference) + \"]: \" + text\n}\n\n// Paragraph wraps the given text in a Markdown paragraph.\n// Example: Paragraph(\"foo\") =\u003e \"foo\\n\"\nfunc Paragraph(content string) string {\n\treturn content + \"\\n\\n\"\n}\n\n// CollapsibleSection creates a collapsible section for markdown using\n// HTML \u003cdetails\u003e and \u003csummary\u003e tags.\n// Example:\n// CollapsibleSection(\"Click to expand\", \"Hidden content\")\n// =\u003e\n// \u003cdetails\u003e\u003csummary\u003eClick to expand\u003c/summary\u003e\n//\n// Hidden content\n// \u003c/details\u003e\nfunc CollapsibleSection(title, content string) string {\n\treturn \"\u003cdetails\u003e\u003csummary\u003e\" + EscapeText(title) + \"\u003c/summary\u003e\\n\\n\" + content + \"\\n\u003c/details\u003e\\n\"\n}\n\n// EscapeText escapes special Markdown characters in regular text where needed.\nfunc EscapeText(text string) string {\n\treplacer := strings.NewReplacer(\n\t\t`*`, `\\*`,\n\t\t`_`, `\\_`,\n\t\t`[`, `\\[`,\n\t\t`]`, `\\]`,\n\t\t`(`, `\\(`,\n\t\t`)`, `\\)`,\n\t\t`~`, `\\~`,\n\t\t`\u003e`, `\\\u003e`,\n\t\t`|`, `\\|`,\n\t\t`-`, `\\-`,\n\t\t`+`, `\\+`,\n\t\t\".\", `\\.`,\n\t\t\"!\", `\\!`,\n\t\t\"`\", \"\\\\`\",\n\t)\n\treturn replacer.Replace(text)\n}\n"},{"name":"md_test.gno","body":"package md\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/moul/md\"\n)\n\nfunc TestHelpers(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tfunction func() string\n\t\texpected string\n\t}{\n\t\t{\"Bold\", func() string { return md.Bold(\"foo\") }, \"**foo**\"},\n\t\t{\"Italic\", func() string { return md.Italic(\"foo\") }, \"*foo*\"},\n\t\t{\"Strikethrough\", func() string { return md.Strikethrough(\"foo\") }, \"~~foo~~\"},\n\t\t{\"H1\", func() string { return md.H1(\"foo\") }, \"# foo\\n\"},\n\t\t{\"HorizontalRule\", md.HorizontalRule, \"---\\n\"},\n\t\t{\"InlineCode\", func() string { return md.InlineCode(\"foo\") }, \"`foo`\"},\n\t\t{\"CodeBlock\", func() string { return md.CodeBlock(\"foo\") }, \"```\\nfoo\\n```\"},\n\t\t{\"LanguageCodeBlock\", func() string { return md.LanguageCodeBlock(\"go\", \"foo\") }, \"```go\\nfoo\\n```\"},\n\t\t{\"Link\", func() string { return md.Link(\"foo\", \"http://example.com\") }, \"[foo](http://example.com)\"},\n\t\t{\"Image\", func() string { return md.Image(\"foo\", \"http://example.com\") }, \"![foo](http://example.com)\"},\n\t\t{\"InlineImageWithLink\", func() string { return md.InlineImageWithLink(\"alt\", \"image-url\", \"link-url\") }, \"[![alt](image-url)](link-url)\"},\n\t\t{\"Footnote\", func() string { return md.Footnote(\"foo\", \"bar\") }, \"[foo]: bar\"},\n\t\t{\"Paragraph\", func() string { return md.Paragraph(\"foo\") }, \"foo\\n\\n\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := tt.function()\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"%s() = %q, want %q\", tt.name, result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLists(t *testing.T) {\n\tt.Run(\"BulletList\", func(t *testing.T) {\n\t\titems := []string{\"foo\", \"bar\"}\n\t\texpected := \"- foo\\n- bar\\n\"\n\t\tresult := md.BulletList(items)\n\t\tif result != expected {\n\t\t\tt.Errorf(\"BulletList(%q) = %q, want %q\", items, result, expected)\n\t\t}\n\t})\n\n\tt.Run(\"OrderedList\", func(t *testing.T) {\n\t\titems := []string{\"foo\", \"bar\"}\n\t\texpected := \"1. foo\\n2. bar\\n\"\n\t\tresult := md.OrderedList(items)\n\t\tif result != expected {\n\t\t\tt.Errorf(\"OrderedList(%q) = %q, want %q\", items, result, expected)\n\t\t}\n\t})\n\n\tt.Run(\"TodoList\", func(t *testing.T) {\n\t\titems := []string{\"foo\", \"bar\\nmore bar\"}\n\t\tdone := []bool{true, false}\n\t\texpected := \"- [x] foo\\n- [ ] bar\\n more bar\\n\"\n\t\tresult := md.TodoList(items, done)\n\t\tif result != expected {\n\t\t\tt.Errorf(\"TodoList(%q, %q) = %q, want %q\", items, done, result, expected)\n\t\t}\n\t})\n}\n\nfunc TestNested(t *testing.T) {\n\tt.Run(\"Nested Single Level\", func(t *testing.T) {\n\t\tcontent := \"- foo\\n- bar\"\n\t\texpected := \" - foo\\n - bar\"\n\t\tresult := md.Nested(content, \" \")\n\t\tif result != expected {\n\t\t\tt.Errorf(\"Nested(%q) = %q, want %q\", content, result, expected)\n\t\t}\n\t})\n\n\tt.Run(\"Nested Double Level\", func(t *testing.T) {\n\t\tcontent := \" - foo\\n - bar\"\n\t\texpected := \" - foo\\n - bar\"\n\t\tresult := md.Nested(content, \" \")\n\t\tif result != expected {\n\t\t\tt.Errorf(\"Nested(%q) = %q, want %q\", content, result, expected)\n\t\t}\n\t})\n}\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport \"gno.land/p/moul/md\"\n\nfunc main() {\n\tprintln(md.H1(\"Header 1\"))\n\tprintln(md.H2(\"Header 2\"))\n\tprintln(md.H3(\"Header 3\"))\n\tprintln(md.H4(\"Header 4\"))\n\tprintln(md.H5(\"Header 5\"))\n\tprintln(md.H6(\"Header 6\"))\n\tprintln(md.Bold(\"bold\"))\n\tprintln(md.Italic(\"italic\"))\n\tprintln(md.Strikethrough(\"strikethrough\"))\n\tprintln(md.BulletList([]string{\n\t\t\"Item 1\",\n\t\t\"Item 2\\nMore details for item 2\",\n\t}))\n\tprintln(md.OrderedList([]string{\"Step 1\", \"Step 2\"}))\n\tprintln(md.TodoList([]string{\"Task 1\", \"Task 2\\nSubtask 2\"}, []bool{true, false}))\n\tprintln(md.Nested(md.BulletList([]string{\"Parent Item\", md.OrderedList([]string{\"Child 1\", \"Child 2\"})}), \" \"))\n\tprintln(md.Blockquote(\"This is a blockquote\\nSpanning multiple lines\"))\n\tprintln(md.InlineCode(\"inline `code`\"))\n\tprintln(md.CodeBlock(\"line1\\nline2\"))\n\tprintln(md.LanguageCodeBlock(\"go\", \"func main() {\\nprintln(\\\"Hello, world!\\\")\\n}\"))\n\tprintln(md.HorizontalRule())\n\tprintln(md.Link(\"Gno\", \"http://gno.land\"))\n\tprintln(md.Image(\"Alt Text\", \"http://example.com/image.png\"))\n\tprintln(md.InlineImageWithLink(\"Alt Text\", \"http://example.com/image.png\", \"http://example.com\"))\n\tprintln(md.Footnote(\"ref\", \"This is a footnote\"))\n\tprintln(md.Paragraph(\"This is a paragraph.\"))\n}\n\n// Output:\n// # Header 1\n//\n// ## Header 2\n//\n// ### Header 3\n//\n// #### Header 4\n//\n// ##### Header 5\n//\n// ###### Header 6\n//\n// **bold**\n// *italic*\n// ~~strikethrough~~\n// - Item 1\n// - Item 2\n// More details for item 2\n//\n// 1. Step 1\n// 2. Step 2\n//\n// - [x] Task 1\n// - [ ] Task 2\n// Subtask 2\n//\n// - Parent Item\n// - 1. Child 1\n// 2. Child 2\n//\n//\n// \u003e This is a blockquote\n// \u003e Spanning multiple lines\n//\n// `inline \\`code\\``\n// ```\n// line1\n// line2\n// ```\n// ```go\n// func main() {\n// println(\"Hello, world!\")\n// }\n// ```\n// ---\n//\n// [Gno](http://gno.land)\n// ![Alt Text](http://example.com/image.png)\n// [![Alt Text](http://example.com/image.png)](http://example.com)\n// [ref]: This is a footnote\n// This is a paragraph.\n//\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MfWMfat97d2s0aLVoX5py2ehGh75v+Nh1e9u9fCSgEU6qo4vEBmwL4uElxDOHcTvpa5FINKByO1R28lplW7WAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"mdtable","path":"gno.land/p/moul/mdtable","files":[{"name":"mdtable.gno","body":"// Package mdtable provides a simple way to create Markdown tables.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/mdtable\"\n//\n//\tfunc Render(path string) string {\n//\t table := mdtable.Table{\n//\t Headers: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n//\t }\n//\t table.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n//\t table.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n//\t return table.String()\n//\t}\n//\n// Output:\n//\n//\t| ID | Title | Status | Date |\n//\t| --- | --- | --- | --- |\n//\t| #1 | Add a new validator | succeed | 2024-01-01 |\n//\t| #2 | Change parameter | timed out | 2024-01-02 |\npackage mdtable\n\nimport (\n\t\"strings\"\n)\n\ntype Table struct {\n\tHeaders []string\n\tRows [][]string\n\t// XXX: optional headers alignment.\n}\n\nfunc (t *Table) Append(row []string) {\n\tt.Rows = append(t.Rows, row)\n}\n\nfunc (t Table) String() string {\n\t// XXX: switch to using text/tabwriter when porting to Gno to support\n\t// better-formatted raw Markdown output.\n\n\tif len(t.Headers) == 0 \u0026\u0026 len(t.Rows) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar sb strings.Builder\n\n\tif len(t.Headers) == 0 {\n\t\tt.Headers = make([]string, len(t.Rows[0]))\n\t}\n\n\t// Print header.\n\tsb.WriteString(\"| \" + strings.Join(t.Headers, \" | \") + \" |\\n\")\n\tsb.WriteString(\"|\" + strings.Repeat(\" --- |\", len(t.Headers)) + \"\\n\")\n\n\t// Print rows.\n\tfor _, row := range t.Rows {\n\t\tescapedRow := make([]string, len(row))\n\t\tfor i, cell := range row {\n\t\t\tescapedRow[i] = strings.ReplaceAll(cell, \"|\", \"\u0026#124;\") // Escape pipe characters.\n\t\t}\n\t\tsb.WriteString(\"| \" + strings.Join(escapedRow, \" | \") + \" |\\n\")\n\t}\n\n\treturn sb.String()\n}\n"},{"name":"mdtable_test.gno","body":"package mdtable_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/mdtable\"\n)\n\n// XXX: switch to `func Example() {}` when supported.\nfunc TestExample(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\"},\n\t\tRows: [][]string{\n\t\t\t{\"#1\", \"Add a new validator\", \"succeed\"},\n\t\t\t{\"#2\", \"Change parameter\", \"timed out\"},\n\t\t\t{\"#3\", \"Fill pool\", \"active\"},\n\t\t},\n\t}\n\n\tgot := table.String()\n\texpected := `| ID | Title | Status |\n| --- | --- | --- |\n| #1 | Add a new validator | succeed |\n| #2 | Change parameter | timed out |\n| #3 | Fill pool | active |\n`\n\n\turequire.Equal(t, got, expected)\n}\n\nfunc TestTableString(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\ttable mdtable.Table\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"With Headers and Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Headers\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| | | | |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"Without Rows\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Pipe Character in Content\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new | validator\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new \u0026#124; validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With Varying Row Sizes\", // XXX: should we have a different behavior?\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Add a new validator\"},\n\t\t\t\t\t{\"#2\", \"Change parameter\", \"Extra Column\"},\n\t\t\t\t\t{\"#3\", \"Fill pool\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title |\n| --- | --- |\n| #1 | Add a new validator |\n| #2 | Change parameter | Extra Column |\n| #3 | Fill pool |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With UTF-8 Characters\",\n\t\t\ttable: mdtable.Table{\n\t\t\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t\t\t\tRows: [][]string{\n\t\t\t\t\t{\"#1\", \"Café\", \"succeed\", \"2024-01-01\"},\n\t\t\t\t\t{\"#2\", \"München\", \"timed out\", \"2024-01-02\"},\n\t\t\t\t\t{\"#3\", \"São Paulo\", \"active\", \"2024-01-03\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Café | succeed | 2024-01-01 |\n| #2 | München | timed out | 2024-01-02 |\n| #3 | São Paulo | active | 2024-01-03 |\n`,\n\t\t},\n\t\t{\n\t\t\tname: \"With no Headers and no Rows\",\n\t\t\ttable: mdtable.Table{},\n\t\t\texpected: ``,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := tt.table.String()\n\t\t\turequire.Equal(t, got, tt.expected)\n\t\t})\n\t}\n}\n\nfunc TestTableAppend(t *testing.T) {\n\ttable := mdtable.Table{\n\t\tHeaders: []string{\"ID\", \"Title\", \"Status\", \"Date\"},\n\t}\n\n\t// Use the Append method to add rows to the table\n\ttable.Append([]string{\"#1\", \"Add a new validator\", \"succeed\", \"2024-01-01\"})\n\ttable.Append([]string{\"#2\", \"Change parameter\", \"timed out\", \"2024-01-02\"})\n\ttable.Append([]string{\"#3\", \"Fill pool\", \"active\", \"2024-01-03\"})\n\tgot := table.String()\n\n\texpected := `| ID | Title | Status | Date |\n| --- | --- | --- | --- |\n| #1 | Add a new validator | succeed | 2024-01-01 |\n| #2 | Change parameter | timed out | 2024-01-02 |\n| #3 | Fill pool | active | 2024-01-03 |\n`\n\turequire.Equal(t, got, expected)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e1EUTDc9sZmQcmbXrNu4+hMKcvkY5iidiUoyqV8/fjdlrcYMCq4SQ6wv+cTr5Cq6WNYMddPmn9DwNf/1IJBBDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"membstore","path":"gno.land/p/demo/membstore","files":[{"name":"members.gno","body":"package membstore\n\nimport (\n\t\"std\"\n)\n\n// MemberStore defines the member storage abstraction\ntype MemberStore interface {\n\t// Members returns all members in the store\n\tMembers(offset, count uint64) []Member\n\n\t// Size returns the current size of the store\n\tSize() int\n\n\t// IsMember returns a flag indicating if the given address\n\t// belongs to a member\n\tIsMember(address std.Address) bool\n\n\t// TotalPower returns the total voting power of the member store\n\tTotalPower() uint64\n\n\t// Member returns the requested member\n\tMember(address std.Address) (Member, error)\n\n\t// AddMember adds a member to the store\n\tAddMember(member Member) error\n\n\t// UpdateMember updates the member in the store.\n\t// If updating a member's voting power to 0,\n\t// the member will be removed\n\tUpdateMember(address std.Address, member Member) error\n}\n\n// Member holds the relevant member information\ntype Member struct {\n\tAddress std.Address // bech32 gno address of the member (unique)\n\tVotingPower uint64 // the voting power of the member\n}\n"},{"name":"membstore.gno","body":"package membstore\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrAlreadyMember = errors.New(\"address is already a member\")\n\tErrMissingMember = errors.New(\"address is not a member\")\n\tErrInvalidAddressUpdate = errors.New(\"invalid address update\")\n\tErrNotGovDAO = errors.New(\"caller not correct govdao instance\")\n)\n\n// maxRequestMembers is the maximum number of\n// paginated members that can be requested\nconst maxRequestMembers = 50\n\ntype Option func(*MembStore)\n\n// WithInitialMembers initializes the member store\n// with an initial member list\nfunc WithInitialMembers(members []Member) Option {\n\treturn func(store *MembStore) {\n\t\tfor _, m := range members {\n\t\t\tmemberAddr := m.Address.String()\n\n\t\t\t// Check if the member already exists\n\t\t\tif store.members.Has(memberAddr) {\n\t\t\t\tpanic(ufmt.Errorf(\"%s, %s\", memberAddr, ErrAlreadyMember))\n\t\t\t}\n\n\t\t\tstore.members.Set(memberAddr, m)\n\t\t\tstore.totalVotingPower += m.VotingPower\n\t\t}\n\t}\n}\n\n// WithDAOPkgPath initializes the member store\n// with a dao package path guard\nfunc WithDAOPkgPath(daoPkgPath string) Option {\n\treturn func(store *MembStore) {\n\t\tstore.daoPkgPath = daoPkgPath\n\t}\n}\n\n// MembStore implements the dao.MembStore abstraction\ntype MembStore struct {\n\tdaoPkgPath string // active dao pkg path, if any\n\tmembers *avl.Tree // std.Address -\u003e Member\n\ttotalVotingPower uint64 // cached value for quick lookups\n}\n\n// NewMembStore creates a new member store\nfunc NewMembStore(opts ...Option) *MembStore {\n\tm := \u0026MembStore{\n\t\tmembers: avl.NewTree(), // empty set\n\t\tdaoPkgPath: \"\", // no dao guard\n\t\ttotalVotingPower: 0,\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(m)\n\t}\n\n\treturn m\n}\n\n// AddMember adds member to the member store `m`.\n// It fails if the caller is not GovDAO or\n// if the member is already present\nfunc (m *MembStore) AddMember(member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Check if the member exists\n\tif m.IsMember(member.Address) {\n\t\treturn ErrAlreadyMember\n\t}\n\n\t// Add the member\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tm.totalVotingPower += member.VotingPower\n\n\treturn nil\n}\n\n// UpdateMember updates the member with the given address.\n// Updating fails if the caller is not GovDAO.\nfunc (m *MembStore) UpdateMember(address std.Address, member Member) error {\n\tif !m.isCallerDAORealm() {\n\t\treturn ErrNotGovDAO\n\t}\n\n\t// Get the member\n\toldMember, err := m.Member(address)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check if this is a removal request\n\tif member.VotingPower == 0 {\n\t\tm.members.Remove(address.String())\n\n\t\t// Update the total voting power\n\t\tm.totalVotingPower -= oldMember.VotingPower\n\n\t\treturn nil\n\t}\n\n\t// Check that the member wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != member.Address\n\tif isAddressUpdate \u0026\u0026 m.IsMember(member.Address) {\n\t\treturn ErrInvalidAddressUpdate\n\t}\n\n\t// Remove the old member info\n\t// in case the address changed\n\tif address != member.Address {\n\t\tm.members.Remove(address.String())\n\t}\n\n\t// Save the new member info\n\tm.members.Set(member.Address.String(), member)\n\n\t// Update the total voting power\n\tdifference := member.VotingPower - oldMember.VotingPower\n\tm.totalVotingPower += difference\n\n\treturn nil\n}\n\n// IsMember returns a flag indicating if the given\n// address belongs to a member of the member store\nfunc (m *MembStore) IsMember(address std.Address) bool {\n\t_, exists := m.members.Get(address.String())\n\n\treturn exists\n}\n\n// Member returns the member associated with the given address\nfunc (m *MembStore) Member(address std.Address) (Member, error) {\n\tmember, exists := m.members.Get(address.String())\n\tif !exists {\n\t\treturn Member{}, ErrMissingMember\n\t}\n\n\treturn member.(Member), nil\n}\n\n// Members returns a paginated list of members from\n// the member store. If the store is empty, an empty slice\n// is returned instead\nfunc (m *MembStore) Members(offset, count uint64) []Member {\n\t// Calculate the left and right bounds\n\tif count \u003c 1 || offset \u003e= uint64(m.members.Size()) {\n\t\treturn []Member{}\n\t}\n\n\t// Limit the maximum number of returned members\n\tif count \u003e maxRequestMembers {\n\t\tcount = maxRequestMembers\n\t}\n\n\t// Gather the members\n\tmembers := make([]Member, 0)\n\tm.members.IterateByOffset(\n\t\tint(offset),\n\t\tint(count),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tmember := val.(Member)\n\n\t\t\t// Save the member\n\t\t\tmembers = append(members, member)\n\n\t\t\treturn false\n\t\t})\n\n\treturn members\n}\n\n// Size returns the number of active members in the member store\nfunc (m *MembStore) Size() int {\n\treturn m.members.Size()\n}\n\n// TotalPower returns the total voting power\n// of the member store\nfunc (m *MembStore) TotalPower() uint64 {\n\treturn m.totalVotingPower\n}\n\n// isCallerDAORealm returns a flag indicating if the\n// current caller context is the active DAO Realm.\n// We need to include a dao guard, even if the\n// executor guarantees it, because\n// the API of the member store is public and callable\n// by anyone who has a reference to the member store instance.\nfunc (m *MembStore) isCallerDAORealm() bool {\n\treturn m.daoPkgPath != \"\" \u0026\u0026 std.CurrentRealm().PkgPath() == m.daoPkgPath\n}\n"},{"name":"membstore_test.gno","body":"package membstore\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []Member {\n\tt.Helper()\n\n\tmembers := make([]Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestMembStore_GetMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"member not found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\t_, err := m.Member(testutils.TestAddress(\"random\"))\n\t\tuassert.ErrorIs(t, err, ErrMissingMember)\n\t})\n\n\tt.Run(\"valid member fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\t_, err := m.Member(members[0].Address)\n\t\tuassert.NoError(t, err)\n\t})\n}\n\nfunc TestMembStore_GetMembers(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no members\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tmembers := m.Members(0, 10)\n\t\tuassert.Equal(t, 0, len(members))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumMembers = maxRequestMembers * 2\n\t\t\thalfRange = numMembers / 2\n\n\t\t\tmembers = generateMembers(t, numMembers)\n\t\t\tm = NewMembStore(WithInitialMembers(members))\n\n\t\t\tverifyMembersPresent = func(members, fetchedMembers []Member) {\n\t\t\t\tfor _, fetchedMember := range fetchedMembers {\n\t\t\t\t\tfor _, member := range members {\n\t\t\t\t\t\tif member.Address != fetchedMember.Address {\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuassert.Equal(t, member.VotingPower, fetchedMember.VotingPower)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\turequire.Equal(t, numMembers, m.Size())\n\n\t\tfetchedMembers := m.Members(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\n\t\t// Fetch the other half\n\t\tfetchedMembers = m.Members(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedMembers))\n\n\t\t// Verify the members\n\t\tverifyMembersPresent(members, fetchedMembers)\n\t})\n}\n\nfunc TestMembStore_IsMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.False(t, m.IsMember(testutils.TestAddress(\"random\")))\n\t})\n\n\tt.Run(\"existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tfor _, member := range members {\n\t\t\tuassert.True(t, m.IsMember(member.Address))\n\t\t}\n\t})\n}\n\nfunc TestMembStore_AddMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to add a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.AddMember(member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"member already exists\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to add a member\n\t\tuassert.ErrorIs(t, m.AddMember(members[0]), ErrAlreadyMember)\n\t})\n\n\tt.Run(\"new member added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to add a member\n\t\turequire.NoError(t, m.AddMember(members[0]))\n\n\t\t// Make sure the member is added\n\t\tuassert.True(t, m.IsMember(members[0].Address))\n\t})\n}\n\nfunc TestMembStore_Size(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore()\n\n\t\tuassert.Equal(t, 0, m.Size())\n\t})\n\n\tt.Run(\"non-empty govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 50)\n\t\tm := NewMembStore(WithInitialMembers(members))\n\n\t\tuassert.Equal(t, len(members), m.Size())\n\t})\n}\n\nfunc TestMembStore_UpdateMember(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller not govdao\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create an empty store\n\t\tm := NewMembStore(WithDAOPkgPath(\"gno.land/r/gov/dao\"))\n\n\t\t// Attempt to update a member\n\t\tmember := generateMembers(t, 1)[0]\n\t\tuassert.ErrorIs(t, m.UpdateMember(member.Address, member), ErrNotGovDAO)\n\t})\n\n\tt.Run(\"non-existing member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create an empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[0]), ErrMissingMember)\n\t})\n\n\tt.Run(\"overwrite member attempt\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 2)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\t// Attempt to update a member\n\t\tuassert.ErrorIs(t, m.UpdateMember(members[0].Address, members[1]), ErrInvalidAddressUpdate)\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\toldVotingPower := m.totalVotingPower\n\t\turequire.Equal(t, members[0].VotingPower, oldVotingPower)\n\n\t\tvotingPower := uint64(300)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\t\tuassert.Equal(t, votingPower, m.Members(0, 10)[0].VotingPower)\n\t\turequire.Equal(t, votingPower, m.totalVotingPower)\n\t})\n\n\tt.Run(\"member removed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\t// Execute as the /r/gov/dao caller\n\t\t\tdaoPkgPath = \"gno.land/r/gov/dao\"\n\t\t\tr = std.NewCodeRealm(daoPkgPath)\n\t\t)\n\n\t\tstd.TestSetRealm(r)\n\n\t\t// Create a non-empty store\n\t\tmembers := generateMembers(t, 1)\n\t\tm := NewMembStore(WithDAOPkgPath(daoPkgPath), WithInitialMembers(members))\n\n\t\tvotingPower := uint64(0)\n\t\tmembers[0].VotingPower = votingPower\n\n\t\t// Attempt to update a member\n\t\tuassert.NoError(t, m.UpdateMember(members[0].Address, members[0]))\n\n\t\t// Make sure the member was removed\n\t\tuassert.False(t, m.IsMember(members[0].Address))\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X9Q4wXVfGN3W8qXLqZZhFSdStE03XBI18FgkckvfxEddfxhL1+Ys7k3h/xVXKEjWbYaxAqNATKrlH65kWx+iAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"memeland","path":"gno.land/p/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/seqid\"\n)\n\nconst (\n\tDATE_CREATED = \"DATE_CREATED\"\n\tUPVOTES = \"UPVOTES\"\n)\n\ntype Post struct {\n\tID string\n\tData string\n\tAuthor std.Address\n\tTimestamp time.Time\n\tUpvoteTracker *avl.Tree // address \u003e struct{}{}\n}\n\ntype Memeland struct {\n\t*ownable.Ownable\n\tPosts []*Post\n\tMemeCounter seqid.ID\n}\n\nfunc NewMemeland() *Memeland {\n\treturn \u0026Memeland{\n\t\tOwnable: ownable.New(),\n\t\tPosts: make([]*Post, 0),\n\t}\n}\n\n// PostMeme - Adds a new post\nfunc (m *Memeland) PostMeme(data string, timestamp int64) string {\n\tif data == \"\" || timestamp \u003c= 0 {\n\t\tpanic(\"timestamp or data cannot be empty\")\n\t}\n\n\t// Generate ID\n\tid := m.MemeCounter.Next().String()\n\n\tnewPost := \u0026Post{\n\t\tID: id,\n\t\tData: data,\n\t\tAuthor: std.PrevRealm().Addr(),\n\t\tTimestamp: time.Unix(timestamp, 0),\n\t\tUpvoteTracker: avl.NewTree(),\n\t}\n\n\tm.Posts = append(m.Posts, newPost)\n\treturn id\n}\n\nfunc (m *Memeland) Upvote(id string) string {\n\tpost := m.getPost(id)\n\tif post == nil {\n\t\tpanic(\"post with specified ID does not exist\")\n\t}\n\n\tcaller := std.PrevRealm().Addr().String()\n\n\tif _, exists := post.UpvoteTracker.Get(caller); exists {\n\t\tpanic(\"user has already upvoted this post\")\n\t}\n\n\tpost.UpvoteTracker.Set(caller, struct{}{})\n\n\treturn \"upvote successful\"\n}\n\n// GetPostsInRange returns a JSON string of posts within the given timestamp range, supporting pagination\nfunc (m *Memeland) GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\tif len(m.Posts) == 0 {\n\t\treturn \"[]\"\n\t}\n\n\tif page \u003c 1 {\n\t\tpanic(\"page number cannot be less than 1\")\n\t}\n\n\t// No empty pages\n\tif pageSize \u003c 1 {\n\t\tpanic(\"page size cannot be less than 1\")\n\t}\n\n\t// No pages larger than 10\n\tif pageSize \u003e 10 {\n\t\tpanic(\"page size cannot be larger than 10\")\n\t}\n\n\t// Need to pass in a sort parameter\n\tif sortBy == \"\" {\n\t\tpanic(\"sort order cannot be empty\")\n\t}\n\n\tvar filteredPosts []*Post\n\n\tstart := time.Unix(startTimestamp, 0)\n\tend := time.Unix(endTimestamp, 0)\n\n\t// Filtering posts\n\tfor _, p := range m.Posts {\n\t\tif !p.Timestamp.Before(start) \u0026\u0026 !p.Timestamp.After(end) {\n\t\t\tfilteredPosts = append(filteredPosts, p)\n\t\t}\n\t}\n\n\tswitch sortBy {\n\t// Sort by upvote descending\n\tcase UPVOTES:\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].UpvoteTracker.Size() \u003e filteredPosts[j].UpvoteTracker.Size()\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tcase DATE_CREATED:\n\t\t// Sort by timestamp, beginning with newest\n\t\tdateSorter := PostSorter{\n\t\t\tPosts: filteredPosts,\n\t\t\tLessF: func(i, j int) bool {\n\t\t\t\treturn filteredPosts[i].Timestamp.After(filteredPosts[j].Timestamp)\n\t\t\t},\n\t\t}\n\t\tsort.Sort(dateSorter)\n\tdefault:\n\t\tpanic(\"sort order can only be \\\"UPVOTES\\\" or \\\"DATE_CREATED\\\"\")\n\t}\n\n\t// Pagination\n\tstartIndex := (page - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\n\t// If page does not contain any posts\n\tif startIndex \u003e= len(filteredPosts) {\n\t\treturn \"[]\"\n\t}\n\n\t// If page contains fewer posts than the page size\n\tif endIndex \u003e len(filteredPosts) {\n\t\tendIndex = len(filteredPosts)\n\t}\n\n\t// Return JSON representation of paginated and sorted posts\n\treturn PostsToJSONString(filteredPosts[startIndex:endIndex])\n}\n\n// RemovePost allows the owner to remove a post with a specific ID\nfunc (m *Memeland) RemovePost(id string) string {\n\tif id == \"\" {\n\t\tpanic(\"id cannot be empty\")\n\t}\n\n\tif !m.CallerIsOwner() {\n\t\tpanic(ownable.ErrUnauthorized)\n\t}\n\n\tfor i, post := range m.Posts {\n\t\tif post.ID == id {\n\t\t\tm.Posts = append(m.Posts[:i], m.Posts[i+1:]...)\n\t\t\treturn id\n\t\t}\n\t}\n\n\tpanic(\"post with specified id does not exist\")\n}\n\n// PostsToJSONString converts a slice of Post structs into a JSON string\nfunc PostsToJSONString(posts []*Post) string {\n\tvar sb strings.Builder\n\tsb.WriteString(\"[\")\n\n\tfor i, post := range posts {\n\t\tif i \u003e 0 {\n\t\t\tsb.WriteString(\",\")\n\t\t}\n\n\t\tsb.WriteString(PostToJSONString(post))\n\t}\n\tsb.WriteString(\"]\")\n\n\treturn sb.String()\n}\n\n// PostToJSONString returns a Post formatted as a JSON string\nfunc PostToJSONString(post *Post) string {\n\tvar sb strings.Builder\n\n\tsb.WriteString(\"{\")\n\tsb.WriteString(`\"id\":\"` + post.ID + `\",`)\n\tsb.WriteString(`\"data\":\"` + escapeString(post.Data) + `\",`)\n\tsb.WriteString(`\"author\":\"` + escapeString(post.Author.String()) + `\",`)\n\tsb.WriteString(`\"timestamp\":\"` + strconv.Itoa(int(post.Timestamp.Unix())) + `\",`)\n\tsb.WriteString(`\"upvotes\":` + strconv.Itoa(post.UpvoteTracker.Size()))\n\tsb.WriteString(\"}\")\n\n\treturn sb.String()\n}\n\n// escapeString escapes quotes in a string for JSON compatibility.\nfunc escapeString(s string) string {\n\treturn strings.ReplaceAll(s, `\"`, `\\\"`)\n}\n\nfunc (m *Memeland) getPost(id string) *Post {\n\tfor _, p := range m.Posts {\n\t\tif p.ID == id {\n\t\t\treturn p\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// PostSorter is a flexible sorter for the *Post slice\ntype PostSorter struct {\n\tPosts []*Post\n\tLessF func(i, j int) bool\n}\n\nfunc (p PostSorter) Len() int {\n\treturn len(p.Posts)\n}\n\nfunc (p PostSorter) Swap(i, j int) {\n\tp.Posts[i], p.Posts[j] = p.Posts[j], p.Posts[i]\n}\n\nfunc (p PostSorter) Less(i, j int) bool {\n\treturn p.LessF(i, j)\n}\n"},{"name":"memeland_test.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc TestPostMeme(t *testing.T) {\n\tm := NewMemeland()\n\tid := m.PostMeme(\"Test meme data\", time.Now().Unix())\n\tuassert.NotEqual(t, \"\", string(id), \"Expected valid ID, got empty string\")\n}\n\nfunc TestGetPostsInRangePagination(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttestCases := []struct {\n\t\tpage int\n\t\tpageSize int\n\t\texpectedNumOfPosts int\n\t}{\n\t\t{page: 1, pageSize: 1, expectedNumOfPosts: 1}, // one per page\n\t\t{page: 2, pageSize: 1, expectedNumOfPosts: 1}, // one on second page\n\t\t{page: 1, pageSize: numOfPosts, expectedNumOfPosts: numOfPosts}, // all posts on single page\n\t\t{page: 12, pageSize: 1, expectedNumOfPosts: 0}, // empty page\n\t\t{page: 1, pageSize: numOfPosts + 1, expectedNumOfPosts: numOfPosts}, // page with fewer posts than its size\n\t\t{page: 5, pageSize: numOfPosts / 5, expectedNumOfPosts: 1}, // evenly distribute posts per page\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(ufmt.Sprintf(\"Page%d_Size%d\", tc.page, tc.pageSize), func(t *testing.T) {\n\t\t\tresult := m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), tc.page, tc.pageSize, \"DATE_CREATED\")\n\n\t\t\t// Count posts by how many times id: shows up in JSON string\n\t\t\tpostCount := strings.Count(result, `\"id\":\"`)\n\t\t\tuassert.Equal(t, tc.expectedNumOfPosts, postCount)\n\t\t})\n\t}\n}\n\nfunc TestGetPostsInRangeByTimestamp(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\tnumOfPosts, // all memes on the page\n\t\t\"DATE_CREATED\", // sort by newest first\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if data is there\n\tfor _, expData := range memeData {\n\t\tcheck := strings.Contains(jsonStr, expData)\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s in the JSON string, but counld't find it\", expData))\n\t}\n\n\t// Check if ordering is correct, sort by created date\n\tfor i := 0; i \u003c len(memeData)-2; i++ {\n\t\tcheck := strings.Index(jsonStr, memeData[i]) \u003e= strings.Index(jsonStr, memeData[i+1])\n\t\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s, but was at %d, and %d\", memeData[i], memeData[i+1], i, i+1))\n\t}\n}\n\nfunc TestGetPostsInRangeByUpvote(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tmemeData1 := \"Meme #1\"\n\tmemeData2 := \"Meme #2\"\n\n\t// Create posts at specific times for testing\n\tid1 := m.PostMeme(memeData1, now.Unix())\n\tid2 := m.PostMeme(memeData2, now.Add(time.Minute).Unix())\n\n\tm.Upvote(id1)\n\tm.Upvote(id2)\n\n\t// Change caller so avoid double upvote panic\n\tstd.TestSetOrigCaller(testutils.TestAddress(\"alice\"))\n\tm.Upvote(id1)\n\n\t// Final upvote count:\n\t// Meme #1 - 2 upvote\n\t// Meme #2 - 1 upvotes\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-time.Minute)\n\tafterLatest := now.Add(time.Hour)\n\n\t// Default sort is by addition order/timestamp\n\tjsonStr := m.GetPostsInRange(\n\t\tbeforeEarliest.Unix(), // start at earliest post\n\t\tafterLatest.Unix(), // end at latest post\n\t\t1, // first page\n\t\t2, // all memes on the page\n\t\t\"UPVOTES\", // sort by upvote\n\t)\n\n\tuassert.NotEmpty(t, jsonStr, \"Expected non-empty JSON string, got empty string\")\n\n\t// Count the number of posts returned in the JSON string as a rudimentary check for correct pagination/filtering\n\tpostCount := strings.Count(jsonStr, `\"id\":\"`)\n\tuassert.Equal(t, uint64(m.MemeCounter), uint64(postCount))\n\n\t// Check if ordering is correct\n\tcheck := strings.Index(jsonStr, \"Meme #1\") \u003c= strings.Index(jsonStr, \"Meme #2\")\n\tuassert.True(t, check, ufmt.Sprintf(\"Expected %s to be before %s\", memeData1, memeData2))\n}\n\nfunc TestBadSortBy(t *testing.T) {\n\tm := NewMemeland()\n\tnow := time.Now()\n\n\tnumOfPosts := 5\n\tvar memeData []string\n\tfor i := 1; i \u003c= numOfPosts; i++ {\n\t\t// Prepare meme data\n\t\tnextTime := now.Add(time.Duration(i) * time.Minute)\n\t\tdata := ufmt.Sprintf(\"Meme #%d\", i)\n\t\tmemeData = append(memeData, data)\n\n\t\tm.PostMeme(data, nextTime.Unix())\n\t}\n\n\t// Get timestamps\n\tbeforeEarliest := now.Add(-1 * time.Minute)\n\tafterLatest := now.Add(time.Duration(numOfPosts)*time.Minute + time.Minute)\n\n\ttests := []struct {\n\t\tname string\n\t\tsortBy string\n\t\twantPanic string\n\t}{\n\t\t{\n\t\t\tname: \"Empty sortBy\",\n\t\t\tsortBy: \"\",\n\t\t\twantPanic: \"runtime error: index out of range\",\n\t\t},\n\t\t{\n\t\t\tname: \"Wrong sortBy\",\n\t\t\tsortBy: \"random string\",\n\t\t\twantPanic: \"\",\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tdefer func() {\n\t\t\t\tif r := recover(); r == nil {\n\t\t\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\t// Panics should be caught\n\t\t\t_ = m.GetPostsInRange(beforeEarliest.Unix(), afterLatest.Unix(), 1, 1, tc.sortBy)\n\t\t})\n\t}\n}\n\nfunc TestNoPosts(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\n\tjsonStr := m.GetPostsInRange(0, now, 1, 1, \"DATE_CREATED\")\n\n\tuassert.Equal(t, jsonStr, \"[]\")\n}\n\nfunc TestUpvote(t *testing.T) {\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now().Unix()\n\tpostID := m.PostMeme(\"Test meme data\", now)\n\n\t// Initial upvote count should be 0\n\tpost := m.getPost(postID)\n\tuassert.Equal(t, 0, post.UpvoteTracker.Size())\n\n\t// Upvote the post\n\tupvoteResult := m.Upvote(postID)\n\tuassert.Equal(t, \"upvote successful\", upvoteResult)\n\n\t// Retrieve the post again and check the upvote count\n\tpost = m.getPost(postID)\n\tuassert.Equal(t, 1, post.UpvoteTracker.Size())\n}\n\nfunc TestDelete(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\t// Alice is admin\n\tm := NewMemeland()\n\n\t// Set caller to Bob\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\t// Bob adds post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Alice removes Bob's post\n\tstd.TestSetOrigCaller(alice)\n\n\tid := m.RemovePost(postID)\n\tuassert.Equal(t, postID, id, \"post IDs not matching\")\n\tuassert.Equal(t, 0, len(m.Posts), \"there should be 0 posts after removing\")\n}\n\nfunc TestDeleteByNonAdmin(t *testing.T) {\n\talice := testutils.TestAddress(\"alice\")\n\tstd.TestSetOrigCaller(alice)\n\n\tm := NewMemeland()\n\n\t// Add a post to Memeland\n\tnow := time.Now()\n\tpostID := m.PostMeme(\"Meme #1\", now.Unix())\n\n\t// Bob will try to delete meme posted by Alice, which should fail\n\tbob := testutils.TestAddress(\"bob\")\n\tstd.TestSetOrigCaller(bob)\n\n\tdefer func() {\n\t\tif r := recover(); r == nil {\n\t\t\tt.Errorf(\"code did not panic when it should have\")\n\t\t}\n\t}()\n\n\t// Should panic - caught by defer\n\tm.RemovePost(postID)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9zwGVlP46oEIWKaNud7b+ozebfYi+eef212rhKpjLoawSEvrwi4OvyATMfA7q7xVGdXyWJbzezA9JhNl77m7CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"memeland","path":"gno.land/r/demo/memeland","files":[{"name":"memeland.gno","body":"package memeland\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/memeland\"\n)\n\nvar m *memeland.Memeland\n\nfunc init() {\n\tm = memeland.NewMemeland()\n\tm.TransferOwnership(\"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5\")\n}\n\nfunc PostMeme(data string, timestamp int64) string {\n\treturn m.PostMeme(data, timestamp)\n}\n\nfunc Upvote(id string) string {\n\treturn m.Upvote(id)\n}\n\nfunc GetPostsInRange(startTimestamp, endTimestamp int64, page, pageSize int, sortBy string) string {\n\treturn m.GetPostsInRange(startTimestamp, endTimestamp, page, pageSize, sortBy)\n}\n\nfunc RemovePost(id string) string {\n\treturn m.RemovePost(id)\n}\n\nfunc GetOwner() std.Address {\n\treturn m.Owner()\n}\n\nfunc TransferOwnership(newOwner std.Address) {\n\tif err := m.TransferOwnership(newOwner); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tnumOfMemes := int(m.MemeCounter)\n\tif numOfMemes == 0 {\n\t\treturn \"No memes posted yet! :/\"\n\t}\n\n\t// Default render is get Posts since year 2000 to now\n\treturn m.GetPostsInRange(0, time.Now().Unix(), 1, 10, \"DATE_CREATED\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e6uGtpp/AzrcNSULwUz03SL8o439NeUE0JtfThbY7jb5DqN57SGRmbKLJP/Uyz/knVqrh47IYtzM61KfEPyHCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"memo","path":"gno.land/p/moul/memo","files":[{"name":"memo.gno","body":"// Package memo provides a simple memoization utility to cache function results.\n//\n// The package offers a Memoizer type that can cache function results based on keys,\n// with optional validation of cached values. This is useful for expensive computations\n// that need to be cached and potentially invalidated based on custom conditions.\n//\n// /!\\ Important Warning for Gno Usage:\n// In Gno, storage updates only persist during transactions. This means:\n// - Cache entries created during queries will NOT persist\n// - Creating cache entries during queries will actually decrease performance\n// as it wastes resources trying to save data that won't be saved\n//\n// Best Practices:\n// - Use this pattern in transaction-driven contexts rather than query/render scenarios\n// - Consider controlled cache updates, e.g., by specific accounts (like oracles)\n// - Ideal for cases where cache updates happen every N blocks or on specific events\n// - Carefully evaluate if caching will actually improve performance in your use case\n//\n// Basic usage example:\n//\n//\tm := memo.New()\n//\n//\t// Cache expensive computation\n//\tresult := m.Memoize(\"key\", func() interface{} {\n//\t // expensive operation\n//\t return \"computed-value\"\n//\t})\n//\n//\t// Subsequent calls with same key return cached result\n//\tresult = m.Memoize(\"key\", func() interface{} {\n//\t // function won't be called, cached value is returned\n//\t return \"computed-value\"\n//\t})\n//\n// Example with validation:\n//\n//\ttype TimestampedValue struct {\n//\t Value string\n//\t Timestamp time.Time\n//\t}\n//\n//\tm := memo.New()\n//\n//\t// Cache value with timestamp\n//\tresult := m.MemoizeWithValidator(\n//\t \"key\",\n//\t func() interface{} {\n//\t return TimestampedValue{\n//\t Value: \"data\",\n//\t Timestamp: time.Now(),\n//\t }\n//\t },\n//\t func(cached interface{}) bool {\n//\t // Validate that the cached value is not older than 1 hour\n//\t if tv, ok := cached.(TimestampedValue); ok {\n//\t return time.Since(tv.Timestamp) \u003c time.Hour\n//\t }\n//\t return false\n//\t },\n//\t)\npackage memo\n\nimport (\n\t\"gno.land/p/demo/btree\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Record implements the btree.Record interface for our cache entries\ntype cacheEntry struct {\n\tkey interface{}\n\tvalue interface{}\n}\n\n// Less implements btree.Record interface\nfunc (e cacheEntry) Less(than btree.Record) bool {\n\t// Convert the other record to cacheEntry\n\tother := than.(cacheEntry)\n\t// Compare string representations of keys for consistent ordering\n\treturn ufmt.Sprintf(\"%v\", e.key) \u003c ufmt.Sprintf(\"%v\", other.key)\n}\n\n// Memoizer is a structure to handle memoization of function results.\ntype Memoizer struct {\n\tcache *btree.BTree\n}\n\n// New creates a new Memoizer instance.\nfunc New() *Memoizer {\n\treturn \u0026Memoizer{\n\t\tcache: btree.New(),\n\t}\n}\n\n// Memoize ensures the result of the given function is cached for the specified key.\nfunc (m *Memoizer) Memoize(key interface{}, fn func() interface{}) interface{} {\n\tentry := cacheEntry{key: key}\n\tif found := m.cache.Get(entry); found != nil {\n\t\treturn found.(cacheEntry).value\n\t}\n\n\tvalue := fn()\n\tm.cache.Insert(cacheEntry{key: key, value: value})\n\treturn value\n}\n\n// MemoizeWithValidator ensures the result is cached and valid according to the validator function.\nfunc (m *Memoizer) MemoizeWithValidator(key interface{}, fn func() interface{}, isValid func(interface{}) bool) interface{} {\n\tentry := cacheEntry{key: key}\n\tif found := m.cache.Get(entry); found != nil {\n\t\tcachedEntry := found.(cacheEntry)\n\t\tif isValid(cachedEntry.value) {\n\t\t\treturn cachedEntry.value\n\t\t}\n\t}\n\n\tvalue := fn()\n\tm.cache.Insert(cacheEntry{key: key, value: value})\n\treturn value\n}\n\n// Invalidate removes the cached value for the specified key.\nfunc (m *Memoizer) Invalidate(key interface{}) {\n\tm.cache.Delete(cacheEntry{key: key})\n}\n\n// Clear clears all cached values.\nfunc (m *Memoizer) Clear() {\n\tm.cache.Clear(true)\n}\n\n// Size returns the number of items currently in the cache.\nfunc (m *Memoizer) Size() int {\n\treturn m.cache.Len()\n}\n"},{"name":"memo_test.gno","body":"package memo\n\nimport (\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n)\n\ntype timestampedValue struct {\n\tvalue interface{}\n\ttimestamp time.Time\n}\n\n// complexKey is used to test struct keys\ntype complexKey struct {\n\tID int\n\tName string\n}\n\nfunc TestMemoize(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tkey interface{}\n\t\tvalue interface{}\n\t\tcallCount *int\n\t}{\n\t\t{\n\t\t\tname: \"string key and value\",\n\t\t\tkey: \"test-key\",\n\t\t\tvalue: \"test-value\",\n\t\t\tcallCount: new(int),\n\t\t},\n\t\t{\n\t\t\tname: \"int key and value\",\n\t\t\tkey: 42,\n\t\t\tvalue: 123,\n\t\t\tcallCount: new(int),\n\t\t},\n\t\t{\n\t\t\tname: \"mixed types\",\n\t\t\tkey: \"number\",\n\t\t\tvalue: 42,\n\t\t\tcallCount: new(int),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tm := New()\n\t\t\tif m.Size() != 0 {\n\t\t\t\tt.Errorf(\"Initial size = %d, want 0\", m.Size())\n\t\t\t}\n\n\t\t\tfn := func() interface{} {\n\t\t\t\t*tt.callCount++\n\t\t\t\treturn tt.value\n\t\t\t}\n\n\t\t\t// First call should compute\n\t\t\tresult := m.Memoize(tt.key, fn)\n\t\t\tif result != tt.value {\n\t\t\t\tt.Errorf(\"Memoize() = %v, want %v\", result, tt.value)\n\t\t\t}\n\t\t\tif *tt.callCount != 1 {\n\t\t\t\tt.Errorf(\"Function called %d times, want 1\", *tt.callCount)\n\t\t\t}\n\t\t\tif m.Size() != 1 {\n\t\t\t\tt.Errorf(\"Size after first call = %d, want 1\", m.Size())\n\t\t\t}\n\n\t\t\t// Second call should use cache\n\t\t\tresult = m.Memoize(tt.key, fn)\n\t\t\tif result != tt.value {\n\t\t\t\tt.Errorf(\"Memoize() second call = %v, want %v\", result, tt.value)\n\t\t\t}\n\t\t\tif *tt.callCount != 1 {\n\t\t\t\tt.Errorf(\"Function called %d times, want 1\", *tt.callCount)\n\t\t\t}\n\t\t\tif m.Size() != 1 {\n\t\t\t\tt.Errorf(\"Size after second call = %d, want 1\", m.Size())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMemoizeWithValidator(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tkey interface{}\n\t\tvalue interface{}\n\t\tvalidDuration time.Duration\n\t\twaitDuration time.Duration\n\t\texpectedCalls int\n\t\tshouldRecompute bool\n\t}{\n\t\t{\n\t\t\tname: \"valid cache\",\n\t\t\tkey: \"key1\",\n\t\t\tvalue: \"value1\",\n\t\t\tvalidDuration: time.Hour,\n\t\t\twaitDuration: time.Millisecond,\n\t\t\texpectedCalls: 1,\n\t\t\tshouldRecompute: false,\n\t\t},\n\t\t{\n\t\t\tname: \"expired cache\",\n\t\t\tkey: \"key2\",\n\t\t\tvalue: \"value2\",\n\t\t\tvalidDuration: time.Millisecond,\n\t\t\twaitDuration: time.Millisecond * 2,\n\t\t\texpectedCalls: 2,\n\t\t\tshouldRecompute: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tm := New()\n\t\t\tcallCount := 0\n\n\t\t\tfn := func() interface{} {\n\t\t\t\tcallCount++\n\t\t\t\treturn timestampedValue{\n\t\t\t\t\tvalue: tt.value,\n\t\t\t\t\ttimestamp: time.Now(),\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tisValid := func(cached interface{}) bool {\n\t\t\t\tif tv, ok := cached.(timestampedValue); ok {\n\t\t\t\t\treturn time.Since(tv.timestamp) \u003c tt.validDuration\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// First call\n\t\t\tresult := m.MemoizeWithValidator(tt.key, fn, isValid)\n\t\t\tif tv, ok := result.(timestampedValue); !ok || tv.value != tt.value {\n\t\t\t\tt.Errorf(\"MemoizeWithValidator() = %v, want value %v\", result, tt.value)\n\t\t\t}\n\n\t\t\t// Wait\n\t\t\tstd.TestSkipHeights(10)\n\n\t\t\t// Second call\n\t\t\tresult = m.MemoizeWithValidator(tt.key, fn, isValid)\n\t\t\tif tv, ok := result.(timestampedValue); !ok || tv.value != tt.value {\n\t\t\t\tt.Errorf(\"MemoizeWithValidator() second call = %v, want value %v\", result, tt.value)\n\t\t\t}\n\n\t\t\tif callCount != tt.expectedCalls {\n\t\t\t\tt.Errorf(\"Function called %d times, want %d\", callCount, tt.expectedCalls)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestInvalidate(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tkey interface{}\n\t\tvalue interface{}\n\t\tcallCount *int\n\t}{\n\t\t{\n\t\t\tname: \"invalidate existing key\",\n\t\t\tkey: \"test-key\",\n\t\t\tvalue: \"test-value\",\n\t\t\tcallCount: new(int),\n\t\t},\n\t\t{\n\t\t\tname: \"invalidate non-existing key\",\n\t\t\tkey: \"missing-key\",\n\t\t\tvalue: \"test-value\",\n\t\t\tcallCount: new(int),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tm := New()\n\t\t\tfn := func() interface{} {\n\t\t\t\t*tt.callCount++\n\t\t\t\treturn tt.value\n\t\t\t}\n\n\t\t\t// First call\n\t\t\tm.Memoize(tt.key, fn)\n\t\t\tif m.Size() != 1 {\n\t\t\t\tt.Errorf(\"Size after first call = %d, want 1\", m.Size())\n\t\t\t}\n\n\t\t\t// Invalidate\n\t\t\tm.Invalidate(tt.key)\n\t\t\tif m.Size() != 0 {\n\t\t\t\tt.Errorf(\"Size after invalidate = %d, want 0\", m.Size())\n\t\t\t}\n\n\t\t\t// Call again should recompute\n\t\t\tresult := m.Memoize(tt.key, fn)\n\t\t\tif result != tt.value {\n\t\t\t\tt.Errorf(\"Memoize() after invalidate = %v, want %v\", result, tt.value)\n\t\t\t}\n\t\t\tif *tt.callCount != 2 {\n\t\t\t\tt.Errorf(\"Function called %d times, want 2\", *tt.callCount)\n\t\t\t}\n\t\t\tif m.Size() != 1 {\n\t\t\t\tt.Errorf(\"Size after recompute = %d, want 1\", m.Size())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestClear(t *testing.T) {\n\tm := New()\n\tcallCount := 0\n\n\tfn := func() interface{} {\n\t\tcallCount++\n\t\treturn \"value\"\n\t}\n\n\t// Cache some values\n\tm.Memoize(\"key1\", fn)\n\tm.Memoize(\"key2\", fn)\n\n\tif callCount != 2 {\n\t\tt.Errorf(\"Initial calls = %d, want 2\", callCount)\n\t}\n\tif m.Size() != 2 {\n\t\tt.Errorf(\"Size after initial calls = %d, want 2\", m.Size())\n\t}\n\n\t// Clear cache\n\tm.Clear()\n\tif m.Size() != 0 {\n\t\tt.Errorf(\"Size after clear = %d, want 0\", m.Size())\n\t}\n\n\t// Recompute values\n\tm.Memoize(\"key1\", fn)\n\tm.Memoize(\"key2\", fn)\n\n\tif callCount != 4 {\n\t\tt.Errorf(\"Calls after clear = %d, want 4\", callCount)\n\t}\n\tif m.Size() != 2 {\n\t\tt.Errorf(\"Size after recompute = %d, want 2\", m.Size())\n\t}\n}\n\nfunc TestSize(t *testing.T) {\n\tm := New()\n\n\tif m.Size() != 0 {\n\t\tt.Errorf(\"Initial size = %d, want 0\", m.Size())\n\t}\n\n\tcallCount := 0\n\tfn := func() interface{} {\n\t\tcallCount++\n\t\treturn \"value\"\n\t}\n\n\t// Add items\n\tm.Memoize(\"key1\", fn)\n\tif m.Size() != 1 {\n\t\tt.Errorf(\"Size after first insert = %d, want 1\", m.Size())\n\t}\n\n\tm.Memoize(\"key2\", fn)\n\tif m.Size() != 2 {\n\t\tt.Errorf(\"Size after second insert = %d, want 2\", m.Size())\n\t}\n\n\t// Duplicate key should not increase size\n\tm.Memoize(\"key1\", fn)\n\tif m.Size() != 2 {\n\t\tt.Errorf(\"Size after duplicate insert = %d, want 2\", m.Size())\n\t}\n\n\t// Remove item\n\tm.Invalidate(\"key1\")\n\tif m.Size() != 1 {\n\t\tt.Errorf(\"Size after invalidate = %d, want 1\", m.Size())\n\t}\n\n\t// Clear all\n\tm.Clear()\n\tif m.Size() != 0 {\n\t\tt.Errorf(\"Size after clear = %d, want 0\", m.Size())\n\t}\n}\n\nfunc TestMemoizeWithDifferentKeyTypes(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tkeys []interface{} // Now an array of keys\n\t\tvalues []string // Corresponding values\n\t\tcallCount *int\n\t}{\n\t\t{\n\t\t\tname: \"integer keys\",\n\t\t\tkeys: []interface{}{42, 43},\n\t\t\tvalues: []string{\"value-for-42\", \"value-for-43\"},\n\t\t\tcallCount: new(int),\n\t\t},\n\t\t{\n\t\t\tname: \"float keys\",\n\t\t\tkeys: []interface{}{3.14, 2.718},\n\t\t\tvalues: []string{\"value-for-pi\", \"value-for-e\"},\n\t\t\tcallCount: new(int),\n\t\t},\n\t\t{\n\t\t\tname: \"bool keys\",\n\t\t\tkeys: []interface{}{true, false},\n\t\t\tvalues: []string{\"value-for-true\", \"value-for-false\"},\n\t\t\tcallCount: new(int),\n\t\t},\n\t\t/*\n\t\t\t{\n\t\t\t\tname: \"struct keys\",\n\t\t\t\tkeys: []interface{}{\n\t\t\t\t\tcomplexKey{ID: 1, Name: \"test1\"},\n\t\t\t\t\tcomplexKey{ID: 2, Name: \"test2\"},\n\t\t\t\t},\n\t\t\t\tvalues: []string{\"value-for-struct1\", \"value-for-struct2\"},\n\t\t\t\tcallCount: new(int),\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"nil and empty interface keys\",\n\t\t\t\tkeys: []interface{}{nil, interface{}(nil)},\n\t\t\t\tvalues: []string{\"value-for-nil\", \"value-for-empty-interface\"},\n\t\t\t\tcallCount: new(int),\n\t\t\t},\n\t\t*/\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tm := New()\n\n\t\t\t// Test both keys\n\t\t\tfor i, key := range tt.keys {\n\t\t\t\tvalue := tt.values[i]\n\t\t\t\tfn := func() interface{} {\n\t\t\t\t\t*tt.callCount++\n\t\t\t\t\treturn value\n\t\t\t\t}\n\n\t\t\t\t// First call should compute\n\t\t\t\tresult := m.Memoize(key, fn)\n\t\t\t\tif result != value {\n\t\t\t\t\tt.Errorf(\"Memoize() for key %v = %v, want %v\", key, result, value)\n\t\t\t\t}\n\t\t\t\tif *tt.callCount != i+1 {\n\t\t\t\t\tt.Errorf(\"Function called %d times, want %d\", *tt.callCount, i+1)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Verify size includes both entries\n\t\t\tif m.Size() != 2 {\n\t\t\t\tt.Errorf(\"Size after both inserts = %d, want 2\", m.Size())\n\t\t\t}\n\n\t\t\t// Second call for each key should use cache\n\t\t\tfor i, key := range tt.keys {\n\t\t\t\tinitialCount := *tt.callCount\n\t\t\t\tresult := m.Memoize(key, func() interface{} {\n\t\t\t\t\t*tt.callCount++\n\t\t\t\t\treturn \"should-not-be-called\"\n\t\t\t\t})\n\n\t\t\t\tif result != tt.values[i] {\n\t\t\t\t\tt.Errorf(\"Memoize() second call for key %v = %v, want %v\", key, result, tt.values[i])\n\t\t\t\t}\n\t\t\t\tif *tt.callCount != initialCount {\n\t\t\t\t\tt.Errorf(\"Cache miss for key %v\", key)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Test invalidate for each key\n\t\t\tfor i, key := range tt.keys {\n\t\t\t\tm.Invalidate(key)\n\t\t\t\tif m.Size() != 1-i {\n\t\t\t\t\tt.Errorf(\"Size after invalidate %d = %d, want %d\", i+1, m.Size(), 1-i)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMultipleKeyTypes(t *testing.T) {\n\tm := New()\n\tcallCount := 0\n\n\t// Insert different key types simultaneously (two of each type)\n\tkeys := []interface{}{\n\t\t42, 43, // ints\n\t\t\"string-key1\", \"string-key2\", // strings\n\t\t3.14, 2.718, // floats\n\t\ttrue, false, // bools\n\t}\n\n\tfor i, key := range keys {\n\t\tvalue := i\n\t\tm.Memoize(key, func() interface{} {\n\t\t\tcallCount++\n\t\t\treturn value\n\t\t})\n\t}\n\n\t// Verify size includes all entries\n\tif m.Size() != len(keys) {\n\t\tt.Errorf(\"Size = %d, want %d\", m.Size(), len(keys))\n\t}\n\n\t// Verify all values are cached correctly\n\tfor i, key := range keys {\n\t\tinitialCount := callCount\n\t\tresult := m.Memoize(key, func() interface{} {\n\t\t\tcallCount++\n\t\t\treturn -1 // Should never be returned if cache works\n\t\t})\n\n\t\tif result != i {\n\t\t\tt.Errorf(\"Memoize(%v) = %v, want %v\", key, result, i)\n\t\t}\n\t\tif callCount != initialCount {\n\t\t\tt.Errorf(\"Cache miss for key %v\", key)\n\t\t}\n\t}\n\n\t// Test invalidation of pairs\n\tfor i := 0; i \u003c len(keys); i += 2 {\n\t\tm.Invalidate(keys[i])\n\t\tm.Invalidate(keys[i+1])\n\t\texpectedSize := len(keys) - (i + 2)\n\t\tif m.Size() != expectedSize {\n\t\t\tt.Errorf(\"Size after invalidating pair %d = %d, want %d\", i/2, m.Size(), expectedSize)\n\t\t}\n\t}\n\n\t// Clear and verify\n\tm.Clear()\n\tif m.Size() != 0 {\n\t\tt.Errorf(\"Size after clear = %d, want 0\", m.Size())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DC5N1zd1tDbvxc7OPxoQxJd6QOMkiXp8M/CXTy25fGBbvd62CnvMFsUT1n9t6cjQvnWUVoGetUcp6lh5NRFgCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"merkle","path":"gno.land/p/demo/merkle","files":[{"name":"README.md","body":"# p/demo/merkle\n\nThis package implement a merkle tree that is complient with [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n## [merkletreejs](https://github.com/merkletreejs/merkletreejs)\n\n```javascript\nconst { MerkleTree } = require(\"merkletreejs\");\nconst SHA256 = require(\"crypto-js/sha256\");\n\nlet leaves = [];\nfor (let i = 0; i \u003c 10; i++) {\n leaves.push(SHA256(`node_${i}`));\n}\n\nconst tree = new MerkleTree(leaves, SHA256);\nconst root = tree.getRoot().toString(\"hex\");\n\nconsole.log(root); // cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\n```\n"},{"name":"merkle.gno","body":"package merkle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"errors\"\n)\n\ntype Hashable interface {\n\tBytes() []byte\n}\n\ntype nodes []Node\n\ntype Node struct {\n\thash []byte\n\n\tposition uint8\n}\n\nfunc NewNode(hash []byte, position uint8) Node {\n\treturn Node{\n\t\thash: hash,\n\t\tposition: position,\n\t}\n}\n\nfunc (n Node) Position() uint8 {\n\treturn n.position\n}\n\nfunc (n Node) Hash() string {\n\treturn hex.EncodeToString(n.hash[:])\n}\n\ntype Tree struct {\n\tlayers []nodes\n}\n\n// Root return the merkle root of the tree\nfunc (t *Tree) Root() string {\n\tfor _, l := range t.layers {\n\t\tif len(l) == 1 {\n\t\t\treturn l[0].Hash()\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// NewTree create a new Merkle Tree\nfunc NewTree(data []Hashable) *Tree {\n\ttree := \u0026Tree{}\n\n\tleaves := make([]Node, len(data))\n\n\tfor i, d := range data {\n\t\thash := sha256.Sum256(d.Bytes())\n\t\tleaves[i] = Node{hash: hash[:]}\n\t}\n\n\ttree.layers = []nodes{nodes(leaves)}\n\n\tvar buff bytes.Buffer\n\tfor len(leaves) \u003e 1 {\n\t\tlevel := make([]Node, 0, len(leaves)/2+1)\n\t\tfor i := 0; i \u003c len(leaves); i += 2 {\n\t\t\tbuff.Reset()\n\n\t\t\tif i \u003c len(leaves)-1 {\n\t\t\t\tbuff.Write(leaves[i].hash)\n\t\t\t\tbuff.Write(leaves[i+1].hash)\n\t\t\t\thash := sha256.Sum256(buff.Bytes())\n\t\t\t\tlevel = append(level, Node{\n\t\t\t\t\thash: hash[:],\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tlevel = append(level, leaves[i])\n\t\t\t}\n\t\t}\n\t\tleaves = level\n\t\ttree.layers = append(tree.layers, level)\n\t}\n\treturn tree\n}\n\n// Proof return a MerkleProof\nfunc (t *Tree) Proof(data Hashable) ([]Node, error) {\n\ttargetHash := sha256.Sum256(data.Bytes())\n\ttargetIndex := -1\n\n\tfor i, layer := range t.layers[0] {\n\t\tif bytes.Equal(targetHash[:], layer.hash) {\n\t\t\ttargetIndex = i\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif targetIndex == -1 {\n\t\treturn nil, errors.New(\"target not found\")\n\t}\n\n\tproofs := make([]Node, 0, len(t.layers))\n\n\tfor _, layer := range t.layers {\n\t\tvar pairIndex int\n\n\t\tif targetIndex%2 == 0 {\n\t\t\tpairIndex = targetIndex + 1\n\t\t} else {\n\t\t\tpairIndex = targetIndex - 1\n\t\t}\n\t\tif pairIndex \u003c len(layer) {\n\t\t\tproofs = append(proofs, Node{\n\t\t\t\thash: layer[pairIndex].hash,\n\t\t\t\tposition: uint8(targetIndex) % 2,\n\t\t\t})\n\t\t}\n\t\ttargetIndex /= 2\n\t}\n\treturn proofs, nil\n}\n\n// Verify if a merkle proof is valid\nfunc (t *Tree) Verify(leaf Hashable, proofs []Node) bool {\n\treturn Verify(t.Root(), leaf, proofs)\n}\n\n// Verify if a merkle proof is valid\nfunc Verify(root string, leaf Hashable, proofs []Node) bool {\n\thash := sha256.Sum256(leaf.Bytes())\n\n\tfor i := 0; i \u003c len(proofs); i += 1 {\n\t\tvar h []byte\n\t\tif proofs[i].position == 0 {\n\t\t\th = append(hash[:], proofs[i].hash...)\n\t\t} else {\n\t\t\th = append(proofs[i].hash, hash[:]...)\n\t\t}\n\t\thash = sha256.Sum256(h)\n\t}\n\treturn hex.EncodeToString(hash[:]) == root\n}\n"},{"name":"merkle_test.gno","body":"package merkle\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype testData struct {\n\tcontent string\n}\n\nfunc (d testData) Bytes() []byte {\n\treturn []byte(d.content)\n}\n\nfunc TestMerkleTree(t *testing.T) {\n\ttests := []struct {\n\t\tsize int\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tsize: 1,\n\t\t\texpected: \"cf9f824bce7f5bc63d557b23591f58577f53fe29f974a615bdddbd0140f912f4\",\n\t\t},\n\t\t{\n\t\t\tsize: 3,\n\t\t\texpected: \"1a4a5f0fa267244bf9f74a63fdf2a87eed5e97e4bd104a9e94728c8fb5442177\",\n\t\t},\n\t\t{\n\t\t\tsize: 10,\n\t\t\texpected: \"cd8a40502b0b92bf58e7432a5abb2d8b60121cf2b7966d6ebaf103f907a1bc21\",\n\t\t},\n\t\t{\n\t\t\tsize: 1000,\n\t\t\texpected: \"fa533d2efdf12be26bc410dfa42936ac63361324e35e9b1ff54d422a1dd2388b\",\n\t\t},\n\t}\n\n\tfor _, test := range tests {\n\t\tvar leaves []Hashable\n\t\tfor i := 0; i \u003c test.size; i++ {\n\t\t\tleaves = append(leaves, testData{fmt.Sprintf(\"node_%d\", i)})\n\t\t}\n\n\t\ttree := NewTree(leaves)\n\n\t\tif tree == nil {\n\t\t\tt.Error(\"Merkle tree creation failed\")\n\t\t}\n\n\t\troot := tree.Root()\n\n\t\tif root != test.expected {\n\t\t\tt.Fatalf(\"merkle.Tree.Root(), expected: %s; got: %s\", test.expected, root)\n\t\t}\n\n\t\tfor _, leaf := range leaves {\n\t\t\tproofs, err := tree.Proof(leaf)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(\"failed to proof leaf: %v, on tree: %v\", leaf, test)\n\t\t\t}\n\n\t\t\tok := Verify(root, leaf, proofs)\n\t\t\tif !ok {\n\t\t\t\tt.Fatal(\"failed to verify leaf: %v, on tree: %v\", leaf, tree)\n\t\t\t}\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q+S11CbdLv+wwfgXde/+MWXqlQhiJ0AtgGFUkof9JAqK611ARBQluQPc7XNApjY2FKbM4Ag9YAqaUR62VKOtBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"message","path":"gno.land/p/demo/gnorkle/message","files":[{"name":"parse.gno","body":"package message\n\nimport \"strings\"\n\n// ParseFunc parses a raw message and returns the message function\n// type extracted from the remainder of the message.\nfunc ParseFunc(rawMsg string) (FuncType, string) {\n\tfuncType, remainder := parseFirstToken(rawMsg)\n\treturn FuncType(funcType), remainder\n}\n\n// ParseID parses a raw message and returns the ID extracted from\n// the remainder of the message.\nfunc ParseID(rawMsg string) (string, string) {\n\treturn parseFirstToken(rawMsg)\n}\n\nfunc parseFirstToken(rawMsg string) (string, string) {\n\tmsgParts := strings.SplitN(rawMsg, \",\", 2)\n\tif len(msgParts) \u003c 2 {\n\t\treturn msgParts[0], \"\"\n\t}\n\n\treturn msgParts[0], msgParts[1]\n}\n"},{"name":"parse_test.gno","body":"package message_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestParseFunc(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput string\n\t\texpFuncType message.FuncType\n\t\texpRemainder string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t},\n\t\t{\n\t\t\tname: \"func only\",\n\t\t\tinput: \"ingest\",\n\t\t\texpFuncType: message.FuncTypeIngest,\n\t\t},\n\t\t{\n\t\t\tname: \"func with short remainder\",\n\t\t\tinput: \"commit,asdf\",\n\t\t\texpFuncType: message.FuncTypeCommit,\n\t\t\texpRemainder: \"asdf\",\n\t\t},\n\t\t{\n\t\t\tname: \"func with long remainder\",\n\t\t\tinput: \"request,hello,world,goodbye\",\n\t\t\texpFuncType: message.FuncTypeRequest,\n\t\t\texpRemainder: \"hello,world,goodbye\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tfuncType, remainder := message.ParseFunc(tt.input)\n\n\t\t\tuassert.Equal(t, string(tt.expFuncType), string(funcType))\n\t\t\tuassert.Equal(t, tt.expRemainder, remainder)\n\t\t})\n\t}\n}\n"},{"name":"type.gno","body":"package message\n\n// FuncType is the type of function that is being called by the agent.\ntype FuncType string\n\nconst (\n\t// FuncTypeIngest means the agent is sending data for ingestion.\n\tFuncTypeIngest FuncType = \"ingest\"\n\t// FuncTypeCommit means the agent is requesting a feed commit the transitive data\n\t// being held by its ingester.\n\tFuncTypeCommit FuncType = \"commit\"\n\t// FuncTypeRequest means the agent is requesting feed definitions for all those\n\t// that it is whitelisted to provide data for.\n\tFuncTypeRequest FuncType = \"request\"\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6/fgS5Y43AjJYJLkrxMNDxypoFl/+Cr0Me2VU56/vKQByWPWGBbg4n5nkRZIPHFVyi8MZO5PJwmNPA904lBDAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"mgroup","path":"gno.land/p/n2p5/mgroup","files":[{"name":"mgroup.gno","body":"// Package mgroup is a simple managed group managing ownership and membership\n// for authorization in gno realms. The ManagedGroup struct is used to manage\n// the owner, backup owners, and members of a group. The owner is the primary\n// owner of the group and can add and remove backup owners and members. Backup\n// owners can claim ownership of the group. This is meant to provide backup\n// accounts for the owner in case the owner account is lost or compromised.\n// Members are used to authorize actions across realms.\npackage mgroup\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tErrCannotRemoveOwner = errors.New(\"mgroup: cannot remove owner\")\n\tErrNotBackupOwner = errors.New(\"mgroup: not a backup owner\")\n\tErrNotMember = errors.New(\"mgroup: not a member\")\n\tErrInvalidAddress = errors.New(\"mgroup: address is invalid\")\n)\n\ntype ManagedGroup struct {\n\towner *ownable.Ownable\n\tbackupOwners *avl.Tree\n\tmembers *avl.Tree\n}\n\n// New creates a new ManagedGroup with the owner set to the provided address.\n// The owner is automatically added as a backup owner and member of the group.\nfunc New(ownerAddress std.Address) *ManagedGroup {\n\tg := \u0026ManagedGroup{\n\t\towner: ownable.NewWithAddress(ownerAddress),\n\t\tbackupOwners: avl.NewTree(),\n\t\tmembers: avl.NewTree(),\n\t}\n\tg.AddBackupOwner(ownerAddress)\n\tg.AddMember(ownerAddress)\n\treturn g\n}\n\n// AddBackupOwner adds a backup owner to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddBackupOwner(addr std.Address) error {\n\tif !g.owner.CallerIsOwner() {\n\t\treturn ownable.ErrUnauthorized\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.backupOwners.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveBackupOwner removes a backup owner from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) RemoveBackupOwner(addr std.Address) error {\n\tif !g.owner.CallerIsOwner() {\n\t\treturn ownable.ErrUnauthorized\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.backupOwners.Remove(addr.String())\n\treturn nil\n}\n\n// ClaimOwnership allows a backup owner to claim ownership of the group.\n// If the caller is not a backup owner, an error is returned.\n// The caller is automatically added as a member of the group.\nfunc (g *ManagedGroup) ClaimOwnership() error {\n\tcaller := std.PrevRealm().Addr()\n\t// already owner, skip\n\tif caller == g.Owner() {\n\t\treturn nil\n\t}\n\tif !g.IsBackupOwner(caller) {\n\t\treturn ErrNotMember\n\t}\n\tg.owner = ownable.NewWithAddress(caller)\n\tg.AddMember(caller)\n\treturn nil\n}\n\n// AddMember adds a member to the group by std.Address.\n// If the caller is not the owner, an error is returned.\nfunc (g *ManagedGroup) AddMember(addr std.Address) error {\n\tif !g.owner.CallerIsOwner() {\n\t\treturn ownable.ErrUnauthorized\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tg.members.Set(addr.String(), struct{}{})\n\treturn nil\n}\n\n// RemoveMember removes a member from the group by std.Address.\n// The owner cannot be removed. If the caller is not the owner,\n// an error is returned.\nfunc (g *ManagedGroup) RemoveMember(addr std.Address) error {\n\tif !g.owner.CallerIsOwner() {\n\t\treturn ownable.ErrUnauthorized\n\t}\n\tif !addr.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\tif addr == g.Owner() {\n\t\treturn ErrCannotRemoveOwner\n\t}\n\tg.members.Remove(addr.String())\n\treturn nil\n}\n\n// MemberCount returns the number of members in the group.\nfunc (g *ManagedGroup) MemberCount() int {\n\treturn g.members.Size()\n}\n\n// BackupOwnerCount returns the number of backup owners in the group.\nfunc (g *ManagedGroup) BackupOwnerCount() int {\n\treturn g.backupOwners.Size()\n}\n\n// IsMember checks if an address is a member of the group.\nfunc (g *ManagedGroup) IsMember(addr std.Address) bool {\n\treturn g.members.Has(addr.String())\n}\n\n// IsBackupOwner checks if an address is a backup owner in the group.\nfunc (g *ManagedGroup) IsBackupOwner(addr std.Address) bool {\n\treturn g.backupOwners.Has(addr.String())\n}\n\n// Owner returns the owner of the group.\nfunc (g *ManagedGroup) Owner() std.Address {\n\treturn g.owner.Owner()\n}\n\n// BackupOwners returns a slice of all backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. If you have a large group, you may\n// want to use BackupOwnersWithOffset to iterate over backup owners in chunks.\nfunc (g *ManagedGroup) BackupOwners() []string {\n\treturn g.BackupOwnersWithOffset(0, g.BackupOwnerCount())\n}\n\n// Members returns a slice of all members in the group, using the underlying\n// avl.Tree to iterate over the members. If you have a large group, you may\n// want to use MembersWithOffset to iterate over members in chunks.\nfunc (g *ManagedGroup) Members() []string {\n\treturn g.MembersWithOffset(0, g.MemberCount())\n}\n\n// BackupOwnersWithOffset returns a slice of backup owners in the group, using the underlying\n// avl.Tree to iterate over the backup owners. The offset and count parameters allow you\n// to iterate over backup owners in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) BackupOwnersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.backupOwners, offset, count)\n}\n\n// MembersWithOffset returns a slice of members in the group, using the underlying\n// avl.Tree to iterate over the members. The offset and count parameters allow you\n// to iterate over members in chunks to support patterns such as pagination.\nfunc (g *ManagedGroup) MembersWithOffset(offset, count int) []string {\n\treturn sliceWithOffset(g.members, offset, count)\n}\n\n// sliceWithOffset is a helper function to iterate over an avl.Tree with an offset and count.\nfunc sliceWithOffset(t *avl.Tree, offset, count int) []string {\n\tvar result []string\n\tt.IterateByOffset(offset, count, func(k string, _ interface{}) bool {\n\t\tif k == \"\" {\n\t\t\treturn true\n\t\t}\n\t\tresult = append(result, k)\n\t\treturn false\n\t})\n\treturn result\n}\n"},{"name":"mgroup_test.gno","body":"package mgroup\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/testutils\"\n)\n\nfunc TestManagedGroup(t *testing.T) {\n\tt.Parallel()\n\n\tu1 := testutils.TestAddress(\"u1\")\n\tu2 := testutils.TestAddress(\"u2\")\n\tu3 := testutils.TestAddress(\"u3\")\n\n\tt.Run(\"AddBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddBackupOwner(u2)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveBackupOwner(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotBackupOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveBackupOwner(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveBackupOwner(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"ClaimOwnership\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.Owner() != u2 {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u3)\n\t\t\terr := g.ClaimOwnership()\n\t\t\tif err != ErrNotMember {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrNotMember.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"AddMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.AddMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif !g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.AddMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.AddMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"RemoveMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\t// happy path\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tg.AddMember(u2)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t\tif g.IsMember(u2) {\n\t\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t\t}\n\t\t}\n\t\t// running this twice should not error.\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u2)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"expected nil, got %v\", err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure checking for authorized caller\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u2)\n\t\t\terr := g.RemoveMember(u3)\n\t\t\tif err != ownable.ErrUnauthorized {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ownable.ErrUnauthorized.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure invalid address is caught\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\tvar badAddr std.Address\n\t\t\terr := g.RemoveMember(badAddr)\n\t\t\tif err != ErrInvalidAddress {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrInvalidAddress.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t\t// ensure owner cannot be removed\n\t\t{\n\t\t\tstd.TestSetOrigCaller(u1)\n\t\t\terr := g.RemoveMember(u1)\n\t\t\tif err != ErrCannotRemoveOwner {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", ErrCannotRemoveOwner.Error(), err.Error())\n\t\t\t}\n\t\t}\n\t})\n\tt.Run(\"MemberCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.MemberCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t\tg.AddMember(u3)\n\t\tif g.MemberCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.MemberCount())\n\t\t}\n\t\tg.RemoveMember(u2)\n\t\tif g.MemberCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.MemberCount())\n\t\t}\n\t})\n\tt.Run(\"BackupOwnerCount\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.BackupOwnerCount() != 1 {\n\t\t\tt.Errorf(\"expected 0, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.AddBackupOwner(u3)\n\t\tif g.BackupOwnerCount() != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", g.BackupOwnerCount())\n\t\t}\n\t\tg.RemoveBackupOwner(u2)\n\t\tif g.BackupOwnerCount() != 2 {\n\t\t\tt.Errorf(\"expected 1, got %v\", g.BackupOwnerCount())\n\t\t}\n\t})\n\tt.Run(\"IsMember\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsMember(u1) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u1)\n\t\t}\n\t\tif g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a member\", u2)\n\t\t}\n\t\tg.AddMember(u2)\n\t\tif !g.IsMember(u2) {\n\t\t\tt.Errorf(\"expected %v to be a member\", u2)\n\t\t}\n\t})\n\tt.Run(\"IsBackupOwner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif !g.IsBackupOwner(u1) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u1)\n\t\t}\n\t\tif g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to not be a backup owner\", u2)\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif !g.IsBackupOwner(u2) {\n\t\t\tt.Errorf(\"expected %v to be a backup owner\", u2)\n\t\t}\n\t})\n\tt.Run(\"Owner\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tg := New(u1)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tg.AddBackupOwner(u2)\n\t\tif g.Owner() != u1 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u1, g.Owner())\n\t\t}\n\t\tstd.TestSetOrigCaller(u2)\n\t\tg.ClaimOwnership()\n\t\tif g.Owner() != u2 {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, g.Owner())\n\t\t}\n\t})\n\tt.Run(\"BackupOwners\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddBackupOwner(u2)\n\t\tg.AddBackupOwner(u3)\n\t\towners := g.BackupOwners()\n\t\tif len(owners) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(owners))\n\t\t}\n\t\tif owners[0] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, owners[0])\n\t\t}\n\t\tif owners[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t\tif owners[2] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, owners[1])\n\t\t}\n\t})\n\tt.Run(\"Members\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tstd.TestSetOrigCaller(u1)\n\t\tg := New(u1)\n\t\tg.AddMember(u2)\n\t\tg.AddMember(u3)\n\t\tmembers := g.Members()\n\t\tif len(members) != 3 {\n\t\t\tt.Errorf(\"expected 2, got %v\", len(members))\n\t\t}\n\t\tif members[0] != u1.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u2, members[0])\n\t\t}\n\t\tif members[1] != u3.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t\tif members[2] != u2.String() {\n\t\t\tt.Errorf(\"expected %v, got %v\", u3, members[1])\n\t\t}\n\t})\n}\n\nfunc TestSliceWithOffset(t *testing.T) {\n\tt.Parallel()\n\ttestTable := []struct {\n\t\tname string\n\t\tslice []string\n\t\toffset int\n\t\tcount int\n\t\texpected []string\n\t\texpectedCount int\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tslice: []string{},\n\t\t\toffset: 0,\n\t\t\tcount: 0,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"single\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 0,\n\t\t\tcount: 1,\n\t\t\texpected: []string{\"a\"},\n\t\t\texpectedCount: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"single offset\",\n\t\t\tslice: []string{\"a\"},\n\t\t\toffset: 1,\n\t\t\tcount: 1,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 0,\n\t\t\tcount: 10,\n\t\t\texpected: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 10,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 5,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 10,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 11,\n\t\t\tcount: 5,\n\t\t\texpected: []string{},\n\t\t\texpectedCount: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple offset count past end\",\n\t\t\tslice: []string{\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\toffset: 5,\n\t\t\tcount: 20,\n\t\t\texpected: []string{\"f\", \"g\", \"h\", \"i\", \"j\"},\n\t\t\texpectedCount: 5,\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tt.Run(test.name, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\ttree := avl.NewTree()\n\t\t\tfor _, s := range test.slice {\n\t\t\t\ttree.Set(s, struct{}{})\n\t\t\t}\n\t\t\tslice := sliceWithOffset(tree, test.offset, test.count)\n\t\t\tif len(slice) != test.expectedCount {\n\t\t\t\tt.Errorf(\"expected %v, got %v\", test.expectedCount, len(slice))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"npI/kcLnCVdqTE9iONQG5eDBEo9bdBaZ2BgfWQwi3xdW8Lc2DvdgGOWb6iCURyTCj5sClvxDo2EH6cqrUKR/CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"microblog","path":"gno.land/p/demo/microblog","files":[{"name":"microblog.gno","body":"package microblog\n\nimport (\n\t\"errors\"\n\t\"sort\"\n\t\"std\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrNotFound = errors.New(\"not found\")\n\tStatusNotFound = \"404\"\n)\n\ntype Microblog struct {\n\tTitle string\n\tPrefix string // i.e. r/gnoland/blog:\n\tPages avl.Tree // author (string) -\u003e Page\n}\n\nfunc NewMicroblog(title string, prefix string) (m *Microblog) {\n\treturn \u0026Microblog{\n\t\tTitle: title,\n\t\tPrefix: prefix,\n\t\tPages: avl.Tree{},\n\t}\n}\n\nfunc (m *Microblog) GetPages() []*Page {\n\tvar (\n\t\tpages = make([]*Page, m.Pages.Size())\n\t\tindex = 0\n\t)\n\n\tm.Pages.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpages[index] = value.(*Page)\n\t\tindex++\n\t\treturn false\n\t})\n\n\tsort.Sort(byLastPosted(pages))\n\n\treturn pages\n}\n\nfunc (m *Microblog) NewPost(text string) error {\n\tauthor := std.GetOrigCaller()\n\t_, found := m.Pages.Get(author.String())\n\tif !found {\n\t\t// make a new page for the new author\n\t\tm.Pages.Set(author.String(), \u0026Page{\n\t\t\tAuthor: author,\n\t\t\tCreatedAt: time.Now(),\n\t\t})\n\t}\n\n\tpage, err := m.GetPage(author.String())\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn page.NewPost(text)\n}\n\nfunc (m *Microblog) GetPage(author string) (*Page, error) {\n\tsilo, found := m.Pages.Get(author)\n\tif !found {\n\t\treturn nil, ErrNotFound\n\t}\n\treturn silo.(*Page), nil\n}\n\ntype Page struct {\n\tID int\n\tAuthor std.Address\n\tCreatedAt time.Time\n\tLastPosted time.Time\n\tPosts avl.Tree // time -\u003e Post\n}\n\n// byLastPosted implements sort.Interface for []Page based on\n// the LastPosted field.\ntype byLastPosted []*Page\n\nfunc (a byLastPosted) Len() int { return len(a) }\nfunc (a byLastPosted) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\nfunc (a byLastPosted) Less(i, j int) bool { return a[i].LastPosted.After(a[j].LastPosted) }\n\nfunc (p *Page) NewPost(text string) error {\n\tnow := time.Now()\n\tp.LastPosted = now\n\tp.Posts.Set(ufmt.Sprintf(\"%s%d\", now.Format(time.RFC3339), p.Posts.Size()), \u0026Post{\n\t\tID: p.Posts.Size(),\n\t\tText: text,\n\t\tCreatedAt: now,\n\t})\n\treturn nil\n}\n\nfunc (p *Page) GetPosts() []*Post {\n\tposts := make([]*Post, p.Posts.Size())\n\ti := 0\n\tp.Posts.ReverseIterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tpostParsed := value.(*Post)\n\t\tposts[i] = postParsed\n\t\ti++\n\t\treturn false\n\t})\n\treturn posts\n}\n\n// Post lists the specific update\ntype Post struct {\n\tID int\n\tCreatedAt time.Time\n\tText string\n}\n\nfunc (p *Post) String() string {\n\treturn \"\u003e \" + strings.ReplaceAll(p.Text, \"\\n\", \"\\n\u003e\\n\u003e\") + \"\\n\u003e\\n\u003e *\" + p.CreatedAt.Format(time.RFC1123) + \"*\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jMUeLp3yW2k9J+zkNXSqKXsnZk3jhWR9LmEf/gnNzfp+E/DczHq9Qj+lZAZgVz0BohtF+QWJaIOui60TAD7XDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"microblog","path":"gno.land/r/demo/microblog","files":[{"name":"README.md","body":"# microblog realm\n\n## Getting started:\n\n(One-time) Add the microblog package:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/p/demo/microblog\" --pkgdir \"examples/gno.land/p/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\n(One-time) Add the microblog realm:\n\n```\ngnokey maketx addpkg --pkgpath \"gno.land/r/demo/microblog\" --pkgdir \"examples/gno.land/r/demo/microblog\" \\\n --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```\n\nAdd a microblog post:\n\n```\ngnokey maketx call --pkgpath \"gno.land/r/demo/microblog\" --func \"NewPost\" --args \"hello, world\" \\\n --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast --chainid dev --remote localhost:26657 \u003cYOURKEY\u003e\n```"},{"name":"microblog.gno","body":"// Microblog is a website with shortform posts from users.\n// The API is simple - \"AddPost\" takes markdown and\n// adds it to the users site.\n// The microblog location is determined by the user address\n// /r/demo/microblog:\u003cYOUR-ADDRESS\u003e\npackage microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/microblog\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar (\n\ttitle = \"gno-based microblog\"\n\tprefix = \"/r/demo/microblog:\"\n\tm *microblog.Microblog\n)\n\nfunc init() {\n\tm = microblog.NewMicroblog(title, prefix)\n}\n\nfunc renderHome() string {\n\toutput := ufmt.Sprintf(\"# %s\\n\\n\", m.Title)\n\toutput += \"# pages\\n\\n\"\n\n\tfor _, page := range m.GetPages() {\n\t\tif u := users.GetUserByAddress(page.Author); u != nil {\n\t\t\toutput += ufmt.Sprintf(\"- [%s (%s)](%s%s)\\n\", u.Name, page.Author.String(), m.Prefix, page.Author.String())\n\t\t} else {\n\t\t\toutput += ufmt.Sprintf(\"- [%s](%s%s)\\n\", page.Author.String(), m.Prefix, page.Author.String())\n\t\t}\n\t}\n\n\treturn output\n}\n\nfunc renderUser(user string) string {\n\tsilo, found := m.Pages.Get(user)\n\tif !found {\n\t\treturn \"404\" // StatusNotFound\n\t}\n\n\treturn PageToString((silo.(*microblog.Page)))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\n\tisHome := path == \"\"\n\tisUser := len(parts) == 1\n\n\tswitch {\n\tcase isHome:\n\t\treturn renderHome()\n\n\tcase isUser:\n\t\treturn renderUser(parts[0])\n\t}\n\n\treturn \"404\" // StatusNotFound\n}\n\nfunc PageToString(p *microblog.Page) string {\n\to := \"\"\n\tif u := users.GetUserByAddress(p.Author); u != nil {\n\t\to += ufmt.Sprintf(\"# [%s](/r/demo/users:%s)\\n\\n\", u, u)\n\t\to += ufmt.Sprintf(\"%s\\n\\n\", u.Profile)\n\t}\n\to += ufmt.Sprintf(\"## [%s](/r/demo/microblog:%s)\\n\\n\", p.Author, p.Author)\n\n\to += ufmt.Sprintf(\"joined %s, last updated %s\\n\\n\", p.CreatedAt.Format(\"2006-02-01\"), p.LastPosted.Format(\"2006-02-01\"))\n\to += \"## feed\\n\\n\"\n\tfor _, u := range p.GetPosts() {\n\t\to += u.String() + \"\\n\\n\"\n\t}\n\treturn o\n}\n\n// NewPost takes a single argument (post markdown) and\n// adds a post to the address of the caller.\nfunc NewPost(text string) string {\n\tif err := m.NewPost(text); err != nil {\n\t\treturn \"unable to add new post\"\n\t}\n\treturn \"added new post\"\n}\n\nfunc Register(name, profile string) string {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(caller, name, profile)\n\treturn \"OK\"\n}\n"},{"name":"microblog_test.gno","body":"package microblog\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestMicroblog(t *testing.T) {\n\tconst (\n\t\tauthor1 std.Address = testutils.TestAddress(\"author1\")\n\t\tauthor2 std.Address = testutils.TestAddress(\"author2\")\n\t)\n\n\tstd.TestSetOrigCaller(author1)\n\n\turequire.Equal(t, \"404\", Render(\"/wrongpath\"), \"rendering not giving 404\")\n\turequire.NotEqual(t, \"404\", Render(\"\"), \"rendering / should not give 404\")\n\turequire.NoError(t, m.NewPost(\"goodbyte, web2\"), \"could not create post\")\n\n\t_, err := m.GetPage(author1.String())\n\turequire.NoError(t, err, \"silo should exist\")\n\n\t_, err = m.GetPage(\"no such author\")\n\turequire.Error(t, err, \"silo should not exist\")\n\n\tstd.TestSetOrigCaller(author2)\n\n\turequire.NoError(t, m.NewPost(\"hello, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hello again, web3\"), \"could not create post\")\n\turequire.NoError(t, m.NewPost(\"hi again,\\n web4?\"), \"could not create post\")\n\n\tprintln(\"--- MICROBLOG ---\\n\\n\")\n\n\texpected := `# gno-based microblog\n\n# pages\n\n- [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n- [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n`\n\turequire.Equal(t, expected, Render(\"\"), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e goodbyte, web2\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author1.String())), \"incorrect rendering\")\n\n\texpected = `## [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)\n\njoined 2009-13-02, last updated 2009-13-02\n\n## feed\n\n\u003e hi again,\n\u003e\n\u003e web4?\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello again, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*\n\n\u003e hello, web3\n\u003e\n\u003e *Fri, 13 Feb 2009 23:31:30 UTC*`\n\n\turequire.Equal(t, expected, strings.TrimSpace(Render(author2.String())), \"incorrect rendering\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iBP1QGOqPWE3Sw/NkJFblvtE+neAYS9YI+XuCiejB2mcD59j0iqAc4kpwgi6Wqib4gkXbaposWlZGft8NtYiAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"millipede","path":"gno.land/r/demo/art/millipede","files":[{"name":"millipede.gno","body":"package millipede\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tminSize = 1\n\tdefaultSize = 20\n\tmaxSize = 100\n)\n\nfunc Draw(size int) string {\n\tif size \u003c minSize || size \u003e maxSize {\n\t\tpanic(\"invalid millipede size\")\n\t}\n\tpaddings := []string{\" \", \" \", \"\", \" \", \" \", \" \", \" \", \" \", \" \"}\n\tvar b strings.Builder\n\tb.WriteString(\" ╚⊙ ⊙╝\\n\")\n\tfor i := 0; i \u003c size; i++ {\n\t\tb.WriteString(paddings[i%9] + \"╚═(███)═╝\\n\")\n\t}\n\treturn b.String()\n}\n\nfunc Render(path string) string {\n\tsize := defaultSize\n\n\tpath = strings.TrimSpace(path)\n\tif path != \"\" {\n\t\tvar err error\n\t\tsize, err = strconv.Atoi(path)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\toutput := \"```\\n\" + Draw(size) + \"```\\n\"\n\tif size \u003e minSize {\n\t\toutput += ufmt.Sprintf(\"[%d](/r/demo/art/millipede:%d)\u003c \", size-1, size-1)\n\t}\n\tif size \u003c maxSize {\n\t\toutput += ufmt.Sprintf(\" \u003e[%d](/r/demo/art/millipede:%d)\", size+1, size+1)\n\t}\n\treturn output\n}\n\n// based on https://github.com/getmillipede/millipede-go/blob/977f046c39c35a650eac0fd30245e96b22c7803c/main.go\n"},{"name":"millipede_test.gno","body":"package millipede\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tcases := []struct {\n\t\tpath string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tpath: \"\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[19](/r/demo/art/millipede:19)\u003c \u003e[21](/r/demo/art/millipede:21)\",\n\t\t},\n\t\t{\n\t\t\tpath: \"4\",\n\t\t\texpected: \"```\" + `\n ╚⊙ ⊙╝\n ╚═(███)═╝\n ╚═(███)═╝\n╚═(███)═╝\n ╚═(███)═╝\n` + \"```\\n[3](/r/demo/art/millipede:3)\u003c \u003e[5](/r/demo/art/millipede:5)\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.path, func(t *testing.T) {\n\t\t\tgot := Render(tc.path)\n\t\t\tuassert.Equal(t, tc.expected, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2BduuOiGz1/dWqe332fJsh0v4GPZyRHzqiheB/6dibd9vIXE1GskkwsnuOaGNRs9qCbuGDIYdaf7emEoI63yBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"mirror","path":"gno.land/r/demo/mirror","files":[{"name":"doc.gno","body":"// Package mirror demonstrates that users can pass realm functions\n// as arguments to other realms.\npackage mirror\n"},{"name":"mirror.gno","body":"package mirror\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\nvar store avl.Tree\n\nfunc Register(pkgpath string, rndr func(string) string) {\n\tif store.Has(pkgpath) {\n\t\treturn\n\t}\n\n\tif rndr == nil {\n\t\treturn\n\t}\n\n\tstore.Set(pkgpath, rndr)\n}\n\nfunc Render(path string) string {\n\tif raw, ok := store.Get(path); ok {\n\t\treturn raw.(func(string) string)(\"\")\n\t}\n\n\tif store.Size() == 0 {\n\t\treturn \"None are fair.\"\n\t}\n\n\treturn \"Mirror, mirror on the wall, which realm's the fairest of them all?\"\n}\n\n// Credits to @jeronimoalbi\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gruucXE39gI8vT2bZulF7Uy0emA2L19NOt3yAR73qKSx68pJMosbWH4fDqQZ8lFmz3jIFqNode+NtpeOccdfCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"monit","path":"gno.land/r/gnoland/monit","files":[{"name":"monit.gno","body":"// Package monit links a monitoring system with the chain in both directions.\n//\n// The agent will periodically call Incr() and verify that the value is always\n// higher than the previously known one. The contract will store the last update\n// time and use it to detect whether or not the monitoring agent is functioning\n// correctly.\npackage monit\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/watchdog\"\n)\n\nvar (\n\tcounter int\n\tlastUpdate time.Time\n\tlastCaller std.Address\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n\tOwnable = ownable.New() // TODO: replace with -\u003e ownable.NewWithAddress...\n\twatchdogDuration = 5 * time.Minute\n)\n\n// Incr increments the counter and informs the watchdog that we're alive.\n// This function can be called by anyone.\nfunc Incr() int {\n\tcounter++\n\tlastUpdate = time.Now()\n\tlastCaller = std.PrevRealm().Addr()\n\twd.Alive()\n\treturn counter\n}\n\n// Reset resets the realm state.\n// This function can only be called by the admin.\nfunc Reset() {\n\tOwnable.AssertCallerIsOwner()\n\n\tcounter = 0\n\tlastCaller = std.PrevRealm().Addr()\n\tlastUpdate = time.Now()\n\twd = watchdog.Watchdog{Duration: 5 * time.Minute}\n}\n\nfunc Render(_ string) string {\n\tstatus := wd.Status()\n\treturn ufmt.Sprintf(\n\t\t\"counter=%d\\nlast update=%s\\nlast caller=%s\\nstatus=%s\",\n\t\tcounter, lastUpdate, lastCaller, status,\n\t)\n}\n"},{"name":"monit_test.gno","body":"package monit\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\t// initial state, watchdog is KO.\n\t{\n\t\texpected := `counter=0\nlast update=0001-01-01 00:00:00 +0000 UTC\nlast caller=\nstatus=KO`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t// call Incr(), watchdog is OK.\n\tIncr()\n\tIncr()\n\tIncr()\n\t{\n\t\texpected := `counter=3\nlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\nlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\nstatus=OK`\n\t\tgot := Render(\"\")\n\t\tuassert.Equal(t, expected, got)\n\t}\n\n\t/* XXX: improve tests once we've the missing std.TestSkipTime feature\n\t\t// wait 1h, watchdog is KO.\n\t\tuse std.TestSkipTime(time.Hour)\n\t\t{\n\t\t\texpected := `counter=3\n\tlast update=2009-02-13 22:31:30 +0000 UTC m=+1234564290.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=KO`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\n\t\t// call Incr(), watchdog is OK.\n\t\tIncr()\n\t\t{\n\t\t\texpected := `counter=4\n\tlast update=2009-02-13 23:31:30 +0000 UTC m=+1234567890.000000001\n\tlast caller=g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n\tstatus=OK`\n\t\t\tgot := Render(\"\")\n\t\t\tuassert.Equal(t, expected, got)\n\t\t}\n\t*/\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zsOOyrLVPVZoiVnvCFS8LPZd1Lp3p3ipVH+XBb+tnmiAXDGGVr4IYsHoqntLJF9U80vgw62tCvEVIxr6McZmAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"mux","path":"gno.land/p/demo/mux","files":[{"name":"doc.gno","body":"// Package mux provides a simple routing and rendering library for handling dynamic path-based requests in Gno contracts.\n//\n// The `mux` package aims to offer similar functionality to `http.ServeMux` in Go, but for Gno's Render() requests.\n// It allows you to define routes with dynamic parts and associate them with corresponding handler functions for rendering outputs.\n//\n// Usage:\n// 1. Create a new Router instance using `NewRouter()` to handle routing and rendering logic.\n// 2. Register routes and their associated handler functions using the `Handle(route, handler)` method.\n// 3. Implement the rendering logic within the handler functions, utilizing the `Request` and `ResponseWriter` types.\n// 4. Use the `Render(path)` method to process a given path and execute the corresponding handler function to obtain the rendered output.\n//\n// Route Patterns:\n// Routes can include dynamic parts enclosed in braces, such as \"users/{id}\" or \"hello/{name}\". The `Request` object's `GetVar(key)`\n// method allows you to extract the value of a specific variable from the path based on routing rules.\n//\n// Example:\n//\n//\trouter := mux.NewRouter()\n//\n//\t// Define a route with a variable and associated handler function\n//\trouter.HandleFunc(\"hello/{name}\", func(res *mux.ResponseWriter, req *mux.Request) {\n//\t\tname := req.GetVar(\"name\")\n//\t\tif name != \"\" {\n//\t\t\tres.Write(\"Hello, \" + name + \"!\")\n//\t\t} else {\n//\t\t\tres.Write(\"Hello, world!\")\n//\t\t}\n//\t})\n//\n//\t// Render the output for the \"/hello/Alice\" path\n//\toutput := router.Render(\"hello/Alice\")\n//\t// Output: \"Hello, Alice!\"\n//\n// Note: The `mux` package provides a basic routing and rendering mechanism for simple use cases. For more advanced routing features,\n// consider using more specialized libraries or frameworks.\npackage mux\n"},{"name":"handler.gno","body":"package mux\n\ntype Handler struct {\n\tPattern string\n\tFn HandlerFunc\n}\n\ntype HandlerFunc func(*ResponseWriter, *Request)\n\n// TODO: type ErrHandlerFunc func(*ResponseWriter, *Request) error\n// TODO: NotFoundHandler\n// TODO: AutomaticIndex\n"},{"name":"helpers.gno","body":"package mux\n\nfunc defaultNotFoundHandler(res *ResponseWriter, req *Request) {\n\tres.Write(\"404\")\n}\n"},{"name":"request.gno","body":"package mux\n\nimport \"strings\"\n\n// Request represents an incoming request.\ntype Request struct {\n\t// Path is request path name.\n\t//\n\t// Note: use RawPath to obtain a raw path with query string.\n\tPath string\n\n\t// RawPath contains a whole request path, including query string.\n\tRawPath string\n\n\t// HandlerPath is handler rule that matches a request.\n\tHandlerPath string\n}\n\n// GetVar retrieves a variable from the path based on routing rules.\nfunc (r *Request) GetVar(key string) string {\n\tvar (\n\t\thandlerParts = strings.Split(r.HandlerPath, \"/\")\n\t\treqParts = strings.Split(r.Path, \"/\")\n\t)\n\n\tfor i := 0; i \u003c len(handlerParts); i++ {\n\t\thandlerPart := handlerParts[i]\n\t\tswitch {\n\t\tcase handlerPart == \"*\":\n\t\t\t// XXX: implement a/b/*/d/e\n\t\t\tpanic(\"not implemented\")\n\t\tcase strings.HasPrefix(handlerPart, \"{\") \u0026\u0026 strings.HasSuffix(handlerPart, \"}\"):\n\t\t\tparameter := handlerPart[1 : len(handlerPart)-1]\n\t\t\tif parameter == key {\n\t\t\t\treturn reqParts[i]\n\t\t\t}\n\t\tdefault:\n\t\t\t// continue\n\t\t}\n\t}\n\n\treturn \"\"\n}\n"},{"name":"request_test.gno","body":"package mux\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\nfunc TestRequest_GetVar(t *testing.T) {\n\tcases := []struct {\n\t\thandlerPath string\n\t\treqPath string\n\t\tgetVarKey string\n\t\texpectedOutput string\n\t}{\n\t\t{\"users/{id}\", \"users/123\", \"id\", \"123\"},\n\t\t{\"users/123\", \"users/123\", \"id\", \"\"},\n\t\t{\"users/{id}\", \"users/123\", \"nonexistent\", \"\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"b\", \"42\"},\n\t\t{\"a/{b}/c/{d}\", \"a/42/c/1337\", \"d\", \"1337\"},\n\t\t{\"{a}\", \"foo\", \"a\", \"foo\"},\n\t\t// TODO: wildcards: a/*/c\n\t\t// TODO: multiple patterns per slashes: a/{b}-{c}/d\n\t}\n\n\tfor _, tt := range cases {\n\t\tname := fmt.Sprintf(\"%s-%s\", tt.handlerPath, tt.reqPath)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\treq := \u0026Request{\n\t\t\t\tHandlerPath: tt.handlerPath,\n\t\t\t\tPath: tt.reqPath,\n\t\t\t}\n\n\t\t\toutput := req.GetVar(tt.getVarKey)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected '%q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"response.gno","body":"package mux\n\nimport \"strings\"\n\n// ResponseWriter represents the response writer.\ntype ResponseWriter struct {\n\toutput strings.Builder\n}\n\n// Write appends data to the response output.\nfunc (rw *ResponseWriter) Write(data string) {\n\trw.output.WriteString(data)\n}\n\n// Output returns the final response output.\nfunc (rw *ResponseWriter) Output() string {\n\treturn rw.output.String()\n}\n\n// TODO: func (rw *ResponseWriter) Header()...\n"},{"name":"router.gno","body":"package mux\n\nimport \"strings\"\n\n// Router handles the routing and rendering logic.\ntype Router struct {\n\troutes []Handler\n\tNotFoundHandler HandlerFunc\n}\n\n// NewRouter creates a new Router instance.\nfunc NewRouter() *Router {\n\treturn \u0026Router{\n\t\troutes: make([]Handler, 0),\n\t\tNotFoundHandler: defaultNotFoundHandler,\n\t}\n}\n\n// Render renders the output for the given path using the registered route handler.\nfunc (r *Router) Render(reqPath string) string {\n\tclearPath := stripQueryString(reqPath)\n\treqParts := strings.Split(clearPath, \"/\")\n\n\tfor _, route := range r.routes {\n\t\tpatParts := strings.Split(route.Pattern, \"/\")\n\n\t\tif len(patParts) != len(reqParts) {\n\t\t\tcontinue\n\t\t}\n\n\t\tmatch := true\n\t\tfor i := 0; i \u003c len(patParts); i++ {\n\t\t\tpatPart := patParts[i]\n\t\t\treqPart := reqParts[i]\n\n\t\t\tif patPart == \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.HasPrefix(patPart, \"{\") \u0026\u0026 strings.HasSuffix(patPart, \"}\") {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif patPart != reqPart {\n\t\t\t\tmatch = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif match {\n\t\t\treq := \u0026Request{\n\t\t\t\tPath: clearPath,\n\t\t\t\tRawPath: reqPath,\n\t\t\t\tHandlerPath: route.Pattern,\n\t\t\t}\n\t\t\tres := \u0026ResponseWriter{}\n\t\t\troute.Fn(res, req)\n\t\t\treturn res.Output()\n\t\t}\n\t}\n\n\t// not found\n\treq := \u0026Request{Path: reqPath}\n\tres := \u0026ResponseWriter{}\n\tr.NotFoundHandler(res, req)\n\treturn res.Output()\n}\n\n// Handle registers a route and its handler function.\nfunc (r *Router) HandleFunc(pattern string, fn HandlerFunc) {\n\troute := Handler{Pattern: pattern, Fn: fn}\n\tr.routes = append(r.routes, route)\n}\n\nfunc stripQueryString(reqPath string) string {\n\ti := strings.Index(reqPath, \"?\")\n\tif i == -1 {\n\t\treturn reqPath\n\t}\n\n\treturn reqPath[:i]\n}\n"},{"name":"router_test.gno","body":"package mux\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRouter_Render(t *testing.T) {\n\tcases := []struct {\n\t\tlabel string\n\t\tpath string\n\t\texpectedOutput string\n\t\tsetupHandler func(t *testing.T, r *Router)\n\t}{\n\t\t{\n\t\t\tlabel: \"route with named parameter\",\n\t\t\tpath: \"hello/Alice\",\n\t\t\texpectedOutput: \"Hello, Alice!\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"hello/{name}\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tname := req.GetVar(\"name\")\n\t\t\t\t\tuassert.Equal(t, \"Alice\", name)\n\t\t\t\t\trw.Write(\"Hello, \" + name + \"!\")\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tlabel: \"static route\",\n\t\t\tpath: \"hi\",\n\t\t\texpectedOutput: \"Hi, earth!\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"hi\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tuassert.Equal(t, req.Path, \"hi\")\n\t\t\t\t\trw.Write(\"Hi, earth!\")\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tlabel: \"route with named parameter and query string\",\n\t\t\tpath: \"hello/foo/bar?foo=bar\u0026baz\",\n\t\t\texpectedOutput: \"foo bar\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"hello/{key}/{val}\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tkey := req.GetVar(\"key\")\n\t\t\t\t\tval := req.GetVar(\"val\")\n\t\t\t\t\tuassert.Equal(t, \"foo\", key)\n\t\t\t\t\tuassert.Equal(t, \"bar\", val)\n\t\t\t\t\tuassert.Equal(t, \"hello/foo/bar?foo=bar\u0026baz\", req.RawPath)\n\t\t\t\t\tuassert.Equal(t, \"hello/foo/bar\", req.Path)\n\t\t\t\t\trw.Write(key + \" \" + val)\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// TODO: finalize how router should behave with double slash in path.\n\t\t\tlabel: \"double slash in nested route\",\n\t\t\tpath: \"a/foo//\",\n\t\t\texpectedOutput: \"test foo\",\n\t\t\tsetupHandler: func(t *testing.T, r *Router) {\n\t\t\t\tr.HandleFunc(\"a/{key}\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\t// Assert not called\n\t\t\t\t\tuassert.False(t, true, \"unexpected handler called\")\n\t\t\t\t})\n\n\t\t\t\tr.HandleFunc(\"a/{key}/{val}/\", func(rw *ResponseWriter, req *Request) {\n\t\t\t\t\tkey := req.GetVar(\"key\")\n\t\t\t\t\tval := req.GetVar(\"val\")\n\t\t\t\t\tuassert.Equal(t, key, \"foo\")\n\t\t\t\t\tuassert.Empty(t, val)\n\t\t\t\t\trw.Write(\"test \" + key)\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\n\t\t// TODO: {\"hello\", \"Hello, world!\"},\n\t\t// TODO: hello/, /hello, hello//Alice, hello/Alice/, hello/Alice/Bob, etc\n\t}\n\tfor _, tt := range cases {\n\t\tt.Run(tt.label, func(t *testing.T) {\n\t\t\trouter := NewRouter()\n\t\t\ttt.setupHandler(t, router)\n\t\t\toutput := router.Render(tt.path)\n\t\t\tif output != tt.expectedOutput {\n\t\t\t\tt.Errorf(\"Expected output %q, but got %q\", tt.expectedOutput, output)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMaM6DKC75E4iGMYmStYutcneWCAdQ6cg34cPot8Xlys9H1/cCPkC8wnrkg3h94lyA9nQEDzfclzDx6xg4MVCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"needle","path":"gno.land/p/n2p5/haystack/needle","files":[{"name":"needle.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"errors\"\n)\n\nconst (\n\t// HashLength is the length in bytes of the hash prefix in any message\n\tHashLength = 32\n\t// PayloadLength is the length of the remaining bytes of the message.\n\tPayloadLength = 160\n\t// NeedleLength is the number of bytes required for a valid needle.\n\tNeedleLength = HashLength + PayloadLength\n)\n\n// Needle is a container for a 160 byte payload\n// and a 32 byte sha256 hash of the payload.\ntype Needle struct {\n\thash [HashLength]byte\n\tpayload [PayloadLength]byte\n}\n\nvar (\n\t// ErrorInvalidHash is an error for in invalid hash\n\tErrorInvalidHash = errors.New(\"invalid hash\")\n\t// ErrorByteSliceLength is an error for an invalid byte slice length passed in to New or FromBytes\n\tErrorByteSliceLength = errors.New(\"invalid byte slice length\")\n)\n\n// New creates a Needle used for submitting a payload to a Haystack sever. It takes a Payload\n// byte slice that is 160 bytes in length and returns a reference to a\n// Needle and an error. The purpose of this function is to make it\n// easy to create a new Needle from a payload. This function handles creating a sha256\n// hash of the payload, which is used by the Needle to submit to a haystack server.\nfunc New(p []byte) (*Needle, error) {\n\tif len(p) != PayloadLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tsum := sha256.Sum256(p)\n\tcopy(n.hash[:], sum[:])\n\tcopy(n.payload[:], p)\n\treturn \u0026n, nil\n}\n\n// FromBytes is intended convert raw bytes (from UDP or storage) into a Needle.\n// It takes a byte slice and expects it to be exactly the length of NeedleLength.\n// The byte slice should consist of the first 32 bytes being the sha256 hash of the\n// payload and the payload bytes. This function verifies the length of the byte slice,\n// copies the bytes into a private [192]byte array, and validates the Needle. It returns\n// a reference to a Needle and an error.\nfunc FromBytes(b []byte) (*Needle, error) {\n\tif len(b) != NeedleLength {\n\t\treturn nil, ErrorByteSliceLength\n\t}\n\tvar n Needle\n\tcopy(n.hash[:], b[:HashLength])\n\tcopy(n.payload[:], b[HashLength:])\n\tif err := n.validate(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026n, nil\n}\n\n// Hash returns a copy of the bytes of the sha256 256 hash of the Needle payload.\nfunc (n *Needle) Hash() []byte {\n\treturn n.Bytes()[:HashLength]\n}\n\n// Payload returns a byte slice of the Needle payload\nfunc (n *Needle) Payload() []byte {\n\treturn n.Bytes()[HashLength:]\n}\n\n// Bytes returns a byte slice of the entire 192 byte hash + payload\nfunc (n *Needle) Bytes() []byte {\n\tb := make([]byte, NeedleLength)\n\tcopy(b, n.hash[:])\n\tcopy(b[HashLength:], n.payload[:])\n\treturn b\n}\n\n// validate checks that a Needle has a valid hash, it returns either nil or an error.\nfunc (n *Needle) validate() error {\n\tif hash := sha256.Sum256(n.Payload()); !bytes.Equal(n.Hash(), hash[:]) {\n\t\treturn ErrorInvalidHash\n\t}\n\treturn nil\n}\n"},{"name":"needle_test.gno","body":"package needle\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"testing\"\n)\n\nfunc TestNeedle(t *testing.T) {\n\tt.Parallel()\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tb := n.Bytes()\n\t\tb[0], b[1], b[2], b[3] = 0, 0, 0, 0\n\t\tif bytes.Equal(n.Bytes(), b) {\n\t\t\tt.Error(\"mutating Bytes() changed needle bytes\")\n\t\t}\n\t})\n\tt.Run(\"Payload\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\tpayload := n.Payload()\n\t\tif !bytes.Equal(p, payload) {\n\t\t\tt.Error(\"payload imported by New does not match needle.Payload()\")\n\t\t}\n\t\tpayload[0] = 0\n\t\tpl := n.Payload()\n\t\tif bytes.Equal(pl, payload) {\n\t\t\tt.Error(\"mutating Payload() changed needle payload\")\n\t\t}\n\t})\n\tt.Run(\"Hash\", func(t *testing.T) {\n\t\tt.Parallel()\n\t\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\t\tn, _ := New(p)\n\t\thash := n.Hash()\n\t\th := sha256.Sum256(p)\n\t\tif !bytes.Equal(h[:], hash) {\n\t\t\tt.Error(\"exported hash is invalid\")\n\t\t}\n\t\thash[0] = 0\n\t\th2 := n.Hash()\n\t\tif bytes.Equal(h2, hash) {\n\t\t\tt.Error(\"mutating Hash() changed needle hash\")\n\t\t}\n\t})\n}\n\nfunc TestNew(t *testing.T) {\n\tt.Parallel()\n\n\tp, _ := hex.DecodeString(\"40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\texpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\tpayload []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\tpayload: p,\n\t\t\texpected: expected,\n\t\t\thasError: false,\n\t\t\tdescription: \"expected payload\",\n\t\t},\n\t\t{\n\t\t\tpayload: p[:PayloadLength-1],\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too small)\",\n\t\t},\n\t\t{\n\t\t\tpayload: append(p, byte(1)),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"payload invalid length (too large)\",\n\t\t},\n\t}\n\n\tfor _, test := range testTable {\n\t\tn, err := New(test.payload)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n\nfunc TestFromBytes(t *testing.T) {\n\tt.Parallel()\n\n\tvalidRaw, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tvalidExpected, _ := hex.DecodeString(\"f1b462c84a0c51dad44293951f0b084a8871b3700ac1b9fc7a53a20bc0ba0fed40e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\tinvalidHash, _ := hex.DecodeString(\"182e0ca0d2fb1da76da6caf36a9d0d2838655632e85891216dc8b545d8f1410940e4350b03d8b0c9e340321210b259d9a20b19632929b4a219254a4269c11f820c75168c6a91d309f4b134a7d715a5ac408991e1cf9415995053cf8a4e185dae22a06617ac51ebf7d232bc49e567f90be4db815c2b88ca0d9a4ef7a5119c0e592c88dfb96706e6510fb8a657c0f70f6695ea310d24786e6d980e9b33cf2665342b965b2391f6bb982c4c5f6058b9cba58038d32452e07cdee9420a8bd7f514e1\")\n\n\ttestTable := []struct {\n\t\trawBytes []byte\n\t\texpected []byte\n\t\thasError bool\n\t\tdescription string\n\t}{\n\t\t{\n\t\t\trawBytes: validRaw,\n\t\t\texpected: validExpected,\n\t\t\thasError: false,\n\t\t\tdescription: \"valid raw bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"empty bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength-1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, one less than expected\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, 0),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too few bytes, no bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: make([]byte, NeedleLength+1),\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"too many bytes\",\n\t\t},\n\t\t{\n\t\t\trawBytes: invalidHash,\n\t\t\texpected: nil,\n\t\t\thasError: true,\n\t\t\tdescription: \"invalid hash\",\n\t\t},\n\t}\n\tfor _, test := range testTable {\n\t\tn, err := FromBytes(test.rawBytes)\n\t\tif err != nil {\n\t\t\tif !test.hasError {\n\t\t\t\tt.Errorf(\"test: %v had error: %v\", test.description, err)\n\t\t\t}\n\t\t} else if !bytes.Equal(n.Bytes(), test.expected) {\n\t\t\tt.Errorf(\"%v, bytes not equal\\n%x\\n%x\", test.description, n.Bytes(), test.expected)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DV682zKsfbI89YrNqPXuFlKIhAzh6Yk4gc3tbPcy51AMzdiIUsXxqdOoC/jWn/7BOLCSvaj8YndRQ/rvtQtkAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"nestedpkg","path":"gno.land/p/demo/nestedpkg","files":[{"name":"nestedpkg.gno","body":"// Package nestedpkg provides helpers for package-path based access control.\n// It is useful for upgrade patterns relying on namespaces.\npackage nestedpkg\n\n// To test this from a realm and have std.CurrentRealm/PrevRealm work correctly,\n// this file is tested from gno.land/r/demo/tests/nestedpkg_test.gno\n// XXX: move test to ths directory once we support testing a package and\n// specifying values for both PrevRealm and CurrentRealm.\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\n// IsCallerSubPath checks if the caller realm is located in a subfolder of the current realm.\nfunc IsCallerSubPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(prev, cur)\n}\n\n// AssertCallerIsSubPath panics if IsCallerSubPath returns false.\nfunc AssertCallerIsSubPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(prev, cur) {\n\t\tpanic(\"call restricted to nested packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsCallerParentPath checks if the caller realm is located in a parent location of the current realm.\nfunc IsCallerParentPath() bool {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\treturn strings.HasPrefix(cur, prev)\n}\n\n// AssertCallerIsParentPath panics if IsCallerParentPath returns false.\nfunc AssertCallerIsParentPath() {\n\tvar (\n\t\tcur = std.CurrentRealm().PkgPath() + \"/\"\n\t\tprev = std.PrevRealm().PkgPath() + \"/\"\n\t)\n\tif !strings.HasPrefix(cur, prev) {\n\t\tpanic(\"call restricted to parent packages. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// IsSameNamespace checks if the caller realm and the current realm are in the same namespace.\nfunc IsSameNamespace() bool {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\treturn cur == prev\n}\n\n// AssertIsSameNamespace panics if IsSameNamespace returns false.\nfunc AssertIsSameNamespace() {\n\tvar (\n\t\tcur = nsFromPath(std.CurrentRealm().PkgPath()) + \"/\"\n\t\tprev = nsFromPath(std.PrevRealm().PkgPath()) + \"/\"\n\t)\n\tif cur != prev {\n\t\tpanic(\"call restricted to packages from the same namespace. current realm is \" + cur + \", previous realm is \" + prev)\n\t}\n}\n\n// nsFromPath extracts the namespace from a package path.\nfunc nsFromPath(pkgpath string) string {\n\tparts := strings.Split(pkgpath, \"/\")\n\n\t// Specifically for gno.land, potential paths are in the form of DOMAIN/r/NAMESPACE/...\n\t// XXX: Consider extra checks.\n\t// XXX: Support non gno.land domains, where p/ and r/ won't be enforced.\n\tif len(parts) \u003e= 3 {\n\t\treturn parts[2]\n\t}\n\treturn \"\"\n}\n\n// XXX: Consider adding IsCallerDirectlySubPath\n// XXX: Consider adding IsCallerDirectlyParentPath\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NVC4eFqchatcvpcXWbYVKjQgzyfy/WdZzYBkEh5LKe5SEp4VgLQwUTOLpsvOG6Ua4VQBkPfJdGYpN9k555hyBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"nft","path":"gno.land/r/demo/nft","files":[{"name":"README.md","body":"NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n- [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n- [gno.land/r/demo/nft/nft.go](https://gno.land/r/demo/nft/nft.go)\n- [zrealm_nft3.go test](https://github.com/gnolang/gno/blob/master/tests/files2/zrealm_nft3.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:gnolang/1)).\n"},{"name":"nft.gno","body":"package nft\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/grc/grc721\"\n)\n\ntype token struct {\n\tgrc721.IGRC721 // implements the GRC721 interface\n\n\ttokenCounter int\n\ttokens avl.Tree // grc721.TokenID -\u003e *NFToken{}\n\toperators avl.Tree // owner std.Address -\u003e operator std.Address\n}\n\ntype NFToken struct {\n\towner std.Address\n\tapproved std.Address\n\ttokenID grc721.TokenID\n\tdata string\n}\n\nvar gToken = \u0026token{}\n\nfunc GetToken() *token { return gToken }\n\nfunc (grc *token) nextTokenID() grc721.TokenID {\n\tgrc.tokenCounter++\n\ts := strconv.Itoa(grc.tokenCounter)\n\treturn grc721.TokenID(s)\n}\n\nfunc (grc *token) getToken(tid grc721.TokenID) (*NFToken, bool) {\n\ttoken, ok := grc.tokens.Get(string(tid))\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn token.(*NFToken), true\n}\n\nfunc (grc *token) Mint(to std.Address, data string) grc721.TokenID {\n\ttid := grc.nextTokenID()\n\tgrc.tokens.Set(string(tid), \u0026NFToken{\n\t\towner: to,\n\t\ttokenID: tid,\n\t\tdata: data,\n\t})\n\treturn tid\n}\n\nfunc (grc *token) BalanceOf(owner std.Address) (count int64) {\n\tpanic(\"not yet implemented\")\n}\n\nfunc (grc *token) OwnerOf(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.owner\n}\n\n// XXX not fully implemented yet.\nfunc (grc *token) SafeTransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tgrc.TransferFrom(from, to, tid)\n\t// When transfer is complete, this function checks if `_to` is a smart\n\t// contract (code size \u003e 0). If so, it calls `onERC721Received` on\n\t// `_to` and throws if the return value is not\n\t// `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n\t// XXX ensure \"to\" is a realm with onERC721Received() signature.\n}\n\nfunc (grc *token) TransferFrom(from, to std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner, an authorized\n\t// operator, or the approved address for this NFT.\n\tif caller != token.owner \u0026\u0026 caller != token.approved {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Throws if `_from` is not the current owner.\n\tif from != token.owner {\n\t\tpanic(\"from is not the current owner\")\n\t}\n\t// Throws if `_to` is the zero address.\n\tif to == \"\" {\n\t\tpanic(\"to cannot be empty\")\n\t}\n\t// Good.\n\ttoken.owner = to\n}\n\nfunc (grc *token) Approve(approved std.Address, tid grc721.TokenID) {\n\tcaller := std.GetCallerAt(2)\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\t// Throws unless `msg.sender` is the current owner,\n\t// or an authorized operator.\n\tif caller != token.owner {\n\t\toperator, ok := grc.operators.Get(token.owner.String())\n\t\tif !ok || caller != operator.(std.Address) {\n\t\t\tpanic(\"unauthorized\")\n\t\t}\n\t}\n\t// Good.\n\ttoken.approved = approved\n}\n\n// XXX make it work for set of operators.\nfunc (grc *token) SetApprovalForAll(operator std.Address, approved bool) {\n\tcaller := std.GetCallerAt(2)\n\tgrc.operators.Set(caller.String(), operator)\n}\n\nfunc (grc *token) GetApproved(tid grc721.TokenID) std.Address {\n\ttoken, ok := grc.getToken(tid)\n\t// Throws if `_tokenId` is not a valid NFT.\n\tif !ok {\n\t\tpanic(\"token does not exist\")\n\t}\n\treturn token.approved\n}\n\n// XXX make it work for set of operators\nfunc (grc *token) IsApprovedForAll(owner, operator std.Address) bool {\n\toperator2, ok := grc.operators.Get(owner.String())\n\tif !ok {\n\t\treturn false\n\t}\n\treturn operator == operator2.(std.Address)\n}\n"},{"name":"z_0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n}\n\n// Output:\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n\n// Realm:\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft\"]\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:11]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"std.Address\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/grc/grc721.TokenID\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"NFT#1\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:10]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"564a9e78be869bd258fc3c9ad56f5a75ed68818f\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:11\"\n// }\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:9]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"16\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.StringValue\",\n// \"value\": \"1\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/r/demo/nft.NFToken\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b53ffc464e1b5655d19b9d5277f3491717c24aca\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:10\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"64\"\n// }\n// },\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"RefCount\": \"1\"\n// }\n// }\n// c[67c479d3d51d4056b2f4111d5352912a00be311e:8]={\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\",\n// \"ModTime\": \"0\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"RefCount\": \"1\"\n// },\n// \"Value\": {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b1d928b3716b147c92730e8d234162bec2f0f2fc\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:9\"\n// }\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:5]={\n// \"Fields\": [\n// {\n// \"T\": {\n// \"@type\": \"/gno.PointerType\",\n// \"Elt\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Node\"\n// }\n// },\n// \"V\": {\n// \"@type\": \"/gno.PointerValue\",\n// \"Base\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"b229b824842ec3e7f2341e33d0fa0ca77af2f480\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:8\"\n// },\n// \"Index\": \"0\",\n// \"TV\": null\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"RefCount\": \"1\"\n// }\n// }\n// u[67c479d3d51d4056b2f4111d5352912a00be311e:4]={\n// \"Fields\": [\n// {},\n// {\n// \"N\": \"AQAAAAAAAAA=\",\n// \"T\": {\n// \"@type\": \"/gno.PrimitiveType\",\n// \"value\": \"32\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"1e0b9dddb406b4f50500a022266a4cb8a4ea38c6\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:5\"\n// }\n// },\n// {\n// \"T\": {\n// \"@type\": \"/gno.RefType\",\n// \"ID\": \"gno.land/p/demo/avl.Tree\"\n// },\n// \"V\": {\n// \"@type\": \"/gno.RefValue\",\n// \"Hash\": \"05ab6746ea84b55ca133806af215d99a1c4b045e\",\n// \"ObjectID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:6\"\n// }\n// }\n// ],\n// \"ObjectInfo\": {\n// \"ID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:4\",\n// \"ModTime\": \"7\",\n// \"OwnerID\": \"67c479d3d51d4056b2f4111d5352912a00be311e:3\",\n// \"RefCount\": \"1\"\n// }\n// }\n// switchrealm[\"gno.land/r/demo/nft\"]\n// switchrealm[\"gno.land/r/demo/nft_test\"]\n"},{"name":"z_1_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(addr1, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"},{"name":"z_2_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\t// addr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.TransferFrom(caller, addr1, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Output:\n// g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// g1v9jxgu33ta047h6lta047h6lta047h6l43dqc5\n"},{"name":"z_4_filetest.gno","body":"// PKGPATH: gno.land/r/demo/nft_test\npackage nft_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/nft\"\n)\n\nfunc main() {\n\tcaller := std.GetCallerAt(1)\n\taddr1 := testutils.TestAddress(\"addr1\")\n\taddr2 := testutils.TestAddress(\"addr2\")\n\tgrc721 := nft.GetToken()\n\ttid := grc721.Mint(caller, \"NFT#1\")\n\tprintln(grc721.OwnerOf(tid))\n\tprintln(addr1)\n\tgrc721.Approve(caller, tid) // approve self.\n\tgrc721.TransferFrom(caller, addr1, tid)\n\tgrc721.Approve(\"\", tid) // approve addr1.\n\tgrc721.TransferFrom(addr1, addr2, tid)\n}\n\n// Error:\n// unauthorized\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7kSERKjSEUWY3d2TemSjDnn6bkU6Rc2IafF8eHjPgJNGwVgww/pbZorC7y+LrZiwpUux2oy2vrPgOWJYW8PJCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ownable","path":"gno.land/p/demo/ownable","files":[{"name":"errors.gno","body":"package ownable\n\nimport \"errors\"\n\nvar (\n\tErrUnauthorized = errors.New(\"ownable: caller is not owner\")\n\tErrInvalidAddress = errors.New(\"ownable: new owner address is invalid\")\n)\n"},{"name":"ownable.gno","body":"package ownable\n\nimport \"std\"\n\nconst OwnershipTransferEvent = \"OwnershipTransfer\"\n\n// Ownable is meant to be used as a top-level object to make your contract ownable OR\n// being embedded in a Gno object to manage per-object ownership.\n// Ownable is safe to export as a top-level object\ntype Ownable struct {\n\towner std.Address\n}\n\nfunc New() *Ownable {\n\treturn \u0026Ownable{\n\t\towner: std.PrevRealm().Addr(),\n\t}\n}\n\nfunc NewWithAddress(addr std.Address) *Ownable {\n\treturn \u0026Ownable{\n\t\towner: addr,\n\t}\n}\n\n// TransferOwnership transfers ownership of the Ownable struct to a new address\nfunc (o *Ownable) TransferOwnership(newOwner std.Address) error {\n\tif !o.CallerIsOwner() {\n\t\treturn ErrUnauthorized\n\t}\n\n\tif !newOwner.IsValid() {\n\t\treturn ErrInvalidAddress\n\t}\n\n\tprevOwner := o.owner\n\to.owner = newOwner\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", newOwner.String(),\n\t)\n\n\treturn nil\n}\n\n// DropOwnership removes the owner, effectively disabling any owner-related actions\n// Top-level usage: disables all only-owner actions/functions,\n// Embedded usage: behaves like a burn functionality, removing the owner from the struct\nfunc (o *Ownable) DropOwnership() error {\n\tif !o.CallerIsOwner() {\n\t\treturn ErrUnauthorized\n\t}\n\n\tprevOwner := o.owner\n\to.owner = \"\"\n\n\tstd.Emit(\n\t\tOwnershipTransferEvent,\n\t\t\"from\", prevOwner.String(),\n\t\t\"to\", \"\",\n\t)\n\n\treturn nil\n}\n\n// Owner returns the owner address from Ownable\nfunc (o Ownable) Owner() std.Address {\n\treturn o.owner\n}\n\n// CallerIsOwner checks if the caller of the function is the Realm's owner\nfunc (o Ownable) CallerIsOwner() bool {\n\treturn std.PrevRealm().Addr() == o.owner\n}\n\n// AssertCallerIsOwner panics if the caller is not the owner\nfunc (o Ownable) AssertCallerIsOwner() {\n\tif std.PrevRealm().Addr() != o.owner {\n\t\tpanic(ErrUnauthorized)\n\t}\n}\n"},{"name":"ownable_test.gno","body":"package ownable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\tgot := o.Owner()\n\tuassert.Equal(t, got, alice)\n}\n\nfunc TestNewWithAddress(t *testing.T) {\n\to := NewWithAddress(alice)\n\n\tgot := o.Owner()\n\tuassert.Equal(t, got, alice)\n}\n\nfunc TestTransferOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(bob)\n\turequire.NoError(t, err)\n\n\tgot := o.Owner()\n\n\tuassert.Equal(t, got, bob)\n}\n\nfunc TestCallerIsOwner(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\tunauthorizedCaller := bob\n\n\tstd.TestSetRealm(std.NewUserRealm(unauthorizedCaller))\n\tstd.TestSetOrigCaller(unauthorizedCaller) // TODO(bug): should not be needed\n\n\tuassert.False(t, o.CallerIsOwner())\n}\n\nfunc TestDropOwnership(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.DropOwnership()\n\turequire.NoError(t, err, \"DropOwnership failed\")\n\n\towner := o.Owner()\n\tuassert.Empty(t, owner, \"owner should be empty\")\n}\n\n// Errors\n\nfunc TestErrUnauthorized(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\tstd.TestSetOrigCaller(alice) // TODO(bug): should not be needed\n\n\to := New()\n\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\tstd.TestSetOrigCaller(bob) // TODO(bug): should not be needed\n\n\tuassert.ErrorContains(t, o.TransferOwnership(alice), ErrUnauthorized.Error())\n\tuassert.ErrorContains(t, o.DropOwnership(), ErrUnauthorized.Error())\n}\n\nfunc TestErrInvalidAddress(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\to := New()\n\n\terr := o.TransferOwnership(\"\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n\n\terr = o.TransferOwnership(\"10000000001000000000100000000010000000001000000000\")\n\tuassert.ErrorContains(t, err, ErrInvalidAddress.Error())\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DeXA+fO0wTdJN7Ec81KhaYaodjNzy8Pv+QaSaqKvpyaT9ku/LIRyf93noMhXASZsDVVBqFsRycDJu+moJeW5AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"p_crossrealm","path":"gno.land/p/demo/tests/p_crossrealm","files":[{"name":"p_crossrealm.gno","body":"package p_crossrealm\n\ntype Stringer interface {\n\tString() string\n}\n\ntype Container struct {\n\tA int\n\tB Stringer\n}\n\nfunc (c *Container) Touch() *Container {\n\tc.A += 1\n\treturn c\n}\n\nfunc (c *Container) Print() {\n\tprintln(\"A:\", c.A)\n\tif c.B == nil {\n\t\tprintln(\"B: undefined\")\n\t} else {\n\t\tprintln(\"B:\", c.B.String())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6RnQNwpNaTz9Ty1IMh8EGyCdiJBpIk9c2F0FEi7RDJAclJhZJzTC7nFiLinv1Vemkc6oFBkhJYJkzjrFkXD2Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"pager","path":"gno.land/p/demo/avl/pager","files":[{"name":"pager.gno","body":"package pager\n\nimport (\n\t\"math\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Pager is a struct that holds the AVL tree and pagination parameters.\ntype Pager struct {\n\tTree avl.ITree\n\tPageQueryParam string\n\tSizeQueryParam string\n\tDefaultPageSize int\n\tReversed bool\n}\n\n// Page represents a single page of results.\ntype Page struct {\n\tItems []Item\n\tPageNumber int\n\tPageSize int\n\tTotalItems int\n\tTotalPages int\n\tHasPrev bool\n\tHasNext bool\n\tPager *Pager // Reference to the parent Pager\n}\n\n// Item represents a key-value pair in the AVL tree.\ntype Item struct {\n\tKey string\n\tValue interface{}\n}\n\n// NewPager creates a new Pager with default values.\nfunc NewPager(tree avl.ITree, defaultPageSize int, reversed bool) *Pager {\n\treturn \u0026Pager{\n\t\tTree: tree,\n\t\tPageQueryParam: \"page\",\n\t\tSizeQueryParam: \"size\",\n\t\tDefaultPageSize: defaultPageSize,\n\t\tReversed: reversed,\n\t}\n}\n\n// GetPage retrieves a page of results from the AVL tree.\nfunc (p *Pager) GetPage(pageNumber int) *Page {\n\treturn p.GetPageWithSize(pageNumber, p.DefaultPageSize)\n}\n\nfunc (p *Pager) GetPageWithSize(pageNumber, pageSize int) *Page {\n\ttotalItems := p.Tree.Size()\n\ttotalPages := int(math.Ceil(float64(totalItems) / float64(pageSize)))\n\n\tpage := \u0026Page{\n\t\tTotalItems: totalItems,\n\t\tTotalPages: totalPages,\n\t\tPageSize: pageSize,\n\t\tPager: p,\n\t}\n\n\t// pages without content\n\tif pageSize \u003c 1 {\n\t\treturn page\n\t}\n\n\t// page number provided is not available\n\tif pageNumber \u003c 1 {\n\t\tpage.HasNext = totalPages \u003e 0\n\t\treturn page\n\t}\n\n\t// page number provided is outside the range of total pages\n\tif pageNumber \u003e totalPages {\n\t\tpage.PageNumber = pageNumber\n\t\tpage.HasPrev = pageNumber \u003e 0\n\t\treturn page\n\t}\n\n\tstartIndex := (pageNumber - 1) * pageSize\n\tendIndex := startIndex + pageSize\n\tif endIndex \u003e totalItems {\n\t\tendIndex = totalItems\n\t}\n\n\titems := []Item{}\n\n\tif p.Reversed {\n\t\tp.Tree.ReverseIterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\t\titems = append(items, Item{Key: key, Value: value})\n\t\t\treturn false\n\t\t})\n\t} else {\n\t\tp.Tree.IterateByOffset(startIndex, endIndex-startIndex, func(key string, value interface{}) bool {\n\t\t\titems = append(items, Item{Key: key, Value: value})\n\t\t\treturn false\n\t\t})\n\t}\n\n\tpage.Items = items\n\tpage.PageNumber = pageNumber\n\tpage.HasPrev = pageNumber \u003e 1\n\tpage.HasNext = pageNumber \u003c totalPages\n\treturn page\n}\n\nfunc (p *Pager) MustGetPageByPath(rawURL string) *Page {\n\tpage, err := p.GetPageByPath(rawURL)\n\tif err != nil {\n\t\tpanic(\"invalid path\")\n\t}\n\treturn page\n}\n\n// GetPageByPath retrieves a page of results based on the query parameters in the URL path.\nfunc (p *Pager) GetPageByPath(rawURL string) (*Page, error) {\n\tpageNumber, pageSize, err := p.ParseQuery(rawURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p.GetPageWithSize(pageNumber, pageSize), nil\n}\n\n// Picker generates the Markdown UI for the page Picker\nfunc (p *Page) Picker() string {\n\tpageNumber := p.PageNumber\n\tpageNumber = max(pageNumber, 1)\n\n\tif p.TotalPages \u003c= 1 {\n\t\treturn \"\"\n\t}\n\n\tmd := \"\"\n\n\tif p.HasPrev {\n\t\t// Always show the first page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", 1, p.Pager.PageQueryParam, 1)\n\n\t\t// Before\n\t\tif p.PageNumber \u003e 4 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\tif p.PageNumber \u003e 3 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-2, p.Pager.PageQueryParam, p.PageNumber-2)\n\t\t}\n\n\t\tif p.PageNumber \u003e 2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber-1, p.Pager.PageQueryParam, p.PageNumber-1)\n\t\t}\n\t}\n\n\tif p.PageNumber \u003e 0 \u0026\u0026 p.PageNumber \u003c= p.TotalPages {\n\t\t// Current page\n\t\tmd += ufmt.Sprintf(\"**%d**\", p.PageNumber)\n\t} else {\n\t\tmd += ufmt.Sprintf(\"_%d_\", p.PageNumber)\n\t}\n\n\tif p.HasNext {\n\t\tmd += \" | \"\n\n\t\tif p.PageNumber \u003c p.TotalPages-1 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+1, p.Pager.PageQueryParam, p.PageNumber+1)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-2 {\n\t\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d) | \", p.PageNumber+2, p.Pager.PageQueryParam, p.PageNumber+2)\n\t\t}\n\n\t\tif p.PageNumber \u003c p.TotalPages-3 {\n\t\t\tmd += \"… | \"\n\t\t}\n\n\t\t// Always show the last page link\n\t\tmd += ufmt.Sprintf(\"[%d](?%s=%d)\", p.TotalPages, p.Pager.PageQueryParam, p.TotalPages)\n\t}\n\n\treturn md\n}\n\n// ParseQuery parses the URL to extract the page number and page size.\nfunc (p *Pager) ParseQuery(rawURL string) (int, int, error) {\n\tu, err := url.Parse(rawURL)\n\tif err != nil {\n\t\treturn 1, p.DefaultPageSize, err\n\t}\n\n\tquery := u.Query()\n\tpageNumber := 1\n\tpageSize := p.DefaultPageSize\n\n\tif p.PageQueryParam != \"\" {\n\t\tif pageStr := query.Get(p.PageQueryParam); pageStr != \"\" {\n\t\t\tpageNumber, err = strconv.Atoi(pageStr)\n\t\t\tif err != nil || pageNumber \u003c 1 {\n\t\t\t\tpageNumber = 1\n\t\t\t}\n\t\t}\n\t}\n\n\tif p.SizeQueryParam != \"\" {\n\t\tif sizeStr := query.Get(p.SizeQueryParam); sizeStr != \"\" {\n\t\t\tpageSize, err = strconv.Atoi(sizeStr)\n\t\t\tif err != nil || pageSize \u003c 1 {\n\t\t\t\tpageSize = p.DefaultPageSize\n\t\t\t}\n\t\t}\n\t}\n\n\treturn pageNumber, pageSize, nil\n}\n\nfunc max(a, b int) int {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n"},{"name":"pager_test.gno","body":"package pager\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestPager_GetPage(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\tt.Run(\"normal ordering\", func(t *testing.T) {\n\t\t// Create a new pager.\n\t\tpager := NewPager(tree, 10, false)\n\n\t\t// Define test cases.\n\t\ttests := []struct {\n\t\t\tpageNumber int\n\t\t\tpageSize int\n\t\t\texpected []Item\n\t\t}{\n\t\t\t{1, 2, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}}},\n\t\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}}},\n\t\t\t{3, 2, []Item{{Key: \"e\", Value: 5}}},\n\t\t\t{1, 3, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}}},\n\t\t\t{2, 3, []Item{{Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t\t{1, 5, []Item{{Key: \"a\", Value: 1}, {Key: \"b\", Value: 2}, {Key: \"c\", Value: 3}, {Key: \"d\", Value: 4}, {Key: \"e\", Value: 5}}},\n\t\t\t{2, 5, []Item{}},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\t\tfor i, item := range page.Items {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t\t}\n\t\t}\n\t})\n\n\tt.Run(\"reversed ordering\", func(t *testing.T) {\n\t\t// Create a new pager.\n\t\tpager := NewPager(tree, 10, true)\n\n\t\t// Define test cases.\n\t\ttests := []struct {\n\t\t\tpageNumber int\n\t\t\tpageSize int\n\t\t\texpected []Item\n\t\t}{\n\t\t\t{1, 2, []Item{{Key: \"e\", Value: 5}, {Key: \"d\", Value: 4}}},\n\t\t\t{2, 2, []Item{{Key: \"c\", Value: 3}, {Key: \"b\", Value: 2}}},\n\t\t\t{3, 2, []Item{{Key: \"a\", Value: 1}}},\n\t\t\t{1, 3, []Item{{Key: \"e\", Value: 5}, {Key: \"d\", Value: 4}, {Key: \"c\", Value: 3}}},\n\t\t\t{2, 3, []Item{{Key: \"b\", Value: 2}, {Key: \"a\", Value: 1}}},\n\t\t\t{1, 5, []Item{{Key: \"e\", Value: 5}, {Key: \"d\", Value: 4}, {Key: \"c\", Value: 3}, {Key: \"b\", Value: 2}, {Key: \"a\", Value: 1}}},\n\t\t\t{2, 5, []Item{}},\n\t\t}\n\n\t\tfor _, tt := range tests {\n\t\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(page.Items))\n\n\t\t\tfor i, item := range page.Items {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Key, item.Key)\n\t\t\t\tuassert.Equal(t, tt.expected[i].Value, item.Value)\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc TestPager_GetPageByPath(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 50; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t}{\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=1\", 1, 10},\n\t\t{\"/r/foo:bar/baz?size=10\u0026page=2\", 2, 10},\n\t\t{\"/r/foo:bar/baz?page=3\", 3, pager.DefaultPageSize},\n\t\t{\"/r/foo:bar/baz?size=20\", 1, 20},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, err := pager.GetPageByPath(tt.rawURL)\n\t\turequire.NoError(t, err, ufmt.Sprintf(\"GetPageByPath(%s) returned error: %v\", tt.rawURL, err))\n\n\t\tuassert.Equal(t, tt.expectedPage, page.PageNumber)\n\t\tuassert.Equal(t, tt.expectedSize, page.PageSize)\n\t}\n}\n\nfunc TestPage_Picker(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t{1, 2, \"**1** | [2](?page=2) | [3](?page=3)\"},\n\t\t{2, 2, \"[1](?page=1) | **2** | [3](?page=3)\"},\n\t\t{3, 2, \"[1](?page=1) | [2](?page=2) | **3**\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Picker()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_UI_WithManyPages(t *testing.T) {\n\t// Create a new AVL tree and populate it with many key-value pairs.\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 100; i++ {\n\t\ttree.Set(ufmt.Sprintf(\"key%d\", i), i)\n\t}\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases for a large number of pages.\n\ttests := []struct {\n\t\tpageNumber int\n\t\tpageSize int\n\t\texpected string\n\t}{\n\t\t// XXX: -1\n\t\t// XXX: 0\n\t\t{1, 10, \"**1** | [2](?page=2) | [3](?page=3) | … | [10](?page=10)\"},\n\t\t{2, 10, \"[1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [10](?page=10)\"},\n\t\t{3, 10, \"[1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | … | [10](?page=10)\"},\n\t\t{4, 10, \"[1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6) | … | [10](?page=10)\"},\n\t\t{5, 10, \"[1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6) | [7](?page=7) | … | [10](?page=10)\"},\n\t\t{6, 10, \"[1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6** | [7](?page=7) | [8](?page=8) | … | [10](?page=10)\"},\n\t\t{7, 10, \"[1](?page=1) | … | [5](?page=5) | [6](?page=6) | **7** | [8](?page=8) | [9](?page=9) | [10](?page=10)\"},\n\t\t{8, 10, \"[1](?page=1) | … | [6](?page=6) | [7](?page=7) | **8** | [9](?page=9) | [10](?page=10)\"},\n\t\t{9, 10, \"[1](?page=1) | … | [7](?page=7) | [8](?page=8) | **9** | [10](?page=10)\"},\n\t\t{10, 10, \"[1](?page=1) | … | [8](?page=8) | [9](?page=9) | **10**\"},\n\t\t// XXX: 11\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage := pager.GetPageWithSize(tt.pageNumber, tt.pageSize)\n\n\t\tui := page.Picker()\n\t\tuassert.Equal(t, tt.expected, ui)\n\t}\n}\n\nfunc TestPager_ParseQuery(t *testing.T) {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\ttree := avl.NewTree()\n\ttree.Set(\"a\", 1)\n\ttree.Set(\"b\", 2)\n\ttree.Set(\"c\", 3)\n\ttree.Set(\"d\", 4)\n\ttree.Set(\"e\", 5)\n\n\t// Create a new pager.\n\tpager := NewPager(tree, 10, false)\n\n\t// Define test cases.\n\ttests := []struct {\n\t\trawURL string\n\t\texpectedPage int\n\t\texpectedSize int\n\t\texpectedError bool\n\t}{\n\t\t{\"/r/foo:bar/baz?size=2\u0026page=1\", 1, 2, false},\n\t\t{\"/r/foo:bar/baz?size=3\u0026page=2\", 2, 3, false},\n\t\t{\"/r/foo:bar/baz?size=5\u0026page=3\", 3, 5, false},\n\t\t{\"/r/foo:bar/baz?page=2\", 2, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=3\", 1, 3, false},\n\t\t{\"/r/foo:bar/baz\", 1, pager.DefaultPageSize, false},\n\t\t{\"/r/foo:bar/baz?size=0\u0026page=0\", 1, pager.DefaultPageSize, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tpage, size, err := pager.ParseQuery(tt.rawURL)\n\t\tif tt.expectedError {\n\t\t\tuassert.Error(t, err, ufmt.Sprintf(\"ParseQuery(%s) expected error but got none\", tt.rawURL))\n\t\t} else {\n\t\t\turequire.NoError(t, err, ufmt.Sprintf(\"ParseQuery(%s) returned error: %v\", tt.rawURL, err))\n\t\t\tuassert.Equal(t, tt.expectedPage, page, ufmt.Sprintf(\"ParseQuery(%s) returned page %d, expected %d\", tt.rawURL, page, tt.expectedPage))\n\t\t\tuassert.Equal(t, tt.expectedSize, size, ufmt.Sprintf(\"ParseQuery(%s) returned size %d, expected %d\", tt.rawURL, size, tt.expectedSize))\n\t\t}\n\t}\n}\n"},{"name":"z_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc main() {\n\t// Create a new AVL tree and populate it with some key-value pairs.\n\tvar id seqid.ID\n\ttree := avl.NewTree()\n\tfor i := 0; i \u003c 42; i++ {\n\t\ttree.Set(id.Next().String(), i)\n\t}\n\n\t// Create a new pager.\n\tpager := pager.NewPager(tree, 7, false)\n\n\tfor pn := -1; pn \u003c 8; pn++ {\n\t\tpage := pager.GetPage(pn)\n\n\t\tprintln(ufmt.Sprintf(\"## Page %d of %d\", page.PageNumber, page.TotalPages))\n\t\tfor idx, item := range page.Items {\n\t\t\tprintln(ufmt.Sprintf(\"- idx=%d key=%s value=%d\", idx, item.Key, item.Value))\n\t\t}\n\t\tprintln(page.Picker())\n\t\tprintln()\n\t}\n}\n\n// Output:\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 0 of 6\n// _0_ | [1](?page=1) | [2](?page=2) | … | [6](?page=6)\n//\n// ## Page 1 of 6\n// - idx=0 key=0000001 value=0\n// - idx=1 key=0000002 value=1\n// - idx=2 key=0000003 value=2\n// - idx=3 key=0000004 value=3\n// - idx=4 key=0000005 value=4\n// - idx=5 key=0000006 value=5\n// - idx=6 key=0000007 value=6\n// **1** | [2](?page=2) | [3](?page=3) | … | [6](?page=6)\n//\n// ## Page 2 of 6\n// - idx=0 key=0000008 value=7\n// - idx=1 key=0000009 value=8\n// - idx=2 key=000000a value=9\n// - idx=3 key=000000b value=10\n// - idx=4 key=000000c value=11\n// - idx=5 key=000000d value=12\n// - idx=6 key=000000e value=13\n// [1](?page=1) | **2** | [3](?page=3) | [4](?page=4) | … | [6](?page=6)\n//\n// ## Page 3 of 6\n// - idx=0 key=000000f value=14\n// - idx=1 key=000000g value=15\n// - idx=2 key=000000h value=16\n// - idx=3 key=000000j value=17\n// - idx=4 key=000000k value=18\n// - idx=5 key=000000m value=19\n// - idx=6 key=000000n value=20\n// [1](?page=1) | [2](?page=2) | **3** | [4](?page=4) | [5](?page=5) | [6](?page=6)\n//\n// ## Page 4 of 6\n// - idx=0 key=000000p value=21\n// - idx=1 key=000000q value=22\n// - idx=2 key=000000r value=23\n// - idx=3 key=000000s value=24\n// - idx=4 key=000000t value=25\n// - idx=5 key=000000v value=26\n// - idx=6 key=000000w value=27\n// [1](?page=1) | [2](?page=2) | [3](?page=3) | **4** | [5](?page=5) | [6](?page=6)\n//\n// ## Page 5 of 6\n// - idx=0 key=000000x value=28\n// - idx=1 key=000000y value=29\n// - idx=2 key=000000z value=30\n// - idx=3 key=0000010 value=31\n// - idx=4 key=0000011 value=32\n// - idx=5 key=0000012 value=33\n// - idx=6 key=0000013 value=34\n// [1](?page=1) | … | [3](?page=3) | [4](?page=4) | **5** | [6](?page=6)\n//\n// ## Page 6 of 6\n// - idx=0 key=0000014 value=35\n// - idx=1 key=0000015 value=36\n// - idx=2 key=0000016 value=37\n// - idx=3 key=0000017 value=38\n// - idx=4 key=0000018 value=39\n// - idx=5 key=0000019 value=40\n// - idx=6 key=000001a value=41\n// [1](?page=1) | … | [4](?page=4) | [5](?page=5) | **6**\n//\n// ## Page 7 of 6\n// [1](?page=1) | … | [5](?page=5) | [6](?page=6) | _7_\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w0dfKVtA83DmrI4xtKNwqbFfhNyi2HT2Ptd+GHXW8d4UKymDG6pT4fnysL8nvWLsENxNw4r42wt4AjbXb+dnCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"params","path":"gno.land/r/sys/params","files":[{"name":"params.gno","body":"// Package params provides functions for creating parameter executors that\n// interface with the Params Keeper.\n//\n// This package enables setting various parameter types (such as strings,\n// integers, booleans, and byte slices) through the GovDAO proposal mechanism.\n// Each function returns an executor that, when called, sets the specified\n// parameter in the Params Keeper.\n//\n// The executors are designed to be used within governance proposals to modify\n// parameters dynamically. The integration with the GovDAO allows for parameter\n// changes to be proposed and executed in a controlled manner, ensuring that\n// modifications are subject to governance processes.\n//\n// Example usage:\n//\n//\texecutor := params.NewStringPropExecutor(\"exampleKey\", \"exampleValue\")\n//\t// This executor can be used in a governance proposal to set the parameter.\npackage params\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nfunc NewStringPropExecutor(key string, value string) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamString(key, value) })\n}\n\nfunc NewInt64PropExecutor(key string, value int64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamInt64(key, value) })\n}\n\nfunc NewUint64PropExecutor(key string, value uint64) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamUint64(key, value) })\n}\n\nfunc NewBoolPropExecutor(key string, value bool) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBool(key, value) })\n}\n\nfunc NewBytesPropExecutor(key string, value []byte) dao.Executor {\n\treturn newPropExecutor(key, func() { std.SetParamBytes(key, value) })\n}\n\nfunc newPropExecutor(key string, fn func()) dao.Executor {\n\tcallback := func() error {\n\t\tfn()\n\t\tstd.Emit(\"set\", \"k\", key)\n\t\treturn nil\n\t}\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n"},{"name":"params_test.gno","body":"package params\n\nimport \"testing\"\n\n// Testing this package is limited because it only contains an `std.Set` method\n// without a corresponding `std.Get` method. For comprehensive testing, refer to\n// the tests located in the r/gov/dao/ directory, specifically in one of the\n// propX_filetest.gno files.\n\nfunc TestNewStringPropExecutor(t *testing.T) {\n\texecutor := NewStringPropExecutor(\"foo\", \"bar\")\n\tif executor == nil {\n\t\tt.Errorf(\"executor shouldn't be nil\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7rNuZynYuXymJXfJSKavSRgL+a3xtMZyL8sii9pnMoKiiKB6ejB34KTcrlUFMP5I5S1uWLUIN9myFh/FDtiQAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"pausable","path":"gno.land/p/demo/pausable","files":[{"name":"pausable.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\ntype Pausable struct {\n\t*ownable.Ownable\n\tpaused bool\n}\n\n// New returns a new Pausable struct with non-paused state as default\nfunc New() *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable.New(),\n\t\tpaused: false,\n\t}\n}\n\n// NewFromOwnable is the same as New, but with a pre-existing top-level ownable\nfunc NewFromOwnable(ownable *ownable.Ownable) *Pausable {\n\treturn \u0026Pausable{\n\t\tOwnable: ownable,\n\t\tpaused: false,\n\t}\n}\n\n// IsPaused checks if Pausable is paused\nfunc (p Pausable) IsPaused() bool {\n\treturn p.paused\n}\n\n// Pause sets the state of Pausable to true, meaning all pausable functions are paused\nfunc (p *Pausable) Pause() error {\n\tif !p.CallerIsOwner() {\n\t\treturn ownable.ErrUnauthorized\n\t}\n\n\tp.paused = true\n\tstd.Emit(\"Paused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n\n// Unpause sets the state of Pausable to false, meaning all pausable functions are resumed\nfunc (p *Pausable) Unpause() error {\n\tif !p.CallerIsOwner() {\n\t\treturn ownable.ErrUnauthorized\n\t}\n\n\tp.paused = false\n\tstd.Emit(\"Unpaused\", \"account\", p.Owner().String())\n\n\treturn nil\n}\n"},{"name":"pausable_test.gno","body":"package pausable\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nvar (\n\tfirstCaller = std.Address(\"g1l9aypkr8xfvs82zeux486ddzec88ty69lue9de\")\n\tsecondCaller = std.Address(\"g127jydsh6cms3lrtdenydxsckh23a8d6emqcvfa\")\n)\n\nfunc TestNew(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\n\turequire.False(t, result.paused, \"Expected result to be unpaused\")\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestNewFromOwnable(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\to := ownable.New()\n\n\tstd.TestSetOrigCaller(secondCaller)\n\tresult := NewFromOwnable(o)\n\n\turequire.Equal(t, firstCaller.String(), result.Owner().String())\n}\n\nfunc TestSetUnpaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Unpause()\n\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n}\n\nfunc TestSetPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\tresult.Pause()\n\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n\nfunc TestIsPaused(t *testing.T) {\n\tstd.TestSetOrigCaller(firstCaller)\n\n\tresult := New()\n\turequire.False(t, result.IsPaused(), \"Expected result to be unpaused\")\n\n\tresult.Pause()\n\turequire.True(t, result.IsPaused(), \"Expected result to be paused\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o29zGmdqkPxV3fH7G+XnhzUyqzaghgqNK665SdyTPQyg7btwoeOz1e0b3OVmSmZY88GeI8loJbLdmI4fjgglAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"poa","path":"gno.land/p/nt/poa","files":[{"name":"option.gno","body":"package poa\n\nimport \"gno.land/p/sys/validators\"\n\ntype Option func(*PoA)\n\n// WithInitialSet sets the initial PoA validator set\nfunc WithInitialSet(validators []validators.Validator) Option {\n\treturn func(p *PoA) {\n\t\tfor _, validator := range validators {\n\t\t\tp.validators.Set(validator.Address.String(), validator)\n\t\t}\n\t}\n}\n"},{"name":"poa.gno","body":"package poa\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar ErrInvalidVotingPower = errors.New(\"invalid voting power\")\n\n// PoA specifies the Proof of Authority validator set, with simple add / remove constraints.\n//\n// To add:\n// - proposed validator must not be part of the set already\n// - proposed validator voting power must be \u003e 0\n//\n// To remove:\n// - proposed validator must be part of the set already\ntype PoA struct {\n\tvalidators *avl.Tree // std.Address -\u003e validators.Validator\n}\n\n// NewPoA creates a new empty Proof of Authority validator set\nfunc NewPoA(opts ...Option) *PoA {\n\t// Create the empty set\n\tp := \u0026PoA{\n\t\tvalidators: avl.NewTree(),\n\t}\n\n\t// Apply the options\n\tfor _, opt := range opts {\n\t\topt(p)\n\t}\n\n\treturn p\n}\n\nfunc (p *PoA) AddValidator(address std.Address, pubKey string, power uint64) (validators.Validator, error) {\n\t// Validate that the operation is a valid call.\n\t// Check if the validator is already in the set\n\tif p.IsValidator(address) {\n\t\treturn validators.Validator{}, validators.ErrValidatorExists\n\t}\n\n\t// Make sure the voting power \u003e 0\n\tif power == 0 {\n\t\treturn validators.Validator{}, ErrInvalidVotingPower\n\t}\n\n\tv := validators.Validator{\n\t\tAddress: address,\n\t\tPubKey: pubKey, // TODO: in the future, verify the public key\n\t\tVotingPower: power,\n\t}\n\n\t// Add the validator to the set\n\tp.validators.Set(address.String(), v)\n\n\treturn v, nil\n}\n\nfunc (p *PoA) RemoveValidator(address std.Address) (validators.Validator, error) {\n\t// Validate that the operation is a valid call\n\t// Fetch the validator\n\tvalidator, err := p.GetValidator(address)\n\tif err != nil {\n\t\treturn validators.Validator{}, err\n\t}\n\n\t// Remove the validator from the set\n\tp.validators.Remove(address.String())\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) IsValidator(address std.Address) bool {\n\t_, exists := p.validators.Get(address.String())\n\n\treturn exists\n}\n\nfunc (p *PoA) GetValidator(address std.Address) (validators.Validator, error) {\n\tvalidatorRaw, exists := p.validators.Get(address.String())\n\tif !exists {\n\t\treturn validators.Validator{}, validators.ErrValidatorMissing\n\t}\n\n\tvalidator := validatorRaw.(validators.Validator)\n\n\treturn validator, nil\n}\n\nfunc (p *PoA) GetValidators() []validators.Validator {\n\tvals := make([]validators.Validator, 0, p.validators.Size())\n\n\tp.validators.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvalidator := value.(validators.Validator)\n\t\tvals = append(vals, validator)\n\n\t\treturn false\n\t})\n\n\treturn vals\n}\n"},{"name":"poa_test.gno","body":"package poa\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/sys/validators\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 1,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestPoA_AddValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator already in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\t\tinitialSet[0].PubKey = proposalKey\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorExists)\n\t})\n\n\tt.Run(\"invalid voting power\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tproposalKey = \"public-key\"\n\t\t)\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to add the validator\n\t\t_, err := p.AddValidator(proposalAddress, proposalKey, 0)\n\t\tuassert.ErrorIs(t, err, ErrInvalidVotingPower)\n\t})\n}\n\nfunc TestPoA_AddValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tproposalKey = \"public-key\"\n\t)\n\n\t// Create the protocol with no initial set\n\tp := NewPoA()\n\n\t// Attempt to add the validator\n\t_, err := p.AddValidator(proposalAddress, proposalKey, 1)\n\tuassert.NoError(t, err)\n\n\t// Make sure the validator is added\n\tif !p.IsValidator(proposalAddress) || p.validators.Size() != 1 {\n\t\tt.Fatal(\"address is not validator\")\n\t}\n}\n\nfunc TestPoA_RemoveValidator_Invalid(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"proposed removal not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = proposalAddress\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Attempt to remove the validator\n\t\t_, err := p.RemoveValidator(testutils.TestAddress(\"totally random\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n}\n\nfunc TestPoA_RemoveValidator(t *testing.T) {\n\tt.Parallel()\n\n\tvar (\n\t\tproposalAddress = testutils.TestAddress(\"caller\")\n\t\tinitialSet = generateTestValidators(1)\n\t)\n\n\tinitialSet[0].Address = proposalAddress\n\n\t// Create the protocol with an initial set\n\tp := NewPoA(WithInitialSet(initialSet))\n\n\t// Attempt to remove the validator\n\t_, err := p.RemoveValidator(proposalAddress)\n\turequire.NoError(t, err)\n\n\t// Make sure the validator is removed\n\tif p.IsValidator(proposalAddress) || p.validators.Size() != 0 {\n\t\tt.Fatal(\"address is validator\")\n\t}\n}\n\nfunc TestPoA_GetValidator(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"validator not in set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\t_, err := p.GetValidator(testutils.TestAddress(\"caller\"))\n\t\tuassert.ErrorIs(t, err, validators.ErrValidatorMissing)\n\t})\n\n\tt.Run(\"validator fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\taddress = testutils.TestAddress(\"caller\")\n\t\t\tpubKey = \"public-key\"\n\t\t\tvotingPower = uint64(10)\n\n\t\t\tinitialSet = generateTestValidators(1)\n\t\t)\n\n\t\tinitialSet[0].Address = address\n\t\tinitialSet[0].PubKey = pubKey\n\t\tinitialSet[0].VotingPower = votingPower\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator\n\t\tval, err := p.GetValidator(address)\n\t\turequire.NoError(t, err)\n\n\t\t// Validate the address\n\t\tif val.Address != address {\n\t\t\tt.Fatal(\"invalid address\")\n\t\t}\n\n\t\t// Validate the voting power\n\t\tif val.VotingPower != votingPower {\n\t\t\tt.Fatal(\"invalid voting power\")\n\t\t}\n\n\t\t// Validate the public key\n\t\tif val.PubKey != pubKey {\n\t\t\tt.Fatal(\"invalid public key\")\n\t\t}\n\t})\n}\n\nfunc TestPoA_GetValidators(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"empty set\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Create the protocol with no initial set\n\t\tp := NewPoA()\n\n\t\t// Attempt to get the voting power\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != 0 {\n\t\t\tt.Fatal(\"validator set is not empty\")\n\t\t}\n\t})\n\n\tt.Run(\"validator set fetched\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tinitialSet := generateTestValidators(10)\n\n\t\t// Create the protocol with an initial set\n\t\tp := NewPoA(WithInitialSet(initialSet))\n\n\t\t// Get the validator set\n\t\tvals := p.GetValidators()\n\n\t\tif len(vals) != len(initialSet) {\n\t\t\tt.Fatal(\"returned validator set mismatch\")\n\t\t}\n\n\t\tfor _, val := range vals {\n\t\t\tfor _, initialVal := range initialSet {\n\t\t\t\tif val.Address != initialVal.Address {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Validate the voting power\n\t\t\t\tuassert.Equal(t, val.VotingPower, initialVal.VotingPower)\n\n\t\t\t\t// Validate the public key\n\t\t\t\tuassert.Equal(t, val.PubKey, initialVal.PubKey)\n\t\t\t}\n\t\t}\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AVs8wkXtmU63I9U30MlJc5BhbPzDqisNh5ckjj5N8bW+wR6tcmKEhPoqfHQF4R1INZgje9jswSNQk6qz4szgAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"present","path":"gno.land/r/moul/present","files":[{"name":"admin.gno","body":"package present\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tadminAddr std.Address\n\tmoderatorList avl.Tree\n\tinPause bool\n)\n\nfunc init() {\n\t// adminAddr = std.GetOrigCaller() // FIXME: find a way to use this from the main's genesis.\n\tadminAddr = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\"\n}\n\nfunc AdminSetAdminAddr(addr std.Address) {\n\tassertIsAdmin()\n\tadminAddr = addr\n}\n\nfunc AdminSetInPause(state bool) {\n\tassertIsAdmin()\n\tinPause = state\n}\n\nfunc AdminAddModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), true)\n}\n\nfunc AdminRemoveModerator(addr std.Address) {\n\tassertIsAdmin()\n\tmoderatorList.Set(addr.String(), false) // XXX: delete instead?\n}\n\nfunc ModAddPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\tcaller := std.GetOrigCaller()\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.NewPost(caller, slug, title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc ModEditPost(slug, title, body, publicationDate, authors, tags string) {\n\tassertIsModerator()\n\n\ttagList := strings.Split(tags, \",\")\n\tauthorList := strings.Split(authors, \",\")\n\n\terr := b.GetPost(slug).Update(title, body, publicationDate, authorList, tagList)\n\tcheckErr(err)\n}\n\nfunc isAdmin(addr std.Address) bool {\n\treturn addr == adminAddr\n}\n\nfunc isModerator(addr std.Address) bool {\n\t_, found := moderatorList.Get(addr.String())\n\treturn found\n}\n\nfunc assertIsAdmin() {\n\tcaller := std.GetOrigCaller()\n\tif !isAdmin(caller) {\n\t\tpanic(\"access restricted.\")\n\t}\n}\n\nfunc assertIsModerator() {\n\tcaller := std.GetOrigCaller()\n\tif isAdmin(caller) || isModerator(caller) {\n\t\treturn\n\t}\n\tpanic(\"access restricted\")\n}\n\nfunc assertNotInPause() {\n\tif inPause {\n\t\tpanic(\"access restricted (pause)\")\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"present_miami23.gno","body":"package present\n\nfunc init() {\n\tpath := \"miami23\"\n\ttitle := \"Portal Loop Demo (Miami 2023)\"\n\tbody := `\nRendered by Gno.\n\n[Source (WIP)](https://github.com/gnolang/gno/pull/1176)\n\n## Portal Loop\n\n- DONE: Dynamic homepage, key pages, aliases, and redirects.\n- TODO: Deploy with history, complete worxdao v0.\n- Will replace the static gno.land site.\n- Enhances local development.\n\n[GitHub Issue](https://github.com/gnolang/gno/issues/1108)\n\n## Roadmap\n\n- Crafting the roadmap this week, open to collaboration.\n- Combining onchain (portal loop) and offchain (GitHub).\n- Next week: Unveiling the official v0 roadmap.\n\n## Teams, DAOs, Projects\n\n- Developing worxDAO contracts for directories of projects and teams.\n- GitHub teams and projects align with this structure.\n- CODEOWNER file updates coming.\n- Initial teams announced next week.\n\n## Tech Team Retreat Plan\n\n- Continue Portal Loop.\n- Consider dApp development.\n- Explore new topics [here](https://github.com/orgs/gnolang/projects/15/).\n- Engage in workshops.\n- Connect and have fun with colleagues.\n`\n\t_ = b.NewPost(adminAddr, path, title, body, \"2023-10-15T13:17:24Z\", []string{\"moul\"}, []string{\"demo\", \"portal-loop\", \"miami\"})\n}\n"},{"name":"present_miami23_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/moul/present\"\n)\n\nfunc main() {\n\tprintln(present.Render(\"\"))\n\tprintln(\"------------------------------------\")\n\tprintln(present.Render(\"p/miami23\"))\n}\n"},{"name":"presentations.gno","body":"package present\n\nimport (\n\t\"gno.land/p/demo/blog\"\n)\n\n// TODO: switch from p/blog to p/present\n\nvar b = \u0026blog.Blog{\n\tTitle: \"Manfred's Presentations\",\n\tPrefix: \"/r/moul/present:\",\n\tNoBreadcrumb: true,\n}\n\nfunc Render(path string) string {\n\treturn b.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EQGULnfLFEJX74cBs6WIfOwBXF0E7HzPACVijRmd+kM4wdrujXYZAFnkDAQlxD11zwdPxcNBh4uJQfpQrrhPCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"printfdebugging","path":"gno.land/p/demo/printfdebugging","files":[{"name":"color.gno","body":"package printfdebugging\n\n// consts copied from https://github.com/fatih/color/blob/main/color.go\n\n// Attribute defines a single SGR Code\ntype Attribute int\n\nconst Escape = \"\\x1b\"\n\n// Base attributes\nconst (\n\tReset Attribute = iota\n\tBold\n\tFaint\n\tItalic\n\tUnderline\n\tBlinkSlow\n\tBlinkRapid\n\tReverseVideo\n\tConcealed\n\tCrossedOut\n)\n\nconst (\n\tResetBold Attribute = iota + 22\n\tResetItalic\n\tResetUnderline\n\tResetBlinking\n\t_\n\tResetReversed\n\tResetConcealed\n\tResetCrossedOut\n)\n\n// Foreground text colors\nconst (\n\tFgBlack Attribute = iota + 30\n\tFgRed\n\tFgGreen\n\tFgYellow\n\tFgBlue\n\tFgMagenta\n\tFgCyan\n\tFgWhite\n)\n\n// Foreground Hi-Intensity text colors\nconst (\n\tFgHiBlack Attribute = iota + 90\n\tFgHiRed\n\tFgHiGreen\n\tFgHiYellow\n\tFgHiBlue\n\tFgHiMagenta\n\tFgHiCyan\n\tFgHiWhite\n)\n\n// Background text colors\nconst (\n\tBgBlack Attribute = iota + 40\n\tBgRed\n\tBgGreen\n\tBgYellow\n\tBgBlue\n\tBgMagenta\n\tBgCyan\n\tBgWhite\n)\n\n// Background Hi-Intensity text colors\nconst (\n\tBgHiBlack Attribute = iota + 100\n\tBgHiRed\n\tBgHiGreen\n\tBgHiYellow\n\tBgHiBlue\n\tBgHiMagenta\n\tBgHiCyan\n\tBgHiWhite\n)\n"},{"name":"printfdebugging.gno","body":"// this package is a joke... or not.\npackage printfdebugging\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\nfunc BigRedLine(args ...string) {\n\tprintln(ufmt.Sprintf(\"%s[%dm####################################%s[%dm %s\",\n\t\tEscape, int(BgRed), Escape, int(Reset),\n\t\tstrings.Join(args, \" \"),\n\t))\n}\n\nfunc Success() {\n\tprintln(\" \\033[31mS\\033[33mU\\033[32mC\\033[36mC\\033[34mE\\033[35mS\\033[31mS\\033[0m \")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ihuagV4gYGPoC3kD9C8lNFRAqvunMvZ1EPa9aPc9i40Uo7MAXc5/un3/fp3JrYFfC6IzCz7fs5fLQLuV5m/OBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"profile","path":"gno.land/r/demo/profile","files":[{"name":"profile.gno","body":"package profile\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tfields = avl.NewTree()\n\trouter = mux.NewRouter()\n)\n\n// Standard fields\nconst (\n\tDisplayName = \"DisplayName\"\n\tHomepage = \"Homepage\"\n\tBio = \"Bio\"\n\tAge = \"Age\"\n\tLocation = \"Location\"\n\tAvatar = \"Avatar\"\n\tGravatarEmail = \"GravatarEmail\"\n\tAvailableForHiring = \"AvailableForHiring\"\n\tInvalidField = \"InvalidField\"\n)\n\n// Events\nconst (\n\tProfileFieldCreated = \"ProfileFieldCreated\"\n\tProfileFieldUpdated = \"ProfileFieldUpdated\"\n)\n\n// Field types used when emitting event\nconst FieldType = \"FieldType\"\n\nconst (\n\tBoolField = \"BoolField\"\n\tStringField = \"StringField\"\n\tIntField = \"IntField\"\n)\n\nfunc init() {\n\trouter.HandleFunc(\"\", homeHandler)\n\trouter.HandleFunc(\"u/{addr}\", profileHandler)\n\trouter.HandleFunc(\"f/{addr}/{field}\", fieldHandler)\n}\n\n// List of supported string fields\nvar stringFields = map[string]bool{\n\tDisplayName: true,\n\tHomepage: true,\n\tBio: true,\n\tLocation: true,\n\tAvatar: true,\n\tGravatarEmail: true,\n}\n\n// List of support int fields\nvar intFields = map[string]bool{\n\tAge: true,\n}\n\n// List of support bool fields\nvar boolFields = map[string]bool{\n\tAvailableForHiring: true,\n}\n\n// Setters\n\nfunc SetStringField(field, value string) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, StringField, field, value)\n\n\treturn updated\n}\n\nfunc SetIntField(field string, value int) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, IntField, field, string(value))\n\n\treturn updated\n}\n\nfunc SetBoolField(field string, value bool) bool {\n\taddr := std.PrevRealm().Addr()\n\tkey := addr.String() + \":\" + field\n\tupdated := fields.Set(key, value)\n\n\tevent := ProfileFieldCreated\n\tif updated {\n\t\tevent = ProfileFieldUpdated\n\t}\n\n\tstd.Emit(event, FieldType, BoolField, field, ufmt.Sprintf(\"%t\", value))\n\n\treturn updated\n}\n\n// Getters\n\nfunc GetStringField(addr std.Address, field, def string) string {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(string)\n\t}\n\n\treturn def\n}\n\nfunc GetBoolField(addr std.Address, field string, def bool) bool {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(bool)\n\t}\n\n\treturn def\n}\n\nfunc GetIntField(addr std.Address, field string, def int) int {\n\tkey := addr.String() + \":\" + field\n\tif value, ok := fields.Get(key); ok {\n\t\treturn value.(int)\n\t}\n\n\treturn def\n}\n"},{"name":"profile_test.gno","body":"package profile\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\n// Global addresses for test users\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n\tdave = testutils.TestAddress(\"dave\")\n\teve = testutils.TestAddress(\"eve\")\n\tfrank = testutils.TestAddress(\"frank\")\n\tuser1 = testutils.TestAddress(\"user1\")\n\tuser2 = testutils.TestAddress(\"user2\")\n)\n\nfunc TestStringFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\n\t// Get before setting\n\tname := GetStringField(alice, DisplayName, \"anon\")\n\tuassert.Equal(t, \"anon\", name)\n\n\t// Set new key\n\tupdated := SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, false)\n\tupdated = SetStringField(Homepage, \"https://example.com\")\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetStringField(DisplayName, \"Alice foo\")\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tname = GetStringField(alice, DisplayName, \"anon\")\n\thomepage := GetStringField(alice, Homepage, \"\")\n\tbio := GetStringField(alice, Bio, \"42\")\n\n\tuassert.Equal(t, \"Alice foo\", name)\n\tuassert.Equal(t, \"https://example.com\", homepage)\n\tuassert.Equal(t, \"42\", bio)\n}\n\nfunc TestIntFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(bob))\n\n\t// Get before setting\n\tage := GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 25, age)\n\n\t// Set new key\n\tupdated := SetIntField(Age, 30)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetIntField(Age, 30)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\tage = GetIntField(bob, Age, 25)\n\tuassert.Equal(t, 30, age)\n}\n\nfunc TestBoolFields(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(charlie))\n\n\t// Get before setting\n\thiring := GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, false, hiring)\n\n\t// Set\n\tupdated := SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, false)\n\n\t// Update the key\n\tupdated = SetBoolField(AvailableForHiring, true)\n\tuassert.Equal(t, updated, true)\n\n\t// Get after setting\n\thiring = GetBoolField(charlie, AvailableForHiring, false)\n\tuassert.Equal(t, true, hiring)\n}\n\nfunc TestMultipleProfiles(t *testing.T) {\n\t// Set profile for user1\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\tupdated := SetStringField(DisplayName, \"User One\")\n\tuassert.Equal(t, updated, false)\n\n\t// Set profile for user2\n\tstd.TestSetRealm(std.NewUserRealm(user2))\n\tupdated = SetStringField(DisplayName, \"User Two\")\n\tuassert.Equal(t, updated, false)\n\n\t// Get profiles\n\tstd.TestSetRealm(std.NewUserRealm(user1)) // Switch back to user1\n\tname1 := GetStringField(user1, DisplayName, \"anon\")\n\tstd.TestSetRealm(std.NewUserRealm(user2)) // Switch back to user2\n\tname2 := GetStringField(user2, DisplayName, \"anon\")\n\n\tuassert.Equal(t, \"User One\", name1)\n\tuassert.Equal(t, \"User Two\", name2)\n}\n\nfunc TestArbitraryStringField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary string field\n\tupdated := SetStringField(\"MyEmail\", \"my@email.com\")\n\tuassert.Equal(t, updated, false)\n\n\tval := GetStringField(user1, \"MyEmail\", \"\")\n\tuassert.Equal(t, val, \"my@email.com\")\n}\n\nfunc TestArbitraryIntField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetIntField(\"MyIncome\", 100_000)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetIntField(user1, \"MyIncome\", 0)\n\tuassert.Equal(t, val, 100_000)\n}\n\nfunc TestArbitraryBoolField(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(user1))\n\n\t// Set arbitrary int field\n\tupdated := SetBoolField(\"IsWinner\", true)\n\tuassert.Equal(t, updated, false)\n\n\tval := GetBoolField(user1, \"IsWinner\", false)\n\tuassert.Equal(t, val, true)\n}\n"},{"name":"render.gno","body":"package profile\n\nimport (\n\t\"bytes\"\n\t\"net/url\"\n\t\"std\"\n\n\t\"gno.land/p/demo/mux\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nconst (\n\tBaseURL = \"/r/demo/profile\"\n\tSetStringFieldURL = BaseURL + \"$help\u0026func=SetStringField\u0026field=%s\"\n\tSetIntFieldURL = BaseURL + \"$help\u0026func=SetIntField\u0026field=%s\"\n\tSetBoolFieldURL = BaseURL + \"$help\u0026func=SetBoolField\u0026field=%s\"\n\tViewAllFieldsURL = BaseURL + \":u/%s\"\n\tViewFieldURL = BaseURL + \":f/%s/%s\"\n)\n\nfunc homeHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"## Setters\\n\")\n\tfor field := range stringFields {\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range intFields {\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s](%s)\\n\", field, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- [Set %s Field](%s)\\n\", field, link))\n\t}\n\n\tb.WriteString(\"\\n---\\n\\n\")\n\n\tres.Write(b.String())\n}\n\nfunc profileHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Profile %s\\n\", addr))\n\n\taddress := std.Address(addr)\n\n\tfor field := range stringFields {\n\t\tvalue := GetStringField(address, field, \"n/a\")\n\t\tlink := ufmt.Sprintf(SetStringFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range intFields {\n\t\tvalue := GetIntField(address, field, 0)\n\t\tlink := ufmt.Sprintf(SetIntFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %d [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tfor field := range boolFields {\n\t\tvalue := GetBoolField(address, field, false)\n\t\tlink := ufmt.Sprintf(SetBoolFieldURL, field)\n\t\tb.WriteString(ufmt.Sprintf(\"- %s: %t [Edit](%s)\\n\", field, value, link))\n\t}\n\n\tres.Write(b.String())\n}\n\nfunc fieldHandler(res *mux.ResponseWriter, req *mux.Request) {\n\tvar b bytes.Buffer\n\taddr := req.GetVar(\"addr\")\n\tfield := req.GetVar(\"field\")\n\n\tb.WriteString(ufmt.Sprintf(\"# Field %s for %s\\n\", field, addr))\n\n\taddress := std.Address(addr)\n\tvalue := \"n/a\"\n\tvar editLink string\n\n\tif _, ok := stringFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%s\", GetStringField(address, field, \"n/a\"))\n\t\teditLink = ufmt.Sprintf(SetStringFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, url.QueryEscape(value))\n\t} else if _, ok := intFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%d\", GetIntField(address, field, 0))\n\t\teditLink = ufmt.Sprintf(SetIntFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t} else if _, ok := boolFields[field]; ok {\n\t\tvalue = ufmt.Sprintf(\"%t\", GetBoolField(address, field, false))\n\t\teditLink = ufmt.Sprintf(SetBoolFieldURL+\"\u0026addr=%s\u0026value=%s\", field, addr, value)\n\t}\n\n\tb.WriteString(ufmt.Sprintf(\"- %s: %s [Edit](%s)\\n\", field, value, editLink))\n\n\tres.Write(b.String())\n}\n\nfunc Render(path string) string {\n\treturn router.Render(path)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WAx929ZHdkqDGQerwCCJTgsppEcn3EJn+WNd/uASAdCCCtqayQLRGMVKTorsui/CZKJ23nJx3MRGnMr1OZiVDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"rat","path":"gno.land/p/demo/rat","files":[{"name":"maths.gno","body":"package rat\n\nconst (\n\tintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63) // 32 or 64\n\n\tMaxInt = 1\u003c\u003c(intSize-1) - 1\n\tMinInt = -1 \u003c\u003c (intSize - 1)\n\tMaxInt8 = 1\u003c\u003c7 - 1\n\tMinInt8 = -1 \u003c\u003c 7\n\tMaxInt16 = 1\u003c\u003c15 - 1\n\tMinInt16 = -1 \u003c\u003c 15\n\tMaxInt32 = 1\u003c\u003c31 - 1\n\tMinInt32 = -1 \u003c\u003c 31\n\tMaxInt64 = 1\u003c\u003c63 - 1\n\tMinInt64 = -1 \u003c\u003c 63\n\tMaxUint = 1\u003c\u003cintSize - 1\n\tMaxUint8 = 1\u003c\u003c8 - 1\n\tMaxUint16 = 1\u003c\u003c16 - 1\n\tMaxUint32 = 1\u003c\u003c32 - 1\n\tMaxUint64 = 1\u003c\u003c64 - 1\n)\n"},{"name":"rat.gno","body":"package rat\n\n//----------------------------------------\n// Rat fractions\n\n// represents a fraction.\ntype Rat struct {\n\tX int32\n\tY int32 // must be positive\n}\n\nfunc NewRat(x, y int32) Rat {\n\tif y \u003c= 0 {\n\t\tpanic(\"invalid std.Rat denominator\")\n\t}\n\treturn Rat{X: x, Y: y}\n}\n\nfunc (r1 Rat) IsValid() bool {\n\tif r1.Y \u003c= 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (r1 Rat) Cmp(r2 Rat) int {\n\tif !r1.IsValid() {\n\t\tpanic(\"invalid std.Rat left operand\")\n\t}\n\tif !r2.IsValid() {\n\t\tpanic(\"invalid std.Rat right operand\")\n\t}\n\tvar p1, p2 int64\n\tp1 = int64(r1.X) * int64(r2.Y)\n\tp2 = int64(r1.Y) * int64(r2.X)\n\tif p1 \u003c p2 {\n\t\treturn -1\n\t} else if p1 == p2 {\n\t\treturn 0\n\t} else {\n\t\treturn 1\n\t}\n}\n\n//func (r1 Rat) Plus(r2 Rat) Rat {\n// XXX\n//}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L6XbYr1Y3/5E6YnEXk++7MlMbFCGAHRlfNIqD7BoXikfUUYgHBwX3Bfj0ojCQSudKH3Hj68Jmx1xkNugTj0PAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"realmpath","path":"gno.land/p/moul/realmpath","files":[{"name":"realmpath.gno","body":"// Package realmpath is a lightweight Render.path parsing and link generation\n// library with an idiomatic API, closely resembling that of net/url.\n//\n// This package provides utilities for parsing request paths and query\n// parameters, allowing you to extract path segments and manipulate query\n// values.\n//\n// Example usage:\n//\n//\timport \"gno.land/p/moul/realmpath\"\n//\n//\tfunc Render(path string) string {\n//\t // Parsing a sample path with query parameters\n//\t path = \"hello/world?foo=bar\u0026baz=foobar\"\n//\t req := realmpath.Parse(path)\n//\n//\t // Accessing parsed path and query parameters\n//\t println(req.Path) // Output: hello/world\n//\t println(req.PathPart(0)) // Output: hello\n//\t println(req.PathPart(1)) // Output: world\n//\t println(req.Query.Get(\"foo\")) // Output: bar\n//\t println(req.Query.Get(\"baz\")) // Output: foobar\n//\n//\t // Rebuilding the URL\n//\t println(req.String()) // Output: /r/current/realm:hello/world?baz=foobar\u0026foo=bar\n//\t}\npackage realmpath\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Request represents a parsed request.\ntype Request struct {\n\tPath string // The path of the request\n\tQuery url.Values // The parsed query parameters\n\tRealm string // The realm associated with the request\n}\n\n// Parse takes a raw path string and returns a Request object.\n// It splits the path into its components and parses any query parameters.\nfunc Parse(rawPath string) *Request {\n\t// Split the raw path into path and query components\n\tpath, query := splitPathAndQuery(rawPath)\n\n\t// Parse the query string into url.Values\n\tqueryValues, _ := url.ParseQuery(query)\n\n\treturn \u0026Request{\n\t\tPath: path, // Set the path\n\t\tQuery: queryValues, // Set the parsed query values\n\t}\n}\n\n// PathParts returns the segments of the path as a slice of strings.\n// It trims leading and trailing slashes and splits the path by slashes.\nfunc (r *Request) PathParts() []string {\n\treturn strings.Split(strings.Trim(r.Path, \"/\"), \"/\")\n}\n\n// PathPart returns the specified part of the path.\n// If the index is out of bounds, it returns an empty string.\nfunc (r *Request) PathPart(index int) string {\n\tparts := r.PathParts() // Get the path segments\n\tif index \u003c 0 || index \u003e= len(parts) {\n\t\treturn \"\" // Return empty if index is out of bounds\n\t}\n\treturn parts[index] // Return the specified path part\n}\n\n// String rebuilds the URL from the path and query values.\n// If the Realm is not set, it automatically retrieves the current realm path.\nfunc (r *Request) String() string {\n\t// Automatically set the Realm if it is not already defined\n\tif r.Realm == \"\" {\n\t\tr.Realm = std.CurrentRealm().PkgPath() // Get the current realm path\n\t}\n\n\t// Rebuild the path using the realm and path parts\n\trelativePkgPath := strings.TrimPrefix(r.Realm, chainDomain) // Trim the chain domain prefix\n\treconstructedPath := relativePkgPath + \":\" + strings.Join(r.PathParts(), \"/\")\n\n\t// Rebuild the query string\n\tqueryString := r.Query.Encode() // Encode the query parameters\n\tif queryString != \"\" {\n\t\treturn reconstructedPath + \"?\" + queryString // Return the full URL with query\n\t}\n\treturn reconstructedPath // Return the path without query parameters\n}\n\nfunc splitPathAndQuery(rawPath string) (string, string) {\n\tif idx := strings.Index(rawPath, \"?\"); idx != -1 {\n\t\treturn rawPath[:idx], rawPath[idx+1:] // Split at the first '?' found\n\t}\n\treturn rawPath, \"\" // No query string present\n}\n"},{"name":"realmpath_test.gno","body":"package realmpath_test\n\nimport (\n\t\"net/url\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n\t\"gno.land/p/moul/realmpath\"\n)\n\nfunc TestExample(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\t// initial parsing\n\tpath := \"hello/world?foo=bar\u0026baz=foobar\"\n\treq := realmpath.Parse(path)\n\turequire.False(t, req == nil, \"req should not be nil\")\n\tuassert.Equal(t, req.Path, \"hello/world\")\n\tuassert.Equal(t, req.Query.Get(\"foo\"), \"bar\")\n\tuassert.Equal(t, req.Query.Get(\"baz\"), \"foobar\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\")\n\n\t// alter query\n\treq.Query.Set(\"hey\", \"salut\")\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\u0026hey=salut\")\n\n\t// alter path\n\treq.Path = \"bye/ciao\"\n\tuassert.Equal(t, req.String(), \"/r/lorem/ipsum:bye/ciao?baz=foobar\u0026foo=bar\u0026hey=salut\")\n}\n\nfunc TestParse(t *testing.T) {\n\tstd.TestSetRealm(std.NewCodeRealm(\"gno.land/r/lorem/ipsum\"))\n\n\ttests := []struct {\n\t\trawPath string\n\t\trealm string // optional\n\t\texpectedPath string\n\t\texpectedQuery url.Values\n\t\texpectedString string\n\t}{\n\t\t{\n\t\t\trawPath: \"hello/world?foo=bar\u0026baz=foobar\",\n\t\t\texpectedPath: \"hello/world\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:hello/world?baz=foobar\u0026foo=bar\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"api/v1/resource?search=test\u0026limit=10\",\n\t\t\texpectedPath: \"api/v1/resource\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"search\": []string{\"test\"},\n\t\t\t\t\"limit\": []string{\"10\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:api/v1/resource?limit=10\u0026search=test\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"singlepath\",\n\t\t\texpectedPath: \"singlepath\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:singlepath\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/trailing/slash/\",\n\t\t\texpectedPath: \"path/with/trailing/slash/\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/trailing/slash\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"emptyquery?\",\n\t\t\texpectedPath: \"emptyquery\",\n\t\t\texpectedQuery: url.Values{},\n\t\t\texpectedString: \"/r/lorem/ipsum:emptyquery\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/special/characters/?key=val%20ue\u0026anotherKey=with%21special%23chars\",\n\t\t\texpectedPath: \"path/with/special/characters/\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key\": []string{\"val ue\"},\n\t\t\t\t\"anotherKey\": []string{\"with!special#chars\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/special/characters?anotherKey=with%21special%23chars\u0026key=val+ue\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/empty/key?keyEmpty\u0026=valueEmpty\",\n\t\t\texpectedPath: \"path/with/empty/key\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"keyEmpty\": []string{\"\"},\n\t\t\t\t\"\": []string{\"valueEmpty\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/empty/key?=valueEmpty\u0026keyEmpty=\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t\texpectedPath: \"path/with/multiple/empty/keys\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"\": []string{\"empty1\", \"empty2\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/multiple/empty/keys?=empty1\u0026=empty2\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/percent-encoded/%20space?query=hello%20world\",\n\t\t\texpectedPath: \"path/with/percent-encoded/%20space\", // XXX: should we decode?\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"query\": []string{\"hello world\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/percent-encoded/%20space?query=hello+world\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t\texpectedPath: \"path/with/very/long/query\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"key1\": []string{\"value1\"},\n\t\t\t\t\"key2\": []string{\"value2\"},\n\t\t\t\t\"key3\": []string{\"value3\"},\n\t\t\t\t\"key4\": []string{\"value4\"},\n\t\t\t\t\"key5\": []string{\"value5\"},\n\t\t\t\t\"key6\": []string{\"value6\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/lorem/ipsum:path/with/very/long/query?key1=value1\u0026key2=value2\u0026key3=value3\u0026key4=value4\u0026key5=value5\u0026key6=value6\",\n\t\t},\n\t\t{\n\t\t\trawPath: \"custom/realm?foo=bar\u0026baz=foobar\",\n\t\t\trealm: \"gno.land/r/foo/bar\",\n\t\t\texpectedPath: \"custom/realm\",\n\t\t\texpectedQuery: url.Values{\n\t\t\t\t\"foo\": []string{\"bar\"},\n\t\t\t\t\"baz\": []string{\"foobar\"},\n\t\t\t},\n\t\t\texpectedString: \"/r/foo/bar:custom/realm?baz=foobar\u0026foo=bar\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.rawPath, func(t *testing.T) {\n\t\t\treq := realmpath.Parse(tt.rawPath)\n\t\t\treq.Realm = tt.realm // set optional realm\n\t\t\turequire.False(t, req == nil, \"req should not be nil\")\n\t\t\tuassert.Equal(t, req.Path, tt.expectedPath)\n\t\t\turequire.Equal(t, len(req.Query), len(tt.expectedQuery))\n\t\t\tuassert.Equal(t, req.Query.Encode(), tt.expectedQuery.Encode())\n\t\t\t// XXX: uassert.Equal(t, req.Query, tt.expectedQuery)\n\t\t\tuassert.Equal(t, req.String(), tt.expectedString)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hehpDdy/trIb2O+ttrysfSgbnB9zf5bGRAmmGBURxaRVFMCq5XskZdLacowIEwNOJmsuDIX/Lm8/KfQcgWaOBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"recurring","path":"gno.land/p/demo/subscription/recurring","files":[{"name":"errors.gno","body":"package recurring\n\nimport \"errors\"\n\nvar (\n\tErrNoSub = errors.New(\"recurring subscription: no active subscription found\")\n\tErrSubExpired = errors.New(\"recurring subscription: your subscription has expired\")\n\tErrAmt = errors.New(\"recurring subscription: payment amount does not match the required subscription amount\")\n\tErrAlreadySub = errors.New(\"recurring subscription: this address already has an active subscription\")\n\tErrNotAuthorized = errors.New(\"recurring subscription: action not authorized\")\n)\n"},{"name":"recurring.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/ownable\"\n)\n\n// RecurringSubscription represents a subscription that requires periodic payments.\n// It includes the duration of the subscription and the amount required per period.\ntype RecurringSubscription struct {\n\townable.Ownable\n\tduration time.Duration\n\tamount int64\n\tsubs *avl.Tree // std.Address -\u003e time.Time\n}\n\n// NewRecurringSubscription creates and returns a new recurring subscription.\nfunc NewRecurringSubscription(duration time.Duration, amount int64) *RecurringSubscription {\n\treturn \u0026RecurringSubscription{\n\t\tOwnable: *ownable.New(),\n\t\tduration: duration,\n\t\tamount: amount,\n\t\tsubs: avl.NewTree(),\n\t}\n}\n\n// HasValidSubscription verifies if the caller has an active recurring subscription.\nfunc (rs *RecurringSubscription) HasValidSubscription(addr std.Address) error {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn ErrNoSub\n\t}\n\n\tif time.Now().After(expTime.(time.Time)) {\n\t\treturn ErrSubExpired\n\t}\n\n\treturn nil\n}\n\n// processSubscription processes the payment for a given receiver and renews or adds their subscription.\nfunc (rs *RecurringSubscription) processSubscription(receiver std.Address) error {\n\tamount := std.GetOrigSend()\n\n\tif amount.AmountOf(\"ugnot\") != rs.amount {\n\t\treturn ErrAmt\n\t}\n\n\texpTime, exists := rs.subs.Get(receiver.String())\n\n\t// If the user is already a subscriber but his subscription has expired, authorize renewal\n\tif exists {\n\t\texpiration := expTime.(time.Time)\n\t\tif time.Now().Before(expiration) {\n\t\t\treturn ErrAlreadySub\n\t\t}\n\t}\n\n\t// Renew or add subscription\n\tnewExpiration := time.Now().Add(rs.duration)\n\trs.subs.Set(receiver.String(), newExpiration)\n\n\treturn nil\n}\n\n// Subscribe handles the payment for the caller's subscription.\nfunc (rs *RecurringSubscription) Subscribe() error {\n\tcaller := std.PrevRealm().Addr()\n\n\treturn rs.processSubscription(caller)\n}\n\n// GiftSubscription allows the user to pay for a subscription for another user (receiver).\nfunc (rs *RecurringSubscription) GiftSubscription(receiver std.Address) error {\n\treturn rs.processSubscription(receiver)\n}\n\n// GetExpiration returns the expiration date of the recurring subscription for a given caller.\nfunc (rs *RecurringSubscription) GetExpiration(addr std.Address) (time.Time, error) {\n\texpTime, exists := rs.subs.Get(addr.String())\n\tif !exists {\n\t\treturn time.Time{}, ErrNoSub\n\t}\n\n\treturn expTime.(time.Time), nil\n}\n\n// UpdateAmount allows the owner of the subscription contract to change the required subscription amount.\nfunc (rs *RecurringSubscription) UpdateAmount(newAmount int64) error {\n\tif !rs.CallerIsOwner() {\n\t\treturn ErrNotAuthorized\n\t}\n\n\trs.amount = newAmount\n\treturn nil\n}\n\n// GetAmount returns the current amount required for each subscription period.\nfunc (rs *RecurringSubscription) GetAmount() int64 {\n\treturn rs.amount\n}\n"},{"name":"recurring_test.gno","body":"package recurring\n\nimport (\n\t\"std\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\talice = testutils.TestAddress(\"alice\")\n\tbob = testutils.TestAddress(\"bob\")\n\tcharlie = testutils.TestAddress(\"charlie\")\n)\n\nfunc TestRecurringSubscription(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration, err := rs.GetExpiration(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected to get expiration for Alice\")\n}\n\nfunc TestRecurringSubscriptionGift(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.GiftSubscription(bob)\n\tuassert.NoError(t, err, \"Expected ProcessPaymentGift to succeed for Bob\")\n\n\terr = rs.HasValidSubscription(bob)\n\tuassert.NoError(t, err, \"Expected Bob to have access\")\n\n\terr = rs.HasValidSubscription(charlie)\n\tuassert.Error(t, err, \"Expected Charlie to fail access check\")\n}\n\nfunc TestRecurringSubscriptionExpiration(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.Error(t, err, \"Expected Alice's subscription to be expired\")\n}\n\nfunc TestUpdateAmountAuthorization(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tstd.TestSetOrigCaller(bob)\n\terr = rs.UpdateAmount(3000)\n\tuassert.Error(t, err, \"Expected Bob to fail when updating amount\")\n}\n\nfunc TestGetAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tamount := rs.GetAmount()\n\tuassert.Equal(t, amount, int64(1000), \"Expected the initial amount to be 1000 ugnot\")\n\n\terr := rs.UpdateAmount(2000)\n\tuassert.NoError(t, err, \"Expected Alice to succeed in updating amount\")\n\n\tamount = rs.GetAmount()\n\tuassert.Equal(t, amount, int64(2000), \"Expected the updated amount to be 2000 ugnot\")\n}\n\nfunc TestIncorrectPaymentAmount(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 500}}, nil)\n\terr := rs.Subscribe()\n\tuassert.Error(t, err, \"Expected payment with incorrect amount to fail\")\n}\n\nfunc TestMultiplePaymentsForSameUser(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour*24, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.Error(t, err, \"Expected second ProcessPayment to fail for Alice due to existing subscription\")\n}\n\nfunc TestRecurringSubscriptionWithMultiplePayments(t *testing.T) {\n\tstd.TestSetRealm(std.NewUserRealm(alice))\n\trs := NewRecurringSubscription(time.Hour, 1000)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr := rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected first ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after first payment\")\n\n\texpiration := time.Now().Add(-time.Hour * 2)\n\trs.subs.Set(std.PrevRealm().Addr().String(), expiration)\n\n\tstd.TestSetOrigSend([]std.Coin{{Denom: \"ugnot\", Amount: 1000}}, nil)\n\terr = rs.Subscribe()\n\tuassert.NoError(t, err, \"Expected second ProcessPayment to succeed for Alice\")\n\n\terr = rs.HasValidSubscription(std.PrevRealm().Addr())\n\tuassert.NoError(t, err, \"Expected Alice to have access after second payment\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hJ94+RndQNA5hfCfXb4rGepCiTLHPF+Utxx3FaPT/NxDVOswueELXkGhddrtQxIa9sBc2m6Ne9TgtTJzhhDRAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"registry","path":"gno.land/r/stefann/registry","files":[{"name":"registry.gno","body":"package registry\n\nimport (\n\t\"errors\"\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n)\n\nvar (\n\tmainAddr std.Address\n\tbackupAddr std.Address\n\towner *ownable.Ownable\n)\n\nfunc init() {\n\tmainAddr = \"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\"\n\tbackupAddr = \"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8\"\n\n\towner = ownable.NewWithAddress(mainAddr)\n}\n\nfunc MainAddr() std.Address {\n\treturn mainAddr\n}\n\nfunc BackupAddr() std.Address {\n\treturn backupAddr\n}\n\nfunc SetMainAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tmainAddr = addr\n\treturn nil\n}\n\nfunc SetBackupAddr(addr std.Address) error {\n\tif !addr.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\towner.AssertCallerIsOwner()\n\n\tbackupAddr = addr\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rfJKyUoxMqhIEnHkSqAeWfe6sMLpTMFo6vLrBEOOpeMX3rXWub/SBsNyshfgN1Dsn9gbc6RIt4MPOHs51uEUAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"releases","path":"gno.land/p/demo/releases","files":[{"name":"changelog.gno","body":"package releases\n\ntype changelog struct {\n\tname string\n\treleases []release\n}\n\nfunc NewChangelog(name string) *changelog {\n\treturn \u0026changelog{\n\t\tname: name,\n\t\treleases: make([]release, 0),\n\t}\n}\n\nfunc (c *changelog) NewRelease(version, url, notes string) {\n\tif latest := c.Latest(); latest != nil {\n\t\tlatest.isLatest = false\n\t}\n\n\trelease := release{\n\t\t// manual\n\t\tversion: version,\n\t\turl: url,\n\t\tnotes: notes,\n\n\t\t// internal\n\t\tchangelog: c,\n\t\tisLatest: true,\n\t}\n\n\tc.releases = append(c.releases, release)\n}\n\nfunc (c *changelog) Render(path string) string {\n\tif path == \"\" {\n\t\toutput := \"# \" + c.name + \"\\n\\n\"\n\t\tmax := len(c.releases) - 1\n\t\tmin := 0\n\t\tif max-min \u003e 10 {\n\t\t\tmin = max - 10\n\t\t}\n\t\tfor i := max; i \u003e= min; i-- {\n\t\t\trelease := c.releases[i]\n\t\t\toutput += release.Render()\n\t\t}\n\t\treturn output\n\t}\n\n\trelease := c.ByVersion(path)\n\tif release != nil {\n\t\treturn release.Render()\n\t}\n\n\treturn \"no such release\"\n}\n\nfunc (c *changelog) Latest() *release {\n\tif len(c.releases) \u003e 0 {\n\t\tpos := len(c.releases) - 1\n\t\treturn \u0026c.releases[pos]\n\t}\n\treturn nil\n}\n\nfunc (c *changelog) ByVersion(version string) *release {\n\tfor _, release := range c.releases {\n\t\tif release.version == version {\n\t\t\treturn \u0026release\n\t\t}\n\t}\n\treturn nil\n}\n"},{"name":"release.gno","body":"package releases\n\ntype release struct {\n\t// manual\n\tversion string\n\turl string\n\tnotes string\n\n\t// internal\n\tisLatest bool\n\tchangelog *changelog\n}\n\nfunc (r *release) URL() string { return r.url }\nfunc (r *release) Version() string { return r.version }\nfunc (r *release) Notes() string { return r.notes }\nfunc (r *release) IsLatest() bool { return r.isLatest }\n\nfunc (r *release) Title() string {\n\toutput := r.changelog.name + \" \" + r.version\n\tif r.isLatest {\n\t\toutput += \" (latest)\"\n\t}\n\treturn output\n}\n\nfunc (r *release) Link() string {\n\treturn \"[\" + r.Title() + \"](\" + r.url + \")\"\n}\n\nfunc (r *release) Render() string {\n\toutput := \"\"\n\toutput += \"## \" + r.Link() + \"\\n\\n\"\n\tif r.notes != \"\" {\n\t\toutput += r.notes + \"\\n\\n\"\n\t}\n\treturn output\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Roe8Vin4Wk3/yh+RqW1kdQrI28XyztLi4r8ze2sV3+O3gk9phej122zNnq1SbuUqfxmjebb/G3brQ11nSUUAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"releases_example","path":"gno.land/r/demo/releases_example","files":[{"name":"dummy.gno","body":"package releases_example\n\nfunc init() {\n\t// dummy example data\n\tchangelog.NewRelease(\n\t\t\"v1\",\n\t\t\"r/demo/examples_example_v1\",\n\t\t\"initial release\",\n\t)\n\tchangelog.NewRelease(\n\t\t\"v2\",\n\t\t\"r/demo/examples_example_v2\",\n\t\t\"various improvements\",\n\t)\n}\n"},{"name":"example.gno","body":"// this package demonstrates a way to manage contract releases.\npackage releases_example\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/releases\"\n)\n\nvar (\n\tchangelog = releases.NewChangelog(\"example_app\")\n\tadmin = std.Address(\"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj\") // @administrator\n)\n\nfunc init() {\n\t// FIXME: admin = std.GetCreator()\n}\n\nfunc NewRelease(name, url, notes string) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tchangelog.NewRelease(name, url, notes)\n}\n\nfunc UpdateAdmin(address std.Address) {\n\tcaller := std.GetOrigCaller()\n\tif caller != admin {\n\t\tpanic(\"restricted area\")\n\t}\n\tadmin = address\n}\n\nfunc Render(path string) string {\n\treturn changelog.Render(path)\n}\n"},{"name":"releases0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/p/demo/releases\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tchangelog := releases.NewChangelog(\"example\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v1\", \"r/blahblah\", \"* initial version\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tchangelog.NewRelease(\"v2\", \"r/blahblah2\", \"* various improvements\\n* new shiny logo\")\n\tprint(changelog.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(changelog.Latest().Render())\n}\n\n// Output:\n// -----------\n// # example\n//\n// -----------\n// # example\n//\n// ## [example v1 (latest)](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// # example\n//\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n// ## [example v1](r/blahblah)\n//\n// * initial version\n//\n// -----------\n// ## [example v2 (latest)](r/blahblah2)\n//\n// * various improvements\n// * new shiny logo\n//\n"},{"name":"releases1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/releases_example\"\n)\n\nfunc main() {\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v1\"))\n\n\tprintln(\"-----------\")\n\tprint(releases_example.Render(\"v42\"))\n}\n\n// Output:\n// -----------\n// # example_app\n//\n// ## [example_app v2 (latest)](r/demo/examples_example_v2)\n//\n// various improvements\n//\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// ## [example_app v1](r/demo/examples_example_v1)\n//\n// initial release\n//\n// -----------\n// no such release\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d26uzEhAiDASTDRP7EwAXU5MdXdgYDkH5QUx1cMbf1ZFQ/2SPvJcWHLsIJXK7wczamuK0ED8gKhfPrpT7rqfDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"rewards","path":"gno.land/r/sys/rewards","files":[{"name":"rewards.gno","body":"// This package will be used to manage proof-of-contributions on the exposed smart-contract side.\npackage rewards\n\n// TODO: write specs.\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l3Cuk7X1oEqmwkYqLQt+brc5y8N9TdsWNU/VWDOgthWDyr40BifbUg0fPyKGuHak4TPWGceaM6RGxnDE0nu1Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"rotree","path":"gno.land/p/demo/avl/rotree","files":[{"name":"rotree.gno","body":"// Package rotree provides a read-only wrapper for avl.Tree with safe value transformation.\n//\n// It is useful when you want to expose a read-only view of a tree while ensuring that\n// the sensitive data cannot be modified.\n//\n// Example:\n//\n//\t// Define a user structure with sensitive data\n//\ttype User struct {\n//\t\tName string\n//\t\tBalance int\n//\t\tInternal string // sensitive field\n//\t}\n//\n//\t// Create and populate the original tree\n//\tprivateTree := avl.NewTree()\n//\tprivateTree.Set(\"alice\", \u0026User{\n//\t\tName: \"Alice\",\n//\t\tBalance: 100,\n//\t\tInternal: \"sensitive\",\n//\t})\n//\n//\t// Create a safe transformation function that copies the struct\n//\t// while excluding sensitive data\n//\tmakeEntrySafeFn := func(v interface{}) interface{} {\n//\t\tu := v.(*User)\n//\t\treturn \u0026User{\n//\t\t\tName: u.Name,\n//\t\t\tBalance: u.Balance,\n//\t\t\tInternal: \"\", // omit sensitive data\n//\t\t}\n//\t}\n//\n//\t// Create a read-only view of the tree\n//\tPublicTree := rotree.Wrap(tree, makeEntrySafeFn)\n//\n//\t// Safely access the data\n//\tvalue, _ := roTree.Get(\"alice\")\n//\tuser := value.(*User)\n//\t// user.Name == \"Alice\"\n//\t// user.Balance == 100\n//\t// user.Internal == \"\" (sensitive data is filtered)\npackage rotree\n\nimport (\n\t\"gno.land/p/demo/avl\"\n)\n\n// Wrap creates a new ReadOnlyTree from an existing avl.Tree and a safety transformation function.\n// If makeEntrySafeFn is nil, values will be returned as-is without transformation.\n//\n// makeEntrySafeFn is a function that transforms a tree entry into a safe version that can be exposed to external users.\n// This function should be implemented based on the specific safety requirements of your use case:\n//\n// 1. No-op transformation: For primitive types (int, string, etc.) or already safe objects,\n// simply pass nil as the makeEntrySafeFn to return values as-is.\n//\n// 2. Defensive copying: For mutable types like slices or maps, you should create a deep copy\n// to prevent modification of the original data.\n// Example: func(v interface{}) interface{} { return append([]int{}, v.([]int)...) }\n//\n// 3. Read-only wrapper: Return a read-only version of the object that implements\n// a limited interface.\n// Example: func(v interface{}) interface{} { return NewReadOnlyObject(v) }\n//\n// 4. DAO transformation: Transform the object into a data access object that\n// controls how the underlying data can be accessed.\n// Example: func(v interface{}) interface{} { return NewDAO(v) }\n//\n// The function ensures that the returned object is safe to expose to untrusted code,\n// preventing unauthorized modifications to the original data structure.\nfunc Wrap(tree *avl.Tree, makeEntrySafeFn func(interface{}) interface{}) *ReadOnlyTree {\n\treturn \u0026ReadOnlyTree{\n\t\ttree: tree,\n\t\tmakeEntrySafeFn: makeEntrySafeFn,\n\t}\n}\n\n// ReadOnlyTree wraps an avl.Tree and provides read-only access.\ntype ReadOnlyTree struct {\n\ttree *avl.Tree\n\tmakeEntrySafeFn func(interface{}) interface{}\n}\n\n// Verify that ReadOnlyTree implements ITree\nvar _ avl.ITree = (*ReadOnlyTree)(nil)\n\n// getSafeValue applies the makeEntrySafeFn if it exists, otherwise returns the original value\nfunc (roTree *ReadOnlyTree) getSafeValue(value interface{}) interface{} {\n\tif roTree.makeEntrySafeFn == nil {\n\t\treturn value\n\t}\n\treturn roTree.makeEntrySafeFn(value)\n}\n\n// Size returns the number of key-value pairs in the tree.\nfunc (roTree *ReadOnlyTree) Size() int {\n\treturn roTree.tree.Size()\n}\n\n// Has checks whether a key exists in the tree.\nfunc (roTree *ReadOnlyTree) Has(key string) bool {\n\treturn roTree.tree.Has(key)\n}\n\n// Get retrieves the value associated with the given key, converted to a safe format.\nfunc (roTree *ReadOnlyTree) Get(key string) (interface{}, bool) {\n\tvalue, exists := roTree.tree.Get(key)\n\tif !exists {\n\t\treturn nil, false\n\t}\n\treturn roTree.getSafeValue(value), true\n}\n\n// GetByIndex retrieves the key-value pair at the specified index in the tree, with the value converted to a safe format.\nfunc (roTree *ReadOnlyTree) GetByIndex(index int) (string, interface{}) {\n\tkey, value := roTree.tree.GetByIndex(index)\n\treturn key, roTree.getSafeValue(value)\n}\n\n// Iterate performs an in-order traversal of the tree within the specified key range.\nfunc (roTree *ReadOnlyTree) Iterate(start, end string, cb avl.IterCbFn) bool {\n\treturn roTree.tree.Iterate(start, end, func(key string, value interface{}) bool {\n\t\treturn cb(key, roTree.getSafeValue(value))\n\t})\n}\n\n// ReverseIterate performs a reverse in-order traversal of the tree within the specified key range.\nfunc (roTree *ReadOnlyTree) ReverseIterate(start, end string, cb avl.IterCbFn) bool {\n\treturn roTree.tree.ReverseIterate(start, end, func(key string, value interface{}) bool {\n\t\treturn cb(key, roTree.getSafeValue(value))\n\t})\n}\n\n// IterateByOffset performs an in-order traversal of the tree starting from the specified offset.\nfunc (roTree *ReadOnlyTree) IterateByOffset(offset int, count int, cb avl.IterCbFn) bool {\n\treturn roTree.tree.IterateByOffset(offset, count, func(key string, value interface{}) bool {\n\t\treturn cb(key, roTree.getSafeValue(value))\n\t})\n}\n\n// ReverseIterateByOffset performs a reverse in-order traversal of the tree starting from the specified offset.\nfunc (roTree *ReadOnlyTree) ReverseIterateByOffset(offset int, count int, cb avl.IterCbFn) bool {\n\treturn roTree.tree.ReverseIterateByOffset(offset, count, func(key string, value interface{}) bool {\n\t\treturn cb(key, roTree.getSafeValue(value))\n\t})\n}\n\n// Set is not supported on ReadOnlyTree and will panic.\nfunc (roTree *ReadOnlyTree) Set(key string, value interface{}) bool {\n\tpanic(\"Set operation not supported on ReadOnlyTree\")\n}\n\n// Remove is not supported on ReadOnlyTree and will panic.\nfunc (roTree *ReadOnlyTree) Remove(key string) (value interface{}, removed bool) {\n\tpanic(\"Remove operation not supported on ReadOnlyTree\")\n}\n\n// RemoveByIndex is not supported on ReadOnlyTree and will panic.\nfunc (roTree *ReadOnlyTree) RemoveByIndex(index int) (key string, value interface{}) {\n\tpanic(\"RemoveByIndex operation not supported on ReadOnlyTree\")\n}\n"},{"name":"rotree_test.gno","body":"package rotree\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc TestExample(t *testing.T) {\n\t// User represents our internal data structure\n\ttype User struct {\n\t\tID string\n\t\tName string\n\t\tBalance int\n\t\tInternal string // sensitive internal data\n\t}\n\n\t// Create and populate the original tree with user pointers\n\ttree := avl.NewTree()\n\ttree.Set(\"alice\", \u0026User{\n\t\tID: \"1\",\n\t\tName: \"Alice\",\n\t\tBalance: 100,\n\t\tInternal: \"sensitive_data_1\",\n\t})\n\ttree.Set(\"bob\", \u0026User{\n\t\tID: \"2\",\n\t\tName: \"Bob\",\n\t\tBalance: 200,\n\t\tInternal: \"sensitive_data_2\",\n\t})\n\n\t// Define a makeEntrySafeFn that:\n\t// 1. Creates a defensive copy of the User struct\n\t// 2. Omits sensitive internal data\n\tmakeEntrySafeFn := func(v interface{}) interface{} {\n\t\toriginalUser := v.(*User)\n\t\treturn \u0026User{\n\t\t\tID: originalUser.ID,\n\t\t\tName: originalUser.Name,\n\t\t\tBalance: originalUser.Balance,\n\t\t\tInternal: \"\", // Omit sensitive data\n\t\t}\n\t}\n\n\t// Create a read-only view of the tree\n\troTree := Wrap(tree, makeEntrySafeFn)\n\n\t// Test retrieving and verifying a user\n\tt.Run(\"Get User\", func(t *testing.T) {\n\t\t// Get user from read-only tree\n\t\tvalue, exists := roTree.Get(\"alice\")\n\t\tif !exists {\n\t\t\tt.Fatal(\"User 'alice' not found\")\n\t\t}\n\n\t\tuser := value.(*User)\n\n\t\t// Verify user data is correct\n\t\tif user.Name != \"Alice\" || user.Balance != 100 {\n\t\t\tt.Errorf(\"Unexpected user data: got name=%s balance=%d\", user.Name, user.Balance)\n\t\t}\n\n\t\t// Verify sensitive data is not exposed\n\t\tif user.Internal != \"\" {\n\t\t\tt.Error(\"Sensitive data should not be exposed\")\n\t\t}\n\n\t\t// Verify it's a different instance than the original\n\t\toriginalValue, _ := tree.Get(\"alice\")\n\t\toriginalUser := originalValue.(*User)\n\t\tif user == originalUser {\n\t\t\tt.Error(\"Read-only tree should return a copy, not the original pointer\")\n\t\t}\n\t})\n\n\t// Test iterating over users\n\tt.Run(\"Iterate Users\", func(t *testing.T) {\n\t\tcount := 0\n\t\troTree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t\tuser := value.(*User)\n\t\t\t// Verify each user has empty Internal field\n\t\t\tif user.Internal != \"\" {\n\t\t\t\tt.Error(\"Sensitive data exposed during iteration\")\n\t\t\t}\n\t\t\tcount++\n\t\t\treturn false\n\t\t})\n\n\t\tif count != 2 {\n\t\t\tt.Errorf(\"Expected 2 users, got %d\", count)\n\t\t}\n\t})\n\n\t// Verify that modifications to the returned user don't affect the original\n\tt.Run(\"Modification Safety\", func(t *testing.T) {\n\t\tvalue, _ := roTree.Get(\"alice\")\n\t\tuser := value.(*User)\n\n\t\t// Try to modify the returned user\n\t\tuser.Balance = 999\n\t\tuser.Internal = \"hacked\"\n\n\t\t// Verify original is unchanged\n\t\toriginalValue, _ := tree.Get(\"alice\")\n\t\toriginalUser := originalValue.(*User)\n\t\tif originalUser.Balance != 100 || originalUser.Internal != \"sensitive_data_1\" {\n\t\t\tt.Error(\"Original user data was modified\")\n\t\t}\n\t})\n}\n\nfunc TestReadOnlyTree(t *testing.T) {\n\t// Example of a makeEntrySafeFn that appends \"_readonly\" to demonstrate transformation\n\tmakeEntrySafeFn := func(value interface{}) interface{} {\n\t\treturn value.(string) + \"_readonly\"\n\t}\n\n\ttree := avl.NewTree()\n\ttree.Set(\"key1\", \"value1\")\n\ttree.Set(\"key2\", \"value2\")\n\ttree.Set(\"key3\", \"value3\")\n\n\troTree := Wrap(tree, makeEntrySafeFn)\n\n\ttests := []struct {\n\t\tname string\n\t\tkey string\n\t\texpected interface{}\n\t\texists bool\n\t}{\n\t\t{\"ExistingKey1\", \"key1\", \"value1_readonly\", true},\n\t\t{\"ExistingKey2\", \"key2\", \"value2_readonly\", true},\n\t\t{\"NonExistingKey\", \"key4\", nil, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvalue, exists := roTree.Get(tt.key)\n\t\t\tif exists != tt.exists || value != tt.expected {\n\t\t\t\tt.Errorf(\"For key %s, expected %v (exists: %v), got %v (exists: %v)\", tt.key, tt.expected, tt.exists, value, exists)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Add example tests showing different makeEntrySafeFn implementations\nfunc TestMakeEntrySafeFnVariants(t *testing.T) {\n\ttree := avl.NewTree()\n\ttree.Set(\"slice\", []int{1, 2, 3})\n\ttree.Set(\"map\", map[string]int{\"a\": 1})\n\n\ttests := []struct {\n\t\tname string\n\t\tmakeEntrySafeFn func(interface{}) interface{}\n\t\tkey string\n\t\tvalidate func(t *testing.T, value interface{})\n\t}{\n\t\t{\n\t\t\tname: \"Defensive Copy Slice\",\n\t\t\tmakeEntrySafeFn: func(v interface{}) interface{} {\n\t\t\t\toriginal := v.([]int)\n\t\t\t\treturn append([]int{}, original...)\n\t\t\t},\n\t\t\tkey: \"slice\",\n\t\t\tvalidate: func(t *testing.T, value interface{}) {\n\t\t\t\tslice := value.([]int)\n\t\t\t\t// Modify the returned slice\n\t\t\t\tslice[0] = 999\n\t\t\t\t// Verify original is unchanged\n\t\t\t\toriginalValue, _ := tree.Get(\"slice\")\n\t\t\t\toriginal := originalValue.([]int)\n\t\t\t\tif original[0] != 1 {\n\t\t\t\t\tt.Error(\"Original slice was modified\")\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t// Add more test cases for different makeEntrySafeFn implementations\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\troTree := Wrap(tree, tt.makeEntrySafeFn)\n\t\t\tvalue, exists := roTree.Get(tt.key)\n\t\t\tif !exists {\n\t\t\t\tt.Fatal(\"Key not found\")\n\t\t\t}\n\t\t\ttt.validate(t, value)\n\t\t})\n\t}\n}\n\nfunc TestNilMakeEntrySafeFn(t *testing.T) {\n\t// Create a tree with some test data\n\ttree := avl.NewTree()\n\toriginalValue := []int{1, 2, 3}\n\ttree.Set(\"test\", originalValue)\n\n\t// Create a ReadOnlyTree with nil makeEntrySafeFn\n\troTree := Wrap(tree, nil)\n\n\t// Test that we get back the original value\n\tvalue, exists := roTree.Get(\"test\")\n\tif !exists {\n\t\tt.Fatal(\"Key not found\")\n\t}\n\n\t// Verify it's the exact same slice (not a copy)\n\tretrievedSlice := value.([]int)\n\tif \u0026retrievedSlice[0] != \u0026originalValue[0] {\n\t\tt.Error(\"Expected to get back the original slice reference\")\n\t}\n\n\t// Test through iteration as well\n\troTree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\tretrievedSlice := value.([]int)\n\t\tif \u0026retrievedSlice[0] != \u0026originalValue[0] {\n\t\t\tt.Error(\"Expected to get back the original slice reference in iteration\")\n\t\t}\n\t\treturn false\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"++P8C9ll7XCZ6Wzgr2hk7UYFGeB+EFJo1R4gr64if6yEfVlR7YznrxIL7w8XfOpRqVMSgFeo6C1csDGY1TwzAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"seqid","path":"gno.land/p/demo/seqid","files":[{"name":"README.md","body":"# seqid\n\n```\npackage seqid // import \"gno.land/p/demo/seqid\"\n\nPackage seqid provides a simple way to have sequential IDs which will be ordered\ncorrectly when inserted in an AVL tree.\n\nSample usage:\n\n var id seqid.ID\n var users avl.Tree\n\n func NewUser() {\n \tusers.Set(id.Next().Binary(), \u0026User{ ... })\n }\n\nTYPES\n\ntype ID uint64\n An ID is a simple sequential ID generator.\n\nfunc FromBinary(b string) (ID, bool)\n FromBinary creates a new ID from the given string.\n\nfunc (i ID) Binary() string\n Binary returns a big-endian binary representation of the ID, suitable to be\n used as an AVL key.\n\nfunc (i *ID) Next() ID\n Next advances the ID i. It will panic if increasing ID would overflow.\n\nfunc (i *ID) TryNext() (ID, bool)\n TryNext increases i by 1 and returns its value. It returns true if\n successful, or false if the increment would result in an overflow.\n```\n"},{"name":"seqid.gno","body":"// Package seqid provides a simple way to have sequential IDs which will be\n// ordered correctly when inserted in an AVL tree.\n//\n// Sample usage:\n//\n//\tvar id seqid.ID\n//\tvar users avl.Tree\n//\n//\tfunc NewUser() {\n//\t\tusers.Set(id.Next().String(), \u0026User{ ... })\n//\t}\npackage seqid\n\nimport (\n\t\"encoding/binary\"\n\n\t\"gno.land/p/demo/cford32\"\n)\n\n// An ID is a simple sequential ID generator.\ntype ID uint64\n\n// Next advances the ID i.\n// It will panic if increasing ID would overflow.\nfunc (i *ID) Next() ID {\n\tnext, ok := i.TryNext()\n\tif !ok {\n\t\tpanic(\"seqid: next ID overflows uint64\")\n\t}\n\treturn next\n}\n\nconst maxID ID = 1\u003c\u003c64 - 1\n\n// TryNext increases i by 1 and returns its value.\n// It returns true if successful, or false if the increment would result in\n// an overflow.\nfunc (i *ID) TryNext() (ID, bool) {\n\tif *i == maxID {\n\t\t// Addition will overflow.\n\t\treturn 0, false\n\t}\n\t*i++\n\treturn *i, true\n}\n\n// Binary returns a big-endian binary representation of the ID,\n// suitable to be used as an AVL key.\nfunc (i ID) Binary() string {\n\tbuf := make([]byte, 8)\n\tbinary.BigEndian.PutUint64(buf, uint64(i))\n\treturn string(buf)\n}\n\n// String encodes i using cford32's compact encoding. For more information,\n// see the documentation for package [gno.land/p/demo/cford32].\n//\n// The result of String will be a 7-byte string for IDs [0,2^34), and a\n// 13-byte string for all values following that. All generated string IDs\n// follow the same lexicographic order as their number values; that is, for any\n// two IDs (x, y) such that x \u003c y, x.String() \u003c y.String().\n// As such, this string representation is suitable to be used as an AVL key.\nfunc (i ID) String() string {\n\treturn string(cford32.PutCompact(uint64(i)))\n}\n\n// FromBinary creates a new ID from the given string, expected to be a binary\n// big-endian encoding of an ID (such as that of [ID.Binary]).\n// The second return value is true if the conversion was successful.\nfunc FromBinary(b string) (ID, bool) {\n\tif len(b) != 8 {\n\t\treturn 0, false\n\t}\n\treturn ID(binary.BigEndian.Uint64([]byte(b))), true\n}\n\n// FromString creates a new ID from the given string, expected to be a string\n// representation using cford32, such as that returned by [ID.String].\n//\n// The encoding scheme used by cford32 allows the same ID to have many\n// different representations (though the one returned by [ID.String] is only\n// one, deterministic and safe to be used in AVL). The encoding scheme is\n// \"human-centric\" and is thus case insensitive, and maps some ambiguous\n// characters to be the same, ie. L = I = 1, O = 0. For this reason, when\n// parsing user input to retrieve a key (encoded as a string), always sanitize\n// it first using FromString, then run String(), instead of using the user's\n// input directly.\nfunc FromString(b string) (ID, error) {\n\tn, err := cford32.Uint64([]byte(b))\n\treturn ID(n), err\n}\n"},{"name":"seqid_test.gno","body":"package seqid\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestID(t *testing.T) {\n\tvar i ID\n\n\tfor j := 0; j \u003c 100; j++ {\n\t\ti.Next()\n\t}\n\tif i != 100 {\n\t\tt.Fatalf(\"invalid: wanted %d got %d\", 100, i)\n\t}\n}\n\nfunc TestID_Overflow(t *testing.T) {\n\ti := ID(maxID)\n\n\tdefer func() {\n\t\terr := recover()\n\t\tif !strings.Contains(fmt.Sprint(err), \"next ID overflows\") {\n\t\t\tt.Errorf(\"did not overflow\")\n\t\t}\n\t}()\n\n\ti.Next()\n}\n\nfunc TestID_Binary(t *testing.T) {\n\tvar i ID\n\tprev := i.Binary()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().Binary()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %x \u003e prev %x\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n\nfunc TestID_String(t *testing.T) {\n\tvar i ID\n\tprev := i.String()\n\n\tfor j := 0; j \u003c 1000; j++ {\n\t\tcur := i.Next().String()\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n\n\t// Test for when cford32 switches over to the long encoding.\n\ti = 1\u003c\u003c34 - 512\n\tfor j := 0; j \u003c 1024; j++ {\n\t\tcur := i.Next().String()\n\t\t// println(cur)\n\t\tif cur \u003c= prev {\n\t\t\tt.Fatalf(\"cur %s \u003e prev %s\", cur, prev)\n\t\t}\n\t\tprev = cur\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dGVeymmefsylXMnpOBeJazXAptNmGrPlt+GHe7QJde8/+hPDCdkOxX5/h5NjqbYlG7RRv0EFRm8aufMQXhZ2AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"shifumi","path":"gno.land/r/demo/games/shifumi","files":[{"name":"shifumi.gno","body":"package shifumi\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst (\n\tempty = iota\n\trock\n\tpaper\n\tscissors\n\tlast\n)\n\ntype game struct {\n\tplayer1, player2 std.Address // shifumi is a 2 players game\n\tmove1, move2 int // can be empty, rock, paper, or scissors\n}\n\nvar games avl.Tree\nvar id seqid.ID\n\nfunc (g *game) play(player std.Address, move int) error {\n\tif !(move \u003e empty \u0026\u0026 move \u003c last) {\n\t\treturn errors.New(\"invalid move\")\n\t}\n\tif player != g.player1 \u0026\u0026 player != g.player2 {\n\t\treturn errors.New(\"invalid player\")\n\t}\n\tif player == g.player1 \u0026\u0026 g.move1 == empty {\n\t\tg.move1 = move\n\t\treturn nil\n\t}\n\tif player == g.player2 \u0026\u0026 g.move2 == empty {\n\t\tg.move2 = move\n\t\treturn nil\n\t}\n\treturn errors.New(\"already played\")\n}\n\nfunc (g *game) winner() int {\n\tif g.move1 == empty || g.move2 == empty {\n\t\treturn -1\n\t}\n\tif g.move1 == g.move2 {\n\t\treturn 0\n\t}\n\tif g.move1 == rock \u0026\u0026 g.move2 == scissors ||\n\t\tg.move1 == paper \u0026\u0026 g.move2 == rock ||\n\t\tg.move1 == scissors \u0026\u0026 g.move2 == paper {\n\t\treturn 1\n\t}\n\treturn 2\n}\n\n// NewGame creates a new game where player1 is the caller and player2 the argument.\n// A new game index is returned.\nfunc NewGame(player std.Address) int {\n\tgames.Set(id.Next().String(), \u0026game{player1: std.PrevRealm().Addr(), player2: player})\n\treturn int(id)\n}\n\n// Play executes a move for the game at index idx, where move can be:\n// 1 (rock), 2 (paper), 3 (scissors).\nfunc Play(idx, move int) {\n\tv, ok := games.Get(seqid.ID(idx).String())\n\tif !ok {\n\t\tpanic(\"game not found\")\n\t}\n\tif err := v.(*game).play(std.PrevRealm().Addr(), move); err != nil {\n\t\tpanic(err)\n\t}\n}\n\nfunc Render(path string) string {\n\tmov1 := []string{\"\", \" 🤜 \", \" 🫱 \", \" 👉 \"}\n\tmov2 := []string{\"\", \" 🤛 \", \" 🫲 \", \" 👈 \"}\n\twin := []string{\"pending\", \"draw\", \"player1\", \"player2\"}\n\n\toutput := `# 👊 ✋ ✌️ Shifumi\nActions:\n* [NewGame](shifumi$help\u0026func=NewGame) opponentAddress\n* [Play](shifumi$help\u0026func=Play) gameIndex move (1=rock, 2=paper, 3=scissors)\n\n game | player1 | | player2 | | win \n --- | --- | --- | --- | --- | ---\n`\n\t// Output the 100 most recent games.\n\tmaxGames := 100\n\tfor n := int(id); n \u003e 0 \u0026\u0026 int(id)-n \u003c maxGames; n-- {\n\t\tv, ok := games.Get(seqid.ID(n).String())\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tg := v.(*game)\n\t\toutput += strconv.Itoa(n) + \" | \" +\n\t\t\tshortName(g.player1) + \" | \" + mov1[g.move1] + \" | \" +\n\t\t\tshortName(g.player2) + \" | \" + mov2[g.move2] + \" | \" +\n\t\t\twin[g.winner()+1] + \"\\n\"\n\t}\n\treturn output\n}\n\nfunc shortName(addr std.Address) string {\n\tuser := users.GetUserByAddress(addr)\n\tif user != nil {\n\t\treturn user.Name\n\t}\n\tif len(addr) \u003c 10 {\n\t\treturn string(addr)\n\t}\n\treturn string(addr)[:10] + \"...\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9LkUf70FJdWM/dswz2PN6ArbxqsDeCNDfZASByyqAlnnGmGWqaGqsFpkZEdUSpvI6kWUIkDeTHMkDsDYXKCqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"simple","path":"gno.land/p/demo/gnorkle/storage/simple","files":[{"name":"storage.gno","body":"package simple\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/storage\"\n)\n\n// Storage is simple, bounded storage for published feed values.\ntype Storage struct {\n\tvalues []feed.Value\n\tmaxValues uint\n}\n\n// NewStorage creates a new Storage with the given maximum number of values.\n// If maxValues is 0, the storage is bounded to a size of one. If this is not desirable,\n// then don't provide a value of 0.\nfunc NewStorage(maxValues uint) *Storage {\n\tif maxValues == 0 {\n\t\tmaxValues = 1\n\t}\n\n\treturn \u0026Storage{\n\t\tmaxValues: maxValues,\n\t}\n}\n\n// Put adds a new value to the storage. If the storage is full, the oldest value\n// is removed. If maxValues is 0, the storage is bounded to a size of one.\nfunc (s *Storage) Put(value string) error {\n\tif s == nil {\n\t\treturn storage.ErrUndefined\n\t}\n\n\ts.values = append(s.values, feed.Value{String: value, Time: time.Now()})\n\tif uint(len(s.values)) \u003e s.maxValues {\n\t\ts.values = s.values[1:]\n\t}\n\n\treturn nil\n}\n\n// GetLatest returns the most recently added value, or an empty value if none exist.\nfunc (s Storage) GetLatest() feed.Value {\n\tif len(s.values) == 0 {\n\t\treturn feed.Value{}\n\t}\n\n\treturn s.values[len(s.values)-1]\n}\n\n// GetHistory returns all values in the storage, from oldest to newest.\nfunc (s Storage) GetHistory() []feed.Value {\n\treturn s.values\n}\n"},{"name":"storage_test.gno","body":"package simple_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/storage\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestStorage(t *testing.T) {\n\tvar undefinedStorage *simple.Storage\n\terr := undefinedStorage.Put(\"\")\n\tuassert.ErrorIs(t, err, storage.ErrUndefined, \"expected storage.ErrUndefined on undefined storage\")\n\n\ttests := []struct {\n\t\tname string\n\t\tvaluesToPut []string\n\t\texpLatestValueString string\n\t\texpLatestValueTimeIsZero bool\n\t\texpHistoricalValueStrings []string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\texpLatestValueTimeIsZero: true,\n\t\t},\n\t\t{\n\t\t\tname: \"one value\",\n\t\t\tvaluesToPut: []string{\"one\"},\n\t\t\texpLatestValueString: \"one\",\n\t\t\texpHistoricalValueStrings: []string{\"one\"},\n\t\t},\n\t\t{\n\t\t\tname: \"two values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\"},\n\t\t\texpLatestValueString: \"two\",\n\t\t\texpHistoricalValueStrings: []string{\"one\", \"two\"},\n\t\t},\n\t\t{\n\t\t\tname: \"three values\",\n\t\t\tvaluesToPut: []string{\"one\", \"two\", \"three\"},\n\t\t\texpLatestValueString: \"three\",\n\t\t\texpHistoricalValueStrings: []string{\"two\", \"three\"},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tsimpleStorage := simple.NewStorage(2)\n\t\t\tfor _, value := range tt.valuesToPut {\n\t\t\t\terr := simpleStorage.Put(value)\n\t\t\t\turequire.NoError(t, err, \"unexpected error putting value in storage\")\n\t\t\t}\n\n\t\t\tlatestValue := simpleStorage.GetLatest()\n\t\t\tuassert.Equal(t, tt.expLatestValueString, latestValue.String)\n\t\t\tuassert.Equal(t, tt.expLatestValueTimeIsZero, latestValue.Time.IsZero())\n\n\t\t\thistoricalValues := simpleStorage.GetHistory()\n\t\t\turequire.Equal(t, len(tt.expHistoricalValueStrings), len(historicalValues), \"historical values length does not match\")\n\n\t\t\tfor i, expValue := range tt.expHistoricalValueStrings {\n\t\t\t\tuassert.Equal(t, historicalValues[i].String, expValue)\n\t\t\t\turequire.False(t, historicalValues[i].Time.IsZero(), ufmt.Sprintf(\"unexpeced zero time for historical value at index %d\", i))\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y7R35tmsk8l+zhLUe6cKfjlqVBBwdfwwQ7esP0K0yFU6ZCx7iuWDyslG8HBHxTyZAy/4NwYr3K9r8aVZ9dz2Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"simpledao","path":"gno.land/p/demo/simpledao","files":[{"name":"dao.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\tErrInvalidExecutor = errors.New(\"invalid executor provided\")\n\tErrInvalidTitle = errors.New(\"invalid proposal title provided\")\n\tErrInsufficientProposalFunds = errors.New(\"insufficient funds for proposal\")\n\tErrInsufficientExecuteFunds = errors.New(\"insufficient funds for executing proposal\")\n\tErrProposalExecuted = errors.New(\"proposal already executed\")\n\tErrProposalInactive = errors.New(\"proposal is inactive\")\n\tErrProposalNotAccepted = errors.New(\"proposal is not accepted\")\n)\n\nvar (\n\tminProposalFeeValue int64 = 100 * 1_000_000 // minimum gnot required for a govdao proposal (100 GNOT)\n\tminExecuteFeeValue int64 = 500 * 1_000_000 // minimum gnot required for a govdao proposal (500 GNOT)\n\n\tminProposalFee = std.NewCoin(\"ugnot\", minProposalFeeValue)\n\tminExecuteFee = std.NewCoin(\"ugnot\", minExecuteFeeValue)\n)\n\n// SimpleDAO is a simple DAO implementation\ntype SimpleDAO struct {\n\tproposals *avl.Tree // seqid.ID -\u003e proposal\n\tmembStore membstore.MemberStore\n}\n\n// New creates a new instance of the simpledao DAO\nfunc New(membStore membstore.MemberStore) *SimpleDAO {\n\treturn \u0026SimpleDAO{\n\t\tproposals: avl.NewTree(),\n\t\tmembStore: membStore,\n\t}\n}\n\nfunc (s *SimpleDAO) Propose(request dao.ProposalRequest) (uint64, error) {\n\t// Make sure the executor is set\n\tif request.Executor == nil {\n\t\treturn 0, ErrInvalidExecutor\n\t}\n\n\t// Make sure the title is set\n\tif strings.TrimSpace(request.Title) == \"\" {\n\t\treturn 0, ErrInvalidTitle\n\t}\n\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minProposalFee.Amount\n\t)\n\n\t// Check if the proposal is valid\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn 0, ErrInsufficientProposalFunds\n\t}\n\n\t// Create the wrapped proposal\n\tprop := \u0026proposal{\n\t\tauthor: caller,\n\t\ttitle: request.Title,\n\t\tdescription: request.Description,\n\t\texecutor: request.Executor,\n\t\tstatus: dao.Active,\n\t\ttally: newTally(),\n\t\tgetTotalVotingPowerFn: s.membStore.TotalPower,\n\t}\n\n\t// Add the proposal\n\tid, err := s.addProposal(prop)\n\tif err != nil {\n\t\treturn 0, ufmt.Errorf(\"unable to add proposal, %s\", err.Error())\n\t}\n\n\t// Emit the proposal added event\n\tdao.EmitProposalAdded(id, caller)\n\n\treturn id, nil\n}\n\nfunc (s *SimpleDAO) VoteOnProposal(id uint64, option dao.VoteOption) error {\n\t// Verify the GOVDAO member\n\tcaller := getDAOCaller()\n\n\tmember, err := s.membStore.Member(caller)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get govdao member, %s\", err.Error())\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check the proposal status\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal was already executed, nothing to vote on anymore.\n\t\t//\n\t\t// In fact, the proposal should stop accepting\n\t\t// votes as soon as a 2/3+ majority is reached\n\t\t// on either option, but leaving the ability to vote still,\n\t\t// even if a proposal is accepted, or not accepted,\n\t\t// leaves room for \"principle\" vote decisions to be recorded\n\t\treturn ErrProposalInactive\n\t}\n\n\t// Cast the vote\n\tif err = prop.tally.castVote(member, option); err != nil {\n\t\treturn ufmt.Errorf(\"unable to vote on proposal %d, %s\", id, err.Error())\n\t}\n\n\t// Emit the vote cast event\n\tdao.EmitVoteAdded(id, caller, option)\n\n\t// Check the votes to see if quorum is reached\n\tvar (\n\t\ttotalPower = s.membStore.TotalPower()\n\t\tmajorityPower = (2 * totalPower) / 3\n\t)\n\n\tacceptProposal := func() {\n\t\tprop.status = dao.Accepted\n\n\t\tdao.EmitProposalAccepted(id)\n\t}\n\n\tdeclineProposal := func() {\n\t\tprop.status = dao.NotAccepted\n\n\t\tdao.EmitProposalNotAccepted(id)\n\t}\n\n\tswitch {\n\tcase prop.tally.yays \u003e majorityPower:\n\t\t// 2/3+ voted YES\n\t\tacceptProposal()\n\tcase prop.tally.nays \u003e majorityPower:\n\t\t// 2/3+ voted NO\n\t\tdeclineProposal()\n\tcase prop.tally.abstains \u003e majorityPower:\n\t\t// 2/3+ voted ABSTAIN\n\t\tdeclineProposal()\n\tcase prop.tally.yays+prop.tally.nays+prop.tally.abstains \u003e= totalPower:\n\t\t// Everyone voted, but it's undecided,\n\t\t// hence the proposal can't go through\n\t\tdeclineProposal()\n\tdefault:\n\t\t// Quorum not reached\n\t}\n\n\treturn nil\n}\n\nfunc (s *SimpleDAO) ExecuteProposal(id uint64) error {\n\tvar (\n\t\tcaller = getDAOCaller()\n\t\tsentCoins = std.GetOrigSend() // Get the sent coins, if any\n\t\tcanCoverFee = sentCoins.AmountOf(\"ugnot\") \u003e= minExecuteFee.Amount\n\t)\n\n\t// Check if the non-DAO member can cover the execute fee\n\tif !s.membStore.IsMember(caller) \u0026\u0026 !canCoverFee {\n\t\treturn ErrInsufficientExecuteFunds\n\t}\n\n\t// Check if the proposal exists\n\tpropRaw, err := s.ProposalByID(id)\n\tif err != nil {\n\t\treturn ufmt.Errorf(\"unable to get proposal %d, %s\", id, err.Error())\n\t}\n\n\tprop := propRaw.(*proposal)\n\n\t// Check if the proposal is executed\n\tif prop.Status() == dao.ExecutionSuccessful ||\n\t\tprop.Status() == dao.ExecutionFailed {\n\t\t// Proposal is already executed\n\t\treturn ErrProposalExecuted\n\t}\n\n\t// Check the proposal status\n\tif prop.Status() != dao.Accepted {\n\t\t// Proposal is not accepted, cannot be executed\n\t\treturn ErrProposalNotAccepted\n\t}\n\n\t// Emit an event when the execution finishes\n\tdefer dao.EmitProposalExecuted(id, prop.status)\n\n\t// Attempt to execute the proposal\n\tif err = prop.executor.Execute(); err != nil {\n\t\tprop.status = dao.ExecutionFailed\n\n\t\treturn ufmt.Errorf(\"error during proposal %d execution, %s\", id, err.Error())\n\t}\n\n\t// Update the proposal status\n\tprop.status = dao.ExecutionSuccessful\n\n\treturn nil\n}\n\n// getDAOCaller returns the DAO caller.\n// XXX: This is not a great way to determine the caller, and it is very unsafe.\n// However, the current MsgRun context does not persist escaping the main() scope.\n// Until a better solution is developed, this enables proposals to be made through a package deployment + init()\nfunc getDAOCaller() std.Address {\n\treturn std.GetOrigCaller()\n}\n"},{"name":"dao_test.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateMembers generates dummy govdao members\nfunc generateMembers(t *testing.T, count int) []membstore.Member {\n\tt.Helper()\n\n\tmembers := make([]membstore.Member, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tmembers = append(members, membstore.Member{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"member %d\", i)),\n\t\t\tVotingPower: 10,\n\t\t})\n\t}\n\n\treturn members\n}\n\nfunc TestSimpleDAO_Propose(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"invalid executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.Propose(dao.ProposalRequest{})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidExecutor,\n\t\t)\n\t})\n\n\tt.Run(\"invalid title\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t\tTitle: \"\", // Set invalid title\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInvalidTitle,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\ttitle = \"Proposal title\"\n\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the proposal fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\t_, err := s.Propose(dao.ProposalRequest{\n\t\t\tExecutor: ex,\n\t\t\tTitle: title,\n\t\t})\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\terr,\n\t\t\tErrInsufficientProposalFunds,\n\t\t)\n\n\t\tuassert.False(t, called)\n\t})\n\n\tt.Run(\"proposal added\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tcalled = false\n\t\t\tcb = func() error {\n\t\t\t\tcalled = true\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\t\t\tdescription = \"Proposal description\"\n\t\t\ttitle = \"Proposal title\"\n\n\t\t\tproposer = testutils.TestAddress(\"proposer\")\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminProposalFeeValue, // enough to cover\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(addr std.Address) bool {\n\t\t\t\t\treturn addr == proposer\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// to cover the fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\t\tstd.TestSetOrigCaller(proposer)\n\n\t\t// Make sure the proposal was added\n\t\tid, err := s.Propose(dao.ProposalRequest{\n\t\t\tTitle: title,\n\t\t\tDescription: description,\n\t\t\tExecutor: ex,\n\t\t})\n\t\tuassert.NoError(t, err)\n\t\tuassert.False(t, called)\n\n\t\t// Make sure the proposal exists\n\t\tprop, err := s.ProposalByID(id)\n\t\tuassert.NoError(t, err)\n\n\t\tuassert.Equal(t, proposer.String(), prop.Author().String())\n\t\tuassert.Equal(t, description, prop.Description())\n\t\tuassert.Equal(t, title, prop.Title())\n\t\tuassert.Equal(t, dao.Active.String(), prop.Status().String())\n\n\t\tstats := prop.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_VoteOnProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"not govdao member\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tfetchErr = errors.New(\"fetch error\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(_ std.Address) (membstore.Member, error) {\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, fetchErr\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tfetchErr.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(0, dao.YesVote),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{\n\t\t\t\t\t\tAddress: voter,\n\t\t\t\t\t}, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrProposalInactive,\n\t\t)\n\t})\n\n\tt.Run(\"double vote on proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\t\t\tmember = membstore.Member{\n\t\t\t\tAddress: voter,\n\t\t\t\tVotingPower: 10,\n\t\t\t}\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(a std.Address) (membstore.Member, error) {\n\t\t\t\t\tif a != voter {\n\t\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t\t}\n\n\t\t\t\t\treturn member, nil\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Cast the initial vote\n\t\turequire.NoError(t, prop.tally.castVote(member, dao.YesVote))\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\tErrAlreadyVoted.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"majority accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was accepted\n\t\tuassert.Equal(t, dao.Accepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority rejected\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"majority abstained\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\tmajorityIndex := (len(members)*2)/3 + 1 // 2/3+\n\t\tfor _, m := range members[:majorityIndex] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.AbstainVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal was not accepted\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"everyone voted, undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first half votes yes\n\t\tfor _, m := range members[:len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The other half votes no\n\t\tfor _, m := range members[len(members)/2:] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is not active,\n\t\t// since everyone voted, and it was undecided\n\t\tuassert.Equal(t, dao.NotAccepted.String(), prop.status.String())\n\t})\n\n\tt.Run(\"proposal undecided\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tmemberFn: func(address std.Address) (membstore.Member, error) {\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tif m.Address == address {\n\t\t\t\t\t\t\treturn m, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn membstore.Member{}, errors.New(\"member not found\")\n\t\t\t\t},\n\n\t\t\t\ttotalPowerFn: func() uint64 {\n\t\t\t\t\tpower := uint64(0)\n\n\t\t\t\t\tfor _, m := range members {\n\t\t\t\t\t\tpower += m.VotingPower\n\t\t\t\t\t}\n\n\t\t\t\t\treturn power\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Active,\n\t\t\t\texecutor: \u0026mockExecutor{},\n\t\t\t\ttally: newTally(),\n\t\t\t}\n\t\t)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// The first quarter votes yes\n\t\tfor _, m := range members[:len(members)/4] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.YesVote),\n\t\t\t)\n\t\t}\n\n\t\t// The second quarter votes no\n\t\tfor _, m := range members[len(members)/4 : len(members)/2] {\n\t\t\tstd.TestSetOrigCaller(m.Address)\n\n\t\t\t// Attempt to vote on the proposal\n\t\t\turequire.NoError(\n\t\t\t\tt,\n\t\t\t\ts.VoteOnProposal(id, dao.NoVote),\n\t\t\t)\n\t\t}\n\n\t\t// Make sure the proposal is still active,\n\t\t// since there wasn't quorum reached on any decision\n\t\tuassert.Equal(t, dao.Active.String(), prop.status.String())\n\t})\n}\n\nfunc TestSimpleDAO_ExecuteProposal(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"caller cannot cover fee\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue-1,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be lower\n\t\t// than the execute fee\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrInsufficientExecuteFunds,\n\t\t)\n\t})\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tsentCoins = std.NewCoins(\n\t\t\t\tstd.NewCoin(\n\t\t\t\t\t\"ugnot\",\n\t\t\t\t\tminExecuteFeeValue,\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\t\t)\n\n\t\t// Set the sent coins to be enough\n\t\t// so the execution can take place\n\t\tstd.TestSetOrigSend(sentCoins, std.Coins{})\n\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(0),\n\t\t\tErrMissingProposal.Error(),\n\t\t)\n\t})\n\n\tt.Run(\"proposal not accepted\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.NotAccepted,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorIs(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\tErrProposalNotAccepted,\n\t\t)\n\t})\n\n\tt.Run(\"proposal already executed\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ttestTable := []struct {\n\t\t\tname string\n\t\t\tstatus dao.ProposalStatus\n\t\t}{\n\t\t\t{\n\t\t\t\t\"execution was successful\",\n\t\t\t\tdao.ExecutionSuccessful,\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"execution failed\",\n\t\t\t\tdao.ExecutionFailed,\n\t\t\t},\n\t\t}\n\n\t\tfor _, testCase := range testTable {\n\t\t\tt.Run(testCase.name, func(t *testing.T) {\n\t\t\t\tt.Parallel()\n\n\t\t\t\tvar (\n\t\t\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\t\t\tms = \u0026mockMemberStore{\n\t\t\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\ts = New(ms)\n\n\t\t\t\t\tprop = \u0026proposal{\n\t\t\t\t\t\tstatus: testCase.status,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tstd.TestSetOrigCaller(voter)\n\n\t\t\t\t// Add an initial proposal\n\t\t\t\tid, err := s.addProposal(prop)\n\t\t\t\turequire.NoError(t, err)\n\n\t\t\t\t// Attempt to vote on the proposal\n\t\t\t\tuassert.ErrorIs(\n\t\t\t\t\tt,\n\t\t\t\t\ts.ExecuteProposal(id),\n\t\t\t\t\tErrProposalExecuted,\n\t\t\t\t)\n\t\t\t})\n\t\t}\n\t})\n\n\tt.Run(\"execution error\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\n\t\t\ts = New(ms)\n\n\t\t\texecError = errors.New(\"exec error\")\n\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\treturn execError\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.ErrorContains(\n\t\t\tt,\n\t\t\ts.ExecuteProposal(id),\n\t\t\texecError.Error(),\n\t\t)\n\n\t\tuassert.Equal(t, dao.ExecutionFailed.String(), prop.status.String())\n\t})\n\n\tt.Run(\"successful execution\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tvoter = testutils.TestAddress(\"voter\")\n\n\t\t\tms = \u0026mockMemberStore{\n\t\t\t\tisMemberFn: func(_ std.Address) bool {\n\t\t\t\t\treturn true\n\t\t\t\t},\n\t\t\t}\n\t\t\ts = New(ms)\n\n\t\t\tcalled = false\n\t\t\tmockExecutor = \u0026mockExecutor{\n\t\t\t\texecuteFn: func() error {\n\t\t\t\t\tcalled = true\n\n\t\t\t\t\treturn nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tprop = \u0026proposal{\n\t\t\t\tstatus: dao.Accepted,\n\t\t\t\texecutor: mockExecutor,\n\t\t\t}\n\t\t)\n\n\t\tstd.TestSetOrigCaller(voter)\n\n\t\t// Add an initial proposal\n\t\tid, err := s.addProposal(prop)\n\t\turequire.NoError(t, err)\n\n\t\t// Attempt to vote on the proposal\n\t\tuassert.NoError(t, s.ExecuteProposal(id))\n\t\tuassert.Equal(t, dao.ExecutionSuccessful.String(), prop.status.String())\n\t\tuassert.True(t, called)\n\t})\n}\n"},{"name":"mock_test.gno","body":"package simpledao\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/membstore\"\n)\n\ntype executeDelegate func() error\n\ntype mockExecutor struct {\n\texecuteFn executeDelegate\n}\n\nfunc (m *mockExecutor) Execute() error {\n\tif m.executeFn != nil {\n\t\treturn m.executeFn()\n\t}\n\n\treturn nil\n}\n\ntype (\n\tmembersDelegate func(uint64, uint64) []membstore.Member\n\tsizeDelegate func() int\n\tisMemberDelegate func(std.Address) bool\n\ttotalPowerDelegate func() uint64\n\tmemberDelegate func(std.Address) (membstore.Member, error)\n\taddMemberDelegate func(membstore.Member) error\n\tupdateMemberDelegate func(std.Address, membstore.Member) error\n)\n\ntype mockMemberStore struct {\n\tmembersFn membersDelegate\n\tsizeFn sizeDelegate\n\tisMemberFn isMemberDelegate\n\ttotalPowerFn totalPowerDelegate\n\tmemberFn memberDelegate\n\taddMemberFn addMemberDelegate\n\tupdateMemberFn updateMemberDelegate\n}\n\nfunc (m *mockMemberStore) Members(offset, count uint64) []membstore.Member {\n\tif m.membersFn != nil {\n\t\treturn m.membersFn(offset, count)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) Size() int {\n\tif m.sizeFn != nil {\n\t\treturn m.sizeFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) IsMember(address std.Address) bool {\n\tif m.isMemberFn != nil {\n\t\treturn m.isMemberFn(address)\n\t}\n\n\treturn false\n}\n\nfunc (m *mockMemberStore) TotalPower() uint64 {\n\tif m.totalPowerFn != nil {\n\t\treturn m.totalPowerFn()\n\t}\n\n\treturn 0\n}\n\nfunc (m *mockMemberStore) Member(address std.Address) (membstore.Member, error) {\n\tif m.memberFn != nil {\n\t\treturn m.memberFn(address)\n\t}\n\n\treturn membstore.Member{}, nil\n}\n\nfunc (m *mockMemberStore) AddMember(member membstore.Member) error {\n\tif m.addMemberFn != nil {\n\t\treturn m.addMemberFn(member)\n\t}\n\n\treturn nil\n}\n\nfunc (m *mockMemberStore) UpdateMember(address std.Address, member membstore.Member) error {\n\tif m.updateMemberFn != nil {\n\t\treturn m.updateMemberFn(address, member)\n\t}\n\n\treturn nil\n}\n"},{"name":"propstore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar ErrMissingProposal = errors.New(\"proposal is missing\")\n\n// maxRequestProposals is the maximum number of\n// paginated proposals that can be requested\nconst maxRequestProposals = 10\n\n// proposal is the internal simpledao proposal implementation\ntype proposal struct {\n\tauthor std.Address // initiator of the proposal\n\ttitle string // title of the proposal\n\tdescription string // description of the proposal\n\n\texecutor dao.Executor // executor for the proposal\n\tstatus dao.ProposalStatus // status of the proposal\n\n\ttally *tally // voting tally\n\tgetTotalVotingPowerFn func() uint64 // callback for the total voting power\n}\n\nfunc (p *proposal) Author() std.Address {\n\treturn p.author\n}\n\nfunc (p *proposal) Title() string {\n\treturn p.title\n}\n\nfunc (p *proposal) Description() string {\n\treturn p.description\n}\n\nfunc (p *proposal) Status() dao.ProposalStatus {\n\treturn p.status\n}\n\nfunc (p *proposal) Executor() dao.Executor {\n\treturn p.executor\n}\n\nfunc (p *proposal) Stats() dao.Stats {\n\t// Get the total voting power of the body\n\ttotalPower := p.getTotalVotingPowerFn()\n\n\treturn dao.Stats{\n\t\tYayVotes: p.tally.yays,\n\t\tNayVotes: p.tally.nays,\n\t\tAbstainVotes: p.tally.abstains,\n\t\tTotalVotingPower: totalPower,\n\t}\n}\n\nfunc (p *proposal) IsExpired() bool {\n\treturn false // this proposal never expires\n}\n\nfunc (p *proposal) Render() string {\n\t// Fetch the voting stats\n\tstats := p.Stats()\n\n\tvar out string\n\n\tout += \"## Description\\n\\n\"\n\tif strings.TrimSpace(p.description) != \"\" {\n\t\tout += ufmt.Sprintf(\"%s\\n\\n\", p.description)\n\t} else {\n\t\tout += \"No description provided.\\n\\n\"\n\t}\n\n\tout += \"## Proposal information\\n\\n\"\n\tout += ufmt.Sprintf(\"**Status: %s**\\n\\n\", strings.ToUpper(p.Status().String()))\n\n\tout += ufmt.Sprintf(\n\t\t\"**Voting stats:**\\n- YES %d (%d%%)\\n- NO %d (%d%%)\\n- ABSTAIN %d (%d%%)\\n- MISSING VOTES %d (%d%%)\\n\",\n\t\tstats.YayVotes,\n\t\tstats.YayPercent(),\n\t\tstats.NayVotes,\n\t\tstats.NayPercent(),\n\t\tstats.AbstainVotes,\n\t\tstats.AbstainPercent(),\n\t\tstats.MissingVotes(),\n\t\tstats.MissingVotesPercent(),\n\t)\n\n\tout += \"\\n\\n\"\n\tthresholdOut := strings.ToUpper(ufmt.Sprintf(\"%t\", stats.YayVotes \u003e (2*stats.TotalVotingPower)/3))\n\n\tout += ufmt.Sprintf(\"**Threshold met: %s**\\n\\n\", thresholdOut)\n\n\treturn out\n}\n\n// addProposal adds a new simpledao proposal to the store\nfunc (s *SimpleDAO) addProposal(proposal *proposal) (uint64, error) {\n\t// See what the next proposal number should be\n\tnextID := uint64(s.proposals.Size())\n\n\t// Save the proposal\n\ts.proposals.Set(getProposalID(nextID), proposal)\n\n\treturn nextID, nil\n}\n\nfunc (s *SimpleDAO) Proposals(offset, count uint64) []dao.Proposal {\n\t// Check the requested count\n\tif count \u003c 1 {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Limit the maximum number of returned proposals\n\tif count \u003e maxRequestProposals {\n\t\tcount = maxRequestProposals\n\t}\n\n\tvar (\n\t\tstartIndex = offset\n\t\tendIndex = startIndex + count\n\n\t\tnumProposals = uint64(s.proposals.Size())\n\t)\n\n\t// Check if the current offset has any proposals\n\tif startIndex \u003e= numProposals {\n\t\treturn []dao.Proposal{}\n\t}\n\n\t// Check if the right bound is good\n\tif endIndex \u003e numProposals {\n\t\tendIndex = numProposals\n\t}\n\n\tprops := make([]dao.Proposal, 0)\n\ts.proposals.Iterate(\n\t\tgetProposalID(startIndex),\n\t\tgetProposalID(endIndex),\n\t\tfunc(_ string, val interface{}) bool {\n\t\t\tprop := val.(*proposal)\n\n\t\t\t// Save the proposal\n\t\t\tprops = append(props, prop)\n\n\t\t\treturn false\n\t\t},\n\t)\n\n\treturn props\n}\n\nfunc (s *SimpleDAO) ProposalByID(id uint64) (dao.Proposal, error) {\n\tprop, exists := s.proposals.Get(getProposalID(id))\n\tif !exists {\n\t\treturn nil, ErrMissingProposal\n\t}\n\n\treturn prop.(*proposal), nil\n}\n\nfunc (s *SimpleDAO) Size() int {\n\treturn s.proposals.Size()\n}\n\n// getProposalID generates a sequential proposal ID\n// from the given ID number\nfunc getProposalID(id uint64) string {\n\treturn seqid.ID(id).String()\n}\n"},{"name":"propstore_test.gno","body":"package simpledao\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/demo/urequire\"\n)\n\n// generateProposals generates dummy proposals\nfunc generateProposals(t *testing.T, count int) []*proposal {\n\tt.Helper()\n\n\tvar (\n\t\tmembers = generateMembers(t, count)\n\t\tproposals = make([]*proposal, 0, count)\n\t)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tproposal := \u0026proposal{\n\t\t\tauthor: members[i].Address,\n\t\t\tdescription: ufmt.Sprintf(\"proposal %d\", i),\n\t\t\tstatus: dao.Active,\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t\texecutor: nil,\n\t\t}\n\n\t\tproposals = append(proposals, proposal)\n\t}\n\n\treturn proposals\n}\n\nfunc equalProposals(t *testing.T, p1, p2 dao.Proposal) {\n\tt.Helper()\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Author().String(),\n\t\tp2.Author().String(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Description(),\n\t\tp2.Description(),\n\t)\n\n\tuassert.Equal(\n\t\tt,\n\t\tp1.Status().String(),\n\t\tp2.Status().String(),\n\t)\n\n\tp1Stats := p1.Stats()\n\tp2Stats := p2.Stats()\n\n\tuassert.Equal(t, p1Stats.YayVotes, p2Stats.YayVotes)\n\tuassert.Equal(t, p1Stats.NayVotes, p2Stats.NayVotes)\n\tuassert.Equal(t, p1Stats.AbstainVotes, p2Stats.AbstainVotes)\n\tuassert.Equal(t, p1Stats.TotalVotingPower, p2Stats.TotalVotingPower)\n}\n\nfunc TestProposal_Data(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"author\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tauthor: testutils.TestAddress(\"address\"),\n\t\t}\n\n\t\tuassert.Equal(t, p.author, p.Author())\n\t})\n\n\tt.Run(\"description\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tdescription: \"example proposal description\",\n\t\t}\n\n\t\tuassert.Equal(t, p.description, p.Description())\n\t})\n\n\tt.Run(\"status\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\tstatus: dao.ExecutionSuccessful,\n\t\t}\n\n\t\tuassert.Equal(t, p.status.String(), p.Status().String())\n\t})\n\n\tt.Run(\"executor\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumCalled = 0\n\t\t\tcb = func() error {\n\t\t\t\tnumCalled++\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tex = \u0026mockExecutor{\n\t\t\t\texecuteFn: cb,\n\t\t\t}\n\n\t\t\tp = \u0026proposal{\n\t\t\t\texecutor: ex,\n\t\t\t}\n\t\t)\n\n\t\turequire.NoError(t, p.executor.Execute())\n\t\turequire.NoError(t, p.Executor().Execute())\n\n\t\tuassert.Equal(t, 2, numCalled)\n\t})\n\n\tt.Run(\"no votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tp := \u0026proposal{\n\t\t\ttally: newTally(),\n\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\treturn 0\n\t\t\t},\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, uint64(0), stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, uint64(0), stats.TotalVotingPower)\n\t})\n\n\tt.Run(\"existing votes\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tmembers = generateMembers(t, 50)\n\t\t\ttotalPower = uint64(len(members)) * 10\n\n\t\t\tp = \u0026proposal{\n\t\t\t\ttally: newTally(),\n\t\t\t\tgetTotalVotingPowerFn: func() uint64 {\n\t\t\t\t\treturn totalPower\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor _, m := range members {\n\t\t\turequire.NoError(t, p.tally.castVote(m, dao.YesVote))\n\t\t}\n\n\t\tstats := p.Stats()\n\n\t\tuassert.Equal(t, totalPower, stats.YayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.NayVotes)\n\t\tuassert.Equal(t, uint64(0), stats.AbstainVotes)\n\t\tuassert.Equal(t, totalPower, stats.TotalVotingPower)\n\t})\n}\n\nfunc TestSimpleDAO_GetProposals(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"no proposals\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\tuassert.Equal(t, 0, s.Size())\n\t\tproposals := s.Proposals(0, 0)\n\n\t\tuassert.Equal(t, 0, len(proposals))\n\t})\n\n\tt.Run(\"proper pagination\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\tnumProposals = 20\n\t\t\thalfRange = numProposals / 2\n\n\t\t\ts = New(nil)\n\t\t\tproposals = generateProposals(t, numProposals)\n\t\t)\n\n\t\t// Add initial proposals\n\t\tfor _, proposal := range proposals {\n\t\t\t_, err := s.addProposal(proposal)\n\n\t\t\turequire.NoError(t, err)\n\t\t}\n\n\t\tuassert.Equal(t, numProposals, s.Size())\n\n\t\tfetchedProposals := s.Proposals(0, uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index], fetchedProposal)\n\t\t}\n\n\t\t// Fetch the other half\n\t\tfetchedProposals = s.Proposals(uint64(halfRange), uint64(halfRange))\n\t\turequire.Equal(t, halfRange, len(fetchedProposals))\n\n\t\tfor index, fetchedProposal := range fetchedProposals {\n\t\t\tequalProposals(t, proposals[index+halfRange], fetchedProposal)\n\t\t}\n\t})\n}\n\nfunc TestSimpleDAO_GetProposalByID(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"missing proposal\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\ts := New(nil)\n\n\t\t_, err := s.ProposalByID(0)\n\t\tuassert.ErrorIs(t, err, ErrMissingProposal)\n\t})\n\n\tt.Run(\"proposal found\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\tvar (\n\t\t\ts = New(nil)\n\t\t\tproposal = generateProposals(t, 1)[0]\n\t\t)\n\n\t\t// Add the initial proposal\n\t\t_, err := s.addProposal(proposal)\n\t\turequire.NoError(t, err)\n\n\t\t// Fetch the proposal\n\t\tfetchedProposal, err := s.ProposalByID(0)\n\t\turequire.NoError(t, err)\n\n\t\tequalProposals(t, proposal, fetchedProposal)\n\t})\n}\n"},{"name":"votestore.gno","body":"package simpledao\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/membstore\"\n)\n\nvar ErrAlreadyVoted = errors.New(\"vote already cast\")\n\n// tally is a simple vote tally system\ntype tally struct {\n\t// tally cache to keep track of active\n\t// yes / no / abstain votes\n\tyays uint64\n\tnays uint64\n\tabstains uint64\n\n\tvoters *avl.Tree // std.Address -\u003e dao.VoteOption\n}\n\n// newTally creates a new tally system instance\nfunc newTally() *tally {\n\treturn \u0026tally{\n\t\tvoters: avl.NewTree(),\n\t}\n}\n\n// castVote casts a single vote in the name of the given member\nfunc (t *tally) castVote(member membstore.Member, option dao.VoteOption) error {\n\t// Check if the member voted already\n\taddress := member.Address.String()\n\n\t_, voted := t.voters.Get(address)\n\tif voted {\n\t\treturn ErrAlreadyVoted\n\t}\n\n\t// convert option to upper-case, like the constants are.\n\toption = dao.VoteOption(strings.ToUpper(string(option)))\n\n\t// Update the tally\n\tswitch option {\n\tcase dao.YesVote:\n\t\tt.yays += member.VotingPower\n\tcase dao.AbstainVote:\n\t\tt.abstains += member.VotingPower\n\tcase dao.NoVote:\n\t\tt.nays += member.VotingPower\n\tdefault:\n\t\tpanic(\"invalid voting option: \" + option)\n\t}\n\n\t// Save the voting status\n\tt.voters.Set(address, option)\n\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t/eKZv4PkcrvSdgG0iJ5J6xt0niyvia8qjcA1Narc+XW4Xj8wk0QmKm8MfWvMZVE1YM7vF0wg0dA+HfF0O4GCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"single","path":"gno.land/p/demo/gnorkle/ingesters/single","files":[{"name":"ingester.gno","body":"package single\n\nimport (\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n)\n\n// ValueIngester is an ingester that ingests a single value.\ntype ValueIngester struct {\n\tvalue string\n}\n\n// Type returns the type of the ingester.\nfunc (i *ValueIngester) Type() ingester.Type {\n\treturn ingester.TypeSingle\n}\n\n// Ingest ingests a value provided by the given agent address.\nfunc (i *ValueIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i == nil {\n\t\treturn false, ingester.ErrUndefined\n\t}\n\n\ti.value = value\n\treturn true, nil\n}\n\n// CommitValue commits the ingested value to the given storage instance.\nfunc (i *ValueIngester) CommitValue(valueStorer gnorkle.Storage, providerAddress string) error {\n\tif i == nil {\n\t\treturn ingester.ErrUndefined\n\t}\n\n\treturn valueStorer.Put(i.value)\n}\n"},{"name":"ingester_test.gno","body":"package single_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValueIngester(t *testing.T) {\n\tstorage := simple.NewStorage(1)\n\n\tvar undefinedIngester *single.ValueIngester\n\t_, err := undefinedIngester.Ingest(\"asdf\", \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to Ingest should return ingester.ErrUndefined\")\n\n\terr = undefinedIngester.CommitValue(storage, \"gno11111\")\n\tuassert.ErrorIs(t, err, ingester.ErrUndefined, \"undefined ingester call to CommitValue should return ingester.ErrUndefined\")\n\n\tvar valueIngester single.ValueIngester\n\ttyp := valueIngester.Type()\n\tuassert.Equal(t, int(ingester.TypeSingle), int(typ), \"single value ingester should return type ingester.TypeSingle\")\n\n\tingestValue := \"value\"\n\tautocommit, err := valueIngester.Ingest(ingestValue, \"gno11111\")\n\tuassert.True(t, autocommit, \"single value ingester should return autocommit true\")\n\tuassert.NoError(t, err)\n\n\terr = valueIngester.CommitValue(storage, \"gno11111\")\n\tuassert.NoError(t, err)\n\n\tlatestValue := storage.GetLatest()\n\tuassert.Equal(t, ingestValue, latestValue.String)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TGsDJA57MwMkrk8NhhHKKV4ok8OTmRhCnCrLyoB9Dv1a9WCcbhsmhnLh8yIIhFTa5SWO0UeYexBNQkNn7gXwDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"source","path":"gno.land/r/docs/source","files":[{"name":"source.gno","body":"package source\n\n// Welcome to the source code of this realm!\n\nfunc Render(_ string) string {\n\treturn `# Viewing source code \ngno.land makes it easy to view the source code of any pure\npackage or realm, by using ABCI queries.\n\ngno.land's web frontend, ` + \"`gnoweb`, \" + ` makes this easy by\nproviding a intuitive UI that fetches the source of the\nrealm, that you can inspect anywhere by simply clicking\non the [source] button.\n\nCheck it out in the top right corner!\n`\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z4j6WDR2LejRfrF704SujoySP/VJgY+VPjc7TYIdGolc1aKl4ElvsMcrR1w/7H6xKvTi7w+W5ErJk1b9FCOgAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"stack","path":"gno.land/p/demo/stack","files":[{"name":"stack.gno","body":"package stack\n\ntype Stack struct {\n\ttop *node\n\tlength int\n}\n\ntype node struct {\n\tvalue interface{}\n\tprev *node\n}\n\nfunc New() *Stack {\n\treturn \u0026Stack{nil, 0}\n}\n\nfunc (s *Stack) Len() int {\n\treturn s.length\n}\n\nfunc (s *Stack) Top() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\treturn s.top.value\n}\n\nfunc (s *Stack) Pop() interface{} {\n\tif s.length == 0 {\n\t\treturn nil\n\t}\n\n\tnode := s.top\n\ts.top = node.prev\n\ts.length -= 1\n\treturn node.value\n}\n\nfunc (s *Stack) Push(value interface{}) {\n\tnode := \u0026node{value, s.top}\n\ts.top = node\n\ts.length += 1\n}\n"},{"name":"stack_test.gno","body":"package stack\n\nimport \"testing\"\n\nfunc TestStack(t *testing.T) {\n\ts := New() // Empty stack\n\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n\n\ts.Push(1)\n\n\tif s.Len() != 1 {\n\t\tt.Errorf(\"s.Len(): expected 1; got %d\", s.Len())\n\t}\n\n\tif top := s.Top(); top.(int) != 1 {\n\t\tt.Errorf(\"s.Top(): expected 1; got %v\", top.(int))\n\t}\n\n\tif elem := s.Pop(); elem.(int) != 1 {\n\t\tt.Errorf(\"s.Pop(): expected 1; got %v\", elem.(int))\n\t}\n\tif s.Len() != 0 {\n\t\tt.Errorf(\"s.Len(): expected 0; got %d\", s.Len())\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jXMCU1IQLZ4aZXegO0mHdtfltOUQo6XkX3b1XjZ/MQXMTsLcrtRsj2MDHnNlk4MuGXo69zkARGYXuPLc2E3dCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"static","path":"gno.land/p/demo/gnorkle/feeds/static","files":[{"name":"feed.gno","body":"package static\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingesters/single\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Feed is a static feed.\ntype Feed struct {\n\tid string\n\tisLocked bool\n\tvalueDataType string\n\tingester gnorkle.Ingester\n\tstorage gnorkle.Storage\n\ttasks []feed.Task\n}\n\n// NewFeed creates a new static feed.\nfunc NewFeed(\n\tid string,\n\tvalueDataType string,\n\tingester gnorkle.Ingester,\n\tstorage gnorkle.Storage,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn \u0026Feed{\n\t\tid: id,\n\t\tvalueDataType: valueDataType,\n\t\tingester: ingester,\n\t\tstorage: storage,\n\t\ttasks: tasks,\n\t}\n}\n\n// NewSingleValueFeed is a convenience function for creating a static feed\n// that autocommits a value after a single ingestion.\nfunc NewSingleValueFeed(\n\tid string,\n\tvalueDataType string,\n\ttasks ...feed.Task,\n) *Feed {\n\treturn NewFeed(\n\t\tid,\n\t\tvalueDataType,\n\t\t\u0026single.ValueIngester{},\n\t\tsimple.NewStorage(1),\n\t\ttasks...,\n\t)\n}\n\n// ID returns the feed's ID.\nfunc (f Feed) ID() string {\n\treturn f.id\n}\n\n// Type returns the feed's type.\nfunc (f Feed) Type() feed.Type {\n\treturn feed.TypeStatic\n}\n\n// Ingest ingests a message into the feed. It either adds the value to the ingester's\n// pending values or commits the value to the storage.\nfunc (f *Feed) Ingest(funcType message.FuncType, msg, providerAddress string) error {\n\tif f == nil {\n\t\treturn feed.ErrUndefined\n\t}\n\n\tif f.isLocked {\n\t\treturn errors.New(\"feed locked\")\n\t}\n\n\tswitch funcType {\n\tcase message.FuncTypeIngest:\n\t\t// Autocommit the ingester's value if it's a single value ingester\n\t\t// because this is a static feed and this is the only value it will ever have.\n\t\tif canAutoCommit, err := f.ingester.Ingest(msg, providerAddress); canAutoCommit \u0026\u0026 err == nil {\n\t\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tf.isLocked = true\n\t\t} else if err != nil {\n\t\t\treturn err\n\t\t}\n\n\tcase message.FuncTypeCommit:\n\t\tif err := f.ingester.CommitValue(f.storage, providerAddress); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tf.isLocked = true\n\n\tdefault:\n\t\treturn errors.New(\"invalid message function \" + string(funcType))\n\t}\n\n\treturn nil\n}\n\n// Value returns the feed's latest value, it's data type, and whether or not it can\n// be safely consumed. In this case it uses `f.isLocked` because, this being a static\n// feed, it will only ever have one value; once that value is committed the feed is locked\n// and there is a valid, non-empty value to consume.\nfunc (f Feed) Value() (feed.Value, string, bool) {\n\treturn f.storage.GetLatest(), f.valueDataType, f.isLocked\n}\n\n// MarshalJSON marshals the components of the feed that are needed for\n// an agent to execute tasks and send values for ingestion.\nfunc (f Feed) MarshalJSON() ([]byte, error) {\n\tbuf := new(bytes.Buffer)\n\tw := bufio.NewWriter(buf)\n\n\tw.Write([]byte(\n\t\t`{\"id\":\"` + f.id +\n\t\t\t`\",\"type\":\"` + ufmt.Sprintf(\"%d\", int(f.Type())) +\n\t\t\t`\",\"value_type\":\"` + f.valueDataType +\n\t\t\t`\",\"tasks\":[`),\n\t)\n\n\tfirst := true\n\tfor _, task := range f.tasks {\n\t\tif !first {\n\t\t\tw.WriteString(\",\")\n\t\t}\n\n\t\ttaskJSON, err := task.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tw.Write(taskJSON)\n\t\tfirst = false\n\t}\n\n\tw.Write([]byte(\"]}\"))\n\tw.Flush()\n\n\treturn buf.Bytes(), nil\n}\n\n// Tasks returns the feed's tasks. This allows task consumers to extract task\n// contents without having to marshal the entire feed.\nfunc (f Feed) Tasks() []feed.Task {\n\treturn f.tasks\n}\n\n// IsActive returns true if the feed is accepting ingestion requests from agents.\nfunc (f Feed) IsActive() bool {\n\treturn !f.isLocked\n}\n"},{"name":"feed_test.gno","body":"package static_test\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/gnorkle/feed\"\n\t\"gno.land/p/demo/gnorkle/feeds/static\"\n\t\"gno.land/p/demo/gnorkle/gnorkle\"\n\t\"gno.land/p/demo/gnorkle/ingester\"\n\t\"gno.land/p/demo/gnorkle/message\"\n\t\"gno.land/p/demo/gnorkle/storage/simple\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/urequire\"\n)\n\ntype mockIngester struct {\n\tcanAutoCommit bool\n\tingestErr error\n\tcommitErr error\n\tvalue string\n\tproviderAddress string\n}\n\nfunc (i mockIngester) Type() ingester.Type {\n\treturn ingester.Type(0)\n}\n\nfunc (i *mockIngester) Ingest(value, providerAddress string) (bool, error) {\n\tif i.ingestErr != nil {\n\t\treturn false, i.ingestErr\n\t}\n\n\ti.value = value\n\ti.providerAddress = providerAddress\n\treturn i.canAutoCommit, nil\n}\n\nfunc (i *mockIngester) CommitValue(storage gnorkle.Storage, providerAddress string) error {\n\tif i.commitErr != nil {\n\t\treturn i.commitErr\n\t}\n\n\treturn storage.Put(i.value)\n}\n\nfunc TestNewSingleValueFeed(t *testing.T) {\n\tstaticFeed := static.NewSingleValueFeed(\"1\", \"\")\n\n\tuassert.Equal(t, \"1\", staticFeed.ID())\n\tuassert.Equal(t, int(feed.TypeStatic), int(staticFeed.Type()))\n}\n\nfunc TestFeed_Ingest(t *testing.T) {\n\tvar undefinedFeed *static.Feed\n\terr := undefinedFeed.Ingest(\"\", \"\", \"\")\n\tuassert.ErrorIs(t, err, feed.ErrUndefined)\n\n\ttests := []struct {\n\t\tname string\n\t\tingester *mockIngester\n\t\tverifyIsLocked bool\n\t\tdoCommit bool\n\t\tfuncType message.FuncType\n\t\tmsg string\n\t\tproviderAddress string\n\t\texpFeedValueString string\n\t\texpErrText string\n\t\texpIsActive bool\n\t}{\n\t\t{\n\t\t\tname: \"func invalid error\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncType(\"derp\"),\n\t\t\texpErrText: \"invalid message function derp\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest ingest error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tingestErr: errors.New(\"ingest error\"),\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"ingest error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func ingest commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"func commit commit error\",\n\t\t\tingester: \u0026mockIngester{\n\t\t\t\tcommitErr: errors.New(\"commit error\"),\n\t\t\t\tcanAutoCommit: true,\n\t\t\t},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\texpErrText: \"commit error\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"only ingest\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpIsActive: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest autocommit\",\n\t\t\tingester: \u0026mockIngester{canAutoCommit: true},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"still active feed\",\n\t\t\tproviderAddress: \"gno1234\",\n\t\t\texpFeedValueString: \"still active feed\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"commit no value\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeCommit,\n\t\t\tmsg: \"shouldn't be stored\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t\t{\n\t\t\tname: \"ingest then commmit\",\n\t\t\tingester: \u0026mockIngester{},\n\t\t\tfuncType: message.FuncTypeIngest,\n\t\t\tmsg: \"blahblah\",\n\t\t\tdoCommit: true,\n\t\t\texpFeedValueString: \"blahblah\",\n\t\t\tverifyIsLocked: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewFeed(\n\t\t\t\t\"1\",\n\t\t\t\t\"string\",\n\t\t\t\ttt.ingester,\n\t\t\t\tsimple.NewStorage(1),\n\t\t\t\tnil,\n\t\t\t)\n\n\t\t\tvar errText string\n\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\n\t\t\tif tt.doCommit {\n\t\t\t\terr := staticFeed.Ingest(message.FuncTypeCommit, \"\", \"\")\n\t\t\t\turequire.NoError(t, err, \"follow up commit failed\")\n\t\t\t}\n\n\t\t\tif tt.verifyIsLocked {\n\t\t\t\terrText = \"\"\n\t\t\t\tif err := staticFeed.Ingest(tt.funcType, tt.msg, tt.providerAddress); err != nil {\n\t\t\t\t\terrText = err.Error()\n\t\t\t\t}\n\n\t\t\t\turequire.Equal(t, \"feed locked\", errText)\n\t\t\t}\n\n\t\t\tuassert.Equal(t, tt.providerAddress, tt.ingester.providerAddress)\n\n\t\t\tfeedValue, dataType, isLocked := staticFeed.Value()\n\t\t\tuassert.Equal(t, tt.expFeedValueString, feedValue.String)\n\t\t\tuassert.Equal(t, \"string\", dataType)\n\t\t\tuassert.Equal(t, tt.verifyIsLocked, isLocked)\n\t\t\tuassert.Equal(t, tt.expIsActive, staticFeed.IsActive())\n\t\t})\n\t}\n}\n\ntype mockTask struct {\n\terr error\n\tvalue string\n}\n\nfunc (t mockTask) MarshalJSON() ([]byte, error) {\n\tif t.err != nil {\n\t\treturn nil, t.err\n\t}\n\n\treturn []byte(`{\"value\":\"` + t.value + `\"}`), nil\n}\n\nfunc TestFeed_Tasks(t *testing.T) {\n\tid := \"99\"\n\tvalueDataType := \"int\"\n\n\ttests := []struct {\n\t\tname string\n\t\ttasks []feed.Task\n\t\texpErrText string\n\t\texpJSON string\n\t}{\n\t\t{\n\t\t\tname: \"no tasks\",\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"marshal error\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{err: errors.New(\"marshal error\")},\n\t\t\t},\n\t\t\texpErrText: \"marshal error\",\n\t\t},\n\t\t{\n\t\t\tname: \"one task\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"single\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"single\"}]}`,\n\t\t},\n\t\t{\n\t\t\tname: \"two tasks\",\n\t\t\ttasks: []feed.Task{\n\t\t\t\tmockTask{value: \"first\"},\n\t\t\t\tmockTask{value: \"second\"},\n\t\t\t},\n\t\t\texpJSON: `{\"id\":\"99\",\"type\":\"0\",\"value_type\":\"int\",\"tasks\":[{\"value\":\"first\"},{\"value\":\"second\"}]}`,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tstaticFeed := static.NewSingleValueFeed(\n\t\t\t\tid,\n\t\t\t\tvalueDataType,\n\t\t\t\ttt.tasks...,\n\t\t\t)\n\n\t\t\turequire.Equal(t, len(tt.tasks), len(staticFeed.Tasks()))\n\n\t\t\tvar errText string\n\t\t\tjson, err := staticFeed.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terrText = err.Error()\n\t\t\t}\n\n\t\t\turequire.Equal(t, tt.expErrText, errText)\n\t\t\turequire.Equal(t, tt.expJSON, string(json))\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"36sIzPW/eNbHu6OqFrORIXsGJ5zzR98vm9rHwc/3snRLoIe7QwPJnwUXr+3ci+uVfHiXtS7n0rCqhGgmBDINAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"storage","path":"gno.land/p/demo/gnorkle/storage","files":[{"name":"errors.gno","body":"package storage\n\nimport \"errors\"\n\nvar ErrUndefined = errors.New(\"undefined storage\")\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6prcIdnB05VNsFOeFs4G/eeAeyqmfdB5DghdiF0qQANxRKnRWk95G5UNSY/oOofy10blXLqiGj42I1CWsMmZBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"storage","path":"gno.land/r/x/benchmark/storage","files":[{"name":"boards.gno","body":"package storage\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar boards avl.Tree\n\ntype Board interface {\n\tAddPost(title, content string)\n\tGetPost(id int) (Post, bool)\n\tSize() int\n}\n\n// posts are persisted in an avl tree\ntype TreeBoard struct {\n\tid int\n\tposts *avl.Tree\n}\n\nfunc (b *TreeBoard) AddPost(title, content string) {\n\tn := b.posts.Size()\n\tp := Post{n, title, content}\n\tb.posts.Set(strconv.Itoa(n), p)\n}\n\nfunc (b *TreeBoard) GetPost(id int) (Post, bool) {\n\tp, ok := b.posts.Get(strconv.Itoa(id))\n\tif ok {\n\t\treturn p.(Post), ok\n\t} else {\n\t\treturn Post{}, ok\n\t}\n}\n\nfunc (b *TreeBoard) Size() int {\n\treturn b.posts.Size()\n}\n\n// posts are persisted in a map\ntype MapBoard struct {\n\tid int\n\tposts map[int]Post\n}\n\nfunc (b *MapBoard) AddPost(title, content string) {\n\tn := len(b.posts)\n\tp := Post{n, title, content}\n\tb.posts[n] = p\n}\n\nfunc (b *MapBoard) GetPost(id int) (Post, bool) {\n\tp, ok := b.posts[id]\n\tif ok {\n\t\treturn p, ok\n\t} else {\n\t\treturn Post{}, ok\n\t}\n}\n\nfunc (b *MapBoard) Size() int {\n\treturn len(b.posts)\n}\n\n// posts are persisted in a slice\ntype SliceBoard struct {\n\tid int\n\tposts []Post\n}\n\nfunc (b *SliceBoard) AddPost(title, content string) {\n\tn := len(b.posts)\n\tp := Post{n, title, content}\n\tb.posts = append(b.posts, p)\n}\n\nfunc (b *SliceBoard) GetPost(id int) (Post, bool) {\n\tif id \u003c len(b.posts) {\n\t\tp := b.posts[id]\n\n\t\treturn p, true\n\t} else {\n\t\treturn Post{}, false\n\t}\n}\n\nfunc (b *SliceBoard) Size() int {\n\treturn len(b.posts)\n}\n\ntype Post struct {\n\tid int\n\ttitle string\n\tcontent string\n}\n"},{"name":"forum.gno","body":"package storage\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nfunc init() {\n\t// we write to three common data structure for persistence\n\t// avl.Tree, map and slice.\n\tposts0 := avl.NewTree()\n\tb0 := \u0026TreeBoard{0, posts0}\n\tboards.Set(strconv.Itoa(0), b0)\n\n\tposts1 := make(map[int]Post)\n\tb1 := \u0026MapBoard{1, posts1}\n\tboards.Set(strconv.Itoa(1), b1)\n\n\tposts2 := []Post{}\n\tb2 := \u0026SliceBoard{2, posts2}\n\tboards.Set(strconv.Itoa(2), b2)\n}\n\n// post to all boards.\nfunc AddPost(title, content string) {\n\tfor i := 0; i \u003c boards.Size(); i++ {\n\t\tboardId := strconv.Itoa(i)\n\t\tb, ok := boards.Get(boardId)\n\t\tif ok {\n\t\t\tb.(Board).AddPost(title, content)\n\t\t}\n\t}\n}\n\nfunc GetPost(boardId, postId int) string {\n\tb, ok := boards.Get(strconv.Itoa(boardId))\n\tvar res string\n\n\tif ok {\n\t\tp, ok := b.(Board).GetPost(postId)\n\t\tif ok {\n\t\t\tres = p.title + \",\" + p.content\n\t\t}\n\t}\n\treturn res\n}\n\nfunc GetPostSize(boardId int) int {\n\tb, ok := boards.Get(strconv.Itoa(boardId))\n\tvar res int\n\n\tif ok {\n\t\tres = b.(Board).Size()\n\t} else {\n\t\tres = -1\n\t}\n\n\treturn res\n}\n\nfunc GetBoardSize() int {\n\treturn boards.Size()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G0hW3YUixdgPD0qlMI1ZZ906+7YD8/MCRG7WDmmrJiIdTKLP78pqQfyPaQy4Ubl/XCcjRXepl9JL/jyxBCAIDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"subscription","path":"gno.land/p/demo/subscription","files":[{"name":"doc.gno","body":"// Package subscription provides a flexible system for managing both recurring and\n// lifetime subscriptions in Gno applications. It enables developers to handle\n// payment-based access control for services or products. The library supports\n// both subscriptions requiring periodic payments (recurring) and one-time payments\n// (lifetime). Subscriptions are tracked using an AVL tree for efficient management\n// of subscription statuses.\n//\n// Usage:\n//\n// Import the required sub-packages (`recurring` and/or `lifetime`) to manage specific\n// subscription types. The methods provided allow users to subscribe, check subscription\n// status, and manage payments.\n//\n// Recurring Subscription:\n//\n// Recurring subscriptions require periodic payments to maintain access.\n// Users pay to extend their access for a specific duration.\n//\n// Example:\n//\n//\t// Create a recurring subscription requiring 100 ugnot every 30 days\n//\trecSub := recurring.NewRecurringSubscription(time.Hour * 24 * 30, 100)\n//\n//\t// Process payment for the recurring subscription\n//\trecSub.Subscribe()\n//\n//\t// Gift a recurring subscription to another user\n//\trecSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\trecSub.HasValidSubscription(addr)\n//\n//\t// Get the expiration date of the subscription\n//\trecSub.GetExpiration(caller)\n//\n//\t// Update the subscription amount to 200 ugnot\n//\trecSub.UpdateAmount(200)\n//\n//\t// Get the current subscription amount\n//\trecSub.GetAmount()\n//\n// Lifetime Subscription:\n//\n// Lifetime subscriptions require a one-time payment for permanent access.\n// Once paid, users have indefinite access without further payments.\n//\n// Example:\n//\n//\t// Create a lifetime subscription costing 500 ugnot\n//\tlifeSub := lifetime.NewLifetimeSubscription(500)\n//\n//\t// Process payment for lifetime access\n//\tlifeSub.Subscribe()\n//\n//\t// Gift a lifetime subscription to another user\n//\tlifeSub.GiftSubscription(recipientAddress)\n//\n//\t// Check if a user has a valid subscription\n//\tlifeSub.HasValidSubscription(addr)\n//\n//\t// Update the lifetime subscription amount to 1000 ugnot\n//\tlifeSub.UpdateAmount(1000)\n//\n//\t// Get the current lifetime subscription amount\n//\tlifeSub.GetAmount()\npackage subscription\n"},{"name":"subscription.gno","body":"package subscription\n\nimport (\n\t\"std\"\n)\n\n// Subscription interface defines standard methods that all subscription types must implement.\ntype Subscription interface {\n\tHasValidSubscription(std.Address) error\n\tSubscribe() error\n\tUpdateAmount(newAmount int64) error\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ozYDZF4Ug7PPhvHYilWeGdswD7p5kJ+H/kNRJw5e9VWl/aVul6Vx0p2woqwjZSYbo3nHdr0V6g2WvbiR83OECQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"subtests","path":"gno.land/p/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8o5mYpKg3x6UDNh9lkjs6hexbIBvNUGcMVqgj/MH4mU0J9oRAeLRJunCfhOXte+n1PqLvLACe6yLQYYUC0c7AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"subtests","path":"gno.land/r/demo/tests/subtests","files":[{"name":"subtests.gno","body":"package subtests\n\nimport (\n\t\"std\"\n)\n\nfunc GetCurrentRealm() std.Realm {\n\treturn std.CurrentRealm()\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mkwMZABz9ux3xNXVOGNhjBAx1BCV++1rKuC/BN3CB1t37hFPCFWnPoAzYlVka2Xn56zF07x3ZQweusClKO77Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"svg","path":"gno.land/p/demo/svg","files":[{"name":"doc.gno","body":"/*\nPackage svg is a minimalist SVG generation library for Gno.\n\nThe svg package provides a simple and lightweight solution for programmatically generating SVG (Scalable Vector Graphics) markup in Gno. It allows you to create basic shapes like rectangles and circles, and output the generated SVG to a\n\nExample:\n\n\timport \"gno.land/p/demo/svg\"\"\n\n\tfunc Foo() string {\n\t canvas := svg.Canvas{Width: 200, Height: 200}\n\t canvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\t canvas.DrawCircle(100, 100, 50, \"blue\")\n\t return canvas.String()\n\t}\n*/\npackage svg // import \"gno.land/p/demo/svg\"\n"},{"name":"svg.gno","body":"package svg\n\nimport \"gno.land/p/demo/ufmt\"\n\ntype Canvas struct {\n\tWidth int\n\tHeight int\n\tElems []Elem\n}\n\ntype Elem interface{ String() string }\n\nfunc (c Canvas) String() string {\n\toutput := \"\"\n\toutput += ufmt.Sprintf(`\u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"%d\" height=\"%d\"\u003e`, c.Width, c.Height)\n\tfor _, elem := range c.Elems {\n\t\toutput += elem.String()\n\t}\n\toutput += \"\u003c/svg\u003e\"\n\treturn output\n}\n\nfunc (c *Canvas) Append(elem Elem) {\n\tc.Elems = append(c.Elems, elem)\n}\n\ntype Circle struct {\n\tCX int // center X\n\tCY int // center Y\n\tR int // radius\n\tFill string\n}\n\nfunc (c Circle) String() string {\n\treturn ufmt.Sprintf(`\u003ccircle cx=\"%d\" cy=\"%d\" r=\"%d\" fill=\"%s\" /\u003e`, c.CX, c.CY, c.R, c.Fill)\n}\n\nfunc (c *Canvas) DrawCircle(cx, cy, r int, fill string) {\n\tc.Append(Circle{\n\t\tCX: cx,\n\t\tCY: cy,\n\t\tR: r,\n\t\tFill: fill,\n\t})\n}\n\ntype Rectangle struct {\n\tX, Y, Width, Height int\n\tFill string\n}\n\nfunc (c Rectangle) String() string {\n\treturn ufmt.Sprintf(`\u003crect x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" fill=\"%s\" /\u003e`, c.X, c.Y, c.Width, c.Height, c.Fill)\n}\n\nfunc (c *Canvas) DrawRectangle(x, y, width, height int, fill string) {\n\tc.Append(Rectangle{\n\t\tX: x,\n\t\tY: y,\n\t\tWidth: width,\n\t\tHeight: height,\n\t\tFill: fill,\n\t})\n}\n\ntype Text struct {\n\tX, Y int\n\tText, Fill string\n}\n\nfunc (c Text) String() string {\n\treturn ufmt.Sprintf(`\u003ctext x=\"%d\" y=\"%d\" fill=\"%s\"\u003e%s\u003c/text\u003e`, c.X, c.Y, c.Fill, c.Text)\n}\n\nfunc (c *Canvas) DrawText(x, y int, text, fill string) {\n\tc.Append(Text{\n\t\tX: x,\n\t\tY: y,\n\t\tText: text,\n\t\tFill: fill,\n\t})\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{Width: 500, Height: 500}\n\tcanvas.DrawRectangle(50, 50, 100, 100, \"red\")\n\tcanvas.DrawCircle(100, 100, 50, \"blue\")\n\tcanvas.DrawText(100, 100, \"hello world!\", \"magenta\")\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"100\" cy=\"100\" r=\"50\" fill=\"blue\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"},{"name":"z1_filetest.gno","body":"// PKGPATH: gno.land/p/demo/svg_test\npackage svg_test\n\nimport \"gno.land/p/demo/svg\"\n\nfunc main() {\n\tcanvas := svg.Canvas{\n\t\tWidth: 500, Height: 500,\n\t\tElems: []svg.Elem{\n\t\t\tsvg.Rectangle{50, 50, 100, 100, \"red\"},\n\t\t\tsvg.Circle{50, 50, 100, \"red\"},\n\t\t\tsvg.Text{100, 100, \"hello world!\", \"magenta\"},\n\t\t},\n\t}\n\tprintln(canvas)\n}\n\n// Output:\n// \u003csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\"\u003e\u003crect x=\"50\" y=\"50\" width=\"100\" height=\"100\" fill=\"red\" /\u003e\u003ccircle cx=\"50\" cy=\"50\" r=\"100\" fill=\"red\" /\u003e\u003ctext x=\"100\" y=\"100\" fill=\"magenta\"\u003ehello world!\u003c/text\u003e\u003c/svg\u003e\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eEsxv903aVzdr45lh1pHGxEWEwHBJymsy3ZOn8MXbzVIu0IlJtncbpzHWQinMYcxw+1Yr6j1nEJZmF+V8HeaDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"tamagotchi","path":"gno.land/p/demo/tamagotchi","files":[{"name":"tamagotchi.gno","body":"package tamagotchi\n\nimport (\n\t\"time\"\n\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Tamagotchi structure\ntype Tamagotchi struct {\n\tname string\n\thunger int\n\thappiness int\n\thealth int\n\tage int\n\tmaxAge int\n\tsleepy int\n\tcreated time.Time\n\tlastUpdated time.Time\n}\n\nfunc New(name string) *Tamagotchi {\n\tnow := time.Now()\n\treturn \u0026Tamagotchi{\n\t\tname: name,\n\t\thunger: 50,\n\t\thappiness: 50,\n\t\thealth: 50,\n\t\tmaxAge: 100,\n\t\tlastUpdated: now,\n\t\tcreated: now,\n\t}\n}\n\nfunc (t *Tamagotchi) Name() string {\n\tt.update()\n\treturn t.name\n}\n\nfunc (t *Tamagotchi) Hunger() int {\n\tt.update()\n\treturn t.hunger\n}\n\nfunc (t *Tamagotchi) Happiness() int {\n\tt.update()\n\treturn t.happiness\n}\n\nfunc (t *Tamagotchi) Health() int {\n\tt.update()\n\treturn t.health\n}\n\nfunc (t *Tamagotchi) Age() int {\n\tt.update()\n\treturn t.age\n}\n\nfunc (t *Tamagotchi) Sleepy() int {\n\tt.update()\n\treturn t.sleepy\n}\n\n// Feed method for Tamagotchi\nfunc (t *Tamagotchi) Feed() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.hunger = bound(t.hunger-10, 0, 100)\n}\n\n// Play method for Tamagotchi\nfunc (t *Tamagotchi) Play() {\n\tt.update()\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.happiness = bound(t.happiness+10, 0, 100)\n}\n\n// Heal method for Tamagotchi\nfunc (t *Tamagotchi) Heal() {\n\tt.update()\n\n\tif t.dead() {\n\t\treturn\n\t}\n\tt.health = bound(t.health+10, 0, 100)\n}\n\nfunc (t Tamagotchi) dead() bool { return t.health == 0 }\n\n// Update applies changes based on the duration since the last update\nfunc (t *Tamagotchi) update() {\n\tif t.dead() {\n\t\treturn\n\t}\n\n\tnow := time.Now()\n\tif t.lastUpdated == now {\n\t\treturn\n\t}\n\n\tduration := now.Sub(t.lastUpdated)\n\telapsedMins := int(duration.Minutes())\n\n\tt.hunger = bound(t.hunger+elapsedMins, 0, 100)\n\tt.happiness = bound(t.happiness-elapsedMins, 0, 100)\n\tt.health = bound(t.health-elapsedMins, 0, 100)\n\tt.sleepy = bound(t.sleepy+elapsedMins, 0, 100)\n\n\t// age is hours since created\n\tt.age = int(now.Sub(t.created).Hours())\n\tif t.age \u003e t.maxAge {\n\t\tt.age = t.maxAge\n\t\tt.health = 0\n\t}\n\tif t.health == 0 {\n\t\tt.sleepy = 0\n\t\tt.happiness = 0\n\t\tt.hunger = 0\n\t}\n\n\tt.lastUpdated = now\n}\n\n// Face returns an ASCII art representation of the Tamagotchi's current state\nfunc (t *Tamagotchi) Face() string {\n\tt.update()\n\treturn t.face()\n}\n\nfunc (t *Tamagotchi) face() string {\n\tswitch {\n\tcase t.health == 0:\n\t\treturn \"😵\" // dead face\n\tcase t.health \u003c 30:\n\t\treturn \"😷\" // sick face\n\tcase t.happiness \u003c 30:\n\t\treturn \"😢\" // sad face\n\tcase t.hunger \u003e 70:\n\t\treturn \"😫\" // hungry face\n\tcase t.sleepy \u003e 70:\n\t\treturn \"😴\" // sleepy face\n\tdefault:\n\t\treturn \"😃\" // happy face\n\t}\n}\n\n// Markdown method for Tamagotchi\nfunc (t *Tamagotchi) Markdown() string {\n\tt.update()\n\treturn ufmt.Sprintf(`# %s %s\n\n* age: %d\n* hunger: %d\n* happiness: %d\n* health: %d\n* sleepy: %d`,\n\t\tt.name, t.Face(),\n\t\tt.age, t.hunger, t.happiness, t.health, t.sleepy,\n\t)\n}\n\nfunc bound(n, min, max int) int {\n\tif n \u003c min {\n\t\treturn min\n\t}\n\tif n \u003e max {\n\t\treturn max\n\t}\n\treturn n\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"time\"\n\n\t\"internal/os_test\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n)\n\nfunc main() {\n\tt := tamagotchi.New(\"Gnome\")\n\n\tprintln(\"\\n-- INITIAL\\n\")\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- FEEDx3, PLAYx2, HEALx4\\n\")\n\tt.Feed()\n\tt.Feed()\n\tt.Feed()\n\tt.Play()\n\tt.Play()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tt.Heal()\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 minutes\\n\")\n\tos_test.Sleep(20 * time.Minute)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n\n\tprintln(\"\\n-- WAIT 20 hours\\n\")\n\tos_test.Sleep(20 * time.Hour)\n\tprintln(t.Markdown())\n}\n\n// Output:\n//\n// -- INITIAL\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 70\n// * happiness: 30\n// * health: 30\n// * sleepy: 20\n//\n// -- FEEDx3, PLAYx2, HEALx4\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 40\n// * happiness: 50\n// * health: 70\n// * sleepy: 20\n//\n// -- WAIT 20 minutes\n//\n// # Gnome 😃\n//\n// * age: 0\n// * hunger: 60\n// * happiness: 30\n// * health: 50\n// * sleepy: 40\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n//\n// -- WAIT 20 hours\n//\n// # Gnome 😵\n//\n// * age: 20\n// * hunger: 0\n// * happiness: 0\n// * health: 0\n// * sleepy: 0\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ap4i/lBHnbHDR+GGCCVJEjRAYIxYxyPFD0DfoTJ53wM2CuGg5qpxThOUa7KPMsHLiJlj3TFaJ9hEDR9dMbMrBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"tamagotchi","path":"gno.land/r/demo/tamagotchi","files":[{"name":"realm.gno","body":"package tamagotchi\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/tamagotchi\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar t *tamagotchi.Tamagotchi\n\nfunc init() {\n\tReset(\"gnome#0\")\n}\n\nfunc Reset(optionalName string) string {\n\tname := optionalName\n\tif name == \"\" {\n\t\theight := std.GetHeight()\n\t\tname = ufmt.Sprintf(\"gnome#%d\", height)\n\t}\n\n\tt = tamagotchi.New(name)\n\n\treturn ufmt.Sprintf(\"A new tamagotchi is born. Their name is %s %s.\", t.Name(), t.Face())\n}\n\nfunc Feed() string {\n\tt.Feed()\n\treturn t.Markdown()\n}\n\nfunc Play() string {\n\tt.Play()\n\treturn t.Markdown()\n}\n\nfunc Heal() string {\n\tt.Heal()\n\treturn t.Markdown()\n}\n\nfunc Render(path string) string {\n\ttama := t.Markdown()\n\tlinks := `Actions:\n* [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n* [Play](/r/demo/tamagotchi$help\u0026func=Play)\n* [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n* [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n`\n\n\treturn tama + \"\\n\\n\" + links\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tamagotchi\"\n)\n\nfunc main() {\n\ttamagotchi.Reset(\"tamagnotchi\")\n\tprintln(tamagotchi.Render(\"\"))\n}\n\n// Output:\n// # tamagnotchi 😃\n//\n// * age: 0\n// * hunger: 50\n// * happiness: 50\n// * health: 50\n// * sleepy: 0\n//\n// Actions:\n// * [Feed](/r/demo/tamagotchi$help\u0026func=Feed)\n// * [Play](/r/demo/tamagotchi$help\u0026func=Play)\n// * [Heal](/r/demo/tamagotchi$help\u0026func=Heal)\n// * [Reset](/r/demo/tamagotchi$help\u0026func=Reset)\n//\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NKcCrj+ldpKzunueVoLsh0JUPLmiboJoSYHADpYFuLor9W755p3eH9Qcxe8xsmsr9PG1zyaWuTgvC8u7M2FNDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"test20","path":"gno.land/r/demo/tests/test20","files":[{"name":"test20.gno","body":"// Package test20 implements a deliberately insecure ERC20 token for testing purposes.\n// The Test20 token allows anyone to mint any amount of tokens to any address, making\n// it unsuitable for production use. The primary goal of this package is to facilitate\n// testing and experimentation without any security measures or restrictions.\n//\n//\tWARNING: This token is highly insecure and should not be used in any\n//\t production environment. It is intended solely for testing and\n//\t educational purposes.\npackage test20\n\nimport (\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/r/demo/grc20reg\"\n)\n\nvar Token, PrivateLedger = grc20.NewToken(\"Test20\", \"TST\", 4)\n\nfunc init() {\n\tgrc20reg.Register(Token.Getter(), \"\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fT9Z0t8452hPd3vxrnlgNHf2x1aSKR9ATzE3vwgE9+bTnli5CztitrkR3DEanOG51sBzp8BPXzpxJFDOl04vDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"tests","path":"gno.land/p/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\tpsubtests \"gno.land/p/demo/tests/subtests\"\n)\n\nconst World = \"world\"\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\n//----------------------------------------\n// cross realm test vars\n\ntype TestRealmObject2 struct {\n\tField string\n}\n\nfunc (o2 *TestRealmObject2) Modify() {\n\to2.Field = \"modified\"\n}\n\nvar (\n\tsomevalue1 TestRealmObject2\n\tSomeValue2 TestRealmObject2\n\tSomeValue3 *TestRealmObject2\n)\n\nfunc init() {\n\tsomevalue1 = TestRealmObject2{Field: \"init\"}\n\tSomeValue2 = TestRealmObject2{Field: \"init\"}\n\tSomeValue3 = \u0026TestRealmObject2{Field: \"init\"}\n}\n\nfunc ModifyTestRealmObject2a() {\n\tsomevalue1.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2b() {\n\tSomeValue2.Field = \"modified\"\n}\n\nfunc ModifyTestRealmObject2c() {\n\tSomeValue3.Field = \"modified\"\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetPSubtestsPrevRealm() std.Realm {\n\treturn psubtests.GetPrevRealm()\n}\n\n// Warning: unsafe pattern.\nfunc Exec(fn func()) {\n\tfn()\n}\n"},{"name":"tests_test.gno","body":"package tests_test\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/tests\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar World = \"WORLD\"\n\nfunc TestGetHelloWorld(t *testing.T) {\n\t// tests.World is 'world'\n\ts := \"hello \" + tests.World + World\n\tconst want = \"hello worldWORLD\"\n\n\tuassert.Equal(t, want, s)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3+WS6i5uaZBQdLFVQvNytmyofYPl2SF4AbjpF3Wt7rejSwu4WJzdgXHJxNfHTMZH5zVD0DcK8yv9P1aMycNXBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"tests","path":"gno.land/r/demo/tests","files":[{"name":"README.md","body":"Modules here are only useful for file realm tests.\nThey can be safely ignored for other purposes.\n"},{"name":"interfaces.gno","body":"package tests\n\nimport (\n\t\"strconv\"\n)\n\ntype Stringer interface {\n\tString() string\n}\n\nvar stringers []Stringer\n\nfunc AddStringer(str Stringer) {\n\t// NOTE: this is ridiculous, a slice that will become too long\n\t// eventually. Don't do this in production programs; use\n\t// gno.land/p/demo/avl or similar structures.\n\tstringers = append(stringers, str)\n}\n\nfunc Render(path string) string {\n\tres := \"\"\n\t// NOTE: like the function above, this function too will eventually\n\t// become too expensive to call.\n\tfor i, stringer := range stringers {\n\t\tres += strconv.Itoa(i) + \": \" + stringer.String() + \"\\n\"\n\t}\n\treturn res\n}\n"},{"name":"nestedpkg_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestNestedPkg(t *testing.T) {\n\t// direct child\n\tcur := \"gno.land/r/demo/tests/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// grand-grand-child\n\tcur = \"gno.land/r/demo/tests/foo/bar/baz\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif !IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// direct parent\n\tcur = \"gno.land/r/demo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif !IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should be a parent path\")\n\t}\n\tif !HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should be from the same namespace\")\n\t}\n\n\t// fake parent (prefix)\n\tcur = \"gno.land/r/dem\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n\n\t// different namespace\n\tcur = \"gno.land/r/foo\"\n\tstd.TestSetRealm(std.NewCodeRealm(cur))\n\tif IsCallerSubPath() {\n\t\tt.Errorf(cur + \" should not be a sub path\")\n\t}\n\tif IsCallerParentPath() {\n\t\tt.Errorf(cur + \" should not be a parent path\")\n\t}\n\tif HasCallerSameNamespace() {\n\t\tt.Errorf(cur + \" should not be from the same namespace\")\n\t}\n}\n"},{"name":"realm_compositelit.gno","body":"package tests\n\ntype (\n\tWord uint\n\tnat []Word\n)\n\nvar zero = \u0026Int{\n\tneg: true,\n\tabs: []Word{0},\n}\n\n// structLit\ntype Int struct {\n\tneg bool\n\tabs nat\n}\n\nfunc GetZeroType() nat {\n\ta := zero.abs\n\treturn a\n}\n"},{"name":"realm_method38d.gno","body":"package tests\n\nvar abs nat\n\nfunc (n nat) Add() nat {\n\treturn []Word{0}\n}\n\nfunc GetAbs() nat {\n\tabs = []Word{0}\n\n\treturn abs\n}\n\nfunc AbsAdd() nat {\n\trt := GetAbs().Add()\n\n\treturn rt\n}\n"},{"name":"tests.gno","body":"package tests\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/nestedpkg\"\n\trsubtests \"gno.land/r/demo/tests/subtests\"\n)\n\nvar counter int\n\nfunc IncCounter() {\n\tcounter++\n}\n\nfunc Counter() int {\n\treturn counter\n}\n\nfunc CurrentRealmPath() string {\n\treturn std.CurrentRealm().PkgPath()\n}\n\nvar initOrigCaller = std.GetOrigCaller()\n\nfunc InitOrigCaller() std.Address {\n\treturn initOrigCaller\n}\n\nfunc CallAssertOriginCall() {\n\tstd.AssertOriginCall()\n}\n\nfunc CallIsOriginCall() bool {\n\treturn std.IsOriginCall()\n}\n\nfunc CallSubtestsAssertOriginCall() {\n\trsubtests.CallAssertOriginCall()\n}\n\nfunc CallSubtestsIsOriginCall() bool {\n\treturn rsubtests.CallIsOriginCall()\n}\n\n//----------------------------------------\n// Test structure to ensure cross-realm modification is prevented.\n\ntype TestRealmObject struct {\n\tField string\n}\n\nvar TestRealmObjectValue TestRealmObject\n\nfunc ModifyTestRealmObject(t *TestRealmObject) {\n\tt.Field += \"_modified\"\n}\n\nfunc (t *TestRealmObject) Modify() {\n\tt.Field += \"_modified\"\n}\n\n//----------------------------------------\n// Test helpers to test a particular realm bug.\n\ntype TestNode struct {\n\tName string\n\tChild *TestNode\n}\n\nvar (\n\tgTestNode1 *TestNode\n\tgTestNode2 *TestNode\n\tgTestNode3 *TestNode\n)\n\nfunc InitTestNodes() {\n\tgTestNode1 = \u0026TestNode{Name: \"first\"}\n\tgTestNode2 = \u0026TestNode{Name: \"second\", Child: \u0026TestNode{Name: \"second's child\"}}\n}\n\nfunc ModTestNodes() {\n\ttmp := \u0026TestNode{}\n\ttmp.Child = gTestNode2.Child\n\tgTestNode3 = tmp // set to new-real\n\t// gTestNode1 = tmp.Child // set back to original is-real\n\tgTestNode3 = nil // delete.\n}\n\nfunc PrintTestNodes() {\n\tprintln(gTestNode2.Child.Name)\n}\n\nfunc GetPrevRealm() std.Realm {\n\treturn std.PrevRealm()\n}\n\nfunc GetRSubtestsPrevRealm() std.Realm {\n\treturn rsubtests.GetPrevRealm()\n}\n\nfunc Exec(fn func()) {\n\tfn()\n}\n\nfunc IsCallerSubPath() bool {\n\treturn nestedpkg.IsCallerSubPath()\n}\n\nfunc IsCallerParentPath() bool {\n\treturn nestedpkg.IsCallerParentPath()\n}\n\nfunc HasCallerSameNamespace() bool {\n\treturn nestedpkg.IsSameNamespace()\n}\n"},{"name":"tests_test.gno","body":"package tests\n\nimport (\n\t\"std\"\n\t\"testing\"\n)\n\nfunc TestAssertOriginCall(t *testing.T) {\n\t// CallAssertOriginCall(): no panic\n\tCallAssertOriginCall()\n\tif !CallIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=true but got false\")\n\t}\n\n\t// CallAssertOriginCall() from a block: panic\n\texpectedReason := \"invalid non-origin call\"\n\tfunc() {\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tif r == nil || r.(string) != expectedReason {\n\t\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t\t}\n\t\t}()\n\t\t// if called inside a function literal, this is no longer an origin call\n\t\t// because there's one additional frame (the function literal block).\n\t\tif CallIsOriginCall() {\n\t\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t\t}\n\t\tCallAssertOriginCall()\n\t}()\n\n\t// CallSubtestsAssertOriginCall(): panic\n\tdefer func() {\n\t\tr := recover()\n\t\tif r == nil || r.(string) != expectedReason {\n\t\t\tt.Errorf(\"expected panic with '%v', got '%v'\", expectedReason, r)\n\t\t}\n\t}()\n\tif CallSubtestsIsOriginCall() {\n\t\tt.Errorf(\"expected IsOriginCall=false but got true\")\n\t}\n\tCallSubtestsAssertOriginCall()\n}\n\nfunc TestPrevRealm(t *testing.T) {\n\tvar (\n\t\tuser1Addr = std.DerivePkgAddr(\"user1.gno\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\t// When a single realm in the frames, PrevRealm returns the user\n\tif addr := GetPrevRealm().Addr(); addr != user1Addr {\n\t\tt.Errorf(\"want GetPrevRealm().Addr==%s, got %s\", user1Addr, addr)\n\t}\n\t// When 2 or more realms in the frames, PrevRealm returns the second to last\n\tif addr := GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tt.Errorf(\"want GetRSubtestsPrevRealm().Addr==%s, got %s\", rTestsAddr, addr)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\ttests.CallAssertOriginCall()\n\tprintln(\"tests.CallAssertOriginCall doesn't panic when called directly\")\n\n\t{\n\t\t// if called inside a block, this is no longer an origin call because\n\t\t// there's one additional frame (the block).\n\t\tprintln(\"tests.CallIsOriginCall:\", tests.CallIsOriginCall())\n\t\tdefer func() {\n\t\t\tr := recover()\n\t\t\tprintln(\"tests.AssertOriginCall panics if when called inside a function literal:\", r)\n\t\t}()\n\t\ttests.CallAssertOriginCall()\n\t}\n}\n\n// Output:\n// tests.CallIsOriginCall: true\n// tests.CallAssertOriginCall doesn't panic when called directly\n// tests.CallIsOriginCall: true\n// tests.AssertOriginCall panics if when called inside a function literal: undefined\n"},{"name":"z1_filetest.gno","body":"package main\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tprintln(tests.Counter())\n\ttests.IncCounter()\n\tprintln(tests.Counter())\n}\n\n// Output:\n// 0\n// 1\n"},{"name":"z2_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\n// When a single realm in the frames, PrevRealm returns the user\n// When 2 or more realms in the frames, PrevRealm returns the second to last\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\tprintln(\"tests.GetPrevRealm().Addr(): \", tests.GetPrevRealm().Addr())\n\tprintln(\"tests.GetRSubtestsPrevRealm().Addr(): \", tests.GetRSubtestsPrevRealm().Addr())\n}\n\n// Output:\n// tests.GetPrevRealm().Addr(): g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk\n// tests.GetRSubtestsPrevRealm().Addr(): g1gz4ycmx0s6ln2wdrsh4e00l9fsel2wskqa3snq\n"},{"name":"z3_filetest.gno","body":"// PKGPATH: gno.land/r/demo/test_test\npackage test_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/tests\"\n)\n\nfunc main() {\n\tvar (\n\t\teoa = testutils.TestAddress(\"someone\")\n\t\trTestsAddr = std.DerivePkgAddr(\"gno.land/r/demo/tests\")\n\t)\n\tstd.TestSetOrigCaller(eoa)\n\t// Contrarily to z2_filetest.gno we EXPECT GetPrevRealms != eoa (#1704)\n\tif addr := tests.GetPrevRealm().Addr(); addr != eoa {\n\t\tprintln(\"want tests.GetPrevRealm().Addr ==\", eoa, \"got\", addr)\n\t}\n\t// When 2 or more realms in the frames, it is also different\n\tif addr := tests.GetRSubtestsPrevRealm().Addr(); addr != rTestsAddr {\n\t\tprintln(\"want GetRSubtestsPrevRealm().Addr ==\", rTestsAddr, \"got\", addr)\n\t}\n}\n\n// Output:\n// want tests.GetPrevRealm().Addr == g1wdhk6et0dej47h6lta047h6lta047h6lrnerlk got g1xufrdvnfk6zc9r0nqa23ld3tt2r5gkyvw76q63\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HNXPbh4NnF+/7DhG/s7xeqU8dYz533QPohUjSeFd3p935VxIkh3cHrP3PzhkbG0LPxeTdum6r70gDopYYezqBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"tests_foo","path":"gno.land/r/demo/tests_foo","files":[{"name":"foo.gno","body":"package tests_foo\n\nimport (\n\t\"gno.land/r/demo/tests\"\n)\n\n// for testing gno.land/r/demo/tests/interfaces.go\n\ntype FooStringer struct {\n\tFieldA string\n}\n\nfunc (fs *FooStringer) String() string {\n\treturn \"\u0026FooStringer{\" + fs.FieldA + \"}\"\n}\n\nfunc AddFooStringer(fa string) {\n\ttests.AddStringer(\u0026FooStringer{fa})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YRD3Y+ab+EPUUed8YLAJG4AUrSY4RmMO/wBO7Zy4xfVo6pONT8oNysQwWKNewJ5ki98/XbHqydox2MnKAX+lDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"testutils","path":"gno.land/p/demo/testutils","files":[{"name":"access.gno","body":"package testutils\n\n// for testing access. see tests/files/access*.go\n\n// NOTE: non-package variables cannot be overridden, except during init().\nvar (\n\tTestVar1 int\n\ttestVar2 int\n)\n\nfunc init() {\n\tTestVar1 = 123\n\ttestVar2 = 456\n}\n\ntype TestAccessStruct struct {\n\tPublicField string\n\tprivateField string\n}\n\nfunc (tas TestAccessStruct) PublicMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc (tas TestAccessStruct) privateMethod() string {\n\treturn tas.PublicField + \"/\" + tas.privateField\n}\n\nfunc NewTestAccessStruct(pub, priv string) TestAccessStruct {\n\treturn TestAccessStruct{\n\t\tPublicField: pub,\n\t\tprivateField: priv,\n\t}\n}\n\n// see access6.g0 etc.\ntype PrivateInterface interface {\n\tprivateMethod() string\n}\n\nfunc PrintPrivateInterface(pi PrivateInterface) {\n\tprintln(\"testutils.PrintPrivateInterface\", pi.privateMethod())\n}\n"},{"name":"crypto.gno","body":"package testutils\n\nimport \"std\"\n\nfunc TestAddress(name string) std.Address {\n\tif len(name) \u003e std.RawAddressSize {\n\t\tpanic(\"address name cannot be greater than std.AddressSize bytes\")\n\t}\n\taddr := std.RawAddress{}\n\t// TODO: use strings.RepeatString or similar.\n\t// NOTE: I miss python's \"\".Join().\n\tblanks := \"____________________\"\n\tcopy(addr[:], []byte(blanks))\n\tcopy(addr[:], []byte(name))\n\treturn std.Address(std.EncodeBech32(\"g\", addr))\n}\n"},{"name":"misc.gno","body":"package testutils\n\n// For testing std.GetCallerAt().\nfunc WrapCall(fn func()) {\n\tfn()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MRJn+59xQAzjsvZgMEH0AJhvJfmsuzKeCs4TcUQY9rTZ9Yq6TMhRhkMoXfovEg0EMmh2d+EX/rPVi0krVqFZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"todolist","path":"gno.land/p/demo/todolist","files":[{"name":"todolist.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\ntype TodoList struct {\n\tTitle string\n\tTasks *avl.Tree\n\tOwner std.Address\n}\n\ntype Task struct {\n\tTitle string\n\tDone bool\n}\n\nfunc NewTodoList(title string) *TodoList {\n\treturn \u0026TodoList{\n\t\tTitle: title,\n\t\tTasks: avl.NewTree(),\n\t\tOwner: std.GetOrigCaller(),\n\t}\n}\n\nfunc NewTask(title string) *Task {\n\treturn \u0026Task{\n\t\tTitle: title,\n\t\tDone: false,\n\t}\n}\n\nfunc (tl *TodoList) AddTask(id int, task *Task) {\n\ttl.Tasks.Set(strconv.Itoa(id), task)\n}\n\nfunc ToggleTaskStatus(task *Task) {\n\ttask.Done = !task.Done\n}\n\nfunc (tl *TodoList) RemoveTask(taskId string) {\n\ttl.Tasks.Remove(taskId)\n}\n\nfunc (tl *TodoList) GetTasks() []*Task {\n\ttasks := make([]*Task, 0, tl.Tasks.Size())\n\ttl.Tasks.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\ttasks = append(tasks, value.(*Task))\n\t\treturn false\n\t})\n\treturn tasks\n}\n\nfunc (tl *TodoList) GetTodolistOwner() std.Address {\n\treturn tl.Owner\n}\n\nfunc (tl *TodoList) GetTodolistTitle() string {\n\treturn tl.Title\n}\n"},{"name":"todolist_test.gno","body":"package todolist\n\nimport (\n\t\"std\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttodoList := NewTodoList(title)\n\n\tuassert.Equal(t, title, todoList.GetTodolistTitle())\n\tuassert.Equal(t, 0, len(todoList.GetTasks()))\n\tuassert.Equal(t, std.GetOrigCaller().String(), todoList.GetTodolistOwner().String())\n}\n\nfunc TestNewTask(t *testing.T) {\n\ttitle := \"My Task\"\n\ttask := NewTask(title)\n\n\tuassert.Equal(t, title, task.Title)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is done\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\n\ttodoList.AddTask(1, task)\n\n\ttasks := todoList.GetTasks()\n\n\tuassert.Equal(t, 1, len(tasks))\n\tuassert.True(t, tasks[0] == task, \"Task does not match\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\ttask := NewTask(\"My Task\")\n\n\tToggleTaskStatus(task)\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not done\")\n\n\tToggleTaskStatus(task)\n\tuassert.False(t, task.Done, \"Expected task to be done, but it is not done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\ttodoList := NewTodoList(\"My Todo List\")\n\ttask := NewTask(\"My Task\")\n\ttodoList.AddTask(1, task)\n\n\ttodoList.RemoveTask(\"1\")\n\n\ttasks := todoList.GetTasks()\n\tuassert.Equal(t, 0, len(tasks))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A3oHGMiOCkcVJ59zghK3SQO1kfp9H5mUGwEEfhfOrkw4XINmfzW6ivR09G3np7tI0KrVjB6wA61pwA4hwSnnAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"todolistrealm","path":"gno.land/r/demo/todolist","files":[{"name":"todolist.gno","body":"package todolistrealm\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// State variables\nvar (\n\ttodolistTree *avl.Tree\n\ttlid seqid.ID\n)\n\n// Constructor\nfunc init() {\n\ttodolistTree = avl.NewTree()\n}\n\nfunc NewTodoList(title string) (int, string) {\n\t// Create new Todolist\n\ttl := todolist.NewTodoList(title)\n\t// Update AVL tree with new state\n\ttlid.Next()\n\ttodolistTree.Set(strconv.Itoa(int(tlid)), tl)\n\treturn int(tlid), \"created successfully\"\n}\n\nfunc AddTask(todolistID int, title string) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// get the number of tasks in the todolist\n\tid := tl.(*todolist.TodoList).Tasks.Size()\n\n\t// create the task\n\ttask := todolist.NewTask(title)\n\n\t// Cast raw data from tree into Todolist struct\n\ttl.(*todolist.TodoList).AddTask(id, task)\n\n\treturn \"task added successfully\"\n}\n\nfunc ToggleTaskStatus(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\ttask, found := tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !found {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttodolist.ToggleTaskStatus(task.(*todolist.Task))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTask(todolistID int, taskID int) string {\n\t// Get Todolist from AVL tree\n\ttl, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Get the task from the todolist\n\t_, ok = tl.(*todolist.TodoList).Tasks.Get(strconv.Itoa(taskID))\n\tif !ok {\n\t\tpanic(\"Task not found\")\n\t}\n\n\t// Change the status of the task\n\ttl.(*todolist.TodoList).RemoveTask(strconv.Itoa(taskID))\n\n\treturn \"task status changed successfully\"\n}\n\nfunc RemoveTodoList(todolistID int) string {\n\t// Get Todolist from AVL tree\n\t_, ok := todolistTree.Get(strconv.Itoa(todolistID))\n\tif !ok {\n\t\tpanic(\"Todolist not found\")\n\t}\n\n\t// Remove the todolist\n\ttodolistTree.Remove(strconv.Itoa(todolistID))\n\n\treturn \"Todolist removed successfully\"\n}\n\nfunc Render(path string) string {\n\tif path == \"\" {\n\t\treturn renderHomepage()\n\t}\n\n\treturn \"unknown page\"\n}\n\nfunc renderHomepage() string {\n\t// Define empty buffer\n\tvar b bytes.Buffer\n\n\tb.WriteString(\"# Welcome to ToDolist\\n\\n\")\n\n\t// If no todolists have been created\n\tif todolistTree.Size() == 0 {\n\t\tb.WriteString(\"### No todolists available currently!\")\n\t\treturn b.String()\n\t}\n\n\t// Iterate through AVL tree\n\ttodolistTree.Iterate(\"\", \"\", func(key string, value interface{}) bool {\n\t\t// cast raw data from tree into Todolist struct\n\t\ttl := value.(*todolist.TodoList)\n\n\t\t// Add Todolist name\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"## Todolist #%s: %s\\n\",\n\t\t\t\tkey, // Todolist ID\n\t\t\t\ttl.GetTodolistTitle(),\n\t\t\t),\n\t\t)\n\n\t\t// Add Todolist owner\n\t\tb.WriteString(\n\t\t\tufmt.Sprintf(\n\t\t\t\t\"#### Todolist owner : %s\\n\",\n\t\t\t\ttl.GetTodolistOwner(),\n\t\t\t),\n\t\t)\n\n\t\t// List all todos that are currently Todolisted\n\t\tif todos := tl.GetTasks(); len(todos) \u003e 0 {\n\t\t\tb.WriteString(\n\t\t\t\tufmt.Sprintf(\"Currently Todo tasks: %d\\n\\n\", len(todos)),\n\t\t\t)\n\n\t\t\tfor index, todo := range todos {\n\t\t\t\tb.WriteString(\n\t\t\t\t\tufmt.Sprintf(\"#%d - %s \", index, todo.Title),\n\t\t\t\t)\n\t\t\t\t// displays a checked box if task is marked as done, an empty box if not\n\t\t\t\tif todo.Done {\n\t\t\t\t\tb.WriteString(\n\t\t\t\t\t\t\"☑\\n\\n\",\n\t\t\t\t\t)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tb.WriteString(\n\t\t\t\t\t\"☐\\n\\n\",\n\t\t\t\t)\n\t\t\t}\n\t\t} else {\n\t\t\tb.WriteString(\"No tasks in this list currently\\n\")\n\t\t}\n\n\t\tb.WriteString(\"\\n\")\n\t\treturn false\n\t})\n\n\treturn b.String()\n}\n"},{"name":"todolist_test.gno","body":"package todolistrealm\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"testing\"\n\n\t\"gno.land/p/demo/todolist\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nvar (\n\tnode interface{}\n\ttdl *todolist.TodoList\n)\n\nfunc TestNewTodoList(t *testing.T) {\n\ttitle := \"My Todo List\"\n\ttlid, _ := NewTodoList(title)\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\n\t// get the todolist node from the tree\n\tnode, _ = todolistTree.Get(strconv.Itoa(tlid))\n\t// convert the node to a TodoList struct\n\ttdl = node.(*todolist.TodoList)\n\n\tuassert.Equal(t, title, tdl.Title, \"title does not match\")\n\tuassert.Equal(t, 1, tlid, \"tlid does not match\")\n\tuassert.Equal(t, tdl.Owner.String(), std.GetOrigCaller().String(), \"owner does not match\")\n\tuassert.Equal(t, 0, len(tdl.GetTasks()), \"Expected no tasks in the todo list\")\n}\n\nfunc TestAddTask(t *testing.T) {\n\tAddTask(1, \"Task 1\")\n\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 1, len(tasks), \"total task does not match\")\n\tuassert.Equal(t, \"Task 1\", tasks[0].Title, \"task title does not match\")\n\tuassert.False(t, tasks[0].Done, \"Expected task to be not done\")\n}\n\nfunc TestToggleTaskStatus(t *testing.T) {\n\tToggleTaskStatus(1, 0)\n\ttask := tdl.GetTasks()[0]\n\tuassert.True(t, task.Done, \"Expected task to be done, but it is not marked as done\")\n\n\tToggleTaskStatus(1, 0)\n\tuassert.False(t, task.Done, \"Expected task to be not done, but it is marked as done\")\n}\n\nfunc TestRemoveTask(t *testing.T) {\n\tRemoveTask(1, 0)\n\ttasks := tdl.GetTasks()\n\tuassert.Equal(t, 0, len(tasks), \"Expected no tasks in the todo list\")\n}\n\nfunc TestRemoveTodoList(t *testing.T) {\n\tRemoveTodoList(1)\n\tuassert.Equal(t, 0, todolistTree.Size(), \"Expected no tasks in the todo list\")\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x9V9OGpI2Q2YrUDOOiSny6Q2tbRM53roHK5t01mOqZmY2PoGCKl5tPzTdHoN1e8NnRNnrydHIZD3kq1HjhUgAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"txlink","path":"gno.land/p/moul/txlink","files":[{"name":"txlink.gno","body":"// Package txlink provides utilities for creating transaction-related links\n// compatible with Gnoweb, Gnobro, and other clients within the Gno ecosystem.\n//\n// This package is optimized for generating lightweight transaction links with\n// flexible arguments, allowing users to build dynamic links that integrate\n// seamlessly with various Gno clients.\n//\n// The primary function, Call, is designed to produce markdown links for\n// transaction functions in the current \"relative realm\". By specifying a custom\n// Realm, you can generate links that either use the current realm path or a\n// fully qualified path for another realm.\n//\n// This package is a streamlined alternative to helplink, providing similar\n// functionality for transaction links without the full feature set of helplink.\npackage txlink\n\nimport (\n\t\"std\"\n\t\"strings\"\n)\n\nconst chainDomain = \"gno.land\" // XXX: std.ChainDomain (#2911)\n\n// Call returns a URL for the specified function with optional key-value\n// arguments, for the current realm.\nfunc Call(fn string, args ...string) string {\n\treturn Realm(\"\").Call(fn, args...)\n}\n\n// Realm represents a specific realm for generating tx links.\ntype Realm string\n\n// prefix returns the URL prefix for the realm.\nfunc (r Realm) prefix() string {\n\t// relative\n\tif r == \"\" {\n\t\tcurPath := std.CurrentRealm().PkgPath()\n\t\treturn strings.TrimPrefix(curPath, chainDomain)\n\t}\n\n\t// local realm -\u003e /realm\n\trealm := string(r)\n\tif strings.Contains(realm, chainDomain) {\n\t\treturn strings.TrimPrefix(realm, chainDomain)\n\t}\n\n\t// remote realm -\u003e https://remote.land/realm\n\treturn \"https://\" + string(r)\n}\n\n// Call returns a URL for the specified function with optional key-value\n// arguments.\nfunc (r Realm) Call(fn string, args ...string) string {\n\t// Start with the base query\n\turl := r.prefix() + \"$help\u0026func=\" + fn\n\n\t// Check if args length is even\n\tif len(args)%2 != 0 {\n\t\t// If not even, we can choose to handle the error here.\n\t\t// For example, we can just return the URL without appending\n\t\t// more args.\n\t\treturn url\n\t}\n\n\t// Append key-value pairs to the URL\n\tfor i := 0; i \u003c len(args); i += 2 {\n\t\tkey := args[i]\n\t\tvalue := args[i+1]\n\t\t// XXX: escape keys and args\n\t\turl += \"\u0026\" + key + \"=\" + value\n\t}\n\n\treturn url\n}\n"},{"name":"txlink_test.gno","body":"package txlink\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/urequire\"\n)\n\nfunc TestCall(t *testing.T) {\n\ttests := []struct {\n\t\tfn string\n\t\targs []string\n\t\twant string\n\t\trealm Realm\n\t}{\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"$help\u0026func=testFunc\u0026key=value\", \"\"},\n\t\t{\"noArgsFunc\", []string{}, \"$help\u0026func=noArgsFunc\", \"\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"$help\u0026func=oddArgsFunc\", \"\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.land/r/lorem/ipsum\"},\n\t\t{\"foo\", []string{\"bar\", \"1\", \"baz\", \"2\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=foo\u0026bar=1\u0026baz=2\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"testFunc\", []string{\"key\", \"value\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=testFunc\u0026key=value\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"noArgsFunc\", []string{}, \"https://gno.world/r/lorem/ipsum$help\u0026func=noArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t\t{\"oddArgsFunc\", []string{\"key\"}, \"https://gno.world/r/lorem/ipsum$help\u0026func=oddArgsFunc\", \"gno.world/r/lorem/ipsum\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttitle := tt.fn\n\t\tt.Run(title, func(t *testing.T) {\n\t\t\tgot := tt.realm.Call(tt.fn, tt.args...)\n\t\t\turequire.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eg25g85YX7DBfMx2lcx1x03gEGHJRms+RxldfSgbevx/dJ+eZ7uWKbj+NFqfTWdC/u4yqiG98DDb1zbMXjaoDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"types","path":"gno.land/r/demo/types","files":[{"name":"types.gno","body":"// package to test types behavior in various conditions (TXs, imports).\npackage types\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n)\n\nvar (\n\tgInt int = -42\n\tgUint uint = 42\n\tgString string = \"a string\"\n\tgStringSlice []string = []string{\"a\", \"string\", \"slice\"}\n\tgError error = errors.New(\"an error\")\n\tgIntSlice []int = []int{-42, 0, 42}\n\tgUintSlice []uint = []uint{0, 42, 84}\n\tgTree avl.Tree\n\t// gInterface = interface{}{-42, \"a string\", uint(42)}\n)\n\nfunc init() {\n\tgTree.Set(\"a\", \"content of A\")\n\tgTree.Set(\"b\", \"content of B\")\n}\n\nfunc Noop() {}\nfunc RetTimeNow() time.Time { return time.Now() }\nfunc RetString() string { return gString }\nfunc RetStringPointer() *string { return \u0026gString }\nfunc RetUint() uint { return gUint }\nfunc RetInt() int { return gInt }\nfunc RetUintPointer() *uint { return \u0026gUint }\nfunc RetIntPointer() *int { return \u0026gInt }\nfunc RetTree() avl.Tree { return gTree }\nfunc RetIntSlice() []int { return gIntSlice }\nfunc RetUintSlice() []uint { return gUintSlice }\nfunc RetStringSlice() []string { return gStringSlice }\nfunc RetError() error { return gError }\nfunc Panic() { panic(\"PANIC!\") }\n\n// TODO: floats\n// TODO: typed errors\n// TODO: ret interface\n// TODO: recover\n// TODO: take types as input\n\nfunc Render(path string) string {\n\treturn \"package to test data types.\"\n}\n"},{"name":"types_test.gno","body":"package types\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57NwSgW7+25wYUuYGAbq2W2uZcsiMDx58yATeYT5aHqFPga8R3ye9ZDhYBgaaqBNT067rNYAGxTR8KaQNL5ACQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"typeutil","path":"gno.land/p/moul/typeutil","files":[{"name":"typeutil.gno","body":"// Package typeutil provides utility functions for converting between different types\n// and checking their states. It aims to provide consistent behavior across different\n// types while remaining lightweight and dependency-free.\npackage typeutil\n\nimport (\n\t\"errors\"\n\t\"sort\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// stringer is the interface that wraps the String method.\ntype stringer interface {\n\tString() string\n}\n\n// ToString converts any value to its string representation.\n// It supports a wide range of Go types including:\n// - Basic: string, bool\n// - Numbers: int, int8-64, uint, uint8-64, float32, float64\n// - Special: time.Time, std.Address, []byte\n// - Slices: []T for most basic types\n// - Maps: map[string]string, map[string]interface{}\n// - Interface: types implementing String() string\n//\n// Example usage:\n//\n//\tstr := typeutil.ToString(42) // \"42\"\n//\tstr = typeutil.ToString([]int{1, 2}) // \"[1 2]\"\n//\tstr = typeutil.ToString(map[string]string{ // \"map[a:1 b:2]\"\n//\t \"a\": \"1\",\n//\t \"b\": \"2\",\n//\t})\nfunc ToString(val interface{}) string {\n\tif val == nil {\n\t\treturn \"\"\n\t}\n\n\t// First check if value implements Stringer interface\n\tif s, ok := val.(interface{ String() string }); ok {\n\t\treturn s.String()\n\t}\n\n\tswitch v := val.(type) {\n\t// Pointer types - dereference and recurse\n\tcase *string:\n\t\tif v == nil {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn *v\n\tcase *int:\n\t\tif v == nil {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn strconv.Itoa(*v)\n\tcase *bool:\n\t\tif v == nil {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn strconv.FormatBool(*v)\n\tcase *time.Time:\n\t\tif v == nil {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn v.String()\n\tcase *std.Address:\n\t\tif v == nil {\n\t\t\treturn \"\"\n\t\t}\n\t\treturn string(*v)\n\n\t// String types\n\tcase string:\n\t\treturn v\n\tcase stringer:\n\t\treturn v.String()\n\n\t// Special types\n\tcase time.Time:\n\t\treturn v.String()\n\tcase std.Address:\n\t\treturn string(v)\n\tcase []byte:\n\t\treturn string(v)\n\tcase struct{}:\n\t\treturn \"{}\"\n\n\t// Integer types\n\tcase int:\n\t\treturn strconv.Itoa(v)\n\tcase int8:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int16:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int32:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int64:\n\t\treturn strconv.FormatInt(v, 10)\n\tcase uint:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint8:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint16:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint32:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint64:\n\t\treturn strconv.FormatUint(v, 10)\n\n\t// Float types\n\tcase float32:\n\t\treturn strconv.FormatFloat(float64(v), 'f', -1, 32)\n\tcase float64:\n\t\treturn strconv.FormatFloat(v, 'f', -1, 64)\n\n\t// Boolean\n\tcase bool:\n\t\tif v {\n\t\t\treturn \"true\"\n\t\t}\n\t\treturn \"false\"\n\n\t// Slice types\n\tcase []string:\n\t\treturn join(v)\n\tcase []int:\n\t\treturn join(v)\n\tcase []int32:\n\t\treturn join(v)\n\tcase []int64:\n\t\treturn join(v)\n\tcase []float32:\n\t\treturn join(v)\n\tcase []float64:\n\t\treturn join(v)\n\tcase []interface{}:\n\t\treturn join(v)\n\tcase []time.Time:\n\t\treturn joinTimes(v)\n\tcase []stringer:\n\t\treturn join(v)\n\tcase []std.Address:\n\t\treturn joinAddresses(v)\n\tcase [][]byte:\n\t\treturn joinBytes(v)\n\n\t// Map types with various key types\n\tcase map[interface{}]interface{}, map[string]interface{}, map[string]string, map[string]int:\n\t\tvar b strings.Builder\n\t\tb.WriteString(\"map[\")\n\t\tfirst := true\n\n\t\tswitch m := v.(type) {\n\t\tcase map[interface{}]interface{}:\n\t\t\t// Convert all keys to strings for consistent ordering\n\t\t\tkeys := make([]string, 0)\n\t\t\tkeyMap := make(map[string]interface{})\n\n\t\t\tfor k := range m {\n\t\t\t\tkeyStr := ToString(k)\n\t\t\t\tkeys = append(keys, keyStr)\n\t\t\t\tkeyMap[keyStr] = k\n\t\t\t}\n\t\t\tsort.Strings(keys)\n\n\t\t\tfor _, keyStr := range keys {\n\t\t\t\tif !first {\n\t\t\t\t\tb.WriteString(\" \")\n\t\t\t\t}\n\t\t\t\torigKey := keyMap[keyStr]\n\t\t\t\tb.WriteString(keyStr)\n\t\t\t\tb.WriteString(\":\")\n\t\t\t\tb.WriteString(ToString(m[origKey]))\n\t\t\t\tfirst = false\n\t\t\t}\n\n\t\tcase map[string]interface{}:\n\t\t\tkeys := make([]string, 0)\n\t\t\tfor k := range m {\n\t\t\t\tkeys = append(keys, k)\n\t\t\t}\n\t\t\tsort.Strings(keys)\n\n\t\t\tfor _, k := range keys {\n\t\t\t\tif !first {\n\t\t\t\t\tb.WriteString(\" \")\n\t\t\t\t}\n\t\t\t\tb.WriteString(k)\n\t\t\t\tb.WriteString(\":\")\n\t\t\t\tb.WriteString(ToString(m[k]))\n\t\t\t\tfirst = false\n\t\t\t}\n\n\t\tcase map[string]string:\n\t\t\tkeys := make([]string, 0)\n\t\t\tfor k := range m {\n\t\t\t\tkeys = append(keys, k)\n\t\t\t}\n\t\t\tsort.Strings(keys)\n\n\t\t\tfor _, k := range keys {\n\t\t\t\tif !first {\n\t\t\t\t\tb.WriteString(\" \")\n\t\t\t\t}\n\t\t\t\tb.WriteString(k)\n\t\t\t\tb.WriteString(\":\")\n\t\t\t\tb.WriteString(m[k])\n\t\t\t\tfirst = false\n\t\t\t}\n\n\t\tcase map[string]int:\n\t\t\tkeys := make([]string, 0)\n\t\t\tfor k := range m {\n\t\t\t\tkeys = append(keys, k)\n\t\t\t}\n\t\t\tsort.Strings(keys)\n\n\t\t\tfor _, k := range keys {\n\t\t\t\tif !first {\n\t\t\t\t\tb.WriteString(\" \")\n\t\t\t\t}\n\t\t\t\tb.WriteString(k)\n\t\t\t\tb.WriteString(\":\")\n\t\t\t\tb.WriteString(strconv.Itoa(m[k]))\n\t\t\t\tfirst = false\n\t\t\t}\n\t\t}\n\t\tb.WriteString(\"]\")\n\t\treturn b.String()\n\n\t// Default\n\tdefault:\n\t\treturn \"\u003cunknown\u003e\"\n\t}\n}\n\nfunc join(slice interface{}) string {\n\tif IsZero(slice) {\n\t\treturn \"[]\"\n\t}\n\n\titems := ToInterfaceSlice(slice)\n\tif items == nil {\n\t\treturn \"[]\"\n\t}\n\n\tvar b strings.Builder\n\tb.WriteString(\"[\")\n\tfor i, item := range items {\n\t\tif i \u003e 0 {\n\t\t\tb.WriteString(\" \")\n\t\t}\n\t\tb.WriteString(ToString(item))\n\t}\n\tb.WriteString(\"]\")\n\treturn b.String()\n}\n\nfunc joinTimes(slice []time.Time) string {\n\tif len(slice) == 0 {\n\t\treturn \"[]\"\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\"[\")\n\tfor i, t := range slice {\n\t\tif i \u003e 0 {\n\t\t\tb.WriteString(\" \")\n\t\t}\n\t\tb.WriteString(t.String())\n\t}\n\tb.WriteString(\"]\")\n\treturn b.String()\n}\n\nfunc joinAddresses(slice []std.Address) string {\n\tif len(slice) == 0 {\n\t\treturn \"[]\"\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\"[\")\n\tfor i, addr := range slice {\n\t\tif i \u003e 0 {\n\t\t\tb.WriteString(\" \")\n\t\t}\n\t\tb.WriteString(string(addr))\n\t}\n\tb.WriteString(\"]\")\n\treturn b.String()\n}\n\nfunc joinBytes(slice [][]byte) string {\n\tif len(slice) == 0 {\n\t\treturn \"[]\"\n\t}\n\tvar b strings.Builder\n\tb.WriteString(\"[\")\n\tfor i, bytes := range slice {\n\t\tif i \u003e 0 {\n\t\t\tb.WriteString(\" \")\n\t\t}\n\t\tb.WriteString(string(bytes))\n\t}\n\tb.WriteString(\"]\")\n\treturn b.String()\n}\n\n// ToBool converts any value to a boolean based on common programming conventions.\n// For example:\n// - Numbers: 0 is false, any other number is true\n// - Strings: \"\", \"0\", \"false\", \"f\", \"no\", \"n\", \"off\" are false, others are true\n// - Slices/Maps: empty is false, non-empty is true\n// - nil: always false\n// - bool: direct value\nfunc ToBool(val interface{}) bool {\n\tif IsZero(val) {\n\t\treturn false\n\t}\n\n\t// Handle special string cases\n\tif str, ok := val.(string); ok {\n\t\tstr = strings.ToLower(strings.TrimSpace(str))\n\t\treturn str != \"\" \u0026\u0026 str != \"0\" \u0026\u0026 str != \"false\" \u0026\u0026 str != \"f\" \u0026\u0026 str != \"no\" \u0026\u0026 str != \"n\" \u0026\u0026 str != \"off\"\n\t}\n\n\treturn true\n}\n\n// IsZero returns true if the value represents a \"zero\" or \"empty\" state for its type.\n// For example:\n// - Numbers: 0\n// - Strings: \"\"\n// - Slices/Maps: empty\n// - nil: true\n// - bool: false\n// - time.Time: IsZero()\n// - std.Address: empty string\nfunc IsZero(val interface{}) bool {\n\tif val == nil {\n\t\treturn true\n\t}\n\n\tswitch v := val.(type) {\n\t// Pointer types - nil pointer is zero, otherwise check pointed value\n\tcase *bool:\n\t\treturn v == nil || !*v\n\tcase *string:\n\t\treturn v == nil || *v == \"\"\n\tcase *int:\n\t\treturn v == nil || *v == 0\n\tcase *time.Time:\n\t\treturn v == nil || v.IsZero()\n\tcase *std.Address:\n\t\treturn v == nil || string(*v) == \"\"\n\n\t// Bool\n\tcase bool:\n\t\treturn !v\n\n\t// String types\n\tcase string:\n\t\treturn v == \"\"\n\tcase stringer:\n\t\treturn v.String() == \"\"\n\n\t// Integer types\n\tcase int:\n\t\treturn v == 0\n\tcase int8:\n\t\treturn v == 0\n\tcase int16:\n\t\treturn v == 0\n\tcase int32:\n\t\treturn v == 0\n\tcase int64:\n\t\treturn v == 0\n\tcase uint:\n\t\treturn v == 0\n\tcase uint8:\n\t\treturn v == 0\n\tcase uint16:\n\t\treturn v == 0\n\tcase uint32:\n\t\treturn v == 0\n\tcase uint64:\n\t\treturn v == 0\n\n\t// Float types\n\tcase float32:\n\t\treturn v == 0\n\tcase float64:\n\t\treturn v == 0\n\n\t// Special types\n\tcase []byte:\n\t\treturn len(v) == 0\n\tcase time.Time:\n\t\treturn v.IsZero()\n\tcase std.Address:\n\t\treturn string(v) == \"\"\n\n\t// Slices (check if empty)\n\tcase []string:\n\t\treturn len(v) == 0\n\tcase []int:\n\t\treturn len(v) == 0\n\tcase []int32:\n\t\treturn len(v) == 0\n\tcase []int64:\n\t\treturn len(v) == 0\n\tcase []float32:\n\t\treturn len(v) == 0\n\tcase []float64:\n\t\treturn len(v) == 0\n\tcase []interface{}:\n\t\treturn len(v) == 0\n\tcase []time.Time:\n\t\treturn len(v) == 0\n\tcase []std.Address:\n\t\treturn len(v) == 0\n\tcase [][]byte:\n\t\treturn len(v) == 0\n\tcase []stringer:\n\t\treturn len(v) == 0\n\n\t// Maps (check if empty)\n\tcase map[string]string:\n\t\treturn len(v) == 0\n\tcase map[string]interface{}:\n\t\treturn len(v) == 0\n\n\tdefault:\n\t\treturn false // non-nil unknown types are considered non-zero\n\t}\n}\n\n// ToInterfaceSlice converts various slice types to []interface{}\nfunc ToInterfaceSlice(val interface{}) []interface{} {\n\tswitch v := val.(type) {\n\tcase []interface{}:\n\t\treturn v\n\tcase []string:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, s := range v {\n\t\t\tresult[i] = s\n\t\t}\n\t\treturn result\n\tcase []int:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = n\n\t\t}\n\t\treturn result\n\tcase []int32:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = n\n\t\t}\n\t\treturn result\n\tcase []int64:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = n\n\t\t}\n\t\treturn result\n\tcase []float32:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = n\n\t\t}\n\t\treturn result\n\tcase []float64:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = n\n\t\t}\n\t\treturn result\n\tcase []bool:\n\t\tresult := make([]interface{}, len(v))\n\t\tfor i, b := range v {\n\t\t\tresult[i] = b\n\t\t}\n\t\treturn result\n\tdefault:\n\t\treturn nil\n\t}\n}\n\n// ToMapStringInterface converts a map with string keys and any value type to map[string]interface{}\nfunc ToMapStringInterface(m interface{}) (map[string]interface{}, error) {\n\tresult := make(map[string]interface{})\n\n\tswitch v := m.(type) {\n\tcase map[string]interface{}:\n\t\treturn v, nil\n\tcase map[string]string:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string]int:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string]int64:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string]float64:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string]bool:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string][]string:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = ToInterfaceSlice(val)\n\t\t}\n\tcase map[string][]int:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = ToInterfaceSlice(val)\n\t\t}\n\tcase map[string][]interface{}:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string]map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[string]map[string]string:\n\t\tfor k, val := range v {\n\t\t\tif converted, err := ToMapStringInterface(val); err == nil {\n\t\t\t\tresult[k] = converted\n\t\t\t} else {\n\t\t\t\treturn nil, errors.New(\"failed to convert nested map at key: \" + k)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn nil, errors.New(\"unsupported map type: \" + ToString(m))\n\t}\n\n\treturn result, nil\n}\n\n// ToMapIntInterface converts a map with int keys and any value type to map[int]interface{}\nfunc ToMapIntInterface(m interface{}) (map[int]interface{}, error) {\n\tresult := make(map[int]interface{})\n\n\tswitch v := m.(type) {\n\tcase map[int]interface{}:\n\t\treturn v, nil\n\tcase map[int]string:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int]int:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int]int64:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int]float64:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int]bool:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int][]string:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = ToInterfaceSlice(val)\n\t\t}\n\tcase map[int][]int:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = ToInterfaceSlice(val)\n\t\t}\n\tcase map[int][]interface{}:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int]map[string]interface{}:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tcase map[int]map[int]interface{}:\n\t\tfor k, val := range v {\n\t\t\tresult[k] = val\n\t\t}\n\tdefault:\n\t\treturn nil, errors.New(\"unsupported map type: \" + ToString(m))\n\t}\n\n\treturn result, nil\n}\n\n// ToStringSlice converts various slice types to []string\nfunc ToStringSlice(val interface{}) []string {\n\tswitch v := val.(type) {\n\tcase []string:\n\t\treturn v\n\tcase []interface{}:\n\t\tresult := make([]string, len(v))\n\t\tfor i, item := range v {\n\t\t\tresult[i] = ToString(item)\n\t\t}\n\t\treturn result\n\tcase []int:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.Itoa(n)\n\t\t}\n\t\treturn result\n\tcase []int32:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatInt(int64(n), 10)\n\t\t}\n\t\treturn result\n\tcase []int64:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatInt(n, 10)\n\t\t}\n\t\treturn result\n\tcase []float32:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatFloat(float64(n), 'f', -1, 32)\n\t\t}\n\t\treturn result\n\tcase []float64:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatFloat(n, 'f', -1, 64)\n\t\t}\n\t\treturn result\n\tcase []bool:\n\t\tresult := make([]string, len(v))\n\t\tfor i, b := range v {\n\t\t\tresult[i] = strconv.FormatBool(b)\n\t\t}\n\t\treturn result\n\tcase []time.Time:\n\t\tresult := make([]string, len(v))\n\t\tfor i, t := range v {\n\t\t\tresult[i] = t.String()\n\t\t}\n\t\treturn result\n\tcase []std.Address:\n\t\tresult := make([]string, len(v))\n\t\tfor i, addr := range v {\n\t\t\tresult[i] = string(addr)\n\t\t}\n\t\treturn result\n\tcase [][]byte:\n\t\tresult := make([]string, len(v))\n\t\tfor i, b := range v {\n\t\t\tresult[i] = string(b)\n\t\t}\n\t\treturn result\n\tcase []stringer:\n\t\tresult := make([]string, len(v))\n\t\tfor i, s := range v {\n\t\t\tresult[i] = s.String()\n\t\t}\n\t\treturn result\n\tcase []uint:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatUint(uint64(n), 10)\n\t\t}\n\t\treturn result\n\tcase []uint8:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatUint(uint64(n), 10)\n\t\t}\n\t\treturn result\n\tcase []uint16:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatUint(uint64(n), 10)\n\t\t}\n\t\treturn result\n\tcase []uint32:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatUint(uint64(n), 10)\n\t\t}\n\t\treturn result\n\tcase []uint64:\n\t\tresult := make([]string, len(v))\n\t\tfor i, n := range v {\n\t\t\tresult[i] = strconv.FormatUint(n, 10)\n\t\t}\n\t\treturn result\n\tdefault:\n\t\t// Try to convert using reflection if it's a slice\n\t\tif slice := ToInterfaceSlice(val); slice != nil {\n\t\t\tresult := make([]string, len(slice))\n\t\t\tfor i, item := range slice {\n\t\t\t\tresult[i] = ToString(item)\n\t\t\t}\n\t\t\treturn result\n\t\t}\n\t\treturn nil\n\t}\n}\n"},{"name":"typeutil_test.gno","body":"package typeutil\n\nimport (\n\t\"std\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n)\n\ntype testStringer struct {\n\tvalue string\n}\n\nfunc (t testStringer) String() string {\n\treturn \"test:\" + t.value\n}\n\nfunc TestToString(t *testing.T) {\n\t// setup test data\n\tstr := \"hello\"\n\tnum := 42\n\tb := true\n\tnow := time.Now()\n\taddr := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tstringer := testStringer{value: \"hello\"}\n\n\ttype testCase struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected string\n\t}\n\n\ttests := []testCase{\n\t\t// basic types\n\t\t{\"string\", \"hello\", \"hello\"},\n\t\t{\"empty_string\", \"\", \"\"},\n\t\t{\"nil\", nil, \"\"},\n\n\t\t// integer types\n\t\t{\"int\", 42, \"42\"},\n\t\t{\"int8\", int8(8), \"8\"},\n\t\t{\"int16\", int16(16), \"16\"},\n\t\t{\"int32\", int32(32), \"32\"},\n\t\t{\"int64\", int64(64), \"64\"},\n\t\t{\"uint\", uint(42), \"42\"},\n\t\t{\"uint8\", uint8(8), \"8\"},\n\t\t{\"uint16\", uint16(16), \"16\"},\n\t\t{\"uint32\", uint32(32), \"32\"},\n\t\t{\"uint64\", uint64(64), \"64\"},\n\n\t\t// float types\n\t\t{\"float32\", float32(3.14), \"3.14\"},\n\t\t{\"float64\", 3.14159, \"3.14159\"},\n\n\t\t// boolean\n\t\t{\"bool_true\", true, \"true\"},\n\t\t{\"bool_false\", false, \"false\"},\n\n\t\t// special types\n\t\t{\"time\", now, now.String()},\n\t\t{\"address\", addr, string(addr)},\n\t\t{\"bytes\", []byte(\"hello\"), \"hello\"},\n\t\t{\"stringer\", stringer, \"test:hello\"},\n\n\t\t// slices\n\t\t{\"empty_slice\", []string{}, \"[]\"},\n\t\t{\"string_slice\", []string{\"a\", \"b\"}, \"[a b]\"},\n\t\t{\"int_slice\", []int{1, 2}, \"[1 2]\"},\n\t\t{\"int32_slice\", []int32{1, 2}, \"[1 2]\"},\n\t\t{\"int64_slice\", []int64{1, 2}, \"[1 2]\"},\n\t\t{\"float32_slice\", []float32{1.1, 2.2}, \"[1.1 2.2]\"},\n\t\t{\"float64_slice\", []float64{1.1, 2.2}, \"[1.1 2.2]\"},\n\t\t{\"bytes_slice\", [][]byte{[]byte(\"a\"), []byte(\"b\")}, \"[a b]\"},\n\t\t{\"time_slice\", []time.Time{now, now}, \"[\" + now.String() + \" \" + now.String() + \"]\"},\n\t\t{\"address_slice\", []std.Address{addr, addr}, \"[\" + string(addr) + \" \" + string(addr) + \"]\"},\n\t\t{\"interface_slice\", []interface{}{1, \"a\", true}, \"[1 a true]\"},\n\n\t\t// empty slices\n\t\t{\"empty_string_slice\", []string{}, \"[]\"},\n\t\t{\"empty_int_slice\", []int{}, \"[]\"},\n\t\t{\"empty_int32_slice\", []int32{}, \"[]\"},\n\t\t{\"empty_int64_slice\", []int64{}, \"[]\"},\n\t\t{\"empty_float32_slice\", []float32{}, \"[]\"},\n\t\t{\"empty_float64_slice\", []float64{}, \"[]\"},\n\t\t{\"empty_bytes_slice\", [][]byte{}, \"[]\"},\n\t\t{\"empty_time_slice\", []time.Time{}, \"[]\"},\n\t\t{\"empty_address_slice\", []std.Address{}, \"[]\"},\n\t\t{\"empty_interface_slice\", []interface{}{}, \"[]\"},\n\n\t\t// maps\n\t\t{\"empty_string_map\", map[string]string{}, \"map[]\"},\n\t\t{\"string_map\", map[string]string{\"a\": \"1\", \"b\": \"2\"}, \"map[a:1 b:2]\"},\n\t\t{\"empty_interface_map\", map[string]interface{}{}, \"map[]\"},\n\t\t{\"interface_map\", map[string]interface{}{\"a\": 1, \"b\": \"2\"}, \"map[a:1 b:2]\"},\n\n\t\t// edge cases\n\t\t{\"empty_bytes\", []byte{}, \"\"},\n\t\t{\"nil_interface\", interface{}(nil), \"\"},\n\t\t{\"empty_struct\", struct{}{}, \"{}\"},\n\t\t{\"unknown_type\", struct{ foo string }{}, \"\u003cunknown\u003e\"},\n\n\t\t// pointer types\n\t\t{\"nil_string_ptr\", (*string)(nil), \"\"},\n\t\t{\"string_ptr\", \u0026str, \"hello\"},\n\t\t{\"nil_int_ptr\", (*int)(nil), \"\"},\n\t\t{\"int_ptr\", \u0026num, \"42\"},\n\t\t{\"nil_bool_ptr\", (*bool)(nil), \"\"},\n\t\t{\"bool_ptr\", \u0026b, \"true\"},\n\t\t// {\"nil_time_ptr\", (*time.Time)(nil), \"\"}, // TODO: fix this\n\t\t{\"time_ptr\", \u0026now, now.String()},\n\t\t// {\"nil_address_ptr\", (*std.Address)(nil), \"\"}, // TODO: fix this\n\t\t{\"address_ptr\", \u0026addr, string(addr)},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := ToString(tt.input)\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s: ToString(%v) = %q, want %q\", tt.name, tt.input, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestToBool(t *testing.T) {\n\tstr := \"true\"\n\tnum := 42\n\tb := true\n\tnow := time.Now()\n\taddr := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tzero := 0\n\tempty := \"\"\n\tfalseVal := false\n\n\ttype testCase struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected bool\n\t}\n\n\ttests := []testCase{\n\t\t// basic types\n\t\t{\"true\", true, true},\n\t\t{\"false\", false, false},\n\t\t{\"nil\", nil, false},\n\n\t\t// strings\n\t\t{\"empty_string\", \"\", false},\n\t\t{\"zero_string\", \"0\", false},\n\t\t{\"false_string\", \"false\", false},\n\t\t{\"f_string\", \"f\", false},\n\t\t{\"no_string\", \"no\", false},\n\t\t{\"n_string\", \"n\", false},\n\t\t{\"off_string\", \"off\", false},\n\t\t{\"space_string\", \" \", false},\n\t\t{\"true_string\", \"true\", true},\n\t\t{\"yes_string\", \"yes\", true},\n\t\t{\"random_string\", \"hello\", true},\n\n\t\t// numbers\n\t\t{\"zero_int\", 0, false},\n\t\t{\"positive_int\", 1, true},\n\t\t{\"negative_int\", -1, true},\n\t\t{\"zero_float\", 0.0, false},\n\t\t{\"positive_float\", 0.1, true},\n\t\t{\"negative_float\", -0.1, true},\n\n\t\t// special types\n\t\t{\"empty_bytes\", []byte{}, false},\n\t\t{\"non_empty_bytes\", []byte{1}, true},\n\t\t/*{\"zero_time\", time.Time{}, false},*/ // TODO: fix this\n\t\t{\"empty_address\", std.Address(\"\"), false},\n\n\t\t// slices\n\t\t{\"empty_slice\", []string{}, false},\n\t\t{\"non_empty_slice\", []string{\"a\"}, true},\n\n\t\t// maps\n\t\t{\"empty_map\", map[string]string{}, false},\n\t\t{\"non_empty_map\", map[string]string{\"a\": \"b\"}, true},\n\n\t\t// pointer types\n\t\t{\"nil_bool_ptr\", (*bool)(nil), false},\n\t\t{\"true_ptr\", \u0026b, true},\n\t\t{\"false_ptr\", \u0026falseVal, false},\n\t\t{\"nil_string_ptr\", (*string)(nil), false},\n\t\t{\"string_ptr\", \u0026str, true},\n\t\t{\"empty_string_ptr\", \u0026empty, false},\n\t\t{\"nil_int_ptr\", (*int)(nil), false},\n\t\t{\"int_ptr\", \u0026num, true},\n\t\t{\"zero_int_ptr\", \u0026zero, false},\n\t\t// {\"nil_time_ptr\", (*time.Time)(nil), false}, // TODO: fix this\n\t\t{\"time_ptr\", \u0026now, true},\n\t\t// {\"nil_address_ptr\", (*std.Address)(nil), false}, // TODO: fix this\n\t\t{\"address_ptr\", \u0026addr, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := ToBool(tt.input)\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s: ToBool(%v) = %v, want %v\", tt.name, tt.input, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\tstr := \"hello\"\n\tnum := 42\n\tb := true\n\tnow := time.Now()\n\taddr := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tzero := 0\n\tempty := \"\"\n\tfalseVal := false\n\n\ttype testCase struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected bool\n\t}\n\n\ttests := []testCase{\n\t\t// basic types\n\t\t{\"true\", true, false},\n\t\t{\"false\", false, true},\n\t\t{\"nil\", nil, true},\n\n\t\t// strings\n\t\t{\"empty_string\", \"\", true},\n\t\t{\"non_empty_string\", \"hello\", false},\n\n\t\t// numbers\n\t\t{\"zero_int\", 0, true},\n\t\t{\"non_zero_int\", 1, false},\n\t\t{\"zero_float\", 0.0, true},\n\t\t{\"non_zero_float\", 0.1, false},\n\n\t\t// special types\n\t\t{\"empty_bytes\", []byte{}, true},\n\t\t{\"non_empty_bytes\", []byte{1}, false},\n\t\t/*{\"zero_time\", time.Time{}, true},*/ // TODO: fix this\n\t\t{\"empty_address\", std.Address(\"\"), true},\n\n\t\t// slices\n\t\t{\"empty_slice\", []string{}, true},\n\t\t{\"non_empty_slice\", []string{\"a\"}, false},\n\n\t\t// maps\n\t\t{\"empty_map\", map[string]string{}, true},\n\t\t{\"non_empty_map\", map[string]string{\"a\": \"b\"}, false},\n\n\t\t// pointer types\n\t\t{\"nil_bool_ptr\", (*bool)(nil), true},\n\t\t{\"false_ptr\", \u0026falseVal, true},\n\t\t{\"true_ptr\", \u0026b, false},\n\t\t{\"nil_string_ptr\", (*string)(nil), true},\n\t\t{\"empty_string_ptr\", \u0026empty, true},\n\t\t{\"string_ptr\", \u0026str, false},\n\t\t{\"nil_int_ptr\", (*int)(nil), true},\n\t\t{\"zero_int_ptr\", \u0026zero, true},\n\t\t{\"int_ptr\", \u0026num, false},\n\t\t// {\"nil_time_ptr\", (*time.Time)(nil), true}, // TODO: fix this\n\t\t{\"time_ptr\", \u0026now, false},\n\t\t// {\"nil_address_ptr\", (*std.Address)(nil), true}, // TODO: fix this\n\t\t{\"address_ptr\", \u0026addr, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := IsZero(tt.input)\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"%s: IsZero(%v) = %v, want %v\", tt.name, tt.input, got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestToInterfaceSlice(t *testing.T) {\n\tnow := time.Now()\n\taddr := std.Address(\"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\")\n\tstr := testStringer{value: \"hello\"}\n\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected []interface{}\n\t\tcompare func([]interface{}, []interface{}) bool\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tinput: nil,\n\t\t\texpected: nil,\n\t\t\tcompare: compareNil,\n\t\t},\n\t\t{\n\t\t\tname: \"empty_interface_slice\",\n\t\t\tinput: []interface{}{},\n\t\t\texpected: []interface{}{},\n\t\t\tcompare: compareEmpty,\n\t\t},\n\t\t{\n\t\t\tname: \"interface_slice\",\n\t\t\tinput: []interface{}{1, \"two\", true},\n\t\t\texpected: []interface{}{1, \"two\", true},\n\t\t\tcompare: compareInterfaces,\n\t\t},\n\t\t{\n\t\t\tname: \"string_slice\",\n\t\t\tinput: []string{\"a\", \"b\", \"c\"},\n\t\t\texpected: []interface{}{\"a\", \"b\", \"c\"},\n\t\t\tcompare: compareStrings,\n\t\t},\n\t\t{\n\t\t\tname: \"int_slice\",\n\t\t\tinput: []int{1, 2, 3},\n\t\t\texpected: []interface{}{1, 2, 3},\n\t\t\tcompare: compareInts,\n\t\t},\n\t\t{\n\t\t\tname: \"int32_slice\",\n\t\t\tinput: []int32{1, 2, 3},\n\t\t\texpected: []interface{}{int32(1), int32(2), int32(3)},\n\t\t\tcompare: compareInt32s,\n\t\t},\n\t\t{\n\t\t\tname: \"int64_slice\",\n\t\t\tinput: []int64{1, 2, 3},\n\t\t\texpected: []interface{}{int64(1), int64(2), int64(3)},\n\t\t\tcompare: compareInt64s,\n\t\t},\n\t\t{\n\t\t\tname: \"float32_slice\",\n\t\t\tinput: []float32{1.1, 2.2, 3.3},\n\t\t\texpected: []interface{}{float32(1.1), float32(2.2), float32(3.3)},\n\t\t\tcompare: compareFloat32s,\n\t\t},\n\t\t{\n\t\t\tname: \"float64_slice\",\n\t\t\tinput: []float64{1.1, 2.2, 3.3},\n\t\t\texpected: []interface{}{1.1, 2.2, 3.3},\n\t\t\tcompare: compareFloat64s,\n\t\t},\n\t\t{\n\t\t\tname: \"bool_slice\",\n\t\t\tinput: []bool{true, false, true},\n\t\t\texpected: []interface{}{true, false, true},\n\t\t\tcompare: compareBools,\n\t\t},\n\t\t/* {\n\t\t\tname: \"time_slice\",\n\t\t\tinput: []time.Time{now},\n\t\t\texpected: []interface{}{now},\n\t\t\tcompare: compareTimes,\n\t\t}, */ // TODO: fix this\n\t\t/* {\n\t\t\tname: \"address_slice\",\n\t\t\tinput: []std.Address{addr},\n\t\t\texpected: []interface{}{addr},\n\t\t\tcompare: compareAddresses,\n\t\t},*/ // TODO: fix this\n\t\t/* {\n\t\t\tname: \"bytes_slice\",\n\t\t\tinput: [][]byte{[]byte(\"hello\"), []byte(\"world\")},\n\t\t\texpected: []interface{}{[]byte(\"hello\"), []byte(\"world\")},\n\t\t\tcompare: compareBytes,\n\t\t},*/ // TODO: fix this\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := ToInterfaceSlice(tt.input)\n\t\t\tif !tt.compare(got, tt.expected) {\n\t\t\t\tt.Errorf(\"ToInterfaceSlice() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc compareNil(a, b []interface{}) bool {\n\treturn a == nil \u0026\u0026 b == nil\n}\n\nfunc compareEmpty(a, b []interface{}) bool {\n\treturn len(a) == 0 \u0026\u0026 len(b) == 0\n}\n\nfunc compareInterfaces(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif a[i] != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareStrings(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tas, ok1 := a[i].(string)\n\t\tbs, ok2 := b[i].(string)\n\t\tif !ok1 || !ok2 || as != bs {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareInts(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tai, ok1 := a[i].(int)\n\t\tbi, ok2 := b[i].(int)\n\t\tif !ok1 || !ok2 || ai != bi {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareInt32s(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tai, ok1 := a[i].(int32)\n\t\tbi, ok2 := b[i].(int32)\n\t\tif !ok1 || !ok2 || ai != bi {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareInt64s(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tai, ok1 := a[i].(int64)\n\t\tbi, ok2 := b[i].(int64)\n\t\tif !ok1 || !ok2 || ai != bi {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareFloat32s(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tai, ok1 := a[i].(float32)\n\t\tbi, ok2 := b[i].(float32)\n\t\tif !ok1 || !ok2 || ai != bi {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareFloat64s(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tai, ok1 := a[i].(float64)\n\t\tbi, ok2 := b[i].(float64)\n\t\tif !ok1 || !ok2 || ai != bi {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareBools(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tab, ok1 := a[i].(bool)\n\t\tbb, ok2 := b[i].(bool)\n\t\tif !ok1 || !ok2 || ab != bb {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareTimes(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tat, ok1 := a[i].(time.Time)\n\t\tbt, ok2 := b[i].(time.Time)\n\t\tif !ok1 || !ok2 || !at.Equal(bt) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareAddresses(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\taa, ok1 := a[i].(std.Address)\n\t\tba, ok2 := b[i].(std.Address)\n\t\tif !ok1 || !ok2 || aa != ba {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc compareBytes(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tab, ok1 := a[i].([]byte)\n\t\tbb, ok2 := b[i].([]byte)\n\t\tif !ok1 || !ok2 || string(ab) != string(bb) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// compareStringInterfaceMaps compares two map[string]interface{} for equality\nfunc compareStringInterfaceMaps(a, b map[string]interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor k, v1 := range a {\n\t\tv2, ok := b[k]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\t// Compare values based on their type\n\t\tswitch val1 := v1.(type) {\n\t\tcase string:\n\t\t\tval2, ok := v2.(string)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase int:\n\t\t\tval2, ok := v2.(int)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase float64:\n\t\t\tval2, ok := v2.(float64)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase bool:\n\t\t\tval2, ok := v2.(bool)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase []interface{}:\n\t\t\tval2, ok := v2.([]interface{})\n\t\t\tif !ok || len(val1) != len(val2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tfor i := range val1 {\n\t\t\t\tif val1[i] != val2[i] {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\tcase map[string]interface{}:\n\t\t\tval2, ok := v2.(map[string]interface{})\n\t\t\tif !ok || !compareStringInterfaceMaps(val1, val2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc TestToMapStringInterface(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected map[string]interface{}\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"map[string]interface{}\",\n\t\t\tinput: map[string]interface{}{\n\t\t\t\t\"key1\": \"value1\",\n\t\t\t\t\"key2\": 42,\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": \"value1\",\n\t\t\t\t\"key2\": 42,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[string]string\",\n\t\t\tinput: map[string]string{\n\t\t\t\t\"key1\": \"value1\",\n\t\t\t\t\"key2\": \"value2\",\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": \"value1\",\n\t\t\t\t\"key2\": \"value2\",\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[string]int\",\n\t\t\tinput: map[string]int{\n\t\t\t\t\"key1\": 1,\n\t\t\t\t\"key2\": 2,\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": 1,\n\t\t\t\t\"key2\": 2,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[string]float64\",\n\t\t\tinput: map[string]float64{\n\t\t\t\t\"key1\": 1.1,\n\t\t\t\t\"key2\": 2.2,\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": 1.1,\n\t\t\t\t\"key2\": 2.2,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[string]bool\",\n\t\t\tinput: map[string]bool{\n\t\t\t\t\"key1\": true,\n\t\t\t\t\"key2\": false,\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": true,\n\t\t\t\t\"key2\": false,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[string][]string\",\n\t\t\tinput: map[string][]string{\n\t\t\t\t\"key1\": {\"a\", \"b\"},\n\t\t\t\t\"key2\": {\"c\", \"d\"},\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": []interface{}{\"a\", \"b\"},\n\t\t\t\t\"key2\": []interface{}{\"c\", \"d\"},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"nested map[string]map[string]string\",\n\t\t\tinput: map[string]map[string]string{\n\t\t\t\t\"key1\": {\"nested1\": \"value1\"},\n\t\t\t\t\"key2\": {\"nested2\": \"value2\"},\n\t\t\t},\n\t\t\texpected: map[string]interface{}{\n\t\t\t\t\"key1\": map[string]interface{}{\"nested1\": \"value1\"},\n\t\t\t\t\"key2\": map[string]interface{}{\"nested2\": \"value2\"},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"unsupported type\",\n\t\t\tinput: 42, // not a map\n\t\t\texpected: nil,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := ToMapStringInterface(tt.input)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"ToMapStringInterface() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !tt.wantErr {\n\t\t\t\tif !compareStringInterfaceMaps(got, tt.expected) {\n\t\t\t\t\tt.Errorf(\"ToMapStringInterface() = %v, expected %v\", got, tt.expected)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Test error messages\nfunc TestToMapStringInterfaceErrors(t *testing.T) {\n\t_, err := ToMapStringInterface(42)\n\tif err == nil || !strings.Contains(err.Error(), \"unsupported map type\") {\n\t\tt.Errorf(\"Expected error containing 'unsupported map type', got %v\", err)\n\t}\n}\n\n// compareIntInterfaceMaps compares two map[int]interface{} for equality\nfunc compareIntInterfaceMaps(a, b map[int]interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor k, v1 := range a {\n\t\tv2, ok := b[k]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\t// Compare values based on their type\n\t\tswitch val1 := v1.(type) {\n\t\tcase string:\n\t\t\tval2, ok := v2.(string)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase int:\n\t\t\tval2, ok := v2.(int)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase float64:\n\t\t\tval2, ok := v2.(float64)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase bool:\n\t\t\tval2, ok := v2.(bool)\n\t\t\tif !ok || val1 != val2 {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase []interface{}:\n\t\t\tval2, ok := v2.([]interface{})\n\t\t\tif !ok || len(val1) != len(val2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tfor i := range val1 {\n\t\t\t\tif val1[i] != val2[i] {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\tcase map[string]interface{}:\n\t\t\tval2, ok := v2.(map[string]interface{})\n\t\t\tif !ok || !compareStringInterfaceMaps(val1, val2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc TestToMapIntInterface(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected map[int]interface{}\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"map[int]interface{}\",\n\t\t\tinput: map[int]interface{}{\n\t\t\t\t1: \"value1\",\n\t\t\t\t2: 42,\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: \"value1\",\n\t\t\t\t2: 42,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[int]string\",\n\t\t\tinput: map[int]string{\n\t\t\t\t1: \"value1\",\n\t\t\t\t2: \"value2\",\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: \"value1\",\n\t\t\t\t2: \"value2\",\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[int]int\",\n\t\t\tinput: map[int]int{\n\t\t\t\t1: 10,\n\t\t\t\t2: 20,\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: 10,\n\t\t\t\t2: 20,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[int]float64\",\n\t\t\tinput: map[int]float64{\n\t\t\t\t1: 1.1,\n\t\t\t\t2: 2.2,\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: 1.1,\n\t\t\t\t2: 2.2,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[int]bool\",\n\t\t\tinput: map[int]bool{\n\t\t\t\t1: true,\n\t\t\t\t2: false,\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: true,\n\t\t\t\t2: false,\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[int][]string\",\n\t\t\tinput: map[int][]string{\n\t\t\t\t1: {\"a\", \"b\"},\n\t\t\t\t2: {\"c\", \"d\"},\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: []interface{}{\"a\", \"b\"},\n\t\t\t\t2: []interface{}{\"c\", \"d\"},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"map[int]map[string]interface{}\",\n\t\t\tinput: map[int]map[string]interface{}{\n\t\t\t\t1: {\"nested1\": \"value1\"},\n\t\t\t\t2: {\"nested2\": \"value2\"},\n\t\t\t},\n\t\t\texpected: map[int]interface{}{\n\t\t\t\t1: map[string]interface{}{\"nested1\": \"value1\"},\n\t\t\t\t2: map[string]interface{}{\"nested2\": \"value2\"},\n\t\t\t},\n\t\t\twantErr: false,\n\t\t},\n\t\t{\n\t\t\tname: \"unsupported type\",\n\t\t\tinput: 42, // not a map\n\t\t\texpected: nil,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot, err := ToMapIntInterface(tt.input)\n\t\t\tif (err != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"ToMapIntInterface() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif !tt.wantErr {\n\t\t\t\tif !compareIntInterfaceMaps(got, tt.expected) {\n\t\t\t\t\tt.Errorf(\"ToMapIntInterface() = %v, expected %v\", got, tt.expected)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestToStringSlice(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname: \"nil input\",\n\t\t\tinput: nil,\n\t\t\texpected: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"empty slice\",\n\t\t\tinput: []string{},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"string slice\",\n\t\t\tinput: []string{\"a\", \"b\", \"c\"},\n\t\t\texpected: []string{\"a\", \"b\", \"c\"},\n\t\t},\n\t\t{\n\t\t\tname: \"int slice\",\n\t\t\tinput: []int{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"int32 slice\",\n\t\t\tinput: []int32{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"int64 slice\",\n\t\t\tinput: []int64{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"uint slice\",\n\t\t\tinput: []uint{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"uint8 slice\",\n\t\t\tinput: []uint8{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"uint16 slice\",\n\t\t\tinput: []uint16{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"uint32 slice\",\n\t\t\tinput: []uint32{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"uint64 slice\",\n\t\t\tinput: []uint64{1, 2, 3},\n\t\t\texpected: []string{\"1\", \"2\", \"3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"float32 slice\",\n\t\t\tinput: []float32{1.1, 2.2, 3.3},\n\t\t\texpected: []string{\"1.1\", \"2.2\", \"3.3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"float64 slice\",\n\t\t\tinput: []float64{1.1, 2.2, 3.3},\n\t\t\texpected: []string{\"1.1\", \"2.2\", \"3.3\"},\n\t\t},\n\t\t{\n\t\t\tname: \"bool slice\",\n\t\t\tinput: []bool{true, false, true},\n\t\t\texpected: []string{\"true\", \"false\", \"true\"},\n\t\t},\n\t\t{\n\t\t\tname: \"[]byte slice\",\n\t\t\tinput: [][]byte{[]byte(\"hello\"), []byte(\"world\")},\n\t\t\texpected: []string{\"hello\", \"world\"},\n\t\t},\n\t\t{\n\t\t\tname: \"interface slice\",\n\t\t\tinput: []interface{}{1, \"hello\", true},\n\t\t\texpected: []string{\"1\", \"hello\", \"true\"},\n\t\t},\n\t\t{\n\t\t\tname: \"time slice\",\n\t\t\tinput: []time.Time{time.Time{}, time.Time{}},\n\t\t\texpected: []string{\"0001-01-01 00:00:00 +0000 UTC\", \"0001-01-01 00:00:00 +0000 UTC\"},\n\t\t},\n\t\t{\n\t\t\tname: \"address slice\",\n\t\t\tinput: []std.Address{\"addr1\", \"addr2\"},\n\t\t\texpected: []string{\"addr1\", \"addr2\"},\n\t\t},\n\t\t{\n\t\t\tname: \"non-slice input\",\n\t\t\tinput: 42,\n\t\t\texpected: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := ToStringSlice(tt.input)\n\t\t\tif !slicesEqual(result, tt.expected) {\n\t\t\t\tt.Errorf(\"ToStringSlice(%v) = %v, want %v\", tt.input, result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Helper function to compare string slices\nfunc slicesEqual(a, b []string) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif a[i] != b[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc TestToStringAdvanced(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"slice with mixed basic types\",\n\t\t\tinput: []interface{}{\n\t\t\t\t42,\n\t\t\t\t\"hello\",\n\t\t\t\ttrue,\n\t\t\t\t3.14,\n\t\t\t},\n\t\t\texpected: \"[42 hello true 3.14]\",\n\t\t},\n\t\t{\n\t\t\tname: \"map with basic types\",\n\t\t\tinput: map[string]interface{}{\n\t\t\t\t\"int\": 42,\n\t\t\t\t\"str\": \"hello\",\n\t\t\t\t\"bool\": true,\n\t\t\t\t\"float\": 3.14,\n\t\t\t},\n\t\t\texpected: \"map[bool:true float:3.14 int:42 str:hello]\",\n\t\t},\n\t\t{\n\t\t\tname: \"mixed types map\",\n\t\t\tinput: map[interface{}]interface{}{\n\t\t\t\t42: \"number\",\n\t\t\t\t\"string\": 123,\n\t\t\t\ttrue: []int{1, 2, 3},\n\t\t\t\tstruct{}{}: \"empty\",\n\t\t\t},\n\t\t\texpected: \"map[42:number string:123 true:[1 2 3] {}:empty]\",\n\t\t},\n\t\t{\n\t\t\tname: \"nested maps\",\n\t\t\tinput: map[string]interface{}{\n\t\t\t\t\"a\": map[string]int{\n\t\t\t\t\t\"x\": 1,\n\t\t\t\t\t\"y\": 2,\n\t\t\t\t},\n\t\t\t\t\"b\": []interface{}{1, \"two\", true},\n\t\t\t},\n\t\t\texpected: \"map[a:map[x:1 y:2] b:[1 two true]]\",\n\t\t},\n\t\t{\n\t\t\tname: \"empty struct\",\n\t\t\tinput: struct{}{},\n\t\t\texpected: \"{}\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := ToString(tt.input)\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"\\nToString(%v) =\\n%v\\nwant:\\n%v\", tt.input, result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LsaPueV8+CO3f0FvVaSgZK+Ctmp2rpKDTW4DhDNY7YfkfWu4oc7TUS5vYqEr3KUwgFZBU+TudxCaGSe/mDuICA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"uassert","path":"gno.land/p/demo/uassert","files":[{"name":"doc.gno","body":"package uassert // import \"gno.land/p/demo/uassert\"\n"},{"name":"helpers.gno","body":"package uassert\n\nimport \"strings\"\n\nfunc fail(t TestingT, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tcustomMsg := \"\"\n\tif len(customMsgs) \u003e 0 {\n\t\tcustomMsg = strings.Join(customMsgs, \" \")\n\t}\n\tif customMsg != \"\" {\n\t\tfailureMessage += \" - \" + customMsg\n\t}\n\tt.Errorf(failureMessage, args...)\n\treturn false\n}\n\nfunc autofail(t TestingT, success bool, customMsgs []string, failureMessage string, args ...interface{}) bool {\n\tif success {\n\t\treturn true\n\t}\n\treturn fail(t, customMsgs, failureMessage, args...)\n}\n\nfunc checkDidPanic(f func()) (didPanic bool, message string) {\n\tdidPanic = true\n\tdefer func() {\n\t\tr := recover()\n\n\t\tif r == nil {\n\t\t\tmessage = \"nil\"\n\t\t\treturn\n\t\t}\n\n\t\terr, ok := r.(error)\n\t\tif ok {\n\t\t\tmessage = err.Error()\n\t\t\treturn\n\t\t}\n\n\t\terrStr, ok := r.(string)\n\t\tif ok {\n\t\t\tmessage = errStr\n\t\t\treturn\n\t\t}\n\n\t\tmessage = \"recover: unsupported type\"\n\t}()\n\tf()\n\tdidPanic = false\n\treturn\n}\n"},{"name":"mock_test.gno","body":"package uassert\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype mockTestingT struct {\n\tfmt string\n\targs []interface{}\n}\n\n// --- interface mock\n\nvar _ TestingT = (*mockTestingT)(nil)\n\nfunc (mockT *mockTestingT) Helper() { /* noop */ }\nfunc (mockT *mockTestingT) Skip(args ...interface{}) { /* not implmented */ }\nfunc (mockT *mockTestingT) Fail() { /* not implmented */ }\nfunc (mockT *mockTestingT) FailNow() { /* not implmented */ }\nfunc (mockT *mockTestingT) Logf(fmt string, args ...interface{}) { /* noop */ }\n\nfunc (mockT *mockTestingT) Fatalf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"fatal: \" + fmt\n\tmockT.args = args\n}\n\nfunc (mockT *mockTestingT) Errorf(fmt string, args ...interface{}) {\n\tmockT.fmt = \"error: \" + fmt\n\tmockT.args = args\n}\n\n// --- helpers\n\nfunc (mockT *mockTestingT) actualString() string {\n\tres := fmt.Sprintf(mockT.fmt, mockT.args...)\n\tmockT.reset()\n\treturn res\n}\n\nfunc (mockT *mockTestingT) reset() {\n\tmockT.fmt = \"\"\n\tmockT.args = nil\n}\n\nfunc (mockT *mockTestingT) equals(t *testing.T, expected string) {\n\tactual := mockT.actualString()\n\n\tif expected != actual {\n\t\tt.Errorf(\"mockT differs:\\n- expected: %s\\n- actual: %s\\n\", expected, actual)\n\t}\n}\n\nfunc (mockT *mockTestingT) empty(t *testing.T) {\n\tif mockT.fmt != \"\" || mockT.args != nil {\n\t\tactual := mockT.actualString()\n\t\tt.Errorf(\"mockT should be empty, got %s\", actual)\n\t}\n}\n"},{"name":"types.gno","body":"package uassert\n\ntype TestingT interface {\n\tHelper()\n\tSkip(args ...interface{})\n\tFatalf(fmt string, args ...interface{})\n\tErrorf(fmt string, args ...interface{})\n\tLogf(fmt string, args ...interface{})\n\tFail()\n\tFailNow()\n}\n"},{"name":"uassert.gno","body":"// uassert is an adapted lighter version of https://github.com/stretchr/testify/assert.\npackage uassert\n\nimport (\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/diff\"\n)\n\n// NoError asserts that a function returned no error (i.e. `nil`).\nfunc NoError(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err != nil {\n\t\treturn fail(t, msgs, \"unexpected error: %s\", err.Error())\n\t}\n\treturn true\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\nfunc Error(t TestingT, err error, msgs ...string) bool {\n\tt.Helper()\n\tif err == nil {\n\t\treturn fail(t, msgs, \"an error is expected but got nil\")\n\t}\n\treturn true\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\nfunc ErrorContains(t TestingT, err error, contains string, msgs ...string) bool {\n\tt.Helper()\n\n\tif !Error(t, err, msgs...) {\n\t\treturn false\n\t}\n\n\tactual := err.Error()\n\tif !strings.Contains(actual, contains) {\n\t\treturn fail(t, msgs, \"error %q does not contain %q\", actual, contains)\n\t}\n\n\treturn true\n}\n\n// True asserts that the specified value is true.\nfunc True(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif !value {\n\t\treturn fail(t, msgs, \"should be true\")\n\t}\n\treturn true\n}\n\n// False asserts that the specified value is false.\nfunc False(t TestingT, value bool, msgs ...string) bool {\n\tt.Helper()\n\tif value {\n\t\treturn fail(t, msgs, \"should be false\")\n\t}\n\treturn true\n}\n\n// ErrorIs asserts the given error matches the target error\nfunc ErrorIs(t TestingT, err, target error, msgs ...string) bool {\n\tt.Helper()\n\n\tif err == nil || target == nil {\n\t\treturn err == target\n\t}\n\n\t// XXX: if errors.Is(err, target) return true\n\n\tif err.Error() != target.Error() {\n\t\treturn fail(t, msgs, \"error mismatch, expected %s, got %s\", target.Error(), err.Error())\n\t}\n\n\treturn true\n}\n\n// PanicsWithMessage asserts that the code inside the specified func panics,\n// and that the recovered panic value satisfies the given message\nfunc PanicsWithMessage(t TestingT, msg string, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\tif !didPanic {\n\t\treturn fail(t, msgs, \"func should panic\\n\\tPanic value:\\t%v\", panicValue)\n\t}\n\n\tif panicValue != msg {\n\t\treturn fail(t, msgs, \"func should panic with message:\\t%s\\n\\tPanic value:\\t%s\", msg, panicValue)\n\t}\n\treturn true\n}\n\n// NotPanics asserts that the code inside the specified func does NOT panic.\nfunc NotPanics(t TestingT, f func(), msgs ...string) bool {\n\tt.Helper()\n\n\tdidPanic, panicValue := checkDidPanic(f)\n\n\tif didPanic {\n\t\treturn fail(t, msgs, \"func should not panic\\n\\tPanic value:\\t%s\", panicValue)\n\t}\n\treturn true\n}\n\n// Equal asserts that two objects are equal.\nfunc Equal(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected == actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tequal := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t\tif !equal {\n\t\t\t\tdif := diff.MyersDiff(ev, av)\n\t\t\t\treturn fail(t, msgs, \"uassert.Equal: strings are different\\n\\tDiff: %s\", diff.Format(dif))\n\t\t\t}\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tequal = ev == av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.Equal: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tequal = ev.String() == av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.Equal: different types\") // XXX: display the types\n\t}\n\tif !equal {\n\t\treturn fail(t, msgs, \"uassert.Equal: same type but different value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\n// NotEqual asserts that two objects are not equal.\nfunc NotEqual(t TestingT, expected, actual interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tif expected == nil || actual == nil {\n\t\treturn expected != actual\n\t}\n\n\t// XXX: errors\n\t// XXX: slices\n\t// XXX: pointers\n\n\tnotEqual := false\n\tok_ := false\n\tes, as := \"unsupported type\", \"unsupported type\"\n\n\tswitch ev := expected.(type) {\n\tcase string:\n\t\tif av, ok := actual.(string); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = ev, av\n\t\t}\n\tcase std.Address:\n\t\tif av, ok := actual.(std.Address); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = string(ev), string(av)\n\t\t}\n\tcase int:\n\t\tif av, ok := actual.(int); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(ev), strconv.Itoa(av)\n\t\t}\n\tcase int8:\n\t\tif av, ok := actual.(int8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int16:\n\t\tif av, ok := actual.(int16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int32:\n\t\tif av, ok := actual.(int32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase int64:\n\t\tif av, ok := actual.(int64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.Itoa(int(ev)), strconv.Itoa(int(av))\n\t\t}\n\tcase uint:\n\t\tif av, ok := actual.(uint); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint8:\n\t\tif av, ok := actual.(uint8); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint16:\n\t\tif av, ok := actual.(uint16); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint32:\n\t\tif av, ok := actual.(uint32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(uint64(ev), 10), strconv.FormatUint(uint64(av), 10)\n\t\t}\n\tcase uint64:\n\t\tif av, ok := actual.(uint64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tes, as = strconv.FormatUint(ev, 10), strconv.FormatUint(av, 10)\n\t\t}\n\tcase bool:\n\t\tif av, ok := actual.(bool); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t\tif ev {\n\t\t\t\tes, as = \"true\", \"false\"\n\t\t\t} else {\n\t\t\t\tes, as = \"false\", \"true\"\n\t\t\t}\n\t\t}\n\tcase float32:\n\t\tif av, ok := actual.(float32); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tcase float64:\n\t\tif av, ok := actual.(float64); ok {\n\t\t\tnotEqual = ev != av\n\t\t\tok_ = true\n\t\t}\n\tdefault:\n\t\treturn fail(t, msgs, \"uassert.NotEqual: unsupported type\")\n\t}\n\n\t/*\n\t\t// XXX: implement stringer and other well known similar interfaces\n\t\ttype stringer interface{ String() string }\n\t\tif ev, ok := expected.(stringer); ok {\n\t\t\tif av, ok := actual.(stringer); ok {\n\t\t\t\tnotEqual = ev.String() != av.String()\n\t\t\t\tok_ = true\n\t\t\t}\n\t\t}\n\t*/\n\n\tif !ok_ {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: different types\") // XXX: display the types\n\t}\n\tif !notEqual {\n\t\treturn fail(t, msgs, \"uassert.NotEqual: same type and same value\\n\\texpected: %s\\n\\tactual: %s\", es, as)\n\t}\n\n\treturn true\n}\n\nfunc isNumberEmpty(n interface{}) (isNumber, isEmpty bool) {\n\tswitch n := n.(type) {\n\t// NOTE: the cases are split individually, so that n becomes of the\n\t// asserted type; the type of '0' was correctly inferred and converted\n\t// to the corresponding type, int, int8, etc.\n\tcase int:\n\t\treturn true, n == 0\n\tcase int8:\n\t\treturn true, n == 0\n\tcase int16:\n\t\treturn true, n == 0\n\tcase int32:\n\t\treturn true, n == 0\n\tcase int64:\n\t\treturn true, n == 0\n\tcase uint:\n\t\treturn true, n == 0\n\tcase uint8:\n\t\treturn true, n == 0\n\tcase uint16:\n\t\treturn true, n == 0\n\tcase uint32:\n\t\treturn true, n == 0\n\tcase uint64:\n\t\treturn true, n == 0\n\tcase float32:\n\t\treturn true, n == 0\n\tcase float64:\n\t\treturn true, n == 0\n\t}\n\treturn false, false\n}\nfunc Empty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif !isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val != \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val != zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.Empty: not empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.Empty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n\nfunc NotEmpty(t TestingT, obj interface{}, msgs ...string) bool {\n\tt.Helper()\n\tisNumber, isEmpty := isNumberEmpty(obj)\n\tif isNumber {\n\t\tif isEmpty {\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty number: %d\", obj)\n\t\t}\n\t} else {\n\t\tswitch val := obj.(type) {\n\t\tcase string:\n\t\t\tif val == \"\" {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty string: %s\", val)\n\t\t\t}\n\t\tcase std.Address:\n\t\t\tvar zeroAddr std.Address\n\t\t\tif val == zeroAddr {\n\t\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: empty std.Address: %s\", string(val))\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fail(t, msgs, \"uassert.NotEmpty: unsupported type\")\n\t\t}\n\t}\n\treturn true\n}\n"},{"name":"uassert_test.gno","body":"package uassert\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"std\"\n\t\"testing\"\n)\n\nvar _ TestingT = (*testing.T)(nil)\n\nfunc TestMock(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tmockT.empty(t)\n\tNoError(mockT, errors.New(\"foo\"))\n\tmockT.equals(t, \"error: unexpected error: foo\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n\tNoError(mockT, errors.New(\"foo\"), \"custom\", \"message\")\n\tmockT.equals(t, \"error: unexpected error: foo - custom message\")\n}\n\nfunc TestNoError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, NoError(mockT, nil))\n\tmockT.empty(t)\n\tFalse(t, NoError(mockT, errors.New(\"foo bar\")))\n\tmockT.equals(t, \"error: unexpected error: foo bar\")\n}\n\nfunc TestError(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tTrue(t, Error(mockT, errors.New(\"foo bar\")))\n\tmockT.empty(t)\n\tFalse(t, Error(mockT, nil))\n\tmockT.equals(t, \"error: an error is expected but got nil\")\n}\n\nfunc TestErrorContains(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\t// nil error\n\tvar err error\n\tFalse(t, ErrorContains(mockT, err, \"\"), \"ErrorContains should return false for nil arg\")\n}\n\nfunc TestTrue(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !True(mockT, true) {\n\t\tt.Error(\"True should return true\")\n\t}\n\tmockT.empty(t)\n\tif True(mockT, false) {\n\t\tt.Error(\"True should return false\")\n\t}\n\tmockT.equals(t, \"error: should be true\")\n}\n\nfunc TestFalse(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !False(mockT, false) {\n\t\tt.Error(\"False should return true\")\n\t}\n\tmockT.empty(t)\n\tif False(mockT, true) {\n\t\tt.Error(\"False should return false\")\n\t}\n\tmockT.equals(t, \"error: should be false\")\n}\n\nfunc TestPanicsWithMessage(t *testing.T) {\n\tmockT := new(mockTestingT)\n\tif !PanicsWithMessage(mockT, \"panic\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic\\n\\tPanic value:\\tnil\")\n\n\tif PanicsWithMessage(mockT, \"at the disco\", func() {\n\t\tpanic(errors.New(\"panic\"))\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tat the disco\\n\\tPanic value:\\tpanic\")\n\n\tif PanicsWithMessage(mockT, \"Panic!\", func() {\n\t\tpanic(\"panic\")\n\t}) {\n\t\tt.Error(\"PanicsWithMessage should return false\")\n\t}\n\tmockT.equals(t, \"error: func should panic with message:\\tPanic!\\n\\tPanic value:\\tpanic\")\n}\n\nfunc TestNotPanics(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tif !NotPanics(mockT, func() {\n\t\t// noop\n\t}) {\n\t\tt.Error(\"NotPanics should return true\")\n\t}\n\tmockT.empty(t)\n\n\tif NotPanics(mockT, func() {\n\t\tpanic(\"Panic!\")\n\t}) {\n\t\tt.Error(\"NotPanics should return false\")\n\t}\n}\n\nfunc TestEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be equal\n\t\t{\"Hello World\", \"Hello World\", true, \"\"},\n\t\t{123, 123, true, \"\"},\n\t\t{123.5, 123.5, true, \"\"},\n\t\t{nil, nil, true, \"\"},\n\t\t{int32(123), int32(123), true, \"\"},\n\t\t{uint64(123), uint64(123), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be equal\n\t\t{\"Hello World\", 42, false, \"\"},\n\t\t{41, 42, false, \"\"},\n\t\t{10, uint(10), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Equal(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Equal(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEqual(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\texpected interface{}\n\t\tactual interface{}\n\t\tresult bool\n\t\tremark string\n\t}{\n\t\t// expected to be not equal\n\t\t{\"Hello World\", \"Hello\", true, \"\"},\n\t\t{123, 124, true, \"\"},\n\t\t{123.5, 123.6, true, \"\"},\n\t\t{nil, 123, true, \"\"},\n\t\t{int32(123), int32(124), true, \"\"},\n\t\t{uint64(123), uint64(124), true, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g67890\"), true, \"\"},\n\t\t// XXX: continue\n\n\t\t// not expected to be not equal\n\t\t{\"Hello World\", \"Hello World\", false, \"\"},\n\t\t{123, 123, false, \"\"},\n\t\t{123.5, 123.5, false, \"\"},\n\t\t{nil, nil, false, \"\"},\n\t\t{int32(123), int32(123), false, \"\"},\n\t\t{uint64(123), uint64(123), false, \"\"},\n\t\t{std.Address(\"g12345\"), std.Address(\"g12345\"), false, \"\"},\n\t\t// XXX: continue\n\n\t\t// expected to raise errors\n\t\t// XXX: todo\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEqual(%v, %v)\", c.expected, c.actual)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEqual(mockT, c.expected, c.actual)\n\n\t\t\tif res != c.result {\n\t\t\t\tt.Errorf(\"%s should return %v: %s - %s\", name, c.result, c.remark, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\ntype myStruct struct {\n\tS string\n\tI int\n}\n\nfunc TestEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", true},\n\t\t{0, true},\n\t\t{int(0), true},\n\t\t{int32(0), true},\n\t\t{int64(0), true},\n\t\t{uint(0), true},\n\t\t// XXX: continue\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", false},\n\t\t{1, false},\n\t\t{int32(1), false},\n\t\t{uint64(1), false},\n\t\t{std.Address(\"g12345\"), false},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"Empty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := Empty(mockT, c.obj)\n\n\t\t\tif res != c.expectedEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestEqualWithStringDiff(t *testing.T) {\n\tcases := []struct {\n\t\tname string\n\t\texpected string\n\t\tactual string\n\t\tshouldPass bool\n\t\texpectedMsg string\n\t}{\n\t\t{\n\t\t\tname: \"Identical strings\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, world!\",\n\t\t\tshouldPass: true,\n\t\t\texpectedMsg: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - simple\",\n\t\t\texpected: \"Hello, world!\",\n\t\t\tactual: \"Hello, World!\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: Hello, [-w][+W]orld!\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - complex\",\n\t\t\texpected: \"The quick brown fox jumps over the lazy dog\",\n\t\t\tactual: \"The quick brown cat jumps over the lazy dog\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: The quick brown [-fox][+cat] jumps over the lazy dog\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - prefix\",\n\t\t\texpected: \"prefix_string\",\n\t\t\tactual: \"string\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-prefix_]string\",\n\t\t},\n\t\t{\n\t\t\tname: \"Different strings - suffix\",\n\t\t\texpected: \"string\",\n\t\t\tactual: \"string_suffix\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: string[+_suffix]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Empty string vs non-empty string\",\n\t\t\texpected: \"\",\n\t\t\tactual: \"non-empty\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [+non-empty]\",\n\t\t},\n\t\t{\n\t\t\tname: \"Non-empty string vs empty string\",\n\t\t\texpected: \"non-empty\",\n\t\t\tactual: \"\",\n\t\t\tshouldPass: false,\n\t\t\texpectedMsg: \"error: uassert.Equal: strings are different\\n\\tDiff: [-non-empty]\",\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tmockT := \u0026mockTestingT{}\n\t\t\tresult := Equal(mockT, tc.expected, tc.actual)\n\n\t\t\tif result != tc.shouldPass {\n\t\t\t\tt.Errorf(\"Expected Equal to return %v, but got %v\", tc.shouldPass, result)\n\t\t\t}\n\n\t\t\tif tc.shouldPass {\n\t\t\t\tmockT.empty(t)\n\t\t\t} else {\n\t\t\t\tmockT.equals(t, tc.expectedMsg)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNotEmpty(t *testing.T) {\n\tmockT := new(mockTestingT)\n\n\tcases := []struct {\n\t\tobj interface{}\n\t\texpectedNotEmpty bool\n\t}{\n\t\t// expected to be empty\n\t\t{\"\", false},\n\t\t{0, false},\n\t\t{int(0), false},\n\t\t{int32(0), false},\n\t\t{int64(0), false},\n\t\t{uint(0), false},\n\t\t{std.Address(\"\"), false},\n\n\t\t// not expected to be empty\n\t\t{\"Hello World\", true},\n\t\t{1, true},\n\t\t{int32(1), true},\n\t\t{uint64(1), true},\n\t\t{std.Address(\"g12345\"), true},\n\n\t\t// unsupported\n\t\t{nil, false},\n\t\t{myStruct{}, false},\n\t\t{\u0026myStruct{}, false},\n\t}\n\n\tfor _, c := range cases {\n\t\tname := fmt.Sprintf(\"NotEmpty(%v)\", c.obj)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tres := NotEmpty(mockT, c.obj)\n\n\t\t\tif res != c.expectedNotEmpty {\n\t\t\t\tt.Errorf(\"%s should return %v: %s\", name, c.expectedNotEmpty, mockT.actualString())\n\t\t\t}\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fNt2WpZvv857iupp7SLLLVSmKyaPcaMzKuKcnfe1hzvGrVPJaZKB9ISgbLKuufUedqTVn/Ya94KUzXLugy7CDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ufmt","path":"gno.land/p/demo/ufmt","files":[{"name":"ufmt.gno","body":"// Package ufmt provides utility functions for formatting strings, similarly\n// to the Go package \"fmt\", of which only a subset is currently supported\n// (hence the name µfmt - micro fmt).\npackage ufmt\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Println formats using the default formats for its operands and writes to standard output.\n// Println writes the given arguments to standard output with spaces between arguments\n// and a newline at the end.\nfunc Println(args ...interface{}) {\n\tvar strs []string\n\tfor _, arg := range args {\n\t\tswitch v := arg.(type) {\n\t\tcase string:\n\t\t\tstrs = append(strs, v)\n\t\tcase (interface{ String() string }):\n\t\t\tstrs = append(strs, v.String())\n\t\tcase error:\n\t\t\tstrs = append(strs, v.Error())\n\t\tcase float64:\n\t\t\tstrs = append(strs, Sprintf(\"%f\", v))\n\t\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t\tstrs = append(strs, Sprintf(\"%d\", v))\n\t\tcase bool:\n\t\t\tif v {\n\t\t\t\tstrs = append(strs, \"true\")\n\t\t\t} else {\n\t\t\t\tstrs = append(strs, \"false\")\n\t\t\t}\n\t\tcase nil:\n\t\t\tstrs = append(strs, \"\u003cnil\u003e\")\n\t\tdefault:\n\t\t\tstrs = append(strs, \"(unhandled)\")\n\t\t}\n\t}\n\n\t// TODO: remove println after gno supports os.Stdout\n\tprintln(strings.Join(strs, \" \"))\n}\n\n// Sprintf offers similar functionality to Go's fmt.Sprintf, or the sprintf\n// equivalent available in many languages, including C/C++.\n// The number of args passed must exactly match the arguments consumed by the format.\n// A limited number of formatting verbs and features are currently supported,\n// hence the name ufmt (µfmt, micro-fmt).\n//\n// The currently formatted verbs are the following:\n//\n//\t\t%s: places a string value directly.\n//\t\t If the value implements the interface interface{ String() string },\n//\t\t the String() method is called to retrieve the value. Same about Error()\n//\t\t string.\n//\t\t%c: formats the character represented by Unicode code point\n//\t\t%d: formats an integer value using package \"strconv\".\n//\t\t Currently supports only uint, uint64, int, int64.\n//\t\t%f: formats a float value, with a default precision of 6.\n//\t\t%e: formats a float with scientific notation; 1.23456e+78\n//\t\t%E: formats a float with scientific notation; 1.23456E+78\n//\t\t%F: The same as %f\n//\t\t%g: formats a float value with %e for large exponents, and %f with full precision for smaller numbers\n//\t\t%G: formats a float value with %G for large exponents, and %F with full precision for smaller numbers\n//\t\t%t: formats a boolean value to \"true\" or \"false\".\n//\t\t%x: formats an integer value as a hexadecimal string.\n//\t\t Currently supports only uint8, []uint8, [32]uint8.\n//\t\t%c: formats a rune value as a string.\n//\t\t Currently supports only rune, int.\n//\t\t%q: formats a string value as a quoted string.\n//\t\t%T: formats the type of the value.\n//\t %v: formats the value with a default representation appropriate for the value's type\n//\t\t%%: outputs a literal %. Does not consume an argument.\nfunc Sprintf(format string, args ...interface{}) string {\n\t// we use runes to handle multi-byte characters\n\tsTor := []rune(format)\n\tend := len(sTor)\n\targNum := 0\n\targLen := len(args)\n\tbuf := \"\"\n\n\tfor i := 0; i \u003c end; {\n\t\tisLast := i == end-1\n\t\tc := string(sTor[i])\n\n\t\tif isLast || c != \"%\" {\n\t\t\t// we don't check for invalid format like a one ending with \"%\"\n\t\t\tbuf += string(c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tverb := string(sTor[i+1])\n\t\tif verb == \"%\" {\n\t\t\tbuf += \"%\"\n\t\t\ti += 2\n\t\t\tcontinue\n\t\t}\n\n\t\tif argNum \u003e argLen {\n\t\t\tpanic(\"invalid number of arguments to ufmt.Sprintf\")\n\t\t}\n\t\targ := args[argNum]\n\t\targNum++\n\n\t\tswitch verb {\n\t\tcase \"v\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase nil:\n\t\t\t\tbuf += \"\u003cnil\u003e\"\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tcase float64:\n\t\t\t\tbuf += strconv.FormatFloat(v, 'g', -1, 64)\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tcase []byte:\n\t\t\t\tbuf += string(v)\n\t\t\tcase []rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"s\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase interface{ String() string }:\n\t\t\t\tbuf += v.String()\n\t\t\tcase error:\n\t\t\t\tbuf += v.Error()\n\t\t\tcase string:\n\t\t\t\tbuf += v\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"c\":\n\t\t\tswitch v := arg.(type) {\n\t\t\t// rune is int32. Exclude overflowing numeric types and dups (byte, int32):\n\t\t\tcase rune:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase int16:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint8:\n\t\t\t\tbuf += string(v)\n\t\t\tcase uint16:\n\t\t\t\tbuf += string(v)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"d\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase int:\n\t\t\t\tbuf += strconv.Itoa(v)\n\t\t\tcase int8:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int16:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int32:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase int64:\n\t\t\t\tbuf += strconv.Itoa(int(v))\n\t\t\tcase uint:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint16:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint32:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 10)\n\t\t\tcase uint64:\n\t\t\t\tbuf += strconv.FormatUint(v, 10)\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"e\", \"E\", \"f\", \"F\", \"g\", \"G\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase float64:\n\t\t\t\tswitch verb {\n\t\t\t\tcase \"e\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('e'), -1, 64)\n\t\t\t\tcase \"E\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('E'), -1, 64)\n\t\t\t\tcase \"f\", \"F\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('f'), 6, 64)\n\t\t\t\tcase \"g\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('g'), -1, 64)\n\t\t\t\tcase \"G\":\n\t\t\t\t\tbuf += strconv.FormatFloat(v, byte('G'), -1, 64)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"t\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tif v {\n\t\t\t\t\tbuf += \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tbuf += \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbuf += fallback(verb, v)\n\t\t\t}\n\t\tcase \"x\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase uint8:\n\t\t\t\tbuf += strconv.FormatUint(uint64(v), 16)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"q\":\n\t\t\tswitch v := arg.(type) {\n\t\t\tcase string:\n\t\t\t\tbuf += strconv.Quote(v)\n\t\t\tdefault:\n\t\t\t\tbuf += \"(unhandled)\"\n\t\t\t}\n\t\tcase \"T\":\n\t\t\tswitch arg.(type) {\n\t\t\tcase bool:\n\t\t\t\tbuf += \"bool\"\n\t\t\tcase int:\n\t\t\t\tbuf += \"int\"\n\t\t\tcase int8:\n\t\t\t\tbuf += \"int8\"\n\t\t\tcase int16:\n\t\t\t\tbuf += \"int16\"\n\t\t\tcase int32:\n\t\t\t\tbuf += \"int32\"\n\t\t\tcase int64:\n\t\t\t\tbuf += \"int64\"\n\t\t\tcase uint:\n\t\t\t\tbuf += \"uint\"\n\t\t\tcase uint8:\n\t\t\t\tbuf += \"uint8\"\n\t\t\tcase uint16:\n\t\t\t\tbuf += \"uint16\"\n\t\t\tcase uint32:\n\t\t\t\tbuf += \"uint32\"\n\t\t\tcase uint64:\n\t\t\t\tbuf += \"uint64\"\n\t\t\tcase string:\n\t\t\t\tbuf += \"string\"\n\t\t\tcase []byte:\n\t\t\t\tbuf += \"[]byte\"\n\t\t\tcase []rune:\n\t\t\t\tbuf += \"[]rune\"\n\t\t\tdefault:\n\t\t\t\tbuf += \"unknown\"\n\t\t\t}\n\t\t// % handled before, as it does not consume an argument\n\t\tdefault:\n\t\t\tbuf += \"(unhandled verb: %\" + verb + \")\"\n\t\t}\n\n\t\ti += 2\n\t}\n\tif argNum \u003c argLen {\n\t\tpanic(\"too many arguments to ufmt.Sprintf\")\n\t}\n\treturn buf\n}\n\n// This function is used to mimic Go's fmt.Sprintf\n// specific behaviour of showing verb/type mismatches,\n// where for example:\n//\n//\tfmt.Sprintf(\"%d\", \"foo\") gives \"%!d(string=foo)\"\n//\n// Here:\n//\n//\tfallback(\"s\", 8) -\u003e \"%!s(int=8)\"\n//\tfallback(\"d\", nil) -\u003e \"%!d(\u003cnil\u003e)\", and so on.\nfunc fallback(verb string, arg interface{}) string {\n\tvar s string\n\tswitch v := arg.(type) {\n\tcase string:\n\t\ts = \"string=\" + v\n\tcase (interface{ String() string }):\n\t\ts = \"string=\" + v.String()\n\tcase error:\n\t\t// note: also \"string=\" in Go fmt\n\t\ts = \"string=\" + v.Error()\n\tcase float64:\n\t\ts = \"float64=\" + Sprintf(\"%f\", v)\n\tcase int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:\n\t\t// note: rune, byte would be dups, being aliases\n\t\tif typename, e := typeToString(v); e != nil {\n\t\t\tpanic(\"should not happen\")\n\t\t} else {\n\t\t\ts = typename + \"=\" + Sprintf(\"%d\", v)\n\t\t}\n\tcase bool:\n\t\tif v {\n\t\t\ts = \"bool=true\"\n\t\t} else {\n\t\t\ts = \"bool=false\"\n\t\t}\n\tcase nil:\n\t\ts = \"\u003cnil\u003e\"\n\tdefault:\n\t\ts = \"(unhandled)\"\n\t}\n\treturn \"%!\" + verb + \"(\" + s + \")\"\n}\n\n// Get the name of the type of `v` as a string.\n// The recognized type of v is currently limited to native non-composite types.\n// An error is returned otherwise.\nfunc typeToString(v interface{}) (string, error) {\n\tswitch v.(type) {\n\tcase string:\n\t\treturn \"string\", nil\n\tcase int:\n\t\treturn \"int\", nil\n\tcase int8:\n\t\treturn \"int8\", nil\n\tcase int16:\n\t\treturn \"int16\", nil\n\tcase int32:\n\t\treturn \"int32\", nil\n\tcase int64:\n\t\treturn \"int64\", nil\n\tcase uint:\n\t\treturn \"uint\", nil\n\tcase uint8:\n\t\treturn \"uint8\", nil\n\tcase uint16:\n\t\treturn \"uint16\", nil\n\tcase uint32:\n\t\treturn \"uint32\", nil\n\tcase uint64:\n\t\treturn \"uint64\", nil\n\tcase float32:\n\t\treturn \"float32\", nil\n\tcase float64:\n\t\treturn \"float64\", nil\n\tcase bool:\n\t\treturn \"bool\", nil\n\tdefault:\n\t\treturn \"\", errors.New(\"(unsupported type)\")\n\t}\n}\n\n// errMsg implements the error interface.\ntype errMsg struct {\n\tmsg string\n}\n\n// Error defines the requirements of the error interface.\n// It functions similarly to Go's errors.New()\nfunc (e *errMsg) Error() string {\n\treturn e.msg\n}\n\n// Errorf is a function that mirrors the functionality of fmt.Errorf.\n//\n// It takes a format string and arguments to create a formatted string,\n// then sets this string as the 'msg' field of an errMsg struct and returns a pointer to this struct.\n//\n// This function operates in a similar manner to Go's fmt.Errorf,\n// providing a way to create formatted error messages.\n//\n// The currently formatted verbs are the following:\n//\n//\t%s: places a string value directly.\n//\t If the value implements the interface interface{ String() string },\n//\t the String() method is called to retrieve the value. Same for error.\n//\t%c: formats the character represented by Unicode code point\n//\t%d: formats an integer value using package \"strconv\".\n//\t Currently supports only uint, uint64, int, int64.\n//\t%t: formats a boolean value to \"true\" or \"false\".\n//\t%%: outputs a literal %. Does not consume an argument.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn \u0026errMsg{Sprintf(format, args...)}\n}\n"},{"name":"ufmt_test.gno","body":"package ufmt\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n)\n\ntype stringer struct{}\n\nfunc (stringer) String() string {\n\treturn \"I'm a stringer\"\n}\n\nfunc TestSprintf(t *testing.T) {\n\ttru := true\n\tcases := []struct {\n\t\tformat string\n\t\tvalues []interface{}\n\t\texpectedOutput string\n\t}{\n\t\t{\"hello %s!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hello %v!\", []interface{}{\"planet\"}, \"hello planet!\"},\n\t\t{\"hi %%%s!\", []interface{}{\"worl%d\"}, \"hi %worl%d!\"},\n\t\t{\"%s %c %d %t\", []interface{}{\"foo\", 'α', 421, true}, \"foo α 421 true\"},\n\t\t{\"string [%s]\", []interface{}{\"foo\"}, \"string [foo]\"},\n\t\t{\"int [%d]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int [%v]\", []interface{}{int(42)}, \"int [42]\"},\n\t\t{\"int8 [%d]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int8 [%v]\", []interface{}{int8(8)}, \"int8 [8]\"},\n\t\t{\"int16 [%d]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int16 [%v]\", []interface{}{int16(16)}, \"int16 [16]\"},\n\t\t{\"int32 [%d]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int32 [%v]\", []interface{}{int32(32)}, \"int32 [32]\"},\n\t\t{\"int64 [%d]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"int64 [%v]\", []interface{}{int64(64)}, \"int64 [64]\"},\n\t\t{\"uint [%d]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint [%v]\", []interface{}{uint(42)}, \"uint [42]\"},\n\t\t{\"uint8 [%d]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint8 [%v]\", []interface{}{uint8(8)}, \"uint8 [8]\"},\n\t\t{\"uint16 [%d]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint16 [%v]\", []interface{}{uint16(16)}, \"uint16 [16]\"},\n\t\t{\"uint32 [%d]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint32 [%v]\", []interface{}{uint32(32)}, \"uint32 [32]\"},\n\t\t{\"uint64 [%d]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"uint64 [%v]\", []interface{}{uint64(64)}, \"uint64 [64]\"},\n\t\t{\"float64 [%e]\", []interface{}{float64(64.1)}, \"float64 [6.41e+01]\"},\n\t\t{\"float64 [%E]\", []interface{}{float64(64.1)}, \"float64 [6.41E+01]\"},\n\t\t{\"float64 [%f]\", []interface{}{float64(64.1)}, \"float64 [64.100000]\"},\n\t\t{\"float64 [%F]\", []interface{}{float64(64.1)}, \"float64 [64.100000]\"},\n\t\t{\"float64 [%g]\", []interface{}{float64(64.1)}, \"float64 [64.1]\"},\n\t\t{\"float64 [%G]\", []interface{}{float64(64.1)}, \"float64 [64.1]\"},\n\t\t{\"bool [%t]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%v]\", []interface{}{true}, \"bool [true]\"},\n\t\t{\"bool [%t]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"bool [%v]\", []interface{}{false}, \"bool [false]\"},\n\t\t{\"no args\", nil, \"no args\"},\n\t\t{\"finish with %\", nil, \"finish with %\"},\n\t\t{\"stringer [%s]\", []interface{}{stringer{}}, \"stringer [I'm a stringer]\"},\n\t\t{\"â\", nil, \"â\"},\n\t\t{\"Hello, World! 😊\", nil, \"Hello, World! 😊\"},\n\t\t{\"unicode formatting: %s\", []interface{}{\"😊\"}, \"unicode formatting: 😊\"},\n\t\t{\"invalid hex [%x]\", []interface{}{\"invalid\"}, \"invalid hex [(unhandled)]\"},\n\t\t{\"rune as character [%c]\", []interface{}{rune('A')}, \"rune as character [A]\"},\n\t\t{\"int as character [%c]\", []interface{}{int('B')}, \"int as character [B]\"},\n\t\t{\"quoted string [%q]\", []interface{}{\"hello\"}, \"quoted string [\\\"hello\\\"]\"},\n\t\t{\"quoted string with escape [%q]\", []interface{}{\"\\thello\\nworld\\\\\"}, \"quoted string with escape [\\\"\\\\thello\\\\nworld\\\\\\\\\\\"]\"},\n\t\t{\"invalid quoted string [%q]\", []interface{}{123}, \"invalid quoted string [(unhandled)]\"},\n\t\t{\"type of bool [%T]\", []interface{}{true}, \"type of bool [bool]\"},\n\t\t{\"type of int [%T]\", []interface{}{123}, \"type of int [int]\"},\n\t\t{\"type of string [%T]\", []interface{}{\"hello\"}, \"type of string [string]\"},\n\t\t{\"type of []byte [%T]\", []interface{}{[]byte{1, 2, 3}}, \"type of []byte [[]byte]\"},\n\t\t{\"type of []rune [%T]\", []interface{}{[]rune{'a', 'b', 'c'}}, \"type of []rune [[]rune]\"},\n\t\t{\"type of unknown [%T]\", []interface{}{struct{}{}}, \"type of unknown [unknown]\"},\n\t\t// mismatch printing\n\t\t{\"%s\", []interface{}{nil}, \"%!s(\u003cnil\u003e)\"},\n\t\t{\"%s\", []interface{}{421}, \"%!s(int=421)\"},\n\t\t{\"%s\", []interface{}{\"z\"}, \"z\"},\n\t\t{\"%s\", []interface{}{tru}, \"%!s(bool=true)\"},\n\t\t{\"%s\", []interface{}{'z'}, \"%!s(int32=122)\"},\n\n\t\t{\"%c\", []interface{}{nil}, \"%!c(\u003cnil\u003e)\"},\n\t\t{\"%c\", []interface{}{421}, \"ƥ\"},\n\t\t{\"%c\", []interface{}{\"z\"}, \"%!c(string=z)\"},\n\t\t{\"%c\", []interface{}{tru}, \"%!c(bool=true)\"},\n\t\t{\"%c\", []interface{}{'z'}, \"z\"},\n\n\t\t{\"%d\", []interface{}{nil}, \"%!d(\u003cnil\u003e)\"},\n\t\t{\"%d\", []interface{}{421}, \"421\"},\n\t\t{\"%d\", []interface{}{\"z\"}, \"%!d(string=z)\"},\n\t\t{\"%d\", []interface{}{tru}, \"%!d(bool=true)\"},\n\t\t{\"%d\", []interface{}{'z'}, \"122\"},\n\n\t\t{\"%t\", []interface{}{nil}, \"%!t(\u003cnil\u003e)\"},\n\t\t{\"%t\", []interface{}{421}, \"%!t(int=421)\"},\n\t\t{\"%t\", []interface{}{\"z\"}, \"%!t(string=z)\"},\n\t\t{\"%t\", []interface{}{tru}, \"true\"},\n\t\t{\"%t\", []interface{}{'z'}, \"%!t(int32=122)\"},\n\t}\n\n\tfor _, tc := range cases {\n\t\tname := fmt.Sprintf(tc.format, tc.values...)\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tgot := Sprintf(tc.format, tc.values...)\n\t\t\tif got != tc.expectedOutput {\n\t\t\t\tt.Errorf(\"got %q, want %q.\", got, tc.expectedOutput)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestErrorf(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tformat string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"simple string\",\n\t\t\tformat: \"error: %s\",\n\t\t\targs: []interface{}{\"something went wrong\"},\n\t\t\texpected: \"error: something went wrong\",\n\t\t},\n\t\t{\n\t\t\tname: \"integer value\",\n\t\t\tformat: \"value: %d\",\n\t\t\targs: []interface{}{42},\n\t\t\texpected: \"value: 42\",\n\t\t},\n\t\t{\n\t\t\tname: \"boolean value\",\n\t\t\tformat: \"success: %t\",\n\t\t\targs: []interface{}{true},\n\t\t\texpected: \"success: true\",\n\t\t},\n\t\t{\n\t\t\tname: \"multiple values\",\n\t\t\tformat: \"error %d: %s (success=%t)\",\n\t\t\targs: []interface{}{123, \"failure occurred\", false},\n\t\t\texpected: \"error 123: failure occurred (success=false)\",\n\t\t},\n\t\t{\n\t\t\tname: \"literal percent\",\n\t\t\tformat: \"literal %%\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"literal %\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\terr := Errorf(tt.format, tt.args...)\n\t\t\tif err.Error() != tt.expected {\n\t\t\t\tt.Errorf(\"Errorf(%q, %v) = %q, expected %q\", tt.format, tt.args, err.Error(), tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPrintErrors(t *testing.T) {\n\tgot := Sprintf(\"error: %s\", errors.New(\"can I be printed?\"))\n\texpectedOutput := \"error: can I be printed?\"\n\tif got != expectedOutput {\n\t\tt.Errorf(\"got %q, want %q.\", got, expectedOutput)\n\t}\n}\n\n// NOTE: Currently, there is no way to get the output of Println without using os.Stdout,\n// so we can only test that it doesn't panic and print arguments well.\nfunc TestPrintln(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\targs []interface{}\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"Empty args\",\n\t\t\targs: []interface{}{},\n\t\t\texpected: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"String args\",\n\t\t\targs: []interface{}{\"Hello\", \"World\"},\n\t\t\texpected: \"Hello World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Integer args\",\n\t\t\targs: []interface{}{1, 2, 3},\n\t\t\texpected: \"1 2 3\",\n\t\t},\n\t\t{\n\t\t\tname: \"Mixed args\",\n\t\t\targs: []interface{}{\"Hello\", 42, true, false, \"World\"},\n\t\t\texpected: \"Hello 42 true false World\",\n\t\t},\n\t\t{\n\t\t\tname: \"Unhandled type\",\n\t\t\targs: []interface{}{\"Hello\", 3.14, []int{1, 2, 3}},\n\t\t\texpected: \"Hello (unhandled) (unhandled)\",\n\t\t},\n\t}\n\n\t// TODO: replace os.Stdout with a buffer to capture the output and test it.\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tPrintln(tt.args...)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9nznSkvTQSKAjGtz9+lSDKDF9tKZdQmD32kGiRBQKmvl4JqvqPp4mzLXt1zkoXRf2r3GNKZPxAUP22gQXJNJBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ui","path":"gno.land/p/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype DOM struct {\n\t// metadata\n\tPrefix string\n\tTitle string\n\tWithComments bool\n\tClasses []string\n\n\t// elements\n\tHeader Element\n\tBody Element\n\tFooter Element\n}\n\nfunc (dom DOM) String() string {\n\tclasses := strings.Join(dom.Classes, \" \")\n\n\toutput := \"\"\n\n\tif classes != \"\" {\n\t\toutput += \"\u003cmain class='\" + classes + \"'\u003e\" + \"\\n\\n\"\n\t}\n\n\tif dom.Title != \"\" {\n\t\toutput += H1(dom.Title).String(dom) + \"\\n\"\n\t}\n\n\tif header := dom.Header.String(dom); header != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- header --\u003e\"\n\t\t}\n\t\toutput += header + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /header --\u003e\"\n\t\t}\n\t}\n\n\tif body := dom.Body.String(dom); body != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- body --\u003e\"\n\t\t}\n\t\toutput += body + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /body --\u003e\"\n\t\t}\n\t}\n\n\tif footer := dom.Footer.String(dom); footer != \"\" {\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- footer --\u003e\"\n\t\t}\n\t\toutput += footer + \"\\n\"\n\t\tif dom.WithComments {\n\t\t\toutput += \"\u003c!-- /footer --\u003e\"\n\t\t}\n\t}\n\n\tif classes != \"\" {\n\t\toutput += \"\u003c/main\u003e\"\n\t}\n\n\t// TODO: cleanup double new-lines.\n\n\treturn output\n}\n\ntype Jumbotron []DomStringer\n\nfunc (j Jumbotron) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"jumbotron\"\u003e` + \"\\n\\n\"\n\tfor _, elem := range j {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\toutput += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\treturn output\n}\n\n// XXX: rename Element to Div?\ntype Element []DomStringer\n\nfunc (e *Element) Append(elems ...DomStringer) {\n\t*e = append(*e, elems...)\n}\n\nfunc (e *Element) String(dom DOM) string {\n\toutput := \"\"\n\tfor _, elem := range *e {\n\t\toutput += elem.String(dom) + \"\\n\"\n\t}\n\treturn output\n}\n\ntype Breadcrumb []DomStringer\n\nfunc (b *Breadcrumb) Append(elems ...DomStringer) {\n\t*b = append(*b, elems...)\n}\n\nfunc (b Breadcrumb) String(dom DOM) string {\n\toutput := \"\"\n\tfor idx, entry := range b {\n\t\tif idx \u003e 0 {\n\t\t\toutput += \" / \"\n\t\t}\n\t\toutput += entry.String(dom)\n\t}\n\treturn output\n}\n\ntype Columns struct {\n\tMaxWidth int\n\tColumns []Element\n}\n\nfunc (c *Columns) Append(elems ...Element) {\n\tc.Columns = append(c.Columns, elems...)\n}\n\nfunc (c Columns) String(dom DOM) string {\n\toutput := `\u003cdiv class=\"columns-` + strconv.Itoa(c.MaxWidth) + `\"\u003e` + \"\\n\"\n\tfor _, entry := range c.Columns {\n\t\toutput += `\u003cdiv class=\"column\"\u003e` + \"\\n\\n\"\n\t\toutput += entry.String(dom)\n\t\toutput += \"\u003c/div\u003e\u003c!-- /column--\u003e\\n\"\n\t}\n\toutput += \"\u003c/div\u003e\u003c!-- /columns-\" + strconv.Itoa(c.MaxWidth) + \" --\u003e\\n\"\n\treturn output\n}\n\ntype Link struct {\n\tText string\n\tPath string\n\tURL string\n}\n\n// TODO: image\n\n// TODO: pager\n\nfunc (l Link) String(dom DOM) string {\n\turl := \"\"\n\tswitch {\n\tcase l.Path != \"\" \u0026\u0026 l.URL != \"\":\n\t\tpanic(\"a link should have a path or a URL, not both.\")\n\tcase l.Path != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.Path\n\t\t}\n\t\turl = dom.Prefix + l.Path\n\tcase l.URL != \"\":\n\t\tif l.Text == \"\" {\n\t\t\tl.Text = l.URL\n\t\t}\n\t\turl = l.URL\n\t}\n\n\treturn \"[\" + l.Text + \"](\" + url + \")\"\n}\n\ntype BulletList []DomStringer\n\nfunc (bl BulletList) String(dom DOM) string {\n\toutput := \"\"\n\n\tfor _, entry := range bl {\n\t\toutput += \"- \" + entry.String(dom) + \"\\n\"\n\t}\n\n\treturn output\n}\n\nfunc Text(s string) DomStringer {\n\treturn Raw{Content: s}\n}\n\ntype DomStringer interface {\n\tString(dom DOM) string\n}\n\ntype Raw struct {\n\tContent string\n}\n\nfunc (r Raw) String(_ DOM) string {\n\treturn r.Content\n}\n\ntype (\n\tH1 string\n\tH2 string\n\tH3 string\n\tH4 string\n\tH5 string\n\tH6 string\n\tBold string\n\tItalic string\n\tCode string\n\tParagraph string\n\tQuote string\n\tHR struct{}\n)\n\nfunc (text H1) String(_ DOM) string { return \"# \" + string(text) + \"\\n\" }\nfunc (text H2) String(_ DOM) string { return \"## \" + string(text) + \"\\n\" }\nfunc (text H3) String(_ DOM) string { return \"### \" + string(text) + \"\\n\" }\nfunc (text H4) String(_ DOM) string { return \"#### \" + string(text) + \"\\n\" }\nfunc (text H5) String(_ DOM) string { return \"##### \" + string(text) + \"\\n\" }\nfunc (text H6) String(_ DOM) string { return \"###### \" + string(text) + \"\\n\" }\nfunc (text Quote) String(_ DOM) string { return \"\u003e \" + string(text) + \"\\n\" }\nfunc (text Bold) String(_ DOM) string { return \"**\" + string(text) + \"**\" }\nfunc (text Italic) String(_ DOM) string { return \"_\" + string(text) + \"_\" }\nfunc (text Paragraph) String(_ DOM) string { return \"\\n\" + string(text) + \"\\n\" }\nfunc (_ HR) String(_ DOM) string { return \"\\n---\\n\" }\n\nfunc (text Code) String(_ DOM) string {\n\t// multiline\n\tif strings.Contains(string(text), \"\\n\") {\n\t\treturn \"\\n```\\n\" + string(text) + \"\\n```\\n\"\n\t}\n\n\t// single line\n\treturn \"`\" + string(text) + \"`\"\n}\n"},{"name":"ui_test.gno","body":"package ui\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MuGTnzEOM7fBKAQO5Ucb1JzE8dSlD9Uu4RTxRDgbiJRPqfdqASHONjguhIKgHUWCe3YJ1Co+LmnJPQnjZjW/CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ui","path":"gno.land/r/demo/ui","files":[{"name":"ui.gno","body":"package ui\n\nimport \"gno.land/p/demo/ui\"\n\nfunc Render(path string) string {\n\t// TODO: build this realm as a demo one with one page per feature.\n\n\t// TODO: pagination\n\t// TODO: non-standard markdown\n\t// TODO: error, warn\n\t// TODO: header\n\t// TODO: HTML\n\t// TODO: toc\n\t// TODO: forms\n\t// TODO: comments\n\n\tdom := ui.DOM{\n\t\tPrefix: \"r/demo/ui:\",\n\t}\n\n\tdom.Title = \"UI Demo\"\n\n\tdom.Header.Append(ui.Breadcrumb{\n\t\tui.Link{Text: \"foo\", Path: \"foo\"},\n\t\tui.Link{Text: \"bar\", Path: \"foo/bar\"},\n\t})\n\n\tdom.Body.Append(\n\t\tui.Paragraph(\"Simple UI demonstration.\"),\n\t\tui.BulletList{\n\t\t\tui.Text(\"a text\"),\n\t\t\tui.Link{Text: \"a relative link\", Path: \"foobar\"},\n\t\t\tui.Text(\"another text\"),\n\t\t\t// ui.H1(\"a H1 text\"),\n\t\t\tui.Bold(\"a bold text\"),\n\t\t\tui.Italic(\"italic text\"),\n\t\t\tui.Text(\"raw markdown with **bold** text in the middle.\"),\n\t\t\tui.Code(\"some inline code\"),\n\t\t\tui.Link{Text: \"a remote link\", URL: \"https://gno.land\"},\n\t\t},\n\t)\n\n\tdom.Footer.Append(ui.Text(\"I'm the footer.\"))\n\tdom.Body.Append(ui.Text(\"another string.\"))\n\tdom.Body.Append(ui.Paragraph(\"a paragraph.\"), ui.HR{})\n\n\treturn dom.String()\n}\n"},{"name":"ui_test.gno","body":"package ui\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestRender(t *testing.T) {\n\tgot := Render(\"\")\n\texpected := \"# UI Demo\\n\\n[foo](r/demo/ui:foo) / [bar](r/demo/ui:foo/bar)\\n\\n\\nSimple UI demonstration.\\n\\n- a text\\n- [a relative link](r/demo/ui:foobar)\\n- another text\\n- **a bold text**\\n- _italic text_\\n- raw markdown with **bold** text in the middle.\\n- `some inline code`\\n- [a remote link](https://gno.land)\\n\\nanother string.\\n\\na paragraph.\\n\\n\\n---\\n\\n\\nI'm the footer.\\n\\n\"\n\tuassert.Equal(t, expected, got)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"odCWrpUiep5bs88qvnfgvYFqwrHkaeKEgKiq8POU6jc5kEBp+Jxc+wSymQAB3ofyxRwNFHRfwNxyH7Qfml3hCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"uint256","path":"gno.land/p/demo/uint256","files":[{"name":"LICENSE","body":"BSD 3-Clause License\n\nCopyright 2020 uint256 Authors\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},{"name":"README.md","body":"# Fixed size 256-bit math library\n\nThis is a library specialized at replacing the `big.Int` library for math based on 256-bit types.\n\noriginal repository: [uint256](\u003chttps://github.com/holiman/uint256/tree/master\u003e)\n"},{"name":"arithmetic.gno","body":"// arithmetic provides arithmetic operations for Uint objects.\n// This includes basic binary operations such as addition, subtraction, multiplication, division, and modulo operations\n// as well as overflow checks, and negation. These functions are essential for numeric\n// calculations using 256-bit unsigned integers.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Add sets z to the sum x+y\nfunc (z *Uint) Add(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// AddOverflow sets z to the sum x+y, and returns z and whether overflow occurred\nfunc (z *Uint) AddOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Add64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Add64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Add64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Add64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Sub sets z to the difference x-y\nfunc (z *Uint) Sub(x, y *Uint) *Uint {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], _ = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z\n}\n\n// SubOverflow sets z to the difference x-y and returns z and true if the operation underflowed\nfunc (z *Uint) SubOverflow(x, y *Uint) (*Uint, bool) {\n\tvar carry uint64\n\tz.arr[0], carry = bits.Sub64(x.arr[0], y.arr[0], 0)\n\tz.arr[1], carry = bits.Sub64(x.arr[1], y.arr[1], carry)\n\tz.arr[2], carry = bits.Sub64(x.arr[2], y.arr[2], carry)\n\tz.arr[3], carry = bits.Sub64(x.arr[3], y.arr[3], carry)\n\treturn z, carry != 0\n}\n\n// Neg returns -x mod 2^256.\nfunc (z *Uint) Neg(x *Uint) *Uint {\n\treturn z.Sub(new(Uint), x)\n}\n\n// commented out for possible overflow\n// Mul sets z to the product x*y\nfunc (z *Uint) Mul(x, y *Uint) *Uint {\n\tvar (\n\t\tres Uint\n\t\tcarry uint64\n\t\tres1, res2, res3 uint64\n\t)\n\n\tcarry, res.arr[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tres3 = x.arr[3]*y.arr[0] + carry\n\n\tcarry, res.arr[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tres3 = res3 + x.arr[2]*y.arr[1] + carry\n\n\tcarry, res.arr[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tres3 = res3 + x.arr[1]*y.arr[2] + carry\n\n\tres.arr[3] = res3 + x.arr[0]*y.arr[3]\n\n\treturn z.Set(\u0026res)\n}\n\n// MulOverflow sets z to the product x*y, and returns z and whether overflow occurred\nfunc (z *Uint) MulOverflow(x, y *Uint) (*Uint, bool) {\n\tp := umul(x, y)\n\tcopy(z.arr[:], p[:4])\n\treturn z, (p[4] | p[5] | p[6] | p[7]) != 0\n}\n\n// commented out for possible overflow\n// Div sets z to the quotient x/y for returns z.\n// If y == 0, z is set to 0\nfunc (z *Uint) Div(x, y *Uint) *Uint {\n\tif y.IsZero() || y.Gt(x) {\n\t\treturn z.Clear()\n\t}\n\tif x.Eq(y) {\n\t\treturn z.SetOne()\n\t}\n\t// Shortcut some cases\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() / y.Uint64())\n\t}\n\n\t// At this point, we know\n\t// x/y ; x \u003e y \u003e 0\n\n\tvar quot Uint\n\tudivrem(quot.arr[:], x.arr[:], y)\n\treturn z.Set(\u0026quot)\n}\n\n// MulMod calculates the modulo-m multiplication of x and y and\n// returns z.\n// If m == 0, z is set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) MulMod(x, y, m *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() || m.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tp := umul(x, y)\n\n\tif m.arr[3] != 0 {\n\t\tmu := Reciprocal(m)\n\t\tr := reduce4(p, m, mu)\n\t\treturn z.Set(\u0026r)\n\t}\n\n\tvar (\n\t\tpl Uint\n\t\tph Uint\n\t)\n\n\tpl = Uint{arr: [4]uint64{p[0], p[1], p[2], p[3]}}\n\tph = Uint{arr: [4]uint64{p[4], p[5], p[6], p[7]}}\n\n\t// If the multiplication is within 256 bits use Mod().\n\tif ph.IsZero() {\n\t\treturn z.Mod(\u0026pl, m)\n\t}\n\n\tvar quot [8]uint64\n\trem := udivrem(quot[:], p[:], m)\n\treturn z.Set(\u0026rem)\n}\n\n// Mod sets z to the modulus x%y for y != 0 and returns z.\n// If y == 0, z is set to 0 (OBS: differs from the big.Uint)\nfunc (z *Uint) Mod(x, y *Uint) *Uint {\n\tif x.IsZero() || y.IsZero() {\n\t\treturn z.Clear()\n\t}\n\tswitch x.Cmp(y) {\n\tcase -1:\n\t\t// x \u003c y\n\t\tcopy(z.arr[:], x.arr[:])\n\t\treturn z\n\tcase 0:\n\t\t// x == y\n\t\treturn z.Clear() // They are equal\n\t}\n\n\t// At this point:\n\t// x != 0\n\t// y != 0\n\t// x \u003e y\n\n\t// Shortcut trivial case\n\tif x.IsUint64() {\n\t\treturn z.SetUint64(x.Uint64() % y.Uint64())\n\t}\n\n\tvar quot Uint\n\t*z = udivrem(quot.arr[:], x.arr[:], y)\n\treturn z\n}\n\n// DivMod sets z to the quotient x div y and m to the modulus x mod y and returns the pair (z, m) for y != 0.\n// If y == 0, both z and m are set to 0 (OBS: differs from the big.Int)\nfunc (z *Uint) DivMod(x, y, m *Uint) (*Uint, *Uint) {\n\tif y.IsZero() {\n\t\treturn z.Clear(), m.Clear()\n\t}\n\tvar quot Uint\n\t*m = udivrem(quot.arr[:], x.arr[:], y)\n\t*z = quot\n\treturn z, m\n}\n\n// Exp sets z = base**exponent mod 2**256, and returns z.\nfunc (z *Uint) Exp(base, exponent *Uint) *Uint {\n\tres := Uint{arr: [4]uint64{1, 0, 0, 0}}\n\tmultiplier := *base\n\texpBitLen := exponent.BitLen()\n\n\tcurBit := 0\n\tword := exponent.arr[0]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 64; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[1]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 128; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[2]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 192; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\n\tword = exponent.arr[3]\n\tfor ; curBit \u003c expBitLen \u0026\u0026 curBit \u003c 256; curBit++ {\n\t\tif word\u00261 == 1 {\n\t\t\tres.Mul(\u0026res, \u0026multiplier)\n\t\t}\n\t\tmultiplier.squared()\n\t\tword \u003e\u003e= 1\n\t}\n\treturn z.Set(\u0026res)\n}\n\nfunc (z *Uint) squared() {\n\tvar (\n\t\tres Uint\n\t\tcarry0, carry1, carry2 uint64\n\t\tres1, res2 uint64\n\t)\n\n\tcarry0, res.arr[0] = bits.Mul64(z.arr[0], z.arr[0])\n\tcarry0, res1 = umulHop(carry0, z.arr[0], z.arr[1])\n\tcarry0, res2 = umulHop(carry0, z.arr[0], z.arr[2])\n\n\tcarry1, res.arr[1] = umulHop(res1, z.arr[0], z.arr[1])\n\tcarry1, res2 = umulStep(res2, z.arr[1], z.arr[1], carry1)\n\n\tcarry2, res.arr[2] = umulHop(res2, z.arr[0], z.arr[2])\n\n\tres.arr[3] = 2*(z.arr[0]*z.arr[3]+z.arr[1]*z.arr[2]) + carry0 + carry1 + carry2\n\n\tz.Set(\u0026res)\n}\n\n// udivrem divides u by d and produces both quotient and remainder.\n// The quotient is stored in provided quot - len(u)-len(d)+1 words.\n// It loosely follows the Knuth's division algorithm (sometimes referenced as \"schoolbook\" division) using 64-bit words.\n// See Knuth, Volume 2, section 4.3.1, Algorithm D.\nfunc udivrem(quot, u []uint64, d *Uint) (rem Uint) {\n\tvar dLen int\n\tfor i := len(d.arr) - 1; i \u003e= 0; i-- {\n\t\tif d.arr[i] != 0 {\n\t\t\tdLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tshift := uint(bits.LeadingZeros64(d.arr[dLen-1]))\n\n\tvar dnStorage Uint\n\tdn := dnStorage.arr[:dLen]\n\tfor i := dLen - 1; i \u003e 0; i-- {\n\t\tdn[i] = (d.arr[i] \u003c\u003c shift) | (d.arr[i-1] \u003e\u003e (64 - shift))\n\t}\n\tdn[0] = d.arr[0] \u003c\u003c shift\n\n\tvar uLen int\n\tfor i := len(u) - 1; i \u003e= 0; i-- {\n\t\tif u[i] != 0 {\n\t\t\tuLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif uLen \u003c dLen {\n\t\tcopy(rem.arr[:], u)\n\t\treturn rem\n\t}\n\n\tvar unStorage [9]uint64\n\tun := unStorage[:uLen+1]\n\tun[uLen] = u[uLen-1] \u003e\u003e (64 - shift)\n\tfor i := uLen - 1; i \u003e 0; i-- {\n\t\tun[i] = (u[i] \u003c\u003c shift) | (u[i-1] \u003e\u003e (64 - shift))\n\t}\n\tun[0] = u[0] \u003c\u003c shift\n\n\t// TODO: Skip the highest word of numerator if not significant.\n\n\tif dLen == 1 {\n\t\tr := udivremBy1(quot, un, dn[0])\n\t\trem.SetUint64(r \u003e\u003e shift)\n\t\treturn rem\n\t}\n\n\tudivremKnuth(quot, un, dn)\n\n\tfor i := 0; i \u003c dLen-1; i++ {\n\t\trem.arr[i] = (un[i] \u003e\u003e shift) | (un[i+1] \u003c\u003c (64 - shift))\n\t}\n\trem.arr[dLen-1] = un[dLen-1] \u003e\u003e shift\n\n\treturn rem\n}\n\n// umul computes full 256 x 256 -\u003e 512 multiplication.\nfunc umul(x, y *Uint) [8]uint64 {\n\tvar (\n\t\tres [8]uint64\n\t\tcarry, carry4, carry5, carry6 uint64\n\t\tres1, res2, res3, res4, res5 uint64\n\t)\n\n\tcarry, res[0] = bits.Mul64(x.arr[0], y.arr[0])\n\tcarry, res1 = umulHop(carry, x.arr[1], y.arr[0])\n\tcarry, res2 = umulHop(carry, x.arr[2], y.arr[0])\n\tcarry4, res3 = umulHop(carry, x.arr[3], y.arr[0])\n\n\tcarry, res[1] = umulHop(res1, x.arr[0], y.arr[1])\n\tcarry, res2 = umulStep(res2, x.arr[1], y.arr[1], carry)\n\tcarry, res3 = umulStep(res3, x.arr[2], y.arr[1], carry)\n\tcarry5, res4 = umulStep(carry4, x.arr[3], y.arr[1], carry)\n\n\tcarry, res[2] = umulHop(res2, x.arr[0], y.arr[2])\n\tcarry, res3 = umulStep(res3, x.arr[1], y.arr[2], carry)\n\tcarry, res4 = umulStep(res4, x.arr[2], y.arr[2], carry)\n\tcarry6, res5 = umulStep(carry5, x.arr[3], y.arr[2], carry)\n\n\tcarry, res[3] = umulHop(res3, x.arr[0], y.arr[3])\n\tcarry, res[4] = umulStep(res4, x.arr[1], y.arr[3], carry)\n\tcarry, res[5] = umulStep(res5, x.arr[2], y.arr[3], carry)\n\tres[7], res[6] = umulStep(carry6, x.arr[3], y.arr[3], carry)\n\n\treturn res\n}\n\n// umulStep computes (hi * 2^64 + lo) = z + (x * y) + carry.\nfunc umulStep(z, x, y, carry uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry = bits.Add64(lo, carry, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\tlo, carry = bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// umulHop computes (hi * 2^64 + lo) = z + (x * y)\nfunc umulHop(z, x, y uint64) (hi, lo uint64) {\n\thi, lo = bits.Mul64(x, y)\n\tlo, carry := bits.Add64(lo, z, 0)\n\thi, _ = bits.Add64(hi, 0, carry)\n\treturn hi, lo\n}\n\n// udivremBy1 divides u by single normalized word d and produces both quotient and remainder.\n// The quotient is stored in provided quot.\nfunc udivremBy1(quot, u []uint64, d uint64) (rem uint64) {\n\treciprocal := reciprocal2by1(d)\n\trem = u[len(u)-1] // Set the top word as remainder.\n\tfor j := len(u) - 2; j \u003e= 0; j-- {\n\t\tquot[j], rem = udivrem2by1(rem, u[j], d, reciprocal)\n\t}\n\treturn rem\n}\n\n// udivremKnuth implements the division of u by normalized multiple word d from the Knuth's division algorithm.\n// The quotient is stored in provided quot - len(u)-len(d) words.\n// Updates u to contain the remainder - len(d) words.\nfunc udivremKnuth(quot, u, d []uint64) {\n\tdh := d[len(d)-1]\n\tdl := d[len(d)-2]\n\treciprocal := reciprocal2by1(dh)\n\n\tfor j := len(u) - len(d) - 1; j \u003e= 0; j-- {\n\t\tu2 := u[j+len(d)]\n\t\tu1 := u[j+len(d)-1]\n\t\tu0 := u[j+len(d)-2]\n\n\t\tvar qhat, rhat uint64\n\t\tif u2 \u003e= dh { // Division overflows.\n\t\t\tqhat = ^uint64(0)\n\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t} else {\n\t\t\tqhat, rhat = udivrem2by1(u2, u1, dh, reciprocal)\n\t\t\tph, pl := bits.Mul64(qhat, dl)\n\t\t\tif ph \u003e rhat || (ph == rhat \u0026\u0026 pl \u003e u0) {\n\t\t\t\tqhat--\n\t\t\t\t// TODO: Add \"qhat one to big\" adjustment (not needed for correctness, but helps avoiding \"add back\" case).\n\t\t\t}\n\t\t}\n\n\t\t// Multiply and subtract.\n\t\tborrow := subMulTo(u[j:], d, qhat)\n\t\tu[j+len(d)] = u2 - borrow\n\t\tif u2 \u003c borrow { // Too much subtracted, add back.\n\t\t\tqhat--\n\t\t\tu[j+len(d)] += addTo(u[j:], d)\n\t\t}\n\n\t\tquot[j] = qhat // Store quotient digit.\n\t}\n}\n\n// isBitSet returns true if bit n-th is set, where n = 0 is LSB.\n// The n must be \u003c= 255.\nfunc (z *Uint) isBitSet(n uint) bool {\n\treturn (z.arr[n/64] \u0026 (1 \u003c\u003c (n % 64))) != 0\n}\n\n// addTo computes x += y.\n// Requires len(x) \u003e= len(y).\nfunc addTo(x, y []uint64) uint64 {\n\tvar carry uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\tx[i], carry = bits.Add64(x[i], y[i], carry)\n\t}\n\treturn carry\n}\n\n// subMulTo computes x -= y * multiplier.\n// Requires len(x) \u003e= len(y).\nfunc subMulTo(x, y []uint64, multiplier uint64) uint64 {\n\tvar borrow uint64\n\tfor i := 0; i \u003c len(y); i++ {\n\t\ts, carry1 := bits.Sub64(x[i], borrow, 0)\n\t\tph, pl := bits.Mul64(y[i], multiplier)\n\t\tt, carry2 := bits.Sub64(s, pl, 0)\n\t\tx[i] = t\n\t\tborrow = ph + carry1 + carry2\n\t}\n\treturn borrow\n}\n\n// reciprocal2by1 computes \u003c^d, ^0\u003e / d.\nfunc reciprocal2by1(d uint64) uint64 {\n\treciprocal, _ := bits.Div64(^d, ^uint64(0), d)\n\treturn reciprocal\n}\n\n// udivrem2by1 divides \u003cuh, ul\u003e / d and produces both quotient and remainder.\n// It uses the provided d's reciprocal.\n// Implementation ported from https://github.com/chfast/intx and is based on\n// \"Improved division by invariant integers\", Algorithm 4.\nfunc udivrem2by1(uh, ul, d, reciprocal uint64) (quot, rem uint64) {\n\tqh, ql := bits.Mul64(reciprocal, uh)\n\tql, carry := bits.Add64(ql, ul, 0)\n\tqh, _ = bits.Add64(qh, uh, carry)\n\tqh++\n\n\tr := ul - qh*d\n\n\tif r \u003e ql {\n\t\tqh--\n\t\tr += d\n\t}\n\n\tif r \u003e= d {\n\t\tqh++\n\t\tr -= d\n\t}\n\n\treturn qh, r\n}\n"},{"name":"arithmetic_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\ntype binOp2Test struct {\n\tx, y, want string\n}\n\nfunc TestAdd(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"0\", \"1\", \"1\"},\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"2\"},\n\t\t{\"1\", \"3\", \"4\"},\n\t\t{\"10\", \"10\", \"20\"},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Add(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Add(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestAddOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"0\", \"1\", \"1\", false},\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"2\", false},\n\t\t{\"10\", \"10\", \"20\", false},\n\t\t{\"18446744073709551615\", \"18446744073709551615\", \"36893488147419103230\", false}, // uint64 overflow, but not Uint256 overflow\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"1\", \"0\", true}, // 2^256 - 1 + 1, should overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", false}, // (2^255 - 1) + 2^255, no overflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819967\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"0\", true}, // (2^255 - 1) + (2^255 + 1), should overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant, _ := FromDecimal(tt.want)\n\n\t\tgot, overflow := new(Uint).AddOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tt.overflow {\n\t\t\tt.Errorf(\"AddOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttt.x, tt.y, got.String(), overflow, tt.want, tt.overflow)\n\t\t}\n\t}\n}\n\nfunc TestSub(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"1\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"1337\", \"30000\"},\n\t\t{\"2\", \"3\", twoPow256Sub1}, // underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot := new(Uint).Sub(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Sub(%s, %s) = %v, want %v\",\n\t\t\t\ttc.x, tc.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestSubOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant string\n\t\toverflow bool\n\t}{\n\t\t{\"1\", \"0\", \"1\", false},\n\t\t{\"1\", \"1\", \"0\", false},\n\t\t{\"10\", \"10\", \"0\", false},\n\t\t{\"31337\", \"1337\", \"30000\", false},\n\t\t{\"0\", \"1\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 0 - 1, should underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"1\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\", false}, // 2^255 - 1, no underflow\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819969\", \"115792089237316195423570985008687907853269984665640564039457584007913129639935\", true}, // 2^255 - (2^255 + 1), should underflow\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\t\twant := MustFromDecimal(tc.want)\n\n\t\tgot, overflow := new(Uint).SubOverflow(x, y)\n\n\t\tif got.Cmp(want) != 0 || overflow != tc.overflow {\n\t\t\tt.Errorf(\n\t\t\t\t\"SubOverflow(%s, %s) = (%s, %v), want (%s, %v)\",\n\t\t\t\ttc.x, tc.y, got.String(), overflow, tc.want, tc.overflow,\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestMul(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"1\", \"0\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"10\", \"10\", \"100\"},\n\t\t{\"18446744073709551615\", \"2\", \"36893488147419103230\"}, // uint64 overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Mul(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mul(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulOverflow(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantZ string\n\t\twantOver bool\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x1\", false},\n\t\t{\"0x0\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\", false},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", true},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x1\", true},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", \"0x2\", \"0x0\", true},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x2\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", false},\n\t\t{\"0x100000000000000000\", \"0x100000000000000000\", \"0x10000000000000000000000000000000000\", false},\n\t\t{\"0x10000000000000000000000000000000\", \"0x10000000000000000000000000000000\", \"0x100000000000000000000000000000000000000000000000000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\twantZ := MustFromHex(tt.wantZ)\n\n\t\tgotZ, gotOver := new(Uint).MulOverflow(x, y)\n\n\t\tif gotZ.Neq(wantZ) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulOverflow(%s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, gotZ.String(), wantZ.String(),\n\t\t\t)\n\t\t}\n\t\tif gotOver != tt.wantOver {\n\t\t\tt.Errorf(\"MulOverflow(%s, %s) = %v, want %v\", tt.x, tt.y, gotOver, tt.wantOver)\n\t\t}\n\t}\n}\n\nfunc TestDiv(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"10445\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"1000000000000000000\", \"3\", \"333333333333333333\"},\n\t\t{twoPow256Sub1, \"2\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Div(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Div(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMod(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"2\", \"31337\", \"2\"},\n\t\t{\"1\", \"1\", \"0\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"2\", \"1\"}, // 2^256 - 1 mod 2\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"3\", \"0\"}, // 2^256 - 1 mod 3\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129639935\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\", \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"}, // 2^256 - 1 mod 2^255\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Mod(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Mod(%s, %s) = %v, want %v\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestMulMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\tm string\n\t\twant string\n\t}{\n\t\t{\"0x1\", \"0x1\", \"0x2\", \"0x1\"},\n\t\t{\"0x10\", \"0x10\", \"0x7\", \"0x4\"},\n\t\t{\"0x100\", \"0x100\", \"0x17\", \"0x9\"},\n\t\t{\"0x31337\", \"0x31337\", \"0x31338\", \"0x1\"},\n\t\t{\"0x0\", \"0x31337\", \"0x31338\", \"0x0\"},\n\t\t{\"0x31337\", \"0x0\", \"0x31338\", \"0x0\"},\n\t\t{\"0x2\", \"0x3\", \"0x5\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\", \"0x1\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", \"0xffffffffffffffffffffffffffffffff\", \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\ty := MustFromHex(tt.y)\n\t\tm := MustFromHex(tt.m)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).MulMod(x, y, m)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"MulMod(%s, %s, %s) = %s, want %s\",\n\t\t\t\ttt.x, tt.y, tt.m, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestDivMod(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twantDiv string\n\t\twantMod string\n\t}{\n\t\t{\"1\", \"1\", \"1\", \"0\"},\n\t\t{\"10\", \"10\", \"1\", \"0\"},\n\t\t{\"100\", \"10\", \"10\", \"0\"},\n\t\t{\"31337\", \"3\", \"10445\", \"2\"},\n\t\t{\"31337\", \"0\", \"0\", \"0\"},\n\t\t{\"0\", \"31337\", \"0\", \"0\"},\n\t\t{\"2\", \"31337\", \"0\", \"2\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twantDiv := MustFromDecimal(tt.wantDiv)\n\t\twantMod := MustFromDecimal(tt.wantMod)\n\n\t\tgotDiv := new(Uint)\n\t\tgotMod := new(Uint)\n\t\tgotDiv.DivMod(x, y, gotMod)\n\n\t\tfor i := range gotDiv.arr {\n\t\t\tif gotDiv.arr[i] != wantDiv.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Div %v, want Div %v\", tt.x, tt.y, gotDiv, wantDiv)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfor i := range gotMod.arr {\n\t\t\tif gotMod.arr[i] != wantMod.arr[i] {\n\t\t\t\tt.Errorf(\"DivMod(%s, %s) got Mod %v, want Mod %v\", tt.x, tt.y, gotMod, wantMod)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNeg(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant string\n\t}{\n\t\t{\"31337\", \"115792089237316195423570985008687907853269984665640564039457584007913129608599\"},\n\t\t{\"115792089237316195423570985008687907853269984665640564039457584007913129608599\", \"31337\"},\n\t\t{\"0\", \"0\"},\n\t\t{\"2\", \"115792089237316195423570985008687907853269984665640564039457584007913129639934\"},\n\t\t{\"1\", twoPow256Sub1},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Neg(x)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Neg(%s) = %v, want %v\", tt.x, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestExp(t *testing.T) {\n\ttests := []binOp2Test{\n\t\t{\"31337\", \"3\", \"30773171189753\"},\n\t\t{\"31337\", \"0\", \"1\"},\n\t\t{\"0\", \"31337\", \"0\"},\n\t\t{\"1\", \"1\", \"1\"},\n\t\t{\"2\", \"3\", \"8\"},\n\t\t{\"2\", \"64\", \"18446744073709551616\"},\n\t\t{\"2\", \"128\", \"340282366920938463463374607431768211456\"},\n\t\t{\"2\", \"255\", \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"2\", \"256\", \"0\"}, // overflow\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\ty := MustFromDecimal(tt.y)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Exp(x, y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\n\t\t\t\t\"Exp(%s, %s) = %v, want %v\",\n\t\t\t\ttt.x, tt.y, got.String(), want.String(),\n\t\t\t)\n\t\t}\n\t}\n}\n\nfunc TestExp_LargeExponent(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tbase string\n\t\texponent string\n\t\texpected string\n\t}{\n\t\t{\n\t\t\tname: \"2^129\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"680564733841876926926749214863536422912\",\n\t\t\texpected: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"2^193\",\n\t\t\tbase: \"2\",\n\t\t\texponent: \"12379400392853802746563808384000000000000000000\",\n\t\t\texpected: \"0\",\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tbase := MustFromDecimal(tt.base)\n\t\t\texponent := MustFromDecimal(tt.exponent)\n\t\t\texpected := MustFromDecimal(tt.expected)\n\n\t\t\tresult := new(Uint).Exp(base, exponent)\n\n\t\t\tif result.Neq(expected) {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Test %s failed. Expected %s, got %s\",\n\t\t\t\t\ttt.name, expected.String(), result.String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n"},{"name":"bits_table.gno","body":"// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by go run make_tables.go. DO NOT EDIT.\n\npackage uint256\n\nconst ntz8tab = \"\" +\n\t\"\\x08\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x07\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x06\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x05\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\" +\n\t\"\\x04\\x00\\x01\\x00\\x02\\x00\\x01\\x00\\x03\\x00\\x01\\x00\\x02\\x00\\x01\\x00\"\n\nconst pop8tab = \"\" +\n\t\"\\x00\\x01\\x01\\x02\\x01\\x02\\x02\\x03\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x01\\x02\\x02\\x03\\x02\\x03\\x03\\x04\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x02\\x03\\x03\\x04\\x03\\x04\\x04\\x05\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x03\\x04\\x04\\x05\\x04\\x05\\x05\\x06\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\" +\n\t\"\\x04\\x05\\x05\\x06\\x05\\x06\\x06\\x07\\x05\\x06\\x06\\x07\\x06\\x07\\x07\\x08\"\n\nconst rev8tab = \"\" +\n\t\"\\x00\\x80\\x40\\xc0\\x20\\xa0\\x60\\xe0\\x10\\x90\\x50\\xd0\\x30\\xb0\\x70\\xf0\" +\n\t\"\\x08\\x88\\x48\\xc8\\x28\\xa8\\x68\\xe8\\x18\\x98\\x58\\xd8\\x38\\xb8\\x78\\xf8\" +\n\t\"\\x04\\x84\\x44\\xc4\\x24\\xa4\\x64\\xe4\\x14\\x94\\x54\\xd4\\x34\\xb4\\x74\\xf4\" +\n\t\"\\x0c\\x8c\\x4c\\xcc\\x2c\\xac\\x6c\\xec\\x1c\\x9c\\x5c\\xdc\\x3c\\xbc\\x7c\\xfc\" +\n\t\"\\x02\\x82\\x42\\xc2\\x22\\xa2\\x62\\xe2\\x12\\x92\\x52\\xd2\\x32\\xb2\\x72\\xf2\" +\n\t\"\\x0a\\x8a\\x4a\\xca\\x2a\\xaa\\x6a\\xea\\x1a\\x9a\\x5a\\xda\\x3a\\xba\\x7a\\xfa\" +\n\t\"\\x06\\x86\\x46\\xc6\\x26\\xa6\\x66\\xe6\\x16\\x96\\x56\\xd6\\x36\\xb6\\x76\\xf6\" +\n\t\"\\x0e\\x8e\\x4e\\xce\\x2e\\xae\\x6e\\xee\\x1e\\x9e\\x5e\\xde\\x3e\\xbe\\x7e\\xfe\" +\n\t\"\\x01\\x81\\x41\\xc1\\x21\\xa1\\x61\\xe1\\x11\\x91\\x51\\xd1\\x31\\xb1\\x71\\xf1\" +\n\t\"\\x09\\x89\\x49\\xc9\\x29\\xa9\\x69\\xe9\\x19\\x99\\x59\\xd9\\x39\\xb9\\x79\\xf9\" +\n\t\"\\x05\\x85\\x45\\xc5\\x25\\xa5\\x65\\xe5\\x15\\x95\\x55\\xd5\\x35\\xb5\\x75\\xf5\" +\n\t\"\\x0d\\x8d\\x4d\\xcd\\x2d\\xad\\x6d\\xed\\x1d\\x9d\\x5d\\xdd\\x3d\\xbd\\x7d\\xfd\" +\n\t\"\\x03\\x83\\x43\\xc3\\x23\\xa3\\x63\\xe3\\x13\\x93\\x53\\xd3\\x33\\xb3\\x73\\xf3\" +\n\t\"\\x0b\\x8b\\x4b\\xcb\\x2b\\xab\\x6b\\xeb\\x1b\\x9b\\x5b\\xdb\\x3b\\xbb\\x7b\\xfb\" +\n\t\"\\x07\\x87\\x47\\xc7\\x27\\xa7\\x67\\xe7\\x17\\x97\\x57\\xd7\\x37\\xb7\\x77\\xf7\" +\n\t\"\\x0f\\x8f\\x4f\\xcf\\x2f\\xaf\\x6f\\xef\\x1f\\x9f\\x5f\\xdf\\x3f\\xbf\\x7f\\xff\"\n\nconst len8tab = \"\" +\n\t\"\\x00\\x01\\x02\\x02\\x03\\x03\\x03\\x03\\x04\\x04\\x04\\x04\\x04\\x04\\x04\\x04\" +\n\t\"\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\\x05\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\\x06\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\" +\n\t\"\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\"\n"},{"name":"bitwise.gno","body":"// bitwise contains bitwise operations for Uint instances.\n// This file includes functions to perform bitwise AND, OR, XOR, and NOT operations, as well as bit shifting.\n// These operations are crucial for manipulating individual bits within a 256-bit unsigned integer.\npackage uint256\n\n// Or sets z = x | y and returns z.\nfunc (z *Uint) Or(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] | y.arr[0]\n\tz.arr[1] = x.arr[1] | y.arr[1]\n\tz.arr[2] = x.arr[2] | y.arr[2]\n\tz.arr[3] = x.arr[3] | y.arr[3]\n\treturn z\n}\n\n// And sets z = x \u0026 y and returns z.\nfunc (z *Uint) And(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026 y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026 y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026 y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026 y.arr[3]\n\treturn z\n}\n\n// Not sets z = ^x and returns z.\nfunc (z *Uint) Not(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = ^x.arr[3], ^x.arr[2], ^x.arr[1], ^x.arr[0]\n\treturn z\n}\n\n// AndNot sets z = x \u0026^ y and returns z.\nfunc (z *Uint) AndNot(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] \u0026^ y.arr[0]\n\tz.arr[1] = x.arr[1] \u0026^ y.arr[1]\n\tz.arr[2] = x.arr[2] \u0026^ y.arr[2]\n\tz.arr[3] = x.arr[3] \u0026^ y.arr[3]\n\treturn z\n}\n\n// Xor sets z = x ^ y and returns z.\nfunc (z *Uint) Xor(x, y *Uint) *Uint {\n\tz.arr[0] = x.arr[0] ^ y.arr[0]\n\tz.arr[1] = x.arr[1] ^ y.arr[1]\n\tz.arr[2] = x.arr[2] ^ y.arr[2]\n\tz.arr[3] = x.arr[3] ^ y.arr[3]\n\treturn z\n}\n\n// Lsh sets z = x \u003c\u003c n and returns z.\nfunc (z *Uint) Lsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.lsh64(x)\n\t\tcase 128:\n\t\t\treturn z.lsh128(x)\n\t\tcase 192:\n\t\t\treturn z.lsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.lsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.lsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.lsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[0] \u003e\u003e (64 - n)\n\tz.arr[0] = z.arr[0] \u003c\u003c n\n\nsh64:\n\tb = z.arr[1] \u003e\u003e (64 - n)\n\tz.arr[1] = (z.arr[1] \u003c\u003c n) | a\n\nsh128:\n\ta = z.arr[2] \u003e\u003e (64 - n)\n\tz.arr[2] = (z.arr[2] \u003c\u003c n) | b\n\nsh192:\n\tz.arr[3] = (z.arr[3] \u003c\u003c n) | a\n\n\treturn z\n}\n\n// Rsh sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) Rsh(x *Uint, n uint) *Uint {\n\t// n % 64 == 0\n\tif n\u00260x3f == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.rsh64(x)\n\t\tcase 128:\n\t\t\treturn z.rsh128(x)\n\t\tcase 192:\n\t\t\treturn z.rsh192(x)\n\t\tdefault:\n\t\t\treturn z.Clear()\n\t\t}\n\t}\n\tvar a, b uint64\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.Clear()\n\t\t}\n\t\tz.rsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.rsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.rsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\ta = z.arr[3] \u003c\u003c (64 - n)\n\tz.arr[3] = z.arr[3] \u003e\u003e n\n\nsh64:\n\tb = z.arr[2] \u003c\u003c (64 - n)\n\tz.arr[2] = (z.arr[2] \u003e\u003e n) | a\n\nsh128:\n\ta = z.arr[1] \u003c\u003c (64 - n)\n\tz.arr[1] = (z.arr[1] \u003e\u003e n) | b\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\n// SRsh (Signed/Arithmetic right shift)\n// considers z to be a signed integer, during right-shift\n// and sets z = x \u003e\u003e n and returns z.\nfunc (z *Uint) SRsh(x *Uint, n uint) *Uint {\n\t// If the MSB is 0, SRsh is same as Rsh.\n\tif !x.isBitSet(255) {\n\t\treturn z.Rsh(x, n)\n\t}\n\tif n%64 == 0 {\n\t\tswitch n {\n\t\tcase 0:\n\t\t\treturn z.Set(x)\n\t\tcase 64:\n\t\t\treturn z.srsh64(x)\n\t\tcase 128:\n\t\t\treturn z.srsh128(x)\n\t\tcase 192:\n\t\t\treturn z.srsh192(x)\n\t\tdefault:\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t}\n\tvar a uint64 = MaxUint64 \u003c\u003c (64 - n%64)\n\t// Big swaps first\n\tswitch {\n\tcase n \u003e 192:\n\t\tif n \u003e 256 {\n\t\t\treturn z.SetAllOne()\n\t\t}\n\t\tz.srsh192(x)\n\t\tn -= 192\n\t\tgoto sh192\n\tcase n \u003e 128:\n\t\tz.srsh128(x)\n\t\tn -= 128\n\t\tgoto sh128\n\tcase n \u003e 64:\n\t\tz.srsh64(x)\n\t\tn -= 64\n\t\tgoto sh64\n\tdefault:\n\t\tz.Set(x)\n\t}\n\n\t// remaining shifts\n\tz.arr[3], a = (z.arr[3]\u003e\u003en)|a, z.arr[3]\u003c\u003c(64-n)\n\nsh64:\n\tz.arr[2], a = (z.arr[2]\u003e\u003en)|a, z.arr[2]\u003c\u003c(64-n)\n\nsh128:\n\tz.arr[1], a = (z.arr[1]\u003e\u003en)|a, z.arr[1]\u003c\u003c(64-n)\n\nsh192:\n\tz.arr[0] = (z.arr[0] \u003e\u003e n) | a\n\n\treturn z\n}\n\nfunc (z *Uint) lsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[2], x.arr[1], x.arr[0], 0\n\treturn z\n}\n\nfunc (z *Uint) lsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[1], x.arr[0], 0, 0\n\treturn z\n}\n\nfunc (z *Uint) lsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = x.arr[0], 0, 0, 0\n\treturn z\n}\n\nfunc (z *Uint) rsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) rsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) rsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x.arr[3]\n\treturn z\n}\n\nfunc (z *Uint) srsh64(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, x.arr[3], x.arr[2], x.arr[1]\n\treturn z\n}\n\nfunc (z *Uint) srsh128(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, x.arr[3], x.arr[2]\n\treturn z\n}\n\nfunc (z *Uint) srsh192(x *Uint) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, x.arr[3]\n\treturn z\n}\n"},{"name":"bitwise_test.gno","body":"package uint256\n\nimport \"testing\"\n\ntype logicOpTest struct {\n\tname string\n\tx Uint\n\ty Uint\n\twant Uint\n}\n\nfunc TestOr(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Or(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Or(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAnd(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).And(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"And(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestNot(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tx Uint\n\t\twant Uint\n\t}{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Not(\u0026tt.x)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Not(%s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAndNot(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).AndNot(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"AndNot(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestXor(t *testing.T) {\n\ttests := []logicOpTest{\n\t\t{\n\t\t\tname: \"all zeros\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 2\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"mixed 3\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0, 0, ^uint64(0), ^uint64(0)}},\n\t\t\twant: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand zero\",\n\t\t\tx: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\ty: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t\twant: Uint{arr: [4]uint64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF}},\n\t\t},\n\t\t{\n\t\t\tname: \"one operand all ones\",\n\t\t\tx: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\ty: Uint{arr: [4]uint64{0x5555555555555555, 0xAAAAAAAAAAAAAAAA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}},\n\t\t\twant: Uint{arr: [4]uint64{0xAAAAAAAAAAAAAAAA, 0x5555555555555555, 0x0000000000000000, ^uint64(0)}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tres := new(Uint).Xor(\u0026tt.x, \u0026tt.y)\n\t\t\tif *res != tt.want {\n\t\t\t\tt.Errorf(\n\t\t\t\t\t\"Xor(%s, %s) = %s, want %s\",\n\t\t\t\t\ttt.x.String(), tt.y.String(), res.String(), (tt.want).String(),\n\t\t\t\t)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestLsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"2\"},\n\t\t{\"1\", 64, \"18446744073709551616\"},\n\t\t{\"1\", 128, \"340282366920938463463374607431768211456\"},\n\t\t{\"1\", 192, \"6277101735386680763835789423207666416102355444464034512896\"},\n\t\t{\"1\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"1\", 256, \"0\"},\n\t\t{\"31337\", 0, \"31337\"},\n\t\t{\"31337\", 1, \"62674\"},\n\t\t{\"31337\", 64, \"578065619037836218990592\"},\n\t\t{\"31337\", 128, \"10663428532201448629551770073089320442396672\"},\n\t\t{\"31337\", 192, \"196705537081812415096322133155058642481399512563169449530621952\"},\n\t\t{\"31337\", 193, \"393411074163624830192644266310117284962799025126338899061243904\"},\n\t\t{\"31337\", 255, \"57896044618658097711785492504343953926634992332820282019728792003956564819968\"},\n\t\t{\"31337\", 256, \"0\"},\n\t\t// 64 \u003c n \u003c 128\n\t\t{\"1\", 65, \"36893488147419103232\"},\n\t\t{\"31337\", 100, \"39724366859352024754702188346867712\"},\n\n\t\t// 128 \u003c n \u003c 192\n\t\t{\"1\", 129, \"680564733841876926926749214863536422912\"},\n\t\t{\"31337\", 150, \"44725660946326664792723507424638829088826130956288\"},\n\n\t\t// 192 \u003c n \u003c 256\n\t\t{\"1\", 193, \"12554203470773361527671578846415332832204710888928069025792\"},\n\t\t{\"31337\", 200, \"50356617492943978264658466087695012475238275216171379079839219712\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\t\twant := MustFromDecimal(tt.want)\n\n\t\tgot := new(Uint).Lsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Lsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t{\"0\", 0, \"0\"},\n\t\t{\"0\", 1, \"0\"},\n\t\t{\"0\", 64, \"0\"},\n\t\t{\"1\", 0, \"1\"},\n\t\t{\"1\", 1, \"0\"},\n\t\t{\"1\", 64, \"0\"},\n\t\t{\"1\", 128, \"0\"},\n\t\t{\"1\", 192, \"0\"},\n\t\t{\"1\", 255, \"0\"},\n\t\t{\"57896044618658097711785492504343953926634992332820282019728792003956564819968\", 255, \"1\"},\n\t\t{\"6277101735386680763835789423207666416102355444464034512896\", 192, \"1\"},\n\t\t{\"340282366920938463463374607431768211456\", 128, \"1\"},\n\t\t{\"18446744073709551616\", 64, \"1\"},\n\t\t{\"393411074163624830192644266310117284962799025126338899061243904\", 193, \"31337\"},\n\t\t{\"196705537081812415096322133155058642481399512563169449530621952\", 192, \"31337\"},\n\t\t{\"10663428532201448629551770073089320442396672\", 128, \"31337\"},\n\t\t{\"578065619037836218990592\", 64, \"31337\"},\n\t\t{twoPow256Sub1, 256, \"0\"},\n\t\t// outliers\n\t\t{\"340282366920938463463374607431768211455\", 129, \"0\"},\n\t\t{\"18446744073709551615\", 65, \"0\"},\n\t\t{twoPow256Sub1, 1, \"57896044618658097711785492504343953926634992332820282019728792003956564819967\"},\n\n\t\t// n \u003e 256\n\t\t{\"1\", 257, \"0\"},\n\t\t{\"31337\", 300, \"0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\twant := MustFromDecimal(tt.want)\n\t\tgot := new(Uint).Rsh(x, tt.y)\n\n\t\tif got.Neq(want) {\n\t\t\tt.Errorf(\"Rsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n\nfunc TestSRsh(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint\n\t\twant string\n\t}{\n\t\t// Positive numbers (behaves like Rsh)\n\t\t{\"0x0\", 0, \"0x0\"},\n\t\t{\"0x0\", 1, \"0x0\"},\n\t\t{\"0x1\", 0, \"0x1\"},\n\t\t{\"0x1\", 1, \"0x0\"},\n\t\t{\"0x31337\", 0, \"0x31337\"},\n\t\t{\"0x31337\", 4, \"0x3133\"},\n\t\t{\"0x31337\", 8, \"0x313\"},\n\t\t{\"0x31337\", 16, \"0x3\"},\n\t\t{\"0x10000000000000000\", 64, \"0x1\"}, // 2^64 \u003e\u003e 64\n\n\t\t// // Numbers with MSB set (negative numbers in two's complement)\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 4, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// Large positive number close to max value\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 1, \"0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 2, \"0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 64, \"0x7fffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 128, \"0x7fffffffffffffffffffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 192, \"0x7fffffffffffffff\"},\n\t\t{\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 255, \"0x0\"},\n\n\t\t// Specific cases\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000000\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\t\t{\"0x8000000000000000000000000000000000000000000000000000000000000001\", 1, \"0xc000000000000000000000000000000000000000000000000000000000000000\"},\n\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 65, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 127, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 129, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 193, \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"},\n\n\t\t// n \u003e 256\n\t\t{\"0x1\", 257, \"0x0\"},\n\t\t{\"0x31337\", 300, \"0x0\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\twant := MustFromHex(tt.want)\n\n\t\tgot := new(Uint).SRsh(x, tt.y)\n\n\t\tif !got.Eq(want) {\n\t\t\tt.Errorf(\"SRsh(%s, %d) = %s, want %s\", tt.x, tt.y, got.String(), want.String())\n\t\t}\n\t}\n}\n"},{"name":"cmp.gno","body":"// cmp (or, comparisons) includes methods for comparing Uint instances.\n// These comparison functions cover a range of operations including equality checks, less than/greater than\n// evaluations, and specialized comparisons such as signed greater than. These are fundamental for logical\n// decision making based on Uint values.\npackage uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Cmp compares z and x and returns:\n//\n//\t-1 if z \u003c x\n//\t 0 if z == x\n//\t+1 if z \u003e x\nfunc (z *Uint) Cmp(x *Uint) (r int) {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\td0, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\td1, carry := bits.Sub64(z.arr[1], x.arr[1], carry)\n\td2, carry := bits.Sub64(z.arr[2], x.arr[2], carry)\n\td3, carry := bits.Sub64(z.arr[3], x.arr[3], carry)\n\tif carry == 1 {\n\t\treturn -1\n\t}\n\tif d0|d1|d2|d3 == 0 {\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n// IsZero returns true if z == 0\nfunc (z *Uint) IsZero() bool {\n\treturn (z.arr[0] | z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Sign returns:\n//\n//\t-1 if z \u003c 0\n//\t 0 if z == 0\n//\t+1 if z \u003e 0\n//\n// Where z is interpreted as a two's complement signed number\nfunc (z *Uint) Sign() int {\n\tif z.IsZero() {\n\t\treturn 0\n\t}\n\tif z.arr[3] \u003c 0x8000000000000000 {\n\t\treturn 1\n\t}\n\treturn -1\n}\n\n// LtUint64 returns true if z is smaller than n\nfunc (z *Uint) LtUint64(n uint64) bool {\n\treturn z.arr[0] \u003c n \u0026\u0026 (z.arr[1]|z.arr[2]|z.arr[3]) == 0\n}\n\n// GtUint64 returns true if z is larger than n\nfunc (z *Uint) GtUint64(n uint64) bool {\n\treturn z.arr[0] \u003e n || (z.arr[1]|z.arr[2]|z.arr[3]) != 0\n}\n\n// Lt returns true if z \u003c x\nfunc (z *Uint) Lt(x *Uint) bool {\n\t// z \u003c x \u003c=\u003e z - x \u003c 0 i.e. when subtraction overflows.\n\t_, carry := bits.Sub64(z.arr[0], x.arr[0], 0)\n\t_, carry = bits.Sub64(z.arr[1], x.arr[1], carry)\n\t_, carry = bits.Sub64(z.arr[2], x.arr[2], carry)\n\t_, carry = bits.Sub64(z.arr[3], x.arr[3], carry)\n\n\treturn carry != 0\n}\n\n// Gt returns true if z \u003e x\nfunc (z *Uint) Gt(x *Uint) bool {\n\treturn x.Lt(z)\n}\n\n// Lte returns true if z \u003c= x\nfunc (z *Uint) Lte(x *Uint) bool {\n\tcond1 := z.Lt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Gte returns true if z \u003e= x\nfunc (z *Uint) Gte(x *Uint) bool {\n\tcond1 := z.Gt(x)\n\tcond2 := z.Eq(x)\n\n\tif cond1 || cond2 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Eq returns true if z == x\nfunc (z *Uint) Eq(x *Uint) bool {\n\treturn (z.arr[0] == x.arr[0]) \u0026\u0026 (z.arr[1] == x.arr[1]) \u0026\u0026 (z.arr[2] == x.arr[2]) \u0026\u0026 (z.arr[3] == x.arr[3])\n}\n\n// Neq returns true if z != x\nfunc (z *Uint) Neq(x *Uint) bool {\n\treturn !z.Eq(x)\n}\n\n// Sgt interprets z and x as signed integers, and returns\n// true if z \u003e x\nfunc (z *Uint) Sgt(x *Uint) bool {\n\tzSign := z.Sign()\n\txSign := x.Sign()\n\n\tswitch {\n\tcase zSign \u003e= 0 \u0026\u0026 xSign \u003c 0:\n\t\treturn true\n\tcase zSign \u003c 0 \u0026\u0026 xSign \u003e= 0:\n\t\treturn false\n\tdefault:\n\t\treturn z.Gt(x)\n\t}\n}\n"},{"name":"cmp_test.gno","body":"package uint256\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestSign(t *testing.T) {\n\ttests := []struct {\n\t\tinput *Uint\n\t\texpected int\n\t}{\n\t\t{\n\t\t\tinput: NewUint(0),\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(1),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x7fffffffffffffff),\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tinput: NewUint(0x8000000000000000),\n\t\t\texpected: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.input.String(), func(t *testing.T) {\n\t\t\tresult := tt.input.Sign()\n\t\t\tif result != tt.expected {\n\t\t\t\tt.Errorf(\"Sign() = %d; want %d\", result, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCmp(t *testing.T) {\n\ttests := []struct {\n\t\tx, y string\n\t\twant int\n\t}{\n\t\t{\"0\", \"0\", 0},\n\t\t{\"0\", \"1\", -1},\n\t\t{\"1\", \"0\", 1},\n\t\t{\"1\", \"1\", 0},\n\t\t{\"10\", \"10\", 0},\n\t\t{\"10\", \"11\", -1},\n\t\t{\"11\", \"10\", 1},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := MustFromDecimal(tc.x)\n\t\ty := MustFromDecimal(tc.y)\n\n\t\tgot := x.Cmp(y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"Cmp(%s, %s) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestIsZero(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0\", true},\n\t\t{\"1\", false},\n\t\t{\"10\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromDecimal(tt.x)\n\n\t\tgot := x.IsZero()\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsZero(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestLtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty uint64\n\t\twant bool\n\t}{\n\t\t{\"0\", 1, true},\n\t\t{\"1\", 0, false},\n\t\t{\"10\", 10, false},\n\t\t{\"0xffffffffffffffff\", 0, false},\n\t\t{\"0x10000000000000000\", 10000000000000000, false},\n\t}\n\n\tfor _, tc := range tests {\n\t\tx := parseTestString(t, tc.x)\n\n\t\tgot := x.LtUint64(tc.y)\n\t\tif got != tc.want {\n\t\t\tt.Errorf(\"LtUint64(%s, %d) = %v, want %v\", tc.x, tc.y, got, tc.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_GtUint64(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz string\n\t\tn uint64\n\t\twant bool\n\t}{\n\t\t{\n\t\t\tname: \"z \u003e n\",\n\t\t\tz: \"1\",\n\t\t\tn: 0,\n\t\t\twant: true,\n\t\t},\n\t\t{\n\t\t\tname: \"z \u003c n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t\t{\n\t\t\tname: \"z == n\",\n\t\t\tz: \"18446744073709551615\",\n\t\t\tn: 0xFFFFFFFFFFFFFFFF,\n\t\t\twant: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := MustFromDecimal(tt.z)\n\n\t\t\tif got := z.GtUint64(tt.n); got != tt.want {\n\t\t\t\tt.Errorf(\"Uint.GtUint64() = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSGT(t *testing.T) {\n\tx := MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\ty := MustFromHex(\"0x0\")\n\tactual := x.Sgt(y)\n\tif actual {\n\t\tt.Fatalf(\"Expected %v false\", actual)\n\t}\n\n\tx = MustFromHex(\"0x0\")\n\ty = MustFromHex(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\")\n\tactual = x.Sgt(y)\n\tif !actual {\n\t\tt.Fatalf(\"Expected %v true\", actual)\n\t}\n}\n\nfunc TestEq(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\ty string\n\t\twant bool\n\t}{\n\t\t{\"0xffffffffffffffff\", \"18446744073709551615\", true},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\", true},\n\t\t{\"0\", \"0\", true},\n\t\t{twoPow256Sub1, twoPow256Sub1, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := parseTestString(t, tt.x)\n\n\t\ty, err := FromDecimal(tt.y)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\n\t\tgot := x.Eq(y)\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"Eq(%s, %s) = %v, want %v\", tt.x, tt.y, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Lte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"10\", \"20\", true},\n\t\t{\"20\", \"10\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, err := FromDecimal(tt.z)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tx, err := FromDecimal(tt.x)\n\t\tif err != nil {\n\t\t\tt.Error(err)\n\t\t\tcontinue\n\t\t}\n\t\tif got := z.Lte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Lte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestUint_Gte(t *testing.T) {\n\ttests := []struct {\n\t\tz, x string\n\t\twant bool\n\t}{\n\t\t{\"20\", \"10\", true},\n\t\t{\"10\", \"20\", false},\n\t\t{\"10\", \"10\", true},\n\t\t{\"0\", \"0\", true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz := parseTestString(t, tt.z)\n\t\tx := parseTestString(t, tt.x)\n\n\t\tif got := z.Gte(x); got != tt.want {\n\t\t\tt.Errorf(\"Uint.Gte(%v, %v) = %v, want %v\", tt.z, tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc parseTestString(_ *testing.T, s string) *Uint {\n\tvar x *Uint\n\n\tif strings.HasPrefix(s, \"0x\") {\n\t\tx = MustFromHex(s)\n\t} else {\n\t\tx = MustFromDecimal(s)\n\t}\n\n\treturn x\n}\n"},{"name":"conversion.gno","body":"// conversions contains methods for converting Uint instances to other types and vice versa.\n// This includes conversions to and from basic types such as uint64 and int32, as well as string representations\n// and byte slices. Additionally, it covers marshaling and unmarshaling for JSON and other text formats.\npackage uint256\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Uint64 returns the lower 64-bits of z\nfunc (z *Uint) Uint64() uint64 {\n\treturn z.arr[0]\n}\n\n// Uint64WithOverflow returns the lower 64-bits of z and bool whether overflow occurred\nfunc (z *Uint) Uint64WithOverflow() (uint64, bool) {\n\treturn z.arr[0], (z.arr[1] | z.arr[2] | z.arr[3]) != 0\n}\n\n// SetUint64 sets z to the value x\nfunc (z *Uint) SetUint64(x uint64) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, x\n\treturn z\n}\n\n// IsUint64 reports whether z can be represented as a uint64.\nfunc (z *Uint) IsUint64() bool {\n\treturn (z.arr[1] | z.arr[2] | z.arr[3]) == 0\n}\n\n// Dec returns the decimal representation of z.\nfunc (z *Uint) Dec() string {\n\tif z.IsZero() {\n\t\treturn \"0\"\n\t}\n\tif z.IsUint64() {\n\t\treturn strconv.FormatUint(z.Uint64(), 10)\n\t}\n\n\t// The max uint64 value being 18446744073709551615, the largest\n\t// power-of-ten below that is 10000000000000000000.\n\t// When we do a DivMod using that number, the remainder that we\n\t// get back is the lower part of the output.\n\t//\n\t// The ascii-output of remainder will never exceed 19 bytes (since it will be\n\t// below 10000000000000000000).\n\t//\n\t// Algorithm example using 100 as divisor\n\t//\n\t// 12345 % 100 = 45 (rem)\n\t// 12345 / 100 = 123 (quo)\n\t// -\u003e output '45', continue iterate on 123\n\tvar (\n\t\t// out is 98 bytes long: 78 (max size of a string without leading zeroes,\n\t\t// plus slack so we can copy 19 bytes every iteration).\n\t\t// We init it with zeroes, because when strconv appends the ascii representations,\n\t\t// it will omit leading zeroes.\n\t\tout = []byte(\"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\")\n\t\tdivisor = NewUint(10000000000000000000) // 20 digits\n\t\ty = new(Uint).Set(z) // copy to avoid modifying z\n\t\tpos = len(out) // position to write to\n\t\tbuf = make([]byte, 0, 19) // buffer to write uint64:s to\n\t)\n\tfor {\n\t\t// Obtain Q and R for divisor\n\t\tvar quot Uint\n\t\trem := udivrem(quot.arr[:], y.arr[:], divisor)\n\t\ty.Set(\u0026quot) // Set Q for next loop\n\t\t// Convert the R to ascii representation\n\t\tbuf = strconv.AppendUint(buf[:0], rem.Uint64(), 10)\n\t\t// Copy in the ascii digits\n\t\tcopy(out[pos-len(buf):], buf)\n\t\tif y.IsZero() {\n\t\t\tbreak\n\t\t}\n\t\t// Move 19 digits left\n\t\tpos -= 19\n\t}\n\t// skip leading zeroes by only using the 'used size' of buf\n\treturn string(out[pos-len(buf):])\n}\n\nfunc (z *Uint) Scan(src interface{}) error {\n\tif src == nil {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tswitch src := src.(type) {\n\tcase string:\n\t\treturn z.scanScientificFromString(src)\n\tcase []byte:\n\t\treturn z.scanScientificFromString(string(src))\n\t}\n\treturn errors.New(\"default // unsupported type: can't convert to uint256.Uint\")\n}\n\nfunc (z *Uint) scanScientificFromString(src string) error {\n\tif len(src) == 0 {\n\t\tz.Clear()\n\t\treturn nil\n\t}\n\n\tidx := strings.IndexByte(src, 'e')\n\tif idx == -1 {\n\t\treturn z.SetFromDecimal(src)\n\t}\n\tif err := z.SetFromDecimal(src[:idx]); err != nil {\n\t\treturn err\n\t}\n\tif src[(idx+1):] == \"0\" {\n\t\treturn nil\n\t}\n\texp := new(Uint)\n\tif err := exp.SetFromDecimal(src[(idx + 1):]); err != nil {\n\t\treturn err\n\t}\n\tif exp.GtUint64(77) { // 10**78 is larger than 2**256\n\t\treturn ErrBig256Range\n\t}\n\texp.Exp(NewUint(10), exp)\n\tif _, overflow := z.MulOverflow(z, exp); overflow {\n\t\treturn ErrBig256Range\n\t}\n\treturn nil\n}\n\n// ToString returns the decimal string representation of z. It returns an empty string if z is nil.\n// OBS: doesn't exist from holiman's uint256\nfunc (z *Uint) String() string {\n\tif z == nil {\n\t\treturn \"\"\n\t}\n\n\treturn z.Dec()\n}\n\n// MarshalJSON implements json.Marshaler.\n// MarshalJSON marshals using the 'decimal string' representation. This is _not_ compatible\n// with big.Uint: big.Uint marshals into JSON 'native' numeric format.\n//\n// The JSON native format is, on some platforms, (e.g. javascript), limited to 53-bit large\n// integer space. Thus, U256 uses string-format, which is not compatible with\n// big.int (big.Uint refuses to unmarshal a string representation).\nfunc (z *Uint) MarshalJSON() ([]byte, error) {\n\treturn []byte(`\"` + z.Dec() + `\"`), nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler. UnmarshalJSON accepts either\n// - Quoted string: either hexadecimal OR decimal\n// - Not quoted string: only decimal\nfunc (z *Uint) UnmarshalJSON(input []byte) error {\n\tif len(input) \u003c 2 || input[0] != '\"' || input[len(input)-1] != '\"' {\n\t\t// if not quoted, it must be decimal\n\t\treturn z.fromDecimal(string(input))\n\t}\n\treturn z.UnmarshalText(input[1 : len(input)-1])\n}\n\n// MarshalText implements encoding.TextMarshaler\n// MarshalText marshals using the decimal representation (compatible with big.Uint)\nfunc (z *Uint) MarshalText() ([]byte, error) {\n\treturn []byte(z.Dec()), nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler. This method\n// can unmarshal either hexadecimal or decimal.\n// - For hexadecimal, the input _must_ be prefixed with 0x or 0X\nfunc (z *Uint) UnmarshalText(input []byte) error {\n\tif len(input) \u003e= 2 \u0026\u0026 input[0] == '0' \u0026\u0026 (input[1] == 'x' || input[1] == 'X') {\n\t\treturn z.fromHex(string(input))\n\t}\n\treturn z.fromDecimal(string(input))\n}\n\n// SetBytes interprets buf as the bytes of a big-endian unsigned\n// integer, sets z to that value, and returns z.\n// If buf is larger than 32 bytes, the last 32 bytes is used.\nfunc (z *Uint) SetBytes(buf []byte) *Uint {\n\tswitch l := len(buf); l {\n\tcase 0:\n\t\tz.Clear()\n\tcase 1:\n\t\tz.SetBytes1(buf)\n\tcase 2:\n\t\tz.SetBytes2(buf)\n\tcase 3:\n\t\tz.SetBytes3(buf)\n\tcase 4:\n\t\tz.SetBytes4(buf)\n\tcase 5:\n\t\tz.SetBytes5(buf)\n\tcase 6:\n\t\tz.SetBytes6(buf)\n\tcase 7:\n\t\tz.SetBytes7(buf)\n\tcase 8:\n\t\tz.SetBytes8(buf)\n\tcase 9:\n\t\tz.SetBytes9(buf)\n\tcase 10:\n\t\tz.SetBytes10(buf)\n\tcase 11:\n\t\tz.SetBytes11(buf)\n\tcase 12:\n\t\tz.SetBytes12(buf)\n\tcase 13:\n\t\tz.SetBytes13(buf)\n\tcase 14:\n\t\tz.SetBytes14(buf)\n\tcase 15:\n\t\tz.SetBytes15(buf)\n\tcase 16:\n\t\tz.SetBytes16(buf)\n\tcase 17:\n\t\tz.SetBytes17(buf)\n\tcase 18:\n\t\tz.SetBytes18(buf)\n\tcase 19:\n\t\tz.SetBytes19(buf)\n\tcase 20:\n\t\tz.SetBytes20(buf)\n\tcase 21:\n\t\tz.SetBytes21(buf)\n\tcase 22:\n\t\tz.SetBytes22(buf)\n\tcase 23:\n\t\tz.SetBytes23(buf)\n\tcase 24:\n\t\tz.SetBytes24(buf)\n\tcase 25:\n\t\tz.SetBytes25(buf)\n\tcase 26:\n\t\tz.SetBytes26(buf)\n\tcase 27:\n\t\tz.SetBytes27(buf)\n\tcase 28:\n\t\tz.SetBytes28(buf)\n\tcase 29:\n\t\tz.SetBytes29(buf)\n\tcase 30:\n\t\tz.SetBytes30(buf)\n\tcase 31:\n\t\tz.SetBytes31(buf)\n\tdefault:\n\t\tz.SetBytes32(buf[l-32:])\n\t}\n\treturn z\n}\n\n// SetBytes1 is identical to SetBytes(in[:1]), but panics is input is too short\nfunc (z *Uint) SetBytes1(in []byte) *Uint {\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(in[0])\n\treturn z\n}\n\n// SetBytes2 is identical to SetBytes(in[:2]), but panics is input is too short\nfunc (z *Uint) SetBytes2(in []byte) *Uint {\n\t_ = in[1] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\treturn z\n}\n\n// SetBytes3 is identical to SetBytes(in[:3]), but panics is input is too short\nfunc (z *Uint) SetBytes3(in []byte) *Uint {\n\t_ = in[2] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\treturn z\n}\n\n// SetBytes4 is identical to SetBytes(in[:4]), but panics is input is too short\nfunc (z *Uint) SetBytes4(in []byte) *Uint {\n\t_ = in[3] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\treturn z\n}\n\n// SetBytes5 is identical to SetBytes(in[:5]), but panics is input is too short\nfunc (z *Uint) SetBytes5(in []byte) *Uint {\n\t_ = in[4] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint40(in[0:5])\n\treturn z\n}\n\n// SetBytes6 is identical to SetBytes(in[:6]), but panics is input is too short\nfunc (z *Uint) SetBytes6(in []byte) *Uint {\n\t_ = in[5] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint48(in[0:6])\n\treturn z\n}\n\n// SetBytes7 is identical to SetBytes(in[:7]), but panics is input is too short\nfunc (z *Uint) SetBytes7(in []byte) *Uint {\n\t_ = in[6] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = bigEndianUint56(in[0:7])\n\treturn z\n}\n\n// SetBytes8 is identical to SetBytes(in[:8]), but panics is input is too short\nfunc (z *Uint) SetBytes8(in []byte) *Uint {\n\t_ = in[7] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\tz.arr[0] = binary.BigEndian.Uint64(in[0:8])\n\treturn z\n}\n\n// SetBytes9 is identical to SetBytes(in[:9]), but panics is input is too short\nfunc (z *Uint) SetBytes9(in []byte) *Uint {\n\t_ = in[8] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(in[0])\n\tz.arr[0] = binary.BigEndian.Uint64(in[1:9])\n\treturn z\n}\n\n// SetBytes10 is identical to SetBytes(in[:10]), but panics is input is too short\nfunc (z *Uint) SetBytes10(in []byte) *Uint {\n\t_ = in[9] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[2:10])\n\treturn z\n}\n\n// SetBytes11 is identical to SetBytes(in[:11]), but panics is input is too short\nfunc (z *Uint) SetBytes11(in []byte) *Uint {\n\t_ = in[10] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[0] = binary.BigEndian.Uint64(in[3:11])\n\treturn z\n}\n\n// SetBytes12 is identical to SetBytes(in[:12]), but panics is input is too short\nfunc (z *Uint) SetBytes12(in []byte) *Uint {\n\t_ = in[11] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[0] = binary.BigEndian.Uint64(in[4:12])\n\treturn z\n}\n\n// SetBytes13 is identical to SetBytes(in[:13]), but panics is input is too short\nfunc (z *Uint) SetBytes13(in []byte) *Uint {\n\t_ = in[12] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint40(in[0:5])\n\tz.arr[0] = binary.BigEndian.Uint64(in[5:13])\n\treturn z\n}\n\n// SetBytes14 is identical to SetBytes(in[:14]), but panics is input is too short\nfunc (z *Uint) SetBytes14(in []byte) *Uint {\n\t_ = in[13] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint48(in[0:6])\n\tz.arr[0] = binary.BigEndian.Uint64(in[6:14])\n\treturn z\n}\n\n// SetBytes15 is identical to SetBytes(in[:15]), but panics is input is too short\nfunc (z *Uint) SetBytes15(in []byte) *Uint {\n\t_ = in[14] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = bigEndianUint56(in[0:7])\n\tz.arr[0] = binary.BigEndian.Uint64(in[7:15])\n\treturn z\n}\n\n// SetBytes16 is identical to SetBytes(in[:16]), but panics is input is too short\nfunc (z *Uint) SetBytes16(in []byte) *Uint {\n\t_ = in[15] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3], z.arr[2] = 0, 0\n\tz.arr[1] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[0] = binary.BigEndian.Uint64(in[8:16])\n\treturn z\n}\n\n// SetBytes17 is identical to SetBytes(in[:17]), but panics is input is too short\nfunc (z *Uint) SetBytes17(in []byte) *Uint {\n\t_ = in[16] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(in[0])\n\tz.arr[1] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[0] = binary.BigEndian.Uint64(in[9:17])\n\treturn z\n}\n\n// SetBytes18 is identical to SetBytes(in[:18]), but panics is input is too short\nfunc (z *Uint) SetBytes18(in []byte) *Uint {\n\t_ = in[17] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[0] = binary.BigEndian.Uint64(in[10:18])\n\treturn z\n}\n\n// SetBytes19 is identical to SetBytes(in[:19]), but panics is input is too short\nfunc (z *Uint) SetBytes19(in []byte) *Uint {\n\t_ = in[18] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[1] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[0] = binary.BigEndian.Uint64(in[11:19])\n\treturn z\n}\n\n// SetBytes20 is identical to SetBytes(in[:20]), but panics is input is too short\nfunc (z *Uint) SetBytes20(in []byte) *Uint {\n\t_ = in[19] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[1] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[0] = binary.BigEndian.Uint64(in[12:20])\n\treturn z\n}\n\n// SetBytes21 is identical to SetBytes(in[:21]), but panics is input is too short\nfunc (z *Uint) SetBytes21(in []byte) *Uint {\n\t_ = in[20] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint40(in[0:5])\n\tz.arr[1] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[0] = binary.BigEndian.Uint64(in[13:21])\n\treturn z\n}\n\n// SetBytes22 is identical to SetBytes(in[:22]), but panics is input is too short\nfunc (z *Uint) SetBytes22(in []byte) *Uint {\n\t_ = in[21] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint48(in[0:6])\n\tz.arr[1] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[0] = binary.BigEndian.Uint64(in[14:22])\n\treturn z\n}\n\n// SetBytes23 is identical to SetBytes(in[:23]), but panics is input is too short\nfunc (z *Uint) SetBytes23(in []byte) *Uint {\n\t_ = in[22] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = bigEndianUint56(in[0:7])\n\tz.arr[1] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[0] = binary.BigEndian.Uint64(in[15:23])\n\treturn z\n}\n\n// SetBytes24 is identical to SetBytes(in[:24]), but panics is input is too short\nfunc (z *Uint) SetBytes24(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = 0\n\tz.arr[2] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[1] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[0] = binary.BigEndian.Uint64(in[16:24])\n\treturn z\n}\n\n// SetBytes25 is identical to SetBytes(in[:25]), but panics is input is too short\nfunc (z *Uint) SetBytes25(in []byte) *Uint {\n\t_ = in[24] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(in[0])\n\tz.arr[2] = binary.BigEndian.Uint64(in[1:9])\n\tz.arr[1] = binary.BigEndian.Uint64(in[9:17])\n\tz.arr[0] = binary.BigEndian.Uint64(in[17:25])\n\treturn z\n}\n\n// SetBytes26 is identical to SetBytes(in[:26]), but panics is input is too short\nfunc (z *Uint) SetBytes26(in []byte) *Uint {\n\t_ = in[25] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[0:2]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[2:10])\n\tz.arr[1] = binary.BigEndian.Uint64(in[10:18])\n\tz.arr[0] = binary.BigEndian.Uint64(in[18:26])\n\treturn z\n}\n\n// SetBytes27 is identical to SetBytes(in[:27]), but panics is input is too short\nfunc (z *Uint) SetBytes27(in []byte) *Uint {\n\t_ = in[26] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint16(in[1:3])) | uint64(in[0])\u003c\u003c16\n\tz.arr[2] = binary.BigEndian.Uint64(in[3:11])\n\tz.arr[1] = binary.BigEndian.Uint64(in[11:19])\n\tz.arr[0] = binary.BigEndian.Uint64(in[19:27])\n\treturn z\n}\n\n// SetBytes28 is identical to SetBytes(in[:28]), but panics is input is too short\nfunc (z *Uint) SetBytes28(in []byte) *Uint {\n\t_ = in[27] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = uint64(binary.BigEndian.Uint32(in[0:4]))\n\tz.arr[2] = binary.BigEndian.Uint64(in[4:12])\n\tz.arr[1] = binary.BigEndian.Uint64(in[12:20])\n\tz.arr[0] = binary.BigEndian.Uint64(in[20:28])\n\treturn z\n}\n\n// SetBytes29 is identical to SetBytes(in[:29]), but panics is input is too short\nfunc (z *Uint) SetBytes29(in []byte) *Uint {\n\t_ = in[23] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint40(in[0:5])\n\tz.arr[2] = binary.BigEndian.Uint64(in[5:13])\n\tz.arr[1] = binary.BigEndian.Uint64(in[13:21])\n\tz.arr[0] = binary.BigEndian.Uint64(in[21:29])\n\treturn z\n}\n\n// SetBytes30 is identical to SetBytes(in[:30]), but panics is input is too short\nfunc (z *Uint) SetBytes30(in []byte) *Uint {\n\t_ = in[29] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint48(in[0:6])\n\tz.arr[2] = binary.BigEndian.Uint64(in[6:14])\n\tz.arr[1] = binary.BigEndian.Uint64(in[14:22])\n\tz.arr[0] = binary.BigEndian.Uint64(in[22:30])\n\treturn z\n}\n\n// SetBytes31 is identical to SetBytes(in[:31]), but panics is input is too short\nfunc (z *Uint) SetBytes31(in []byte) *Uint {\n\t_ = in[30] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = bigEndianUint56(in[0:7])\n\tz.arr[2] = binary.BigEndian.Uint64(in[7:15])\n\tz.arr[1] = binary.BigEndian.Uint64(in[15:23])\n\tz.arr[0] = binary.BigEndian.Uint64(in[23:31])\n\treturn z\n}\n\n// SetBytes32 sets z to the value of the big-endian 256-bit unsigned integer in.\nfunc (z *Uint) SetBytes32(in []byte) *Uint {\n\t_ = in[31] // bounds check hint to compiler; see golang.org/issue/14808\n\tz.arr[3] = binary.BigEndian.Uint64(in[0:8])\n\tz.arr[2] = binary.BigEndian.Uint64(in[8:16])\n\tz.arr[1] = binary.BigEndian.Uint64(in[16:24])\n\tz.arr[0] = binary.BigEndian.Uint64(in[24:32])\n\treturn z\n}\n\n// Utility methods that are \"missing\" among the bigEndian.UintXX methods.\n\n// bigEndianUint40 returns the uint64 value represented by the 5 bytes in big-endian order.\nfunc bigEndianUint40(b []byte) uint64 {\n\t_ = b[4] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[4]) | uint64(b[3])\u003c\u003c8 | uint64(b[2])\u003c\u003c16 | uint64(b[1])\u003c\u003c24 |\n\t\tuint64(b[0])\u003c\u003c32\n}\n\n// bigEndianUint56 returns the uint64 value represented by the 7 bytes in big-endian order.\nfunc bigEndianUint56(b []byte) uint64 {\n\t_ = b[6] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[6]) | uint64(b[5])\u003c\u003c8 | uint64(b[4])\u003c\u003c16 | uint64(b[3])\u003c\u003c24 |\n\t\tuint64(b[2])\u003c\u003c32 | uint64(b[1])\u003c\u003c40 | uint64(b[0])\u003c\u003c48\n}\n\n// bigEndianUint48 returns the uint64 value represented by the 6 bytes in big-endian order.\nfunc bigEndianUint48(b []byte) uint64 {\n\t_ = b[5] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[5]) | uint64(b[4])\u003c\u003c8 | uint64(b[3])\u003c\u003c16 | uint64(b[2])\u003c\u003c24 |\n\t\tuint64(b[1])\u003c\u003c32 | uint64(b[0])\u003c\u003c40\n}\n"},{"name":"conversion_test.gno","body":"package uint256\n\nimport \"testing\"\n\nfunc TestIsUint64(t *testing.T) {\n\ttests := []struct {\n\t\tx string\n\t\twant bool\n\t}{\n\t\t{\"0x0\", true},\n\t\t{\"0x1\", true},\n\t\t{\"0x10\", true},\n\t\t{\"0xffffffffffffffff\", true},\n\t\t{\"0x10000000000000000\", false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tx := MustFromHex(tt.x)\n\t\tgot := x.IsUint64()\n\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"IsUint64(%s) = %v, want %v\", tt.x, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestDec(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tz Uint\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"zero\",\n\t\t\tz: Uint{arr: [4]uint64{0, 0, 0, 0}},\n\t\t\twant: \"0\",\n\t\t},\n\t\t{\n\t\t\tname: \"less than 20 digits\",\n\t\t\tz: Uint{arr: [4]uint64{1234567890, 0, 0, 0}},\n\t\t\twant: \"1234567890\",\n\t\t},\n\t\t{\n\t\t\tname: \"max possible value\",\n\t\t\tz: Uint{arr: [4]uint64{^uint64(0), ^uint64(0), ^uint64(0), ^uint64(0)}},\n\t\t\twant: twoPow256Sub1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tresult := tt.z.Dec()\n\t\t\tif result != tt.want {\n\t\t\t\tt.Errorf(\"Dec(%v) = %s, want %s\", tt.z, result, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUint_Scan(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tinput interface{}\n\t\twant *Uint\n\t\twantErr bool\n\t}{\n\t\t{\n\t\t\tname: \"nil\",\n\t\t\tinput: nil,\n\t\t\twant: NewUint(0),\n\t\t},\n\t\t{\n\t\t\tname: \"valid scientific notation\",\n\t\t\tinput: \"1e4\",\n\t\t\twant: NewUint(10000),\n\t\t},\n\t\t{\n\t\t\tname: \"valid decimal string\",\n\t\t\tinput: \"12345\",\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"valid byte slice\",\n\t\t\tinput: []byte(\"12345\"),\n\t\t\twant: NewUint(12345),\n\t\t},\n\t\t{\n\t\t\tname: \"invalid string\",\n\t\t\tinput: \"invalid\",\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"out of range\",\n\t\t\tinput: \"115792089237316195423570985008687907853269984665640564039457584007913129639936\", // 2^256\n\t\t\twantErr: true,\n\t\t},\n\t\t{\n\t\t\tname: \"unsupported type\",\n\t\t\tinput: 123,\n\t\t\twantErr: true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tz := new(Uint)\n\t\t\terr := z.Scan(tt.input)\n\n\t\t\tif tt.wantErr {\n\t\t\t\tif err == nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Errorf(\"Scan() error = %v, wantErr %v\", err, tt.wantErr)\n\t\t\t\t}\n\t\t\t\tif !z.Eq(tt.want) {\n\t\t\t\t\tt.Errorf(\"Scan() = %v, want %v\", z, tt.want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSetBytes(t *testing.T) {\n\ttests := []struct {\n\t\tinput []byte\n\t\texpected string\n\t}{\n\t\t{[]byte{}, \"0\"},\n\t\t{[]byte{0x01}, \"1\"},\n\t\t{[]byte{0x12, 0x34}, \"4660\"},\n\t\t{[]byte{0x12, 0x34, 0x56}, \"1193046\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78}, \"305419896\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a}, \"78187493530\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"20015998343868\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"5124095576030430\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"1311768467463790320\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"335812727670730321938\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"85968058283706962416180\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"22007822920628982378542166\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"5634002667681019488906794616\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"1442304682926340989160139421850\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"369229998829143293224995691993788\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"94522879700260683065598897150409950\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"24197857203266734864793317670504947440\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"6194651444036284125387089323649266544658\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"1585830769673288736099094866854212235432500\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"405972677036361916441368285914678332270720086\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"103929005321308650608990281194157653061304342136\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"26605825362255014555901511985704359183693911586970\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"6811091292737283726310787068340315951025641366264508\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"1743639370940744633935561489495120883462564189763714270\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"446371678960830626287503741310750946166416432579510853360\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12}, \"114271149813972640329600957775552242218602606740354778460178\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34}, \"29253414352376995924377845190541374007962267325530823285805620\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56}, \"7488874074208510956640728368778591746038340435335890761166238806\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78}, \"1917151762997378804900026462407319486985815151445988034858557134456\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a}, \"490790851327328974054406774376273788668368678770172936923790626420890\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc}, \"125642457939796217357928134240326089899102381765164271852490400363748028\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde}, \"32164469232587831643629602365523479014170209731882053594237542493119495390\"},\n\t\t{[]byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}, \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t\t// over 32 bytes (last 32 bytes are used)\n\t\t{append([]byte{0xff}, []byte{0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0}...), \"8234104123542484900769178205574010627627573691361805720124810878238590820080\"},\n\t}\n\n\tfor _, test := range tests {\n\t\tz := new(Uint)\n\t\tz.SetBytes(test.input)\n\t\texpected := MustFromDecimal(test.expected)\n\t\tif z.Cmp(expected) != 0 {\n\t\t\tt.Errorf(\"SetBytes(%x) = %s, expected %s\", test.input, z.String(), test.expected)\n\t\t}\n\t}\n}\n"},{"name":"error.gno","body":"package uint256\n\nimport (\n\t\"errors\"\n)\n\nvar (\n\tErrEmptyString = errors.New(\"empty hex string\")\n\tErrSyntax = errors.New(\"invalid hex string\")\n\tErrRange = errors.New(\"number out of range\")\n\tErrMissingPrefix = errors.New(\"hex string without 0x prefix\")\n\tErrEmptyNumber = errors.New(\"hex string \\\"0x\\\"\")\n\tErrLeadingZero = errors.New(\"hex number with leading zero digits\")\n\tErrBig256Range = errors.New(\"hex number \u003e 256 bits\")\n\tErrBadBufferLength = errors.New(\"bad ssz buffer length\")\n\tErrBadEncodedLength = errors.New(\"bad ssz encoded length\")\n\tErrInvalidBase = errors.New(\"invalid base\")\n\tErrInvalidBitSize = errors.New(\"invalid bit size\")\n)\n\ntype u256Error struct {\n\tfn string // function name\n\tinput string\n\terr error\n}\n\nfunc (e *u256Error) Error() string {\n\treturn e.fn + \": \" + e.input + \": \" + e.err.Error()\n}\n\nfunc (e *u256Error) Unwrap() error {\n\treturn e.err\n}\n\nfunc errEmptyString(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyString}\n}\n\nfunc errSyntax(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrSyntax}\n}\n\nfunc errMissingPrefix(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrMissingPrefix}\n}\n\nfunc errEmptyNumber(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrEmptyNumber}\n}\n\nfunc errLeadingZero(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrLeadingZero}\n}\n\nfunc errRange(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrRange}\n}\n\nfunc errBig256Range(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBig256Range}\n}\n\nfunc errBadBufferLength(fn, input string) error {\n\treturn \u0026u256Error{fn: fn, input: input, err: ErrBadBufferLength}\n}\n\nfunc errInvalidBase(fn string, base int) error {\n\treturn \u0026u256Error{fn: fn, input: string(base), err: ErrInvalidBase}\n}\n\nfunc errInvalidBitSize(fn string, bitSize int) error {\n\treturn \u0026u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize}\n}\n"},{"name":"mod.gno","body":"package uint256\n\nimport (\n\t\"math/bits\"\n)\n\n// Some utility functions\n\n// Reciprocal computes a 320-bit value representing 1/m\n//\n// Notes:\n// - specialized for m.arr[3] != 0, hence limited to 2^192 \u003c= m \u003c 2^256\n// - returns zero if m.arr[3] == 0\n// - starts with a 32-bit division, refines with newton-raphson iterations\nfunc Reciprocal(m *Uint) (mu [5]uint64) {\n\tif m.arr[3] == 0 {\n\t\treturn mu\n\t}\n\n\ts := bits.LeadingZeros64(m.arr[3]) // Replace with leadingZeros(m) for general case\n\tp := 255 - s // floor(log_2(m)), m\u003e0\n\n\t// 0 or a power of 2?\n\n\t// Check if at least one bit is set in m.arr[2], m.arr[1] or m.arr[0],\n\t// or at least two bits in m.arr[3]\n\n\tif m.arr[0]|m.arr[1]|m.arr[2]|(m.arr[3]\u0026(m.arr[3]-1)) == 0 {\n\n\t\tmu[4] = ^uint64(0) \u003e\u003e uint(p\u002663)\n\t\tmu[3] = ^uint64(0)\n\t\tmu[2] = ^uint64(0)\n\t\tmu[1] = ^uint64(0)\n\t\tmu[0] = ^uint64(0)\n\n\t\treturn mu\n\t}\n\n\t// Maximise division precision by left-aligning divisor\n\n\tvar (\n\t\ty Uint // left-aligned copy of m\n\t\tr0 uint32 // estimate of 2^31/y\n\t)\n\n\ty.Lsh(m, uint(s)) // 1/2 \u003c y \u003c 1\n\n\t// Extract most significant 32 bits\n\n\tyh := uint32(y.arr[3] \u003e\u003e 32)\n\n\tif yh == 0x80000000 { // Avoid overflow in division\n\t\tr0 = 0xffffffff\n\t} else {\n\t\tr0, _ = bits.Div32(0x80000000, 0, yh)\n\t}\n\n\t// First iteration: 32 -\u003e 64\n\n\tt1 := uint64(r0) // 2^31/y\n\tt1 *= t1 // 2^62/y^2\n\tt1, _ = bits.Mul64(t1, y.arr[3]) // 2^62/y^2 * 2^64/y / 2^64 = 2^62/y\n\n\tr1 := uint64(r0) \u003c\u003c 32 // 2^63/y\n\tr1 -= t1 // 2^63/y - 2^62/y = 2^62/y\n\tr1 *= 2 // 2^63/y\n\n\tif (r1 | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr1 = ^uint64(0)\n\t}\n\n\t// Second iteration: 64 -\u003e 128\n\n\t// square: 2^126/y^2\n\ta2h, a2l := bits.Mul64(r1, r1)\n\n\t// multiply by y: e2h:e2l:b2h = 2^126/y^2 * 2^128/y / 2^128 = 2^126/y\n\tb2h, _ := bits.Mul64(a2l, y.arr[2])\n\tc2h, c2l := bits.Mul64(a2l, y.arr[3])\n\td2h, d2l := bits.Mul64(a2h, y.arr[2])\n\te2h, e2l := bits.Mul64(a2h, y.arr[3])\n\n\tb2h, c := bits.Add64(b2h, c2l, 0)\n\te2l, c = bits.Add64(e2l, c2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t_, c = bits.Add64(b2h, d2l, 0)\n\te2l, c = bits.Add64(e2l, d2h, c)\n\te2h, _ = bits.Add64(e2h, 0, c)\n\n\t// subtract: t2h:t2l = 2^127/y - 2^126/y = 2^126/y\n\tt2l, b := bits.Sub64(0, e2l, 0)\n\tt2h, _ := bits.Sub64(r1, e2h, b)\n\n\t// double: r2h:r2l = 2^127/y\n\tr2l, c := bits.Add64(t2l, t2l, 0)\n\tr2h, _ := bits.Add64(t2h, t2h, c)\n\n\tif (r2h | r2l | (y.arr[3] \u003c\u003c 1)) == 0 {\n\t\tr2h = ^uint64(0)\n\t\tr2l = ^uint64(0)\n\t}\n\n\t// Third iteration: 128 -\u003e 192\n\n\t// square r2 (keep 256 bits): 2^190/y^2\n\ta3h, a3l := bits.Mul64(r2l, r2l)\n\tb3h, b3l := bits.Mul64(r2l, r2h)\n\tc3h, c3l := bits.Mul64(r2h, r2h)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\ta3h, c = bits.Add64(a3h, b3l, 0)\n\tc3l, c = bits.Add64(c3l, b3h, c)\n\tc3h, _ = bits.Add64(c3h, 0, c)\n\n\t// multiply by y: q = 2^190/y^2 * 2^192/y / 2^192 = 2^190/y\n\n\tx0 := a3l\n\tx1 := a3h\n\tx2 := c3l\n\tx3 := c3h\n\n\tvar q0, q1, q2, q3, q4, t0 uint64\n\n\tq0, _ = bits.Mul64(x2, y.arr[0])\n\tq1, t0 = bits.Mul64(x3, y.arr[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x1, y.arr[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x3, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x3, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, y.arr[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x3, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\t// subtract: t3 = 2^191/y - 2^190/y = 2^190/y\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\tt3l, b := bits.Sub64(0, q2, b)\n\tt3m, b := bits.Sub64(r2l, q3, b)\n\tt3h, _ := bits.Sub64(r2h, q4, b)\n\n\t// double: r3 = 2^191/y\n\tr3l, c := bits.Add64(t3l, t3l, 0)\n\tr3m, c := bits.Add64(t3m, t3m, c)\n\tr3h, _ := bits.Add64(t3h, t3h, c)\n\n\t// Fourth iteration: 192 -\u003e 320\n\n\t// square r3\n\n\ta4h, a4l := bits.Mul64(r3l, r3l)\n\tb4h, b4l := bits.Mul64(r3l, r3m)\n\tc4h, c4l := bits.Mul64(r3l, r3h)\n\td4h, d4l := bits.Mul64(r3m, r3m)\n\te4h, e4l := bits.Mul64(r3m, r3h)\n\tf4h, f4l := bits.Mul64(r3h, r3h)\n\n\tb4h, c = bits.Add64(b4h, c4l, 0)\n\te4l, c = bits.Add64(e4l, c4h, c)\n\te4h, _ = bits.Add64(e4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\ta4h, c = bits.Add64(a4h, b4l, 0)\n\td4l, c = bits.Add64(d4l, b4h, c)\n\td4h, c = bits.Add64(d4h, e4l, c)\n\tf4l, c = bits.Add64(f4l, e4h, c)\n\tf4h, _ = bits.Add64(f4h, 0, c)\n\n\t// multiply by y\n\n\tx1, x0 = bits.Mul64(d4h, y.arr[0])\n\tx3, x2 = bits.Mul64(f4h, y.arr[0])\n\tt1, t0 = bits.Mul64(f4l, y.arr[0])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx3, _ = bits.Add64(x3, 0, c)\n\n\tt1, t0 = bits.Mul64(d4h, y.arr[1])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tx4, t0 := bits.Mul64(f4h, y.arr[1])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[1])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[1])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx4, _ = bits.Add64(x4, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[2])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[2])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tx5, t0 := bits.Mul64(f4h, y.arr[2])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[2])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[2])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx5, _ = bits.Add64(x5, 0, c)\n\n\tt1, t0 = bits.Mul64(a4h, y.arr[3])\n\tx1, c = bits.Add64(x1, t0, 0)\n\tx2, c = bits.Add64(x2, t1, c)\n\tt1, t0 = bits.Mul64(d4h, y.arr[3])\n\tx3, c = bits.Add64(x3, t0, c)\n\tx4, c = bits.Add64(x4, t1, c)\n\tx6, t0 := bits.Mul64(f4h, y.arr[3])\n\tx5, c = bits.Add64(x5, t0, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\tt1, t0 = bits.Mul64(a4l, y.arr[3])\n\tx0, c = bits.Add64(x0, t0, 0)\n\tx1, c = bits.Add64(x1, t1, c)\n\tt1, t0 = bits.Mul64(d4l, y.arr[3])\n\tx2, c = bits.Add64(x2, t0, c)\n\tx3, c = bits.Add64(x3, t1, c)\n\tt1, t0 = bits.Mul64(f4l, y.arr[3])\n\tx4, c = bits.Add64(x4, t0, c)\n\tx5, c = bits.Add64(x5, t1, c)\n\tx6, _ = bits.Add64(x6, 0, c)\n\n\t// subtract\n\t_, b = bits.Sub64(0, x0, 0)\n\t_, b = bits.Sub64(0, x1, b)\n\tr4l, b := bits.Sub64(0, x2, b)\n\tr4k, b := bits.Sub64(0, x3, b)\n\tr4j, b := bits.Sub64(r3l, x4, b)\n\tr4i, b := bits.Sub64(r3m, x5, b)\n\tr4h, _ := bits.Sub64(r3h, x6, b)\n\n\t// Multiply candidate for 1/4y by y, with full precision\n\n\tx0 = r4l\n\tx1 = r4k\n\tx2 = r4j\n\tx3 = r4i\n\tx4 = r4h\n\n\tq1, q0 = bits.Mul64(x0, y.arr[0])\n\tq3, q2 = bits.Mul64(x2, y.arr[0])\n\tq5, q4 := bits.Mul64(x4, y.arr[0])\n\n\tt1, t0 = bits.Mul64(x1, y.arr[0])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[0])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[1])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[1])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq6, t0 := bits.Mul64(x4, y.arr[1])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[1])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[1])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq6, _ = bits.Add64(q6, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[2])\n\tq2, c = bits.Add64(q2, t0, 0)\n\tq3, c = bits.Add64(q3, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[2])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, c = bits.Add64(q5, t1, c)\n\tq7, t0 := bits.Mul64(x4, y.arr[2])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[2])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[2])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq7, _ = bits.Add64(q7, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, y.arr[3])\n\tq3, c = bits.Add64(q3, t0, 0)\n\tq4, c = bits.Add64(q4, t1, c)\n\tt1, t0 = bits.Mul64(x2, y.arr[3])\n\tq5, c = bits.Add64(q5, t0, c)\n\tq6, c = bits.Add64(q6, t1, c)\n\tq8, t0 := bits.Mul64(x4, y.arr[3])\n\tq7, c = bits.Add64(q7, t0, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, y.arr[3])\n\tq4, c = bits.Add64(q4, t0, 0)\n\tq5, c = bits.Add64(q5, t1, c)\n\tt1, t0 = bits.Mul64(x3, y.arr[3])\n\tq6, c = bits.Add64(q6, t0, c)\n\tq7, c = bits.Add64(q7, t1, c)\n\tq8, _ = bits.Add64(q8, 0, c)\n\n\t// Final adjustment\n\n\t// subtract q from 1/4\n\t_, b = bits.Sub64(0, q0, 0)\n\t_, b = bits.Sub64(0, q1, b)\n\t_, b = bits.Sub64(0, q2, b)\n\t_, b = bits.Sub64(0, q3, b)\n\t_, b = bits.Sub64(0, q4, b)\n\t_, b = bits.Sub64(0, q5, b)\n\t_, b = bits.Sub64(0, q6, b)\n\t_, b = bits.Sub64(0, q7, b)\n\t_, b = bits.Sub64(uint64(1)\u003c\u003c62, q8, b)\n\n\t// decrement the result\n\tx0, t := bits.Sub64(r4l, 1, 0)\n\tx1, t = bits.Sub64(r4k, 0, t)\n\tx2, t = bits.Sub64(r4j, 0, t)\n\tx3, t = bits.Sub64(r4i, 0, t)\n\tx4, _ = bits.Sub64(r4h, 0, t)\n\n\t// commit the decrement if the subtraction underflowed (reciprocal was too large)\n\tif b != 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\t// Shift to correct bit alignment, truncating excess bits\n\n\tp = (p \u0026 63) - 1\n\n\tx0, c = bits.Add64(r4l, r4l, 0)\n\tx1, c = bits.Add64(r4k, r4k, c)\n\tx2, c = bits.Add64(r4j, r4j, c)\n\tx3, c = bits.Add64(r4i, r4i, c)\n\tx4, _ = bits.Add64(r4h, r4h, c)\n\n\tif p \u003c 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t\tp = 0 // avoid negative shift below\n\t}\n\n\t{\n\t\tr := uint(p) // right shift\n\t\tl := uint(64 - r) // left shift\n\n\t\tx0 = (r4l \u003e\u003e r) | (r4k \u003c\u003c l)\n\t\tx1 = (r4k \u003e\u003e r) | (r4j \u003c\u003c l)\n\t\tx2 = (r4j \u003e\u003e r) | (r4i \u003c\u003c l)\n\t\tx3 = (r4i \u003e\u003e r) | (r4h \u003c\u003c l)\n\t\tx4 = (r4h \u003e\u003e r)\n\t}\n\n\tif p \u003e 0 {\n\t\tr4h, r4i, r4j, r4k, r4l = x4, x3, x2, x1, x0\n\t}\n\n\tmu[0] = r4l\n\tmu[1] = r4k\n\tmu[2] = r4j\n\tmu[3] = r4i\n\tmu[4] = r4h\n\n\treturn mu\n}\n\n// reduce4 computes the least non-negative residue of x modulo m\n//\n// requires a four-word modulus (m.arr[3] \u003e 1) and its inverse (mu)\nfunc reduce4(x [8]uint64, m *Uint, mu [5]uint64) (z Uint) {\n\t// NB: Most variable names in the comments match the pseudocode for\n\t// \tBarrett reduction in the Handbook of Applied Cryptography.\n\n\t// q1 = x/2^192\n\n\tx0 := x[3]\n\tx1 := x[4]\n\tx2 := x[5]\n\tx3 := x[6]\n\tx4 := x[7]\n\n\t// q2 = q1 * mu; q3 = q2 / 2^320\n\n\tvar q0, q1, q2, q3, q4, q5, t0, t1, c uint64\n\n\tq0, _ = bits.Mul64(x3, mu[0])\n\tq1, t0 = bits.Mul64(x4, mu[0])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, _ = bits.Add64(q1, 0, c)\n\n\tt1, _ = bits.Mul64(x2, mu[1])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tq2, t0 = bits.Mul64(x4, mu[1])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x3, mu[1])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq2, _ = bits.Add64(q2, 0, c)\n\n\tt1, t0 = bits.Mul64(x2, mu[2])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tq3, t0 = bits.Mul64(x4, mu[2])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x1, mu[2])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x3, mu[2])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq3, _ = bits.Add64(q3, 0, c)\n\n\tt1, _ = bits.Mul64(x0, mu[3])\n\tq0, c = bits.Add64(q0, t1, 0)\n\tt1, t0 = bits.Mul64(x2, mu[3])\n\tq1, c = bits.Add64(q1, t0, c)\n\tq2, c = bits.Add64(q2, t1, c)\n\tq4, t0 = bits.Mul64(x4, mu[3])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[3])\n\tq0, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[3])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq4, _ = bits.Add64(q4, 0, c)\n\n\tt1, t0 = bits.Mul64(x0, mu[4])\n\t_, c = bits.Add64(q0, t0, 0)\n\tq1, c = bits.Add64(q1, t1, c)\n\tt1, t0 = bits.Mul64(x2, mu[4])\n\tq2, c = bits.Add64(q2, t0, c)\n\tq3, c = bits.Add64(q3, t1, c)\n\tq5, t0 = bits.Mul64(x4, mu[4])\n\tq4, c = bits.Add64(q4, t0, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\tt1, t0 = bits.Mul64(x1, mu[4])\n\tq1, c = bits.Add64(q1, t0, 0)\n\tq2, c = bits.Add64(q2, t1, c)\n\tt1, t0 = bits.Mul64(x3, mu[4])\n\tq3, c = bits.Add64(q3, t0, c)\n\tq4, c = bits.Add64(q4, t1, c)\n\tq5, _ = bits.Add64(q5, 0, c)\n\n\t// Drop the fractional part of q3\n\n\tq0 = q1\n\tq1 = q2\n\tq2 = q3\n\tq3 = q4\n\tq4 = q5\n\n\t// r1 = x mod 2^320\n\n\tx0 = x[0]\n\tx1 = x[1]\n\tx2 = x[2]\n\tx3 = x[3]\n\tx4 = x[4]\n\n\t// r2 = q3 * m mod 2^320\n\n\tvar r0, r1, r2, r3, r4 uint64\n\n\tr4, r3 = bits.Mul64(q0, m.arr[3])\n\t_, t0 = bits.Mul64(q1, m.arr[3])\n\tr4, _ = bits.Add64(r4, t0, 0)\n\n\tt1, r2 = bits.Mul64(q0, m.arr[2])\n\tr3, c = bits.Add64(r3, t1, 0)\n\t_, t0 = bits.Mul64(q2, m.arr[2])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[2])\n\tr3, c = bits.Add64(r3, t0, 0)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, r1 = bits.Mul64(q0, m.arr[1])\n\tr2, c = bits.Add64(r2, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[1])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[1])\n\tr2, c = bits.Add64(r2, t0, 0)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q3, m.arr[1])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, r0 = bits.Mul64(q0, m.arr[0])\n\tr1, c = bits.Add64(r1, t1, 0)\n\tt1, t0 = bits.Mul64(q2, m.arr[0])\n\tr2, c = bits.Add64(r2, t0, c)\n\tr3, c = bits.Add64(r3, t1, c)\n\t_, t0 = bits.Mul64(q4, m.arr[0])\n\tr4, _ = bits.Add64(r4, t0, c)\n\n\tt1, t0 = bits.Mul64(q1, m.arr[0])\n\tr1, c = bits.Add64(r1, t0, 0)\n\tr2, c = bits.Add64(r2, t1, c)\n\tt1, t0 = bits.Mul64(q3, m.arr[0])\n\tr3, c = bits.Add64(r3, t0, c)\n\tr4, _ = bits.Add64(r4, t1, c)\n\n\t// r = r1 - r2\n\n\tvar b uint64\n\n\tr0, b = bits.Sub64(x0, r0, 0)\n\tr1, b = bits.Sub64(x1, r1, b)\n\tr2, b = bits.Sub64(x2, r2, b)\n\tr3, b = bits.Sub64(x3, r3, b)\n\tr4, b = bits.Sub64(x4, r4, b)\n\n\t// if r\u003c0 then r+=m\n\n\tif b != 0 {\n\t\tr0, c = bits.Add64(r0, m.arr[0], 0)\n\t\tr1, c = bits.Add64(r1, m.arr[1], c)\n\t\tr2, c = bits.Add64(r2, m.arr[2], c)\n\t\tr3, c = bits.Add64(r3, m.arr[3], c)\n\t\tr4, _ = bits.Add64(r4, 0, c)\n\t}\n\n\t// while (r\u003e=m) r-=m\n\n\tfor {\n\t\t// q = r - m\n\t\tq0, b = bits.Sub64(r0, m.arr[0], 0)\n\t\tq1, b = bits.Sub64(r1, m.arr[1], b)\n\t\tq2, b = bits.Sub64(r2, m.arr[2], b)\n\t\tq3, b = bits.Sub64(r3, m.arr[3], b)\n\t\tq4, b = bits.Sub64(r4, 0, b)\n\n\t\t// if borrow break\n\t\tif b != 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// r = q\n\t\tr4, r3, r2, r1, r0 = q4, q3, q2, q1, q0\n\t}\n\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = r3, r2, r1, r0\n\n\treturn z\n}\n"},{"name":"uint256.gno","body":"// Ported from https://github.com/holiman/uint256\n// This package provides a 256-bit unsigned integer type, Uint256, and associated functions.\npackage uint256\n\nimport (\n\t\"errors\"\n\t\"math/bits\"\n\t\"strconv\"\n)\n\nconst (\n\tMaxUint64 = 1\u003c\u003c64 - 1\n\tuintSize = 32 \u003c\u003c (^uint(0) \u003e\u003e 63)\n)\n\n// Uint is represented as an array of 4 uint64, in little-endian order,\n// so that Uint[3] is the most significant, and Uint[0] is the least significant\ntype Uint struct {\n\tarr [4]uint64\n}\n\n// NewUint returns a new initialized Uint.\nfunc NewUint(val uint64) *Uint {\n\tz := \u0026Uint{arr: [4]uint64{val, 0, 0, 0}}\n\treturn z\n}\n\n// Zero returns a new Uint initialized to zero.\nfunc Zero() *Uint {\n\treturn NewUint(0)\n}\n\n// One returns a new Uint initialized to one.\nfunc One() *Uint {\n\treturn NewUint(1)\n}\n\n// SetAllOne sets all the bits of z to 1\nfunc (z *Uint) SetAllOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = MaxUint64, MaxUint64, MaxUint64, MaxUint64\n\treturn z\n}\n\n// Set sets z to x and returns z.\nfunc (z *Uint) Set(x *Uint) *Uint {\n\t*z = *x\n\n\treturn z\n}\n\n// SetOne sets z to 1\nfunc (z *Uint) SetOne() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 1\n\treturn z\n}\n\nconst twoPow256Sub1 = \"115792089237316195423570985008687907853269984665640564039457584007913129639935\"\n\n// SetFromDecimal sets z from the given string, interpreted as a decimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Uint).SetString(..., 10) method.\n// Notable differences:\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0\",\n// - (this method does not accept any negative input as valid))\nfunc (z *Uint) SetFromDecimal(s string) (err error) {\n\t// Remove max one leading +\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '+' {\n\t\ts = s[1:]\n\t}\n\t// Remove any number of leading zeroes\n\tif len(s) \u003e 0 \u0026\u0026 s[0] == '0' {\n\t\tvar i int\n\t\tvar c rune\n\t\tfor i, c = range s {\n\t\t\tif c != '0' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\ts = s[i:]\n\t}\n\tif len(s) \u003c len(twoPow256Sub1) {\n\t\treturn z.fromDecimal(s)\n\t}\n\tif len(s) == len(twoPow256Sub1) {\n\t\tif s \u003e twoPow256Sub1 {\n\t\t\treturn ErrBig256Range\n\t\t}\n\t\treturn z.fromDecimal(s)\n\t}\n\treturn ErrBig256Range\n}\n\n// FromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string. Numbers larger than 256 bits are not accepted.\nfunc FromDecimal(decimal string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromDecimal is a convenience-constructor to create an Uint from a\n// decimal (base 10) string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromDecimal(decimal string) *Uint {\n\tvar z Uint\n\tif err := z.SetFromDecimal(decimal); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// multipliers holds the values that are needed for fromDecimal\nvar multipliers = [5]*Uint{\n\tnil, // represents first round, no multiplication needed\n\t{[4]uint64{10000000000000000000, 0, 0, 0}}, // 10 ^ 19\n\t{[4]uint64{687399551400673280, 5421010862427522170, 0, 0}}, // 10 ^ 38\n\t{[4]uint64{5332261958806667264, 17004971331911604867, 2938735877055718769, 0}}, // 10 ^ 57\n\t{[4]uint64{0, 8607968719199866880, 532749306367912313, 1593091911132452277}}, // 10 ^ 76\n}\n\n// fromDecimal is a helper function to only ever be called via SetFromDecimal\n// this function takes a string and chunks it up, calling ParseUint on it up to 5 times\n// these chunks are then multiplied by the proper power of 10, then added together.\nfunc (z *Uint) fromDecimal(bs string) error {\n\t// first clear the input\n\tz.Clear()\n\t// the maximum value of uint64 is 18446744073709551615, which is 20 characters\n\t// one less means that a string of 19 9's is always within the uint64 limit\n\tvar (\n\t\tnum uint64\n\t\terr error\n\t\tremaining = len(bs)\n\t)\n\tif remaining == 0 {\n\t\treturn errors.New(\"EOF\")\n\t}\n\t// We proceed in steps of 19 characters (nibbles), from least significant to most significant.\n\t// This means that the first (up to) 19 characters do not need to be multiplied.\n\t// In the second iteration, our slice of 19 characters needs to be multipleied\n\t// by a factor of 10^19. Et cetera.\n\tfor i, mult := range multipliers {\n\t\tif remaining \u003c= 0 {\n\t\t\treturn nil // Done\n\t\t} else if remaining \u003e 19 {\n\t\t\tnum, err = strconv.ParseUint(bs[remaining-19:remaining], 10, 64)\n\t\t} else {\n\t\t\t// Final round\n\t\t\tnum, err = strconv.ParseUint(bs, 10, 64)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// add that number to our running total\n\t\tif i == 0 {\n\t\t\tz.SetUint64(num)\n\t\t} else {\n\t\t\tbase := NewUint(num)\n\t\t\tz.Add(z, base.Mul(base, mult))\n\t\t}\n\t\t// Chop off another 19 characters\n\t\tif remaining \u003e 19 {\n\t\t\tbs = bs[0 : remaining-19]\n\t\t}\n\t\tremaining -= 19\n\t}\n\treturn nil\n}\n\n// Byte sets z to the value of the byte at position n,\n// with 'z' considered as a big-endian 32-byte integer\n// if 'n' \u003e 32, f is set to 0\n// Example: f = '5', n=31 =\u003e 5\nfunc (z *Uint) Byte(n *Uint) *Uint {\n\t// in z, z.arr[0] is the least significant\n\tif number, overflow := n.Uint64WithOverflow(); !overflow {\n\t\tif number \u003c 32 {\n\t\t\tnumber := z.arr[4-1-number/8]\n\t\t\toffset := (n.arr[0] \u0026 0x7) \u003c\u003c 3 // 8*(n.d % 8)\n\t\t\tz.arr[0] = (number \u0026 (0xff00000000000000 \u003e\u003e offset)) \u003e\u003e (56 - offset)\n\t\t\tz.arr[3], z.arr[2], z.arr[1] = 0, 0, 0\n\t\t\treturn z\n\t\t}\n\t}\n\n\treturn z.Clear()\n}\n\n// BitLen returns the number of bits required to represent z\nfunc (z *Uint) BitLen() int {\n\tswitch {\n\tcase z.arr[3] != 0:\n\t\treturn 192 + bits.Len64(z.arr[3])\n\tcase z.arr[2] != 0:\n\t\treturn 128 + bits.Len64(z.arr[2])\n\tcase z.arr[1] != 0:\n\t\treturn 64 + bits.Len64(z.arr[1])\n\tdefault:\n\t\treturn bits.Len64(z.arr[0])\n\t}\n}\n\n// ByteLen returns the number of bytes required to represent z\nfunc (z *Uint) ByteLen() int {\n\treturn (z.BitLen() + 7) / 8\n}\n\n// Clear sets z to 0\nfunc (z *Uint) Clear() *Uint {\n\tz.arr[3], z.arr[2], z.arr[1], z.arr[0] = 0, 0, 0, 0\n\treturn z\n}\n\nconst (\n\t// hextable = \"0123456789abcdef\"\n\tbintable = \"\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\a\\b\\t\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\n\\v\\f\\r\\x0e\\x0f\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\"\n\tbadNibble = 0xff\n)\n\n// SetFromHex sets z from the given string, interpreted as a hexadecimal number.\n// OBS! This method is _not_ strictly identical to the (*big.Int).SetString(..., 16) method.\n// Notable differences:\n// - This method _require_ \"0x\" or \"0X\" prefix.\n// - This method does not accept zero-prefixed hex, e.g. \"0x0001\"\n// - This method does not accept underscore input, e.g. \"100_000\",\n// - This method does not accept negative zero as valid, e.g \"-0x0\",\n// - (this method does not accept any negative input as valid)\nfunc (z *Uint) SetFromHex(hex string) error {\n\treturn z.fromHex(hex)\n}\n\n// fromHex is the internal implementation of parsing a hex-string.\nfunc (z *Uint) fromHex(hex string) error {\n\tif err := checkNumberS(hex); err != nil {\n\t\treturn err\n\t}\n\tif len(hex) \u003e 66 {\n\t\treturn ErrBig256Range\n\t}\n\tz.Clear()\n\tend := len(hex)\n\tfor i := 0; i \u003c 4; i++ {\n\t\tstart := end - 16\n\t\tif start \u003c 2 {\n\t\t\tstart = 2\n\t\t}\n\t\tfor ri := start; ri \u003c end; ri++ {\n\t\t\tnib := bintable[hex[ri]]\n\t\t\tif nib == badNibble {\n\t\t\t\treturn ErrSyntax\n\t\t\t}\n\t\t\tz.arr[i] = z.arr[i] \u003c\u003c 4\n\t\t\tz.arr[i] += uint64(nib)\n\t\t}\n\t\tend = start\n\t}\n\treturn nil\n}\n\n// FromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string. The string is required to be '0x'-prefixed\n// Numbers larger than 256 bits are not accepted.\nfunc FromHex(hex string) (*Uint, error) {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\treturn nil, err\n\t}\n\treturn \u0026z, nil\n}\n\n// MustFromHex is a convenience-constructor to create an Uint from\n// a hexadecimal string.\n// Returns a new Uint and panics if any error occurred.\nfunc MustFromHex(hex string) *Uint {\n\tvar z Uint\n\tif err := z.fromHex(hex); err != nil {\n\t\tpanic(err)\n\t}\n\treturn \u0026z\n}\n\n// Clone creates a new Uint identical to z\nfunc (z *Uint) Clone() *Uint {\n\tvar x Uint\n\tx.arr[0] = z.arr[0]\n\tx.arr[1] = z.arr[1]\n\tx.arr[2] = z.arr[2]\n\tx.arr[3] = z.arr[3]\n\n\treturn \u0026x\n}\n"},{"name":"uint256_test.gno","body":"package uint256\n\nimport (\n\t\"testing\"\n)\n\nfunc TestSetAllOne(t *testing.T) {\n\tz := Zero()\n\tz.SetAllOne()\n\tif z.String() != twoPow256Sub1 {\n\t\tt.Errorf(\"Expected all ones, got %s\", z.String())\n\t}\n}\n\nfunc TestByte(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\tposition uint64\n\t\texpected byte\n\t}{\n\t\t{\"0x1000000000000000000000000000000000000000000000000000000000000000\", 0, 16},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 0, 255},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 31, 255},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tn := NewUint(tt.position)\n\t\tresult := z.Byte(n)\n\n\t\tif result.arr[0] != uint64(tt.expected) {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Position: %d, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.position, tt.expected, result.arr[0])\n\t\t}\n\n\t\t// check other array elements are 0\n\t\tif result.arr[1] != 0 || result.arr[2] != 0 || result.arr[3] != 0 {\n\t\t\tt.Errorf(\"Test case %d failed. Non-zero values in upper bytes\", i)\n\t\t}\n\t}\n\n\t// overflow\n\tz, _ := FromHex(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\")\n\tn := NewUint(32)\n\tresult := z.Byte(n)\n\n\tif !result.IsZero() {\n\t\tt.Errorf(\"Expected zero for position \u003e= 32, got %v\", result)\n\t}\n}\n\nfunc TestBitLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 8},\n\t\t{\"0x100\", 9},\n\t\t{\"0xffff\", 16},\n\t\t{\"0x10000\", 17},\n\t\t{\"0xffffffffffffffff\", 64},\n\t\t{\"0x10000000000000000\", 65},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 128},\n\t\t{\"0x100000000000000000000000000000000\", 129},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 256},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.BitLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestByteLen(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected int\n\t}{\n\t\t{\"0x0\", 0},\n\t\t{\"0x1\", 1},\n\t\t{\"0xff\", 1},\n\t\t{\"0x100\", 2},\n\t\t{\"0xffff\", 2},\n\t\t{\"0x10000\", 3},\n\t\t{\"0xffffffffffffffff\", 8},\n\t\t{\"0x10000000000000000\", 9},\n\t\t{\"0xffffffffffffffffffffffffffffffff\", 16},\n\t\t{\"0x100000000000000000000000000000000\", 17},\n\t\t{\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\", 32},\n\t}\n\n\tfor i, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.ByteLen()\n\n\t\tif result != tt.expected {\n\t\t\tt.Errorf(\"Test case %d failed. Input: %s, Expected: %d, Got: %d\",\n\t\t\t\ti, tt.input, tt.expected, result)\n\t\t}\n\t}\n}\n\nfunc TestClone(t *testing.T) {\n\ttests := []struct {\n\t\tinput string\n\t\texpected string\n\t}{\n\t\t{\"0x1\", \"1\"},\n\t\t{\"0x100\", \"256\"},\n\t\t{\"0x10000000000000000\", \"18446744073709551616\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tz, _ := FromHex(tt.input)\n\t\tresult := z.Clone()\n\t\tif result.String() != tt.expected {\n\t\t\tt.Errorf(\"Test %s failed. Expected %s, got %s\", tt.input, tt.expected, result.String())\n\t\t}\n\t}\n}\n"},{"name":"utils.gno","body":"package uint256\n\nfunc checkNumberS(input string) error {\n\tconst fn = \"UnmarshalText\"\n\tl := len(input)\n\tif l == 0 {\n\t\treturn errEmptyString(fn, input)\n\t}\n\tif l \u003c 2 || input[0] != '0' ||\n\t\t(input[1] != 'x' \u0026\u0026 input[1] != 'X') {\n\t\treturn errMissingPrefix(fn, input)\n\t}\n\tif l == 2 {\n\t\treturn errEmptyNumber(fn, input)\n\t}\n\tif len(input) \u003e 3 \u0026\u0026 input[2] == '0' {\n\t\treturn errLeadingZero(fn, input)\n\t}\n\treturn nil\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1NSguKEoQHJROkjvSQCvn/N1EG+mOXHXYTvaNW9JpjdqPPoZeA7KgLJygfNwJElzjS4j99s61HQ9PMGZ2DQWCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"ulist","path":"gno.land/p/moul/ulist","files":[{"name":"ulist.gno","body":"// Package ulist provides an append-only list implementation using a binary tree structure,\n// optimized for scenarios requiring sequential inserts with auto-incrementing indices.\n//\n// The implementation uses a binary tree where new elements are added by following a path\n// determined by the binary representation of the index. This provides automatic balancing\n// for append operations without requiring any balancing logic.\n//\n// Unlike the AVL tree-based list implementation (p/demo/avl/list), ulist is specifically\n// designed for append-only operations and does not require rebalancing. This makes it more\n// efficient for sequential inserts but less flexible for general-purpose list operations.\n//\n// Key differences from AVL list:\n// * Append-only design (no arbitrary inserts)\n// * No tree rebalancing needed\n// * Simpler implementation\n// * More memory efficient for sequential operations\n// * Less flexible than AVL (no arbitrary inserts/reordering)\n//\n// Key characteristics:\n// * O(log n) append and access operations\n// * Perfect balance for power-of-2 sizes\n// * No balancing needed\n// * Memory efficient\n// * Natural support for range queries\n// * Support for soft deletion of elements\n// * Forward and reverse iteration capabilities\n// * Offset-based iteration with count control\npackage ulist\n\n// TODO: Use this ulist in moul/collection for the primary index.\n// TODO: Benchmarks.\n\nimport (\n\t\"errors\"\n)\n\n// List represents an append-only binary tree list\ntype List struct {\n\troot *treeNode\n\ttotalSize int\n\tactiveSize int\n}\n\n// Entry represents a key-value pair in the list, where Index is the position\n// and Value is the stored data\ntype Entry struct {\n\tIndex int\n\tValue interface{}\n}\n\n// treeNode represents a node in the binary tree\ntype treeNode struct {\n\tdata interface{}\n\tleft *treeNode\n\tright *treeNode\n}\n\n// Error variables\nvar (\n\tErrOutOfBounds = errors.New(\"index out of bounds\")\n\tErrDeleted = errors.New(\"element already deleted\")\n)\n\n// New creates a new empty List instance\nfunc New() *List {\n\treturn \u0026List{}\n}\n\n// Append adds one or more values to the end of the list.\n// Values are added sequentially, and the list grows automatically.\nfunc (l *List) Append(values ...interface{}) {\n\tfor _, value := range values {\n\t\tindex := l.totalSize\n\t\tnode := l.findNode(index, true)\n\t\tnode.data = value\n\t\tl.totalSize++\n\t\tl.activeSize++\n\t}\n}\n\n// Get retrieves the value at the specified index.\n// Returns nil if the index is out of bounds or if the element was deleted.\nfunc (l *List) Get(index int) interface{} {\n\tnode := l.findNode(index, false)\n\tif node == nil {\n\t\treturn nil\n\t}\n\treturn node.data\n}\n\n// Delete marks the elements at the specified indices as deleted.\n// Returns ErrOutOfBounds if any index is invalid or ErrDeleted if\n// the element was already deleted.\nfunc (l *List) Delete(indices ...int) error {\n\tif len(indices) == 0 {\n\t\treturn nil\n\t}\n\tif l == nil || l.totalSize == 0 {\n\t\treturn ErrOutOfBounds\n\t}\n\n\tfor _, index := range indices {\n\t\tif index \u003c 0 || index \u003e= l.totalSize {\n\t\t\treturn ErrOutOfBounds\n\t\t}\n\n\t\tnode := l.findNode(index, false)\n\t\tif node == nil || node.data == nil {\n\t\t\treturn ErrDeleted\n\t\t}\n\t\tnode.data = nil\n\t\tl.activeSize--\n\t}\n\n\treturn nil\n}\n\n// Set updates or restores a value at the specified index if within bounds\n// Returns ErrOutOfBounds if the index is invalid\nfunc (l *List) Set(index int, value interface{}) error {\n\tif l == nil || index \u003c 0 || index \u003e= l.totalSize {\n\t\treturn ErrOutOfBounds\n\t}\n\n\tnode := l.findNode(index, false)\n\tif node == nil {\n\t\treturn ErrOutOfBounds\n\t}\n\n\t// If this is restoring a deleted element\n\tif value != nil \u0026\u0026 node.data == nil {\n\t\tl.activeSize++\n\t}\n\n\t// If this is deleting an element\n\tif value == nil \u0026\u0026 node.data != nil {\n\t\tl.activeSize--\n\t}\n\n\tnode.data = value\n\treturn nil\n}\n\n// Size returns the number of active (non-deleted) elements in the list\nfunc (l *List) Size() int {\n\tif l == nil {\n\t\treturn 0\n\t}\n\treturn l.activeSize\n}\n\n// TotalSize returns the total number of elements ever added to the list,\n// including deleted elements\nfunc (l *List) TotalSize() int {\n\tif l == nil {\n\t\treturn 0\n\t}\n\treturn l.totalSize\n}\n\n// IterCbFn is a callback function type used in iteration methods.\n// Return true to stop iteration, false to continue.\ntype IterCbFn func(index int, value interface{}) bool\n\n// Iterator performs iteration between start and end indices, calling cb for each entry.\n// If start \u003e end, iteration is performed in reverse order.\n// Returns true if iteration was stopped early by the callback returning true.\n// Skips deleted elements.\nfunc (l *List) Iterator(start, end int, cb IterCbFn) bool {\n\t// For empty list or invalid range\n\tif l == nil || l.totalSize == 0 {\n\t\treturn false\n\t}\n\tif start \u003c 0 \u0026\u0026 end \u003c 0 {\n\t\treturn false\n\t}\n\tif start \u003e= l.totalSize \u0026\u0026 end \u003e= l.totalSize {\n\t\treturn false\n\t}\n\n\t// Normalize indices\n\tif start \u003c 0 {\n\t\tstart = 0\n\t}\n\tif end \u003c 0 {\n\t\tend = 0\n\t}\n\tif end \u003e= l.totalSize {\n\t\tend = l.totalSize - 1\n\t}\n\tif start \u003e= l.totalSize {\n\t\tstart = l.totalSize - 1\n\t}\n\n\t// Handle reverse iteration\n\tif start \u003e end {\n\t\tfor i := start; i \u003e= end; i-- {\n\t\t\tval := l.Get(i)\n\t\t\tif val != nil {\n\t\t\t\tif cb(i, val) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\t// Handle forward iteration\n\tfor i := start; i \u003c= end; i++ {\n\t\tval := l.Get(i)\n\t\tif val != nil {\n\t\t\tif cb(i, val) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// IteratorByOffset performs iteration starting from offset for count elements.\n// If count is positive, iterates forward; if negative, iterates backward.\n// The iteration stops after abs(count) elements or when reaching list bounds.\n// Skips deleted elements.\nfunc (l *List) IteratorByOffset(offset int, count int, cb IterCbFn) bool {\n\tif count == 0 || l == nil || l.totalSize == 0 {\n\t\treturn false\n\t}\n\n\t// Normalize offset\n\tif offset \u003c 0 {\n\t\toffset = 0\n\t}\n\tif offset \u003e= l.totalSize {\n\t\toffset = l.totalSize - 1\n\t}\n\n\t// Determine end based on count direction\n\tvar end int\n\tif count \u003e 0 {\n\t\tend = l.totalSize - 1\n\t} else {\n\t\tend = 0\n\t}\n\n\twrapperReturned := false\n\n\t// Wrap the callback to limit iterations\n\tremaining := abs(count)\n\twrapper := func(index int, value interface{}) bool {\n\t\tif remaining \u003c= 0 {\n\t\t\twrapperReturned = true\n\t\t\treturn true\n\t\t}\n\t\tremaining--\n\t\treturn cb(index, value)\n\t}\n\tret := l.Iterator(offset, end, wrapper)\n\tif wrapperReturned {\n\t\treturn false\n\t}\n\treturn ret\n}\n\n// abs returns the absolute value of x\nfunc abs(x int) int {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\n// findNode locates or creates a node at the given index in the binary tree.\n// The tree is structured such that the path to a node is determined by the binary\n// representation of the index. For example, a tree with 15 elements would look like:\n//\n//\t 0\n//\t / \\\n//\t 1 2\n//\t / \\ / \\\n//\t 3 4 5 6\n//\t / \\ / \\ / \\ / \\\n//\t7 8 9 10 11 12 13 14\n//\n// To find index 13 (binary 1101):\n// 1. Start at root (0)\n// 2. Calculate bits needed (4 bits for index 13)\n// 3. Skip the highest bit position and start from bits-2\n// 4. Read bits from left to right:\n// - 1 -\u003e go right to 2\n// - 1 -\u003e go right to 6\n// - 0 -\u003e go left to 13\n//\n// Special cases:\n// - Index 0 always returns the root node\n// - For create=true, missing nodes are created along the path\n// - For create=false, returns nil if any node is missing\nfunc (l *List) findNode(index int, create bool) *treeNode {\n\t// For read operations, check bounds strictly\n\tif !create \u0026\u0026 (l == nil || index \u003c 0 || index \u003e= l.totalSize) {\n\t\treturn nil\n\t}\n\n\t// For create operations, allow index == totalSize for append\n\tif create \u0026\u0026 (l == nil || index \u003c 0 || index \u003e l.totalSize) {\n\t\treturn nil\n\t}\n\n\t// Initialize root if needed\n\tif l.root == nil {\n\t\tif !create {\n\t\t\treturn nil\n\t\t}\n\t\tl.root = \u0026treeNode{}\n\t\treturn l.root\n\t}\n\n\tnode := l.root\n\n\t// Special case for root node\n\tif index == 0 {\n\t\treturn node\n\t}\n\n\t// Calculate the number of bits needed (inline highestBit logic)\n\tbits := 0\n\tn := index + 1\n\tfor n \u003e 0 {\n\t\tn \u003e\u003e= 1\n\t\tbits++\n\t}\n\n\t// Start from the second highest bit\n\tfor level := bits - 2; level \u003e= 0; level-- {\n\t\tbit := (index \u0026 (1 \u003c\u003c uint(level))) != 0\n\n\t\tif bit {\n\t\t\tif node.right == nil {\n\t\t\t\tif !create {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tnode.right = \u0026treeNode{}\n\t\t\t}\n\t\t\tnode = node.right\n\t\t} else {\n\t\t\tif node.left == nil {\n\t\t\t\tif !create {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tnode.left = \u0026treeNode{}\n\t\t\t}\n\t\t\tnode = node.left\n\t\t}\n\t}\n\n\treturn node\n}\n\n// MustDelete deletes elements at the specified indices.\n// Panics if any index is invalid or if any element was already deleted.\nfunc (l *List) MustDelete(indices ...int) {\n\tif err := l.Delete(indices...); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// MustGet retrieves the value at the specified index.\n// Panics if the index is out of bounds or if the element was deleted.\nfunc (l *List) MustGet(index int) interface{} {\n\tif l == nil || index \u003c 0 || index \u003e= l.totalSize {\n\t\tpanic(ErrOutOfBounds)\n\t}\n\tvalue := l.Get(index)\n\tif value == nil {\n\t\tpanic(ErrDeleted)\n\t}\n\treturn value\n}\n\n// MustSet updates or restores a value at the specified index.\n// Panics if the index is out of bounds.\nfunc (l *List) MustSet(index int, value interface{}) {\n\tif err := l.Set(index, value); err != nil {\n\t\tpanic(err)\n\t}\n}\n\n// GetRange returns a slice of Entry containing elements between start and end indices.\n// If start \u003e end, elements are returned in reverse order.\n// Deleted elements are skipped.\nfunc (l *List) GetRange(start, end int) []Entry {\n\tvar entries []Entry\n\tl.Iterator(start, end, func(index int, value interface{}) bool {\n\t\tentries = append(entries, Entry{Index: index, Value: value})\n\t\treturn false\n\t})\n\treturn entries\n}\n\n// GetByOffset returns a slice of Entry starting from offset for count elements.\n// If count is positive, returns elements forward; if negative, returns elements backward.\n// The operation stops after abs(count) elements or when reaching list bounds.\n// Deleted elements are skipped.\nfunc (l *List) GetByOffset(offset int, count int) []Entry {\n\tvar entries []Entry\n\tl.IteratorByOffset(offset, count, func(index int, value interface{}) bool {\n\t\tentries = append(entries, Entry{Index: index, Value: value})\n\t\treturn false\n\t})\n\treturn entries\n}\n\n// IList defines the interface for an ulist.List compatible structure.\ntype IList interface {\n\t// Basic operations\n\tAppend(values ...interface{})\n\tGet(index int) interface{}\n\tDelete(indices ...int) error\n\tSize() int\n\tTotalSize() int\n\tSet(index int, value interface{}) error\n\n\t// Must variants that panic instead of returning errors\n\tMustDelete(indices ...int)\n\tMustGet(index int) interface{}\n\tMustSet(index int, value interface{})\n\n\t// Range operations\n\tGetRange(start, end int) []Entry\n\tGetByOffset(offset int, count int) []Entry\n\n\t// Iterator operations\n\tIterator(start, end int, cb IterCbFn) bool\n\tIteratorByOffset(offset int, count int, cb IterCbFn) bool\n}\n\n// Verify that List implements IList\nvar _ IList = (*List)(nil)\n"},{"name":"ulist_test.gno","body":"package ulist\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/typeutil\"\n)\n\nfunc TestNew(t *testing.T) {\n\tl := New()\n\tuassert.Equal(t, 0, l.Size())\n\tuassert.Equal(t, 0, l.TotalSize())\n}\n\nfunc TestListAppendAndGet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tsetup func() *List\n\t\tindex int\n\t\texpected interface{}\n\t}{\n\t\t{\n\t\t\tname: \"empty list\",\n\t\t\tsetup: func() *List {\n\t\t\t\treturn New()\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\texpected: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"single append and get\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(42)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\texpected: 42,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple appends and get first\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\tl.Append(2)\n\t\t\t\tl.Append(3)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\texpected: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple appends and get last\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\tl.Append(2)\n\t\t\t\tl.Append(3)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 2,\n\t\t\texpected: 3,\n\t\t},\n\t\t{\n\t\t\tname: \"get with invalid index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 1,\n\t\t\texpected: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"31 items get first\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tfor i := 0; i \u003c 31; i++ {\n\t\t\t\t\tl.Append(i)\n\t\t\t\t}\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\texpected: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"31 items get last\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tfor i := 0; i \u003c 31; i++ {\n\t\t\t\t\tl.Append(i)\n\t\t\t\t}\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 30,\n\t\t\texpected: 30,\n\t\t},\n\t\t{\n\t\t\tname: \"31 items get middle\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tfor i := 0; i \u003c 31; i++ {\n\t\t\t\t\tl.Append(i)\n\t\t\t\t}\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 15,\n\t\t\texpected: 15,\n\t\t},\n\t\t{\n\t\t\tname: \"values around power of 2 boundary\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tfor i := 0; i \u003c 18; i++ {\n\t\t\t\t\tl.Append(i)\n\t\t\t\t}\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 15,\n\t\t\texpected: 15,\n\t\t},\n\t\t{\n\t\t\tname: \"values at power of 2\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tfor i := 0; i \u003c 18; i++ {\n\t\t\t\t\tl.Append(i)\n\t\t\t\t}\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 16,\n\t\t\texpected: 16,\n\t\t},\n\t\t{\n\t\t\tname: \"values after power of 2\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tfor i := 0; i \u003c 18; i++ {\n\t\t\t\t\tl.Append(i)\n\t\t\t\t}\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 17,\n\t\t\texpected: 17,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tl := tt.setup()\n\t\t\tgot := l.Get(tt.index)\n\t\t\tif got != tt.expected {\n\t\t\t\tt.Errorf(\"List.Get() = %v, want %v\", got, tt.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// generateSequence creates a slice of integers from 0 to n-1\nfunc generateSequence(n int) []interface{} {\n\tresult := make([]interface{}, n)\n\tfor i := 0; i \u003c n; i++ {\n\t\tresult[i] = i\n\t}\n\treturn result\n}\n\nfunc TestListDelete(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tsetup func() *List\n\t\tdeleteIndices []int\n\t\texpectedErr error\n\t\texpectedSize int\n\t}{\n\t\t{\n\t\t\tname: \"delete single element\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tdeleteIndices: []int{1},\n\t\t\texpectedErr: nil,\n\t\t\texpectedSize: 2,\n\t\t},\n\t\t{\n\t\t\tname: \"delete multiple elements\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3, 4, 5)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tdeleteIndices: []int{0, 2, 4},\n\t\t\texpectedErr: nil,\n\t\t\texpectedSize: 2,\n\t\t},\n\t\t{\n\t\t\tname: \"delete with negative index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tdeleteIndices: []int{-1},\n\t\t\texpectedErr: ErrOutOfBounds,\n\t\t\texpectedSize: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"delete beyond size\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tdeleteIndices: []int{1},\n\t\t\texpectedErr: ErrOutOfBounds,\n\t\t\texpectedSize: 1,\n\t\t},\n\t\t{\n\t\t\tname: \"delete already deleted element\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\tl.Delete(0)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tdeleteIndices: []int{0},\n\t\t\texpectedErr: ErrDeleted,\n\t\t\texpectedSize: 0,\n\t\t},\n\t\t{\n\t\t\tname: \"delete multiple elements in reverse\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3, 4, 5)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tdeleteIndices: []int{4, 2, 0},\n\t\t\texpectedErr: nil,\n\t\t\texpectedSize: 2,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tl := tt.setup()\n\t\t\tinitialSize := l.Size()\n\t\t\terr := l.Delete(tt.deleteIndices...)\n\t\t\tif err != nil \u0026\u0026 tt.expectedErr != nil {\n\t\t\t\tuassert.Equal(t, tt.expectedErr.Error(), err.Error())\n\t\t\t} else {\n\t\t\t\tuassert.Equal(t, tt.expectedErr, err)\n\t\t\t}\n\t\t\tuassert.Equal(t, tt.expectedSize, l.Size(),\n\t\t\t\tufmt.Sprintf(\"Expected size %d after deleting %d elements from size %d, got %d\",\n\t\t\t\t\ttt.expectedSize, len(tt.deleteIndices), initialSize, l.Size()))\n\t\t})\n\t}\n}\n\nfunc TestListSizeAndTotalSize(t *testing.T) {\n\tt.Run(\"empty list\", func(t *testing.T) {\n\t\tlist := New()\n\t\tuassert.Equal(t, 0, list.Size())\n\t\tuassert.Equal(t, 0, list.TotalSize())\n\t})\n\n\tt.Run(\"list with elements\", func(t *testing.T) {\n\t\tlist := New()\n\t\tlist.Append(1)\n\t\tlist.Append(2)\n\t\tlist.Append(3)\n\t\tuassert.Equal(t, 3, list.Size())\n\t\tuassert.Equal(t, 3, list.TotalSize())\n\t})\n\n\tt.Run(\"list with deleted elements\", func(t *testing.T) {\n\t\tlist := New()\n\t\tlist.Append(1)\n\t\tlist.Append(2)\n\t\tlist.Append(3)\n\t\tlist.Delete(1)\n\t\tuassert.Equal(t, 2, list.Size())\n\t\tuassert.Equal(t, 3, list.TotalSize())\n\t})\n}\n\nfunc TestIterator(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalues []interface{}\n\t\tstart int\n\t\tend int\n\t\texpected []Entry\n\t\twantStop bool\n\t\tstopAfter int // stop after N elements, -1 for no stop\n\t}{\n\t\t{\n\t\t\tname: \"empty list\",\n\t\t\tvalues: []interface{}{},\n\t\t\tstart: 0,\n\t\t\tend: 10,\n\t\t\texpected: []Entry{},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"nil list\",\n\t\t\tvalues: nil,\n\t\t\tstart: 0,\n\t\t\tend: 0,\n\t\t\texpected: []Entry{},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"single element forward\",\n\t\t\tvalues: []interface{}{42},\n\t\t\tstart: 0,\n\t\t\tend: 0,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 42},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements forward\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 0,\n\t\t\tend: 4,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements reverse\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 4,\n\t\t\tend: 0,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"partial range forward\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 1,\n\t\t\tend: 3,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"partial range reverse\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 3,\n\t\t\tend: 1,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"stop iteration early\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 0,\n\t\t\tend: 4,\n\t\t\twantStop: true,\n\t\t\tstopAfter: 2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"negative start\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: -1,\n\t\t\tend: 2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"negative end\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: 0,\n\t\t\tend: -2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"start beyond size\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: 5,\n\t\t\tend: 6,\n\t\t\texpected: []Entry{},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"end beyond size\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: 0,\n\t\t\tend: 5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"with deleted elements\",\n\t\t\tvalues: []interface{}{1, 2, nil, 4, 5},\n\t\t\tstart: 0,\n\t\t\tend: 4,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"with deleted elements reverse\",\n\t\t\tvalues: []interface{}{1, nil, 3, nil, 5},\n\t\t\tstart: 4,\n\t\t\tend: 0,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t},\n\t\t\tstopAfter: -1,\n\t\t},\n\t\t{\n\t\t\tname: \"start equals end\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: 1,\n\t\t\tend: 1,\n\t\t\texpected: []Entry{{Index: 1, Value: 2}},\n\t\t\tstopAfter: -1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tlist := New()\n\t\t\tlist.Append(tt.values...)\n\n\t\t\tvar result []Entry\n\t\t\tstopped := list.Iterator(tt.start, tt.end, func(index int, value interface{}) bool {\n\t\t\t\tresult = append(result, Entry{Index: index, Value: value})\n\t\t\t\treturn tt.stopAfter \u003e= 0 \u0026\u0026 len(result) \u003e= tt.stopAfter\n\t\t\t})\n\n\t\t\tuassert.Equal(t, len(result), len(tt.expected), \"comparing length\")\n\n\t\t\tfor i := range result {\n\t\t\t\tuassert.Equal(t, result[i].Index, tt.expected[i].Index, \"comparing index\")\n\t\t\t\tuassert.Equal(t, typeutil.ToString(result[i].Value), typeutil.ToString(tt.expected[i].Value), \"comparing value\")\n\t\t\t}\n\n\t\t\tuassert.Equal(t, stopped, tt.wantStop, \"comparing stopped\")\n\t\t})\n\t}\n}\n\nfunc TestLargeListAppendGetAndDelete(t *testing.T) {\n\tl := New()\n\tsize := 100\n\n\t// Append values from 0 to 99\n\tfor i := 0; i \u003c size; i++ {\n\t\tl.Append(i)\n\t\tval := l.Get(i)\n\t\tuassert.Equal(t, i, val)\n\t}\n\n\t// Verify size\n\tuassert.Equal(t, size, l.Size())\n\tuassert.Equal(t, size, l.TotalSize())\n\n\t// Get and verify each value\n\tfor i := 0; i \u003c size; i++ {\n\t\tval := l.Get(i)\n\t\tuassert.Equal(t, i, val)\n\t}\n\n\t// Get and verify each value\n\tfor i := 0; i \u003c size; i++ {\n\t\terr := l.Delete(i)\n\t\tuassert.Equal(t, nil, err)\n\t}\n\n\t// Verify size\n\tuassert.Equal(t, 0, l.Size())\n\tuassert.Equal(t, size, l.TotalSize())\n\n\t// Get and verify each value\n\tfor i := 0; i \u003c size; i++ {\n\t\tval := l.Get(i)\n\t\tuassert.Equal(t, nil, val)\n\t}\n}\n\nfunc TestEdgeCases(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\ttest func(t *testing.T)\n\t}{\n\t\t{\n\t\t\tname: \"nil list operations\",\n\t\t\ttest: func(t *testing.T) {\n\t\t\t\tvar l *List\n\t\t\t\tuassert.Equal(t, 0, l.Size())\n\t\t\t\tuassert.Equal(t, 0, l.TotalSize())\n\t\t\t\tuassert.Equal(t, nil, l.Get(0))\n\t\t\t\terr := l.Delete(0)\n\t\t\t\tuassert.Equal(t, ErrOutOfBounds.Error(), err.Error())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"delete empty indices slice\",\n\t\t\ttest: func(t *testing.T) {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\terr := l.Delete()\n\t\t\t\tuassert.Equal(t, nil, err)\n\t\t\t\tuassert.Equal(t, 1, l.Size())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"append nil values\",\n\t\t\ttest: func(t *testing.T) {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(nil, nil)\n\t\t\t\tuassert.Equal(t, 2, l.Size())\n\t\t\t\tuassert.Equal(t, nil, l.Get(0))\n\t\t\t\tuassert.Equal(t, nil, l.Get(1))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"delete same index multiple times\",\n\t\t\ttest: func(t *testing.T) {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3)\n\t\t\t\terr := l.Delete(1)\n\t\t\t\tuassert.Equal(t, nil, err)\n\t\t\t\terr = l.Delete(1)\n\t\t\t\tuassert.Equal(t, ErrDeleted.Error(), err.Error())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"iterator with all deleted elements\",\n\t\t\ttest: func(t *testing.T) {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3)\n\t\t\t\tl.Delete(0, 1, 2)\n\t\t\t\tvar count int\n\t\t\t\tl.Iterator(0, 2, func(index int, value interface{}) bool {\n\t\t\t\t\tcount++\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\tuassert.Equal(t, 0, count)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"append after delete\",\n\t\t\ttest: func(t *testing.T) {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2)\n\t\t\t\tl.Delete(1)\n\t\t\t\tl.Append(3)\n\t\t\t\tuassert.Equal(t, 2, l.Size())\n\t\t\t\tuassert.Equal(t, 3, l.TotalSize())\n\t\t\t\tuassert.Equal(t, 1, l.Get(0))\n\t\t\t\tuassert.Equal(t, nil, l.Get(1))\n\t\t\t\tuassert.Equal(t, 3, l.Get(2))\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ttt.test(t)\n\t\t})\n\t}\n}\n\nfunc TestIteratorByOffset(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalues []interface{}\n\t\toffset int\n\t\tcount int\n\t\texpected []Entry\n\t\twantStop bool\n\t}{\n\t\t{\n\t\t\tname: \"empty list\",\n\t\t\tvalues: []interface{}{},\n\t\t\toffset: 0,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"positive count forward iteration\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\toffset: 1,\n\t\t\tcount: 2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative count backward iteration\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\toffset: 3,\n\t\t\tcount: -2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"count exceeds available elements forward\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 1,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"count exceeds available elements backward\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 1,\n\t\t\tcount: -5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"zero count\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 0,\n\t\t\tcount: 0,\n\t\t\texpected: []Entry{},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"negative offset\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: -1,\n\t\t\tcount: 2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"offset beyond size\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 5,\n\t\t\tcount: -2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"with deleted elements\",\n\t\t\tvalues: []interface{}{1, nil, 3, nil, 5},\n\t\t\toffset: 0,\n\t\t\tcount: 3,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"early stop in forward iteration\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\toffset: 0,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t\twantStop: true, // The callback will return true after 2 elements\n\t\t},\n\t\t{\n\t\t\tname: \"early stop in backward iteration\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\toffset: 4,\n\t\t\tcount: -5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t},\n\t\t\twantStop: true, // The callback will return true after 2 elements\n\t\t},\n\t\t{\n\t\t\tname: \"nil list\",\n\t\t\tvalues: nil,\n\t\t\toffset: 0,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"single element forward\",\n\t\t\tvalues: []interface{}{1},\n\t\t\toffset: 0,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"single element backward\",\n\t\t\tvalues: []interface{}{1},\n\t\t\toffset: 0,\n\t\t\tcount: -5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t},\n\t\t\twantStop: false,\n\t\t},\n\t\t{\n\t\t\tname: \"all deleted elements\",\n\t\t\tvalues: []interface{}{nil, nil, nil},\n\t\t\toffset: 0,\n\t\t\tcount: 3,\n\t\t\texpected: []Entry{},\n\t\t\twantStop: false,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tlist := New()\n\t\t\tlist.Append(tt.values...)\n\n\t\t\tvar result []Entry\n\t\t\tvar cb IterCbFn\n\t\t\tif tt.wantStop {\n\t\t\t\tcb = func(index int, value interface{}) bool {\n\t\t\t\t\tresult = append(result, Entry{Index: index, Value: value})\n\t\t\t\t\treturn len(result) \u003e= 2 // Stop after 2 elements for early stop tests\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcb = func(index int, value interface{}) bool {\n\t\t\t\t\tresult = append(result, Entry{Index: index, Value: value})\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstopped := list.IteratorByOffset(tt.offset, tt.count, cb)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(result), \"comparing length\")\n\t\t\tfor i := range result {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Index, result[i].Index, \"comparing index\")\n\t\t\t\tuassert.Equal(t, typeutil.ToString(tt.expected[i].Value), typeutil.ToString(result[i].Value), \"comparing value\")\n\t\t\t}\n\t\t\tuassert.Equal(t, tt.wantStop, stopped, \"comparing stopped\")\n\t\t})\n\t}\n}\n\nfunc TestMustDelete(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tsetup func() *List\n\t\tindices []int\n\t\tshouldPanic bool\n\t\tpanicMsg string\n\t}{\n\t\t{\n\t\t\tname: \"successful delete\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindices: []int{1},\n\t\t\tshouldPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"out of bounds\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindices: []int{1},\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t\t{\n\t\t\tname: \"already deleted\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\tl.Delete(0)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindices: []int{0},\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrDeleted.Error(),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tl := tt.setup()\n\t\t\tif tt.shouldPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tr := recover()\n\t\t\t\t\tif r == nil {\n\t\t\t\t\t\tt.Error(\"Expected panic but got none\")\n\t\t\t\t\t}\n\t\t\t\t\terr, ok := r.(error)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tt.Errorf(\"Expected error but got %v\", r)\n\t\t\t\t\t}\n\t\t\t\t\tuassert.Equal(t, tt.panicMsg, err.Error())\n\t\t\t\t}()\n\t\t\t}\n\t\t\tl.MustDelete(tt.indices...)\n\t\t\tif tt.shouldPanic {\n\t\t\t\tt.Error(\"Expected panic\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMustGet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tsetup func() *List\n\t\tindex int\n\t\texpected interface{}\n\t\tshouldPanic bool\n\t\tpanicMsg string\n\t}{\n\t\t{\n\t\t\tname: \"successful get\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(42)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\texpected: 42,\n\t\t\tshouldPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"out of bounds negative\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: -1,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t\t{\n\t\t\tname: \"out of bounds positive\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 1,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t\t{\n\t\t\tname: \"deleted element\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\tl.Delete(0)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrDeleted.Error(),\n\t\t},\n\t\t{\n\t\t\tname: \"nil list\",\n\t\t\tsetup: func() *List {\n\t\t\t\treturn nil\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tl := tt.setup()\n\t\t\tif tt.shouldPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tr := recover()\n\t\t\t\t\tif r == nil {\n\t\t\t\t\t\tt.Error(\"Expected panic but got none\")\n\t\t\t\t\t}\n\t\t\t\t\terr, ok := r.(error)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tt.Errorf(\"Expected error but got %v\", r)\n\t\t\t\t\t}\n\t\t\t\t\tuassert.Equal(t, tt.panicMsg, err.Error())\n\t\t\t\t}()\n\t\t\t}\n\t\t\tresult := l.MustGet(tt.index)\n\t\t\tif tt.shouldPanic {\n\t\t\t\tt.Error(\"Expected panic\")\n\t\t\t}\n\t\t\tuassert.Equal(t, typeutil.ToString(tt.expected), typeutil.ToString(result))\n\t\t})\n\t}\n}\n\nfunc TestGetRange(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalues []interface{}\n\t\tstart int\n\t\tend int\n\t\texpected []Entry\n\t}{\n\t\t{\n\t\t\tname: \"empty list\",\n\t\t\tvalues: []interface{}{},\n\t\t\tstart: 0,\n\t\t\tend: 10,\n\t\t\texpected: []Entry{},\n\t\t},\n\t\t{\n\t\t\tname: \"single element\",\n\t\t\tvalues: []interface{}{42},\n\t\t\tstart: 0,\n\t\t\tend: 0,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 42},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements forward\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 1,\n\t\t\tend: 3,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"multiple elements reverse\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\tstart: 3,\n\t\t\tend: 1,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"with deleted elements\",\n\t\t\tvalues: []interface{}{1, nil, 3, nil, 5},\n\t\t\tstart: 0,\n\t\t\tend: 4,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"nil list\",\n\t\t\tvalues: nil,\n\t\t\tstart: 0,\n\t\t\tend: 5,\n\t\t\texpected: []Entry{},\n\t\t},\n\t\t{\n\t\t\tname: \"negative indices\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: -1,\n\t\t\tend: -2,\n\t\t\texpected: []Entry{},\n\t\t},\n\t\t{\n\t\t\tname: \"indices beyond size\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\tstart: 1,\n\t\t\tend: 5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tlist := New()\n\t\t\tlist.Append(tt.values...)\n\n\t\t\tresult := list.GetRange(tt.start, tt.end)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(result), \"comparing length\")\n\t\t\tfor i := range result {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Index, result[i].Index, \"comparing index\")\n\t\t\t\tuassert.Equal(t, typeutil.ToString(tt.expected[i].Value), typeutil.ToString(result[i].Value), \"comparing value\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetByOffset(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tvalues []interface{}\n\t\toffset int\n\t\tcount int\n\t\texpected []Entry\n\t}{\n\t\t{\n\t\t\tname: \"empty list\",\n\t\t\tvalues: []interface{}{},\n\t\t\toffset: 0,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{},\n\t\t},\n\t\t{\n\t\t\tname: \"positive count forward\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\toffset: 1,\n\t\t\tcount: 2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"negative count backward\",\n\t\t\tvalues: []interface{}{1, 2, 3, 4, 5},\n\t\t\toffset: 3,\n\t\t\tcount: -2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 3, Value: 4},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"count exceeds available elements\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 1,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"zero count\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 0,\n\t\t\tcount: 0,\n\t\t\texpected: []Entry{},\n\t\t},\n\t\t{\n\t\t\tname: \"with deleted elements\",\n\t\t\tvalues: []interface{}{1, nil, 3, nil, 5},\n\t\t\toffset: 0,\n\t\t\tcount: 3,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 4, Value: 5},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"negative offset\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: -1,\n\t\t\tcount: 2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 0, Value: 1},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"offset beyond size\",\n\t\t\tvalues: []interface{}{1, 2, 3},\n\t\t\toffset: 5,\n\t\t\tcount: -2,\n\t\t\texpected: []Entry{\n\t\t\t\t{Index: 2, Value: 3},\n\t\t\t\t{Index: 1, Value: 2},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"nil list\",\n\t\t\tvalues: nil,\n\t\t\toffset: 0,\n\t\t\tcount: 5,\n\t\t\texpected: []Entry{},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tlist := New()\n\t\t\tlist.Append(tt.values...)\n\n\t\t\tresult := list.GetByOffset(tt.offset, tt.count)\n\n\t\t\tuassert.Equal(t, len(tt.expected), len(result), \"comparing length\")\n\t\t\tfor i := range result {\n\t\t\t\tuassert.Equal(t, tt.expected[i].Index, result[i].Index, \"comparing index\")\n\t\t\t\tuassert.Equal(t, typeutil.ToString(tt.expected[i].Value), typeutil.ToString(result[i].Value), \"comparing value\")\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMustSet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tsetup func() *List\n\t\tindex int\n\t\tvalue interface{}\n\t\tshouldPanic bool\n\t\tpanicMsg string\n\t}{\n\t\t{\n\t\t\tname: \"successful set\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(42)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 99,\n\t\t\tshouldPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"restore deleted element\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(42)\n\t\t\t\tl.Delete(0)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 99,\n\t\t\tshouldPanic: false,\n\t\t},\n\t\t{\n\t\t\tname: \"out of bounds negative\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: -1,\n\t\t\tvalue: 99,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t\t{\n\t\t\tname: \"out of bounds positive\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 1,\n\t\t\tvalue: 99,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t\t{\n\t\t\tname: \"nil list\",\n\t\t\tsetup: func() *List {\n\t\t\t\treturn nil\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 99,\n\t\t\tshouldPanic: true,\n\t\t\tpanicMsg: ErrOutOfBounds.Error(),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tl := tt.setup()\n\t\t\tif tt.shouldPanic {\n\t\t\t\tdefer func() {\n\t\t\t\t\tr := recover()\n\t\t\t\t\tif r == nil {\n\t\t\t\t\t\tt.Error(\"Expected panic but got none\")\n\t\t\t\t\t}\n\t\t\t\t\terr, ok := r.(error)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tt.Errorf(\"Expected error but got %v\", r)\n\t\t\t\t\t}\n\t\t\t\t\tuassert.Equal(t, tt.panicMsg, err.Error())\n\t\t\t\t}()\n\t\t\t}\n\t\t\tl.MustSet(tt.index, tt.value)\n\t\t\tif tt.shouldPanic {\n\t\t\t\tt.Error(\"Expected panic\")\n\t\t\t}\n\t\t\t// Verify the value was set correctly for non-panic cases\n\t\t\tif !tt.shouldPanic {\n\t\t\t\tresult := l.Get(tt.index)\n\t\t\t\tuassert.Equal(t, typeutil.ToString(tt.value), typeutil.ToString(result))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSet(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tsetup func() *List\n\t\tindex int\n\t\tvalue interface{}\n\t\texpectedErr error\n\t\tverify func(t *testing.T, l *List)\n\t}{\n\t\t{\n\t\t\tname: \"set value in empty list\",\n\t\t\tsetup: func() *List {\n\t\t\t\treturn New()\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 42,\n\t\t\texpectedErr: ErrOutOfBounds,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 0, l.Size())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set value at valid index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 42,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 42, l.Get(0))\n\t\t\t\tuassert.Equal(t, 1, l.Size())\n\t\t\t\tuassert.Equal(t, 1, l.TotalSize())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set value at negative index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: -1,\n\t\t\tvalue: 42,\n\t\t\texpectedErr: ErrOutOfBounds,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 1, l.Get(0))\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set value beyond size\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 1,\n\t\t\tvalue: 42,\n\t\t\texpectedErr: ErrOutOfBounds,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 1, l.Get(0))\n\t\t\t\tuassert.Equal(t, 1, l.Size())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set nil value\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: nil,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, nil, l.Get(0))\n\t\t\t\tuassert.Equal(t, 0, l.Size())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set value at deleted index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3)\n\t\t\t\tl.Delete(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 1,\n\t\t\tvalue: 42,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 42, l.Get(1))\n\t\t\t\tuassert.Equal(t, 3, l.Size())\n\t\t\t\tuassert.Equal(t, 3, l.TotalSize())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set value in nil list\",\n\t\t\tsetup: func() *List {\n\t\t\t\treturn nil\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 42,\n\t\t\texpectedErr: ErrOutOfBounds,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 0, l.Size())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set multiple values at same index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 0,\n\t\t\tvalue: 42,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 42, l.Get(0))\n\t\t\t\terr := l.Set(0, 99)\n\t\t\t\tuassert.Equal(t, nil, err)\n\t\t\t\tuassert.Equal(t, 99, l.Get(0))\n\t\t\t\tuassert.Equal(t, 1, l.Size())\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"set value at last index\",\n\t\t\tsetup: func() *List {\n\t\t\t\tl := New()\n\t\t\t\tl.Append(1, 2, 3)\n\t\t\t\treturn l\n\t\t\t},\n\t\t\tindex: 2,\n\t\t\tvalue: 42,\n\t\t\tverify: func(t *testing.T, l *List) {\n\t\t\t\tuassert.Equal(t, 42, l.Get(2))\n\t\t\t\tuassert.Equal(t, 3, l.Size())\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tl := tt.setup()\n\t\t\terr := l.Set(tt.index, tt.value)\n\n\t\t\tif tt.expectedErr != nil {\n\t\t\t\tuassert.Equal(t, tt.expectedErr.Error(), err.Error())\n\t\t\t} else {\n\t\t\t\tuassert.Equal(t, nil, err)\n\t\t\t}\n\n\t\t\ttt.verify(t, l)\n\t\t})\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l7bOzUyZzPWMQOTe99mxWBMeiKBfLpjBQG6m0RDOVhSmN+ItAsDXCm66KDIVjiYdi+D7BUDManXjyI67F6d4Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"urequire","path":"gno.land/p/demo/urequire","files":[{"name":"urequire.gno","body":"// urequire is a sister package for uassert.\n// XXX: codegen the package.\npackage urequire\n\nimport \"gno.land/p/demo/uassert\"\n\n// type TestingT = uassert.TestingT // XXX: bug, should work\n\nfunc NoError(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.NoError(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Error(t uassert.TestingT, err error, msgs ...string) {\n\tt.Helper()\n\tif uassert.Error(t, err, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorContains(t uassert.TestingT, err error, contains string, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorContains(t, err, contains, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc True(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.True(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc False(t uassert.TestingT, value bool, msgs ...string) {\n\tt.Helper()\n\tif uassert.False(t, value, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc ErrorIs(t uassert.TestingT, err, target error, msgs ...string) {\n\tt.Helper()\n\tif uassert.ErrorIs(t, err, target, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc PanicsWithMessage(t uassert.TestingT, msg string, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.PanicsWithMessage(t, msg, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotPanics(t uassert.TestingT, f func(), msgs ...string) {\n\tt.Helper()\n\tif uassert.NotPanics(t, f, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Equal(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Equal(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEqual(t uassert.TestingT, expected, actual interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEqual(t, expected, actual, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc Empty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.Empty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n\nfunc NotEmpty(t uassert.TestingT, obj interface{}, msgs ...string) {\n\tt.Helper()\n\tif uassert.NotEmpty(t, obj, msgs...) {\n\t\treturn\n\t}\n\tt.FailNow()\n}\n"},{"name":"urequire_test.gno","body":"package urequire\n\nimport \"testing\"\n\nfunc TestPackage(t *testing.T) {\n\tEqual(t, 42, 42)\n\t// XXX: find a way to unit test this package\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"64bLIHLMgaXXvXzHSrBHx+8cySb+LqAZtv1hU5lVbmXx87l1sRv7nafUxVXz9bwTqV2KA7BzzDl6Zb5GlgJ8Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"userbook","path":"gno.land/r/demo/userbook","files":[{"name":"render.gno","body":"// Package userbook demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/moul/txlink\"\n)\n\nconst usersLink = \"/r/demo/users\"\n\nfunc Render(path string) string {\n\tp := pager.NewPager(signupsTree, 20, true)\n\tpage := p.MustGetPageByPath(path)\n\n\tout := \"# Welcome to UserBook!\\n\\n\"\n\n\tout += ufmt.Sprintf(\"## [Click here to sign up!](%s)\\n\\n\", txlink.Call(\"SignUp\"))\n\tout += \"---\\n\\n\"\n\n\tfor _, item := range page.Items {\n\t\tsignup := item.Value.(*Signup)\n\t\tuser := signup.address.String()\n\n\t\tif data := users.GetUserByAddress(signup.address); data != nil {\n\t\t\tuser = ufmt.Sprintf(\"[%s](%s:%s)\", data.Name, usersLink, data.Name)\n\t\t}\n\n\t\tout += ufmt.Sprintf(\"- **User #%d - %s - signed up on %s**\\n\\n\", signup.ordinal, user, signup.timestamp.Format(\"January 2 2006, 03:04:04 PM\"))\n\t}\n\n\tout += \"---\\n\\n\"\n\tout += \"**Page \" + strconv.Itoa(page.PageNumber) + \" of \" + strconv.Itoa(page.TotalPages) + \"**\\n\\n\"\n\tout += page.Picker()\n\treturn out\n}\n"},{"name":"userbook.gno","body":"// Package userbook demonstrates a small userbook system working with gnoweb\npackage userbook\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Signup struct {\n\taddress std.Address\n\tordinal int\n\ttimestamp time.Time\n}\n\nvar (\n\tsignupsTree = avl.NewTree()\n\ttracker = avl.NewTree()\n\tidCounter seqid.ID\n)\n\nconst signUpEvent = \"SignUp\"\n\nfunc init() {\n\tSignUp() // Sign up the deployer\n}\n\nfunc SignUp() string {\n\t// Get transaction caller\n\tcaller := std.PrevRealm().Addr()\n\n\t// Check if the user is already signed up\n\tif _, exists := tracker.Get(caller.String()); exists {\n\t\tpanic(caller.String() + \" is already signed up!\")\n\t}\n\n\tnow := time.Now()\n\n\t// Sign up the user\n\tsignupsTree.Set(idCounter.Next().String(), \u0026Signup{\n\t\tcaller,\n\t\tsignupsTree.Size(),\n\t\tnow,\n\t})\n\n\ttracker.Set(caller.String(), struct{}{})\n\n\tstd.Emit(signUpEvent, \"account\", caller.String())\n\n\treturn ufmt.Sprintf(\"%s added to userbook! Timestamp: %s\", caller.String(), now.Format(time.RFC822Z))\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7mwhPVHPp4prg4D5VYmW9mQ4WeJOCqWeZILZS6If0OlgqWb6P3F5rUze3NltbNglqDqyxdNFeNzvOJK97PtHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"users","path":"gno.land/p/demo/users","files":[{"name":"types.gno","body":"package users\n\ntype AddressOrName string\n\nfunc (aon AddressOrName) IsName() bool {\n\treturn aon != \"\" \u0026\u0026 aon[0] == '@'\n}\n\nfunc (aon AddressOrName) GetName() (string, bool) {\n\tif len(aon) \u003e= 2 \u0026\u0026 aon[0] == '@' {\n\t\treturn string(aon[1:]), true\n\t}\n\treturn \"\", false\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"std\"\n\t\"strconv\"\n)\n\n//----------------------------------------\n// Types\n\ntype User struct {\n\tAddress std.Address\n\tName string\n\tProfile string\n\tNumber int\n\tInvites int\n\tInviter std.Address\n}\n\nfunc (u *User) Render() string {\n\tstr := \"## user \" + u.Name + \"\\n\" +\n\t\t\"\\n\" +\n\t\t\" * address = \" + string(u.Address) + \"\\n\" +\n\t\t\" * \" + strconv.Itoa(u.Invites) + \" invites\\n\"\n\tif u.Inviter != \"\" {\n\t\tstr = str + \" * invited by \" + string(u.Inviter) + \"\\n\"\n\t}\n\tstr = str + \"\\n\" +\n\t\tu.Profile + \"\\n\"\n\treturn str\n}\n"},{"name":"users_test.gno","body":"package users\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yOlrFu3pBlsSKnjDGt4V6LU47uBtQ6ErrRatsBfFGrRor6lseX9Cco5EldWgZ0arkjs8uXZgu0xniINwkCZ4Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"users","path":"gno.land/r/demo/users","files":[{"name":"preregister.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/users\"\n)\n\n// pre-restricted names\nvar preRestrictedNames = []string{\n\t\"bitcoin\", \"cosmos\", \"newtendermint\", \"ethereum\",\n}\n\n// pre-registered users\nvar preRegisteredUsers = []struct {\n\tName string\n\tAddress std.Address\n}{\n\t// system name\n\t{\"archives\", \"g1xlnyjrnf03ju82v0f98ruhpgnquk28knmjfe5k\"}, // -\u003e @r_archives\n\t{\"demo\", \"g13ek2zz9qurzynzvssyc4sthwppnruhnp0gdz8n\"}, // -\u003e @r_demo\n\t{\"gno\", \"g19602kd9tfxrfd60sgreadt9zvdyyuudcyxsz8a\"}, // -\u003e @r_gno\n\t{\"gnoland\", \"g1g3lsfxhvaqgdv4ccemwpnms4fv6t3aq3p5z6u7\"}, // -\u003e @r_gnoland\n\t{\"gnolang\", \"g1yjlnm3z2630gg5mryjd79907e0zx658wxs9hnd\"}, // -\u003e @r_gnolang\n\t{\"gov\", \"g1g73v2anukg4ej7axwqpthsatzrxjsh0wk797da\"}, // -\u003e @r_gov\n\t{\"nt\", \"g15ge0ae9077eh40erwrn2eq0xw6wupwqthpv34l\"}, // -\u003e @r_nt\n\t{\"sys\", \"g1r929wt2qplfawe4lvqv9zuwfdcz4vxdun7qh8l\"}, // -\u003e @r_sys\n\t{\"x\", \"g164sdpew3c2t3rvxj3kmfv7c7ujlvcw2punzzuz\"}, // -\u003e @r_x\n\n\t// test1 user\n\t{\"test1\", \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"}, // -\u003e @test1\n}\n\nfunc init() {\n\t// add pre-registered users\n\tfor _, res := range preRegisteredUsers {\n\t\t// assert not already registered.\n\t\t_, ok := name2User.Get(res.Name)\n\t\tif ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\t_, ok = addr2User.Get(res.Address.String())\n\t\tif ok {\n\t\t\tpanic(\"address already registered\")\n\t\t}\n\n\t\tcounter++\n\t\tuser := \u0026users.User{\n\t\t\tAddress: res.Address,\n\t\t\tName: res.Name,\n\t\t\tProfile: \"\",\n\t\t\tNumber: counter,\n\t\t\tInvites: int(0),\n\t\t\tInviter: admin,\n\t\t}\n\t\tname2User.Set(res.Name, user)\n\t\taddr2User.Set(res.Address.String(), user)\n\t}\n\n\t// add pre-restricted names\n\tfor _, name := range preRestrictedNames {\n\t\tif _, ok := name2User.Get(name); ok {\n\t\t\tpanic(\"name already registered\")\n\t\t}\n\n\t\trestricted.Set(name, true)\n\t}\n}\n"},{"name":"users.gno","body":"package users\n\nimport (\n\t\"regexp\"\n\t\"std\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/avl/pager\"\n\t\"gno.land/p/demo/avlhelpers\"\n\t\"gno.land/p/demo/users\"\n)\n\n//----------------------------------------\n// State\n\nvar (\n\tadmin std.Address = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\n\trestricted avl.Tree // Name -\u003e true - restricted name\n\tname2User avl.Tree // Name -\u003e *users.User\n\taddr2User avl.Tree // std.Address -\u003e *users.User\n\tinvites avl.Tree // string(inviter+\":\"+invited) -\u003e true\n\tcounter int // user id counter\n\tminFee int64 = 20 * 1_000_000 // minimum gnot must be paid to register.\n\tmaxFeeMult int64 = 10 // maximum multiples of minFee accepted.\n)\n\n//----------------------------------------\n// Top-level functions\n\nfunc Register(inviter std.Address, name string, profile string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert invited or paid.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\n\tsentCoins := std.GetOrigSend()\n\tminCoin := std.NewCoin(\"ugnot\", minFee)\n\n\tif inviter == \"\" {\n\t\t// banker := std.GetBanker(std.BankerTypeOrigSend)\n\t\tif len(sentCoins) == 1 \u0026\u0026 sentCoins[0].IsGTE(minCoin) {\n\t\t\tif sentCoins[0].Amount \u003e minFee*maxFeeMult {\n\t\t\t\tpanic(\"payment must not be greater than \" + strconv.Itoa(int(minFee*maxFeeMult)))\n\t\t\t} else {\n\t\t\t\t// ok\n\t\t\t}\n\t\t} else {\n\t\t\tpanic(\"payment must not be less than \" + strconv.Itoa(int(minFee)))\n\t\t}\n\t} else {\n\t\tinvitekey := inviter.String() + \":\" + caller.String()\n\t\t_, ok := invites.Get(invitekey)\n\t\tif !ok {\n\t\t\tpanic(\"invalid invitation\")\n\t\t}\n\t\tinvites.Remove(invitekey)\n\t}\n\n\t// assert not already registered.\n\t_, ok := name2User.Get(name)\n\tif ok {\n\t\tpanic(\"name already registered: \" + name)\n\t}\n\t_, ok = addr2User.Get(caller.String())\n\tif ok {\n\t\tpanic(\"address already registered: \" + caller.String())\n\t}\n\n\tisInviterAdmin := inviter == admin\n\n\t// check for restricted name\n\tif _, isRestricted := restricted.Get(name); isRestricted {\n\t\t// only address invite by the admin can register restricted name\n\t\tif !isInviterAdmin {\n\t\t\tpanic(\"restricted name: \" + name)\n\t\t}\n\n\t\trestricted.Remove(name)\n\t}\n\n\t// assert name is valid.\n\t// admin inviter can bypass name restriction\n\tif !isInviterAdmin \u0026\u0026 !reName.MatchString(name) {\n\t\tpanic(\"invalid name: \" + name + \" (must be at least 6 characters, lowercase alphanumeric with underscore)\")\n\t}\n\n\t// remainder of fees go toward invites.\n\tinvites := int(0)\n\tif len(sentCoins) == 1 {\n\t\tif sentCoins[0].Denom == \"ugnot\" \u0026\u0026 sentCoins[0].Amount \u003e= minFee {\n\t\t\tinvites = int(sentCoins[0].Amount / minFee)\n\t\t\tif inviter == \"\" \u0026\u0026 invites \u003e 0 {\n\t\t\t\tinvites -= 1\n\t\t\t}\n\t\t}\n\t}\n\t// register.\n\tcounter++\n\tuser := \u0026users.User{\n\t\tAddress: caller,\n\t\tName: name,\n\t\tProfile: profile,\n\t\tNumber: counter,\n\t\tInvites: invites,\n\t\tInviter: inviter,\n\t}\n\tname2User.Set(name, user)\n\taddr2User.Set(caller.String(), user)\n}\n\nfunc Invite(invitee string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller/inviter.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tlines := strings.Split(invitee, \"\\n\")\n\tif caller == admin {\n\t\t// nothing to do, all good\n\t} else {\n\t\t// ensure has invites.\n\t\tuserI, ok := addr2User.Get(caller.String())\n\t\tif !ok {\n\t\t\tpanic(\"user unknown\")\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tif user.Invites \u003c= 0 {\n\t\t\tpanic(\"user has no invite tokens\")\n\t\t}\n\t\tuser.Invites -= len(lines)\n\t\tif user.Invites \u003c 0 {\n\t\t\tpanic(\"user has insufficient invite tokens\")\n\t\t}\n\t}\n\t// for each line...\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// record invite.\n\t\tinvitekey := string(caller) + \":\" + string(line)\n\t\tinvites.Set(invitekey, true)\n\t}\n}\n\nfunc GrantInvites(invites string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin.\n\tcaller := std.GetCallerAt(2)\n\tif caller != std.GetOrigCaller() {\n\t\tpanic(\"should not happen\") // because std.AssertOrigCall().\n\t}\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// for each line...\n\tlines := strings.Split(invites, \"\\n\")\n\tfor _, line := range lines {\n\t\tif line == \"\" {\n\t\t\tcontinue // file bodies have a trailing newline.\n\t\t} else if strings.HasPrefix(line, `//`) {\n\t\t\tcontinue // comment\n\t\t}\n\t\t// parse name and invites.\n\t\tvar name string\n\t\tvar invites int\n\t\tparts := strings.Split(line, \":\")\n\t\tif len(parts) == 1 { // short for :1.\n\t\t\tname = parts[0]\n\t\t\tinvites = 1\n\t\t} else if len(parts) == 2 {\n\t\t\tname = parts[0]\n\t\t\tinvites_, err := strconv.Atoi(parts[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tinvites = int(invites_)\n\t\t} else {\n\t\t\tpanic(\"should not happen\")\n\t\t}\n\t\t// give invites.\n\t\tuserI, ok := name2User.Get(name)\n\t\tif !ok {\n\t\t\t// maybe address.\n\t\t\tuserI, ok = addr2User.Get(name)\n\t\t\tif !ok {\n\t\t\t\tpanic(\"invalid user \" + name)\n\t\t\t}\n\t\t}\n\t\tuser := userI.(*users.User)\n\t\tuser.Invites += invites\n\t}\n}\n\n// Any leftover fees go toward invitations.\nfunc SetMinFee(newMinFee int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tminFee = newMinFee\n}\n\n// This helps prevent fat finger accidents.\nfunc SetMaxFeeMultiple(newMaxFeeMult int64) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// assert admin caller.\n\tcaller := std.GetCallerAt(2)\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\t// update global variables.\n\tmaxFeeMult = newMaxFeeMult\n}\n\n//----------------------------------------\n// Exposed public functions\n\nfunc GetUserByName(name string) *users.User {\n\tuserI, ok := name2User.Get(name)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\nfunc GetUserByAddress(addr std.Address) *users.User {\n\tuserI, ok := addr2User.Get(addr.String())\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn userI.(*users.User)\n}\n\n// unlike GetUserByName, input must be \"@\" prefixed for names.\nfunc GetUserByAddressOrName(input users.AddressOrName) *users.User {\n\tname, isName := input.GetName()\n\tif isName {\n\t\treturn GetUserByName(name)\n\t}\n\treturn GetUserByAddress(std.Address(input))\n}\n\n// Get a list of user names starting from the given prefix. Limit the\n// number of results to maxResults. (This can be used for a name search tool.)\nfunc ListUsersByPrefix(prefix string, maxResults int) []string {\n\treturn avlhelpers.ListByteStringKeysByPrefix(\u0026name2User, prefix, maxResults)\n}\n\nfunc Resolve(input users.AddressOrName) std.Address {\n\tname, isName := input.GetName()\n\tif !isName {\n\t\treturn std.Address(input) // TODO check validity\n\t}\n\n\tuser := GetUserByName(name)\n\treturn user.Address\n}\n\n// Add restricted name to the list\nfunc AdminAddRestrictedName(name string) {\n\t// assert CallTx call.\n\tstd.AssertOriginCall()\n\t// get caller\n\tcaller := std.GetOrigCaller()\n\t// assert admin\n\tif caller != admin {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tif user := GetUserByName(name); user != nil {\n\t\tpanic(\"already registered name\")\n\t}\n\n\t// register restricted name\n\n\trestricted.Set(name, true)\n}\n\n//----------------------------------------\n// Constants\n\n// NOTE: name length must be clearly distinguishable from a bech32 address.\nvar reName = regexp.MustCompile(`^[a-z]+[_a-z0-9]{5,16}$`)\n\n//----------------------------------------\n// Render main page\n\nfunc Render(fullPath string) string {\n\tpath, _ := splitPathAndQuery(fullPath)\n\tif path == \"\" {\n\t\treturn renderHome(fullPath)\n\t} else if len(path) \u003e= 38 { // 39? 40?\n\t\tif path[:2] != \"g1\" {\n\t\t\treturn \"invalid address \" + path\n\t\t}\n\t\tuser := GetUserByAddress(std.Address(path))\n\t\tif user == nil {\n\t\t\t// TODO: display basic information about account.\n\t\t\treturn \"unknown address \" + path\n\t\t}\n\t\treturn user.Render()\n\t} else {\n\t\tuser := GetUserByName(path)\n\t\tif user == nil {\n\t\t\treturn \"unknown username \" + path\n\t\t}\n\t\treturn user.Render()\n\t}\n}\n\nfunc renderHome(path string) string {\n\tdoc := \"\"\n\n\tpage := pager.NewPager(\u0026name2User, 50, false).MustGetPageByPath(path)\n\n\tfor _, item := range page.Items {\n\t\tuser := item.Value.(*users.User)\n\t\tdoc += \" * [\" + user.Name + \"](/r/demo/users:\" + user.Name + \")\\n\"\n\t}\n\tdoc += \"\\n\"\n\tdoc += page.Picker()\n\treturn doc\n}\n\nfunc splitPathAndQuery(fullPath string) (string, string) {\n\tparts := strings.SplitN(fullPath, \"?\", 2)\n\tpath := parts[0]\n\tqueryString := \"\"\n\tif len(parts) \u003e 1 {\n\t\tqueryString = \"?\" + parts[1]\n\t}\n\treturn path, queryString\n}\n"},{"name":"users_test.gno","body":"package users\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPreRegisteredTest1(t *testing.T) {\n\tnames := ListUsersByPrefix(\"test1\", 1)\n\tuassert.Equal(t, len(names), 1)\n\tuassert.Equal(t, names[0], \"test1\")\n}\n"},{"name":"z_0_b_filetest.gno","body":"package main\n\n// SEND: 19900000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// payment must not be less than 20000000\n"},{"name":"z_0_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tstd.TestSetOrigSend(std.Coins{std.NewCoin(\"dontcare\", 1)}, nil)\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// incompatible coin denominations: dontcare, ugnot\n"},{"name":"z_10_filetest.gno","body":"// PKGPATH: gno.land/r/demo/users_test\npackage users_test\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc init() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n}\n\nfunc main() {\n\t// register as test2\n\ttest2 := testutils.TestAddress(\"test2\")\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_11_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\n\t// test restricted name\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(\"\", \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// restricted name: superrestricted\n"},{"name":"z_11b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tstd.TestSetOrigCaller(admin)\n\t// add restricted name\n\tusers.AdminAddRestrictedName(\"superrestricted\")\n\t// grant invite to caller\n\tusers.Invite(caller.String())\n\t// set back caller\n\tstd.TestSetOrigCaller(caller)\n\t// register restricted name with admin invite\n\tusers.Register(admin, \"superrestricted\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_12_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"alicia\", \"my profile\")\n\n\t{\n\t\t// Normal usage\n\t\tnames := users.ListUsersByPrefix(\"a\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// Empty prefix: match all\n\t\tnames := users.ListUsersByPrefix(\"\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n\n\t{\n\t\t// The prefix is before \"alicia\"\n\t\tnames := users.ListUsersByPrefix(\"alich\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t{\n\t\t// The prefix is after the last name\n\t\tnames := users.ListUsersByPrefix(\"y\", 10)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t}\n\n\t// More tests are in p/demo/avlhelpers\n}\n\n// Output:\n// # names: 1\n// name: alicia\n// # names: 1\n// name: alicia\n// # names: 0\n// # names: 0\n"},{"name":"z_13_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"strconv\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\t{\n\t\t// Verify pre-registered test1 user\n\t\tnames := users.ListUsersByPrefix(\"test1\", 1)\n\t\tprintln(\"# names: \" + strconv.Itoa(len(names)))\n\t\tprintln(\"name: \" + names[0])\n\t}\n}\n\n// Output:\n// # names: 1\n// name: test1\n"},{"name":"z_1_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"gno.land/r/demo/users\"\n)\n\nfunc main() {\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_2_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_3_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_4_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.Invite(test1.String())\n\t// switch to test2 (not test1)\n\tstd.TestSetOrigCaller(test2)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid invitation\n"},{"name":"z_5_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\tprintln(users.Render(\"\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"?page=2\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"gnouser\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"satoshi\"))\n\tprintln(\"========================================\")\n\tprintln(users.Render(\"badname\"))\n}\n\n// Output:\n// * [archives](/r/demo/users:archives)\n// * [demo](/r/demo/users:demo)\n// * [gno](/r/demo/users:gno)\n// * [gnoland](/r/demo/users:gnoland)\n// * [gnolang](/r/demo/users:gnolang)\n// * [gnouser](/r/demo/users:gnouser)\n// * [gov](/r/demo/users:gov)\n// * [nt](/r/demo/users:nt)\n// * [satoshi](/r/demo/users:satoshi)\n// * [sys](/r/demo/users:sys)\n// * [test1](/r/demo/users:test1)\n// * [x](/r/demo/users:x)\n//\n//\n// ========================================\n//\n//\n// ========================================\n// ## user gnouser\n//\n// * address = g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n// * 9 invites\n//\n// my profile\n//\n// ========================================\n// ## user satoshi\n//\n// * address = g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7\n// * 0 invites\n// * invited by g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n//\n// my other profile\n//\n// ========================================\n// unknown username badname\n"},{"name":"z_6_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller()\n\t// as admin, grant invites to unregistered user.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm\n"},{"name":"z_7_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_7b_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and satoshi.\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test1.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"},{"name":"z_8_filetest.gno","body":"package main\n\n// SEND: 200000000ugnot\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\tusers.Register(\"\", \"gnouser\", \"my profile\")\n\t// as admin, grant invites to gnouser\n\tstd.TestSetOrigCaller(admin)\n\tusers.GrantInvites(caller.String() + \":1\")\n\t// switch back to caller\n\tstd.TestSetOrigCaller(caller)\n\t// invite another addr\n\ttest1 := testutils.TestAddress(\"test1\")\n\tusers.Invite(test1.String())\n\t// switch to test1\n\tstd.TestSetOrigCaller(test1)\n\tstd.TestSetOrigSend(std.Coins{{\"dontcare\", 1}}, nil)\n\tusers.Register(caller, \"satoshi\", \"my other profile\")\n\t// as admin, grant invites to gnouser(again) and nonexistent user.\n\tstd.TestSetOrigCaller(admin)\n\ttest2 := testutils.TestAddress(\"test2\")\n\tusers.GrantInvites(caller.String() + \":1\\n\" + test2.String() + \":1\")\n\tprintln(\"done\")\n}\n\n// Error:\n// invalid user g1w3jhxapjta047h6lta047h6lta047h6laqcyu4\n"},{"name":"z_9_filetest.gno","body":"package main\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = std.Address(\"g1manfred47kzduec920z88wfr64ylksmdcedlf5\")\n\nfunc main() {\n\tcaller := std.GetOrigCaller() // main\n\ttest2 := testutils.TestAddress(\"test2\")\n\t// as admin, invite gnouser and test2\n\tstd.TestSetOrigCaller(admin)\n\tusers.Invite(caller.String() + \"\\n\" + test2.String())\n\t// register as caller\n\tstd.TestSetOrigCaller(caller)\n\tusers.Register(admin, \"gnouser\", \"my profile\")\n\t// register as test2\n\tstd.TestSetOrigCaller(test2)\n\tusers.Register(admin, \"test222\", \"my profile 2\")\n\tprintln(\"done\")\n}\n\n// Output:\n// done\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4RVIay2B1pQ8OUXXjhYJBTQ/2ebj7LHy39halg2ZT6Lp8omNI128Tyrci4If3QTGC+upJ3K3jqn0IpZvgbXGDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"users","path":"gno.land/r/sys/users","files":[{"name":"verify.gno","body":"package users\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/r/demo/users\"\n)\n\nconst admin = \"g1manfred47kzduec920z88wfr64ylksmdcedlf5\" // @moul\n\ntype VerifyNameFunc func(enabled bool, address std.Address, name string) bool\n\nvar (\n\towner = ownable.NewWithAddress(admin) // Package owner\n\tcheckFunc = VerifyNameByUser // Checking namespace callback\n\tenabled = false // For now this package is disabled by default\n)\n\nfunc IsEnabled() bool { return enabled }\n\n// This method ensures that the given address has ownership of the given name.\nfunc IsAuthorizedAddressForName(address std.Address, name string) bool {\n\treturn checkFunc(enabled, address, name)\n}\n\n// VerifyNameByUser checks from the `users` package that the user has correctly\n// registered the given name.\n// This function considers as valid an `address` that matches the `name`.\nfunc VerifyNameByUser(enable bool, address std.Address, name string) bool {\n\tif !enable {\n\t\treturn true\n\t}\n\n\t// Allow user with their own address as name\n\tif address.String() == name {\n\t\treturn true\n\t}\n\n\tif user := users.GetUserByName(name); user != nil {\n\t\treturn user.Address == address\n\t}\n\n\treturn false\n}\n\n// Admin calls\n\n// Enable this package.\nfunc AdminEnable() {\n\tif !owner.CallerIsOwner() {\n\t\tpanic(ownable.ErrUnauthorized)\n\t}\n\n\tenabled = true\n}\n\n// Disable this package.\nfunc AdminDisable() {\n\tif !owner.CallerIsOwner() {\n\t\tpanic(ownable.ErrUnauthorized)\n\t}\n\n\tenabled = false\n}\n\n// AdminUpdateVerifyCall updates the method that verifies the namespace.\nfunc AdminUpdateVerifyCall(check VerifyNameFunc) {\n\tif !owner.CallerIsOwner() {\n\t\tpanic(ownable.ErrUnauthorized)\n\t}\n\n\tcheckFunc = check\n}\n\n// AdminTransferOwnership transfers the ownership to a new owner.\nfunc AdminTransferOwnership(newOwner std.Address) error {\n\tif !owner.CallerIsOwner() {\n\t\tpanic(ownable.ErrUnauthorized)\n\t}\n\n\treturn owner.TransferOwnership(newOwner)\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"svh2CBSdiw5mBd1FpUhnGQi1mcTZSjGKVhv7H79Bm8PHfTyk1EhngprnCmvTtX4bsKErujZMSulaKdM9ZfHQAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"validators","path":"gno.land/p/sys/validators","files":[{"name":"types.gno","body":"package validators\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\n// ValsetProtocol defines the validator set protocol (PoA / PoS / PoC / ?)\ntype ValsetProtocol interface {\n\t// AddValidator adds a new validator to the validator set.\n\t// If the validator is already present, the method should error out\n\t//\n\t// TODO: This API is not ideal -- the address should be derived from\n\t// the public key, and not be passed in as such, but currently Gno\n\t// does not support crypto address derivation\n\tAddValidator(address std.Address, pubKey string, power uint64) (Validator, error)\n\n\t// RemoveValidator removes the given validator from the set.\n\t// If the validator is not present in the set, the method should error out\n\tRemoveValidator(address std.Address) (Validator, error)\n\n\t// IsValidator returns a flag indicating if the given\n\t// bech32 address is part of the validator set\n\tIsValidator(address std.Address) bool\n\n\t// GetValidator returns the validator using the given address\n\tGetValidator(address std.Address) (Validator, error)\n\n\t// GetValidators returns the currently active validator set\n\tGetValidators() []Validator\n}\n\n// Validator represents a single chain validator\ntype Validator struct {\n\tAddress std.Address // bech32 address\n\tPubKey string // bech32 representation of the public key\n\tVotingPower uint64\n}\n\nconst (\n\tValidatorAddedEvent = \"ValidatorAdded\" // emitted when a validator was added to the set\n\tValidatorRemovedEvent = \"ValidatorRemoved\" // emitted when a validator was removed from the set\n)\n\nvar (\n\t// ErrValidatorExists is returned when the validator is already in the set\n\tErrValidatorExists = errors.New(\"validator already exists\")\n\n\t// ErrValidatorMissing is returned when the validator is not in the set\n\tErrValidatorMissing = errors.New(\"validator doesn't exist\")\n)\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Y8h/Zp34xDRW2HAGTqVkTjIja3E9xHpjZ0crR5RiyXNqyhXChtqXYc3RkzxVUWcNTpPJjc8jUWr4T2DW3k5GDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"validators","path":"gno.land/r/sys/validators/v2","files":[{"name":"doc.gno","body":"// Package validators implements the on-chain validator set management through Proof of Contribution.\n// The Realm exposes only a public executor for govdao proposals, that can suggest validator set changes.\npackage validators\n"},{"name":"gnosdk.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/sys/validators\"\n)\n\n// GetChanges returns the validator changes stored on the realm, since the given block number.\n// This function is intended to be called by gno.land through the GnoSDK\nfunc GetChanges(from int64) []validators.Validator {\n\tvalsetChanges := make([]validators.Validator, 0)\n\n\t// Gather the changes from the specified block\n\tchanges.Iterate(getBlockID(from), \"\", func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\tvalsetChanges = append(valsetChanges, ch.validator)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn valsetChanges\n}\n"},{"name":"init.gno","body":"package validators\n\nimport (\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/nt/poa\"\n)\n\nfunc init() {\n\t// The default valset protocol is PoA\n\tvp = poa.NewPoA()\n\n\t// No changes to apply initially\n\tchanges = avl.NewTree()\n}\n"},{"name":"poc.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n)\n\nconst errNoChangesProposed = \"no set changes proposed\"\n\n// NewPropExecutor creates a new executor that wraps a changes closure\n// proposal. This wrapper is required to ensure the GovDAO Realm actually\n// executed the callback.\n//\n// Concept adapted from:\n// https://github.com/gnolang/gno/pull/1945\nfunc NewPropExecutor(changesFn func() []validators.Validator) dao.Executor {\n\tif changesFn == nil {\n\t\tpanic(errNoChangesProposed)\n\t}\n\n\tcallback := func() error {\n\t\tfor _, change := range changesFn() {\n\t\t\tif change.VotingPower == 0 {\n\t\t\t\t// This change request is to remove the validator\n\t\t\t\tremoveValidator(change.Address)\n\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// This change request is to add the validator\n\t\t\taddValidator(change)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\treturn bridge.GovDAO().NewGovDAOExecutor(callback)\n}\n\n// IsValidator returns a flag indicating if the given bech32 address\n// is part of the validator set\nfunc IsValidator(addr std.Address) bool {\n\treturn vp.IsValidator(addr)\n}\n\n// GetValidators returns the typed validator set\nfunc GetValidators() []validators.Validator {\n\treturn vp.GetValidators()\n}\n"},{"name":"validators.gno","body":"package validators\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/seqid\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\nvar (\n\tvp validators.ValsetProtocol // p is the underlying validator set protocol\n\tchanges *avl.Tree // changes holds any valset changes; seqid(block number) -\u003e []change\n)\n\n// change represents a single valset change, tied to a specific block number\ntype change struct {\n\tblockNum int64 // the block number associated with the valset change\n\tvalidator validators.Validator // the validator update\n}\n\n// addValidator adds a new validator to the validator set.\n// If the validator is already present, the method errors out\nfunc addValidator(validator validators.Validator) {\n\tval, err := vp.AddValidator(validator.Address, validator.PubKey, validator.VotingPower)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator added, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: val,\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorAddedEvent)\n}\n\n// removeValidator removes the given validator from the set.\n// If the validator is not present in the set, the method errors out\nfunc removeValidator(address std.Address) {\n\tval, err := vp.RemoveValidator(address)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Validator removed, note the change\n\tch := change{\n\t\tblockNum: std.GetHeight(),\n\t\tvalidator: validators.Validator{\n\t\t\tAddress: val.Address,\n\t\t\tPubKey: val.PubKey,\n\t\t\tVotingPower: 0, // nullified the voting power indicates removal\n\t\t},\n\t}\n\n\tsaveChange(ch)\n\n\t// Emit the validator set change\n\tstd.Emit(validators.ValidatorRemovedEvent)\n}\n\n// saveChange saves the valset change\nfunc saveChange(ch change) {\n\tid := getBlockID(ch.blockNum)\n\n\tsetRaw, exists := changes.Get(id)\n\tif !exists {\n\t\tchanges.Set(id, []change{ch})\n\n\t\treturn\n\t}\n\n\t// Save the change\n\tset := setRaw.([]change)\n\tset = append(set, ch)\n\n\tchanges.Set(id, set)\n}\n\n// getBlockID converts the block number to a sequential ID\nfunc getBlockID(blockNum int64) string {\n\treturn seqid.ID(uint64(blockNum)).String()\n}\n\nfunc Render(_ string) string {\n\tvar (\n\t\tsize = changes.Size()\n\t\tmaxDisplay = 10\n\t)\n\n\tif size == 0 {\n\t\treturn \"No valset changes to apply.\"\n\t}\n\n\toutput := \"Valset changes:\\n\"\n\tchanges.ReverseIterateByOffset(size-maxDisplay, maxDisplay, func(_ string, value interface{}) bool {\n\t\tchs := value.([]change)\n\n\t\tfor _, ch := range chs {\n\t\t\toutput += ufmt.Sprintf(\n\t\t\t\t\"- #%d: %s (%d)\\n\",\n\t\t\t\tch.blockNum,\n\t\t\t\tch.validator.Address.String(),\n\t\t\t\tch.validator.VotingPower,\n\t\t\t)\n\t\t}\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n"},{"name":"validators_test.gno","body":"package validators\n\nimport (\n\t\"testing\"\n\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/p/sys/validators\"\n)\n\n// generateTestValidators generates a dummy validator set\nfunc generateTestValidators(count int) []validators.Validator {\n\tvals := make([]validators.Validator, 0, count)\n\n\tfor i := 0; i \u003c count; i++ {\n\t\tval := validators.Validator{\n\t\t\tAddress: testutils.TestAddress(ufmt.Sprintf(\"%d\", i)),\n\t\t\tPubKey: \"public-key\",\n\t\t\tVotingPower: 10,\n\t\t}\n\n\t\tvals = append(vals, val)\n\t}\n\n\treturn vals\n}\n\nfunc TestValidators_AddRemove(t *testing.T) {\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\tvar (\n\t\tvals = generateTestValidators(100)\n\t\tinitialHeight = int64(123)\n\t)\n\n\t// Add in the validators\n\tfor _, val := range vals {\n\t\taddValidator(val)\n\n\t\t// Make sure the validator is added\n\t\tuassert.True(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialHeight; i \u003c initialHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, val.VotingPower, ch.VotingPower)\n\t\t}\n\t}\n\n\t// Save the beginning height for the removal\n\tinitialRemoveHeight := std.GetHeight()\n\n\t// Clear any changes\n\tchanges = avl.NewTree()\n\n\t// Remove the validators\n\tfor _, val := range vals {\n\t\tremoveValidator(val.Address)\n\n\t\t// Make sure the validator is removed\n\t\tuassert.False(t, vp.IsValidator(val.Address))\n\n\t\tstd.TestSkipHeights(1)\n\t}\n\n\tfor i := initialRemoveHeight; i \u003c initialRemoveHeight+int64(len(vals)); i++ {\n\t\t// Make sure the changes are saved\n\t\tchs := GetChanges(i)\n\n\t\t// We use the funky index calculation to make sure\n\t\t// changes are properly handled for each block span\n\t\tuassert.Equal(t, initialRemoveHeight+int64(len(vals))-i, int64(len(chs)))\n\n\t\tfor index, val := range vals[i-initialRemoveHeight:] {\n\t\t\t// Make sure the changes are equal to the additions\n\t\t\tch := chs[index]\n\n\t\t\tuassert.Equal(t, val.Address, ch.Address)\n\t\t\tuassert.Equal(t, val.PubKey, ch.PubKey)\n\t\t\tuassert.Equal(t, uint64(0), ch.VotingPower)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SK3hPq0lfL7Mg4Y7B2Drpyi5NQ6bI3q4Dk0zkLLq883bqQEinWwFc7aw12msaTGPITNTP5ebknq3PefvVRrGBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"valopers","path":"gno.land/r/gnoland/valopers/v2","files":[{"name":"init.gno","body":"package valopers\n\nimport \"gno.land/p/demo/avl\"\n\nfunc init() {\n\tvalopers = avl.NewTree()\n}\n"},{"name":"valopers.gno","body":"// Package valopers is designed around the permissionless lifecycle of valoper profiles.\n// It also includes parts designed for govdao to propose valset changes based on registered valopers.\npackage valopers\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/dao\"\n\t\"gno.land/p/demo/ufmt\"\n\tpVals \"gno.land/p/sys/validators\"\n\t\"gno.land/r/gov/dao/bridge\"\n\tvalidators \"gno.land/r/sys/validators/v2\"\n)\n\nconst (\n\terrValoperExists = \"valoper already exists\"\n\terrValoperMissing = \"valoper does not exist\"\n\terrInvalidAddressUpdate = \"valoper updated address exists\"\n\terrValoperNotCaller = \"valoper is not the caller\"\n)\n\n// valopers keeps track of all the active validator operators\nvar valopers *avl.Tree // Address -\u003e Valoper\n\n// Valoper represents a validator operator profile\ntype Valoper struct {\n\tName string // the display name of the valoper\n\tMoniker string // the moniker of the valoper\n\tDescription string // the description of the valoper\n\n\tAddress std.Address // The bech32 gno address of the validator\n\tPubKey string // the bech32 public key of the validator\n\tP2PAddresses []string // the publicly reachable P2P addresses of the validator\n\tActive bool // flag indicating if the valoper is active\n}\n\n// Register registers a new valoper\nfunc Register(v Valoper) {\n\t// Check if the valoper is already registered\n\tif isValoper(v.Address) {\n\t\tpanic(errValoperExists)\n\t}\n\n\t// TODO add address derivation from public key\n\t// (when the laws of gno make it possible)\n\n\t// Save the valoper to the set\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// Update updates an existing valoper\nfunc Update(address std.Address, v Valoper) {\n\t// Check if the valoper is present\n\tif !isValoper(address) {\n\t\tpanic(errValoperMissing)\n\t}\n\n\t// Check that the valoper wouldn't be\n\t// overwriting an existing one\n\tisAddressUpdate := address != v.Address\n\tif isAddressUpdate \u0026\u0026 isValoper(v.Address) {\n\t\tpanic(errInvalidAddressUpdate)\n\t}\n\n\t// Remove the old valoper info\n\t// in case the address changed\n\tif address != v.Address {\n\t\tvalopers.Remove(address.String())\n\t}\n\n\t// Save the new valoper info\n\tvalopers.Set(v.Address.String(), v)\n}\n\n// GetByAddr fetches the valoper using the address, if present\nfunc GetByAddr(address std.Address) Valoper {\n\tvaloperRaw, exists := valopers.Get(address.String())\n\tif !exists {\n\t\tpanic(errValoperMissing)\n\t}\n\n\treturn valoperRaw.(Valoper)\n}\n\n// Render renders the current valoper set\nfunc Render(_ string) string {\n\tif valopers.Size() == 0 {\n\t\treturn \"No valopers to display.\"\n\t}\n\n\toutput := \"Valset changes to apply:\\n\"\n\tvalopers.Iterate(\"\", \"\", func(_ string, value interface{}) bool {\n\t\tvaloper := value.(Valoper)\n\n\t\toutput += valoper.Render()\n\n\t\treturn false\n\t})\n\n\treturn output\n}\n\n// Render renders a single valoper with their information\nfunc (v Valoper) Render() string {\n\toutput := ufmt.Sprintf(\"## %s (%s)\\n\", v.Name, v.Moniker)\n\toutput += ufmt.Sprintf(\"%s\\n\\n\", v.Description)\n\toutput += ufmt.Sprintf(\"- Address: %s\\n\", v.Address.String())\n\toutput += ufmt.Sprintf(\"- PubKey: %s\\n\", v.PubKey)\n\toutput += \"- P2P Addresses: [\\n\"\n\n\tif len(v.P2PAddresses) == 0 {\n\t\toutput += \"]\\n\"\n\n\t\treturn output\n\t}\n\n\tfor index, addr := range v.P2PAddresses {\n\t\toutput += addr\n\n\t\tif index == len(v.P2PAddresses)-1 {\n\t\t\toutput += \"]\\n\"\n\n\t\t\tcontinue\n\t\t}\n\n\t\toutput += \",\\n\"\n\t}\n\n\treturn output\n}\n\n// isValoper checks if the valoper exists\nfunc isValoper(address std.Address) bool {\n\t_, exists := valopers.Get(address.String())\n\n\treturn exists\n}\n\n// GovDAOProposal creates a proposal to the GovDAO\n// for adding the given valoper to the validator set.\n// This function is meant to serve as a helper\n// for generating the govdao proposal\nfunc GovDAOProposal(address std.Address) {\n\tvar (\n\t\tvaloper = GetByAddr(address)\n\t\tvotingPower = uint64(1)\n\t)\n\n\t// Make sure the valoper is the caller\n\tif std.GetOrigCaller() != address {\n\t\tpanic(errValoperNotCaller)\n\t}\n\n\t// Determine the voting power\n\tif !valoper.Active {\n\t\tvotingPower = uint64(0)\n\t}\n\n\tchangesFn := func() []pVals.Validator {\n\t\treturn []pVals.Validator{\n\t\t\t{\n\t\t\t\tAddress: valoper.Address,\n\t\t\t\tPubKey: valoper.PubKey,\n\t\t\t\tVotingPower: votingPower,\n\t\t\t},\n\t\t}\n\t}\n\n\t// Create the executor\n\texecutor := validators.NewPropExecutor(changesFn)\n\n\t// Craft the proposal description\n\tdescription := ufmt.Sprintf(\n\t\t\"Add valoper %s (Address: %s; PubKey: %s) to the valset\",\n\t\tvaloper.Name,\n\t\tvaloper.Address.String(),\n\t\tvaloper.PubKey,\n\t)\n\n\tprop := dao.ProposalRequest{\n\t\tDescription: description,\n\t\tExecutor: executor,\n\t}\n\n\t// Create the govdao proposal\n\tbridge.GovDAO().Propose(prop)\n}\n"},{"name":"valopers_test.gno","body":"package valopers\n\nimport (\n\t\"testing\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestValopers_Register(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"already a valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tvalopers.Set(v.Address.String(), v)\n\n\t\tuassert.PanicsWithMessage(t, errValoperExists, func() {\n\t\t\tRegister(v)\n\t\t})\n\t})\n\n\tt.Run(\"successful registration\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\tName: \"new valoper\",\n\t\t\tMoniker: \"val-1\",\n\t\t\tPubKey: \"pub key\",\n\t\t}\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Address, valoper.Address)\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Moniker, valoper.Moniker)\n\t\t\tuassert.Equal(t, v.PubKey, valoper.PubKey)\n\t\t})\n\t})\n}\n\nfunc TestValopers_Update(t *testing.T) {\n\tt.Parallel()\n\n\tt.Run(\"non-existing valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tv := Valoper{}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errValoperMissing, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\t})\n\n\tt.Run(\"overwrite valoper\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tone := Valoper{\n\t\t\tAddress: testutils.TestAddress(\"valoper 1\"),\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(one)\n\t\t})\n\n\t\tinitialAddress := testutils.TestAddress(\"valoper 2\")\n\t\ttwo := Valoper{\n\t\t\tAddress: initialAddress,\n\t\t}\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(two)\n\t\t})\n\n\t\t// Update the valoper address\n\t\t// so it overlaps\n\t\ttwo = Valoper{\n\t\t\tAddress: one.Address,\n\t\t}\n\n\t\t// Update the valoper\n\t\tuassert.PanicsWithMessage(t, errInvalidAddressUpdate, func() {\n\t\t\tUpdate(initialAddress, two)\n\t\t})\n\t})\n\n\tt.Run(\"successful update\", func(t *testing.T) {\n\t\tt.Parallel()\n\n\t\t// Clear the set for the test\n\t\tvalopers = avl.NewTree()\n\n\t\tvar (\n\t\t\tname = \"new valoper\"\n\t\t\tv = Valoper{\n\t\t\t\tAddress: testutils.TestAddress(\"valoper\"),\n\t\t\t\tName: name,\n\t\t\t\tPubKey: \"pub key\",\n\t\t\t}\n\t\t)\n\n\t\t// Add the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tRegister(v)\n\t\t})\n\n\t\t// Update the valoper name\n\t\tv.Name = \"new name\"\n\t\tv.Active = false\n\n\t\t// Update the valoper\n\t\tuassert.NotPanics(t, func() {\n\t\t\tUpdate(v.Address, v)\n\t\t})\n\n\t\t// Make sure the valoper is updated\n\t\tuassert.NotPanics(t, func() {\n\t\t\tvaloper := GetByAddr(v.Address)\n\n\t\t\tuassert.Equal(t, v.Name, valoper.Name)\n\t\t\tuassert.Equal(t, v.Active, valoper.Active)\n\t\t})\n\t})\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7blCP+GXLE4epfxdXr6gQk6y/juu6gTVxyb7VsvXIcK22sVgh3GaREGAPOA6ilfKuBI7MpqznMF2dJDPJcTEDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"watchdog","path":"gno.land/p/demo/watchdog","files":[{"name":"watchdog.gno","body":"package watchdog\n\nimport \"time\"\n\ntype Watchdog struct {\n\tDuration time.Duration\n\tlastUpdate time.Time\n\tlastDown time.Time\n}\n\nfunc (w *Watchdog) Alive() {\n\tnow := time.Now()\n\tif !w.IsAlive() {\n\t\tw.lastDown = now\n\t}\n\tw.lastUpdate = now\n}\n\nfunc (w Watchdog) Status() string {\n\tif w.IsAlive() {\n\t\treturn \"OK\"\n\t}\n\treturn \"KO\"\n}\n\nfunc (w Watchdog) IsAlive() bool {\n\treturn time.Since(w.lastUpdate) \u003c w.Duration\n}\n\nfunc (w Watchdog) UpSince() time.Time {\n\treturn w.lastDown\n}\n\nfunc (w Watchdog) DownSince() time.Time {\n\tif !w.IsAlive() {\n\t\treturn w.lastUpdate\n\t}\n\treturn time.Time{}\n}\n"},{"name":"watchdog_test.gno","body":"package watchdog\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"gno.land/p/demo/uassert\"\n)\n\nfunc TestPackage(t *testing.T) {\n\tw := Watchdog{Duration: 5 * time.Minute}\n\tuassert.False(t, w.IsAlive())\n\tw.Alive()\n\tuassert.True(t, w.IsAlive())\n\t// XXX: add more tests when we'll be able to \"skip time\".\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wVwPfsmUxsfYB0KoaIjQOF+/j6QWGGzQG4WqZdm1aYW8iR/dAlfjlJZezFfQ270OgnsfzoSPH7UyeBQoeJMwCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"web25","path":"gno.land/p/moul/web25","files":[{"name":"web25.gno","body":"// Pacakge web25 provides an opinionated way to register an external web2\n// frontend to provide a \"better\" web2.5 experience.\npackage web25\n\nimport (\n\t\"strings\"\n\n\t\"gno.land/p/moul/realmpath\"\n)\n\ntype Config struct {\n\tCID string\n\tURL string\n\tText string\n}\n\nfunc (c *Config) SetRemoteFrontendByURL(url string) {\n\tc.CID = \"\"\n\tc.URL = url\n}\n\nfunc (c *Config) SetRemoteFrontendByCID(cid string) {\n\tc.CID = cid\n\tc.URL = \"\"\n}\n\nfunc (c Config) GetLink() string {\n\tif c.CID != \"\" {\n\t\treturn \"https://ipfs.io/ipfs/\" + c.CID\n\t}\n\treturn c.URL\n}\n\nconst DefaultText = \"Click [here]({link}) to visit the full rendering experience.\\n\"\n\n// Render displays a frontend link at the top of your realm's Render function in\n// a concistent way to help gno visitors to have a consistent experience.\n//\n// if query is not nil, then it will check if it's not disable by ?no-web25, so\n// that you can call the render function from an external point of view.\nfunc (c Config) Render(path string) string {\n\tif realmpath.Parse(path).Query.Get(\"no-web25\") == \"1\" {\n\t\treturn \"\"\n\t}\n\ttext := c.Text\n\tif text == \"\" {\n\t\ttext = DefaultText\n\t}\n\ttext = strings.ReplaceAll(text, \"{link}\", c.GetLink())\n\treturn text\n}\n"},{"name":"web25_test.gno","body":"package web25\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SDO8ZZBD6n7tmlJ7D6z6jEpLqMYeI9uNvFS8RmjbA1js+ikO24O23N6NajZJGos8ctAN3W0+9hZWU4xOAkxNCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"wugnot","path":"gno.land/r/demo/wugnot","files":[{"name":"wugnot.gno","body":"package wugnot\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/p/demo/grc/grc20\"\n\t\"gno.land/p/demo/ufmt\"\n\tpusers \"gno.land/p/demo/users\"\n\t\"gno.land/r/demo/grc20reg\"\n\t\"gno.land/r/demo/users\"\n)\n\nvar Token, adm = grc20.NewToken(\"wrapped GNOT\", \"wugnot\", 0)\n\nconst (\n\tugnotMinDeposit uint64 = 1000\n\twugnotMinDeposit uint64 = 1\n)\n\nfunc init() {\n\tgrc20reg.Register(Token.Getter(), \"\")\n}\n\nfunc Deposit() {\n\tcaller := std.PrevRealm().Addr()\n\tsent := std.GetOrigSend()\n\tamount := sent.AmountOf(\"ugnot\")\n\n\trequire(uint64(amount) \u003e= ugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d ugnot.\", amount, ugnotMinDeposit))\n\n\tcheckErr(adm.Mint(caller, uint64(amount)))\n}\n\nfunc Withdraw(amount uint64) {\n\trequire(amount \u003e= wugnotMinDeposit, ufmt.Sprintf(\"Deposit below minimum: %d/%d wugnot.\", amount, wugnotMinDeposit))\n\n\tcaller := std.PrevRealm().Addr()\n\tpkgaddr := std.CurrentRealm().Addr()\n\tcallerBal := Token.BalanceOf(caller)\n\trequire(amount \u003c= callerBal, ufmt.Sprintf(\"Insufficient balance: %d available, %d needed.\", callerBal, amount))\n\n\t// send swapped ugnots to qcaller\n\tstdBanker := std.GetBanker(std.BankerTypeRealmSend)\n\tsend := std.Coins{{\"ugnot\", int64(amount)}}\n\tstdBanker.SendCoins(pkgaddr, caller, send)\n\tcheckErr(adm.Burn(caller, amount))\n}\n\nfunc Render(path string) string {\n\tparts := strings.Split(path, \"/\")\n\tc := len(parts)\n\n\tswitch {\n\tcase path == \"\":\n\t\treturn Token.RenderHome()\n\tcase c == 2 \u0026\u0026 parts[0] == \"balance\":\n\t\towner := std.Address(parts[1])\n\t\tbalance := Token.BalanceOf(owner)\n\t\treturn ufmt.Sprintf(\"%d\", balance)\n\tdefault:\n\t\treturn \"404\"\n\t}\n}\n\nfunc TotalSupply() uint64 { return Token.TotalSupply() }\n\nfunc BalanceOf(owner pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\treturn Token.BalanceOf(ownerAddr)\n}\n\nfunc Allowance(owner, spender pusers.AddressOrName) uint64 {\n\townerAddr := users.Resolve(owner)\n\tspenderAddr := users.Resolve(spender)\n\treturn Token.Allowance(ownerAddr, spenderAddr)\n}\n\nfunc Transfer(to pusers.AddressOrName, amount uint64) {\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Transfer(toAddr, amount))\n}\n\nfunc Approve(spender pusers.AddressOrName, amount uint64) {\n\tspenderAddr := users.Resolve(spender)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.Approve(spenderAddr, amount))\n}\n\nfunc TransferFrom(from, to pusers.AddressOrName, amount uint64) {\n\tfromAddr := users.Resolve(from)\n\ttoAddr := users.Resolve(to)\n\tuserTeller := Token.CallerTeller()\n\tcheckErr(userTeller.TransferFrom(fromAddr, toAddr, amount))\n}\n\nfunc require(condition bool, msg string) {\n\tif !condition {\n\t\tpanic(msg)\n\t}\n}\n\nfunc checkErr(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"},{"name":"z0_filetest.gno","body":"// PKGPATH: gno.land/r/demo/wugnot_test\npackage wugnot_test\n\nimport (\n\t\"fmt\"\n\t\"std\"\n\n\t\"gno.land/p/demo/testutils\"\n\t\"gno.land/r/demo/wugnot\"\n\n\tpusers \"gno.land/p/demo/users\"\n)\n\nvar (\n\taddr1 = testutils.TestAddress(\"test1\")\n\taddrc = std.DerivePkgAddr(\"gno.land/r/demo/wugnot\")\n\taddrt = std.DerivePkgAddr(\"gno.land/r/demo/wugnot_test\")\n)\n\nfunc main() {\n\tstd.TestSetOrigPkgAddr(addrc)\n\tstd.TestIssueCoins(addrc, std.Coins{{\"ugnot\", 100000001}}) // TODO: remove this\n\n\t// issue ugnots\n\tstd.TestIssueCoins(addr1, std.Coins{{\"ugnot\", 100000001}})\n\n\t// print initial state\n\tprintBalances()\n\t// println(wugnot.Render(\"queues\"))\n\t// println(\"A -\", wugnot.Render(\"\"))\n\n\tstd.TestSetOrigCaller(addr1)\n\tstd.TestSetOrigSend(std.Coins{{\"ugnot\", 123_400}}, nil)\n\twugnot.Deposit()\n\tprintBalances()\n\twugnot.Withdraw(4242)\n\tprintBalances()\n}\n\nfunc printBalances() {\n\tprintSingleBalance := func(name string, addr std.Address) {\n\t\twugnotBal := wugnot.BalanceOf(pusers.AddressOrName(addr))\n\t\tstd.TestSetOrigCaller(addr)\n\t\trobanker := std.GetBanker(std.BankerTypeReadonly)\n\t\tcoins := robanker.GetCoins(addr).AmountOf(\"ugnot\")\n\t\tfmt.Printf(\"| %-13s | addr=%s | wugnot=%-5d | ugnot=%-9d |\\n\",\n\t\t\tname, addr, wugnotBal, coins)\n\t}\n\tprintln(\"-----------\")\n\tprintSingleBalance(\"wugnot_test\", addrt)\n\tprintSingleBalance(\"wugnot\", addrc)\n\tprintSingleBalance(\"addr1\", addr1)\n\tprintln(\"-----------\")\n}\n\n// Output:\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=0 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=123400 | ugnot=0 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=100000001 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n// -----------\n// | wugnot_test | addr=g19rmydykafrqyyegc8uuaxxpzqwzcnxraj2dev9 | wugnot=119158 | ugnot=4242 |\n// | wugnot | addr=g1pf6dv9fjk3rn0m4jjcne306ga4he3mzmupfjl6 | wugnot=0 | ugnot=99995759 |\n// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |\n// -----------\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0idgmxqlh2L4rJlv2WQxsZhHcGpug7WXs7fWvnlU3eoC3prGZnmgMSocmJ2CfNtfSxdFrGCsGBrPeE2cGAaQDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"xmath","path":"gno.land/p/moul/xmath","files":[{"name":"xmath.gen.gno","body":"// Code generated by generator.go; DO NOT EDIT.\npackage xmath\n\n// Int8 helpers\nfunc MaxInt8(a, b int8) int8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinInt8(a, b int8) int8 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampInt8(value, min, max int8) int8 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsInt8(x int8) int8 {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignInt8(x int8) int8 {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Int16 helpers\nfunc MaxInt16(a, b int16) int16 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinInt16(a, b int16) int16 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampInt16(value, min, max int16) int16 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsInt16(x int16) int16 {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignInt16(x int16) int16 {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Int32 helpers\nfunc MaxInt32(a, b int32) int32 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinInt32(a, b int32) int32 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampInt32(value, min, max int32) int32 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsInt32(x int32) int32 {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignInt32(x int32) int32 {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Int64 helpers\nfunc MaxInt64(a, b int64) int64 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinInt64(a, b int64) int64 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampInt64(value, min, max int64) int64 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsInt64(x int64) int64 {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignInt64(x int64) int64 {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Int helpers\nfunc MaxInt(a, b int) int {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinInt(a, b int) int {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampInt(value, min, max int) int {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsInt(x int) int {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignInt(x int) int {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Uint8 helpers\nfunc MaxUint8(a, b uint8) uint8 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinUint8(a, b uint8) uint8 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampUint8(value, min, max uint8) uint8 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\n// Uint16 helpers\nfunc MaxUint16(a, b uint16) uint16 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinUint16(a, b uint16) uint16 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampUint16(value, min, max uint16) uint16 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\n// Uint32 helpers\nfunc MaxUint32(a, b uint32) uint32 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinUint32(a, b uint32) uint32 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampUint32(value, min, max uint32) uint32 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\n// Uint64 helpers\nfunc MaxUint64(a, b uint64) uint64 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinUint64(a, b uint64) uint64 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampUint64(value, min, max uint64) uint64 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\n// Uint helpers\nfunc MaxUint(a, b uint) uint {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinUint(a, b uint) uint {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampUint(value, min, max uint) uint {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\n// Float32 helpers\nfunc MaxFloat32(a, b float32) float32 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinFloat32(a, b float32) float32 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampFloat32(value, min, max float32) float32 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsFloat32(x float32) float32 {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignFloat32(x float32) float32 {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\n// Float64 helpers\nfunc MaxFloat64(a, b float64) float64 {\n\tif a \u003e b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc MinFloat64(a, b float64) float64 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc ClampFloat64(value, min, max float64) float64 {\n\tif value \u003c min {\n\t\treturn min\n\t}\n\tif value \u003e max {\n\t\treturn max\n\t}\n\treturn value\n}\n\nfunc AbsFloat64(x float64) float64 {\n\tif x \u003c 0 {\n\t\treturn -x\n\t}\n\treturn x\n}\n\nfunc SignFloat64(x float64) float64 {\n\tif x \u003c 0 {\n\t\treturn -1\n\t}\n\tif x \u003e 0 {\n\t\treturn 1\n\t}\n\treturn 0\n}\n"},{"name":"xmath.gen_test.gno","body":"package xmath\n\nimport \"testing\"\n\nfunc TestInt8Helpers(t *testing.T) {\n\t// Test MaxInt8\n\tif MaxInt8(1, 2) != 2 {\n\t\tt.Error(\"MaxInt8(1, 2) should be 2\")\n\t}\n\tif MaxInt8(-1, -2) != -1 {\n\t\tt.Error(\"MaxInt8(-1, -2) should be -1\")\n\t}\n\n\t// Test MinInt8\n\tif MinInt8(1, 2) != 1 {\n\t\tt.Error(\"MinInt8(1, 2) should be 1\")\n\t}\n\tif MinInt8(-1, -2) != -2 {\n\t\tt.Error(\"MinInt8(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampInt8\n\tif ClampInt8(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampInt8(5, 1, 3) should be 3\")\n\t}\n\tif ClampInt8(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampInt8(0, 1, 3) should be 1\")\n\t}\n\tif ClampInt8(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampInt8(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsInt8\n\tif AbsInt8(-5) != 5 {\n\t\tt.Error(\"AbsInt8(-5) should be 5\")\n\t}\n\tif AbsInt8(5) != 5 {\n\t\tt.Error(\"AbsInt8(5) should be 5\")\n\t}\n\n\t// Test SignInt8\n\tif SignInt8(-5) != -1 {\n\t\tt.Error(\"SignInt8(-5) should be -1\")\n\t}\n\tif SignInt8(5) != 1 {\n\t\tt.Error(\"SignInt8(5) should be 1\")\n\t}\n\tif SignInt8(0) != 0 {\n\t\tt.Error(\"SignInt8(0) should be 0\")\n\t}\n\n}\n\nfunc TestInt16Helpers(t *testing.T) {\n\t// Test MaxInt16\n\tif MaxInt16(1, 2) != 2 {\n\t\tt.Error(\"MaxInt16(1, 2) should be 2\")\n\t}\n\tif MaxInt16(-1, -2) != -1 {\n\t\tt.Error(\"MaxInt16(-1, -2) should be -1\")\n\t}\n\n\t// Test MinInt16\n\tif MinInt16(1, 2) != 1 {\n\t\tt.Error(\"MinInt16(1, 2) should be 1\")\n\t}\n\tif MinInt16(-1, -2) != -2 {\n\t\tt.Error(\"MinInt16(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampInt16\n\tif ClampInt16(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampInt16(5, 1, 3) should be 3\")\n\t}\n\tif ClampInt16(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampInt16(0, 1, 3) should be 1\")\n\t}\n\tif ClampInt16(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampInt16(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsInt16\n\tif AbsInt16(-5) != 5 {\n\t\tt.Error(\"AbsInt16(-5) should be 5\")\n\t}\n\tif AbsInt16(5) != 5 {\n\t\tt.Error(\"AbsInt16(5) should be 5\")\n\t}\n\n\t// Test SignInt16\n\tif SignInt16(-5) != -1 {\n\t\tt.Error(\"SignInt16(-5) should be -1\")\n\t}\n\tif SignInt16(5) != 1 {\n\t\tt.Error(\"SignInt16(5) should be 1\")\n\t}\n\tif SignInt16(0) != 0 {\n\t\tt.Error(\"SignInt16(0) should be 0\")\n\t}\n\n}\n\nfunc TestInt32Helpers(t *testing.T) {\n\t// Test MaxInt32\n\tif MaxInt32(1, 2) != 2 {\n\t\tt.Error(\"MaxInt32(1, 2) should be 2\")\n\t}\n\tif MaxInt32(-1, -2) != -1 {\n\t\tt.Error(\"MaxInt32(-1, -2) should be -1\")\n\t}\n\n\t// Test MinInt32\n\tif MinInt32(1, 2) != 1 {\n\t\tt.Error(\"MinInt32(1, 2) should be 1\")\n\t}\n\tif MinInt32(-1, -2) != -2 {\n\t\tt.Error(\"MinInt32(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampInt32\n\tif ClampInt32(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampInt32(5, 1, 3) should be 3\")\n\t}\n\tif ClampInt32(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampInt32(0, 1, 3) should be 1\")\n\t}\n\tif ClampInt32(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampInt32(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsInt32\n\tif AbsInt32(-5) != 5 {\n\t\tt.Error(\"AbsInt32(-5) should be 5\")\n\t}\n\tif AbsInt32(5) != 5 {\n\t\tt.Error(\"AbsInt32(5) should be 5\")\n\t}\n\n\t// Test SignInt32\n\tif SignInt32(-5) != -1 {\n\t\tt.Error(\"SignInt32(-5) should be -1\")\n\t}\n\tif SignInt32(5) != 1 {\n\t\tt.Error(\"SignInt32(5) should be 1\")\n\t}\n\tif SignInt32(0) != 0 {\n\t\tt.Error(\"SignInt32(0) should be 0\")\n\t}\n\n}\n\nfunc TestInt64Helpers(t *testing.T) {\n\t// Test MaxInt64\n\tif MaxInt64(1, 2) != 2 {\n\t\tt.Error(\"MaxInt64(1, 2) should be 2\")\n\t}\n\tif MaxInt64(-1, -2) != -1 {\n\t\tt.Error(\"MaxInt64(-1, -2) should be -1\")\n\t}\n\n\t// Test MinInt64\n\tif MinInt64(1, 2) != 1 {\n\t\tt.Error(\"MinInt64(1, 2) should be 1\")\n\t}\n\tif MinInt64(-1, -2) != -2 {\n\t\tt.Error(\"MinInt64(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampInt64\n\tif ClampInt64(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampInt64(5, 1, 3) should be 3\")\n\t}\n\tif ClampInt64(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampInt64(0, 1, 3) should be 1\")\n\t}\n\tif ClampInt64(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampInt64(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsInt64\n\tif AbsInt64(-5) != 5 {\n\t\tt.Error(\"AbsInt64(-5) should be 5\")\n\t}\n\tif AbsInt64(5) != 5 {\n\t\tt.Error(\"AbsInt64(5) should be 5\")\n\t}\n\n\t// Test SignInt64\n\tif SignInt64(-5) != -1 {\n\t\tt.Error(\"SignInt64(-5) should be -1\")\n\t}\n\tif SignInt64(5) != 1 {\n\t\tt.Error(\"SignInt64(5) should be 1\")\n\t}\n\tif SignInt64(0) != 0 {\n\t\tt.Error(\"SignInt64(0) should be 0\")\n\t}\n\n}\n\nfunc TestIntHelpers(t *testing.T) {\n\t// Test MaxInt\n\tif MaxInt(1, 2) != 2 {\n\t\tt.Error(\"MaxInt(1, 2) should be 2\")\n\t}\n\tif MaxInt(-1, -2) != -1 {\n\t\tt.Error(\"MaxInt(-1, -2) should be -1\")\n\t}\n\n\t// Test MinInt\n\tif MinInt(1, 2) != 1 {\n\t\tt.Error(\"MinInt(1, 2) should be 1\")\n\t}\n\tif MinInt(-1, -2) != -2 {\n\t\tt.Error(\"MinInt(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampInt\n\tif ClampInt(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampInt(5, 1, 3) should be 3\")\n\t}\n\tif ClampInt(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampInt(0, 1, 3) should be 1\")\n\t}\n\tif ClampInt(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampInt(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsInt\n\tif AbsInt(-5) != 5 {\n\t\tt.Error(\"AbsInt(-5) should be 5\")\n\t}\n\tif AbsInt(5) != 5 {\n\t\tt.Error(\"AbsInt(5) should be 5\")\n\t}\n\n\t// Test SignInt\n\tif SignInt(-5) != -1 {\n\t\tt.Error(\"SignInt(-5) should be -1\")\n\t}\n\tif SignInt(5) != 1 {\n\t\tt.Error(\"SignInt(5) should be 1\")\n\t}\n\tif SignInt(0) != 0 {\n\t\tt.Error(\"SignInt(0) should be 0\")\n\t}\n\n}\n\nfunc TestUint8Helpers(t *testing.T) {\n\t// Test MaxUint8\n\tif MaxUint8(1, 2) != 2 {\n\t\tt.Error(\"MaxUint8(1, 2) should be 2\")\n\t}\n\n\t// Test MinUint8\n\tif MinUint8(1, 2) != 1 {\n\t\tt.Error(\"MinUint8(1, 2) should be 1\")\n\t}\n\n\t// Test ClampUint8\n\tif ClampUint8(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampUint8(5, 1, 3) should be 3\")\n\t}\n\tif ClampUint8(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampUint8(0, 1, 3) should be 1\")\n\t}\n\tif ClampUint8(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampUint8(2, 1, 3) should be 2\")\n\t}\n\n}\n\nfunc TestUint16Helpers(t *testing.T) {\n\t// Test MaxUint16\n\tif MaxUint16(1, 2) != 2 {\n\t\tt.Error(\"MaxUint16(1, 2) should be 2\")\n\t}\n\n\t// Test MinUint16\n\tif MinUint16(1, 2) != 1 {\n\t\tt.Error(\"MinUint16(1, 2) should be 1\")\n\t}\n\n\t// Test ClampUint16\n\tif ClampUint16(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampUint16(5, 1, 3) should be 3\")\n\t}\n\tif ClampUint16(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampUint16(0, 1, 3) should be 1\")\n\t}\n\tif ClampUint16(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampUint16(2, 1, 3) should be 2\")\n\t}\n\n}\n\nfunc TestUint32Helpers(t *testing.T) {\n\t// Test MaxUint32\n\tif MaxUint32(1, 2) != 2 {\n\t\tt.Error(\"MaxUint32(1, 2) should be 2\")\n\t}\n\n\t// Test MinUint32\n\tif MinUint32(1, 2) != 1 {\n\t\tt.Error(\"MinUint32(1, 2) should be 1\")\n\t}\n\n\t// Test ClampUint32\n\tif ClampUint32(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampUint32(5, 1, 3) should be 3\")\n\t}\n\tif ClampUint32(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampUint32(0, 1, 3) should be 1\")\n\t}\n\tif ClampUint32(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampUint32(2, 1, 3) should be 2\")\n\t}\n\n}\n\nfunc TestUint64Helpers(t *testing.T) {\n\t// Test MaxUint64\n\tif MaxUint64(1, 2) != 2 {\n\t\tt.Error(\"MaxUint64(1, 2) should be 2\")\n\t}\n\n\t// Test MinUint64\n\tif MinUint64(1, 2) != 1 {\n\t\tt.Error(\"MinUint64(1, 2) should be 1\")\n\t}\n\n\t// Test ClampUint64\n\tif ClampUint64(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampUint64(5, 1, 3) should be 3\")\n\t}\n\tif ClampUint64(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampUint64(0, 1, 3) should be 1\")\n\t}\n\tif ClampUint64(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampUint64(2, 1, 3) should be 2\")\n\t}\n\n}\n\nfunc TestUintHelpers(t *testing.T) {\n\t// Test MaxUint\n\tif MaxUint(1, 2) != 2 {\n\t\tt.Error(\"MaxUint(1, 2) should be 2\")\n\t}\n\n\t// Test MinUint\n\tif MinUint(1, 2) != 1 {\n\t\tt.Error(\"MinUint(1, 2) should be 1\")\n\t}\n\n\t// Test ClampUint\n\tif ClampUint(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampUint(5, 1, 3) should be 3\")\n\t}\n\tif ClampUint(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampUint(0, 1, 3) should be 1\")\n\t}\n\tif ClampUint(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampUint(2, 1, 3) should be 2\")\n\t}\n\n}\n\nfunc TestFloat32Helpers(t *testing.T) {\n\t// Test MaxFloat32\n\tif MaxFloat32(1, 2) != 2 {\n\t\tt.Error(\"MaxFloat32(1, 2) should be 2\")\n\t}\n\tif MaxFloat32(-1, -2) != -1 {\n\t\tt.Error(\"MaxFloat32(-1, -2) should be -1\")\n\t}\n\n\t// Test MinFloat32\n\tif MinFloat32(1, 2) != 1 {\n\t\tt.Error(\"MinFloat32(1, 2) should be 1\")\n\t}\n\tif MinFloat32(-1, -2) != -2 {\n\t\tt.Error(\"MinFloat32(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampFloat32\n\tif ClampFloat32(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampFloat32(5, 1, 3) should be 3\")\n\t}\n\tif ClampFloat32(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampFloat32(0, 1, 3) should be 1\")\n\t}\n\tif ClampFloat32(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampFloat32(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsFloat32\n\tif AbsFloat32(-5) != 5 {\n\t\tt.Error(\"AbsFloat32(-5) should be 5\")\n\t}\n\tif AbsFloat32(5) != 5 {\n\t\tt.Error(\"AbsFloat32(5) should be 5\")\n\t}\n\n\t// Test SignFloat32\n\tif SignFloat32(-5) != -1 {\n\t\tt.Error(\"SignFloat32(-5) should be -1\")\n\t}\n\tif SignFloat32(5) != 1 {\n\t\tt.Error(\"SignFloat32(5) should be 1\")\n\t}\n\tif SignFloat32(0.0) != 0 {\n\t\tt.Error(\"SignFloat32(0.0) should be 0\")\n\t}\n\n}\n\nfunc TestFloat64Helpers(t *testing.T) {\n\t// Test MaxFloat64\n\tif MaxFloat64(1, 2) != 2 {\n\t\tt.Error(\"MaxFloat64(1, 2) should be 2\")\n\t}\n\tif MaxFloat64(-1, -2) != -1 {\n\t\tt.Error(\"MaxFloat64(-1, -2) should be -1\")\n\t}\n\n\t// Test MinFloat64\n\tif MinFloat64(1, 2) != 1 {\n\t\tt.Error(\"MinFloat64(1, 2) should be 1\")\n\t}\n\tif MinFloat64(-1, -2) != -2 {\n\t\tt.Error(\"MinFloat64(-1, -2) should be -2\")\n\t}\n\n\t// Test ClampFloat64\n\tif ClampFloat64(5, 1, 3) != 3 {\n\t\tt.Error(\"ClampFloat64(5, 1, 3) should be 3\")\n\t}\n\tif ClampFloat64(0, 1, 3) != 1 {\n\t\tt.Error(\"ClampFloat64(0, 1, 3) should be 1\")\n\t}\n\tif ClampFloat64(2, 1, 3) != 2 {\n\t\tt.Error(\"ClampFloat64(2, 1, 3) should be 2\")\n\t}\n\n\t// Test AbsFloat64\n\tif AbsFloat64(-5) != 5 {\n\t\tt.Error(\"AbsFloat64(-5) should be 5\")\n\t}\n\tif AbsFloat64(5) != 5 {\n\t\tt.Error(\"AbsFloat64(5) should be 5\")\n\t}\n\n\t// Test SignFloat64\n\tif SignFloat64(-5) != -1 {\n\t\tt.Error(\"SignFloat64(-5) should be -1\")\n\t}\n\tif SignFloat64(5) != 1 {\n\t\tt.Error(\"SignFloat64(5) should be 1\")\n\t}\n\tif SignFloat64(0.0) != 0 {\n\t\tt.Error(\"SignFloat64(0.0) should be 0\")\n\t}\n\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aiLFd1bdRtPZ5zzVKvfsj5aNmCHKa4yZrp1g43SE/3T6M3W7NMunrrt/fLevJhJPjvNSySGa4NdVNO6o0q5EBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"xorshift64star","path":"gno.land/p/wyhaines/rand/xorshift64star","files":[{"name":"xorshift64star.gno","body":"// Xorshift64* is a very fast psuedo-random number generation algorithm with strong\n// statistical properties.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementatoon, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the Xorshift64* PRNG algorithm. This algorithm provides\n// strong statistical performance with most seeds (just don't seed it with zero), and the performance\n// of this implementation in Gno is more than four times faster than the default PCG implementation in\n// `math/rand`.\n//\n//\tBenchmark\n//\t---------\n//\tPCG: 1000000 Uint64 generated in 15.58s\n//\tXorshift64*: 1000000 Uint64 generated in 3.77s\n//\tRatio: x4.11 times faster than PCG\n//\n// Use it directly:\n//\n//\tprng = xorshift64star.New() // pass a uint64 to seed it or pass nothing to seed it with entropy\n//\n// Or use it as a drop-in replacement for the default PRNT in Rand:\n//\n//\tsource = xorshift64star.New()\n//\tprng := rand.New(source)\npackage xorshift64star\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\n// Xorshift64Star is a PRNG that implements the Xorshift64* algorithm.\ntype Xorshift64Star struct {\n\tseed uint64\n}\n\n// New() creates a new instance of the PRNG with a given seed, which\n// should be a uint64. If no seed is provided, the PRNG will be seeded via the\n// gno.land/p/demo/entropy package.\nfunc New(seed ...uint64) *Xorshift64Star {\n\txs := \u0026Xorshift64Star{}\n\txs.Seed(seed...)\n\treturn xs\n}\n\n// Seed() implements the rand.Source interface. It provides a way to set the seed for the PRNG.\nfunc (xs *Xorshift64Star) Seed(seed ...uint64) {\n\tif len(seed) == 0 {\n\t\te := entropy.New()\n\t\txs.seed = e.Value64()\n\t} else {\n\t\txs.seed = seed[0]\n\t}\n}\n\n// beUint64() decodes a uint64 from a set of eight bytes, assuming big endian encoding.\n// binary.bigEndian.Uint64, copied to avoid dependency\nfunc beUint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[7]) | uint64(b[6])\u003c\u003c8 | uint64(b[5])\u003c\u003c16 | uint64(b[4])\u003c\u003c24 |\n\t\tuint64(b[3])\u003c\u003c32 | uint64(b[2])\u003c\u003c40 | uint64(b[1])\u003c\u003c48 | uint64(b[0])\u003c\u003c56\n}\n\n// bePutUint64() encodes a uint64 into a buffer of eight bytes.\n// binary.bigEndian.PutUint64, copied to avoid dependency\nfunc bePutUint64(b []byte, v uint64) {\n\t_ = b[7] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 56)\n\tb[1] = byte(v \u003e\u003e 48)\n\tb[2] = byte(v \u003e\u003e 40)\n\tb[3] = byte(v \u003e\u003e 32)\n\tb[4] = byte(v \u003e\u003e 24)\n\tb[5] = byte(v \u003e\u003e 16)\n\tb[6] = byte(v \u003e\u003e 8)\n\tb[7] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalXorshift64StarLabel = []byte(\"xorshift64*:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (xs *Xorshift64Star) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 20)\n\tcopy(b, marshalXorshift64StarLabel)\n\tbePutUint64(b[12:], xs.seed)\n\treturn b, nil\n}\n\n// errUnmarshalXorshift64Star is returned when unmarshalling fails.\nvar errUnmarshalXorshift64Star = errors.New(\"invalid Xorshift64* encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (xs *Xorshift64Star) UnmarshalBinary(data []byte) error {\n\tif len(data) != 20 || string(data[:12]) != string(marshalXorshift64StarLabel) {\n\t\treturn errUnmarshalXorshift64Star\n\t}\n\txs.seed = beUint64(data[12:])\n\treturn nil\n}\n\n// Uint64() generates the next random uint64 value.\nfunc (xs *Xorshift64Star) Uint64() uint64 {\n\txs.seed ^= xs.seed \u003e\u003e 12\n\txs.seed ^= xs.seed \u003c\u003c 25\n\txs.seed ^= xs.seed \u003e\u003e 27\n\txs.seed *= 2685821657736338717\n\treturn xs.seed // Operations naturally wrap around in uint64\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkXorshift64Star()' xorshift64star.gno\nfunc benchmarkXorshift64Star(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs64s := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = xs64s.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64*: generate %d uint64\\n\", iterations))\n}\n\n// The averageXorshift64Star() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the Xorshift64* PRNG.\nfunc averageXorshift64Star(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs64s := New()\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := xs64s.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64* average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64* standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"Xorshift64* theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"xorshift64star_test.gno","body":"package xorshift64star\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\nfunc TestXorshift64StarSeeding(t *testing.T) {\n\txs64s := New()\n\tvalue1 := xs64s.Uint64()\n\n\txs64s = New(987654321)\n\tvalue2 := xs64s.Uint64()\n\n\tif value1 != 5083824587905981259 || value2 != 18211065302896784785 || value1 == value2 {\n\t\tt.Errorf(\"Expected 5083824587905981259 to be != to 18211065302896784785; got: %d == %d\", value1, value2)\n\t}\n}\n\nfunc TestXorshift64StarRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t.8344002228310946,\n\t\t0.01777174153236205,\n\t\t0.23521769507865276,\n\t\t0.5387610198576143,\n\t\t0.631539862225968,\n\t\t0.9369068148346704,\n\t\t0.6387002315083188,\n\t\t0.5047507613688854,\n\t\t0.5208486273732391,\n\t\t0.25023746271541747,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshift64StarUint64(t *testing.T) {\n\txs64s := New()\n\n\texpected := []uint64{\n\t\t5083824587905981259,\n\t\t4607286371009545754,\n\t\t2070557085263023674,\n\t\t14094662988579565368,\n\t\t2910745910478213381,\n\t\t18037409026311016155,\n\t\t17169624916429864153,\n\t\t10459214929523155306,\n\t\t11840179828060641081,\n\t\t1198750959721587199,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := xs64s.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshift64Star.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshift64StarMarshalUnmarshal(t *testing.T) {\n\txs64s := New()\n\n\texpected1 := []uint64{\n\t\t5083824587905981259,\n\t\t4607286371009545754,\n\t\t2070557085263023674,\n\t\t14094662988579565368,\n\t\t2910745910478213381,\n\t}\n\n\texpected2 := []uint64{\n\t\t18037409026311016155,\n\t\t17169624916429864153,\n\t\t10459214929523155306,\n\t\t11840179828060641081,\n\t\t1198750959721587199,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := xs64s.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshift64Star.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := xs64s.MarshalBinary()\n\n\tt.Logf(\"Original State: [%x]\\n\", xs64s.seed)\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := xs64s.seed\n\n\tif err != nil {\n\t\tt.Errorf(\"Xorshift64Star.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\txs64s.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := xs64s.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%x]\\n\", xs64s.seed)\n\n\t// Now restore the state of the PRNG\n\terr = xs64s.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%x]\\n\", xs64s.seed)\n\n\tif state_before != xs64s.seed {\n\t\tt.Errorf(\"States before and after marshal/unmarshal are not equal; go %x and %x\", state_before, xs64s.seed)\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := xs64s.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshift64Star.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BP4sXvelzfNmMQvfKrkbhul2c0ZmP7yEI4nlz89p0Hof/wVedmXBeqUI1Tpgrn/V0/qwF+1VcXyGwGhlhhuQBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pt5p3jwu73gsqak5trlgctra5jkdgznx7fhr6t","package":{"name":"xorshiftr128plus","path":"gno.land/p/wyhaines/rand/xorshiftr128plus","files":[{"name":"xorshiftr128plus.gno","body":"// Xorshiftr128+ is a very fast psuedo-random number generation algorithm with strong\n// statistical properties.\n//\n// The default random number algorithm in gno was ported from Go's v2 rand implementatoon, which\n// defaults to the PCG algorithm. This algorithm is commonly used in language PRNG implementations\n// because it has modest seeding requirements, and generates statistically strong randomness.\n//\n// This package provides an implementation of the Xorshiftr128+ PRNG algorithm. This algorithm provides\n// strong statistical performance with most seeds (just don't seed it with zeros), and the performance\n// of this implementation in Gno is more than four times faster than the default PCG implementation in\n// `math/rand`.\n//\n//\tBenchmark\n//\t---------\n//\tPCG: 1000000 Uint64 generated in 15.48s\n//\tXorshiftr128+: 1000000 Uint64 generated in 3.22s\n//\tRatio: x4.81 times faster than PCG\n//\n// Use it directly:\n//\n//\tprng = xorshiftr128plus.New() // pass a uint64 to seed it or pass nothing to seed it with entropy\n//\n// Or use it as a drop-in replacement for the default PRNT in Rand:\n//\n//\tsource = xorshiftr128plus.New()\n//\tprng := rand.New(source)\npackage xorshiftr128plus\n\nimport (\n\t\"errors\"\n\t\"math\"\n\n\t\"gno.land/p/demo/entropy\"\n\t\"gno.land/p/demo/ufmt\"\n)\n\ntype Xorshiftr128Plus struct {\n\tseed [2]uint64 // Seeds\n}\n\nfunc New(seeds ...uint64) *Xorshiftr128Plus {\n\tvar s1, s2 uint64\n\tseed_length := len(seeds)\n\tif seed_length \u003c 2 {\n\t\te := entropy.New()\n\t\tif seed_length == 0 {\n\t\t\ts1 = e.Value64()\n\t\t\ts2 = e.Value64()\n\t\t} else {\n\t\t\ts1 = seeds[0]\n\t\t\ts2 = e.Value64()\n\t\t}\n\t} else {\n\t\ts1 = seeds[0]\n\t\ts2 = seeds[1]\n\t}\n\n\tprng := \u0026Xorshiftr128Plus{}\n\tprng.Seed(s1, s2)\n\treturn prng\n}\n\nfunc (x *Xorshiftr128Plus) Seed(s1, s2 uint64) {\n\tif s1 == 0 \u0026\u0026 s2 == 0 {\n\t\tpanic(\"Seeds must not both be zero\")\n\t}\n\tx.seed[0] = s1\n\tx.seed[1] = s2\n}\n\n// beUint64() decodes a uint64 from a set of eight bytes, assuming big endian encoding.\n// binary.bigEndian.Uint64, copied to avoid dependency\nfunc beUint64(b []byte) uint64 {\n\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\treturn uint64(b[7]) | uint64(b[6])\u003c\u003c8 | uint64(b[5])\u003c\u003c16 | uint64(b[4])\u003c\u003c24 |\n\t\tuint64(b[3])\u003c\u003c32 | uint64(b[2])\u003c\u003c40 | uint64(b[1])\u003c\u003c48 | uint64(b[0])\u003c\u003c56\n}\n\n// bePutUint64() encodes a uint64 into a buffer of eight bytes.\n// binary.bigEndian.PutUint64, copied to avoid dependency\nfunc bePutUint64(b []byte, v uint64) {\n\t_ = b[7] // early bounds check to guarantee safety of writes below\n\tb[0] = byte(v \u003e\u003e 56)\n\tb[1] = byte(v \u003e\u003e 48)\n\tb[2] = byte(v \u003e\u003e 40)\n\tb[3] = byte(v \u003e\u003e 32)\n\tb[4] = byte(v \u003e\u003e 24)\n\tb[5] = byte(v \u003e\u003e 16)\n\tb[6] = byte(v \u003e\u003e 8)\n\tb[7] = byte(v)\n}\n\n// A label to identify the marshalled data.\nvar marshalXorshiftr128PlusLabel = []byte(\"xorshiftr128+:\")\n\n// MarshalBinary() returns a byte array that encodes the state of the PRNG. This can later be used\n// with UnmarshalBinary() to restore the state of the PRNG.\n// MarshalBinary implements the encoding.BinaryMarshaler interface.\nfunc (xs *Xorshiftr128Plus) MarshalBinary() ([]byte, error) {\n\tb := make([]byte, 30)\n\tcopy(b, marshalXorshiftr128PlusLabel)\n\tbePutUint64(b[14:], xs.seed[0])\n\tbePutUint64(b[22:], xs.seed[1])\n\treturn b, nil\n}\n\n// errUnmarshalXorshiftr128Plus is returned when unmarshalling fails.\nvar errUnmarshalXorshiftr128Plus = errors.New(\"invalid Xorshiftr128Plus encoding\")\n\n// UnmarshalBinary() restores the state of the PRNG from a byte array that was created with MarshalBinary().\n// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.\nfunc (xs *Xorshiftr128Plus) UnmarshalBinary(data []byte) error {\n\tif len(data) != 30 || string(data[:14]) != string(marshalXorshiftr128PlusLabel) {\n\t\treturn errUnmarshalXorshiftr128Plus\n\t}\n\txs.seed[0] = beUint64(data[14:])\n\txs.seed[1] = beUint64(data[22:])\n\treturn nil\n}\n\nfunc (x *Xorshiftr128Plus) Uint64() uint64 {\n\tx0 := x.seed[0]\n\tx1 := x.seed[1]\n\tx.seed[0] = x1\n\tx0 ^= x0 \u003c\u003c 23\n\tx0 ^= x0 \u003e\u003e 17\n\tx0 ^= x1\n\tx.seed[1] = x0 + x1\n\treturn x.seed[1]\n}\n\n// Until there is better benchmarking support in gno, you can test the performance of this PRNG with this function.\n// This isn't perfect, since it will include the startup time of gno in the results, but this will give you a timing\n// for generating a million random uint64 numbers on any unix based system:\n//\n// `time gno run -expr 'benchmarkXorshiftr128Plus()' xorshiftr128plus.gno\nfunc benchmarkXorshiftr128Plus(_iterations ...int) {\n\titerations := 1000000\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs128p := New()\n\n\tfor i := 0; i \u003c iterations; i++ {\n\t\t_ = xs128p.Uint64()\n\t}\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128Plus: generate %d uint64\\n\", iterations))\n}\n\n// The averageXorshiftr128Plus() function is a simple benchmarking helper to demonstrate\n// the most basic statistical property of the Xorshiftr128+ PRNG.\nfunc averageXorshiftr128Plus(_iterations ...int) {\n\ttarget := uint64(500000)\n\titerations := 1000000\n\tvar squares [1000000]uint64\n\n\tufmt.Println(\n\t\tufmt.Sprintf(\n\t\t\t\"Averaging %d random numbers. The average should be very close to %d.\\n\",\n\t\t\titerations,\n\t\t\ttarget))\n\n\tif len(_iterations) \u003e 0 {\n\t\titerations = _iterations[0]\n\t}\n\txs128p := New()\n\n\tvar average float64 = 0\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tn := xs128p.Uint64()%(target*2) + 1\n\t\taverage += (float64(n) - average) / float64(i+1)\n\t\tsquares[i] = n\n\t}\n\n\tsum_of_squares := uint64(0)\n\t// transform numbers into their squares of the distance from the average\n\tfor i := 0; i \u003c iterations; i++ {\n\t\tdifference := average - float64(squares[i])\n\t\tsquare := uint64(difference * difference)\n\t\tsum_of_squares += square\n\t}\n\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128+ average of %d uint64: %f\\n\", iterations, average))\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128+ standard deviation : %f\\n\", math.Sqrt(float64(sum_of_squares)/float64(iterations))))\n\tufmt.Println(ufmt.Sprintf(\"Xorshiftr128+ theoretical perfect deviation: %f\\n\", (float64(target*2)-1)/math.Sqrt(12)))\n}\n"},{"name":"xorshiftr128plus_test.gno","body":"package xorshiftr128plus\n\nimport (\n\t\"math/rand\"\n\t\"testing\"\n)\n\nfunc TestXorshift64StarSeeding(t *testing.T) {\n\txs128p := New()\n\tvalue1 := xs128p.Uint64()\n\n\txs128p = New(987654321)\n\tvalue2 := xs128p.Uint64()\n\n\txs128p = New(987654321, 9876543210)\n\tvalue3 := xs128p.Uint64()\n\n\tif value1 != 13970141264473760763 ||\n\t\tvalue2 != 17031892808144362974 ||\n\t\tvalue3 != 8285073084540510 ||\n\t\tvalue1 == value2 ||\n\t\tvalue2 == value3 ||\n\t\tvalue1 == value3 {\n\t\tt.Errorf(\"Expected three different values: 13970141264473760763, 17031892808144362974, and 8285073084540510\\n got: %d, %d, %d\", value1, value2, value3)\n\t}\n}\n\nfunc TestXorshiftr128PlusRand(t *testing.T) {\n\tsource := New(987654321)\n\trng := rand.New(source)\n\n\t// Expected outputs for the first 5 random floats with the given seed\n\texpected := []float64{\n\t\t0.9199548549485674,\n\t\t0.0027491282372705816,\n\t\t0.31493362274701164,\n\t\t0.3531250819119609,\n\t\t0.09957852858060356,\n\t\t0.731941362705936,\n\t\t0.3476937688876708,\n\t\t0.1444018086140385,\n\t\t0.9106467321832331,\n\t\t0.8024870151488901,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := rng.Float64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Rand.Float64() at iteration %d: got %g, expected %g\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshiftr128PlusUint64(t *testing.T) {\n\txs128p := New(987654321, 9876543210)\n\n\texpected := []uint64{\n\t\t8285073084540510,\n\t\t97010855169053386,\n\t\t11353359435625603792,\n\t\t10289232744262291728,\n\t\t14019961444418950453,\n\t\t15829492476941720545,\n\t\t2764732928842099222,\n\t\t6871047144273883379,\n\t\t16142204260470661970,\n\t\t11803223757041229095,\n\t}\n\n\tfor i, exp := range expected {\n\t\tval := xs128p.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshiftr128Plus.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n}\n\nfunc TestXorshiftr128PlusMarshalUnmarshal(t *testing.T) {\n\txs128p := New(987654321, 9876543210)\n\n\texpected1 := []uint64{\n\t\t8285073084540510,\n\t\t97010855169053386,\n\t\t11353359435625603792,\n\t\t10289232744262291728,\n\t\t14019961444418950453,\n\t}\n\n\texpected2 := []uint64{\n\t\t15829492476941720545,\n\t\t2764732928842099222,\n\t\t6871047144273883379,\n\t\t16142204260470661970,\n\t\t11803223757041229095,\n\t}\n\n\tfor i, exp := range expected1 {\n\t\tval := xs128p.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshiftr128Plus.Uint64() at iteration %d: got %d, expected %d\", i, val, exp)\n\t\t}\n\t}\n\n\tmarshalled, err := xs128p.MarshalBinary()\n\n\tt.Logf(\"Original State: [%x]\\n\", xs128p.seed)\n\tt.Logf(\"Marshalled State: [%x] -- %v\\n\", marshalled, err)\n\tstate_before := xs128p.seed\n\n\tif err != nil {\n\t\tt.Errorf(\"Xorshiftr128Plus.MarshalBinary() error: %v\", err)\n\t}\n\n\t// Advance state by one number; then check the next 5. The expectation is that they _will_ fail.\n\txs128p.Uint64()\n\n\tfor i, exp := range expected2 {\n\t\tval := xs128p.Uint64()\n\t\tif exp == val {\n\t\t\tt.Errorf(\" Iteration %d matched %d; which is from iteration %d; something strange is happening.\", (i + 6), val, (i + 5))\n\t\t}\n\t}\n\n\tt.Logf(\"State before unmarshall: [%x]\\n\", xs128p.seed)\n\n\t// Now restore the state of the PRNG\n\terr = xs128p.UnmarshalBinary(marshalled)\n\n\tt.Logf(\"State after unmarshall: [%x]\\n\", xs128p.seed)\n\n\tif state_before != xs128p.seed {\n\t\tt.Errorf(\"States before and after marshal/unmarshal are not equal; go %x and %x\", state_before, xs128p.seed)\n\t}\n\n\t// Now we should be back on track for the last 5 numbers\n\tfor i, exp := range expected2 {\n\t\tval := xs128p.Uint64()\n\t\tif exp != val {\n\t\t\tt.Errorf(\"Xorshiftr128Plus.Uint64() at iteration %d: got %d, expected %d\", (i + 5), val, exp)\n\t\t}\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"50000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l5LFknbVVDzMSaw445vk1lgJ/iXRNCizKZGTWa6C5HnA57W6TW3Sd4+MikjisaHBql9snNdEb7n5uxwsJHXqAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pwxuhltfqxcumjmuquuue6y3f2g3f2d0rcq52x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F7fdPcQlMmE6Uzkvo+SlReHzP2NDDcO0D5is41qS4A+qMmwkv3JGOlEapDOUNq9RTZQC8sXBCcc0Y7H0oR/aAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pwxuhltfqxcumjmuquuue6y3f2g3f2d0rcq52x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F7fdPcQlMmE6Uzkvo+SlReHzP2NDDcO0D5is41qS4A+qMmwkv3JGOlEapDOUNq9RTZQC8sXBCcc0Y7H0oR/aAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1pwxuhltfqxcumjmuquuue6y3f2g3f2d0rcq52x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F7fdPcQlMmE6Uzkvo+SlReHzP2NDDcO0D5is41qS4A+qMmwkv3JGOlEapDOUNq9RTZQC8sXBCcc0Y7H0oR/aAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1q6rfdhhupu6z9xw9pgh95g77hqflpuxxfguc6l","package":{"name":"","path":"","files":null},"deposit":"1000000ugnot"}],"fee":{"gas_wanted":"1000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JPBsGSoi5nW8Vhd1GNu3Vg/z0eKGo2ukJ5hXrAtHdM0zK/tOACZEOyxNOfXLxT+/CA4lGzKNeKpC2e5Hc7wyBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qgdjh6zvzzc8gv3fzk0mu9mezh6gan9hdpx04h","package":{"name":"hello","path":"gno.land/r/devx6/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l2BFtDxUAAgs5b9QNm//MGVubkEOLlfBWVtJth+tOfZbmB2VO17LZAWCed2tXlr4PK2s0b3Dw1NQwrolMFELDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qlat94g56gxnl4rpp9j8mzjdhdyhxcp0l2qeev","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BxDTdR2pQZJLKniOoLoMP9XALbLfkM9oKOk0ZrSuK+3EoeVocEidYcYHDWO10dopVWmLUO8fG7cc/RAFwy1UCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","package":{"name":"counter","path":"gno.land/r/j/counter","files":[{"name":"package.gno","body":"package counter\n\nimport (\n\t\"gno.land/p/demo/ufmt\"\n)\n\nvar count int\n\nfunc Increment() {\n\tcount++\n}\n\nfunc Decrement() {\n\tcount--\n}\n\nfunc Render(_ string) string {\n\treturn ufmt.Sprintf(\"Count: %d\", count)\n}\n\n// How-to: Write a simple Gno Smart Contract (Realm)\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PLCfLSJPWqRYSLbjBYGZRfoIzhr9ioceIi4+/fatJAuHkKvIpcUUiwwMbpLp0xOSFJDdmnD6SPmSPrvkHMdJCg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1734384858"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","package":{"name":"gc","path":"gno.land/r/j/gc","files":[{"name":"package.gno","body":"package counter\n\nimport (\n\t\"gno.land/r/j/counter\"\n)\n\nvar block = make([]byte, 1\u003c\u003c20)\n\nfunc Inc() {\n\tfor i := range block {\n\t\tblock[i] = byte(i)\n\t}\n}\n\nfunc Render(_ string) string {\n\tcounter.Increment()\n\tInc()\n\n\treturn \"ok\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N5HmN0KJk+7pf8N1GTgkZrQJeDpX20j+JrKKUJWj48U8ET0JmIfkmgVAcAYbyN8Z5qzh6YMwSlGljzfsawRwAw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1734385255"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qsfyuwvcxxlduzzp4nts8u7cjw9y2r0d32ynrv","package":{"name":"gc","path":"gno.land/r/j/gc","files":[{"name":"package.gno","body":"package gc\n\nimport (\n\t\"gno.land/r/j/counter\"\n)\n\nvar block = make([]byte, 1\u003c\u003c20)\n\nfunc Inc() {\n\tfor i := range block {\n\t\tblock[i] = byte(i)\n\t}\n}\n\nfunc Render(_ string) string {\n\tcounter.Increment()\n\tInc()\n\n\treturn \"ok\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zAvpF5n+pI4Y/A+oGl00rqz0z7rADeXpZmzEByK4evECVfJyeRPMBaCzFTN9nbJ14r8F0dLZtBRHnZs0pzTvDw=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1734385295"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qvcgkjdzqx3cx3e0rxrx6xnzfx5cwjg5hy6e40","package":{"name":"entry","path":"gno.land/r/SamRecruits/entry","files":[{"name":"package.gno","body":"package entry\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc init() {\n raffle.RegisterCode(\"5FfRZVk*^W\")\n}\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w/g7AYCMqLcibA1lWLJyKJ3D5qDH7rhQWUW1JO6yVdvNkQbIAuBR/rc6WF3wNJYkO3I1j+d/u/BBndWmk2ZJDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1qvcgkjdzqx3cx3e0rxrx6xnzfx5cwjg5hy6e40","package":{"name":"entry","path":"gno.land/r/samrecruits/entry","files":[{"name":"package.gno","body":"package entry\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"5FfRZVk*^W\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xvhvMREWqCuhKnUKXYuC0/jWAX4ImTxU6/ji6HV39qjhhEQ8Ctq6nqiPDe7jipwRMOqqtIKlZ2rFgjtMgQNdBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z/mYOoXZmTO6d3XIKZlZHrDazlvUpuPAOo7xRUk0DVhTEkDHQLp/C471VdvDX0m+wcSzenhdoire3xGziVBLAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z/mYOoXZmTO6d3XIKZlZHrDazlvUpuPAOo7xRUk0DVhTEkDHQLp/C471VdvDX0m+wcSzenhdoire3xGziVBLAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z/mYOoXZmTO6d3XIKZlZHrDazlvUpuPAOo7xRUk0DVhTEkDHQLp/C471VdvDX0m+wcSzenhdoire3xGziVBLAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z/mYOoXZmTO6d3XIKZlZHrDazlvUpuPAOo7xRUk0DVhTEkDHQLp/C471VdvDX0m+wcSzenhdoire3xGziVBLAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1rqwcjd8fp3u49q8nj422rcx928vtjqd82wcxwu","package":{"name":"coin","path":"gno.land/r/leon/coin","files":[{"name":"package.gno","body":"package coin\n\nimport \"std\"\n\nfunc init() {\n\tMint()\n}\n\nfunc Mint() {\n\tbank := std.GetBanker(std.BankerTypeRealmIssue)\n\tbank.IssueCoin(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\", \"tony\", 100_000_000)\n}\n\nfunc Render(_ string) string {\n\tbank := std.GetBanker(std.BankerTypeReadonly)\n\tbalance := bank.GetCoins(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\")\n\n\treturn balance.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sSdaa4jE59m567+2zzPMF3oqmPefDYa9Y2341YzQee0cRvhi5nQmyTNNIv+Wg2TmxBOxK6sKPP7pbewF8AjFBg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1734104349"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1rqwcjd8fp3u49q8nj422rcx928vtjqd82wcxwu","package":{"name":"coin","path":"gno.land/r/leon/test/coin","files":[{"name":"package.gno","body":"package coin\n\nimport \"std\"\n\nfunc init() {\n\tMint()\n}\n\nfunc Mint() {\n\tbank := std.GetBanker(std.BankerTypeRealmIssue)\n\tbank.IssueCoin(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\", std.CoinDenom(std.CurrentRealm().PkgPath(), \"tony\"), 100_000_000)\n}\n\nfunc Render(_ string) string {\n\tbank := std.GetBanker(std.BankerTypeReadonly)\n\tbalance := bank.GetCoins(\"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y\")\n\n\treturn balance.String()\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UtIIDPhynK/Gq1G8tl486D7x4kANa9mXHGxceLpDs/2eTopwoEgyCgp2sGmGKWuavGTdIiknu1zPd3HD0C1OBg=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1734104409"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","package":{"name":"entry","path":"gno.land/r/krzysztoffetch/entry","files":[{"name":"package.gno","body":"package entry\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"Vr60kMsfmR\")\n\traffle.RegisterUsername(\"krzysztof-fetch\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GUFmOcILVlQv9oAWALQ/fU6fIIAQmx1WclDI3ZiHLfF/Aq9rNwidUbEUlN12DhXtqL7HACKP5pPLUSC2y/BIBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","package":{"name":"raffle","path":"gno.land/r/gc24/krzysztof/raffle","files":[{"name":"package.gno","body":"package enter_raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc enterRaffle() {\n\t_ = raffle.RegisterCode(\"Vr60kMsfmR\")\n\t_ = raffle.RegisterUsername(\"krzysztof-fetch\")\n}\n\nfunc init() {\n\tenterRaffle()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TXzKZDq5O1acDUA5n5rwpO7NaH+0rPzCi7BKO29rxaDApkHZWLYZBWI5dO9VD8fhYob9rkXGNJzAgQy/8t0UAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","package":{"name":"raffle","path":"gno.land/r/gc24/krzysztoffetch/raffle","files":[{"name":"package.gno","body":"package enter_raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc enterRaffle() {\n\t_ = raffle.RegisterCode(\"Vr60kMsfmR\")\n\t_ = raffle.RegisterUsername(\"krzysztof-fetch\")\n}\n\nfunc init() {\n\tenterRaffle()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"unTsDiV8oyKsfmqldrBRAKQmymNkuYBao41sylohWCfqkjLKzeKgtyYhexwFWLM0QkZjcdNycwPnX7pOjeijDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","package":{"name":"raffle","path":"gno.land/r/gc24/krzysztoffetch/raffle","files":[{"name":"package.gno","body":"package enter_raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc enterRaffle() {\n\t_ = raffle.RegisterCode(\"Vr60kMsfmR\")\n\t_ = raffle.RegisterUsername(\"krzysztof-fetch\")\n}\n\nfunc init() {\n\tenterRaffle()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"unTsDiV8oyKsfmqldrBRAKQmymNkuYBao41sylohWCfqkjLKzeKgtyYhexwFWLM0QkZjcdNycwPnX7pOjeijDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","package":{"name":"raffle","path":"gno.land/r/gc24/raffle","files":[{"name":"package.gno","body":"package main\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc main() {\n\t_ = raffle.RegisterCode(\"Vr60kMsfmR\")\n\t_ = raffle.RegisterUsername(\"krzysztof-fetch\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"epSt+oyxqD3loDkNLEi9LC6p2Xa6eV3GzD+USdu7LN3CbmWpM1spc7klzKcwIHoML80QM0WiHYjngJvia4stDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","package":{"name":"config","path":"gno.land/r/stefann/config","files":[{"name":"config.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address\n\tbackup std.Address\n)\n\nfunc init() {\n\tmain = \"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8\"\n\tbackup = \"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.GetOrigCaller()\n\tif caller != main \u0026\u0026 caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.GetOrigCaller()\n\tif caller != main \u0026\u0026 caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xETWVFCtu/i6U3b6N90uwbn9FqdmJArBGSl20ggCJY7nWJWEMo/8f7SzRunK0kdJwAbvL96OQqFJHxA50S7XBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","package":{"name":"home","path":"gno.land/r/stefann/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n \"std\"\n \"sort\"\n\n \"gno.land/p/demo/ufmt\"\n\n \"gno.land/r/stefann/config\"\n)\n\n\ntype City struct {\n\tName string\n\tURL string\n}\n\ntype Sponsor struct {\n\tAddress std.Address\n\tAmount std.Coins\n}\n\nvar (\n pfp string\n cities []City\n currentCityIndex int\n aboutMe [2]string\n jarLink string\n maxSponsors int\n sponsors []Sponsor\n\ttotalDonated std.Coins\n\ttotalDonations int\n)\n\nfunc init() {\n pfp = \"https://i.ibb.co/Bc5YNCx/DSC-0095a.jpg\"\n cities = []City{\n {Name: \"Venice\", URL: \"https://i.ibb.co/1mcZ7b1/venice.jpg\"},\n {Name: \"Tokyo\", URL: \"https://i.ibb.co/wNDJv3H/tokyo.jpg\"},\n {Name: \"São Paulo\", URL: \"https://i.ibb.co/yWMq2Sn/sao-paulo.jpg\"},\n {Name: \"Toronto\", URL: \"https://i.ibb.co/pb95HJB/toronto.jpg\"},\n {Name: \"Bangkok\", URL: \"https://i.ibb.co/pQy3w2g/bangkok.jpg\"},\n {Name: \"New York\", URL: \"https://i.ibb.co/6JWLm0h/new-york.jpg\"},\n {Name: \"Paris\", URL: \"https://i.ibb.co/q9vf6Hs/paris.jpg\"},\n {Name: \"Kandersteg\", URL: \"https://i.ibb.co/60DzywD/kandersteg.jpg\"},\n {Name: \"Rothenburg\", URL: \"https://i.ibb.co/cr8d2rQ/rothenburg.jpg\"},\n {Name: \"Capetown\", URL: \"https://i.ibb.co/bPGn0v3/capetown.jpg\"},\n {Name: \"Sydney\", URL: \"https://i.ibb.co/TBNzqfy/sydney.jpg\"},\n {Name: \"Oeschinen Lake\", URL: \"https://i.ibb.co/QJQwp2y/oeschinen-lake.jpg\"},\n {Name: \"Barra Grande\", URL: \"https://i.ibb.co/z4RXKc1/barra-grande.jpg\"},\n {Name: \"London\", URL: \"https://i.ibb.co/CPGtvgr/london.jpg\"},\n }\n currentCityIndex = 0\n jarLink = \"https://TODO\"\n maxSponsors = 5\n aboutMe = [2]string{\n `\u003ch3 style=\"font-size: 1.4em;\"\u003eAbout Me\u003c/h3\u003e\n \u003cp style=\"font-size: 1.1em;\"\u003eHey there! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge!\u003c/p\u003e`,\n `\u003ch3 style=\"font-size: 1.4em;\"\u003eContributions\u003c/h3\u003e\n \u003cp style=\"font-size: 1.1em;\"\u003eI'm just getting started, but you can follow my journey through Gno.land right here \u003ca href=\"https://github.com/gnolang/hackerspace/issues/94\" target=\"_blank\"\u003e🔗\u003c/a\u003e\u003c/p\u003e`,\n }\n}\n\nfunc UpdateMaxSponsors(newMax int) {\n config.AssertAuthorized()\n maxSponsors = newMax\n}\n\nfunc UpdateCities(newCities []City) {\n\tconfig.AssertAuthorized()\n\tcities = newCities\n}\n\nfunc UpdateJarLink(newLink string) {\n\tconfig.AssertAuthorized()\n\tjarLink = newLink\n}\n\nfunc UpdatePFP(url, caption string) {\n\tconfig.AssertAuthorized()\n\tpfp = url\n}\n\nfunc UpdateAboutMe(col1, col2 string) {\n\tconfig.AssertAuthorized()\n\taboutMe[0] = col1\n\taboutMe[1] = col2\n}\n\nfunc Donate() {\n address := std.GetOrigCaller()\n amount := std.GetOrigSend()\n \n if amount.AmountOf(\"ugnot\") == 0 {\n panic(\"Donation must include GNOT\")\n }\n\n found := false\n\n for i, sponsor := range sponsors {\n if sponsor.Address == address {\n sponsors[i].Amount = sponsors[i].Amount.Add(amount)\n found = true\n break\n }\n }\n\n if !found {\n sponsors = append(sponsors, Sponsor{Address: address, Amount: amount})\n }\n\n totalDonated = totalDonated.Add(amount)\n\n totalDonations++\n\n sortSponsorsByAmount()\n\n if len(cities) \u003e 0 {\n currentCityIndex++\n if currentCityIndex \u003e= len(cities) {\n currentCityIndex = 0\n }\n }\n}\n\ntype SponsorSlice []Sponsor\n\nfunc (s SponsorSlice) Len() int {\n\treturn len(s)\n}\n\nfunc (s SponsorSlice) Less(i, j int) bool {\n\treturn s[i].Amount.AmountOf(\"ugnot\") \u003e s[j].Amount.AmountOf(\"ugnot\")\n}\n\nfunc (s SponsorSlice) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\n\nfunc sortSponsorsByAmount() {\n\tsort.Sort(SponsorSlice(sponsors))\n}\n\nfunc GetTopSponsors() []Sponsor {\n\treturn sponsors\n}\n\nfunc CollectDonations() {\n\tconfig.AssertAuthorized()\n\n\tbanker := std.GetBanker(std.BankerTypeRealmSend)\n\n\townerAddr := config.Address()\n\tbanker.SendCoins(std.GetOrigPkgAddr(), ownerAddr, banker.GetCoins(std.GetOrigPkgAddr()))\n}\n\nfunc GetTotalDonations() std.Coins {\n\treturn totalDonated\n}\n\nfunc GetDonationCount() int {\n\treturn totalDonations\n}\n\nfunc Render(path string) string {\n\tout := ufmt.Sprintf(\"# Exploring %s!\\n\\n\", cities[currentCityIndex].Name)\n\n\tout += renderAboutMe()\n\tout += \"\\n\\n\"\n\tout += renderTips()\n\n\treturn out\n}\n\nfunc renderAboutMe() string {\n\tout := \"\u003cdiv class='rows-3'\u003e\"\n\n\tout += \"\u003cdiv style='position: relative; text-align: center;'\u003e\\n\\n\"\n\n\tout += ufmt.Sprintf(\"\u003cdiv style='background-image: url(%s); background-size: cover; background-position: center; width: 100%%; height: 600px; position: relative; border-radius: 15px; overflow: hidden;'\u003e\\n\\n\", cities[currentCityIndex].URL)\n\n\tout += ufmt.Sprintf(\"\u003cimg src='%s' alt='my profile pic' style='width: 250px; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%%; border: 3px solid #1e1e1e; position: absolute; top: 75%%; left: 50%%; transform: translate(-50%%, -50%%);'\u003e\\n\\n\", pfp)\n\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += aboutMe[0] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003cdiv\u003e\\n\\n\"\n\tout += aboutMe[1] + \"\\n\\n\"\n\tout += \"\u003c/div\u003e\\n\\n\"\n\n\tout += \"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\\n\"\n\n\treturn out\n}\n\nfunc renderTips() string {\n\tout := `\u003cdiv class=\"jumbotron\" style=\"display: flex; flex-direction: column; justify-content: flex-start; align-items: center; padding-top: 40px; padding-bottom: 50px; text-align: center;\"\u003e` + \"\\n\\n\"\n\n\tout += `\u003cdiv class=\"rows-2\" style=\"max-width: 500px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center;\"\u003e` + \"\\n\"\n\n\tout += `\u003ch1 style=\"margin-bottom: 50px;\"\u003eHelp Me Travel The World\u003c/h1\u003e` + \"\\n\\n\"\n\n\tout += renderTipsJar() + \"\\n\"\n\n out += ufmt.Sprintf(`\u003cstrong style=\"font-size: 1.2em;\"\u003eI am currently in %s, \u003cbr\u003e tip the jar to send me somewhere else!\u003c/strong\u003e`, cities[currentCityIndex].Name)\n \n out += `\u003cbr\u003e\u003cspan style=\"font-size: 1.2em; font-style: italic; margin-top: 10px; display: inline-block;\"\u003eClick the jar, tip in GNOT coins, and watch my background change as I head to a new adventure!\u003c/span\u003e\u003c/p\u003e` + \"\\n\\n\"\n \n\tout += renderSponsors()\n\n\tout += `\u003c/div\u003e\u003c!-- /rows-2 --\u003e` + \"\\n\\n\"\n\n\tout += `\u003c/div\u003e\u003c!-- /jumbotron --\u003e` + \"\\n\"\n\n\treturn out\n}\n\nfunc formatAddress(address string) string {\n if len(address) \u003c= 8 {\n return address\n }\n return address[:4] + \"...\" + address[len(address)-4:]\n}\n\nfunc renderSponsors() string {\n out := `\u003ch3 style=\"margin-top: 5px; margin-bottom: 20px\"\u003eSponsor Leaderboard\u003c/h3\u003e` + \"\\n\"\n\n if len(sponsors) == 0 {\n out += `\u003cp style=\"text-align: center;\"\u003eNo sponsors yet. Be the first to tip the jar!\u003c/p\u003e` + \"\\n\"\n } else {\n numSponsors := len(sponsors)\n if numSponsors \u003e maxSponsors {\n numSponsors = maxSponsors\n }\n\n out += `\u003cul style=\"list-style-type: none; padding: 0; border: 1px solid #ddd; border-radius: 8px; width: 100%; max-width: 300px; margin: 0 auto;\"\u003e` + \"\\n\"\n\n for i := 0; i \u003c numSponsors; i++ {\n sponsor := sponsors[i]\n isLastItem := (i == numSponsors-1)\n\n padding := \"10px 5px\"\n border := \"border-bottom: 1px solid #ddd;\"\n\n if isLastItem {\n padding = \"8px 5px\"\n border = \"\"\n }\n\n out += ufmt.Sprintf(\n `\u003cli style=\"padding: %s; %s text-align: left;\"\u003e\n \u003cstrong style=\"padding-left: 5px;\"\u003e%d. %s\u003c/strong\u003e \n \u003cspan style=\"float: right; padding-right: 5px;\"\u003e%s\u003c/span\u003e\n \u003c/li\u003e`,\n padding, border, i+1, formatAddress(sponsor.Address.String()), sponsor.Amount.String(),\n )\n }\n\n }\n\n return out\n}\n\nfunc renderTipsJar() string {\n\tout := ufmt.Sprintf(`\u003ca href=\"%s\" target=\"_blank\" style=\"display: block; text-decoration: none;\"\u003e`, jarLink) + \"\\n\"\n\n\tout += `\u003cimg src=\"https://i.ibb.co/4TH9zbw/tips-jar.png\" alt=\"Tips Jar\" style=\"width: 300px; height: auto; display: block; margin: 0 auto;\"\u003e` + \"\\n\"\n\n\tout += `\u003c/a\u003e` + \"\\n\"\n\n\treturn out\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tmZaBQnJdfbPn+bDPr6+cvzRoLHq8BzVjpSVP+KJ+7sB1w1jvEBBb2vTvHxiANFgjEYwKHwihvYEAmbx2tijDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","package":{"name":"tsrf","path":"gno.land/r/deelawn/tsrf","files":[{"name":"package.gno","body":"package deelawn\n\nimport \"gno.land/r/leon/v2/raffle/raffle\"\n\nfunc Register(code string) {\n\treturn raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6zBzyLGlmuLrDgEacYA+2CfO2SzppN2SyNlvOXxl+xbHoD8RuZSpJd5QLzH+h8g4C7HtEBNLRXWFE/G75nW2BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","package":{"name":"tsrf","path":"gno.land/r/deelawn/tsrf","files":[{"name":"package.gno","body":"package deelawn\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc Register(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rrNmVq+muY2u/5cDYrO3V+7P0umDdPVD0ngg4oNq9c33CPS7HH+qkXsLhuhvDnZ2U5IHgxLVAG9xQqdYmxlmCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","package":{"name":"tsrf","path":"gno.land/r/deelawn/tsrf","files":[{"name":"package.gno","body":"package deelawn\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc Register(code string) {\n\treturn raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NiGkGBKjApkdiYbZI6scogC38YDQtZ3RaH3QXZNgDMrUYu9mbgLyIZ7s3j9KPYeNi093IK3UC5MXVjZUrkvMAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","package":{"name":"tsrf","path":"gno.land/r/deelawn/tsrf","files":[{"name":"package.gno","body":"package tsrf\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc Register(code string) string {\n\treturn raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WdR0MOttcuyIErue5aj8OprrJG5RcR7JfymuwUJJ07chRA2ujxm1iHi2MAqLCHpdIbsdae4vRcuHizAH+b3XCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"raf","path":"gno.land/r/kurtbomya/raf","files":[{"name":"package.gno","body":"package raf\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tghUsername := \"kurtbomya\"\n\traffle.RegisterUsername(ghUsername)\n\t// raffleCode := \"derBSscbMY\"\n\t// raffle.RegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z+4U+P8/2puwBQtRrIRHToLtEUqMU6y6Etoyec8s+XRfQWYUJVxz6cDd72R/piP5pusGw1qYRRUgLYGeayrDDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"raf","path":"gno.land/r/kurtbomya/raf","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffleCode := \"derBSscbMY\"\n\tghUsername := \"kurtbomya\"\n\traffle.RegisterUsername(ghUsername)\n\t// raffle.RegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h2libnD2P5ypJuqZKuSQip3BAcmihnsO/bLLCP67ytERGom0bJpEin+oi2PE5/JMkiFYQmmz/Kvmew/8I39yBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"raffle","path":"gno.land/r/kurtbomya/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffleCode := \"derBSscbMY\"\n ghUsername := \"kurtbomya\"\n raffle.RegisterUsername(ghUsername)\n\t// raffle.RegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2m8CcEY0UyeAjw5zDsAPsJbf/Pu4mBwoFuDiUojAjc03MUuF3svIVBVQyCyceT5mLQDQoAkDRRWcsljNAcQBCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"raffle","path":"gno.land/r/kurtbomya/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffleCode := \"derBSscbMY\"\n\tRegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U0+R7gGvV11T4nawEk1y3RtgJF8wDOnUMOAuQYTAzi+T7Grfwjy8nj+fAJkqtgKzyx+2Fk+6PyiCK/DdD0N1BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"raffle","path":"gno.land/r/kurtbomya/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffleCode := \"derBSscbMY\"\n\traffle.RegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0R/K/fqt7ZuOMeGxnc9EDQZ9SxKyqez5D4inQS0IKgnq4I8EPaT6SlzPedNljTVetAusqU4oCvzF/v4jIp0XBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"raffleName","path":"gno.land/r/kurtbomya/raffleName","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffleCode := \"derBSscbMY\"\n ghUsername := \"kurtbomya\"\n raffle.RegisterUsername(ghUsername)\n\t// raffle.RegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v2GKuI6nwJu3+2ratPkgcZo1b8uTcmkbwbCh6RZtwzOxSGhsWaMYkhkhQOMW+Gi0BQXycrfWtuC/d5jaIxl7AQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1stdnnh8hp0w43xlgansgtd83kj5h57szmx3k8z","package":{"name":"rafflegithubname","path":"gno.land/r/kurtbomya/rafflegithubname","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffleCode := \"derBSscbMY\"\n\tghUsername := \"kurtbomya\"\n\traffle.RegisterUsername(ghUsername)\n\t// raffle.RegisterCode(raffleCode)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UHH8yWddzjwjXhIecSCMixhNeqx/9IAX7Ns1esRPVGaQzBGS0yO7AdyajbNUpxm/dzVH8Fekr95TLofwbdV2Cg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1svd47qp3kjamyxk8078ck7kstyfglvxtal6en5","package":{"name":"raffle","path":"gno.land/r/ianhowell/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"fmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst code = \"FmJ4gDUiCc\"\nconst username = \"ian-howell\"\n\nfunc init() {\n\tresult := raffle.RegisterCode(code)\n\tfmt.Printf(\"Result: %v\\n\", result)\n\n\tresult = raffle.RegisterUsername(username)\n\tfmt.Printf(\"Result: %v\\n\", result)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NMphmnkiTSQqqd4Lvf5QdPUAuaYmGfZCqfkKTpMhjxSPioaKNXTJ+ct/BMZSsP3diBpkCBgTGrdh7PAkQ+ttAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1svd47qp3kjamyxk8078ck7kstyfglvxtal6en5","package":{"name":"raffle","path":"gno.land/r/ianhowell/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"fmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst code = \"FmJ4gDUiCc\"\nconst username = \"ian-howell\"\n\nfunc init() {\n\tresult := raffle.RegisterCode(code)\n\tfmt.Printf(\"Result: %v\\n\", result)\n\n\tresult = raffle.RegisterUsername(username)\n\tfmt.Printf(\"Result: %v\\n\", result)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NMphmnkiTSQqqd4Lvf5QdPUAuaYmGfZCqfkKTpMhjxSPioaKNXTJ+ct/BMZSsP3diBpkCBgTGrdh7PAkQ+ttAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1svd47qp3kjamyxk8078ck7kstyfglvxtal6en5","package":{"name":"raffle","path":"gno.land/r/ianhowell/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst code = \"FmJ4gDUiCc\"\nconst username = \"ian-howell\"\n\nfunc init() {\n\traffle.RegisterCode(code)\n\traffle.RegisterUsername(username)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lzqNfJ2YRkbXyEHV1MjxLBaobsONa32FJwM02QozMPLJIDyRaEL0PIE6BDKixRcxZS0KWMt0fm4mvhEamlyxCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1svd47qp3kjamyxk8078ck7kstyfglvxtal6en5","package":{"name":"raffle","path":"gno.land/r/ianhowell/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst code = \"FmJ4gDUiCc\"\nconst username = \"ian-howell\"\n\nfunc init() {\n\tresult := raffle.RegisterCode(code)\n\tfmt.Printf(\"Result: %v\\n\", result)\n\n\tresult = raffle.RegisterUsername(username)\n\tfmt.Printf(\"Result: %v\\n\", result)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ndq4vs4oByx+GvYcP6onDJApbQCnb/MyOn9+819qG8YV2nwBody/u2C02ZQt063tragZ9p/YO695daGg/Ny2Cg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","package":{"name":"home","path":"gno.land/r/albttx/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"std\"\n\n\tfmt \"gno.land/p/demo/ufmt\"\n)\n\nvar (\n\twallet std.Address\n\tmnemonic string\n\n\tPFP string\n\tLinks []Link\n\n\t// map[title]BookInfo\n\tBookshelf = make(map[string]BookInfo)\n\n\tBookStatusIsToRead BookStatus = 1\n\tBookStatusIsReading BookStatus = 2\n\tBookStatusIsRead BookStatus = 3\n)\n\nfunc init() {\n\twallet = \"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr\"\n\t// mnemonic = \"never gonna give you up never gonna let you down never gonna run around and desert you never gonna make you cry never gonna say goodbye never gonna tell a lie and hurt you\"\n\n\tPFP = \"https://avatars.githubusercontent.com/u/8089712?v=4\"\n\n\t// Badge are from\n\t// https://github.com/Ileriayo/markdown-badges\n\tLinks = append(Links,\n\t\tLink{\n\t\t\tName: \"github_albttx\",\n\t\t\tLogo: \"https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\",\n\t\t\tURL: \"https://github.com/albttx\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"x_albttx\",\n\t\t\tLogo: \"https://img.shields.io/badge/albttx-%23000000.svg?style=for-the-badge\u0026logo=X\u0026logoColor=white\",\n\t\t\tURL: \"https://x.com/albttx\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"x_nysa\",\n\t\t\tLogo: \"https://img.shields.io/badge/nysa--network-%23000000.svg?style=for-the-badge\u0026logo=X\u0026logoColor=white\",\n\t\t\tURL: \"https://x.com/nysa_network\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"stackoverflow\",\n\t\t\tLogo: \"https://img.shields.io/badge/StackExchange-%23ffffff.svg?style=for-the-badge\u0026logo=StackExchange\",\n\t\t\tURL: \"https://stackoverflow.com/users/4511585/albttx\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"linkedin\",\n\t\t\tLogo: \"https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\",\n\t\t\tURL: \"https://linkedin.com/in/albertlebatteux\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"albttx.eth\",\n\t\t\tLogo: \"https://img.shields.io/badge/Ethereum-3C3C3D?style=for-the-badge\u0026logo=Ethereum\u0026logoColor=white\",\n\t\t\tURL: \"albttx.eth\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"medium\",\n\t\t\tLogo: \"https://img.shields.io/badge/Medium-12100E?style=for-the-badge\u0026logo=medium\u0026logoColor=white\",\n\t\t\tURL: \"https://medium.com/@albttx\",\n\t\t},\n\t\tLink{\n\t\t\tName: \"KeybasePGP\",\n\t\t\tLogo: \"https://img.shields.io/keybase/pgp/alebatt\",\n\t\t\tURL: \"https://keybase.io/alebatt\",\n\t\t},\n\t)\n}\n\ntype Link struct {\n\tName string\n\tLogo string\n\tURL string\n}\n\ntype BookStatus int\n\ntype BookInfo struct {\n\tURL string\n\tStatus BookStatus\n}\n\nfunc Render(path string) string {\n\tcontent := `\n# Albert's profile\n\n\u003cdiv class='columns-2'\u003e\n\u003cdiv class='col-1'\u003e\n\n\u003cimg alt=\"albttx.gno\" src=\"` + PFP + `\"\u003e\n\n\u003c/div\u003e\n\n\u003cdiv class='col-2'\u003e\n\n## About me\n\nHi, I'm Albert, but you can find me on almost every platform as 'albttx'.\n\n[42 Alumni](https://42.fr)\n\nI'm french, living in Portugal working remotely a Lead Infrastructure at All in Bits, and a Gnome enthusiast helping whenever i can on [gno.land](https://gno.land)\n\nOn my free time, i love spending time with my family and friends, i enjoy climbing, playing chess and boxing.\n\n\u003c/div\u003e\n\u003c/div\u003e\n`\n\n\t// My Links\n\tcontent += \"\\n## My links\\n\\n\"\n\n\tcontent += \"\u003cp align='center'\u003e\\n\"\n\tfor _, link := range Links {\n\t\tif link.Logo == \"\" \u0026\u0026 link.URL == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tcontent += fmt.Sprintf(\"\u003ca href='%s'\u003e\u003cimg src='%s' /\u003e\u003c/a\u003e \u0026nbsp;\\n\", link.URL, link.Logo)\n\t}\n\tcontent += \"\u003c/p\u003e\\n\\n\"\n\n\t// Bookshelf\n\tcontent += \"## Bookshelf\\n\"\n\tcontent += \"\u003cdiv class='columns-3' style='margin: 0;'\u003e\\n\"\n\n\tcontentToRead := \"\u003cdiv\u003e\\n\\n#### TO READ\\n\\n\"\n\tcontentReading := \"\u003cdiv\u003e\\n\\n#### READING\\n\\n\"\n\tcontentRead := \"\u003cdiv\u003e\\n\\n#### READ\\n\\n\"\n\n\tfor title, book := range Bookshelf {\n\t\tif book.Status == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch book.Status {\n\t\tcase BookStatusIsToRead:\n\t\t\tcontentToRead += fmt.Sprintf(\"- [%s](%s)\\n\", title, book.URL)\n\t\tcase BookStatusIsReading:\n\t\t\tcontentReading += fmt.Sprintf(\"- [%s](%s)\\n\", title, book.URL)\n\t\tcase BookStatusIsRead:\n\t\t\tcontentRead += fmt.Sprintf(\"- [%s](%s)\\n\", title, book.URL)\n\t\t}\n\t}\n\n\tcontent += contentToRead + \"\u003c/div\u003e\\n\"\n\tcontent += contentReading + \"\u003c/div\u003e\\n\"\n\tcontent += contentRead + \"\u003c/div\u003e\\n\"\n\n\tcontent += \"\u003c/div\u003e\"\n\treturn content\n}\n\n// SetBook can add,update,delete a book\nfunc SetBook(title, url string, status int) {\n\tif caller := std.PrevRealm().Addr(); caller != wallet {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tBookshelf[title] = BookInfo{\n\t\tURL: url,\n\t\tStatus: BookStatus(status),\n\t}\n}\n\n// AddOrUpdateLink\nfunc AddOrUpdateLink(name, logo, url string) {\n\tif caller := std.PrevRealm().Addr(); caller != wallet {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tfor i, link := range Links {\n\t\tif name == link.Name {\n\t\t\tLinks[i].Logo = logo\n\t\t\tLinks[i].URL = url\n\t\t\treturn\n\t\t}\n\t}\n\n\tLinks = append(Links, Link{\n\t\tName: name,\n\t\tLogo: logo,\n\t\tURL: url,\n\t})\n}\n\n// UpdatePFP\nfunc UpdatePFP(pfp string) {\n\tif caller := std.PrevRealm().Addr(); caller != wallet {\n\t\tpanic(\"unauthorized\")\n\t}\n\n\tPFP = pfp\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xl0crVoSex+31kzv5yGKdnM8QL/PyumWGjQNQpceWXvxLdvzqVcaFmpRBvBt0GCkPGTqilhX6chvJGLzE5ESDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t03agwh7uu8xe0sx6y0pl2ntrc85ks72xenwy8","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vxloL41EcdX3Pz3OsfPMor+IgvYvzlnGZHZteUCSiEWfQmrm1pHLT1uMqEXovTKReVWxEQ3Q3OQCMmuvikd0Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t03agwh7uu8xe0sx6y0pl2ntrc85ks72xenwy8","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vxloL41EcdX3Pz3OsfPMor+IgvYvzlnGZHZteUCSiEWfQmrm1pHLT1uMqEXovTKReVWxEQ3Q3OQCMmuvikd0Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t03agwh7uu8xe0sx6y0pl2ntrc85ks72xenwy8","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vxloL41EcdX3Pz3OsfPMor+IgvYvzlnGZHZteUCSiEWfQmrm1pHLT1uMqEXovTKReVWxEQ3Q3OQCMmuvikd0Aw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t7k3aap9sm8796y6r8pl77tvv3396sfaxmrqn5","package":{"name":"gohper","path":"gno.land/r/jahowell/gohper","files":[{"name":"package.gno","body":"package gopher\n\nimport (\n\t\"fmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst raffleCode = \"eFAwFHEHrU\"\n\nfunc init() {\n\tresult := raffle.RegisterCode(raffleCode)\n\n\tfmt.Println(result)\n\n\tresult = raffle.RegisterUsername(\"ja-howell\")\n\n\tfmt.Println(result)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jHZsWOPeM3ZuWuKrXwEwLjT1p+Zur8uP9IqtG/BNHQy3aMwXArbYdj9LeLVLABCHUD5/5bPOjtoqgtmyzRTdCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t7k3aap9sm8796y6r8pl77tvv3396sfaxmrqn5","package":{"name":"gohper","path":"gno.land/r/jahowell/gohper","files":[{"name":"package.gno","body":"package gopher\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst raffleCode = \"eFAwFHEHrU\"\n\nfunc init() {\n\tresult := raffle.RegisterCode(raffleCode)\n\n\tfmt.Println(result)\n\n\tresult = raffle.RegisterUsername(\"ja-howell\")\n\n\tfmt.Println(result)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9FaafK3S/dW+TEvIcOTyHNhl8S+5dyDuw1IOIGwvLKFVipHnxHWP0yLLoo9nXDWdr7YkalpHir3KnDrldN3vCg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t7k3aap9sm8796y6r8pl77tvv3396sfaxmrqn5","package":{"name":"gopher","path":"gno.land/r/jahowell/gopher","files":[{"name":"package.gno","body":"package gopher\n\nimport (\n\t\"fmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst raffleCode = \"eFAwFHEHrU\"\n\nfunc init() {\n\tresult := raffle.RegisterCode(raffleCode)\n\n\tfmt.Println(result)\n\n\tresult = raffle.RegisterUsername(\"ja-howell\")\n\n\tfmt.Println(result)\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yzoACyiEr3XlZMuQ60CPXP8txkeH+6TURgJ86+IWfeY3zRODZIsFPT6TqVEyLjgowA45c+heEn71H8Zf4pCcBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t7k3aap9sm8796y6r8pl77tvv3396sfaxmrqn5","package":{"name":"gopher","path":"gno.land/r/jahowell/gopher","files":[{"name":"package.gno","body":"package gopher\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nconst raffleCode = \"eFAwFHEHrU\"\n\nfunc init() {\n\traffle.RegisterCode(raffleCode)\n\traffle.RegisterUsername(\"ja-howell\")\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2fHaFXsEKcOZ25t5ecOGNasqhNxJYQIO/Zz8ylYa0CGZ9JWQgUt5wMWLpPhkWGknVeASdMQwrJGWRtbYNoAYDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"ajraffle","path":"gno.land/r/gc24/ajnavarro/ajraffle","files":[{"name":"package.gno","body":"package ajraffle\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"yt2164GGi1\")\n}\n\nfunc Render(path string) string {\n\treturn \"ajnavarro raffle\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0CpLnaznJCTP1y9+3miMyu6j7UbralywiESxUszscoiFCtQU+qkHepaPwjPNzdt9G5ooXNeo/D1sjWbgjW+yAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"ajraffleregister","path":"gno.land/r/gc24/ajnavarro/ajraffleregister","files":[{"name":"package.gno","body":"package ajraffleregister\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.RegisterUsername(\"ajnavarro\")\n}\n\nfunc Render(path string) string {\n\treturn \"ajnavarro raffle\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FdxiDef5XoGrS2lplDgGPw59faRahkggZvUNlWyqqVXUZhVtCLojAQkb1uqA8skmh1TMnwu6L/gsMW9Dx06sCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"ajraffleregistertwo","path":"gno.land/r/gc24/ajnavarro/ajraffleregistertwo","files":[{"name":"package.gno","body":"package ajraffleregistertwo\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.RegisterUsername(\"ajnavarro2\")\n}\n\nfunc Render(path string) string {\n\treturn \"ajnavarro raffle\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YV3Qw0L8bW4Zm5Qgm8htvdgUp+EbLOQHWJK63SN5yee7b9ZCcB53V1ZDWAcpC4+5tQENSCIZA8/gGbVFu4dDAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"ajraffletest","path":"gno.land/r/gc24/ajnavarro/ajraffletest","files":[{"name":"package.gno","body":"package ajraffletest\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.Register(\"ajnavarro\")\n}\n\nfunc Render(path string) string {\n\treturn \"ajnavarro raffle\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wFTaP42NvJ/892tLX30yRW4GOqusEmQ37VUDJZClZLqlK24a808azIw4834qnD6+XUQ6vxWSiMwQWuazwJVaAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"ajraffletest","path":"gno.land/r/gc24/ajnavarro/ajraffletest","files":[{"name":"package.gno","body":"package ajraffletest\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"ajnavarro\")\n}\n\nfunc Render(path string) string {\n\treturn \"ajnavarro raffle\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s+j3JpmSODfTm1W5BxsuUUGD4oWwowlYAHVVEGnp1f8uocxXYeUckUsAp0ySQfY0tp5XTPNJpqTpKt8ydGjWDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"raffle","path":"gno.land/r/ajnavarro/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"yt2164GGi1\")\n\n\treturn \"done\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tJogznRt1oDyuKDZZwvQh4woMVfgpHrINhIndGGfcRBIbwP3HL7e//+ItlG1r4HpTXWAYippHNIJPFZzGed1BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"raffle","path":"gno.land/r/ajnavarro/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc Render(path string) string {\n\traffle.RegisterCode(\"yt2164GGi1\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m9t2w1eh4m4oYoKiLJhCUsPYSdiN8OrWZmjBtdDtR9EmaXUI6uyvDsGADvAoA+At5T2h2AJQAgKvsQb+ZW9IAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","package":{"name":"raffle","path":"gno.land/r/ajnavarro/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"yt2164GGi1\")\n}\n\nfunc Render(path string) string {\n\treturn \"ajnavarro raffle\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gh9CmWPlacTNKTu/UvKfHJhpXoGmEnxS8FRY6jWq2U1AwoZibAlKfExnq1bgDSiGcCVQFekdajb5Lkjdw0DCDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tgnfu08qu54xyew5296jy22e0fa24j0u4u9xk9","package":{"name":"hello","path":"gno.land/r/test/hello","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/challenges/overandover/p1\"\n)\n\ntype myAdjuster struct{}\n\nfunc min(a uint16, b uint16) uint16 {\n\tif a \u003c b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc (m myAdjuster) Adjust(a *p1.Accumulator) {\n\tfor {\n\t\tv := a.Value()\n\t\tt := a.Target()\n\t\tdiff := t - v\n\t\tif diff == 0 {\n\t\t\treturn\n\t\t}\n\n\t\ta.Accumulate(uint8(min(255, t-v)))\n\t}\n}\n\nfunc main() {\n\to := myAdjuster{}\n\tp1.AdjustAccumulator(o)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BjE5gQDtajqSmLIhtOHM+ImGgVv+nTnVr4ldkH1r/Uj96indHMTW6fQ7Sf9ecdE/Gqmw6w6gVMPBED9TDKKmAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tgnfu08qu54xyew5296jy22e0fa24j0u4u9xk9","package":{"name":"raffle","path":"gno.land/r/charlysotelo/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n raffle.RegisterCode(\"mfV32LoK3p\")\n raffle.RegisterUsername(\"charlysotelo\")\n\n}"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rqahdYzsI9PRxA6BIC1YEloDr2IbT+wYB3IN+OPI0wNOkGNi4FSAEBboXd1dnAwL+/92MnjgHn/EkwnZ9p0XBg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tgnfu08qu54xyew5296jy22e0fa24j0u4u9xk9","package":{"name":"raffle","path":"gno.land/r/charlysotelo/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"mfV32LoK3p\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z2czEqc9hlSsDpA+TteSPeDFfwmvna+PtfJLtWHdlVPpw/Y15vCiOY+RFRrPxIGxznzVnGY4MQDjU8AFx8v/DA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tgnfu08qu54xyew5296jy22e0fa24j0u4u9xk9","package":{"name":"raffle_username","path":"gno.land/r/charlysotelo/raffle_username","files":[{"name":"package.gno","body":"package raffle_username\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterUsername(\"charlysotelo\")\n\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y/GueJRWz1XG7L/h7GsYL8XayS3gb0/0W50U1BoFmKTnmRowlyHKy6zWt6Z7G+wqmQP2Elnmb7/YZMx0GlTCDA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tgnfu08qu54xyew5296jy22e0fa24j0u4u9xk9","package":{"name":"raffle_username_a_lot","path":"gno.land/r/charlysotelo/raffle_username_a_lot","files":[{"name":"package.gno","body":"package raffle_username_a_lot\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\tfor i := 0; i \u003c 1000; i++ {\n\t\traffle.RegisterUsername(\"charlysotelo\")\n\t}\n\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gapUfoQ9OTBxfGAm4fOBAqDQOjyle+intL2Vz5ba2zt/Zzjg9Pw5fA10ibs/JfREfXQi+FlynOqEyhQOCSo4DQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oNeLJY2lV+N7iYV23b9DwXx+hBzB+fvXc+vhPsbDMklEz4/c4iZVtdeFKcOyH9LW2Dco5NbR9oBMYlzv93zIAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oNeLJY2lV+N7iYV23b9DwXx+hBzB+fvXc+vhPsbDMklEz4/c4iZVtdeFKcOyH9LW2Dco5NbR9oBMYlzv93zIAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z0BrfcSB/mqDLV2PRYBYsJKFGb363utjY82Jc4IRyN5tA35zYCtNt2EtoHI/C1ElYOnoNLwLrmKHlErga8FADQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","package":{"name":"","path":"","files":null},"deposit":""}],"fee":{"gas_wanted":"8000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ycnr2x/N/VAKABX1za7p/SKbwXOpl0nlMuU5MnWN2WTqTiprStG4UL5iGX0w1f3Xj5Dmjs6g+ZnUAzKOW1+vDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","package":{"name":"hello","path":"gno.land/r/hdjshfjsdhfsj/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\n\nfunc init() {\n raffle.RegisterCode(\"xvadXU29oY\")\n raffle.RegisterUsername(\"bashia\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LVLht/TYjMOyfsDWue1DzNxnTGNtZsMJNDqiLdAMnpW3x/H+4y0TsigoOUo/s9GNQQbNCssKnSWeEgUtWmnwAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","package":{"name":"hello","path":"gno.land/r/hdjshfjsdhfsj/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc Render(path string) string {\n}\n\nfunc init() {\n\traffle.RegisterCode()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Faq/++DQkPr/yJefyci1Oti/HV6GmjOTsy4bvjrIDP6ZCKOs++5FU6eKB6J4W/sv3GgRerMglheIYue6KHtxDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","package":{"name":"hello","path":"gno.land/r/hdjshfjsdhfsj/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode()\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EGh71v0lnBiZTA4+3J+rOroV6nC0LV9UXozp3FkdUkNsCKOL99gnF5NvkLl03dlqNUVokr+5nREfpHlMORVUDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","package":{"name":"hello","path":"gno.land/r/hdjshfjsdhfsj/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"xvadXU29oY\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hjSTExSXFrZNPgxkAIt5WzgR6u3la8Q6mNoXxRW5yOHK4y3uHvAD9IBWjXpoQ42/1B+aTZ8OS0L3v6R9YuyQCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","package":{"name":"hello","path":"gno.land/r/vrvt/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"xvadXU29oY\")\n\traffle.RegisterUsername(\"bashia\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BK9r8uEQwykV5j8oce0hfn9LviZnwQm/PLi+nDg+XrJ6OotwAxZXBTjb5+3OEpnmz76bfZ+nn6GYtsTdDzqRBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1tqwwp7z9ulq76x79tjsxh0j7djnenyzmlauqh9","package":{"name":"hello","path":"gno.land/r/vrvt/hello","files":[{"name":"package.gno","body":"package hello\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterUsername(\"bashia\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kD8qX3newgiGIFjolx5FE3stv+NFXpQkbKwfXr6qvs+86TDUyP9pnyCj0jWBAMVmWb6EnGh+BAyVsmzA2SCoCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","package":{"name":"config","path":"gno.land/r/nemanya/config","files":[{"name":"conig.gno","body":"package config\n\nimport (\n \"errors\"\n \"std\"\n)\n\nvar (\n main std.Address\n backup\tstd.Address\n)\n\nfunc init() {\n\tmain = \"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8\"\t\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid(){\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid(){\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ou5of3tBa0EEJdYh/vDToA+ra+LpdAAGvZ5W3A0j1EHxWY9L4AKyk6vTNnji1dmIUOhA6E8XiR0gBYpG7Jp8BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","package":{"name":"config","path":"gno.land/r/nemanya/config","files":[{"name":"conig.gno","body":"package config\n\nimport (\n\t\"errors\"\n\t\"std\"\n)\n\nvar (\n\tmain std.Address\n\tbackup std.Address\n)\n\nfunc init() {\n\tmain = \"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8\"\n}\n\nfunc Address() std.Address {\n\treturn main\n}\n\nfunc Backup() std.Address {\n\treturn backup\n}\n\nfunc SetAddress(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc SetBackup(a std.Address) error {\n\tif !a.IsValid() {\n\t\treturn errors.New(\"config: invalid address\")\n\t}\n\n\tif err := checkAuthorized(); err != nil {\n\t\treturn err\n\t}\n\n\tmain = a\n\treturn nil\n}\n\nfunc checkAuthorized() error {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\treturn errors.New(\"config: unauthorized\")\n\t}\n\n\treturn nil\n}\n\nfunc AssertAuthorized() {\n\tcaller := std.PrevRealm().Addr()\n\tif caller != main || caller != backup {\n\t\tpanic(\"config: unauthorized\")\n\t}\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R47xNaU+ZQBm1HOWrN2YQ9W0OcBBz3P4ZqZQ0CpM9V2r/Afel3zaA6cxqdu1ARzp0JHoUQtpzQ0ZcpRoYeplAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","package":{"name":"home","path":"gno.land/r/nemanya/home","files":[{"name":"home.gno","body":"package home\n\nimport (\n\t\"gno.land/r/nemanya/config\"\n)\n\ntype Project struct {\n\tName string\n\tURL string\n}\n\ntype Social struct {\n\tName string\n\tURL string\n}\n\nvar (\n\taboutMe string\n\tprojects map[int]Project\n\tsocials map[int]Social\n\n\tfontFamily = \"Inter, sans-serif\"\n\tprimaryColor = \"#FEFEFE\"\n\tborderColor = \"#D30000\"\n\tfontSizeLarge = \"7rem\"\n\tfontSizeMedium = \"4rem\"\n\tfontSizeSmall = \"1.5rem\"\n\tfontSizeExtraSmall = \"1rem\"\n)\n\nfunc init() {\n\taboutMe = \"I'm Nemanja Matic from Serbia, an IT student and aspiring Web3 developer. I discovered gno.land at the Petnica Web3 Camp and I'm eager to make significant contributions to this project.\"\n\n\tprojects = map[int]Project{\n\t\t0: {\"Liberty Bridge\", \"https://github.com/Milosevic02/LibertyBridge\"},\n\t}\n\n\tsocials = map[int]Social{\n\t\t0: {\"GitHub\", \"https://github.com/Nemanya8\"},\n\t\t1: {\"LinkedIn\", \"https://www.linkedin.com/in/nemanjamatic\"},\n\t\t2: {\"Email\", \"mailto:matic.nemanya@gmail.com\"},\n\t}\n}\n\nfunc UpdateAboutMe(newAboutMe string) {\n\tconfig.AssertAuthorized()\n\taboutMe = newAboutMe\n}\n\nfunc AddProject(index int, name string, url string) {\n\tconfig.AssertAuthorized()\n\tif index \u003e= 0 \u0026\u0026 index \u003c 4 {\n\t\tprojects[index] = Project{Name: name, URL: url}\n\t}\n}\n\nfunc RemoveProject(index int) {\n\tconfig.AssertAuthorized()\n\tif index \u003e= 0 \u0026\u0026 index \u003c 4 {\n\t\tdelete(projects, index)\n\t}\n}\n\nfunc AddSocial(index int, name string, url string) {\n\tconfig.AssertAuthorized()\n\tif index \u003e= 0 \u0026\u0026 index \u003c 3 {\n\t\tsocials[index] = Social{Name: name, URL: url}\n\t}\n}\n\nfunc RemoveSocial(index int) {\n\tconfig.AssertAuthorized()\n\tif index \u003e= 0 \u0026\u0026 index \u003c 3 {\n\t\tdelete(socials, index)\n\t}\n}\n\nfunc Render(path string) string {\n\treturn \"\u003cdiv style='display: flex;'\u003e\\n\" +\n\t\t\" \u003cdiv style='flex: 8; margin-right: 20px; padding: 2rem; border: 2px solid transparent; border-image: linear-gradient(166deg, \" + borderColor + \" 0%, rgba(0,0,0,0) 20%); border-image-slice: 1;'\u003e\\n\" +\n\t\t\" \" + renderAboutMe() + \"\\n\" +\n\t\t\" \u003c/div\u003e\\n\" +\n\t\t\" \u003cdiv style='flex: 2; padding: 2rem; border: 2px solid transparent; border-image: linear-gradient(324deg, \" + borderColor + \" 0%, rgba(0,0,0,0) 20%); border-image-slice: 1;'\u003e\\n\" +\n\t\t\" \" + renderProjects() + \"\\n\" +\n\t\t\" \u003c/div\u003e\\n\" +\n\t\t\"\u003c/div\u003e\\n\"\n}\n\nfunc renderAboutMe() string {\n\treturn \"\u003cdiv class='rows-3'\u003e\\n\" +\n\t\t\" \u003ch1 style='font-family: \" + fontFamily + \"; font-weight: 100; color: \" + primaryColor + \"; text-align: left; font-size: \" + fontSizeLarge + \";'\u003eNemanya.\u003c/h1\u003e\\n\" +\n\t\t\" \u003cdiv style='border-left: 1px solid \" + borderColor + \"; padding-left: 1rem;'\u003e\\n\" +\n\t\t\" \u003cp style='font-family: \" + fontFamily + \"; color: \" + primaryColor + \"; font-size: \" + fontSizeSmall + \"; margin-bottom: 5rem;'\u003e\\n\" +\n\t\t\" \" + aboutMe + \"\\n\" +\n\t\t\" \u003c/p\u003e\\n\" +\n\t\t\" \u003c/div\u003e\\n\" +\n\t\t\" \" + renderSocials() + \"\\n\" +\n\t\t\"\u003c/div\u003e\u003c!-- /rows-3 --\u003e\\n\"\n}\n\nfunc renderSocials() string {\n\tsocialsHTML := \"\u003cdiv class='socials-container' style='display: flex; justify-content: center; align-items: center; gap: 20px;'\u003e\\n\"\n\tfor _, social := range socials {\n\t\tsocialsHTML += \" \u003cdiv style='display: flex; justify-content: center; align-items: center;'\u003e\\n\" +\n\t\t\t\" \u003ca href='\" + social.URL + \"' style='color: \" + primaryColor + \"; font-family: \" + fontFamily + \"; font-size: \" + fontSizeExtraSmall + \"; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%;'\u003e\" + social.Name + \"\u003c/a\u003e\\n\" +\n\t\t\t\" \u003c/div\u003e\\n\"\n\t}\n\tsocialsHTML += \"\u003c/div\u003e\\n\"\n\treturn socialsHTML\n}\n\nfunc renderProjects() string {\n\tprojectsHTML := \"\u003cdiv class='rows-5'\u003e\\n\" +\n\t\t\" \u003ch2 style='font-family: \" + fontFamily + \"; font-weight: 200; color: \" + primaryColor + \"; text-align: left; font-size: \" + fontSizeMedium + \";'\u003eProjects\u003c/h2\u003e\\n\"\n\tfor _, project := range projects {\n\t\tprojectsHTML += \" \u003cdiv style='margin-bottom: 1rem; border-left: 1px solid \" + borderColor + \"; padding-left: 1rem;'\u003e\\n\" +\n\t\t\t\" \u003ca href='\" + project.URL + \"' style='color: \" + primaryColor + \"; font-family: \" + fontFamily + \"; font-size: \" + fontSizeSmall + \";'\u003e\" + project.Name + \"\u003c/a\u003e\\n\" +\n\t\t\t\" \u003c/div\u003e\\n\"\n\t}\n\tprojectsHTML += \"\u003c/div\u003e\u003c!-- /rows-5 --\u003e\\n\"\n\treturn projectsHTML\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UQCPztCxU1uxTkP4YNpepFCrSS4a+c8HQe+GJkz9xinaH6l9uuqSYZH94yDaeq8Ze+SfNeqhkKJmGvFpi72uBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xGWRwMQZwSrQgv0xjg5J2jp7uJVmkJPVecsyPwB8C6EaCEjuD4n20K7hrMf2nvqqst/C1Io6i0CM9qUJ56v6DA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xGWRwMQZwSrQgv0xjg5J2jp7uJVmkJPVecsyPwB8C6EaCEjuD4n20K7hrMf2nvqqst/C1Io6i0CM9qUJ56v6DA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qN5U/yMeyrGWOhg+tbsWpLxBrvFr8kCzmEwk8/H1CABv0C3Pamtkbas7Bb8B9JkeAZThQ7Ot1bGEw8hGSdl7Cw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1utuf3fk30x09ul9zsf4sehlxdk34hlhsry8sdy","package":{"name":"raffle","path":"gno.land/r/conradsmi/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/p/demo/ownable\"\n\t\"gno.land/p/demo/ufmt\"\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"cz6P5zykkt\")\n\traffle.RegisterUsername(\"conradsmi\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pFM0Yf686Sgr7GpNSks1dFM74fM3jvJEN9OLYB+T3/0CFSec8cKlxG/Os4ha1PCLF5MBA6o3qHXaQk3YQWG/BA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1utuf3fk30x09ul9zsf4sehlxdk34hlhsry8sdy","package":{"name":"raffle","path":"gno.land/r/conradsmi/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"cz6P5zykkt\")\n\traffle.RegisterUsername(\"conradsmi\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rajiv4fsrATJ2WZHg+zk0n//ubtnLTRPggSsgiUpVlOPIjYZRxIYEC7nR5/ovWy7GyAeiM6UmZdkvTsdBTq7Cw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1utuf3fk30x09ul9zsf4sehlxdk34hlhsry8sdy","package":{"name":"raffle","path":"gno.land/r/conradsmi/raffle","files":[{"name":"package.gno","body":"package hello\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"cz6P5zykkt\")\n\traffle.RegisterUsername(\"conradsmi\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rajiv4fsrATJ2WZHg+zk0n//ubtnLTRPggSsgiUpVlOPIjYZRxIYEC7nR5/ovWy7GyAeiM6UmZdkvTsdBTq7Cw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1utuf3fk30x09ul9zsf4sehlxdk34hlhsry8sdy","package":{"name":"raffle","path":"gno.land/r/conradsmi/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"cz6P5zykkt\")\n\traffle.RegisterUsername(\"conradsmi\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"041JjUz66uihOLK/6hG6ogiAaUfXOgMGH/AWMX1X8SfrIlsb7lAGeMvEyqrjjgzfgNiT2fx1oe7clvE2BpneBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v664qx78zhv2edtx6ypdylfpafrqjz8g2rlaea","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j1bqivoeqh44ZznVIWTTw7TS4bD3IhB1fVKosrR5DtA1gr7P4bfNBjijxl0nkyjH3OY11tb+NhZTnbC1/aTjBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v664qx78zhv2edtx6ypdylfpafrqjz8g2rlaea","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j1bqivoeqh44ZznVIWTTw7TS4bD3IhB1fVKosrR5DtA1gr7P4bfNBjijxl0nkyjH3OY11tb+NhZTnbC1/aTjBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v9f94dnlxu8eqwqvyw7lt8l5udey8483n0422a","package":{"name":"raffle1","path":"gno.land/r/bobbyluig/raffle1","files":[{"name":"raffle.gno","body":"package raffle1\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n raffle.RegisterCode(\"E8A2g4FaeX\")\n raffle.RegisterUsername(\"bobbyluig\")\n}"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"spAgzomavjdeBu83RYTv9buk7kWn/x92NtmuAX/Hazr8raccN622kcZ6vnLuGdTyxQphhPh34HvBIGbCadrHAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v9f94dnlxu8eqwqvyw7lt8l5udey8483n0422a","package":{"name":"raffle1","path":"gno.land/r/bobbyluig/raffle1","files":[{"name":"raffle.gno","body":"package raffle1\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"E8A2g4FaeX\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3DcMcEblhxr9kXWNXLybjiDYgoQqmQESl5tUKTlH84dsVv/aiTXV6nV+1Db0XHifLpDlIAPt4C9PTO0G1jOCBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v9f94dnlxu8eqwqvyw7lt8l5udey8483n0422a","package":{"name":"raffle1","path":"gno.land/r/bobbyluig/raffle1","files":[{"name":"raffle.gno","body":"package raffle1\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"EBA2g4FaeX\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+k5/wu+eKgEovorAveW1FgZHnSg57h3hpvfYiCjMfFI9PLqelM+SuGqvGRNhFKXiLrL+u8CNUc/Eqku2oTDECA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v9f94dnlxu8eqwqvyw7lt8l5udey8483n0422a","package":{"name":"raffle2","path":"gno.land/r/bobbyluig/raffle2","files":[{"name":"raffle.gno","body":"package raffle2\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\t// raffle.RegisterCode(\"E8A2g4FaeX\")\n\traffle.RegisterUsername(\"bobbyluig\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kVru+qWZbHHZjITowdiaq4wjyGBWyginwgU2/ABZQpEKWze/rIWLA6YJUGixC4fMp233XXw3lvHLz9tDnrIADg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1v9f94dnlxu8eqwqvyw7lt8l5udey8483n0422a","package":{"name":"raffle2","path":"gno.land/r/bobbyluig/raffle2","files":[{"name":"raffle.gno","body":"package raffle2\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc init() {\n\traffle.RegisterCode(\"E8A2g4FaeX\")\n\traffle.RegisterUsername(\"bobbyluig\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gxddXPQhR+KbLS2zGnE+/jYUSSRb1GSZ2ws2IQ8q80dVNSXjUJ0LIpRpq8qTDtZrh2yGaxU6qrcvQWZ52Nk5AA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","package":{"name":"hello","path":"gno.land/r/nstest/hello","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n return \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EHW0qYL14v7s5o0HIs0SQtfC1VKlntSK1fAQi1CfvM3lAPgYycR90rWhKiVKQysKX3PBMgLwOdCepcnk3MFXBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","package":{"name":"hello2","path":"gno.land/r/nstest/hello2","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ypRYOjrpNrUlakzQfo1sJ3F4ykCHgO1Z1x0sjfoaeTPIvQPqfZpk30TLUvuFthC8e2oGQ6MT+5PLUG43ny6qCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","package":{"name":"hello2","path":"gno.land/r/nstest/hello2","files":[{"name":"package.gno","body":"package hello\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ypRYOjrpNrUlakzQfo1sJ3F4ykCHgO1Z1x0sjfoaeTPIvQPqfZpk30TLUvuFthC8e2oGQ6MT+5PLUG43ny6qCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LrpXGKBqHj1cfKox3U/flZFOlYNdA7xx0+3/QR7cQDXh0AN4vAFkl+jBx/UpRsNT0VGq1tCma5GEA/25ITCrAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LrpXGKBqHj1cfKox3U/flZFOlYNdA7xx0+3/QR7cQDXh0AN4vAFkl+jBx/UpRsNT0VGq1tCma5GEA/25ITCrAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LrpXGKBqHj1cfKox3U/flZFOlYNdA7xx0+3/QR7cQDXh0AN4vAFkl+jBx/UpRsNT0VGq1tCma5GEA/25ITCrAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LrpXGKBqHj1cfKox3U/flZFOlYNdA7xx0+3/QR7cQDXh0AN4vAFkl+jBx/UpRsNT0VGq1tCma5GEA/25ITCrAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LrpXGKBqHj1cfKox3U/flZFOlYNdA7xx0+3/QR7cQDXh0AN4vAFkl+jBx/UpRsNT0VGq1tCma5GEA/25ITCrAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","package":{"name":"hellopp","path":"gno.land/r/demo/hellopp","files":[{"name":"package.gno","body":"package hellopp\n\nfunc Render2(path string) string {\n\treturn \"Hello World!\"\n}\n\nfunc Render(path string) string {\n\treturn \"Hello World!\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wdKapPBUtbr+pUZHWJ0QQaNeg2kJlOhkGtHVnYwrRXe0CtoYDuJavkGNXsuDc0o964nRopMghm/+vwD7GwBhDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1w996yw2emnc3plwhw6vzgjnd9kdgd9cklwpp2x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TRM5X08cneq7afSuAAOxaPZy0XDSAadiUiwtMwRMrRqXLBV/I0tKTIxS1tRZ9EYp0aTAijX9xXlWlj1Su8/pBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1w996yw2emnc3plwhw6vzgjnd9kdgd9cklwpp2x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TRM5X08cneq7afSuAAOxaPZy0XDSAadiUiwtMwRMrRqXLBV/I0tKTIxS1tRZ9EYp0aTAijX9xXlWlj1Su8/pBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1w996yw2emnc3plwhw6vzgjnd9kdgd9cklwpp2x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TRM5X08cneq7afSuAAOxaPZy0XDSAadiUiwtMwRMrRqXLBV/I0tKTIxS1tRZ9EYp0aTAijX9xXlWlj1Su8/pBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1w996yw2emnc3plwhw6vzgjnd9kdgd9cklwpp2x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TRM5X08cneq7afSuAAOxaPZy0XDSAadiUiwtMwRMrRqXLBV/I0tKTIxS1tRZ9EYp0aTAijX9xXlWlj1Su8/pBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1w996yw2emnc3plwhw6vzgjnd9kdgd9cklwpp2x","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TRM5X08cneq7afSuAAOxaPZy0XDSAadiUiwtMwRMrRqXLBV/I0tKTIxS1tRZ9EYp0aTAijX9xXlWlj1Su8/pBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","package":{"name":"doorbell","path":"gno.land/r/wyhaines/doorbell","files":[{"name":"package.gno","body":"package doorbell\n\nimport \"gno.land/p/demo/ufmt\"\n\nvar counter int\n\n// Call this function to ring the doorbell.\nfunc Ring() {\n\t// Increments the counter by one\n\tcounter++\n}\n\n// Call to see how many times the doorbell has been rang.\nfunc Render() string {\n\t// Provides a human-readable state of the realm\n\treturn ufmt.Sprintf(\"The doorbell has been rung %d times.\", counter)\n}\n\n// Call to reset the doorbell counter.\nfunc Reset() {\n\t// Resets the counter to zero\n\tcounter = 0\n}\n"}]},"deposit":""}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3DyX8pDsfE7HtmkJdNP5/Syk38wdUwQtKzT5QtIYGIyY0QN8ACiDF/eVBynCNC1oS5jOgj21wGeGri4s8z/IAQ=="}],"memo":"Deployed through play.gno.land"},"metadata":{"timestamp":"1736380257"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1wnk77fuxp622hquyc97zgks00gcaj4xj4ygh7r","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EvMIvRGdh2HxqJNAWOtrcE9rJa1s/M0EYC4rd4D9KNL9kp1xif6uHZwHpZiGHfwDJAPd0t2uhuJu8MuBQ2ZLDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle","path":"gno.land/r/ckami2088/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"9tPFscqR2H\"\n\tgithubAcct := \"ckami2088\"\n\trescode := raffle.RegisterCode(code)\n\tresgithub := raffle.RegisterUsername(githubAcct)\n\tprintln(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jfHcM7YYQlb7Q/Ok5AYRC4D0eXRSOxsmz7yDLYJpzQj45QEMd9NjXGXiMIplztPVJ8x3ay9o7Gz9UBrB9eH+CA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle","path":"gno.land/r/ckami2088/raffle","files":[{"name":"package.gno","body":"package rafflegithub\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"9tPFscqR2H\"\n\tgithubAcct := \"ckami2088\"\n\t_ = raffle.RegisterCode(code)\n\t_ = raffle.RegisterUsername(githubAcct)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BU3npHhNGKsutlID1/WLdd9+PKpJ5IoL59WAOJPzgzABb+mxsZn1KB+GhiAUP+ndv9I77DB9pcGhXv/v59SODQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle","path":"gno.land/r/helithumper/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n code := \"uW9zngjSwE\"\n raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9MJ0FkP8irrhFbthKgexb+B1K8pbUTrv6tuTVn0xyfFvFP9ZCBmJA7iMmwojt5WUTrdQqc4jnJT7LUDWYCliAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle","path":"gno.land/r/helithumper/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n code := \"uW9zngjSwE\"\n return raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3SnPRGuYonabtL0AYtAFgPtrPUmb0KEV9kmy8g8AyL1Kkowu/S/MWkQxUqvpKz5i6MmU/iR5wdjOwjMSQ5HOAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle","path":"gno.land/r/helithumper/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc Render(_ string) string {\n\tcode := \"uW9zngjSwE\"\n\treturn raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZpAvgyGIZAQOdUxxa8UWTiUdZ2lUSN3OmLc2dE86QT3rhN1+1l/6qze7DBbSyD6x9ff5bzCK6qo97Df5BSFqCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle2","path":"gno.land/r/helithumper/raffle2","files":[{"name":"package.gno","body":"package raffle2\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\t_ = raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"633cwd/vR7hsHs3E7sEwM2iyQ9E7MGAqXvIPa1FtaX2yogGtwLv7OY5/15GHE5qHSdrCIuA4EAwlpikC6uXQCw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle2","path":"gno.land/r/helithumper/raffle2","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\t_ = raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FTPoYTN/0h7Ls8JZ/MLUi2Ow0Wu7CYs9JUTyY00Jzdeup8U/mBOhF7iEmBzbJOUCpQ9BPtg+RHJbjlrKFFNZCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle2","path":"gno.land/r/helithumper/raffle2","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\traffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dYwKgPGQTGPqrTmmWf3dZx+T/7xfc/4P6houOVEO5zkFVQGbRfDlren6p84axEvkPno7iD8EcACxggv+fXiJCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle2","path":"gno.land/r/helithumper/raffle2","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\traffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dYwKgPGQTGPqrTmmWf3dZx+T/7xfc/4P6houOVEO5zkFVQGbRfDlren6p84axEvkPno7iD8EcACxggv+fXiJCA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle2","path":"gno.land/r/helithumper/raffle2","files":[{"name":"package.gno","body":"package raffle\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\treturn raffle.RegisterCode(code)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CCkuINoYPbWqMWI2/fDU/tKxt7MtOtLW6hFNy7iPBE+PLjeAIuMFQ/sN0pkc4A88Ptx6ecieYROA17D3HJkLAA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"raffle3","path":"gno.land/r/helithumper/raffle3","files":[{"name":"package.gno","body":"package raffle3\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\tgithubAcct := \"helithumper\"\n\t_ = raffle.RegisterCode(code)\n\t_ = raffle.RegisterUsername(githubAcct)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i3eIWmOIIIy0PA1ebQ9ATZS30O4sBW/ytv4+w+ol4PF47Pw9L8HdAyhIZEMtX3yDIOxUtRiIjp8/z+QtHEi7Cg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"rafflegithub","path":"gno.land/r/ckami2088/rafflegithub","files":[{"name":"package.gno","body":"package rafflegithub\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"9tPFscqR2H\"\n\tgithubAcct := \"ckami2088\"\n\trescode := raffle.RegisterCode(code)\n\tresgithub := raffle.RegisterUsername(githubAcct)\n\tprintln(rescode + resgithub)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dQxN0rvjmMHByPafy5P4BuoI23WcwE5ME35OEPg5G+25412KoMWeKfKziv9oKZJx20LEGPoha5LTdMTt4wJiAw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"rafflegithub","path":"gno.land/r/helithumper/rafflegithub","files":[{"name":"package.gno","body":"package rafflegithub\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// code := \"uW9zngjSwE\"\n\tgithubAcct := \"helithumper\"\n\t// _ = raffle.RegisterCode(code)\n\t_ = raffle.RegisterUsername(githubAcct)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EPZ7M8zYVgsyCAVJFXQkJVHM7sHvqSaKzQ3U3O7tfaYIBqu0t3fhcdxsxxBf4zhVTTKSN2jO6I8ufx/v3n9SBQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"rafflegithub","path":"gno.land/r/helithumper/rafflegithub","files":[{"name":"package.gno","body":"package rafflegithub\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\tgithubAcct := \"helithumper\"\n\t// _ = raffle.RegisterCode(code)\n\t_ = raffle.RegisterUsername(githubAcct)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PQSrsdegzHlsF+bcJdNJwHcCjbVWTOZEaB4Ps3859NX8Dx4HbJjhKPc1ic6ldykXHz1CuowbA9b3KI3aTz0bAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yfwv6gyujajnsewyt5j4q59fq5w42nzw2vltzz","package":{"name":"rafflegithub","path":"gno.land/r/helithumper/rafflegithub","files":[{"name":"package.gno","body":"package rafflegithub\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tcode := \"uW9zngjSwE\"\n\tgithubAcct := \"helithumper\"\n\t_ = raffle.RegisterCode(code)\n\t_ = raffle.RegisterUsername(githubAcct)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IEmzQbrf7E46/Ab1w469FSlq5frv2UHhEdm0q7hafQM9R2hUwGj/bJ/RvWRP4iFW92Ce1PuN1UVKSBIQqmw3Cw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","package":{"name":"raffle","path":"gno.land/r/pnumbers/raffle","files":[{"name":"raffle.gno","body":"package raffle\n\nimport (\n\t\"fmt\"\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tresult := r.RegisterCode(\"i3oXpvLuQU\")\n\tfmt.Printlin(result)\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/YNKrDZfVCF37aiGjUI+JUfzLU+vtAldwEBADdVE4eiYzOXGAYuNyKL0KMcHHsAuMpxmVHDWayn00qOvxFI/Ag=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","package":{"name":"raffle","path":"gno.land/r/pnumbers/raffle","files":[{"name":"raffle.gno","body":"package raffle\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// r.RegisterCode(\"i3oXpvLuQU\")\n r.RegisterUsername(\"pnumbers\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PMAxSe2B8fqYiCGDj3YL6vwVwIkCclol/SNk6wioAX31qjgOKmc89Iaa1BM++GADEgnrkXOiKAfc18XAaZoVAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","package":{"name":"raffle","path":"gno.land/r/pnumbers/raffle","files":[{"name":"raffle.gno","body":"package raffle\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tr.RegisterCode(\"i3oXpvLuQU\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IHAwUpv+jSGfTuKqahZWjMITHY3CyUa3Y3dc4yporJTEbw6/TOgCyXoO0sjgVpfclo/6Vo9sIiqmDRcLX+xYBA=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","package":{"name":"raffle","path":"gno.land/r/pnumbers/raffle","files":[{"name":"raffle.gno","body":"package raffle\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\tresult := r.RegisterCode(\"i3oXpvLuQU\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YxjxlzWPqfrGPvbvvQraaOVx6PGswumlMRWS8RqkFq/44YVkP3u/no1PBT9cib8VhT4K1FY4qRBEAfPbHv6uDw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yk7mnqsc4n0cdjemjwrluynjrsxfvhwva0e5wx","package":{"name":"username","path":"gno.land/r/pnumbers/username","files":[{"name":"raffle.gno","body":"package username\n\nimport (\n\tr \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\t// r.RegisterCode(\"i3oXpvLuQU\")\n\tr.RegisterUsername(\"pnumbers\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2mTMKNcd+fiQD4LZRr1BP5ErrkwoxLJCA/fydBlGn4Q9FR7IYmvRMgU/yquOuvzdKYH50id95mvQGRQKPciRBw=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+KOwcnWxfRjnQ3akKDIfAtekRLrXj1nAyZzG7GQBluE27bs0NRBo/A+2NJZa5C53UaiD9Z63SMSEYPWhlPiAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+KOwcnWxfRjnQ3akKDIfAtekRLrXj1nAyZzG7GQBluE27bs0NRBo/A+2NJZa5C53UaiD9Z63SMSEYPWhlPiAg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","package":{"name":"fixfixfix","path":"gno.land/r/portalloopfixes/fixfixfix","files":[{"name":"package.gno","body":"package fixfixfix\n\nfunc Render(path string) string {\n\treturn \"Salvo, is it working?\"\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XvJIdGOs65K1KKvbyx6s3FVrJLJTZR/rSNfiNgeMJCDrHLEhbcfTNyuFhz3TpR49peopJfX5aQDS0KvOXYnZAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1z0nhhy5c85cn2eqhu7m67sv8dqw4aqpy5knp7p","package":{"name":"entry","path":"gno.land/r/gc24/jamesprysm/entry","files":[{"name":"package.gno","body":"package entry\n\nimport (\n\t\"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n\traffle.RegisterCode(\"4QS2FT6hSu\")\n}\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vgAF6kk3dCT5uh6Vzd0cPf3whJk5/aDaeMCpcn7IePUGyVnbKITIC91bJlR7bmqfpUbEtOQ7Xr9faHJWkOEFDg=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1z0nhhy5c85cn2eqhu7m67sv8dqw4aqpy5knp7p","package":{"name":"raffle","path":"gno.land/r/gc24/raffle","files":[{"name":"package.gno","body":"package raffle\n\nfunc init() {\n RegisterCode(\"4QS2FT6hSu\")\n}\n\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2CwMb2Q7jDt5MSJZ/gn370XEEZQqo4rSjJfoeKscAK9ijE/fq3j7tygWCmtoei4z+5R2dc53yJamFa5FGBt8BQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1z0nhhy5c85cn2eqhu7m67sv8dqw4aqpy5knp7p","package":{"name":"raffle","path":"gno.land/r/gc24/raffle","files":[{"name":"package.gno","body":"package raffle\n\nimport(\n r \"gno.land/r/gc24/raffle\"\n)\n\nfunc init() {\n r.RegisterCode(\"4QS2FT6hSu\")\n}\n\n"}]},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P6cMflxDLLDmHoFMy5oUqJaGVpp8nv/x2ZTrwJX8u7yP/IjvDJivLGEDg7nWUPXLF1x0flKN26kATjCPE7MzCQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1z6ykhrvel4nu49ugyf7e0at89u86cf9d6h0ucr","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bhaQSp45cDL8XbFkxAw7+VCYJSXu99cT1vvcp0qoOodddmd0MaLqbmHIGko3t0ysZeSfMbYDQqRCbHFTEXixAQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1zd3aykct4yr4steu6f6n9t9z9emwhrkc0wgzef","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q1Hmgqp3v5OEyomuhlLwegh5aCWCOS/anqbprqXQG2UuWlY6GEItAZtaMbKZj9fv/1M7PyFi9LN47DcOhCOjDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1zd3aykct4yr4steu6f6n9t9z9emwhrkc0wgzef","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q1Hmgqp3v5OEyomuhlLwegh5aCWCOS/anqbprqXQG2UuWlY6GEItAZtaMbKZj9fv/1M7PyFi9LN47DcOhCOjDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1zd3aykct4yr4steu6f6n9t9z9emwhrkc0wgzef","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q1Hmgqp3v5OEyomuhlLwegh5aCWCOS/anqbprqXQG2UuWlY6GEItAZtaMbKZj9fv/1M7PyFi9LN47DcOhCOjDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_addpkg","creator":"g1zd3aykct4yr4steu6f6n9t9z9emwhrkc0wgzef","package":{"name":"","path":"","files":null},"deposit":"1ugnot"}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q1Hmgqp3v5OEyomuhlLwegh5aCWCOS/anqbprqXQG2UuWlY6GEItAZtaMbKZj9fv/1M7PyFi9LN47DcOhCOjDQ=="}],"memo":"Deployed through play.gno.land"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","10","{\"title\":\"Diablo Rojo\",\"description\":\"Bootleg of Rodrigo y Gabriela\",\"audioFile\":{\"fileName\":\"diablo-rojo-rave-bootleg.mp3\",\"url\":\"ipfs://bafybeibahvhmd7uczseb4hhykfntxvduqzw5x6dvthdvhje3gn2ib4gz2a\",\"mimeType\":\"audio/mpeg\",\"size\":11562840,\"fileType\":\"audio\",\"audioMetadata\":{\"waveform\":[8,9,12,13,15,15,15,14,11,13,17,17,17,18,18,18,18,15,13,18,19,18,19,18,20,20,23,18,20,23,22,23,20,24,25,23,25,5,7,17,31,33,31,30,29,18,12,18,21,19,21,22,21,24,21,20,8,8,9,10,11,12,12,10,12,13,22,15,18,20,20,22,18,16,11,17,18,19,18,18,18,20,22,19,17,18,19,19,18,19,20,22,23,25,21,21,23,21,21,21,22,23,17,23,23,26,27,26,25,25,28,29,24,25,28,27,26,23,19,17,16,11,16,19,18,19,18,18,21,22,18,17,19,19,19,19,18,20,21,27,25,18,20,19,20,19,20,21,25,23,18,20,21,19,21,20,24,26,26,28,20,22,21,21,22,22,20,20,9,20,18,19,20,19,18,17,19,18,19,19,19,17,17,23,21,21,23,23,25,26,28,23,20,24,23,8,1,-1,0,0],\"duration\":289014.10430839}},\"createdAt\":\"2024-06-19T14:55:49.301Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t9LzqmGhxKMwVQIx3TvfKMcVyk3Bab2SgE8pOgyiR/Y1g8LyFEz58fcvE5ozQ3boit4iuXTJd/j7NH0P12toDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"Hello you :)\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T14:49:57.913Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TQzn3oUpd558Nf/v1DMyILxQ3neqJawcIFs8WbUBi0x4sOmvenDcafvHhN04gO32JLNWfDALRDcL1x9JKCM6AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"\",\"files\":[],\"gifs\":[\"https://media.tenor.com/F7XQlIcWZGcAAAAC/shake-it.gif\"],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T14:51:48.219Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vCoxib8NwhL4vITdyxcMjL1r8kSsXSJq07LUoMzqiwrAYDiKQukw5WmaKPit1rXYXLn9agXAdqtyC1jPfBA7Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"title\":\"\",\"message\":\"Hello Gnophers! :)\",\"files\":[{\"fileName\":\"Pocket-Gopher_Ano-Nuevo-SP.jpg\",\"url\":\"ipfs://bafybeiai6da7g6avkhtftbwuqkt2yh36wf6rlpsppwyu2suzntsconclay\",\"mimeType\":\"image/jpeg\",\"size\":493981,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"createdAt\":\"2024-03-11T15:51:32.713Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GvEpTR1zlloCRsASKp1K7TGWVaoj1vqk6SjST6q8R2rNdOHHhb4E8PGn1DuTtyWhFS9Ubd2S+bE5L6SoodsMBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","1","🤩","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oMsoafJ3bVwDo2wU3Gqb/PEJZdubRkfkgCdUPSpHmGkwj00GRR7N1M6fspsGJLFqapKFlt19M5qqoIobT5O0Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-3","😁","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"36Pi6LRFxVwuYqzs5lGCBBqEKSjk8Jv8piu6v60oqgx1qHgxfoNkfcC2uhEjvxR9uJnKgu72+lTcZPy+pt1kAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-4","🙃","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V2V7mShTyw8QAcvMCg2+b8nSyy3vJcyNmD1O2F7NG9UljLxX4uJPjLs/liCLYjDSG9pnMphNKC501Mag6BkcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"message\":\"Hello Portal Loop from MTP\",\"files\":[{\"fileName\":\"mtp.jpg\",\"url\":\"ipfs://bafybeicueqetcbx2lo2ht2sug535apkprbkyitwdi5a4g4raqwtlecu2qm\",\"mimeType\":\"image/jpeg\",\"size\":114710,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"location\":[43.6112422,3.8767337],\"createdAt\":\"2024-10-09T22:50:47.924Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lIKLDqvy5kILOEBk8ppQCa2U96hF+1UGuflP6CqDDDJfY9+j2rN8NN4tQenWMVBYq3B/ODvEAYQhgTQWTO2+Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"ReactPost","args":["1","3","😁","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TB3xefdZBWeh6KJqR/qRJ407zhNE0WyOCZGeAHJsKF45O/B3jgy8iJmcyCnDtvXvDwu6vIxgzvEmy0mG5KsvCQ=="}],"memo":""},"metadata":{"timestamp":"1732331058"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"ReactPost","args":["1","4","😄","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NekOvTW3+HnOh28M8qOBnMEikSe8WrQRIgjeDkBX8Ix3NZSpmIJIobykhdngNA3icPa3DojvNVTm96Cjykc8BA=="}],"memo":""},"metadata":{"timestamp":"1732330867"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","norman",""]},{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["DisplayName","norman"]},{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["Avatar","ipfs://bafybeih6sx27upm5fs4ckccie6mfffotbj6xfhy4fcvds2rzqsyz3thin4"]},{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["Banner","ipfs://bafybeih4k6plnjqujumu42gw3j3qigp5zttdq4kmwqnhotojebkkt2zqwq"]},{"@type":"/vm.m_call","caller":"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["Bio","Bits wrangler 🐾 | Navigating the digital maze 💻 | Guardian of systems, solver of puzzles | Crafting code, securing networks | Silent, focused, and always watching"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QvyCuJ71fut9N3S5vLXkIiNoWe+I0DqjY7P2NsPVPRm/RY92SjQrse5q3+kbfiQSsSuudea/PCmP9kGeLT64DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1713878906"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aR8sbaGM/YpRXoX3w+mRZjrK+rJ19qbauiAoH3cHkNzRn2qI8BoWQj7ZmXzo1zhceybme1vcg6eEieI1T0IPDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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tAgggEdq8DCQrOBW2hQBr2+wH1z614UbhjAxW2vMUAavK2qykD2r1CNueAB6AVtrygAJGAKYvXX/AAP6t/zByn3TE66/4H9W/wCYOUAQ/wBEf8XHVn9CT/omhQ6I/wCLjqz+hJ/0TQoAs3QoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABQoUKABTE66/4H9W/5g5T7piddf8AA/q3/MHKAIf6I/4uOrP6En/RNCh0R/xcdWf0JP8AomhQBZuhQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUAChQoUACmJ11/wP6t/wAwcp90xOuv+B/Vv+YOUAQ/0R/xcdWf0JP+iaFDoj/i46s/oSf9E0KALN0KFCgAUK8zQzQB7QrzIoZpreAPaFeZrErpU8gZ0K1lQB/9FeFwDvnFKIzbQrWFj0rIqwMntQKek817Wkq5717v/wDXFA3JsyK9rVuP41kFHFJkVGdCsd1eFdKKZZr2tW/nArIHnvQBnQrzNeZoAyoVrKu9AHI9qblAZ5Fe1qNAKpwmTbQrEHFe7h70CntCvMihuFNygPaFeZzXhNOAyoVhn8aG78aAM6FeZrzJ9qAMqFebvehkUAe0K8zQzQB7QrysFO7aANlCtPm5P3TWQVkdjQJk2UK15/GvSrA70CZM6Fa9wr3dxnNAuTOhWAUB617uB7GgUyoVh2r3PbAoAyoV5nmhnNAHtCteRXpVwKBuTOhWvdjP0rLduTQGT0HJr2tecGhkU1sVM2UKwC/oa93H2pRTKhWGaAP404bkyoZrEHJ/214VY7ijAZNlCsA4O1elWPakFye5r2tZODishQGTKhXmeK8JzQKe5pi9df8A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","1727362988"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iv4YDj4ZLQ/7PbibShDxgFD2/xpSGJraUIQPWCdJiWLFt0Clw3C05aq+TVUDKijZ0JspcYjEum+MQ3LZUA2VAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fTI9jMY6T0zb31xDKDJIyDt9esRXyKDPscTWxd3ZMXynpY7PqT64Jdac3ZZUDx48k4JLmFrb9kOoln6UYdUIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dlG0zo6rDO1jrT9pV+fSIH5mAvg1dyc52tnegFBar/fexAnz3RCcV0kuHcUBhZJMOl8YsjmJybI2F+g08B8CDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dlG0zo6rDO1jrT9pV+fSIH5mAvg1dyc52tnegFBar/fexAnz3RCcV0kuHcUBhZJMOl8YsjmJybI2F+g08B8CDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dlG0zo6rDO1jrT9pV+fSIH5mAvg1dyc52tnegFBar/fexAnz3RCcV0kuHcUBhZJMOl8YsjmJybI2F+g08B8CDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000h"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lq58stkgaa5RHG+hVrhNsHsSOuMtcnpidXccW/EaPfYXM6KFJSO+TzKhQq4p07Do8q7UBPEonGBxtqU7SxCaCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","Malek_","https://github.com/MalekLahbib"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t8JniPlPeMPENEy80mF2c2OUkfM6oBBIec53GoVTFK+Qk5MELwk6ou1NEnkqMIE2HJZcbD0bOk1CYJAWIjLWCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4SkhsfPfpkjg7tZ1IcTEV+qtVOpvTZebBSABXkj6TiYsp7xJnDd5NEa1dggfV39uzXz/WJ1+XUntvBOCkf5+Ag=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4SkhsfPfpkjg7tZ1IcTEV+qtVOpvTZebBSABXkj6TiYsp7xJnDd5NEa1dggfV39uzXz/WJ1+XUntvBOCkf5+Ag=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","3","{\"shortDescription\":\"a first test of the social feed dapp\",\"thumbnailImage\":{\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"fileType\":\"image\",\"isThumbnailImage\":true},\"coverImage\":{\"fileName\":\"dev meme.jpeg\",\"mimeType\":\"image/jpeg\",\"size\":10967,\"url\":\"ipfs://bafybeiguvitrqnkysdq2tn3lwi2ozbfmr4qhbgvzxiuxjin3n6gieeqt3m\",\"fileType\":\"image\",\"isCoverImage\":true},\"message\":\"\u003cp\u003eThis is a test of this dapp, using adena wallet and gnots\u003c/p\u003e\",\"files\":[{\"isThumbnailImage\":true,\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"fileType\":\"image\"},{\"isCoverImage\":true,\"fileName\":\"dev meme.jpeg\",\"url\":\"ipfs://bafybeiguvitrqnkysdq2tn3lwi2ozbfmr4qhbgvzxiuxjin3n6gieeqt3m\",\"mimeType\":\"image/jpeg\",\"size\":10967,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"First test\",\"createdAt\":\"2024-09-12T15:58:01.816Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HA2SvpYbkQrb9wYqS7foGuMVZaIVdeOM57owNrwacVdpbF27HLrNNAKknNlpXyUxFBPPZ2hSCpnVdjfu4lrXAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","3","{\"shortDescription\":\"a first test of the social feed dapp\",\"thumbnailImage\":{\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"fileType\":\"image\",\"isThumbnailImage\":true},\"coverImage\":{\"fileName\":\"dev meme.jpeg\",\"mimeType\":\"image/jpeg\",\"size\":10967,\"url\":\"ipfs://bafybeiguvitrqnkysdq2tn3lwi2ozbfmr4qhbgvzxiuxjin3n6gieeqt3m\",\"fileType\":\"image\",\"isCoverImage\":true},\"message\":\"\u003cp\u003eThis is a test of this dapp, using adena wallet and gnots\u003c/p\u003e\",\"files\":[{\"isThumbnailImage\":true,\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"fileType\":\"image\"},{\"isCoverImage\":true,\"fileName\":\"dev meme.jpeg\",\"url\":\"ipfs://bafybeiguvitrqnkysdq2tn3lwi2ozbfmr4qhbgvzxiuxjin3n6gieeqt3m\",\"mimeType\":\"image/jpeg\",\"size\":10967,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"First test\",\"createdAt\":\"2024-09-12T15:58:28.809Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m+lskYeGY32IAwd+l54M5kBhFa3aifSYruep4iFajsb30rYRZ3g3f8MPvEQ75vjgLpxACAdRpjw55WNwMI/jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","3","{\"shortDescription\":\"a first test of the social feed dapp\",\"thumbnailImage\":{\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"fileType\":\"image\",\"isThumbnailImage\":true},\"coverImage\":{\"fileName\":\"funny-developer-memes.jpeg\",\"mimeType\":\"image/jpeg\",\"size\":69480,\"url\":\"ipfs://bafybeihjthsevg7omxjma3ntfpbvv6gbatjlqps4j5iadukyhgt3mdrkre\",\"fileType\":\"image\",\"isCoverImage\":true},\"message\":\"\u003cp\u003eThis is a test of this dapp, using adena wallet and gnots\u003c/p\u003e\",\"files\":[{\"isThumbnailImage\":true,\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"fileType\":\"image\"},{\"isCoverImage\":true,\"fileName\":\"funny-developer-memes.jpeg\",\"url\":\"ipfs://bafybeihjthsevg7omxjma3ntfpbvv6gbatjlqps4j5iadukyhgt3mdrkre\",\"mimeType\":\"image/jpeg\",\"size\":69480,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"First test\",\"createdAt\":\"2024-09-12T16:00:13.769Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NpdnlLNkiNqyRVWvJ+9LiJBfFq/PmywicolDSTjqot/5k6iqjRmBXIE/i3op+bTB14n0nevUj9A30134tNypCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","3","{\"shortDescription\":\"a first test of the social feed dapp\",\"thumbnailImage\":{\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"fileType\":\"image\",\"isThumbnailImage\":true},\"coverImage\":{\"fileName\":\"funny-developer-memes.jpeg\",\"mimeType\":\"image/jpeg\",\"size\":69480,\"url\":\"ipfs://bafybeihjthsevg7omxjma3ntfpbvv6gbatjlqps4j5iadukyhgt3mdrkre\",\"fileType\":\"image\",\"isCoverImage\":true},\"message\":\"\u003cp\u003eThis is a test of this dapp, using adena wallet and gnots\u003c/p\u003e\",\"files\":[{\"isThumbnailImage\":true,\"fileName\":\"55+Hilarious-developer-memes-that-will-leave-you-in-splits-18.jpg\",\"url\":\"ipfs://bafybeiddjo5eb27ovzn6gqu2urtryqczmo5x6e7k6y2cl6iuwc32om4pp4\",\"mimeType\":\"image/jpeg\",\"size\":54678,\"fileType\":\"image\"},{\"isCoverImage\":true,\"fileName\":\"funny-developer-memes.jpeg\",\"url\":\"ipfs://bafybeihjthsevg7omxjma3ntfpbvv6gbatjlqps4j5iadukyhgt3mdrkre\",\"mimeType\":\"image/jpeg\",\"size\":69480,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"First test\",\"createdAt\":\"2024-09-12T16:02:28.367Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5AWvTuc+Ai4bz4f2m9rbFpzXWOsSIwgcR65/GXDUpORvT/S7WZoi2MYciTbe4hI3C8zQC/hHc3NU+fvIP/wuAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","Malek","https://github.com/MalekLahbib"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KnV6kDfm58a+46fWG11s0jG/8H+RxcJFcw25Y8djtjxuTXblSAivVJs/T2bFgFmnZMZtUSr8vhuRnpOp1fpYDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","Malek","https://github.com/MalekLahbib"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KnV6kDfm58a+46fWG11s0jG/8H+RxcJFcw25Y8djtjxuTXblSAivVJs/T2bFgFmnZMZtUSr8vhuRnpOp1fpYDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","Malek_","https://github.com/MalekLahbib"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d3MXNFZ50eUEFPMImO5ZALfw0d2M07sWIHRRuYixdDRCF6ammu0Edxq2ZYhKtwLshIJRZKa6jYy9MzCg4LelAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g10ahumypepd2qcrau7kahv8q78f7jcdns5tn54a","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","malek_","https://github.com/MalekLahbib"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q+wkfvwWvRD6v+csw7MKLrYtk2O1E2yKzjJ+k3vD0dqYAed8NHwQuxi7XpDGouWjFw+KTu3qNM3eSr8x3Ff5BA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QAyPA5hgJr3BPTsr/3IXyYCrrhSG2V16oQHzqjEDjcN3FB7j4wr/729qgWhvtUSNTmU69WCfD/zNGqj+2NneBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/foo20","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wvfGNSYXGGX1v1aiVSakevP5TPEQrbmPyGU+n4UJYgrNZ+t0aOvmFAcV+nfHenXzX36zJZvBIyO05ETBS0NIDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/foo20","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wvfGNSYXGGX1v1aiVSakevP5TPEQrbmPyGU+n4UJYgrNZ+t0aOvmFAcV+nfHenXzX36zJZvBIyO05ETBS0NIDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":["gno.land/r/leon/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oFgxPT5uXyS2IAC65PxUavm0Z1+lO/QOG6K9P/u5zV6fVjtVPeh70iamROIsQ5b//hMnQp0Y+X2CN7qx0j1VDQ=="}],"memo":""},"metadata":{"timestamp":"1731558677"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":["gno.land/r/manfred/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B+roL2J2kaEjgnDs5iGuMXL/v3lmiQBjvNTLMUyL1boPbp0PoOa1/8bsvMFMNMIGfrsYhXjo+0SKdnDFqZugBA=="}],"memo":""},"metadata":{"timestamp":"1731558697"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":["gno.land/r/morgan/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OHF2t/szpB8WCz4r2GgP7HpSuIkAxcWHIDbrBcvAOW2mov456IxLgGM8fvFm1boFvEaYvf/E4A2JQbFqadcnCQ=="}],"memo":""},"metadata":{"timestamp":"1731558717"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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CNE2wtp09lCFiHrbA9I76qns6s5K0zypzC9NXdNuYmpS4I/60VxUvZa5+S9QcEjhuQflFG4UqryySPTdcWnGSlaYQm2uTk1Tmr4wWpxI8JAv8I6r/qXPEN/etT/9cyv7cY/qW/ENe/4LU/8A1zK/twva12Q3ccrh2/kU+RhM7JtrVrR9Ws/k9I6wV7LbiG3then/AOuZX9uNT7LbiIuLYXp9v8syv7cFSqqIbTfc47qzM4q5UsrR5iG1qTddIO4jtlPsuOIfTZWFqeR5fTMr+3GD7LLiD6/gtT/9cSv7cMUpJUkUdN2ceydICTde/wAYcw2lhk2FjHWSfZdcQybf7lqf/rmV/bjVz2XPEQQbYWp5Pl9Myv7cV+aTtlVx2OL6jNB1ZQknbaJDT1opFLbUu2tQ1ER0m37KTiPM0lxeE6dp1XP9mpX9uHCa9llxGT0wnmYWp6GU7C1alf24a06pB9bOQXi/WHyoJsgnpD3IU1EuhJI37x13Ley3z7lWQhGF5C9uv0vLftxsfZh8QWm34LSH+uJX9uFS3doounfdnJ6QltJSN7m8YeeShtS1WTaOqley+4hD0wtT/wDXMr+3CSZ9lrxEzBIOGKeE/wCWZX9uCpJ2Dr3OPZ6bXPO6U7C/aMIlilsX7R16j2VPEI2q6cL0/wD1xK/txsr2WfESQR+CtP8A9cyv7cXS8VwJfJx+5taMtqGoHy3jrhfsquIlX/Ban/66lf241T7KviLBP+5Wn/66lf24mgVnM9BqDshPy8yyoocaWlaSnrcG8e4OQ2OUZj5RYcreoqedlktvHvqSLGPOSR9ltxDy7qVKwtT9j/8AzMr+3HoBwfZBZk5WZYu4fxfS5eTmGZguS6Wp1p66T6pJAjFqITn2Rr009r+YtVKtIPpGVOeKH5WBayom8ugX8nU/rgDAVXHRhPzdTHNWHKv5Wb/Vx+4w8wXjN4ffwCq535CP9KI2/AOrkfvKP9KIPRy/0sPVh7kfN4ESD8Aqv/BJ/wBKmBB6GT+lh6sPctCBAgR6Q4wIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAAIECBAB//Z","1714758919"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x/gOYdnQvmrW7uVXcFzu/jckHuLsRBchKHJxnQ1arGhdEaINFZ4yvwxTrlpXZTPaXZejTMRBI4pVHdWaKmpLBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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GDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAGDBgwAf/2Q==","1725972102"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6Q/NUrvqkYaHdAK9jKl36+bp8x5f+PYtmy1J51pPmzn1prgfa+1SklVuk2NpM/0lKXAlfIYDJ/PGR0sqNbeNDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1715771529"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IVAo8wbRX8sghBXMZTGL5KUXwMGrnikx/pBcswiiBdTg5xcLoAu+SaJflEYWpyAByVNFcoVHqsPVbX96PwQYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1710954233"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IKezAGSaz/R13AnU84tTxNV46r31Jl3t5l7KVp6pyx3HyHO6Iy8kDxSOzrmipbHAuShfm6kBAebAbLU0owWOBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1722974337"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rX1E/kHO8dA6Ka/uj+Ga8PvdJBkJI0jF/IL75tg/JxgP9ghiVR63uwsox3IMB2BwVEw74AdrP8zVO78CMgR2Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1710944473"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+RDO3ykh3YmNPY7Lm8lZN1KUVRvzd4LC+UGY2abpbv6/5FT2VW1RVggzG8RdBGTqqypeMitO1sPtfjkSVuQ5Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1711131601"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rWgeTQsdE5jf8WErx0FZAr9PxbtR4bdQ9/Pe7AtfmW5FYJGnXsJF9ja+/u3aJggMdm96rID352sy6jx2/iLcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1715192740"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4s6HiSGMP+Rv0HG62mS+6hTMunwNPC5ZHdphD2mz7eaENaivbCGOjSUljU0707f8uUGu5UX94HceaCwjmaFTDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dfrfHkaZ29hzssrqqHmNlSt4mEkKK+GMxLm4G5Dh/jriDt84miFcMZ6CaNF6SrhQvqesx0Cq3Od7qHLIQ0vyCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dfrfHkaZ29hzssrqqHmNlSt4mEkKK+GMxLm4G5Dh/jriDt84miFcMZ6CaNF6SrhQvqesx0Cq3Od7qHLIQ0vyCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4SFmD38mRpLvr+C0hKpgthDfD2TqbTkTd7VV3A4sQ6ZAjCNfKLhFPslIv6zagz0tlA9oo2sfcQ/iXwGpCghPBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000008"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bVqL+YaNyMHKFPAPrGKhKkxnlFMyOH+jPingO4Ks9OGgegNK6pEMP27QBxAap9dlghT5YsCBZ8JmfjOcqjXzBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000008"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bVqL+YaNyMHKFPAPrGKhKkxnlFMyOH+jPingO4Ks9OGgegNK6pEMP27QBxAap9dlghT5YsCBZ8JmfjOcqjXzBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000008"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bVqL+YaNyMHKFPAPrGKhKkxnlFMyOH+jPingO4Ks9OGgegNK6pEMP27QBxAap9dlghT5YsCBZ8JmfjOcqjXzBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000008"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bVqL+YaNyMHKFPAPrGKhKkxnlFMyOH+jPingO4Ks9OGgegNK6pEMP27QBxAap9dlghT5YsCBZ8JmfjOcqjXzBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mDFh1mXJKKDvEgiG6O/TeMgai3sslmk0zQQVMbd1PFfandPT3u2kNvHRkOmXr1OOM3NWrEk1zgsjmjBU/yobBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000a"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PFIn8KGWdfAlwcXrk13Opegh8vzVpysYE0Of/1ixYmv09DXdx2fkNWWK9fIL8NonAVmZWIEzXVLt3hkCjoSFDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000d"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c6PNvxwHjtxdVFtIFOGqK7Riav8wLk4chvvSIaUB9Z8chjaoV1gvPwMJHk+VLtfF7hBermDJ2Hm5Au4/ZVr5Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000d"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c6PNvxwHjtxdVFtIFOGqK7Riav8wLk4chvvSIaUB9Z8chjaoV1gvPwMJHk+VLtfF7hBermDJ2Hm5Au4/ZVr5Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000f"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7aBeXqnZtbNV+3GNwn4qA/LTa+ZAr1PYF2Q+tYAF9MGn/FPn6/AaIvFHyt+yne2TLYyTmtA+85bHmpPlSQeDDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000g"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+vmhaYhQblIlNcVrD8HuLLDnSUZRjVm6xX/XKTqXCyfgSGglTa/XMj9qTHbPrU+35PqKT3zQ+FdLU8RjjtPiAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000k"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dUK+fZ1hh0Vx5SVC2jhFMwap1aF6QZAMByhy4pEIDNDJ8Ol9SgcyZy+59Fo3VnFTAbDbmE7OUsaTENRCAUqJAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000m"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fdO0VZ1Z+fS9TWvottQAiDY0XVNQq3lU6XUcL1Yvn31e3Iz4TPVDu1rBflNzO44Fkht/IFKj9yI23fNz29tcAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000n"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fGSPC3RFHG5og6JxdIbyKzVSoXh+wxBpLz2kln5T2fVINSIzImEmVMjVj6it2K5EXOIEih/JldjawVnrjNL2BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000n"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fGSPC3RFHG5og6JxdIbyKzVSoXh+wxBpLz2kln5T2fVINSIzImEmVMjVj6it2K5EXOIEih/JldjawVnrjNL2BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000p"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"88+Gv7gQsrbWpgdsVN9cidCWqcnDgMydC76uXIY3NyDiRPutvBsjPjSn5itxXeZ7A/G0URCChP/DP+QEF8qKCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000q"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jHkjmd39Pf7uaiaXaBBE91misoSdD3WMWTrghu5qfib4oydS+pMKiLKDm0xaV7t5u4nCtgEnRWlmYWCn3T2wAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000r"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OF5sJ4h1T2UVHmQ8/jgr//6ojaaw0Rjh2h8ux5R7OR+HvKC6/qLp4jpdGMdQ7PQtPm/RcsMvuV5CU6OmLvGPAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000v"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"f/RnnFVoGm79o9qoZvvEkHN7RWthuWm51Cv7CxZDkwMg+0jk1f5VHGlTPPNfuLI2p5aOcUdTPFWTa59xuytMDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000z"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yQkDZ8itZ9tpJy+rfAoRDTI7pb02ukEGP9fuWFdsd5otkh/y3heN9PlBYNiMCidexC6XP5VKXWsWIarrJVm4DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"PostMeme","args":["data:image/jpeg;base64,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","1710671806"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1M+77Nv3baEbiO5+a3ThrptIl9lEc5NmKMan4MGq5OkgQ5Yk4JN+zqjC2VVma+cusI9ma/Ghb3swNmsi5UuGBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"PostMeme","args":["data:image/jpeg;base64,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ooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooAooooD/2Q==","1710518162"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TzEGT7oEx9L8uvhpQuAVkoAhv/ygrD0dg4VGmnrPXYn+FMSqlQk9/U7mLaOhGqAXqrkp+wzszQVn8WbjQRLgAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"PostMeme","args":["data:image/jpeg;base64,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","1710671853"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMAcicfvy0FwhADESwONgvIt6rPUqnmXoS7MxfDYaZSR1nLxJNcTvYqbTNkjILkohtH24vTkGoXr4SkqiLutBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3jdS/96YPnLWJQPmw6jlG4vzFtS7XgSTSagWfu/c+NxCXM3VvQ81VolrotyvLiPv6EfZ15eCw5Grojt4cvtBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3jdS/96YPnLWJQPmw6jlG4vzFtS7XgSTSagWfu/c+NxCXM3VvQ81VolrotyvLiPv6EfZ15eCw5Grojt4cvtBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pjqD/YAb5JCi3FlMQP4jEcNnmGfH0xPdtmONAhLkhDaHXhDhD9Z0pNJrshWiYe01vumv4UZao+gIJpjs6LQsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Uzqdsl10dwTkZE1F9NY/M+JbbUfs4cboneDcW5+FDIpnpBU3Ciez07KvNVye03xzZ2G2M6HV+ZJ0NZxk4w2hAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V7xEeUmtfk6WIEMyrD/btAodiP60XyB1EaqGtCFAR7ZyL3oWU1Ckt8Gy69kfQocgD0sX7dzvdfNvywKpBVlvBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3llv26Sd4yWXuFwUxz3NZlKLoERcJBf2im8rX6Sxn5deWU+fJT9LzIfGgXVmLCZKPA0GzFwiA32VK/xZW/+0BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"GetOwner","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TCt4+K64vOI0+kk9RRgtIoAvZTheNLaCPAHbEEObV9EBzMmzsZG99C5qIJR+10cziSTh2o66Vt0iZYaEOD6eCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"PostMeme","args":["data:image/jpeg;base64,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","1710864357"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NYlzpbsxpAWBxVR1WdutIUGxuGihHFlcW+U99JhnM0UJ9pnPRkXtbby9lLSwzhf+aHO60LOKQTbChHCodKaFDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ym5YGOfFzrkciT0v8yFwAVsJk0SrqqmQrXn+NV9afslIa2tyOh/pSFCDcJuWLgqqwvilCuB+GmqMYdAomL5OAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"GetSignupsInRange","args":["1","5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D43JuGRhQSVgyUZPpC1MBUKJxCBMk/nwhkK9EXCCB9oTEo67yKI2mYbgHQ692fgTT9KDGdYtxT5cyK7WvS3xCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grve/RXTzVno2QFhBGkzvmAwwDqBnrrLBHuDiHwJSBTK9dk861sg0wNhFtq9MKpsYe7PH86wYTugWnEAGnvhBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grve/RXTzVno2QFhBGkzvmAwwDqBnrrLBHuDiHwJSBTK9dk861sg0wNhFtq9MKpsYe7PH86wYTugWnEAGnvhBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grve/RXTzVno2QFhBGkzvmAwwDqBnrrLBHuDiHwJSBTK9dk861sg0wNhFtq9MKpsYe7PH86wYTugWnEAGnvhBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grve/RXTzVno2QFhBGkzvmAwwDqBnrrLBHuDiHwJSBTK9dk861sg0wNhFtq9MKpsYe7PH86wYTugWnEAGnvhBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grve/RXTzVno2QFhBGkzvmAwwDqBnrrLBHuDiHwJSBTK9dk861sg0wNhFtq9MKpsYe7PH86wYTugWnEAGnvhBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"grve/RXTzVno2QFhBGkzvmAwwDqBnrrLBHuDiHwJSBTK9dk861sg0wNhFtq9MKpsYe7PH86wYTugWnEAGnvhBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RvM6BuOUzDUXdFxBwqqBdVM/6sgs0eaT3AbkKilbEMQ00g9Prag3V4POxYS1aivFMA/tfLsOmvYIcd1uLMHCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RvM6BuOUzDUXdFxBwqqBdVM/6sgs0eaT3AbkKilbEMQ00g9Prag3V4POxYS1aivFMA/tfLsOmvYIcd1uLMHCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RvM6BuOUzDUXdFxBwqqBdVM/6sgs0eaT3AbkKilbEMQ00g9Prag3V4POxYS1aivFMA/tfLsOmvYIcd1uLMHCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RvM6BuOUzDUXdFxBwqqBdVM/6sgs0eaT3AbkKilbEMQ00g9Prag3V4POxYS1aivFMA/tfLsOmvYIcd1uLMHCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RvM6BuOUzDUXdFxBwqqBdVM/6sgs0eaT3AbkKilbEMQ00g9Prag3V4POxYS1aivFMA/tfLsOmvYIcd1uLMHCAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByName","args":["manfred"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RQUWpQ+CsajSuGZHHXUMm30Fl9iHJZXOGB/LtocxDmUZfKw9+hfagT+LQI93ZM1/t2Y7GbvWK0y0yoCBEDJICQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByName","args":["moul"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gALp8S8sQjjuEzt0KW/Xj/2cplv4q3f8J10Jv448X9koVvyMyLkSn3TVeDbtbOOOkK0YPIDt74ERGd3fZNkuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","leohhhn","https://github.com/leohhhn"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wavmbTOXRpb0iPBAOghwDYxxSK6Tqjcu35kYK6ZyOi7UltaNiLVaQEOvajJ5ARPgxO1ckKkprLihWfBvpap1AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","leon","https://github.com/leohhhn"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7x+s62wB6GIYtp5JCeAj7JNj7Z8JatmLBDvYz8MxO3YsCR9lHYUUkvg0nUFGuDcoRyYcOT1J5BTUNt4HiWUBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EdKR9lXDA5Led+zEzYw3w1L8opyd+FmZK4IX3hKIbyBATL8WMj6o9TmPXOtbEMohfMfhtsUxOqi1L+rFaF9wDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Withdraw","args":["1000"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8TW9Y6mZsvMYss+QIauNC15OsFi3vvcx24HLmw+G3BfKp3jETEr4M9cPoXeKOMkw9D8MMYKz7sg7DSNrg5DPBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Withdraw","args":["1000"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8TW9Y6mZsvMYss+QIauNC15OsFi3vvcx24HLmw+G3BfKp3jETEr4M9cPoXeKOMkw9D8MMYKz7sg7DSNrg5DPBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/docs/adder","func":"Add","args":["42"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sGr60yv+p4uP6h4jOhQavK5t9SOkIMeQ/VbP/MaxE+tnfTFjWe8lDMHEJsQ+s1whM3yppipDshqbpC/wg/14DA=="}],"memo":""},"metadata":{"timestamp":"1736359685"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/docs/buttons","func":"UpdateMOTD","args":["Looking forward to Mainnet!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rJP0m6l3zWvoqZUdB6NiSQpr/frSN7FJM9+RB0cTRXQY6Qk2cgU20oNQkG5JwoDEiyUGiBLQKYvSj49jG3GzDA=="}],"memo":""},"metadata":{"timestamp":"1736359956"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/docs/buttons","func":"UpdateMOTD","args":["Looking forward to Mainnet"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PJIyYdpDqQ5tZ0DJrW/K01+SYJfzDITr60ZK0uNYloCITaTNn3nqBgj4HJJhC3EFdejrALZxiwf3zTIbHmD7AQ=="}],"memo":""},"metadata":{"timestamp":"1736359856"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"PickWinner1","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w4ySxocyu9KgLzeynZhmIz1dF8xW6QD2pPfVomUt4XF4aHS1elB1CoHuagIhlXDdBK1Ht0G1xbs52Y6VyvzbCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"PickWinner2","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ic2TuT2Z601IDEOsVKsBGrrRwz8N7b3ZVRUTknMVRYyxymQfhLkthwbM5EaqAVc0nSRg2/he2LFTgrtAmojzCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"UploadRandomness","args":["42069","37133500"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LC29vBdIyyT0XaU6QT9JGdDPo+/Fn0P8bu0rcIj84nFDzln4q7b8iVlpj0w2rBnLfzSB4tDU79dAbs8iR2oSCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["audit-proposal-request","Call for Security Auditors - gno.land Audit","\n\nIn the gno.land ecosystem, security is one of our top priorities as we continue to develop our blockchain focused on smart contracts and decentralized applications. As we move closer to the beta launch, we're calling on experienced security auditors to help us ensure the robustness and security of our codebase.\nWe are now accepting proposals for the auditing of the gno repository on GitHub. This is a significant and complex task, so we are looking for qualified firms or individuals with experience auditing blockchain systems, virtual machines, and distributed systems.\nYou can find the full gno.land repository here:\n\nhttps://github.com/gnolang/gno\n\n## What's in Scope?\n\nWe've already done some work to narrow the scope of the code that requires auditing. For a more detailed list of which files are in scope and which are not, please refer to the [Google Spreadsheet](https://docs.google.com/spreadsheets/d/1rAvzvCH1TBZAykWCzKpefJnbx0SaCEgnP6IypzX8Xo4/edit?usp=sharing) that outlines the specifics.\n\n### Scope Breakdown by Directory\n\nHere's the estimated breakdown of the lines of code that are in scope for auditing as of November 11th. This code is largely written in Go:\n\n* **gnovm**: 43,452 lines (25% of total)\n* **gno.land**: 18,677 lines (10% of total)\n* **tm2**: 108,020 lines (65% of total)\n\nTotal lines in scope: 170,149 lines\n\nThis won't change drastically before the audit, so these line counts may help auditors estimate time costs. Many proposals we've received so far are simply time-boxing for a 4 engineer-week audit.\n\n## Auditing Approach\n\nDue to the size and complexity of the audit, we are considering breaking the task into sub-components. We may hire multiple firms to audit different parts of the codebase simultaneously. The proposed divisions are:\n\n1. Gno Virtual Machine (GnoVM) - contained in the \"gnovm\" subdirectory\n2. The Remaining Components - including the \"gno.land\" and \"tm2\" subdirectories\n\n### Key Focus Areas for Auditors\n\nWhile the full codebase needs a thorough review, we've identified several areas of potential security concern that require special attention:\n1. **Determinism in GnoVM** \n As a blockchain designed for deterministic execution, ensuring that the GnoVM executes contracts consistently across all nodes is crucial. Our goal is to eliminate non-deterministic components from Go, such as using AVL trees instead of Go maps. However, we may still have lingering issues that could lead to non-deterministic behavior. A prime example is the module within `gnovm/pkg/gnolang/values_string.go`, which should be carefully reviewed for any such issues. \n **Why this matters**: Non-determinism can lead to chain halts or splits, which could be exploited by attackers.\n2. **Other GnoVM Challenges** \n Gno.land contributor Morgan has detailed some additional areas of concern of the Virtual Machine here: https://github.com/gnolang/gno/issues/2886#issuecomment-2400274812 \n3. **Security in Realms (Smart Contracts)** \n Developers deploy smart contracts, called \"Realms,\" to the chain. Malicious Realms could attempt to inject harmful content that could affect other users of the chain, particularly in the `Render` function or supporting tools like **Gnoweb**, which displays Realms to end users. \n **Potential risk**: Cross-site scripting (XSS) and other injection attacks.\n4. **Security Risks Found in Other Blockchain VMs** \n Many blockchain VMs, such as Ethereum's EVM, have faced high-profile security issues. We expect that similar vulnerabilities could be targeted in the GnoVM, so it's crucial to audit and mitigate these risks in advance.\n5. **Key Management (gnokey)** \n Although this is a lower priority than some previously mentioned, auditors will need to review the gnokey package, which handles key generation and signing, to ensure that security best practices are being followed; for example, ensure our Ledger hardware wallet integration with gnokey uses the correct build flags.\n\n## How to Submit a Proposal\n\nWe're looking for proposals that include the following line items:\n\n- **Cost of auditing the entire \"gno\" repository** -- covering all directories and files in scope.\n- **Cost of auditing the Gno Virtual Machine (gnovm)** -- focused on the **gnovm** subdirectory.\n- **Cost of auditing the other components** -- covering the **gno.land** and **tm2** subdirectories.\n- **Fuzzing efforts** -- auditors are encouraged to include fuzzing as part of their code review process, though it should be listed as a separate line item.\n\nPlease include the timelines for auditing and your current availability beginning December 23rd. \n\n## Timeline \u0026 Contact Information\nWe expect the audit to consume at least 4 engineer weeks and conclude by the end of the day January 20th, giving us a week to remediate any high- or critical-severity issues by January 28th. Audit teams may decide to dedicate multiple auditors in parallel to meet our desired timeline. We are open to discussions with auditing teams to answer any questions about the scope of the project.\n\nPlease send your proposals via email to **security [at] tendermint [dot] com**. We are happy to meet with potential auditing teams to further discuss the details and answer any questions.\n\n\n## Conclusion\n\nThe gno.land community is committed to building a secure and resilient blockchain platform. We believe that involving experienced auditors in our development process is essential to ensure that we can deliver a secure environment for dApp developers. If you or your team have the expertise and are interested in contributing to gno.land's security, we encourage you to submit a proposal.\n\nLet's work together to make gno.land the most secure blockchain for smart contracts and decentralized applications!\n","2024-12-05T00:00:00Z","kristovatlas","gnoland,gnovm,security,audit"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6SPoux00l4/MJM3cLt0ELptszcZNUOIv6SUd18zU40LiqhvTg9Ut2yu+wCldHjxeFJVdoMcVFc/O8Dz6WzMQAg=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1733421726"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Buga8oJ9ti1w05gPWmQsvOwoBRad9wE6RXWzTEpruCfxtAB/20Jmg1RjnFLZFv0/05l6cgEj3rpEZHgJO68JCg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m3SsecDqZYtfnPq/FX4q2uSMjmIHbNgv3shMjiBeb2EbiGJfNekOws+JBZEQXZxVBpnw9IsnLGSB+j2AvCXIDA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dmHWooNdap5FELS+6EPxqZBigbZoiDtr55eGNQoBtoavOlfiy6qrDgFVVcdng7fA7Q9z2qZamjnYFwflHriWBA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QVcoEhMXzjEJ/8x1CnuXcvl/XtLt9kqbcO3kNyH16V4f+pt5AJWnOt3CL/YCbFFrG8qD1IbRDgQ0klZLfkUBBQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["discover-gno-gc24","Discover gno.land at GopherCon US: Embrace Interpreted Go","\n\nIf you're attending GopherCon US this year, you may have heard about the \n[Challenge Series](https://www.gophercon.com/agenda/session/1281366) happening \nduring the conference. In addition to a the core set of challenges focused on \nsoftware engineering and cybersecurity provided by the Challenge Series organizers,\nthe engineers at gno.land have brewed up a set of challenges that will introduce\nyou to blockchains and smart contracts, while still feeling right at home by \ncreating your solutions as Go and Gno programs!\n\nIn the challenges, you'll learn how you can interact with a blockchain and discover\nhow realms (smart contracts) can be utilized for stateful applications without \nrelying on a filesystem or a database. You'll also be able to leverage gno.land's\nfeatures, such as using deployed contracts both as an API and as importable Gno \nprograms, while being aware of their limitations, like not being able to access \nthe system's time. And finally, you'll see what class of security problems come \nup when you want to make smart contracts. Luckily, there are no SQL injections \nto worry about here.\n\n## What is gno.land and Gno?\n\ngno.land is a distributed multiuser language-based operating system based on Go.\nIt embeds a custom-built virtual machine that interprets and executes the Gno \nlanguage - a fully deterministic variant of Go. Set to become the leading \nopen-source smart contract platform, gno.land allows gophers to create \ndecentralized applications with a minimal learning curve.\n\n## How to Get Started\n\nYou will be able to find the Gno challenges among the full catalogue on the \n[Challenge Series website](https://gophercon.challengeseries.org/). There you\nwill also find [a guide](https://gophercon.challengeseries.org/gno) that the\nengineers at gno.land have put together to help you get started, covering \nessential concepts and environment setup. This guide will provide you with the\ntools and knowledge you need to effectively participate in solving Gno challenges.\n\nTo participate, you'll have to form a team. You can join up with a team or look \nfor teammates by reaching out on the #gophercon-cs channel in the \n[Gophers Slack](https://invite.slack.golangbridge.org/). We suggest 4-5 people \nper team.\n\nOf course, it wouldn't be a competition without prizes! The winning team will\nscore four tickets to GopherCon 2025, the second-place team will get gift cards\nfor new hacking hardware, and the third-place team will receive copies of \n\"Go Programming: From Beginner to Professional\" by Samantha Coyle, along with \ncash prizes for all three top teams. We also have nine individual Achievement \nawards, such as \"First Blood!\", \"Night Owl!\" and \"Hooked on the Sidequest!\", \neach with a one-year subscription to 2600 Magazine and $100 in Google Cloud\nPlatform credits. Plus, everyone who completes a challenge is eligible for \nrandom prizes like vintage 2600 Magazine issues and security and programming \nbooks, to be awarded to those present at the prize ceremony on Wednesday. The \nfull list of prizes can be found on the [Challenge Series Prizes page](https://gophercon.challengeseries.org/prizes).\n\n## Ready to Take on the Challenge?\n\n- Join the Challenge Series: Test your wits \u0026 skills and gain practical \nexperience with Gno by visiting the [Challenge Series website](https://gophercon.challengeseries.org/).\n- Deepen your understanding of Gno and its core concepts by visiting the \n[Official gno.land Documentation](https://docs.gno.land/)\n\n## Get to Gno Us @ GopherCon US\n\nIf you'd like to learn more about Gno \u0026 gno.land, join us at GopherCon US for an\nin-depth talk and workshop on developing apps with Gno. Find the details below.\n\n### Workshop: 'Building a Decentralized App on gno.land'\n- Time \u0026 date: Monday, July 8th, 10:00 am - 12:00 pm\n- Who: Dylan Boltz, Software Engineer at gno.land\n- Where: Marina City, Marriott Marquis\n- [Link](https://www.gophercon.com/agenda?speakers=3317990)\n\n### Presentation: 'Building a Deterministic Interpreter in Go: Readability vs. Performance'\n- Time \u0026 date: Tuesday, July 9th, 11:45 am - 12:10 pm\n- Who: Jae Kwon, gno.land Founder and Co-founder of Cosmos\n- Where: Skyline Ballroom D, McCormick Place\n- [Link](https://www.gophercon.com/agenda?speakers=3304739)\n\nFor more info, visit [gno.land](https://gno.land/gophercon24/) and stay connected \nthrough our social media channels.\n\nWe look forward to seeing you at GopherCon US and building the future with Gno.\n\n###### *Participation in the Challenge Series is only possible by physically attending GopherCon US 2024.","2024-07-03T13:37:00Z","leohhhn,deelawn,thehowl","gnoland,gophercon,gno,challenge-series,go"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HLdYPQH8YH+2qm46EbPgBsEIdMfTIDt9m1hMzXsdEnLhOJsBat57ty184QDUUGMVzttzesqZyslaq+jzCbLuCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\n\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n## About the Gnoland Funding and Grants Program\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n## Types of Contributors\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n## What We Are Looking For\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n## Meet Our First Grantees\n\n### Onbloc\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n### Teritori\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n### Zack\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","2023-06-27T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-07-11T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","2023-09-04T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"te6K8A/tqTv6lxYwjvjhCO0bj5FZXVrRW4y9a/sueElaZHhcQilfJT8+Zk7Mh42BRR2KJTjhOd3rQ+c2k5RbBQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\n\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n## About the Gnoland Funding and Grants Program\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n## Types of Contributors\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n## What We Are Looking For\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n## Meet Our First Grantees\n\n### Onbloc\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n### Teritori\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n### Zack\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","2023-06-27T13:37:00Z","christina,michelle","gnoland,funding,grants"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z1QCBoxRWdAKbD6lpbzB5cpmiLgUxQgoWdaw2zuP8O1KVVtGDNSGaFdPPDWC7nLFsLItBXOUKggyNymAAn6WDw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M3SSgDpXdb6gPRjmJy8pPGRTjY4FmeqV5A3CvFdXsxKsixrw5UX5xU70EncZdCOKoAQXMhqzNEelm3/wWUJTCg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gc-us24","gno.land at GopherCon US 2024","\n\nGopherCon US is one of the largest events for the Go programming community.\nThis year, in the vibrant city of Chicago, we had the honor of being the Diamond\nSponsor at GopherCon US 2024. From July 7th to July 10th, we were surrounded by \ntop Go talent; it was an incredible opportunity for us to connect with developers,\nshowcase our innovations, and share our expertise.\n\nGopherCon US 2024 was held at the stunning McCormick Place, bringing together\nnearly one thousand Go enthusiasts from around the world. Our team was thrilled\nto be part of this gathering, contributing to the vibrant ecosystem of Go\ndevelopers.\n\n## Highlights of Our Collaboration\n\n### Jae’s Talk\n\nJae Kwon, the founder of gno.land, gave a talk on “**Gno: Lessons in Building a\nGo Interpreter in Go.**”\n\nJae’s talk provided an in-depth overview of why this technology is gaining \ntraction in the development community. The discussion began with the key reasons\nto use Gno, and its seamless interoperability which allows for effortless \nintegration. Detailed comparisons were made between Gno and other prominent\nprogramming languages such as Solidity and Rust which are running other smart \ncontract platforms, showcasing Gno’s distinct advantages. The strengths of the\nGnoVM were a focal point, particularly its stack based AST architecture, its \nauto persistence, as well as its determinism and other features. The presentation\nalso shared valuable lessons learned from GnoVM's development and implementation,\noffering insights into best practices and challenges overcome in the future work. \nBe sure to make some time to watch [the recording](https://www.youtube.com/watch?v=betUkghf_jo)!\n\n### Gno Workshop\n\nParticipants had the opportunity to dive deep into the development process, \nguided by our expert engineer **[Dylan Boltz](https://github.com/deelawn)** who hosted a workshop on Community \nDay: **Building a decentralized app on gno.land**. The workshop provided practical \ninsights and step-by-step guidance, empowering attendees to start building their\nown applications. If you missed our workshop or want to revisit the session, you \ncan find a recorded version of the workshop [here](https://www.youtube.com/watch?v=lwL2VyjaV-A).\n\n### The gno.land Booth\nOne of the most rewarding feelings about attending these kinds of conferences\nis watching our booth quickly become a hub of activity, drawing a steady stream \nof visitors intrigued by our project. We engaged with developers from various \nbackgrounds, answering a myriad of questions about Gno, gno.land, our company, \nand the company’s [open employment opportunities](https://jobs.lever.co/allinbits).\nHaving all of this direct human interaction was not only informative but also\ndeeply insightful, providing us with valuable feedback and ideas. For more\ninformation, check out our [Official Documentation](https://docs.gno.land/).\n\n### The Gno Raffle\n\nOne of the major attractions at our booth, amongst the “gnome” beanie hat as \nwell as the T-shirts, was the raffle for a high-end mechanical keyboard. The \nraffle participants had a direct opportunity to interact with gno.land by \nfollowing the raffle instructions, leading them to use [Gno Playground](https://play.gno.land/) to import\nand deploy a smart contract raffle realm from their own laptop. The excitement \nwas palpable as attendees eagerly gathered for the drawing. The raffle not only \ndrew crowds, but also sparked numerous engaging conversations that led to Go \nengineers giving Gno a try.\n\n### The Challenge Series\n\nThis year we had the privilege to participate in a collaborative partnership\nwith the CodePro team to build the [challenge series](https://gophercon.challengeseries.org/). This collaboration was an\nopportunity for participants to learn how to interact with blockchain and \ndiscover how realms (smart contracts) can be utilized for stateful applications\nwithout relying on explicitly managing a file system or database. This was an \nopportunity to showcase gno.land’s features, like using a deployed contract as\nboth an API and as an import for other contracts.\n\n## Conclusion\n\nOverall, the enthusiasm of the attendees at GopherCon was infectious, and we \nwere delighted to see such a high level of engagement and curiosity. Whether \nit was at our booth, during the raffle, or in the workshop, the interactions\nwere meaningful and enriching. Sponsoring and collaborating at GopherCon US \n2024 was an unforgettable experience. We are grateful for the opportunity to \nconnect with the Go community, share our knowledge, and learn from fellow \ndevelopers. We extend our heartfelt thanks to everyone who visited our booth,\nparticipated in the raffle, attended Jae Kwon's presentation on Gno, and joined \nour workshop.\n\nWe invite you to stay connected with us on our [Discord](https://discord.gg/43HC5NZzHe),\nand our [blog](https://gno.land/r/gnoland/blog) where we \nwill be sharing more insights and updates on \n[Test4](https://gno.land/r/gnoland/blog:p/test4-live), our current testnet, as\nwell as the progress towards our launch.\n\nThank you, [GopherCon US 2024](https://x.com/gophercon), for an incredible experience. \nWe can't wait to see what the next event holds!\n\n","2024-08-16T00:00:00Z","VT-Cosmos","techconference,events,outreach,GoDevelopers,GoToGno,gophers"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D7wxme20k7tdQO86UywX1C9il6v0UiRo07yLACfrkt0i4sN2TY+y8NOSNIo/RUrX/uBUjNKoGmP0b2iRxbulBQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gc24-challenge-series","GopherCon US: gno.land's Challenge Series Contributions","\n\ngno.land is pleased to have been granted the opportunity to provide a series of challenges for the Challenge Series at the 2024 GopherCon in Chicago. We enjoyed writing them and hope the participants had a good time and found it interesting to learn about gno.land and blockchains in general.\n\nThis blog post will outline each of the challenges and explain how to solve each. Each section include the challenge prompt, clues provided, solution, and explanation.\n\n## Gno Hidden Temple Basics\n\nThe first challenge is meant to serve as an introduction to making a function call to a gno.land realm. The second challenge, while a bit more challenging is meant to help participants become a bit more familiar with how key generation works.\n\n### Phase 1\n\n#### Prompt\n\nSpeak the word to gain access to the hidden temple. Make a transaction on the blockchain set up for the event. Analyze the Gno code to understand what password to pass as an argument to solve the challenge. The realm path for this challenge is:\n`gno.land/r/challenges/basics/p1`\n\n#### Clues\n\n- The gnokey command line tool allows to interact with the blockchain.\n- The GnoWeb interface can be used to inspect Gno code on-chain.\n- Using the \"Help\" button on gnoweb you can get help preparing a\ncommand to use on the command line.\n\n#### Annotated Realm Code\n```go\npackage enter\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/system/solver\"\n)\n\nfunc Enter(password string) {\n\tif password != \"1337\" {\n\t\tpanic(\"invalid password!\")\n\t}\n\n\t// This will mean that you solved the challenge!\n\tsolver.MarkSolved(\"\", std.PrevRealm().Addr())\n}\n\n```\n\n#### Solution\n\nThe solution here is to simply call the `Enter` function with the \"1337\" password.\nDiscovering the source code is easily achieved by inspecting the realm's source code\nfrom the gnoweb interface.\n\n```sh\ngnokey maketx call \\\n\t-pkgpath gno.land/r/challenges/basics/p1 \\\n\t-func Enter \\\n\t-args 1337 \\\n\t-remote https://challenges.gnoteam.com:443 \\\n\t-gas-wanted 1_000_000 \\\n\t-gas-fee 1ugnot \\\n\t-broadcast \\\n\t\u003ckey-name\u003e\n```\n\n### Phase 2\n\n#### Prompt\nThe criteria to enter the temple has increased. You must be c00l. The realm code checks that your address contains a \"00\". You have to find a way to programmatically create addresses until you find one that has two zeroes. The realm path for this challenge is:\n`gno.land/r/challenges/basics/p2`\n\n#### Clues\n- `gnokey` has the `-account` flag that allows to create an account with the same\nmnemonic but different address, by changing the \"account number\".\n- To register to the club from the c00l address, you'll need to send it some\n\tcoins first.\n- Remember that the address is a form of hash of the public key.\n\n#### Annotated Realm Code\n```go\npackage registered\n\nimport (\n\t\"std\"\n\t\"strings\"\n\n\t\"gno.land/r/system/solver\"\n)\n\nfunc RegisterClub() {\n\taddr := std.PrevRealm().Addr()\n\tif !strings.Contains(addr.String(), \"00\") {\n\t\tpanic(\"Sorry; not c00l enough.\")\n\t}\n \n // Base challenge\n\tsolver.MarkSolved(\"\", addr)\n\n\tif strings.Contains(addr.String(), \"0000\") {\n // Hidden hallenge\n\t\tsolver.MarkSolved(\"super_c0000l\", addr)\n\t}\n}\n```\n\n#### Solution\nExample:\n```sh\n# !/bin/sh\n\nMNEMONIC=\"source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\"\n\nfor i in $(seq 1 1000); do\n\tprintf '\\n\\n%s\\n' \"$MNEMONIC\" | gnokey add -recover -account \"$i\" -insecure-password-stdin test1-$i 2\u003e/dev/null 1\u003e/dev/null\n\tif gnokey list | rg 'addr: [^ ]*00'; then\n\t\techo \"found it - test1-$i\"\n\t\texit 0\n\tfi\n\tprintf '\\n' | gnokey delete -insecure-password-stdin test1-$i 2\u003e\u00261 \u003e/dev/null 2\u003e/dev/null 1\u003e/dev/null\ndone\n```\n\nThis example solutions begins with a mnemonic that has been randomly generated and hardcoded in the script. It iterates over various account numbers -- each account number for a given mnemonic produces a unique address. Once the script finds the address containing `00`, the function `RegisterClub()` can be called.\n\n```sh\ngnokey maketx call \\\n\t-pkgpath gno.land/r/challenges/basics/p2 \\\n\t-func RegisterClub \\\n\t-remote https://challenges.gnoteam.com:443 \\\n\t-gas-wanted 1_000_000 \\\n\t-gas-fee 1ugnot \\\n\t-broadcast \\\n\ttest1-134\n```\n\n#### Hidden Flag\nCalling this function from an address containing `0000` will unlock the hidden flag.\n\n## Wacky Wallaby (Rocko)\n\nThis challenge is meant to be a bit more laid back and incorporate a physical requirement to obtaining the solution. Once the QR code is found, solving it is pretty straightforward.\n\n#### Prompt\nA very anxious looking wallaby is running around frantically and appears to be searching for something. Odd. You’ve never seen a wallaby wearing a Hawaiian shirt before. You ask him what’s wrong. “Ahh fiddlesticks! My O-Phone crashed last night but I’m unable to get my QR code I need to check in for my flight! I have TokketyTikkety followers that are expecting content from my trip. Content!” His eyes pop out of is head and it makes you feel a bit uncomfortable. “You’ve gotta help me mate. The blokes over at the Gno booth help me set it up. Maybe take a look ‘round there for a clue. I’ll look for it on my lappy in the mean time.”\n\n#### Clues\n- Look for a QR code\n- Perhaps the contents of the QR code will reveal information regarding how to check in\n\n#### Solution\nThere was a QR on the back of a Rocko plushie at the gno.land booth. Scanning it produced a link -- gno.land/r/challenges/rockorockorocko93. \n\n#### Annotated Realm Code\n```go\npackage rockorockorocko93\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/system/solver\"\n)\n\n// CheckIn is called to solve this challenge.\nfunc CheckIn() string {\n\tsolver.MarkSolved(\"rockocheckin\", std.PrevRealm().Addr())\n\treturn \"bingo!\"\n}\n\n```\n\n#### Solution\n\nCalling the `CheckIn()` function exposed the flag.\n\n#### Hidden Flag\n\nThe primary challenge's package contains a file, `LICENSE`, with the contents of `gno.land/r/challenges/\u003crocko's best friend was raised by a family of these\u003e`. Rocko's best friend's name is Heffer, a cow, and he was raised by a family of wolves. Ironic, right? The code of the gno.land/r/challenges/wolves realm was:\n```go\npackage wolves\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/system/solver\"\n)\n\nfunc HisBestFriendsNameIs(name string) string {\n\tif name != \"heffer\" {\n\t\tpanic(\"nope!\")\n\t}\n\n\tsolver.MarkSolved(\"rockoheffer\", std.PrevRealm().Addr())\n\treturn \"bingo!\"\n}\n```\n\nCalling the `HisBestFriendsNameIs` function with a value of `heffer` explosed the flag.\n\n## Mr. Roboto\n\nThis first part of this challenge is meant to get participants thinking about how to obtain historical transaction data. While we locked down much of the node's public API for this challenge, we did leave the genesis endpoint exposed.\n\nThe second part of this challenge hints at entropy and includes song lyrics from Mr. Roboto. Some participants were able to discover how to generate keypairs using the song lyrics as a custom entropy value.\n\n### Phase 1\n\n#### Prompt\nSee if you can figure out Mr. Roboto's secret. It has always been the same secret since genesis.\nThe realm path for this challenge is: \n`gno.land/r/challenges/forwardtothepast/p1`\n\n#### Clues\n- What is blockchain genesis?\n- Is there a way to see the events that occurred at genesis? https://docs.gno.land/reference/rpc-endpoints\n\n#### Annotated Realm Code\n```go\npackage p1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/system/solver\"\n)\n\nvar secret string\n\n// SetSecrete is called during genesis.\nfunc SetSecret(s string) {\n\tif secret != \"\" {\n\t\tpanic(\"already set\")\n\t}\n\n\tsecret = s\n}\n\n// IveGotASecretSecret can be called after inspecting genesis\n// transactions and finding the value that was set.\nfunc IveGotASecretSecret(s string) string {\n\tif s != secret {\n\t\tpanic(\"nope!\")\n\t}\n\n\tsolver.MarkSolved(\"ivegotasecret\", std.PrevRealm().Addr())\n\treturn \"bingo!\"\n}\n\n```\n\n#### Solution\nThe solution can be obtained by inspecting the genesis transactions. The transaction that set the secret\nclearly displays the secret value. This can be done by sending an HTTP get request to the `/genesis` endpoint.\nRelevant documentation can be found [here](https://docs.gno.land/reference/rpc-endpoints#get-genesis-block-information).\n\n**Example:**\nLook at the genesis transactions and search for the function that set the secret.\n```sh\ncurl https://challenges.gnoteam.com/genesis | grep -C 5 -B 5 SetSecret\n```\n\nThe following can be obtained:\n```json\n{\n\t\"@type\": \"/vm.m_call\",\n\t\"caller\": \"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\",\n\t\"send\": \"\",\n\t\"pkg_path\": \"gno.land/r/challenges/forwardtothepast/p1\",\n\t\"func\": \"SetSecret\",\n\t\"args\": [\n\t\t\"ロボット氏の秘密\"\n\t]\n}\n```\n\nThen use the obtained secret to solve the challenge:\n```sh\ngnokey maketx call \n -pkgpath gno.land/r/challenges/forwardtothepast/p1 \n\t-func IveGotASecretSecret \n\t-args 'ロボット氏の秘密' \n\t-gas-fee 1000000ugnot \n\t-gas-wanted 2000000 \n\t-broadcast \n\t-remote https://challenges.gnoteam.com:443\n\t-chainid dev \n\t\u003ckey-name\u003e\n```\n\n### Phase 2\n\n#### Prompt\nMr. Roboto has a bad memory, which is strange for a robot; you'd expect more. To compensate, he often uses\nphrases that help him remember -- usually lyrics from songs he's been featured in.\nThe realm path for this challenge is: \n`gno.land/r/challenges/forwardtothepast/p2`\n\n#### Clues\n- What could the lyrics be that he used to help himself remember? Maybe he commented somewhere.\n- Maybe he used this to generate a mnemonic needed to solve the problem. Perhaps there is a flag he used with `gnokey generate`\n- Once a mnemonic has been generated, it can be added as a key https://docs.gno.land/getting-started/local-setup/working-with-key-pairs#adding-a-private-key-using-a-mnemonic\n\n#### Annotated Realm Code\n```go\npackage p2\n\nimport (\n\t\"std\"\n\n\t\"gno.land/r/system/solver\"\n)\n\n// This is the address the solving transaction should\n// originate from.\nconst mrRobot std.Address = \"g1vqg24cyewanhkwh6yq8rwuprzlz4kqtp4m2etj\"\n\n// What is entropy?\n//\n// You're wondering who I am (secret, secret, I've got a secret) Machine or mannequin? (Secret, secret, I've got a secret) With parts made in Japan (secret, secret, I've got a secret) I am thee modern man\n\n// ^^^^ This is the entropy string to use to generate the key pair.\n\n// IKnowAboutEntropy can be called with Mr. Roboto's key once it is generated.\nfunc IKnowAboutEntropy(myAddress std.Address) string {\n\tif std.PrevRealm().Addr() != mrRobot {\n\t\tpanic(\"nope!\")\n\t}\n\n\tsolver.MarkSolved(\"secretentropy\", myAddress)\n\treturn \"bingo!\"\n}\n\n```\n\n#### Solution\nThe contract contains a comment that first references entropy and then quotes lyrics from Mr. Roboto. The user must first use the lyrics with the `-entropy` flag as an argument to `gnokey generate`. Then use the generate mnemonic to add the key and make the request to the contract\nto reveal the flag.\n\n**Example:**\n```sh\ngnokey generate -entropy -remote https://challenges.gnoteam.com:443 \n```\n\nEnter the entropy from the code comment when asked:\n```\nYou're wondering who I am (secret, secret, I've got a secret) Machine or mannequin? (Secret, secret, I've got a secret) With parts made in Japan (secret, secret, I've got a secret) I am thee modern man\n```\n\nThis produces the mnemonic:\n```\ngap method loud rent toy mercy attack abstract select toilet siren view dragon oppose assume since enrich machine force remember ill discover resource project\n```\n\nCreate a new key, entering the mnemonic when prompted:\n```sh\ngnokey add -recover -remote https://challenges.gnoteam.com:443 robot`\n```\n\nMake the call to the challenge realm using the newly created key:\n```sh\ngnokey maketx call \\\n\t-pkgpath gno.land/r/challenges/forwardtothepast/p2 \\\n\t-func IKnowAboutEntropy \\\n\t-args \u003cuser-address\u003e \\\n\t-gas-fee 1000000ugnot \\\n\t-gas-wanted 2000000 \\\n\t-broadcast \\\n\t-remote https://challenges.gnoteam.com:443 \\\n\t-chainid dev \\\n\trobot\n```\n\n## Gno to the Limit\n\nThese challenges are made to exemplify how pushing values to their limits, namely integers and slices, will behave the same in gno as they do in gno -- integers will overflow and the arrays underlying slices will be expanded.\n\n### Phase 1\n\n#### Prompt\nWalk along the razor's edge... then fall off. The realm path for this challenge is:\n`gno.land/r/challenges/overandover/p1`\n\n#### Clues\n- The function to unlock the flag requires an interface as an argument. This can be done using `gnokey maketx run`.\n- How can the target value be reached if it is less than the current value and the only operation is addition?\n- If the transaction is running out of gas, try increasing the gas limit or calling the function in increments.\n\n#### Annotated Realm Code\n```go\npackage p1\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/r/system/solver\"\n)\n\n// This is like a map (std.Address -\u003e struct{})\n// that tracks the ongoing accumulated values\n// of each caller.\nvar accums avl.Tree\n\n// Accumulator is the type that gets passed\n// to the Adjuster. The Adjuster should utilize\n// all of the Accumulator's methods.\ntype Accumulator struct {\n\tvalue uint16\n\ttarget uint16\n}\n\nfunc (a *Accumulator) Accumulate(value uint8) {\n\ta.value += uint16(value)\n}\n\nfunc (a *Accumulator) Target() uint16 {\n\treturn a.target\n}\n\nfunc (a *Accumulator) Value() uint16 {\n\treturn a.value\n}\n\n// Adjuster is the interface participants need to\n// implement to solve the challenge.\ntype Adjuster interface {\n\tAdjust(*Accumulator)\n}\n\n// AdjustAccumulator serves as the entrypoint to solving\n// the challenge with one call.\nfunc AdjustAccumulator(adjuster Adjuster) string {\n\tacc := GetAccumulator()\n\tadjuster.Adjust(acc)\n\tif acc.value == acc.target {\n\t\tsolver.MarkSolved(\"overaccum\", std.PrevRealm().Addr())\n\t\treturn \"bingo\"\n\t}\n\n\treturn \"nope\"\n}\n\n// GetAccumulator is public, \nfunc GetAccumulator() *Accumulator {\n\tval, ok := accums.Get(std.PrevRealm().Addr().String())\n\tif ok {\n\t\treturn val.(*Accumulator)\n\t}\n\n\tacc := \u0026Accumulator{\n\t\tvalue: 62109,\n\t\ttarget: 26656,\n\t}\n\n\taccums.Set(std.PrevRealm().Addr().String(), acc)\n\treturn acc\n}\n\n```\n\n#### Solution\nThe key to solving this is to use `gnokey maketx run` and pass in an implementation of the `Adjuster` interface that correctly adjusts the accumulator until the integer value overflows and reaches the target value.\n\nExample:\n```go\npackage main\n\nimport (\n\t\"math\"\n\n\t\"gno.land/r/challenges/overandover/p1\"\n)\n\ntype adjuster struct{}\n\nfunc (a adjuster) Adjust(acc *p1.Accumulator) {\n\tvar numToIncrease uint16\n\tif acc.Target() \u003e acc.Value() {\n\t\tnumToIncrease = acc.Target() - acc.Value()\n\t} else {\n\t\tnumToIncrease = math.MaxUint16 - acc.Value() + acc.Target() + 1\n\t}\n\n\tfor {\n\t\tif numToIncrease \u003e math.MaxUint8 {\n\t\t\tacc.Accumulate(math.MaxUint8)\n\t\t\tnumToIncrease -= math.MaxUint8\n\t\t\tcontinue\n\t\t}\n\n\t\tacc.Accumulate(uint8(numToIncrease))\n\t\tbreak\n\t}\n}\n\nfunc main() {\n\tp1.AdjustAccumulator(adjuster{})\n}\n```\n\nWhile writing this blog post, it was noticed that `GetAccumulator` was exported when it shouldn't have been. This means that a second possible solution would be to call `GetAccumulator` from a `main` function, adjusting it until the value is correct, and then making the `Adjuster.Adjust` implementation a no-op, so that when `AdjustAccumulator` is called ot solve the challenge, the accumulator already has the correct value and no additional action needs to be taken.\n\n### Phase 2\n\n#### Prompt\nSometimes when you push it to the limit, the limit increases. Kind of sounds like a slice...\nThe realm path for this challenge is:\n`gno.land/r/challenges/overandover/p2`\n\n#### Clues\n- `AppendS1` must be called first to append to the slice\n- Use the known length of the slice, `s1`, to figure out when calling `ModifyS2Idx` results in the values of\n `s1` and `s2` to differ at the target index.\n \n#### Annotated Realm Code\n```go\npackage p2\n\nimport (\n\t\"std\"\n\n\t\"gno.land/p/demo/avl\"\n\t\"gno.land/r/system/solver\"\n)\n\nconst targetIndex = 10\n\ntype slicePair struct {\n\ts1 []rune\n\ts2 []rune\n}\n\n// std.Address -\u003e *slicePair\nvar slices avl.Tree\n\nfunc newPair() *slicePair {\n\t// Notice only one of the slices in the pair is initialized with capacity.\n\treturn \u0026slicePair{\n\t\ts1: make([]rune, 0, 25),\n\t}\n}\n\n// getSlicePair returns the slicePair associated with the caller's address\n// or creates a new instance if this caller has no existing slicePair.\nfunc getSlicePair() *slicePair {\n\tvalue, ok := slices.Get(std.PrevRealm().Addr().String())\n\tif ok {\n\t\treturn value.(*slicePair)\n\t}\n\n\tpair := newPair()\n\tslices.Set(std.PrevRealm().Addr().String(), pair)\n\treturn pair\n}\n\nfunc AppendS1(s string) {\n\tif len(s) \u003e 5 {\n\t\tpanic(\"argument too long\")\n\t}\n\n\tsp := getSlicePair()\n\t// Once the slice size starts to get large, it can take appending a lot of elements before\n\t// the array is expanded. This will reset the slice pairs for you when s1 gets too big.\n\tif len(sp.s1) \u003e= 100 { // for your convenience :)\n\t\t*sp = *newPair()\n\t}\n\n\t// s2 is now referencing to the same underlying array as s1.\n\tsp.s2 = sp.s1\n\n\t// If appending to s1 exceeds its capacity, a new underlying array is allocated and\n\t// s1 and s2 are no longer referencing the same underlying array.\n\tsp.s1 = append(sp.s1, []rune(s)...)\n}\n\nfunc S1Len() int {\n\treturn len(getSlicePair().s1)\n}\n\nfunc ModifyS2Idx(r rune) string {\n\tsp := getSlicePair()\n\tif len(sp.s2) \u003c= targetIndex {\n\t\treturn \"s2 length too short\"\n\t}\n\tif len(sp.s1) \u003c= targetIndex {\n\t\treturn \"s1 length too short\"\n\t}\n\n\t// The challenge will be marked as solved if this function is called directly after a call to AppendS1\n\t// that resulted in its array being expanded so that modifying s2 will not modify s1.\n\tsp.s2[targetIndex] = r\n\tif sp.s2[targetIndex] != sp.s1[targetIndex] {\n\t\tsolver.MarkSolved(\"grow\", std.PrevRealm().Addr())\n\t\treturn \"bingo\"\n\t}\n\n\treturn \"nope\"\n}\n```\n\n#### Solution\nCalculate how many times to call `AppendS1` before calling `ModifyS2Idx` such that the value at the target index differs\ndue to one of the slices' underlying arrays to have been grown while the other has not. Using `maketx run` for this\nsolution is optional.\n\n```go\npackage main\n\nimport \"gno.land/r/challenges/overandover/p2\"\n\nfunc main() {\n\tp2.AppendS1(\"abcde\")\n\tp2.AppendS1(\"abcde\")\n\tp2.AppendS1(\"abcde\")\n\n\tr := 'f'\n\tfor {\n\t\tif p2.ModifyS2Idx(r) == \"bingo\" {\n\t\t\tbreak\n\t\t}\n\n\t\tr++\n\t\tp2.AppendS1(\"abcde\")\n\t}\n}\n```\n\n## Predicting Quantum Leap\n\nThe purpose of these challenges is to highlight gno's guaranteed determinism -- primarily around how the current time is calculated. This series of challenges require participants to predict the next value with ever increasing difficulty.\n\n### Phase 1\n\n#### Prompt\nSam is tired of jumping to random places in space and time without knowing where he’s going next, so he asks his friend Al to help him\njump in a more predictable manner by guessing the time of the jump correctly. Luckily Gno execution is deterministic and the result of\n`time.Now()` will be the same no matter how many times it is called within a transaction.\nThe realm path for this challenge is: \n`gno.land/r/challenges/notsorandom/p1`\n\n#### Clues\n- Guessing the next block time might be tricky\n- Perhaps using `gnokey maketx run` could help pass the correct time string\n\n#### Annotated Realm Code\n```go\npackage p1\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/r/system/solver\"\n)\n\n// Render shows the current time in the web UI.\nfunc Render(_ string) string {\n\treturn time.Now().Format(\"2006-01-02 15:04:05\")\n}\n\n// WhatTimeIsItNow marks the challenge as solved if the time provided matches\n// the current time.\nfunc WhatTimeIsItNow(solution string) string {\n\tif solution != time.Now().Format(\"2006-01-02 15:04:05\") {\n\t\tpanic(\"nope\")\n\t}\n\n\tsolver.MarkSolved(\"timenow\", std.PrevRealm().Addr())\n\treturn \"bingo\"\n}\n```\n\n#### Solution\n\nThis challenge can be solved manually by observing the time being rendered and trying to predict what the next time will be. The time in gno.land is actually the block time, so this is not a continuous value and is only changed with the production of each new block.\n\nAn alternate, and more robust solution, is to write a main function and execute it using `gnokey maketx run`:\n```go\npackage main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/r/challenges/notsorandom/p1\"\n)\n\nfunc main() {\n\tp1.WhatTimeIsItNow(time.Now().Format(\"2006-01-02 15:04:05\"))\n}\n```\n\n## Phase 2\n\n#### Prompt\nThat last prediction was spot on. This next one is a bit more complicated, but doable.\nThe realm path for this challenge is: \n`gno.land/r/challenges/notsorandom/p2`\n\n#### Clues\n- The general approach should be the same as the last challenge. If you didn't use `gnokey maketx run`, maybe now is a good time to start.\n- If `time.Now()` is deterministic, then the operations on the integer value should also be deterministic\n\n#### Annotated Realm Code\n```go\npackage p2\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/r/system/solver\"\n)\n\nconst seed = 0xab94\u003c\u003c4*011 - 0b111001\n\n// Render shows the current time in the web UI.\nfunc Render(_ string) string {\n\treturn time.Now().Format(\"2006-01-02 15:04:05\")\n}\n\n// YouCallThatObfuscationQuestionMark marks the challenge as solved if the time string\n// provided matches the obfuscated string of the current time.\nfunc YouCallThatObfuscationQuestionMark(solution string) string {\n\tif solution != obfuscate() {\n\t\tpanic(\"nope\")\n\t}\n\n\tsolver.MarkSolved(\"timeobfus\", std.PrevRealm().Addr())\n\treturn \"bingo\"\n}\n\n// obfuscate returns an obfuscated version of the current time.\nfunc obfuscate() string {\n\tvalue := time.Now().Unix()/seed\u003c\u003c5 + 42 + 06630\u003c\u003c17 + 0x9992288\n\treturn time.Unix(value, 0).Format(\"2006-01-02 15:04:05\")\n}\n```\n\n#### Solution\n\nThe easiest solution is to write a main function that gets the current time and applies the same transformations as the `obfuscate` function, then pass that value to `YouCallThatObfuscationQuestionMark`; it is only slightly more difficult than Phase 1.\n```go\npackage main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/r/challenges/notsorandom/p2\"\n)\n\nconst seed = 0xab94\u003c\u003c4*011 - 0b111001\n\nfunc main() {\n\tvalue := time.Now().Unix()/seed\u003c\u003c5 + 42 + 06630\u003c\u003c17 + 0x9992288\n\tp2.YouCallThatObfuscationQuestionMark(time.Unix(value, 0).Format(\"2006-01-02 15:04:05\"))\n}\n```\n\n## Phase 3\n\n#### Prompt\nTwo down, one to go. This is getting harder. There is something interfering with the space-time values used to make the jump calculations. Some physicists say that quantum particles exhibit proof that the universe is non-deterministic, but you watched a few Youtube videos on the subject, so you're qualified to disagree.\n\n#### Clues\n- Doing this all in one transaction is key -- `gnokey maketx run`?\n- What is that mask doing? Is it possible to retrieve the contents of a zero-length slice?\n- Don't let bitwise operators scare you; what is one of XOR's key properties?\n\n#### Annotated Realm Code\n```go\npackage p3\n\nimport (\n\t\"std\"\n\t\"time\"\n\n\t\"gno.land/r/system/solver\"\n)\n\nvar (\n\tvalue string\n\tlastValue string\n\n\tmask = [20]int64{\n\t\t0x8839,\n\t\t0x4002,\n\t\t0x7777,\n\t\t0x6338,\n\t\t0x6664,\n\t\t0x8394,\n\t\t0x1109,\n\t\t0x9999,\n\t\t0x4879,\n\t\t0x6639,\n\t\t0x0320,\n\t\t0x8111,\n\t\t0x3994,\n\t\t0xdead,\n\t\t0xabcb,\n\t\t0xab89,\n\t\t0xff87,\n\t\t0xf998,\n\t\t0xdeff,\n\t\t0xddd8,\n\t}\n)\n\nfunc init() {\n\t// Set the initial value to the current time, shuffle the mask, then\n\t// set the next value computed using the mask.\n\tvalue = time.Now().Format(\"2006-01-02 15:04:05\")\n\tshuffleMask()\n\t_ = LastValue()\n}\n\n// Render shows the current time in the web UI.\nfunc Render(_ string) string {\n\treturn time.Now().Format(\"2006-01-02 15:04:05\")\n}\n\n// Mask returns a zero length slice of the mask value.\nfunc Mask() []int64 {\n\treturn mask[:0]\n}\n\n// LastValue computes the next value, sets is, and returns the previous value.\n// It shuffles the mask after computing the new value.\nfunc LastValue() string {\n\tlastValue, value = value, computeValue()\n\tshuffleMask()\n\n\treturn lastValue\n}\n\n// shuffleMask shuffles the mask using the current time as a seed.\nfunc shuffleMask() {\n\tnow := time.Now().Unix()\n\tfor i := 0; i \u003c len(mask); i++ {\n\t\trnd := now % mask[i]\n\t\trnd += mask[i] + 91\n\t\trnd %= int64(len(mask))\n\t\tmask[i], mask[rnd] = mask[rnd], mask[i]\n\t}\n}\n\n// computeValue computes the next value based on the current value, time, and mask.\nfunc computeValue() string {\n\tlvalue, err := time.Parse(\"2006-01-02 15:04:05\", value)\n\tif err != nil {\n\t\tpanic(\"unexpected parse error: \" + err.Error())\n\t}\n\n\tnewValue := lvalue.Unix()\n\tnewValue += mask[time.Now().Unix()%int64(len(mask))]\n\tnewValue /= 2\n\treturn time.Unix(newValue, 0).Format(\"2006-01-02 15:04:05\")\n}\n\n// UnmaskMeIfYouWant marks the challenge as solved if the solution matches the last \n// computed value and the mask value is correct.\nfunc UnmaskMeIfYouWant(solution string, cowMask int64) string {\n\tif solution != value {\n\t\tpanic(\"nope\")\n\t}\n\n\tsolutionTime, err := time.Parse(\"2006-01-02 15:04:05\", solution)\n\tif err != nil {\n\t\tpanic(\"unexpected parse error: \" + err.Error())\n\t}\n\n\tif ^(solutionTime.Unix())^cowMask != 0xdeadbeef {\n\t\tpanic(\"nope\")\n\t}\n\n\tsolver.MarkSolved(\"timemasked\", std.PrevRealm().Addr())\n\treturn \"bingo\"\n}\n```\n\n#### Solution\n\nThis challenge requires participants to predict what the next value will be. In order to do this, it is necessary to know the mask that will be used to do the calculation. This can be obtained by retrieving the mask value and expanding it to its full capacity so all elements are visible.\n\nNext, the same obfuscation must be applied using the last value and the current time.\n\nTo submit the final answer, call the `UnmaskMeIfYouWant` function with the predicted next value as well as another value that is calculated using bitwise operators. The solution expects `(NOT next_value) XOR cow_mask == 0xdeadbeef`. The property of XOR can be leveraged here to do the opposite to produce the expected value -- `NOT (next_value XOR 0xdeadbeef)`.\n\n```go\npackage main\n\nimport (\n\t\"time\"\n\n\t\"gno.land/r/challenges/notsorandom/p3\"\n)\n\nfunc main() {\n\torigMask := p3.Mask()[:20]\n\tmask := make([]int64, 20)\n\tcopy(mask, origMask)\n\n\tlastValueStr := p3.LastValue()\n\tnewTime, err := time.Parse(\"2006-01-02 15:04:05\", lastValueStr)\n\tif err != nil {\n\t\tpanic(\"couldn't parse time: \" + err.Error())\n\t}\n\n\tnewValue := newTime.Unix()\n\tnewValue += mask[time.Now().Unix()%int64(len(mask))]\n\tnewValue /= 2\n\tnewValueStr := time.Unix(newValue, 0).Format(\"2006-01-02 15:04:05\")\n\tp3.UnmaskMeIfYouWant(newValueStr, ^(newValue ^ 0xdeadbeef))\n}\n```\n\n## Final Words\n\nWe enjoyed coming up with these challenges and were happy to contribute to the GopherCon Challenge Series -- from coming up with the challenges, theming them, locking down certain gno.land features, and setting up infrastructure -- a lot of work went into this. We hope all participants were able to learn a bit more about gno.land and had fun doing it. Hopefully we'll be back next year 😁","2024-08-26T13:37:00Z","deelawn","gnoland,gophercon,gc24,challenge-series"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jt9nQBte/EYqDofzLirTPGjxaCzCZq9r5ehFyeDid4R/QYp77AG/cu7C8SQ4ySQFfXIcEzhL72uYnHimAKCWCQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gno-debugger","Debugging Gno Programs","\n \nIn this article, we introduce the new Gno debugger feature and show how it can be used to better understand Gno programs and help to fix bugs.\n\n## Motivation for a Gno debugger\n\n\u003e Debugging is twice as hard as writing code.\n\u003e\n\u003e -- \u003ccite\u003eBrian Kerninghan, \"The Elements of Programming Style\"\u003c/cite\u003e\n\n\u003e On average, you spend about eight to ten times debugging as you do writing code.\n\u003e\n\u003e -- \u003ccite\u003eAnonymous\u003c/cite\u003e\n\nHaving a good debugger is important. But the Gno language is almost Go, and gno.land itself is entirely written in Go. Could I just use the existing Go tools, i.e. the [delve] debugger, to take control and debug my Gno programs?\n\nYou cannot debug your *Gno* program this way because doing so would entail debugging the Gno virtual machine rather than your own program. The relevant state information would be opaque and would need to be reversed and reconstructed from internal Gno virtual machine data structures.\n\nThe Gno debugger addresses this issue by displaying the state of the Gno program memory symbolically. It allows for control of program execution at the source code level, regardless of the virtual machine implementation.\n\n## Setting up\n\nThe Gno debugger is fully integrated in the [gno](https://docs.gno.land/gno-tooling/cli/gno-tooling-gno) binary, which is the tool required to build, test, and run Gno programs locally.\n\nThere is no need to install a specific tool. You just have to install the `gno` tool itself with:\n\n```shell\ngit clone https://github.com/gnolang/gno\ncd gno\ngo install ./gnovm/cmd/gno\n```\n\nWe are now ready to play with Gno programs. Let's consider a simple classic example as a target program, the computation of [Fibonacci numbers]:\n\n```go\n// fib.gno\npackage main\n\n// fib returns the nth number in the Fibonacci sequence.\nfunc fib(n int) int {\n if n \u003c 2 {\n return n\n }\n return fib(n-2) + fib(n-1)\n}\n\nfunc main() {\n println(fib(4))\n}\n\n```\nTo execute this program, we run the command `gno run ./fib.gno`. To activate the debugger, we just pass the `-debug` flag: `gno run -debug ./fib.gno`. Use `gno run -help` to get more options if needed.\n\n## Quick tour of the debugger\n\nWhen you start a program in debug mode, you are greeted by a prompt allowing you to interact with it via the terminal:\n```shell\n$ gno run -debug ./fib.gno\nWelcome to the GnoVM debugger. type 'help' for list of commands.\ndbg\u003e\n```\n\nEntering `help` gives you the list of available commands and their short usage:\n\n```shell\ndbg\u003e help\nThe following commands are available:\n\nbreak|b [locspec] Set a breakpoint.\nbreakpoints|bp Print out info for active breakpoints.\nclear [id] Delete breakpoint (all if no id).\ncontinue|c Run until breakpoint or program termination.\ndetach Close debugger and resume program.\ndown [n] Move the current frame down by n (default 1).\nexit|quit|q Exit the debugger and program.\nhelp|h [command] Print the help message.\nlist|l [locspec] Show source code.\nprint|p \u003cexpression\u003e Print a variable or expression.\nstack|bt Print stack trace.\nstep|s Single step through program.\nstepi|si Single step a single VM instruction.\nup [n] Move the current frame up by n (default 1).\n\nType help followed by a command for full documentation.\ndbg\u003e\n```\n\nIf you have already used a debugger before, like [gdb] or [lldb] for C/C++ programs, or [delve] for Go programs, the Gno debugger should look familiar; the commands are similar in their syntax and usage.\n\nThe commands can be classified in the following categories:\n- managing breakpoints: `break`, `breakpoints`, `clear`,\n- controlling execution: `step`, `stepi`, `continue`,\n- browsing code, data and stack: `list`, `print`, `stack`,\n- navigating the stack: `up`, `down`,\n- quitting the debugger: `detach`, `exit`.\n\n## Controlling and exploring the program state\n\nLet's go back to our Fibonacci program, still paused. We `step` a first time, which instructs the GnoVM to execute a single statement and give back control to the user:\n\n```shell\ndbg\u003e s\n\u003e main.main() main/./fib.gno:11:1\n 7: \t\treturn n\n 8: \t}\n 9: \treturn fib(n-2) + fib(n-1)\n 10: }\n 11: \n=\u003e 12: func main() {\n 13: \tprintln(fib(4))\n 14: }\n```\n\nThe first output line `\u003e main.main() main/./fib.gno:11:1` indicates the precise current location in source code, followed by a short source listing around this location. The current line is indicated by the cursor `=\u003e`.\n\nFrom there, we could repeat `step` commands to progress, but that would be too tedious. Instead, we set a breakpoint at an interesting line in the `fib` function, and `continue` to it directly:\n\n```shell\ndbg\u003e b 7\nBreakpoint 0 at main main/./fib.gno:7:1\ndbg\u003e c\n\u003e main.fib() main/./fib.gno:7:10\n 2: package main\n 3: \n 4: // fib returns the nth number in the Fibonacci sequence.\n 5: func fib(n int) int {\n 6: \tif n \u003c 2 {\n=\u003e 7: \t\treturn n\n 8: \t}\n 9: \treturn fib(n-2) + fib(n-1)\n 10: }\n 11: \ndbg\u003e\n```\n\nNote that we have used the short alias of commands: `b` for `break` and `c` for `continue`. We only need to specify the line number when setting the break point here, due to it being in the same file. Setting break points in other files requires specifying the full file path and line number.\n\nWe can now examine the call stack which indicates the successive nested function calls up to the current location:\n\n```shell\ndbg\u003e stack\n0\tin main.fib\n\tat main/./fib.gno:7:10\n1\tin main.fib\n\tat main/./fib.gno:9:20\n2\tin main.fib\n\tat main/./fib.gno:9:20\n3\tin main.main\n\tat main/./fib.gno:13:2\ndbg\u003e\n```\nWe see a call stack of depth 4, with call frames (local function contexts) numbered from 0 to 3, 0 being the current call level (the deepest). This information is crucial, especially when debugging recursive functions like `fib`. We know that the caller and its caller were both `fib`.\n\nNow we want to examine the value of the local parameter `n`, for each call level:\n```shell\ndbg\u003e print n\n(0 int)\ndbg\u003e up\n\u003e main.fib() main/./fib.gno:7:10\nFrame 1: main/./fib.gno:9:20\n 4: // fib returns the nth number in the Fibonacci sequence.\n 5: func fib(n int) int {\n 6: \tif n \u003c 2 {\n 7: \t\treturn n\n 8: \t}\n=\u003e 9: \treturn fib(n-2) + fib(n-1)\n 10: }\n 11: \n 12: func main() {\n 13: \tprintln(fib(4))\ndbg\u003e print n\n(2 int)\ndbg\u003e up\n\u003e main.fib() main/./fib.gno:7:10\nFrame 2: main/./fib.gno:9:20\n 4: // fib returns the nth number in the Fibonacci sequence.\n 5: func fib(n int) int {\n 6: \tif n \u003c 2 {\n 7: \t\treturn n\n 8: \t}\n=\u003e 9: \treturn fib(n-2) + fib(n-1)\n 10: }\n 11: \n 12: func main() {\n 13: \tprintln(fib(4))\ndbg\u003e print n\n(4 int)\ndbg\u003e\n```\nWe see that the local value `n` is 0 at current frame 0, 2 at frame 1 and 4 at frame 2, which corresponds to the nested calls of `fib` expressed at line 9.\n\nThe `up` and `down` stack navigation commands enable the debugger to display the value of local function variables and parameters for the whole call chain.\n\nIn this example, the `n` variable is simply an integer, but the `print` command is also able to handle more complex expressions to uncover the content of arbitrary maps, struct, arrays, etc using the same syntax as Go. For example, `print a.b[n]` will print as expected, with `a` being a value of type:\n```go\nvar a struct {\n b []string\n}\n```\nFor security reasons, the `print` command will only evaluate expressions with no side effects on the virtual machine state. For example, it is not possible to perform an arithmetic operation like `print a + 2`, or to call a function like `printf f(6)`.\n\n## Conclusion\n\nWe have introduced the new Gno debugger and presented its main capabilities. \n\nThis is just the start of a new project, with a lot of room for improvement. The whole Gno project being open source, you are welcome not only to provide feedbacks and suggestions, but also to contribute at https://github.com/gnolang/gno.\n\n\n[delve]: https://github.com/go-delve/delve\n[gno]: https://github.com/gnolang/gno/tree/master/gnovm/cmd/gno\n[Fibonacci numbers]: https://simple.wikipedia.org/wiki/Fibonacci_number\n[gdb]: https://sourceware.org/gdb/\n[lldb]: https://lldb.llvm.org\n","2024-08-06T13:37:00Z","mvertes","blog,post,tutorial,gno,debugger"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hrqdq66cCj9lcWSqp881SW6q7MSn0E606+uaWGmce9R94jXbUVe4tYxHW9IbxztqO+KwxHwd0sBPJr3fYSqECw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gno-studio-intro","Introducing Gno Studio, the Premier Builder Suite for Gno.land","\n\n[![introduction-banner](https://gnolang.github.io/blog/2024-05-14_gno-studio-intro/src/thumbs/introducing-gnostudio.png)](https://gnolang.github.io/blog/2024-05-14_gno-studio-intro/src/introducing-gnostudio.png)\n\nExceptional developer experience is integral to the Gno ecosystem, shaping the \nspecial programming language, Gno, and guiding the features of Gno.land. The\ntechnology stack is designed to offer developers an unparalleled platform for \ncrafting next-generation dApps via realms (smart contracts).\n\nAs Gno.land expands into a universe of realms, development tools become \ninstrumental to enable innovation and ingenuity. To fully realize this vision,\nwe are creating Gno Studio, empowering community members to create and use \nsuccinct and composable realms on Gno.land.\n\n## The Gno Studio Developer Experience\n\nThe [Gno Studio](https://gno.studio/) suite will offer extensive builder tools tailored \nfor Gno.land. The design of Gno Studio is intended to cater to a wide range of \nusers, from experienced builders to non-coders, by simplifying and enhancing the \nprocess of launching any realm or application you can imagine. Initially, Gno \nStudio started as a proof of concept IDE (Integrated Development Environment). \nEventually, this evolved into a vision for a comprehensive suite of apps and \nservices — Gno Studio — designed to elevate the developer experience to new \nheights and meet users’ and builders’ current needs and expectations.\n\nAt the end of last year, we launched the first beta application of the Gno \nStudio suite, [Gno Playground](https://play.gno.land/), as part of the Gno.land brand. The \nofficial Playground of Gno.land is a minimalistic IDE that facilitates the \ncreation, testing, deployment, and sharing of Gno code. It is a powerful tool \ndesigned to simplify the development of packages and realms, lowering the barrier\nto entry for new builders and enhancing the productivity of advanced Go developers.\n\n**Today, we are excited to announce the beta release of Gno Studio Connect, the \nsecond application in the Gno Studio suite.**\n\n## Your Gateway to Experience the Power of Realms\n\n[![beta-launch-banner](https://gnolang.github.io/blog/2024-05-14_gno-studio-intro/src/thumbs/beta-launch.png)](https://gnolang.github.io/blog/2024-05-14_gno-studio-intro/src/beta-launch.png)\n\nGno Studio Connect is a tool that simplifies access and interaction with realm \nfunctions. Whether you’re exploring realms like the Gno.land [blog](https://gno.land/r/gnoland/blog), \nengaging with a realm deployed through the [Gno Playground](https://play.gno.land/), or using a \ntool like [gnokey](https://docs.gno.land/gno-tooling/cli/gno-tooling-gnokey/), Connect makes interaction easy.\n\nThe initial version of Connect focuses on function calls, enabling users to \ninteract with any realm’s exposed function(s) on Gno.land. Function calls are \nperformed through your account using any wallet that supports Gno.land \n(currently, [Adena](https://www.adena.app/) is the only supported wallet.) Let’s discuss the\nfeature set:\n\n- **Access**: Directly input a realm path and select the corresponding network \nin the interface for seamless navigation to your realm.\n- **Explore**: Discover the available functions of any realm and their details \nthrough a dedicated function list.\n- **Interact**: Swiftly make calls through a dedicated function interface by \nselecting a specific function in the realm’s function list.\n- **Evaluate**: Review and analyze the outcomes of your interactions with realm\nfunctions by assessing results and determine any further actions required.\n- **Share:** Copy links to realms, functions and results and share with \nanyone, making it easy to request engagement on a realm or feedback on a specific function.\n- **Track**: Keep track of your previous realm interactions, where you can view \nthe results of your function calls and revisit their results through a historical overview.\n\n## Get Started with Connect: Vote in a Simple Poll\n\n[![vote-gnoyourdate](https://gnolang.github.io/blog/2024-05-14_gno-studio-intro/src/thumbs/vote-gnoyourdate.png)](https://gnolang.github.io/blog/2024-05-14_gno-studio-intro/src/vote-gnoyourdate.png)\n\nLet’s dive into a hands-on example with a simple polling realm. First, click \n[here](https://gno.studio/connect/view/gno.land/r/gnostudio/gnoyourdate?network=test3#Vote) to access the ‘gnoyourdate’ poll. Once you’ve ensured that Adena \nwallet is connected, here’s what to do next: \n\n1. Select when you first heard about Gno.land: \n _Ensure your chosen option is marked as 'True (Yes)' and all others as 'False (No)' to validate your vote._\n - This month \n - This year \n - One or two years ago \n - Since inception\n2. After making your selection, hit the ‘Call’ button to execute the transaction\nvia your [Adena wallet](https://www.adena.app/). If you need help getting set up,\nyou can visit the [Adena docs](https://docs.adena.app/user-guide/sign-in). \n3. You’re ready to share your vote! Click ‘Copy result link’ and post it on X,\ntagging [@_gnostudio](https://twitter.com/_gnostudio) and using the hashtag #gnoyourdate. \n\n## Share Your Feedback on Connect\n\nWe value your input as we continue developing Gno Studio. Please contribute to\nour improvement efforts by interacting with our feedback form created as a realm.\nUse the ‘[SubmitFeedback](https://gno.studio/connect/view/gno.land/r/gnostudio/feedback_v1?network=test3\u0026tab=functions#SubmitFeedback)’ function to share your feedback with us.\n\nIf you have questions or comments, hop over to the [Gno.land Discord](https://discord.gg/FpKNhW5GK6) and \nfollow us on [X](https://twitter.com/_gnostudio) for updates and discussions.\n\n## The Gno Studio Outlook\n\nThe outlook for Gno Studio is full speed ahead with a roadmap bursting with \nexciting features and tools. We will continue to transition the beta applications,\nGno Playground and Gno Studio Connect, into their production versions while \nfocusing on the development of the next set of tooling.\n\nDevelopment is already underway on a full-featured IDE that will provide a \nstate-of-the-art workspace designed for realm and package development on Gno.land.\nThe IDE will consist of an advanced code editor, debugging tools, and a dedicated \nproject management and deployment environment.\n\nThe next piece of the puzzle is a marketplace with ready-to-use templates that \nmake creating apps more accessible to everyone. This collection of boilerplate \ncode is targeted at speeding up deployment timelines and allowing non-coders to \ntry their hand at launching realms without needing to worry about technical \ndetails.\n\nThe production-ready Gno Studio suite will help and inspire everyone with an idea,\ncoders and non-coders alike, to participate in the exciting innovations of Web3 \nspurred by the next generation of realm applications on Gno.land.\n\nIf you want to *stay in the gno* about all the Gno Studio developments and news,\n[sign up](https://gno.studio/) for our mailing list. You can also follow us on [X](https://twitter.com/_gnostudio).\n","2024-05-14T13:37:00Z","gno-studio","gnoland,gnostudio,web3,blockchain,smart-contracts"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z9pdWArQ3Rs8+zqm8P+hAs0e+xyAy9j0J6hmA23WxX9jhtVgvm/2mHU7VzEkcV1h8aqF/z4BeQN2R8QO3WiTDw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gno-tokyo","Tokyo Meetup Recap: Getting to Gno Gno.land","\n\n\n[![banner](https://gnolang.github.io/blog/2024-04-15_gno-tokyo/src/thumbs/Banner.png)](https://gnolang.github.io/blog/2024-04-15_gno-tokyo/src/Banner.png)\n\n\nThis year, we're going global, connecting with various local communities in \nperson to introduce them to Gno.land and the community of Gnomes working on the\nproject. Last week, we hosted the first-ever Gno.land community meetup in Tokyo, \nJapan. Held at the [Crypto Lounge GOX](https://cryptoloungegox.com/) in the heart\nof Shinjuku City, the event drew over 20 attendees from diverse backgrounds spanning \nWeb3, development, traditional business, and fintech. This meetup marked the second\nin a series of in-person community events we're planning for this year, a followup \nto our recent local meetup in Korea with OnBloc\n[Go to Gno](https://medium.com/onbloc/go-to-gno-recap-intro-to-the-gno-stack-with-memeland-284a43d7f620),\nwhich focused on introducing Gno.land to Go developers in Seoul.\n\nThese regional meetups are intentionally designed to be small and intimate, \nfostering personal relationships and building a community of trusted Gnomes \nthat can influence the future of Gno.land. The content of these gatherings can \nrange from introducing Gno.land and its unique concepts to guiding developers on \nhow to kick start their journey with Gno. For this event in Tokyo, we covered \nthree main topics:\n\n・What is Gno.land: an introduction to the Gno language and the platform,\n\n・How the Gno.land ecosystem is developing: an overview of our contributors and applications, and how people can get involved, stay connected, and join the Gnome community,\n\n・The future of Gno.land: what's coming up this year and ideas for the future.\n\n## Introduction to Gno.land\n[![leon-presentation](https://gnolang.github.io/blog/2024-04-15_gno-tokyo/src/thumbs/leon-poc.png)](https://gnolang.github.io/blog/2024-04-15_gno-tokyo/src/leon-poc.png)\n\nLeon Hudak, Gno.land's Developer Relations Engineer, was the on-site Gnome\nrepresentative and kicked things off by introducing attendees to the project's \nunique features:\n\n・Fully Open-Source Smart-Contracting Platform: Highlighting Gno.land's commitment to transparency and accessibility,\n\n・Custom Smart-Contracting Language (Gno): Showcasing the innovative language tailored for future blockchain development, \n\n・New Consensus Protocol, Proof of Contribution: Exploring the cutting-edge protocol under development, emphasizing its role in supporting open-source, and on-chain development.\n\nAfter introducing the high-level facets of Gno.land, the presentation\ndetailed the specifics of each one, and how it is being designed to address \nproblems in both open-source development and blockchain ecosystems. \n\nSpecifically, Gno.land is addressing a large issue in regard to open-source\ndevelopment: many projects and businesses rely on open-source technology created \nby developers who often volunteer their skills and time without receiving anything\nin return for their efforts. Proof of Contribution is aimed at tackling this\nissue by being a foundation for a system which empowers contributors and rewards \nthem fairly for their work, allowing them to thrive in a sustainable ecosystem of\nvalue creation.\n\n## Our Ecosystem of Gnome Contributors\nWe spotlighted the diverse projects and contributors bolstering the Gno.land \necosystem, ranging from the [Adena Wallet](https://adena.app) and\n[Gnoscan](https://gnoscan.io) to innovative applications like Flippando. \nAdditionally, we introduced attendees to the Gno.land\n[Grants \u0026 Fund program](https://github.com/gnolang/ecosystem-fund-grants)\nand the Game of Realms initiative, demonstrating various avenues for builders to\nengage and contribute to the ecosystem's growth.\n\n## The Future of Gno.land\nIn conclusion, we guided attendees through the development and aspirations of \nGno.land, highlighting its growth from its origins to its present challenges \nwith Test4, Mainnet, and beyond. We discussed the current emphasis \non engineering and development to build a solid base the Gnomes of the future,\nunderlining the importance of Test4 — an advanced experimental testnet that \nprecedes the launch of Mainnet — and what the successful implementation of Test4 \nsignifies for our ecosystem.\n\nWe opened up the floor for questions and answers, and the topic of Proof of \nContribution sparked interest to understand its economic aspect and governance\narchitecture, as well as its comparative analysis with other popular consensus \nmechanisms.\n\n## Gnomes Go Global\n[![leon-presentation](https://gnolang.github.io/blog/2024-04-15_gno-tokyo/src/thumbs/merch.jpg)](https://gnolang.github.io/blog/2024-04-15_gno-tokyo/src/merch.jpg)\n\nAs Gno.land advances on its Road to Mainnet, we will be hosting more local\nmeetups, so you'll want to stay updated on upcoming Gno.land events by visiting \nour [Upcoming Events](https://gno.land/events) page and following us on \n[Twitter](https://twitter.com/_gnoland).\n","2024-04-15T00:00:00Z","leohhhn,michelleelen","meetup,tokyo,community"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7ksXt8kJokPACnCAhpoI+87FngiSwdxDNfiQHup1CxgZHEeJTbHwSOBEpCGohbAH4ssZj9TkaaccBoSAAqb6Dw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kNJ5EMBlSzCDV0ZrIPb5qBoC6UKq4kixDYJ9ZmrxuoO8FYqOyYDvTJClGB26hf7CzJiIlToWQO+5+Mc0PofjBg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ca9JzPtC/1C3WNshzk6EEKBPmVzdd64gblCsQWaeQ/AQPjDH3iE28VsCYbzBadY1PX2K7D2vbbCAay8K7E07DA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Fewyu1ss/Bq26DkCViyowD6yiEBadVlBay5eq3UER9R9dyKosxS5aJu1YAOhJ006umG/pVEey1AZXFmKGwXaAQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-ama1","Gno.land Community Game of Realms AMA #1 - Recap","\n\nWith Game of Realms officially in phase one, core dev Manfred Touron jumped on Discord to answer Gno.land community questions about the ongoing high-stakes competition. From starting and end dates to participation requirements and a description of tasks, look for your answer below. If you have further questions or want to join our community, come and find us on the []Gno.land Discord](https://discord.com/channels/957002220384182312/1065646963825066044). The core team will be hosting regular “office hours” sessions soon so you can discuss your ideas with them directly.\n\n## Q. How are the tasks in the issues assigned?\n\nWe received questions about how the tasks in the Game of Realms issues are assigned. Should submissions contain the whole implementation? Is the following task \"available** when the previous one is completed? How is the “sync” happening?\n\n**A.** TL;DR:\n\nEverything should go smoothly and we will be leaving room for negotiation if any review looks invalid. Once it has been established, the evaluation DAO will enforce how to submit a contribution. In the meantime, there are official communication challenges that we encourage participants to use. People are also free to work in stealth mode, with the risk of finishing too late or losing points for being bad at collaborating.\n\n----\n\nWe expect the current issues to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything. Let's discuss the cases we believe will happen:\n\n### Case 1\n\nWe're in phase 1, people want to contribute but can't manage to do everything, so they will try to participate as much as they can. They will participate on the issue or in Discord by indicating their desire to participate, by sharing ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\nThe only thing is that we're fully remote. We don't know each other, so everyone needs to be good at communication. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Case 2\n\nWe're in phase 2, and a small contribution is done by an individual. We just review it, and that's done.\n\n### Case 3\n\nWe're in phase 2, and a contribution is big and requires small steps. Probably, the Evaluation DAO will ask individual participants to submit their contributions so they can allocate points for the individual contributions. But maybe the Evaluation DAO prefers to review big tasks as a whole, and then split the prize, as we'll do in phase 1. We don’t have clarity on this at this stage, as it will be up to the implementers of the Evaluation DAO to design the best system for that case.\n\n## Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\n**A.** Not yet. The leaderboard will come in phase 2. One of the critical parts of the Evaluation DAO will be to allow contributors to submit evidence for tasks. Votes and point allocations will also be transparent. This will make sense for future Proof-of-Contributions, too. We'll also develop a leaderboard to make it easier to follow the competition, but this will probably come after the Evaluation DAO is running.\n\n## Q. What will the overall tasks consist of?\n\n**A.** Here is a non-exhaustive list:\n\n* Onboard more contributors ([create tutorials and documentation](https://github.com/gnolang/gno/issues/408)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n## Q. At what point in the Game of Realms timeline/phase are we?\n\n**A.** We are at the beginning of phase 1. We plan to create a website soon so you can keep track of the status and, as I mentioned, a leaderboard will come in phase 2.\n\n## Q. What will be the contributions, how will points be calculated, and are there tasks for non-programmers?\n\n**A.** During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThere are more tasks for programmers, but multiple parts are for non-programmers too.\n\nDuring phase 2, it's hard to be sure about anything yet. Game of Realms is a competition to experiment with Proof-of-Contribution, which will replace Proof-of-Stake on Gno.land. If things go the way we imagine, then consider that the stakeholders (contributors** will allocate points to contributions that make sense for the project. The contributors won't lose points, but by allocating points, they will dilute their own point stack.\n\nWe expect the Evaluation DAO to attribute points to whatever makes sense to make the project better. We'll have some task ideas for phase 2, including for non-programmers. You can likely consider that even if the core team doesn’t control the DAO, its suggestions will be approved by the Evaluation DAO because we deeply want the project to be a success.\n\n## Q. What are the requirements to start participating?\n\n**A.** There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic. It may be better to work with others and share a prize instead of taking the risk of implementing everything in stealth mode and not being the first.\n\n## Q. Is there a fixed period of time for the end?\n\n**A.** No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2. This will probably take between 1-3 months. The end date for phase 2 will be announced during phase 2, which will probably last between 2-3 months. This is when we’ll send the prize rewards. After Game of Realms, people will continue to earn contribution points by contributing to the project, which will give them memberships on the future mainnet.\n\n## Q. Is it possible to install a local testnet to get a proper local development environment?\n\n**A.** You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\nThere are multiple ways to interact with Gno:\n\n* Using gnodev allows you to use the GnoVM, without a blockchain. This method is super fast and allows you to use development patterns like TDD, where you test your implementation multiple times per minute.\n* Running a localnet, by running the gnoland command and then configuring our tools like gnokey to use localhost:36657\n* Using the staging network hosted on https://staging.gno.land reset regularly and you can use the hardcoded test key or use the faucet\n* Using the official testnets\n\nIf you prefer to run a full blockchain node instead of just playing with GnoVM, you should play with the gnoland binary. This video shows how to do this in practice:\nhttps://www.youtube.com/watch?v=-BlnEXCs0eI\n\nBelow is a further resource that may also help you:\n\nhttps://test2.gno.land/r/boards:testboard/5\n\n## Q. Will there be a list of what needs to be tested? When will the tests start?\n\n**A.** The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n- Evaluation DAO\n- Tutorials\n- Governance Module\n\nThe core team will actively review this and decide what contribution deserves to get prizes.\n\nDuring phase 2, we’ll use the Evaluation DAO developed during phase 1 to review old contributions, even contributions made before the competition, as well as ongoing contributions. Right now, we have an issue gathering interesting topics for phase 2 here, but any contribution can be reviewed by the DAO, including things that are not listed:\n\nhttps://github.com/gnolang/gno/issues/357\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2y ago.\n\n_Do you have more questions for Manfred? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and watch out for our next AMA on Tuesday 7 Feb at 4 pm UTC._\n","2023-02-03T15:44:00Z","manfred","game-of-realms,gnoland,proof-of-contribution,dao,governance"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lQhmAc8lRjFoSH1rj78aLktcqibRgHfS6g3raS+O5lRVf7aaa2kjZZ9QzxSYwhXsNz29swcaFjhbwovChv7VBw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-launch","Game of Realms Is On: Win Rewards for Contributing to Gno.land","\n\nPhase one of Game of Realms, a worldwide competition to build the best Gnolang smart contracts, **is now open**. Game of Realms is a high-stakes contest with a total prize pool of **133,700 ATOM** that will see participants compete for tiered membership to co-own the Gno.land blockchain, the next-generation smart contract platform that uses the Gnolang (Gno) programming language. A series of complex technical and non-technical tasks will challenge contributors to create innovative patterns that push the chain to new limits. If you’re interested in helping build the most intuitive smart contract platform in web3—while gaining rewards for your contribution—join today by opening a [PR here](https://github.com/gnolang/gno).\n\nThe Game of Realms contest will allow participants to get a feel for the Gno.land platform while building smart contracts and applications in the ecosystem. It will take place in two stages, phase one and phase two. Phase one is about building the core infrastructure, tools, and tutorials necessary to open the gates to broader participation and will be held off-chain. Phase two, on the other hand, will take place after the successful completion of phase one and be held on-chain, where contributors will build smart contracts on the platform.\n\nIn addition to the ATOM prize pool, the best contributors will also be awarded (mostly) initial-level membership to govern the upcoming mainnet. Membership will be allocated according to the quality and extensiveness of the contribution—the higher the quality, the higher the tier, and the greater the voting rights and rewards. The top equal members will be composed of peers who have contributed the most to the ecosystem and have an understanding of its core components. Top members will also have aligned core moral values. This is essential so that members can maintain the chain together according to its Constitution (TBD** and ultimately create a sustainable ecosystem that rewards all valuable contributions.\n\n## Game of Realms - Phase One (Off-Chain)\n\nWhile we aim to encourage cross-collaboration between devs and non-techs, phase one of the contest is recommended for advanced developers who are more autonomous and can contribute with limited guidelines and support. Accounting for around one-third of the total **133,700 ATOM** prize pool, getting a headstart in phase one will allow seasoned devs to kick the tires on the Gno.land platform, contribute with limited competition, and build the tools needed to open the second phase.\n\nDuring phase one, participants will open PRs against repos from the Gnolang organization. Phase one contributors will be expected to document and share their work efficiently to enable others to use it without conflicts. Your contribution is vital to the success of the contest, the Gno.land platform, and the Cosmos ecosystem at large, especially now, with discussions to move the Cosmos Hub’s core operations on-chain by establishing a DAO system.\n\nThe first DAO to be created will be the [Decentralists DAO](https://github.com/decentralists/DAO), which will provide Cosmonauts with transparency, accountability, and decentralization. The Decentralists DAO will improve discourse, organization management, development, and conflict resolution through smart contracts, and will organize itself into a set of tightly-aligned sub-DAOs dedicated to specific topics, such as engineering and funding.\n\nSo, how does this relate to Game of Realms and what type of contributions are judges looking for? Here are some examples, in order of priority:\n\n* **Define and Implement an Evaluation DAO:** For the Game of Realms contest, a sub-DAO – the Evaluation DAO – is needed to evaluate contributions during phase two and attribute rewards accordingly. Using a DAO will allow community members to vote on the best contributions for the platform. Implementation of the Evaluation DAO is the only step that must be approved by the core team because of its key role in the competition and the future of the platform. Once the DAO is in place, all previous and further contributions will be reviewed collectively by DAO members.\n\n* **Create Tutorials to Onboard More Participants:** We need experienced devs to write or record tutorials to help more people get started during phase two of the competition (and beyond) and to help grow the Gno.land developer community. These tutorials can include topics like interacting with the chain from the CLI, step-by-step guides to creating smart contracts in Gno, tips for running a local dev environment, fast prototyping with gnodev, or they can be tutorials dedicated to certain audiences, such as developers coming from Solidity or web2. All tutorials should be added to the [awesome-gno GitHub repo](https://github.com/gnolang/awesome-gno).\n\n* **Define and Implement a Governance Contract Suite:** In this challenge, developers will be expected to define and implement a governance contract suite capable of competing with existing chains’ governance modules. If you think you can improve the governance system of Cosmos Hub, this is your chance to show us how!\n\nPhase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the DAO and awarded during phase two.\n\n## Game of Realms - Phase Two (On-Chain)\n\nPhase two of Game of Realms will onboard more people to the platform and begin as soon as sufficient materials are completed from phase one. Accounting for around two-thirds of the total 133,700 ATOM prize pool, phase two will be open to both developers and non-technicals who can follow tutorials, create smart contracts, or provide other important contributions to win rewards and scale the platform. As phase two will be held directly on-chain, contributors can submit their contributions to the DAO without publishing them on the main GitHub repo. However, we strongly encourage you to use GitHub as it’s an important resource that helps the community gain a better understanding through specific examples.\n\n_We are currently preparing the challenges for participants of phase two and are looking for your input. Let us know what type of smart contracts you would like to see (minimal or with multiple features) in our upcoming Game of Realms AMA on Tuesday, January 24 at 4 pm UTC. Note that this is a text based AMA so make sure to add your questions before or during the AMA in the #AMA-questions channel on the [Gno.land discord](https://discord.gg/S8nKUqwkPn).\n_Once we have collected your feedback and requests, we will finalize the challenge categories. You can visit the [Game of Realms repo](https://github.com/gnolang/game-of-realms) for more information._\n","2023-01-18T15:36:00Z","","gnoland,game-of-realms,launch"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"e8Y1gVznDkyxw9+KZVuAU9deVMJ3zdT1+yC7UwGpmYblVHr2a/7wgWVF865ikty9DsETdYEY2GyLyQ6T31mDCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-phase1","All You Need to Know About Game of Realms: Phase One","\n\nGame of Realms, the worldwide competition to find the best contributors to Gno.land, is currently underway. Unlike some contests you may have entered, we're doing things a little differently. We want participants to be instrumental in building the Gno.land platform with meaningful contributions that help shape the direction of the project – either by writing the best Gnolang smart contracts or contributing to the core blockchain. It’s not just about winning prizes but becoming a meaningful contributor. We encourage participants to collaborate on the challenges – your contribution will be rewarded on individual merit.\n\n## Phase One: The Basics\n\nPhase one of Game of Realms is about laying the foundations to onboard more people to the platform. You’ll need to be an advanced developer who wants to create core materials that power the platform every day. You should also be willing to document your work and even write tutorials and guides that help us advance to the second phase of the competition.\n\nThere is a total prize pool of 133,700 ATOM available during the Game of Realms competition, one-third of which (44,121 ATOM) will be allocated to contributions from phase one. During phase one, which we expect to last between 1-3 months, participants will open PRs against repos from the Gnolang organization. For additional information on the competition phases and timelines, be sure to check out the following resources:\n\n- [Game of Realms blog post](https://test3.gno.land/r/gnoland/blog:p/gor-launch)\n- [Game of Realms AMA recap](https://test3.gno.land/r/gnoland/blog:p/gor-ama1)\n\n## Phase One: The Challenges\n\n**Evaluation DAO**: To ensure contributions in Game of Realms are rewarded fairly, we need an Evaluation DAO. Allowing community members to vote on the best contributions and decide how much they are worth provides a level playing field for all. We’re therefore seeking your skills in DAO development and implementation. This is one of the most important challenges of phase one and the only challenge that must be approved unilaterally by the core team because of its key role in the competition and the future of the platform. Read more about the [Evaluation DAO challenge on GitHub here](https://github.com/gnolang/gno/issues/407).\n\n**Tutorials \u0026 Documentation**: So that we can progress to phase two and open up the Gno.land platform to a broader audience, we need written and recorded tutorials, guides, and documentation from phase one participants. There are almost no instruction manuals when it comes to this new frontier as the only smart contract platform using the Gnolang programming language. Help us to create materials that will onboard more contributors to Gno.land. Read more about the [Tutorials \u0026 Documentation challenge on GitHub here](https://github.com/gnolang/gno/issues/408).\n\n**Governance Module**: We want Gno.land to adopt the fairest and most effective governance solution possible; one that encourages voter participation and is transparent and accountable. We’re looking for contributors to define and implement a governance contract suite that rivals existing ones, such as the Cosmos Hub, and be implemented by other projects. Can you improve on that? Show us how! Read more about the [Governance Module challenge on GitHub Here](https://github.com/gnolang/gno/issues/409).\n\nAll phase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the Evaluation DAO and awarded during phase two.\n\n## Judging Criteria - What Wins Points?\n\nWhat will the judges be looking for when assessing contributions? You can find individual details on the corresponding GitHub issue regarding each challenge, but to get you started, the Game of Realms contest prioritizes communication and collaboration. We encourage participants to work together to find the best solutions. You will be awarded individually for your contribution but working as part of a team is highly valued. Good documentation that expresses high learning efficiency and shows how the task was completed in an educational way will also win additional points, as will a high standard of quality, great UX, and the ability to follow the contribution guidelines.\n\nAs this is primarily a developer-oriented competition, most of the organization for Game of Realms is happening on GitHub; come by the repo and [visit issue #408](https://github.com/gnolang/gno/issues/408) to contribute to tutorial and documentation writing for Gno.land.\n\n## Rules of Engagement\n\nAll participants must keep in mind a strict code of conduct and specific rules and criteria to ensure fair play. Throughout the Game of Realms competition, no plagiarism will be tolerated at any time. Participants may submit what they wish, however, any project that has already been allocated rewards or received compensation in any other hackathon or similar contest will not receive double pay.\n\nThat’s all for now. If you have more questions about Game of Realms or Gno.land you can join us in our next Office Hours session on Tuesday, March 14, 2023, at 4 pm UTC. You can also connect with other participants in the [Gnoland Discord](https://discord.com/invite/S8nKUqwkPn).\n\n## Game of Realms Phase 1: FAQ\n\nBelow are some frequently asked questions about phase one of the Game of Realms competition. If you can’t find your answer below, jump into our Discord and ask, or join us for a live “Office Hours” session with the core team.\n\n### Q. How are the tasks in the issues assigned?\n\nA. There are official communication challenges that we encourage participants to use.\n\n### Q. Can I work individually or should I work as part of a team?\n\nA. You are free to work in stealth mode, but please keep in mind that you risk finishing too late or losing points for being bad at collaborating. We expect the issues in phase 1 to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything.\n\n### Q. How can I find collaborators?\n\nA. Participate on the issue or in Discord by indicating your desire to participate, by sharing your ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\n### Q. How can I ensure good collaboration?\n\nA. Since we are fully remote, collaborating can be a challenge and the best collaborators will be rewarded. We don't know each other, so having good communication is key.\n\n### Q. How will my collaboration be evaluated?\n\nA. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Q. How much is the prize pool?\n\nA. There is a total prize pool of **133,700 ATOM** available during the Game of Realms competition, one-third of which (**44,121 ATOM**) will be allocated to contributions from phase one.\n\n### Q. When will I receive my rewards for my collaboration?\n\nA. Rewards will be allocated retroactively by the Evaluation DAO during phase 2.\n\n### Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\nA. Not yet. The leaderboard will come in phase 2.\n\n### Q. What will the overall tasks consist of?\n\nA. Here is a non-exhaustive list:\n\n* Onboard more contributors (create tutorials and documentation)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n### Q. Are there tasks for non-programmers?\n\nA. There are more tasks for programmers, but multiple parts are for non-programmers too. During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\nhttps://github.com/gnolang/gno/issues/540\n\n### Q. What are the requirements to start participating?\n\nA. There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic.\n\n### Q. Is there a fixed period of time for phase 1?\n\nA. No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2.\n\n### Q. Is it possible to install a local testnet to get a proper local development environment?\n\nA. You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\n### Q. Will there be a list of what needs to be tested? When will the tests start?\n\nA. The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n* Evaluation DAO\n* Tutorials\n* Governance Module\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2 years ago.\n","2023-03-12T14:02:00Z","","gnoland,game-of-realms,faq"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-1","The More You Gno: Gno.land Monthly Updates","\n\nWe made progress across the board at Gno.land last month, from onboarding more devs to receiving an influx of contributions to the Game of Realms contest. To encourage development and discourse, we set up a biweekly public developer call in addition to our biweekly Office Hours sessions. Anyone can join, ask questions, and give their suggestions on how to shape the Gno.land platform and become a contributor. Last month, we covered several pressing topics from Gno IDE and Gno.land website language, to GnoVM, IBC, and ICS. Jae also came back to the circuit in March with two IRL workshops for devs at side events during EthDenver and Game Developer Conference (GDC) in San Francisco.\n\n## Developer Updates\n\nYou can find the live streams of the new biweekly public developer calls on [Gno.land YouTube](https://www.youtube.com/@_gnoland/videos) as well as access the agendas on [GitHub](https://github.com/gnolang/meetings/blob/main/notes/2023_03_15_dev_call_notes.md). The main talking points this month were Gno IDE, Gno.land website language and UX, garbage collection, bug fixes, and how to bring IBC and ICS to the platform. We are working on all these issues concurrently but the order of release will be Gno.land mainnet, IBC, and then ICS (this is reflected in the DAG below).\n\n[![Gno.land mini DAG](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/mini-dag.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/mini-dag.png)\n\n## Gno.land Website Language\n\nWe want to add more features for developers, such as libraries to make writing interfaces better and more consistent. There is an open topic for frontend developers with typography skills and library developers to create a UI framework for markdown or a custom rendering system.\n\nInternally, our core team is working on improvements to Gno.land’s website, making it easier to navigate with shorter columns while ensuring the text is markdown centric and readable in plain text and the GitHub rendering machine. We hope to achieve this using CSS and having classes for vertical columns, without having to make an extension to the markdown parser.\n\n## Gno IDE\n\nGno.land developer experience team is working on a web-based Gno IDE for quickly building Gno realms and packages right on your browser by just visiting a web app. Gno IDE will provide much improved UX for everything around building a realm (including making the testing easier), and additional features like autocompletion in the editor. Gno IDE will contain all the features you would expect from an IDE as well as valuable APIs for devs building tools around Gno.land with the public Gno Infrastructure.\n\n[![Gno IDE](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/gno-ide.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/gno-ide.png)\n\nGno IDE will have multiple modes to support different use cases. The normal mode will be used during everyday developments (as you’re familiar with from other code editors). The presentation mode is for high accessibility and readability. You can use it during video calls or physical workshops while projecting your screen to an audience. The third and perhaps most interesting mode is the embedded mode. Use this mode to embed the IDE into websites and blogs. This feature is especially useful for tutorials to test out sample code, run it on the real testnets, and play with it.\n\n## IBC and ICS\n\nAs depicted in the DAG above, Gno.land mainnet will launch first, followed by IBC and then ICS. We will focus on implementing IBC1, as we strongly believe in the ICS model and want to be a consumer of an existing Cosmos chain. We want a common ICS implementation that works across many hubs because Gno.land is a type of hub that will need its own ICS to scale while providing GnoVM on consumer chains on the Cosmos Hub. Our next step now is to find the best way to configure ICS for Gno.land and make GnoVM available as a consumer chain in the Cosmos Hub system.\n\nRegarding IBC, we will use the current implementation that was written for the Cosmos SDK and port that over to Tendermint2. We anticipate some issues along the way including security patches that need to be applied to our code base. There are multiple ongoing directions and discussions about how to bridge Gno.land’s smart contracts to IBC, which are essentially Interchain smart contract interactions.\n\nOne possibility is to have an API that submits events to a queue of outgoing events, and another queue to receive and consume events asynchronously. This mechanism could work for IBC2 to have rich inter-contract Interchain features, and the same API could work for Interchain plus smart contract interactions that require advanced options. We discussed a proposal to create a standard for Interchain contracts so that IBC2 could eventually be standardized eliminating limitations by applying it with an EVM, other languages, and CosmWasm.\n\nThis protocol could be based on Protobuf or a similar well-known syntax definition protocol so that we can push the Interchain to the next level. IBC2 will be safe and fast and replace vulnerable atomic bridges between multiple technologies. This is a major update that we are committed to developing and we need help identifying all the challenges involved. Working on IBC integration, separate from the Gno.land mainnet launch, will require significant time to understand how the light client system works. If you’re interested in taking on this task, let us know and we’ll set up a group. IBC will likely be the most important challenge of Game of Realms phase 2.\n\n## Garbage Collection\n\nCurrently, our work on garbage collection does not address the problem in the traditional Golang sense of dealing with memory efficiency. Instead, we are progressively optimizing and improving the main state tree by automating the clean-up of orphan nodes. The next phase will be targeting the official garbage collector component to begin work on memory management as we have some common Golang garbage collection challenges, but are identifying some uncommon ones too.\n\nWe need to consider elements like where to hold our objects because this is tied to releasing them in a concurrent lock-free way. We also need a good data structure. This is ongoing research as of now to implement a dedicated routine to synchronously clean stuff in a non-blocking way.\n\n## Game of Realms\n\nThis month, we have seen a massive uptick in contributions to Game of Realms phase one with a tidal wave of issues, general discussions, and PRs. One of the biggest things we worked on was adding support for MOD, which is a version of Go mod with an easier interface to manage your dependencies and version your dependencies. You can track the ongoing issue on GitHub [here](https://github.com/gnolang/gno/issues/390).\n\nThere have been some really strong contributions to the Evaluation DAO and governance module, as well as a big CLI refactor that went into our code base. We've also seen people contribute contracts like GRC 1155 or general improvements to existing realms, with many suggestions for fixing bugs. Finding bugs and reporting what people want is a good indication that the Gno.land platform is being picked up and gaining adoption.\n\nYou can find the Office Hours recordings that cover Game of Realms on YouTube [here](https://www.youtube.com/watch?v=JTmNg-b6Lcs).\n\n## Developer Events Stateside\n\nGno.land hosted a lively meetup during EthDenver last month where Gno.land founder and core dev Jae Kwon gave a talk for Solidity developers called “Gno.land, the Inevitable Next Generation Smart Contract Platform.\" He compared and contrasted Gno.land and Gnolang to Solidity, and showed Ethereum developers how the GnoVM shifts the smart contract paradigm. You can watch the [recording here](https://www.youtube.com/watch?v=IJ0xel8lr4c).\n\nAlso in March, Jae hosted a gaming workshop at a side event during the infamous Gaming Developer Conference (GDC) in San Francisco. “Gno.land for Game Developers, Building Your App in Web3,\" showed participants a sample gaming app built on the Gno.land platform and offered them the chance to try their hand at writing a smart contract for their app with Gno.\n\n## Virtual Events - How to Build a Forum\n\nCore tech lead at Gno.land Miloš Živković held a virtual workshop for Go devs called “How to Build a Forum.” He showed how Gnolang is a fast and simple way to build and launch smart contracts using the Gnolang interpreter virtual machine that interprets Gno and eliminates the need for any servers or ORNs.\n\nThe VM allows for the memory state of your Gno.land application to persist automatically after every transactional function call, which is a completely new way to handle transaction volume and memory recall. You can watch the [full tutorial here](https://github.com/gnolang/workshops).\n\n*We’d like the community to get involved in Gno.land’s monthly updates, so if you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-04-15T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-2","The More You Gno: Gno.land Monthly Updates - 2","\n\nOver the past few weeks, our core devs and ecosystem contributors have been making massive strides on Gno.land. There’s a lot to cover in the second edition of *The More You Gno*, from updates on Tendermint2 and GnoVM to stack/frames management, Gno IDE, and plenty more. We’ll also see what some of the external teams contributing to the platform have been up to, including Gno.land’s first decentralized exchange, GnoSwap, and Adena compatibility with GRC20 tokens. Check it out.\n\n## Tendermint2\n\nWe’re making steady development progress on Tendermint2, which focuses on simplicity of design, minimal code, minimal dependencies, modular dependencies, and completeness. For the time being, Tendermint2 will stay in the main repo in a top-level folder named Tendermint2. This is the official location to develop and improve the consensus protocol until it is stable enough to be extracted from the Gno repo and become a standalone project. Currently, Tendermint2 depends on GnoVM, however, we are working to unlink this dependency and build a basic demo Tendermint2 chain and Client.\n\nTendermint2 JS/TS Client is a JavaScript/TypeScript client implementation for Tendermint2-based chains. The client will make it easier for developers to interact with Tendermint2 chains, with a simplified API for account and transaction management, removing a ton of manual work and allowing developers to focus on building their dApps. You can [read more about the client here](https://www.npmjs.com/package/@gnolang/tm2-js-client). In addition to the Tendermint2 JS/TS client, we also created a Gno JS/TS client that just extends the TM2 one to provide Gno-specific functionality. You can read more about this here.\n\n## Game of Realms\n\nThe incentivized competition to find the best contributors to Gno.land continues in phase one, with slow but steady progress being made. Nir1218 initiated an Evaluation DAO Kickoff discussion in [issue 792](https://github.com/gnolang/gno/pull/792) to initiate testing code for the key smart contract infrastructure that will power the Gno.land platform. We are also interviewing architects for the core team with experience in governance modules and creating new economies on-chain, and a new DevRel team member will be joining us soon to create awesome tutorials and documentation to advance Game of Realms further. Gno.land must be built by the community and we will not rush to push Game of Realms to the second phase until we have found quality contributors to complete the challenge tasks and become the platform’s first founding members.\n\n## Gno IDE\n\nOur core development team is working on a web-based IDE for Gno.land that will greatly improve the developer experience, allowing builders to quickly spin up Gno realms and packages right on their browsers just by visiting a web app. Currently named Gno IDE but with a rebranding on the horizon, this intuitive product focuses on ease of use and improved UX, and will include all the features you’d expect from an IDE, such as auto compilation in the editor, debugging, extensive testing capability, and powerful APIs like IntelliJ to supercharge your programming.\n\nGno IDE currently has multiple modes to support different use cases, including a normal mode for everyday programming, similar to a standard code editor, a presentation mode for video calls or screen sharing, and an embedded mode to extend functionality, allowing you to embed the IDE directly into websites and blogs. You can also choose to edit your code in Emacs or Vim and easily switch between steps, from previous to next, making creating your tutorials and blog posts more intuitive. Watch out for more to come on Gno IDE soon, and if you want to contribute by creating a plugin for your favorite editor, open a PR to win contribution points.\n\n## Stack/Frames Management\n\nThe stack/frames is an integral part of the virtual machine (VM) and the language. Stack/frames provide context for smart contract developers, enabling them to access useful information, such as the original caller, or to determine if a contract is being called through another one. The current implementation is limited in scope and relies on fixed positions in the stack which can lead to inconsistencies.\n\nThere is an ongoing [issue 683 open here](https://github.com/gnolang/gno/issues/683) and we have continued to work on enhancing stack/frames development over the last month. We’re adding a new function in the standard library std.PrevRealm (previously GetRealmCaller). Currently, we only have GetOrigCaller, which returns the user calling the first realm. This is not secure and we need a way to call the previous caller. This will allow a realm to handle GRC20 treasuries. See [issue 667](https://github.com/gnolang/gno/pull/667) and [issue 634](https://github.com/gnolang/gno/issues/634) for further details.\n\n## Dealing with Panics in Native Functions\n\nWe have devised a solution for dealing with panics in native functions, [see pull request 732](https://github.com/gnolang/gno/pull/732). Previously, when there was a panic in a native function, we could not recover it in Gno code. An example of this was the assert origin call, which panicked if the call was not a direct call from a transaction. Based on discussions with contributors, we’ve agreed that native functions should never panic, but if they panic, they panic with machined Gno panic. This gives us the choice in a native function to code a Gno panic, or, if it's a very bad panic, use Go panic so that we know the Gno code is unable to recover it.\n\n## Logic Upgrading\n\nMaking it possible to upgrade your logic is definitely out of scope for the first version of Gno.land, however, it’s an important issue that we have begun to discuss so that we can place certain restrictions on it, such as allowing upgrades when we consider them safe enough to be compatible with imports. Another idea is to work on creating workflows where migrations become something official. This way, we could define ways to migrate a contract completely in a single transaction at the chain level. Once everything is working and approved as the previous contract is parsed or archived, the new one gets the data. We will revisit this topic after the first version of Gno.land reaches the mainnet.\n\n## Garbage Collection\n\nIn terms of garbage collection, we don’t have memory leaks as such but we do have defacto memory leaks. By the VM having references to all objects, they won’t be released by Go’s underlying GC. We have some form of reference counting but it is only done at the end of a transaction. We have implemented a mark-and-sweep garbage collector and are working on the VM runtime to manage the objects and signal to the garbage collector to release them when they are no longer needed. This is done by adding the notion of a heap, which is managed by the garbage collector.\n\n## GnoVM\n\nDeveloping GnoVM is an ongoing task and we will likely need to fork the GnoVM to create different competing versions. GnoVM will be complete, limited in features, and serve as the only interpreter, an enduring reference point over time. Future versions of GnoVM will be designed to incorporate CosmWasm so that all Cosmos chains can have CosmWasm enabled and the VM can run directly on the browser and execute tasks on the browser without requiring to make an API call, making it faster. To do this, we can make a Gno compiler in WebAssembly without changing the code because Go supports WASM cross-compilation.\n\nWe plan on making a competing version of the original minimalist GnoVM, such as a Rust version with a JIT compiler using LLVM as a backend.\n\n## Ecosystem Updates\n\nSince our last update, the Gno.land community continues to expand with awesome teams and contributors building cool infrastructure and projects on the platform. Below, we take a look at the largest developments of the past few weeks and extend a special thanks to everyone helping us build Gno.land.\n\n## Teritori\n\nTeritori blockchain and multi-chain hub launched in November 2022, allowing IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. Teritori’s idea for building on Gno.land is to create a multi-chain experience for users with a web portal, NFT marketplace, and social feed that will grow the community, and gradually integrate smart contracts and realms. This will promote Gno.land to more developers and showcase all the dApps being built through an easy-to-navigate dApp store. In the coming weeks, Teritori will work with the Onbloc team to integrate the Athena wallet into their portal as well as discuss ideas for promoting Game of Realms to new developers.\n\n## Onbloc\n\nOnbloc is one of the Gno.land ecosystem’s most active contributors, responsible for building the Adena wallet and the block explorer Gnoscan. The team has also been working on creating an official Gno SDK that will allow developers to interact with Gno.land more easily, and remove some of the current friction. Onbloc opened [issue 701](https://github.com/gnolang/gno/issues/701) on GitHub primarily for developers who either have their own web app or are building a JavaScript app and want to work with Gno in some way. Currently, developers need to do a lot of manual work, which Gno SDK will abstract away, improving the workflow and developer experience. If you have any ideas or feedback, please contribute to the aforementioned issue.\n\nIn another cool development, Onbloc has rolled out a new feature in Adena and Gnoscan to provide support for GRC20 tokens. To store and send tokens, you can open your Adena wallet, click on \"Manage Tokens”, navigate to the Custom Token page, and see which GRC20 tokens are available on Gno Testnet 3, searching by the symbol or path. To research on or discover tokens, head over to the Tokens page on Gnoscan for a full list of GRC20 tokens. You can click on any token on the list for detailed information, such as the total supply, owner, or other available functions built into the token. The Account Details page has also been updated to display all tokens owned by each address. You can help by checking out [issue 764](https://github.com/gnolang/gno/pull/764), which discusses adding bigint to support a wide range of numbers and encoding binary, and [issue 816](https://github.com/gnolang/gno/pull/816), which highlights a small bug the team runs into when coding.\n\nOnbloc has also created a new [token resource page on GitHub](http://github.com/onbloc/gnotokenresources) for anyone to share or upload resources associated with their Gno.land project. This will serve as a shared knowledge pool about any dApp on the platform. If you wanted to create a decentralized exchange, for example, you would need all the information about the tokens available on Gno.land, such as their images, symbols, descriptions, links to websites, etc. Now you can find this in one handy GitHub repository. If you’re a developer or builder who wants your logo or any other static data posted, be sure to submit a PR.\n\nAnd speaking of decentralized exchanges, Onbloc is also building Gnoswap, the first DEX to be powered by Gno.land, designed to simplify the concentrated liquidity experience and increase capital efficiency for traders. Its interface is built using TypeScript to be user-friendly, secure, and accessible for streamlining complex mechanisms such as price range configurations and staking as part of its core service. Contribute to its interface [here](https://github.com/gnoswap-labs/gnoswap-interface).\n\nAs for the contract side, Onbloc is actively working on its development with help from the core members of Gno.land. The code will be open-sourced for full transparency once the basic functions are ready.\n\n## New Core Contributors\n\nWe’re excited to welcome two new core team members, Antonio and Zack. Antonio joined us in April in the core team, bringing with him vast experience in IPFS, and writing Git servers in Go. Zack is our first “tinkerer in residence” and will try to bootstrap the ecosystem of small contracts and small libraries. He will also be writing apps and helping us design a system to better share and showcase our work with a super UX for team builders and open-source addicts.\n\nAntonio is already hard at work researching a benchmarking dashboard that will show performance improvements or regressions when we change the code. He’s assessing whether to use GiHub to track actions or run our own machine to execute GitHub actions. Take a peek at his research so far on [issue 783 here](https://github.com/gnolang/gno/pull/783).\n\nZack is working on a microblog project. As an experienced web2 Go programmer, Zack is transitioning to web3. Since he’s interested in incentivized social networks, the microblog project will be his first realm, as a Twitter-style blog without titles, where each user has their own page based on their address. Check out [issue 391](https://github.com/gnolang/gno/pull/391) for more details.\n\n## Developer Events\n\nOver the past few weeks, our core devs have been mainly focused on building but they’re preparing to speak at some exciting events in the coming months. Catch up with Manfred at BUIDL Asia, in Seoul, South Korea, from June 5 - 9. We’re co-hosting a side event with Onbloc, Code States, and Cosmostation on June 5, so be sure to register if you’re in town! We’ll also be at EthBelgrade in Serbia from June 2 - 4, and GopherCon in Berlin from June 26 - 29, so stop by and say hello.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-05-26T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\n\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n## About the Gnoland Funding and Grants Program\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n## Types of Contributors\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n## What We Are Looking For\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n## Meet Our First Grantees\n\n### Onbloc\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n### Teritori\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n### Zack\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","2023-06-27T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-07-11T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","2023-09-04T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1JnTffSaJKaEmMAyjloGbxIUFjEPN91Zx7y9nW2lHjsaILuGzsrM/sxNLXInZE70eE87xth3C1VhwZlNRNb/Aw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-phase1","All You Need to Know About Game of Realms: Phase One","\n\nGame of Realms, the worldwide competition to find the best contributors to Gno.land, is currently underway. Unlike some contests you may have entered, we're doing things a little differently. We want participants to be instrumental in building the Gno.land platform with meaningful contributions that help shape the direction of the project – either by writing the best Gnolang smart contracts or contributing to the core blockchain. It’s not just about winning prizes but becoming a meaningful contributor. We encourage participants to collaborate on the challenges – your contribution will be rewarded on individual merit.\n\n## Phase One: The Basics\n\nPhase one of Game of Realms is about laying the foundations to onboard more people to the platform. You’ll need to be an advanced developer who wants to create core materials that power the platform every day. You should also be willing to document your work and even write tutorials and guides that help us advance to the second phase of the competition.\n\nThere is a total prize pool of 133,700 ATOM available during the Game of Realms competition, one-third of which (44,121 ATOM) will be allocated to contributions from phase one. During phase one, which we expect to last between 1-3 months, participants will open PRs against repos from the Gnolang organization. For additional information on the competition phases and timelines, be sure to check out the following resources:\n\n- [Game of Realms blog post](https://test3.gno.land/r/gnoland/blog:p/gor-launch)\n- [Game of Realms AMA recap](https://test3.gno.land/r/gnoland/blog:p/gor-ama1)\n\n## Phase One: The Challenges\n\n**Evaluation DAO**: To ensure contributions in Game of Realms are rewarded fairly, we need an Evaluation DAO. Allowing community members to vote on the best contributions and decide how much they are worth provides a level playing field for all. We’re therefore seeking your skills in DAO development and implementation. This is one of the most important challenges of phase one and the only challenge that must be approved unilaterally by the core team because of its key role in the competition and the future of the platform. Read more about the [Evaluation DAO challenge on GitHub here](https://github.com/gnolang/gno/issues/407).\n\n**Tutorials \u0026 Documentation**: So that we can progress to phase two and open up the Gno.land platform to a broader audience, we need written and recorded tutorials, guides, and documentation from phase one participants. There are almost no instruction manuals when it comes to this new frontier as the only smart contract platform using the Gnolang programming language. Help us to create materials that will onboard more contributors to Gno.land. Read more about the [Tutorials \u0026 Documentation challenge on GitHub here](https://github.com/gnolang/gno/issues/408).\n\n**Governance Module**: We want Gno.land to adopt the fairest and most effective governance solution possible; one that encourages voter participation and is transparent and accountable. We’re looking for contributors to define and implement a governance contract suite that rivals existing ones, such as the Cosmos Hub, and be implemented by other projects. Can you improve on that? Show us how! Read more about the [Governance Module challenge on GitHub Here](https://github.com/gnolang/gno/issues/409).\n\nAll phase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the Evaluation DAO and awarded during phase two.\n\n## Judging Criteria - What Wins Points?\n\nWhat will the judges be looking for when assessing contributions? You can find individual details on the corresponding GitHub issue regarding each challenge, but to get you started, the Game of Realms contest prioritizes communication and collaboration. We encourage participants to work together to find the best solutions. You will be awarded individually for your contribution but working as part of a team is highly valued. Good documentation that expresses high learning efficiency and shows how the task was completed in an educational way will also win additional points, as will a high standard of quality, great UX, and the ability to follow the contribution guidelines.\n\nAs this is primarily a developer-oriented competition, most of the organization for Game of Realms is happening on GitHub; come by the repo and [visit issue #408](https://github.com/gnolang/gno/issues/408) to contribute to tutorial and documentation writing for Gno.land.\n\n## Rules of Engagement\n\nAll participants must keep in mind a strict code of conduct and specific rules and criteria to ensure fair play. Throughout the Game of Realms competition, no plagiarism will be tolerated at any time. Participants may submit what they wish, however, any project that has already been allocated rewards or received compensation in any other hackathon or similar contest will not receive double pay.\n\nThat’s all for now. If you have more questions about Game of Realms or Gno.land you can join us in our next Office Hours session on Tuesday, March 14, 2023, at 4 pm UTC. You can also connect with other participants in the [Gnoland Discord](https://discord.com/invite/S8nKUqwkPn).\n\n## Game of Realms Phase 1: FAQ\n\nBelow are some frequently asked questions about phase one of the Game of Realms competition. If you can’t find your answer below, jump into our Discord and ask, or join us for a live “Office Hours” session with the core team.\n\n### Q. How are the tasks in the issues assigned?\n\nA. There are official communication challenges that we encourage participants to use.\n\n### Q. Can I work individually or should I work as part of a team?\n\nA. You are free to work in stealth mode, but please keep in mind that you risk finishing too late or losing points for being bad at collaborating. We expect the issues in phase 1 to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything.\n\n### Q. How can I find collaborators?\n\nA. Participate on the issue or in Discord by indicating your desire to participate, by sharing your ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\n### Q. How can I ensure good collaboration?\n\nA. Since we are fully remote, collaborating can be a challenge and the best collaborators will be rewarded. We don't know each other, so having good communication is key.\n\n### Q. How will my collaboration be evaluated?\n\nA. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Q. How much is the prize pool?\n\nA. There is a total prize pool of **133,700 ATOM** available during the Game of Realms competition, one-third of which (**44,121 ATOM**) will be allocated to contributions from phase one.\n\n### Q. When will I receive my rewards for my collaboration?\n\nA. Rewards will be allocated retroactively by the Evaluation DAO during phase 2.\n\n### Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\nA. Not yet. The leaderboard will come in phase 2.\n\n### Q. What will the overall tasks consist of?\n\nA. Here is a non-exhaustive list:\n\n* Onboard more contributors (create tutorials and documentation)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n### Q. Are there tasks for non-programmers?\n\nA. There are more tasks for programmers, but multiple parts are for non-programmers too. During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\nhttps://github.com/gnolang/gno/issues/540\n\n### Q. What are the requirements to start participating?\n\nA. There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic.\n\n### Q. Is there a fixed period of time for phase 1?\n\nA. No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2.\n\n### Q. Is it possible to install a local testnet to get a proper local development environment?\n\nA. You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\n### Q. Will there be a list of what needs to be tested? When will the tests start?\n\nA. The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n* Evaluation DAO\n* Tutorials\n* Governance Module\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2 years ago.\n","2023-03-12T14:02:00Z","","gnoland,game-of-realms,faq"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-1","The More You Gno: Gno.land Monthly Updates","\n\nWe made progress across the board at Gno.land last month, from onboarding more devs to receiving an influx of contributions to the Game of Realms contest. To encourage development and discourse, we set up a biweekly public developer call in addition to our biweekly Office Hours sessions. Anyone can join, ask questions, and give their suggestions on how to shape the Gno.land platform and become a contributor. Last month, we covered several pressing topics from Gno IDE and Gno.land website language, to GnoVM, IBC, and ICS. Jae also came back to the circuit in March with two IRL workshops for devs at side events during EthDenver and Game Developer Conference (GDC) in San Francisco.\n\n## Developer Updates\n\nYou can find the live streams of the new biweekly public developer calls on [Gno.land YouTube](https://www.youtube.com/@_gnoland/videos) as well as access the agendas on [GitHub](https://github.com/gnolang/meetings/blob/main/notes/2023_03_15_dev_call_notes.md). The main talking points this month were Gno IDE, Gno.land website language and UX, garbage collection, bug fixes, and how to bring IBC and ICS to the platform. We are working on all these issues concurrently but the order of release will be Gno.land mainnet, IBC, and then ICS (this is reflected in the DAG below).\n\n[![Gno.land mini DAG](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/mini-dag.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/mini-dag.png)\n\n## Gno.land Website Language\n\nWe want to add more features for developers, such as libraries to make writing interfaces better and more consistent. There is an open topic for frontend developers with typography skills and library developers to create a UI framework for markdown or a custom rendering system.\n\nInternally, our core team is working on improvements to Gno.land’s website, making it easier to navigate with shorter columns while ensuring the text is markdown centric and readable in plain text and the GitHub rendering machine. We hope to achieve this using CSS and having classes for vertical columns, without having to make an extension to the markdown parser.\n\n## Gno IDE\n\nGno.land developer experience team is working on a web-based Gno IDE for quickly building Gno realms and packages right on your browser by just visiting a web app. Gno IDE will provide much improved UX for everything around building a realm (including making the testing easier), and additional features like autocompletion in the editor. Gno IDE will contain all the features you would expect from an IDE as well as valuable APIs for devs building tools around Gno.land with the public Gno Infrastructure.\n\n[![Gno IDE](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/gno-ide.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/gno-ide.png)\n\nGno IDE will have multiple modes to support different use cases. The normal mode will be used during everyday developments (as you’re familiar with from other code editors). The presentation mode is for high accessibility and readability. You can use it during video calls or physical workshops while projecting your screen to an audience. The third and perhaps most interesting mode is the embedded mode. Use this mode to embed the IDE into websites and blogs. This feature is especially useful for tutorials to test out sample code, run it on the real testnets, and play with it.\n\n## IBC and ICS\n\nAs depicted in the DAG above, Gno.land mainnet will launch first, followed by IBC and then ICS. We will focus on implementing IBC1, as we strongly believe in the ICS model and want to be a consumer of an existing Cosmos chain. We want a common ICS implementation that works across many hubs because Gno.land is a type of hub that will need its own ICS to scale while providing GnoVM on consumer chains on the Cosmos Hub. Our next step now is to find the best way to configure ICS for Gno.land and make GnoVM available as a consumer chain in the Cosmos Hub system.\n\nRegarding IBC, we will use the current implementation that was written for the Cosmos SDK and port that over to Tendermint2. We anticipate some issues along the way including security patches that need to be applied to our code base. There are multiple ongoing directions and discussions about how to bridge Gno.land’s smart contracts to IBC, which are essentially Interchain smart contract interactions.\n\nOne possibility is to have an API that submits events to a queue of outgoing events, and another queue to receive and consume events asynchronously. This mechanism could work for IBC2 to have rich inter-contract Interchain features, and the same API could work for Interchain plus smart contract interactions that require advanced options. We discussed a proposal to create a standard for Interchain contracts so that IBC2 could eventually be standardized eliminating limitations by applying it with an EVM, other languages, and CosmWasm.\n\nThis protocol could be based on Protobuf or a similar well-known syntax definition protocol so that we can push the Interchain to the next level. IBC2 will be safe and fast and replace vulnerable atomic bridges between multiple technologies. This is a major update that we are committed to developing and we need help identifying all the challenges involved. Working on IBC integration, separate from the Gno.land mainnet launch, will require significant time to understand how the light client system works. If you’re interested in taking on this task, let us know and we’ll set up a group. IBC will likely be the most important challenge of Game of Realms phase 2.\n\n## Garbage Collection\n\nCurrently, our work on garbage collection does not address the problem in the traditional Golang sense of dealing with memory efficiency. Instead, we are progressively optimizing and improving the main state tree by automating the clean-up of orphan nodes. The next phase will be targeting the official garbage collector component to begin work on memory management as we have some common Golang garbage collection challenges, but are identifying some uncommon ones too.\n\nWe need to consider elements like where to hold our objects because this is tied to releasing them in a concurrent lock-free way. We also need a good data structure. This is ongoing research as of now to implement a dedicated routine to synchronously clean stuff in a non-blocking way.\n\n## Game of Realms\n\nThis month, we have seen a massive uptick in contributions to Game of Realms phase one with a tidal wave of issues, general discussions, and PRs. One of the biggest things we worked on was adding support for MOD, which is a version of Go mod with an easier interface to manage your dependencies and version your dependencies. You can track the ongoing issue on GitHub [here](https://github.com/gnolang/gno/issues/390).\n\nThere have been some really strong contributions to the Evaluation DAO and governance module, as well as a big CLI refactor that went into our code base. We've also seen people contribute contracts like GRC 1155 or general improvements to existing realms, with many suggestions for fixing bugs. Finding bugs and reporting what people want is a good indication that the Gno.land platform is being picked up and gaining adoption.\n\nYou can find the Office Hours recordings that cover Game of Realms on YouTube [here](https://www.youtube.com/watch?v=JTmNg-b6Lcs).\n\n## Developer Events Stateside\n\nGno.land hosted a lively meetup during EthDenver last month where Gno.land founder and core dev Jae Kwon gave a talk for Solidity developers called “Gno.land, the Inevitable Next Generation Smart Contract Platform.\" He compared and contrasted Gno.land and Gnolang to Solidity, and showed Ethereum developers how the GnoVM shifts the smart contract paradigm. You can watch the [recording here](https://www.youtube.com/watch?v=IJ0xel8lr4c).\n\nAlso in March, Jae hosted a gaming workshop at a side event during the infamous Gaming Developer Conference (GDC) in San Francisco. “Gno.land for Game Developers, Building Your App in Web3,\" showed participants a sample gaming app built on the Gno.land platform and offered them the chance to try their hand at writing a smart contract for their app with Gno.\n\n## Virtual Events - How to Build a Forum\n\nCore tech lead at Gno.land Miloš Živković held a virtual workshop for Go devs called “How to Build a Forum.” He showed how Gnolang is a fast and simple way to build and launch smart contracts using the Gnolang interpreter virtual machine that interprets Gno and eliminates the need for any servers or ORNs.\n\nThe VM allows for the memory state of your Gno.land application to persist automatically after every transactional function call, which is a completely new way to handle transaction volume and memory recall. You can watch the [full tutorial here](https://github.com/gnolang/workshops).\n\n*We’d like the community to get involved in Gno.land’s monthly updates, so if you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-04-15T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-2","The More You Gno: Gno.land Monthly Updates - 2","\n\nOver the past few weeks, our core devs and ecosystem contributors have been making massive strides on Gno.land. There’s a lot to cover in the second edition of *The More You Gno*, from updates on Tendermint2 and GnoVM to stack/frames management, Gno IDE, and plenty more. We’ll also see what some of the external teams contributing to the platform have been up to, including Gno.land’s first decentralized exchange, GnoSwap, and Adena compatibility with GRC20 tokens. Check it out.\n\n## Tendermint2\n\nWe’re making steady development progress on Tendermint2, which focuses on simplicity of design, minimal code, minimal dependencies, modular dependencies, and completeness. For the time being, Tendermint2 will stay in the main repo in a top-level folder named Tendermint2. This is the official location to develop and improve the consensus protocol until it is stable enough to be extracted from the Gno repo and become a standalone project. Currently, Tendermint2 depends on GnoVM, however, we are working to unlink this dependency and build a basic demo Tendermint2 chain and Client.\n\nTendermint2 JS/TS Client is a JavaScript/TypeScript client implementation for Tendermint2-based chains. The client will make it easier for developers to interact with Tendermint2 chains, with a simplified API for account and transaction management, removing a ton of manual work and allowing developers to focus on building their dApps. You can [read more about the client here](https://www.npmjs.com/package/@gnolang/tm2-js-client). In addition to the Tendermint2 JS/TS client, we also created a Gno JS/TS client that just extends the TM2 one to provide Gno-specific functionality. You can read more about this here.\n\n## Game of Realms\n\nThe incentivized competition to find the best contributors to Gno.land continues in phase one, with slow but steady progress being made. Nir1218 initiated an Evaluation DAO Kickoff discussion in [issue 792](https://github.com/gnolang/gno/pull/792) to initiate testing code for the key smart contract infrastructure that will power the Gno.land platform. We are also interviewing architects for the core team with experience in governance modules and creating new economies on-chain, and a new DevRel team member will be joining us soon to create awesome tutorials and documentation to advance Game of Realms further. Gno.land must be built by the community and we will not rush to push Game of Realms to the second phase until we have found quality contributors to complete the challenge tasks and become the platform’s first founding members.\n\n## Gno IDE\n\nOur core development team is working on a web-based IDE for Gno.land that will greatly improve the developer experience, allowing builders to quickly spin up Gno realms and packages right on their browsers just by visiting a web app. Currently named Gno IDE but with a rebranding on the horizon, this intuitive product focuses on ease of use and improved UX, and will include all the features you’d expect from an IDE, such as auto compilation in the editor, debugging, extensive testing capability, and powerful APIs like IntelliJ to supercharge your programming.\n\nGno IDE currently has multiple modes to support different use cases, including a normal mode for everyday programming, similar to a standard code editor, a presentation mode for video calls or screen sharing, and an embedded mode to extend functionality, allowing you to embed the IDE directly into websites and blogs. You can also choose to edit your code in Emacs or Vim and easily switch between steps, from previous to next, making creating your tutorials and blog posts more intuitive. Watch out for more to come on Gno IDE soon, and if you want to contribute by creating a plugin for your favorite editor, open a PR to win contribution points.\n\n## Stack/Frames Management\n\nThe stack/frames is an integral part of the virtual machine (VM) and the language. Stack/frames provide context for smart contract developers, enabling them to access useful information, such as the original caller, or to determine if a contract is being called through another one. The current implementation is limited in scope and relies on fixed positions in the stack which can lead to inconsistencies.\n\nThere is an ongoing [issue 683 open here](https://github.com/gnolang/gno/issues/683) and we have continued to work on enhancing stack/frames development over the last month. We’re adding a new function in the standard library std.PrevRealm (previously GetRealmCaller). Currently, we only have GetOrigCaller, which returns the user calling the first realm. This is not secure and we need a way to call the previous caller. This will allow a realm to handle GRC20 treasuries. See [issue 667](https://github.com/gnolang/gno/pull/667) and [issue 634](https://github.com/gnolang/gno/issues/634) for further details.\n\n## Dealing with Panics in Native Functions\n\nWe have devised a solution for dealing with panics in native functions, [see pull request 732](https://github.com/gnolang/gno/pull/732). Previously, when there was a panic in a native function, we could not recover it in Gno code. An example of this was the assert origin call, which panicked if the call was not a direct call from a transaction. Based on discussions with contributors, we’ve agreed that native functions should never panic, but if they panic, they panic with machined Gno panic. This gives us the choice in a native function to code a Gno panic, or, if it's a very bad panic, use Go panic so that we know the Gno code is unable to recover it.\n\n## Logic Upgrading\n\nMaking it possible to upgrade your logic is definitely out of scope for the first version of Gno.land, however, it’s an important issue that we have begun to discuss so that we can place certain restrictions on it, such as allowing upgrades when we consider them safe enough to be compatible with imports. Another idea is to work on creating workflows where migrations become something official. This way, we could define ways to migrate a contract completely in a single transaction at the chain level. Once everything is working and approved as the previous contract is parsed or archived, the new one gets the data. We will revisit this topic after the first version of Gno.land reaches the mainnet.\n\n## Garbage Collection\n\nIn terms of garbage collection, we don’t have memory leaks as such but we do have defacto memory leaks. By the VM having references to all objects, they won’t be released by Go’s underlying GC. We have some form of reference counting but it is only done at the end of a transaction. We have implemented a mark-and-sweep garbage collector and are working on the VM runtime to manage the objects and signal to the garbage collector to release them when they are no longer needed. This is done by adding the notion of a heap, which is managed by the garbage collector.\n\n## GnoVM\n\nDeveloping GnoVM is an ongoing task and we will likely need to fork the GnoVM to create different competing versions. GnoVM will be complete, limited in features, and serve as the only interpreter, an enduring reference point over time. Future versions of GnoVM will be designed to incorporate CosmWasm so that all Cosmos chains can have CosmWasm enabled and the VM can run directly on the browser and execute tasks on the browser without requiring to make an API call, making it faster. To do this, we can make a Gno compiler in WebAssembly without changing the code because Go supports WASM cross-compilation.\n\nWe plan on making a competing version of the original minimalist GnoVM, such as a Rust version with a JIT compiler using LLVM as a backend.\n\n## Ecosystem Updates\n\nSince our last update, the Gno.land community continues to expand with awesome teams and contributors building cool infrastructure and projects on the platform. Below, we take a look at the largest developments of the past few weeks and extend a special thanks to everyone helping us build Gno.land.\n\n## Teritori\n\nTeritori blockchain and multi-chain hub launched in November 2022, allowing IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. Teritori’s idea for building on Gno.land is to create a multi-chain experience for users with a web portal, NFT marketplace, and social feed that will grow the community, and gradually integrate smart contracts and realms. This will promote Gno.land to more developers and showcase all the dApps being built through an easy-to-navigate dApp store. In the coming weeks, Teritori will work with the Onbloc team to integrate the Athena wallet into their portal as well as discuss ideas for promoting Game of Realms to new developers.\n\n## Onbloc\n\nOnbloc is one of the Gno.land ecosystem’s most active contributors, responsible for building the Adena wallet and the block explorer Gnoscan. The team has also been working on creating an official Gno SDK that will allow developers to interact with Gno.land more easily, and remove some of the current friction. Onbloc opened [issue 701](https://github.com/gnolang/gno/issues/701) on GitHub primarily for developers who either have their own web app or are building a JavaScript app and want to work with Gno in some way. Currently, developers need to do a lot of manual work, which Gno SDK will abstract away, improving the workflow and developer experience. If you have any ideas or feedback, please contribute to the aforementioned issue.\n\nIn another cool development, Onbloc has rolled out a new feature in Adena and Gnoscan to provide support for GRC20 tokens. To store and send tokens, you can open your Adena wallet, click on \"Manage Tokens”, navigate to the Custom Token page, and see which GRC20 tokens are available on Gno Testnet 3, searching by the symbol or path. To research on or discover tokens, head over to the Tokens page on Gnoscan for a full list of GRC20 tokens. You can click on any token on the list for detailed information, such as the total supply, owner, or other available functions built into the token. The Account Details page has also been updated to display all tokens owned by each address. You can help by checking out [issue 764](https://github.com/gnolang/gno/pull/764), which discusses adding bigint to support a wide range of numbers and encoding binary, and [issue 816](https://github.com/gnolang/gno/pull/816), which highlights a small bug the team runs into when coding.\n\nOnbloc has also created a new [token resource page on GitHub](http://github.com/onbloc/gnotokenresources) for anyone to share or upload resources associated with their Gno.land project. This will serve as a shared knowledge pool about any dApp on the platform. If you wanted to create a decentralized exchange, for example, you would need all the information about the tokens available on Gno.land, such as their images, symbols, descriptions, links to websites, etc. Now you can find this in one handy GitHub repository. If you’re a developer or builder who wants your logo or any other static data posted, be sure to submit a PR.\n\nAnd speaking of decentralized exchanges, Onbloc is also building Gnoswap, the first DEX to be powered by Gno.land, designed to simplify the concentrated liquidity experience and increase capital efficiency for traders. Its interface is built using TypeScript to be user-friendly, secure, and accessible for streamlining complex mechanisms such as price range configurations and staking as part of its core service. Contribute to its interface [here](https://github.com/gnoswap-labs/gnoswap-interface).\n\nAs for the contract side, Onbloc is actively working on its development with help from the core members of Gno.land. The code will be open-sourced for full transparency once the basic functions are ready.\n\n## New Core Contributors\n\nWe’re excited to welcome two new core team members, Antonio and Zack. Antonio joined us in April in the core team, bringing with him vast experience in IPFS, and writing Git servers in Go. Zack is our first “tinkerer in residence” and will try to bootstrap the ecosystem of small contracts and small libraries. He will also be writing apps and helping us design a system to better share and showcase our work with a super UX for team builders and open-source addicts.\n\nAntonio is already hard at work researching a benchmarking dashboard that will show performance improvements or regressions when we change the code. He’s assessing whether to use GiHub to track actions or run our own machine to execute GitHub actions. Take a peek at his research so far on [issue 783 here](https://github.com/gnolang/gno/pull/783).\n\nZack is working on a microblog project. As an experienced web2 Go programmer, Zack is transitioning to web3. Since he’s interested in incentivized social networks, the microblog project will be his first realm, as a Twitter-style blog without titles, where each user has their own page based on their address. Check out [issue 391](https://github.com/gnolang/gno/pull/391) for more details.\n\n## Developer Events\n\nOver the past few weeks, our core devs have been mainly focused on building but they’re preparing to speak at some exciting events in the coming months. Catch up with Manfred at BUIDL Asia, in Seoul, South Korea, from June 5 - 9. We’re co-hosting a side event with Onbloc, Code States, and Cosmostation on June 5, so be sure to register if you’re in town! We’ll also be at EthBelgrade in Serbia from June 2 - 4, and GopherCon in Berlin from June 26 - 29, so stop by and say hello.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-05-26T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\n\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n## About the Gnoland Funding and Grants Program\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n## Types of Contributors\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n## What We Are Looking For\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n## Meet Our First Grantees\n\n### Onbloc\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n### Teritori\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n### Zack\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","2023-06-27T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-07-11T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","2023-09-04T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1JnTffSaJKaEmMAyjloGbxIUFjEPN91Zx7y9nW2lHjsaILuGzsrM/sxNLXInZE70eE87xth3C1VhwZlNRNb/Aw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-phase1","All You Need to Know About Game of Realms: Phase One","\n\nGame of Realms, the worldwide competition to find the best contributors to Gno.land, is currently underway. Unlike some contests you may have entered, we're doing things a little differently. We want participants to be instrumental in building the Gno.land platform with meaningful contributions that help shape the direction of the project – either by writing the best Gnolang smart contracts or contributing to the core blockchain. It’s not just about winning prizes but becoming a meaningful contributor. We encourage participants to collaborate on the challenges – your contribution will be rewarded on individual merit.\n\n## Phase One: The Basics\n\nPhase one of Game of Realms is about laying the foundations to onboard more people to the platform. You’ll need to be an advanced developer who wants to create core materials that power the platform every day. You should also be willing to document your work and even write tutorials and guides that help us advance to the second phase of the competition.\n\nThere is a total prize pool of 133,700 ATOM available during the Game of Realms competition, one-third of which (44,121 ATOM) will be allocated to contributions from phase one. During phase one, which we expect to last between 1-3 months, participants will open PRs against repos from the Gnolang organization. For additional information on the competition phases and timelines, be sure to check out the following resources:\n\n- [Game of Realms blog post](https://test3.gno.land/r/gnoland/blog:p/gor-launch)\n- [Game of Realms AMA recap](https://test3.gno.land/r/gnoland/blog:p/gor-ama1)\n\n## Phase One: The Challenges\n\n**Evaluation DAO**: To ensure contributions in Game of Realms are rewarded fairly, we need an Evaluation DAO. Allowing community members to vote on the best contributions and decide how much they are worth provides a level playing field for all. We’re therefore seeking your skills in DAO development and implementation. This is one of the most important challenges of phase one and the only challenge that must be approved unilaterally by the core team because of its key role in the competition and the future of the platform. Read more about the [Evaluation DAO challenge on GitHub here](https://github.com/gnolang/gno/issues/407).\n\n**Tutorials \u0026 Documentation**: So that we can progress to phase two and open up the Gno.land platform to a broader audience, we need written and recorded tutorials, guides, and documentation from phase one participants. There are almost no instruction manuals when it comes to this new frontier as the only smart contract platform using the Gnolang programming language. Help us to create materials that will onboard more contributors to Gno.land. Read more about the [Tutorials \u0026 Documentation challenge on GitHub here](https://github.com/gnolang/gno/issues/408).\n\n**Governance Module**: We want Gno.land to adopt the fairest and most effective governance solution possible; one that encourages voter participation and is transparent and accountable. We’re looking for contributors to define and implement a governance contract suite that rivals existing ones, such as the Cosmos Hub, and be implemented by other projects. Can you improve on that? Show us how! Read more about the [Governance Module challenge on GitHub Here](https://github.com/gnolang/gno/issues/409).\n\nAll phase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the Evaluation DAO and awarded during phase two.\n\n## Judging Criteria - What Wins Points?\n\nWhat will the judges be looking for when assessing contributions? You can find individual details on the corresponding GitHub issue regarding each challenge, but to get you started, the Game of Realms contest prioritizes communication and collaboration. We encourage participants to work together to find the best solutions. You will be awarded individually for your contribution but working as part of a team is highly valued. Good documentation that expresses high learning efficiency and shows how the task was completed in an educational way will also win additional points, as will a high standard of quality, great UX, and the ability to follow the contribution guidelines.\n\nAs this is primarily a developer-oriented competition, most of the organization for Game of Realms is happening on GitHub; come by the repo and [visit issue #408](https://github.com/gnolang/gno/issues/408) to contribute to tutorial and documentation writing for Gno.land.\n\n## Rules of Engagement\n\nAll participants must keep in mind a strict code of conduct and specific rules and criteria to ensure fair play. Throughout the Game of Realms competition, no plagiarism will be tolerated at any time. Participants may submit what they wish, however, any project that has already been allocated rewards or received compensation in any other hackathon or similar contest will not receive double pay.\n\nThat’s all for now. If you have more questions about Game of Realms or Gno.land you can join us in our next Office Hours session on Tuesday, March 14, 2023, at 4 pm UTC. You can also connect with other participants in the [Gnoland Discord](https://discord.com/invite/S8nKUqwkPn).\n\n## Game of Realms Phase 1: FAQ\n\nBelow are some frequently asked questions about phase one of the Game of Realms competition. If you can’t find your answer below, jump into our Discord and ask, or join us for a live “Office Hours” session with the core team.\n\n### Q. How are the tasks in the issues assigned?\n\nA. There are official communication challenges that we encourage participants to use.\n\n### Q. Can I work individually or should I work as part of a team?\n\nA. You are free to work in stealth mode, but please keep in mind that you risk finishing too late or losing points for being bad at collaborating. We expect the issues in phase 1 to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything.\n\n### Q. How can I find collaborators?\n\nA. Participate on the issue or in Discord by indicating your desire to participate, by sharing your ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\n### Q. How can I ensure good collaboration?\n\nA. Since we are fully remote, collaborating can be a challenge and the best collaborators will be rewarded. We don't know each other, so having good communication is key.\n\n### Q. How will my collaboration be evaluated?\n\nA. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Q. How much is the prize pool?\n\nA. There is a total prize pool of **133,700 ATOM** available during the Game of Realms competition, one-third of which (**44,121 ATOM**) will be allocated to contributions from phase one.\n\n### Q. When will I receive my rewards for my collaboration?\n\nA. Rewards will be allocated retroactively by the Evaluation DAO during phase 2.\n\n### Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\nA. Not yet. The leaderboard will come in phase 2.\n\n### Q. What will the overall tasks consist of?\n\nA. Here is a non-exhaustive list:\n\n* Onboard more contributors (create tutorials and documentation)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n### Q. Are there tasks for non-programmers?\n\nA. There are more tasks for programmers, but multiple parts are for non-programmers too. During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\nhttps://github.com/gnolang/gno/issues/540\n\n### Q. What are the requirements to start participating?\n\nA. There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic.\n\n### Q. Is there a fixed period of time for phase 1?\n\nA. No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2.\n\n### Q. Is it possible to install a local testnet to get a proper local development environment?\n\nA. You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\n### Q. Will there be a list of what needs to be tested? When will the tests start?\n\nA. The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n* Evaluation DAO\n* Tutorials\n* Governance Module\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2 years ago.\n","2023-03-12T14:02:00Z","","gnoland,game-of-realms,faq"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SBdvgFsQnnwk5xJK+MtSFaI4Qcd1YVpeKvQXzGE/USHu1aW8GlXDkUrLhpbrgz86HTTpvZGPUcLV16mztybFCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["intro","Intro to Gnoland - The Smart Contract Platform to Improve Our Understanding of the World","\n\n_Welcome to Gno.land. This is the official site to learn about the Gnolang (Gno) programming language and the Gno.land smart contract platform, as well as understand the motivations behind Gno and our core values and mission. We’re starting a series of blog posts and holding regular community calls and AMAs so that you can stay up to date with upcoming developments and dive deeper into the Gno World Order. Stay tuned._\n\n## What Is Gno.land?\n\nGno.land (pronounced no-land) is a layer 1 smart contract platform invented by Jae Kwon, co-founder of Cosmos and Tendermint, to address multiple issues in the blockchain space — in particular, the ease of use and intuitiveness of smart contract programming platforms. Beyond offering succinctness, composability, expressivity, and completeness not found in any other smart contract platform, we aim to challenge the regime of information censorship that we find ourselves living in today.\n\nBy using the programming language Gnolang (Gno), an interpreted version of the widely-used Golang (Go) language, using a state-of-the-art VM written in Go, we want to lower the barrier to entry to web3 and make it simple for developers (particularly existing web2 developers) to write smart contracts and other blockchain applications without having to learn a programming language that is limited by design or exclusive to a single blockchain ecosystem.\n\n### Gnolang (Gno) Is Essential to Broader Adoption of Web3\n\nFor web3 to grow in a sustainable way, we need technological solutions that are designed for the blockchain with programming languages that are universally adopted, secure, composable, and complete. The main programming language currently used for creating smart contracts, Solidity, is designed for one purpose only (writing smart contracts) and lacks the completeness of a general-purpose language.\n\nSolidity removes many of the complexities that blockchain programming requires (such as memory management, ensuring that the code is deterministic, and understanding how the entire tech stack is implemented) allowing developers to quickly build succinct smart contracts. However, Solidity is only used for smart contracts on EVM-compatible blockchains (like Ethereum, Polygon, or EVMOS) and its design is limited by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems.\n\nGo, on the other hand, is a well-designed complete programming language with its foundation based on composable structures, designed by the creators of Plan 9. This allows developers to rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nGo is widely used, especially among existing web2 developers. It’s easier to learn and can be used to program almost anything, such as GoEthereum or Tendermint. Every part of the Gno.land stack is written in Go so that one person can understand the entire system just by studying a relatively small code base. The Go language is so well designed that the Gnolang smart contract system will become the new gold standard for smart contract development and other blockchain (and even non-blockchain) applications.\n\n### Security Is a Built-in Feature of Go (Golang)\n\nBeyond object embedding, closures, importing of modules, composability of programs, and interfaces that allow you to implement a specific set of functions, Go supports secure programming through exported/non-exported fields, enabling “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that is safe and helps developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n### How Gnolang (Gno) Differs from Golang (Go)\n\n[![Go and Gno](https://gnolang.github.io/blog/2022-11-21_intro/src/thumbs/go-and-gno.png)](https://gnolang.github.io/blog/2022-11-21_intro/src/go-and-gno.png)\n\n_Image 1: Gnolang - Like Go but specific to the blockchain_\n\nGno is around 99% identical to Go and most people can code in Gno from day one, even minute one. The Gno.land programming environment comes with blockchain-specific standard libraries, but any code that doesn’t use the blockchain-specific logic can run in Go with minimal processing. On the other hand, some libraries that don’t make sense in the blockchain context are not available in the Gno.land programming environment, such as network or operating-system access.\n\nOtherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same. Under the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than byte code as in many virtual machines such as Java, Python, or WASM. This makes even the Gno VM accessible to any Go programmer. The novel design of the Gno VM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. This allows (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making Gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on Gno.land will be light, simple, more focused, and easily interoperable — a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n[![Gnolang code example](https://gnolang.github.io/blog/2022-11-21_intro/src/thumbs/code-example.jpg)](https://gnolang.github.io/blog/2022-11-21_intro/src/code-example.jpg)\n\n_Image 2: Code snippet from the Gno programming language_\n\nToday, Gno.land is the only blockchain instance in the world that supports Gno but tomorrow, there will be many chains with different names such as mydapp.zone, or mydao.xyz. Gno.land is the name of ONE chain and is not a name that will be used by other Gnolang-powered chains. Gno.land will remain a minimal hub with three main utilities:\n\n* Managing cross-Gnolang-chain fees/licenses\n* To be the (or an) official home for the best smart contracts\n* To provide new models of governance (w/ DAO modules)\n\n### Earning Rewards Through Proof-of-Contribution (PoC)\n\nThere are four main ways to earn rewards through PoC on the Gno.land chain:\n\n* Pre-defined tasks (technical or otherwise)\n* Pre-defined bounties\n* Retroactive bounties\n* Vesting-style rewards for core members\n\nBounties rewards (both pre-defined and retroactive) will be decided with “local rules,” through the agreement of the DAO with everything on-chain and transparent. If one human were to abuse the system, it would trigger and the bad actor would be slashed. We’ll go into depth on how you can earn rewards in an upcoming post.\n\n### Durable Solutions to Improve Our Understanding of the World\n\nOne of our inspirations for the Gno.land project is the gospels, which built a system of moral code that lasted for thousands of years. Part of Gno.land’s endurance will be having a minimal production implementation that becomes a reference for other implementations and a basis for education to elevate people's understanding of blockchains.\n\nGno.land aims to appeal to web developers, dApp developers, and blockchain builders to create solutions that help people improve their understanding of the world. With the barrage of misinformation delivered today from various factions, it’s impossible to separate the real from the fake. This causes a state of gridlock. We are living in a regime of information censorship spanning all important topics from climate change to global pandemics — a vast coordinated effort to prevent people from understanding the truth.\n\nBy just browsing Reddit, searching with Google, and scrolling through Facebook, Twitter, or Instagram, people are deliberately being [misled](https://twitter.com/lhfang/status/1587095890983936000) about key global issues that we all deserve clarity on. This is as malevolent as any type of censorship regime in the world — and we need to come together to challenge it and break the wall of censorship to achieve a functional democracy at last.\n\n### Gno.land’s Current Phase of Development\n\nGno.land is currently running in its third testnet and there will be several more testnets before the platform is production ready. Modern civilization wasn’t built in a day, and neither will Gno.land rush into committing to an exact launch date. However, the next development, an incentivized testnet called ‘Game of Realms’, is scheduled for Q1 2023.\n\nGame of Realms will be similar to ‘Game of Stakes’ on the Cosmos Hub and will reward the earliest and best contributors. If you would like to find out more about Game of Realms, Gno.land, Gnolang, or anything else, join us for our first community call with Gno.land Founder, Jae Kwon on November 22nd, at 4pm UTC on our [Discord channel](https://discord.gg/YFtMjWwUN7). We look forward to seeing you.\n","2022-11-21T17:13:00Z","christina,jae,manfred","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pDhDVC3vjMw95j9sQ6xwq39vbS+CUiyDihdcGgE0oduX6QrTRTYTjMRikCBJIPFSZ7nFP8GIK7jmDcshAwhcDw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["kv-stores-indexer","Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x","\n\nIn this article, we'll discuss how we achieved a tenfold increase in the processing speed of the tx-indexer by applying four key concepts related to our use of key/value storage:\n\n・ [Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x](#keyvalue-stores-how-we-improved-the-performance-of-our-tx-indexer-by-10x) \n ・ [Understanding Key/Value Store Variability](#understanding-keyvalue-store-variability) \n ・ [The Importance of Efficient Data Encoding](#the-importance-of-efficient-data-encoding) \n ・ [Implementing Secondary Indexes on a Key/Value Store](#implementing-secondary-indexes-on-a-keyvalue-store) \n ・ [The Role of Batch Inserts in Enhancing Performance](#the-role-of-batch-inserts-in-enhancing-performance) \n ・ [Data consistency](#data-consistency) \n ・ [Speed](#speed) \n ・ [Old](#old) \n ・ [New](#new) \n ・ [Conclusion](#conclusion) \n\nThe Transaction Indexer ([tx-indexer](https://github.com/gnolang/tx-indexer)) is the primary tool Gno.land uses to index its networks. It is in charge of keeping up with block production, fetching new data, indexing it, and serving it to users while providing filtering and subscription capabilities. The tx-indexer creates versatility and ease of use when using on-chain data, which is one of the key aspects of a fully functioning decentralized application.\n\n## Understanding Key/Value Store Variability\n\nNot all key/value storages are created equal. Each varies significantly, and depending on their internal data structures, some are better suited for certain use cases than others. A deep understanding of the key/value store you plan to use will help you better organize data for efficient writing and reading and assist in choosing the best store for your specific needs.\n\nWhile [PebbleDB](https://github.com/cockroachdb/pebble) is based on [RocksDB](https://github.com/facebook/rocksdb/wiki/RocksDB-Overview), the two databases differ significantly. Both utilize LSM Trees built upon SSTables; however, PebbleDB supports only a subset of the features available in RocksDB. For instance, PebbleDB lacks built-in transaction capabilities, but these can be alternatively implemented through the use of Batches and/or Snapshots.\n\n## The Importance of Efficient Data Encoding\n\nOur indexing involved elements defined by consecutive integers, with Blocks on one side and Transactions within a Block on the other.\n\nInitially, Blocks were indexed using a combination of `block_prefix` and block_id encoded in little endian. This method wasn't allowing us to use iterators for ordered data retrieval, forcing us to fetch elements individually, resulting in excessive and inefficient database queries.\n\nAfter refactoring, we adopted a binary encoding scheme that allowed for custom encoding of strings and integers. This flexibility enabled ascending or descending order iterations, which significantly improved our ability to read data sequentially through iterators and, consequently, reduced query times dramatically.\n\nSmall example about how we encoded uint32 values in ascending order:\n\n```go!\nfunc encodeUint32Ascending(b []byte, v uint32) []byte {\n\treturn append(b, byte(v\u003e\u003e24), byte(v\u003e\u003e16), byte(v\u003e\u003e8), byte(v))\n}\n```\n\n## Implementing Secondary Indexes on a Key/Value Store\n\nWhile most filters are applied on the fly due to their low cost, we implemented secondary indexes to fetch Transactions by Hash efficiently.\n\nSecondary indexes are specialized key groups that directly reference the primary index key where the data resides. For example, a transaction with ID `3` in block `42` is indexed as `/index/txs/[uint64]42[uint32]3`. These transactions are also uniquely identified by a hash representing the entire transaction content.\n\nTo fetch transactions by hash, we created a secondary index that points to the primary index:\n\n`/index/txh/[HASH] -\u003e /data/txs/[uint64]42[uint32]3` \n\nAlthough our secondary indexes do not require ordered iteration, this capability remains available, allowing us to apply additional filters as necessary. For instance, we could index transactions by year:\n\n`/index/txYear/[uint16]2024[uint64]42[uint32]3 -\u003e /data/txs/[uint64]42[uint32]3`\n\nThis format allows us to iterate through transactions within a specific year, from the start to the end of 2023, for example:\n\n・ from: `/index/txYear/[uint16]2023[uint64]0[uint32]0` \n・ to: `/index/txYear/[uint16]2023[uint64]MAX_UINT64[uint32]MAX_UINT32` \n\n## The Role of Batch Inserts in Enhancing Performance\n\nThe advantages of write batches are often overlooked but crucial. Inserting elements individually can lead to data consistency issues and slower operations.\n\n### Data consistency\n\nBatches ensure atomicity—either all elements are persisted, or none are. Without batches, a failure during insertion could result in a block being saved without some of its transactions.\n\n### Speed\n\nEach insertion involves internal processes that slow down the operation. By grouping several entries in one batch, we significantly enhance insertion speed. These are new benchmarks comparing the old and new way of writting elements without and with batches. Note that these are just synthetic benchmarks and the 10x improvement was measured when using the indexer as it is (we came from speding 30 mins to 3 mins with the new storage changes):\n\n#### Old\n\n```go!\nfunc BenchmarkPebbleWrites(b *testing.B) {\n\tstore, err := NewDB(b.TempDir())\n\trequire.NoError(b, err)\n\tdefer store.Close()\n\n\tpairs := generateRandomPairs(b, b.N)\n\n\tb.ResetTimer()\n\tfor k, v := range pairs {\n\t\terr := store.Set([]byte(k), v)\n\n\t\tb.StopTimer()\n\t\trequire.NoError(b, err)\n\t\tb.StartTimer()\n\t}\n}\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/gnolang/tx-indexer/storage/pebble\ncpu: AMD Ryzen 5 5600X 6-Core Processor\nBenchmarkPebbleWrites\nBenchmarkPebbleWrites-12 \t 1316\t 928941 ns/op\t 33 B/op\t 0 allocs/op\nPASS\nok \tgithub.com/gnolang/tx-indexer/storage/pebble\t1.384s\n```\n\n#### New\n\n```go!\nfunc BenchmarkPebbleWrites(b *testing.B) {\n\tstore, err := NewPebble(b.TempDir())\n\trequire.NoError(b, err)\n\tdefer store.Close()\n\n\tpairs := generateRandomBlocks(b, b.N)\n\n\tbatch := store.WriteBatch()\n\n\tb.ResetTimer()\n\tfor _, v := range pairs {\n\t\terr := batch.SetBlock(v)\n\n\t\tb.StopTimer()\n\t\trequire.NoError(b, err)\n\t\tb.StartTimer()\n\t}\n\n\terr = batch.Commit()\n\n\tb.StopTimer()\n\trequire.NoError(b, err)\n\tb.StartTimer()\n}\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/gnolang/tx-indexer/storage\ncpu: AMD Ryzen 5 5600X 6-Core Processor\nBenchmarkPebbleWrites\nBenchmarkPebbleWrites-12 249462 4730 ns/op 1704 B/op 43 allocs/op\nPASS\nok github.com/gnolang/tx-indexer/storage 4.669s\n```\n\n## Conclusion\n\nIf you find out this interesting and want to have a deeper look about [how it is done](https://github.com/gnolang/tx-indexer/tree/main/storage), or just try our indexer, it is as simple as ramping up a docker image:\n\n```\ndocker run -it -p 8546:8546 ghcr.io/gnolang/tx-indexer:latest start -remote http://test3.gno.land:36657\n```\n\nAnd start playing with it through its GraphQL interface at `http://localhost:8546/graphql`\n","2024-05-10T13:37:00Z","ajnavarro","blog,post,tx-indexer,dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IXrfxRXZiRHiRKcmwTCSGBU3Fc5ZbZQA+RHhHJyIa8hRTgIAgvG17PDiAaQyHeWRff9I8e6JHXqd0xyTGzmYAw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-1","The More You Gno: Gno.land Monthly Updates","\n\nWe made progress across the board at Gno.land last month, from onboarding more devs to receiving an influx of contributions to the Game of Realms contest. To encourage development and discourse, we set up a biweekly public developer call in addition to our biweekly Office Hours sessions. Anyone can join, ask questions, and give their suggestions on how to shape the Gno.land platform and become a contributor. Last month, we covered several pressing topics from Gno IDE and Gno.land website language, to GnoVM, IBC, and ICS. Jae also came back to the circuit in March with two IRL workshops for devs at side events during EthDenver and Game Developer Conference (GDC) in San Francisco.\n\n## Developer Updates\n\nYou can find the live streams of the new biweekly public developer calls on [Gno.land YouTube](https://www.youtube.com/@_gnoland/videos) as well as access the agendas on [GitHub](https://github.com/gnolang/meetings/blob/main/notes/2023_03_15_dev_call_notes.md). The main talking points this month were Gno IDE, Gno.land website language and UX, garbage collection, bug fixes, and how to bring IBC and ICS to the platform. We are working on all these issues concurrently but the order of release will be Gno.land mainnet, IBC, and then ICS (this is reflected in the DAG below).\n\n[![Gno.land mini DAG](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/mini-dag.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/mini-dag.png)\n\n## Gno.land Website Language\n\nWe want to add more features for developers, such as libraries to make writing interfaces better and more consistent. There is an open topic for frontend developers with typography skills and library developers to create a UI framework for markdown or a custom rendering system.\n\nInternally, our core team is working on improvements to Gno.land’s website, making it easier to navigate with shorter columns while ensuring the text is markdown centric and readable in plain text and the GitHub rendering machine. We hope to achieve this using CSS and having classes for vertical columns, without having to make an extension to the markdown parser.\n\n## Gno IDE\n\nGno.land developer experience team is working on a web-based Gno IDE for quickly building Gno realms and packages right on your browser by just visiting a web app. Gno IDE will provide much improved UX for everything around building a realm (including making the testing easier), and additional features like autocompletion in the editor. Gno IDE will contain all the features you would expect from an IDE as well as valuable APIs for devs building tools around Gno.land with the public Gno Infrastructure.\n\n[![Gno IDE](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/gno-ide.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/gno-ide.png)\n\nGno IDE will have multiple modes to support different use cases. The normal mode will be used during everyday developments (as you’re familiar with from other code editors). The presentation mode is for high accessibility and readability. You can use it during video calls or physical workshops while projecting your screen to an audience. The third and perhaps most interesting mode is the embedded mode. Use this mode to embed the IDE into websites and blogs. This feature is especially useful for tutorials to test out sample code, run it on the real testnets, and play with it.\n\n## IBC and ICS\n\nAs depicted in the DAG above, Gno.land mainnet will launch first, followed by IBC and then ICS. We will focus on implementing IBC1, as we strongly believe in the ICS model and want to be a consumer of an existing Cosmos chain. We want a common ICS implementation that works across many hubs because Gno.land is a type of hub that will need its own ICS to scale while providing GnoVM on consumer chains on the Cosmos Hub. Our next step now is to find the best way to configure ICS for Gno.land and make GnoVM available as a consumer chain in the Cosmos Hub system.\n\nRegarding IBC, we will use the current implementation that was written for the Cosmos SDK and port that over to Tendermint2. We anticipate some issues along the way including security patches that need to be applied to our code base. There are multiple ongoing directions and discussions about how to bridge Gno.land’s smart contracts to IBC, which are essentially Interchain smart contract interactions.\n\nOne possibility is to have an API that submits events to a queue of outgoing events, and another queue to receive and consume events asynchronously. This mechanism could work for IBC2 to have rich inter-contract Interchain features, and the same API could work for Interchain plus smart contract interactions that require advanced options. We discussed a proposal to create a standard for Interchain contracts so that IBC2 could eventually be standardized eliminating limitations by applying it with an EVM, other languages, and CosmWasm.\n\nThis protocol could be based on Protobuf or a similar well-known syntax definition protocol so that we can push the Interchain to the next level. IBC2 will be safe and fast and replace vulnerable atomic bridges between multiple technologies. This is a major update that we are committed to developing and we need help identifying all the challenges involved. Working on IBC integration, separate from the Gno.land mainnet launch, will require significant time to understand how the light client system works. If you’re interested in taking on this task, let us know and we’ll set up a group. IBC will likely be the most important challenge of Game of Realms phase 2.\n\n## Garbage Collection\n\nCurrently, our work on garbage collection does not address the problem in the traditional Golang sense of dealing with memory efficiency. Instead, we are progressively optimizing and improving the main state tree by automating the clean-up of orphan nodes. The next phase will be targeting the official garbage collector component to begin work on memory management as we have some common Golang garbage collection challenges, but are identifying some uncommon ones too.\n\nWe need to consider elements like where to hold our objects because this is tied to releasing them in a concurrent lock-free way. We also need a good data structure. This is ongoing research as of now to implement a dedicated routine to synchronously clean stuff in a non-blocking way.\n\n## Game of Realms\n\nThis month, we have seen a massive uptick in contributions to Game of Realms phase one with a tidal wave of issues, general discussions, and PRs. One of the biggest things we worked on was adding support for MOD, which is a version of Go mod with an easier interface to manage your dependencies and version your dependencies. You can track the ongoing issue on GitHub [here](https://github.com/gnolang/gno/issues/390).\n\nThere have been some really strong contributions to the Evaluation DAO and governance module, as well as a big CLI refactor that went into our code base. We've also seen people contribute contracts like GRC 1155 or general improvements to existing realms, with many suggestions for fixing bugs. Finding bugs and reporting what people want is a good indication that the Gno.land platform is being picked up and gaining adoption.\n\nYou can find the Office Hours recordings that cover Game of Realms on YouTube [here](https://www.youtube.com/watch?v=JTmNg-b6Lcs).\n\n## Developer Events Stateside\n\nGno.land hosted a lively meetup during EthDenver last month where Gno.land founder and core dev Jae Kwon gave a talk for Solidity developers called “Gno.land, the Inevitable Next Generation Smart Contract Platform.\" He compared and contrasted Gno.land and Gnolang to Solidity, and showed Ethereum developers how the GnoVM shifts the smart contract paradigm. You can watch the [recording here](https://www.youtube.com/watch?v=IJ0xel8lr4c).\n\nAlso in March, Jae hosted a gaming workshop at a side event during the infamous Gaming Developer Conference (GDC) in San Francisco. “Gno.land for Game Developers, Building Your App in Web3,\" showed participants a sample gaming app built on the Gno.land platform and offered them the chance to try their hand at writing a smart contract for their app with Gno.\n\n## Virtual Events - How to Build a Forum\n\nCore tech lead at Gno.land Miloš Živković held a virtual workshop for Go devs called “How to Build a Forum.” He showed how Gnolang is a fast and simple way to build and launch smart contracts using the Gnolang interpreter virtual machine that interprets Gno and eliminates the need for any servers or ORNs.\n\nThe VM allows for the memory state of your Gno.land application to persist automatically after every transactional function call, which is a completely new way to handle transaction volume and memory recall. You can watch the [full tutorial here](https://github.com/gnolang/workshops).\n\n*We’d like the community to get involved in Gno.land’s monthly updates, so if you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-04-15T13:37:00Z","christina","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kzZs16VxYhpipC2OOP0GJePxzr/ckvlb0j/n+vtoM2mLK7vpkyj+A70TLflV56m/x82t6/bvLyvjUxUTKsNRBw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-10","The More You Gno 10: Test4 is Live!","\n\nThis edition focuses on Test4, a major milestone towards our mainnet. Test4 is the first true multinode testnet featuring DAOs and on-chain governance, offering a preview of what’s to come. Much excitement, such wow.\n\nWe document everything in our weekly engineering updates and video recordings.\n\n# Gno Core Updates\n\n## Test4 is Live\n\nWith 7 validator nodes running and 3 more about to be added via on-chain governance, Test4 is the first multinode testnet that has the complexity and the feature set we want for the gno.land mainnet. Find out more about it in [this article](https://www.gno.land/r/gnoland/blog:p/test4-live).\n\n## Changelog\n\n- Gnoweb live\n- RPC live\n- TX indexer available\n- Test4 faucet added to the [Faucet Hub](https://faucet.gno.land/)\n- Merged in [Gno type check](https://github.com/gnolang/gno/pull/1426) support, resolving the long-standing issue with Gnolang's type checking on a VM level, making it more stable for development.\n- Added support for [transpiling gno standard libraries](https://github.com/gnolang/gno/pull/1695), as part of a bigger effort to stabilize the GnoVM with native binding support (which was added a while back). The Gno transpiler now uses Gno's standard libraries instead of Go's. This also eliminates the need for things like `stdshim` and an std whitelist.\n- [Continued to improve upon v1 of the GOVDAO implementation](https://github.com/gnolang/gno/pull/2379), with additional improvements coming later this week ahead of test4. We want to launch with a minimal govdao implementation for test4, which will be centralized in the beginning. We will use the govdao mechanism for managing on-chain validator sets.\n- [Embraced JSON output](https://github.com/gnolang/gno/pull/2393) as standard for configuration and secrets fetching. DevOps engineers can rejoice; it's now super easy to read and parse node values.\n- Published [v1 of the validator documentation](https://github.com/gnolang/gno/pull/2285) ahead of the test4 launch. Having easy to understand orchestration docs is critical to easily onboarding node operators and validators. We will continue to improve upon the documentation, and have more use-cases and examples for orchestration.\n- [Improved the performance](https://github.com/gnolang/gno/pull/2140) of `for` loops and `if` statements. The performance almost doubled for these super-common Gno statements.\n- [Migrated](https://github.com/gnolang/gno/pull/2424) the `libtm` (Tendermint consensus engine) implementation to the monorepo. You can check it out [here](https://github.com/gnolang/gno/tree/master/tm2/pkg/libtm). We plan to adopt this engine implementation in TM2, shortly after the test4 launch. The blog post is coming soon on the official Gno blog.\n\n# Events and Meetups\n\n## Past events\n\n### GopherCon US \n\nWe sponsored and attended GopherCon US - full recap [here](https://gno.land/r/gnoland/blog:p/discover-gno-gc24). We participated in the [Challenge series](https://www.gophercon.com/agenda/session/1281366), held a [workshop on building a decentralized app](https://www.youtube.com/watch?v=lwL2VyjaV-A), and had a lot of great conversations on the hallway track. We also set up a [raffle realm](https://gno.land/r/gc24/raffle) - Gophers we able to join the raffle using the Adena wallet, Gno Playground and Connect. You'll see the snippets of the atmosphere in [the promo video](https://x.com/_gnoland/status/1811438404800057560) we put together.\n\n### Nebular Summit\n\nWe had a great time in Brussels at the Nebular Summit. Manfred was on the agenda with a lightning talk, and the core team held a workshop. Catch a part of the event atmosphere [in this video](https://x.com/_gnoland/status/1812867888501477470).\n\n## Upcoming events\n\n## Discord Developer Office Hours\n\nEvery Thursday at 2:30 pm CEST, we host office hours on [Discord](https://discord.com/invite/d24CT5b9cd?event=1252310282450112595). Join us to get your questions answered, discuss updates, and catch up with the community. We'd love to see you there!","2024-07-22T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm,tm2,test4,gnostudio,connect"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"et1cEbOuqru0ZpvQ/LbjyXYMh+SM8Y/tTrxPtP9zuSaFXYM3zB/BZr/C7aucD2LGAC06oyh/DqB3HMiMjEu7Dg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-11","The More You Gno 11: Introducing `gnobro`","\n\nAs we're gearing up toward the mainnet launch, we haven't forgotten to give some love to minor features that makes everyone's lives easier. This time the spotlight's on **gnobro**.\n\n# Gno Core Updates\n\n## `gnobro` is Live\n\nWhat's `gnobro`, you say? Simply put, it's a terminal based realm browser you can use to explore realms and improve the development experience on 'gnodev'. [See it in action](https://github.com/gnolang/gno/pull/2608).\n\n## Changelog\n\n- We've updated the release CI and [fixed issues](https://github.com/gnolang/gno/pull/2686) with `go-releaser`. Now all of the tools in the monorepo are released properly, with accompanying artifacts. \n- Added support for smooth `.md` file rendering in `gnoweb`, ahead of our plans to work on gnoweb 2.0. This allows packages that have READMEs and other documentation to render easily in gnoweb.\n- Slew of GnoVM fixes, increasing stability\n - [Type comparison fix](https://github.com/gnolang/gno/pull/1890)\n - [Cyclic references in type declarations](https://github.com/gnolang/gno/pull/2081)\n - [Handling non-call expression valuedecl values](https://github.com/gnolang/gno/pull/2647)\n - And more pending reviews!\n- We've added back [coverage support (CodeCov) for txtar tests](https://github.com/gnolang/gno/pull/2377), which make up a majority of our integration testing suite. The txtar tests for the `gnovm` package added an additional 5% coverage. We are currently assessing other packages that suffer from bad txtar coverage.\n- We've added [support for more robust stack traces for Gno-code panics](https://github.com/gnolang/gno/pull/2145), providing a much better UX for the developer. You no longer need to dig through a 5k line log output to figure out what panicked in your Gno code; you'll see the exception stack trace instead.\n- [Variable config command help output is drastically improved](https://github.com/gnolang/gno/pull/2399). In the past you'd need to know exactly what the configuration looks like before modifying or viewing the values. Now these values are conveniently present in the command help output.\n- Last, but not least: let's welcome our new R\u0026D Go Engineer, [Antoine](https://github.com/aeddi). He'll help us scale core components for gno and beyond!\n\n# Events and Meetups\n\n## Past events\n\n### BUIDL With Cosmos / Web3 Summit, Germany\n\nWe've had a couple of cool talks in Berlin: [An Introduction to gno.land](https://www.youtube.com/watch?v=hTGeG0z09NU) by Leon Hudak and [Building the Interchain of Ecosystems](https://youtu.be/nhpqaQxcIUY) by Tobias Schwartz.\n\n### Web3 Kamp\n\nWeb3 Kamp is a 9-day intensive camp held anually in Serbia, focusing on getting students involved in Web3. Check out this [X thread](https://x.com/_gnoland/status/1828443842221080778) for the highligh of our involvement.","2024-09-02T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm,gnobro"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"27eJ/yUL5/lYXGMsnvQSY6BvWA8J0S8MmifkLgMt5WiFbzpB5qzXE7ltgE+2/IC7nspG0ZTYK3ggzveV8VdTCw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-12","The More You Gno 12: Gno Bounties","\n\nWelcome to the 12th edition of The More You Gno! This month's highlight is our bounty program; solve an interesting challenge in Gno, get paid.\n\n## Gno Bounties\n\nHere's how our bounty program works. We've [labelled issues in our repo](https://github.com/gnolang/gno/labels/bounty) that are eligible for the bounty program. \n\n1. Find a bounty you want to work on\n2. Submit a draft PR\n3. Ask questions and get feedback early\n\nBounties are sorted by t-shirt sizes, ranging from $500 to $32,000 USD.\n\nFind out more [here](https://gno.land/contribute).\n\n## Introducing Gnoverse\n\nOne of the gno.land tenets is censorship resistance. For that, we need greater decentralization. That's why we're opening [Gnoverse](https://github.com/gnoverse), a new GitHub organization dedicated to community-driven projects, as well as other minot projects not critical to the gno.land infrastructure.\n\nContributors will be able to experiment with Gno related ideas and projects, collaborating without interference and oversight from the core engineering team.\n\nWe've migrated a dozen repos from [Gnolang](https://github.com/gnolang) to [Gnoverse](https://github.com/gnoverse). Whether you're a developer, designer, or just passionate about Gno, your input is invaluable. Feel free to submit pull requests, suggest ideas, or simply join the conversation.\n\n# Gno Core Updates\n\nThe engineering team got together in Turin, Italy, to work through the details of the upcoming main.gno.land launch. We are almost ready to talk about this publicly, but you can hear some spoilers on the [video snippets](https://x.com/_gnoland/status/1844779439160213861) we caught.\n\n## Changelog\n\n- [Fixed repo-level benchmark workflows](https://github.com/gnolang/gno/pull/2716), for easier performance regression monitoring. Viewable [here](https://gnolang.github.io/benchmarks/). This allows us to identify how individual PRs affect performance.\n- vel benchmark workflows, for easier performance regression monitoring. Viewable here.\nImpact: We can now track on individual PRs if there is a performance regression, and monitor long-term performance.\n- [Valid type comparisons for bools](https://github.com/gnolang/gno/pull/2725).\n- [GnoVM slice memory allocation order fix](https://github.com/gnolang/gno/pull/2781).\n- [Value declaration loop fix](https://github.com/gnolang/gno/pull/2074).\n- [Support `len` and `cap` on an array pointer](https://github.com/gnolang/gno/pull/2709) .\n\n# Events and Meetups\n\n## Past events\n\n### gno.land Contributor Tech Discussions\n\nWe've revamped the contributor calls to showcase the cool stuff being built on our platform, and have technical discussions on the challenges we face. The [1st video is out](https://www.youtube.com/watch?v=4YUOTt5bDJc), and new ones will be published every two weeks.\n\n### Go Meetup - Turin, Italy\n\nDuring our engineering retreat in Turin, we took the opportunity to connect with the local Go community and hold a gno.land workshop. Our very own Morgan Bazalgette walked the attendees through the gno.land project, followed by a live coding session where Morgan built a simple messaging board. See the video [here](https://youtu.be/b3zRbVcJxyE).\n\n## Upcoming events\n\n### Devcon 2024 - Bangkok, Thailand\n\nThis year's Devcon is slated for November 12-14 in Bangkok. Several team members and contributors will be there, and we're looking forward to hanging out and talking shop. If your schedule is tight, don't hesitate to reach out and arrange a meeting!\n","2024-10-17T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JY0iWJN/yiZg6FtSDlPdbi2tID2Q/DLO+qZgLDRBGTfkpr+tPKt9sINYuOrHfsYFnlvMGfE4zVvCAxFBJ8+oAw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-13","The More You Gno 13: Test5, gnoverse and more","\n\nThis edition of \"The More You Gno\" is packed with updates and highlights. Test5 testnet was launched; a new community space called `gnoverse` is now available. The mainnet launch milestone is up and the development is speeding up. It's an exciting time to be a part of the gno.land project.\n\n## Test5 is live\n\nOn November 13 we launched Test5, a new iteration of the multinode testnet. The validator set has been expanded from 7 to 17 nodes, plus a number of non-validator nodes. It also boasts GovDAO v2 that expands the on-chain voting capabilities, and a number of fixes and quality of life improvements for the developers. \n\nTest5 is already available on Adena and the Faucet Hub, so feel free to give it a try.\n\n## Introducing gnoverse\n\nLaunched two weeks ago, [gnoverse](https://github.com/gnoverse) serves as a collaborative hub for experimental and innovative projects inspired by the gno.land ecosystem. It’s a space for incubating ideas and exploring the full potential of Gno.\n\nThis GitHub space maintains a strong connection with the [gnolang](https://github.com/gnolang) community, fostering collaboration and resource sharing among developers and enthusiasts. Our goal is to support and highlight projects that enhance the gno.land experience, and to be much more hands-off in the process.\n\nWe value community contributions! Whether you’re a developer, designer, or simply enthusiastic about Gno, your input matters. Join us by submitting pull requests, sharing ideas, or engaging in discussions. If you need a new repo for your project, we'd be happy to oblige.\n\n## Mainnet launch\n\nWhile we're getting an official announcement ready, take a sneak peek at the [gno.land mainnet launch milestone](https://github.com/gnolang/gno/milestone/7) on GitHub. The scope has been finalized for the most part, and our engineering teams are covering a lot of ground. We'll most likely launch at least one more testnet between now and the mainnet launch, so stay tuned.\n\n### Changelog\n\nAll the cool stuff we've done, outlined as bullet points:\n- [for loops maintain the same block on iteration, which is referenced in any closures generated within](https://github.com/gnolang/gno/issues/1135)\n - [feat(gnovm): handle loop variables](https://github.com/gnolang/gno/pull/2429)\n- [Running gno test causes a panic when struct variables are redeclared in loops](https://github.com/gnolang/gno/issues/3013)\n - [fix(gnovm): fix issue with locally re-definition](https://github.com/gnolang/gno/pull/3014)\n- [feedback needed: how are you using gnoland genesis ...?](https://github.com/gnolang/gno/issues/2824)\n - [chore: move gnoland genesis to contribs/gnogenesis](https://github.com/gnolang/gno/pull/3041)\n- [feat: r/gov/dao v2](https://github.com/gnolang/gno/pull/2581)\n- [Test4 re-release](https://github.com/gnolang/gno/issues/3060)\n- [Test5 release](https://github.com/gnolang/gno/issues/3061)\n - [feat: add initial test5.gno.land deployment](https://github.com/gnolang/gno/pull/3092)\n- [Proposal: Implementing Versioning Across Application Serialization Structures](https://github.com/gnolang/gno/issues/1838)\n- [Running go vet on the project fails](https://github.com/gnolang/gno/issues/2954)\n - [fix(tm2): rename methods to avoid conflicts with (un)marshaler interfaces](https://github.com/gnolang/gno/pull/3000)\n- [Fix println DoS vector](https://github.com/gnolang/gno/issues/3075)\n - [fix(gnovm): don't print to stdout by default](https://github.com/gnolang/gno/pull/3076)\n- [Add r/sys/params + params genesis support](https://github.com/gnolang/gno/pull/3003)\n- [Support metadata for genesis txs](https://github.com/gnolang/gno/pull/2941)\n- [Setup \"nice\" stale PRs' bot](https://github.com/gnolang/gno/issues/1445)\n - [ci: add a stale bot for PRs](https://github.com/gnolang/gno/pull/2804)\n- [feat: add contribs/gnomigrate](https://github.com/gnolang/gno/pull/3063)\n- [chore: update tx-archive in portal loop](https://github.com/gnolang/gno/pull/3064)\n\n## Events and Meetups\n\n[4th episode](https://youtu.be/hRZ7iU4bovM?si=2tOUeuIyiSWxELGv) of the Contributor Technical Discussions is out! Watch the rest [here](https://www.youtube.com/playlist?list=PL7nP7r1QiDktMCdw1ydQo2crM3y6Zk7E4).","2024-11-21T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BSZm8ds677OTZ8TiBYM5ejL536eqSSkR6euxjZ7M9zLXF80lzcrGE3kGzIFiDAsfSjH6bh4WRkAYql/DAGnFAw=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1732193323"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-2","The More You Gno: Gno.land Monthly Updates - 2","\n\nOver the past few weeks, our core devs and ecosystem contributors have been making massive strides on Gno.land. There’s a lot to cover in the second edition of *The More You Gno*, from updates on Tendermint2 and GnoVM to stack/frames management, Gno IDE, and plenty more. We’ll also see what some of the external teams contributing to the platform have been up to, including Gno.land’s first decentralized exchange, GnoSwap, and Adena compatibility with GRC20 tokens. Check it out.\n\n## Tendermint2\n\nWe’re making steady development progress on Tendermint2, which focuses on simplicity of design, minimal code, minimal dependencies, modular dependencies, and completeness. For the time being, Tendermint2 will stay in the main repo in a top-level folder named Tendermint2. This is the official location to develop and improve the consensus protocol until it is stable enough to be extracted from the Gno repo and become a standalone project. Currently, Tendermint2 depends on GnoVM, however, we are working to unlink this dependency and build a basic demo Tendermint2 chain and Client.\n\nTendermint2 JS/TS Client is a JavaScript/TypeScript client implementation for Tendermint2-based chains. The client will make it easier for developers to interact with Tendermint2 chains, with a simplified API for account and transaction management, removing a ton of manual work and allowing developers to focus on building their dApps. You can [read more about the client here](https://www.npmjs.com/package/@gnolang/tm2-js-client). In addition to the Tendermint2 JS/TS client, we also created a Gno JS/TS client that just extends the TM2 one to provide Gno-specific functionality. You can read more about this here.\n\n## Game of Realms\n\nThe incentivized competition to find the best contributors to Gno.land continues in phase one, with slow but steady progress being made. Nir1218 initiated an Evaluation DAO Kickoff discussion in [issue 792](https://github.com/gnolang/gno/pull/792) to initiate testing code for the key smart contract infrastructure that will power the Gno.land platform. We are also interviewing architects for the core team with experience in governance modules and creating new economies on-chain, and a new DevRel team member will be joining us soon to create awesome tutorials and documentation to advance Game of Realms further. Gno.land must be built by the community and we will not rush to push Game of Realms to the second phase until we have found quality contributors to complete the challenge tasks and become the platform’s first founding members.\n\n## Gno IDE\n\nOur core development team is working on a web-based IDE for Gno.land that will greatly improve the developer experience, allowing builders to quickly spin up Gno realms and packages right on their browsers just by visiting a web app. Currently named Gno IDE but with a rebranding on the horizon, this intuitive product focuses on ease of use and improved UX, and will include all the features you’d expect from an IDE, such as auto compilation in the editor, debugging, extensive testing capability, and powerful APIs like IntelliJ to supercharge your programming.\n\nGno IDE currently has multiple modes to support different use cases, including a normal mode for everyday programming, similar to a standard code editor, a presentation mode for video calls or screen sharing, and an embedded mode to extend functionality, allowing you to embed the IDE directly into websites and blogs. You can also choose to edit your code in Emacs or Vim and easily switch between steps, from previous to next, making creating your tutorials and blog posts more intuitive. Watch out for more to come on Gno IDE soon, and if you want to contribute by creating a plugin for your favorite editor, open a PR to win contribution points.\n\n## Stack/Frames Management\n\nThe stack/frames is an integral part of the virtual machine (VM) and the language. Stack/frames provide context for smart contract developers, enabling them to access useful information, such as the original caller, or to determine if a contract is being called through another one. The current implementation is limited in scope and relies on fixed positions in the stack which can lead to inconsistencies.\n\nThere is an ongoing [issue 683 open here](https://github.com/gnolang/gno/issues/683) and we have continued to work on enhancing stack/frames development over the last month. We’re adding a new function in the standard library std.PrevRealm (previously GetRealmCaller). Currently, we only have GetOrigCaller, which returns the user calling the first realm. This is not secure and we need a way to call the previous caller. This will allow a realm to handle GRC20 treasuries. See [issue 667](https://github.com/gnolang/gno/pull/667) and [issue 634](https://github.com/gnolang/gno/issues/634) for further details.\n\n## Dealing with Panics in Native Functions\n\nWe have devised a solution for dealing with panics in native functions, [see pull request 732](https://github.com/gnolang/gno/pull/732). Previously, when there was a panic in a native function, we could not recover it in Gno code. An example of this was the assert origin call, which panicked if the call was not a direct call from a transaction. Based on discussions with contributors, we’ve agreed that native functions should never panic, but if they panic, they panic with machined Gno panic. This gives us the choice in a native function to code a Gno panic, or, if it's a very bad panic, use Go panic so that we know the Gno code is unable to recover it.\n\n## Logic Upgrading\n\nMaking it possible to upgrade your logic is definitely out of scope for the first version of Gno.land, however, it’s an important issue that we have begun to discuss so that we can place certain restrictions on it, such as allowing upgrades when we consider them safe enough to be compatible with imports. Another idea is to work on creating workflows where migrations become something official. This way, we could define ways to migrate a contract completely in a single transaction at the chain level. Once everything is working and approved as the previous contract is parsed or archived, the new one gets the data. We will revisit this topic after the first version of Gno.land reaches the mainnet.\n\n## Garbage Collection\n\nIn terms of garbage collection, we don’t have memory leaks as such but we do have defacto memory leaks. By the VM having references to all objects, they won’t be released by Go’s underlying GC. We have some form of reference counting but it is only done at the end of a transaction. We have implemented a mark-and-sweep garbage collector and are working on the VM runtime to manage the objects and signal to the garbage collector to release them when they are no longer needed. This is done by adding the notion of a heap, which is managed by the garbage collector.\n\n## GnoVM\n\nDeveloping GnoVM is an ongoing task and we will likely need to fork the GnoVM to create different competing versions. GnoVM will be complete, limited in features, and serve as the only interpreter, an enduring reference point over time. Future versions of GnoVM will be designed to incorporate CosmWasm so that all Cosmos chains can have CosmWasm enabled and the VM can run directly on the browser and execute tasks on the browser without requiring to make an API call, making it faster. To do this, we can make a Gno compiler in WebAssembly without changing the code because Go supports WASM cross-compilation.\n\nWe plan on making a competing version of the original minimalist GnoVM, such as a Rust version with a JIT compiler using LLVM as a backend.\n\n## Ecosystem Updates\n\nSince our last update, the Gno.land community continues to expand with awesome teams and contributors building cool infrastructure and projects on the platform. Below, we take a look at the largest developments of the past few weeks and extend a special thanks to everyone helping us build Gno.land.\n\n## Teritori\n\nTeritori blockchain and multi-chain hub launched in November 2022, allowing IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. Teritori’s idea for building on Gno.land is to create a multi-chain experience for users with a web portal, NFT marketplace, and social feed that will grow the community, and gradually integrate smart contracts and realms. This will promote Gno.land to more developers and showcase all the dApps being built through an easy-to-navigate dApp store. In the coming weeks, Teritori will work with the Onbloc team to integrate the Athena wallet into their portal as well as discuss ideas for promoting Game of Realms to new developers.\n\n## Onbloc\n\nOnbloc is one of the Gno.land ecosystem’s most active contributors, responsible for building the Adena wallet and the block explorer Gnoscan. The team has also been working on creating an official Gno SDK that will allow developers to interact with Gno.land more easily, and remove some of the current friction. Onbloc opened [issue 701](https://github.com/gnolang/gno/issues/701) on GitHub primarily for developers who either have their own web app or are building a JavaScript app and want to work with Gno in some way. Currently, developers need to do a lot of manual work, which Gno SDK will abstract away, improving the workflow and developer experience. If you have any ideas or feedback, please contribute to the aforementioned issue.\n\nIn another cool development, Onbloc has rolled out a new feature in Adena and Gnoscan to provide support for GRC20 tokens. To store and send tokens, you can open your Adena wallet, click on \"Manage Tokens”, navigate to the Custom Token page, and see which GRC20 tokens are available on Gno Testnet 3, searching by the symbol or path. To research on or discover tokens, head over to the Tokens page on Gnoscan for a full list of GRC20 tokens. You can click on any token on the list for detailed information, such as the total supply, owner, or other available functions built into the token. The Account Details page has also been updated to display all tokens owned by each address. You can help by checking out [issue 764](https://github.com/gnolang/gno/pull/764), which discusses adding bigint to support a wide range of numbers and encoding binary, and [issue 816](https://github.com/gnolang/gno/pull/816), which highlights a small bug the team runs into when coding.\n\nOnbloc has also created a new [token resource page on GitHub](http://github.com/onbloc/gnotokenresources) for anyone to share or upload resources associated with their Gno.land project. This will serve as a shared knowledge pool about any dApp on the platform. If you wanted to create a decentralized exchange, for example, you would need all the information about the tokens available on Gno.land, such as their images, symbols, descriptions, links to websites, etc. Now you can find this in one handy GitHub repository. If you’re a developer or builder who wants your logo or any other static data posted, be sure to submit a PR.\n\nAnd speaking of decentralized exchanges, Onbloc is also building Gnoswap, the first DEX to be powered by Gno.land, designed to simplify the concentrated liquidity experience and increase capital efficiency for traders. Its interface is built using TypeScript to be user-friendly, secure, and accessible for streamlining complex mechanisms such as price range configurations and staking as part of its core service. Contribute to its interface [here](https://github.com/gnoswap-labs/gnoswap-interface).\n\nAs for the contract side, Onbloc is actively working on its development with help from the core members of Gno.land. The code will be open-sourced for full transparency once the basic functions are ready.\n\n## New Core Contributors\n\nWe’re excited to welcome two new core team members, Antonio and Zack. Antonio joined us in April in the core team, bringing with him vast experience in IPFS, and writing Git servers in Go. Zack is our first “tinkerer in residence” and will try to bootstrap the ecosystem of small contracts and small libraries. He will also be writing apps and helping us design a system to better share and showcase our work with a super UX for team builders and open-source addicts.\n\nAntonio is already hard at work researching a benchmarking dashboard that will show performance improvements or regressions when we change the code. He’s assessing whether to use GiHub to track actions or run our own machine to execute GitHub actions. Take a peek at his research so far on [issue 783 here](https://github.com/gnolang/gno/pull/783).\n\nZack is working on a microblog project. As an experienced web2 Go programmer, Zack is transitioning to web3. Since he’s interested in incentivized social networks, the microblog project will be his first realm, as a Twitter-style blog without titles, where each user has their own page based on their address. Check out [issue 391](https://github.com/gnolang/gno/pull/391) for more details.\n\n## Developer Events\n\nOver the past few weeks, our core devs have been mainly focused on building but they’re preparing to speak at some exciting events in the coming months. Catch up with Manfred at BUIDL Asia, in Seoul, South Korea, from June 5 - 9. We’re co-hosting a side event with Onbloc, Code States, and Cosmostation on June 5, so be sure to register if you’re in town! We’ll also be at EthBelgrade in Serbia from June 2 - 4, and GopherCon in Berlin from June 26 - 29, so stop by and say hello.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-05-26T13:37:00Z","christina","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1RMsBVJfwYiJvTBNaQJ06uEqKBqa958vHT0k8HJMXnIgTBfgGv47X7Z/jwmrEaY2WAJJnZMbpDOfziAWS91gBQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-07-11T13:37:00Z","christina","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iWzeFKJ1FOHatG9J0fcktJbyBM73sKO5VAmwEMetlHLI4DxNj1jFOLWe0pbT4UmKwy3AlsljwR5yRu5vl3ewBQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","2023-09-04T13:37:00Z","christina","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UEozCSmwRr+MfJ0B8u27Cm4/+/6BI1KasXqKYKT1sxEauZrDyRsKv5R9hRrBiJ9TkAJ53+MUm/6ESFwiw421Cw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Gx9tXcNrMfuBQ7e4O2z3xllRFFdFhbu1yzq+vG1PnDqVCGLVjaZhyZUs2Zlv3BfNJQzFEiQrdHaCPUqZPNxAw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mGVIHya3cgu8fDvOW0r+vS5pE6OvpFsbzuB77GcPJyzWfvhUJLu1OmKrOtnOTcwWsTN3Euk1hIf+GjmPlK00Ag=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RPcXclgrGsl6GCo30h7sNVhEN9VkttDrfCO0mZsb7RZQsXS6l6PcCqXFPNbVQq27aSsLA3sxelBjvwK0cHgkCw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nYPfK3wg+VSJ+2BsGLlghulsZAzJW8hRjW6266nHZAIlsqbJGrBzrtSM2lGayeS9pmESE7ESKFeSpvyErMcqAQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-8","The More You Gno 8: Portal Loop, Test4 and More","\n\nWelcome to the 8th installment of The More You Gno. Because we have a lot of great updates, we're experimenting with a different article format that's cleaner and more to the point.\n\nIf you want to dive deeper, we have the weekly engineering [updates](https://github.com/gnolang/meetings/issues/37) and video [recordings](https://www.youtube.com/watch?v=9ch7MhKNBmw\u0026list=PL7nP7r1QiDktMCdw1ydQo2crM3y6Zk7E4) available. \n\n## Gno Core Updates\n\nThis edition is packed with great updates, but the most important ones are the launch of the Portal Loop testnet, and the announcement of the next milestone on the road to mainnet - Test4.\n\n### Test4 Milestone is Live\n\nThe next major milestone on our road to mainnet is Test4. This testnet will have several important improvements:\n\n- Multinode capability\n- Rolling release of testnet binaries\n- No resets\n\nThe initial validator set will be comprised of the most prolific contributors and All-in-Bits teams. We're aiming to launch Test4 in July, and with 32% of the milestone complete, our confidence in the launch date is high.\n\nThe entire milestone can be seen [here](https://github.com/gnolang/gno/milestone/4).\n\n### Portal Loop is Live\n\nPortal Loop is an always-up-to-date staging testnet that allows for using the latest version of Gno, Gno.land, and TM2. It can run the latest code from the master branch on the Gno monorepo, while preserving most/all the previous the transaction data. \n\nFind out more about the Portal Loop in the [documentation](https://docs.gno.land/concepts/portal-loop/).\n\nWe've also enabled the [gno.land faucet](https://gno.land/faucet) to receive testnet funds for Portal Loop.\n\n### Gno Playground now supports multiple networks\n\nWith Portal Loop live and Test4 coming, it made more and more sense to be able to use Gno Playground on other networks. That's why we've added support for not just Test3 and Portal Loop, but also any custom network you might want to spin up.\n\nThe network selection dropdown is in [Gno Playground](https://play.gno.land/) at the top right. You'll also find there an option to add your own custom network. \n\n### Changelog\n\nWe've also done a ton of other work to make everyone's lives easier.\n\n- Docs are now searchable on [docs.gno.land](http://docs.gno.land/). No more manual searching!\n- With the help of Onbloc, our tx-indexer [just went supersonic with GraphQL](https://github.com/gnolang/tx-indexer/pull/20). Users can now have fine grained filtered GraphQL queries, which are curiously quick. This is a quantum leap in data serving for the indexer.\n- [Added support for `gnoland secrets`](https://github.com/gnolang/gno/pull/1593), part of our [larger effort](https://github.com/gnolang/gno/issues/1836) to overhaul the way Gno chains / nodes are initialized. Now users can directly manage, display and verify their node secrets, without having to rely on manual CLI magic.\n- Finally merged in [support for a non-reflect JSON parser package](https://github.com/gnolang/gno/pull/1415). Rejoice, JSON support is now provided out of the box with an easy to use Gno package, thanks to the Onbloc team.\n- Merged in support for [int256](https://github.com/gnolang/gno/pull/1848) and [uint256](https://github.com/gnolang/gno/pull/1778) packages. Since Gno does not support `big.Int` yet, these packages are a nice and much-needed replacement for large number logic.\n- [Implemented shadowing rules](https://github.com/gnolang/gno/pull/1793) in the GnoVM. This VM fix prevents packages shadowing global-level identifiers.\n- `gnodev` now [automatically reloads the gnoweb page](https://github.com/gnolang/gno/pull/1457) whenever you update the realm's code. The goal of gnodev is to make realm developers' life easier. This change further reaches that goal, creating a feedback loop for development similar to that experienced by front-end developers (ie `nodemon`).\n- Plethora of quality of life fixes and improvements, including [docs updates](https://github.com/gnolang/gno/pull/1741), [command fixes](https://github.com/gnolang/gno/pull/1716) and [conformity to the standard go tooling suite](https://github.com/gnolang/gno/pull/1407). Updates like these keep the lights running and the UX smooth for end-users.\n- [Merged in the `cford32` package](https://github.com/gnolang/gno/pull/1572) to the Gno package examples. Packages like these help the community and implementation partners in utilizing Gno effectively.\n- Cleaned up and exposed an [endpoint for querying transaction results](https://github.com/gnolang/gno/pull/1546) directly from the node. Even though our transaction indexer (standalone tool) offers many bells and whistles, having the ability to fetch transaction results on the node was the final missing piece in keeping the TM2 RPC minimal, but functional.\n- Gnodev now [supports account premines](https://github.com/gnolang/gno/pull/1938), soon to support transaction predeploys. It is also now installed out of the box with make install. This means that you can now specify an account balance to be premined when using gnodev, no clunky balance file changes required!\n- Added support for [WS clients, updated JSON-RPC batch processing](https://github.com/gnolang/gno/pull/1498). Switching all of our tools, and implementation partner tools from the HTTP client to the WS client will be a massive boost in terms of network overhead.\n- We've updated the `gnoland` (node) command [to include](https://github.com/gnolang/gno/pull/1954) the `genesis` management suite. As part of our bigger effort to overhaul the chain initialization and management flow, this was a necessary step in achieving a 2 step setup (`gnoland init` and `gnoland start`).\n- Updated the deployment flows (releases) for the vast majority of our tools (faucet, indexer, supernova, main gno binaries) using go-releaser. Now the core team can tag specific tool / repo versions and have a prepared release, with all release binaries ready to go.\n- The gnoland node [now supports telemetry](https://github.com/gnolang/gno/pull/1762), and exposes metrics out of the box. This allows the node to be tracked in time-series databases like Prometheus, and better record the health and performance of the node.\n\n## Ecosystem Updates\n\n### Onbloc\n\n* Adena wallet [v1.10.0](https://github.com/onbloc/adena-wallet/releases/tag/v1.10.0) released \n* Adena [Security Evaluation Report](https://github.com/adr-sk/adena-extension/blob/main/audits/Adena%20Security%20Evaluation%20Feb%202024.pdf) published by the AiB security team \n* Published a [short video guide](https://www.youtube.com/watch?v=TfSzp1_MaOI) on how to broadcast and sign a transaction using the AirGap Account.\n\n### Teritori\n\n- Linked the GitHub account with on-chain address. The realm allows a bot to add a public key. The bot can sign the address and GitHub ID account. This functionality permits everyone to link their account on the realm seamlessly.\n- Social feed, DAO SDK, and Moderation DAO deployed on portal loop: https://app.teritori.com/feed?network=gno-portal\n\n### Dragos\n\n- Flippando\n - Public faucet set up\n - Fixed and slightly improved the multi-chain dashboard at https://flippando.xyz\n- Zentasktic, an on-chain project management application \n - There is the Zentasktic core first complete implementation. A package containing an unopinionated implementation of the Assess-Decide-Do workflow. \n - Docs and code: https://github.com/irreverentsimplicity/zentasktic-core\n\n### Berty\n\n- In order to avoid the misconception that it's an official social dapp, GnoSocial was renamed to [dSocial](https://github.com/gnolang/dsocial)\n- Demo video of the customer journey, showcasing the updated social app UI https://www.loom.com/share/621f151459b040b0a2e6a22adf96b371\n- Building out a series of Gno Native Kit tutorials ([Episodes one and two](https://www.youtube.com/watch?v=N1HLyQDHGQ0\u0026list=PL7nP7r1QiDktseW7786wrp23ipBZFLPb6\u0026index=2))\n\n### Student Contributor Program\n\nWe've started a [program](https://github.com/gnolang/student-contributors-program) to work with student cohorts directly through their universities. The first university cohort is based in Roeun with four students currently particpating in this initiative. You can see some of the work in our hackerspace [repo](https://github.com/gnolang/hackerspace/issues/59). \n\n- Malek was cited for the 2 PRs ([ufmt multibyte](https://github.com/gnolang/gno/pull/1889) \u0026 and [todolist example V0](https://github.com/gnolang/gno/pull/1811)).\n- Malek also finished V0 of GnoFundMe, a crowdfunding example.\n- Theo made a [pull request](https://github.com/gnolang/memeland/pull/21) on issue#11 of the memeland repo. \n\n### New Content\n\nWe're regularly building out written and video tutorials and content. We recently released the '[How to build a realm using Gnodev](https://www.youtube.com/watch?v=Hp4aeRsPt3g)' video tutorial that starts with the basics of initializing a gno.mod file, creating a Gno realm, and implementing simple functions for effective realm visualization. \n\n## Events and Meetups\n\n### Past events\n\n#### Go to Gno Korea (March 23)\n\nTogether with Onbloc we hosted the Go to Gno workshop. The 8-hour session included a lecture, a builder challenge, and a networking event. 25+ developers from dev communities, Web3 startups, and the Cosmosnauts in Korea have attended the event for a hands-on experience of writing a simple app in Gno. Check out the [Onbloc's recap](https://medium.com/onbloc/go-to-gno-recap-intro-to-the-gno-stack-with-memeland-284a43d7f620) for more details and pictures.\n\n#### Gno.land Tokyo meetup (April 11)\n\nIntro to Gno session in Tokyo was held in front of 20+ developers and web3 enthusiasts. They got to hear about Gno.land, how it's developing as an ecosystem, our plans for the future, and how they could get involved. That's the TL;DR, full recap is on [our blog](https://gno.land/r/gnoland/blog:p/gno-tokyo).\n\n### Upcoming events\n\nWe've got three major events coming up\n- **GopherCon EU** / Berlin / June 17th - 20th\n- **GopherCon US** / Chicago / July 7th - 10th\n- **Nebular Summit** / Brussels / July 12th/13th\n\nIf you plan to attend any of these events, find us at our booth or on the hallway track, and let's talk!","2024-04-26T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm,tm2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CrsKoXMf9auHGyQXdaPGWRwpsxQQVWLJkr0L7IhVbim1V9/8C6Y4DD0Mux61iGwMTxIgH+XgD/Ws9Gm/4j1QAw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-9","The More You Gno 9: Realm to Realm Interaction, Faucet Hub, New Test4 Launch Date and More","\n\nThis edition brings several major pieces of news; Gno Studio Connect beta, and Faucet Hub. We're moving up the Test4 launch by 2 weeks, so we could get to mainnet faster. We'll also be seeing each other at GopherCons EU and US, so make sure to stop by and say hi! Oh, and our [new gnome logo is live](https://gno.land/r/gnoland/blog:p/the-gnome)!\n\nWe're also covering all the major and minor code improvements; if you want to dive deeper, we have the weekly engineering [updates](https://github.com/gnolang/meetings/issues/37) and video [recordings](https://www.youtube.com/watch?v=9ch7MhKNBmw\u0026list=PL7nP7r1QiDktMCdw1ydQo2crM3y6Zk7E4) available. \n\n# Gno Core Updates\n\n## Introducing Gno Studio Connect\n\nLast month [we talked](https://medium.com/@gnostudio/introducing-gno-studio-the-premier-builder-suite-for-gno-land-d1b4d82b46de) about the need for a premier builder suite for Gno.land. As Gno.land expands into a universe of realms, we saw the need for a set of tools; tools empowing the community to create and use succint and composable realms on Gno.land. Last year we launched [Gno Playground](https://play.gno.land/). Now we're adding another tool to the toolbox - [Gno Studio Connect](https://gno.studio/connect). Currently in beta, Connect allows seamless access to realms, making it simple to explore, interact, and engage with Gno.land's smart contracts through function calls. Try out your first realm interaction via Connect by taking our [gnoyourdate](https://gno.studio/connect/view/gno.land/r/gnostudio/gnoyourdate?network=test3#Vote) poll. \n\n## Faucet Hub is Live\n\nWith the [Faucet Hub](https://faucet.gno.land) you can now easily and effortlessly use all Gno.land ecosystem faucets, including Portal Loop, staging, future testnets and implementation partner chains. It's easily extensible, with the goal of having a single stop for every possible Gno.land test token you might need.\n\n## Test4 Launch Scheduled for July 15\n\nAfter announcing the tentative [Test4](https://gno.land/r/gnoland/blog:p/test4-explained) launch for the end of July/early August, we realized we're working faster than anticipated. That's why **we're moving the official Test4 launch to July 15, 2024**!\n\n## 550 TPS\n\nRecent [supernova](https://github.com/gnolang/supernova) tests showed that we have **~550 TPS** on a single node machine (M3 Mac; 100k txs, 1s block time). This is a huge step up from last year, when the TPS performance we had varied from 7-20 TPS with the same setup.\n\n## New DevOps team member\n\nPlease welcome Sergio Matone! A DevOps with a strong Go background, he'll be a key player in improving and managing the Gno.land infrastructure.\n\n## Belgrade Retreat\n\nThe core team travelled from across the world to Belgrade, Serbia, where we hunkered down and solved a number of issues blocking Test4 as well as future releases all the way to the mainnet. Full recap [here](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia).\n\n## Changelog\n\n- Dropped support for [all unused DB implementations](https://github.com/gnolang/gno/pull/1714), apart from leveldb and boltdb. Without excessive DB implementations that need maintaining, we can focus on optimizing the ones we actually use, and squeeze out performance from systems we already have. \n\n- Resolved a Long Standing CI Issue With BFT Tests. [The CI is finally green across the board](https://github.com/gnolang/gno/pull/1515). We still have some flaky tests, but the CI will no longer constantly fail on the BFT CI due to irregular channel usage. This, couple with our CI rework over the past month, significantly improved our GitHub development process.\n\n- Lots of spring cleaning efforts with [gnokey](https://github.com/gnolang/gno/pull/1212), [gnoland](https://github.com/gnolang/gno/pull/1985), and our other tools. We took this chance to also add extensive coverage and regression tests, in case they were missing before.\n\n- [Finally merged in Event / Emit support](https://github.com/gnolang/gno/pull/1653) in Gno! Users and Gno clients can finally fetch on-chain events as soon as they happen, and have a rich context for them as well. Support for these has already been propagated to our [tx-indexer](https://github.com/gnolang/tx-indexer/pull/43).\n\n- [Merged in the VM gas consumption fixes](https://github.com/gnolang/gno/pull/1430), which standardize VM gas usage across the board for users. Having predictable gas costs, and gas costs that take into account VM operations is only fair for both the node operators and the chain users.\n\n- [Reworked the node directory structure](https://github.com/gnolang/gno/pull/1944), and made [genesis.json usage explicit](https://github.com/gnolang/gno/pull/1972), paving the way to an easier multinode future. This effort enables us to easily orchestrate and configure Gno blockchain nodes, especially with the upcoming devnet / testnet launch.\n\n- [Overhauled our monorepo GH actions](https://github.com/gnolang/gno/pull/2040), with them now avoiding double-work, and being much snappier. CI for PRs now runs much quicker and more stable, due to these optimizations.\n\n- [Finished migration to Goreleaser](https://github.com/gnolang/gno/pull/2101). All of our important tools and binaries have a clear build and release schedule (for Docker, and beyond!), with us implementing nightly, dev and `master` releases on the monorepo.\n\n- [Bumped the gnovm test coverage](https://github.com/gnolang/gno/pull/2143) from ~34% to ~67%. With upcoming changes to the GnoVM, we needed a good safety net in the form of a testing suite that will alert us if funny business is going on after a change.\n\n- [Many, many bug fixes, small UX improvements and QoL changes](https://github.com/gnolang/gno/commits/master/?since=2024-05-01\u0026until=2024-06-03\u0026before=edb321f85beff98536a3a1a7111febaea0771a5e+35) that keep the lights on and systems running smoothly.\n\n# Ecosystem Updates\n\n## Onbloc\n\n Multinode/Validator Docs: https://github.com/gnolang/gno/pull/2285\n2. `test4` Validator Initiative Discussion: https://github.com/gnolang/hackerspace/issues/69\n3. GnoSwap Portal Loop Migration Blocker: https://github.com/gnolang/gno/issues/2283\n - Liquidity Pool realm deployment failing on portal-loop\n - Attempts tried:\n - Changing package path / reducing realm size / setting gax-wanted to max / changing client env\n - Cloning gno repo every single recent commit to re-produce on local but never failed.\n - Update: Potential cause → Certain failing txs are causing corrupt cache files `cacheNodes`\n\n- Gno Core\n - You can check our Merged, Awaiting Review, and TODO PRs in [our hackerspace. ](https://github.com/gnolang/hackerspace/issues/29)\n- [Onbloc API Docs](https://onbloc-info.gitbook.io/onbloc-api-docs): Permissionless JSON-RPC methods to Gno.land's official networks (portal-loop, test3) for any individuals or teams building on Gno.land (feedback is welcome!)\n- GnoSwap\n - Contract migration to portal-loop (Tartget: May 24th)\n - Applying `std.Emit` to contracts and APIs ([apply emit event in contract](https://github.com/gnoswap-labs/gnoswap/pull/217))\n - VWAP (Volume-Weighted Average Price) implementation for improved pricing ([gnoswap-labs/vwap](https://github.com/gnoswap-labs/vwap))\n- Misc\n - Add links to [GnoStudio Connect in GnoScan](https://gnoscan.io/realms/details?path=gno.land/r/michelle/mymood)\n - ![image](https://hackmd.io/_uploads/HJrWausQC.png)\n- Full update: [Onbloc Hackerspace](https://github.com/gnolang/hackerspace/issues/29#issuecomment-2124697977), [Onbloc Kanban](https://github.com/orgs/gnolang/projects/23)\n\n\n## Teritori\n\n- GnoVM\n\n - **Add stacktrace functionality and replace some uses of `Machine.String`**: This pull request is currently in review discussions with Morgan ([PR #2145](https://github.com/gnolang/gno/pull/2145)).\n - **Go2Gno loses type info**: This issue is Merged ([PR #2016](https://github.com/gnolang/gno/pull/2016)).\n - **Avoid instantiation of banker on pure package**: This change is awaiting review and merge ([PR #2248](https://github.com/gnolang/gno/pull/2248)).\n - **Missing length check in value declaration**: This pull request is also awaiting review and merge ([PR #2206](https://github.com/gnolang/gno/pull/2206)).\n - **Issue: File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The issue has been resolved and closed ([Issue #2220](https://github.com/gnolang/gno/issues/2220)).\n - **File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The fix has been successfully merged ([PR #2221](https://github.com/gnolang/gno/pull/2221)).\n\n- Gno lint\n\n - **Printing all the errors from goparser**: This pull request has been successfully merged ([PR #2011](https://github.com/gnolang/gno/pull/2011)).\n - **Lint all files in folder before panicking**: This pull request is awaiting review and merge ([PR #2202](https://github.com/gnolang/gno/pull/2202)).\n\n- DAO SDK (still waiting for review)\n PR: [#1925](https://github.com/gnolang/gno/pull/1925)\n \n- **GnoVM**\n\n - **Cannot use struct as key of a map**: We resolved the issue where structs couldn't be used as keys in maps. This PR has been merged ([PR #2044](https://github.com/gnolang/gno/pull/2044)).\n - **Go2Gno loses type info**: This issue is still awaiting review and merge ([PR #2016](https://github.com/gnolang/gno/pull/2016)).\n - **Gno Issue with pointer**: We proposed a solution ([Issue #2060](https://github.com/gnolang/gno/issues/2060)).\n - **Stacktrace functionality**: We added stacktrace functionality and replaced some uses of `Machine.String` ([PR #2145](https://github.com/gnolang/gno/pull/2145)).\n - **Recover not working correctly with runtime panics**: We created an issue to address this problem ([Issue #2146](https://github.com/gnolang/gno/issues/2146)).\n - **Panic when adding a package with subpaths**: We worked on this issue and waiting for review and merge [PR #2155](https://github.com/gnolang/gno/pull/2155)).\n\n- **Gno lint**\n\n - **Printing all the errors from goparser**: This improvement is waiting for review and merge ([PR #2011](https://github.com/gnolang/gno/pull/2011)).\n\n- **DAO SDK**\n\n - **DAO SDK**: Waiting Review and merge: [PR #1925](https://github.com/gnolang/gno/pull/1925).\n\n- **Project Manager**\nSince we have already a lot in review, before opening a PR on the Gno repo, we're taking time to:\n - Polish the \"private\" [atomic PR](https://github.com/TERITORI/gno/pull/20)\n - Polish the UI\n - Set-up e2e testing with gnodev and a gno-js-client wallet, you can see a demo recording [here](https://github.com/TERITORI/gno/pull/20), the end-goal is to run e2e tests in CI\n\n## Dragos\n\n### ZenTasktic \n- Zentasktic User (3rd grant milestone) implemented: https://github.com/irreverentsimplicity/zentasktic-user\n - updated docs for all 3 projects:\n - https://github.com/irreverentsimplicity/zentasktic-core/blob/main/README.md\n - https://github.com/irreverentsimplicity/zentasktic-project/blob/main/README.md\n - https://github.com/irreverentsimplicity/zentasktic-user/blob/main/README.md\n\n- zentasktic (the package)\n - big overhaul, allowing for keeping the Assess-Decide-Do logic on the `zentasktic` package, but save the data locally, in the realm importing the package. PR here with some more explanation: https://github.com/irreverentsimplicity/zentasktic-core/pull/1\n\n- zentasktic-project (the realm)\n - backend finished, repo here: https://github.com/irreverentsimplicity/zentasktic-project\n - question: test failing on RemoveWorkDuration with `panic: reflect: reflect.Value.SetString using value obtained using unexported field` on WorkDuration? AddWorkDuration and EditWorkDuration tests are passing...\n\n### Flippando\n* hackerville.xyz website updated for the upcoming airdrop: https://hackerville.xyz\n* airdrop script in testing\n* flippando NFT airdrop\n - copy added to the main flippando website, with airdrop mechanics and due date: https://gno.flippando.xyz/airdrop\n - minor updates to the website in preparation for this (airdrop mode: https://gno.flippando.xyz/playground)\n - spoiler, it will be on June 8th (2024, for conformity)\n\n## Berty\n\n- tx-indexer genesis [PR34](https://github.com/gnolang/tx-indexer/pull/34) (related to [PR1941](https://github.com/gnolang/gno/pull/1941)? ) / Jeff\n - blank screen bug fixed\n- dSocial latest features / Iuri\n - reply to a post\n - view other user's posts\n - others\n- UI conversation with Alexis - to plan soon\n\n- dSocial demo app\n - Released on Test Flight and Google Play\n - To get an invitation, send your email to Iuri on Signal. Please say if you have an iPhone or Android phone.\n - Using custom indexer on the Berty production server\n- Stress testing\n - Finalizing report\n - What is the PR to watch for resolving https://github.com/gnolang/gno/issues/1577 ?\n - Referenced PR https://github.com/gnolang/gno/issues/1576\n - Comment on CodeMagic as a possibility\n\n## Var Meta\n\n- issue: https://github.com/gnolang/gno/issues/2053\nPR: https://github.com/gnolang/gno/pull/2108\nDes: limit import path length\nStatus: Merged\n- issue: https://github.com/gnolang/gno/issues/2192\nPR: https://github.com/gnolang/gno/pull/2242\nDes: Restric the maketx call function can only call to a realm\nStatus: Merged\n- issue: https://github.com/gnolang/gno/issues/1998\nPR: https://github.com/gnolang/gno/pull/2149\nDes: This PR defines a GasUsed() func and a defaultInvokeCost in gas within std package. Simple feature let realm developer know the gas used at the time function is called.\nStatus: Wait for reviewing\n- ISSUE: New issue about GnoPlayGround RUN and TEST func in different browsers (safari, chrome)\nLink: https://github.com/gnolang/gno/issues/2270\nStatus: NO PR is made, waiting core team\n- WIP: Sponsor TX\nPR: https://github.com/gnolang/gno/pull/2209\nDes: This PR aims to facilitate a transaction that should have been from A(signer) to B(Address/Realm) (A would pay the gas fee). Instead, A will delegate C(signer) to sign the transaction from A to B (C will pay the gas fee).\nStatus: Under reviewing\n- PR: https://github.com/gnolang/gno/pull/2249\nIssue: https://github.com/gnolang/gno/issues/2232\nDes: To consolidate our returns on gnokey queries, I propose that we make them return JSON strings\nStatus: Waiting for #1776 to be merged\n- PR: https://github.com/gnolang/gno/pull/2198\nIssue: https://github.com/gnolang/gno/issues/2193\nDes: Propose refactoring p/ownable from a struct with a specific implementation to a more minimal interface, allowing for custom ownership logic while retaining the current struct as the default implementation.\nStatus: Waiting for reviewing\n- PR: https://github.com/gnolang/gno/pull/2225\nIssue: https://github.com/gnolang/gno/issues/2193\nDes: I propose integrating certain utility smart contracts from Ethereum into Gnoland. Now i'm working on defining the Bitmap, NonceManager and Queue packages, which can provide essential functionality for the Gnoland ecosystem.\nStatus: Waiting for reviewing\n- PR: https://github.com/gnolang/gno/pull/2234\nIssue: https://github.com/gnolang/gno/issues/2231\nDes: We should either implement this, or remove the flag until the functionality is implemented. Same goes for the –prove flag.\nStatus: Merged\n\n- PR: \n - Support extensions like Metadata, RoyaltyInfo for GRC721 https://github.com/gnolang/gno/pull/1962 (Merged)\n - Deprecate \u0026 remove std.CurrentRealmPath() https://github.com/gnolang/gno/pull/2087 (Reviewing)\n - limit package path length https://github.com/gnolang/gno/pull/2108 (Aprroved)\n - Implement Bitmap package https://github.com/gnolang/gno/pull/2115 (Need review)\n - Implement Nonces package https://github.com/gnolang/gno/pull/2123 (Need review)\n - GasUsed() for GnoVM std https://github.com/gnolang/gno/pull/2149\n- Issues:\n - Panic when getting keypair information https://github.com/gnolang/gno/issues/2133\n - Proposal: Integrate Sponsor Mechanism for Transaction Fees https://github.com/gnolang/gno/issues/2152\n\n## Student Contributor Program\n\n**Mustapha**\n* Made a V0 Auction dapp ([PR#2265](https://github.com/gnolang/gno/pull/2265)) \n\n**Antonio**\n- GNOWLEDGE\nA [realm](https://github.com/iam-agf/Gnowledge) to simulate a Stackoverflow styled. Sharing to get some feedback. You can interact with it via https://github.com/iam-agf/Gnowledge-website .\n\n**Antonio**\n* https://github.com/iam-agf/Shiken \n\n# New Content\n\n- [Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x](https://gno.land/r/gnoland/blog:p/kv-stores-indexer)\n- [Introducing Gno Studio, the Premier Builder Suite for Gno.land](https://gno.land/r/gnoland/blog:p/gno-studio-intro)\n- [Introducing our new Gno.land logo: the gnome](https://gno.land/r/gnoland/blog:p/the-gnome)\n- [Gnomes Spotted in Belgrade, Serbia: Recap from the Engineering Retreat and Golang Serbia Meetup](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia)\n- [Test4 Explained](https://gno.land/r/gnoland/blog:p/test4-explained)\n\n# Events and Meetups\n\n## Past events\n\n- GoLang Serbia Meetup / Belgrade / May 23. We used the Gno core team's retreat in Belgrade to connect with the local Go developers and possible contributors over the next few months to build the ecosystem. [Full recap](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia).\n- We're currently wrapping up **GopherCon EU** in Berlin, expect an update soon!\n\n## Upcoming events\n\n- **GopherCon US** / Chicago / July 7th - 10th\n- **Nebular Summit** / Brussels / July 12th/13th\n\n## Discord Developer Office Hours\n\nEvery week on Thursday at 2:30 pm CEST, we host office hours on [Discord](https://discord.com/invite/d24CT5b9cd?event=1252310282450112595) to answer questions, discuss updates, and catch up with the community. We'd love to see you there!","2024-06-20T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm,tm2,test4,gnostudio,connect"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LUF1j0WsJv1ir71gN4SZp5r1IKCF6qbcfoMJTiD8fKj6MkujNjdeqpzbIjRVRSg+uEliba9N+FWkywYhgXNBBg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BwGiGZi61daI325nPNZaCmdBlqyGV6DcTKEpccyNQxg1MpSQfFX85V5eYdmqZFMiXo8BJ3LFx/PNIFF7B31HAw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["reaching-consensus","Reaching Consensus: Developing Fault-tolerant SMTs using Golang","\n\nEvery once in a while, an effort comes along for the Gno core engineering team that demands immense focus, adaptability\nand coordination, in order to successfully improve a critical part of the [gno.land](http://gno.land/) blockchain\nsystem. This article is meant to cover one such critical module - the Tendermint consensus engine.\n\nOver the course of the next following sections, you’ll discover on a practical level what the Tendermint consensus\nengine is all about, how it works, and how we ended up implementing it for the purposes of [Gno.land](http://gno.land/),\nand the wider blockchain and open-source community.\n\nIf you want to jump straight to the source code, you can find the standalone library in the gno\nmonorepo [here](https://github.com/gnolang/gno/tree/master/tm2/pkg/libtm).\n\nIt is worth noting that we will primarily be discussing the use of the Tendermint consensus engine from an angle of a\ndistributed system, that doesn’t necessarily have anything to do with blockchains.\n\n## What are consensus engines, really?\n\nMost blockchain systems that are distributed use some *consensus mechanism*. In essence, this is a process in which\nremote machines (blockchain nodes) agree that a given value is valid. The nature of their agreement (the process) and\nthe value on which they agree on are completely arbitrary, and are up to the specific blockchain system to decide on and\nuse.\n\nSome of these *consensus algorithms* have specific properties that make them more resilient than others — consensus\nalgorithms can be crash tolerant, meaning the process of reaching an agreement on a value tolerates nodes being *faulty*\nby crashing, in which case they stop while the rest of the nodes continue operating. An example of this consensus\nalgorithm is [Raft](https://raft.github.io/). On the other hand, a more resilient consensus algorithm is also\n*byzantine-tolerant*, in which case the nodes participating in the consensus process can not only crash, but be\nmalicious — meaning an arbitrary range of faulty behaviors is tolerated. Examples of byzantine-tolerant consensus\nalgorithms\ninclude [PBFT](https://pmg.csail.mit.edu/papers/osdi99.pdf), [IBFT](https://arxiv.org/abs/2002.03613), [HotStuff](https://arxiv.org/abs/1803.05069),\nand the one we will focus on in this article — [Tendermint](https://arxiv.org/abs/1807.04938).\n\nFor the sake of clarity, it is worth noting an important distinction very early on, before we dive into the\nnitty-gritty. In this article we make a clear distinction between consensus protocols, the validator set modification\nalgorithms, and consensus engines, the actual state machine changes required for reaching consensus.\n\nIn a distributed consensus-run system, the participants are usually called *nodes*. In the blockchain context, they are\ncalled *validators*, since they validate the proposed chain state changes through the consensus process. The process for\nwhich these actors *enter and exit* the validator set (node consensus set) is called a *consensus protocol*. Most\npopular examples of consensus protocols include:\n\n* **Proof of Authority (PoA)** - a permissioned system in which consensus participants (validators) are selectively\n chosen / voted in, by the existing participant set.\n* **Proof of Stake (PoS)** - a permission-less system in which anyone can stake something (usually the network’s native\n currency) to gain entry into the validator set (become consensus participants).\n\nThere are many different flavors for the system in which the validator set is chosen — for the sake of simplicity we\ngroup this process under the *consensus protocol* term.\n\n[![valset](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/valset.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/valset.png)\n\nWe mentioned earlier that consensus is a process in which nodes agree upon a specific value. We denote this actual\nprotocol in which they agree upon a value as the *consensus engine*.\n\nThe consensus engine represents the internal, most critical process of the consensus algorithm - the state machine. It\ngives answers to questions like - who proposes the consensus value (in leader-based systems), how is validation done,\nbut most importantly — what are the steps taken by validators to reach consensus?\n\n[![machine](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/machine.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/machine.png)\n\n### Terminology\n\nConsensus algorithms like Tendermint work on a round-based model, meaning consensus is attempted to be reached on a\ngiven value within a round, for a given height. If consensus is not reached on `round X` of `height Y`, then a new\nconsensus round is started for `round X+1`, `height Y`. This round changing occurs until consensus is reached for the\ngiven height (in the context of blockchains, the height is the block number). We will discuss later on what the\nconditions are for increasing the consensus round number.\n\nWe call this tuple denoting the current consensus height and round `(h, r)` a ***view***.\n\nFor leader-based consensus algorithms like Tendermint, one node (validator) called the ***proposer*** (who is\ndeterministically selected by all participating nodes) needs to propose a value for the current consensus view. This\n***proposal*** value can in theory be anything, but in the context of blockchain systems, this is usually a block\ncontaining transactions (state transitions).\n\nSpecific to Tendermint, in order to reach consensus, there needs to be an agreement between at least `2F+1` validator\nnodes (where `F` denotes the maximum number of faulty nodes that are tolerated in the system). In the broader Tendermint\necosystem, validators are not equal, since the consensus protocol mostly used with Tendermint is Proof of Stake, and the\nvalidator’s power is proportional to their stake. In this case, `F` denotes the maximum voting power of faulty nodes\nthat are tolerated in the system. In practice, `2F+1` is 2/3+ (supermajority) of the validator set’s voting power.\n\n## How does Tendermint work?\n\nThe term “[Tendermint](https://docs.tendermint.com/v0.34/introduction/what-is-tendermint.html)” refers to a much larger\nscope of functionality than what we discuss in this article. By “Tendermint” here, we solely refer to the Tendermint\nconsensus engine (state machine).\n\nA good graphic that shows an overview of the Tendermint state machine can be found on the\nofficial [Tendermint Core documentation](https://docs.tendermint.com/v0.34/introduction/what-is-tendermint.html#consensus-overview):\n\n[![polka](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/polka.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/polka.png)\n\nHowever, we want to tackle this question of Tendermint’s inner-workings by weaving in the theory from the paper titled\n*The latest gossip on BFT consensus*, and applying it in practice.\n\nOn a surface-level, the Tendermint consensus engine has 3 states:\n\n- **Propose** - the *proposer* for the current view (height, round) sends out a *proposal* to all other validator nodes.\n Non-proposers wait for the proposal and verify it\n- **Prevote** - the validator nodes wait for 2F+1 `PREVOTE` messages, potentially locking on a proposal\n- **Precommit** - the validator nodes wait for 2F+1 `PRECOMMIT` messages, potentially saving the block to the block\n store, and starting a new consensus round (with a view `(h+1, 0)`)\n\nThese states are not as straightforward as they’re made out to be — there is an added complication of *state timers*\nwhich guarantee protocol liveness, and other asynchronous situations like consensus round jumps within the same height.\nWe will discuss these mechanisms later on, as they are critical to making sure Tendermint is ticking correctly.\n\n### I Propose\n\nThe *propose* state is the initial consensus state for the Tendermint consensus engine. This is the only state within\nthe state machine that has different logic flows for proposers and non-proposers.\n\nIn the *propose* state, only one node is the proposer for the given view (height, round), and the rest are simply\nsupposed to wait for the proposal.\n\nThe proposer for the view has 2 choices when proposing a value:\n\n1. craft an entirely new proposal (block). The paper denotes this process with `getValue()`\n2. utilize an old (locked) proposal, that was proposed in an earlier round (same height, earlier round), but whose\n consensus was never reached (for whatever reason)\n\nWe will discuss “proposal locking” in the `Prevote` section, for now consider that this is a special case where the\nproposer does not actually construct anything new, but simply relays a proposal that was sent in the past (earlier\nround), but not agreed upon fully (committed).\n\n[![paper-1](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-1.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-1.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nAs outlined in *Algorithm 1*, the initialization step takes place before the beginning of the actual consensus process (\nstate machine). `StartRound` is meant to kick off the Tendermint state machine.\n\nUpon figuring out the proposal value, the proposer broadcasts it to the rest of the nodes. The specifics of network\ngossip implementations are not discussed in the actual paper / consensus protocol.\n\nFor non-proposers of the view, they simply initiate the `propose` state timer, that’s meant to advance the state machine\nfurther if no valid proposal comes in from the proposer of the view.\n\n[![paper-2](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-2.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-2.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nOnce non-proposers receive a proposal from the proposer of the current view, they validate it using an external\nfunction, denoted here as valid(...). The proposal is accepted in 2 situations:\n\n* if it is a fresh proposal (not a locked one), and it is valid according to the standards of a verifying\n method (`valid(...)`).\n* if it is an older proposal (locked value), it is valid according to the standards of a verifying method (`valid(...)`)\n *and* the proposal matches the validator’s in-memory locked proposal.\n\nIn case of a successful proposal verification, the node broadcasts a `PREVOTE` message with a valid ID of the proposal.\nThe identification method of the proposal is not defined by the Tendermint protocol itself, but commonly in practice\nthis value is the hash of the actual block being proposed (in blockchain systems).\n\nIn case the proposal verification fails (proposal is invalid), the node broadcasts a `PREVOTE` message, with a `nil`\nvalue for the proposal ID, indicating that this step in the consensus process failed.\n\nThe purpose of broadcasting a message with a `nil` value is to ensure the consensus engine’s liveness in case of a\nfaulty event. Note that Tendermint does not have a specific round-change state like PBFT, or IBFT, so the only way to\nmove the protocol along is *to go through all consensus states, and in order to succeed or fail in the end*.\n\nIn either case, after the node broadcasts a `PREVOTE` message, it transitions into the *prevote* state.\n\n#### Propose timer\n\nNon-proposers for the view start a `propose` state timer.\n\n[![paper-3](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-3.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-3.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nThis timer is meant to go off after a fixed interval of time, in order to prevent the node from being stuck in a state\nwhere it’s still waiting on a proposal.\n\nWhen the timer asynchronously ticks off, the node broadcasts the `PREVOTE` message with a `nil` ID value, indicating\nfailure to receive a valid proposal. After the broadcast, it moves to the *propose* state.\n\n### II Prevote\n\nThe *prevote* state is the second state of the Tendermint consensus engine, and it’s the common state for all consensus\nparticipants (proposers and non-proposers).\n\nNodes end up in this state in the following scenarios:\n\n- the proposer for the view sent a valid proposal\n- the proposer for the view didn’t send a valid proposal\n- the proposer for the view didn’t send a valid proposal in time (timeout triggered)\n\nThe *prevote* state can be seen as an “alignment” state between nodes because this is the first state in which consensus\nparticipants need to reach a supermajority on whether the current consensus round is proceeding as it should, or if\nthere is some funny business happening.\n\nTo successfully move over to the *precommit* state, validators need to receive `2F+1` `PREVOTE` messages with a valid\nproposal ID. In other words, the supermajority of the validator set’s voting power needs to send out `PREVOTE` messages\nwith an attached proposal ID (of the proposal accepted in the *propose* state!).\n\n[![paper-4](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-4.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-4.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nAs soon as these conditions are met, the participants broadcast a `PRECOMMIT` message, with the attached proposal ID (\nsame one as with the `PREVOTE` messages, and derived from the proposal accepted in the *propose* state). After\nbroadcasting the `PRECOMMIT` message, participants move over to the *precommit* state.\n\n#### Block locking\n\nAn important characteristic for the *prevote* state is the block locking mechanism that is triggered as soon as\nconditions for a valid transition to *precommit* are met.\n\nBefore broadcasting a valid `PRECOMMIT` message, the validators “save” (in-memory) the proposal value in which the\nsupermajority of the validator set’s voting power agreed upon, and the round in which it happened (denoted\nas `lockedValue` and `lockedRound`, respectively).\n\nThe purpose of this block locking dance is to be able to propose / verify the same proposal if the current consensus\nround fails in the following steps (for example, not enough valid `PRECOMMIT` messages received). The idea behind this\nmechanism is that a proposal agreed upon by a supermajority of the validator set is most probably a valid one, and\nshould be considered for future rounds in case the original consensus round in which the proposal was brought up did not\ncomplete successfully.\n\nIf we go back through the conditions for the initial Tendermint engine state transitions, we will see that there is a\nstrong requirement for “locked” values.\n\n[![paper-5](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-5.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-5.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nThese checks essentially enforce that if there was a proposal in some previous round, that reached a supermajority, it\nneeds to be *proposed again* in a future round.\n\n#### Jump to Precommit\n\nThere is a situation in which the validators move over to the *precommit* state, without receiving a supermajority of\nvalid `PREVOTE` messages (with a valid proposal ID):\n\n[![paper-6](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-6.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-6.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nIn case a validator receives `2F+1` `PREVOTE` messages with a `nil` proposal ID, they simply broadcast a `PRECOMMIT`\nmessage with a `nil` ID value (indicating failure), and move over to the *precommit* state.\n\nThis `nil` propagation mechanism is part of the liveness property discussed in the *propose* section, which requires a\nvalidator to go through all Tendermint states before starting a new consensus round.\n\n#### Prevote timer\n\nAll validators start a *prevote* state timer the moment they receive a supermajority (`2F+1`) of *any* `PREVOTE`\nmessage (either with a valid or with a `nil` proposal ID).\n\n[![paper-7](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-7.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-7.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nWhen the timer asynchronously ticks off, the node broadcasts the `PRECOMMIT` message with a `nil` ID value, indicating\nfailure to reach a supermajority on a proposal. After the broadcast, it moves to the *precommit* state.\n\n[![paper-8](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-8.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-8.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\n### III Precommit\n\nThe *precommit* state is the final state in the Tendermint consensus engine, common for all validators.\n\nMuch like the *prevote* state, *precommit* consists of the validators waiting for a supermajority of messages of a\nspecific type — in this case the `PRECOMMIT` message, with a valid proposal ID.\n\n[![paper-9](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-9.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-9.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nAfter the validators exchange `2F+1` valid `PRECOMMIT` messages (with a valid proposal ID), they commit the proposal to\ntheir local storage, increase the height and move over to begin the consensus process anew\nfrom `(height + 1, round = 0)`.\nSince the consensus process is finalized successfully for the current view, the in-memory values for locked values are\ncleared, along with the complete message log.\n\nOf course, the proposal ID contained within the `PRECOMMIT` messages needs to match the proposal ID in the previously\nreceived supermajority of `PREVOTE` messages, and be derived from the proposal in the *propose* state.\n\n#### Precommit timer\n\nMuch like with the *prevote* state, the moment validators receive a supermajority (`2F+1`) of *any* `PRECOMMIT`\nmessage (either with a valid or with a `nil` proposal ID) they initiate a *precommit* state timer.\n\n[![paper-10](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-10.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-10.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nWhen the timer asynchronously ticks off, the node begins the consensus process anew with an increased round number (goes\nback to the *propose* state). Since the *precommit* state is the last one in the chain, the only next step left for the\nengine is to go back to the beginning.\n\n[![paper-11](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-11.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-11.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\n### IV Round jumps\n\nThere is a special scenario within the Tendermint consensus engine that bypasses the notion of going through all\nconsensus states in order to start a new consensus round.\n\n[![paper-12](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/paper-12.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/paper-12.png)\n\u003cdiv align=\"center\"\u003eSource: The latest gossip on BFT consensus, page 6\u003c/div\u003e\n\nIn this scenario, if at any point in time the validator receives `F+1` (called a *faulty majority*) of *any* message\ntype, for a **future** round (round higher than in the current view), the validator performs a round jump to the given\nround by starting the consensus process anew.\n\n### V Timers\n\nIn the Tendermint consensus process, timers play an important role in making sure the protocol stays “alive”. They move\nthings along if, for whatever reason, the flow stops.\n\nBy their nature, they are completely asynchronous, and can go off at point in time once they are set by the protocol.\n\nTendermint does not enforce specific initial values for each state timer, but provides suggestions on making sure the\ntimers serve their purpose:\n`timeoutX(r) = initTimeoutX + r * timeoutDelta`\n\nBy following this formula, it is ensured that each round state timer is:\n\n- influenced by the current view round (higher rounds == longer timers)\n- influenced by a constant `delta` increment (can be different for each state)\n\nIn the Gno blockchain, these values are defined as the following:\n\n```toml\ntimeout_propose = \"3s\"\ntimeout_propose_delta = \"500ms\"\ntimeout_prevote = \"1s\"\ntimeout_prevote_delta = \"500ms\"\ntimeout_precommit = \"1s\"\ntimeout_precommit_delta = \"500ms\"\n```\n\n### VI Tying it all together\n\nUnderstanding the Tendermint consensus engine involves grasping its three core states: *propose*, *prevote*, and\n*precommit*, and the transitions that ensure the system's liveness and fault tolerance.\n\nThe *propose* state is initiated by a designated proposer who broadcasts a proposal to all validators. This proposal can\neither be a new value or an old one from a previous round that did not reach consensus. Validators verify the proposal,\nand then move to the *prevote* state, where they broadcast their votes on the proposal, requiring a\nsupermajority (`2F+1`) to proceed. If the necessary votes are not received within a certain timeframe, a timeout\nmechanism ensures the process continues to the next state or round. If a supermajority of valid `PREVOTE` messages is\nreceived, validators lock the proposal value and transition to the *precommit* state. This locking mechanism ensures\nthat if consensus is not reached in the current round, the previously agreed-upon value can be proposed again, enhancing\nthe algorithm’s robustness. During the *precommit* state, validators wait for another supermajority of `PRECOMMIT`\nmessages. Upon receiving these, they commit the proposal locally, increment the height, and start a new consensus round.\n\nThe combination of these states and transitions, governed by timers and supermajority rules, creates a resilient and\nefficient consensus process. The Tendermint consensus engine's design allows it to handle both crash faults and\nByzantine faults, making it suitable for various distributed systems, including blockchains.\n\n## Taming asynchronous beasts with Golang\n\nWhen we started working on [libtm](https://github.com/gnolang/gno/tree/master/tm2/pkg/libtm), we had a few goals in\nmind:\n\n- create a consensus engine library that is easy to use, safe and performant, pluggable into systems we already have (\n the Gno blockchain, based on a fork of Tendermint Core)\n- implement abstractions that allow the library to be also used outside the blockchain context, while also being modular\n enough to be used by existing blockchain projects\n- maintain the principles of open-source software\n\nWe went about implementing #2 in a seemingly odd way:\n\n- We did not want the library to handle networking, or enforce a networking protocol. We believe that the underlying\n transport layer that moves around messages is irrelevant, as long as it provides the properties of *eventual\n delivery*.\n- We did not want the library to know how to sign, and verify signatures of arbitrary data. Signing protocols are\n something very use-case specific, and should not be enforced by the consensus engine. We do, however, provide the\n *data* that needs to be signed in the first place.\n- We did not want the library to do validator set management, or to even have a notion of a “validator” and its\n properties. Validator sets have vastly different management techniques, a complication we wanted to avoid in the\n engine.\n\nThis might sound shocking, given how existing implementations of the Tendermint consensus engine operate today in modern\nblockchains, but it actually greatly reduces the complexity and allows for applications of the consensus library outside\nthe blockchain context.\n\n### Everything starts with the messaging system\n\nLooking at how the Tendermint consensus state machine is structured, we can deduce that the main drivers of any kind of\nactivity are — messages.\n\nA message exchanged between validators, of any type, is the driving force behind the Tendermint consensus algorithm.\nIt’s used to transfer information, but also to act as a notification system that preserves certain consensus properties\nlike liveness.\n\nGiven the asynchronous nature of validator messages, we realized our messaging system would need to support the\nfollowing properties:\n\n- have buckets for each message type, to make messages easily fetch-able\n- have a mechanism that avoids duplicates\n- have a subscription mechanism we can tap into from any part of the codebase\n\nWe came to this conclusion after realizing our state implementations (discussed later) needed a more sophisticated way\nof fetching and filtering incoming messages, that didn’t involve constant read requests from the message log. These\noperations are very common, and they need to be performant in order to not delay the consensus process.\n\nLuckily, we ended up utilizing the full power of Go generics for this use-case:\n\n```go\n// msgType is the combined message type interface,\n// for easy reference and type safety\ntype msgType interface {\n\ttypes.ProposalMessage | types.PrevoteMessage | types.PrecommitMessage\n}\n\ntype (\n\t// collection are the actual received messages.\n\t// Maps a unique identifier -\u003e their message (of a specific type) to avoid duplicates.\n\t// Identifiers are derived from \u003csender ID, height, round\u003e.\n\t// Each validator in the consensus needs to send at most 1 message of every type\n\t// (minus the PROPOSAL, which is only sent by the proposer),\n\t// so the message system needs to keep track of only 1 message per type, per validator, per view\n\tcollection[T msgType] map[string]*T\n)\n\n// Collector is a single message type collector\ntype Collector[T msgType] struct {\n\tcollection collection[T] // the message storage\n\tsubscriptions subscriptions[T] // the active message subscriptions\n\n\tcollectionMux sync.RWMutex\n\tsubscriptionsMux sync.RWMutex\n}\n\n```\n\nThe `libtm` library keeps a `Collector` for each message type, and that acts as a message log. Additionally, the message\ncollector also keeps track of basic message subscriptions. These subscriptions (as we’ll discuss later), are for simple\nnotifications that alert the subscriber a message appeared in the message log.\n\n### Not all states are created equal\n\nOnce we’ve established the clear needs of our messaging system, implementing the actual state transitions around it was\ntrivial.\n\nTendermint consensus states all share the following structure:\n\n```go\n// runX runs the X Tendermint consensus engine state\nfunc (t *Tendermint) runX(ctx context.Context) {\n\tvar (\n\t\tround = t.state.getRound()\n\n\t\texpiredCh = make(chan struct{}, 1)\n\t\ttimeoutCtx, cancelTimeoutFn = context.WithCancel(ctx)\n\t\ttimeoutPrevote = t.timeouts[prevote].CalculateTimeout(round)\n\t)\n\n\t// Defer the timeout timer cancellation (if running)\n\tdefer cancelTimeoutFn()\n\n\t// Subscribe to all messages of a specific type\n\t// (=current height; unique; \u003e= current round)\n\tch, unsubscribeFn := t.store.subscribeToX()\n\tdefer unsubscribeFn()\n\n\tfor {\n\t\tselect {\n\t\tcase \u003c-ctx.Done():\n\t\t\t// Outer consensus context cancelled\n\t\t\treturn\n\t\tcase \u003c-expiredCh:\n\t\t\t// State timer triggered,\n\t\t\t// execute stateX teardown before returning\n\n\t\t\t// ...\n\n\t\t\treturn\n\t\tcase getMessagesFn := \u003c-ch:\n\t\t\t// New valid message appeared in message log, parse it\n\t\t\t// ...\n\n\t\t\t// Check if conditions are satisfied for starting the state timer\n\t\t\t// ...\n\n\t\t\t// Check if conditions are satisfied for a state transition\n\t\t\t// ...\n\t\t}\n\t}\n}\n\n```\n\nThe pattern is clear:\n\n- subscribe to messages of a specific type that are expected to appear in the current state\n- verify those messages as they come in, and check if conditions are met for a state transition\n- monitor the outer context, and the asynchronous timer context for stopping\n\nKeeping this in mind, we can develop the main run loop:\n\n```go\n// runStates runs the consensus states, depending on the current step\nfunc (t *Tendermint) runStates(ctx context.Context) *FinalizedProposal {\n\tfor {\n\t\tcurrentStep := t.state.step.get()\n\n\t\tselect {\n\t\tcase \u003c-ctx.Done():\n\t\t\treturn nil\n\t\tdefault:\n\t\t\tswitch currentStep {\n\t\t\tcase propose:\n\t\t\t\tt.runPropose(ctx)\n\t\t\tcase prevote:\n\t\t\t\tt.runPrevote(ctx)\n\t\t\tcase precommit:\n\t\t\t\treturn t.runPrecommit(ctx)\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\nThe statement that *all* Tendermint consensus states share the outlined structure is not entirely true — remember the\n*propose* state?\nIn the *propose* state, there is a clear branching in logic, where non-proposers wait for and verify a proposal, while\nthe proposer for the view needs to build it and broadcast it. The proposer, unlike other validators, *does not need to\nwait on their own proposal to appear*, but can instead move directly to the *prevote* state, having already accepted the\nproposal that was sent out.\n\n```go\n// ...\nfunc (t *Tendermint) runPropose(ctx context.Context) {\n\t// ...\n\n\t// Check if the current process is the proposer for this view\n\tif t.verifier.IsProposer(t.node.ID(), height, round) {\n\t\t// Start the round by constructing and broadcasting a proposal\n\t\tt.startRound(height, round)\n\n\t\treturn\n\t}\n\n\t// ...\n}\n// ...\n```\n\n### How does it all tie together?\n\nOver the course of this article we’ve gone over the different Tendermint consensus engine states, and their caveats.\nWe’ve also mentioned other asynchronous processes like round jumps, timers triggers — how is all of this managed in Go,\nin `libtm`?\n\nThe entry point into the Tendermint consensus process lies in `RunSequence`, which manages other Go routines that\nfacilitate the previously-seen asynchronous `upon` blocks.\n[![run-sequence](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/thumbs/run-sequence.png)](https://gnolang.github.io/blog/2024-07-01_reaching_consensus/src/run-sequence.png)\n\nIn the `libtm` library, this management structure looks like this, where `finalizeProposal` and `watchForRoundJumps` are\nGo routines:\n\n```go\n// RunSequence runs the Tendermint consensus sequence for a given height,\n// returning only when a proposal has been finalized (consensus reached), or\n// the context has been cancelled\nfunc (t *Tendermint) RunSequence(ctx context.Context, h uint64) *FinalizedProposal {\n\t// Initialize the state before starting the sequence\n\tt.state.setHeight(h)\n\n\t// Grab the process view\n\tview := \u0026types.View{\n\t\tHeight: h,\n\t\tRound: t.state.getRound(),\n\t}\n\n\t// Drop all old messages\n\tt.store.dropMessages(view)\n\n\tfor {\n\t\t// set up the round context\n\t\tctxRound, cancelRound := context.WithCancel(ctx)\n\t\tteardown := func() {\n\t\t\tcancelRound()\n\t\t\tt.wg.Wait()\n\t\t}\n\n\t\tselect {\n\t\tcase proposal := \u003c-t.finalizeProposal(ctxRound):\n\t\t\tteardown()\n\n\t\t\t// Check if the proposal has been finalized\n\t\t\tif proposal != nil {\n\t\t\t\treturn proposal\n\t\t\t}\n\n\t\t\t// 65: Function OnTimeoutPrecommit(height, round) :\n\t\t\t// 66: \tif height = hP ∧ round = roundP then\n\t\t\t// 67: \t\tStartRound(roundP + 1)\n\t\t\tt.state.increaseRound()\n\t\t\tt.state.step.set(propose)\n\t\tcase recvRound := \u003c-t.watchForRoundJumps(ctxRound):\n\t\t\tteardown()\n\n\t\t\tt.state.setRound(recvRound)\n\t\t\tt.state.step.set(propose)\n\t\tcase \u003c-ctx.Done():\n\t\t\tteardown()\n\n\t\t\treturn nil\n\t\t}\n\t}\n}\n```\n\nGo contexts, combined with minimal channel usage, allow us to construct a flow that is easily testable, readable and\nmaintainable.\n\n### Trust, but verify\n\nOne of the most important choices that we wanted to make while developing `libtm` concerned how we’d verify the\nfunctionality, and how frequently during our development process. This was especially amplified by the fact we were\nexperiencing ongoing stability issues with the existing Tendermint BFT testing suite in Gno.\n\nWe wanted a testing suite that was minimal enough to verify individual state to state transitions, but also flexible\nenough to spin up full blown clusters and simulate a live consensus environment.\n\n`libtm` has essentially 2 types of tests:\n\n- regular unit tests that verify state -\u003e state transitions. These tests have “pause” and “resume” functionality that\n allows us to exactly verify each step of the state machine\n- cluster tests in which we simulate valid / byzantine environments. These tests spin up a multimode cluster, fully\n mocked, to simulate inner-node communication and consensus\n\nWe plan on expanding our testing suite even further, with more sophisticated cluster tests that cover an additional\nrange of byzantine scenarios. Currently, our code coverage sits at ~96%.\n\n## Conclusion\n\nOur exploration of the Tendermint consensus engine has highlighted the meticulous design and robust functionality that\nmake it a cornerstone of blockchain systems. The Tendermint consensus engine’s ability to maintain liveness and ensure\nfault tolerance through its well-defined states—*Propose*, *Prevote*, and *Precommit* — exemplifies the intricate\nbalance needed in distributed systems, where validators can navigate the complexities of reaching consensus even in the\nface of network delays and potential Byzantine faults.\n\nThe implementation of Tendermint within the Gno blockchain, and the broader application potential of\nthe [libtm library](https://github.com/gnolang/gno/tree/master/tm2/pkg/libtm), underscore the versatility and\nadaptability of this consensus mechanism. Our approach to developing `libtm` emphasized modularity and flexibility,\nensuring it could be utilized both within and beyond blockchain contexts. By decoupling the library from specific\nnetworking protocols, signing mechanisms, and validator set management, we aimed to create a tool that is both easy to\nintegrate and capable of supporting diverse use cases. It not only facilitates smooth blockchain operation but also\nopens up new possibilities for innovation in distributed systems.\n\nWe look forward to the ongoing improvement of Tendermint, and its continued impact on the blockchain and open-source\ncommunities.","2024-07-01T00:00:00Z","zivkovicmilos,petar-dambovaliev","gnoland,test4,consensus,tm2,libtm"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B0phdpSBd9v4V22O7akFf/SguIpD9nY8sVm/Wa1E/cGG7Z4HrFBnA+RZi04NZE2rNRXsiB4rEBSX7DPECJ8QBQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["road-to-mainnet","The Road to Mainnet \u0026 Beyond","\n\n## Gno the Difference\n\ngno.land is evolving as a cutting-edge decentralized operating system, setting a\nnew standard for building and governing diverse applications. At its core, it \nprovides an open-source smart contract platform designed to address systemic \nchallenges in centralized systems—censorship, lack of user autonomy, misaligned\nincentives, and non-transparent operations.\n\nThe true strength of gno.land lies in its broad applicability across domains. \nIt provides builders with the means to create secure, scalable, and trustless \napplications that redefine the possibilities of decentralized systems.\n\ngno.land has been advancing through a phased development process aimed at \ndelivering critical functionality at each stage. The network architecture \nensures that every milestone reinforces the foundation of a reliable and scalable\ndecentralized ecosystem that prioritizes transparency, forkability, and governance.\n\nLet’s take a closer look at the progress, key milestones, and what’s in store \nfor the future of gno.land.\n\n## Milestones Overview\n\nThe priority is to establish a secure and stable network. Once operational and \nthoroughly tested, the infrastructure for rewards distribution and development \nwill activate, accelerating the growth of Gno's ecosystem for both builders and \nusers.\n\nHere’s a look back at what we’ve accomplished so far.\n\n### 2021: The Beginning\n\ngno.land’s journey began in 2021, carried out by Jae Kwon, who laid the \ngroundwork to develop Gno's most revolutionary component, the Gno Virtual Machine (GnoVM), and bootstrap a simple\nTendermint node capable of executing Gno code.\n\nThe GnoVM is a virtual machine capable \nof deterministically running a subset of Go code, where smart contracts are\ncomposed together by simply “importing” them, much like working with any standard\nGo package. The initial work was focused on creating the first iteration of the \nVM, aiming to implement a complete feature set of Gno while accounting for\nvarious edge cases.\n\n[By the end of 2021](https://github.com/gnolang/gno/tree/fa412d4bb38f6d6485d9b61784b34e5d5ca64554),\nrudimentary tooling was available for experimenting with the VM, an extensive\nsuite of tests was in place, and an initial version of Gno’s state persistence \nwas implemented. The first commits for the \n[`boards` realm](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)\nwere introduced, and a functional chain executable was developed, enabling the \naddition of new packages and the ability to call functions within them.\n\n### 2022: The First Testnets\n\nThe full scope of the project only became evident in 2022, following the \nimplementation of the initial functionality. During this period,\nthe Gno project experienced a significant increase in contributors, \nresulting in a surge of new features, bug fixes, and developments\nacross multiple areas beyond just the VM. The Gno core team \ngrew to three full-time engineers, with additional hiring efforts underway.\n\n- Three testnets were launched (test1, test2 and test3), each with significant \nimprovements in usability and ease of access for newcomers, and more example realms.\n- The `boards` realm was improved, with the introduction of new features including\nediting posts, moderation, and links to easily construct replies to posts using\n`gnokey`. Additionally, thanks to the `users` realm, Gno users were able to register\na username which then showed up on the `boards` realm (among others).\n- The Onbloc team began the development of the first gno.land wallet,\n[Adena](https://www.adena.app/), marking the first steps to creating web dApps\nusing gno.land.\n- The RPC layer got many improvements, including `qeval` and other features to \ninspect Gno code.\n- Additional examples were added on creating GRC20 tokens, as well as string \nformatting utilities.\n- The first [workshops](https://github.com/gnolang/workshops) and presentations\nwere posted on how to program in Gno.\n- On the Gno side, the VM was consistently improved to fix more bugs and \nincrease its safety for use on-chain.\n\n[End-of-year status](https://github.com/gnolang/gno/tree/cabc1ad9a36319f68fed2bc888018bfcbff228a7)\n\n### 2023: The Growth\n\nIn 2023, the Gno team grew to twelve engineers, many of whom continue to form the \nGno core development team today. Around the same time, gno.land began seeing its\nfirst real-world applications, putting its capabilities to the test.\n\nAdditionally, new developer tools were introduced to enhance the Gno development\nexperience. These include utilities such as `gno doc`, `gno repl`, `gno lint`, \nalongside `gnodev`, which is the foundational tool for building realms on gno.land\ntoday.\n\n- [GnoChess](https://github.com/gnoverse/gnochess) was an early experiment to \nprogram complex Gno smart contracts, capable of running the backend of a chess \nserver. The Gopher community had the opportunity to experience GnoChess for the \nfirst time at GopherCon 2023, where gno.land highlighted Gno’s unique features \nand its potential to transform the decentralized application landscape.\n- [Test3](https://github.com/gnolang/gno/releases/tag/chain%2Ftest3.0), launched\nat the end of 2022 and continued in 2023, enabled builders to experiment with\nrunning full nodes and developing indexers. It provided\na persistent history of state for everyone.\n- Many API decisions, like `std.PrevRealm()`, were discussed and implemented.\n- The [License](https://github.com/gnolang/gno?tab=License-1-ov-file) for gno.land\nwas established as the *Gno Network Public License*, a fork of the GNU Afferro \nGeneral Public License.\n- [Berty](https://berty.tech/) and [Teritori](https://teritori.com/) became core \necosystem builders, creating integrated applications, communication tools, and \nsocial platforms.\n- The first official documentation was released, allowing more users to be \nonboarded onto gno.land without having to learn directly from the source.\n- The Beta version of [Gno Playground](https://play.gno.land/) launched, providing\na space to experiment Gno programs and realms directly from the web.\n\n[End-of-year status](https://github.com/gnolang/gno/tree/c3a4993335f8881989eb49e4efea6a3c1310061d)\n\n### 2024: The Refinement\n\n2024 prioritized the creation of a stable\nchain to launch as soon as possible. Throughout the year, the team focused on \ndelivering great stability on gno.land and being able to fix the most critical \nissues which stand in the way of launching the first stable network.\n\nThe launch of Test4 on July 15, 2024, was a major milestone in gno.land’s journey.\nOne of the main objectives of this testnet was to collect valuable knowledge and \nexpertise from operations like running a full node, testing validator coordination,\ndeploying stable Gno dApps, creating and testing tools that require persisted \nstate and transaction history.\n\nDuring Test4, thousands of bug fixes and significant advancements were implemented,\nincluding improvements to multi-node testnets and essential updates to `gnodev`.\n\n**Here’s a breakdown of the most important key features that make Test4 unique:**\n\n- **Multi-node Testnet:** This was the first testnet that was capable of running\non multiple nodes, making important steps towards decentralization\n- **Permanent and stable Testnet:** Unlike previous versions, Test4 was a \npermanent testnet, giving early adopters and builders a consistent environment \nto build and test dApps while also providing them with the most up-to-date stable \nenvironment\n- **GovDAO Proof-of-Concept:** Together with the launch of Test4, the first \nframework for decentralized governance was introduced, allowing selective \ncontributors to begin participating in decision-making processes.\n\nTest4 provided critical insights into running a multinode network and facilitating\non-chain governance. The result was a stable blockchain network with 7 validator \nnodes, as well as [5 governance proposals](https://test4.gno.land/r/gov/dao/v2),\n3 of them executed successfully based on the two-thirds majority.\n\nLater in 2024, [Test5](https://test5.gno.land/) was released. Main key elements \nthat Test5 enabled include: expanding the current validator set, which now consists\nto 17 validators, pushing additional GnoVM fixes, releasing GovDAO v2, and overall\nquality-of-life improvements for builders. View testnet’s current activity and \ndeployed realms on [Gnoscan](https://gnoscan.io).\n\nThe Gno Core Team also greatly focused on creating a stable experience on Gno:\n\n- Fixing many different bugs on the VM and making its behaviour more predictable \nand better documented.\n- Improving “quality of life” tools that show the power of developing on gno.land,\nlike the [transaction indexer](https://github.com/gnolang/tx-indexer/) and `gnodev`\n- Improving performance in critical paths and making behaviors of different APIs\nconsistent, and clearing out the standard libraries.\n- Improving the behavior of integration tools, like `gnoclient` and `gnokey`, as \nwell as kick-starting development of a mobile `gnokey` application.\n\n**The road ahead starts with the preparation of the gno.land’s Beta Launch. \nHere is how the path forward looks like.**\n\n## Beta Launch (UPCOMING)\n\nWe’re excited to announce that as 2024 comes to a close, we are gearing up for \n**Beta Launch**, anticipated in early 2025. Here’s what you can expect \nat genesis:\n\n1. Contributors who have built gno.land will form the initial Governance DAO (\"GovDAO\"),\ndistributing membership into three tiers—T1 (highest), T2, and T3 (lowest)—based \non the size and impact of their contributions as outlined in Jae Kwon's\n[GovDAO draft](https://gist.github.com/jaekwon/918ad325c4c8f7fb5d6e022e33cb7eb3).\nMembership is governed by age limits, contribution criteria, and a structured \npayment system tied to the GovDAOPayTreasury to ensure compensation directly aligns\nwith each contributor's level of contribution. **The GovDAO proposal remains an \ninitial draft subject to revisions before final implementation.**\n2. gno.land will intentionally maintain a modest transaction processing speed at\ngenesis; however, the network will enable early adopters to experience its\nfeatures and begin accruing rewards based on their contributions to the project\n**While not immediately claimable, these rewards will become redeemable in future\nphases to recognize early participants for their contributions**.\n3. gno.land will operate under a Constitution that establishes clear guidelines\non the community's rights, liberties, obligations, governance, economics, and \nboth current and future implementations of the gno.land chain. **The gno.land \ncontributor community will participate and engage in this effort.**\n4. The genesis token distribution of GNOT, gno.land’s native token, will primarily\nallocate the majority of the supply to the Cosmos Hub (ATOM holders) community, \nrewarding their alignment with gno.land’s mission. The remaining GNOT allocations\nwill be used to support gno.land’s community pool, various Builders DAOs or \nbuilders communities, and the core team builders (through NewTendermint), which \nwill play a crucial role in shaping the platform’s future growth and development.\n**The GNOT token will be distributed at launch but will initially be non-transferable.**\n5. While the GNOT token will not be transferable, users of the network will be \nable to use it to pay for gas fees. Token holders will be able to view their\nbalances, with expected support from Ledger, Adena, and,potentially, other \ncommunity wallets. This will allow users to deploy and interact with realms on\ngno.land. **Please note that the current chain design does not involve any staking.\nInstead, the voting power is determined by a member’s reputation.**\n6. Builders will have the opportunity to build and test dApps, thereby actively\ncontributing to the platform’s growth. **Although the GNOT token is not going to\nbe transferable, it will still be possible to mint, burn and transfer both \n*coins*** (a native kind of token, accessible through smart contracts using the \nbanker module) **and tokens implemented in code**, i.e. *GRC20 tokens*, similar to \ntheir ERC counterparts.\n\nBuilders should be aware that during gno.land’s Beta network state, the core team\nmay, in exceptional cases, need to revert the chain state. Such instances might\ninclude:\n\n- **Identification of a GnoVM bug** that requires a rollback and replay of transactions.\n- **Detection of a functional issue within a realm,** where the fix is well-defined,\nand replaying transactions is required to maintain consistency.\n\nThe Beta Launch will equip contributors with essential tools to build and \nexperiment on gno.land. We have published a \n[Launch Milestone](https://github.com/gnolang/gno/milestone/7) to track progress\nand explore the specific initiatives we plan to address up until launch.\n\n**Key components of the network at Genesis include:**\n\n- **GnoVM** : For the Beta Launch, the GnoVM is anticipated to be in a relatively\nstable and nearly feature-complete state. Bugs are an expected part of this \nphase; caution is advised to navigate potential issues.\n- **Tendermint2**: Tendermint2 will mark a significant leap in consensus \nperformance and scalability. Key improvements include faster block finality, \nmore robust validator management, and greater resilience to node failures.\n- **GovDAO Formation:** gno.land’s decentralized governance system will \nbe live at Genesis. Composed of the most active contributors, GovDAO will take \non responsibility for governing gno.land on-chain, handling decisions like \nprotocol upgrades, parameter changes, and other critical decisions to ensure \nthe network's long-term sustainability and community alignment.\n- **Boards:** Boards will operate as a single realm where users can create and \nparticipate in forums and message boards, subject to board-specific permissions.\nEach board will be managed through its own administration DAO.\n\n\n**Key tools for builders available at the Beta Launch:**\n\n- **Core dev tools:** A fully-featured set of tools for local development of Gno \ndApps and libraries, including `gnokey`, a powerful CLI key management tool and \nclient, `gnoweb`, a universal web frontend for gno.land, and `gnodev`, a local \ndevelopment solution stack offering a built-in gno.land node with a hot-reload \nfeature for smart contracts.\n- [**Gno Playground**](https://play.gno.land/): A browser-based tool to write,\ntest, run, deploy, and share Gno code, inspired by the Go playground. It offers\na simple and interactive way to experiment with Gno without the need for a local \ndevelopment environment.\n- [**Gno Studio**](https://gno.studio/): A powerful unified development platform \ndesigned to drive dApp development on gno.land. This product suite will include \na full-featured IDE, workspace management, production-grade capabilities, and \nintegrated tools to support efficient development workflows. It will eventually \nfeature an extensive marketplace for realm templates and ready-to-use solutions.\nToday, the beta version of Studio features a minimal version of the IDE via Gno\nPlayground, along with Connect, an app designed for realm interaction.\n- **Gno.me:** Envisioned to be a dynamic ecosystem of realms serving as an \neducational and community hub to empower builders through learning, collaboration,\nand engagement. The initial release, which is estimated to be ready by the Beta \nLaunch, will feature tutorials, a tooling section, and ecosystem updates, with\nplans to evolve into a vibrant space for community interaction and a comprehensive\neducational platform.\n- [**docs.gno.land**](https://docs.gno.land/): The official gno.land documentation,\ncovering basic concepts, getting started tutorials, developer guides, references, and more.\n- [**gno/examples**](https://github.com/gnolang/gno/tree/master/examples): \nReady-to-use example smart contracts and libraries written in Gno.\n- **Community Spaces:** Builders will have access to expanded tooling to build\nand deploy applications in [gnoverse](https://github.com/gnoverse), a community-led\nGitHub space, ensuring **gno.land** becomes a productive ground to encourage\nfuture innovation.\n\n## Mainnet Launch (UPCOMING)\n\nWhile our Beta Launch will introduce the core features of the gno.land network,\nthe **Mainnet Launch** will focus on expanding **gno.land**’s interoperability \nwith other chains. By providing a fully-featured, interoperable blockchain, \n**gno.land** will allow builders to integrate their products and services with \nthe gno.land network, therefore scaling the ecosystem.\n\n**Here are some key features of the Mainnet Launch:**\n\n- **Interoperability with IBC and ICS:** **gno.land** will integrate Inter-Blockchain\nCommunication (IBC) and Interchain security (ICS), allowing seamless interaction \nbetween **gno.land** and other IBC and ICS compatible chains. During this \nmilestone, modified versions of IBC and ICS will be integrated, versions that \nare fully compatible with existing Cosmos chains, called IBCx and ICSx.\n- **Gno SDK:** Builders will gain access to the Gno SDK, making the entire process\nof building and deploying dApps on the network much easier.\n- **Launchpad for dApps:** The release of a specific Launchpad for dApps will \nallow builders to quickly deploy and scale their applications on gno.land.\n- **Reward Distribution:** Contributors will be able to collect the rewards they\nhave accumulated from different contributions until this phase of the network.\n- **Performance Enhancements:** The Mainnet Launch will also introduce significant\nperformance upgrades, including sharding and increased TPS, to support more \ncomplex applications.\n- **Transfers enabled:** During this phase of the launch, GNOT tokens become \ntransferable. This transition will mark a significant milestone, allowing users \nto engage in token transactions, interact with the network and its applications, \nand contribute to the broader economic activities within the gno.land ecosystem.\n- **Boards**: A full social interaction dApp will be available. Users will continue\nto create and participate in forums and message boards, with the added ability\nto build their own decentralized social media platforms using a customizable \nframework. Forkability and DAO-driven governance will enable scalable, user-driven\ncommunities.\n\n## Call to Contribute\n\ngno.land puts at the center of its identity the contributors that are helping to\ncreate and shape the project. Contributing to gno.land’s development today means \nyou have the opportunity to make a notable impact at such a critical stage in the\nproject’s roadmap.\n\nFor now, we are looking for the earliest adopters; those curious to explore a \nnew way to build smart contracts and eager to be a part of the next generation of\nblockchain programming. Join us and [become a contributor today](https://gno.land/contribute)!\n\n## Conclusion\n\nWith more than three years in the making, gno.land is now closer than ever to\nlaunching. The **Beta Launch**, while representing an important step in gno.land’s\njourney, should be seen as only the beginning.\n\nFuture milestones are envisioned to bring improved performance, \ninteroperability with other blockchain networks through IBCx and ICSx, the \nability for builders to integrate their products and services with gno.land, \nonboarding tools for different user segments, enhanced support for builders and \nmuch more.\n\nWe will host a Q\u0026A on [Discord](https://discord.com/invite/gnoland), Thursday, \nDecember 19th at 6:30 pm CET/ 9:30 am PST, for the community to join and learn more about \ngno.land and upcoming milestones. Please add questions ahead of time to this \n[form](https://docs.google.com/forms/d/1DN8YneJ2-qvzsdnGsk_ZVA4CnBthUop3tgwXCodlF3M/edit) \nso we can make sure to address them.\n","2024-12-16T00:00:00Z","adrianakalpa,michelleellen,thehowl,salmad3,Kouteki,leohhhn","gnoland,gnovm,betalaunch,blockchain,golang"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XDMsMM00HeoE0EE5RglR7yZ2dsm2t1Ucy1XbfUiTlXgPSPs3OAe1HinVElsPvjuLOb3SOEae4qQAmvEaWiwiDA=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1734381535"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["seoul-retreat","Gnomes spotted in Seoul: Onbloc x Core Engineering Collaboration ","\n\ngno.land’s core engineering team has just wrapped up an intense and highly \nproductive two-week coding sprint with our core contributor, \n[Onbloc](https://onbloc.xyz/). Hosted in Onbloc's offices in the heart of Seoul,\nthis onsite collaboration stands as one of our most successful development cycles\nyet, setting new records for pull requests merged and advancing critical priorities\nfor our upcoming mainnet launch, especially with the GnoVM. \n\n[![office](https://gnolang.github.io/blog/2024-12-04_seoul-retreat/src/thumbs/office.jpg)](https://gnolang.github.io/blog/2024-12-04_seoul-retreat/src/office.jpg)\n\n## Starting with a Bang: test5 and engineering developments\n\nThe collaboration kicked off with the launch of test5. This milestone set the tone for two weeks of unparalleled productivity. During this sprint, the teams identified areas of collaboration including a feedback workshop on Gnoscan, Gnoswap, and the Adena Wallet, and topics such as gas, realm upgradeability, `gnoweb`, `tx-indexer`, infrastructure, and ABCI queries. The benchmarking and gas cost estimations are a priority as the team aims to optimize transaction efficiency for both users and developers. Realm development will advance significantly in the next few months, highlighting the need to enhance an existing realm's functionality and capabilities without creating a new one. To address this, a realm upgradeable pattern example is necessary to illustrate possible solutions to this challenge. This feature is particularly important for applications like Gnoswap, and was a key focus during the recent two-week sprint.\n\nAnother topic is the advancement of `gnoweb`, gno.land’s universal web frontend. \nThe team outlined a development [roadmap](https://github.com/gnolang/gno/issues/3191) \nfor iterative feature releases, ensuring adaptability and a user-centric experience \nthroughout the process. Key features include:\n- Design Overhaul: Creating a more user-friendly UI with a color palette \nmatching gno.land's true spirit.\n- UX Redesign: Establishing `gnoweb` as the go-to realm web frontend.\n- Code Refactoring: Enhancing security and maintainability.\n- Navigation Improvements: Simplifying user navigation and introducing a query \nsystem for direct linking to specific `gnoweb` content or commands.\n\nFinally, the team collaborated closely with Onbloc’s DevOps experts to streamline \nand automate the genesis creation and validation process for future testnets and \nthe eventual mainnet launch.\n\n## Strengthening Regional Community Connections\n\nBeyond the engineering milestones, this sprint fortified relationships within\nour contributor network and the broader community. Together with Onbloc, we \nhosted an informal meetup to engage with the Korean developer community and met\nwith Cosmostation, a longstanding South Korea-based Cosmos contributor. Over 15 \ndevelopers attended the event, eager to learn about gno.land’s vision and explore \nhow they could contribute. The enthusiasm from local developers and the \ncollaboration with Onbloc highlight the growing global momentum behind gno.land. \nTo further support regional growth, we are prioritizing multilingual content,\nstarting with Korean. In collaboration with Onbloc, we created Korean video \ncontent for the community - coming soon! \n\n[![office](https://gnolang.github.io/blog/2024-12-04_seoul-retreat/src/thumbs/meetup.jpg)](https://gnolang.github.io/blog/2024-12-04_seoul-retreat/src/meetup.jpg)\n\n## A Celebration of Culture and Collaboration\n\nWhile the primary focus was engineering, the experience in Seoul transcended the\ntechnical realm. Thanks to our gracious hosts at Onbloc, the sprint became a \ncelebration of cultural exchange. From lively discussions over authentic Korean \nBBQ to spirited karaoke nights and reflective visits to historical landmarks, \nour time in Seoul enriched our understanding of South Korean culture while\nunderscoring the importance of team and community building.\n\nAs we approach the mainnet launch, we’re excited to welcome others to join and \ncontribute to gno.land. It begins in the digital realm (no pun intended) but \nextends into meaningful human connections across the globe.\n","2024-12-04T00:00:00Z","michelleellen","gnoland,ecosystem,meetup,retreat,seoul"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Jl5I4N8PKHQecntv1l1qL/N0swwXTrwIGB0WBtxm29i8gVN+2AAqdsU6VnPi7ZdxkcdJyKFQNvWtRvxIS0vCw=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1733340252"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["tech-ama1","Gno.land Community Technical AMA #1 - Recap","\n\nYour questions, observations, and feedback are vital to our core development team. Not only do they give us an understanding of the types of applications and features the community would like to see but they help us formulate better ideas for developing Gno.land as we go. Before we dive into our second **Discord AMA on November 22nd @4pm UTC**, check out the community questions from our first technical AMA below answered by core Gno.land devs Jae Kwon and Manfred Touron.\n\n### Why did you choose Golang over Rust?\n\n**Jae**: “With parallelism offered by ICS1 [Interchain Security 1], the bottleneck becomes speed of innovation with safe code, rather than bare metal performance. So here, garbage collection, concurrency, embeddable structures, and clear spec are good primitives for the next-generation smart contract language.\n\nRust (or components of Rust** may be used to implement faster clients for gno.land in the future, but in terms of mindshare, I don't think Rust can flip Go due to its design choices. That's not to say that Rust is any worse than Go; they are different.”\n\n### Will Gno be its own hub? Will Gno provide ICS-like security to its own community?\n\n**Jae**: “Gno.land can be a \"hub,\" like \"git hub\" is a \"hub,\" but that doesn't mean it will offer ICS. If other chains solve ICS1 better, it makes sense for gno.land to be IBC-connected to zones that are not ICS1 replicated/secured with gno.land validators.\n\nIf we consider that validators of gno.land are better as contributors to the gno.land ecosystem (rather than general validator service providers** we may be more comfortable contributing to an awesome ecosystem but not entering the validator-as-a-service business.\n\nIt makes more sense to me that Cosmos Hub validators should own that business, which will eventually require validators to run their own server stacks and have data center infrastructure.”\n\n### How can one become a validator?\n\n**Jae**: “First, one has to become a member. We have not yet defined the full member system, but we will figure that out along the way. For now, we can say that we want first and foremost members who also validate, rather than impartial validators that only validate.”\n\n### How does Gno validate work? PoS? Proof of Contribution?\n\n**Manfred**: “The contributors DAO will elect validators and validators will have the same amount of power. They'll be focused on validating and will receive rewards for that job.”\n\n### What is Proof of Contribution? What kind of contribution will be credited?\n\n**Manfred**: “Proof-of-Contribution is a way to replace Proof-of-Stake with a metric based on the contributions. It's a variation of Proof-of-Authority where the authority is a DAO of contributors. After the 'Game of Realms** competition, we'll reward the best contributors with a tiered membership in the first version of Proof-of-Contributions DAO. The voting power and everything related to staking will be distributed across the contributors.\n\nLater, we'll add more flexibility to the membership with $GNOSH, allowing more accurate and fair rewards. Validators won't receive voting power with staking. The DAO will elect them, and they will all receive the same amount of power. Validators will receive rewards for their technical work, not for the amount of staked tokens they are bound to.”\n\n### Is there a document or resource that describes the key concepts in a Gno smart contract?\n\n**Manfred**: “We have yet to get a single top-level documentation, sorry. You can find documentation in the code, README files, issues, etc. We need to improve this. The community will be able to work on this during Game of Realms.”\n\n### Is there a big-picture diagram of the ecosystem?\n\n**Jae**: cosmos hub \u003c-- \"ec2+DTCC\"\ngno.land \u003c-- \"github for gno\"\n(cosmos hub etc) ICS zones \u003c-- \"holy grail\" scalable smart contracts\nyour chain \u003c-- \"gno inside\"\nyour app \u003c-- \"import gno.land/...\"\nblockchain-based communications/coordination/discourse platform \u003c-- us\n// DTCC: \"https://www.investopedia.com/terms/d/dtcc.asp\" // my point is, be a good reliable token hub with good governance.”\n\n### I'm a developer (PHP, Python**. How can I become a Gno developer? Please advise me on where to start.\n\n**Manfred**: “Start learning Go! One of the long-term goals of Gno is to make writing contracts as easy as writing web2 apps. The language is already strong in that direction, but we still need to catch tooling, documentation, tutorials, and language improvements. You need to have a good level with Golang and be autonomous to start building on Gno.\n\nOne of the Game of Realms tracks will be to work on everything related to onboarding more people. This will be the best place to write specific tutorials to onboard people from other ecosystems or languages.”\n\nWhat are Realms, and what is r board?\n\n**Jae**: “A realm is a Gno package with state, that represents a smart contract with storage and coins. The other Gno packages don't have state, and so are \"pure\" packages that can be imported from other realm or non-realm packages. Like land-tax, realms must be whitelisted or pay storage upkeep for their state. You can create new realms by uploading a new package with the package directory starting with /r/REALM/NAME.\n\n/r/demo/boards is a Gno package that renders a message board. It is a proof of concept message board written in Gno. Since we need to preserve messages, it is a stateful (realm** package. You can see the files of the demo boards, like:\n\nhttps://test3.gno.land/r/demo/boards/board.gno\n\n### How do external packages get imported?\n\n**Manfred**: “Example: when you call your smart contract from Go during testing, how can/should that smart contract load external packages?\n\nA gnolang can only import other gnolang contracts/libraries that were published on-chain. If you want to import an external Golang library, you need to port it to Gno, and publish it as a library, then you can import it from a top-level contract.\n\ngnodev test is an exception, it basically creates an in-memory Gnolang VM, publishes the dependencies (automatically detected**, and executes the test. The tool can act differently from the real on-chain experience. Note that we'll improve the gnodev so it can automatically download on-chain contracts or use custom local paths, to support advanced development workflows.”\n\n### What is a Gnode?\n\n**Jae**: “I don't like the name \"Gnode\" because it's too generic, but the idea is to build Gno-based building blocks for GnoDAOs, as MyGnode embeds components (of owners, treasury, board, etc.** here:\n\nhttps://github.com/gnolang/gno/commit/b9128b1d69f02dbb49be883e0c70fe9d3fc40dcc\n\n**Manfred**: “We can change the name 🙂. A Gnode is a DAO implementation that implements an interface allowing them to interact. A Gnode can have a parent and have children. Top-down interactions may be funding, grants, and approvals. Bottom-up interactions may be reporting or voting. The implementation is flexible. You can have DAOs managing a Gnode, its treasury, and voting the cross-Gnode interactions. You can have Gnodes with an elected leader or one driven by a bot or another blockchain. One of the goals of Game of Realms will be to propose various implementations of Gnodes.\n\nAt the level of Gnoland, we will probably have a top-level Gnoland Gnode managing a global treasury and vision. Then various technical and non-technical child Gnodes manage subsets of the treasury and their tasks. They may also have children. With IBC2, Gnodes could be distributed across different chains.”\n\n### What is the timeline for IBC2?\n\n**Jae**: “After the launch of gno.land, IBC2 is permissionless innovation anyone can try for, so I imagine not long after that. After initial implementations, I bet we will want to tweak/optimize the Merkle tree further, but this can come after IBC2 demos.”\n\n### Can you tell us more about Game of Realms?\n\n**Manfred**: “Game of Realms is a competition to build the first contracts of Gnoland and experiment with proof of contributions. The first step of the competition will be to build the missing tools for the second step. So people will compete to write the DAO that will review the other contributions and allocate points.\n\nThe rest of the competition will be about competing to write the best contracts for well-known categories or make non-technical contributions. At the end, we'll have strong foundations (libraries, rules, tutorials, dApps** to help upcoming builders to start in better conditions. The best contributors will earn rewards and membership in the future DAO of contributors that will co-own the chain.\n\nWe'll have the first version of a Proof-of-Contributions-based DAO of contributors. Focus on one of the official tracks: build a contract suite to compete with Cosmos' governance module to eventually complete Cosmos Hub governance. Realm boards are basic discussion contracts that can be used for discussions, and be extended for governance, launchpad, or other things mixing discussions and DAO actions.”\n\n### Is it possible to build code with gno.land directly online?\n\n**Jae**: “We will make the sandbox staging.gno.land environment easy to access, and that will be preferable to testing on gno.land directly. The gno codebase tries to remain minimal so it shouldn't be difficult to run it locally.”\n\n**Manfred**: “I've seen people writing contracts from VSCode on an online VSCode instance. Someone could create a VSCode template configured to communicate with staging by default with a dummy wallet containing tokens.”\n\n### Is there a plan to be able to use the Gno VM with a Cosmos SDK-based chain?\n\n**Manfred**: “This is one of the plans, yes. And not only on Cosmos SDK. But we don't have a clear plan about how it will happen yet.”\n\n### How about interoperability?\n\n**Jae**: “Regarding interoperability, will it be between Gno chains, with Cosmos, or with more chains outside of Cosmos? If it is with chains outside of Cosmos, which ones, in the short and long term? I think if the latter were to come to pass, the world of web3 and NFT could be awesome. Short run, Cosmos SDK-based chains with IBC1 for code import and cross-chain smart contract calls; but with IBC2/Gno it's really up to the smart contract logic.”\n\n### Are Gno.land tokenomics deflationary?\n\n**Jae**: “There will be $GNOT, and this token will be used for spam prevention fee payment, and it will be deflationary. Previously, we discussed $GNOSH as a secondary token, but we have moved away from the $GNOT/$GNOSH model and will keep $GNOT while making gno.land more about membership among levels of peers.\n\nI think we need an alternative to the Cosmos Hub that is more people-centric than stake-centric, and where alignment is not bought or sold but depends on contributions and value alignment proven over time. The hope is that by moving away from a pure tokenomics perspective and moving into the realm of politics and ethics along with general economics we can curate a different kind of culture.”\n\n### Are there any collaborations with other projects to build on Gno?\n\n**Jae**: “Yes, why don't we make this truly open, in the style of free software, so that we can build upon a common VM design? The only thing I want to retain control over for a temporary duration of time is the regulation of trademarks, like \"gno\", \"gno**\", \"*gno\" (but you can use the license to fork this project however you want); and we want proper attribution, but the AGPL fork license suggests how we can work together collaboratively.\n\nThe GNO VM can be used on any chain if it follows the AGPL style license, which we are calling the \"Gno GPL\". Blockchains can still be composed of components licensed with compatible open source software. We can collaborate indirectly by working and contributing to the same codebase, and know that the code we are building together will always be available for you to use for your chain, as long as it remains and is offered as GNO free software.\n\nSo anyone can build GNO smart contracts into their chain for free, according to the license we are deriving from the GNU (not GNO** AGPL license. You don't have to pay gno.land or anyone if the license is followed. Example: we will collaborate with the Cosmos Hub and Cosmos/ATOM community to offer gno DAOs to be hosted by ICS1, and help bring collaboration tools for Cosmos. So this is how gno works with Cosmos Hub assuming ICS1 is solved. As for gno.land, we can start off with an independent gno instance for the Cosmos Hub's gno shards, and later allow the IBC importing of vetted code from gno.land/*.”\n\n### Apart from Adena, are there any plans for another wallet?\n\nJae: “I think what we need are a few competing base implementations that best leverage the framework they build upon, rather react or minimal vue; and to create common core libraries along the way if reasonable. But there ought to be more than one approach for such a key component, with special care taken into consideration for security. Like, I don't agree with Keplr asking so easily for a 12/24-word mnemonic, even if the implementation is secure, it is going to become a problem. PSA btw.”\n\n### Wen mainnet?\n\n**Jae**: “Some time by Q2 next year would be good. But as policy, we can't commit to a date, because everything has to be ready first before the official launch. Our thesis is that having the DAO with sub-DAOs will allow us to reach the end result in a faster way via some form of parallelism. First, we need DAOs to assess new code, and better UX for managing something like upgrades to the Cosmos Hub. Once we have the DAO running on testx.gno.land, for some x \u003e 4, and we have checked all vital TODOs, we will know that we are ready for \"mainnet.\"\n\n_Do you have more questions for Manfred or Jae? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and be sure to join us for our second **AMA on December 6th @4pm UTC.**_\n","2022-12-05T16:15:00Z","manfred,jae","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-launch","Game of Realms Is On: Win Rewards for Contributing to Gno.land","\n\nPhase one of Game of Realms, a worldwide competition to build the best Gnolang smart contracts, **is now open**. Game of Realms is a high-stakes contest with a total prize pool of **133,700 ATOM** that will see participants compete for tiered membership to co-own the Gno.land blockchain, the next-generation smart contract platform that uses the Gnolang (Gno) programming language. A series of complex technical and non-technical tasks will challenge contributors to create innovative patterns that push the chain to new limits. If you’re interested in helping build the most intuitive smart contract platform in web3—while gaining rewards for your contribution—join today by opening a [PR here](https://github.com/gnolang/gno).\n\nThe Game of Realms contest will allow participants to get a feel for the Gno.land platform while building smart contracts and applications in the ecosystem. It will take place in two stages, phase one and phase two. Phase one is about building the core infrastructure, tools, and tutorials necessary to open the gates to broader participation and will be held off-chain. Phase two, on the other hand, will take place after the successful completion of phase one and be held on-chain, where contributors will build smart contracts on the platform.\n\nIn addition to the ATOM prize pool, the best contributors will also be awarded (mostly) initial-level membership to govern the upcoming mainnet. Membership will be allocated according to the quality and extensiveness of the contribution—the higher the quality, the higher the tier, and the greater the voting rights and rewards. The top equal members will be composed of peers who have contributed the most to the ecosystem and have an understanding of its core components. Top members will also have aligned core moral values. This is essential so that members can maintain the chain together according to its Constitution (TBD** and ultimately create a sustainable ecosystem that rewards all valuable contributions.\n\n## Game of Realms - Phase One (Off-Chain)\n\nWhile we aim to encourage cross-collaboration between devs and non-techs, phase one of the contest is recommended for advanced developers who are more autonomous and can contribute with limited guidelines and support. Accounting for around one-third of the total **133,700 ATOM** prize pool, getting a headstart in phase one will allow seasoned devs to kick the tires on the Gno.land platform, contribute with limited competition, and build the tools needed to open the second phase.\n\nDuring phase one, participants will open PRs against repos from the Gnolang organization. Phase one contributors will be expected to document and share their work efficiently to enable others to use it without conflicts. Your contribution is vital to the success of the contest, the Gno.land platform, and the Cosmos ecosystem at large, especially now, with discussions to move the Cosmos Hub’s core operations on-chain by establishing a DAO system.\n\nThe first DAO to be created will be the [Decentralists DAO](https://github.com/decentralists/DAO), which will provide Cosmonauts with transparency, accountability, and decentralization. The Decentralists DAO will improve discourse, organization management, development, and conflict resolution through smart contracts, and will organize itself into a set of tightly-aligned sub-DAOs dedicated to specific topics, such as engineering and funding.\n\nSo, how does this relate to Game of Realms and what type of contributions are judges looking for? Here are some examples, in order of priority:\n\n* **Define and Implement an Evaluation DAO:** For the Game of Realms contest, a sub-DAO – the Evaluation DAO – is needed to evaluate contributions during phase two and attribute rewards accordingly. Using a DAO will allow community members to vote on the best contributions for the platform. Implementation of the Evaluation DAO is the only step that must be approved by the core team because of its key role in the competition and the future of the platform. Once the DAO is in place, all previous and further contributions will be reviewed collectively by DAO members.\n\n* **Create Tutorials to Onboard More Participants:** We need experienced devs to write or record tutorials to help more people get started during phase two of the competition (and beyond) and to help grow the Gno.land developer community. These tutorials can include topics like interacting with the chain from the CLI, step-by-step guides to creating smart contracts in Gno, tips for running a local dev environment, fast prototyping with gnodev, or they can be tutorials dedicated to certain audiences, such as developers coming from Solidity or web2. All tutorials should be added to the [awesome-gno GitHub repo](https://github.com/gnolang/awesome-gno).\n\n* **Define and Implement a Governance Contract Suite:** In this challenge, developers will be expected to define and implement a governance contract suite capable of competing with existing chains’ governance modules. If you think you can improve the governance system of Cosmos Hub, this is your chance to show us how!\n\nPhase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the DAO and awarded during phase two.\n\n## Game of Realms - Phase Two (On-Chain)\n\nPhase two of Game of Realms will onboard more people to the platform and begin as soon as sufficient materials are completed from phase one. Accounting for around two-thirds of the total 133,700 ATOM prize pool, phase two will be open to both developers and non-technicals who can follow tutorials, create smart contracts, or provide other important contributions to win rewards and scale the platform. As phase two will be held directly on-chain, contributors can submit their contributions to the DAO without publishing them on the main GitHub repo. However, we strongly encourage you to use GitHub as it’s an important resource that helps the community gain a better understanding through specific examples.\n\n_We are currently preparing the challenges for participants of phase two and are looking for your input. Let us know what type of smart contracts you would like to see (minimal or with multiple features) in our upcoming Game of Realms AMA on Tuesday, January 24 at 4 pm UTC. Note that this is a text based AMA so make sure to add your questions before or during the AMA in the #AMA-questions channel on the [Gno.land discord](https://discord.gg/S8nKUqwkPn).\n_Once we have collected your feedback and requests, we will finalize the challenge categories. You can visit the [Game of Realms repo](https://github.com/gnolang/game-of-realms) for more information._\n","2023-01-18T15:36:00Z","","gnoland,game-of-realms,launch"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-ama1","Gno.land Community Game of Realms AMA #1 - Recap","\n\nWith Game of Realms officially in phase one, core dev Manfred Touron jumped on Discord to answer Gno.land community questions about the ongoing high-stakes competition. From starting and end dates to participation requirements and a description of tasks, look for your answer below. If you have further questions or want to join our community, come and find us on the []Gno.land Discord](https://discord.com/channels/957002220384182312/1065646963825066044). The core team will be hosting regular “office hours” sessions soon so you can discuss your ideas with them directly.\n\n## Q. How are the tasks in the issues assigned?\n\nWe received questions about how the tasks in the Game of Realms issues are assigned. Should submissions contain the whole implementation? Is the following task \"available** when the previous one is completed? How is the “sync” happening?\n\n**A.** TL;DR:\n\nEverything should go smoothly and we will be leaving room for negotiation if any review looks invalid. Once it has been established, the evaluation DAO will enforce how to submit a contribution. In the meantime, there are official communication challenges that we encourage participants to use. People are also free to work in stealth mode, with the risk of finishing too late or losing points for being bad at collaborating.\n\n----\n\nWe expect the current issues to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything. Let's discuss the cases we believe will happen:\n\n### Case 1\n\nWe're in phase 1, people want to contribute but can't manage to do everything, so they will try to participate as much as they can. They will participate on the issue or in Discord by indicating their desire to participate, by sharing ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\nThe only thing is that we're fully remote. We don't know each other, so everyone needs to be good at communication. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Case 2\n\nWe're in phase 2, and a small contribution is done by an individual. We just review it, and that's done.\n\n### Case 3\n\nWe're in phase 2, and a contribution is big and requires small steps. Probably, the Evaluation DAO will ask individual participants to submit their contributions so they can allocate points for the individual contributions. But maybe the Evaluation DAO prefers to review big tasks as a whole, and then split the prize, as we'll do in phase 1. We don’t have clarity on this at this stage, as it will be up to the implementers of the Evaluation DAO to design the best system for that case.\n\n## Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\n**A.** Not yet. The leaderboard will come in phase 2. One of the critical parts of the Evaluation DAO will be to allow contributors to submit evidence for tasks. Votes and point allocations will also be transparent. This will make sense for future Proof-of-Contributions, too. We'll also develop a leaderboard to make it easier to follow the competition, but this will probably come after the Evaluation DAO is running.\n\n## Q. What will the overall tasks consist of?\n\n**A.** Here is a non-exhaustive list:\n\n* Onboard more contributors ([create tutorials and documentation](https://github.com/gnolang/gno/issues/408)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n## Q. At what point in the Game of Realms timeline/phase are we?\n\n**A.** We are at the beginning of phase 1. We plan to create a website soon so you can keep track of the status and, as I mentioned, a leaderboard will come in phase 2.\n\n## Q. What will be the contributions, how will points be calculated, and are there tasks for non-programmers?\n\n**A.** During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThere are more tasks for programmers, but multiple parts are for non-programmers too.\n\nDuring phase 2, it's hard to be sure about anything yet. Game of Realms is a competition to experiment with Proof-of-Contribution, which will replace Proof-of-Stake on Gno.land. If things go the way we imagine, then consider that the stakeholders (contributors** will allocate points to contributions that make sense for the project. The contributors won't lose points, but by allocating points, they will dilute their own point stack.\n\nWe expect the Evaluation DAO to attribute points to whatever makes sense to make the project better. We'll have some task ideas for phase 2, including for non-programmers. You can likely consider that even if the core team doesn’t control the DAO, its suggestions will be approved by the Evaluation DAO because we deeply want the project to be a success.\n\n## Q. What are the requirements to start participating?\n\n**A.** There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic. It may be better to work with others and share a prize instead of taking the risk of implementing everything in stealth mode and not being the first.\n\n## Q. Is there a fixed period of time for the end?\n\n**A.** No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2. This will probably take between 1-3 months. The end date for phase 2 will be announced during phase 2, which will probably last between 2-3 months. This is when we’ll send the prize rewards. After Game of Realms, people will continue to earn contribution points by contributing to the project, which will give them memberships on the future mainnet.\n\n## Q. Is it possible to install a local testnet to get a proper local development environment?\n\n**A.** You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\nThere are multiple ways to interact with Gno:\n\n* Using gnodev allows you to use the GnoVM, without a blockchain. This method is super fast and allows you to use development patterns like TDD, where you test your implementation multiple times per minute.\n* Running a localnet, by running the gnoland command and then configuring our tools like gnokey to use localhost:36657\n* Using the staging network hosted on https://staging.gno.land reset regularly and you can use the hardcoded test key or use the faucet\n* Using the official testnets\n\nIf you prefer to run a full blockchain node instead of just playing with GnoVM, you should play with the gnoland binary. This video shows how to do this in practice:\nhttps://www.youtube.com/watch?v=-BlnEXCs0eI\n\nBelow is a further resource that may also help you:\n\nhttps://test2.gno.land/r/boards:testboard/5\n\n## Q. Will there be a list of what needs to be tested? When will the tests start?\n\n**A.** The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n- Evaluation DAO\n- Tutorials\n- Governance Module\n\nThe core team will actively review this and decide what contribution deserves to get prizes.\n\nDuring phase 2, we’ll use the Evaluation DAO developed during phase 1 to review old contributions, even contributions made before the competition, as well as ongoing contributions. Right now, we have an issue gathering interesting topics for phase 2 here, but any contribution can be reviewed by the DAO, including things that are not listed:\n\nhttps://github.com/gnolang/gno/issues/357\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2y ago.\n\n_Do you have more questions for Manfred? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and watch out for our next AMA on Tuesday 7 Feb at 4 pm UTC._\n","2023-02-03T15:44:00Z","manfred","game-of-realms,gnoland,proof-of-contribution,dao,governance"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-phase1","All You Need to Know About Game of Realms: Phase One","\n\nGame of Realms, the worldwide competition to find the best contributors to Gno.land, is currently underway. Unlike some contests you may have entered, we're doing things a little differently. We want participants to be instrumental in building the Gno.land platform with meaningful contributions that help shape the direction of the project – either by writing the best Gnolang smart contracts or contributing to the core blockchain. It’s not just about winning prizes but becoming a meaningful contributor. We encourage participants to collaborate on the challenges – your contribution will be rewarded on individual merit.\n\n## Phase One: The Basics\n\nPhase one of Game of Realms is about laying the foundations to onboard more people to the platform. You’ll need to be an advanced developer who wants to create core materials that power the platform every day. You should also be willing to document your work and even write tutorials and guides that help us advance to the second phase of the competition.\n\nThere is a total prize pool of 133,700 ATOM available during the Game of Realms competition, one-third of which (44,121 ATOM) will be allocated to contributions from phase one. During phase one, which we expect to last between 1-3 months, participants will open PRs against repos from the Gnolang organization. For additional information on the competition phases and timelines, be sure to check out the following resources:\n\n- [Game of Realms blog post](https://test3.gno.land/r/gnoland/blog:p/gor-launch)\n- [Game of Realms AMA recap](https://test3.gno.land/r/gnoland/blog:p/gor-ama1)\n\n## Phase One: The Challenges\n\n**Evaluation DAO**: To ensure contributions in Game of Realms are rewarded fairly, we need an Evaluation DAO. Allowing community members to vote on the best contributions and decide how much they are worth provides a level playing field for all. We’re therefore seeking your skills in DAO development and implementation. This is one of the most important challenges of phase one and the only challenge that must be approved unilaterally by the core team because of its key role in the competition and the future of the platform. Read more about the [Evaluation DAO challenge on GitHub here](https://github.com/gnolang/gno/issues/407).\n\n**Tutorials \u0026 Documentation**: So that we can progress to phase two and open up the Gno.land platform to a broader audience, we need written and recorded tutorials, guides, and documentation from phase one participants. There are almost no instruction manuals when it comes to this new frontier as the only smart contract platform using the Gnolang programming language. Help us to create materials that will onboard more contributors to Gno.land. Read more about the [Tutorials \u0026 Documentation challenge on GitHub here](https://github.com/gnolang/gno/issues/408).\n\n**Governance Module**: We want Gno.land to adopt the fairest and most effective governance solution possible; one that encourages voter participation and is transparent and accountable. We’re looking for contributors to define and implement a governance contract suite that rivals existing ones, such as the Cosmos Hub, and be implemented by other projects. Can you improve on that? Show us how! Read more about the [Governance Module challenge on GitHub Here](https://github.com/gnolang/gno/issues/409).\n\nAll phase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the Evaluation DAO and awarded during phase two.\n\n## Judging Criteria - What Wins Points?\n\nWhat will the judges be looking for when assessing contributions? You can find individual details on the corresponding GitHub issue regarding each challenge, but to get you started, the Game of Realms contest prioritizes communication and collaboration. We encourage participants to work together to find the best solutions. You will be awarded individually for your contribution but working as part of a team is highly valued. Good documentation that expresses high learning efficiency and shows how the task was completed in an educational way will also win additional points, as will a high standard of quality, great UX, and the ability to follow the contribution guidelines.\n\nAs this is primarily a developer-oriented competition, most of the organization for Game of Realms is happening on GitHub; come by the repo and [visit issue #408](https://github.com/gnolang/gno/issues/408) to contribute to tutorial and documentation writing for Gno.land.\n\n## Rules of Engagement\n\nAll participants must keep in mind a strict code of conduct and specific rules and criteria to ensure fair play. Throughout the Game of Realms competition, no plagiarism will be tolerated at any time. Participants may submit what they wish, however, any project that has already been allocated rewards or received compensation in any other hackathon or similar contest will not receive double pay.\n\nThat’s all for now. If you have more questions about Game of Realms or Gno.land you can join us in our next Office Hours session on Tuesday, March 14, 2023, at 4 pm UTC. You can also connect with other participants in the [Gnoland Discord](https://discord.com/invite/S8nKUqwkPn).\n\n## Game of Realms Phase 1: FAQ\n\nBelow are some frequently asked questions about phase one of the Game of Realms competition. If you can’t find your answer below, jump into our Discord and ask, or join us for a live “Office Hours” session with the core team.\n\n### Q. How are the tasks in the issues assigned?\n\nA. There are official communication challenges that we encourage participants to use.\n\n### Q. Can I work individually or should I work as part of a team?\n\nA. You are free to work in stealth mode, but please keep in mind that you risk finishing too late or losing points for being bad at collaborating. We expect the issues in phase 1 to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything.\n\n### Q. How can I find collaborators?\n\nA. Participate on the issue or in Discord by indicating your desire to participate, by sharing your ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\n### Q. How can I ensure good collaboration?\n\nA. Since we are fully remote, collaborating can be a challenge and the best collaborators will be rewarded. We don't know each other, so having good communication is key.\n\n### Q. How will my collaboration be evaluated?\n\nA. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Q. How much is the prize pool?\n\nA. There is a total prize pool of **133,700 ATOM** available during the Game of Realms competition, one-third of which (**44,121 ATOM**) will be allocated to contributions from phase one.\n\n### Q. When will I receive my rewards for my collaboration?\n\nA. Rewards will be allocated retroactively by the Evaluation DAO during phase 2.\n\n### Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\nA. Not yet. The leaderboard will come in phase 2.\n\n### Q. What will the overall tasks consist of?\n\nA. Here is a non-exhaustive list:\n\n* Onboard more contributors (create tutorials and documentation)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n### Q. Are there tasks for non-programmers?\n\nA. There are more tasks for programmers, but multiple parts are for non-programmers too. During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\nhttps://github.com/gnolang/gno/issues/540\n\n### Q. What are the requirements to start participating?\n\nA. There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic.\n\n### Q. Is there a fixed period of time for phase 1?\n\nA. No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2.\n\n### Q. Is it possible to install a local testnet to get a proper local development environment?\n\nA. You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\n### Q. Will there be a list of what needs to be tested? When will the tests start?\n\nA. The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n* Evaluation DAO\n* Tutorials\n* Governance Module\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2 years ago.\n","2023-03-12T14:02:00Z","","gnoland,game-of-realms,faq"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-1","The More You Gno: Gno.land Monthly Updates","\n\nWe made progress across the board at Gno.land last month, from onboarding more devs to receiving an influx of contributions to the Game of Realms contest. To encourage development and discourse, we set up a biweekly public developer call in addition to our biweekly Office Hours sessions. Anyone can join, ask questions, and give their suggestions on how to shape the Gno.land platform and become a contributor. Last month, we covered several pressing topics from Gno IDE and Gno.land website language, to GnoVM, IBC, and ICS. Jae also came back to the circuit in March with two IRL workshops for devs at side events during EthDenver and Game Developer Conference (GDC) in San Francisco.\n\n## Developer Updates\n\nYou can find the live streams of the new biweekly public developer calls on [Gno.land YouTube](https://www.youtube.com/@_gnoland/videos) as well as access the agendas on [GitHub](https://github.com/gnolang/meetings/blob/main/notes/2023_03_15_dev_call_notes.md). The main talking points this month were Gno IDE, Gno.land website language and UX, garbage collection, bug fixes, and how to bring IBC and ICS to the platform. We are working on all these issues concurrently but the order of release will be Gno.land mainnet, IBC, and then ICS (this is reflected in the DAG below).\n\n[![Gno.land mini DAG](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/mini-dag.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/mini-dag.png)\n\n## Gno.land Website Language\n\nWe want to add more features for developers, such as libraries to make writing interfaces better and more consistent. There is an open topic for frontend developers with typography skills and library developers to create a UI framework for markdown or a custom rendering system.\n\nInternally, our core team is working on improvements to Gno.land’s website, making it easier to navigate with shorter columns while ensuring the text is markdown centric and readable in plain text and the GitHub rendering machine. We hope to achieve this using CSS and having classes for vertical columns, without having to make an extension to the markdown parser.\n\n## Gno IDE\n\nGno.land developer experience team is working on a web-based Gno IDE for quickly building Gno realms and packages right on your browser by just visiting a web app. Gno IDE will provide much improved UX for everything around building a realm (including making the testing easier), and additional features like autocompletion in the editor. Gno IDE will contain all the features you would expect from an IDE as well as valuable APIs for devs building tools around Gno.land with the public Gno Infrastructure.\n\n[![Gno IDE](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/gno-ide.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/gno-ide.png)\n\nGno IDE will have multiple modes to support different use cases. The normal mode will be used during everyday developments (as you’re familiar with from other code editors). The presentation mode is for high accessibility and readability. You can use it during video calls or physical workshops while projecting your screen to an audience. The third and perhaps most interesting mode is the embedded mode. Use this mode to embed the IDE into websites and blogs. This feature is especially useful for tutorials to test out sample code, run it on the real testnets, and play with it.\n\n## IBC and ICS\n\nAs depicted in the DAG above, Gno.land mainnet will launch first, followed by IBC and then ICS. We will focus on implementing IBC1, as we strongly believe in the ICS model and want to be a consumer of an existing Cosmos chain. We want a common ICS implementation that works across many hubs because Gno.land is a type of hub that will need its own ICS to scale while providing GnoVM on consumer chains on the Cosmos Hub. Our next step now is to find the best way to configure ICS for Gno.land and make GnoVM available as a consumer chain in the Cosmos Hub system.\n\nRegarding IBC, we will use the current implementation that was written for the Cosmos SDK and port that over to Tendermint2. We anticipate some issues along the way including security patches that need to be applied to our code base. There are multiple ongoing directions and discussions about how to bridge Gno.land’s smart contracts to IBC, which are essentially Interchain smart contract interactions.\n\nOne possibility is to have an API that submits events to a queue of outgoing events, and another queue to receive and consume events asynchronously. This mechanism could work for IBC2 to have rich inter-contract Interchain features, and the same API could work for Interchain plus smart contract interactions that require advanced options. We discussed a proposal to create a standard for Interchain contracts so that IBC2 could eventually be standardized eliminating limitations by applying it with an EVM, other languages, and CosmWasm.\n\nThis protocol could be based on Protobuf or a similar well-known syntax definition protocol so that we can push the Interchain to the next level. IBC2 will be safe and fast and replace vulnerable atomic bridges between multiple technologies. This is a major update that we are committed to developing and we need help identifying all the challenges involved. Working on IBC integration, separate from the Gno.land mainnet launch, will require significant time to understand how the light client system works. If you’re interested in taking on this task, let us know and we’ll set up a group. IBC will likely be the most important challenge of Game of Realms phase 2.\n\n## Garbage Collection\n\nCurrently, our work on garbage collection does not address the problem in the traditional Golang sense of dealing with memory efficiency. Instead, we are progressively optimizing and improving the main state tree by automating the clean-up of orphan nodes. The next phase will be targeting the official garbage collector component to begin work on memory management as we have some common Golang garbage collection challenges, but are identifying some uncommon ones too.\n\nWe need to consider elements like where to hold our objects because this is tied to releasing them in a concurrent lock-free way. We also need a good data structure. This is ongoing research as of now to implement a dedicated routine to synchronously clean stuff in a non-blocking way.\n\n## Game of Realms\n\nThis month, we have seen a massive uptick in contributions to Game of Realms phase one with a tidal wave of issues, general discussions, and PRs. One of the biggest things we worked on was adding support for MOD, which is a version of Go mod with an easier interface to manage your dependencies and version your dependencies. You can track the ongoing issue on GitHub [here](https://github.com/gnolang/gno/issues/390).\n\nThere have been some really strong contributions to the Evaluation DAO and governance module, as well as a big CLI refactor that went into our code base. We've also seen people contribute contracts like GRC 1155 or general improvements to existing realms, with many suggestions for fixing bugs. Finding bugs and reporting what people want is a good indication that the Gno.land platform is being picked up and gaining adoption.\n\nYou can find the Office Hours recordings that cover Game of Realms on YouTube [here](https://www.youtube.com/watch?v=JTmNg-b6Lcs).\n\n## Developer Events Stateside\n\nGno.land hosted a lively meetup during EthDenver last month where Gno.land founder and core dev Jae Kwon gave a talk for Solidity developers called “Gno.land, the Inevitable Next Generation Smart Contract Platform.\" He compared and contrasted Gno.land and Gnolang to Solidity, and showed Ethereum developers how the GnoVM shifts the smart contract paradigm. You can watch the [recording here](https://www.youtube.com/watch?v=IJ0xel8lr4c).\n\nAlso in March, Jae hosted a gaming workshop at a side event during the infamous Gaming Developer Conference (GDC) in San Francisco. “Gno.land for Game Developers, Building Your App in Web3,\" showed participants a sample gaming app built on the Gno.land platform and offered them the chance to try their hand at writing a smart contract for their app with Gno.\n\n## Virtual Events - How to Build a Forum\n\nCore tech lead at Gno.land Miloš Živković held a virtual workshop for Go devs called “How to Build a Forum.” He showed how Gnolang is a fast and simple way to build and launch smart contracts using the Gnolang interpreter virtual machine that interprets Gno and eliminates the need for any servers or ORNs.\n\nThe VM allows for the memory state of your Gno.land application to persist automatically after every transactional function call, which is a completely new way to handle transaction volume and memory recall. You can watch the [full tutorial here](https://github.com/gnolang/workshops).\n\n*We’d like the community to get involved in Gno.land’s monthly updates, so if you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-04-15T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-2","The More You Gno: Gno.land Monthly Updates - 2","\n\nOver the past few weeks, our core devs and ecosystem contributors have been making massive strides on Gno.land. There’s a lot to cover in the second edition of *The More You Gno*, from updates on Tendermint2 and GnoVM to stack/frames management, Gno IDE, and plenty more. We’ll also see what some of the external teams contributing to the platform have been up to, including Gno.land’s first decentralized exchange, GnoSwap, and Adena compatibility with GRC20 tokens. Check it out.\n\n## Tendermint2\n\nWe’re making steady development progress on Tendermint2, which focuses on simplicity of design, minimal code, minimal dependencies, modular dependencies, and completeness. For the time being, Tendermint2 will stay in the main repo in a top-level folder named Tendermint2. This is the official location to develop and improve the consensus protocol until it is stable enough to be extracted from the Gno repo and become a standalone project. Currently, Tendermint2 depends on GnoVM, however, we are working to unlink this dependency and build a basic demo Tendermint2 chain and Client.\n\nTendermint2 JS/TS Client is a JavaScript/TypeScript client implementation for Tendermint2-based chains. The client will make it easier for developers to interact with Tendermint2 chains, with a simplified API for account and transaction management, removing a ton of manual work and allowing developers to focus on building their dApps. You can [read more about the client here](https://www.npmjs.com/package/@gnolang/tm2-js-client). In addition to the Tendermint2 JS/TS client, we also created a Gno JS/TS client that just extends the TM2 one to provide Gno-specific functionality. You can read more about this here.\n\n## Game of Realms\n\nThe incentivized competition to find the best contributors to Gno.land continues in phase one, with slow but steady progress being made. Nir1218 initiated an Evaluation DAO Kickoff discussion in [issue 792](https://github.com/gnolang/gno/pull/792) to initiate testing code for the key smart contract infrastructure that will power the Gno.land platform. We are also interviewing architects for the core team with experience in governance modules and creating new economies on-chain, and a new DevRel team member will be joining us soon to create awesome tutorials and documentation to advance Game of Realms further. Gno.land must be built by the community and we will not rush to push Game of Realms to the second phase until we have found quality contributors to complete the challenge tasks and become the platform’s first founding members.\n\n## Gno IDE\n\nOur core development team is working on a web-based IDE for Gno.land that will greatly improve the developer experience, allowing builders to quickly spin up Gno realms and packages right on their browsers just by visiting a web app. Currently named Gno IDE but with a rebranding on the horizon, this intuitive product focuses on ease of use and improved UX, and will include all the features you’d expect from an IDE, such as auto compilation in the editor, debugging, extensive testing capability, and powerful APIs like IntelliJ to supercharge your programming.\n\nGno IDE currently has multiple modes to support different use cases, including a normal mode for everyday programming, similar to a standard code editor, a presentation mode for video calls or screen sharing, and an embedded mode to extend functionality, allowing you to embed the IDE directly into websites and blogs. You can also choose to edit your code in Emacs or Vim and easily switch between steps, from previous to next, making creating your tutorials and blog posts more intuitive. Watch out for more to come on Gno IDE soon, and if you want to contribute by creating a plugin for your favorite editor, open a PR to win contribution points.\n\n## Stack/Frames Management\n\nThe stack/frames is an integral part of the virtual machine (VM) and the language. Stack/frames provide context for smart contract developers, enabling them to access useful information, such as the original caller, or to determine if a contract is being called through another one. The current implementation is limited in scope and relies on fixed positions in the stack which can lead to inconsistencies.\n\nThere is an ongoing [issue 683 open here](https://github.com/gnolang/gno/issues/683) and we have continued to work on enhancing stack/frames development over the last month. We’re adding a new function in the standard library std.PrevRealm (previously GetRealmCaller). Currently, we only have GetOrigCaller, which returns the user calling the first realm. This is not secure and we need a way to call the previous caller. This will allow a realm to handle GRC20 treasuries. See [issue 667](https://github.com/gnolang/gno/pull/667) and [issue 634](https://github.com/gnolang/gno/issues/634) for further details.\n\n## Dealing with Panics in Native Functions\n\nWe have devised a solution for dealing with panics in native functions, [see pull request 732](https://github.com/gnolang/gno/pull/732). Previously, when there was a panic in a native function, we could not recover it in Gno code. An example of this was the assert origin call, which panicked if the call was not a direct call from a transaction. Based on discussions with contributors, we’ve agreed that native functions should never panic, but if they panic, they panic with machined Gno panic. This gives us the choice in a native function to code a Gno panic, or, if it's a very bad panic, use Go panic so that we know the Gno code is unable to recover it.\n\n## Logic Upgrading\n\nMaking it possible to upgrade your logic is definitely out of scope for the first version of Gno.land, however, it’s an important issue that we have begun to discuss so that we can place certain restrictions on it, such as allowing upgrades when we consider them safe enough to be compatible with imports. Another idea is to work on creating workflows where migrations become something official. This way, we could define ways to migrate a contract completely in a single transaction at the chain level. Once everything is working and approved as the previous contract is parsed or archived, the new one gets the data. We will revisit this topic after the first version of Gno.land reaches the mainnet.\n\n## Garbage Collection\n\nIn terms of garbage collection, we don’t have memory leaks as such but we do have defacto memory leaks. By the VM having references to all objects, they won’t be released by Go’s underlying GC. We have some form of reference counting but it is only done at the end of a transaction. We have implemented a mark-and-sweep garbage collector and are working on the VM runtime to manage the objects and signal to the garbage collector to release them when they are no longer needed. This is done by adding the notion of a heap, which is managed by the garbage collector.\n\n## GnoVM\n\nDeveloping GnoVM is an ongoing task and we will likely need to fork the GnoVM to create different competing versions. GnoVM will be complete, limited in features, and serve as the only interpreter, an enduring reference point over time. Future versions of GnoVM will be designed to incorporate CosmWasm so that all Cosmos chains can have CosmWasm enabled and the VM can run directly on the browser and execute tasks on the browser without requiring to make an API call, making it faster. To do this, we can make a Gno compiler in WebAssembly without changing the code because Go supports WASM cross-compilation.\n\nWe plan on making a competing version of the original minimalist GnoVM, such as a Rust version with a JIT compiler using LLVM as a backend.\n\n## Ecosystem Updates\n\nSince our last update, the Gno.land community continues to expand with awesome teams and contributors building cool infrastructure and projects on the platform. Below, we take a look at the largest developments of the past few weeks and extend a special thanks to everyone helping us build Gno.land.\n\n## Teritori\n\nTeritori blockchain and multi-chain hub launched in November 2022, allowing IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. Teritori’s idea for building on Gno.land is to create a multi-chain experience for users with a web portal, NFT marketplace, and social feed that will grow the community, and gradually integrate smart contracts and realms. This will promote Gno.land to more developers and showcase all the dApps being built through an easy-to-navigate dApp store. In the coming weeks, Teritori will work with the Onbloc team to integrate the Athena wallet into their portal as well as discuss ideas for promoting Game of Realms to new developers.\n\n## Onbloc\n\nOnbloc is one of the Gno.land ecosystem’s most active contributors, responsible for building the Adena wallet and the block explorer Gnoscan. The team has also been working on creating an official Gno SDK that will allow developers to interact with Gno.land more easily, and remove some of the current friction. Onbloc opened [issue 701](https://github.com/gnolang/gno/issues/701) on GitHub primarily for developers who either have their own web app or are building a JavaScript app and want to work with Gno in some way. Currently, developers need to do a lot of manual work, which Gno SDK will abstract away, improving the workflow and developer experience. If you have any ideas or feedback, please contribute to the aforementioned issue.\n\nIn another cool development, Onbloc has rolled out a new feature in Adena and Gnoscan to provide support for GRC20 tokens. To store and send tokens, you can open your Adena wallet, click on \"Manage Tokens”, navigate to the Custom Token page, and see which GRC20 tokens are available on Gno Testnet 3, searching by the symbol or path. To research on or discover tokens, head over to the Tokens page on Gnoscan for a full list of GRC20 tokens. You can click on any token on the list for detailed information, such as the total supply, owner, or other available functions built into the token. The Account Details page has also been updated to display all tokens owned by each address. You can help by checking out [issue 764](https://github.com/gnolang/gno/pull/764), which discusses adding bigint to support a wide range of numbers and encoding binary, and [issue 816](https://github.com/gnolang/gno/pull/816), which highlights a small bug the team runs into when coding.\n\nOnbloc has also created a new [token resource page on GitHub](http://github.com/onbloc/gnotokenresources) for anyone to share or upload resources associated with their Gno.land project. This will serve as a shared knowledge pool about any dApp on the platform. If you wanted to create a decentralized exchange, for example, you would need all the information about the tokens available on Gno.land, such as their images, symbols, descriptions, links to websites, etc. Now you can find this in one handy GitHub repository. If you’re a developer or builder who wants your logo or any other static data posted, be sure to submit a PR.\n\nAnd speaking of decentralized exchanges, Onbloc is also building Gnoswap, the first DEX to be powered by Gno.land, designed to simplify the concentrated liquidity experience and increase capital efficiency for traders. Its interface is built using TypeScript to be user-friendly, secure, and accessible for streamlining complex mechanisms such as price range configurations and staking as part of its core service. Contribute to its interface [here](https://github.com/gnoswap-labs/gnoswap-interface).\n\nAs for the contract side, Onbloc is actively working on its development with help from the core members of Gno.land. The code will be open-sourced for full transparency once the basic functions are ready.\n\n## New Core Contributors\n\nWe’re excited to welcome two new core team members, Antonio and Zack. Antonio joined us in April in the core team, bringing with him vast experience in IPFS, and writing Git servers in Go. Zack is our first “tinkerer in residence” and will try to bootstrap the ecosystem of small contracts and small libraries. He will also be writing apps and helping us design a system to better share and showcase our work with a super UX for team builders and open-source addicts.\n\nAntonio is already hard at work researching a benchmarking dashboard that will show performance improvements or regressions when we change the code. He’s assessing whether to use GiHub to track actions or run our own machine to execute GitHub actions. Take a peek at his research so far on [issue 783 here](https://github.com/gnolang/gno/pull/783).\n\nZack is working on a microblog project. As an experienced web2 Go programmer, Zack is transitioning to web3. Since he’s interested in incentivized social networks, the microblog project will be his first realm, as a Twitter-style blog without titles, where each user has their own page based on their address. Check out [issue 391](https://github.com/gnolang/gno/pull/391) for more details.\n\n## Developer Events\n\nOver the past few weeks, our core devs have been mainly focused on building but they’re preparing to speak at some exciting events in the coming months. Catch up with Manfred at BUIDL Asia, in Seoul, South Korea, from June 5 - 9. We’re co-hosting a side event with Onbloc, Code States, and Cosmostation on June 5, so be sure to register if you’re in town! We’ll also be at EthBelgrade in Serbia from June 2 - 4, and GopherCon in Berlin from June 26 - 29, so stop by and say hello.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-05-26T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\n\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n## About the Gnoland Funding and Grants Program\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n## Types of Contributors\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n## What We Are Looking For\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n## Meet Our First Grantees\n\n### Onbloc\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n### Teritori\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n### Zack\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","2023-06-27T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-07-11T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","2023-09-04T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZCe1jQkd3WCUzQEfF5SF5vwC2CWVLbjArPBisNA7rW4TAbydk84Rqc1Gs2ri2vv7pZRnYCNuFfwMEZNLF5ScAQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["tech-ama1","Gno.land Community Technical AMA #1 - Recap","\n\nYour questions, observations, and feedback are vital to our core development team. Not only do they give us an understanding of the types of applications and features the community would like to see but they help us formulate better ideas for developing Gno.land as we go. Before we dive into our second **Discord AMA on November 22nd @4pm UTC**, check out the community questions from our first technical AMA below answered by core Gno.land devs Jae Kwon and Manfred Touron.\n\n### Why did you choose Golang over Rust?\n\n**Jae**: “With parallelism offered by ICS1 [Interchain Security 1], the bottleneck becomes speed of innovation with safe code, rather than bare metal performance. So here, garbage collection, concurrency, embeddable structures, and clear spec are good primitives for the next-generation smart contract language.\n\nRust (or components of Rust** may be used to implement faster clients for gno.land in the future, but in terms of mindshare, I don't think Rust can flip Go due to its design choices. That's not to say that Rust is any worse than Go; they are different.”\n\n### Will Gno be its own hub? Will Gno provide ICS-like security to its own community?\n\n**Jae**: “Gno.land can be a \"hub,\" like \"git hub\" is a \"hub,\" but that doesn't mean it will offer ICS. If other chains solve ICS1 better, it makes sense for gno.land to be IBC-connected to zones that are not ICS1 replicated/secured with gno.land validators.\n\nIf we consider that validators of gno.land are better as contributors to the gno.land ecosystem (rather than general validator service providers** we may be more comfortable contributing to an awesome ecosystem but not entering the validator-as-a-service business.\n\nIt makes more sense to me that Cosmos Hub validators should own that business, which will eventually require validators to run their own server stacks and have data center infrastructure.”\n\n### How can one become a validator?\n\n**Jae**: “First, one has to become a member. We have not yet defined the full member system, but we will figure that out along the way. For now, we can say that we want first and foremost members who also validate, rather than impartial validators that only validate.”\n\n### How does Gno validate work? PoS? Proof of Contribution?\n\n**Manfred**: “The contributors DAO will elect validators and validators will have the same amount of power. They'll be focused on validating and will receive rewards for that job.”\n\n### What is Proof of Contribution? What kind of contribution will be credited?\n\n**Manfred**: “Proof-of-Contribution is a way to replace Proof-of-Stake with a metric based on the contributions. It's a variation of Proof-of-Authority where the authority is a DAO of contributors. After the 'Game of Realms** competition, we'll reward the best contributors with a tiered membership in the first version of Proof-of-Contributions DAO. The voting power and everything related to staking will be distributed across the contributors.\n\nLater, we'll add more flexibility to the membership with $GNOSH, allowing more accurate and fair rewards. Validators won't receive voting power with staking. The DAO will elect them, and they will all receive the same amount of power. Validators will receive rewards for their technical work, not for the amount of staked tokens they are bound to.”\n\n### Is there a document or resource that describes the key concepts in a Gno smart contract?\n\n**Manfred**: “We have yet to get a single top-level documentation, sorry. You can find documentation in the code, README files, issues, etc. We need to improve this. The community will be able to work on this during Game of Realms.”\n\n### Is there a big-picture diagram of the ecosystem?\n\n**Jae**: cosmos hub \u003c-- \"ec2+DTCC\"\ngno.land \u003c-- \"github for gno\"\n(cosmos hub etc) ICS zones \u003c-- \"holy grail\" scalable smart contracts\nyour chain \u003c-- \"gno inside\"\nyour app \u003c-- \"import gno.land/...\"\nblockchain-based communications/coordination/discourse platform \u003c-- us\n// DTCC: \"https://www.investopedia.com/terms/d/dtcc.asp\" // my point is, be a good reliable token hub with good governance.”\n\n### I'm a developer (PHP, Python**. How can I become a Gno developer? Please advise me on where to start.\n\n**Manfred**: “Start learning Go! One of the long-term goals of Gno is to make writing contracts as easy as writing web2 apps. The language is already strong in that direction, but we still need to catch tooling, documentation, tutorials, and language improvements. You need to have a good level with Golang and be autonomous to start building on Gno.\n\nOne of the Game of Realms tracks will be to work on everything related to onboarding more people. This will be the best place to write specific tutorials to onboard people from other ecosystems or languages.”\n\nWhat are Realms, and what is r board?\n\n**Jae**: “A realm is a Gno package with state, that represents a smart contract with storage and coins. The other Gno packages don't have state, and so are \"pure\" packages that can be imported from other realm or non-realm packages. Like land-tax, realms must be whitelisted or pay storage upkeep for their state. You can create new realms by uploading a new package with the package directory starting with /r/REALM/NAME.\n\n/r/demo/boards is a Gno package that renders a message board. It is a proof of concept message board written in Gno. Since we need to preserve messages, it is a stateful (realm** package. You can see the files of the demo boards, like:\n\nhttps://test3.gno.land/r/demo/boards/board.gno\n\n### How do external packages get imported?\n\n**Manfred**: “Example: when you call your smart contract from Go during testing, how can/should that smart contract load external packages?\n\nA gnolang can only import other gnolang contracts/libraries that were published on-chain. If you want to import an external Golang library, you need to port it to Gno, and publish it as a library, then you can import it from a top-level contract.\n\ngnodev test is an exception, it basically creates an in-memory Gnolang VM, publishes the dependencies (automatically detected**, and executes the test. The tool can act differently from the real on-chain experience. Note that we'll improve the gnodev so it can automatically download on-chain contracts or use custom local paths, to support advanced development workflows.”\n\n### What is a Gnode?\n\n**Jae**: “I don't like the name \"Gnode\" because it's too generic, but the idea is to build Gno-based building blocks for GnoDAOs, as MyGnode embeds components (of owners, treasury, board, etc.** here:\n\nhttps://github.com/gnolang/gno/commit/b9128b1d69f02dbb49be883e0c70fe9d3fc40dcc\n\n**Manfred**: “We can change the name 🙂. A Gnode is a DAO implementation that implements an interface allowing them to interact. A Gnode can have a parent and have children. Top-down interactions may be funding, grants, and approvals. Bottom-up interactions may be reporting or voting. The implementation is flexible. You can have DAOs managing a Gnode, its treasury, and voting the cross-Gnode interactions. You can have Gnodes with an elected leader or one driven by a bot or another blockchain. One of the goals of Game of Realms will be to propose various implementations of Gnodes.\n\nAt the level of Gnoland, we will probably have a top-level Gnoland Gnode managing a global treasury and vision. Then various technical and non-technical child Gnodes manage subsets of the treasury and their tasks. They may also have children. With IBC2, Gnodes could be distributed across different chains.”\n\n### What is the timeline for IBC2?\n\n**Jae**: “After the launch of gno.land, IBC2 is permissionless innovation anyone can try for, so I imagine not long after that. After initial implementations, I bet we will want to tweak/optimize the Merkle tree further, but this can come after IBC2 demos.”\n\n### Can you tell us more about Game of Realms?\n\n**Manfred**: “Game of Realms is a competition to build the first contracts of Gnoland and experiment with proof of contributions. The first step of the competition will be to build the missing tools for the second step. So people will compete to write the DAO that will review the other contributions and allocate points.\n\nThe rest of the competition will be about competing to write the best contracts for well-known categories or make non-technical contributions. At the end, we'll have strong foundations (libraries, rules, tutorials, dApps** to help upcoming builders to start in better conditions. The best contributors will earn rewards and membership in the future DAO of contributors that will co-own the chain.\n\nWe'll have the first version of a Proof-of-Contributions-based DAO of contributors. Focus on one of the official tracks: build a contract suite to compete with Cosmos' governance module to eventually complete Cosmos Hub governance. Realm boards are basic discussion contracts that can be used for discussions, and be extended for governance, launchpad, or other things mixing discussions and DAO actions.”\n\n### Is it possible to build code with gno.land directly online?\n\n**Jae**: “We will make the sandbox staging.gno.land environment easy to access, and that will be preferable to testing on gno.land directly. The gno codebase tries to remain minimal so it shouldn't be difficult to run it locally.”\n\n**Manfred**: “I've seen people writing contracts from VSCode on an online VSCode instance. Someone could create a VSCode template configured to communicate with staging by default with a dummy wallet containing tokens.”\n\n### Is there a plan to be able to use the Gno VM with a Cosmos SDK-based chain?\n\n**Manfred**: “This is one of the plans, yes. And not only on Cosmos SDK. But we don't have a clear plan about how it will happen yet.”\n\n### How about interoperability?\n\n**Jae**: “Regarding interoperability, will it be between Gno chains, with Cosmos, or with more chains outside of Cosmos? If it is with chains outside of Cosmos, which ones, in the short and long term? I think if the latter were to come to pass, the world of web3 and NFT could be awesome. Short run, Cosmos SDK-based chains with IBC1 for code import and cross-chain smart contract calls; but with IBC2/Gno it's really up to the smart contract logic.”\n\n### Are Gno.land tokenomics deflationary?\n\n**Jae**: “There will be $GNOT, and this token will be used for spam prevention fee payment, and it will be deflationary. Previously, we discussed $GNOSH as a secondary token, but we have moved away from the $GNOT/$GNOSH model and will keep $GNOT while making gno.land more about membership among levels of peers.\n\nI think we need an alternative to the Cosmos Hub that is more people-centric than stake-centric, and where alignment is not bought or sold but depends on contributions and value alignment proven over time. The hope is that by moving away from a pure tokenomics perspective and moving into the realm of politics and ethics along with general economics we can curate a different kind of culture.”\n\n### Are there any collaborations with other projects to build on Gno?\n\n**Jae**: “Yes, why don't we make this truly open, in the style of free software, so that we can build upon a common VM design? The only thing I want to retain control over for a temporary duration of time is the regulation of trademarks, like \"gno\", \"gno**\", \"*gno\" (but you can use the license to fork this project however you want); and we want proper attribution, but the AGPL fork license suggests how we can work together collaboratively.\n\nThe GNO VM can be used on any chain if it follows the AGPL style license, which we are calling the \"Gno GPL\". Blockchains can still be composed of components licensed with compatible open source software. We can collaborate indirectly by working and contributing to the same codebase, and know that the code we are building together will always be available for you to use for your chain, as long as it remains and is offered as GNO free software.\n\nSo anyone can build GNO smart contracts into their chain for free, according to the license we are deriving from the GNU (not GNO** AGPL license. You don't have to pay gno.land or anyone if the license is followed. Example: we will collaborate with the Cosmos Hub and Cosmos/ATOM community to offer gno DAOs to be hosted by ICS1, and help bring collaboration tools for Cosmos. So this is how gno works with Cosmos Hub assuming ICS1 is solved. As for gno.land, we can start off with an independent gno instance for the Cosmos Hub's gno shards, and later allow the IBC importing of vetted code from gno.land/*.”\n\n### Apart from Adena, are there any plans for another wallet?\n\nJae: “I think what we need are a few competing base implementations that best leverage the framework they build upon, rather react or minimal vue; and to create common core libraries along the way if reasonable. But there ought to be more than one approach for such a key component, with special care taken into consideration for security. Like, I don't agree with Keplr asking so easily for a 12/24-word mnemonic, even if the implementation is secure, it is going to become a problem. PSA btw.”\n\n### Wen mainnet?\n\n**Jae**: “Some time by Q2 next year would be good. But as policy, we can't commit to a date, because everything has to be ready first before the official launch. Our thesis is that having the DAO with sub-DAOs will allow us to reach the end result in a faster way via some form of parallelism. First, we need DAOs to assess new code, and better UX for managing something like upgrades to the Cosmos Hub. Once we have the DAO running on testx.gno.land, for some x \u003e 4, and we have checked all vital TODOs, we will know that we are ready for \"mainnet.\"\n\n_Do you have more questions for Manfred or Jae? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and be sure to join us for our second **AMA on December 6th @4pm UTC.**_\n","2022-12-05T16:15:00Z","manfred,jae","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-launch","Game of Realms Is On: Win Rewards for Contributing to Gno.land","\n\nPhase one of Game of Realms, a worldwide competition to build the best Gnolang smart contracts, **is now open**. Game of Realms is a high-stakes contest with a total prize pool of **133,700 ATOM** that will see participants compete for tiered membership to co-own the Gno.land blockchain, the next-generation smart contract platform that uses the Gnolang (Gno) programming language. A series of complex technical and non-technical tasks will challenge contributors to create innovative patterns that push the chain to new limits. If you’re interested in helping build the most intuitive smart contract platform in web3—while gaining rewards for your contribution—join today by opening a [PR here](https://github.com/gnolang/gno).\n\nThe Game of Realms contest will allow participants to get a feel for the Gno.land platform while building smart contracts and applications in the ecosystem. It will take place in two stages, phase one and phase two. Phase one is about building the core infrastructure, tools, and tutorials necessary to open the gates to broader participation and will be held off-chain. Phase two, on the other hand, will take place after the successful completion of phase one and be held on-chain, where contributors will build smart contracts on the platform.\n\nIn addition to the ATOM prize pool, the best contributors will also be awarded (mostly) initial-level membership to govern the upcoming mainnet. Membership will be allocated according to the quality and extensiveness of the contribution—the higher the quality, the higher the tier, and the greater the voting rights and rewards. The top equal members will be composed of peers who have contributed the most to the ecosystem and have an understanding of its core components. Top members will also have aligned core moral values. This is essential so that members can maintain the chain together according to its Constitution (TBD** and ultimately create a sustainable ecosystem that rewards all valuable contributions.\n\n## Game of Realms - Phase One (Off-Chain)\n\nWhile we aim to encourage cross-collaboration between devs and non-techs, phase one of the contest is recommended for advanced developers who are more autonomous and can contribute with limited guidelines and support. Accounting for around one-third of the total **133,700 ATOM** prize pool, getting a headstart in phase one will allow seasoned devs to kick the tires on the Gno.land platform, contribute with limited competition, and build the tools needed to open the second phase.\n\nDuring phase one, participants will open PRs against repos from the Gnolang organization. Phase one contributors will be expected to document and share their work efficiently to enable others to use it without conflicts. Your contribution is vital to the success of the contest, the Gno.land platform, and the Cosmos ecosystem at large, especially now, with discussions to move the Cosmos Hub’s core operations on-chain by establishing a DAO system.\n\nThe first DAO to be created will be the [Decentralists DAO](https://github.com/decentralists/DAO), which will provide Cosmonauts with transparency, accountability, and decentralization. The Decentralists DAO will improve discourse, organization management, development, and conflict resolution through smart contracts, and will organize itself into a set of tightly-aligned sub-DAOs dedicated to specific topics, such as engineering and funding.\n\nSo, how does this relate to Game of Realms and what type of contributions are judges looking for? Here are some examples, in order of priority:\n\n* **Define and Implement an Evaluation DAO:** For the Game of Realms contest, a sub-DAO – the Evaluation DAO – is needed to evaluate contributions during phase two and attribute rewards accordingly. Using a DAO will allow community members to vote on the best contributions for the platform. Implementation of the Evaluation DAO is the only step that must be approved by the core team because of its key role in the competition and the future of the platform. Once the DAO is in place, all previous and further contributions will be reviewed collectively by DAO members.\n\n* **Create Tutorials to Onboard More Participants:** We need experienced devs to write or record tutorials to help more people get started during phase two of the competition (and beyond) and to help grow the Gno.land developer community. These tutorials can include topics like interacting with the chain from the CLI, step-by-step guides to creating smart contracts in Gno, tips for running a local dev environment, fast prototyping with gnodev, or they can be tutorials dedicated to certain audiences, such as developers coming from Solidity or web2. All tutorials should be added to the [awesome-gno GitHub repo](https://github.com/gnolang/awesome-gno).\n\n* **Define and Implement a Governance Contract Suite:** In this challenge, developers will be expected to define and implement a governance contract suite capable of competing with existing chains’ governance modules. If you think you can improve the governance system of Cosmos Hub, this is your chance to show us how!\n\nPhase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the DAO and awarded during phase two.\n\n## Game of Realms - Phase Two (On-Chain)\n\nPhase two of Game of Realms will onboard more people to the platform and begin as soon as sufficient materials are completed from phase one. Accounting for around two-thirds of the total 133,700 ATOM prize pool, phase two will be open to both developers and non-technicals who can follow tutorials, create smart contracts, or provide other important contributions to win rewards and scale the platform. As phase two will be held directly on-chain, contributors can submit their contributions to the DAO without publishing them on the main GitHub repo. However, we strongly encourage you to use GitHub as it’s an important resource that helps the community gain a better understanding through specific examples.\n\n_We are currently preparing the challenges for participants of phase two and are looking for your input. Let us know what type of smart contracts you would like to see (minimal or with multiple features) in our upcoming Game of Realms AMA on Tuesday, January 24 at 4 pm UTC. Note that this is a text based AMA so make sure to add your questions before or during the AMA in the #AMA-questions channel on the [Gno.land discord](https://discord.gg/S8nKUqwkPn).\n_Once we have collected your feedback and requests, we will finalize the challenge categories. You can visit the [Game of Realms repo](https://github.com/gnolang/game-of-realms) for more information._\n","2023-01-18T15:36:00Z","","gnoland,game-of-realms,launch"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-ama1","Gno.land Community Game of Realms AMA #1 - Recap","\n\nWith Game of Realms officially in phase one, core dev Manfred Touron jumped on Discord to answer Gno.land community questions about the ongoing high-stakes competition. From starting and end dates to participation requirements and a description of tasks, look for your answer below. If you have further questions or want to join our community, come and find us on the []Gno.land Discord](https://discord.com/channels/957002220384182312/1065646963825066044). The core team will be hosting regular “office hours” sessions soon so you can discuss your ideas with them directly.\n\n## Q. How are the tasks in the issues assigned?\n\nWe received questions about how the tasks in the Game of Realms issues are assigned. Should submissions contain the whole implementation? Is the following task \"available** when the previous one is completed? How is the “sync” happening?\n\n**A.** TL;DR:\n\nEverything should go smoothly and we will be leaving room for negotiation if any review looks invalid. Once it has been established, the evaluation DAO will enforce how to submit a contribution. In the meantime, there are official communication challenges that we encourage participants to use. People are also free to work in stealth mode, with the risk of finishing too late or losing points for being bad at collaborating.\n\n----\n\nWe expect the current issues to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything. Let's discuss the cases we believe will happen:\n\n### Case 1\n\nWe're in phase 1, people want to contribute but can't manage to do everything, so they will try to participate as much as they can. They will participate on the issue or in Discord by indicating their desire to participate, by sharing ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\nThe only thing is that we're fully remote. We don't know each other, so everyone needs to be good at communication. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Case 2\n\nWe're in phase 2, and a small contribution is done by an individual. We just review it, and that's done.\n\n### Case 3\n\nWe're in phase 2, and a contribution is big and requires small steps. Probably, the Evaluation DAO will ask individual participants to submit their contributions so they can allocate points for the individual contributions. But maybe the Evaluation DAO prefers to review big tasks as a whole, and then split the prize, as we'll do in phase 1. We don’t have clarity on this at this stage, as it will be up to the implementers of the Evaluation DAO to design the best system for that case.\n\n## Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\n**A.** Not yet. The leaderboard will come in phase 2. One of the critical parts of the Evaluation DAO will be to allow contributors to submit evidence for tasks. Votes and point allocations will also be transparent. This will make sense for future Proof-of-Contributions, too. We'll also develop a leaderboard to make it easier to follow the competition, but this will probably come after the Evaluation DAO is running.\n\n## Q. What will the overall tasks consist of?\n\n**A.** Here is a non-exhaustive list:\n\n* Onboard more contributors ([create tutorials and documentation](https://github.com/gnolang/gno/issues/408)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n## Q. At what point in the Game of Realms timeline/phase are we?\n\n**A.** We are at the beginning of phase 1. We plan to create a website soon so you can keep track of the status and, as I mentioned, a leaderboard will come in phase 2.\n\n## Q. What will be the contributions, how will points be calculated, and are there tasks for non-programmers?\n\n**A.** During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThere are more tasks for programmers, but multiple parts are for non-programmers too.\n\nDuring phase 2, it's hard to be sure about anything yet. Game of Realms is a competition to experiment with Proof-of-Contribution, which will replace Proof-of-Stake on Gno.land. If things go the way we imagine, then consider that the stakeholders (contributors** will allocate points to contributions that make sense for the project. The contributors won't lose points, but by allocating points, they will dilute their own point stack.\n\nWe expect the Evaluation DAO to attribute points to whatever makes sense to make the project better. We'll have some task ideas for phase 2, including for non-programmers. You can likely consider that even if the core team doesn’t control the DAO, its suggestions will be approved by the Evaluation DAO because we deeply want the project to be a success.\n\n## Q. What are the requirements to start participating?\n\n**A.** There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic. It may be better to work with others and share a prize instead of taking the risk of implementing everything in stealth mode and not being the first.\n\n## Q. Is there a fixed period of time for the end?\n\n**A.** No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2. This will probably take between 1-3 months. The end date for phase 2 will be announced during phase 2, which will probably last between 2-3 months. This is when we’ll send the prize rewards. After Game of Realms, people will continue to earn contribution points by contributing to the project, which will give them memberships on the future mainnet.\n\n## Q. Is it possible to install a local testnet to get a proper local development environment?\n\n**A.** You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\nThere are multiple ways to interact with Gno:\n\n* Using gnodev allows you to use the GnoVM, without a blockchain. This method is super fast and allows you to use development patterns like TDD, where you test your implementation multiple times per minute.\n* Running a localnet, by running the gnoland command and then configuring our tools like gnokey to use localhost:36657\n* Using the staging network hosted on https://staging.gno.land reset regularly and you can use the hardcoded test key or use the faucet\n* Using the official testnets\n\nIf you prefer to run a full blockchain node instead of just playing with GnoVM, you should play with the gnoland binary. This video shows how to do this in practice:\nhttps://www.youtube.com/watch?v=-BlnEXCs0eI\n\nBelow is a further resource that may also help you:\n\nhttps://test2.gno.land/r/boards:testboard/5\n\n## Q. Will there be a list of what needs to be tested? When will the tests start?\n\n**A.** The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n- Evaluation DAO\n- Tutorials\n- Governance Module\n\nThe core team will actively review this and decide what contribution deserves to get prizes.\n\nDuring phase 2, we’ll use the Evaluation DAO developed during phase 1 to review old contributions, even contributions made before the competition, as well as ongoing contributions. Right now, we have an issue gathering interesting topics for phase 2 here, but any contribution can be reviewed by the DAO, including things that are not listed:\n\nhttps://github.com/gnolang/gno/issues/357\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2y ago.\n\n_Do you have more questions for Manfred? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and watch out for our next AMA on Tuesday 7 Feb at 4 pm UTC._\n","2023-02-03T15:44:00Z","manfred","game-of-realms,gnoland,proof-of-contribution,dao,governance"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-phase1","All You Need to Know About Game of Realms: Phase One","\n\nGame of Realms, the worldwide competition to find the best contributors to Gno.land, is currently underway. Unlike some contests you may have entered, we're doing things a little differently. We want participants to be instrumental in building the Gno.land platform with meaningful contributions that help shape the direction of the project – either by writing the best Gnolang smart contracts or contributing to the core blockchain. It’s not just about winning prizes but becoming a meaningful contributor. We encourage participants to collaborate on the challenges – your contribution will be rewarded on individual merit.\n\n## Phase One: The Basics\n\nPhase one of Game of Realms is about laying the foundations to onboard more people to the platform. You’ll need to be an advanced developer who wants to create core materials that power the platform every day. You should also be willing to document your work and even write tutorials and guides that help us advance to the second phase of the competition.\n\nThere is a total prize pool of 133,700 ATOM available during the Game of Realms competition, one-third of which (44,121 ATOM) will be allocated to contributions from phase one. During phase one, which we expect to last between 1-3 months, participants will open PRs against repos from the Gnolang organization. For additional information on the competition phases and timelines, be sure to check out the following resources:\n\n- [Game of Realms blog post](https://test3.gno.land/r/gnoland/blog:p/gor-launch)\n- [Game of Realms AMA recap](https://test3.gno.land/r/gnoland/blog:p/gor-ama1)\n\n## Phase One: The Challenges\n\n**Evaluation DAO**: To ensure contributions in Game of Realms are rewarded fairly, we need an Evaluation DAO. Allowing community members to vote on the best contributions and decide how much they are worth provides a level playing field for all. We’re therefore seeking your skills in DAO development and implementation. This is one of the most important challenges of phase one and the only challenge that must be approved unilaterally by the core team because of its key role in the competition and the future of the platform. Read more about the [Evaluation DAO challenge on GitHub here](https://github.com/gnolang/gno/issues/407).\n\n**Tutorials \u0026 Documentation**: So that we can progress to phase two and open up the Gno.land platform to a broader audience, we need written and recorded tutorials, guides, and documentation from phase one participants. There are almost no instruction manuals when it comes to this new frontier as the only smart contract platform using the Gnolang programming language. Help us to create materials that will onboard more contributors to Gno.land. Read more about the [Tutorials \u0026 Documentation challenge on GitHub here](https://github.com/gnolang/gno/issues/408).\n\n**Governance Module**: We want Gno.land to adopt the fairest and most effective governance solution possible; one that encourages voter participation and is transparent and accountable. We’re looking for contributors to define and implement a governance contract suite that rivals existing ones, such as the Cosmos Hub, and be implemented by other projects. Can you improve on that? Show us how! Read more about the [Governance Module challenge on GitHub Here](https://github.com/gnolang/gno/issues/409).\n\nAll phase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the Evaluation DAO and awarded during phase two.\n\n## Judging Criteria - What Wins Points?\n\nWhat will the judges be looking for when assessing contributions? You can find individual details on the corresponding GitHub issue regarding each challenge, but to get you started, the Game of Realms contest prioritizes communication and collaboration. We encourage participants to work together to find the best solutions. You will be awarded individually for your contribution but working as part of a team is highly valued. Good documentation that expresses high learning efficiency and shows how the task was completed in an educational way will also win additional points, as will a high standard of quality, great UX, and the ability to follow the contribution guidelines.\n\nAs this is primarily a developer-oriented competition, most of the organization for Game of Realms is happening on GitHub; come by the repo and [visit issue #408](https://github.com/gnolang/gno/issues/408) to contribute to tutorial and documentation writing for Gno.land.\n\n## Rules of Engagement\n\nAll participants must keep in mind a strict code of conduct and specific rules and criteria to ensure fair play. Throughout the Game of Realms competition, no plagiarism will be tolerated at any time. Participants may submit what they wish, however, any project that has already been allocated rewards or received compensation in any other hackathon or similar contest will not receive double pay.\n\nThat’s all for now. If you have more questions about Game of Realms or Gno.land you can join us in our next Office Hours session on Tuesday, March 14, 2023, at 4 pm UTC. You can also connect with other participants in the [Gnoland Discord](https://discord.com/invite/S8nKUqwkPn).\n\n## Game of Realms Phase 1: FAQ\n\nBelow are some frequently asked questions about phase one of the Game of Realms competition. If you can’t find your answer below, jump into our Discord and ask, or join us for a live “Office Hours” session with the core team.\n\n### Q. How are the tasks in the issues assigned?\n\nA. There are official communication challenges that we encourage participants to use.\n\n### Q. Can I work individually or should I work as part of a team?\n\nA. You are free to work in stealth mode, but please keep in mind that you risk finishing too late or losing points for being bad at collaborating. We expect the issues in phase 1 to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything.\n\n### Q. How can I find collaborators?\n\nA. Participate on the issue or in Discord by indicating your desire to participate, by sharing your ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\n### Q. How can I ensure good collaboration?\n\nA. Since we are fully remote, collaborating can be a challenge and the best collaborators will be rewarded. We don't know each other, so having good communication is key.\n\n### Q. How will my collaboration be evaluated?\n\nA. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Q. How much is the prize pool?\n\nA. There is a total prize pool of **133,700 ATOM** available during the Game of Realms competition, one-third of which (**44,121 ATOM**) will be allocated to contributions from phase one.\n\n### Q. When will I receive my rewards for my collaboration?\n\nA. Rewards will be allocated retroactively by the Evaluation DAO during phase 2.\n\n### Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\nA. Not yet. The leaderboard will come in phase 2.\n\n### Q. What will the overall tasks consist of?\n\nA. Here is a non-exhaustive list:\n\n* Onboard more contributors (create tutorials and documentation)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n### Q. Are there tasks for non-programmers?\n\nA. There are more tasks for programmers, but multiple parts are for non-programmers too. During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\nhttps://github.com/gnolang/gno/issues/540\n\n### Q. What are the requirements to start participating?\n\nA. There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic.\n\n### Q. Is there a fixed period of time for phase 1?\n\nA. No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2.\n\n### Q. Is it possible to install a local testnet to get a proper local development environment?\n\nA. You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\n### Q. Will there be a list of what needs to be tested? When will the tests start?\n\nA. The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n* Evaluation DAO\n* Tutorials\n* Governance Module\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2 years ago.\n","2023-03-12T14:02:00Z","","gnoland,game-of-realms,faq"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-1","The More You Gno: Gno.land Monthly Updates","\n\nWe made progress across the board at Gno.land last month, from onboarding more devs to receiving an influx of contributions to the Game of Realms contest. To encourage development and discourse, we set up a biweekly public developer call in addition to our biweekly Office Hours sessions. Anyone can join, ask questions, and give their suggestions on how to shape the Gno.land platform and become a contributor. Last month, we covered several pressing topics from Gno IDE and Gno.land website language, to GnoVM, IBC, and ICS. Jae also came back to the circuit in March with two IRL workshops for devs at side events during EthDenver and Game Developer Conference (GDC) in San Francisco.\n\n## Developer Updates\n\nYou can find the live streams of the new biweekly public developer calls on [Gno.land YouTube](https://www.youtube.com/@_gnoland/videos) as well as access the agendas on [GitHub](https://github.com/gnolang/meetings/blob/main/notes/2023_03_15_dev_call_notes.md). The main talking points this month were Gno IDE, Gno.land website language and UX, garbage collection, bug fixes, and how to bring IBC and ICS to the platform. We are working on all these issues concurrently but the order of release will be Gno.land mainnet, IBC, and then ICS (this is reflected in the DAG below).\n\n[![Gno.land mini DAG](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/mini-dag.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/mini-dag.png)\n\n## Gno.land Website Language\n\nWe want to add more features for developers, such as libraries to make writing interfaces better and more consistent. There is an open topic for frontend developers with typography skills and library developers to create a UI framework for markdown or a custom rendering system.\n\nInternally, our core team is working on improvements to Gno.land’s website, making it easier to navigate with shorter columns while ensuring the text is markdown centric and readable in plain text and the GitHub rendering machine. We hope to achieve this using CSS and having classes for vertical columns, without having to make an extension to the markdown parser.\n\n## Gno IDE\n\nGno.land developer experience team is working on a web-based Gno IDE for quickly building Gno realms and packages right on your browser by just visiting a web app. Gno IDE will provide much improved UX for everything around building a realm (including making the testing easier), and additional features like autocompletion in the editor. Gno IDE will contain all the features you would expect from an IDE as well as valuable APIs for devs building tools around Gno.land with the public Gno Infrastructure.\n\n[![Gno IDE](https://gnolang.github.io/blog/2023-04-15_myg-march/src/thumbs/gno-ide.png)](https://gnolang.github.io/blog/2023-04-15_myg-march/src/gno-ide.png)\n\nGno IDE will have multiple modes to support different use cases. The normal mode will be used during everyday developments (as you’re familiar with from other code editors). The presentation mode is for high accessibility and readability. You can use it during video calls or physical workshops while projecting your screen to an audience. The third and perhaps most interesting mode is the embedded mode. Use this mode to embed the IDE into websites and blogs. This feature is especially useful for tutorials to test out sample code, run it on the real testnets, and play with it.\n\n## IBC and ICS\n\nAs depicted in the DAG above, Gno.land mainnet will launch first, followed by IBC and then ICS. We will focus on implementing IBC1, as we strongly believe in the ICS model and want to be a consumer of an existing Cosmos chain. We want a common ICS implementation that works across many hubs because Gno.land is a type of hub that will need its own ICS to scale while providing GnoVM on consumer chains on the Cosmos Hub. Our next step now is to find the best way to configure ICS for Gno.land and make GnoVM available as a consumer chain in the Cosmos Hub system.\n\nRegarding IBC, we will use the current implementation that was written for the Cosmos SDK and port that over to Tendermint2. We anticipate some issues along the way including security patches that need to be applied to our code base. There are multiple ongoing directions and discussions about how to bridge Gno.land’s smart contracts to IBC, which are essentially Interchain smart contract interactions.\n\nOne possibility is to have an API that submits events to a queue of outgoing events, and another queue to receive and consume events asynchronously. This mechanism could work for IBC2 to have rich inter-contract Interchain features, and the same API could work for Interchain plus smart contract interactions that require advanced options. We discussed a proposal to create a standard for Interchain contracts so that IBC2 could eventually be standardized eliminating limitations by applying it with an EVM, other languages, and CosmWasm.\n\nThis protocol could be based on Protobuf or a similar well-known syntax definition protocol so that we can push the Interchain to the next level. IBC2 will be safe and fast and replace vulnerable atomic bridges between multiple technologies. This is a major update that we are committed to developing and we need help identifying all the challenges involved. Working on IBC integration, separate from the Gno.land mainnet launch, will require significant time to understand how the light client system works. If you’re interested in taking on this task, let us know and we’ll set up a group. IBC will likely be the most important challenge of Game of Realms phase 2.\n\n## Garbage Collection\n\nCurrently, our work on garbage collection does not address the problem in the traditional Golang sense of dealing with memory efficiency. Instead, we are progressively optimizing and improving the main state tree by automating the clean-up of orphan nodes. The next phase will be targeting the official garbage collector component to begin work on memory management as we have some common Golang garbage collection challenges, but are identifying some uncommon ones too.\n\nWe need to consider elements like where to hold our objects because this is tied to releasing them in a concurrent lock-free way. We also need a good data structure. This is ongoing research as of now to implement a dedicated routine to synchronously clean stuff in a non-blocking way.\n\n## Game of Realms\n\nThis month, we have seen a massive uptick in contributions to Game of Realms phase one with a tidal wave of issues, general discussions, and PRs. One of the biggest things we worked on was adding support for MOD, which is a version of Go mod with an easier interface to manage your dependencies and version your dependencies. You can track the ongoing issue on GitHub [here](https://github.com/gnolang/gno/issues/390).\n\nThere have been some really strong contributions to the Evaluation DAO and governance module, as well as a big CLI refactor that went into our code base. We've also seen people contribute contracts like GRC 1155 or general improvements to existing realms, with many suggestions for fixing bugs. Finding bugs and reporting what people want is a good indication that the Gno.land platform is being picked up and gaining adoption.\n\nYou can find the Office Hours recordings that cover Game of Realms on YouTube [here](https://www.youtube.com/watch?v=JTmNg-b6Lcs).\n\n## Developer Events Stateside\n\nGno.land hosted a lively meetup during EthDenver last month where Gno.land founder and core dev Jae Kwon gave a talk for Solidity developers called “Gno.land, the Inevitable Next Generation Smart Contract Platform.\" He compared and contrasted Gno.land and Gnolang to Solidity, and showed Ethereum developers how the GnoVM shifts the smart contract paradigm. You can watch the [recording here](https://www.youtube.com/watch?v=IJ0xel8lr4c).\n\nAlso in March, Jae hosted a gaming workshop at a side event during the infamous Gaming Developer Conference (GDC) in San Francisco. “Gno.land for Game Developers, Building Your App in Web3,\" showed participants a sample gaming app built on the Gno.land platform and offered them the chance to try their hand at writing a smart contract for their app with Gno.\n\n## Virtual Events - How to Build a Forum\n\nCore tech lead at Gno.land Miloš Živković held a virtual workshop for Go devs called “How to Build a Forum.” He showed how Gnolang is a fast and simple way to build and launch smart contracts using the Gnolang interpreter virtual machine that interprets Gno and eliminates the need for any servers or ORNs.\n\nThe VM allows for the memory state of your Gno.land application to persist automatically after every transactional function call, which is a completely new way to handle transaction volume and memory recall. You can watch the [full tutorial here](https://github.com/gnolang/workshops).\n\n*We’d like the community to get involved in Gno.land’s monthly updates, so if you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-04-15T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-2","The More You Gno: Gno.land Monthly Updates - 2","\n\nOver the past few weeks, our core devs and ecosystem contributors have been making massive strides on Gno.land. There’s a lot to cover in the second edition of *The More You Gno*, from updates on Tendermint2 and GnoVM to stack/frames management, Gno IDE, and plenty more. We’ll also see what some of the external teams contributing to the platform have been up to, including Gno.land’s first decentralized exchange, GnoSwap, and Adena compatibility with GRC20 tokens. Check it out.\n\n## Tendermint2\n\nWe’re making steady development progress on Tendermint2, which focuses on simplicity of design, minimal code, minimal dependencies, modular dependencies, and completeness. For the time being, Tendermint2 will stay in the main repo in a top-level folder named Tendermint2. This is the official location to develop and improve the consensus protocol until it is stable enough to be extracted from the Gno repo and become a standalone project. Currently, Tendermint2 depends on GnoVM, however, we are working to unlink this dependency and build a basic demo Tendermint2 chain and Client.\n\nTendermint2 JS/TS Client is a JavaScript/TypeScript client implementation for Tendermint2-based chains. The client will make it easier for developers to interact with Tendermint2 chains, with a simplified API for account and transaction management, removing a ton of manual work and allowing developers to focus on building their dApps. You can [read more about the client here](https://www.npmjs.com/package/@gnolang/tm2-js-client). In addition to the Tendermint2 JS/TS client, we also created a Gno JS/TS client that just extends the TM2 one to provide Gno-specific functionality. You can read more about this here.\n\n## Game of Realms\n\nThe incentivized competition to find the best contributors to Gno.land continues in phase one, with slow but steady progress being made. Nir1218 initiated an Evaluation DAO Kickoff discussion in [issue 792](https://github.com/gnolang/gno/pull/792) to initiate testing code for the key smart contract infrastructure that will power the Gno.land platform. We are also interviewing architects for the core team with experience in governance modules and creating new economies on-chain, and a new DevRel team member will be joining us soon to create awesome tutorials and documentation to advance Game of Realms further. Gno.land must be built by the community and we will not rush to push Game of Realms to the second phase until we have found quality contributors to complete the challenge tasks and become the platform’s first founding members.\n\n## Gno IDE\n\nOur core development team is working on a web-based IDE for Gno.land that will greatly improve the developer experience, allowing builders to quickly spin up Gno realms and packages right on their browsers just by visiting a web app. Currently named Gno IDE but with a rebranding on the horizon, this intuitive product focuses on ease of use and improved UX, and will include all the features you’d expect from an IDE, such as auto compilation in the editor, debugging, extensive testing capability, and powerful APIs like IntelliJ to supercharge your programming.\n\nGno IDE currently has multiple modes to support different use cases, including a normal mode for everyday programming, similar to a standard code editor, a presentation mode for video calls or screen sharing, and an embedded mode to extend functionality, allowing you to embed the IDE directly into websites and blogs. You can also choose to edit your code in Emacs or Vim and easily switch between steps, from previous to next, making creating your tutorials and blog posts more intuitive. Watch out for more to come on Gno IDE soon, and if you want to contribute by creating a plugin for your favorite editor, open a PR to win contribution points.\n\n## Stack/Frames Management\n\nThe stack/frames is an integral part of the virtual machine (VM) and the language. Stack/frames provide context for smart contract developers, enabling them to access useful information, such as the original caller, or to determine if a contract is being called through another one. The current implementation is limited in scope and relies on fixed positions in the stack which can lead to inconsistencies.\n\nThere is an ongoing [issue 683 open here](https://github.com/gnolang/gno/issues/683) and we have continued to work on enhancing stack/frames development over the last month. We’re adding a new function in the standard library std.PrevRealm (previously GetRealmCaller). Currently, we only have GetOrigCaller, which returns the user calling the first realm. This is not secure and we need a way to call the previous caller. This will allow a realm to handle GRC20 treasuries. See [issue 667](https://github.com/gnolang/gno/pull/667) and [issue 634](https://github.com/gnolang/gno/issues/634) for further details.\n\n## Dealing with Panics in Native Functions\n\nWe have devised a solution for dealing with panics in native functions, [see pull request 732](https://github.com/gnolang/gno/pull/732). Previously, when there was a panic in a native function, we could not recover it in Gno code. An example of this was the assert origin call, which panicked if the call was not a direct call from a transaction. Based on discussions with contributors, we’ve agreed that native functions should never panic, but if they panic, they panic with machined Gno panic. This gives us the choice in a native function to code a Gno panic, or, if it's a very bad panic, use Go panic so that we know the Gno code is unable to recover it.\n\n## Logic Upgrading\n\nMaking it possible to upgrade your logic is definitely out of scope for the first version of Gno.land, however, it’s an important issue that we have begun to discuss so that we can place certain restrictions on it, such as allowing upgrades when we consider them safe enough to be compatible with imports. Another idea is to work on creating workflows where migrations become something official. This way, we could define ways to migrate a contract completely in a single transaction at the chain level. Once everything is working and approved as the previous contract is parsed or archived, the new one gets the data. We will revisit this topic after the first version of Gno.land reaches the mainnet.\n\n## Garbage Collection\n\nIn terms of garbage collection, we don’t have memory leaks as such but we do have defacto memory leaks. By the VM having references to all objects, they won’t be released by Go’s underlying GC. We have some form of reference counting but it is only done at the end of a transaction. We have implemented a mark-and-sweep garbage collector and are working on the VM runtime to manage the objects and signal to the garbage collector to release them when they are no longer needed. This is done by adding the notion of a heap, which is managed by the garbage collector.\n\n## GnoVM\n\nDeveloping GnoVM is an ongoing task and we will likely need to fork the GnoVM to create different competing versions. GnoVM will be complete, limited in features, and serve as the only interpreter, an enduring reference point over time. Future versions of GnoVM will be designed to incorporate CosmWasm so that all Cosmos chains can have CosmWasm enabled and the VM can run directly on the browser and execute tasks on the browser without requiring to make an API call, making it faster. To do this, we can make a Gno compiler in WebAssembly without changing the code because Go supports WASM cross-compilation.\n\nWe plan on making a competing version of the original minimalist GnoVM, such as a Rust version with a JIT compiler using LLVM as a backend.\n\n## Ecosystem Updates\n\nSince our last update, the Gno.land community continues to expand with awesome teams and contributors building cool infrastructure and projects on the platform. Below, we take a look at the largest developments of the past few weeks and extend a special thanks to everyone helping us build Gno.land.\n\n## Teritori\n\nTeritori blockchain and multi-chain hub launched in November 2022, allowing IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. Teritori’s idea for building on Gno.land is to create a multi-chain experience for users with a web portal, NFT marketplace, and social feed that will grow the community, and gradually integrate smart contracts and realms. This will promote Gno.land to more developers and showcase all the dApps being built through an easy-to-navigate dApp store. In the coming weeks, Teritori will work with the Onbloc team to integrate the Athena wallet into their portal as well as discuss ideas for promoting Game of Realms to new developers.\n\n## Onbloc\n\nOnbloc is one of the Gno.land ecosystem’s most active contributors, responsible for building the Adena wallet and the block explorer Gnoscan. The team has also been working on creating an official Gno SDK that will allow developers to interact with Gno.land more easily, and remove some of the current friction. Onbloc opened [issue 701](https://github.com/gnolang/gno/issues/701) on GitHub primarily for developers who either have their own web app or are building a JavaScript app and want to work with Gno in some way. Currently, developers need to do a lot of manual work, which Gno SDK will abstract away, improving the workflow and developer experience. If you have any ideas or feedback, please contribute to the aforementioned issue.\n\nIn another cool development, Onbloc has rolled out a new feature in Adena and Gnoscan to provide support for GRC20 tokens. To store and send tokens, you can open your Adena wallet, click on \"Manage Tokens”, navigate to the Custom Token page, and see which GRC20 tokens are available on Gno Testnet 3, searching by the symbol or path. To research on or discover tokens, head over to the Tokens page on Gnoscan for a full list of GRC20 tokens. You can click on any token on the list for detailed information, such as the total supply, owner, or other available functions built into the token. The Account Details page has also been updated to display all tokens owned by each address. You can help by checking out [issue 764](https://github.com/gnolang/gno/pull/764), which discusses adding bigint to support a wide range of numbers and encoding binary, and [issue 816](https://github.com/gnolang/gno/pull/816), which highlights a small bug the team runs into when coding.\n\nOnbloc has also created a new [token resource page on GitHub](http://github.com/onbloc/gnotokenresources) for anyone to share or upload resources associated with their Gno.land project. This will serve as a shared knowledge pool about any dApp on the platform. If you wanted to create a decentralized exchange, for example, you would need all the information about the tokens available on Gno.land, such as their images, symbols, descriptions, links to websites, etc. Now you can find this in one handy GitHub repository. If you’re a developer or builder who wants your logo or any other static data posted, be sure to submit a PR.\n\nAnd speaking of decentralized exchanges, Onbloc is also building Gnoswap, the first DEX to be powered by Gno.land, designed to simplify the concentrated liquidity experience and increase capital efficiency for traders. Its interface is built using TypeScript to be user-friendly, secure, and accessible for streamlining complex mechanisms such as price range configurations and staking as part of its core service. Contribute to its interface [here](https://github.com/gnoswap-labs/gnoswap-interface).\n\nAs for the contract side, Onbloc is actively working on its development with help from the core members of Gno.land. The code will be open-sourced for full transparency once the basic functions are ready.\n\n## New Core Contributors\n\nWe’re excited to welcome two new core team members, Antonio and Zack. Antonio joined us in April in the core team, bringing with him vast experience in IPFS, and writing Git servers in Go. Zack is our first “tinkerer in residence” and will try to bootstrap the ecosystem of small contracts and small libraries. He will also be writing apps and helping us design a system to better share and showcase our work with a super UX for team builders and open-source addicts.\n\nAntonio is already hard at work researching a benchmarking dashboard that will show performance improvements or regressions when we change the code. He’s assessing whether to use GiHub to track actions or run our own machine to execute GitHub actions. Take a peek at his research so far on [issue 783 here](https://github.com/gnolang/gno/pull/783).\n\nZack is working on a microblog project. As an experienced web2 Go programmer, Zack is transitioning to web3. Since he’s interested in incentivized social networks, the microblog project will be his first realm, as a Twitter-style blog without titles, where each user has their own page based on their address. Check out [issue 391](https://github.com/gnolang/gno/pull/391) for more details.\n\n## Developer Events\n\nOver the past few weeks, our core devs have been mainly focused on building but they’re preparing to speak at some exciting events in the coming months. Catch up with Manfred at BUIDL Asia, in Seoul, South Korea, from June 5 - 9. We’re co-hosting a side event with Onbloc, Code States, and Cosmostation on June 5, so be sure to register if you’re in town! We’ll also be at EthBelgrade in Serbia from June 2 - 4, and GopherCon in Berlin from June 26 - 29, so stop by and say hello.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-05-26T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\n\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n## About the Gnoland Funding and Grants Program\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n## Types of Contributors\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n## What We Are Looking For\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n## Meet Our First Grantees\n\n### Onbloc\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n### Teritori\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n### Zack\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","2023-06-27T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","2023-07-11T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","2023-09-04T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\n\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","2023-09-25T13:37:00Z","christina","gnoland,gnovm,gnochess,events"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","2023-09-29T13:37:00Z","jeff,costin,remi,iuri","gnomobile,berty,weshnetwork"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","2023-10-10T13:37:00Z","christina","gnoland,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","2023-10-17T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","2023-10-19T01:50:00Z","ferrymangmi,zxxma,michelleellen","gnoland,dao,moderation,teritori"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\n\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","2023-11-29T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","2024-01-10T10:51:00Z","","building-gnoland,gnoland,proof-of-contribution"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","\n\nWelcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","2024-01-22T00:00:00Z","christina","gnoland,ecosystem,updates,gnovm,tm2"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno ","\n\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","2024-01-24T00:00:00Z","dragos","gnoland,ecosystem,updates,flippando"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","2024-01-26T13:37:00Z","christina","gnoland,gnovm,tm2,PoC"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\n\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","2024-02-07T13:37:00Z","christina,michelle","gnoland,funding,grants"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\n\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","2024-02-08T00:00:00Z","christina","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZCe1jQkd3WCUzQEfF5SF5vwC2CWVLbjArPBisNA7rW4TAbydk84Rqc1Gs2ri2vv7pZRnYCNuFfwMEZNLF5ScAQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["tech-ama1","Gno.land Community Technical AMA #1 - Recap","\n\nYour questions, observations, and feedback are vital to our core development team. Not only do they give us an understanding of the types of applications and features the community would like to see but they help us formulate better ideas for developing Gno.land as we go. Before we dive into our second **Discord AMA on November 22nd @4pm UTC**, check out the community questions from our first technical AMA below answered by core Gno.land devs Jae Kwon and Manfred Touron.\n\n### Why did you choose Golang over Rust?\n\n**Jae**: “With parallelism offered by ICS1 [Interchain Security 1], the bottleneck becomes speed of innovation with safe code, rather than bare metal performance. So here, garbage collection, concurrency, embeddable structures, and clear spec are good primitives for the next-generation smart contract language.\n\nRust (or components of Rust** may be used to implement faster clients for gno.land in the future, but in terms of mindshare, I don't think Rust can flip Go due to its design choices. That's not to say that Rust is any worse than Go; they are different.”\n\n### Will Gno be its own hub? Will Gno provide ICS-like security to its own community?\n\n**Jae**: “Gno.land can be a \"hub,\" like \"git hub\" is a \"hub,\" but that doesn't mean it will offer ICS. If other chains solve ICS1 better, it makes sense for gno.land to be IBC-connected to zones that are not ICS1 replicated/secured with gno.land validators.\n\nIf we consider that validators of gno.land are better as contributors to the gno.land ecosystem (rather than general validator service providers** we may be more comfortable contributing to an awesome ecosystem but not entering the validator-as-a-service business.\n\nIt makes more sense to me that Cosmos Hub validators should own that business, which will eventually require validators to run their own server stacks and have data center infrastructure.”\n\n### How can one become a validator?\n\n**Jae**: “First, one has to become a member. We have not yet defined the full member system, but we will figure that out along the way. For now, we can say that we want first and foremost members who also validate, rather than impartial validators that only validate.”\n\n### How does Gno validate work? PoS? Proof of Contribution?\n\n**Manfred**: “The contributors DAO will elect validators and validators will have the same amount of power. They'll be focused on validating and will receive rewards for that job.”\n\n### What is Proof of Contribution? What kind of contribution will be credited?\n\n**Manfred**: “Proof-of-Contribution is a way to replace Proof-of-Stake with a metric based on the contributions. It's a variation of Proof-of-Authority where the authority is a DAO of contributors. After the 'Game of Realms** competition, we'll reward the best contributors with a tiered membership in the first version of Proof-of-Contributions DAO. The voting power and everything related to staking will be distributed across the contributors.\n\nLater, we'll add more flexibility to the membership with $GNOSH, allowing more accurate and fair rewards. Validators won't receive voting power with staking. The DAO will elect them, and they will all receive the same amount of power. Validators will receive rewards for their technical work, not for the amount of staked tokens they are bound to.”\n\n### Is there a document or resource that describes the key concepts in a Gno smart contract?\n\n**Manfred**: “We have yet to get a single top-level documentation, sorry. You can find documentation in the code, README files, issues, etc. We need to improve this. The community will be able to work on this during Game of Realms.”\n\n### Is there a big-picture diagram of the ecosystem?\n\n**Jae**: cosmos hub \u003c-- \"ec2+DTCC\"\ngno.land \u003c-- \"github for gno\"\n(cosmos hub etc) ICS zones \u003c-- \"holy grail\" scalable smart contracts\nyour chain \u003c-- \"gno inside\"\nyour app \u003c-- \"import gno.land/...\"\nblockchain-based communications/coordination/discourse platform \u003c-- us\n// DTCC: \"https://www.investopedia.com/terms/d/dtcc.asp\" // my point is, be a good reliable token hub with good governance.”\n\n### I'm a developer (PHP, Python**. How can I become a Gno developer? Please advise me on where to start.\n\n**Manfred**: “Start learning Go! One of the long-term goals of Gno is to make writing contracts as easy as writing web2 apps. The language is already strong in that direction, but we still need to catch tooling, documentation, tutorials, and language improvements. You need to have a good level with Golang and be autonomous to start building on Gno.\n\nOne of the Game of Realms tracks will be to work on everything related to onboarding more people. This will be the best place to write specific tutorials to onboard people from other ecosystems or languages.”\n\nWhat are Realms, and what is r board?\n\n**Jae**: “A realm is a Gno package with state, that represents a smart contract with storage and coins. The other Gno packages don't have state, and so are \"pure\" packages that can be imported from other realm or non-realm packages. Like land-tax, realms must be whitelisted or pay storage upkeep for their state. You can create new realms by uploading a new package with the package directory starting with /r/REALM/NAME.\n\n/r/demo/boards is a Gno package that renders a message board. It is a proof of concept message board written in Gno. Since we need to preserve messages, it is a stateful (realm** package. You can see the files of the demo boards, like:\n\nhttps://test3.gno.land/r/demo/boards/board.gno\n\n### How do external packages get imported?\n\n**Manfred**: “Example: when you call your smart contract from Go during testing, how can/should that smart contract load external packages?\n\nA gnolang can only import other gnolang contracts/libraries that were published on-chain. If you want to import an external Golang library, you need to port it to Gno, and publish it as a library, then you can import it from a top-level contract.\n\ngnodev test is an exception, it basically creates an in-memory Gnolang VM, publishes the dependencies (automatically detected**, and executes the test. The tool can act differently from the real on-chain experience. Note that we'll improve the gnodev so it can automatically download on-chain contracts or use custom local paths, to support advanced development workflows.”\n\n### What is a Gnode?\n\n**Jae**: “I don't like the name \"Gnode\" because it's too generic, but the idea is to build Gno-based building blocks for GnoDAOs, as MyGnode embeds components (of owners, treasury, board, etc.** here:\n\nhttps://github.com/gnolang/gno/commit/b9128b1d69f02dbb49be883e0c70fe9d3fc40dcc\n\n**Manfred**: “We can change the name 🙂. A Gnode is a DAO implementation that implements an interface allowing them to interact. A Gnode can have a parent and have children. Top-down interactions may be funding, grants, and approvals. Bottom-up interactions may be reporting or voting. The implementation is flexible. You can have DAOs managing a Gnode, its treasury, and voting the cross-Gnode interactions. You can have Gnodes with an elected leader or one driven by a bot or another blockchain. One of the goals of Game of Realms will be to propose various implementations of Gnodes.\n\nAt the level of Gnoland, we will probably have a top-level Gnoland Gnode managing a global treasury and vision. Then various technical and non-technical child Gnodes manage subsets of the treasury and their tasks. They may also have children. With IBC2, Gnodes could be distributed across different chains.”\n\n### What is the timeline for IBC2?\n\n**Jae**: “After the launch of gno.land, IBC2 is permissionless innovation anyone can try for, so I imagine not long after that. After initial implementations, I bet we will want to tweak/optimize the Merkle tree further, but this can come after IBC2 demos.”\n\n### Can you tell us more about Game of Realms?\n\n**Manfred**: “Game of Realms is a competition to build the first contracts of Gnoland and experiment with proof of contributions. The first step of the competition will be to build the missing tools for the second step. So people will compete to write the DAO that will review the other contributions and allocate points.\n\nThe rest of the competition will be about competing to write the best contracts for well-known categories or make non-technical contributions. At the end, we'll have strong foundations (libraries, rules, tutorials, dApps** to help upcoming builders to start in better conditions. The best contributors will earn rewards and membership in the future DAO of contributors that will co-own the chain.\n\nWe'll have the first version of a Proof-of-Contributions-based DAO of contributors. Focus on one of the official tracks: build a contract suite to compete with Cosmos' governance module to eventually complete Cosmos Hub governance. Realm boards are basic discussion contracts that can be used for discussions, and be extended for governance, launchpad, or other things mixing discussions and DAO actions.”\n\n### Is it possible to build code with gno.land directly online?\n\n**Jae**: “We will make the sandbox staging.gno.land environment easy to access, and that will be preferable to testing on gno.land directly. The gno codebase tries to remain minimal so it shouldn't be difficult to run it locally.”\n\n**Manfred**: “I've seen people writing contracts from VSCode on an online VSCode instance. Someone could create a VSCode template configured to communicate with staging by default with a dummy wallet containing tokens.”\n\n### Is there a plan to be able to use the Gno VM with a Cosmos SDK-based chain?\n\n**Manfred**: “This is one of the plans, yes. And not only on Cosmos SDK. But we don't have a clear plan about how it will happen yet.”\n\n### How about interoperability?\n\n**Jae**: “Regarding interoperability, will it be between Gno chains, with Cosmos, or with more chains outside of Cosmos? If it is with chains outside of Cosmos, which ones, in the short and long term? I think if the latter were to come to pass, the world of web3 and NFT could be awesome. Short run, Cosmos SDK-based chains with IBC1 for code import and cross-chain smart contract calls; but with IBC2/Gno it's really up to the smart contract logic.”\n\n### Are Gno.land tokenomics deflationary?\n\n**Jae**: “There will be $GNOT, and this token will be used for spam prevention fee payment, and it will be deflationary. Previously, we discussed $GNOSH as a secondary token, but we have moved away from the $GNOT/$GNOSH model and will keep $GNOT while making gno.land more about membership among levels of peers.\n\nI think we need an alternative to the Cosmos Hub that is more people-centric than stake-centric, and where alignment is not bought or sold but depends on contributions and value alignment proven over time. The hope is that by moving away from a pure tokenomics perspective and moving into the realm of politics and ethics along with general economics we can curate a different kind of culture.”\n\n### Are there any collaborations with other projects to build on Gno?\n\n**Jae**: “Yes, why don't we make this truly open, in the style of free software, so that we can build upon a common VM design? The only thing I want to retain control over for a temporary duration of time is the regulation of trademarks, like \"gno\", \"gno**\", \"*gno\" (but you can use the license to fork this project however you want); and we want proper attribution, but the AGPL fork license suggests how we can work together collaboratively.\n\nThe GNO VM can be used on any chain if it follows the AGPL style license, which we are calling the \"Gno GPL\". Blockchains can still be composed of components licensed with compatible open source software. We can collaborate indirectly by working and contributing to the same codebase, and know that the code we are building together will always be available for you to use for your chain, as long as it remains and is offered as GNO free software.\n\nSo anyone can build GNO smart contracts into their chain for free, according to the license we are deriving from the GNU (not GNO** AGPL license. You don't have to pay gno.land or anyone if the license is followed. Example: we will collaborate with the Cosmos Hub and Cosmos/ATOM community to offer gno DAOs to be hosted by ICS1, and help bring collaboration tools for Cosmos. So this is how gno works with Cosmos Hub assuming ICS1 is solved. As for gno.land, we can start off with an independent gno instance for the Cosmos Hub's gno shards, and later allow the IBC importing of vetted code from gno.land/*.”\n\n### Apart from Adena, are there any plans for another wallet?\n\nJae: “I think what we need are a few competing base implementations that best leverage the framework they build upon, rather react or minimal vue; and to create common core libraries along the way if reasonable. But there ought to be more than one approach for such a key component, with special care taken into consideration for security. Like, I don't agree with Keplr asking so easily for a 12/24-word mnemonic, even if the implementation is secure, it is going to become a problem. PSA btw.”\n\n### Wen mainnet?\n\n**Jae**: “Some time by Q2 next year would be good. But as policy, we can't commit to a date, because everything has to be ready first before the official launch. Our thesis is that having the DAO with sub-DAOs will allow us to reach the end result in a faster way via some form of parallelism. First, we need DAOs to assess new code, and better UX for managing something like upgrades to the Cosmos Hub. Once we have the DAO running on testx.gno.land, for some x \u003e 4, and we have checked all vital TODOs, we will know that we are ready for \"mainnet.\"\n\n_Do you have more questions for Manfred or Jae? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and be sure to join us for our second **AMA on December 6th @4pm UTC.**_\n","2022-12-05T16:15:00Z","manfred,jae","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ms2zfn/i+w3iPDFTbHF8ni6WJwlaHZ+D3mEPekiLzRHu/ABREGDz9r9rck3E3wvNfr/cNUciufzpbGtxrwI2DA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["test4-explained","Test4 Explained","\n\nWe recently [announced](https://gno.land/r/gnoland/blog:p/monthly-dev-8) the Test4 milestone on our road to mainnet. It's a big step in terms of complexity, so let's delve into the nuts and bolts, and how Test4 fits into the bigger picture.\n\n## Why Test4 is Significant\n\nOur choice to go with Go stemmed from our desire to lower the barrier to entry for new developers. That meant that we needed an intuitive programming language with widespread usage; developers would be able to write smart contracts without being forced to learn another language. Go fits the role perfectly. \n\nThe flip side is that we can't just port a VM and call it a day. We have to build most tools and services from scratch.\n\nIn that sense, Test4 is the technological leap from a single validator POC to a first iteration of an actual functioning decentralized blockchain network. \n\nIt's also the first stable testnet since the project's inception over 2 years ago.\n\n## Multinode capability\n\nLike most blockchains, we're looking to boost resilience and security through a number of validator nodes. But since we're not forking a VM, we're building the whole thing from scratch; starting from the ability to emit events, to being able to subscribe to smart contracts, to making a change based on those events. All this is needed e.g. to add or remove a validator node in the Gno.land network, since the validator management is done completely on-chain.\n\nThe initial validator set will not be incentivized; it will be a small group of the most active contributors, as well as internal AiB teams, who will thoroughly test and break the network, and document all the things!\n\n## The First Permanent Testnet\n\nTest4 is the first serious iteration of an official Gno.land testnet. Our aim is not to have any breaking changes, meaning you can use it to develop your dApp, identify bugs, test features in an environment that's as close to the upcoming mainnet as possible. Being a testnet, you can use the [Faucet Hub](https://faucet.gno.land/) to obtain test tokens and use dApps without any real consequences.\n\nNow, that isn't to say that Test4 will be the ultimate testnet. If we uncover major breaking issues, we'll deploy Test5 and so on.\n\nWe promise, however, to come up with a better naming convention going forward.\n\n## Indexer and Transaction Explorer Included\n\nA staple of a functional blockchain network is being able to search, track and verify transactions. This enables the developers to confirm their smart contracts are working as intended, as well as troubleshoot issues. Test4 comes with a transaction explorer, allowing developers to move off custom Test3 forks over to Test4 for convenience.\n\n## Regular Release Schedule for Binaries\n\nWith breaking changes being deployed before the Test4 launch, we can now switch to the rolling release model. Updates will go live on a regular, most likely biweekly basis, enabling developers to test their dApps on the latest available version.\n\n[Portal Loop](https://docs.gno.land/concepts/portal-loop/) will keep up with the binaries, and run on the latest version.\n\n## Proof-of-Contribution Scaffolding\n\nA key Gno.land concept is Proof of Contribution; the idea that the reward goes not to the one who pays to win either via mining rig or big stake, but to the one that invests time to contribute to the community.\n\nContributions will be managed on-chain via DAOs; E.g. a contributor with core contributions will be a part of a DAO that recognizes those contributions, and the rewards will be tied to the level the contributor has in that DAO.\n\nTest4 will lay down the foundation for PoC. We'll be adding proposal support, as well as voting support that executes those proposals on-chain. The result will be a modified version of PoA that will be supported on a protocol level, and managed by the admin. This will make the future switch to PoC a much more seamless affair.\n\n## Release Date\n\nOur goal is to complete development by the end of July 2024, and launch in early August 2024. We've opened up the [Test4 milestone](https://github.com/gnolang/gno/milestone/4) and the Gno.core team's [project board](https://github.com/orgs/gnolang/projects/38/views/5), so you could track the progress. \n\nWe're also getting ready to open up some of the issues to the community, so stay tuned!","2024-05-30T00:00:00Z","Kouteki","gnoland,test4,testnet,poc,proof-of-contribution,tm2"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k7l2p+KDDUoLpMA6kJFUojQUe8oCc+UKNQJOUpDwDCWiFQ4iTw7fya2MN9znDPEdQ2gKuHLvWvqJxmG9aFNfBA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["test4-live","Blockchain Testnet Launched: Test4 Now Live","\n\nWe are excited to announce the launch of our blockchain testnet, Test4. This milestone marks a significant leap in our journey towards the gno.land mainnet, bringing new capabilities and stability to our development environment.\n\n## Key Features of Test4\n\n### Transition to a Decentralized Network\n\nTest4 is our first step towards a fully decentralized blockchain network. Unlike earlier stages, it supports multiple validator nodes, enhancing security and resilience. The initial validator set consists of:\n\n- Core engineering team\n- DevX team\n- Onbloc\n\nWhich brings us to the second major feature, the GovDAO.\n\n### GovDAO\n\nThe first iteration of the testing GovDAO enables on-chain voting and validator management. The initial GovDAO members are gno.land team members, major contributors and teams already building dapps on gno.land. The first voting proposals will be to add additional 3rd party validators:\n\n- Berty\n- Teritori\n- IrreverentSimplicity\n\nOur plan is to keep evolving the GovDAO mechanism, with the goal of setting up a decentralized entity that incentivizes members to be active and contribute to the gno.land project.\n\n### A Stable Environment for dApp Development\n\nTest4 is the first permanent and stable testnet for Gno.land, designed to avoid breaking changes. To help developers use it to build and test dApps, we've added Test4 to the [Faucet Hub](https://faucet.gno.land/); you're able to obtain test tokens and experiment without real consequences.\n\nWe've also collaborated with Onbloc to update [Adena](https://www.adena.app/), which now supports Test4 out of the box. Onbloc has also provided [GnoScan](https://gnoscan.io/), a transaction explorer to aid in smart contract development and troubleshooting.\n\n### Namespaces\n\nNamespaces provide users with the exclusive capability to publish contracts under their designated namespaces, similar to GitHub's user and organization model. Or simply put, you'll be able to claim a username and use it as your on-chain identity. Learn more about it in the [gno.land docs](https://docs.gno.land/concepts/namespaces/).\n\n## What's Next?\n\nWe've launched Test4 a few weeks ahead of the schedule - we'll be heads down the next few weeks fixing bugs and patching things. There's still a lot of work left before we get to a mainnet release candidate. That's where you come in: play around with Test4, break it, and [contribute](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md).\n\nOnly together we'll be able to build gno.land the right way. So let's get started, gnomies!","2024-07-17T00:00:00Z","Kouteki","gnoland,ecosystem,govdao,test4"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3qf7C3fSVUQF5csF/68cExzgQqFYCkGmVttt/UFYG+yLQev6FE4dFie40uCR3wCjxpakOoYRyA6iq/Sr8P4ZBA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["the-gnome","Introducing our new Gno.land logo: the gnome","\n\n[![banner](https://gnolang.github.io/blog/2024-05-21_the-gnome/src/thumbs/banner.png)](https://gnolang.github.io/blog/2024-05-21_the-gnome/src/banner.png)\n\nWe are excited to introduce our new Gno.land logo, a significant shift that \nreflects the true spirit of our project.\n\nFrom the very beginning, the character of the \"gnome\" has been a source of \ninspiration for gno.land, representing the essence of our journey and values.\nIn time, this character has not only inspired our project but has also become\npart of gno.land’s identity. \n\nThe black hole of the previous logo represented \nfinality, inevitability, the ultimate end state, and was an interesting \nrepresentation of something that cannot be seen; but it also had nothing to do\nwith gnomes. Gnomes are warm and inviting in character, are the opposite of the\ncold and unemotional void of black holes, where all that is known is pulled in \nand ceases to exist.\n\n_But why gnomes?_\n\nIn Greek, _gnomi_ means “the means of knowing; mind; intelligence; judgment”. \n_Gnomic poetry_ refers to a type of poetry involving short memorable maxims of \nwisdom that flourished in the 6th century in Greece. Today, when we hear _gnome_ \nwe think of earth-dwelling figures often found in lush blue-green gardens,\nguarding or simply enjoying the land they are in.\n\nNobody knows for sure the origin of these gnomes, but the earliest known\nreference to it comes from Paracelsus as _gnomus_, a Swiss Christian theologian \nphilosopher and alchemist of the Renaissance. He also called them _pygmies_ in \nhis _“A book on Nymphs, Sylphs, Pygmies, and Salamanders, and on Other Spirits”_\npublished in 1566, a study on myth creatures as they relate to Christianity.\n\nWhile the depiction of gnomes are varied, their general character was described\nby Paracelsus:\n_“the Pygmies (gnomes) are mountain people who keep pledges, are honest, hard \nworking, loyal to man, and “have money, because they themselves coin it” -\nParacelsus_\n\n(perhaps Paracelsus would have preferred to be identified as a gnome, since he was also an alchemist).\n\nThis character is consistent with Swiss folklore, as gnomes are said to have \ncaused the landslide that destroyed the Swiss village of Plurs in 1618 - the\nvillagers had become wealthy from a local gold mine created by the gnomes, who\nhad poured liquid gold down into a vein for the benefit of humans. The villagers\nwere corrupted by this newfound prosperity, which greatly offended the Gnomes. \n(Wikipedia on Gnomes).\n\nBy combining Swiss folklore and the original description by Paracelsus, we can \ndescribe gnomes in the following manner: \n・At first, gnomes create timeless value for humanity. \n・Humanity becomes corrupted through greed and abuses these timeless values. \n・Finally, the gnomes take remedial action. \n\nWhether the timeless value is that of an element such as gold, or that of a\nprotocol such as crypto(currencies), gnomes are hardworking alchemists who wish\nthe best for humanity and actively resist corruption and greed as a matter of \nprinciple. This quality of character is sorely needed in the field of \ncryptocurrencies and blockchain, where it is so easy to become corrupted by \ngreed and bag-holder syndrome, resulting in stalled innovation and broken \npromises at best, and the loss of life savings and the death of the wellbeing \nof entire communities at worse (thus far).\n\nOur field of crypto needs more gnomes to create timeless software and protocols\nfor humanity. Such technology should be: \n・intuitive (easy to use and understand) \n・expressive (for societal infrastructure; finance, social, knowledge) \n・finalized (completed) \n・secure (unhackable) \n・scalable (affordable) \n\nThese are timeless values we strive to bring to the world through gno.land. In\naddition, gnomes are not afraid to take a stance against greed and evil. Some\nsay that gnomes wear the Phrygian cap, which represents Zoroaster, the “three Magi”\nfrom the east, or the revolutionary pursuit of liberty. Gnomes are also earth\ndwellers, masons of the rock, and the guardians of the land.\n\nGnomes are thus an ideal representation of the builders behind gno.land. That’s\nwhy the logo had to change. We hope you like the new logo, an iconic depiction \nof the gnome with cap; and hope that the gnomic spirit can help guide us to build\na better honest world for all of us.\n\n_- the gnomes of gno.land_\n\n\n","2024-05-21T12:33:00Z","gno.land","gnome,brand-update,new-logo"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+yvZeQDL8toyzlLjvhdJhQF0ejyn77Czs07rofTp2OZtBEkGM36pORLScZn9dRKcIWanedWsziKWU+rDUqhHAw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["why-gno","Why do we need Gno and gno.land?","\n\ngno.land is a decentralized operating system to create decentralized platforms.\nIt is powered by Gno, a deterministic implementation of the Go programming\nlanguage, as a powerful tool to build composable packages and smart contracts on\na blockchain. Although gno.land can support a variety of applications and\nimplementations, among our core use-cases, we intend gno.land to be used as a\nbase for human-centric and transparent social platforms. In this blog post, we\noutline the problems that gno.land addresses, and what solutions we are building\nto solve them. While this summary is non-exhaustive and reflects the evolving\nfocus of the project, it offers an overview of our key objectives and ongoing\ninitiatives.\n\n## The Social Problem\n\n\u003e Achieving Unstoppable Truth.\n\nWe need a social platform that can be a common ground for a plurality of contrasting voices, while being transparent in its moderation and governance, with built-in features to create schisms when that is not upheld.\n\n- The current centralized social networking platforms are plagued with problems for users, content creators, and businesses:\n\t- Users are often constrained by the centralized ownership and control of platforms. Due to the network effect, it's very hard to move away from an established platform, or to create a \"schism\", granting users the possibility of true choice and requiring the platform to align with the interests of the users.\n\t- Content creators frequently need to adhere to unwritten \"community guidelines\" to preserve monetization or, worse, to avoid shadowbans that hide their content from their followers. Shadowbans are often attributed to opaque “algorithms”, making it difficult to challenge decisions or prove instances of discrimination, bias, or censorship.\n\t- Centralized, un-forkable platforms can have agendas, and their agendas are controlled by powerful entities. Users have little choice to \"take their business elsewhere\", as for many users the platforms themselves become an important medium for their business, or simply a way to connect to the people they care about. As it's been seen time and time again, control can be instrumentalized to track and profile people, sell them products they don't need or misinform them to vote for candidates that don't align with their best interests.\n\t- The data of the users is a commercial tool which can be used for advertising and improving massive AI models. In turn, the AI revolution promises to make the internet an unlivable hellscape of bots talking to each other who spread political propaganda and regurgitate incorrect information. Platforms must be resilient to bots and spam, fostering authentic communication and genuine content production among real users.\n- What gno.land wants to achieve:\n\t- Forkability. Blockchains are distributed databases, which themselves can be constructed as Merkle trees - allowing to check out different points in time, and to cheaply allow forking of content, similarly to how git allows branching.\n\t\t- gno.land, like all blockchains, is forkable, but even within gno.land we can make all states, including those of social platforms, forkable, too.\n\t\t- We see forking as a feature that should not only be a possibility for the most expert of users, but a common solution for everyone; it should be allowed even on the contracts themselves.\n\t\t- It's not an option of last resort; forking in software is something that happens continuously. The tools we use, such as git, allow us to build forks that feed back work into the upstream. Similarly, constructing common knowledge and information databases can also happen in a model that accepts schisms and different ideas on how to achieve the objective.\n\t- Decentralization of hosting and governance, but centralization of the communication platform. Thanks to the nature of blockchains, we can create social platforms which are hosted by many different validators, all with the same exact state. Governance is decoupled from validation processes, allowing it to be guided by distinct principles and incentives.\n\t\t- With the Fediverse, we avoid sharing single points of failure and centralization of governance into a single entity (person or company).\n\t\t- As opposed to the Fediverse, gno.land platforms can be more reliable and be centralized in terms of discovering and interacting with other users.\n\t- Funding by the users. Prioritize user-aligned platforms over advertiser-centric models.\n\t\t- This happens practically by ensuring the transaction fees, or revenue models built on top of them, can adequately fund both the hosting and the governance/moderation.\n\t- Freedom of speech. Ensure a baseline of moderation to address harmful and illegal content, while enabling smaller communities to govern content management according to their preferences, also using algorithms and moderating systems.\n\t\t- The chain should incentivize thoughtful content creation, moderation, and active participation in the community; but not block out content, so that the platform can be truly neutral.\n\t\t\t- There can and should be algorithms that show users interesting content while blocking out what they don't want to see. But users need to be able to choose between different algorithms and understand what each one is targeting; rather than solely signing up for the one that maximises \"engagement\" or \"screen-time\".\n- Why gno.land can achieve it:\n\t- By solving the incentive problem, we ensure that the chain can continue to work with a specific vision while being hard to subvert. The governance aims to expand the blockchain's potential and usages in real applications, rather than the capital of its investors.\n\t- By solving the technical problem, we can actually create a platform with the properties described above.\n\t- gno.land pays attention to creating scalable data structures that can host the content of the platform and enable free and universal access to it.\n\n\n## The Incentive Problem\n\n\u003e Establishing Anti-Subversion Governance.\n\nMost blockchain incentive schemes focus primarily on rewarding validators for securing consensus and maintaining network integrity. In order to build larger systems which are not just financially focused, we need to incentivize non-validators who nonetheless contribute to the advancement of the project, and make sure the chain governance is philosophically aligned, rather than just looking out for individual gains.\n\n- Exclusively rewarding a chain's validators is a good way to secure the chain; but not a good basis to create larger ecosystems outside of financial transactions.\n\t- The Proof of Stake model has been successful in securing blockchains; but it has not been successful in creating incentives for using and advancing a blockchain, only for providing validation services.\n\t- Additionally, as governance is most often tied to the stake of each user, control of the chain can easily be subverted by powerful and rich actors who want to acquire sizable portions of the blockchain.\n\t- Similarly, Proof of Work puts the incentives in the hands of those who have the resources and the means to have cost-effective machines, incentivizing those who have the most resources or those who have good, insider access to primary resources (chips and electricity).\n- Blockchains allow us to create effective economic models for building the internet which are fair to the participants involved in making it.\n\t- We should pay creators for making great content.\n\t- We should pay moderators who keep communities focused and true to their spirit.\n\t- We should pay those contributing to collective silos of knowledge like wikis, and verifying its information and accuracy.\n\t- We should pay software developers, as they create the applications and infrastructure.\n\t- We should pay auditors, who verify the security of smart contracts and packages.\n\t- Finally, we should pay validators, as they physically host the blockchain and make it possible.\n\t- The internet can no longer afford to only pay the companies who are making content hosting possible; we need to recognize the hours of work that go into collecting, creating, organizing and distributing information.\n- The governance of the chain cannot be tied to how much capital each participant has.\n\t- It should instead work to make its government aligned on common goals and a general philosophy of advancing the state of the project.\n\t- Its government has to be directly responsible for hosting the chain, ensuring that all the way down to the validator control is never given up to a non-aligned \"third party\".\n- The chain can and will have economic activity and present itself as a good place to build businesses; but the focus of the chain will go towards its applications rather than merely \"decentralizing finance\".\n- The chain should still welcome \"investors\"; but not as a main focus. Investors can shine in creating interactions with other ecosystems, and creating ways to exchange tokens, making it easier to buy GNOT and increasing demand. But the true value of the platform is created by those who develop and create on top of it.\n- Contribution-driven governance.\n\t- The core of the chain should consist of its most experienced members who have shaped it into what it is.\n\t- The governance also picks the validators of the chain, who will be chosen on alignment and technical capability rather than the capital they can stake.\n\t- Governance mechanisms are structured to reward contributors based on their verified contributions, with an emphasis on maintaining alignment with the network’s foundational principles.\n\n## The Technical Problem\n\n\u003e Creating Timeless Code.\n\nThe technical innovation brought by Gno makes solving the above problems possible.\n\n- We're at the Assembly age of web3.\n\t- Developing software is costly:\n\t\t- It's expensive to build basic things, both in terms of expertise in development, but also auditing and finding people that truly understand and can take advantage of the technology.\n\t\t- Many ecosystems employ domain-specific languages or restrictions on top of others (ie. WASM), which still requires specific training.\n\t- The development which is possible is very basic, similar to \"interconnected spreadsheets\".\n\t- Monolithic blockchains create limitations which de-facto limit the growth of the chain, only allowing for the entire system a very limited amount of computation in each block.\n- What Solidity misses:\n\t- Solidity is a Domain Specific Language, further increasing the cost of adoption by new users, especially those who are still curious and uncommitted to working on a blockchain.\n\t- Financially focused. Solidity contains many native constructs pertaining specifically to smart contracts; like the global `ether`, the type `address`, the globals `msg`, `tx` and `block`. On the other hand, its design lacks simple ways to represent and handle floats, dates and times, and misses other general-purpose features programmers expect from most programming languages.\n\t- Hidden control flow: [fallback functions](https://docs.soliditylang.org/en/latest/contracts.html#fallback-function) create hidden control flow when sending tokens, causing problems like [re-entrancy attacks](https://docs.soliditylang.org/en/latest/security-considerations.html#reentrancy).\n- How Gno solves it:\n\t- Composability:\n\t\t- Interfaces and closures allow to plug different code and data structures into each other.\n\t\t- Realms can be composed by re-using functionality of other realms or existing functionality published as packages.\n\t\t- IBC enables the blockchains using Gno to communicate with one another seamlessly, and build on the work happening elsewhere.\n\t- Low cost of adoption: Gno is a subset of Go with some different standard libraries. Learning Gno has a lower adoption barrier, as it is based on the widely-used Go programming language, familiar to approximately [two million developers worldwide](https://research.swtch.com/gophercount).\n\t- Low cost of building: quicker and simpler to write dApps (simple language, good already-audited p/ libraries); quicker and cheaper to audit them (all the source code is to be published on-chain).\n\t- App-focused: we are interested in social platforms, video game servers, and ways to share knowledge in a decentralized manner. We see dApps as systems that can make the web decentralized again and create a truly open internet for the time to come. DeFi is great - and an obvious use case for blockchains - Gno expands on what DeFi can do and enable many more apps, and ways to communicate with others.\n\t- Clear control flow: similarly to Go, there are no implicit getters, setters, and no method overloading; clear is better than clever.\n\t- Open source by default: all code on gno.land is published directly as source code, and published under the terms of the [Gno Network General Public License](https://gno.land/license) (on top of any license that the author may decide to use). The on-chain code can be perpetually inspected, modified and improved; becoming what we call \"timeless code\".\n- What does Gno enable?\n\t- Re-usable \"core\" contracts, like user management, groups, permissions.\n\t- Open Web: all data is public and clonable by others; as well as the tools to organize it and present it.\n\t- Coordination (civil services without government backing), Wikipedia, platforms that cannot be subverted or sold.\n- gno.land can be a GitHub for a wider ecosystem.\n\t- Our hope is to show with gno.land a much better way to develop decentralized applications.\n\t- Through IBC+ICS, other blockchains can look to connect with the gno.land chain and re-use its foundational code; as well as interact with its contracts.\n\t- gno.land, in the philosophy of [Cosmos](https://cosmos.network/), is not a monolithic, one-size-fits-all blockchain. The implementation of the programming language itself is not meant to be definitive, but rather to be a reference for creating other better, faster implementations that suit other use cases.\n\nLearn more about the vision and mission driving gno.land's development by watching our [video](https://youtu.be/M920PO3yrHk).\n","2025-01-08T00:00:00Z","thehowl,moul","gnoland,gno"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xF6TCRvJZq9aRjMuF51S0gWhIGg6mlwUxrzcLlT9PqAu0hGMKXrGabuO0hGxw3u/NimFWEiPo1VumXJ8FQbPBA=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1736376799"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","2023-11-24T00:00:00Z","christina","whoyougno,onbloc,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"If1qtO/YkadRD2QviCZWKxVnd4U2fVVhi93mLQXS+NwzgMEqSfEgGRuRtxj0DECTG8WEbe6xmqRiUzlmF1mDDQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\n\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","2024-01-11T00:00:00Z","christina","whoyougno,teritori,community,interview"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yr1JqKYy2ghMoiHBeoEbZ08+rvul9lpqKDgTVDXTZUHsW7fc0bZwEdbfKN9HjpKiGySZNSxMsBCCZr/q3K/4AQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["audit-proposal-request","Call for Security Auditors - gno.land Audit","\n\nIn the gno.land ecosystem, security is one of our top priorities as we continue to develop our blockchain focused on smart contracts and decentralized applications. As we move closer to the beta launch, we're calling on experienced security auditors to help us ensure the robustness and security of our codebase.\nWe are now accepting proposals for the auditing of the gno repository on GitHub. This is a significant and complex task, so we are looking for qualified firms or individuals with experience auditing blockchain systems, virtual machines, and distributed systems.\nYou can find the full gno.land repository here:\n\nhttps://github.com/gnolang/gno\n\n## What's in Scope?\n\nWe've already done some work to narrow the scope of the code that requires auditing. For a more detailed list of which files are in scope and which are not, please refer to the [Google Spreadsheet](https://docs.google.com/spreadsheets/d/1rAvzvCH1TBZAykWCzKpefJnbx0SaCEgnP6IypzX8Xo4/edit?usp=sharing) that outlines the specifics.\n\n### Scope Breakdown by Directory\n\nHere's the estimated breakdown of the lines of code that are in scope for auditing as of November 11th. This code is largely written in Go:\n\n* **gnovm**: 43,452 lines (25% of total)\n* **gno.land**: 18,677 lines (10% of total)\n* **tm2**: 108,020 lines (65% of total)\n\nTotal lines in scope: 170,149 lines\n\nThis won't change drastically before the audit, so these line counts may help auditors estimate time costs. Many proposals we've received so far are simply time-boxing for a 4 engineer-week audit.\n\n## Auditing Approach\n\nDue to the size and complexity of the audit, we are considering breaking the task into sub-components. We may hire multiple firms to audit different parts of the codebase simultaneously. The proposed divisions are:\n\n1. Gno Virtual Machine (GnoVM) - contained in the \"gnovm\" subdirectory\n2. The Remaining Components - including the \"gno.land\" and \"tm2\" subdirectories\n\n### Key Focus Areas for Auditors\n\nWhile the full codebase needs a thorough review, we've identified several areas of potential security concern that require special attention:\n1. **Determinism in GnoVM** \n As a blockchain designed for deterministic execution, ensuring that the GnoVM executes contracts consistently across all nodes is crucial. Our goal is to eliminate non-deterministic components from Go, such as using AVL trees instead of Go maps. However, we may still have lingering issues that could lead to non-deterministic behavior. A prime example is the module within `gnovm/pkg/gnolang/values_string.go`, which should be carefully reviewed for any such issues. \n **Why this matters**: Non-determinism can lead to chain halts or splits, which could be exploited by attackers.\n2. **Other GnoVM Challenges** \n gno.land contributor [@thehowl](https://github.com/thehowl) has detailed some additional areas of concern of the Virtual Machine here: https://github.com/gnolang/gno/issues/2886#issuecomment-2400274812 \n3. **Security in Realms (Smart Contracts)** \n Developers deploy smart contracts, called \"Realms,\" to the chain. Malicious Realms could attempt to inject harmful content that could affect other users of the chain, particularly in the `Render` function or supporting tools like **Gnoweb**, which displays Realms to end users. \n **Potential risk**: Cross-site scripting (XSS) and other injection attacks.\n4. **Security Risks Found in Other Blockchain VMs** \n Many blockchain VMs, such as Ethereum's EVM, have faced high-profile security issues. We expect that similar vulnerabilities could be targeted in the GnoVM, so it's crucial to audit and mitigate these risks in advance.\n5. **Key Management (gnokey)** \n Although this is a lower priority than some previously mentioned, auditors will need to review the gnokey package, which handles key generation and signing, to ensure that security best practices are being followed; for example, ensure our Ledger hardware wallet integration with gnokey uses the correct build flags.\n\n## How to Submit a Proposal\n\nWe're looking for proposals that include the following line items:\n\n- **Cost of auditing the entire \"gno\" repository** -- covering all directories and files in scope.\n- **Cost of auditing the Gno Virtual Machine (gnovm)** -- focused on the **gnovm** subdirectory.\n- **Cost of auditing the other components** -- covering the **gno.land** and **tm2** subdirectories.\n- **Fuzzing efforts** -- auditors are encouraged to include fuzzing as part of their code review process, though it should be listed as a separate line item.\n\nPlease include the timelines for auditing and your current availability beginning December 23rd. \n\n## Timeline \u0026 Contact Information\nWe expect the audit to consume at least 4 engineer weeks and conclude by the end of the day January 20th, giving us a week to remediate any high- or critical-severity issues by January 28th. Audit teams may decide to dedicate multiple auditors in parallel to meet our desired timeline. We are open to discussions with auditing teams to answer any questions about the scope of the project.\n\nPlease send your proposals via email to **security [at] tendermint [dot] com**. We are happy to meet with potential auditing teams to further discuss the details and answer any questions.\n\n\n## Conclusion\n\nThe gno.land community is committed to building a secure and resilient blockchain platform. We believe that involving experienced auditors in our development process is essential to ensure that we can deliver a secure environment for dApp developers. If you or your team have the expertise and are interested in contributing to gno.land's security, we encourage you to submit a proposal.\n\nLet's work together to make gno.land the most secure blockchain for smart contracts and decentralized applications!\n","2024-12-05T00:00:00Z","kristovatlas","gnoland,gnovm,security,audit"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"td4vXjpdXXsKjt5m3jd+vZUOTGk/LOw/7HbbwgjZyDlsaq/++RzWnnzy27WiND+q0dJJkF5yihgzXZrss2foCw=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1733421842"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["kv-stores-indexer","Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x","\n\nIn this article, we'll discuss how we achieved a tenfold increase in the processing speed of the tx-indexer by applying four key concepts related to our use of key/value storage:\n\n- Understanding Key/Value Store Variability\n- The Importance of Efficient Data Encoding\n- Implementing Secondary Indexes on a Key/Value Store\n- The Role of Batch Inserts in Enhancing Performance\n - Data consistency\n - Speed\n - Old\n - New\n- Conclusion\n\nThe Transaction Indexer ([tx-indexer](https://github.com/gnolang/tx-indexer)) is\nthe primary tool Gno.land uses to index its networks. It is in charge of keeping \nup with block production, fetching new data, indexing it, and serving it to users\nwhile providing filtering and subscription capabilities. The tx-indexer creates\nversatility and ease of use when using on-chain data, which is one of the key \naspects of a fully functioning decentralized application.\n\n## Understanding Key/Value Store Variability\n\nNot all key/value storages are created equal. Each varies significantly, and \ndepending on their internal data structures, some are better suited for certain\nuse cases than others. A deep understanding of the key/value store you plan to \nuse will help you better organize data for efficient writing and reading and \nassist in choosing the best store for your specific needs.\n\nWhile [PebbleDB](https://github.com/cockroachdb/pebble) is based on \n[RocksDB](https://github.com/facebook/rocksdb/wiki/RocksDB-Overview), the two \ndatabases differ significantly. Both utilize LSM Trees built upon SSTables;\nhowever, PebbleDB supports only a subset of the features available in RocksDB. \nFor instance, PebbleDB lacks built-in transaction capabilities, but these can be \nalternatively implemented through the use of Batches and/or Snapshots.\n\n## The Importance of Efficient Data Encoding\n\nOur indexing involved elements defined by consecutive integers, with Blocks on \none side and Transactions within a Block on the other.\n\nInitially, Blocks were indexed using a combination of `block_prefix` and block_id\nencoded in little endian. This method wasn't allowing us to use iterators for \nordered data retrieval, forcing us to fetch elements individually, resulting in\nexcessive and inefficient database queries.\n\nAfter refactoring, we adopted a binary encoding scheme that allowed for custom\nencoding of strings and integers. This flexibility enabled ascending or descending \norder iterations, which significantly improved our ability to read data sequentially\nthrough iterators and, consequently, reduced query times dramatically.\n\nSmall example about how we encoded uint32 values in ascending order:\n\n```go!\nfunc encodeUint32Ascending(b []byte, v uint32) []byte {\n\treturn append(b, byte(v\u003e\u003e24), byte(v\u003e\u003e16), byte(v\u003e\u003e8), byte(v))\n}\n```\n\n## Implementing Secondary Indexes on a Key/Value Store\n\nWhile most filters are applied on the fly due to their low cost, we implemented\nsecondary indexes to fetch Transactions by Hash efficiently.\n\nSecondary indexes are specialized key groups that directly reference the primary\nindex key where the data resides. For example, a transaction with ID `3` in block\n`42` is indexed as `/index/txs/[uint64]42[uint32]3`. These transactions are also \nuniquely identified by a hash representing the entire transaction content.\n\nTo fetch transactions by hash, we created a secondary index that points to the\nprimary index:\n\n`/index/txh/[HASH] -\u003e /data/txs/[uint64]42[uint32]3` \n\nAlthough our secondary indexes do not require ordered iteration, this capability\nremains available, allowing us to apply additional filters as necessary. For\ninstance, we could index transactions by year:\n\n`/index/txYear/[uint16]2024[uint64]42[uint32]3 -\u003e /data/txs/[uint64]42[uint32]3`\n\nThis format allows us to iterate through transactions within a specific year, \nfrom the start to the end of 2023, for example:\n\n- from: `/index/txYear/[uint16]2023[uint64]0[uint32]0` \n- to: `/index/txYear/[uint16]2023[uint64]MAX_UINT64[uint32]MAX_UINT32` \n\n## The Role of Batch Inserts in Enhancing Performance\n\nThe advantages of write batches are often overlooked but crucial. Inserting \nelements individually can lead to data consistency issues and slower operations.\n\n### Data consistency\n\nBatches ensure atomicity—either all elements are persisted, or none are. \nWithout batches, a failure during insertion could result in a block being saved\nwithout some of its transactions.\n\n### Speed\n\nEach insertion involves internal processes that slow down the operation. By \ngrouping several entries in one batch, we significantly enhance insertion speed.\nThese are new benchmarks comparing the old and new way of writting elements \nwithout and with batches. Note that these are just synthetic benchmarks and the\n10x improvement was measured when using the indexer as it is (we came from \nspending 30 mins to 3 mins with the new storage changes):\n\n#### Old\n\n```go!\nfunc BenchmarkPebbleWrites(b *testing.B) {\n\tstore, err := NewDB(b.TempDir())\n\trequire.NoError(b, err)\n\tdefer store.Close()\n\n\tpairs := generateRandomPairs(b, b.N)\n\n\tb.ResetTimer()\n\tfor k, v := range pairs {\n\t\terr := store.Set([]byte(k), v)\n\n\t\tb.StopTimer()\n\t\trequire.NoError(b, err)\n\t\tb.StartTimer()\n\t}\n}\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/gnolang/tx-indexer/storage/pebble\ncpu: AMD Ryzen 5 5600X 6-Core Processor\nBenchmarkPebbleWrites\nBenchmarkPebbleWrites-12 \t 1316\t 928941 ns/op\t 33 B/op\t 0 allocs/op\nPASS\nok \tgithub.com/gnolang/tx-indexer/storage/pebble\t1.384s\n```\n\n#### New\n\n```go!\nfunc BenchmarkPebbleWrites(b *testing.B) {\n\tstore, err := NewPebble(b.TempDir())\n\trequire.NoError(b, err)\n\tdefer store.Close()\n\n\tpairs := generateRandomBlocks(b, b.N)\n\n\tbatch := store.WriteBatch()\n\n\tb.ResetTimer()\n\tfor _, v := range pairs {\n\t\terr := batch.SetBlock(v)\n\n\t\tb.StopTimer()\n\t\trequire.NoError(b, err)\n\t\tb.StartTimer()\n\t}\n\n\terr = batch.Commit()\n\n\tb.StopTimer()\n\trequire.NoError(b, err)\n\tb.StartTimer()\n}\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/gnolang/tx-indexer/storage\ncpu: AMD Ryzen 5 5600X 6-Core Processor\nBenchmarkPebbleWrites\nBenchmarkPebbleWrites-12 249462 4730 ns/op 1704 B/op 43 allocs/op\nPASS\nok github.com/gnolang/tx-indexer/storage 4.669s\n```\n\n## Conclusion\n\nIf you find out this interesting and want to have a deeper look about\n[how it is done](https://github.com/gnolang/tx-indexer/tree/main/storage), or just try our indexer, it is as simple as ramping up \na docker image:\n\n```\ndocker run -it -p 8546:8546 ghcr.io/gnolang/tx-indexer:latest start -remote http://test3.gno.land:36657\n```\n\nAnd start playing with it through its GraphQL interface at `http://localhost:8546/graphql`\n","2024-05-10T13:37:00Z","ajnavarro","blog,post,tx-indexer,dev"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g6VJY1rln0BXJ94lVM3DtwN98zVn0VFmw7i0lWLRbPLoQRqYa9aujsVOBgTdwNh5HyiMJz4m9Se4rmuUegPIAA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["monthly-dev-12","The More You Gno 12: Gno Bounties","\n\nWelcome to the 12th edition of The More You Gno! This month's highlight is our bounty program; solve an interesting challenge in Gno, get paid.\n\n## Gno Bounties\n\nHere's how our bounty program works. We've [labelled issues in our repo](https://github.com/gnolang/gno/labels/bounty) that are eligible for the bounty program. \n\n1. Find a bounty you want to work on\n2. Submit a draft PR\n3. Ask questions and get feedback early\n\nBounties are sorted by t-shirt sizes, ranging from $500 to $32,000 USD.\n\nFind out more [here](https://gno.land/contribute).\n\n## Introducing Gnoverse\n\nOne of the gno.land tenets is censorship resistance. For that, we need greater decentralization. That's why we're opening [Gnoverse](https://github.com/gnoverse), a new GitHub organization dedicated to community-driven projects, as well as other minot projects not critical to the gno.land infrastructure.\n\nContributors will be able to experiment with Gno related ideas and projects, collaborating without interference and oversight from the core engineering team.\n\nWe've migrated a dozen repos from [Gnolang](https://github.com/gnolang) to [Gnoverse](https://github.com/gnoverse). Whether you're a developer, designer, or just passionate about Gno, your input is invaluable. Feel free to submit pull requests, suggest ideas, or simply join the conversation.\n\n## Gno Core Updates\n\nThe engineering team got together in Turin, Italy, to work through the details of the upcoming main.gno.land launch. We are almost ready to talk about this publicly, but you can hear some spoilers on the [video snippets](https://x.com/_gnoland/status/1844779439160213861) we caught.\n\n### Changelog\n\n- [Fixed repo-level benchmark workflows](https://github.com/gnolang/gno/pull/2716), for easier performance regression monitoring. Viewable [here](https://gnolang.github.io/benchmarks/). This allows us to identify how individual PRs affect performance.\n- vel benchmark workflows, for easier performance regression monitoring. Viewable here.\nImpact: We can now track on individual PRs if there is a performance regression, and monitor long-term performance.\n- [Valid type comparisons for bools](https://github.com/gnolang/gno/pull/2725).\n- [GnoVM slice memory allocation order fix](https://github.com/gnolang/gno/pull/2781).\n- [Value declaration loop fix](https://github.com/gnolang/gno/pull/2074).\n- [Support `len` and `cap` on an array pointer](https://github.com/gnolang/gno/pull/2709) .\n\n## Events and Meetups\n\n### Past events\n\n#### gno.land Contributor Tech Discussions\n\nWe've revamped the contributor calls to showcase the cool stuff being built on our platform, and have technical discussions on the challenges we face. The [1st video is out](https://www.youtube.com/watch?v=4YUOTt5bDJc), and new ones will be published every two weeks.\n\n#### Go Meetup - Turin, Italy\n\nDuring our engineering retreat in Turin, we took the opportunity to connect with the local Go community and hold a gno.land workshop. Our very own Morgan Bazalgette walked the attendees through the gno.land project, followed by a live coding session where Morgan built a simple messaging board. See the video [here](https://youtu.be/b3zRbVcJxyE).\n","2024-10-17T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZOrjWClZiw3diWTjk4v0DRbLsDhyMs94+SolQ1bhGqqcu2SMwve+bxBN/g2ckieYdI7Acd6K+v/4fgF4fOMOBQ=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1731003708"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["monthly-dev-13","The More You Gno 13: Test5, gnoverse and more","\n\nThis edition of \"The More You Gno\" is packed with updates and highlights. Test5 testnet was launched; a new community space called `gnoverse` is now available. The mainnet launch milestone is up and the development is speeding up. It's an exciting time to be a part of the gno.land project.\n\n## Test5 is live\n\nOn November 13 we launched [Test5](https://test5.gno.land/), a new iteration of the multinode testnet. The validator set has been expanded from 7 to 17 nodes, plus a number of non-validator nodes. It also boasts GovDAO v2 that expands the on-chain voting capabilities, and a number of fixes and quality of life improvements for the developers. \n\nTest5 is already available on Adena and the Faucet Hub, so feel free to give it a try.\n\n## Introducing gnoverse\n\nLaunched two weeks ago, [gnoverse](https://github.com/gnoverse) serves as a collaborative hub for experimental and innovative projects inspired by the gno.land ecosystem. It’s a space for incubating ideas and exploring the full potential of Gno.\n\nThis GitHub space maintains a strong connection with the [gnolang](https://github.com/gnolang) community, fostering collaboration and resource sharing among developers and enthusiasts. Our goal is to support and highlight projects that enhance the gno.land experience, and to be much more hands-off in the process.\n\nWe value community contributions! Whether you’re a developer, designer, or simply enthusiastic about Gno, your input matters. Join us by submitting pull requests, sharing ideas, or engaging in discussions. If you need a new repo for your project, we'd be happy to oblige.\n\n## Mainnet launch\n\nWhile we're getting an official announcement ready, take a sneak peek at the [gno.land mainnet launch milestone](https://github.com/gnolang/gno/milestone/7) on GitHub. The scope has been finalized for the most part, and our engineering teams are covering a lot of ground. We'll most likely launch at least one more testnet between now and the mainnet launch, so stay tuned.\n\n### Changelog\n\nAll the cool stuff we've done, outlined as bullet points:\n- [for loops maintain the same block on iteration, which is referenced in any closures generated within](https://github.com/gnolang/gno/issues/1135)\n - [feat(gnovm): handle loop variables](https://github.com/gnolang/gno/pull/2429)\n- [Running gno test causes a panic when struct variables are redeclared in loops](https://github.com/gnolang/gno/issues/3013)\n - [fix(gnovm): fix issue with locally re-definition](https://github.com/gnolang/gno/pull/3014)\n- [feedback needed: how are you using gnoland genesis ...?](https://github.com/gnolang/gno/issues/2824)\n - [chore: move gnoland genesis to contribs/gnogenesis](https://github.com/gnolang/gno/pull/3041)\n- [feat: r/gov/dao v2](https://github.com/gnolang/gno/pull/2581)\n- [Test4 re-release](https://github.com/gnolang/gno/issues/3060)\n- [Test5 release](https://github.com/gnolang/gno/issues/3061)\n - [feat: add initial test5.gno.land deployment](https://github.com/gnolang/gno/pull/3092)\n- [Proposal: Implementing Versioning Across Application Serialization Structures](https://github.com/gnolang/gno/issues/1838)\n- [Running go vet on the project fails](https://github.com/gnolang/gno/issues/2954)\n - [fix(tm2): rename methods to avoid conflicts with (un)marshaler interfaces](https://github.com/gnolang/gno/pull/3000)\n- [Fix println DoS vector](https://github.com/gnolang/gno/issues/3075)\n - [fix(gnovm): don't print to stdout by default](https://github.com/gnolang/gno/pull/3076)\n- [Add r/sys/params + params genesis support](https://github.com/gnolang/gno/pull/3003)\n- [Support metadata for genesis txs](https://github.com/gnolang/gno/pull/2941)\n- [Setup \"nice\" stale PRs' bot](https://github.com/gnolang/gno/issues/1445)\n - [ci: add a stale bot for PRs](https://github.com/gnolang/gno/pull/2804)\n- [feat: add contribs/gnomigrate](https://github.com/gnolang/gno/pull/3063)\n- [chore: update tx-archive in portal loop](https://github.com/gnolang/gno/pull/3064)\n\n## Events and Meetups\n\n[4th episode](https://youtu.be/hRZ7iU4bovM?si=2tOUeuIyiSWxELGv) of the Contributor Technical Discussions is out! Watch the rest [here](https://www.youtube.com/playlist?list=PL7nP7r1QiDktMCdw1ydQo2crM3y6Zk7E4).","2024-11-21T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Z6e4nGSQZA5QtIW0A0iTGSwwcnqBVpNvstgYJVoqRSqghcZC6wC2B2DVSaOh3tyicUFgK+rbGEvjvoj3TPoDg=="}],"memo":"Posted from gnoblog-cli"},"metadata":{"timestamp":"1732245180"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["monthly-dev-9","The More You Gno 9: Realm to Realm Interaction, Faucet Hub, New Test4 Launch Date and More","\n\nThis edition brings several major pieces of news; Gno Studio Connect beta, and Faucet Hub. We're moving up the Test4 launch by 2 weeks, so we could get to mainnet faster. We'll also be seeing each other at GopherCons EU and US, so make sure to stop by and say hi! Oh, and our [new gnome logo is live](https://gno.land/r/gnoland/blog:p/the-gnome)!\n\nWe're also covering all the major and minor code improvements; if you want to dive deeper, we have the weekly engineering [updates](https://github.com/gnolang/meetings/issues/37) and video [recordings](https://www.youtube.com/watch?v=9ch7MhKNBmw\u0026list=PL7nP7r1QiDktMCdw1ydQo2crM3y6Zk7E4) available. \n\n# Gno Core Updates\n\n## Introducing Gno Studio Connect\n\nLast month [we talked](https://medium.com/@gnostudio/introducing-gno-studio-the-premier-builder-suite-for-gno-land-d1b4d82b46de) about the need for a premier builder suite for Gno.land. As Gno.land expands into a universe of realms, we saw the need for a set of tools; tools empowing the community to create and use succint and composable realms on Gno.land. Last year we launched [Gno Playground](https://play.gno.land/). Now we're adding another tool to the toolbox - [Gno Studio Connect](https://gno.studio/connect). Currently in beta, Connect allows seamless access to realms, making it simple to explore, interact, and engage with Gno.land's smart contracts through function calls. Try out your first realm interaction via Connect by taking our [gnoyourdate](https://gno.studio/connect/view/gno.land/r/gnostudio/gnoyourdate?network=test3#Vote) poll. \n\n## Faucet Hub is Live\n\nWith the [Faucet Hub](https://faucet.gno.land) you can now easily and effortlessly use all Gno.land ecosystem faucets, including Portal Loop, staging, future testnets and implementation partner chains. It's easily extensible, with the goal of having a single stop for every possible Gno.land test token you might need.\n\n## Test4 Launch Scheduled for July 15\n\nAfter announcing the tentative [Test4](https://gno.land/r/gnoland/blog:p/test4-explained) launch for the end of July/early August, we realized we're working faster than anticipated. That's why **we're moving the official Test4 launch to July 15, 2024**!\n\n## 550 TPS\n\nRecent [supernova](https://github.com/gnolang/supernova) tests showed that we have **~550 TPS** on a single node machine (M3 Mac; 100k txs, 1s block time). This is a huge step up from last year, when the TPS performance we had varied from 7-20 TPS with the same setup.\n\n## New DevOps team member\n\nPlease welcome Sergio Matone! A DevOps with a strong Go background, he'll be a key player in improving and managing the Gno.land infrastructure.\n\n## Belgrade Retreat\n\nThe core team travelled from across the world to Belgrade, Serbia, where we hunkered down and solved a number of issues blocking Test4 as well as future releases all the way to the mainnet. Full recap [here](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia).\n\n## Changelog\n\n- Dropped support for [all unused DB implementations](https://github.com/gnolang/gno/pull/1714), apart from leveldb and boltdb. Without excessive DB implementations that need maintaining, we can focus on optimizing the ones we actually use, and squeeze out performance from systems we already have. \n\n- Resolved a Long Standing CI Issue With BFT Tests. [The CI is finally green across the board](https://github.com/gnolang/gno/pull/1515). We still have some flaky tests, but the CI will no longer constantly fail on the BFT CI due to irregular channel usage. This, couple with our CI rework over the past month, significantly improved our GitHub development process.\n\n- Lots of spring cleaning efforts with [gnokey](https://github.com/gnolang/gno/pull/1212), [gnoland](https://github.com/gnolang/gno/pull/1985), and our other tools. We took this chance to also add extensive coverage and regression tests, in case they were missing before.\n\n- [Finally merged in Event / Emit support](https://github.com/gnolang/gno/pull/1653) in Gno! Users and Gno clients can finally fetch on-chain events as soon as they happen, and have a rich context for them as well. Support for these has already been propagated to our [tx-indexer](https://github.com/gnolang/tx-indexer/pull/43).\n\n- [Merged in the VM gas consumption fixes](https://github.com/gnolang/gno/pull/1430), which standardize VM gas usage across the board for users. Having predictable gas costs, and gas costs that take into account VM operations is only fair for both the node operators and the chain users.\n\n- [Reworked the node directory structure](https://github.com/gnolang/gno/pull/1944), and made [genesis.json usage explicit](https://github.com/gnolang/gno/pull/1972), paving the way to an easier multinode future. This effort enables us to easily orchestrate and configure Gno blockchain nodes, especially with the upcoming devnet / testnet launch.\n\n- [Overhauled our monorepo GH actions](https://github.com/gnolang/gno/pull/2040), with them now avoiding double-work, and being much snappier. CI for PRs now runs much quicker and more stable, due to these optimizations.\n\n- [Finished migration to Goreleaser](https://github.com/gnolang/gno/pull/2101). All of our important tools and binaries have a clear build and release schedule (for Docker, and beyond!), with us implementing nightly, dev and `master` releases on the monorepo.\n\n- [Bumped the gnovm test coverage](https://github.com/gnolang/gno/pull/2143) from ~34% to ~67%. With upcoming changes to the GnoVM, we needed a good safety net in the form of a testing suite that will alert us if funny business is going on after a change.\n\n- [Many, many bug fixes, small UX improvements and QoL changes](https://github.com/gnolang/gno/commits/master/?since=2024-05-01\u0026until=2024-06-03\u0026before=edb321f85beff98536a3a1a7111febaea0771a5e+35) that keep the lights on and systems running smoothly.\n\n# Ecosystem Updates\n\n## Onbloc\n\n Multinode/Validator Docs: https://github.com/gnolang/gno/pull/2285\n2. `test4` Validator Initiative Discussion: https://github.com/gnolang/hackerspace/issues/69\n3. GnoSwap Portal Loop Migration Blocker: https://github.com/gnolang/gno/issues/2283\n - Liquidity Pool realm deployment failing on portal-loop\n - Attempts tried:\n - Changing package path / reducing realm size / setting gax-wanted to max / changing client env\n - Cloning gno repo every single recent commit to re-produce on local but never failed.\n - Update: Potential cause → Certain failing txs are causing corrupt cache files `cacheNodes`\n\n- Gno Core\n - You can check our Merged, Awaiting Review, and TODO PRs in [our hackerspace. ](https://github.com/gnolang/hackerspace/issues/29)\n- [Onbloc API Docs](https://onbloc-info.gitbook.io/onbloc-api-docs): Permissionless JSON-RPC methods to Gno.land's official networks (portal-loop, test3) for any individuals or teams building on Gno.land (feedback is welcome!)\n- GnoSwap\n - Contract migration to portal-loop (Tartget: May 24th)\n - Applying `std.Emit` to contracts and APIs ([apply emit event in contract](https://github.com/gnoswap-labs/gnoswap/pull/217))\n - VWAP (Volume-Weighted Average Price) implementation for improved pricing ([gnoswap-labs/vwap](https://github.com/gnoswap-labs/vwap))\n- Misc\n - Add links to [GnoStudio Connect in GnoScan](https://gnoscan.io/realms/details?path=gno.land/r/michelle/mymood)\n - ![image](https://hackmd.io/_uploads/HJrWausQC.png)\n- Full update: [Onbloc Hackerspace](https://github.com/gnolang/hackerspace/issues/29#issuecomment-2124697977), [Onbloc Kanban](https://github.com/orgs/gnolang/projects/23)\n\n## Teritori\n\n- GnoVM\n\n - **Add stacktrace functionality and replace some uses of `Machine.String`**: This pull request is currently in review discussions with Morgan ([PR #2145](https://github.com/gnolang/gno/pull/2145)).\n - **Go2Gno loses type info**: This issue is Merged ([PR #2016](https://github.com/gnolang/gno/pull/2016)).\n - **Avoid instantiation of banker on pure package**: This change is awaiting review and merge ([PR #2248](https://github.com/gnolang/gno/pull/2248)).\n - **Missing length check in value declaration**: This pull request is also awaiting review and merge ([PR #2206](https://github.com/gnolang/gno/pull/2206)).\n - **Issue: File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The issue has been resolved and closed ([Issue #2220](https://github.com/gnolang/gno/issues/2220)).\n - **File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The fix has been successfully merged ([PR #2221](https://github.com/gnolang/gno/pull/2221)).\n\n- Gno lint\n - **Printing all the errors from goparser**: This pull request has been successfully merged ([PR #2011](https://github.com/gnolang/gno/pull/2011)).\n - **Lint all files in folder before panicking**: This pull request is awaiting review and merge ([PR #2202](https://github.com/gnolang/gno/pull/2202)).\n\n- DAO SDK (still waiting for review)\n PR: [#1925](https://github.com/gnolang/gno/pull/1925)\n \n- **GnoVM**\n - **Cannot use struct as key of a map**: We resolved the issue where structs couldn't be used as keys in maps. This PR has been merged ([PR #2044](https://github.com/gnolang/gno/pull/2044)).\n - **Go2Gno loses type info**: This issue is still awaiting review and merge ([PR #2016](https://github.com/gnolang/gno/pull/2016)).\n - **Gno Issue with pointer**: We proposed a solution ([Issue #2060](https://github.com/gnolang/gno/issues/2060)).\n - **Stacktrace functionality**: We added stacktrace functionality and replaced some uses of `Machine.String` ([PR #2145](https://github.com/gnolang/gno/pull/2145)).\n - **Recover not working correctly with runtime panics**: We created an issue to address this problem ([Issue #2146](https://github.com/gnolang/gno/issues/2146)).\n - **Panic when adding a package with subpaths**: We worked on this issue and waiting for review and merge [PR #2155](https://github.com/gnolang/gno/pull/2155)).\n\n- **Gno lint**\n - **Printing all the errors from goparser**: This improvement is waiting for review and merge ([PR #2011](https://github.com/gnolang/gno/pull/2011)).\n\n- **DAO SDK**\n - **DAO SDK**: Waiting Review and merge: [PR #1925](https://github.com/gnolang/gno/pull/1925).\n\n- **Project Manager**\nSince we have already a lot in review, before opening a PR on the Gno repo, we're taking time to:\n - Polish the \"private\" [atomic PR](https://github.com/TERITORI/gno/pull/20)\n - Polish the UI\n - Set-up e2e testing with gnodev and a gno-js-client wallet, you can see a demo recording [here](https://github.com/TERITORI/gno/pull/20), the end-goal is to run e2e tests in CI\n\n## Dragos\n\n### ZenTasktic \n- Zentasktic User (3rd grant milestone) implemented: https://github.com/irreverentsimplicity/zentasktic-user\n - updated docs for all 3 projects:\n - https://github.com/irreverentsimplicity/zentasktic-core/blob/main/README.md\n - https://github.com/irreverentsimplicity/zentasktic-project/blob/main/README.md\n - https://github.com/irreverentsimplicity/zentasktic-user/blob/main/README.md\n\n- zentasktic (the package)\n - big overhaul, allowing for keeping the Assess-Decide-Do logic on the `zentasktic` package, but save the data locally, in the realm importing the package. PR here with some more explanation: https://github.com/irreverentsimplicity/zentasktic-core/pull/1\n\n- zentasktic-project (the realm)\n - backend finished, repo here: https://github.com/irreverentsimplicity/zentasktic-project\n - question: test failing on RemoveWorkDuration with `panic: reflect: reflect.Value.SetString using value obtained using unexported field` on WorkDuration? AddWorkDuration and EditWorkDuration tests are passing...\n\n### Flippando\n* hackerville.xyz website updated for the upcoming airdrop: https://hackerville.xyz\n* airdrop script in testing\n* flippando NFT airdrop\n - copy added to the main flippando website, with airdrop mechanics and due date: https://gno.flippando.xyz/airdrop\n - minor updates to the website in preparation for this (airdrop mode: https://gno.flippando.xyz/playground)\n - spoiler, it will be on June 8th (2024, for conformity)\n\n## Berty\n\n- tx-indexer genesis [PR34](https://github.com/gnolang/tx-indexer/pull/34) (related to [PR1941](https://github.com/gnolang/gno/pull/1941)? ) / Jeff\n - blank screen bug fixed\n- dSocial latest features / Iuri\n - reply to a post\n - view other user's posts\n - others\n- UI conversation with Alexis - to plan soon\n\n- dSocial demo app\n - Released on Test Flight and Google Play\n - To get an invitation, send your email to Iuri on Signal. Please say if you have an iPhone or Android phone.\n - Using custom indexer on the Berty production server\n- Stress testing\n - Finalizing report\n - What is the PR to watch for resolving https://github.com/gnolang/gno/issues/1577 ?\n - Referenced PR https://github.com/gnolang/gno/issues/1576\n - Comment on CodeMagic as a possibility\n\n## Var Meta\n\n- issue: https://github.com/gnolang/gno/issues/2053\nPR: https://github.com/gnolang/gno/pull/2108\nDes: limit import path length\nStatus: Merged\n- issue: https://github.com/gnolang/gno/issues/2192\nPR: https://github.com/gnolang/gno/pull/2242\nDes: Restric the maketx call function can only call to a realm\nStatus: Merged\n- issue: https://github.com/gnolang/gno/issues/1998\nPR: https://github.com/gnolang/gno/pull/2149\nDes: This PR defines a GasUsed() func and a defaultInvokeCost in gas within std package. Simple feature let realm developer know the gas used at the time function is called.\nStatus: Wait for reviewing\n- ISSUE: New issue about GnoPlayGround RUN and TEST func in different browsers (safari, chrome)\nLink: https://github.com/gnolang/gno/issues/2270\nStatus: NO PR is made, waiting core team\n- WIP: Sponsor TX\nPR: https://github.com/gnolang/gno/pull/2209\nDes: This PR aims to facilitate a transaction that should have been from A(signer) to B(Address/Realm) (A would pay the gas fee). Instead, A will delegate C(signer) to sign the transaction from A to B (C will pay the gas fee).\nStatus: Under reviewing\n- PR: https://github.com/gnolang/gno/pull/2249\nIssue: https://github.com/gnolang/gno/issues/2232\nDes: To consolidate our returns on gnokey queries, I propose that we make them return JSON strings\nStatus: Waiting for #1776 to be merged\n- PR: https://github.com/gnolang/gno/pull/2198\nIssue: https://github.com/gnolang/gno/issues/2193\nDes: Propose refactoring p/ownable from a struct with a specific implementation to a more minimal interface, allowing for custom ownership logic while retaining the current struct as the default implementation.\nStatus: Waiting for reviewing\n- PR: https://github.com/gnolang/gno/pull/2225\nIssue: https://github.com/gnolang/gno/issues/2193\nDes: I propose integrating certain utility smart contracts from Ethereum into Gnoland. Now i'm working on defining the Bitmap, NonceManager and Queue packages, which can provide essential functionality for the Gnoland ecosystem.\nStatus: Waiting for reviewing\n- PR: https://github.com/gnolang/gno/pull/2234\nIssue: https://github.com/gnolang/gno/issues/2231\nDes: We should either implement this, or remove the flag until the functionality is implemented. Same goes for the –prove flag.\nStatus: Merged\n\n- PR: \n - Support extensions like Metadata, RoyaltyInfo for GRC721 https://github.com/gnolang/gno/pull/1962 (Merged)\n - Deprecate \u0026 remove std.CurrentRealmPath() https://github.com/gnolang/gno/pull/2087 (Reviewing)\n - limit package path length https://github.com/gnolang/gno/pull/2108 (Aprroved)\n - Implement Bitmap package https://github.com/gnolang/gno/pull/2115 (Need review)\n - Implement Nonces package https://github.com/gnolang/gno/pull/2123 (Need review)\n - GasUsed() for GnoVM std https://github.com/gnolang/gno/pull/2149\n- Issues:\n - Panic when getting keypair information https://github.com/gnolang/gno/issues/2133\n - Proposal: Integrate Sponsor Mechanism for Transaction Fees https://github.com/gnolang/gno/issues/2152\n\n## Student Contributor Program\n\n**Mustapha**\n* Made a V0 Auction dapp ([PR#2265](https://github.com/gnolang/gno/pull/2265)) \n\n## Contributors\n\n- **Antonio**\n - GNOWLEDGE: A [realm](https://github.com/iam-agf/Gnowledge) to simulate a Stackoverflow styled. Sharing to get\nsome feedback. You can check it out via https://github.com/iam-agf/Gnowledge-website\n - Shiken Project: https://github.com/iam-agf/Shiken=\n\n# New Content\n\n- [Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x](https://gno.land/r/gnoland/blog:p/kv-stores-indexer)\n- [Introducing Gno Studio, the Premier Builder Suite for Gno.land](https://gno.land/r/gnoland/blog:p/gno-studio-intro)\n- [Introducing our new Gno.land logo: the gnome](https://gno.land/r/gnoland/blog:p/the-gnome)\n- [Gnomes Spotted in Belgrade, Serbia: Recap from the Engineering Retreat and Golang Serbia Meetup](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia)\n- [Test4 Explained](https://gno.land/r/gnoland/blog:p/test4-explained)\n\n# Events and Meetups\n\n## Past events\n\n- GoLang Serbia Meetup / Belgrade / May 23. We used the Gno core team's retreat in Belgrade to connect with the local Go developers and possible contributors over the next few months to build the ecosystem. [Full recap](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia).\n- We're currently wrapping up **GopherCon EU** in Berlin, expect an update soon!\n\n## Upcoming events\n\n- **GopherCon US** / Chicago / July 7th - 10th\n- **Nebular Summit** / Brussels / July 12th/13th\n\n## Discord Developer Office Hours\n\nEvery week on Thursday at 2:30 pm CEST, we host office hours on [Discord](https://discord.com/invite/d24CT5b9cd?event=1252310282450112595) to answer questions, discuss updates, and catch up with the community. We'd love to see you there!","2024-06-20T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm,tm2,test4,gnostudio,connect"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XUbQuqg3Kbn4H9uMgAwu8TWouqLACEHTYTlKT2jJbsq87qXmiziT5IsA2NQmgAD0SZG4JgJfDP+pmNmeEP8nDQ=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["monthly-dev-9","The More You Gno 9: Realm to Realm Interaction, Faucet Hub, New Test4 Launch Date and More","\n\nThis edition brings several major pieces of news; Gno Studio Connect beta, and Faucet Hub. We're moving up the Test4 launch by 2 weeks, so we could get to mainnet faster. We'll also be seeing each other at GopherCons EU and US, so make sure to stop by and say hi! Oh, and our [new gnome logo is live](https://gno.land/r/gnoland/blog:p/the-gnome)!\n\nWe're also covering all the major and minor code improvements; if you want to dive deeper, we have the weekly engineering [updates](https://github.com/gnolang/meetings/issues/37) and video [recordings](https://www.youtube.com/watch?v=9ch7MhKNBmw\u0026list=PL7nP7r1QiDktMCdw1ydQo2crM3y6Zk7E4) available. \n\n# Gno Core Updates\n\n## Introducing Gno Studio Connect\n\nLast month [we talked](https://medium.com/@gnostudio/introducing-gno-studio-the-premier-builder-suite-for-gno-land-d1b4d82b46de) about the need for a premier builder suite for Gno.land. As Gno.land expands into a universe of realms, we saw the need for a set of tools; tools empowing the community to create and use succint and composable realms on Gno.land. Last year we launched [Gno Playground](https://play.gno.land/). Now we're adding another tool to the toolbox - [Gno Studio Connect](https://gno.studio/connect). Currently in beta, Connect allows seamless access to realms, making it simple to explore, interact, and engage with Gno.land's smart contracts through function calls. Try out your first realm interaction via Connect by taking our [gnoyourdate](https://gno.studio/connect/view/gno.land/r/gnostudio/gnoyourdate?network=test3#Vote) poll. \n\n## Faucet Hub is Live\n\nWith the [Faucet Hub](https://faucet.gno.land) you can now easily and effortlessly use all Gno.land ecosystem faucets, including Portal Loop, staging, future testnets and implementation partner chains. It's easily extensible, with the goal of having a single stop for every possible Gno.land test token you might need.\n\n## Test4 Launch Scheduled for July 15\n\nAfter announcing the tentative [Test4](https://gno.land/r/gnoland/blog:p/test4-explained) launch for the end of July/early August, we realized we're working faster than anticipated. That's why **we're moving the official Test4 launch to July 15, 2024**!\n\n## 550 TPS\n\nRecent [supernova](https://github.com/gnolang/supernova) tests showed that we have **~550 TPS** on a single node machine (M3 Mac; 100k txs, 1s block time). This is a huge step up from last year, when the TPS performance we had varied from 7-20 TPS with the same setup.\n\n## New DevOps team member\n\nPlease welcome Sergio Matone! A DevOps with a strong Go background, he'll be a key player in improving and managing the Gno.land infrastructure.\n\n## Belgrade Retreat\n\nThe core team travelled from across the world to Belgrade, Serbia, where we hunkered down and solved a number of issues blocking Test4 as well as future releases all the way to the mainnet. Full recap [here](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia).\n\n## Changelog\n\n- Dropped support for [all unused DB implementations](https://github.com/gnolang/gno/pull/1714), apart from leveldb and boltdb. Without excessive DB implementations that need maintaining, we can focus on optimizing the ones we actually use, and squeeze out performance from systems we already have. \n\n- Resolved a Long Standing CI Issue With BFT Tests. [The CI is finally green across the board](https://github.com/gnolang/gno/pull/1515). We still have some flaky tests, but the CI will no longer constantly fail on the BFT CI due to irregular channel usage. This, couple with our CI rework over the past month, significantly improved our GitHub development process.\n\n- Lots of spring cleaning efforts with [gnokey](https://github.com/gnolang/gno/pull/1212), [gnoland](https://github.com/gnolang/gno/pull/1985), and our other tools. We took this chance to also add extensive coverage and regression tests, in case they were missing before.\n\n- [Finally merged in Event / Emit support](https://github.com/gnolang/gno/pull/1653) in Gno! Users and Gno clients can finally fetch on-chain events as soon as they happen, and have a rich context for them as well. Support for these has already been propagated to our [tx-indexer](https://github.com/gnolang/tx-indexer/pull/43).\n\n- [Merged in the VM gas consumption fixes](https://github.com/gnolang/gno/pull/1430), which standardize VM gas usage across the board for users. Having predictable gas costs, and gas costs that take into account VM operations is only fair for both the node operators and the chain users.\n\n- [Reworked the node directory structure](https://github.com/gnolang/gno/pull/1944), and made [genesis.json usage explicit](https://github.com/gnolang/gno/pull/1972), paving the way to an easier multinode future. This effort enables us to easily orchestrate and configure Gno blockchain nodes, especially with the upcoming devnet / testnet launch.\n\n- [Overhauled our monorepo GH actions](https://github.com/gnolang/gno/pull/2040), with them now avoiding double-work, and being much snappier. CI for PRs now runs much quicker and more stable, due to these optimizations.\n\n- [Finished migration to Goreleaser](https://github.com/gnolang/gno/pull/2101). All of our important tools and binaries have a clear build and release schedule (for Docker, and beyond!), with us implementing nightly, dev and `master` releases on the monorepo.\n\n- [Bumped the gnovm test coverage](https://github.com/gnolang/gno/pull/2143) from ~34% to ~67%. With upcoming changes to the GnoVM, we needed a good safety net in the form of a testing suite that will alert us if funny business is going on after a change.\n\n- [Many, many bug fixes, small UX improvements and QoL changes](https://github.com/gnolang/gno/commits/master/?since=2024-05-01\u0026until=2024-06-03\u0026before=edb321f85beff98536a3a1a7111febaea0771a5e+35) that keep the lights on and systems running smoothly.\n\n# Ecosystem Updates\n\n## Onbloc\n\n Multinode/Validator Docs: https://github.com/gnolang/gno/pull/2285\n2. `test4` Validator Initiative Discussion: https://github.com/gnolang/hackerspace/issues/69\n3. GnoSwap Portal Loop Migration Blocker: https://github.com/gnolang/gno/issues/2283\n - Liquidity Pool realm deployment failing on portal-loop\n - Attempts tried:\n - Changing package path / reducing realm size / setting gax-wanted to max / changing client env\n - Cloning gno repo every single recent commit to re-produce on local but never failed.\n - Update: Potential cause → Certain failing txs are causing corrupt cache files `cacheNodes`\n\n- Gno Core\n - You can check our Merged, Awaiting Review, and TODO PRs in [our hackerspace. ](https://github.com/gnolang/hackerspace/issues/29)\n- [Onbloc API Docs](https://onbloc-info.gitbook.io/onbloc-api-docs): Permissionless JSON-RPC methods to Gno.land's official networks (portal-loop, test3) for any individuals or teams building on Gno.land (feedback is welcome!)\n- GnoSwap\n - Contract migration to portal-loop (Tartget: May 24th)\n - Applying `std.Emit` to contracts and APIs ([apply emit event in contract](https://github.com/gnoswap-labs/gnoswap/pull/217))\n - VWAP (Volume-Weighted Average Price) implementation for improved pricing ([gnoswap-labs/vwap](https://github.com/gnoswap-labs/vwap))\n- Misc\n - Add links to [GnoStudio Connect in GnoScan](https://gnoscan.io/realms/details?path=gno.land/r/michelle/mymood)\n - ![image](https://hackmd.io/_uploads/HJrWausQC.png)\n- Full update: [Onbloc Hackerspace](https://github.com/gnolang/hackerspace/issues/29#issuecomment-2124697977), [Onbloc Kanban](https://github.com/orgs/gnolang/projects/23)\n\n\n## Teritori\n\n- GnoVM\n\n - **Add stacktrace functionality and replace some uses of `Machine.String`**: This pull request is currently in review discussions with Morgan ([PR #2145](https://github.com/gnolang/gno/pull/2145)).\n - **Go2Gno loses type info**: This issue is Merged ([PR #2016](https://github.com/gnolang/gno/pull/2016)).\n - **Avoid instantiation of banker on pure package**: This change is awaiting review and merge ([PR #2248](https://github.com/gnolang/gno/pull/2248)).\n - **Missing length check in value declaration**: This pull request is also awaiting review and merge ([PR #2206](https://github.com/gnolang/gno/pull/2206)).\n - **Issue: File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The issue has been resolved and closed ([Issue #2220](https://github.com/gnolang/gno/issues/2220)).\n - **File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The fix has been successfully merged ([PR #2221](https://github.com/gnolang/gno/pull/2221)).\n\n- Gno lint\n\n - **Printing all the errors from goparser**: This pull request has been successfully merged ([PR #2011](https://github.com/gnolang/gno/pull/2011)).\n - **Lint all files in folder before panicking**: This pull request is awaiting review and merge ([PR #2202](https://github.com/gnolang/gno/pull/2202)).\n\n- DAO SDK (still waiting for review)\n PR: [#1925](https://github.com/gnolang/gno/pull/1925)\n \n- **GnoVM**\n\n - **Cannot use struct as key of a map**: We resolved the issue where structs couldn't be used as keys in maps. This PR has been merged ([PR #2044](https://github.com/gnolang/gno/pull/2044)).\n - **Go2Gno loses type info**: This issue is still awaiting review and merge ([PR #2016](https://github.com/gnolang/gno/pull/2016)).\n - **Gno Issue with pointer**: We proposed a solution ([Issue #2060](https://github.com/gnolang/gno/issues/2060)).\n - **Stacktrace functionality**: We added stacktrace functionality and replaced some uses of `Machine.String` ([PR #2145](https://github.com/gnolang/gno/pull/2145)).\n - **Recover not working correctly with runtime panics**: We created an issue to address this problem ([Issue #2146](https://github.com/gnolang/gno/issues/2146)).\n - **Panic when adding a package with subpaths**: We worked on this issue and waiting for review and merge [PR #2155](https://github.com/gnolang/gno/pull/2155)).\n\n- **Gno lint**\n\n - **Printing all the errors from goparser**: This improvement is waiting for review and merge ([PR #2011](https://github.com/gnolang/gno/pull/2011)).\n\n- **DAO SDK**\n\n - **DAO SDK**: Waiting Review and merge: [PR #1925](https://github.com/gnolang/gno/pull/1925).\n\n- **Project Manager**\nSince we have already a lot in review, before opening a PR on the Gno repo, we're taking time to:\n - Polish the \"private\" [atomic PR](https://github.com/TERITORI/gno/pull/20)\n - Polish the UI\n - Set-up e2e testing with gnodev and a gno-js-client wallet, you can see a demo recording [here](https://github.com/TERITORI/gno/pull/20), the end-goal is to run e2e tests in CI\n\n## Dragos\n\n### ZenTasktic \n- Zentasktic User (3rd grant milestone) implemented: https://github.com/irreverentsimplicity/zentasktic-user\n - updated docs for all 3 projects:\n - https://github.com/irreverentsimplicity/zentasktic-core/blob/main/README.md\n - https://github.com/irreverentsimplicity/zentasktic-project/blob/main/README.md\n - https://github.com/irreverentsimplicity/zentasktic-user/blob/main/README.md\n\n- zentasktic (the package)\n - big overhaul, allowing for keeping the Assess-Decide-Do logic on the `zentasktic` package, but save the data locally, in the realm importing the package. PR here with some more explanation: https://github.com/irreverentsimplicity/zentasktic-core/pull/1\n\n- zentasktic-project (the realm)\n - backend finished, repo here: https://github.com/irreverentsimplicity/zentasktic-project\n - question: test failing on RemoveWorkDuration with `panic: reflect: reflect.Value.SetString using value obtained using unexported field` on WorkDuration? AddWorkDuration and EditWorkDuration tests are passing...\n\n### Flippando\n* hackerville.xyz website updated for the upcoming airdrop: https://hackerville.xyz\n* airdrop script in testing\n* flippando NFT airdrop\n - copy added to the main flippando website, with airdrop mechanics and due date: https://gno.flippando.xyz/airdrop\n - minor updates to the website in preparation for this (airdrop mode: https://gno.flippando.xyz/playground)\n - spoiler, it will be on June 8th (2024, for conformity)\n\n## Berty\n\n- tx-indexer genesis [PR34](https://github.com/gnolang/tx-indexer/pull/34) (related to [PR1941](https://github.com/gnolang/gno/pull/1941)? ) / Jeff\n - blank screen bug fixed\n- dSocial latest features / Iuri\n - reply to a post\n - view other user's posts\n - others\n- UI conversation with Alexis - to plan soon\n\n- dSocial demo app\n - Released on Test Flight and Google Play\n - To get an invitation, send your email to Iuri on Signal. Please say if you have an iPhone or Android phone.\n - Using custom indexer on the Berty production server\n- Stress testing\n - Finalizing report\n - What is the PR to watch for resolving https://github.com/gnolang/gno/issues/1577 ?\n - Referenced PR https://github.com/gnolang/gno/issues/1576\n - Comment on CodeMagic as a possibility\n\n## Var Meta\n\n- issue: https://github.com/gnolang/gno/issues/2053\nPR: https://github.com/gnolang/gno/pull/2108\nDes: limit import path length\nStatus: Merged\n- issue: https://github.com/gnolang/gno/issues/2192\nPR: https://github.com/gnolang/gno/pull/2242\nDes: Restric the maketx call function can only call to a realm\nStatus: Merged\n- issue: https://github.com/gnolang/gno/issues/1998\nPR: https://github.com/gnolang/gno/pull/2149\nDes: This PR defines a GasUsed() func and a defaultInvokeCost in gas within std package. Simple feature let realm developer know the gas used at the time function is called.\nStatus: Wait for reviewing\n- ISSUE: New issue about GnoPlayGround RUN and TEST func in different browsers (safari, chrome)\nLink: https://github.com/gnolang/gno/issues/2270\nStatus: NO PR is made, waiting core team\n- WIP: Sponsor TX\nPR: https://github.com/gnolang/gno/pull/2209\nDes: This PR aims to facilitate a transaction that should have been from A(signer) to B(Address/Realm) (A would pay the gas fee). Instead, A will delegate C(signer) to sign the transaction from A to B (C will pay the gas fee).\nStatus: Under reviewing\n- PR: https://github.com/gnolang/gno/pull/2249\nIssue: https://github.com/gnolang/gno/issues/2232\nDes: To consolidate our returns on gnokey queries, I propose that we make them return JSON strings\nStatus: Waiting for #1776 to be merged\n- PR: https://github.com/gnolang/gno/pull/2198\nIssue: https://github.com/gnolang/gno/issues/2193\nDes: Propose refactoring p/ownable from a struct with a specific implementation to a more minimal interface, allowing for custom ownership logic while retaining the current struct as the default implementation.\nStatus: Waiting for reviewing\n- PR: https://github.com/gnolang/gno/pull/2225\nIssue: https://github.com/gnolang/gno/issues/2193\nDes: I propose integrating certain utility smart contracts from Ethereum into Gnoland. Now i'm working on defining the Bitmap, NonceManager and Queue packages, which can provide essential functionality for the Gnoland ecosystem.\nStatus: Waiting for reviewing\n- PR: https://github.com/gnolang/gno/pull/2234\nIssue: https://github.com/gnolang/gno/issues/2231\nDes: We should either implement this, or remove the flag until the functionality is implemented. Same goes for the –prove flag.\nStatus: Merged\n\n- PR: \n - Support extensions like Metadata, RoyaltyInfo for GRC721 https://github.com/gnolang/gno/pull/1962 (Merged)\n - Deprecate \u0026 remove std.CurrentRealmPath() https://github.com/gnolang/gno/pull/2087 (Reviewing)\n - limit package path length https://github.com/gnolang/gno/pull/2108 (Aprroved)\n - Implement Bitmap package https://github.com/gnolang/gno/pull/2115 (Need review)\n - Implement Nonces package https://github.com/gnolang/gno/pull/2123 (Need review)\n - GasUsed() for GnoVM std https://github.com/gnolang/gno/pull/2149\n- Issues:\n - Panic when getting keypair information https://github.com/gnolang/gno/issues/2133\n - Proposal: Integrate Sponsor Mechanism for Transaction Fees https://github.com/gnolang/gno/issues/2152\n\n## Student Contributor Program\n\n**Mustapha**\n* Made a V0 Auction dapp ([PR#2265](https://github.com/gnolang/gno/pull/2265))\n\n## Contributors\n- **Antonio**\n - GNOWLEDGE: A realm to simulate a Stackoverflow styled. Sharing to get some feedback. You can check it out via https://github.com/iam-agf/Gnowledge-website\n - [Shiken Project repositories](https://github.com/iam-agf?tab=repositories\u0026q=shiken\u0026type=source\u0026language=\u0026sort=)\n\n# New Content\n\n- [Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x](https://gno.land/r/gnoland/blog:p/kv-stores-indexer)\n- [Introducing Gno Studio, the Premier Builder Suite for Gno.land](https://gno.land/r/gnoland/blog:p/gno-studio-intro)\n- [Introducing our new Gno.land logo: the gnome](https://gno.land/r/gnoland/blog:p/the-gnome)\n- [Gnomes Spotted in Belgrade, Serbia: Recap from the Engineering Retreat and Golang Serbia Meetup](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia)\n- [Test4 Explained](https://gno.land/r/gnoland/blog:p/test4-explained)\n\n# Events and Meetups\n\n## Past events\n\n- GoLang Serbia Meetup / Belgrade / May 23. We used the Gno core team's retreat in Belgrade to connect with the local Go developers and possible contributors over the next few months to build the ecosystem. [Full recap](https://gno.land/r/gnoland/blog:p/gnomes-in-serbia).\n- We're currently wrapping up **GopherCon EU** in Berlin, expect an update soon!\n\n## Upcoming events\n\n- **GopherCon US** / Chicago / July 7th - 10th\n- **Nebular Summit** / Brussels / July 12th/13th\n\n## Discord Developer Office Hours\n\nEvery week on Thursday at 2:30 pm CEST, we host office hours on [Discord](https://discord.com/invite/d24CT5b9cd?event=1252310282450112595) to answer questions, discuss updates, and catch up with the community. We'd love to see you there!","2024-06-20T00:00:00Z","Kouteki","gnoland,ecosystem,updates,gnovm,tm2,test4,gnostudio,connect"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aWM6wlo8U+hlDflHXF7lUuG70gYiur+43FcmliLEcIZ8wvyUnT+N9J1tC5ClV52rE9qG9PFBfQL2rgyMP+EaBg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModEditPost","args":["the-gnome","Introducing our new Gno.land logo: the gnome","\n\n[![banner](https://gnolang.github.io/blog/2024-05-21_the-gnome/src/thumbs/banner.png)](https://gnolang.github.io/blog/2024-05-21_the-gnome/src/banner.png)\n\nWe are excited to introduce our new Gno.land logo, a significant shift that \nreflects the true spirit of our project.\n\nFrom the very beginning, the character of the \"gnome\" has been a source of \ninspiration for gno.land, representing the essence of our journey and values \ngoing forward.\nOver time, this character has not only inspired our project but has also become\npart of gno.land’s identity.\n\nThe black hole of the previous logo represented finality, inevitability, the\nultimate end state, and was an interesting representation of something that cannot\nbe seen; but it also arguably represented something like an unemotional void. In\ncontrast, gnomes are warm and inviting in character, and so much more.\n\n_So why gnomes?_\n\nIn Greek, _gnomi_ means “the means of knowing; mind; intelligence; judgment”. \n_Gnomic poetry_ refers to a type of poetry involving short memorable maxims of \nwisdom that flourished in the 6th century in Greece. Today, when we hear _gnome_ \nwe think of earth-dwelling figures often found in lush blue-green gardens,\nguarding or simply enjoying the land they are in.\n\nNobody knows for sure the origin of these gnomes, but the earliest known\nreference to it comes from Paracelsus as _gnomus_, a Swiss Christian theologian, \nphilosopher and alchemist of the Renaissance. He also called them _pygmies_ in \nhis _“A book on Nymphs, Sylphs, Pygmies, and Salamanders, and on Other Spirits”_\npublished in 1566, a study on myth creatures as they relate to Christianity.\n\nWhile the depiction of gnomes are varied, their general character was described\nby Paracelsus:\n\n_“the Pygmies (gnomes) are mountain people who keep pledges, are honest, hard \nworking, loyal to man, and have money, because they themselves coin it”_\n\n(perhaps Paracelsus would have preferred to be identified as a gnome, since he was also an alchemist).\n\nThis character is consistent with Swiss folklore, as gnomes are said to have \ncaused the landslide that destroyed the Swiss village of Plurs in 1618 - the\nvillagers had become wealthy from a local gold mine created by the gnomes, who\nhad poured liquid gold down into a vein for the benefit of humans. The villagers\nwere corrupted by this newfound prosperity, which greatly offended the Gnomes.\n\nIn addition, gnomes are not afraid to stand up against greed and evil. Some say \nthat gnomes wear the Phrygian cap, which represents Zoroaster, the “three Magi” \nfrom the east, or the revolutionary pursuit of liberty. Gnomes are also earth \ndwellers, masons of the rock, and the guardians of the land.\n\nBy combining the above descriptions, we can describe gnomes in the following manner:\n\n1. Gnomes create timeless value for humanity.\n2. But since humanity becomes corrupted through greed and abuses these timeless \nvalues, gnomes also take remedial action.\n\nWhether the timeless value is that of an element such as gold, or that of a \nblockchain protocol, gnomes are hardworking alchemists who seek the best for \nhumanity and actively resist greed and corruption as a matter of principle. This\nquality of character is greatly needed in the blockchain/web3 field, where it is \nso easy to become blinded by greed, resulting in stalled innovation, broken \npromises, sometimes the loss of life savings, and the demise of entire web3 \ncommunities.\n\nThe blockchain world needs more gnomes to create timeless software and protocols\nfor the benefit of humanity. Such technology should be:\n\n1. intuitive (easy to use and understand)\n2. expressive (for societal infrastructure, finance, social, knowledge)\n3. finalized (completed)\n4. secure (unhackable)\n5. scalable (affordable)\n\nThis is what we seek to bring to the world through gno.land.\n\nGnomes are thus an excellent representation of the builders behind gno.land. We\nhope you like the new logo – an iconic depiction of the gnome with cap – and hope\nthat the gnomic spirit can help guide us to build a better, more honest world for\nall of us.\n\n_- the gnomes of gno.land_\n\n\n","2024-05-21T12:33:00Z","gno.land","gnome,brand-update,new-logo"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7puwITF22mN+95udUnXDj7+ouGwXg9f00zoiXQJ/5JlazZMqryRHK3iNwDyZS8i4jdcNW2JYWWokg+eFONzoDg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Berlin Blockchain Week Buckle Up and Build with Cosmos","","https://www.youtube.com/watch?v=hCLErPgnavI","Berlin, Germany","2022-09-11T09:00:00+02:00","2022-09-18T18:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Cosmoverse","","https://www.youtube.com/watch?v=6s1zG7hgxMk","Medellin, Colombia","2022-09-26T09:00:00-05:00","2022-09-28T18:00:00-05:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Web Summit Buckle Up and Build with Cosmos","","","Lisbon, Portugal","2022-11-01T09:00:00+01:00","2022-11-04T18:00:00+01:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Istanbul Blockchain Week","","https://www.youtube.com/watch?v=JX0gdWT0Cg4","Istanbul, Turkey","2022-11-14T10:00:00+03:00","2022-11-17T18:00:00+03:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["EthDenver 2023","Side Event: Discover gno.land","https://www.youtube.com/watch?v=IJ0xel8lr4c","Denver, US","2023-02-24T10:00:00-06:00","2023-03-05T10:00:00-06:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Game Developer Conference","Side Event: Web3 Gaming Apps Powered by Gno","","San Francisco, US","2023-03-23T10:00:00-07:00","2023-03-23T18:00:00-07:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["BUIDL Asia","Proof of Contribution in gno.land","https://www.buidl.asia/","Seoul, South Korea","2023-06-06T10:00:00+09:00","2023-06-07T18:00:00+09:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["ETH Seoul","The Evolution of Smart Contracts: A Journey into gno.land","https://2023.ethseoul.org/","Seoul, South Korea","2023-06-02T10:00:00+09:00","2023-06-04T18:00:00+09:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["EthCC","Come meet us at our booth!","https://ethcc.io/","Paris, France","2023-07-17T10:00:00+02:00","2023-07-20T18:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Nebular Summit gno.land for Developers","","https://www.nebular.builders/","Paris, France","2023-07-24T10:00:00+02:00","2023-07-25T18:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["GopherCon EU 2024","Come meet us at our booth!","https://gophercon.eu/","Berlin, Germany","2023-07-26T10:00:00+02:00","2023-07-29T18:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["GopherCon US 2024","Come meet us at our booth!","https://www.gophercon.com/","San Diego, US","2023-09-26T10:00:00-07:00","2023-09-29T18:00:00-07:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Go to Gno Seoul","Join the workshop!","https://medium.com/onbloc/go-to-gno-recap-intro-to-the-gno-stack-with-memeland-284a43d7f620","Seoul, South Korea","2024-03-23T10:00:00+09:00","2024-03-23T18:00:00+09:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Intro to Gno Tokyo","Join the meetup!","https://gno.land/r/gnoland/blog:p/gno-tokyo","Shinjuku City, Tokyo, Japan","2024-04-11T18:30:00+09:00","2024-04-11T22:00:00+09:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Gno @ Golang Serbia","Join the meetup!","https://gno.land/r/gnoland/blog:p/gnomes-in-serbia","Belgrade, Serbia","2024-05-23T18:00:00+02:00","2024-05-23T22:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Nebular Summit 2024","Join our workshop!","https://nebular.builders/","Brussels, Belgium","2024-07-12T10:00:00+02:00","2024-07-13T18:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["GopherCon US 2024","Come meet us at our booth!","https://www.gophercon.com/","Chicago, US","2024-07-07T10:00:00-06:00","2024-07-10T18:00:00-06:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["GopherCon EU 2024","Come meet us at our booth!","https://www.gophercon.com/","Berlin, Germany","2024-06-17T10:00:00+02:00","2024-06-20T10:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Web3 Kamp 2024","Workshop: \"Exploring Web3 Ecosystems - Building a dapp in Go\"","https://web3kamp.org/","Petnica, Serbia","2024-08-01T10:00:00+02:00","2024-08-09T17:00:00+02:00"]},{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["BUIDL with Cosmos Tooling","Join us at our side event during Web3 Summit!","https://www.eventbrite.com/e/buidl-with-cosmos-tooling-tickets-981775686507?aff=oddtdtcreator","Berlin, Germany","2024-08-20T17:00:00+02:00","2024-08-20T22:00:00+02:00"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HVoPLBbGTyoJTCOoD/oNzPUBt5GW2lliGWrd5cTYheG5579Cqvm3af4Td6s7gQJkjsJlgE0LBfL+gr3Z5cH9CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"AddEvent","args":["Distributed communities: How to Build Timeless and Decentralized apps, with Go","Join our meetup!","https://www.meetup.com/golang-torino/events/303140845/","Turin, Italy","2024-09-23T18:30:00+02:00","2024-09-23T20:30:00+02:00"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fFjSY0RoM3E2zYd9ZKiuUOz7tKJgSZltD898VjzzxfZdfj9lWiHLb0U9OukEpZlF4xEMJ+l0YuCh4rFbDa3oCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"EditEvent","args":["000000b","GopherCon EU 2023","","","","",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gTlqDAn/Z6ICSHqns2oAcViRf0WxSj2achMnL8visD+Nqxnn+LcXOVO4GDmZCnxcb/GwCDnr9M2HVoBBZbaSCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/events","func":"EditEvent","args":["000000c","GopherCon US 2023","","","","",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ucLZtyUplR+LcNU7kw8bGD4/6s4cH8ou8besbOO7EP4N+Hsa2f6Zgs6MzdtVIbySIkZAg1IpWD/9yZ0mGwo+CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/faucet","func":"Transfer","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","10000000"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jpp2iFEsAUFlm4v46Ah38uJVqf+9koX3NnbdW+0Arj4PZ4/QZ3g45rwLTOeoYXYULGKJZoL4Jrda7pUO73VuDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/gnoland/ghverify","func":"RequestVerification","args":["leohhhn"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lveGHufh1E6qNSYBS4yJ+AzX5ldFKNOhvW1gEQrYCaDMASI/pd9eY/d46ZxT3fe74CSUwg3NOCIif1xafcMnBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/counter/e/hello","func":"Increment","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TZn4LEzrsclpY4RBQSJhW8lgWgnx49cf3W77y49KDnSXecv9chsuge9q/c5LpK8fBDj1kqLrWjMPGlM8JiXJCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/counter/e/hello","func":"Increment","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TZn4LEzrsclpY4RBQSJhW8lgWgnx49cf3W77y49KDnSXecv9chsuge9q/c5LpK8fBDj1kqLrWjMPGlM8JiXJCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/demo/poll","func":"NewPoll","args":["My poll","my first poll descirpion","10000000"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ver5UXWdoxxmo2nDWWIBO/wt1ZnEa9F8Bkaer4xt9KgkiXvad/s/usaYduF9R8jXmNbws+5/K8zgbTvC6Jw8CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/demo/poll","func":"NewPoll","args":["New poll 2","description","100000"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0IfNfBYi9yiu8S7XrMy0UQncDvq/E1Xau/S1LBdfq8Es3PTC4FptbmOlkOpqPkQ8eww43ZQmcOmpaIyOIGzfAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/demo/poll/v1","func":"NewPoll","args":["My Poll","description","100000"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D7JwrCAxRnr0xPsDb3cGvIGhk9rLC9JSy4L2lNNbVyJpaV1frkuiPvIbwM0T6N4aIEvsL2c7Gk0G7OiGqDhbAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/demo/poll/v2","func":"NewPoll","args":["My Poll","Description","100000"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SLhEyFYYwrBDp505RX0KK8oLXGC5TsAPyX4RGi454GSZWwpC0gey6bQQWNkujYCTB8wGC9yZyGizJCzSlcrBDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/demo/poll/v2","func":"Vote","args":["0","-1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d6B8STp4yqmaYXMyWTxBsBVE2+rLuh4gjyfCbjrltsW9ZPBSvsVvJO2/HFV8iaqEZs4NshxEBetD+E5aFUVEDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/demo/poll/v2","func":"Vote","args":["0","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4Bw7CUQtdyctKkRS1DwUVtz8jVgLunCib+oZORnpCO1YypcANi8EnvWFml5KTTzCLvRiZLrrHVBffo+IjMRPCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/grc/v1/leon20","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HpLKT8dvDPMTqR5OKYn/HhmJVG93UMVKXVGH1uJo/R2qpHJcih+b512Xktvad+BE3mEXC735EwjNVP6EPw8WDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/grc/v1/leon200","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SZqmV0exCj+vZV6/oLGGGrKtulqzbIm3gqaaMafLEGzgNRP5K11l9MB2uTwWmZksHXkWJ5pAiPdO9HcpRvpqBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/grc/v1/leon200","func":"BalanceOf","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X7K8NZGWTuqePjTjzzPkOK9vchF3X7D+wr5w10I6wp+m9hTd/qxct9N8IIDBA6ZcC3lTkbmKDTKGKfxtuFtwBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/grc/v1/leon200","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","10000"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S92K4nhguwqPlEm4LcyddDOClLMfZuaxiSC25PN22AcFuCwRHAREAMQGy3dXTlyqB6aGTM33se888AJS60rSDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/leon/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IewlIS5lrp0CZWtSc8u+/HvlGkjcEz8uDKoywh9+ybQ0yeVOLNmYHZJLJDBLvevLyeez6cjQgiRWXaLgF/JzCQ=="}],"memo":""},"metadata":{"timestamp":"1732157238"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/manfred/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"u0n+e9C5tj03Fji6ywNSaEBYkTrUHMpb6l9xaXGEzez9Dxr6yyNK4qqwSU70p4nSf7P8fZYwPNWtw6Uo/HNtDg=="}],"memo":""},"metadata":{"timestamp":"1732157227"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/morgan/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pQySk/f75eQpVyQODjIjYV5Uv/tAON5CeeR4pfOhiGWmGstRCE2urGB/uWeP9LVDndZmcmx0RbIQMqagXMHgCg=="}],"memo":""},"metadata":{"timestamp":"1732157212"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/n2p5/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mBY8/PkiL7e22AJRs7aIbP3nLvZRV6t60SkXSbU6F+dMo8qWV3bF6aHDWToRk6/o27orkvcEk5iVnRMkRBzICw=="}],"memo":""},"metadata":{"timestamp":"1732334924"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v3/raffle","func":"RegisterUsername","args":["klol"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l98iXROnltL516/WAiEr+d1BX96pzEoh9TQg9Ji37S5F9ekVFDK7g8hkN/piUmd/wV+iMUSx5YdK1y18Z8EwDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v3/raffle","func":"RegisterUsername","args":["leohhhn"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wm57yfXwqYds6ZpHozWmbM/k5lHqy/sRbLny+PyqTNGOQyQE+9pQoO32Gfg/FiZZFE/WZZLuL/157+QEdpa+Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v3/raffle","func":"UploadCodes","args":["a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j6pnyggi1PKGc9o8uRTRiJ/FD5dtF6DT7LnQ/c+9SVaeL9N57vrMT5vTgeeu7pS7p/Sn1KPtn3usLnYIPJviAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v3/raffle","func":"UploadCodes","args":["a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j6pnyggi1PKGc9o8uRTRiJ/FD5dtF6DT7LnQ/c+9SVaeL9N57vrMT5vTgeeu7pS7p/Sn1KPtn3usLnYIPJviAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v3/raffle","func":"UploadCodes","args":["a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2eYq+cK8KR/7NMezl1/8/3yUAlAyvRyIuPfbeW0RubXosBbryvCRTkg/w2YuQWIOeTviO8Azi5u6R6oAJUHyCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v3/raffle","func":"UploadCodes","args":["a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2eYq+cK8KR/7NMezl1/8/3yUAlAyvRyIuPfbeW0RubXosBbryvCRTkg/w2YuQWIOeTviO8Azi5u6R6oAJUHyCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v4/raffle","func":"RegisterUsername","args":["leohhhn"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mU6UZy+oCndYytO/2Lv9W5KNevID61Hu/kZg/1a27lV1L6trvV3EJKaCtUrdRfIJ5nK9dHEt+ExErqJgbW2GBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/staging/v4/raffle","func":"UploadCodes","args":["a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JXis7rP2B4nekahO89MJbw5d8jTX/IFYSwTiMjuGL2/Mwoc+djOae6lbL4/kKU3MnhO7KwTb44JZ1z+z3iwZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltest","func":"AddListing","args":["1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CkuSdnpSQkbBZNrFLeziDhOTzrDWjaNBt/zOIebKnYg6GOwMd7KrMuKDVEqsnh/7m6rHFUTGRnLvHw3FwWP0Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltest","func":"AddListing","args":["1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CkuSdnpSQkbBZNrFLeziDhOTzrDWjaNBt/zOIebKnYg6GOwMd7KrMuKDVEqsnh/7m6rHFUTGRnLvHw3FwWP0Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltest","func":"RemoveListing","args":["1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B7MWVs1ygidjMJp7LjLdC9mI4DEhN3IKZOEd4Zkw493WXIGJc7lxrw4MI55AzVwBpIP6eiJDXvlKyBTRHw0dBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"AddListing","args":["1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vyOxMHVOP1YV0TVgGgz9YmRUesMTZlyliLchj816OO32GTCQXxDV0ob1tNptB//q1g6G8rQnjqAjxuop6Qa5DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"AddListing","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0aw4tyHkeNRSubQdmQj6zrfwUn8rIY0NP0itnHuAhoP+PsHFN+chuHWiwri8tOe+bP+wQopF5lRLhxtArex8Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"AddListing","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0aw4tyHkeNRSubQdmQj6zrfwUn8rIY0NP0itnHuAhoP+PsHFN+chuHWiwri8tOe+bP+wQopF5lRLhxtArex8Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"Read","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0bH7TwNifB/rBXaSe8AFTS644p2uFGY+oaeTswDyCjLKkBMYte7LOIjcZfYbdK5J+9KMdUtSULya3dyOy92kBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"Read","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0bH7TwNifB/rBXaSe8AFTS644p2uFGY+oaeTswDyCjLKkBMYte7LOIjcZfYbdK5J+9KMdUtSULya3dyOy92kBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"Read","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0bH7TwNifB/rBXaSe8AFTS644p2uFGY+oaeTswDyCjLKkBMYte7LOIjcZfYbdK5J+9KMdUtSULya3dyOy92kBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"RemoveListing","args":["1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w2K8ddPlL3DHT9nnGz5OU8ytCtWGZ6O26d34biEPK3YIe17Z4JhxL6/odvWlE2OaxWEvndm3xBP7TljFyYDpCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/avltestv1","func":"RemoveListing","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lcm39Dr+xN83NC6bkROYtnDaVriQfMMqzL6NYq+GtQVxNg7kr2ZbfH44kWKZOnuCNGwwLth4/SjgNnR6WtPtDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/realm/hello","func":"R","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eYCRX9C8UdoBqCSP0hSUdRjx5JQvKibWTuUWcVZEY9qmfsUVQIo8I7zTh9Mez4yNVbdP/uNGFPnnm/Afc5CZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/realms","func":"GetPrevRealm","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tf+Lj6WuwSY15/NNHbP7Pi+zC1XTlyT4Yhgq08nhGQ/V0FgeC7pZ+61DJxip6O5W2hXwRsdKcSJ+0KwupBeNCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/realms2","func":"CallGetPrevRealm","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"spkxW7UG6PuDQhCufZd1+qqpteRz/3KV9hJzg3TsqimNoj7tlBVgIdD795jPZNZ7CyfjMptHEzhto6CFbM3/Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/test1/whitelistfactory","func":"NewWhitelist","args":["list1","1000000000","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yaVNOGXt1OgFRy7pOrL4Z9G33PnwcB1LIKq1+dNQZKIzf6C9RfFq6A8zdoerFxulW76oke07qkQsmzrt2sjtAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/test1/whitelistfactory","func":"NewWhitelist","args":["list1","1000000000","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yaVNOGXt1OgFRy7pOrL4Z9G33PnwcB1LIKq1+dNQZKIzf6C9RfFq6A8zdoerFxulW76oke07qkQsmzrt2sjtAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/test1/whitelistfactory","func":"NewWhitelist","args":["list1","1000000000","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yaVNOGXt1OgFRy7pOrL4Z9G33PnwcB1LIKq1+dNQZKIzf6C9RfFq6A8zdoerFxulW76oke07qkQsmzrt2sjtAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/test1/whitelistfactory","func":"SignUpToWhitelist","args":["0"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RB/ngFBv7Fado1YfbSkl6GiJlOT3TwZoOi/tjtl8nm1Qf+cG08d8i2uLQ7cSCqgN1i+qVwQRsSK8r++zIitTDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/test1/whitelistfactory","func":"SignUpToWhitelist","args":["0"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RB/ngFBv7Fado1YfbSkl6GiJlOT3TwZoOi/tjtl8nm1Qf+cG08d8i2uLQ7cSCqgN1i+qVwQRsSK8r++zIitTDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/test/todolist","func":"NewTodolist","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LFoLocRNt9aNqxahwWyMBMdGt9GmGlNYo5cRi9I6yRL96D48xXCSc0Gfk/Add2g5cqfhYZEAoglyWOsnaNNmBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/testing/counter2","func":"Increment","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Ule1/7woCOrb5vJKReAzkkbhd/+rtFWgKP9XZjAnQYA+detiO/U6ww1/YXo1NyV6x21R2U9dpjOiPyJ/DBUBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/testing/counter2","func":"IncrementAndPanic","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SV9MlWml1cbDFMYK/Ntirzomr4GpdlShGo4H7MyV+mrCwg/Uyc2jELi/N7Qfey0er4RTc2ClWT0PsdagoIFICw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/testing/counter3","func":"Increment","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sknLXFSA4jpQiQd0p0b43Fr4+Jkiysu5euCDoVoZYMksgfsRvpP1nEWEBtNZcgM9Si7DC4A8RS2JysEPziyuBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/testing/counter3","func":"IncrementAndError","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mJQrhE9glojH2kh50/5x1x52G+3eE7GNpBZ8eSNFISNRlxcn5SvtSMRto+LqGfMGj71KPoROSleQR8h+tqSfAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/testing/counter3","func":"IncrementAndPanic","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g05PUBFzhZgcz1zr7irUytw/E3fxsG7TOaFiCKqLVlZ5j91gXY3ZS1/IhPfg+H1gFgZ9cOcOm85G/J9XIfVDDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/tokens/leongrc20","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oc4LPBMNUWFl4szcIwTXL5GfBZkmfepeA1HLkpsz1TNrFzxh7zgGQm25jdkj16W4+yCUI7mwB4CrPqFyTGtlDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/tokens/leongrc20","func":"BalanceOf","args":["g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B9CCkBaAefQFqsYqYkWi7voSMriUkcH/T50Jv1O88rKCzMu9PuKlmreSbFUHslzb/SIuwAE5bZLav7EM+boBAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/tokens/leongrc20","func":"Transfer","args":["g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","100"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AbGrfkGqTPQj/zv0hSH2GpskI6tQnTAsrxSQ8CvwMiH9rfZ5fPuHP2SY65sYuBxpP42r2f53t5kHZmw2ZYz1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/tokens/leongrc20","func":"TransferFrom","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","100"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+TsEInG1H+HG74WdgwSFa3RdvNkV4y8yU8FZslLRO7kXAnkVByzE1U6NtqKhSDLRo5T/1iYCO+P2NWHKpaWcBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/tokens/leongrc20","func":"TransferFrom","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","100"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+TsEInG1H+HG74WdgwSFa3RdvNkV4y8yU8FZslLRO7kXAnkVByzE1U6NtqKhSDLRo5T/1iYCO+P2NWHKpaWcBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v1/raffle","func":"RegisterUsername","args":["leohhhn"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IEB5ch7ALIR5MJj38We2gMZA5UutIkGiusejw4oFf6k9nJElxdL1gdxtBp4C6SuuHwDEP8/xNCvMrb5EdXqFCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v1/raffle","func":"RegisterUsername","args":["leohhhn"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IEB5ch7ALIR5MJj38We2gMZA5UutIkGiusejw4oFf6k9nJElxdL1gdxtBp4C6SuuHwDEP8/xNCvMrb5EdXqFCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"PickWinner1","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IUhCkcQkPzrDcMKYYf+qdsJV4J5+EDYa8DMwPSDzjQTxwgdf4oDszf8Cj0ciRldtHN3IviWHAh6AoqudDfjrAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"PickWinner1","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IUhCkcQkPzrDcMKYYf+qdsJV4J5+EDYa8DMwPSDzjQTxwgdf4oDszf8Cj0ciRldtHN3IviWHAh6AoqudDfjrAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"PickWinner2","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ray8xKPOS8zSJt9KhojssEGFH/hLrjVy04XO7UraVsrcm+UxO74tmJExLGb3qq4/MrGAs9PB1xiefAxot7zMCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"RegisterUsername","args":["leohhhn"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SlTsNEwtusNmxC8jx3NHAKSKmKBRJ+9SuGWMpULbqcEOOiS9FwdiDyLCAOwMEjDrPZhpr5yaVt+BC9lR2YMbAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"UploadRandomness","args":["8493820","7928472904"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jxD3LPNAVkUHbcIv+nOqBvxXtbpmGW+CcJIWsUWjvtZPGFAeI9cUAdHgOSwcrokPV29Jo9W87KwBBP+FEUfIDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","14"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iM0PS8eUYd6V3Iwr1be5GqnpyC7tYyHq0ss6kyebPgn+NX8FyYfPMbDi665mtPUyWwKmIw7Yt8JFXHeVLqlvCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","pkg_path":"gno.land/r/morgan/guestbook","func":"Sign","args":["10/10, would recommend"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GFlRxcotLUGMxRnBDS1OOxnOEn/hRHapnlXpmGjMjLayOi37s2vGIPs+873Gg4PmugIF92aIu8o35xCTlCEUDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RSEuv5wtjp2L0dzYLyiGAHdSiL6RR33klFOR186zkwvkBaBfTS+aLWE2JkB1Qfvm5i4vafR//mxoo0v2SR7OCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"10000ugnot","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"06o0T+oRR34/atdGl6DWmZgCVOQtIhKvN9IVAktspFEQCiwF7sZxkdoQIpmKsqLpRrEh66ONDIXTkGEbBmdHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aK+CJHSvaJjd8m0crz0DMn3A+U4lmON5UBfhnEOQ+W95qyIMIoSdWkE7IDcmdWJMwX2Pcb5T3gh553z5z9y4BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aK+CJHSvaJjd8m0crz0DMn3A+U4lmON5UBfhnEOQ+W95qyIMIoSdWkE7IDcmdWJMwX2Pcb5T3gh553z5z9y4BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aK+CJHSvaJjd8m0crz0DMn3A+U4lmON5UBfhnEOQ+W95qyIMIoSdWkE7IDcmdWJMwX2Pcb5T3gh553z5z9y4BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aK+CJHSvaJjd8m0crz0DMn3A+U4lmON5UBfhnEOQ+W95qyIMIoSdWkE7IDcmdWJMwX2Pcb5T3gh553z5z9y4BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aK+CJHSvaJjd8m0crz0DMn3A+U4lmON5UBfhnEOQ+W95qyIMIoSdWkE7IDcmdWJMwX2Pcb5T3gh553z5z9y4BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QGv4pV1aqP9k4bIbzH5kgxyy24K9X0tnIIpw4MmYk65L6SMB9/E+D6Udg6g+dccXchTLOfpTQ8yT6se7j8YdBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QGv4pV1aqP9k4bIbzH5kgxyy24K9X0tnIIpw4MmYk65L6SMB9/E+D6Udg6g+dccXchTLOfpTQ8yT6se7j8YdBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VXaHmuh4OZvpQMfg5wrES9KuutXmej95mRqv3Eyde6pnI5agipX6D9vv7VFsDQkjBv62KaZKFU0vJ32aqrysBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VXaHmuh4OZvpQMfg5wrES9KuutXmej95mRqv3Eyde6pnI5agipX6D9vv7VFsDQkjBv62KaZKFU0vJ32aqrysBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VXaHmuh4OZvpQMfg5wrES9KuutXmej95mRqv3Eyde6pnI5agipX6D9vv7VFsDQkjBv62KaZKFU0vJ32aqrysBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GTPt03E11eqN7a9/ggmgQFQLyX3aJdMxhSIZHXabHHPhGZ/RjDnUsTqinIXyTRXjJz3KuIu4fw/FnuLlOtNYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GTPt03E11eqN7a9/ggmgQFQLyX3aJdMxhSIZHXabHHPhGZ/RjDnUsTqinIXyTRXjJz3KuIu4fw/FnuLlOtNYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GTPt03E11eqN7a9/ggmgQFQLyX3aJdMxhSIZHXabHHPhGZ/RjDnUsTqinIXyTRXjJz3KuIu4fw/FnuLlOtNYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GTPt03E11eqN7a9/ggmgQFQLyX3aJdMxhSIZHXabHHPhGZ/RjDnUsTqinIXyTRXjJz3KuIu4fw/FnuLlOtNYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GTPt03E11eqN7a9/ggmgQFQLyX3aJdMxhSIZHXabHHPhGZ/RjDnUsTqinIXyTRXjJz3KuIu4fw/FnuLlOtNYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"100ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GTPt03E11eqN7a9/ggmgQFQLyX3aJdMxhSIZHXabHHPhGZ/RjDnUsTqinIXyTRXjJz3KuIu4fw/FnuLlOtNYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1234ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I59EUtvtlnaphy2cu36XjZjV/9QO042yEgjcTOv/TfRYFuMhLQ+dQWt2ermdbP0kFwZZfd/M/ovdGnn+HtXVDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1234ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I59EUtvtlnaphy2cu36XjZjV/9QO042yEgjcTOv/TfRYFuMhLQ+dQWt2ermdbP0kFwZZfd/M/ovdGnn+HtXVDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1234ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"200000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I59EUtvtlnaphy2cu36XjZjV/9QO042yEgjcTOv/TfRYFuMhLQ+dQWt2ermdbP0kFwZZfd/M/ovdGnn+HtXVDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1234ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"js4QPechgQSQNSyT17TXOAGJ1eKLCaommGh1wMmxpY1l0/tA9cKHUsmzscLPl6bgKUvB69hxlyN+KhtPMJYQBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1234ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"js4QPechgQSQNSyT17TXOAGJ1eKLCaommGh1wMmxpY1l0/tA9cKHUsmzscLPl6bgKUvB69hxlyN+KhtPMJYQBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"1234ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"js4QPechgQSQNSyT17TXOAGJ1eKLCaommGh1wMmxpY1l0/tA9cKHUsmzscLPl6bgKUvB69hxlyN+KhtPMJYQBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"avkk7o/avG+Eelt+/p8Tm8wS5IxyXLKgGSeuUBSvFkdRs0Sg4NNeAJrxEoJHbAC56n9GELBQorPG/rwwowl6Aw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/YC9HTj7yQBhy6aVXzYWVPakxCxw/K0OUZQs4pT9WTvzmvhNlL3O33dGWbA2BXIJLyXpknS2z+nbJVF6EkKXDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1uZppd+/dNjZj1v+L9DZhczPoK49UHhSM6BYYLULAQL0fvqR+79O6J+tFw4G9qSVNsfTxMEQdv9IlDNx/NH4Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1uZppd+/dNjZj1v+L9DZhczPoK49UHhSM6BYYLULAQL0fvqR+79O6J+tFw4G9qSVNsfTxMEQdv9IlDNx/NH4Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1uZppd+/dNjZj1v+L9DZhczPoK49UHhSM6BYYLULAQL0fvqR+79O6J+tFw4G9qSVNsfTxMEQdv9IlDNx/NH4Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1uZppd+/dNjZj1v+L9DZhczPoK49UHhSM6BYYLULAQL0fvqR+79O6J+tFw4G9qSVNsfTxMEQdv9IlDNx/NH4Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GOR0dtmOmbx2z2I5uz/CtfyeD9CK6apAZYKx1L0LV+doeUrt+m4iB/NQNr6N8kowGrKnVEG4TvlxhV5mldMmCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JN4PWxToz0pCHJgP2J9sgX4LvbRdUQvBoIhiBu2lqfjsFit6LILXj7i2R8EfFVvb3IAnYcLVgydCB7lNoiBnCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JN4PWxToz0pCHJgP2J9sgX4LvbRdUQvBoIhiBu2lqfjsFit6LILXj7i2R8EfFVvb3IAnYcLVgydCB7lNoiBnCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pCxBtn2tGlz72kNcunGw6oiA0L2tXPEK4V/KTdrk5IY+QjKcpF731iDM5dXnXu9Mr11cZMb0UyrhZBoIzekKCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre2","func":"SubmitSubDAOCreationProposal","args":["Create a \"Community\" SubDAO","","council/main","community","Community","The Community DAO is responsible for adding and voting on new SubDAO sections that will be part of the Gno.me ecosystem. Gno.me is a community and educational platform therefore the Community DAO is responsible for adding and voting on sections needed for Gno.me: tutorials, new events and more that will be aggregated and added to the Gno.me Home/Ecosystem.","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oV/XTSz1691Y3ZXDWwT0VmppdZR5QRNgj7iRdb1DVPR/uMVXUY8bRkoY3H90UzWcYyBS0YJYe75Q9twMjpddAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/dao/pre2","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QA4RL2XSxhfxaQ4HGgZUCKtwpb2fJ+4YwKzX/L4bzoT0YHw6xIvD6btFv8C0FZCh6ucGz/xR5QZ348kC7xMtDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/tutorials/pre1","func":"SubmitLockingProposal","args":["Lock Ream in Favour of a New Version","This version has an issue with the link URLs.","gno.land/r/gnome/tutorials/pre2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OW+AA4+0rWl7Vir7e6NoC7ohKZpUvC3Vo8gTOHYORDkm2pyFL73ciYiAfgbO1MQPUMjrJn7vfWhR9DJ6AvGsBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g125t352u4pmdrr57emc4pe04y40sknr5ztng5mt","send":"","pkg_path":"gno.land/r/gnome/tutorials/pre1","func":"SubmitLockingProposal","args":["Lock Ream in Favour of a New Version","This version has an issue with the link URLs.","gno.land/r/gnome/tutorials/pre2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OW+AA4+0rWl7Vir7e6NoC7ohKZpUvC3Vo8gTOHYORDkm2pyFL73ciYiAfgbO1MQPUMjrJn7vfWhR9DJ6AvGsBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g129q3066z50rlluhfjmpg5qc6e0g2kmhu4law48","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6XhoaUEPgYrzvvNStcetqPeo6NtkEM97XdZnVQZtmCprAAqiOiLfV65rqGk7oWGbZMKYdjRafPxADBhOT27+Dg=="}],"memo":""},"metadata":{"timestamp":"1731485549"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g12chzmwxw8sezcxe9h2csp0tck76r4ptwdlyyqk","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","gnome","gno.me"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6tcyNAm4Y3r39sUcICLe6d6bZ7m/xgXprhZl7TTOyZ1KzAQratiJwpKVpV1n/OXUACYQh9FfLNj4oryxWbiGCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1732274505"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","send":"","pkg_path":"gno.land/r/foo/event","func":"Event02","args":["1"," 2"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wy59AWDBRlEa2jtDM5ZrgyE9+NWfvPwiH1LCqllQtHXdNYtNRWZfnk25qGmRwHHyY7NycluzxhoxTYr/RmLPDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","send":"","pkg_path":"gno.land/r/hello/event","func":"Event02","args":["1"," 2"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zlubkOraFFn9FDP6Cx3F45s6D3FMADez6Li3poUq4dR/AldgiSn6myIOWnavPns8R9sDY0dvcDjE70nCrbEpBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g12d83njqsvp009mc2mcsrxh60famfarn9tag0a5","send":"","pkg_path":"gno.land/r/hello/event_emitter","func":"Event01","args":["1"," 2"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SP83Yv0mg2E9S/bQUZ33a86GH1dmQefG8UCFxCM+4BmisnVdQ4HCBizjukohLlW0DZ9luDdet0a8KHTUrYR0Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g12v2ka8axv02yc77jkajry8yjuntqdzch4yky9j","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VNocWqUfnVbDWXPxlKNmBAS20eAD3E90KOZIIfN24TIp6rzfXypwwFCSsLpK+0ZWjpWDHoIoisdhlyRV9ZTBCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"","pkg_path":"gno.land/r/demo/foo20","func":"Transfer","args":["g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","1"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y3A14g5cQ22dXsf1aNJN3zS8yDX8+py9U1RjlBJLrJcOBZUURZ1R1vaJ2z5yphCIq5CbtuCf/sFXagd/kNHGAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"","pkg_path":"gno.land/r/demo/foo20","func":"Transfer","args":["g122n67es9vzs0rmharsggfr4sdkd45aysnuzf7m","1"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y3A14g5cQ22dXsf1aNJN3zS8yDX8+py9U1RjlBJLrJcOBZUURZ1R1vaJ2z5yphCIq5CbtuCf/sFXagd/kNHGAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"","pkg_path":"gno.land/r/demo/foo20","func":"Transfer","args":["g1n6af0uz6pznjfa2l8ttdzjppkefrhszz4ny862","1"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"42gW0WvNL/6CWQ7/2FhaAfP9HshILq6sgx73Gr+ujXVjY0fuHlDJehx5ojOOgDDksTtvC5KeHNRZL8DgE/yGDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ngocndt","https://github.com/thanhngoc541"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LoT36KktzP5S8zzGbq2hfQ1mcpgjj3IBYkYuia4btcd1RGH8/5KR8FMVH6JznS7AkJkWt9SXtOER2vPUs23LDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"","pkg_path":"gno.land/r/varmeta/demowallet","func":"Hello","args":["asdadsads","adasdasdasda"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"if7pOKX6Axr5EmQ3qjQZ0f20e3RPPLqZt0ZE+GRB+M+RtY5XvUduWG8KLiUcN/Pk0LLJ8YJtaxuZ044erjrdAQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731482747"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"100ugnot","pkg_path":"gno.land/r/varmeta/demo/v1/domain/registrar","func":"Register","args":["ngocasd.gno","gnot"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lfjOE7eo9P62/9rGYu/LxicQWV0gUiWBzSkSUkzMdvKEP8DLFe8B+Y7Z/WH9DioM4S5aDnFugofsqvJ8+bu4AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"111ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["asdasd"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iC+TdH0FJztLKG09rI/6YUrw9IbgEwkmOw5WRzFaRoedww1twetjbyD3WOvhQu0dZ8TQWI1yYRy3/ltehz8xAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731483465"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"11ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["SasaS"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gj7MbG1kIUq2ul2EBZZvzDhu6+w0qfAZXjfAj7yC2vHEk0Lg8HNnhlDFQn5K70n7GpCaHe6Kh6E+x1+u8VlODg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731482963"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","Ngoc","https://github.com/thanhngoc541"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JmIX/TXH4xSlMQVJO5dTWXv1wM+w9m1McYJRwLbQ/H3UYBnWbC8yIFWJ7m1JrElhVBx1hzPjwgzXDiawVmZRCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ngoc","https://github.com/thanhngoc541"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+JENJLw8otmwOOTKIHdFu53Pcsm1YrRar4zYi9cBtoAB5KXh46K77Qk8WQaFeya1GMM0miNqzIxBoqZ6VHy+BA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ngocndt","https://github.com/thanhngoc541"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q3Pgwk0jOuITDu/KXnZXEsxaW8z29Uo7ClGIURv3lYMZlUw4AtWmWhBsZvSl1XQoHekM1wfztTXo1qMSFc+uAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1330dfff36jyy44rgq68y33mzxx9uhrgzyq88wh","send":"2ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["asdasd","asdasd"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"exfOkgKf/zAbypL7bxEI72AHjQcORd0fnBjgWXf5p2MSyvCGhm8jSwZsXyFsY3kAidYv/JyIFDWlimm+yCKSCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731483068"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13awn2575t8s2vf3svlprc4dg0e9z5wchejdxk8","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","stefan",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VsF7lpqfFuMS0dbWWdt7k2bELmNuKUstZAGdaCfqX0WJKmU4azga0bmkdkuepodCp/ulH0nSIFgMLJ0Qk0TECw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","send":"","pkg_path":"gno.land/r/demo/abcitest123","func":"Bool","args":["true"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"giGgkTIOne9AV+PQ3ze50p79K3Jx5loIquy/4M4VwZ6LfiX6rUO8Jg+MDbALR4bHpRNa3biiQQ5Rgrx6ddLJDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","send":"","pkg_path":"gno.land/r/demo/hi001","func":"Hello","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UK5Q5FruyEovhcbM6vDCNrGFT3X/T/kaQdES8WQQtP04Fp4QgzeQUc1vehEvkfgnbsGq/biJu6uTU+U9IBfvDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq","send":"","pkg_path":"gno.land/r/demo/hi001","func":"Hello","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YEmc7TDaAQ7nRxCmtI36oyedfmDQpFcklqYZh0Nh9YhlKJeuiStOB5UW4pL/HXRzGFNe67McPWuL4G1V2tqdDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13fn20zzm008qz5f7yppehyr5es3kefgde0n6ct","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SZfi/L7A5IBkcmCDkJ9kISXrEj0EylABhLw27MlDwcPbID41XNm8JHOGR73ovJzptQOh9bYAdy3Lz9VA3jMLBA=="}],"memo":""},"metadata":{"timestamp":"1732155440"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13hsacd5wjejd9r4p7gp49psyl5w3jqw0x35cxj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello GNO fam! 👋\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-05T09:52:01.918Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WRk2lpRjvVnj6vGax4yuoRrAI+Ct80dTMeqoqMzu8vNIbwg9QwglXN1Z/ut9m5Eth6w3CkUQY9kE1/gOZzL1DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13hsacd5wjejd9r4p7gp49psyl5w3jqw0x35cxj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-3","👋","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/hx4upsO4ZPfCNDEIEwcYz8YMlbHFaBYgDHcwEXbkKaH2poB3AePgD8v9YbCT/7E7H4eb+7vZVtBkhTiT//Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHgABAAICAwEBAQAAAAAAAAAAAAYHBQgDBAkCAQr/xABgEAABAwMCAwQGBAgICQcJCQEBAAIDBAURBgcSITEIE0FRFCJhcYGRFTJSoQkjN0KSscHRFhczVGJydZMkQ1VzdIKys+EYNTZTY7TCJTQ4doOUotLwGSYoRFZlxNPxo//EABwBAQACAwEBAQAAAAAAAAAAAAABBQIEBgMHCP/EADoRAAIBAwIDBAkDAwQCAwAAAAABAgMEEQUhEjFBE1FhcQYiMoGRobHB0RTh8CMzQgcVUvE0ckNi8v/aAAwDAQACEQMRAD8A9U0REAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBF1+Gp+3H8k4an7cfyQHYRdfhqftx/JOGp+3H8kB2EXX4an7cfyThqftx/JAdhF1+Gp+3H8k4an7cfyQHYRdfhqftx/JOGp+3H8kB2EXX4an7cfyThqftx/JAdhF1+Gp+3H8l9Bs+Ob2fAIDmRcPDN9tv6KcM322/ooDmRcPDN9tv6KcM322/ooDmRcPDN9tv6KcM322/ooDmRcPDN9tv6Khe8m47dodtL7q6qY2oitkIeIQCDJI5zWRt5dMvc0Z8ASfBSk5PCM4QlUkoRWW9idItAf8A7UCq/wD0TF/74f8A5V2GfhMbi8sH8BGgO5hxqjjHnnhW6rK4lyiWVTS7qis1IpebX5N9kWitN+EnnmmEbtIwZzjLKziA9/JWBt121ZNb62s9iqbJTWyG4TiD0p9QXBriDwDGOfE7haP6y246PeyhKpGGUue6/Jyd5qtpYVoW9zLhlPllPD9+MG1SLgDZ8DL2Z8cBfvDN9tvyVMW5zIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+239FOGb7bf0UBzIuHhm+239FOGb7bf0UBzIuHhm+239FOGb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RAEREAREQBERAEREAREQBERAEREAXBXV1PbKOarq5mU9NC0vklkdhrQPElc6pvtE7e6y3KoKC1adnpIbY3MlW2ed0Zkf+aCADkDr71r3FSVKm5wjxPojzqScYtxWWar757lP3N15VV0b3fRtOe4o2E8hGD9b3uOT8V1Xa9pLXbGU1oozE/A9aToD458ypuOx5r77Vp/96d/8i+v+R5r37dp/96d/8i+cVrG9rzdSpTbb3OdlSryk5OL3Kz0vpW/bn6kjobfDJXVsxHHIfqxtz9Zx8AFv1tftvbtsNLQWqha10pAfU1GOc0mOZPs8lGez5s8/afTNQ2vMcl7rpOKpfE7iY1rSQxrTgeByfafYrVXX6VpytYKrNeu/l4fktrS37KPHL2mERF0BYBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQFf7/AH5F9Yf2fIiy26mmqzWO3WoLJb+7FbXUj4Yu9dws4j0ycHARbdGSSeWV1zCU5JxRKkRFqFiEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAf//Z","1711388312"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yXzMJMDOTNgazCSif6A56kzcHaMIGKV834syjhHlm2U/or8PZ8H9EemeOsrWbSZ4H4F2fzW2nr1CQ5Z4rxmqBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHgABAAICAwEBAQAAAAAAAAAAAAYHBQgDBAkCAQr/xABgEAABAwMCAwQGBAgICQcJCQEBAAIDBAURBgcSITEIE0FRFCJhcYGRFTJSoQkjN0KSscHRFhczVGJydZMkQ1VzdIKys+EYNTZTY7TCJTQ4doOUotLwGSYoRFZlxNPxo//EABwBAQACAwEBAQAAAAAAAAAAAAABBQIEBgMHCP/EADoRAAIBAwIDBAkDAwQCAwAAAAABAgMEEQUhEjFBE1FhcQYiMoGRobHB0RTh8CMzQgcVUvE0ckNi8v/aAAwDAQACEQMRAD8A9U0REAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBF1+Gp+3H8k4an7cfyQHYRdfhqftx/JOGp+3H8kB2EXX4an7cfyThqftx/JAdhF1+Gp+3H8k4an7cfyQHYRdfhqftx/JOGp+3H8kB2EXX4an7cfyThqftx/JAdhF1+Gp+3H8l9Bs+Ob2fAIDmRcPDN9tv6KcM322/ooDmRcPDN9tv6KcM322/ooDmRcPDN9tv6KcM322/ooDmRcPDN9tv6Khe8m47dodtL7q6qY2oitkIeIQCDJI5zWRt5dMvc0Z8ASfBSk5PCM4QlUkoRWW9idItAf8A7UCq/wD0TF/74f8A5V2GfhMbi8sH8BGgO5hxqjjHnnhW6rK4lyiWVTS7qis1IpebX5N9kWitN+EnnmmEbtIwZzjLKziA9/JWBt121ZNb62s9iqbJTWyG4TiD0p9QXBriDwDGOfE7haP6y246PeyhKpGGUue6/Jyd5qtpYVoW9zLhlPllPD9+MG1SLgDZ8DL2Z8cBfvDN9tvyVMW5zIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+235Jwzfbb8kBzIuHhm+239FOGb7bf0UBzIuHhm+239FOGb7bf0UBzIuHhm+239FOGb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","1711388210"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lss4PEd+Aei56je9ajeHz0cCKKX/sLg6iUw8OiLy6AKu/5D4TTYoqDomynr8tKzRsnu2ZFeTbxv2puS0FiHaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000b"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z4NbRYWDWEoBlyq0Nl1D+NwpiRZsF44OPM/ma76Mldddc5NgA9JvtiYgx/vY2NRyaHim+XipBNDhoJ4GHMdsDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13lcs6h7emmdqze78qtw5p4xkxyzc53f6pu5mfw","send":"","pkg_path":"gno.land/r/stuyk/mood","func":"ChangeMyMood","args":["hello there"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bt1E/9BpslQjhREzttDSxVWmio+q9merD2JCMV+YhCtn5ahUAn1yxl8CgH0rxIdIVQ/it5COLn6ww4tXxvx7CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hlzi0ySnDDmk3ACvgwO05ylgoN2k68moamnxMwWbGCpO02OOfSy5QspM/kEu1/xCoEyDyGh22UEbo/09yGulAw=="}],"memo":""},"metadata":{"timestamp":"1730875635"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hlzi0ySnDDmk3ACvgwO05ylgoN2k68moamnxMwWbGCpO02OOfSy5QspM/kEu1/xCoEyDyGh22UEbo/09yGulAw=="}],"memo":""},"metadata":{"timestamp":"1730878884"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hlzi0ySnDDmk3ACvgwO05ylgoN2k68moamnxMwWbGCpO02OOfSy5QspM/kEu1/xCoEyDyGh22UEbo/09yGulAw=="}],"memo":""},"metadata":{"timestamp":"1730879019"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hlzi0ySnDDmk3ACvgwO05ylgoN2k68moamnxMwWbGCpO02OOfSy5QspM/kEu1/xCoEyDyGh22UEbo/09yGulAw=="}],"memo":""},"metadata":{"timestamp":"1730879245"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lBwcTMx3o5zhjmbFBroPU/1fxSxBQs3iLtP8WzayEvx3l04yghV7xHtJGXf2fQvY6mTT08DFq4f8WlRjdEmTCQ=="}],"memo":""},"metadata":{"timestamp":"1730875851"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lBwcTMx3o5zhjmbFBroPU/1fxSxBQs3iLtP8WzayEvx3l04yghV7xHtJGXf2fQvY6mTT08DFq4f8WlRjdEmTCQ=="}],"memo":""},"metadata":{"timestamp":"1730879044"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","3"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RnnTqpLeO6mWZHMMsH4fOopbM9Hay+GCtgDkXlMwHWuiG7nDq/oU6OHMCcGW0hT7Cs5Y8iibu4LDHbVIOKs5BA=="}],"memo":""},"metadata":{"timestamp":"1730879335"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcows_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","0"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7yq12sA0Rdjit2W07R6u1iA0O9w9SzxOlo3sxx5mSPyoEk0LVMvoksC6QtrHEhyI2o+QqrgK4eOvKZWDtiDKCQ=="}],"memo":""},"metadata":{"timestamp":"1730818961"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcows_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","1"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5c4HqffRGH7rdBqBnWl7MKuh9nDA8ZF7bP1fNGzt7P2Da9aZ6Wdy+SOD8WcVw6138vDInIEK42cC9gRPcmsjCQ=="}],"memo":""},"metadata":{"timestamp":"1730818971"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcows_nft","func":"TransferFrom","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","0"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v4SKqFXFyFsbNYeW+PqAI00VJQiEj6Zwv4QImN6DEoqGW46O2dY/MFyvA4ZlBJ3MRR9WRV0IdUXShg6fBs3mAw=="}],"memo":""},"metadata":{"timestamp":"1730819031"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcows_nft","func":"TransferFrom","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EkRPBKrseTwS5fj83K9opdE0cqhjZ2ZMKbW+eYosoE6PT5nvqCBIiw1L3zirala2J06juozvlgs3uYZf5FG2Ag=="}],"memo":""},"metadata":{"timestamp":"1730861879"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/pepe_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","2"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E9nHVOfx6vGW+LnmDnvrE8NGJHmGcBwEc41pPA8GeenmvmM4ScetPApr9A5mv+TTxMCoArKYy1JvnqyjnHdDBg=="}],"memo":""},"metadata":{"timestamp":"1730817660"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/pepe_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","2"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E9nHVOfx6vGW+LnmDnvrE8NGJHmGcBwEc41pPA8GeenmvmM4ScetPApr9A5mv+TTxMCoArKYy1JvnqyjnHdDBg=="}],"memo":""},"metadata":{"timestamp":"1730817695"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/pepe_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","2"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LbSKkTLrtUZKhKyOz69APt8bSpUU2RIxykg1kP/cCcOpCsMynnT7bbBhvd9SnFg/dGi79ZMF3N2gAQD03Iu9BA=="}],"memo":""},"metadata":{"timestamp":"1730817650"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","2"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lmZVzzEfEX5Mx7CFhx7zw8++3O0H0Ch7KCgfQhW7KfiEA38GGBCck9WjU76PHMRKxjcgnv/Arzzh3zn56gITAQ=="}],"memo":""},"metadata":{"timestamp":"1730817710"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","3"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jRQXXC7xZCwBXEJVyfgGeqmnQ+u1tSmaYaH0SVPOC7NpuqXz5ztWJDo/sCXDPQuWqI1ic6V6b6c3tSq7DhlJBg=="}],"memo":""},"metadata":{"timestamp":"1730817720"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U7faOQ1CCpdHeZkwmT8HgRCkuXMgHRhBcy7nfKjERN3PCao44UQgNp0eygYfiUkG/4W/rvJ4cjUY40h22luhCQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1730817053"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZEcPEW6YYVH3pGmxXwgVZffT1uP0sL12lS2IOUEScAmp+8UBqrwS8UE5TXGdvusP0rxafTCTSqXHL9MKzfKrDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1730817068"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"TransferFrom","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","2"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"N5jxerAh6Btejf3Npr8SYFoJ3z/cORkhyhPkFq/EM2YSrHv8mI4zJZq6aal2QSKafSB+ioRQsUfJtZV68ZX8Dg=="}],"memo":""},"metadata":{"timestamp":"1730817750"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PTN0M8UODty2MiM5HWotDp8jN9YsGiscL8CjfXuZhpGM7whved9zfsqkeSYAstiZxeVsZkvUco2p4DLgUwf5BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hof/h0NY3ETVA2bJ2XXijIUShe6m7RuA5SItI9OJwTPWZYVx3c78bEtHAkaAIkvXcZby6Unpz+9QfS1SjsWlAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g13z8g3fttsj86j0ul40eym30gcvzc8hvsqpjylv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2IsokkNYCRKHO0rPJ/HnqArfDhGoyw5KrVhYJ2KJ6HJk0/lXSizxIkZPNA2P3Pb8R/Ap72bx5ADzQ0YwLJQpDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"CreateUser","args":["gojo","Gojo Saturo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aVbVA/8Aab9s9EsLZQluzT77b5KjmHNlFo9udpkN8mfhp3Io7azpAg3XcToXcXUxV6SnergjjLDm4XmrvXL9Cw=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["gojo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7oF9DY2uC8+UZpZPqAZbovT2m9fck911f76fTT+Uj6Wv9F5DSQnUHiIRib3Z0mTD8PneUzaEO9C2+mbBFUW0Dg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["heloo i m gojo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SOP5fspaJed2PqfdOtPC/pMzTixU9cEk+ZpTIOk3lzams++ogs65dLRNr+EVxTVUySsa3XU0aIIqMlgiGs+cDg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["heloo i m gojo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SOP5fspaJed2PqfdOtPC/pMzTixU9cEk+ZpTIOk3lzams++ogs65dLRNr+EVxTVUySsa3XU0aIIqMlgiGs+cDg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["updated"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"va92esBJpXaTLPYgk+X++mlz3AguwGGsdzcNRyi1eU0kt22SQkKs0+cWOBtIIoyWejXokyULb0iYtwEuAsNFAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["updated"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"va92esBJpXaTLPYgk+X++mlz3AguwGGsdzcNRyi1eU0kt22SQkKs0+cWOBtIIoyWejXokyULb0iYtwEuAsNFAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["updated"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"va92esBJpXaTLPYgk+X++mlz3AguwGGsdzcNRyi1eU0kt22SQkKs0+cWOBtIIoyWejXokyULb0iYtwEuAsNFAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit","func":"UpdateBio","args":["updated"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"va92esBJpXaTLPYgk+X++mlz3AguwGGsdzcNRyi1eU0kt22SQkKs0+cWOBtIIoyWejXokyULb0iYtwEuAsNFAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Hey folks, Gojo Satoru here! Just dropping in to brighten up your timeline. Remember, it's all fun and games until you challenge the strongest sorcerer 😉 Let's have some fun! #JujutsuKaisen","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CL1UVqOIE2I0utZ7dqPkMjkBT057d5qNrFFOKqRP/Wo8f97xZK3ZMarb1/XnQqjlan0xgvPtLkri2Wa5hF+6DA=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Hey folks, Gojo Satoru here! Just dropping in to brighten up your timeline. Remember, it's all fun and games until you challenge the strongest sorcerer 😉 Let's have some fun! #JujutsuKaisen","data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jIpL1KeO+GMyWxnp0aLjNi3harMAPmJJFiyT/OkUakih8xAgPBRJPrj53IOYH2H0QIb6RJJvQRzm7EeUwqqfCQ=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Hey folks, Gojo Satoru here! Just dropping in to brighten up your timeline. Remember, it's all fun and games until you challenge the strongest sorcerer 😉 Let's have some fun! #JujutsuKaisen","data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z5on+AY4DA4J6nc1eEaZEsQa5wCXVS5SeSKSLGfA1eqHHB2Xw9JYCctg28sOObK8toRV11QhXvnVWviWh0MdAw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Hey folks, Gojo Satoru here! Just dropping in to brighten up your timeline. Remember, it's all fun and games until you challenge the strongest sorcerer 😉 Let's have some fun! #JujutsuKaisen","data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z5on+AY4DA4J6nc1eEaZEsQa5wCXVS5SeSKSLGfA1eqHHB2Xw9JYCctg28sOObK8toRV11QhXvnVWviWh0MdAw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Stuck in traffic on the way to the Cursed Spirit showdown like 🚗💨 Should I just teleport there? #JujutsuKaisen","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"swVO2gaPn97l8bsbqHHj85j6zk8uXGZXWn0NPYwgCnUeFcOghBJX46g1MiYBfOBgQymk61/NiO80CJpkTPNdAQ=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Stuck in traffic on the way to the Cursed Spirit showdown like 🚗💨 Should I just teleport there? #JujutsuKaisen","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qRvUP37cbymgkbSyxsL89M1YnSuK3PKU4g4um6fLp3rCr/upcEb/91i4Lh8gDbkk7auxUlVSRaHTJtum2sBcBA=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Training the next generation of sorcerers today. Remember, it's not all about power - strategy and style go a long way! 😏 #SenseiLife ","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tdzqxcSsri3ihEk5FrW6i5rf3B22H1Fda0xSg0PZzCwW+ZJETCvU5AYXzw6gX41z2ftFnB7XK9IanDM2i3Q3Cw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Training the next generation of sorcerers today. Remember, it's not all about power - strategy and style go a long way! 😏 #SenseiLife #JujutsuKaisen","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dlt1WUvx8UrN1/WhPYMzObETRnezXbHrhe6lMQMKYT495Tcp4dwL20wk6ALl/kekWKO6ixCQxn64r6x+61vnAQ=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["gojo saturo","gojo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9k2VwjmqHIfA/xMRZG3OKgmNDPbplHA29IJT866v8+SEKrIvhPGqUvkx63QKcspgLfbJ/adNk2oD8Szayfi9CA=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["gojo saturo","gojo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9k2VwjmqHIfA/xMRZG3OKgmNDPbplHA29IJT866v8+SEKrIvhPGqUvkx63QKcspgLfbJ/adNk2oD8Szayfi9CA=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["gojo","Gojo Saturo"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cB3tQAC77CgunHvtTZ5T0hXHndHk7HBYcgyonEYMkpePgJGD0ueFqdIz2RK7hqa+GQ8mMzJ0ubm1QmJVDnLHBQ=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["0"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oe1Og5lmckhdwhDSGmENWIOG6raaERtpQjhtdW3NY+AqBzfPR2mRcnv6I3pz8Q2a8wsOWmJoRxcg8SIGa5kaAg=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["6"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PrcOGwjZCk7qpEuMvp8ieR4aB3zzeW+k2U5ZyTvVtpACUFIv+5ZGGE8YFhRi8r+TkRhQM7RoPkMwo0lA7w1uBw=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GDg/QTOIqAaqmaNEAhTkMtioRWv6oPmzMKXsVQULSTJQzo+LBh8PuHWm1kUn5ROzEE1498QPqkFw2dgLI/4DDw=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["🔥 Sorcerer Extraordinaire 🔥 | JujutsuKaisen's strongest | Shades always on 😎 | 'I'll murder you... with kindness!' 💥"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z5ixBf8y9SKWNP5lD+HX8ILLNSVJ582lHcdfjhdxS64Z4rK994AGqAuPzwpWsDfdyxLGDmh4TjZqprqTJcYvDQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g14yr553ykn7lw7ex6lr6uafek2gaedvlyq0d68r","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["🔥 Sorcerer Extraordinaire 🔥 | JujutsuKaisen's strongest | Shades always on 😎 | I'll murder you...with kindness 😘"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ys60lqOKdDkJ7NRHOhoEYfgPfc03ccRp9Se6k/KbP435ga++DpgLlBvth8ymjM1jE5lmIB7ggYET1vOOCyb6AQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Stuck in traffic on the way to the Cursed Spirit showdown like 🚗💨 Should I just teleport there? 😏 #JujutsuKaisen","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CjPCv6V5XdcBGMZQ7sWbxKGu7kPumurgzJH4HgnrmIFOTsiX2lG3A/WeZsciEE3ugjG16XIx7Dm+2NalANRJAA=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Weekend vibes: Music on 🎶, camera in hand 📸, ready to explore new photo spots in town! #AdventureAwaits #PhotographyFun","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZzplX3b9BvOHocCM5FcyfF2tadHpsNmTUpg1ebaUvSHQ/rvdaB+umKZjbz8nWrDEJee/BBUQbD8xf7qMNsCiDA=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Weekend vibes: Music on 🎶, camera in hand 📸, ready to explore new photo spots in town! #Photography","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JHMSe/NSezGYxlnZ+SJjdBJNz+ikAJWKrxN11KDVcwd6Y0AzE8yVVY9pmtKkqsIRmxW9yB0yw1peQ3oqITiWDw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Weekend vibes: Music on 🎶, camera in hand 📸, ready to explore new photo spots in town!\n#Photography","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vImtK+UnHJctNMVIEQwS/2IrlBbT57wBJb4W/874XpI4rrR5gbq+eIaoKOp3gslsXS5zEoHJwU661P9W0HOXBw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["daniel","Daniel"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E3u8SxZW5QP1d9vTUTBmSawqRzwcmQE+nD6k4ouoAO91GSUIIp4UowYnq9sxwqVVz5COMIwSN/x2velUNcTNBA=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["4"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sWcz9rSyuykD+y+2KvQACstxhSwmUPqJ04ndDbP+EbfqUFPNqWrhdi2HXEcBK7HJzATduzrR6qIXbhhyrjicDA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["4"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sWcz9rSyuykD+y+2KvQACstxhSwmUPqJ04ndDbP+EbfqUFPNqWrhdi2HXEcBK7HJzATduzrR6qIXbhhyrjicDA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,R0lGODlhEwETAfcAAAABANve5D05R9LU2wAGAAAEAOLe6UU+TgAAA7nG0TMxPrS6x62xuJKbqIuQmdrj2jdNVsS+ywBRvAAACyYhL2lyeQAAAhMeLQADAE1SWXB8iXiIlOPl2uPb3pqnsgACAxgrN1FcaVlocwIEDQB82w0SGwIMGABu0QBOswAIAABbzACJ2gICAwAAAWRgbbTP6AAAGgAAFoOAijVYbAYEDqOgsAADDRQ3TcLBwQCA6wBqvQAABgACKQAAKgEVLgdZuAAKAAAAMQAADQEAAgCF6wAABABMnrnk9QABIQADVBpJWgADTbbGtgBCrwAvfgACOcPOvQABAjFONAAyj42w1ABwu6GtngA8l2VaXAAETwAwfgAbdXWJdQBCsQEQAQAIPAANXE95kwAyWoOIf6O851VtVwASWQEDAABhzABRngAEKG6WtGV2XJzK3JqqlwAAERMwE0ZgOFSHniQ8HwAMITBtlxtGIwcoACGN1QAaVePj697i6QACAAAAAHSmvQAdchBUmwAjSQAqP5LA50h9unOe0EF/zRBroJTL6QAQPApJcgACPAA+nAAQbCptuQBGnyZhlAMcAk+KtgAqUglCcwAgdAAETVKRzgAqASBhs26q2AA6czyFpEGf6lum1TBzzQBGdnCy6Cea6UOy8jKp6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjExRTdBODEyMDI1RjExRTE5OEZGQkExQTgyOEVGQTMwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjExRTdBODEzMDI1RjExRTE5OEZGQkExQTgyOEVGQTMwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTFFN0E4MTAwMjVGMTFFMTk4RkZCQTFBODI4RUZBMzAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTFFN0E4MTEwMjVGMTFFMTk4RkZCQTFBODI4RUZBMzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIx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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Bjoad5ssKccw89itHEvfNvEoqHhjgAOjjr7jz//6fklsHeKr5cUsgvSP9e2/xRlaaY3gJIIxXN0fCX+5mPlmCA=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Um/fBc+ZN8p7cbyJM2wNxsslJ9rIrmahiKK0B7vGwJb5T4q+9mSZAr3SeL7bqSA2sWVGHop6l6KxN3JksStAg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PLNrQS4rSfu65GUUfl4v+VTr8eZWR+hxxxpEAPuWNcCFjx6lDAO/aran9NF0dMEkmqdMTVMjUlTnzqAgZ0fUBA=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15eyd28yeggddp7newqc5nndcep9z43wg38mfds","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Aspiring photographer capturing moments 📸 "]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9b8kKboBfzyMgU9gftafeg3GF2z1u6tRkLv49dhuGcl3VtunYkpnY5Q7j/W+I2yXHJWxf0obgxBlz7hVbI46Dg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15gdm49ktawvkrl88jadqpucng37yxutucuwaef","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ideamour","\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FVCHw+H3uheKjSi8WZ23+3tFd7WmEbMsKE703BBhRavz2ZtZ4JjSGS5fwVrDQUnZHGeeukMUpiKJdJeaPZh7Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15gdm49ktawvkrl88jadqpucng37yxutucuwaef","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ideamour","\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FVCHw+H3uheKjSi8WZ23+3tFd7WmEbMsKE703BBhRavz2ZtZ4JjSGS5fwVrDQUnZHGeeukMUpiKJdJeaPZh7Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15gdm49ktawvkrl88jadqpucng37yxutucuwaef","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ideamour","\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FVCHw+H3uheKjSi8WZ23+3tFd7WmEbMsKE703BBhRavz2ZtZ4JjSGS5fwVrDQUnZHGeeukMUpiKJdJeaPZh7Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15gdm49ktawvkrl88jadqpucng37yxutucuwaef","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ideamour","\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FVCHw+H3uheKjSi8WZ23+3tFd7WmEbMsKE703BBhRavz2ZtZ4JjSGS5fwVrDQUnZHGeeukMUpiKJdJeaPZh7Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g15ruzptpql4dpuyzej0wkt5rq6r26kw4nxu9fwd","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1720132132"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2IBW51xa08CmYIyG21LFHqH/4jG42LqUATTorm41hmeDaY7C8DE5vtrKx6zQvMnKtOf4nFS8bSlc9H7lYUBjBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"21MBAM0XCFRUb/fqoTS8SkxeBIlIQ5SwVUSClVYzd4rd22+svtQLdHwWLP5rLF1GIZO+SSmm61rD+u6ZdR7dDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"21MBAM0XCFRUb/fqoTS8SkxeBIlIQ5SwVUSClVYzd4rd22+svtQLdHwWLP5rLF1GIZO+SSmm61rD+u6ZdR7dDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"100ugnot","pkg_path":"gno.land/r/varmeta/demo/v7/domain/registrar","func":"CommitHash","args":["thinhnx222.gno","1c9829230647c7cdd03a4d27971a1a9c2df276e5e2b207f11eb37d7d0b0bb198"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"noSwlSgDDU4VM0CXvi5AS8602IAA7pqRjaCdsfReHUWe6a/FJqnceJpiaK8efl3+U8fIS45RyVs+qS1N9uOMBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"100ugnot","pkg_path":"gno.land/r/varmeta/demo/v7/domain/registrar","func":"CommitHash","args":["thinhnx321.gno","1c9829230647c7cdd03a4d27971a1a9c2df276e5e2b207f11eb37d7d0b0bb198"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZJysPEMRzT/Y6lQ9qbXdtaIz5wINb38BTzETXcHUtqefGdDciWdEH36Jc0/1qNQKFCWBVqMVt32QA11fXZRAAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"100ugnot","pkg_path":"gno.land/r/varmeta/demowallet","func":"Revieve","args":["thinhx"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BZ8W7sYf74Zq90gTOeuJuVaPyfd0FQaNLGDfKPeRpS6RIRLNwesgxHWLo/D07Hv604yIbNTjU/X/Xfe+UYQODA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731482420"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"10ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["t"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SUJJy/jkhe3eqIscD06K7wII4RX11IosxqoUQoE0ZfLinVI0VP138Vr1sfUZEqVF/JA9lHELheIK6h2vnZkSAQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731482867"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"111ugnot","pkg_path":"gno.land/r/varmeta/demo/v7/domain/registrar","func":"Claim","args":["test.gno"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yO2Nc+Gb6s0W5SKF3U9okK7Ofqg3iMdtZETvi6QwPb2Vacnnqa0wmQfudJITeDqBuA/zgZshQxwo7+OLtxUNDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g162jgpk4740r6a7g53cgz9ahxqtyuekgqchw6w9","send":"21000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","varmeta","We Love You All!\n github: *[@varmeta](https://github.com/VAR-META-Tech)\n* [@thinhnx](https://github.com/thinhnx-var)"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QmnhEf47+nCPTH2Ul6kABrVd61ucjIqHCcl55U3wwFC4cM7ivbvkrrFOddjFbzJbLYxLWSnkQlrNAOJGsmnVAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","gnome","gno.me"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WVsJ6YgQYOuQY9otDmbwb52gy4hN6UN1JljZxQmD5D09QH+e65nwRCyoaXZyk15PqocfI5Mp5zwbYgr2TZ54AQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1732274560"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","gnome","gno.me"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WVsJ6YgQYOuQY9otDmbwb52gy4hN6UN1JljZxQmD5D09QH+e65nwRCyoaXZyk15PqocfI5Mp5zwbYgr2TZ54AQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1732274585"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","gnome","gno.me"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WVsJ6YgQYOuQY9otDmbwb52gy4hN6UN1JljZxQmD5D09QH+e65nwRCyoaXZyk15PqocfI5Mp5zwbYgr2TZ54AQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1732522460"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xRZFMlKCFkER/B7VOtxsppvVaBo/cp8wl+8ZQpCUmMnB8FlZ+rEblR6DyTCb7/m4kF10YCWClA1MPiOVVLYEDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","send":"","pkg_path":"gno.land/r/mikaelvallenet/mvc","func":"Faucet","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+kA0RU5+6QHOxn1SHZszGMAaLZD7Qy09JL2syd4Iim6TU04vlnAsb50zr5DVxMYaPTvvmP8LsleK0RMstfvbCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","send":"","pkg_path":"gno.land/r/mikaelvallenet/mvc","func":"Render","args":["balance/g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DxkrUv0nLhxjk3hxwXbjeXnypecV5UDtOoq+00Pfv9UZ85DOyRqv03F23QB32/chJBrwWzO5E/riBizsSETbCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","send":"","pkg_path":"gno.land/r/mikaelvallenet/path","func":"Render","args":["hello/mika"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WrjdUDcMZ1CbxTkZSvFNLJvy4eZOwVsF+IrazWSM3XVkBWTLfQAO/UluzQOmPuZoW50EpP2VP9wB4IvVE9DtBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16jv3rpz7mkt0gqulxas56se2js7v5vmc6n6e0r","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","mikaelvallenet","Hello"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0hjyohmkZNOjhlW3iFhndeML2PwQEwqaD2RpiF965fkPjxd+aXN/+hCnYsyI4FAmbqxqNWuTkVtzpwG/7O2KBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J2Hdva7vXp4Z+m+X0h1Iw48ggU0hNHGJz9o5EzBjSJ/9D5b1DuloBbwb06R1GezRhZm4TjGlBlxOy6zUb7uADA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3+jwwbaAzNjj47cjZNvEbRaKHvD+FSKKSj/Y4woUuFokLk+1RowwrepyQ2WgVM19icKqjw9Ja6UTUVyuDDwHDA=="}],"memo":""},"metadata":{"timestamp":"1733476449"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16n55jt73sl8s5kl3z5ahrf0qrlxp47n205j9ex","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","teritori","Teritori Core Team"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RPWd3GHOcyjuhHLuCA2MFr98F2dHlhndNcwSbXAH0FNFK6jtpFGMUZIpMe3uPmtsB4Vsr/VKd1klFeEZLOtRBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16papy2npq78kdqky8py04wven3ex8qrvyfprjf","send":"","pkg_path":"gno.land/r/nebular24/guessbook","func":"AddMessage","args":["hello nebular"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dtf0WJzriXvBRPn+TjINZ2WKUGug6rZQzL+y2y6/CLvMMIzzZBrSEKvJ4oT1n33f4Fvho/+xG7LtSLl+30qbCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"GetOwner","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1WHnnSJ6V2cV6HoRoy/LGYg7v98bKYIcqqa2jWzkejZN8o3i5ohCl9PRbaq/rp/cRQUm+4VoFXzkhxRKHmy8CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["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","1726765282"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Htpw9ElCHKIT+81b8RKJxX3GTSMIqJaBUo4N7bVJrtu9Q9kjCEjur0Cyr1kquvmRrEhN8b3oxtonJfycly6NDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["/9j/4AAQSkZJRgABAQEASABIAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAJYAlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9tKKKK+oPx8KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiivGfjb/AMFEvgR+zjpt5c+Nvi78PtA+wT/ZZ7ebW4JLtJg2wx/Z0ZpSysDuUISoVicAEhOSW5UKcpu0Vd+R7NRX5/fF7/g50/Y/+FNzaQ2/j/VPGEl0kjv/AGBodzMtttxgO0qxLlzkKFLfdJbaCCfnX4qf8Hk/we8O+JVtvCHwr8f+J9NVEL3t9dW2lsWJO4JGDMSAMcsVJORgABjjLE0lvJHdTynGT+Gm/np+Z+xdFfifJ/weieBxE234E+KmfHAPiK3AJ47+T9e3YevGx8Lv+Dv/AEn4weP9D8L+H/2cfG+ta/4gv47G0sNO16G4uLhnIAEaeQNz8n5TgccsBkifrlHv+Zr/AGJjUruH4r/M/Ziiiiuk8oKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiio6AJKabjNYHjv4seFvhDpa33i7xN4d8L6fcTfZ4rvWdSgsYZm/55ebJLX5jft7/wDB1X8I/wBni8m0P4R6PN8WPEFu2Lm9aSXT9Hh+aVZE83/Wyy/uov8AVReV8/8Ara5KuLhT3PSwuVV63wn6tUV+F+l/8HdHxT1vT47qx/Zj028tZvuzQ6veSxP/AOQKl/4izPjF/wBGr2//AIHX/wD8Yrj/ALYw38x1f6v1z9y6K/DX/iLM+MP/AEaxb/8Agdf/APxij/iLM+MP/RrFv/4HX/8A8Yp/2xhP5hf6v1u5+5VFfhr/AMRZnxh/6NYt/wDwOv8A/wCMUf8AEWZ8Yf8Ao1i3/wDA6/8A/jFH9sYT+YP9X63c/cqivw1/4izPjD/0axb/APgdf/8Axij/AIizPjD/ANGsW/8A4HX/AP8AGKX9sYT+YP8AV+t3P3Kor8NJv+DtD4v28PmSfss26qv8X9pX/wD8YrX+A3/B5LoOoa9ex/Ez4P6joOl+T/ocvhjUPts3m/8ATXz/ACvlq6eZUKnwD/1frn7aUn2jHpXzh+zR/wAFa/2cv2tYCvgn4s+GLi8t5YIZLPU5v7JuPNl/1USxT+V5vT/ll5tfR0sex/LaOSLyf+eld1KqpHm1sJVw/wAcR1FFFbHKFFFFACfaPpSb6bXj/wC1R+398G/2HNOivfil8QNE8J+dxFZt5txfPu/5a+RF5svlf9NPKrF1rG9HCVcR8B7JRX4d+MP+DuzxXJ8Std0vwL8CdH8aaJpt3KtnqEGpXm65g/5ZS+V5H7uq/wDxFl/F7/o1e3/8GV//APGK8+Wb0I6SZ6v+r9c/cyivw1/4izPjD/0axb/+B1//APGKP+Isz4w/9GsW/wD4HX//AMYo/tjCfzB/q/W7n7lUV+Gv/EWd8Yv+jVbX/wAGF/8A/GKr3/8Awdx/FbRLOS6vv2YrOzgh+ZpZtXv4Yk/8gUv7Yw38xr/YNbufulRX5w/sjf8ABzT+zn8Xvg1omqfEzxhpPw78bXcksV34fis9Rvobf/nl+/8AIr9DPCvivTfHHhiw1zR7211LR9WhiuLO8gl82G5ik/55V2UqyqHn4rLa+H+I0qKKK6zzgooooAKKKKACiiigD5b/AOCpP/BWn4a/8EqfhNa654wabWvEmtOY9D8M2EqLfaoQRvky3EcKZ+aRhjJCgMxAr89bf/g9D8DMG834F+LEO1SuzxDbtls/MD+5GABnB5z6Cv1e+LX7EXwX+Pvi3+3/AB38Ifhf4113yUtv7S17wrY6ld+UmdsfmzRM+1cnC5wMmuZ/4dbfsy/9G5/An/wgdK/+MVz1I1m/dkkj1MNWwMadq1Nyl3vY/NE/8Hnvw7JmC/BHxs2B+4/4nNt+8OP4vk+Xnjjdxz7VwvjH/gtT/wAFCv26/GVjH+z3+z/rvgPwzf8A7uyvJPDj6gs5dlCyTajfRx2SgYyPlRQGcszAAr+wHgD/AIJ+fAX4UeK7XXvC3wR+EPhrXLBt9tqOleDtOs7u3PqkscKup+hFevVPsar+Of3Grx2Dpu9Ghr/eba+4/C/wh/wR/wD+Ci3/AAUHuL6P9or9oHVvhj4ZvGJudNh1SO/a5YKGTGn6bLFZGPcADumUqRkI3fg/2Cf+Ddn9m39rL40fEjwTa/Fj4l+PrP4TGCz1vxh4f+xaPpeoalcM+yzsoZbe881bdIJfOm+0YLTQhE25c/pR/wAHGH7SGtfsz/8ABJr4i6h4faa31TxMbbw0l1FO0L2cd3KEmkUqQdxhEiDBHLgnIBB8l/4NIfhPq3w6/wCCUEusaisK2fj3xtqmu6WUcMzWyRWunsWA+6fPsJxg84APQisfYw9qqb10u2zujj8R9TliE1FXUUopJX6vvt0ueoeFP+DaT9i3wrHpzH4PHU7rT1jzcX3ifV5jdOgHzyx/ahCxYjLKIwhyRtA4r3j/AIdbfsy/9G5/An/wgdK/+MV7tRXYqUFsl9x4M8ZiJ/FNv5s8J/4dbfsy/wDRufwJ/wDCB0r/AOMVifsrf8Eh/wBnH9ib4rXXjj4Y/C7SfDPiq6tmszqH228vHgibAYQrcTSJCWAwzRBSwJBJBIPGf8Fbf+Ct2h/8E3vBOk6DoOkyePvjj4/dbPwX4Ks0eae8mkfykuJ0j/eCDzDsVF/eTyDy48Ykki+Dv2G/hj/wUa/4KJftOW+q/G7x58SvgT8N/Dqo2oR6fax+H7jVAHZ1trWBUBZ2zhp5QwRAB85wpxlOCmoqN36bHbRoYidF1Z1OWHm3r6Lqfp7+0t/wU8+AP7HnxBs/CnxL+KXhjwl4jvoFuo9PupHeZImYqryCNW8tWIOC+0EAkcAmvaPCvi3SvHfh611bQ9T0/WdJvlL297Y3CXFvcKCQSkiEqwyCMg9Qa/nL/wCC3X/Bu38XPgXq3jL45eH/ABxqHxk8Lytca14kvtfuYbfX9IiVSxlmZmWO6RVULmBUYfKqwBRkem/8Gen7aHjnXPjX42+Beqardap4F03wjJ4i0a1uZ3ZNClh1GNZY7dM7VWdtTkkk4yWiTGOcxHFT9r7OcbX2OmtlNF4P6zh6nNbf+t189z996KKK7TwAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACimf8ALb8Kpa/4h07wloN5qmq3kGn6Xp8LXF5c3MnlRW0Ucfmyyy1k5WNKNH2jtSF17xBY+GtCvNS1K6tbKxsYpbi7vJ5fKitoov8AlpJX5Lf8FMv+DqHwH8EdIk8P/s9/2Z8QvFy3MRl1nUraWXw/BBt81/KxLFLPL/yz/wCWWz/br5w/4OEf+C6GmftQeHtS/Z9+FCS32g2+rqdV8U6brP2i38SReV8sUHkNh7ffKdyy5/1MVfKH7OX7Beh+CdMstY8WR/2xrE0UFxBZyrKsOm/8tfKlX/lrL/5Cr5DiDijDZZS9rXZ9Zh8vo4Wn7fE7h+0P+0t+1J/wVrtLiPx54ikfwYmqSavp2lzwxWOlWE4/dbYPl3/JFK33/euj+En7DHgf4faTBLqFjH4i1ZlXz57k/uYZf+mUUdezzXDSf6ySiv59z7xIxuN9zD+7EmtmUvhpBZ/6FD5cMf2WD/llFB+5hp/224/56S/9/KZRX59PMK0vtnmfWGP+23H/AD0l/wC/lO+2Tf8APxL/AN/KioqPrdb+cPbMl+2Tf8/Ev/fyj7ZN/wA/Ev8A38qKij61W/nD2zJftk3/AD8S/wDfym/bbj/npL/38plFH1ut/OHtmH2y4/5aSS+V/wBda5Pxl8AfBPxDuVm1rwxpN5cJF5Stt8n/ANFV1lFehgc6xuFfNQqcpdLEVaZ8d/HL/gnbceHIpdY+H91eXDW8u5dOb/j5j/2lkr6Y/wCCcn/Bx18Xv+Cf2gWPgX4jaFP8QfBNhJceWuoXUtvrFg0p/wCWd1L5vmRRN5n7ryv+B11lcr8Z/hDovx28Lf2Zr0ckqw/6i8X/AI+LZv8AZr9U4Z8Ua0LUcw/8CPWo5gqkeTEH74fshft7/CX9ubwNb658M/Gek64vlxfabHzfKvrCSWLzfKli/wCetezV/H/8L/i54y/4JJ/tp6X448Hvb3V5oEm+2a+tv3N/Zy/JLF+Kfu/Mi/8ArV/VD+xN+114f/bm/Zh8J/Evw61vFBr1pvu7OO8iuP7Kn/5awSyx/wDLWv3/AC7MKeJpe1pnk5tlsaX7+h8J6/RTf8/va/Ov/gp//wAHE/wm/YISTw74Tk0/4pePZDKjWmm6jE1jo88f/P48f+3/AMsv9bXozrez+I83C5fVxEuWJ9If8FOv2xm/YN/Yl8Y/Eq2sdP1bU9Hg8qzs7y7+z+bLL+6/7a1/MD8JvhH4j/bx+JOqeN/HGqahLplzeS3E7GeR5ZpZZPN8iDdv2rz+Fe4f8FBf+Cpfx8/4LJ+DvDej6n4C03w/4R0q7+0Rro1jcS280/TzZZ5N9dz8C/hn/wAKk+FOk6DN9j+0W0f7+SCP/XS1+VcecXRwOF/2eX7w+opRWCoW+0Wvhp8G/Dnwchb/AIRnS102VovJnnWWXzbmL/prXVm8uB/y1l/7+1DQBmv5sxWbYvE1Pa16jueRUrVajH/bbj/npL/38o+23H/PSX/v5TKK5Prdb+cn2zJvtcx/5eJv+/lUPEmj2virR7jS9Yh+2WNxHskgaX91NVmitaWPxNOXNGow9sz5/wDjd/wT/wDCPjPRJ7jwvZx6Fq0K/wCjxQy/6PL/ANdfNrO/Yb/4Ko/tBf8ABILxrcafHDcat4audkV3oGvebLb+X/0wb/llJ/nZX0jBVPXtD03xFbQw6pptnq0EP+qW7g+0Rf8AkWv07hzxNxOD/dY33kenhcx/d8lf3j7q+Ef/AAdrfs2+NNA0uTxVovj7wlrd/wDLeWkVjFfWVh/2382Ld/36r9LPh18SPDvxh8G2PiDwrrGneINGv4ori2u7Sfzt8Uv/AKDX8xHx/wD2IfC/xatmvNIgt9A1iGD92LSCKG3uf95a8++AP7Tf7T3/AASJlvrzwFr19oeh63tlvoo7aLU9Mf8A3vMSWKKX/wAi1+zZBxrl+Yr3Je92Crl+ExK/ce7I/raor4F/4JM/8F4vhn/wUd0TQ/CupXS+F/i/Nbf6Xos6+Tb38sX/AC1gl/5ab/8AnlX3tn9z+7r7qjV9ofOYrB1MPU5ahJRRRWxyBRRRQAUUUUAFFFFAH4s/8HmXxvj0b9n34P8Aw7h1J47jXteuteubGP8A5aRWsAhR3PUDfdNtB4Yhj1Sv0M/4IxfCrSfg3/wSi/Z90jRUmjs7zwRp2uSCV97G51GEahckHA+Uz3UpA7Agc4zX5A/8HZLt+0J/wUz+Cfwp8Np9s8TzaFbWCoDlftOo6g8UERHUN8isfaVa/fb4QfC7Sfgd8JfC/grQY5ItD8H6RaaJpySMGdLa2hSGIMQACQiLkgD6Vx0da85eiPdxtoZdQp9W3L+vvOiqn4j8Q2fhLw9farqM62un6ZbyXd1MwJEUUal3YgZPCgngZ4q5Xzr/AMFdtYu9A/4JdftAXdjcz2d1D4D1bZNC5SRM2sgOCORwSOPWuqUrJs8ajDnmod2kfl9/wQf1Ff8Agp//AMFuvj5+1JqSLcaT4Jtvs3hu2vbydrzTG1Ay2tm8agBCi2Frexuj8K10pVCRuT9y6/CX/gyk/wCbl/8AuV//AHMV+7Vc+D1pc3e/5nqZ57uLdNbRSS9LL/M5L4+zw2vwJ8ayXDtHbx6DfNK6lgyqLeQkgryCB6c+lfzuf8Gcv/KTbx1/2TC//wDTrpFf0H/tY+L9J8B/sw/EHVtc1SHRdLs/D18Z72W5S3EAMDqMSOQqsWIC5PLEDvX8+X/BnJC7f8FMPHkm1vLX4Y3ylscAnVdJwM++D+RrPEfxoHTln+4Yh+S/U/pOoooruPngooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKoaxrFr4Z0e81LUrq20/S7CL7RPdzyeTFbRRf62Vqx9qVRo1augeINZsfDOj3moaldWum6bYwNcXd5cyrDb20f/PWWVq/nE/4ONv+CvF5+2j8ZLj4K+B7eH/hBPh/rksbalaXKXEviDUY1e382KSP/l3/AHr7P+etbX/Bfn/gurD+23c2Pwj+C+vakPhrudfEEqWv2eTXrxLiZIoo5d3z2fleVJ/Bv3189/scfsbR/CSyt/EviaGKTxFMv+iWcv8AzDv/ALbXyPEnElDLqDq1WfZYPB08DT9vX+I6P9nn9jfwx8GW03W/9K1bXfKiuIp7mLyfs3mxf6ryv+esX/PWvZaJ6K/k/P8AP6+aV/bVzzMViqlSpzSCiCiivDOYKKKKzAKKKKACiiigAooooAKKKKACjyKKjrQDl/jv8H4fjn8O7zw7NdS2StLFL56xedXn/wDwSM/4Kdw/8Ebvjl8SrXxH/wAJF4k0XUtMlsrTStMk/wBBudRi/wBRcSxS7f8Aa/7+17YBmvl/9vn9nCz1jw9ceNNLWT+07fyvta+Z+68v/rntr9m8NeKPZS+oV5eh7WXYqP8AAq/CbHx0/wCCq/7V3/BULxFrOl/8Jdq9h4d1WD7PeaDo0/2HSUg/6af3qx/hd/wTb0/TtR+2eNNY/tSXzOILFm8qX/prJK1dd+wT4+sPFXwUt9Nt7eC1v9F/0e7WL/WzRf62KVq9yrXjXj3McNiZYKj7pWPxkqMvZ0ivpGj2vhvSLexsYY7Wzto/Kigg/wBVDFViijyK/HsTjKuId6rPDuwooorhAKKKKACiiigCOipKK0AKg1LR7XXNHuLG+hiuLO5i8qeBv9TNU9FdGFxdWhPnpAfG/jPwb4y/4J2/HLSfih8MtSv7NNLn+0WN2v8Arbb/AKZS/wCzX9Kn/BKr/godof8AwUo/ZM0XxZbXej/8JbaweT4m0qxl/wCPCf8A65Sf8s5a/FX4ieALH4r+ELzQtUkuIrG+/wBb5DbZa+bfgD8XviH/AMEcv2utE8XeHdVnh0G4uds/7vzbfUrP/lrFLF/e2V/Svh/xnHH0vq9eX709xezxtH2UviP63KK87/Zd/aa8G/tg/BXRfHngPWLXWND1iCJ/Nj/5d5f+WsUsX/LKSvRK/Xac7nyNajUpVPZSCik/5bfjS1sYhRRRQAUUV5l+2n8UbX4Jfsf/ABS8XXl1c2Nv4b8KanqBuLcEzRGO1kZSmOd+4DHTnHIobsrlQi5SUV1Pwy/YBsbf/gqd/wAHRnjr4g32oRXegfDrUNQ8TaerMcXdrpkkGm6d5eOBiSS1nI4BCPySef6Gq/n7/wCDLv4P6XrXxv8Ajt4+mkvRrfhnQ9L8P2kayKLdrfULi4nnLrt3Fw+mW4UhgAGkyGyCv9AlcmD1p8z6ts9jPmliVRjtBJL7rhXgP/BVbwTq3xH/AOCavx20PQ7G41TV9S8D6rDaWkA3S3D/AGWQhEHdjjgDkngZJr36iumSurHk06nJNTXR3P4y/wDgnh/wUU+Iv/BMH4/t408DNbm4kiNjquk36N9l1OEHPkzKCGGGGeCCCOCDyP1M/Zy/4OT/ANsL/goN4yvPh38F/gb8P9T8aXmnSzx3UDz+Vo6KuHu5XuJ1gRVZl2+a20uUTEjOFP70UVx08JOGinp6Hu4rOqFd886C5u7f5qyufiF8Mv8Ag1r+Mn7TXxf1XxL+1v8AtCXXiS1umR2g8K6nc6he6kRHIo3XF9AkdqsTCHaq28wZS6jysBj+n3/BO7/gmj8Lf+CYfwcuPB/wz029/wCJlcm71bWtUkjuNW1qQFvLNxKiIpWNWKoiIiKCxC73kZ/f6K6KeHhB3S1PMxWZYivHkm/d7LRfcgooorY4QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAQRyH/rrX893/Byt/wVL0j9pf4teHfg18JvGWuto3hxrrT/ABdeaZqMqaPrss72/wDou1P9fFb+V/ufPX6qf8FwP209J/Yh/wCCcXjrWtQEc2reMrSXwpo1i0rRfaZ7yKWKX5lX/llF5sv/AGyr+dX9gD9mm31jTZPGfiGztby3m3W+n2VzB5u+X91+/wD/AIn/AIHXyfEmdUsuwkq1U+syfCxw9L61VPZP2cP2RdD+ANgxuvset+Iml3NqTRf6nyv9V5Hmf6v/AK616x/y1om/eS/vP3v/AE1or+R88z3E5lX9vXZwYrFVKlXmkH+sooor58yCiiigAooooAKKKKACiiigAooop8rAKKKKLMAoooo1AjqPU9Lt9XsLi1uvNlt7+KWKX975NWKj/wBXXdhatWjV9rEKJ8S/BjU5P2av2vLnQWvrX+yby6+wz+ZLKlv5Un3f+/Wa+38+WtfJn7f/AIMjs/i34R1yOb/SL8xW8kPl/wDPKvrKf79fonHdSni8Lhcet5LU9bMZe0pRqhRRRX5YeSFFFFABRRRQAUUUUAFFFFABRRRQAVxvxz+Cul/HLwPcaXqFr5l5t/4l86/fhl/3q7A7t9Ol/wBTXqZbmNXBV44ih8RpRrezq3PAv+CSf7f/AMRP+CUX7W2l6DrM17Y/D/xVqEVlrmm31tLNbvF5uz7RFF/f/wB2v6n9M1W31vSre+tZPNs7+CK4gl/vxS/6qv5ZP28fghN8U/h4usafayXWraR/zzi/ezRV+in/AAa3f8FL/Fvxw8O3nwG8S2DalF4G0+W+tdbvNQllu/K83i38rb/q4q/rTg/iKnmeEVXqeljqP1qh7eHxH7I0VHD0qSvvD5EKKKKACvI/2+PgJrH7U37FXxS+G/h+502z1zxv4avdGsZ9QkeO0immiZEaVkR3CAkZKoxx0Br1yilJXVmVTm4SUlutT5G/4I8f8El/Cv8AwSe/Z7n0HT7r+3PHHiryLrxZrnzLHfzxB/LhhQ/dgh82UJkbmLuzYLBV+uaKKUYqK5Y7F1q06s3UqO7YUUUVRkFFFFABRRRQAUUUUAFFFFABRRRQAUUVi/Eb4jaD8IvAmreKPFGrWGg+HtBtXvdQ1C9lEVvaQoMs7seAAPz6daASbdkbVFc78IPino3xz+Evhfxt4dnkuvD/AIx0i01zTJpImieW1uYUmhZkbDKSjqSp5GcGuioG007MKK801H9tD4O6PezW138WPhpa3FszJNFN4nskeJlOGDAy5BB4IPStTwD+0z8N/it4h/sjwv8AEHwR4k1bymm+xaVrtreXHlqcM/lxuzbQSATjAqeZFezmldpnb0UUVRAUUUUAFFFFABRRRQAUUUUAfyz/APBaD9v+b/grt+21pNv8NtT8Sal8O7PT7eDQ9M1KD7LFa3Plf6ZP5X/s3tXqXw78GQ/DTwFomg2skksGj2n2fzWbd/n97XDfsr/s86P8JfhzpN1/Zf8AxUV9BFe3c93F/pFszf8ALKL/AJ5xV6nX8r+IfF0cxrfUqPwxPrsxxVOp+4pBRRRX5GeSFFFFABRRUdbUwJKP96uY+J/xX0L4OeHotU12++x2s0nlRRf66aaT/rlXyx8f/wBrnxD8YvGS+HPhncahLpdxD0s7aVLi5l/5a/8ATWvsOH+DcXmPvv3Kf8x3YfLqlXc+yry8j0+HzLiaK1i/56yy15f8QP2zPAPw9ufJutV/tK4WeW3kWx+aZfK/5614npH7D/xM+IfhZf8AhJ/Gkln50vm/YbyeW6c/9Na7D4bf8E2fCvh37LceJr66164/e+fBF+5t/wDpl/01r6Sjw9w7gY/7ZiufyidX1XCU/wCLI1f+Hi3w9/ueIP8AwD/+21xes/8ABSe61O2u4dB8HXclxF/qJ2l85B/vReVX0Lo/wI8F6PpcFjD4T8O+VDH5X7/T4ppv+/stbnhzwvpfg/zf7I0zTdJ87/WfYYIrfzv+uvlVjLOuGMOv3WG5ifrWEp/ZPlvwb+1F8dPH9jLdaP4IsNQt4W2ySxWMv/x2tY/GT9ov/onsH/gDL/8AHa+nJpJLn/WSebRXPU46wfN+6wUCf7Qp/wDPs+Y/+Fx/tE/9E9tf/AGX/wCO0f8AC4/2h/8AonVv/wCAEv8A8dr6corH/XjDf9AVMz/tJf8APs+Yv+FyftFf9E7tf/AGX/47R/wuT9o3/onlv/4Ay/8Ax2vp2o6r/XjDf9AVM0/tCn/z7Pmj/hcf7RX/AETuH/wAl/8Ajtc14l/be+LHw81qK38ReENNs1h+dopbSWL93/veZX2BUGsaXa63pUljqVra3lnc/wCsgnj82Gb/ALZV2YXjbLqsrYjCQ+Q6WMpf8+z4U/ag/au0n47W3ha60y1vLC+0eWRrmCc+bFD/AM8v3lfbnw98SSeL/AOiaw3lebqlnFcSeR/z1rwP41/8E6fD/i/zb7wpc/2Fff8APCX97bzf/Gq8TsPif8Sv2LdYh8N6hm3s932j7NJtmhmX/ZavrMbgct4gy+nQyuVnT+yehWp0cTQ5aB9/UVwPwd/aK8J/F7SLFrPVLO11S+/df2a0v+kJL/u16DN96vxfMspxOX1fZYiJ8/Vo1afxjKKKK8cyCiiitqMW9gI6Kqa74r03w3pbXWpalZ2dnD/rZ55P3Nc7/wANBeB/+hv8O/8Agwir2cPw/mFePPSpM1p4Wqdf8tHy1x//AA0H4H/6HDw7/wCDCKj/AIaD8D/9Dh4d/wDBhFT/ANWcz/58SNPqtb+U7D5aPlrj/wDhobwL/wBDh4c/8GEVB/aD8CyTfu/F/h3dN/09xUf6tZn/AM+JB9VrfynZUVFDJHIkUkckUsU3/PKpa8WtRdN2ZzBD9/8AeV8faT8W/HP/AATl/bn0v4jaLNqWm2zan9r/ANCb7Ol/B5vzRN/DX17XmP7Xfwnk+L/wVvrW1sZbzVLOX7RZr5v/AH9r9C8O8+/s/G+xq/DI9TLa/JU9lI/pI/Z8+Nmi/tH/AAY8N+O/Dt1bz6T4m0+K9ilgl86FP+mXm121fiv/AMGnX7ftx4i8M+IPgB4muJpL7QfM1LQ/O+0TSpH0li/55RRRV+1Ff1hhKvtKdzxM0wfsq3KFFFFdh5wUUUUAFFFFABRRRQAV+PX/AAV//wCCtPxo+PP7Seo/sq/sa6T4h1Tx5oEqt4u8Q6OFW4sWWaKNreGVyEt4o5ZoknuZGVVZtmVUOzfoR/wVB/bJh/YH/YS+InxP8yzXVND01otFiuG+W51GYiG1Tbglv3rqxUD7qMSQASPiT/g1P/Y7j8Ffsla/8f8AxRZtefET416tdTDVruNWuf7LinK4U43IJ7pZ5XxtEoW3JBEaMeatJykqUXbq/Q9bA04UqUsZUV7O0U9nLz9EfF6/sj/8FjFLH+1vid8wAOfiRop9+P8ATuPqK/YT/gk5+yz8YP2Zf2dB/wAL0+Knib4mfEbxI0d7qEWoX/2uz8PYBxaWzHliNx8x87WYAKNqhm+pKKdPDqDvdv1ZnisznXhyOEYryVv8woooroPNCq2s6zZ+HNHutQ1C6trDT7CF7i5ubiVYobeJFLO7uxAVVUEkkgAAk1Zr82/+DrHVfEekf8EkdYfQb69sbSbxLpkGt/Z7jyftFi5kUxuMgujTG3ygznAJGAaipPki5djowtH21aNK9uZpH0b/AME/P+CqPw4/4KUeL/ipp/w3j1e60z4Yarbac2sXESpZ62k8chWe3+bft3wzDDquVEbD75VPpev58f8AgzD+Lsmk/tEfGrwH5lv5XiDw5Y6+I2VzKGsrloCUOdoX/iYAMCMkiPBAU5/oOrPDVHUpqTOnNcJHDYmVKGytb7l+oV+Ef/B5X+0B4s0TVfhJ8NbHXryz8H63Y3es6ppUL7I7+4imjSB5sKCyp85VSxXd820FVav3cr+a3/g7O8beJPi5/wAFS/CvgGG1SS30Pw1YWuiwJEqSXU97NIzsZCAW3PsQAttXy+MEuTnjpWpM6uH6aljU30TZ+9H/AATa8PXnhH/gnX8A9J1GBrXUNL+HPh60uoWIJilj0y3R1JHHDAjj0r4J/wCDnf8A4Kux/sufAgfCH4f/ABAk0P4neLlzq1vpdmJ72w0t0OQ1x5yfY3l4AISSRkLECMFXP09/wU7/AOCg/hf/AIIxfsGadqMcaa54gt7SDwz4M0i8lAk1O5igCrLOIwp8mJEDysgUHKoCjSJVP/gnj/wSU8J/BT4CfbvjN4Z8I/FH4z+PL6TxP428Qa9otpqU51G5Cl7WGWRHIt4AAiKG2lvMdVTzNoqd5L2UN7a+Rlh+SnP65WV1d2Xd9d+i/M/kZr1T4a+O/i3/AME/PjL4Z8ZaL/wlfw38XfYIdY0i5ntpbOS+sLlCUlVXAE1tMmRnBRxnrjj+ur9of/gmN8AP2r/idofjP4hfCjwj4l8VeH7uK9t9TmtTFPcPHjYl0Yyv2uJdoAhuPMjxkbcE5+Rf+DoD/gn54d/ad/YI1v4oBYbHxx8H7Q6lZXeYohe2RljFxbSuULsoQu8aKyjzcddxrglgZQi5J7H0VHiOlWnGlKFlLR31329V32Pcv+CLn/BUjTf+CpP7KFv4jmXT7Dx14ZEGneKtNt5txiuTEP8AShHjMcM7pM0aktgIRuJU19fV+Ev/AAZSf83L/wDcr/8AuYr92q9HDVHOmpM+YzbDwoYudKnsrfik/wBQooorc84KKKKACiiigAooooA/nTooor/Ps9gKKKKACo/9ZUlFAAB9prB+JPxD0/4U+Db7XdUkk+x2K42r/rZv+mUVY/xs+O2g/Anw3LdaxN/pk0Uktpaf8tbmvjHxX8V/iN+2drA0axtJpbCH999hs4v3MP8A00b/AL6r9I4W4MqY3/bcV7tE9LAZdKX72qW7xvG37dvxJvrexmml0exuftCwTybYbCCV9vmV9leBvgb4P+GYsZNH0LT7e801dq3e3/SP+/tP+CXwxsfg98OdJ0WG3i+0W0H+lz/uvOml/wBbL+9/5axebXWVtxVxVUqS+pYH3aMdNOpWMx/P+6pEdSUeRRX5re55YUUUVmAUUUUAFFFFABRRRQAUUUUAH+rrB+IXwr0H4p6P9h17TbXUrf8A5ZytF++h/wCuUtb3+tqOvTwGOq4aXtcPLlkFGtVpnxX+0t+xhcfAi2/4S/wrf3E2m2Mu+WKX/XWH/PL/AHq9Q/ZS/bdtfim2l+HPEEbReInPkxXe391c/wD22voO8sodQtpI7q3iuFf/AFsUsXnQzV8XftW/AfUvgB8TLXxt4Js7i1sfN80eR8/2af8A3f7tfrOS5xhuIcP9QzL+N9mR9BhsRSxcfZVT7A1Pxxoej3M0N9rGk2dxD/yynvIopq5nx3+0f4L+HGg/br7xBZ3X/PKKzn+0TTV8teEPGfw7/ap+KXmeMI9X8PaxqsaxedBeRfZpp/8Av1+7r2G2/wCCdnw5vR5kN5r0v/XK8im/9pVz4rhDKMtV8xqS+4zlgKFDWoYPiz/gpvoVvYf8SPQb66vPM/5eX2xVx2nfGb45ftF6XfQ6DYTWthN+9VoI/s/7r/nksrfer6R8Lfsu/D7wxc2d1Y+GNO+1W/8Aq55fNmrvLO3js7bybeOK1t4f+WUUXkxQ1y/60ZHgaf8AwnYa8v7xj9coU/4VM+LdH/4Jw+NtbtrebWNf021W4/ezQvdMzw/+y16z4V/4JyeBdHsfL1STXNYuPM/14k+x/wDkL97Xu9FeRjPETNK6tRfJ6GNTNaz2PF/+HfHwy/59dY/8GH/2qj/h3v8ADP8A58dW/wDBp/8Aaq9q+Wk8hfSvJ/1yzn/n/Iw+uV/5jxj/AId9/DH/AJ8NY/8ABj/9qrjfin/wTd8O3mlXF14VvNSt7y3g/cWcv737ZL/vfw19NfNTq68Px1m1CfM63N6mtLMq58Q/Cf43/E/9mrTbjRtS8J3mo6XYlv8AW2sv7mX/AK61658I/wDgoZ4V8V2Nx/wkvl+GbyFsxL+9mimr6CubiS4Ty5P3sXleV5Un+qrz28/ZN+HF5ctNN4Q07dNL5sjebL/8dr6CpxPkeYrmzDD8tTvE6PrlCt/HplzwH+0h4H+Jl81ro/iCzuLhf4Zf3P8A6Nrtvs//AExr5T+J3/BNxn1S41HwXrUVnJ5vmwWM/wC6+zf9t65PxL4z+OH7LVzZnWLqbUdHtz5UUsp+0W83/A/9bWlPhLLMa1Wyivr/ACyNfqlKprQke0fsD/tU33/BML/gp6dc0vwiNctfFN2fD8UV9dS26+VdS+V5qy7fmr+pizuPNsbeT/VedBFLX8af7UX7V8fx80zw1LDaz6Tqmi/63a/3f9qJq/pp/wCCF/7XX/DY3/BOzwdquoappuoeJPDcf9k6rHBIxltpIv8AVeb5n/LWv37h2pWjhKdLE/EjPPcHUdCNU+x6KKK+qPkAooooAKKKKACiiigD8T/+DrPxhrX7RX7Q37NH7L3h++0yxuvHmuQ3ryXV04jjuru5XTbKSaNAWWJTJckvtYkFgo+Vg363fsnfs6aT+yL+zR4F+GWhzTXWl+B9GttJiuZhiS8aNAHnYZO1pH3OVBwC5AwABX86v7f3jL7N/wAHW2k3+taoItP0b4reDg1xe3G2Gxtom0xjlmO1I1G5j0A5PrX9NlceHfNUnLzse5mkXSw1Cktmub5v/hwr5Q/4Kzf8FafAf/BKj4GHXNdaPXPG2tI8fhrwxFMEuNUlHBkkPJitkJG+Qj0VQWIFfV9FdUk2rR0PHoyhGadRXXa9r/PU/nZh/wCDzH4xrMpk+EfwzaMMNyrcXysR3APmHB98GvuH/gjl/wAHJGlf8FIvjZpHwn8XeCU8H+PtU0+8vLa8sbzzNN1GWAtL5EUb/vUcWqs5JZgTDJ0GBX3f+2L+xj8Pf26PgxqHgn4ieF9F8R6fcRu1lJfWxkk0u5KFVuIXRkljdc9Y5EZlyu7BNfyG/FjwB8TP+CV/7cmpaGupXXhn4jfCvWla01CylAbgCSGdSrMDHNA6MUYkFJSjjllrzqsq1CScpXR9Vg6GBzCnOFOnyTS01b+f+eh/aRX5y/8AB1PcCH/gj14sXey+dr2joACg3/6Upwd3J6Z+XnIH8O6vsL9hX9pq0/bL/Y5+GvxRtZNNZvGvh+11G9jsJTLb2d6Ywt3bKx5zDcrNCc8hoiDyK+F/+Dtf4p6L4O/4JbL4dvpmXV/GHiiwg0yFU3bzAWnlYkqdqqiYyCDl1GSCQezESTot+R4WXU5LGwg1qpL8Gfk3/wAGunx9g+B3/BW7wvZ3V3JaWnxA0i+8LSbbfzhM8gS5hjPBKAz2sXzL0OASFLGv6pK/hy8B+NvFH7PfxO0HxPoN9feHfE2gzW2r6ZeQOY5rdiqzQyKR2Kspx0IbB6kV/bp8O/iHonxZ8DaT4m8N6na6zoOuWyXlje2zbo7iJxkMO49CDgggggEEVy5dO8XHsexxRQtVhWX2lb7v+H/A2a/md/by0y8/bV/4Oj7fwf4kuJNN0+Hxzo3h+I20arLFY2yQP8pYffkAdgzBgDL0KgLX9IvxP+JugfBf4d614t8VaraaH4b8O2cuoalf3LbYrSCNSzu3fgDoASTgAEkCvwm/4No/2Y9D/bJ/4KN/HL9pTXLD+3NN8N65dXPhqbUpG89NS1C5mmF00RZ90kdvuGZHYI1wGXc6h49cUuaUaa7/AJHHk8vY062JfSNl6s5//gq1bH/gpd/wcw/DT4OReZ4w8J+FtR0nRdU0aW4azt4rSEnUNZVW3Id32UTbnQh28tUQkqgr+hav5pv+CZfjPUviB/wdhy6tq9015f3HjnxrG8jAD5Y9N1aNFAAAwqIqj2UV/SzRhHzc0+7FncXT9jR6Rgvvd7/kFfKn/BcTWbHQv+CSPx8m1GW2ht5PCdxboZ5ERTNKVjhUFyBuMjIFA+YsQFBYgH6rr8pv+DvP41zeAP8Agm9oPhOG3hk/4T7xZbW88jS4aGK2je5+VcfNl0jBORj3zW2Ily02/I4MtpupiqcV3X4anlH/AAZe/DabSfgn8dfFzQXyQ69rWlaVHK8ZFvIbOC5lIRsYZx9tG4AnAKcDIz+2Ffnr/wAGu3wyn+Hn/BHTwHe3EsrSeLtT1bWhDJbmI2yG9ktkXJJ3hltllDYGRKBggbj+hVThY8tKKNc4qe0xlSXnb7tP0Ciiiug80KKKKACiiigAooooA/nTooor/Ps9gKKKKACiiigDk/iT8DfCvxhe1bxDpf2xrGKWKDbPLFs/791peAvhtofwt0f+zdB0u10238rypfKi/fTf9dZf+WtbVGa9qWfY54b6p7R8nY0+tVfZ8gUUUV4tzMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACib/SYZVk/exTReV5VFFb0cRUpO8GFL92fNPx1/4J7aH4lstW1XwxdS6dqDf6RHYt/wAe9eW/sXftMR/AvXJ/DniTzYtGvp/9fu/48ZPWvuivC/2yf2XtN+LPha88QWXkafrulQ+aW/huYv7rV+t8OcWUsfS/svN/ejLZnt4XGe0/cVz2jR9Xtdc0qK+sZrW6s5v9VPHL50M1XK+af+CdXxstfEPhCTwjdTXTapYyS3EHmH915H/PKOvpavh+J8jeW4yVBbdDzsZh5UanKEFFFFfKnKFFFFABRRRQAUUUUAH/AEzqvrGn2Or6dLa31ra3lnN/rYJ4vOimqx/y1oTtXVh69WlL2sA1Pn79oH9gXw/8SIPt3hqO18O6tu3yxf8ALvc/9sv+WVct/wAEu/8Agq94/wD+CRnx0uYYvtWt+C7yfyte8OGf91c/9NIv+eUtfVUhyf3deXfEH9jrwB8QtY/tDUtHlt5/+Wn2Sf7P53/XWv2LhDxI9h+6zJnuYLMV7P2WIP3v/YD/AOCnvwn/AOCjXgGx1TwP4gs4tcaHzrzw1c3UR1Sw/wCusX/tWvor7RX8hfjr4U+Ov2FfirZ+OfhXrGuaWqfNbXuny/6RZ/8APSKWv2O/4JPf8HM3hv8Aat+Jel/DX4oaJD4F1a9gistK1iXUftEWq3X/AE3l8qLypZa/dspzqhjaPtKMjixWT+0/e4U/Wn7R9KWo/wDyL/1yqSvoj5izW4UUUUAFFFFAH8sv/BzV+yv8QPgd/wAFQfGfxD1nRbqz8I/Ea6tr7w3rUL7re6MNnbRyR715jmjdDlGw2MMMqQx/VT/g13/4KVf8NafsjyfDPxh4s1DXviZ8OWkwuo4a4n0fMawOJMlpRGziIs/zDKDLDmvoD/gt/wD8E0NO/wCCmP7FupaFHJcWvjPwgZNc8L3MW9x9pRCHgeJc+Ys0YZAANwcoR0Ib+Yr/AIJ3/tleJP8AgnD+2j4Y+IumwLDeeH7p7LVbK8tt3mWsmYrmFkI3KwUnptYMoGRzXlTvQr83Rn2dBRzLL/Zfbht8tvvW/mf2d0Vi/Dj4jaH8XfAek+KPDWpW2saDr1ql5YXtucx3ETjKsM4IPYggEEEEAgitqvVPjGmnZhX4R/8AB5X+zVo2nRfCf4tWn2G01nULi48N38UWnwpNqCiMTRTSTgiV/LCFArBlAfgp0f8AdyvxB/4O9fjno/xI1L4J/ADSJoZ/GmoayNenLzBYdPimDWdssuMkGR3kb/ZWLODuFcuMt7J3PXyJyWNg4+d/Sx9o/wDBtB/yhJ+Cv/cd/wDT9qNfn7/weg+PNbXxv8DfDH2th4cksdS1QW3lJhrsSQxeZv8AvnEbY28KM55JOP2P/YD/AGP9J/YG/Y78B/CPRb6fVbPwbYNBLfSp5bX1zLLJcXMwTJ2K9xNK6pubYrBdzYyfy9/4LP8A/BIz4sf8FU/+Cy3g/SrGHV9D+FOk+CbE6p4quIJW03Tl+2XZnht92I5bxwY/3SHIBRn2qM1FaEvYKC30R05fiKX9pSxEnaN5PXzv+Op+cv8AwWc/4Jv+Jv2PPhL+zj4yur631nw/4q+H2m6bJcxQiD7JqMcbXEluVLlmXZOpWQhc7WBAIxX6If8ABql/wVf8I6j8G7P9mrxlrF5p/jPTLy5ufCs2pXYa11W1kIf7FAWOUljYyMsXIZSSvIKj9IP26P8AgmB8Mf28/wBkeH4R+JNObT9N0O1ji8M6jbkyXnhyaKLyoZYmclnAUBXR2IkXIJzhh/KR+1J+zD8WP+CWP7WDeG/EH9reC/G3huVNU0bVNPvVimlgLuLe+t5oJG279hIw+5CGVsMpA5qkZYep7SOx6uFrU8zwrw1R2mtV+j/Rn9B//B2D8brf4Zf8Errrw7/aF/Z6l4+8Q2OmW8VsWVbqOJjczLKQMeXthHykjJ29QCK6r/g2P/ZX0P8AZ1/4JV+E9e0+Zr3WfipcTeKNXuXiRWRifs8VshChvKjigUgMW/eSTMMB9o/E/wDbp/b58Rf8FwdT/Zd+Hum6Z4gf4laHaDwlqIupkls9X1G5a0i/tCMr8ymUxs8u8AIEHJAJr+n79lz4A6X+yr+zf4F+G2iskum+B9CtNFinWBYGuzBEqNO6LwJJWDSOecs7Ekkk10UZe0rOotkrHmY+lLCYGGGl8UpNtemn+R/J7e/tf67+wT/wWf8AG3xc8N2lrqGreDviL4hmS0uTiK7imuby3miY4O0PDNIu4DK7sjBAI/rY+DPxc0P4+fCbw5428M3keoaB4p06HU7GdJEk3RSoGAJRmXcM7WAY4YEZ4r8Cf+Dp/wD4JQeKvCXx5vv2iPA/haG68A65axf8JS2kWCRtpN+C4e7uFjO5lm4Z7gqAHIDtudSflb/gk1/wXy+KX/BL5m8O/ZofHvwzupUebw9f3DRSaed2Xks5gD5TsuQVZWQ4X5QRmuelWdCo4T2PSxmCWY4aFfD25krW/T1R/WLX4U/8Hn3xtvIrX4I/DiO3hXT7h7/xJcTlgZHlQJbxIBnKqFkmJJGGLLg/Ka++P2XP+Dhv9lf9pvQfDIX4kWPhDxN4gVUl0HXoJrWbTp8ZaKScp9n2jBxIJNhGOQcgfnT/AMFfbPQP+C5//BZP4U/BT4SzXGvab4FsWg8YeK9MZbqws7KSaOa5ljdT5ZSCMqgkLASTzrEOdpbqxVSM6VoPex5OUYedHGKdeLSim3dbabn6vf8ABGvwL/wrr/glP+z7p/2xr77R4F0zVPMZNhX7ZAt35eMnhPP2A9wmcDOB9LVj/D3wDo/wp8A6H4X8O2MOl+H/AA3p8GlaZZREmO0tYI1iiiXJJwqKqjJJwK2K6oxtFI8WtU56kp922FFFFUZhRRRQAUUUUAFFFFAH86dFFFf59nsBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUGpafDqFhPa3Ufm29zF5UsVT1HW9Gq6U7oOtz4P+N/wp1L9kf4y2GvaTcfY9Kv7vzbPy598sMX/LSKSvuXwr4kh8aeG7LVLGTzbO+iiuIq86/a3+AMfxy+HEn2WOWXW9Ki3aftk/11eK/wDBPH4wahoviy68AahazS/PI8TSN/x7NH/rFr9ix/LxBkn1pfxqO59BU/2nDc0T6+ooor8aPnwooorMAooooAKKKKACiiigAooooAP+PiGWOT97FN+6lj/57V8m/tMfsJbLm+8VeC5JoZIf3/8AZq/66Mf89Fkr6yoh/wBHmir6rh3inF5VX5qMtDqwuPlS+E9e/wCDZ/8A4K5XOlXWufCT4yfESyhs4mi/4Rg65c/6dNPKf3sCyy/er9yq/kt/bD/Y6t7bT/8AhKvB1veJqKz7p7ODzZZn/wCmsVfp3/wbnf8ABcLWvjnqGl/AD4oNeal4qtoPK8Pa15fmtcxRf8sJ/wD47X9WcN8RYbMcMqtI6sxwccRS9vQP2boqOpK+uPkwooooMwr+fn/g4P8A+Dfn4la3+07rHxi+BHgl/FfhXxciXeuaHou03+k6hlIpJI7YtvmimLLJ+4DFG84siIoY/wBA1FY1qMaseWR6OAx1TCVPaU/Rp9T+SL4RftF/t0/8EmPCenapbWPxu+GfgmzvvLitPFPhu9i8PyzyoR5RivIvI3OsZIC4b5Sy4IzXu/wT/wCDub9pr4eS3w8V6b8P/iBDdYaH7bpbafJZkZ4RrVkVlORkOrHgYYc5/pmrifjR+zV8Of2kbCxtfiJ4A8E+PrXS5GlsofEeh2uqR2jsAGaNZ0cISAASuCQBXMsJUj8E2evLOsNVd6+HTfdb/l+p+K3wq/4PQprfw3Ivjj4GRXmsfaGKSaH4gNtbeTgbQUmikbeDuyd2DxwK6v8A4JVfsqa9/wAFif8AgpV4g/be+KnhvWtJ+HOl3cD/AA70jUroOtzd2u2OIphRvtbRo3fcoRZLlgcuUnU/p9/w62/Zl/6Nz+BP/hA6V/8AGK9q8OeHNP8AB3h6w0jSLCz0rSdKt47OysrOBYLezgjUJHFHGoCoiqAqqoAAAAAArSNCo2vayukctbMMPGMvqlPllJWbvfTyLlFFFdZ4oV8h/wDBVb/gjP8AC/8A4KqeClbxFGfDvxB0uz+x6J4tt4nmm06Pcz+VJAJI1uIdzu2xmUgnIZcnP15RUyipLllsa0a06U1UpuzR+fv/AASB/wCDfT4e/wDBK3xPqnjC817/AIWd8SLrdb6fr91pA0+PQ7Rk2vHbW/mzbJZMsHmMhYoQihFMnmfoFRRRTpxguWK0HiMRUrz9pVd2Qanpltrem3FneW8F5Z3kTQzwTRiSOaNgVZGU8MpBIIPBBr87v23/APg2F/Zt/bE8aXvijS7XW/hL4gurJofL8HraWukTXG3EdxNZNCy5BCllgaHzPmLHexev0Ue9hjvI7dpo1uJUaRIiw3uqlQzAdSAXUE9tw9RUlKdOM1aSKw+Kq0Jc1KTTPwouP+DKWNp5DF+0o6RFiUV/h9uZR2BP9pDJ98D6Cv1G/wCCYf8AwS/+Hf8AwSy+ACeDfBMLahrWpmO58S+JbqJVv/EV0oIDPjPlwR7nWKBSVjVmOXkeWWT6RoqKeHpwd4o6MTmmKxEPZ1Z3Xol+SQUUUVseeFFFFABRRRQAUUUUAFFFFAH86dFFFf59nsBRRRQAUUUUAFFE9FABRVbXvEFj4c0e41DULqKzs7aP97O0n7qGvL/GP7a3w78L2Czf2yuo+c23yrP55oa9/LuG8wxmtCmdVHC1ah6z5OaPIr4m+JH7c/ib4tavY2Xg23v9Hkhnk3NEd32lf+WVd7/wpz9oaP8A5m3SR/29Rf8Axqvrv+Id1aUL42vCmdn9k+z/AIp9OeT70V8vf8Kh/aI/6GzTv/AuL/4ij/hUP7RH/Q2ad/4Fxf8AxFR/qTQ/6C6Zl/Z1L+Y+ofK96CmyvmD/AIU3+0N/0Nmnf+BMX/xqq2vfAH4++I9Lls7zxVZy2s3+tRb6JaceCcNH48XTH9Tpf8/D6U1jxxo/hu58m+1TTbW4/wCeU88UVU/+Fp+Fv+hi0P8A7/xV8c6p/wAE7viZr975l5qmnXUh/wCWkmobqpH/AIJo/EA/8vWi/wDgbXu0+Ccht7+LOn6nhP8An4faf/C1PCv/AEMOh/8AgRFR/wALY8M/9DFof/gZFXxX/wAOzvH/APz+aL/4F0f8O0PH/wDz9aL/AOBlT/qVw7/0GC/s/B/8/D7U/wCFs+Gf+hg0P/wMio/4Wz4Z/wChg0P/AMDIq+LJ/wDgml8QI4WaO40eVv8Ar8ryjxr8BPGHw0uVj1fRNRtd3/PSM11Yfw9yTEfwMUbU8tw1T4Kh+lX/AAt3wr/0MWh/9/4qP+Ft+Ff+hk0T/v8AxV8M/Cqw+C/iO2t7fxDN4s0TUmkWGSUXUU1v/wBdf9VXuWmfsO/CbV7CC6h8QahLb3MXmxSLqMXz/wDkKufGcCZbhX+9qT/8BJlldGme6f8AC2/Cv/QyaJ/3/io/4W34V/6GTRP+/wDFXj//AA7i+Hv/AD/eIv8AwJT/AONU/wD4dv8Aw9/5/PEX/gVF/wDGq8KeT8Np2deX/gP/AATmdLCfzHrn/C1PCv8A0MWh/wDgZFWlo3izTfEnmyabqVneRf8ATCXza8C8T/8ABNfwjqGlMuj6trVneJ/y3n2tCf8AgNeK/EX9kz4jfs7W8+saTqE8+lwz/wCtsZ/3v+88Vd+F4U4fxv7rC4r3vMdPAYap8NQ+9gNlfE/7WXh/XP2cPj7D450ONbLTdVl/dNB/5FiatX4Vf8FGbvw3b2+l+NNMuridZPKnvl+SYRf7te4/G34a6P8AtO/BX7RbL5ss1t9t02Tzf9S1dWTZXi+H8fbFq9Cp7vc2wuHq4ap73wnVfCb4l6f8WvAFjr2nyfuLn91L5kX+pl/5a11FfFv/AAT5+K9x4J+Id/4L1KRorfUJf3O7/ljPFX2lnivlONMk/s7G2pfBLY4cdQ9lUCiiivhjhCiiigAoo8+igAoqOo9S1CHR4fMurqK1i/56yy+TXZRwdar8CNLSLFFee3f7VXw9tJmjPivSY5Yf3Uis1N/4ay+HP/Q1aT+dep/qvmr/AOXEjX6nX/lPRPN96jJzXlfir9tn4e+E7GOZdbXUfObb5Vj800Nc7/w8d+Hw/wCWetf+AlelQ4JzefvRol0svrS+ye9f9dK+Pfi0njD9hP8Aag0v4ofDf7V4dWzu1l0+8ik/dNL/AMtY/wDrnXow/wCCiHgD/qN/+AlY/jj9tb4WfEvwzPo+tWerXFnc9/sn72H/AK5V9xwZl+dZRi7yo+4d+BwtajI/eb/gk1/wWm8A/wDBSf4U2cV9fab4c+J1h5Vvqehz3Xk/aZf+esH/AD0ir7Wr+Q/9hv8AaJ+Gf7In/BRj4e/ES3/4SKXwP4Xuvtd55sG+5/1Uv3Vr+mL/AIJ+f8FWfhL/AMFMrPXW+HGpX/23QW/0yx1K1+z3CxS/6qWv6IweM546nn5tlNpe1pH0lRTfmp1ekfObBRRRQAUUUUAFFFFABRRRQAUVx/jT9oLwL8OPiD4e8J6/4x8M6L4o8WS+To2kXmpQw32pthyBDCzB3z5bjIGCRjqQD2FA3FrVhXF/tHfHXRv2YvgJ4w+IfiEyDRfBmkXGr3YjRmd0hjL7QFBOWIAHBxn0rtK+T/8AgujrcOgf8Ei/j3NNcW1ssnheW2Vp7gQKzSukaoGLLlmZwqrn52IXDbtpmcrRbNcPTU6sYPq0vvZ8K/8ABvF+2n8SP+Co/wDwUo+OXxq8dKosfD3hW28P6PYQXH+heGba9vfPS0hjJBZpBYF3m2ks0IyVBRK/Y7xF4i0/wh4fvtW1a+s9L0vS7eS7vLy7mWG3tIY1LySySMQqIqgsWYgAAknFfzm/8G3H/BRX4L/8Exf2dfjh4x+JXiHUF1zxZqelWOl+HdMtPteo6utnHcN/o8fyqDuvSC0siJwozng/Zt1/wT9/aq/4LVfEa88QftH+IvEf7Pv7O+tWw+xfC3QNZH9tXsSrHNaNeKYmgVvMcSSG5VplktvL+zQ/JJHx4es/Zq2sn/Wp7maYGP1qTk1CnGyXnZLRLq/w7s+r7L/gvx+x/qetw6da/G7w/dXtxOLaKKHT7+TzZC20KpEBDZPAIyDnivsKvgX9g7/g2/8A2d/2APjta/EXQW8beM/EmlxkaW3iy9tLyDSZj/y8Qxw20I84DIDvu25yoVsMPvquql7Rr95b5Hk4xYZSSwzbXVuwUUUVocYUUUUAFFFFABRRRQAUUUUAfzp0UUV/n2ewFFFFABRRUX/LH8a0Al/1ory39ov9qrQf2fbaOO6WS81m5/1VpBL+9h/6ay12XxU+I+m/CfwHf65qE0US28cvlRN/y2l/55V8R/BP4C6x+2N491bxDql80NhDeRfa5W/1r+af9XF/u1+j8G8O4arSqZhmX8GP4ns4HB0/Z+1qmlrHiP4pftw3P2GxspY9Ehl81YIh5VpDJt/vV7J8I/8Agnl4T8L+HpF8Tf8AFRapNL96CWWGKGKvetB0S18OaFZ6bYx+VZ2MEVvGv/TKL91FUupaza6PYS3V9dWtrbw/61ml/wBTXdmHHGLrf7PlNPlh5EVcwqVPcw5ieBvhP4Z+Gluq6Lo9npu2PZ56xfvvK/6610VeP/FL9t3wN8NluIY7z+3NQt5fK8i0/wDjteHX/wC2R8TPjbqK6T4Q0b7H9qj+zt9li82X97/F5v8Ayzrkw/COb5l/tGNfL/iD6nXq/wAU+z5pI7f/AFkkUS/9Nai/tOz/AOfq3/7+18gWv7Kvxp+J9jJD4j8Qy2cFsy+VFfXn+u/65ba6uz/4JyRfZ187xzq/2jy/3vlQ/wDLX/v7WlfhXKMP7uIxv3B9ToU/+Xh9Kf2pZ+T/AMfVv/39rlx+0F4Iim8uTxTo8Tf9fcVeK/8ADty3/wCh51n/AL9f/Z1r+D/+Ccfg3R4bj+2LzVNcab/VNFJ9n8minlPDdGP73FuRPs8J/Menf8NB+Bf+hr0T/wAC4ql/4aC8C/8AQ3aJ/wCBcVcF/wAO/Phv/wA+utf+Bn/2qj/h358N/wDn11r/AMDP/tVY+y4W/wCfs/6+Yf7Id7/w0F4F/wChu0T/AMC4qi/4aE8Dg/8AI3aH/wB/oq4v/h338N/+fXWv/Az/AO1Vk+KP+CdngbWNP8rTbjVtJuPM/wBdK32itKeH4WqS5fazD/ZD2rSPGGl+I9KiutN1KzurOb/Vss8VX5reO8tpY5I4pbeaL/Vf9Mq+Q/it/wAE/bz4ceALrUtA8Sanq15Y/O9isXlf+zVnfDT9sL4gfCDwb9h1fwvdX9jYxrDBNPFLD5P+9Xd/qbSrU/b5Rieb8Cv7P5veoVD3r4q/sXeBvitCrLY/2DdJ8vn6bFt+X/rlXiXj7/gmvrGkvPdeF9ai1SLKmC0n/dTf/Gq9D+GX/BRnwp4vngtdZt7rQrp1/eyt++t1kr3rStZtfEFtFcWNxa3Vn/z1gl82sq2ccSZJ7uJV4eeoe3xeG92ofFNr4w+NX7LOozyaha6hqelw7ZZ/Pk+0W5/7a16L8CP+Chul+M9Ui0zxdbQ6LPNL8t3F/wAe4r6Zm2XMPlyeXIv/AC0WSvmX9qT9hDT/ABPpt1r3hCH7Pq277RPZ/wDLK5/65V3YLP8AJs6l9XzCj7Oo/tI1pYrDYj91VifStpeQ6pbRTQyRS29zF5sTR/8ALaKpfmr48/ZK/au1vwx4vsfBXjFvsthDH9nga7i2y2cn/LKvsOH+9/DXxPE3D9fJq9lt0ZxV8HUo1NDzX9oP9mTR/jV4WntY7XTdN1lpfN+3eR++m/6618peHdf8XfsgfG/SdH13VL230ezueV8zzreWD/nosVfefWvOfjn+y74c+PUv2rVPtkWqQwfZ4J1k/cw19Fwjxl7L/Y8y96mdeBx9/wB1VPmv9rTxF4Rs/j74f8UeHb6z1KLUGiu7tbPb/ndX2tpup/25pVvfR/uor6CK48r/AK61+ZXxP+DepfBP4lrpevQzRQJNv86Nf9dF/wA9Fr9H/hj4k03xN8O9JvtLm+1WLWkUMbS/66vf8SMHCeAoVcP7y7+Rvm1K9OLpG9RRRX4afPhRRRQAUf8ALWo6k/6aV2UfjCifH/if4tfGL4zfErXdA8MyNZ2yyyr+6XyvJi/661FZ/sP/ABO+Idmy+K/Ey2qwyfuoLy7luPO/75r6W8U/HDwX8O7G4m1LXNJtV83ypPI/13/kKvmj48/tu6p8Qtet9C+Hcl5GLxvIaby8TTSf7NfuWS4zMa/LDB4aNKnb4n+Z9FhalaotInoHwy/YC8A+D9O/4qKb+3b5/vf6V5MUNdR/wxl8Jz/zBx/4Ma8h+Gn/AATy8Sa1Yy3XivxVeaTeTfP5ELNNND/11rpn/wCCckEp/wCR51z/AMB//ttTjMZSVb38xJqVI838Y7j/AIYy+E4/5g4/8GNddD8I/AdnDHGvh3wv5UP961irxf8A4dvWv/Q8a1/4D/8A22nf8O4rH/oedc/78/8A22vLxFbBVfizGRn7v/P49s/4Vb4D/wChf8J/+AkVH/CrfAf/AEL/AIT/APASKvE/+Hclt/0PGs/+A/8A9to/4dx2P/Q9a1/35/8Asq4/Y4D/AKGMiP3f/Pw9k1j4KfD3XNNaxutC8O/Z2/1nkRxQzf8Af2vGfh38HvjV+yL8VX8UfBLxY+mr5v2j/Qb7yl/dfdilil/1lMvP+CcMNxbN5PjjV/N2/uvNh/8AtteeeIvg78Yv2XljvtF1G41LS4ZPtEn2OXzof+2sVfU8O4ulRlyYHG88u0jtwbpfZkfop/wTb/4OfPGPw7+MOo+Gf2oZpdS0a8fZHqttp+y70qX/AJ5yRRf62Kv3m8LeLLHxh4YsNY02b7VpuqwRXFpL/wA9opa/j51rx3pf7YWjtpeoWOnaD4+h+eDUPuJqv/TKX+7X2P8A8En/APg4B8df8E6YbD4W/FbSrvxB4Dhu4oori7k/07QYP+mX/PSKv1vLcwlL3a/xHPmeUxrR56XxH9J8PWiua+E3xU8P/HH4c6X4u8I6pa634e1iD7RZ3kEvmxTRV0tfR3ufF1qNWnU5GFFFFMkKKKKACvif/gpn/wAFHPE3w0+K/hP9m34Bw6PrX7SnxWjf+zZNSlVdL8F2AjkeXVbwsGDskcUzxwBXLeUWKSYjguPfP26f2xvDP7A/7K3i74q+Kg0+m+F7TzIbKOVY5tTuXYJBbRlv4pJGVc4O0bmIIU18Z/8ABvf+y78QNTsPiJ+1j8ZJrG7+In7SjW2oadBLZf6boWjRmQwxiZhuSK4Q27LAnyCG0s2LM3yRY1JNyVOPz8kehhaMY05YmqrpaJd5f5Ld/d1Pn3Uv+CSX7Rn/AATp+Bvib4neAdLb9ob9rjx7JeQah45l1KFx4C091bzZdOivXSW5vZwWXzQu5Q2xU27xN+W/gj/goj+2P/wTB+J0ej6h4q+KHgzVoZ5tXl8PeMYblobx7hHia4ktrsfvVbBZXIKl0DAkjNf15V/PX/webeH9LsP2j/gxqFvp+l2+q6h4fv1vbuKNFu7tI54hEsrBdzIm59m4kDdIABznjxVHkhzwbVj3MnzD6xW9hXgpc19bdlou1l0tY/d79mn40w/tI/s4/D/4iW1hLpdv4+8N6d4jispZBI9ml5ax3AiZgAGKiQKSAAcZwK/O/wD4O4fifpvg3/glvaaBdNI2peMPF9ha2UaSBcCFJriSRhg7kCxhcDGGkQ9sH7Q/4Jbf8oyf2c/+yYeGv/TVbV+Pv/B5T+1NYa78RPhT8G7FYpb3w/az+KtUm6tCbk+RbRDBwDthmdgRnDxEYGc9GInag2+qPNyvD82YxjHaLb+497/4Nbf+CZXw10z9izQfjh4q+Hen6p8RvEWr3N1o+sa3Al29haW8wjt5bKN8rbt5kUjCYKJSSSH2FBX6+15n+xd4Is/hp+x98K/D+n2TabZ6L4R0qzitmjMbwhLSJcMCAQ2RzkZznPOa9MrajTUIKKOHHYmVevKpLu7eSCiiitDjCiiigAooooAKKKKACiiigAooooA/nTooor/Ps9gKKKKACuL+Nfx30P4C6PZ32uef5V9LLbxeRH5v/LKug8c+L7XwB4Q1TWtQ877DpsH2ifyq+Fdc8TeI/wBvH44WulwyfY7HzG+zQN/qbCD/AJaN/vV+kcF8LxxsvruN/gxPSy7B+0/e1Rmqah8QP24fFEVx9juJdHsZ4oJPs0X+j2Hm/wAVfb/wp+GOl/BnwVZ+HdI5s7b97LLL/wAvMv8Ay1lq54J+H+h/DjQl0/Q9Nt9Nt4Y4opfKi/13/XX/AJ615h+2r+0FN8EfhzHHptx5Ot6xJ5UH/TGP/lpJXq5hmtTPcRHJsvjyUjSrivrNT6vQKH7YH7V0PwJ019BsYWn1vVLNts6y/wDHj/zylr5R+HXww+IHx717+yrebVpY2XfN9rnl+zpXffssfsuap+0HrqeLPFs15Noayffnk+e+2/8AstfckdxiFYz/AN+q9jF5xgOGaH1HBx9pX+0zqqYilhF7KHxHzv8ACz/gnb4V8MW8Fxr11da7eQy7pYov3Vv/ANcq950Hw5p/hi2WHS7Gz06CGLyv3EXlfuqv0V+ZZtxZmGOl+/keTicfVqBUdFSV866re5yhRRRWIBRRRQAUUUUAHzVFqVvHrFtLDdR/areb/WxT/voZqlqOuyjjKtL+Ew9seJfGr9hfwd470G4m0uxl0XWEikeKWD/UzS/7UVeA/s8/tM6v+zBq8vh3XbGQ6TNd5uo2j/fW/wD1yr7rrjfjR8BfDXxy03ydatY2vIYpYoLuL/W21fpGQ8Z06tJ4DOPep9+x62Fxl4+yxB0Hgrx/o/xL0j+0NDvrfUbP+8ta3nV8P69+z18Tv2UdSbVPDN5dalpcP73zbP8Aexf9tYq1fhr/AMFJdW0O5t7XxXpX2uBF/eTRfuZnrTGeH/tv9pyiqpR/EKuWqf73Dm9+3d+y9qniDUbjxxofm3lxtzqFp/y2T/pqtYn7LP7ckngfTl8O+NPtRt7P5LO8aL97F/0zkr6F+Hf7VXgX4h/8g/XreKXdsiin/czTN/21qD4t/sy+CfjejedawWuqf8/dj5Xm/wDbWvYpZu3hv7L4ho/9vHV7b937KvE7bwr4w0vxvp0d9o+oWuo2c33WgkrU/wCWtfAvxn+BnjX9kS6W+0nV7yXRbpv+PuzaWH/tlJX1D+z/APtX+Gfif4J0v7dqlrZ+IP3VvPBPJsaaWvmc64J9lQ+v5ZU9pTOPFYL2dP2uHNb9ov4A2vx+8IRafdXH2O8tpd0E/lf6qvkbSPE/xM/Yu1WTzLW6Gl3Xm28C3sTPaTf9NYq+/K84/a70+3v/ANnjxJ50KzeTD5sW6P8A1MtdXCPFFRTjleJhzxl3KwOM5P3VU6P4KfEeP4q/DDSddWPy/tEf7391/wAtf+WtdJXhv/BPfxfH4o+Aa2PkyRNo915Ukv8Az282vcq+T4qy+OFzSpQpbHHjKXs68ohRQh6V5b+0L+1DoXwOsbq1nm/4njWnm2i+X5v72uHKspr5hX+r4eJjRpVKlTlieh6x4w0vw3DcSX2pWdnDbRebL5sv+pr5G/al/a1uvih4ot/DPgW/ulsmb7PJPB/y+VwPw38AeLv23viZcahqlxLFZr/x933l/uoI/wC7X1r8GP2R/CPwRv8A7dYw3WpanD/qr254aGv1Sjl2UcOPmxEvaV+x7nsaGG+L4jxr4Yf8E2Lm5vmuvG2qcN/y72cvnSzf8Cr3T4bfs3eCvgjbedY6fBu/5aXl9+9lq98aPjtoPwV8IS6pf3UU03+qggil/fTS18O/HX9sfxN8eLW301ljsbHzP9RA3+t/3q2wdPPc+lzTl7KgOlGviV5H3B8R/wBofwn8LNK+1aprFr503+rggl86aavOR/wUZ+HxP+r1z/vxXE/Cv/gnHY+I/BVhqXiPWLy1vr+P7R5FtF5qwxV7l4E/Zg8B+ANH+wxeHdOv/wCKSe8i86bza8bFYXhfL+anW5qsjGp9Up/EcP8A8PE/AP8Ac1r/AL8Uf8PF/AH/ADy1v/vxXqv/AAp/wb/0Kug/+C+Kk/4U34P/AOhV8P8A/gvirzv7S4Y/6B5ff/wDk+tYT+U8q/4eL/D/AP55a5/34o/4eK/D/wD6jf8A4CV6t/wpvwf/ANCx4f8A/BfFUF58E/Bl/YtDJ4V0Hypo/Kk8qzihmoWY8Mf8+Z/+BF/WsL/z7OT+Hn7Zvgb4par9httQ/s+4/wCWS3n7rzq9S03WLe9i8y1uobqL/VebFL5tfPfxH/4JzeFfFG640G6uNBn27Fif99F/11rxX4B/GO+/ZC+LGpaD4ijvJdMaXybkYb9z/wBNfLr1pcM5XmNGWIyOo/aR+ydP1SjVp/uD0j9sb9jJrl7jxh4Ph8m5h/0i7soO3/TWKvNbn4jD9pXwpZeC/EtvMvjq122Xh68itPNuNVnkliiis5f/AI7X3N4W8V2PjTw/Z6tp9x5lnfxebF/02r5V/wCClNnD4T1zwrrGlwx6bq26W4NzBFsmMsUv7qXdXv8ABfFFetiI5Xj4+/E6cuxlqnsKp6h/wR4/a0+PX7Kn7d3gH4GTeJvE3hfQbjxPFbaz4cuVi/dfL+9jPm/6uv6k5v3dxLHHX4sf8E4P+Denxxf/ALRPw1/aO+Jnxfj8XS+Rb+IvK/f3F9cy+V+6illlr9p/M+0TeZX7ng4yPI4iq0p1P3QtFFFekfMhRRRQB+C//Bdb9tFf21P+CxnwR/ZPuLeaP4b+E/iB4etPEceRnW73UJrVXOGBGyG2uWjTI5eackMuzH7zRxrFGqqqqqjAAGABX8m//BwFPrHw3/4LbfFjXktbizuLbWtN1CwluLciOZo7CydWXcMOudp44wfevvT/AIJyf8Hd8MeiXmi/tM6LM91Z26tYeI/DGnBnv38whkuLbeqo21gQ8WF+QgqCQT5tHERjUkp9/wAj6rHZVUqYSjLDq6UdV1u7NvzP3Wr+fP8A4PO7JZP2ifge8e155vD2oR+Wr7nwLmPb8mMjJYgHJzgjAxz9lP8A8Hcn7KSsR9l+KjYPUeH4Of8AyZr4a1HxN4m/4OUP+C2vhjXvBWn+J9N+CHwn/s+S4v7rEH9kWMUpuJHb70aXl3Orxxou9ysSsQUgkZNMTVhUhyQd2zHKcHWw1f6xXi4xim236WP3L/YB+H2qfCT9hD4J+Fdct3tNa8M+AtC0nUIHRkaG4g0+CKRCGAYEOjDBAIxyBX4sft4fsT+JP+Cwn/BxV4l0XwLprR+D/hd/Y1j418RX6eZp1ksCLJKgGBvlcl4Y4Mku0UjErEHdP6A6K6KlFTiovZHl4XMJUKk6sV70k16Xe/mFFFFbHnhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH86dFFFf59nsBRRRWgHzP/AMFMfH+p+E/A2iaRZTTRWWvSz/a/9vyvK+X/AMi13H7E3wl0j4b/AAb03UIfsVxqmvQfaLu+SXzcf88oq6f9ov4I2/x6+GV5pM0nlXkP+kWk/l7tjLXyp+zd+0H4n/Zt0zVPD954Y1LU7fz98UZ82H7NL/FX7XlUVmPDn1LBz5akfi8z6ClarhOSJ9uatrFn4ftpZry8tbO3h/5azy/ua+GvEurN+2D+2LZ2Jeb+x1uxZRfL5vk28VUPjJ8Q/H37Vvi610+10PUbWGESRWtjbxS/vovvfN/z0+7Wd8FPil4o/Y38Z6nDfeH/AJbqWOK7W4i/ep5X8Mb/APbWvd4d4VhllCpUpSUq7ibYPBqjS/vH6C2VnDp9hFb2tvDa2dtF5UUEUX+piqSvDdM/4KA+CNV8JXt1HJJa6pp9p9oitLv919pl/wCeUVVfgjf/ALVH7Sfiy80PwX8KtS1a/trT7bLBHpMv+q83/wC218JR8P8AOMbVlWre6efTymvUd5H0B+8/5Z0bJK4fQf8Agmh+318Z/ippOm/8K51/wjDfy/Z2vJ7TybG2/wCmsrS17N/xDrft4f8AQ0eFP/BnBXfT8J8Y/wDl7E6v7Ckcj9n/AOmNH2f/AKY113/EOb+3h/0NnhP/AMG0VL/xDpft5f8AQ1eE/wDwbRUf8Qlx3/P6If2HI5Dyv9qjy5P7ldVN/wAG7X7dlujNJ4s8IRxJ/wAtW1OCvzN+KH7R3xK+F/xD1vw5L42h1aTRbtrJryxlWa0uPK7xS1f/ABCTGf8AP2If2FI/Qj7P9n/eVDvj/wCekP8A39r809X/AGtfiB4k0uS1ute1Ca3ZdjbRXUXms+D1/Z0t9Yj+Kni6T4lbtknh77JOLNIvM/5+P+uVdmH8I5f8v6wU8h/mPv7UtYsdHsJbi6urW1t4f9bLLJWX/wALd8K/9DFpP/f+vy3v/H2uatbtDc6vqM0Dfwy3DMtdD8FPgN4r/aH8T3Wj+E9MuNWv7Gzl1CdY5PuQRffavRpeEOF/5eVjop5DH+Y/Sb/hbfhX/oZNJ/7/ANL/AMLU8K/9DJpH/f8Ar8o3u5I3273/ADqOO7f++fzrX/iEOD/5/f195X9hUz9X/wDhbfhX/oZNJ/7/ANH/AAtvwr/0Mmk/9/6+Bv2Krj4Tz/H7Sbb43J4k/wCEBvv9GvJ9GlSK4sPM/wCW/wDtKlf0CfDb/g1D/ZN+MHgfS/FHhnxn461jQdYgS4s7y21OBormJv8AtlUf8Qmwf/P5/d/wQ/sKmfnv/wALc8K/d/4SLSdn/XzXG/EHw58J/imkn9sXHh2WWaPyvPilihmhi/6ZV+qn/EHV+zT/ANDB8Rv/AAYRf/EVIP8Agzs/ZqP/ADMHxG/8GEf/AMRXfgvDmOEqc1DFyHSyV0/gqH4heI/2J/hneaxLNpfj6HSYv+WcBlWbyf8AtrXjkfi7xP8Aso/Ey3uodUivl3fupYrv7RDcxV/RB/xB5fszkfN4g+I//gfF/wDGq+Nf24P+DPDxh4G0rVtc+DPi618UQQ3Ja10O+j8m4S32/wDPX/lpJX2dHK2qfssVL2nyPRp4X/n7I+Y/hv8AGzwh+2N4EvtHkjlilmj23djJJ++/66xV84/td/ssxfs96vY+IPDsly2kzy/6lpN0ts3+9VL4sfse/Gz/AIJzeKPDWsfEbwZ4i8B/2rc/6G14vk/afK/1gFfbP/En+Mfw4T/R4rzS9es/O8uSvgc2p1OHMVGpR/gT3ieTW/2SrzfZON/ZZ/aOtfj34Kjk/wBHtdUsP3U9osn+pi/5613njzw1H4n8H6ppslvFeRXMEsXlt/y2r4X13Srr9ir9o+CS1umvbWH52bymiimik/5Z19x/D7x/p/xL8J2es6XJL9hvv9X5v+ur4/ifKFgsVTzXAfw5a+h5+MwvJU+sUj5D/YM8fX3w3+NGpeDtQ/cW+oM0Uqzt/qZYq+06+Rfjv4Bh8Kft1eG7uPy9mt3UVx5UUXk+TX19ef8AHzJWfH3sqzoZhD/l5EM219nVG/8ALOvnPxt+yrqfxL/axl1zWLH/AIpdX83c376F/wDplX0dRXyWR8QYnLeaVD7Whx4XEOkUPDfhfS/A+nfZdH02102z/wCecEf7qvLv2l/2p/Dvwx8D3kNrdWuo6pfxy28EMEn+pql+1t+1dY/BzQbzQ7Gb/ipZoPl/dfuravIP2Qf+CQ3xu/bx8Map440fSbXQ/BVnFPd3PifXp/sOl/uv9b+9av0vhHg2rjp/2pmZ62X5e6372uc9+zT+yHcftI+H7zXNY1i8srGGXyoD5fm+dX1H8Pv2QPA/gTw1Bp8mg2erTQ/6y7uYv3s1fKPxb1zxd+yJqGn+FtD+KfhjxdYRwb1k8OX0V9aW3+z/ANdK5n/hrj4qf2P9uXX9S+wJLt83yU2eZX2OfcO5vjZcmEr+zgelisFWnpSkfoho/hOHQ7+eaGS8l+0/8sJZP3UP/XKr2P8AZr81f+G0PiQP+Znuvyjpf+G0PiR/0M1z/wB8x18NiPCvH1qnPOtE83+wp9T9Kcf7NZfiPw5faxcWc1jqUunXEMn/ADz82KaKvhn4KfHv4hfF/wCImneH7j4kaR4TiuT+91PWZYrextv+ustfenwX/wCCKn7W37SHg+18QeA/ip8OfFmjXibo7zTddgmp4fwrx1GXPGrH+vkH+r8ib5qi/wCW341N8a/+CE37e3wg8DzaxDPZ+LXhZV/s/RbqK4u5v+A18saL+1341+BHxcuPAvxf0WbQ9S0tvsV8LmDyruzl/wCerVxY/wALcbSp+1pS5jGpktSHwn1MBmvG/wBsj4B6X8WPhxf6pJDL/bejwebBPBF803/TKvTvBPjzR/iFo/8AaGg30Go2fm+VuX/nrWlMn2m2uI/9X50UsXm18hlFXGZTmEZP3Tz8L7XD1z49/YX/AGq7HwXaQ+DNd8/99ebbSUR/6n/ervv+ClGj2tx8E7G6kt42vLfUfJiaT/XJF5VfKvx7+HOsfs7/ABlnh87/AEi3n+1WlzFXpnxr/af0/wCL37K+laPdX00niexvIpbvz4/9d+6r9uqcPwlmVHN8H9r4j6Kpg/30a8D+r79hv/kzX4X/APYs2f8A6Kr1SvK/2G/+TNfhf/2LNn/6Kr1Sv2Oj8B8Div40gooorYxCiiigDzf9qD9kL4Z/to/Debwn8UfBujeMtDmB2xXkZWa2JKktBOhWaBztX54nVsDGcV8tf8Q0H7En/RFf/Lw17/5Nr7toqJU4Sd5JM6KeLr01y05tLybR8Jf8Q0H7En/RFf8Ay8Ne/wDk2vqX9lX9kT4b/sRfCODwL8K/Cen+D/C8FxJeG1tmkle4nkxvmmmlZ5ZpCFRd8jswSNEBCoqj0iiiNOEXeKSCpi69RctSba822FFFFWc4UUUUAFFFFABRRRQAUUVDf6hBpVhNdXU0Nta20bSzTSuEjiRRlmZjwAACSTwAKAJqK+Gf2Qf+C93wa/bL/br8Z/Bvw1qMMdro8ECeHNenmVLfxZdh5Vu47cHB2r+48pufN/ekYHl7/uaphUjJXizath6lGXLUVnv94UUUVRiFFFFAH86dFFFf59nsBRRRQAUUUV1UcXVpfAwADNU9d8Paf4jsPsurWNvqVv5vm7Z4vNq5UddFHMsVGpzqoy/bM+b/ANpf9hWx8YaPHdeB9Nhs9W+17p4ml8qJ4pa9E/Z9/wCC3P7Xn/BPa+0i11e+n8XeF9HvJ/Ntdai877fui/1Xn/63av8A7LXqFV9S0u31exltbq3iurOaPyvKli86v0jI/E7FYan7LEx5onr4XOpU/cmffH7Hn/B218EfHfwLs7z4xfbvBnjqG5kivrGwsJbu1mH8EkUq/wCflr7z/Y5/4Kh/BP8Abq8Hf2t8PPHGmXxSJpp7G5b7NfWcfmeVulib/ar+dLxt+yT4C8Z6NLYyeH7XTv8AlrFPafupq8P8S/8ABPHxP4DnuLrwT4nuom8j96sU8tvNcN/zy/dV+mZTx/lOM+J8p7FHNqNQ/soR/MFY/ivxXY+CPDV/rGpTR2thpsEtxPM5+SFI6/mf/YD/AODjv9oH9iLx9p/gv4yN/wAJl4Rmu/s891rHy31h5ssXmz+b/wAtVii3fuq/Sr/gub/wUx8J+Nv+CIPirxt8KdWs/Fvh/wCIlzF4U+3QT+U9j5vm+ZL/ANdR5VfY0+Wp+9pHrU2fkH/wUr/4OMfjv+0/8UfHeh+D/Gl14d+GV/qRi0iDTIvs1x9jil/dP5v3/nr830uJNV1LdNIzNcN8zVXl/wBdRD+7mrUD+yb9ij/gl7+z/of7JHw1hX4S+CbySbwvY3Dz32mRXFzLLLBFLL5kv++1fza/8HAfwH8F/s4/8FVPiZ4X+H+n2ukeH45YLv7HaS+bFbTyxebKq/8APP5/4K6z4S/8HMX7VHwW+DGk+CNL8TaHNY6HY/2fBeXlj5195X/LP97u/gr4V8e+PNY+KPi3Ude8QaleaprWqTNcXl5cyb5bmWgDnc5q1b3EkD/u5JV/3JKq19af8Ecv+Ccjf8FPv20NH+G9xq8eiaSsEup6lP8A8tvssX31i/2qAPk+aPmiv6zPBf8Awa1fsi+BvF+l60vhjxHqU2mzxXH2XUNV860n2/8APSLb/q6of8FVv+CEf7O/xI/Yl8aXXh3wXo/w98QeGNPuNbs9Y0iHZN5sUX+ql/56Ry0Afym6bpdxrN9Ba2scktxcNtijX+9X7y/8G0/7evxp+B37TWg/sd+PvC8em6PDFealENQj8m+0pfs8t35f/TXza/BW2u5LSdZo5GEq/N8tfrv/AMEBv2n7z9q//guh8PfEWpWP2O8sfCH9i/6/7Rv+x6c8W7f/ALdAH9PeKbsp1FAEM0dE0dTUUAfnT/wcZf8ABNvTf26P2ItU1qz0nWNV8ffD+3lvfD8WnfNLct3i8r/lpX8/37CPxO1zw34g1D4ZeJrWazv9Hll8u0nj8qW2li/1sUtf2Iyn901fyQf8FJfhp/wxr/wW38ZaXa6wbyDUtY+3S3NzH5P/AB+f61a8PiTLqeNy+pSmcWNpe0pHZ/tFfCjTfiv8MtWtZrGKa/hg82CWKL97DXzf+xP8c9U+FnjaH4caxp32eK5vv3jS/upraWvs7/j3eVo/3tfHP/BQf4N6noHjZfHWjw+VZ/uvPng/1sUv/PSWvyHhHGU8VTq5HjftfCfP5fV9p+4qmh/wUN8PalpvxW8I67b/ALuDCwRTxSfxbq+r9H8yTQ7Nv+e0EX/oqvEvg2mhftifBTRLrXlupL/QZPJl8qb/AJaf89Za9vs/9Ht4o4/9VDF5UVePxhXhTwtHLZfxKJzY6r7vsP5SWHzK4344/GvR/gj4QuNS1Cby7hv+POD/AJazS1veNvF9j4A8MXmsalJ5dnYx7pa+Sfhl8EfF3/BXT9uHS/AngKOSFdV5j+0n91p1vH/rJangXhOWY1/rGI/hxNctwXtpXZ7Z/wAEZv8AglT4p/4K7ftNr4v8VQ3Vx8MtF1P/AIqC8W5WGY/xrEldH/wcRft5axB+0xffs+/Du+vPBfwj+GdpFoS6Dpkvk2N5LF/y1l8r71fsnrPib4L/APBtn/wTZ0rQ9SuLzVvvQfuI4hfa3eSxfvJf92v5W/jp4/8A+FrfGXxV4kj+0eTr2pXF8vntulKyy1/SFKMacOSB9jSpWR9LfsWf8EJv2iP28fhEvjbwF4UtZfDk03kQXV9fxW32z/rlurw/9pf4MfEz9jnxzq/wo8fW+paLdaTd/aJ9LaX/AEeZ/wDnr/00r+jj/g2+/bu+EPhr/glz4Q8L6x4+8O6Tr3h+eWDULS+vPs80MklfjP8A8HJH7QfhH9pD/gqL4q1zwVrVrr2kW1nBY/abU/uvOi/1lM0PgWiitrwd4I1T4i+J7DQ9HtLjUdU1KeK3tbaGPe80klI0Jh8OdcbwDJ4mXSb/AP4R9Lv7E195f+j+f/zy3V7t/wAEz/8Agpz4+/4Jl/Hyz8X+FLua70t5BFq+jPJ/o+qwf88q+tv2df8Ag2j/AGxPjD4dvPCGtQ2/gHwhui1XydVvP9HuJ+2Io/8AlrXzH/wVD/4JG/Er/glH4y0PT/G8+l6lZ+JIPNs77TZD5M39+KgzP69v2V/2hdC/a4+Afhf4heHbiOXSPE1nFexbZN/lN/FHXzZ/wUD/AOCFfwQ/bz1bxR4u1zQSPiRrGlfYbTVXu5UhtpfK8qJvKr4o/wCDNz9rW48dfATxt8KL6bUbi48LXcep2Zk/497a3l/5ZLX7aVoZn803xZ/4NUv2pvgK+jR/DXxbpPi63dvNuo7TUvsK2Ev/AG12eZXx98afH/7Q37GHjLU9B+Jfg/VbW8hgk+e9tJUTy/8AVebFLX9jHl1yfxM+B3hX4x6Ddab4o8P6Nr1lfQ+RcxX1ok3nJXnV8twmJ/3imYyw9Op8R/ED8Q/2hNc+K3haz0fWntr/AOxyfuLuWL/SIV/55b69w/aY/wCCSvxC/Zk/Y48KfGjVNW8K6toPiqfyvI0nUlu3tov+WUsu3+/X64f8FG/+DQvTvil8RrrxT8C/EWm+El1K582fQ9Qi/wBBsV/6ZNX5e/FPwt8Uv+CH37T/AIq+G3j7T9H8aaXrHh+40yXTLyV7jTL+zuYv3U8X/PKWJ/Lkrtp06dOPJSNqdOMT+g7/AIIo/tteGv22/wBhPwveaDa3lhdeDIItC1WCeP8A1M8UVfXlflL/AMGjnh6+0r9g3xhfXFjdWdnqviiW4tPNi/cyxeVF/qq/VqvosL/DPzDN6dOni5coUUUV1HnBRRX5V/ts/wDB138H/wBlX9ofVvAfhnwjq3xRt9BVoL/XNK1SG3sheLkNBCWRvOVSArSghc52hwMnOpVjBXmzow2ErYiXLRjdn6qUV8R/8Edf+Cgnxw/4KS+Hte+IvjT4W+G/hv8ACa8LJ4SZbu4m1bVmEvLkuFR4EQFTKEjDyD5QQG2/blVCSkuZE16MqM3TnuvO4UUUVRiFFFFAFfUtWtdGt1mvLm3tIXljgV5pBGrSSOscaAnjc7sqqOpZgBkkCrFfzVf8HJn/AAVX+LPin/goRf8Awv0XWLzwd4V+Ces2V9pMOnTtHNd6nHHDcx6jMw+88buPKX7qBcj5mJr+gH9hf4qax8dP2JPg7438RTRXPiDxl4H0XXNTmiiESS3VzYQTTMqLwoLuxCjgdKwp4hTm4LoelistnQoQrSfxdO3VHqlQ3+oQaVYTXV1NDbWttG0s00rhI4kUZZmY8AAAkk8ACpq/Gn/g73/bl134RfBXwL8GfDOqavpEnxDNxqPiB7V1jjvdNhxGtq7Y3lZJW3MqkArFhtwbAutUVODmznwWFlia0aMep+sH7O37RXhD9q34S2PjrwHq0eveFdUub21stQiUrFdm1u5rSV0yBujMsEm1hwy4YcEV21fKf/BDn4Vf8Ka/4JIfAPSPLtY/tnhS313FvI7of7RZ9QyS/O8/assB8oYsF+UCvAf+CsP7b/i79pv40x/sW/s06lfL8WPEiCTxt4ns3KWfgXSMKZ/OmVWZZHSRFJQqymWNFYyyqon2loKUt/1NFhOfESpU37qb1fRJ7s98+If/AAXG/ZN+FfjXVvDuufG/wla6xody9nfQRLcXIhmQ4dN8UTIxUgg7ScEEdRivWPj58ONB/b0/Yz8XeE9I8TQr4e+KXhi60y113TSt1GkV1A0azoMgSAbsldwyAVyvUfiN+3B/wZ8eNvBdtp2ofAHxjZ+NLaDTkGqaX4ouksNRnvRtDPaOkYgMT5ZhHM6GMLjzJS2R+Z3ww+Pvxu/4JfftQr/Zeq694H8dfDfU57O50q5k8y3hlBKTwSwEmKSNwTkjKsCGVvutXJPFVIO1WOh7dHJsPXjz4Or7y11/y3Wvqd9+3x/wRn/aB/4Js+Mr5vE3hTU9a8M6RBDqI8a+GbS6u9ChR3CIZLryl+zSrIQhSYI27aV3KyO30n/wT1/4OmPjR+y3qWk6J8TI4/il8P8AS9LOnw2ZEdpqtuyL+6kW72kyYICsJAw2njBUZ/Ur/giz/wAF5vD/APwV1l1z4Z+N/Bun+GviFZaM97d2cT/atG8RWeUhuDEkoLRkGZQ1vIZMoxIdgHC/kB/wUh8A/Drw9/wcSL4L1Pwr4T8N/CXR/HXhvSr/AEXQ9Fi0uxTSn+xPdqYrONGZnWWYs4BkO7APCgYSgqaVSjLRux6dKs8TKWFx9Jc0Vf8A4bzfkz9B/B//AAeZfDXV/GGn2usfB3xho+izS7by/j1eC6ltU5+ZYRGvmHpxvXr1719Q/AH/AIOY/wBkj483U1tJ441TwTeLcRW8EHiXSZbc3jSEgGNofNTaCMEuy4yD05rH+M3/AAay/sefFPw59j0fwb4m+Ht810LhtT8O+JbuS5ZQGzDsvmuoBGSwJ2xBhsXDAZB+ZdJ/4MwvBdj8ZYdSuPjj4gvfAcWpee2hP4bjTUprMPkW7X63ITzCuFMq2wB5IjXgDq/2qL6P+vkeLbJ6kdOaD+//ADP2a8G+NtF+I3hq11rw9q+l69o98Ga2v9Oukura4CsVJSRCVbDKQcE4II7UVR+E3wn8N/Ar4baL4P8AB+i2Hh3wz4dtVs9O06zj8uG1iXoAOpJOSWJLMxJJJJJK7lfqfPytf3dj+fWiiiv8+z1gooooAKKKKACiiigAoorjvj/qGvaP8J9WuvDkcsusQxxeRHFF5s3+tr08qwf1vExw9/iNKdP2lTlOxoIxXzH+yh+2XJ4gv9W0bx1qkNnfW3zW08/y/wDXWKvpizvIdUsLe6hk823uYvOik/57RS16+d8M4vKq3LLY2r4WpRqHm/7Tv7Otj+0N4SW3kk+z6tY/8g+f/wBpV8f3nxI8dfsx+BvG3wp1HbfeFPE237Xp00kj2SXkX+qvIf8AprFX6Gf8taxPHfw38P8AxM0r7Drmm2upReV5UXmRfvof+uUtfU8JcfVcu/2fF+9TOzBZs6fuVT8l5OtESc19T/tY/sSTeG/EdrdeC9HvLjTr6Pa0EX73yZa+a9f8O3nhvVZ7K/tZbW6t+JI2X7lfveV5thMdR9rh5H1GHxVOsvdPuL/gib/wRZk/4K933j63j8cR+Df+EJhs5fmtPO+0/aPN/wDjVc7/AMFov+CSsn/BIv4zeE/CLeLk8YP4m0iTU/Pjtvs/k/vfK215j+w7/wAFLfjF/wAE8Z/EEnwp8RL4fk8TRwJqDNB53m+V9z/0Osv9tr/goN8Uv+Cg3jXSfEHxR17+3tU0G0+xWcqQeT5MW/fXcdR4TX6pf8Gh2qWunf8ABVtY5riK3kufDGoxReY3332V+VtdP8N/iVrnwe8b6Z4m8M6peaN4g0edbixvrWTypbaRaAP7ya/Pz/gvb/wVZ+Hv7Bn7K/iDwrqc0Ws+OvHmlT6fpmiwS/vkjli2+fL/AM84q/Ba8/4Ob/2xLxWX/hZEUW+PZ+70+Kvin4v/ABo8VfHjxdP4i8Ya9qXiPWbn/WXd9P5spoK5jlv+WP4V+lP/AAag/wDKYnwf/wBgzUf/AEllr80a/XD/AIM/vgBdfEj/AIKQX/jSPUobWH4faHPcTwN/rbnz/wDR/wD2rQSf1GUUUUAFFFFAEc3+pr8Cf+DxL9h/VP7T8H/HbQ7WM2NnH/Y+teRZ/c/55Syy/wDjn/Aq/fab/U147+21+zLof7YH7LHjTwD4gs/tVjr2lTwxHy/Omil8o+VJF/tUWvoB/Nf+zD8S4fid8FtEvvtHm3kMH2efzf8AnpFXS/E7wYvxD8A6poc0nlLqUEq/u6+YP2Ydfvv2Vv2ifFPwv8TWV5pkz6g1kft0X2eaFopf3X7r/br68/6Z1/N/FmX1cmztVqWzdz4nMKEsPXvA+Mv2DdQvPhr8e9Y8H3lvJ5tz5sL/ADf6kxV9mw/va+adC06Yf8FE7648mbyfKl+by/8AplX0lU8fVKVbF0sR/NFE5h+8lGZ8F/t7/GPVPE/xavNEjmms9M07/R/IWX909f0o/wDBv9/wSi+Hv7Dv7Lfh/wAcWNvFrfj/AMc6ZFe32tTxfvoYpf8AlhF/dir+eL/golqen6x4s0Xw7oNjZtrl9Or3PkQ/vpm/5Zfva/rS/YM8N33hD9jT4Y6VqVrLZ39j4cs4p4Jfvwt5VfuHC/s/7Lo8lPlPrMArUIn8wf8Awct/tWJ+0L/wU48a6bo+qa9J4f8ADflaY1ldzt9nhuov9bJFFX52+f7V9K/8Fjf+Unnxu/7GWf8A9kr5qr3j0qYfu3NFfol/wQC/4JFeC/8AgrF8RPHmj+MfEGuaFb+FbGK4gbTYg+/fLXkf/BaD9gTw3/wTh/bd1T4Z+F9U1LVtLsdPt7vz76P97uloJPkmv0W/4NevhfofxM/4K1+EI9c0+PUodHsbnU7Te3+puIv9W1fnTX2J/wAEPf26PC//AATz/b98O/ETxlb3l14dhtZ7K8ltI/OmthLx5u2g0P7IP9ZX4F/8Hsv/AB8/BP8A653lfaH/ABFcfsf7/wDkavEH/gonr8V/+C+H/BVbQ/8Agqn+11ocfh3VLmw+FvhbbZafc3kHXzP9bdeV/raDM+sv+DJr/kufxo/7BNn/AOjZa/oqr+eX/gzK06x0f9pb452um3n9o2MOnWaQXflbPOXzZa/oarQzCiioZpP3LNQBV1LVLfQ7OS6upo7e3tl3yyt8qItfyGf8F5/GmuftH/8ABU74zX0muQa3pfhK5ltLOQyr5MNnFL5UUUW2v15/4OUf+C0mk/s1fCLVvgj4LuI9R8Z+ONK8m61G2miuIdKtpPklil+b/WvFX4w/si/s2TaT8MvEHjPxBJ5n9r6RcfZrOT9950Xlf62WvPzLMqOCo+0qmVSt7M/dL/g2J+O+l/Fj/glp4d0PTftS3ngO8n0rUPNj/dbv9b+6/wC/tfodX5M/8GhPl/8ADDnjzy/+hul/9FRV+s1fW4J3ppn5tnn++SCiiius808j/b7Gln9hv4w/25qt1oejjwZqxvL+2uDbzWsQs5SzLIOVOPTn05r8H/8Ag0S/Y78N/tB/tHfF3xh4u0Xwx4o0Twb4ctNIXSda0uK/Q3OoXJljuUWVWVWjTTpkzjdi4wDjNftR/wAFjf8AlFV+0J/2Ieq/+kz1+WP/AAZUaraw6n+0jYtcW63lxF4anitzIBLLGh1VXdV6lVMkYJHALrnqM8NazxEE/M+gwMpQyyvOL1uvzX+Z+7mm6bb6Np1vZ2dvDa2lrGsMEEKCOOFFACqqjhVAAAA4AFTUVwX7TX7TXgn9j74J658QviFrlt4f8L+H4fNuLiU5eVjwkMSDmSV2wqouSxIFdzaSuzwYxcnyx1bO9or+fPxr/wAHmvxCPxGvn8OfB/waPCK3p+xw6le3P9pSWocY8ySNvLWVkBztRlUt/GF+b6e/ZZ/4O8vgx8afizYeG/HPgjxJ8MdP1adLa3124v4dQsLZ2bAN0VWNoY/WQBwvVtqgsOWOMpN2uepUyPGwjzOH3NM/W6iszwd410f4h+HLfWPD+raZrmk3m/yL7T7pLq2m2sUbbIhKttZWU4PBUjqDWnXUeTtoz+XH/g6m/Znvvgh/wVT1rxW37zSPirpVnrtmwOfKkihSzniPfIe3EnpiZR24/Qb/AINCf21b74sfs2eNPg/4g15tQv8A4e3cd/oNpNG5ltdLnG10WT7hjScEheGUzHqCNvzv/wAHnu7/AIaM+Cf+q8v/AIRu/wAY2+Zn7Umc/wAWOmM8Z3Y53V+df/BJ/wD4KA6r/wAE1v22fCvxItTc3GhLIdN8S2ELf8hHS5ionTGQGdMLKgJA8yFM8ZrxnUVLEt9P8z7yOHljMpjH7VtPlovvSsf2SV/Ph/wefTbv2i/glH5szbfDl+3lEfu0zdJ8w56nGDwOFXk9v378D+NtJ+JXgvSfEWg39vquh69Zw6hp97btuiu7eVA8cinurKwI9jX4Df8AB5+JP+Ghfgjlrjyv+Ed1DapX90D9pjyVOeWPGRgYAXk547sd/BfyPnuH9MdFPz/Jn6yfsgfF2z+AP/BE74T+N7+6sLO18J/BbRdVeW9k2W4MOiQOoc5BwWAGAcnOByRX55/8Gl/wN1j43fEX45ftZeMNbm1TxL4q1O48IovnsWklla11K/mmRkPBZrFYisnAWcMv3DVT/gsx8ctV+F3/AAbLfsw+HdLkmhj+IHhzwfpWoSRzNHm2i0RLoxkD7waSCLIPGAeDxX2N/wAGxnhzT9D/AOCK/wAJrqysLOzudYudbvL+WCBY5L6cazewCWVgAZHEMMMYZskJEi5woAiL5qsY9lc2qRdHBVaq3nPl+Su/xsffVfPf/BR7/gm58Ov+ClHwB1bwj4z0XTW1r7HJHoPiIWsR1Lw/OWRw0E7IzojPHGJEXiRAQexH0JRXZKKkrM8KnUlTkpwdmj+U/wD4N4fBN58NP+C+fww8Oai1u2oeH9Q8SabdNbyeZEZYdF1ON9jD7y7lOD3GDWD/AMHHfhXU/A//AAWd+MEt1FNanUbjTdSspRkebE+nWu10PsysuR0ZGHavZ/8Aghpo8fxB/wCDk281pbjC6Xrni/Vk2RjbceZDfQY+8doxcbuC33QMnOa5v/g69/5S66x/2K+k/wDot68Vx/2f/t79D9AjUbzNedP9bn9PfhLxVYeOfCuma3pVwLvS9YtIr6znCsomhlQOj4YAjKsDggEZ5FaFeO/8E9fippHxs/YW+EXijQpJpNL1XwlpzRecjLIjJbpG6MG5yroyk8g7cgkEE+xV7UXdXPz6pHlk4vowoooqiD+dOiiiv8+z2AooooAKKKKACiiigAo/1c1FFbUazpu6A+a/2ov2DrHxlaXWueEoTb608nny2Y/1Vz/1yryz4dfti+MP2fNcsfDPiaH7Vpekf6PLayxfvRFX3HmvJf2qf2VdN+P2gfarXy7fxFbRZguf+e3/AEylr9a4Z4vpYmEcvzf3o9+x7WDxntP3Vc9K8IeMNP8AG/h+11TR7qO8sbiPcrLWpX58/AX49eIv2TvH9xpOrwz/ANneZ5WoWMv8H/TRa+6/h98TND+Keg/btB1CPUbeH/W7f9dDXh8WcH1cvqe3oe9SZzY/ASh7yNvzPLh/1nlf9Na4T4pfs2+EPjDP52t6Z/pn/PeD91LNXd0V8jgs0xWCqc2Hk4nnUsU6fwngPir/AIJ0+BtY03y9Nk1LSZ/N/wBfLL5teK/FT/gm54m8N3+7w3Iut2b+nySw/wC/X3RRX2WXeIuaYb+JLnPRpZtXpn5p+PP2NvHfw48NT6xqejm3sLb/AFkvmfcryvyzE3zV+u2r6Na+INKuLG+hjvLO4i8qWCX/AJbV88/tGfsEab410ixk8F2NnpN5bN+/iaX/AF1foXD/AImYbFy9hjPcf4Hr4PO6dT+KfBOf9mnV6d4y/ZM8ceA4bi4vtBv/ALLbS+V56xb4mrir/wAFappds001jdRwf3mjr9MoYzC1fgqI9r20GY0P+uSv6bv+DTr/AIJwa9+yp8EvFXxK8a6DLpGvfECK2TSJ/tO9LnTG/e/6v/f2V/MvDH++X93/AMtK/sb/AOCS/wC3V8JPiR+wr8NdN0n4heF7i/8ADOg6dpOpQNqMSS2139nH7o1sbH2vRVeG7juIVkjZWV/4t1O+0J/eWgCaioftCf3lrN8UeMtL8FaHPqWrahZ6fY2a7p555diR0AagGKK/HX/gsV/wc2aB+zboOj6P+zvrnhPx14kuNQlt9VnZvtEOnrF/D5VflzN/wV3/AG8vipf32vab438WQWeqzs0UEFhF5MP/AEyi/dVy1a9Oj/FkY1aqR9Af8Hbf7NFx8Ef25fB3xf0/7UsHi6zSGZvsn+j289r/ANNf+B14b8N/2tvBnxAuNH0+HWll1y/iih2+V/y1rzH9oT4uftbft5aDYeFPib4j17XNEs7n7RFFqaxRQwv/AM9a8t8X/sI+JPhL8M7rxPJq9vHqGnS7/Igk/wCWX/PXdXx/EWFynNeWjXre902PPxfsK3xH3h9jt9/mRx2vm/8APWKKuG/aR8d3Hw0+Cutavax/6Yq+TF/0xri/2BvH9x43+CXl3XmtPo8+1p5JN3nV634p8Mab460GfT9YtY7yxuP9ZA3/AC2r8PqUIZXm/sMX70IyPnPZ+wxJ47/wb8/Bb4b/AB6/b0sPEXxa8daPo9n4JP8AasNjq0v/ACGGjx/y1PpX9YXw2+I/hv4qeGrfVvC+safrOlzcRXFlP50Rr+S3xN/wTZ8GatY3n2G61KyvW/1Tyt5sSVofs06Z+1B+xhLeWvwt+Jt3oNjc/ufIivN0P/fqX/VV++ZdxhlGJX7qpY+po5jQmeI/8Fhv+Un/AMav+xjl/wDaVfMgXNeo/H7RvHnxB+MPiHWPFg1HWPEV/eSS6heiH/j5lriT8OteH/MJv/8AwGevpo4qhLXnR6FOtSOs/Z8/a1+JH7Kmo3918O/GWueD7jVIvKu20+XZ9pWs343fHnxh+0h4+m8TeOte1LxRrs0axSX15JmZ40rE/wCFd67/ANAe/wD/AAHaj/hXeu/9Ae//APAdqr6xS/nX3le1pGJRW3/wrvXf+gPf/wDgO1H/AArvXf8AoD3/AP4DtR9Zpfzr70HtqRnWcEctxBHL+7j8z95JXWfHjwn4V8IfE/UtP8E65N4j8Ox7fsd9LB5Us3/Aaxf+Fc69/wBAnUP/AAHevqr/AIJ+fGj4S/ssTrrHxE+AmsfFLxFbz7oPtk/lWMPzfuv3X/PWl9Ypfzk+2pH7bf8ABp3/AME87j9mj9k+++Kmv291a+JviV/qIJfk2Wcf3Plr9cK/n1+LX/B3f4/uPhnHpnw7+CcfhfVIZYkgnvP31vDH/wA8/KrxLXv+Dpr9r7xjol1o9n4e8O2F5qUTW8VzBpMvnQs38UVR9YpfzGPtqR/Tjd3UdhF5k0kcUQ/ilk2V+FX/AAc5/wDBX6LS77wv8PfgV8Wr7T/GGj6hcWviWDRZf+esUWyJpa+CfiF+0J+2l+1X4AXTfF3xU8SR2cNz9oitpLz7DNu/3otlcr8Df2BrXQdV/tzxrdf29qk373yPN86Hd/z1ll/5aV4eY8W5bgqcpuoctXMKVM574P8A7Busa/4vg8TeP9U/tbzlW4lhkuJZpZpP+mste2/tH/FPS/gh8I7y6urWT7PdRS6ZBBB/yxlliq78cfjfpf7PngldU1KG4uo5v9Hggi/5614n+xp+xH8Wv+CyXx8hht7fV7Xwj9s+z6hrSwSzWOj/ALr91XwuTYPH8R4yOOxn8CPwnj0/a1ant6/wn6/f8Gnfw/1zwH+w54v/ALc0jUtK/tbxHJe2n2mDyvtMXlRfvYq/VCuV+Cfw/k+D/wAHPC/hOS8/tH/hHtMg03z/APnt5UVdVX77hafs6dj5PMq3tq8pIKKKK6zjPAP+Cq/grVPiN/wTU+O2h6Late6pqXgfVYraAOqGVvsrnALEDt3NfhF/wZ++PLfwx/wU58TaTdX01uPEvw/v7a0tgHaO7uY72wnGQoKgrDHcEM2ABuAOWAP9FX7RWk3Wv/s++OrGyt5ry8vfD2oQQQQoZJJ5HtpFVFUcliSAAOSTX8uf/Btj4nuPhr/wWv8AhTZ39yuirftrGkX0d4FhLO2l3nlwHfgrIbhIVCjDF8LznB8/FaVoM+myn38BiIeV/wAH/kf1fUUUV6B8yeI/HP8A4Jq/s+/tK3Ov3Xjn4L/DTxDq3iiFodT1ifw/bJq9wDGI9wvkRblJAgAWRJFddo2sMDH4K/8ABYT/AINnfG37JOo6349+C1jrPj74eXuqotn4d02yuNS1vQLd4nkdpQilpLeN12LINzBGUyHILt/SxTZI1ljZWVWVhggjIIrnrYeFRanpYHNK+GleLuuz2/4B/Lt/wbt/8FbviJ+yb+1n8PPg7dape618J/iL4kt9Ek0WQLMdLu71/IhuLVmI8lftMsTyqpwyhztLkE/1F1/K38S/hV4W+CH/AAc6+G/CvgrR7Hw/4Z0f43+HI7LTrMv9ntN2oWTuqBvur5jOQg+VM7V+ULX9UlY4Fy5XF9GehxFGm6lOtBW543f/AAfM/nt/4PPAn/DSfwVIZ/M/4Rq+DKU+UD7UuCDnk9eMDGByc8fnL+1V+xgnwv8A2Wvgt8Z/DF0NW8F/E3SWsdQkjIb+xdfs2aK6s5McqXREnTdyweTHyqCf1b/4PP8A4OWzaP8AA/4gJcMt4k2o+HpbcrlZIysVwjg54KlZARjneORt59t/4JD/APBPjwL+3f8A8G2PhD4ceJLeS1i8bT6zqZ1GJjJPYalDrF5Fb3cQfIUokESlV2h03g/6xieepRdSvOPlf8j1cLj1hsvo1Xtez/H8tzy3/g06/wCCq1v4r8Fyfsx+NtSb+3NHM194Glmy32yzw8tzY7uzQkPKgPVHcDAjAPkf/B55BIv7SfwVkKOI38NXyq5X5WIulJAPqMjjtketflr4j8PfED/gnJ+2PNp948mg/EL4U+IF3NZ3ZxHcQOGBSWMgmN1xyCMq+DjJFfeH/Byv+1/4Z/by079mf4q+FJFj0/xR4PvXmsGmSW40q4S7VZbeUpldyvuGM5wASq5Gc/bOVB05bq35m/1FU8xhiaXwzv8Afb9d/vPdv+C8P/Ku/wDsR/8AYM8Mf+o01foT/wAG0H/KEn4K/wDcd/8AT9qNfnt/wXgH/HO7+xJ/2DPDH/qMtW3/AMGnX/BVyx03T/8Ahl3xlNa2GJLrVPBd/PdsPtMkkgkn00IxKhizSTIE2hj5oILEFuinNRxGvVJfkebiKE6uWNw+zNt+l2v1P3brxH/gpR8aLr9nf9gH4xeNLKzjvrzw/wCE9QuLeF87GkMLIpbAJ2hmBIxjAOSByPbq/Nn/AIOsfinZ+Af+CS+taTJrlxpOo+L9f03TbO1hdlbVdsv2iWFgo/1YjhZznC5RBnJCnurS5YOXkfO4Gl7XEQp92j4p/wCDMb4K3138WvjN8Rmhsf7M0/SLTw5HKxBujNPN9oZUGMiMLboWyRkmPAbB28r/AMHjP7OH/CHftYfDn4n2en3y2vjTQX0m+uy262a6spMoo7o5hmXgnDCPIGVc1+iX/Br1+y3afs9/8ErPDWvmO0bWvile3HiW9mjjIk8rd5FtEzHlgsUIbAAUGV8A5LN8+/8AB5rptxN+yh8HbxbeZrS38WXMUswQmON3s2KKT0BYI5APXY3oa4ZU7YSz9T6Kli3LObx2u4/cv80fWH/BtjqlxrH/AARR+Cc11NJcSJFrECtI24hI9b1CNF+ioqqB2AAr7mr8qf8Agz78RXWtf8Eu/E9tcSB4dI+I2o2lqAoGyM2GmzEe/wC8mkOT646AV+q1dmHlelH0PBzSHLi6i/vP8XcKKKK2OE/nTooor/Ps9gKKKKACiiigAooooAKKKKACiiitAOJ+MH7Pnhr4xaPeR6hpsEl/NF+6vP8AlrDL5X7qvlfQ/gz8Yv2YtN1O60GORLO5lVJfs371n8r+Kvt4jFFfcZHxvisDT+r1l7Sn5no4XMZQjyVT5H+B/wDwUIuLO+/svx0kqxBZf9NSL995v/TVa+hP+GjPAdzD5kfirSf+/tUfiT+y14J+K11FNqejxQ3HmbpZ7P8AdTTVxHiH/gnl4F1DSpYbH+0tNvJv9VN5vnBK9zFYzhbMantanNSl+B0T+qVD2Xwt400fx3Yedo+pWepL/qv3Elan7yOvkHw9+wL8Q/h/qstxofi+z0//AFiK6y/8sqw9R8T/AB2+BHiCeGY6hqf2j90rSxfaIjUS4Ly/FS/2DFxl66Ef2fSn/DqH21D+9or5P8M/tnfEzS9MaPUvA91qNz/FOYpYjTdU/wCCiHiTQb9bfU/BQtW/uy+b5vlV5z8Pcx5/3Tj/AOBGP9m1D6y8xfJqvrGjWuv2EtrfWtrf283+tglirwfw5/wUT8D+INXFrdW+o6ZF/wA95q6n/htf4a/9B5v+/NYf6t5/hX+6jIX1XFU5Gd41/YR+H/i+2aO1sbrRLh5d3nwS+dXnmu/8E1msr5ZPDPiqezg6S+f5qfvP+2Ve5/Dr9o/wd8V9d/s7QdY+2Xnlyv5fleT+6ruPPj/56R/9/K9X/WLiXLpezq3Oj61i6R4/D4M/aIs4Io4/2gvFEUUK7Il/tGf9zTf+ER/aM/6OC8Wf+Da4r1z93/z8Rf8Af2j93/z8Rf8Af2t/9fuIO34C/tLGHkf/AAiP7Rn/AEcF4s/8G1xWT48+CXxz+Jnhi40fxF8bNe1vSbn/AF9peajcTQzV7thf70P/AH8pn/Hx/wA8pKy/4iBn3xW/AP7Sxh8+fBr/AIJ4+H/Ad/8Abtevv7YvI5N0UUX7mKvoj/ll/wA8qhmuI7OHzJpIoov+erV5t8SP2t/BHw4s5ftGsW9/eeV5scEH77zq8bE1s6z6t1kYy+s4k9Std1wfLWvEv2xP2j9H+FHgq80do7fUtW1WDyY7Rv8Alj/01lrxDUv2kvih+07r0Vj4RtbrTrWGT5RZ/wDtWWuq8Hf8E/tY8Q+PYNZ8c6zFqFv/AK25VZf300v/ADyr6nLeG8JlNaOKzeurr7J1UcLGhLnryOh/4JrQyQ/CLXGZdvnXor6OS4+eqPhvwvpvhDSorHTbG1s7OH/VRwR1e/5a18DxJmVLMMxliKO0jz8VU9vV5gPWg7/+2lfLfx8/ap8cfAn4ufZbq0Wfw95vnQReX/rov+utdZ4L/wCChfgPxK7R3X2zRNn/AD2P+ur2KnA+ZRoU8RQXN10Kll9fl56R7xj/AKZ0Zj9Iv+/VeSj9tr4aTdNfP/fqvUNH1iz8SaXb31jcR3VncxebFLFXj4zL83wsefERlEVSnWp/xS1iP+7F/wB+qMR/3Y/+/VEFFed/aGKW9RnJ7aqH7v0i/wC/dM/7ZRf980+isv7QxP8Az8ZXtmGY/SL/AL9VHn/Yh/75qSitVmGKf/Lxj9qxn/AYv+/VL/wH/wAh1g3nxT8M2c0sNx4g0mG4h/dSxST03/hb3hX/AKGTSf8Av/Xf9XzZr7Rfs6x0Uslcr8VvjHoPwU0WLUNduvs6zf6qKL/XTVxfxz/bG8M/CXSofs80OuXF3FL5H2SXdFC3/LLza+EPGnxB8Q/GzxdAdQvbrUbq6n+zwLLL/wA9W+WvteE+Aa+Nn9Yx3uxPVweVOp79U+h/hf4R8c/8FbP2xfDvw98MhYE1Cf8AcQTn9zYQR/6yWSv6vP2e/gf4f/Zz+Fml+GfDuj6TpNvbwRLPFplt9nhuJ/8AlrLXxD/wb+f8EkG/4J4/AWbxN4wj0m9+IfjaKK9laOPzptIg8r91BFLX6I/8sfwr+j8rwNLDUFSpRPOzjGcv+z0vhH0UQ9aK9w+dCiiigAr+Nj/gpH+zl8SP2G/27/GVh4qs73wt4gn1m417SruzvAfMt553lhnhmibg7WGcEMpyCAa/snr5W/4Klf8ABIn4Y/8ABVr4a2Ol+Mvt+h+JvD6ytoXiXS1j+2aezqf3ciuCJrcvsZoiVJ2/K8ZJauXF4d1Y+7uj2MlzKOEqv2i92WjPmb/gih/wcI/Df9qj4FeHPBfxe8bab4T+MWl402Z9cuFtrfxJgEx3EU7BYhIy4QxuwcuON+8E/qFX8qf7df8AwbUftI/sgeLo4/DPh26+M3hm8SaW11TwlYTT3MSxjJS5tMGSKUjlVQyq2QFdmyo87/Yw/wCC337S3/BP/wAQ6Lpek+NtW1bwv4YJsZPCHiLN1YCFZSz24Vx5kDBtwDRsrL0+7lTz08ZKn7tZfM9TEZHRxN62Bmtdbf1t6NH9eFFfiX+yJ/wePeFddgubT45fDfU/D90Gd7bUfCBF7bOvy7EkgnkV0P3suruCdvyrkkfbOmf8HGH7GuoeGLfVJPjRptn51qt01rNpGofaoMruMbIsDfvB0KrnkYGa644mlJXTPDrZTi6TtKm/kr/kfix+04k0/wDwdbaaGjut4+OHho4lJZtovLAg9B8u0ZHouOTjJ/qCr8c/+CEH7NC/tt/t/fGH9ufxF4R1DQND8SavdW/w6tdSX943mAw3F8rAgMUhXyNwDRl5rhQxMWa/Yys8JFpOXd3OrOqylKFFbwik/XqvkfkH/wAHeHw48Q/F74E/Afwz4X0vV9d1zXfG8tjY6bYwNM15O9owRQAfv9ccdC5yADn7k/4I7/sieJP2Ef8Agm38MPhZ4wmsJvE3hu1vJtRFnJ5kMEt3f3N6YQ3RjGLgRlh8pZCRkEGvpiitY0UqjqdWcdTHSlhY4W2kW36vX/M/Bf8A4O6v+CcyWXiHw7+0N4Q8PajNNqS/2X42msNOmmhi8pUS1vrmVSUiBXbb5ZVDERjcTgV+KOufEnWPEngTQfDd5crNpPhmS6k06Ly1VoDcMjSjcBlgWQH5s4ye3Ff3BeOvB1j8RPBOseH9SVpNN12xn0+7VThmimjaNwDzztY1+KPwc/4M8bDw3+202qeMvHlh4i+AumzC+tNJtzPb69q5G0rY3JCiOGAMWDTRStI6JhVhaTfFw4rCSlPmp9dz6LJ86pU6Hs8Q9Y7efl69PQ+9vgd+yD4T/bt/4IY/B34Y+MrWGbS/Efwk8OxQXTQLLNpN1/ZFv5N5Du6SxOQwORnBU8MQf5g/2jv2ffin/wAEuP2vrjw3rEmp+DvHvgu7jv8ATNRsLxEm8s/Pb3cMsMjBd6YbAYlSSrYYMB/Z14Z8M6b4L8N6fo+j6fY6To+k20dlY2NlAtvbWUEahI4oo0AVERQFVVAAAAAAFeV/tk/sA/B//goF4O0vQfi/4IsPGOn6JdG808yXNxZ3FnIy7X8ue3kjmVXG3cgfa5RCwJRSOjEYX2kVbdHmZbnP1apJTV4Sd7dv66n5d/sF/wDB3H8PD8F7fTfjzoviHS/FmkiO1jvdCszqEOqRKir50pkkDLMcFmPIYkkBeAfjf/g5H/4Kr/D/AP4KXz/Bo/CvxFq2oeHNEs9Qn1LSryzezmsb6SWJF82MrhmMUeVZXdQHIG0lwf09+M//AAaa/sk/FHV7O50Oz+Inw4htYTFJaeHfEZnhu23Z8xzqMd24YDjCMq4H3c811X7EX/BtD+zh+w18f9L+JGkv458b+IPD/wC+0iLxbfWl5Z6ZdAgpdxxQWsIaePB2NIXCMQ6qJER1ylSxEo+zla3c7KWMyujU+s0lLmV7Lptbz/M+h/8AglP8GLn9n3/gmx8DvCV/Zatpuqab4M02TUrLU4/Ku7G9mgWe5gkQqpQxzSyJtYblCgHJBJ+V/wDg69UN/wAEidYyB8vijSSPb949fpRXnH7XP7L3hz9tL9m7xb8LfF0uo2/h3xlZiyvJtPaJbqEB1kV4mljkRXVkUgsjYIzjOK66lO9NwXax4WHxXLio4if81395+RX/AAZaeIby5+GX7QGkyWbR6fZapol3BdYbbNLLFepJHn7vyLDEeOf3ozxtr9vK83/ZM/ZM8CfsR/AnRfh18OtFh0Xw3oseFUfNPeTHHmXE8mAZJnIyzn2AAUKo9IooU3CmoseY4qOIxMq0VZP/ACsFFFFbHEfzp0UUV/n2ewFFFFABRRRTswCiiikAUUUUAFFFFABRRRQAUUUUAFHmeXRRW0azjsAea3/PRqp6l4b03WLnzLrTbC8l/wCes8EU1XKjrppYytT96My/bM4HUf2Vfh9q9zLNN4Ys5JJpfNkqL/hkn4c/9Cpaf9/a9E/5bfhT69NcT5mv+X8jb65X/mPm7xN/wTvt7vxjeajoWvN4dt5jmKCGKX9zVX/hgDWf+ihah/5Fr6bor2P+IhZraza+5F/2lWPmT/h33rf/AEUS/wD/ACLR/wAO+9c/6KHe/nLX03n/AG6b8taf6/Zp3X/gKD+0ax8u6r+wF4mj0q4ktfH2oT3Hl/uo2aX99WL4O/ZV+NHgO/8AOsPE0UUsy7eL/dX19XE/H/4z2PwR+H99qk0lq14q+VBaSyfvZpa9fJ+MM0xtX6r7OMub+6dVHMK1T3LHyP8AtP8Ahn4meENAW68ReLILyG2k+z+RDqP7797/ANMq6/8AZt/YB03xf4Ns/EHie6vP9Oj3xW0Xy7a4L9nv9nnWf2tfGt1rmqTzW2j+funuD/y2k/55JX3d4V0SPwv4fsNLhkklt7CCK3il/wCuVfVcZcTvK6FPCYNpVftWOzGYz6vS9lD4iv4G+H+j/DzQv7L0Wxg06z/1sqr/AMtv+uta1FFfh2Mx1XE1fbVmfO+2dT+KFFFFcIFPV/Dlj4ktvJ1KxtbxfK8rbPF51fO/xy/4J46D4xWe+8LyHSb/AMvzvskh/dPX0pRX1GUcT4/LqnNQqaHVhcZVo/CfmH4C+G2g6X8Y4dB+I2pap4T0mGVory7gs/tE0H/bKvSfh34Q+IXhA+d8Odf/AOEj0uaT91FZy7pgv/TWL/lnX1x8Wf2cPCnxiuftGuaf5t55flRzxfupa+Rvjj+zT4u/Zm8TS6p4YudQn0mH979sg+9CP+mtfu2V8YZfnNP2GnP/AHj6KnmFLEL2TO88TftP/GrwQkDat4Wjt45v71n/AK6taH/goNrm3958PL7/AMi0nwM/4KI6frlh9h8Yx+ReQ+VFBPBFu3V9PWbx3lvFcRxw+VcxebF+6ir5PiDE4XAvlxuA07o48R7On8VM+abT/goBrE0//JPb7/yLX0b4b1iTXPDNhqUkMtrLcxebtl/5Y1eNvHJ/yzj/AO/VFfnWe5ll+IhT+pUPZnkYipRqR/dRCj7k0VFed/FD9pzwn8Gdf/szXLi6W5aPzf3UXnV5WW5ficZV9lhY+8ZUaVSZyviP9gfwT4m1m6vrqfV/OuZPNby5Ko/8O5vAP/P1rn/fyl8R/wDBQ/wLpOnNNp6ahqNx/wA8fK8msGL/AIKR2LRq0fg/V5Vr9Mw+H4vjC3MetbGfZIviV+yt8LP2f/DsfiLVLjVLj7PLutrOdv8Aj/lX/lk3+zXz14V+CGsfHPR/FnjPS7KHSbfSpPtEdtBF+5/65RV0/iLVfFn7bnxms7Waxk0yArsjHlSeTbRf3q+1PhN8MNP+FHgSz0OxhiijWP8A0rb/AMtpa+oxnEVXIsDFYqXtK0jtljXhqX734j6Q/wCCIf8AwcSeGPAXwQ8K/B34xTeILzxRDqsWlaZrDfvofssv+q81v+mVfuBCY7iGKSNvMimi83zVr+Sn9uv9lTfZr4v8KWNva/YIv+JhBB8v/bWv2Q/4NhP+Citv+0h+ytL8NfFXi661f4ieDJZfIs7z/Xf2d/yy8qX/AJaV+k8N8RUMywka9I8rMcHTxFL61QP1Kooor68+VCiiigAooooAK8d/a0/4J/8AwZ/bp0CHTvix8PdA8YR2wCwXM6Pb31so3fLHdQsk8a/Ox2q4BJzjNexUUpRTVmVCpKD5oOz8j8sfG/8AwaEfss+K/FF5qFhrnxh8M2t1K8kem6br1nJa2isxYRo1zZzTFVBCjfIzYUZJOSbnwq/4NHP2VPh146stY1S9+KvjiztN5fRtc163jsbolSqmQ2drbz/KSGAWVQSoDBlyp/UKisfq1K9+VHd/a2Mtb2j+8p+HPDmn+DvD1hpGkWFnpWk6Vbx2dlZWcCwW9nBGoSOKONQFRFUBVVQAAAAABVyiitzzwooooAKKKKACiiigAooooAKKKKACiiigAooooA/nTooor/Ps9gKxPH3jaz+HvhC+13UzMtjYrubyq26o+KfDGn+MtCn0zVLWO8sbj/WwN/y2r08t9h9Zj9a+A1pez+2fLnxM/wCCklvqnhnyfCen3mn6x56/vZ181dv8VX9H8cftDa5p1nfW9jby29/EtxF+6/5ZS17Z4W/Z58EeCNR+3ab4b06Ofytu6WPzq7aG3jjhijjjihWH/VRV9/iOKMow9L2WAwl/8R6P1yh9iJyfwTvPE134At5PGEaxa558m7b/AM8v+WVdYTmiivgcyxaxNd1lT5b9jzalX2lQKKKK8szCiiigAooooAKKKKACiiigAooooAKKKKACiiigCL/lt+NTyf6ym14n+1t+1lY/BHRJdL01o5/Elx91f+fP/prX0GS5Hicyrxo0Dqo4WpUlynRftB/tN6H8DPDFxNJNFeat9yCzik/5a/8ATWvjTwJ4I8XftpfFKea5mn8nzPNu55f9Vax11v7Pf7I2r/tLCfxR4i1Ca1sLifmU/vZrn/npX2V8N/hno/wn8MxaPodr5FnD/wB/pv8ArrX6nWzDLeGMPLD4X3657HtKWFp8sfiIPhJ8MLP4Q+CLXQdPk823t/8AWy/89v8AprXS0f8ALWgDJr8bzDHVcXV+sVt2fO1avtH7UKKKK4ACiiigAooooAjomjjvLOWGaP7Vbzf62D/ljNFUnkVHXRRrSpe/ADwf9p39jHS/HXgrzPCem2enatYfN5UC/wDHzXh37N/7XWsfAvxT/YXiuS8n0nd9nlik/wBbbV92qckV4p+1D+yBofxjsL/WLWGWz8RQwfumg/5eZf8AprX6tw5xbh8TQ/s3N9Yy2Z7eFxlOovZVz2PR9YtfEunW99Y3EdxZ3MfmxSr/AMtqsGX9ztr4X/Z0/aC8Qfsu+MG8MeK4bpdJ83bLBP8A8u3/AE1ir7e0fWLXxJptvfabNFeWdzF5sTLL/rq+b4o4Xq5dW5oe9S+ycWMwfsti11irnfFXws8PeOtS+1axodnqN5/qt0610WcUwtkV8rhMZXw1T2tF2OGlVqUzjh+zz4G/6FfSf++a6bTfCWn6RYRWsOm6dFb20flRx+RFVqpK7MRnmPqfFVNZYir/ADEcOn29mPMjt7WKX/pnH5NSUUV5tbEVavxsy33G3lnDqlhLazRxS280XlSq3/Lavmn9kD9pDxF/wR5/4KF6d4rsbdZfDuqSfYrtp4v3Vzp0sv73y/8Adr6YFeNftyfDjS/GfwN1TUryGb+0tBi3Wcn9z97X6J4b8RTweN+qy+GZ6OW4j2f7qp9o/pt+EHxY8P8Ax4+Gmk+LvCuqWuueHtdgiuLO8gk/dV0lflr/AMGqX7TbfE/9gqbwXqmpaMt54P1Wey02xSWJLuWD91L5nlf9ta/Uav6swtX2kTx8ywvsa/KSUUUV1HnBRRRQAUUUUAFFR3t7DptnNcXE0dvb26GSWWRgqRqBksxPAAAySeleXt+3R8EkSZm+MXwrVbdS8pPiywxEo6lv3vAHqaTkluVGEpfCrnqlFfEev/8ABxb+x7oPjnTdD/4W9p979ujmll1C1sLqSxsBGMgSyeWMs5+VVjDnI5CjBPi/xY/4O3v2W/A1rqy+H7b4ieNL2xMiWYs9GS0ttQZSVRhJcSI6Rtw25o9wU/c3fLWTxFNbyR2Qy3FydlTf3H6iV8S/tv8A/BwP+zj+wP8AGub4e+L9b17WPFFjEsmo23h/T1vl0pmGVincyIqykYOwEsAylgMjPwJ8Gv8Agvj+2N/wVi+IOrfDv9n34R+F/Ctnq12tnL4rkivL1PBtrLvZZru8yLeOTy4pdpMW5yjCKNn2iuS/a8/4J5fsu6j+1b8M/wBkH4Z+Gbfxh+0l4skgi8ffErU9e1iVNJMVqbvUL42hvvJlv5oop5/IJ8tC4Qncw2Y1MS5RvS/H8kehh8pjTqcuMvte0bOyW7k+i/Fn6H/so/8AByH+y7+1v8XI/Bul+JNY8J6jcWs1zBdeKrSLS7CfylDNGJzKyq+zcwD7QRGwBztDfedfys/8FRf+Dcj4wf8ABOXwPq/xAtNR0Xx/8M9OuSsuoae7x6jpcDOFiku7Z1AAO5QWhaQA5LbV5r1j/g24/wCC0+vfs4ftC6V8F/iRr11qHw4+IWpNFY3l65mm0bWLj7PFC7TOSwtn8oRlMhUebzDgbyc6eLlGXJWVjoxWS0alF4jAy5kt1/XXysf0nUUUV6B8yFFFFABRRRQAUUUUAFFFFAH86dFFFf5/nsB/raJv9T5lU9e8QWPhuwlutQvrWzs4f+Ws8vlV8r/tH/t+w6toV1ovg2O6E8k8tvPeMvy3MHleV8tfWcP8KYvMql1G0O504XB1Ksj6e8T+PNB8IWH2rUNY021s/M8qKWWesH/hozwH/wBDZpH/AH8r5z+E3/BP/UPHfgiO78U63qGm3kzebFalt6eR5X7qWvUrP9gD4e29hbxzWmoSywxxxSyef/rpa+kxWR8OYGXssRXlKXkdtTC4Sn7spHdf8NGeBP8AoatJ/wC/ldL4V8X6T4z0r7dpd9BqVn5vleZBXkQ/YG+G4P8Ax66h/wCBNelfDH4ZaR8HvDP9kaOssdr58lx+9l8395Xh5tSyBUP9inLm/rzOep7D/l0dFRRR59fFnCFFFFZgFFFFABRRRQAUUVHQBJ59FH2f9zRWgBRRGmP+WdeTftL/ALU2m/BTwXPJp9xZ6lrc0v2dYIpP+PNv+mtexlOSYrMK3sKETTC4WrUlynq81wtvDukkiii/vSy+VXJal+0L4HsLmWG48TaTFLbf62Lza+PI9c+MX7ZOnrbos01hYt8zRf6PDXqXw1/4Jr6Rpk0Nx4q1S41Gf5vPgtf9T/39r7+XB+UZdS/4VK/v9onpfU6FD+PUPO/2hP21dd+LHieXQvB8l1a6XM32eIQf625rrfh//wAE7tQ8S3lnq/jLWpWkuV82eBf30xl/55V7b8Nv2UfBXwl8T/2po+ny/bP+WTTyeb5NelA4p5pxxhcLQjh8jjy+dtQq5hSp0+XDFHw34bsfDGhWem6bDFb2djF5UcUdXqM0V+W4rFVK9T2tXc8mq2wooorlAKKKKACiiigAooooAKPIoooAKKKK08wPC/2x/wBlH/hd+lPrWl/L4is4/wDVf8/K/wB2vC/2Pv2jL74EeKG8N+JjdLozSeUYGj+a2lr7oJzXO6x8IPCviTWP7SvtB066vJv3ss8sf72v0rKeNKTy+WX5pHnj0PToZj+69lUNyGSO8himj/1U0XmxVNTfs8ccMUcf/LGnV+b1nroeYFFFFYgFFFFABXO/Fnw5a+Jvhn4gsb2PzIJtPlmkX/rlF5tbv/LH8aoeN/8AkSNc/wCwVP8A+iq9zJH7PHUnDudGF/in5yfs/wDxv8dfsqfEzT/iB4Hv9R0fUtFvf3F5A3y+b/zzav6o/wDgjl/wU+03/gqT+zJ/wk39myaT4q8Nyxaf4hg/5Y+f5X+ti/661/OT+x/4KsfH3wV8RaXqFvFcW9zqDfe/5Y133/BKL9tfVP8AglV+31pNv4p1jXLX4eXN239r6fYyfubnzYvKjnaL/lpX9YZVnlOeJlhHvE/Qs+4Vqf2bTxv8x/Vf/wAtvxpao+HPENv4k0ez1K1k86zvoIriCT+/FLV6vt07n481bQKKKKYgooooA+Vf+CrP7APxC/4KOfBiP4eeGfjV/wAKj8I6hu/4SGG28MnU7vXk42wNN9sg8uDqWjCkyHALbcqfy/8AiP8A8Gl/w3/ZK+BHxI+I/wAT/jx4m8RaD4N8L32rW9vovh6DRJVuYYzJHvkmmuxKjbSnlKiMzOuJBjB/eqvjH/g4R+IWn/Dj/gj18bLjUPO26npUGk26xJuZprm7hhTuAFBfJPYKcZOAeatRptOclrY9bL8fiYSjh6UrJtbJX1fe1z8Zf+DZD/glX8Hv+CknjD4tal8XtJ1fxFZfD2PSUsNJg1OWws7o3wvxI87QFJyyfZYymyVBlm3BwQB+6H7Jv/BHT9mr9h34jJ4v+GPwr0nw94nhglt4dTnv73U7m1SQbZPKa7mlMTMuVLJhtrOudrMD8K/8Ganw20vS/wBhr4peMIYWXW9d8dnR7uXjD29np9rNAvTPD39weSR83AHOf2CqMHSiqak1qdGeYys8VUpqT5drXdtlfT1Cv5rf+CCvgnXv2kv+Di/xD46XWLfUo/Bt34p8UapeXVw80moQTifTU8pwGDuZNQhcbiq+XG5ByFU/vX/wUY+Kk3wQ/YH+M3i23tvtlxoHgzVbuGEyGMO62sm3LDkDJB45r8a/+DLzxp4b0n4m/HrQ7670+HxVrNjok2kwyqBcXFtA2ofahE2OgMlsWUHJwpwQhKmIs60Iv1DLVKGCxFZdlH79/wAGfvH8QPAWj/FXwJrXhnxFp9vq2geIrGbTdSspxmK7t5kMckbd8MrEHHPNfyh/8FvP+CPfiT/glv8AH6a6tY49Q+FPjPUbmXwpf26zMLCPO9bC5Z87Z41YqpLsZUjMnB3qn9aleL/t6fsReDf2+P2cvEHgXxdoul3819Yzx6TqFxaW8t1ot08ZVZ7aWaGb7PJ0UyIhYKTjnFXicOqsfM58pzKWEq3fwvdfqfnf/wAGuH/BXBP2jvgpD8AfHepQr42+HtnDB4YmnlHna9pSJIBCqKgAazjijQlmJdHQ8lWJ/Xiv5BP+Cdvh3xp+xb/wW1+Efhae4k0XxZ4Z+Kdh4T1N4oztkinvl0+7RRKgby5reaVQxVWKSgjacEf191GCqOULS3Whvn+FhRxCnT2mr/167hRRRXYeEFFFFABRRRQAUUUUAfzn1g/FzxvJ8Nfhtr2vxw+fLpFp9oiX+/XRVifEPwXD8QvBGraFdSSRQavB5Ekq/wDLGv4UyeVCnjKc8T8HU9zC+z9p+8PhbwPo/jz9uLx75N7qF1/Z8Mn7+4lP+j2a19K+H/gp4E/Y/wDh3fa5qUP9qN5UUNxJPHuZpf8AplXo/wAIfhTpvwa8CQaDpf8AqIZZZZZ2i/e3MtfMP7adl4g+L/7Tum+B7W68qz+yRSwQeb+5i82LzZZK/ZcBnX9r414PCfu6EN+l0j6TCc2Nr/V8OM03/gplqSeNp/O0S3k8P+Z5UEEf7poYq9k8Jft3fDzxXc3EcmoTaTFD+9827i/11VvAX7PvhXwD4Xg0+PTbC82f62eeLdLNLVG8/ZV8BX9/JNJoa7ppd/8Ara8/G1uGcTPknTcfM/U6nhLXq0os7mz/AGqvh1qd+sNv4qs5GuJPKj/66V2+neIbHWL/AOz2t9Z3lx/rfKgnimr5p8QfsLeENb1H7VayXmmxf88oK851n9jrx94Q1qSTw5qjS280X+viufKb/rlXnx4Y4fxS/wBnr8r/ALx8xjvC/MMP/CPug2zRj95GaOtfD8t58cvgJ4flkjvruez8zzZfKl+0eTXoXws/4KO2Or39hYeLNL/s66ml2T3kX+pi/wCeX7qvNx/hziPZ+1wVRVPQ+RzDhfGYX+LTPp6isnwn4/0Hx/5/9h6pZ6t9h/1/kf8ALGtavgcZgauGqeyrI+ZrUXTCio6krlAKKKjoAkqOpKKAMX4lePrP4YeELrXL+OWa1sVw3lf66vnP4kf8FFxdPcab4S0Oe5uriDyoLqWL97DL/wBcq+mtR0q18Q2MtrfWsV1Zzf62KWKqFn8N/DulX6zWuh6bFcQ/vY5YoP8AU19pw/mmU4SlfFUPaVDuwuKoU/4p8pfDHTPj58V9Ka6j1fULG1mX5ZbuXyfOqT4c/wDBOXWNV8a/bvGWoRtYf62TyJfOmuGr7EojOD8terX8Q8VHmWCpRp/I6Hmsv+XRT0Dw/a+GNHgsbGGOK3tooooli/dVcozRX59XxlWvU9rVPJq/vCOpKKK5wCiiiswCiiigAooooAKKKKACiiigAooooAKKKKACj7P++oooAKKKKACiiigAooooAb/yzrzL9sjW4fDH7OHiKSab7O1zFFbwN/z2l/55V6fXxH+1Hqt98dv2ppfCFrNPZ2dhL9m8uQ/uvMj/AOWtfoHAuV/Wcb7ar8NL3j2sjwdTFYpUone/sMeHLjQ/g99qm8v/AImVz58dYP7eXwrjudBs/Fdjay/braXyrlv+mf8Ayyr234feDIfAHhCx0e1j+Wxj/wC/1eM/tqfG/SdL8Gap4Q/ey6xc+V5nl/6mH+Ovssox1fF8ROvhdj+oM2wdDC8P/V8Qf0vf8ErvjZq37RH/AAT0+EvjDXPs8eqaxoMDz+RH+6/1VfQlfJ//AAQ5s5rP/glH8E45o5opIfDkHyyReVX1hX9EYW/s9T+Ocw/3mpYKKKK6jjCiiigAr89f+Do3/lDR8Qv+wno3/pyt6/Qqvz1/4OjP+UNHxD/7Cejf+nK3rHEfwpejO7Lf97p/4l+Z5L/wZy/8oyfHX/ZT7/8A9NWkV+slfk3/AMGcv/KMnx1/2U+//wDTVpFfrJU4X+FE0zj/AH2p6nkP7f3wM1b9pv8AYi+K/wAPdBe3j1rxl4Wv9JsDO22Pz5YGVAx7AsQMngZr+Qb4IfGv4n/8E1f2sofEWh/bvB/xG8AahPZXVnexMpilXdFPbXEWRvQ/MrIeD+Rr+1evkn/gph/wRi+DP/BTbwhfyeJvD+n6F8QmtvJ03xrYWxXUrJgY9vnBHQXaBU2COcsEV32bGO6s8Vh3UtKD1R1ZPmkMNzUqyvCW/wCXzR4p/wAEyf8Ag5Y+DP7c8cPh/wAbSWnwh8eRW++WHWdRhj0i/ZUBc2905XBJDkRyAEBR8zE1+jem6lb6zp1veWdxDdWl1Gs0E8LiSOZGAKsrDhlIIII4INfyk/8ABVf/AIN8fi5/wTPaTxBYyT/FD4Yx2wnm8U6Xpb2x0sjYrre2weU243thZPMdGGCWVsotf/gmZ/wcG/G//gnFpK+GY7qD4geAEjit7bQtfllmXRo1k3H7G6uGiyrONhJjyVO0YrGGMlB8lZHfiMipV4e3wErrt/wenoz0H9qC4Nz/AMHWumMWV8fHHwymVLkfLe2Ax83ORjBxxkfL8uK/qDr+Yj9hjwB46/4LOf8ABeOD45eB/B7eHfCfh/xxpHjnxDNdy7rXRba0mgkEDTKuJLmf7Myxoq5dizkKiSOn9O9aYPXml0bOTPrR9lSe8YpNdgoooruPnwooooAKKKKACiiigD+dOiiiv8+z2COvlv4kFf8Ah5Bpf/YNi/8ASWWvqiL/AF1fJv7e3wY8Q2njiL4iaKzSRW0MSzrB/rrbyv8AlrX6Z4dVI/XatGbtzwsfS8J4ynhcwp1ap71RXh/wO/bF0zx/HpOlaxHNBrlxJ9n83/li3/TWvcK4s4yPF4Grauj+xsozihjqX7g8y+Ln7VGjfB7xQ2lahpt5dTxxxS7oJf3X/XKux+HvxD0n4meH/wC1tHuPtVv5vlS/8svJqv8AEf4WaP8AEzQbi11Kxgll8qXyp5Y/9TL5X7qvmHWPhx44/ZR8Xf2lovn6hp8J/wBasXmwzbv70dfV5bl+WZlhPZUP3db8z57MsyzHLq/NV96ifYn/AF0/epN/ra4Dx3+zL4M+I+pfar7S/Jn/AHvmywS+T51ecfDj9vXR7jQvL8R2t0t95v8Aywj/AHUsVe5eEPGel+N9O+3aPfRajZ+b5W5a8ytg84yf96tDtp4zKs1j7J+8fLmm/Cb4m/s7eJtS1Twqs32GGXfmL979pjiP7v8AdV2Pwq/4KI6p4fF/a+NtLurqSNv3EltH5Xk/9Mmr6ErM1jwXo+uW1xb3Wl2csVz/AK39xXpPivB42lyZpQ5vM+MzzwroVv3uHkZnwj/bK8F/FtryH7V/wj9xbfPtvpf9dFXfQ/FzwrcTeXH4k0Pzf+eXn183+N/2CtF1/W/tGj30mmRNu82A/wDtKufh/wCCeYT/AJmWT8IqwxWR8M4j36Vb2Z+c4rwrzKnU90+zcx/9Mf8Av5Twf+23/TWvjbxH+xj4qs9Nlk03xpeXV5/yyilklh86uW8LfFT4wfs6y/YWt7y8t2EnlwXkX2iH/rpXPS4DweKp/wCyYtSPncx8P8ww3xUz7yqOvjHQv+Cj3jDw7rf/ABUOhQXEG3/UeV9nau28G/8ABTXQb+5n/tzQ7rTlWP8AdNB82+vIxXhzmtHWklL5o+bqZHjKf/Ls+mM4oryXwf8Atz/DzxZFP5mrTaT5P/LK7i/11eg+A/ihoPxLt5W0HVLXUvJl8r5W/ff9+q8LEcNZnhdatE4auFr0/jpm759FH+sor590mtzlCiiisQCiio6AJKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiovtH0qXy/MraNFyegHK/Gj4kWvwp+GOqaxNfR2dxDBL9j3f8tp/+WVfKf7F3hvWvF/jzVPHOqSLcLc+bF5sp/ezS10X/AAUl+IEOoT6H4Ot4/MvIJftEv/THzf8AllXoPw30PS/gZ8Grf7RN5UFjB9ou2/57V+0Zbg/7NyLkgv3tc/ZPDTJ71vrtX7I39pH4pt8JPhlPqFrJB9uml+zwbq+gv+Ddv/gj3cftceNf+F/fFK1s9S8BwSz2+naZfReb/bM/+qkl/wCuUVfIX7JP7K/ir/gsb+2rb+B9BupND0nbLcT30674tNtYv/Zq/qS/ZG/Z6sf2Vf2bPCHw5sZrW6Xwnp0VjLdwweT9pli/5a+VX6jwXw6sFhff+I5fEni6piansaUjvNG0a18N6VBY6ba29nYW8flQQQR+VDDFV6iivv6R+G3uFFFFbAFFFFABXgH/AAU3/YSg/wCCkf7IWt/CW68TTeEbXXL2xuptSisReyRpbXUc7IsZkQZcRlQxYhS2drY2n3+iplFSVmaU6kqc1OG61R5v+yZ+yZ4E/Yj+BOi/Dr4daLDovhvRY8Ko+ae8mOPMuJ5MAyTORlnPsAAoVR6RRRVJJKyJlKUpOUndsKKKKCQrw/Uf+CZP7NusXslzefs9/A+6uJTl5ZvAmlyO56ckwZNe4UUnFPcuNScfhbRT8OeHNP8AB3h6w0jSLCz0rSdKt47OysrOBYLezgjUJHFHGoCoiqAqqoAAAAAAq5RRTICiiigAooooAKKKKACiiigD+dOiiiv8+z2AqKa3jvLaWG4jilimi8qWKX/UzVLRW9GtOk7xA+Y/2jP2EZPHfii48Q+D5tP0lvIil+w/6rdPXlNj8ePiB+zh4ls9J8Vw3d1pcLMogn/5eYvN5aJq+8q5P4ufBDw78crGxtfEUMtwtg26DypPKr9RyXj6lUp/Vc3jzR7n1uR8UYvA1NKhxvg/41+FfGf2OPTdXgluL6PzY7OX/W1081vHLD5ckf7qb+GWvk79pb9kDV/gRq9x4j8MtNL4ft9txu8z97Y/NXcfBf8AbV0fxJp+mafrwuLfVfI8qe8Zflmkr0MZwvTqUf7QyepzRP6C4Y49w2ZfusQdp8Xv2bfDvxK8LfYbextdJvIfngngir541XwX8Qv2U7y6udPmmTT5o/3txB/qSu6vs2c/P+8qj4k0O18X6DcaXqEP2qzvv9bFXHk/FlfDP6vjvep+Z9FmXDFHE/7RgfdkcX8Cvj7pvxZ8KWpm1C1g1vyv9Ltml8n5ov8AlrXoP/LHzK+avH/7BMn2/wC1eGNUS2i6+RPL/qa5fTtb+L/wVvEtVj1C732uyOLyvtESxV62I4dy/MZe0wFZL+6edR4hzDA/usdRPryivnPR/wBuxrDVp7fxF4fa38n+GDiUS16J8Nv2pPCvxFm8uK5/s25PSG8l6181jOD8xo+8qf3H0GH4owVX3XI9J/5Y/hS/Z/M/5Z0k/wD2yo/5bfhXgeyxFA9hVcPVMzWfA2j65cedfaXZ3Uv96WOqR+F3h1z/AMgPSf8AvxW/RW9PNsZT2qGNTKcHU/5dnmOp/sg+Ar+C4j/scxM8f+til/1NeQ6l+xl4z+Hlz/aHhTWPMl/e/wCql8qbyq+rKX/lt+FfR5fxnj6Gk5c6Pncy4Iy3FfZPnf4P/t1eIvAnjVtL+JXnfY/vSz+R/pEP7r91Xufg39sLwB43inaHxAtn5P8ArPtcXk+dVTXfhZ4d8V39xdaho9neXE3+taSL99Xmnib9hbwlrcP+g/atNuPM37vN82u6tW4dzJ8+Ij7KXkfk2beEtb2nNhz6Wh8Q2N7bRSR6lZSwzRebFL58VWrO4jvIfMhkiuov+mEvnV8f6x+wd/xKpf7N8U6h9sh/1ayyfuax/wDhnn4r/DSw8vw/4kuLiK5b97Fa3OyuH/U3KK/+74v7z5XGeGuZUv8Al2fbVFfJeneMP2hNH0qC1jjhlWGLytzRRebNWR4h/aS+OXgvUPLvrWNvJ/eyBbOLyjXLDw7qz/hV4S+Z8/W4JzKn73sz7Lor5b8J/wDBS6zksW/t3wxeQXHm/uvsn+pro9B/4KReC9Y1eK1vrHVtJt5v9bO3/LGvMr8AZxHan9x41bI8ZT+yfQNFeS/8Nu/DE/8AMwv/AOA1dlafHTwbqFtHNH4q0Py5o/N/e3NeNX4YzOj8dGRy/VcSdRRXO/8AC3vCf/QzaJ5n/X3XQQ3EdwkUkckUsU3+ql82uGpk+Mp/FTZl7GsOoox/nzKMf58ys/7PxH/Pth7KsFFH/fn/AL+0Y/z5lH9n4j/n2w9lWCijH+fMo/78/wDf2j+z8R/z7YeyrBRRj/PmUY/z5lH9n4j/AJ9sPZVgoo/78/8Af2jH+fMo/s/Ef8+2HsqwUUeZ/nzKd5n/AFx/7+0f2fiv+fYexrDaKp6vrNj4bsPtWpX1rZ2/3PPnl/dV84/tbftr/wDCEH+wfCF1Z3l1cwfvb6CXzfs3/XKvbyPhXGY+v7FRsjXC5fVxFX2R6h8VP2s/BXwguZrHUtU+1XkPm/uLP995Mv8Azylr5d8d/tP/ABH/AGj7lrHw9DdWelw/8s7H/wBqy034F/sc6h8RJotd8VtLHZXB3iD/AJbTV9SeEPA+k+A9N+w6PY2tnb/9Mv8AltX6RL+xsg/dYePtax+0cL+GNSuvb4j3Yngvwh/ZH1r/AIS+x8S+Lr/7ZeK27yJT503/AEyrkv23/j1NrHiGbwnpt1tsLE/6X5f/AC2lr2b9pj9oKx+EHhe406FvN1q+jkhjji/5dov+etL/AMEX/wDgkDqH/BWD4nazfah4itdJ8L+E7yD+3P8An7uIpf8AnlX1fDOHxeY1vr+Nj/hR6vFGIwmT0PqOC/7eP3O/4ITf8E2/Bv7Ef7JfhzxJY2drceN/G2kQXGr6rF/y8xf62KL/AMi19yVi/D3wHpvwv8BaT4Z0mOSLS9BtIrKDzZP3vlRVvV+wYePJE/mzMMVUxFX2sgooorY4wooooAKK+Xf25/8Agsj+z5/wTw1C60n4ieN418V21tFdjw3pds99qkqSHCfIvyR5ALfvXT5QD/EufmnT/wDg7O/ZX1bUobO1tfitcXFxIIoY4vDaO8zsQFVVE+SSTgADJP4ZylXpxdm0dlPL8TUjzwg2vQ/Tiis/wj4iHi7wnperLZahpq6paRXYtL+A293a+Ygfy5ozyki5wynowI7VoVqce2gUUVXj1a1m1SaxS5t2vreKOeW3EgMsUchdUdl6hWMcgBIwTGwH3TgAsUUUUAFFFFABRXkf7U37evwc/Ym0+yuPip8RPDfgw6k6ra295OWurgNuAdYIw0pTKMC4XaCMEg18V+J/+Dsf9kvw94kvtPgvPiHrENnO8KX1l4eH2a7CnHmR+ZKj7D1G5FOB0HAOcq0I6SZ1UcDiKqvTg2vQ/TCivzh+HH/B0h+zX8XviXpPhHwvpfxa13XdevUsNPtrLwwJZLyV2CqEQTbznOfu5AByBX6PU4VIz+F3Jr4WrRaVWLV+4UUUVZzhRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRWgDbyzhvIZYZoYpYpv9bFLF+5mr5W/a7/AGOZLm8sNc8A6U0V1C3+mQQSfx/8spa+q6PM/wC2VfTcPcTYjKq3NHVdjvweYVcPrSPhPR/2x/HHww1hdP8AFmnyXjW3mRS/bI/Kmdv+ute//Dv9orwn8T7DzLHVIrWeH97JBeS7Ja9L+JHwf8M/FPTfsuvaXb3i/wDPXyv33/f2vmfxr/wTJmtr+4m8O+Ittv5X7qCeP968v/PKv0KnmWQZ1T/e/uah+r8P+J2Lw/uVT6CpX8yT93Xx18PP2jvFPwB8Rz+H/E9vNPawz/6VFP8A62H/AHWr6I8MftP+BfFdg00OtLa7G2+Vd/upq4Mx4Rx2Dnz4b3on7TlPGOXY6n+8kdJrvgDR/F9jPDqWl2c63H+s/dV5F8Qf2FtC8R6tHc6RdS6J/wA9Yv8AWxf9sq9l0LxRpvie3iuNN1K1vF/6ZSVoV5lHO81y6XIpHp1sny3Gx0ifMvjv9j3xXoej+do/iKbUZ1/1sDS+Visfw5+0P8QvgdHb6Tr+iSXdnY/e8+L975f/AF1r6yNQ6jp1nrFtLHdQrdRTf62KWL/XV7WH40hUp+yx9FSPHrcIzhU58HW5TxfRf27/AApqFjD9utdStLyU4lUH9zFXaQ/tN+BZJvL/AOEis/8Av1LVzxT8BPB/i+GD7docH7n/AFflfua5HxT+xR4N8RW8S2tvcaTLD/FDJnzqn/jHMT/NTNP+F3D/AMsj1HTfENjrB8uxurO8byvN8qCfzauTW7R/8s6+X5f2K/E/hi2nutD8RRyXX/LOMHyfOirOTwv8ZvhKP9Fm1C4W++95UnnZrb/VLL62uFxKM1xNjKX8eifWFFfOdn8evi1HYRRyeD47hkX/AFklr9+rH/DQfxW/6EuP/v1Xm/6m4i/8WH/gSOz/AFpwv/PuR9CUV856l+0l8TtEsZLq68IwQ28P+tl+y0/QP26ZYrFV1DwvdPdfxeR+5irSXBeNh78GpfNGn+tmDl8a5T6JpZv9I/3a8G039vDRLrVIoNS0fUtPXP71hLXbeFv2qvA3iz7Rt1hbDyf+fz9z51cdbhnN6PvqJUc+y2ruzsv+EW0n/oG6d/34rD174EeD/E+qfar7QbO4n/651a0340eFdXv4rW117Tbi8uZfKjiilro/Lb+7XPUxGbYXWXNE6qeHyrFf8u4nm3iX9kfwN4isfJj0eOz/AOmsH+trnU/YV8EZ+9qn/f8Ar2qirp8UZrTjy+2M6nC+VVPe9ieAeJf+Cf8Aol/PF/ZeqXmmxfxeb+931FF+xDqkcSxx+NtQ8pK+hKK6/wDXjMrWb/I82rwHlNT3vYnz5/wxPqn/AEPF7Sf8MS6p/wBDzfV9DfLR8tH+uWY+X/gKMv8AUHKf+fZ88/8ADE2qf9DxfUf8MTap/wBDxfV9DfLR8tH+ueY+X/gKL/1Byj/n2fPP/DEuqf8AQ831H/DEmqf9DzfV9DfLR8tH+umY+X/gKJ/1Byn/AJ9nzz/wxNqn/Q8X1H/DE2qf9DxfV9DfLR8tH+ueY+X/AICiv9Qco/59nzz/AMMS6p/0PN9R/wAMSap/0PN9X0N8tHy0f66Zj5f+Aon/AFByn/n2fPP/AAxJqn/Q831O/wCGJdU/6HrUfzr6Coo/14x/l9yK/wCIe5T/ACnzrd/sNX2sW3l3XjDUJ4/+ectdb8Pv2LfCfg3UrO6uPtWpXVt/z1/1M0teu07OIf3n3aJcWZriKfJTf3afkbUeDsowdT2sYgRg/wDkKKvEf2o/2m4/h/pH9l6FfW8uuvLsuZYv+Xesf9ov9q+bSNS/sLwhJBez3EflS3cX7395/wBMq5/9mv8AZduvEviC51bxlY3UUUPzQxTN+9mlr6DJchp4On/aeab9jy81zipiqn1DLNiH4Mfssax8UNaXxR4ykmazvP8ASNs/+tvK/ST/AINGfi/o/hX4/wDxb+HTQ3n9razbRahZyxL/AKOkUHyS14NZRx2cUUf/ACyhi8qvAfhNrPir9jX/AIKPeA9e8D6teaH/AGxrlnbxTwH/AF0E88UUsX/TT79fUcG8VPHY+pSl/wBunw/HfC7oZd7RH9cEP/POlqCxLSafBI3+tmhjeX/v1U9fssNj+Y62lQKKKKszCvgX/guT/wAFebz/AIJ8eBtD+Hvw10248SfH74pqLTwpp9vZ/bDp4klECXRhwTNK0pKQQ7WEkqncGVCjffVfgv8Ase/ByT/gsR/wcd/ET4zrri+IvhX8B9btL2yvkmWNZZLYumkwQL94xtcWs1wXC7WWF9xDSrnnxE5JKMN2elllCnKUqtb4YK7830XzZ7n8FP8Ag07+HvxA8Kf8JT+0F8RPiZ44+K3igR6lr13a6pDDFb3UkSNNF5jxzSXBWUyDzmcB1CYRMHP1/wDs6f8ABCv9lH9lD4u6T488C/COw0vxVobGTT7261rU9TFpIRjzEiurmWMSD+F9u5TypB5r62oqo4enHZGdbMsVU0lN27J2XpZBRRRWxwnlv7bnx61L9lr9j/4mfEjSNJj13UvA3hu+1u2sZWKxTvBC0g3ledg27mxztBwQea/m/wD+CNn/AAVD8da9/wAF0vB/xE+JHiTV9cvvi9ft4Q1lovuuL4eVYwpHvVEt4rv7IQoyEjRiqlsZ/qJ1nRrTxHo93p9/bQ3ljfQvb3NvMgeOeN1KsjKeCpUkEHqDX8Vn7aHwHuP2Of2zviJ8P4bhpH8B+JrvT7O58soZYopj5Eu1s43R7GwSevUjk+djpSi4zWx9Tw7TpVqdWjJatb+T/wAmf2uV5D+3Z+2n4S/4J9/sweJPin40W/m0fw/Gipa2UJkuL64kYJDAnZS8hVdzEKuck4FeN/8ABEr/AIKYWP8AwUx/Yy0nXrzUY7z4heFoodL8ZRx2JtI1vdmRMi/cKyqN3yYUMHAVQAK8s/4OnmkH/BHTxntVWU63o+8lsFR9tj5HHJzgY44JOeMHrlV/dOpHseJRwjWLjh638yT+86f/AIN/f+Cgnjb/AIKXfsy/Ez4l+OPstvcSfEi907StNtV/0fRtPj03THitUbAZ9rSyMztyzyMeAQo3f+C0P/BYvwv/AMEoPgStxHFY+Ivin4niePwt4elkPlkjhr272kMtrGeykPMwEalfnli+Nv8AgzI+MUet/srfGT4frb7ZvDPiu18QPNz+8XULMW6r6fKdMY/8D+lfFv8Awd3OW/4KqaXkk7fAWmge3+k3tcsq8o4dTW57FPLqVTNJUJK0VrbysrI+99E/4NXLX9oj4p3nxK/ad+OXjD4leOvE1sLnXItEgj0+3hvmC/u4Z5BIWtYVDRRosMI2rGQkSjyqf+03/wAGjfwW1f8AZy1TS/hDf6xovxKjle503WPE+qzXdpPlUAtp0hVQkY2MVkSJnVpWLCVQqL+uVFdH1WlbY8z+2MYpJqb06LRfctD+MXzPix/wR+/b6ZY7i30H4nfCXWAHNvcfaLS4ygJQlCPMt54JMMp2kxylWCtkD+vb9lH9qfwX+2n8AvDvxK+H+qf2r4X8SwGW3d08uaB1YpJBKn8EsbqyMvIyuQSCCfyJ/wCDu3/gnfpepfDfR/2ktFi1STxDp13Z+HPEQa/T7GlgwlEEqwuN3mCdkQ+W2MSZKH5nHn//AAaJ/wDBSPR/APiPWP2Y9csZo73xvq114n8M6hEjSLLcpYobu1m5wg8iyEsbAAErKGOWQHjoP2NZ0ns9j28xisfgY4yC96O/6/duvI/fqiiivUPkQooooAKKKKAP506KKK/z7PYCiiigAooooAKKKKACiiimtGByvj/4IeF/ielx/bWjwT3TL9nafb/pG2vL/En/AATp8BazpUtvpq6hpt43+rm83za96AzUZGK+pwfFmaYZclGtodVHH1af8KofFnjX9h7x58H7iTVPDGp/b1tpW8pYJfKm8r/nrSeFv20vE3gO5tdL8b6L9/yvMnli8m48ivthNo+81ea/tE/s8aT8ZPCmqSR6bZy+JJrT7Pp9y3/LGvuMq40w2Pl9Wzemv8R9lkfGmYYWprUDwn4v0/xv4ft9U0ubz7G483y2rSIxXx78CfjPcfsy+Mtb8NeJY7iWzSVoZY4v+WMsX/LVa+oPhv8AFTRfixYfatDvvtUkMXmyQf8ALWH/AK61y8R8L1sJP21DWkf0xw5xRQx1Cnep7x0VFFFfDn2G4UUUVp7Rox9mHmyf3qN8lFFP20+4exoizf6TD5cn72L/AKa1X/sy1/59bX/v1U9Fa/XK38xn9TonO+JPhB4Z8V7pNQ0ezupZo9ssvlfvq4k/sVeBEP8Ax53X/gTLXrWf9qm161DiLMMPHlp1jhrcP5fV96UT558b/sRyf2/a3vhG8j02G34/fy/vhLWPqnww+M3hzW1+x6tdaisP73zUuf3VfT1O+WvcwvHWKtyYiCn8jyMVwjh/jw9TlPlXxN8f/jB4MuZv7StJI1tpP3zfZP3VdD4X/b5tGtpf7Y8Pzxz+ZmL7HLX0HeW8d5DLG0ccsU3/ACzlqn/wi+m+d/yDbP8A78V0PibKq0f9owv3HJTyLMqMv3FY8b/4bz0D/oB6x/38pf8AhvXQf+gDrP8A3+r2P/hE9L/6Btj/AN+Kd/wjWl/9A2w/8Bqy/tTh/wD6B/xNvqecf8/jxn/huzQP+gJrH/fdL/w3l4f/AOgHrP8A39r2X/hGtL/6Bth/4DUf8I1pf/QNsP8AwGp/2pkP/QO/6+Q/qecf8/jxr/huzw//ANAXWP8Avuj/AIbs8P8A/QF1j/vuvZf+Ea0v/oG2H/gNR/wjWl/9A2w/8BqX9pZD/wBA/wCP/AD6nnH/AD+PGf8AhuzQP+gLrH/fdH/Ddmgf9ATWP++69m/4RrS/+gbYf+A1N/4RPS/+gbY/9+Kf9qZD/wBA7/r5B9Tzj/n8eOf8N2eH/wDoC6x/33R/w3Z4f/6Ausf9917L/wAI1pf/AEDbD/wGo/4RrS/+gbYf+A1L+0sh/wCgf8f+AH1POP8An8eNf8N2eH/+gLrH/fdH/Ddnh/8A6Ausf9917L/wjWl/9A2w/wDAaj/hGtL/AOgbYf8AgNR/aWQ/9A/4/wDAD6nnH/P48a/4by8P/wDQD1n/AL+0f8N4aB/0BdY/77r2X/hGtL/6Bth/4DUz/hFdJ/6Bth/36pf2pkH/AED/AIh9Szj/AJ/Hzt4n/bV8ReJ7mSz8J6JJC3m+bGzR+dNtqhpvw9+MnxHm8y8vtQ02z1UfvPNl8qH/AL9V9O2fh+x0ubzLextYpf8AplFV75ZK6v8AW7B4WPJgKCMP9WcTWqf7VWPCvgB+x1H8NPEDaprM0V9c2zebaNF/DXuf+smpfs/1pK+UzTPMTmMuatI+iyvKaGCXs6EQrx3443kf/DVfwPt/Mj82HxHp3mRf88f9NirqPjH+0No3wYsP9Ok+1X1xF+6tIP8AW/8AbWtz/ggf/wAE0pP+Cl/7VN1408Qa02m+FfhrewaldxRSf6Rcy+b5sUSf7PFfofh/w/XVb6/VPzvxG4joUsJUwZ/T1pv/ACC7P/rhH/6KqxTIY44IYo4/9VDF5VPr9+pbH8h1v4gUUUVsZnzp/wAFd9WutD/4Jc/tAXVlcTWlzH4D1cJLC5R0zayA4I5HBI/Gvyf/AODK7xZp9n4t/aK0KS426rqVp4fv7eDy2PmQwPqSSvuxtG1rmEYJBO/gEBsfr/8A8FJfhDrnx9/4J/8Axm8F+GbZbzxD4m8H6nYabbFtv2m4e3cJGD6s2FGeMkZwOa/k5/4J7ftea/8A8E2v24fC/jaSPWrePwvq4tvEWk21ybWW9tlcpcWz8EE/e+UjBIxxnNefiqnJWhN7H1GU4f6xgK1CO7af3Wa/I/syorB+FvxR8PfGz4daL4t8J6vY694b8Q2iX2nahaSCSG6hcZVlP6EHkEEEAgivkf8A4Lj/ALUP7QX7N37J19J+z78M/EXizX9URob7xHpsUV63haA/KZY7NWa4mmOchlhaKIAu5+UKe6U1GPMfO0aEqlRUlo27a6H2tRX8rv7E3/BzP+0l+y34t3eLPEk3xa8N3cwe7sPEkpluEHygmG4HzxkKDheU3HJBr9bP2C/+DpP4H/ti/FHTPBXiLRtd+F/iPxDqEem6MNQkF9Y30shVY0aeNV8pnkbYN67c4ywzXPTxlOel7M9LFZFi6GtuZd1/lufptX8j/wDwW38F6j8S/wDgtN8c9J0O0F5qE+tyPFb2yZaYxWMcjqqqW3SERtwOWY8hScD+tbXNatvDmi3moXknk2dhA9xPIFLbI0UsxwoJOADwASa/mg/4IARWP7Uf/BwRqnjSayuvFVn9p8R+Lob29tC725leQQ3ky8iN99ygBY4WSRMHdtNZ41c3LDuzq4fk6SrYj+WP/B/Q+b/+CKP/AAUnvf8AgmX+21o3iq5uJf8AhB/EQXRfF1ssPnGSwd1bzkTcv72FwHVs5xvXBDEH+jX/AILl+BfC/wAdf+CQPxhur9Ita0yx8MyeI9Kmt7yRYWnhTzradWicCRQdrgEsjcEgjFfhF/wcaf8ABK+b/gn9+19d+LPDdmy/C/4nXMmo6SQzv/Zl4fmubN2br85aRME/u3APKknr/wBhP/gsi99/wSd+NH7LvjfzftC+B9Vk8H6zNc+YrKsRZ9OaNiCoEYYxFM4IfcMc1y0ans+ajUPXxuFWKdLH4be6v6X/ADXU+mP+DKT/AJuX/wC5X/8AcxXzZ/wd2/8AKVXTf+xD0z/0pva+k/8Agyk/5uX/AO5X/wDcxXzZ/wAHdv8AylV03/sQ9M/9Kb2nL/dF6/qxUf8Akdz9P0if020V84f8EnP26bP/AIKJ/sK+C/iRH5iaxPAdN1+GRcGHUrcBJ+QiIQ5xINihQJQOCCB9H16sZKSuj4urTlTm6c91ocf8ffgP4V/ad+DXiLwD420uPWPC/iqyex1C0Z2jLxt3V1IZHU4ZWUgqQCDkV/KX8Cv2eNQ/Yq/4L6fDf4atdN53g/4y6Hpkc0N4J2ktm1S32BpVVAzNBIocbFGSwKjkV/XBe3sOm2c1xcTR29vboZJZZGCpGoGSzE8AADJJ6V/N9+w7beF/+Cq3/Bz/AKt4+0yDVpPBui6/P41s5IELGVdLSGOyuJGAxHFJcpbPz13rHnLA1x4yKcoW3ue9kVaUKda/wKLb9en3n9ItFFFdx86FFFFABRRRQB/OnRRRX+fZ7AUUUUAFFFFABRRRQAUUUUAFFFFABRRRTuBwfxg/Z38K/GOwlh1TTbf7ZN/qryL91LDLXyR48/ZN8e/s83/9seHZrjUbOH/lrbfLN/wKKvvPoajNff5Jx1jMCvZVv3lPzPXy3PK+F+A+M/AP7fEsepra+LNL8iL5YvPgj8mWH/a8qvXPA/7S3g7x/qP2Ox1Typ/+WS3kXk+dXbfEH9mXwZ8U4Zf7U0OD7RNLulng/cy14b8Tv+CbMkniH7V4L1SPT7Py/wDUXkv72GX/AHq+qpYrhrNl/wA+Zn6plHitXp/uqp7xRXyLZ/Gf4mfs86vPD4itdRvLFJvKl+2RedE/+7LXr3w1/bN8KePbmG1upJNEvH8pP9JP7mavNzHgrF0V7XD/ALyPkfr+T8dYHFL35HrlFQ6bqsOsWMV1Y3EV5BN/qpYJfNhqavk62DrU/wCLE+upYylU/hBRRRXL7NnZdBRRRUk/3QooooKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK0MxwGyuU+LnxX0/wCDnhZtU1CTzZv+WEH/AD2lrR8ZeM9P+H/h641TVLqKC1t1/wC/1fHP7Qf7RcPx78U6fZtHLpPh+zn+9t82WFJf9a1fccI8MVMbXVWtH92fH8UcUUsuoeypfxD3L/gn5+wZ45/4K+/ta2cc1vqlj4N+2BNc1q2tt8VhEn/LL/rp5Vf1BfsvfskfD39jv4aWfhX4f+HbPQ7C2git5Z4Yv9IufK/5ayy/8tK8v/4JI/sqfDD9lb9iXwrbfCzzdQ0nxVp8Wq3mqzxeVcarJLF/rZa+nsc1/SOXYOnSp2R/H/E2eVcVXCiiivXPkwooooNAr+c3/g5W/wCCIesfAT4n+IP2hPhlpEVx8NvElwLvxJplhb7W8L3j4V59i/8ALrNJ85YcRySMCApSv6Mq534t/Cbw58d/hlr3g3xdpNrr3hnxNZSafqVhcA+XdQSLtZcghlPcMpDKQCCCARjXoqrHlZ35bj54Ssqkduq7r+tj+dn/AINXv+CoGpfAD9py1+BHifVNYvPBPxMuDBoVuW8y10TVdruHC4Lqs+1YiEwu91dsAM1f0kV/G7/wVB/4J9eMv+CY37XWqeDdeght7OaQ6t4b1HT5Z5LW5snctF5c0iIzSRcRvxlXQ8sMMf0o/wCCYv8Awdon4Y+B9C8CftAeF7nUtP0KwjsLXxXoCBryRIY2CfabViFd2CxpvjZeckqeTXDhcR7P91UPoc4yt4m2LwmvMtUvz/zP12/ae/4JS/s6ftiWutN4++D/AIH1TVvEEiTX2u2umpp+tzSIAEc39uEuSQFUYMhDBQrArxX80P8AwWw/4JR3v/BJn9p6x0rS9Wk1LwP4qje/8KXc98J9USKHy1lF0UhhRZVkbI8tSu1l5yGA/aiy/wCDtj9k26Rmk/4WZbFQxCyeHkJbAyB8s569B79cDmvz5/4Kj/HWx/4OTP22/g34L/Zs0HxNd6houl3kOsXmu6atjb6TbPPCz3lxKkkm23iHUkBi8iJGJJJUQ1ivZTj7lubyM8mWMw9W1dNU7O99lZfgftZ+xNDdeL/+CPXwjjlW41S81T4OaMrq4M8t3JJokOQRyXZifckmvz7/AODW7/gj78R/2RPEHiD46fE6yv8AwfqXirQZvDek+Fb+0aDUI7Z7q3nkurpHw0DF7VFSJhuKlmYL8uf1k/Zw+DNt+zj+zx4D+HlleTajZ+A/Dun+HYLuVAkl1HaW0dusjKCQGYRgkAnBNdpXZ7FNxlLdHh/XpQhVpU9pv8NTy/8AbH/ZD8Fftyfs+a98OvHmj6fq2kaxA/2d7mDzH0y62MsV3CQVZJYyxIZWUkFlJ2swP8hP/BQP9gTx9/wTf/aN1P4c+PrNVurdftWm6lACbPW7NmYR3UDH+FtpBU/MjKynkV/aNXkH7Y/7BPwj/wCCgHgbTfDnxe8F2fjDStHvPt9ir3VxZz2k20oSk9vJHKqspwyh9rYUkEquM8VhVVV1udWUZvLBycZawfTt5o/Jf/gyx8F6vp3hH9obxBcaXfw6Hq114fsrLUHgZba7nt11Jp4o5CNrPGtxAWAOVEyZxuGfUP8Ag6r/AOCXWsftP/BzQfjN8PfCq6x4w+H8Utv4jNmzG+vNGAMissQB837PIXbjDhJXOGA+X9T/AIK/BXwp+zn8KdC8D+B9CsPDXhPw1arZ6bptmhWK3jGSeSSzOzFmZ2Jd3ZmYszEnqKccOvY+ykZ1M1l9eeMpq3l5Wtqfx5/8Euf+CuvxQ/4JUfEe+1PwY9rrfhnXVC6x4Z1N3+wX7AYSZdpBinXoJF6jhgwwB/Qp8Ev+Dln9kn4q/Dyz1nWPiIvgbUpvln0jWNPuWuIHAG7DQxurJnIViQSBkqucVY/bv/4NzP2bf2+vinN431rTvE/gfxVqE0lxq1/4QvobL+25H2/vLiKeGaHzMhmMkaI7s7F2c4x4X/xBy/sy/wDQ9fHb/wAHWlf/ACtrnp0sRS92Nmj08XjMsxlqlXmjLrZf1f1O2/b7/wCDkn9nDwJ+yT40uPhn440r4j+Or6wfTtH0WC1vIEeacGPzpXkiQeVEGMjKGDPt2gqW3DX/AODcr/glHZ/sAfsi2PjLxZ4bbT/jN8SbYXesy39uUv8ARLBiGt9MCscw4CpNMm1HMrhJM+RGEvfsS/8ABs7+zf8AsO/tA6T8SdKk8deN9e8PfvtIh8W31neWWmXQIKXkcUFrDunjwfLaQuqMQ6qJEjdP0Jrop05uXPVtdbHmYrE0KdJ4fCXs3dt7u2y9OoUUUV0nkhRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBV1/w9Y+I7CS11K1tdQt5v9assVeB/Ef8A4J3eD/FczTaLcXWhTvLu+X97DD/2yr6Gor6XK+J8wy/+BUOrC42vR+CR8laz/wAE5te0jR/+JH4ua6uPN/dwT/uYqoTfs8fHD4b+FZY9L1xZrdf3v2Ozuv3r19iUV9HS8Rsb/wAv6cZfJHuYXi3MKPw1D4x1f4rfG74aeGopNY0Pz7df3Xny2sVxLXFt/wAFAPGinm30z/wFr9AJgtxD5ckfy/3awZvhP4ZkMvmeHdJ/ff639xFXs4bjnKKnvYrCrm8j3qPiHmX/AC9qHzf8CP2y7HxXY38njDVLPTp4ZYvsqrbV7N4b8eaP4vtreTT9W028+0/6rbP++m/7ZVieJP2E/h74j0qa3h0ybTp2l3efBL+9rzS8/wCCat9p/iNptF8WtZwQy/uPNi/fJXTX/wBW8x9+FT2TPuMn8WKlOPLVPfPKk/uy0z/j3/1kflV4dP8AsJeOPsv7v4jzeb/zyk83/wCO1k+FfgH8evBnnx6bqkLQTN/Fc+bXF/qzl1SP7rFxPp6Xi5gp/wAWJ9DZor5z8U2X7QngSW3kkX7d5zfdtvKm/wC/tX/+F2/Gb/onsP8A4Cn/AOO0v9S5yV4V6f3nr4XxOymoe+0V8+/8Lv8AjP8A9E8t/wDwF/8AttSf8Lu+M/8A0TuH/wABv/ttc/8AqXiv+ftP/wACR1f8RIyf+Y+gMf7NGP8AZr5//wCF3/Gj/oncP/gN/wDZUf8AC7/jR/0TuH/wG/8AsqP9S8R/z9p/+BIP+IkZT/MfQGP9mjH+zXgH/C7fjN/0T2H/AMBT/wDHaP8Ahdvxm/6J7D/4Cn/47Uf6l4r/AJ+U/wDwJB/xEfKf5j3/AB/s0Y/2a8A/4Xb8Zv8AonsP/gKf/jtH/C7fjN/0T2H/AMBT/wDHaP8AUvFf8/Kf/gSD/iJGU/zHv+P9mjH+zXgH/C7fjN/0T2H/AMBT/wDHaP8Ahdvxm/6J7D/4Cn/47T/1LxP/AD9p/wDgSD/iI+U/8/D32ivAf+F3fGf/AKJ3D/4Df/baP+F3/Gj/AKJ2n/fj/wCyqv8AUvF/8/af/gSD/iJGT/zH0BhRSeW1eA/8Lt+M3/RPIf8AwGP/AMdrlPHuq/HL4nTR2v8Awj+o6PbzSf6q2i8mGtsLwXPm/e16dv8AEcuK8S8pp0/3R9MeJPFmm+D7ZrjVL6302KGLzf38n/tKvGfHn7e3h7w5M0ej2txq0qy+V5svyxeV/s1i6f8A8E7fF3i+yt7rxF4rhjvf+WkEvmzeTF/10r2LwH+wt4A8GWEH2jT/AO1ry3k83z55f9dXoKlw7lq/2ip7aXkfA514tVP+Yc+XvFWpeIP2xfitYR6fpc+m2Nx5Vvu/evbw/wDTWvW/2pPgJ4X+Bn7LbQ6fDb/2pNcwRS3b/wCtuf8AW19Qad4bsfD9t5NjY2tnF/0yi8mvmP8A4KG61H4o8eeCfCEscsMd9eRPJP8A9MpWiir0sj4mlmeZUcFgY8tKJ+a1s8r5li/a1T+lP/glT/yjZ+C//YsWf/oqvoH/AFled/sr/Cex+A/7MfgPwfpc11dWHhvQ7O3inn/1037qvRK/oKh8J8Bjv94CiiitjkCiiigAooooA4r4/wD7OPgP9qn4bXfhD4jeEdB8Z+G7zLNY6raLOkUhR4xNET80UyrI4WWMrIm4lWU818j/APENB+xJ/wBEV/8ALw17/wCTa+7aKiVOEtZJM6KWKrUlanNxXk2j4S/4hoP2JP8Aoiv/AJeGvf8AybX0P+xp/wAE+Pg3/wAE+fCur6P8H/Aun+DbPX7lLrUnjuLi8ur50UrGJLi4kkmZEDPsjL7EMkhVQXcn2ailGlCLvFL7gqYzEVI8tSba7NthRRRWhzhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/OnRRRX+fZ7AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAR1JRRWgBRRRQAUUUU+ZgEUlHn0UVr9Yq9wuw+0f9NJqTzZP+elLRR9cq9w9sJ5sn/PSjzZP+elLRS+sVu5p7aqJ5sn/AD0o82T/AJ6UtFP6xW7j9rWD95/z0/WjzJP71LuNG41H1mr3MvbVRP3n/PT9aPMk/vUA4NU9e8Saf4Y06W61K6tbOCH/AJaTy+VXTh3iKtT2VHc0vVZb82T/AJ6Uu/8A6a14n8T/ANvXwP4K0gyaTdf8JHet/q4IFlhi/wC2sleO6n/wUJ8feJ724uvDvh+3i0uH/ln9j+0eT/21r7fL+B85xH72b9n6nbTy+vM+zs/9NKPMk/vV8v8AwH/4KK2viXUYtM8Z28Omz/8AP9HF+6/7axV9PWd5DrGlW99ayfaLOaLfFPF/qZq8jOeH8zyyXLX2MMVQr0viHUUUV8pqcoD943l14b+xz8N5v20P+Cz3g3R7OxXxZo2j6rFd3dpc/wCpSzg/1v8A49tr0r4x+MLXwB8LNb1S+k8qKGzli/dS/vfNl/1XlV9If8Gi/wCyRoniG38ffHDUJIdQ1y2u/wCxNPRov3th/wAtZZfN/wCmvSv3Xwkyd3qYxnrYP93QqVz9wrW3hsoIo4Y4ooIf3USr/BHTqKK/oiOx8k3cKKKKoQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/OnRRRX+fZ7AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFGP+mdAEdSUA4ry740ftf8Ag/4IX32G+kl1LVIT+9sbT/Ww/wDbWvcy3JcZjqnLh6fMa0cLVqVDvfEnjDS/A+m/atY1Kz06z/56zy+TXxv+2F8dof2gvGmleF/DN19qsYZ9nn/8srmeuV1jUPFv7cvxcWGGP9zF+6ilaPyoraD/AGq+oPhB+wz4N+FctneSRy6tq1v+9juZ/wDU/wDfqv1bB5dlXDUI18ZK9ex7dKjQwvxfEUfhv+wP4L8HwxzalbXWrXnlRNL50v8AqZa9m0fw1p/huz8mxsbO1im/1sUUX+uq9UdfmuZcVZhiqvPKozycRjK86mh4H8c/2AtB+JVzHfaDJF4dvppJZZxt82F68G0Txn4+/Ym8eRR6ta3V5Yw/6PFFPJL9nmj/AOmdffNch8aPg5pfxz8FNoeqSSWq+b5sU6/8sZa+t4e45lP/AGLNfepnZhcxv+6xBzmqftheBtF8FaXrVzqnmwap/wAsrP8A0iaGX/nlLW14a/aS8HeL/AV/4lsdU/4l+lf6/wAyP99D/wBsq+ZfhJ+x54w8CfEueO60PTtR0G+WWwuZb7yLjZBL/wAtF/55y1438Z/h9qfwO+JGteGY7q4trOSXyj+8/wBdF/yy3V9hS4KyHGVOXD1Pe33O/wDs3CVPdjI9m8WeMPEn/BRX40+FvAvgnQ9TaG5vVsokgWW4lPmy/wCtlr+ob/gnh+w/of8AwT7/AGUPDnw10eb7ZNpsfm3t80EUUt/PL/ra8p/4IkfsKeBf2O/2H/B9x4dHh3XPEHiexi1DVfEOm/6R9vaX/nlL/wA8q+yK/YcnymhgqHsqB4mbYyLj9XpElFFFe8fOhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/OnRRRX+fZ7AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUABOa5j4vfF/Sfgj4LbXNY89oIf3USx/wCtmlqh8c/j1ofwF8J/2hqcnnXE3+osVl/e3NfGSp4m/bt+Mlx9njms9Nml82SLzJZbewir9J4X4Q+s/wC3Y73aMfxPVweDv78/hNnUf2oviV+034z/ALF8MSTabDc7oY4LP9z+6/6aNXbfDj/gm1N9vt77xdrUc0iT75bOD9950X/XWvor4U/Bzw/8GPDNrp+j2MUcyxfvbyWL99NXVg47V6ObcerD/wCzZRTUY9zXFZgqfu0DP0Hw3pvhiwih02xtbOKGLyvKiq//AKymmT7Sad81fmOKxdWvP2tY8W7qazCiiiueQBUdSVHVUwJP+WteG/tp/s82PxX8CXuux/utc0K081W8zyojFXuVNngjuLdo5o4pbeb/AFscv+qr3MizqrluLjiInThcVKjU5men/wDBvf8A8F4fAP7P3wJk+D/xw8RXXh+Dw5ufQ9du/NuLQQf8+vlRxb4/Kr9x/h7490P4qeCtL8ReGdWs9c8P6xF9os76zl86GaKv5c/jx+wV4d+Js8V1of2Xw7qkzebO3l/uZv8AtlXJfAL9uz9pL/gkd44UeF/EWor4dW62Npl9/pej36xf8svK/wCWf+t/g2da/qTh3jDA5jD91LU7sRg6GNl7Wh8R/Wb9op//AEzr86/+CaX/AAcW/Bz9szw1oeh+NNTs/h18ULiKKKexvP3OmXs+7yh5Ev8A7Sr9D7OS3vbZbi3kjlt5v3scsUvmxTV9xTrRqI+cxWX1cPU94mooorY88KKKKDQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD+dOiiiv8+z2AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo6VHN1qPWdQtfDmj3F9fTRW9hbxebLPL/qoa7MJhKlepyUtwIdZ8Qaf4ctvO1DUrPTbf8A573k8UUVZP8AwuDwcP8AmbvDv/gzir4x/aI+Pfib9qXx43hjwys15ovn/wChwQReVLc/9NZa9o8H/wDBPDwjeeE9Nk1SPW4tUmgX7Yn2v/Uy1+oS4OyzAYWEs3rcspHrf2bTp0+arI9oPxi8H/8AQ3eGf/BnFW3pmq2+sWEV1Y3Ed1ZTf6qeKXzoZq+evGv/AATc8L6naRLourajpdx/enb7RXi/hHWPE37E3xvSHWI2uNP/ANRuZv3U0Ev/AC1ioo8HZRmFJ/2XX95dw+oU6kf3Uj7wrh/jX+0H4d+CFh/xNLryr94JZbSCWOWX7TTfHn7UHgnwJof2qbxFpsrTWf2i0gg/fSzV8l2el+Nf27fiTBfXVv5ui6dN9nby/wDR4bOKuXhvg2p7X6xmnu0oFYPAW/e1jj9S+I2m/tG/G3+1PG+sS6Dosx+by1kuPJi/55RV9wfs3f8ACA/8IPLH4A/eaXbybJZfKlhmml/7a1x1j/wT/wDh74fS8ktbG6vJZoJYoFvp90MMtfPVxpHjn9hrx/bzNM1xp9z811BaSy/Z5o/+eUrba++zCeAz7B/UcuqcvLsj0K0qWJp+yoSPvjPFFct8Hvita/GX4f23iGxtWs4rj9z5Df8ALGWupr8BzHL6uCrvD1uh85Vpez9yRHUlFEP7z/V1yRi6jsjIjqSvH/2kf2xdD+ByR2tn9n1zW5v+WEU/7m2/6614Xp3xr+Onx+1qOTQ/t+jwpH/y6x/Ybf8A3q+9yjgDG4yHt6z9lHzPTo5bUqH2p5FFfCfgH9uLxn8JPGd/b+K5rrxR5P8Ao/kS3f7qKSvffgz+3r4P+JNvL/bEkPhi+3bYoJ5JZYpv+2taZt4d5lhVz0f3kSa+U1qZ7fRUdncR39v9qhkiuoJv+WsX72GpP/RVfB1qNWlLkmedtuH+sqj4q8Iaf4z0hrHWLGC8s5v4Z4vOq1Pcx2lvNNJJFFFD/rfNl8mKo7LVbW/i8y1urW6i/vQT+dXRhXisN/tFE1p+1/i0j5d+NP8AwTftbzztS8FXklncQ/vfsk8n7r/tlLXsH7CP/Bcn9oD/AIJTW2neBvFGn/8ACWfD+wl8qPSdXjPnW0Xm/vfs8/3v91c+VXpX/LWsTxr4A0H4j2EVrrul2erQQyebEs8dfqHDfihi8O1SxvvRPRo5hf8AdYo/Z3/gmz/wVt+Fv/BUjwzfS+Bf7W03xBo9tFcavo19afvdN83/AFX73/VS/wCqr6mr+TP9nX9o7xL/AMEcP2+7Px5oOmR6to/72FrSWPbDqGnS/wCtiX0av6WP2HP+Chvwn/4KHeA21j4X+JodWuLOKJ9T0qWLyr7SpZYv9VLH/wC1Yv3Vf0PlOZU8VRVWHU48zym373D/AAnulSUUV7J86FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/OnRRRX+fZ7AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAfLXxv+2hd658Q/2i7bwbb6z/AGdp9yIoYlnn8m3H/XX+9X2Rjivkb/goL4Vm8IeOfDvjSwiMUvm7Zp2l8397F/q/lr9M8NalP+0WnvZ2PRyz+Oe0/s2/swaX+zxo0scMkV5rk3+vvmi/8hRV6gDg1ifD3xrD4/8AAek6xb3H2qK/gil83yvJ/e/8tf8AyLW3Xy/EWKxdfGVPrnxGGKq1Z1LSCvNf2l/gLovxp8ITSap9qiuNHtpbiCeFq9Kqnr2lyaxo95axyRRTXNtLF5tZ8P42pg8dTqUpGeErezq8x+bf7OHwX/4XZ8YLPRbiaS3sfNk82Xb/AAr/AA1+iXw7+GmhfCnRfsGhWK2dr/y12/8ALavjf9mT4vS/sufGDVvDviFbr7DfT/Z5W+b/AEaX/nr5Vfc0R+0wxSR/6pv3sVfpPiXjMZenFfwX2PYzepUqLT4Q6mvNf2udb0vRPgF4gm1SPzVuV+z2vmx+b+9r0LUtVj0ewuLqbzZYraOWaWvgvxx438Tftu/Gq30e1/0PTEl/0W0aT9zbR/3v96vB4EyapXxH12UuWnTOPLaHNU5/5T2D/gmReXH/AArzxBDJJL9nS5i8vzf9SlfTlc/8LPAFj8KPBVjodjHH5VhH+9lWPyvOl/56151+05+1zY/AJbOGxhsNY1Z5MywSz/8AHt/118qubN8PV4gzmX1KIq6+tV/cPY5riOzh8ySSOJYf+WrV8s/tr/taaXL4Zj0Lwj4ikl1CWf8A0yWy/wBUYv8ArrXE6knxi/a+1QQy297pmjzfvf3kf2e02/8AtSvTvg7/AME5tG8Jy/bvFV1/bV4kv7uCD5Lc19RluRZZw/L61mNZOp/KjppYWlhf3tdnJ/sxfsLR6xbW/ibxq11umbz4LH/nt/11r1b9rv8AaDs/gR8NG03S7izi16/j8qCDyv8AUxf89a9D+JHjjT/hV8O9S1S6urXTbewg8qD91/y18r915UVeVf8ABKr/AIJ4eNP+Cu37Xdr4i1zS4rr4e6PeLceJdQnX7PbvF/zwXy/+Wpr2uHaOMz/HfXMTpRj8KNqVWdWXt5fwz6M/4N3v+CH2m/tVi0+PPxWjg1Lwfa3kg0jQz/zFJ4v+Ws//AEyr6M/4LZf8EG/2efhv+x144+LHgfw/qXgnxH4Ss/tog028/wBEv5JZf+WsUvm/+QvKr9cvBXgPQ/hn4MsPDvhvTbfSdD0eBbe0s7b9zFDFX5S/8HZf7a1n8L/2ZfD/AMItO1i8h8R+MLv7beQWWoKnk2cX8M8X+t2y1+0VMPTp0DlweYVsVi/c+E/I/wDYF+GHjKzv9L8TXV5I3hWaGXyoftn8X/XKvo74s/Gvw/8AA7SLe+8RXF1FBcy+VF5Efmy+b/1yrxu0+LNr+yb+ydoltNd2s3iK8tPO063i+fHm/wDLWVa+f7T4JfEz9qhpPF7Q/wBorfS8zvPEn/jtfiWNyGlmmYSx2P8A3dGPu9uY76mDVWrz1fhOu/aH/af1b9p7xTb+EfBkN5/Y80uyKLbsmvm/2v8AZr6W/Ze+CMnwL+HMVheXUtxe3Mn2if8A54wy/wDPKqf7NX7LOh/AXTvOt/NvNWuY/wB/PP5XnQ/9Moq9Z/5bfjXyHF3EmD9h/ZWWx/d/mcGYYmmv3FAZRRRX5eeSYPxI+GmifFfQf7P17T49Rt/9bHu/10MtfMOofAn4mfsQeMG8efC3xXqmnf2XL9q82xuvs9xD5T74vNi/5aLX14Dg/wDTOm39nHqthcWt1HFcW9zF5UsUv/LaKv0DhfjTF5bONL/l2d+DxlWloz9EP+DeT/grF4w/4KQ/BDXtL+IENvdeK/AMsFvNq6sq/wBsRS/8tZYf+ev+5X6PV/MJ/wAEYv2ofAn/AATK/wCCrGqSeNbm8g8MavBL4dXUNvy2LSyxbZZf+mVf0weBPH/h/wCKvhGz8QeGdc0nxHoeofNaalpt5FcW9z/1ylir+rsrxka9CM11ObOcHap7aPwm3RUdSV6x4IUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeXftafBmT41fCeextV83VLD/AEi0i8zZFur1GivayfMqmBxkcRD7JpRq+zq+1PkP9if9qOHwZZz+DvGOrf2dFYybdPadflh/6Zbq+vP9YkUn/LKb/VNXgf7Rf7DWhfFJZ9W8P7dD1webcSeVH5sV9/2yrx39kP8AaP8AE/w1+Jdv4Q177ZeWN9P9iMVw3722b/pnX6Zm2S4TiChLM8sl+9t70T3MRhqeJpe3oH29RR/1zk83/rnUdfkdSk6VXlZ8/seEftifsor8YtI/tjw9awR+JFl3Sj/lrf8A/Aq8v+FH7VvxF+CFp/YOveE9Q16100eVHHKsqTQ/9tfmr7HqT5q/QMr44UMJ9SzKn7WJ6WFzH937KufLesf8FBtQj0qf7d8Mb2O1ki8qfz7qXytv/fqud+GH7b+l+GpLi38K/CiKHzvmk+xXUs0v/oqvrD4g+BLX4p+Cr7Qb64nis9UXypZYP9bXyv8AsKTaJ8K/jV4x0e41S1tWLfYrP7U3ktc/va+2yfMcpxWX1p4eh8O8T08LUoToy90teOv27fHPiDQvsug+Cb7Rrlv+XxoGuNn/AJCqn8DP2OfEvxL8b/8ACV/ERrqOGb/SH82f/S5pf+WTV9gSyU3/AFlfJVuPKVCg8PldD2bOD+0fZx/dUx0A2Q+Wv7n/AJZeVFXI/Gv4xaX8EvBcuuan5v8AzyggX/l5l/55Ve+I/wAU9B+FGgy6lrmpWtnF/wAsomk/fXP/AFyr5t+Cnwa+Jv8AwWS/ap03wf4NsJI9Jt5fNlkl/wCPHSYP+Ws89LhHhHEZtifrOM/hmeDwbr1Pa1fhNb9nX9j748/8FmviTbW3hvRZofC+nzx295q/+q0zR1/56v8A89G/65V/Sf8A8E9v2AfBf/BOX9nyw8B+Dllm/wCXjVdTl/12q3n8UtbH7HP7G3gf9gn4D2fgvwPYWeh6ZAIpdQlWeXybmf8A5a3H72WXy/Nr5a/bx/4OOvgB+xJczaLpt9N8UvFts3ky6Zoc6Jb2/wDz1WWf7qt/2yr+lsDg6GCpeyhoh4itVxP+z4ePuntX/BXv9qvxZ+xJ+wL4y+JHgn+zU8RaD5UMH262+0W/73/plX8m/wAYf2j/ABl+0R8b77x54v1S48Q+JtVvBezXF5++85/M+5s/55f9M6+xP27v+Cqnx2/4LJ/ELUPC+mzXWg/D15/tFp4aglihtLaL/npPPx5hp37NH7Fuj/BhGvtYa11jW5v4pIP3Vt/1yr5fiTizA5dSvVev8p6uD9lgaHv/ABHifgX4BfEL9qHxhY654wSaPR7Xyh/pf+jjyP8AnnFHX2f4X8N2PhfR7fTdPtYrWzsItkSxVbIwakr+eeJOMK+av2S9ymeNjMZVrBRRRXwpwBRRRQAUT0UUAeNftU/spaR8btNuNYjaXTtbsIJZvPgg837TFFF/qvKr1n/g2/8A+CvEf7JPxVT4F+NLGObwZ421P/RNVaSKGXR7z/pqZW8ryP3f/AKuf8e6bq+O/wDgpN8G/sk2l+LtNtYLWxeP7FdxQQeV5Mv/AD1l/wCutfvHhrxfOUvqGI/7dPby7FRxC+r1j+uay1W31Wwt7q1ure8s7mLzYJ4JfOieP/nqstWq/Gf/AINYf+Cnmj+Mvg1dfATxp4itNP8AE3h+WW78L/bmbdqtn/rZYvNaX70X/PL/AJ5Cv2Y/1df0Dha3Oj57MsHUw9XlQUUUV1nmhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH86dFFFf59nsBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUZk8upKKAI68L/bC/ZRm+O1v/bmlXUkWtadCIobT5fKuf8Atr/z1r3iivoMizyvldf29A1w+IqUanNE+N/2SP2j9Y+CniGz8A+KNN+x2c118slzA0VxbS/+zV9kf9dK+T/+CifhCTw34h8O+NbHy4J1bypZ0/1s0tfR3wl8eWvxL+Guk61a3Es32mCLzZJf9d5v/LWvteNMLSxmEo5xh6fxfEejmFGNSn7ekb1SUVHX5ceSSV8g/Gv4a6T8Pv2zvBf9kxTQRanNFdTebL5u+Wvr6vkP9uvxx/wrj9pHwnrP2X7Z/Z8P2jyd23zq/RPDurUqY2pho/bjL8j1sp5vaWPrDxTrlj4P0e81TUporOwtv9bO1fOHxr/4KB28d5Bo/wAPbN9evrz5FuWtpeG/55Rxf8tKZ+yZ+zJ4y/4K5/tlaLoN7/b3gvwv4qlZTrVpo899Y2wi/wC/UTV+9/7Av/BBn4EfsLeFNEuJvDOnePviFo9z9t/4SrUrT/SBL/0yi8391X6lw94a4Wk/b4r3mdFSnQw372ufit+zB/wRQ/ag/wCClXxLj1rxd4ZuvBfh21ZYbu/8TwNpaIv/ADyig/1v/AkSv2Y8aeIv2ff+DcX9jG31Kx8L38VrqtzFbtBpn+kXusXnlfvf38v/ACy/6619SftSftQeGf2S/gl4g8ceLL6KKz0G0lu4rP7XFDd3/lf8sovNb95X8wv/AAUM/bx8Z/8ABa39qmzvIrXUPD+g20fk6Tok+oS3FvYL3l/1X8dfo1T2GAodkGFq1MV78vdpn0d/wVQ/4Oa9Q/bk+DuqfC74a+BZvDfhfxJFFFqN9qrJcanP/wBMlSL91Xyj+zd+wFofiPwnpmu+LP7W+0TH97pc0f2f/wC219D/AAm+Ceh/CfwTZ6XY6bZebDF+/l8rzZppf+utdfX4fxV4nSqf7Pl//gRNbMaVP91hzJ8IeANE8C20kOh6XZ6THN/rPskHled/11rWnoqOvx7F4ytianta0rs8irV9p8YVJUdH+rrkMiSjrTbySOzspbqT91b2372WX/njFXkPhv8Abg8E+J/GkGhWP9uSXlxP9nil8iLypm/7+17WB4fx2MpSrUI6RNKeFqT1iewUUf6uivBehmFFFFABXI/HP4Ww/GX4YapoUkkUU1x++tpPN/cwy111D969TL8dVwVeOIo7mtKp7OrzHxH8Q/8AgndrngjwTHqWk3Uusa1byNLcwWnyxJB/s/8ALWv0a/4Ip/8ABw14i+GfjZfhf+074qih8LWdhBaaLrWoafL9us5xKkUcU7xJ80WH/wBbL/qvKrga+aP21v2PI/G9teeL/DS/8TaGL7RqFp/z8f8ATVf9qv3HgvxElia/1fHns0MZTxX7iuf1Z6Pq9r4g0q3v7G6tbyxvooriCeCXzYZov+ekVaFfmd/wa1/tFeOv2iv2FPEM3jrxNq3ii48N+If7K02S+l3fYLOK1i8uKL/plX6Y1+60avtInyuYYX6vX9kFFFFdRxhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRWgHA/tL/DX/ha3wa1bTLeOOW88vzoN0fm/vf8AplXgP/BOD4iX2l6zq3gq+E4hTzZ4om/5d5P+WlfXh/10dfHemavqfgv/AIKJXHkxy266xf8A2dt0P+uil/u1+rcJYr69lGKy6r25j2sHV9pQlA+xKjqSb/XPRX5U9HY8UK+Yf+Cjnwc/4SDwlb+LIbpo7zTv9Clg/vrX01UepaXDrFhLa3UMN1ZzfupYJIv3M1fQ8L5z/ZmYRxXQ6sHivY1eY+tf+CDP/BZP9mjwF+zd8PfgaDq3gHxlcSyw3MF7HLNY395L/wAtfP8A+Wfm/wDPOv1+x5f+s/5Y1/Il+018Jb79lT4r6H8S/AFr9jXTbyK9i/cK9vYzxfd+X+7X7L/8E6f+C9vhP/goF+y74q8A+NL6fSfjNb+EtQ8+W7ggt7fXpfs8v/HnFH/6Kr+tMjzyhjcIq+H6npZhl/1n99RPiL/g5q/av1/9qr9u3SfgppH7jRPBP7mOOSWKVLm8l/5b+bt3rXHfAD4GWPwI8D2ulrHFdajt/wBJu9qpLN/0y/65V4D/AME/PhlY6x4w1vxW2ot/amlXksH2L5eYpf8Alr/z1r63r8X8UOIq7q/UaXwizCo6NKNCIUUUV+GniBRRUdaASXNN1K8t9HsJbq6mitbeGLzZZZZf3MNRXmqW+j2Et1dTRWtvbRebLO0v+pr4Q/aG+LXir9q34mto3h6G81HRbGTyrOCzjl8rH/PVq+44U4XlmtT2lb3aUdzvwOD9tK5F8af2jfF37SfxM/snw7LqFnYlvsVnZ2M8n76LP8f/AD0r6F/Zb/Yps/gpcf2zrU1rq2vN/q/l/dWP/wBtrd/ZV/ZU034A+H/tV1HHceIrmP8Af3P/ADx/6ZRV6rX0HFHF0aNP+y8o92nHR+Z14zGKn+4oElFH+ror8jPFCiiiH97RZvYAoomtpEP7yPyv+ulFU01uAVT8SafNrHh7VLW38r7Rc2c9vF/21iq5UddWDxHsqqqhR01NT/g2Z/bc8Tfssftl6p+z94r1LRfD/hPxbLPex22opsaLU/k8uKCX/prF/f8A7tf0Mf6uv5Lf2/f2e5rZZviJoUt1HqltLFLqCxbv+2U6/wB2v2z/AOCHf/Ba/wABftdfBL4c/DHxV4muP+F5/Y5bKbTfsl7cS38UH/LeW8aLyvNlii83/W1/Y3CueUMfg414HqZlg/rVP6zSP0joqP7RT8/9MzX2R8mLRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV8w/GT/AJSAeD/92H+tfT1fJf7Zi6x4D/aY8H+JLVlt1m8pbWXPm1+i+H/vYirS/mhL8j1sv35T60oo/wCWVFfCYmj7Oq4nmu9wooorlMyDWNHtfEGlXFjfW8V1Z3EXlSwN/qZq+QP2nf2IYfhjos/i7wVdaov2WX97Zr/rbaL/AJ6+bX2PG2CKQpHcr5ckcUsU3+sir7XhnivFZVWSi/3fY78Jj6lFn5R+A/iRrnwu13+0NC1S90u+j+XzYJK/Qr9mL4/aP8ZPBWl2sesfbPFEMH+lwT/LcTS/89a+df2n/wBhXV9D8SNqnhKG81qDVJ5Xaygs/wB7aV5/43/Zt8dfAnTLDxAIdSgheDzXubMSxTWDf88pf+edftubYXKOIMJT/eLmfp/w59JXjQxVM/Rzy8ny/wDVTUEY/wBZXwf8B/8AgoH4k8DXFrpviCRte0f/AFO6c/6Rbx/7Ev8AF/wOvuTR9Yh8Q6RZ6ha+b5GoR+bF5v8Azyr8V4o4PxeUSu9aZ81jMuqUS5R9n/8AtVMY4avOP2rPiXJ8Kfglq19DdSWV9df6PZyRx+bL5v8A7Sr5/J8vljsZHDx+0c1Gl7SryHjv7Z37Yul3Phu/8GeGprya+ml+z3l3F+6i8r/nl/00rc/4J3fBSPwX4QuvFd014up6j/o/kNHt2RVyP7A37Pf/AAkd7ceO9eja88uXbBBd23nJc/8ATX5q+vv+WMUdfpvFGb4TKcH/AGNgN/tM9vGYmnh6fsKRHRUlFfjx8+FFR1JDB5la0aM6jtAAr5N/as/bZ1TRfFuoeEPCkem3lvNB9inuQPtDTM3/ADzrqv2g/wBvXwz4T0fUNI8Pf2hea5NFLb+b5PlQ2Ev/AG0/1lcr+wF+z1Z6rbN461q1iuLkT/8AEvil/g/6a7a/W+HMhpZTh5ZrmsP8KPdweF9j+/qnq/7GPg/xD4L+EX2fxFa3lvfTTyTf6XJul8qvW6KK/Nc4zBY3GVMQlbmPGxUva1OYKP8AWU29u7fS7GS6upo7WC2i82SWWT91DFWX4a8faF428/8AsbV9P1j7P/r/ALNPu8msKeArSpfWFH3UHs6nsy5rGkWviPSrjT9QhjvLO5j8qeBv9VNFXx5+0r8JdS/Y3+KPh/4kfDvWLjw7JHqCy6e9tP5Vxptyvz/u/wDplX2bXzj/AMFLf+SSeHf+wv8A+0q++8Oc3r0cyjhIy92R2ZZWqU63sj+pj4Y382t/DDw5fXU0k95c6bBcTyN/rZpfKroq5r4Nf8ka8J/9giz/APRVdLX9W0fgPnsV/FkFFFFbGAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAABmiiovtEdvbyyTSRRW8MXmyy1tRozqzsgoq9Ug8SeILHwvolxqWpTRWdhYx+bPLJX56/H/9pSb4ufGiHU/OvJNC027X+z4D8vkxV23x2+I/jT9sf4t/8IT4F0vUtcsYZ/s9rZ6VFLcfaW/56NX27+2D/wAG/wDefsQf8EgLrxtqml/8JF8WZb621LXJ4JP3XhjTv4ol/wDatf0lwPwWsvwvt6/8Sa/M+qweFp4b4ip4b1y38UeGLDVLePyre/giljikq9Xif7Gv7Q1h8VfANlokn7rWtHtPKmj8ryYfK/5Zbf3vzV7ZX4bxPltTA5hUoTPn8XR9nVCiiivmTlCiiigAqnrukW/iPR7yxuo/Ms76P7PPF/0yq5RXdh8ZWpP90yvbM+Vfj/8A8E6dP/sK41TwK1xDeW67/wCyp287zl/6ZS/3q5v9jj9q7VPB/i4eFPGmqf8AErm/crPqcsu6wb+7X2ZHcrXkvxo/Yt8H/GzUrrUZo7zSdWvIv9fbf6nzf+erL/FX6hlHGlHG0JYDPPh/mPZwuY06n7quepaD4hsfE6eZpd9ZatFD+6k+w3MVxDDXif8AwUat2t/gPa+ZHJ/yEVrk9K/4JoSaGrJa/ELUIVb/AFnl6d5W/wD8i15/+1H+yNdfBT4fQ6xJ4yvtdWa7+z/Y57WWH/2rXo8OZHk1LMY1sFiuZ9jXD0KHtdJH1n8BfDFj4d+Deg2lnDLHDJaLNtaXza6+1rg/2YfGf/CwPgdoOoRwxWv7j7P5Syeb/qq7z/lrX5txNTq08xqRxB5ON/iSCiiivnUcof8AHw//AE1r47/aY/a51n4jeNf+EP8Ah/JqEcPmfZ5JoPkuL9v7v/XOvXv2zf2g7H4QfDK8023uov7e1iP7PBBF83kxf89a4X/gnt8Av7F0RvG+pLP9u1L91ZxsP3Xlf89a/WuF8toZZgZZ1j46/YTPbwdKnRo+3qmn+zP+wjY+AJv7Y8Xx2esai/zR2cq+dDbf9df+mtfRf7vyfL8v/gNO/wBZTfLr4fPOJMXmVXmrS0POr4qpXHUUf9NKwfiT8S9H+Evha41jWbqOC1tv9VF/y2uZf+eUVeVgcDVxdX2VH4jlp0XUqHl37dHx2k+Evw+j0Wx8n+1PE0Utu3nxfcg/ib/nlVT/AIJ+fDWTwb8Iv7YuoZY7nXpN27du86L/AJZ185x6rqX7bP7StrJND9ltrqVU8lZPltoF/wBr+9X39pthDo9hb2tvH5VvDF5UUVfqfEap5NklPK4/xJ6yPcxn7mh7IsV4X+3/AOAL7x38DI7qx/ff2Dd+fJEqyvL5X+qr3JOtV9f8Pw+J9Bv9PupJfsd9BLbz+V/rvKlr4HhjMfqWZU655GErezq3P01/4Nrf2n4f2hv+CYnhfSW/sWDVPh3I3h2SC0vPNuPKj5inni/5Z+bX6A1/NX/wbiftJeLP2Qf+CnyfCe407UJND+J0kumz6dLc7IkuIo5ZYrr7v7z5I5Y/+2tf0pzfu5pa/srLcVGpSTFnWF5K3OvtC0UUV6h4YUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfzp0UUV/n2ewFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEU1xHZwySSSRRRQ/vpZZa+OP20f2sP+Fg3C+FfB97NcWFy227aCDyZbmX/nl/00ioor9g8LctoV60q9RXlG1j2Mpox9pc/Zj/AINq/wDgj94u/Yh8OXnxc+IFzdaT4o8bad9ms/D/APz7WbfvfNn/AOmv/TKv1K8VeF9L8eaFcaXrml6drml3P+vsb6CK4t5v+usUtFFf0hhl+6ODNa0vrZ/Kt+3D8NU/4J7/APBXbxdo7TaLcabHqfn4sbP7Pb2sFx/DFF/0y/pX0jDcx3ltFJH92aLzYqKK/n7xaoQVSjNb6/oejm3w0x1FFFfiB4oUUUUAFFFFABRRRQAVzvxX+Gdn8WvA99oN5J5K3y7Yp/K83yZaKK9jJcRUo42nKmzXC6VT45/Y9+Jt18DvjjeeE5F/tGx1S7+xHLf6qX/nrtr7o+4aKK/Q/EyhD21Ovb3nHU9HNl++iwrh/wBov4tSfBb4VX+ux2v2y4WX7PEsv+p82X/lrRRXyHCeHp18yoxqK6uceG1rnyv8GPgz4o/bE+IsXjHxZH9o8P8Am+VczqYrfzvL/wCWUVfaXhnwxpvg3QrPTNLtfsdjYx+VBB5ks3k/9/aKK+w8ScZV9rDDJ+4uh6ObPSxeqOiivyc8Q5L45/GKx+BPw8utdvoZLyXzfs8EC/8ALaf/AKa18WnxB8SP27PEcelq0F1DpcklwvyxW8Nn5v8AtUUV/QfAOX0KWUyxsY+/3PosrivY8x9gfs9fs+aT+z54P+y2axXWqXH/AB/X3/LV2/8AjVeh21FFfjHEGNrYrFyrVneR4+OrSdTUKKKK8Wjucp8sftVeONW/Z6/bI+HnxOs5tSt4tLntbiN7G8+z3EywN+/WKT/lnvi+X/gdf1Lfs6fHjw/+1D8D/C/jnwrdWt5o/ibT1uIpYLtbjyf+esXmf89IpaKK/sDgitKpldFyPWzLXCxZ3tFFFffHyIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/9k=","1726765282"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Htpw9ElCHKIT+81b8RKJxX3GTSMIqJaBUo4N7bVJrtu9Q9kjCEjur0Cyr1kquvmRrEhN8b3oxtonJfycly6NDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1726765437"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eJKnReV7pboOaTo/qUNaw6S8eF6s7D88ookiFW970MwbElo2r6tbvTd3GwT5Gt6zGKDPaCxm1zMVOKikPxkeAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fmSEMpXwsw5w5Dj7J1Jr4E9Jlj0vmlXzNgQivTzl9jvOdg1HoylCIAVVGLxRcwGk4Ecv/vqdM9qSEyorrrylDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i/w4Kg4v5GXwrRflaU+WXYjO2Urt9UEEjdxWeTIPt2T7LVZ8t6/ZdoqwhX9L95yhkrAx1cHHqwXHl1y0yKU9AQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kTioY6vncEyQijufu/3q4vsYqRCoKUPwgQxNn+ySBqQQ6y9P8z0JJ2l5P/5RpB5ipKBTuPxkUmgPYhlKuNtsAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cHJAK8EBTKlQ4mrS+G4iNoviv80ovWML9Lala42EGfdVp5cWG1iNIutXaSzCzZ/zF/S7UG5//MW0JsPlp8K0DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000z"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I1q4sycLiJD/+LXpPkJo7kghvdsOvzAYtGciLkU+goYQP4u+cxZlkdZksk5ev2+Ez2TCt+sBWLijjBV2o+dfCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"AddComment","args":["discover-gno-gc24","Good to see!. BTW is this comment going to be broadcasted and stored in all Portal Loop nodes?"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mMzT+btVwnabmjknLDLvoSWD4cdOKhzeBDMCKgMTxrzkpwSuigx/GfjEuu8ZGFqHQfhYRqZKuYVKRh9taR7HCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddCommenter","args":["g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HSghE3f6iI+oVYOeBX73ttiF1Jm7jqMtjP5FfL5qzgZampm6CfcZqc/aAM6OVdv4aoRkZSc+GAKqBevvY7haAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16spe09atej02lcgxwqfpnk6l2ghqvm56z6hsyv","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"PostExists","args":["discover-gno-gc24"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dNW5UQkeHscCLHFtgLV2JqMMaoy+Oo6P3x+BdxjVCCmXTWGPkZXixWSfV8NCt7W9MFao/Ei0/MoFyy9RI2qeAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1734444927"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gshd6fxAHhUQi+XpRn6auk7sdI21LkMEpPaYhIY9cxW5QuAMD1+DWWCxJ8U0W4vxLwZYzkOD+vwPb0QYEbJSAg=="}],"memo":""},"metadata":{"timestamp":"1734444927"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000w"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cg+RgW42jZzseB2oJ57DVP80yJYduOe1UR3GyNlSycNQWyZDBaIqVlFNT0qGrY5z4XbMeMDNUdUV5zhbLSTeBQ=="}],"memo":""},"metadata":{"timestamp":"1734563386"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","send":"","pkg_path":"gno.land/r/gc/gc4","func":"Inc","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OkooVD/X6oQnkg4448iPnatyVoeWvD3FxkFGshgQj2neiQYH5VA0IwRhLUb9YomIxutsySxl6qKxUSfBAnTCAw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734388925"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","send":"","pkg_path":"gno.lang/r/gc/gc","func":"Inc","args":null}],"fee":{"gas_wanted":"500000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E2W/eJGcyBt46VD/8bP3kXlIq1kqQi1JC8MHq3ZjodigB1/fVlT6+vvthO8K7i5fAv23F38vHoAD15OHD7vRBg=="}],"memo":""},"metadata":{"timestamp":"1734387384"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","send":"","pkg_path":"gno.lang/r/gc/gc","func":"Inc","args":null}],"fee":{"gas_wanted":"500000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E2W/eJGcyBt46VD/8bP3kXlIq1kqQi1JC8MHq3ZjodigB1/fVlT6+vvthO8K7i5fAv23F38vHoAD15OHD7vRBg=="}],"memo":""},"metadata":{"timestamp":"1734387831"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g16w0tyhp6h6npxhjuhjra5levddhjfwfcz8te7e","send":"","pkg_path":"gno.lang/r/gc/gc2","func":"Inc","args":null}],"fee":{"gas_wanted":"500000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jTOSXne9XdxfpZIKhTYV5EKc1/iFZxI0couk7OH70+IhhkWyh2E8pwCPFhjFOeb+lWfAdEZ5Hy7zqhhzBgDMBw=="}],"memo":""},"metadata":{"timestamp":"1734387977"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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BBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBABBBBAH//2Q==","1710951355"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VcGj+sus3q/paHCmSp0EVlU9MZEjB4G1FAGVOpsf3RLN1PuE5Y52vy1MSbs7tMSL7JFJ0f7Tg5hjSJjuciPIAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YZ4VwJ62h8TTfp++sjmhOxzpfmLFgVl6O3ZC81N5TwnYXAGYqzjhJ2W6AY9RTNbHFOzJTo7NtbcuX1Y82NMbAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"buHgF5Uu6OQISYH68S1qdtxKULScJxwl+cAbEvhlAKXwQEJQ67N5Q9b4fKSeI1zzR4Irb1es4vH/fB/sFbMxCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"message\":\"#newlogo #gnoland #gnomees\",\"files\":[{\"fileName\":\"og-gnoland.png\",\"url\":\"ipfs://bafybeifmvq5f243mk6tevkbmws53lgsdegxpsd2qslzji4uqkafu7zuoai\",\"mimeType\":\"image/png\",\"size\":4739,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[\"#newlogo\",\"#gnoland\",\"#gnomees\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-24T10:04:45.437Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CWn+9XKUQFNbQV5J+Co4lvKD9RzVkRonFSfWgGP58mvE5iLEhKa/1umcxHmY9orWQMR6KTO2EKwDeiQYrNbGBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"message\":\"Testing.jpg\",\"files\":[{\"fileName\":\"ORIGINAL BTC JAZZ CLUB.png\",\"url\":\"ipfs://bafybeigdfk3mhrt4lmls4ogywmnpmd22emlazgnzf2qmj7vsjn2ljnb6sm\",\"mimeType\":\"image/png\",\"size\":1408208,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-23T12:48:09.638Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"INQMAf9i9UQljiQ3gCaVh8+1O/ItXgTxA3ZoDoHbP7UWEAheD340DGQBg78TJh87AOBeRRGJTYrR8e7Jfp02Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"message\":\"Testing.jpg\",\"files\":[{\"fileName\":\"ORIGINAL BTC JAZZ CLUB.png\",\"url\":\"ipfs://bafybeigdfk3mhrt4lmls4ogywmnpmd22emlazgnzf2qmj7vsjn2ljnb6sm\",\"mimeType\":\"image/png\",\"size\":1408208,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-23T12:48:09.638Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"INQMAf9i9UQljiQ3gCaVh8+1O/ItXgTxA3ZoDoHbP7UWEAheD340DGQBg78TJh87AOBeRRGJTYrR8e7Jfp02Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"message\":\"testing!\",\"files\":[{\"fileName\":\"ORIGINAL BTC JAZZ CLUB.png\",\"url\":\"ipfs://bafybeigdfk3mhrt4lmls4ogywmnpmd22emlazgnzf2qmj7vsjn2ljnb6sm\",\"mimeType\":\"image/png\",\"size\":1408208,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-07-01T11:53:19.763Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BDvaXcfC14OiiKCh3CuDFvxouAlJCoRvcrI5FBxEwurX7la644p17A2C8k+j0RhGsPqm+mnh1Z28tC9EHsAdAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","5","{\"message\":\"🔊 Les Rues de Paris - Instrumental \\n\\n#hiphop #boombap #instrumental \",\"files\":[{\"fileName\":\"Les Rues de Paris .mp3\",\"url\":\"ipfs://bafybeibhtf2h7witxv64yowemr4ndbhffyk34tyxdx33ltzh54p6hwmbwa\",\"mimeType\":\"audio/mpeg\",\"size\":2875437,\"fileType\":\"audio\",\"audioMetadata\":{\"waveform\":[6,4,13,12,12,14,4,5,14,14,15,6,4,16,15,11,6,1,13,5,9,19,22,23,15,11,13,7,13,12,9,12,23,14,12,9,11,9,11,11,7,11,18,19,18,5,14,10,10,14,5,14,10,14,16,14,12,2,7,5,5,5,1,5,13,9,14,14,7,10,9,12,17,11,11,10,11,15,4,11,9,10,13,4,11,9,8,10,3,20,18,20,20,8,18,22,19,13,19,17,14,9,22,17,15,14,6,14,18,10,8,4,13,20,24,26,11,15,11,9,10,9,15,19,15,11,10,11,14,6,7,9,11,15,13,19,11,11,15,4,10,9,10,11,10,10,8,8,14,11,10,7,7,9,6,14,16,8,12,9,11,8,2,12,15,12,15,4,13,9,9,5,-1,0,6,7,8,6,12,7,8,12,18,19,14,6,17,19,16,14,15,9,7,20,19,12,12,10,10,18],\"duration\":119760},\"thumbnailFileData\":{\"fileName\":\"Paris-Beatmaking-Cover.png\",\"url\":\"ipfs://bafybeic33uehiyisnfn2nfof3ifteaylvj3uht23uwpymched2jwg4h4su\",\"mimeType\":\"image/png\",\"size\":811475,\"fileType\":\"image\"}}],\"gifs\":[],\"hashtags\":[\"#hiphop\",\"#boombap\",\"#instrumental\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T15:40:29.813Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Y6EwiEoETYdkyL1sN4cKJJ4JLo8v0idVlevPFiYd55DvEjjKpXN9gdnerp5Al2bOVbdEwOR1w1HVtLSjtgoYAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","5","{\"message\":\"🔊 Les Rues de Paris - Instrumental \\n\\n#hiphop #boombap #instrumental \",\"files\":[{\"fileName\":\"Les Rues de Paris .mp3\",\"url\":\"ipfs://bafybeibhtf2h7witxv64yowemr4ndbhffyk34tyxdx33ltzh54p6hwmbwa\",\"mimeType\":\"audio/mpeg\",\"size\":2875437,\"fileType\":\"audio\",\"audioMetadata\":{\"waveform\":[6,4,13,12,12,14,4,5,14,14,15,6,4,16,15,11,6,1,13,5,9,19,22,23,15,11,13,7,13,12,9,12,23,14,12,9,11,9,11,11,7,11,18,19,18,5,14,10,10,14,5,14,10,14,16,14,12,2,7,5,5,5,1,5,13,9,14,14,7,10,9,12,17,11,11,10,11,15,4,11,9,10,13,4,11,9,8,10,3,20,18,20,20,8,18,22,19,13,19,17,14,9,22,17,15,14,6,14,18,10,8,4,13,20,24,26,11,15,11,9,10,9,15,19,15,11,10,11,14,6,7,9,11,15,13,19,11,11,15,4,10,9,10,11,10,10,8,8,14,11,10,7,7,9,6,14,16,8,12,9,11,8,2,12,15,12,15,4,13,9,9,5,-1,0,6,7,8,6,12,7,8,12,18,19,14,6,17,19,16,14,15,9,7,20,19,12,12,10,10,18],\"duration\":119760},\"thumbnailFileData\":{\"fileName\":\"Paris-Beatmaking-Cover.png\",\"url\":\"ipfs://bafybeic33uehiyisnfn2nfof3ifteaylvj3uht23uwpymched2jwg4h4su\",\"mimeType\":\"image/png\",\"size\":811475,\"fileType\":\"image\"}}],\"gifs\":[],\"hashtags\":[\"#hiphop\",\"#boombap\",\"#instrumental\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T15:42:19.694Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NEPDrCtV0tg0ZtiDrg96ILzgbmfApY7Nlf2xODVwaJjQFnrTMRWhVXh6577q6oRASYNgrzArZ1ViANU7ULWSCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","5","{\"message\":\"🔊 Les Rues de Paris - Instrumental \\n\\n#hiphop #boombap #instrumental \",\"files\":[{\"fileName\":\"Les Rues de Paris .mp3\",\"url\":\"ipfs://bafybeibhtf2h7witxv64yowemr4ndbhffyk34tyxdx33ltzh54p6hwmbwa\",\"mimeType\":\"audio/mpeg\",\"size\":2875437,\"fileType\":\"audio\",\"audioMetadata\":{\"waveform\":[6,4,13,12,12,14,4,5,14,14,15,6,4,16,15,11,6,1,13,5,9,19,22,23,15,11,13,7,13,12,9,12,23,14,12,9,11,9,11,11,7,11,18,19,18,5,14,10,10,14,5,14,10,14,16,14,12,2,7,5,5,5,1,5,13,9,14,14,7,10,9,12,17,11,11,10,11,15,4,11,9,10,13,4,11,9,8,10,3,20,18,20,20,8,18,22,19,13,19,17,14,9,22,17,15,14,6,14,18,10,8,4,13,20,24,26,11,15,11,9,10,9,15,19,15,11,10,11,14,6,7,9,11,15,13,19,11,11,15,4,10,9,10,11,10,10,8,8,14,11,10,7,7,9,6,14,16,8,12,9,11,8,2,12,15,12,15,4,13,9,9,5,-1,0,6,7,8,6,12,7,8,12,18,19,14,6,17,19,16,14,15,9,7,20,19,12,12,10,10,18],\"duration\":119760},\"thumbnailFileData\":{\"fileName\":\"Paris-Beatmaking-Cover.png\",\"url\":\"ipfs://bafybeic33uehiyisnfn2nfof3ifteaylvj3uht23uwpymched2jwg4h4su\",\"mimeType\":\"image/png\",\"size\":811475,\"fileType\":\"image\"}}],\"gifs\":[],\"hashtags\":[\"#hiphop\",\"#boombap\",\"#instrumental\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T15:42:36.693Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1ytweQZct+fWuE3TJeI60ywpIE3zP3e0TOBiILpGyoWrUsL+jck2aLrhbRjPpos+NP3OWbFmAcWZiUKQbR1CDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"#instrumental #hiphop\",\"files\":[{\"fileName\":\"Ménilmontant.mp4\",\"url\":\"ipfs://bafybeihxtnpvrxwzepw4yff7a2xyuew7gy7cgtga4m7gtbdzxlqtnbavuu\",\"mimeType\":\"video/mp4\",\"size\":4356094,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#hiphop\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T16:42:58.018Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dz3se1XEULvdlGwR8heR+WQiiCoYp5cdrcn2dAZtBlx6TjGDrkdMUjUwIpD+nKqHe7ZMw+k8w2voWqil2FfkBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"#instrumental #hiphop\",\"files\":[{\"fileName\":\"Ménilmontant.mp4\",\"url\":\"ipfs://bafybeihxtnpvrxwzepw4yff7a2xyuew7gy7cgtga4m7gtbdzxlqtnbavuu\",\"mimeType\":\"video/mp4\",\"size\":4356094,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#hiphop\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T16:42:58.018Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dz3se1XEULvdlGwR8heR+WQiiCoYp5cdrcn2dAZtBlx6TjGDrkdMUjUwIpD+nKqHe7ZMw+k8w2voWqil2FfkBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"#instrumental #hiphop\",\"files\":[{\"fileName\":\"Ménilmontant.mp4\",\"url\":\"ipfs://bafybeihxtnpvrxwzepw4yff7a2xyuew7gy7cgtga4m7gtbdzxlqtnbavuu\",\"mimeType\":\"video/mp4\",\"size\":4356094,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#hiphop\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T16:42:58.018Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dz3se1XEULvdlGwR8heR+WQiiCoYp5cdrcn2dAZtBlx6TjGDrkdMUjUwIpD+nKqHe7ZMw+k8w2voWqil2FfkBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"#instrumental #hiphop\",\"files\":[{\"fileName\":\"Ménilmontant.mp4\",\"url\":\"ipfs://bafybeihxtnpvrxwzepw4yff7a2xyuew7gy7cgtga4m7gtbdzxlqtnbavuu\",\"mimeType\":\"video/mp4\",\"size\":4356094,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#hiphop\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T16:42:58.018Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dz3se1XEULvdlGwR8heR+WQiiCoYp5cdrcn2dAZtBlx6TjGDrkdMUjUwIpD+nKqHe7ZMw+k8w2voWqil2FfkBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"#instrumental #hiphop\",\"files\":[{\"fileName\":\"Ménilmontant.mp4\",\"url\":\"ipfs://bafybeihxtnpvrxwzepw4yff7a2xyuew7gy7cgtga4m7gtbdzxlqtnbavuu\",\"mimeType\":\"video/mp4\",\"size\":4356094,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#hiphop\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-19T16:42:58.018Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dz3se1XEULvdlGwR8heR+WQiiCoYp5cdrcn2dAZtBlx6TjGDrkdMUjUwIpD+nKqHe7ZMw+k8w2voWqil2FfkBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"Ménilmontant - Instrumental \\n\\n#instrumental #beatmaking #boombap\",\"files\":[{\"fileName\":\"Ménilmontant.mp4\",\"url\":\"ipfs://bafybeihxtnpvrxwzepw4yff7a2xyuew7gy7cgtga4m7gtbdzxlqtnbavuu\",\"mimeType\":\"video/mp4\",\"size\":4356094,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#beatmaking\",\"#boombap\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T15:54:06.923Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lg/UYEiXuokwVpgSwWtp65xm339POks0WHcaZvQqSh7Re7vNfuFOz9NY5E1zdCFwAqjTK1DsUJCG61udczkjDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"Nun's Café - Instrumental \\n\\n #instrumental #beatmaking #boombap \\n \",\"files\":[{\"fileName\":\"Nun's café.mp4\",\"url\":\"ipfs://bafybeihjoy5ndz6urvmqqsrzyouarma6k22mraxxdg35h7oakzj3abw2eu\",\"mimeType\":\"video/mp4\",\"size\":4335415,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#beatmaking\",\"#boombap\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T16:12:18.066Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5s5kUDuQQssI+l8q/nlK/7wXm0X+GV61Qa+MeUHqdngubS/ZKUAlgEwVyKPinfYm27CuqSvAlqa+GZjTFh5XCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"Pont d'Austerlitz - Instrumental \\n\\n#instrumental #beatmaking #boombap\",\"files\":[{\"fileName\":\"Pont d'Austerlitz.mp4\",\"url\":\"ipfs://bafybeigzbrwyyplfpirjjgizub276fxessrijbkxvmyus6xt6ynctvpmma\",\"mimeType\":\"video/mp4\",\"size\":4363889,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#beatmaking\",\"#boombap\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T15:56:43.286Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bYkfq55Shmr67USldPCya5ei9cfIUQgwxb98RvaAjwOeJOwkAQLw5kuTeN7n/KrrP/o4bxCnvzgpco5UuniKCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"Pont d'Austerlitz - Instrumental \\n\\n#instrumental #beatmaking #boombap\",\"files\":[{\"fileName\":\"Pont d'Austerlitz.mp4\",\"url\":\"ipfs://bafybeigzbrwyyplfpirjjgizub276fxessrijbkxvmyus6xt6ynctvpmma\",\"mimeType\":\"video/mp4\",\"size\":4363889,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#beatmaking\",\"#boombap\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T15:58:15.803Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vCpfbF0V0T7lLDxuO7Ret3hZaURCINLwStDJTYoAMD1iNUS4HyCD+aR2XYzqTUpUxyKmXdCZd5HgNazdHybCCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","6","{\"message\":\"RER B Graffiti time - Instrumental\\n\\n#instrumental #beatmaking #boombap \",\"files\":[{\"fileName\":\"RER B Graffiti time.mp4\",\"url\":\"ipfs://bafybeieqyu2esp6opcyvcnuebu3harlvg7k5xhiy6sac3il55h4c6edrpe\",\"mimeType\":\"video/mp4\",\"size\":4350354,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0}}],\"gifs\":[],\"hashtags\":[\"#instrumental\",\"#beatmaking\",\"#boombap\"],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-05-19T16:26:24.757Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dycTKO2mh1U4O7Fj/dr/tYje4iiyIolc9H92g+5CH0RYgPIWNGR6xF3aQOvgnnefUpE+QlPYQqd5zGgPqEnhCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"FlagPost","args":["1","gnoport-2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VrxmoCjj7BepnR8gqghatuy/oUyd0Ri8hO5TXPLjB98YmO1JEDqBcgTDT8xeCJ8DF4p60blj50K0R0zutS2yCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"FlagPost","args":["1","gnoport-2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VrxmoCjj7BepnR8gqghatuy/oUyd0Ri8hO5TXPLjB98YmO1JEDqBcgTDT8xeCJ8DF4p60blj50K0R0zutS2yCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-10","⛈️","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DN82oU13LSt8li8qJqTZ+q69AKjBVRQ8BGqget+B+i2IAh21iuxKaMRkc5uxfoIbxJP8e21cSdBX60gASplgDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-11","😍","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZQo8suoLqcWPbnZQcVdTUL/IBjDu4Wo8unYUAPJRmj+HrFKUPL8LOt2+lcFHOJLhm2Cpy8WO7q2RRADf1YGdDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-11","😎","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OzWDPWL/W+G9fziJgId9mKpDKbFTHU42DThyI0tB/BpnjXE9Tz1MOi0sPpojfg+1wSUtLgA2d4M3WCpB4a0WDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","🙂","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O9djvcpzbYnifvi3F/D8sk2Q7/teaBgyX6ARbTemF3ZYWs3/p9hCVKseWn8zniM46EzZFd/Ep46O/cNdmf+tDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","11","{\"title\":\"Nebular Summit w/ Gno.land core mates!\",\"description\":\"Aftermovie Gnoland @ Nebular Summit!\",\"videoFile\":{\"fileName\":\"Nebular Summit_Gno.mp4\",\"url\":\"ipfs://bafybeiaot4bqritqumsp2jk3gfxentmcs5j327hucpnty2cw3zain3dbr4\",\"mimeType\":\"video/mp4\",\"size\":186291731,\"fileType\":\"video\",\"videoMetadata\":{\"duration\":0},\"thumbnailFileData\":{\"fileName\":\"og-gnoland.png\",\"url\":\"ipfs://bafybeifmvq5f243mk6tevkbmws53lgsdegxpsd2qslzji4uqkafu7zuoai\",\"mimeType\":\"image/png\",\"size\":4739,\"fileType\":\"image\"}},\"location\":[50.8465573,4.351697],\"createdAt\":\"2024-10-24T21:59:43.746Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iazsj5wMEYyX5SRVJR066QI9u4aW7clHsYhzixl1FSpYq4l51t1u4n1dpCQhE3zgNGX5m7WkYeXd3Io+PX+6BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"Hey from Nashville 🌳🇺🇸\\n\\n#gnomap\",\"files\":[],\"gifs\":[],\"hashtags\":[\"#gnomap\"],\"mentions\":[],\"title\":\"\",\"location\":[36.14971585,-86.81338218407731],\"createdAt\":\"2024-10-23T16:24:05.480Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TbEDQD5NA2piqf10dAQrFqkh/PzXnxsTfhgNmoj0YvzAg+osKpLDey3/sk3uAams7csdcrxthk38MlzDT2jDBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"Waouh, is this Eiffel Tower?\\n\\n#test #map\",\"files\":[],\"gifs\":[\"https://media.tenor.com/ARUJULyIJt0AAAAC/shagarita-shalymar.gif\"],\"hashtags\":[\"#test\",\"#map\"],\"mentions\":[],\"title\":\"\",\"location\":[48.8582599,2.2945006358633115],\"createdAt\":\"2024-09-11T14:32:08.772Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j/qoVI0D2lZPD/zVwJBFbOQEu9ONlCTYC38OntjWqB5+r5z+Ckitc1b/Bj21mLAskROn4NN4yZBDbFeIYvNgBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","4","{\"message\":\"It's cold here! \\n#iceland #gnomap\\n\",\"files\":[{\"fileName\":\"Jokulsarlon.jpg\",\"url\":\"ipfs://bafybeihgxsxiukstfrqhrwu7tkotbfkxnkcvshlzvhiln7rs4xpebkhlhi\",\"mimeType\":\"image/jpeg\",\"size\":144116,\"fileType\":\"image\"}],\"gifs\":[],\"hashtags\":[\"#iceland\",\"#gnomap\"],\"mentions\":[],\"title\":\"\",\"location\":[64.9841821,-18.1059013],\"createdAt\":\"2024-10-23T16:26:09.499Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h5/vDUXVY1QrB9EhPj7/qR36G8X1z/urlIP16EYVAwbqLNzIahpCBYhVejGLBC2TcKR2724uxDusSS/mRG+LCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/teritori/social_feeds","func":"CreatePost","args":["1","0","5","{\"message\":\"Portal loop Brass band 🎺 by zôÖma\\n👋Saying 'Hi' from Nashville!\\n#brassband #music \\n\\n📸 Credits: Jonathan Ross \",\"files\":[{\"fileName\":\"Zywoo vs 5.mp3\",\"url\":\"ipfs://bafybeidik576sp4ierjdun43akdi5645ai2ror7hafxbglpidesjcjd2lm\",\"mimeType\":\"audio/mpeg\",\"size\":4321197,\"fileType\":\"audio\",\"audioMetadata\":{\"waveform\":[3,5,6,6,8,6,4,4,4,9,8,3,7,4,8,12,4,5,4,5,15,15,13,15,12,20,14,10,12,9,19,17,8,14,11,13,21,10,12,10,14,23,17,14,15,13,21,16,11,16,11,17,17,10,16,14,14,20,12,13,13,14,22,25,19,22,23,23,19,17,28,26,21,21,23,23,23,18,26,11,25,24,22,23,26,18,22,21,19,17,16,29,26,19,21,20,24,25,22,21,14,25,29,29,22,23,23,26,23,22,20,17,26,27,22,24,23,26,23,22,24,13,21,26,22,24,27,20,23,22,22,22,18,31,29,24,26,25,24,25,22,21,18,22,30,27,26,14,5,17,28,13,10,12,9,9,15,24,17,9,21,28,23,15,31,16,7,22,13,5,15,16,8,20,19,17,13,10,21,19,21,15,25,23,22,28,27,14,11,30,24,33,34,36,35,22,29,35,38,39],\"duration\":179999.97916666666},\"thumbnailFileData\":{\"fileName\":\"istockphoto-1400340461-612x612.jpg\",\"url\":\"ipfs://bafybeibdowfcg6t35zn5yi3hbcgx2rnrzdixkcoyuu23wg6ntyqkzwp7zm\",\"mimeType\":\"image/jpeg\",\"size\":40276,\"fileType\":\"image\"}}],\"gifs\":[],\"hashtags\":[\"#brassband\",\"#music\"],\"mentions\":[],\"title\":\"\",\"location\":[36.2078967,-86.7286554],\"createdAt\":\"2024-10-24T21:20:12.648Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZtmR31V37j1ob3LZmx6ANKhtLVaTyVQHZAumT+mGsrOJhVVEqT2bf99T17QdS6M4tuuo/hnEW37/wUlNQUZnAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","zoomzoom",""]},{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["DisplayName","zoomzoom"]},{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["Avatar","ipfs://bafybeiec2sakurfk2c5b6vukubs36fj4v3f5yf4gccn6vn42vyfimlec2y"]},{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["Banner","ipfs://bafybeicm3me7x46xl7eup4jxdsqomfprnevkblakym7wny5yqtjmwvter4"]},{"@type":"/vm.m_call","caller":"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c","send":"","pkg_path":"gno.land/r/demo/profile","func":"SetStringField","args":["Bio","A random agnonymous cooperative maximalist."]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"08zOAbr3K/d/xwT/wRUCC5PU1YALWoQ1s5p1Z/8RZGNffTtmzw9xRxvCnXMKeU8LB+h4P6olhs1dkBirsbsbDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g176py0kpfzcm0aghmyz06flyrepsvv422fmcgcc","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterCode","args":["wNx9fUoBr8"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x7jwfRXdmzVldZqAADw+brRYqqlN2UNf8Xnc28q5EA0kZLqf3FPuyt1QnHvSchYyfBrJp9eC3tlCfWSF79vMCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g176py0kpfzcm0aghmyz06flyrepsvv422fmcgcc","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterUsername","args":["slowteetoe"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nNddV65TI9czu160sXnSnLWKWC2QP7SOyP0kct9AqzE0mAEfHZP7uhwn+johCuqJYMNrWwB5FTv6kwCCY7/GDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5wlIzb6atsjv0gr2GLjBRuhoFuzvpm1/M+ttGhetUAZIshj+FQ8d8sbQ25l//lmgRo2ceb3CpHcSGWd+x/FrCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5wlIzb6atsjv0gr2GLjBRuhoFuzvpm1/M+ttGhetUAZIshj+FQ8d8sbQ25l//lmgRo2ceb3CpHcSGWd+x/FrCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5wlIzb6atsjv0gr2GLjBRuhoFuzvpm1/M+ttGhetUAZIshj+FQ8d8sbQ25l//lmgRo2ceb3CpHcSGWd+x/FrCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"SubmitSubDAOCreationProposal","args":["Test Create Tutorial SubDAO","This is the creation of the tutorial subDAO managing team","council/main/sections","tutorial","Tutorial","The purpose of this subdao is to draft, review, and publish tutorials for gnomes everywhere!","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hcGkTxMPDqzv2GGd9WujM7mxLclW5IT9mybvRcPeKlhWNk1oUymManhHCUMZbut3ndrIh5O/3XBV2MGDQPU+Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"SubmitSubDAOCreationProposal","args":["Test Create Tutorial SubDAO","This is the creation of the tutorial subDAO managing team","council/main/sections","tutorial","Tutorial","The purpose of this subdao is to draft, review, and publish tutorials for gnomes everywhere!","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hcGkTxMPDqzv2GGd9WujM7mxLclW5IT9mybvRcPeKlhWNk1oUymManhHCUMZbut3ndrIh5O/3XBV2MGDQPU+Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"SubmitSubDAOCreationProposal","args":["TestcreateDAOsection","","council/main","sections","Sections","Let's do this!","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h+IzQqmNgCOnIAL+q/u0SxR6PACT/VnAr+xwHiYSTGgihQHXIIIZx00f8wiJOw2SNWTrC7mF9g6BjpZjy46lDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IO1s/hChjBjysGm7lol62M5DO+rQh7ItgPaA8Ez8ELdQArkbR+WbZgLUwbif3l1XY2PKPS/ctaOvtZt7KhD3Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"I6SliCJcxcH3vMlxw+Yp7HXRbRL75PunQsk8WUnhpUpR8tBsReVJ4sCcHTcjdl+SVGt4Xia2L5maR3Lx3sz5Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P15fD6njPP0XQ9RNt/H1O0+SzJ2hAZKE7F+bihu0BtI6NpjaLH4ABVMs6cMQeRBrdk7PtAQ165F+GhWvPMRVCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P15fD6njPP0XQ9RNt/H1O0+SzJ2hAZKE7F+bihu0BtI6NpjaLH4ABVMs6cMQeRBrdk7PtAQ165F+GhWvPMRVCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["0","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YK9aJ3M7YWqa0PPeOlJNiQ9OKJ5pryzWvWOKJfkCzmert2xABHJu9w+3VhVlj1p4o6eWxi8IDzdLcI4OUhK1BA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iP61zXHCz1GRJSDXpvU1wYsbMWE8LH2x1I1MkUOLPEaxp5+WjujTqh2SnUBzbgAGKrbXghNRnMv8AhvLfNgADg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TFYHSfvxZvY7LVVrd5oC6IVX5ljiXK5jQ4z9R8yuIDL4jtPXye1GsH/7rrom9paVJ8++hbFg5iwyvqOb+VevBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TFYHSfvxZvY7LVVrd5oC6IVX5ljiXK5jQ4z9R8yuIDL4jtPXye1GsH/7rrom9paVJ8++hbFg5iwyvqOb+VevBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nQloRUBhIs9S1YTZUkxFojPeyAfAlD4pL5Tb/dAe7aVEHaL6PEV/+gJc+7iwFz3wXuQbpfKO/mag2ERVHX3cBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre2","func":"Vote","args":["0","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OSg87LILLxV6vb5ZqFpjw0eX+1eqnf5NqjON93lLB2s+Zeux3sz48A2kGb9N0CeJrY7fEu4bTW+vwihL6G24Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/pre2","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5aPUxkyLtW5qi+DrnrG+PA/n9SAoIZDSLj59zeBJ6QJpNrWwevVLVvrvR4QbFbZNL4c3vJVMLOBLAXkg2sCqBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"whOtrY6k2pHRq5uQXuO+5LeXGAC1EoRuQt8DJ4jbKrzD2v7iYKzbGqJItFeNJV7FD6rIu9GqqCrjd3AODHPmAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DyqAEsFK+8CbBnPjWdw/XGZDg4kUCzhu3JGB8ZpP5kgP2c3fRb0Hda5WFp9G6axgUKNFek2PFh1i10n6yHHLBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DyqAEsFK+8CbBnPjWdw/XGZDg4kUCzhu3JGB8ZpP5kgP2c3fRb0Hda5WFp9G6axgUKNFek2PFh1i10n6yHHLBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Fdn9yO6xon3JTcJcon6ckyS+5pqWQDsMRZXM9Vmaayl4hvONgV12+VS8xSsCOF8LdJUndPj/HPkSXb01kvurBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Fdn9yO6xon3JTcJcon6ckyS+5pqWQDsMRZXM9Vmaayl4hvONgV12+VS8xSsCOF8LdJUndPj/HPkSXb01kvurBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","true","","This is a go!"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Jz8LGCdGMUZBqbU9ukfhBL8D3AV/NfG0ieQ89PsT4vKVAGT5UqB359FLG0gGCcgvCe+Uz0Cd3lxIejBCHiMDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","true","","This is a go!"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Jz8LGCdGMUZBqbU9ukfhBL8D3AV/NfG0ieQ89PsT4vKVAGT5UqB359FLG0gGCcgvCe+Uz0Cd3lxIejBCHiMDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V5CFW5q8HdqdwbbofPPShO3gDAzRVRlkrlV/PECK3bfFtQpRirSMlrbw3s1DW1Yiob5rP9Badgu8thR79jK2Cg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","false","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vh8TLp3MGSI/+HeYpLbQ+hWwpMTb7ATddXv5N/B1+WHwtlXA5ZBD21PKu/UVDgRgGk/NDrfxP05g+zwhB4RJBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xQ4as9AJLMA3n/t1I82U69FWNeJJ9FFOCuAR70B5gEKlWv7trC0EjPjkW0zbzyZIcZCj/fa6a2iVyeVmW5IHAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["3","false","try again",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7WuQKJstuZHkgA0ZdxHNQnr5pHHUITvfj0yVv+tEelF9uNTl9T02T0GtYioNMRjpCRs+pDN9uXbG7nKqvI5uDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"CreateSubDAOAddProposal","args":["main","Create a sub dao tutorials","Create the tutorial sub dao team to manage and execute tutorial content ","Sub DAO Tutorial Team","GnoDevX Tutorials","This sub dao is mandated to work on devx tutorials for Connect","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wM+VcjIIcWtZrhuv/pXw/Qq7+taYcNdE4HZOxaGq3yLr08ynoujQCwme3dMDz5mC87O2Px0h3p/QELLrVbDTCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"CreateSubDAOAddProposal","args":["main","Create a sub dao tutorials","Create the tutorial sub dao team to manage and execute tutorial content ","tutorial-team","GnoDevX Tutorials","This sub dao is mandated to work on devx tutorials for Connect","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SNL3TGEybrEqgTCi5/0/mdof0GAJOw5Dns7PhiF7pNHQ77/dLuuirzI2a6K2IVLJzemGU41rgyvydw8hb3MwDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wInn7sYQP0lfMYM8D5m9p+yIVLQeHEyN6UZmY5ABJgp3+YmUYSHxIMtpge9oorl0KTqtEO0LsuLaXrs3mDu3DA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yJ1cCV42N2zpjmoczEuncJQ1YJX2FnbWUczlOjk5k9qNfRaxzEBYU5Lg3PTqR4hbXROetaunh4nAp80+EsI2BQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["2","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"41oxtP0QQDnd1z8ithh90dKctmk3+Z8diZgJJ3WYoFytoQPmSrbQVCpIAiPrRsZ0/6KIyo7Ci6NoS1zdEDiVAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["3","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xpD/v1ovz9/zk7TMDScLpBHjl5ievzhNd36JWqNIl+XVgVN/UnbGj86HZmPMwAw0cP3ibDid7mwTlRZzDq0VCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"Vote","args":["1","true",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rjXHtBP98GT5edWMO8xJ+6tNyFbmCgFTQ4JCN+9543hUuYFX+EZ6ZRTPgw4cpUX/u1V0uK7eUaRV5fyNtH4iDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ce3X01Vsc7CQI9OjU6ZPzHMPPRj3WVGes5oKEzLME+UmdS4t1z7rRT3g4fQXWF41bI/h5BB6jNt9T4S8YwjFCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734379567"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ce3X01Vsc7CQI9OjU6ZPzHMPPRj3WVGes5oKEzLME+UmdS4t1z7rRT3g4fQXWF41bI/h5BB6jNt9T4S8YwjFCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734424629"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ce3X01Vsc7CQI9OjU6ZPzHMPPRj3WVGes5oKEzLME+UmdS4t1z7rRT3g4fQXWF41bI/h5BB6jNt9T4S8YwjFCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736165668"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cB76D3yeWG6CzB9Fo0XvJUJSIXgX9gjMDUfjWRqcFvdkhmWg06KV21VBSuQOnxcBRjrCqTyItQzLTM4I7A5oDA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734342839"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["10","true","",""]}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+Gokt+wI56iIcrtYrppeznWB6Ytu7P2jxyiM/wZd0omb/iDkBL6nT9SELmbGYLe/Xni+pv8F7KvF+4SspU45Bw=="}],"memo":""},"metadata":{"timestamp":"1734609622"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["10","true","",""]}],"fee":{"gas_wanted":"1400000","gas_fee":"1400000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4M8kRi++CKlFCbdPcnM/ynX9ItHr89azJo+SuRtz7yOAA2aG0fXcxyVQXmujnybBMoY4/GDQriLFmFUG2Md7AA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734544764"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["4","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h6O+WUJRf1WBx3HQniEcSCNt89MfiBRzKlObFjUfI3o5Bgwu0K2o//s5Xl2WCwriSjup4G+PtV3VSMivK2evCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361215"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["5","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bCX8cm/6yiQ/DZSYbvsUcWIEtAb78sC5vy0u95nLrwr6POXv5i1MPcZA/Q2oeiiUQ0vYjR2hSUernAe0eVIxAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361350"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["5","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bCX8cm/6yiQ/DZSYbvsUcWIEtAb78sC5vy0u95nLrwr6POXv5i1MPcZA/Q2oeiiUQ0vYjR2hSUernAe0eVIxAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734364619"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["6","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QO7ESUv5D8CaOSrxdJKP4OIcwgwo8sXD6D3wc3Tbnwn3jg4WgSFwbpDcXFO5ru/hvebiGmLn+Fj8nu7KKGLqAg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734364654"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["6","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Wdy8KSUjEctx2XssRg97AaN6kfCHyMTnXq0ZaWwj0gn50Div4p/4ng0kn6qNW9DE516f6c80SoD6WSWaKJAuCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734444425"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["7","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ysp/Mzup49/WlJ9/UAT6COoJSUv7w+wn7ar1rppACqtOoPw3tv+3n+v3eNpLyFlZrrrnIbpoCTo6CSi4bXuuBg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734445449"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["8","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WLqHKdOclGJg3KuTrtsHgFSidFskkSewyrMqQPAkj1/KtngtbuPYoCJrEucBEWqwNZnIiXJwOKAZpj1gpS2tDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734444314"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["8","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WLqHKdOclGJg3KuTrtsHgFSidFskkSewyrMqQPAkj1/KtngtbuPYoCJrEucBEWqwNZnIiXJwOKAZpj1gpS2tDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734444987"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["8","true","",""]}],"fee":{"gas_wanted":"10000001","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dFCEd+n2ss7c6iOszvJNL1Kf6ZJfQ6B1TxIqdxv3g6IYtWIPgHCEu/zun89/92j+CYPImEKZCEJyD1ODBqh2DQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734445057"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["9","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GKODArayM3+j2x5o2hR44yZnZAB6W8DdLLR/yPtYs6DxBkUrl0GPOWYkJoN0Hbxiz+rCsKfwQBgT4sAwII/HAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734445339"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"CreateNews","args":["Blockchain Testnet Launched: Test4 Now Live","https://gno.land/r/gnoland/blog:p/test4-live","gno.land blog, testnets"]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bjpu024gN4brCEe/yOaOAzyODYrzEdcZtDMkpqYxP9g59/avtgNX9egq41g8y7ajiiVFeIH5vHPqVAh6SOh+BA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734523851"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"CreateNews","args":["The Road to Mainnet \u0026 Beyond","https://gno.land/r/gnoland/blog:p/road-to-mainnet","gno.land, blog, mainnet"]}],"fee":{"gas_wanted":"25000000","gas_fee":"25000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/exP9ic44TH1gZgy7ZV08XYCKbpcmcW9ga2BokCkEV7iTnAoTst4dAHEngM5oR1Au1pqH6CDKZ2ATnjspobwAQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736166411"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"CreateNews","args":["The Road to Mainnet \u0026 Beyond","https://gno.land/r/gnoland/blog:p/road-to-mainnet","gnoland, blog, mainnet"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kz+mbTFSQd4Yh7a/Cm/Eey8y54z8Boeulo3Jp+3sXfAhEj5XCCkZRPQp57uPZjGASWqXm77OZm1SDH1kCTlVCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736166476"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"CreateNews","args":["The Road to Mainnet \u0026 Beyond","https://gno.land/r/gnoland/blog:p/road-to-mainnet","gnoland, blog, mainnet"]}],"fee":{"gas_wanted":"20000000","gas_fee":"70000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CKFMaAukqXqt8WX1r6YNsWMw5LnIUPwJYaDCIyHFqOSM6bgG30DL4rqVmZ4ypnRCI+wKdEaQsPryfD1ZrT+cBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736166542"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add editors to space news","Add 3 editors to the Gnome Space news section","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\ng1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HSTMByjAJFyifr5D0u7d2Z7nNb+4XEvyaym8+GZa6qHc6tbj7hk8cF7nPNIeCLqNUducpQhXyZ4se8sH4g86Dg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734531914"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add editors to space news","Add 3 editors to the Gnome Space news section","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\ng1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HSTMByjAJFyifr5D0u7d2Z7nNb+4XEvyaym8+GZa6qHc6tbj7hk8cF7nPNIeCLqNUducpQhXyZ4se8sH4g86Dg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734531974"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add members","Add 3 members to Gnome Space news to edit news section","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2\ng1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wTmV4pkK69Z4UZZIusW/Yvz93V8jGIdtk+jBguh6uLYJkukUUxEU6eVXo/puAKNykr5j/r7r+fCtN6CMpJHYDA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734532115"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add news editors","A proposal to add two new editors to the News section on Space","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 (ecodev)\ng1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun (Dev)\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt (devrel)",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"9783795ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VZ8JdfEKpHWz+H5P+76OeJyiyxIgLoy4Fhp2QbgGo9xmhxLqh8aywYyZQn2mGYpb51xWfOm2z/x+nvzWratnAQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734524600"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"1300000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"btiaYc3LrX/F1gO2AoRwZDxWUg55rWogLMdpV9xxeLLbAhAijVuOi/dB+BPpvg5ynDViwnZ5YvNA6rrl2OneDg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734533164"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"1300000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"btiaYc3LrX/F1gO2AoRwZDxWUg55rWogLMdpV9xxeLLbAhAijVuOi/dB+BPpvg5ynDViwnZ5YvNA6rrl2OneDg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734533541"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"1300000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"btiaYc3LrX/F1gO2AoRwZDxWUg55rWogLMdpV9xxeLLbAhAijVuOi/dB+BPpvg5ynDViwnZ5YvNA6rrl2OneDg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734538939"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"15000000","gas_fee":"1500000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R/op05MANK3S6kzxhl2E5AO8FGjAO8pmZXdyJ8AoEcQ3b6xhPsLbqgTbLMn5PQ6wt7zohp/lnDIjq/BEeGI/Cg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734533320"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"1600000","gas_fee":"1600000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qg4ofKMY2oLNkhCid2mXaQ/jrEwLLFp5gXqzmloZHNSqqJAkGP45EiD1JVEQvgD8X2rP1UypYj3rxw5KeGDeAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734539039"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"1650000","gas_fee":"1650000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VuQA74i8kKMHnfvQrCLKXWBLhbdIKL3Wa3iJ/6YC8TaPtElhdFc21/ltkfgnV95STME/Ugk6nNZI7cT2hrn6AA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734539115"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial ","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"3000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YFYp8PhiQf3k0HRpRnp7CMifrRhwvQpTVW6GnmHr/KI+TbO9pMhXdZlotKvTgnMuq9NgwptxO0rM/cZfP++3Dw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734539190"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"Vote","args":["false","false","false","true"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z+XExeEQTtwh3Njjj+ODN7EBzsOLfNXhxtPTaD3mTC0Nm4dwJcWOGDm6j4FsXpidLiiOA9kA1weR6JDpEnqvAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/michelle37/testpoll","func":"EndPoll","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LhucPS4FTlmBIbDrNzWxbw4mpPsTEhJrpA7U4VrpeHUzczv4NQIF5/NOW9O3CPo45C9nsxhor9VE66ZX3FJWCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/michelle37/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FOcypp0lD7c5w92YcFIb5QjhnAH18Ifk+IScblQ/oa7KRZO5EFfFDe/3ou4fJZl6WHgkNm2+Kyd0GgyqWRYtBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/michelle37/testpoll","func":"Vote","args":["false","false","false","true"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zc27vZnx3ILRP52TXT8p7ZY8GE3ZNzj5e1I+PRI0lJIVQTxmBB+iAabGP69yp/2lZZGaPnqEVzNyGk5Q/Sz4AQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","send":"","pkg_path":"gno.land/r/michelle37/testpoll","func":"Vote","args":["true","false","false","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nLhEXu9JBRU6EbTECnBVZX2NfKWcRf0ojbZ1c9L6SDsf5hmA+oXpxem8WXkfD/w+WaN9ok7GwXbPLLV2p9FABQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g17v0m2m3tdxezfwt79sv0gkx0tyua4099dj5h9u","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterUsername","args":["ghostlandr"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rmXh7Inpb6A4G5TbE/0ApWXOI/39/hH5y8py8Getl10z6qtrJreTPkhbQ2R6tgXg6vLSd8QgajLNe7s0CAD2CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","send":"","pkg_path":"gno.land/r/leon/v1/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHgABAAEEAwEBAAAAAAAAAAAAAAIBAwYHBQgJBAr/xABdEAABAgUBBAMGEQcICAUFAQEBAAIDBAUGEQcIEiExQVFhCRMicYGRFBUWFxkyQlNVkpShscHR0tQjM0NSYnKTGERUVnOCouIkJTQ2wtPh8DVFV2OyJkZkg4Txlf/EABwBAQACAwEBAQAAAAAAAAAAAAABAgMEBQYHCP/EAEURAAIBAgEGCwUGAwgDAQEAAAABAgMRBAUSEyExkQYUMkFRUmFxgaHRIpKxweEHFhczQlMVI/A0NWJyc4KiskPi8STS/9oADAMBAAIRAxEAPwD1TRa19cmp+8SnxHfeT1yap7xKfEd95ZdHI1ONUzZSLWw1IqnvEp8R33lX1x6mf0Ep8R33k0chxqmbIRa49caqe8SnxHfeVfXFqfvMp8R33k0cieM0zYyLXQ1FqXvMr8R33k9cWpe8yvxHfeTRyHGaZsVFroai1L3mV+I77yeuJUveZX4jvvKNHIcZpmxUWuvXEqXvMr8R33k9cSpe8yvxHfeTRyJ4xA2Ki1164lS95lfiO+8nriVL3mV+I77ynRyHGIGxUWu/XDqXvMr8R33lX1w6l7zK/Ed95NHIcYgbDRa89cOpe8yvxHfeT1w6l7zK/Ed95Ro5EqvBmw0WvBqFUj+hlfiO+8q+uDUveZX4jvvJo5DTwNhIte+uDUveZX4jvvJ64NS95lfiO+8mjkNPA2Ei1764NS95lfiO+8nrg1L3mV+I77yaOQ08DYSLXvrg1H3mV+I77yeuDUveZX4jvvJo5DTwNhIte+uDUveZX4jvvKnrg1L3mV+I77ynRyGngbDRa99cGpe8yvxHfeT1wal7zK/Ed95NHIaeBsJFr31wal7zK/Ed95PXBqXvMr8R33k0chp4GwkWvPXCqXvMr8R33k9cKpe8yvxHfeTRyGngbDRa89cOpe8yvxHfeVDqHUveZX4jvvJo5DTwNiItdeuJUveZX4jvvJ64lS95lfiO+8mjkNPA2Ki1164lS95lfiO+8nriVL3mV+I77yaKQ08DYqLXJ1FqY/QyvxHfeVPXGqfvMp8R33lOikRxiBsdFrf1xqn7xKfEd95DqPU/eJT4jvvJopDjEDZCLWvrkVT3iU+I77yeuTVPeJT4jvvJoZDjEDZSLWh1Kqg/QSnxHfeVPXLqnvEp8R33lOhmRxmmbMRayOplUH6CU+I77yp65tV94k/iO+8mhmOM0zZyLWHrnVX3iU+I77yeudVfeJP4jvvKdBMcZpmz0WrjqhVh/N5P4j/vKnro1b+jyfxH/eTQTHGaZtJFqw6pVYfzeT+I/wC8qHVOrD+byfxH/eU8XmV41TNqItU+urV/6PJfEf8AeVDqtVx/N5L4j/vJxeY43TNrotTnVerj+byXxH/eVDqxWP6PJfw3/fU8WqEcbpG2UWpDq1WP6PJfw3/fVPXcrH9Hkf4b/vqeLVBxukbcRai9d2s5x6Gkf4b/AL6odXayP5tI/wAN/wB9OK1BxukbeRaeOsFaH82kf4b/AL6j68Va/o0h/Df99TxSqRx2kbjRabOsdbH82kP4b/vqPry1v+iyH8N/31PFKpXj1E3Mi0udZ64P5rIfw3/fVDrRXB/Naf8Aw3/fU8Tqjj1E3Si0odaq4P5rT/4b/vqJ1sro/mtP/hv++nEqpHH6PabtRaS9e2u/0Wn/AMN/31bOt9eH80p38OJ99TxGsOP0e03ii0Ydcq9/RKd/CiffRTxGsR/EKHbuGOKruquFVVuc+xTd481INAVAMqWFNywARMKoCi5NiiYUt1VQWI4TdUwFXdUEkMKuFIhA1CSO7lV3VJMIWSI7qbqmGquELaiGMKu72KSISRwmFMBV3UBDdTdCluqu6gI4TCluquEBDCpuq4iAt7qrhSwm7lAQ3UwphqYQFvBTCnupgqQQxlUIVwjColwW91N1XMZVN1TcEN1ULFc3VTCXBb3VTdVzCoWqQQIUS1XMJjKm5Fi0RhMK5uqhapuVsWt1ULVcLULVJFiyWqhCukKOFKKlohUIV0tUSOxSRYtlqjuq7uqOFa5BawolqukKJbhSC0QokZV0hRLVa5FrlotUSFdIUS1WuUaLRaolqukZVCFYrYskKBCvEKJCsmVLJCoeAVwhRIwrJgtOaoFqvKJblXuVaLBCgWq8WqJCsmYmiwQokK8QoEK6ZUslqgQrxCiQrIq0WSMFRc3KuEKJGFdMqWHNwUV0jIRXuVsZ/gqWFINVV5o7FiOCq7oVcKoCE2KBqruqSDihNiO6qgYUgFXAUXJsRQDKlu5VcJctsKYCKQCrhQCGMqW6pbqFqWFiOEwpBqruhWsTYhhVU1TAQkiq4Kluqu6ouCAaq7qlhN1RnE2IkJhS3VXCi5NiGE3VNMJnMWIYVVLHYq4TOIsW8KW6FXHYii5JEtB5HCFo4DKkmFOcLEDD8qoWY6FPBTj0qc4WLe72Ju9iu8E4dStdEWLO6m6rpAKpuILFohULVd3FEt7FJBbwolqu7qpg9SkFrdQhXN0Km6pBbPFRwrpao7qAtkZVC1XC0qOCrXK2LZao4wrpGVQhWuVaLRGVQhXN1RIwpILRCoWq7uqJapuQWi1RIV3CiRlWKlkhRLVeLVEhTcFohQIV4hQLVa5VotEKJbwVwhUIwrFGiyW4USFeIyoFqsmVsWiFHHFXSFAtV0yC2W8Fbc1XlFzcq9yrVz5yFEhXi1QIVkzG0WSFAjCvEKLgrplLFhzeCiQrpCg4K9ypaIwikQitcqbC3UwFXCkBhecudgju4CYKkqgZUE2IhqqpbqYQsU3SqgKQGVXCAiAq4KqpbqtYmxHdVVXdTdQkoq4VQPOpBqq5IEcBN3JUw1VDcFVzibEA1V3QpqvNUuySAb2JuZVzdVEJIbiphXCqYJUixHCbilhM4HUpJsUDEIAXGVe7KJQIRi1SsSFOhjm+bmWQh/iIWs69tfaN229zJ3UGjB7TgtgxjF/+IKglRbNvIuvUzt/aFy5IN7QImPe5eIf+FfIe6H6FB+76rie0SkTH0JdFsx9B2QAymMrQVP289DKg4NbfcpBJ9/hRG/8ACti2xrvp3eQHpNetEnnHkxk6xrz/AHSQVNyM1rmM43VTdCpBmYMy0OhRWRWnk5jgQVcwhWxDdCbqnuqm6gsQIwqK5uoWqdQsW0wp4VN1LCxHCKW6qEKU2iCmAVEjqClhFa4IFoJ5KJYrpCpuqSCyW4VCMq8QolgKtcixZLVTdCulhUC1SQWy1RLVdIVC1SC0Qo4V0hRLVNyti0WqhCuEYUcZVrlbFsjCiQrpGFEjKlMgtEZUS1XSFEjCuVsWiFAjCvEKBarJkFotUCMK8QolqtsIaLOOpRIyrhGFEjKkxtFshQLVdIUSFZMq0WSFEhXSFFzVdMgtEZVtzSr2FRwVkyGrnzkKBCvuarZGVdMxtFlwyoEYV4twoOblXTKNFlwRTIwitcobAAyq4VVUDK88dixQBVwqqqi5JQNTCkAq4RvoJsRATCljJUt3gouSRAwq4UgxSwozmSkWw0lTDApY4KoaobbJsRDQFUBVxxVVUFN1UVeOeCYVrFrADPBSVFVLCxEphSDVwd6XvQdPKDM1q4qrLUimy7S6JHmYgaOHQOs9gS5JzW6sP1H1ds7SajxKlddfkqPLMGQI8Ud8f2NZzJ8QXSjVPugF16nzcxQNFKO6VlA4si3RUoeGhvLMNh4A9pyexaap+igrlWdXb+rE3edeiO33RJ2K50Jp7Gnn9HYuZico0MLqk7voRSdSFLlvwOwd790ubWo8anaU2TP3LNcWtqE8DBlmn9bHMjyhaauC/tonVXe9P77g2rJROcnRIfet0dWWnJ8rllUjT5amS7YEpLw5aC0YEOE0NA8gX0LzVbLVeeqms1bzRljJfoVjVEPZ1o1Qid/uKs1q45s+2iTc44AnxcT8652Q0PsemgCFb0o4jpigvPz5WdIuRPF4ipypveasq9WW2TMdhadWvAADKBTgB/8AjM+xXxZNvBm4KJT93q9DM+xc2iwaSb/UzHny6TF5vTC055pEa3qe4Hql2j6AscqGzpYs84vZTIkjE6Hycd0Mj6QtloskcRWhyZteJZVqkdkmawpum162HGEextTK7SNziyWmI7nw/FwOPmWxLX2u9obTOI0XFSKXqDSYftny4ECax17zeB8rV9aLpUsrYqntd+82Y4youVrN0ab90m0xuyahSFyw56x6m4hph1WEe9B3Vvj6wu0lDuKlXPIQ52kVGVqUpEAcyNKxmxGkeMFebVw2bRLrl3QarTJedYRjMSGC4eI8wsHp+m116WVE1TSu8Z+3I4O8ZCNFMSXeerB4Y7CCu9h8tUqmqqs1+RtwxNKeqWo9bSFTC6Faa90bq1nzEvRdabYi06Lnc9UFLhl0vEH6zmDOPIfIF3XsjUC3NSKJBq9tVmUrFPjNDmxZWKHY7COYPYV6CFSNRZ0HdG3bVdHPEKO6ru6qbvYrkFvdVCMK7uqm6puC2qEK4W8VEtUkEEyuMuK6aNachEna1U5SlykMFzo03GbDaAO0ldWNR+6Uac23NxadaUpP31U2ktApsMiDn98jj5AqtqOtsZrew7dYyvgqVZp9HgujT0/LSUJvN8xGbDaPKSF5xXTtO7ROq8R4pLKfpvRontWsb3ya3e15458QC19F0QnbsmfRd83nW7omCcljplzIfzkn6Fy6uVcNR1OV32GKVSnDlS3az0BvHbK0csaK+FUb6psSYbzgybzHd/hBC1pUO6Y6OSz3Nl41XngOToEi7B8661UjRey6GB6Gt+ULh7uM3vjj5XZWTS9v0yUAECnysIDkGQmj6ly55fin7EDXeLprZFs3FB7p1pNEJD5auwe10iftXN0nujmilSeGxq5N05x/pUm8DzhaIfS5OIMOlIDh2wwvgnLMoNQaWzNHkowP68Bp+pVjwg6afmV43T54ved2bP2k9L79DRRL3o8293KG6ZbDf4sOwtiwJiDNQw+BFZGYeIdDcHA+ULy3qugNjVYlzqM2UiH9JJvMJw83D5l8dJsTUDTSYExp7qPVaa1nFslOxDEhnsPQR42rfpZcw09U7xMsa9GXPbvPVYjKiQugdmbft+6bOhyWrVoemMmDu+ntEbgY63M4gnxEeJdwtKtcbK1qozKhaddlqk0jw5cO3Y0I9TmHiF3qVanWWdCV0ZnHVdbDOCMKhCuEKJatgxlshRIV0qJGFZMqWiFAhXSMKJCtcgtEKBCukKJarplS0RlQLVeIUHBW2ENFojKiQrpCgQpKNFohQIV4hQLVZMo0WnNUMcVdIUHNVyCBCtuarqo5qumQ1c+ctUCFec1QIyrIxtFlwRTIRXuY+8z4BVAypYTC89c66RQBVAUg1VAUFim6gbwUgOPJSa3CEkWtwpKSrhVJIgKuMKW6qdPBCRjKcuakFEgpYmwTmq7qqBhSSRDVXdVVXCi4I4CqpYC6fbXW2udP55+n+m8Nlcv6ab3uJHh+HCpwPDLjyLxzxyHSqykoq8nqLJXNhbTO2FamztINk3f6+u2ZG7KUOTdmIT0OiYzut+c9C6H1qmXxtF3Cy59VqlE9B73fJS25ZxZAgN6A4Z6ufSekr6rD0sdSKjHuO5px9w3fOu75MVCZcXlrjzDc/Sthrx+OytKd6eH1Lp9Dn1sVb2aW8+Wm0yUo8nDlZKXhysvDGGwoTQ1o8i+pEXmW29bOW3fWwiIoAREQBERAEREAREQBERAfLUqZKVeUfLTstCmpd4w6HFaHA+QrXMtp3c+lNd9Uek1xR7cn2nffTXv3paN+zunhg9RyPEtoItqhiauGlnU5WM1OtOk7xZtXQLuhdLuWqy1pao08WVdfCEJuL4MnMv7CfaZ7TjtXceXmYU3AZGgRWRoMQBzIjHAtcOsELzDvGw6LfdOdJ1eTZHaR4EUcIkM9bXdC+LS7XvUfZAm4ctPPmb701c7BgPdmYkR1tJ5eLkexezwWVaeItCpql8Tr0sRCtq2M9TCMqmMLRsxts6QS2mcC94l2SvpfGZ4Eo0700YmOMLvQ8LeB4csLqfqBtuap67RItN0ypLrGtx3gvrdQAMy9v7HQ3PYCe1dipWp0Y51R2Rsv2VeWpHd7VbX+wtFqXEnbsuKUpxaMtlQ/fjxD1NhjiT5F01vruhF96mui03SG0XUuVcS01+ttzgfrMZwAPjz4lqO3tDadCqLqxc87M3bXXnefN1F5e0O7Gn61smBAhy0JsODDbChtGAxgwAvNYnLaXs0FftZoVMZCOqCuavmdJa7qDUvTTU276jdc2473oXvzmQGnqx1eLCzyg2lRrYgCDSqbLyTAMfkoYB8/Ncui81WxVbEO9SVznVK1SpymERFqGEIiIAiIgCIiAhGgQ5mE6HFhtiQ3DBa8ZBWs67o4+l1dlxWDU49oXJCdvtiyjy2FEPPDmjl9HYtnotijXqYeWdTdmZKdWdN3izNtnjbrjR61LWLq/LMt+5MiFL1nG7Kzp5DPQ1x684J6l3PY9kaG18Nwexwy1zTkELzXviwqTf8ASHyNTgBxxmFHbwiQXdDmlZDswbT9c0SuyT0x1OnHzdvzLhCotwxeIh59rDiO/Vzw48iePBe9ydlWOLWjnql8TrU6ka61an0eh6DkKJCmx7I0Nr2OD2OGWuacgjrQhehJLRaoEK8RhRI6VKK2LRCgQrpGFEjKumQWiFAhXSFFzVdOxUtOaoOarpCi5qsVLJCiR0K65qgQpKNFohRIV0hQcFdFSy5vFRxxV0hQIVkypbc1WiF9Cg5uVdFWrlghFIjCK5jM+AVQFUNypBq8+dYjgqQbgqQGFUDKqWsUxhVwpYVCcKCRuqqc0QmwQDATCluqSbEUAypYCqoBTdTdVeaqGoWsRwqqWF1T22trJ2jtJg2ZZ5E/qHW297gQofH0FDcMd9d1Hj4I7CehQ2oq7JSuYztobX85bU8dLtNH+jb2nm7k5PQTllNhngeP6+Mns8a676baZSlhycWNFimo1ybPfJypRjvRIrzxPE8cK1pdpq2yJKNOT8Y1G459xjT1QiEue954kAnjjJKzpeFyjlB4mWjpv2F5nJxOIz/Yhs+IREXCNAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCjFhMjw3Q4jGvY4Yc1wyCFJEB131G07oumV70q7oVJhTNvxY3e56Ue3eZAe48IrR0LsDIxIEaTgxJXcMu9gdDLBhu6RwwvluGhStzUScpc7DESWmoZhvBHLPT4wtbaHV2bpj6pY1YeTUaJEIgOfziy5PgntwMeQhdGc5YmjnN3lD4dPgbcpOtTu3rj8DbSIi5xqBERAEREAREQBERAEREAREQBY5ftjU+/wC3o9MnmDeI3oMce2gxOhwKyNFeMpQkpRdmiYycXdGb7CW0NUo0zNaQX1Nf/UVHafSybjuw6dlxyaCfbFo4+LxLuiQvKnWO3qhIPpl+W48y9x23FbNQ3w+DosNp4t8gyfFlejOg+rNP1u0soV2yDm/6ZAHoiCDxgxhwew+Ir6Zk3GrF0U3tW07cZqrBTXiZ2QokK6RhRIXXFi0QoEK6RwUSMqxWxaIUSFcIUSMqUypaIUCFeIUCFkTKlpzVbIV4hQc1XKsskedRIV0hQIVkUaLZCgQrpGVAhSUZaIVCFMhRPBXTILT25RTIRXuQ1cz0JhTRefOoUAVeSrjgqYUCxTOR2oAq4ypAIWIqoCljKruoCiKu6qgIWsUAVcKuFUBVJKAKoaqgdi425LhkLRoM/WarMNlKdIwXR48Z5wGsaMkoSaw2otoakbOWmk3XZt7Y1XjgwKZIZy+YjkcBjqHMled+m1r1isVqoagXrGfPXhWnmM98Y5MuxxyGDq4Y4DkOCuXBelQ2tNZJu/6wx0K06RFdLUKnuPguDXfnCOs4BPbw6FsXkvJ5Wx13xem+/wBDn4utm/yo+PoERF5U5IREQBERAERUc4MaXOIa0DJJ5BAVRa4ujXa3qJMukKcYtw1gndZJU5u/4XU53IfOuDhQ9Ur/AHExYkvZNMf0MHfJkj6luRws7Z0/ZXb6bTYVCVry1LtNsVCryNJhGJOzcGVhjm6NEDR86xGf1usemuLYtxybnj3MIl5/wgrgpDZzt0xe/wBbmp+4Zk8XPnZhxBPiWZUvTe1qKwNk7fp8HHJ3eGuPnOVNsNHa3LusvUm1GPO35GKRdpCx2EiHOTcx2wZN5+kBWhtJ2dnwvTNg63SRx9K2XDpsnBGIcpAhj9iE0fQFcMrBcMGEwjqLQoz8P1H730IzqPVe/wChrmBtF2JGIDqrElz1RpaI36ly8lrPZNQcGwbkkS49D4m6fnwsnjUWnTIIi0+Vig89+A0/SFwdS0stCrNImrdp788y2CGHzjCm+Ge1SXin8kL0XzNHNSFeptVaHSc/LzIPTCiB30L71q2e2cLNjuL5OBM0uL0PlJhzcL4zpReFsQy+2b2mou57WTqw77Dd2b3MJoqEuRUt3r5q5OZSlyZb0beRach6tXdZrgy87TjGUbwfUqWe+MHaR/8A4s6tTU62b1AFJqsGPGP6Bx3Yo8bTxVJ4apBZ1rrpWtFJUZxV7XXYZSiItUwhad1kgxLKu23r8lButgxWyNQx7uC44BPi+xbiXBXzbkG7LSqlKjNDhMQHNbnodjLT58LZw9RU6ictj1Pue0zUZ5k03s5zmYEdkzAhxobt6HEaHNI6QeSuLXeg1yRLg09lYUycz1Ne6Qjg88s4AnxjC2IsdWm6U3B8xSccyTi+YIiLEUCIiAIiIAiIgCIiAIiIAiIgIRoLJiE+FEaHw3tLXNPIgr6dgm8fWu1puzSqfmO902qNNTozXngX8N5je3dyf7hVlap1TqUXTvUfTzUKVyyJSqoyFHePe3ZznsI3h5V3cj4h0cSo80tRvYSdp5j5z1ic3BUCFSQm4dRkZeagkOhR4bYjHDpBGQrhavo6Ogy0RlRIVwhRIVipbc1W3DirygQpuVsWiMqBCulvFRIyroqWSFEhXSFAhZEyhacFAhXiMqDgrEMskYUSFdcFAhWRRlkhQcFeIwoOCsijLRGEUiEV7kGeEqoVAFLC4B1RnIQDKkpBoAQEFXClhELJAcFU8UxxVQFUWKAZUsIqgZQkoAqhqqBhV6ULFOS89e6Ba0zuo16SOh9qTZEvlszcUzAd7RgwRCJHYQSOvAXbDaj1zkdn3SCsXNMRGmoFhl6dLniY0w4YYAOzmewLzn0YtCdptPnrkrrjHuS4Izp6biv4ubvkuDc+XJXMyhiuK0W1ynsMVaroYZ3PzGdUOjSlvUiUpslCbBlZaGIbGNGOAHPxr7kRfPW23dnnW7u7CIigBERAEXG3BcVOtamRahVJqHKSsMcXxDjPYB0nsWpIlw3drTGdAt8RLbtRx3X1SICI8dvT3sdHjWzSoSqLOeqK52ZoUnPXsXSZZe2s9HtWaNMkmRK7XnHdh06S8N29+0RyWMQrDvTVE9+vCpOoVIccto9Pdh7h1RHfUs8sbTGhWBLFtOlg+aePys5H8ONEPa4/UssWXTQo6qC19L2+C5viZNJGnqpLxf8AWo4C07DoVkyggUinQZX9aLu5iP8AG48Vz6ItOUpTedJ3ZrOTk7thERVICIiAIiIAiIgKOaHAggEHoKwS7NFLWuyKZh8j6Xz/ADE3InvTwevhwWeIskKk6TvB2LxnKDvF2NNRKFqVpyQaRUGXhSWfzWd8GYaOoO6VzVs68UGqzQp1YZGtqsA7r5SojcGexx4FbLXBXTZFEvOTMvV6dBm248F7m4ezxOHELa01OrqrR8Vqe7Y/IzaSE/zF4o5xj2xGNexwc1wyHA5BCqtMxdOLw01Jj2VV3VSnNOXUepO3sDqY7oXN2nrjSqtPNpNdl4ttV0HddKzw3WOP7LjwIKrLDNrOpPOXmu9EOi7Z1N3XnuOJ06h+pTWe87fB3ZedaypQG9Hhe2x5/mW4Vpm/KtJ2frra9bnJiHKyc3IRpWNHiHDQBkjJ8q5upbRdiU0kem5mXdUvCc9Z61GpXcakIt3S3rV8jJUpzqZsoq919DZaLTMTaeo8yS2k0Cs1Z3R3qXIB+lWna03vUselenM61p5Om3Fv1BYuJV/1K3e0inFqvOrd7N1otJm6tZaj+YtimyI64sUH60NO1sqB8Kfo9Paf1RvEfMp4o1ypxXj6E6Dpkt5uxMrSo031Un/9qv6DLNPMS8vx+gKvrN37/wCpk3/BTi9Jbaq8/QjRQ55rz9DdOUytLes3fv8A6mTf8FPWbv3/ANTJv+Cmgo/urc/QaKH7i8/Q3TlMrS3rN37/AOpk3/BT1m79/wDUyb/gpoKP7q3P0Gih+4vP0N05RaW9Zu/f/Uyb/gqw+j6vWO4vk6nKXbKN4mHMNDImP++1OLQlqhVTfiviidDF8ma8zeCLS0PW+74bA2NpvUjFHBxhk7uezgqnXO6WjJ02quBxOCfuqOJVuhb16kcWqdm9G6FguuFJbWNK7ghbu9EhwO/wz1OY4Oz5gVwFD2k7Xno4latDm7enRwdCnoRAB8f2rmbq1JtCpWzVJVtw097o0tEYGiO3JJaVMKFajVi3F6miY0qlOabid9tku7XXxs5WFVYj9+M6mQ4EQ9O9D8D/AIVtohdTO5q3rS5/ZtpNIfVJQ1GSm5iGZQx299azey07mc44rtrwPTkL6jF3SOxNWk0WXNwoEYV9wVst7FkTMRaI4KJGQrhHSokKxDLRCgRwV4jKtuCsVLRCiQrpGVAjCsihaIUCMq64KBGFkTuVLRHFQIwrxCgQrFWWSoEK6RgqJCsijRZcEUyMorXKGdAKqruquFwzqlAMqWVRVAyhKCkBhUAwqqrLBSAQBVAyhJTCkAgaqoSEJwEWhNtfXVuhGhtWn5V+a/Ux6XUyG323fnjG9j9kZPjwovYta50y2ntRhtN7SraJJRXRbIshxY9wOWTM2D4R7QD4Piaetc01oa0ADAHAALB9HbJNl2dAbMExKpPEzc7FdzdEdxx5Bw86zlfPsoYnjNdtbFqRwcVV0k9WxBERcs1AiIgCIiAwO4dJZO77vhVitTsefkZdo7xSncILHDm49eVnMGBDloTIUKG2FCYMNYwAADqACmiyyqTmkpPUtheU5SSTewIiLEUCIiAIiIAiIgCIiAIiIAiIgCIiALH7vsOh3zImWq8jDmMe0igYiMPW1w4hZAitGUoPOi7MmMnF3TOrGqGk1WsyPSqjOTcS5bQpscF0CZJMWBCcRvNJ5lvBb6tazrP9LJWeo9FpvoeOwRIcVsBryQRnmcrJp6SgVKTjSszDbGl4zCyIxwyHA8wtIysxUdnqtOlZoRZ+w5yLmDHAy6ReTyd+yurpp4unmX9peF/r8Te0kq8M2/tLz+pvGFLwoLd2HCZDaOhjQB8yuL56fUZarSUGbk47JiWjND2RYbshwK+hcl3vrNF3W0IiKCAiIgCIiAIiIAiIgGEwERAcPcFn0S6ZcwarTJaeaeRiwwXDxO5hYp/J/sP4AhfxH/athos8a1WCtGTXiZFUnFWTZqqd2brTfE79TXT9EmActiyUy5paescVztv3FrvpE5ptW/n3JT4ftZCu/lSR1bzsn51nCLcpZSxVF6p379Znjiqsdrv3mYafd0lhUuZhUrVq05u1pxxDRUpNpiyr+3HMeTK7f2TqBbmpFDhVa2qxKVinxBwiysUOwepw5tPYV0FqdJkq1KPlZ+Vgzku8YdDjMDgfOtbwtMK9plWhcWldwzVt1Nh3nSLopdLR+wtPDyEFelwuXYTtGurPp5jchiadTVLU/I9X3NwoELpzoNt/StWqkvaGrEg20royIbJ8+DJzR5A59xnzdq7iwosOYhNiQntiQ3gOa9hyHA8iCvVQnGos6LujYasRIUSFdIwoEYWVFLFoqBCukKBHFWKMtEYUSFccFEhWKstEKBCukKBGVlWsqWnBW8davEZUHBSUaLRCKRHBFYqZyqgZQDKkuGzqWCAIpAYCgkbqAKqkBhCUUAVUVQMoWAGSq4VUVQMYXl3tTX83aG2q4dDlXui2rYjdyJg5ZHm85cfIcN/uld9tpfVuX0P0Uue7IsRrZmWlXQ5NhPF8w4bsMDynPiC81dCrZj0i0XVaoOMWr1yM6oTT3+2y45A83Hyrk5SxGgw7ttepGDEVNHTb53qNkAYHBEReBPPBERAEREAREQBERAEREAREQBERAEXD3Jd9GtGTdM1eowJKEOQiP8J3iHMrXbteotejOgWja1RrzuQmHt7zB8e8Qtinh6tVXitXTsW8yxpTmrpajbioSBzOFp8yGsFzOJiz9KtmXd+jgw++xAPHx+pXYWhNQqh3rhvis1HPOHLv7y3xcz9Cy6CnHl1F4Xf08zJoorlTXhrNnzdbp1PaTNT8rLAc++xmt+krH57VqzqaSI9xyAI6GRd76MrH5bZyseA7eiyExPP6XTc09+foXNyWj1l08AQbckBjpdBDj86Wwy2uT8EvmyLUVztnFTG0JYkDlWRG/soTj9S+F+0pZucQos7HP/tyris9lbPoUljvFHkYOP1Jdo+pchDp0pC9pKwWfuwwEzsMv0N+K9BnUV+l7/oatdtJ24fzdPrEX9ySco/yj6Ofa0GvOb0ESLuK20IbGjAY0eIKu6OoeZNJh/23730GfS6nn9DUn8o+k/1fr3yFyfykKOPb0Kusb1mSctt7o6h5k3R1DzJpKH7f/L6DPpdTzNVy20laL3hs2J+nE/0mVc1c7C1PsS7ZOLJvrdPmIEZpY+DMO3Q4HoIcsvmqbKTzC2ZlYMdp6IkMO+lYzU9IrNq+fRNuyBJ6WQgw+cYUqWGeu0l3NP5IlSovma8TW76TV9IJyJU7OmWXBaUR3fJikNjCI+AOl0MgralkX/R7/pgnKVMh5bwiwH8IkI9TmrEJnZvs17i+UZUKZEPJ0nOObjyHKxZ2zVP2pPxKxaN0TUvUmZc2HNMyIp/Vc4HiD2hbc3hsRH2p2l0tbe+195nk6NVa5a+m3x9TfaLWNjawejKmLduuV9IrlZ4O5E4Qpg9bHdvUtnLmVKU6Us2SNKcJU3aQREWEoEREARcRWruoluwXRalVZSTaOiLFAPm5rXdW2mbSlIhhU/0XWY2cBspAJBPYStinh6tXkRbMsaVSfJRttFpT13b+uaH/APTlhRoDHe1mKk/dHj3eH0qDaXrZWfCjVak0hp47kGGCR9P0rPxSS5cox736XMvF2uVJLxN3ItKeoPVw8TfEuD1CF/0T1Bat/wBeZf8Ahf8AROLQ/dj5+g0MeuvP0N1otKeoLVv+vMv/AAv+iGxNXWcW3vLOI6DC4fQnFofux8/QaGPXXn6G60WkvSrW2n/m6vSJ9o99hAZ+YKUO59aKaf8ASbapVTaP6O/cJ/xFOKX5NSL8fUaC+yS3m60WmHa2XfSh/rbTioMA9s+Wi74826kDafosJwbUqJV6a7p77LnAUcSr80b9zT+DI4tV5lc2Pedh0a/aY6Sq8o2M33EVvCJDPW13QrWjG0beOyfWJW37yjx7m0ziv73L1DBfHkMnhk890fq+bqWN0zaHsSpENNZbKvPDdmYbmfUspdVravWmRpT0dT6pJx27r4QjNdvDxZyt3CYrE5Pl7UXm9DM1OdWhqnF5p6LWvdFKvSgyVZos7CqFMnIYiwZiC7ea5pH/AHwXJOC899gutVexdfbn0zlKpFmbQbJGowJOP4XeHndPgHo9tg9a9CiMr6JRqqtTVSOxm+0tq2MtFRIVwhRIWyUZaIUCFdIUHBWRWxacFAhXSFAhXiVaLJGFFwV1wUCFcoy1jCKRCKSpnCrjHaqgYVVxDplAMKoClgIhYAYVQEAypISMYRFLkFVgphVAwtMa07X2mGhUB7bguKBGqePApcge/wAy89W63l4zhdW633S6+LtiPZp3pW8wM+BO12KQwjr3Wlv/AMljnONNXm7Is7JXeod0ovF98ah2DpNJxS+C6J6bVNjDwbDBIaHeZyxWBBZLQYcKG0NhsaGtA6AFqHTO5Lg1d1dvjUC7RAFbfFbJuhywPeoO6MFjMk8AG9a3CvF5Xr6WvmLZFfE42NnnTUVsQREXDOcEREAREQBERAEREAREQBEWOXjqBQ7EkXTFWnWQXY8CA070WIeprRxKvGMpvNirsmMXJ2SMic4MaXOIa0cSSeAWprt1Znq5V32zYUFtSqud2PUSMy8oOkk8iR/3lcU4Xlri4eDGtG0CeIPCZm2/UPm8a2ralnUmyqWyQpEoyVgj2xHFzz1uPSVu5lPDa6ntS6OZd/obObCjrlrl0ephNr6E0yWjip3PHiXPXHHefHmzmGw9TWfatmS8tClITYUCEyDDaMBjGgAeRXCQASTgDpWv701roFpRxJQXRK1V3cGyEgO+Pz2kcAsN62KlbW38PQpepXdtpsBYxdOpdtWbDJqtWgQInRAa7fiO8TRxWv3UnUnU8CJPTjbKor+UrL+FMvb+0eg+bxLK7W0TtW1i2M2Q9MJ7m6cnz32I49fHgPIFk0VKl+bK76F67N1y2jpw5bu+hepjzddahcEQw7Ws2p1ZvJsxGHeYXjyQjpvWSqnehSlBo0M8mRMxXjxnex8y23DhshMDGNDGjk1owApKNPCPIprx1/TyGliuTBeOs1F6Uayu4mu0Jn7IleSelOsrOIrlCidhlcLbqJxp9SO5DTvqrcah7zrRA5TNuzGP1oThn5wpsrGsUrxjUSgzmOiDFcwnzuK22icZvtpx3Eabpitxqf1w9RZEZnNPHRwP6HONP1FWna9T0gcVSxa7JAc3NhiIB5lt1DxGDxHammpPlUl4Nr5saSD2w+JqyS2kLPjPDJyJOUx/SJqVe3Hlwswo2o9r3A0GQr0jME8miMAfMVy05RafUGlszJS8cHmIkMFYpVtE7KrOTHoEtDiH9JL5hOHlaQl8NLma3P0JvRfM15mbQ4jIrd5jmvb1tOQpLUEfQSbo0TvtqXfVaO4cRBjxO/Q/F0H6VT091SsWGTU6XKXfIs5zEge9xwOst6fMnF4T/Kmn2PU/PV5jRRlyJJ+RnF+ad0jUCmGWqEHEdnGBNw+EWC7oLT9Sw7TS6axbtzRbEuiL6KnYUMxZCof0mEOg9oXLWlrnbdzTAk5iLEolT5GTqLe9OJ7CeBWu75g3FfGthFmzUGBM0eSEOLOxMFkLf5gc8nitqjSqNSoVtSSvr5jNThKzp1NS26+Y7BTE1BlIZiR40ODDHN0RwaB5Stf3Lr7ZltOdCdVGz8yP0Mk0xTnxjgsYlNnabrkcTF5XXUKy7OTAgPMOGezJ4+bC2DbuldqWqG+ltElYLx+kczfefK7JWvmYanypOT7NS3v0MWbRhtbfca8OtN43cDDtCyZjdPATlSy2GO3HD6VA6aanXhxuC8WUqA720tT2ch1cMfSVu18SFLQ8ucyFDHWQ0BYzXdVLTttp9H12ThvH6NkTfefI3JV415Xth6aXhd+ZeNV7KUPmzE6Ls2WfT3CLUIc1XJrm6LPxi4E/ujA8+VsCkWpRqBDDKdTJWTaOXeoQBWuJjaKkZyKYVAt6sV159q6DLljT5SFX1Sar3I3/AFfblPt6C7lFqMXvkQD90H6lapTxU/zpW73by+glCtL8x272bcXzTdTk5BpdMzcCXaOZixA36Vqb1qr8rpzXdQI8OG720GnQu9jxdH0LkJDZytWEQ+pPqFcjdLp6acQfI3CwaKjHlVL9y9bGPR048qe5f/DIKprFZdHcWzNxSQePcw4m+fmXBRto+xoRIZUI8fthyzyPoWSU3Su0aSAJW35GFjp70CfOVzcK36ZAGIdPlmDshN+xL4Zc0n4pfJkXormbNdt2lbLceMedZ2ulH/Yvsl9oew4+A6s95P8A7sF7fqWeupMi8YdJwCO2GPsXyx7Uos0CItKk4gP60Fp+pM7DP9D3r0GdR6r3/Q4eQ1as2p49D3JT3k9BjBv0rnpav0ydAMvUZSMDy3IzT9a4Cd0js2oA9/t2QfnqggfQuEm9nixpnPe6VEk3frSszEZj58JbDPnkvBP5oWovnaNjsisiDLXtcOw5UI8nAmmlsaBDitPQ9gK1TF2cqXDOZC4q/IY5NZNhwHnarJ0YuunHepOolShkcmzLN8fT9SlUqL5NXen8rk5lPmn5Gd1PTS1qyD6MoMjGzzJggHzhYjU9mmyJ7L5aVmqVG6IkjMFuPIchfKwav2sMuNKu2XbzbjvMYjs5D6VWV2g4FNmRLXVb1TtyLnBixYRiQvOByWeMcTH8med3P5bfIyxjWX5cr9z+RxlG0SvPTe5XXDYt+TUhVdzvffY4IiOZ+qXDII4DoW9dPdvC/dKZyBTNY6G2q0l7gxlx0pmCwdcRo4HyYPYVwlBu2jXPLtjUqpS09DcM/kYgJ8o5hfdUKfLVWTiys5AZMy8Ubr4cRuQ4LboZXxOHlm1Na6NhZYuadqiv8TvvZ150XUC3JOu2/UINTpc2wPhTEB2Qew9RHUuYI6V5g6NX/VtkrWClycvGjTunV0TQlX07fLjKRnEAOYOzI8Y8S9P+BHYV7zDYiGJpqpDYzd1NKUdjLR5qJCuuCgtwoWiMKBCukKBHBXKlojKtuCvEK24LKVasWnBFMhEKWM3AypAYQDCqBlcU6gAyqkKo4IgCYUgMLVe0jtA0PZy02nLmqxEeZP5KQkGnw5qOfatHZ0k9AVblkjIdUtX7S0ZtmZrt21mXpUnBYXBsR35SKf1WMHFxPUF546nbX+qe01FjU2xIcXT6xy4tfUonCbm29QPQOxvlK11Aodxa+XPE1A1RmYk9MTT++yNFc4iBKw/cjd8XR51tCBAhysFkKDDbChMGGsYMADsC81jcrKm3Toa30mhXxah7NPW+kwOz9FLetd/ouYhOrVXed6LUKge+RHO6xngFm89MQ6dTZiOQGQ4EJ0QgcAABn6l9Kw7WGq+kumNyTQduu9BvhtPa/wAEfSvM59TE1Vnu7bOXnSrTWc73Md2cJJzNP4lReD3ypz0aaJPPGcD6CtprE9KKb6Uab27KkYcyTYT43eEfpWWJiZZ9acu1is86pJ9oREWsYQiIgCIiAIiIAiLVlRsnUmfnphzL6gSko97jDhwZQbzW54DOOpZqcFO95Jd9/kjJCCltdjaL3thNLnuDGjpccBYfdOrtqWixwnatCiTA9rKy35WK49Qa3PzrERoHOVZ+9cN6ViqNPOEyJ3tp7OCzK2dJrUtMB1Po8ARxzjxh3yIT+87Kz5mHhypOXcreb9DLm0Y7XfuMGN8X7qY10C16Obbpr+Bq1SHh4/Yb/wBCues3RClUCb9M6xHi3HXHHeM5PHeDD+w3kFsgANAAGAOQC4i5bvo9nyLpurz8GSggZHfD4TuwDmSpdecv5dGOan0bX47RpZP2Kat3bTlwA0AAYA4ABYhfOqlBsKDidmfRE8/hCkJbw40Q+IcvGVgzr1vPVuI+WtWTfblCJLX1mdbiI8f+23t/7IWXWNo7Q7LcZtzXVWsP4xKjOnfiE9meQU6GFHXXevoW3xfN8SdHGnrqvX0IxD0vv7WEB87FfZdtv5S0P/ao7esno+ZbCs3TW37FlwylyDGxyPDmovhxYh6y4rKEWKpiJTWZH2Y9C+fT4lJ1pSWatS6AiItUwBERAEREAREQBERAERDw58EARQdGhs9tEa3xuCtOqMoz20zBHjiBTZizOFuvT2371lnQqtTYMwSOEYDdiNPWHDiCuPsyxaLpNQZ4yz4roZLpiYmo534jgOvA44Cyf03kf6ZA/iD7VIT8nMAtExAiA8CN8HKzKpUzdG283oMufPNzW3Y1TG2gjVoxg2tatWrrs4bG70YUM9vHipOZq5djBl9Ls+A7ob+WjY+cD5ltmBBhS8MNgsZDZ0BgAHzK4s2nhH8uml36/p5GTSxjyIrx1moIGz++qxBFue7KtWnH20JsXvUM+bisuomkFn2/umToMqIg/SxWmI8+V2VmKKk8TWmrOWrs1LyKSrVJamy3AloMqwMgwmQmjoY0AfMriItYwhERQAiK1FmYMAZixWQx1ucApBdRcJO3vQKb/tNZkoH78do+tcBOa5WJI577c0mSOYhlzz/hBWWNGpPkxb8DIqc5bEzOkWrZjaRsthIlo87Pno9DScQ584C+dm0NKTbt2RtO453qMOS4H51sRwOJlspsyrDVn+lm2kWrW6w3BM49C6ZXTHB5H0KR9S+uHfeoUznvGj10Pxz/ANHd91ZVk3Fv9HwL8Tr9U2OrE5Iy9QgmFMwIcxDPAsiNDh861/FvnUSUhmLMaPXRDgt9s70O7h/hXHO2hJOmxRDrlr3BRD0umJMlo83H5lDyfi468xh4SvHXmn2XJoFb1UjGcpBj23UwciZpzywE9reS4U1HUvTGH/psCHe9HZzjwBuzUNvaOn51l9G1rsmulrZa4JVsU/oo+YTh5HALMZWcgTsMRJeNDjsPJ0NwcPmVXWrU/Zrxuu1fPaQ6lSOqorrtOv8AeeqdDv8ArWnwkokSXnZevwHTElMsLIkIbzeJzwx2r2NgubEgMc1wc0tBBByCvMO+tIbcv6G107Keh51h3oc5K/k4rT15HPyqdha76o7KU1CbUJuPf+nxcBEgx3EzEm3ra48R848S9TknH4aEFQWp9vqb1GpTnFQjqfQz06IyoOCxbS/VG3dYLPkrktqeZPU+ZaD4J8OE7pY8dDh1LKyvWpl2rFohQIV0hWyMK6KlshQcFcIUSFliyvMWSEUnBFYoZvuqoGFVVAyuIzplFVqrhVAUXJR8dYq8nQKVN1KoTDJWSlITo0aNEOGsY0ZJPkC8mr5v2d2u9bpy8J/vhsShRTLUSTefAjFp/O7vbwOfEOhb+7o3rhN1SYpWiVqR3Cq1ktjVmPCP+zyuchhx+tgk9gHWtVWvbknaVBk6TIs3JeWhhg4cXHpJ7SuDlXGaCnooP2peSNTFVtFDNjtZyoGBgcAiIvEnBC1PtKzLhp7DkIfF8/OwYAA5njnH0LbC1HrY30yu3T2k8xHqoiuHYzitzB/nxfRr3azYw/5ifQbTpkqJGnSsu3g2FCaweQYX0oi1G7u5rvWERFACIiAIiIAvnmKjKyjt2NMwoTup7wCviuusG3rZqlTA3nSktEjAHpIaSPnWnNOtHKXqBbMtcl1Rpup1SpZjuPf3NawE8AAFtUqUZQdSo7Jatl9ZnhTi4uc3ZG6XV6mt5z8sPHFb9qp6oaX8ISv8Vv2rAGbOFjMH/h0d370y8/WpfycrF+DIvyh/2q+bhus9y9Sc2j1nu+pnouKlnlUZU/8A7W/auKr2pNsWzBMSo1qUlx0N75vOPiAySsXOzlYpz/qyKPFMP+1cnQdEbLt6O2NL0SDGjt5RJomKR8ZLYZa86T8Evmxaiud7jE4urN039HdKWLQIkKVJ3TWKm3chtH6wb0/OexcpbGhcpBqLavdU/FuisZ3g6aJMGGf2WLaEKEyCwMhsbDY3gGtGAPIpI8S4rNorNXnvDrWVqasvPeRhw2QYbWQ2hjGjAa0YACkiLSNcIiIAiKjnBgJcQ0DpKAqixeu6n2rbZLahXJOA8foxEDn+YZK4qk6i1y/Zj0Np9Ydw3fGJwIsCUcyD8bj9S26eEr1uRBmeFCrU5MTPVCLFZAYXRHtY0cy44C5qztkDaX1Lc2JPytD03pz+bp2L6ImgOxjQRnxkLM6tsAaWaey7Z/WnWudnh7Z8CPOMkoR7A0EnC6tLI1aX5jS8zehk+o+U7Gia1qvaNvuLJ6vSkOIP0bHd8eezdbkrjKbqTWrymO8WTp/ct1PdwbEl5JzIbvKePzLfsrtC7DGzwzFs25CuipQuUeUpvox7j1mLHIHlC+Sod2ltCjkQLd0wm/QzeDe+zcOBw6PBa04XVp5GoR5bb8jdhk+lHlazELc2d9p++ojRL6f0y0Jd54TFenQCB1ljd53+FbGp3c5dcKq0OrGqlBpWfbQqXIPigeJzg36Fj0j3buS76PRmmUUQ88TBqYyB4ixbl027r3opeMZktXW1e0Jlxx3yelxFlx/fhuJHlauhDA4aGyC+JtRw1GOyKMPhdy2vObeGz+t9S717oS0i1h/+S5iU7ktSYoHprqvdk717j2Q8/Su6dgap2lqnSWVO07gkK9JOGe+yUdsTHjA4jyrKlsKjSjsitxlVOC2JHR6S7krpdDaPRtyXZUCOffKiW58wXKQO5P6Gsc10aBXZkg/pKtF4+YruaiyKKWxF7I6fexVaCfA9V/8A+rG+8vknu5QaHxwTKwa7T4mMB8Cqxcjt4kruYimyFkeQW0Fs/wA7sY6oWzLyVbqNcsC596WhxKk/fdKTQ5N3u0EL6l3l7oDpO3VrZguyVgwu+VWkwvTaQc0eE2LBy7h427wXmFRNoW1oFn0ucqtTb6ZxIDe/SkBpiRe+DgfBHWR0ryuVcG3ONSlHbqdji47DtyUoLabYRa+tutaratO3dOdK6vU5Z3Bs9OwzDheMk4aPOtzWh3O3X7USG2Ne18U2x5OJxMlSWmPHA6nEANB8TitGlknE1OUlHvNaGAqy26jDajW6fSIZfOzsCVYOmLEDfpWEVfX+yKSXMbVxUI44CBIw3RXE+QY+dd0LK7kfpXSosOYuurVy85kEF3oyaMNjj4m/auyNhbK2kumcOG23bBoki9g4RjKNiRPHvPyV1aeRKa/Mm33ajdhk6C5UjyXo+ot8X3EEOytK7jre97SI6Xc1p6uQP0rYNu7Ne1bf0VrYVm0qy5d/6esTLct7d1pe7/CvXeWk4EnDDIEGHBYOTYbQ0DyBXl0YZNwsP0X7zbjhKMf0nmVTO5eat3AA66tY4EkHe2gUWWeQPEXbv0LM6R3ISx4TRFua/wC5q1u+E/MdsFp688130rdakbcpE5VKlMw5OQlITo8ePFdhsNjRkknxLxc24+6X3FrDVKjaGnk5MUCyoT3QYk7AfuTFRA4Ekji1h6ADxHNb0aVOHJil4GyoQjsRtnVizdhvZmMaVqEjM35ccE4NMlJ2JNPDv2yXBjR5c9i0FV9u3TWhPMKxdnWzqZBb7SLU4ZmInjI5LpdEiPjPc97i97jkuccklchTrZq9WgRI0lTJubhQxvPfBgucGjrJAWUudqWd0rvqScfSyzLHpjB7VsChwvB8pCyihd1w1UpMVpjW7ak1CHuBThC+dpC6OOaWuIIII4EFEB6oafd2rl2RoUK8NOWsgZw+PRY4LgOsMfgHxbwXenQ7bJ0l2gYMJlqXRLOqb2gupU5+QmmHqLDz8bSQvzjL6abU5ujzsKckZqNJzcJwdDjwIhY9hHSCOIQH6nSGuHEAgrjKpatGrcJ0KoUmSnYbubZiXY8HzheVewx3UufkqlTbG1fnfRUhFIgSlyxjiJBPJrY/W3o3uY6V6ySs1CnZaFMQIjY0CK0PZEYctc0jIIPiQGkNQdiHRLUyBEbWNPqS2O/+cyUL0PFHiczC6zXt3I6lSMWJOaZagVi1ZkcYcrOOMeBnqJ9tjzr0NRVlFSVpK5DSepnjFqLp9rzs3Rohvi0PVTbkE49UFD/KMLesgAEH95o8araWoNuaiU95p05DmAW4jSsYYiMHSHNK9mI8vCmoT4UaG2LCeMOY8ZBHUQuk21f3NG1NV4M/cunrm2Re3e3vzJZhy047HtXtb7UnlvDr5LjYjJVGrrp+y/I59XBU5646mdeO5qwRL6g6tS9PLm0OFMQhBYwnvLX5dnA5Zwu/JC6c9zqrFOtO37l0uqVE9T9/W/OPfVYUQ7z5vJAEXJ48OAx1YPSu5BC9PQjmU4xvexSorSsy0VAhXDzUXLZMJaIUHBXSFBwV0ypacEUiEWVMozNcZU1QKq4bOmFh+sGp1L0c03rl21eI1krTZd0UNJwYj8eCwdpOAsxAXnD3QfVCY1b1aoWi9Ijf6npzm1Guvhn27hxbDP7o6Otw6ljnONOLnLYiW1FXexGm9KoVTvmu13U+5cxK9ccd0WGH8RBgZ8FreofUAtnK1KysKSloUvAYIUGEwMYxo4NAGAFdXzjEVpYiq6kuc81VqOrNyYREWsYgtT3oPRuvNjy54iXlpiYx24wtsLiZm1qdN3HKV2LA3qlKwnQYUXePBruYwtijUVOTb6Gt6sZac1BtvoZyyIi1zEEREAREQBERAcXdFFFxW5UqYXbnouXfB3uokYBWp9LNS5GyaXCs+7niiVam5hMfMeDCjw88HNdyW7FxVetSj3PBbCq1Nlp9jeLe/QwSPEeYW1SqxUXTqK8Xr1bUzPCcVFwmtRxsPU+0ouN24qac/wD5LftX1QL7tyac1sKuU+I5xwA2ZZx+dcHF0PsWLkutuUBPS0uH1r5I+z9YcdrgKGyET0w4rwR4uKvbCvnluXqWtQ6X5GwocRkZgfDe17Tyc05CktRu2d5Gnv75QrirNFePatgzJcweQrjrjt/Vez6XFmKRckK44cIZ7xHlgI2OzrPYpVClN2hUXimvVBUoSdoz36jdqLGNmzSG/tqGmRYlC1bt6kVWW4TlGmaa70XLntYSN4do4LsNJ9zE1CnQPTbW18PPthTqU1nmJcV0Vkau9rX9eBtrJ9V86NQLjalctJo7S6eqUrKAe/Rmt+krsnTe5N2zHiNfcWpF21oe6Y2YEFp8gWf2z3L/AEEt+I2JM23M1yIDkmpTsR4PjAIW1DIj/XPcjNHJvWkef9R15sinP3PTpk3FzjvcmwxnE+RfdRrivy/S1tjaV3NX2POGzMaVdAhHtyRjHlXrLZ2z/ptp/DYy3rHoVLLPaxIMjDMT45Bd86zyFLwoDQ2HDaxo5BowFvU8j4eHKu/67DZjgKMdus8p7X2PtpzUCJDdOSlv2BIv4l83G9ETDR+43Iz4yFt2gdyjlKrEhxr/ANTq9cTgcvlpECUgnswCThd/0XSp4WhS5EEjchRpw5MTr9ppsGaIaWRYUxTLGkJ2eh4Im6qDNPz1+HkfMsi1u2gdNtle0fTO5pyVpMJzSJWmyUNojzJA9rDhjHn4AK3tV7SFE2YdJqjddVc2NOEGBTpEuw6amCPBaOwcyegBfn11o1rurXm+Z66bsqMSenpl5LIeT3uAzPBjG9DQtozHbDaE7rNqbqbGmqfZQbY1CeS1r5ciJNvb2xCPBP7oWD6M7CGue1jR/VeJhrKXNEuhVS456JvTJzxLBhziM9PJdTBzX6D9gDWe0NS9nGz6fQqjLemVGkIclPU4PAiwIjBgkt54PPPagPEbaB2Y7/2aLhgUq96SJT0SC6VnJd/fJeYA57j8Dl1HBWqV67d2jvy2Ymn1qWs2bl5i5/R5mxLscHRIMENILndLQSRz5ryJQBERAZfppq3d2j9xy9ctGvTlEqEBwcHS8Uhr+xzeTh2EL2C2G+6aUjXSNK2bqAZeg3o7DJaaDtyXqB6hn2sTs5HoXicr0nOR6fNwZmWjPgTEF4fDiw3Yc1wOQQetAfqhByqro93M/bSftCWS+z7omg++KFBBMVxwZ2WGAIna4cneQ9K7woAiIgNa7Sd0wbK0Dv6tR3BrJSjTLgSfdGGQ0echdb+55bJ+ntE0Ds68qnZ1Onbsq0sZyJPT0ERnhrnHc3Q7Ib4ODwHSvv7oxdMe6aNZWiNEiE12/wCqw5eOGHJgyTHZiPPZnHxSu2tp25JWhbNKodOhCBIU6VhysCGPcsY0NA8wQHIy8pBk4TYUCCyDDaMBkNoaB5ArqIgCIiAIi4K+rpl7Isyt1+bcGS1Nk4s1Ec48AGNLvqQHmF3Xrayi+i4OjVtzz4TGNZM12LAfjeJ4w5ckeIOcO0BeWKynVK+53U3US4bpqEV0Waqs7FmXOccnDnEgebCxZAbi2QKHZdybSFjU3UF8NlqTE6WTQjO3Ybj3txhteehpiBgPjX6Jrfsm2repEGRo1EpshTmww1kCUlmMh7uOHADivy8NcWODmktcDkEcwt8WPt0a4aeWu236Lf1RhUyG3chMj7sZ0JvU1zwSB5eCA57ujNqUGztrm9pC3peBKSTokOPEl5YBrIcV7AXgAcBx447V1oX3V2u1G56xOVWrTsaoVKciGNMTUw8viRHk5JJKu21bNWvGtylHodPmKrVJt4hwJSVhmJEiO6gAgOMRdzqB3JfXquWuau+n0mnRyzfZTZyd3Zh3ZgNLQewldTL1sqtad3TUbduKnxqXWKfFMGYlY7cOY4fSDzB6UBwgOF669ya2x5i7KedIbtnXx6jIwjEok3Hfl0WCPbQCTzLR7XsGOheRSyvSrUWqaTaiUC7aPEMOfpU2yZYAcB4B8Jp7CMjyoD9PqLGtNr3ktSbBoF0U94fKVWShTbMHON9odjyZwslQBERAed+07TYGl/dEtKblpzBJtu6RiU+pbo3WzDwHsaT1n838ULtQRhdX+6OVinVvXnQC3aRFE1eUtXWzbpeCd58GWLm+E4DkMtJ49AJXaJw5rbovUzRrrWmWnDoUFdIyrZGFso1C24KDuSuuCtkYVijLZ5IpEcUV7kGagZUsIOSLjHRMD1z1VkNFdK7gu+oOaGU+Wc+Exxx3yKRhjfK7C8udFabUKtCq9818ujXDc0y6cjRYnthDJJaB1Dj9C3N3RDUmY1S1btnRmlx80mQc2qVvc47zhxYw9gBJx1uHUuCl4EOVgQ4MJoZChtDGtHIADAC81lnE5sVQjz62c/G1c2KprnLiIi8icYIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAwuv2DMQbhlrstCqRrVvGTcIkCoyTtwRCOiIBwcDyOV222ae6NQ5uoytj61S8K1rnJEKVrQ4SM/wBGS7kx3zeJdfVw90WlSrypj5CrSjJqA7lvDwmHraeYK7WCynPDexPXH4dx0cPjJUvZlrR7DS8zCm4EONAiMjQojQ5j2OBa4HkQRzCuryG0f2h9VNkmPBlJaJH1D03Y7LqZNxC6ckofT3p5ySAOTeXiXo1oFtU6ebRtGE1adahvnmNBmKVMkQ5uAenehniQD0jIXsaNeniI51N3O/TqQqrOgzb6Ii2DKERfLU5r0DTZqZ4fkYTonHsBKA8O+6v65zOpm0VMWvAmS+i2qz0JDgtPg9/cAYjsdfIeRdJVlerVyxry1Qu2uTDzEjVCqzMyST+tFcQPNhYogC5OgXPWLUnROUWrT1ImxwEeQmHwXj+80grjFVrS8gNBJPQEB9dWrNQr09EnanPTNRnIpy+Ym4zosR56y5xJK+NVex0M4c0tPURhUQHajYh2Fa3tcVibno096SWdTIohTk+1u9EiPIz3uGOvHMnkvQi5e456QVC2okpSqhWaZVhDxDn3RxEG/jm5hGCM9S0b3GnXykW9OXLplVpqFKTNUjNqFNMVwaIsQN3XwwTzJAaQOwr1dqtZkaHTpifn5uDJycuwxIseO8MYxoGSSTwAQH5sNorQWv7N2qdTsm4TDizUruxYMzC9pMQXcWRG+MdHQchazXZjuh+vFJ2gtpWsVygP79RJGBCpkpH9+bCzvRB2FxcR2YXWdAbA0E1dquhmrNu3lSI74MenTLXRWscQIsI8IjD1gtJC/SVYd4yGoNmUW5KXFbHp9UlYc1Be05Ba5oPzcvIvy6r2y7j9q9EvXZ+nLUnI5iTVszjoMIOOSJd43mDxA7wQHfZfLVKnLUanTM9OxmS0pLw3RYsWIcNY0DJJPiWrtb9qjTbZ9pzo93XJLS84W5hU2A4RZqKegCG3iM9ZwF51a57UGo+16Y1HpkGY0/0viHESG44nqiz9s+5aerl41grVqdCOfUdkY51I01nSdjsZsoyL9praPvPX6ow3xLdpznUO0mRRgGE0/lI4B6T0eMrvIvP3uXmsMOi0yvaKV6ZZBq9AjOmaX3zDTNSjznLesgnj416Agg9KyxkpxUo7GXTUldFURFYkIiIAupfdQ78j2Psg3UyWiGFHq74VMBBwS2I8b4+KCu2i88O7TVZ0roRacgCQ2arW8R17kMn60B4zIiIA1pcQACSegKUSG+E7de0sd1OGF3E7luNMTtDRPXI9L98SR9JfTXd9D+i98c97wd7d3sb3DPbhbq7sSdLjM2eLZ9KPVmIkQT/pV3vPofdG533c4Z3uWeOEB5nr0Z7i/UbQg6sXbJ1WFLequNIsdSosdoLu9hx762GTydxaTjjhecy5qzLyrOn1z064bfn41MrFPiiNLzUB2HMcPpHYgP1G9C8M+67MpzNq6N6DbDbMmly5mtzmX+FjPbu4Wyra7tTeNNsn0FVrJp9UuNjNxlRbMOhQnnHtnQwOfYCug2q2qFe1lv6sXhcsz6Kq9TjGLFc0Ya0cmtaOhoAAAQGJoiID3R7kjqDEvPZSlabMRu+zNAqMeQwTxEM4fD+ZxHkXddePXcktoqz9F7e1Mlr2uSToVPixJOZlxNPw57gIrXhjRxJ4t5di7Q3z3VqxYDo0np7bNbvyojLWRIMAwJYHoJe7jjyKrkoq8nYhtLWzvGSBzXU3az26KXo7NCx7GlheWqM/iBLUuT/KMlHO5PilvIjnu+fAXUW99pnaJ1sESXmqzJabUKNkOlqMN+a3T0d9PEHtGFb7mZbMqzVbVaanN6rVCSfBgw6nO/lY/Fz9475ycnAzxWGjiKVeo6dOV2jX08HdQd7G99l/Zlq1o3DUNT9Sp81/U2tgvjRYnhNkWu/Rw+o44ZHIcAuy8QK6eSg4ZC68Uo6kakpOTuywoOCuEKLlkMZaIUCMq6QrZHFWKstuCKTkVytjNFiuqd/yGlun1duqpPDJWmSr45DjjeIHgt8pwFlYGV0E7ppqdMVybtLRmjxSI1Zjtnqq5h4tl2HwWHxnJ/uriykoRcpbEdHUtbOumjfpheE7cOo1ezGrdzTj5jvjxxbC3iQ0dQ+wLaC+am0+DSafLSUswQ4EvDbCY1vIADAX0r5viKzxFWVR855qrUdWbkwiItYxBERAEREAREQBERAEREAREQBERAEREAREQGAW5rTQK9cc5Qoxi0qqQIphNgTo3O+46Wnt6ln6w3UDSegaiwM1CXMGeYMQp6B4MVh6OPSOwrW8Kd1H0ZIZOQjeVtw+Aiw8+iITevr4dXFdBUaVdfyXaXQ/k/kbejhVX8t2fQ/kb6WEV/S6Vma1CuG356ZtW54Dt+DVKW8wnb37QbjPardl602te27Clp9spOnnKTf5N4PUM81nYIIyDkLAnWws7q8WYk6lCWrUzO9Ke6H6k6PmHTNXqA67qEzDW3JRWAR4bR0xYfJ3j4LvDo5tR6Za7yTIto3XIz0yW5dIRYghTLPHDdg+bK84nNDgQQCDwIKweu6M2zWp4VCDLRaPU2neZPUuIZeI13XlvSvQ4fLXNXj4r0OrSyhzVEe1YcHDIOVxV2MMS16u1oy4ykUAf3CvJK2dVtonSyG2DbOpouCQh8GSlxwO/kDq3iSfnWx6f3QnXyRp8WTrum9v18xIZhujyE86W5jGd0hy7UMfhqiuprx1HRjiaMtkjygrbHQ61PtcMOExEBH94r4ltGuaFX7UatOTpt2JD9Ex3xe9siNIbvOJxz7Vxr9Br8hnHqdmT+6Wn61m4zQf61vRfTU+st5gC7hdy/nNMZPaCcdSG08EypFJiVbc9DMmMj22/wCDnHIldevWJvv+rk1/h+1Sh6D34XDFuzTT1ktH1qeMUeut6J0tPrLed9O62u0UmqVbs1Z8ahRb5dMER3UF8Mh0vjnF734JOcYzxXmYthnQK/XnjQI5Pa5v2q63Z2v1xA9I3jPXEb9qjjVDrreiNNT6y3mvpGfmaXOQZuTmIspNQXB8ONBeWPY4ciCOIKza7dfNR77pMOl3Be9eq9OYABKzdQivhnHLLS7B8q5WW2ab9mIoY6lMgj9Z8ZuPpWT0nZBuWaIM7UZKSb04JefmWKWOw0NtRFXiKUdskaGQDK7a0DY+oMoQ6rVebn3dLIDRCb5+JWw6DoXZFvFrpehQI0RvJ81+VPzrQqZYw8eTdmrLH0o7NZ0hoFl126Ioh0qlTU6c43ocM7o8Z5BdnNALH1e0slazCol0usqVrUNkKdMqQ+O5rSSN0+5PE8QVvqWlYMnCbCgQmQYbeAZDaGgeQK6uTVyzWnqppR8zRqZQqS5CsYPb2kFDo1SdVZ0zFwVp534lRq0UzEVzv1vCzgrOAMDARan1S1djU2eba1qQ/TG6JrwB3vi2Wz0u7Vykq2Lqa3d9vMaK0mIlrdzFdRpRtf2hrdkpKrTVLmxKuD5umRzCjwXAEjwm8Qt2UW9derFYGW5rFUJyCz2sGuwhM8OoudklYdpPpJBsaDEqdTiCpXNOZfMzsTwi0nm1pP09K2Ot6WPqUHGnQlqird5syxUqdo0nqRkFH22tp62XtE9K2pdUBvMGEZeI7ytOB5ln1E7qHfFM3G3RorNxGj28WjVBsXPia4BahRZo5ZxC5STLxyhVW1JnZKmd1k02yG1217rt5w9sZmQL2jyhbAtzulWz/cW4PVqynPd7melokPHzFdK3sbEGHNDh1EZXE1CzaDVc+jKNIzGemJLsJ+hbcct9en5mxHKXWientubTmk12FopeoluTLnDIaajDhuPkcQV0Y7tJWJKr6WaeRJCdgTkB1UjkPl4rYjT+SHSCVoSe0LsefJc+gS8Jx91BzDPzFcJUNmWzKhDEMiow4YO8GNnC5oPYHArajlnDvamjMsoUntTOkSLuizZRsVowWVBx6zMj7qvQ9liwmDBlp5/aZr/or/xjDdu4tx+j2nSlrixwLSQRyIVYsZ8Z5dEe57j0uOSu7sHZisCF/wCWx3/vzLivvgbPNhQMYoUN+P14jnfWqPLOH5k/L1K/xCl0M6I4JUhDc7k0nxBegUpo7ZcjjvVtyHD9eEHfSubkrRodOx6Fo8jAxy73LsH1LDLLdP8ATBlHlGHNE88pC2avVCBJ0ucmc8jCgOcPmCyqmaF3zVcd6t+ZhNPTHxD+ld92Q2QhhjGsHU0YUlrTy3UfJgl/XgYJZRl+mJ03pOyZd89umajSUi089+IXEeQLPaBsdU2BuvrFbjzJ6YcrDDB5zk/MuxaLRqZVxU9krdxryx1aXPY13b+gNj26WuhUZk1Eb7uccYvzHh8yzd5p9vyDnu9DU6TgtyThsNjR8wWL6m3/AB7KlKfL06QNVrlUmBKSMk12C+IeAPiyR51sjS/uft36nTkvWtaq8+Xp4w9ltUt+6PE9w4DyZPas2GwWIyh7c5ez0v5E06NTELPnLUaZjaq1bUGrvtrS+hTd01p/gmZhQz6HgA8N9zurx4XejY12cYuz3p3MMrEZk3ddaj+japHYcgOI8GGD1NGfKStt6faXWtpVQodItWiylGkWDiyXhgOeetzubj2lZKQvZ4PBUsHH+XtfOdCMI01mwQzkZUTzVc8E6AumCy4YJUHBXX81bcrIqy2rZCukKDuauVLTkUiEVkVMpq1VlqHSpuozkQQJSUhOjRYjuTWtGSfMF5GW7c8zrjrTe+qdR3nQ5iafI0pjuUKXYd0Y/uho8pXdLuj2r79OtBY9Cp8UivXXHbSpRjD4Qa7jEd4t0Y8q6p6f2tBsyz6XSYIx3iC3vjv1nni4+UkrxeV6+jo6NbZfAyYupmU81bWZCiIvEnBCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAJzREBgt46K2nernxpynCWnDxE3JnvcQHryOB8qwUad6mafnNs3KyuSLDlslURxx1cT9BC3oi3IYqrBZr1roes2I15xVnrXaaUh7QNTtp7Ze8rQn6XFHB0zLAxIR7R1ecrMre1ssy5S1ktXJeFGd+imT3p3zrNo0CHMwyyLDbFYeBa8ZCwyu6L2ZcRc6boMsIjucSCO9u87cK+fhqnKg4vsd/J+pbOoy5UWu76mZQJmDMsD4MWHGYeTobg4fMri0tObNMrJRDFty5qtRH5yGGL3xg82CrPqA1aon/AIfesCoMHJk3DznzgpoKMuRVXimvUaKm+TPebvRaUFT1vkh3s02hzuP0vLP+MJ6f63fAND+Mf+YnFH147xoH1lvN1otKen+t3wDQ/jH/AJien+t3wDQ/jH/mJxR9eO9Di76y3m60WlPT/W74Bofxj/zE9P8AW74Bofxj/wAxOKPrx3ocXfWW83Wi0p6f63fAND+Mf+Ynp/rd8A0P4x/5icUfXjvQ4u+st5utFpT0/wBbvgGh/GP/ADFYnIutlwwvQD5ak0WFGO6+clz4bG9OPCP0IsI+ecd44v0yW82Leeqls2GWsq1Shw5hwy2Xh+HEPkHLyrDP5Udnfqz/AMnK5SxdB6Hax9G1IGv1uId6LOzg3hn9lp5fStgCjSAH+xS/8Jv2KW8LDVZy7b2+TDdCOqzfkaSr2uFR1D3KDp/ITRnZnhGqEeGWNl2dJHUe1Z7pbpRI6dSDojn+jq3M+FNz8QZc9x4kDPEBZtLycvKZ7xAhwc89xoGfMrypUxCcNHSjmx5+l97+RWdZZuZBWQREWka4REQBERAEREAREQBERAEREAREQBfJVapK0SnTE9Oxmy8rAYXxIjzgABUq9YkqBTo09UJmHKykFu8+LEOAAsR0n0kuXbVvCHuwpmi6UU6ODNTbhuOn3A8WMPTn5vGujgsFUxk7LZzs2aFCVZ9hnOxRpLUNd9XX6vV2TdBtOiOdAoUCMPz0UcDEA6hzJ6yOpej55rjbWtWlWRbshQ6LJw5CmSMJsGBAhDAa0DC5Ny+jUqUaMFThsR3bJJJbEQIVp4wVePJWnrPEqy2eZQDhyVTzCoVkRRkXhWir7lZIwVdFWWyFByuHmoOHNWRUtuRVRWKnnpth3KdWtsyRoEOJ36k2TJB8Zo4t7+8Bx8vhMHkKvLWGmNTfeGpeqd2RiYkSpV2MGvP6ge4geLl5ls9fLsq1XUxLjzR1GljZZ1XN6AiIuOaIREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEXFXBdVItWUdM1aoQJGC0ZzFfgnxDmVrGNrHX73mHyVh2/FmIZ8E1aoN73AZ+0Aef/AHwWxToVKqulq6XqRlhSnPWtnSbQr9yUy16fEnarOwpKXYMl0V2M9gHSVh2nWodU1Cr1RmoFNMpasKGGSszHYWxY8TPEjj7XHYuMoGhonKiyrXrVItz1IeE2DEOJeEexvT5VtOBLwpWCyFBhthQmDDWMGAB4lknoacXGPtSfPzLuLy0cE0tb6S4iItM1wiIgCIuCvKr1aiUR81RqSa1ONcP9Fa8MJb0kfYrRi5NRRMVnOyOdRaroW0FRo82JG4ZKbtaeJ3d2oQyIZP732rZsnPS9QgNjSseHMQXDIfCcHA+ULJUo1KXLVi86c4cpF9ERYTGEREAREQBERAERY1d2o1vWPKujVapQoDh7WA070R56g0cVeMJTebFXZaMXJ2ijJVhV/asUSwoQhR4hnapE4QadK+HFiHo4Dl5VYse2NXtpya9CWLQYtrW044jXHVG7ng/sdZ7GgntC7obO+wlY+h72VipNN3Xg878Sr1Ju93t3VDYeDR28+1ejwmRpztKvqXRznSpYPnq7jrTojsaXntEVWSuzVcRres1jxGlLZYSyLMt6DE6Wg9OeJ6ML0Uty2aVaFFlaRRZCBTabKsEODLS7A1jGjqC5bAaMDh4lE817ClShRioQVkdNJJWSsiCgelTIUTzWdhltQcOCuHmoHmkSpZPJMqrwojhxWRGNlXK25oU3HKi4KxBZdzUHKblE8lcoWzzRVIRWKs8o9m2VczTkTr898n5yPMEnp8Mj6ltVYjpHTPSjTS3JbG6RJse4drhvH5ysuXyHFTz685drOVWlnVJPtCIi1TCEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBEXH1iv0235Z0xUp6BJQWjJfGeGhSk27IlJvUjkEJABJOAOlakqmvsOpzLpKy6JOXPN5x35jCyAD+8eJ+ZfOdP791AAiXVcAoUi7j6WUk+Fjqc/wD/ANW4sLKOus1Fdu3dtNhUGtdR2+O4y67tYbXs4OhzVQbMzvuZKUHfYrj1YHLyrD2XVqPqQCyh0plpUp/KoVDjGc39lv8A08qza0dKLZstgMhTYbpn3U3MflIrj17xWX8lOko0vy43fS/T1uM+nDkK76X6Grrc0Do8lOCo3BNTF0VTOe+z7i5jT2M5edbNl5aFKQWwoEJkGE0YaxjQAPIriLXqVqlV3m7mKdSVTlMIiLCYwiIgCIiAIiIDjq1btMuKWdL1OQgT0FwwWxmBy1hOaI1G1Zt0/YVejUiJne9LppxiSz+zjnAW4EWxTr1KWqL1dG1bjLCrKGpPUacl9d5u04xkr+oUzRo7RwnJZhiQIvaMcsrmJTaNsCcGW1ss6w+WiDH+FbBqVKk6xKvlp6VhTcu8YdDjMDmnzrTtb2eRRahFq1kzUOnzJ8J1PnGCJLRP2eIOFuU3hKv5icX2PV8G0bEXQqcpWfkZgzXWwn//AHNJt/e3h9IVz18LD/rRIfHP2LAaNfFBp8+2k39Z8nbtQPgtmnyzXS0XxOxw+hbTlrItOcgQ48Ch0uNBiDea9kuwhw6wcKKlKjSftxlvVt9iJwpw5SfkcQ7XKwm//dEifE4n6l8kxtBWHABPp62L/YwIj/oasnbYVtMOW0GnNPZLN+xfXBtejy/5qlycP92A0fUsF8N0S3r0Md6PQ9/0NczO0nbQyJGRq9Sd0d4kyAfjEKx69F0VfhQ9PanHB9rEmyIbf+/KttQpOXgD8lAhw/3GAK8p0tCPJp372/lYnPpLZDezURltXLsh4jTFLtKXdzbCHfowHj4gedYy/Rus6VXDTL5pb4N7T9Ni9/mqbV4IiMmG9OGnP29S7BostLH1KMlKmkl0Jf0y8MVOm7xSSO4Oy7tLWhtB2XBjUNsKk1aTaIc9QnYbElXcuAHNp6CFuty8h7otSvWFdkvqLpxMOptzyLhEjSsL83OtHNrm8jkdHSvQTZU2p6JtK2YJiG1tNueR/JVOkPd4cJ4900cy09B8i9zg8ZTxcM6O3nR2KdSNaOdE3keSg4KZUTyXQMhAhW3K4VA8lYECFAhTPJQKRKFtw4qCunkobqyFWQKoeWVUoRw7FYoWXDiVBwwrj+ag5WIZbRCMIrJlLHnTQpcSlFkIA5QpeGweRoC+5RhN3ITG9QAUl8Zbu7nEethERQQEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQGv73ltQKrWWyNvR5Ck0gwwX1GKd+MD0hrVxVI2faQZts9ck/OXRPZ3i6diHvef3QVtVFtLE1IRzYau7bv2mdVpRVo6j5pCmylKl2wJOWhSsFowIcFgaB5l9KItZu+tmBu+0IiKAEREAREQBERAEREAREQBERAEREBx9bt+nXJIvk6nJwZ2WeMGHGaD5upTotFk7epcvTqfBEvJy7dyHDBJ3R5V9qK2dK2bfUTnO1r6giIqkBERAEREAWsrmkK/pHektqlp+4wKzInen5Fme9zkL3QcBz4c/OtmoQCCCMgrZw+InhqiqQMtKrKlLOid3dnnXihbQ2nEhc9GiBkVzRDnZInL5WOB4TD5eR6QtlryWsi+5/ZA1ll7vpwiusKtxWwK3Iw+LYJJ/ONb2cSPKOlerdCrkjctGkqrTZhk3ITkFseBGhnLXscAQR5CvpGGxEMTTVSB6GMozipx2M+wjCgrjlbPNbaLEHKCuHmoFNjKEDwyoZVxytrKisiBHQmOCqeaHkFYoWXDJVtyuu9sVbcOasQW3IqkIpKnnryREXxk4QREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREBxtxW/J3RRZulz8MRZWZhljh0jtHaFsDudus05albq2iF0TDnzFPLpqhzMV352ATkw+PUCCPKFiK1dq6Z+xazbuplBBZWrcmmRH7vDvsHPhNd2dHlXdyTi3QraOT9mXxOhg6ubLMex/E9eHKDlj2nN8SGpViUO56bEESTqcpDmWYOd3eaCWntByPIsiIXvjsFtyieSmQolSyrLblbdwOVcPJWz0rIirKOVM8FVwUScBXMZB44q27mrruStOVgQPNFVyKSh55oiL4ycIIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAL4q1SoFdpM5T5lodAmYToTweojC+1FKbTugnZ3No9zBv2JMadXNp3PxXOqNqVJ7YYeeJl4hcW47A5rvOF3UPJeaeyHVvUbtwVWmNO5LXDRzELRyc9uHfS0+delhX1HC1NNRhPpR6ZSz4qXSQPJRKkeSitphkDyVpyuq28LIthVkCqHkiHirIoyLuLVbPJXPclQPFXRBA8kQ8kVih55IiL4wcIIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIuAvC+aLYtPM3V51ks08GQ85fEPU1vMrWsXUG/NQgBatHZQKY7lUqmMveOtrOj51s08POos7Yul6l/Xcb+EwGIxss2hBs3QXBoySAOsr4Zm4KXJkiYqUnAI5iJMMafnK1LA0VqNaJiXVeFUqrjxMCWid5hjs6fqX3y+z5ZEAeFTHzB/Wjx3vJ+dZNHh48qbfcvVo9dR4H4yavUko/12GxG3dQnuDW1qnkno9FM+1ffAqErNjMCagxh1w4jXfQVrJ2gljuGPSOGO0PcPrXyRdnm0d4vlWT9Pi9D5Wbc3HnyozcM9knuXqZpcDcSl7NReZt9FpV+kt00Z+bfv2oQIY9rAnh30ef/AKKcKe1ft54320e4oDeYwYUR3lyPoU8XhLkVE++6+PqcetwZyjR2Qv3G50Won64VmjgCuWJVZQD20WVIjs+YL7qftGWXNuDJmdjUyJ0snIDmY8fBQ8JXtdRv3a/gcKrgcTQdqlNrwNnouEpF72/XmB0hWpGZzxAZHbnzE5XNNcHDLSCOsFasouLtJWNJxcdqKoiKpAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEVuPMQpWE6LGiMgwmjLnxHBrQO0lasuHXiViTz6TaEjEuarcWh0EEQIZ63O6gs1OjOq7QRno0KleShSjdmY6axXSW3JppEhHdfHlYsN562+F9q9TCvF+S0/1Lbc0hfEO7YVOu2SJdKsgwvAgD9UHl8y7rbIu2tUr+uUabalykOmXxDYTLT0LDYNQaOodDsDo4HoxyXvcmVqWiVCM05I9dUybisFRi60LI7jkYUD0q45W3dK7TNFkFA8VcVt3SroqWyir0lUHNWRjYIVk81ecMKyeasiCBRHdKK1yrPPJERfGTghERAEREAREQBERAEREAREQBERAEREAWCananQbGl4EnJwfTG4J07kpIs4kn9Z2OQWQ3ldUpZdtztXnHDvUuzIbni93Q0eMrWmk1qTVTmY973CzvlaqfhwIbxwloJ9q1o6OC3KNOKi61TYubpfR6nosi5JllSvm7Iraydm6TxY88LhvOMKzcETwmsicYMsP1Wt5ZC2c1oaAAMAdAVUWGrVnVd5f/O4+54bC0cJTVKjGyQREWE2wiIgCIiAYBGMcFx1Rtyl1ZpbOU+WmQeffIQK5FFZNrWiripKzVzAqjobZdRJcaLDl4h/SSz3QnDzFcNE0Ki00l1v3dWqSfcsfG76weTgVtZFsxxVeOrOfjr+Jz6uTcHX/MpJ+HoapZb2q9DdmTuuSq8NvKHPQMZ8vP519TNQdSqOMVOy5apsbzi0yYwT/dJK2YitxnO5cIvwt8LHErcGMnVdkWu5ms27RcpIxBDrNs1qku6S+XL2jyhc7TNfbGqZa308hysQ+4mmOhn5wstiQmRW4exrx1OGVwtRsegVcETlHk4+f14LUz8PLbBrufqjiVuBlJ/lVbd6Ocp9zUiqsDpOqScy08u9R2n61yQcHDIII6wtWT2g1lzYJhUoyMQ/pJOM+GQfIcLhzoZO0xxdRL2rch1MixBEaPoTR4eWybXevRs4tbgfjIflyUv67TdiLSzLc1Xor96Uu6TqsNvKFPS4GfLjPzr6/V3qfSW4nrOkKm0c4lPmS1x8hJTi1+ROL8bfGxxa3B7KNHbTb7tZt5Fp1u0HFp53azZtapxHAubC32rlqftF2ROODY9Ri09/S2bl3sx5cYUPCV1rzb92v4HHqYLEUtU4NeBsxFj9M1BtmsgGSrshMZ5BsdufMVzcKagxxmFGhxB1scCtaUJR5Ssari1tRdREVCoREQBERAEREAREQBERAEVuNMwpdpdFishgdL3ALF67qvaVtg+jq9Jw3j9GyJvvPkblZIwnN2irlowlLVFXMsRafmNoeDUopg2zbdUr0Q8GvEIw4fnK+eZhaq3sR36bk7NkjzhSv5WMR2nj9IWzxScfzGo97+W07OFyNjsW/wCXTduk2pXbopNsyrpiq1GXkYLRkmNEAPkHMrWc7r3Frsw+SsmgTVemOQmorTDl29pJ5jzKdC0IoUnG9FVqLM3LPk579UYhc0HsaOHnythychL0+A2DLQIcCE0YDIbQ0DzKb4elsTm9y9fge1wXA/ZLFz8EarhaWXJe8w2ZvqvxI0tneFJkD3uCOwnpH/eVsig2zS7Yk2ytLkoMlBHuYTcZ8Z6VyaLDUr1Kqs3q6FqR7/CZPw2Bjm0IJdvOFq3XFsa3YFDvSmuMtWKDPwo8KYh8HBu8MjPUtpLWG0POsZp++ntG/NVCYhS8CGOJc4uHJZsC5RxNNx6SMpRjLB1FPZZ/Q9a7JuFt2WdRKy3gJ+ThTPxmg/WuYKxHR6hR7Z0qtKlTIImJSmQIUQHmHBgysuIX0/mPjDIO5qDuOVccrb1cqW/dIetVxgqjlZGJlD0K28YKnxUH5yrIFs80QorEHngDkA9aqrMlE79JwIn60Np+ZXl8aZwGERFACIiAIiIAiIgCIiAIiIAiIgCIqOcGNLjyAyUBpbUuK7ULVGi2ew71Mpw9MKgBycfctPzedbWYwQ2hrQGtAwAOQC1XouwVutXhc8QZjTtRfLsJ5iHDOAFtVbuKea40VsivPaz7xwcwawmAi7a5a2ERFpHqD55yoytPDTNTEKXDuAMV4bnzr5fVNSfhKU/jN+1cXeunVEv+FLQ6xAiRhLkmH3uK5hGefIrFP5Ntj/0GZ+VRPtW3Tjh3H+ZJp9i+po1ZYpStThFrtbXyM/8AVNSfhKU/jN+1PVNSfhKU/jN+1YB/Jtsf+gzPyqJ9qfybbH/oMz8qifasmZhOvLcvUxZ+N6kfefoZ/wCqak/CUp/Gb9qvy1YkZz8xOQI37kQFa5/k22P/AEGZ+VRPtXyTuzTbRIfTZuo0qIPdQJgu+lMzCvZN7vqNJjVrdOL/AN30NuA55ItLjR69aEc0O/JktHKHONJb5ean6aaxW6MR6bTLihN91AcGuPk8E/MnFoy/LqJ9+r4jjk4/m0ZLu1/D0NyotLDXus0hwbXrIqMljm+CC4fOPrXNUzaMsyeLWzM1MUuIfczkBzceUZCrLB11rzb92v4Fo5QwsnZzs+3V8TZ6LgKXf9uVpoMlWpKYzyDIwz5lzkKPDjtzDiNeOtpytWUJR1SVjdjOE1eLuTREVDIEREATCIgKOaHDBAI6iuPnbbpVRBEzTpWODz34TT9S5FFZNrYyripamjCahovZdTcXRqBLNefdQQYZ87SFwMzs9UZrs0yrVikcc4l5skf4sraiLYjiq8dk2aVTAYWry6SfganGi1blf9j1ArULqDyHKbdNb8lh+Q1GnHY5d9ggraqK/HKvPZ+C9DQlkLJ0ttJeZqwWjqlC/N37Ad/aSgP/AAqTaNq3A9rddLj9GXyg8/tVtFE41LnjH3V6GB8Hcmv/AMRrLvWsEPGKvQYuOh0AjPmaq+iNYYXDv1vRu0scMfMtmIo4z/gjuMT4M5Nf6PM1oKnrBD4GXt2L+1l4+tPTfV/+hW58d/2rZaJxj/BHcU+6+Teq95rYV7V5gwaRbkT9rvzxn/Eomq6vxuAlLdgZ6d55x85Wy0TjC/bju+pC4LZNX6XvNYPk9Xp4YfXaLIA+8y+8R52qw/Te/ap/4jqFMsaebZOCGD6ltZFPGprkxS8EbUODuTYf+O5qqX2fadHfv1iu1isk82RpktafI37VlFH0ntKhEOlKFKtePdxG77vO7Ky1FSeJrT1OTOrSwGFofl00vAtwJaFKsDIMJkJg9yxoAVxEWsb2wIiKCQiLFr31Ho1hyRi1CY3pl3CFKQvCixT0AD61eEJVJKMFdmOpUhSi5zdkjnKxWZOg06NPT8wyWlYLS58R5wAF9myFovVdpLVmV1IuCQiy2n9vRc0qBMNw2djg+2APMDgSeXIKuhGyLeO05VJO6tR4Me2rBhPbElKJktjTwBzlw5hp6zxPQvSmgW/TbVo0pSaRJQafTpSGIUGWgNDWMaOQAXt8m5N4v/Nq8r4HzfLGWON/yKPI+P0PuIAAAUTyUnKJ5L0TPIsgVByuHkoFZCC27mouUieHWouVzEyh5K3E5hXDyCtv5qUC27miq7kisVZ5q2RPCpWdQ5oHIjSUF+fGwLm1rzQCpGpaUUPeOXwGPl3dm48gfNhbDXyCvHMqyj0NnFqxzZyXaERFgMYREQBERAEREAREQBERAERUJA5nCAqhAIweRREBpfR2IKHct52zE8CLK1B03CaemHE4gjyraq1fq5Q5+0rokdQKNAdMCA3vFTloY4xIP6/k+oLOraumm3dS4VQpkyyZl4gzwPhNPU4dBW/iY6S1eOx7ex8/qfcuDeUIYvBxpX9qOo5ZERaB64ImUQBERAEREAREQFHNDxhwDh1FcVULRolVaROUqTmQffILT9S5ZFZScdaZWUYyVpK5rirbPtk1Vxe2legon68pEdDx5iuBibOgkTvUa66tTiPat75vAfOFuVFtxxleKtnvx1/E0ZYDCzd8xJ9mr4GmfUTqrQP/AA27ZWqQxyh1CHgny4Ko69NWKHn0faMtU2N5xJOJnPkB+pbnRW41ncunF+FvhYpxLN/LqSj43+NzTMPaIj05+7XLQqtPI5uht3h84C5qnbRVkTxDYlQjSDz7mbgOZjyjIWynwmRRh7GvHU4ZXE1CzqFVWkTdIkpjP68BufPhNJhpbabXc/VDRYyHJqp98fRo+SnajWxVgPQlckY2eQbGbnzLnYE5AmWgwo0OID0tcCsBqWgFkVIk+k7ZVx91LRHM+tcFH2a6VCcXU2t1anHoEOOSAmZhZbJtd69GNJjY7acX3O3xRuFFpoaPXnSR/qrUCcwOTJqHvj6VU0vWWlH8lU6PVWD30bjj/hUcWg+RVXjdfIcbqR5dGS7rP4M3Ii0z6rtXKfwmbTk50D3UvFHHzOVPXcvyV4TOnk0T1wy7H0FTxOo+S4v/AHIfxCkuVGS74v0NzotM+vbdg8I6eVDdHPi77qp/KBqcD/arEqsPHPdz91OI1+ZLevUfxLDc7e5+hudFptm0jLN/P2tWYXXiFn7FdG0xQmj8rRa1D6/9HBx/iUcRxHUJ/iOE6/xNvotQt2nbXz4chV4Y63Sw+8q/ynbT/o1V+S/5k4lieoyf4jhP3EbdRai/lO2n/Rqr8l/zIdp208cJWquPUJUcf8SjiWJ6jH8Rwn7iNuotQfym7ddwZSay89Qlh95QdtKU535i3K1F6swQM/OVPEsR1CP4jhP3EbiRaYO0RNRuErZNXi/vAj/hT17bsmf9m09qBzy3y77qniNfnVvFepH8Sw3NJvwfobnRaZGo+p05/s9h95zyMZ5H0kIKrrNUM7lIpNPB9+igkfOU4nNcqUV/uQ4/B8mEn/tZuZCcDitNi1tXamD6KuenU5p6JWFvEf4QqO0OuKqY9Nr9qcfPtmwRuD6U4vTXKqrwu/kONVpcijLxsvmbam6vIyLS6Ym4MBo5mJEAWLVbWWzKLveia/Klw9xBd3x3mblYvKbNNuB29UJ2pVN3T36YIB8yyuj6P2dQyDLUGVLx7uK3vh+dM3Cx2ycu5JfEZ+NnsjGPe2/hb4mL29fdz6+X9LWPpfAgsnJphc6o1I96ENg9s4A54AdhPYu8uzz3Pm0tK6hCuS7pl183hwd6Knm5gQHf+2w5zjrPzLpPf9IqGn1Wpuo1luFNuCgObFLYLcMjQQfCa5o5jGfIvUvQnVmQ1u0qt+8KfhrKhLtMaF71GHCIzyOBC9hkvi8qWdRjZ8/SfP8ALbxcK+ZXldc1tm4zwMbDa1jQGtaMAAYACieakeaiQu6jzRE8lBym7moOUshkTyUDyU3KDjgK6KlsqjlVFZGNkScNVtym/kFB3JWRBByIUViLnkts7b0hR7joz8h9Nq8eCWnmPC/6FbaWD163o2i+1VqPZ9Uh+h4VanX1alxMYZFhvJeAD1gOI8bSs4XyzKVNwxU+3WczFxzaz7QiIuYaYREQBERAEREAREQBERAFrbX6WnfUJ6YyESIyYpc1CnS2G4jea0+EDjnwOfItkqxPyMGpyUeUmGB8COww3tPSCMFZqU9HUjPoL05Zk1I+W3a1AuKhSFTlniJAmoLYrXDtC5FaZ0nqsTT255/TyrRC1jHumKTMP4CLCcSdzxjq8a3MrV6WinZbHrXcWqwzJWWzmIvY2KxzHtD2OGC1wyCFq2t6CyXppEqds1abtediO3niUOYLj+4eC2oirTrTpO8GTRr1KEs+lKzNReoPU6D4MO9pKIwcnRJEbx8fFPULqe84fesi1vW2R4/Stuos3Gp9WPur0Ov/ABzKP7z3mpfWyv6OPy2oT4R/9mSaPpKtnRe5o5/0jUSqu/s4bWrbyJxqotlty9DFLLGPltrPeah9Y6tf+oNa/wAKqNJ71p4JkNQpl5HJk5LNeD41t1E43V57bl6FY5Wx0XdVXvNMvgav0N3CFRq/Cb0sf3p7vIcfSrZ1duWiO3a9YdRgtHtoske+tHzfWt1IQDzGVPGIS5dNPuuvgdajwnyjS2zv3mpJLaCs+YeIczMzNMinmyelnQ8eXiFllLvigVpoMlWJKYzyDI7c+bKyCfoNMqsMsnadKzbTzEaC1/0hYXV9ArHq7nPNGbJxD7uUiOh/MDhL4aW1OO5+h3qHDOovzqafcZe17XjLXBw6wVVaz/k9imOL6FdlZpTh7Vvfu+MHkKhHtLVWh/7BcdNrsMcmTsDvTj5Qmgpy5FReN16o71DhdgamqonHzNnotUOvbUmg/wDitkMnmDm+nzAcT5OKuwNoKkSx3K1R6xRIg59/lHOaPKPsTilX9Kv3NM7lHLWT6/Iqrx1G0kWHUrWCz6yQIFdlWuPuYzu9n/FhZRK1OTnmB0tNQZhp5GFEDh8xWtKnOHKi0daFanU1wkn3M+lERYzMEREAREQBERAMKhYDzAVUQEDBYebB5lEykA84TD42hXUU3IsiwZCWPOXhH+4FT0vlf6NB/hj7F9CJdkWXQfP6Xyv9Gg/wx9iel8r/AEeF/DH2L6ES7GaugsiSlxygwx4mBSEvDbyY0eIK4iXZNkUENo5NCrhEUEhERAEREAREzhAcTdtQlqVbFVmpvdMvDloheHciN08PLyXaDuY1GnaVsuU+LNsdDhztQmpmXa7ohl+BjsOCV0wfQqptK6m07S+1HOdJGK2LWqlC4sl4LT4Qzyz9fBetFmWlT7DtKk29SoIgU+my0OVgsA9y1oGT2nGSvc5Gw0qNJ1J/qPmnCHGQr1lShrzficwqOVVEnJXo0eSIuUXclJyg5WIZFyg7oUnKLlYqQcccFE8lI8CouVkY2UxwKtnkrreStOVkQQPJEPJFYqzrx3QzZwmNUrCl73tmGW3raeZqXMMeFMQBxfDPX1jxHrXU3TS+pfUC1papQh3uZb+SmoB5woo4OBXrY5oe0tcA5pGCDyK8rdrTRuNsna0NvKhSr2ab3VGxOwYYzDkponJ4e5BJJHlC8plLCcZp50eUv6sZcVQ00LrajkEVuXmIc3AhxoL2xIURocx7TkOB5EK4vCnnAiIoAREQBERAEREAREQBERAYVqfpxBv6lwnQYvoKsyTu+yU6zg6G/ngnqOAuAsHVuJ6OFtXjDFIuOD4AfE8GFNDoc13LJW1Fjl66f0S/6eJWryjYpZxhR2+DEhnra7mPEtynVi46KrrXM+dfTsNiFROOZU2fAyMHIyOSLTLbY1I04wyg1GFdVHZ7SUqB3Y7G9Qd0r6oWv5peIdyWnWKPGHBz2QTFheMOCl4WUtdJqS7Nu7aToG9cHf8AroNuIsSsnVK39QI8xBo8zEixoDQ+IyJCcwgE46Vlq1ZwlTebNWZglGUHaSsERFQqEREAREQBERAEREAVuLAhR2lsSGyI082vaCD5CriKQYpWdK7Rr+8Zy35F7zzfDhCG7ztwsTm9mu1HPMSnxKhSYvQ6VmnDC2ui2IYmtDVGbM8K9WnyZNGoTo9ddIb/AKlv6dwPaw6jCEYefmvndJav0Y8HUatwx05MJxW5kWTjUny4p96XysdajlzKFHk1WaXOo1+0rhUrAjRgObpKYDvtUhrbPwv9psSvQfFC3vqW5lTA6k01J7aS8GzrQ4WZRirNp+CNN+v9IwziNbNwwesmRcQFIbQ9tN/PSlWl/wC0kXLceFQsaebQfIo0lD9t+99Dajwwxq2xTNQs2ibMd7abmYX9pKvH1L6oOvdkxuVYDP34Tx9S2ZFpsnH/ADspAi/vwmu+kL4o9pUKZz32i06Jn9aUhn6lOdhn+l716GaPDLE89NeZhkHWiy42MV+VB6nZH1L74Op9pzHtLgkPLGA+lcrG0ztKYz3y2qU4np9CMH1L4I+jFkTGd+25EZ/Uh7v0J/8AlfW8jZjw0n+qki9Cvm3Y/tK5T3f/ANLPtX1w7hpUb83U5J/7sww/WsfjbP8AYcb/AMghM/ciPH1r44uzfYcQcKXEZ+5MPH1pm4XrS3L1M64aR56PmZqyflog8GZgu8UQFXWxWO9q4HxFa7dsx2VvZZCnoR62TTgonZtoDPzFWrUv/Zzrk0eH5qj936maPDOhz0nv+hsjITK1uNnuFB/2e8bigf8A9bj9akdEaxC/MaiV5vUIjt/6So0VHmqeTNmPDHBvbBo2NlMrW3rR3nBP5HUacI6o0s1yg7TnUmB+YvqWif20mE0FN7Kq8/Q2I8LsnvanuNmItXmz9WoHtLnpEx+9LEfUomk6xQPazlBmAOtpap4suapHe/Qzx4U5Nf6nuNpItRVKqas0GRjzs9LUH0LAYXxIjopaAAuR0jltdNdqRMVSz7PkpqmwIhgmbjRO9w3uHMNLiM+RZ6eTq1b8tp9zNqHCLATV4ye42YmcKMrstbUFXc1jqdb9KDvdxY4O75srLqF3OXVe53t9WWqMvSpV35yXosFxfjp8LwQtyGRcRLlNIxz4RYSK9lNmsrmv+gWhAdEqdTgQCB+aDt6IfE0cVxVjWZqdtVVEU6yaVMW5aT3bkzcU+wwwWdPe+s46B513S0w7nDpDp7NwZ+oU6Yu+pwzvmPWonfWOd1mH7U+XK7PSUjLU2VhS0nLwpWWhNDIcGCwMYxo5AAcAF3MLkejRalN5z8jzWNy/XxCcKSzV57zVezts3Wts3WcKNb8ExpuOREnalGAMaZiY5k9A6gtsKrlEnAXfR5Vu5E81BTCieasCJ5qDuakVF3NSQyLlbJyVM81B/BWKkSVQoisjEymcNVo8VcfyUFdAtnkiORSDNcgDiR5V1u2+tQbMs/Z0r8rdcrDrHpqBJSNNY8d8izLgSwt6RukZz2LzLfrLrRqjSoM7WdVK3Clppu8ZeTjOhADq8EgLDa3pk6rQXx41aqM7VG+HCmJuOX4f18V7LCcAMv4zDrEwpJRauryV2rXVkr7e2xo1cuYGjU0bnrTtseoyKzrk1D0gt+Q9OqG+q22IYIbBdvR5Vh4gHxDoW47J1Tty/wCEDS6gwzGMulYp3Irf7p5+Ra80u1zw+FbV6YkKvD/Jw5uJwhTA5Ak9B+lZLeWgtuXVFNQkA6h1fO/DnpDwfC6yBwPkXwfH4d0MROhjqbp1E3fV8Uys3TqO81a+xrYzZiLRLK5qdpU/FWlBeVEZzmJfPf2t6z0nyjyrN7N1xtS83NgwZ9sjPHgZSd/Jvz1DPArmTwtSKz4+1HpWv/4a8qEks6Otdhn6IDkZHEItI1wiIgCIiAIiIAiIgCIiAKhAIIIyD0KqIC3CloMFznQ4TIbne2LWgE+NXERSAiIoAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAXF3HctNtOlRqjVJqHKysMZLnni49QHSexYtfmr1Ls6Zh0yWhxKzcEciHApkkN+I554NBxyyfKtv7P2wZceqdYk711wc6FIMIjSFpw3YDekGN1D9nmeldnBZNqYpqUtUf62G/QwsqvtS1I1povoHdu2pcECpVJkxbWkspG3i54LYtS3ehg6Rnp5DtK9RLMsyjafWzT7foEhBptJkYQhQJeC0BrQPpJ5k9K5Kl0mTodNl6fT5aFJyUswQ4MCC0NYxoGAAByC+he4o0YUIKFNWSO5GMYRzYrUUcou5KRUCVsFiJVFVyirGN9BRyg7mpHiVR3JCCKiqk4CirAionmpHmoHirLWVZE81F3NSPBQcc8lJBEqJOFVUcrmIiRkKB5K6OStOUoETyRUKKxW54q6d/7l0n+xCyNY5p3/uXSf7ELI1+6Mif3Xhf9OH/AFR8ixn9pq/5n8TiLhtanXNKmDPQA/HtYg4PYesFcZbt6XjpDEbCil9y20zh3s/noLew/wDY8SypUIBGCMhea4T8Cck8Kab41DNqc01t8en49DRtYPKdbB+xyodD+XQbJsTVW3tQpcOpk60TIHhykU7sVvk6fIrN4aOWpexfEn6YyHNu/nct+Tig9eRz8q0hXtO5KoxxOyD30mpsO82ZljunPaFylA1ou3TzdlbpknV6lg4bUJf860ftdfl86/H/AAl+zPLfBuUq+HTqUl+qPN3ravHV2s9jhcbQxOuhLNl1Xqfg9jOcdpzqPp0d61LibW6czi2n1EZIHVz+ghfdI7RQo0wySvO3p23prk6NuF8Fx6werzrYNm6j2/fkqI1IqEKM8e3gOO7EZ42niucqNKk6xLugT0rCm4LubIzA4fOvlM693m4mnr6dj9PI6Eqt3atHXuZx9u3pQ7slxGpNUlp5p9zDeN4eNvNc0tUXFs4WzUopmqO6ZtufBy2NIRCG57Wn6sLhWW/q7Ybw6n1WVu2SZ/N5sYeR4+B+dY9BRqflVLdktXnsK6OnPkS3m8UWlpfaONHmBLXZbFRoUYcHRAwvh+Q4WfW3qnat2NHpbW5WLEP6J79x48hwsVTC1qavKOrp2reikqFSCu1qMrRUa4PALSHA9IOVVapgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCLgbpvmhWXKGYrFSgSbehjnZe7xNHErGrSmtTtoSbfT9LbSmYciXbsS4KkzvcCGOtueH0+JbuHwdbEv+XHV08xsUsPUq8lajKLqvOjWXIOm6xPQpOEPatcfCeeoDmVj1jWxqttTTfoXT+kRbbtbe3I9y1FpYHDp731+TPjC7R6H9zVty259lx6pVOJqDcZw5svHyJOAefBvN58fDsXcqm0yUo0lBk5GWhScpBaGQ4MFgaxgHQAF6vC5JpUbSq+0/I7FHBwp65a2aB2btiaxdnqXhVFkA3DeD25ma9PgOiFx597HuB8/WV2FUjyUV3lq1G+yJOVRVKi7krFSii7mpKBKskVbKEKDlIlRcpKFFFxVScKPNSCjlE8lJygeSsCigpqDirFSLulW3cMqageJUlWRUTzUjzQqxjIudgYVtyk45KieSsgRJwEVHckUlGeKunf+5dJ/sQsjWOad/7l0n+xCyNfujIn914X/Th/1R8jxn9pq/5n8QiIu0aYUXsbEaWuaHNPAghSRGr6mDD6xpvJzUyJ2lxolGqLTkR5U7uT2j7FytE1jvTT0NgXHJeqOmNOBPQOEZg7evyjyrm1RzQ4EEAg9BXyzhH9nGQ+EKlN09FUf6o6t62brPtO7hssYiglCp7ceh7fB7TZFlas2zfkJvpbUYYmceFKxjuRW+Q8/IsxXV2vac0qsP7/AAWup06DlszKndcD29au0e+9QNNRuxXNuujs9xFP5Zg7Dz+lflrhH9k+WsjZ1XDR01Nc8dvitvy7T0tDG4XFaoSzZdEvk9nwOy03Iy9QhGFMwIcxDPAtitDh86wO4dA7KuEOc6ktkZg8piScYTwfJw+ZW7I16ta892AZr0qqPJ0pO+Ac9h5FbFY9sRgcxwc08i05BXxqSxGEnmu8XuN+9Wi+dGkToVdVskutW+52Cwe1gT3hDxZHD5lcZdOr1oQ9ypW7J3PAYOMxJu3YhHiH3VuxFk45KX5sVLvWverGTjDly0maXk9pqmS0UQa9QqrRIoOHGJB3mj61mlD1ksy4d0SlflO+O/Rxnd7d5nYWWTlOlagwsmZaFMNPRFYHfSsQrWilk14O9FW/Kh593BBhuHlaQmdhZ7YuPc7/AB9RnUJbU15mYy87LzbQ6BHhxmnkYbw76FeWlpvZkp8vEdEodx1ejH3MNkbfYPPx+dWvW31Tt8/6nviHPQxyhz0POeziCmgoy5FVeKa9RoqcuTPebuRaV9V2sVAbidtSn1xjecWTiYcfID9Sts2ialTXBtcsarSJ6XQ27w+cBOJVXyLS7mhxab5Nn4o3ci1JJbTtmRyBNunqc7pExKuwPNlZPTdZ7Jqu76HuSR3j7mJE3D/iwsUsLXhyoPcY3Qqx2xZmiLjJS56RPAGXqcpGB6WRmn6197JiFFGWRGPH7LgVruLW1GJprai4iIqkBERAEREAREQBERAEREAREQBERAEREARFajTUGWaTFjMhAdL3AKQXUWN1DUi1qXE73N1+nwH/AKro7cr5fXcsz+s1N/jhZVRqPWovcZFTm+ZmXLjqlclKo7S6eqMrKAc++xWt+tYTZ9Ir+1ZrK3TuyrlgUajS8mZ2fqsA77nMBaCG45nLhwyF3FsLuW+kNtsEa5fTS96hzdHqk25jM9jGEDz5Xbw2SJ1YKdSVr83OdGlgHNKU3Y6b1/X+1qXEEtTo0W4Kg7gyVpkMxST4xwWV2XoZtBbQDYUSn0SHpvbkXj6YVTIjxGnpDeLvMB416M2Ds6aa6YPD7Zsyk0qMMfloUs0v+MclbF5Dgu7QyXh6OtrOfadCnhKVPXa77TqBox3NTTuwZhtXvGPM6h3ESHmPVT/o8J37EMc/72fIu2dLpMlRJGFJ0+UgyUpCG6yDAYGMaOwBfWqLrpJKyNsoVRVcok4UkAlRPJFRxU2KkVRyqonmpBQnCiqlUVzGyJ4KLipE5KgeaEEXc1RSPJQJwrIFCcqLlVUcpBE8lE8AquUSrFCKieGVI8lFWRWWwgou5qR5qI4lSUKHkoOPFXHcArR5qyBEojkUlWeKunf+5dJ/sQsjWOad/wC5dJ/sQsjX7oyJ/deF/wBOH/VHyLGf2mr/AJn8QiIu0aYREQBERAEIyiIDga7ZNIuFp9FSjO+9EWH4LwfGFxdOpt6WNED7auKJMQG/zOfO8wjq45+pZki8XlrgdkTLybxuHWc/1LU962+NzqYbKeKwqzYSvHoetf13Fim7SlVo0RsK67XjQAODpmRO809uDw+dbDtvXCy7p3WytagwIx/QTf5J/mP1LAXw2xGlrmhzT0EZXA1Ww6HWQfRFPhB5/SQxuu84XwrK32H0ZtzyZibdkl816I7lPLdGeqtTt2xfyfqdk5eagzbA+DFZFaeljgQrq6nQ9OJujv75Q7iqNMcDkNbELm/SuZkry1UtsBrKhJV6A33M00B58vD6V8jyj9lPCbAXcaOkX+F38lr8jpwxeDq8iql36vp5nZhF1+ltpC4qWQK3ZkUNHOJKvJH0H6VkFN2pLOmcNnmVClxOkR5feaPK0n6F86xeQsp4GWbiKEovtTN5UpTV4Wkuxp/A3CqOaHjDgHDqIysOpesVl1jAlrjkS4+5fF3D5nYWSylakJ5odLzsvHB5GHEBXGlTnDlRaKOE47UWpy2qTUARM0yUj5578Fp+pY9UdGrKqgPoi3JIk9LIe4fmWZghw4HPiRI1akOTJrxCnOOxmp53ZksiYcXS8rNSDj0y808Y85XGu2ZJSBn0Bddbkx0ARQ4D6FupFsLG4hfrfjr+JlWJqr9RpMaEXTJZ9A6i1NmOQiNz/wASq3TrVan/AOy37CmMchMQs/UVutFbjtV8qz8F6FuMz57PwRpRtI1vkz4Faok6P/cYAf8A4K4JzXCB7aSoMxjqe0Z+hbnRRxvppx3Eafpitxpj1Ra0wvbWzRo2f1Y/L/Enqo1o/qnSP4/+dbnROMx/ajufqNMuojTHqo1o/qnSP4/+dPVRrR/VOkfx/wDOtzonGY/tR8/UaZdRGmPVRrR/VOkfx/8AOnqo1o/qnSP4/wDnW50TjMf2o+fqNMuojTHqo1o/qnSP4/8AnT1Ua0f1TpH8f/OtzonGY/tR8/UaZdRGmPVRrR/VOkfx/wDOnqo1o/qnSP4/+dbnROMx/aj5+o0y6iNMeqjWj+qdI/j/AOdPVRrR/VOkfx/863OicZj+1Hz9Rpl1EaY9U2tD+AtWjsJ90Y/L/GovfrhUhuhlCpYPut4OI+Zy3SqEhoyTgdZTjSWynHd9Rp1zQRpM6XamVs/62v4yrTzZIwyB9AVyDszSc29r6zdFZqp5lhi7jT9JWwrl1Mti0YbnVSsysu4fog/eefE0cVqG4doir3S+JI2RR4rWO8H0ynW7ob2gch5V18BhsqZTqqjgqbbfVj6Iy6Wqo5zajHp1JbzF9ctPLOtCDRKJQJMGuTM210TeiuiP71gg72TwySPMuRZp3boaM0iWzjj4Ks2zZbqdOxarVZp9UrUfi+ZinO72NysqX7Y+z/gO8iZPk8sQjUq1GnaSUs1Lmu769eu3YeOyplWVacYYebtG+u7V2/l0GRbF2p9pbOW1DMz1yP8ASSg1SmOkIM2IZ7zCiOexwLz0N8E5PQvYuk1iRr9OgT9Om4M9JR2h8KPAeHse08iCF4i1ajSdblHy07AZHhOGMOHEeI9CyDRbaC1H2T6iH0Gai3PZbnZmKDOPJ72OuGeJae0eZeC4ZcA8Zg69XKOAjn0pNtxirOHgtqXZs6D0uSct0a0I4es7TWq72Px6T2lRad2etqmxNo+gMnLbqLYVThtHoukTRDZmXd0gt6R1OHBbgyvip64oqEqqiUQCi5SUTzVirKKJOVVxUUIB5KCkVFSQUPNRcqniolWMZRRKkThRJQEScqJCqeaoVYEVE8VU8lRWQInmouUioHmiKEXBUVXdCiSropJkXKI5qSiTgKSpFxyVBykouKuCDuaIilFDxW07/wBy6T/YhZGsc07/ANy6T/YhZGv3PkT+68L/AKcP+qPkeM/tNX/M/iERF2jTCIiAIiIAiIgCIiAIiIAiIgBAPMZXzTFMlJoERpaFFB/XYCvpRUnThUVppNdpZScdaZjc7p3b09kxKZBa49MPwT8y4qJpHSWHelJmdkz0d6jngs5RedxPBnIuM/PwkH/tSe9G/Tyji6XIqveYTBseuU071Ou+qS5HIOiFw+lchBndTaYAJa72zTR0TUIH6ismReWxP2a8F8TysKl3N+puRy3jVtkn3pehwsLUbVmR9sKRPgfs7pP0L6Wa4ajSgxMWrJzB64UT7CuRRear/Y5waq64Z8e5r/8Ak2I5dr/qpxfg/U+aHtH3NA4TVjxj1mHEd9hV8bUMzD4RrJqDestif5VLGVTdHUuLU+xHI0uRXmtz9DKsu9NFb2XGbVMoPz1qVWH14wfqV9m1XQg3MWg1iH14htP1r4yxp6AqGDDPNjT5FoT+w3J75OLl7v8A7F1lynz0f+T9Dk4e1Zajsd8p9Xg9eZcHH+JfTD2p7HdjfNThde9J8v8AEuBMrBPOEw+NoUHU+Vdzl4R8cMfYtSf2F4d8nGv3f/YssuUOei/e+hlMPaesF+Mz05D/AH5N/wBWV9MPaT0+i/8AnTmHqfKxR/wrCnUiReMOk5c+OE37Fafb1Lf7anSp8cFv2LUl9hS/Tjf+P1LfxrDc9J716GxIW0DYMXlcMBvDPhsePqX0jXOxCAfVLJcetx+xasfaVFie2pcqf/1BWTY9AJyaTLfEWnL7C8R+nGR3P0L/AMZwnPCW9G2Xa52I1pJuWSOOpxP1L54m0BYMIcbigO/dY8/UtXCyKC05FKls/uK8y0qKzlS5X+EEj9heI/VjI7n6D+M4TqS3oz6NtKafQf8Azl8Q9UOViH/hXwzG1NY8MHvTqlMnqhymPpIWKst+mQvaU+Vb4oLfsX0Mp0rD9pLQW/uwwPqW/T+wqH/kxv8Ax+qKPLeHWyk/eXoffM7VdKcP9AtyrTZ6N5oZnzZXHRto+5p3hTbJitzydMRD9gV9sJjeTGjxBTAwu5h/sQyVD8/ESl3K3zZill2K5FFeLb9Dho+puqtYBEGWplGYeTnYc4fSuGnbeu65HZrt4TkVh4mDLHcb4uCzJF7bAfZXwYwLUnRc3/ifpY055cxcuRaPcvW5idK0xodNiCK+A6dj8++TLi8rKIMCHLsDITGw2Dk1owFcRfS8FkzBZNho8HRjBdiSOPWxFbEO9Wbl3sIiLpGuEIzzREBjsWgVCg16BcloVSPblxyzhEhTUq8sDnD9YBd5dlruj0tcE/K2Xq7Dh29cZxCl6z7WVmzy8I8mOPXyPYuni4uv23I3JJmXnYIeObXjg5h6wV8i4U/Z9hMs52KwNqVf/jLvXM+1eKZ6rJmXauEtSr+1DzX9dB7iwJiFNQIcaDEbFhRGhzHsOWuB5EFSJyvIjZ32yr12XJuVodzvmLt05MQNa9x35mRaT7knmB+qeHVhep2m+p1tat2rKXFatVg1WlzLQ5sSE7wmHpa9vNrh0gr8t5Qydisl4iWFxkHCa5n8V0rtR9JoV6eJpqrSldMycuVFU81RaBmKOUVUnKoeSkgoTlQKkoE5VirYUTzUjwUEKFHc1RDzVDwUoFCoOKkokYKsCLuSiVMq25NpBRRJyqnkoqxUo49Cg5SPEqjuSuUkRJwoHiqnmqYyFZFSKgpO6VE8lJBEnKKh4IpSKnivp3/uXSf7ELI1jmnf+5dJ/sQsjX7nyJ/deF/04f8AVHyPGf2mr/mfxCIi7RphERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREBCNAhzEJ0OKxsSG4Yc1wyCFa0x1GvHZcu03PY8w+YpMQj0xoMVxMGMzPEgdBHQRxC+hUIyMFeYy/wdwPCLDOhi4+0uTJbYvs7OlbGdLA4+tgKmfSernXMz1h2etoO2No2wpe5Ldj7rxiHOSEQ4jSsXHFrh1dR5FbPJXiVprqhcWy3qOy9bXa6Yo0wQysUjJ3I0PPFwHQRxIPQvYTSfVOg6zWJTLrtybbNU2ehhwAPhQn+6Y4dDgeBC/GmWsjYrIWMlg8Uta2PmkuZr+tWw+tYTF0sbRVak9XwfQZeqFVUScrho3ChUSpFRUmJkTxVFU81FxwgBPFQPNSUSOKsCiieaqThRVkCJOSqEKTlFykqyB5KKk5RI4KSCJUTzVScKKsY3tKEKLuAwpE4UHnJUogieSieSkeAUHFWIInkiHkisVPFfTv/AHLpP9iFkaxzTv8A3LpP9iFka/c2RP7rwv8Apw/6o+R4z+01f8z+IREXaNMIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAjEhtiscx4DmuGCD0hbB2I9bYmzjra21anNPh2LdcUNh77vycrNHg13Zng0nqx1LAFj170A12iRGwSWTkAiPLxBza9vEL59w24PRy9kyWZH+dTvKHzj4rzsd7I2PeCxKzn7EtT9fA9zN4OAIIIPEEIuvWw3rw3XbQqlzc3FzcFJ/1bU4Tj4QiMAAf4nDB867CHkvxnsPrDdihKiThVUTzQoUKieakRlQPJWRKKqBOVUlUUkESqE4VTzUSeCAoTlQKkTwUVYoRdzUSVJxUDzVkCLlRVcokqTEUzkqLuZUsZUCclSgRJUXKp5qjuhXRDIHkiORSVPFjTv/cuk/2IWRrftF7lttCUOly8jBr2m74UBu41z5+fyR2/6Ivt9jL2ifhzTT5fP/hV+msmfaJkHC4GhQqTlnRhFP2XtSSZ4bE8H8dVrTnFKzbe3tOuqLsV7GXtE/Dmmny+f/Cp7GXtE/Dmmny+f/CrpfiXwe68vdZr/dzH9Vbzrqi7Fexl7RPw5pp8vn/wqexl7RPw5pp8vn/wqfiXwe68vdY+7mP6q3nXVF2K9jL2ifhzTT5fP/hU9jL2ifhzTT5fP/hU/Evg915e6x93Mf1VvOuqLsV7GXtE/Dmmny+f/Cp7GXtE/Dmmny+f/Cp+JfB7ry91j7uY/qreddUXYr2MvaJ+HNNPl8/+FT2MvaJ+HNNPl8/+FT8S+D3Xl7rH3cx/VW866ouxXsZe0T8OaafL5/8ACp7GXtE/Dmmny+f/AAqfiXwe68vdY+7mP6q3nXVF2K9jL2ifhzTT5fP/AIVPYy9on4c00+Xz/wCFT8S+D3Xl7rH3cx/VW866ouxXsZe0T8OaafL5/wDCp7GXtE/Dmmny+f8AwqfiXwe68vdY+7mP6q3nXVF2K9jL2ifhzTT5fP8A4VPYy9on4c00+Xz/AOFT8S+D3Xl7rH3cx/VW866ouxXsZe0T8OaafL5/8KnsZe0T8OaafL5/8Kn4l8HuvL3WPu5j+qt511RdivYy9on4c00+Xz/4VPYy9on4c00+Xz/4VPxL4PdeXusfdzH9Vbzrqi7Fexl7RPw5pp8vn/wqexl7RPw5pp8vn/wqfiXwe68vdY+7mP6q3nXVF2K9jL2ifhzTT5fP/hU9jL2ifhzTT5fP/hU/Evg915e6x93Mf1VvOuqLsV7GXtE/Dmmny+f/AAqexl7RPw5pp8vn/wAKn4l8HuvL3WPu5j+qt511RdivYy9on4c00+Xz/wCFT2MvaJ+HNNPl8/8AhU/Evg915e6x93Mf1VvOuqLsV7GXtE/Dmmny+f8Awqexl7RPw5pp8vn/AMKn4l8HuvL3WPu5j+qt511RdivYy9on4c00+Xz/AOFT2MvaJ+HNNPl8/wDhU/Evg915e6x93Mf1VvOuqLsV7GXtE/Dmmny+f/Cp7GXtE/Dmmny+f/Cp+JfB7ry91j7uY/qreddUXYr2MvaJ+HNNPl8/+FT2MvaJ+HNNPl8/+FT8S+D3Xl7rH3cx/VW866ouxXsZe0T8OaafL5/8KnsZe0T8OaafL5/8Kn4l8HuvL3WPu5j+qt511RdivYy9on4c00+Xz/4VPYy9on4c00+Xz/4VPxL4PdeXusfdzH9Vbzrqi7Fexl7RPw5pp8vn/wAKnsZe0T8OaafL5/8ACp+JfB7ry91j7uY/qreddUXYr2MvaJ+HNNPl8/8AhU9jL2ifhzTT5fP/AIVPxL4PdeXusfdzH9Vbzrqi7Fexl7RPw5pp8vn/AMKnsZe0T8OaafL5/wDCp+JfB7ry91j7uY/qreddUXYr2MvaJ+HNNPl8/wDhU9jL2ifhzTT5fP8A4VPxL4PdeXusfdzH9Vbzrqh4rsV7GXtE/Dmmny+f/Cp7GXtE/Dmmny+f/Cp+JfB7ry91j7uY/qreat2LNVGaC7TLKbOxTBtm8miVcScMhTOfyZP9448Tl64uXmZXO5WbQdcMm99w6cy8eUjtmIMaDUJ8OY5pyMf6IvSywbKuin2XRpW5pinRa9AlYcOciSMaI+C+IBgua5zGkg8+IC/M/CGtk+vlOtXya3opvOV1aze1W79nYfQsFTrww0IYhe2tXoXlE81zfqVm/fIPxj9ij6k5v3yB8Y/YvO3RuZkug4QlUXNm0pw/pIHxj9iepKc98gfGP2K2cic19BwJRc56kJz32B8Z32Khs+dP6WB8Z32JnLpIzZdBwROVA81z/qOnffYHxnfYqGzZ0/pYHxnfYpzo9IzZdBwBUVkBsyeP6WX+M77FQ2XPe+y/xnfYpzo9JXMl0GPFQWReome99l/jO+6qGyJ4/pZf4zvuq2fHpKOEnzGOOKgeayT1DT/v0v8AGd91UNiz5/TS3xnfdTPj0ldHLoMbPAKKyQ2JUPfpb4zvuqnqDqHv0t8Z33VbPj0k6OfQY0eageJWT+oKoe/S3x3fdUfUBUffpb47vuqVUj0kOnPoMYJRZL631R9+lvju+6inSQ6Sujn0GwkRFzjqBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAf//Z","1715544983"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RNsFkZZ2D7MOC8sC8kHUHJ+kpw5xQmZiT2joOtjEELY1oj3weA1TWH2eYIhWTYfKccEofhLO19ukiWD9hrUXCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","send":"","pkg_path":"gno.land/r/leon/v5/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1715546476"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+O6/FIkl8l2Ls96rj45J4vhucUgFg6M8eZXEiSLH0kChEpFfUa9cUezuEOIUi1xH7X4Mo2SjabqzrFJQJcvZDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","send":"","pkg_path":"gno.land/r/leon/v5/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1715546461"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9jbc1E+cHIBGh6jKKc4eg80pdufdo4/Y07gkVNEaJmXfFYuyLkVYxcdCIU3JeuBtoEmGmnzYOlg/wgkvgXDSCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18700zpxdch58ytw9msedyaskrywwxtsr8zh7hy","send":"","pkg_path":"gno.land/r/leon/v5/memeland","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JlFXLDGGx5/BfYPkt89tQGYmhaQprBXepE5thGYJsaUeegf5xPEJPil6e9OpSCYOmUCRjqIDttJfk5oAU9aIAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18djgscernafce2ak57jhz4ep2u4jx0ckykjuz7","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","weeyako",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nshIy8dJU4yA7WQL+ROoHyPnpeWBBx4s80C/T5yyTbsm+ICMJ4bAFMTV6/qIwcCxcnVYyqsj8fzdyTmnqLvpDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18lj5pgadp3y98wawweavle2r0677w9z25zmnm0","send":"","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S2O2feSK6RMNyUP+nY1j4dSTOXYPNX7vybYjqYoE4tcNdyghbTtMroSJnDLecE9GSkM5eQg9FsotITdusEnYDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18lj5pgadp3y98wawweavle2r0677w9z25zmnm0","send":"1ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zWC6Wt8rjGjZCgRNrTtIEgcufY6HYpHYEbCxm7KWoV38pgVWqnvwnGtAC535RlM6FsaL+KpMXz0O6FrdxeZeBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PsisuWx9Hh9+D7vRgt1xKVK0xKSbd9tAMQNN/bAMdntIMRbQlEJBt4PIsLdNl2YkQkUzac9o3aeqw+TqLzTsAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","aeddi42","https://github.com/aeddi"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FU31DSWajKV9fD68w1dbryExxYq1y2vxtKY4RIf8WeUf2KGf/3au5oh9YceEDjiFHT22kNbH0kPCWiZQ6MCzBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g19ttg8h8u7qmled55x6rt8mplhqsfdx8mhyng7w","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lqtyuZUHbT0XbGdFi9IyoaNaEbkiwyXoeD7Klz+prndiRafvMUBbsmclLxYiUwi5vrfwbfKsZd+zDLt/LB9fDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g19z05mfcauu0lqlenysklhha0urdvtkap2y2gh7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x6knDBI+7WYHlAh+558ovemkSbJbRQKCZUpWN2OjfuHInxCj1YBdsoTdt/StQLiUXK1J1JhHtpjb0y6AVa2tAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1711407617"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vzxMaXbb7beQLWZ5FiEEKdRW1iY8xzvQTE3MVFRsZbvh87vniLpx6zdBpmwIHzw9kQdliZ6hirzkNj5ZMq2dDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VxgQ2rBZbSLPzxkQ/Dfn/S58b87tBhraXjB8brKlIkVREr48FfvdKSJCzn+eqANJScPnwewW36L3vG5YIkVHAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000d"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK8l8caDYXIS1PSONMWdWB37O+UsA9CAGPvFDW9a1juj5iKsYEYFIImhiJTelqwDc9va9FFbKouhaAbxs8azAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1a02qa9rc2phxkdrymp2jcw5hcsk7ucm9gzmgxk","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000e"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rQaPTACIeDo1PPpteaaJNEJhxmaVSsU9kBZ989P9qMWFUw5ZupOe9CgERDlgebgnbyhby2Vbcr4a5J66wfMACA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zfG8oVPDYyU4fBwuUvRUYrFcSCzQ+UwJuW2ZXw6XAAmRjGr+K6n17fdlleADWdp44thduzd9g5PunCkf0eu2Dg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934458"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":["gno.land/r/leon/home"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X28Y7a+k3zQbmA3nlezGCl3jIBvZ+EhjGAA3fZKeRQ+PqFUL88w9tPYBhYKl3BdNXrZYsv9w37DJWd867FBvBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934608"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":["gno.land/r/manfred/home"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EnHivLwraHMfCRWoHQ0n7pC5IQVUX6/JcOgJ521gX539sMcSzg4hzvEPyfY0ClKZ+S9zC/BdOajjzpGqN1HPCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934558"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/hof","func":"Upvote","args":["gno.land/r/morgan/home"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Om64PvDzB1U5nk09c4nSuV+43TKtT6Av2Am8doMNL49brD8Vi25uwTkH65MKhghWW2ArN61ALcB3HLwwgGlYDw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934628"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/users","func":"AdminAddRestrictedName","args":["osiris"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/OzMb1bw4YZAPUtKkwWooUW0M71CWZYpblAnnp9ls15EiaGrETH0Symp2BYZEKqP0W3pmCIlHXbX3fI6gYfSBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731932565"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","osiris",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"44rBK4pmnTrzI9pesYWakW6NqufA7rJ8d9g38ujf5f6jeR7fvUVV7Yxi2E7poJC39YeQt8D7AJ5xujKVPcwHBg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934222"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","osiris",""]}],"fee":{"gas_wanted":"20000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qgZSv9sYIXEMASa2GA1pwCqmSoZXvJ5QUYFpB5Q3LEX2MPgMQZHLzza4Fbw6uRNRNIq1xjfVrjK/Y6IjDVWzCQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934262"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","osiris",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gG8CWRfPoOHKAYIgctE+NYjzJ8Q7BydkMJn+j0nYS/4Z2fIFCbR2I8zk+0ZEDnGJH4AN5fM86734ufLsadpXAw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934051"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1anajhdr28jlh4dd6dz5pzdjk0dsyqvc4ayk0aa","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","osiris",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9DWpbGpjd0mo74sWE3WHnCAMFIbWf6/EZoZGLj//twmhoLmWqqpzktKhDQFrbg6piIH3b28i2bjJX3QyeRepAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731934287"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1apl3lufufp4pemflz45ltlwmecsh50xjpxl7yw","send":"","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dcP4hezCiRCMF8f0Kqt9DnbN6OUvtGcDm5NXM6vtKerEVKwO2oRRsJCH+TZaLvHO9UaAdg7+0uKiTYDsTf4lBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1apl3lufufp4pemflz45ltlwmecsh50xjpxl7yw","send":"","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dcP4hezCiRCMF8f0Kqt9DnbN6OUvtGcDm5NXM6vtKerEVKwO2oRRsJCH+TZaLvHO9UaAdg7+0uKiTYDsTf4lBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1apl3lufufp4pemflz45ltlwmecsh50xjpxl7yw","send":"200ugnot","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P10EWhLA8Ak52VHk4eqpfMCIvetsiftyCvJwUOlXMh+buuceJCQADPeQOwDbPBUtKKmw/NilwaOPWJ4hVjJTCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"@g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[\"@g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj\"],\"title\":\"\",\"createdAt\":\"2024-06-30T18:11:58.976Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"usa09vT9J7VrIw1SLj46AnbANcqUblzoGltyWzE6Rghhf1lJUKvayAV767dBKcMqG6quGv+FXY2BUCCBjr2rDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"Hello gno\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-18T00:18:20.531Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+5yH5YKaTjX2FSBfEqlQix/hCI/onGNLMEQQqAf354i+k211Qn9QHh3Ke3SPQpKyvDUQBnHdb1f31NTYbm5iAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"YO \",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-18T00:12:22.798Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p+olg7pmHIQnyt0FKRIHHR7ADEz3+2CsQBZ7I6jElZAr6Zv8/ud4ABubrg/lJ53VlTr3OjzJZcdlnHT8k0axCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"YO \",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-18T00:12:36.409Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BRXOsSS5FfXwldNHzYDjnw3gAVKeJFwrjfsjW+JnYLZdVF4htcCmzBls1fS3pwNJXf57c8Siew7CaZxx81XgBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello \",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:23:05.902Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CIkBCNqhM9bY/quzER84CQ1BYEqactXr4vkz6sLpvudzh/h5zYoAIWWARlxva4Q2gHOwTXWabpuPk/ljVINpCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello \",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:28:08.496Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xyBncVPhPEOUjXNK92p2QY5yeO+4D8JGbULAq+hgl1X7niX+OkhCvwHVk7t8FCOrPEPWhlSAjpT59VJ3kmb+Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello \",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:29:11.750Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QArQrHLrIhU4AaAR8ITVZMdnAlRAn6uyk2KdZV51HhF3y4KbhrSqfqsLtf6FThBTs7Gmn8q7UyFgSp/jYdY2Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello guys\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-07-06T17:03:37.329Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2uIleJLn5RgwT3HxQg7+WkV9p++w1CHomoKKPe9tSk1HINMCZ2Ccq5PXOqtJ3xQVZig0/OdT2Revl6VJs76sDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-18T00:14:37.483Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o6GkQLxBzXvX8vKs353azp6w9lH1fYf9gZSiPlNTnyIdAmZhlGnIqh5GTIIAND5sUkIko/D29/AwR1A9GMBgDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-07-06T17:14:56.601Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7/n3RrlIfBw/dOOYdPgtFTPH1022LkKSeA/E7NCn/wOj9d00TH6Hvx7lk+01AY3ozrOhwMiFAbzQqKx3QeE6Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hello\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-07-06T18:28:51.656Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QmTCd0PL9NUIvkc7QxpBEe93b/CV5fG+elev2Dpd+2hUNpCxhgRWFn2MmduVWdgGpsZBlFYR1Npn0PrnhwC2DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"here\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T18:53:17.214Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Moqc/6cZ5JrQfqitdlRILFvSrXjjyuW71YxUkVyGnvKTgTsNpyArOigZsirdf6H2rEpWUwjMFvdeRb6uGhJHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"here\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T18:41:41.585Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/Xk3meV30uqmruiDwu10/tpvFAmAm1jXzGsrtFdQ2m7GdEMe0WfL1b9K7+XPYdOiD/8ud4Vy14B+JMPcAv2AAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"here\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T18:51:23.106Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/mm0D8GjM/U047EDB/CFBmDdwZX3W3IRxdKL6tlyiC0rY6RRiFzidYrT3NrKfF0iktpj1/twG6MqGK2d+KFZDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"here\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T18:52:07.506Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"intkC118BAdlybDg75THQHPQjlGdoCLggfc8aWlhsmflE4Vd8YnxOKX3YTuby6AKSSHo3IWTrahZGn210IAXAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"hope\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T19:36:33.320Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"stKzKYD2IGn+yx9Ts19J4YY2H2kXuYpgQN47cANYMRFXpYX6+kixf+VYiyw8HRktr+GgaTSNgUusTEgIzUqUAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"jaja\",\"files\":[],\"gifs\":[\"https://media.tenor.com/GfOAM2wFc5kAAAAC/happy-fried-chicken-day-eating-chicken.gif\"],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-07-06T19:47:38.609Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8lgGka+E8xycn2jvI3YgMCkxHudI5xs8p3DMZLgjKXj946HBCfLjM7r0CUfxxBGzrx4O/V6Zd0b344ob/6DsDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test. \",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-04-02T16:54:33.865Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WXpSrB9s+HgBpmxwqTv9pPipfvfPrVlIIh0+sDLVkfwAvuj9hdENl2Z8TG4jEztbG1wNNzGTVKXm0EJS0okHDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:07:10.041Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n6HGiZb5Xb1UiA6J9HyfKNgl6UsL1wJQslNSG50YWUgq66Rjc0kabq+5SWf6gV51BynBf4UISd0pyhOEVANNAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:08:54.560Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8DUJrSJzznaV6vZK1w3SEaZHySfNkePJwL5jj5HxOopGOyS6XdPqVfubq96rL+diny5olt5aSsPSRzLKlykSAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:11:05.552Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gBF7LLX3fOl8hmrRKACupF/7cnvB6ThkHrUTa0fVylLUgxfKbJKKBhViCQt1lS0RtZlSzhHS4LGwhuJpjQPgAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:37:25.119Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MKMSn7MFv/tjBN67U5zdZBEiFMZY5Q2WdqzEZSutIr8+4z1F++S8SLCKUjwYL3IcHFDQc7zhWag/8cGyjHi/Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T16:38:59.637Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"devMeB/WL9zj3zXAgLlpUEpJAPYnaoFMC+CEnIJTlrOBgTWEMkBB6KD7i/D6KqrPH0FtcY5NpKVadNDmDP1zDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T18:49:25.531Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UpQcAg4g+Von2D78v1kN6OKQSF+R/eC992UFMVlBGDsIvM2m05vQXbaYQ63mhlBCeE90anbp3bkANpGI7uKCDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-29T18:50:14.071Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bK0Dz7NVI4D6fMEkStD7RU0VvLANBmI9joVzvCcwqL4c4Ue0naLlttlIGTK0uVCzQDt1th48MkL/ncgm31t+DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T17:42:25.633Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YDfavIrHWP0gwQmp/d4OTmweU7kfY6Jb5zhNmTZ+S2qsGor6KYdG/E8BQ/JCYTATaqURnyqXZnRlAYTuD8i+CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T17:46:09.531Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w81H3wIBkdBM9sWW3ihr0WN9WMsPnwEoVL3y7In+vlb7cGKoutGPkXoKf7u9qNInNSsh4p9NiSC1JdMp4Dv2Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T18:11:01.557Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iuX0HLqqDX1XdrWCLNz6rZNndDYaeItMFD0obnmca8rtVWVa86fn3qLUuXP34IPYcQHKKjTwkkI3MLF46zZSCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T18:48:57.054Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/rk44WOCpTVVtoJQbkm/LJxlZpl3GA/N2H+yWlfdafJMcXHvluDc/IVQlw0uB/S61oGOD04WKqXQ1RdL9j8PAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T19:18:40.157Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xRbm7O4SRSYO76OXaoqO+YXUU3D+ZhwQvJLCGNOK3509ESv+vX381c3v6JsjVbIf4l7dpLXw6+lYt8OATebiAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T19:19:28.380Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x0dyNawXjEJmEumTnIi9wStlMVdgIWmKFytP33t0OUGbl+HHvQ+aLiDeqFxcbv9zP66cZZGz7P+ZCg1Te7SiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T19:20:59.215Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lkpWbaeu7DMlwozso+NkHKeS4XP8jUJeczkshB0tNnZSbwn4udDhUHGZ9a0EiONhaWl0smX+vML9aPXwW08hAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T19:36:52.480Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0HxtcsknbHfbCUodiAGkjUwBC0TCA9XJxSMB14sUUPqDtUit3iuOi/M8KPhvQHLatM+8n9szHFCrgcfkkE/TAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-06-30T19:37:02.909Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IndrTfb4M56JQX03J9+SWxMLvOIwVdtDXQUmcCDD2nT5mxzKknP+SoJ//AvxH1Z/052h9Jcir26JyqK4e1EPDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreatePost","args":["1","0","2","{\"message\":\"test\",\"files\":[],\"gifs\":[],\"hashtags\":[],\"mentions\":[],\"title\":\"\",\"createdAt\":\"2024-07-11T18:12:48.951Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pf0rFrJmtuPGMKhsr6WW0O7KP+eEUFUo5vD9A+DSpeHEgBkJkIqIhqSXEv00R9NZgfZFhtcs5MClJnHdR4SdDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vf+QaO317o5SsUv3gjzxmNju42GEdf8f9wdlBMARbbfsaX9t5MVMTIC1OR1/eurwdlmYf/oB7Rx6lWanmbCVCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","","😃","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"frxUbpzPCsn+vPn/HixdYbWh/49f4NcfKoWEHmnawjuCK8LNY1oRqjdy3szqjzzx48uPLuRI0m5fGVKQRwAGDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","1","😍","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wNc2jV47MIQoaqBOyX/BsbKpdSLzN0tm2op7YO5q89kjF1iOGmSUwCvXHEAD3dgqPQW6JClJXMXwIkktHNZPCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","1","😍","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wNc2jV47MIQoaqBOyX/BsbKpdSLzN0tm2op7YO5q89kjF1iOGmSUwCvXHEAD3dgqPQW6JClJXMXwIkktHNZPCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","1","🙋‍♂️","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p7uPf2SXa1GqSE/6ShGN4p1uGs6AOrUz2SImIVP2eeSAIN0+RgP3LNWYcE6SSuYQuB5KW/UMDcRSQpEdRMvkAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","1","🤩","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GKsI7QdJsQsGJD/Safmdiu0GP9J1ZaZjbKupOXuxZnkCUUHXOa5h6jhuIVY8SV6M+19mPWbABeS8tp6UEF4aAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","11","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7bBhC+ySyFaaIld3YgSb8dj/CQY+gW8lbnDiQvzj8Vk9iN1H45BYjq15GJDhKoaYfKWf8btLWKstTvMTeebbCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","17","😂","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R9yL0/S8sBWNYs3MNLnirxeo7inYjNlet/RcvynpA9Hu9R7SJqr0kMQHut64AnnLps09ivRhZnGD5GnMXaOdCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","17","😂","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R9yL0/S8sBWNYs3MNLnirxeo7inYjNlet/RcvynpA9Hu9R7SJqr0kMQHut64AnnLps09ivRhZnGD5GnMXaOdCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","5","😁","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qCxCejs4IX2TQ7IKlQtO3/vxaIDDmeo5AymdIj8GEJnRKqb7hO1/8hWlHImOSusbuvv6Q6ty1pbZI22R9r1ZDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","5","😂","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2GSzWLZPySz4pD8iin8OfrezyVTG886Z9jZepKjp2KZ5wOON+YkWAcLrCBV19K1Xt8vNNIYup02n+3l0UzSJBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","5","😃","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7wBbp3w0AbgyE+tSw41mxuXq22/GzqlI0xwymYLxTRWHIIYRWL5BLM9L0UtmK1P9Yh+nkj/C+BZFfzclArGiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","5","😃","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7wBbp3w0AbgyE+tSw41mxuXq22/GzqlI0xwymYLxTRWHIIYRWL5BLM9L0UtmK1P9Yh+nkj/C+BZFfzclArGiDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","5","🙂","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OZ7WOUunmFdqhvo4M3aTu30/MYrgI82zb610UcnmAYUhRFGaigxPlnKgkhLRriXjczg3tu8SdyUJf8+fNhzBAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","6","🥲","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ElW7/u7wTbDrGT35EjpLW5VpdjKQTRPS5W/7t/n9hxmwJi/iRmnIKnBxyKRK0K3OztnIQhB/Et3xUpDWsZ0mAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","6","🥲","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ElW7/u7wTbDrGT35EjpLW5VpdjKQTRPS5W/7t/n9hxmwJi/iRmnIKnBxyKRK0K3OztnIQhB/Et3xUpDWsZ0mAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","7","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L3nGv3U5nPlbeyyfskj7XC5+QXW/wv+is93GNfXooL4OYpHkNWAs3IyLX0umh1462KmqgW3kubrF9+ynWg2ZAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","8","😃","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yna2MJljmILG6VivjAaJFvlRWl12bc6YcFZSW1YzkJEJZQ2vCGxmikggwq+iPEyuqGTnyMuUkFAdyxwudJVQCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-1","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UdBPXH1w8pXZeq/IU7ZrixRoYP2jieBHRBqPOCp6UOJBFXrryJMOhta9bSM6dMZB9TwBHu8LKLPG/A7E75IfBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-1","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UdBPXH1w8pXZeq/IU7ZrixRoYP2jieBHRBqPOCp6UOJBFXrryJMOhta9bSM6dMZB9TwBHu8LKLPG/A7E75IfBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-1","😍","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wOJBa6/Z8UjL1s25vA1Zc8U/YtvcQoletC3ZFIqS9Fq5KPdrnLUQxzy+T9SNFjn4t7tdTFRXjf4NORtV2gilCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-1","😍","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wOJBa6/Z8UjL1s25vA1Zc8U/YtvcQoletC3ZFIqS9Fq5KPdrnLUQxzy+T9SNFjn4t7tdTFRXjf4NORtV2gilCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PqqayPLcYwxdTEmMC7CnDH37PFD49VKbZnQLR24IKDXmBuRe/OD0XGdygQafccL5PtacRDCuiUwOdnl30R8bDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PqqayPLcYwxdTEmMC7CnDH37PFD49VKbZnQLR24IKDXmBuRe/OD0XGdygQafccL5PtacRDCuiUwOdnl30R8bDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PqqayPLcYwxdTEmMC7CnDH37PFD49VKbZnQLR24IKDXmBuRe/OD0XGdygQafccL5PtacRDCuiUwOdnl30R8bDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PqqayPLcYwxdTEmMC7CnDH37PFD49VKbZnQLR24IKDXmBuRe/OD0XGdygQafccL5PtacRDCuiUwOdnl30R8bDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PqqayPLcYwxdTEmMC7CnDH37PFD49VKbZnQLR24IKDXmBuRe/OD0XGdygQafccL5PtacRDCuiUwOdnl30R8bDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-13","😂","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ued6kyWGwBw32z+4CM4XyupxtZ0WNa5OfOW/fZwGBaCWpScvXaZS3k8skA/b8rJof15lza8pst/ZyrdP5mNEBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-2","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iD1etuVzfQwr/Uqh/8DuOPdqnN3RPD6K0HTdr4U5msEBH4kQUODtntoiuvAFs+iTbJLxMWzbXveiuY1WLuzkDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-2","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iD1etuVzfQwr/Uqh/8DuOPdqnN3RPD6K0HTdr4U5msEBH4kQUODtntoiuvAFs+iTbJLxMWzbXveiuY1WLuzkDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-2","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iD1etuVzfQwr/Uqh/8DuOPdqnN3RPD6K0HTdr4U5msEBH4kQUODtntoiuvAFs+iTbJLxMWzbXveiuY1WLuzkDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-2","😄","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ov7ua/3a/b1QX6zJ5Vt4vZ1T37c4/k00K9viQj6MtsWTZ+aRYzPbKGB+2pCip58QM9FhbpYGSsxrFm/Ap7UaBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-3","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HcMSa62rzjNDn8f6Zc2GLWhdep17twtrNipJCQmPTrTpKSOKFEGzrXZ23+cUDX0wrxkWFhXQounPOo3BmlYMAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-3","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HcMSa62rzjNDn8f6Zc2GLWhdep17twtrNipJCQmPTrTpKSOKFEGzrXZ23+cUDX0wrxkWFhXQounPOo3BmlYMAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-5","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2HBfrgPfLwjg0oFHWtZyF2IH+qwJI1USuUQWk/foF9Xq2fsctz5m8uj9ycfrqB8/t0oAspeybSgDwm9yWAOWDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-5","😀","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2HBfrgPfLwjg0oFHWtZyF2IH+qwJI1USuUQWk/foF9Xq2fsctz5m8uj9ycfrqB8/t0oAspeybSgDwm9yWAOWDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"ReactPost","args":["1","gnoport-5","😃","true"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FXfS+6PEqexZsTwEQ0ypP83ChgQGdNVWeP6pWMQtS9Rc1q6PFlN8ZBoJGNXlVNX0JfIrmLc6Xt+7S0/ng1ZSDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_1","func":"LinkAccount","args":["","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YScX0kB7soDjrRoU2QYooB9Ucu1rmGrWLCqW0OwC88KCIyiv+3tbIgYmgXZzCjSvK3FR2ePMAx8ra6ERe3THCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_1","func":"LinkAccount","args":["","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YScX0kB7soDjrRoU2QYooB9Ucu1rmGrWLCqW0OwC88KCIyiv+3tbIgYmgXZzCjSvK3FR2ePMAx8ra6ERe3THCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_1","func":"LinkAccount","args":["","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YScX0kB7soDjrRoU2QYooB9Ucu1rmGrWLCqW0OwC88KCIyiv+3tbIgYmgXZzCjSvK3FR2ePMAx8ra6ERe3THCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_2","func":"LinkAccount","args":["","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HKYqJ70qKMZn5B1m9kJCMx6llw7gL7DFi3R9iqr+6mOVqVuJJhJLrn+6V3zM9WuL/HcDAF78MFFniwJOFrukBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_3","func":"LinkAccount","args":["","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ILRgvh3wAKWs3Ngoaw168c9cfy1e3hz5/pYsUvQJPs/H5/KHI0CMVAiGlGyv0DggGMCGArew9KQ39a5Y/EWtDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_3","func":"LinkAccount","args":["","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ILRgvh3wAKWs3Ngoaw168c9cfy1e3hz5/pYsUvQJPs/H5/KHI0CMVAiGlGyv0DggGMCGArew9KQ39a5Y/EWtDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_3","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kxWtVC25tWNs+6bhrGY4ucVEI5wm8NvJng4rGq6vex+M0zcyRUkWdD5FMJvjj0Beuo7ZBx79G5T4c5x7GZAqBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_3","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kxWtVC25tWNs+6bhrGY4ucVEI5wm8NvJng4rGq6vex+M0zcyRUkWdD5FMJvjj0Beuo7ZBx79G5T4c5x7GZAqBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1at2h7kdhz2m9lv6azn54mwu4wl95k94wu90uwj","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"LinkAccount","args":["15034695","g14mfv59k38r8k5vkevpu0lpqlqra0e9trwp3d32",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HhrYU53hCjW37cq2YtQmS5TCNfkhiuLoe8Kmx5CpBq6z/kU7lZlhI/6B7QvcF+KUCGG+y2pJkpMw1GLxgpeqCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1axvq7czeyp8z79ncn48e4cyjl68mqczcrz5wps","send":"","pkg_path":"gno.land/r/iamkevin/kraffle5","func":"Render2","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xbLY+UjoeVCcePcOW0LzP6YNhQXJFmxzWaE5FvxINeYMYVf1TW8rq0IXkJU1vy7PK658A5IarKOGgswIb2hrBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdateClassicLink","args":["https://gno.studio/connect/view/gno.land/r/matijamarjanovic/home?network=portal-loop#VoteClassic"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ooE52GMMgEw2QPzk6122UJfUBujMpBeC3ehEnv7u+rHmaFzCtvCBUdZ/5K00rY5OLaHbXLD0QLOhU3f49mKcAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733837850"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","9"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iV6Ju9C5a6libHrgIEKx4DbIgQTiaweK9Lfn/mXcYKdgEc+8uBj8smSzAy2YECHKQ8oVBMQKuKXrJFNmp511Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","12"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aOqHhu0vmpabc20UtfF4IEalUqQyoEmRHnOtRLm/idPI5aTantSN7TtZjpgF+RUdW6jUX2thSplq8XmTzFccCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","13"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/Aj2uiMI7liy2tGe26oLor/bN9Zs8Ua12VLykThBNKV0uvwicTO0eFuv6fh97wOH9JSM1Cqyz1aCxoNPHaYbAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"10000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteGreen","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6i+tf1p5HGdepxE9goskgxFJZ70Th1kA5UUrmKyN9pv39n2aUeCe1rYgNOPVm3S+NwPzv1UsQD6cnE3wKM4tBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"5000000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteRed","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+kHlakugMzo5TtWocrsd5tUswp5dqvBnZu6M8ktOu4vVLKTXLNqXS9YufSX/VjsgYqK2xrFshiRZMwMqhLGgAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1caryg8mfnmk7qaae606glnffazad77uzgksq5d","send":"50000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteRed","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S0eVqW+FVCYG07HCu0VXi+N1xEyI1cOSro1rBBSZeFvZbk0wKTFAO+CH+WgZZb4kvXxuYmSHe37R1Igdl+g/Ag=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","send":"","pkg_path":"gno.land/r/demo/art/gnoface","func":"Draw","args":["766"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCH6zT1yTbg8SaIepULmU5fXZUN82YWKFChmAc9m7U/69YhmX78q2ETTQj/JubHc6sclbkFXWqQm64bhcd90Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1DNI9tOArsPh2636hxtdJH3hv3am2dQIXn9O0QPJ/DNFGWamC4CRrrQ+kUbBBO2cxlqRNbSVK1GjA+oqR5BbDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByAddress","args":["g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bF+p2KhuIluCHcoW0x6NTCj5QLQNW2jShU0/RUieLPZLk1ZIypGqXatnbWrRq1VGDlh95smaiIug9lqYEIZ4Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByName","args":["miguelito"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AzTbZTiQDGWlNMX2v9c16WEAYBFT7B/SzAss8jVTvXFf91HTtTaAHWnP0Y9eKRGqhhmpELdhBbgooF/vNp9bBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","send":"","pkg_path":"gno.land/r/demo/users","func":"Resolve","args":["miguelito"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RpO1XZKtGS4eBL/LJH11qq+NYMwlJwXQGrLkpJyJ+tyE84DkK7JKbPiiIJvKFXlRDootzR6CxTo4X7zpEWOgCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ckanw7sgnyfyqygunjjk9hp7mmlqvkxhsjdxya","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","miguelito","https://soundcloud.com/76temd/sets/miguelito"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NtBp9I+x7YXae+U8qf2e+fWrKXVM1sc1J7b3E+QlFCFjvvbfU1/ObEnu3ZWXGni+Ik2uo/qKIVQl4tmOcqU+Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1cpx59z5r8vzeww2fm4ezpz7yvjs7kptywkm864","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Hello world!","This is a test."]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cz4bBbSOXNuC/RIsaivAusNe1T7cxZ4ljMki//WlYHgjvaDBCWvLJvukgggvLcgncPlM+FrBD6nPGATz3IXwDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1cpx59z5r8vzeww2fm4ezpz7yvjs7kptywkm864","send":"","pkg_path":"gno.land/r/morgan/guestbook","func":"Sign","args":["\\'); DROP TABLE users;--"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gwmbzecdKRq8cTF6IxJaec+y2WGuCzhEHaAVnf4IyEfYKcdY9pkoy23PR/5CBmrje+hxbO+olnNDIsQeKTNOCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteMinimal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oE5g9g6TwlKN/VcYshygDdkPuupCm8TvSeO3XcxGqlGOk6AMwtlXjX3J7TyITxELPTpOTrDoRysJpttijiDIAQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734198773"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteModern","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iObyuRBOJ6zE7jmz2LTESkwaGV76zJagaboE9sDMfQH5JbxXs/n8ZzHR+vwhoz29o2O1jkYWZ3uBemVelBgHBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734199300"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d24j8fwnc0w5q427fauyey4gdd30qgu69k6n0x","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","ursulovic","https://github.com/ursulovic"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RiKgAOgWH7p11abZ7yldpKNZ/V7SYRBdQNOELJbLXMU4xMzrhA8XFmcLF2/CODOP0f+L0FunSj2+brfv1l5pCw=="}],"memo":""},"metadata":{"timestamp":"1734197046"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/demo/mikecito/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6Om+yKVyXkHMe5v/Mj/dNjtqrzIQbvvCtPnaEHgzqg7mp+y8PtNu1hPQQ3mF8r3IFUofRB1FSRSWl7BR+qHbAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/demo/mikecito/social_feeds","func":"CreatePost","args":["1","0","2","{\"gifs\": [], \"files\": [], \"title\": \"\", \"message\": \"Hello world 2 !\", \"hashtags\": [], \"mentions\": [], \"createdAt\": \"2023-08-03T01:39:45.522Z\", \"updatedAt\": \"2023-08-03T01:39:45.522Z\"}"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FdGYgWAW14JYvL7y9bdxLdc5WNMB0cEn7p1WQHwS1ajU0SVSbCRc0aKQJgG8keHUG/h2OBKj+LtMsPJWALP4Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zQDhGsYVYh5AgdpGpcHH0hS/Ked0wzciE3NeTbx/fuiAFnvWyzMMUIcBiZJ/WRVqOa37mheHiB8wdVODnI0TDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zQDhGsYVYh5AgdpGpcHH0hS/Ked0wzciE3NeTbx/fuiAFnvWyzMMUIcBiZJ/WRVqOa37mheHiB8wdVODnI0TDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zQDhGsYVYh5AgdpGpcHH0hS/Ked0wzciE3NeTbx/fuiAFnvWyzMMUIcBiZJ/WRVqOa37mheHiB8wdVODnI0TDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/demo/teritori/social_feeds","func":"CreateFeed","args":["teritori"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zQDhGsYVYh5AgdpGpcHH0hS/Ked0wzciE3NeTbx/fuiAFnvWyzMMUIcBiZJ/WRVqOa37mheHiB8wdVODnI0TDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_2","func":"AdminSetOracleAddr","args":["g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DyHQH/y9OW1L6Z2dwni72kFYUtObb3tIdxZWRCvyUNycLUprBlUjlYl1HNux4PuFdj8pJTOYkpXhWGSDKdH1Ag=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_2","func":"OracleUpsertAccount","args":["15034695","omarsy","6h057","user"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YJ2oF276+oSPNOsaefPR270i0CoBRwO+0SRdsg5LaDi2tRfoHSRUWQR79vMy4XzrZDDRrJyQFSfYtrcj53qXDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_2","func":"OracleUpsertAccount","args":["15034695","omarsy","6h057","user"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YJ2oF276+oSPNOsaefPR270i0CoBRwO+0SRdsg5LaDi2tRfoHSRUWQR79vMy4XzrZDDRrJyQFSfYtrcj53qXDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_2","func":"SetOracleAddress","args":["g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/4Lu0RgzpL2G8MSn0fxn2/PyhYYYPkMahnewGGqvtecApfhbkY/+CIQp76ZpMO2sxNoFmoZu/d9RSqPWAR6fCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_3","func":"AdminSetOracleAddr","args":["g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vKLD3tsSPma048dz3e/2f9VJ3xf6UY7mnjpzFr2/hc6tsXdqVzRBShSqDEQ0L6EsjGaQYUnOvWnpD+8tS8p4Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_3","func":"OracleUpsertAccount","args":["15034695","omarsy","6h057","user"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0Ap8UBAobXD2sFpZuNji+xFFciNIuW5XYAXQumBGJL79cp6n28HdXA6a6E3YL9j/DAIoAD8c+VPmEy0Hww4NDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"AdminSetOracleAddr","args":["g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hE2WkKMMZ4/prvXUcnx2+ywjma1n7WCfSnLvinRhdkZIxqaWuy1x6rEpT6nybkcU/Lg7byUf2d5Njmo4DCVJCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"","pkg_path":"gno.land/r/mikecito/gh_test_4","func":"OracleUpsertAccount","args":["15034695","omarsy","6h057","user"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h/L2Gso3L90JW01qWH6EGvGpdSrttsV7SdJJeffeRqgbRCFsu04mpYOWDxdcJuvouRv4GoqZWGDQduiFy1KdAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d46t4el0dduffs5j56t2razaeyvnmkxlduduuw","send":"1000ugnot","pkg_path":"gno.land/r/demo/mikecito/social_feeds","func":"TipPost","args":["1","1"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sV/Jj2DwyIhqBoBxvVu7Xq0Ukr+68WlG1qPuex3FIrA4srjbjbkG1ugUqpUYHu6feIrU0SUqpGomsTQM8g6mAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","send":"50ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BBWYDrltrO59xe0IxefdRBxPFpC1mesyVXdjxV6VTyPQ+0ydE56Ly4aDKLxOGVjWtGe0PtkvoXqozDfq8a+CAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p","send":"50ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BBWYDrltrO59xe0IxefdRBxPFpC1mesyVXdjxV6VTyPQ+0ydE56Ly4aDKLxOGVjWtGe0PtkvoXqozDfq8a+CAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","salmad","Danny from DevX"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZiCNoJFI1sjo2tr6K9pgcGijgQcKnUujMS3Tk91JRko0QsN3Igd5oxzG5VQk8fR2YX0YZMioBdcuiymZUbS7Cw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZOMhstp5BGm+UVeB+z8R9/GcfUbJ8kWJHlckvQXosuAPFCSOrJDwJkoa+PY/HLONVoSmMt2h8QpvlBWQ+KKpDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["4","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jwcftjuw9u/mQpCOXPzndHAcFjODOcXn8EEITKUJak3/tHO4x1HKEiaDR6qKyk38XFlM5LM3UENOW8OwXN0SAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["0","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"88dq6b/RB19St3xKvhBvghT0WUDgbu/PbWM57exmRhfl5O3WyxDt/iVOttJ8/ET36jkk4MsytE/WsPe6GNH7BA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734348598"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KmXWd6uvMP5hQxJEt9J6yOoxDPav+5InBdSdlPd8Z2wTzIdxdmpera56K9RrR0zLShhOyE23tVhp5wnUtwRHBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734348638"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"19999951ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","salmad","Danny from DevX"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0HMYrf2EVP7QhFEYlGQwNIDr+QHPvvlnVRhxaiiG8h35s8aKVvZRyBxdP8fJT/HSv+6iRW1xEWG/+UNQ6rqqCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731954074"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"19999973ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","salmad","Danny from DevX"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oxgzv2BNgbCJsfqU4PMUAKHJiWoIIsbYih/K4y38H9/bTusFbOLKpHlixfCF1nmYCFixRfbmPw9ElAyzY7xeDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731954104"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","salmad","Danny from DevX"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"61l/YFH02AXB166KyiQnLfhuPzscan3WfC/l568Qyi7MfK1/mHbm5XZZWNBYKVpyHi+c7Hct1UcsTI1X0b4OCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731954184"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yOavmlOmSaepzP3NiolfgU3IBPfBXecZQEWEgdslONgxSX6Hoz3niVUB+eSoCNIlasWO3YzH8a4S+DG5mSaEBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dpw8yqzsk23z0vw434cpkhtldqd32vqr8h2700","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kuZEfm89KZL2AeuScTUCf0lR+4BGKdKpNgSLFz17C51CD0ZeOEUMgKWyeb02MMebdG5CXMHYMpf1b7TDr9FPAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","anarcher","https://twitter.com/anarcher"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S+rNYuqAMzJzCn8ksdl3ioHN1Jb1BCA8ta4Xvxd7s0ilPZ8N7g46/vUKRgKajsbS4RoLiH0putiKyF74Dld5Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","anarcher","https://twitter.com/anarcher"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S+rNYuqAMzJzCn8ksdl3ioHN1Jb1BCA8ta4Xvxd7s0ilPZ8N7g46/vUKRgKajsbS4RoLiH0putiKyF74Dld5Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","anarcher","https://twitter.com/anarcher"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S+rNYuqAMzJzCn8ksdl3ioHN1Jb1BCA8ta4Xvxd7s0ilPZ8N7g46/vUKRgKajsbS4RoLiH0putiKyF74Dld5Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","anarcher","https://twitter.com/anarcher"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S+rNYuqAMzJzCn8ksdl3ioHN1Jb1BCA8ta4Xvxd7s0ilPZ8N7g46/vUKRgKajsbS4RoLiH0putiKyF74Dld5Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu","send":"","pkg_path":"gno.land/r/demo/faucet","func":"Faucet","args":["g1dvfhkhjp0qgrrm4tr065aqz6ntjs0qr7rtmxuu"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4JgRlK9YRLvJtOg2S7lkmcMVPXOO9Qj2Wp3N2pcBSZAK4bzq6Vwjz7dV4VBfgDMNenFTMYWGHXJNukxSpvLNCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1dx6gadxk7zq0cxrrrfcx8s9823nwtvmm9z0xg5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0SwaPORavQdrCvgWWI8dW9vQdNlzzDK2Tnw9sIhI8wjNob+24BeGCfu23mSAqjlP2VxAw6vyoz8hE0iS91n1Dw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mYnd64jyPV0vVE95SOLGT1nlVUCpUjU6lQ3tlXbKqqcunqHOb6h0/CAS5wPmNQc9IcYLfba84xgJfH3QyAzJAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OH95emyaQmDeMzyHNU2jYuYpjVarYuWtAlHL5wPrSZm/Y9A2hYr5jzvRWqmajLcdHx4tlwcLTMW35hz1675MCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"GetInitialDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JSeM6waddPQ54rMwO+DkGqLvgelZcLkmLVWNMOGNhEzCR11FtwiRqG4+jOQK2X/wUBjS0EL/dfpu/bBx5GBVAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"GetState","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x/ZmPPdKV2hPYAej2Yx16vCn7mfSQExnzn+o4xoIdcG+DhIZRvp4pD2m3/l/lRVt1HJptsinfAAopRkK+1SjCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"SubmitDAOLockingProposal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fspjX09ZRvsR6BVXfvV6ypblnmLD4SCCIpUEb/DxID+28dgIDTHpBeGMngca9qg1oZiXIQGTsxvEDGOAIe1LDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"SubmitGeneralProposal","args":["docs","Proposing a New Tutorials Section","I'm proposing to create a new tutorials section in the \"Gno.me\"","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SbF0npMWm7enmsGiLBRL+wKWSuKO2CLKDKytTNIgxaUT0dXl7mjd7Txan2n6ADnLyP8uaLsfmcXvr4xCMGSBDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"SubmitNewSubDAOCreationProposal","args":["main","Create a documentation DAO","","docs","Documentation","Gnomes are writing...","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Mv73KXViVFqDGpheiuYX3QnLMQQ8ZRmD+XqZZvy44Yo6syHmyp0Rjd2EaEcJr78ghjyuj5LdabdjsiQcpPJZCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"SubmitNewSubDAOCreationProposal","args":["main","Create a documentation DAO","","docs","Documentation","Gnomes are writting...","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun,\ng1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qXbrAveZZbUUj/0+Sn14utMnK40WyA+dJ24Dwp0Ur8ZGT2r3rAbXECHybkpyMciIXu2z+8D3W63tqpSPNsqQAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nq7fEyddsdVXdHGJkJ0Bn21npWj7t1OSCpNsMke3FMZRVLInW4Bi6fnM2hxg20RX3KK4SWZ6kNf+vEfGqQofBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"irbtECsq4t96YGcAxkvYrjIyCpC17sg+8Jplg2ocTIilJsKethphg0BMTtRGdwwHubiyobswdmFe2Yv1e6o9AA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"irbtECsq4t96YGcAxkvYrjIyCpC17sg+8Jplg2ocTIilJsKethphg0BMTtRGdwwHubiyobswdmFe2Yv1e6o9AA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","false","Some reason",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qEGRBAHQ1FR69oWvkU5PgGr/DoZR+ay2CmauvbN6djTyHzks/TD1ogOBQjpg8GgaPftLuDBVboV/wx3ldvAsAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dvp40nhvPdzaoSDTJUKgqwUM8nBEb2lBErmWZ+HvX0DcyPD+7qYCCQuK7M+p1FR2ACeX7NPxAf7fQ4itTHtnAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"SubmitGeneralProposal","args":["sub","Example general proposal","Some description ...","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D9rxJcQHV7rXRF7bYaW7rnkUxP992FMiKTMOBG1oxHsq5inqLoNdWYMUDd79SxhATR/nqFqlU0Dbt8lzv+iVBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SttAJXjPgdpMCaAQwaWaGS6kDUsVuKzRY1Xu/1puWxfpAgZSvl+gjl9WcFo/J7bSYV7c6aC4YHMGx/xgsTt3BQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"Vote","args":["2","false","I disagree",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rz7c4rbf15qq6kDGeoKc7x7cFho6ctAywiGKTWUVmScLexR7S3A16GwCC9Gl5T6fwox3GQPvCscg+wsRTjqzCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gaUu/XKjTMrfI/TYjkoT+GTCwsY17DgwUD/zbAnyV6KRWS5dHjWnUIBbbylSDLiOwLrD+EPYFcs/S+6Q3uQuAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gaUu/XKjTMrfI/TYjkoT+GTCwsY17DgwUD/zbAnyV6KRWS5dHjWnUIBbbylSDLiOwLrD+EPYFcs/S+6Q3uQuAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ayMxjqA69DnWRMQCVxdpX9NDii8voY70U+5B2ExrFdfDs3VeOsHjUQb1Mr03EvitsynwYPk6+w8tBHCy8t/rDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"SubmitDAOLockingProposal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DOCoQeDLB4cnQ3dGMoETMzGkgsVTHvtxrWBp8b/nEvCxekzXkfUIrU04/qLO7WsKx8G0SNbE3UNbl2e0z2u7Dw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"SubmitNewSubDAOCreationProposal","args":["main","Create a documentation DAO","","docs","Documentation DAO","Gnomes are writing...","g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7,\ng1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h,\ng1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rHcWWyqSrEi4fdpXEkbwUkCdhQJYxJ9LIL7bG5mCHA1oTyVRmg3cNpAMil0Fi6f+QDPdDYzd0CeGRRMPYvkcDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"SubmitNewSubDAOCreationProposal","args":["main","Create the Euler DAO","Proposing to create the famous Euler DAO","euler","Euler DAO","Foobar","g1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7,\ng1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h,\ng1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp,\ng1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"APxBwEuGT4q1TAxnIifOoaoE9UZrvSiAuBfrZK/W7ZvFn1y9Dl14Mc2C2TuGr9E9ZoI0/5kTmcC83YFXazZ6Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g2Cyy0ioxQajT7R4Qr/3tCDfk8TYECyKIuJy9gF7rdyCVQtn7SJ2CockU5G4QPjC5aerg/tvbekZ9Ua35cjLDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","false","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xTtM27mpddoP8qHttaXEBVoev+IB+wYd4mRsHk9BvjkHVOnkiIHRfghBlK7Ue/5bNlFKrtH9S6JnGFpRInlXDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"To74VB39Z0oTh1ilC+52rl86v6i09MU5C/sLU1uBzkoitpe9NeMrv854HSbjdTRhy3T2tPeqc0Ozt0l/NUPlCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"To74VB39Z0oTh1ilC+52rl86v6i09MU5C/sLU1uBzkoitpe9NeMrv854HSbjdTRhy3T2tPeqc0Ozt0l/NUPlCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"CreateSubDAOAddProposal","args":["main","Create First Sub DAO","Proposal for the first sub DAO","first","First Sub DAO","Some bybook","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AMuT/m/1vHS5lfZxsqLA2+d7zj/njP5drEbcWzvx9qvGxiHIc2yEvxKY9AyroFsJJXG0oDa78NbDNTZwpAyGAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lONOx0z+gtPD16nBCoHiHknaPM2q5VAkFBFb9HVeH1ayFm2vI63150T81WdBoIvIpsD+6ZxFSnFwZC+wgLoaDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["2","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sV3FiG5jCAicew+2NIxDK0wPpleS8VLUhMP9UQ9h5DmPu4twqF71cFUK3sG8uDdU+n73+0eGL0b2XhmuRxbxAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q3p2/K1aA99PQerhEhoJM2+eu/FYz7/T1xyVpO+HHLr5cxUZmFsbIbkPeTUHJUu15FKG/Ob6fIh/24aDHpDFAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q3p2/K1aA99PQerhEhoJM2+eu/FYz7/T1xyVpO+HHLr5cxUZmFsbIbkPeTUHJUu15FKG/Ob6fIh/24aDHpDFAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"CreateLockProposal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ONG1WRLE3WybqiUsF2b9KTl2yEN9ssXjqNvlHByj5s9KplJCIxD4CLAFxUXoY0rYsxHjvOG3mrHLLTXvDZuDCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"CreateSubDAOAddProposal","args":["main","Create First Sub DAO","Some description","first","First DAO","Bybook","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8GzA6agzGPf8CFp+0kcVi0sFHQBg7KLwKfXeNLUbBiGBDipDanSS+u5dbwt/3AS1Dzb9J9ZRt72Ey60dMZnWAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"CreateSubDAOAddProposal","args":["main","Effectively Create a New Sub DAO","Third is the charm","tutorial","Tutorials Sub DAO","Bybook ...","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qSuXudvfYTjUGE1IGHUwMaBo5O/5i/MkqjAuIZLEAMU2/62aG61jPOSL8jwvbYj42BB9lbi1ENf/00zjbpCNAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Md9ZOzN5Oeq1czWSeA8vfMA+9wz7UcakIqGuBMTAhCTCEkABGEVdSn4676ojOHnzWqjk73Z05lKnNk3h3WrBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vsos7OKCByu1TVhV93t8mENWAu02WnHQKWgkbCyUmBEuUSFwGnM10OfB/Ey4n9ZJpleReH1PW5DXhGkIkGyyDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vsos7OKCByu1TVhV93t8mENWAu02WnHQKWgkbCyUmBEuUSFwGnM10OfB/Ey4n9ZJpleReH1PW5DXhGkIkGyyDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["2","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R5X/ZpA3WLhwJU+wtSwMfAk8lnrJp4G80V1tDjhz+K4PUVK6HELt88ZK3KXDPTDGXXiWmPQOLkDwO76+VfszBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["3","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KRENs0jMs3p/Nq2Yt33tLDaYDb0jWGKL9+rpI4ImXcCaSo9qBau0P9D5v9gETVdSOm9gcesGjtNHjT9gos5eCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"CreateLockDAOProposal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KvmpKdGp0HAgppIYH+7CL3tdXdYc282dNhzVHLtWCVUF6KBbjdU/WIMTFSOiPDkeW9RrXiqjmZgdm1nyHihMBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"CreateSubDAOAddProposal","args":["main","Foobar","fdkjflskjf","","Tutorials DAO","fkggjdlkgj","g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wkFQPUhpH6EALJrZUZAOPG2k3h9AxP06ZFQq+VRaw9vkWmAGizay4RUTcefnm/rURTbWIlh8K18GlITHYaODDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"CreateSubDAOAddProposal","args":["main","Foobar","fdkjflskjf","tutorials","Tutorials DAO","fkggjdlkgj","g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"46+RJ0GCWcvYleZ14Q1MAscnl/7ktrNwdbbtjze6Tz6rG5+Av/z8nmvJhtLif7fWoWnuse2FphWZSv2NapnXAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pZfeIZyy0MaE85jVH89GR0cwPCIWnheV1UW2DDuq/hyln4q38zhBsk0jd6srgP2SmleLW9ILDBn49LEx/SaVCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pZfeIZyy0MaE85jVH89GR0cwPCIWnheV1UW2DDuq/hyln4q38zhBsk0jd6srgP2SmleLW9ILDBn49LEx/SaVCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetInitialDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Thh3Y92w+b2MtGU5XMPM81IrVk1wUOOALdlNvTQkY5zaLDXBnCdwib4eU/b7c6c/V8pb1K6yFsb0PSy5up2UAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetState","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GAlxblFA1OPoDVsByd4Ncw7qu/iHFPs+jn457jsSvwemH31qLLH4uWfN3dSdYtbab1PbKQIQ34C/F1IToWQFDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetState","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GAlxblFA1OPoDVsByd4Ncw7qu/iHFPs+jn457jsSvwemH31qLLH4uWfN3dSdYtbab1PbKQIQ34C/F1IToWQFDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"Vote","args":["1","true",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+lAHRnmLkHWLHI53dHmpZ48zMBJUmYwK3xAO1v9IQe8Fhx2QVm79fLed8r/xo/jTAfhk6TSRoLkQMMpMvS0tAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"SubmitGeneralProposal","args":["docs","Add a Tutorials Section","Add a new tutorials section to the official documentation","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"sWkZd0OFspZrkYnyHn2mxcoHchUhgh1ojKPgdCtu8fGcCF3R1QbIscimN4wtXhGwUo/JXLRER+lXrTPapEgjDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L0sqmn5TRF5hNKVN4VmOQTUGQNm+LHK6CIjbcwLoP0V6++BKSloHTeyg5fgRzdCQiwK2y/09X/69g4hi6QLWAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xC6+DDWI3a4BAB3xqsroeKfS/BkAmfQC1Lm6SsIBrSMafFHHKLYAXAcrc5PZeV+AHYHh8VuxhMFxwPlZCswmDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"CollectBalance","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+MBtIzYB9SLMWPPddboLzt3SpS1JnKnfi2Ja5GSlVjZo5i9yOJKN/SP1CsPaU31J4aEy6bvh3xzn9VxjRVZFDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"UpdateBlueLink","args":["https://gno.studio/connect/view/gno.land/r/mat1jamarjanov1c/home?network=portal-loop#VoteBlue"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dyQp4Wy3XsIDk0ecH+yZuL0iGekK0PitpGljnau5gfQOipuj+HfgvPO+Awu28BXiCg0H5oqQ6D8QL0r/bCjCBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"UpdateGreenLink","args":["https://gno.studio/connect/view/gno.land/r/mat1jamarjanov1c/home?network=portal-loop#VoteGreen"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"i/0iykmfjp6S2lNHKST2ZYLaOIS81DBUN1EeedbSqj+Z5g/dJABhdlLA+4ZVLWF/smPRbRJ7B9tn94xlPUisDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"UpdateRedLink","args":["https://gno.studio/connect/view/gno.land/r/mat1jamarjanov1c/home?network=portal-loop#VoteRed"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0NlEuvHce/NtcbA/655zcAbYVkzr2+MJvzUk6Dxyws3ggNODtAzq25WPxeAL8ry5dDrRjQk6dDxfmu9WrgezAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteRed","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Hu8Tg/Yi56562lURdWRx2CM69mqQJ7ciD62RAnDXaX0cyO6clQ00bW80STCPpEfY9ojXc1YV9SOReIuIhB8DA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"UpdateBlueLink","args":["https://gno.studio/connect/view/gno.land/r/mat1jamarjanovic/home?network=portal-loop#VoteBlue"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GX58AVXTWK/xnzVDGYxK/7NN/1DN1ORVoo65AQO4CCtLglUP95LHyy7Bf+TYV7rdsK1ylagpvHeNc6PyI8onCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"UpdateGreenLink","args":["https://gno.studio/connect/view/gno.land/r/mat1jamarjanovic/home?network=portal-loop#VoteGreen"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0M46IDtyoG6OlyiPIChWxqn/GoQR6p+kq7Cdejh9CqQ8EuH0viNLDtTSIVe12Y4w1ZNXfrlmwvFrhBtzwED1Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"UpdateRedLink","args":["https://gno.studio/connect/view/gno.land/r/mat1jamarjanovic/home?network=portal-loop#VoteRed"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3qgKJHPE95cV6NRLNAmkiXeJ6HL/VfD+jBsHkmxkwZG1TnThJ+KccBUdsOytaA9zQZLzP2qC3mPUZ0zXafECw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"CollectBalance","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0ajMeb9FM1mwHJtDucdG86HZI2B7AfQxj2vjjWCb9cJJUrMWt6H41RbHC9hd9oeDNaqL5hmqi1NbWkfSSaK/Dg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733916713"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"CollectBalance","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0ajMeb9FM1mwHJtDucdG86HZI2B7AfQxj2vjjWCb9cJJUrMWt6H41RbHC9hd9oeDNaqL5hmqi1NbWkfSSaK/Dg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733916804"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdateClassicLink","args":["https://gno.studio/connect/view/gno.land/r/matijamarjanovic/home?network=portal-loop#VoteClassic"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"v56fVEKLpeZMe6aGUyp8lM9wE7nH4SR3XPiV8DttL5BYM7+GBVLmuV8GPZR2GEOA/z9Qx12uWBfP47tCc2rfBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733837891"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdateMinimalLink","args":["https://gno.studio/connect/view/gno.land/r/matijamarjanovic/home?network=portal-loop#VoteMinimal"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jBuhj7oaNnOyATKl97XYH0SzjodDZb9EK+ozDRjDvkZRO5V0Sdfe4byx470ZV2WMVYWldm4Hs0UnywqFPGQpCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733837911"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdateModernLink","args":["https://gno.studio/connect/view/gno.land/r/matijamarjanovic/home?network=portal-loop#VoteModern"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JvhANSa2TE6sVLbvuBDimN1I0XoLDqhbAIaRWJ0NWfIMm9jn5Dm0xGuuT2XHDmnMRekywaCBOVn8yIVeaS+8Cw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733837946"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdatePFP","args":["","zdravo"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BPZqTJaMlY3Pv40cIGoa3rawb6o+FqOsVsQASD0I9+URw9+f6jwyl1LBse3NxkcBrjE6JWL5KCXiv0zGui1bCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdatePFP","args":["https://gcdn.thunderstore.io/live/repository/icons/GreenAlen22-Gigachad-1.1.0.png.128x128_q95.jpg",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"61F5vp78YCyQT/eGskewucFCCOTI7Ah1dvdaUDlI1VZe8d8WV8U3fE4NtQbs1kgHwLz3u49sCGh+3Q48fGK/Dw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733838117"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehunt","func":"GetScore","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7xB9fIkJjVkqw6qy8Q20wy+CXHjh4nZX2ycQEmYbRT5RSkkuZyY21eCOSLr35/pcDvwJvj1bkSAlGsSIs2EsDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","14"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w8G4XYJjkxBjt8shY/tUyxgoGSaz5IVZpO7x1mrfKTLMNEuL/y4cSguxTFaxHjv9D4TYgB37XbsMKtVoxtw5Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","15"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EyqzirPrf7XY9IkmiuW596DljID3MyFnJ3Mg9t+Qa3Z+iPIlxFQCraJSfkdOjDvlAdqukt2f5Mtv4I01TjmvAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","10"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6e5CW8UUuXbn1uEBPimKGBsSMWl3bi/v0S30y7Ap2iSh/zjXIzJh/CsEvYpkJhwwA2aYfUgcANp4V+RlbW71AA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","11"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+t3VG/lZE6LZ6Rvn31+sspH2+IcBNbIa7zOmzb+aqBnvju/Wmz43AbvY02CylUW7zbJpO9NtP+msCiKB5CicBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","12"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZN14obenDP7uk8fef/T+Ce4WaRVGTkbBp9wG8imwCBj5bMAOFJZD3cvtTJl8wAZ5mVXkiHXXhY122SDy/++aBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"GetImages","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"h+sGen9nYr8Csm8lgIl84dZz7apWH0Nzj3X3U+YV1zSP8fm8OFwpZjo4vF781YlVpvXwi++D/6bEnnWQ2Zk6CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"GetTop10","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GBoH4OChVE9bmus7vbPAG0B4aRv26xKxPjtFuVSDa9kq7gkPQdqA/8Hl5+/PDToni2U0y1R3NXMVHLdqGf8jDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"GetTop10","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GBoH4OChVE9bmus7vbPAG0B4aRv26xKxPjtFuVSDa9kq7gkPQdqA/8Hl5+/PDToni2U0y1R3NXMVHLdqGf8jDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"GetTop10","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0zPpIRWufLg6+7Kbt+W1MLZ2gLKGuu/+Gvroiqn9EmLDUlExYkbc2bsdz/kw5y8wxpHJdnAmgKw9q6WUJZUtCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","-48"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fe+9AWhPC3avlfBZ5Ba4SSa4QRgJjtLZ5AvAt0cmKW/vDEDCO4oQ1+FZ3q07s/7wvW1qhJSdvECjkj4qSrkQCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","-48"]}],"fee":{"gas_wanted":"10000000","gas_fee":"5ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UpyEXTaZLq70rBHbB0MbuJlrn/gUauXDxhokh4YzQEYPa0TYpaZ+7IG5PVcsu9zip4kSNPG7noAs37jwqW83Cw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","-49"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aZE8mFu9G+YQnfqWQcWIWKhat2ATzeyi+QNGWNTs/Yy6XVq7OwkXYUnWzzBucD+zg/nYWYLHNtcHm94WoNzNAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovic/imghunt","func":"SetScore","args":["g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0z","-50"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0U+KU5sQMJ8PHvxiD86Y5v4knGSEn1C28jXCvHkc0FyPgrgQDDZKdrH9U6raVbI8i91R+0/pHWEhMI9Ep+XeCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"","pkg_path":"gno.land/r/matijamarjanovicc/home","func":"UpdateLink","args":["https://gno.studio/connect/view/gno.land/r/matijamarjanovicc/home?network=portal-loop#UpdateLink"]}],"fee":{"gas_wanted":"80000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ezfDyNAFMW3B6/XodEot2ehZM1LK9H5ZfFVS4ttDrifFu8ZpyUU9M9kfcLFtz/1RSzBwLdHNXJTmktianDWsBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"100000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteGreen","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3s4weyPN/fbXC9wXa73GCxQfVJ8gh7c4hJEWFRNIKm2eOYK43cU0X5JZMifXJwAeAW8bbNZmSGsIZDJpHAU5Cw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"10000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteRed","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"y+wMb78vN0B57Ntc/UZpucF2WWMjkUanwWYExKXSySkBWdK6xDR0XlV+OEYLHXY7Bh0y5mAxgeTiP0k9RqTYCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"150000ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tHLHIkfR35+38nuWL+aocvkklU8isq0w7Xp+mzHfZXwaXK3j3nnpJci7fet0Bn8tXwZx++kaiDa3il522NZSAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"150000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+s20JU950XiZ329og0W9If3vWa2OjH2ZUUmaH2GtdEi1XNl6sEoqPj/4N3GalWiRbTzm2kCb3Jf1itWCL4uRAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"150000ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YaAstzPqItplyL1NIiPV89BJO29KuCtLq01R4KwLWHZXmD5Ngf54bq/wJvd0ZFT1Pdo8sEpXC1yXxQ62kQPyBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"150000ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YaAstzPqItplyL1NIiPV89BJO29KuCtLq01R4KwLWHZXmD5Ngf54bq/wJvd0ZFT1Pdo8sEpXC1yXxQ62kQPyBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"150000ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteGreen","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ERwNh3BBRhJKRjjQwqxrd0vF99vpLTtSDfXLNJk5xiKrLYvolwO9vxONyuyQJ2o1hS0kYLfZrNtJKXrcIXW1Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"15ugnot","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteClassic","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pASwQnWdwxgyuWGuOF++Lpsu2U1dLZjE2TZmcnXOpXEx25Glj40Xz0vpgkJc4d2+rC+A2Oa5N3NRNayy1vQ+Cw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733916578"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","matijamarjanovic",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E3TKSOCKReGEpQxL9aDFLs5zSW0ACAhCqtB6KdzhY3qlxZU2XZLNB74fp4Xe0J37Xpgx2rGpgpPUT8GQvazbCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"20ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","matijamarjanovic",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FgqVEgjNYzquxkB64sF4NahVqF1hjIe8kMCOzspTkLU9+VcqwemR7RR9aPGhNv81ES/sXuSFncwsZo+kK6imAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"21ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","matijamarjanovic",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dgKYy66kmaJddoK9jGyo6zPaHfJgNHluz412zBNW7mI9ME6egePYSd/rXyliDQYR+ZoWijW5FY0XW1kZSNPmCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"300000ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteRed","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6AjYVcDL/NB/C5MkHD2UtZY6kYV/xdQBJi+76CoBq/O615mLI2OfYAdCp6XjweQVlVlVzgvpZ0Ln2leTlIZCAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"30ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","matijamarjanovic",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J1jzX2uhwnDoFQgCA9p+M7F9E/LKfUSdsMpfH2d4qK6T8yDnHMZHEux1hYVvLUyjyCwZZroCP8yQU1tMwegVCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"30ugnot","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteModern","args":null}],"fee":{"gas_wanted":"200000","gas_fee":"1000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yVs0Vm6dwapUPZGi64kbeIIJqDGWBsb0E2rEUisWybXs4r2r3j2KWyjCWcnAsglLBqYmEzej+YEuGphANxQ/Bg=="}],"memo":""},"metadata":{"timestamp":"1733836148"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"30ugnot","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteModern","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0yUs4hsu6Vn9hJNl1xJ8G/AvisT1Z7fyxJfaURG7tNriPlRU2VXAQqKQ+MkWEyDI2iebtMfqvvd5Y4rRoAFhCA=="}],"memo":""},"metadata":{"timestamp":"1733836193"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"500000ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d4PDQGClZ11UjrZAZCkmH84OHn+4UE9pzyl5WRv/TKdNO9cp2LRaLTUxgZlB68K9QECNM2hvd9ifXwldv5BzDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50000ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GqnAJL0YSOcFtFumUd7HVyXLcmXwzRkKtFesWC4K2IukcRxUFq46ofOLn5D0DxxrC4fQGRopnlsVEw7GV7O+Ag=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteGreen","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IC2+zOKLy2Daisqp8jjvx3Gjp0nSyAgyA+dW1AkHG5FIpeahPydd1I+OPR/c6CCs8qmF+NtawH0xsVM13F1IBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50000ugnot","pkg_path":"gno.land/r/mat1jamarjanov1c/home","func":"VoteRed","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ypl+1qCFj338+QL088lcCbhVyKgcXMerVqkJ/b04TLJP7gXnLkCoqRDAguoRPfYPtcfSSHcajjWi0mumKVCvCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50000ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hiAOeA0m4eynJWjfQTOvZWOIjO8SEOLmxWQe4Ohe6PgKbZTGDuMI1fcvWYeWghpX+79wtDwhbQui240YwagwAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q6Z+6vem4gFKmYSMHvOhw77Ps+N5IYRMfaFv+ru05brhL2OgXz/k1+dchWX2+saZ4a/5nY2Ji3mbMyI0gY/UDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q6Z+6vem4gFKmYSMHvOhw77Ps+N5IYRMfaFv+ru05brhL2OgXz/k1+dchWX2+saZ4a/5nY2Ji3mbMyI0gY/UDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50ugnot","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteClassic","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tsaif0aMkJWIfKgH4BZ/cyAlKfvhLhRBg5cbPnca5DTbZnJlmLQmIeKt1adc9MFx1H407wNf6v1mPG/YdR4zCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733838001"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"50ugnot","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteMinimal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qb1r7W8PW4IpHGaOZGlc5bor6s6M2qbHYu5ODY8weMpgbW5uaoOU9QUaNTI0giV1UEvREsGFsH5IyHP3NdMNDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1733916784"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ej0qca5ptsw9kfr64ey8jvfy9eacga6mpj2z0y","send":"5ugnot","pkg_path":"gno.land/r/mat1jamarjanovic/home","func":"VoteBlue","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GMzUP2fsyp5FrQXkgk93DJ9MPQW0eLUxWe1zq6JaydlLmg2beoERiRMi4mVHCqkdkCMWFtLuGf9yfgKhkh5hCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1enky04sfc4nush29g4ht97x45slz8h3t2peaqc","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","hi ","Var Meta"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XKli5GwI1x0McyL1TOuaVtbVzMrO8qNuSZouH/kQqUvdnc3SclUn9iYR17SZv/doerKHQ2aq/5MLmBR/oPGdDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"CheckHashUpload","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EHu8nGzSixyEPJF1jSUMvtSI3HMSxBQG2EPXCToI6Gu7lhRkkfPK+uonaODs0o2n5TkedommJrjv5cBMQgsWAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"PickWinner1","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XpYAzEAwYFnf9sl1gUuYrqVCmE8Q5bjKlKxdXL+KUyBN6A5eR1RH5R8Tv4LzVNp8c1TmV4o2llYaMdw3A3RgCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fe8nsykt96cpcgfxkgq3997976xrnjthrxahp3","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterCode","args":["EeoVgGAwDN"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oNxgYNaDSXLWFvtgMhdqU8ebUusfi+38SDblfAgPREVtiic7Fc2yYlLGJ3TJDCAmNV2w4LQJIZkTYM2P+2sPAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"PostMeme","args":["data:image/jpeg;base64,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dp7+Fcui+enicBERCoREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAFSSRkMfG9zWxtHtOfgAe8kKq61fbKO6RhlZSQVbR0bPGHgfFTHVlsGNag2s6V00HfXLxTvI/wBFSDtn58ORWIVG227393ZaR0jW1nFybWV36uHPvwP9pSVR6YtFuk7SltVFTv8A2ooGtPyCubTw5wADjAIW8qtvTXlbZsKVOK2yQsdnO0TW7w7U2p4LTSHrRWz2jjvaeE8veSsw0rsX0rpSZk0VtZV1LR/yqsPaSF3eR3D3BZzzwMkn1VeI5VZ3s56RWEVdeT20OLQ1owxoYO8NGM+viq94OASPFVJyVRabeXkwNvIJycoiKCNwiIgCIiAIiIAiIgCIigBERTnTAyUI4hz6jofD0UfbRdilj1/FJOIW0F0Ay2rgaGknwf4j5qQkHes0K86MlKBeM3TacTWPTOqtVbCNR09m1MH1unpncEcwJIa0nHEw+AzktPjywtl6OeOrpIamF7JYZWh7HsHJzTzafeF17zZKLUNDLQ3KnjqqSXGWSDOB3kHuOMcx4Lo6R0yNIWdlriqH1NLC9/1d0n22xlxIafTK27mtSuIKSWGZ6041VzY1L2nfnJ+KIucaiQPM5IyfEoRkjPPHcURCQTk5KHn15jwPREQGHbTtmlBtJsZpZ2COuiGaWrH2on92T4E9fipu3DN+Sr0xeYtje1mrkjukUwp7Reah2RJkhrYZXnx+6/v6FYDjPyUd7YtlkO0OzdpTObT3mjaDSzB/CTjOG+8967XDr3s32VTbodS0uuRqEtj2sieXtycHmcEd6+i80dwHf+nZW0eyTatVfU7pTltJa7vVnHakHhbDM49/QNcevQ+K9KoXGQEnI8ivVNemx6NPOqPoiIqkhERAEREAREQHkjTjNNH5tXMrjS/8njH7oXI9Svnp4kIiIVYREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREARETIyEREepOQiIhAREQBERAEREAREQBERAEREAREQBERAG+ycj5pnPU5PiepRFBOWERFJUIiISEREAVeIgEAkZ8FREeu5GNckF7xGyh13pHapssLm3Ok/WVLIxzkYPv9ebhj3hbk/Rn78cu0Ggp9letq8yamo4+G119QedXE0YETiTzc0A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","1710759506"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SfNoQo8rB7Thp8vy+J1FPLb8Y8kA4N3vogVStu4ZdIUoxrcLtd4sL/6r88yLacw7RMJTuN9UHHXqhur5/O60DQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000004"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PUXCXML2HRHxF44NOmBWxKuPQwWS2vudJHn+y5eUObG4XrQAzjPiD0eApwlm9THDca5Wke4TITzUHI2ldjOJBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NvTrduN5keJDt0vsZ91xy9Ufvr7weohakdPSLB375UHI+36Zlv1qb6mjImmdzLVvIZx/4N0TsXuZdGtQFWysBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NvTrduN5keJDt0vsZ91xy9Ufvr7weohakdPSLB375UHI+36Zlv1qb6mjImmdzLVvIZx/4N0TsXuZdGtQFWysBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"PostMeme","args":["data:image/jpeg;base64,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dp7+Fcui+enicBERCoREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAFSSRkMfG9zWxtHtOfgAe8kKq61fbKO6RhlZSQVbR0bPGHgfFTHVlsGNag2s6V00HfXLxTvI/wBFSDtn58ORWIVG227393ZaR0jW1nFybWV36uHPvwP9pSVR6YtFuk7SltVFTv8A2ooGtPyCubTw5wADjAIW8qtvTXlbZsKVOK2yQsdnO0TW7w7U2p4LTSHrRWz2jjvaeE8veSsw0rsX0rpSZk0VtZV1LR/yqsPaSF3eR3D3BZzzwMkn1VeI5VZ3s56RWEVdeT20OLQ1owxoYO8NGM+viq94OASPFVJyVRabeXkwNvIJycoiKCNwiIgCIiAIiIAiIgCIigBERTnTAyUI4hz6jofD0UfbRdilj1/FJOIW0F0Ay2rgaGknwf4j5qQkHes0K86MlKBeM3TacTWPTOqtVbCNR09m1MH1unpncEcwJIa0nHEw+AzktPjywtl6OeOrpIamF7JYZWh7HsHJzTzafeF17zZKLUNDLQ3KnjqqSXGWSDOB3kHuOMcx4Lo6R0yNIWdlriqH1NLC9/1d0n22xlxIafTK27mtSuIKSWGZ6041VzY1L2nfnJ+KIucaiQPM5IyfEoRkjPPHcURCQTk5KHn15jwPREQGHbTtmlBtJsZpZ2COuiGaWrH2on92T4E9fipu3DN+Sr0xeYtje1mrkjukUwp7Reah2RJkhrYZXnx+6/v6FYDjPyUd7YtlkO0OzdpTObT3mjaDSzB/CTjOG+8967XDr3s32VTbodS0uuRqEtj2sieXtycHmcEd6+i80dwHf+nZW0eyTatVfU7pTltJa7vVnHakHhbDM49/QNcevQ+K9KoXGQEnI8ivVNemx6NPOqPoiIqkhERAEREAREQHkjTjNNH5tXMrjS/8njH7oXI9Svnp4kIiIVYREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREARETIyEREepOQiIhAREQBERAEREAREQBERAEREAREQBERAG+ycj5pnPU5PiepRFBOWERFJUIiISEREAVeIgEAkZ8FREeu5GNckF7xGyh13pHapssLm3Ok/WVLIxzkYPv9ebhj3hbk/Rn78cu0Ggp9letq8yamo4+G119QedXE0YETiTzc0A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","1710899208"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ailePj1Ezfh5+T8peoRn3UULU4h1k0G9rmrWh/p2yCrP9OUvCSFUC2PRW096Sqf4+FLRxhEpZrxVa2TPhsazCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ffzxha57dh0qgv9ma5v393ur0zexfvp6lsjpae","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YFi76batWMhCBsKQ93vH13YP8JLImJiq2NaLkdTyFe3Hzv3Us9mqvRrbbRwzJozmlyXSImovPjhKDLki5QYpDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","piupiu","@piux2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QkOOc/oFXdtLMk2FZ43+vlzCJcMZfK5yLIHNVBef6G1edX6NKQ1HTWViZG/pDHAv1LqWzH4sMjpO1qrNdkVlAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","piupiu","@piux2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QkOOc/oFXdtLMk2FZ43+vlzCJcMZfK5yLIHNVBef6G1edX6NKQ1HTWViZG/pDHAv1LqWzH4sMjpO1qrNdkVlAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","piupiu","@piux2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QkOOc/oFXdtLMk2FZ43+vlzCJcMZfK5yLIHNVBef6G1edX6NKQ1HTWViZG/pDHAv1LqWzH4sMjpO1qrNdkVlAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","piupiu","@piux2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QkOOc/oFXdtLMk2FZ43+vlzCJcMZfK5yLIHNVBef6G1edX6NKQ1HTWViZG/pDHAv1LqWzH4sMjpO1qrNdkVlAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","send":"","pkg_path":"gno.land/r/demo/microblog","func":"NewPost","args":["once in a previous life he had lived in a hut * now and then he stops and eats at the pizza hut"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wCBdfA421cyemB/rQoJoGCsML8S2Y6Hc6TK50QxKmZNCFMDazliuXJWdyq94Ipm0mK50mjx0Stk491gC12owCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","send":"","pkg_path":"gno.land/r/demo/tamagotchi","func":"Reset","args":["GOAT \"CHI\""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8vkacFyv4kGu7NYfJMWOPL+c32yGcnc2Uog8RsOtX9MOnwzYBZP6z3FUIOYZ9yDm67nKnYNziRgBfsAko8T2Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","reggaesoul",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zp4dNUhg426L3fJ4dbnFlrE27+PjywjUSnIGYhywIPdmQx7hXgWcqRk2l+R7YuDuVdAw4Xuo9dVAEdS9o7j6AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fjh9y7ausp27dqsdq0qrcsnmgvwm6829v2au7d","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","reggaesoul",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QheWmPF8M1aF2Kqxi0j+MzCM6edJlR51N2wuTwuG6kWoMXLDfdNmRfFWK3SBuZOWGPZuc8kB2rFQJXq8rCrCDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fjnx2elgpac3fwec30369tyctagr36eh560csc","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterUsername","args":["ltzmaxwell"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JGvETBqL+WrSIMnYbR+raL5L+yfw3kZMTFPwBQOS4VlllioUkoop5rwenyIL4IOMjVX4OKyqnmbBS2hFG4zkAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1fjnx2elgpac3fwec30369tyctagr36eh560csc","send":"","pkg_path":"gno.land/r/whisky/goraffle","func":"Register","args":["Hk5tCsDkba"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q7lWorrNFZt0qbPKVQfubDJPG8n7Kg4L3nH9ITeswyuK3Mws0E6eLZuHuVWfiSulXSxtdWc8bPUDl3JPkSIJCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gdgft676z3egdk4r3x09hure94yywrutu5awuz","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"spTAUQCrezB9gWpCGP2hGlhQpyjZtDedQV6Gdvh0Hkh4PurKJZOJySM99onQVNyRKHsMvCVTWYkrTxl3/6DyAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/foo20","func":"Approve","args":["g1x3mflwf9jte0cwrkjkvzt98v78wpvwxkcsnr3k","10000000"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4wFvJiCFnLi+E9NNc9lH56uexqnYdD++dIBXfJfBARCWmtcCm9XUHm2NRTInNwSP2Rh7nGvg0RokSgEgjYIlBQ=="}],"memo":""},"metadata":{"timestamp":"1735910263"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/foo20","func":"Approve","args":["g1yj8fpmhnmjhsu7cdsk3g70xgq4fq7ll3548j60","10000000"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+gqbJK+zlgG8HFGDhR/uSkJslMWB3yZZZ/QxNnFeg3KeZ7ofTRzrhMg2HzZRcmea+KMH5e3jEjvEe3CWiNgLAQ=="}],"memo":""},"metadata":{"timestamp":"1735910037"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/foo20","func":"Faucet","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3iu2Z3C/EjJXm7bLQCEHUQBVBF+RVxaUCWhnOQydMKrBmCMGGZMnCuryMdTNywdPxkVNQSCRFp/o4m2bTFyJDQ=="}],"memo":""},"metadata":{"timestamp":"1735909902"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v0","func":"CreateMonthly","args":["","Core Member Monthly","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1000000","-1"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AYbhG9SVHSfjDqXXDrA6HN6QptDROybiHg8w+r5C9TlL1BBi3KwqEDL1zbWmScODIcZa2qwYU15yfzBoOLptAg=="}],"memo":""},"metadata":{"timestamp":"1735660001"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v0","func":"CreateMonthly","args":["","Core Member Monthly","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1000000","-1"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AYbhG9SVHSfjDqXXDrA6HN6QptDROybiHg8w+r5C9TlL1BBi3KwqEDL1zbWmScODIcZa2qwYU15yfzBoOLptAg=="}],"memo":""},"metadata":{"timestamp":"1735660357"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v1","func":"CreateMonthly","args":["","Core Member Monthly","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1000000","-1"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xn36jEhTYlvuZcDCmBRoaJf47y07ToY6yWpzzXycEJV5iqgq4w6QPdXGvud2ysdbtkXPCx6+ydWJpgNNwCv9CA=="}],"memo":""},"metadata":{"timestamp":"1735660367"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v1","func":"CreateMonthly","args":["","Core Member Monthly","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1000000","-1"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xn36jEhTYlvuZcDCmBRoaJf47y07ToY6yWpzzXycEJV5iqgq4w6QPdXGvud2ysdbtkXPCx6+ydWJpgNNwCv9CA=="}],"memo":""},"metadata":{"timestamp":"1735767185"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v2","func":"CreateMonthlyContinuous","args":["","Junior Salary Monthly","g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","100000","/grc20/gno.land/r/demo/foo20"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pBbFGkLJYyb3BrxMvn4npiRP7WY1Riy3WkFvQUTTXVSlvXcwgD0iP+IR+qMPY+Yke5dUh4ihsyy/xXoAW0W8AA=="}],"memo":""},"metadata":{"timestamp":"1735910163"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v2","func":"CreateMonthlyContinuous","args":["","Senior Salary Monthly","g1manfred47kzduec920z88wfr64ylksmdcedlf5","500000","/grc20/gno.land/r/demo/foo20"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vYrq058K1pB19Eqsp7KJ5aB4No7zR2HQuvtNwvvvBrkDtxbJf1dGDgFThzMC3qFfMIXs20ubi8QGSEe0RE8mDw=="}],"memo":""},"metadata":{"timestamp":"1735910112"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v2","func":"FundGRC20Reg","args":["g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","","gno.land/r/demo/foo20","-1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3YD/9IRLX9I29piF2O81uETntHjsvH7rCnJvxNvMzz2GNfIX4iUsUvRzCMrwgV4UxReeTDfvQJeLtfgCxjvDw=="}],"memo":""},"metadata":{"timestamp":"1735910072"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"","pkg_path":"gno.land/r/demo/payrolls/v2","func":"FundGRC20Reg","args":["g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","","gno.land/r/demo/foo20","-1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/3YD/9IRLX9I29piF2O81uETntHjsvH7rCnJvxNvMzz2GNfIX4iUsUvRzCMrwgV4UxReeTDfvQJeLtfgCxjvDw=="}],"memo":""},"metadata":{"timestamp":"1735910283"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"10000000ugnot","pkg_path":"gno.land/r/demo/payrolls/v1","func":"Fund","args":["",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yWLy9zWbIjXQpWPdtn4GXvQHLWXp86OqgM8Z6S+epam+LaFGnmyiuY3dHydhfUX92zzKeSePjKh1arNedkVICA=="}],"memo":""},"metadata":{"timestamp":"1735660568"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1gu65xcyzndu2gpc5ly4c8ug6dqufkp8ay4wapj","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","gnorman",""]}],"fee":{"gas_wanted":"6000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LqJwHt/MASelc4jth6p3T0ccQtmAjW5H35SX3yizXBlRrCxyJuoRspRse+Jb3J/LPkyQpK+bcfNEZHyeTciLAw=="}],"memo":""},"metadata":{"timestamp":"1735659921"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/demo/boards","func":"GetBoardIDFromName","args":["manfred"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fQ2H1WRZcfqNkTIHWtSVF16Dql8VWFNMOGwHBaj4YBUeBwZdT1X7UQHhxqf3YKK9DPLPSWubFFV4gwRjjI5GDw=="}],"memo":""},"metadata":{"timestamp":"1734436317"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/demo/boards","func":"GetBoardIDFromName","args":["testboard"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K2zE43/GlWSuEe2UzkKvn/ZcB5fYVoPipwePEmyeeU/9eOHRAKRL2DMNNNdqnNmvfR99w2DFv/hLjBJchATkBA=="}],"memo":""},"metadata":{"timestamp":"1734436266"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByAddress","args":["g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CO+HBAVy6OyIunRht60zR7xRP+vNy6FlA1NY6IWbtirRFVlCVwRLHOZiN0lqcETSClVO5P+3m5bBbPwYdAr5BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OFSNFzhhB7lCQSRn34VaZs9Fk81yFKTrxq7DhHDwqh52VeYq7ZD8+xAT/K7Fn0D++5K9kuW2DNZA3Qmc2D62CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"SubmitGeneralProposal","args":["sub","Example general proposal","Some description ...","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LLy6JNZ367YOclvkNu4UqKFGYyFpvgixm3MhdBeg6FUVRa1faXr3Shuu+tcLk3Uab+MpkjT4uNNQIGGi3fK8CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"SubmitNewSubDAOCreationProposal","args":["main","Create a documentation DAO","","docs","Documentation","","g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl,\ng1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iCjdR+u9y2vdJeFxkquOzmdzArTJAh2vq6c3xeAJyfFfvzZvbyYce8Mg+92a61uQ2hsmDAnf2T1JdhhaIOZdBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"SubmitNewSubDAOCreationProposal","args":["main","Create an example sub DAO","","sub","Sub DAO","Foobar","g1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl,\ng1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6x5HGHJY55WBQi/bFmMIn8UsFuYzxh0HDjVHxoGyrxkBcqmW1AjfM5Yc6iAvVvEZQ6efc6VjjMixDg5FIqjHDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b86sKVmkquapB8oEOaST4fcpNxsBSKwKg+n/UX6OoRowzfwPW4juYt09Z/1PpPMgpV/6DLLkb5jPzo7Bl3WICA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnAtTArCJDTcfJIzYvWZIQ3h5V6mIjYfc29SIsbKawsJ05cqiWTWu3uyeuhfBSKWztplaal/dONfTa54/vnsDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"GetInitialDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qU13AYvuirpRC96fel+aEyd5BaAeP3Qh/0v7XuDEEgDGjwLvlgVon6ENv0VvzpryfU+415Van1ZSpxTr0sXCAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"GetState","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XhNctqOiJxuEsApojhhzbqMkvJHMq0AnPus+K2gHmvQCW15IGpHu6yVJWtVgsN+nijWuIvTQS81sdNN/QIR+CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"SubmitDAOLockingProposal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JEaRaZcSfXoqzpLl6TJfhydy/rZgHUIUhx1/7cYV6uWNRhG1OWFpQkjnfOS3VChCX5oI6uJUWypMCN5vund8DQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"SubmitGeneralProposal","args":["euler","Proposing New Tutorials ","I'm proposing to create a new tutorials section in \"Gno.me\"","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nRPHpRwUfn1oM+wemLE2krOBhRIIzx0EX9lb3k8t4K5aHjem7wcpkDX8e1F5VS/1UgArzfr25akREHqpLeGoBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["3","false","Because is Tuesday",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rx6Xw/+JxtcbrltswxqqiDAx8mWTAY+tyBvF0rxd2ghzH5jBAp9qar/biHiHilgYA6m5qMwNZBmfaTaP/okoBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p/Zy29JDH2Chtipowm/Fzm+tS05GkRv+NLsiafP7r/TG7fJm2DoKev2kqOIcAYaOKSvc4sgXJJI/iOfLb0ASBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p/Zy29JDH2Chtipowm/Fzm+tS05GkRv+NLsiafP7r/TG7fJm2DoKev2kqOIcAYaOKSvc4sgXJJI/iOfLb0ASBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["2","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5GL8ccHP/lq7T169kLlqbeNSU/ndjjPNfM3ctGQ4uL2OxjPCJVwJj1D9UFlk9qmayqI2Fd3J5A47OrApYxm8CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"SubmitGeneralProposal","args":["docs","Add a Tutorials Section","Add a new tutorials section to the official documentation","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Js+ORp5u0zvlf3BIAbmmEPZfRBjpyvv7tvuerm6gjvQnpz7OoPv4I14s1SwzjDr4icIPyvBz0QaE8wQMTbgDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"SubmitNewSubDAOCreationProposal","args":["main","Create a documentation DAO","","docs","Documentation","Gnomes are writing...","g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5,\ng1e5hud66rs7ye4zgeqmqvwfhurs2mnf408hdqcl"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nzH3QPBGN3OdJHkCPSa3eIDve0rIqXwJ5wiPuKfWM1xVw5U+QVYRcxyLsAHbASzKOydyOLbfGH/omZj5MZmsBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7X+NTQsYmwyzoJ/yF1TqeqKO1juX977KXiQkhhrSk7bRVJDYEtZe0El5C7KYBu1LRFcB8Q3oSd5lNaL29PsCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7Rz8HrJVo63TYkRP19mppMTe4Z72+HvhZOwUS8qzPW4BcxbTzG5QizPZSLmUjUVRp81ecma9JBYvSCqLe8O7Cg=="}],"memo":""},"metadata":{"timestamp":"1734453945"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7Rz8HrJVo63TYkRP19mppMTe4Z72+HvhZOwUS8qzPW4BcxbTzG5QizPZSLmUjUVRp81ecma9JBYvSCqLe8O7Cg=="}],"memo":""},"metadata":{"timestamp":"1734513698"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ECNDmFcpLS5egFqa2KjMMuaR6iEdNcZfoF/fi7wbcH9o8fSSxuDduAmvHWgOGWY9TYt66TMeCGVfeZgpmJmwBA=="}],"memo":""},"metadata":{"timestamp":"1734513773"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ECNDmFcpLS5egFqa2KjMMuaR6iEdNcZfoF/fi7wbcH9o8fSSxuDduAmvHWgOGWY9TYt66TMeCGVfeZgpmJmwBA=="}],"memo":""},"metadata":{"timestamp":"1734514105"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"doW7UneVIlXPJ9Ii/U0mPwUa2fo7ko8FJzjwzVPcEPqjpprpdaxj4iaNENvvyk0C5qtotwDkkYBQGJN7q1h/DA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734363695"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"doW7UneVIlXPJ9Ii/U0mPwUa2fo7ko8FJzjwzVPcEPqjpprpdaxj4iaNENvvyk0C5qtotwDkkYBQGJN7q1h/DA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734364082"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10010000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/ELHNzTvPQTNPgfi88EQoQq4qsH0IkMUnAakfhnWqhmuI8+og3N4EWPt2c3PX0Qv2u4sLe6By9YdvjVAlxX2DA=="}],"memo":""},"metadata":{"timestamp":"1734513793"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10100000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kBCSyxMM7ZDD3EeNc41bhoC9xRJI5mIRpGyssJiTwlikGt33MG1MCUROmqxy7otT1BufuQf3QbHcmVBLOTjjDg=="}],"memo":""},"metadata":{"timestamp":"1734513808"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"11000000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q3RZhzYODGeiYDN39oAp/jk85DgIc4qDQuckRhXnP/ZH0H62/jUCTE6Zv9n0bqeAiI85iPaiJqQcb/uhq5puBA=="}],"memo":""},"metadata":{"timestamp":"1734513828"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"12000000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OxRhLM3/E4S/tK5e0BaLWsVUrGel4dcyQIkonOEz0AtEwaCnrPac407fSVXTO02o6Gd1hisKCj4E+x4NSjl7Bg=="}],"memo":""},"metadata":{"timestamp":"1734513858"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PasAQZa9m+dQ6U5gpYKDhyJ16zm5YRxs4NJmEvO4QMG4/iqt8vlfuFKEBTdt2kjSDixLljT1qEe7Jg+GcrF/Dw=="}],"memo":""},"metadata":{"timestamp":"1734514135"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PasAQZa9m+dQ6U5gpYKDhyJ16zm5YRxs4NJmEvO4QMG4/iqt8vlfuFKEBTdt2kjSDixLljT1qEe7Jg+GcrF/Dw=="}],"memo":""},"metadata":{"timestamp":"1734544428"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PasAQZa9m+dQ6U5gpYKDhyJ16zm5YRxs4NJmEvO4QMG4/iqt8vlfuFKEBTdt2kjSDixLljT1qEe7Jg+GcrF/Dw=="}],"memo":""},"metadata":{"timestamp":"1734628647"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"GetDAO","args":["council"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EaQgeA0f5DuAst6Cm7aRBq9fp88iH/CtF+Ecg9j28gEwzUFE46xBr+DE/vYLxUkdDBfp/Ig0wWleXt0DQdDtDQ=="}],"memo":""},"metadata":{"timestamp":"1734435624"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"GetProposal","args":["1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fyQnINTzE487L/ZlpnptP8rdMWcG27CQaRDfVuwATO+3K9XawcBudvdkDHff3SvCP3FVAreTpdXZNiwlSTBmAQ=="}],"memo":""},"metadata":{"timestamp":"1734437150"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"GetProposal","args":["1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/1A+KRRf0uewUbyOAxYNGRgWZoW8EKBjfpvzgBswQlotpOSRvW747OkqtsjWHwCe3ntyY0hGvjEhBiWvBihBBw=="}],"memo":""},"metadata":{"timestamp":"1734437034"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dCIa0M22uWuWraC+gZZhklqGVXcqRBKzeTOKfpmYeUuZxitcjAgIZ7LOSaJ8WXSUuMBX5Ttp35Q659345aUGDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734112467"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["10","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Mf4/epzhgVrnBYVjrfeTWMx3R5U+Cx3zlKBt13IzEFwoFn2wj2RtFQLT8KBF6ETLAeo5fhh2yRVuWNujVLHeBA=="}],"memo":""},"metadata":{"timestamp":"1734538818"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["10","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1200000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"70whhpjW/a8HSeXNEpKyxWh+a8B7EdqOZ/Qhj0ph3th9cwEq5hfpYpls5EzkYnIkImlvPaoUPLHVfvbrieeTDw=="}],"memo":""},"metadata":{"timestamp":"1734538838"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["10","true","",""]}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NOcnvmpPcRiVamzKR49vqPiPLwZu72EooXuOJVKwO0PRthDNpe/f/rvBSBvNstgneNigN1LtplnghuuOslHECA=="}],"memo":""},"metadata":{"timestamp":"1734538874"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["11","true","",""]}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OnMUPINtjTD3Bu19B6sH0pJeB0/9PGhc4Zp68GS+NRkDxzgkXPa+/KLcu8qjVHIf6IboPRoH3qEZTKIJXrOQBQ=="}],"memo":""},"metadata":{"timestamp":"1734620538"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["2","false","This is a duplication of proposal #1",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CaIlvw8K78rla2xrlqE525LgcpSrVSL5ERTbTPD+xykoOvbBErWeuYBT3vxN96GB6QO1+5fUHkQODQl6WPqHCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734363414"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["3","false","This is a duplication of proposal #1",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6/DzLQmMcYzGCEOgq5jAdAyhYHp6u35cPtbJwuPKQg+l7OzGxhaxl8ABEip8g8AIZggUdLJjHQSe9f1yHiVjCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734363570"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["4","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OTkhOazQq9ltM33qG9K/h/YbQgnJWO7dvnDkUkS7YQ9n9nAD2G71RAHI1EF7hEIePvVi4MzJK5xwEKtblkj4Dw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361270"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["5","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"biKpoNu2KpY34ad5PA/1iGIjgEfuTJWdCV5k4qouYltmkuspk3PfRVtveN9bZBSrt3NAiA5QV8W0A0UqNZj/Bg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361340"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["6","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WTsRo119/+o/qIPIBLN2jqBdZNu0OE07f0bZncB0U80zcczBVBup5fFmnJ6rHyqMMBWFg9/rIyOAit7SdtQbCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734364338"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["7","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZQDEgGmwRO5MGqPAwqDPktHkjq1Ad5eNyAMmMMSyAmo1gWGDym/sAbB/9koAVF2sSvOWiSAscRBgo91CPhUYAw=="}],"memo":""},"metadata":{"timestamp":"1734437301"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["7","true","",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ivk+nCuMHDNMZ7yKw24hBFGvGeQPUpBBsj0cRDOghuNwN6d+CHTmH/A4/tS3zUqZjmq3YBrF2dD59CzBon8SAA=="}],"memo":""},"metadata":{"timestamp":"1734437275"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["8","false","This proposal is a duplication of #7",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vYMOlIn0AYz+SenPRKDPzzL+NfOowKGofeSzlXdqoAmK/7stgF5WIU9SVqD2mQMZhZ/dDMkl3dwncuWhE3j1Aw=="}],"memo":""},"metadata":{"timestamp":"1734437366"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["9","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P3b2QbBy235UV2XslrFlIRqw+LEX1wiEgo0O0wOjXM80eSxGNL5nNAZdJmrw0bQHOpubXjqq854QviZYmFxACg=="}],"memo":""},"metadata":{"timestamp":"1734437401"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add Initial Editors","Adds editors to be able to manage News","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GbI7DJM7d64aX78fb2x/2GZTW4QzsXvLgbPCEggsYtg0rku84mD0k8/23OY2usgbZzenoRN1UjqgLGlXlkgoBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734538281"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add Initial Editors","Adds editors to be able to manage News","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vasCttlX8W656e2NJnHmhLjQ6/lSsvoufLuxgKh+H9yiuhh3DX69NnDHX8z2PkigCdra6BF9i6l5JTsyB6NwCw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734538316"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitEditorsModificationProposal","args":["Add Initial Editors","Adds editors to be able to manage News","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2",""]}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AOJTsW8rm4kJKtV4HxnKleecF8Q0kSGH1h2zBlCOMIIBYCyDjWe9hc1hJB/xOPvLSHhiWYZr+2iwuffBm0JbDQ=="}],"memo":""},"metadata":{"timestamp":"1734538758"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials","func":"URL","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gfIAyyW3FZqBNPBkq+Ni/o6P3bV+YRRuwXKMkUyJ+jFPtmozWJ+6DjGSXq9rGCELi+OxmPkGbZ7moUXZGxxpDg=="}],"memo":""},"metadata":{"timestamp":"1734436382"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"GetTutorialsBlog","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7eNZMfZ0Bx7k39vCXMx9ZUIQRdtl3PD4eIGgIfq23FmcF2b8VMl6IK4ejkXlWs+Pvdxf9dErWfkjJ4LDYxgDCA=="}],"memo":""},"metadata":{"timestamp":"1734436507"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4jB7EucBAg230Do9n0tMMCvjB9YxRsDk2yBQZAMJQzJ17V/ctJv4UX2ZcvT4SSYleIY0pkmljSnXr/Tzx5I2Dw=="}],"memo":""},"metadata":{"timestamp":"1734620182"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"20000000","gas_fee":"2000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XMRpLfkU7nYUv8ADXA0WmZrJvPaMZdrAAzfT4y3g0INbSHr6wFuYeTbaNJzPhi/BooGezYJE2DferPMo7SQnBw=="}],"memo":""},"metadata":{"timestamp":"1734620217"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"30000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hUAurzmx1R9Lo3EER2TXMakGhmLSuZy426ovqpv1LtkQede/1tCpO0rfGflxav1eHf6vUXV4vf9/1rgkjnW6Bw=="}],"memo":""},"metadata":{"timestamp":"1734620347"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (1/2)","","write-a-dao-smart-contract-part-1","Write a DAO Smart Contract - Part 1","51a299c76bc68625b52b15c67e4f30586e40642e0c3743acefabc592f7ee973b","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-1/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland gno dao","false"]}],"fee":{"gas_wanted":"20000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bvQ2kKD2tTItdW+novfksA1kRtE1+1LbC6vrjuEYUy4Pv+LOygWUdchadB0WlOzAwfjnqojiNgTZNipGDn5TBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734426878"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (1/2)","","write-a-dao-smart-contract-part-1","Write a DAO Smart Contract - Part 1","51a299c76bc68625b52b15c67e4f30586e40642e0c3743acefabc592f7ee973b","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-1/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland gno dao","false"]}],"fee":{"gas_wanted":"40000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCWLVJS0ukTsNlEeO8qKs2AE1y2uuJQfJNNZ8DC9caOeLlIpNwGsadfMY1Op8o6k71FxWkldCSSsPuvC1giNBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734426948"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (1/2)","","write-a-dao-smart-contract-part-1","Write a DAO Smart Contract - Part 1","51a299c76bc68625b52b15c67e4f30586e40642e0c3743acefabc592f7ee973b","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-1/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland, gno, dao","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8pbekig6sgDiGnfDR8i/+KDkHHHVPkykySJXIp/xUV/msz7hqGsnN4+ErtLblUdVEwE3UjMaHpuleRb5CpRHBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734426752"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (1/2)","","write-a-dao-smart-contract-part-1","Write a DAO Smart Contract - Part 1","51a299c76bc68625b52b15c67e4f30586e40642e0c3743acefabc592f7ee973b","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-1/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland, gno, dao","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8pbekig6sgDiGnfDR8i/+KDkHHHVPkykySJXIp/xUV/msz7hqGsnN4+ErtLblUdVEwE3UjMaHpuleRb5CpRHBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734426782"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (1/2)","","write-a-dao-smart-contract-part-1","Write a DAO Smart Contract - Part 1","51a299c76bc68625b52b15c67e4f30586e40642e0c3743acefabc592f7ee973b","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-1/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland, gno, dao","false"]}],"fee":{"gas_wanted":"10100000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FESqtPixZCW8xmz2Ks482pVkrT5m0qLqHsGmkVQF/Ebt9m5IJTKo9C7yNHU7XlJMPRzQ6E7XNPIQZEHeJmojCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734426813"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (1/2)","","write-a-dao-smart-contract-part-1","Write a DAO Smart Contract - Part 1","51a299c76bc68625b52b15c67e4f30586e40642e0c3743acefabc592f7ee973b","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-1/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland, gno, dao","false"]}],"fee":{"gas_wanted":"13000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"q+Tau5R+wdaJ+CtomN4MJlOJH5biV+Jaax0/nwPwJ+8QKTEVKG+F4d/jTuVXkmAhgc1/LhRp5x0Nf/jDqL4vBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734426838"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["New Tutorial: Write a DAO Smart Contract (2/2)","","write-a-dao-smart-contract-part-2","Write a DAO Smart Contract - Part 2","bbcaa8344f64062b170e65e883b4abc5aa3e01697a65900db4c87c9dbc3e9244","https://github.com/NewTendermint/gno.me/blob/5a8b8952b3c57f92c19ed6158e1039e914008cf6/proposals/tutorials/write-a-dao-smart-contract-part-2/index.md","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","","gnoland gno dao","false"]}],"fee":{"gas_wanted":"40000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XVA8eqHCymH3zOr6mzT/6uOir1aNvk1z711CCo+h6F/TqEd0a2tVx8STUF7mo1qUzHa6G99UXIUlvkE6WzC9CQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734427089"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"TutorialExists","args":["x"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+2wGqS6oy1dFJ0tZoq1fvKnoBtjyqkrhThbsA+5yRXnlZkkOnqfv9tojd7xTRlnGAighp5+L0xMAEo0sMKK8CA=="}],"memo":""},"metadata":{"timestamp":"1734436758"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/kjRsgBGcWSZR9fMJFHIluz7+7w9rHKCFO9b8QaK8nRTuQYSYrS+xM+Hh++hA72wgwwGI0dPqRitx1/6B0ckBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/jeronimoalbi2/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TJb5xW+PQapGTNtto6nEwTC6yQez09cgXlb937MvfMLABvlg7i1QSlznI++FKm2lW1KyxmrbZrTH8s1bvN/gCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/jeronimoalbi2/testpoll","func":"Vote","args":["true","false","false","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"igtuEu9ykgK7zWhod86C6+L6JYFiF4952s8OA5w/kdR0Xuly2uJt6JxBIFIx5lmvhqaCLvMiBE3pwFqEBh56Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/moul/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3Q2M08OASjBllq27tSjgRMIv4/+iDbGhwTjUxIjfygHvSNjI1YBaHgsFW40jJA9c2B2uqr6O2n1VDm/HZ6qICg=="}],"memo":""},"metadata":{"timestamp":"1734435543"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Name","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TlF33rqMrixw2re/8ERvBRZzw4Qe7OsevaSMZZz/+Ig+e2O4eqIqnHDy3BLZKIARaJw/Wpdqb1cvLz+HSdcACQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Render","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SX3Mg02LMAL1rCw0H+wedWjMr25FPw93iwPS0vkkBFjviwti/ioZgbMnfC0aHUy4c1BSh+xlr5qccRNzSWsoAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"Render","args":["\"s\""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WmGyrJ61b1Q9mxBMEyWngNBZstLxh8zPyuFeS5AWVfvpotoAPg0ovTxiOjyCbg5tRrs6v8lXQTReOVof7JqfCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","pkg_path":"gno.land/r/test321/hello","func":"SetName","args":["Foo"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WJI6XhC4/6bxquN1g4ltbU3lkfBKibcL8Hd3DSi8gZVtf2HS9IFzpzAn6iBO/DHNZaCp2V3z6gbITBLgShaVBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1hymmy4vm9vtwruvkvq6ac2nfpnzyzz9jr84k9t","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ncszn2jcm4uzpx56N075UpkbQCUJqltH5wjQ1NqsdxHX7372MqTydutskr6pzp794bhZt0xLM4SvPeccOQ3IBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/haystack","func":"Add","args":["189aaab35953d1d34973e1195e5090b3d3f91d85746b87378666379d5e0499c8257f3993183bda99f2c9832b5e2c99bd95b3b82916c3bf49fd1d316d3372e14b18f82f6c32bd8e9ceeb80e40b6dd5d65341a1cb1389bd00c413dc215a99f50d1a4898b83f28da9b782cf5cc38e086f620e5c0590242ba764b7c28352bc6d78b743d1521e8416a8d979d1243b7a7afde05ca110eb6e4e6535ac553131cb88eea6fb9593d639d8249566c9db76c37c666ba6ce72ddf4a970136cce60952e6c183c"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FqMLYhqFzlar2Hg1QsqFTxBo1Nnpx9l7s1XgBJn7R7sIxpIHIUpjONvng3LXzT5MnZbv+Ht2jqpLPv0aNmP9Cw=="}],"memo":""},"metadata":{"timestamp":"1731017997"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/haystack","func":"Add","args":["4de224b20a5246111b02b4d4ebfcb13a02ec215a7575222c5a1cef77ab4788d83e760ed2f308ccd73bb241b606836db4d9f9f5e4d910aef8a04be3e66bd7247bb708f78ea22249257740a6fcf0eea65043e18d4e8fd816646813218c63614fdf8d87305adda3043795c1731175122f833a29de358c6987336ba40e713be03e6b8a5bbf21326f9f27ddafda0eee3493389dafae67df9fd701d1533b14f56692f152d43c2f29f50f73b30824c4decc8ae0c77bb3af07a854380dbfd6ae3dfaef40"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Vinq7P5F6BUsdd1ccuE2RTGaiyvL4v4+FuJWPHe1r17+iwucNfVsQSeu6Xu5EYE/9XJ3spUhVzTkgiKEGh3iDg=="}],"memo":""},"metadata":{"timestamp":"1730936345"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/haystack","func":"Add","args":["5d82091003a6749b46a96c38b2597ca96e9b0b272594249099dcf2ade188346679ca753999661820dad7beb351559c89a275ed4935a82245fda290906670ec7535b0b856dfccadd62e5f5399892455d2b524724ffdef8e58be03e9da4762c6ab582ce91c29a9e26ea9cc38b66953fdc425ad37baeb12c712e049ae6d456e682b6b63eea74ebf7a9d506ba486d08c9c54c5161d38a7fbc5fcbb1cdac370682ad6a59579167fd1aa1cd1fc109660a7eba36775d6b06058d72aa57debe63d0144b8"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Q+PlY7y7T1EhaO3czQ/ZKodagtNqkTHff0AJKD1QeRSctRNdLaOFQoaF7WaxPGZlLMaQ2il979oDMPhMOX0CCA=="}],"memo":""},"metadata":{"timestamp":"1731078738"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/haystack","func":"Get","args":["4de224b20a5246111b02b4d4ebfcb13a02ec215a7575222c5a1cef77ab4788d8"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ptVqgCubLbCq2F9G/B8cH9nEH4zGNjQGSO2k2A+2vTxeXucidwxizNaWnt8A5qxWoysBWhQIqWGdSeK0Sv6YDA=="}],"memo":""},"metadata":{"timestamp":"1730936676"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/haystack","func":"Get","args":["4de224b20a5246111b02b4d4ebfcb13a02ec215a7575222c5a1cef77ab4788d8"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ptVqgCubLbCq2F9G/B8cH9nEH4zGNjQGSO2k2A+2vTxeXucidwxizNaWnt8A5qxWoysBWhQIqWGdSeK0Sv6YDA=="}],"memo":""},"metadata":{"timestamp":"1731016440"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/userbook","func":"GetSignupsInRange","args":["1","50"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nDueVExmYUAudn0vbYILI+KfAKB/B9R0tFadiXgpS3ECTpbxW8T3QAtIO6/tmSVgVdtSuJoT9+HzAqfOKcKRDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/KCrB8eD1Ywxk+NYg/KBIjwgsbCBFCQXrJ5YgAAcq4cQGtkO9EH1yUgBWE/iqIkfxcEfRHgkhC7JWfhar5oiBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","n2p5","https://github.com/n2p5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"65HlEKsssL6OUmdxbnH57Y/Rh3QcKJHmW4WMwzkaxhpr5eTmH80MuK1ygnivVZ4Sg72vUXr9aZAzEHnKTBa+DQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731953878"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","n2p5","https://github.com/n2p5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z3/b481i3Jf0hT5+UWcRU6jUl3LDM5CsjJMp4E8I1sA21FYGTnnyTXkr5ludO7QKgDQry+5Jjp3YQRlHjsj2BA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731958969"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","n2p5","https://github.com/np25"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0RLvN+rfV9zklVvX35+7XCiPg9yXKZ8ad9Km9nKkmY4XE2H+cahbcwZ88/KZfV1h/q8m3iAosOZtVuPZja72BQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731959280"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["moul","n2p5","https://github.com/n2p5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kTxAAfn/4R+1C8g9LijSrGCixFl7/G5P77WCuiJeBbcefTF853Px6uXS44MxmszwpdNhC+4deGdkdUAH25KqCQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731959004"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/n2p5/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M7gGS8gTteJ4P9G16I3QyfoTfSnKHQtHMoyXBSLoUo6DuKi1b64jWbU80QoYKzHX/4URVu7CVZWy63Xt1Ee9AQ=="}],"memo":""},"metadata":{"timestamp":"1732279475"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"AddAdmin","args":["g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7XgOjLI/d/VEFF6YN9Kwr9CfVYWRFlVZZn+w4PeIw+e0tjA4xzopWeBtX3qoSXVsFbZgxrVuMZTuC54ZTPUVDg=="}],"memo":""},"metadata":{"timestamp":"1732686201"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"AddBackupOwner","args":["g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HNwvkZLxW+gazbuSou1Kg/wfB/xxPOvM5rS4yHkTkPJo3a66csWmQIO/ygLpdHy8egHzBE6ukXuRkEAvVSGXBw=="}],"memo":""},"metadata":{"timestamp":"1732686392"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"AddBackupOwner","args":["g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tZy7IFdNyBxALG3wZX2ytMjyrYbTYOwkLMnjm9VbKHyPCBgSLgpVbt2tv7nHem/5ycVAw2OKbIvj2QB5TwYJDg=="}],"memo":""},"metadata":{"timestamp":"1732278139"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"AddBackupOwner","args":["g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tZy7IFdNyBxALG3wZX2ytMjyrYbTYOwkLMnjm9VbKHyPCBgSLgpVbt2tv7nHem/5ycVAw2OKbIvj2QB5TwYJDg=="}],"memo":""},"metadata":{"timestamp":"1732686873"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"AddBackupOwner","args":["g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tZy7IFdNyBxALG3wZX2ytMjyrYbTYOwkLMnjm9VbKHyPCBgSLgpVbt2tv7nHem/5ycVAw2OKbIvj2QB5TwYJDg=="}],"memo":""},"metadata":{"timestamp":"1732687647"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"ClaimOwnership","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cw9kgSxYwD/LMlSHIOhNjgxo1dGDFmCEAbeC6hhZFyiee+ogFNstAJME5SyO8lhgjSVhC+8wmKg8eq1h+D/fAw=="}],"memo":""},"metadata":{"timestamp":"1732686783"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"ClaimOwnership","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cw9kgSxYwD/LMlSHIOhNjgxo1dGDFmCEAbeC6hhZFyiee+ogFNstAJME5SyO8lhgjSVhC+8wmKg8eq1h+D/fAw=="}],"memo":""},"metadata":{"timestamp":"1732687240"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"ClaimOwnership","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Cw9kgSxYwD/LMlSHIOhNjgxo1dGDFmCEAbeC6hhZFyiee+ogFNstAJME5SyO8lhgjSVhC+8wmKg8eq1h+D/fAw=="}],"memo":""},"metadata":{"timestamp":"1732687722"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/config","func":"RemoveAdmin","args":["g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4SU5Iw54ZbwWXZ6lxCEr6uwXEI14tW6b39oHmX33FGR8yuTZc9/LN+8j3AavnpfhAbJo+VDZAZXjr828UBhHDQ=="}],"memo":""},"metadata":{"timestamp":"1732687325"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/haystack","func":"Add","args":["5d82091003a6749b46a96c38b2597ca96e9b0b272594249099dcf2ade188346679ca753999661820dad7beb351559c89a275ed4935a82245fda290906670ec7535b0b856dfccadd62e5f5399892455d2b524724ffdef8e58be03e9da4762c6ab582ce91c29a9e26ea9cc38b66953fdc425ad37baeb12c712e049ae6d456e682b6b63eea74ebf7a9d506ba486d08c9c54c5161d38a7fbc5fcbb1cdac370682ad6a59579167fd1aa1cd1fc109660a7eba36775d6b06058d72aa57debe63d0144b8"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gxVIrCMBcvYOECAjvEvr6AgwPXv9b14hDYb0C+XCwp3YaxTQBV1PmxPrNDqimvvyy8zNpNTfsBPJY7dcgzGRCA=="}],"memo":""},"metadata":{"timestamp":"1731964054"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688134"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688149"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688174"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688355"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688385"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,R0lGODlhyADIAPdOAFJENDQyKysmC0MxC1tMRGxiVUM7NUk5KCwxKzQyJTszLCotJLR6ayYmE2VVSkM7O3RpXcualUQzHIdXN3xwZzszJMONhXVsY2I8FjMrFKx0ZYN1bJZlTHVRMnVGDSsrHMyfoqNrXDwzG7N8eLl8c7yUi2lJNZlpViwyMqxyXKl2aplsYzsxC6uDfLyDaKWZmMSLeGtZZDMtMriYliwtMZVZKMqqqaWcpHdZRrZuJ5aDfaFcGqpuSZlhOoplVrWuwYp7g4tQFKqJh6WSjZuYooZrZc6Tb7d3W8iCPn56grx8XEM0JJySjeC6nzQrC6t6dLmGezUxFLanqCwqBa2hnZeNk8q5uDsxEyskAph3dRwbAhYRAIFMD7l7axIMAMmWiqilqiwxJTw0M8F9Tl5NYJWMiystJCQlDHxyazwtChwhAjMtGzsxBXdZWYZsdTotBSQjAUM1NNW2rCsqFN2hbsSZlbWMjLuywsycm6uOkbSssm5qc6tlIx0bATUxHEQ0IzMmAtapkYV6dI2CfBwVADMuJDMnC7extbyLhMWdoJqUmHtzeCsrFINfZIyFhiUlCzMuLEM1LLSJg9Cfodqqhl9gWzUqBLqEc9GomiIcAdbDwbJtZ7awxjUzM49hPdCOUjs0M8N7ON2nebGcohYbAdGdijY2OdGdlbuFeruLhIZ6dTUqA820sad7dqV/gLl7bCUlDDMuI8yJS9SUVzQzM9bJybqEdN7Ctdm2p05JUjosBSIcAkM1K8K3wcmWi7Wuu9mcZjYxFDInCx0VAI6Ad5J6g3RFDUM2NDMmAzQxHBshAiMcAsucm0Q0JLu5xsSZluPPyMm8v9atmeTTzSQjAiorHLmeocmVh41sbDMsGxYSANLAvhwbAScpFLu1t66ptNvDuiMcAZSMi42LlDs0NDktBSwxJoSEirCnqyUjAbVzTXtnWhEMAK2Ab5N/izQqBDImA7Klo8W/xIZ6dI9zddLExjImAuG2lCUjAsSYlM2/wuG/qdyzmenh36R0Z5+gnCH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCABOACwAAAAAyADIAAAI/wCdCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LNiW4s2ebqOXXpOzVafwoiZo7l46RT5+MUKIUl5Lbp03kiqJDmM6nUKFy7NiRo3EOHgyM/F0Kd69hxIkVL97MGXIgfpOPgpNLB0njUEgSc+7BeQfrHJ8oyQk9FJyou4lD4UVienGNGj2CB+fA4QQPHkeMgKYNlJJpx9A3A+8xIciE6548FUeu5NIX5j8paf/m/LtGkBoTgnuqbh17jxA8UsS3AL6n8xyhfFv3wN/D9f/9YUeccfIxYEN9Oo1mFxI7/NZffx38N0GAE3gS3AkhhHBCCqnMhmBN04DDjyifKBZEEA8+2EEH/vXXnoTDaXDghzOFOGJvDU6YYoAtXuefhP/1cIIvNM4kIomq7YAifyymOCGQ2VEHJAczFglTYHchMQYP5i25Y3UVFheCBmSSecJ61/VQpZUt9RNXlvkpiaJ1EQbJQQgMXJJKKr706UsqI5yZZglswjSiYVpq1sOAGaaggQoqQGFBHcxEYOmlvljwhKCejFDoS00MdlhmKaSQ5yWXQKEqFKnUYamrl57/YqkvUKiwnicqfOoSlqkhpoQSLlwCA6slWNDnpRF8cekkzDAbgQWBZteKri7xc1gORygBg7AwWGCsL1+Eq6ylskbQ7CToRuBLCxpw4MkKdVDLkhGJIYdqqpd4a0G4fY6L7CnNggACM1+kosIJxc0g70pGNHZEsNwKq6+fx4ab7CnoCszMnwdr18LCKsGgGGT3ogpDKt1S3K+yX2A8icZ/BkqcECCnBMNipkJxL8QT8wvuuC8L/HIdJTzRLgcf13zSCDg/ofMlLkAMQ8p+ftFnwAJr/CwUGpxwgiRKn3TJe46+8krUl5BwL9WZgmspMwMzU+nWKhTHTNgm1dGoBmej/0oCCSO8ojaffep78p57etsnoCdMi3dJNmgQgqMaMMAAmRpiuMkrknoL6OVkqtACFJIgPoIGYD9eEhQbVi45ccV5PSbnnadyyQgMkJBKCYjz/sQKd6tOEjNlFr/JCLeXmacFln5Rwqq9lyB9C08IX1Idll/+BAMjdA86mctfWrQGm6gwghCSlFDHuqlbL5INUOBuuQqSI4wh+LqPy3v3kqRP6caqYoX7RAIO23VvBPTTwAoeVTnLcc4X5qrDDPo0A7jFzReSGIEF1jRAjoDjT6oawRMOqDP5qQ0KvnCV3P6XtYFFgE/mqkUHOzINOQTiFAUbwdPUlrbcvUJPKbyU3P8s6EJkMUOGM9wIK8J1w1Soym9/i+Lf+KTCSskta3NT1xdAkMSNgOMUdtnLtqBmNim+gnupYJ654hYwuUVgfRDkYBctAkYjhGtbUYua4AQXRSq+0Y1wA2QdBhkBOc6RIoEgjBGMgEcXPCx3JDDbGfU0MSGuUILrC94hMSIHI9iFkXmUZBQZkIIQbGKK+3qbGwc5A/UJcJMZASMdvmABqLlgj5G03CaWZywhOutSgzQkLCfyJrtcwmyo+qEDf5hKc8lqiMCcQR2sMEyNBMICU4MBMiMZLKlZDJrmsqKlKljNjfgiYsk8m9kgRrhwImsSb5yBMMs5ETmcgh/8sF0Pz5j/PVRJqk8laJs7Z/BKenKEGU9zgRJAabZTsQpxx2KlhwzqxRLYEgb8+AIzbMBRG0gTVhRj5TwpSpEZPMFsMDgFFGYQDym49KXWqJQvpEdTZlCTpBqxQeAsBwUh6IAYxFCFKgTBBB1IwlXOC2hA68AKeeA0I3IowRlVkIpWAHUDgtgAGoghiCEslabqq4MNrODUp16kDlBgwBNKIIksCEKoghDEIFSRvhQSTXqDBAErWIFEs1KEFbZjQCpasIINbECoqihDGVoZ0JnitQ563etN/SoRVjzvEr5oRWGxKtdBvMCySpVeEDe61xccgrITmYHOvtCKuGZVEEAowwukANbH//7RBoeowgaYgNqIxAN5EWjFYQXB1UEMggkvEIITqQhSsf5AETGIwSCk0FuH2OAJlwgEYeMK1+O+oAW7o9irCHqHKsSADASggA6qyxBWSAIK/JDEZrl73HhIYmVWexVTfwAEMuSCAABwgCpewF6FqPYUhDUsZwcxBGscNVniMpcvrGEFPSwiFwDIcIYFnIUZWKPABalDCzK7Wa0KwhFMsMYMzJWsn0WgBGMFwx7IoGEAGAAAGDABDnyQBfTNYLK9tUH6NGtYQaBBrkywQQmQNa6Z2uAOYIhBLjD8AAMcI8MHAIAJHICDRvhgBS2QBEFRG1VfqKCwrkWyDYSALPHZlP8TN4hBhqtsgDob4ADNyDIGMLCiRqxgBa2QhDUKSlI5WIrICkayNQKqRWVh8MnP9W+G6/yAY9Q5zweQQJa13IEdf3kFQrBGPEhqgz+tIAuGRQMaDrvYNGYqXIMVKyd+UAUMA+ABuLbyASLRjF4PYAASkACOTbCiTu+4CDpQWDlZUQdAZQHVqqYAGgZRhjwIwVj60uE0Z50EKhsA18c4RiTG7etgA3vTe86xCYi9Dh0MYZi1YMUELdAKn1JbtvFIbum8BQMSPEEIUuAEJ/SwB1t/u9J1FnczJCACEfwa2MHW9AEmvuktb6AMH+5iLVwqiRacGc1CLQMThBBmC8SPBAz/aMUM9CBwPSSBxre2c50jwXAWXEEELHj4wyXw62Ys4RgVd0ARykDdDtbiEFLwaCvIdGoIOL0IG8iC09IWOklIgeWzdoR/cV3pcPO6GSK4QjmuQPY0LCENv06D2SuQgApUQAGYzjEOVKEI68mDFfFghUtn0IoNnU8VOphrFloxApSX6QkrF/isibD1B5jC0goPu9jHLoIlLKECV2ABCyrvhwr02udLoDgACFAAQTyuFiqWhBBssFdrtABDG3xBPG7wgsGTqVRkEjTWBR5lKiPcAOOuQNjLUY7NN1z4YU8D2yswgMsrYNzijkSdCVCGsMm7BC1oRQtYzwqla+AJdRjC/w2YwIQs0G8TuG9BHaTwA8XDmcZcrzS5ez38Kyif7QlouNodDmwFkIMc4QYK5MB1F1BWC2NZQqBZgMZ9SFd7oMYEiqAIRXV+GpACKpAHYLB7s1YFjVdl5MZrwpcGwdBwN+cHCZANaSACaDcAvRYJ5AAK4XYM8ZcL1bcwDtYKHfMuTEVWA6cI7vYCNxCEOoCDFRgCLRAPetB+ikdwjReD5JZ5mTeCEiCCGWAJVZiCnXd5kXAMABhuM+gI8mIFrtcxxTYkrGAFh8B7swUGbCgFCYg7GqByV+d+tAZzueZ1YBcM5TCCfiACFRAMwbAKlmAJwdCHnud5kcB14UZpDwAAe/9QdGxiBVYwA4S1Hh2wZx3gA5IQCKyQhrOmB2x4A2xYBq3wBJAiCS2lgYw3ZzInbseAeTYnAc3gdoAoiBmQAdlggiKwhTLodZZ2cA+QC6pQKIcwAwl4JiuCAcHGZ62wUUkocD8AimwIBqRoiqjIhrv3A90Wc3YGeZGAeSIoi2FnCYAACBkQDLjYdgpgZTEYg1Z2cARQBWxiWYTFARPQAesmeh2wAiVgDS6FddIIBjegA+bXAiyVge6nB3JGZwmHhyLgB2ngB3k4iPuHjibIi113eTEYfwRAYDQihh23AhyAj3wGAME2cR1wAiWgdy71A+0nkFLggK0ge9jofquYa///F24KkAAJUAgmKHzBEAVBCYiAmAGdB3kAqAB+4AcbWWkPQACm9yHgYA0JuAKecIk4pow8p2mZyFRSEA8Z6JKgqAcvQJB58ALT+IxZlwu51pBcqABulwCdB5RLmQAjiI7ZUAG/GG4VcJSQt5GL8CEeRVgncI8YkGEmcAA6JwEmsAKsZwNgmYFJqAd6YG1nCYRp6ZJxNmnApwAxSA47yZOi6QfBkAb5JwLNQI7B4Jl1Bpo8WQG8yIUy+ADDWB9CpllXaQIAkGkZpnPABgA+wAx6F5kZeAh6IAVVwAR5kAfkB4ERSASKsAeT9plW9n8BYIKiyZPZkIttJwLm6AcKYAqm//CChaCO4QaaCqAAuBYD9eF6f3aVGDBxA4BjPPdr5nYAniBP8TB72EiZUqBY5KdYggABDuAA0dV15ymbnUAOARAAPBkAChAAFZANlrAKuDihAmCU/hcAndCTogmhbFcI0vcABQCJf+FeHWOYJrmMijkA/AdxHWCQLHUDilAGQSgFNyAIF0ABFAABBUAApAcBaEABDpBwB/d/EcqgCZCeEeoH2XCLltCHt5gBbleeolkIECqXfpABIjCbNBgaVLkCyIiPu/lrOPZrm6d2ZMeYgTYDeUAMBdBuG/ACQ3ABMeB0FHBYOiByZaAKBQAAi/gA/0cOnZCeDaqOTkqOGQAIKf8oAFbodnkplw/qoFv6dvAIhn9hDX1niTlWpr/ZogPAAoNIdvMJaCuAjzhwautADH2qA3uqWGWgA6qABhBAALsWbuO5oJ3QoLwKoQHwpOUICFaYAVgACMHQl9o5B5OqANsJm4wYmH+RBUWAA+t2mCZwmLzZosXHBmSXeTl3rZm2j8+Wp6sWbQVQoABmYweQnpaWq4fqoBG6pCeYARk6BbcoAMXqh6I5B+nIk/wKm16Ia1FZFkNQBA5wrRoWnxSHAQ9XDpZQDmwAscTHBmyQc/NZoOuQpz+qYQRQoBAgbRRQAF1HDqbQCSbboDvJqztJrMF6i/hQrBXgoNuZoRnQk4v/agkAG3+YWhYvcLDxuZugepIPxwIUC7ERW7GTF7HzWQB5mqeHxaoiF6CqAAGAegziOZ4NCgko66DaGazluAovS6UBUAjVIADV4JNPmqG7CICOJ4PQSrAOgK2ZVp+h+msUywITa7SCWJppQKrpNavEcFzNWQbGtQEhC2CRkJ4ki7W76quH+qRYUKxfiw8CgJ1+MAdz4AeFQLbn2Hn+B4BsewF/0bPYepL1SbR3W5ossAoSWw7GmnljBwClNwhHBrIF8KPpupufl7j/l6snC6GQ0LWRG6z4OgdYeoIC8KT0mqGmqZcL6o7s6Raku5uyuHA6Z3M3p3nEN7EsAIgTm2Wk/5en6dqxBQABO9qjPyp9g1qyDcqgAggKMmAOT7oKgCC5kauhhSAAAjAH2SAAj3CLS+mC/8eOBgABf3EDf6q7C0e3m0d2eFsOAzB5xIe3GXAFrMsGEuAATbsBg6ADzckEiqUKFEAArbmghNqrJtsJNCCzXhus2cCT1UC5/ku5GcC/CTCooCuDEABkYiEFcpZpC0y33UqxFBuqE7y9lhAFxXcApTdtggvCskqrG9sMW7i4oLurJgsJkCADY5sN9Vusw2uCv/oIMzylNRwAhDrAXFjAp8Wzf5ppECeLVzCCDrytmscGq9C9rCuUx0oAaAC4PHquubuiPLeFuep/isuhAf8ACbuati+LBfjwsi+cAHOAr8U6pebIq4O6xgUovXHbotV7fJKHuiygxBHLulV4i8I6euUrCOPrAOUrpCFbpFx4tc+XpL06thmwCvRbjpCMBTWbAAKAD16LBfsrxmjMoP/3AKLrFnlwiUEbbA2Xh5k3AEUbseXAupYwBdwsrCLQyhSgClALq31KpOxoCq2ppBEar3JZoV/8y8ZqgsMcuZActjG7qzg8gGjwF6rwyb5JgmFnxHlLfLwcBbfIzeUgAn4czqoQoIRrZOe6m3ppAOiMpKH5rte5y4AQyZFcrGI8B5EbycuAD5YgAgmQwoNaqAZQm2VhDetwmDyXZ+YWwdb/LKpRoMQQy8vEBwjcvApRcAAQYLgDergaBsdX4KK9O57umgAgmgAfkLb1iw/LsAzAzJOF0AAi3Qd9ULkQyqDJvKvryNJkIQUvXaaaJgFzHHaom804nc30GwXcbK+rcAWyK6S5S74+GtHSJ569e8IoG6FPGgz4OgUcDczZEAAI0AB9sAx9oAZToKyKrLVoDNYA8LZlUQTYap9qvdbYjMQ67bDdzLosQABBnaeC4KqwamRUW2dXS7KgubVNermVXM9UHQxMndha3QfA7AeK3NX/B9YGUAC85RY6ANPAFqpXcLTY3NkQ+7C2uAo9XQ4A4HRvBcIPLcWIO8DjSbImjLK7/6q591rPYXvYAdANWo0Fq/DCHKrF7duhAWBpBLCzZFEGewaqRCuxzD2xwWCOSgwI9DsFUWAJANCjA+qj6ZppDWfSHLq4V9u4TO2g5lAI/Kq/Uk3VNbvIC6AGL2uOZxsAC4ClaOzh711nGxCtmZ12eNvZUcC627uoK47T9GuhdY0Gg9yxBfqjBtAJSl2yOq7IDx4A5lANizoFWMDYlMvbJjsHxGyF2WC8Qt6+5EC2CbCIBeAWVqAKAGbfrbvlBF2hU+Df7lyOU2AJpD3UWNXBsmq4BOB4VyueutrjXr0ADdAAAgAIU90HlHvYDArSq4COH1DJGcrU/7cAeh5uBEAMZf8hBTRukjpHxNt7yoLo08Hw5bzs3/U7BX7QyoCnWGlOoAQgwG6uAAva5icLCdVQyY/A2IuND6vA2w6q5Pv7Aadur4C4pJBA6DmJa808FnnQCLrJwHXbujft1ryM3itOvFgQCeVruAae5eNYszru5pPdoI3boNVA58Ns5FgwBepNySOdofob6EzNrNWQzBT9ANE7FmWAA4fpm46+vRbKy/Iu7/5drAIwBVcQvtS7aUAKpAaQ1Cidyw1aCHKeoVKN5/gA2WPbAFNNxpGcubyaANeezFxX5WShAwcLAL8GsQOQtw87BTpdofRu6e+8CrIbshCwDkcmVFpVq71rsjxe7eP/ngDd0A36qwZqgOePYA7mgAAIYA4MP9KR/AhYysidQOfV8LngFo9k8czxiaY5xwYdD+m8bNOVDvJR8MUvywKy+8fEEHhzhQZ67X86XvadINm5bA7d8AiPgPNDXw0I0AkokNg5L9WPUA0pbLJCzpNqbGk1KBZZAM0Pd7fYLO/Ep8Qs7sstPAXlQNpD6qMOAGDN0PEiyKHRLp4CP/BXzfBareECgKVyT/d33g3mQANnLwP5e9g3TA4UDYDpHhZloJstKvXFx7qGj8QOm80tXL+A0PgFgAa7iZqbpmGJe/l5z/NGv6tlKwCqPtKPjdgIIOe5jQ+kb/pnb7aWH+0mG4xN/98BnlrT1uzWwkrsRQnGYu7LGUDaIVu+qjakqlYA/57CPF6yPh/3JosCC3DqFf7tCwAQkGQg6KamTx81j+YsQBAAUoNuhTp1MmXq2DFy5B6QSeLE40eQIUWOJFnS5EmUKUlKMgFAwoABV2AOYFNuFSCcqyzpBDTl5k0sU7D0FJCBQIENGwYNIraBAgQHBA4kmGgKRUUZkGggQEBxIsFsApaNXYZPQCGuCBo06LNMwKMp1QrNFWAugCmvGcmZekBgkErAgQUPJtyi5cuZAyyVs5mz3E5LO3HixCIAEJbKfghAcAqhAAAAzSTYnJKNaicZEzuh4AoJBUVICKpVE4BvWf8ffPjmmIMUe0EDNcsazCE+J+ycBAE67dWbka8gwtGlTxecpQOAxCwYM15VDtCqVVEygP+ewedloT2NQqAQWoQICRIOHACtQIFq/J24TmRtbsEcsnLDYo5qAjDwt+AgWmDBbhZE4Kr8OgFFIwios/BCDJ14wQHsZmJjAO3A8+6mx8C76TLKLhvKks3QKOBFCDyLEQICyFGtotWw2q8TAwtp4JGycgMkm0KSK6Qag/BpYLZullwAkqoqOsaU5h64IEMsswQsns9eYoEFEE38aSibfprsO8rI3CwpVQTZwLMCopoqABRQSK2q1BAwh6sAzCmkttwSEqCaBQJIwEd8cKv/TIAmIQnAxokyuqjKArS09FKRpKAAgwNgqomN7hizBKcyg+mOvMnMLKfFFwkA4AARLJkCEEuS21O51ALg6lYEEkggg0dsw21QBLQyx5xqDlIjN4gaKPRG58g5xgCMDCBgCEyzvXRTl0BcjDE2Rp3ssQwEsOzEyTADZNUCIABABJlEaOYAA1711S4EZKCBPwQWmO1Yc+awLUlnaTC434IOQugRBXVdrrnmpgWgDG0rxlIHEzB49QAJTOjgugFO1CmDncQET4Ch1ITAxXZhjLEAAhTw1UAcv/IPOWS7eUQNns1iyOCtgOuDkGELObYhKB/OSAG9+trAYqgtFCLjVzHw/yGVL1zwBIOXfgrGVJMzSBkfQERwgLMN3ETDs6hC82Pmu/Cqs05kP/CvmmDxEbTQ3mj4TWHcjOuzq6QpopIcpvmyMmrGo2OCaqu/4IeSL1LoAIMBcLIkimCiELenVYa6TIAKzqagVfcisyyDbLLZkzWu6pThWAZ/1BufRx6ZLTm/GyAaId0ILCSAO6NsjqIHgGh8+cAk6cDjEySnhBIjtDYhZPAiiwJVnMwd3Q8H2oU1DfjmBe2At/17EHardAW4gbJyF2CObpCjql/4iV4WnwwyIJSr1FAJL83hC8WYd0CUrEAFXwgEPxxICRgwoAeY4x55yGOuosxPBO2iQPjaJf8jzwAgARUYnH5a8xo93e1HEKFf/RKQwr/przItXBAN7LQcHFZFI9BBYA9JYgM5NIEfpzhF1hjAAw9gjjKoMtkc3mKWBJxtA2iY4lPi5CoR9K8ar9MVV7ayK3/RDyLdaBKhFnCsbtyGEPt7BBm3aA4UHKwreJmIDPiiCh/mMSRyCMQpjGAEGLyCASmYAKcylxOTnWoKUxAAIzXDHld1iwW02gnrtogAq9jwiwhrEhk76UmG6KlJhNjCsh7BqAYtKJT+4k0O+XIlPepRDl+AgRJgAINL5FIDlxtAOTBjou9YEBDmmkP/zBajSKThS/KiDwAM4Ac/ZOMDsUtLWn6jM0b/0Y9Q3djiAlijM1IC75TD8ddsCEWo4anmAQ+oVCx9KIcIHuEILrgEDFIBBRV0oFOhCyZ5MPNL0eHkmHB60QdjRAARdO6SCNiK387YpDHO4QNbTMDRuLKAgpCSaLkxi3EKcUZzZGMBc4FSRfiSC0W4E4E2SAUDBpkCDZDgEvdkwNYyF9B0oUhF6jomGi6AhqfAyVUSAE8GduOgtGzlN2sZzr8+MDz/+CujhNBfbrphN4dUlDcyyEoAT+oIlTJvBiRggAZSkIIQxJQEULinTUelroAOZVaYwcdQrnA2GrmKY720ScqmkEqGLGCTGGXqWhYEiYp+1D/dGBpV19izORQp/4UP6ipXJ9KXKoR1eanQwCY0kFYNMIAEJEhFKkZwAiXqNKBA+ec/7+qZZvTPElcQQTMPUI5FxkWVoaQd/taSSv/sKapsIeUWfneQZTDMjXvqDUOzIi0CpFSzjCvBCMqqARWoYARrhQIUWnAC7KiIbDtFUWvraranECAqDvBgq64QOolGtV+qvGjtyOis+S6IuFvYQh/4S1UtmDIh1ShW37bSCQMYwIDTtZgVmHEJBggyuy69BBQu0YIVKLGudf0nh1uLhdygd21WXC9oJICZKRCIdsj6l51SaEZnrfI3SNJCYx2rP54ti5tQYuhWyJFgPDLYYnKow2hJsAmYaiC0I/+AgiRUcL3QCUhF5DXvQM8ngStcQTJCwYyC8tugPdU3zKG8aDXWoobjEuI2CAnw/pyFGqAtJ8FoELLFwCEEErziFUrm8wiY7OTr+XLDHwZxof95zAIYoBkDkA+9QPOu0A1ot2Du8WR7/EWM6sw2hKjx73IMPGZVw4ad2FdFElyhOmvLBtu9bgjS+gQ/m3aXB7iMbTgqILpydCgSKAAFTldQg3qGqJhZiHDpi+lQAo0rv61NH9jh2GUsK8c9U1KyGUqRU6c6WzYQgp+f0FnsZhfWI0jFE3xwABZggSxjacutb40FXlNgbXBiL4dAI64Uv3FBrDmYKr/Y76X+iBDsMK7/sqTds8osyKJz5EsMtI2pF5QhD3lowbefkF1xt0ASkjh3OTiKm0S5W9fwxitoFn2FEN3EEiDGHRmDW+n8ejGwAQfOFthB8KH1oc2mVNAZ6Yuahj/8Uoe4wQ0o/m0VKPkEGvhzC/TpyzW3+3Yix8JrC9AMrDejXo8GTTY4qqAG4Zc1SK0v/ppkkJvf/L+P5XmDuOkg1WhkD0K3lBVu8AIhJJ3PJ0grA7qrARPc9jb/xU2SbK1rCZwtTgZlPAD8MIVgMcqMSKVvsQD2qGqc3b9pV7tx3ewsJoXZQIaDJd2xdPcybIDvSnY1TLV7WgqqkWjRDs6t94eFgRaUvQRQ71BX/7Fhs0ze5wpfZQOyUQE/mOtHzuZ82reghQBrwVleLpaBFHARh5s+Q1ZgAhM20AhPrJ7PSmZyhjO3DKpuYSyJOkigEJ74EEryS4yOjy9Z/tvA5hej/voRkMYiAJ4ZuOZrvgCLMYbooobYi8XRPgyJBx0ghkZwgA7whNZLMiaDAg4IL/T7r3ULkqkjOahohvdaBTYAkyuQAJfwuEKTvKjaLZD6DXzQqPhBswHsPHZYGIUjHhpwCMN5gOxjQAspAyC4APbCgAnggApkgAobgcvxuGWwOYILkrYoC54BsSmAvy5ZBRbgOtAYgCnANYa5pBZUJXP4AOIAMYY5M/7iPP5aQ//9eYTXqRODeQ3FQTUgpI4yUIUCIAOpMIEJ6AFXCwEG8DPUOj9SUjuymEJ3wz3FCw1AGAAuTMFayx2XmzRVyjyJaiEBOLMB1CiCCycsYIi5WY0eXMA7nI4q0EM+lA8M8IAa6AG+SwEOaEIsGBooVD92Yzd3uwIToJHQGAr6Aw0MaIkBYDk14KajccEFYRKIWoudqUGCIzjjIgR8KJD8wAvFWYRTpI4bUAUyWEWYaMUJ+MMJSKLzs0VE3LT220XFI4BIsDUsWIWO2b10s8IxArPhUyVPapblg0Lna8PG6gMsSKeJUI4oeQCw2kbpOIQq+EYCQIwBwACJlEjFwAz0O0T/nLtIhNifHHukOKmAqFsFADABkqQ1ltuZ+5o8GPstlvwRNfDHf5xGhFiSPfmKq8DGB8gshZSOG/hGB1i0xIAJ8FC3NRPAm5vC25i2HCsdtomEsViWckDBTlFBvVEuf/mAS9ym+9rHtWA+ziOacNKfBnGNgiTFTniAXEjInSSMnuTDV4mPrpkMW2sLfzSuRJQ6jhKBzYiTd7yNZViFiMwc2wiSMVpGN4qx+zIsiNICmFQ7x2o3NWiAa3uNG0GwXNDJtRyMG4iBb+S6fUqTRCwum1OzZQmQW8PCz4iEbGCkqASAdBsLQxuUzHuLZjyz3GGqJmHMAeQvpNSxGqIBvLi2/7Mkg8yMDinQQ3szsTJBkcFEx09UGF08TbyCClcxgEhopvMLkkXxJPqZA9wEjshsEkZpAN1sPt6UOt3Zovy4IVNop+IkjCqIAa4DlS85EVtjN9GENtqTNnxArxl5kVyIJNDwjskwl9zZGeWqTdwkjiZZht3Uz9xIz67AjzqpCOJ8T8I4BG80OcaACRaItMuwBPpIg7GwS7+cthBzgKCKkRiAgBiIipbgGAlIg2Fyok3cGdwko4DrJPjZPPOkqiBpo/9RjdTQF4pwTwwVDEUgA9BYAphYgjQYgDSIjKikACZAg2aoxdkziNt4N/+MEQq4gDCNEwcgSb3KBrmAqNvUGf+ImI0cXYvBq0G7xJ0Ya4jlMIXiOcsfTNLA2MxcsM4KWIJAFY2XOICnkYICOEeD28jcWAaSe4qgEtOXWbw4cby5yLzCahYy2kR+7NHGdMwpZBgyUw06RJ495VPAGMIYUK8C+Ck9vICj8AgmAAAajTqQG7kpaAYVnZEZiQErchmE8pWPwtRGui/vPEzbGZoa/J34cZbYMMjKrIi5Q9VLKQMJsIREKbhbBZTKiIRdZY8wDdMLGFdfixEHOIAK8BXZoI1FGhQM2tQze0k5bQsuTQhnUQ6roCOTegBtpFZLEYRilL1nEzmzOIACGDExHVeFTdgL8AxY8YM9YZDicCKWZBT/9vtUnMMdgwiOY0QLs8QRA0BIf9USRD3HNlQzDzQLATCAXmOPhR1XnxrXl3mXdA2unElMsGs2HzXPwnPG21AIazQcbDMAOhtZLIkHAhBMNVqz9aurR8CCA9jVcH3ZhU2vZqjZF9tKw4LBODXPmyOaNISfCEUOwzGpkC1ao8WQMniACjCXqGvaQsOHXJVahfU1qm1YB4iEJdAVw3Q7N1qqR/CvNZxX4dCv5ROABZCB1/CqB5CutL2QPXiAAGidtbAMluMwAYnapyBXhq1bmf0MchgIFLjEbtjETkKQDYRGtYtMZ7mvhBCs/MCsx70QMGDSBzCpilAAsXk3stHclfGp/0WAWaqNEQA4htX4omogjrcYI/hRN4yExv4qXAT4qCYRLMsynFyY3QtpyG/sXgIggwcohN3FNajFKzRYBDSIAZ9Cg5itWxq5iNXQE9roMm5qkkZVVtXNyEFZLGf1qqDT3umQgiTgzBiIgVzIhQKWXC4rtMsAgJZlX/QN3kWYYM59CgeglomQKnPJAD8Y1rc4iOeFXqKhyWJRpSjhi2kF4Oi4gSTYAxf+xhhIAjIwhUKotVybAgDYVQj+qQlOgkXYA3lj33VINIwIAIyajUKgDwOogAxIo4PA2GWNzGrgKqWiATu6io1QYekggiToYs4kgz2QYUgQm9ZyVCxw4M29gP8JXoQubmGF9akhLl6ZmY0FiYSRDLywUCMbzN8bbCOBiCPnCqAHSGEtDgx5qIJz6OLuHeBjaNuyuNygQOPfXWM2Rt/1Zd/0MgBycAiuUAAAIIDnOYBafeJn88qYHE2E6AZzUFygYdx+LeTAuANEHuBvDGMySKZaqyv0sARJBt7zXWP2/amYpQAC0GT8UAD1wgEcwByxsDH8hclpNK7+0p2usGL/9UFYFow7UAQgaOEY2AMgWIQ/nZcKaIZIqACaNVg0EARVGARHcAQgiGcgGIR5nmdiIAZBEIQLKIC+WCfeQwpiyIIieJWrTS4iSQCm8pFqqIBCeAQimQOH9oOQvV0df86FvsiFV85mjd5oju5oj/5okA5pkR5pkq6YgAAAIfkECQgATAAsOAARAHYAsQAACP8AmQgcSLCgwYMIEzK5p7Chw4cQI0qcWBAYMDp0Ll7MOKujR4ogQ4oceY9OR4uykMwCJitUjhx8+LzMMebIyJs4cwosadGky5kw+eyoQXSHUT48uuhcytThvXvAVs5yKTMU1aE1emg9uoOHi6ZgwwoMBMzqzJg5fgolupWtVh5KjIidi/OekatGh8Zc63ZCkCATtPbgwCMFDLqIQZZ0OfRvjb+QuUwIPJkL4MmDCX9NzBliSVkwGwfhQpqLh9OTK5u2HJhDCK+dYyv8/HKo6dO4T5OecNvD6AkcgvMIwUC2cYI8GT/OzRw1aQ+SJwcPQb34ceMckcB83NtEBw/GMOD/jp66fOsQqa7LZqmWO+7vHjAY022efOrBI9R3Nqn9JR/37+UW3WAnBMfBCT74cJ8K+nHGEhI/NWZeeVqdEIIKI4yAyoaoPBECB6kx2CBdJs3Skn9GDTZcChcy8IQGGmj4xRcR1PGFjV+gEkJqIZQw4lxQTXVWYV0w4MIlqVig5JI04uFkBHhEIOUXI5ww2QlP/DgXHdrFROSRG1owI40R0HjKk1CC8OQXFnw4wQk+ahmWEaHtQJwLeCIp5oxTShmlk5OAMImUZTKA4AktyDnnWjswcMmjj6KyJ5ljQolHoCBkquYXHgaXqKJNjSFUD8RFmgoql8AwaZ9OOqmpphGk/6JBgZ+CulQoo4YwAqSXoAqDqmPi6OergoIQ6xMFZmnrUjmkGCOkeIKpqphlEurqq1FaoMIJWC67FA9GcaCBCtFGmyqw1RIawSSXahrlF4ZysIK3Oh0RbgoqXFJunpfsqa6leKgJZZkWGNotvTgxkGIIr0TbxREQM+AoKpWOOWMdZdI4Y5UnCIEwThpwMNizrzCQgoXUhZCCo8AqeSoJGY4gSZIWVKnsxyPpSKqjl2yScgopaMDiyv26jMoI48osycypSLKCHTjjlAIHRMMosQY8j8CA0AxQjEcdFlxSMiqp2FGC2ZLcHLVI1KXwCtKvPCzx1iqoAKMGl3wRZR0kaP9wISqSmF3H0mvf1LbEJLjQBYsWqvBE3TDmPXAqSMssRB114FF24SO9iPWurxxx9xNHj/CExC7AoDceJaSSCuZ1gIB5CRZwLlIqqDvaxZGPnpqhxLuL+STmAburpO0UGQuDEl3wCinZJMAc/Ssk+EuompkGSijyEn1h0SwwOB8pKtGT8Mr5r6ju55/FqulkHdxDdIr3JsriAglin39k9BmWfL76rVrXqwaGh/g9JEpRWYkLqKev+52vfAwgAQNeQTGAFS9Te4udAR8SAYtYBAboC2H5zPcKoonJAhd019c0uMGGgCCBszDC+XbXBfRBMAU8OAIDYCCpYQkMYzZq4UP/vBcV5nWhC0pg3gKnV0Id5o1PrUJTmoToEBB8wQhGAGEIG0ZC6r0iVasL4MCkhDkqPgRs+qrhFxuor/M9CoCCEuOTQMAKMw7xVwtsmL6YiD6KNUlg74pSBGxgx4mkooF4Ot/WGLC7aZEpXVICQSEnUgdUtfF8QFsZyybFpiYFbJISmcEhFYenIq1sd/2qGJ+kREhQQsQGdpjeEY/IQGB5Ul11mEErXekQG5RgBCSkIfVQobpVtqqTuuTlQ2wgSrHVME/4S+UqazSjEtQhEco8Y+suMUF+pcp6ZPxCCVpXgkFmUyGJENPRjKTHXlFrSmNS0owyBb9zHsQGM3uC5yZI/z0S2HJGS7JmJG2QiCyozZ5M8CWbXNerV2Atgr/ak8tuVCY82MAGRShCFhA6kCEkwgasYIUNDnEIGwjhdBHsVZLO9sgajXQPlSiAGzjKhCG8wKaKeEFOh5CFthFtQ6kQKKHqcNELkIEADsDBIBA6BB2oYgOC2AAFyqCKLKzgBEGb2KQwJiULjDQGZMgFAAjQgXXYk6dZUMUgNrCBp1qVOCQgm8XGmEtmglWsYyUABDaQhTLwEq2qCKwqdDAIg0aQBEmaq59KkAhWDOGoBDDAAx4AgLGW1Q0t8FgheeqGwApiEIMYgh0w5CiJqutrXwApEMJaWckawAAHAAAGOoCDBP+t4AmabSFPVRFVQQz2BTY4XfNWBUXGilQVZKjsA1wLWwDEFgMmMEFti7ACIdzUgIrIghug2lYdDGEGL4LoO5tUBzvY4A562ENyAbDc1xrgGEs4xgEOsITYeqcNjdBoFoQwBORlF6q8VWsZhHChTaSPkzMSwgxYcYcbkGG9k33AMSa8hApLoL4SOAB0O8Dh6WZho4XjKVR9+1nRPg5rPJxUzVqQiENwQhGsjbCEKSyBAQygxjaWQGWh650OF2EDa6NqbwVRYjvoE5hhUhKqGGAHKfzgB0nIRS5k/F76LsHGAxDBFbB84xvHtrKydUAb+IowKgjBDWhgq28HcdMjx5X/bBYgHwNGUIdDPDkJ63XtMd4biQoPIA1YBjSXsZzh+QLABGMG8rJm0ALeshWqoTWyCib4ZhKqoMl64MQPiBDWKS93wpGowBK0DOgrpIEFgE4DoFnA6gEsIRKR+LJ0i6AKOdmACjOwQxbQkGY1D6IMQ3jcYbk5tyckQg8/0HR6xTrZ9x6jzyKogAgGcIVqozoYWr7CG64Q7UgoIAEKqMCXZ4sDCoxICkMQgh3ssAIKbCDNRP71SX93NYld2gbJ5gQn9LAIZrc31qMmdRquEIyCB8MPV0D1tqNdgQQkoAKRePaXHVDr6yRiBkJowRPsYIEVvPvjJU5b9LAmNBi1gAqZ/9a3pvfAbPf2uQLSrjbBuS2CbFO72gyH9YSfDevYFuA6uZbEtm77hBWogtcUoAAafq1x0m4NRk+YAcpV/gMwxECsr/00rENdARvTXNrZxjnMYQ0KUOx8zwYY6yKMM4O0rWAyPsBtZnVAZDSotbBwJSGMJDEDJ+u76nhmb3vFcIxwSzvmYK9AMAiO7a+PPeIKAIV70w4B2TB6BW/3zgSe0IK+gjanL0D3CkKAtfMhLepSSPkPbrCI5Db7tRNWQLj9UPMLN9wPfgiGE5yA6pqPXQETLjvaJ0uApSYmEXZowQoUZAIMAIC2J1hBFgRxgaSr1Q2jzzsDLk0Fv+97A2GNcP/WQb2ExIugwjBPgB+c8IY3LD7awN858CUbYQIIAjG3PunbO2CCymq4AyuABzPwAmhAARfwa9hHHQZmOnbQfaqnCJXQWss1Y3sWCdmGbQwHbrK3fk6AbUsQf7GnAFlXf2gwF6wgBRh3VfzXAQBQaAfQASdQB5MwA2XwAmWQU0KwAnajAa/AeS9ABWCgekCAV5K1ZzsXajWXhLYHfLDmB8LQgfA3Ye9VAXsmYw9AAOYWFreWfMvHf9F1ABJwYQdgAj7wBSL1AjdABEQABlSQNiUXdTeQeimnB1f3ekf4bAogAhd2fqIGcwrwchmQATBnhBM2dlXYbFiohbmmfBPQAc7/139h6GWz9QWBMAM4pQhgIAU3MAQa9wSSQAU3EIfI9gOK0HLOJn8wl4qiVn4VQHuiFgwCkAHZoABiQHjPVgGyN2Fi0GwAUIJNwUxuNwHNJ1sYkGM3pmMdQIk3pQiKQASpBwZEMAQDNgTU+AJoKAVEwHLMZQA6J3uGl4oWKHOpmA1OIAx+EAmnuAQP94dnZwAEsHZLwQrIJ3TMhwEZ1n9cFobPR4lUAIppmIlgcFPVSI3SOAiCAAEEAAB8xo2Q541++IHlJwK5J5FO6ARXEF/HYHatWGEf6I179o5LkX8e4gP8B4Y6Zo/5GIYdUAIgAIRgAAbNeAOKUAY0CWwzqQMb/1AACbkEp1h4kBcAXAdxChAACoB7BlcBGYAFTuAHtDiUChALfrCOsudwewYAF6ATFycEVkWSGACGA3AABHAAg4ZjGPAEUuCSYOAISfBuBggB7laA64ADBQABDnAAr+Vt4faH3kiUexkA6qd7uCcMWCAMCZCRfhkLUBkLGthwwDdZMZATZqZ8VuKIYmljlTWWOAYARdCPL5mWMRADBRCXEAAB1QdgoFUACslnoYaXDomLx+CXCWBwwZCUwpABkQcJYZAA2bCbsdBwfhkAE0ZZMfACN4FxW8lh/eeVOoZjWCZzX4kDP9iZVOUIZaADhAVa12mQFBBZRghrsgdx3vmHoP/wbbmXAR0YDIIJCMGAi4oZC9mgmJCQAAHwAbEQnJRVCcYXEk21fDjgiBjQlTgWW1j2BmzAAgPAAtW2BCagA1Twg1IAWjRpnYNwdBQAAQXgAGH5ahEHa69WfrJXduP5be6ZDcIQBQUnDIAgDBcZlQkwB3OAe9+2mwkQcccwWWTgiyFxnMPYfy14YwBgY2wwAGwwpAXKAot3ABvggA+adBZaAE7qpA4wlwh5AN45nh7KmpFHnoFoniZqCYMpDNH2cNmQAX7gnuoXlWb3XsRXcSFRBDjQfIbWlSaZYTbGagTKagjKbUhKBST1oE9KmmmmVtRJVQVgl0YYot+Zi+N5poH/2IHlOJjBoI5RmQEHlw1XIIuuaZ9XCI8gkQVtQJliOV9cVpl4WqRvYKIskGFJegh6QAWg9Ws1GauDgAao6Wwg6pMK8IGxlwCxcHDlWJtOIACDmX6xkAHCYHCyGJWRV3YyxqYUUQT8V1k1FolCWqcHaqesZnAIKgFJ2n1g8GvX+VRoYKGVgKH0FXEGYIsh6oegIAagwKu5JwxPiJ5YgAUZ4HDuuaUCUJt+kA24WHa7KGEEoGgg4Qb815XHWJkHWqRs4H55qq1bhgPWqVMXcAEXSgAYi1RzeQF02V7vNZ6IKnygEAB+2a/GKgxeOpgsGgtzYKxzMAVzkA0wCqKmMFnH/0AAzjoRbuAAzjdf0wqkLDCkQfsGQcsC7iebV1AAa3VTMVAJMXUBafaqNJmTkycGNFp2kXcM7hqivEqiKYoFU3CvQ5kNLlqvLTsHiBkAnQCitQgKxScSblAJPUutWDa0RGq0Rnu0JuoHAGChUEUBn6UDsVoGE0qrCrlnYmAKppCRoNAJa7u2I1uyfnCy9SoMs/iUj1Cvg0m2u+kHRAmw7nqzOEoRcet8zJljIhAMRiu0UWCkRrp7BRcFEuAAbgkB8QZaUmWxGBpZwNeutai4pgCyiAqb7jkH8lqvSxl5H4AF+IAPWCAAAuCi2eBw/2p2QElxIqEKcquwzCkBV9C6b/9gCUSre04QBe3XfpFKu7RKrruLsVHqpJXwXq9Vi1s7siD6nepHtvvKvPjwoiPbAM5buY8QsyyaACILlAXgVyGhA2+qsM1JcEabBgTagWSae7u3eyLgAFCbsQRQAFC7ZqBFfalJv5EXvJBLsuGmfpTLv8IQC0P5CH2wDJobve6Zfgqwtt8WCQk8Em/ao4RWtOGbt0ZKqeTrBJZgCRm8wQWABosAq9VZuHTpcrUoe1vbCU55mCS6r4JZr2SqAJCAD8vgvM0rAO/5cCQbogEQC5GQiCLRBsk5aEFLpELLAlEAu3b8BkksCASwdCGMBharkwoZbhFHv2XXCabguO/qcGX/OpuAUK/NOwVOUAFpLABhzLxhy5u/uay8egxWORKNAKeDJqQNywZRUMfsV8q7ZwlRYAlOIAIevAEdfLEc7AAY6gAAQKPuSr9rG7yJrMjGKgCA0Lz4UKINlw2PAMbOmwH0qZgON5SgIANhAAmSx8Yg8ckIy2VX0LAEOqSWYLSofMSsbJGVALWVhbFPu3SOtp1ZR7+Ju8uOS724lwFzsK/NC6kNFwvLUMmyWMa8SpQBAAqx8AEGLHk/FxLW7JVcRrRyfKekzH7he6qufAEbMFZ2h52Cu1YWape1+ACmkLjAa8iRC5tk68jOS5jyGQuPHIuy2LXZcMbzOYsG8IdvCxI6/0CZp4unUaDNwWC+Q2rK4ovHHiwIAFAJvsVbBWihGcqTBqC4HA28wXvInUCyaTzPAiDMWDC9kZcAxxyLZYqYHyDQn8uyC5DVFWAAWUgRWdDDdZunddy6BRfH7fer4isBrzxWspxXGQsAIkCLk+XUigsKhyzVYUDVzBvG/evCady8tYmY2fDVsQAJ/xwALgqcsKnDIUEFRdB8pyvB7We+BufQ4bt77kfXbnnLYxWlbvluHFuX6erXT624jhvVg72/hk3GUUmymWuOZNsADaCYKBwLZBx5nQCVS0DNEwGt15wGlnBqEmy0P32+bBDOUBilFKCQS/xZv2aQFksAkeCuTv/dth8NCvGpv8IgzPgwBSya2Psqz9E7vfJJlC37ryTrBxUAAGets21gunW6zezX3+2nzdKNbdQdW4Bbd9s9XxCntU4N2Ib811HtnlMgmMugBs7bgVKN0uZNwyj8lLH4r52wAP56AA6wwDHgw6omwT9tvrtXym9gxBeMx7RLAfPVvgnpXPMlAt393eMZ1Ygc1fpb1cislCubDfmcz/gwwPJZdi06BxBXyAtA3DM9ETrQCCgpyv8d16Ld30bspazMArR7AQdwBWDZwaNpoRAQga294P/8uOMZAGMq4cL8hJ4bAGHwAWG8DH3Qvx/QCTJgxR8gAOvZu52AAB9QATp23xH/oQP57cNswNmWAAjdfL52XHDsNwAx7lwOALivOq5RTIt+XXa/icO8arxYYNgqe+Fz0Lx9QOHv6bhuHty0COphkA0iQOAFu+g4ttCPfr51bJ4X7ARBGuPzVQAjNq4YCgB56dFqLtyd8JosW95GfuokGwYN0AfWrgYuGgYkC9wmvazjWcORAAAFoAik64g9qnCcHb6PDgjlawnHmspOYOluCYYcbOPzVX7K3teBDaJlBwksC+T1nAGxINXziecUHr30CQktG5UV4LsA/QHT+5H5GRGNYO7M+QYSzH7gfMRb3uK6ZwlXIOzBEFvuG1NOyt3K7tSP+9d0HtCPMOEHj7bv/13nRl7Pc/ABMQuVD1fIoADi2dAJxDe6EJEF0Vq3Cv3Q6i6+dVxwJ+vKbhnTfYsGUcWkqOnprh3Ysd0JdZ7qMH/k7g3ZC1Dtwgy9j/AIve3b/+yukPDksdCuk1UJIPGmxWhjqmaqbwDp4Lz0ThCIYDqXFBDTWPhuFmrL9FUByg7YH622ro6YqW7VU4D2CfABL48PZK8GfTAHC4DI3h4AkIAA0kx4xHd/E/HJPjwA7fdn4QsIeP/Tu+frGVza9Z2xVhaGV4CLsN24H531KEDozWvqMSvYxmzY+KAGavAIjw25IxvVAfDk3i5ZvUgRblz6EqzNd7/xvHf9T5jBBVDdtP9H8uZcCQTwoR/t4AEgA30+7R9g3s5LxvIZBgvA9WBM4YcNCbGNApDt/gNvxTJgdnsGEAWYDCRY0CDBIiYwHBgwgM2ANBEtvbFkCVBFJxktCZsiTISDAhcAiABQgMLJCxAKEIgUSYwpmJ1MyZwpQwaKTp3CfMDXEx+WKVMWBOgEaQHPPmrU9MEn4EMsBQEUdJIBCVKsBEQ7geIKqsISAoIOjjWIwwSAhhAbVmS7MYOTKBqFeSxgEoAEAhcoqHRAAMABERVA5cwJM6aMTgEUh2ng86ewD2EUQ0LwYWmfpI/mfEhAOLHVrURlcEX8FYAqsqmZmL3bkMXrNG0tbnQiDND/XI8OIFAAcOUAAQIHDkiQICLYlKw0lRNG0BxBAwE9seCbYikD1jBhFjTATGhZ082SEzeHRHQyVRoIApimoJpswtYD3kR5E6ztRba1a1u6ovvCgbcOAAAA4IADoIIKpKJppplQQOCoBD5ozCcsOMrmqQefw6yP77CYY7NYsgsAksRKHCzD8iIpyb2xsugAA7QgoogtQGq0SBhLnAiqo48guCAS3wqAQKW6KiFgCQUGCyAmw0xBYacPPnhEDZ+CmiObBMJI4MEGCMGsJ2EyADEWxbYCpcwAZCjzGDYBcIDFsRo5qyE2ZpwNR9yEqW0uS0QQ8r8rABiyLuAAC0axwWZa/7ATFAJYIJs5eqISnw83+2BELjekEgsBPowFK6lAiWqqxBADRYxjIjlAIDgNgk8C+W67CD/bsABKPxz9vOC/DMD6CzARjPMjOZk8IwyFBeZ45JGmHnEqygWw+2A7zJTqSbOnwvhUsQQVK7MTMbZSAID2Wi1IhxfvSuMNGy26CAv8nGDrDQn+jCQD34QrMLgKkosppwC4KmonZSvdbIEFstNuOy368HJSTj+AtNILyQyA2DNBOSYsc8sywYQDYrMVR3cBsbVC/Oi1148DHKikLkIPGDbRmL7thAYpNYM0gwUSSCBhrGKRELMtJgXP2WWY/QmfBsj0uTOujgGADNQ6Jv+okSIckCA2S+C1rUZhgNoIRyfeWHVIwNx0oK/gJHAiGD8CNgwFunNysIFlO53iSoQR0NbRoR1O6tplHbOVUkt93uoBMR6IQRGrCSpDFQJiNRleoGq8jWTbLDkbgiWCES7YK66IgoUc5/DXybpNoSGMKad4pAGEp10AAcoepHaLLTbEZ3bpBOjU4AuzOvUB5GOInCBFYkCrIrDDNvknLKCv6I0lhCxga+KEIxA444JR3LO67+6pAdsR1k6yByUkhPfeCfm9AaMFEFPiKC3mqvFcql6+CALAil2bs5XJwkay27ylXkMCEnBcRqjgXGFYAUAAo+yGk/JIiWnoyw60nLP/nWW8z0vVUgPwpDOmWEAiASQyzANycYHlDaQN6tKcRTJ3uAKOzAnZU8kSBrAvv4zOCVfKCt2MiAJIhOFBcyhhA0A0h77pjju8I0QVNfWIZSwFW9vyVmFM8QAyLCKGRVgIRKB3uRxST1YV4WEBfDgcCVyBBWm4gghy5IQJlo9uD8rOdoDXACcC8igSekQf4Me7LzENH2pYBt9wV54uguKLlYihD0DWkHWxazqbBIR0KlQhHJ3NjcHq3oDAFwwsZQkBR6TBdhCGsFjMAQvLoh/tAnkZEXrJJ0qjVFYeebEKkEhjBmBV5NqAgbXMpkZYWMYyTvbMGi6wAFdYgikL1JcD/wRDfKo8ou5qV7soAdJ2gKSfw6joO8c4xTnNkcy3GgfDyLnhRVs74zIN95Ma1ugjdRGBBAb0K+Es4Q1OyMawVIkAGjjolUcR5wcOljCElZN3XkBkUqzVEwFgiZ3quVhnGvcAMUZuBW140QCgBy80UgilNfRTD4M1ABb0UzgSyJEfsKQd5yi0dlnioBI/KNGJWpEpk6rUp5KYMHYGDHlkiGEWVtABtFDEgIfriTMrNBt3tbQA/byCBH5DgJcdSZtY8VlzkPXKMGxmDui7XXNeCUhDeoGiDltKszpFO9sp0afq+Sg8IyeJRmAAmW8IG1XxwZQOobRrQJGAbrYnIFOCZP8l2TQoBde5nXB+iHZtlSL9tiDX3pGQnOHcLETbWhgXKi9yLbAkQ0yqOZ80EzMdOiAgqtNYlchUOLsdXQYyoKXF+K2DDrWU7dhJOy00DLSIVIoayAlRn2aJfeU5HhnKQBYbJMIGNhiLJQXLEE2erKrN7NAUBDAFW02hRwVIw0XeIAIkRWIJVwhTNhS2SrduB2+BVFiILhYLNWjhs3J9WHOvZVyFZeVbknRcaqQghBLUIRCsKMg6OtABhQjwcj+RLTo9FJ2f1OsCDiidV/d1gND5AVp71Q45ndvTnSTgU9kI4UTnmpREaoatQ1FPeQojE5A62A5fIPIpbMAKVsygCG3/+BiM7rK16eBjGRyaMiE2VaEpmEyaS1iCgAiATQmw4A33Q2p+9SuhHceiAgS4Qk8cJleKvg+d8+MgaIyFWtWOhRV1sIAFSkBkPGQ3C43AWhtwsBJkdo28G5IfRwRgq0ev6gKVqAB8Zwor+XQkPNDVL2bRFyVtGeACJkjDlAe8XO8wkmn5k7FVEEMVRiHmi3tITSJSgQpUpCIVJeB1CVqQhSwUwSwwYkh7mdnhPggjGLU5GSAk7QA/BIM+aRBGGgZ0gNrsLX0RjWhDo5WNluFAAoeFcxUvUy2MQvF2PqUBDW5iE5lQkix1QAUJUmEBXVuAyL5eQSOYHB+IdPKwIlyG/29EkIEDTuHZXh3AFd6AD2H4szc5mkJ23ErOT0dGOw6dQlctYcjPhnbKjKTyT+agMIs3xyaQkMEX82wQPlsgAnhIBK8tUIcv1KEEWWCyYGNE7ShXUZf+pGmN0PvsLtPrClOutsOFMYff+rTTtPMbOPEWwvfBeQsjrNaGltGpnq3zkVWRCQHI0ucvRCACM+h1CW7Oa0m0dgCYTsN0ZFvFZhLd2E05mwOM3RvZfsc2T8+rfgW5MAlZ5n2n1vqGkpJFKgmSs86hAYMafJAZSAIVMEDFCCRRghnUge36LkEqsoCDGK1FGFKuspeWISCaFhYLkiaAJfBhCQxcYbbf6VqYpv/VxygFXzsBiGUhF894+FmUkd/B1isp326avLwgqGAAA1IQAgagQt+it8O99Z0KH6DFRjWSMtF0KZxYSadlIx5A9XI/WzXAizqWqvpOo+SzbGCxijbWOiKzKKnZQavcQQDEQAGYuDyDkIQRuD4OSAEGuATSKwE7sDk/ywIT2BoDEjiHGaHXYwjb+wkBeLYD6CoCyIApmzJ40TT08aajwAoDCCIgYaYN7L84G5zZmR2q0xIfM4WW+yKmGgtJUIEUOIEQ0AANuIRL2LUZWEJ9+wILkIQZGgDZmw4vEbplmLs3iDJbWRUKqITIGkEBaKZnOhhvyp+WubALUwhLwLqJ2rr/rVO+F3O+ESGfL8qFkMK8JwiBFDBCB2SAe1vCP2tCO1iBC+wa6ZiyDfSOtXAMhTOJvniglfCL+Xo0sFMfNPuADACADpgATpwADzAGZBIZGewO78giHFSf9DCWLwIj1RiCFlABDdhDB9S+L+C1OtA5J3yCDggZgWs9oZIPw5q9kFgJmFGJl3EAALAhpzC8EnqEDMCATexETvSATzQGhRgAk0HE5opDpMKJnJC1ByAA6TsIO3gCDQiBImQAe+uzCMA5J/yCuBM/u0NEoesDitgkjOLCAniZIVEJH4EAB1gChNsMQCqcn7CEDjgBDljIhQwBheREDniRkLGVKdGCF/Mg/4TCCXibJBZ5gTxERyN8QAhUu32DR9TDxqrikKzburmQskWiDn18mboYEr2ggAIIGcJbKyqZlDfAgRDgAR64vhS4vhPogU6cpzQQkwZYBkBaq8gwq/LxQTgRgie4Pj3UgOpzgSa8uVpEhQlAJrtzGFP7LEI4nO9QP5OAGSGhSb2AAADIAPtZK7xxDIREx6E0wnMMAaM0ygnAsIYTk+LqqVVCAXDsmFdExyLUwySsxX0rARXoAAl4uKoaoUNaGkbUx5lcy7aEAAJwAiyYloL8Dg5BSCJMgSNgABWAxXNUyIeEqoYrrhXLSJxwOaspRxVARw4owlfINSL7Ajs4AWSaHv96PCTviDIKOYBK2Au1rAu92BUCCAYxQRil8B1hMAYOCEkGeIInGIERYIBYRMcTsCRYuRDaUaIyw7PlCcIQ4IDSfEDSS4URKKl5bKYwaSYrcgy0tMnMZEsKGDHjcKi5XCSmwAIMOIHq6wINUAHuJIERSE3EXAHUi4QKKDPKI4xZiyEhuE09nMU+g8+vpCktnD2ViARhCKGzVCnMnEm2TIlKkIBgkMtFQsTvwIDrfAXv1ADPq7cReAIV4FEV8AEMMIBggkpvZJALjaEZaIHvPIIkRAUV+MqGQCMskAAKeIFBKMHDOtHjTM5i1MxdAchI8INYAKRzqysJuM7qw0p7SwX/SdBON30CQgSAYxgMumkSI0XA5ZmBj2TACQBFTNoc34AAggCANDgsDjGcRtTPtVzRC7jJi5EQ+8SxK5yAFOiCS3iFV0hCO1DA7WzQ20S9OZ0bJ6EKRTEFeYshJlgBDpgALvjEYoOINPAnAiiADSCINpCATsI7KTucR0jRAoiBXQlWCKgEAyA+Jqoy33mDDsA+JETCVNjUNu3UBg2/Of0xRbHQB6gEIEBVJpATwRIsiBCGuZvVsag9ZrrPE+1VLo0BdgXWYE2JAgAA4vuAE9w/DsEC6zzCZrUDaG0BaX0CIDWAYygWBvEMmCCAbUVVAIqPiLA2CvCfgogBIQ1DXU0n/2Jq1HZlVx/50kp4AAXIBhM0pP3jHXzAgAkIARdwASSUBJZlWVx72TgdWIL9F5oggEHgViZwAAyguwE4gHIZixjIhQegMcFppiq52Bj4VXZ91y8lAFAY02ZyQzfsgwHggh54QBJABUmA1pfNNVTQRTmVpJlAngfYihYSVG51HoArAB0gC0fYgxggA1DAohP0JAEoCeX81Y191xhwWikxvyr0jjTwgAa8BO5sWZbVNUnQtSdAPQMYDCAjgAeQJJp4AFrjVjcgg2vDi+saCyIogySI26FlvcSaC7xVWqZtzpVQgBIVupHdOnzNTe58AsTtvnz7WiAN2y96wcmlmQcoJv9UXYRc+KefNQgwIAJHOIdFIIMHmAMZtaoKKQl4Zc5g7c+UcIBICEOQOySKKtncTFDtFAJ+XdyX5U7glNMDBA4DUIAt2QoDGMfIKYMYMBK0PQgwuAFFOIckWN7mJV3asgTpHZQY2FiUgNcDKNEaoyiKgl0T8IETSNDDTVxduzXzhZFjSF+/OIaowAlQqAQ0wFk4UQTQTYIk2AMyMIVIIS98it6QYNRdsd5GTcaBCzn4KUsT6AAOWAEFbQE23doe5s4RCAGoigQMJoBjUDBwIVcQdg8gWIQY2AO4zQVQiJRj+w4Dwtu9fVc0CNaVqLsqW2AqKtlNPIEe9bzEZdkW4M7/c9zFJQCXFyyUqEgMUDCAD17i1JBfMiADdmVeUMiAbBTD6QAE6U3d1AVICZDB46OiK4TGCdDh7WyB8uXO2zwByBwArjAAUzoAUukEBTCAU7Xjg0CDf6qEjn0ASMgG2zBaqwLgkCDkLRbWmyxRczok2E0DaCRjFWgBXdbOHZ3kiISVCogETB6QYmU5961fUDaIGfIeyTWFWMiAG8EhLHiDWbXeV94VNLhmlejMqFXgrfOC4hyABnbkN+1ODTiBE5gAE4AIwehkABDYnBgMUMjWZB6LeMUL4DCFY6iAK2A26TCZYKhmCliERbhmQcjmLwXIpXuzcnM9LLgCk8XlN30C/+90SCi1BPEBhQEJF3jbCjEwu3ouiBEbEEKZ40hwgttYKZM5mwtAA0EoaDRYBEHYgA0QVpU4gHNdSe94jFgAABzwAR3uUe2ERfD8yvYSBj/oZIG1iXYbDVDIi5AmCAoIDgxYB5sUEIGcA+kBJWerBB9xaVUg6II+aIROCbdEYEJYYNejlFg4gA4A6hUIagdVVR/YxSzEAj+oAAN4XJazCVN5AGSu5w3wCxNYBzRYh4W4AujU6rmoECcoCQhAgw1QhbAm6Jh+6XcFSGyM2q1rptnBCgUggJ9egROIa3RGZx/oU5P6CfEJDb9+tTn2q5B2Awf4mJ+ep+KogAzwAz8wjjtKIwAfWYRBcIRBAILKrmyYzmbOjKOw+bqMKhONIYA2aIS4Nu3TTmdkuoIMEIEEUICXEFvLQ55PHouAAAAh+QQJCABTACw4AA0AeAC1AAAI/wCnCBxIsKDBgwgTDmwSiE4TOoGaNFFIsaLFixgzahRIpyMdI588GkHy6ZMRIxtTqlzJkuDHjkhChSoZKkcOPjhzHHFxqqXPn0AFPoRps+jNHTWS7li6I8WloFCjWgxUMuZNPjnG2OSTtEePGj2QcuDwVKrZs1OMjNGKk88OrFuRgvVaY0ePsTxQod0LNBCSHEiDCE5KuIbgu548TfDawxOHFAz4SlZ5i+pNwUG4YBbMRXPjCRM0BwF9l0PkyagvPjQSym2NzrA7e/CgGTQX2h5AO+YQAlHq3wlvPfy0NfNsD8ZuH6dt21juxWND9AZOneDwra+VI+/g/DgX0BOeT/8YyzuFpOrVA4GsCdiwcmPdl48GDz7x2BMqnqH/TdWqzcDvLXccffUlZuAJ5+032XAy5VDTDpx50MGE23Xw3WKJ+WCfgfY9oeBkdHyChH9ujeZJYxwYSB5vGqjwxAgwjqDCCSlO4IkKH/I1nIhbudUDD9K1OAIUI7TyhApDluBLBExG4Ms1qIRgII45osVQiD3uwAMDDFxyCSqIWGBBCWSW8AwzIDCjpppM+sLACYlRWeVZ6sX1IwMueAmFBU/68kwEaIIg6JpsMhOBBSGkuMKcaPl1E1ghdOHCpF9acM2SgAYq6KaDqukmjYsyapZfrvGggZeoXmLpNU0Cyumrafr/ckmioYoaVSBj+BiCCqmigoqYl7ZKqKaDRgCFBiecIIStt7bXA2RfpgoDDNdciqmhmb4KKCLIntACs1Cd4iMHGowQLaqowGAppk2qCWuaFjyR7LfgAmUED2KF8AQUqE6ap7qsMsmmq68yY8GbJ7RSL1C+8JAUb0he4kIXEueZ7rVO/snMJJwaGm+yCS7ckgU8fMWbuZd0wcARDGgAWZd8Lmnwk3/+KTAiI3Cwwgwi++SmV+TCyEAKIQCZ7AkhpEBCmBGUgAgqI0DdQguSIPJMCSN427NPrKAyFmQjaKCBdC9zmQJkXQBrwQgMhKBBl6hAAaaMJWztkwU0psC22Fzi/3kJv31rgMqSviBCAgNRI6K44i3UbXdLiCCtQRcqqMCly9IhabnKg09isIz6QlE1444/vtI1QSJubtvS6fvEi2+7ELAvkhz54p5kSpKI6Swx07be+7LN5QgtIALFEy3jyWcEV5dp5jPQ6877ShGs3AWMl4xAwt+Lj4A84iQsD+gzgiayKTMl7D59Sh8pQTH2XypuQQtCk9BF+NcmQqya6a+/EVWfUIK/LkECiz2NBAhEIJeo5QtidYxJ/tNIR0xihC5Y0F8usN/9LMil8GULVoSKYEZecpKUMYBiKbMgCbR3wu1ZgHnmAyEzZgACEWKkIycxwsQsyMMd7nBoDAif1f8ENrBLWaCGNrTIKUSiQR72cGKs20QXoLAnIg7MFyVgRRItAgJfnAQGqJKUE3eoMhf86lprSlO7bLBFixxKhyrs4RPztLw0YotNvuBYGy3CigjAwH0WlBgCU+YCAbqAgR801MDQtEeM+OJJqPASxRBowZ1Iik/XQBO2BMYkJDYSI32M5Pbsd7gUHIFlLhDTC51ERECx8ZMZAQEiJLnDI5hyEy381aWuYalswVIjIJCE9ibFwyMEUpePTKbMmPHKX17EBsK038Q0SMd1CUyNTCKfMzFigxlAQZoTC6cZY8YuQyWzmdukiA2eMcsLSmqA1mSXk66RxXRe5GrtvOCkptX/y1Y9slrPQKc9E8LOWWIwT16i1uySWQJL1XOgCkkEFMj4zolFjYH/pCeZoGcDLUIUITNAnhNH2gV+PnJMG4UeCFgRso8SxAZQ6MIpWfa2vp3wEupanCSeRz5WFOMCxXBpQSRxwlOa8mxITUEgEVG1RwosEVYQggMcsAGhDmQGRUVq6842OVWJCVMNZEYi7sAEMgCAABBQhVBrkYgZlGBalzAb2kigLmUKCwSHKIZZz0rVgVohHlKwgRUGe4jCCuFIF1RVsFrVJBscYhF7fQAAAJDWdB4iD0MoAxM0y4QXMCELlTuhGavlVMJhixVSiEFkJTtZB6yjCEJ4wScvqwNV/9iWAmiobRZasbku/OqFARPYEVnxAjKY9QHINYABDnAAAJgABz7Axm7baIU8ZCELtlXFBrKwAd5ySWVeZVUym3YNwSpitck1wBKYO1kMPFe6yxIhK4Rw3eyqQgdZaMH3chnPJyGCGaywgiOMCwDkGvgYkYiEBAYgAfY+tw3SVdj6oord7A5iEC+YQStGsMHwkfNJohOsHvZAYAM/4BgIXoIIJMDiBgMAAx0wQQfaUIQNDIF3NqDvBjZg20HoIB6JeAIlSZCuVfESas+wwh3A4AAyEKDAB0bxEiQggiUsoQJWZi8G3Pvc19rNCjYoQ4W16+Mh1I7D9/OVpSyAisNBAf+qPzjvZKGsXANEwsoSuMIVRCCCCmBZAutlb3tdW4aFRUMKVijDIFRx4R4z4bB9ux8M0kVAEjxhBjb4QZz3CgDlHmO5B6gAlffcZz/jecosPoCLAeCAIgyCWaxIRCJYUYYd23cQisjD91RIQAvCSHeHuMOSSTzZB9g5EikWQTnSoOcr+KECz8Zzi62M7NaiQa1z6iYU0tcKW2v3vi/QtfY2yMGWtSARwRb2HYBwXGMv986jLkezrwDtFdO7yn5WACiQ/WlWt4ECObJBCVrRisZxd8c83sAghpCHDbPQpgy4tBR+oO47lIEABKizAVI85XJYIg1pyHOf+XzvfPvZ1JH/UO5kC7CfbragFRzwwQokgQ2Eb+DaC6cv2+xnUw3oTg8V/0ESntxpT8P7Cmkoh9L1XO9giMAPUD85lv3M72OctarUgWYrVuCDCWGjBTW3NY8XzoQVWC6INpV4uu/wgxsUgACSdfedrSwCFihdBFcIRrP1rnc/J2DqVD8GOfrNcuA8owUqiHmMTbCCFoj95hd+tHS+i0ANPEESUtADxdl+gz082cR2trKKgyHvJeyZBXjPezCg/ncFVEABCUbxpw0wWWxPxgozaAHXJ9ABDDh3BUJAOBpuzuhHr+Bt90OgCjAvhXTHOQbFNnDoIyHqPYu8AiIIhvb1nIG+L0EBCkCw/+xnT3sIoKabW+d97wHQ3OjyGA0UoMAFrl0GIZgdlwgcEmCBLmwwXODzoHdsS+AHegZo+IZ3fOcEpAZ+5FB1KGYAxsZqk5EIkrACHDABJiBj7Ndc3tICL6Boi8ZZQ7Bf3tMCM7B/6iZnUJZex6AAV5Z6V0BlfrB6fJZ9TsBn+TZ4ghd+yoVcZxUDe8EKubcCvOd7JoABzMVcMocNPaZZinADRAAGeaBfLmKCUpB56qYHSdBuD2AKprBxkQB7kfB0eFeDJ+d6M0iAr0cOPQh+KGZiBLAIaAFNYIeB7YWEqdZcHeADkjAE8gcBuHYDegAGQ/ByrVAC8QAGmbd5YBADcP8nfZ7GcVJHhhWAbOCXARmwBn6gAORgCshFDgqwcT2IXAQABGZhBYmAeF1nAkmIhKo2AAw2WT4QCBGQBYvGBHqgeYP4AkIQWy9wAzcABrrIbo/IgghGfS+IfZQIftQnDN1XAZ/2aQ8Aig94DMlFAEAYFVbwDCOwAp6wfgcwAM3FXLAIaO0XCM8gBPEAhYK4i0PwjvDIBEPABEwwCA7Qach1jLIHfq6nYsr4bPm2BBkgDE4QDOE3e+QQADooeAZGBtkYFNAkL0XYYOFIjuWYhx3wDPHwAi+gCETwhIqwWWVQBu+oCJmlChBwjwcAgRvXgvsYhlKnADjoB38HbcIACML/4AcLmZABEAAHKXsPQAAXABWpOCNFiAGwKI7hmJTlKI4m0AJ5oFll4AhAgAYXAAEQEH/Xpl0QgANTdY8ah2Jh6Hqwd2Wv53pPt3p+lgFYAAgZoJCmQA7k0Ak9yYmgKJefRgCv9hPoZ4FF+IpZtpQDUICpBgDAxwSKoAjnUACMCQGMWQBYiVs8pgNlgAZFp1xyaZc+yY9niX0z6GcicJOAcAXhJ5fkAAkJ0HqcmJpsSAC2xxJD6AOryH4NxpRMGYNUJgLNtQ6/CAZgoAiqwFkjOZzCOQho4AB11oKw53oVAIrMCHv1pol9tgZt6QSbaAoKEACp2XoJgIahKFlD2RLW/5UiE+J7vqdqC2abDDYAeJdqBTAEwQgGTAAEUgmCi/aHBaCS0XhsZLmZzwlteucEUbB6bOmWr9eTARALaxALqTmDa7AEKSdZhccSWdB1MTZnvsd+6nkFdscCesYCgAYBvxiMTLAHj/mVX9mYKRmJCXaW5FCJCpAAPulnmhgMUWAJ2teWwhAMzZmgsRAL0NadfrAGlRihD+AAPlEEMeaKzbWBr5h0zMYCbMAGHuqhunkBvSmfMeCYFNBjOuBjwnkBl6mcYZiZa+h6CZABTiCgwaCm1VllCboGGZAANEmnGVCJ0ohc5tcS63CEG5hqtrlsU0qldkel8nYAFLCOvjmVw/+JmPFYBl/6f0WHYvzohi6qnW3qBJZgCQIqANXpd7EwpJi4Bk6QAX4QCZ04ewAwoSsBAUfIXC0mmGxwBQMAclMqpR4aBVKKqFJwA1foCI6gaNkFf/k5VRm3XglmlwwIfp3AidmZAGsQDJYACOXQpm0JCE5QAakZC5koDARpqnZpjdb4AKyqEhdwngcQaK84q0iXdOUgpWnAAtt3BYgKWIcgBY5wAW+HcQQwVZCJlSl5ACnXkrB3l6bZrNoJdZu6pljQsJbgBwlLkE4gDFiQiZu4kAZWrhsRD5IKqwOwXuk5mB76rriqfdEqAgCABvYqBTrQmBewY4MwkvSoaBAwppn/aZqdOJegmAAKOpDCYAkNi600qaACMLFY4Iw06ZOguHHIpbEawbFP9ooNxmJMSbKEWg7dN4O6qbKZFw+LFqwyO5xfugEQ8GR1hpeCh7Om+aw9O5ANu6MyGgtFS7ESuwYLyomgAIFN2xLxUASv2pRJ6aFpwAZKZ3faZ6pDGgwSIKIvIAVe22OqQAGOua9RKwEp54WYe7AKOZedkJA8+wFzMAcNe7RzmgAC4KlYIABzQJCWcKfdyYbi6rQZEQ+NsGWCeZuW4HFKFwXvqn1r6gQgWgCL1pH6yq/GC5lXeY+f1omZa5qby5M9GQtzcLrp0LBOIKMJUL3VG7reOqfZibZs/yi7GeG3tGmbbBCvSmcJLCClhBoFaiqlDhC576ivjNmljBaz9DgIYtqDmOuFg6es25maa3C6o4sFPFoBc1C9Rzu6OZmaSpu2BiC+GEG+SKme8Kp0GLy+7yqg63sAHeAAFDBVTSiSX2pb/9eSXZi5DJiQnbCdCbq6DZsO6SAAm1gBApAJ6QAIMSwAa+DAPYmXg7enLIEGJqCh6jkAUloOgJC7vRsMpfq+A4BWFNCv2oUGVqmvDkB0oRaGytW/y/mszyrA3srANBwAfnDDMly9ApABDLqdDNgJnXAMQrwSG/C3R8yhHteh2ue7USCgV4BWaIBxWTxnZ9WvDvB2AIBsBv/QvweLsODHs2bAvQV8vQkqAGk8wxkwB3/nxpzYk8eApC1RBr3nsWwAi1cAvBpMuMDbx6w8oMEglBtAAAfQrwVwAffrCI1GAUWXuV9oADi7mTyLiWyZxliQral5yan7o91ZAWvgkz4ZC5BgdeG5Ei+AA6yYlKU8mIWbxITboVHwzXb3xy/7ZF2qA5Q5kouGBil5mYssl6bQuZxIlz3JswN8tGmck9optzKMBa3LoNr6o3XJs6DwaRJsEUPQBr6XnudLstv8rtvcx4UrAg4wfxmXVtolufkZtVb2gL4cAHBMl9i7nUMaup6aDji8oxBrutUbBQsKCeaQAB/QzArZCbH/8AEBgGIAAHArAQZ1DADpCXKweL4dWqiEm8FLN9GWGQmFPGfG+2QD28XvTJcfrZ1/Z7erKwzEfL0yGgCWXLRDW9OarACdCwkxXZpyzBJSkAUqGbKw6K7rO6gbzLvl4ATyBsKBvARnBZlWzGiqAH8ZV2df2IkfbQo96WeiCsM4PMMLGguVnA5zsKByerqvO5cB8AGxIJfdSQAsYQXFgNDrWsrLlnS/Ww6GWg7fvLsiUMuqIMsFwGjnbM6qoK+J7MuC3bl0+c6UDW0Dibr7jM/RiwWZULQZcLqmmpp4GwvCcNkJGn4FrRB51QjlOwDnC9d0nbtFjcG8q3eAzH6tbVtW/+mYskxlZdrOXsiMFSDPAVABbosFxMzGHl3ZlnyTDSsAOSkCStsJZT2XqRkJoKwSWdAIRYzNSXfdGFzgSrem8kYAuAUAeN3Uc9ZclahxtP29dAmK+RzTyCwMayDWMgAJDbDP8+3C4DfAmwvHN20AaLASWdAGRRyy7orddG3gfezHgEwA60XLuAV/jukAKwnYi1zh2rmZAWAOMZ0BGd7D2enhOJwJOCwA2mqX3LoGd9kJkPB6kTDHGqHWSJiUbq10pEfaSlfU7ht1DgABlqkABIBzg4DLG1C8AsuJEv7eCErVZvABlgzic9qTLt0AfcDkOFy6er7GfubMlh0LkaDZ/v89yiHLxAPOxAVekNrnBxKdlQxOAAgnf2+HnlamAL0cl3KJoJlJz8JgyYmt4T3ZCQhgBg2gBn2eDg3s0UQ+B1immXbrkzmtEsUwyly+bAa+qXPNu2vqyiKw3TdOdJPFXNQHfu+8yP5Ll+A3z9IbukyuwHPAoD4JCWagBkzeB65uqnRpBjR8li2YpuBqAFiOETrwqgs2uAaevr+rppyqfXwGmRvg0xKQ1wAL3pj5hf0L0pWKmh9g58jMxgmAmglgDnyuBq6uuj1s5+ntk5QaAHOAiaGY5imRBdZsxLXq6B63xDs64988oKlt5j6t4JD73QSgtsz+zti5hvNc53cuw0j/u9XmoOo4PN8NO72M7Z+eK6fQSHuviRHxgAPnyeXWnb6+nrt2J6BLV8uWee9aicVPlp1w3umLDOoeHaNrILrEzKkySpfYLsMC0AAEnLoQ++zLCq2xkLfG1twHIQXk+4pIJ6hFvamcmruaysRXUOaWSa+EfAB8pmKx0Llx2enzLNYICq0xL/M9bA6xYA41b9LEXL086pPNipeVbdN4aQAWvxFxv+7TfaubusScWpBrmrt7T/J4V8gnipyc64WL7MvZ+cOdgALauQZpnNili71EjsaZoPBH68DPiqB1ftnMy/nnbhHYoOiBeuAd7+ulqqnyVsu6jLJmvgg6np+J7M78/x7YDjzVCZDAl8zDdXrwjm/Sfa7wc0CTz0rTO6+0vmwKhJcSquAArijgvq7Edr+mbQoQGYSVu+IAAhoASwxAYFiAAICEIioEMFXRlAFT5DolSBCgE6QAAdYIwJIuHRYsAvwkiJXAXII1GTJl6jMznZOVHQMoWONnpwKg5IQ+OGaAwBSkSZUuVVrEAYYDAwakScOGTTmslrSitOTEiUBLUa4QKIBQhAiIACKdlSBiDccA5C7KNfUxQEuP5uY4KXky5ZpYZsy9/NCAppo+agRkAMwxVizAO4V6FNppp4ELTDUvFbIOAwAJA9gMwFq6HCBLwgQIc7ImWBQnlgY4KHABNP9asgV0O6xQoWMny3SBszQXMlYGQChRCsvgp6VLcw3SDdPWp0+6OXPWzFn5XIEB4J2EaoTU6TuFzemnxEMDVUJoqWlMb+XqBKv9ggUogAYAgQKFCy6IwaElKlCgIuAsqiuABCB5KRaSlGMtA7waNGeBdKzLxKSUhBEmGOcMJMeAykIKAAEZyCnKAfXS2+CzA96TQD6tLMnKkvrs83CssvjbzYGHDDhLhJDEU7CuThAwxwztlMPCwwyye2kwM8yYTpsNORRAgDmeM/AYBchhECTKHgDgqBY1G4SAGAd4Tz5AUKsRNSwsAcRDQJwo6CAArpDggAPYOsuPYIjsxKJDEfz/6KU5BDgpOSzmaK7KBBBAwAzDtBmmJpPS4fKDDx4TwScTHYyrkwcuAgC9NJfS4akYJbiiHByxQM1DW9ORMzVLRCjAPwMkgIgAYmlzwACgwjxSUQYhLGk11hqLJSRILm1gmGE2VGPb1bL7IDsKHYul2lPFKwqNVpcqowAA2kyDvjlTe5LXrny9YAMDIqENgt0cQjZMuugyxUwCkI1FtZNUo9CMWFCUodoFGuhjU04V29LR5Rhbg+HfhKroATLKSFcpJmJISzQ7n0QtzjtPwlEY1K6oDaEDCAAyrQOWCGaiQxOtywAHKPChg4QyiHBLwCCpVgYZUKgyQ22iHqbTTgXY/5DLwBgOSdkHuo5hZJL3ICMGMgxIA1Jb40zZZbUBGeBXmmO8Iphg2prbJ4EtMoCCFTiYwATQyvHwq8diMQcBGmSgwdo+oq4uS5KqDjUAB+Ear2syVAE7qTKA8Lzss+NEieXk/KqxHAlq26Ddh4i12SERdvbZIgeEUOEETybowISo3l0DsMBoSJwGMz7IxHEsqe5LAOB1YvDUgR/4enOkFClDEVUSejdOYUa/s3sJvUodgtUB6KAA2nYjoIJgEsjbTFWeGUEDDU7wuwOoBriiOwY7YfrSK2Viat07SacoZDhzKC0kHusaATRHvSnc4AZMYFdotgeptnEFNV/xFQSyB/8AE7AJUICKXfsoYpEHECALFriEC1zAAPt5ogO7A5wBljAtykEiFg2QGqcilR1PbSlUCTBDRxIAMHJ0zQGOgOAUpPCCPbRrKlopnXLQxivW+God2GjXAeTjlSvMKgpR8InPzFQERKDChV3QQAhyNwE4/u0AvhGMGaymKU6dRAAfKF4DttSohQUmLseIXmaaKAUgkAE0NGJZX2yFEtN5yFcUyMJn0nImYh0gGBnQSXhMAYAiWAAGa2TA7Txxytzhr0Cgks6maJKODaFkDqCiJai0wzGPmOIYKWQVBG9gsqikppF98cvobFUv/azgMyG0mQNuxgIQdQQBKECBAQCwgVP/XMOFlyABCRgQAvtx4JREGwCEMlSTPJ5kDoKpZRGf8xhzqGiXLGriFLIAq3fhCW1+KeaTmLOEZMIoZ396zxWioB2OTLOaAFhBNrdJAm4yoI0aSMEJdHcAJ8DSlXlMyR5ZkoBQVektgRlXEs1kyCYWoQ1tAMAASAdJWGbJLx7SSurWocyosCENV1jCAQDglg9w0iWWIgcAfOBQGMDgEkv1pgZGINETdOAAOMrEttTQKTWkhDGGqxLDzPGBBDgnFokCGRDqaU9sNAIDA9CF6GAaUw7tqlf6qeRnXJcbAMTED745HAICYFRfaBMGFkAFFC4xghF08xLfnEBUIEU1k3AJ/3iGe4wZLvUtTsrFa2edQh6wwbsp7nMmo30U6SapTAyEEEjOJMASxkhGl6DArwdoAyKugQoYpBEVh2UAAyBKAg1woKW16tRysPYYuOQQAR84ybRAAbIH1lMIOMDAWts6zJjOxFaq4YswJllXGZ1Ff04QRhR+pxNzxGIJDriEL5KKCPgiArEq8K03T4CBGalmSygRgBOy0xKGjctSCHBQZNdADgIsgrNT2IAJTACV7SmnU6Td7pMEIIKgodZNf4LIAdhgCckyyFIJiEQHoHCK3cYXvlAYQRdc/E3epUEYfuRSdmw8reLkcGmQWIAZehKJGNyAs8VoBA4eHBW2lsQmM//R0AaZc+GgFaG6IDSWA1rqhChkAKwJCM4BTACFQCj1EqhQMSrMjAoShECqV9Cyj3+n5ZywJABMk0F4EsewNRwjuvVMKw6ciYGHSCBOMbWOderkhMhhQYtc/AygM0marwBGMJZSwBJMMIIwXwIKZIZvCRBhgWvAABUaIJoEslY4ww2VI5BQHHBSVGfLVCASEFhwFhpxAZX6mU0uVXKhhyGMq4APC6mjwAbaJBWrCM5DwngLWCmXABGY4AnX4CYJoKDiT1/DAhYYwQQwUCAiurNhlkmSX/3n6vEE5xgFUE8imGEDVtxiM/HARhE20AgHHFkqulAyTWhyBS/C7E7ENnb/TrUyAECxwVuCZJAfymECDbigCwxALBRasOml6rbb7TqGDJTEEdmioM5k8gidU4SkEbF7MzOQxLYjwAwQsIIVSrFCHrKQVlhZUCvZtU46fLqE7qGG2FKG0awGQKwraOcDa5hcAgSgCwycoLcUH0ELLr7bpXJzBD7AgAFAoTi/hkTkilNgAFCAbo+JxwDomncL4GuBZ5SgBM9gBjMiUIIWYMMHRX5Ku2aEI55fp8OCi5MEHLCOdSzSEhiVzQEEV+MufVVXB/ABA1yI2ItDAeNMHQEHug6KTpz97J4ETkiYBpzxyAVVZGDiZmwghLdr+xrPeMYMSiCJJ2ADB/jrYoze/9Vv6wwDC5mkVXIwjPgZYWEAALCEyzxUYy0LwDDD9gQDLtEFElQ861n3pucPoJE6eyRBSApP2JH4MQWrRxK6JbMFfEH7GbC8BUOTolT2DQiTMLkPljjy2VAiARxAvnLAAp/CApswrj8SAA0ZAE+IOOw7rBYYge27PgYQrgM4htCDNY1AvfAIid9gGqEggz1oERuQhBH4tPbbNvjzBUlYARxIiCvQCl2Qj14LvjT4DAngt5OwKRzwIkCACFhyGf6KEKhJBwZMgakbgSd4AglkqqbyvmPYwPDomfDQiLuYFrkggBhIgjSZgRFAhQh4hk/btmvwhQiwALmTBCk7gCsAH/8qIjTruALQQpvja4OAgwgDjCViOonGwZI0mIAQoB8GWMIlTKzEIgEVqB+oqABQAL9EmUKPmDOOMICxSb8WAYEyZIa4mwHa87QxLMMSaIUXzEFIgiQBcqUByB86LIB1eMEBsAQgtAkOmTCpyQRd6IAQkKjeKkTfUsI2ciPQWIJGVJBUIT+PKIoCWITWS5NEKIEIOAULQIQSmAEQSASWyzb3s4AWKALeEbRSPCeKQbhXhBTvOjyWGhYCuII8nLCZiBovqA4sMAEOkCgNUIElpLjsS8QQEKe1koDyqIsGShX/IYcweYALUASwMUFUeCpUmMZEsMbb2zY09DRRbKm2Qgn//aOOYUgDx5MwRdMPh0gf9GmXDOgLxKCOd4yaTDgATwgBlwwBFYhJp3qCRMQdbyONt/CIgEw3tWO7kWkBisrFhpwBa4y/EpBIuUMEKMAGqCCujMwWt+E3J0mdC0Af3WAIfnEIvlAyd9TITBiACeAAsTyBl4xJFXBJi+KCtSoHCgkAawqSKMyIQzEAS0wX2wkBJBwBKJCEaYw/25PIT0MEFZAq/zPA4DueYXCbx9rB2tgNCLiAx2QIB9hKmtCUrvzKsPSEHuCAEyDLl+zM+1mrO1mJv4JLT7oIn7TL26Eoe+TLZ0iEZ1g/pJS7FiBMU5wYxxG+AVSeA/gVx4TMx7wA/wdIAyVDSXf0gmHQBS6wqFMSS+eMIU8whuoizpT4ALd8CAAAD9lKlOlJyECkKAaAgr6UhGewANmcO27DH+LMv4nxAg3BggF0JAHozaz8FYYAzuFMDuqQmv3sA0AwgTiaAFTaTHHSnerCgPVMB+v8DqPQTmoSDzQBGxtoAbzMxROUuxKou2x7hmtAhCfAH37LBMPMhMXQLgIqrt6EzKtsCMm8AkAQIOTRBi9wz3Q40A7gggAVUAPFrxl5URI9IgOwpmMwu9HrhAhNyF9MAacyM7rzNPdLyhMwgeSTqSs4iAowpuIiwNrISn65z6p00eOxTOTJFuWrLhPwAA/IUdBKg/9XzEMBSK8gPYYlCADhoaYEMIANoJ48OEuydCoGaMi4c8YI8AX5wh9eC0JAOIohGE4J4xBhACgVtU+sFE4XbRyNtExsIVM2NVNjmKHdOYDSocGZWKc7VQsFMAcUoAHZMoO9oZ4ZaIEneMlAvARp/DRf8IUSQAXPW6uSUA4ARIp1WILkqKL/M4j6xErJFAED3BRs0RRsqQk8EtEbPFCowAJsyQQbwT9P+QBziARkUZrhQYBY0JcmsoEZiNU+tT5p7FBUCIEHcym1SQMJQJMXcIBxvBMrMrz6lNQAKQBlnQmNfNZM3c+owQJdsD+XOh73XJnIQqgKqJYBs5SdUDkIkgL/CvVMDaDVNBqBEzCGYBI6AviPpCiCqWpUXzUIq2TRfpWADGlHgcXN/UxJ7SrOibkOYUuJyIPYS1EgBThSV33Vs8zF6wsBbwuNtmIDANgzpGgDlzIJAkqb9apKfg2QqpSAPDzFms2WxplRrq1Ff8uj/cJZULEsxBmwxBmR1IQgc43AEXAj6ZQKS5jBpGWKMuiTdXQSLaWAfvkVqi2AJchD66iOgXVHGUWe0aqqq1KedBCGdVoAS1kciC2PJOolzkoEIcCftZqKgz0Ayk0Kk1EAuCqJoIvaYw3OqoyEvqiJ0cragX1Wq3rd19UjwEAcVU1V2Sq5TgCaBUuKRXUXG5kN/x1gCkcQmwDIw15VDgyLVPvsWwAgoMPtQ4qZGK2tKqxqAOvNPz8SKkio04dRVf+ps4HZ3aQAAjaBDzZwIKa4gTI4BzKABKtR3WJKURb10gBp3piK3oEtNJv4kO3YEuv93w+IGMvyOOFJnIeZpqZBAVPwWc56AdsYod5kCj0gAiJgXxqwmgP0C/lFVqoNEALgC4CtWQ0ZrazqLxAiAAnYpAAO4AVoYQRw3GkqYKYpYAMeGIrdXSZQJGRkCjCgYCLYgwdAAELTQ2EAgC2d1A6GgHT0UX+TRchyAgLoABlqKeBZEhpYkgXgI0hIVRo228SxYfFNikWIgQtYB81QBAoe3v8HkAEM9iGUMGIA+U3T9VdhgKtichSMIcAOmIAeuMkrCAzE+Z8FEAAz2F4DpuE6pYEkoqcwVg8wKANHAIIkiIEHgISr1UMsgOMAMd0OLgADKMlevZhGobHVAAA46uO1SoMMsKzhqZIGmANWEx4UER6wS9VDYeRG3gxFkOQkEBtTMIN+I9MngWMIiIEY4OR+JYDjwOMMYAyQoiUuOYA9ngAPiIooqZICfmHrNQfFUdUuRuBDYeBcVgoduIAxVqROWIM6hiUfguKygEwy7uB+dQAFMJo9Kp4iuixQWYMKAIADTQP/GlvEEblLWQBDHh5ZrhYuHhiUGmelGAJ+MWYyWOP/NbjNTnEC2tjkeJZnfgGACmC6pSsOsBuwl/CDGbHnBiiMAKbdS6kS2l2cxbEUiKWBzXLopVAFZyqAiX6YNSgg0kqHYKANADFmeQaQqnSASPCNtwAJV+tmS1kSJtkjP2qUdRqwFibbVKXdapHh3MVlm54CCjABHNCNB+iIkcDb7gGodw4QNECDC2jrCwAQfjGAiYALBGhqOlucrmKlV+YjVq6SHjPbsqUcWq4zo1hGm76BfOsA2jCAWFCAChCIoFu2/njnRTDnt6aAtjZqdumNiYC1BPlej1MSy8IU6esqsn3hwwFXWSYwpaEzhv5qpFCFKTMBB9ifCvADgVCbDwkG/wLgl7hua+FGg0VAA6OGgGNZgiUACtJrakgQjL5qadS2lK5a7TqV6btWHBnYpYZ26AvAzoe4AgM5GIEDhJ4Qgd+uDQpQheIebrhWUVMVP/CVy25u7Qt54QU4nB6zrMPpq9Z+3LGTgYro7lweBCvDGQMgioPJk2XLgPHRjw1gbzTYAAoo7riOY/QhkQ30mIzQ7myOWDOA4Rcm2yo5nNamZQM+Oa/OZVVQJEsilq45GK+YA9YIhgOIzAkHAvZeBFVQhfeWWocgJCRREJN7mK1+apmGWCqxrO8tD+02OfFY8UYGAiAplgLoGnI4DoFwjUIJWTQ4CB7vcTTwceJO4rlGlFnQbmoDPpGIFR6dHYxAprNUrbMZBl9xFl8wUAUB0Y2qfAADABMFkIjeiAQjFvMkAAJHGARF7/ENWIT2/g8AcYCuIcaumXQFwYhlecS62HREsQiBSaG61IyAAAAh+QQJCABgACw+AAYAdwC8AAAI/wDBCBxIsKDBgwgTCgTXJBAdhk2agFNIsaLFixgzagwETNYsYCBB0hk5i47GkyhTqkQILtAsjx2RIPkoK4fNHGNgGDGysqfPnwTlcPxIZ1aoHHxs8uGzo4bTHTv48LgEtKrVi3JOdZQlC0kOqEm/7ghCNsiEGlB7hEB0ta3bgYG8Ll0KFa3Spk5rTOixo0cPHiEsvB0MFJyRrzWCcPEQxGnjxE799sir9gQPBnUIa07Z0ggSPmQ9iGbMZbHosz0mTFh8tgaHEBpQbZ6NNRDHz4nJljY92oPqCb1V1+BxYgTt4wnBCS0aiqni3r0xeOCiunfpCRw4aCiBvPvAJiOZI/9NDH20MenTPXTo0Ds7hxMqvHdvCezlUaa5y3s4r7+0h+w8ACaYfLPh4dAsSBwVSnNj8WaeMaNd59tvNXjyngaSEDgbKiQtuCBiz+k3mmK/UffbWSc8oaFmIBgxy0sJ3kXWibtNd11rJ+ZYQ3wrDmYDHTHJxVRTPWQXwpFHnuDeCSmoMAIDDGgQwgmeUMhjj24JdRtSUO0QIAMuuHAJKoiUiQgqI4yASgl11BHBmxFYMMIJwoWA5VsMuXSflyEw0MUll7gAgwVffPFmHV9cEwEIIOARAR6ORvDFCByodgIMd7ZVixx07FlDCH8CGuighb55yqmBTMJoo5C+iQiVE5z/wF2mVm3aKR9OncCAqIAOSqipcEK66qqtqsCBJyfMQKtV04A33qcqABqmmBYQaiicj+IxLLF4jKDBexkuW1UTszjXgwrRikoCKoNec02pb267LR6SfMtBC+JWJYcseGk3gqhiXgKDr+++Kay8jOKByCZK4pvvT4EogRd8//IKKLsWXHNqqwdvGycDJ5wQ7sM9yeECVNg5CSgJJAAKRa8ZnxLpowjH+e0JUJDsEzhd1AUfmJd00QWUXbQscKmFXiuvzSesMLLOKU3Sc5F9kuACAylMGbJloMKgqKTuGswqpBZokCLUPdmASAo7cJDCv1hnnYIGWRPHw5+EXoMKyww8/7EuIhZEUILZQqC9EjhfpNDDCRr4SXTRqFgAQ9BQMoBKoogMncLmUP6tgoqGqzRNHUpeFqXQQ0fp5JNdpLDrm19Y4MKfgH8hCZlPPB26RtPgUTqUYg495XtPqNA4lJdc46gFDEypARQlxI6I7rtrNEncfrpAgtCqjyCJJI7vGjgIdXirQZojEGoB9dVjFIELRxzRRZiiooIKFJKUAMWTnRPqaKkzi0AdlNU+jYDnRWM4gvZ4ZaZq8Y1lIyhYpLQ1rDrMqoAYAdJLZGGEyV3CaIAq0weHNrTkfUFm2aIgowRnAwxexCH18chO9ja/gKHig9tD3SWsJTM8qGpYeLDABf9dqBBwaOVFwOjg9qQVKpbNDnWDCpYKV/g/IlpkEiD5CDBgILQnPnF7T+xi3gw1xf9FwIoWyUpRXgQDJ86vi2J64pe6YD8JrkpSX8ADGq+oQSUs0Gqoq+HsGBC/P8HgctpSVaskBYI9WuQURpCFEooWqGnBcVrtelQKtTWzzDjSItcwwiQFGaY3zk9g/kNYoyS1qE9e5BoD0x4pp0W/X01xbHByJUZsYIMvAIyWqBNU4GgGKUcVEw8t1OVFrGAD+wETa5UTmq+q5b9sJVOZFqmF2pxoycr5qQvtcle1spUIbGJEm4gYodCCVrRwSvBRX3CTtsx5ERuQz42lDBPG3EX/xkgVjJ71dBMicvhG+nntXQWD07v0CFCLSKJQNBQkKpOGLQHGs5ENrUgJANdGUo6JVAaLVDxnUM6MUmQGI5hfDmlptYPCKXbVKgFDTZoQEEQ0kMEcWMYM9YUSlMACbbomTQ0yqRxGM6c6fVeZSnAoEEhhqAcpHyBbB834FdIF7KpdSG0gBCpA1SBQIKjmQhCgzbkOnNYipxVakIUhfJUgA1VpDlNwBLrOj1Tw0lYirCCEGFBAB28VSAmmqs4utouiId1rXwnQBlUE9guBFKsw34VYOO1VB2QgAABMkIWvyuELs9seywhqQngFa1E2UAUZAKBZDKjCYRm1QSi/yLJA/6KCstfCVh14uYjVAuC3AMDBBoTAvk/KIQJeK+VoAxnOpDl3rzOIgW8fYAAD/NYEPshC4ZQpBznUgQFGwClOJ+vcQpXABlYYwnSrW93fYqADOMDGCoZQ3PbVgpl1ENiY/oVTEuh0p4W6BiLqYIU7OGK1D6Aue3lxgAMAAAMYMEF8hUBADILDCnJgEwh4KYUOJyKscByYrxKlN0TYoBd66O1vqZtgA/xhCQ2WQIM3iwMfrEAIJQ0dOGwwgza1YAYvoEKQqSCFGbQgpUJjWVKrtbcIFBgd0gUAiw1A3WMwWAIDkICMHWwC+GZXCC+AmjYtKAlElEAIWVCFIASxgQ0wIf8LxUNdy/47uS6YuBc/UMR0FfyAYxxjCUvQsgSW8IdCO/jBEvbBBsqQL2YmQhJHfgL02KqKSqNhA6rYQAtUMNo5H5JvqNjrD34AhD2z1wBWDvSg/8ALQm95xhHuADZgiyUrzADSK7jQj4WA6TSveRCvfQIOl8u9EcxADz/gxA+S4FsqoxrVvKjAFbCs5WlreQkKAPQfGuzgDhShsyvisSSesIITrGcCK3gCIp6QBTarWRVlKMO4x2S/7TnuCSVAtrJJvWLq8sLPVq6ABK4wgAFMWwQiIHQFXgxoCWz7ABH2gVu9o80StGAFPphAByDcAR/g+wltZrMg4E2FRKjJAmf/MioDSiAFPez7B1UgQ4IVjGoF8OIPIpi2wacdDIRXIOc5H/TNG4wBHBQBzLTZ8a3JrfGNN9gEE1CBJLIQ8g2M3BEvKMEI/EtDKGkAEVTQNyeUTQQEPxvaFZA2C8oxABZc4Qoi+LmgE67tF2/7uhAYxGZs8Ghye6IDXTYBtwHQgSfUgeoh/zUThMDp0VYOCmEXu7JjLmUFW/kPEsi5E1bBdrj7Aehv/7kI/lABQvOCwYd2gGPfwswZCAHjgI+wCQDA7QOYoAV4QPyafz0EIfhttCPIHZFdPvaxo+MCmj31lbF8hWAEww8JiP7nER73Cnwe52k/fRxAcQwDEAACbtnU/6MvPgETYIDL5z+AliGugjqsoM2JH0Tvfw/BrqJDD8RXNjoWodkWV/nmOccCTlAObycCztd8zwd3SzB6C1gBoPCAfpZgBLAIV9F6aOYDODB7RCd4MSZjAOADaAZ/IVcGLzAERwZBkkAF9zdqY/cDN7AIUlZd3fdsvGCAwfB2OJiDzkd9OZd2FXB6EAgKCQYABVAVSodrGocBtOeBtId5WeZgONACIrgBaABvLyAFJsgyiDADLYdsLLh//Xdqx0BdCvBzb5d5OVeAcecHbEh9CRBtFQBwM/cABFAAjOYTVpAIFpcFPhB7tJdlA6B+WWZoDuYDLVAEIliFg3ADViAFkv8ABQPWYWKXbGW3YmdXXQ9YAcHAAiwgcIUWd4V2BZ/nB2kXd6d3ehE4hwSABj5hAyUwbrA3e38IiAdQcIPogYYIf2hwaaowCFcoBSUIZCrohS3IbJbYfch4DGX4dgbHgyLACwpggCLAhj9oZXHwb3EwhjPHWqy4En2HcRqngVpWcONoi1p2dysghW22i2ggCIPABCU4BEMQjy9wA/g3akQQA1I2hmLoZ9G2iZ5HjQuXc6swgNAHjQD3b1SmihewEkZWbuH4W7Voi4BIkQ73cDa2jhSwkZgWb4NQBvBYgkygA/H2AoqAfMdoAP+mjGWYAM5IfT6YAauQARkAfaCgAAD/x33dp4rgpxJ8GI7m92BLWJEEZ44DIAIypmiWRoUUYHWqQAEF0AZG12YQgAMZ6ACyyF4PCAqoxpIK4JLUR3oikAA/WAFrkAHCkAEJgJMAZwBsyY9D2JAq0QZ+OGNBOZEFZ23kSI4AsAFZkAU60IsgeQPAyARlAGwiqAqAWQYbMHvOBoHKyAtkWQGTmW08WAFlmAFzsAZj+ZZ9ppPJ+AAAIJcoUQZtcJdaJpGzSJFtV5EFV4c4AAEcOXJloANMwATy+AK6SQW8yZtM4AAA0JXHwH3RRnoBV2iD1nzVpwBnmQFr4AcKwH0LCZnCeQwA0I0o8ZuoOQC/xZppkAZZloZX//Cdtqh+RVcAEFAADkAADtCeDtAGbbCRaAABECCVwBmcfoaTN/dzb6gAn4iUOddzaScMTiAMz7mW2jicyKgANvdvALB6pekASuhgtceaFmpwLMCaEoADg/CRg7AIVSgIF3AB9Jme6nmfDWZl0IiZZZh9LFqDN3gFnIhwMgkIBAp92mgAEKgAAdCiCuB9TKASOiChtFd7tYhlFImDnLhz4FlwB7ABuambQ0CYvKmbN1CPunmYmoWfAXeKPsiW1vd2a/d2wiAMWIAFTgCdWtkJoBAACRAAbhqH3qd3KVEMElp7gpZlSJoGbqekO7eJbJAGEuAA76gIVeAISQAEH1kMOv9AkmUwBLc5ksApnD4Ih6yGk185gGlQDmzAicIACIAwkwkAcF8ZfZPpB4WwkwRwhyhhp+mnpzJ2oUpaDn06niwAngAgCCBZBjFAAJq1pcAllBJ5AP/2gDYHCjXIgCzqB5rKiQKYDqAKCMGAkw+YAGwInQHAhjtJhxB6EtiggbWofniZpGnIAlGQhjd4qwPQBiF5A46wZpXGZhtpouvZYIWGimmHeQhHeqcnbeVAgDeYBqsQrU4QDA4oA4VQkzTpB2e5knGpEkVgfg1Gjk5YcOQpo7b6rwUrpjJGAbuJDlbam0KmmyKpAwVAe6hoZdY1jhcZdJzHBuWwCmlgpqCaBj7/6AdoeZZrsLNsOYcFgA4pEbGr6ZoFl6FKyolHu6RQupuDwGaYpmbw95eDsAGaRawMZgAOsAFF0AEAcI4VK7DlsKnlgAWgugoCyrA0iZYCsAZv6GfsBQAOwKoasQjieKEG951hK6acGAUy6nYsIAFLewM3cAEF4KvAZaTc9gd+BgBSGS0pwAFcMHsM93abaqMDC6pYsAqjh7MEWqYCIAzPZ3My2H0EoAgpQbdFaouYh6RMmgZs8LrlwLfNx7cicACqsJs3QIJVcJhQO6/qiZ/VVQA+wAE64QI8UCVOh2X/WraXC6oZcAWamJZmKgA06XzZp4zdBwB0ehKCoIF223a0/0qrndqptOp8B2i7VDAEUnADTCAF6HClUiqP8lgGBfC2PtAnp0AHRtA8leJ0trgKnHe5A+sEcVcIU5ABAoAFwlCQGdBz0NgJO2kA2KkREfuqA9CkF5wGMkqrLPC6nOgE49l8b3cAWcCbevCCa4YGFECfbYaIGwABBHAA1UUAK8AAMABJYRIlVAJ4AJDB3wmqn2q20VejmTvATpABaceWzkaaGlEM3muxFMmpgbrBHBwFwVCToKi9XTi4v3u4HVhwrMYLJhAtMPAFWzQ06GI2GtfDF/ypgEC2BPwHV4AFUxCq0YoFBruWkMmVRYgSQ4AD57entriprguz/wq7fNvA+/+qxeiADlTwjiPZoaqgwukJnGG8WSrgAnQQCJBEAgyALsajJFxbcJgbqnGcAemwwJerwNCXxNyXjQbQkyfxAo0wobbIdq7LqXzKqbxcvn5gvtumA7wpBY8ckvA4j5BaBqpQv4vbAV1gBKcSO4c0AmmsARrwd7U4sAvcyn8gDNBqo2daDp35lWwJCnEQyymRBW0woaxbtLBryLBbvsGws873B4vGBOkbleiJnvSJA1J5sn9gcx9oAR1ULTBQJnvTOGk8AT0swKtAihUwB+lwphPtBEmsAIWQANx3kz9KASmBDZ7wxBS5dr38rwAcu85Hk3w7ABBgdS+gAyYgi0Vajhr//IO8gAErAAPT0jJkUm/oYywYMAAC/HxDjAXpkA6wUJNJnABsG52gsJYGwMQZsbXmF6sU+Z2c969azbfOFwVe/a8sIGE4oAOI14uVxpTpCQCoaHsaECjzwwAs80E3VG8gE9TRugpXEH0VIABHnQ5p+qagYJZrwKAB0AnRaQDdmhF9yIHeqdVZTasD6HbB8K9eDbMDIGE60AIt4KiRWptTW7+nZ3sjMDDAlyY8fdCIAAUnENQDW5BnOwVHLQxwt5a8gJYs6qYBcM4TnBGnacEDQKubGsCP/bJXvHnl4AQDOACxqQNFgIEF8NzQ7Z5qHdo+gAjXQG9QoNmm/TdnwgFB/x2zBQnRfjAF4YDHeZywBloBcPqVa1ABc4oS5RfI3gm7AwveexsFToDfUVAOGeAEEiCbT5CBSujFA8ff+QoAK3BDfkICwTcC+zNaPe3dEiCwwWCqP+fNWAB9TJ0BGa7RPfqVGZCqB9DHGtHbePmdYssGJx2znIrcweDVUWCu+P0HslkGf6lm7ti0aEC4DqCSC2cCK/BEUPIEaQIFL0MCkGg/nhDUF+wHcEqZfiDR6cC2a/C57e3U1aqWpzeaJ9EIEnviv23SyH3cVnzF+J3fL/7iBwABgrB4QlCbjdqoxdC0EGAACyfaA/NBwUfkI9ACUEAmZwIFS66848yjaxDbwf8gDJ8rAjbHoG26s5hZAQcQtxQssaxbyPCs1SzgfAN43MEw5k4AAC3N3FXpnr7KngRg5zZne1Cg00ITfKuTJj2NJkt+weUAfYSdAB9w1FiQwIBg0WXYowFQ5T/IoEsg6pVuweS5y4+t1c6e32u3dgCwkaogscEaY8et5QeAA1AiP3DN51unJvbzQbWuwdHHoF8p0eEQDhNNx+cenYWwmWzJoA4GWBhR7UPZdngL3ssLwBkQu1ttvqHelDoAf067e1AJANm37VLCA67zBEReZn9uPzdEAuV+BR/Oo0xt1H2dDmoZnW46B3NQCFvZpj/aBhmhA8nLujArtgD82B1s0mf/PoCivgFkvdk60KHANskQAAD7egAdICUhMDfo4uBncj+8cgLGgGXQ9+FkGQwcb9R4/KZwOgcCgJkl76a88KAZgZVDyacX/LqG3Npbrd/IvXk1nwVWaepevK+FNsbvMfToAtf3YyY3NCeCl3kJUAgBkNHWCgtqsO5oWgjq3fdri5kBUPJk+QckbhHr3MOs66zOTvZand/4DcCh3tIbMKEzxm0ScNzQ++OeYCGMY80qYz/Tk92qLXhLcAV+X6oJkA6Cr8AC8AGF8AGwwLbWqsdtGn1/wPUXcZr5brGODcCAoLH4TaAFqvyiXoVFgA1UyI47Xrik56YKQHgdMAHIYs27//LnY5Ldmn0Ckgu9uO2mhZAOfZAOrU2gfC0MlGn9ia+MhUD4a44RXp7v4Dn565/VMA4QTlY5KVcOAIQNqjZkUaVK0MMNFCAQEFFBgYJjBwBg6DDhhAaQJC5BuTQSyogRIUwAOMYrgIIEAQIkKKSmTzqBgABhwSKs0MVjoEApEArqQ6EKGlWBYdrUqdNGHTAcOCBBwoA0aQqWW9W169ZVUcSWi+LEyUEKG0ysJdAWwNsDIpz4CQCqE6iMGEx4OhEiBIOSgUu2OLEyqNBOLxMkaKAm3c504cIJ8PMTMeIAkBLIOGYAAIWnoZv6MDGVqogrLMoBKtgV0KrXZgsKEzjwLP8ENBQwwH0Lt4JZPzE7dVLwR+MEDhz+jiAZGMqTwgAMXFQwXIE5cx8apIscDguguRVkFiq0hrxMoZ0BOHghOnSR0gCoDhhwBfaq1qxflzPrhHaG2g7aYIM2IKAAjQ0EQfCCAv6oKAHEiDOuox6UA4wkDJ9YwbBjguoEgeE6MceMObDgrqcMElAgAPLWWCyAu/A65gEDCNjAvacEKW0+rKKADRCt7oOtrLLKoe0rASUqMC2IKHAgLvGqGy6ACiQwYYIJegghBRVGMOkSFVboQLpjTLksxJnWEIAn8IRZw481MggmOAg77Ew9CNrDkaliHDANqzTw06m1+8CzTSBhbAP/oAA0IJCPKriqkuAKPyxacUVIqORoghqUU+FTElAZQQMxpRPKlLs6MQXVxBLQDhbuYo0sHWEswutUOwG4cU8wNvBTPvqCFEaY134ERJgpEm2TtiiCERCCAgpwgAD5HLyCq2BiCqCymBII5gATOkIuBA0+HUGFE0g7ICgzQ0TVLqECMKMBWCWLFYs5ClmMF4zS4wWANngFY5BfJfhDgjRYeI1Y177TyTWd+jvrgog2GMQhiaAtAIDgZJJJ25lEACDcCTzhoC+QQuBA3WM6kSHETiBRNcIEzPgAFlgEILYn82hSUcYOPRuEVyZioPbgAQoqtliIlWU6LGcN1LgAHByw/9qBAg6YU9sVP2zVuHA7MFk5DU7AEoAlpJx5RVBWxSwABMyJ04lj3VxM3+FkfOCB9ZjY84YL4AqWq53YhBgLr7zab1E0sr6CPhZYwO+KK4ADuRMUEEABEj8GOECvDrhAjoMJOhhzABEySxXuu0yR6aLhzKl5jTmmEOCDnoVr2xQDaASgiD2ZCBxYrAiP9WGdkl8a8dsksroACKClVgKystW3LtVFXGOVNAbAAANjPMDSmO8PSEMCBR4gQP0HiJpyJrsSWzGANUxMB19h6Lp1770NcCB4ChAPUKvhieF2MqyyDCtiUUPQgAQxiItt4AIUmZN4MiODuCEgACPaySroI/+B74XwKtz7gwEoUIAyBM4AoJAJcexSl8TQTwAn4kmK+lWmoBHAb+4pQwyApZVAdUUY98OCAHRCxGOtYgpLlNOiKCCRaEXLatS6QjBclJnNzURfr7rf/YBUjqzQJ2lOqAABVEEBKgxCPrwQDoxaOKUEzAFWdbvdRWTUOwIsYk9Z2NgIV5EorQzxXmwiVuGwMAUnRIFxT6oP5YKIrAy4SAaQoCSLPnDJOXBHMpIZxjC8Uw76gKcCBmjUC1Rhqpe87o0xo98a7vfHKcxBRXbqnQOGhiNfAQBhsHEYL00UDiQ+7EfMcuLVsCYtavHCLC/KTCFsFqc5zEEYWOhDHzgpGcT/YUUYAriCASDggDIEMA4KqABNuHW9l5CzENOsmx+owwv1XIBXG5AWBrCSvO8UcFaGYxgsnRAMAjDKQAhqkqMoBSd9FUI7AhBABtKBs3R4UjLV7APi0sAGJWaAlAVgAhqkc5GZJMAPldHXYl7khxkWcQ3UCZoD9LinMhShEU+iHj55cj9g3o82S+zJEoMhAgLgZorTotZbJJBAZNGuRLHaZDiGQVGKeieQkTwICj16jBX5rBAkdRFIN9gAe2WAnBjxDBoEZspGtEGXP1rFTbsDzEMyYg5mSVYwglHGAkyQFyKYVORUozRArGmGmuTkU/uwBcP2oZPWNMuw1lCBt0yL/18xgUlJzbOG3MnkA/aqlUU6Q4AyCAwMWWgEAapCQJ380pr2QqTOnLBERgQnoI2LVvSkVQACKMA1smpqJxe7WKhi00QMjeQS/lBOkyYAOyUtTwZS1MKbAVMYFemMAQog2kRkAQdTGcCP9GmvyPTUCQJgIiMYgddGXSAtEaEAg3gRBUFqMlbVHIYXENtJxCp2C9WMlQCiuYajINSk2DEHJMwxhzg9dzhxlIwARKAi/92SVzPwgVR2JIHkMXWTiBPiEmFbRghMsDeRkgALpmm/WYUDqlu4b319+9Sc3i+aM8YseZSrXGeaYQ3DygBdFqyddAhgX9YVLRie4AkstaENfv86QNKw0FRrfuWPiRrITwMawGolLQqq6YpbZ6XJw7IYvywWs2H7m44MEFcYczgKTWQH4DTTJhiZAZE5wFqrABxDh3uSQ58jAJKPZIG0BZhKGk6c0++wgQ1c6UqyygFUqYUYWlcDQKAg0x01qFjFLfZti/ML3nRMgSfTXDOby3NJ3JF6zjLJ1AcQbBEi72kGUEDEJRhw6xFI4gnYaENpBgAI+XIHlIp2DbH4E9QNGCgik3YAACTnVntV06legHGYx+wF+96Xv8Ittc5iKU3aFdFucMQsRghgVhxZoQQjYEAKbt2FkajAB72eSjmevElAeO4Aq1EeeK7c7N70VTWF+3L/OGyi2KcmnMzD2AK2Hd5i/uozZ4KVoxzv599CwOhFEJbnnmwgiVsz4AhdIHnZfFC63fyaqWnoTXfx2RWsBZB6q6CKBPzzRy+rQedQpe+YydxwMmObxda03017wlATFRBfCCaPpY5x3T1ZYQbsToG7b72JsiFZKvIpxz4HEHDv8sQJDjAQtbr79WkBwD8oNjhFgatt/CbcmmF2OLUlSsSLr4m3RZzDSCvAixp13D1ySAQqGID1qt86BX4hnTEelYZfYuHr8klDagsYhZgXdd8GaTYLnJD07sxd2/Tt+VMlTxVAOLXhQl+scA0pq1g5IZKjFLxobIAHGLiABAzQANZv/62BxZ/AE1KhDwHvB8KpdLmAAghGzAHgObOvggWGNrqsFOt2aV9/tQMwAQ4mgIFVbNq+Dpc2DZX++vulYQlQH3wdYEByEpTLSyTYfQo0oDLihx0Qn5MPbKa5JmFoPgNxgD+gubWoNCPxstBLLGmbKE+6CXAxnQ5Ig8hYvYfLr7u7Kcj4JdYggCrYk8JjgC7gPQ0IFUQwPOALPk/AgJraQAkAlmO5qWG5gmihJwKQADawEhwwgQNoK2jrAzUos9UqvU4Kh1VAPgkQhmmru7rLr9UKhxicFdYAAAlzjxlQPJBgABJABEQ4iSy8Pw6Qisoruhc0H1/6jiPMPLhgA8+ZCv+Csz7gekIHbD0o5AkV0y8LbELE2iQiMpwDqD33SIRRAQkNGIEtRIQWQImQSwGzsSdgCy+NMB+dOLHvuAKs8ajJ07cB+LzqiwyEK8LgcirS+y36YjGhY0LTO4CN4YUrODGaA0QckYQsxDVU4EJJgIJ3WzxPMIbuujcskIAme70imgIJuET52Bj8uAr0uzeE47k75DkiFDNT7KS6e6pyYD+1mhboKTIw0DUS1AAGoDVJuEV2UzwOMAaEebKbCBalsx1YmAIRIDuPWpQDuDd7cSvVYsCJmrt9NKwX+7lsGz/76oN45EYcmYEnUAHguzVUKAGH9BLFS4Fz3Dd1DIfu4aX/hyqinpCAoEIDjSgACdCnE+GtOHxCILSmg3M7T2I4TmM4+8KvdACq0DJI0WgBhSSXUCmBOuBCVNi9dtvFfePD7jEk8uoJYbiCoKIAjcCBeqQh2HvGarIJPgwut9ukZvytMeskWFAAKqRJ94CC+xPBS+DCEvgCw+uCxZsAYzAfFOMeQzI6YiS7wDmAJ/kl2Oui7IsqMONHafMkT7w+iVKxlXyqD1AAb/JK2xOCJwBHF7gEVLAAs+Q9ieQCR8QCqqAcAgK99FsU3HiLjbm3TFMDnoCFZ1Sxg5MMndM5LUjNiVKx7uAOhoqmnCHNcGgAcwgA/5lJxHQKhCREBmhIRLhJ/x74viYrhwNAg0FAAwdIwgKyHZ4oxgugGGiBFgAQgW3qL1gIrtRcLZ1Lh9R0jC66l5yKpkLIjkJgsw8wA5kxhQdAt910Cl3zC8CotarjgBrwgEJTxaYoAwK4AkM6IFWMTvZ6Iijqz52YAu9MTe9kqu7kDlhxjKJ0ToZ6qDlogPS0sZiABBQYjgdgv/dkCsJTSAZwgRFUmftkQY2AAKd4gazxP57oioMQUASZ0ScqABE4UASFqFj5zliBKA+LJSzAmQbIJFiIJjO4zRfJlA0FhRpxzw8FAysQAoWsOh7ogQnAT73AgdCoghhgxQKishhNCzQQhA3IjRr9g21iBMxyNf85EgCD0zlYcVDy8rCKK9IKFdIhdZEjRQAljRkmVdEnbYoZuL8e6IEa4AIsnQD3cAQyAIVWHJauuA31KtMBMVMGsc6+WwzsWIB5oReciVPE6QnZY7MGKFVTlaNSRTCaKE9z6AQaeBkmJYBAbYpEWAH7DALKZEETcI8bAIJFeIAKgI3auA1layA0QIMLgBYRWIWfygyPQYBOLdU41SnykitT1Q4LrdBU1VPsoKSXGY7OANRZfYLSIR8W1BVeTYIkAADOaagMmAJLjJ4DmdHcSFYHoBTxGI7MgZsRMVXYm7EhLVVstdBrbYAFSM8jNQcQ+VYmhcX3FAKpECEtFQ09qIL/c0iCRq2ASFqDKfiDAmgvMT1WAj0hETDMthmOVcEcaJVWnPEvOYIFU41Zmb0kZxoRDYIZWHXY9/QBEcIAHNEDR7hYMniAbfED5zqIY6VXM22vAhilFTKFDUVZGoDWBRjSOxXSaMKkrNXWS7IZM0AAsNUg1ZEBsu0EAiCCWWUKX1mLXcWRG3AEdY2BBwCFQpCLKQCAC1AQkR3Z9nIAEQC8VQlcVcmcqk1VU/UvVzPcmT3S9AxbPgVbGohcGugEA6jCtOUVK1CEc9jcRSAAFioE5zo3Mt1bAo1OApwOVGEVFEAVBGBTq1VcmTXYazUD2l2AEVmADJJcGthQE7rcIkOH/ypQBIvFWNfxgwB0gAdKkDIl3Qt4EgMwk8BlFQyymRmr0GiK3Xk5WIGdAzPgVAIzB9xFAMl9GVPwUN91D+BVBCIY3rlVgHUSgQJoCGMV2RndmOeNXsGF1tpx2SHVDlfDVk6l3VNFWK/9WkjQnFfNGwLQgfPdkypwhCp4YEeQW1AwWkCQAAi4GKVN2twogL2JXlVZFbhh0zkQACFFNYINYOq9JFO1GdylJLDNHBqQmQAAACdt4KcAAiAI3gceWroViOOEIHp9oqUtAAO4X8GNH0ggkWjKyNu5JJuFVtpFtQLe01elAbgRXz6tCwN4KRwODV+F4CpYBAAYCqM1CIsZhP9KJWI0WIQnggAaiV4UOFmhsBmkeygBsFAzCAAR1jH0JGDaheFKCluPGSVx/WKnWIQYWIQHltuLuAIAsREh1ts2XoQ2bq/1eQDBBeHWdTUTTocZSwDrwi0FMFqt9dqwLTDHjdxMwc3/QeSniAEyYGSMBYUKoBw5keTkpORF6GUzJYDe0eTUDWGVVSj/stM5GBkc2EGtwaysTc8PGBEzKARIoGaFndot1jPLRWQymOUJNoA4oJxWbL4HGgQKUBBL5tsTeoAySVkQhtoAcDWYhQU1mAKOwIEOMAEJEIE1mOKupV0SoWbH1ZxMuYvehWWmwFhGQQNg1lhcht9yPuc2zg3/0p0Idk5ZYlYVzMmOIcUZYQAACdTnCsixANaOGYvmgQbbAECBAHgAnT1fRR4QIz4Gjb2rb4GAiEZnS07a9vqmI/YQjZbjldXWOQChfD6AK8gx2qXagwWw9MSOsIWE3R0O/0FopriAQXgBgjEArKIJfjGAvIUgifblMj0QpuXqU9kdu0jZzDnSg8WdK0CYK+hngO5e8IVWp6Zdhc0cBJCBVwUFXiAAQbBqB9iAFvABAICnoSiEDmlPHR6EvK3kDbDknY7O9WmZodgdjHaZAwbbacYd7q3d7gVo25UXm0Fp8cVmVjZM0IDlwHGA+OCbotibPNJhIMjbRRCE3O7lymYQ/3aOH5Td5A/ZIGm2GQv9ABWu6+K2GYWFXGymJMM8ZBz2oRHrZjN5gG4uAEGw7XN+IN3m7b3FrQ6BF3d5lxCB4U1N7n9eboB27qktMEh4mVj7YkYlgN0AAAKQZU3G7oDabkcAgu4ehIf47jX2aa6GmbUW3OEI2+5dAE5lYe04UuXu5+bWYrCN77oggJcOVEEgg41YjxjQb/Xx8ALIbQGnmHJ2CDIl0zKVng65i6gNYcFFb39GNTZb6rreY1VO7bCdWhlIn13B4UWYFhMIqBAng/yWZTLIW+VFcQhScYgo629iCaGIcRlHFRTAZoBGtf998H+e5seN3IHGoJY2X99VZP/8xpojj4EkkGU2B4KHQNYEefIBHxD2kh60jp9TCVwU6PMPiZvuPQr/xV2AluYe7/EDjtyX6dAvVgRFJgOsuQA3T4JzWAQyiAEgKANHcARBoJg0hnLlzY3oabbx1vM9x/LNAVsHR2FAruuw3ZzOFvP4hgRQWGAcHmMkv0RZXoSgdXNH0PQy6HQEGYRN1+EBF1nbcgC0hpnyxpw+F3MEUGrSTu4LT2nxJdvJBWscdvRchwBFjoFzwPVLLwNyD/YLGFNyL/Zjf2PbAuYVMvUr19fOhlb27tZ5H+j45tPINegNf88JRvICKIIL6GWL9XAyoIByD/ZzHgRg/28VZ69kVS+Y+y2TywDuEEEBv57m5hbtlM4UyIXWqJYZypXV872BNkdyb1/kcJdb7EaDMmB4hV8Ehq8CTf9vOBdZ9UKQE0JrjFZrVlHZgXbwpS6EkL9mLebrqcV4UyAARzhfdHCEb59sXlcERgUAMshgcqf5Xib2Mohgmn95AYcIglII3Mpk/jl7/nGbttkdys0bJI7eU18V/iEAMhCtgAAAIfkECQgAWgAsPQAFAHoAvQAACP8AtQgcSLCgwYMIEwpsQkcWEll0ZsmC2HBMjhxIFGrcyLGjx48dGU6cFfFiDlkWd+yosYNPDiWXXICcSbOmzYIRkUhEkkOlzxo1gggNwnIHjyOobipdynSgEYsX+fBZWSPqjqFBuBBl2SNEiaZgw3YMdGRlVq1DgU4FOqFtjx4qeYQI4Uus3bsEA8nKUYOLh78ehvoVWqMHhxoTEHPoweOEhmd4I4NlOGtMUL9/tWIOnBjxBC5c3J4I0U6y6ZtNAlXk03czYMBtP8MOzeHEia+nc3NMTSfnmLWvMfzt4EG4h9CAMfidYPiEJN3QE25TPZFnz5WgX//FYFx7YA/MOdT/fh69vMBSqukggZpjatbhxLd3P768bQ3xIU6UNl8ehhHfGKX0nnbccZfZBEHEpiAHpPFXnhEQzYKEde0F1VYH8XkHWGihKTgBg7g5mFtEDu3l0lpBGOaDD555mJh4Ltp3Qgsi6qaaRBZNxQcPPIaggQYjBNmOCvnN1c4IqMCQyiUMhMCBgvrVmBtlUEmVwxFKuKAlKtdc48uXFqSCSgnPgAACHmhG4AsMIcR2wghSnsZQlUYdoaWWl6RyTSlqRuBnBHiYeSaaeKjJwJMf0hinZAxVWBgDl0QaKSoWdMknoIAKqmmhvljw5H1CLGoaHb8BFQKkkkYKg6WAFhqBppsa/7oYB1CIKpkRPRF1aqouwOBrl778mSmsZ6p5yQniKWrrXUZQxSCqkvpqwbTB+llooLCmyaZ4rSyLlxJUnaDCCJG6ENMlvsJgQbWYYrspmhZogGy33toFLlDikhsTnqhQWuml1hJrZgTx2qZsvU2VosRUPeRbLr9JVhpsmq9mW2jBJ9CLcFMWHMFwCE9AcckrDKSQgo8aMECCuhP/uSkIflpg2wqhbpwwDDyopEE7LpSMLIMc+PBhCK/A8OU1YVrwzNLPcJqKkyvYDFYg14TQMANYm4z1KySgwoAGczHwSqUWeK2BCuNCUcKXkuR3sNRK+WLbqSSoIPYrJF/SLyqvaP+QAgOoqGn2XBo8MQIUFkiywttw3+TpXK+M8MrITZ7woQo/lgx4KXj4wqTK06YieipPhNi4UhGY/DcJLrzSRcknhyDJE2Iz0EXgZqaiQW0htLCuBS2Qd7pScij8urmXsB7p4amUIMkIW6PiS6AzSNKK4U9IsrQkwg9fU0SzzALDncjvPTr0Kb8ifaGJLI2H+2iWkIj3Nt0Y/iylGIHKnXlOWzYJJMOb0TKVCIE9Ywb0q0kpehM+I1zDCOQzl79GFsCuTUxgZnpG9xLokQWCjw7XGJ+WJocuGJDghAEs2gUF1r5acRAk9gsfHbLUBRqSD4Bi69q6rkWs9xHshTOJAAP/Z2GE8dWwC1rqQhdIEBO8pcBO1BrWoFwVASCCZBL/oUMRY6LELuANiTBIXhdSIBfbpUB6FRtYBJ4RARtYESQRMEIRvRipI2pJCUp0nRJ7hTQL+ElQrvLFM9z4Ro/gwQIQbB3r7qgEPLYOeau6xqsCRclA+mJ+hfxIBEI4Piaa605ZmtyvAgZIigUqkzOZRClKcQ0mLrJ1SESiDldopmv5aZCopIkcQGCBh2mJAUd4Ih07dUFXpQmTuQSJHORQAlREiolKVJ3WXuGCJHXKj61CZjI/sg05PAMKTKQm3lynJWl5yUtRBBQhtwkSEPhCZeMkZznl+KU09ulV7JzJNnwR/4gmjjOJ5Yzk9CimJhDkcyYlYKUz/3kudUlMWF8ikxwOCpJeqouCJNQbpbx0TzVZQH4UBYnnkOhPak5qXcHiky+8tLaJhtQjI/UiychHTS5VSpJLo5YVXuqREozsdX/Lox5LuCowlYBMO+UpR55xiS5m7QhQPYLtqKmu0a1tkElVqkKesb9xwi4E0vwb4ERHpqWBYJ1aPYgcItBVFJYsP3P7m96ax8Y1gkAIQ0jrQWxgAzzwrXVcAyDJsNYrlLLrgDYQQhb0WhAbnBUPYfQiCsepN2p9qZ7vm4EVhhCDDbyAsVo4hGMjUAoj4m2yXXMou6yFhxkcYggOMIEPPptWK//o4UyVMkJTT4jCEwpUWKxNxA+YQAYCOIACtOXpNqzg2DXJUUuTpay6vFRXaw3yB0AgQy4AQAAKKHUbNlgmCK6hhCJCl7cBvIT/VluoZxxCCnvQLgHmSwFVHHS5ywyvHGxggRRkKXm8FazKVLvaVCTiDlQgAxkA8AADAAAAJqBAFjb4RuYm4k/5fYYGoOqCAAfphBEzLJhmYAMrVEG7DG7wgyGMAyHUzIoWngFZS5DhuaTgtIHlWr/8Z1jRgcAKh1gEih9A5Acc4MgY6AAOsJEFKrwwEdVrAdqgwM9l7vd55Aowb/3lP6SlAgruvYMe9rDdFDf4ABJI8wEwYALZZuH/BU5unByg3IIVrEBoHGhHIHwhPyv4ma820GALtMzlaUFhBJKwwQ9+oAjtbpfIBjgGmtP8hyOv2QSNwIYQ4oywbUAZCioImg9M0IEJqCBxLcDrEIbAhBe8YAitgEK/RnBCjfaLBNk7MCewu+AHF/kYvPiDsIV9gEoDgM04KEIWXmyrGZSgHU6agJJN8OAOrAAKLWjFBra9gfrqIAutaEEqwtS1Ewbpa1BIhBU4wQkwxODRkD6GvHmxhD+IYAADkEClD3BsZNd3UbssQZ2lbYIkdwAAR7Z2O+rMbW4LYgOtGEEqOoUKWp/way2Qgh7YzQkivNvXx4j0vP+whCXkO98k/5fAkVfsgDZsQAciAkEJRuAkDBWoAxiwtAmw0Q7FbUAVD9+AIHSggxWM4HeowCHWRuBajrf740SWt9QVUHIJXKHqKa83L3jh4GMnO7m6SUQJoLCCJxWIOwe3NL990IIWOFwQgiAGMWB99E7RGm+Idu0Pds3uH5A5F0Q2hSnmXYEK+EEEEsh3miVQ78LzQgFbNwB3cLCB3NjA2VK2HM4LdIA2W3oAR8ZBqhsOd2IwwQbP6xeAGYCkROhh44tm95jh/YDBH0MBFRCBCK7A+yuk4Qq6X4IIllB4yBsbwmhYLF4Czb1WaD7nlv7DsRGOb3x3PgtuJz0xykAFIVj84oh2Pf/snX6Ddz/gGIGXdwWA33veWx3xFSB+8QNQAV5YGgAOKEDlwwJlIbSi7ASHAQincio3gNVnfSbgYg4ndMSgA1QwO5M1As/genvHd7K3CNtlAA8ACqAwbxLAAr1XDiCoe4h3BRJgeIWXgoy3BAfgYA4AAWAxBNlWdjjQAW0GfQdgfQ+WePiWZqBnAtzzdoKgCmUgBahncakwAxq3cRb4A2CQBA6QCwaggVHHC+uXBmkwAFk4AL0XfCJQAQmwfsNHcl+4dVwHAN7FFNjwJBhScDiIZtaXgweIbywwAAAQbg3HgEXIV0MgBCVABRpXgRXYbotAAAAwhVN4fiEHYQaYhVf/EAy6V3h+cAV+kIKIJwHDt3WLSABosBTYUINuiHDHVnByOIdpAIInB3ocsAJ5+HMO6GqudgNSoHEcF3s/4AgLhoiR9gDGlWnY4AM4YAJyyHjxtwRWx3uQ6AeVWG8KcHsh9wAAUACeaIMCyG9ItmKlWH1swIX3VocAgA2syG1ogAYN+GqwOARwpgc/cAd3wHHudoiICAoG4ACNsDgt8ARPsAKfKIxpVnJcWH3AV4nFdwwdiH5ExolKIQihqHZHpnKlmIUsAIK/534AEI7bNo5xZ3poQISrtmpMQAXq2I4/UAaGaAC8IG8Olmnjwj1CcI80WI0+iG/A94UpWAEK0IFF/8aLnXgTquCGDIlwn3eAqIiMJliRK1AE4kiOplcAsYUDPrABRQCMGzAEYCAFVRADD3aSBekA2KAC+Hg4QXJoKnBnOJBzEoCF+FaC9WeGBllk0agUG0BtDBl9w2Z1dBiRAxCRvAcADXcBF4AGG9CAVPACTKADUIkDoNhmbVAA8DiFCtCMAAAB4IaP2dZ2I9ACyZOPbQAAPNh+ayl1OFlkBFAAjmATilAEpKh2DvkHiycCpwiC7QebaPiU3UYBF0ABG1kGQ1cGZbBqLiYERGeYDgCPt6cABlAAy5Ztl9l2hoNokpAKdQZ9S3CKIvAHBIl+8iaPOWlcgmATWdAIcnlk+//GmpiIeDI5guUJfHYojhSwAWgAd6pwAYbIXS3XnlmgA6q2AVn5B1znAEZ3j0ESoPgIBaPzNAeXeMBXAdYpb4qYk0TGXd1ZE9jQBtyBZhZKngOge7yXoSS4e7qHbwCgCoEpdzrABEMwmLypCmgAAQUwnw/GZsN5iFsnfRP2ZQKKPcwTOiFAbVZ3eDbJoA8QB0AKaQZAAMRgE0UQjECpcpUGkB7Khbyne8HQfgdAACZQABAAAX55AYGpCIA4i1JABYpQBhsAAcNpoTN6AKJ3CVDQpi2AbS0QluP2DL7QNvyohV8ICqYQdR1IhddZpEdaE8WgpDmob8LGgzK5e1eQb7v/N6W9R4cHkH8QQAHDiQGjCQGBWQauBogoSgGHCGzSdwL+ISkBepkE+jtfdgL8mAaQ2Iy/hp0cCHkhZ6Q2oQoOAH1qxppauKssMKWKGgx+oJdXAJsswJcNWAbEwKIuym9W+oLtKQiMaZLB1gGowErP9GFCMG7j5gupIAmooKoHsARXMJBRB3mPlwBheJNFWpo1AZ64inLCNqxswKrs13vBEJH4Wg6QCABzd46DyWrEIAhowJQPBodpZoUVcAAc4B9hdAkjYDiooK1HVQKiMwIckHPi6ni/9pgVEAuPGQABgH4EAAQ24a6TFocZCoK9OqzEmq/lEAW8xwIHQAFlUAWK/+AIi7B96EgFnEqYxLABLYpmhScCB+ADIYBEXPOwBPqc/jM6T+ADGNCPjpedHOsHHJsAIcuLgUoTCmmWPBivvYevMRuR5TCswTCl93oFfwABOmCzjhCjxlUAFLCbikCYZIpwIjClElBqPJACKRMkBTo6iZMKIwC1PLgEsgoKYYiCCuAHa5AABkkAEToTNyAICwaHPSiTjoqvLBAFK3u2weAEaCsC/PoCN3ADirAIyoqN/AZhJhBbaZa3U3oApTYaZyNxz1mgYZIKKjABGCCTS7B1FbAGGeC4wZAAa7AGFRCatEoTipBdQDmHGXqvbMAGnMsCIhiRoHu2IkAAmnoDYP+AujfwakxQBoa5uomXhcS3BlM6AEk2NF5JoBQ7OtxjPTg3AGVbfwmQARlwtpS4Bn6QAAVJZLkwuSABBNBasNLLhffKAmwwtuUgglEQBdsrAd5LBGAABkTgCFVQBeh4Azw7mIUJtABAbx2bBmuQhcIxASewAuPSrc0zsd3au1GboTa5Bk7gBBFsCZawBuq6nfZFE8XQCIxpgPirjWwQwTAbDNVbDtb7smfrB5DovYpwuooQAwTAHQ7grCOqA2WgCoeoALGQvDhcDqDXAauoAuLWPJJQAh81w757lldghfwrupYgDMWLtaBQZIBaE0XQBpt5ZNW3hdWbxA48weVgCS//+7JR4ATFe7beG4tVcAFmaoiWVoArRozBkAHEmwFOkIUmkMaHwz2Jc1Ri8rS/i29/4Ad4nAHIwL/8GwsCHGkdSADsOhNtEIw5N8hZeIoRvMgU/MsR7MiOfLYsQACt9gJSgI5harciWskIh4W6J8XBkLyePACyNRdPEDy5OzpJdwL3q2/WLAzCYM3JK8AKEAC1vLUg0QY32JDSmwZJrMSgq8ROEAWebMwOcKIaNwS8aaLo6Gqshqwb4ADFJrtTSsZXIFujsZLdfD7gmm8VIAxOYAk5nLxjbJOPeZNEtgjtWnDRi2/ynMSFzMg5HMFsYNHBEAXCwAhTus8aJwVl0KIs/yeprmirwpYAjuvJTkDO5YAB8Js9wVOgkgAFJ2CWfxAMWJDIGYDHPV2JIPuYe/wA0kgT7sqZ1YeXpzjPJ20JE3zPUfCyOVy83avMeiDT40jT2WiNaUnGTS0MyIAMlkC7PmC7SLLGz/k8votwFZABAjAF5CwMWIAFGQCGIKvOe/oADlATumywB9jEv8zDTvzLwaDIjUzB3XuigNhqzUzQLCqXZ5mhY1zHFJ3D2IzGYJU2uVvUIYBzB7B1sfDXgz3Y+loBAZAAsaDOoBAAvNC8IEGomOvE8yqCiRzB2FvcJk3BORwMIUoMrqYK28cE0t2brFa+xFAAByACfjDaPI0MTv8g150Hv0HiPKIjZVALAMUZCxmABdRADcIQwAGwBlPgsekchpFJExRKfSI90nnJApKtyPeswymtyOWQw6LLlxSgAy9AAfO1YnELAUi5ATiAZtpNvDlsCXGNDMJwxjXQ0CRQvyUwAzOQBYZIkCBLvHOwBrkNCgrAv+kMsgp637hcjabowCIo2U6swzxs0Xdc0ctdAfnXnmW6usWWl9a3q7pnzd+t4XGtC+7bAXXtI/JLJpKwAQSggRwYADd52wnwmB8gAMqbzrHgB9IHg7gcnjzowNZbvRhe3DwuDBiew3MgDAUeBaQ7qRugqTzrzz9LATjgAIaYlh2r4hZOzhluCU//XhuFgwpwmgUMTpCxCgq0kOVYO+cBjK6y3NtB/NvveoBbncgEbtE6HAX/XdEa7gR3vqJ/uX282YdMIASF6al/UHi4nbybLAACANdYAOfhzTsqcAIr4gMQQACSHtUcOOkKgLxgjrUgmwBTWABlYNU8aoqfvuPIDeo7nsOlnQEGoKUGbaGt+7pySwEQAACzHsCEXrwZMAe5PthwLgFJhhwFYgIEcAD0zYH4/uKxkNsvzoFT6AAG7BH5zYNpQNyRjeF3TOA7nMje3dMWvQaRuQEXUABMGaN/oIVbmMiViK617siwPNjtTQ3IkG9w2OZHhoXFJ9W0MOmKy+wBAAks3qcB/98R7rzL+Fa9WOjA/o3jvzzPPDwFU3DRsQAAf4kG/zzQhkkBNC0CGSAC6AqGyMvTcC3Y1JAJmTDb7N3kEoDVA2DYLH7YsarOhw2ytBCyBABz7QzaeQnZO3zHci3Mbs7DBg6sBPCXFI/nDSjd5aubBDDrHI/pngzYgs3eVk8NhN8HWGCHN5h4S8DsXt+Bkr7bkw6y+26cDoD2HmGymHgFPv/fh67IoC/3ojvWsVD3aND3v+eQrouYjHmCyDvm+/7WWCAA7F31fdDehD/XpFZwiWeTV/71MY/vLE8LyOvDDlYAmM8RPoBzeHsFGA7Xirzzcm0J8zzPBe7xFAzx7UnJTP9pyXKYyOTMqsqIrlLsyYId14Nt9ZkQ8liADJcmgFxYAZLrAAYQ6fh+/x8wB7Gg0Q4GEBCYaCFY0OBBHyYwADggopwlS8iQWSrH5iFEiA8fOrEkzEmGOU6cBANwQdCGMil16CBGbMOFAgQAXAlW089NP2syZBAmUSIWapn6UMOCBRmWAQcYDhhQzgAxQQQeHANV1aopULQgzUmgIEECPwoAANhw0KxBHx0wHGB7UWLGchPLzXUy15JIj1MsTfkIAAKamA4cQNigamUZJsQgHKAZLGesWGuE9expScAjan2GEi2qK82ANKHXAEBDgEDMqVVp0TJlihaCWAESVAhQoQL/rwMYyp41i03hAaZpyqWJKHHu24fC7or8yHOyMJIFSgMQETqNBKUEHBA4MLdcsARr/Ozk6RPZFCxC+wzLFDRTJiw9P84RIeJPAR0xAGRd3Z9WgAAUsM22Pyr4QwIAKODtoCxMAEACpkArDqMJMSqnOSfmmEOAKTp0wi800NjgpZiWSi6+C8X7KrIOjSoKqPcyYa+99jjDQoA5xDNgA2IIMIA/qwCUDSw/RKhAgWMqEOEAB4hZsKANZAIONOIqzMiijCIqJwryOvTIrw0EQYyJMlpSZQMKIOCOoij8+CoAFpERZoqjigpqGDz7iJEaPuMDaY0rpOQlK/7+S4CXCvyw/6mCJXiJAxReACjgSS1eKGKhKYOb8C2KKpwooinmFEAASyQFTDvtcPhLhzJ02ACANJjLQDwz1nBCmKLq5NM9PNnTE74bNVxj2CuWSCAASAKQ4b8hFfADi0cEECaDWBQA5RgDyHryhUbGyjS04j610Ly35JxC2lslpYAAEQZg4d00RBhrrQEgEibH8UBC70U73XtPs/Xe6/NeYWP56thCD64ggQyAis+PWI7MFoIFDxni0qWYYkM4S17ESLgIwb2LL4++lA4CCihAI83tGOvYRRzJm/ORfoEKaj091+tVqPdGnXZYg7sCJQBahjajKwDXkDaDhcFSwAACdjNLhyIcnP/SO3tflEsCD3rgYAIMmjI31Ock3QANYlJS6UwIHJjJiaMygHuyKWiuOT3NYux1xveKEmZYoN/kb8gErIpl1lg+YLqCOKCm+CAdcKB3AF0qwlrOXAfA4ARUYNCAA7UGkIgvsj8sgAK3xyLABNYdOL0ACR5CRoBc+yWqz8zU07nXvNuLD5lZ54As2WNlW2MOP1SDRPE1YvnoNmwBwCELgyQPGzTZI4LoJ6Q6aKeUa1zY5ASw6x29JyxMR8OBhq4QLrRyWJBAAvRvxPXFXW2+GeCAddaG74Gt4QOxSZaQYkG7ctBmNZHRCa7mUIFrjWV6BGkQ6x7UFNnJSS4sOIAPYBD/iFIYwQUMCMEETMCUiNxKPgkS0UlClDIKFOBBKrwRNWhXO/xRQw3/4p3/hqGZGXFmVh8wgzmO5pVYoEcYfiAaLWJhQ48EYwpM+wMv/gCANghBC0IoQhEagYMLwm8umuvACVwQCDT6wgKXICHogHMhnnDECQS4QJhYNaZW6QANEAAA3IpyQ6MchTO7EljvhDKM/3nhf3kjCo7MYAYiAigBh7tRBhKwGlDEoijkEcAakHSMsWBDC0zIQhHa4CAIfWY4B8BBO66BRjSWwgIWcIEGQgA6CNVLhRQBUUxMYBoHsM5BD7rf7fhlu6C4p3cAQ6Q2FvmrP87hA0Q0g8FisaFH/wyQaFWZQ/rytYbbGOABBFBQFnyAA4VkrBwDAAAHXtkEEIYQBjBABQk0QL7rcUx7pToddyRwhZHghV/5c9gxk8mnf/0qb4j0QkO90CvO3GtWj/zKhnBkMEI9EQtpqIBOwgm1wpwSA6wbaUk3VwpYgu8aMHCBC+oZAi5gIGz6vIj6eHSmNKWpRGm42zEddtAa0ah3w3DoQ3/ou1FlgIhETMD9pjBJSMgAFJBoABaY5gcn+IEX2JrUKVmHAxy0Aaw46EAIUCrLll5Cra94BQkYcILQVYkiGyEJYdKmkpXo4EwF+ENHbNgngyIUoUJRZkK10dBmHrWRU9CQNHcyh53ERv8GUoUEzQQggitYgqMT00IRHNAIbIS2COcs4zXQygANaIABr7gEW0nwhBD4IGwUkohyTBelsTAkt2yhXw5tZzuBxehfwsVTQ52pyD2NirGKA4mGqAWJAl7ThiJo2GYdUBYvYiML2+UAWTugAVSMwK2pDYFqSaDWS4zgcydMw0RuhRFhqIs7BuDFP+2iPzshc1c345lwhYqnwyIWkQAcFWQ1NCosTAEy5kBWeOITDKWlYQklIUgXtVtKyZmgAytYwRNQgQrUppYBDCDBh1HxBA6cMC51wpVHCPAXEbUEKmgqgNuc4FM7qWFXO/SXntTwYz7lbT0CBjA0BfDYFv9sDY//NJjSsLAGhqXhAARQBUHKYOENeNUEOOBAFiTxDFSkVrWqvQQqUvEEFZRPFxPpUIvmWIANFOACd10JTgmQBkDuNxM61qFg97vDnAGxmYuUEc58Fx8EKxdxsTjaeAQwmwxcwQAXKAgYstCIRmRZmDjYQAtmUALUhli1I7gEFGBbvvaO7TJTeDEaAIAbpXiLLTx10X5tnUwaBdeQ6mGoM/+HyH/ZsCPnGpW0cmTEr4ynArEQRqCkpgViNCIGG4AADoJJgSwMQRJPGHFqU5CC1I6gBS1A8Uw/FSoPtbrGDPlDfVggSGDd7tZ4ExhCdyhcZh7XuHs7KnzOZdGlDesD4IyF/x8qcAVh3KcKBtFBG677RdZlWxIqKG8ILB4CcKtgBFAYgQp8AAAJaa/NUXhxmGY8IpYRoLcFtXVRCLs/fOtMM7526K8FLbB/W/Rns6KWmxQAUNIcBAgxOaeDTCAEIazgBCcAtwa+LWIzjyC27JUL3CaShtMApgCnEwRL0MTHiARWz4Mdbn/9JSOi1vzXzdRTUUKyIbJNBpzW4kV9HOAIoZMBA9Z+0PSKgAMfcMDb3x4xA0r9hHt2QALtDZdyyvFiCgDgDwPAzm7/QMNb7wpg+OZvjALWqwDX/Id56tuNAHmeyYSlKk/bg1lU4YCRuu0AdSTrBE7g9G/nPrUk2HgITP+w+I5gASJ0EsFg0LRH2QPUZjXK/I/5J+ScOR/taE97URX560VGFMEv+lsAjnEMBeRiEWapQgFkigOZ7FEhZbx4+1PQDjND4QTXg0h85jSFKwxGEGKq8x5rTAApujUgc74fU4M+MMB/QUBmAqJMCD3RWyREajtEM4pGsqTve4AY4A0IUAj0uy63wYDA4wAOwLgUsDgNuIRUSAUNCJ3skZPJEIECIAztcB0IqMEa5Cth2LE+K8DnO8BdKzTd2R0HRCwInBH705X4WANQiINcWJALgD10agM+UgoNmwAfOAGLI7wyW8HZckHgmYMXpEEDEIFgmIvQwJ78+jPnW6bn67f/GHkm7BtCZ+K3oSiKfYkmUDAANFgQVeBAE4AAGToA7KhCDsDC3CMhsImd2nIvuXGC4iOMGAREKRGByTg0AWiAOcCMH/ufPeNBgLm3I3OCHhs069u3H9q8RnIYZHCCWMDAJ8kCdAIrNWGI+ZEpLpiAQsTCEMAnyjkKObkLxzie4nsdCuARvaI2t4kLOwScDTHAzejEXyEkAXDEDNifHzoufSuqOQw0o8AViRiAY8hAStkAE2iDRmgDKZmSAzCBWxRBESwfcomimxBG11kX1REM14mJGxMAGxq4aXoEBGyPA3RGzXCPP3KCR0io3bk+bTQuHgKW+HCCAygAvKOUMjDH/yK4gFygxSkBgCrsAJAEjo7xRWAUD5wYxhiSCQhZDo8ALGH4AIhhhMzwMf9SyD67nSDsA1/LRkUyLoWCj8nIAF6YFEopCCZQBSC4AG+Znwhhi99IA13QBX6RCEuCGMj4gAqoR9PYugKwmj+4An5hLEbQEJx5RrPbPB9kwzzZyWZqKIFsu4FJOKIsyoIYgirYg40URN5iC4ZItZfhDIhwjKaRDV44jcjLDq7cOgAoB1zBkcaayQOstx27t5uUzKAAtLV0Js3wC+3wytCYSLo8CyAgA9hbi8rry4k4gD+wGaO4C0s6ltUIkMFAHW9hCr7sqxdxzDlwxh9rj968TD7rM//f5LNHAEgDBD1gwwIC4A0pDE3eKAZV+KK1YAuRlADpuDPuGwkoQxoAgZrXAQDBwIDYmQz9sSENMc7e1LEC1KHgLE4+UU9qKM5p+oA54KEgAgDnzM+6bBDqbArwJIgCWIKI8Ig2cROiUYD/cJw4+5ZyUIq+up97wYz3DM5bK073nMz4fIQGoKYN0ZuhkABK00/9XIT/A8/H0QK+WjPmcAyhKZoAOY0NcIA0EAYZyYQBMIFkrJNHaCxN5JML/TMJtRuA9FENbYAiCo/63BMJUBARbdIyeDYUPYAqEQkWtZaq8D7DZBers4R1NIED6ImjmAIB+gAJ3ZUyjU8f9dGiuFD/xzTSo0EWM2iA93ggB2hSOzWLAgAO4pgLN0GYK1UAGOWrLdUcKX0RxkoAI2qABkjTGrK1ILXQDM1EDSEic2CwBECAODUYAHCSO+3UPBUdS4iCYLiChQmSF0WZPL0Vo5CyxfSbv7nUOG0ACp23NFUDSM1QTJQmZEEABIAuBAAQXjjRTm1SMngjinAMNwEFrBgaJiGMCzgAUSyKNFiIcoim2HiNBTiD9WS+zJNQHQtSHJmCD8BUBosqZuEFB6iyYW1S7hCb7ygSocmKWPALwogzyauJ6ziAl+mk4kGAD5BVHsu8m5zV+GwsaSqiAEAAGUABFFgNsdjDdRXRdtUIm4DN/6FJgBerI0E4E5jYjrEQnQSDTVpAAUzdTUJKJh3bM/YkUiLdUEWdpmNZ2IZdlmOYy4gNzWJoV+0ZCcewiv+Qs2JUBWJQBUFAA5iQCdFBBvBoopE1h38t0wJcT/YEsgzdUUVtgDPYUMiQWf94AGG9WYskgD+Qqzb5iqLJigAAWkFoiY09mxg6IWQoh7Dwj5F9pEycTKl9zyEt2DlQVIOVJgRg2IZlDVN4gBAFW0pxBDIwAPcJzJs4EmVljdOpI6I9ibNBPgmwBFJV1tboD0wlUx0swB7NUCLt2w2Vpg39AHPg1cHFJJtFXN4QhFzgBbEBnrAgms5VgBgsxv0bkZe4AP+YOAAW+APO7dzVQAEjutupJVjgVIMG2NF/haT5XF0EoIHjRYG0hV1KIYZccJkUMhJriU0D2N0wcSGjBV4IOBAIcg3CdQ0EMKKx5Ec1XNnQ3dHggaRH4tXqpQEa4FVA5VTtPYsN6N56uYt44QUERVsDgADgLd/LPd88raLWmOAJ1l/6pBmB9db1LE7HZLRKpd7qhYRezUOIDeCDKAb90FOKiBfbKBQ9TJnyPQlBAF6YMADwK14KJllMXYDnbT4MpVrloiZerVQz4FVISNASNuGCUIQUbgqKYIFgIN5CiZqVGRHLPd8argoKzuHARQAevlCqndCoDdj4nKb8HWIjBhD/3VXig3CEFI4LCjESZa0KAijaEDmbRaBh4C0AG8bhLWbYBXjaCcXbMb7MPtvRR2KwhIUE/rVeUFhONi6I0ZS8ctCFTkmDKmKNqigAOw6Ty9VjPn6ALabg4/XiHh5jqh1AMY7aDUWA/xjZ6l0WUNCWSNaCSeaFxqUIETAAA3CNoeHkENk/YS7aCwAMcRrlCV4NGjCDL0Zl0e3E9VTPbxWWhEWByZIBGpgsw61lLRAEMphdfcoqXl5WUADmYB7mlwCMBxBlZG4NhuXVONVg0RXkH3tUanjeOWAsEVZYEeZfWhhfbl6EGOhe+PmDdkOSXqYF3S1aK96/RQiRYlbKY2jn/84VXEx93h611TXgZaWp2uI03efFxFhY3f6dLP5d41oGghjgDuJIAwAwgD/wpB/JQwgo2kVYhP1Lgpt+aKOVisKlaIY1BeSN1TkArCnwgwOoANNdapA23QGi3myerEcWhFr25lxYAsb7DAlwRKoIgEmz6UUAAkHY6bE+mwJ4gF42XlLuj3c2Bx7msxvhCxFgrJC+WrvGxGkyB/6t3hE2AKqOZJV+AKz+mAHwCAT2apMIEZzW6YfG6Tw+63HOClMIgC2mW15dACCWliuw0Lu26/lkNP2VAegqmtcNYJU2gCXIrIvoGImEaT0UhGLcAEcAAp1W7PP16WTGCvZdDfaFhP93vuD9cs/ifNmrbSz6pFQUYGQa8O1yTunFpV0WYIO3mBYDUABALYzYnu0kqO08Bl4fSeZXHuWR1eH3NYdMPNP4rJFcbSxqcVOo3mtaIICBYOMkIINjsCIISQ7q5uWomWE0EARH0G7GjmjU6Fz2FWrWaN3/+GAj+gDMPtNv9dtoEYABmk8jNukjpmUTvoFFIIMHYLd/yog0wJZj6O86QoMAp23Ghui2EWW6VfD+ABD99WIeVtSWxQwLLbAxpSaSXu5fnTQ2roJFkAlvwayLyABeBtT9M4lFCHABf2j0jQkD8A8U6N/AFVytCIAq598FqHGMxuhMGG64m4MPLqL3LqD/mg3yRdhIhhDEWJmLK8AWA3CAJQ8TJ6dtnIboju1jWuDfIp7xKx/vRkaAzlbUIg1pHKHU/N1n/Q2ARw5yvByLXCrgUeXl8d1Yk0gCJ0/xmz5flPGR/4Bn6l1daz7ekfXzqx1uzy7uvi2i9/XVXoUuR6cjJb5LNo8QCfmOA+BlTlYFjd302Rbm840hADiGhH0kM2dd/iXZd+bVVD/0VG8AHLnaBTjj/X3f7ixtsK2CGCCDjw0OjgkGXn4AThaEvwDwKqgCJ2+JMFmZIoghGw4AIq5U1sXmhS3lz7VxaC/u1P3XalfYRu5fwtT2m+V2b7+gCNEsJ+AFtJYOo90/YnCE/ypQmxQ/CQp4dzU5AAXY1XJl5GUx9eNt8A+4jPgs7kvMVTf986iuXjUm+IgtBjKQkkmnEj+wdOnIY4iPeEdIiYov2jQBxFdTAEaHLhoQ3KAe2dd4JEP30VzVTQdfACMqIjPoX/6VdQ2H3Q5PR8qLkCtYEl42iRl+aBnT+Z43WhuUoa5+dejybSyfYBm46B62IYwebg3t8iJGdi+OdevVQxNGg5WmxQGYPKbQdahB8aS8aWAP8IgXayhPmbbZj6GxXsHN5tY1XkhIVHwu0r413X8fetG+5n8WR+3t8LxkStAYgCsg1cJ3BEHYA5zeeWAnBiBg/BARETSRCWPXcgCpcqmkd41kniwaN3QOntR/NwNGj3WPl1wT9uaXVk0JaBfKMxJeWH0gQIOwTveUUHfFn/1OHpEiUJPqjvHVWFjQnyzXmKxHCuS7vREH/3N4VvZ+lmVI1l5B+HtetiK2wA1eBk8xAQhHSYA4UkSEiEFFZZiUKeMIyKINqlRtqHjBAQBTD0yBAmXqI8iQH0HRohUgVqwPc+Z8gIQAUoCSHknO5KjxAQEtOnfy3BkQACH5BAkIAIEALDAABgCFALwAAAj/AAMJHEiwoMGDCBMqNCgHEyVKdOg8pNREziQQCzNq3Mixo8ePAjFhmjUGCTBgs4BFpDPLiEsjIGPKnElToUiUKUnmGCNLVg4+fHbwyKHEiJKaSJMqTQjiFEuUssYE5fNzx44aQYLUsMqHB4OlYMPO/IIkh9mqW8eM+Yk1yIS3W62GEEu37kJKsoLWaLu3BlWgV3v0mNDD6o4eHDTYXcw40MgcO4J4mMyFS5DKloMg5kBY8IkQJ058bUx6aRNKs8pevYy5MuXOEy5rRhwiRIrSuGdqEsly7VUuk4MDD/42uAe3mzmMzs1cY8OJOvlgNW4cA/HhrwUrb859YRM6UNdC/55OfbJ1yq49ANfMgcOJFt3jF2zyfVZUteMll8dwnjJ1wZutIN+AgTzEUlRIqEYedf2pNwEXb7012ATuqVAHgfGpBExP4kmXFXbUQfhghA5GSGEILmDYHXj2lYVWDQBOaGJngvkwo4kcjKAidxDZtxZVP/GQQgoMMDDCCAxoUJttT4xwCQyXMABaDzZKqOOOzMlBB4JnHaGEEi64AIMFX5T5hQWooGJBHXjgAUIEEZTpAmdv+XAllrjhdZZQR4QZ5pNklgknnJNcBAIIbuJRpgZV+vAEnrnpGVgKYMJg6ZNlnnIKnJriMUmbhyIKpwUh2NgDfJCWhpdeITDgpwuXqP9p5qCbgurmoW3GyYCNOaaqqlRbpaDBq7HCYOascLZ5a6hwksABYqj6ypgRQcnFwCWXvGrpmMgmayiieMR5yQntqSBtY8DksFUPGlyLrZ9QGtstnKHiqigMGrQn4LmLGQHZDolhG+slr7wSJreDxhnBsvVGIIkG5LbCb7//8jAstiSQ4Gqxs276RbKhJhpBKhBzEO3EYrnAg1zDvlJkCrUJywAJCCt8ykUXKTsyxCdIjDJdMKzMAZEuD9leez74MLSYp5xpAZkLhztoKqWuYMfPdJ2SglAMFKxBu12jcskIShJ5ydOpaJzkK7LGSfUJ5mItlgVChtBFkQx0cfcrNKP/QsLdKbzyxSkWvKLk0F+TkIoFqYTms9xgfaHBkEViiyS5E5zwdbutfhyBBVEyoCbjUKRixwpQQC4WJjAkOXPGSSqpwRMtuN61sXGOEAIHIYxApgV2SPJEBKqDxQoIZ/55CQnLXwJF6akQnLeYnlswggrYP5FKmc8Xv5QROKlkxJ8woJLK+SWg0nXBr8jbZh11RAD/oFCU4H1SmJw0S0sPWZomFOZjHAlctj6oLYtheJDEhe5XE4hsSBbAoIQRYOAnbF1qgHhr38cYVi/kLZCBM8GEEeyTEmCM71ViIljBuna7jyGqg7j6HAxASJNThO8LFHRBF3QYJvaxb4cWoBcM/w8Fpy+kgoYzseFJTJhDHoZph6/owitSwIM+PQ1UHZRaBDCCxJhEQH+zgMEJdwgmvbkgikfggZBiF0RD5QpObOriTOJ0Qihhy4fL+9sRduiC30UgZ2+SWpm4KEeQgMAC4yuY2J54xowNkHouvJXOBvWFDxbyIyCowxdcYsdsSZF9zMMUvdyYMIXh4ZIzscGhcPiuM/qQfWY6YAQ2NahTonImVmCFDdBEgh5GiWgFG1MQBVnKON4Sl3L4gtii6LUhDWmPBjPW0wanqYXZ4Jg00eUXVKgEvTHzFU96iZm4tak6XBObqUReHqXoShKggluCUtasCInOmCDvFK4sWCPdKf/MWLbpWOespz1TQTgV8k1ggAqU5+JUJksK9CM2EFv5GolQeH7Mc2YqAT0f6hEQpOKVjnSnrARFyzKtiRUcjUlE9bi3b7pToccqQQlmYIWUgqQEUJAe3vLmzXAq1AIy1WhNbeqROkBhgBj8WheOUCR9ChN9M5gBCAJK1I3UQWDsYwDMbGMbyl3rfJWcgQ1QWtWN2AAPd+RbM3e3pJnF6mnykypZy7oQG6gSFT0MaZESN7ppDqoOUx0qXRFihamyLlsFMyg4+3qshU5VCoMl7PEwgU8dFmyA7JMVTCs5qENRIbIGsYJoKUuJHvItpC9t7ELxAFgbZCEPoB2IHFgxWkT/5tWRp+1roBLGWhv8YhFFcANoWaFLVmiisGLKJ2rZ9rRpLnRhJbCBFC5QgDbAlqjEFQn8xGoFOdRBA15aoV5n9k7nLgxOM2WFFGJABgJQoAwplQL84DfTEmCCtnIAwQjCtMwRYPC0woQaJe0AAiu8gAwAAIB74YtOKUhhBsGTxJFGYIc6yGEGeCCuXaULAglnzL/Ms5R53RYBVvwCCAhWMAEckIUsoDKXICiBHVqgghP4gFwaGEEqItAKSeSBCkCmAhhe0IIjqY1mzXUu6KJrBT3sIcUGMAAATICDIriii9KtQwkk0YIV2KgDb+mAD1rRAju4whVZUIUqNrCBMhAj/wuteILLLqvbp40AFSBgxR1uEAMCJNgADzDAAQ4AABxswMX3O56Wr2fjDpgAAyboAKQnsIJWmHkFalYFBSigiiLA+aggLtbi0GSkOuj5DmVIcaCjHIdIDBoDYj603HSJiQjgVAVffjQA+AMAQndgBU+Y8Qo2QIxMFxvOkjiqI4uVplLb4A53cDKCV83qSPxh0Amm8gZ0MDFValnCXnY0f/gjgUGbW8wraEEL2LwBY5dhxotLhdiY12xnQ/sORCDDtFcdh1YvYQl/uDahCVCAbQsBUrmswwxw+oRwmyDBGDD3ACQwgIofAAM+WIEksjDsDaBBzcR4QYcVnj6/wS7HM//4xQ+g/QNHJPgB/DaAvyWQhgoE/NpTrrIqmLCjTG65Ba1o9KPJXfGiV1wCFC/0CSTRio6jod3EYMIMRgCnxYH4ayOYgRRWzvIkJBgArJZ5vyvw7z9U4OwC37UJ2kCBDQwIwi14Qo1zHXGkT9zoRkf6AX5dh4az+eOqIEYZhNAC+NnhqF0bgSSooAeu39sRCI4yq/utgLNbHu1ILze2O9D27uTBFSuw8QTE3esDUBzvqLd4B6BwCgZ0vN2Bf3cLzpSKCVNYCo2/9+PJAPNA91sMcRCDGJZA9j8ooPJnT8O/zT1lH6iiOVmgO68lnvqiS+AKVxjAATwAg1P4nd2x53L/TklwJChoXQ+/0D209bCIP4u935Gw/PITbPo//Lvsria0AyjAbdxkwQG6Zm4CeHqplwYDkH3a1wFk8n0U8HTEoAhSQHjkV2aMh36Od2/5BgC+B3zwV3l/sGu/tgKN4AClN2iREAcA52oYYGgM1hgXEIACqH+9dnpsYHRXEAzYl4DnowIdt2loEHU2MANCUDrn9wvpp353AAZ7QACSJ3m/JwYVAABgBmzq1mVtYAKDdn+RsIUD1wZuxxgv0AbTF4O71mtFlwZskAZpwAIssIYskIDP83qb1m5l8GAz8GMOZoRIGG1JQADU5oRxcHyRYAI+oAEq8ASSIAnB02U+0AGl/0d8WxgJXwcBF7AYVVAAGFCCAkh/f3B9A/AGaMgGbPAGb8AGLJB9GFBpcgh1ZUAFQ/ACrwgGuYeELRd5cRB2/RYHFVBuOLACI1CFz2MH5yMJKjABEXcAJ3iCcYBtDvCFdKEDJKiJpkdoB2B/FSAC2WeAafAGq7AKpVh0IchuaPBxgscEZfCKr3gDerCHGQiI76cAIjAAGNAIKtACQiAEipiIwng+UFAED3cAFaAAwLeFCVYAdlEEDpCJMYht5naNV/CGLFCKlkCKalhxGMdmm3YBF/BxOqAKELBtZRCSTAAGRwhtJ8aEBhAJk/d7CnBtbVBp9hiT9igJaYI+PhBxyv8YBwEnZQTwfGIhBP54jAKofb12c38gAmwIkREJim8oAR2wAT5AARfQdpxWjsRAARCQlQ7gABCgA7L4C3rwAhfwZ5HAge8YhY0Ak/ZIeMkGQItTSU/giDI3kFGmYBRAF26AAwpJcRJHjQGHjSwQBaZIimxIkQZoaMSmZmXABEPgikzwmCG5ZhDgAAVXBlWgCgXwZ7m4mcenAJLoaeqGj4mYbJJwPmRSAiNgjGCXi5L3AAVADGJRBJI2g+UmAZ2oedUoAtg4ihF5isEQDN5oigBAmZQIAZsWeBRAmRcQe5AZkmWAmZoZfMAnBvFXAQlQAQfgAEVAZlWobomIPjKVCk//oJqTJ3OARgCVGBaN8I/VWG4BZ3HV2ImAKYpriH1LWYo1SGgFQJxo4AiqQF0OQAArVgA/WAYvcAMvwARjOXkK0GqRoAAJcJ2FBmzlBwXeWZoyVSapoAKzGXZRBnMEgAZigQPsmXl2lwb1F58VgIMsKgLBwALdGJxvCABspgPE8IAH+gKK4GYAupUFcAHtVgBRFn/xV3nHd50o2osq4CTYUjp28KRBhVMn4IireYuABqJ7MKLseZt3p33VuIXW6QdXEAXB8Aa/GZHeSJgS4ACL+QI6ugiLoANM8AJg4GAI+pwF4GelF38R2qfXGaFpIAEmADdg46QztXAlcD4tcAIP/1elV9p76QkWV6iJnVhxKPqlYOqiv3mm3NiNpXiKAKAKi4mnAkpwy2mgdSoFL1AGG0CCKpoAflABfjCra1CRAHAi7aJjqRBVMiWMwnOTX7eFgCZ5BBcWTCCGtGl0auierSarL0qmvxkFMdqNpngFNEoMVbCjIXmV+ymgBfCRZaAIisAEGwB21uYHuml2shoLaZABBkiIE2AbGmA+iJqoaDKemRhlFbCScQAABXADYKEDyEqANTgA2xioJriiwRAFTuAEm5oBDQsI3sgCEkAA4UoERKAIVfACVHADN7CjqoAG3eqtBPCqsyqrIrAG6PqbbzAAJkAhwqJjQQVh59MKev8JdoL4B4HYoA9AAP2XFNGHA6V3ems4AKN4qWbnB8HgBGTKtMGwBsEAsWl6BSJQAIrwAkRwA1VAiaogpzcAZENWBcQwmSkKprK6orOqtMDJjfIYrzmWCjObqBt6swaQs8h3iz25FG0wejN4hvjpjRMnAZr6tLOaAVHrBNO6ClFQtRvrsWWQpwlGcBQgeAd6A0NQBhTQaw9qnQmQBiKQtiq7BsIACBK7d3DDAKUzU3YAYXbAoZmoi8dnecFnAATgjDUhmz4gtKZ3hsFJimxAtb/pBxlAqxC7tE4gDMKwClOQAVU7pwdaBdu6CBcQoALKlVCXudVoeaC7BhmQAcLQsMf/Cwimu6SKeKhP2rqSFn8BYJ0BKZAqCQB3mRQQAGb/SIBpkKbdyAIs+pvdC7EN642r8L3fmwFXUABuegNgsJgdi6A7CgRo0GdfV5RHSbxqa7jHm7zdKAE4ADeICKULFzyuC5CxEAtn96ANSrsimhQJmYm1WXGiOIpOILFkGgWBGbXeG8DdCAjJK7HCQMMGzLFg4AjfWqBXK2Ra+58OYLL8G7VL67+kK7ED0AEnAGxQoI/n+zCOSHNrcJ2daaV5ixRu8GgHgHdsOIrcSLpvUMPBMAVsPLrI241uTLpOkAYGTAUOVgbRmGDWK6duygTEUJSyqrQRabz/G8BYgAWAEMWJ/1GPini+waMBHTDGn3udw8uzPctzSAEBdUfGo4i/3hi8GTAFFzy6WCAMpYy8h+wEIgABdqwHUrCtG0ABkBu534qVAKCus1qmfgC1DRsFpLsKh4wFaUCIK8DIjgzCjlhx3OuuFXCLMOcAStEIEaesA8ACnZzD3Uim3DsFAozKgIDIOmzKqzAArOxgVLCYV9vHzynLfjZoEycCFQC1L+qwDJvDEvvNiHyrHNwCjWw6UADJGGCwwjAHJKwAH+qaSiGGAV10N3jN3XjIgMCN3XvB3GzKwazD37wKLFAAQUYFqtAGxtm1zpug/pmZuZnLm/q0UrsKOhzMWLB3HFDMige3wf8zAlOKARLwBirrBwkgkKtmkEixAXqJd2tIitLKjaMb0W/QsKjs0nAABxetw29gApRLrq6qfwUwuSIJjcgIq/K8Bsu8Cogbw6QbzGnQARXSwTIlYSfgARH3ubucAAEgfP0G1LebkGT8kPfJ0r/cjccrAIh8yFDt0hD9BgeAlUMwBImJlXmsxyDda4HcsCrNvVALsUmNBVC9Chg3xYzcq1CwApFcjX461wFg0HZNEwgJADR4tGjoqSz9xqSovMgrABaN2YdM2wIAuFsJe4vJmOZIDCLbzhRHc7/pBN37tGDNvcaNylAN1VEcGiGgAuUbPy3gA6qtrhGqAKUdZac9E27/4KoGS4riHaPcCNHTOtukbNtYIABTcMoRnZ2TSXBZ3bVternE0KrIGM9LS7ihC9bgi89PDQeAcKvuMTtQcCSKuAELHXBHeny3CM1IAQR+9gf3K7HjzY3l/dSljMOlLAD4HMwCANiIPAWrMJzxDXaENpzzrQMhOZZJ271gnQGxsAZz0L3CIMrB/NSZkAmAgAF1MsWilzQYsI0S0L7WOdemQACwWRNoQIKf+AYSm7ix/c1PTbrJi7hlbdG1zc1Y4AT+igaLEJJAsAgxEI04t2IAsAQQWrgqnQGi673I29JwkAlw0Ad9gAWabR0d4AFDt3dDvgpFLnwQKpC32N0x8X+q/13N2Jy4ynvRLE3WH97epSzpyOvlxokGBsrATNCR1OVnNFfkoQuxGVDjE+3LfI3ZOz4Mw8DjloB6FDfNoNi+x0fXcQABNZEH/jiDsY24i97Sjs7X31zWpXzIpszD/koB3rqcgtfbm+6RubkGTiDKwgDj/hvDw47qmbDqw5DjWNCyZRjQlrAKwdC+YiCQpR0Hhv4RQiDNqq2psT2t+GzKUD26MZrehI0FUyDHAAABaCCgEaxgWd1iOpAFAICN3uu9OszNtE3vgT3n2b4Fqp4JEK19sNYB4jYAq5ABFVDuYkAL0onuNPF5yHoAulmmAFzWwS7YUB3lWo68tY3IV77v4/94o5oGudg2ZQG91C7/11NA2+Eb2IKdCX0Q8Tve7YKKAzgQZvwxAB8IAMpI1wYQqTHxeexuf1cQw958yPmu8k+d1N9sypJO2KPrBOipaY4wp67oZhuwn2YYo+GMynEe57Tt0tmu6qsu8cKcc472aMOtYGAnfGIAaDEwE0SWBY0gwWnwyyoP0QCuBhqO0cLA3oD9xGAvygAwld4KAYHH4iFpoxRgAvfL0guf73H+xITt8MMw9Dte9JYgAfQ3xgYbDK6/msIXZQQwE0LQdG1QlDRX4R8u4MIOB46/8la+w3ztxqVs6f1uAAHnasPpAIjZqp+I0U+Mz8Lu1HPeBzuu/av/L/G//AYTmQazegDtPJ3AZwAQ/hFUkPtZIIa7u432bNuXjdkBDs7tXf0WHe4Su6b8DhAU0FC4UMABgAMSBgw4cCANoFWAsAgThgXQRYkXLWLhCCdTH5CZho3MVLIkHDgTha3xsyZSgQIAxMyMIyaOAQiBdO7k2XMnGCEtWrTygUFhmjdJI3LsmJKpR6ccIQ4AgAGDCRMdtE7A4QPChgsbVOkoU0YHsQ0QDkp4IwwjFgESKVbc+NSjyZLD+uDNhDKlgAyx1lw5cDASzZmRCKDx2ZinkFYqVKzogHBAUjYR32KJ2hTlxTcHOvhY0cr0E9QtRkwusgHAawcQVBErw8Rs/1oAaTK4lTjxrcaneO/2Gbn3rkcsU4RlWCO4QiQFAWjGuVnAsWNXRSZM0ApA4eU3bNKsYtqxPOdMavpYPDBBxZMRUEbMh1IfiqQWrR0QAPBHwgEATIjNKwcOcKKi36TSqDfO7sJrpGH46usiiuZgyY8AFEhgOjEUo+A6n9owwSoMFkrDEowuQtEuu+BQTw0sBuhghfdGaAG1+FLRMZUWVsgCDbQoMIi/hhYagDwFzzOvKSxOchDCvZzMxCJAVkrgyjCu5DAOADYAkadGrPruDUvegKg34Brsyy411IAjjRlTUIG++TTQgIH4RnhihQ1aU2W2ss4SkoADNFPyPAHc8v/Mwbwg1KuvKSdaY40rA7gyAVpmMsWAmyAY4stAIDDBu4a+G+9MBqN6Y4DxzgMEABpVYIABKFB5ws4Q7HxCBQ30ew2AAjagjQnbNnDgsqXS7KyulPxCyaQttoBQOECYS8DSSxWYyaY4DiBAB1DbELcNH3Co7Kg3xlsFSakGcAAHAFg1kqEJVkDlC1RQ0VE++1LBr5XWDELojz9gKwACeE9dsDenOnsWKpTU+GiYLYiL0iSLArt2Y23FkK6CYCSIDURX3GikkTZwGBUDBxwY8QBWLaHIojcA8MEHrXDYAAeXcVDBBSNguAQGC1LJ9xJ9dSyhhQ2y2KAMtNR6rcjLMkL/k2Gm6GrQRWdNothR4SayNoFYYtE2ALQrODCNA3BYwbEsRERIIQBwUBmDqjBoiABCF+pgshUCX6HcDk64xAUlGDiCgUsuGYGEHHW0Q5KmKdjg8oFmU0XIeDXLaKNmW3TWWZAojtbRCNestrnmYrmU7AoSWCODVdLA4O2eFHGjQCMPwIrU0cy1m/cDfJDshO200iqEWVNwHs/5GHjvCaHw43NuAE2QjSwdKADATDTL8+upPkaXsI/ToSxJKieYEyyWDBPwY0O0Y0kjDaq85GkICPT+TwIMVAZAXcGZVvR2GQz44AQ4e1n2VqCBEIQgBXciAeRq9IT6DKUIWSgAf6YG/yAAtIwAEoCIqxi0NTj0wU0eaROkRGI6vYxEWifhCEUm5TrZTepa0bEf/gDQCJ5ILSEMcVkHcFCEwXXAf6xa1WgM+J2FJHAFztPAK5DmuBEwDhUl0BHA/qQDMKKlgwi5AnlQcijx+QVSo3vWR7bgBS9IaxhxjBBHAEOpsl2pbK6bSQJEcL80SAAAOdGJiA7ou64EDmdGWcgbVpEU0ZjLKON5AwtsR5oU5MqKlyABfEZwCSjsSAVF2NyfspAFYmyOAhDo4EPSdCi/rBCFaszLGyP0tZGc0X2V8phzxKCACgTzfn8AECED0Qa8CTJnKotXzFjlhFXIyFxDfIMTphAM2//V6wQSTMGsbmWnWVnwBK0h0muu4gAK/AkCJKwSGrvmJI9EaTjog6McwTallZghj5b6AEs2pKFsKaCYOtEBAfQWIHMaSV1puIIj62YCmN1PGFOASM06wIETnICKswpBRrdpJ+74wFi/SsgVGAIA/lgijaPb2kf6Es+SRAkk9KwnhE43JQHM4QOxgMQeLXQtS82uJZEgKoD01waDjopqjUTKFaLwBglkJSGUnFntAHDRFWg0BY8jwZ0YQAJ9jYA7X0knMc6yOQgQKg0NMs/42NrGZsXTL3sByRtrKsMZpmQlexTMpCiVgArEQgBrCGYFuhVCnWSBDHyD2bzkNYArBIP/KqNaiGbmMAfaAXA0WbXTK0gwq1khDRUq0MpXLmC52ZxFjISaQotmuUI2rvEjpbNr+mRIEosIw0If2KlfgRoAATghdsHkEgF0AoQYxCSi+GskGypJlbUMgAXBEIYApjA7tmUFoxGcoAa661UNTOAqwSJUQ0D4GgEBoCJuZeMKX+osicWzdHOspxdQh9vlrIG3+nSd6ywlgNq1RAHV0UkZGhED7zh2IQr5z2vGFBEnRNgJk+3ABDDKAQyfgAM94PB2PFAiDOhsSFP7zxUYulYUzjKF6TEOG2FaVzjG0bZv3MKUVmeGfn7AQnxNVBr8EIubDHInbmiDZeYlASQrhGqU/4zwKprMEKt4wMIb7sEEuEAiU61ikJcjRpdTubkLHOQKrnWWmkACWwnNlmIxjmMciTMS+6YEsxno56RyzJwmZUABQDaAdYas3MYyZMESMKmRphuMdQmjfbVbMAY8wAUrf1ghEqGhE+qGhtOKxayB2kABDsAwF6vxRc9SIaRUSNvaos+eMuyLci77ajrvhrpYIGwCuHQBnrhBud9Z6rzwd4UrZKDJLFiF1i4SyBINABATS12rgUUBA0SCmL/i22veMMtF9eXMJ0lPSdwUUzfalY6rjtZekvPqV8/OCZMSgNli0eeehNnICn7sQg4gAhE0JF1toei6lhJP9TkJC8AKs/8Hp3qZuIaalt6mq3q07dKJiVvGpkOf6XCagcsqZ3bCtnMCFKAAAuCaJ3sgg/+QXCojQRFYB4EJEzOAb6ge4NozvaVejIMFLX8FDapVxUAGBQAnLGp0bQrJcNpEdImVTiRthiOcK3bbGmMB3RbazXXLFh0FOKAMPomBVRJi3q9DUZAECZAJFkIYB7PATJwpDl3L91JhDDJzs+kyGDdXAAms94xqemn5jq5Cos+U5qZjsxwnDiWOvHo5iVrJ/LRlAMb4hMheB3up/scQI+INZtNtiAg855HimESWcJjCsxHyqxC6TG9ag8vQSweSFJ56tm+OEG3ZbF+8OqrGep3CFDL/IAAsuK8CMyHA1huTBQoc5PQIAft/sjdEdVVzLpyZr+idFVwCFOACHpzbFVgwszXBZQ45nasatGBz9dB8pulHtbijdVe8bsEpl0VQ8NFGHT9fJzuGJGmpwO7r+2ky9Kg4kmCjKYiC7KMAy/mytBCYQuEI31uDy4IF0jkz9UAdi8lA4ni/+hq3VYszqdMx67quAKAOAPgQUJmB7LgbzRuiAUiyANEbR6ILUgs9NhKAYEjAAkAtBkwLB2ABQJiCy5LAOeg9AXCRbXM7wcsLJVyzDjQdcpO/4MMs5ciA2KEO4wIVnnAalHEAEjEnuymCMnCFNnAIz3ihCGGjibgCYIEA/1JBPZKiC+u6rAZ4BFi4Q/ZzOCWcL8HDqxiLFg60J2lZD4qABQHIKfgRA3jTwsYYilZwGh/piSKAGY3gDfJYn7jiCCfIwR3cDwAwAP9oqGI7iZzSKXTDQ4sJPKV7vQu0KYkLxEGcFr0SP2vhEka8xZ7wngFQqY4QBmULv/MQhhyEAIH4kz/ZgFU6iANYL+tihFhgBFMkupP4uzNbPy1Iv5iCQluiIyghiUwADIo4EMIygD3ARXMMBHg5EnYhNadQFJxzAhEgAGLUvssxxmQEAHYZLN5ihAZAQguMmJdKDzmDBdhyE6iTMUCkmGqso4pYCcMqAFU4R1wsMlZ5Jba6CP8n6I0p8IPsc8PKi6i2GJ/L4q0GIEjze5E2cTGpiwQDoEC/gIWSoLE/jDGFTKE05IyViIPFkEhcbATvQIqIUJTxwUi6mIJ43EGYqLaBAbags6NSnIMGUMUWSrqIST84EIEriIqcagAYOx37khY5gquJ8AMxqARj4kktdANGWheLpBIKwYJNfLawMMbLuceImMNX68f0O7p3YjEVehg4gAWd+gCuJDxABEtvVB1hMIBKWAS0xEVVYCQzSZby0Izq0q2j3D4CeBcI6MwxGrOOoEOoRDoXOTpwCwnjkCc4EIAGIMyoVDWKyYQrmAO+gIoMWMTHvMUsOCAUMZTyOKH2ycz/eZOuYuOMjtjK0UTJo3MTVZytwHMSWGhNMyDIr+mDNHCAmJgavom27MtNcyyKiNqMjUiRKnGCKBBOOGyINFC7BilFHSNIwOPL5WROwFuxlAxM6cQxNZghCbgOcPFOc9yAA3Kkpai/FGlIo8y+CziAgmkZnlE9mZOIp7ys5XyplFzOWGK/j0AJWPiAMEAABPiAo3MCBwBQE93NiFoXtwyfidDEo4SAhnAAJUI5V2qQRzBFk2whwETJWBK8M4OD1vxQEP0AghSALDTR3CwCQlEIFLmIApUKYSCPnKqAjmwIr7s2iLm+DAiGD3iE0lyTDB09+boYDt0vMwBRHGMEyEPS/9x0g745FbZkEN5wC2Hwg6w7GPPCigHgiJtEiUd4hJ3SsdJ0MeZ8pyVcn8syAzMQUgSgBQXIPzaVyCw4iMtAClS5GrhQDkagUjylinKRAPSoI5RgzTAwgwUoSflsL4DU0G5DCajcrw+VAbSB1Eg1R1egVFZ5pEt1S4qwrhf9AxbwnXhpEpAwztX8ABBFgAWgwEINtYJETdiiwAZQ1DAIABSghQAwgBKt1XMsAmVElmJLESpJjinYxBe1jKtKMH3LiDlgVDOIyhViTgsd1OUk06Pr0EVVVEi4P1rl1rSMLqAk0IVJjnCsgNgoiIPIig5omf34gyoRgARAAGtFAWXVgv8cRbr5LE3AWz/mjM4GCANGzRQCiEh/vUVdayZieyR/O9DLdAKRIUYIQFgHPRgYzQDmCABayFmKnc6LbaH47NHA+zY3aQDpBFEayFnpONKSBZXdQVkCXVmVmCiKyIA/OBiCQEZWOhixuAAD8IMMwJCcDVsEeFeTvMZvK80GqUbAE0gvJdozRYBrzVlFVNql1T9KZQFR9DffVNH2iYRK2MELQIPLQcZ69B4/wBCc1VlsHds5KM167VgWysP3QomipQEQxdkOodu6lTyIAo8oWBfwAY6HdQJGyDqYVQWx2IBFQAPWvQAA8KfEFVtagIRTfdy/jFcV0oKZ6osVssMPONP/D63WRs3Wft3cnUi+n3SuJvMcplgFIXSJHSQIY1SFRVBAITmAK6gABQhbpIUEWrBcsnXcn61K4hBI2KLDt4WESkEASMAJ43WMMgBYR3KkBGEK61KASlDAC1gE6l1dn4sJEdjesDUFFAgASIAEikWAknRcvoyliSk6NxEAQ5TOUjWDBBBSMSje943fZnpatpyZ8ijXSHCACzgtVQCCJFiE1VVhGIUO7o1btJEBSFDUBc7YqmQ/vbjQY81XC47YMPBezX3fQAAC/mikRyJQ3tiaRHGCAwDcC/gTFfa56z2MnDUFWrDi7kVTwnRJvnRJF5m9fyQ9ouWtBbhgBKABGiBe/yHuCSAgA8tQCs85oTNahSZeJQhAgyhmXYEoAKISA1PA4ioOW0gYWzOYA1hAj3s11D7Q3fRwk+hcAEVdVPaFBBqQAQMQuTXWiQtw4+VyUkCwhDI6D997tpjlXykmiAKgDj/+42slYCxGARQo1S2eT9OEFD2cz0ceZAQQUhmQAVPQ4M11A05GlopKgxD6HmMFhCioYxP+E9aty1SOgz/+40CmBVi25l1+V72cz7eLKS2YxvlsgAQ4YPZFAculBQJwhEzWCVXg5PGIsAwgjB3EgbwzzjolOGKkSzxGxmieZkDW2WtFgUEuVaKl5Tu8mN3F0OiEHwPeZRClBQNAwUxu2v8/CMCvDYa2KQIfwEe6AARL076YheINYF3WLQBO8edrDmiAnmFtPgOYdOQPUIA1WDGQMFuusUNYcMZSTVYaaF9gXlpvBYAleKZVWAPJMoGbwYBrqyEnYMwSTqdjFNyBMGlppua4DWgUkAFakIFrJWSi9Ys5iASE8MdGhq3WE4C3TVb2DYCfLtk2Roj7SQonsCTf6QB2sl/GFJInnl6xQAM3NAADoGaAjlvuZWkc40r8jIUKEIEjVNtoleB2E9KeXmsCkGghdgQ3jgNhU5d1sYT7Mc72zGvt418oJmkKIIDD+GeVLuwDBtkwIEwtGGPMEoA327bra5JpleRBvpJLXuf/MkCwOPADoIzjFj2PPkMDmMDjPB4I5AZsLCZgax7gK85qit3XAHjXMyDaO0QJH4UnOsztHzbgQS7LdUYuAIiDmIEIlf2c8hCGP0Cn5M5jgdBfAqgJK4buarZiWIZlGjBnXT7VfjQ1wXMWOvzdRUWbA87ZIK5b844DCQjYOKUQjQSE9xaSO6Ze5vY5NHAAA5iJK+Zea97vEDdnc6YFEF2AU31pNFw//BzMSCbnRoXoyBNiINiD82YLAqXfthSGwtDr6WXu+U6rmgjbGI5urLZmNE7ysU3xiIGD2pOYvrhDog1SMzjgQd7XCsDk93UEGzcACcDKI7bMJK6hwiiIJ+4y/wyvXus9CA/H1sQ9WkrmamvWamxe8gYw5Cx9u5ecA2oV0jhHAMBa8JKtApIzgIRANLWLU0PJiDLXPrrrXxVWwLQggAcQg5y1bgOW4Tiv5Jw92tm18/HbGofb8/2y8jO2XEgAOSBYYyJYBDKINkKrnTgWV4rocUfvMkegXuol3E57gJrwmIZGU6PlajrHWV3GsfFr3HlyKSA1cPaVAaPldANwzDVOAjLw9cUOBmEjTwkHjCYuCNlwBHEHAnJHXevdvg63FLVO1kFGYzkX2xkmzFc7QpciUxf/4VOv5AB4iUx+60hQiGqa9YWhY+2DCVVwhDJwBHLPdcwZCKSKhNhpaM5dXvdrBmjLDVHegkp4janygYPdyhLxrmQZDgBB99c2foB/B7akwAjeSBGCT74C6LKEF3dHSKXBRUbDuBYEiIV1h9tkDeSAHuRIBnDuhphSNINgRwAZ0HcD0J/3XYRPRBf6bXlu/3bsPPiyEPeEd2ZkvEcN+dCJR2OeJuy4XfoDPuxa3gs1EEydSmulP1o1FmJX74+jgCxAkr7lcAIfumOYAIIyqIIqKAvbKAO6rEsO7/ABfm5A9mfGz1kZINs73O5D/KtMue8r3pTuBJGAAAAh+QQJCACKACwqAAgAhAC6AAAI/wAVCRxIsKDBgwgTKlx4K1CgJk1uLZxIsaLFixgzIgxEp6NHOg4dahxJsqRJik0CyUIya5YsWbPouByDBIksh7hO6tzJU2FDmTKR5Bg6JgefHTtq1CAK41TPp1BL4gpkxCWSMXz4DDWaNIjXGkh38HgVtazZhYFgGM2aFWmOojmQ1pgwIUiPu3cZ5DzLly8urEqDcPmqNGxSpTV6JOYRgoctG30jR1VpVCkXD4MFcxmcWPHcIDU4cAgRwkUEyah1Npwl1KjmzZc9fO3x+uvoEwxYpd49sonLoTuCeBg+PHbmusQxcwk92hfv5xVTGmnNp0bs5MlhE4fNocdoRHKgi/9HiCvo1q7Yh2PYnt3DhLuiOUAZT59gIKtX41pPjx325glcTICYaBrUV18TdKy01VH78ZddgHRFKGBoBRo43n2snVeDVwBeV5xy/0Eo4XsnlGCheDLJshVXopEmmndzxXdCCDOK5sOIE3CQyonQcfQSXGMccUQXXbjgAiqojMCACio8MUIqJVhgQSpJanCChBzAwONzdNQE11VGugCDBb6UWaaUdeCRCAgg4IFHBBH4gsqVdHFg4pa7zbLiEUoYaYstY5YZJ5wRuGnooRFYwIBiOd6JJ2p6HjWWLWEeCUOZXxBa6Cl4cMpmm3jISacPj+YZVw8aMPCnC3+iIqWgmsL/aeinbVqgAgcTnFBqaliJpcEIf64KaKCEukkorWyG+sQJHJS4q2RxiZVCkX9SC8O1ZMKqKR60hjoCsz7Y8WxfXxzVQwipUlrptYFmGmsEyILgCxQhiCbEuHx9cWoIKgC7qp+2vBrBKbHG2yYUt54gLr5mWcDDDuc+QYItr7zCAAMVT0xssdwi+6YdKpywwsIMR/VFCnehi3EK9cY3GgOu+hInmYW2may39Y5cclmBHDFaqgywPKOLLapKJgxIopIKzcZaQAKzKuxcFi5dpJDCkipcjTEqiCQZdAivoOKLBbYwQBq6I0AhJdmijSB1WZROmyoJGYudaNlXowKn0wwA/83ACE9aMGfUb0cFgwsMuPAKCSRc3HfaKqSa6qVvkm3BF5WnsvQIIThaOE9yfGGEn6+M8IoGNJ4NdNgyJ8p4KppGmfbnTzn0hUcwLE4pAyTAQLHjrO+Nyt9pW1BHBHWMQDLtJ2EYk0NGUGyL0lKiUjEDXQQPp5lkdhyBHTMwrxMrRsg0S0hGHD69q6gwbvHidhtb7Kd12AGZ+CbhcntLIKXfJ6tIch/GKnYpX3BLft0qQR3wd5JTtCQmonOBEpRQpIpZEGPZo1mh3OSxmZ2GgSQBgUeMEEEiZc+CKEzcpWTFwU8Z601OAeFI9Ge+L3zBSCesmAvoZrYe8OAIrGJasv9AJSjdyHAkp6BDVYyQPiO9goJOPJ3VLtYFmJXJUJoqEwiOSBIrjI1dh3MBkRS3OMYxzlUR+ELrsCioMhmRixqpQxjHZAv3iVF3SGIaB98kP1jBsSRJVOIXUPGvHE6PTJm62bvgtMU/luQW8mofpYg0QBLETGZvYuG2GulIksjBBoKr4yu6cASrac2Sl2ydpmZQh/t1ciRyYEUJ2qfDKmrtYq8Y1to2+cr8sQIRojQhDsX0Kl+ocWyqTEQvTSIHEFhgBO5D4Z/GJLA2xel4M3DlMjXCplPQEoVlpKa26lAH4ylzmyQBZZmsZ8FpitOYapyZBUqgTXRixAapABTF6Eb/Aj8Vk1Ayq0MJSjADK9hzJPiMpgVZ1TspAVSNxlPgQUcCglTQrYrAs2CgzARRmk1UI4mAAg8dR9KKIUmca2vlRzNiA2g27mJTJOkRXiEmGCBiaeSs50onEtJvwpQxM2LM1bpwSF+Q8407nYgcIjBJE5IyBTyIago0YC2BRSA8SZ1ILVjB1ByOkkgWmx41raompGb1ILWwAiu+QDEUmrChxdRWoVhRi7Oi1QpWmArZbOFUsOZyo4nSFrd6YdeCfJIVctDf4cCJQlSs0Eyq5JYNevGCGxRWEXKQQh3kkNhQ7tBPZAzb2pA5v0QkohdlcEMedsoKVpiWnKzkrBzqsKY2/yViBjMoATQxFrC1ZYtQFkjEIVRRgA2s1p6nIOdAU2GH5qaiDrjABQiEMAMp2EAK2L1uC0y3ON9mS2YWsJ8NkpALE2yACtsEQR2g8IQntKIVpFHBdn3B2RnYQQcbyO8GVFGGDbRCBYwb62/hNAJ66mEPuQAABihwXDjaoE0lQBizJOSDFTwBCqdI7AxckQVV5JcCFPBwFgB8SN+aKUmJuIMeYpBgAADAAcYF4VZZIdBUQAG+PuBCBzAwAROYoAMVVsFVP+mKFexXEILQbysk5lgBjy1JM+jFHYhABjK42MUYwMEKXME8zqoXEXZY1o12jAEM+NjFJggyHnDh2izoN//JguBvCyRW4lfxLRWTvUMVyNBiADzgymkewvLw9UnkWYC99eKCCcqMgQNI4AAHGMABMNCBFaggw6yYgZv1u18dUGEG/srj2k73hDpI+QdJsDIADMDqVhvgxRTIQoNLFctECBQKnMOVohk9gF4PQAK/fnQHTnCCU7BZ05yOs6dBnTQw9k0DJTjEHVS8B1U/wNVxyDarAaDlWVsolnioQyrmHDJcdWDRjga2r9fdaxOMJhCssAEVNp3fOA9iCHlIm1h9FzRo20AP0yYCi/3M6mzHQQwGjwOkAWCCLb/AQlKYQSpGAN8V+MAH58YAABzN7o7/2gQTgAIuPolsTm9gEHn/mAEUCImk04WAAfT8wbTvkGo/X7vgClDAwRGugCUc4NUmgMAGmKDT3QghZDeawLlN4GJIe9zjEgDABKAb7xkYOdk6GIJ9Cck4oJVACjKf9g+AYO1Wx4EXOkd7whW+cBPE2tuocUURMJ7xjUP67utOAxvSoHc2sBsAJwgEmxORh6uDGA2CGMQLts64i5GglWGfOdldfG1tG1wBvMg8L3j+h0cfgOFt2MC9dgMEH5f57nf/Q+fZzXc2uN71b/g1AFYQbxvMQAibpgAa0HDyxbfAjMqTAsBnPvM9E9zyYuD5EiqAedX/oQISUD0vII2BNpRhN25YtN1R73wJqNvXaWAB/+z3LunZBwIPVKCCEPSrezSo4t5CcBKwCDp84t/hB6pIsKsLnu0KPN/5S/AHASh9SzB9DDd0qAEBGrd9B/AHkNZ538cCLNBraTAAb3CBA+B3gBcBM5B+6/dhuvd+QxB/TzIDehB59gcGMUBw+2dw0PcHIiACned8mpd2PvdiMcYXZeAAjYZ6bOd8HCcCV8ACQyiBbHCBaRB7B7ACHIhdH7gBFLABiHdveUBdiXCC9jdzegAEBLBq2JZtCuB83ScCFVABAch8zMcLZxcHLoYDg4BeZfECG+AATYd6kPZovQZsUSCEEhh+LJCEepcGB+ADUNACQtACKgCCaEABccYEN/9ABcKHgsT3A1Wgfy14ds5XhiKQhzQYhn+AdgiXbdRHATpQFkPgA+hmh6rnfevWhxOYhEf4BhWohFg2ARdHARBwARcAAYhXBi8AiZGYhXpmZQX3hbwAg2RYATEYg5ooAcf4fMyXbWJQAbzwagXABFGhA6jIgA0Igb92BXx4BUOYhBe4CheIhHw3ABiwAkamColXBkzwi/E4BDcgBcI4ZcS4fwV3jDHoB8oogzKIjP6XibxQAQgXigZAABcQFRuAAz3Ifci4jFfQa0R4BVHwBua4ChrJAm/wh3x3ACAWhbwXZ2VQBoNQkvEIBpK4hfoXBwbgkgZwAAeneiKwh/8ohDT/KYR7uIzSF4piwGoFABVZgIo9+GhiKAGb6H1/AI7ex5HmiJEXeJFOsIeq52IOAAEQ4AAFUACJRwFbiQM4AAE6oJJiBwY76IUv6ZJqSZN8B44xeAUCiIxpIIQxqHoJh3CvhgZPkQU4wHROF32PFn1/4Gvi6JYs4ASrcISHaQga+QZREAV+4IBWKXSDkHjxyARlIAhZ6XZVcAM3UAVz6IVquYYHpwCaKI5RMJFk+Ik3SYYikHkHZ3CvBgAL2RNFsGN452ve15QDUJG9JgJzOYR76AeI+ZiPWQEHAAGDMAg6wATxSARlEAMQIAjw6JwmOQhAsAEFAAAOmJaYqIbJFwCm/3kFfpABqSmDaPeM4LgESKmGLll5cfBnBQAEtrlou5mH6eZrLCCEHTmRVzCXIuAHfhAFTuAEFyiBj1YAzVmdmElcXfhi01kGQ5B+VFAGFICWcYB5sFmaFeAH4miecyl9BQl9v/aJamgAD3Bz20YAg9ATOrBoGPB9wSYBfvCH/dmReygBqGmRGYCY5/gG4PhiBUABzFkFZVAFL/ACZUBcDkAAWkmkTDAEqkAAZicGmAeGYlAICVCGCSCgySiin2eVdGh2ppCiKZoLgtATWeCX6jaBdVmTFimBjmmRQGqcBEqg58gCj+mACgmPRKCkjohdUgAGVaAKWXllG2cAaGeaZf9YkFraoQLqj2ZYAQkggy5ZfWDpA25QBE0KANrGan9WmzoxAxvAdOD3m0gZfRz5BmwggY/pBH+opwXqBICgkY/pjw4wCPF4A0TgmYKglRegq8AIBi+gA9vpeYs6ogVpmpEqqVwqjtTIcDhwcVuWBUM5ptmWogAAATvhCj7QBo1GkXu3dywgmEPomHZqjhI4BQSqkbYaBWugAA7gi8RKBL0KBGhQAHT4YsE6BGAABkMwCF2oqApQCH5Ql2VIqVyaAFqaAF1aAeB4AGlmaa1giC3QCivQBg+KogTArTqBiripbkkogb8Wg4+5BsbZo+c4lQQKCLW6ChmwBn6QAAlZAIr/16uf+a/Fmq9XdpUUcAEbt6jKOJwzy6UKkACx4AdrILOSegUHUGnt1QLN1VyuIHc8uG0eaxIbcG59yXG92ZEXCI5LmQFkmwHlaZ4FqpFOYAiAUJxRYLb+mJCC8AL2egOq0JxggF3EOggXQIeRNgCZFwBairKQmQAB4LAMGwBJS7YzO7gS0HDtJQTNNVB2IARF1gZXFpQn0Zcm4JB/+7XnCI4WWaAxS7hRMAWI6a612rZOgLpRYADUKY838AIQQAAEUABoQK/Y9QKDsJ0/95KH66Ux2KWImwBrULZm67B+8LgW1gJS21y4VbktsAIOCQB7oBMOaWb5Cbphq5NRYAiG/2CeZPsGrbu67sq2q2CcAKAKEyoFkPgCQCAIBfCgWrkBzYmZ2wmKAdChItCl/rilDJsAZFuga8Cwa+C0ldYKzmUHJcDAUzu9TBcDJ5EFuPm5AxB+P5qar1qrTpABc4CY5euyU+CyL1urUVABHVsGwncIVFAFYDC7mXmoCuYAdLh5ChC8kDmzxFvAh5sBq9C2BRwLc5ABB+AAK/C8A9XADJzErcB0FHASpWrBvsYGGhmLeqqRJjyrIWwIU8CYIuyyq+AEIpCQgwAGeqAHL3C38QiJVKCkaECHOppz4tml5Cmg/pu0SUugiGm2x+sEB6BlSKzEuYVTUNBjRbC5JhBpfP+XjnqHkVVcjj/srmE8BSO8CobgBFgACFOwCpn8w1FwABfgi+4rBUOwgrAmrIPKBL37klbKpf+rpZG6tMQJxmQrAAKQAQBQYa5QuQ2cWwOFJqlwAh1wyCUhBG2QyBdMsr0Zi+bYqgRqCFiwyRrJxZ2syVhwzdi8yZ+MBkOQpL9YBSDWqVZ5Ae8Xnawmx0wboEprnif7thlAyXMwB4CABQOQZoY4uQSFW7klUHawAuZlEm7QAQAgshS4qk8JyT9Mwq1boF7sstjs0BopAgBQXO6opKrQxgGbr10Ypu55tP5rx8b7qsa5ttdsy5k8AFAruZMLPgRVB7nVzzBmEi8aoxf/zKqw58iNidPWXKtc3KNsO88i/NNtGwV8ipWDgIu6+ovpF7B9awDMl3zMOqBw+7ZRqccZAM3ge9IdwAFP0ALMNbX6HL1CsAIO4AYAzXTA1sg3nboZCcbzjAWWTMkCQM0PPc8jXKtX4ABxpp0QYHenvMYvwAQbAACBe7QCapxSPZU+vbZAjQVwAAgozQEqAAVTy1y45dIN/ASoqAomUQSJLAHkmJgI7darK9RcLAAfjM3ZTMkuawgiUAATOgRRKIXz69cOcAH7dQEHILSRerIya7buPAcCQMJvjQVpgAE+EAIXpjn47MupoAI9lgVnDQAWiNNYHMlYXM2Z3LoCQMl3/33Ndg3eeD3RJ8eIOpCkDXqo+Wm2N1ywiPsBkEmgAnq8azAHqg0HcIAFujCIJ/ArlL3SDZwKrSDM/1wS2Ufdqru65pvQ0TwF14zf+c3a1+zgqh3NJuwHn3eVG0CZgP0CVSC/A02GxVu8KKu0KLu0HjzhEJ7fEpAjLwcF/73EzHUrPrYBWmuqrJrQJPwGbk3h2JzfEx7kFe7j7LqtHzbYYeoARIqkQ6DKDkCwgnu4YYC0c3CnjzkF3S0AQA4Hu7AL+V3PPjAjaQMFmlPmLRACOwYALUoSVHDMA52EOp7JCo7F8wzhqk3Cd+7gWV7kZTwEG4BkXlmHEApinirHOeewsf8QC8drnia+BhQOC1jQ5V6u3yD3M39D5pqDMBzAdBNNEonQAuDKcRhJ3MRN5+GN319MwpQ84YAgAHB9yQdQAO+HBvc2u1UwCDz7t3zHfDd8uEjrB4r+AXMws0qb1Y7N5ZMOCG8Acsk9VWnD3JyT5p0+EnngCpj75leQ4JoM0Q6NBa6O39gsyXfu7bbc3Xs40bgdYvf7AkNgkhTgAJHGfAFwuIkO7H7wAXkss2sAvhSO7JPuBLk8GlO13Db2BJueuQglBK2AuZGmo3H+4I/9w9ls595t4V+MzbDQ3U5wBdv6sxfas+ZtnX2Ndoir6EobC7++6OX51v7eB/mNyz4g8Kn/MuYjAN0LaABZixF50ApZgLm7mQYS7+ArDt6ZPAVDL8JBruB1LcbXqANxpgq5Xn4+C+8FWbz+qMNdirJDPNcPvguE4OVwMAUwL/OqAuO2gOYa93NPnBE7z444sHHedwWjXucUH810feyt7uOs/uCZbAhzCQCMSKQvIAVKKr9wzHe68AZYj7RIu7SOb+JzgOVd7/L4Hb65PCMDT/MrINCJuvYYofBuD/f/yeMsj99e7uP5nfp2Lue/ZocMd2aQdtv5VZIl2e74dayLHwZTbuKMruj7Hs1d//WnD/A5gvmAA+PLkvYuqbkXQQXvhbETAPdwXqvRDOG7kMnYf9/gjgVv/1DEFfZfKsCOKhACK3AlP4aVQNuzOKDu/UXYC/sBVu+/CfABV/3TkS7p1x++B5AjAg8QKkZAgdIiBIYDBwwA2KDI4UOIER1K0dHK4ooOACQMWNWxIyAsIeHA2QUHC6CRKeGoUQPoDQAcK54QhDJixBOcI0Kc8LFiAwVBg9A40DhgwAEARCVIEJEg1geoftasSVA11lMBAgBtHbmr5MiTAzr04MAhhIYRqaCo7YBBAlIKEuU+lOJqwwofPjocGJBm1VbAWFJ+NQlSJUs4bw7EfDIQ1U3IjTXsDPFT1QsqTMoIokD0AAtAq6748QN1ztQMUTJUTRDmwxxDgHf1mV0yJP+gNB0mcOhxQsNMKL6g4OArIWmZuXJdtelgAgBfo3+3hhTZ1WtKwSNZqoFzwEFPgTZvTj4bIkRZDid+Xgiqo4zmzRA0NrX6YY1U+7H8XI2VAWR1r/oAKzQMJqihhx5CCK8EO3zAwCikLkguIlfaejCNNEL7jzrqBiPMJBBZwuINE3paIbwRVNgJPQ5qmIALLiagQL7nADDBAQgo+MmBAypIIIAAEngtgzXsu88Pp/zrkCSVqBugQAPNUmFKKCbgK40BJChgwocqxOBBXQD7aMPsSPpqySZfwuGus9K6iQHyTuDgRQw68EFHVTYo4LmNspTgjTeuIJK/DzKY41AikUz/IIMlr2sSjlUOMMGDCXZb8YQOJJAuDQBU4VIRHJrDAIBRr/QLMMNUKmwK7EzCIlIHiljBNwZQScWCmm6a0jwOmsOBAlWGoOIFJgaZkSgRpnAigwyeCiOMQwWAitkoqlpjjikEu+7DKbh740sPYvRhgg7KlWC6VSRAg8si8uoAB3hNOOCtUnWR7r//4MhAhCiccCLbkziFYIUVQkjhiFdssYUEEuBUkde2cMgRgg1Uce+9MgaRTwTSniry0EPXEIBZqeYQQCSvHFWpJCy/NEHULwfYcIAtJ5Q11FH7TMoEhNIwJAMnVjk1pCmSckCpN0KToMRZDQ6BAQZI0Iky83j6/1LiAuZ9K6lfL5AvjWUzgCorAWAhG4spDBEg25Vno20XNVLe5dVVnvzy7r5QwkIXAAZJLgs3fHiuL6OWLuqoeQF4ThcnHaDAB3kHeGMVxewk+ASDX5H6iZ1OwPy8thbLsYCjn7uCBRb6BWyKsqdg/WRYOOTQTO2sm42Qt217w24TeO6rsAMESW4IN5yTAEOjYs4Spt6dk3yVsF52q6/YIu2grII1YMAWKGwZQQMNdt2JC4Q60HGDQXTQQSjSAfAZJAHgIPtksGT30Do4+tCfkC22wF3/XQDiSb1THkje8Ie4zKUKnjGK5CSVEJj4AGfHk05IJFWUMVkvPebRgAsUtv+whoFPBZMhnwQkBgEC4Ah9ZWDhBhzwB0OIhDpZgUXsZueh2gCQEPzzghd2+DYspMFlyrPXKpKig+Q4Bzp9edm73FUUDEEPJKvAQOSmc5JI4WCDKUgB1KAWQvOYZwIPkgCO5FMcxeGIKBnKzpK4Y5symSlAbutD/3rYv//RRoB4M0oRveMA4cmlCNOT3NJ0EyoA9DFM9wriqKIDkike4Hrp+Zz2JiMn9IzxQQPA0YzapxEW/KU6IDIJYuKmqriVJGX6218PvYDH/vmvDwJsIJbe4Jc/8AgACYyIEJSYBl0cACHzMkqGxBQYpFAQklvRoOfM08WGQS0F2jsPmDgJAQj/HA1PaMjmAdJQnZAQBhbbSQlLahMg2sSNhz3cIf/8h7tXAdMjzBIBAQDwhz8UwG8QEQIDj1JLDCXtLx7ZygCeA7YNhcaI13PmWaJGAs29QqIa4MCDdqfGChhnTeobxAXclypSrgQxqjLT/ggBt9lswZV2JMQr+0cbsBRmFSIAAC94UYglOGCfE6EAQmpZTL9IpyNvcMJWkPI86gCmcrupJNS60IVXgG8nHuCLAB13rBoZ7YXQi2M5WSIguHGnpLRhJe5cudJYvtN/cMTNFXhRATEU4goDgABEpDCINvCpgYRLA6BCM7lVGMIJVQ3TSTQUGknuhkUh4AEXT+AiD3yp/7Bl1JEgNtBNyTmBSStZmaquowYBjYSst6NNS1d6R/61c4e2Cc0VfFQIMQSJprxUxAsooLglYglDWBJaXydnlKRdkW4ClGSMDkQW3gQhsptEiVewIIICZFNxacQB6XiRgfhxR6ycJalIVek2t7kTrWmNJe4I4aqfJaAQAVCAAthrnJ3aYJB6xRJAWaBbFjjhDWwY00kMKzRhYsC4NajBcgfAuJSe1CRXUOMf+mrQAlj2hTEk50hVIqCRojS8rVzpDtXqQx+yFhAZ8IOP1BukCuSSCQ9RBc/6tFfkEY4FuxtqcJPqBEOsQhe6sJsHIntgLNTRh334H3cYDIELoOGyBf+wp+JEEMftcrckqVyJ3FgZoHW6sp27UC3u5gYIJ0ShxPepQCEKkeJdPkQHbXnxXmGchivwdqDMLGq+AlhfxnnYpXkMrQgckGRVDGIQedoTG0lJzsGsBIDmRClZiUxklZ71nVx2p//Qu6w1EOnMZ/6DASTkkCw4wKdudnMaZgxYoc3YoAfor0v4S2kevnO1jmLwBZisuBs17wBJK1OURQrA3OnPnGWN9EqF7OEtAHAkgPgZkZgVi0IoQAxiMEDNFDGENuSsgW2u5X0px6np3lZybHgD6vibPy6rlX/C1o4a/JzNCohgDWmr25e42t2vfDV3tbGO/oqN1kqXlzYh+dn/VaaSAAXANg4AWNdDejpqPw0An9yGkAlwcCPi9BXOkyPJSQNeRy9H+d0XuIAnicInVh1GO3Pzbh/iNlp0tvOsr3Tph3/45WUJyT5+WC+1rf0QUfNpKVrjdn0lhbMHDTTlKSGyO0+KzrCOJJclHwQLy6CDLBQBBwBg23a2A1NFO1rZL3+0eGfuv0jLeuAjXkN/iFQBBcQhF8iRiA+CnhC8L4XiBlUiR4SLMmS/8solCS0c3s3koxUAXg6Ql7bC6nXtgpY7AARvymQ+89Pe8Z0CwkLY1mCI9CrAAA2ZiyookO3p5n2J2y6mvVAVTkpDWvB05K7h1SiCKwSNcuFMp0gt/6xdYbNS+B7XM+Z7SGSaq3Str8q0AEC/GjE4wFMTEkLgeJZ3itdXQ6MML7JlOUdVvXtipLPnAUSg2XxHHvIuB+3w9yfLf8884HgkBBaZtRVmVcAAdf3UQ3zQBiVqsyrCgbzgi3trt7JbN/3BH5UooxwJNI76CfmAnpSpMPUbKcnTAkczr/iTtNR6qT4IicDKMZLhBQfoP+XYgAnQOgnKgi4xgY0QpexQpT7QQOHrLqnDkT1pHgLSCMFovwzbrDdaPzoiNkkrtqaTtQBaBedrO/0wgIZDQSnMAhgEMlKawdlov6/4kJFwQB7pq47QFhB5PAxbpTyKPHQyqeKTtFfyMP/VCkG1IRL1EgMCkEI7VARX8B2ugqRISYM0VDaSwgLKQjKvKZ2E+KbDQAy4uTLKE75HS0DlK7ZIdLrVwoKfmYo1KIQ4+Lk75BIqrCoyESCUyB/hsw1VwQJJmZHz2YAlIwq2KSdVuTJGY6X2a6f3M62aa8NK2yEsWpY58AMDCKRO/BQqBJMNISkaPJNREkTH0SXcSggJcII2OsX8UUCYuzI+k70ObENYOqmtwLHVqMNh7L8N4Blg+ruY6ixfM4ky8qi8GwB/iSEQEQyzgQXWyZ+XOilapDzRgjQhMz7NMy94mg4nUAD+G0cuoYDIGZPAcBUcPEXv6AyK0REIwIGjkQD/gAEEaYGK1wAtG/yhG4SUt7gCkmAlOzpCgVutwFiDB0DI/nOQPmLIDgEp2mmSKfCOCziao7HI3kmk/2CdWDADqGgALSjKptuf3CG4eGOV8Dq7tOqyAAqNDDCAGHDJT3GQjVgkVDGMUfI6VbnJP0skGBtFsJiCOQhKoYSF1HJEkFTGVxStk3TDllItrwiNNYiDqrRKLtkAnyKowECTdrMwk8DJJjuavYijkJiDD3iWBnDEsuIzwUwJWICDLKO/ZDMv20gDvNTLT1mBUTvHreTKMuFCCwpLERABpPAmuuEQATCZDyBKDdyu9hO2KDslOKihrOCyENsFs1kl9HoAYeTM/+Tgyz4BlFYTDOScQZICBO+QD3mUIUAAGJM4lNf0unFquSxMR5Ugm+rchTU4CgAwAAdIoQPIPQkggOAUzrngyyvhr62UnSsixSjLpQncwkdrkqz4AAHwSt/Tt3WUTKiAlrIRR7mAgPRUz/V0C9+6F0iSnQ45p5RoTgAwhClbxMKjx9Ysm5GooQboUK8Duw1VCbMRgCL5gFiALgR1Sc+8kslxPTJxUMqkzZFICvlwAq8Iwu08FFhogNscpw41gwaAhUUUp8kUUQEQkjCoihNM0XEcJIsCrMD4uw7ZMu4omrCMwytICNyTRpEQgAYomxoapx3t0AaAPMkM0slUgx1tzf8PMIMAMIUHiEImtcMiiJw0IDcGjdIlqaO1ggMr/RqkAIAUOhoRiCG0Ucw5YIkg7dA5aACouE4LG9MwHdONDABaAM457cRsAyrjFKoryhdS7NM/vSccITk0IDkDKCosUEyhbIAzCC2zQVQvvU3sYJ0vpaER1c9YQABTOMhMRcFs2whAQbXQRBP9ETyTSAqPAoALYMUNEARB8Cj/gIU5MIMFCIMFsDAwbc05KFLJrMdJ/dJDiYUwoIVc+FU73DrgyqD3vCF/wx0/BYACWNZmdVbOAIAr0MjFDAMEANKXK6cR7a4wRdMy7dA2LdcH+DR09UTiKCZU8dQXxQKvcLoQlFf/CFgIinHWn/goQ6hWBECABTCDMyC72FS5+qnHHqXWao2FAEABWtg/ulvYudgDHumLe5HJGyrJsuqDooku85vX8zlVAMiAS/zYAADZkRWpksXBkKAhNV1TMzADBKABGRADE4xZmY0ICPCpU1EoRmpQkcDGZMMCi8XXUnXWCzCAa2HZo6UFFOjXMlVD0owpGkLTrGiAkKUBvQ0AP+DErHWIvLoSiH09+3FMQhAAGv2MTrKsDfAo1WBbl/1YoTyD2Pyfx1OVESXTW8XbBfjYjw2DvvnbiMg26AjNY3xQUjQpnrXYzzABbIJWNLitN0ASWqhdWgCSBVgAD3U5mHo8cprM/zE9g82NWs+lgQWoANITXYfQAQKAjqEBDIccQxp8TLKNLl54CWx61th1H7izVFpAgACQARkA2TJ9oyKcst/FTc4l3o+VATOIBYN8AeVd3mGyWWYapftJXaSs3gKogJeIrvO5rQq4qdp1WfFFgQAA0t0VPirbLJNgndyNWgkmXjd1APmdXx2InOch3CkIrJCgPNJiJcQtgAL4g5foJFakAANoL9t1W5d9W7jd3XPiwvr50QmWXKFMgNDFYDuF0isyqOdgAYldpQ3r2ayJFBKmACUTYPfyXhR44u/92AUY2a9bwJdLGbCQltxtUzMIA6mN2gCAwvlVBB0giufp4OnADf8MoEgM+KYhHjz5SYoSNgToKgAlblwAgDsxMAW3pYEXpoGpRQAP1V8BeRtA7NDcDVlr7VypDQAxuIALFt0yaN4NFhOhsTiC2QuQAK/RGuECOJd3U7Lt/YNp42OXrV2qpQVABtKuYMTSepvb9FLdbQD2PVoEoAUxKACszVogyAXBZUjKkaRyeZA4Ai84MAR5/WRDuAICKAAl21he2GM+rl0+Fl+37dcPGKdV0gJ9c7mR0OJZ/tFbnlpLJYBdltleNoCNYKaOpY66WYowIQmy87JdcAIAgIASzopmDmAAiIM9pgVTOOXxrV0gweYgdZvY1EAslh/Nfc3OFV/wfVlBAAP/5QWC5t0Iv4iNFwVVUoRQOIgCAsBnCRAseW1WNBgKA4iDaXZbWpCBFlZluM1WVoKD04ifr5jU/HzNNgWSMAhjCIjkrHWDmn0ejV6mnHVgsPhfCIAhFtjnDTjpAjAAA+DjaQZk8bVmFLhq3Q2rDEAKXsiOrJCfNT0UcY5oUyiAFRPdPfDlYsovGZydrmLA/92q/00yqO5nU8hrPkYAKHbhJ35bf2WJkGGU/EkJMn0NLw3SD0AAflWAXNipoB7qW/KIt07HDyGM/+1f/SrVkz5VApjqvC7gU/5rFNBbQCZKbzYJIV1ozd3iDt3Vj31ZNADqhd0AMjCVU/PhrlpoleAU/9KpAD9g5hyxrGiNapUWg5dO7ice3ykWq8mUmw1N7JCNYJa96v1La14mA40wNdWYM5rEwcx0ABL+gys4MqCwLDRgMgOYNlV+6VRe6dsl3zOoIfDbUEftXCm+1vY9a+yW2TKIAWIagBmbM/+ixnJyOSxgZhJWgCioABJGA9jlpqieNhmggfhOboBGZUBu7sl0NO4wG87tXEZuX1owZ9FlghgYnAWtIPztCtHit8NbgjXIp5KDVkE4aRRa75Z+Yks95dpF7gKWXDIt0iwsCWlhX8ZOgPaVAQMAAuWNAQP4g+e5l9jQThdXmQRv5gLghTQ4ADt+VkFQhc7ek/Uu7fCtcJ6qFV9LlQGX1dt+jdovJby38dLFBmTGPlozsHAD2IMn72cJKKLACprZ4W3epk8HOJ57rixVQO/YdYCUtt3SNu2PLe0+jtw3H+Sv2gVZxu+o5Ve+Bui8/Nu1NoB5wb0KuAIRABvQUxuyYZ0RJZs58PJsInUCwJMyAIJBgFZWJJ0HCG2qhm+97nW9JmhrLRtjnwp+beE3peoHKIAq+JSAAAAh+QQJCACmACwsAAsAfAC3AAAI/wBNCRxIsKDBgwgTKhwYiFKgJhAXSpxIsaLFixiNGBHFsSNHjRhDihxJUmETUZ+M0DHy6SOSUDlyjEHy6VPJmzhzIhRFpyeSmKHG5ODDp4bRHURzHNHJtCnGJpTo1PyZdKjRIFiDHK3Bg4HTr2APGvkZkyifUC9z7DA6oa0nTz16cOBwKULYu06NDF2rtcaOv4DX1mjbo8bcuTxSwMCEt/FNI0JrBOHigctkLpiDTIg7uO2Etxx48DhxybFpkZQ+oc1RAzNmD7C5fG5LubLsCRxOcNDw5bRvinJSw9xRG7bxyp6Le+jgae4JHrx/Sz8IEaXQHUGMYzhu3LJyD7gRc//wOr28qeBShaptzd3DdtiTjXeo/Lb5aA0lzE+POhYm6+ztvWdbbBPc5llzJ7Sg329y8PRJWv8pJ6BtnlVooWFPLOjbSVL5xwd2rnGHmYWeWFhhDytoeFogDnq4A2c1yMVBfQiuoMKNGmgQgm4WpqiiY1BJRZZSKRzBAAMjXDLCCDkiiYgFX3wRQSlRWjDCCSW25eOPeHH4oExKuCCmCzBAWeWTEUSAR5qlrKnmF09w4NmWXIYlXEw5hCnmJZeYGWUEUoIwSR11pInHoWtCEUKWdNb5FSVC8dEVn2P26WeUXxSappp4gIBoCU+coKWjd1GCxIc8qMDnqpeUiSmmhAL/GgEItHoKqKJynkBqWKXslcITLUDBqquvEoporbR2GoEkO+K2K1hKAJYqFMIOa4GfsgaKrK2IaIBlo8/mxMBfPUzK6qrEYmrotrRGgEionugablMu8LADB7/ySUIXXfAJxbVSAqpup9viYYEKup2Qx7xMwZBCuU1esi8JJPiLSMACf3Eou19Y4C0H4DJcEgPlHnmkBqKdcEIImzDQZ5VQqllwBAfPFbLII0GB78k8HDbjXCm4jAgiwlLcxdBQEloHIipw4EMWOOsExZEuMBCCBiloYHKOiTEAxRdEY32f14jMUAKoJ6wgRNQ51QFD1Socye/LiFxyRNBf12HBJXJf/0IttZKU0MIJa7ONEyYWdAFFkhNfMjSTKaSwCSJq0iysBZWDPXQLISRiOE5yfMFqF1aHEMIKNjZ5cacljOCyBSUQWoLZwH5+kxyTUELJF9UyoIEKTzyhdcSYr4nICE8AL0mmdYBqh+0j2TClEQ7t7sKq1JJgMgP9RlkHHnVU+X2tdYwgCfQiBbKSEQ8FYgQM2EvcBQlLknAxpxsX/IUkktSBPkZTWkkpAhEIGLztei7jFwO0xwAYBOxYyFrTF0qAh978zyJ40MgnvhCIUhzQBUrgngKPRAJX4W9bm9rUBS0ivZ4M0IOX4Be/KNa4lxkqf+0SWMxWaJEIaMQIU4LBvv9kSEPtJaYLMEDTDZMVgfBBCQQ8rAgmSqGRUlACfkOcm/ZSAJ1NxPASmEKUmpQWJShGkSJ4MKARqKgvIu6LhA5U1xjTREaNnbEiNkBEF9ZYComtKoutMtPGEHWoJioNBDa4Y0Xcxj4Y/lF+rQpjrdy0pkIRyoyKlCImArG3VcltfnGU0poKaShDYjKTeARB3fjUhSaZjE+hzBT+6pAIOaASIzZIxCoZGLnIHeEIYQLjte6Xphkk8pYXyaUkKDYmGfbLgHI0kyGRiUtVXmJMIIRlmWImxj/RkprJBEEdYtgFMc2vYn4DWAoxlR9wshAPpUCEC/glJnT+C2BfKAWVojT/O3daJBElABQ5GXC9QErzVfz0nD8pkghJUEtigIzkn15Vggn6b6ES0YQNWrA9uXGvYuni59n6idGFWMEGUNBejrTmOwYo4ZnEGtrFCFVSk9oAoq3EWtY0sImWETSJMoVSCRRaU4RoNKWkOxIXRcPUoNlPEojoXxOJWtSCaMIKIJAYA4x0sqVCR3FRnUH4DEXVqg7kqnjI4vaw5jIoIGJ2SvuemmZgBbMWxApy2OfoTuY1t8JVU2lKhDHralcrGHaTTShFHRCZyzrMYAZQvZj3NnUoxybCBoowqxUuKwdMcBAKdqCCaKVAWinYQRIAw1wK02SHRBzCEYsoai5LIAc5/0TArUJgwiAEwVs0lGEQWWjBk/C5KULZAQSHAEIMNrBQgDq2BIjAhG2fIAkhZIG3G0ADBXibhREgLWYprK4N9CAIMhCgCC9A5mNL4NBgQQEGtU3EE+xg3Q0Iwr6C2G3wHHot8KapBZIY7yLIAAACNIIJinSsEFoQPNStIATUra0NskDfDbgBv/nVQR5aYIHh/ilNx6OrHi5AYAAAwAEbKNz/MJEIO7QAdT6IcQc64IMTqAAKEs7DhlewgR7zdhBMsIEQhovPjpnPBnfQQwxKbGIAmMAHKlAx22ywtCesoEQz7oAJMGACGq8Ax3KwghRmkIUL+3gQQB4FalNrJhI8Yf8Gh+AEGGJAABMb4M4GcHIjfFCGqAlWElaWUwcwAAAuH+AATsZBgmprhR/oQQhm5m1+y5CHJ1Crv9cawSaEcIgfcIIIZCDwAx5ggDgYIBKIxgAOiqDhZ8lBsEKw8gRmjAEMSEACADjAABANgA5MgAFNCDMn9FAGHmNYEJQOFpGtpIER1CHOnHBEiUdN6jjEAdWH1nMWZsAlKtcB0CvA0qBrLYEBmPvcEji0r0eACRscIsllKEKP5z2IZFcLBlMLQQvgzIlhX8DE1Kb2tf/whzhk2wQ4yALUzMPiOtgBCrKesQlyfe6Km1sCfzhAly+BCSm8+wZl6DEF0ICG/DJhw3//014IVDADPXhaznQGQMAfYO1rRyIS1r5zoU1QBDdIR5ySYPAKfDDrcee63AO4wrnTMAAWXLzXXwCBxw/xgkHMm+QbAPILWsA4BmxivuPtN8xFLfCa4xznNTc4ohG+gYU1ZgYuVsHQG4EDLU/80HhfOtPfwHemI9oHaiKtHl4gCHmP/AKTHgWDmaS1Erhc7MPeA9lHfedrW/vmphaDGGp+aAw4gAKDuIt1w130LZsY74f+A9It3vddA0AFgeg4aQm/AQrYvuT13voTfDdfKbxc7HoYsMxJbQCaW97yN0e7Ai7/hzx/Pixu8IHdm5x3vBNc1wNgOhuy/wZLpCENEjDB/wgCYQMqgAEMQ8hC7SlwAQpkXcMMfoIQRvF4yEde1HemfNrFkPzLa37zoLAEqIYBbcBcTVEFbWB0uYZ6u0ZwBCcCFvd9fPcGu2YCkoAJo2B+N+AIF2Z7F/CB+ZV+89Vyvwd5NzBtMxcHYqAACqB5aGdzKnh5aGdiECAITAEEZLBlB5BueMeDB5BxDvh9SzeBTDcAGNACdZCBNwAGZaADv6VdEIB49UZpUlB/9hd8dUZ5ZbeCLMiCfyCABBcJLbh5cQAKN+d8FKADOeEGDoABqJd6Dqh6fyACInAFQngFdPh93sd0ALACJUAFgqcIOjAEv1UGTPACYKAIinADVagH9v/Xbz9QBeY1fMRXc/ynAAGQABUQCX9wc52Icy1obcsngIj2fCWBgHf3g6gXhwSXfU53BRKAh2nwBrNIi2lwAH44A6Owi4PgftqFe4a4hFX4iP1GBDFHfMVHfJFQARWgiZq4iZz4iWIACipIhsuHcwbgADfhBqZ3broWhqxYcVcwjmnAAm9gjq3nAEWwjhRQAA7gABDQjgUAAb51iGBghZAHBnsgc3iWf6QWjRXwB8zIjJHAfzc3hss3jZoXg3EAABdQEkXQhjt4a9anehgnAq3IBkzHAuXYfWxAhLS4awfwju6IYu+nA4fIBIvoiI8oiQCAZ6YGk5yIh3RYAQqAedf/tnn/h3NkGAc09wAAUAAkUQZt4AAmlm7m5oC3lm4Yp3oiEAUsYI5s8JHo+AZRcJVQeQCgZ4iHOAQv8JWD4IQ64IQ3UIJYiIw1V3kPSIdh2IU214UsuJA++ZMPQAAUMBI60Aant5RKWYcDcJF1GJUfOYFvwAaWYAmAYAlOcJVXcAAFsJVMEJmKUAaOcAEQ4I4T5wCCQAQuBwZAYJTFV3k5d3kVIALMKJA2yYIqCJfLZ20BN5cGAAEjEZFu+IPlZpGqdwUscJFzyAKDOYFswAKWwHeHGQW6KQLZBo+C4IRlAARl8Jw6YHUUEIU64AgxkGv9WHmYt4wC6QcD6QcJkAA3/3mQqUmGpDZqMZmNI8GNFIduGCcBdQiLqImVfCec5wiV3XeYLHCVIkAAlxmPZfACREAElfl+TDAEivCVL1AGglAAxZdzxpd2CtCMFeCdA5l85GmTEFpqPWkABOAIIUGUhIZ96LaWNFmHUeAE94mVWOkEU6CYw3kFFVAAkWmPN0AEG+iOBPCO9Jh7X7kBBKCFpSahE/qMN8mCybeCmSieYpB/1iYGdOmfIWqUh5Z954aH8CkCUUmHUZABUTCYLHqV3ZeflmCcdhmWTHCjN3ADVaCIzYkGOkoAcuoABAChmWd5ShqemtiCR4p2y8iMATCaaVdqQCmUGFEEOlhu4ygCWf9ah3X4BuM4jvg5gfu5mG+QmIhplVHwByZGABewiGDApoioB6QaqlUgCBBQZ803pGl5bV04kBp6dgm5pJoYkzrpk8loAIZqEUzQCB1QpQNAh8JKh/DZpVFgmk8ZBcNpCYaZohmAmIepmFfpmPToCDi6hMqFeGWwiI24oBTwknemkwYJlysohje5iczIgoUAnpsYrgoZmpS3qxVRBG1wd1e6qMNaocwoAn5An8OpqcoarYCwmCIAAIPwAsK4pp55AQUgpztaABcQlo5AAXcmq3GwiQqgiQXJggFgk5oHlwmwrppIhiuYAAGwkJunnhfhq3dXbmkQqbqJh8zoBxbqr///epVT4ASGcJhTYAheegA1GKBScI/EhrCK4AiCwLB1dnpL8KRjyIzhOYaa17EtGAATapOFkLUm65MfGwAnq6RicGIYUa+pmHQvO4sfeaxP6aVX6QROEK1WmQFuOwVTAAiAwAhsGwWIZpdUoAeHIAWGiIildQOKMAipegCRwKormJoYu4Ilq6fhyYxrMLneiXZisKRFqgDOhxE4YHrYZ4foGKN16AcZULop+rbE6QSlS7cDq7NO8AF+EAkOgAaLoANgQFpU0KCPiWyHeAMvoFsEAJNKiqTjyYViELkU2oxau7VPKp4cq6EFdhE6YAKJygI06ZtjOo4V4KxXKbeY2n0Z/zAHdDu+4xsFCnABLzBagJi7lymnBeYA8zidL1mNU+u1VjuhXRiyNFsBS+oHquudCVBzzZixzlgBe3sRiFqbuhaVVxAFxKmpIiC3pUu6b3uYiekEAiAAjyAAc7DBdJsBClAJvPu7LzAEgvCVilAFjoAGdGYAf/B9oNgJl2u/9+uM4UmzNKunOhsFa2CyN5kAa1ABWVsIkZtn8joRiNqe1ruougkI9/mUbhsFH4DBPVvBiDkFj0C3GTy+H6AABYYD0zkEQ0ABvXu7poqqANCJpqYAnWC19ouJUZuJ/eqlfsCvbpsBPdyaa5ABV9DDIZsAePaQFrECLWulAxAF3/e2Kv/aoppqxSqKmIk5vgJQt1MwB36gq7a3AQVwX+8Ij2gAZIoQmWVQAABgrnEpw6hMq5GLlX7QwIagumvgB8unAK2cBqbpBz0cCaQmmxZBARPnskxnh7Q4po2cATnrtof5yjtrt4CQwQJgCMecAX4AAAHquyQ3chBApy/5vgVAyj+4iW58sp3QxibrtXpKwVHgv68szbJ8vAkwjhKwv8tnxCs7ceaWBhr5fbNot5Zgji6Kxcfcs5agzICABc2MBQiN0BwcBQBAAWXglT/mu5MJBIvQwi8MfjfntW2MAm1szuasp2swBz6bAQKABa/cw1Ybsj18BRYakwDAyxXRBoR2z+b/iM8W7MSK+QZuawjQPAXG/Mqsi9AFDc2AwNM+i5FBCQE1uAGR+ZVr+gIqjAYO8In028YdDbnhScS4LM1zAAcDi8f3S8R/zKTpCdMUgQNuaG7GKcyQ/K87bbdY4Lb/TMlTUNIFbdB2y9NTULDzaJmaLKfzCIzPSbHhOs6XO872m9VZjcuTuwZ2bQhrQMQBINYfUAhwnABNampHvBB5gNYTab3ZlwbR+q83bbeLGQUvOgUGjdcAfcyvbL40+qO9qLQL2KlGuQQJ2bUandh6WghrkM4p2gACUNTpPJBAXAgBAAlZWwFkqKsWoQOe/Zd1fM8D/a8f6QSAULcDi7evnN2r/23SCE23PA0IGdCfg4Cgk7amk4mqDQsA2ScCUjvOmNgJkEDDkMvYdV3SAkCwV7CqF5sAkNDG/3dn2lgRKxDdTXdrA9B9qEuc/GwIBo3a2W23dZvQ4V3XIj0FsXti7WdyCVrCQ8AEvwUBpUy//ycGiM3bCpC1k0vSk3zUnOoAjdAIeimQtbqQQTnICA7P3ye30WoIzKzacGDQPovdllDhk6zQDfAIczDBkUAAj4l4DfuwEGBfz7kB4Nqkl4uJyX3V/OuMNNulQ44FlnxiRZAFyXMCnr2JMZhngkwRWRDd90mmcIuYQA7hWDDkPVu3R17XcK3Bwv3M6WwAgnCI+UVyDf/rwtlWZ/HtuHxqv5BgskD8AXOwBhg85k7wBwTQBisQPHI3dEZZjab20hbhBtE9i7O4rMt6qUdu4XBgCM/8ys/MzOH9CLaOBZN8yRewrVlXBmCwoIOABqmaxleA2ePcCY/+0UvqtWZA6SQNB48w5E6gcbixMiEwAi1gXUVABhHq3BVh6jOdfQJrCN2X2kUN5AidCXAw3CbNzHftzFtc11PQxf7pfkAm4jX6W9+KjfVLqymtp2EQBpTe1XBQ8IcpARjga56gb5JgB/TVAm5AyjG52Qpx4IS2BLGYn4kJ1wN713ed51ig2t5N6868wZM8B5bsxfALp3QKvxeQdVYXvNX/KMOZSMMogAB6GgDNHtJwkAmZgNBOUIETYGMt4PBGrwNZoJf0XBFJP6ISINrQ6t14PeHYndAFnbMlbdKqHfKVvMFzIAAfUAGa2YvZdQF1NpGcegCmOYbyzeU0PNkhWwgfYMwFrwZe7QTp1gFELwR2cDZmU11Z0Ah1RvEJAe4A4LKqu/F5ngnuLtR5PuTZDesZPOR6Trcoj/IfkAAEkHXbFaC6xd659rLMjeIca9XHXt9LOsTRbvdwMAVBDACNoDZGP/sl4GJZ4AMOEAMWEeduWG5WCeTZXfBeXdQIPeYFH96TnMGP8PjQ7swNgPIbDr+9/pyirANSba4o/sbhTN/k/5wAYWAGHdzz0P4BYSAG6ggsfW8HM5AHDs9eQfcEM86rEmluV5ABeL78WPDzd023WAAQj7BkglPwkQCEWLAULCgAC8I5U6L4MeCgAAUCAAAQKACBAho0DiJVSNDJZACUATqlZFnoQwYBDB9+CPDAQZEQLezstFPCjiRJJUpIelKkjSmkSZUuNVUm4wEJA94AUrhQJlU4DqsWxEJ1ikCrXL/OEfDhA0UIaCBsgFBA458BAyT8uVJBgRgxJlcGSJAApd4AYcwUEvCIK5YGNCv6eAKUp1ALkCWp8HGU6WVTLwRpPCDijSVDhgBp5Ur14RSFMhemDsvwq4A5ZhVcpCBIB/+TMoM2XHCroK7dvHsRBO4EySQCBILNNDDMVYAZBQSKtHBsZ8bOEjOElmixwkQjzEylDNlsIJKIDE7UG0pN0HTVrQSxTElzRTRDho8eNWgQu1B0CATZYJBByjCwDEEKMMAuwJBLbriUhlPuAzUyqRCORz4QQ7onqONpJyF8GuoJ7ywLL6lRhtgAAAOWSMMSJ2Dc6iqqBADkxtPeAMAEBw4YAEcMD4ItNjPCMKAjjDRywKKOCjigApTEUEkl5P7qRIYHzViuoEwyyRCBOBxoZIUWhBCCJ8ckQYQo7xw4EUUmdIjBgD9etMQSIBnqA447LXkIkDsHOMAEHHwwtAMf2Yv/Sb8pYvsgjAAIYIuCAgrI6A/PYnSigk7EQOGkThxU6UrktOQPP/6MdIAx6s78EChEWqCMxzdNuUGHItw6II0bvUqNyz0BDXTQDnxQAQooNAjhhAlM2BUrNR5p1CxICYAgQEEMdEQQ3gCgC8pOTYIksDDCQOC45ExtgKCCEksAgEayoE6SD3sSShIoVugAAwJqLcMBAHzkdauuqsqkjz4ycYIFeFd4AhELSinlCxgu0YADT5odgD2DGMng0UJU4miD2go0UDcH/gggL7w+7aTccllSbrkG+oi2rOgaUcFDScwUgl6hEBlhAgwAgOBNIXAAIC48u+KSK/z2TMMEFb74/6IUSrA2AoaKNwkBYxMk8LOhKT4uMgExKr0gI40IYBIAEUYN7lOYIQ0AuQkf6bKhDCIhYMxjgRI8qBIQgeIEZwG44M1GAJAAqjTSmAorOA5mtyAWOoBCYqwnprhiEhgIwZMOosJqIUA+Lvdd3tCwNGAJJMfCkChW7vRTTxEwy4yUyjXjg+YufCQDEQAoNgQGoIAVEeZjPQHRAxxg4sQy2jDhemfTGCCD9xbK5EZL0ujgkkAoMWJrF9K/5BISSNiEAwww+FE1AaYNI4Ej10JDEP5dJ6AzcLGsEyigAQK0NJxQhcEs+nkahtZQAeNNgAMh0MAIoLAmC1gAESHY1wH8Vv+GE2WhCI1oAw5MELABXCEDoumVJTjTgRGUYmtKYEAKGHDDLnSBAcpqVuyw0BwMwcYsZknAyBywFkEQaAMKisNKWPaAvBgQOX4xoFnmwCV2xcYPEeQAB3iggS6QAFlQUAHRAmYAABQAhJhxAwkdED/sPeVFaZAAAABmgiwwzwUM2IQG/EjBHI5ABSvQl4+sQpBHAMIJc3DUFjsSsANsxAEZEYEfzIUCTGaSBmZIzv0U+IErVo4hakhMIYznCS/yIAV+7IIgiXaAAyxhCZGw4xqXUoZGmKBoAMABDiDQS4D5SCO//A6Z1nfDGvpRAwwInQYGiYNnhUVajHzU/ThCKYD/OY4FhqifX1ailwEW0IDlcskcGhATUaqBlNDhZRd58M53pmB0pZOABEgSiT+kcRBM2cNTJPAdH6xghB3EgAO+04HvPOEJF4TCDVepgSeMgAQjeMIzo+maaX1AS0WkDRo2QDIIEGBBfYFUuEyCgnRRyyyFGciegviBCmCgA6g8AQdOcFMeMGtfcamkH/zwOAfsUymNyMjjcPDRFTSig9eTKQ460AEyjQBiOlymMxWKLEH6wARS+RUcfihEK3IkpNf8aEgVkABzBcBlJ/ndEK3IwMotKjExnWkX7frOEIRgBRiI3RX8MAfaXcEAR1NKDJ7igA0UYQU+2NeOdHmADvSy/wgqaAwiLqHDHfqRsk+4xAhCoNUfhWUKEIkNI+cgVpFG0o4By4AfqumyT91NS25tQH4wFC396KgDE/AEKlOpgYYSLSoSKEQhMnBcwaJBKRcgAwAwUAToFmECT32q/A5QqICuAFk7tGFmNZs8zz4vDa3xqkKk9YEpOOGaFGDL/zKwmtE+Sq0sk1IAzDCH+zIyJlYxzEG6IgEMeGACNehBDyaogRR4wgM+GoBd+tKXDKQBABRIiiJCgoMi/NKpTz1hXHg5Qhw4LAQpIDGJEWxiElxCdKAdCH686lUhTSGNFPAIjQsAsApwcz8LOBcmw2lARxUGnQyxEMLgAIj4eYALE/+YgCpr6gH5vSENfrCLAqzshwgjNimCIAMJCXA9DjN4AIQyIaF4G89VlniZXbjEIBuBgfFezsUIkVYaIRAwJVUKABwjJX8WoKU/82c/5mQpHNSAMIRtQdGEAMQAksxbT3AByvPDwhoCoIAAFMIPV7hCVAqw3DfjGXYD4FUaZFq0A8hUgvBMQTyXeUMNLLYD81Oni+ejHyfYeUkB+0MkRZAadaqzD/p5RLDV4GILHawPit6CFxbdByzIJX5i9hNBDLGGkPlhDRm4QuSMlhQ3tIEzsIwLqQ0hYY142AQd8GKJ46lKZQ7SBLwydK3LS2w4qPciAyIZwK6wmnrbDNEJO/b/KLu0J4QRotleYLizEZYJ1kQ7LoDgiiGKq20nEK8CIvg0UoqgNFj+QeR/WIJ90hDJ2GkPAxI8AatLvMoRuPIA1TZ2fhiY64tc4CM2/h/F1UkKhAUb4YhmVx8IgWiFN7zhW4B4V8IHYNOxJgOaXsMafFoBAxBAqEUI5hLqKXIRXMESghKYynfbxZavMq8QZd8J5EdxmwW7IPbOdxp1BUtYemshwh54348+8L8vmxBKZzjTsWCJNzwu1XEZL1cykIBtZ8DqFYgDADaAFDcEU1AjpwsgTi6wN7wh1Us28LtXyYAR8ICvllB2zV0MBxl3ZJIBS4Mhqq3svh+67w8/eMIH/0/4LRwdC2+QS6r5OoCqOCFkmX7gyh5AgCogRRDBVPwBRF5qH30m9I4WcA9U6fIUwE9suA+63PET+5IJApuO897u3Y/oQwc/0YR3thcIAXHtwVJ+vFKkH9AGxUJIgLsgAOVCCkdoLrwLuZKLMAl4AzYIPTago5VDJR5wJx7oAaL5kUwghMAzP/x4iBnbAAGhABsDAKxAGKArv/c7NA40uoWjv79rNKj7EaqogOcjg0p4ACsTgwdYBKUAghiApOrDlPqIndCDQEfbLd/yhBqYgEl7AxfkwKOrt2MruIKIPbfQCC0EgPHCAhZswcC7PzjYPYVjthesP2cLvuGLnIGZj/8DIIBKqARLiYM46EGm4DoMwDvFq5O4OMI+kcCnYjInlB/v4cDga0GXMjQXi72Qgh2xg7uDM8RDJAUpPDpLrEQzpL+lg7au8qrikcM5NIBKYCNdgiS8E7nYecDQQzxHk6mngrI0iMRKlMLycz302x+2uLH/UQhlIwVKvMSj0z2iMzpJ1MRNTBiX6godIQBmNAAxUJzwyIIsTMC5qBNVnBzii5/4acBIJAVmo0U5MzY1kDGPqLFrqZQDgDvAk8ItMLqB671KNEbCk8IuUQgBSAMRiAQFoMM9qJVuwTO8iwsWEJQrkDLVigpLqJyDUacyXLRgrLWaEwA7E0K8SwMu0T3/MFQ0d0yY3ku44DvDM1w6RdubrgAEbAOFOCAAH6wVUwACCCADtsm7+BEpWYokrrIcRFKDpFu4wJs7uSNHCJi9P5AA+8CCuDO2Q1S4wOtISVQ04DPDFzy6LoE4J1gDtImDjmPJpCgCblmSNiih1CK3asMiCRMAYmw2pSQ4cYS9GWMvG5ukAxAIn6REh9xIv+sD+0s6pVu0dtxJqZSPqkyAytNKpAk3jTAAegO2gigeQJBFWvTJn7SWtlgSygQY1JgCQ+sDSiTGMHRHS3TBTCw8ZuPMpZwPyaO8fiHMN8kDgJGA7iEyXjTEMuzJemMIfXMLCWABVpSdF7OZX9TIhPM9/6UkiEwIyacMPI70qtRRgAfIStXEDB1wltAymKnEvVlswSqsuSmQTD3jNRFwAvzgO3cUxr87RCyIkYHYSRg8RHeUD0XKAAUAgOd8EzeQzl5poIJARqTLPbqDPWuhMWxakv9xgqowDPIkRgSVSobAk2ULSfkjzfsrGECQAL+ZzxDiqzYUJZ+cyrvUzJo7NvW6lmyCinqKgl9hIIasRNLkyL2Bg2L0AmLk0IFTzuGTgIqw0PB4Jf4DNqGbyoIzNqP70Hz7z6CUAPKyLWFDRAjlQGVrSg7EArwTAA6dShp9g0ggAxwNjw7a0V+xwtcLNlo0vzSwiKDkQoV4nIQ0L7hSg/9fTDSk68izlL8oWBxTcAADMIA1QKeucII0+AOOyFLMYKwowxPKsbWwCDag68CCG9NKaUA8MTUMeIOmewTTKra/o0XkBEa7NAQcWAoIWJBe24g/BdRA1aUBuBOK+0CosUKhm02CCLYrOKIC+APT0BEuzI8hMkv3IwWMfL8ndRNSzVKtEpimgY8Xmzv8KDLZ7JJaiwKOKIBfq5w3KBqLRKQhegSpfD9fNTqIS81gtdA2yMNTBQTRmALTMI3Xy88ydLaaC9ECqID3wgJ0Qz6GKIsrWsjA80WBQ87WQxgskM9vtdA3i50+6RWDPdLMJEaGe0g4GNNruZSTo71UhYPEMMv/YIS/uCu/+7sc/kiMAyjAgCXMGVCaPsQTQv2hFzvSgVu4doTVI7qAtmBGZtSIxsOQK+I9iDzK/kSIBliAPysEA6DTkNXK6HQc/usVY+1EdVXPllWnWL2Aj/ooGjtHANiKR0hBZAyS/UiMjhUA/uDZIjkXrBxawqzP7DvZ7jnSCkG64HO2YISDWPUI/ukfNKCACwCAqXiIYlPIgiCL3TGLBfiAsvjaxNCo4dgQstXKDTi+0EPagpmRZOU7vWzZTPCDIyoZJSIZCnCAKxgtr/2Aji0IQzCtIfodn/UzsujZmCEAQUjcWlGaqPgMkz1ZhShUhRRPv9yTCqgEuR2EudXc/1l9g9E1gz+jmSAZoglpAOJtK2oqLvwRWte9jCwAGFJD1YOtijwpuvg7xGdTgwq43CTyXQGp2wKQgIwzXORYAOZgDiIRDLNQ3tmCDbD6D8KK3svIvKWZHJPFkYgjMgTlzGbTSDWwXAi4gLkdXxKcVUuwJAcxIPXts541lfd933NKjMD9gOgAWftVikGg3qMFlOs9Vsvxu498NsuFWRH0XY9K4D94vLuhAXFaDnU6gwh+X69d37LgpJ8NgIpo3Q1WiiKAndrDEapA107k0M4cPI28AgKA2f0RkA2oWxoDAD9QgAEiIALy2TOIlo4FXebIigrmpFIpIEiIjh9WCjQImP8FJNCS5N+wiERla1IOdLg+YOJreeIoluI7EwErHqABKpUG2GIuZo7mOAiNMgNIgAQEIGNIKIRIANYzLgKaLDkWcmPvQWJaRDTu3QKgEwEHcGL+iWISRIO7tYu70STk4A8t4A+INIjnMCBFTmRIQGQzqADo3eC1AQCvG1fH5UVZFM4lvT81GFPeMGAo3rm1oUM/XmRMQgD1PZVjzY8cliIEUOTlUIBRPGNTuFtdrqfIydvyAhaO9DswTLguGYBPLgBjFhAoZq44wAtPuWKUcmZBC2cNLYtDDttSEYNsPuMgtL6h/OZCLZiD+bsu+cxLNTI48GTeCJCo7R/euFO9yCT/AqKBZwaLZN2TwkgMLSmEPytjb/1ht6ATH/G6pmEIz0O+DdxIFQ265PyDdF5nEdyAReCNB3iAk5LnLK5nRMKihOEbIuGkTgDYM94DFoGluShW7H2RlsLUlr6QgoDphv7d8eUNAniAd6ZoGIbhZ64tihW0vTEMiDBckwjpDQ7CcaPB1TDW6izoDrWZgnhk3igAQViERZhbUg4pZ/QULKYBTQpcAfgPMVgD0GWgsUbfRH4AbTaF5tKIx+EVbmpj76mcdey71ju26GkLuuafuxYQmFUQvDgpLEYBGSigdykAUgaABKAzIcE2xIYExT5jRWhsBuMVtD3iOGbRn5Yzqa6U/7m1a7u+gG5pouA4KRm4kgCwPB1ogSxog13JgDlYg+gm7ELgJBqABBk4kjNOAtouWULFisupEJy0EIX86afpbQgQX+DOa0txxishbQI6l06YjQ0QsVl7A+h2K8DVEuO40R/m7nRjGicI4WSNY1FqUSKDgwNQZ3UeBCAAgiRIguCeTCjKi9IubRpYmSOhgBV4HvkxhI9R3r/9gMAdF2w+40VoLgOICjuxXtZQyN7TUHYhTnZZ8GIeBEdwhAgPbt6ohKsubhlwGR50GxzgK+JaDhLvWI7+nQCAhA1xhB9OcRYZyitYj++Oj7YmbyrNT/k4gErgjUXI8RyPcFKe6x/vBJW/1ovjFoM7FQMFkAEZmOWOpWGu5egoGVX7XYSMiINISI8YAeHHPaTq1FCbOTiSjB6YFQRHKIMxB4K6VotKuWpw6hQxgHMgr2Z6VvILNlzjeIB+jt4UF6k4IMJu6zb1qD0nQAhDeA291VutFbIrSCOPKgMmUIQqqAJG35ZFYO+rvml4huebrvAGcRDjSAkrfj6ts9CAAAAh+QQJCABNACwuABAAdgCyAAAI/wCbCBxIsKDBgwgTFryFq+G+fQojSpxIsaLFiwIbUqIkqmNHjpSkYRxJsqTJgZTo0BG1siOdT5+QIPlkxIgoIydz6tzZhONKIzSNIAmVY4dRozlyqINBiafTpxKlcRSFJGkodUl31AiytYbXGjt4wCgFtaxZXCmFWpVJVGuQIBO+au3B4wgMnGbz6hRKNGkOtuqMevXkdYInuhx48Ehh94vexyMpjSl69CjYrzUm9PA0wbAnTxxC81BnRCTk0xMpGfG7g+vbIFy4cO08wYMH2hNCi04BA7XvhAxffsqxVXZsD1w6c57AxXby3KIV87DwuzrBfSmrtm5uuzvyzse75//+nJgHhyNkrf++pbpvDe7djXU/zr25YeWh6aJS/xvXy7bveSdgbM09R9tynfXAQQiS8HcaWi8hERhsAnpX4HPPLdfBgSc06OBj+7AUU1EUVkigcp8ZxsFnnMXWGQctfPiYVP8VlRluB4J2QggaPPEEAyMEqcEJnHWQHAdPyKgXWkANlYN0ioUQwgk7qjACKiV8oWUdEUTgiwUjrNBibh4qWRZ2EY6hhBIuuHAJKnDC+eYXXdZZSil1lvAEkcoJYeZZLMmkJgxtomLBoV9Y8IUvWvriKJ3MRFDKJL5IEgKCSf75lBylxBTKGJfAgMqbhqZigaOoelknM5OAMEmkehL/+Vkrmj4ljRGTqaMEqZf0eqiiX2T5RR10dskqCCB0Ceals9bqFC4wFKWOC3L2SuqiWmY7rLHIgsAMM75cEsKKnqzgLE/SKJFUCtSOai2ciCr6aJeuduttBBYM+dkKNpyrkzQpPHkEKqm4+yappzbqKLetdhtBKiMQycEKdfibEyY8hHUEtda6+SYMizKq7bf2IvvwnqGtMIPFJ4HAgGIpWNurx4YCq+0XzJR8L8QnhEYryyaBgEoKdXl8CQNIM0ACwcCmYqqxOXcbKZihnfAz0CRZMYMGRffKA5W7MXCJqQVfsjScqWTpSx11lNDCChx0iLVJNoyQQgpdHK1Yz+Yp/ya2oagwwLViGlxJcLCSwK3CynOTZIMkDLjpQtJ5H61BChpccuqXJDDQRc0WEJx2KivI3ThJrDCDSptduNB50hpcHrMFdQbuuaEilzBD4icwfvpIIFgws+Dmxc2D7F2AHGngill5ONuJr8DM76h7OSrSm4SgggpPjJA0yBEw8wUqS6ciSQl1fFtHKiE8IQf1GNkAgjTSlDIqCSQEOcKPSJNAe/jiOxTU7lUCFbSgDqyAX0Vs8C1MOFB4vdLfj7pAAs35AoDEolP6cvat8YWvYgpMDR1K4UBMhO4Sk+se/rpAwf9xcFFQm0SXGMUqX4RwIqWgwxekgQtpjMoFFHwdC//xd6rwvYpeyPpWnRYWgRtKRDVGwIQ0MEG+IQZxiP7zxbe2eKxkcclLX9KiEyVSkwjggookYKEVu8CAFIgNUXWCGpe45CjagWCMEclhKegnPPxVMI0M2ERdlJbFOBpyidPDY0RUI8Uv9GqFgAyk2GBwQUMqMY7HUmREQAADKZZCZhRU49KKyMFVRapOX3CVJiPCjFSUoocw6BgQK4g7AHrrlOHLJb36tUqF+OKV0oBg64BIwZpdsJSSsiQIEtjLiODiFqyoww9doATPUVBzh0IVDPHUJRA2kyI2mMEPlXCEu6VgE4TE3ReeZiy2fdMi4kwjG5M2yc1dMFGVrMMM7vj/ToqIc5hKYOPSYCAvLcrQUWybwQwS2U+JiPNowxwmQbVkrC5lS6G+a6hCpFAC71VOcvBKlUWDpVApaFQiIFifH2VWMzqFLFtZKgEvT5qQlKbCbGJr05tslq3c6W6mND2IOFfXhdgJLm+puNmiSoA+fQI1qAUpARvHUrDA7fRXjGIqU4dVBxC8D6oGmUHnvoCLEnQRBDYIp1bXyrZUMhOsA5FDHToHshbM4AVUyGteXyAESRBsq4uywDLfCldWfKFzn2tBFuYxjw2gYR5lGIQQWpA29EWKbSA4xB3gKpB6sMIXr0PFChi7gQ1Q4LHzOF9T2cYlZsxAs4fgrGd9oUYL/7RitPNA7SAGkYcsbRBqrz2EIogAVitY4bOXyJsFVLCC0jZ2HoNggkKLBcAuzcAGrHDEIl4QVBuMwgrBTCMqvqACxz53EGWQAgi4+sU5XvcQjiDDBZigUStIQRJf4BT53tjc0jq3DFSYgamKCDVJ2OAOjsgFAQpA32/WwwovyIMQSoAL1aURZItFLXTLMARJJJV2X4yAJPJgg0MAgQwAAEAHViCEjI7RBlLIQwtmTGEQQI4Bv1zsBhjbWEe8QBKSUFSIfYGKGVjhByfORYpNgIMiZGEIeLxvC56wPQ1YYB+PU8EmLriCFaBhxxvY7Y+DLK9FoaIFJf5BEsiQCyWnGP8AJlhxK8p0unBKIkylqxqFWSEJFYQgqc398o7RG2EP9xRMBr6DHtYMgAc0+gEGSDEGTFCuFdDZYtHcX+k80YFO56YErEirEFZAsCw49rQUgO4LOmyqRIHpCTNghaL3oOQH2BrSBjgAAHSNgQ6s48ksq0MLpsSBzhgDA3DekCSkwQorjCILM27uab+s6jx4+FckCMEISnwHMMSg1rd+wDEicYADRCLSAMAADhqhAyFQQVPCVsGKJtDpDmCg3JPuQAukYQVFM+HOK5g2tQcxBGsPmAQaUIFM7/ADb6P40bY2gMTNHYljSHzJOPCBDvIgo1GUoBVE6oAJTICBkh9gAAP/OECvRyCNAyt6FIlDAwVm/liCGzx0I1CBJKTwgx/cgQhshritLT7uischDsdIOrnTjYMdWyeakniCmOhtApXf+wASQPkASq4CaUhBs3eQQhZMPfMLUCDMTJgs+TahASGMQg93iPsNgg5pXBug6JGoeNKVfoBmRBoDDliHDlADghm4DW5U37XWMaB1lKs8BNKgQr8VrYOxo7rmZWjFj9gOa57HfdbglrjEK573Zug9EgqowNHNrWsAOCDVerFB21qggpCT/OSNz33KMaACTMxADz7/QTGKoQPoMoEJeJXxj3o0g69/nuGLAPetxz3uZljf9HnPfiRMP25dm2Ad84DK/yTa1gqQc9re95aA+nUvAscbg+XNh/sPxAGEDTTC7GHWgQ40vz8heP75ehB9Qnd3e7d9V2B612d9S6B91icBrkcBg6cTzCBNUhdy9rZrWTcAGdh4LMACbJByHQADLUcFcBd3evACWdAI60ABWVB+PvIEbleCAEhr4YZrcSAGCrAEzSAB2Ld91pd9SWd95aZrDhB+JiEFM9ACt7UinVZyAMCDWKd7bNCBLKB1HWABXkcFYACAilAMZVB5mucjktB8Pvd8P/dtA6h0O6iBFXB6P5h3eKeGB0AAaFASMrZpVIdsKdZ3fZd1H9h4afAGU5gGA9ABdRB5WiiDP3ADjBhhmv83Z80Hds/3A/GVCzUIaccQB80gAiLAg3l3dxUnBqXHfQVocQ4QgReRByvgA3moh1infju4gX/YgYLIBmxAiCZQAnkFBrwIfIpGBIqgCJEFbZLwdr5ohkTwbZdIgKUnAm24d9CId6YnBtSYdI4GARiRB27QBiLniuqXdd+ogVcwAGlQhQPABm/wBquwCoK4da0wAzfAi2Dgi3pABOIQjGVQBnkwClJwjDPoZhIXcQW4fRXAfXpHjdWodHt3d2IgcQ7AXRYxBG1AcozngBuYcn14BVfAAoTIiRypjuz4BmkgARsgBC8Qj72oB2AQj4xIBERwA1LQj2X4fIqAYrg2fcf/IG44qADHoAAEmHQKIIoVx5NJFwdDZ3GRRgEXMQgOgGyvuH4a6IAZeQWESI60yI7rmI4DUAAc5pJEUAVgSQQryYvBqAgwqQeSGHdqVmsBeWsG8ADUqABB2ZBvOZCRUI0EiIlJF2nYWBEv0AgkBwBRiXLgKJV91wwbOYtRkI7rmJVpAABntwEXUACV4AAFMAiMyIviwARVcHwneYyLyGY1+JYGIAY9GQAVMJfHgJBFJ5emSZriRoClaQAFgIoSUQYxsIe4R5iwyIPN0IYVwIkaOQAsAJKAgJWrwALqdwAFUABmB1knuZJJMAiMRQEFAAEbUAW8SAR7QABvGXGvmXQ4/1gB5HmQCRkJqRme1hiND+AAdUgRi+AAT6h7hKmBFPebwSkC48gGTuAEjbkKgBCg7CgBEABZm/kCUhCPRLAIFwABBeAABAAAC3ZaBXAAogeXpimecUme5BmUnZCQChAAcpmT4qahe/cABNCXEkEEbvBwF1mfynkAPZl6FZAMURAF6LgKUeCfABqg/fkGErBgF4AG0SUFisCLjiAOSpqPTDAEQ1AGG1AAokd00IiQqZcAIoqDGSqerrmlH0qUe0kARigRUuAGTfmiWicCQGqhCoCeNZoMGxmILNCfURCgPnqjrbdgOiAFVJCg8wAEQKADZYB8VPACTFAGFwAAF4prpv8ZlzPqmtCokyGaoXGJmki3dwDwnhIxCnuQbuHIm/o5ktxnAOiZDDZ6o1egn07wBv0JCIbACIxQAQSwY6qGllLwAhcQA81ZCQRQCc1pmQCQdz75k7HZqHPJmncHlwGwrG14lwGQAMkgAguYoQRwARSBqym2gWnwh1lXhaY3l6lnqqdao1EwBYYwBa7qBFEgAgSAXscHBodwCHpwA46gCFXgCEDAoBAgnwdwgKh3dz95ohi6pVW6rHJ5bj1Zox0qBgEgcSoaEaOQm4KpdSI5AO13jqLaDOAKracaBTY6Bebqo1cQBbQJAak2BDF5q+Igj7x4A8I4CBCgqMmqkwQrBnD/uZoIiYNcKqJ6F6LiSp6FwJO0SRFM0JQTmwbbinJVyAJRkAEi8K04CK03OrUfawhWOwWMkAHJUAEGQABeewE6gHxlAAGLsAh/mqRfqAMUAABIyZCsabPTp6U4m3TPmqWNKqIJkJoJEJQWVwATwQo6YLQo9wYDMI7E2YE3mgzWJ5cKwLFTO7Uga66RmwwKcJm7NQil9QJl0Jxk4LVv9mYyirOMu3dwa2sMu7dyKaLLiroZ2glymZrPGqJ9OxGjMA8FgAHainLlWI6sGgUFybgJAK1rIK43OgUCALKGgAVTQLkFIA4voAgvMAjrMAiCGoz3yqAFQAAnJwJCa5qq+Z0P/9AJ4cusqRcAqGewAZCzqhu8o2sAD5sQQ1AEZ0qfhzuyTpuejZsMH7AGw/uxkYsFgDAFWiurEHABtIqdBBedN2Co4qADaOCd1pizJAqXFCwGwduhcomlIjqix7CsAVAIe2uwFmettwmY86m7gWiLbHCj/Um5Udu/sAq5kTvDjLAGPum1C1YA1tmcQ0qrjPXAq2m6CamTnbCaAQAJIFy3jVsIq8u3xwDChQDCybAGInoMB/C+CDEPEzmfIkCItyiIVbgKdMq9Fsy/TcsITRsFH8AIkZsB5poBCWAAYFsGjjAIFzAPF9Cg2btrzTCEczmwjdqQQtwJzxq8WNq4Gsy4p/9bAf3rsRnKnBNRBIG5fkirjiDJmE6wtRmcDBngxlPQn04Aq6KctU2bDAZAAc57A+KABkBQBQvMBNRJAQ5KAL8pBh/6oenbqEn3oQybvwkAwhXwyxqcy886xcacAKtpcZVAXBFRBPb2lOQYiI2ZjugaBXsrvFHACE4wwwI8yrCqtQpQrWE2CGgwnchnqMfHBOIwCFJ6l51wy3B5rLxMjasbvFMcxSFMz/ZsCHD8xyjqCBJRBDiAbBdZnNOsjoaQycF8qt7cnwn9qmgMstbctQTgAAV8Ab7anNfZwxTgAHenAB8avnH5mtUYolcavPyLuiD9zlG8BhmwBkyMszZLAED/ENBNuZsUy5hYea7rmp/JMMrFu80CUMOPWwEAsAjopV1JsAd7vGtY13fO2KU2K3q9GgNtsMXnWwHLyr/BfKzLWgj8a6pBG5S2JqYSkQW3R46AqI7HmY6AIAAeKwLiOspTUK6fDLKiXNeyOggvAAYvMA9Jaq+Rhcf7CgAL2KURRwBt0GWtMGNZIMkA4JoKANMg7ZqEDNYvXQjJELxZ+s8S4QYdoHiAmAYHDaDKm7imCqtDXdfcLMqdbMoFMM6LAKj5OKjHR8cX4J0I6ZYA0AYLsgljA2Qp6NGlysgbzLAfzL/8C8epGZRvOQgSsQLPjMKV3KONCQhYoK6PO8WMcLyR/8vGeP3NlNu1G70IvFrRzYlqBcC2OUmN79yQveYJJ8AAf1UCQpCCANCJS5CzUYvSys2+zm0AY5oQK0Byax2IbxCgILkK6KrdUTC8awDebJzXrr3ZlQtd80ABi9CcXjuE1qeBoWjLIh4JcJYb7aNaJSAJbxPaB3CDIfrVCcC/AiAAa8C+eyngEgGYuKu76Ii01h2gU4AFABzKUbzGMywAsDDUNA6r+7u3ECC24/yF1CmZ2XuYcPnehHwMve0DIdAK+0NZWiUJrQCYBNi4AbDcGSAATgCtVYyUGxDQ063WA8CYAhrAxqu8TJsAawzeIOvdAtAATF4IH7C1dBjLO6Z/tv8tDlCqvXdJjVfeCbRZBI0NZB6GNmmj4iuAA4q6moWQ5iDrBJy4t9BoAJqaEPJ7byi84Areo1gAB1iwClewBh/wAdzs57Aq62YQBslQCF1r0RDwwF5rmRu93gfZCTJAA52QAABQAJLeAkBWAk6DCkES7WHi0cdQAYKevFOwBl09xKRu0zuukcW54Mi5CgLg6jo6xWtw5EM94YzwAbmu5wlAh4w1pA/KrwegqqC+0saOxMruAI2wAk/g7E4D7ZQOZGHSBmzLyOc+1AlgBgmgy3uplM08v3NOlZb8n9g9BXAAB+zosYzQAN6NtYD+58b77gkQBgHQrkzgwLtFx9SJBvv/2neNbsuQsKxduw4rEIYz5jQ+T+0roPCREOMzXuOcjYOo15NyLBE6YG9Zh7SEKM3HuY7HGeSurq58brxYq9pK/u4foPLue2obJqiHWgZ4LHFB3AkIIKLL7gYDD+1nFiRA5vOXIHWhvQQVsMb4rPKBPG5vWeoJMdBP/wZRcAWqDqDm3uodz9rgPeMnD6uAHuFrnOsN63omi8PC7qAOYKEYuvZs7wA+MOmX3gJBMioEgwoq4AMmIAEioOdDDcJYqqUIKXEDHvioPuc6vc3KawiroPhwoAZ13d1sPOOwAPndPePwbgZmIKLVarJo8KARCtUuXeO23AkoQAMiagAOUC4G/4TiHjYCfsQAl8J4aZABbPzSwbys/G1r0C0RW0zdYozdcHCc8g8LagAHdf3TxnvuJA8QAqYwGvjBYKEABiAMmodm3qAyOhheKEAgUoY1AcR0QkEjQCQAOHycCKHiyQhJqUqUSJVqxAgNPCZgkJBGABwshtYkSABJzE8xAY49IFCmyVGkSZE2wgBAwoABad68AQQICxZAq6xigdMVi5OBAgTAgjVFACOxaRkZNBMmAYELFC5s2ACxTMR5FBysEWAmAArAnQw4KNKq1YgWrU6iapnSpQYOHQ6kMTQWjqEMCCEF4KxAwVAC85SOPurDxIEBV644caLVKpyqW+GoUQNnyv8UsrCwWBbbVazZBozWREl2wEEBCgSUOzheoAAAJ2ITBEAQANIxAkVWPJHU/cn3Eai6p5Kk4kSHmoBgdcVs8INbhEIHkyZtGgBU1emv4qyKhWxXnKZoALexrtqNK9sEEuiDKA4oAAIIKCjAAQAOeCoNrbDYBY4PEkCgOpBwWMEkxlJB5aWTwiMhBE9MiAqQ2WAzZLcp1ohPDAMMoIC+0UyzMDUWWMjQq/6sqm1DriwDcEk4YBGLrCmiAGADCiDY4KF5qISAgANE0NC2ZMJoK4FmMOiApCcuQaVESVC5ZATzPMFgAK3g2BCnq2CxsbNjANiRx6RwaMrCK95YZYr9+Hv/LUY1sOqKNie5qo02rwCcopkH55pnHokk2uACAGDsaqe2PshAAgA68KSk8EpM5RISzJvgPqvuNFAAjMKID6QNAE2qjUEl0GpIAA1csrZHvUJwUiYtNQ6CCwgAYFrlpG1Gww1hEfMD4ZIpzoQJOOBBAwZIuARWBmS9bxU4uKl0tzXeK6SQBCIhAAhfkbqgKQmE7S/RrJLsaheC7+xqvYNjxAkWZAVwAgAIIXBA2i7fqOwmbrjZBYvbGFnLoApS9eSEcRkwWQMV1G0mjQbWU4Pg3XQSEyEFCBgk36NAdSqNrP7lCisEm7RTY2SZpJTJ9bC4ogA0NGWIyoomw1ZjBMlS/wOWkHHwRFxyGYBThRU86QCAJRSApIGC4RAAMzMaaCCM6o4pAOcmdF45qwyv2nBRBHchxN1Ki6ataADVcIIAaK8cZPEs0YDgAFEp3UWNjLlRIw2ROeBagyc00OCECUyQoBkPF0B7wwzO+uBDGTZL4IBe842hwvTy5grJn5fdxXLCBb+6WTgkcCDCaqUlwAQCJJiaEDW24GYL6LnB4gBVexA3Bc9VCIGDmSSogDMxzfjgrLXC6ASSTjZSoIKiZAcgEgnewFA2gm3L/dGMj1Z40t8Lr83BAlxgYgc4QKFWkShuEOJvlYPeFggxAHBZjwcpYADKwDYB9HwvAGEIQCHM8P/BeU0HEiMMgAJwFDseuaFCUlmFa26XsV3A6Gf4453CjqU/ZGEBYlba1AYcR6Fm1GqBhChYA70wvQ5MQIKe89z2JPO9ngSAJ6aDRXA+wBk+RQICgNKB6NJTJKBtaBcC4FjQ/Pa3oyUtYXhyWaOeRQE4XqkhFDkAtgimsb8RYgtecCAgMOABLiiRByFAWWSMMQAJ8IQnnEmA+GABs8xo5BgGKIBRSDOP07woNlu5nZ2uchOF3XFwOHkUstbTxtpcYXgQqNABpjUtE1zBjmfMGCG8cEsvEMKPgAwXyU7gCS7MKQ0dpNciR8iX+gnARj8BgCPo0wF+QeUAJrgPzwxUv0T/AchvCZwUKvlXyv89CAITqpCQDIEoDSVQjw5UIPRwubEBYOCPXOiAMeQZlTQko5gJgM8H15A6J3lMmZgiTRaYA00zrYBF6OHZwPa2LAAl0HmM+mbRbHUAaDkkSxKiUPzSWUvnSRR6erylA7EiP6pUZRWZiQ8kPhS+D6xBfMlYwz9x1YwtJuUFbmhEI9rgiRXARHMzodPUYJPN2ajTXaOcDQ6bigVMQQsC66AAGtAAxwJAbmgOdN46+bjAjEXvTkjCDD8RAAkZ0KAtHmxbA2IqFoxM4Q0HEA1SRpEFN2inBW7aRBdIcJ45AaJgGwsa/hwIuKMNTrFHUyWEaOdKDFBT/wIwUqceFdjOwypMQ1jxWV/ghj4anNU6kGibkxClzAww4goAqOshypDX7YyAAZeAwRdgEAKZACANWEggYbtiuabqEbiJXSyz4BBVCT0HNWzI22/XydUG/s0rU8CQoXhWFcwUAm4fQoAZREtatD1JDbhaQxqWkNOdtqERPhjRJUph2y5sQgMrkMwqdmewpg7ueWhk1igX25WoooEuVXKAZF2Y1JFeNnpdcYIICIiaFrbQCRjRbiM/aB3wtQ1POMlABRIQsqM4ohExEEkrfIEJ255LTU8ogou+tKRl0Ua4lSplUwsHhwGsckLMcQAOcCCZqUThA7BQp/Pc6TwkOaEZBP8cAFVWcQBp5agCNHVLAGTQCepoGDZwLYQCDEAANIChDINwgxskwQwUw0BNFmBzC1bQBt1+qbD4E667gvbfpza2IhWCygBc2WTitK3I3MhlSYmIExE0oxkScAJWjOMcBxigAiEk4ZUL8YGuAAKuGTEAGRbRhBfkQQh1kEYpLKAmVLCZzZIYwQpEhy3gJfV5wJXUfxlWGxEMz6pNU+4AmGuIZDSScpV1Z0mB2+EKiGC3WJgrAJhjEXqN8MoykCKmcTLhDCQAO2g4ihRGYQNWlAIVJEg1m2HAZpe8GQBvSFuNkzrjRNmaUjm20uIGsYFxUmgy8woDkYtsyz1+VWMZ8Fb/MgxhFUAMYFoTO8YIIaGZTmDZDPVzQhQ6DBekWMEGNviCm1JhgTWRW9WoUAFTlEew4sp4jxPNb8pTObzkTgh5zIklwddA5Od61dC7uE0aJkxGLKziDRKIxDHM5tKzou98YbATHCacDAPEIOM2YIYkGOCCNV3CZCJnMyqecALRpcFOkyvuc4fbcnDCIdcX2BLtpILI+OkkAR/wWwNXjktcIpmU/GF2RjaDdGm3zgyPxAJGFCD1jM/A6uRyQQU1MAI1kccC6R7bAcleXEJHr2i5OWV+G1tVXlOMTqvI7sQtG3C8492B9Ttq4QsB+BG+XtpmYEROgk0ApbBiBk9gQAp8/489c6G6JSUguaB2S3beDbuWwq2NWQTQgOffmjaHu4BDBuGIhnB03RmIQiHWAId2KtiIqmc9KRvwQe+2xeGcEXxNK2AAbitlBtrjwQmwVy5YkXv4kmiFD+aErcXinefagkZhhPMTH0aQvstZpXFyDhN4wKagkyhIgEJoAGK7LJJKvYnamK5wK/T7INeRIkail0ioBNKYP5KhIJNhgC54vEsYPvKgr8m6PMXKn5X7GyxgBO/qLkyjnNpggeZ4padgAzaYihaykUbaBbuLngzUQI0pluczg3lBv3kppkmrmT9RilFoha75vU2gIDXpDpZIhRXAgRm8Ex+sQT5yIA7xLv8UQIB+s7E0GB6KyDcKmZb4AQQnCJN+u8DTS72vOjQ8eT7o85hu4Ql6UYBImBv6EIIWYIAv5AFJ1AAVYwwLKAELUIEJOEOKoo38WSdCsA0dhEMzyC84mENoKQCqqpICwIEJEZY06JAwMB3KCT+JUr0jA5wNU5u1wYyd4InPqARnoo8ZaIFNmCBJpCC/MpePmzwVQA92mRyU0y91MrYmMYgwGLJSQsXneCUAkKdpoZM0sBGkM508AsXT+5sbJCJjuQqr0IkPoJcSMoALAJRReIIQSAFJnKAVnK1mTIUQgMY7Yr0aJCnoGS+ZCgNQopQ0QByK0LcBYAEjRBS5C4DQQoD/BaicPNqCXUgDYdmdlTusUFSWnMCIPRGDB9gDX+E/hcKt39NHSmzGEZCTAZia/KFGI7sl5tkN92i5z/MhjpKWCnmD3dDBnviQBfBEjZGekMCBOqo7dmo3r8AVjEgAlEQ8X8mDLFgBhdpHcbk6NbmEgMSAWhmsGgorI5qotdAwxco1O+Qx58ABCiG9eNwujKxBbpAAH+uAAbCTgCMimDEQA2GNDos6upECcSiGrdQcCVJGraNJwVKgO9IYJ2A3g8w7nlsLb3JLB/gRRFo0PFwFZSoE7nIkhNEN6jkNDbElPgq63AEarDAEJ6gZRqSbF9CBLDgBDpCgCUqBLugCDjgk//u6IwXKmOCRgDMyIuGChQ9omWGjjbXLN2mRgNVAp2vzoJdqTrdxG1hIgybjLVDUIUgDAAOQCtkUAQAggNqkmyYYhdfyBE/gzRQ4ghSoAWMQlqHBwL/ZhdUgmHW6xVAUgA9QSuh0ALYTylaiTqq4CkNYHQR4wzBogAX4ILcSgDMiKSJaBRNIClCZhzQwDvYkjWJoBByYgAmogR6wnh4IpqhYzeXTT1vCrCXkhrEgUDXgzMkQOkO5nTtRJrR6w+4KnwUwHf/MwBjCgBANUUeIgeMJpCAIAi6wJzqxE8l8HnaCLq7KJXW8peRLoMpxy+TxzhUau/phTgSggY7oLu8aUv8qIs7ixALcS1L2jIFckCcTsCfU4JnJxEB2WsMECz9DA5zdgSHh2ZKnMA4XsQqoEJXz+xAauEg1pVDufL5dcJI4lVOc2QMywMOiCqOB1Mi7M7Ti3MiSqg082pBCJYBCkQBoGoCq+DOrENAzfdSOGNIPmtAPCgO4+aBkuFRMzZdo2RnBuiaNKZjlg65zFMli84LK8dJdWDtVXQVWDaw0kKfJ4slZDa3QytUd7K6zQgB6AYBfpRs3eA46wa7cQbmlvMCuSrBQdSDl0xgReJBIawYAOI0Dwhx5Isq+MANtvUhbRT/uCtIEMIC6GldfYSXUgIoDwpPBMtbL8tJkHT8+0kj/y2kGA72AhxTWD32KA5qCD9jBizSDBXAPu/xWM3i/9URYQKEqN3AARrumwWoXi2UesHou1QOr4wqgDQACIFiEGGAOt+MkARUT7prQuiRNR33UBIC6nGJZugGVa206JJkcy5nMZuVT1GPWm8SUCxgEcUjMn10EttuzSJiRtUS/BYhU7DzTbEUAMXhaqPWVMgCVZpgRwfSfLlVKYku94qQNB7kARyiDsHUEn20Ix3mONEidvmBTbvUu63jUWf0QuZlbnCmG2VmCDDCWZlEsY5Uor0K9g9QYB0EDsGUCccA+hriqcSIAETCEBtXOCR1YXXXUb6WBTniAAtABy/WVeaBT/wXIAE5CKhuqnCINuK21HHcBAKYBW3EYsx6iErbrzBkJ2SE9v7b9Vu5yOBnAkXrsXR4BAuCNDsHkXCYZVD5tQmNb3uYNW3FgiB6qknE6ANi13u0U0CH9kG4FV9LcDB0BX/pYBDKQtEYbXsFEmIF5UXfNO2dlXtN1X0eAXyqRXwDACJK9XreaUKN124tsndaJWwAeDUXYg1w4BgxxjX/hJCaRWHTko7xzHlhQzwcO2zLAvo2KC4kRAUbwINNxq+ZEv4tEU9sNrQf43hBGCnEgYRM+oNiAzTnLz/3KOdRboCmQYedNXcbRknzTYR10pO38IP2d3EfVVno84qQAAhI2gP8lcIJNGl61aTqHwqy+LSmOFADEmeHnXV3phZCsIg62SkCx+IAFONkxpoG0EoyVDWFxoNNjWALKyADZRDjZoFrjTV8Fwjt2VE8KuGIb3hS50NjnEAEPExMnIa9uvbJs7QQZkAEFSGQAFt9cAABlc4KDY2LOHauxO8cYFamR4gZAYN5Ndl/oHTC2a13v6QmYagsOhtSkw91WNuOjIAIBJk9hibAmzqb7giGlEsl0pEwZdgRxQN3U7aGm4WOYXYKe2Aw1hRtD/hCXEhOX8glKguYmUIQk2FQDqGYXKt+xK9bKglF2qrM5ZBpwZgLUjeBP0diIyapICAqLVNN4NmRV/lb/aksf3aVncZjmyTCUa+4b9N3PbfrogBaujjwONCgDg2aCu2CIRfjksiVPoHApM0DJB4g43IVUatuIeYbmKtBUsmGh5iKsdNrPiB1p/dwjeT0OCkBpRVCEKjDceViERbgqhSYAAwiKiJOiajkGMbgywLjILksABZBbRfbpJdAPY5kCQOgXrCUiL2XhIuuqZzXpglaE1AWCqLYqjdVYCuHqrK4ZhrtqMUCBTpDcKxMMIz7int7Us7YdTwo6wRpUbS7OroJR6ZpXghaHKqiCsMXrXdtriiCASdoIMQBs0e7qn1DlR11l76XnJR3gJUgpvalas/znUdXPQa2fRYSWKy6DVMNtmqZRaIkxgJpOHwVIz6s+hohTZdV+1E6oXGgW3wFeGUMgC7Hwj95okvVIG8l+WHd5JIKZgh3aAHCG4MNFXL0+UAPIXWaC6dTO3eWOOBwha0wNCAAh+QQJCABxACwpABUAeQCtAAAI/wDjCBxIsKDBgwgTErzVhFKTJgwpiaJE6ZbCixgzatzIkeMtihNFifxkxIhIStIodVzJsqXLg9Aaipxp5FOoHDty5Lg5JpSLUy+DCh1qsKHET0iS3tyxowbTp01TwDjl0CLRq1gxyhR1syvOGjWCBAFbowfYHiGOKDFCCReurHDjCjyKZGdNm18n6J0QpIdfDhx48DjySZQ0aHITC8UFY4zOx4+ZgvU0gXJlwBxCcOixQ60RaYpDt5SmBCdUp2THelq9V28PDicA8wgx2ILo2xs/GqnbVGwQDx4mlLUMnAsXD2UBn9DsNwXu5xdxNTSSI2yQ48VbYweOHKzwzLE5oP+CTt4gLlG8r3Nfz2XCeu6tK/t9raK8/Tgfee8IMmE7d+MeYGdcfAOuBpsk95GHS003Weffe8VdpxdrHVQ4oScrJAhdE6IgVZ1YD/b334CVreZJhcFNeIKGz9FVXVgAdpBiibAtl4IGKoSwAgcndmBMB5WdYAOLon3UYSih7OCXJ6+Z6MkJK7QwAhQWVPmFBSWk0sIJlFk4gQpWEBmakUghMUYKKTDAwAgjMKCBBiOUMMMzdEYQATN2PlPCCFy2psGQYibGkCh3GaGELahAkQoUjKZSQp1ffGEnnswwo+cTHLS2YqCJ4SJRTSXBgKiikVZJ5wwW2HknCCBMgqcFfFr/NsEJYXIa1xdlfgLDrjCggkqVFlwZ6bCTsgoCnl+gopllHDxja1ynlEbSrlDYgigMV2I5rKSrGntsBKk80ecEHDx76xE5fBJpr7ZAkWiww8JbrLd4liAuswiaixUqg7HVKyqI+hosvNt26y2d9+rFgSv6YsVAWv7CUO2/wJY6LDPeGhvBF7Ys6wkHqTR8lQVqTSSqtYmSOmwJJUSKccavdhzeCoCKLJQ0MLjA1inWumBtu/GmEqzBrCKbrGawZWgzUafAYAFFMGiA5psMtIulu78Ca6qqEVigAo+etLI0UczY8gVFLgDWw8cnaNBuKrZ0sUkIdOP4xAjyPsMnYAyP/y0UCFCcEggMbmrgJt0huC10tZtoEELVKKeSyhfPpLIjBy34LZQVz6TkggskMNC41CGkYEuqetrS+CaoCI0ly3pzqbTmL1kBgjSnuPAw2Dam4IIFp1g6ggpcnqDCE1A8imWsYtMelA02RKB6CCcsl/ibp39RaZYt3C2JJI8+E0HsHNji/POsBFJt6GyqoILhJAxtKcvhv/xtKnSjEsH5LUVjhRW4sIAtSNCFLjAgdKHLHsYsNSfxPWOBlUoF3jbmLP5xRBrMYAUAT1GtAnZhBCRo0+kiYCw61elllWLGFybHqgpaUCOniAArWIGLZJHghl24oZpQISkIjk98KORaqv9Y9cKNBOIzuAgE3LrwuRy2iQE85FqkVoUxrt3pVxF4SxEzEghRnCKJHWQiARlQQChwy07cSiGeVFWprjFjixuJlDRwRsAuDDB0KXgcouI3RStaEVkggKNGKPEZnFmrgC7oQh5LZ8dfEQuNqpKUJN8oyIywghnSqGHPPKimGw5tUhs7ox8xVkmNtCp9PxvgHbMmKY2Jco09rFkpL2KDZ7BCGutT5Q2pJL81biyFqrKALWe5kVFYQRoWAFgO7UgCVvZRUuKLpJ1YQcyNRMN/JbCWmgy3iU1ULWtaG58vIyDLamKkFqyYgTZJV7o0NXNgVKKcpX5YTnMqJBqHmEG1dKf/JjK6wGl9DGWknkG5Z9TTngmRwiiE4M8C1hFbPUTjwL4wg4oeFKEHOYQUJAHCuOFwKhvjmp5MxbKKYlQjUphBC0jwuUS64AvInAT0pKBRhc6gpDMI5EkxYoNRcNSDtnjpM4TwgiG84AVUoMJRbyqnGVx0pwRhBQiyuSbddSF5QtDBIFQhCDQIogyOGIIkKupUqF7ECjNYlC008AT32aIErciCIOaKhg1sdQgVxdJTzRoHtD6BBLZwE5oYYIFWrGAQguCqIByhgxdUlKAgqBVfDVKLGTyBam9KnAWysIINbGCug9DBEKjQwAeyIhqTNUg0mDECqd1osCXo7Gc3oIpB/5RBCjZ4LJ1s4IzUFsR2I9gEmhZJ2Cx4dra2pUJKHzi+yN7AtwO5pJqOMFypREC2tE1sYx+bp2dY4QYXKIZv0RmB0G3zTV84hQqOq1hHkHYGk7LoDWJQgA2kdoan6MIRqJuCIzAgvdgVhF0d4dgGfkESzzgEGMgAAAI0ggpmxa0NvqC7/vaXAVSSLQU2sAhVuHdOqhrrD8AQAwYDwAGqMCpGF2rLEpBgdFRTVGe72lVV6OAG3IUVCEZcYgD4GAMmwIEPdCCEas6gFSqAqQVENzo3QWEE2K1rbQtM0Cfb4AeHuICJAWCALgPABB3wwQpcUeQt2kAS7luBBQJRgvdpwP+barIAFKJs1+3OCVYzsAInsrxlADzAAJE4wAEAgIEONGIFrciX8276hBVUjwMlkIZKE9fP/87Zs2jY8JTzaosnJHjPPX6AqEUdaEEPmtBB9kEWFG0zG8DV0V3yhCSk8YwhZIHSarKFCmSLhgt4VRCOLQEU2AqCQ3CCxFsWtQGOYepmRCLQBvAxmH2wgTLrS28rWEGPTADmJ0gDekxYwZu9mYq4DuKzAh7EIJiQ1vdJQgrOOHaoRw3oZ9s7EvUW9I87gIMNZOFZI6DeakyAAQygWgU2OIQVpFCMu3myFTrQahmYgFQpiPWyI5jBIX7Aifn6md5dPobIn92MktsbAIL/jjYGHFCEMryASCrlUoU6gHJTA4BmV/6BIlzBphDqaAMUCDoadOAKVzyBbkKQAsePreWPdxnQIheDGCJhcnsfw94G0LcJKDCIl9vHBlAIwYmMUXAMmFrfjbCB0vesiFb0nARQkEQWgk6BLHQvjy0YhbE5wXcgmPjPIRe5yEtOeGdH4uqHH7nKcZCFMjxHqvaSOdnNfoABWH4Ag8bBDGjKdzAIYQS2AGEqZiCEiesgC++j2+b3znciMHjUohY8yStw78M/e+SJzzqhIeD40NhuT1+bQAcof/niY74DJRgF539wAyFI6XTPUOpRh9AKx41A70vn+w1eP2rBj7zktFeA/9WvPnIFyH7QDghNSocn84JX3vjF/7IQor/3H1Dh83BPxRCYUIUyDKIVIfAEGpd9rcd9sRd1VFdyEkB7ied9UScG3jdoEJAYetICmjEBBCdoEgB/xXcAJiAEM/ACYMB3nGB/HaV/ZdB/brACKiAJekeCJFgFBvgAskdyzbAE4idyy9ZlNOiAxwBoDTYIcHFmI2BYwmd2lreBlscCl8cCTigBg7YCR3UDYLB0P3BTozcKYHADN8BYQoB9MLhnSeB0P7hsuEd4Dfh0+LaDO6iD0TaBWEF6nOUDHUBwKCcBeCgBV8CETDgATsgCUAgAG3BURAAGI8h3hzAKeKWFhlgGQ/9wA2sXhq5Hb4B3DBBYe2UYePhWhj7YZQQgCERxZo1Gh8NXc8UnAWlwBSKwhGzAAm/ABoM2iEcFBqxXgltIhVtYBsq1cWF4CEDgY38WjIIHgZZIfsv2Zw4Ycmz4dACABkLxDEe2I0eIcgMgAc2Ah1cwAGnwimngh2+wCt/4BgMAAILABIrAhbQIg1hmiI1IiwRYgjLIZctmCvRIgxAodTr4gz4IgW1oAD3oZQXwEmfWCjJXhzVXeYJ2jXu4jSyQBg35jeD4BizQDBRgjkSAi9n3AyNGhTdQBenYixfgZ/54DPSojyKnABWgAOZ3j8R4DOanjwZgCt73dAXQeyshBZz/1SMGJ2iXh4fVuIGu2IpB+QYQCY4sUJPmyI4aqWC4qAiHQAQuB4m8CI8iWYYPQIxTFwkomYNaeQyxJ3VTZ5JSBwqC12A22RFC0Ag4QHBmp4Q/mYfXKAIikAatyAZ2SZSrAI6rwAIAoAMUdwNEUAVbVVs3JgW02IVloFWq4HJgoAgxMGr0KJNgKXXip5KUKXIPYAr2SIxddpk66GOq0BLF4AA7qYF5aI2ndgAlJ5ciwAJs4JBs8AbIkJfgeABcpwoQ4AA+dmoOcFuHcAgvoApoUAA192UAIAH4Ro+U2QmUWZlayZxe6ZWZCZbepwBiAApg+XQX0BKLQAA7mYfF1wyp/9kMFVCeIpAMUYCXtLmeUCgBJwYBnkV3Q0BTwHkBEHCfFAABBUAAgBaTykmZYtAJChAAkwmBkGkKAOqAYhAABFqWzrgSLxADNeeWftiHpgZo5VmeVxAFGZCeeekEhmAIq4AMs5kGDrABonVUSqVcUiAFL1AGN5BUSfWiFMBlEGgKzAmWljmM+ZiZlhigxWgAzRl+U2cAcNgRZcBgB+CTPtmBB7CGKomSFbAGURAFI+oETpABhoAMWIAFhnAFPkYABQABFOBVOjBxVFAGi+B/W5VpEMCfkRCgBSqnlqiZkWmnQtoJAbCjlqgACZChL2kAAbkSbqCb70ehTtpl9hYA5f+5BsnwqIWQAMkAosgwBVMQBVdQcqfmY2SqCi8wCARAAKaojYZApGKgAHoaAJ3QCT/6o9QpBggqoNYpdVepAMmQAAmwp/w4qB2xAaL6ftrYh5bXjfp2eNapAJEqqclQAbiaDBkwBQJgqcvqAIJgW4pwVEygChcQcY7QraqQn/u5bDqao3qKj0KqANgZpXMqeFcJCpCgkgmAqmLwALzKETV6nBLghMYnArFpjSEndQEgqYWwrMyaDIxgqV1qCFEgAgVwphQHBi3KBBSQYlQABtK3fzpQAMumlZYJlvX4o1Eap3N6ozgasAMaADJAoAZAACsxCiF5nNqYBjKrhCJwBYb/IALOJqQBmqth8KjMmgAf8AFT8AhdOgVOkAyREKoE4AAFMKYUcAEUUAD2qZ9NWwC6GaUnu6qrGpkBOqC5ap1am6OwKnWQgKsVELCQAAkQyLIdcQNowGBKKJHiOABXkAZa6gQiILKnGrCP+qflGamMgAWWWqmMkAwK4GVLy7T3KapZJ2jbaAhOoKsMyqDMiaD0KKCUq6urKgMyUKABUAiO+qcJEKk/yLYcUQVNt4Hb+I3dyAIbKqJRYKpei6uSKqkfwAjRKgBYIABrkAAFYFvmqAhQWa1nqpjfGq6TqZIECquxeqzwuryrOpnMKalrsAYZMLBrYH4r6whI+qbUOABE/ymRLFCzGcClTlBysxqwYQC0tzq6jHCwlhqtsVsAjqAI1/oCN1AG1WqOTNC//esIFEAAD3id0YujARqwBKqnq6qqYNkJCLqgyVC9oJsBa1ABEAgAQsgRL9AGuxmz4DgArBkFTmC01viDC5oAYcAIQXurBmupuButU/ABChCmYjqmvRaqDaa0v2qGriq9smqdk+unuip1zKmnhcAI1fsBFRynXfagGzEEbYCEw7qN3aiKRImlONtls/sB7JsAVBoFLjwFyPC+CRAJOSymZBrAu6macokBbdAIcNwG/Fmn/zmrcuqn5WnHXTu6ZrAGH8C7ltllR6oRUHyHS+iKq0CXV//wjdAauzqLq2EQtCp8qx+QARnwvgIgAI7csFOYv9XqCImpVV1FASzIJiPQAlkgx//qkqcKtie7p3psxGEQBoWQyR9Aez8IABTQEa4QxZVHl3gZvm+wjauABefLsSh8u0IbBbX7qMkQtAKQAYbbsEZ1VGVAmGWQzVqFWEVANxjmKHJXBA4AdZZIoCIbxF0LsF5cCKCbyYarvUbaEVmAA1Icvnr5jbPJpVOwrAAbBmbwAQ2gwuysrAarwowQBR8QbTnsAGksqj720IQGJCFgC47CMnLXCCYAAHGKnQjMoB17rAFbvcmgu4bwtWVYrxnhBhm9pMNalOtJoshwBSnJoAj/EMnvq8SFQMtAq8Tvq8IJEKaKG3Q4DADNEAWGgAUDUGht0y70UwKS0AqNgAEGMKAn+7V6e8AB0MdH/Qglnati4IkdUQQZuAR+SMx5CdMwbcwiwKBhUNNB+9YfEMkr/MxBWwhGWgb3e242ps2DgAbe2wErcDemnDwlsDwrYHA/GrDxOpmTq9iGMAVY0L7ZSQCKwBHi7GMSULNOCJGVigVpjbdnm8xr0NN0HbSRbAZmwM5hIAa8h63npl0RF3ECBgF2NwKS4y6RIzSpUARS7ZKjy9gnnKtevLtH69VSF21niRFifYcb6pD4zKWePaKezQLJwKCSygjPKtBwLclxzcXR/xaqDoAD+QnREI0DiCYljiI5A6QoVZIFGR0JP5uSYNsJtFsIf9ylR1vd1GkA3LsRGI1yS1Czi0ybW4rWXRoFt8qglXywj6DCyqzEyvy+t6rQAFAA+fmrzXAFIPoGJpBtT3A37K01VbIC750GFUzVqYqr1TsFcAAH+7wGhQAJnSADmvkAOmDZK52vixyOZ92lJFq0CR4At8uhl/zWVHrJ7zsFB20AQ5fNiEWY52afVst43fPhP+MrrlNuGU2euerRXsvOf9ziWEDBaxAAkMC580oAGawR//3LrliU0I0F0g0Hj9C7Ow2/PT3kuPsIj5DJAsAITJ7NTEBjoRVxiOVZrf/QAt/TPv1kR1WSCu6t0ZGqqnzrxY6Ku3BgzFHQuwiAAGqrmeTIEW1gAu8HzGf945mO6i6uwv58u+/bAAGduy3+CLP+CFMwaKJq4Rfg0OV93radChwVeiHUOpJA4geQBgmu4n6szAKQ6U6w6QK9ADLeCQ9AAIuA47/M2Qbu2V2KBXCgBWMO17DeALnL5y2e6bsr5k6gb7r+q3O5Ck4AAId2PCMAPpKzKFgOZaQuAckQqey8Bv8s63AgAMVdCKhtBigrA9Xe3xrB2yydBrS57T/u7VoAB8/+AWbw6raOybQu5lhAtMZMALSlAxuABqHVpvoZ3mLmPk9gLSFuAWoVAqT/LgIDPbrV+8K669mG4Kh+zAgxzrmmQADJfRGRDpTa3tncnu4V/+wqDOvQquQC0PHnLuazSY6h1VWDwFg6IGCeVdsjcHSJgzzJgyXWogKkPgAVbPA87eeZDAdjHMEZ0Oe5OuNBL88ZjYfoOaJpHefNrgxaUPFK3tNRH61woAZT3+3ovu4+NqbeC9EmIGZuJ0HuQ++KUgKoMDwdsKTsbN9J7ucdrwZ/ngHNPgUwbp3VjqS6uYTqWamViu5d2uKAr8L/zAh8XvstrgyHn+mXin6LCwAiYL0CMAAdzoLtUi2JAjCtAwUt0Ao4cJybf7uvT+ePsAy4T7SQjQUIrqqaidIY/6EIurmBsfmNTgDTkE3nr+/3WhD4QUvunz/1U0+0DPtZUPtZwpnyGd0BnpA4oMfe2QQQtlClGtGiCIYDFQp9eAQHCxY4EeFoiYilIRxDGRKI4WjgQhyQIUWOBKmIDAAJaa5EceJkFTKYyLCokQhnGaFlWKYw+vChwaOGNGvCEfpQRIENgihQEDRIxyBBGyhAAJAGw4QTGp6MGCipoC0otmydMJHQ58WIj5bBUeYwopZHAjIUAgVJjAFBJPWKLEPGwJIBb1oaWlVYJsSHb7VQnDLlAyOgaYdGpPnwUZRmAApMJUAAwGcAB9I4HNCBQ4gUDEasHiFWLNmEZtYIiDxRGf8himyVxZ2yphAkuwY27CUOxO8BCW9YFjb0UObaxFoI4TbU26cAOEAh6m47NEPmAhcKfJaQQQAWLcsWLzvg6UQIDbZSpYLSurUnhAogFQrj0+ZbZZZRpjsBBFjjAzMgAUUBB6ggTi9VPJOAhSsEIywmZNSDQyabcKNIAJ4a+EmiAUskii01pgAADak2SCoqCArwLIObtnjDtPcYAGu1+kLoAKEEAthvoWWKVG+x3OAQ4AMBzAigEAQKiSSvB0dyQ8LAXCrMMPQIcQgiZRYjZDdGGPkJrQG1KJGmtlSEYKkNVHFKBx2UKuCAm3DCwBMOTmMAFdeeOKGD0ICTrZAAGDr/EkklQRSgAUgQMCOMABQAoMqR2kAopTfeMAwmiNTLCSI1btuCMRFHDKrEttRgE44prgAAh6kccAAAEz47wBDpphtggj5RU02sEQY9oBlQOikEUUMbWC+uDMxbMgFIhAQOkgoKwBSkLG49YAA2WGDB05dClW5U3XqFVcRHXHWV1QFJVFICzWIMbYA0VsHCSEK22AIZY2o4LQUNhn2Cgw4OWAISGfYLwIzfzDhzyccEWBa4uoArJAECto0jC0K/HbfTl/TtEKfEipwOt50aEECNduEd0N2ImoFAKhaVEk9GAK5Az99lBvBA4BDgU2EEFTwpK5K6wkhwUkMZAuoRlxlZ/8PaSIFTwAAKti3ix28HEDtfUIs8tyYxvdjikSnYJZFVmtCKIrw3BaGTTlU2oCpD6bYgZBUMPJigh/cEnQChCq79gD8nhUSAIZexU5KRjQOoVIG70Nh2BRMQEltsFkw2W8OHtpPOC5xAvCjeVieLKArNKCjA1lxBG2Dffv399wAMuACWA09+lCCBBCRd3IwEA0DA6WUeyeBAm4o0cFnMDSCACUw3yBU5EcYV3aHbKAJTt36nE2CndoliXeYBk9HsAgeaGeAKJxL7sl8v8kd9Fd498MDzARzIJw1AHsQYBgmJLWN6tEnPWiLCiAoYAABdq9IGwNaMNGQQGf95CJK0sP+ddPVtGS2rTVtM1DoBEOACF2DRUmJ0q9CkQQRTqJG/ppOTNLzhME4oRAN6QrHi0UAGQnzcI55WCEaspUDnEUAyMqODCnYOOSzIV+ncorIklWgx/tLCFKLQk4Y0ZE3qo4kA6sWiu0GlVs2oQAIYoYa+5U93ftsCFpIRhv5QbFIB6AQNEPDH/pjhj2b4gHnWwAi5FEgEkXAA9ojjBhxsLzAvOQyJcCORUoVJd1oAUU9GFJGZmVAZNHHCARwQIwKYoHahwWAyEhCGM3RoC3KU4xbgwIgFIC+XCCrEpP4YKadNCnkNQCSIHNIYQ6yhGdraixWyUAQceC4NGOJQh3KTyQH/6c5LLXtM+tjiOhEQYDMEOFYaDLFB6d1RYg3JnZcmsphHMEKQCKhWGIyHvDAsC3nAWd4C4iIAQ0hvDWuI1jJJUotbsKIELfDBj/A1TXSO7pJDWYwcP8iT/pRpRO/6JjIIMBUKsEgqqAyNCFw5zCSeClYDcIKSktGZY3TCck9CUD6vhUBmIZCJtKFJBpJB0HCOxAog+MIXnjEDSWShDQAIzENGt6iamFALavMbrCblNARJTETYxMIEb6YKHZThKXmTHUqChIAzMERMcAgdHJwQiQLElQAGUEACeok8xw2RnkKqixlyUiCbCCANFahAJC4lEhuUYD4WOGoJXOGDskxz/19GOhJlBqSy8i1mCvzB4x/v2YBMqiEDsZudAzyDAdu9gXiwNMNE/KaF+lFEVpohQCRmg8iedJYGu/1ls9BVJGSkQQHH6BhiS4AKKFjAAjNgrhCy0IjIPgez0ElX7mwIos4q76phYIRu3FovAjSjGSKgH4dGeEcE+LCGXtqXFpBxAF2lIQM+/AACBQkcGTSsYQxLrxILtIxVpMGwEDAufZCr3BIwdwauKIIDDGBOs0nng2/TJBe96EpA+rIQGRBjV1e4ATS0UDwwFIET0PuTvm2hO2V0gghKmgxe7rOA/JTBH2vsLIwcchnIkMABPgISK9hACCOYz4FToeAZCGEFjf9wgGjau7L/aDGOtnQMorSLR7tKDgsHgMDN4kTWRnQZB1WJQjIkZqoxdcch55lCBtfwygJKqoCUQoC1/tiAImGBoHD4DjPjYIUZlEDQgRbLYhMcaIPkSgJ8y2xEBBQm/NkQC4ygMz7rHICXtcUJsfNW2D43zQzg0VmZVbNEsNBJYS4Pjz9cluUgYc/+5mTPaQCAKkByiEAjOdDzmY+gFVuCLGyvpemRsKPVlM1Zom4388wnPVFQxIis4n2eCQ1yBmAyLDhhDf2ZSP4mKpS0UGx5y1sIk3y4LHsC0wwNMZB5KkBgkDxDEr72NXMVy2sLCFoImjqACCabJw1Jmap+i2f/MO2Jgk4gYAGlgsMBCgCBqKhCFYJQygsB0AxtByAMCxj1a9sCQodQjdm9RGKZ3owAP77SPwbKCAGgCBIqtGAE9Tkyc48qCXznuwQ+QIgIBKAyLi6GVdPRphrk2VkEdCLhoB1Qtm4WYr2VFge2OsAb3jypBXwAjjYc3ZdmIqIPZHQ2LkOQkPA4qZ9kxAnN+DFIhtAK+DwhFYy9uRDunYoS5HsFhFpCBk7mIXidTpuP+MAflae89D4iTCoKDzkHIK5VGKIlTpDJXCiFvA9owV9q01BFtvNPQxhiiUu6atYI2YA3j3YkM1jBCVKT3KMiVRI4X+wXLNCCpYrm5zU8tlRz/ydHOBTes4NkujIyIE7ZURs0oWHBOZ3AiLMOU20W7TwoK/IliWSA0r70LKUSAFeSCAE+BcO7gn1tgbmjXxI8R87PiX4qLUJ686hTkiB3+2yJnWFAV3AAUjYAFYkbqanDAJZyJe3yiWSrJTVxNEdzoJzwrzVAnl/iDwWogOIaiRdoBQ3YQAaouRmwAElQLguwPUHjHJQYtn6RsDBJE8FTmw8qPBR4tuUpPv7bjNKyFYQ4AB2sulUwMcRDHhFamVNRk7VwoP8oQixIJn3ij0IYrsMiiVFoARVIgRQggVSIPZzLO+UyKgtQAUIpD8XTvCH0oF7RHfqjNASQwTBwlgERgf/+owAY+hb6WQmXmIJsiwI+QgFuC5oD6BK/wY0ibMDo+ZJo+YA1MEAxAIAY2ItnaAUVyAr5ODRBw7sRfAblagVCGQC/SzEvQRIP+T0XJDxYm8EjMSOk6LIui6v+c4BcuTYnyAA+Up7HAAAHwABDgANCoCqcMLV/M8KHcII0CBIxeIBFJA4hEJSCsQWdC7S8MyrbSwXYEIE1UI9Zei0yBMVZ8pKwU7UzUxNTvABqIwBbWb5vKYwMSLpOkIEEcJ8my5BcVMBRcaro2Y4kvIIAEAMyaLsHaYEnSMby8zXbs70ROJyUwI5I86AwkTDN0x9bioJ5urPFgAP+gwA06IzQmBD/ymsMjVTCNOyEMLBAproJ/WFI9iodeUQMZLgCAyiARfCYGYC7ENgEKEgwQXuGZ7A9KDgBhDAn15Kj6Tg2MfGbkfSCLoLBZwMtNQmnp0MDF+IZ0Kg6ZKA0hHu2ADCAZIieOJIjLJCA8XKJ58ACmOAfB7A1jwGJEQiBE1ANfCPBVFiB/7k2AYA0F0SSFbyN6RhKQii4GEQr23iE9zGt/lNFVeqAVlwFq0k6FPCjJ0Ek9fg9nBiADZgdezkAzxAnB8CBshwJSTgarhiIuUuFsfgRAtSXFBvCm/CgORrJUyGgNFS4iJSA/qOKZrgCcRkZTwEVjKC0TkC4GouUBOqV6Wi4/8wczjjIQAY4ThIAFA3Aj2+pIlzcPNyIznZKsaG0JRhMr/SAAwDoMjg8rYsUDJfIIZmgnACIwT6igb1ct9HZMuLMzJfUANRAywl4y3yhpGUQylqaI/hThqGUo2VgBM9yFtkygYerNvjSQRZwgk5hqYdYEjxCvMSUM8wDke8YhPb0mLc7AU+YgAkwhtEEy0oSQ4Y0w/yRyEeYPryMJ+Q5AyTpqrhiqgHQFRoSQtw4tcWxswiVszq7NAWgoAutkhnIgkiSJpnAENyxrgRkyCnow+r0NiVxmlEjBBe9kysojWjaICxYBQEon5xwDBvzI1hDHhpIR8uJBH380UeituakpP9yqRFQZEiSTED8DEVP6hu/jKtmWAUWuEwAkIk0OAAWcMcuFb7hG77dEqJOOAbNQdMq0QEYiiGZ4JLSTNL56086Us1b8gkJGy08XYXSSBiYONBvyZBJOzgUCAA/GiT72y1TEAM/Y1TiWAQAOAYDkID6UdAM+LdKnb4kHVES1Z//1Lpzgc0uE40D6ABQlTYAwIAPtVF64idJyaU03C0Z4IhXhVW9QAO/iIQcSoNmsNXJ6hVLTTY5DcpKzUukxIl6QSUMIMwBQAb+gdE3yFIbpRTE+6MFGLdprdYCeDls3YsLAI3AhACMQ6e+eb9Lzc9PfEeGjAs4oggC4E6K2wDxCK//DMKX5niDXYnKwosUz5qnPaqzTiAAC/1X4nCEkSDYNAhXnCDDSq3Gn8xK4JuCd4IDcboZR3CEMnAEIFiEGFBTA4AvEwhUeZpW3hq+WKwUACgDky1LApSu9TAbIayl6DSSXiVKxbBZCLgAQXAEJqiCMthZIGDKVJQrCRCAV4Q1/EsQdFS6ezSARW3aChrVf8NKs7lUomug0lRNNVGTR4hYri2DKgDbsHUEQWDKqUCljSW9X3KaSIlB8+wEBbhAuSWOGPiL5migQCS2T/xDnOjcXU0PljmlwBVc03WEiQuxC7C4K9DSbTS8x51KhOuEu2Dayt0LVTiJvguVoaCshAwf/08UwpctEmVwgoe7AFUI27AFW0eACtWNkQIoi1V4ngS5lhpTut1MRxmoSiq5XZIwjgeoAPOwH+yLKk+MsIPtVSSZmwuggOStAiYw3TKYuMNN3Nk5gOl9yGtBz8Q8VBSQAbj1Xr1IAjJ4AFBYg+agR5OUCAGxiaglOtzo1Rt6g4djCuUNWybg2ahwoS5rsjdQwupFABkwz0NFz04wAHgTYJG4AL8AhQwIvcRQ4O0oQsz6SQim1C1Yhgw43g244PjVYBZB3NmpirmYqYa5v//dTURlJBUeiYA9hgDIACM1SfKlLOAMSrVhWPoTgS67gB7G4Pjd2cMNMQpYXdNqBt+AEv+GSUwZULr+HVMFMNMmFolFIINjEF9kgOElouL/iJ5FQVKZ9ZJmAClBWN4w3tkkSAIynor7fR7+yK/8Uro2HqJqCQA5nmOQYOFjUIBcbY4NApUYnmGVORLhJTqGhAObeZPkFdzBLVwgSORFQFx7EQHigQSlqzMxwF5IrtZjuFYVruNjSIBzApXDQAwGpqxFKc3yIdeGk1hWJlyxTYJYbt/VhYD4CUYh6YQEsBQDoF0hyi8xIC5MBokYAIAHEIFhBlFQBpO10FyFXBnhPeUDIGQmUAQiIALC5dlYDjEytmYDaAYFsJYAECcCOAYxGKI2pl3KbeJyNoAKKBeTLGZzkVrVQFzm6EzYHJ5nVS4DReho5n1laY4KEEMDexkupWvVxjuGY0iWhgnnhRZg4zBnEYgCSlpn+7FiJMmTnzzN38vhFXmTQfhaIlCEC35l+h3piu1mpbNWcDRoSeZlArDdJiZgAHgwcyqdmEAMnAbEdwbOxrSoFVmhQRDce25lsaW4iUWDpM7lNhaD/jOAmFI6RCUusmxiFp7VCpiN0NvrJVKL5ikSNUBmURFsQGyAKSCAkQ7qju5ofK4CngUC+l2ERVhdGXmAmDIFU+gMuMZs7L0LAojbCw0IACH5BAkIAFoALCsAFwB2AKsAAAj/ALUIHEiwoMGDCBMabMJQocOHECNKnDjxVhNKGDGK2iiKkrRbFEOKHEnyIENKGzUa+fTJSEcjGUvKnEmzIK6LolyKYjkmh88xPZEIhVmzqFGJt6RR+hQUic8dUGtAnbojBwxpuHAd3cpVIC6UTMcIRTIGapAgE6Tu6FEjSA0eY4zILdW17sxARsgCRcLSadQJgN2yrdGjxw64SORSsss4JIyePp8+jVojLWAOHHpwOHFiQg+fSug2Hv3QxsqeU2uoXs3WE2DAbXtw9uQpMw8NMLSS3m3QhtJPOaYG4eIhrWrAHTx0IO4Zc23MmXtA0c27OqulwdsS91D8dYfkGDBw/+fimXbm6DVO+KrOHu9T7dzjD0/uQXz97lzIp2VbWIMN9rzhBdwObU0QH3cGKscdfcXFNwEXHbjmiWx2ALhbKSsFd9Z28h343XjI5fedfrWpYCFplGS4w3AHepBffB8iWBly342YFgcnjrbUJ0iYBRh5Z01AmyecFckZB7RNUCOCtbmSI2OB5MTUESGcUOUJm4WgwhMtSFJCCalAIaYkT6zAQYzKEfmkXTZEmZNctsQZJwMq2JJKCb7UEcGefEbgCxQacKCkch1MYOKaXQWC0kZGwABDnKg4aoEveVLaJzN8lmCLBp5AmNwE7SDKlRxuMuroqRZM6suXedZRBzMgMP8jawR1lKCCoDV2cIKoW8mBoUeUOIqKLTCkmkqqvnxB6RcRwGoDCLH6+URnNK7A61alfIFRKah0CwMUMKRy7KTKMtsstOgy48sIIbj23QS7XlsUCDCUIk0gX4iJChSopOovsszKii606qISqCfLwStvUTN8Eci9FvALKRST+pvsnrAODG0dBiP5WrwLzzTDw01IY8Gwj+5LqcXmakxwBKnc6hpgIIdckhWsYIVLBCcP268FX3xhQQlAY5wxwbLGfEKSnlhrs0y1yGFDVhHYQgIDExvLqtEDy1qH0kM2/TTUrJQdiAUpYMlBCBpgPawt3VJMaR1I62nBE0g+5/TYJB3/YgMzXzAQQgjQnXCECy6QoIIGGgze9giptKpsCSMsPaSTfJckhQ1QuCAnAxqkkALWj4I+uJYqtDOCJKkqm8oKSXIQauYkSQFCKiQ0ztngo9cLsy2ga0BC5KnYYcekMMMO2N60i8QKCIBiWRvjbUMRQSDMWBA6Zhq0AwXRy8Y88+zNO3+7LSosvuUTdaYSMOUjpL+lJHfqWYcQKtB2QgvlO/88zyQYwQiewL4njMACzWJGrcR1p1bZrw6SgJ0nNFCH/lHEBjZ4HggsEEAGeDCAqDCX1yhFQoEpsA52YJwKEPgfC0akDhm0QQSgQAJbjABrcYLCF0zoJzxZKoEKpJwO/5VVQRdCBINWsIEvrGa1EQBveL5IoJ9WpidZWXGBddghz4wIEVbYwAr0ipPnPIi4ovUpaCLsk5/8BAM+cfEhXmRFIB5FgsR50IMwUBafltUnV1UKgUuM4hshAgI5wgAViHOB6UKANQaMgFk/5JOyVpZAZTFjkA+xghzkcDJbII4Bm2DcJuJEgiii8ZRovNisvtBCTCYkaqzIFyLtSAIS9CsC5hJasph1yiga7ZKuVEjZrJA9q3muhnIDIuCChqk97XKNsJJDMB1ihSRagJS1tIW/MJbAPPVxihZ4VSun+Uob4A54ibNlpMyFS1wGrZ1fqIMvxAUC6pBTmCW4WuhCN/86rFUMWRfDZa2+VMR7wjGfoNyE6FKwCQbYEpDkChoJS1CHGYDAoF2swwhqqUg8wiBZzMBFFMsmhZKWdAYzKMFFMeqQQ8xABXW8IxnzCCshvOAFN6ACFaRAhRdQYQYFZWlC5CEFIdRSpm6bVAmEoANVCEIQG9iAOAaRB6AKFY522CgZHbqv75XAFapwqiDQgAanotQaV32INSRxtQ/aQm55kkQWwjqIsOqgDCgdZ1oPYoM6oE8DKuDqR6PoiqhGVRCDKAMTrDEDve61ICAoARQW1zYPvtUXgXDFCjbwVFUklgqsmAErHpsQO0gCFblbaApqGM4sbEAVnEWsDl5gA9H/yoO0B9Eo1lywidONDoEqOKwgVAGEQTDhpza4A24NUgcGHEEDCiWcZkKAilJo9rXDFcRsGWuNHyh3uQJhRXOPIDrCYYYHKYBCIFSwWeEOwqcolQInDgFeebDCFyQ4AnlDkILTaQAVvmivYQXhiBdYowR2kMIPiKAI3FZTDl9wAXkXyl+GoqIErjUsBRBr4BnYwRqHqAIaHPHY2uYMBkqY8EKPsIlRRtCwaHjtexkrCRATgQwxGERaZyAEIdzLFimusOhCqQEovC6qFCArYhVBBTu0wBp6AEMMAEAACgwBo1LIgysIGIgIoMKDoqMekYe2WQokGQ2IZcIMUvGEGUR5/8oAAIADILABHQSTFVQQgmZXoALsSYKyYl7cJlDRjhWswMwUuEBZ1SyJFtjgEFKOs6Sp3IYiqCILQnChFNZaJumtAASBsAOgqedBDdiiHSrQAYzTjD9J2OAHUiZDnB9ggAMcIM4mwIEPspCFGdAOBDxWgfRqxAFm1DYLJxAlkT1oAbmWIbHiYMINpPACV/SaFbC+gKwfQGsD8OLbtgaACTrggxW4gn8hS+KfV7C075gAAybwRB3wnIcVqFB+oMvdCcqc5MTyWgVUOASsY0AGbnM7DnFQAMJ5sYRbw5vcK8gC5hB1CGvYAW9J6gAGABCeA+BAtIeQwhCywL5NyK+yI/9oQRYgYGZB4G8FQgAxJ2JtcAMgHOGgAAW4Gx5neJugCHXOkRUY2wLYufvdGJDAACQgbknI4RB30EMZSC5AxW20liWQKxPKUIws8HkGCp45wWv+gJvn/Oa8sPUBDGAAXOOAAqrIQ3X8NoM/++A7G7/1AQbA96VjQAWP/sEPblCGLdtSTKT0xQxu+oI88DrmP+DEHW5ccAOU3ewKyLwClrCEby8hDgyP8wEwQAAICKIMoxn6msuEsHcDQO197zsAVmADKeiBEz9QxJadaGR+kUASQhiCIsRRjIiD3btiz4XByWHzOIAi8xWoAOcRrvA4dJ4XCHc4Dl5rF1YcOH6d6YD/65Ue+9gDwAczoMLtOaGHF7SgBZALEw1HIARxVEEcgigC5DkheT2gQfkGh3nRx3lLUAGgt3DYB3qcF24OQAFcsWkl0ALC1noYsHflV34SIAE4YAc7tX56wAQCpFSpIAmSMAM3cIJlUAZgsH6S9wOOsG0PQA6XB31LIAEiUIAJeHNod308VwA6VhObNgMtUCaC8m4WeIFskAYDoIQZiAM2tYKRN3h6xjpfIgkfBgZYqAg3EHn8x38/UAWyZnm0dnMKUAEicIYDmIDfhoCdB3rYBwAQQBNB6GQTKH6vd4FpwAZ6qAt8yIQOUAZD8AIr2IU3kAessypWaA03gIVVwIJd/+iC28Z2OliGZygC0nd9OniAmdh2BCAIMrFpdNhuJiBpR8h3bKALepiKerh0BVAGioBTYIB8sMZYCCYEeWANWHgDiuCI/Od/BLB85BCMCZcACSACyZCGa5iJcdB8zQcABVASFvdyFHgASpeBElCD5JcGLMACp6iHLHAFB1AA4qAIREAEWMiFsNZkQ/hhiwgGu9iFhDhlwBiMOUeJZih9C6eM+mgABKAKIkEFeVB0PtB6cUZ+Gbh0aZCQS5gGVxAFe3iKV7AEragI5GiOjphlBJRgRBBl7wiPP5AEAHBwwUgO9RgAZVgBZdiGCYd9OaiDNsd2D3ABIlF8RqdxAHCQfP+XgTd4BZXIkHnIh7qQhywgAg6gA0zwAkTQjlyIe1kmBGBne3qwkfDICTcWkrQmgzlHDjR4fckICvuIcAbAfJb3jBThCEWAAxqXdxLAcNZYgyJgg1cQl1HAkNx4ipZgCbpwBQAgCEyghVgYi7j3A3qgBzdgYFJwCFFGBEuJe0BglSNJkiTZCSfJCwrwbQrglWSImWAZlswXBw9AAGhAEcWAA0ZIfjVYgKhpidFXAQ15BQzZkHepC3jJAgdAAUe5iDfAYIpQBRTJeDt1CJC2kUtJBDFAazFIDnEAmTkXAAlQAd9GmSa5jPqojJZHADI5EWhAADd5kNfIeWZYiSKQBlH/cAVDKQINGQVRAAh3uZ4S4INNRQEFEGelV2dMMARDMG1gIAW6qAdcqAcgeXlZiZw51wkBUKCZx3AGKIkJp4lkeHP8GIcSUQVTdgBLkAbVqHRLUIk8GX3JwJPHaIZRYAhOoJ6WQKID8JZXwHQO4ADaSWVzRp9HOQQbUAXt2JgxmHOgQJI4WqA8GgCSWZkvCXrVp4Og4JzYx3YEMBFAIGsAsIQLOQDf+Y1L6J3ZkAzNKQLo6QSGcJeA0KVYoJ5OQJQbUAYvMARbB1sXAAGmhwYvwAQFAAFoAAQXAAA4R4/P56MKYJIF2gmgwKeY2Xzf5pU2V4/RV5m8wI/YKWvUaIoJ/ykBrskCCcl5mtec0ZcBlmoIXSqiliAAX2oJImAADnABnqVYgWimTDAIEKAKOiAOOEV4F0AAlheMfKoABEqMBoqjZ6eDvICSvOCVOZeGBwoAJBYRMaCdRxiUDBmeVxCUnbcEZUiMxJgM2ZABU+AETpABApCtWCCbUZAMZ3hrVEYABVAAF5BkdHZ6OPUC4pCdN9oJBMqczGmlPoqruOp8mnd2oMCczZl5AbCM1/kQqgBne5cGQMkCJ5oNy6oLnEeZzwetyZAM6ImejMAIApAO6VCiUbAE4rphUAUBBUAAIDuuFACyBEAGIAsADOuuPAqtCRAAOCqZz+enyxmdzjeMx//YnC5rAP/qEGUAZ0qXkGngBAw5nleAlyKwhpmXAN4qsVFgjFGQART7pYYQBQcAATowBIcJnDxVmOLwWqKKBq8KAIV6mQNaoPuaeQNKoGRrryZJtvVYhmTLpzobEW4woXwHtE6gC9tIniM6lN9WAfqaDBmQDej5sMlAsdnapRlLZQWABoPAqj6VUy9AYFVQUjcwVRDgbc7nru/asi6rsgZ6mdAXfQmgcANKjM9aAaVrAGT5EEwAZ3cLqQQblw05ok27mkobrYdruNkwsYwwBViABRkwnubJdJO2ouUaVo7gCM+mCgXgbXnaozzapz2KutELrbT6soXQsoVQCBWQDbz/4IwRMQiKupBAqQtOIJcjmr6WmKfQGgYfMLGF+wHxywjB6wRUO2dwNwiOoAoX8LFvigYmK3oHYJ4V0KfvyqOcC7oPWwG1yrI4Sg4/WggPmwFXcKit6xDFIGt324eymZdX4ARc+o0oyaOFQL/y2631OwXA6wTJoLOAeJhWoLW6GKfE9b/ayZPOaqAL7K4ygAAPXKXNybIJILPM2b2CmwEJCqEAK2s1mAZ3mYeW8I08GQUlir+A27LEiMICwAhRgMK/G8bH6IzkugGJVZ+KwASOqwhgUKZl4Lxsd7ota8QFur3Qqrosm6d6nA3ZUAgBcMLZ4JwAsLMK4QbauYSQmpdR/2Ct2WCtVgwIhmCJpUuM3Vu/vnvJjNANE3uMcTkA4Bqub7oBG7YBaDay2Ee9tkqrfEqgkKCvSmu4D1u6Bqq0fZwA2SAAyaBwrBsRbTCKfOeadHmXIiybJRrJDBsAhgu1jPABhXDJ3fDME+uc1olmjlBXaBADaZqdAHCaSxDI/KqvKInAoKu6tUzB0VrCdVzJFJvLnpmkEBEDG8d351uisbmeJXoFKJmnFSy4mEy/9KvJGfDCF6BYvznDUqAIZZVkacqikpq9eZqj7pqjqGzL22u4trrKnVAIYWAGHyAASnyZnxkRZBDPBMulJm3SXeqp1+u7AsDCUzCxz6zJvhsFCv8gro37uEfZpo5rXEywdRvgAHFMvZyro6cbBrr7sHZ8mQTaCQgACYWQrQLQsqDwmcPqEA5wk3ebt7rQpVytnl5qCfisANE6sS8d0x+gyd2QrVPwtMT4rZ8srnSmpma2ARCwzZS51H4qq3zqyq7cvT7KuTwKCdnQAB6tutXpgA9RAEmX1VBcol3N1fcLuNsbv9CMyRPb0oYQ0BXAuhcwXIMwCGigpnBKALzwlhIQtFdQugQKCvw4riZrcwEQffCaDN2Ltgisr2bACLDACLZ6qAawARCh2MfKpYDwpcHrpViQDrCQDdBK2d3QALDg0v6sydn6AZt9ATRqe8AJBmrsv2n/+rHb7KwRTQ4A0Ab7ZmhFEJ8HwAvvWghV+terXAgcnQ0WG9Woy9pMrBDxSX5LiJeP/aVearHD+7CXjAWc+tLL7M+MUKW5LK6iqgMUqQiOUFY87dOwGgedgAJ8CgA4sDYM0AJCoHJFcNW76td4CtjuXbHCewXbm3m//c5xtgTyLJv/DeDBiwWF67suDdUv7c8oTL9W6q1tJ2njKggsh2jxubnvygsYICQhsDrGo2dnKbbyGr3uGwaMYLFYUAHb+8cKMLcPAbt3i5fEfePGDQjpIADz+8zpMAUtHcY+PrEf0LIPimaqcM0BjLJLEJdOIABXkHlM7aNxgAEdwAHV8yW1/7gCOLDNgCvWCdC92ZDcaa7RxBgGrI3YDqHY/A3FxFyiZl7ckt7j8Rvdao3gPt4NH2AGLpsLaMDGg0mYEz5WoQ3eBYi2nSADJlne5aYBI4AKdvAlKSUEbjCKB5DFZmAGFbsMwmvL0Mra7uwQbbDYCdnpnh686WDmwTsFhqvbzw0LhL3gfJwN8evPX26dZqxYz4Zmd3Wmr9qrfUoDCIAANV0EJMcl72eFwG4HKzCKBSjfHwALy5DmgzvwhcDaGZwQYt7Y9NzVAA7qyr3M8HvZbt7Fx37W/4zqxIiSNUjkcCrXiRaf7O2u8C7vBEDvTyAEjXbvRoZgEWQC/V4I3VDfg//LCDOfywYQmg/RmEfY2P+N5sEb8AEPC6n+zCxssQ1AvxttBhHfDeKeAJ9ZAGb2v29KASibgWkgokvw1yiAACZJAOXmCiRoPKbVaMWTCq7gAxgwAIMLC2mO4DMvANu7yw8BkgYg41Ls2FyNl3p5AGlQ3Gnuu90wBW0uAHxcCJAQBohfv4gPCgQwCEOwU1QwBINAAaLssSRuiavM9QHAjxSwAlwS9nZwJ6HfbAxwAiawhNjq0dLq0Rlg4NLHCwePEBu8zQPAhyiNlwfQAelzJgNgCdee4OlQ3CLqz2Gg0fR79EaN3+euAzogCJ2dWGWganW9BEXM1AiQAM64Aevz+Qz/xECoIGynnwbJALxYkNkZ8NRY8KGwDxFLagASIJtsEJu6MAAA0AHtUAqlAAMpMAFpDxDp0glgNEXAFCxYMjD60JBhw27dzJj5UKiCiCUANBIosAHCBQoXCjgAkCZZoQAIwogAAGGFqxaShLSIKammBUkafGAYkEaAQCxOBDQUICBZMowFtCxl2pQpEDIGJKQxBAiQpQEAcLQr1YQSjCM8JvBMt0zgFIMHGa1t2PZDxG4NCxngWMBuAQgUCCzpaQlQQgEZPkyscKCAjydCJNmxY1OSJFQkJKvwBKCngGVmsQgwJNDQFREiDhBA49S0FlVRpxoyFGWACRURpEkrBUNJ/4geXDCkKZsObdqijOAOZwQLVjdGCRwMYvJiCJNBFDZQgEDyQBosAgXE/ZAMgAkfL2MybpwqFZQRDDRUHmAJs+aE6bAkuJJMAS8HpU83vUAGwJIoorhCgg6gCIQSab6AwZYjQvCkA7Iy22wo4YaLyLh0YNGuu5YoUOVDNC4QZBAdBlGFggIAcCK7zT5IoKUVNFBBhZrsKOHGVFDR4IQJrgNEIPmy8yybMALoJA4CBtmPKXFiIMCAJa4Y0BMLSvnCCCVcgAGVEXbs4DosluFmoIciEq4BDGFRQ5k1gZzCiShEkAAABwqgDgcI7CLJECFhEaACAopY4Yl22pmxncfMM/9vhBMg9KsssyD1LYMAjASFAB2WXKoK//5b4gAffKnNBVJtkcS8J1TYaYAfMwMkg2weequbBhpIRw2BcNVQPpY0AgAvCgCQQAInnEij1czkcwKA8NpBBQpUGFBhhBGgOC8VRr/8K9myuFnm1Q9AQQkUAzbQFLVOD9DKgi9cUIIBF2yx9tQWnvDBBAksCXOZFt/6QAAMcwVyGWWUCcoBVXQoQwdBpAupAAL+wy4dbsZMxxAJTDiBRvMgg+IxaLlsVAI+M8usYu0SCMAMSAKowAAINHUjYo1wgOILEtRL4Qh5UznVphVwOECXfYPczjhljNNQGSDTYRoLQ36VTpDpRlz/+ESIWaDYW80G6ICDaVFRlDEobCFBBQ46mIoRMbkhxNt0uimkEDNQCqOQF/U77QKaTWjHAp1DOCEFElAx9UZJVOVp3zEBmQI5DYUsGNemtZtClzkdyEtPAkzQCLuKK05WFww8WUEFW3o2z3ANOMBAAhEK+UBMQsxqoKKKWg4gAd4JWJJvDEwYVIUUQjBeRgYYUL3ee1ndWr6ijvbTOFwpb/NidQHgKC8ADugJkJ+WIeTtt7cYnxssDphg43YKR+X9dtbD94oEIOnG5KHqNiOAMCDR/cUL7KcYBMBAB1bAAQ6EoHgakNGhWtCxJzSKVZl5WzoA4YQpBGxXAiuYfJYA/4FBlKEMDdvAdKqjEWLRrmKEYMcWWqgLE3jiBCfYRLxSpwIe8aQCRkKAGTRUFLxVhHe7K8R9knSa1ASvA19rR5dk1MARnMpnT1hBBwZANEJsoXFoMc4UmqYGMOKKaQK4ggOko4qqDYJEOjAhACyxNfNtwYVbAEQBERgC5VELhxCSwBWMJINKfQBNDehGUWB1kiKSCwJlMM0FHICB4E2gHVBQAQNDICNCJcoOLajiVML0NrMc5CcZBBKbKCefWznhCgM4gOYo4ABYxpIAEviR27LowhYuo4CeSGAKpKWeHEqgApCQgQx0ZwZawcJkZjHEUAIACgBQwDRFIOB3VpC4FP9o4JLTGkELoviYFqhAaNi5JSGYZpAMNW1yHWSaMqaQkV9BAAL/uUIzE2KyOGaRHS0khNd4qUAGMpADEzDBAJaQEgQgoBOQ6KEZEPAWkw0kIh9gCQRU0RQ0QIwAPnDFCQAaAhU84X2ps5bPVAUAotGudqis3Jo6WLlokoiEG0BDniK2BBGsSHzjwyU7CEG6CXDAozIy1EBNcICD6g4UnZBBQs2gsgwIAAtrCQxrdGGYpqgiBg5owwpOgMATMHBGJBiBChjwLFT5wDKAUKnFlOabpU1OIE9rSQkpQIER6aBEVEMRANg6vlvucwvLSAMGJvDPGeFwLBJYgsqM1ImF7u7/qWEIQzYycNmiGMISqlyCUpbSpM51YAITqAFIKxlQDVTLDmktyb4AazEgaQiMBWNT08gogVZ+hAC73a0JdnuAT5pPn/us3QAwwIXDfpUDnlhsfeZWKf/tjrJh6CHAiqKsKFykJZ/t1He+Ji1LMvCbUrRXSbbGU4uB8Va0pa3TmraseEIASjklWnxOdsuetpAbhcWAB5DLBQ9AcgBXMEMY9heAlumOumHohoZ+VJbAJCMACgggaiI2gIxx9AnanGFqqTUCsVGSPQmxpQvNckqnmVK9TEtHFAqgikGQUDoXcKRGDiCBn7gtv3IcLL/SYFwBp0HIUXBoyxDA0GIWk6EB/2CbVOOjix0iaSlo8FUbNqCDFuxohilQAQlSNQJFtWNV2VGGjtkxJspJDkguLVgGCEABNKABrwm72nRQlK+dypGf5pOPmL7lFxYZohD+SzICaFDMQ1cqANmABWB+AogoXEpJWvAPBiCwAUHowKt3zOaMwFyCRbkOOwRboflMWblbsZm2U7hCbiFAgFg6YLefs+8ctZjFP7M1SGGaagIMjeiEEjO6AZAdZgaSjaKIwACenZkDfNAGi6rCB574pwK5nIobgVoFPUqpLW8J2zXPlr1t1p6dUnSAK7BAF14MUrsDS4h0jG8ZuhjwrrFwBQMgmAYLnUiRoOs/ut1vGYZIQP8hMtBZRyylCFZuw5tVAYEl8pIDPUggmM1TAkp+adRl1qIczYnquY47HTGdjp3zBLHuLYGWTsjGFMy8BflUDBBzkoCQsCCB3RoAFE2lSKVUttSWheEDFRNANuZmAGlq4QWOUEUbNDId74qWtBwgnNhyNALXTbCt3JAjbL2o6nEroE7AwgsaRoRG6swyDVHIgBrclsu/lOWqKJVQBn5VgHwHIAOILBICJryyMCRr77zwrNLd0HCN9JVOS0RuDcL64RGEIMBpOFmp9fxxLChN3CI3xBIIkCdfwXrW3XNcM2Hx9hYKREKiuUJ8bs4RBxigAnSj7EQcS2wzlOXeyTCA3sr/EAOU/0ojJjgqJD0w9Us6CEID+CQ3yhzYFjLtOMlUQ1xpC4tWFgAkIomYBHRhT/decArKGC5sgyIlJwTJEOqKmAJ4NzcDF7xSc2OEAJwwAEA1hQkxiAEAeCF87dkNejO+0ZqA5Zsgt3G+Utun6DsOQqqViKg+l0qGAmgYvBIEQbiAk6OZPsKCC8oAWGAhwSIYg4mCBIiC+hOAv7AE3DIABaAulTCwu1GZHkK2bFCAByg8LVAE4Oue0YsYXbCKH4MkAdOFRymziuE4PWPAMRmOWXmLBjgDWLC7kdBAmjEjkyMJv5iCKGiAisGlW+MG+yuKDbKKKMC9hFKJfgsDx5ob/wWIAzJopBTRHgLInqGxCkDQhSDUFz6JD/J7m4IpH8EytQYQjsGYiImAnKTxvBPyFe3xlSvKDidIBjNogPFhQAZcKbOIFCyYgmzIhgJLQ6GrCLxBMEgoBGiKAdNwgzmUNTusJzy0Cvn4kfg4H+dDwhbCRLOAhYZAROqaiA+ABRGoEwhAgw34kFcSlnUDkoTIBkgwA1vCRMHiGtHhl6LoRdszOKMromeSgThQRdMohv4TPtjzlKlIgzdCJckxnwRcoUtkwC1ImokKxTREgG6IJjvBtLvCAeKTNV+hJUAARTM4g+GSxq4THRZDJYKAlcvauwMDBWjajybRCIjJgha4F/9HPBYPjA+BKLG3cccdGxOGKDDq6gQUQAF7VABYAz2+wDAMGDsH8Jy/cIIPEDq3yy9MlLfKsbmEsApYYQSUiIMHAMfTGEcHwAFfSAUO8BwbYwGrSAgh0bGDBCzoI650eIgi6YSl6gQEkMLcSpHdOkp/7B5P6kQiYTDxwUl4XCmQ642LgRVUNIA4XJJiIAMCwAEfsIBtExb/y4C/YJHsyLOPDJ0sKkif4oa4kEGFMslOaAARsIu7OsYP8Qh8qS9A6MMp+IAAQIEFEB9plEZQsjeWAgxnJIdcOJcy6I828AFVsSJWcoILAkzVwy9QCh2uw0lC4EXFhCwUCIAGSAaOuCv/efJH7/MLJ6C5N8rMX7REtcTEwQIKqDQLq2CNGySDuZSZAljNIliV77EnjsyzqSRMnpJGbrgdhzrJTqABGrCVVhIJsjSo7BE9y3gjLEiG6TIDfjHMQRQu+GCRWcwGuTwXplAFWesAHPiS73nKpgGsOTofW2RQg1SDxEQAFFBPe2QEjqCxu6KOvNBAiDkAv+ANhXCou6GoeFNL81kGZQISzkiIDOAFAiBKAW064vOcAeiLvwzMnXo3BiWf8STPuCmwCj3JBWCEX6Gxk4tJGxsAzcqKfAkKRpiufxETFB25ArDLiDGABzCAuxNQ06CA4LGMGz2WpwzMEvM4nhIuqizI/65ThqGgUBRIzwVoAJV0JO+5URZgASHLChtDRw8UjNo7veYkBCdgCkVgAi8VUDcwAUiSgBsNwhxlnMvr0TX9UXjkBl70u/SkgUpctjyRtc6hGV+5Dnozwj8lEnv0wjMFpSvQwUQV0BiAJDHVw6tQUApCU287nz4bLjAcE+U0NE7thu2pDpq5MarYlvQBABbQF4VwkR6CCzSxndspBFd9VU1JRmHBMEcd02H5pErlqfGxoMBawuiLi3oUOjp5tWHpnom5TKD4DnScySgohOlKw34rMEi4FGu1VgpoA1kzI2ryrFlyrUrlMX0CQ3LdAliwzzA4SQRgBEYkCc0pqDSYk/+S+IsDKKinDAwYTCgaSCg2BNZOyAVB2FeTNQ1VIICU2lEH7VHz8SmPg8dl2DuECgNYWALNiRgcKAKKPQB+zNbvYL6nhBUYVE8Z6AQE81hQeICYOVmn1QIcuFg4+tY0bVCc3IIpkLCUYLAKyFkCGYsrKqAO6J6smCUL0pdf3bcKtVD/UShyqNan9dIVoNiyeC3A2lFbEy5yzaUMoFfq6oauVVcTWD7S6QBGvaLvuALCIhmC8Fj1NFpjKqYjuc64fVUEZSuVKsyPZFA1tVTBgoVsQKhuELsT4keewBxhORYYcoCp0Ih6EoyEqtCEkoGPPTTI6r3KfdUi4Al9qVu3MRn/qk3A2rnaq1ywD1AA7aMxkQg+R/w8jSKJJaBOh6pH/zm0oyWXks1dAeVZH5GUSDkZSGmbaqRSnOSGKaAu/jEAB7iADSARRwACIEAjTIszGrsL6wjCvkUov0PJX5MBRdJeAXW6SGRGjnRL2hHfthHBnsrND3CqZbsAVSgDcagCCq4CcRCHMnAEQQiRJI2YYzGEDKAu9TQyBJDcfCWA7AXg09ABfNHIwITKpjmZzGin8H1Z5zRfzQyDZaMA5lAEH6ZgJrhgpqPfT+2+vxA0USxayVWAX1Hh/QDT7ylg1UuWZaKtTcyzz4S5ZEioHe7hQ1WEKghicXCEQZiO+h0JILxM/1T1u9ilXcjqhP+rMCduiv67orhrmsCkGEmZq8oDVx5jwGWI0gDYYVUQBzA+VCYQYzLe4JriHGHZrGygXkSLU8gCBV5o2jlmigLwHqLBY5ZymmUimNkUXo9bYN3sYkP2YTC+YCFGIw5G4/9wDwGYXmA9SRpAgSQDBbhVYTJYgnjlyU+mmE0cGHfEr3wysaNQ3wsYhCpQ5VW+4AwGgg2mDruYtSu4TM1MCWJ63CSTAeTN5KbYCzsG5hiGm8pJYHCFUJ8SgCh4YGZ2ZkVg5TFWo4bx0Go+gGJxxpSQ3G4upktJOHC+AHrqw78M5vAdGPFN05YVrHTQhSMdhAtWBCL4Yf9WLgMTUQX61cAePJb8LeGjpV1Eg4ROIAA5dmI0iIoo6UOoXOns2JWIoiBvM1gIHSxLOFJHoGAimGgLludFphrlLQAnGRpKeWNiSjL1jEu9cWKBlr0g7EkPjFSAQWiTsbyCFSxCmAJ3nmCJ/mEJFuL4VYVp9lCSEIHQBTrI6ma/iwPcnePfAwDZ++W/iMW4HhhIkTcd82P8EiwscOdm9mGdxmBHCOz3lWYz3kAFCEqITOyPNiZy2eW4BYL+M4Args2NhMqqgGGpTuiq5TEwxIKH7uu/lucxhl+wFs48iYqfI4elfZKlitN9IwffyeRxrICGbKaDsG3OiJ5oDV/b9DMyFaoYbagdAfgVNEhlVWaCCgbicQjsGLsAOfNQAogDcnmAByADNCCAB4BIyKJuxz6XgAAAIfkECQgAWgAsIQAcAHkApgAACP8AtQgcSLCgwYMIEx7E1YSSKFEOH9IRZcQIRIUYM2rcyLGjRlwgHdKZ+NDIJ5MT6VDC5bGly5cwDeKiJPLTyE+fxuTYaRPnSGkxgwodWpChQyNIxiBBsnNHjac7ckTNMcamKJZEs2r9eMpk0oqfmDoNwqVskCA10O44Mmbl1rdwCYKAoXMn1bpjg0zgMoHs2Ro7digx8iWu4ay1cIkSGziwVKc1JkSe0OOp5LSAcxyBcbgzzG0zP0mdDPhp5ckTONTgwFo12qc8XHie3TH0aL17a/SoPGGvBw9lJ3jicIJDb081eKSgzTyjNFGix3L5fbZ3WQ/GfgMXzsGTd9M9eDT/H3+woZHbZIFzSY8dg7H3fL0LH949snjy+LU8Px/4bNngQWD3XnbG8NXbcfR154kG+Y0nTSB0RJfWdGZNR2B2v/E13XbzyXdCg82xEgh0Yk24HXsZFmjdfx10cCB3rYBImzSnUDLSGCnwwNuBngi34ou9deBBiy4eF4KMs9EYkREwuPAKAyGccMIKVKpgpQZUSqngBES2GJ8nIyDZ2Uw0UQQDDLak+QoUUCBSwhdwxlkCIlCoEIJxRBrjoncximkYmTQxicqgg74Z5xcRJAoCCMw888UIIfTY5Z4r+PnnTIF8ceagFqDi5qFfnHIKM6QyE8EziDxxgidcdDnBCTNY/xoXK6AFYsGZZ3b6KZwWIBoBM4suyswXUETKJZFcHCkrXLTSiKYtMHiKyLRfWGBtosAGu+gXiGjAaqstTlDpsm9ZsQ0IX6CSpi2oWICItdX2iq22i6KqQndldcBXn+RqtQ0rzHSqLrQwWAsvnNhmu+ipUGiAb6tceDJuv1mxwqjAaeYaba++/kqvqYgwgC+RE2RBsVYABwLDK+yikqunHHtML6MRWKDBqsd24IMQJxNlgw2nwHAEDyGkwIAL0BIaKraJRkBzBOne3OOBO/c8lBQgWDB0a0Uj7QLS7SJ6SsKmQo2Kw/L15oPVQ9nwDCpfu6BBCCHwwLItDGigAQMj2P8ib6nPPBOBJHemLTHbQrHyNpqD4p0Cy6g8QTcPrIXAACqBZz64t4ZPjPhLbqvLAAl46+0CKukykLdyemsARQmGQv2Egj16wu/nLtmQNZTEnaCCBq9YIKoFtrzyCgnuosLmp1BD0d2BK7SAO0ys2BCB3Hr/zoAtiIK8yd4GS2voozjvOz31rERQ/JPaw9A9M4iMMLfr07opOLezv8jz+S4BDAMJxnMSyxAVrGpBYQRQkEScmhYBRKhAPp74EP9yRzykkYAEDHgF6hRWM4MJjmmJ6pZ3OOA6VkywJTYY2AWf5LfuLayDiBJco5omibmpAHVfsMEJPZJCW1wwgyRA3dj/msYrCzSNVAwMWQu/UIJn7LAjrPiCD38IvIIREVSnYiCcpiWvrDnxiRx5mw/zVjTVXQ6LUAMVnJooRQsMCwRgDKO6MGjGEZDAjhxTox7NZsQIxFGOaXIBANmVxivqMU7PQCIB/7iRZ6zLFkhj1/tMhSgaReAUh4LdB7HFyI2UAAoBBBsOtQgCTEqjelL4GQhmMINEAquTG5GE445whAyeEWEIa4EQqMBLKkhBCmCgQiu/wAwdwjIjiMBgjnigHFpq0GDVasEQBjGPDcwDDTooQzEkUQJmmPCYGZmBHZ2UAloyQAlpmqOnJJGFLMyjmhR4pw6GYINtgFMjM2gBCZSg/wRaukAJBdtimqblznlQ06A6YAIV7hlLITxBdUdIgdGeKVA3UWkD1jRoGRbK0I3kU36qS8HepGUt1EliBdXcABoMyoRDdHQjNvik6p4EOU7NyQInxSgaMDqIlr5UI4prwQiMN1BCoQJ2EShBQd+pUXT8VCPPEMIIbBlERAxqWiWQxjNWgFGmDqIMTn2qQqzwDEnIT2/bY5ct2lQCt2FUpe/8qh7EmpBt2GBaqGBAjowWyXWWlatoCKw1y+BSui7kFBe0owaIphzVPaEFLSiBEFaw051u4KtSMKxBWIGLU7xCAyJdLAd2wxoeqOAJX2hBEVS6gUU0VbNyYYU0vvAkif8yc7Q94EAINDACSTyjFSsogmAvW4a5wlYLTAyErZTAgE3Y9k4c4MEtQdACjFLAsoNwRGY1K4V8fkG5qHjF9/TGTGYaDRFw+i1Xr3tdg4LBsFKggiRaAIXvSlGvEs0v6zS4xla0IgvXDaxBb+CMn/7MGvNtxRNU8F0LTJW8esvv48IWgVYIoQzZZcILpIAOMPxCEYu4pxSsUQJUtEAFVKKSfU/cuhbzYBPb8xQqqOQGClxgpdm8wQ+IQIYYlKGTboPCglHcmuKgIhD5XIHe6ibhifrNXZJg5zrWQYF23uAXPAZAAQz6xEV98mbFOQGXyuKdI/+1xWgmKscs8IxsluH/zcWgApbJAAAAEKAARTDZ+awxAzo5bC/gwgAGTBAuWwTCBtYoRhZ+h+YMsutd1XoGFW5A6SpUQQpzrrMB7OyAdWzgx2xjpSSegDYuGAMDBxC0BA4AgEF3QAWntMINFE3q1sF4dE9+lySG8AJFiMMRLzjEDxRB5wfEwQAGiMMBCNDpeeyPXDaYwXxVIGYhnRoDAzjAALa9agCYYAWx/sULiqHgRgfRXTjddRUUYWkw/OAHVSADGR6A7DiIQQGs9jYONuAIWT1jBnhbgQ+4JGhBb/vgCG/1CaSBaWf8ogpCaMWDNaACR4tvBpOm9A30wIkfjKPYBniAKewdhzj84QCs/3ZAlZEUbUnUCU8mAIC2EU7zbSs8ENY4BCc4cYMhSPWOU73go+1nDTAYnQi/4MQvkjBvehtg5GIo+R8qcPI6MzvPQyAPOqR94hV4ogOClrkEaj6ANCA81SoIBBXQ8QOl+xyBU7wgCaDgqSYWHQw3IELb9XABkD/d3mLgxR+mPviq67sIOqANn4XQghVUGwMAkMCqD/CHsZP94AfoACJAsPa2cwIMTGD8uxAxxXZZoAUzuHve3w2GGGga2VEPPC8UoABeVID2vBj7qgcNAQp0RrLAHTjY63wAyRfe8mVPQxrecIU3pIEFA/DBM2xABQ/vXNxCkET96AQFa5HgCTPoMP/e9b5jOiP76WJIvwIqwH4FBEABgZe8BJZQdQJQYBBwibjUOmACQRd/1YNnfGOnfG9QgGXnfAOAASvgTdWXdNdHBEPARnTSOBQXfht3A2CgdETgek73AOl3bxUgAuwHCbRXe0twgoXHagQAARugFcVQBMLXf5E3APJXeX9Af38gAsu3bcqnfJYwACxwACogadXnbjundC8gCTNQAhZAd3lDcWuHDodgdL/wA60HAPQmBqZgCul3e7eXAAGQABWQALZHdbeHe3EAAA4AAfMwFOIAg8MndpJ3ghIgggFYh8rHBsvHAstXgEFYBBhXhOjggJyADlTwb5+EQXsjCdagB3r/cAiU1nZXaGxayIXrVwHvlwCaGIIi8Ae8EAe8MHu0B4opBwFCMQgOUGcAcIM4OIc3OHUiWAES0HwsUIBvYAm3+AZsMABFwGtFCAYcd32GOF8jMAIqgHoc9guHoAeRyAnEhoUhJ3IlR3vvFwABwImdWHKhCH+jGIop14YwMQ+pGHnGx37sJwKd+Afrh45R4ARpcAW1aAm4KI9vMAAFsFFGhw564IDO0HFSMAQK1lvWIIW/oAf6uHq/AAQgt4Wx537W+JBimACeqI0lZ28KoI2b5nsw4XqrKH+SNwBXYI6eyH5+4AfoKAJRkJJO0I6GAAiWwAYOUAYvAAb6aJBGd5OG/zgEQ2ANNiCFP4AOiqAIYCAOVVB+AJBsIbeFgFeN1ggJ76cAJAiK6icGAfCBJWcADgATFzCOrFgBVwCPLHAFIiABFTB7FZCSaRAFGZCS7egETmAJgOCSy1YAEFCXBUCXq9VTL/ACGIgOg7hz6AAEg3AD41AFN3ABR1lvT+eB9xaGYuh+3HiRHxh1JAd4xwYAGtkSbkAAdTZ1IXgFzwd9IiiGU/eVbKmSb2kILRmXcZmLNLh7KpdNTMBrGHgIVZiQi+AIhpkE0Ah4sQeKDqmJD3lv8Fdy6UdyoXiVIVcALlEFrkd5OWiSURCabPAGGZABJcl+V5ABKxmPcGkJqrmaLv+ZBiKwgmhQAA5AAHd2f+LABExwA1KgB++mCCt1A4oQA/Tmm1oYByUYhg8ZAJ3gkFVJnArQCZRZkSFHAODYEWWQigdAf5y4BmupkimJjiFYkn4goYYwj5YwBYCABS7ph+WJBmXABBi2ARRQlxk1D8DmYSAGbFVQAE43meqniTb6kA4Zme1XnJQZdSEXYh6hkHV2ghXgB20ZBX6wkisplkZqpGvgB9zpBIDgBNfpBB46BVPglmnwB2oIAWjwVW9GTRSwDjjgAFvGBOLQVRQAAMbpm50QoFQZCwkgp9bYCQBKmQFagsf5m8fGnEFKZw8agm1JpRNKpUiKkiiJpFWKpHP/+gFYGpdWGgVimW/MVgBf+mZloAPzQAGrtakU4AAGAH80aqf/GYZmQKfWKKo1SnsMOZV92hKLAKhLMJZX4ARvwJZPep3YWaRQiqRrgKVTsAZzygjAigVYMAWGIAIAgAaO4AiLUADqaWd0aU2D8FWDkFEXQACT+ZCkCoYBgACxEAaoao3pR6oAyoXpF5ViYAD21xFA4HqhqoNpII/yKJaK+gGM4AeOaaSMUKXYuQb4SqwCYKyG4AQVQAAbsGEd9gJMAASLAAHpWakBZlDzQADJ1phv+qbWiADWGAYIEAYfkKoD+qbuh673JoI+agCZqRFuQGdLIAEpWYDyCAjKd6i6/zqnfpAAv2oIGVCwajkFAoClAzsFlhAFIsALKzgPGmZ0NmmfznoBdEkBFACtnxgHAWqgBiqg3uqfYVCnjUmuH9gJCZCzxWkApsgR0EqOVxCz9Li2vnqdayACGPqkGaqW3KmawCoAQTulflABKmimKyUOM0mQYEAEjoCiBJCDWkiV3GqNNpoAXfu4YMi4AQAJnWAKARoAsRALJEh7BuCnG1EEkDd2t1q0bYuhVwCl+YqSJZkBWMqdRIu3QruhK3mw9+esMRCxdMmiioCBVfBO54lsphCcjguGkCC5kluqqnqjYmCgcQC6GkEBqLZtLACXt2gJhLqSKem6aymWIkCswP8qtHkbtIZanoPwAh2Wd1WAuwVABmZKAYuwUsH7dFqriVobBlCas8LqlI+bfo6bqve2rtCbERCAAZbHAtVLrwULnikJpa/LCFGwBowgALAwBRU8sMc6vgKQARWAlfe3tH55dOu7CClqYxZbAemHuRwrp5sbhpsLsv/6uML6fh8YhiQotu/3uS+AtgDAg3wIlx/KmlNwq7UatIzACGuwBnMQtEJrrIBgCEErAHNgwVOQnZt2ZyxYBr3rl+nrCGiQraGKidYop2EAueIKuXJqBkcMsDkbCyUJhv0ZC2MorJrICwVwAxzhehJgCT88s6xprLiYkkw8BfgqtBhsrFggAIb/AKyMMMVRcLAs+LDpyWks6AiK8AJeHL8FYACU+7FmMKdhcKplnAAfUMofkMRyugZ02phz2srXqACfqwh5HHn0eItS+qFTAAeAbKRUHL5Aa6y6jAWwwMTCPAeOrAAF4Ag3kL4jDAHQqp5RiwYQQAD8WaBlHMphMMovHAumfMqbu7n2W6M3asOf2xF6TK+2bAiIvM5HDAtqkMGNbMxTgMhwUM/GSsENMMVOoKwFMAiCi4FGp74OewExkKIGYIaaWMZm8MlzGq7hagYfsLkRbQYSmsSP2ZgLnQCfHAuvOst/cL3XG5cWbM9TyggNAAewUNINEMUfus64LMX4upZHW2dr//ilgouTRAAEboAGFmt7j5vNkiuusbAGp3rKEpoBFt2fmmsGmhsLAdDRG+F6f7Ca84i3AlDPcPDEGcAIsAAHijwFjQy0uazLLT3PUtzIK1mezpy2nHYB86DFijAIlUXNCmCj2QzUaAzRp6zXHyCuSA3OjhkLCx0LwZoAgTfAGBEDBrAE6gyiM9uhQFvPLgnWWD2wFAy0Vz20imwI2cZqgyZoFNC7YOBrQEDQZMCZ6tl70kwAtOet2HzN2fwBpyqhH2DMH9AASZyzdt3XQ20IwrquWTnLEtDYLgnELS3ZgBDZ9qy3I93VgDwAJjABGgADTFItqKACFvYCkxbQN1AF4//wsHdpY2Gsjma80bIt2yDbzUY9B6cckcLJ0IxgCB/glFjJEe9qALHQ2I4NxPS83HCgBsqgy2ANC7BwrG8gAR1wAkcWCNJACZhULf+DJavFb/9sdC9QBtdEASd8e4551x4eAKHczQDL3nLKfq4dykv8AccZ3BrhCPipAIZA1iAal+tsz8eqt8tNxU6A4AymXJrSJGq1MgyA3UXwzOt5WY6A4RSgUps8e8Ipp2CY0B5eynMQzxG9uRXglNYI0cswB04twBzxcQ+gAGugty59rMcdzMC8DHAwBUv8BgooPEHjArV0NI8EJSqAcS9QBYsQAwWgiszWexswzVPXrWbgsSD/DuKhrNf5nAG2XcpyvOUI8AGGsAyMkAAyIAPPyxEtG6oZYObr3N/BPNZwsAywIM8H4AMawE9P2GKqo4hTMgS+tLCKgGFTi8UQAABfmbMAigAf67GkutAhLsGPDs7eWtT1vAYBIAPAzRF9t9hpoM4YjNXUHuDUjtUNAAuGcACUUTS8ZYwthkC/wwEdgAMs+FXrxpdDwAQ6gKKfetCx8KbZ/Ou+/rGeLNsQPQcN0ACHDuVOHdG7cOpObaD1vRGLQADF146HjAVYbe1sTs/KoAxs3uYHEDEcYDTFWHGjg0BQ0HUdsIbtC81LPgg60O5LHry8UK6+ftf0PundvO/8Luw6/wuwH6AGcPABc/qm5RzVMre2MS7MWG3zWM0N1l7PAR7xcGAJGJAaDBAtBxR0faN9UNAKKpBnlKYIpU1nVreGSw6xB4CJb0oDCCDs9X7oZrDvpYz22XzoIKvvpLAMAuDUyw7mG5GKf6CSQNvVSF/Py8AN1w4HEU8KAZ4GHaAB3PMsqlOMdtTxQqYBPpAF6KsHhSsO14SeuB55PJsAb7ryoVzvY28GC1DbXF3Ba3DXt+3OyiAAZakAscDsO68RdPYHRrrI6lztgB/xRG/0ysANgg8HhH8ClmNGjGYlT/BYLfAEAmemlzUO7TkE7XmiNpaKterUKIACY9/Xn48AC7DQMP+vBjBt+lxdz1zKbMZ2kWebEWAsAbq61QPb8AHu90Qf8YFPCn5P+KnBOhTXOgzQ8ZAFEE9WdMAAoEABAgQKQEAzT4eODQ03QABwJQGCTigQmDETBsHHjR8ajISlBlYDMx8+mGkwBxacNAAwOGjkA0fCeVp07uTJ0w2AAxKuZMiwZs0ULFjgvHwJB44yZU7VKONWFc4AExM48OChwWuKFAxe2UKFqoWKEwQpiKsCBCFQAAQcQKCABkIBACyixArQ6WMYjx8XDB7ZANbhkx8WkGwgIM0BDB08cdCgYoWQnpl3xgAqIQrRNRkMJYXDbdnLqdxIQa1KipuyZVg7cDjBI4X/V69iGTAYoeGEJxMAKFQBc6PtRIQK71bEAiiKnwQBwnAMvLFwgzPclsIRwIiR4aaWJADoMGGyBigzbFjR3BOvBL2WnDgRTRoq1apbCLGu+lqAhPI4COE23LwK4cAQTuCAi4IUQmMQR8qQ0JFBNqCAAggIOOAKS96IYo0EYvHug8AWE6mBqZwSYI7vGljGqWUsgcwELrQKAYoSSphBivZ0KgavAwZg4Y03LPkMEKWeqooQQrZ47bX7YBFPMgG5ItC3EDQYAYoRVPAEgwOW+MOAuBxYiIJ5BrkwIoT+YCOKKBJI4INYLtIopcLU0A6LKVBCYCQY34CsAy488eQEFUaQ/0SSGazhUTM3HACAlyuiuGK++UZzCo5lliSktaiigsMQACfjYKuwNtntlbIQQYUBDkw44AAC6soQAANyVY4CIFl4cw3AoqtugQ/mmEMNNZZygpGVFtuF09gAMCFAr1RIVBIdqXi0JzcImBSSWKKYItMpBNh0mU6ZdFK7TbGYUivarsztFRJ6SwsACQ4owJEXFCljELsOWqgACZJ07oOPpDMDJJXmaCDUpRogzMXSsBhA2kIRfaKFJ1ppAdsZtM3MDTIAiKOCKJwAxBJDnDBEgCSVJIVJUUlzV4JpaQvBNrC82mQTDTiYwIOgMqjAoA0cKoMJJsRxBA27CDBABCemiP/CI+kCACkkhzdFVuLFGtgOCwkiMw/Rj7FtQQiQbcgMCG95gY8NI1WeYtOXqJo52aSSghkQ2U6t0soQOPCEQQwGSCONOWIJw48/yiygLguhRoNXDTPwA2sUNEJgOpLwZrGwM5CFY4oDpj1bg41BLmHRRkeWeokoiARkPktIg3EZqmrmEymn3ohsshNOQDCEGgjCIA1ABKCPxTAMSMjbWWk9EwIIHCBAAiMR7hwBGkBaLFk4lILFYRS5MV3QDiTzJEsVngB5hhkYdbSnC2avtGqX+94UP/VxB2ZJag4LyAMvwXGgBgwaAJKwAIsVNeADnajVPCh0uYNgDy8iGA2fnPD/gb50IiMgYckZNrUUY8GidFC5Cnmo1YpWbEwIOqLfDJ6xLZ1wxgC0q9rdkvKi/vQnKgIQQFOccrMD1qAHS+yB0IwxgNypiIgkQsADCACBpElIHGW43F2oJ4E0OGEOZkBBRr6HgAWUblNFZMSx9KQMQsQmMoWizBOEcEe2MYp+z3AbTy5gMl5EwRKAOOF2nHKfQp7QXZAxhjHMY6rDYSB3iEzMwjqRqzLRBUMU2ICFCuAAE0ggAyTqXOf8Mp28QQUW5UIRf6JFKEOdYGM5WhS2sAWCPm4GVxXIgLk4dUT/icopTVEKzEiFgWk5cgI1ONUEJAkjFp7ET53IBQCAMqvI/80le0BRHMwEgDDw0cBzC5hKVMhXEjWspj8Xo5F5OLCCVsyQfq9bFB/ZsxO8LMEJMCuf7rBAxHYB4mVK8ZsTruDC9hFqAhNgICF5J6rvrASE0ptcwM7kAANU4AqGQMqLYLGwMt6JnCw8orl6pxpuDMBsh6pWK+Y3A0TcUT07cYSG0kAaQDjwn7DgKAEN0cu+CcBqg0poI42RuJt+ipKGcdhKoje5NA1CTZvk1ScJkAanjPF7nVsALEg6zJLcZwvLSMNKEQWFJ8SvBTQswR0lsa0/cs+B9IkCEVmUgQcesWWagplBpdU+E2AATAP4oVKVsRruoLMljFBAXBJyPcph6P8thhjmShCgkcV49avo1NtYy1oelqatBa3A0euE0IIW7CiH+EqD7ZzwGSIyYg2MQE35pgDUl2CBVGUTbOIs8UsscMNJpFiNMkyylJMwywAH0dCs5OLFDeUuuLw73RgF84GwPkW7xnXNFpykUhoZKgQqKK0kTiuJtbVgBUPg0SISYk0JFCkNlSIKUZKkjN+toWpREAEH0zAAAAf4RZwS7rpesyljNcA7a2hsQsw0MApoDyh/YNlNWUhF0Gm2n02Bo3f1IzxjgLYGIXgCInL0uhGkVSCtoIIWfmJNKBoCEFe4FKbu9svyCdUJf0jIAeQb4AaSRj9M6k9x4dCSw7BxCiL/QJpUL4SmiEAAB9r7baeYBTrDTOUMiJkKKbzLDu8CAgMeWGgQzBMCBizKtE/QwAo4UIQhaEFSQWLe7SQgAjipzJflWxmpDhCXvOQ0DRIAo0CVQggwO2nIB46YSdi4XIEJjKqfDE5SX9SdMBBLbFNBFoe9vIVEi5nMC13oiBkAhUUJoRVungAOyqCFkv0hDfKZT39ThqQTTmFlEnAAKDHAPTgAYnEChdkyEA1qMAtRVNI8SeMcMI+JeAsAc9HQHwbgBCygy9idWsYUFDMSZAnzKVRBNphFTeoapLsGxotfWk8wgQ44QAfFkBQYDcFRJwjlDTktH3CFeoBey8qhMTsk/zeaxA6ED/c+JjnJGQzTkqNZU3LZ0560OwOI/hyZJE15kpLKbW4MGMPM6V6i4IyXIB8QhABlmIeGJJDTe792ZbhOJNnkAoA0vAhdprnPMkD9cf0U15xqQBHRUbRkEQD8LnWZR9Pt0msAvAFd0dyUdogMlZ8nnB2xMUaNlFhyQ03GE/BuEIXIsMMijcYQV2AeATfFbyewYNYO1fnUlZF1hCP8U4QQujIOMxKHrcEBT77L5D7Za5dL1+A7jwoQjW1wD4M57+wghCXGXGom1oDUXCCINWPw6rMvIYxJMcQg+R0znTaHoOiC1pM8DHQn7Wc1yYrSSCpQgDQ5AjkZkoDiev9piNb+1jTU3fanvjx55G/BYhjwerrL7AHlTYoAg9DJ2WU9Gue5DElGbE5O+5bt0pjGNJ8SbpP0M/l1sbCcxt3OFHhRJrksBHsarDhQDKFt8hs8jnhPPsK5YQmV6joz4wIuOKrEOQBeMAAK2IlFwJX4ag4Z8z6lWAY+Mb3vS5L+4DYPa5KDSzjDYiH1MySDSjq54KR5kCxvuQIHqoqdew0mUZfj+7hk44blM6pGShzFkYD3QwM/AoAlkIAIzCkhPCIL7KeY0badGzIYzLst4I+FK6dNyQCFeDLD0xDFwbYp6BBsY70gKrAvk8G8iyMKLCvBArA36Js0aCzq4wnO6D3/S7BAAioSCZzA3SGwAiOyF5Q8MLsPPlw4v8uAacMiu6AAaZMLCYOv+9O2IFIX5GtEQgi2QXrDAThDaBkVBZi+ngACMggSKBqk73tDIfy+1hO/L8u/qjgsPRwrnuvDFCmfK/gz5TgTNtmem9odbsPD42vEyYuRK1CcuUMSdBEA6DAAHuyJBqQzUMypN0zGOdy5TtE/ygMV4iIF9DvFPvQ7qFADHtMeM+EVKQuOAZAxJ2AZQhI/Jkk0rdNFJsSCKPgDTgxFLIgcBVBAzSCDB6AUZiQSOYRHAksX/Xi81+i7ctsC4rpG2uMOg6CLpfMiwhIPaSGASawydBmyyFPHySME/wFIut5zoJyKHGsqAM1wLwNoINOzBF/ZRyF0xp17wU+ZRqggLqA7LD4sLvVRg4yERcMDACi6ArmwwpU5QyQ0PzC0SG4QxisASgqcMWtSiPb4I9FbmQ4xw0HaN08Myk8xNvLrQ+HSQ3bou0PqwwxwR+VoriuKsEkEsA6hu/BbQotENgpcgwrYwhcBBKORnh5ZhE0EsDRgAbnTy7Scw2xjyfwjH9boQP8DwXHjQwGolbqYHE26HAfoPWvaNzZgA0B4kX9ykVzUxS8cKz8wAAVgBMzMgCvwgziAgB7RAs5YghwEsv8qkjcYgD8DgFhYSdfgHSf4swOIgtI4RyaUvWt8Df9YmDYHwIGB0Z7BSp3t6RBfiaJvaoBdKLC2RLRkE4B5TIDyYYQ6gYRcSE0tWIQ5AzIgoxUHWAed+Ik1aMGosAQTwIEpAwBA6KyB7DsoUY2oeAMJeC6X+7NpkZUBILQ3YIN9a45YGIwzGEqiNIQK4AU/yIAEgARIoEfvvIALiIHpcTDjLIKeKIYHEAEkQaQ0aB8c6IADIKTDkkH1CRUoYSEsCESFlLIR9U92gqLm/KcMAJ1Pa0QwHLJlcII1iAVImEeQ9E4izYx50EmlyEY4iE1kijolMUz/Q6yTcjQRKIAoezp8YZmkkBEH+IMpeIPg4xNmQRH9QFCC9C6DMw0scAL/BXgAMihSOMUfnPshGHGXYUsK/JDBODokpyAJ51lKapMrgfKhAZCUnDLDnPoglsgPzjykOBo+AeCFN41TSl2tIIsZgjqXZxTKDWSXiGmJORCA0lM6SWktnMEXAEsIlcmXIAMERuAIF2FLhFuGPxOBBY0DAniABxjSSqVUK5SuRGK91nvBMvUu6oqYUDUWRsjNyYmw3jsAwMKXhMgA1AEKFsgpbzODxTA/9AOEuYCqXg3X82QtB0okAoOR8SM/8zOsF2ERZlmDKDCICzEBxYkM5SlUB6AxawqKfYOFleAIyLtIbxVXgl0t7hHFTC2kTQ2iUvTUEVEJQGzWDqjXDjgq/wAzE0P8ouYpigQwAzXwuRik1WIs2F5FA3zZN52CEU19xv5gEmMLwwFzmI4wA0YwAG2i17I6qkwqPMTLUkCYAkNgljnwx4TrUV4lWUrlDChKPdJgPUW0T/3zQjBjPQGQIOpYLgyZM4q6gEWYh0WYP6sCirYzBJXALsgTQ3YEgJxAWkqttzcIwhOqO7vjj/Ert0d0ildFgAAQgymsC6jpWiBwBMEFgkWQrPqLL4GiE23NwH9iBD/ghaNlW++kt5M1veYhuErsOW4L2KJFIUYIgwCAtIZwBHEoXdN1GiBIAru4i0Nc2jUgkUU1CaeKhUvcAMkt0kE4O3sTAO8LVrsbvv+WzcWxWgrtDN2DoIBBYIIqUARFqALTFdx56KLs+SLmMYQ58IjF0Fa91ZrQHdnb7RGSOYC2g8eYgQ1occY0lc6E2xNGiA5IQ14mYN4qcN7nhTYM8SLquYKk8LbACJ+PoIEwSAAFKIBX+94esVBeCEeY48gjUlmoUER02Tv0e0v3NRM0cIT4bV76LV0KOUHDpd6fXYOF+V8SToCjQU0Dbo+aChJPBEyFLQ0kVESg044xCgArmhxHWN7mbZrT/ZforSoJY2G65AiQoAEZkIEASOIKkJ41TGGeKIPESwqai1ttO99nTBdupbw4+qYAMIVpo4AcZt7mPV2nGQSn++BZSYPwe1PchUnij4CEJE4AALBdJ+YJuAmSCLzAforhGBY/qfXA04kFapqcQRAHMd7g5zXjH8bfoEiDKQARkEhiSe4EJFYAFK5jnWg58WVaUUTC4YthGAS60xDkXCiAC15eIphfMhaHQQACMy5cXgnijcqAWPgIJA4AOA4AGfic23METD5Pm5IuhKVDPu7jDaROyoMDEHIQ0lUEIhhjMi4D6C1c+oubZQERSQ6AEOkLvb3EtcXklqMUl7m3eysiIiIibTuMZIEF1mNnbsNi4oKFWDCFK1oEDBZjDUZkaTZjqPngjCKKCgihAFCAge6EvWViIg0IACH5BAkIAFgALBkAHgCPAKQAAAj/ALEIHEiwoMGDCBMqVHjr1sKHECNKnEixokWBt5pQoiRK1MaNTUJeHEmypMmKGTnS8dhRFJ1PMD/RoXSyps2bFm9xFGVk5ctPSHKEgmmkKKUmOJMqXYpFJVAkn0KFyrGjag6oY6AaoeSQqdevFCkBvWoEZo4cNWoE4cIlbY0dZ5Fs7Qq2rl2CuIxMFQo06g61E7h48LC2cI6s0ujeXew1b1CrZ6n2qDGBMpcgEwK3rcFDyZdTjEMr1enX7duqkyd48lSZA4+0HCYEqdGDhwvRuE/qpBM0bZDCPYJb9sClcg0OHE6wrjybAbPc0C3icomk6lrBv9UGGcx9cGsOqym//z0iLbr5iLgo8bY+gftlwYONYXCvenX44DwsnN+vUJr66n8FNlhx8HmAwXzGELdaZp4gNxlnEfAnIUFy+KcXe/Cx1R0GCQ4oYH0NsuYJAxOWeAsm6n1ClVqCEdhdh8StxR2D9k3AgX4l8neLfxzBcAQPqWUmYAdEduBdZtwZKSSDkuTIXxM8UmIEDC64oEEI4DXoQ5ZLssaWkUUuuYIVTp6HCy5QSuMLDDDYYgsJKjwxAhRQSEInA1eecAKXOHTQIQ6AelJCmeadiSYmbLaJyqIlWODLoxFE8MWjFqQChQrKTeCnB0TiMAEOMxAK3S24WIGLNBbAgIqqqaRSwqO+OP/qS6QgTMIMMxFY8IRyOBhjTKeZPSFqbnJYYYU0pyTKZgmMxmqBoxHcKi0zdUARwgma/vmpEMOKVoscFWJiASpuLrqoq47Kesokk4DgLq4ltLCCJ0QO1sEEIdTRbWjRgAtCrraYa0GjjT4ra7Tu2gACvC1kaiSnEwyxb2hySMEKCF+0We65BT87a6QRTKIwtRY0vByYE7gyMWPRWIxJsuTagq6qHn8c7a3uLlzCriffy0GoK99lBSusYPKFEi4EjEoqAlvwRaTT5kztzg4ruULQiw3NDAwp8MBDChpsvDS0N0u7cB112PFECKwBem8rWN8lhw2pMJBCCnueoEHS5ZL/PS2udURQRyqYxrYk3HHXVQvdMY9wpQYMkOACA5SjYkG0ZaOdayoa7OmJp5lxmzhY0YCwqrm2aKABCVCknmcIDFg+6ymR1uGLJFjWOIEPdowOlhWmk0A5niGo4EIqFtiySdfInZACFLJSmgrbC6q2AhO+e1UL0REwsGdyxUPPjAUjDG832LHD+qwKWYqoQ/ZeRUP0KZOrrkGcqPiCK/mQox459OlqBXgygwMfYA9+S7GCDRBVJVswIE62eNXNpheCsJWgVUt7VayeYLgO4OBqCFRKLYDniypVaQRPgEL+EBaBElwqfK1CHqVKoAIfLKkFIRShDZiBCqSRgARPSKHT/xA2tQu6qg4lKIHmbhcCHyxnBfrKIU5qcQgevil9qpoVzvbnC7TVwWy48oW17HMCSbBCiklhBTNSITkXwOAUzyobtSgFrRl8EWTVupYGVBgBxaDxJMBLnguUcIQjuPFykYqV+malRC82qnyWy5gtnvNHmwSyjT/iwRHwZIt0Rc8X0pBG7bpYAju06nJbYwaZKnmSaNhAkC4oZCEZwAMNWG5R0ZOGEm1ANFbY4JczGMGsYGADObCyJjZAheSQxjeDPctyzixBK+wwhBdY85rBlNUZj3kSOUhCeCZ0E9kisCaPWUASrnAFMeaxgXmgoQw6sIMQLmdMbp4kmQzYRAPFOf8r2/kCmrEqgSuyMI91ooEC83CDHXZpT2RKQgNeS8EmKueojiHvWaVcAUHnwVFHOOIFM7BBQx0qvK6d4GuRWxoumZYuIaxgA+3k6CCYIAUpjBSZdvgh5TaxiU1qYBMjiJOrLmoBV7yUox19QTRuahM7XHF4tmDToqw1Alw+S15ILag4XsBUm8wACuXL50StagEoxA6gQoApUokxCEV01aEjEN7wSMAxS6lwUb4QwkaR2ta3noQVdViU5Ejgpo3ZtVy+kJdak+rXkoyQh5ITm7mmqkJXKXaxZeBqY0cCrlOggnKGZdq5UEGnFkgTpjBFwzw+utmLSGGBz8on5ZI2WdL/0qlOdmgFatU609ZW5BAzMJobYWC3ic62sLYorR3skIWXona1bvXtRF7ADHHNknJd+1oKKPeEOLVAEsvV7W7n0VfpRkQKdngZDAi5PB7oCTmu+ZqcUrHcFhB0AxRAg37nIQ7zLsQhNrCDBV4Wy0J27VrBqc12M5iKtGXBFe6M8Dii61+DROMQUkgiKk4hXAYUsr16OikDOjmwgbWwFToYhCOqoIgb6GGpFS6IFaQwA0m0gE7IssDkPny3iK5ubEks5aVeSoEiD+IFq4wxFqwAXDtAobtxQpYDPXyE5Wmgx2MdmPpiKIkiFAEN4khyhaeGQhWoIAQrCEEIpAGCh6pO/6JXvpvqYndKgwW0BDpggiIUoVn/smJnxTvBCuCrpxBgooVnvvIm7Gc/BlTWmc+qwwxuQOkbzENi0k1bK5SznAmYwIOe8MEJMOHLFoRgeYv+qf02wTqiBlSeiiACixdRAGJsNm0twNSnTMBrPx3IBJ7yBDOINoo0x1nVqhsrDOz8LDtIQs9EAIMjCOCAedj0pjZwYStWYMMOmAADBzjAgTAwAHF/egJ1sAGTyxBEnjIackqDdAnsSAUwuHjaAABAEQ54TAXaYQTXYk0HMPDtAwxgAPk+eLkBAGwLqPsHL3CFnJI957ieK4YDUyIYNq6HYhAg3wAggA9AiEZ/5zo2OP/49oEUznKWM5wLDrfCD/TAhBaE9ac8jVzAkHdK+s5g42DQAxBykQsAGCDcAMCBykIY4Ba04lqaUrnCJdDyg7OABQfHwAS6eIhD/IAIEh9BmXPOgKpWShLPgkILRgF0oef7AQaIAy94ke8CbKDPifsqpj43cACEewASkMASlnBwXWB9ACzQhS6yvoJTzEAKh+AEzW+8KBQ+oeytlkSrLtUKKtxg41KYx8cfEIc4gIIXClgCADCAAx1QIW4z2DZ4cHCgfAs+8IFfAu5ZwAarO2HxA+jAgKlAhR9wghMvoLylngDUHy6tVSPYRAgkIQWOS8ENRSd96eXOiyUgHQcbwPT/sKRgVGylvPYHEPwBdC+CweteAonnPe/Z4ASs+4AZNqCCFPRwfD0IQYWVAgXCQ1itIgmO8zyj4HUz9wIxkAtwB3dypwAKgHq8EAcGkHRZIH5lUgyNoCngFm64twTd536DVwFLcAVRcAVsYHhXYA9OMAAYcAL4B3THxwlgIASat3kWB308BQUzoAc/YHxSIA5kAAAPAIHbBwpxMIEi6H0AUGtlUCYv0AjfBgDlJngkKHgVoAAV0IVL0IV+4AdXoAtO8A728A66cAA+MG/1BgY1+AM3sFB1UClVxTSOowEtsH+SB4R6UAZF+ACmYIHbN4EVwAtdWAHtdwAA4AAbwG8S/zIPDpBvJKh7JTgAgyeBsdCFCWCCInAFv2cPZ7h4JzAD+vd5xtd/L2AHc8hGlbcJKkB9/LeHegAGVUAGDmgAppCLpSeBWyiBEth+EqCIjDghTBAD+bZ+IpCMEnAFyZiMW4h6frAGYXgFS5CMusAG75CNi+cDpNh2nOAM/TcDpeRkKKQBT2AHUnCKnHADW/UCi+CAcRCIgfgAoCCBoBAAEhgA+liIuqeIEDAP/OEGHwcAhoiIV8CMCeAHzriFkOAHGeAEGRAF7TeGimeG2/h4egCExgeOnPADYJCKLdBdTyAEP6iO67gITPACe0AApAeIpgCI9YiPvjiTEzh3FkgAAP9pHgx4jAWpkJ3IAszojAmQALGQAfYQkQp5Be9QhqE4AErHBDewfxmZkUF4CFQgBCjUAhhZgzUIBotQBBRAAHGXi2RpCjFZAZtYAfqoAKAACpAggUtIdwXQX9DhCEUoeLyQAAGQAGvgBGxwBQ4ZBRngB7HgBxWwBnMQBVEQhlFQhmYIiouniItYABBAAcRQBkyQklIwBEPQjUDIlf0HBAJpAAbgkmTZlp0QABXgB0M5lL6IemzJhIpombmxCB9XjQqgl3yZARG5Br4pjYXpB1GQjU4QhkZ5ho8JisjplywgAQAAASvgCnk2BIrgjaApeUCQBGRwhGWZi225l625ljP/2YW+WIi8YAAOEIWhUYySKAKaGAt96QSCKZ+DGQtEOQe8CZFOwJTK2Z9n6AQiEHIA4JzgRwwplllBd53YCQTbSZadUJadkJp7yYV6GQD1KIFzN5NLeAAFoJ6LwZ4HUAESiZaI6YJh+JtrYJ+xMAdT8JAQmY3vwJsZIAD9GaMiUAAphgYFYAJPuAE6UAZb9Zlc+XVJwKCm6aASupf2qY8yGZtt+aRPGgcAgAahAYkAMHjRmJC8+Q6CKY27aZ8JMAf4OaMZEKOK6ZACkKbI+Q5XMKWYyQRlsAEF4AAOUJkU4Ag3YJJwCARG2p25GKH6OJRMGgARWqgX2pamZ4EGUACM/5EFVDigIqCYayCYZxiRUSCN0RgLsVANMiqm+bmYgsmbNfqXwmiZZVAGg4AGEBCJT0hTGXkDRPAC8wAEBWCBZQkKpiChCLCXgaqPhRqhUYqopImTi0EMBGACVDcAoVqmxPmQEcmXmloN+ImfUwCKS5kBvjkHaToF1ToFEukABeB3dYcGOlCuWUABEHABZaAIQBADBFAAFwCJcfekfyqhRBmehAqoqQmlbTmWU7oYFLByBweYGdCiLZqf8kmU1bAAK5oBYqqmlcqbYgqKNNqiIkAB1lQGOiqudbpaQKpn4gAEixADCFUAuIiaDxqhrRkL4BkLYUCoMBusSqioBnABi/9hjAOKeIq5n9koAPspn1EwlAurqYiprTUKkQ8rANzaoldAADrwAjV1A0wwCO6ab+9KrlA7i0OwAcTgACeLmrh6j0QJprGwAHr5q4bqnTO7qIsxDwnHe0vJs4/pl2wQtNEqrdqaphBrrQW7tEubAW1aABQwU/r3kUyQBDFQhNT2j+WqWl5br52gAINaoUp6tqDwq7iqtjNLAIvhBjkrAZTqgmY4uu9Qt6y5qR9QDdKaptSgt9a6tHq7tG0qlhfoABSQWZAnBS/gCHtQAGJ5AAQAAWjQoLlaqL2qj7sKnvYooSmbpP1KrHZxAVa4jGVYrQLwDtUKit6qmIcppt47BbD/QA2tS6NLaQ/cqrRK26IVgAZMIA7z4Lu1O7hZO4tM0K6UiQZiGQdJOrnI+7Jh8LIBsKsIQAO/yqTbBwAUcBfG6Ikx2rfm+w57qwvMiJjdgLewIADUcMGuS7HnOwUCUA1XUABMULgvIA4jSwAobHeZ9XkvwASqRQC7OKi9GgZ6ScMBYMO8GgAycLlKupYWSKV2scAw6rf2oLd6y6WsKa1TwKL2IL6tS7HiKwDhi77cGgVLELzzkFn1dgPsegEDuYiVOQ/5JZY8nADJG8D/q6ksmwBhwLI4DKgBoMYWCgoGAMR1EQMG4InWyggePAVOjMHUYKJsvACry7rjC8hRHL5T/zwF8kmaF4jFUBu17huu3Xe1ZKyPbfy/bPy/C8Cwm7qwQykD+ni5ndDJC0CoMiADdazAD6CU1oq95wvIygALS8maCFDBeevEf4zB2yrFGpwBB3ABqVoAuTCs/wiVNUUFTEAMFHABwgvDoICWmvq/1IwAasywZju2u3q5onzKTKoAwXwXZJDHFBux6BvFrcul+rgADXDBTqwG4xvFUtzH2fsOInABL+B59XsBvhtytksMKZmxqlWr+nvDCLDJ1LwAYdDJKzq23hyhNHDGe1kBq2wX4ywCTtDENKqc6AvINBq0AcDOGqzLJO266eyCbQoBl/kCN2BNXUwGYplvddrM8/8wzjxctgyrutXwyQ670ypaoW0pA21ctvZZAQeQwHVxA2QQBwnAujSqtEWMyMpAo4MZxw2QpuFL0ui8wUWMhgiXbzhgmSMctRobroT3ru9brwiw0B/gm5pKyPiJor6pl22JALuaANUwlBaI1F/Rh+MMCR7s0ebLy+KrDK3LCLbcAGrgzoWtBobtxLAAC1NwBcKIA43QCF5WBD6AAw5g2RlYuDdQBsRwAc2MvzDZCXYdBqq7Bgqbt3Ogxgvtq6gdxz9tgTYLFkSQBLnA1Igsz/EMz4H8DqwdAA2gBYstxdSgDMqtDGoAz5IdfCeQQqkgCdRd3ZKwbSvQCDggvJfJBEP/AKdjbHoRigAosNaqa8rSCguvrdo7zaSd8MlgGgB7XRdVIL0GUAEzSg3NLc9SjNzwvMRmvACO/dgDvtzKLQABWgStAAUF6GzLBV7o1ApPsAKsKtPC+8ziHaHl3ckLq9BhwKJzsLAVvKT3uKlmy7AWWtFfYaS8IJyBrcuG/NitOwUuK+Dc4MQGrtwZzAhJtwIqUIc2JnYMbidiJwkzsLtefKXOKbgEwJY8XN5rvdALXcghPuK+GgBD+7863AkGkJNf8Y7rdwUZwAhzkNV/rNVK+78I0ACGzdw5vtxsYAKiVkFzgkKtYGZxEkQhcI6jIAVUMAQ6sAEQQJlhaXr6iALl/00DnNzJ3dANAlDl3aDQW44A1bDQkh6hBuAIYFEFxmiIazDmc9AN6IzjOt66Ffy/3VDgBp7cU93jejMCrVICEF7dTqcpHoRQeZaZOhCvBImaMoACEb3WjN4A3hvq3aDlnaDoUh4GA4zpfM0UREiQ+C2x3RC+A17YJK3emirqOc4NpR58c75HMbRc5P7gK5ByOSuMEIBfG0AAhgjRwI4Apszo3QDpec2yAszhlb7ND3DbXqHbBrAE0ZiNSwy+sADPb/7YIR4G3G7gpPDwymAPSQc+/VOA4FXudjADMwDoGysCzWkCgpsLqKfhnQDlzE7IjS6m9f4BAozGUz7NnQAKuf9gx0zR6auprdhL5qGe1QlPDSFOyLCg3N7+8NzADbswACYwAYLm40+ACjYWkq3QAi0gBFTfCq7AmS3MBGJcAPdLALKdmnYt7Kpb7zvfADsNwOZ93mwc87nw7EpRDNvp6X3LrRkw9pHN6qtODRVc7ULPDaRQ9NwgAEmnJyuQZipQJ08vBFIvCULQChOAAbfuo2+aqqInuYUa9ruq095b7RVMlDes0NIa6QFAwHEw819ezIboBzhvvhlQtqKu6jrO3FXO5kNf9KRADSLgAKJG+LCzNKaE8c5WBJF4gs4J8hSwARfQ7luYr6gN0QvQ6GQPC8ReDWfMyQ2wAGEf89Bb8wD/EAddOPfdugbV4Nh43/c63gDor9yksOpLUABFsAKCpmYaMCfTTd0xRF92MLU6KpaEBxASCBSgAEBEggAIEKBA0EkhggVzGnRrQA3WnA9hIC5YQLGBRgQ0OoEiIA7LSZQpVa5kyTIGAFB+/DCaUlNAzTlzYCnjSYqUMlKECPFUpsYoUFLciFKTgMPHiRMrToTQoGEEFFdPtG5ttcJVGSZMygzaAMFBAQgFD4JE4VDhggYSG8DqhnPB22qwGnxUKEOBqQItBQ9uqYjMAwUJ/GSY8u6dvSk3JapRxm0oty3sthD6SdTz0gFOpYYgrYGErVSoWkCBggpKqwkYAJjAASGL/w6wYymgMVghwG8UDN92hAWLmoA5a2JpXFBtb7duIEc+CEzYOmEguQxA8rPmwxTGkYvnpByU0Bb0Qrl19tyZGrUBHXxInVoadSr8duykgnKiAwAJBrhCAgAcSGuD3QBQLpYFAghOOLjm2omuBqrhiKPnuuGIht9MueA6EFtaJJc4KvAjivBgEUAAanCChbL00vPpMxqp0cWEp6CqzzT8ekzttSzmQaMAAgBkgQUJDCxoDeU0enCjvSpSg0ILFarGQoo4QiCATgxAI0QwUxqxxCjKRLEa8Y4TwDhlhEIPPaU8M4oynnax0YQJooIqBB5SYIAEVFAh4QkNTvAEBxw2IP9mEB3IMmugC9Aw4IoMYklApE4Y4qga6HiyCDotm7twy+C6/DBMMImI4YE4onDiHSecmGKOKYp779bKLEuPKDrf64modwDIc0+oeNCAAQ08maADDDA4gIUBDigQgnkYJWaDDSIFIAPkqmko043ggkUpiyaysLk5nLtLoQBAMWADVMF0hEQFMoD11VlhmeI9NW6lhhvM4MyVmn599YyadzBwSscTOOAAKg8wGECXAQAowAEADhBBF4pnA2CgtAi4wh4BMnqyub3U+EmNnOaADjq6NAyJS3e/jBfERQCIA5IM7H1HPBYpUypOoNYjmmga+3UCABw8eZhhTzo4wJ5duBH/AAAK5pkHQSIPkPWdAQYqyAnJnHwrysqUoabll1nUS8MGE1DAy5tBvEDnxRp7rCaCiwbKs6GIAlhtg3lFmOkJHH6aA2MO0OVfQmDx42MHKNhAazQwBqBAtKbe5aZquESBhua6UWPwtaPci5pd7FzbwgQSoLtuwpIgQ+crXl2RxdapqfFXtQmnUxnXPRXACYUn8MRphzsYQADL1ltbgcVYkJYgRRGEYHuv35viA4U0nQvgnz59eS/Xb81pDQXKoJ2wKg6jnrHj/PV9qeGH95RGnowS4AoCIEp5E5iAMQZAtfMADBYJGEiReHEFXUjLATigwAUgcAECHIBF9shAGITj/xyVWUYZK+oGp85wwtXtoijHmYII4PU+wSRBOwq4woq40br0qahg+/Pd/Y4TPB/6rl9XmE0HPBCxidkDYOhR2xwWQAA0DGIQQipAxq7AhgEoCQIEcMJxMnAXGiCAIrniyds0VKG9OOdWdhJABhwAQ8HsIRe8WAPJbnWTFfnKfu9RYQ9ZVLi/3WppB2jWAQmxxM0M5XUJsFjWiEEMIV2gAJO0YMam8Lk5gESMDVBZ2tZEEeecQQta2IutqjZCA8wDjiw5jB8iw6IVvfKP/mKR2gAGMFzViRt6PM47oPU8N22BG5oRZlFc9gERJFOCZ9keWrinC+h9bg0LgQgnjWYRJ/86pwFaIMUotbA2nRCPGk6oDqpsMANmSIMlxQAALzJAst0JAJ67U9Mfc3VDNfFKhcECwBUekwERLGEA7zgPO37yJk91Yw68mCQADCCC3B1pAAJJC8aucEMBROdspyMXLDhVSi3cUil60YlFpgAAYqDKFQ3jgQu+oM6UXGBSEPxZPOOpoinYkSeHJJevfsJGAOhAByJzTECXEAXMDG0LM2riHBRQAEVtjQIOIIAJBkKQC1B1Cb1z4l3gEtKVTUGhFCmOUQDWL9WpSBflvI4QVsABT/SgByfYBCpsgBIgEGAJ78jdO2y6O1n6iyfRA6TadAGALGQBA7p4TBSWAKBbkYL/HZcxnkJF0Mh56IAYQhUqBSgAAQAswQmtU4ZHwxAGcS0lj5RRHfq4cZEG/NEeAADRDFQAFQ70gANUYQAU6oASmeZOF/aA5zznCcvWES1w91PbgACAgQng4IBquoLXWBSwW/YvZnPwQ0CltTnwOkCSBhDtLoqZrjCAkCivNI4azAUd5xSlOKsTAAtONZghjEZxVIFCKiRRgrtioQC8eJUTirs7ezzGHvXj4y4rw+Cq7cIeFWvWAZ6HQwnbkRDsmCzS1ABfBTQwY8ns7gEIAIECGCBj0BuKAK7kHC0QRTISOeHbvBqX53SkGhkgAGHsoCMeNGy3KoCCfuwwA1YUQ68s/zAwcUm2YHnSc5asu+UsxSmAARRywa0TCiGOY14OF3Nwpc3JB/wAxWpBch5uQAMaLuDZrv1LmLPCECd7OBGPbFMZDfAqyvi8kVgYAAKCEcKeeBACIYdABU+QhB0azYpxZCyJxT0wPPnoqd5ZWU1TGMCFI5xAzHCYw0pJSmc+rKEP8KJAWWOUZufhWdBKoIYJZNlHVVjGlxHsKGq40IW68ZAExKICFGiJK55CGtI0bCqLboGRWSEOEo3MycYlLj3r16/PzbJ4hGNdlzEDZlETc6nrUdt8F8DIA1T3AOuWgASJFIU5iMAJb8IkJynDL+jopAF9dFk1UHtGUfUsA7RVyf8oWuGw+iD6YaRphQpGkIoSzOAkMdhOk6sNS5sKVm155KWdqmYZ9Rxyw+Empk9QRxeOhCEAqiZAkcBLAAMRqeVbFeYuXcbJcp9PL7hckcs8AovevUcAFbDZSUaxAqfVJwUhWHgIVqCCRadiBjOIBhYW8QACOxmWOX2yte9oR4PhM3rREznJ35SUMbsXVAv4ACMpsCgpTtGzn83gFaiRHky+qNxyOYMaRkmuP378hr1TETmHkIUyZMEHy1P60htGmqc/oRX//S0WbGcABSj4uPNU03FUZEccDnZohEjuITOTmXDD6ZC8ynEYLNZymDtA9sx0wF4F8JjTe3lN99ZLlM7/sG+RL5H0rdOCioqzossSsgPKg0oKeHBohZ8A6k9oQSr0I/GJY/2dj4my1ld0XLLt8V9cPiQOzzPy1G+mmESxcTUMcBYCSED+zzqAgRxwgCW0mwW7SOAupnCUmNkLUWqAWzo/0qOG4iulWwEYCVOYpOOTpUsBZVuBFZA8ISiBErCDOqg6LMiOOBiZdziOabu475u2wFtAFSrA83gTYhK1BGIP7cKzFgovNNgAN7sgItkc+ROAN9mlF5kvUBIlLdgMzCi/G1KDPKoa9SMEAZCA5fOE5nO+FCiUh6HAFWiFJziyqYspxKAU4tK8aoMnWFGweGIdDAO5N9mwLkO9Dssu//abiIlYA4vBGAfgmknaomfhmAGYglDTPbmoEIrwu5BKj8FTioIxr9PbjGDBgcQ5gT5JAUgkjd3SgFaoREaLOOw7iTGpgCazuGl7BzbwROKqn8EjP/VLQ5FDPZ6CQSAsoUBDC5eTtWm5GABgMgnQhcpIIOTIMXGpmg1LD/UYrIIStS3YBRagjaR7vufbBA1guhDQihaQBChothkIMJSguAqglHfyPuKKFTC8ODO8pVMExlQcOWEqNU8xowtJAHa7HmdCMQAIQWXIgCsoD2GihrXriClRQvQgRmFawTALM/hAxod5PkicwsfTgCeAghKwgEarvJRIgnZajJ5RMIt0jP9X0bzd+biQS4/JcpMiZEOeMhwK0ZKrCqC5u8P4W7dYOYBuWI/MeK1zuRLj0BViFDn0MztCiA/lWbgU2ASg3ARDmUQGQIUSaDRrTIlVKZG++kTGsodYMTBYWqNuW0ED7DKsDLfVK6Pem4i7iAMV+5iLWTf7MxACYDL8k7MDhI7nGB8WJKZhJLkwI4Rj7ElHDIEp3IQUgKsaqAEO4AES8C87aAnbwTp/+sR7iUqNXLD6QUQ3CaY0TCRiNLVyiRILqYY5AKglWLfHMst1O6B3WLd9SSRlEKsG+D0WM7t+lMvUS5ie/MtHZEam44Aa8IQQGAFUqEbBuADt4ETHeAwn4Bj/xvpN4tIFArm/d+gdoeC/xwymLiPGOJmTrrSQECsANJgHSPostOinZ6EGeyCQJRCALrOTWskVNvTH1GNNdtiF+Igr3TLIqtCApVu4EbCDUSCMGMgFUBABFqCYTus0xnoV4zQBAymDGcABCViR0hOp5aQyN3FBpFFHBDAA69SabHEAAsWglmMBe9AFFtic5AxG5KCMYUQ99VPP1CMEXcAALqgBuZqrQwNKRIO+J8jEweDNOMg/+ZO/X5IA2igClWgEABiu9yjEf9mlilEiXflFBrwfG+OIAFCAA5C/TvvQmMugikm3zRmAqtGM19KJgCFGzUBRnQQbY+CCIHBR3aqP//o4NChIysFIghgoADJoOcoxC2JjiYKQANDDIdZhHScYACpbojAjmuKAr5RTALGcJBygJJGxhw81iM3RIPOqGnBSg/MkU7lMQyzDAGPwgBatTYfpgb6szRZYJcEoAgA4oCnDMNMbScsQNXKhiHy7kgYhAOy8FrMgUNAKwV0wMQnSq3DcBboYF01Nv0wVCnnKMgw4Ii4gIC44Ig8whglA1ZbY01Fco+SKsFI8pEIlheN4GbjZkvdzuQGwHvsDALIJm5ajKnXlP8uwiLzIVDLtxxghQnzq0E6zMIkB0Dey1pWYBwDxqynrtlviVoBBP3Lxyl5DgFjYvmiRIHicUiuVvf+WE4HrajFOCbVNTdE3SSRUPCQzpKcIEwC2AtiTcIOBZUzW4Z1StAzmjNVCLZe124jMBCB4JIgCMIFVrViqyqAQbZ2LqIbTOdZx/Eis7DI1SbB3gKbWsYceQ1kxAZDhsjQzJB7BY1A2LEbz4TMtiYU1iAKswQHa+Cxm6U8CdbkisTv1IFZOGULW3NrIXMJEild5cgJe4IULgwUKldqYolpw1NaDZcDnDLMm4pSajYjZQpQOoKCLOdf6+1mXo9S2zSgC/FgTRVbIPD+QwyF7uAIRWAMnkBZV8lvgAtxsncrTuSeeEgqttDlatZD06gYsa9zGpQCZY6Yc5Nm15TKMygn//jtPYERFkPW28SxB9ola0/3bJThM70vCtBE85jRRTHoZ2f2AboAFH+0AAxmSC8Ac3J09d6XUCKs1AszJNUyk4fPF5dxWNcHbXIiB5V2JuxGtEczWYQ1HspPVWIKv2JEdkIG163SEMigDR0ADFJs9O7W7j2sqWPhFzUja8sMwP3Wd/+GFlpvfllgVeQNDBgs7fEquzSDGbIuZBQgD6pgHR1jheYgURxAHGHaEVzML8W0nBMInFztfmI2tDFAOSADblumZNeAFA2i5ArgA+dVgwXgJ+73fgq1gX+TYyeqlDLBVBbiAFxaHKnCEC0iCQYBhcRgLBL4YBX5XwUOONSDA/11YAvHC0FxoudsxgLD8mCRW4uu4OglwjO7LoySkMo/zOPT9HHtIl2qIhTi4AHFQBCIggnH43iyOYSFJYIvNGKqJsONYA8zMgJO1YzjKmeatoRHUNjPcVvMb4SnulhN+KkeogkUGgu/9YjAWB0fQHvEtEj6lhuG7PSbhMU4G2Jx5oAywuA/24945w/Mr1IxK1AJwBEVWBCDYg2pRhCoAYxl2s0ma5H7yRUFOjjmIAuXtZRgS2A8kQycTuiRs1Y50QXy8iyglACBQBEV2ZRWeZmoGAjf4rBgo4zzGMOT4gHfShX8F5/cZk8W4X5bFsMa8oTWETpSTGwJIgipgZVdGg55VjmhqHoQ2u2bZW1VdQOg2WoM5EIDDKl2BvpkRqRetI0E+GmVSRsNEZIfX6oY1CAADuIAqiOdFAAJmpmdqnodFkKSf1cFK7p1ZiYXkWIJNLmkwmVOXy5h1UzEDWLcP7JkoSADlMJEM4K4reLEXW4MKAEtcVYQbuIFx8GJWhuebfgEiUARxAIIW1mgHcBZKuYIKqGsFiIMHULH78tuAAAAh+QQJCABLACwYAB0AhAClAAAI/wCXCBxIsKDBgwgTKjzYBFyThxDBLZxIsaLFixgzFgRHSRSdj6I8gqT0UKPJkyhTKgTHj1LHj3Re0vmEBMknUZQkqtzJs2dClh1FGflkhM7QUKFyhEJS9CZJn1CjogQ6FEkOpUlz7KjBdQdSpUz5SR1LdqEcGEiyKv30dWuQIB48cJ2bw0jZu3iX1JKjROuOv6E+0dRaY4LhuBOCcAlSIwWMUoHySvYJTo6RpFu77ri6o0cNT54M1/DMlUMNHkdclJrMGqWclnRCuX3LZXRnroYn1ODAmwMPTzX+7kDVuvhFK4FEsc1RgzYXxLifx/VgGPQJDrqDM4hsvLtCOYFmJv9tPmE6dS4TpJun7on3597Evcs3KKfj5dnrPaj3gGG6YQ6g9dZefPPNBw4mlIi3QxCG7affdBj0h5huE7THW2g9fFGggckJJlth5eX3IIToNVjhhYWhotOGxgGlnFVbpRfXYlyoV+NzDfpXIWg1+GMDi929FpJgSBzBA4CGKVbiczeWmF6IHeTmiT8lAGlcSyF9ZAQMttjCgD9H9tADByeEsMJ1AYZmWAdstjkBByNYWVx4dOBECQx4oqLnCCqoMMIIqCBSQgmIoDLCEyqEgKQHbUbpQwtyssaRnS7hCUOgmCLyRR11ROApM55G8EUJI4QQWqMTrBApa3JcIwo/sF7/c+mlg47aqaihMsMMJsyAwEwJT5zgSaOeILLqZHUYQclrgViAii161lrCpnV88UUEvYIAAqd1kJrCqWx6IsmxeVkRASWwUnKNnrbAgMi701or77Xa1svMF6j4o2YH6NVBLl7gwcpPKexCi2mg8Vr7ab2+foGICkhG6Ym//5Zlgw2B8BPIunp2jIgF1sZ7zafZanvvw0j+92PFZEVjAyaBBEJwlx1bAPKo13zhS6clm+zLw8JOEOUKcrBMVi1SYFxKKS500QXN8aJSggW+jKwrw6D+rELQhq0AgtFkJR0zDDyUnQIDgGpqwcc6R+Arw576ki9vufkI9lhJY2IBAzyI/8lbCAwYrOc1dfTsawTVjuDPhRP4IMTdUoEjBQgRoNIFA11oEMIJJ6TwtNMkAEp1r7p6ai0qaIK2AhWQQxWNFRfX8azBfKaggQtdMqBBCiGE4GcJhSNurSSmguZDFiu3vhPSF4OAr6F/IuqPBtCuq/vmHISgwQg3b1qCCqB54sMQyvcUza5yYOKLl9dxrj0DLlxTyrokMFD/5QwwEKi84Ie2QvLlSwk4IoAJjTXLFpuwnQZUoAH7faEUiBuB/VBhM48NqgT6Cs3jArgTOYCggJjABJe6RIInSLALqPAFtkAgiSfY7gmDQoQkBlUHRBTPHzPg4E6s8MGYXcMWuHPBn//yZwsLeMpXJZDEoZ4ww2lxSxLC8sQIiqbDlFihUzIDIuhsMYL6pRBbvYpArTalq9J9YQTXCcEIAFhFjdSCcoFYn9Muhz8SIAKMpKsWz662rTqMYHtfsFkbU2KDCGxMi6AjAbSuha1GIm6PuuKWnq7lCwtQcZAa4aH6gNi0/BHxgRHwhQpFKcpQklKU1kIEDFR4DTZi0iKwwwTBXNC0y6WAB5t4WhEDScmdiWpe00IECYzIjGi80iQXYwYiaOlJBiRQdykYps1U6DY5EJBTJZhBtSgYgUseMyM2AIEFmlbLLpDgaTazQM5QETJMDMoGcoDdxWzAKXh+0yTRAAEqaNn/SUUGipoRuIY6R/WFJwyhDExIKBNewNBRWOGeJ7HBsy53ThJ0jJGeWhvIStACHcxjHhvYAAV0UIYXWKEWEEWm5RiQgk2oIHDQUicpR7VRIWThoyDdwDwGAQaUplQjNpCEC5x5y+y1VH8VtBbIrjGDLAzio08dhDik8FOTWGEEoINmCra6icCRwE+CGt5NQwrVMhyiqkCVREXxBz88pfNP8OLoTXO6U0UYE60YAccMFMnWFBwBnamkGTuFoFOczkMHTLgrXi/iR1t0QQme/Kst4FUomn3BpoWFKhOouliLgMN5iPwczQT1LqhJYqw4HQQTwNDZisAOEbLCnC4N9q53/3VMakJYQUgLq1rOtlYhsUQFDK6BOcx1CQZrs22hDMVR3ZJ1Hgj17W8RMgpZNo1LDMwfCgMlwz8ZSgiSaIFzc9rb6SbECqOQGWSPkL/d+dV+FgXUCFrQgmy2YLchRYNqz2reg9QBZqVQwhGOsNVblo3A+RsB1LQpXvxugKTS7a9ARlECjRlhwAQ2cJjIZLu0Aa8ODc7vTsXBXwkvwQYzEEKFAwED/B1BA2XbMA80YNGEScIfWRApBXYs1RJP93UpbsETLLCxlRJ1q0fyTeBkai1fFFQIxaDAPNAAXUWYtxbRkMIohPAEf/gjBKgIBCKwqrsEapgHZ6MgQTc1gxW0YP8Qg0CoIsDgY7y6DMUtXMGZeBPmL7zUmQlMIJq3qr/abrSFWcgCBS5AATRs1s5AbmGiFAWaKE3AFoEAse02YWbbFThw3PXeDGZQAiEUYccPduUxrXAIKcxAEoniXKXZZAI2jSAQNsAgpzft3rJtQpEf694XRl0GRVRBEQ+GqBWsIAUqDKEF/uBaXDqAgQMAAAAY6MATbAC7FvCpTxrodUstmk55DWoUL7iBIoiABgfMg3yYZDap+bS4YZkgQvg+wACaYW0TrAAT8Xw2AxjoXq7abwTBtlbOwssEY1fhAgAwAQXKUMVpgIOepPoygDpggnsfQN/6HsAAJCByDBAtnlL/oC+fCt5Ac3LXZjmzwKEaXoUbJOHaEYcAxZVXC9glEdrCorW1ARByCRhd5EjHgA8wwe1DMEEIQ9xEuLVr0doGGxVPmAEYwHCDQ+jg2gYwQMRHCjZWa5lUigu6xz8ugQOQHOlvZ4PIDzABxFnhB2AQh7dDJ8H8kaDqhkZFn2Zwg60fogwEAEDYeWFtBxQhCxU7xChGIQkhiBc7HMcAzg/A72Y0A+kiZ0M55D4ADJygDlQ4xA9+QASohy50fgf8uySYghZIYetgkALiFR/2OMRB7CYows7lJO/w+mMFw+I4zvn98QPwIg68SMMVRH4FFrBB9KVfwQxecAhOcOIHTFBw/6DUqsi02VZ3LajD7bcuhWIkPuym8L38I94IyAPJCs8+PubXvu9mSMDzABgHCiB91scGTiB6TlB6OkAFLyAF3scJN+BtHyNDhkJuzkIC2zMDUnB7hdd+7/cABkAOIkgOCiB2AOAAEMAELJIFPtAIQnNv1TYAIiCDANgMaSACItAMFZAMGcACV5AGLFAOTvAO1+cAL0AFW/cD3vcDLyAEH0MoCiZNXqIBWScFh3AIXCcFNwBxihcHICh/YPhxwTd83TEEjUBr1yZyn5eDOeh5FeCGChAAyZAM1ZcG5VAO7+AEo4cDVEAFhdd93ncIL0BDSSRDF5iBgPh9V6gIMQAAIP9oAPHne+QAhrzgeRG3AS/gHfPgAJrndiSHgyJwBSKQDBVQirzACxWgAAoACXP4g1HgBEOIDO/AAhDAUH/4gD8gedr0apjCJ1mXiIooBVVABo4YgqYQgiIoiQpwiqfYeKpVHDcAAZrneaAYBaKIg8mQAKlIDgGQANpYAVFgjVcQjk6ADMhQDixQAAuFew/4faNABaQmCc/CdxqohA94hYcwjMUIiQYQB8moigApggoQB9aGA2SIF6MwD4nHeckwijgYjtYYBdmoANzYjRUgihWAgxnwik4gAFHAAg6wjknYjj9wA5T3JyrARFKweiS5gbrXiI9oCiM4idCnigI5iYz/dwAEgAaZmBeMeG3NgI0PCZFRIALb2AkBUAhrsJFRUIrJ8A7vYI5YkIcEUFJ0pnrfh4tb5m2SMApYSZI34AgLtQgEEHb9aAoySYLLyAszGYcBIIKVCAAFoAN5AQTEeABXMI4NSZRsYI0i4I0B0I1LKZGleAXmeJhQCQBVxlDrVni4dwNDMASTt5Lt+IA3sAdV8AJoQACPCIkjGJgBQJEjKJoUuYz8RgAboIJkcQhcKAGhCIrlQJQsEI4ZkI3emAFrIJGkmAGIKZXIIALWNnQEUAA7hVAvoAgvkHuUWZmcAAaLcAEXUJbyN4mT6JYJYJOnWJrcSIKn2AxySZdjwQR3/9kMeZmR2JgBGaCHRVmbc5gMS5kBCRAFCbAGhymLWIAMWJCfUFkOOHeC+iUOALpQywmWSbAIBfCI/vh7NRkAFRCagSmanTCT3Ml4JwieUVEG48kGotgM8bkGTpCe6LkGa2CbIxoFuDmHaxCVsoif+Jmf6CgCczkPF1AABICC0CUOCwWMS0gEi7AIjQiJaPkAaEmCgZkAoGmTbxmh3KiK0GdtFCAVYIAGd1l9V+CUGZCHQwiLEnmd3oiiIvoBazAFH4qeUzAFLBqOFeAAJaUITKADaFAABQABEMBjN2CPnKB6hwAESdCIkkgOQ1qRRhqHSDmCStqWvmcAVRkVdkmM5P8ZBeVglAlQjsgAi06QBslQDWtQAQkwh/O5lFA5BbppooxgpsiAnlHAC8MpZYPgCI4AUhQAAQ6AglVAZ2AwDo4wDoswDzEAgkM6pJ2gioCpANcZhwoQoUqaoPM3D1GxBwQwjePoBBA5qu9gouxZCIygqd44n9WQAVPACIxgm+7Jm6V6ohVAABBAozVaABQwCCSlA08FBFVABOOwB2RABhegqw/wACIokzL5q6DZjdcZmoU6gvFnlgbwpFDRiABAcs/6Dun5DlOAntBam/OpmwlQCGEQpmXKnsmglIwgAALgBIxQm7xQiy8gDoOwB3DqAAVwr4iVblxHBFUABIswCLv/ipY4Sw6dgJTaGIfY+pYiOLCT2HsGAAHwxhNVoLAjN45RAJUqWqofSZgj2rFGmgDb2q0Z8AHhmgEfG7LsmaZlcAMbeAPq5ggqO5wxUGWOSQQ7daAGkK9C6qeBGQah+bNM2gkyUKgFe4wGYIQ+UQYOkIZ3qIds4LTnOIQmyqmYWggJ8AFhUA0fOwVzMAUfgJveWqYRWw1h0JDDqV+ZqZxgoAhAsAcxwLIFEAN7sAhUVgD96Kc4i5RFCpihua86q6Q5K5NxQAAWuhNDsJAScAUGmKWIiaUUa7Wai7GP2wDdIAAbywgfcLkhCrkZIAJySQDW6wAXMAhzdoVcpwiO4KPD/3mvrMuvQoqWO9uN2Qia+7qzQqukYqesPQEEBOB211e49SmVUAmt6fu43RgGYcAI3TAFINu83uqtkOutpFiLilAGPuoA6boI4pCcLnkDVTAIUsa6+2q+prCzMvCgbjmkFKmk/xqhYocGPjEPRHeHwfu0+YkFU+DCTUmRARAGCOCNhdANywsHAtDCAjAHBSzACKwABTBnHKgIKGugcFoA/3ls4kBlDqCvnbDBG8zBRTrC7LuzIigDCBAAMpC3YrcBPoEGRJeHeKiiLXwGcAAH+VmbDooACxAGVjsHZ3AGAgAHZSoAZ9ANl8u8kssIa4CoEDBiTOCYFAwEM2q96QoBi//gACEYoSiwsyjwyDwru1ass1pcCA/6e/DLExAAAM1QDueIpZ/awmrswh9gpJ2wAN2gtR/QDWmcxlggAMo7slcKsd2quWGAqIlXo+sqwRw4s6XLsu3mjwEQxRx8vtnKuKgcmFjcCW6Myb9KDgZgwj3RiJ9sjnnotPn5ymnMvNCMAA3wAc87qjvczQ0wBz5My1zLCNVwnRdQBShLAQ4MAOY6DxEstmAgr0lwAYvcj8aKlOerzIAJmNActAiAyW9JkdPsEzf3yVFpuLaMBdwsAOw8tw1QwIwwBxINBw1Ax5OLtevMzoWgABcgtrfHBIOwCBRQAA7MsjXrCOLgCE4cggH/gAAoQAM0sMXdWAhzqMw1XczG+q9d/JYGsAg+sQieDMrvMJUryrykrMNTkI2dEAZnELHPK8ACDLIDjLnomQFzkAHtLJdx1nALdQMvwATfi67XFqft1sgBgAI2HcmBWQhKybiBiQA2nbdIidDqu9A9gdQSIItL/dAdudQbrcYCkAGF4MzdMLlkaqY9TMdTANHeqtXfaoLDSZwlZYVaKA4Gmtntpq+1C9cIsLMIgKkfsACgiddXDAnQXAil/XvUzBN7sLBQ2aKfeseHbcdrsNiprMfjnAE7HMtY/Q7lMHcYcG8yyAsFkNIQkHj0DAFooAMwe5zxvInIyMF4DZriLNL9/2vT5nvQGKvT0rzJO7EHBiABeIgM3cy87l3Hr1yma2DTC5DH3hrAEOvCaVB6HXACKtAuXhIC1AYAFFB46jYIb4rIwlyzcHbBYQfJNUzDCOC/iwvH1aDaVyzemOzFBmDeKrEHD9AMhv3KLhzLsVzHygAHVb0GRlrf9j2yUDkAJuAJKnANLqEuW6IEKTABmudux3bWCSUOZSCj87zWELABrNvIO+u/TB4GC3C81RDlgVm7Tt7OCJC35e0TIK4AGbDN3GziLgwHypDiiZ0AnVAIc4y1LHAAHZACRlAKlDA/eEJLRlIDHsB5vCB2LBvIVrl1RCDTsBqn8hx2OquzP43XYf9QCAuwAIreANXA1zMsohdb2tI8CFoOAAqwBuX85V4u5inerZiMAGegDB4pAh3gD9cgMzBAS3oCA+d0AjyOActtrjQqdvV8z2yK0vPQaGXZrxk+4eKMw2HQDRe+xbC7uEY65UXrExegr2swB2mMxtwc7WM+5hS92Cjgyu8AAD5gAfOjBF3QVeJnKFtjAm4nn9NMBBRssw6sy3GqU3Am3Yz8upI84Rlbmxh74dBs2o9O16hMDgAAAT3xAmRgAApgrWisBtPOzWMO1XR72lMAACtgAUbgAgPWVQPnJ7XDAeZuqddZACVl3TEtozR6ALYOpxRAAOYL4TUNx2HwAXRdCI//zsznuwZOjtC/erDxCwBxUAFrkNHSzvDV3vDMq7mnfQCN8FLslT99EgK24yeIsgKN4MkXmwCIioJUVmyMKdNwCtoq7+s3PeETHuVkH+Wy+7hvzOhADfCznRIY+gC8wIOVvdFDX/fV3gBvHAYA0AG+oQHi3icaz0VK9AQr4AAHsINGOpxlGd3zANMAWgYeNQ+KzMijHfZ4veiL3g0X7bixG+Vr8OgdHKEAAMbnrXg+z9UobvfV/soN4OgfwOae4DuH8id/El+BcigrgAMAgK0PsAhG/Nk4N5xzulODIN1lWbudEMlx7cZOjsMXTrd3XfZh0MEBoMk7MYwPEAciwK18//yxnq76Ka7i3bC5sL89fKdyf+Jt80X4hl8BmJzuRKAIRkzyRJeD0X3kX7+zpqD8lw8QCxAsaNCtWxgEnQIgGNigwYJCASQaAFBmyUWMGTVuzLgHAABeFRidEeBkyruRytQo06KMpUs4LOE0CJPgwIQQKmwxGEFixE8VQX+OUOHDRLMKEQMQuLBoUBlxTMQ5GrQIggMCAAhAQOPAALlOnVDQQMFwIMIFBquFCUtjYNoFCCEhCBAHgCOOefUuiQGyQrJuDaYMzvChWrczL1lq2dISzpluHyoAwJmCweUuJFT446xiBKoRGlaYOCCiEENTBB48IOCA66BB4soMmreBAv9XAgoChBU71uxAg92q0VX49iFdieQMPFC01znGMlklRMnQYM6ZwVMyMGqwUsv371uUxXw8RQSADhx4pNh0OagGz0OfaDB6IM2aBZ0eOI1BwACvA7QqgIJF5jEQgg380w2FsFAoK660zjijIIToKuQhgcwKQDkCKHjuOXEAOECCK6KY4gwsBBgsCu7A+44QGAlxSaUprjigA0/USyEoHp9oYYQWggphAgwGcIKRagJ4AAgiFJntggL8O4CXj7bCgYLcdmuwLATCWCAtNWbq5ksvCTruS+LiIACND51bREQJWKBOAJIGW8NLNVxkjJCWVFKmmwxunICDEFKALz6iNnv/4gkVRrOvmuE6IaPAp8qYbZ7bogTAgQEB0I033778sjvs1kIoDEgFIpOhTtScp829PGqGROqmEAAOWzMopJo8teBziy34nJHGZkwYtFAeefRHg6FGcFQE/OJ6wCsBKZjnKR10wPQ2NDxdaCwH3yJoF2UmRFJUuKoRNaFODCCACVjzKoMMAGaNIop33hFgXyymSIYgl8ADVliYphjA2BNC4EEDfzwL6omfJBnBnwkAGCCNQr5MgIB5NKVo0wIKgGBkCijotoJPy0Lhy8POUOPlM9QtMy1I1UWAwU4U4DhejhShd7p7MxjsVgkZ+YCRXvVsyTGDTUgvYUN7/MmnIYss/yeDMREoBIBrYYPSPxFEiKKcZlyjAIAEEkgIXAQg7Walx4RDl6A51jBLLLq45nkjR0RMIwMnhH4HixRJagDJxMCDSYtMMnkMCzYwwJFQQ+FrVgNPOigSmSnmMOjLpSC4Vgfa0IAgqwMOMPuAZBIQq7eBqpkDjpgKGnPUCSENA6FwAzBgkL018ogXaAHPQMUU4QhTwu58dYw82gmPfPL1NGAWqBM0HwAZ2idswGYETHlAQNFhmweN20g+wIlk2HIw1AZcyh1dUhlhJIxCaCBLBuVeDf6iGxQAJPdJBnUIZyuXhWk8ixkP7RoIB8KV42DpoZz1VKABDmAAA06AQyZcov+GCS3ALSggwCIE+B/yWQt9EKDAAd5hGnaFqzvyux1w3gbCOSTgNAuBhAIM4KH/LaEY9GpG0KbQLyw4kCV8WlpMHhi96E0vR+rhQRVPQCQnYMGDMIGMQBxUQgOhoQAOEFHqPiKyFiLDCWtIwG5kOEMQqistDpHQHBhxJxnkkX8/DOISFkGAAzRjDYzoxq1op0SBfWdGcKAT4Q5ZkhvlqAc94EAliTQALc4IhAb5wN0eUIB5kM5AmcKKyCDQDGQgozBra0j8XPI9gQSGeXMQACPmUAhcQsJ3EAgiEfoShwocDw6OaRwE9xUwRaqEJGeYXcDUgIWDTcATk6wkBzQ3uGH/wcEgBVnLAqrRgAoQQGRoQMMGanOb9DUDgu9IBkMe9LJyzQ93zAtMN5B0GroUIIg+e4ACBheTlmSCcP26VZ4+mM3HOFCgcCiH5CZQA0pywBNFescwPzghThZid2FwVwEMUJoAfQQAGOBUAdQpUCdUiCBwU0NB0KW4lh4OSdXApc6CmAQAxCEDSTwk7VR0qxQpxomO62lRkTEADHDhoTXI3PaSqEgJBScuZukQpsaYFZGKc2QHaBwWMhCGsayUhsMR1RlchKuCQOYgPvSfc6RgBY3EwAAZQEYSGygAFpRDX0iMiQed+EAQnsGvhEOqB5R6yYr+dTyQkWOX4rKxAqAB/zZUMdAob3NSRg6nLC7jYtZwl4nv0A6EDnmsAdqaFyoIoQVDkAJGQlSBvJbDRALAQjmuUA699uufShyPXXsLPYNp0AMaxCRoHafJmN1OVY8NZwEugIYwrvCyWsxEzBiyAM6ORwByJG0DEqgGD0IGQxzlZV5sMIQVrOAJQnhBa/1oAAmIVAQmQQZu9ZqvfDlyRn2CiQOjd9QDYCB12wMtIbYov9F+Dk3tcpeIeNGMZgygGQfokEmHqQU1KNe7j5mfd8+ApsOsZJMPOUgFCnADjkihBen1xxMkMYNDXIQMEbbYfet6WzbodV91LWoDFzis3rIhrxIewDsY0xhNwsy7jP/IEEMU4AByQiBkDqAyp6R8gA4yTm7YXQlGvyShmKk0ON1AwJjWEk68aEQI6V1Bi1sgBNb68QGzSsPg3lEOZNy5HE5ggxNo68hDPjHQRCVcXdUYNicwpk8rUUlMXXozgejsNZYiHW1KBgEACCATjfnwl7sHS9y5dKoDMcvuCpEAvWHECpJYwQlWAB8fSUISrQWCAZqRhty+I4t6zu9AeepECCbx17hKxuBS5C8AZYBxB52RWtelvzAQAKuuGZmUxyhlVBZYm97sDu1A7d1NkgktDDlVABJgWozYQAj+OEHCYD0CWY/CjwPMbSqxoOt31NXXReW3aDOgFQCkARkiOAD/RUTQQQYyWrvKBStDWiPS0oRtAKq7iggysGlOQ+oMMWnpmALj1ykoeG5lqsAB/Kfi9EItBTvykRBmsARZ1fkdU+Cxr/fdb34zAgAhAwCeCc6LK/BUGcDSAoddpk3lmiUBBHdAyS5dbQoIsBkYx3BafeoQrIN2PIQUDqSw7jJGTAYCUpjBitMbArSv3DNvfrlHDCDzVNJO344E9CFtTrspNANkgLRzFqOnBXYE3jEJDOG6vpSMKiEINuZjoQB5AQdCACsTtaQnugRr4HKJ9jsFllHeMYCDFrCbA1Ar1ApyAm+Xy9jWTjA0BHlsd2EHGwuvJ9wBBkTGA1DXcY1jTOAD/49k+Tm7m7szQGRPB3BpW5kAaXi8rwysTe8VpCEucknjeG/9ojuhGZ9fQTVHnzC0NwzeL4brHgjAC73WPO7DhkNdB1N3OLwDACWzmBYZt6df+V7ww2rp3AQSuqsAOACgCJFxAACBg2CBkerCOpdyiDxpjKVxnF2YkMdQhqPCAKeZIu8bPdODjxYgv4u4AFsTOMLpNZvrl1TSN/+CJgErB93LBBhJwC3QP3Your9SriaDCAUIECizLBYiIwDIgMiTvH4pCFgCN+ezwehbCYFigwNwmkFpN0IJgXZztYfxkRKwgYtwBLBxwXvLtxM8iRTUtwYSqLraPd6LPDWcQRrkL/+1Sjq3SA2sGhBrExkCaAZeSANfaQzHCbkxS5wh7BOH2IVeESik6gBpqkK0a7cUaLOWa4EP7IgHyMNUYj3OEbYjOiB+wTmX4JMYZAcY8RV2YMPfWzRlEDVVuRkwmgdMA4Cw2bmroJJmiLxRNDAs4LptYolRBD4RyxNCYKgnlKbRQ7tFBD8ViDVZq4OMqAIyeLt8GUN9y7N8y4A1yMRgox3QSsIYDJYEHEL9E5bRkiM0YYiOkjIqGxB0EiARGSZg2QLHQZJtcpneq0HFGcItwIIrcKgpUhgqPIFKcreWKwEQ0Ig3iYM1wLN8G8N3EBpqXAPagiLrS8NP7MZ2pMFgUSb/bkKX2EmGK5g4AGAh27DDZEgDADCydmwMeDyMtzmy3ztJ34ODfETEHAE/YiRGtfuJl9uIGOgnEXjGFMwXJ3iHKGC9I8LGCzOwGBnCGOFGeyRFTvMetRjHTrCykVHHTTkdMzo4WgyWWiIk7zoyl6RBdoCDQxRGtOMB8LvJn3gzLdyIP7I1G8szNZItS+QxZYjIpRyYk+RGvSTFGmy0DJubhKA29CmAA0AGitOUdRRFyZuCkXhAsRRLdzxET8gRYkyYtBy/1MuLvqDEoMwzJyiHHEu/17u+pMxLYNnFk5zHv4wbrkMTgSigjhyAAWAB1bHDZmCDj8gAlhiYyUMaGPTL/8gMvEygzJmsQn/8xxQYv5zkCCAgAGBKAyeYTie4l7xigWcEtMZJSopkSjVsSt9DMnl6izFxl3PklJIZEALoyQGwmLtsRwM7jD0cTv1zx4Yyln9cjxQIgUryhBo4Ac+QBOfYyTzcsz1jATZIUL3KxBQ5Qxg8zdNcmqW0SMfouG6Ki2izlmspAnN0DQIYAINZTEIIvMg7HDUYUfr8RizQoIcaxprkz0oKgScoATdpRgVIgzSQgBxNg9GczivYuQ1wgKDjPcZZSgN7hwPIgGH6ldQMz1eqGfBBgI8ZqQOgzau8Q73bzeCcwV/8JuFMUUJoKA+QphqopnajQirkgRZoy/+9AIILwD0Iw1EnYAG9KwAdgJclmIcDwDOAQspQzIQrIA0t8kR7/D0+USsmS8UFsImQqhKR4bnWWE/Is8fJ6wbAS9H6zAQxXaoNHL0UeILm/BBHAALFFKfTuogWYoOnAg8ZYVXaiZEXKVRQLBfbGcfwCRl1rE0RcI0pqzIDOIMYjLyiQ4wmxdRavEDDWqoaWFZCGYFQ7SONcIAqTSLsK7CILDAXQVH9a4lazRAa0A8DuAK/+9Gma40xojIAmIJghcHJmwOWNNZuRFbD4gJ65QJPeAI2hdaMYAJAciq8hNBNC0Xnm0Gn3AIvUym6oIg9Jddy3RSskDYR2M4EFKiR0Nb/FB0YNWwcJ0AqDerYU9XXi8gCEXFBbNzObDxNd4xVWtzWx3gILyE1AxgZAAhNE6Cys9GKrJA2ABhUWMUVpPlSyRzCa509e8OCNNgAkN0IkS0y7XQ+AwtYjIVV1vw9jLwddSk+CMAACTIBHGi6KtHZrBDCByW6M+AOoI1MLjVDol0/CWCTpM2Is2FaiMRLp/VTT9xLEo0bUcEfXnANE+gzkvLQSJW2rDg4p+VDJgvO4QzLYFmnPaPOd+AFt33bJZACj5AAkqVWo/zXB83L/KNapCMrBHgyCPhbJBUnCuCUh60yrurcp92uXei9Yq3Fk4xBgXoHFhABPKyAcPpYfS0D/2nFtdfjN8dh1dPsXL8suu26rjAIJ6wYQJDJlF5FV+rCWMcRjl2w2PCEUDVsPycQAQOIg+JbBMrFCC60D2O7RijqIOtDyvZF3vCsrsYa3chahCRIAiBYhBggp6g7VyojgCjYTlgtF0iRXYJ1R+7lk+hxAl5givLNiEGolz07wfU1zc2DQV8BLYL1vV+cguGgC3IoAEcQB0WoAnEYhKbYANPxX6zIPdd9PvvpBqiNke1kX/dlpDQwgBgg3wfGCI8wkhQsNBXc3GwkUnbdRjbkyjlQl3OLAahoEkVAYeiaByhhYQOYAwEWVji4H98xgAqgrWu1vvZbA7sQJ+Dp4Yx4E/9xLVpDEzbNZd8iNS7urMhRfIw10KgQdoQqgOJBEJ1rEaMqQ1cRoC4FVOAkKSEH6NqsqAAcxUOtiIECiAE0zos98OLtMbbZGyiIZF/Ou+A/ZcnGFY4wIAcHcARFOGUm6OMNGARHWISoC2RA0rQHNa5TTIAHmNwlcAQqjoFiWIQyeIFJjpURtDfZizujvEvsc74jRspi/U22KOUqOOUovoBV1uUV9t+Aa98/bYA1MLFgDiK5urUgPqAhHiYPisgl4l46Lro5UMV5IGEiIAI3XeUyaGVS+t8KIOSnbZwz+IADAKJv5hm5koCgDEokGuIwxst/neMZ1IIpUMVBiOZTdtOxa5kKIFjhhwUkJRVgMc4AE7OIgI6XvmiGDDiek/gz7bxWxvnXDEZigi26JNmPKpBoio4NR7Dnq9LZNNi9G2akKDiA8grpNnmTW+ucm6PWhFZpPhnbJCbRTGAEJbmAPW6SmhaHcWhlNICSh3XFF9xnAfBoAgBpoX6O4bkPWhIAZNC0WzGkiOTkMP7F+0vK0JoD37kAEj5lR4AuHRAHE7bmDvWPKNg443KcfckAvfPdIAoIACH5BAkIAGMALBsAGABxAKoAAAj/AMcIHEiwoMGDCBMqHAOuCR1KlJo0ATdtocWLGDNq3DhwWhMjs+iIFEVHFMSIEjmqXMmSIzhKs5DIogMM2EiSs2bJApaypc+fLWvJEVWzps5QIYEhCZUjRyhZOUUBnUr1YhNRRI0ydRoq1I6vNXY0bapEVtWzaMdYKUVHltutOb6CDUKXbo27YbuUkpO2b0s5MMbG3VEjCOG7dCdMCKLYE4caPXockWXEr2WN4ALJmos3CF7EnmpM8KT4RAgOPFIf+XK59cKXs+IG4UKby+zbQUJzUNzYk+MQPHrodU2coESIwGTlKMzFg23aHpyPntA8unMuE1L34PGqeHFwpbCS/1S+Y7b189KpRzdm3TEH1DygeHcth5LNo4Sro8fgoQP68+6ZxgMi87WGiSg5LRVXYf8Zg4Ex7P3X32juhfBEgZbVcpVOSCxFWBASPhhhc83xZmJoK2DoVxOUIBgTEguCKKF1tJloYge8pahiWk0EQpRyTR2mGBf+nYcdb74pxgFpvNWg445nyREIHTGNtcN272X5mG81/BaCCmCq8EQIJ5h4ApRoseiWcqmloMQrrzDAgC22jABmCl9KYocFX/TZpwWSrMDbCTOgWVUTwIzFQwpduHDJo6ggYsGkX6QiCRRf1MHMppxGUIcFGuzmyQl2GEqVHEYMxgMDj16CCiqp+P/ZZwSZcgrCJLhOwkwEEUgSwmikmjpVE4ERFsIIUKByCRTLIiKrpxEwAwKnk2AyybR1lHDaqNYICxQmR3zFgQa2QJEKFMlC4aysmdYR7abXgiBvtk+c8J4Q3v6ECQ+E8aCCJCWc+2qk686aKa/uyqurpyU8scIJJwyRr0+YMHBXCBq0kIqyraICA5+z0voFr9LeuimtvkJc6MQs2TACYSeoMAIqtlzi6KPq8smrp+6WPG20KJO5giQstywJBz18WXPNN7uaCsiezuozvCjb+2TRKtVhbwpztvqKzZCuK/LI0cp7cp8jQFwq1ivZABwDcdoSp5wMdPE1puySXfau2Ur/csKFbLetQgqv1KkBmVpygPGyX1iQCiKSgjwyMzPMYMcKKwfOkQ1QyHmJBhrgGcLo9nJwAuFQlADFCKAfPifAJZQgSQuaryTHFyPUzCrdJLxqy+GrotI4KgxoUDwDI+QO8Oy1u4QJDF1cQuclccaJChS2FG88IryqTumkAQPcAu3NZ8RiTbI0Tf3hoGMM+gjcb2rBq3hbELvsT9hQPkaYADMLMEYwAsceNQI5JY91DCABDMj2BVQkT2OVm0EdJDGCOuzvIqXwnxECQQkLdMxcJaAZ6+DkrHdlK3aaOlkJLGDBCy4kgzkpRSm+0Cp0pSIV0xsBCS4htnfBK17McJf+/1yoEBAY5QtGgAHYXMUsW5AATiT8ggwjcCt5ma0O2arDEImIEDkYBYAuCKMYX7FDEjwximTblBWx9akvgIOLCZEDDJPogleIMYxOhNMTL6Gzd+1tV5nKFF/g2MUvwMBj1HuF3Rr1NTKSIIF8wuLOdsUzvm2RkAapRR2gYEdU1FGRjQpjFxhAJnINzE+86lMdJAiCN2IyIcww5KPMSAK7QTF0oPuaLSSXSlqVYAaXfGUhW2WzT+rRVRbwIa3cJTItCvMiIGCWzUAJt7vpbFpnI5sWXflMhdggFTusHhS/5qxkAm1nqmSGFbjZTYRYoQSJdAHd5PQKVDgujTbABNCwaP+FWrRTIXKApwu60IXQpSA1i0qgPflkA0nMwAoQjag//3kQG1jgiaOU0xFSkIIjdHJST0tFC4YgjiEw4aQveAFFKxoBVMTJeHU7Qt1c8DFZiTQLgtiAIChAAR2IY6UGqYMh5QRTujGqd5TqkyRwKoimomEQgwAqQcABTxhoz3hcM97dUuenQDG1qT6V6kCskIqMgk4FMHVB70DIJxY6rKlNHYQ4VCpWK3COAZtIQetap9AbTmpSEWhBFnSqU0GI4wZiHYMcWtqFg3JUrxw1nqtgZT8WtoCwOh2EI+gKVHDIEXqPBY5jI3s3RJTgCyC4bGHB+oKJUtQK1sBEKWBwBJn/im50PBgdxpAHBUl8wQaChStrXdvOdyJCtlAY5UFzexotYWxm6ipFC1awgdVulrjPtIEdZIYJGnbBtgh1LrlSscJMPaG6G0BDZlvbTnDMYLqKC4QHi8fRNiEuBFy7xNPAR93qogENgtABe59phResYDcT4EApLPAEtC53UXiCWAgS+LTTXg691RXEIBSBXS7adboT6ICIO7DCBmsAoYtalGkm/Aoo2K8ElytCev+r4SpYAZNymIEQVuCDDpgAA0A2gRCosGPQPfi2+F0W+AJVXQrQ2LDi0AERwWGDhtkrxEDGwAEAQIAWUIEKLXBwXvGL20Ut64apUEF/eXoBCgR4/xEEoIA4qNA8Km/3PSHugJYPIIEDbFkQUtDDC7KA1sPplqN1uwQMnvYFSTyhBTuNqzjEcQECcNkBG5Ay1mBrh3oNyQQ/5vMARr1lClBBD3pgwhOe0DqM4Vehf62DYLOQBbmmFAyKiAEBDMBrLkNAwPkChzU6zWMfYwAAWxb1qAcgAQAU4AVScMYNhPAEOzV4dMbr3Q1jF+YsFAECELjAIICg6wfwmtd+BgAOBMHZHdlVEmrusZ4B0GdmL3vZzWgGAZgghV/oYQjV3sQmGqyCBJqRsjB29Ap4KudBAAAA5uY1L/K9ZQCYINMqkoN2HeYDLD/czwdohgQkYO97A0AHN//Qg7RbUMAEJo+WlLVfKuwkBB2glAIQj7gBeBHyZvCi1wT4NZ2JY4MJchzLx/ZzvpfejFHr4uksGMABNnADKXDiFy9g+eskQTNYmctxI7BQSl9g0hg8/NzH4IXaeXGMtqd9yw4QhCIuI4UZwPs0E/jxw/vcc6Y3/QpXeLoumH0BRYDBGZz4d7VHgOZLQPdprAuBJEiqCHE4YhEQN0DbH+D2zqf97QBwwCDaTZV3O6xMPv54n5eu9gqIoOmDF7wlriABCjABDD/4ASfAIITxhRQRG7OnJDZxLCq8gAmKqEIVgJALiB/DAA8Qg+bbTo5jVL/tIX94AX5aeikofDd61vL/6v3OdgVUoBlXSAMLWOAES7BAFweQe8o5wYkf3EAS+F/lFwJ2Q9Y9YQZ6AAYCeAM3MA7NF30PYAqmIAbW14Dk8IBtp3a9hgbc1xJWoGPxJmLHNnIj53cVoHbmd34ioAssEAUsYAlPRwDioAg3gHv09wPWMAQShEX8ZwuboAJDIAU/8AsteANEYIA5t4DR53kGwICdp3m8EHobMHQqMQQrcGAhpnf0tgT5RoVpp3ZLVwHnh35XkAEZsAYZwAJX4ABz1YK/QH/1BwZUMAMgsEqWUjwOdYYCKIBEwHwPcIfRZ4Sf53bX53Zqdwxwp2kb8QIbgAPGhmx91oHN8IFs94C8/6CFi5gMrycCaaALXugETiACZKgIRAAGeoCGaWgNEhRCI/AEdtBv9BeAYFCAMZALdygGsGgK1KcACkAOsEiEbOd2B0AAG8AR4oADoSZqIycCV/B6+UaLCtB6WpgMjKiFGdB+ljB7Kmh4Aqh7aKgHdVcC1DYCkmAN1nh1LQgGjuCKd1iEYjCED1iLBnB95uZ5bmcAACAIGjEERWACyDYAzSACIrAES1ABURAFxVgBAZCMChAAFWB+IqCFWmiC0GgJTmAAGxaO31h/egACFHQJJYCKaGh/LTiOd7iA0peAbScGtPiAt3iHnsd58EgAGlEMDrCBCcmMy5gMkvh6tSgG5P9QkArAjGvnjygYjSjYDBTAgp6Yexv5C1JAdtagkaDob1LgkQkIkreoh9aXgJxnfQawgOc2gRkhCPbIbBKQkDOZDFFQkwqpkxXAjD73iGQZjU5gglEAAS8ABr+wg6gGBkSQfC8QjkUJihT5lOT4kaYQfbJIDgq4gNdXfTgJkpt3DM6GES8AAeI3AGI5k/9IlmUpAsioAGuQDCFokIwwBZg4BVMQjQQAYIKwCBdQAJVQABBAAZnGBGPXgkZJf0gpBXaIh4MZlbCohw+YmLbIedJ3bvt2EUPgAPQ2aouYkAmQDF4YBRnwj/94kLSYAAmghQUZAGuwnQLQnVOADA4JeAf/4AAFUAAEcJ7k+VSTZnni0Im/4JRSIAiBeZiLaQqGaX2/eZNuJ33Ph5PwKIgKUQx7R5mup4UJsAbtpwtOMAWMEJ0C2QkBYJ0JUJLayQgWyghz8J3I8JYiEI97eQOVNwhocAEXgAYUAAHluQiOkHxAgHwXAHFicJgyap85SYsBYJiHeQznqKNGyGsXcBGYR2+LqJCSiIng6QQZcKEiEACdAKFnGaFrEAYS+gEWyqA0aQAFEJFzSIA+qAgnhXycOA4XIJtmV4Qzepi/SQ43iqbsWIQmCX0FYBE3YHZ8toiFUAGF8I+kiQwbGgXVYKEHuY60WAEJUAgRyowSeqAXyggf/+CZBkAABbAHi5AEjlAFLMilcwgGVUCiEAAA0xejM8qjaYqjEKij5AAKJnkMDxCnC1EMlnYAS6CP/ygC0OmFlsCnX4ikUVABMZqThVAIzWmdBZkAYRAGf8qoYbAAE1oJF7AIqtma5RkDJNqsiwAEQKCaFOAA/YmjaKqAnUCjJqmAo/qAMtAJJrl9C4EGx9YMSyCd0RkFCyoAWOAEyJCkSLoGAQCL2SmhUpoATBoAyVoN1bAAC1ANYWAAaDCXA5iXVTAO4+AISeCsexADFIsGlaB5v3mm3Wqf4GqS5NAJMhAAA/l8DgCgB4GcADAA64ekz3irloAF4GkJz5mk/jqQBf8ppcUaoTUbBh9QDR/wAcb6AQFQCYvQnuEYaKj2nv6mqZe3CJXwANWXsRorrrZomNxKDjIgA4b6gI8qjwnxAq8qAexXghlwqzDLp5gonR+grCL7gBBKrBIqsgCbrDi7tguQr1xWANI6qUCwokTQglKQfIKQBE+ro+J6phmbsThZnxBqs53wqGigEFnwcEsgAe2XthkwBQLAp25Js8ngs9cptwGAAMRarAgwunPLsz9brJ1QAE6GBoswsZVAsZUwuzGwCLd7AYJwsWJgrlNrrk06qr7rraI7kKepEJIJAJULjRt6q5tbmpYgndb5ARIKvHJbrAtQrP6arNRbDRJqAOz/JgVSMIA+SAQNCwQRW57NyrukKqNWK7dqOpDBK66Na7O8cLwJIQj3OABAuafIgAUCoLkB/JbJkADVMAdRkADf+raqm73amwA/W8BwqwAFYFiXCgaB5m+oJgU3YHkAVgCcp7Efa58RKrJN2gm1mKYiG7IDuYuRm7/7G43IMAVniwU2fMP1WsAL0ABrMKEfC6HcW6w+q73FKsRhMJCPSgDkebtJ0LeWmpeT9sFFeMIa27glqaZNiqb+KqwKALkKgXmwpwu3yqf/e8PUcMYbWsBhwAjee6MQigDF+rPWWcR0nAxyLAYFsAipGburWbu1W56ueQEbUAnW962HecLWO5A3//qxOvmAABu3+UoAXosQZgd7mNiQfPqdZ/wI1IAFjCCyf0qsTIoCAPuzQOvAPEvH1JsADzAIAji+c5iXD6ua5QkBaEAA+DmjWeytjRu/IpvCoPDI/goKx0AAUZUQZrcElWikMcunWNDJZ9zJU0Cs1fAIQiuyKHDEVAq0dFzEqBwG5BADlbqXAqgH74mNN1AF4jAIgozLhSyjC4zIJ1zCKeyrawCsCVB9lbAQybzMLhuNN/zM1BAO4QDAjBAGDfAIjyDKCIAAC9Cz3NzN3tzQCKAAXAapt1utjlCp7KkDsInLtEjFptCkoosA83zEKSyy29mZ+XwMDsDP9JYGlzzGZv9Lw9EcDtRQrx8wBWccpWFAutOLrEaMvQvg0KRLwdRKu7V7nkztmrecyyMtz74cAOV6xDfqxoUAhnOwBrSIpUygEDFgAEtQtmTczAIs0Gpwxgyq0NTACHNcrMlgoT67thINx2HQCa3MlwSYl44gCBeAok4N0gEQ1VItt9lp1T/cCQuwBgKrwF1cAF+NzAbQDDKtoTY8wzZ8xsqw2WcsABbKydZsulIaBYxKsAX703EsyuTwAGhQBX/Ll6uYfJM2CLaMy7070iiAyIR9vdlbvGtMDXNgqAowniZbEGFdAWswxmUNwAEdDsogzRbaANQgAMkwutmcABdKsKLNswObswH/8Kh6ewGSqscaBlWDIAi1/c4jjabyzMD+StIRiqH4isJdC9YPoMxGKsM0jAXfKdBnDMA9K92PMN9vi6FsbNqoDbSrfNdYKq0XEANLzdTn6ZpwZn3eSthui8gBkL0T+q8BUA0CMAc1y3b4exBz+gCgsAaZzN/M/Qjy6t9q/dnPPc3Xy8ZyHdHdDLAKoIKZCqJ9PaKAnd4jvN5UDN8A29tZ3AmFMAeP0ABHbK7wWIEGQQTHnQGYbcOPcMNsfcY4jQWPwAgNoAac7dZF7LPV0ABC3c2NveOOwJcc7KVMsJ6D4GYE0LvyTNgnXcRyC6EgHuI1qwCOOckGAQaEXAgZENBm/7zJmh3NpMnJ1KAMWkDdq0uwAmu3di3REwqpBVCiizCiAHbeGqa7BKAAnYACKHDI7e3QA3u65YoCCzAHbc22tfh8P4oQ4pALx2DoZWzGjj7Q0dzJAPwIz00NWtDWP0vp2l3Up7vdYZDbneBs0grh5/lwF62+o17qp87LTYoCpGusp73CNCDdaF6shgrlrGoQerAIuWAAnPniMBvQms3Zz+3l8jrQxS7X2YvgCI7aDmzqplAAl9rBjiCiaADY5XnLBWnq217qJ5zbCPCnVp21CCDdbJysTArlL30QuQYAx1ABh77fMM7Zj64MamDDUzAHAg3pX97d2m3X+Q7ByvrTCP8gBpVAlLj2pevZ1wWABg6wiAy/wLmt8BuOod6bAChAAwjACI+w1aLcpLSOEFXQfHEgAguK6L/+6/NODaQp3WJe7FOw6giA9A3twMlAxw1Nyg8wuycayE4GVwV/y4TKpHiO23w+B1v9r6R7rKt+8dV37gXhkbyQDJhd79G82c99+P89BQ2w+F0f6QJbrEc/9nRssHvfCWKg6ZVgadRO7ZCKc2V58fCM7QjdnR9A0Q8vwBngvYZ6o8WMEJjX8ZkbwJnt3CO/6L6u9aC92Vpw7wYr80Vs13R99t/K2i9ABJbnVH/NmgdPAAl58bl9mNz+8I9w8tUQADRAA2HA5N25nX//Xn0AENkEceIGkJZK39+ZzeWLrgyEIM08XfhaoAxTkL2nG/2XbtpFTQO5/QAXsILqDBDiBIpzNGjQhguCCjSrEKBTJ1MRHwYIkGBNhgyMwlBEEIYRozkZ1iSjGECBAgMABI1h2bJYLgNxKmQQIADLzSmPHlHjyVOZli3hsCCzlAFLT2o/H30IsxHFUwRROy6Q+vSpAQKVKhWAcOECBTRoFlFIuLAQxYcoOiEwhcIkLwAADjQDVWhNNZsC1jAqtMBhAHLHVLZsCQQmr2QZck6ZUlPAlKM9tRAiFA7ZFV2Wbib9uYVagwUbO6GQioBq6dIKCDyIC8DA65QAHEBAQ0BE/4YECKzu7qQAgAkcOBwA4JVmjVAB1dbkDiDjoRgDiwizXASz2RUnyBpDXrw5nBYt4R4N6FCkiIkBTrDs/KnlUTXdUcOYRh2VtFoCggwOEoTmQowCCiBgNgoIECmBAHR7ypSHAgOggw44OKEREwCQABkBGFljvqiaI4e1C6YbIwbiJLhNscVy2oka8MCjZoAJECmFBB8wGACZ9dqjhpEPEpTqtNAWOM0qAhYZRAdHCHIEyYMogGADB5phJAGrdOvkw5SAm8CHFbqk8AAnkkkgNxnKlIEcUwwYREQSDajgNicY02nOpAgBTwAYZYRBAw5MuJC9Fh9JoKlBhTRtgWoMpf/BKjEIcDTAGLyiYFInKSgAgChye2pRcrAaEIdGuFxBhSeeWAEHABoKI4GzyuzkNSbYzOUAEy9i7LHG2AuHGizyDOSLI0LwxE8cfXKRxzELFTLRIXfzlIC4DDhgWtkKKPAARkga7alXP/XhhFFJfWIEIVqoMSZQzLzytZUIEycGAmgVIYqL4swuMmWUmYIFHKAIxAgYjjjBBz8tscknZaiJItNkmgoDUWarQiGiAvQzSJCxICjAgQALvGKK5bZVKyUCcPBBwlGfkMSWVFKRJAtU41A3MAM2mK6KSohLZue95mAMGZ2SogaZA1b4ohQYLiFBg1MBSGMKY8F7ZOGHhbT/mtndKNYPyYF0GAQNJ2vDtBpN1RrNNxO25CDlFqBIpYRU7BCiCAKOASVdNA1otyVBYIojmQqS2cuJx9ZjTwAJJoDii6RRQaWFJ85rxqajWqRGpKashpiq3Z6CDoABueoKAtIvgJKAK3BLEAUaovINgwjBJdWWEWyRpOUSJFmhwmOOIedDmwkzzIAldk6GkcLXO0rfA3CQpAQYHG/ZDlMbcTqy78JzIlOHNbfP7LbIaa21lJqpFgIABrBkCu6lCiMlBzrgMgQVapdEkhEkQeVt3YczoHe9Tac6BlBAApIRBUY0hie7osYUJOADC3zhC4hIhQVKYAc7QI5u6jtK9rSQ/6GN/Mh7VnkIARIiCBT6J0ABggAFnOaERziBKQ5734C2JLv8xe1+0ktFC1bgPwM8QAeEuUEMYKKAndGkg5QJzxVwIEFEJO1tOpSEDx0gAUvgCDyUEQ9TNKe5EHLrATGggH6S5AgU9qeFw2kGFqbAI0R1BG0m4xKpbmeHEsANCiQYQamKkIvWrKkl4qgEIBUgAvV8JxyU2YIWkNEBSXzhEgx4xSUusb/bpaJcqNIFFrK3SPc0gFlfDA2HoNIprKyQhVy5ALQq0BgBiDJRCajAAUzQgRuGawRuK8EXUkE7FaygCMOJCxoIMw5ANiMNNwFli/QlgRWU4AkaSEEXXsEAW/+gIpPUq1Ens0eILRCigYy4mtUcxjrdiA9arjEAL3hxANBxxQAJWCZP3pOoAGDllqJaAbhCwABU5HEGdpBEMIfJTgjooSVJmFUatBMORW7mEbro1xNCcNEQaEADKmDZ2zK4uwt9RxmM1MJnIJao+XAIATRonQFO2B+wTeoCpSOOAgTQk0SxRTY4mAC4SmWqjI5gfxfMYAi+tIQrOGAILYkB8YrFK17ddAoZKFoIThACDkgoBCnAZtxapjscHMAS32FkOBtYDbSexj4iVEABTngkr3ktbA6AlgAgatIwvEpLJyBVC8pVKhVw1BZQkIQQVEAwCQwgDQAQB0uAUAkw3eT/EVPQDhYEMFknPMgTWT2BVlOggV1KAo+SeEJYvbnFcLrnPYaKClWE1IAGJFAEcCHACkmnsa5A6wB25Qk5hVQBAnRgs6Nqwf0ISto+9nGaK+gAAJYQhTQUgDoAaIYukIGMZhxgABJohmLiNAAMTMATV8VoRkF7xypaz5vtYaIyHsGInLZ2WbDVifnkMi14xoUApANTenzyCNguoAIAMBlf+/q2POaOtNMMQdN4QU8CsMSF8QJdvOA5AHheyBKwm0CXLkre+m1Td+hBhkiBsoVGUmO1V0tUAx6hhgYSAA0bAFuNN+Akr1DYCRBN2JzW8KCePgFypWJZgnsYzIE1lxeF/xDBASAwItI5YDgYlgsGNoZFS9hyfiforFZ3+VXSXlEzWugMioMSYNNUgxGwbQCMeQWAFqJBEF4Th0G+QgG6AuAKEGXgT6hxBdjxNZv4G1fLvmpRH3QAAxKoQCESIIII5yJn2tWFBEwAnOCkDxkDeBCXu5zVrXL0ki1rQSPE6skWbcELlFnxAlz84ny1RwBRaHKFHTUg0lEXACzw4BbBg4zwnkADt1NwccsFORVQCAAiKESzIT0GaDVjAJmxJQYwEBcs6uIAsMsqB3qQVR7wIKMMYAAU4GYuAHSSRZMxM3jQmuY2PyLWJc3Ardep39kshGh73iI4260LDHBB2G776v+QA7uCRmCgGWehiAEK8BILZWbTA6D4dnVxBXje0hMTmEANtIpRrhoa3eqeTFkb+d6rtTnWPDEAGnTAJK+h8CsQoHAaPkkIL+R81S8KLwc00FGXWbRLRcCBwkVwEjGESBwEMEAanGAJS1BcF05wwhUkIJcHdeCWHfB4CMQNaqESdgQTOEAnfe1vFKvYtdVQQ6z93AxrydliKGwhzeMigk8CJecoxgLAPdDxfw6WtMH0QdGdWwgFiEE6LIFJBuKEjMxAPQNWn/aDqizcbnebq5a0RQiMcaNw5Au1qvaCe8hpGpWDx8+0VoB97a0xXmSAuotMLelzHo4N/73jHOCBRjX/0OCE1xTxlSDMIh5QCKPoYgAsmLoTIg/w9G33lhyvgcclxFVyT8BGnvymv/euBvhEpc0tcpGtHVXhFcZeLlgoud51voVeGYMLQaj+tyXEgUS7xm6geMDiWZKEulkCAdCFzIgCqns6S2ABSlO+3+iAv7M+3uOBFOAAGykxsho9nXOPUWoA1QMPJ6iYQRgI/hCEmWql1igxO6G9vWskYPOA+eM48ZoArSOOuwmMCJuOPXgAXhhAqIO67CAK5SNAS7g48JI/8aq+rKqBzxurkrOTEwOnvfsM0ICt9nARh5OzEaSx2yIA+0IGoIAo9/OCoMC9AzAGDzhDDzAGY8AAWmmI/ysxBekSkT0wgDVgAc3oQaiDvGnLovVxIwkwww7gAo7zgAqkBg9ywrLau5ICDVerQjvBAoxrjdcrgPSAJxRERNKDP83QNmvrREpLg+Y4kwegABEZA0I6BgmwLjy8roubuuvajCnYNjVcQw7qtVQzM53bOVFClLYDCjsxH0eRMmEUHeKIiwy4QNGLwiu4AqjbLqnLIizIgEK4kmOIw1IUBOqyLiwYwh6sOqrDkciIOgkYR28yxH5rEcpIR9srPWpglgYYKXAKB4fjClViIUu5tePIHs6IQkuQADB5RWZyo2oIAwUwhQewRhFZBLnAIqKwwyFkgStIgwy4LhyxhCtohv9mKI4OogZEtBMm8r5cFENl2MV3VDXP4IV6pCspizK6IoAKQMbQMzOhcIJpUQ9mCgcneI3fOchSLAyYwDLIs0MWGEpLuJehiIIKMJ80MESySkenLDkUC8mc04LYcjUOdMIDsJZFCAuZcisIaEmXZBHK4JU5ODHPwIIfWwILtBMWOD/WeLKeNEVAWoLMcAKi1IWhxAjtoDoRGIBmwLvwoD0UY7dwSkcxjMpcJISRrAbYakIR4BivABvSEZ08IwBeWKR0pIY5qIZHWCShiAKMPEbPlL0AIYAYiEumoi5mbEgfLErFyK7qcqhwaCTBLEyhqE1cXMfSu6cGMMQUc73x2a//jYGWePmO1NqR9wGAEsOCZAhN2tMCLGiG2vI/1FwEpktFvGQBx6M6iKyWdEPB0GOkdAyHNJAA9jMz29PNLVADUWrMR4yLaRlH0Mm387NMT0pHLWCECjAAmssOEcDIKGDKo7gCh9sb1ByDC5iVikudKIDIKDgAB5gUAihHjkQxtDtLKBTDXETPDLynBdgFF5mW5SNAJ5BOjQEd0DkALAAnJqKGNVCA4bgJJ/hPEfCkm7CEKHC4A52OCygAA0gsCVgCIf3P2diADii7+wwnJQ0nqVy1qMRFqQS/1/o16lofq6s64fwNFF1Rp1SGbGkGZPDIcIiCJaCJDAEuhNzRlliE/xjImeB0ABzwE2+yk8K00A190sPMU6nMz4F0NTVIKgBwPgyoEAjVmAMgTgCwK5KiygRghPA4z8sJnEN1ADWtVMLIgnRbIHajDD09zExET38DSTF8j4dxsQFwgLIbgFsyAQzIN+k8v2OcDFB6hOVghNqSi9fICmOyVF4dAwq4kPAID/HMTQtVRzMrK0bKxfxMACFhhGYwAbHShVuyNgfoUfPJs3z8yAYyidPsVW91FyTlM9pjUbQTT7O80CVNTFoNDUaIgngZwkuLC1eVDWjJR6hkVAWgzm/lVSqoQHHFTKc8VnJ9UvTMzfejymr4gGqAtFQBxngy1AoDgDXwTX8Lh/856BG43NdexYEL4T4w9MiODFgoBNUl1U1CwAL4IsgC2AMAiZQLWITRCUZoAcxxPVmyoVSN5VUmwIBlEtfAhCinVMdyFU9jRcy989KBJIcYcIRxcASndQQg+AoAGZCZBdrCFCcBSAYACJ6cVdMLSEVkWCA+q4zJEFYmMttivVoLrdP3e6/3uYBxUARFGAhH8IoevbVlS9LxzNoDIMWu3dEhIIAb8dh/VSRF+tmxrQxjDdp1zM8wMIULEAe5VYQqIIivuNvzqwD2AyUuUpgKwNm/Rc0NcBocuSswBFrE5bOfBY+aZdyQ3IKlEAMIkFy5FYi6VaHzI44VbcrKCAcBEIH/wQjduGyqNNAMpgzWFvnXnzVHwyXagN3QR0gGMVjayRWHKnAEsLAUAdGtOQBazNwVLHCCthLenlQEyHo6TxJbpjTdw1XeZgpaJjLaRmIEciiAJKFc220hJxEQ+LTAsu3daEyAACLf6WAC57oRozTEnijcf00K8mtC+H3dR6gA+7XeyrXcsEADjXGUA+he1JVVakgOciAAriXgMVgE4rkRzbgJ7GFgMOSMKiQ/RXLK13XRAgjByq3c25UzNIiBPFvKxOUzvbiSEDFhlqiEB1Amm/SOBVpf1T1d8iMpgB1YZc0AB8DhKtBh2tAPEuRfm/NZPsOCagAM4jNiZNJB7IiM/wVmIHHlCeRV3aBNXnXcUN8lACzO4tu1mHtMFY/t3bsSgAUYYUEi4CrIhQeogItgYqRg38JN3Y4UVsLcUGqwY8m1XoKIATkrCDTYGOci3C26qznIJ78l5COSSKNgJp7YjEV24cTlov812r3DAkq+4EteBEGosw0YznQj3DaeAwEeZPJVBJhYAlNOHqRYY7Ft5LKFYKg0yXZTiSyO5rq15SRRiB8mXD/WzGTghSIm4EHIBVQsXsKZgznYjPQ9ZvUt3N49W6gkV3DSAr2R2wsGghigZjT6SkcRQJ8NzBB+0TQNXUewjjSQyKkyUwGYg8uyLJ3gPp0IBxA1XQXuTDWAYiQtmGgXEQCVkOdxGAcg2INFAIKn7WEBocPLYkp7EgCR0FFeDQgAIfkECQgATQAsHAASAHAAsAAACP8AmwgcSLCgwYMIEx4MRGcWHTr3It5TSLGixYsYM1JsKEvWLIcPIUpkFZGVxpMoU6KkI2tMjhyyHs5CAnJWR490AgVSybOnz4YuX3Yc49IjkpdEXY5R4uKLz6dQKz5siWTM0B1Ys9aogTUHVh48usCISrZsk6k5kh7dUSOI2yBcuLit0aPHjh48jigpZbYvz3tAX2bdAdeD3LhBJkygWxdv3rF+I2MMBLih1xpcPGjWzEUxZ8WNFS/mwECyaYr3GAIlnHnz5gmtDS8W3XlxCguncxfUObOq18Kajbnu0GFzXM+yJ4Rwqls3K4aykCCR9RKzZuKbiRM3hsH45wkqnjX/181wptVZRAm73mzMRHvuwl9P8MRBBe7xpo20fOn1snXXxgQIHwYEylcDB/WJh59kSuwgGFtvxRWXB8Vd10GA3cm3WA8cLLdgZAzwoFVbnbk1oXbFbRefZooxVtcJknzoVwhYtWWiB4qViCOKxU2A43GenBCCCiqscAIHI9ggo1l22ViYaFBOwIEn9J1g5ZUcnKDCCKmUYIcdKpyQ5JJlcVBDjtcdR1eWIWigwhMjSJJKKhaUIEkLkpTAzJ7MfIFICE8oSSZUpWjQg2cVdnagkAx0YQuXXzwTATOTRvDMMzaAoCmlX4wQ3qBQ2eDCDrBhx1kPIaQwAiq2oAIFnZfu/znJrJrWCgKlqahgB6hPTQKDetoZVsMJGrjgKirIQmFBBJPuGYittkbQ6Qya8NpTIL9aZ0xxXHCggS2ttprsF18wywwIk5wL7a0RSLKrtT0ZccR/FEqZAgMu5AuuLYhYQK65fKZrK6XuwnvtvEEYNwGxDNjigsMPI0JuueZOsi67X7xrcEqBHKHeZsNuOQK4D0OhrL/lqnvxns/MsLFKX7jAA3CLEfvEviTYAgUqdPorqcrQMqvgyyh90WBiOI4WQsMkOGoLDFAgUkIJ/k5a657oUmop0SlBwcCZUdY38r46v2rBnLCeS+mldZaQytBcZ4RKCFAS1yG+JDTdBQN8M//gpgYacGmBpF+kMoKnb7oct0YMnAC2aFria8veKaTAQ+UahLBCCEvzTO7OqMT55eIn0R2lll00zUDlfJOAir+GA+6CxF9Y4DMzLZOukQocnK4CuCQ02kXqr5fb6fBdQMFs4V2WMIM1umdkQQqHikYauHsjH/wIeLYwctO2GH+2JHlCH/1FEcDAQF1nntAw8A8/qgGc7qaSNwMkVM1pCc+Yfz5FpaCDEYzgghQg6AROm1zZ5jS4S5UAFcNjAAzKBS1B/U8hpRjgLIzAgBBwIAUkGBu4eEY1n32hBJPbRMOWpa5zwe2CBwlgQ2bhgtV1wQX3G54t5kS1iaFwdfjzGbT/YKgQ1XzECDDInguQp8Oo1elzJNBA6xARq035j4gGmYQRBDhAGNhCeEzEn87aZoERAK5RJKBis3BnQSwaJINchMESwchEF8AABnWCQhTvVTkSdOkLfGqjGwtCLiTCQHURZKKjTgbB1aUgBDxoWNowNUiE9OmOcmyUJrWXs5NBwRbBI16/UvYMEFQyISCwwB2zp0jktQqPiHBi1QBZKWYI8pQEYYYqEclK7b0uFbLU360CicuE2OAZqEBko5Y4vJwhi1Wv0x/LrFbMhDxjBMHjWyJdCS6/ifGXtqvTC6tJkGdIQnX32pvwRugCDaRAik0MZ6TImRALZPOMfWuUzliV/zfX4fFfkTIlPQ9SguBV7p19Q94zQekq2/0rAoobqEG+MLkjsA6h62wV6PpVNUsJVKIFAcEIGGDRy92LpCm4oUYR0bN/7ckkIC0IKyB4BIse9KT4KlkPAfkMO8yAClLwhlCFGtOZDs+mlbvc5Y6gUrN9AQR2EII19DDUoepBopmiaReQelCTonGMX2iBEHRQhrKWYQgvuMFV6ZkpX0XQb+60HA8gadJ7uU4SrciCKjawAQpQQBCDUIQzBmoDVpQCEVt1ZFLnGgIhQTJVDDhcK/gqiL1uALAvqBY57VCCQHzBayQtqVx5gCAELY0EUCDfZC97WcDqgAqaLeYMWqGCQP9Y4It+6ypYOAfJe6GiBOSaQQuwsQE0COK4gyiDFGJ7SjtkwQcTmNoT+AY4y8mVtxpwHRSmNrUW8LW4xh2EOKSw1lMKIQuNIM4KStCKMy52sW1qmLK4613wXja5L9hAAVRRSUlgowMmwAAAcGCHFqhAinF9J28x5zrbOa8VxEVDa1UxiCHgAAMmwAEFsiAIGArhvyYAgIgdIAQhrADB79TAJgDnThYLzqerlbAg7juEAohYxBmmgCqyIATSPaMFnuiAgCVwAACYoAxUEMKBWcxkjDKAZ6nwaRa+W9wNULjGIn7AMQ5QZAA4AAIbGATXWrCCCQQYABKQQDNErAoqUKH/BU9YMotZhz8od8m5fPUrGoyrgxoT4AEPMIABjnGMG2MYB9gog7WEewIAnznNai4yBaighyG0Is4qlmI+UcvS5k25r+AFLBNsDIBAE/oYD7hxl3GwAUUvSbgruBAGinwANQ9AzUQuwAv0IAUhwJkBRDowNvGH2nCWYAWg3jMaKMwEBxBAxIKOBKq1fOpVU0AHC7KBkoNsDC6n+QDNWEKaBzCAAxw5qG8ewXTn18+8PdPBKyhCcSmwZ1Wootl/DrSgp31qQgdaxAUQhKtPY4MZZOEEZgYAl2tN5GY0QwLkZkGRBxHUH7ygBZeO7OFCqDOOQmG48/YrBaxchmcDQND7/z7GoE+98hsPuAimKfhwJwBgETdj4Qt/eMTLfYFdO+MbTICzFF2XrJOVUQM+uCwEIFCAAkhYFc9G+cpV3m+Uo7rUAMAADlbgF+FiI8ghxjmXHU52EVwhDSy4NQHKAIYfOAMMQnjC0HkmiRHYzouBS3QVKjuIQTCBCYu4cSQikfJTa9kAgJ52qkWMAzGTpQRkpvmZwX3zsRM+Eg5fwtlZ8IYBAGADPucEGIYw0mLbrmdAlPciFtH3MrzgBRc4udQLr3JBA/r2txfxBsgihFY0WsgKx/ngB18BchigGSLQPBvSgPYBQIAJYPAGJzhBhSG0oAUnq50FULE6DWSBCYpYRP/TISAICJSa0FYvPOJxz34RQwAqs0U48HPeDGkbYPiDvz/yr/AGS6Th1hAgDkTwDdP3A1JgB5JgOw70SX7TAtYgBVKwV4JAAeaXeOg3deRgfLa3fuyXagSABj1hDSYGdiJGeWRXf8cgbcegAOSQghVQAVfABjLIAhIAAWWgCG03fZzwDTMAXJdSdyH0BHYwVWBQBYrwAoqQBLlQaocHaMZHdevHgR0IAASweyrRAlkAYgI2dkvQDBXgcIN3DC24gtJGDgngB28gg2xwBQdAAeKgCDfwDXqgg99ABTNwKYczAq0gCQ/4A9+gCESgCEmYb06obxo4e1LIfgQAAS+AEr3/hw00t4UO94JdeIIquIIKgHIK4AdOwAZvkIZtCH5EAAbf8AM6+APWYA12kIeSMAPk5YeKYITnEAO4ZwpjqHL2N2goB2iDdnuCBgAFgG0ZMQRZGIlDFm4vGAkv+IX1N3gZ2AksKIadcIZOYAlOEAUiUACudwNgkIOnKAXWdziuqAc/AIuCWAW0qGUPkIEsZwBj2IKJiH6ERoUUkBFAkF5hN24SsAQvmAAJsIwVoAACuYKdEADGRw62qAAVwInXKAIAMAhp1Y2mqIOc4IcvMITkRY4/oAfd2I2Bp2W2mIG6aHsZaAoPYAoGYIu8yHIA0GEX8QKNcGa3BmkSIAIi0I8K//CPAcmCAhmQUieQfuAHGZABUXAFzYAGOAgGekCAFOmHHXkD3NiRYEAEUHkBuaBlCJmBLYiQptCVXemOiGcK/aaBLXkRelAGOCBiEFeTy+iPC+kHbhkAnUAOc0kOA1mS5BAA1BgFUcAGUeAATMCN5ViA3zCVgAgGN/ACVQAEaHABVUAEVHkDMXCVIBmSIlmSXmmLU1d1APB+FnEDaPBs4GaTy6iX/ugH/ZgAAqmVClAIBqmVeZkAUeAEjJABjBAFLfkCbfcDYKAIQHABMXABiwAERuibMeAADuB6kZmOxxCSmqmBgNaVWYlqYriCKWgAwHgRRBADz9aFFSAC9acAAf9QAdkQlHDpj6q5mjlZfLCpl37ACLdJlNl4g4HoCEmwB003fotwDo7gCOJQBeKgm6OoCLQohnipgRrYlSepoNSWlyJpAAVwEWVABgonAVdwk+KplwHgB3yJmuiZAHSZl3DJgiGZkwlQCB9Qm1HACJEAAJWQBI4Ah4gJlTRKikvZm3F4A1LwAum4lVy5oJkpnbdolwrQCWKYnRYBBBQabqRZAR/KoXwZBUGZDQbZlQXJjgYqkAHwAVxanuYJjBegCv9ZnEf4AoFYBfZ5AYqgB2zKo+eHmQoapJlpoHlpkPMYoRaxCEuojCKAjam5kBkgDNcYlB+gAHJakgWZAAGwqNP/eIaOWgHYSYUEUAmVQADIWQn56QCVAJgZyaNOCKcmaZlB6o52uahaaQAO8JkxYHNXwAKoqZDomQ1zIKhOMJTZYKhy2gnQ6I+LagqLip6F4I8AgAbncA7iMKbgJ4iAqAj9CVQQ6KbReahaGaQHmZMBwILG5wCNSBHouISah3Y36aQnmgFOIAzwIKh8mQDUypUFuahy6a6mea0AUAbc+A1yKIdseqM3IA6u52a9OZnRypUoWZ1imJnsKJ5FKpKpWhGOsKRmxwJpcAV+kJNBSa7mCg/XKKUsSKrsqqF0majm4I8f4I8KUAkypgpAkARJAASCsAgXcAEFQACL+FcvMAhk/xCt1CqQooqX4smruoqqebqnN9mh53mGggoPSOsEUxqQoAqvcgmNpsmrCWAOCiBiMjupMbCpTedsyLl0G8AEUBewXpmBq1mXzlmq7goJnQC0FUFqDzebcIua2ZANAnCxGCulQ8m0mKmrptCuvyq16GkAF+CfVWCEkAmHL8AEjlAGfbcBS/dnhMaVsAmbdcmOWqmovGp8BGARFHoAmteXGau0dCsApIuu2eCPrnmtHwuv5hAArfuh6Nm6D7AIEUmK9lqYYKC4fTdjEEABABC5Vhqiffuxk/uMrRmUwVq1BCCMCQF1aHYFs0mrUTCUc0C6pTsHc3C6J6qondC3IGsOrf/rrlMbsuaAAKbqABeABqu3enuwBzArs1ZbAH5FbV7pt7rKt8Frl+1aCIXgB6ebiVVIEUCwhBKQBpaAsXcrpU4wBcJgvQLAwFGQAHMrkN3bCeA7vq2bweC7weY7l1R4qZUQAyKsqZvqAAUAAS9bagJrpbr6tB97v7qqAJCQDYUwlKqJnS6ZEIFXayxgCT5cjbUaBQ0sANQgAI9AuhorwYqKkAWJABxsvnT5q+E7lwYAAVVgplDZjTcAoPxaVnuFBp9avzDcvc+olXPZCZCAogKQAT4JAPWoEIEXCTZZjT48xFNAutRwxNYrDGycAB/gmnzrxBvcuh1svouKAIoaAIL/O4pS8JREIA59t7sTGHvrKLD3S5e2WJBzmckFyb9zQA3/W2iemRCrGgn8xwYHfMDwYL3U0MqtTMTwkAH/OAcNIJfeiwCCXL6G7LSMGgCLCAGNCZxZa3LPRgDySwFOCMPver99a6r3KwMBUAh0+whUurELq8MAEAlp4Ik+DA+WIABIm8eu7Mp1i5of0ADm0L0ocMiCjMvlG7LcK74JIKkmTKmUipz52buxx7FjbKX5e79pvABEPAdLjGoEwAQKQYvNUI39182qDA/UoAxqMM7UgLF+3AALkMi6jAAo4M65rKG4jADGdwFMkFbcGItdXFaDIAhogMyBVqWMOsbr3Muu/8ulDbDG3EsOqca8BqEIsad53tzN3oy0RBzRy6AGypDUAiC6R3y67BzSUA2+GuquxocGr5fFzDoI9qYKLN3SvkuquuqPm2ylKNDCAZDG5rAAj9DUzoydi5AQBAoAS/AG5TrUSHvXRd3KSb0MD4y9j0ANcwCX5gvVuWwOM/2uqksAL9vSBeBsLgdwFBB7zQmviby6Me265sClWvAIGXDWfIudVngQjkCLS0CudIzXq7zKrpzUykANwsClj6AGUwCXclm+C/ABt70AG13W7fqzH9zYk3qpwC2/FVin8KrMjAoJkODE59wAj/DHauuVBvDGB6Gkx1ABgVq6qQ3OFM3aSf8N2HPwCBI9BwsQ0pnNpXPApeXb0U8rl+QwrMmKpv1ZBvw6CF7tu2LIy/erl66p3OZrDg2wC0cM3fg73QlxAWRwDNJ8xw5MxEWd196tBgIwB2qA1FPwAZ2AABZ83rL6AeCr4TKg4XXZkjdABS8AyVxdZWiwdBR4cmbY3racl9KMnme9AA3wytmwAO4tktRdEKowmZGQDRlwx6+c10Vc1N7d2lPwyUitDHMQACjQ0eB72w2A260b5Vhel5XwsjFrciencAPWuzGrcNI2je6tlx+QvTSc1h/g4FW+qDJQkFXb4wShpACgANlwsQ8+zkge0aydx6Tb5I9g2J3Q0Qtw6Ln/vdtRbqoPcLWWipzOVszHTAGNgAMQgAMOQAbPdgxiIJ79y78nugC03MpVbg5qK+dlWd2lBoMPTdSvvNrU0ORJrQaPMAV+zg3K8AFl7cS6zcGK3tFdSQBAAMmtVwaOsFcU6FdhlgXMnldZ2AgxQKFiWAGfPrrW6+GQEOfQiMMIscMF7ARErdpGPtF+rgy4ruTlzg0N4M6HPsgcHOW6WtYKsHaKUAZcneIX8F30tgE6gHF4Qj4YlwXxlpaRkJM1nAEPjtvKLQZU3JkIUcoWKgzCMAWrbOQUXe7fneTcoAYejgCI3uvvjuUoELKo6tjBV2QFwFfyJgg60AouzyVT8yV3/9IKRTBrgCoAasDX6V3e2S4DIjnKBNGwD7AEPWy9FO/gFh/rSU0K2tDa3k0K5v4I5c3m7f7EUJ3Rqmm1V0uFYLYB8sZX2LACb3I47sJZX9IKHfC85roMro292WC+kPC0BrC5BsEElTD0BkzU5krETt/K5M7aTJ/kgJ/r5Z3bh17Y5n3bhUAAI7e7jdm7IkcBRYADniD2b/IE9CMnqSAJnvC8q9zawpDeHp7Oamt8AHAQE4pmTgDurt7df630SU0IXgD1gs/0HJ/WiN7O7wy+DdD7DdCZkM90jv5lkk/5l49xL88l5OMDGGChn/8IwjC3hQC+p762jG8QA/wAFbD6RP/916/f2n/v3dqgDYQw60tPCtzQ9FWO27pt3h+OAB9A6xUuDMh3ADbZs2Z3AMQPAdgAEK1aDCQ4QhKUVJJOYJDgRIAAatQEzPnwodCCAJA6kSMHYFETkCEF5TrW0IkweA+nRIyoTI0ymMqoKeNGSlvMmTRhclPzqIE5BEFRBCVqbkGDncoEAABAwGmBAg6cAigAgUIRbE+eDJRkx06qVFBQpVLBME1Kn3PmCMiWrVAAuOQMAEATMuQFAJGuvHHixNIUAY9YtozpUhkhbV64FVZGarFjZQ0WIBiKgEZloEdfwnRSQJCgDRs+o6EQ1SoFCNharSYoqYUkVGOfmJBg6WH/gw8PP7iF1Hvj3Lp2m8R4EClDXwHwIj58JFjN8800SXnxApkmt5rSIwOlQcPyZQRGGzQ4o4YUqaUFcER1INUpgQIUNqQWSHCgwYSpnhgbYCml2gbmyGYyFGjQKICOggtJEeKaucISCIWBSKKHGFuMG8SoI0Wnxgo7T5k5JiPKsvDEa8C8xQRI4wAA5lJAhCuaoUq+Rnx4YgT7WjBIkrBUMKE/eFJqILA53pIBARk2OgaADYRzhIziHoQwyOYG4/A8xxC7SacPd3KMGwE+ELEoERdY4Aya1GgGPgoouCCqqeIrAgcOVNiKq9d4lESSVjDoT6IAH2KrkEIQyGgjuoQD/yKXB5a4oi8ngoRIDYgKw06bxLzAlBAvr+QGU26okcxMo8wsEymeAJBPEFUEuQACOOPboJE6n6iPKx7tECILDA7IYI7xqHlEAGEyyKaiBcwxB5JIIBBuEUaXECGK45gbjDAtMd00ppqwk+7T6h75gEQEkk2WqAV0kqCp9qZiasb5PFGBoNVaGQGhhLDptQJTh1QpMInM/EAEAASx64JcDnC0ryhOYqk5Abw8DztCCPE2qZ1q0pabBijzLjOggELgpWUsWfddAA5oJoMKHGgTB080GMEgHW9ECJURFgIgDkiCWuADcwrJRq1hCT1uAAfsWiTlKxp2olpBIYr44uuwW/+MW50upU5TNSYTUdlkRT5xmQOqarO09phywCocJjjB5oT23HMgHzDIqxMZ4FqA0EIqGu+DAD4QxmQcQlp6iTTesESYwZODZ9icrLMasQu/vRpDTDWNrOOPSUVhqAW0IPu0NmGViioIIDChgwk4COHG/MBqoRVP9s0IrkJKhSToDyTbzZI3Dih8uLyuYIPaYo+zrUJvL9cGQ5m4vRjDrTUV9WtlzfmchgXU4GYKlJlqphkRDnAZBwzS96D1EDSwZWbXnpgAAAkqUKC3jHTv+aiHhNmLBQCAhDiOotax5pABlFQKa1bb1OW6dSEMEWJrNxEAUIaCAgt+zhxqoMYbAND/rkoQAAAVyEAzXOaA/lgiDRgwhts08AQSzEwFHQBAMypwu050IjxhO0oDhiUMJ1yBYE1QBJQU4Ic5MCIDS1wLNaLzJYtpLYpW2xB2SKGl6pFCXGP6XCc+1z1lXEFWFEDDBi7gAHZRwAECWAaGuPGGFp6gfTLswAHqZw644A1dPxtP/5wggkgkTRxQ0kvDqMUIwDgxJ596HsW2drWswcQxmZqgGkKkvQJ9rjIvycAHoWK2AjxFjQ4B1zIw4IEenEADqzwBDW2YO7j0DAG9MUr/BJSNChCgLkUsDgkRiJKZuDGCn2IgdZ6XlOzQJHPVq05kFqBDy2gSjAKIUYvmorIr/3xwlNSQoBcIMYAWckCVKjiBMeyYgGR1QgEBUBZc4EKktyiAAIMAyZMeEAc/ZAAwE5pcFK9znm5qo4qNgWC2mKkYanARBV7UjAgI4ICqnE4EAIyPA5zAza1ZAgOsk+MJJsAQCSRATG9hp6E60bMEPKQQCgDABUICBCjFIRvCeIRMBmO1nWDKJpk65k6mmC1KGhNEIusiChZQUwWsDQ2jCWVT4kOAlVByGQPY6AQ8MQH+DEACfkiWO+FiqAAgoBAqBUAM7AJTACwhAxNazqQspS1NaeqYk7Ma5oL6SDWMizKahIQP58Cih0IFjU6lAAGigFHqEAIeVGVhryDEAq4Gjf+kePSqH3BZAHqC5AZLS2tKWJIcAaykpjFZhkQc0kaLLYMQqKUYIw8qV46JaKEoCJxa5hI+CXjQZQTwgwDAhankAC8NZ3mIE5BFqGWxExIygEQAEuAHJtlFHHgpTqQekhJBCSYmApAADnzw3Tq+ISLLYG3FMrdMZnLjEXMg6lDM8QEFxOcClWiXCB9a2ArMgRrE5AY8/AOPNrZRAJF4QCf4Vqhl9YwGeYuvk2JAhrReQQIsmNJtxjOeKUjAByUIRIe/MMMDpIG8bqScNsyLXqH+JIOgS+oFUPNJqbSnsAowB7BCRY3FSuAKAlitADLwUAIYIAGFgETuEswRMQBAFU7/ugCE35Xb5QHrDGcYjx8I0IIOexgKT/ABbdhIsWwhBosT1CIeZ+veAHzQPUyRwLp2G4nANYC8EZERAK6AHR/DxwEGUMCQi0yoJHGEAMJpwiLeJEL6vYENbFhrYJqDGxHggMNaRgSOVoCDA7CxYhJ83qZRzLWOadK9nfAke1I2AG0S4Bjs7B6YluEEFvlhzk5oCgEOMGTL/FkB5DjGA/ZA6BhUgs0sgEcaJLAEYYhqPI/oSRRMcIIRwMAFXXCBLd7XgizgYAkArpimzGtXZmrjEebwIgbDE4DAps50aVR1AMx0Bi2wJAq+Im9y1qWyBBjFO9lIQACOYYBBE5oMuVgC/5Dg0eYr+IEcCvgANUoL6w6EIAU84EEKGHDxmbUAG15eBqg2Dea7cuMD5f4cAuT5UPec7r4EWGep4u1bajxqGaB9wwAGIAJCzVJo/T5GJQgNEggDSQADsOMHCVABCQkg0isowRcQ0YUuvC+GI3hfKzD9BtWKmVsZqp5Ax63J8BigPZUIpQjHl+obKgsBcn5EqDw7B5RY4mnGMvKfj0GAj/w8F5FIw/KaYgIHmOAAJ4FHMygwAxvcIxCl+MIXSlACSYyABDh7gr4k4Fti0uTEE8wUN9irQ6PI02xtaioBcIDfsIZVzg6XFDzako2TFKstRFbAAwhg1p8D/RgVsI0wmP9yAJu/ISVpwIEdssz4L8zg8ZEnQQxbsALawKO1FNtp1zn9iMmAntRqhgoE2gNR/N6P1btoY+udICBiHdBYta+EKpacewEWZ61OaEYaBpA4S0hEAhsoQQScjggLKIEZGEBdybjZwTQRgyBwmyC50oZlCJGgMIcHoK/TQRk2AYAE8LOekbMbSw5hUD8E4rcHIIMmgT/hgJJsWIY3oLCT8A8ck4AJWAEVUAEGsAWwkBuvcA2vaIFGAADbWAaaaCNtOS+eep6E8hkDiI+z8T77ig8AEAE/KJSLaADz6rEg+UB+AzjcM0FFIQMFsAQWuALG8S/lODgTcJsQkDgGyLiuUD7/r/CKLPgRAEMtLeE6E1umm/iJcqkAT1rCwDOBqgCAKCQU1VODTFkteLiCCpgLB3ApLsw94pCwNECOIPEvY+sADshEcdKA17CDAVS+ErADSXiCOppDkBtCUOGGRxqVvfEDETiZ35MADHAZQTSWfruIR+gmxRAGiCqAR+RCaHGQR0mgK1SRjcrEE0iBebEDAZyBN9wT+QGANPgyi8kQbakYrdEUcemdBUgAEXjFNmszwrKzJfKDzPCtxHDADEiaX3xEkkAceACMIIEQS7gCDEDDFFilJ+gKr3i8r4g8DvATbqvG81JASgITMVmAOZgCFoiCK2ARpgBECrCzp8kGkSmE/6xzwDRwlnbkQihZGJSoRDAEAO8KAR6QuHxkAChgxlD8ilRABQ4AgAGQPtc6RBLLRnEDlpoShihQjqWQyVmcSDEUBoskigALlc7oSC6MAQA4hkepxHlMA5L0hBPoKDmSGWZkxq5IhVb4qAEQgOchQhOzmC8xMWNSg2ULI/pJiabQrcK6gv+wIAToHWEpEgAoA6WEvxiIluOASmFgAwCoqh7QxBC4l5b0ilQYAeibyY47sQaqq/PgKfU6EWWoMx1zCg/CAQgYIQm5pMwYj2ThwxLMS0JbBEKqAKSDSkuwuQPAAC6ogU0kgZVsyVSwAAbwSh5DRdjCjpkwKG9SNmoAAP8TSBkJcIoV0kwCWIJIgQdhyJ7wCIrmOgAFIU3h2AMjqoCZui7gUZwB6ABPECeLGwFUcEk7aIFWwgBLUC1UfMy6EijJ/EABYBHgowoCuAITOD0CaAhiyYAFkCWi0IgkpE5IJI7dWyv/Ah4IoSq3qcqrHIEbnCEMSAOHC7NqrCthsolHCq0oEJ9IgI+UgQ8IIAAH8cnJCJnvQAFyIACDEdCfW4S9FAPHsQQ2WJzVFMxUkhkoGAEI/UrXkqvUstAI2ql0FACW+j7wEyGICtH6ExKMmKWg6I5OMAUA4EgWbVEyOIZsYM6n8QsVAqcJ6AE17IIQ8Epus75Gmpzn+ZKafIT/KV0EN3VTNWqPqrA1CcCuEpWly1ioKa1S+IMpcniUDGCE5QwSLxUnDvCEDvCT3OS8IfypTbMYuNIGNaALR3CEcwACIECDAqCvObWz5PCJc7kgTSIHn+PTnxOHPcgFcoC9DJC7H+wgFvKA9JnJRaWkdCQxRw3L8wpONKhUR8BUQ+u+EPVUNhIXoICE7ugOFDAFFTVVQkNVVb2C4xicpJOI/1KO/RozzqvQfoog89qaZaCLQRiEMvjVTI2KinrChwkR7/gOGUBRqnDWLnyABIC9FRwfpHuIjtOUCEKxsRQmbiVIg3oeA0CDQRAHhP3VRYCVdL08h8O+vUpW8Eiz95PX/0Ijg05oNHigilC6PDbaFE6z1VSknCj6V8zZPMVQAAoYBEcQh0oFAtCAldIYIQALlVArEInVUyqV171EOvJahnWxm7MYMTdaz2usQ2zEHGGiGJCNhJVtWUcog0FQhfmwilDKNG5YBlD1GXfVWYu92AfIUtXCjtJKifKqQqD614/7OLryVlCRznOI2pZl2UF4k9KwtQyYs/EolaCQgQUzBQPYWVOFFixVjjZaWrb1Vre9SVwF0kfdGKeNW0v1VUd4lVdBo94ir7QwUb9dqGPwRYtlSgWIAglxOPLiVooZ25qYIjfKmmpcW0/rtptQgAs4B9ud3Eq1XDhRgNKty3zrGf8ZCF5By7vBhbAKsC7TBVLlzdoRO9yfPdzE/bZsUQbatV3JddnKjQG0wVs2AppCSIBZmgzhTdHR5FPTfAAF2LEJ8a2jXNoAK63DNd3nVVxHjV1uMIAYuN1KxV4XcxP6ekKVaq4RQZJASxRnJVwFyM7l2K/mzVoHJtuflZqbgt6kbS1ItRgDqF3bRdiEtdz5kgoSEgbl4tpZWi5SowCeJYl6FRSWcF7mfd7DzdrBgAjBcKK6al9vJYTgvIAkuN2EdQTUcJNgQyMFWCKL8E/olIGOAF1ThZJVVQvGgYjmfd/5bSPTvZaIeI7rqFDV3bTg3IMe9mGENTQ0uIAPbspjIZT/3igKEyYHBxiC4n2AP0WglMBWKnY4sr1hh+MglpCJzVDetVUvvLNe/XUEFyWNIRYhac0AIkPWdtWIjSAAJojjOUYJYMJj+J2Jn4UJGP4sluAg6YlhsjUxAXCAHrZUMSbjV4kBViYA42BkZPVbGsgIjSCHB3AEU93LByChQdVXLF6OJZLiOZu5h5CIa1EGUQ4wbPSDAojbhN1gcShjN7kAVg62J3SCbFiu4N3m4DWFB1gEMODTvXTKYZSUYmajazmAhwJgK47gBeZkosXGKVqGCoCAc+DgKqDcPXAxM2bl/z0AaU0AR74Mbe4EX7uBKkUrp4SUMWSr8SqtNHCZDRDK+DmcuYepEjXQ2vGaPt6kizJA2CpQBEXwVTNGg0VAA1ihLxE6ABHot95I1hwyBVMogBeo0oFD33waQ7OVX4eTCOLbgBUQBByoDWx16BYurRZm2tUKTkH46CqoAnGA6ty9gDc1YwoUoUhAzYxIksv4W0m2aQBA35kKSZ9kq3N+gzPEBmwYarNF6oeuEpsiWqWduXni4KiGapc140UAVmomu6lQmBs6URqI0gdYUQG96SOCPSCSkGGJGgqBtTOcANpgAanxCQHwIR8alubgIPISnZ5+BD+AgDJgAiZQBCZ4atQ2NEHYX1Uo4xiICqYwAHfKoZi2vcxqx4AAACH5BAkIAFYALBYACgBzALgAAAj/AK0IHEiwoMGDCBMqNAiuVi1wCyNKnEixosWETZoEEsWxlBFRgTKCy3ixpMmTJTNuNPIJyRgkMD9yDBSolKiMTVih3MnzJLiNoli2zJGDT44xLV2yHJMjppFSgXT2nEoVoQ2gn5Lm2FGjxg4+Xr/y2SGWh9kj15pUXVtVI0eXTMeADcKFC127d4PU6MGBR18GEdgK3tkk6FCiW2tw8cB4sQe6jfX25cthhI3BmC1q/EQUCeK5i40ZY8z4bt0JHDj0WM3hWebXEd16RtxyB2QPGEYznsB7wu6uE7r2gAK7+MGfb4kazaGY8WjRzzt04O1hNJcOeHvYMs5d4EiOQ7nW/wjiPHd10aSnO9f9WC+DQN2NF146ZgxX8ufze5jOuwN03MZgp5d2l8WXGXKicIaYbY5VR9puHZz3n2jT7RWCLwa+hlVRX3VVA2no/TddhNKhtx8XqIVggVQZDhaIgrZ50FtoDq633wTSSZeejDVUxmKLbLFiy1gfppfjfiYiuV+OR0qHGgepQASkYDaEMJ5jujGJnXQontZbDRN4EqaYHJygwjVTDvbMfc45x2RvwfVY5glmavBEC1C0ooIKT6RSAghpsmWDBs2tl6WTYaa2ggoajGALFKlYUEoEzDxj6TMgMMPMj4Hy9AwHYEYIXYBvTrDCCo1CasE110QQwSQgxP8qq6ycdorSDCeMJyGpJE7nSQgpMOAnq9f4QqmsNtgwKwgF2soTCFaGxuubPYagwqMlXFNCtscuu2ytzl4UAQM9cEGhCVpOxwGqDDyaip8l+PIMM95+G+5Oz7hQ7qjT8saBtQx04W62z3Rbb6zg3kuRBTDsEBq6AS7pL8AC2xIpq75oerDGCp/EcLnnpduBJyeEoAED7Vq8asEF03twsx1bVIoSzSWJqKIanEyCwBdfw7LLy9Ibc0mlHKHYf+vx5sm6OQfcBRSr+iK11JoCbWmlQ18EAgNgemACe4zx968KTpOgsgXvRpr2vMzMIAkULWRt0SSE4uhfmwGGecLJDIz/QILZUEAxAqM5h9B3CTPMUEILrbTimtwT+QLqYne3OTIHKZzcxeYodz5C4IL7DUWxJUiCOMyQJ8TKNaDazZ6TNZSM8s5dzA61BZQ+I0kqtsBgrLaSzJBw6gSxkkrr143Wq95kd/G37e9aIIkkLUhyDdqtlt5KCcMTP1AqYvZ3Wl2+/svA33+DnsoId1ZfwjMWQG3sM4h3770VUIRPcmrAKY35+WZTGasssC1LZcsCvYPBNTRmP+894wSeCNbmjnCEEHDAE0sz3OZs8ahVFUte9HrGDOCHQAUeq4HeGwEDYMAAJcDABTDoQgpScwKUdcEFHOydBSxgrIxVylJo06Gx/5ghpfspxCMuNMIYXOACBqQgWE7b3AZtQcBiUcpVEYgfCWCgwIyh0Hs28AUMjGAEJUjxjGisGAyihsUI+AIKf+Niq5hhxIiwIgJkfOEG0ZfGDUJhja0qWBZFBwWL+ayOC2EFCDzCRVsIjHZOU8IRpIhDIbrqjU6zIRQeh0jVibGRfewjE3tnxSwW0pEwvAagOqm6CHARhn/jXBTRaAsY8tBVzIjAB6eGKVYqBASp4CIonWjDNDJRjsa6pNSw2EtfJsQXN2SiC2r3xIBRkIKbO2YXp4YxZq7SmQcJhA2LyQC+GdOWA0TbDnf5DNSBkyDP6FwmOzdBJZjxho9iFRz/9v+owEXqnQqJgC2iKM/OTbILSsjhqmCQQx2uDKAKeUYsa1dQBhx0mi6Qny+I9cFjQTQhNtgnRXPWtCiOMhUb3WgpKfVR1aUCkiiDIsqwiU9IYWxqEWhmSw1ivInG9IkyjWI+rVg1Zrhzp1awwUt3Js8nAqugm9Ooq5CF1IKwwgbXoN0RnAZUYAG1cyRQFVG/WVUrKBIEFiCBNSnqRKA6tZoocxcBn/FFVipLUzCAaUFJGoK+AksDMoUChsoqEGWxogS802s5nQhYBvg1NSZrVyo4WVZWvEAIWIWjDSc5TpRp4AhO7asGYDBZZhFWIDNYwQno9wQVVjRgr5XsNRJngxn/MEEKUjiEPA5xCIiyIrU+6EALZvCE2MIWtlHl4UYVZwMp6OAFueWtHvSgW2eyQhIrkI4JfDADIZCtorU7Y1hXpUsCSgIEL3AEE8TBBCa84AVgoIIUWMmKQwwhuxjAAABwMIT7Go6em6OdH0e3Q/PaYAiDGAQaNkCBBg9iA/SgB3vvBw5WjEIIwc3vAQ5gAnFQwRWMGqfz0Ie+R62xwCU4sCA2sGJBoIECK6aACRyAgyLoALNZq4U8pDCDVvjABADYsAQOAIBBUGEIrRgBW/dYYg7e7nopZsIGWCyIFg9CEBDQb37R5QMduKJjO55BC1bw4yAfQAJoBsAG5MsEISi5/5ybCFgs+RlMD0LhT0NY8ZRZrIpBiIMeAAi0oAFgAhxQQAejsJU8autjHJhAvxIYgKQHIAEAFGAIh5ACntRqTvSJLlIeHEGUVVGEBW8ADarQwZEJEOgHuPoYDwAABrbbCiFMSR4WFsIKcNABDGz4zGiW9JAdII7cDsFv8hzx3z4HagSqYAZSUIQqTj1lQfSZCYMQ9DEM8IBjwDrQs66xrQ10iFFgF0f6BUAz1t2MSF9hAFcgsiqokGkhtECtNmyyqhjGgGdLoQpAYHG1BTEIJqAh0N72tqu73W1wd0AH3bmqJHzcASAH+gDN2HAzRHCFd19BBBKAAHRZQQUhiNR5kP9K27uuYYsQDFcK4qA2lQlu8FYvHNYMjzUAYk0AehSHFTwes6P1e2Z2G33jumABC0RAgGI7Qw8vkMQI/Ga2tO0bBhoIQfBgLogGM3jKBb8Awru97VcvfOGE9jlmwtwKMvda0EVftwTYzfGOi0AEan6BdN2Gsk+rHAqODQG09QCERTTY6zQ/+M69bYDGn/3sgcYBEwZjg1G4wu2PDjIveMHuzXe+An6IwhWccIVmFIAJYPjB01/QAhWSIHpW30QIngBtKajixRT4Os0pkIudu9oAsHY85APd4SBJQdcZ1jbnOb/uzVfA8yJIQwZE3/Eiv0APznAGGIbgZlCz6l0j6Kv/EEYhBcIzGPcw9jMFfN/txrv/8TwnwAaOehIbvMAVwQXyhjfv7WZUoBm84G3L53wVEAXTt3QAIAiop3o/oAdu8y7zkwqCowKt8AKjMF0Bh365JwjiIHY7ZwCm8Hvw52qCVgBUMBVAN2boFmTNIIAJt3kBeAwKUAGNN4MVIAIZwAKll4Di8A96wAlAqAejkC0Zcw0T+ATjl1t6sAj0UASHl3uqIA4QYHNmx20jGGsOMHk8YQMTl2EYMHfrVgFicAwwyH/HIAYz2HicVwihlwEfRwB+9g+pB4Sc8AM8NkKp0AJPoAIv9wOcsISqAAQXMIgQsGCDUADs535ld3ZWyHOC/8ATPRZcbweG/lcBlqgAMJhwCpAAvOB+vLCJoaeDRSYOigAGP0iHDTgKbvMEdzIDF+iHPwAEjiAOi7AIqtBn4jAIlQAAVuh4CjeC37YBKHF/bkd0ErAEGycCzaAAM0iACRcACUCD3CaDCZAAfjB9CcgEcjiHdPiHPTZ1kkB+fviHQJAEt+hn7kUFOsBqjHiGi/h4jWdpJyEORTB0QSZpImCJfnB3/seMzJhwYgAJftCJjXeGoOgH+wgB7gUG3NiNesB9Fjhd4/gDRFAFixADEFAAEAABF4CIi1iQD9CLIqhwAJCFJoEGrHYMzbAEEnAFaXAFoHeDIuAHCSAGaOiPm/+4BgPpeKaAhgGwBmsQBUzXg3pgit1Ih2BwA0rJkNOlBw0IBkmAkRnpAAjnbWJQkI1IdmS3bccQaINQEuJAlQBwjNEIen4Qk/l4ibwQAAmXAD+5k79nAGJQjaEXb2hwA6k3jnX4lEp5A0QwDo6gCoKwCBdAmJXAge01COzYflfIbcCncNumZiWhCqyGcf1oiTKpj/nIjDapAGIQAAtQCNLYeD35mYVwgFdAAKjnlKxZkY4ABEBQBURABLQYA6wmaMSmCLrJBFT5e6YQgvAHgu44ht9GARdRDDEAAGRYiZhYAWWJkAgZjZwZAGhYjdJoCu5nAKAYBVHAAgewAdvol+P/kAR7EAPmuQdJMA5VMIviUGUrhgazWAXioAqt1ojYuXDZyZViEJKxZpwWIQ5koJzJaInLmAAziZBBKZTOWY0KIJfUOYbZqZ1syJ2iuAGkSAR+WQWKUAUcKptLyZDiEKI6wIHiwKH0uZUiGJIRCpAkKYwWAQQBegxLYHeX+JNrkAEZ4AROgKMI6geYWJDbJgbY+ZummQDTt4MQIAiOoAizqZRN6qTrqQod6QAOcAGK0JfiQAAEoKIgqKIMV3Ys+m1oYBFSkJwPUAFLIJT+lwAKEAB+cKMCAA9yOgVTIACMwAgV0KCNB6Gk+ZsB8KcJIJrPBwAEUAkFYJ4xcKgxUJ6I/1oJWvqoVnqlN+AIi+l+RGoKCZepONmV/kkRRLCLx3B3HyeU1QiUNwoPUyCn8MAIAiAAcLCTQ4qVv9mTbdqmAXCfhXmLt5gEsOkIvqqhAOerv3oD/4ChlOpqsxqrmAprzCqDtcqpFsEEMcpxShcFzgmUjDAF76CqTrCtrQoHU0CDQ/qbcjmrcumT1MltQICXpohbuDVd5ScFN7Ch4uAIfsaQDAkEvbdw5Fp2wEd2N5mnAQgAEPCiBKCS1Fqt2FoNArCtqQoPrQqxcAAH1nqV42oKtDCr1cmgtPAAlRCfG8qh4xCir0mejvqoG+CX+bqlyKqxIIipBemPbMqmBFsRZf8qoHWnCzv6phnACBkgp60qAHX6rdwwBT76srOasbPaptXIoAZQqAVQCVI7tVIbtWTwqFq6AUmJW6qQCy1LpDYZtsdAq/6IhtxWsBQBoCrZkjratjjKqgLws3QqtKnqqhOrCyLQoOYqpMkqBrQAjWxqABTgqyVaorpJBFdaBSMbouKgA7cVryeqostqlefak8cQAHnqmWIAABdQEYugbhIgffCQo9uKqqhap6oqtBI7sXAAD3l7sdj5shn7t9YpuPDlrmAgBfgKBq6pAzpwZcXGW7bntVzKovsZtrSwiZ7ZoA/QuRQRAw+wBGlQunH7Du9Ap3MKB0ErsUELB9wAB07/4JbJaq4YSwt/C7gKAABoMAjCWo5JUIt7cLKDRgG4dQhUoJghOaQ3GbZ8m7G1GgC0AGudGhGOQAYymgZOkLrwsK3v8LOuGqdxmrquyg3cAA9+cKvJqrRJC6h/+rRUWwmIugdRS6UOILUOsGYvQAUvgL9Iawply7+08Jl/CglsKZkTUQxeWwFpoLPwkMByysDfqr0LLMGsCwcZgMF+Or5KzG0X4AgcqptMiqHyybghemUj+gI117JC2pn8G7Y0DAmBa8MSoa/HkAHvoAu6gL2rG8QT+8DfarfKMLEJoLTnq8FL/AAFUIq7i6+K0LgJJpgUAAGBHKLQ+wB8W5pdvMUB/1AIhVANeFoBB4C2EQEGF5ALx7DDOiqnTgDBbczGrPvAcKAMFKwMa0DHSly+dty87Ft4tXiR8gt3EmACBUABHjm25qu0NonKAAzGN7oGlngADjARQJCc0nvG1ku92pvMRRzKcVzEoqwMjJAASWvHqHzLv1mohmqoGGnCDkAAJEwAwIwDEMCyyJuxfouG/vunCNDIjFAIAaAAx9B0EnEBZHCm3dqt1quqdbrMytDPcRzEcSzKr6oA1azBt/y3Gdu8IQrFSknFjDsItFwJhbilZ7jB5uu35vuni1wN8ODLzPi0qiARMWDJOrzA91y6EAvHz/zJy8wNhMAN0Wy+KHDQ5v9rCjOdrAYQA3rMkA1dr/YqmGhQAASgkSgJfAqQ0e+cvEeNsX8aBoUQt4WgvF35lQtBDwF6pmuA0kOsqqzbz6PczHY7sS79vYWQsTNNC2ct0whgzSG4B61MmEJ9m3DHcRItCATgoH+a0RltqwEACYXAqmvglv9oAGO6EEnQe2tZAWvww/qc0l3tz8vMzKLMDdB8qwGQ1mhN00rrwdocA1NbAAXgAFHLas1QCYV5sDZ5y/17voD61w1QCG4JoTW7EJ/7ALyQAKeqqkDryZLdzI+tDKRACmSttCiAsb85u2z9AItwoVLs0K+JBpWAxxewAXedyxeN3H/KtGtwpwJAk/D/vG2VEBHQeww6nAFZrdtB68n+7Nv9TAr+zA3awA1HrNkHfdO/+QB7sNP/kIuDMG1oMIhCbWkTfYYIHcO0QMN9TcOBut2tGtj+aADhrRAAqpyK3ba7HdYT28zhINm//d7cIABuedO3fKuZnawEUJhwLddBpm53dwAFcAEoSeD7uXDM6JbQeJpvnAEMepWVAHEJUcC2DXo/S8SR3dXM3OFerQ2kwAiQcMuYzdb3XbWgbaigPeVU+XwSHeMD6wAUUASN4ABAxgugB5TfOrqcuW0O8IgJ0bXkjcDdytVFzt6QneG9TcGEAAfubNNnfdZKXAlJUAX/oAjsScVXVgBERtTK/zmwOOADdtJ2Xt7N6pbAAuAEPuqZ20YAan4QUiB2B5AGImDhqyvnHR7Zz+zVFBzTmY3ZxT2rcEgEWNzf7/liGUkAvODihaichLros9cCQiAE02Nvp1JmxxgHYhAHsOYAipAQL7CL7bYEn46qAB3Q6z3tzUzt760N4fABCLDWKNDtMu3txn3iHSnXvzaTGZCnDjDRBAABRbACLVA98LIt8u42Y1ZmmSrPCDHhS4CmCOytRm7t1N7b004K2qANU1AIa43KM93tDG8K2Ay1VQ7aW8qg646SDtDuvj49u5M2BUQ/iNUKRQBkCQcAIY0QjuC10quj1IvhzkzZAZ/h603BpP/gBdieAduO1mmNAGcdAAZwASI66PwN3Qrgy+m+fgSAA4u+An6l9NbSWvC+LYyDA8pJhg8gyQbxuaFKuhDr2DAP89P+1V9PwRSsDV5AClPgljh/82tNCzTwzpj+30/YkbvICxkQt0UfaJU2a75iJqzYeiOAJ++yhz6AAVYZzy5qEMScoz6sz2G93sEd8y4P8EmuDXAQ2DiPAjqP+d2OADx/1wYAd4FWAYzAuk6w7utX64S26D6w66Yj74i1O4Nj72MIAAM8EC9Qz26ewD5Mt14f8PAt+e0tygX/4WHA8GhtCjofAAiwAGHgwaC9kYKMBuO8Bq36DqZPfDjQCKfSOCP/oPGIM0LbQkB5UgQp2ZV5bBBAXtILjMyk7tXuTQja8NLWHvnCH//cUA3cXtyXj9YIABAPLiwaVLCgIEEXHIiAJ+CdgwsbHDiY4ONECBUYVbR60gKKpFSpSpSwYAHKkxU4ABw7BgAABSsxZQLJdcxPhndT4O0UIADOT6BBlZHiRkqbNqLKlHFT2lQpt6NRG4RBURUFAhoItGpN8IBAAbAFCAA4IGKNTzjwIG4o4MMHhxNxT8A9sWKFCrwdoYRsgbIDgCUVRDTDIVPmIgC80kTR9c4xz6A9fTYlpK3y0adMnQ4tqs3LUTjVaFklXRVBtShRmh0AQMABAAN+gj6EQMFB/4cJEzzttqjiiRBJIIODTCVphIoJJgY4ycDIiQQIhq3EAJyGhZOdO6cARSugadHPUQk5JeW0KFTPXryQEkDV6mirC6q5hgABjSAdCQkw9EmbgssOcIPrLo8kGWmGEmZAsARJoEDugOUyEMEJJwCQrpIHlkjDDyfeya6hnoRSipSkOtOMmxOXYuoy9bwgpD0ERoMvvgYIiAiNCy6AoIBKAIiiobQIqA0ADASsawWMnnjiI5EORLAFDSbAQII0KlBAwwFgkomMYzTMQCd4PEQLqM1QRJEoQlBU8cyl0KysxTQZibE00xpYozUAFBCsue1+UmYKIf8rMjdPOCj0Irw4av+hheH6WkHKA5ZYI4EKJJDAAcO4lIBCJ6YQYApQx5yMvKKIMtNMFUlE8agW1dMmnAWqktEqBBb4wAACKnGAgLEU8K4peL6CQIIBMMDAA908ueiJEfaCYoRmPXpCBQ7+4qWCNTJYI41mHBAnJnHIeCANXTqEB1RPQx1VMxUvU/U8VFVktVVtuGkAATqtMqCS+xASBI0CFPDzTyEhuKKhYpGFKwRoQyLpmpEkeaIVH0xYyY+b1hiMgEFiUkRcER6TzKcQySRvRPHSRFHlUlulV4AF8EWBBhpmpmGBrnh1aecr4GhqCgfqiwKOnuAxFrdCQ2BgryYZREmlYyooJAOqKwD/AA3DYsiFF+yI5s7ngZsylZvLooK3XjRJ+czlz5SRc0ZaF2iAET9EiOIdnzcTwIQdWQgnnMvC0aVYY5DtQWlbPmpBhRX+ioOXBHBa4gAtD8tlXCCJHtPkp0hUOzzx4O0sKra94Ka9AGyWOQxTvroADQoKACCDzZwo+AoB3oQTjsExMGYCDpSe9lGL49CzECeW4Fi6JMRdAruSB1aTMxJZ/KyysckmhRDuSXdZGzjkpJOG1gugAI0NAAbgV6WcCLoAXeAgpFVC/oan2GOBDyGEE3z46xgxiEEBCdDYBaRjhSo4D3pAIZvZViWe9LiKe4Qwyqm8V7rThSErWanKAjy4/4YrNINneVPKO4RUACfIr1XcgEM4BEA4LtQALoaS0krEQAsF6OlqBxwHAcbVp6e0yXMoCo/nvoc2pjywdPSCwwditpWbIcAUZOFFFNalpgycsGfhSI82GkII3vnOAzLkAAcmYIwDHCMOtAiAAo7Bi0oc0AqOqAlaylQmy5gpgq4iW1FUBLolto0R1diKVlBgikpcgAIXEIuv1qQM20GgEk4IBzdcBYd3CKBe8DhA/mowAS5gAEJLkAEkEhAAMRigcoZZxAMqsLnNlGl7Z/oeUZCyoqh4Zo8rhMMTaRUGAwCgEhBgJAG2o4y86eJ98ePiZzCZyb+9g3DGwsAAyrWGAP8EoAIJUAAB5PixY5xlVCoqk5nSRKIW3dJM5dHj/OYHugnWC2Yyu8oCwlCNnkzhCnY7pppE8D6foOdV95OACHTREyfoQhfwAEoGTkmLAApEjqo4RhpABDY/gU0p3CMbBT33rjad7Sjzy6MA7ueEnvwNDoWgZ60CwKux+MFTAWVKOK4QNAe842/hqZ8uWAOANPhEpS4UwBoKUYg2HoMAWJPOEBzQjIWC6ifRM09RKGjOlZmKZegJj+AkAAAThBUDABhAOJooMwSEIQwB4Ne/ZBcFRjTAZ9wIxz8hQAB4AA50LowCL3jRDAHQtX4uVMADDBtAAxRAjoIAALEkIKY+mWz/rqcS26lONbZ6haNCHcABDnCTG+W0kBFhQGutFCBMsABABH4oRBgaoBS7OoCherWMWRmxhgo0Aw7iEYAIAOCASvhQqUw44As0RSwWiImBLJwMqkIjt++wbClKAZsuTAC8MuYmNxjQRSXDR9q0hkE+U3hHBoDEiASIF5/duqsAAKc7s+qEalBxUTjg8dVdrQQABjwgYppBJXMxFA6o6oneGnDgzDTFT+yCgwRM8JYyZveMAxgwUkKD1gDsrBmrFQB6xbuANRwAInjVa4voSrS7ped08LgCa9L42yHI8T8HeOyHaMrcvAEFwWdil1yni8zePriMhcquMTCQ18rUj5BY/0lrMMmy4fK2Vq1hAEABLkAA9+ruMyx8h91y58IwpcFSvGgNPeRohQskxqLv6FALOwrkWD5Ful5bSpqIZl3sRrjIoszrUbhByKsg4AO8MEAzLOpeeHxgKwF4QCUoQIBM0jedgrMbdsJEIV0s4QFBM/OZrcClNFjaU5VUU0ZJqMc4owoeFcIBkYOngRSY0RPJoXCS4QBee1a5APlNzRpkRotGt9esuhupC3+y6oQO4LeK9bRMYuBK8zYkXkEh4Yi49zd2cQaZ7wAADt5yEaUxgH9H6sAB8spFZRDSgyD+Ka8OEIU1UAUBL00kXgVAoXCoJ03zO/Gq03AAAmxAB802jP8jQN0173IHltau8/RIBORufTsEGlABxfdnlxMk5wDvIJvbqiGfahSCEST7lAA+AF5G1zuFA3isZ7qnWZO2GACLILgcERM1Sqr0U5njnJlIraZSp6HbFrmIBigOLZTYxYwdkMDf/vTxXI+FLCLIQPhiFaOvPDqFRONikgkhgUWCFVM1PzOGxJCB7oBoc2GbK1HQBD6iARwHcVmYb2zRF4xcHAcHCKwyOjxlXME0MYxgRMxoQQvXQfpvxObeAVxB9po37wFrYGjRSEbtvF1WZfUiGjzA2gFlLYzieA+Bkp4Qgg4MIHfIbEA1qtGAnngoA6H+u1a6aWUCoL2S7zxKONL/sErIn/kCDyiEZLJj0hCNSSmk5t7yvSaAAwTI1fszOv9UMIIWtGIFobVzXOUmGCQ7XQDVWCuucK+A4tO2fvBoBvCDf0CDH+NcPLn82s1TL2QODA5XAADoyziXFEiB/cEI7FMBHwCA7qoMv/u4BvCDCkAplfK7BsCZlzIfAhCgBWih+hm/BOAFb3q/ZquEcKIanZgpzAsbcqIzpdCF/iMjPQuBFDA6JVkBH+AuvWKhQZKbL9MlFiK/D6iAxLshBDiwA/s4VAKADQBBT3u2bVoDMcmc7sixFJSMptCFIiEjuoNBcYtBvJgAANApl2siD/qrFtIrMPq4MLi9RwugWlk3/3tCAAU4gOhQQjkCAgAQA2wpmp1oIc75iT6aqp44Mf4TkAibC6UJQAaYlr1LwLYZv2o4gDT4m5RioalAgATIOgcQgwDQCjckLTdiNjo8oGcLgKlhKJ4wK8kaMBQBErOqJGXwqc/Ss4WJQShYnBpMIXc6HfI7BvfiBg/Jm0pUwwsMgA8Tr0JYgGwSg+UJRVF8AFpYA0u7KKLJP6AwqzEJh6VIi05CFiLrgTLSwhGYlhpkxPWAgwkUmDRps6kyvCAMAA9yPddbADY6LVVgRjmKARH0Aw8RMOoCimPqvDI0tXfIH0/oAW+MsImbmAchx/KYwDDQAu6ZLRcaLVMonyuLA/9i/DgnKqQAMAD+ssf+IgMDqADdUzBqQz6uUwZXxKToIxRZ3B9oQT3VayZnaj1aKAS5+gnvGiSswz1NbEPxwoqqaCMHGDiQPCBxWIStCSps7DwBA0Sh4kOgkIAAwQ2DNMgy0oARiJIDYKYICocpuEQfegADuBZGgIMpYIQ2EhYCoAVIaENDopmqmKKOOUqbq4ni00PIQL5rnCpOGqvCmYAawEql0QBPqKY++0oBSIBKwMfgGotXSo0KAELcAyAZqJVCkoHDo4XEsks5MrjLqYAPyQ60jB5qy4ADuAIrDMwakKH9OUzVa6Au+hPGvIAY4JHgMoDbopvbu7IbekutoJn/0ZABFGAjOfRM6SiGGIgBAjCAH+EJ6Fw7r5kCERABsxoAYzAGLuACQumAagosFkkPUoADP0gksKiE4AKAQliDNfiAS7RABdjEQtIKWqiZGDmAj0ROKwCCC+gR0URLtau/e0soCUiuDKCr08EfaqomSnK5XQIfEbCy88xNP2CEY+ymessmKNqKQAsAWuCFOdRPKlgE6jiAFDoxVJyMnlA2lxgLvOkezkMRbEsTVpmXdIKDCjBP3IRMwguD90wzMYAESPCg+QzOAOCFotRPK3gBrTkGCXCzPKofVcSkIumA2zC3vOqjErOM8OhSG1UPZShPRkJP9DSABCC8BvhRAiDG/ycKTihiI6upR/1cBDJorIOqJJdxp3AYABPogD5FzF7EJS/tIlf5HmWIAh0lUwLwlQ7zA9d5gPgEryJNAFM6LUFQUuo4huWYrRqlF2mCkGpyM3PSJQcl1UJlIkRlJNwMLlNgBFBhBGGCgAdIL9KimZrJCq2ABIgyAKbyTFXQlDTYxwHTMvqxs90bVdIpm+uxnq9khETaEUU1hdezE9cBgARoLaG01awIA11NJVC0SzqqqA6RjBndJQmyjJFyEetxEfTonkL9yit41lVtzmogvPmwMmtFquHUzJkJNBkIIAIgLs9USl7YFPprLmLNJd2B0XclNtL5Um6IUB1ZVQxZg/9B+oAqgwAAwBjYUIDDkwHipAUZoAHNFIMHuFTPfDZDWyCdHFWSotF9yyVSHamRCs+16VJu8AMrs83lxMdZJaAfBYBtcglekM+q0NZd7VWQTKAHMKg9HLAFW74+SrI+qtkv5SnQ0aV0Mp0EMB+eXU4MGSD3FJY7TICWaIZTggSQtVWQFQNTCFGQFAcCcNKFUjs+xDaz6qhKUliv07ckM9e1mRduuIKd/drcTIBTetT4JLMK0NXiHFmhjBFc8cwk2BoJqNuLIrVWZL6/5ahriydTzVqZ9bMssrKeXU5xSUYhGb4AQNxrVSussNXg/FcCQFl7lALEUAzogYy7PZVri9L/fZugv6VZywBdfRspRnCdRbiAPUDdB9DE25PVIG1D8qtVbb0KWtihpX023VUuyWhZGTUnql2Z4qXRlEFX0e2jVE2CJFhe28QQA+jIap3eBRhSSZXL4jy8B3A/JTS4B+CFaDtYr6mkn9s3uvqbGZ2glQFdCCpfuhIBCAACR3CE9sWR3MyhR/1JTjRarBhZkZUBjzxKySNJ7TA+ckVgFE7h3Sve8oVR4k2ZNKmAC3AEcZjg9m1eHzKAbqqP573M+fRhmgFZWqhIAvgWe1RKcaW/0Vy898JbzVnhZRXeFq4M2SxeOFAANKDhGgaC9i0mANi0AtDY+HzLmHlLISXZINbM/ymSU2bcA6EN1mi0MbxtYrPKAJdohgxI4QUWXgV+r5FiIQAQBC2eYC5ehNjZFQcIYwOABJaaTyG9TCE+PDEAADamwyp4tjgINQ8RmaJhYhQmmgHIOhOAQGw74PdSGT7mKLMK5EHeYkOGABzYtfow02MkUrV1SwRYW5JNWnscB3GpgFCzsZFR4VbEJKosAgAg5Y6SUeHd4/oZLM8TBHGoghquYUcAAkOe2FkmRXsirVse2TT+11SC2/4FmWAdTcub4801q/vCANwh5mNVZSqeIPupXXG453smZCCAnfqggLsK0taKGc3czLfUzJI9hgIwYjqkCQXgEHQumruFZxfCG/891uOp9dxrC4eHGAR8tmZCVgXYiQEd6RFe8AOjemSQHdnLvGXOLGJmbCXFuA4bA5EULkOJRmBTPmWqnWK6WoMC4OiOtmYgwGYdoQDbmDrWElK1FWIf9uApsl0QJALuVc19hM5TtOlPHqqb3r3u6dvKMKsouIBp7mhH0IFrBgJV2IDagIDXIAtLEYEESOkPvsxdNtn8fD+m1ZDGGE2U6g4XSuFrXGesRuAprlGz4gVprgJqzudBOGsgEARiYqS2pjFdqBJK/ditAFlTCGE69N8NC9aqFpnMSVFrDMjNTYvB7igFrlkXouSxJusJvmZVUKRDlroBGAAWgIdJCSAxQIBQRzaFVIojOvzVBzA084o2qjGv702+nshJlfqa70VgLdCCv6Fu6dYC8qyEaVZsxb5nau5ucaCA9NmR/GqsAvWDBBCDY6CFXFZjU3iAb/W0gAAAIfkECQgAUQAsEgAGAIYAvAAACP8AowgcSLCgwYMIEyo82KRhoECiTl075StQwyYLM2rcyLGjx49RGooSZeTTJyShcuQIFQqJEZIPQcqcSbNmwiYjXxpxiXKHzyNHPo3JgWTMGCUwjASyybSpU4M4SYr6xBJJjjE7anCpwbWrzxo7ciA99bSsWY/gIE5tqdJn1iBcjHmAy4VLkAl1g/jMceTa2b+AoY4UZbVtjSBBtHLx4EEuYy4TJjCewJUHjy6+Ams+i7PkpxxZfcKF62FxY8ceInfokJoDhxA8EG2e3VRkSauH6zI+bUxub8eRPa1O7alHjxS0k9PEeTJlDq28e2Po3UH69Nas5U5IzIOs8u8cm+z/zGEy5Y4gjaf/Xj28uu/okzl4B0//pmeUoLmi/83fA/sJ7KWnHmNBhFDfgQed8klJ5uXGmG/GYCBhb/7tZt2ExkBWAwMIdjjQSJ+Jdpp/q0lnImMd4GXhb5B5wgEUHnaIExJvwZddieuVxlppFcoF2QSeqBCjjKI8t1iEJkTo2I4PorYbik9uFYJsQ9aXFo1a9ZbkbyRG5uWPXqqmWl4v2lAlfXJEgBVpxnRgwnC7rQakixzQycEJJ6yggQornFAnBylEAM6Z39XyTApcHWkCiQGiCOQJIaSggQYM2AIFIhb48owvJSAywgiITDIoocnJAQUHhzVJXZvsyelJCCpU/4rpNb5EcEogkwQCAgjMPBOBqKSWGsErqeLIaqsAenKCBiNAQeszvkYQwa4g2FDtrszIESxtcvjCA2nu8ddqB8q2AsWl15TwzAzSMkPtu7tqu+1mcsDQA1wmyjVuZBys0OylJZRQq6/wwmvmvJrZgMi9Ao6LbL//IhJwrRE8UzC8CGsGggapRoiBw66eoMK/lyJyDbTPuHvxrhkHxgzHcXl83WP/9avBK5ZCYUGm0LYLwiQFy9tyWWmGUIOAE8ZZ8woqkGDL07NK267K8FoxtFlyMGP0kRLOrCOAE/ig59OW7uwLxVQHfXVZ4DCDaMxd91dzCE9YagsMMOz8LLTqpv8MNAjPHLx2U+BYgOppGDamtCd6kuD43TCcC8UITzzB5woMQOELM77YIsngTtlgC8P8cdmqi5Q6DsXTIzBAwr+SINICA5mXcI0kDHwOOlNykHDvYuFSONyjIz8NxevM2oIIIgNbgIjyEfhyqdC701QLFL+X7uSPy47gtC1Olyy5Csw6n6kvrTxBffUzQdGxXJ54glddPyoba/jL74wIFE+00IIkmnqGwCKAiGdYjX01eUYPjpaaFNzNFgwIgfz4JbJK4c0CtBqYr1DGt809Y30IBEkETqCYSLlACV2AQRdCUCcXSeoV38PbNaQ2LWa4q1fn84XgQigT0cmvBl04ggX/jAADF8DgFSlwTaRcRzYZ7k1lNzzbNa4BAh7WxBcS5IALXkErGCjBBbboAgMoBcPwkQ2DtPLZrjaFwc0d0IogscETONADFE5xi0ewxStewYA9+hGGtgAjDM42NXdFYGfn2yEcPVICox1BCVO8RhjBR7sjdOGSr7ikCzbpxAgwo10l0JkvpsiMRcoEBCHoAQe6cD4YkI0EmezCHi8py03erY2e5NylLACDTz1jVKbsiA1awIEJhMAWaLxGpTIJFFk6E2ecbOMpbCg9RLhSA7aoYjA/8owQUCYFYMQgDEhwyWbKMpachELepGbD6EVvc9sEiRxG4IkacMCC1ziiGGnH/08/uvKCaVQjtRQZz408408pYIARn/YKDSS0j5jE2dPyhkF3qvGDBf2IHFbgiYSmIKGW5CMDjtBHPj5uono7Gy5zqc2MdqQElBJjEDEpS9pdsqSQQyYajwc5C6gLhC5diMJIwIBz4oycfqTdHp3mNIpOEQpMnGgJCBrUhTwDCn406kyLqtQynpFihHxnS6u6kaHOcpYyreRIiypRZFJMaoQEKlkTIgdJjOCsWd0npWwqUVfarlaEhJZc52oQK9igBI77Y1JpNylJndN4uKSYxQibkVrIYVcWQCstM8nVjz5Uk5Zi3lsBR1XKDqQWVpCDDSZRxFjyUbP8/Gg/cSZKtP+BYLCmlYNhm3CKcWp2sXp1aAqWqDqJZfAZplXIBydxR1ruE6IzpZRwYePZm0nOp6VN7jNaEIjO6dG5+4zlc4U73NdoAEYlaBaVknuQGaiAA2d7guucOVvO9rGPmxjjcEMQOG+wdyEzWAGAWrFdFYj0viWNZYIdNylmBe6N/zVIgAFkgiK8YAjk46dS+whLxcKwdcqbAQiGMNYI18IGkjiBmzAAABwM4QWt2AQZl1rGDy9VeecLmA2EUAQhCGEUETZsC4TDYgAAgABloEILnqCB/MKQw2QDn9MwdbaAzcAGVCiAAxzQCHq0YAiUVa0kBNwBCQFAAgcAgCDiQYX0dXX/qRTFG2SdZ2UboGMRZDAyBkyAAx8IgQpBtcIMWrACH0zABEY+M5oBgAYqeGMILXBcP0lA0f2VLHYSK8GVvQEEMsTgAoIoAxNG/WI9oCO71bNCPIRAZhMgGgADQHMz0FyAIXgDHUKY3KdaR2n9LS9/ZivBKGzACSKQQRCCeAE6vGFqMMQDHUOgh4+tCA5cC9gERTbyrCWwbQkgGQxWUHLrlOo0XwNbf5IYhR44AYYYxGADZUC2vMtQBjS8qQNF0IEQUo1iMmf7AGmedawlwG01O/rRLWidSZUXuV8j0gIkkEQ8fsGJb7h7AxjfABoocIFBCIICif5YI3Sgu6FZSxKt//ABDoqc5gM04wAGaEYzlkBwgjej1vHwxqon57hy//rn+VRBCSbOiV/sYQ+LQIO8NS6IDVyAAIk2sgkgoAN3ZEznrPaBm4zscpk3gxdxiIPMJRDrK1xBBAQYxMGV3HMS6Mx5iMA0Bhmgghno4Q6c+AEQkJ50jCPb44KIugEMAAAJ4SDZwYrGqldQhJUDAOAy5wUvui55XsyaBWY3uwQuoIhv3OEXL7Dr434ObCic4AmjQMcPOFFsICziAhpn+iDK8AKoA2Dwgw95B+hxJitYuxErZzHkwT75rzcj7HGw/BVYEAwWsGAADigDGFYP+oSX23yYWl4ITiBxirP+F+MAQv8RNI4GpQ+CCVQgANRxn/tET91DqI3HEHSgdWw/HuCVP0DlLc8LA8RBARXgB8GgC7rwfGlHBN73C0PwBJ+CKQHzawywLDOgeqyXd4rgeuT3d2WgA+oHAA/wAIP3gR9IeAQgCAdSC8z2Au7QePb3eF5XAZKHfMn3dcgXAIWQAU6gC06AdoOgCNPHet+wgCQwKyWwM7agASfQCvGwbhX4A4qwCBindPKmAxy4fiBoACIYdQVQBvThey/Aao1QZgDwcsYXeRWgADLICzAYg6AACdnwDk7AAs1QCWWgCDfgeaynB5KALnyDCDKmAZJAgRX4DeOQdBQQexsQahzogVgIgg//YGRZmHbgIX+EFobC94KVF3nkYAAKQA4KoIbN4H/kQA6QcIMZkAEisIV2+IN5GHozJEAjMCktoG4VaIFAsHEcRwFokIgbCAC5cHsiGIwfeGQmqBzR5gONYH9d1wwV0Iy88IkwGHajCIB+4Af99wD/FwAJkA1xyALRt4rfUIvf8ALqEkqTMgLPoAerV4FEsAivl4sUcIizNwhH5ojBmAvDaGQFoBwvwILCdwAisATNKAIJAIMK0Imj+H+fqAB+cAX9ZwCmQA7a6AfZ4HwA4AjguI7fdwODNgIq0AITqJF5BwQx8HoXcJLxiAbzqH6NKIzBeGSDkByCQAAsVnOzJgLB/yACIsCMZziKndCJChAAB5kACRAHgzeK2pgNGRAMwaAAgrCK3leLPwAGSwaSRCeOexADgnABubgBhygIOkCPHuiSwmhkMTkbNxADXMeTFXAFEiACFcCTBzmKBjCNB1kB1dCJWFiX5JAA1egHFZCKTAAG3yCSFagHF5Z6v2CYxlYA8fiY8ZiIYVmP9uiSuXcBsxEPncZ1B9CMzeh1zJgAc0kOcWCXCmAAkBAApMmXnUCURCmAADAIhBmV3wcGN3ADtnmHi9mEVUAGBXCSXsmVuigIHmdkYVeZwZh7DoCWMQB1BKeTZ9gMBzmUZ4iQPhmUQ0kOplCX20kOrUmUTFkBF/9wA+jwC+b5DUSgCONAb4qgCFXgCI5Ab0RAmN+wCOpXAL8JAQWgnxegkhdgnC0pjGFHghuwGWWQZ2eWBjspnQrgmn7pB6I5l3UZAAuQAJ2gndi4iUf5mhnAfGrGBERABFWwd2TgaaBWh/VWAOrnAPEIdQRwkoJgfnX4AkxQAMBIltiYfLxgZAUaGL8gCAgqAWYnc2eohq+ZkxUgmptIDoUgAH6gl+w3eKagjdvIlFcAAA7wlGBgmxeIBvgJASeJnw6gZS5IePqZgbPHBGXgADcqgo1olKU5eQCAmYFBBf/pgmbnmc0YlDfoBKeYDcEAmBUgAALgBD0ppUuKlAlQCAL/GAwwWABPiZvfgA7oEA+2+QK3+WzoQAX1tn4GoH4EUAn4qWWeKozk8IFw+olxMKeA9hdWcKCPtwRLoJOCGoDZcKtzYAi6agh+eqtwIADw4JBGGZGjqJ0SSaUCCIODF6r7uYvESW9MoAhM8ALUGm9QF4wvmogbAHUwt5ciaAoPsJ2lSZpGCQGKABg2IAi/eABCegVMCZc4iYMZAA+5eoqGQKiE+qvvAKURiYWm8K9U6peiaQBguosboJ8O0IFRRwAGYHnH14hqVgXtWQU2insf+K8guJ3+h3yDdwEvABjocKcC567vwAI66QS86gTwIAD3mgH4+qtwAAfvcIbh+q8Y//qvptAJCLCopxmbVLBszcalVVAGHld+KgoAcRCuwwgEElsFVaCW7Aeu4eqv0oh8c/qxf6EIedaZInB2IgCHwXAF7wAPZFu2hDoH1fAI+RoOAuCQSouzFwuwkECUp1kJs2eH8WCplPoNk6oHfnsDTDCTyYkGjuC0T3t7YfevuNevxXqQhOexgFEF6yqkwXCKwfAO71C5ZVu291oNAtAAaxsOhqoAOFu6/6qzDnqahHdkW/alBfusHncB+Ki0BiAI0WqH/7mxUnqU5DquPXsBrWoW3hB4inYFBeh8ToCy8woPhkC274CvAqC2vxoO4QAPwRAApmu63ymaFWAAkIpsGv93ASq6frc3hm1ZARj6AEiGqTcQD2hAAFdYmjIojc/4iYMHAYBRn2MopLqwuU4wBboKrGQLvYT6CGorAHAQDnDgBKSbvadLlFQaAA8QA+3rDRZ8a5eqpo4gCGQKkSJYCYqAqS/gvusXBxeakHwJgJ9IDv2Hv39hcQ/ACxKQBphbtnDYvPgqvSw7BSuLwDEbs06Ks9oJkQAbAEYMwZ+6CKI2rdSKm2CwbLdGo4IrgjGgCERwmyGbC6LonUvqf5I3moO3j38BBnuAjVcwAMk7titbwwRstgW8tsoAB36AvZ1Qx6XbCUZ8xBa6iUZme6C6n/2JBmDKpi1Zxezbbohblwr/cMLFOo3eGcZ/cQeKEAMxbHZpgIMDDKzQ+8O/urKPAMQJrAzKkAF0jMd2fLoooMedYACVQJyDMAhocAH62YEHsARXgIMOiaEF8AKr2G4Ma5SqmbOJipQBsMre+8LjQMlxcAV+mrz3+sMI7MNx/Ks+zMnhIMoCIJo5O6WlXMwBYA7moM27jA56YMF+a5vpGW/6CQBgJ7UFQAUjXKnNWZp1bMSdIMTeKQOQIAOEt5xnQQRJQAYPoAAZgLkoG8DwAMo/LMoK/cPXzA1w0JSne8pTWs/fPLAdJ2ohjKlbSqk3QKMUAL97uctLmLcQ8MtETKzFWscyYMQKcAD+XBbeUIgx//B/y0u2vCrAnAwHojzNOx2z3MANyjAF2oyzeJyzeByw2Lu6LgqqoqqfEMCm/TfEEPCzlRoPUBsHRn3CEYnHkPDVLx3TT3FnMUAGcVABy4u5zUu2C93TPd3WPyzUEJ0NCTDRKNAJKIAAd52aCIAAAfCpQOAIrrcIWdmBBkBzhjCz97ydwEsFeYvViGvUoOCdddwJqUm3vCDGZYHVCRsHAZANa425aryybf3WMevWPK0M2sANGZAAxXy6poACsn3Xsu3XpgDCevALfjupYMDL8Sa+SOuvtz1q1EoFJ52hlN3IpKiNLn3MZvECZJALBBCAN8i8Nby50tzTQv3TMRsOhP+gDE5azHiMAtuM1LPt1w+gxKPWnocMBlWgpgWQ0qZAAPH4YkNAyEmL1Fx8oXjs2nTpwk8RDWXgos0QDEq5uT28yaGsDAq80KkNB0EN0Y6KvXeN1HV83noNrkdWvn0MqgnLnXBbAHarA0Xwyz6Z1MyNx7eaAKup2U6hB4uQaM1wBdmQq/ia4Jr8yant06d92txACEBuCBVwz7J94ZWd13l9zyUIBIJA2OMLAGjtBCxb16UbqlGNtPRs0UlNlIVgCHR9oQRrFnqgltrGzGNLwNRMzcC646ft03FMvdwQDtdL3ltd2Rf+rwSgCH6rB9+Qm4rgcRRQCQ2rnThLAL9p4tr/ec+mHLCF8AEQvKN0+hQ3kGdkKLbwwMOavNPVzNOl7eZxTgjcMAcJcNd2TOR4neR3PcGFa7ghrKajNpMQSeimkAuHzpeUndSWXaGFUAjhLJSTF+lNEQ29yc4yFwxSnq+cnN1xHcduzeyi/ONA3gCjPttHjtcIcOr3/IiQuLodTgCSN4o2S+tPx5d5HAA7C84Oag6FMLeniQZl8QtAoMVeJ4C6muCl3enOjto8HdTKkA0BQOrai+R63Qkl6Aixe7QAKa+jiecx8L4PkOg5m9fhHM68Xg3VEM5oWLtlgcjmWwFMmQH3OsBtPs3Nnu8lH+HcMAWFgNcUHfHYPt9lsITe/8ClG7iVDrCXVd6fN6/Vp4sA4AzOu96kcwDOqmkA7v4UimCj7NqMxn7sm9zs/F7yUq8MQa0N4TAHpVzhA3/q5G0AMZCmavrKOrCBIHeUhd7wgr7VfQ30H6CU9zoHCwAJRlmMTiG5ioaTTf+8Cn3ybq3AJs/QP64NhCAAH8DyqGznAJ97hOd1fQzlaAju8w0BIR3rOZualm8Obr+yH1AIRpzZTPAUG/B4ZceUTnDmPb7jfO/sqB/n3g3qyoD1RR7b3kzbdvwAKrkICC8CUg4HGdCT4G7ok3/rfo0AFV8N2dDDdC2UcSCJTfECajnDaeCuyWu2+O7WUT/12s3vcPAB5v9A2wPv831tzw8Q85uqpjrQdDb6jIq+yob+vnyZs98c9B+wANkQzRnA+WDeo0xRBQwLEBKcvHs30Am8d/AEKISjzOHDh6S4QYQ48SE3QtwmCqgWoBMKFAhCIhCJolMnAwUEldEhSNCgQToGFTBg4ORJUwQKoCFggJwpUzLMQSqUIIE5c9UECDCUrZCMk3EKRKFa1epVrFgXAYiz5ApBsGAVPmpAMSIpQmYdWlTWMKM2bnDmBAhAkiQNkCHpdjJVk1cwERIOHABwoMJNnDov9AR1kiQkkguQLni0cE6hADIg8QKgI+tn0FSTFF6SRmzChPDGNlTGNqNGtWvXctNGiFD/bWXZFohEYI6kb3N0TT24gKYAgZ7NRCjMhhioYgJxbvbeDbzanKUC5kiG1EnBgUGhxV+9wPVKGl3vDKlWLVYA67WvNaZVyxbjbW1w4VTbDdKuuQQQ8CiXKsB4oYwyBhGEgkoMKASxAHIqgAICHjDlpAUy7M2cBapRSoAG5phjKLp4gYCK8VKM4YE4rnCChSsyOCg11d67SL77vIDLPrPeys8LbqopBIGPIiPJo04eiGFBCC64YIMFCVAAJ1Mi1IlCA+IIyq7/rnuksjmyuQwzXggoI8XxyDCgggxYcCKbbDJYSKH3BHikoYYw4oYUtDKSzyGJWgMUrfy00RGOD0qK/0xDu0xRIM5srhChmQNE8APJujqBLo6fQpqsw2oauHOppjisJpsKDtgAzdCIUFMEJ9ZLyJCD3oPj1lsvgg2//PZkSzZAb/Ni2EOr4W1DyUoiAAIHkAPgWQngySCBukyScDFOO6EuwwwbECCc9x6Zg78FvC2kGRPCYzWrKnIx4CuEEppxIVyXgk8j2m6zzbZfdVVGWGK9IMRYkLTl0DcUTCmACR0cgYmeIhw4gBdyOqGBL1Mq2amnihHg1lQQw4HDW/44FNWQYA6gZ92sFFHzivUWSi01e+3VlddC4aJoIj1t+3FYQrQYMa/eEAgwgGUhKKKIFeihpxEAeJnyQr504v9JS0g4TLbbBuAQd9xQGxBVABEI0MEGcFi2yuUHrlAIHjjozc7OW21sTaPacH4tUFKUkWg+HQ0dFq5H+FNUwAQUMIAAEzqY4IQVoJagAgVCSvja6MjxVOtyRQ3nyzvv/FzcCgoYxYZ40LFC7ShcXtOQueu1le488Q3859p8vRtf2gYPGMhHGEWBHAMAIMABHCbw5IQQVuhggHemLYmuSprkqhMZtr2ObpHDgU2LurNpxgFJQJjhfCpWX9dlABSAeSEbvQ49190xIhb3XmXTkxugCfldG2UUbgEBWBzyJsABBHLgBBpQQRFMIIElKCAzUDGAxi6QJW1xy0NzuFPtNDL/tri9QwIYaMUzSvAEFUChBFSIRzzQpIgY5CIOj4pZB+/UlrWQYkeF8l3g9tUan/3NUPgzVFw+sLgCNGIFJzgBAj3xRA74oBE4wMCzMFi1AlyQHHXhVoaUkqdwBFBs4fAeHOCRBgxMAIUhCIEGGACFFrSiFSugIx2FMAMbXIUIe8jFFhOQjXfEDli16eFt+DREH84nd4ArlK/0NIUDOECJdQxBExM4gUZkMpPN8kknyKExCBiAF1mbjIfGmBGHkKU1O4LHADBgAuUtz40M0IAGLMmBOrZiCC6syg2SQIYHPIpO9DOLDvNjSEANTnA61MjfJOKzHUGEBRjAgQ/qqAE2/yKQiXXkZhFiAIAsfbIAoVQAtTxWDQ6doWuo3B1+uNFKDHhgAjVAYApSgM0QcICNIXiCJCTxgiG8gJdR+IUjyBCHQtiqX/X5Ww4RqUzYNLM2edNhoNDoOMi1sZb7VEFH5diCOM4RB+D8icYokCUFUCdEoTpD/fA1RG4IwJXy9EQP2JiCfGqTeSpowQxaSIUX6KEqSchFBeAhsrbcak99a8sNJTofRebsb7+6z1tuw40pUPOAGa1lVxmogie0QAj+fELkqsipCo7TJwFISthEtcrX4GdwcZmp8nqAwJwmUIE83SU6vIEOPUQjClWIQRzkBK6lPOJuD7mhoNCCL4kYE/82s1Hl3fjlKzhIAAeN8IECmbdRrzLwCSN4AgpXMAFwSietoSQHJEBVLhvpizY8HFw46lrTHuRWr1DUQAsCGg9veCOwURAEACpAowyICg7c+JLXWMOzaD7EZ5PFV/DKohHv7Q4eAKimZ9noVZzutKOlVcEKfICBToqTta7tnLcUyy/B/Y4QMo3nPHN7Vydy4ImeWIFYh8DC4HojCjE4QBrelpApVEaxoIPNcx3itdnkb3daOIMWjskzfLHABI3w7ne/6lUVMKC0pW3FeeMQAEgooHqhBEUAuOatPMk1YDuirzxroNvdIpCOvmWCQOOhB28sggASWA97aHenri12Dov/TWV8dOaQ1yijLNF0JDeu0IHOMlGfbQSrCrp6zxHDsRUjrQAkqlEBUMYBFOxtwBkewY1wTPRnOgISIeDwDlcaw774raRnIdcKIQT0BSxERzQKaxr2sKduSrWI2BT74BBdN3d5YvJiaaMnZQygA55QoGdFi8JaelkFIxgBFOB43gMUwltoLkABKvDHOXjOsg+9H77o67ga3Bivn/VoT2dABRbeQMCHplGN5lZptZBFC5eOCEaku1R8oVICm+40E2vJAGzTUtQjbsEKTGBcVc9BBA6AgKuzkdi7CY7WxLpqONCIAS7s2dOiFeug/QpYqqgJPQmBn7G9169+NaAay6YP/+92xDveBWraB/TutWkZ2lGXFtUJcG0DWO2AbBgCDv+Gps9+pyM4w7nG9tUrl8P6z9QFtyp7aFut7JUQRrPFwQ/BlbNngy+H7ChQe2qNBGCpV+bds5ZCvzapnwC1A2iLBghQQBYJ4Lbu4W1wAAvYa+qUZy7UoKZA3/EM7D1c0ZChNMXmN+9onuzazWaVGIYsn/CVBlhyuuRE9yoDSO1tw8hg6QgwgAMu4ACoc7zqVFemNsCFEAwYQ544tnZH70hosEcBCAd1W40UvVyLwOciFbmb2/9FiH/jHOHKuCgUExiCe9Id26Q+7+Q+ggJIVHAx5yajx6c+56nD+fC6SDzJa/9JWkDPYBSp04NQrcJyEQQSfraCD67MYh+c1y+MnG9IoN6BgU3LHa/2pLsGyDuBA0gAMyaBxAMq8fcrfMtn7vTeROmsI9CLzIwC4L0xsq7PWj5hrJD3Ri2u0q7SsLy6yS7nA5abOTieyYjQgza8yQh4wD7tuyvUQ73Q0oARUAEPGIABuIIhqQvzOw4n2LjLiikMIABd+Jbe6R8zYoiNg6es4zQ2kgSfAqw7+IzCihGEgBtcaYgOmrmbwwgEpI0FhLYL44brcxzT2z4P+70R4AAMgJ5g8IME+IBqqCBm0bh/awt4OIAWeAETGAABAMIfqQ0BeAddCEEyCgd4oikO6Kn/H/OGX/gMIMgFXnAROmGIOkkqzZu+z+sVhPtDR8INZeC9Dog3edsyjXKjC3wegmABP8gG/pA9E4QbAbgCCZAA3muFKGiEATgq/xGWY4obS8TC99CFuuopvxIs0FgRr9C49zCyRXsufOE4uMAR7LoP0csfU4wnLgiCXMMxP+uqCcCANCjDN/mAQsgGSUwNACgCejivNIoCHSgwERzDy4IDJxCIOWEPAGiEMkCR8ZjDOGCTO2TBHXSI7IIzfbmsq1quu8mu2eAX+sM6DwiCWNqv/TqBYezEuBmXQkgKSdS4AZikFfAADPAEqqCidyAj7FpAMzKES2wGCTANCXCAQXgB/1bZA67IgBqhmR10R+wCokW6RaT6w9aYKt2jL2NQPA/gAg9oSQ/oAJk0SOgho6VIFA7hheohgIQ4AGtSASeMxoQsMDr5Fu8ho1t5hzSQgGZohiUYn4tcFyD4JvcxBH6Dn4/UPZNkDVw5yv2JKN7xH4GRKVfCALM8y7MEQ96Jmy6yQgI4CF1oHJp0patYgSLAARMggPBbj1sBl3dYAl5AItaJgnGIgXdhgTRwglc0x41jyAfTQzzpy9GrCAVMwYkCvTlxgliBHfWbNBDxooBsTOVbiAM4gc9wGnoQBALAAWc5HgIYTKtwhBiqQ840to9EqqSCzJrDMIgQgCmIsZdKwf+MqBvtWIpwqDq5IJcq9Lu3NMpw8B+R0SzYnM6qAAI+MoBsqJGPrBPnox9bOcrQE4A0EIFgeJYDsJGvVLekEhsRaQD+uZ+RaQDQPL/m9B75gANdwAHq3E+qmMoCAIBmqDw6sUnmk7/GZMjnBJdXIgAAcAAHAACNO0nbGZymAptQEQCxPBT5RApzsEIHOKx/g4tweAf95E8TlbwYuIACGEdD4Ex7mb7QA735sK0OwAG8tFEJ2LibI4WAiYv4FJtTOU6QE6P5XAzFnK1FgofXPFEmBQPDLB42+U6Rwa59CTkBOAAbNcsOwABd2Dici69hiQtxqQYqNAcRiDMgEVPllMT/E7yP/CCj7RIEJj1RJwUAMqCJhMK8+fCTvLEN2zLLNNBAXYAmwPmfWxkXyUgKsbyNuCGXDq0eBziI5+QXcHGCA5DTOeXPUSCDBi2AByiER7BP27gdQioUxErD+KKt/3EIgfOiBvAfU/1MyXDLgxBB0DvUCkCDTOVPIWDQGPDUPEXT24HVj7udYj1WZZDVDhGVDmoqwzEHAKBPSeU4rxGfqdhV6tSB42kENclTOKhFfrG9Yx3X9wOa/dCgxFEANmmLcQEOSfQDJ0hDkdlQBSAAJsDW6aQHMkhRNYEEe9nTy1LV+wHTjwPTtBCbcunQmniXUeEPtuq7xaiAbGBIr+GP/xQDAEzFV9YZBDK4gBiKgwWYg5hDUP5xvxnTlyHKmYJlLiBNgOJ5lmZ4j1bNmmiFAAKQ2FBtC/ncDaa7Vo1Vm6lcBDKQIXPAjoqItss8pn3BmZTtIQqNz2pIgGcxT5lNFmilT4kFEbLYje7ohAqwyJ9lmVFYhAsQ2oMqBOxoiBhFWkKqqqoivHIN05HxEKl1lgMIwZ1FimiN2PQjC/lEARq4mAQgAAoI23VBh0UQhBgYWlA4NwGYjSEM16+MtqrCPWKZiDFFGmcxgAxITm7ZWylJKLH528A1h0I4AAgwXFahgkVYhBgKpuzUQa20CNEDRCDcF5MNmL4RIKSZWuyMG/+OyBDQVYBCCBUNCdylC4AD0FXVTZEXEIQ94FQDUICB+E6tdKnK7JkqzRlQ7FHeRQ4GPYDO1Q4PWQAAcLqs/UwEwIulg4QD8NnmDQ10mMpcACc2qVWKRcqQs12EA0WV7VG5+ADNZdDflQsgPd+ITUZyWd+lGyBegN/4/Qxf+iYDGLtAwjwdbUiOG0GUhSZj/Z2+kc+cAF8AyAavGd05QGACEAFIzBCE0RYBqdcIFo8XoN9xdBHY2bi+1FMvvcWo6lMZC5wZO9cRdhYT9tsQadDyeDWeFQm88BimA4AzmeHPUIQk+KY4mMiBYIg09NEDbYuwBEWryhmC9QJlQKciZtD/BIib0a0GBAY3yGBg5CWJ77gAKv6MKoheFqmA97lNx0xDPcVdpr0fpw1TgUtjAEiAeSUXxTCuBCgKkgBcwPWYAOAF5r3jq5BNd+Hjr+BOpQojQOzTt6UtdcM9bQiReiWASkAOBViKVkWaLIqaxTGAugjcSR4gA0hdTL6KqTSPGMnhcwwjHV4uUe1TpeWVgZ0zbSicCqqEVZaSpSgZBGjk9/1PCbKLwCWJT7rXXaYKxAWmOIgTWGzMBosLHx5l+ym8gZ0xLahCZ35mAyhfDVFlCHgWBzUMFIMMwKUBqMDYbqaKGxDaB+iEQsiAIrMVZUDQ1uhigF1HZDZZVYWLOTA//1Ve5QdI1Hk+P3sG0AoYkscIXEggBwBQl25WBD0OgIK2PHs5UMxbaFHFxajqOJTt0Tlo5nd+AATImkRtZAPA50L4R0bRDFAwgML9Z02OA0gw6LFY6e5ZiyGsXPxYWmgSWC8gBQGI1neuhFxwDA6B5fI4sXz2jWTJaRkABQWw43+evAcghwSQkaLMjk/2ylmcxTBcv6i23Mt1Ap1otQIYWlNwrSNpZLCGBP/I6aVDARkIgKb75ygwqOnFYWOrGR1maAyDAzdJAy8tFKYtY22YAgKIAdBeXDIwBbuABK8GAHLQDEjgZ+RtbRkgBwKogn/+pekVAYM26BZNLKPc4f2F0/9amVTcPSY5U2YBIIAL2IPQBiZIgATNgOX1gozWBml+fm1/7uZFkKFyyoZYMbIeBOSjPFCktE9R7Tg3RSRCcAIHQAM0cN1ffYAACJAFqNdYbq04Dly9kwH8PgnFQWtMzuNcqBI4yQABLzIWlFcDR1CGVEc/qdLgJhZSMASVEAQ08NjjQGqkkG9PbQzIyB7pxm+9Sxz+vmNH4CO2jpMWJXDt7J5hlleMMHBBbsAGBxIRgICXEIQLKDdPRTHF1gkIWOt8zmfN8HCoQAkInuHCXOuCFnCDnpPsAGQM1lGXmlQgJlQZ44YZr3GPBW0C8AgrGafroQHIWG7mzu/8zokpvmP/tUaoYHBrI/PkrpRX1iCjd3xbt7WfRmoGCICJQUCD5N4ilODxtbYYzchp5sYeWwaKByBpKpZNJL8CmImZouzL7lHxHp7zl5Zqj8OPcDiAC9DzDXCSxV1rBcBwnwAF1RZzIS/zB8jYGQYDoTWAxpWRFn2blSbmrowbYt5TqNofqTYUQl3eQUgQCc9yrgCFOAD01B70u8Bv1n7tvgjxCDZpYFIAg9ZMxSxKuEnDuUHKA93fpX3bqa7SA6CAYHcEIFgEPl9cn0CiDDf01kZs+4aKvnAATJb2B6gAXThDWpn1b/FjXF/xLn7OkPv2UeUV0FteR0AQcydbFSWAwFwWT012v7wQ8njPb9gu6hneo4Nik5k5aOOc7H/3Y46zz4Ye1THkhuVFkDIw9yQgW5sFJ50wTOlI9em+75MgB5FW9PiFIRm6gvRQj0TDykk30B1kyMo0+riqKh8KBwNAA5U3dyCw8QJ40JpdEVMwdb2reSHHHpw3AFaPX8ICpvtdD1oR8LfewcT6Ei34knDQgtFxezLSAriXe/CxT7kvbkGoAkWogipwBEew8XJrlkpo7ziQjk7o2ps/iSEnhwd4AIw/0YAAACH5BAkIAFYALA4ABwCmALsAAAj/AK0IHEiwoMGDCBMqXCiwicOHTXAxnEixosWLGDNqVNgk0KePH5EgGTMGySc6gQI1AbexpcuXMGMWDESHDkiRn0Ll2LEjR6iQn4wIlUm0qNGiTWp+pIPEJxKdNYL05Mkzx84jML4c3cq1K0JwSW2GGruz7A4uHrhEDRKES5CoNXbwcKHVq927McPa3MmzBhe3fj14MJb2r2EPE2r04JHCCN7HkC0mBbmzRlS0h41pJiyYy4QJaRXz4MHgWeTTqAuCU/qpaWC0mzd36KAZ8WdPoCf04DAaUerfkadN1mk18GYMGGTTrn3b02C1lhkAn24XLFOfZHcEOR679mxjyRFz/6n9N0iIQNTTGw1kBGT2y4PB1+ZsbHYHwctjewjCo676/y7h0t5HOu0QlWAIeoBccuEJBppg4CVHXg08oAfghRrRtJeBQcTH2XfIdefBfR5uZlsNr2CoIkY0jbFTh5qFZ193JCL4F2KDOZjYCVCs6ONE4Hj0YnwSjpigfTXaaFtan03AQQs/RqmQgEMaY4KJnCE22wT3TWBYk5h92cMINkhppkGlDJnfYN+NmNgEnnDgyZy7ccDBCXJ6UkOTJ0Rw5p8D8XDgbCZciWSOiPVwwgorhKCBBk+MMEILLUjSwhMqhBACmYD++UUPHeJ3pWYzGuNZnCdowAAUiFhggS++MP8DwqwgMGMBFL6w0umZvvDQ1mCFJockYZ7VkOoIuH6hbASy0kqrrLruKiUDB2pWqAlIkvjZCSpAAYUFyz4jrrPklintj7jYUq2V2GbrpicnMGALFDCA+0UE95JLbrTnqhiIoGgteKiRcHKgqi3zunqvL8zqSyu//V7oC6jjLVhoth3AuWgLCNuisLgNO8yMuREDyAoUoA62IAbtZtxknCus6q2r4EZgcwQik1yyeqyMkHKEyNln5GwwP+GtLfVaYDMzTDe7784A4sIAqDEu+KGDHcC8KtIw1MtwyA7rDPV0UlPdgdWy4Zc1tyNwnfQXDM/wDNP6ij32b/8aF6J+CDr/GYK8CMMwLwytQiEppSMgEqu4pt1NXQk/M0hjl/Cq0DYJLrjwCgmbj8CAqhpo2i2siDwxg+PT+RwqlrXh5+QJbXfMOQMMkJC0LyUgAoXHX9wqCeqp7xlfiVkiBi/ggpNAAsKuIiLJEzK32vsIjQOfmiS4IeokB3t+qXEKLnTMKs2Gt6BCC7AqbMETdlv/GCsnfCYYBwzUCwMDJ8xZ8N+vBG5vBM+A1TPkBkBfLIwZEnFfakKAGy54gnYwcEHXXhGCPJ3gbx2j2b1sVqu5Mc5eIIiGAlMDBdxMIARdUMIXhGKE+1WQAyFIQf/cpjAAzg0Ec2OGssDFDIiN8DHPUAFu/1KgBLp8IXPho52qujBDpFngbcyiW62YEQFwPcOHP7zLM56Am7lkJYLhg8HsXkFGFyjPf/9zWq3wxTAQZPE0iOBAYo6gwhWGkYy0O0IX9tjEeikrX7OylQZ7+EbIMEOOFHIBuJ5oO1tw7gh63CMTX9E1KNLqGd961avcWMjHcDEx9VOY4Bz5CgZEkoyvkGAla9YsCyDNBZ9DBCc7eRcLhOAzPODavSLYBdpJ8hVMrGTX7NW03j2RcO2jJVe4WAP6UVJZMCglJPcYySIGrmvLoiIVbVaKWSrzLiWwUwpoR8kIlnKcp+xC5mj4x6U1jZDffEymVOVLSTJgE5tgADD3qf/Kty3rZlFkSTzxUgJ9/jKVwGQAEye5xzCu0pj/Y9ZA34cIzqFycyTgo0IX2gW3va2itqtk9SbqFXD4gpQYvWgpycjHGdJLYb6gmatgMFKScqUWz7AFSxmqhD2aUqEKLaPg/Iivdj4jmTYtCjN254KWchSSejyCQtc5r38ClBlJtQtOoWBR5W0OmL2knViDirBvwQ2gR83qVqZRi2iwIgII05xKmxpWseoxfAkzoDvTqlajsAIXuAiEKy2qT85NspS0QycDrJmwbDKDr32VyRUBG4FoqvSy9UyBZscJOMUxrGlYjOxGWIGIJpSidwjzKirPiEd7bvZRtCNBJpXmTdH/toQVkmAALiKwu8uy9Ksk0GcpN7FZzX7uUSOwHc5s+xJM4umxLUiuRVtLRuWplnbETUEIbBEIKiLihsx1STS2eMsOtGAGQoCedYXbP85Z15HKw+4mfBFeothAEgzkkgmKgN4WxHalZJSddUlwuXuSoKb11Ug07ps/BQEAADgYwgzMtwmvFrZru8sw0hDRtVbNAKkJZggr7rsCT3TABAdI8QFMwARrvEAHT4iUV5dHMw7PbIMzKEEJQhjii9hgwivwwQQwAIADDEACEjgABgZBBT0MIcZjlW3zEKE76QWwBDk+qiKoAA5wsMKt0QizmHtsBVbM4Ak+IJQJMIBkCSwh/8kA2AAVvAGGS3lOrB6rsQVa5SosP0MSRy1DDFYghPOiwxuI9oYe9OCN+tbix4zCwZqJXOQ2uxnJBXgBo18Q3Tv3r8ZUpvKefTFASVjDGzeoBA6KsAEmMOEFsKYCGG6gB+aOWBJBPjGRj3GMAxT5AG9u8xIIUAYwKFoIyUWlLfgcakmImmFCkAQ6fvCNGJChAKpQxQYogAYKbMARjqi1aK0hhFyb4MEP5nUkeB1sYQNAFU12xiiQPWA+7znUMlWBJGzwgx8sggwx2IDAB04BVQwitANlBpDTvOYi81rdkYjDMYItAl2IYAkHKAAT0OEMPbwA2dJtVeHw7SpbhGAG6P/gxA+qAPAieHsD2ja4Dl4ghaSyYhRPMDeRD5DkY0Ti55FYAtArIIIoREEEFRi2DubsDHQMAeTjCzWrqJy7EKjAGinnhCLI0O1tCzzbOihDGYqggyEM9Mct0PmDU7zuOPw82EsQegX8EAUnZIAFIoizIvTgjB9I4cnJFXmok4YI/Jku60SohCpcvgE0wFwVM6cCDhyAA1W8gJbeWLiufw1snwM97kT/uQLmXncn4P0AG1DEN5yh8hvIGAYxJbkFRnCCE0hCCj/gBCeIEAMgDHzgBh+COAjwYAzggAI6yCIrSoBmhhNZ6EIH+s/dHnEFWD8S1k+A0Z1wdAAMQhFg0IP/7vWgiEjVqwR6JkEIFjWDb+SeE2DoPQVeDnOYl0EV6H7Ag/d7eev9+AkngAMnVmRxF3ciIAI/VwEKAAoK4HYMmAA/BwoJkABr4Ad2twQOUAbgBwa5R21D0AKehTtUBgWbsH4tgHu6xwnfsAhAMH/0twGDwASDgG4AoH8P5gAb0H9jwwpDoHYqVoCgJ3rW14BxAAoBoADYFwkJ4AcZkAFO4AQiQGzg536654GSQGrPkDuzt34nl3VVCAQt6IIvF4P492APcIZneIOQNzaDIGk7Z2kHWAFyKIcRBwqg4HZDGAB4OHp+sAZOyAIsAABl8AJgQIUp+A1UIDdZqDuhEwJQ/2AN7/eFYbht3AZzOqAKxFeDD2AAcXCGx/BgOJB8JaMIBUBpcedmSzCHSUeHRQgKBnCHdhgAEAiLAVABa+CHRvduhKgHkTh+o8A4hecoLWANhqh7K6gKLthtaIAGqlAGg5CJBnCGnIiGn+gAgxAxL7ABmQhsqLgECgB6Cmh9dmiHnUCOkACBEVeEAbAGhXCLR5dphdiL4zdAJTACjwJo4peCKlcFF6AKF3AByWh/ZYiGBhCNaJiGEBAx4hADa3eASCeH1geRCxgHQ7iA5dgJAaCHnGiHhVAITWh0gSgON1CMKfgD6IBekbJj+aiPvNePYjh/2XZ/AEAABVmTB5mGBP8gitKyCA7wYKiYdEMYCQoYjrA4jnaoAGFQjqBgCnaYAE2YAUanCxKgCvFYhT+waN8ABlQgYaOwaPqoe/F3bS4IkAAJc46wAQ9WkwV5k2moCueiCDFAfDwHhEDHgBmZkUYJCuWYkQhgCn75lwHgkU/oBLqgCwUwBGAwa0RQBVWgCEPwmC8ga+jAi1/5A0BABgRQABAAAfO3mQVQcDqABmmplmypfwVwLmVABg8mlEkHjhmZALI4gUa5gAuYkX/pl0bokUYXBXQ3bA5QAAXQk5mJBjrwai/ABIowkl9ZbblAAJn5mZu5bQY3CAWgiWppkAcJABm4K7yXCwAwcXMolKn/qACwmQCFMIEKwJR2WZB6eZum0AkY2ZHaV3fvcGQ5qQj3BwEO4AD9WAauJg4iSZk/sHXNWQkUcAGDIHOv9ncFQJPSaJNsSWy7AgSV8GCp6Ad+sIoVUJ59OAcdeZ4VoJedYACm8IruCZ+xuYQYenRLEGdDIAXegA5UUAYbAJycCQHAmXpZmQS5kAtnWAmVAJyayZkUAAFpeYc1GQfYiYYAgAa78m/fuQQHiKEbKodLmAFzIABzsAbdUA0ZwI5rEAAn6pedYH2vaaUZugQGMJMIygRUIAVScAPioAr6WWQziaNmKI2bSABBqpnndgwPUIRKWpBx0ImFyokFSQGdImjE/xd0RccCRod0FNiE8CAAZyAAUwAPUyAAlroGS3mi8LmUZaoAGVmlkfAAfCqkBbABZQdrL6AITCAOCXoBBHAMS0oA/Sl21bmJg3qdSiqoSuoAigAoQ1ChBCgCLGB67yCpGZCp8FCpU5ABnEoN1CoACkCit9kJCCCmuFmOkICXa6oKxjmnMeAAmXkBi1CcN3Bo6IB/txqDsMoEDFmD1zmNhIqEcfBgbvknVZCJEoCsgKgLT4ihlPqsz+qs8FCtfrCUD0CmfAmfKHqXR3it2Oam6IAOUqAIjrAI1kYA14YGgyAOtMqWixCDZeAIDPmgNpmkSPhzvnYBgAIEBMBz/wqINv/LfWuQpc/6DtCaqQJArdQwBdxKph0ZAKGKkXc5gQlwrWvqABQwiOGnB2DwAmXAsZkodAZpCme4CI4AoHBZg4OqpLzKiUWIrwZwDBsAKGWIZLrwDk8IiFEwBXPgrALwrJg6BT5LrWcQon8JCggQBhl5kUo7gYUQBtcapM6ZmTGgCo5AcxgLBoqgA0YKqA2rtZVQBURwAzcABiN7qIXaiq/4inf4c+8Ws985AANQmDz7DroAqRlgt5VqsHU7rdSaAde6iUa4ABNotCk6uNeqClJABYqgCOJgtcMJtejwAru6lg9QCUxABJl7AxRAAGf4ua7oioc6joX6ADD7J2XgnRL/0Lpuu7rvQJ+V+rOcOgXvsKk/Sw3KIAAh2glMKYvnCZtIO7hLawCVEHYiebFyqgoNSgC/2W3EZ6sGWQmKkLlEwLlgW6hFKbbqiaQGcJp/ogo+KgFPqAtGJ7uaOrvUwKl3i77LwA3LsAYIAJ8okABhsADVALgqDLivqbRr+mCVgKCOC7kbW6HA9rklOsHPewMLHJeBupR52YpH2YAPQMFmogeL8J0S4LamFwWvC7sJC7QfDMK0Sw0ZkADyawoBEAaFwMJhEAZ/K6YxTLHI2KDaeQGOAH7okJWKcAH0SqKbmGkvoLk3EAO54MB2WIQJAIu4eYfBSgVnEn9O/A5ua3RT/4zFVnzFQYu+7isAhcCtGJkAfzvGZMyXSnutaAAGwSuDaBCcDgABiyAOCywOFYqtJQoBrjq11XkMFEmbFKmkfcyAEWcAEmomCwkAcVABr+u2rsu+QKsG7tvIQKsMyqAGYXqbGYnJ2xoAl7zCR0gAxDm8byoFL+AItOqcwcnLZ+iXBnABsqYHyduTFIm04oiERUmEa+qkUiKyMRCovrypiRwFsUutyoDP+Vytx5zPW5ytX7wAY/zCfDnGR/hgfHoBMycF6DC12kwAUhoJ0QjOF0BzeoDN5qyXEkubLdvHhep9ZgLABQDL7eisiNyEc5ClVozM+9y+1KAG3MANAsDF7//5nioMzWHwAWEAmwGAAggwgbhcpD15p6rgxthMAQCwllprABRABRdLBcr7ndaHtAEwjhtptHeof+4cJXJMAAkorbFbvlHAqWeAz+6LzNXqwcjMDXNAyRgZzR/QwmT8t+iZaVAdmgGcmeL6As+Y1Fpbx5H5plSQsuR4l3ZoCq24gIJ8DIoaJVVQnQCQik6ZpSCMyB1MrWrA0u8Lwv3MDWdQCJ2AAijwnj6NyXONAJf8AQnwbltGBVCtscZLfEvguQVJANrmamXwykYosXYoumaqAJ3QiUrsI0CAbqAXmLS7s5o6BS+91txgxcScz9xACNyQAZM82qJd2s6M2mNcDX7/kHcAYKCDUAXrKrWKQJ0PkI5x8JdMDQH+iYmBWoT324DjaKZ2GAnaKSVN/IkHIAKkWgjVUMV1a7eczdKNvM/UENPw4Ac9DbE+vQCoDc1/+7ctnAAGYK4IXbHrig43IMeBKrolKsAHSgCfC9wp2oARXKajmt8/8gKqCWciwOAJUA3d0L7oO7tl7b7PPcwIns/LIAB+kJShra3cPeGYvACqnZNDoM3GCgAFQJxMIJpGPI7hrZ+wbJdJC5tEHItmKtHDrSLi4J1LMAD9fXQqPAcNYMWMjM/cgMzRnePUOsJa7Ac6va3c7cw4HQYtzNRDANVMcH8xUAnQWAHYZ32Ceq4O/3AMha3Jf2yUnfCthv4ADqCTKtLE7ZasvGmelnrWav6zMZ3M+uzIyjDd1OAEQV4N1aDC1aDaNw3NX1wNFeDk/RmZs6YIFEqREv2Kn+vkaFAJD7DogYuXRnuRWK2ktv0jFfpmLDAAcOsHCRDXDZDZBu7Sn+7mLK0GxJzgMU0N7zAH3dANH7AGFPgBdS7hOf0B4ZyJTlsGb8rh8Wyi6hkHuNrrv4609i6xECsDMlCOhUrNPjIIqhkJAJusTUjnY9wNZ6DZPV7tnG7FMb3tIIy3axDXcn3kqG4Ai1AGvY5un6kD4lAAm4it40gAMUDvGt3T2woJEQufpIqR5Yiq3asicv88cUVXd04IlRmg03r+swbO0m3e8w3f3G5O1pia0ikt1wvAwtWgAATwfaCsxhZah5/qisNZCa8IsaGNAN8Ksd/6rQGg8ncIAOLgIxVKdKSHyE6AyBO/wgvQDUKv2dVu4C8t7Qqfz9N6Bmfw7V1K49++6gqgeIPgn8g5pwVgAFLftwQAARvg6yIKnzQA4RkJCV7/rZPc26W7ImTwAHJ4i07Is8s9BzpdDdF+1j4/6gpPzAJQ95q9DO6b2WfQAHjfALL/7WtQARegjaM8CISYvNVZhEwJzpm5AQ7w62RKAwiQ9B0JCWWckZOs8tHY2BgCBHs8dxng+WkPwltaDW0P+2////N1j9nJrPo/Tw1ljffmn/cNsPQXUAZGmmK4GnYjXahdzJTDOfxxAJ8yoPwsvAZJDxABIEEKgCBBgE6g4jwoYMXhQ4gRJU6kWNGiFVUAIonIMAfeR5DwBFCDN6dbt2pzGjRQpowbN1ItZSqjRnOmMjU3ubWkllPNGaAnG3RjBKCAKlUQCAA40KGIDwzHQHXqZMoqgQIUCDyY2kkGggVhCxUKA3bBWIIIQT2AcNHtW7gSLwCokOGdgJAgBZyh1u3MnJRnZMKE2XLnzJw2E8vUdtglTpw/9xKtUGDDBlVFIPh4ssIEAKlUQZnCqpWr104IVCMI01pgmIEDq5qK4yDu/23cFC88qODEyd1370IKGEntzBTkiV9qa+zy5cyaMhcbJuT48U9qxuf4IUChAIQiRVaseKLCBw4AcWRQ7WSUgoM4UwuGDRN2QX1IYFUHQNgpDoEychMQNyJiAEAE4fLSi6+99ppCDW4IYU4bl0ix0LqbdOJGGwsNI0UN4874aTsCVKFAvBVUeGLFJ1oYJIYH4pCxtK3i6CSA+lqrZo0wCllAtdhAWQ8UAwCgYEAk3xKHjGP8yECkj4QTjjji+ApKsA0LGyzCw2CKybnnNHyJG+PUMDMDABzwYbwVW3BTCEkkEaIYHwCIEasL4AOFv9bqq6Y1+vaDRIb1EgJggyQTrf+oilx4e1KkKaAkbooqQ2xAMFJ2Imw5Qqp7KdNMCes0TOeqcwkovJYAoAMfVHCzBSGgkARWSWYoQZIVCDjmv6xqDICs+1JagywdF+BPrU4UAAAHRZuNCIhGKwiuQZFGorLKS89oQDnnSGFOQuce09RCTx0Lk8wpRFjVEw5CkDVOKOIdQQV66S0CtEho5Iq/BVBaoJpqCkkAWLESIGjPJRwI0FlnF4n2N0qzI+4jaooToBuTutl2zE+/bYwwwzStTkJTNd1JAF0kMKEDTzzhQYMW4hyhsxM4aNnmCUw4IBIF9J2KtX7Fao0sgHcsBCFCIwFAB4adhTGOCqJwQiQGrSX/jhpKBRhqJQifg6nTb001Uw1vPZVw3OfgkQCDDibggIMTQtDg3RZUWOGEFFs0D4MDFKjA505QUK3PtNZYI6UGBBgrAELjAGCQppudi7c1MpgiA8snrRbE7M7Y69IsB/N2wpf68gvMTceMSWWW3447BQ1GkPVVWuMUYgUA0uu5ADT07CQ/FARfDZJC1pijoznWWEA2x4+MPFEDeSt+jowvxivr7GoyEzJSDSO9pTNOIruxUdGmZt234Q5hfVffjVMSRBCJc4WoFNj9vV2pWm1/HKlPifqz8AcUB3De85BUgPTUhXomqcZJunG5qy1GMC4hxJfCxBwM2QRsEYpJYaaw/6r0uS5u7opfnGLmps54AjSguB8B4oMj/eyvPij5nwCqUbADNMSAA3oBGWLkpDlMIWMas1Z2uuS1MelEG4QAX5hyMqEKSsdzy4JbzU5Qs/XJDgojmNkTNKCBEEyAb/EBRWn0JDyzmCUsN/yX/+4ThgAk7AU7FJAiyKCRulCqI9cSAMeyMxPV4aQnFYqJtiIUGWpsCjKR+SC7rvhI9Y2ABFtk0Qjc1IEVUoUAldCKjQQXFtXYR0c7+oDhejSWBCzBBEyjI24c5qjfXK0lxeFJxaYQvq5lKjJq0IKFMqWGbvBSl9HR5djMdJwD4MAHIryi3EhQwvfZrk756wSNbFSQsv+o0T5/CsOOBjYQBKzBDwBYWCvj8sreiGQZ2UPOIJXxF5UAUxlfMl0DSNGpe3JjKLw8THSkY0wQSUCZzIzbJmwhv2jG6QmYDE01s6IR/uRHjQD7VwMbOAdigUUATjCBOXHjiFzEQQTqJARJqOec7HRjAZc6nRbCV42VnEELG3znxpZIKp+MbSVTWELrHnlFDqRgkvGjpAZUcILPxEeTEEADABTwmvq80V8NvFjylBeWbhRiCQX06FsWoRFdjIRM8DBeYtQgxDnw8icisg9LtKWF7/mFl81BTIh+sq0zDGCgQIVbuxgguyeE4JEq4ADfFGAKTRZgLjwbmB8Ox8aUXCz/W1oDSgMWkIAK2KarcIERgooDjwwUQiVWMskZnvMTlYYFQmoAHXPemdZefgwxImLtpX7CAhMsM4Rvk5slAxsCFUChBXVaAn9Q4FCt7AloH2DjGgVQWpcsgxsvLUQFHrdZtyhCV0+a2F2yRpxu7AWlfbEPlpSxkjGZTqZcekxLzqqtbR2TBaxKX83alQIGxGuLWhwBJiPBn4TgiQA/a01qdSSUYLoEQiu5bCEAwATsXuSrS5jacPhouZo8x3Qr1cJztLVaGvLTa9LxS3xz0gARqMl1IVgxf6FAghEw4AQYoEs2A0AjUEg0qlhVida2RRM1LONiACvEAVgZYYoAAQBL/9AFPIIDEoldL8OC1JhlTRsmEXnOgTn5mhOPOTacnIEFKlbf+q64ib+OYBOCzdmSFbCa3V1gwKkZ3L/6dRKgdO2uVe7GGpbQFiRTJAka8UOFq1WxKJPJw1XG1Jd8UrEPV+imPMkz13pSMdyyjF19XTHOPGCMAYTaD/tzqJzjIBAcrRFgDmSJPm1Z2YBZ98iBhsigj5FOvFiNJH3sp3EulmcMIRqQG2qOcfDKNRDRhKOablmzJzABD2CAb6EOqxP8QDiHFmBfobxhxho4FCshehnaQkAAKqAuyNEaIkRgkh8ShGhJSZcaMcmeXRHjXtSRb4nLyJBxuuFPNK3s2dD+NP8GBqCLZQj5Hb75yLVDeeMCaLsCvzKLAy1ejRC5xNj3yU8AEnCoWdMaRtL6iMWII+/oXJomg8ypP18CNgnRta6emwk8dDEAaUv7AAfPgADU0CkJHCCsZOJRKHdXAANUoAKFMItFT/LtBnDKONwMpeEkUCIfDGFAtUjUVyvQ5OF8JOHcWKc/L332RHptZDc11U16wrmW/DJC66QSNVbSjZlyYwA7D6sAio6AQhw9Do5t7r8c2C+ARcgLjQlfald6vI/o4gAmMEERbmODF8yAFUmqApN0cZeJiSSRCUf022vyx5DB5GMYxGD3bLJyUbnEC17Q5TuFogbmrHMZTmjyFH7/BBaIFyASCVBJW+8evsSdQUKL34ndv00luoNkACZA1EVmpQINIMIG0HuABPJSHEII+WrZk4kRO3X+6mhj8eVaZwZpojXcr55CiBHf7LkReSeA1z7Bj0QFGqitylqJS6GSCdEGfuuciRkJ0iM9eHACCXAAJkAHiWCFFliB9NGAL9i8JHEYqJES0aOGdbIwYSMT6hgTkvmYJEovAVCVKFiCA3AqnqAgLPuTajgD5kix3BkAeKgYbjq6JXCsk8AqVquyZSAZMumciqGYl0i4hMOLyDsACNABa3AIGxCCE2i2drEAG8CFRAECH1IAu9ALKqmWXJMl6UKd9FsiDmE/eRMA/72CgNzJHREQAJvgGDK5GDx7iQ8CgL4TACEKi+D7wTV4ujUSiqHYiw0hhXqrmOIowlFpjERSBiFbBsnDgRUQgidotpYJAVuwgAgohUAIBFwYRVwAB9x4Go6osJFQkEbMjnUaGZhjO9ThGAFYFTHaOwl4B+myQ+bwt5NIpNwzGW54rhtKAKyohCVYg895uhrUlgYRgNa7tLJziW+JkJi7qSxxw5W5Gd4iAQuwAFuwBRj4xnH8glBkBQ10C0cgA6jhCCd0MjIEQdIDQbIrF2u0Q7IbE+laBniYPAwAOwHYxeqoiW8xtgb6OQMUARdcMrwADDgiAAgQPv/bGo0JLx8jwP9vYcK0s8bzY47FW7/cE4Cm0LR2CQEGgAGUDEcYIAFbYEkXQMkvAEUbYAUutAh0EoEKm5opsRjxm0ZNUYbws8PyKR9+/DzpWj6PJJ/Z04aKoaErEwACcAAHAADv88M/CT6oKYRfGwqLoxJuWMolssdrjLnZQ79e1AW2mQBHMslXsAUXeIUj6AIGmMtXYIAjUAf86oIugAEjAMWapIhFcCEniRIo20EQdEVX3EeaYEKBfDn0I4QdnD3JnEzKXDxSIMZq6BpuEAGcXAYDnLowODoF6JdL6Ylu+AAhJA5CmExs7Ej1mxCQVL/FW4bpaxt2CQE0OwIGwMsU4AEeCIEUCM7/3hROHuAAHjiCcYwAUQRMGAEFjhC9BGzC4kDMlmi/IszH6pAuNSSEAXCC5atM8CSFxgsmFbwWf1sA0fyVvVinD1AAAzCFAKiGkZDNpQSb9RvL1VzK+qSGyfMAtWwXDWCA3vRN30yB9SHOI3hJW4CCATVJGIiAdJQINIiBGKiEpcgdAziGSDiAJVgCzsTJXBMyetxFE+yU+0w4+mTN8MQa8fGUoGsyahhIlQq+pxrES0ETClAFpCuEDPBM1ixANfSC1VzN19xOyGQbLpiAGjDO4CTQAgXO4GQAvXSBUmiCh/gCC2AA4ByBGYCLYigGRwCCRQiPIriAFdCB96iECjDM/10Ek1FJw4/5zo+0TyBdPPDJTA65vz6STEicA2OMuD3ppvACABTxgQOIgh30SD4NG5IhUrAsQEIQyQ5gmRpYUgLtTSg90LlkABJ4SVA0RYcIBAsogVtpGgDIvyK8TiN809WLueUbS/IhSyGtqZe7z7Jsjm740wKIj25qgDkggPHwgQ44OHiQrkd1VbAJSyIltgnZPbah1LfhgRTYBANdH2uVmy9igC9K0L78SwMqAD8IyKBszKPsSBOtT2S9x+8sKfFJL3jgknoTgL+JuEgAhQRoo8nrAAyQAF1AVc9UVzUMWJiLxdxzAgAwgWergR5w0uCE0uEEzt6CAg3wTSWAgf9S8NamiYFIEFd525IIUVbXPEEjtMYlksxl4JqzYYEBiFF+NEx5xYpdzTEaAIs5wEnhEKLD3MFyWTtlVT9kdVW0RFhP6IGF9U28ZIBN+CINaFhpHQELwIVnsAAX8M0uMIJSfJ4CAMN5BMFhyxLX9JhGdUz6ZLwG6LDGeEEBCL+puRoRgNn4oAG4DaVVZFMonIslKNaEG5Wx40hl/Vh4wAChLdoC1c2kVVrD5VRf2D4rKIEWCE4XMMfIyVplJMOREJHU4xhklU22awxFpT0RebllyJ1ipQZ/pYa2jbj4kAG4FZxuCp/v0iyMuJepYcKA3Nuz2UcJcUMM8IAgIFqGHVD/aoUdw+0tC3iIGWiBE+CBLviCpiGASHgUvVhEEoXFs/nasKzVpSyTJRwA70tCvMgO7og4A8ixcgscBJDP8RMAHXqIDSgAB7hbiRlRxmRMksA5LlBY35XWAS3QTUhaUl2fpR2BZzDeJ+ABBhhgZ6kEUFgDSVGJxMmOZEPDcjXRmwqbziVBCVkGVeHQA+hgChOAto1IA/gd+giLOeCLJoSH9Y0I7wCAcL0a3ZvfFB4AY7jfHjBOJ/VNa/0rELACG2gBDWgmBLYCVpiVEmAYF+o5AegIoZAYvqBHYWTVxYOiRJzML6mOWoy4SiiASrDQA3CCFBNhEibN6WxCXQC0ipAz/7oo1oBUpxhOOHjAOWNQ0vzFYfXZBBU4YoeQhKNqF0mgI+fFHJGgHoy5licWyvLxlo89PwsZ25b4TAJAAzSggAvg4ql0QAcQ31+xNBI14xW2SQRKp+FgxI9wAjlOUoU14PK4VhXoUuO9GxWYwucpAxdaUyfrCBsNjLfDXEfkGAs2y6WMCSx2gEVIgkWoZPc9kIQRXwWAKZkyW30UgHdA47fQgQuwUAojQ8K0uVDbOwwwBhUIhIdg3LjJY4iwhtv54+cZAuedXHiglCozic+RqStLvw2q3vN7OW9hvrOBSqQ4ZktmioQR4QBYKbFdQjJ5h0+OCzkjgLuFklI+uIDEi/8DUAWJEIIQWBGJqBUDeoEkxospAQwBDB/K4icSfY6y6Vn9rM9MoYbuWASAdt+pXOZdTYCA7KXHPBldcAAqSJL2RaBsfgdinRgAmIgZgBMhwC5ajgMG1osMSJyTmAPiiC+NS0GxpdOPfFRFPBRVOOYKlUqmcICIHL4GyDBOITsQhAdycpZMXopclJIcooghmAFX7qp1FClDKznPsR6gAMDtScHthKLO5VMyAQA0QApK5mILTZOIVADRio6X8IKXGyvDfh4IcAACiMqFVjcr0C6oUUU+yhi0i2CPDcuABU9ILBGkQANkXuxKqOThmwPjGL3z0z1qkIDq4+wIc4QYSYD/R8k1qlmgJ/4jf6IgWBSVweZTZTiUQRgE1o4BLs7sSojIOBCtmCpBtBYAFrgA3UayRXgABVgDSjk0iSHkkaAJjrlcvr3GFJ3i5T7sQTARCrXQLm5s4/Exs/YUIXMC2O3uroKR8I7H7GlIqYbsFAwVzPXI/KzMlzAA+O7qSt5iLuZiQYQpMxm9ehwrApgj/+4qH6qLkkM0a/kLgNkWLdDMMTFtjylA8GxwNBgEHRiEmNbiPKkAw1k1FNZHIYMHAoCwDjcnO3oAnAyJ7GGQOUBN2+oYngXJgZVTwjYAVRiEMnCEGY/IsZ6eBoHi8AvBB/txc3KEBPrt9NUabgqLsoWQ/2QVbHuGoso82xcfBEdIAjT4johUrKy17pVQwHLl8nLycgOasMrRC8r1uwRAgE9iCcOY4tdk7yle8MnkBgdv7jIYBO+AAEu380gohGroubLG8HFVax/3cwMCAvBm4ASpFsr9kUPPb7pb5KQET8nkhkigAB0ogymv5Au49EpWgASAqeSrXS6JVLXWOlH/8zgI8JIruauZDDWy3OjyjXeI0RRtb8okha2CcXFw7gugUFx3AL9ZKc9JzLMhO4Pt82JnGABfgwQpQ0YEimpYDXCXifYDwXPNalinvSV4cUcQBzGd0Pm+ZqUrhEtpgB1hwtoG9XN/nnRfd1RHNGBagOBBgP+yja4lRNGwvHfWvPYyEIc492rovuYlqIB7bYA1iEoRkMdU5fFQT/hmcYRKgJrKebLx65yHD6UFMC2caD5VVdRvgXVt2Kp953ggSAIKrdBdT4BCXwAAyBPvY0Kye4ceZ3mGWQR2TAAGXtsiqhKgmIPfAwuWcMUSdfJ71wYJuICg5/ck2PZr9o4HiChQ+I5Trd19RHipb5bAhBroBe4y3Po/UY2VyJ75ZfRkrUxSEAEKOPs4Z+1K9o7xTYgHmMomk/uAdAIAqXu7D6lC+A1Duxaq4cGyMPMndvoUN0IWZ80ogADEV4VJXnul4Bn7iYSpQXm6o/yVt/wB+arw/o3vs5j/vWajUGoAxlzMl7PgRZ9MQnCCApBycRB61V98CKgEp+L1+x470lvitbb9DXwAD9V9eET1BHyu+vB6oJBHKK5HvWX0pVRh5c92IBBTXPcO5+V1q5d7RtyOLsd+JIGRSFgDnQQIeAIFEBwoAJ6AOYUSIECw4Ay1iNyoLavIbRm3jBcJEdKmzQtIL9oEEFBVRpw4R46AJLlQ6QKaAgUegFKgoJCAZdQE7JyzpgIBcVaGEi1q9CjSpEqXMm16dNEDBWsyOHmHkOBOggLObO1WbQHYBQ0aqMlYUedFsxk7ehQZcllJHShVOmr58oJMAJEUgCo0h2LCatUKAS3j9DDixIqV/0KVmuFdVYEIs2YV8HVBQ7A6z1pcW5Ejx7ba2C4DYHJuSiB4L1CAAIHAMVCgAoRpQG2O4AWFAhBgsvg38OBHY0T1UxWy1ataISbE3dChbYpnKV7EyA20R7YeS59GmRovhdYQKtGcDWmN18uQgPoW7v69UyLkFVAVmByhQZ5au4UVy9kiIdVhFJpHBX7E3UlzAaHKBRCE11oBBMShACSQLHBZGAgEwJth8Hn4YVGKkBFHBWs4Ac+JBlEzmVYEeQVWNw38Z11no9noRUcdecENAGgkmNoi4IXnmoQTdmLhAmFkGABQL4D4pIcixiGCCMfddxV+kiV04YUyorXZWZ5dx2vNaKARskwkFJxUBUosLRIDGmg0GGEccYDSSScbQtJQAEs4ACWg7ilCQCRTPYaiVQdlMEWLBOEWRm7VQETNRDktY+kyWnCjhRYWZcrpMgosUoUipQIZwyKLyBnDTHbKJgMkFAYAiQEFBPpkQAAh+QQJCABoACwOAAkAjwC5AAAI/wDRCBxIsKDBgwgTKlzYJBCdhw8dBmoybaHFixgzatzI0WITiJ8+IckxBknJTxEDqZSzraPLlzBjZmzyMSSSkGNy7NiRA4kRkSE/GTFyKtC2ljKTKl1qUQ7EhyaRSM1RI0iNnVhz6OSpBEZRpmDDKnVIJ+hIklprcPHggctat0HiXuXBI4WLU2Lz6s1I1sjZrTuDuPVgzBjbDh3WephglW4KWyD2Sp5M8GPZsyWxVuViDAOGwmwnDOYyoQcHuhxsUV6tVw7ZTzl3ah2zQ3DbwsYQi54genGP379TsB7OdJtTv1p3VLWqljDu3CZ0T/A0gTAX6j1qCCfOHaZrIyWjjv9p7vy5c88Y2vYG3bYGj2vd428EQeenyJxpFZtnj3hwecPtcQCffAQuJMdQZcW2HFvlfeaceokRhl5hpJXGQx0FZojQdwoqpth/7HmQGGLP4UaaJxwwEJmGLA7klE5qFfbZhyUCeBgXuhHGIG89aDBgiy3KoURtnHVmJGKHMYjYkku2xWCFPaTwhRxAtrjNFzyQZ2RhTLrVn1triYZjByKydR0HMFBZJYtYblbeg+rxJuecnqDIwZ3UTceBBnitqaEFIbhJYgeG4ZYYb3feGUIIGqjAABSQIgLFEyqEMAIUNvipYR0pECmiZ2Qy2QGiJ1R6qQWoflEHCHjgAQIIddj/8UUEK2pKIAi2VEWYCSZgIOqhKDYKRQlfFDurqyAEYsOrr7Zqa4FfpKCrMb1+ltuSpEXJgC2IGFtsHcgyKy4eaj7bnQUc9LBWZ9GJOkEHnvCgwSu2QGHBNd6GKy6zmZp7LgfNcfnrqByswIALttRrwawRzLrvvv36S9wIv0lo7WFLTsBBCAcnbK+3Eej7sMTE2cBAD0FYnN6vGq8wL722wJAqwyE//CpSJFMGAgM8pNyZg0zyhmIIKoxAQsK2LBxBw0uLzCzOOUsGAgw8iPazoV9qzPErr7iAcNI0Lx2yyOVGvZfJPUsIGmj9ae0o0goby3SrrgaCR8hlm50XHoFW//cmxqN6UioDMJNwNKqItGDHCE9cemwEFtiBod57Yamu2riJGPieDHTBtS1cc80AAxo8EcIKjEJRrAVPaNAC5Xuhyxtb1l67JAcnbB06A1tDakEEdSBitOpfSIoIHrDrJfuYhAqsm+AaEC46AyRAgQgiJWQvq/FLL14C1MkzVQIHvOFIGphxTjA414ZHasEIKsQ/QgnBK22HCiWEnxe6KKsfvQYh6AGd9tQ1pMkMVXaAgh3oh4c6oEppX4iY/sCiAurwoHNegwEDOFCnoREOYQfEl9hcVYcSokqEyJugWGBwpy4coSsugIEGQ3CnE6Tgcx47odhCVsI6fOEa97pGBP8kqMKlwKALMFDCUGBwBBi8ogukk14BEyaza6BwVXf7wgPxlcIiMgUPMuxKEpWgBBeEznBnhJkMlVazLCJChlacnBeXIgcLwCCGMnSBGEnAvtCxL2YnLNbY8CCppAmRXHNkyhdihjA7dgFhJBjdEz33xM/BEYV4+AIUYrbGLiYyKXjoGh5t0QVKjm50nivlI2GWqqYhggQuYEAKoifHTyYFBo8BIQxsYcZTSq9zrzAcFZXmxk3aggQwsKUiGYVMGYLuFZuInh+DKcyYWbFprdphBJTJlEqh0msugCIq00hFOMqNbszyJDdlEsUjlHJ6wAwm+6p3Qiv+sA7YbOA6jfj/inFOb5rUHObCrnG9hdFMnfuECRRCZ0auQZGSDlUjDPAFgxFQr5qI2GZCkwIFPr5TlQ8F6SPLaUVEcHIoVkToRjtSgmeGTpVP7BxMjwaDbhXLnsaq1UphUgfQhVOkDDhCPHEIhYniC1/eyttON2Kcnk4SpEo4glA7J0mvWfOHWBWkUpeKEePYwAI+nWYpfalKcBpSkKdoGlc7YpyG7JKPYg0pVU/ZhYQZ9BSnuJtO14oR1wTiFAhzqEhVOdUUnNKdeBTh0gLBV43goQlWtABc0/jSsZIuBZg95ecQgaq9NlYhiwvE+44pun7OM6aj0wBmV4tZaSJzSp+1iDVacIIT/+ChBJKcJuEMN9mYYpYHKbIAGkAwKyLG9iAzaMEKcIADISR3E3wknBTRCNBXrNYWdajFcS9iAzus4F0YMEEWqCAER720uqE7JjBrWgcraHe7B7GCDWaLjQ70CgAAKMILhkCp3ErRtH+0HqqyVwcb/MIbtbCCFKzA4Abf4Q5r9cZ8vQteABwAvxAYwgvKK01JHo201PxYwxZmBxC8oAxSsMYQpOANOTDYG7/4hRV2Ot8ZPOEEFT7AASRwYQcwgQr8VUGH6YWqYxrZd9egXwnsMN8YFAEbWRiChl9wAzBY+RcbnfB3EdMrHe/4ywQoAxWkwOHojS5pdoTU0TpqAezVYf/JNrABBRwAAUEMYgN4psAGylAGb+xzwiF418+8PAAJDKDQACDAIKjgDTA84QmbOCWarQepelkPESW0wwxs4A0gkKEReA61ngVRhhkrU8s+6AB6Dn1oHrO60AegwAu8YYU8NG50RuOs8S5d0OC1oA7euIMiyFCEIoRaEMgeRJ9tOV8hYKMROLjvhXdcaAlY29q6KLQJUKxgIbTAaO1rM6QiVdD3tcAa3uDEDWKwAT3rGc+C0AETmDAEa3jRGjPIwgpSbQL8GsDLB1jCEq6N7StcQQIAWPSBb/DtEbxiBJwVN6/vZQEN2MEav+DEN2IAhCK4G96LFgIOfKA4/VkjD1n/8EGqPWPhSHhZ4DCHucGvoIsrxPoF3/jBLzZsNIijatyXRhXvSiCFH2h8EcUINbzt/AId8MoEOMCGDih38pTjwL4YwO8BIsH1gB/gGAqoQCQELoJkRCEKTrjCEgrAhBv84AffyMO3udVmSfFaeLmbwTc4cfSOv3sDyS7DBlie6A4UIQs5o0K+G4GYrOt4CWOHPNfjcAywc33sIhBBFFjgBBYswQFlcDvfqdCCJ1TvenZHPRRCcIIRYJzv3wACEBpBgVEjm9QbIIC/DYBfE1AA8c+ygY19EG3HX3vrl+d65SMhhkgoIOzJcIITLGEJFkigEmUgwt458QMbX+p6JUA9/1g1sDGiG53vjgBC7dcP+EEwIff4fYAB5o9fBxShDH6yhh2eQPz7AsDaSyACS1ABz3cMlycGlacAXKcAsRB9yGAJyGB9F1AGigAG5/cLTNA495I9BbUJtfUEr8d3P6AIfrd+FGBn74dfADB/Ljd/vGcC9wckZYAN/Zd1/ydw1iaAFZAACiAGCFh5YPd8zxcLZZcBltB5scYERAAG26dxeSAEnPVmugZAGjADUsB3WEgEJch+7kcBu2cAx+CC9AcAHTAILJIFDuB/EhBzAVgBbvh8zdd8x4CABeiDCpAACZAB0qd2FKAIS9iEcJcHJQA8b2YHpKMBUGAN55eF6meCJ/9Ial64gvI3f/L3APLXe4KQIcXgAMYHcyJQAQM4gG44gD3og3MoBgFQimIQdiIwfU4QBSJwAYpQZb9wfm/3DVSwKrEyAhqgASMwA7WIhdxXBerXbuuHbGUQiZY4iZS4jPjVAQVSBRfQbwEngGyoAEsghKloh6aoANvog24oAiwQBRlwdpXQdky4iLeIbyVQek+AacEojDewCIvgiI9YBhcAAMs4ifvojASwAQTiCA6gdQEocKAogDr4fAGAgKsIhwGwkD64ihVwdhQZBQnHhBmHhW/3A1KQXI92cRkpjN+QBDEAARdAARBgkhCgZ4MAAZLYjzD5AAAAAfJxAxdABjf/GHOjOHCZR4Cl6Hx2+JCmOId4mAFm13kSQAG0+Hbcp3NvR2aaJgXxqJFVQAYxUAArWQAXAHKCMJAGAJNfCZMFMHXdUQUxQJAw55MKkAzJcAVuKHaqKAad4I0+aAoGsIoNmAF6uXkDgAMvIJU69w1WBgY3cANUQAVgAJiLyHdgEAO5UAAsOQiDIG9/yQQOQACU6IIxKZP/GB+CgJMAcI1CuJaw+ImRQIA++JAPWQERiYrZ8JrJwAjJwAIsEGs6oAODIAgXsJLxRm8voAhM8AIWKIwjSAa5QAAOUADKmZIrSQEFIIli6ILH0I/4RQHd0Zi5sIJLcAWfuIPeiIdmV46f/0iXqBgL1fCNqRkLepkMr1mOaXdhOCAIG4ADBIABdEZqTMBn8nYDwfgNi5CdY4icWFkAuiedYPiVYDid1EmT3OFp2pl5PZkAAbCDCZANe5kB2QCLCjB/qxgAnWAKH2oKAZAAbJkMePgBm3dwBwABTCAFUtB0zomczZmGvtd2ZYCTy2gABEAB7lcGOkAAlWgABWgApvAAYbiPYQgAoMcdgpCdkSAB4giL2TiiJHp2eukEGTAFc5AAPniXPtgJIdoJeDimJJqhIqCAAFAAgqAIYyYFN8AEdwYBBXCZ+EUABNqM8kcAOqAIL8AEivCcCKoAYRiWllikRoqAOpqJw/ECMf+ge2R3BVGgds5Hoq+IDAIgAMgwBQJADXMgApHgpWIAoqHqjaT6kCTKlmL3b4lWCRdAanx6mFaGmEBWBoDajASAgmUwCDgKhoi6jKYQqgwpqLwHkMOhCLq3dQN4BbR5Bd6YDFmqqVgwBciADFgQrVwXqqbwqyCqmgoApqr5AeDKgwZQAO0XowLKksF5Ay46CAW6j4LgCGWQn7p3qGLgpYXamgr4qTNJHGWge5gnAspKm1EQnpoqAFOABdM6rdTAAqyJrdv6kGEAkagYAGbwAbKZAMegaC3qpoowCDGqggRgpxdQAHj6AGE2izfwp0AahghYia2ZrXMZCWHIoKwBBNn/OXCcJ326IH1RkA2XCgvVirDSigXUYAlL8JXZCqKdYKoeCqZ3GAYWmwysyXuVwKPCKZUcm6sfy3WE+gAs+gJUxgQ4GoZAWHmtKZepyHUAcAEvwBqddrNlJ3206YpOYKmXmrB6GbQi4KVJ2wkRK6GpuLQBEAZhUKIEyHt1qqYUqK4xJgWESav9aAAZBrZgUJX6yKEReYoM2aUGmKZMwBrzaGGaFwUQWH1WmgGbirCWgKlTQA3VSg1OgJqjKqZhALhgKrgfMAeoOq5wSo8jG7IiuwHudwMvQAG5UKiWyLa/eQOOcLwGsICqmK112YNzGIYFYIar8QL5eACQinYJ+4rh/ykA1UqtczAHj/C6yFABCwmzS1uxHxALD4kAIxoLhJsABBhmffqXYMAEulkJKpho/voA2WqJsga2zKt7lieXESmowCqU9aqk2EsZeXCW3OuKGUCt1PqKUSC+Qaulj/AIsEANjxAFCRCmYJoAFWu73jqi77uQSloJEDAI6uqiYPACjiAIEICZZzqdv2oAFABkwukImKm5EQmR0vulXaporEEEZ7kEO7uzR4gMrlutB0sNVuy6TgALIWzFj6AASWsKKJAAYWAGyUC4qokACFC7H2AGEWsAlaB7iVZnbeei3uC4xUCyYVikPnyYjusIK3gMqnmKEnuKc/mDt8oaitDEuv9gCbqwsxf8ulN8xdXqBAIQwsqgDLuQDA7bCWkcBt1gBtUQBmicxh+QAGuMAGJwjjBKoMALmfhZBmd5l3r8wzQ8CLnwvOr7kArZg9IrA2BqigBgnashtv+nCw/IyCwAgURLtFdsxVhQt1tsxRkQAH3LwtVQDWYAv2nsvtVQymKgaGA7BMEJp40KxwQpyzJJy1JABcXgpHgYCzwIh2YrBjKgywgYzNn7mcU8rbrAApCqzM5sxZdMDdTazMpADclAzUqLAlALtWxcu2bgvuEqBomGlRuwYo2Wso6wCM8JebxcrwV8mP3Kq1TqjRB5iia9kMeAz5RRBo1AAAdQAVcAgQ//2M+UDMkCfdDVeqnUcNDKMAUKDaIM/QGEC89hEAvgCrXhqgAA8MY6RgAXMAgV+A2/8A3Mi8fA+s2CgA1DUAaCgJnMd4cjas9FDAkOvK+UsQGXOXBRQK1YQH3Th6k4fcnKgAWVDLQCDQvJEKYiOsb0y8ZzsMbJAK7VwKUEYKMXAMcyame56QAJKr3BnGFMkI/Op5BUyoOtqZoqzdKSYZn9FoBZmroIi6nUWsV0XdeWasl0PQVcCqLbSrigfM2M8AHd/NABYAAbALYnlpsX4L//Zm1uWZc9jJzOCQBcl8uqedTx3K0IAAmQAKYrLcySUQz1adwKkA1zINoP6Nab2tN0/w3CDdAAp60MsPABYAqiCIAC2wzK5TsH1xzRW5oAFX2CwbnOLzAIHB2azBeqneCDdgoBju18mu23tWu7D8nGHhqG0q0XoYtfBhgL2R2040u0j5DTA13hV3za3SChYCq/nRzRzpoNSM0I5WuiOqqCDkABZfCXdfwCm8irMPvNkEkAla3ZYx3PqfjOHD6zk6EIA/l4O5i7HPy6QAvCGX7Q3t3T3n3JH0DNYKreFAuuyaCl19zNc5ANCWAA7rcBz9ljK5mbuQfj2ZqxM851Czm4CQAJ8Cyh3xkLr/mQkEDRFzAZ7Pp/AeeGCVAN3W3QGZ7kRz7eDcDhKKDeH567tB3R1f9Q4pGQYUDmsQSKX9tJc5CHratIACtJAGAXv4MbyoCrmhCe0ELJ2XmxbhamY1AqoZ4czRZ+5Abt06e9pR6q3oRL1OBK2N0wByReykoKARsgbxrWsXMWmpD3xd986c9rqhIqxp1uqtnArRs653vxAj/+eAOIh+W75z795wdtyRZ+yXqt0LJuBqQ8B91A21VeypFAp00tCEMwZlSgCDrglQ6bsSeJmRMroZDwt0373FSqy58K7XpR56FYASLwzu2t7dxwydyQ8OO95ArP2reLABFN27jeDVV+66Xsw0xAAYpNrqGGwK79q5bO8XMYvxBtBoBr1n7LtD2YppKxvWs4gNn/kAzw3N7doNoKn/CkMN48f8mEQA3T3OETn+jkXuVmcOtSi319KgiPHnDAjZq3W+wcb+YQG9uEC9sIIKHw+9z16gBUoBdf/X8DYHCku54VWw03r+R0vfCEsPA87/CksAXUAK4KMMbXXL63fs20fakjrAA7qmz6icO694kmXOy5N4edQOjYXL8RW7tjjPL9jYBhBvbZeWich7cZ4N7X3A3iPd4L7/YD3erKwA1bQAqwkAHIffSB3Q23nt1T8PpSa6chq6bBKc5fjfhfXAkzXvKmusafvuaxENHw/MuR0Jl5sQihKQHUN62liwxXjutzEN48zw2kAPquPt5xzw1YAOoB/yDxsc36c1CwAvABClAAyQjTFc3rXngMYAoJKCDyWonp3ki4iS4A5Z752bDGEa3CkQAQADagIVjQ4EGECQ/GABDpihNLEZEhw4JFgIA5H+bMadBR2UdlpAiRAlmyJDduyghxmxIrQCcUCBZUq9atASycDbpViyWwzKALBA5c0XWFqAIFnZQqJVAg6DExAQKEqTZHQIYMyZJli2UGgZkwkKR2OnaAgkK0aQ8qKgBgCdGIEitigXV145xqAmB95LZlC6mUJakpo1aYL6GVcxCgiBlmQYOaj3A+6vbBTLIDDjYMErShgFCiIipIRdBJTNOgccRAQkBVQAMBXGPNNlNbqv9UBZEOQFDbG20VMgAkRJEokSK1igKQZbBJmNtIL1tQpiRFkqRJUn5JUfNKA8F3M48L79Vp5oMCAgQAVLogiDOEhgpuB0DvlICYTmHCmKmJNZtl/qoxI5bFlsrNAd8SPAiIXAyoIAOIkDEOGeTquogjZbgBzK+/UCJJQ5NAyq46bhpY4KvvHsOJmo4gC4CAQQZxQAIJCHAAgrYiCSCBBMIQ47QCKLiPNKrmwCqWD2jKBq/ZAoBEBhkCiISAFxS0sopcHqjgCgiXm4MiLCSkixpYuplDmb9KIhGwk07KLjpCqNkpDBpiqgYnWOTcKBkAKChDEAgIEMEJJ65AJopkELj/rb6gDJiqNf4yyKY2/viLhSsnO5GhEwUAGMRKBZNocNAMLEFmjrnmKoyaRyjLMLCQRtIQVpOm43ALwj6gM6aOcCJMgCmyqgCAIDegwAEAnBAgigQCUJQp+/ADj6aMzOixtmyyva2TJztFEFTfLgDAwWyUQwbYuWDBYgqcLOpmrwxDqk46lNT8iEQP/UJpp8VQ4K8BkFit5oMEDAAgPQgooKCAA5p9SSkghTSgk2mrWaC2rmqzao7bxNqRWHB9YygOCAWwyBKTK6KIXVZ3ArheDTmcLsR7EctuCy/i7CaMxRyraTwBqkmAgA3KgOCAAQ5GtgKlUFiqqQ0IMCCqqQTU/2/ABGbTqZowmsTtmG9D/o0hh76c6FyTpyisIjJh8Wjmm2WdudbpCNFOmSl0/e67Bs7oNSMDCnhPPaSLyhTiG58SY78Aweo6gaoE2Ikmr6UsQOy0kiDDAAUySBmLtgubAvTCHgGYL+v8QuyvlUCi7rmVnsM5TVj0ZgyBXlmdIxsRDiAAgg2KgAADCa5IABIDHYh2qv1osjpAavGqKpvRFDiGAMzRAmJzMbLJAO0pBGg1z0fWbhtewKq7WTs245UXJQ6jk447MxhjbIEzCMPCCRGWAAADHPgAGytohHBGoxT6oGZIjKOctfhjJthgZHeziUUCIgEAQWQvIQwygEOwcv+RR1REMo8QwKoGY5jnpER28hPJSNoUkph5QYYraQAC6sQYGtxJAFc4AAYcEEAf+GAFPuiAAceSgPpQAADHcFZtFnCxDHRFQHlpgPQmiMRjYFCDCLlAgyrghAxMYQ6jS1VhYDWYe3noI36Rn6zat4vA2EqGXkhJNRZDAxrQBwAAMAEOgLiCEATSBwAYgAQqEJYdMQoA8qGUGYy0kdp0Qy9lamQFFRAHs2zxIF08xkNMpRfkUGMXo0whYDwkkvb1BWczVJ8pYdbCVgZGQKUxQFMg0IggruAEIdBAL4foAAI8ICkQQ42jplKp6QWoRWbiSaVqUwEJhE2TaIjB5h5yHBP/ZmhEaZxOveLFxujM6lUn6earXPiIWNSyAI0oAiADyUsNqEAF8VQBNopQTaiYphJOWSTkrMa4WMzBJpDZHVaQOUZdmGCaBYlBLiLhBArNjEwCIMxHDMOXuclrlfpS4Thf1U1vYkEX/+uAEAH5hCfMcxMMGMETWorSLGCjEVPTZ8KM6UxK5UWgzrMKLJaxjI5cRRcdWCgaiBADA4ggotxADrvSuAsyvctXswoMm1ZpHbiZMnazAgw1ktaBDnjiBCdFqUtHQAIStKAFL0VpAZn4gH2KSwEIoEl4nDiT11RDJw0YD2SqQb1MLrQYBFiCJbAAVWpIaA6wgNUUptAcwsDx/0PXeV/6MpoheqEEMUwdKVg9wYFdqsClKB1BaU072pTiYImdgGuQlpgxZ14scnsRJUowgpEMiKBPRWXIANgWJkso64SweMQUHhGvwajPm/DC6Nx8pTqQMhUAJf0saEOgAtO2dJ7zzO4TVlBE+TygADG4wNSOSanHaKwBpKwXNS6CFT7xZppVIIAEdAEmCbHAc4W5yEWSixMNmVIZlAKYgENiUZucYbN1S4kTCBBA0J5glwwgARRagFJ5upQEI7iwCiaAgUg0q7Xl5RZYGilbvcARJVAljIWcIAEcLBQIADjAfc/2SRJKsIQHvgkMlYGT8JxBC9NJLohYVI0hT8eUJP8RgQN8IGEJB1IDFV5raRnA0uyGwAQAqIBLTFEJCJQ3KvrZz0yemBdqBMZtq8LJVQ4wkGnO+ACmMpWEJhK+75WQTWQqidssdoZyni4lZOpIkj00K2osAQdijbCUR2CL0qbUtBtuKQcw0LDviGGfEDDv1cLjV9ik+SN5EqWfhQYAbCxUVJ2E6NnmYhXQua6ieSqTX88AmJWw6MB9zhAcMYocAOCAAxHmAC8pbAsLl7bCUKC0CjpwAAkQKAxfhgCnFZAAxz0RMjaBxS6UweIMwSIbjLOgDxa6iAbZ19UU6S8aA/Zj5sLiMebkhtuUXCv3XQcWwR42lHepgVdA+tFnRev/hr1rgkImAyyaxtEBKsAjxj1GkqHmhoqVIYBY0OQxGbgCqqmgSUXE4AFLuC/b7Aw69lqUuaOeyV4Q8+OP0kqb4vyIAIJd3WEXOwWvQOukez6CEHQAAwO4gmXCoAAwM+zh4ZlJeKglADj6ZRcCqA1NOiJJSxygpHbQoBUW0RAbh2kihVExSrJpkjOcgbEoIW5lKQvDqmYIC9OdQM5zngIG2ELgGuiuD2qMDCd05ehJX0IFstERjdtEoN2wW87qDZkVkR05lhhAH4WQvTI06AqmEjuFvg3HUZ7dJABucXJj5SZZa2juHai73YtN4bO2VPYoFbpvnQAgBdzIAaLJhvN2/9IN4PO1L3CCI6nzpOK1XUECJigC5o7qllZPBAufD73oCeNuw1w0JH6hWZuwoPUJfBbneKd0d1PqAQxgQBeWiIV+gLR7MOYENhxpDiFkuIXYrYqU+B+lRZwwgAPAgRUgiOsKpBFggBKYgRmwgxJICEfIhWOogLOhkMGoOOQgnRPKQFFyHZnDP4+qFZKYAglgPU/AudejtLIyraCrsYrIBtZ4v0goFzYDvtpYr8aLnVGKOvyDHQvEAsrDANabgPCDp156p+uygzowiKN6AIeAKNLpP2xyt8CAqrLzpsN4nY+Kl1kRAPALvx64O76LNNJyKUsbAMPCgjlIAARADwhwAP/DWxJJugiX2QtVmo5dEIlVkh/8W4ldQIYBAEIhfL0rY4AiDIFdCoEnOAh0M4C38ByUSxUMNCGyq0JvSh93ixcS+YghmwK688IvBC28I0R54rsn0IAOGAAwoYYp6BExUB439BydeBfIaBGV2ENbabw5uj+p0wUMMIFAPAG8O6tX0ABDPIEI04AGLAjgaIgHMZnEcjXQicQcZK/o2qwKtMJ6qY4+nC4S7AFv/MJQpCd5UoETGLoBWD9VTIYwUCc3vBP32ojX6IhbW534iZ9c1MUfZD2dC8UrS4EQsLsT0ACuM4hVe5C5oIjjiMRYo8aVWLAU8jYV8rZxIjInmC4uEML/8CvBYivEQJKwCdgy+9oFQsACRFEnAtgKisKJObyJvsBFGXqTe4QTbvBDX6y7HuABHvBHQ+QAb+w3XkKEBQmOOMgGhIRGE0KsNJtGzQIpqDK7juJAwnCCHsIALrhIjDTBYfOECRC6v9sF/KOGDCiYpiAAyIEFLWgxt+kVl8zDmJwj6cg6E7jIb+SBf8y5Tyw2XmoBhNgeB4EowwITDJzGUfq2mbFDiwI9i7Oo2oIqP5xKYzAGD/CAqrTKCahKExg6XTgsxLCbXZiCZDBJw+s2lesxbmhL08zDXbAEDDAGIfzGL/xGnvzEgNSAJxhIg1gEMmA1zkM5b5M8M6LCcXI3/19bsdbhwNYRJT9MP+VcTuUcAFREDNCxG5whBVgwg9NoQwXIhrWbSeFCE7Y0zXvcgtRMP7mETbu8y9lUAb3kIrLZvDLSv6MUJQ30NpJgSMpCoxQqTf4zFV1YP8AEnYsYPnCaHWr4ACCpBAWIhQaYjgx4CywoTfBsSzaaSfKcANd0vZz7Nw1AQLQIuQIwgAMQAUc0oUiUz6NkyhXbH6xYgiXIgDSDn/uTTnrMmTDBCy0wzThhBHWqhGOIhW5LIWqwhDT7zgh1yz6s0J6kyxDwxww1Np5Lxt5IDyk1gAi8JpUJpUkcNMOcu/TwHfU4rP1by1zcgnc0A1j4TrvhhnWpj/9KWI1qEMnNHKVbkZ8inaMjpcoS/MJASgEmBcgNHYEkBJcyAAIguIAYcABG5BKoQrna+raP2AUsGIAOgIAOMAEHcIADOCxR8rXoMM2UcJsz+M4cDNIlGMsxW4ZR2kzE4KE5UFX7C8/7uz+vokoL7Tc+NcRijDJStM3siQEC6NESmsTQAz1VDDYc6MVKdYJV0R+RvJmYxBWqawC7abwtqAjGXAJXlA9IuBMerDgCEIS2uIJNXR1qDc/xZM1PNEKf7KUnWCsh4NXsSYIHgASogx9btMMp0DqE60UJAJ32ogbpBE9CqLWA9YLtCD0sqICmcENsQ1U4ZSosIAAmQINBwIH/OQO9ilshPYTOATAGLjBPu7SuTRgBKHhXEJimRXiAWKit2XHLPdwFXTjHINWFF93BqHPZZ6XOM70/plJF4xKAUm1DwxOAitvMivu+LCgICjCBfg092HFVqUOG1QwCkO3JnAuBFrADazg3lU1V6WTL2VkJ1ZlWOHFJOCHS6PgI+yPT3jmAhmCEfP2dV0yzr0UMatAFczOIRqgvMBVMQoDTlYhUDPAAqgXZDH2CGbABrqXXHNysMUVbsL3HryXSNcqZKDiYPQIApcLWCygABZgDr53Wv0WGGEMIHCCAzBTMVAVcSP1DdK2BdE2BeNLaokpZSOg29ppRtK3T2UHbecG//ww4GPWgMaD9Hc+FOrG1RUhVKIU4FgmgkMZ9DhXLQWSI2cHlgmITLRJAhECdphuwXZOZ3tjBP9UBpzEFz42S0JzZgjkQ3oOZs1ItgA+tBtmBLjjCAgn4FLQIlNTd1GENE968WxPIAmugghmog+6dJkVAt2PIgL4N3RvMmWlN3/Csx92dIZuT0j3ShWjCEQPIADgiVz70qtJNi9NdAoqYRh80is2jEAmQr6I6CCJANzFAlU29xQnmkM2cU/StU2oQ3vQQjg6uhAMAYdjZw8DVhRJWC2CSACdgG+QYABY1FGq4gguIYYSY4VzohGwIpXoRSdlRJR2mxx3uVDYy39P8Yf8p7dLMgAAizgY4HduKO9JUS5A2ZMEw0YUDYETPAQAYxmKCWOBc6B5nFNalJF89xL/1fdUKjlD+81INBoAb+dBYULE0/VsLHCpQEQQhWQKIMAqIuoLLAWSDKANx6Z4nhs8bdtWG3KxbKVg0ltCVKNU13qNJPgY4TqGtWjFkAICQYQLP6EvAEwhSNgggELnsLORvy0AwftqWFOFE1uE65QYRWOPhdYAL4NFKXp2njR0suALmBRciOObPcIAMKuaCWIQYiEDPicKjFOGx7d3yjVV7FNgMtmbdS1AwTl7EAL3v06AqWAR0XggCaMKxyyYUWsp+3ijyteALHlObc4BKkFL/5cnmHrVknEnTHIzYgS4qzWFCQ0lFSYysEBbbzQpYVZ3neo5JQuhlApjol64E9uDRCtjnHVZh7OlolA2OhxJpSdS/EG7o+k1kekRk9N0F35lomb7UC3CASNjmlLYVSPVlndakCyADLXHCEkXK3wRc6SjfV+bhh+aGzFDqSmBqB+icOG7oEHavJahqTaqmB0iA70lFUjMM/5pjGYXaHB7QIuWGUpXofSoAbHZDOK5bh6SGOShVuNYgUdESB1YVSUzLn9KsV3blW0HjhyYEhTVrwm5DERAAWJYhFRM3pGvs7EE3yHY1SbSIoKkGVNUsXHRos61TQkiGmJbpAmCP3RPt/8nlP6iKjaFBbcxhYAVwwk+yiLmgun+ht8t2S8So01wkhSnIbZkGMwdo0Wms17/dBb/CbeIWG9xc7b9kt+SgJP5YBuLczIpYW9U5X/TFv+q+7n0CMwLoMvXmUl0IPVPrifAOGdV+kN1MFf+CjPROMpNu7/Rl5AvmqAzI7d22bwWAhAXYBWw1AZqFKljAi2xIgN36bysJ8BbGLzCBOshonhy0w1QN2zmNZbcMpwfX7cHu5AqogIgGgDNEQyMRmkj4YxDvDdVWgJAuyuQQAKCaor5JMvGNZ90lUjbarCuIafl146ZeAjHgkYPp11dzulhQAB//8bQI8GyIEGi8CMh47f9Cs0CnPeLJhRNH5oYrmOTB5u3Cq6BjiITl9pyMiYUK+HIwVwjjvibpOxeLCB8JsjrGUkrQ+1ujTendFc8lcAr57dyZjgQRmA2sWBW8qA0EiAWxkKY/RwsGfovokz7JvoiquAnEIiXE5Ov3ruBHDrNJl9+FcRAuWZKqmKKu+A6xIABHCHW1YOAtib5UOQ5gee0Uk0+llO3LJlsz5qjdoABD7VxJZ0au4ImMa6T96HQA0AFgD/MsGXa0AWByXxfnuZNpJDtndnRYDtvo2IU+kXZZd4pAiYQt2QqI43WveBwD0N9vTwjVNmitBp2ERPW8uGv/LdqMnVyUjlH7U1Oi2YDzC5j4GKD33FSACkhQqYAEnvmOsICEgvH3f1fELMnOUgdM/kJ1v/JfVk9xewVrnIWTiN0AY6F4ev9QMZABSHgSKEEA1tgbRTmGsxh5hFDtABhzO0vFaLSIjbkIl59j2Fl0JM7s2W5pc+6MRaB2aW+LONAUKIES1oAEGgB7MTiGKyZ6Rdyct7AxaMTA/rK6hFfdKhRdRp6hPUSGq18Eva/4iW+LH/l6sAf8TZEBMfDzkX9sDyIUZamLNruIuriLFdkF3BVMUdICyycEy898bdCCzbf8URIBwRkEIEgCdY4Bef9VpYASTXmSJ6EBSPgRAzD8ogoIACH5BAkIAE8ALBAACgCAALgAAAj/AJ8IHEiwoMGDCBMqPAjuSZMmgTDJedik4cKLGDNq3MhR48RAgUQZQRIqFBIkn0SJogjOYseXMGPKNCgnpBEjn5Dk2JkjVMpPRlTeNBLolI2ZSJMqLVhTJNBPoXLsqLFjB88cY3TuNOniSwQ5S8OKzSgHk0pROT/l3BGEC5e2QWrInVuVZwoLmMbq3TuwqdqoPXfWaOuhsAe3XAq/rdGjKg8GEVzynZzU7KedJHdODeLBmOHPhSdMYMyhMQcVRymrlglRlNaSOtkm7uzZcAfFojmUlssh8urfHZuIBNxzDFvbtQ8nnu1htNy4NWCABU79osqcUeXKLmysdnfDoid8/1ceJK6tJtXTHxSulmRswtzjJ1fM/fvb8hqmq98PUqVWzZwZ5pl9iHVn4Hj31TCCfvulFwhOUVU11WACegeaMRhg0J2GnjkXwgwN7icHDJrV8FZ4F1rIxW0dfIfgBBycgAiDIQL3BQ9TJWbMbTom56MHHQQZJGgexMXBgjWqZ8tmnXEY32GK3VbYkEN+xkUNupWQZHpfhFBeYi0aaBgXE7glZAfhpZkmYyFo8MWW1Y3wXI9PkhmEc6N5otsJJ6zgpwYrnBCjBiRAAQKc1Klg4mxhfhckmbpxsIIKI4wABSIWfOFVBBF8UUIJnHKKKHBQ5AhkmEKGBmMIKkBxKSKIbP8Kwqxy2DDrrV+NulqphLm4o5CrpmALFCV4akGmEWACAiY2NGvrrBEcqitlFqQAn4FnrqpBF8PCiqlXyz57K66pTctXBEq09SuLwHIQAgPcXmpBCchGO+690Zo72SlKmNjZme2mAK8L3dK76SnK3juuvuce4e+B7brLALy2DHusppvaq7C0DI91Y4A7dnZYbhJzyy0MF2N8ysa3dqyXBT3UIOBnaOr5bhc424IyshlrfK/LY1nAQYAzG0Mmlu8ecUTOKGvaaca4hmoF0EvZYEsPZUIMHpYp4HyEC12QcKwFsLoKRb2cfoFICyBSnRQIGtQwgXz2wagBvDjnTcIIGqj/ACifhGaq9gh+ujK12zPBzcHcp4o5gScn3N3F0kekIDADlbo6wsQkNO3qpzMcjnhMEYQgGpjrNueu5F1MLHChsUYbASIjdK4psiDQOHpHX5yAIpC2Pd5m2HoP+2oJdnyKiC2CQ1GpHbvPVLonMHIgt5qD4k2CCztDoYIKrbSSPCKuCm4BFDNIFj1HcjAQAgyTLx3C4rkNjzP3TatNrFclkM882rpbn0Zi9YUuwEAJSmhdpNrEABLcDwb5C1UEZjADTMEKgAKEiRxA8IWhcM8FKQjBuxroQFsQjHkYk+AXjkU+wXGqXBlk31CMkMC8hc0WOHNgFwh2qU9JMALn61a9/2AYQ42AIwIigV/OSKBDG+bQYsVyGhBtQYL/bYqIRcwIB40AwRsy0Yk4o5i8MvYFKDARgsd6YRY7IocIQBAGYKMiGPF2P1t863YTa53AUBjANS4EBBZ4IxObmLc83g9/TrMADl1nQAtEwI9sBOQbzUhHMLqAYE1L29gEpyksQvIikoQgDjdhSOLljWApw1jP1PhJjkDBFkpYmusqmTclVOxs5ktZqL7AsVZqEQp0nNjElnbKS1psbLhMoad82ZHl2ZCWTjwmMClWMQu+iZkb+ULtwNa6+MWPmDu81BdgYIuJcW9sX2gbNjNSxh2GsXVKOwItUbhCdGZsndmkIjeHyf8AYpYShZvUpSfxiZAImLGG8ROYQsFZTU7ezisDJWhBrBABHNownoyU5+S4RU8pRkt0EkWIFdroQG56LYzD7ObE7LhCToHApSFVSFmaUEAwopQBlrMcA+7mgjFKMKIhtQEmvnAKJdq0dTgNocA0cDcGCBFZMT2IFOzwhUBAAY5HFeZONcCDEOTUqylQQQMREQGQRvUJNrDDCqAgBzs08J1O1KrlNJACd7VJfFA960CiEYEWrGACK4iAHVpBSGgWEqciZAAiSmCDeuiVIFaQQguKMIEO4GAIM3DFCObYzXdq9WyfAoENzBrSaNhgBq3wQQdMgAEH6IAKrmgF3kp52Jz/na1TMyjBDGzwgtFS4QV6sIJwrfCDH+jhk8Kd6gpwwFoAOHceLxhCK5qqVbhSLGWL1a0NykAPIeiACUx4gXipAIbyRmONNpDCDOygAk90AAMAOMABnEsB8U6XupIjJOyORS/k2YG3DmjDBgaxgQJTgAKDcAQRzltEG0jXd6uNrwQmLAEAQOAFVBACU0k5MUshYpB7g90Fv2CH3UqhAG2gQIHnYeB5DOIFpEVcZEvQ3tXCV74UHoAEDuAAJkhhFK4Q68TEakdb1G6QHsZUCVoQARvoYRExKIKKNzAPFruYCgwenWkFW2PWHkDHYB6AmHdMgDJIwRs3iK0wu3ApM1aM/4reohcU/msFbwDhAgeeMpUHYeYYM8wKNhiFWt1rgviK+dCHFoGid4wG4HpjCC1oQaVG4C2zuSrOJRjBf73BiSosYgMqnrKLy+ANHejgBS6rhzdOKwR6qLa5X0a0jiesaBFMuACKkMIdvgHpSb+qbK+MMxRaUQIp/IATinBxgUGNhiqX4QVtsGwRXGGuekR2CK5YgWrhG99meLsZFG7GEpYggitcgQVpkAABdHADb3jjBbHNHLBfaUdvgW8Gxv7BDZIwjwugYcVV1sEQHEAA5xIAAhtAVDS8MdVWrKARNo6vfJvBC28v4dvgvoIIWKALWwMAunq4gx5e0Ap5V5p8Fv8cwQlaMIpjc+IGQAACGv7NYio7YuDOzTkB2gCBGi2c19mOdqG77e0KULzizTC6tzWuC11cQRdpAAAFmPCNY4Mhtq3oYdlQboERiNAOxuYEJ77hCCDkWdRlUAQZch5f55qgDUVQTzTuIAV4FyHaN774txVw9DjwghcVMHoFkhEFJ7wD6gM4wAWYAIZj/+DqlbKgt8gGBQ1woBWj0IPYOfEDTy/i7FQWOMGdGwcDxCHnGMABPajD8Bn4tRE44PYBLr4EXijg77yIw+1tnwAFKCABa9j4O97hhCgAYANMuME3xP4DKpQcU2TzFiIsfwI7VH3znCDCIoog5Ty7WBEOyHn/6UtvAAO4nQLzUM21HQ7x5uo98BXA/d91b3sFBOD2gxeBE5yQgXMDYBDJ13jM9wItcDae0j+0EwIn0AozoHnYRwTzcHYHVmVMMHrl9wDkV37mBwAmQAGUUQX0cHcRJmFLUAG9pwAVsHsKAApx4Hco2Hu2N3j7x3/GNwiKQAQCOIBUxSnIQwIa0CZg53LMpwiLgAYS6GwFp4EG8ABK+ABMCAAEUAB8oQgX4ACwJgHjFni+BwpcuIK5d3uggIKDV3G8UG5QV3w1eINgcH3MBwYzkDaVx1R2kHnYN3aOUIR4hmfNNg86kIQayIROGAdOWH4A4AB8AQRrJ2ESAH+Dp4Vc/9iFj2h/CZAMWmiChFd4xScCG/ACN7CGdfh4FDRY3wN2eiCEnOdpMYBnBQABq9hsjlBwAHCBTjiLtPgABOCBY+EIF5ALAOB3KYiCKKho8beCjxgHXZgACaCFvhgFV5AMGeAEusACuLaGpsh830By4TOHDoh9N3ABFxADMwcBe6gDZbAIvNiEtTiL5tdzYzEIMUB6gVd/jPiLW9iFAaB7W8gLYRgAhZABa7AGycACTgAAZUCNdch8QFZiUlCKn4iIi3ABVTZqTEAFN4AGBMCEf5iOTuhcUjgWi7B2B/B3vveCySACJRl4vfeIoHB/ymgAprCShQCQ/xgFLNAMaAAG2//Iecb1DeV1A6OQbwdJBDGQC2RAAJVQCQWwihBAARDgh00oiLVofgSQfmLxjgDwbZWYjCbYiCa4gp0QAGBZCMgICgbAhQEAfP+YAVEQBbrgAC+whmBwA4rgCGVQBuClCC+gCIqgfKb4A45ABrmAkYW4igXglBm4hKagjup4fGIxDyCZdF0phoOXDACZjCkJCp2AmWAZAKDwknHAj/34j/unCwPgAAVwYGhQmByIcHwGXnWpCDh5bN9gjoMIAJUwD3ZZBhTgXE74klxYli0oi6awhAbAjksRA2sHbsLYlfc3ic+YASYIlpn5iAEwnWaZADG5BsVneNEoAlKXfEwwCBT/QHAOAAFVRgFt4AA4gHwwt3bqiAbhBV7z4IemkJmlx4SCSJxK2JFK8QLvaAAXJwJRIAImaJnO+IzvkAHJsKAp2Amm8JLWqZmFUAiUqZaZyAsGcJsvIAUc+gLhOQ+fVwDkaZrhd5+zGAN1WQZ3eI7GyIKz+KAYiJ8saAAOkHBK4ZjdxgI6SqALmpZTgAzCMHxOMAX+WAgB8KBIyoJx8JUsCXxRoJaUGADlF4W4GV5gwKFSUF49mWzht4Qn6ghVUAVlgAakV5bEOYvG2IIrGJwHtxSLUHAH0AwbR5MCmgFzkAEZIAxTIAB6OgVTQA2P8AgZ4KBJapaRiIzZmQy+ZwAE/1CeEOAAkBoD4DgPdBlenfgC8wkAs0gASYCDnTgP52h6iRmIpjd+xhh/vPBxS3EBziWnLECT77CWwiAMQFqrwiAAfjoFWACoCdCZD5qZX5kADrqSYfAB/7igCmAABZB2cTmXD1mYSQiFlUBwsmiLCkYERHADtKmBSPoASlqqYeh384WLSVEA8UVuA1p4xOcEtIoM74AMQNqn1DCv1BAFCpCYv/p7vXqdhWCsAJmsB4cGz7aQepCl4lUGg5CaBBAHgSeL67aX2cqqGFmWntmCvlqfXMgL83UBSlEGBScBA/Cq0Gh479Cu8Bqvfbqr84oFvYqkMnCWwuqgwXqsa9CrGv8Iheb5XRuKpR06CAUAiE5YZi+ArUSwixhIjL/pmw9ajLkndUpBpgCgYzP4DizwriXrrsKABbuKBboqANQgALuaASu4tJCQAJv5lRM6oWEglqDwAAUwD6wIqQQwt6YJkTqgCEygm5r6AIkptG+pCP9peirZokuLmY9ofvw5E7sZtWkQpO5aslebtViAq1w7BY/gp1q7CwKQDITaCSgAlgiAAGabtv8YBmHQtheQl+DloXcYAxdJiDnHC3z7oAQwkRvqn7EIiSrpq7s7o2igFItwlRKgC+8Kr0EKuZK7tVpruY8wr7uABZwLoV9pusiIqB9QDWvwAUbaCRZmhPOQa6X/+A03QARVkASuCwAp6JK0OwRU0KHmWpZh2Lsq2QnTWXrkKhNS8I7NkAZVO3zIoLVYILnNu6tBuqcqSw27QA1rcKT0G5aFYLoBgAD8CJDJ8AFhkJkbCIVvm3ad+A16AAZV4LOzS7sT6b69GIYVwJnW+ZIvCQkBAAlkaQAcixRgEH5L4IzsmgFgC8AATK88vLLOKwAx2wnIGAYLUA0LEAZgubbGmgyF0Alu6wiOgAaVAItzWwAQKcU6UACI2bc+1qH/6XvI+JURyoWQsIIKcHozPBNVQAYAWrV4qsOSC8S7kMDUoLU7TK/csAsZUJ2dIMEBEAbVUA0QHMgPjIwB8ACV/5BrVJC3ZTAPaOC6BKCfFdCZncmoZfBbVKAIFHC0k4jIwMqFS7qZMbzGMtHGBqAAebp/wqDDWovA9KoMPvzD1MAN3CAA1YmZDXzICWC6YYCdvdx7yop+g3Bq7RuXTHBnBVfJ3WoA6PddW4yBulcBC2C29Eu/LQqWvynDSfGRupcMfDqrQbrDB1zLdjzA86oMtqzA1fmrESzIFtzLoYsAC2CkUhqL81UAAvuWC7nJW6y+D6qs5skE82l6vwezEry7YHnGv2mcMcEErhsHwMen/uuuPZzOtszDzYvR3DAH7QyhCFCshXDEa3DEhKzEoEAAdEnFOlcJ5hmRk4ykpqAAtv+5igtre5sZyErMmY8ICZBQCPZHlg4NE/MwlHGgf5JLq0E6x/PKDcqgDFjwCOVcy+qMy4RanxEc0oVQDQnwAUf8AWab0j4GBkOgA6AGrQbAC+R2BSl81QLNxcbYCfYHlojsx5jp09os1EgBZb1YAewawCf7vwf81LJMr4ZN2LZcDShwzdMbwcB3vSZNvRmKYKYWXhSpCIMAAZVwlW39kgpwAFjMxWXZwA5stl75x9WQgg3Nxkf5AAqwBrOKBSf7yoDqtbsgy0/tvOmM2B3tx/UpuiFdrNUA2cVqunLNdvpcwnUXngQQkpFYnBTws3GtAAgACcEKlr7XCZAwyGZ7j8X/ORNAQJQGcAXsKtg8rLK7itiFfdjqvQD0+5IoELprO9wJkMQLYMFA/XEJ29zNUIgI928U0Nz6iLHKegEQ4K2audNi2d30W9+F4MIryM0ywarNXQFPeqvKa9iD7dSxvNtP7dTV8N6dIAPyfb0fYMFITL2g8H/t+wKDUIVwKqfkTXEXW+AHvqQv291G+svV+dOHDJZxcABDzRGA61wHIAJpOcdTTQ2ETdi7zeS8PQULgKQjHrofMAcAOdwLkMQI4KAEsAF2CV6u2W/hJwLNsIVgaQAxAGVOqJlFHAahq8KdMKHAzJnKimow8ZfOJQEmuQaurLJ2HMtNfti33eSkoAbV/+DHnhvf8DzI10vIgFwBBkelmdzIzC24XNgJBR4DfNvAiJrE1RkAL7u2NavNGcoEMWGORh4FFRrbhg3lTZ7bTw7rykAK3PAICVCfDRzSgzwF1TAHc5DiwowGL97cGoxnoHbCupysWAwBgsukCUDI3b3Qa1vnAFsGqZ5zR57kXhuo7B3rylDoHo7YuO7HKMDo2Avsgzzcw10BBzAPlzoPqrm/TXcFuUy/ZBnaCK7d9e3o3S3f923PnRAHZQYTVWCuwst/fi4AXkuvzQvuthzrtK7Otj4FT6zrvP7rwb7uwL4GFUAAAou3ZaADEViYB7C9wDqcoT3a02vS1SCWLwwJRv/M3fd3eoNA1Lz4ZbrArvyXAbvq7d+uzoQA7rHODYRACI/wAUd67iG9AHPQAA3wCBzfAFydAIzaqAWwAeSYt/P5iITqthcg2m6+BuqOxFu+5Sn+xCzImC8RvDq/88M3qwIA9OutDGogy0ZP1UQv9NygBkpPv/Ft0lS/7uuexApQAD5rABPm3wcGAPqoy1JaCWE/2mFZDQ0gAFS/1XC+5b6cy9/9EuYqAWkgpHEvAE+/0ROP91vg1ODO5LZs9L0N+AAf2YTP1aBwAXqpA00p+mmQBuR9BfZ3zWDPxZoZANXA8ALw8ltOz5wPwRhsiB2h56Lfyk6AtVhwpxmA+rid21v/sPqFTvS23P278PfnTgMLELpoT/jnT9PmWczi+ajo6wQEWp0okJiST/wy8LLHb/qDDBBhCi0oVChMggAJO4GKQ2DeE4gRJU6MuCgXgCVp3gl79w7LR2pzhAkQQM0kNWXKuHHbsmVlSpgxuREi5HJKgE4oUCDgiWDBgmoNBFT7GQZBGAUGABCoRGHeoEEXAFSowLOTqQcFLhR4AKpTJwTVxFYrCLTanDlkA8iA9LVhGYpxJy4CYKBCBmFOnHj8iOURFpKPHqFcOXMLO0IvY8pkueXRAgQ6eUI2O5bowU4E0MQ4IEIEAAcQCkxVgGBtJwOVtj7oJENG2LPVwhQVu6Zg/wBIMlrzArBB7u8ndOMESKa3ozDkAh4pF/xo18qaNbck5qYyphqUKllym4Mg506flcUuMBrGVAwmLwZBINDMSV5hyRJaTX2hEmtIR8cW/UmUIKRCTpOBNwiAkysGAB5QQIQonEBmI+T6oqa556Rr6cLqqkspu5RWaumRML6brD//iOrpgRjmeWoeCioxQAQs1kDoK9S0KsAAUALwabyfCkkgPIESSogtBQCgwMC4YnggjgSK20sYLCI8iZopSoKOEHaybKmwxawzzKUGIpMsPMt+Ik+/Cg4ADQIKWjwgAYQi6ySrrXAMIAyxGghqtjstC9BH3JIqAEmKlASluHf2ev8HGeSmQAk7akrSDkt2MFRsscIOc6kaMVGYjSgeizIKgAIIAMCzAwgg4IAK5uPJgAIouBGUHRvQ08wd0+oRIYQUiKOAFwiNyJH7Fnwvr2MD88skRz08rNKWqCtsWlJoms6lOQLQCbyxbj3TNAKg2qDUZqCkJoNCeMKJ1DrBIpEso8LKgKQ51kAXoQAYcmAIYSFahAwFC5lXgAzwUk4ALCIVzCSVatIy2ui4hMmlxgh5JN0x+QOqAcheJSBWFSloL69k8A2AVFkN6ETHBWwlb7afbCWJINt8jMMAAvjtFwiAebkigznorVI5KhlmeCYsNbWWJi6n/ZKQXdYwaiej3uX/eDI816hgza0AKDkBowKoz0V395OtP5ktsy1fnJnoN7hcFFwDuZGgHMlRkwZDiRRSrs2y0kpneinDwqyd7pEEdALrKKBIGurlMAx4AAAAWLiiGQCaKVmnhFKDwIE4QMkvqPHCa1mo8apZwzZfAdDBin7nySWOu+ium6STVNrFS5b+hpZi6qS9siV2uPsgDPDI29jbowi4YIMWAciAGiyqye+oBFAmQPQRedTT1gbQSousghLgjQIp+r0gl0PnXa5KwBjWrnDDfIfWWug8TMzhSi3+ILLw9KREskEKaGJFAQcAYHU9MQ2p0FCJHA3ETMqDjczm8L3ayGgJDggWocqA/yAF2AswJckdS6STGL/Z70KImQ5NThidv4EJMttK3oj6s5wopMoBq5IR2FCQGdWArhP5AYqZ8BS+5hxMOQ2gngCuAABXCEsRCMqIE0hYoWqRojGaIh7xfMfF/rkEeBd61kquFhkaJM+IYYgc5U4VISxEIV08eYBqCBAHd5mFRLZSQwN2oTduyMw2V5AAPYRVBRddAUqCW8nuOsQNajTGQw+D1sOiBR0xkvFvkOwYAmjgnZ7MJl4om8doRIAcGfEEBUy5gANEN8EitqwaWuCGGlRikl3s4lYJiIPrhOUIMsRBGLjkxi5KyLQrFaZvXvTi7wx3wmdpqY8LoMEnJyNBoP8URAEfE80OvRagnqAMgpCApVlsRUstQG0wy0FLIXppAh0IaxF2EUAujdmchhUzUiZxmnZIYT/f9e5aKwzoFOLFQNwwxABKAYAJTCABCXjGCXH8UQO1sj2W7Shm4ONoR6uxtQ7gQAiE4hkvdIGFXURpJINRBkry1gCWKkOLpEiJFqMZw+Ip7UJLk+ZlEIAQhS6FAA7tgA98YAIASKCeu8jAGmSTDKawJ0dshIxlzslRQthKLBUwAAY6wIESyAFJdFmCuQQwhwzobUPUE4wtbckNLWpIpgDlIhkFR9AtkOIxV3mAqgjggJDiAAeN8MEK2tAIWQHgABmIwgd+kr1KSNX/IBPUasv0uQstgO8RDXiiVyfQAhAgCUESQAYWNlKwwKwzYbtTA0uVSbhqAQ5wFKPYTA13GEIIAHMfa8NhJ+AJ4AKXAxPAAAZMsKpyoStsUcUoUD5FIloWhigwNYkwJOBVT5CgBEgigwFIexw4QumKK1mOGvj2EjW0lqUDpdi0aHJeMhICGRIgwGCLsIITnIAD+vXEfjWwAh/gAKlLqO4HEhAgbgIgR7FEWwPUMJNdnDW9tNwFMgbgWQ5oYAR2mMEMqDCDIQiBChHprgQ6ggxGIQwwCdPO7vjIJTV0qwGCq1ZeY7LM4E0HCxJoKA4KuwIgAzm/IQiBBv5LDyQ3wgGL/50DZA7ysQt05U57BF86CTEl/SHjAJ6tAQf824IWtELMdrABRKRi0kVxBDmL4udaL2hLZWyWUy1Lr4ZWQooJndOFjITkdTswAf9qQAVG1gCRCa0CFYg5yQRYAroMXIEEK6AQY9FVNQRgK5egpELRSsOWPTCBLnOgyCNoRZhbwOEy/8sAV2AUozYCklym5J7NkfPGurSSSDW5AVqI67SUEQUChJQDQBY0oY1c5ESLWcwAxoAEkDOHA2+zEjdKwOrOekGxvFlaLkQMIXRR3E/XoAY9CEEKGDACdI+gBUKYgZkf0Iw0tLq01HhOMfWZHfXqKSjm1SJMqmMSPk7nUsqYAv8ABOvlEwga0cYWtLId3gEADABKtnnytA2QjIEh8c3UcGEXtbSLNGDAGBP4bQ+8POpSC0EIdhhFmR0xuwo4iFEobaQjYZKdR0x31xKTKSQvPWNC0NTXUXAADhCecIUP+tBiBjOYVdABhx5AGHM4iLQhYIA1oFRv6zRJxwHKjZBjgORePrmg1W2HEnS4zE+Iwewy0BGE7SIxudznWlGS81lG98Y0NUm1aFLvlEzhADjo736LrAEGLNzY6h4BFKDQghNgQE3OpngCogqAK6yhOZBSjtzJGM2WfNsYXAC0oRF/biigfQYRgF1wAKaAK0y0Q89ha+5OstlH8DoxjNmQMpD/qRgniB3hhka04o2sAnSXGgqtWAHEB/AO6kXBKJevQCHQihZbOUeglPIdIbDgaVCLehPnRve6OTyDtbN9SYUwF92nZDRHhkQA2vE3XOWavztXRwQm8AHZ82v2VlC6hmsFxmsBFSAuCUgDXSitDCALbsK6oLkgvXmOnVIhxMCCCxs5QBM1I2s8leOwUdCDYQEYUMi6hDkJkKAeFWypCaG3+yMcFqw3npOAPyM7DkQ+AWy4RGu8pzuA59MFXaCeqauGqDKAQiAa7OgQ6QCo2dqFCws3hDMyBkg9Ozi/9KmIuFkA6vkIRrGbE4yJk5Arf6MpFsyQ36MGGjQ6siu3xCs+/0QLQAJsvBMwBsmjHBPDAmQYCgCILCOsJyV0Fgv0HWrIwPBjwylEhCo8v/R7AiBQEhmYAzyEOwl5v6OpN0eCq0wrQ6TxECeswTVMulZQODhsBVtggA4wBqhTLOgDiTkglasrhFzCpJnQEib8m114hy0jvS4LAQY4t0RMu1G4wohIAjLohAQQAORAsUk0iRPkEIkxIcKRwTtziQH4s3E7uRQ4tOPTQRKIPMk7KXsyJsAglQKIgzmgN2uppFrsPgzEAA8IApLbRQ2rwtWTgkV8gilakpjDw75ImBP0Rxecn0whBXsanj1zQhPogGssOyNLAYd0SERLvAkYgHiTuythFv9y5AVh2LSUkjtaXEeoCbnRA7VQS7hWEIK0swFvmIgbsAhTqABWU8aTMCZKlAnqyDRptK1GurA/6wGfFLVs1IAUILJs3EEVwIE0wMNd+KKWasVpOwCUspYK84gtYkLika8nDL8TKMoxm4FRWMmJqIK2AwWBSUFcokQO4Z3LmkbqqBZjujBdHDdyc0ihfMgBXAET0AWPZEoQYYoCOIBI2jNu0AUowQKaWEfE4IZ3yEpAQ7yz6zB7jIsqSIJiwYtmZMbLPMsWkx9M2ra3dMd4NLlyC0qH7EUNGwFPOABk2MurnJBC4KYDkLv9oQnqaQYCqKd0pKstSKkn1MWEGwFglIL/1pOLRbiPCihMFevHy/S33JHBLRDIXRCGDNRFkwPKQmM4RDOBATDMZ4Ea2muA14wswCxIwaGGA7gAAljNdFSa6NCxdxA5D/g0QBuBGRBOQrmAf3mAuUGY0lIps2TBE3yOeuu3wqiwCxM50gM00RwyY1MBDgCANNgFL0opl3qENfiYAuAFemuvxKCGK2ARE0gDepNNF4ImqGnH4vIqHxgCYRSWJIiBGOiuEDIYOGKxKbEnMqQ/XEOGb0NQkttA/+NADugA1WyMLIGk7DgX2IzKEk2Md8ABiEigibLITNGxEaUeZFDAanwbigCCF1WVu7DMZWHGEX0OL+mQ+cGCsDMG//kEtd8KLpIzhgNISm6IoepIqZYSAFeEynqzK2FwgIiggDYgAIkbUcO4MhQ7lijRsiLg0t+4kWZotBp9PzO1jpaan5a4xQNl0yDgAk/lgvj0AAx4voTpzgmZgigQgcHIAAxVzcA8yO8zpIgYBHpYsneIxbnDgsupgCVIQF3oDUeViw0wFSMciX48S2OKggxAVaCJpFmslJRKgwNN0RT1wXjDpWd5hGZYKMo5RwHwS9WUzRaaCWpIgwmgiBlwBQoAAHCUu13QBV64mWaQgAFwgIcIVoooBjLIBQJQgAzoR7oTR/pqj6UAgIR5VsTIJS5Uxv6skJrAxEpZA6EyFRj5Vv8H+MuNfKaaSKkOkIsXGIIieCiPqDAJ4IUDmFcAuAB8jQt9JQMyUADcnBaafIe/MpW/crZ6a0+d+khNoStC+ICJbQ9qEAYDAsxDNZyUAgADGYJiGNQDgKjL4QVYWdm44JkYBQUBiA6thaQBSEgAwAAc6ICk5CcI4z5abCa6qhQ99atV4Qhy5FOdFTgM9AFhGYQY2CFTGRSq7VIYhSAB+JK/uTIJMAHJ8yoMKC1p9DzEREzz9CvKSRRu4gUm7Z/9ucUOWIG9zVyIKIYYsI9OyFr+0RJukM7nuzARzdnc7NnF/aJdSBXH3YtWRSkSDR5uwEBA1dy9/SA0KABQyADZVEf/yq1dwyzRvQTe1e0+23RcEXCCt2XSEhW4oTUS3KXaRvyXOKgGXH2WmwrE7d3e460UEWDb9mABvzQA53hepsklYWgGvZ3eYL2AGLDerMPV9fxe+7XKNBDfAwA2i8tYpOk2ussASHNffJ0HGO1XzcMlcU2h1VVdBkZMQiBatj2VBFsDF3QYgYswAVZaAnbUf7kRRTJL2UQas5WtWtRetK3F3ArazMFQAMDNpdnNlMICdDGAe+3gnamE7krKjwjH2eQfMLLKbkuh7u2+XQhamy0ArjhfxMgSqIkUYcgA87ldHBYWngEAXpioACVPCT2hMLJATUrhwAW91vUrb3pA3Byo/1wiidVJgG2q4n4hRgNYAi2WXVy9EgvZqTz+vBVqJtD7ONt0AAeoBFW52Bvx3Yd9Yo7ZlQAgADi24lx4kUXpYfIk4aeJlvjSpPtFjPD9q0og5Gm7kfmNlkjxD58wDQN45PsMJvYThv50QYeFGqThY7T1OPslBOb9q0H+ZAi4ugrATXsSgJ/wiYIoBA5WZeC4gGCKOWWEtZlkpI5TXRXy3rT1HQlmik+OLAgYjkKgsOXopPAohFRGZuBQtbtg2CslpkYqJq874UqiZhVa213m5Rthi6AoBELGDU/qiUJQAHIu5xgwAAVwEHNRwRsNx1nuWe+F5xPGgqWYZ23GEUggp/9woQAceY2eSIAB/me5KJaYfOVmdL9YnOW/wwKCquZ13AJqAI1snrYLgICuYIsAKIAyuICLZguegIRG5mi5iGTYO7F528LVCkcSFZyPWMIvwqmUduiWLoDI4gpQIJICGIRyVADXuKaT4em46K4KWIO9QDGQ/sdIikXU9bwW+jxKskqX0NNsVuJQjmlI2KZh5YUEmOhPeiwDUFmtlog7qoBkWJTSKsxlLNORpl+Sjq8SVqEII0clVmLReADcGIheomvcuJ78cOP23esn6C6fAeyZO9aDJupc+rst2qmT/iKmwQITaGzWvhEFSIiDeA277onrUYDM3usbWYIr8OxmBgn/gCxTwrbI1EVsP46WCjPkAogBp3ZqHIGTtQAPu6YBttBpBaBizQ5omDyxZPTHfxxqAS0msmaaPI5mTd4pJwgN0VDuAhANHAkQ3GALGoCEavKk3AiAIrltng5o2HOQNJs37pYQhLanudu0Pf7js92FK1jv5FZvCHCRqJ5oBJjo18Boa0oI6dXszVYQjXgQuuHuLWxBLh5p8E5oWkZhaJWAXm5t9o7q6W4L12gN+JZpXtDr61aQ3QZrV0YGoV5G0aZfEm2h+n0Y6dgFFKcA+H1prYAAAAgdGXjvtcCNIfoktpABBTgSDO+Z2MNxwfZtAC9IHyZhiDFtjXUhIzHyC0DyV5feniGCBBSggcp2Del2DdeIg0rA8AznheVFlpFwHD7nc72ZEKJ2DurRAkIndMwidG5A9HCkBs3YADR49DNHg0W4EVPwCt3oBAVYma/QDVAABaywbkcNCAAh+QQJCABOACwTAAsAcgC3AAAI/wCdCBxIsKDBgwgTKjRYa6HDhxAjSpzosEkgOoFOBWrCkaLHjyBDDuRIZ5ask7LoqAy0sYnIlzBjNlEpK1SOULJmlcypko6RWUaMxBxKtKLKWUhy8OFzM4fTUEmVOnWqJIWFoliLNvk5a5bNHUz57KhBtmyNHWh5pLUQKKvbkCW7Rl2qtEaQu0EmeOBy9ywHDjx4HIHB6q1hiXFlzbUbhItjLhMmQJ6Qt0aPv2j5HGl7uLNCcBe7yqrb2IPpvZMd373co0fZHRYKe55NcKbJUDb5lD59GjJvyHb5BjlrizPt2eBUzh3LxbSx0x08dOggmbdpvnx7MDB+/HBy5bmD8/+Obr086uzFu3dmFchkTdw50O7eK9387749LLhU//aUkZpT1cWYfR4YY2B5wPXAQwT8GabEV2iNdVdzv0FGnn2QtcaBBng06BYUPPBhl2WSOdbbXtFRiGFkPXjCAQMdeohVCBIGMZ19kkV3I3k37jXBZSecwEEIM8iIFQeMqehjB45F5uQEnkTpYpB/DakBFIhYMMITzxhJlCRI3lUedU5G+dcJIWjAQAuoIAKFJFtK8sUpp0RwzQiSeElUCOJZR51lHKCpwQi2YPlFBBGcMgkejILgKAiTRCBJnnrGZEsP80E3AWAhMFAoKm1eg+gkjzpqQ6kgfGFHpTFds8Nu08X/umkIXbhgC6ih1qkoqqXiEUGXrL50CnPSdfCcdD106sKyuCIiagR48IoqHsAGG5KrNTTXgQmybljrsjCAasGhiEYrraPUWivSNTz0QOGxHmyaAgNKLGtLuKiMSy605/5arboUWZACptZBycG89TKLCgwWXEOuubz6iocNAH/0hQaYctHjpmgy4EIXXdhyL8MWjNvoudRSXDFFX4TQg16ayssAyCHfW7LD+05CKggnRyvbyhLBwAHBp03QgYvzdqFEzSQ33DC5p0SLx6FfPPPMz0BDhMjQesUKmScnaKA0yCSUXTYUTzzBAKHjImoBFCqokLbKWUNkwQmeRKYxmUPO/0wzAxpoEEKagwtKAiJfXIPKCHK3IATddTuERwgc6M3kj97SnELgM0NRcslQzAzDF1/cTO0zkEeu0DOU561xZH+JXTYDSd9qAbTUIjICCagc+jYiiJQwQ+qqI2RB609CGTYDJHTRvNkjjAAFFC1MKgnvt39RAtotlEB88QaBcAoMKXAQZWRgy172rYsLrsIIJZQA/O6jM+qr1ViDf9CpMMgyxhHtilKnQPYx2wGvZL+6BiJg0DxbmKxU39PfQFgRAa7AAICxq5XImNY2RFnNAqgwW9vMhYf8SZAgrDiFT4KihCOkIAUhsxcHcUa6CICweS5g2KHQFcETpvALLKwX2f+aR8BawYBhNPwCAxlwhC7o8AtSM+EJB2KDL/hEFkpgYNloxkWRQeEa47rGNWDAAL/l62HPAMEUEQKOqY0xh1vkIhdtBQOcWcAWXfBbF86IKBD0cIoUFOOynEdEOSqhXkdsGBlpx4MhheyBUlyjE1iRKiPA4GNy5OIhRfa0G5aReXUk1x/XGEgY4DGTmrRVw8T4OTHui1GjnGItbDBGW7iAiZo8wiHrdS8xgrFkpPMVon4VS0Di4Y4gS0ETUWmrhZEsSyNEFBQjKUkq4oGBINPjHOloAVOKLF8Oi0DpSqDGai4EDxvMozpBtjQN3osEL0wa70hGTnM6BBGnPIIed5n/sCOi4pQ2Q6M9HYLMPH5ymTTLIRiPiMSHRWugCynBKbugzCNYVI7sYxgSwwmtYlbTBogopAZeeNF1hmxhn9tXBMoJ0YNQMoTL+mQ8P+k3FzhTjLiDZUv3xzNU1CqbBn3hJ9V5Kx2Wi1Hg2GlBDmEDlky0jNmkXTyT1kxwku4LHp2iFJqqERhwkaZdGGk81TTUolrgX0p1gh1m0ASHeRWofpNpCkIw1c1p4HBpReEoniCJQABvogYdKuBe2Mi+2aJ6NkiqQGZABSmw4hBSkMIhDkHKGTzBByvAQwkIJUfBllGs8wLnDGbgR8o6gQkvkKwepAAGMOjBtPpjxQxW4IMO/+BAEiV4gpr+RlaaBu5WvozfDFAnhBmwQghlGMQgBKFcJlQBDBK0gR1WYDQTmEAHllUBWGn6yd2BM37xs4MdbKADH+iAHvQQhCA2QIELqMIRo9DfM4Swgm1hAAAYEAQV6AvVwEL1kyRw4DXAWwJJjPcFDsBBETag3vVSQBWDiG/xZqACo90XABimwAteQA/t7q6Ms6Opdy0AzQJ7Dwx7iMGCGcxg5upACqprAT1qi4H7HkACBwBAAV5ABR2s4AkfZkCbSMC8ta3vgKSTxAwO8QsgLKIIFNiAlNU7CCbII2szaEF9rWuCG0tAAgPAsQOYMIq9qg3EvPMpVM0GA2giov8Fz/jFD9yhClWsmL0QZgJkVzZd+2LgAAcYQJi//GUClIEKh3gBkEfAPN4hgnmELJSb3wQCOSsCCEmA8pSZW4YhQIAeOngCq+zwhC0DQNCCJrSqcSyIF7y2DC2IXvTaZIvo2SLNJQOeCiQhhR9wAgyYZi8FGjwIHTCByzjwAT2MVAL6TsAEAAg0qlNNaFQfoABDkII8pCCERacZFVAwW4DbpDsVlKDXv3ZEpi+waVWUgQkEIAB+MWACBfNnCC2orQlqLG1B60ICS1i1LgRtaMkeAt9AZp+bzHavLKEiBE+YgR58/YsqZJoCGI/yIN4tbwx7vN7L9owNZlBe+5461Uv/CPgVviyCK+jiCjBnwRUOMAhX/0AK+PYu8P5ZNlDp+gQtkMIvOMGJiiehvRkXhLvh7XEDHMMAHsfBBgwjBVLr+8IHCPiXU87yL8P8CpZ4+co1PPEfgEEIs84S8NLMsBGgyQ7oJroiktAIdrd3A8UuQ7ydfoynGwDqAAA5VqTwAh2cwMIYzjqgU74EXvBiCSIQwRJgbokoiP0KS7iAIsBAccsC2c3/vNUIQnCCJ4xCD0Qn+g0ufgGMU7kMTe+702efYxM0QgcxGQUVLouDbQHAAI1nvOQdz4tjPD7lLWeBJZafAREcgAJMuMHQi67oJwDv+jvXwAlWMISJp/4Hcxc2/8bxrgMd5ELeD+B73/3ucQdMPSSy1TKNMZzy4jve+I3nhQJAoQDJt/zrV/AOlnAFACAIQ3ADqEd0v/ACLfAmViM/FsAAg9MC0pd6RFcFi6AKSOd6ypULAPAAIPgA6yd7f/cAAEAA70cRUmBZtGVyW8d49fd4jqcANFgBFSACFZAMlGcJMkcAOjAELwAG08cJP3ADQlAC96M7ghNx3vd9jrAH7VUAEFAA7KYKi4BhBhCCIZiF6QeCUOcAHjEEM6Zv0UZoMLgENjiDx0CDChAAFTCDySACGVB5LMACADAIinADruVrCjgKw2U1cANxcMeHqVdxizAI7LVx0fcCMYCFf/9XgunHhV4YbyEnEargAPsWbVqHfJHHeDOoADNYAQlQfOTQCYVQCGuQilEQBQewAQe4hxbICaMAAs8gCU8gN3A3hEQHfouwCILgeu+lCGVQAL/3iJKohSF4ghcwEYoQAwTwZywnAhJQAWiYANT4hmz4ho8nigrQd6BQCMmQgxmwiiKAbQhIiN9XdS3wBC2Qi7HICTewB+cXb5VQCQXgAHv3iH4HiccIggCwjBIBBB6YdTgYeTaYDGhogwmQADQYAAwZAA6ZAKCwfgEAjmuQARlQhwTABESgB7+gi7s4Cg04A1LgkbH4A46QC5FIABDAYBdAAFD3d8eQfuRgjF2ohQD/AIYRUQWNCAApF4ciEAVXYIM3qJA0CAqdEABJqQCFIJGgQA7k4JDJcJF0SHNUIIQn+Qt6oAc3cAMlCZKcoAeLoJIPQACC0GlDMAQvqY/HYAqmUJPGmIWm0IVmGREpWYaRlww6GI4VEAV6aYNHiZSdkJTW+HSmAAoOeZECqAtCCQFBuJV6AAY3QAQvoAiKAIQbFoRyZoGKUAmTqApMMARlUAYQ8HvpdwzkAApxCZcl+Hd1+RCKMJZleAWR9384mAyrGI4SmZSg4JYOuX/k4JuouHwsoAt1WICjWQWOsAgxUABUuAE68G6juXGK4JFmlwQq+YgX4Ajv5giVUIwyOZEz/zl7MkmCAJCCC+EOPRlwnHgFq7iKGbAGENmGSqkAwWkKnSCex8B/CRAFGbCY76ALlpBjBEABVaAIykkBU/icv1gABGACEKAKFkeWj7gIZVCZVVAJqzmT9ymeIrh+BnAAEAARqvCdwCcBKycCyZAAyYCRGcAIqbiiEAmRUPkAbwkKT4mYCbAGLeqiyyd511YGrnUIkfkCZaADg6AKv8hgSXoBuXCMlVAGeQgGRNCIj4ij4/l35LCfH0qCBXADD6EKHsgLKApzQRkFLBAF77CmUzAFGZAMTdmUvTmXwYmjUTmjC9miFxkFKXcABFAAFECdL9CVYCAFowAGo6BaRLAIBP+ghZVgmV3Zmb+Hmm5pCvtoClm4pfwne5WAew4xlicKc1HQl8v3DvZwqqdqCS/KCFPwDhVwnwZwmEgJkYMJkYXACDCaDDRoAATgAM7pnJXQnK23CBegXtw5CBTQqCEYpYowqIrggSIIlQZQkzXZm0+XmvxHjQbgAILwEN+ZdShqCe+wiu/wn2sqAPaArqb6CAIgAJZQAXOKn7UaAL1piqmIq9WAAHMJnah1AwjqZMwZA5UQb/JmAI4XqyC4Yxvmr9A6rTeKmk+5pW7JfwqQcsfgAIPwEA5AfyiqC2v6sag6BQLQpiPbrnBgDyJwnzY6r/mpADk4lalYCJ1gAAWwcY//+ZFb2VpEQARV4A5J4IygEIkPUAmD+gKjUAVkiZp1iqN2mpr7CYqOdwAY+xDyBmZ16LGnaqqn2q5ci66nCgdTcAX2KZeDWbYKwKJ6eZHxyZBQRwCVcAGHyJ39qoc5ywSMqoU7VmZSgLS/V635ybTduJ+IqZ/XxgQO0YhgZpxYaw9w0K5by7XpKgBwMLlw4KqdUKn4iQLzyqIfAKO4mgwBYABvWwADi48EG2/OyWDM+YHTuq3ZtlpMoJJPy7S0O5GHWbYTua0PgbgSUIelurWo6rjvILImqwxgC6+Ym5QQuZDMmwCo+AEJELoXsGGWSQQIupwXQLrydgCP142YSrOu/3YIYIC0H9qGvEm73kirQau7DuGBEuCxAvixWru1J1uy7Cq5yiAAKXuf+Lm8CRAGzhunH1AIYRAACkAAoAmEiQqZrXUDRroIDrqPNNtYkcUEnml8LkuvODqY6zer+TmTBOAQAgkA4Tq/wSu5XVuykgsHxssIAVCpSYkAYTDDEem8M5wMM5yfvOqrEDBs3NmsQUh4ZXABv+eWvNppG5ahIsgLosiQgomlfWe+OFqWDiGmBlDCqBq5IzsFjZvCK6wM+ZsMERsAkFCRzVvAATDDC/ABBUwOlUABEGy6J0iPVAgBEOAADnuYB3ABF4BaYiqCLruQ9Iq7Gzyj6xvCCwGqKP9anMuXro/LuF3criJLueHwCOE4p8url4LskGm8vJ1ADgWweWBQmUzgCFZ4AQMbbTbItG95bQXAXERssPQ5o4NJuzNKr/upkwrRiLwwgLqAtWuqxZB8sqY6BY9AucabAch7ucobvdGLAAGAANLMvAesCqJcqKuls4qwnM6YxzWZk84JfPoHkZAACfm5lEw7ozT4dLqcEKoQbR4bduIazOlKuZSLrgLwCMfMwsYrszBckTMcBtIczQHdyaAAAPZIhRlInZtHBEwwjJEYnJ3wp/fodIgJkTJQzuq8f3hqwN2IyApBxEsQzyaMql3cuJPLtSgNB9ygDKDLzJob0AAMzQH/jQCCPNFwjMow2bYU7ZwAQIrBSQ46lr0WTca1nNFlrMEz2pTr3M4IQcQHIK6/m8UqbbJVPbnKwA3cMAXR65adAAnSLNOQINDQ7JCXWwlMoLPK2YsOSgBZB3aNt59vqWMUUABOpwBlW7YIAAnRe9HOuwYM2Y1ObRA86ZOWkLX07LXDDMaRTLlancwJcLkoIMOFsABqbNmWTcAADAoEsAiP2VpX2ZVMoIEFwL0KMLGdAAAtaddrqJRJGcNorKMfIJ8QOZEgjRDq+dMBmMWR+7XIbLz2jNWMzdUwbdMz/AELUA0CvbwznABz6ZxwmwTceaEvwARMMAg7Ha+qTdSCO6Ng/23ZtOq8MFoIStl3BJCxCQEEvHwFwQu8XSvc96zSLLzVke3VyhsG1ZDcaLyQTE0OD8DHzhlvc+wAvuoAWccL8fqnG1AAgGy+EIkACxC9SrmjjEDefQ11AHkQilCiBpsMh+21II6u9szYKb3SWQ0HycDMnSDDMm3ZAJzGAxwA5EAAzyWZVeBkAhttIrB8+oefbkkAMQDBFj3LCFAN0OvaAXCR5F3bxwAAi5AQinABMWAACvCfjvzeK8zCwm28wM3PWu3Ckr3iYYDZZL0AhQC9K5ragrB5rCWZlmnKdf13OfqWQE4BnmkAOrq8yv0BM4oAp7jJ3fiP6Z29x1ABjPDh7/99z1rOzyS+5dwgAJHdCSgw2TWdxgnwAdWQ6TOMAAoAznALYdxpbGUgCDu9n5f7p4twwYjZlAmwALkq4QGMigvZjTTrzs64BBhpqviMzMENxr5u4r5OCOEgn5k72SyO3wB85sqNAIOpY8DacfFG4G5dAfuHo6bwp3GOlGf7v0bOCJsMCQsQswvZCX03oggBwT6521lc4lru6+7O5b7e0lo9BTIr6cYuzQuQ3Jmu6QI90TXnr46g029tD++wokg511TI4DrKoriKqwNc2fhdDTAavft3sbjtpCR82I970r3+7h6f1Vr9CFEQ2ZOO72M+5pjOCMiNACgwlxSweZEpjMr/teAEgIN4XbYPAKgKH5HJ0K6sCr2FANYSvwanuM4XqwgHMYzR5nIar9hW3e4fT+JZTQhbEA4Z4NwoQAOU3uLJzcYsf7lD615KqgrROZoU8NMyXrZ/egF4vPAJwAgCMLzQW8DcbuZ9rZrnfRCySaZvag9tqsXAHu9RD8aEUPhw8AGTXvJj7uJqvOkDzasBzgsEagL4OI1KWalr3/Zl7Lz3+7kBXJHKLeGgwAuvWRBXeAyTN88jW88dD8aPPfhazQ3hwMaSrvVkvgAy3PU0HLrQpwiD8JIkHIACWAGuTedU6ACm3gnO2wACkOlsnNwLoNFlbcDH8HwHQcQuGwWqGrzB/83P880NW0AKH+/YX06rJX/sx67G0EyzNVfdybUBbA8AYiuYp06FnhkHSAmOjJDfawAQYRCEKVQoQYCCARQGOAYAghOIEZ1UeqCgQhR7luxtFCDg0SM4ykSOVMaNELdwJEWGFGkSTqEAKGSiGBhmQRicOBHsRJBAAYACFy5QWCRokCAIBo6B6tTUFIECFCge6xTgAyNGhbIKXIBgQYIEaw427XTsgCCJEXMZUJAsyrt3G+11FACH5UhuyrZs4ZZXpbKQ3PZym5KgE4rDKBYsXmyTcc4ABgAQOMBLwYHJAJYoCHC409MCiyoZAAUpTLUGDRitWcN4QbVqBRcsLGtgQ/9aJ0lyPVhyhcVcuXXhPBJOci87vn9JCmb3KBlZmV5t2vyAM3rkC4PKXChAWcQUOPYqKIAOlUIB0gHCrF7TIDYk0wsaZMgaAH4ABQYMUMAdA8AxCXyLK7i6iitJGVKOS64lvFpKMBxGPjtsJ/ncq+YmgXgyoIBBXihjEFU2uMCBA64QgbOYQBsxvQUYEUA1RjJYoyBG5puxKYU60e+C/h44RoQrLImrIzg8Is6ulgghZK/B8urrr772esSw6BhDDbWbKOzKAKgKgICCDQQ5TwEUDyPHvNGOCUC+j6ZYoxoZM5hiCgHW6My+po4xgMe0/DumAhHoc3EKkIwEqaQomdz/4iTlEOQmQb4aiCk6rxq7abGBukpAvyWWEGEJzAC4IhmeEDOPgGPUrFCADJJRgJfeNpIRJoVAAaUhPiWK4QFeKkhmDRflsks4lvJaVDAlGR2JFJX2IgQORsKgtKvGcoJsQwi4IwAAESwRwJ4ZdwoAFKguQLUTSF7Dag0RDjChAxMOCLCggxSwtSH+0qJIgUKSYWQKe96hq8C7ECRFMGeffFIlhPkSQKBpXbspAZwii0oQQVQRxNwSK1AvjADODIoAA9BFTTV2ATDBhxN8wGCJChIAhcxUG0IrrbV4YW21DOYazq6CWzKpSb9IYrYvk5B75IOdaMp0Mdiy3CmMnwhw/yAqCkY8oAKdEOjk1GMUeBO1rCpQeYITVvDBgW0fmIwAkjEoIq1F1vLVrZ45GvYulphkh51kF2awpOPYUYaRBHi69DXGBcopGU9F+PQAyi25InGBvg7qP1AQuJCxBM7mIATSi2jk9CJSL8IHH9JyZC2x18ggb6DhQInhBP9GbrCT/HJSGSW3QA7aaqbDSWLXwjDg6gIcAOCADDqKIhmpy32gtEobWCwBXjDowJMQVHhifHrGN/+JFVqQSLcHKsgALmGRDMd2ofUSHjnkllTyUf5FIoUQ/BGGEUxTnJUaR7VybYACEKDMFKJAMZsEoFz/SdditIcASHSvA6NTwQig0P8CEIZQEiGUCBB2o4D30QUO4QgHSlzYwicBUHf4AxzSkJas+w0PK6WaWk4uZRPIHaBL3VkCWDIkwc0poIKfW4zZOnCC8HlQCFMUgiTsIAkstkASEalb+2hnlxYGT3986YsMZ+is3tnwJEvSnQAzJB3HdMUrBjEArKLAAhOJ4BGI4wkkoJIUBaDmDA04w2IgUYEDfC+KUIACFq1oB0giAgpC4OJutFIXGCZKUQkzo+4WtUaTIAxSOdyCMrTnGgrxZCA7AUAlCvBKAFSAEY8QCwJoorkLAIAzV8IUJOJwNig+oZGQJGYJ7FACSVDSCYrYldgEwMJQuvCGelnSJ2foyTT/miR4fkMONx5RPDnKEQUB2AnmIlOJL42IACIQS4Y0BwEAxCEAsPlcQwhgAhygLQTCfCQxISkJRNgBIouIZfRCmUmUhDGapMjfNXe3yU8qSnfMekQ4dwKJTvSQQsloF9yeJ6coVMdrrixARWxCtkJwCQc+KELawvcELVpREiUwJjEHagBdAG1+K7whNG04NIfmj0mPiihETzKFC3mFJ2tiIgICMJkDeIpQw0mqLV0JgesloBo12qoTfcCBFZBOfPzspz+dUIVc8MJbRQIjolZiQ0RVM4cPXRREN+lJaFErS4Ww1k3wAzerPe8KU2BEUnFZkUKkprANWIO7vgdFFaiA/wEedKQ/7TADJyyifXFha+2K1BGh9eV/SMshAI0qw8LN0JufU1zUprbVKEjAatuqQEdS05UusaU9ZxiJJRw7AQ56EAq2wCIiHBlQzFbiGEGyB51qRyw4HCxKSiLFwU5CSuwqio3XJEQ4TtkVGrzmguoym7wkIIEpsBBJylhDlw5QiOgpVAADeNcEwCdZD9rig8ksbglA4IS1XOEKsyNSkY7kVttdlx3RnKsndyfX1P6NL3BgImO+u1UFOIBtBwhUXaJ0uC7xIgMgCYeCCKELDNjXpeJrASOx6M9RANgAAbKEt+gCEtttgVmASdqxTPK/oOJvUULtpIQpLDHVEJK3ef/JwBIAwLYG2q4vAujSEubCHGzO1wP63KdkW9xPSTxjIrwJ0BWAAzQbQusRUSpaSxos4fz9735vDsc3rfSi1DRAC32ZwhIkEKolPBNpj+jSFZ755kUJAANc8AQHGcBiEFaxBZitG4CCNCS7/C6vS95xnh3EnLlWE4emxWsGXqWnUBlABFKGQ5e4xQLhPInQrxTBoWk4Q0JoGXwamCxMQwjCLTphVxLQhSV0MZdMzm+PC3jESB5xytQsR7vbddYou2uJP2NA2ybgdgdw0AEJ2CMc3T3AK7clLxasUCRUprWgb607JcFhAFsm3WQ/+EEhgFAtM77CsQXdl8+6p9nPllj/s1eCFxsO1Yb2kMBkOvDwDkxA4hLHAQYGYI8cwyEKQbpCwyVQl5LMugCGDmOQkTNfY0ygByHQgH4RgYoPPkGgmbWbRlrYQrvMhUgigfYZ9txm9xDy5z9Vxjsk4D2Je0LpHFB6oznQgQFYIsdbEADlKCeBAbwDzewuQBR4iuWgUn0AiwYu6TSggrOnLyK7OkZ8YfhZA8EhNT5H2oGUYWf5jIR+dxfBk1nHgRNwQPCCX3oHLO7vFl5Bw2wDQNTByI0MEAACI/dww4J8YgwYgwtcsO/ST1AEekSkCv6pAGeH9S2d1+UjCFeJnfX8FwGIwGo+WEHtTxB4pk98AtzmPQEG/xCOqlOu37rQxU6VMQXJF0AE4t7mm4MXDt9m3gPT94AxjIGDQZQwFxVIvQAGtBE6gRyudr97jQQHGDiwAJ8scynuc99oT7AudT7AwQHeEY6ATeEdJoJ1So5f6K97N08CvpzThbHTNgRshLRAq2PwluB4QLoYHNYbDrfSu3cAgHxKm7AKgdsjPMCrvfKhBxHEgY+rOsA6N60TCUZIPpITJW5qIwHQhfubn40gPgOcG4lAKwMwsweUiyEBuQpkkMorGjiYggPIJ8AjHQ7EPaU7gcjytSdQAR8AgJyCAyE6t6ybH5GIguTLqTKaMGShtnAwwBm8ufmRgNvQvh00Nl0AGP+O6Aid87+DC5q/gIPIwwHBgyIlXEKxGoEW+6AWCAGoyyng0wiMw7gWAozIe6UWPAk4gAsYKpwtKERxYyEaJADcmIg/kUGN+L5vKTA6PD+VgAMJcICv4oHbS8XbC58O0i9GggL0gTrme0RE1Ca/iALmkTr9yQt7ODaggjf864j58b4DyERhq4grgB/Uk4vUC5oSI8LAAAx7SKRGwz33Gx0N0IDxGQFXfAIfMAFCnER7UBLVEgnFax5LuDlG+cRxk6gF+6wMMJElwERj3IMZExKBWUZ9RBIk6Qv/8yy7sAQA+J7By8PBY7nJmixb0C8VGMRx652EGQzAEIFcZKE0WqP/bQql7vK+KGgXoDDGtfMirFhGZsQ4oBEJZeEbgEMxggS8JIQiPWS5DmKkFpiAA9CFQ4s3wQhGgIMDinylZJAy/WEjMkooM7SHJuMSkIwIR9gVhMibjCAQAwsMfzzJksA534q4giSdwFtFhFxIKAgBE8i6HqsrdhAAFvCWYVwC5jG0NWKS7nqHK9wWypAAy+EFqFhKutkNSHifgClJvbGdneqskMBKpCtIHtjKEEgBBmAA/XoCDrA4AWiYSRSe9FurIlQAV3KAWnvIZMm1AVgBHcCNoKCA7NNL3NgDAgAF7iOQ4ABIfswk78s84CrIwQs8HpBJD2rIAcDJRAGcRJNB/+F4hAx7JRErsU9SkjFsHdRsTokQjYqQneiJntc8PZbIJuAbgJRzOts8SMYcgVjMwi9cFMCYghqTAK/rM+aBnnYUNUJ4BwxYAeecT4gAgl3pFdlhxuLoLGnyx/kiux4IUAEdvB7gge9UgROQxUQUHqqjHAB4UMr4lwNwgMlru1CKKEKwhwFgTvqkz0oggDgIlL9MvfhZoa+DAxTbshoQ0ADdSl6LwhPAALV0swwlgEq40QL40GTIgHKbvANIx+sCJVJ0gA4tUhPihQEDTOEwPqrMTgDtAQ4YUChFSPCcgAF4Ji1EGEJzJS4lAAWYAl6g0AI4gGfaH6QBvisAgHwp0v/59I8leItOHBLAQD/0K0z8wwAVbVEobVGWG4ERiNF0JE/C2YItfaUbJRkeFVNemMxdVLYMqIAwZVP6jIG0EoEoqLEBgUPYVAYW+s8tAy4WhVIe0AASCAFjuDjkzItkaTWSqgQNExVsKYBjWIObG5bCgomGSENJRU3/oJzvQL1P9BnYtAduiEE85Tz7YtET0ABBvDhqAzVumFAu1TAvXZ4KpVX1WjavCIAKmMddbc5G2Ba2oE6M+z6dM0m2WhR5w1Pdm4AVFTyouz84Y4fc4YsDuNFWJQBemNBrLZK5SKrF6JfGeohvXUp4etBFBRo4vALhG4CsIxLkzNCxo77N44L/IJgAD7C/EpvXASw3fM1REplQ7tCZPAPYBTCIQliDJciVgs1E55mMYxA09RKAo4uXBz02odSfMXRYBETAnCoyh9qCK7DRj3UefnWAQIIN90Cy1aiAAmhZkKwECBUxnmKhaeQ2lcEAM7s5jVwU4MsIGWS+NwvayMPRHP3QJ4MApC2E16gwpY0NBSCAMoDaTPSPyeCFGewu/MtalTkAZPspBjUtHGJQk5OwLUA+LsVRuHGAEVEAzIEaA0qI/aDb/siFBzU0cUOa+TqAATgArf232+GGoG2+sb0mQm2lszVUV7oA5QIFvtKq1IiN1ygEDDoGgqXctQMAA3AfYSyjjRxD/0MTgF1EidL1m9KlIaprJbM920owF86ABK9Q2iSLjUKAhLjFXV15gDjIAEOUsrriCxYCnP1px4YK2uM1XSt8pQKIAeZt3tWEDwQoiDWok6zYK1B4WuyFCLZLBkPE0sEVshoyrRfkWAEMu2hd3xhI4NRloKVYIqzAigS4CXoBgPyFiD3IhT95nwFZoUwKXBwyXcINWgcLKkLgBQRO4BjAUdYtDfiQj52xCaU6WQOoYJp7gGQUlvmBoYesK2pDo2p6KAGcM+6qgEpAYfZVYeXyGEhAiAdVohY+We6h4S6qAEM8xExroWMZSjGSKG5CtMtLhhNW4ARmXaqQAevdEwoAAP9QkAEZ8Ip6kWIMdp8R/RYT9anP3K6/eb4ik0ST24IMYFwjTuGgaF0zJpdB0AECuJ42vglISAB6xF4T2l2orM4c9l0Ie7DuShpPirCwswcCEIpAHmRyWGMZiFtBQGSq6ITwWoAlfmTcrbTSU9JPBKNx80zh2cgr8F4hNtzSJQVCG4oLMOKRUYpOMOMNSWNeUAj4hQ8Kzt8uYq4RDczP4qne2cWMgCE8pqvSJQwC2ABVWIQ9QOGRSRUZoAEZCADMEIEKgAQ2buOe4IUKfp3lCtuShLuN+LowCpxqFmK/CZ4zymN7cACMEYRFCOZXYmDsgY9+SQb7QABzpgFIKISfcOb/3aiASxOSN6RjFcrni3zLuxI1BTmjDBVojcmaC5g8c7ke+IBfsGhoiDbjM87fCzaA3pDBuDDXAimwhywjbYImouTiAkYOT8aYb84alEYPpljp+7CPlTbjcWnmV1YuBbho/SwQYV2h/blj30UjNDJdw+WGgCZqCjDqoOgOqlDqhWBjdlZrcslf+0RGmwZMjhBWHU6oGxKjO87mOeOLgFYFv14Ekw4KtSUNe0nqAJABpmhntYbn/GU7KoYf4CjJWU42o0SonkYJudoduhIADvHrbxaKbNGWVJkZ8mgKW5GBYkbsmXFluvWTQpiC2ZGTfJyL2QGYjngES8xtLQiH3fYpKt3WAuDes965uQy4AEdwhEEAEcC+AAViXdKYGbLoBFAgB1Oo7upe7aUMCAAh+QQJCABbACwaABIAcQCwAAAI/wC3CBxIsKDBgwgTFmzCkCG4hk3AKZxIsaLFixgRBgpEpyOwWR3pABtJp4kciRlTqlypks4sJCA/yho5awySm7NkyTJyKpAclkCDCm1CR9asj6HG6ByTg09Tp09zHLFwUqjVqxSJHv3INIdXPjt21BgbtuwOHkqMBMLKtu2WJh+RLG1qdkeQu0HI9uDAg0eKMTBOuR0MFFqgWV4TlwUrtkaQCZDH1uBAuW8KGIQzp5RjhK7YsJLH4q3RowbkCaYnW/6iuXXFQLJy2OVCGy9t2pFNc/GAewJlviksuB5+UGsoPjV2177tofnp3c15593b9xLx6wO1yhpjN4jy6OBpg/9vPp06AxvYiTfhCEzW8eTjmxuLH512atI8hKdvfThuqByO7WbMfPJhQB8XpyU4GQP7aUaULEj8J1t39BHYXG8JJsjBEw1mdhgSX5V1F33hIYjaZCecwEGCLXRIGFJPgeXYBAhCdyGCk3EQggpPjADFj0+ccNoJzLjYlhFy/ceYXWOhhtpvKZ6wYwuplPBFBFh+IYkKK06wQglGstXELEktGRZlIaTAwAg+ovLjj1diyQyWEXzxRSopoHbCDGGyFchxoKl2BAOXFGqBBXYm+gUzjDIqZ5YjqMhBi31e1cQYYOXFQQpdFIoKKqkoWkcdETADwpxYgqAqCBHUAUUIlLn/UulVgfAgFmohuHAJDJd8eqiddD5aKqOqMjNqKiqoqMKsVgVyxK09pFDotFCgYoGVwMYpp6mrglBHCZFysAKzQp1iq55PXGLLtLaAim2rpA5LbLcglPDqCcuSC5S5dk1wQrqgouKptYhqKy+3qxoLRYqU6rvSJDyY5u8T7VbLLgwwWEAnqosifKrCKUriMEsgMNDDXvhW++kluvaasZ2OAusxo9/iOzLJqJzcA762tLuuutMWXOcpp1w585wWhNDwzSlBcfJkGnTKsgtdMGB1Fy68rOih16YiSah3qsAa0yqlwsPJJ2hAqAsMpMADrGiq2asFqaBCggYaqMBjC1Sm//IEn2SnFEgKe4XAgAojpAB3CGky7lenMNx5CQMajCBJCSVcXoIr6AWekRwmb8qALSrgfbWbtrSdQgouJGpB4pVrPsMMQtTh+ecj7KVm6VbjzfgKKqy+uguIRmCv3k88AUUJM7gK5u0XyZE0X2tOrkEKHKTYI5ttZx0n5phLMqqxJaQCAvQWyfFFCiek4GOhVjNAcd0kjEA5CagAWweqNDuKJfoUkcMpZqEEv4xgWiy7BBRSUbf4ESp/RiNWox51PgAmBBynEMksBuWjn7WLgXarHwlI0CuZ0etjpfqJBRGiPiPIxAX1O6Cu2iUwKJCAASPEX/E8dqpRfaEOVlhhQv8ymJOcdGGEDHCBEguFRAdCsFT0MlYdmhdEIR5EDi6ZxSyMULUuMqALYDxiDm/4RDkVC0uj6pwVD3KKkQDDCDe0mhKpBsYcto0HXQBVlbbVqlRVcY0GAcEpXAiDql2ti2K8odt48MUS1ilYqQJkQibxBSMooW1HUALWuqBJJVYtBUc4gvcMVqpUqVCSBpFDBAoZPzpSjY5h7MLL5LWxUv0RlamMgAVgwLYvgnGOrvTeDum0P1PhciJyYMYufwnLLpIwcoqy06hapcZjstBO9vNl/NR0uk+B6mtWGp81JzInVMQPjJTrSwj8QqiCicp241TIqMzJgEFtU3hYg2Yp6/D/hRJUM54GYUYJ6HnOq32RBBgjZQmACNCEuAoGvVPbIcG4K3deaXbwbOhBQFCtG0o0fkpQgq5+Baw6faGaipDCIXphhV64tBfjtKHVVifHL2ZNaHSy0wwquAUpVEEKKgWDUIcKU1RaoQWqo+kXbVpRafKzn/4ciA1cIYRBWHUQOmACE/TgDFyCgASfdFsK8CbRfJIUqgsFRxCnmgVVbIACF6AAVqWgB1TagBmXCGtfLCM8QnmqSuVjng1GIYVRtFUViEUDGlQxCCncUog2uGte63mERTrOMpRjwAIxRzdJ2GAGg8gCBTawAcQyVgfisMEhADkKZqiPaqurrPBCcIK3/+FNeQwMbOZsIIVFuIECo10sY8XxgpauUQquKEEgeElZ2VJOcWPVgPLoVr5UIKp2NnAHEDag2LduYBDioMJjAUg7H6jgFJOdKShXZ5nbWo6B1qUbCfz5gkGoggKLLS1WX7BSISLXBx3wwRegoILMOvC5q6ucLbwGX0T9jbeD4C4aSovYQbwAqOMN3H87YIIOtEAST5ipc5M61vp1tkqH0gAQD6EDNAB3whVmgg6KkAVXSAJwgZtBFnxgAgz4OAszcEXpJMpN4SUYf7n9ggVQ8YQVu8MNRXAxdxnLhA2YoMM+WIErZiAFpkmCAxwGwAEAAIAiDGEIKxhrRPEmPLyNQP+PJTjUCJ5gAz384MlwBa5+maAKMpMZAyZwQBHEwQRySUEIKwAwBg5wAAmQGQIveEGaPxo/vG1iTfgDFdc0q1I9nMMNcQUuBaiMBjIf4wCnJrMJcHABHVQK0RMI8wEG0AwJjBnSUpA07xxouiN+qsFQ0IAkOg2E3+IXrlS+gKmPcQxeOPsYqsaBDoTQoRasgMMYAAAGJMBtCQzA1g4YgkqZkLxDLvWgl4Bv3fBWAin8QA9JMLaoSysOCACA2fjONy/GjAEc1Bg7Ola0mLtda2/bmgDiUCly5xziHNovh3pMBQPwNQM762ERpIXrBS5A7xjcO98gx7e2HdAIV7emvB3/8PGsB/Dtbl+B1s04gCqocIgfvMAVIa5jCKs2QlCRgLYtoIIeOHFxNFwAAgVIOscH4fGQO53ZZHaAKjJDBVf4AAcpF3Ojuy2BWg9ABCLgNgSGYOcfDMEV2SSB10LYc1RoYFNc5gQnfgAEINhXFeIg7gt0UAkAGMDpBvg7s/9uAFVTwC0zQLOis32AZjie5QNIwxVEwAIRTF4CDhAHGH5AdHKPoOdrHyEUIMowocv9B+fYLozB+wJVEIDwIA88vnlxDMIXngBTx0rAsa11x/MC7GB/+RWGD3kC6OAGnOcEGMiNQ2uBEIm0DcGwDyF3ohMhBklPugMc8PFjgCIACsh3/+DHL3ioA+ACVwlyEbDuYzE7vhm8cHwFLJ+GcqQhDSy4fxoAYOGhzx0MaMcA1hVnMsU+/0IF7lZ9RHd0i4UGDoBqzaYAElgB+PYABmCBsjd40AYADrABQSEFaDYBPaZ1S/B+yeB7FZAMwccC5WB/LMACBDAIigAG1fcDoyAELWAt/SQJI3A9KbAC4vYDySd3egAE4qAIL6AI4kAAfmcAvFABFQB/x/AAVFiFDzCFVvgABOCBK2EDisd73FZrzQB8T6gAyZABUTB8V5ABltCCLJB5inAD/jd3NyAEkoAo9pJUQiCHQyh3RLAIihCIVXAOryd4ClABzjZ+WbiIhYd+Kv8RZFc3ggewBJRYgr7HCxMYBZrIAprYgi14BQXABHEIBnPICSAYKqnQg6vTAjOweQqofIsQA+JwDopQBXsAAFfofaBQe044fsxmgYv4AACwhRlRB7Ama5T4flAogaBwiFCoglGQDMmgiU5gCU7whkdIBKSogD8gBTOQitcjXS+wjQoIBklABgWQjYqwCBgofrZXfsFYewRweBZxgysQa4zXdVC4j8uYABNYAQkAhVGQAQS5BlHgBJpofKIoVH34bi/QAk+gAq4wBKTYkFVABgSABi9wA0IFBARggd4XfoG3i/lGhRqIb4GXexWhCuxHZlsnASIAhQnQDPvojwlwk8n/4I/JEAsZsAYEKQDXeAAbsJFCZWfcqAcPKQRUAAZ01YdgsAcYOZTjeAOL8HreV3v4Fn5TKH65KH4QYBHuwH1i1nJLgH+cmAzzB5D8GAAJEAsK0IwBsAZr4ASGIAACUA4iAAFMoI10VYpEV1ijMAocaZSnd5EEgHs3wJFgUJWBJ4Fa2YwX+ACmMHjlR5LQVgAW4QZM+JJpqImaeAWeKY03CZDS6JhtmQHlYAmqaQkwyASKKYTvpgdgQASB+AJaJQ5VMIN6YGc3EAO5oIWDcAMbeQPKZoHN+JbMBgp/15VbmZygsIsG4AAV4Q4eBwDcBpoikAwvWA6cqInSKJo3GQv+/8iWCZABhmAJyJCebdgMqkCUszmIi7Bx+iUO9oUGSFcAaAAEMTB+/AcGcdibuHgMyImcT5ecMgAKzqac0kkRi0AGYrYEoJmC+bed3BmNaImWCVANGZAMChAAFRALPukEToAMAoAFbSh1jHUOKpoEsVgJDpB9R5d0lQABF1AATjiF/XkDUkAFTWcAu+iYPppvCoCJz9kJMsCWV1ABBkAAhTYRi5AL7ueZIkCNTsCdCCmNyxgACxAGNxmea8AIdikADRCmk9cMAAABwQlUN0CbVZB3hIaEilkFyhZ4/NeXL2BvzGYKzyl+zYlvoAAJ/hh/URiDFOGbYvaE00il1XiQUf+wBmhJgabQCeAHfgoACbHACA0wBQKAqWKKBVOwBgpAAGj6pi9ABLRJm6WqVUk4CBdQiAbQWIewox73d6Cgp3uapyT5nM/Zof/IC8ZXqGSGiThZASIqoshgCMXqBBmgAAZgCqbgo7qqAAsQC2HwAWGwANUgAJrqqBUwZsP4opUQruLqAJVwmIdpADSZiDqwo7lWALg4kgEAfrmqq7rooW/5fcz6qxPhoMewBN+5iatJolMwBU4wsCLAC4HnrKAgqQEgnm0ZBmFQDWM6BYyQkwYAAYuFm1UwiECQBB7rsfZ1AX2HibW3AWf2AkNQCVQIr/HqmBLopwvrj0MqgUs6CBP/cQ5k8ABPOKXFWg7piQxYgAyaOgVYgAVRAKkKy7CUepMLAKaPQLGMEAsGgAaENo59KZtDRVdSoAg6cAEJawD4uQIvIA45e4U+Gq8BsKvM+JxnG5AKkADgV7MTUQVQygsScAUiiqzqiQyWYAh+S6JwMAVK6qy2+rZsCZAJkAwfwAiMS7EcSgBHdwGnNQh1p6IqmncbcAEOQH4EUAAQoAOu15VwKbOH6Jid8JzkGZD+uKRcmBA4q7PNUH90OQU/y7cCYAgDCwdwcAYc2qy2+n3k2YwQi62Mywg3WXjDeJgOcJi5AKXC6HcHYHkV4LIE4AAQYJW6OrqTepNpW6QOmwxr/3AFzgYAKokQT2oAh5iaJWoJAgC0QKut8Fuia8ALyumsnYACKNCy8ZoAH1AN/ssIH7C6aIpaeSeIG5t6QLAIBfB6iLirleC5fud9nXCvkxoAnQAJayuBXTqNBwtt5XsQt3gMlNe3QIsFdnmsxzq7RQsHApAM9aunRooACLC/XFqt/lsNYRAAD5COcKqjWTtUSjgINoq+yvnArXqFCnC6ugoJ8QoJkHCcwBuesZAMAQB/U6sQ14eu9UfCJtzFdjm7JYoFcGC0CkC4pyvDNwmxNdy/jAuxAXB+F6BYcbwBi7AIiAUEqrBxrXoA6CuBlRADF2CSutoJkgqo3AuXHRqXcv/JCGsgsxerEO5ABscgAT67t+1bwnapqXDwCI8AB8owBQlQq5Gav2qsxgvAxg3QAG6cALdXveZqrn43f1fgqMxoAJWwce+6sPeLtuFZwTcpl2uwqRgskpiZEItAZvX3s+jpvkUrxmK8u7qrDI8QC6J8vwhQraV8zRBrrdYKtzF4hIGoCEywsfBZowzMjDuMywl7v0f6fW0ZwC37tgngk4wbC2xZe46IEB7nbWlQuyRaomM8xiWsu54MB8uatJ0Qsf2bzdhaDR8gnqFKXIo5VEzpn0wgDqpgo5RZAHHld88ZqVHclhCNug0LogLQyB6KsMV8EIrQd95WyT/bzAQ9xib/LACerAzKIABlHKmEfM0fsAbWuqVq/AGLW7G2vHFyTAF1jFgbh3QEkIgXyNHKpouoC7dtWbHcG6+xAKJ+uwZuGQvduqAHMQSSLAFpMKLv28zPTNBFa9M3DQcJYL8G0AkJUK1ETdTDu6VE7dD+6GeHCQC58JGB94TDtwS0p5wcTQF+56wyLMNsOcU3ycRsCb6MgAWG0KUJgLD6ahCRbADeZqyGwLcrvMI4zda6yw3cwAgBANJ0nbixcNfcHLFfWg1uiXtZpVW1uLEsGgPL62z0i9hwBa0LG6+SigALkAFbHcoBII1gKgC0PZrhx38IAQRQCqGqGdNhPNOlLbTRrAxw/73a3wexr43DDr3Qi+vQ9vwAqsAEL4CAQ3UD4kyfrSp7iL1xTiiBDNsJCJChyW3VPGnTArDVKI2IBpDPBaEKuXAMFXAFbUi76SnTb80NM33a3ADKp5u214ytes241YCpDcAIOGwKBLAHcaxYdXwBgAwBSOfRzgq2NNrH+zue2CyNDrsGhiDGm/rcAZCIaIAQ55DgxHrdDz7hOI3TEk7QysANhHAGcDvcxq3Ndv0BGt4A/pvDndDKf20A8ycCWxzKztq5NAoAiRyvM4wAi+uwAbnVAL4G1eDVo6mkK10Qx8wLV5AGqpndE17QcLAMem7k323GKADlDn3DGr4ACHDlF/8ABCp6wPFZAOUKACKAnGDbCBtHAHEw3BespVWew10aC2dg2SC61fY8pEtqvgawBDCN59p909zA592N2owQBoR8vzQQ6Aug1/6bytWwpQuQAA9wAUeomGObd6CrbC9rADhQBKPVCATAbIRMA5CArV5tz7FwyhlQopsql7SNtr7apHJunXeu6tFc0EnODd7d3aQg4R9gwbRu3LfetB7uv0I9wwDA0YpldDR6n6/Hq8dAchynCo2wvMbZCaFOrUQdC9lqlzUN4qOuAGZqswbhcUuQAcigu0EL0Hm+5+f+1uWu2kV6zY2Nrbrev1t66HGLvAYQvZa3hlOwoXAbqqy2ASv/sAJP4AqukAUrsH4mcAw0+aHBDNBY8OFuHq+ICACtSxD7SazvO+QZ7+dIjtPaoA2P8AFJTMrvLrHy/u6H3gmm8AADfA6qgO8LDAC8gJYKMIwqTlquwDeSoDmZ0wJZgAMEcAAVEMxnoLu3O/TAy6wQXxAOWgEZoNYQTuSoXeRFjtrasAxrkLbF7e63nuvXGgaNjQK/rndt6qasaqMHQHIrkAVFQGNUZYeYMwPgkzlFcG+zfPdFi9xom+mgQL4G8QKSLAIArfBd3PSk4N26792E4AUVngD6HQB5vevv/viGXuud0Lkbl3Q0WqPbdwAEUATJ4/kroApZwCM+Yoduby/c/zfxFm8IjmrPRXrlsF8Q1H0Mdk6itbvW3R3NfL77ykAI2kAIcLDugZ7XJF/8Wo/GgQcQIgReEXElyhQnaTD4WJFixYoiRR6qGPHE4hMokiSlaoEDwBIBy+DAyRArVphYCSBBAmWAwLktMWW6yXUsjSEnU5AhmyJg5E+gy7hxU6YMTlFl3LR5IXUmTBgEYRZMbVB16gKpUxFsBXABzYUCBRwQIGCAlwhkEkxMmOAjoqoVKlqk0ijErhBJQkZ4lIAMDhYsAqqdTBArQIBjxwgwkSlzEYBjV5w4waITMGCgI5ctI0S0qMiiSrWdYRQGxVap1RpUqzZVNetqTwFsGFS7tv8OVWAdHADQYcKJFT42wMWYqsTxGSVS0YWyAoMELH8ZrTH5NAwo7AZiNHYM+YohQwIsVwZ65mhSbZ6NhhatrFoAFPEXIFhQ1f4Z/PgbMEoGgGxYCHRzYEAfTjjBoSI22CCuEVDRSJISIFyOrkYAKKeyKTJYgzrqOunElAcu4C6mGCDLwAlLdhJAgEce+Qk/pJQaCqmiSOGGlPQagOo0+qhSpgEakRppCsmcYCGNcjIwZAoJOuDAQAOLQCOiuFS4qIWMlkMFCh8OKMcvARipZkPDPDQlF3FG3GKRB45JxpIUxZsiuhfPSIobQrzwTL2hSPFCG2Xmi6/H+uxkj0Y4RAj/SyyyDmhGAgkwYGuCJxNcsDhJWrCoQS0Z6MDLwFZbwKQAQPEQFAKqUDMGA+K4whInBAjsMjjwOw+99GJEbyg8uWEEPhRoILQBGJMSMtEChlNFlQ3AKoCAJikNIbhlsyjuOAiVyzaLT9OItTX6VuoEFBALUHMLMgxYIg1LfBopsClsvVUpPWncjFdt8g0UgUHpq8rQPYuCQ4Bm/FvUAf8AOMDJE6a1NC6Msj1uYkmcO2CADASoChIPTwWlKzXPIeMYCcpJ8TJZBZA3RkJyDZK9pUarht/TgKSRFBo9g2OKR6YwpJwLo8NiYbZ8wOErHzjgIAUrW5AEiuU0CsEECb6D/4ObMwwDZSXEDDB3xCpGZpcnZC7DAr9HQrOR3oCTslGZlvUt7bQFglTvM6NEGHBAAhQ+4Iq/kEljABOOpmCFAxmwKIUUnhiBrhE4wACAKxj5N7BYqMv8iq4YayxsA65A5mRDRndiJF3V3vO8Pekd7QP6DD00xqMShUBZVdAIy4ErhNJmGQyOXlAFBlAxLkJJjE9Fgw4UriAAw9ZgxF04ykamnAMg4A6IXAyowAmcBAA/J9Tv3DM9nWPkFc/OHmnNZvVzLuqRAwg4uG8AMqCXkAMKoGDBAz1uYhNLhQpM8JEAdGIrC4BEAtawojVkYCQCIFxjuHeMWEwGRaXrCepad/+j9KDOg+tz3RliU6iXpfAMCElIGsp2tZb96QAOuIADTOAbDoTgWqmAAhROgIEDPK8TMuBaLMb0wAyoCAtpcIBMzlET6GUgA1NASAftxqt6Gat8RCEEjv6kjNJEpRopfFkzyHJGs4huKC3r3wUAYIlyDAADxqBUCrpwiUtEDogKSKAMiBgASCygGkoKDxbCgwwAUCAmScjFA0ARQSlS0Yov69X6QmO3fGmDEGf4AFQWILu70UhRFGBWs8RyACwMZRltBAAcRFKOObIlhxpQQQf22AlhdSyQ1RBAxnoigAhK4GsXDEACkiG9f7nyVkjBkTZs9LY7sQeEXtATI64Cvxj/4UxI9SOAA56lMBHAcJUFcOO9kIEBD3BhAj3I4QkOeIDDQAIBK9laABYgq/AIwBAZqED/YrKImlQgGVHIyYrolBn2URNQRLnRB6fJFDgwokegDKWNnGCQKBA0OkIhRGdmCIFWcmMZWJCAMdTZAx6EYAJAfB4CaMASQHYCEigJDHh6WQEAoOGfuQBFBaSoJOoBJTQxpCYJ1/dML/6JG48QwFRkp4y10Q4Ai6oE/pqRyqF8FACb2QwsPUApHtTAGAOQQDLkuRKOyXQl9cHCT/vztS2UCBSxWNGcNqo6oSSFqGtbX0c7GjOFaqNWDaiP3YxFCo96k5wUYFQ5rsaNjx7A/5VDgYMc08kFYxzAEmmgDloBuRI/yoCXwMSpiGQSgwdUYA1nEMm9Yhizvyb1iyTsaDMzSU0vjNSaKDQfQ5WyjIsWTGEDcKxQIEtDAGBhM4TYDDIGcADNKretT9kKJOIJCRnQR5+cU0VjFEGG1BrialwVCmd4FZp84RZ9Ij1qF9OrXji4jyp2siSetCGAhDVDMn4p7zgvIFnOaAMZAuiMK5cLhyiEIQAoMYw8Q4uAQR5Ap415AU8zIBJlinSybiOFjW7rhc7Ul1dxWwpuCQEHwhZ2RivGkwC6ubu+HSAKGJoqBFB5rylEwcD3WoYhkpGSMBQmASoJ7Ut5ob3tAQAUtP86lno6TNQ/6SnEfm1ZZzr6pxIr1YSquVOHcYZYPU1hAAXj29/Ex4gaA3gzj6iACNLAgvLCgRcFqOoDrgtIP4JCAQRIU2OksAgDxMIQmAHKjQ7V4ff+icrs+2smP8yUH1XFWOZrpjJ4EeMBXOEKUxjSGuxnY666sp+OgkOBLw2BZ4GCiGEArQxAcQy4NqZEx3hgZo7SJ23iS73r7SijS5xl3HIDxWf4l9pwdOKpgoUAf8vJIxjxAftdwACPHUkGDiAQLJwYDk6YYVniOc/CsAQA3eWOImJQk1q/a7LnvdHaAAviltk3XyR+NDVxZhWqEEuv+VqDf8jCNwCIYA0JyEX/JWzsSub+xBCbFgkWkOEECYjgx581SQIU4DU1KWIR6fpO2TYq0mw6WqG41ZO8bzvvRFNzkymeD1WW+7soKIAXzeANAJqRAUYk4NPH8J2wx7uT6Ojz4WuoQAI+C4mUHCORaiLCxiHDLp+ItLW90mtnUq7oXmmy15qs973nQ58FLsB3GbBfWGRMGaN4ugAH54yejPsXwOhzn5qTikn4Oedzral7f0MGj0EzI2aanORY1mSf/PpueyuD2C13KQ3EjqcrkPMrCIOuCDK0880oVJV/EQAy9rkiCK6oJBYnQ971/sgXYvgn6imfFjg6+MBmsplEzTIhlCGYqXQiPjQ4Q76W/yFcR3ETAFG4wqclyw3c2qgyDn94FDYkPX42oxkG8I/p9W6KZCiXKLL6SVHyc5Sq+A72u0ZsemP2XkAtfivr770mnSAC6B5AAgNw8yOc8GkDZJ7wwnY4rAaeEkiAtZi4gEWwvi1IAtSKBen6pdqBu1oRk/lqtPHjOhDjukfzudWgrjA4A8SCgxlalL6RAHYph24CKeUavM4YKSfIgCFTAFAIEQMcEZFRgEFzgigIifIwitWoCi5jqDyBvXnTvJOztwdsDahAgDMQjQzwNwDwGxG8v7U7AENYhiwLCfbqsWSwOALYgxgcEXcYGSXREPMYqb/4CcvJD/1gLWUANvWKm//YizKFiqgPaLlPurJlYAFNA5/NuhAXWzsAqIC2+5MBsATyuikY7ELuEIcYOIYTOYiU6b7MQAr7+Bd6GbzzMz84LKopwIoFagAc4Qa9YZS+WbZmSINPI4AKYIQA45/eWYYltJ8YUBVELLdFvIIMuAIWKAfwiQ6BEaqRYIQKoD4DiIwAI7xMYh/EUygT2gphsZN8EYGyG4tGEcFPAwAFiAWO6jHpIoAhGIJZzLtajIITsYSD4MVenCARAAAHCJCIgICRmcIfNL9MorcsIwXCWr8F0IKlIIRykL75G4A0uIJyKD4/PIYEaIBlGMPNwAIA0IFvzDs24QXJAI+TsbWdOQD/HICYi4AIB2iGUssT9LOtSiQ5MDrCBZg9LLCEjWo4biMAHAApXoCwf1mRBliDA9iAhzyXc4CMqtFDlaQTgcGCAcABV4CCL0gFEiABTcmCRiAAeCS5RNO6lOOGFKMPuGkZQ+KouBGAD4QAA9Czq8AKqQiAI8vJc0mXs1ASJTooOLCEDsiCVPiCL4CBSyABKNCUFXAA6KDCPxEKICQxhQKjq9ACv0qDKcCT6OgoOFDHtWuVldiK06CBPHMAcjPLxmCTY5DIXgI6szEEAFgBKECFS2AA0mQAErCIvDyAvluKZbiQ8QPCpmiNuukVEdwMgPwSZHixAggiXKIB3/xNGuiE/3GzzO0hAwDwnjUYH4/btgPwAeJJgRDgAR7QANOsCKa0kABbBgmwBOSLPTb8k4hqDcLUpC/hhqGRvwEYgBLcTVAAJMkEThSABIwjTgvKBchIAEIyGwnAAeJhAB5omBQwTRKoiCdYAapRrnxBUKiEynp0tk/iOlnhBmTgjfmTAN08hmJSCeAUFlerBPrkjnNDzp1QESZaAVsQTQagzk0ozRGoiBXwiN4Byat7zS+yJn1MUOWyBPSc0AFBtQPgIzyTAd/cClebjQ+Vte4JgCTyvCswAdAsAQugy9NkgBYdULx4giJYtmwrvH38TthbuTXMF0PQryuoUAtVrAI4Bj6ChP8NbTyynLAj3YJzWAQCkMjSiQIAKIIWKIEvMAIjgIEBHYGkdBqNcIW83MvfqbfAAkIUg5v0UJSqwp9u+rQ0fR55ajzgHBeQidNFGhnV0htVaBA/9VMYQAVTnZDlaAEV2I2QoDJ6Y9DBEzbO8KgLUIVFcBaqQjVeUIDnQQE/wlQ/IksHcEhOvYEvfAAFaAYH2AAGgIEvOAW5/FMLsIBU2BJUsAtX8AhCZK5ZBcz0gjLcGgleaYYLGIRluQAIQLVKWLsCUC0AFNJg+c1OCAAFMFJO3QI9AALwMoBlbQEYGFUYcAE8GthTVVUc8BLj+iurc0M3HDzXAkUIqI3cwVV21Sz/6lg/l2o8GSimsrzXmAibXCCAIkgBDUiBIzBZ0uyCpMQjB2mBF32j5WKuobDAXRs/9uGGK4hYc20WdAWQ3fyOBDuM6vpNpKsA0/LYLeAeAMABHDoBHmCc0iSBLdGIAm0EE+idm0XGv1K5H7TEfMFZnTXXr+hZsKCch0sGqUCAANBYedozz/FYfQUADMChHGKckmWAS6ALIcBLH9BL1zo8wHI0L1W0DEiWZdmAsQULdCWAZggPCIQKNn1PtTUAnERakG1CHAoBzQ3QAc2LTDHUvr2xXvMrRaNAGlU0JyiAZVmWxI2BC6ghCxkwCFxbBPhVyTQAOL1XcTDOJlwLpWkY/yrtIbvIlAJ90ejqVgsMwsFVL0OgzNW91dd1XWXrCydgBGuaJ+wKrVeLNU7lnjZRug7IXA0YgUvIiKfh2w4YAOVqNF9rNJFbUG1oXtxZBOiV3lMCH+pY28PwTe0lgMq91wuqAJmT2w4oEJKl0hHooRFQgeAwgTRYX1eN4FeFPW4QABOgjUEAAvpdhD2wX4QRAUtgwSHCLjYVUj+iXKQFAgCQyCXghd5tWs4dgRQNAQ74lAshr5gF3AlWLxDDAgJQhdo4B1ulX+mFgLGQQhFWtY4R0pXoWAC2uYAUgcQg4AIGUMah4ZV6YOPiKgmGtxlVKB+mjXM4hyQg4iIeEMrJgP9SecFGGqLsggQF8FCPfQxekAApCsaEAYC1oBSl4YAJ8IAB6DvOGGTAlUoSA0lLXIbZGIQxLuMyLmJGuTl6NQAyoNNjULVgHc57peNXsYQ5YywAkIADmKOv4gIPwIBAVq5s7NbD0+EvXiU0AOIkSAIgeGSv0I2yaIYKeDUCAAteUDXJ7AQDqMw45WQ4+cC+Sc/nwgAg0uIcZuWFtcCtq9miIlc0WIRZpuVFkF4BqdM4yI6+4QU3Ds4je4FNhowKKAecGBxIGZsX2rErc9UKpLJ5o+d6LjFCUJRsTgIyRsDX7WbIaE96XVMhfak9M2dOpWOfAo8R/RKHkxUcjhv2ocL/wmu0KkterSMqQoi8bG5kf/5nsUCYxMAO7JCp30SAeu2zYl5hTdsJuzIbzeivKptpvxIpwQ1CLIubeEwGCBjjRiZj1w0QgL5kJXZjP/IQ3D3nOEiGKxgbWbmMkVrJHPa99b0XqVS0Q25YPREBCACCc6gCn/7o1w3psbjkIeoYyTxqUOBe+gQvXmgzJygbg8KMwNixrPVA0X25ebToesPZCzgHcRjjKhAHBEzcGpJGyJCpBDJqGRgXAiDWIy2RZigIFjiZ0ZFrj4vojuLKK8ATvU6PmuZWCWyZZbiCCwhscRCHwS7sf8blsfjKw3g1D2lsTSVm+kQtiRRIDQKP8FhBOYNiLanbjF5iLa7SAuN2veM2LtfjhuNmbgHgBTRQ7SqYbrAmQDQYW1QL6bIYxpE2lcR4AAM4WusLCAAh+QQJCABQACweABcAdgCrAAAI/wChCBxIsKDBgwgRgmtCqQlDUQ0TSpxIsaLFixgRUhLFcSMdOrPoUGoYMaPJkyhTFmwi6iNHkLJkIZE1i2bMkipz6twp8CVNkEhCjcnBJwdRPkjHGGlphBLPp1ApUgI5NFQoo3xqaN26Y0eNHXxCxRTZJKrZs1NnDTVq1GuQIFrh9qjRoy7bmXTKnt2bU5qoWUGN0kQypmuNCYhrwOXAmEOIEDuMjlEija9lk8xcrMU6pnMOw4gnHJ7AwZOnxxx68EC64wizy7ArRmDAx6tW27a1ekLcoQOXCb8bq+bBo+4IG7GTH5TDDAZRxW+je+ASpAeHGlw8GDPmYXqN1N8fW/8PMUO5+YFySlEyojZuEODd3x/uvr07F62JU1s/8aTyefN+AcZHEN150IF2xnBBHRfc1cddaMAl5gkHJ5T3n3KUyPJcEAzStx139Gk3nQcQZjddfi1cqBwdhGVFoIcfKigiid1BOEFvBorGQQlyqBgbHTK5OJ0xvYGIWHYdhPZdY7t1QORvJzADjo+XNQEkEjkoJmOB9ol2wmMaPDGCLaiUqQIHN/YmmgVWUGmZlUGNwUddh5lWgyffnaDCCJKUYIEFvkTgSym+oHJmmr9J0qObe1kp0xhHpKCBBgwwMMIIGqjwRJ911BHBp5+CAAIzvrSwAm+IMYAco2exJMtkLrj/YAuZZJaZSiozMONpBF9EwAwzojITQQlPnABhCCCwapY0pRjRmRIwzArDtNP+6UuggoIKrKggDCuJBmgitsJrykIljRJDQTutLdWiAqgFJVybbajcilqHJCqcsNsE45b7VD3SHEGcrKhMW6a1f1o776/1jlqCCivsW6G/TzHDQA8pKFErKtLCkDCg18q7bb0RWMDACeFOTPFOEYTQQwgE2xKrrB5b62fI9NZbh8krlObJChaunFPLjr0y66yxsuvxtQgHOnKwdRDbMwc+rFCC0DpZzEMIDMgq88wFM50wttz+ava9+k6YBdY6gYBKCDxo4PXMsVbriwXuWlDKp2ab/x1BHamogCcHQbONEnMapODCKyS8UmmlYP9Z5sF/3vypL52OwNgKyRqukhy2UMqABiGgXBqFRzAAA8ejkx7CpHuikoqfdWjOgQqLeo4SOCa7wEDpFDI2oWOqo0LC6GCOMLns8Y6A8tW6pwSO22WK3rrrXFvwxRd4a3DCl0+kYsHOUUvyfPSf30oCCaSHS2EIKTCgva8P56unCn3+fe8KJ0iCfkpyEJQtfvc9xmQqcQxAhdOidqsSlKAOv/IV4FSgwFL8zyT1sIIcpFEmEoyAASoI4RNUUCkFBqoOM3igr/r2qxJIwgLAuiBGrDCqDeJtVgywxQjEtD4SwMBpuvpTp/9Y2Ck/RWBVMqyINIxQig0Walbru9SYGPfDFYLgbhZYYQQ7VSgYJtEiNigFHaQhjS9wzBaNe9wIGKdALYZsgX8L2Z/888WJgOALdChFGXHYQ8YdjwR/0hYEtai/OmDLF3Sso0SYMQsm0kFW63uFJBnQQxh8YW++AhWovoA5eflKkRUBAXvU44JIvmJxlQrBEVwQrVQEKovCEtQJRdY5UErEBl+YxSWjhUZJOi4Fjlnl+kCmyWwZ8oEgaJMtJ2KDP4HAAlCU5PFSkILU/RBzsiwmF7OIxGUmxAozSMUdj5ZGxtUKlhHMJqiulUhv3lISICgFFG0hyVKSSWGadJommZH/O3dOxBo2cJspfUkCd4lvnZ7cog366U9mpsKUlXJcQScnvlS4y5goXCgUrCCPejRUIuBcY6WAuTX4lbBmB7tWCWYwAxCAYwhU0IMVZmqFQ9j0owSxgSQ+6LhNPI6VxBTWxxw4gzqAQwdDgOkNlgoGMEjhEDgViA1S8UEG+LKeHuPkIR3I1ZaCowUtUMUGNoAGCuhAHDeAalShUDvHXdWqSgMU9+BVggaWgJ8tyMIGVCFWCqhiEFRQZlSn6tZJmnNab6SrXesgh7zy9bGD0IEU5LFWKFijBMfrGj1JYAtrcc8XDrxVnyzgShBkwQ1o2OtjxaEHyq7VBso75VXZJVeV/96qgQljxhOKMFbVioMJHK0sbCcZUTbm7W51tStpHZgF3vb2r0zQgzPWagXYbiJ+16NkQW/LXT/5KRWSWAFvU8vXs+rBo1HVAwgkwQBqSipxksLuCEggCe4mDLzNRUNqxzoIcVgBvTilIXtTUNLHlO4E1AxTfW8LMguElwIUICtf+/vftcrBbb9MAfxQ45hMLZir8YpaC4pQBArsdwP9lYIUuulNGwiBjKh4RaSo+RgNfylTspvd+DxVPhJDWL97RSoFspAFcQihxfhSjy2OwOT21rh0r0vgreAFsrtJwscm5i9SHYABE3SgDT7IQgugl0Qb2OFMMJBne1PnXg0nWP8DZKqoJ11YYhMD+a/iIAAADrBnAni5aitowZGjVw892GEFPpiACnwhiSf4dMYauC6NU7Bd8TU4FbvVL4RNXF49G4AXS1jCAQ6AgS7joA2NIHLhKGYFa7TAB73pQAhKEbiRthm+1DSa7Kx1txGIV78QCPYF0KAKIOQCAAb4NC+WPWoDAAAApTYBDlawAlbbYAZPgLUJvHyCLxBrUkyG9Ibjt92xGeoJK2CCOIhN7Mgu4tgGOMYxli3qJfAi2QbgM7Q74IMiCIEKjAKnqbSNgWf7AF7fStwmVLCJSSVuUsb92AhUMOJBDEIVjmDCC8Bwgwt4et68mDfI6R3qA/Di2V7/LkIWnqCiaxeLNwUfNQA6IAlrWOMJk2KATx0+KZ9yNsfd00ALxCEOR+xhD22AAIQ/Lu+QgzzUoQa1qJedbACYoA1rO4+ZT5UmDBxAAhIYtQlaYA0rUCELJPT56BLs83uiYnRPmIEefqCHJFwAAgUggLOTLfVljxzq9Da504+B8kYox+We6I0JSn2AAUhgCY4HwAqoYAMrDCEL8z3epRquAV/WqnV2kAInOKEHcVRBEeKAALznHXVeKMD1r/e7vOM9+GMkmwAUiI1OT9UBxoP98UuQwAAGAIA2hN4KUhCCmKSIxsxWqqDsy9QL9DB6PSyVCIpQRS4ewH2pL6EC4Je9/7zHH+/xx6HqBNCBZaxhh5ebYM/CH77jhU//9EvBCpxwtZh8Squq+tHhZPcD1acI2OcIMfBsD/Bp4Pd9C1h74/eAycZ9hAcBe2EDJdACxtJ7jSd/HCgBIjB8EgAAqjB9o3cDTPAETyBl4mM8x+NwcScFAkh6VXB6QEAGAMB9BgAKCgB+CxhqCvCAtgeECZiAAFAAg2AWu+cDsFZw8ceBjjcALBCFLCABFDAEYOAMnPADNyAOJARIkpNGsCMJTzV6pLdUN6AIMbB9CaiDFRBqCaAAcBiEEihv3DeEdfgABECBT+FyvPd+G8iBUsgCbDCIbMACAwABTJBWWPgDRNACKv9gNH+SCtcTJjMAg2SoB2BABJl4gDh4DHDYhuFHh0Foe3f4AMdgitxXhDzRauHlAzjwfnv2dZAXhfJniGmgC4R4iOKgCGBAhj/wAmCVNwMEO09ghdTnixwHBopggzgICp2wg9AICkA4exF4hwZQhw7ABDohBXaQBfrSAYv3dWAXfMIXhWnAArqQjpbgBFGQDEuABkzAi2AQg1oYTuCFcyL0b/NIhqSXiWeohmsICgEwkAHwg9J4DNIICjo4fnNoe7eHBiphA1RgKk3ih8EHdSLggVHAApagjuvoBE7AAgewARp3A2Awd6P3A1IwA43mcBRXiTGIjCapCADJfQo5kHD/eJAIqZAKyZAPoIMH+QAAsAEpkXw9cyMFBwBgJwIiUAG8wIPJEAW6YAlUiQzCgAxOYAlsIAHwuHEnGZOkNwQjNClP8AI3gJL8yAmZKAVVAJDypoMBkAA46Yw6qZPjpwAFSYcGkHsmYQOuloHv93tQF34VkAAJkA2HmZVTeZXI0JFUGI+a+JX8aH0t8AQtMAQmeQhpSXcqKQU0WYc7KZAEGQA8+ZM52JMI6Yl4KY0JWAAmMQSmciN+CIIVIAE8eJvJkAHtGAUgmZWNKQy6wAIOoAOKYJJNNYYpaX0vsJxNpZn82Jx6IAVMcGw2+ZMFOZqgcJqmWJd4eZuz5wBHiBFF/9AG4Oh18ccGyQB+yZAA4AeH7JkBaZAB8ikMjGkJwkCVB6AKQxCZeqAHh+AMPwAGL6AITDAERLeLmuifdFcFTqVi4nBsO2kAncCTAeCJeilvCqCQcLihbxgH40cAioARVRAD4Uh/IhCFTCkC6ymXeFkIySAMUSACU0mVTkCfwuAEyMACiGicKnaGF/dYf6UDYrUOSbcIg3ABBWCFVCAFxbB9O9kJpAmX2WmXnsiTOqgAhcCicSCNBBCeFlEMBVBww8eUCRCVaRAFaLqicmmYupkMbOAEGSAMAiAMWFCnwJmNS4V6G5B3z0YAfuoABRCoDmACgCqoDoBi4jAEbrB9PP85oaQJpVNqpRMKpVEKCaNZoYSnChhhbEo5pskgAufIju1omGtaAfGZDFHJm1Q5BVgwBffpBBJQAMEmq4iqAxdnYpz2W2bZVHq6AWZFBe/2k1ZKl8P6pJ0woQrZCXKpkG0ojQDAlxVBBWhwbOWIptaaDVGQAckwkFdaplGJqi9alXQqDFNQroLIArinAy9ABey6VGZphjdABMupCBeHpIBKAQ6wncOKrMfKrxJ6rAeprAkACiwqjXt5EeJwgKMmASwQBW8qqu2YDIUQAJ1gndmwnqi6ANUgAAJQruQqAHXaqkzJZ4A6q4F6sgXgAH6qZ1InAQ7wshj6qMjqjMc6kP3/6owBYKkEmaUJwLOkaQAFIAUW4QY2uIHWmgYd+aZRkA3ZMLE8iZdvGJfZwAhTkK3yOQUciwXrKAIK4GwEgLJgWwAXMLYpq2dFCAEOEJqNOqmj+Yz8arOkmaWoyrNd6wAhWhGOcGyQ54HJgLTruI7Z2rEV0LWnSaEB8AEuiqryCbJYgAztSACqoAMa11RNZZyUKwUCqm74qnQFkINQOqmSeqlP27YFiao9S5rHQADaiLe5YADfJwLymQHIMLuWYJU2GgWDK5AKULMBEAYL4K3ZkAFT0A0CcAaP8AjJMJRnxQQaN69MMIMHKg6qgAbrkHcQgKTch5cU+wAAG5eGSZCf/0upO1sIF6utg0t44mAROtC6S8CUOFq79WmfdOoES5ChyDqQC7AAiOutH1CuAkANj8AIHxAABmC2K+unz3aDyHYAS2CLByC2BSCs/cq7cjmQPnupBJkNsBu8WZqhBqCpFdGkAAB5uuAEM9qYH5kG5DoFg1u4A/kBMJyePdu/rArAMPyGBFCosjq2Y7sIPoykZftsF0ABEYyQk2qd3xuXFwy+BdmzTCuf6/mDB1sRnNq+WUmVHduY7FijrIq71/iTygrDH2CY6/kBwkunUyDAXduV7NqgmPvGVPAC6nakDmBiRWylYCyaLZrEOEmQYVAI5CsAjFABAUB1rlkR7zbCEv9AlZbQqq5KriDJqliQAV1rk1BaCB+QDPsLw91QrtSABYI8sAXwW8yrbuoWvRfnq0hKAOuABp1rxBWbrKI5kGHQs6Q6mgngux8AslOQpU4JtENLrX5rlXWKlUorvKBcAaBQh6IZBh9QDTH8Ad0wzVibxjCsAMiWwNrMZ+LogaAaq64cb6V5k7g8kLdMmgiAAL2bvxubBmnQlLbXpRWxB8c2AH5rn3XKyIHbAP+bDRlqky/MCAI90NXQDQ3wCGkswOtpAIA6xCbmw4uABncnqGZbAK6srzRLs+VMqhUcBgGAAPk7tQKQBoXpwZBbERewZ/ZclcSMwuuYAQdNDSycoc7/iAIIEAYF3QBT0ADdMNAC/QjTnJ6jbJZtLAXReQMvMATMKw6DsLmuPH4Z/QAo4Md+XMHqvAAf7bsbKwBNW8G2dwEVcYAkfJ+MjMJsMJVOwAj/ewZRQJo/adM4bdBnINAfIMDVINDdsL+QG70H6gipLFZogHd5GM5RPcFQqs60jNjem8sLEAbE2wCFUA2FgKxTPBEF0Klp4ART8Juz27hXaQkC8AjKoAyMsK1gfNPJUA13Pc2M0A0F7dPQnAzOps0LvLChJgJv+sBE7LkZXdOXGgY3DaWGWb5qfQYNIMBZaqk/eMgToWftC79XiQX0iQWfrLWtSg3KQA24W9MIkMt1/53Trq3a0NzaPV0IDB2oPbwIR3eyKgsA9yarBJDHyTqpnYAAKADXwJ3Ovpu/hUCnn1za1VDB0gieFOHcIgCSs2uVjFun1f2/1EANTjC4nWDTz8wIqt3TOj3Nrl3XmZwAXaoIu9pU2FfKTL2nDgABFy2sCUkDMoDY6hwGvgvcA4kAkp0NDi4AKjqxkGCpJ0eUzd2pi3mj/v3gDx6yRA6jhAzX333XjPAIxavhdB3gBoAGOnBWROcIQArYeHfiRHyH8W3EMsC7wL0AO57ONx0GjFDkabCef4yTCnAA0IoQOqBnwjejTgCyRJ7nrUrdDx7hoADXTC4APS3oUB7ejd0JVf+XwFA3ALcdqkWIvQlIAGDWAQCwpThbCGSOABNbCPu9APzMseuZAU1rzm2YpBKhCnR+z/a54Ay+DCHL54wgl/UN0qvd0xsu3g0g3mGggwDwtSn7ssCOwEsQBUVIAfGdnQ4AaD6gdzeZy7SM041dDZ4uyKLOtG0elwqwBPKcEG6gd/a8mLPL6nye5w9+BgP75yiA089cDTx94eKt2vkLCgCABom6nKVM4oPgyrJ60bZnAj4QAiG0ApQeB1g6kJYaBk3Lzq2N58KgrUmskASQvgmR0gYwfOrY2dLN4NRACMtA5KOtBh5dszft7uw+zbju2jAOtKpAdEL6o49FAXgnq/j/Gm+k1gEc4HAngAN695SGSb5TK+3sTuQCUA3Z8LsVLAPyLvEIcQGtKwFTWcySnOfLwPHjPtpnkN/prLGq3QANYNwGreHinckioG+yGHwM7M1R8LVoawCvN3MTcAKwI16N0AYvu2fgJ9L/uwx6n8bSDsiFgABI/wAgvPRNrwvIIN3RTe7UoPdVP9pYTbE2vfVcP9fTnOsFLe1hkJ76trIvi8BsLwKP3rm3l+wI9nwjAFZE1lw4sGdpkA0PrvcQngHVEAaQgOmB/wA+jhDvZgASMMxGrviKP9rdQMDcSwP5y9Nfz/WurfWNTcAQELlER+IlfgEvWwBE3OsOgGorkCmx/5MKdvD9diAJkjBiBPB1GYAFen+jom7LFLvMD8DcB/Fux7DIGP/q4774n/zgo00K5g4QAUDJQLCgWrcGCBOe6datWrUFEREoKEBhgypVgzBi3HABQgEHBS6AbOOjyAoNKlQ8GYFKkqRUMUvElJTFgQRhy5ZhESYsW7ZCASB1AgXqwQM0UJQuZeomFy+cyJBhwTKVKhZqWZURooZVKyll1RB0QoEAwUOGDdQ+VNsAYhgEARQoWHIAwIEDSyQckCAiiggAFSG0aXQSZcqVT560eBnTcYsVJgYg6yo1A1CgRUEZAMDUs1KnBiRYsiTsKjLTWakqI0UqKzVlsQmdqWAABf+NiGrPqFGrEGLEBWESJLMLgMBxAgDuLoniJDAakD58nKAeQoMGxYufSEKFiqYtFRMOWJrqU8DlzESPOfjseVEuAyKckMci4CpWqllbK3sNuzWjABAIw6AGziiwt4ci+i2MMAwoYINBdBBnQnE0ogCkkChIzoTpTgjBQxVGaGFExl7yLhVUwjtAF2GQOU8AoBIA5RiiDLigPabeE40006YQQIAp8OuKGlII4e+12Eh5BK6C0HrkkTOiTEgtgwwSzgEKLLpoow0+ciBDBwAwYQIOqPMQuxJhcsyxETiQTBcnBHgIqACI6oQzCnBcSsMdyUNtCmp+fMQr1rZwDbYkjWz/IAEBFSxwNzWiPOOhgx56ZAon0tB0gCU6rSANXXQBAMsCOuiAzDJPuG6lNNdMRRISNBBvACeyqYaRQgqpoAIF5AJgAz2VuiA5WkmTaoogu8JKmWVI2cJIRBNV4wMmq3n0DK12k7ShKAUozjjl8FqigigCu7CkVE9YYYXESJSEMcckGUGFE0yQII1sMhAG114rWIIXAPIM9gLlBoCzJ2GCvEqrQg2NTQ3WCDG0G4kILFANiB9WRg1qOKYmGQgglFAHHQbZgAIIQqqoJDLP1CCEld59d8SXYJLkCVntTeNHAXDllVcFjgFgkYGJHYAFS5xI2L77mt3i6WX6a1gNRhYo/2gBtxrIOOPYulaSgAIgoACNjdDwsoCKHMCh5Q81YFcxmWuOF7IJMBjAPmqWgbEQW3/KZq8C9BwWgHvJE6Y006wiUidCCImaYWcJIcUtswx6COMoN44tWmXOyCCDCvDCy68Myk371DJDUF31mOWOyY5Xn1hhAgBo/WkOKakSwDRh0hiAAIE9G1wCJ/RVmKfU8m7t6S2i9trZLR6p2lGtu7aetf2mMCC55JS7a9fAhsXAgwk8Sd26mN1t4THZ6+4rqAQKMehHYfTV14m9khKegAPSQM20+qCGKowr0hbYsQX+sAZ7T1PGI36DtShB7AzXUyA1lnCBQUSoZBoxG9rEBv+ANByAfOeD2Qhs9hJ43Yxe7suVUOKSgHz15Eef6x0BVOEZN9xFArpAnBPmk7xmFYkdB3TN9aCnDEYwaAHdgBKiOOe1DBAgZFs6mZfURgEAmCYN42ObdVriqlTYggEq8EQHAMCLXgUgInyrH/3sk4Z7LUF/S1mEDn1YvPlIZVmtaVyRwAKbaPERLBQzCGy4RsHssaAuolvCzkQVNgAIYBmEwMIAMMCFGqQuRN1ZEyoYoAEfYOAAFQhAAga0gFxlY2lME4AIQhc8YekQTknzIVZ0wqwkRa6Iz1PG0ybXgIhA6olgsZ4w8OK95VRABGCDAADy9jTHDcAYXCifJ1RFAk7/oogBIegABtAYgFJCAhKoDEMG6hMo+wijAp3xzB50mAY2sCAKP5Eks4IIPV9aL2/MMiApeGMt3Rwyl/sJWEYymMEOehAAWFiGAYdICEtIAAMYmCaZrEMCMWrgBGY8Big60YkAyECckGAjFhhRjfNkw0GficFdBtCXZAwnA0gCy/KYh0AKNowUDsnaxYzYmtZUQCRa2kCXQII2LOZNYgd8aFUsOU1rWudlZQTAMUR6VRlkNQDZYESgChE/XtzoM+7Mi1+SkS8BGNFQEjMgTveTQFIMcQtS6g2kMgbUAi5jCn8RAadYwII4HcABzWQoIYZ4WLkuw5Lki+oJPFG3UVZg/6RZFWkA5CcAalyGIjhq6ShFIAK0Lst6yzuswxTotWexwzWU6kYENwZUyTkMMMfxngF4sQQCDBYAyJgkYktLCF2MLwiZ5MBjzTgAEfAtV+KkQWXDgNJsVIA9OHInAHZVgc/lJyvLSJJDHyo5YsqGtEZ6xFqsJalc9pEaDhBZBlXREbRBkrdx9e0Bm7dYak5gAt08wEuV+dUEhFSkkAhDITKQDAKItT1k3VU2MLtdiTWucd5lB3iB+jxnqTZSPT1v1yQMlgNUZGxoyBKGIFlYCle4SI7bIkWNYQwMSAC5hShwMloozqwigG8GmGN7WhofAE5ywo5bMVsPaOHRQk+upP8w0G8AqgbJ9bE11IgCrzrVKfkEppk5MaxvEUiNxu3Edy8dQBr8Ir9qfNWyOBbnVwMXLHc2kqFbkbBOGPestkpOyHgt4NOGCBYH5sYtd2UeV77lPbyAjWAiAHN92UENSzDUzjtBBhwrEFPlFjhXCBhpAnjRYx/XThf5iZqkGbdUuT6Lzn6MMPMO6xpgQkQtd40tKaIAgYxw6UJha2YFBKDk0i7jsyIwZ5gVqxwDKCB+2QjOgDidVQUQIFhKCdMA6MNQW046tYiN8ofBO+FXd84hucFWxKApALDFN75fgiSzq3GGpYJXGU4QAS8qIIy8RW0AxnEAAQxQAfnFpRCQqCz/KN6spyoUgAATxYBy7pWTqOmkpjddsS+/zVaHGoohlusG16AnuTM4gQUiWEJf/8pMAARlAWcQomkDNS5V2lkXB0DOGUMKibgIRS7SnnYW1vXzExS3AyYgXBrwLWEjhznKRZ6wn59GjSYDdDc6JYUCQgKBkYAkt5DEl6zj6rDtnicZ5tQJFkLoPV50gtOQKCWvVjptJgjhVSiSl2JUsAIf4IB/2XjmTZG+4iJDM9xRR8jUGxcbAkAog0XNEgSwDkJd2KoBvXz6a6L2o3xXJQ11+Wb8gqLM9UxbKUOoQx1SYQHUr+ldTyiCA46RjUm6Gs9/RzrGD6gMATyiIQfphiTx/7rMfnfvOFcHgCXSEIUMvPvrkgNkf2xJFWEU76sLsOxmAjMI0UNBCCWogy+87wsUnd4Cr2pBIwigAEn2NtXP6uOHSUtEakDJLRBprS7nTfJDM7N/xZO1Ggr9x0AxkN05g6ugn2SogAcggFyIAaLJPiiYge6zABiAAVQYARKAiZlIBTvIgjYAAPRrqPqCJmJqOlT7I4Y4JYPgmilQNDTYADTIOpEggCXIADnJjT5znMvjGQAKFKVxAgcBNQdkhtNDBVuwhe4ggQuUBNixAyFoPQMoBJZDLKfTMyGTsrZyDYdgECVSA6CKIrFBGQy5OgIgHjmBi5U7AwH4sKxwo/P4nP9kwC000AEHbI8SsAAitAUkREKXcAw7aIE2MABQmAMQlEKka6gCej/HwYKEgIiCYLnNobnu8R7i2xmTCg5O44wliD1V4w8giantwaA5xJE6sEMkfIVX0EPvgAk7kIQiAIA4gEJUSzW2kpg+27YKCxRG+ACzQACWm7JR+RKV8aBhIR5qmAJqMQsDcAAMSIPYOzIsoLmQWARxCEU9KT07tIVTNMLuSL1XyQIC4IVCSEMvYz+ka6uMO6Bl0D2ruY0G+LZk4AwCMAFgFENecIL4qxoBWScQYpw/YwEgpMbPsIIZQD1SNELHOJGYeIIwqQBBjMX1qzAJ8zOmusVuCINOoAH/3NCGCBMGzkA044Ck/kENYDKLQjA6FKuwZUiDgwPI9pADECDIbAIjm2mBUDoA2OuyEISmpbqpw9IruLiNBcirEBMbx1OZoiQc1BAAiWCQo6szLBABBWNJz5CDUvAFO4wXMBK/V4kMA8iGdnQ0uXrI0nooasBHGmiADNuCDOA3tTFKCBhDXZAKytnFMCiQZlmGM2AEoZLKgBzFIURImajDDBw/SVgBM2JIh1w/2wNLQpiC35g86NGreGIBCdgLEwBJCWABZNg4BMBIjLQWOamGneNLptCDGUARjMqmOnSMGchAx1CBw0xDh8Qz+wpLR+MKYIIgtlqGKMiLzLQEFmCm/+QYDcqghgW4jdu4GolAgU4AgKiUSioQgrrLQ5coAeuMiRk4zTVpARwAgCUQBnAjxFQDy8MiBN1ji3gLoQNgAap4pAIojhbBijNYx+QsCLOgAQQwAAggzaWgghm4GQvEJsewzuzUzsfoTgnQxPBkKkpSBvKUK2UYt3aUGGoYFQLQzJlTGUikj6wQCxQoC/zcRRnohAdYSdIUSJawQDVJhRLIzuvkxicwI12owpvKuIgCzwc9IIZ4NwnDAgDAgQ7orwOQR8ejuYWqCtigmM7sTM+kARSQAYPjT88QghYYgSLEQAJ1DAuYCVSolwPAgggLU9mjBhZoqBSrL/NkhCjcAv9qwABTuZcDwAEc+AgL5YninJT7bFIn/Siek1KlOE2aqRk7cM01YYC6GYAqdBwjsT2nSzHZO6BL6Qbo8VEcsBtLktN1eMt+O5xREze4wEgmJQvmBIAb8lMosIEZEIJVlITxc5UMbBMTWBEJozMxDUFHk8hbfIRm4YpRqR0W+MV1WIcvyaKX0oWscEwEkIHm0tM72U9TtQI9eAEhmFaamTsWTYUR2KhlTNTai8jyrE3ybB5dDbPA6De2RJuQIBzlYAFAwYKKRIDb0FMUeDtThQIweAFrWMUUgglUeAJtHYDC6taIzDhcPVNuywoKTTyMWIQLGAmxQZua2yGsKEMmbVL/FACFgKlXpbABVKXSlkDCTdAATzCG/gFT9uPWgTVHgg1X2eAKG3KECXEEIGhYj4iv7pkM3bHE+0TOTuAFEzVVa6BSJPykE5gAYzAYMC3E2ps9aHK1iSTPIooaGxKHKqiCCWnYF8y67inZ+mDEPM0qorAhjVUKPRiCFngCevEELoixUQMzgSXHiMQ4pwVXLxMyanhZqxUHR6DZhkXX7vnOrhCGamCSZFVWGuiExBtbpbCGFlihbnq42OtWuH3b9ZtbLzu8qaWQvb2AF/wIrQsXSsQCsRBRUIUEUlVcKIjWLJiAWMVZrDC2lNVJyQ1LngTLZ8GCzI3ZLEEDhvXcmjsA/yfAimzAObNQVk4LABtBXaUAAn9z3Wyzs3KESMmtUZ6USO9qHh9VBQmZEB24AItQhc71W5fCrOHFOebCDeR1VuUlg9e7j3yD3oFdWglTzKaz3jH9FQoRh5mlgEVQhUVYhD1Qt+QAXtQohIrFua86hp/V2PdQAADCj6tA2bfNs6WdSNl9Fmo4gA3I30Fo2IxIgkXI2gKIge4pnGQQsBzLKv1UXqV4j2PQl6lQjQGC3yqE3zC9YZVtuodaBgnYgO3V2z24AFVwBJkFX49ImYWrHUsQgTq5KoKD0gJQBBbeg1x4PfIotYWZtElTulMTWG81R7kiBAmggEGIWSAI4oyQ2f8kqCIvGWBNqQCPoixxOgYCcAQWjoEqdgIBUhZS02I/PrXJxTOdRNMxptqYDeJFGASZBQJVoICaVTiX2jw7cWJQIIBpVF48VgD/0aMsft4/7uJyDOS5JYQ0uABHUIRDvoBEllmZdWTHg2QZi4IEIIo4xjEDKFXUpWJeSAP64GRTMzUtrjNQnt0QTAMIEAdFsNozVmUiJmIgILG+DRMZcyUF0IxOECfkfU6NxeNjEAGj0yM+ft/aq2Gl8+Kd9DKVLGO9TQJEBgJWdoRFaLyUCRNPgeNjoBEoDYBjuAAiQN0q4OZGIg+lmYri3GJu5VbZrWCmYj9hcIAhJmJ2JptmXuRIrNVa7+yUGbnnoriTArjksXUEPLath0OYH4m4M/BjHJw0ZknpP4ZdnVBJd4bZM04CdUZmq32vouqgAbatozCAozCKAqgClgwIACH5BAkIAE8ALCUAGwB1AKcAAAj/AJ8IHEiwoMGDCAc2WbiQEiVRlJqAS0ixosWLGDNqJNhQFERRdEJCjChqo8mTKFMabOKxJZ1Pn8aEQkIzJhI6KnPq3MmR0suQn5Dk2EG0aNEcRhw6bMKzqVOKDz+FyhFqKtEaNYzuwLojxxiYI5+KFevzUw4kQYVeDTKB644eWHvwoAoz6cSxeFNKKxV0KhIjQYdu7THB04QJPXpwWHyiR4gcXpWUkpO38kYYRyBr1nwV6+HPNRSfaCxXMA9fdy2rTigHhuCiWGPD/dzBA5fbijnkDsHh7Qlmq4MflBNVcBC2Hjwc98zFg7HkXELXaOuY9+J2NoRrF7iX79DjE5Ir/wfPpYMxE7U9fL7ddvHiFTO2a5dmRG2NIM3F2wbfwbz49cl95slirWQnn2rg8GUVW8jpd1ty/fX32WH5cfFZDyfYcSCCZX0XhG0OPhihhJ4Ydlh/HtRW2AmSbGgZOJQA5mF5Dk5YmA8cnLDCCidwYFiE6k2gAmUu5tUEJTAJNt2EXAyoYzvtQAEFKqlYUAIqI2hwQngSToBdkXnBCJhaIZxQZpk6qgBFKvnkE0EpEcTJTAT5oKICBxNEyEUI0oCJVy0swYSEEi6QQCUqUq5ZQptxRsDMo49GYAEUKxhWHhcngODnWHJII8onRhgBgy22oEJlCVa6mY8vrEYgzaMgRP9qgZZ5HnZCPpuKtReooppqaiolBFvCF75E4IubzICgrLJzpjJCpR3YimuuTvH1FwwwWOCrsMFaYAGrxTq6bKz5lPAsnv1xUAK1Tn2hxBi9+vqrsN/6YkGjyY5LpyQ8CtgCu035coQSdBhhKqmlolJCld56Wyys4zKTjyR3+gswT6ik4AIlX6CCcMLCMvwwxMs2q0KPh/mg4cU6pXIEDBx/XCrD3qI68rixxlnCyYt54kN8LOdkgQtKODSqLS6QioqV3poabr7MRurLCIv14HOLQatkgy8bU+LC10krvbS2S7uJL6Rz+iLJCQNysMIoWatkRQSolEIfAxqEEIIGKjD/kLAtJDAwguC/WsComxaoUKIn/8adkjzMWCANJTBYVyIHeyuNdwo97q3BCIoaXkIrhnmysuMo2cDMXi50wQADKuQdgsao2GsLA3qH8MrSCzc8uo8nAI36STaAIMcXraeAZu4uSM6ML6jkPWAII1RpbLCt+KiCgcObZIUNcqDSBW+2rqBBCl3AUEopzJjLQAoatACFJCXEWW4Li6nADJHdaySHDTZAxSvOtzcVtOJ1LoDBF9iXj1SkYmnHctSc8mGBFphvaRFITf8sMg0rKOtKHiPBCFrRisG94l4RIFe95IS2iUHhXr6wBfc2SJFafO9/dEMFCQJXQhK8whYohJSx/8IlLnItzBeP8sUMaYgQDzKjeNKwgC1e0YVXjGAEOwTiF8Q1xG+x0H6r8laclshEg8zNF9KQBvRs0YWkWTFwWmwUuIgox1aJEQRWKCNF5AGCe0XRh1V8hQ9f8cMtOmqIrWoUndrkpi/ci4x6LIgVvsUMI7CRkITEGwNO6DBJJbJVrKoXq7aYx0gmxAr2YsYXSBXILhyBcxrYoQZqZy8igpKC4IqADUppyuFEjnVIw2QXUpACBpCgYcXqpCLtxShH8a+Xw3kT5UglzCqWComxep4YjWW/hQErH7uE5iklFkWPga1QCbvXshApx3xAoQUzGMUobHCIQ/zgEOI0yCFmYP+DEuxwk4QEnAWyJUFu5vJ5+WiBEF5ABSpIQQpguAEY9JBPgljhEDbIxwhe8boq7hBb2SqWvURZrHzMIAtCIIYqVqoKHSiCCD+oqCRBkIpNvg9+s9PA6xgQQp6K0kpZyIIqNqAKNFAADYNQBC9lKhAbOIsBw5zd7DYJxIZBoVQ1C1ZQicpSVQziBbVgakGYAYURdMF1O7VFSBcJQm6lQgVu2ABXVUEMHYBVrASxgSRMmElrZiurDnRgsFLRCrkOlajEKIMUworXgcwAoML84V+55U1glaAFcs0sXRW7VLyOoqw+BCgJbMGwkFU2WC3IwgbQMFRiDKIMVGBsYwXirEH/BpRKNQusbrG3gaPOVbGyne0MLABIjmLVd7oFFlBXq9mWSkEesx2IJK7KUZ0G1AK6bYEkLLuwFfSWAhTgKmejK5AW9O12xCym32wxvxa0wA6WBWoRwIuG+joXuuSVxPmO4Drl5Y5vJHxvt6y0giLU17fO7axY5VBT/yrPPZgLgQoEjCphFfio9d2Aa8GAz9mCQw4W4Kh/c5cj+I0gWDNYFar45QbwIngQN5DCbKnQqRAf4ab+HU3mTvUtb0miCHGlwAXAu9Iy6KAMLxCrFCRht1G58pXEzN2OUUXBVdmhCEKFwAUgAAE0aNgBbaBAEYhBjDwIAW6RtIIUzItGVLTu/31HgLLyUrCJqjaMkVloQRm8ygQmOHQQDgCAoDFgAhw0AsuuwNoGrTADC55Acqh4XQrkHOW97Q63hmugCi4c3s1CAAAGMMAxeHGAAwCA0A5oRFCHkAfUyUMKeWjFChZjgVJE+n04fp/eUvBDKlmWkc8qAg5w4AATCDrUoh71EkpdagAQoNA+wPJCL/a/y67AB5+BQRT7ptP0auDb8Nukr4Ol4hFsOrHEoMCxjyFqBRzD3crmRahNjWocqCILrtjUIaRA2GvnKUK2kEY+2hGCTbxuE99OuE5HK9hFNVADkpjBC27wAnHkggAPQPYxjgEKBShgCUsQwRIqwAuQN5vQOP9YgQ5cpOa39sgTHTCBCTAAgA60QxqNPsG38QZuvVnXUIItV5YkkYcXKGIci8hFxjUOio67++MVWAIvpg7yJQha0IV2w8qFIw9Gt2NLJzI2AEqNgSGNggpZSDjCEw4/gxuKx1AwYB7EIQ5FVCEGAFi6ATK+8XeDghdRr4DHefFxk5ec3iZoREtVY4NRWPBHMzf2ACTQ7BWAQAqHeEEW+mZwnn/b4D/ErrZUoAIhUOEFREj9IjCO7KZzHBQBiH3gBa+Aqdt+CaMWtQEAYII2qCIvHrRDK7ZkHgw0ewDIl8AAMDCBL0jhokLIwgF3qvDXGYq4CG/FKCAKhu4nIe+6d73/xxVQAcGPvPzw/jvJecHxje8eAA4Yglj2nQoL5mnmB0i+8vV/gA7M4PnOIAXFMH3GVF06ZUymwnOSMAp6EFE3cAN7AH6i1nTjV360N3Ljx3599261VwGgwG4AAAFOoWaN1i8xZ3zIl4IqiHwmkAoM6AycAAZlQEJYZCoi9DqCxHPwJAUN2H0QKIETWIEJMISCR3ge53of+IFTt4EGQAAbwBOMJgmyBnPGln8rmHwqaAItsH2HwAk/cAPSt1G+coMMsAnZ93+H0INgQAQRqHdNB3sVEABDSIRFqABvmIQb2He7J4I5cQijYAfncoJWuIJswAbIZ4jIBwArkAdUYE9e//gC04dVtmBuCVd6POiFekAEEYV3fHeHoJAAheAHflABCUCKtMeEr/eBG/gADqAS+/YCFjRrMQcAKViIA8ACuGiIuFgOhmiIFMAEEvUDnMAJehBrIzA2ZWVABrSFeiCMxDhRNxADBBBqD2AKbxh7CeAHIpAAdniEHeeJrtd3oIBsxHASF0UFseZvHUBz+zcAbFAOuCgCuGgJllAOvMgGLHAAqjAEmqgHw+iFebBd2jJCpGdA/9eMmKgHehCN07hxpvCQptAJAfABhRCHAWCHTWcA3wgKpvB6G6eK7seHGmEFo5AHrqCONHcAIOeOyMcC8AiPLOAEuwiPbKCP/Nh9zv/ohaMgBC1AiaTXAnnAgM74Az+gkC9QAA1pABAZkXJokQHQdNa4cRjpesmWhwZQAFuHEX+YWj7QCLNYaksgASIgjzD5jrw4k/bIAiIAAPv4At3nj//4A1RgXt82YXkwUXCJiQ91lKDmkNbYCaAgkXKYALEXe3b4bhKJh07HhASABhkhBa6QBV0pc4KmklWXjX6Aiy5pj+/oBPSIDMgQBVfAlkMwcTj5j154AzrQCnJ3Awj5j5n4AhXnABnXdE9pCgrQCQqAjaUYAIXAjR+4m0/5hu9GmBi5exSQEcXQBm3wlRIgAVcQnSIgin6wBk4QBU6QneUQBVGQAZ8ZmuUgAhf/wASmeZpxKYNASQXmOYx6AASq8AJloHQf2XSdIJiESZhPGXscaZu1d5i7WYpUCQAFkBGLUGy0KAFhCXLPKQIVMJ1+kAHYSY+WkJ1OgAwVSqFR4ABlMAQSBVHNWJQRdXpDUJoTlZMx6AhIhQag9obCGQASOYQXWZhQ+ZcBIHgdJ4d+UAgYeQwCihFEcAGVOXljOZYNqo1jKZoR6gTb6ZKWAJqWMAXIUA4AQAwc2n0RpQjiUFd1pQNcemSKUKJEqQdVcAFAym62WZ9oypu56aL1+ZCwZ5iwlwBrsAZ+YJwK0ISDcBGKgHcHsKBRMKQiIJrReQXciZ1RUA70aI/lgAwC/zAFT4oMEnABZdBnjnABBTBoJuAABdBpQ0UBEEABLnUDVbAIZAoAHKef9Rl7ulmYqNoJbhqnQrgGGSCKtAcKU3oR4kAGYwedV6CN0smd0ukH3JmdicqLngmaUwClUmoCBOBsn2pUEFAADkAABKCp0uoAmooGxOAIpHoBi1CbEpmqbMqqrTqcAWAO+OlxvkmnfqCf7HYBFgEGqiBoz3kFMEmo0SmKDDqED5qki4qsUIoFUNqkTnAFBEABg9BnfVYGRjYIg6ADTFCaL/BQUqAIKPqtGimu5OqiGwuYsFcIrCqRD7oGv8mN7AYBTFARQwCkAACdLGCW8Hid2LmvCpCNsv96rMiABQLQqFMgAFiADFA6BVFgdQRQAFymZfTlVUfGsH02BGUwCGiwCCuKAoWJAAFgtapasyULp3EIo4W5BnM4hO5mAA4gDhWRB3yqfCyADPU4oYUaBWsgeOU3hDebARWaAYwwB3nrs6A5q36wbIJGrVcXuM1KuM1aAGQ6geJqDqoqmL65AOjqmy56n/gZeyRbCGDrgeNIAFmJEMVQAMYHnZ5ZDkpaqBmQrCKgrnJYCHOQAR/wAXMwp9UwBz4rsFPACEPrAHz2UlVAd44gDo7gCEAABEkABKSqZUNWm+RKmEwZe79pDoyrqthIrqE4pxXpcez2hBThCGkrAYj6vZb/EKGMOrT0ubofsAazuwYfMLsNcAbUcAYCO7QEkFgTx4MPBQb2q5D2ewNMoAP1lXG5iQDR27ixB71zyLgDXJiEWQgLIKuXe5Hs5pgUUQxpu5lNWo/DCrRDq5FOlwDmsABz0A1gK6fs2w1T8LN+oADOVrRc5q2LwFp05bAM67DMZaqBiaapqrEJ8AEGLMD4WbkJ0MDoG7tzOI4DShFAgHe84L1mybbbGQUPOqG0l6oJUA3VsAALAIqFUAizewaN2qiM8LemtsLUKriDW5nwp2WmWrOEiQBp6sEF/AGQK8DmUA0lS7mwa8V2bMcX2YQpmxB3BwBLnJ1O6rZQHAUWmrpO/yeHdazHehzC1BDJAjAH3EkAXlUGiiCbsjkEvfu0xmupRitkAOBxQ1gIjCuYhcDDCIAAWLzFH8Cvc7i6H7wAjlyyPFoGFBGfY2evElqs3NmkWBAFtPefQWzFsQu7c9CzU3AGyZoBBptY5EkFMUax1AwGisAEeyZkofaJQ+jGVBzE0NvItLzFc8jGJGzMcwCyQ8gLAJCnCaEKudCyiNrL1/nEwDwFS9CNmMnFazAHczC7ycyzJzwFGbAEzUqt2KplGRbDXSVkECBqnTCE5uDNL2oOchzOV8zA1nvHpozFs1sNYBt78qa9CFEEDtCnVyChFWqhpJsBLo0FWAC26rrF/f+czMnqzwJwBu6brI0aBdwIaldXuFfXp83mANGqkYMZvan6wVyMxXVMy7M7qyULCVzcDQ0wB15MsoXJCyJ5EKt3ABXgmb3sndmZATiNBRlgoxN5vlit090Q0Dvbszs7BwnQmK+lCHiN10zQu58crUbLZUgduSiQw5L7wRMN1QuwvtUAvc/r0e0rALIKsnd6xAgBpChdob1soU7g0jlNDc5cAam6vibMs2fQADl92jpN1wCwCEgmUd1HsQtpdAvbWw8dmBxbn28qvQgACZDg0a1syjv8AQHg0TubAZhbCB13DASQZAiBdy17Bcd6wcjq0nMA0xCaALad2DytBtSgBqX/zczt689z8AEqDH9GO2TMtQiZxVUODdGDPdiumqYBAAnm0NuIDbnhHM5Y3ADUMMnHzY3sXI7NvavQzbYwDcw6y6g6G74JENqza9Xu+77gfQZv/dZg+wEVYGrvN9TPSXmCZrQFIGoR2QkoAN9oKsAC7NHVYNXd4NQTfbX77d2XC7KdwG64POApaI+g+bM73t+gmbMZkLoSaQ6sOwft277efdUh3A1vzQgVAAAXQAziUAV5jaWq4NAFkOWIGwMTOOLxzZH1SQOrzMpc/NETvcr4veLVDdm/GQAy8IEGkJwDnn9MutI7jgWSvOMC4Afl+7rJXNoNoAambeRM7s9gCwAb/4BkVKAHD9WAm6ywZbBaMQCu9WniaFriYu7RczrHq4yuhWDV1IDWWu3mb24A8DrnA2CP2SkAP56zkdzj1DAFhDnkILzMSO6+AiDhVm3FT160Q+ZlRfXrhnXlFMDlHCcD743DJY4CswzCSt4Ns/zB6Bvhk6zVkMCmvFAAf2wQzi0BLDChxNqkOYvnsC4AcSiRCDC7k9wAgX4GtNsAU2DVDWDFr5wAyLZ7BmCZlNdsfy3iyZ6mJI4CrEzLIezPVwy9WLy+Ed66fBx7MhAABv17B8Gnt6jSOIvnywDTeB7JKZyqhZABkxzC7L6z313a/2wOBhADQDDlVVAFe1Zffo2t/f+ulPG91A0u5qyMzkx+xfjt0Vg97wd/yhJpdRLP7btq54x658sQ6sAcyXNQp7GHzN2w4u1e2t2g01fNwwawCFXwgA9FcSMK6TogZCFuADj8orPeCWi+ABZ+8ljswZvevu5uxSDropCgm3Fe2bsMzHcO05H86njuvk/f4L7pz+zu3Trt1m499eQtoL/u0GR6AcB+5ZYK0QF/tdDLpgjv8wbf8/Qu3v9sxQMMmFep930q1n3v95Es17kuAGnNyOyr097991g/9Yv9m3d6dSUncvv+4Z6quCR+rpkfe2POym/N7i2OxQ2M05LM8yGNpqBA2QVxqbxQ4Ds+7hv/9zDtvmr/sOcSTfVnoAazT/vx3uLm0AkGAAGX7Agr1VtbpuWfWvYRSQNXK/Bn7qJjjsVMftU8DxDdGsxpoIYaNQFzupkrlCCAjE6dTMV4UtFixRgADFTI4AQZMo+WypUTgAULtZMHqRn0k8DlhzkC1Mw0KOBggwbdFixA0MkAGiYvwIBRNITJUSZlygyiQKGAAQOmUKDoNLUTAhQIsGrduWBgNbAMvVbrpmbZsjNzqi0w1xYSxAcUL1pcRMDAkgxRppRjAcBEBxMHBiBDmNImtQwtE/ipRpDamcdnuglssJZtAAUEClxAcwEChAIQmlJAs+ECBQgGQEVkTUPra62QEJgTqLPr/4LaDc6izFCtkDlIkB6aepBrrkUguQwo8BMligQTPk5wmOABwwCTKVXOydDQ3AeBZ8RPmSI+5+0FH6L4WXJgiYQBA66IaH8AAA6nqqtmhf06a9duFEJvp4K00OKgDD5gqxBIWCvuuIqSyOUBBQqJQgQTVgghhRSoM2Ewk1Si5sDEzNlpsgbEi6y2ycD6wBwDCthAlQ3QsLGpzwpwoID8DLjKnP60eggBAHHSaTavcDpLi2WwmMOcBNpaQDYaTDEOQkfIoHCJ+04IgYcjjuCBgw4AYOGjEFfSAosoXvxOIcjOwCknsMBiCwECVGHCKKSOEqcMHYjB0QBeQAmAP/+CxP9tDgFP9Aqy3ZxsaIHfgqvSAQifSI7QAzo4AUwlwuxwguuQMYmwg0gshEiYAjTvDDVy+kBBngIwhYAcQytA189QQ41QUGSwKgAi+1uArPCOBHAOapZpVtI1CimEWBo6AeWBRSC8AIADJMBgghC6gGHcLhgIwZMyy7HE1JSW0aIbNz8gSzx65ezGTp5MrOaD5py74t8r5APAAQgcWKICYacK8j/c6hSoKyOrucI+Ca7oTtp9EWgQlGMIIOa4jAAAoBENXBh3XFteYUADHz4s5yN2D6RmihflJUg8NWClU0ogzckstAs4szFo0Hh04Ao/AghgP6xoQMGUTlwj0s4GGu7/qpo1lsAABxw+rLgQOxnkOMaPL8oouhHGNcIIlFEhoRUVJgBggJdNdddAAeS1uRvIHqOmMsteCwAACgYpo8+klhLUqQNEcEhhq6hKeOq1uCJQoIm/9WSCMpfAeI1oI1KAFwIosEgHBxxYIRVUYHDBFhhat8ACVEZohYPArjC1WWoIIYQa23ALbybzduq5LQUG1nVXHR3QTDQICFgiyq2msqoqnoQfEKcFKjhAcx8awQEDXgpZI4M1sJZ2jYkhEOKJLApYQRJbbHn95Nl9sSCVVrJoBAMJWEI7BnqMgqaWIlgdRDJ3mo1WPrCGKLAgCvNZggjoMzDQAOAK6zEHVawH/7nsTSZ4EFvAFbzVgQlIpwiNcIABdGeqi53PCQeAwBOKkYUSoKJ19dMhDL7gC/2lQhKtWIED5ra7g6jhQJYRXnhSlBOd9GxpMYLAaWq0gRltADUFG4wT1sCTqmClKmFk2PbklIEBYACFHFiBCrKQhSLgQHpOQF8FptUcAjzhBUJABQP86EdUzC5/+5NEC1rRssE4K4mEUIMAmCjCJ1bGNm0xRwAIsAFHHM5PRwGUFqMHAMc97oNMYxiRsse9bmSgUxNYgQZaYTtDrmAFjZBeAiBhqABUgACDeEEWNBQCDTCABIFMhSD3lwooEBEHBxDgSWZCwCkgqzY6S9GRYAMKAv9ohnmpcx7BLqAjUEZhDVgZJaIIRCCcyOlYFRhZG1vxSii0wJD9K+IBrrAGO2bmCUwowgn8yQBUQEES+yuBEFNxUGSq4H+DSaIStaCGKajlXrl5YhTzpa81NIcv/7qgAy5gsHJgYQpf7MkHUWAiAOkkkrCagwQA0AEfhEAFKhhBMuVpSEO2QYMSqIABLvCEIRTBB57QgCQMageEzg6hyWyZBEKqEi0QQgv2Alw15gRFnmiFPzG6QAyqyBnSeKZgS7iCEwTghwVYDysmQsBkbnNVnAggAyw4gAkm4IkTaICmN22BHezQAlc0AgAS8GlFxLHC+ZVAnpJAagnyUVCEDnH/BR9al0ocOhMBQBFFRjqPVlFgSTSoYhA60CSgFlc0ACyhJWJUmCnvBbE5dWMNInCpGlPYyla0gLGSMGpBDVkEExRgEIZtRCOyYIdCLtax+difQA/aAhUsE4k0oQlVUZQzOVWNtQsYnciy+V0AEIBgBSCAyEgiICB9cCeW4ewceCGyv3SgESdwZyuci1SkzkCyjYCADirChEYU4abvbEEq8vFY1jk3FYYU7BWwgIxlGGRE0FQIiujV2UNpZV9Q4VYFl8AlghFAd7xDxhyySk4U0OCttUnAwNqAgxTSVwXvfCcU7uvXBa/AB0UoQ0WA0IY2tnHGqMgHM/IR2ci2osFY/4iwQQxkIINIJp3myUlb/AMKGamCRle0URVTV14AqEsAtkFxGReQ3UL4pbjSoa9eadwCG6cCvwtWgQ/cYJEN4GAFRZClCvpaAt/qFqFyji4ztTNhLWzhoeahzFqQdSjrdUJGWFQFMUYbqKaIlbxLQEZCqtHBqUjtRFfNmm05QF9ZujK3NzXqQZO7gizQxQSNuK1udWjjmhrU1a3AAQAskaq7RdULW3hMRCljm8plJStQ4gUv7BPe74bGiBWz22OOpNa2CiRnA+GSqfU64xrzlrdIdbU8W2EHi5zNuLrFNU2hgMyDWqAEduC1Bt11N3cRYguKnhllzvBp4/WHLMkTGf+33IPB8pLVJs46iU74I0m+0QQLV/DLGt38ylwjtLHzvuko6HIBN7iBGPNsRTDfDW9AF7TeV0C0gfbtBS/87iTmsUx6tYqAaigAAhsYBDFoZKMNQA8NoCnvUyNctWNZmCYEPOFdvTRTjKNi0IO+qRQsksmhuwHWqR6B1N9dAnnPOwu9ZvmTn+y7LRCiSSvhbL5ew5YFJGAzYm2Klk/TlF0V3SQGUcO9yLJ0tO97GchQoydOvSG9jkDxCi53bmdgkSRQAAA82oAv2zhMqafCsQWVhAoCU45l6NvsUdW32h/D2ZpftBpnyMB8RDAf7xLMAe5xApOjCuUow0qJatgCzPf/vW8tEL4DHODAhhhQU1bLWc7mbkU+6BKDAhRhA1r35Tu7rnkLIFgSJ8DAAQQQeqkyKfy9T7t4RNii453oDEvQ5q6M+DzniYysEHbW7qnrO5jnP//B/9apNaCBXGOsQfureXo8H1sEIAg5VXADX5opgMK+Y1KBzvm+fZOqs1Aifdu3KBOhrkCprpiDPFEKpfA50yANGnEKIyqHZlk6A/EdfdO//FM0S8AALpiA4gPAzBu0QqKxErAIRQCCJIiBC1CFYiiCfgKmrpM6HWIAUrEnLCi9qMq3RCM/mZEMt9qebjCAzyia0OiV0wAne7KEu3Eo30m0F4RBmJMqLDgAD7ir/+I7vhyMJ7iRpTywCCJwAzIggCEEAvFxOr3yo/8jFfnIgGXoPakqw0N8OUaCKCgCC7dKp75bg40SgWeTPQMQASfgHSYrwxZMu6jqPTQcti1okgEwhgmoAS/RgGESoiGCGx9YgTpMt/C6ACD4qA7ogDY0POJDl+uoLC0YNii8vd8btofSrGNxmILIGdIBmi7LEefJJvn7vgjrxEM8QzRMu2WwBDYMgsMLJlvQIdtRgRXwr4u4gGy6gCA0AADAAHbEAGMwhnYcgHU5CVD0RBeswHo8EM0CC4lKoAqAAMMRByb4E1WAgNIYhEFQBdQoLxbonYcyOxfEP1CMQd8ZPHesQf9P6IEbbAe4caP3KUfx2oBFyIVjCCBLEIn4oJu6Wbh6BD60S8Q03LYWOcZkRAzKQwPU2JWv8qRpY4GQwj3Si8iJhEG1O4tycEcPqMEJ0EhgkqWPvAhVSJ1FGMm7gA+fXJd16bQQscZDTLRPzEBijBW1OJHhMQtKLDjv2gzy4paKmSAHA7+ZyMBhHEr9UyQs0EZ2NAYPSMoUKoJYO45i2JUZMSJ1ZEvdmUfeETbfUzShfMGX47cp0InN0j1qWIIdEQ3SCLqcfEbwwg6IFDbgezk0PJAHM4lySKN2NAYcKJvjKIMYaIMsQB20vIuyyoAQ2cSJTLtqvMfF9IIDySxpqkn/auCFy2yKIvCVgsEAv0gdkfHMFgw/LRCAcsjERNM/fkMJNEGJ+GjHGsqUJ4iBGGiBLDCigiOrFzqJk8g30dRNtYNJ6zwQqkqRy8ICCXi2ggsNMNOM2WOD+IAw0nsy+jQBAvDM/COE+bBNJkOJs2iSuwSAbPHORYgBV3ADExCZbikrj7hN8Eu7lqxG0Rw231tE7HomKMuA9mseHhENnISAwToAwRDD0APKATCBwECGXxw2LHCAoCMAjviIg2iSDIgR7/wvBgSuDiurrERPJgM/uazAwJtL38M9s3AoKIsCbzoNuqOAbyLPwPDJkDoLqTIIZ0kjFZRLLOjOJyCvxvGD/wzIgApwALkY0idQBSOs0Pe4AnVBE3ZZ0nuMyNL7UFFMw/qj0idbhiuoD5HBAI8yomczgdmbAmR4mbv5HZVwltCLQWrAFItQhYx4gGM4BgdQBTm9CDe4gFwQGV6omJN0grMkgFwABd2oSLDUTSWiy/1jwf/Uggz4MPvcDAKAj/iYPACYgomDUXdBiOxyuWFchjyaiwsgAwCI01GtiDIIwoQDMRzQ1IpwhAeQgQaQqmEExt/hvVAMS927vYeiRC65T3N0QvokrwxABgkQgSV1Fkcii1jNwN8BgA2AECCYVgiZSug7DQjJiE7QjaBkzME7gAwghBjMTUZaiTMISi1wgv+RmDznSVHykgAWkIDUEQFksI9M3A1qUIu1yFepogYAQFOAbdlMSY4HYBaIdMGKXYLeWczfA8VFa4CzIzaRwAAK6Br8aAofmIDAyFYJEAD7WAJptFcTI5CKLFkDMB2Xrdq5cIQCAIAKOIMloVkzJD0nJb9h/M0UGb0G5RxHNU4foA7VLAARKAcLJcQFLdkFkAEV0w2EwCeWtdqqXQSNIMQR4cR7zNne5FDfW4aEODMoOxBtvEUTGNoimIAJMAYTcIpmKy97ahImQYhqeAsV84puSAAFKAC+5dtimJAK4J1m6dpfXM+cDdv8mxmC4NkDQYY06prH3SIadVRVQIO8Szj/+tsNE7Nb2IAEBdDW0m3ZjDCAQkjQeg3KJ8XH3sy/JhkzOUHcyasi8BQNoKGAGRmEJFiELRUZ2yRZLFgLGpABGUAA9cWm4UpegAWCPDyGDNDEH61U1i09mh1KRevHBvhHngMCIFgEFSUG0hJBIFCFCF1LTjuLBB1e9U1f9eVX+AXYRSADMnChJRUR/IXOsws/h9W/qZKobqiACyiDKhCHKqjFDSAGcXjhP/kTR1hg5zGANWhaZ+kGrVBfu5WB463gUR0C8MzgaqhX1b1fKaWJwLXGYVsGLyILEy4DRZhiIIgBNBiEKshiGBYHR1CFLS2vCli4h+o7npBgpwkAIQVi/+90zRggyRue2yO+Xwmb406EweicgzXwmRNWBCL4QSt2BCZQBBV+YaUAAjSAPufJ3AV1luFNX63ohGNAAzX2TnGIUK2V20VWJEUaEQmr1OeEQWJDH3MAhT3m4ypeBEeoAkXQYkJOyG9iYBw+iGpAgPSlgfTFskmGEDBwhD3I4EJY3bmF4ynl4GZJWBCFOV1tiYlwhCkmglN2hBdO4UFeCi0buvgTAWlUOyeZElqmAeMl3VyeixsAgj0gAAVYg3rN5AV9SGJ2l9fNTSyIFlMoAGbu42eO5ixeZS52BEcwZB0hAIYFU3ud5fQNjgAA53CuiF2+4I1A0PQEZiZhEjgG5v/Qe8wCHcWROuh6/sELQGUVzmJWHgd+doSgW0sRKGbTMzFbFpJmTegnGIcYyOAEiNeSsJslMZB72w1NXlC5DFEXpIY1ON5UpuI9QGWQnmJW3mcvJi+ADt7qnZL1VRoAeN+ElhAA4IXzvM0fzelC7eB7vFFRFDw33SVVduaiTuV8XmVp3md/jj+WW2QsyIAACA6I+AmXfoKRfACsbtNOq2kRyelMXl3orUBljbmzyhNV/sGphOYUZmVpFul+7irn4QUnCOygDgBQAIXCcmkJWY6ZdoKYEADRHm0B4FqJXomDwOFCDbZDRNwrIGsqXgRVEIdV1ud8VmUt7mJEHixTEY8LhEiaW7qWB63agAAAIfkECQgATQAsJAAfAIcAowAACP8AmwgcSLCgwYMIEUqjJG1hQ0qU9kncl7CixYsYM2rcyHEgJVEgP9IZ+YmOqI8hO6pcybLlRoiiTMY08glJjpuhco4Zg0SUNJdAgwrVyIwSyZqfcubYwbRp0xxGUFIcSrWqSxulYiLJqZRpkCA1nD4N9amkT6to016UI41OWbJltzKtEWQC3Ro9euDlgLMkQ3BqAwu2cS1pqK05DodaukOv3Ql2OXAIQXkHjzFHlFyTA1iw56rSlNwcLbaGaU+eIEP2VIPDiRMcePBY2kPJz8+4g7ZNOhfs1695a0D2QBxya8mxGfcYkbt5SzkfjSyl+3sC2NQTiGv3cJ11Dx4heEz/vua8/EZw0kR9Wvo1+/bq24m3N47cdQvz+NdSSsr+9/uv8RWn2oCmcbBCfggiBF1N7Kn23nAdeDDgBNh10IFqnkgmRIIcDpQeg9S5J2B2E1ho4WqopWaihBNwoEKHHX5o0w50DTciaq6FsMKOKqjwmoomtngfjAii59Z6jZ3GmnccpPDECKggUsKUM1yDyAghAAnZCfkQiSBbMdV0xBEaMNAFAwxooOYIiFzjSwRvRgACMxFEcA0UGnhy4WobeokfmEfC4IILtqBiKCJRuunLm2/SGQEzkFrQwgkDejKDn39+VNYnRsBgKAwwXGNBCYouGiekc86ZjyQqcICdJ31i/1oeTZyC+qkFiIxaggVuRpBPnXKCIKyqiGhwwquxytqcEmPUiqgtMOCaK668MlonM8POGUEJT5zgQ4meuKJseV0cAUOnhkKLii0WjDotr9dcmy2d14ywAgerPTGucwwcYUQpntpCaKHU7npNr6hmC4Kd9n5LYRb7NpfCEaUAbMvFF6PSLq/t+vKrwsLWaQGe3nriw5ARf6aBv5R4CgXG0B4sarWPggznnSrcy4EPyaYcmAUuRGUExl1cnCupVlrQqMJ0eoyIj6+dgLLPgTEDQykQ2YJmmSQUmisiiLY7ZT4z5OOoyE8gt8ILVHtmNUTS2BKCqxmGwIDXUKSppgpPPP8BBSL5/OorFMd6om/bgklzzUKiuKBBCLBJxgMDUeatAXghaDACAyNAoXHghKN2OOKBNSQNDCScqebjKVC+6DWopEkZmzNLOYMkK2Q4NelpsRW7BnSfQFkKtlxTiuIj+Fg37R7fnjuXvAsmRwQkPA6b8BqkoIELFpQCKSIttPBEC1D8/SvZkswdwgxWRK+WDfmsO8ITKuxtJrvXTinJ2Nn6+rTmgHNfWmwAgmd17gmc81uuasaMGcygBGULlrCYYYHPRUASNhDgUKxgAwIu7GJd6MIIRoAxwD0KW4EL3AkhVaeZyckXGdRgUOokLGlYQGAhdAEDSMA5E56wToK7FhD/fUEtOMVQhi4BgS8muK4QdkGHISSBBVIIrCAKMXAliACi4tU+JLpEDvGSRilQkbonOrFoFrhW04AFLI/lY2z5aBcIOuPFlogKBNJYly3OhKYU8CAFA0PF63oFJ0Q8QRJSEoIDHSiHOgKlgA1BxMXKyIAUTCYFfNRYCfJhKl8gwhVUQIc39BAPMIAhHt5wJFB8cTwYTNKJacpMqGQ2qlKNwBVlGIQjBjGIMrzgBalUZUvgp7h18bBoUYxWo3xVLV9c4wlZIIYqVLEBClBAB4PoojBXYoVRLEyPAyMBCTSmtDo5cEolcGYLVrABVUhzmoPQgTa3qZIOggAKPESTE9WV/8Y3xlFXM1jnNAeqikEwYZ70VEkB84mmhnYNWhv728FKsM4NtBOevtRHQoc5gz1WMjyU+aOZupA6AE5JCFmw6EV7CcyNssQGM8BnH8t0t2gdzJmI8JyUXEHNixbUES9AqEs3EtDNNRRN0AqVqUqAqCi1oJo+VQVQNTpUlcRDCEaFpZnIKSp0gu0JG0CDWAc6iBdQtaocscIMnjTSKHYtSmBjKlMlkVIKiBUN0yzDDc6K1o3YQBJockEIMRYlaU1JSoYswl3RsAFdEuEOfe2IHOJ31KJ5DZ1MRYQk6BpWxuJVqmaNbFp3ZdSRZkxXYItrFopgV7G20xGKEKpoLSKEJ/9oTU1HdcGhyofIEqigs2FtbFn5OluL2KAFaiJpH/14BDORAEqoKAHuVqBYu76WCMQtroJssLkUaO+j4omNmnQq3R254QLohQBeFZFd7RaEgyDQWh/Bk5fvZG4E+4MgM4Tgijw4AghlYMILwKCH9rp3IPCNXXO9S1/xKnCTZHOFG7Lghp+K4wWKYMKBE2ID3/ULTX8Ezx8119s3XUO6KG1EIy7giAs4oAA6uNSGCfKCDjNDvlvzo2w0oMBcuZFsM8hCQVXBhEUAAAAEoAAVZuwNdEhCCMyYXuy2xoBNpIAyGtjE36QE4RTOIA83CLORjwwAHKygDHkorhXQMYPatiD/yiXAcesq6cfMeU1KgWMGkMFcBUUAgQBHNgAATIADH2TBFT1LKDpGkQfx9UgFUc7H5rLX0Ox5VwMk2HIKA/dlJijiwlUgAwEe8ABBHxkDHTCzK8RFz3gE9Ak7es2OIjBZ+h1Vb35sHQmmtekS5OEFRFDEDRQhalIbgBfNaIYEDnCAQeOgCId2JExhvYKSoWYCJ6D1DFyBW72pSTaTG6fYNgnBUppy2GQAQKkNEAdkN+MABlAAswfdhiIcSIOjoGiW9GQiE1jIExGQRjzysIIsp2kTq6OpuN81pXiEGQzBTjepS82LiisgDnEABSh4IWgMENoHRYheQFtVog6YwAQY/8BAs00wgRIIfBRZqF/CEY7brkkrV5t1uCkjrm5j80IBCuBFHBQACqD/fAnzxoADGkE1mK6TUiYHwLwPMIABNLsDqJCGHNAxhIKXKeGZQ9M4yWlISeg82OOQ+ANM0e6NA/3tbx96sucNAAdAQBXjuh2sVaRyqg9AAlVf9qChIA0rWCEeMZd5whUOV0kkTwgORwcYFJF2Y2O83XBXQAACEPclSCDZyZaAsylADC/loba5mwDKMQCAqrv+71YfdAtAgI47/OAGMT/q6nYIJUTRTwV5QEc8SKkIYgPAAOzGeNEVAAnOaz4ACahABZaQ7Ao0QwTWf3fdIbABVudH7yv4Vv8HAICB15tfAiJ4twlakA9R/kAPTOgRUhlAvydBdwRqasEo9OANb8RjwDHQcxmnfMzHedAXfc1QAUHHC9LXgJAgdIJGaBBjHn9FP7ljcipnfq7HAlfgehJgAk8wA6ikBz+ADrXFNc+VPJrDQ2oSgsM3SpOnBxdABqR2eUPHfAlwgA3YDArQgNL3dhoXdCu3Ac6hd8pjISoHeAPABhqYBldwBSIgAhLQAYBDBXqgB5zwA/HgCgg0TuXTN/i3CSrQAjNAYFcoecJWbKawhqbwfJyXAHCogHDHebyQAEBIC7SgcbyAZBSAG/EgCa4QfnpycszmemnwBmlgiCzwBsHwhFf/MIUQNArDl4W3h1XjlFMqWD9PUALDpwdgQAX/F2AEkAtrt3Zsp3lwGH0VYIABgIe04HxAl4caBwqXBwAF4Bng5wODeGRKmAaJyAYskIgDkIjB4AROEAyNeAA4EAHx4HBYyAlZ+AKSsGX4pwE98gRCsH+coAfioAo3UAaqsAgTBwqmMIs9mIp2qAAyAItER4sZB3fuiHwE4AiCsVo+gISsp4RV54u+yAZs8AbB+AYAGQz+yAISgAMzIHym9APQmIU3IARYpTd8A2YkuI3jgAaf5ggxYACkxoazeIAJ0HybZ4AX93OzeJLuGAfI14dqUQaNgIEAsGzmJwLDyIiIaAmW/8CIyOgEluCPU5gHVEAFN0BgDbmNLyAEivcEYIYODMmQRHABbqAIjpAL7MaG5ViOIFkIObh5ORiERNeOJ3l5HHmLaqEKDpCPgKePEpAMUXiMwfAGyIAMOfkGTmAIlhCXbHAFAOBLD0dgDJmFeoCUPUKGoVSR0AgG0wQEF1BqRUeO5ahxXFkIH1AIYTCScJeOKJmSKkkAg6AWiwBorkeTwzgAHHgFUWAJwYCTOKmTqpmTiQgAxPBLQ2mG0PgDJchfQjBgV1iUnHADQKAK6aZ8VpmH63iAhTCSm6cA6ch5oEALcbCGGmeDDwAAeJcWY/Z6UNiBaRAFVxAMLJCaxmiMO/9pCU4gl4x4AKqgCANmSp54br/0AkPwAkO5m0V5A0mQBA9Ai+SYcSdJC8pZCNmglSMJh1w5ko5ZjjIACmKAcch3AfGQFgWAAfrohKb5hFGQDMlQl4Ygl4YQnuQZl1hgCG8gAhQgYJ+mmAUAAdCGaEMQYENwA/TZkPb5meWoec2Jhxr3imEAoNlAoNB3nMjZirRQjrRAA7QgBrSIfAWgCGgBBA4Qk8MoAlHgnVMaDBhqmlFQnnHZoTgZl3VZnoaAZIC2ckd2AP7mA6qgA4gmYDDakD/gZ6pwAfEGh67onM0ZAIUAoFqZAIWwAFsZpEL6igEgA5AgBhdnAASgA2hBAbz/OIxPyALfGQwXyp1SmgEeqppxiQyGsKGtaQkSAGNloAMbAAEOcHI4AAGomqKDoAgEJpWLsAgFwG43SgsosHl5qKPVsKMJkAx/unk7ynm0gADHGaDQVwGbWZ1VEaGt54tvwISLiIxREAVRKH3JkAEZMAWamqlYsK1YEJeoyYFJZlBDwARMoAPEEFapWgAFgAaOMA5J8KqLmXF4GABhUJlCSgMIgAALsK8COqB86qeatwDVkA0ZEKB2yHEEsAho8aQH4ItOIJDN2qzFKKnYVwHJkA0d6q1xOQXcmqmMGK0icAAEYHekpwMBxgTxGZ/reQOO8K4AoHyu2IoK8IoygK8I/1CvQIoAeEqvAtp8u5oBhlCw6RgHAHABVlEMBSB1EpAGb9msBQmeUNgMcJgNPJmpHGoI3dqtcnkFySBoBFAAgEZmI1sAF+BOAaabTEBNBJB8d2qrr4gC+VqvfJqDC1CvO7qnqQigBcurm6eSRlsVwKm0THuXqHkFLBAFHXoFCrirc5ABczAFG2qMjisAArCtltChFUAAGyBgLzAOQLAIFwC2YSu2ZHtXaxuLNwt9AZCvN1uvC8CrdhsGcLivcZi3BBugQBoHBaBhVAEE6SYBEnC5doma3gmQTnAFb7d5ADoHWOsEGfAB1VC5+GC5VmqLRAYG6KCQYTYEVeAIqoAG6P+lrmQLAcfGC5Cpq3DYugvwAQQbBUILh3kKoHzrq3zao4XAq6AAAIpKFW4AaIDHk5vqllNqjD9oq4VQDXMgAJZqqRyLD9OLBeQZBdInsimKBsRwtlSAvcInecP2vXJacXdKmQQqmWHwAQmQDey7tz0qsAM7vyN5wLhrhwcAAVWBBo1Kl3bpBNEarZHLqwQaBtGLrVMwBYwwxA6MBfjgpVGwhwQAaAbQbEf2YhSQpgJmSoMAvg8wdAdYDblat5TJxVzcuI1bsAfMxQtgq3jap2Ccp82nu0NAFY2gtKTJk+SpwgLQoReKnAhcuVggAEMMC0e8rcjwBldAAKrwS+LgveH/K2rHd2RfCwHpdWzKmQBhwMJ1y6ddvAANMAecnAG5Wg0sDKSVvK8Cu6d0CABEKBRZkLQHsLRp8J04qcNZ6gTbqsOoKJkZULm6PAWUCwsdGwUJULRM8InN+Ik38AJVIA6fG77qSgEFgHGTHLuUuaOyq8YCkMBzUAgIAMqgrJXCCsqkbMqcBwA0LBQbgHKtfAV2KZCaKssbCsESzJWczMf40A1+jAW8XLlTcKEVgKgvdgEbcMHxCYrxIHlggMzfS74wS8n6ardmDMT2fM2TecChDL+uu6/VsJVEFwflHBRogHL/y6nZOshvsKFyCcxcGb3Siw+V68vbqstzwKsKgGTH/0d3dodXZ/tL1ES+OUqvsTvKfXrA82zGArsA3cDFx6nG3LwApgwJujsUbtCoafCwb3CX3oqTfJwBrUivCPzOWjvS+By0dghjiLzMYEtmjvxiEEABciqvq2u3CIDJYEywuSwAn8zF3dANfhoAkLCj3Py+kHBxDlAGQnEBUrePadClIGq125oBREcLPMqxcqmpAiCXfZzAAcoLnBlK5gYGwyYO3Qi6olsAFAAB/GkKr6izce2rYIzAdZ0N2TAHRw3K9grD2YDXAtCjcLiHaCAUMZCEA3AFxwiXICrIyNDYFRCsO5oNlf0GdecAFmICAHAFuSy0M52iU9xLnHtKpXQDTP/gCGhQ2lWJ2jarsyMJxBgd29dc1wnsxXwq1HOg0hmQp3ZoAH8LFKz8d1dwiJjqwA/80slw3t0wBZ6KbXMGOR0godRd306MfF5Lto2FsuSqCuL9nK9os8ipr6S8AL1sz5cd35VZyQd8wJRbsAarAAaQyvh92MNo1cUtyFmLD/EMfclwBQfQAT2QGUqw48bSAYCXDCgOAZ6mzKK9tlLnyI9sTaWG2oA6khpu1AKb15SLDAlst6u7r90wz9ecpwgACgbQ0S7xpMDri13amplqCALgwAKQACrpAD6gArZQMcdTMQcjNwl+ABwHAS8gSk3m2RnmCEWOZKSt0KgtqJQsu8j/ieV5XQ0Rfc3ZEAase7P7OgewwMnVoM0IIAYGQJZA8bstXubIUJdIHKLTiw+G0AwEUAQtwCtCAyqCMihpQikAwIObTgGN5QjigLLyGWbIvEvWFKsG0JygoLoF+tYYndfd0ACwsN6PXsmSLrCUG9/aTK8BsOlCIeYDAJcuzq34sAv+va1vgAGeEALm8upoMiZjcmX4Mn4SUAEJYGovK2j/3E5lUO9lgK6yutWbZ97KO8p4ndfLbun7mq9YHr3xjdSQHgBPHRRintigzq3eztKAjAUH4AmT0yk6dAStIxtJkh2sNwDNwAsPcAFlQOQzuLbHBsWPjAYQ8LK0EOJwvbr0/0rKjJ7sDRDRc5ANdUvzoKzldq2rCuAA176sxmjc2+rfLN3HEuAJ22MERuACR/BHfsQB1OEBGRilKH4BN4AOVzh5VWDWTypopF0AXwl9rZuvtF2vYVzzDXDzs03K+orAPp/zeVoNmSsUbQCl22nV3D7q3aqMKjAoSnBl4NE6Gk/1Vl+TltCjAQAKuVAAUpXr8ame8MkE4EjhpT1085qv2lyZNxu3lcz2bd8N9D3Noc/FsQ3bapwBIkAAhR2TV0CwaH70RxzxaeDm4SEbkmFnNnVDKnCPVEfdQIri8D62a11Q9h5WF0AA8lreGD3Krsvo1aDsAc/FlXz63HzbjrvHGf8QzEJhZLxwrXcMokjfB2qABQPgb8jxGvdVKOS0LXTVCARwABVQCENq37qUBKG7tsgGEAcAAHAAAcKFCwTigDJFi1YABBEXFFoQJkzFBdWqNeA4p5vGBSGrfawWMmS3OXMyzMlWAYCqJjFlzqRZc+YiAAayGcKCDJklZFiw4MOnpucAExNOpHBhiwEDFSOgQEGEyMK1qi2eNAJwQIECU7lU3dBT9kYVR4suFCAwEECBtRUqKAAF0WGYiBctVizZjSPHjyYzaixZ0mS1lNkSGLhg0/FjMIvIGIBkKGjPy0TxYbF0YIIKGKV8weiiQYMKBiNGIEJVVdKIJ0VwAFhIyxT/ATQ6mLx4wWTIECZMyuhQtYEChQK8KiQI8LA5xIgI9ors1g0WLHxzDFf8WL2wSAEZshVKAArCY/Q0wSQh80CBZaJChWpG9saEChcwXDBIoSHEf9P+W2GF/044wYcOAOCFuQoCUMAAAAiQ0IECKNhgkEF00OG4Cxw4YDkEAkABheaik04w6zQToBvB+mKxokI0SmmOQgIAhYD0cmyiCiAmE6OQDAQQYCjN4rPPkx444IEHDgwMISrVnljhBE86sNIEDA7gxcEADKhQlYS6kmAACQYqCAI0OgSAOVpGRMEhFBAI6SKTGigSlsDqbCCwEwlDrEbzdESvmEVieICWBFbK/4yoXYhCBgMPJujhhBAoDUEDBlqrCpERVPAEgwFClYA5BwlQ5YV44nmhjEEogMCBtgSq0IEKREiGzYbgjBMvOhewcygB5jCJIl8bUINFicATIJtkAsBRUMdUaWMyBZJxwgkhiWSUKAmS8oRSDfo7bQRNEXlCBR9MGOANQzIIIwB4HyjgwuDqFa4MYow7rgADKmA2AQQaerNN507i6Dp8VhRsATkb6APPivDSqIEZEzjgPGhrciOG9hS4Isg5hBRgl0bx6WMXpDpo8lL/THOZAf9OmADUN5zQDsYEkhHBLQIohIACNFQhhpgLXGXL1gTCeHNgh2iRkzrsYAFsYV+1eP/4I7xE4kgjBQjQIWOaFmELAAUqCHJIfHbpY+1dCMHigA48IdC/Spuk1EAOEAQ1DUMYMQwvWgyQsAAHuhJhzGZkPaiAAw64wolbERg4xLwGqy7q6qpbuBqrj61Ioo1MSoCXxsCWaZHCFTRbM7UJIeRkfCyRIG67T1j5qdagGGEFH/aO4oOI4b0RDUcUIcKRQcAkvC2COuQJC0Oygc6uEuUcyS8VCwMppAa02EUNPCOCSDCLuh7E9JjcwAEDAJpJYyiS+yBkC0Lw+emNbifggAMANRjBlk0hAgor4MoALJEBPoUocHAZxL2CIw5WqQINP3NAM7IhpGq8KyIjig6dRoL/naLsaQF5ykgD1NYH8IUkRAwTTDKaUTqwlaEIbcCBCQAgAZ4wahdYEMEArhAFQ7AAAypbisv8RwISwExm6nqDJULGMBo0jRaFqIBAzFSAn1GAGGBCg6sKtxyAtclNcZKORvxyHTXsiUW92ojVUAgxpcGrgwlwyQZMJ8NGNGI2zXACMjaDBScQxHCWSAMGJuAJ/vXvPxyYwMxCdRlhLSCKbgKFASDklgM0QwQiSByFKICQAigoAcyRnBg5aDDASG17gune2tTwSj7RggazREAhCtGMAgwBbK6YIZYk8L6hAJIAryJAJi3xBrjZ7T+VkpkHQGWJtP3RMJIbkW0IcIEL/5XBEaoAEwTYQgC48OsKz6MRNZdGxgUIiSPgU2PmCmPCE6pBC2lU4SwhUctCZKMZGINWMdpgwwGk4TKcAYA3HcC+A6QhDXBD5P4olQIOdAAD7zMZyTYjrOjE6U2CmxcxBlEGcVRBOIPYAJrGVqsMlEREHDTRCP3CTqmpcTAbOaEr2anCWm4kPFcAAAUylgUy3NCAmEGGBChUOAxkKaAHSMr+mtQfDoAKCySjasKQJYPo0KBhGRCBFX0GtJKiYQMlhVUzohC5NiFAq2S83l/cSpIGaMSNJ3tlTEvSACHhCSUVcEDGinDDNFiiq6FKA0GQCgCADiCph3Rofz6VhrSdrP8PmxFASTi4NBpUEkKZbIYmN9mMt1zAmwNpxhsEMIUMZrSDJXTrnrYW14047JVqKEoIG4AwfDSAYQHIBgDQAK02AMCAoLXiARyQuuMWLlRJ7QBjlxKCDgw1spNd0d8YJjkEdK1CYy0OcthCoQ414wqZCdZ1AYYX68X2L5mLa3s5ora6NkoNu9ACbhuAABkg6mKC2oCYcjIAw5rguCYQsANMcICkJjVSjGWkVIky26LA4m8R0WqIFHCAYaKBGGXgMIeJAQFVGC11fPwAXsi4waexKLaV3cjE4gqL+L2SZIQgWdTiGhE6HqAAgoLAQNhXxYJ0oMAEPi6oFOxMSDXSmQP/QIZ8Zwu+NUrnIR38QDK4KpCeYbFoaBJrFwt3gDdox0QtvR6LOsJit6rteyhc28ksCgstcCRYzXhWjsrQBlgRwAC8IMiBBTyh4wqXuQlOauPe5zoUPhlPJUHxib00tq40Qzl8LgisBsLkaHYDLzTYVdaKVZ2OhEydHJHf2ubHNtomOs4mhIUIdqyjMrihcHqOkHCNKqEIMU+xhA5VT4bSB3awg36Jpm0Cx9wlLB5nA9xMk0EqhOtMfixtEkZxS/2iRo9sBBZCso7a6DdshKkh0SJEjAj4mZ4euSVCBmjGAIw7ITwPZEyhIixQ4LeFYG/BprSt7Iui05yH3DJCaNIB/4fFMQhscnMDExwbtqqxwRNLJHMhm4Ocr3PbteGbHTQWgLHGvafodK0MOkq3W/olgoVGaLttKGa75y3QoKRtfvkmxJOPpbnrQgReDmpfV3N9pixO0CCFw2HCGN3SYgEGr6PmiNW2oPHX6XAX15HaAvKrAACcL0dAUDcvRPDDKAjEARvIAjGCK4HEHWBMlphP24L9dho/OXP1BLgp5NXsL6f9LRCIlQR+KYC0NaqyFpGI9cxcnbzGtHsaFzb9XulKNMYV4A/waY5UwbxoX+sKTPUB7zpwAHcPJKF9rKj8ng73mqdRjdOMYnNMcRtwGuQgRXPVz5xtadJmgCgZAB7SWf/kFyGFzK1aYPzTiS1jokCsOQaAydaD2vMmImO5OMDB50V1hTQ4AX7xm5++T79xFE6BJCp+VwAAlpdq6Ay0DrBQ8ijATQx116AHgKYTUkrNZGktZH1pOiHeru/veTK2wQdVwjo7ypFieL4lQLljEhUTEDLC8omYa5TW6b75cZ1gSzTvGIkMYg68aI4HACdouyJnKwDCMTB5gybBYzRaOow9iS2tIb580zdxE7fXcSWioBjQar4c4RgFwT5LICw2mLeAGqjpkh/XsUCNo0F8QK3AqIYPGCXAuQ0NGxqy6orYwySByCQRCIapahQWzD+qqRP/a7xhMzVEm6y4oiKBqLz/HJGMybgCoKiPNGADFmCBNIg++fjC1vk2RGO8mmvC6gAejSA8yomDCTFBZzuILJKg4/AiG5IALKCuh1Orp9kcVirDJXwd1xm272mAbMA6xMKBLBACIUgPRVCFAniACoA5QkoDFrgCFniDn5gP+DE1+qGxJIQ6FMqth7OIo2sTi5iDKLgCYww92ROtCcKBQOsK0JtE6oKiSxwMrdkTfHi6TRQ2/wPAN6oixLKSb1kBVzjFx3iBC1AQV3yDNBiAWbQEe2OdE3q6JLxAxuvFPCkJ9CIjZ4ELg5KQLOsxMXG3xlG7AcCC1wHDrFEvehqhg9kFxpvB79O3ycqAZsCApDik/28xkCcogcfIAzToCiazBDxcRzykxUUJPNNznT7MN2GDJZEACWpyCHlRhQzRkEEgBqHjOyxKtg1Yi8KBLBrzxaT7C8O4Lezog4cUNqX8vz4QgJ15QIwEl9NwhVFwDDBINwNKgyvYpDxsInvbwxnbxF1USgC8mWmqti4ZiJ45LhNMNlXQkBBDjgMTASewhLYJyu3ICJyLLViYrzJ8u6WEu11YKKhsKJYxDRVoAUl4AZtwhMn4JWPUpF+aRSewjPlglNfBN3mkR8HEB++YE/SSjjBIvysIlU3yO3CivVC6IQlgAUvIoaJgm8q6Lr1kLY9DSpYEzKXcAixwN29pKHB5Cv+XWQEVgIJ8mAkiMJQloLfOas03sEM9lA+qssC7REps1Der6gbgQS9D9BJvyqJPEq2xUTtZIRzh4oypWhvP5M6X5MuM00343IJdkL4haqSG4h/TgJkUYCYNeILjlIkwmbdMIiyFir4g7IocQsKDREOogzJ8JDw6QYBr0rCbxBCcFK3jagv2KynhYoFQmYKKmrqH+xw6eS8k/L/4nJ/BtMjm8gTgtJRl4s8ngIKZcIOgAr3GaTfCordu2QAmaIQx8aPqjB8kNL66+ogxiw5TsCS1JDCCMEF1M4hi8jvEekb4oq2juwhj4b7ig898QxmLbCT9OYEAoRvbcZL+lASacIT/1RQ9CVC7MiEIjBGCRgC9NJixg6SqIsXBF2EYN/m3B1G3J/UmZaOAAyOAA/O7N32DwCMKZJGObsPFmfNSqAPT5mok/DyNADEQTtWAFpgBm3CDE2wDUg2lRqAJIWgDwkpPlWQUBg3KRx2jODGFCgkabiqOg7CQEKuht6AAB5AAZDCENy1INSPAhwucChgZ0/PSFMUHxVow/eGA/OwUFTANJ1EBNUUfmciC6LJSqiISurrLoPwARhsRThsReeHHEtQy3MOA4zoOAGgit3CCyGoUTXMWAnCCPtTMiExKt0kZjHSqFGAAEtAd1YCKJ3AFUNXWmCiCAwMAEfhCfGii7dPT/6ibAu0ITXMyvytohjcVOygdSGfEgQ0wAXcUJEmMHxENAwgxhGUNtgvcIQxkSd5UrBbdnxqoAUpJDdUgAdhoASFYWIZdAcMSqKHojDeFrAerwMmKnk2rMPwChZ+jECwyiK6QRSdggzcAANkwIOO6IRVUG8+shgsq0tO7QGQAgGzoRAt01vr0hBpwKgNBTExRjaBlWJlAAwcILu1rFCxIuQHYjKKwQezEWKuTgXN1iGsaK2KS09UMtNYcAB+gAPozqoGALDUTvDmAMdP7Nm1EBhxogitQUNfBh0K61IZyGRVY3dV9ghbgSLyNCWkhAL4hEqEgpKkiijaL2fAIgyiigf/8ogVQyIUC6CLhArCCCCUQ24AigIADa4T+kp3UOYD0NLWEEQAY677r5E0TiAleGBmq2gVLCNND6oEaYBkVcN2e/dTYbdg2+CWfCCZtiSaUREIsyIAakQH91d8AiINLCpW9Qw4A6AAfaJKIwgCSNYEyyTOI/cKgXBaaKlJEw4I2kIkCIAM944UreAPFss8eSBL8jIqpgIInyNbYLQIHMKDL8CPNIBLaUrPu26EoKIRZ0l8UoIFCgAXO4GCj2knO44AqsSEKICnZy1AAMITAsygB0NIK3DgaAwCaGIcYmOJQIt8JiNtE6k+qkAQoEAIbaN8e+xi287XLnF80LN3o2d//SVoAWPCJ2Cms5EUwF70SEPMw5Qk0Eahfe+UeTpTHXWiGA7SJtShMuA1hESZh9o1dD/kYQ7CMgZpfV+1EduiD+00A/W0TrDKhzTCEYHDcgbASHNAicRhlCGoVgyocuwzfqdO0BajAG0yD30KPRmiDSz0kMk0Nnz2NLGhfcSCDOJCAupRAI5S6RnnP+pmCQkBcc0UAjfDGQUUIhFgERxjlKiDlg+vJE7yhEKUqAZgIZU3CPjCEV8sRH/AE+yRTJFrdFWiB9nVMDe4jYcaMy9ShZdW3KfBdN5HJ1LyARVCLC0ADcVAEgR7oKlAEUmYVNDDBQMsGVd6hlcBeXJzPvoIW/wowZ/3pzydw3aqM3QRUgAxw5D2M3/mlQNzcOHx4OOAFXlrADSBwhHEYh7S4AFWoAiIwnpquaYEWKXFwhCS4gBjI0GYAX4uiLCGROXZoFAAIZEHhnc5L37ttXzcgAFD4aLSRj5iDZFbFxvnMhqddaVUI6IFehKARaCK46YHO6Z0GArXI5itI4vClZ5U8AKVuX7xVBQAAhZ3YQ/kQ3CJxVfnRRnxwgvGACFoFgnGwaUUQa1UYaJw+6yqoZkcAgp72SQLgBSR+65KZThp7g4mm69jFCV7YiYGSQL3u63h8ul0IFlwhAyAo6LJO7LEm67Mu68d2BNtWa582z/dpaLdGyow+QAYd8+zYteslGKc5DIr47Wv6NRkJxgf8dT0ySIJxeO0q6OfFLmvsfu2argJtsu2YNsFi4om2qaodql5KvoJzE27TwYmvq0whqUwsyKtsuQ6RgTGS0QItIARYmANIAAVQeAAyWASbrmmxHoQBb+zGrubHRos0iYFQEgHspSpYMITTAt/rcAJcUu+AAAAh+QQJCABcACwsAB8AfgCjAAAI/wC5CBxIsKDBgwgRQrt1S1qTh5QoNYEGLaHFixgzatzIESNEUaIogRRlpCTJkNI6qlzJsqVHaSJHipIlK1SOmzhvKgnksqfPnxZvRaRUcwwSmzn47Fi6Q6nSHTyMRARKterKW00iGrmJpKvNHTVqMN3RowcHDjyUSKVkta3bg9CkgTRyFIkRWUeVlt1bw+yJEzyOjJEl9a1ht4Fq5lystG/ZCUF6ePKElgcfozBSHt7sU44FdTf5iH4K1rHkCR0mqJ5AGe2RFDx4cJ7d8tYpvF9LBwmimrIn1R08eEDdunJsDbSTc4RJUhafsLxVD18tXbjwyZM5wOYRIpXy7xflGv/5WmOChw7BjZ1fHdw6ddZl0T6ZAb5+QaHjk9YIMhy9B/XCBRfcewT6RZ99CMpVkzrPsWedcNWt5kF07KU2AQctIGifHAoioR9vD0JIHXZnnTXZe56soGF9coiE14eoEUjZCSo8MQIUOKYCxQgqnIBaap6EsCJ4TTR3VA57FffXCSvcWMIMEUQZATPP+JLKExzEOIGQQyqX1UxdIaEODykwcAkJJEBxyQiSlOCLL888M2WUzETgCxQa/KYal13S9uVdsijhwiWE5vimL1PWCWeiIEwyCTO+POGjaif0mVxDYBoBg445luDmm3HKSSczzDT66J0aZMmaJJbOJsdd6oz/AQMMJUChYyq4HvpplIiC4GujdabSo54qtMrZKUqApsQltnKayqefHkpno75OckoEFowQgp4ZGmvYLdcckQMPLuCoZqG5uummnYhOQi2wEVwDxbaqdevtW77w0EMKgzLrL7OpWHCoBde8GYG7jvoKKaqqZnGvYSVw0AO5/xLKLBQCv0mwwe6+qyieJdr7sFUlnMBBCGaeW6itvhTsiwUCT/lrxyDYaUGqZ4k8MlU2aEAmCRZf4gLQALf8cgkZy1wqCHVWOYLJPgixc1s2SJJCmYS2oIEGV5dp5rOcjkDCjS3Yuu6bUJis4tRWyfEM1ymncJZknvylAbO1XqKCBiFo/8BACy0IkauVIXDwBNttsfLE15fwffXWW+8NxZslpEICA2ZKIrAFqbyZSqqsIl6VHCVYjPnpkHN9N6KQ4hnCCRqweegzkmiwwoGiAxUNCJJA4YILDKRwwm8crMB1Cpe0y0wqPNY4QgvP1BmBECqsYEPuVO2e9+V8hxCCCuCrYKYFiVbe5gyk/gpCCU+oMAMI2P9UCyuBnGIBFECT8ISN+2N+Cfmkkl701EclX5QteqyIX0/mJ4cmyOtfOxrBCM6UPEaRSkoBrFkEUhEBpsFPgS0JBAgaKA0dCU1/EkQT0BCltDqlL4C8ShQzQMgSZhjBF3LgkJoYMDQGoEmC41sUDP+X5sIIVKlzzLgeDVUSCJAEQhqBSIXQGCAoNJ2ugomS0q+kxy6BzXCJKrGNVGCiJhcIamiXwxwJNrerOUmvgLyaBBhXIg3CRAQGhKKiDxmwNR4w4BrSMJgR4SRIO4kqAgmcY0ekUZJTUOIahDIj8PgYgjIFsgQ2sIImWWGDTkbPiM9AHwiioUiV+EIqTQhEGc14Ov+dQhKSYMIQmMAEcTDhBS+YwQxCucskllIlcniTNEqYx1amrASAI4Yq0ICGCwxiEGXQJS9L9cuVzMACT8TjJY7AzdOlKRWSyIIqVCEINGxAEIKIpi5nkMlqrmR9T7TAmRjwmqud7llZUKYgBrH/Tx0MgQozKMEzbuHOlsjBBs+4BB+3E5vYkEASK1DFOQWhCmhKwRrSLKhL9DCDEQQvNmbhAGA2tYKJ7pMYQ2AFRtmpUZdYAwqYg03X6HmNVEQUneQchDikoEtMtrQlVQve47aGOfuVlKLohCZAA6rEn6rEBiUQKgP2FjwGBMIXR8UpNFdagkQ69al4gtzjGGClLGzgnDkVB0Cf5NWvcsQGM4Ap5ohKVoiedaI6XeoM2upWjQRUin6TaipaUNKzoqGiZVgpS/vKkVrtsGtXs8ATCnvWfZaBp3EaJWM3Iom5CjU2R7jGCO5610E4AqByYgZfN5uQ2m0iBVxr6B8ne1YK/5hTqbuMUztZa5GgfpShfmTSBihAgQtcYJ+5DJUU9GAF3iLECrzDXD0bmgLJtkAH+zRtFcQR0DglEQw3cK5BoiEFEKSCnvX0W5kssIJ8alcRYFiqcvUAhGKIdyC14ER5z4u6wJZJA1nQARogYFsdlEES0pyBHvTgCDKoIrzOtYI1bMAKEMgVsq28BIKzIIgNZGGdoWLnD8ZBhlxcoAystYIUXjCETkbgwmM93QhKII0h4HIIQ3hSqEoghR8oIga5AIADNqADKXzVCjagwhCE0GK4etSYrSQBJqlAhRvgUpqhlESPiVBiAHi5ABtggtQKagNrSEIIgGuBJDrJPqLStf+VUJDEEBShCHEcWKC+EIIk9ODjGJDBy4AmQAFQ+kvPjKB94FvBCoRgg/U9Qawp2MRcy/TQWSqiCgf23Hz4TAQ/A9oABvAyARxQhCwMYYkV1pYGTuCDyfjAByOQBlwnmzoN7G0TfrvEDKQgBTCAYQgB9cXzQGCFH3Q6Fw94gAHiwOxlh9oEOMgCirHHihlAlAO/QY+2JxDrautgBX2DrQYkfcVd+/oGTIAlFJ6w5x8YG8gPiAOol83sOPCiGQDAgAnWoQomNPVhcMWTj9Bjgg6YAAMASE0LZG2NISi6kuIetxqf4WvwlkFHsVMwJ4xd4njPOw6gqLcClnCAAwCg4Ov/MPW94CoJSXnC4BgoecxjXvAWsIKTVChGEfoGuVaOwBoVv0EZtKYBLeth41XouLLpDXJQOF0BcVgCyZ+NgxWU4QV9gqsQJpsl9MRcAmAfgNgx0IEWUHjBNyiG8fwWWDWCALxgeEExqrdpd/cZ2fXOu9ObDgoF+J0XJtc3BFSBu/rAtQVcR40xjIEBsTve8Ql/QiBscHQfZ4Gqe8TcCECwYj28IAvt3fUPNm7sPSCb6fXuOy8qUAFegJwXsHe2l3GA0uYqJ5SAW8HAGV/yx/v+ACZoQSAWvHE9VCELi8vfD0HACrS7IQtrtvvoj51sA5hC5J1QQAWawf0K+N3veQc8/wAGferZQHXduucAzBv/+DSk4ffBf8ZyR/+DtNtoBLiCQgtGoNoFvwAIQzB/7sYJnMBlAFB9qfd028cLS8B6rMd9TacA92ZyDjAITGAYVqBLiKd7qnFw7Od4LCB27/d+YicBwWcDvMZnP+B5iPdN4CQEzOd/TDB/BEh/DaZsD2AKphByCuiAq9d9zbAEvKAAThdy8hZqDkBoVsFTG+gDOABzAHAAvjcAacACacAGVcgGYpdwmJRklbeCQ1A2AXM/0JOCN6AIKkiABKgHixBkyaaDygZyAbB9FSACCcB6IsCAzcALfacAAWCE8gYABAAB0wYUUvBtAweFEjCFLHAFjv/IAm9whSwQggAwARFwUFTAZzXoeULgJoPFbmVwS46gCAOohhyHbMoGCjp4fX3HesngfT44hKv3d3tXb6GmClVRBUXgA+t3AIvoeFfgfgNwBSzABmzwBsZojJToA4gkBVTgawP4A1IwBJKgIxIkCWF2A45wA6OnhhsHBLmQC8y2g6bQCTsYAOiYAHeofd8Hfgqwh1BnhCHHCwZAAFVRBk+IATE3hcModpOYjG8QkMk4AABwAr6QZBV3dDVIBWgmQbZWBBQwCNzojQR4A38Gaquog32HjgGgjnfofX0Ida/nd31XhPQIABtAFargAAgXdo5HglQ4iZMYkMj4BqtgjAP/cAA+UALWUGU3AI2baA0NyW4C5ghg0I1qSF+nJ2+qqJEK4JEeOYd/WITtyHd5B2oFABTWsAiA9osiiJMvSZMBOQVOsArIOAAS0Agt8AJU9pNgoJBryJAIZg1loApGSZEjRgZxGAermH0d6ZHJkAwJwJFESIQlWYSACHLMRgBo8BNMEANedgDN4HvG+IhWKJAsEAVO4ASGsApRcAUD0AFP8E9Udm7nRmW45JaOAASOAJecoAeKcJGg1glO55TqGJiCmQB+x5EdOZWgQJtGGI/NdgE/UQx/JoUi0H7ulwY2aZOrYJZvEAWrYAjIAJ0EqQpMNgQ6oAoUAAHrYFm0ZGM3/3ADQAAE4qCJBAgGjrAIlZCD5dgJ8LmDoICOheCRFcCbAfCUuqkAwMmDzBZyWPkTaEAAALCIoPl4wcgCm2kIZRmQ0FmdyFCdbyABQkaggOYAo1YAFLAB0DQEVaAIz9Sa3agHYKAIZVAAALCK3+d08JkAhZANgxkAncCRdxijU6mRiNlsEPATkAkAYnegw+iIb1CMx9igZvmcqxChR/qcEnoAOCAIOjAIEtWdF0BaG1BRN7BgekAEjjAIEAAAyxZyK+qH6vgBUBkAhVCfTxkAkMCfwHmO6KiKoGAAlfATF7CPVCiCjngFUfCPbKCgSBqhEYqM0PmcQ3oAQ2ZgtMQEZf/AT8N1ARSwCGggDnSWBH5GALxwBURoAE/ndzUamOpYn3/5fYRZkvD5l3tHpz9RCRjwi6tAgn6KjMkYBZo5BQLQmZyJpEf6Bk7wBvg2asSlCjpgYKEoDhWlCh96aUCwCDFQCQTwn79Jo4P5otmQAYFZCOjodxXgooMJCreZDVFgrboZcvbYE2XAkovInK86ADNpjA56k9OZpAu6mVMQr7zqBFEgiA6AoQSaoRCABuUEBIPwAjfQay9QZ6pAANYXrfnZmx35AfUJo2Zgo6Gqjh1ZrdkwBRlgrXtXri7hBgSarmmwrlRIk8fooG+gpMhAq05AlhKKr8lwAAUApbTUqIL/cAEQUAk6W6X/WlHPxE8FgJGmEAAIIKPSmqbZkAxpqo5F66JmsLTquLGCmg1FaACC0BOD4GWPF4kDMKQsgKQny6sOyrKrQK9TcLabyQsOEJE29ozgdbDi4AgbCgE566yApn33GQBhAAmnSp8emab1iQAuurT1ia0KAAnZIABYgAUZkAAysHcU0BN36qMlG4mZybIMGp29iqSb6QTV6blnKwACUJYsIAImp6GC4AjiUAVE8JNEsAjPRGfjsEw5q7B+6IcIgAAz2pFQGwZhgK0JEAbqGAYfkA3YSp9zIAAZMAeFAAky0KYGsKMuUQlRqJx/KpjJ0Kv3eqSdy5ktawhn/1u2+NqIJjdqBHC+OhsDi8Cd5fmTl1ZLZbAICnuqvnu0SPuigGu8hQCx2cB6aDoHGZC0zQsJe5eVLTEIDlCg/hiCxpgGIvDAV9C9hjC6GpsBZAm+omsIWLCZtAoAg/ehTOAIqsCszVoJBcCsewCpG0pRMcCpv9kJuQsJFlsIT0vDc5AN2cC8afoBEKuOM5oA1RrAS0ubcUAAhagSA1q9RNrAV2CHgRnEGcCZ4AvAobu4WHCrTrCx+QoBA+u243mwVbCei3ABMXC+gAYATwmfnQAJCOC7YVDD6mgGHxDAODwHZcq/Mbq/G+sEokrEANCYLFEEJqDA7nqWLKALHpm0yf+wsYw8B1NAnRM8wVOADJxJqyIQagXQs45QBoqAS6/LmiY6CM0EARhqfeY4o74LuGkKCWm6sTiMwzQMsYbbCYUwBwB8wy4apwaAiywBAQhHhSOLDGK7CrogAq6Iw4wcxYawsZCswaKbpBbMCMkgiOZ7voJ2ASNsl0ywXXZWBsQwoC4Mn4I7uPpbCAJgyxubDDj8AQKAwxZrBtVKnQGcDDI6p9K7Ejjwy8NYlkdKyXyqztkwxwG8sS4LyQJwtmT5yBkgAgQgCOKAS2E8xs0aAzGgChBQAAUAqQArCF9Kb6CAv78LxE77AY68zAH9AQ1QDT1Mww0gAI8wB4ZgCDdcCLT/qaosQb2UKwK60JnOuQqXa8Gd+8iPTMmRjNC2WpZOIAIOoAov8JYkCl6Y5giHVbsWGpl2+IdoqrTCi7Q8zM4H7cqiWw1P66LsTNK2rLHGKwMyEAcOwBJugNMGupn9vMFlG75SHNPVyaQxjQVnG9PKqwuCWACHpbpVEJ5M4LONukwXUADnG6bzWQjXGryxXK1eLbqWzcODGby2zM4wPQXGGwCP29ArQQEWCnbMWYXOGaEMOsnIAL62KqhMqrzJG7oVnAy8QM3WbMIXwEyIZUvwK8KVEKadYAZjHbxyvL8knQHUMAW2vNkwOq1dzdk3nA31bADEqRIXQKBSWLnv+pyc/4kM9ZqyWYwMi9vaSTrBoosFrY3DClAJgzAOijAOy9qsggYBzJrJu01RQMup5SjDw8u7ZjAHPJwBWADA5/wBxY2mXp28opsB2FrTba0Sxkm5XWuyNimhnvkGBIkDimcMFmICYpek6t3aTjDNFFAFTk2i6CalF7AIEFDVohaF9PyHnfC8u4sAxM3DDK6xDC7LaSrHOXzOtorLg8kLMbASgxCyVAidF07eZskCB9ABTaJQscEAMOACR+AJjZeySfqcDFoB44cGOlUFIIxpG/1MknrR2m3MMrrGkEADz9vGv8vD7by8yzsHZuDGb6zjj+DSymu8RR7hHZEF+jwAugqhWP8woR2QBYgCBbBBRTBgBMDjCSCeBtTZ2ss8uhkA5rld38VlWeIQ6nEryiiatzWu1kRbtHKs4+ds2aKL4G9M3KL7CI/A1yaNrbc9CCqhCoP8i+qapIMKACsgCafgC5egLzugDkoAA7LwGlo+AGyQpKIL3nOQDAZQAKowDhFduw4AARtAt7t9TlLK0Zj6wmrs5r8b6x+wAOw8xQJuBrlL3NWguH2eAQJgBpDQkQpgACnZEcWg3Ut+4Un6BgCQBXFyXiFQFrEyGM2eAhPgo02u2pve0Gi4YCtmsxvK2GdsvgDQDPepxjLg5jLsxgjA568uy2wsx65+zjpctHN6tf5OoGL/19NIKuz5xzcS0wPqECuBcgQ80AEhDux+XZ90igaj2MmMWgY6QAFJJakXUAkY2vG68IptLri5GwBmsABZn+OKW+AIXghh0Mbrzs7UILoC3rwIwLdsLeGD7HiE+pwSsA4q4FGXIDdlsQM5sPA+/+y6EKHqjd4HngChNmr7WgkEBgGCQAxlEOplgPGMbQDNwJ9Ee7yQkOdZz+7VUOuM+8o/LsfVkLyOjOD53ptFrBJloORpoAs0eQUYsA7Go1CF0wNikfexog494AGNJ+Kia6sCwMNgLtgCy57nm8nNtNsA+7OCQAEoyocgDwnOy8Z7rtKuTseFULSQsOeU/QG/y7t///jHHVEF1LuIlGyoA4ABVSdBsCH7sz8YSqAEPPByrZqyVvzq1s7FTa0HZ2izVarxogYQBBwUIACgGa9OCTsFgNQQkhkzC6p9EPDokQABGZIVgmgmTJiIZgoVQoBgJEcFvAwI4tLS5UuYLcVVArAkjSFkyFaxGACgkYpLDFJw6NGDhwsj13wt9WVhhIZGJg6keYPMUMZkvAhAGFSGCZMq4soMoiBIlSo0FwoUcFBwqqFsCRQmlEEDwUeIHyxSwyhgzgfAHkFC/FgSAcRCCSoYgBDT8UtFMQAcGLAqpxM2AzqsGCE0RQoGRk6NVqq0qQULLZ4UkZpGV7ZkyRTzAkBAYP+lAhAoQNgwSJxYsTpUbSBoMACohKY6yZCBIEDhamoaXPSb7eTIBCQN2zWcIIACA5Uej48MgNcAXaucZHgjYbOGzwxgzKcPA/U1/EtTtVjhgLKu2BIAj4ACLrgAAoIIhCAtCtBQhRgdBhlEEArYOqCCAOYKwLswDjOjATVCpOaiDwYT6S7COvwoAQQg+c6AAsZ7TBzJeNHFCSesegMAHHwIgQEgg2TgkkugSCUVC+aDAoonTugAgwFuEgC2Cgi4YJAqbnihirE2aLA4AGqzTaCCRIjCu4QgMYyjD6ITkUTAsmnzgwU6MqMkkazzDhIFHJAxphuAqPGmVVZ5440DOuD/AIprYBCSARJIGOGpEE7wxJMOPMCAMvUwyiCKKwzYSpAyyhCLCR3QEGSDRQ6spK0ww1xPtjQ7UTOvOUBcJsQG5hCpkA86orOjjz7IADbvAtDqT5iKKUIyAyoo1LJVBpjgkkY94yE+IDXgYAJjMNg0yjRyusqQKbLJJopkFAhTwQsooGADQQZxxBEJJ9zNLREy7ES55RAATIAQ1aBmugbMKPGjBSQyo5o5OCokA4rj8g4UAwZh1qUyGqHpgQoMwYIaLAzBQAULgPwshRB4gNSCa1JW4YRGcGitKiwo/quQZBYb07Ywc6sQggtUJUZfthwwrhMUFELhMAEaoMbgEQWY/wiwBRqopgGuGxAg2LwSY8jFjDduyY1GCoghlyUMoYbkNDrQoOWVQwANW9KWKkESIbJwQAJdDDEkg78C6/MCeiVUZdUFIfgZ6APCxEACEeSaiwa7Hi44RL/oBKyardWg7q+wEdgzAAMuMFsRN4rIoggCRMAppzRMmMCTEELQYPch67NPb0mewEGCAS6b43h1K6itgLIcKbWMslbdrTjKeHrDEHb9bRoFFECS+s1HAoMI9DcxCrYQ6xBLABRQHFBkY0WyeN0BG2fHYhUANnviKd6DdOES+xypBSrwAZRWgQUsVEddc0hAAlQiJqFBQBCqWpz0EOSWQ0WhEAEIwPYOs/+1qb3tIhNZAEW89gg1LKNqXwvMByTWCYxpjFllcIPNJJCGDMwuDTzKghAkwSQNqGB3KwPSklTDASi9AYEI/NocsmGGBISnAJUoSNB4w5bcIE4VEtrAOpRmpj0hgGk0+BCIRPgIrUFEIoBBoQobsAA2Wa0aIAkDJDphgEVsTBVKu2FOaAeAAqhCCIN8wu7gk4ITnOBHJECSJEYwASghg4nmC9YHEgBI3RRNEIxDwwUFspa1tMUBUmEXmjzYJgGIECPVqFNEsqaFPixjhCHJixmekyFQxOhPQlBalHKCQGQcIJBZeMIKnqCCzxhydyOAAswsQIITGKN4I0ugXwj3ASr/0YZAFOiKKsqiuLSA6QCRA0CODPGBTtCAeyUJHdX4ArqHaa0BWlBh1UAnvjAkxjsKIIAj/lSEcb1BFyKQQEELsIENFGEdPlCBEJW5OxIYCQoagGTx3va2BB7vL9lz15jWAgEJmkVxG0BDWhDEx+tlIwAIWKf3QKQGLHCtTRJ5o66oIcteec1rdDKJ2Aygij/1UgLLG6UDEsoWE/RoBfA5ZP9C4AljTAULy6AqRqeg0TYVAkaLUAUElAYAB+imLQqa1yaJwxYADGAKjEjA9mgQhqyVL2pa21rXUnhRi0SNhC3aoAMpICM3xCqpBWhEB0ywDuIoDQMd8MEK7Layz/AA/1ybkuQy+tAHjGJhCnplpRkMENaTfvSKQCNTFQ9QUAmsghoZ2CD3nhZXqnFta3V95WVvitfOjcQ5DaySjAbhAAc0wnEOwAEGDluAMA1gABjAwQpWkIJt8SB3HJCmEi3bB3dq9qpzAN3VFCCCZgzVAfK6QL3wRaGTVjFMN9RsNkqCAjLa1WCyresHuAZLQmCXahfZLOnQlw0RHOCvj2GCG2oYJpuZQCCTUe4ADtAjDuTObkCCZLmwcNnLUk0A2w0WXD0iqlAOBKTz2uJZKmgWknoVAKvISIcMU8ZHjEieW8sa1zKs36mJ7mBeq4hfphAFPz3GETFwXG0SDFbKkGsAJv9QVA84wAHQaOBJaRgZhndl1c6NzwydIEC9kJbFBCloHetAw/RMkNaRPeJOJQFJXaXTXXlyTQ19yK9+r/w2qlIVw9TAny5jsohXFWQtZ65NM0Sg3DQ4uAOeIAoHeKCBE1B2qnXGrMFi/LU3KsyWCkKQaDsZAyoCLVaUuR4CVegrw0ikYDvuml0JsQX9YjiW2JUx1x6hBSxcIcgxKcaryBBoAAzVIFGK0huW24EJOJkHPHjSAKhp5YvyBSNca9jCknFoCUROaPbC1yDSohZYhUmqIyoRO2ssW7p2TQtT6wOs57yF/J4RjSWCBEV2VAbHkKURZMhFch1sEBFk4Aq6iJL/BJh8O0xF8qKXzXMI/fIw0DXMDMn47EdB6SVV5Stfw/ESWyRw4fCtOSK23mmbWk2NyxLi1VtgxxZUWM/p2HI5HzCECAYMkxuoYm0MTvQ4K3DtK1xhAMYWlzE8EC4Lk2wZdd6VCh8xhQx8jlgw6o2EJki0Kv5sIAXAQQE6EGzVYtZXKy1j1+QIZxS2mx1rb3l+r3xpF3LQDBTzM0xUQYbJNAM9aWhG380UBRwZ+wDi2lS5kKFEarw6vwYTHXWkvoCP8FMgwBXxBUQ51jHFauiGcMKFVSgAj8TTImis8bnbrfYtwDrPsczz5zeyGNU5Bgh4Py2xiafcN7CABUFXLpTG/zl0Xy7d3at++hwoVkszwEYE4I3cQNRCgS1K6LyLmB6sRFDV8IWhrhaRLZ1AxzXht1y/c75xfuuMhSgoz5+OcQTeg633AcBf6EEHlXJPG7krBFgEyFgGyxcfotFRF/FxjvCIl5LajQqJF3pZFTRAqAacHgJohqk6tWCpMTkyuVZTO/FDowawLUuzCMviswOIARmRjAPoO73Tu92LvzBZvgP4mcngBScQAEJgB5WjtYuiJBKqkwBwAAfJF4y7ACoaNXKKFQazrrchnYaZre3LwLVLvT64L5XjPq6BK68RgcaQkQtgsNtDNBEIk7Y4QbB6FaXhhQx4BNSDtVgSoeMRH/+JqIYAqA2wAi6hCTXbyA1Qmjy3OAAnsCxZqgZX6i4ObLUOfML/0y8ODBY7ggTlkaHx2MK0arAGO4CBWAcTIJ4XrKJm6Dw6Yzl4yzDqeLg6kTgoSoB2aYbmAykAeAAC2YCj4SIInIwD0IXWUzOJAL2+0JqGsbEbvCyL0AKqSaGEaZEAiAMDuLnHUAV/k8SewAGFMqCeaIYomIJHWDobZDkbBMVQrKk1upMHqIQGQQPqIxoEIZoDSZAwMTTmO4Dr27M3yppqGMR33Brz80V6AkaDUaFY+gDmwJjYGw9xwDviQUG9S5QJ6ICpmJYpmKpOVDlDxC7Myiu9Cgk4goRc4Kb/UiELEpMQNECucQIAUVGQAjiz1PJDaiCd70M3eVKD1HO3l2I4e9SCYeyEB3DEx5i9vIM/+AOAcUk6POvE1FO8T2y8d5oINTKDhjCAXJg84AKpUKoi5qkXYvAmHIhEAEgDlPNF0KsrXWTCBvBEWLtBePvEi5ApO3qA9/kTyZDFcYI/B0M0SRqZm1q5oFQ5KNQwjPiLUWSzfFIActo6kDQAbeOm4SiOyjCEnigeOsOsr+FKu/pFbGy5J2y7WOIaOXIR8WAWN3C/Ueu7BnsDy5AkSUo8xVM5uhy/UPwaD/uIOMwikzKQcDQrFTsAnjDCYEOGxMOuR3Cvc5MzFEq9J4xM/3bwxa4BxA0ChX/8k0XgzMiBP+JJg0I5FETTszqzyzqTsa0hHTP4msTgJ6HxkgbxMmIghiLAAeCKlfEaydMCgDdAuXhzLyssGC2oRuBkO7aDNWrgqUKwI/YpG7NxhANRr8m4vUQbKhwgjuKxLEozTcyypw/wFXwqhMV4F9CyDRMgtGyLldzoJTYYKqxczNVSo3lKIXoKP/tcu1iat/58gNpwgCwwm5dwBJ0jA9MaqsNyCRw4ACXCLFl7tYg0H8RQow5BHdtwANy4INskK3khgII6raFqBkMwzWXAgog5Ny2ApU48Uf/rg92kjRYNLoZ6BhiNiRhYhBhwgCLYAJjIUf8qqyqUWzrbyiuweZg2qSMuKxB5MccHbMAF7DjJMYHJ6QkA0IWsNJiHqyk1gKX6PNFsxIKeWKwJiFRGCwFJAIExhdHhQcIUIr8Mk7Y51bSSuKOQFAiQoryBoLxAJScMUJpmaMG5bNC/YKUGsCzhZFTM2qGDk9Si4IARENNLZRYhMIHKYMiX88OX27DCAYyFuYswqAAvDauvKsK0YgM2sB5DoMSsOwBDuC7MuqqIoFVGPdE+WIUDyNVLYbRE0gAo8NVfHY8siCRqQjSRuSkVyqioUdY1QwDJyw2nZAtRo01hSytjW7BY6UM4VYMp0T5rDNf7pIZj09UeOIHdaSgVaIH/ErDUdnUMCkir0RRUNKNXjPKLWAWMFRGVI9WNIvu3j5SghLJEADABpSEnEZg0WuscE2VYQkgDDDAGiHU0DRgBSTkmFXiCZ7CBjIWJvykXqsKCNCgo1botjLqKwgHEIQWPMIFZryrIgSA0ZzwB54IkQDKI2jiASfvEEaHGV2NU4HS5h022Xd2WIFEmFZAEoz1aLlDG1JLLt4nLqYo2zcqV8fkABKABDioEAUAGg3McvcufqBgnD2A0DsCUcgWTgsgAqrpBaZvVRdVSR4XU2ykKJ3M03XmoJ5AEVrDbXlIivV1dv52CYDkM0qEB5giADGBaAiGAgkO2J9nZ25kATTEB/zz019i53Fd7mwygxixV287NVdAFXQ5QpIl9gicQghmwgqPdQl+SyyVCoNuqJ0PQTrAZ3DvKBmpIAwIBgCswNibb3cUyrPEyC5NKkAMQgOsihJClwbTV0i3oXGSL1F1ttAj72ScwEkmQhBmo23btJV0Yzcwime5d2s4JDMNAAVCYg0cwX+oBq7WohBjo4AtQBUf4DUcAglbx10El3qrCiJu1T0LgX/91Mt2RMA0Y4CPxhRKYARBA4Etlglw4D8vQWwcG4hTWy3xtkQcwgCigRNG6gEVIgiQAgt+oAimW4t8AAiDoJODCXfq9rnpCw/zVUmrg3c+F4d3ZBENigBFIhf8bfoYczlhlNAARCM2+JRkghtqHKwkZaAgEYEUDWJ4FAYJ7kWJFIAJCJgJFOGRFCIsRrj4CmMXVW8OsRD373AJkEGPnjbBkkuERkIQbBoHTbdfAagbo5FsHvqjWg+CIKeI72ordYOIqGORCJuQbgGVDDosu6bSC0IUJZL1iVdBF3d8B4FlP2NUTEF2WOeMRoF5rkALrbVdltIkf5t5SNuWGQ4aogwjDCIBciAFVAII9aOJYluUXuIFYTuSw0Jf00lY9Yzino1+HvM9lCGb/fd7cSSTohRRJSIVnmAEp0IPrDTbQjEuMKuUJbLicyZVys6NcuAAr/mYgIIIbIGdyhuj/FzBkRE5kcZiQTkqaQd1lzPo8OblZLDg8DPAAXeWA3akURdKdTZ6BZ2Dmf04tncgJOh7pJaJXg44pwQ0AGgCFXFgEIEgCh6ZlWZ7oF7josMhoCuHoAdhiXuaLbAiDDsTGLegJ4uHZCaiBooDelFakijVgKmjmX30ByagMP/Kj7ZXmB8aCeesQSPBpoBZqoIboWI7oiC7kQ07qEV6E9AIAt9GzpcWCD6i3/ntCXbCNwTNphHuy3NEABtid0n0BKpCCaDjaGBgXHMlsHNmwKZiCq9isKei8alKpfzGA8FiEvVYFcbgBMAADurZrLXkB2Z5oIuASb8PlZlCi0Xu6KZANIEgQADrLLwEAJEA1uhrQ6mVLpLuBghJgBmvQg8rmgoAAACH5BAUIAF0ALDEAHAB0AKYAAAj/ALsIHEiwoMGDCA82WdgEXMKHECNKnEix4sFpCylppCSKo5GOHDk2mWaxpMmTKLs00SiqpSgjSJCEypFDnbqaNa/JkZOyp0+fK1t+CiVzZg4+O5Ii3YGUjxIjgZr8nEo1IrhAHEPN1EpzR42vO3okHctnzKeOUquqVQuuyctPNJF8knnU64QaXmv04MCBBw91Zo3wXEu4JzhKc7nm0DoTqV5PPWpMmNBjL4cUf48ogTG4sGeLgcbQ5MOnbt6vlSdP8MBFNd8ef3PwuNT5s+2Hh+F2zRskCJfWeidz8eChwwQunjhU5pFjBwcotW9LJ3hY1KehfGr0Zk38uOrhxIkn/6eM2a+GZ9PTU3drZEx23+GJD2/NPTwXyZNRczgBRb36WnIgdtMO8MVn33BBsOabahMEoVoNHITAjH/S6cNKIDCF8h4XHRgoH3et5ccgg56cMCGFtl2IGHY1/AZefByq5klyJ0R4wgmeeDcZB+ih6Jk+0njEYm/zuThZciGE8MQIUEBxCQxOhsABgzz66JkVQb5E12n6nRDCCSo8AYUkXzzzTCkRoHkNFCHkeGQJVha2E0fX0eVXCkcwwMAIl1zCZJlmPsNMBMwUGoEvl+B4ZI9xqgWkRkZ8MsYY6mjmAgxQIlKCpr5EEIGZhHpqqC/XaMCBm080SpgcgVg36WaYPv9pwRclkPqFL898KiihIPQ6qC8jtDljCDaoqpYcpbSnzqWyIvLFrF98cU20uebKa6/Y+gKFqTmeMIOxVcnRXk0u9OnkJVDAAO20t3YqKra+RmCBBop6C+5U07CixFHLmtunuc7SGq27zMDrqy8WPCGsJ3De65M+zDCA1BHl/msxIhYg4ku0txJasMHMlMDmjJ5I4rBPrDCjgVgpMGDxv1AEvPGsnX4MsshS7vftySlBvPIOLb8M8zUW+ILwwDbHSysiOa9gDc89sYLInS4LfQnGNFsAbc2FFrrxM4iowFcWrECdEitfpBBC0H0yoMHbe6Y7a8ZN1t2kpiXkjcgIN0r/oo/ZKYHAwGUMuDCCBl/y5aUGLseMyCVuv63BCCNIoqkkM/DtNOApyWFBCEfkifiNISCeJONQcAwFCZvEjXfez0BxwgpWcJ4SM4cfkYLkekquwe5Q+FLoF1CokOQTLUhSgpkin9BK7bafJAciLjDQsp5fJud76oQ+I0kLKrSCvPKCfoHICi04FL1J4DxzSfXWJ0m6CiowfkmthW5q+fI2P/OFClB4RrHWZ5GraK1PjHPbExa4JBJcrUzMeMYMBFUoeD1DZBNkFAEnUosLlQIR54IcCUjAOMpdomgeM9OtBAWCQqnQhRukSC1sEJVArKlPJHAZAxw4QhLAgGCDelcL/z3lqZrFcCKtKoU0pFGKcxXOZT10mbOAKKpBBdFTRTvRESFSipdIowkROJcLSDACMh7OgSgkYtfW+IxOkcoXA9ziQyhhBCMosYmQ09MO9ci4ommtYxFooaEiMLBraFCOCSnFJ+wYiH+54JE5fNvaGLC6mNUMBESsltEiEEdEJoSOoihFICzwvjGO0W0h4EHLMvYFj33sitRiRic9iRA6loISpHykC5Sgx9ZdimCC7BoRcQWCWdISIRa4RiBK0Sdd6skFpSjFNUpRM0/l6oq/YgYroHfMh3wBBoEIBAz+lcNLyaFTrNgmK6TATmsUTJjaVF83H8KMLwRCGojS4zOvMf+CEgzhBi8IaECpMIMJdg8EZZunRORggy/k0XopSIHhWjCIQQhCEBQQhw6EkMFA2YCbCoWIFWKnJ7X55RItyEJFLUqBiwqhBCs0U0JDKhEbSMJtEV3b1VagikH0VBCD0MEQ8gbTEswABDSdiBVuGtGIagAGI1jBBjYgCFWoQgfisEbeODYDYyb1IFbI3O8iegQLRJWqF73qC1hR0GgZdaZffQhJf/c2RLRgBRdNqziYYIOCEnUGcI0rQsB2ibEyoBRnzStQmWCNF8xgq4AVLEQuCIXqSTQQUJBqWnvKBCnMQBLKK2hgJVuQzOXQekrArFTRulhrDCG0ZkIqaREygyf/aCB0eOLnalu6WCpgLlDPQOhsD1IC2zY1BcWbKm8FoQPGFvSaBfvocAtigxFsQne7Y9pqp9ra514zuFLQw3QFMlLrim4EFmjFVDeABqoOIqsZ7N4zwqsIRUzXCjaIgJ7ytAkYfEG9G6AAGtAAVPi2sVMStIEebrAHIMx2hiD4wn71RMYVSJUCGN7Aewk6wVaaSQo/AEMMyOCGF0gWvzYoQQ7z1DgVZEEVG1BFgcXxAklYy1MF/YEe9kAGAEBAHFJIqhWsYQ1WgKAEbrvuEdSFvooyQRE3kAJAH9tGQi2PE2DYQy4eAAAC/JgJ89SHFGr8DFbYtKShc9sJpgoBDDNX/wfKe1YrSyAEa3DiBzx+AJe7XIAN6CDIcsSvJITQghaU+Rkt0MB1ncqAJ6wgC22mwAaEoLzlBQq0UrhzEnqsZwMYAAAAMAEOBjGEGEoQEQwUnzaZkWiyHqF1YpqBUJkgDkpjjGMlaMEM9KBpMui508c4wAEAgAEcFEEVTLgB59hqW8StYHYriAArvHe61rWOAYiwwQtuwO2hYu1ZI2iBNX7ACT1sessP8PQx9HwACYCaAA6ggA5MfLJptyAEzz5VBzrgiWjb4MhfgpsenyCJJ9NaHKDVmgWgQPBMl3vToE63uoPdjGYIG9Si3kCpjSUH76lAUfvugAn2HW1WWGMGrf9YQeneZlsVtIAJVVBEFWotCa0xvBVU4DWWN/1rTxuAF7yweMUrPmxid6ARg6A3ivLLcByJHAPGMAEGQN0BDvjCzJ7Nwsolp2sqgIHbTLDcwhEnBBBzYuecTvcxDHCMoA+9GW4nOqjjrQP/2MB74NO31DFgAgAMYNgY8EGZWaHjG7SifpIbwQxuAIavC0EIj0PcE3Z99nIDgQzoXjvb4/72zlu8yxQYhHRGWtyPe2LfUx/A31X/dww04gus0AO59TCEBTJOA1CgAuO/zgQhHE4Dkzf7nX8gjrSv/RjHAEXQK9D25QO9GRWAuwI+DwEheObfIFTBCnzw9HZLgPWsdzf/wxRM7hAL4Qkq0FPuG/91cbSg5ZKwhs6HD3Fgg6L50Yc7L0ChgOlLHxSgIAZE52XvVRX4JTIKo3cAcAAD8H0NyHoVBwA4MAPspHM/cAPnpyeIYA3sdwPicHi4J3/kdnY6lmcS53PHoABu93zRxwvI54LIR3HCRgAFQAEb1xOf1QIpdwITIHILGH7gxwKq524TKAU5N4J68AItQDnZxm1JKA5Z0Ap1JnskSG43EAMAcIJrd3/LN3QVwAv9B4YwmHwK0HbHYHFeJg4oAQ59JQQp5wOnt3fgx3osIIRXIITuJng2IAVgYIG0934loGB68IRZoGtUWIU/UAWc5nOexn+8/1ABA1AB0feFQAd0MZh8yrd/QDdsBXASrFACI6B9PtCDUidsQDgAQqh6QsgGDQgAK4BQRggGladjNVYCIDCIUjAEhUiBIziCD5eF6fYAphCDQccLIiACVyACFaCC+jeGbVeGKdh2B0AAolcSQvBsp9d9c6h6V3CHbMACrBh+GNAKNsAKugcGvvgDntVVCiYFtBZl81d5nKAIaadnpqBuQNd/x5gAX9h/lGiJzXeJa+djSjcRVFAEcViKDDiHLNCNVxAF4PiNb9CQAzCOxUQF24aOs/h1e8hOyRZevlh5O5aFBtBz97h5QCeJ+Sd9lViJKXh/MViSBKAKFpEFOKCQDv+4jW/ABjzZk6zYkFcwAADQCjOAkRkZj3ogZcn2Ao7QhyFZecUHAJ72a5eoAMvYf2HYgo/4hS84hiW5dlwmCBahClL3g6eoijvpkzwJlBVwBQewAkIgULvXi0l5A2gQUE35A0/JCVcIalMpjF9JhmAYhiooiVa5jAKJfIFZkg5QEVJwAX3nd9s4AHf4BmmpliyQARnQjRKAA1kwBALVeIP4dQAlDhcAVIrQh/J4dnpQBXmGiaZgCmpHhlipAPynkoa5jAAICsMYgzD5aRWhCG0wdQ4oARJQcXdYh6hYhzxpmXUYBRBZhwSwAeIwBENAaxZ1URUlDuIwYILAeIdIgkT/oAhJgG7pFpvoCQqdEAAJkAC22X/8iJtXCZOJOZBiORFD4ACglpMD0AzIGJRryQJR0JyWGQUPaQkT6WMUAAE4QADwBgEQ2mYERmCCIA5Q5pR3BgZVAAQx0GmxCYAfup7s6Z7+GJ/yqYLQiJW/CQBoQBE6QAAY4H0Q2AwO2Y0s8AZRYJkFmgFO4ASW8KNByXrFVmAVJQjt1VKRpgpVQAREcAOKsAcx4AAPgHymAKIh2gkK0J4JEAAAOKJY6Z7uCYAlmgy2eX8PQJMT4QYEAAD8SZkikAzJ8J8CiqMImqNOgAw/igxOkAF4+gYD4GXMxZ2C6ghooAq8NQhAsKRE4AhJ/7AHeyClBlClyWcAvNkJXdqe/SeiAdB/I9qe6smeFZABhRCGngYBFOEGqTcA4ciNylgByMgCltCjbBAFPxqrPWqZPeqQzcBnEHqoaGBRgqoITQoGTCoOjnABUomJu1mlpoCl7RkA0LqlZZqlVsmp0FoI2eCq7rl2nTgRF7Cm38eTrPeQV+Cf0OkELNCjd7qnTkCrOKqu0CkCAOAABRBpEFAAF3CaEioIjmChimCsQCAIBGCPsdkJlqqeoLCpWkqimGqwXhoA6/kBH5AN8VmGD9CYE1EAqTqHNfqQtIqglpAB0AmdbwCvToCjV+Bj7/VkMmesvzpg+RqzUBoDMUAAbP/3oeppsAjbCZCgANCqsMnAj/C5sAEQBh8gqoVQAZBgqcfgAGoYETrgADHKehPZsd0YBYxAslp7qz0aBRkwBZbQkIC6V9vGbYqgCo7gCPVVBTPnCECwBxdQAAVgs5FapdDqs9GqsCNaCMlQCO0JCVqqkoWgmdmQDOzJpcdAAPcJEeJQimipistZme3qo3Z6rng6ueqaAcMGbzVYVT8FBIMQcxfqpDNnUQXgaR/6s9HKj50aAHBauO2ZDX77pdkguwlQCAEACaDwAATQohHhCDDapnRYoFHQtVEwBzzKCMrro1PQrj+6p3HKZ/lKs3CrCjHgqEDlCD5VUYZqs7u5ns//+rML67fJULvla74kGgCFW76F4Lfu+WkXIBGDgAFT+31BqnrNKaBeywjZ0KO22rxTALaWgAwCIAAZUAEEEHoWegNs6whVRWAzGwOV4AD06gAEcAy6a7AG67PPmqW3257nG7TY+sGcOgeyWwhhoKVlaADVCBFqigHCOwA7eaM4ygKvq5lT8LVz4AQCPMDIEMAi0LvvBWVMygQNprZsa6wXdQEQasHCWKkOa5XsicILmwB9mwC2u6XXasLYirvQen8GEL8RoaZsqnpVG5R1mK44GgUikA2aicN7qpk/GsA8HMC7SoMQcAHYe5pKWl9EMHODKginG6KfqrpFmwALULuF/+u3hBu0PvsBfiuxYRAACDC7ZxoRQ/CtkkmZqpicNzqy5fsBOfy1AYyncywAU4AFAvAIUyCv+Dq9MXABaFAAsTxgFNpTqoAG3qvBlIwACNCpiPwBXBy02WDCcLqMnSCxwly77eu+B0ABUDucm+ynJauuuBoFFQDJyvy1yICnjMCjljAFAtANdqy4CzyepikIekyzUUrBlVAAFox8hezLvty+t5sME5sBypwNoqyZQXu7E8vPyuy+vPAA3foQxVAAZinDA4Cg7XqHlQvQX+ujyIAFP1zKAWzAjKAABVCh3MZ7hfpexsq96nyvFkypGmywvrye7tuehSCxsrvMV7ClkP9AybJbu1yMqYkbEaogtZIpAqj4BldQsmx8p1lrxXMgzHda0T980XgqAHMwB8kgvZt1ATLWr/0qqCMtyACgns3aCSgQACgQ1pDQzCkc0MVswPYMrR8gAMWcAQLgvohLAGD2EC/MgOR6BScbspvZoyIbysg7BT9Myt0s2Kg8BSYsArxAgzHLxIIst/jqnVV1UQ7gabysuigcBguwAAiwAN2Q1HMA1R9guNBqtEmdAaGdAUGLuAbguwlRDDDqdw8pAs5Zss+rp1GQDHBNwAb8tQXczciADxadw9lgAJUQukz6r4War3JLwc5NrwRwAMqoACKKAJPMnmFg3bhr2nCt1u3/+csvLburnNP9t7ti/Np9t5A2iqv+O8CxWsrIgLxzIM4CYNEVjQUWjQVTMNVoQGPsxwRAtVI+lVdMDM/RvYzNCrHVncL0jAASG9r4MAUUi7udvQBQjd8S3r5legwHjRBt0Hf8qaPt7cPtjadNLc4BnMqp3M1OQKY02FIr1VIhvZ2COuAQQAD7V7AGiwLrCd6IbLSDK9yqfbvWvQBGKwD44NZ+67cGawAEABFFAOIy/AaWIMM+DLLdPMDNi6B6eqf0rd+CraeonbWLXQk0ewEx8NgRSqGKNbe8mbMp/bNhkNlhkNb6/QFzXtoL8AH4gA+PIKqarcWJWwUPQQFSS7V5/1qrOhqrmumjfI3DU0DO4ozfFh3VUw0BoVtfx4pRBU7BOADPzg0AV1ABcA7WYx3W1j3nkDzfqAzJYfDqRrvn443nnD3JlhrGD4EG+umAlpnlfdrr4dyuxSvOfBrA4RzprFzAJqwAilsFu1cFv/peJI0GC2rS0V2mGiwDGvzLr46taV3AH7DnCaDZnv0IST4HKPyz2i6bi3sQG6CfC7noVL6TvZ7l1fzGjo6nqhzAUR3VCWAADgABQBWwp6mdIl3jMgYBlZ18Oi4DYa3nOI0FES4AtV7Jmh3aUE2x9BwAMiADa2eqr63QDKijqlqylpmnFR2rXovaAgDc963Kyj4Hc/+OAArAZ/Uq8PfaqwRmVUWq8FP6vXEuA+yZyHNg7uP8Ab5M7gsg3BGO9L/sy9DaCcdw3gchDgpdxkE5kYtuysC98nCNvEtd0QUM1XPw2R8QALkg8P06CKeJYU0M2ZBtwQBQAQmQ0jwO1iKq2dmwykneDZDsy5vN5/itz5y98RDbtBDRBqC2BA4Jfu2mo0wt7Lv91JQu8X7+CN2g2gZQAKpgoS8wCBTQU+Iw4EZa4AYOAM2wpZ3w1SgA9dbdnmHQDX7eAHOw2Unf1uZO3zJftH4LsaDw5A+hsagvAtAphAdQdadn5ZT+1C2fysON34/QAA3wCKE9BxUwr7xF7XnF81j/XaQbELcEkPopne31XLt8/wjjTM9hENr4TcA53b5fvHZo6uGgFonJAJEH4AnyMwEYABAD3mDBgszJlCkEsUxBNkUAQQHdpsyhOOeDiAMACBAoUGADhI4QIKARJGjQSUEUChBoViFAJ5gxUSBAEKbQB3z4FlqkGWaBAKBALS4IkwCS0ZegHlDo0tTp0zYYADS7MmAAhhMMjhzhMQGDQCw6sWSY0+0hQWQE8QXtVnZOMgMERpakIEgkyAIOOu7dODWKy5gwUcwME2ZOg105BXz4EAYB0Tk58T2yaLNQoQQBkoKq9NRzFzcEABywioEDAyXq1PGoYQKszoaMupl92BAt/5aIjMMEkItG1cm6g8TpAKIKzQWQG/seaAZJRmCYMh7ffKRGDb4pjWv6NDt5qM8PmDcbgPDZqZUhRUxgkGBihQbUqUN4cj1QLMI5GQRMEftw/xSz5sgmAQM0KgACCiAoaZDfTFJFlZIEQSNBBwDgBSZTOjElQ+kW+CCy6x6ZIpkFIHEMkgUeUXE2DxlDCpJOQDGgAPO60EcKIYrAAQMMJjjhCCVc2Io1YwRKK6cpGBEgv7MaSmuKRwLMIJkEKtCIIwQ70utACkgyKSUcCDjgipdiem6mBbqpzrpHFiOqsDA+UDHK8ArJJhvMMosRFAdqtGKGVlboAAMTJuCAByDHUP+nBy6+suRInWZrwCy0KIVIAEbmSEABLBHsUqS98toyr9EkeCOKMs2sKc1drlMsgw8WkHW2XR7Bp5sPMsgmA10XwCzGB3K54bNaQGghBB86MKHQGnpQ4tkjGP1qILWwEHE/AdIiKKGFJsqOQL0QnFAQVcQ5aRAJQXJAzCsOEkDXwF4KIM1u8HGVsmwWeCzNBobBZ1LGyLIIEoIDOOaYBwb57M9AV1ihjQ46qIEPJYwIMgSvrIIUW4q4xU0toSzKzIC4HBBJwt/OhVCQDVRaV8wKEpBZM8EeE0CytYaS1cMG+vh3tiXbDC8ASAKQkTzP9LFBiCeeaKGVEE4I4Qgjqjb/AgYGTvAEBwDsgw0LSxyyFiGzHFrMIioVACDcAx0Y9S400Nhgg5RWMoBKzWDsBAUZFmgAH5/XamCOnbtp4JFW6bxp8FgLKRoUUwy4wDMrnmlhBChGGIEEGGAopRSrSWBAgxCKIGAAZHJCC5mgHALQdYuywRuAudAYCQLkIIghhgJwwOFAkXBY94pkxAsgQxRo8Ns6xSz6oBu/D98lsbU+AArXQgKQQQZQlKLxKfSEgAKKSy6xwIJrPjfiGgsuGeGJEBoBYICwVGed1zkeemRSoe5kLAAAcIkCwRGHIwzoCHSBqi8AkEAUpqSnTshgMH6z13VwRRRZNQAx9zqbACij/53ndI8A4niKNSSBufGlrxSUuMbVOqe5+dTnSApxgoD0sxY1UYQsH4qVAhQQlwNF6CTDQWBJJqQu0YggGalCQSeUV6/J0Al6jDGcGqinosFFBHupUgoTnkIFFTDgEp5Tnws790KMSUUCTsAH9RRCkaAFBRkZiEIhPFSUCsglQWh42V48NUC6hKlrUUgAKASDJpxMZlI7m1UDmOfBKJZli4bUkAHQ8BQdhAA+6bvGNTrnAhJAARGIsAAUnuCDRnCNftRDRiv9o6KCAEVXH7KIAhxArpSgIS970YvbHCC8dU3lDVPIgOMimDwU/CQnarjgzjTYAC0kxlZziiKuIBijPv85JQsrCAEUAnGNSwjpCC4w3zV84QsLvK90rkmd/QA0p3clZI53skgADBCuC3SpSykzYoLyIpqpiMCB2dDe9h5jFjX0QQ0NiFUjNagFK1bzZpPBXtE0Y6UNOEUcPtBABGAguhSkQIwW8IU52QeFYzXiK2G5zrag1CYAXY8iupGZAngRwAGKqyT8lJCE/MmSKWlGgjNRUxQZyshnKnQykIQiPHHDq2Q045JNEccKSoAIFWhAq2KEgTlLUVILIOIJKkVdTlolFuz4Zz+Gi8hiMBMGTv2xEi/jiB8HmNOVXGEsmaEJTaqohv3N6gPPhKZ1XCWZNVlxejqZEgE0KoQSPEH/q/Ap5znBiogRhAAHpgrL9FzVraC0dVKzcYzRCEABdMUtOQTwpXLoKiYWWIIgGQgAAmaCAEcatgH68ttstKCFPiiUeYet4PSMOxapdkEPTKBCC7QaUhfAAH2dZF9YW7AC18h2mQlFq0NmM5v97XZnvKmEAEPiG5T4FIlikoBssxMGNB3OsPral+GgGVz8DqMP1MvJIjO4CwGwoE/WGIIQAjVZcp5PumEdZSs80bX6WdGwrvJgAxyyP8NB7zGbshLw3FYA9KoMXSxLUJgGgow5OIY7gGXRvviFmOAOQ7/7reBCd7s9GVgPH5YAQBduMJxtjo4BDCABCS4xvlEiQhLY/33NLhQa3OEqEkBmiVKafHIUA1QiQf4MlcnugiBQVYiNS8oGAublyMAykl49G8YWtoDfxOhWvAa9mSUGAIEbILAIK3hCVuFDWVGOEgonwABpkLFYJ0MZZ21qQG66URQzE6gAKdEnhZRz6Y28bExsBHAyHLNmDaq5OzMOrr32y6bfinde+hHAFQighyoMogitUEEIQqpJIkOBwVDgQKEHMIXFJlTRzZuDitxE392UjEuicluXIhQ3vG7kAGlZkk88NJuGipeCu2izv9ZiK0Wq4bdamFQYdnWnBEwuz4PYptRCoEnMJRkRvP4K6oxrHfy2NDv5WxJjGlqYBMDFw8rRsv9JGDTiliXIBAfAQmIEkA3uGK6h0JMU4GTch24Adhf8E8BDE42P/GUAEscozwvM5YYi+OBQ8CnyJZLM6/kNZHp9uPiw+22WDO/sMQiYEQUuQBLjhNmXQ8fBekgD7MQMZbSFs68j++AF/WoQcZGMVRWDKxTeCKILilDFBRrRCE94AtdDJmVYn+AJjYVFv2ufcWKwMJS24KqhNDGFAyYUHAbVja5DX07XADcZnkFPsNCbFJuHYePDquHhmkEAitrygQSMsCmK2EMM2oCDRnDg3SnQAAnkrYIODOBRqUt0oofdpiVluKGyCkAuTDZALfVRQV+iNASERwC9Tk9ouGJR4dL/JOxhpNrJxtVJ9p4jHQR0ggCO0GgbLO8AsHNA+hog57xHQGjUpcXJW5Cxm4WbEwyD13mNKQxcvKwcABioLv3UkmjG1HAna/u7aeLXI2iO3/3S3LjTCw+OuQcAhdGoC7A8AsCBDvCEGtC8IxgyBkgj0XuDQ2O7GHszJDGb2XAL7TAtkVi/kkg4SwOo0eCFZkg//tgvLMg2wnom4JKxXeiGYjqLjrOxBagtGuiEByCDAHQKNyCDNiAAE4iYCWiWQ+EBDuACYziANzASbuu2GNOvlrKWiCiLiOgrUwCAfEKQczmXlHiZcBE6AoiCNvIXizgMwoqeJsSHNzgAqaCKbGAR/8OZwe05BgcgoacYhALoQR4xAWPgggnowwloFKtIQtniNm67P+4bhitqE5zrveQDortgNlHhiOAgsZVIojaiMYuwsRRUg4tDhquIGK7hBRTJoA8ok2OIgc+wwx5Mv9EgFD3kkVKxCtmiOQlkQv7an/C6oN2wJ5N5LUybC0sjjQGYiobDr8VoOme6Pyy4Cgw4wEbowQfwoQD4EEjoHlCYnM+4PPc7AF7IiPS7tKkQiCWUMXIcBi+gwGWyFaARr9ICgEoAiZHwkggJpHU5AAkYwfQ7ACfAAv0COTtKwW7QAjfbhSTEAGM4QE/gAB8QpAfgBaMwpAdgvs9QBd5hxQdAGP+NaC0AEIEM4MduK8c28z7DQqzeixVejIF82qmDI7EPA6heSr8rAJz9qrbogSYtIMdl5BEPmABPcLcQWIFUIoCGPAZQIANFMA9HaAMyuBKhfADWchvRqICOpMU3i7E+cLM3Yx7wK7w3nKK4EhVeqkTRuDSRYK+NtLj9eq/CA64t8II+KMgfNJR306qfLAJofIAHQMUaoUgebIQC+MaXmQoW2MdEY0HD9IJz9LattC/oKQpe1JJQiUTWEiAKOJ0ByAgJwAL8w4eqg7GQ7IOrOEie1LzJIh2HKYKlBAAgqJGmKA5VcAOuuRILkcWMyL2Zyy+sLLXrACz/erTjyYVK4J3/DcynuxqgudlCBlJDjQAApHNCLMq/ttyCnOyA0TwBDVABFXgCBmiapnkYMpBI1lQEcVCFNmDFqViCJTiAAhgEHXAN+Fsm/OK+YTOq73KMTogL3vml3+myAym6+fHGSwNDWpwwmmvLc0SGA/jBhJQaDWia8Wm5p8kCVWDNp/ixZ/wn1sKB8miK0LMEnBk+7pPPw1IT/3IMFHgAB7gAXkI/VhRGNpAACRgACWCtjRABzbw/6rlKxDzHN2jG0SRNzRmf8TmhVsiCIaBQJPUMcfgK7Vss1um+GQuRZ7ogmrDBFP0jCKCr9GMBFmiGAzgAFvBEGhUTwCnE4OK2HT1HS2jG/7CTPuvUgM0JJUmQhBZ4glZ4gSTN0y7YACQ8tJxAhjfYyPxrO8F5plhBAO5xvdwZIDHJCGkbAD0qABNgoDEFAAEoTNzcUek8gAM8AU/11OvcHCiYU0kQAiGQAj1N0s2yD7SQgGmbnu6jQKDIRX3pBF7MUh/8CjY4ALkAKBwogrkpAk/gkcDMgDYyPSczRy9gh2HoUersyXd703hTshIogSGwgVRFUgLgrPopCPhbQvl0O4bCFccws3uCgNN5gzdggyg4AJPBgS81gZ50mAfDgNsDgJgcvppTVmZ1Vp60Tk26zlAaJUlQslPNVtYsgvl5FLU41v3bvlMDiqWLtHPFPf9LuNgklIsOIA15lT5POEJ7DZNttbhk3a82Q8xhWNMD5ABPncvsRCFEaAEhGAJ9QNga+UuB4A+c+VD8cyMNIj8EAJeVSAb9cIKqMAHfmZ9mjBhlCZfAdAIzXbsQPUd8GABjSEgO4KZ3w84nGIEWqNMnEAKbrRHRED2FaNgPTdYtuKJ/O56KPQZeeICM7M/IHIkHSQlcxVeZ7MfbHMgeNRQGLU3NmVNTtYax/YwNYKDs21nGvcT9ahXeZL0f0ouNCM6f26nfAAIgcITNFQfPBQJBUNF1aYabGb4c3QU3GwZP7NTSfNlRLdUhsILD9YzENRUIRFu14C84eyTBC4DJPZn/JDAgzxWHKiheRVAEIjheJvhcvK1HwnxYWOW+ZTQGnuQB0tEqFXgfr22BZ5hdzyhP0Wslb2XcxDCux1WMxTAzezotNHAEcTheIojfG4hf+k1eJlje8bQd4dnIb0W06FVdDOCChHRZOOVOIcBW73WKChGIi9WWsEBbs9o/nZiIxtCMe7oAQSBe5CWC+QWD+a3f460CJkCglvmnZvhWyehbRPxbd5us92maGUhgjSrbN2DYs9WJxr1Eh/sOXgyOKkDeG5jfDwbhKiBec8HbMHlV6J25kCRIeQ3YMBqBVmgFSZBhpygG2HIC8W0lSFEIszIrGsuZ4kmGtfk54YDf+qXf/xdAXuU1F1X4CLfB12IsPfOFswGQ1zdt0FZ4ghi24i4QBwZiAQjkYgdWHQhewunBjWz4gGy4J2d73w2W3w9eY0Uw3uFAF5eZH9IjVH2Nsen1kevEzir24y4ohnBs4LQQ37N94BRuM5+JJQFxZEHY3Ejm4OSN5OMNYTeGYzGxhJlbrGPNP8nwxB6B1lYg5aZQhXAk5IJQ5frZ2dtMDIcQEJwyCUiu3yBO40qu5CooIpUQjXyV4PI9U+yo4U/kgBZA5qYoz2YYZEJm5hw2LkRkrGxYmy4ZBEeoZSEe4vgt3uLlXFX45tPpLDjT3elxAl6pCgxYAXVuihgAgCVol0dBaDVZQohZvZlp0gnEmZ4l0RV3rAtHqAJbDmKSHuJc/uFKPuJvnjZ7cVzFA4ooIqaquIqMytOAAAA7)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688676"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688686"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732688696"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732725170"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732725180"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,R0lGODlhyADIAPdOAFJENDQyKysmC0MxC1tMRGxiVUM7NUk5KCwxKzQyJTszLCotJLR6ayYmE2VVSkM7O3RpXcualUQzHIdXN3xwZzszJMONhXVsY2I8FjMrFKx0ZYN1bJZlTHVRMnVGDSsrHMyfoqNrXDwzG7N8eLl8c7yUi2lJNZlpViwyMqxyXKl2aplsYzsxC6uDfLyDaKWZmMSLeGtZZDMtMriYliwtMZVZKMqqqaWcpHdZRrZuJ5aDfaFcGqpuSZlhOoplVrWuwYp7g4tQFKqJh6WSjZuYooZrZc6Tb7d3W8iCPn56grx8XEM0JJySjeC6nzQrC6t6dLmGezUxFLanqCwqBa2hnZeNk8q5uDsxEyskAph3dRwbAhYRAIFMD7l7axIMAMmWiqilqiwxJTw0M8F9Tl5NYJWMiystJCQlDHxyazwtChwhAjMtGzsxBXdZWYZsdTotBSQjAUM1NNW2rCsqFN2hbsSZlbWMjLuywsycm6uOkbSssm5qc6tlIx0bATUxHEQ0IzMmAtapkYV6dI2CfBwVADMuJDMnC7extbyLhMWdoJqUmHtzeCsrFINfZIyFhiUlCzMuLEM1LLSJg9Cfodqqhl9gWzUqBLqEc9GomiIcAdbDwbJtZ7awxjUzM49hPdCOUjs0M8N7ON2nebGcohYbAdGdijY2OdGdlbuFeruLhIZ6dTUqA820sad7dqV/gLl7bCUlDDMuI8yJS9SUVzQzM9bJybqEdN7Ctdm2p05JUjosBSIcAkM1K8K3wcmWi7Wuu9mcZjYxFDInCx0VAI6Ad5J6g3RFDUM2NDMmAzQxHBshAiMcAsucm0Q0JLu5xsSZluPPyMm8v9atmeTTzSQjAiorHLmeocmVh41sbDMsGxYSANLAvhwbAScpFLu1t66ptNvDuiMcAZSMi42LlDs0NDktBSwxJoSEirCnqyUjAbVzTXtnWhEMAK2Ab5N/izQqBDImA7Klo8W/xIZ6dI9zddLExjImAuG2lCUjAsSYlM2/wuG/qdyzmenh36R0Z5+gnCH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCABOACwAAAAAyADIAAAI/wCdCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LNiW4s2ebqOXXpOzVafwoiZo7l46RT5+MUKIUl5Lbp03kiqJDmM6nUKFy7NiRo3EOHgyM/F0Kd69hxIkVL97MGXIgfpOPgpNLB0njUEgSc+7BeQfrHJ8oyQk9FJyou4lD4UVienGNGj2CB+fA4QQPHkeMgKYNlJJpx9A3A+8xIciE6548FUeu5NIX5j8paf/m/LtGkBoTgnuqbh17jxA8UsS3AL6n8xyhfFv3wN/D9f/9YUeccfIxYEN9Oo1mFxI7/NZffx38N0GAE3gS3AkhhHBCCqnMhmBN04DDjyifKBZEEA8+2EEH/vXXnoTDaXDghzOFOGJvDU6YYoAtXuefhP/1cIIvNM4kIomq7YAifyymOCGQ2VEHJAczFglTYHchMQYP5i25Y3UVFheCBmSSecJ61/VQpZUt9RNXlvkpiaJ1EQbJQQgMXJJKKr706UsqI5yZZglswjSiYVpq1sOAGaaggQoqQGFBHcxEYOmlvljwhKCejFDoS00MdlhmKaSQ5yWXQKEqFKnUYamrl57/YqkvUKiwnicqfOoSlqkhpoQSLlwCA6slWNDnpRF8cekkzDAbgQWBZteKri7xc1gORygBg7AwWGCsL1+Eq6ylskbQ7CToRuBLCxpw4MkKdVDLkhGJIYdqqpd4a0G4fY6L7CnNggACM1+kosIJxc0g70pGNHZEsNwKq6+fx4ab7CnoCszMnwdr18LCKsGgGGT3ogpDKt1S3K+yX2A8icZ/BkqcECCnBMNipkJxL8QT8wvuuC8L/HIdJTzRLgcf13zSCDg/ofMlLkAMQ8p+ftFnwAJr/CwUGpxwgiRKn3TJe46+8krUl5BwL9WZgmspMwMzU+nWKhTHTNgm1dGoBmej/0oCCSO8ojaffep78p57etsnoCdMi3dJNmgQgqMaMMAAmRpiuMkrknoL6OVkqtACFJIgPoIGYD9eEhQbVi45ccV5PSbnnadyyQgMkJBKCYjz/sQKd6tOEjNlFr/JCLeXmacFln5Rwqq9lyB9C08IX1Idll/+BAMjdA86mctfWrQGm6gwghCSlFDHuqlbL5INUOBuuQqSI4wh+LqPy3v3kqRP6caqYoX7RAIO23VvBPTTwAoeVTnLcc4X5qrDDPo0A7jFzReSGIEF1jRAjoDjT6oawRMOqDP5qQ0KvnCV3P6XtYFFgE/mqkUHOzINOQTiFAUbwdPUlrbcvUJPKbyU3P8s6EJkMUOGM9wIK8J1w1Soym9/i+Lf+KTCSskta3NT1xdAkMSNgOMUdtnLtqBmNim+gnupYJ654hYwuUVgfRDkYBctAkYjhGtbUYua4AQXRSq+0Y1wA2QdBhkBOc6RIoEgjBGMgEcXPCx3JDDbGfU0MSGuUILrC94hMSIHI9iFkXmUZBQZkIIQbGKK+3qbGwc5A/UJcJMZASMdvmABqLlgj5G03CaWZywhOutSgzQkLCfyJrtcwmyo+qEDf5hKc8lqiMCcQR2sMEyNBMICU4MBMiMZLKlZDJrmsqKlKljNjfgiYsk8m9kgRrhwImsSb5yBMMs5ETmcgh/8sF0Pz5j/PVRJqk8laJs7Z/BKenKEGU9zgRJAabZTsQpxx2KlhwzqxRLYEgb8+AIzbMBRG0gTVhRj5TwpSpEZPMFsMDgFFGYQDym49KXWqJQvpEdTZlCTpBqxQeAsBwUh6IAYxFCFKgTBBB1IwlXOC2hA68AKeeA0I3IowRlVkIpWAHUDgtgAGoghiCEslabqq4MNrODUp16kDlBgwBNKIIksCEKoghDEIFSRvhQSTXqDBAErWIFEs1KEFbZjQCpasIINbECoqihDGVoZ0JnitQ563etN/SoRVjzvEr5oRWGxKtdBvMCySpVeEDe61xccgrITmYHOvtCKuGZVEEAowwukANbH//7RBoeowgaYgNqIxAN5EWjFYQXB1UEMggkvEIITqQhSsf5AETGIwSCk0FuH2OAJlwgEYeMK1+O+oAW7o9irCHqHKsSADASggA6qyxBWSAIK/JDEZrl73HhIYmVWexVTfwAEMuSCAABwgCpewF6FqPYUhDUsZwcxBGscNVniMpcvrGEFPSwiFwDIcIYFnIUZWKPABalDCzK7Wa0KwhFMsMYMzJWsn0WgBGMFwx7IoGEAGAAAGDABDnyQBfTNYLK9tUH6NGtYQaBBrkywQQmQNa6Z2uAOYIhBLjD8AAMcI8MHAIAJHICDRvhgBS2QBEFRG1VfqKCwrkWyDYSALPHZlP8TN4hBhqtsgDob4ADNyDIGMLCiRqxgBa2QhDUKSlI5WIrICkayNQKqRWVh8MnP9W+G6/yAY9Q5zweQQJa13IEdf3kFQrBGPEhqgz+tIAuGRQMaDrvYNGYqXIMVKyd+UAUMA+ABuLbyASLRjF4PYAASkACOTbCiTu+4CDpQWDlZUQdAZQHVqqYAGgZRhjwIwVj60uE0Z50EKhsA18c4RiTG7etgA3vTe86xCYi9Dh0MYZi1YMUELdAKn1JbtvFIbum8BQMSPEEIUuAEJ/SwB1t/u9J1FnczJCACEfwa2MHW9AEmvuktb6AMH+5iLVwqiRacGc1CLQMThBBmC8SPBAz/aMUM9CBwPSSBxre2c50jwXAWXEEELHj4wyXw62Ys4RgVd0ARykDdDtbiEFLwaCvIdGoIOL0IG8iC09IWOklIgeWzdoR/cV3pcPO6GSK4QjmuQPY0LCENv06D2SuQgApUQAGYzjEOVKEI68mDFfFghUtn0IoNnU8VOphrFloxApSX6QkrF/isibD1B5jC0goPu9jHLoIlLKECV2ABCyrvhwr02udLoDgACFAAQTyuFiqWhBBssFdrtABDG3xBPG7wgsGTqVRkEjTWBR5lKiPcAOOuQNjLUY7NN1z4YU8D2yswgMsrYNzijkSdCVCGsMm7BC1oRQtYzwqla+AJdRjC/w2YwIQs0G8TuG9BHaTwA8XDmcZcrzS5ez38Kyif7QlouNodDmwFkIMc4QYK5MB1F1BWC2NZQqBZgMZ9SFd7oMYEiqAIRXV+GpACKpAHYLB7s1YFjVdl5MZrwpcGwdBwN+cHCZANaSACaDcAvRYJ5AAK4XYM8ZcL1bcwDtYKHfMuTEVWA6cI7vYCNxCEOoCDFRgCLRAPetB+ikdwjReD5JZ5mTeCEiCCGWAJVZiCnXd5kXAMABhuM+gI8mIFrtcxxTYkrGAFh8B7swUGbCgFCYg7GqByV+d+tAZzueZ1YBcM5TCCfiACFRAMwbAKlmAJwdCHnud5kcB14UZpDwAAe/9QdGxiBVYwA4S1Hh2wZx3gA5IQCKyQhrOmB2x4A2xYBq3wBJAiCS2lgYw3ZzInbseAeTYnAc3gdoAoiBmQAdlggiKwhTLodZZ2cA+QC6pQKIcwAwl4JiuCAcHGZ62wUUkocD8AimwIBqRoiqjIhrv3A90Wc3YGeZGAeSIoi2FnCYAACBkQDLjYdgpgZTEYg1Z2cARQBWxiWYTFARPQAesmeh2wAiVgDS6FddIIBjegA+bXAiyVge6nB3JGZwmHhyLgB2ngB3k4iPuHjibIi113eTEYfwRAYDQihh23AhyAj3wGAME2cR1wAiWgdy71A+0nkFLggK0ge9jofquYa///F24KkAAJUAgmKHzBEAVBCYiAmAGdB3kAqAB+4AcbWWkPQACm9yHgYA0JuAKecIk4pow8p2mZyFRSEA8Z6JKgqAcvQJB58ALT+IxZlwu51pBcqABulwCdB5RLmQAjiI7ZUAG/GG4VcJSQt5GL8CEeRVgncI8YkGEmcAA6JwEmsAKsZwNgmYFJqAd6YG1nCYRp6ZJxNmnApwAxSA47yZOi6QfBkAb5JwLNQI7B4Jl1Bpo8WQG8yIUy+ADDWB9CpllXaQIAkGkZpnPABgA+wAx6F5kZeAh6IAVVwAR5kAfkB4ERSASKsAeT9plW9n8BYIKiyZPZkIttJwLm6AcKYAqm//CChaCO4QaaCqAAuBYD9eF6f3aVGDBxA4BjPPdr5nYAniBP8TB72EiZUqBY5KdYggABDuAA0dV15ymbnUAOARAAPBkAChAAFZANlrAKuDihAmCU/hcAndCTogmhbFcI0vcABQCJf+FeHWOYJrmMijkA/AdxHWCQLHUDilAGQSgFNyAIF0ABFAABBUAApAcBaEABDpBwB/d/EcqgCZCeEeoH2XCLltCHt5gBbleeolkIECqXfpABIjCbNBgaVLkCyIiPu/lrOPZrm6d2ZMeYgTYDeUAMBdBuG/ACQ3ABMeB0FHBYOiByZaAKBQAAi/gA/0cOnZCeDaqOTkqOGQAIKf8oAFbodnkplw/qoFv6dvAIhn9hDX1niTlWpr/ZogPAAoNIdvMJaCuAjzhwautADH2qA3uqWGWgA6qABhBAALsWbuO5oJ3QoLwKoQHwpOUICFaYAVgACMHQl9o5B5OqANsJm4wYmH+RBUWAA+t2mCZwmLzZosXHBmSXeTl3rZm2j8+Wp6sWbQVQoABmYweQnpaWq4fqoBG6pCeYARk6BbcoAMXqh6I5B+nIk/wKm16Ia1FZFkNQBA5wrRoWnxSHAQ9XDpZQDmwAscTHBmyQc/NZoOuQpz+qYQRQoBAgbRRQAF1HDqbQCSbboDvJqztJrMF6i/hQrBXgoNuZoRnQk4v/agkAG3+YWhYvcLDxuZugepIPxwIUC7ERW7GTF7HzWQB5mqeHxaoiF6CqAAGAegziOZ4NCgko66DaGazluAovS6UBUAjVIADV4JNPmqG7CICOJ4PQSrAOgK2ZVp+h+msUywITa7SCWJppQKrpNavEcFzNWQbGtQEhC2CRkJ4ki7W76quH+qRYUKxfiw8CgJ1+MAdz4AeFQLbn2Hn+B4BsewF/0bPYepL1SbR3W5ossAoSWw7GmnljBwClNwhHBrIF8KPpupufl7j/l6snC6GQ0LWRG6z4OgdYeoIC8KT0mqGmqZcL6o7s6Raku5uyuHA6Z3M3p3nEN7EsAIgTm2Wk/5en6dqxBQABO9qjPyp9g1qyDcqgAggKMmAOT7oKgCC5kauhhSAAAjAH2SAAj3CLS+mC/8eOBgABf3EDf6q7C0e3m0d2eFsOAzB5xIe3GXAFrMsGEuAATbsBg6ADzckEiqUKFEAArbmghNqrJtsJNCCzXhus2cCT1UC5/ku5GcC/CTCooCuDEABkYiEFcpZpC0y33UqxFBuqE7y9lhAFxXcApTdtggvCskqrG9sMW7i4oLurJgsJkCADY5sN9Vusw2uCv/oIMzylNRwAhDrAXFjAp8Wzf5ppECeLVzCCDrytmscGq9C9rCuUx0oAaAC4PHquubuiPLeFuep/isuhAf8ACbuati+LBfjwsi+cAHOAr8U6pebIq4O6xgUovXHbotV7fJKHuiygxBHLulV4i8I6euUrCOPrAOUrpCFbpFx4tc+XpL06thmwCvRbjpCMBTWbAAKAD16LBfsrxmjMoP/3AKLrFnlwiUEbbA2Xh5k3AEUbseXAupYwBdwsrCLQyhSgClALq31KpOxoCq2ppBEar3JZoV/8y8ZqgsMcuZActjG7qzg8gGjwF6rwyb5JgmFnxHlLfLwcBbfIzeUgAn4czqoQoIRrZOe6m3ppAOiMpKH5rte5y4AQyZFcrGI8B5EbycuAD5YgAgmQwoNaqAZQm2VhDetwmDyXZ+YWwdb/LKpRoMQQy8vEBwjcvApRcAAQYLgDergaBsdX4KK9O57umgAgmgAfkLb1iw/LsAzAzJOF0AAi3Qd9ULkQyqDJvKvryNJkIQUvXaaaJgFzHHaom804nc30GwXcbK+rcAWyK6S5S74+GtHSJ569e8IoG6FPGgz4OgUcDczZEAAI0AB9sAx9oAZToKyKrLVoDNYA8LZlUQTYap9qvdbYjMQ67bDdzLosQABBnaeC4KqwamRUW2dXS7KgubVNermVXM9UHQxMndha3QfA7AeK3NX/B9YGUAC85RY6ANPAFqpXcLTY3NkQ+7C2uAo9XQ4A4HRvBcIPLcWIO8DjSbImjLK7/6q591rPYXvYAdANWo0Fq/DCHKrF7duhAWBpBLCzZFEGewaqRCuxzD2xwWCOSgwI9DsFUWAJANCjA+qj6ZppDWfSHLq4V9u4TO2g5lAI/Kq/Uk3VNbvIC6AGL2uOZxsAC4ClaOzh711nGxCtmZ12eNvZUcC627uoK47T9GuhdY0Gg9yxBfqjBtAJSl2yOq7IDx4A5lANizoFWMDYlMvbJjsHxGyF2WC8Qt6+5EC2CbCIBeAWVqAKAGbfrbvlBF2hU+Df7lyOU2AJpD3UWNXBsmq4BOB4VyueutrjXr0ADdAAAgAIU90HlHvYDArSq4COH1DJGcrU/7cAeh5uBEAMZf8hBTRukjpHxNt7yoLo08Hw5bzs3/U7BX7QyoCnWGlOoAQgwG6uAAva5icLCdVQyY/A2IuND6vA2w6q5Pv7Aadur4C4pJBA6DmJa808FnnQCLrJwHXbujft1ryM3itOvFgQCeVruAae5eNYszru5pPdoI3boNVA58Ns5FgwBepNySOdofob6EzNrNWQzBT9ANE7FmWAA4fpm46+vRbKy/Iu7/5drAIwBVcQvtS7aUAKpAaQ1Cidyw1aCHKeoVKN5/gA2WPbAFNNxpGcubyaANeezFxX5WShAwcLAL8GsQOQtw87BTpdofRu6e+8CrIbshCwDkcmVFpVq71rsjxe7eP/ngDd0A36qwZqgOePYA7mgAAIYA4MP9KR/AhYysidQOfV8LngFo9k8czxiaY5xwYdD+m8bNOVDvJR8MUvywKy+8fEEHhzhQZ67X86XvadINm5bA7d8AiPgPNDXw0I0AkokNg5L9WPUA0pbLJCzpNqbGk1KBZZAM0Pd7fYLO/Ep8Qs7sstPAXlQNpD6qMOAGDN0PEiyKHRLp4CP/BXzfBareECgKVyT/d33g3mQANnLwP5e9g3TA4UDYDpHhZloJstKvXFx7qGj8QOm80tXL+A0PgFgAa7iZqbpmGJe/l5z/NGv6tlKwCqPtKPjdgIIOe5jQ+kb/pnb7aWH+0mG4xN/98BnlrT1uzWwkrsRQnGYu7LGUDaIVu+qjakqlYA/57CPF6yPh/3JosCC3DqFf7tCwAQkGQg6KamTx81j+YsQBAAUoNuhTp1MmXq2DFy5B6QSeLE40eQIUWOJFnS5EmUKUlKMgFAwoABV2AOYFNuFSCcqyzpBDTl5k0sU7D0FJCBQIENGwYNIraBAgQHBA4kmGgKRUUZkGggQEBxIsFsApaNXYZPQCGuCBo06LNMwKMp1QrNFWAugCmvGcmZekBgkErAgQUPJtyi5cuZAyyVs5mz3E5LO3HixCIAEJbKfghAcAqhAAAAzSTYnJKNaicZEzuh4AoJBUVICKpVE4BvWf8ffPjmmIMUe0EDNcsazCE+J+ycBAE67dWbka8gwtGlTxecpQOAxCwYM15VDtCqVVEygP+ewedloT2NQqAQWoQICRIOHACtQIFq/J24TmRtbsEcsnLDYo5qAjDwt+AgWmDBbhZE4Kr8OgFFIwios/BCDJ14wQHsZmJjAO3A8+6mx8C76TLKLhvKks3QKOBFCDyLEQICyFGtotWw2q8TAwtp4JGycgMkm0KSK6Qag/BpYLZullwAkqoqOsaU5h64IEMsswQsns9eYoEFEE38aSibfprsO8rI3CwpVQTZwLMCopoqABRQSK2q1BAwh6sAzCmkttwSEqCaBQJIwEd8cKv/TIAmIQnAxokyuqjKArS09FKRpKAAgwNgqomN7hizBKcyg+mOvMnMLKfFFwkA4AARLJkCEEuS21O51ALg6lYEEkggg0dsw21QBLQyx5xqDlIjN4gaKPRG58g5xgCMDCBgCEyzvXRTl0BcjDE2Rp3ssQwEsOzEyTADZNUCIABABJlEaOYAA1711S4EZKCBPwQWmO1Yc+awLUlnaTC434IOQugRBXVdrrnmpgWgDG0rxlIHEzB49QAJTOjgugFO1CmDncQET4Ch1ITAxXZhjLEAAhTw1UAcv/IPOWS7eUQNns1iyOCtgOuDkGELObYhKB/OSAG9+trAYqgtFCLjVzHw/yGVL1zwBIOXfgrGVJMzSBkfQERwgLMN3ETDs6hC82Pmu/Cqs05kP/CvmmDxEbTQ3mj4TWHcjOuzq6QpopIcpvmyMmrGo2OCaqu/4IeSL1LoAIMBcLIkimCiELenVYa6TIAKzqagVfcisyyDbLLZkzWu6pThWAZ/1BufRx6ZLTm/GyAaId0ILCSAO6NsjqIHgGh8+cAk6cDjEySnhBIjtDYhZPAiiwJVnMwd3Q8H2oU1DfjmBe2At/17EHardAW4gbJyF2CObpCjql/4iV4WnwwyIJSr1FAJL83hC8WYd0CUrEAFXwgEPxxICRgwoAeY4x55yGOuosxPBO2iQPjaJf8jzwAgARUYnH5a8xo93e1HEKFf/RKQwr/przItXBAN7LQcHFZFI9BBYA9JYgM5NIEfpzhF1hjAAw9gjjKoMtkc3mKWBJxtA2iY4lPi5CoR9K8ar9MVV7ayK3/RDyLdaBKhFnCsbtyGEPt7BBm3aA4UHKwreJmIDPiiCh/mMSRyCMQpjGAEGLyCASmYAKcylxOTnWoKUxAAIzXDHld1iwW02gnrtogAq9jwiwhrEhk76UmG6KlJhNjCsh7BqAYtKJT+4k0O+XIlPepRDl+AgRJgAINL5FIDlxtAOTBjou9YEBDmmkP/zBajSKThS/KiDwAM4Ac/ZOMDsUtLWn6jM0b/0Y9Q3djiAlijM1IC75TD8ddsCEWo4anmAQ+oVCx9KIcIHuEILrgEDFIBBRV0oFOhCyZ5MPNL0eHkmHB60QdjRAARdO6SCNiK387YpDHO4QNbTMDRuLKAgpCSaLkxi3EKcUZzZGMBc4FSRfiSC0W4E4E2SAUDBpkCDZDgEvdkwNYyF9B0oUhF6jomGi6AhqfAyVUSAE8GduOgtGzlN2sZzr8+MDz/+CujhNBfbrphN4dUlDcyyEoAT+oIlTJvBiRggAZSkIIQxJQEULinTUelroAOZVaYwcdQrnA2GrmKY720ScqmkEqGLGCTGGXqWhYEiYp+1D/dGBpV19izORQp/4UP6ipXJ9KXKoR1eanQwCY0kFYNMIAEJEhFKkZwAiXqNKBA+ec/7+qZZvTPElcQQTMPUI5FxkWVoaQd/taSSv/sKapsIeUWfneQZTDMjXvqDUOzIi0CpFSzjCvBCMqqARWoYARrhQIUWnAC7KiIbDtFUWvraranECAqDvBgq64QOolGtV+qvGjtyOis+S6IuFvYQh/4S1UtmDIh1ShW37bSCQMYwIDTtZgVmHEJBggyuy69BBQu0YIVKLGudf0nh1uLhdygd21WXC9oJICZKRCIdsj6l51SaEZnrfI3SNJCYx2rP54ti5tQYuhWyJFgPDLYYnKow2hJsAmYaiC0I/+AgiRUcL3QCUhF5DXvQM8ngStcQTJCwYyC8tugPdU3zKG8aDXWoobjEuI2CAnw/pyFGqAtJ8FoELLFwCEEErziFUrm8wiY7OTr+XLDHwZxof95zAIYoBkDkA+9QPOu0A1ot2Du8WR7/EWM6sw2hKjx73IMPGZVw4ad2FdFElyhOmvLBtu9bgjS+gQ/m3aXB7iMbTgqILpydCgSKAAFTldQg3qGqJhZiHDpi+lQAo0rv61NH9jh2GUsK8c9U1KyGUqRU6c6WzYQgp+f0FnsZhfWI0jFE3xwABZggSxjacutb40FXlNgbXBiL4dAI64Uv3FBrDmYKr/Y76X+iBDsMK7/sqTds8osyKJz5EsMtI2pF5QhD3lowbefkF1xt0ASkjh3OTiKm0S5W9fwxitoFn2FEN3EEiDGHRmDW+n8ejGwAQfOFthB8KH1oc2mVNAZ6Yuahj/8Uoe4wQ0o/m0VKPkEGvhzC/TpyzW3+3Yix8JrC9AMrDejXo8GTTY4qqAG4Zc1SK0v/ppkkJvf/L+P5XmDuOkg1WhkD0K3lBVu8AIhJJ3PJ0grA7qrARPc9jb/xU2SbK1rCZwtTgZlPAD8MIVgMcqMSKVvsQD2qGqc3b9pV7tx3ewsJoXZQIaDJd2xdPcybIDvSnY1TLV7WgqqkWjRDs6t94eFgRaUvQRQ71BX/7Fhs0ze5wpfZQOyUQE/mOtHzuZ82reghQBrwVleLpaBFHARh5s+Q1ZgAhM20AhPrJ7PSmZyhjO3DKpuYSyJOkigEJ74EEryS4yOjy9Z/tvA5hej/voRkMYiAJ4ZuOZrvgCLMYbooobYi8XRPgyJBx0ghkZwgA7whNZLMiaDAg4IL/T7r3ULkqkjOahohvdaBTYAkyuQAJfwuEKTvKjaLZD6DXzQqPhBswHsPHZYGIUjHhpwCMN5gOxjQAspAyC4APbCgAnggApkgAobgcvxuGWwOYILkrYoC54BsSmAvy5ZBRbgOtAYgCnANYa5pBZUJXP4AOIAMYY5M/7iPP5aQ//9eYTXqRODeQ3FQTUgpI4yUIUCIAOpMIEJ6AFXCwEG8DPUOj9SUjuymEJ3wz3FCw1AGAAuTMFayx2XmzRVyjyJaiEBOLMB1CiCCycsYIi5WY0eXMA7nI4q0EM+lA8M8IAa6AG+SwEOaEIsGBooVD92Yzd3uwIToJHQGAr6Aw0MaIkBYDk14KajccEFYRKIWoudqUGCIzjjIgR8KJD8wAvFWYRTpI4bUAUyWEWYaMUJ+MMJSKLzs0VE3LT220XFI4BIsDUsWIWO2b10s8IxArPhUyVPapblg0Lna8PG6gMsSKeJUI4oeQCw2kbpOIQq+EYCQIwBwACJlEjFwAz0O0T/nLtIhNifHHukOKmAqFsFADABkqQ1ltuZ+5o8GPstlvwRNfDHf5xGhFiSPfmKq8DGB8gshZSOG/hGB1i0xIAJ8FC3NRPAm5vC25i2HCsdtomEsViWckDBTlFBvVEuf/mAS9ym+9rHtWA+ziOacNKfBnGNgiTFTniAXEjInSSMnuTDV4mPrpkMW2sLfzSuRJQ6jhKBzYiTd7yNZViFiMwc2wiSMVpGN4qx+zIsiNICmFQ7x2o3NWiAa3uNG0GwXNDJtRyMG4iBb+S6fUqTRCwum1OzZQmQW8PCz4iEbGCkqASAdBsLQxuUzHuLZjyz3GGqJmHMAeQvpNSxGqIBvLi2/7Mkg8yMDinQQ3szsTJBkcFEx09UGF08TbyCClcxgEhopvMLkkXxJPqZA9wEjshsEkZpAN1sPt6UOt3Zovy4IVNop+IkjCqIAa4DlS85EVtjN9GENtqTNnxArxl5kVyIJNDwjskwl9zZGeWqTdwkjiZZht3Uz9xIz67AjzqpCOJ8T8I4BG80OcaACRaItMuwBPpIg7GwS7+cthBzgKCKkRiAgBiIipbgGAlIg2Fyok3cGdwko4DrJPjZPPOkqiBpo/9RjdTQF4pwTwwVDEUgA9BYAphYgjQYgDSIjKikACZAg2aoxdkziNt4N/+MEQq4gDCNEwcgSb3KBrmAqNvUGf+ImI0cXYvBq0G7xJ0Ya4jlMIXiOcsfTNLA2MxcsM4KWIJAFY2XOICnkYICOEeD28jcWAaSe4qgEtOXWbw4cby5yLzCahYy2kR+7NHGdMwpZBgyUw06RJ495VPAGMIYUK8C+Ck9vICj8AgmAAAajTqQG7kpaAYVnZEZiQErchmE8pWPwtRGui/vPEzbGZoa/J34cZbYMMjKrIi5Q9VLKQMJsIREKbhbBZTKiIRdZY8wDdMLGFdfixEHOIAK8BXZoI1FGhQM2tQze0k5bQsuTQhnUQ6roCOTegBtpFZLEYRilL1nEzmzOIACGDExHVeFTdgL8AxY8YM9YZDicCKWZBT/9vtUnMMdgwiOY0QLs8QRA0BIf9USRD3HNlQzDzQLATCAXmOPhR1XnxrXl3mXdA2unElMsGs2HzXPwnPG21AIazQcbDMAOhtZLIkHAhBMNVqz9aurR8CCA9jVcH3ZhU2vZqjZF9tKw4LBODXPmyOaNISfCEUOwzGpkC1ao8WQMniACjCXqGvaQsOHXJVahfU1qm1YB4iEJdAVw3Q7N1qqR/CvNZxX4dCv5ROABZCB1/CqB5CutL2QPXiAAGidtbAMluMwAYnapyBXhq1bmf0MchgIFLjEbtjETkKQDYRGtYtMZ7mvhBCs/MCsx70QMGDSBzCpilAAsXk3stHclfGp/0WAWaqNEQA4htX4omogjrcYI/hRN4yExv4qXAT4qCYRLMsynFyY3QtpyG/sXgIggwcohN3FNajFKzRYBDSIAZ9Cg5itWxq5iNXQE9roMm5qkkZVVtXNyEFZLGf1qqDT3umQgiTgzBiIgVzIhQKWXC4rtMsAgJZlX/QN3kWYYM59CgeglomQKnPJAD8Y1rc4iOeFXqKhyWJRpSjhi2kF4Oi4gSTYAxf+xhhIAjIwhUKotVybAgDYVQj+qQlOgkXYA3lj33VINIwIAIyajUKgDwOogAxIo4PA2GWNzGrgKqWiATu6io1QYekggiToYs4kgz2QYUgQm9ZyVCxw4M29gP8JXoQubmGF9akhLl6ZmY0FiYSRDLywUCMbzN8bbCOBiCPnCqAHSGEtDgx5qIJz6OLuHeBjaNuyuNygQOPfXWM2Rt/1Zd/0MgBycAiuUAAAIIDnOYBafeJn88qYHE2E6AZzUFygYdx+LeTAuANEHuBvDGMySKZaqyv0sARJBt7zXWP2/amYpQAC0GT8UAD1wgEcwByxsDH8hclpNK7+0p2usGL/9UFYFow7UAQgaOEY2AMgWIQ/nZcKaIZIqACaNVg0EARVGARHcAQgiGcgGIR5nmdiIAZBEIQLKIC+WCfeQwpiyIIieJWrTS4iSQCm8pFqqIBCeAQimQOH9oOQvV0df86FvsiFV85mjd5oju5oj/5okA5pkR5pkq6YgAAAIfkECQgATAAsOAARAHYAsQAACP8AmQgcSLCgwYMIEzK5p7Chw4cQI0qcWBAYMDp0Ll7MOKujR4ogQ4oceY9OR4uykMwCJitUjhx8+LzMMebIyJs4cwosadGky5kw+eyoQXSHUT48uuhcytThvXvAVs5yKTMU1aE1emg9uoOHi6ZgwwoMBMzqzJg5fgolupWtVh5KjIidi/OekatGh8Zc63ZCkCATtPbgwCMFDLqIQZZ0OfRvjb+QuUwIPJkL4MmDCX9NzBliSVkwGwfhQpqLh9OTK5u2HJhDCK+dYyv8/HKo6dO4T5OecNvD6AkcgvMIwUC2cYI8GT/OzRw1aQ+SJwcPQb34ceMckcB83NtEBw/GMOD/jp66fOsQqa7LZqmWO+7vHjAY022efOrBI9R3Nqn9JR/37+UW3WAnBMfBCT74cJ8K+nHGEhI/NWZeeVqdEIIKI4yAyoaoPBECB6kx2CBdJs3Skn9GDTZcChcy8IQGGmj4xRcR1PGFjV+gEkJqIZQw4lxQTXVWYV0w4MIlqVig5JI04uFkBHhEIOUXI5ww2QlP/DgXHdrFROSRG1owI40R0HjKk1CC8OQXFnw4wQk+ahmWEaHtQJwLeCIp5oxTShmlk5OAMImUZTKA4AktyDnnWjswcMmjj6KyJ5ljQolHoCBkquYXHgaXqKJNjSFUD8RFmgoql8AwaZ9OOqmpphGk/6JBgZ+CulQoo4YwAqSXoAqDqmPi6OergoIQ6xMFZmnrUjmkGCOkeIKpqphlEurqq1FaoMIJWC67FA9GcaCBCtFGmyqw1RIawSSXahrlF4ZysIK3Oh0RbgoqXFJunpfsqa6leKgJZZkWGNotvTgxkGIIr0TbxREQM+AoKpWOOWMdZdI4Y5UnCIEwThpwMNizrzCQgoXUhZCCo8AqeSoJGY4gSZIWVKnsxyPpSKqjl2yScgopaMDiyv26jMoI48osycypSLKCHTjjlAIHRMMosQY8j8CA0AxQjEcdFlxSMiqp2FGC2ZLcHLVI1KXwCtKvPCzx1iqoAKMGl3wRZR0kaP9wISqSmF3H0mvf1LbEJLjQBYsWqvBE3TDmPXAqSMssRB114FF24SO9iPWurxxx9xNHj/CExC7AoDceJaSSCuZ1gIB5CRZwLlIqqDvaxZGPnpqhxLuL+STmAburpO0UGQuDEl3wCinZJMAc/Ssk+EuompkGSijyEn1h0SwwOB8pKtGT8Mr5r6ju55/FqulkHdxDdIr3JsriAglin39k9BmWfL76rVrXqwaGh/g9JEpRWYkLqKev+52vfAwgAQNeQTGAFS9Te4udAR8SAYtYBAboC2H5zPcKoonJAhd019c0uMGGgCCBszDC+XbXBfRBMAU8OAIDYCCpYQkMYzZq4UP/vBcV5nWhC0pg3gKnV0Id5o1PrUJTmoToEBB8wQhGAGEIG0ZC6r0iVasL4MCkhDkqPgRs+qrhFxuor/M9CoCCEuOTQMAKMw7xVwtsmL6YiD6KNUlg74pSBGxgx4mkooF4Ot/WGLC7aZEpXVICQSEnUgdUtfF8QFsZyybFpiYFbJISmcEhFYenIq1sd/2qGJ+kREhQQsQGdpjeEY/IQGB5Ul11mEErXekQG5RgBCSkIfVQobpVtqqTuuTlQ2wgSrHVME/4S+UqazSjEtQhEco8Y+suMUF+pcp6ZPxCCVpXgkFmUyGJENPRjKTHXlFrSmNS0owyBb9zHsQGM3uC5yZI/z0S2HJGS7JmJG2QiCyozZ5M8CWbXNerV2Atgr/ak8tuVCY82MAGRShCFhA6kCEkwgasYIUNDnEIGwjhdBHsVZLO9sgajXQPlSiAGzjKhCG8wKaKeEFOh5CFthFtQ6kQKKHqcNELkIEADsDBIBA6BB2oYgOC2AAFyqCKLKzgBEGb2KQwJiULjDQGZMgFAAjQgXXYk6dZUMUgNrCBp1qVOCQgm8XGmEtmglWsYyUABDaQhTLwEq2qCKwqdDAIg0aQBEmaq59KkAhWDOGoBDDAAx4AgLGW1Q0t8FgheeqGwApiEIMYgh0w5CiJqutrXwApEMJaWckawAAHAAAGOoCDBP+t4AmabSFPVRFVQQz2BTY4XfNWBUXGilQVZKjsA1wLWwDEFgMmMEFti7ACIdzUgIrIghug2lYdDGEGL4LoO5tUBzvY4A562ENyAbDc1xrgGEs4xgEOsITYeqcNjdBoFoQwBORlF6q8VWsZhHChTaSPkzMSwgxYcYcbkGG9k33AMSa8hApLoL4SOAB0O8Dh6WZho4XjKVR9+1nRPg5rPJxUzVqQiENwQhGsjbCEKSyBAQygxjaWQGWh650OF2EDa6NqbwVRYjvoE5hhUhKqGGAHKfzgB0nIRS5k/F76LsHGAxDBFbB84xvHtrKydUAb+IowKgjBDWhgq28HcdMjx5X/bBYgHwNGUIdDPDkJ63XtMd4biQoPIA1YBjSXsZzh+QLABGMG8rJm0ALeshWqoTWyCib4ZhKqoMl64MQPiBDWKS93wpGowBK0DOgrpIEFgE4DoFnA6gEsIRKR+LJ0i6AKOdmACjOwQxbQkGY1D6IMQ3jcYbk5tyckQg8/0HR6xTrZ9x6jzyKogAgGcIVqozoYWr7CG64Q7UgoIAEKqMCXZ4sDCoxICkMQgh3ssAIKbCDNRP71SX93NYld2gbJ5gQn9LAIZrc31qMmdRquEIyCB8MPV0D1tqNdgQQkoAKRePaXHVDr6yRiBkJowRPsYIEVvPvjJU5b9LAmNBi1gAqZ/9a3pvfAbPf2uQLSrjbBuS2CbFO72gyH9YSfDevYFuA6uZbEtm77hBWogtcUoAAafq1x0m4NRk+YAcpV/gMwxECsr/00rENdARvTXNrZxjnMYQ0KUOx8zwYY6yKMM4O0rWAyPsBtZnVAZDSotbBwJSGMJDEDJ+u76nhmb3vFcIxwSzvmYK9AMAiO7a+PPeIKAIV70w4B2TB6BW/3zgSe0IK+gjanL0D3CkKAtfMhLepSSPkPbrCI5Db7tRNWQLj9UPMLN9wPfgiGE5yA6pqPXQETLjvaJ0uApSYmEXZowQoUZAIMAIC2J1hBFgRxgaSr1Q2jzzsDLk0Fv+97A2GNcP/WQb2ExIugwjBPgB+c8IY3LD7awN858CUbYQIIAjG3PunbO2CCymq4AyuABzPwAmhAARfwa9hHHQZmOnbQfaqnCJXQWss1Y3sWCdmGbQwHbrK3fk6AbUsQf7GnAFlXf2gwF6wgBRh3VfzXAQBQaAfQASdQB5MwA2XwAmWQU0KwAnajAa/AeS9ABWCgekCAV5K1ZzsXajWXhLYHfLDmB8LQgfA3Ye9VAXsmYw9AAOYWFreWfMvHf9F1ABJwYQdgAj7wBSL1AjdABEQABlSQNiUXdTeQeimnB1f3ekf4bAogAhd2fqIGcwrwchmQATBnhBM2dlXYbFiohbmmfBPQAc7/139h6GWz9QWBMAM4pQhgIAU3MAQa9wSSQAU3EIfI9gOK0HLOJn8wl4qiVn4VQHuiFgwCkAHZoABiQHjPVgGyN2Fi0GwAUIJNwUxuNwHNJ1sYkGM3pmMdQIk3pQiKQASpBwZEMAQDNgTU+AJoKAVEwHLMZQA6J3uGl4oWKHOpmA1OIAx+EAmnuAQP94dnZwAEsHZLwQrIJ3TMhwEZ1n9cFobPR4lUAIppmIlgcFPVSI3SOAiCAAEEAAB8xo2Q541++IHlJwK5J5FO6ARXEF/HYHatWGEf6I179o5LkX8e4gP8B4Y6Zo/5GIYdUAIgAIRgAAbNeAOKUAY0CWwzqQMb/1AACbkEp1h4kBcAXAdxChAACoB7BlcBGYAFTuAHtDiUChALfrCOsudwewYAF6ATFycEVkWSGACGA3AABHAAg4ZjGPAEUuCSYOAISfBuBggB7laA64ADBQABDnAAr+Vt4faH3kiUexkA6qd7uCcMWCAMCZCRfhkLUBkLGthwwDdZMZATZqZ8VuKIYmljlTWWOAYARdCPL5mWMRADBRCXEAAB1QdgoFUACslnoYaXDomLx+CXCWBwwZCUwpABkQcJYZAA2bCbsdBwfhkAE0ZZMfACN4FxW8lh/eeVOoZjWCZzX4kDP9iZVOUIZaADhAVa12mQFBBZRghrsgdx3vmHoP/wbbmXAR0YDIIJCMGAi4oZC9mgmJCQAAHwAbEQnJRVCcYXEk21fDjgiBjQlTgWW1j2BmzAAgPAAtW2BCagA1Twg1IAWjRpnYNwdBQAAQXgAGH5ahEHa69WfrJXduP5be6ZDcIQBQUnDIAgDBcZlQkwB3OAe9+2mwkQcccwWWTgiyFxnMPYfy14YwBgY2wwAGwwpAXKAot3ABvggA+adBZaAE7qpA4wlwh5AN45nh7KmpFHnoFoniZqCYMpDNH2cNmQAX7gnuoXlWb3XsRXcSFRBDjQfIbWlSaZYTbGagTKagjKbUhKBST1oE9KmmmmVtRJVQVgl0YYot+Zi+N5poH/2IHlOJjBoI5RmQEHlw1XIIuuaZ9XCI8gkQVtQJliOV9cVpl4WqRvYKIskGFJegh6QAWg9Ws1GauDgAao6Wwg6pMK8IGxlwCxcHDlWJtOIACDmX6xkAHCYHCyGJWRV3YyxqYUUQT8V1k1FolCWqcHaqesZnAIKgFJ2n1g8GvX+VRoYKGVgKH0FXEGYIsh6oegIAagwKu5JwxPiJ5YgAUZ4HDuuaUCUJt+kA24WHa7KGEEoGgg4Qb815XHWJkHWqRs4H55qq1bhgPWqVMXcAEXSgAYi1RzeQF02V7vNZ6IKnygEAB+2a/GKgxeOpgsGgtzYKxzMAVzkA0wCqKmMFnH/0AAzjoRbuAAzjdf0wqkLDCkQfsGQcsC7iebV1AAa3VTMVAJMXUBafaqNJmTkycGNFp2kXcM7hqivEqiKYoFU3CvQ5kNLlqvLTsHiBkAnQCitQgKxScSblAJPUutWDa0RGq0Rnu0JuoHAGChUEUBn6UDsVoGE0qrCrlnYmAKppCRoNAJa7u2I1uyfnCy9SoMs/iUj1Cvg0m2u+kHRAmw7nqzOEoRcet8zJljIhAMRiu0UWCkRrp7BRcFEuAAbgkB8QZaUmWxGBpZwNeutai4pgCyiAqb7jkH8lqvSxl5H4AF+IAPWCAAAuCi2eBw/2p2QElxIqEKcquwzCkBV9C6b/9gCUSre04QBe3XfpFKu7RKrruLsVHqpJXwXq9Vi1s7siD6nepHtvvKvPjwoiPbAM5buY8QsyyaACILlAXgVyGhA2+qsM1JcEabBgTagWSae7u3eyLgAFCbsQRQAFC7ZqBFfalJv5EXvJBLsuGmfpTLv8IQC0P5CH2wDJobve6Zfgqwtt8WCQk8Em/ao4RWtOGbt0ZKqeTrBJZgCRm8wQWABosAq9VZuHTpcrUoe1vbCU55mCS6r4JZr2SqAJCAD8vgvM0rAO/5cCQbogEQC5GQiCLRBsk5aEFLpELLAlEAu3b8BkksCASwdCGMBharkwoZbhFHv2XXCabguO/qcGX/OpuAUK/NOwVOUAFpLABhzLxhy5u/uay8egxWORKNAKeDJqQNywZRUMfsV8q7ZwlRYAlOIAIevAEdfLEc7AAY6gAAQKPuSr9rG7yJrMjGKgCA0Lz4UKINlw2PAMbOmwH0qZgON5SgIANhAAmSx8Yg8ckIy2VX0LAEOqSWYLSofMSsbJGVALWVhbFPu3SOtp1ZR7+Ju8uOS724lwFzsK/NC6kNFwvLUMmyWMa8SpQBAAqx8AEGLHk/FxLW7JVcRrRyfKekzH7he6qufAEbMFZ2h52Cu1YWape1+ACmkLjAa8iRC5tk68jOS5jyGQuPHIuy2LXZcMbzOYsG8IdvCxI6/0CZp4unUaDNwWC+Q2rK4ovHHiwIAFAJvsVbBWihGcqTBqC4HA28wXvInUCyaTzPAiDMWDC9kZcAxxyLZYqYHyDQn8uyC5DVFWAAWUgRWdDDdZunddy6BRfH7fer4isBrzxWspxXGQsAIkCLk+XUigsKhyzVYUDVzBvG/evCady8tYmY2fDVsQAJ/xwALgqcsKnDIUEFRdB8pyvB7We+BufQ4bt77kfXbnnLYxWlbvluHFuX6erXT624jhvVg72/hk3GUUmymWuOZNsADaCYKBwLZBx5nQCVS0DNEwGt15wGlnBqEmy0P32+bBDOUBilFKCQS/xZv2aQFksAkeCuTv/dth8NCvGpv8IgzPgwBSya2Psqz9E7vfJJlC37ryTrBxUAAGets21gunW6zezX3+2nzdKNbdQdW4Bbd9s9XxCntU4N2Ib811HtnlMgmMugBs7bgVKN0uZNwyj8lLH4r52wAP56AA6wwDHgw6omwT9tvrtXym9gxBeMx7RLAfPVvgnpXPMlAt393eMZ1Ygc1fpb1cislCubDfmcz/gwwPJZdi06BxBXyAtA3DM9ETrQCCgpyv8d16Ld30bspazMArR7AQdwBWDZwaNpoRAQga294P/8uOMZAGMq4cL8hJ4bAGHwAWG8DH3Qvx/QCTJgxR8gAOvZu52AAB9QATp23xH/oQP57cNswNmWAAjdfL52XHDsNwAx7lwOALivOq5RTIt+XXa/icO8arxYYNgqe+Fz0Lx9QOHv6bhuHty0COphkA0iQOAFu+g4ttCPfr51bJ4X7ARBGuPzVQAjNq4YCgB56dFqLtyd8JosW95GfuokGwYN0AfWrgYuGgYkC9wmvazjWcORAAAFoAik64g9qnCcHb6PDgjlawnHmspOYOluCYYcbOPzVX7K3teBDaJlBwksC+T1nAGxINXziecUHr30CQktG5UV4LsA/QHT+5H5GRGNYO7M+QYSzH7gfMRb3uK6ZwlXIOzBEFvuG1NOyt3K7tSP+9d0HtCPMOEHj7bv/13nRl7Pc/ABMQuVD1fIoADi2dAJxDe6EJEF0Vq3Cv3Q6i6+dVxwJ+vKbhnTfYsGUcWkqOnprh3Ysd0JdZ7qMH/k7g3ZC1Dtwgy9j/AIve3b/+yukPDksdCuk1UJIPGmxWhjqmaqbwDp4Lz0ThCIYDqXFBDTWPhuFmrL9FUByg7YH622ro6YqW7VU4D2CfABL48PZK8GfTAHC4DI3h4AkIAA0kx4xHd/E/HJPjwA7fdn4QsIeP/Tu+frGVza9Z2xVhaGV4CLsN24H531KEDozWvqMSvYxmzY+KAGavAIjw25IxvVAfDk3i5ZvUgRblz6EqzNd7/xvHf9T5jBBVDdtP9H8uZcCQTwoR/t4AEgA30+7R9g3s5LxvIZBgvA9WBM4YcNCbGNApDt/gNvxTJgdnsGEAWYDCRY0CDBIiYwHBgwgM2ANBEtvbFkCVBFJxktCZsiTISDAhcAiABQgMLJCxAKEIgUSYwpmJ1MyZwpQwaKTp3CfMDXEx+WKVMWBOgEaQHPPmrU9MEn4EMsBQEUdJIBCVKsBEQ7geIKqsISAoIOjjWIwwSAhhAbVmS7MYOTKBqFeSxgEoAEAhcoqHRAAMABERVA5cwJM6aMTgEUh2ng86ewD2EUQ0LwYWmfpI/mfEhAOLHVrURlcEX8FYAqsqmZmL3bkMXrNG0tbnQiDND/XI8OIFAAcOUAAQIHDkiQICLYlKw0lRNG0BxBAwE9seCbYikD1jBhFjTATGhZ082SEzeHRHQyVRoIApimoJpswtYD3kR5E6ztRba1a1u6ovvCgbcOAAAA4IADoIIKpKJppplQQOCoBD5ozCcsOMrmqQefw6yP77CYY7NYsgsAksRKHCzD8iIpyb2xsugAA7QgoogtQGq0SBhLnAiqo48guCAS3wqAQKW6KiFgCQUGCyAmw0xBYacPPnhEDZ+CmiObBMJI4MEGCMGsJ2EyADEWxbYCpcwAZCjzGDYBcIDFsRo5qyE2ZpwNR9yEqW0uS0QQ8r8rABiyLuAAC0axwWZa/7ATFAJYIJs5eqISnw83+2BELjekEgsBPowFK6lAiWqqxBADRYxjIjlAIDgNgk8C+W67CD/bsABKPxz9vOC/DMD6CzARjPMjOZk8IwyFBeZ45JGmHnEqygWw+2A7zJTqSbOnwvhUsQQVK7MTMbZSAID2Wi1IhxfvSuMNGy26CAv8nGDrDQn+jCQD34QrMLgKkosppwC4KmonZSvdbIEFstNuOy368HJSTj+AtNILyQyA2DNBOSYsc8sywYQDYrMVR3cBsbVC/Oi1148DHKikLkIPGDbRmL7thAYpNYM0gwUSSCBhrGKRELMtJgXP2WWY/QmfBsj0uTOujgGADNQ6Jv+okSIckCA2S+C1rUZhgNoIRyfeWHVIwNx0oK/gJHAiGD8CNgwFunNysIFlO53iSoQR0NbRoR1O6tplHbOVUkt93uoBMR6IQRGrCSpDFQJiNRleoGq8jWTbLDkbgiWCES7YK66IgoUc5/DXybpNoSGMKad4pAGEp10AAcoepHaLLTbEZ3bpBOjU4AuzOvUB5GOInCBFYkCrIrDDNvknLKCv6I0lhCxga+KEIxA444JR3LO67+6pAdsR1k6yByUkhPfeCfm9AaMFEFPiKC3mqvFcql6+CALAil2bs5XJwkay27ylXkMCEnBcRqjgXGFYAUAAo+yGk/JIiWnoyw60nLP/nWW8z0vVUgPwpDOmWEAiASQyzANycYHlDaQN6tKcRTJ3uAKOzAnZU8kSBrAvv4zOCVfKCt2MiAJIhOFBcyhhA0A0h77pjju8I0QVNfWIZSwFW9vyVmFM8QAyLCKGRVgIRKB3uRxST1YV4WEBfDgcCVyBBWm4gghy5IQJlo9uD8rOdoDXACcC8igSekQf4Me7LzENH2pYBt9wV54uguKLlYihD0DWkHWxazqbBIR0KlQhHJ3NjcHq3oDAFwwsZQkBR6TBdhCGsFjMAQvLoh/tAnkZEXrJJ0qjVFYeebEKkEhjBmBV5NqAgbXMpkZYWMYyTvbMGi6wAFdYgikL1JcD/wRDfKo8ou5qV7soAdJ2gKSfw6joO8c4xTnNkcy3GgfDyLnhRVs74zIN95Ma1ugjdRGBBAb0K+Es4Q1OyMawVIkAGjjolUcR5wcOljCElZN3XkBkUqzVEwFgiZ3quVhnGvcAMUZuBW140QCgBy80UgilNfRTD4M1ABb0UzgSyJEfsKQd5yi0dlnioBI/KNGJWpEpk6rUp5KYMHYGDHlkiGEWVtABtFDEgIfriTMrNBt3tbQA/byCBH5DgJcdSZtY8VlzkPXKMGxmDui7XXNeCUhDeoGiDltKszpFO9sp0afq+Sg8IyeJRmAAmW8IG1XxwZQOobRrQJGAbrYnIFOCZP8l2TQoBde5nXB+iHZtlSL9tiDX3pGQnOHcLETbWhgXKi9yLbAkQ0yqOZ80EzMdOiAgqtNYlchUOLsdXQYyoKXF+K2DDrWU7dhJOy00DLSIVIoayAlRn2aJfeU5HhnKQBYbJMIGNhiLJQXLEE2erKrN7NAUBDAFW02hRwVIw0XeIAIkRWIJVwhTNhS2SrduB2+BVFiILhYLNWjhs3J9WHOvZVyFZeVbknRcaqQghBLUIRCsKMg6OtABhQjwcj+RLTo9FJ2f1OsCDiidV/d1gND5AVp71Q45ndvTnSTgU9kI4UTnmpREaoatQ1FPeQojE5A62A5fIPIpbMAKVsygCG3/+BiM7rK16eBjGRyaMiE2VaEpmEyaS1iCgAiATQmw4A33Q2p+9SuhHceiAgS4Qk8cJleKvg+d8+MgaIyFWtWOhRV1sIAFSkBkPGQ3C43AWhtwsBJkdo28G5IfRwRgq0ev6gKVqAB8Zwor+XQkPNDVL2bRFyVtGeACJkjDlAe8XO8wkmn5k7FVEEMVRiHmi3tITSJSgQpUpCIVJeB1CVqQhSwUwSwwYkh7mdnhPggjGLU5GSAk7QA/BIM+aRBGGgZ0gNrsLX0RjWhDo5WNluFAAoeFcxUvUy2MQvF2PqUBDW5iE5lQkix1QAUJUmEBXVuAyL5eQSOYHB+IdPKwIlyG/29EkIEDTuHZXh3AFd6AD2H4szc5mkJ23ErOT0dGOw6dQlctYcjPhnbKjKTyT+agMIs3xyaQkMEX82wQPlsgAnhIBK8tUIcv1KEEWWCyYGNE7ShXUZf+pGmN0PvsLtPrClOutsOFMYff+rTTtPMbOPEWwvfBeQsjrNaGltGpnq3zkVWRCQHI0ucvRCACM+h1CW7Oa0m0dgCYTsN0ZFvFZhLd2E05mwOM3RvZfsc2T8+rfgW5MAlZ5n2n1vqGkpJFKgmSs86hAYMafJAZSAIVMEDFCCRRghnUge36LkEqsoCDGK1FGFKuspeWISCaFhYLkiaAJfBhCQxcYbbf6VqYpv/VxygFXzsBiGUhF894+FmUkd/B1isp326avLwgqGAAA1IQAgagQt+it8O99Z0KH6DFRjWSMtF0KZxYSadlIx5A9XI/WzXAizqWqvpOo+SzbGCxijbWOiKzKKnZQavcQQDEQAGYuDyDkIQRuD4OSAEGuATSKwE7sDk/ywIT2BoDEjiHGaHXYwjb+wkBeLYD6CoCyIApmzJ40TT08aajwAoDCCIgYaYN7L84G5zZmR2q0xIfM4WW+yKmGgtJUIEUOIEQ0AANuIRL2LUZWEJ9+wILkIQZGgDZmw4vEbplmLs3iDJbWRUKqITIGkEBaKZnOhhvyp+WubALUwhLwLqJ2rr/rVO+F3O+ESGfL8qFkMK8JwiBFDBCB2SAe1vCP2tCO1iBC+wa6ZiyDfSOtXAMhTOJvniglfCL+Xo0sFMfNPuADACADpgATpwADzAGZBIZGewO78giHFSf9DCWLwIj1RiCFlABDdhDB9S+L+C1OtA5J3yCDggZgWs9oZIPw5q9kFgJmFGJl3EAALAhpzC8EnqEDMCATexETvSATzQGhRgAk0HE5opDpMKJnJC1ByAA6TsIO3gCDQiBImQAe+uzCMA5J/yCuBM/u0NEoesDitgkjOLCAniZIVEJH4EAB1gChNsMQCqcn7CEDjgBDljIhQwBheREDniRkLGVKdGCF/Mg/4TCCXibJBZ5gTxERyN8QAhUu32DR9TDxqrikKzburmQskWiDn18mboYEr2ggAIIGcJbKyqZlDfAgRDgAR64vhS4vhPogU6cpzQQkwZYBkBaq8gwq/LxQTgRgie4Pj3UgOpzgSa8uVpEhQlAJrtzGFP7LEI4nO9QP5OAGSGhSb2AAADIAPtZK7xxDIREx6E0wnMMAaM0ygnAsIYTk+LqqVVCAXDsmFdExyLUwySsxX0rARXoAAl4uKoaoUNaGkbUx5lcy7aEAAJwAiyYloL8Dg5BSCJMgSNgABWAxXNUyIeEqoYrrhXLSJxwOaspRxVARw4owlfINSL7Ajs4AWSaHv96PCTviDIKOYBK2Au1rAu92BUCCAYxQRil8B1hMAYOCEkGeIInGIERYIBYRMcTsCRYuRDaUaIyw7PlCcIQ4IDSfEDSS4URKKl5bKYwaSYrcgy0tMnMZEsKGDHjcKi5XCSmwAIMOIHq6wINUAHuJIERSE3EXAHUi4QKKDPKI4xZiyEhuE09nMU+g8+vpCktnD2ViARhCKGzVCnMnEm2TIlKkIBgkMtFQsTvwIDrfAXv1ADPq7cReAIV4FEV8AEMMIBggkpvZJALjaEZaIHvPIIkRAUV+MqGQCMskAAKeIFBKMHDOtHjTM5i1MxdAchI8INYAKRzqysJuM7qw0p7SwX/SdBON30CQgSAYxgMumkSI0XA5ZmBj2TACQBFTNoc34AAggCANDgsDjGcRtTPtVzRC7jJi5EQ+8SxK5yAFOiCS3iFV0hCO1DA7WzQ20S9OZ0bJ6EKRTEFeYshJlgBDpgALvjEYoOINPAnAiiADSCINpCATsI7KTucR0jRAoiBXQlWCKgEAyA+Jqoy33mDDsA+JETCVNjUNu3UBg2/Of0xRbHQB6gEIEBVJpATwRIsiBCGuZvVsag9ZrrPE+1VLo0BdgXWYE2JAgAA4vuAE9w/DsEC6zzCZrUDaG0BaX0CIDWAYygWBvEMmCCAbUVVAIqPiLA2CvCfgogBIQ1DXU0n/2Jq1HZlVx/50kp4AAXIBhM0pP3jHXzAgAkIARdwASSUBJZlWVx72TgdWIL9F5oggEHgViZwAAyguwE4gHIZixjIhQegMcFppiq52Bj4VXZ91y8lAFAY02ZyQzfsgwHggh54QBJABUmA1pfNNVTQRTmVpJlAngfYihYSVG51HoArAB0gC0fYgxggA1DAohP0JAEoCeX81Y191xhwWikxvyr0jjTwgAa8BO5sWZbVNUnQtSdAPQMYDCAjgAeQJJp4AFrjVjcgg2vDi+saCyIogySI26FlvcSaC7xVWqZtzpVQgBIVupHdOnzNTe58AsTtvnz7WiAN2y96wcmlmQcoJv9UXYRc+KefNQgwIAJHOIdFIIMHmAMZtaoKKQl4Zc5g7c+UcIBICEOQOySKKtncTFDtFAJ+XdyX5U7glNMDBA4DUIAt2QoDGMfIKYMYMBK0PQgwuAFFOIckWN7mJV3asgTpHZQY2FiUgNcDKNEaoyiKgl0T8IETSNDDTVxduzXzhZFjSF+/OIaowAlQqAQ0wFk4UQTQTYIk2AMyMIVIIS98it6QYNRdsd5GTcaBCzn4KUsT6AAOWAEFbQE23doe5s4RCAGoigQMJoBjUDBwIVcQdg8gWIQY2AO4zQVQiJRj+w4Dwtu9fVc0CNaVqLsqW2AqKtlNPIEe9bzEZdkW4M7/c9zFJQCXFyyUqEgMUDCAD17i1JBfMiADdmVeUMiAbBTD6QAE6U3d1AVICZDB46OiK4TGCdDh7WyB8uXO2zwByBwArjAAUzoAUukEBTCAU7Xjg0CDf6qEjn0ASMgG2zBaqwLgkCDkLRbWmyxRczok2E0DaCRjFWgBXdbOHZ3kiISVCogETB6QYmU5961fUDaIGfIeyTWFWMiAG8EhLHiDWbXeV94VNLhmlejMqFXgrfOC4hyABnbkN+1ODTiBE5gAE4AIwehkABDYnBgMUMjWZB6LeMUL4DCFY6iAK2A26TCZYKhmCliERbhmQcjmLwXIpXuzcnM9LLgCk8XlN30C/+90SCi1BPEBhQEJF3jbCjEwu3ouiBEbEEKZ40hwgttYKZM5mwtAA0EoaDRYBEHYgA0QVpU4gHNdSe94jFgAABzwAR3uUe2ERfD8yvYSBj/oZIG1iXYbDVDIi5AmCAoIDgxYB5sUEIGcA+kBJWerBB9xaVUg6II+aIROCbdEYEJYYNejlFg4gA4A6hUIagdVVR/YxSzEAj+oAAN4XJazCVN5AGSu5w3wCxNYBzRYh4W4AujU6rmoECcoCQhAgw1QhbAm6Jh+6XcFSGyM2q1rptnBCgUggJ9egROIa3RGZx/oU5P6CfEJDb9+tTn2q5B2Awf4mJ+ep+KogAzwAz8wjjtKIwAfWYRBcIRBAILKrmyYzmbOjKOw+bqMKhONIYA2aIS4Nu3TTmdkuoIMEIEEUICXEFvLQ55PHouAAAAh+QQJCABTACw4AA0AeAC1AAAI/wCnCBxIsKDBgwgTDmwSiE4TOoGaNFFIsaLFixgzahRIpyMdI588GkHy6ZMRIxtTqlzJkuDHjkhChSoZKkcOPjhzHHFxqqXPn0AFPoRps+jNHTWS7li6I8WloFCjWgxUMuZNPjnG2OSTtEePGj2QcuDwVKrZs1OMjNGKk88OrFuRgvVaY0ePsTxQod0LNBCSHEiDCE5KuIbgu548TfDawxOHFAz4SlZ5i+pNwUG4YBbMRXPjCRM0BwF9l0PkyagvPjQSym2NzrA7e/CgGTQX2h5AO+YQAlHq3wlvPfy0NfNsD8ZuH6dt21juxWND9AZOneDwra+VI+/g/DgX0BOeT/8YyzuFpOrVA4GsCdiwcmPdl48GDz7x2BMqnqH/TdWqzcDvLXccffUlZuAJ5+032XAy5VDTDpx50MGE23Xw3WKJ+WCfgfY9oeBkdHyChH9ujeZJYxwYSB5vGqjwxAgwjqDCCSlO4IkKH/I1nIhbudUDD9K1OAIUI7TyhApDluBLBExG4Ms1qIRgII45osVQiD3uwAMDDFxyCSqIWGBBCWSW8AwzIDCjpppM+sLACYlRWeVZ6sX1IwMueAmFBU/68kwEaIIg6JpsMhOBBSGkuMKcaPl1E1ghdOHCpF9acM2SgAYq6KaDqukmjYsyapZfrvGggZeoXmLpNU0Cyumrafr/ckmioYoaVSBj+BiCCqmigoqYl7ZKqKaDRgCFBiecIIStt7bXA2RfpgoDDNdciqmhmb4KKCLIntACs1Cd4iMHGowQLaqowGAppk2qCWuaFjyR7LfgAmUED2KF8AQUqE6ap7qsMsmmq68yY8GbJ7RSL1C+8JAUb0he4kIXEueZ7rVO/snMJJwaGm+yCS7ckgU8fMWbuZd0wcARDGgAWZd8Lmnwk3/+KTAiI3Cwwgwi++SmV+TCyEAKIQCZ7AkhpEBCmBGUgAgqI0DdQguSIPJMCSN427NPrKAyFmQjaKCBdC9zmQJkXQBrwQgMhKBBl6hAAaaMJWztkwU0psC22Fzi/3kJv31rgMqSviBCAgNRI6K44i3UbXdLiCCtQRcqqMCly9IhabnKg09isIz6QlE1444/vtI1QSJubtvS6fvEi2+7ELAvkhz54p5kSpKI6Swx07be+7LN5QgtIALFEy3jyWcEV5dp5jPQ6877ShGs3AWMl4xAwt+Lj4A84iQsD+gzgiayKTMl7D59Sh8pQTH2XypuQQtCk9BF+NcmQqya6a+/EVWfUIK/LkECiz2NBAhEIJeo5QtidYxJ/tNIR0xihC5Y0F8usN/9LMil8GULVoSKYEZecpKUMYBiKbMgCbR3wu1ZgHnmAyEzZgACEWKkIycxwsQsyMMd7nBoDAif1f8ENrBLWaCGNrTIKUSiQR72cGKs20QXoLAnIg7MFyVgRRItAgJfnAQGqJKUE3eoMhf86lprSlO7bLBFixxKhyrs4RPztLw0YotNvuBYGy3CigjAwH0WlBgCU+YCAbqAgR801MDQtEeM+OJJqPASxRBowZ1Iik/XQBO2BMYkJDYSI32M5Pbsd7gUHIFlLhDTC51ERECx8ZMZAQEiJLnDI5hyEy381aWuYalswVIjIJCE9ibFwyMEUpePTKbMmPHKX17EBsK038Q0SMd1CUyNTCKfMzFigxlAQZoTC6cZY8YuQyWzmdukiA2eMcsLSmqA1mSXk66RxXRe5GrtvOCkptX/y1Y9slrPQKc9E8LOWWIwT16i1uySWQJL1XOgCkkEFMj4zolFjYH/pCeZoGcDLUIUITNAnhNH2gV+PnJMG4UeCFgRso8SxAZQ6MIpWfa2vp3wEupanCSeRz5WFOMCxXBpQSRxwlOa8mxITUEgEVG1RwosEVYQggMcsAGhDmQGRUVq6842OVWJCVMNZEYi7sAEMgCAABBQhVBrkYgZlGBalzAb2kigLmUKCwSHKIZZz0rVgVohHlKwgRUGe4jCCuFIF1RVsFrVJBscYhF7fQAAAJDWdB4iD0MoAxM0y4QXMCELlTuhGavlVMJhixVSiEFkJTtZB6yjCEJ4wScvqwNV/9iWAmiobRZasbku/OqFARPYEVnxAjKY9QHINYABDnAAAJgABz7Axm7baIU8ZCELtlXFBrKwAd5ySWVeZVUym3YNwSpitck1wBKYO1kMPFe6yxIhK4Rw3eyqQgdZaMH3chnPJyGCGaywgiOMCwDkGvgYkYiEBAYgAfY+tw3SVdj6oord7A5iEC+YQStGsMHwkfNJohOsHvZAYAM/4BgIXoIIJMDiBgMAAx0wQQfaUIQNDIF3NqDvBjZg20HoIB6JeAIlSZCuVfESas+wwh3A4AAyEKDAB0bxEiQggiUsoQJWZi8G3Pvc19rNCjYoQ4W16+Mh1I7D9/OVpSyAisNBAf+qPzjvZKGsXANEwsoSuMIVRCCCCmBZAutlb3tdW4aFRUMKVijDIFRx4R4z4bB9ux8M0kVAEjxhBjb4QZz3CgDlHmO5B6gAlffcZz/jecosPoCLAeCAIgyCWaxIRCJYUYYd23cQisjD91RIQAvCSHeHuMOSSTzZB9g5EikWQTnSoOcr+KECz8Zzi62M7NaiQa1z6iYU0tcKW2v3vi/QtfY2yMGWtSARwRb2HYBwXGMv986jLkezrwDtFdO7yn5WACiQ/WlWt4ECObJBCVrRisZxd8c83sAghpCHDbPQpgy4tBR+oO47lIEABKizAVI85XJYIg1pyHOf+XzvfPvZ1JH/UO5kC7CfbragFRzwwQokgQ2Eb+DaC6cv2+xnUw3oTg8V/0ESntxpT8P7Cmkoh9L1XO9giMAPUD85lv3M72OctarUgWYrVuCDCWGjBTW3NY8XzoQVWC6INpV4uu/wgxsUgACSdfedrSwCFihdBFcIRrP1rnc/J2DqVD8GOfrNcuA8owUqiHmMTbCCFoj95hd+tHS+i0ANPEESUtADxdl+gz082cR2trKKgyHvJeyZBXjPezCg/ncFVEABCUbxpw0wWWxPxgozaAHXJ9ABDDh3BUJAOBpuzuhHr+Bt90OgCjAvhXTHOQbFNnDoIyHqPYu8AiIIhvb1nIG+L0EBCkCw/+xnT3sIoKabW+d97wHQ3OjyGA0UoMAFrl0GIZgdlwgcEmCBLmwwXODzoHdsS+AHegZo+IZ3fOcEpAZ+5FB1KGYAxsZqk5EIkrACHDABJiBj7Ndc3tICL6Boi8ZZQ7Bf3tMCM7B/6iZnUJZex6AAV5Z6V0BlfrB6fJZ9TsBn+TZ4ghd+yoVcZxUDe8EKubcCvOd7JoABzMVcMocNPaZZinADRAAGeaBfLmKCUpB56qYHSdBuD2AKprBxkQB7kfB0eFeDJ+d6M0iAr0cOPQh+KGZiBLAIaAFNYIeB7YWEqdZcHeADkjAE8gcBuHYDegAGQ/ByrVAC8QAGmbd5YBADcP8nfZ7GcVJHhhWAbOCXARmwBn6gAORgCshFDgqwcT2IXAQABGZhBYmAeF1nAkmIhKo2AAw2WT4QCBGQBYvGBHqgeYP4AkIQWy9wAzcABrrIbo/IgghGfS+IfZQIftQnDN1XAZ/2aQ8Aig94DMlFAEAYFVbwDCOwAp6wfgcwAM3FXLAIaO0XCM8gBPEAhYK4i0PwjvDIBEPABEwwCA7Qach1jLIHfq6nYsr4bPm2BBkgDE4QDOE3e+QQADooeAZGBtkYFNAkL0XYYOFIjuWYhx3wDPHwAi+gCETwhIqwWWVQBu+oCJmlChBwjwcAgRvXgvsYhlKnADjoB38HbcIACML/4AcLmZABEAAHKXsPQAAXABWpOCNFiAGwKI7hmJTlKI4m0AJ5oFll4AhAgAYXAAEQEH/Xpl0QgANTdY8ah2Jh6Hqwd2Wv53pPt3p+lgFYAAgZoJCmQA7k0Ak9yYmgKJefRgCv9hPoZ4FF+IpZtpQDUICpBgDAxwSKoAjnUACMCQGMWQBYiVs8pgNlgAZFp1xyaZc+yY9niX0z6GcicJOAcAXhJ5fkAAkJ0HqcmJpsSAC2xxJD6AOryH4NxpRMGYNUJgLNtQ6/CAZgoAiqwFkjOZzCOQho4AB11oKw53oVAIrMCHv1pol9tgZt6QSbaAoKEACp2XoJgIahKFlD2RLW/5UiE+J7vqdqC2abDDYAeJdqBTAEwQgGTAAEUgmCi/aHBaCS0XhsZLmZzwlteucEUbB6bOmWr9eTARALaxALqTmDa7AEKSdZhccSWdB1MTZnvsd+6nkFdscCesYCgAYBvxiMTLAHj/mVX9mYKRmJCXaW5FCJCpAAPulnmhgMUWAJ2teWwhAMzZmgsRAL0NadfrAGlRihD+AAPlEEMeaKzbWBr5h0zMYCbMAGHuqhunkBvSmfMeCYFNBjOuBjwnkBl6mcYZiZa+h6CZABTiCgwaCm1VllCboGGZAANEmnGVCJ0ohc5tcS63CEG5hqtrlsU0qldkel8nYAFLCOvjmVw/+JmPFYBl/6f0WHYvzohi6qnW3qBJZgCQIqANXpd7EwpJi4Bk6QAX4QCZ04ewAwoSsBAUfIXC0mmGxwBQMAclMqpR4aBVKKqFJwA1foCI6gaNkFf/k5VRm3XglmlwwIfp3AidmZAGsQDJYACOXQpm0JCE5QAakZC5koDARpqnZpjdb4AKyqEhdwngcQaK84q0iXdOUgpWnAAtt3BYgKWIcgBY5wAW+HcQQwVZCJlSl5ACnXkrB3l6bZrNoJdZu6pljQsJbgBwlLkE4gDFiQiZu4kAZWrhsRD5IKqwOwXuk5mB76rriqfdEqAgCABvYqBTrQmBewY4MwkvSoaBAwppn/aZqdOJegmAAKOpDCYAkNi600qaACMLFY4Iw06ZOguHHIpbEawbFP9ooNxmJMSbKEWg7dN4O6qbKZFw+LFqwyO5xfugEQ8GR1hpeCh7Om+aw9O5ANu6MyGgtFS7ESuwYLyomgAIFN2xLxUASv2pRJ6aFpwAZKZ3faZ6pDGgwSIKIvIAVe22OqQAGOua9RKwEp54WYe7AKOZedkJA8+wFzMAcNe7RzmgAC4KlYIABzQJCWcKfdyYbi6rQZEQ+NsGWCeZuW4HFKFwXvqn1r6gQgWgCL1pH6yq/GC5lXeY+f1omZa5qby5M9GQtzcLrp0LBOIKMJUL3VG7reOqfZibZs/yi7GeG3tGmbbBCvSmcJLCClhBoFaiqlDhC576ivjNmljBaz9DgIYtqDmOuFg6es25maa3C6o4sFPFoBc1C9Rzu6OZmaSpu2BiC+GEG+SKme8Kp0GLy+7yqg63sAHeAAFDBVTSiSX2pb/9eSXZi5DJiQnbCdCbq6DZsO6SAAm1gBApAJ6QAIMSwAa+DAPYmXg7enLIEGJqCh6jkAUloOgJC7vRsMpfq+A4BWFNCv2oUGVqmvDkB0oRaGytW/y/mszyrA3srANBwAfnDDMly9ApABDLqdDNgJnXAMQrwSG/C3R8yhHteh2ue7USCgV4BWaIBxWTxnZ9WvDvB2AIBsBv/QvweLsODHs2bAvQV8vQkqAGk8wxkwB3/nxpzYk8eApC1RBr3nsWwAi1cAvBpMuMDbx6w8oMEglBtAAAfQrwVwAffrCI1GAUWXuV9oADi7mTyLiWyZxliQral5yan7o91ZAWvgkz4ZC5BgdeG5Ei+AA6yYlKU8mIWbxITboVHwzXb3xy/7ZF2qA5Q5kouGBil5mYssl6bQuZxIlz3JswN8tGmck9optzKMBa3LoNr6o3XJs6DwaRJsEUPQBr6XnudLstv8rtvcx4UrAg4wfxmXVtolufkZtVb2gL4cAHBMl9i7nUMaup6aDji8oxBrutUbBQsKCeaQAB/QzArZCbH/8AEBgGIAAHArAQZ1DADpCXKweL4dWqiEm8FLN9GWGQmFPGfG+2QD28XvTJcfrZ1/Z7erKwzEfL0yGgCWXLRDW9OarACdCwkxXZpyzBJSkAUqGbKw6K7rO6gbzLvl4ATyBsKBvARnBZlWzGiqAH8ZV2df2IkfbQo96WeiCsM4PMMLGguVnA5zsKByerqvO5cB8AGxIJfdSQAsYQXFgNDrWsrLlnS/Ww6GWg7fvLsiUMuqIMsFwGjnbM6qoK+J7MuC3bl0+c6UDW0Dibr7jM/RiwWZULQZcLqmmpp4GwvCcNkJGn4FrRB51QjlOwDnC9d0nbtFjcG8q3eAzH6tbVtW/+mYskxlZdrOXsiMFSDPAVABbosFxMzGHl3ZlnyTDSsAOSkCStsJZT2XqRkJoKwSWdAIRYzNSXfdGFzgSrem8kYAuAUAeN3Uc9ZclahxtP29dAmK+RzTyCwMayDWMgAJDbDP8+3C4DfAmwvHN20AaLASWdAGRRyy7orddG3gfezHgEwA60XLuAV/jukAKwnYi1zh2rmZAWAOMZ0BGd7D2enhOJwJOCwA2mqX3LoGd9kJkPB6kTDHGqHWSJiUbq10pEfaSlfU7ht1DgABlqkABIBzg4DLG1C8AsuJEv7eCErVZvABlgzic9qTLt0AfcDkOFy6er7GfubMlh0LkaDZ/v89yiHLxAPOxAVekNrnBxKdlQxOAAgnf2+HnlamAL0cl3KJoJlJz8JgyYmt4T3ZCQhgBg2gBn2eDg3s0UQ+B1immXbrkzmtEsUwyly+bAa+qXPNu2vqyiKw3TdOdJPFXNQHfu+8yP5Ll+A3z9IbukyuwHPAoD4JCWagBkzeB65uqnRpBjR8li2YpuBqAFiOETrwqgs2uAaevr+rppyqfXwGmRvg0xKQ1wAL3pj5hf0L0pWKmh9g58jMxgmAmglgDnyuBq6uuj1s5+ntk5QaAHOAiaGY5imRBdZsxLXq6B63xDs64988oKlt5j6t4JD73QSgtsz+zti5hvNc53cuw0j/u9XmoOo4PN8NO72M7Z+eK6fQSHuviRHxgAPnyeXWnb6+nrt2J6BLV8uWee9aicVPlp1w3umLDOoeHaNrILrEzKkySpfYLsMC0AAEnLoQ++zLCq2xkLfG1twHIQXk+4pIJ6hFvamcmruaysRXUOaWSa+EfAB8pmKx0Llx2enzLNYICq0xL/M9bA6xYA41b9LEXL086pPNipeVbdN4aQAWvxFxv+7TfaubusScWpBrmrt7T/J4V8gnipyc64WL7MvZ+cOdgALauQZpnNili71EjsaZoPBH68DPiqB1ftnMy/nnbhHYoOiBeuAd7+ulqqnyVsu6jLJmvgg6np+J7M78/x7YDjzVCZDAl8zDdXrwjm/Sfa7wc0CTz0rTO6+0vmwKhJcSquAArijgvq7Edr+mbQoQGYSVu+IAAhoASwxAYFiAAICEIioEMFXRlAFT5DolSBCgE6QAAdYIwJIuHRYsAvwkiJXAXII1GTJl6jMznZOVHQMoWONnpwKg5IQ+OGaAwBSkSZUuVVrEAYYDAwakScOGTTmslrSitOTEiUBLUa4QKIBQhAiIACKdlSBiDccA5C7KNfUxQEuP5uY4KXky5ZpYZsy9/NCAppo+agRkAMwxVizAO4V6FNppp4ELTDUvFbIOAwAJA9gMwFq6HCBLwgQIc7ImWBQnlgY4KHABNP9asgV0O6xQoWMny3SBszQXMlYGQChRCsvgp6VLcw3SDdPWp0+6OXPWzFn5XIEB4J2EaoTU6TuFzemnxEMDVUJoqWlMb+XqBKv9ggUogAYAgQKFCy6IwaElKlCgIuAsqiuABCB5KRaSlGMtA7waNGeBdKzLxKSUhBEmGOcMJMeAykIKAAEZyCnKAfXS2+CzA96TQD6tLMnKkvrs83CssvjbzYGHDDhLhJDEU7CuThAwxwztlMPCwwyye2kwM8yYTpsNORRAgDmeM/AYBchhECTKHgDgqBY1G4SAGAd4Tz5AUKsRNSwsAcRDQJwo6CAArpDggAPYOsuPYIjsxKJDEfz/6KU5BDgpOSzmaK7KBBBAwAzDtBmmJpPS4fKDDx4TwScTHYyrkwcuAgC9NJfS4akYJbiiHByxQM1DW9ORMzVLRCjAPwMkgIgAYmlzwACgwjxSUQYhLGk11hqLJSRILm1gmGE2VGPb1bL7IDsKHYul2lPFKwqNVpcqowAA2kyDvjlTe5LXrny9YAMDIqENgt0cQjZMuugyxUwCkI1FtZNUo9CMWFCUodoFGuhjU04V29LR5Rhbg+HfhKroATLKSFcpJmJISzQ7n0QtzjtPwlEY1K6oDaEDCAAyrQOWCGaiQxOtywAHKPChg4QyiHBLwCCpVgYZUKgyQ22iHqbTTgXY/5DLwBgOSdkHuo5hZJL3ICMGMgxIA1Jb40zZZbUBGeBXmmO8Iphg2prbJ4EtMoCCFTiYwATQyvHwq8diMQcBGmSgwdo+oq4uS5KqDjUAB+Ear2syVAE7qTKA8Lzss+NEieXk/KqxHAlq26Ddh4i12SERdvbZIgeEUOEETybowISo3l0DsMBoSJwGMz7IxHEsqe5LAOB1YvDUgR/4enOkFClDEVUSejdOYUa/s3sJvUodgtUB6KAA2nYjoIJgEsjbTFWeGUEDDU7wuwOoBriiOwY7YfrSK2Viat07SacoZDhzKC0kHusaATRHvSnc4AZMYFdotgeptnEFNV/xFQSyB/8AE7AJUICKXfsoYpEHECALFriEC1zAAPt5ogO7A5wBljAtykEiFg2QGqcilR1PbSlUCTBDRxIAMHJ0zQGOgOAUpPCCPbRrKlopnXLQxivW+God2GjXAeTjlSvMKgpR8InPzFQERKDChV3QQAhyNwE4/u0AvhGMGaymKU6dRAAfKF4DttSohQUmLseIXmaaKAUgkAE0NGJZX2yFEtN5yFcUyMJn0nImYh0gGBnQSXhMAYAiWAAGa2TA7Txxytzhr0Cgks6maJKODaFkDqCiJai0wzGPmOIYKWQVBG9gsqikppF98cvobFUv/azgMyG0mQNuxgIQdQQBKECBAQCwgVP/XMOFlyABCRgQAvtx4JREGwCEMlSTPJ5kDoKpZRGf8xhzqGiXLGriFLIAq3fhCW1+KeaTmLOEZMIoZ396zxWioB2OTLOaAFhBNrdJAm4yoI0aSMEJdHcAJ8DSlXlMyR5ZkoBQVektgRlXEs1kyCYWoQ1tAMAASAdJWGbJLx7SSurWocyosCENV1jCAQDglg9w0iWWIgcAfOBQGMDgEkv1pgZGINETdOAAOMrEttTQKTWkhDGGqxLDzPGBBDgnFokCGRDqaU9sNAIDA9CF6GAaUw7tqlf6qeRnXJcbAMTED745HAICYFRfaBMGFkAFFC4xghF08xLfnEBUIEU1k3AJ/3iGe4wZLvUtTsrFa2edQh6wwbsp7nMmo30U6SapTAyEEEjOJMASxkhGl6DArwdoAyKugQoYpBEVh2UAAyBKAg1woKW16tRysPYYuOQQAR84ybRAAbIH1lMIOMDAWts6zJjOxFaq4YswJllXGZ1Ff04QRhR+pxNzxGIJDriEL5KKCPgiArEq8K03T4CBGalmSygRgBOy0xKGjctSCHBQZNdADgIsgrNT2IAJTACV7SmnU6Td7pMEIIKgodZNf4LIAdhgCckyyFIJiEQHoHCK3cYXvlAYQRdc/E3epUEYfuRSdmw8reLkcGmQWIAZehKJGNyAs8VoBA4eHBW2lsQmM//R0AaZc+GgFaG6IDSWA1rqhChkAKwJCM4BTACFQCj1EqhQMSrMjAoShECqV9Cyj3+n5ZywJABMk0F4EsewNRwjuvVMKw6ciYGHSCBOMbWOderkhMhhQYtc/AygM0marwBGMJZSwBJMMIIwXwIKZIZvCRBhgWvAABUaIJoEslY4ww2VI5BQHHBSVGfLVCASEFhwFhpxAZX6mU0uVXKhhyGMq4APC6mjwAbaJBWrCM5DwngLWCmXABGY4AnX4CYJoKDiT1/DAhYYwQQwUCAiurNhlkmSX/3n6vEE5xgFUE8imGEDVtxiM/HARhE20AgHHFkqulAyTWhyBS/C7E7ENnb/TrUyAECxwVuCZJAfymECDbigCwxALBRasOml6rbb7TqGDJTEEdmioM5k8gidU4SkEbF7MzOQxLYjwAwQsIIVSrFCHrKQVlhZUCvZtU46fLqE7qGG2FKG0awGQKwraOcDa5hcAgSgCwycoLcUH0ELLr7bpXJzBD7AgAFAoTi/hkTkilNgAFCAbo+JxwDomncL4GuBZ5SgBM9gBjMiUIIWYMMHRX5Ku2aEI55fp8OCi5MEHLCOdSzSEhiVzQEEV+MufVVXB/ABA1yI2ItDAeNMHQEHug6KTpz97J4ETkiYBpzxyAVVZGDiZmwghLdr+xrPeMYMSiCJJ2ADB/jrYoze/9Vv6wwDC5mkVXIwjPgZYWEAALCEyzxUYy0LwDDD9gQDLtEFElQ861n3pucPoJE6eyRBSApP2JH4MQWrRxK6JbMFfEH7GbC8BUOTolT2DQiTMLkPljjy2VAiARxAvnLAAp/CApswrj8SAA0ZAE+IOOw7rBYYge27PgYQrgM4htCDNY1AvfAIid9gGqEggz1oERuQhBH4tPbbNvjzBUlYARxIiCvQCl2Qj14LvjT4DAngt5OwKRzwIkCACFhyGf6KEKhJBwZMgakbgSd4AglkqqbyvmPYwPDomfDQiLuYFrkggBhIgjSZgRFAhQh4hk/btmvwhQiwALmTBCk7gCsAH/8qIjTruALQQpvja4OAgwgDjCViOonGwZI0mIAQoB8GWMIlTKzEIgEVqB+oqABQAL9EmUKPmDOOMICxSb8WAYEyZIa4mwHa87QxLMMSaIUXzEFIgiQBcqUByB86LIB1eMEBsAQgtAkOmTCpyQRd6IAQkKjeKkTfUsI2ciPQWIJGVJBUIT+PKIoCWITWS5NEKIEIOAULQIQSmAEQSASWyzb3s4AWKALeEbRSPCeKQbhXhBTvOjyWGhYCuII8nLCZiBovqA4sMAEOkCgNUIElpLjsS8QQEKe1koDyqIsGShX/IYcweYALUASwMUFUeCpUmMZEsMbb2zY09DRRbKm2Qgn//aOOYUgDx5MwRdMPh0gf9GmXDOgLxKCOd4yaTDgATwgBlwwBFYhJp3qCRMQdbyONt/CIgEw3tWO7kWkBisrFhpwBa4y/EpBIuUMEKMAGqCCujMwWt+E3J0mdC0Af3WAIfnEIvlAyd9TITBiACeAAsTyBl4xJFXBJi+KCtSoHCgkAawqSKMyIQzEAS0wX2wkBJBwBKJCEaYw/25PIT0MEFZAq/zPA4DueYXCbx9rB2tgNCLiAx2QIB9hKmtCUrvzKsPSEHuCAEyDLl+zM+1mrO1mJv4JLT7oIn7TL26Eoe+TLZ0iEZ1g/pJS7FiBMU5wYxxG+AVSeA/gVx4TMx7wA/wdIAyVDSXf0gmHQBS6wqFMSS+eMIU8whuoizpT4ALd8CAAAD9lKlOlJyECkKAaAgr6UhGewANmcO27DH+LMv4nxAg3BggF0JAHozaz8FYYAzuFMDuqQmv3sA0AwgTiaAFTaTHHSnerCgPVMB+v8DqPQTmoSDzQBGxtoAbzMxROUuxKou2x7hmtAhCfAH37LBMPMhMXQLgIqrt6EzKtsCMm8AkAQIOTRBi9wz3Q40A7gggAVUAPFrxl5URI9IgOwpmMwu9HrhAhNyF9MAacyM7rzNPdLyhMwgeSTqSs4iAowpuIiwNrISn65z6p00eOxTOTJFuWrLhPwAA/IUdBKg/9XzEMBSK8gPYYlCADhoaYEMIANoJ48OEuydCoGaMi4c8YI8AX5wh9eC0JAOIohGE4J4xBhACgVtU+sFE4XbRyNtExsIVM2NVNjmKHdOYDSocGZWKc7VQsFMAcUoAHZMoO9oZ4ZaIEneMlAvARp/DRf8IUSQAXPW6uSUA4ARIp1WILkqKL/M4j6xErJFAED3BRs0RRsqQk8EtEbPFCowAJsyQQbwT9P+QBziARkUZrhQYBY0JcmsoEZiNU+tT5p7FBUCIEHcym1SQMJQJMXcIBxvBMrMrz6lNQAKQBlnQmNfNZM3c+owQJdsD+XOh73XJnIQqgKqJYBs5SdUDkIkgL/CvVMDaDVNBqBEzCGYBI6AviPpCiCqWpUXzUIq2TRfpWADGlHgcXN/UxJ7SrOibkOYUuJyIPYS1EgBThSV33Vs8zF6wsBbwuNtmIDANgzpGgDlzIJAkqb9apKfg2QqpSAPDzFms2WxplRrq1Ff8uj/cJZULEsxBmwxBmR1IQgc43AEXAj6ZQKS5jBpGWKMuiTdXQSLaWAfvkVqi2AJchD66iOgXVHGUWe0aqqq1KedBCGdVoAS1kciC2PJOolzkoEIcCftZqKgz0Ayk0Kk1EAuCqJoIvaYw3OqoyEvqiJ0cragX1Wq3rd19UjwEAcVU1V2Sq5TgCaBUuKRXUXG5kN/x1gCkcQmwDIw15VDgyLVPvsWwAgoMPtQ4qZGK2tKqxqAOvNPz8SKkio04dRVf+ps4HZ3aQAAjaBDzZwIKa4gTI4BzKABKtR3WJKURb10gBp3piK3oEtNJv4kO3YEuv93w+IGMvyOOFJnIeZpqZBAVPwWc56AdsYod5kCj0gAiJgXxqwmgP0C/lFVqoNEALgC4CtWQ0ZrazqLxAiAAnYpAAO4AVoYQRw3GkqYKYpYAMeGIrdXSZQJGRkCjCgYCLYgwdAAELTQ2EAgC2d1A6GgHT0UX+TRchyAgLoABlqKeBZEhpYkgXgI0hIVRo228SxYfFNikWIgQtYB81QBAoe3v8HkAEM9iGUMGIA+U3T9VdhgKtichSMIcAOmIAeuMkrCAzE+Z8FEAAz2F4DpuE6pYEkoqcwVg8wKANHAIIkiIEHgISr1UMsgOMAMd0OLgADKMlevZhGobHVAAA46uO1SoMMsKzhqZIGmANWEx4UER6wS9VDYeRG3gxFkOQkEBtTMIN+I9MngWMIiIEY4OR+JYDjwOMMYAyQoiUuOYA9ngAPiIooqZICfmHrNQfFUdUuRuBDYeBcVgoduIAxVqROWIM6hiUfguKygEwy7uB+dQAFMJo9Kp4iuixQWYMKAIADTQP/GlvEEblLWQBDHh5ZrhYuHhiUGmelGAJ+MWYyWOP/NbjNTnEC2tjkeJZnfgGACmC6pSsOsBuwl/CDGbHnBiiMAKbdS6kS2l2cxbEUiKWBzXLopVAFZyqAiX6YNSgg0kqHYKANADFmeQaQqnSASPCNtwAJV+tmS1kSJtkjP2qUdRqwFibbVKXdapHh3MVlm54CCjABHNCNB+iIkcDb7gGodw4QNECDC2jrCwAQfjGAiYALBGhqOlucrmKlV+YjVq6SHjPbsqUcWq4zo1hGm76BfOsA2jCAWFCAChCIoFu2/njnRTDnt6aAtjZqdumNiYC1BPlej1MSy8IU6esqsn3hwwFXWSYwpaEzhv5qpFCFKTMBB9ifCvADgVCbDwkG/wLgl7hua+FGg0VAA6OGgGNZgiUACtJrakgQjL5qadS2lK5a7TqV6btWHBnYpYZ26AvAzoe4AgM5GIEDhJ4Qgd+uDQpQheIebrhWUVMVP/CVy25u7Qt54QU4nB6zrMPpq9Z+3LGTgYro7lweBCvDGQMgioPJk2XLgPHRjw1gbzTYAAoo7riOY/QhkQ30mIzQ7myOWDOA4Rcm2yo5nNamZQM+Oa/OZVVQJEsilq45GK+YA9YIhgOIzAkHAvZeBFVQhfeWWocgJCRREJN7mK1+apmGWCqxrO8tD+02OfFY8UYGAiAplgLoGnI4DoFwjUIJWTQ4CB7vcTTwceJO4rlGlFnQbmoDPpGIFR6dHYxAprNUrbMZBl9xFl8wUAUB0Y2qfAADABMFkIjeiAQjFvMkAAJHGARF7/ENWIT2/g8AcYCuIcaumXQFwYhlecS62HREsQiBSaG61IyAAAAh+QQJCABgACw+AAYAdwC8AAAI/wDBCBxIsKDBgwgTCgTXJBAdhk2agFNIsaLFixgzagwETNYsYCBB0hk5i47GkyhTqkQILtAsjx2RIPkoK4fNHGNgGDGysqfPnwTlcPxIZ1aoHHxs8uGzo4bTHTv48LgEtKrVi3JOdZQlC0kOqEm/7ghCNsiEGlB7hEB0ta3bgYG8Ll0KFa3Spk5rTOixo0cPHiEsvB0MFJyRrzWCcPEQxGnjxE799sir9gQPBnUIa07Z0ggSPmQ9iGbMZbHosz0mTFh8tgaHEBpQbZ6NNRDHz4nJljY92oPqCb1V1+BxYgTt4wnBCS0aiqni3r0xeOCiunfpCRw4aCiBvPvAJiOZI/9NDH20MenTPXTo0Ds7hxMqvHdvCezlUaa5y3s4r7+0h+w8ACaYfLPh4dAsSBwVSnNj8WaeMaNd59tvNXjyngaSEDgbKiQtuCBiz+k3mmK/UffbWSc8oaFmIBgxy0sJ3kXWibtNd11rJ+ZYQ3wrDmYDHTHJxVRTPWQXwpFHnuDeCSmoMAIDDGgQwgmeUMhjj24JdRtSUO0QIAMuuHAJKoiUiQgqI4yASgl11BHBmxFYMMIJwoWA5VsMuXSflyEw0MUll7gAgwVffPFmHV9cEwEIIOARAR6ORvDFCByodgIMd7ZVixx07FlDCH8CGuighb55yqmBTMJoo5C+iQiVE5z/wF2mVm3aKR9OncCAqIAOSqipcEK66qqtqsCBJyfMQKtV04A33qcqABqmmBYQaiicj+IxLLF4jKDBexkuW1UTszjXgwrRikoCKoNec02pb267LR6SfMtBC+JWJYcseGk3gqhiXgKDr+++Kay8jOKByCZK4pvvT4EogRd8//IKKLsWXHNqqwdvGycDJ5wQ7sM9yeECVNg5CSgJJAAKRa8ZnxLpowjH+e0JUJDsEzhd1AUfmJd00QWUXbQscKmFXiuvzSesMLLOKU3Sc5F9kuACAylMGbJloMKgqKTuGswqpBZokCLUPdmASAo7cJDCv1hnnYIGWRPHw5+EXoMKyww8/7EuIhZEUILZQqC9EjhfpNDDCRr4SXTRqFgAQ9BQMoBKoogMncLmUP6tgoqGqzRNHUpeFqXQQ0fp5JNdpLDrm19Y4MKfgH8hCZlPPB26RtPgUTqUYg495XtPqNA4lJdc46gFDEypARQlxI6I7rtrNEncfrpAgtCqjyCJJI7vGjgIdXirQZojEGoB9dVjFIELRxzRRZiiooIKFJKUAMWTnRPqaKkzi0AdlNU+jYDnRWM4gvZ4ZaZq8Y1lIyhYpLQ1rDrMqoAYAdJLZGGEyV3CaIAq0weHNrTkfUFm2aIgowRnAwxexCH18chO9ja/gKHig9tD3SWsJTM8qGpYeLDABf9dqBBwaOVFwOjg9qQVKpbNDnWDCpYKV/g/IlpkEiD5CDBgILQnPnF7T+xi3gw1xf9FwIoWyUpRXgQDJ86vi2J64pe6YD8JrkpSX8ADGq+oQSUs0Gqoq+HsGBC/P8HgctpSVaskBYI9WuQURpCFEooWqGnBcVrtelQKtTWzzDjSItcwwiQFGaY3zk9g/kNYoyS1qE9e5BoD0x4pp0W/X01xbHByJUZsYIMvAIyWqBNU4GgGKUcVEw8t1OVFrGAD+wETa5UTmq+q5b9sJVOZFqmF2pxoycr5qQvtcle1spUIbGJEm4gYodCCVrRwSvBRX3CTtsx5ERuQz42lDBPG3EX/xkgVjJ71dBMicvhG+nntXQWD07v0CFCLSKJQNBQkKpOGLQHGs5ENrUgJANdGUo6JVAaLVDxnUM6MUmQGI5hfDmlptYPCKXbVKgFDTZoQEEQ0kMEcWMYM9YUSlMACbbomTQ0yqRxGM6c6fVeZSnAoEEhhqAcpHyBbB834FdIF7KpdSG0gBCpA1SBQIKjmQhCgzbkOnNYipxVakIUhfJUgA1VpDlNwBLrOj1Tw0lYirCCEGFBAB28VSAmmqs4utouiId1rXwnQBlUE9guBFKsw34VYOO1VB2QgAABMkIWvyuELs9seywhqQngFa1E2UAUZAKBZDKjCYRm1QSi/yLJA/6KCstfCVh14uYjVAuC3AMDBBoTAvk/KIQJeK+VoAxnOpDl3rzOIgW8fYAAD/NYEPshC4ZQpBznUgQFGwClOJ+vcQpXABlYYwnSrW93fYqADOMDGCoZQ3PbVgpl1ENiY/oVTEuh0p4W6BiLqYIU7OGK1D6Aue3lxgAMAAAMYMEF8hUBADILDCnJgEwh4KYUOJyKscByYrxKlN0TYoBd66O1vqZtgA/xhCQ2WQIM3iwMfrEAIJQ0dOGwwgza1YAYvoEKQqSCFGbQgpUJjWVKrtbcIFBgd0gUAiw1A3WMwWAIDkICMHWwC+GZXCC+AmjYtKAlElEAIWVCFIASxgQ0wIf8LxUNdy/47uS6YuBc/UMR0FfyAYxxjCUvQsgSW8IdCO/jBEvbBBsqQL2YmQhJHfgL02KqKSqNhA6rYQAtUMNo5H5JvqNjrD34AhD2z1wBWDvSg/8ALQm95xhHuADZgiyUrzADSK7jQj4WA6TSveRCvfQIOl8u9EcxADz/gxA+S4FsqoxrVvKjAFbCs5WlreQkKAPQfGuzgDhShsyvisSSesIITrGcCK3gCIp6QBTarWRVlKMO4x2S/7TnuCSVAtrJJvWLq8sLPVq6ABK4wgAFMWwQiIHQFXgxoCWz7ABH2gVu9o80StGAFPphAByDcAR/g+wltZrMg4E2FRKjJAmf/MioDSiAFPez7B1UgQ4IVjGoF8OIPIpi2wacdDIRXIOc5H/TNG4wBHBQBzLTZ8a3JrfGNN9gEE1CBJLIQ8g2M3BEvKMEI/EtDKGkAEVTQNyeUTQQEPxvaFZA2C8oxABZc4Qoi+LmgE67tF2/7uhAYxGZs8Ghye6IDXTYBtwHQgSfUgeoh/zUThMDp0VYOCmEXu7JjLmUFW/kPEsi5E1bBdrj7Aehv/7kI/lABQvOCwYd2gGPfwswZCAHjgI+wCQDA7QOYoAV4QPyafz0EIfhttCPIHZFdPvaxo+MCmj31lbF8hWAEww8JiP7nER73Cnwe52k/fRxAcQwDEAACbtnU/6MvPgETYIDL5z+AliGugjqsoM2JH0Tvfw/BrqJDD8RXNjoWodkWV/nmOccCTlAObycCztd8zwd3SzB6C1gBoPCAfpZgBLAIV9F6aOYDODB7RCd4MSZjAOADaAZ/IVcGLzAERwZBkkAF9zdqY/cDN7AIUlZd3fdsvGCAwfB2OJiDzkd9OZd2FXB6EAgKCQYABVAVSodrGocBtOeBtId5WeZgONACIrgBaABvLyAFJsgyiDADLYdsLLh//Xdqx0BdCvBzb5d5OVeAcecHbEh9CRBtFQBwM/cABFAAjOYTVpAIFpcFPhB7tJdlA6B+WWZoDuYDLVAEIliFg3ADViAFkv8ABQPWYWKXbGW3YmdXXQ9YAcHAAiwgcIUWd4V2BZ/nB2kXd6d3ehE4hwSABj5hAyUwbrA3e38IiAdQcIPogYYIf2hwaaowCFcoBSUIZCrohS3IbJbYfch4DGX4dgbHgyLACwpggCLAhj9oZXHwb3EwhjPHWqy4En2HcRqngVpWcONoi1p2dysghW22i2ggCIPABCU4BEMQjy9wA/g3akQQA1I2hmLoZ9G2iZ5HjQuXc6swgNAHjQD3b1SmihewEkZWbuH4W7Voi4BIkQ73cDa2jhSwkZgWb4NQBvBYgkygA/H2AoqAfMdoAP+mjGWYAM5IfT6YAauQARkAfaCgAAD/x33dp4rgpxJ8GI7m92BLWJEEZ44DIAIypmiWRoUUYHWqQAEF0AZG12YQgAMZ6ACyyF4PCAqoxpIK4JLUR3oikAA/WAFrkAHCkAEJgJMAZwBsyY9D2JAq0QZ+OGNBOZEFZ23kSI4AsAFZkAU60IsgeQPAyARlAGwiqAqAWQYbMHvOBoHKyAtkWQGTmW08WAFlmAFzsAZj+ZZ9ppPJ+AAAIJcoUQZtcJdaJpGzSJFtV5EFV4c4AAEcOXJloANMwATy+AK6SQW8yZtM4AAA0JXHwH3RRnoBV2iD1nzVpwBnmQFr4AcKwH0LCZnCeQwA0I0o8ZuoOQC/xZppkAZZloZX//Cdtqh+RVcAEFAADkAADtCeDtAGbbCRaAABECCVwBmcfoaTN/dzb6gAn4iUOddzaScMTiAMz7mW2jicyKgANvdvALB6pekASuhgtceaFmpwLMCaEoADg/CRg7AIVSgIF3AB9Jme6nmfDWZl0IiZZZh9LFqDN3gFnIhwMgkIBAp92mgAEKgAAdCiCuB9TKASOiChtFd7tYhlFImDnLhz4FlwB7ABuambQ0CYvKmbN1CPunmYmoWfAXeKPsiW1vd2a/d2wiAMWIAFTgCdWtkJoBAACRAAbhqH3qd3KVEMElp7gpZlSJoGbqekO7eJbJAGEuAA76gIVeAISQAEH1kMOv9AkmUwBLc5ksApnD4Ih6yGk185gGlQDmzAicIACIAwkwkAcF8ZfZPpB4WwkwRwhyhhp+mnpzJ2oUpaDn06niwAngAgCCBZBjFAAJq1pcAllBJ5AP/2gDYHCjXIgCzqB5rKiQKYDqAKCMGAkw+YAGwInQHAhjtJhxB6EtiggbWofniZpGnIAlGQhjd4qwPQBiF5A46wZpXGZhtpouvZYIWGimmHeQhHeqcnbeVAgDeYBqsQrU4QDA4oA4VQkzTpB2e5knGpEkVgfg1Gjk5YcOQpo7b6rwUrpjJGAbuJDlbam0KmmyKpAwVAe6hoZdY1jhcZdJzHBuWwCmlgpqCaBj7/6AdoeZZrsLNsOYcFgA4pEbGr6ZoFl6FKyolHu6RQupuDwGaYpmbw95eDsAGaRawMZgAOsAFF0AEAcI4VK7DlsKnlgAWgugoCyrA0iZYCsAZv6GfsBQAOwKoasQjieKEG951hK6acGAUy6nYsIAFLewM3cAEF4KvAZaTc9gd+BgBSGS0pwAFcMHsM93abaqMDC6pYsAqjh7MEWqYCIAzPZ3My2H0EoAgpQbdFaouYh6RMmgZs8LrlwLfNx7cicACqsJs3QIJVcJhQO6/qiZ/VVQA+wAE64QI8UCVOh2X/WraXC6oZcAWamJZmKgA06XzZp4zdBwB0ehKCoIF223a0/0qrndqptOp8B2i7VDAEUnADTCAF6HClUiqP8lgGBfC2PtAnp0AHRtA8leJ0trgKnHe5A+sEcVcIU5ABAoAFwlCQGdBz0NgJO2kA2KkREfuqA9CkF5wGMkqrLPC6nOgE49l8b3cAWcCbevCCa4YGFECfbYaIGwABBHAA1UUAK8AAMABJYRIlVAJ4AJDB3wmqn2q20VejmTvATpABaceWzkaaGlEM3muxFMmpgbrBHBwFwVCToKi9XTi4v3u4HVhwrMYLJhAtMPAFWzQ06GI2GtfDF/ypgEC2BPwHV4AFUxCq0YoFBruWkMmVRYgSQ4AD57entriprguz/wq7fNvA+/+qxeiADlTwjiPZoaqgwukJnGG8WSrgAnQQCJBEAgyALsajJFxbcJgbqnGcAemwwJerwNCXxNyXjQbQkyfxAo0wobbIdq7LqXzKqbxcvn5gvtumA7wpBY8ckvA4j5BaBqpQv4vbAV1gBKcSO4c0AmmsARrwd7U4sAvcyn8gDNBqo2daDp35lWwJCnEQyymRBW0woaxbtLBryLBbvsGws873B4vGBOkbleiJnvSJA1J5sn9gcx9oAR1ULTBQJnvTOGk8AT0swKtAihUwB+lwphPtBEmsAIWQANx3kz9KASmBDZ7wxBS5dr38rwAcu85Hk3w7ABBgdS+gAyYgi0Vajhr//IO8gAErAAPT0jJkUm/oYywYMAAC/HxDjAXpkA6wUJNJnABsG52gsJYGwMQZsbXmF6sU+Z2c969azbfOFwVe/a8sIGE4oAOI14uVxpTpCQCoaHsaECjzwwAs80E3VG8gE9TRugpXEH0VIABHnQ5p+qagYJZrwKAB0AnRaQDdmhF9yIHeqdVZTasD6HbB8K9eDbMDIGE60AIt4KiRWptTW7+nZ3sjMDDAlyY8fdCIAAUnENQDW5BnOwVHLQxwt5a8gJYs6qYBcM4TnBGnacEDQKubGsCP/bJXvHnl4AQDOACxqQNFgIEF8NzQ7Z5qHdo+gAjXQG9QoNmm/TdnwgFB/x2zBQnRfjAF4YDHeZywBloBcPqVa1ABc4oS5RfI3gm7AwveexsFToDfUVAOGeAEEiCbT5CBSujFA8ff+QoAK3BDfkICwTcC+zNaPe3dEiCwwWCqP+fNWAB9TJ0BGa7RPfqVGZCqB9DHGtHbePmdYssGJx2znIrcweDVUWCu+P0HslkGf6lm7ti0aEC4DqCSC2cCK/BEUPIEaQIFL0MCkGg/nhDUF+wHcEqZfiDR6cC2a/C57e3U1aqWpzeaJ9EIEnviv23SyH3cVnzF+J3fL/7iBwABgrB4QlCbjdqoxdC0EGAACyfaA/NBwUfkI9ACUEAmZwIFS66848yjaxDbwf8gDJ8rAjbHoG26s5hZAQcQtxQssaxbyPCs1SzgfAN43MEw5k4AAC3N3FXpnr7KngRg5zZne1Cg00ITfKuTJj2NJkt+weUAfYSdAB9w1FiQwIBg0WXYowFQ5T/IoEsg6pVuweS5y4+t1c6e32u3dgCwkaogscEaY8et5QeAA1AiP3DN51unJvbzQbWuwdHHoF8p0eEQDhNNx+cenYWwmWzJoA4GWBhR7UPZdngL3ssLwBkQu1ttvqHelDoAf067e1AJANm37VLCA67zBEReZn9uPzdEAuV+BR/Oo0xt1H2dDmoZnW46B3NQCFvZpj/aBhmhA8nLujArtgD82B1s0mf/PoCivgFkvdk60KHANskQAAD7egAdICUhMDfo4uBncj+8cgLGgGXQ9+FkGQwcb9R4/KZwOgcCgJkl76a88KAZgZVDyacX/LqG3Npbrd/IvXk1nwVWaepevK+FNsbvMfToAtf3YyY3NCeCl3kJUAgBkNHWCgtqsO5oWgjq3fdri5kBUPJk+QckbhHr3MOs66zOTvZand/4DcCh3tIbMKEzxm0ScNzQ++OeYCGMY80qYz/Tk92qLXhLcAV+X6oJkA6Cr8AC8AGF8AGwwLbWqsdtGn1/wPUXcZr5brGODcCAoLH4TaAFqvyiXoVFgA1UyI47Xrik56YKQHgdMAHIYs27//LnY5Ldmn0Ckgu9uO2mhZAOfZAOrU2gfC0MlGn9ia+MhUD4a44RXp7v4Dn565/VMA4QTlY5KVcOAIQNqjZkUaVK0MMNFCAQEFFBgYJjBwBg6DDhhAaQJC5BuTQSyogRIUwAOMYrgIIEAQIkKKSmTzqBgABhwSKs0MVjoEApEArqQ6EKGlWBYdrUqdNGHTAcOCBBwoA0aQqWW9W169ZVUcSWi+LEyUEKG0ysJdAWwNsDIpz4CQCqE6iMGEx4OhEiBIOSgUu2OLEyqNBOLxMkaKAm3c504cIJ8PMTMeIAkBLIOGYAAIWnoZv6MDGVqogrLMoBKtgV0KrXZgsKEzjwLP8ENBQwwH0Lt4JZPzE7dVLwR+MEDhz+jiAZGMqTwgAMXFQwXIE5cx8apIscDguguRVkFiq0hrxMoZ0BOHghOnSR0gCoDhhwBfaq1qxflzPrhHaG2g7aYIM2IKAAjQ0EQfCCAv6oKAHEiDOuox6UA4wkDJ9YwbBjguoEgeE6MceMObDgrqcMElAgAPLWWCyAu/A65gEDCNjAvacEKW0+rKKADRCt7oOtrLLKoe0rASUqMC2IKHAgLvGqGy6ACiQwYYIJegghBRVGMOkSFVboQLpjTLksxJnWEIAn8IRZw481MggmOAg77Ew9CNrDkaliHDANqzTw06m1+8CzTSBhbAP/oAA0IJCPKriqkuAKPyxacUVIqORoghqUU+FTElAZQQMxpRPKlLs6MQXVxBLQDhbuYo0sHWEswutUOwG4cU8wNvBTPvqCFEaY134ERJgpEm2TtiiCERCCAgpwgAD5HLyCq2BiCqCymBII5gATOkIuBA0+HUGFE0g7ICgzQ0TVLqECMKMBWCWLFYs5ClmMF4zS4wWANngFY5BfJfhDgjRYeI1Y177TyTWd+jvrgog2GMQhiaAtAIDgZJJJ25lEACDcCTzhoC+QQuBA3WM6kSHETiBRNcIEzPgAFlgEILYn82hSUcYOPRuEVyZioPbgAQoqtliIlWU6LGcN1LgAHByw/9qBAg6YU9sVP2zVuHA7MFk5DU7AEoAlpJx5RVBWxSwABMyJ04lj3VxM3+FkfOCB9ZjY84YL4AqWq53YhBgLr7zab1E0sr6CPhZYwO+KK4ADuRMUEEABEj8GOECvDrhAjoMJOhhzABEySxXuu0yR6aLhzKl5jTmmEOCDnoVr2xQDaASgiD2ZCBxYrAiP9WGdkl8a8dsksroACKClVgKystW3LtVFXGOVNAbAAANjPMDSmO8PSEMCBR4gQP0HiJpyJrsSWzGANUxMB19h6Lp1770NcCB4ChAPUKvhieF2MqyyDCtiUUPQgAQxiItt4AIUmZN4MiODuCEgACPaySroI/+B74XwKtz7gwEoUIAyBM4AoJAJcexSl8TQTwAn4kmK+lWmoBHAb+4pQwyApZVAdUUY98OCAHRCxGOtYgpLlNOiKCCRaEXLatS6QjBclJnNzURfr7rf/YBUjqzQJ2lOqAABVEEBKgxCPrwQDoxaOKUEzAFWdbvdRWTUOwIsYk9Z2NgIV5EorQzxXmwiVuGwMAUnRIFxT6oP5YKIrAy4SAaQoCSLPnDJOXBHMpIZxjC8Uw76gKcCBmjUC1Rhqpe87o0xo98a7vfHKcxBRXbqnQOGhiNfAQBhsHEYL00UDiQ+7EfMcuLVsCYtavHCLC/KTCFsFqc5zEEYWOhDHzgpGcT/YUUYAriCASDggDIEMA4KqABNuHW9l5CzENOsmx+owwv1XIBXG5AWBrCSvO8UcFaGYxgsnRAMAjDKQAhqkqMoBSd9FUI7AhBABtKBs3R4UjLV7APi0sAGJWaAlAVgAhqkc5GZJMAPldHXYl7khxkWcQ3UCZoD9LinMhShEU+iHj55cj9g3o82S+zJEoMhAgLgZorTotZbJJBAZNGuRLHaZDiGQVGKeieQkTwICj16jBX5rBAkdRFIN9gAe2WAnBjxDBoEZspGtEGXP1rFTbsDzEMyYg5mSVYwglHGAkyQFyKYVORUozRArGmGmuTkU/uwBcP2oZPWNMuw1lCBt0yL/18xgUlJzbOG3MnkA/aqlUU6Q4AyCAwMWWgEAapCQJ380pr2QqTOnLBERgQnoI2LVvSkVQACKMA1smpqJxe7WKhi00QMjeQS/lBOkyYAOyUtTwZS1MKbAVMYFemMAQog2kRkAQdTGcCP9GmvyPTUCQJgIiMYgddGXSAtEaEAg3gRBUFqMlbVHIYXENtJxCp2C9WMlQCiuYajINSk2DEHJMwxhzg9dzhxlIwARKAi/92SVzPwgVR2JIHkMXWTiBPiEmFbRghMsDeRkgALpmm/WYUDqlu4b319+9Sc3i+aM8YseZSrXGeaYQ3DygBdFqyddAhgX9YVLRie4AkstaENfv86QNKw0FRrfuWPiRrITwMawGolLQqq6YpbZ6XJw7IYvywWs2H7m44MEFcYczgKTWQH4DTTJhiZAZE5wFqrABxDh3uSQ58jAJKPZIG0BZhKGk6c0++wgQ1c6UqyygFUqYUYWlcDQKAg0x01qFjFLfZti/ML3nRMgSfTXDOby3NJ3JF6zjLJ1AcQbBEi72kGUEDEJRhw6xFI4gnYaENpBgAI+XIHlIp2DbH4E9QNGCgik3YAACTnVntV06legHGYx+wF+96Xv8Ittc5iKU3aFdFucMQsRghgVhxZoQQjYEAKbt2FkajAB72eSjmevElAeO4Aq1EeeK7c7N70VTWF+3L/OGyi2KcmnMzD2AK2Hd5i/uozZ4KVoxzv599CwOhFEJbnnmwgiVsz4AhdIHnZfFC63fyaqWnoTXfx2RWsBZB6q6CKBPzzRy+rQedQpe+YydxwMmObxda03017wlATFRBfCCaPpY5x3T1ZYQbsToG7b72JsiFZKvIpxz4HEHDv8sQJDjAQtbr79WkBwD8oNjhFgatt/CbcmmF2OLUlSsSLr4m3RZzDSCvAixp13D1ySAQqGID1qt86BX4hnTEelYZfYuHr8klDagsYhZgXdd8GaTYLnJD07sxd2/Tt+VMlTxVAOLXhQl+scA0pq1g5IZKjFLxobIAHGLiABAzQANZv/62BxZ/AE1KhDwHvB8KpdLmAAghGzAHgObOvggWGNrqsFOt2aV9/tQMwAQ4mgIFVbNq+Dpc2DZX++vulYQlQH3wdYEByEpTLSyTYfQo0oDLihx0Qn5MPbKa5JmFoPgNxgD+gubWoNCPxstBLLGmbKE+6CXAxnQ5Ig8hYvYfLr7u7Kcj4JdYggCrYk8JjgC7gPQ0IFUQwPOALPk/AgJraQAkAlmO5qWG5gmihJwKQADawEhwwgQNoK2jrAzUos9UqvU4Kh1VAPgkQhmmru7rLr9UKhxicFdYAAAlzjxlQPJBgABJABEQ4iSy8Pw6Qisoruhc0H1/6jiPMPLhgA8+ZCv+Csz7gekIHbD0o5AkV0y8LbELE2iQiMpwDqD33SIRRAQkNGIEtRIQWQImQSwGzsSdgCy+NMB+dOLHvuAKs8ajJ07cB+LzqiwyEK8LgcirS+y36YjGhY0LTO4CN4YUrODGaA0QckYQsxDVU4EJJgIJ3WzxPMIbuujcskIAme70imgIJuET52Bj8uAr0uzeE47k75DkiFDNT7KS6e6pyYD+1mhboKTIw0DUS1AAGoDVJuEV2UzwOMAaEebKbCBalsx1YmAIRIDuPWpQDuDd7cSvVYsCJmrt9NKwX+7lsGz/76oN45EYcmYEnUAHguzVUKAGH9BLFS4Fz3Dd1DIfu4aX/hyqinpCAoEIDjSgACdCnE+GtOHxCILSmg3M7T2I4TmM4+8KvdACq0DJI0WgBhSSXUCmBOuBCVNi9dtvFfePD7jEk8uoJYbiCoKIAjcCBeqQh2HvGarIJPgwut9ukZvytMeskWFAAKqRJ94CC+xPBS+DCEvgCw+uCxZsAYzAfFOMeQzI6YiS7wDmAJ/kl2Oui7IsqMONHafMkT7w+iVKxlXyqD1AAb/JK2xOCJwBHF7gEVLAAs+Q9ieQCR8QCqqAcAgK99FsU3HiLjbm3TFMDnoCFZ1Sxg5MMndM5LUjNiVKx7uAOhoqmnCHNcGgAcwgA/5lJxHQKhCREBmhIRLhJ/x74viYrhwNAg0FAAwdIwgKyHZ4oxgugGGiBFgAQgW3qL1gIrtRcLZ1Lh9R0jC66l5yKpkLIjkJgsw8wA5kxhQdAt910Cl3zC8CotarjgBrwgEJTxaYoAwK4AkM6IFWMTvZ6Iijqz52YAu9MTe9kqu7kDlhxjKJ0ToZ6qDlogPS0sZiABBQYjgdgv/dkCsJTSAZwgRFUmftkQY2AAKd4gazxP57oioMQUASZ0ScqABE4UASFqFj5zliBKA+LJSzAmQbIJFiIJjO4zRfJlA0FhRpxzw8FAysQAoWsOh7ogQnAT73AgdCoghhgxQKishhNCzQQhA3IjRr9g21iBMxyNf85EgCD0zlYcVDy8rCKK9IKFdIhdZEjRQAljRkmVdEnbYoZuL8e6IEa4AIsnQD3cAQyAIVWHJauuA31KtMBMVMGsc6+WwzsWIB5oReciVPE6QnZY7MGKFVTlaNSRTCaKE9z6AQaeBkmJYBAbYpEWAH7DALKZEETcI8bAIJFeIAKgI3auA1layA0QIMLgBYRWIWfygyPQYBOLdU41SnykitT1Q4LrdBU1VPsoKSXGY7OANRZfYLSIR8W1BVeTYIkAADOaagMmAJLjJ4DmdHcSFYHoBTxGI7MgZsRMVXYm7EhLVVstdBrbYAFSM8jNQcQ+VYmhcX3FAKpECEtFQ09qIL/c0iCRq2ASFqDKfiDAmgvMT1WAj0hETDMthmOVcEcaJVWnPEvOYIFU41Zmb0kZxoRDYIZWHXY9/QBEcIAHNEDR7hYMniAbfED5zqIY6VXM22vAhilFTKFDUVZGoDWBRjSOxXSaMKkrNXWS7IZM0AAsNUg1ZEBsu0EAiCCWWUKX1mLXcWRG3AEdY2BBwCFQpCLKQCAC1AQkR3Z9nIAEQC8VQlcVcmcqk1VU/UvVzPcmT3S9AxbPgVbGohcGugEA6jCtOUVK1CEc9jcRSAAFioE5zo3Mt1bAo1OApwOVGEVFEAVBGBTq1VcmTXYazUD2l2AEVmADJJcGthQE7rcIkOH/ypQBIvFWNfxgwB0gAdKkDIl3Qt4EgMwk8BlFQyymRmr0GiK3Xk5WIGdAzPgVAIzB9xFAMl9GVPwUN91D+BVBCIY3rlVgHUSgQJoCGMV2RndmOeNXsGF1tpx2SHVDlfDVk6l3VNFWK/9WkjQnFfNGwLQgfPdkypwhCp4YEeQW1AwWkCQAAi4GKVN2twogL2JXlVZFbhh0zkQACFFNYINYOq9JFO1GdylJLDNHBqQmQAAACdt4KcAAiAI3gceWroViOOEIHp9oqUtAAO4X8GNH0ggkWjKyNu5JJuFVtpFtQLe01elAbgRXz6tCwN4KRwODV+F4CpYBAAYCqM1CIsZhP9KJWI0WIQnggAaiV4UOFmhsBmkeygBsFAzCAAR1jH0JGDaheFKCluPGSVx/WKnWIQYWIQHltuLuAIAsREh1ts2XoQ2bq/1eQDBBeHWdTUTTocZSwDrwi0FMFqt9dqwLTDHjdxMwc3/QeSniAEyYGSMBYUKoBw5keTkpORF6GUzJYDe0eTUDWGVVSj/stM5GBkc2EGtwaysTc8PGBEzKARIoGaFndot1jPLRWQymOUJNoA4oJxWbL4HGgQKUBBL5tsTeoAySVkQhtoAcDWYhQU1mAKOwIEOMAEJEIE1mOKupV0SoWbH1ZxMuYvehWWmwFhGQQNg1lhcht9yPuc2zg3/0p0Idk5ZYlYVzMmOIcUZYQAACdTnCsixANaOGYvmgQbbAECBAHgAnT1fRR4QIz4Gjb2rb4GAiEZnS07a9vqmI/YQjZbjldXWOQChfD6AK8gx2qXagwWw9MSOsIWE3R0O/0FopriAQXgBgjEArKIJfjGAvIUgifblMj0QpuXqU9kdu0jZzDnSg8WdK0CYK+hngO5e8IVWp6Zdhc0cBJCBVwUFXiAAQbBqB9iAFvABAICnoSiEDmlPHR6EvK3kDbDknY7O9WmZodgdjHaZAwbbacYd7q3d7gVo25UXm0Fp8cVmVjZM0IDlwHGA+OCbotibPNJhIMjbRRCE3O7lymYQ/3aOH5Td5A/ZIGm2GQv9ABWu6+K2GYWFXGymJMM8ZBz2oRHrZjN5gG4uAEGw7XN+IN3m7b3FrQ6BF3d5lxCB4U1N7n9eboB27qktMEh4mVj7YkYlgN0AAAKQZU3G7oDabkcAgu4ehIf47jX2aa6GmbUW3OEI2+5dAE5lYe04UuXu5+bWYrCN77oggJcOVEEgg41YjxjQb/Xx8ALIbQGnmHJ2CDIl0zKVng65i6gNYcFFb39GNTZb6rreY1VO7bCdWhlIn13B4UWYFhMIqBAng/yWZTLIW+VFcQhScYgo629iCaGIcRlHFRTAZoBGtf998H+e5seN3IHGoJY2X99VZP/8xpojj4EkkGU2B4KHQNYEefIBHxD2kh60jp9TCVwU6PMPiZvuPQr/xV2AluYe7/EDjtyX6dAvVgRFJgOsuQA3T4JzWAQyiAEgKANHcARBoJg0hnLlzY3oabbx1vM9x/LNAVsHR2FAruuw3ZzOFvP4hgRQWGAcHmMkv0RZXoSgdXNH0PQy6HQEGYRN1+EBF1nbcgC0hpnyxpw+F3MEUGrSTu4LT2nxJdvJBWscdvRchwBFjoFzwPVLLwNyD/YLGFNyL/Zjf2PbAuYVMvUr19fOhlb27tZ5H+j45tPINegNf88JRvICKIIL6GWL9XAyoIByD/ZzHgRg/28VZ69kVS+Y+y2TywDuEEEBv57m5hbtlM4UyIXWqJYZypXV872BNkdyb1/kcJdb7EaDMmB4hV8Ehq8CTf9vOBdZ9UKQE0JrjFZrVlHZgXbwpS6EkL9mLebrqcV4UyAARzhfdHCEb59sXlcERgUAMshgcqf5Xib2Mohgmn95AYcIglII3Mpk/jl7/nGbttkdys0bJI7eU18V/iEAMhCtgAAAIfkECQgAWgAsPQAFAHoAvQAACP8AtQgcSLCgwYMIEwpsQkcWEll0ZsmC2HBMjhxIFGrcyLGjx48dGU6cFfFiDlkWd+yosYNPDiWXXICcSbOmzYIRkUhEkkOlzxo1gggNwnIHjyOobipdynSgEYsX+fBZWSPqjqFBuBBl2SNEiaZgw3YMdGRlVq1DgU4FOqFtjx4qeYQI4Uus3bsEA8nKUYOLh78ehvoVWqMHhxoTEHPoweOEhmd4I4NlOGtMUL9/tWIOnBjxBC5c3J4I0U6y6ZtNAlXk03czYMBtP8MOzeHEia+nc3NMTSfnmLWvMfzt4EG4h9CAMfidYPiEJN3QE25TPZFnz5WgX//FYFx7YA/MOdT/fh69vMBSqukggZpjatbhxLd3P768bQ3xIU6UNl8ehhHfGKX0nnbccZfZBEHEpiAHpPFXnhEQzYKEde0F1VYH8XkHWGihKTgBg7g5mFtEDu3l0lpBGOaDD555mJh4Ltp3Qgsi6qaaRBZNxQcPPIaggQYjBNmOCvnN1c4IqMCQyiUMhMCBgvrVmBtlUEmVwxFKuKAlKtdc48uXFqSCSgnPgAACHmhG4AsMIcR2wghSnsZQlUYdoaWWl6RyTSlqRuBnBHiYeSaaeKjJwJMf0hinZAxVWBgDl0QaKSoWdMknoIAKqmmhvljw5H1CLGoaHb8BFQKkkkYKg6WAFhqBppsa/7oYB1CIKpkRPRF1aqouwOBrl778mSmsZ6p5yQniKWrrXUZQxSCqkvpqwbTB+llooLCmyaZ4rSyLlxJUnaDCCJG6ENMlvsJgQbWYYrspmhZogGy33toFLlDikhsTnqhQWuml1hJrZgTx2qZsvU2VosRUPeRbLr9JVhpsmq9mW2jBJ9CLcFMWHMFwCE9AcckrDKSQgo8aMECCuhP/uSkIflpg2wqhbpwwDDyopEE7LpSMLIMc+PBhCK/A8OU1YVrwzNLPcJqKkyvYDFYg14TQMANYm4z1KySgwoAGczHwSqUWeK2BCuNCUcKXkuR3sNRK+WLbqSSoIPYrJF/SLyqvaP+QAgOoqGn2XBo8MQIUFkiywttw3+TpXK+M8MrITZ7woQo/lgx4KXj4wqTK06YieipPhNi4UhGY/DcJLrzSRcknhyDJE2Iz0EXgZqaiQW0htLCuBS2Qd7pScij8urmXsB7p4amUIMkIW6PiS6AzSNKK4U9IsrQkwg9fU0SzzALDncjvPTr0Kb8ifaGJLI2H+2iWkIj3Nt0Y/iylGIHKnXlOWzYJJMOb0TKVCIE9Ywb0q0kpehM+I1zDCOQzl79GFsCuTUxgZnpG9xLokQWCjw7XGJ+WJocuGJDghAEs2gUF1r5acRAk9gsfHbLUBRqSD4Bi69q6rkWs9xHshTOJAAP/Z2GE8dWwC1rqQhdIEBO8pcBO1BrWoFwVASCCZBL/oUMRY6LELuANiTBIXhdSIBfbpUB6FRtYBJ4RARtYESQRMEIRvRipI2pJCUp0nRJ7hTQL+ElQrvLFM9z4Ro/gwQIQbB3r7qgEPLYOeau6xqsCRclA+mJ+hfxIBEI4Piaa605ZmtyvAgZIigUqkzOZRClKcQ0mLrJ1SESiDldopmv5aZCopIkcQGCBh2mJAUd4Ih07dUFXpQmTuQSJHORQAlREiolKVJ3WXuGCJHXKj61CZjI/sg05PAMKTKQm3lynJWl5yUtRBBQhtwkSEPhCZeMkZznl+KU09ulV7JzJNnwR/4gmjjOJ5Yzk9CimJhDkcyYlYKUz/3kudUlMWF8ikxwOCpJeqouCJNQbpbx0TzVZQH4UBYnnkOhPak5qXcHiky+8tLaJhtQjI/UiychHTS5VSpJLo5YVXuqREozsdX/Lox5LuCowlYBMO+UpR55xiS5m7QhQPYLtqKmu0a1tkElVqkKesb9xwi4E0vwb4ERHpqWBYJ1aPYgcItBVFJYsP3P7m96ax8Y1gkAIQ0jrQWxgAzzwrXVcAyDJsNYrlLLrgDYQQhb0WhAbnBUPYfQiCsepN2p9qZ7vm4EVhhCDDbyAsVo4hGMjUAoj4m2yXXMou6yFhxkcYggOMIEPPptWK//o4UyVMkJTT4jCEwpUWKxNxA+YQAYCOIACtOXpNqzg2DXJUUuTpay6vFRXaw3yB0AgQy4AQAAKKHUbNlgmCK6hhCJCl7cBvIT/VluoZxxCCnvQLgHmSwFVHHS5ywyvHGxggRRkKXm8FazKVLvaVCTiDlQgAxkA8AADAAAAJqBAFjb4RuYm4k/5fYYGoOqCAAfphBEzLJhmYAMrVEG7DG7wgyGMAyHUzIoWngFZS5DhuaTgtIHlWr/8Z1jRgcAKh1gEih9A5Acc4MgY6AAOsJEFKrwwEdVrAdqgwM9l7vd55Aowb/3lP6SlAgruvYMe9rDdFDf4ABJI8wEwYALZZuH/BU5unByg3IIVrEBoHGhHIHwhPyv4ma820GALtMzlaUFhBJKwwQ9+oAjtbpfIBjgGmtP8hyOv2QSNwIYQ4oywbUAZCioImg9M0IEJqCBxLcDrEIbAhBe8YAitgEK/RnBCjfaLBNk7MCewu+AHF/kYvPiDsIV9gEoDgM04KEIWXmyrGZSgHU6agJJN8OAOrAAKLWjFBra9gfrqIAutaEEqwtS1Ewbpa1BIhBU4wQkwxODRkD6GvHmxhD+IYAADkEClD3BsZNd3UbssQZ2lbYIkdwAAR7Z2O+rMbW4LYgOtGEEqOoUKWp/way2Qgh7YzQkivNvXx4j0vP+whCXkO98k/5fAkVfsgDZsQAciAkEJRuAkDBWoAxiwtAmw0Q7FbUAVD9+AIHSggxWM4HeowCHWRuBajrf740SWt9QVUHIJXKHqKa83L3jh4GMnO7m6SUQJoLCCJxWIOwe3NL990IIWOFwQgiAGMWB99E7RGm+Idu0Pds3uH5A5F0Q2hSnmXYEK+EEEEsh3miVQ78LzQgFbNwB3cLCB3NjA2VK2HM4LdIA2W3oAR8ZBqhsOd2IwwQbP6xeAGYCkROhh44tm95jh/YDBH0MBFRCBCK7A+yuk4Qq6X4IIllB4yBsbwmhYLF4Czb1WaD7nlv7DsRGOb3x3PgtuJz0xykAFIVj84oh2Pf/snX6Ddz/gGIGXdwWA33veWx3xFSB+8QNQAV5YGgAOKEDlwwJlIbSi7ASHAQincio3gNVnfSbgYg4ndMSgA1QwO5M1As/genvHd7K3CNtlAA8ACqAwbxLAAr1XDiCoe4h3BRJgeIWXgoy3BAfgYA4AAWAxBNlWdjjQAW0GfQdgfQ+WePiWZqBnAtzzdoKgCmUgBahncakwAxq3cRb4A2CQBA6QCwaggVHHC+uXBmkwAFk4AL0XfCJQAQmwfsNHcl+4dVwHAN7FFNjwJBhScDiIZtaXgweIbywwAAAQbg3HgEXIV0MgBCVABRpXgRXYbotAAAAwhVN4fiEHYQaYhVf/EAy6V3h+cAV+kIKIJwHDt3WLSABosBTYUINuiHDHVnByOIdpAIInB3ocsAJ5+HMO6GqudgNSoHEcF3s/4AgLhoiR9gDGlWnY4AM4YAJyyHjxtwRWx3uQ6AeVWG8KcHsh9wAAUACeaIMCyG9ItmKlWH1swIX3VocAgA2syG1ogAYN+GqwOARwpgc/cAd3wHHudoiICAoG4ACNsDgt8ARPsAKfKIxpVnJcWH3AV4nFdwwdiH5ExolKIQihqHZHpnKlmIUsAIK/534AEI7bNo5xZ3poQISrtmpMQAXq2I4/UAaGaAC8IG8Olmnjwj1CcI80WI0+iG/A94UpWAEK0IFF/8aLnXgTquCGDIlwn3eAqIiMJliRK1AE4kiOplcAsYUDPrABRQCMGzAEYCAFVRADD3aSBekA2KAC+Hg4QXJoKnBnOJBzEoCF+FaC9WeGBllk0agUG0BtDBl9w2Z1dBiRAxCRvAcADXcBF4AGG9CAVPACTKADUIkDoNhmbVAA8DiFCtCMAAAB4IaP2dZ2I9ACyZOPbQAAPNh+ayl1OFlkBFAAjmATilAEpKh2DvkHiycCpwiC7QebaPiU3UYBF0ABG1kGQ1cGZbBqLiYERGeYDgCPt6cABlAAy5Ztl9l2hoNokpAKdQZ9S3CKIvAHBIl+8iaPOWlcgmATWdAIcnlk+//GmpiIeDI5guUJfHYojhSwAWgAd6pwAYbIXS3XnlmgA6q2AVn5B1znAEZ3j0ESoPgIBaPzNAeXeMBXAdYpb4qYk0TGXd1ZE9jQBtyBZhZKngOge7yXoSS4e7qHbwCgCoEpdzrABEMwmLypCmgAAQUwnw/GZsN5iFsnfRP2ZQKKPcwTOiFAbVZ3eDbJoA8QB0AKaQZAAMRgE0UQjECpcpUGkB7Khbyne8HQfgdAACZQABAAAX55AYGpCIA4i1JABYpQBhsAAcNpoTN6AKJ3CVDQpi2AbS0QluP2DL7QNvyohV8ICqYQdR1IhddZpEdaE8WgpDmob8LGgzK5e1eQb7v/N6W9R4cHkH8QQAHDiQGjCQGBWQauBogoSgGHCGzSdwL+ISkBepkE+jtfdgL8mAaQ2Iy/hp0cCHkhZ6Q2oQoOAH1qxppauKssMKWKGgx+oJdXAJsswJcNWAbEwKIuym9W+oLtKQiMaZLB1gGowErP9GFCMG7j5gupIAmooKoHsARXMJBRB3mPlwBheJNFWpo1AZ64inLCNqxswKrs13vBEJH4Wg6QCABzd46DyWrEIAhowJQPBodpZoUVcAAc4B9hdAkjYDiooK1HVQKiMwIckHPi6ni/9pgVEAuPGQABgH4EAAQ24a6TFocZCoK9OqzEmq/lEAW8xwIHQAFlUAWK/+AIi7B96EgFnEqYxLABLYpmhScCB+ADIYBEXPOwBPqc/jM6T+ADGNCPjpedHOsHHJsAIcuLgUoTCmmWPBivvYevMRuR5TCswTCl93oFfwABOmCzjhCjxlUAFLCbikCYZIpwIjClElBqPJACKRMkBTo6iZMKIwC1PLgEsgoKYYiCCuAHa5AABkkAEToTNyAICwaHPSiTjoqvLBAFK3u2weAEaCsC/PoCN3ADirAIyoqN/AZhJhBbaZa3U3oApTYaZyNxz1mgYZIKKjABGCCTS7B1FbAGGeC4wZAAa7AGFRCatEoTipBdQDmHGXqvbMAGnMsCIhiRoHu2IkAAmnoDYP+AujfwakxQBoa5uomXhcS3BlM6AEk2NF5JoBQ7OtxjPTg3AGVbfwmQARlwtpS4Bn6QAAVJZLkwuSABBNBasNLLhffKAmwwtuUgglEQBdsrAd5LBGAABkTgCFVQBeh4Azw7mIUJtABAbx2bBmuQhcIxASewAuPSrc0zsd3au1GboTa5Bk7gBBFsCZawBuq6nfZFE8XQCIxpgPirjWwQwTAbDNVbDtb7smfrB5DovYpwuooQAwTAHQ7grCOqA2WgCoeoALGQvDhcDqDXAauoAuLWPJJQAh81w757lldghfwrupYgDMWLtaBQZIBaE0XQBpt5ZNW3hdWbxA48weVgCS//+7JR4ATFe7beG4tVcAFmaoiWVoArRozBkAHEmwFOkIUmkMaHwz2Jc1Ri8rS/i29/4Ad4nAHIwL/8GwsCHGkdSADsOhNtEIw5N8hZeIoRvMgU/MsR7MiOfLYsQACt9gJSgI5harciWskIh4W6J8XBkLyePACyNRdPEDy5OzpJdwL3q2/WLAzCYM3JK8AKEAC1vLUg0QY32JDSmwZJrMSgq8ROEAWebMwOcKIaNwS8aaLo6Gqshqwb4ADFJrtTSsZXIFujsZLdfD7gmm8VIAxOYAk5nLxjbJOPeZNEtgjtWnDRi2/ynMSFzMg5HMFsYNHBEAXCwAhTus8aJwVl0KIs/yeprmirwpYAjuvJTkDO5YAB8Js9wVOgkgAFJ2CWfxAMWJDIGYDHPV2JIPuYe/wA0kgT7sqZ1YeXpzjPJ20JE3zPUfCyOVy83avMeiDT40jT2WiNaUnGTS0MyIAMlkC7PmC7SLLGz/k8votwFZABAjAF5CwMWIAFGQCGIKvOe/oADlATumywB9jEv8zDTvzLwaDIjUzB3XuigNhqzUzQLCqXZ5mhY1zHFJ3D2IzGYJU2uVvUIYBzB7B1sfDXgz3Y+loBAZAAsaDOoBAAvNC8IEGomOvE8yqCiRzB2FvcJk3BORwMIUoMrqYK28cE0t2brFa+xFAAByACfjDaPI0MTv8g150Hv0HiPKIjZVALAMUZCxmABdRADcIQwAGwBlPgsekchpFJExRKfSI90nnJApKtyPeswymtyOWQw6LLlxSgAy9AAfO1YnELAUi5ATiAZtpNvDlsCXGNDMJwxjXQ0CRQvyUwAzOQBYZIkCBLvHOwBrkNCgrAv+kMsgp637hcjabowCIo2U6swzxs0Xdc0ctdAfnXnmW6usWWl9a3q7pnzd+t4XGtC+7bAXXtI/JLJpKwAQSggRwYADd52wnwmB8gAMqbzrHgB9IHg7gcnjzowNZbvRhe3DwuDBiew3MgDAUeBaQ7qRugqTzrzz9LATjgAIaYlh2r4hZOzhluCU//XhuFgwpwmgUMTpCxCgq0kOVYO+cBjK6y3NtB/NvveoBbncgEbtE6HAX/XdEa7gR3vqJ/uX282YdMIASF6al/UHi4nbybLAACANdYAOfhzTsqcAIr4gMQQACSHtUcOOkKgLxgjrUgmwBTWABlYNU8aoqfvuPIDeo7nsOlnQEGoKUGbaGt+7pySwEQAACzHsCEXrwZMAe5PthwLgFJhhwFYgIEcAD0zYH4/uKxkNsvzoFT6AAG7BH5zYNpQNyRjeF3TOA7nMje3dMWvQaRuQEXUABMGaN/oIVbmMiViK617siwPNjtTQ3IkG9w2OZHhoXFJ9W0MOmKy+wBAAks3qcB/98R7rzL+Fa9WOjA/o3jvzzPPDwFU3DRsQAAf4kG/zzQhkkBNC0CGSAC6AqGyMvTcC3Y1JAJmTDb7N3kEoDVA2DYLH7YsarOhw2ytBCyBABz7QzaeQnZO3zHci3Mbs7DBg6sBPCXFI/nDSjd5aubBDDrHI/pngzYgs3eVk8NhN8HWGCHN5h4S8DsXt+Bkr7bkw6y+26cDoD2HmGymHgFPv/fh67IoC/3ojvWsVD3aND3v+eQrouYjHmCyDvm+/7WWCAA7F31fdDehD/XpFZwiWeTV/71MY/vLE8LyOvDDlYAmM8RPoBzeHsFGA7Xirzzcm0J8zzPBe7xFAzx7UnJTP9pyXKYyOTMqsqIrlLsyYId14Nt9ZkQ8liADJcmgFxYAZLrAAYQ6fh+/x8wB7Gg0Q4GEBCYaCFY0OBBHyYwADggopwlS8iQWSrH5iFEiA8fOrEkzEmGOU6cBANwQdCGMil16CBGbMOFAgQAXAlW089NP2syZBAmUSIWapn6UMOCBRmWAQcYDhhQzgAxQQQeHANV1aopULQgzUmgIEECPwoAANhw0KxBHx0wHGB7UWLGchPLzXUy15JIj1MsTfkIAAKamA4cQNigamUZJsQgHKAZLGesWGuE9expScAjan2GEi2qK82ANKHXAEBDgEDMqVVp0TJlihaCWAESVAhQoQL/rwMYyp41i03hAaZpyqWJKHHu24fC7or8yHOyMJIFSgMQETqNBKUEHBA4MLdcsARr/Ozk6RPZFCxC+wzLFDRTJiw9P84RIeJPAR0xAGRd3Z9WgAAUsM22Pyr4QwIAKODtoCxMAEACpkArDqMJMSqnOSfmmEOAKTp0wi800NjgpZiWSi6+C8X7KrIOjSoKqPcyYa+99jjDQoA5xDNgA2IIMIA/qwCUDSw/RKhAgWMqEOEAB4hZsKANZAIONOIqzMiijCIqJwryOvTIrw0EQYyJMlpSZQMKIOCOoij8+CoAFpERZoqjigpqGDz7iJEaPuMDaY0rpOQlK/7+S4CXCvyw/6mCJXiJAxReACjgSS1eKGKhKYOb8C2KKpwooinmFEAASyQFTDvtcPhLhzJ02ACANJjLQDwz1nBCmKLq5NM9PNnTE74bNVxj2CuWSCAASAKQ4b8hFfADi0cEECaDWBQA5RgDyHryhUbGyjS04j610Ly35JxC2lslpYAAEQZg4d00RBhrrQEgEibH8UBC70U73XtPs/Xe6/NeYWP56thCD64ggQyAis+PWI7MFoIFDxni0qWYYkM4S17ESLgIwb2LL4++lA4CCihAI83tGOvYRRzJm/ORfoEKaj091+tVqPdGnXZYg7sCJQBahjajKwDXkDaDhcFSwAACdjNLhyIcnP/SO3tflEsCD3rgYAIMmjI31Ock3QANYlJS6UwIHJjJiaMygHuyKWiuOT3NYux1xveKEmZYoN/kb8gErIpl1lg+YLqCOKCm+CAdcKB3AF0qwlrOXAfA4ARUYNCAA7UGkIgvsj8sgAK3xyLABNYdOL0ACR5CRoBc+yWqz8zU07nXvNuLD5lZ54As2WNlW2MOP1SDRPE1YvnoNmwBwCELgyQPGzTZI4LoJ6Q6aKeUa1zY5ASw6x29JyxMR8OBhq4QLrRyWJBAAvRvxPXFXW2+GeCAddaG74Gt4QOxSZaQYkG7ctBmNZHRCa7mUIFrjWV6BGkQ6x7UFNnJSS4sOIAPYBD/iFIYwQUMCMEETMCUiNxKPgkS0UlClDIKFOBBKrwRNWhXO/xRQw3/4p3/hqGZGXFmVh8wgzmO5pVYoEcYfiAaLWJhQ48EYwpM+wMv/gCANghBC0IoQhEagYMLwm8umuvACVwQCDT6wgKXICHogHMhnnDECQS4QJhYNaZW6QANEAAA3IpyQ6MchTO7EljvhDKM/3nhf3kjCo7MYAYiAigBh7tRBhKwGlDEoijkEcAakHSMsWBDC0zIQhHa4CAIfWY4B8BBO66BRjSWwgIWcIEGQgA6CNVLhRQBUUxMYBoHsM5BD7rf7fhlu6C4p3cAQ6Q2FvmrP87hA0Q0g8FisaFH/wyQaFWZQ/rytYbbGOABBFBQFnyAA4VkrBwDAAAHXtkEEIYQBjBABQk0QL7rcUx7pToddyRwhZHghV/5c9gxk8mnf/0qb4j0QkO90CvO3GtWj/zKhnBkMEI9EQtpqIBOwgm1wpwSA6wbaUk3VwpYgu8aMHCBC+oZAi5gIGz6vIj6eHSmNKWpRGm42zEddtAa0ah3w3DoQ3/ou1FlgIhETMD9pjBJSMgAFJBoABaY5gcn+IEX2JrUKVmHAxy0Aaw46EAIUCrLll5Cra94BQkYcILQVYkiGyEJYdKmkpXo4EwF+ENHbNgngyIUoUJRZkK10dBmHrWRU9CQNHcyh53ERv8GUoUEzQQggitYgqMT00IRHNAIbIS2COcs4zXQygANaIABr7gEW0nwhBD4IGwUkohyTBelsTAkt2yhXw5tZzuBxehfwsVTQ52pyD2NirGKA4mGqAWJAl7ThiJo2GYdUBYvYiML2+UAWTugAVSMwK2pDYFqSaDWS4zgcydMw0RuhRFhqIs7BuDFP+2iPzshc1c345lwhYqnwyIWkQAcFWQ1NCosTAEy5kBWeOITDKWlYQklIUgXtVtKyZmgAytYwRNQgQrUppYBDCDBh1HxBA6cMC51wpVHCPAXEbUEKmgqgNuc4FM7qWFXO/SXntTwYz7lbT0CBjA0BfDYFv9sDY//NJjSsLAGhqXhAARQBUHKYOENeNUEOOBAFiTxDFSkVrWqvQQqUvEEFZRPFxPpUIvmWIANFOACd10JTgmQBkDuNxM61qFg97vDnAGxmYuUEc58Fx8EKxdxsTjaeAQwmwxcwQAXKAgYstCIRmRZmDjYQAtmUALUhli1I7gEFGBbvvaO7TJTeDEaAIAbpXiLLTx10X5tnUwaBdeQ6mGoM/+HyH/ZsCPnGpW0cmTEr4ynArEQRqCkpgViNCIGG4AADoJJgSwMQRJPGHFqU5CC1I6gBS1A8Uw/FSoPtbrGDPlDfVggSGDd7tZ4ExhCdyhcZh7XuHs7KnzOZdGlDesD4IyF/x8qcAVh3KcKBtFBG677RdZlWxIqKG8ILB4CcKtgBFAYgQp8AAAJaa/NUXhxmGY8IpYRoLcFtXVRCLs/fOtMM7526K8FLbB/W/Rns6KWmxQAUNIcBAgxOaeDTCAEIazgBCcAtwa+LWIzjyC27JUL3CaShtMApgCnEwRL0MTHiARWz4Mdbn/9JSOi1vzXzdRTUUKyIbJNBpzW4kV9HOAIoZMBA9Z+0PSKgAMfcMDb3x4xA0r9hHt2QALtDZdyyvFiCgDgDwPAzm7/QMNb7wpg+OZvjALWqwDX/Id56tuNAHmeyYSlKk/bg1lU4YCRuu0AdSTrBE7g9G/nPrUk2HgITP+w+I5gASJ0EsFg0LRH2QPUZjXK/I/5J+ScOR/taE97URX560VGFMEv+lsAjnEMBeRiEWapQgFkigOZ7FEhZbx4+1PQDjND4QTXg0h85jSFKwxGEGKq8x5rTAApujUgc74fU4M+MMB/QUBmAqJMCD3RWyREajtEM4pGsqTve4AY4A0IUAj0uy63wYDA4wAOwLgUsDgNuIRUSAUNCJ3skZPJEIECIAztcB0IqMEa5Cth2LE+K8DnO8BdKzTd2R0HRCwInBH705X4WANQiINcWJALgD10agM+UgoNmwAfOAGLI7wyW8HZckHgmYMXpEEDEIFgmIvQwJ78+jPnW6bn67f/GHkm7BtCZ+K3oSiKfYkmUDAANFgQVeBAE4AAGToA7KhCDsDC3CMhsImd2nIvuXGC4iOMGAREKRGByTg0AWiAOcCMH/ufPeNBgLm3I3OCHhs069u3H9q8RnIYZHCCWMDAJ8kCdAIrNWGI+ZEpLpiAQsTCEMAnyjkKObkLxzie4nsdCuARvaI2t4kLOwScDTHAzejEXyEkAXDEDNifHzoufSuqOQw0o8AViRiAY8hAStkAE2iDRmgDKZmSAzCBWxRBESwfcomimxBG11kX1REM14mJGxMAGxq4aXoEBGyPA3RGzXCPP3KCR0io3bk+bTQuHgKW+HCCAygAvKOUMjDH/yK4gFygxSkBgCrsAJAEjo7xRWAUD5wYxhiSCQhZDo8ALGH4AIhhhMzwMf9SyD67nSDsA1/LRkUyLoWCj8nIAF6YFEopCCZQBSC4AG+Znwhhi99IA13QBX6RCEuCGMj4gAqoR9PYugKwmj+4An5hLEbQEJx5RrPbPB9kwzzZyWZqKIFsu4FJOKIsyoIYgirYg40URN5iC4ZItZfhDIhwjKaRDV44jcjLDq7cOgAoB1zBkcaayQOstx27t5uUzKAAtLV0Js3wC+3wytCYSLo8CyAgA9hbi8rry4k4gD+wGaO4C0s6ltUIkMFAHW9hCr7sqxdxzDlwxh9rj968TD7rM//f5LNHAEgDBD1gwwIC4A0pDE3eKAZV+KK1YAuRlADpuDPuGwkoQxoAgZrXAQDBwIDYmQz9sSENMc7e1LEC1KHgLE4+UU9qKM5p+oA54KEgAgDnzM+6bBDqbArwJIgCWIKI8Ig2cROiUYD/cJw4+5ZyUIq+up97wYz3DM5bK073nMz4fIQGoKYN0ZuhkABK00/9XIT/A8/H0QK+WjPmcAyhKZoAOY0NcIA0EAYZyYQBMIFkrJNHaCxN5JML/TMJtRuA9FENbYAiCo/63BMJUBARbdIyeDYUPYAqEQkWtZaq8D7DZBers4R1NIED6ImjmAIB+gAJ3ZUyjU8f9dGiuFD/xzTSo0EWM2iA93ggB2hSOzWLAgAO4pgLN0GYK1UAGOWrLdUcKX0RxkoAI2qABkjTGrK1ILXQDM1EDSEic2CwBECAODUYAHCSO+3UPBUdS4iCYLiChQmSF0WZPL0Vo5CyxfSbv7nUOG0ACp23NFUDSM1QTJQmZEEABIAuBAAQXjjRTm1SMngjinAMNwEFrBgaJiGMCzgAUSyKNFiIcoim2HiNBTiD9WS+zJNQHQtSHJmCD8BUBosqZuEFB6iyYW1S7hCb7ygSocmKWPALwogzyauJ6ziAl+mk4kGAD5BVHsu8m5zV+GwsaSqiAEAAGUABFFgNsdjDdRXRdtUIm4DN/6FJgBerI0E4E5jYjrEQnQSDTVpAAUzdTUJKJh3bM/YkUiLdUEWdpmNZ2IZdlmOYy4gNzWJoV+0ZCcewiv+Qs2JUBWJQBUFAA5iQCdFBBvBoopE1h38t0wJcT/YEsgzdUUVtgDPYUMiQWf94AGG9WYskgD+Qqzb5iqLJigAAWkFoiY09mxg6IWQoh7Dwj5F9pEycTKl9zyEt2DlQVIOVJgRg2IZlDVN4gBAFW0pxBDIwAPcJzJs4EmVljdOpI6I9ibNBPgmwBFJV1tboD0wlUx0swB7NUCLt2w2Vpg39AHPg1cHFJJtFXN4QhFzgBbEBnrAgms5VgBgsxv0bkZe4AP+YOAAW+APO7dzVQAEjutupJVjgVIMG2NF/haT5XF0EoIHjRYG0hV1KIYZccJkUMhJriU0D2N0wcSGjBV4IOBAIcg3CdQ0EMKKx5Ec1XNnQ3dHggaRH4tXqpQEa4FVA5VTtPYsN6N56uYt44QUERVsDgADgLd/LPd88raLWmOAJ1l/6pBmB9db1LE7HZLRKpd7qhYRezUOIDeCDKAb90FOKiBfbKBQ9TJnyPQlBAF6YMADwK14KJllMXYDnbT4MpVrloiZerVQz4FVISNASNuGCUIQUbgqKYIFgIN5CiZqVGRHLPd8argoKzuHARQAevlCqndCoDdj4nKb8HWIjBhD/3VXig3CEFI4LCjESZa0KAijaEDmbRaBh4C0AG8bhLWbYBXjaCcXbMb7MPtvRR2KwhIUE/rVeUFhONi6I0ZS8ctCFTkmDKmKNqigAOw6Ty9VjPn6ALabg4/XiHh5jqh1AMY7aDUWA/xjZ6l0WUNCWSNaCSeaFxqUIETAAA3CNoeHkENk/YS7aCwAMcRrlCV4NGjCDL0Zl0e3E9VTPbxWWhEWByZIBGpgsw61lLRAEMphdfcoqXl5WUADmYB7mlwCMBxBlZG4NhuXVONVg0RXkH3tUanjeOWAsEVZYEeZfWhhfbl6EGOhe+PmDdkOSXqYF3S1aK96/RQiRYlbKY2jn/84VXEx93h611TXgZaWp2uI03efFxFhY3f6dLP5d41oGghjgDuJIAwAwgD/wpB/JQwgo2kVYhP1Lgpt+aKOVisKlaIY1BeSN1TkArCnwgwOoANNdapA23QGi3myerEcWhFr25lxYAsb7DAlwRKoIgEmz6UUAAkHY6bE+mwJ4gF42XlLuj3c2Bx7msxvhCxFgrJC+WrvGxGkyB/6t3hE2AKqOZJV+AKz+mAHwCAT2apMIEZzW6YfG6Tw+63HOClMIgC2mW15dACCWliuw0Lu26/lkNP2VAegqmtcNYJU2gCXIrIvoGImEaT0UhGLcAEcAAp1W7PP16WTGCvZdDfaFhP93vuD9cs/ifNmrbSz6pFQUYGQa8O1yTunFpV0WYIO3mBYDUABALYzYnu0kqO08Bl4fSeZXHuWR1eH3NYdMPNP4rJFcbSxqcVOo3mtaIICBYOMkIINjsCIISQ7q5uWomWE0EARH0G7GjmjU6Fz2FWrWaN3/+GAj+gDMPtNv9dtoEYABmk8jNukjpmUTvoFFIIMHYLd/yog0wJZj6O86QoMAp23Ghui2EWW6VfD+ABD99WIeVtSWxQwLLbAxpSaSXu5fnTQ2roJFkAlvwayLyABeBtT9M4lFCHABf2j0jQkD8A8U6N/AFVytCIAq598FqHGMxuhMGG64m4MPLqL3LqD/mg3yRdhIhhDEWJmLK8AWA3CAJQ8TJ6dtnIboju1jWuDfIp7xKx/vRkaAzlbUIg1pHKHU/N1n/Q2ARw5yvByLXCrgUeXl8d1Yk0gCJ0/xmz5flPGR/4Bn6l1daz7ekfXzqx1uzy7uvi2i9/XVXoUuR6cjJb5LNo8QCfmOA+BlTlYFjd302Rbm840hADiGhH0kM2dd/iXZd+bVVD/0VG8AHLnaBTjj/X3f7ixtsK2CGCCDjw0OjgkGXn4AThaEvwDwKqgCJ2+JMFmZIoghGw4AIq5U1sXmhS3lz7VxaC/u1P3XalfYRu5fwtT2m+V2b7+gCNEsJ+AFtJYOo90/YnCE/ypQmxQ/CQp4dzU5AAXY1XJl5GUx9eNt8A+4jPgs7kvMVTf986iuXjUm+IgtBjKQkkmnEj+wdOnIY4iPeEdIiYov2jQBxFdTAEaHLhoQ3KAe2dd4JEP30VzVTQdfACMqIjPoX/6VdQ2H3Q5PR8qLkCtYEl42iRl+aBnT+Z43WhuUoa5+dejybSyfYBm46B62IYwebg3t8iJGdi+OdevVQxNGg5WmxQGYPKbQdahB8aS8aWAP8IgXayhPmbbZj6GxXsHN5tY1XkhIVHwu0r413X8fetG+5n8WR+3t8LxkStAYgCsg1cJ3BEHYA5zeeWAnBiBg/BARETSRCWPXcgCpcqmkd41kniwaN3QOntR/NwNGj3WPl1wT9uaXVk0JaBfKMxJeWH0gQIOwTveUUHfFn/1OHpEiUJPqjvHVWFjQnyzXmKxHCuS7vREH/3N4VvZ+lmVI1l5B+HtetiK2wA1eBk8xAQhHSYA4UkSEiEFFZZiUKeMIyKINqlRtqHjBAQBTD0yBAmXqI8iQH0HRohUgVqwPc+Z8gIQAUoCSHknO5KjxAQEtOnfy3BkQACH5BAkIAIEALDAABgCFALwAAAj/AAMJHEiwoMGDCBMqNCgHEyVKdOg8pNREziQQCzNq3Mixo8ePAjFhmjUGCTBgs4BFpDPLiEsjIGPKnElToUiUKUnmGCNLVg4+fHbwyKHEiJKaSJMqTQjiFEuUssYE5fNzx44aQYLUsMqHB4OlYMPO/IIkh9mqW8eM+Yk1yIS3W62GEEu37kJKsoLWaLu3BlWgV3v0mNDD6o4eHDTYXcw40MgcO4J4mMyFS5DKloMg5kBY8IkQJ058bUx6aRNKs8pevYy5MuXOEy5rRhwiRIrSuGdqEsly7VUuk4MDD/42uAe3mzmMzs1cY8OJOvlgNW4cA/HhrwUrb859YRM6UNdC/55OfbJ1yq49ANfMgcOJFt3jF2zyfVZUteMll8dwnjJ1wZutIN+AgTzEUlRIqEYedf2pNwEXb7012ATuqVAHgfGpBExP4kmXFXbUQfhghA5GSGEILmDYHXj2lYVWDQBOaGJngvkwo4kcjKAidxDZtxZVP/GQQgoMMDDCCAxoUJttT4xwCQyXMABaDzZKqOOOzMlBB4JnHaGEEi64AIMFX5T5hQWooGJBHXjgAUIEEZTpAmdv+XAllrjhdZZQR4QZ5pNklgknnJNcBAIIbuJRpgZV+vAEnrnpGVgKYMJg6ZNlnnIKnJriMUmbhyIKpwUh2NgDfJCWhpdeITDgpwuXqP9p5qCbgurmoW3GyYCNOaaqqlRbpaDBq7HCYOascLZ5a6hwksABYqj6ypgRQcnFwCWXvGrpmMgmayiieMR5yQntqSBtY8DksFUPGlyLrZ9QGtstnKHiqigMGrQn4LmLGQHZDolhG+slr7wSJreDxhnBsvVGIIkG5LbCb7//8jAstiSQ4Gqxs276RbKhJhpBKhBzEO3EYrnAg1zDvlJkCrUJywAJCCt8ykUXKTsyxCdIjDJdMKzMAZEuD9leez74MLSYp5xpAZkLhztoKqWuYMfPdJ2SglAMFKxBu12jcskIShJ5ydOpaJzkK7LGSfUJ5mItlgVChtBFkQx0cfcrNKP/QsLdKbzyxSkWvKLk0F+TkIoFqYTms9xgfaHBkEViiyS5E5zwdbutfhyBBVEyoCbjUKRixwpQQC4WJjAkOXPGSSqpwRMtuN61sXGOEAIHIYxApgV2SPJEBKqDxQoIZ/55CQnLXwJF6akQnLeYnlswggrYP5FKmc8Xv5QROKlkxJ8woJLK+SWg0nXBr8jbZh11RAD/oFCU4H1SmJw0S0sPWZomFOZjHAlctj6oLYtheJDEhe5XE4hsSBbAoIQRYOAnbF1qgHhr38cYVi/kLZCBM8GEEeyTEmCM71ViIljBuna7jyGqg7j6HAxASJNThO8LFHRBF3QYJvaxb4cWoBcM/w8Fpy+kgoYzseFJTJhDHoZph6/owitSwIM+PQ1UHZRaBDCCxJhEQH+zgMEJdwgmvbkgikfggZBiF0RD5QpObOriTOJ0Qihhy4fL+9sRduiC30UgZ2+SWpm4KEeQgMAC4yuY2J54xowNkHouvJXOBvWFDxbyIyCowxdcYsdsSZF9zMMUvdyYMIXh4ZIzscGhcPiuM/qQfWY6YAQ2NahTonImVmCFDdBEgh5GiWgFG1MQBVnKON4Sl3L4gtii6LUhDWmPBjPW0wanqYXZ4Jg00eUXVKgEvTHzFU96iZm4tak6XBObqUReHqXoShKggluCUtasCInOmCDvFK4sWCPdKf/MWLbpWOespz1TQTgV8k1ggAqU5+JUJksK9CM2EFv5GolQeH7Mc2YqAT0f6hEQpOKVjnSnrARFyzKtiRUcjUlE9bi3b7pToccqQQlmYIWUgqQEUJAe3vLmzXAq1AIy1WhNbeqROkBhgBj8WheOUCR9ChN9M5gBCAJK1I3UQWDsYwDMbGMbyl3rfJWcgQ1QWtWN2AAPd+RbM3e3pJnF6mnykypZy7oQG6gSFT0MaZESN7ppDqoOUx0qXRFihamyLlsFMyg4+3qshU5VCoMl7PEwgU8dFmyA7JMVTCs5qENRIbIGsYJoKUuJHvItpC9t7ELxAFgbZCEPoB2IHFgxWkT/5tWRp+1roBLGWhv8YhFFcANoWaFLVmiisGLKJ2rZ9rRpLnRhJbCBFC5QgDbAlqjEFQn8xGoFOdRBA15aoV5n9k7nLgxOM2WFFGJABgJQoAwplQL84DfTEmCCtnIAwQjCtMwRYPC0woQaJe0AAiu8gAwAAIB74YtOKUhhBsGTxJFGYIc6yGEGeCCuXaULAglnzL/Ms5R53RYBVvwCCAhWMAEckIUsoDKXICiBHVqgghP4gFwaGEEqItAKSeSBCkCmAhhe0IIjqY1mzXUu6KJrBT3sIcUGMAAATICDIriii9KtQwkk0YIV2KgDb+mAD1rRAju4whVZUIUqNrCBMhAj/wuteILLLqvbp40AFSBgxR1uEAMCJNgADzDAAQ4AABxswMX3O56Wr2fjDpgAAyboAKQnsIJWmHkFalYFBSigiiLA+aggLtbi0GSkOuj5DmVIcaCjHIdIDBoDYj603HSJiQjgVAVffjQA+AMAQndgBU+Y8Qo2QIxMFxvOkjiqI4uVplLb4A53cDKCV83qSPxh0Amm8gZ0MDFValnCXnY0f/gjgUGbW8wraEEL2LwBY5dhxotLhdiY12xnQ/sORCDDtFcdh1YvYQl/uDahCVCAbQsBUrmswwxw+oRwmyDBGDD3ACQwgIofAAM+WIEksjDsDaBBzcR4QYcVnj6/wS7HM//4xQ+g/QNHJPgB/DaAvyWQhgoE/NpTrrIqmLCjTG65Ba1o9KPJXfGiV1wCFC/0CSTRio6jod3EYMIMRgCnxYH4ayOYgRRWzvIkJBgArJZ5vyvw7z9U4OwC37UJ2kCBDQwIwi14Qo1zHXGkT9zoRkf6AX5dh4az+eOqIEYZhNAC+NnhqF0bgSSooAeu39sRCI4yq/utgLNbHu1ILze2O9D27uTBFSuw8QTE3esDUBzvqLd4B6BwCgZ0vN2Bf3cLzpSKCVNYCo2/9+PJAPNA91sMcRCDGJZA9j8ooPJnT8O/zT1lH6iiOVmgO68lnvqiS+AKVxjAATwAg1P4nd2x53L/TklwJChoXQ+/0D209bCIP4u935Gw/PITbPo//Lvsria0AyjAbdxkwQG6Zm4CeHqplwYDkH3a1wFk8n0U8HTEoAhSQHjkV2aMh36Od2/5BgC+B3zwV3l/sGu/tgKN4AClN2iREAcA52oYYGgM1hgXEIACqH+9dnpsYHRXEAzYl4DnowIdt2loEHU2MANCUDrn9wvpp353AAZ7QACSJ3m/JwYVAABgBmzq1mVtYAKDdn+RsIUD1wZuxxgv0AbTF4O71mtFlwZskAZpwAIssIYskIDP83qb1m5l8GAz8GMOZoRIGG1JQADU5oRxcHyRYAI+oAEq8ASSIAnB02U+0AGl/0d8WxgJXwcBF7AYVVAAGFCCAkh/f3B9A/AGaMgGbPAGb8AGLJB9GFBpcgh1ZUAFQ/ACrwgGuYeELRd5cRB2/RYHFVBuOLACI1CFz2MH5yMJKjABEXcAJ3iCcYBtDvCFdKEDJKiJpkdoB2B/FSAC2WeAafAGq7AKpVh0IchuaPBxgscEZfCKr3gDerCHGQiI76cAIjAAGNAIKtACQiAEipiIwng+UFAED3cAFaAAwLeFCVYAdlEEDpCJMYht5naNV/CGLFCKlkCKalhxGMdmm3YBF/BxOqAKELBtZRCSTAAGRwhtJ8aEBhAJk/d7CnBtbVBp9hiT9igJaYI+PhBxyv8YBwEnZQTwfGIhBP54jAKofb12c38gAmwIkREJim8oAR2wAT5AARfQdpxWjsRAARCQlQ7gABCgA7L4C3rwAhfwZ5HAge8YhY0Ak/ZIeMkGQItTSU/giDI3kFGmYBRAF26AAwpJcRJHjQGHjSwQBaZIimxIkQZoaMSmZmXABEPgikzwmCG5ZhDgAAVXBlWgCgXwZ7m4mcenAJLoaeqGj4mYbJJwPmRSAiNgjGCXi5L3AAVADGJRBJI2g+UmAZ2oedUoAtg4ihF5isEQDN5oigBAmZQIAZsWeBRAmRcQe5AZkmWAmZoZfMAnBvFXAQlQAQfgAEVAZlWobomIPjKVCk//oJqTJ3OARgCVGBaN8I/VWG4BZ3HV2ImAKYpriH1LWYo1SGgFQJxo4AiqQF0OQAArVgA/WAYvcAMvwARjOXkK0GqRoAAJcJ2FBmzlBwXeWZoyVSapoAKzGXZRBnMEgAZigQPsmXl2lwb1F58VgIMsKgLBwALdGJxvCABspgPE8IAH+gKK4GYAupUFcAHtVgBRFn/xV3nHd50o2osq4CTYUjp28KRBhVMn4IireYuABqJ7MKLseZt3p33VuIXW6QdXEAXB8Aa/GZHeSJgS4ACL+QI6ugiLoANM8AJg4GAI+pwF4GelF38R2qfXGaFpIAEmADdg46QztXAlcD4tcAIP/1elV9p76QkWV6iJnVhxKPqlYOqiv3mm3NiNpXiKAKAKi4mnAkpwy2mgdSoFL1AGG0CCKpoAflABfjCra1CRAHAi7aJjqRBVMiWMwnOTX7eFgCZ5BBcWTCCGtGl0auierSarL0qmvxkFMdqNpngFNEoMVbCjIXmV+ymgBfCRZaAIisAEGwB21uYHuml2shoLaZABBkiIE2AbGmA+iJqoaDKemRhlFbCScQAABXADYKEDyEqANTgA2xioJriiwRAFTuAEm5oBDQsI3sgCEkAA4UoERKAIVfACVHADN7CjqoAG3eqtBPCqsyqrIrAG6PqbbzAAJkAhwqJjQQVh59MKev8JdoL4B4HYoA9AAP2XFNGHA6V3ems4AKN4qWbnB8HgBGTKtMGwBsEAsWl6BSJQAIrwAkRwA1VAiaogpzcAZENWBcQwmSkKprK6orOqtMDJjfIYrzmWCjObqBt6swaQs8h3iz25FG0wejN4hvjpjRMnAZr6tLOaAVHrBNO6ClFQtRvrsWWQpwlGcBQgeAd6A0NQBhTQaw9qnQmQBiKQtiq7BsIACBK7d3DDAKUzU3YAYXbAoZmoi8dnecFnAATgjDUhmz4gtKZ3hsFJimxAtb/pBxlAqxC7tE4gDMKwClOQAVU7pwdaBdu6CBcQoALKlVCXudVoeaC7BhmQAcLQsMf/Cwimu6SKeKhP2rqSFn8BYJ0BKZAqCQB3mRQQAGb/SIBpkKbdyAIs+pvdC7EN642r8L3fmwFXUABuegNgsJgdi6A7CgRo0GdfV5RHSbxqa7jHm7zdKAE4ADeICKULFzyuC5CxEAtn96ANSrsimhQJmYm1WXGiOIpOILFkGgWBGbXeG8DdCAjJK7HCQMMGzLFg4AjfWqBXK2Ra+58OYLL8G7VL67+kK7ED0AEnAGxQoI/n+zCOSHNrcJ2daaV5ixRu8GgHgHdsOIrcSLpvUMPBMAVsPLrI241uTLpOkAYGTAUOVgbRmGDWK6duygTEUJSyqrQRabz/G8BYgAWAEMWJ/1GPini+waMBHTDGn3udw8uzPctzSAEBdUfGo4i/3hi8GTAFFzy6WCAMpYy8h+wEIgABdqwHUrCtG0ABkBu534qVAKCus1qmfgC1DRsFpLsKh4wFaUCIK8DIjgzCjlhx3OuuFXCLMOcAStEIEaesA8ACnZzD3Uim3DsFAozKgIDIOmzKqzAArOxgVLCYV9vHzynLfjZoEycCFQC1L+qwDJvDEvvNiHyrHNwCjWw6UADJGGCwwjAHJKwAH+qaSiGGAV10N3jN3XjIgMCN3XvB3GzKwazD37wKLFAAQUYFqtAGxtm1zpug/pmZuZnLm/q0UrsKOhzMWLB3HFDMige3wf8zAlOKARLwBirrBwkgkKtmkEixAXqJd2tIitLKjaMb0W/QsKjs0nAABxetw29gApRLrq6qfwUwuSIJjcgIq/K8Bsu8Cogbw6QbzGnQARXSwTIlYSfgARH3ubucAAEgfP0G1LebkGT8kPfJ0r/cjccrAIh8yFDt0hD9BgeAlUMwBImJlXmsxyDda4HcsCrNvVALsUmNBVC9Chg3xYzcq1CwApFcjX461wFg0HZNEwgJADR4tGjoqSz9xqSovMgrABaN2YdM2wIAuFsJe4vJmOZIDCLbzhRHc7/pBN37tGDNvcaNylAN1VEcGiGgAuUbPy3gA6qtrhGqAKUdZac9E27/4KoGS4riHaPcCNHTOtukbNtYIABTcMoRnZ2TSXBZ3bVternE0KrIGM9LS7ihC9bgi89PDQeAcKvuMTtQcCSKuAELHXBHeny3CM1IAQR+9gf3K7HjzY3l/dSljMOlLAD4HMwCANiIPAWrMJzxDXaENpzzrQMhOZZJ271gnQGxsAZz0L3CIMrB/NSZkAmAgAF1MsWilzQYsI0S0L7WOdemQACwWRNoQIKf+AYSm7ix/c1PTbrJi7hlbdG1zc1Y4AT+igaLEJJAsAgxEI04t2IAsAQQWrgqnQGi673I29JwkAlw0Ad9gAWabR0d4AFDt3dDvgpFLnwQKpC32N0x8X+q/13N2Jy4ynvRLE3WH97epSzpyOvlxokGBsrATNCR1OVnNFfkoQuxGVDjE+3LfI3ZOz4Mw8DjloB6FDfNoNi+x0fXcQABNZEH/jiDsY24i97Sjs7X31zWpXzIpszD/koB3rqcgtfbm+6RubkGTiDKwgDj/hvDw47qmbDqw5DjWNCyZRjQlrAKwdC+YiCQpR0Hhv4RQiDNqq2psT2t+GzKUD26MZrehI0FUyDHAAABaCCgEaxgWd1iOpAFAICN3uu9OszNtE3vgT3n2b4Fqp4JEK19sNYB4jYAq5ABFVDuYkAL0onuNPF5yHoAulmmAFzWwS7YUB3lWo68tY3IV77v4/94o5oGudg2ZQG91C7/11NA2+Eb2IKdCX0Q8Tve7YKKAzgQZvwxAB8IAMpI1wYQqTHxeexuf1cQw958yPmu8k+d1N9sypJO2KPrBOipaY4wp67oZhuwn2YYo+GMynEe57Tt0tmu6qsu8cKcc472aMOtYGAnfGIAaDEwE0SWBY0gwWnwyyoP0QCuBhqO0cLA3oD9xGAvygAwld4KAYHH4iFpoxRgAvfL0guf73H+xITt8MMw9Dte9JYgAfQ3xgYbDK6/msIXZQQwE0LQdG1QlDRX4R8u4MIOB46/8la+w3ztxqVs6f1uAAHnasPpAIjZqp+I0U+Mz8Lu1HPeBzuu/av/L/G//AYTmQazegDtPJ3AZwAQ/hFUkPtZIIa7u432bNuXjdkBDs7tXf0WHe4Su6b8DhAU0FC4UMABgAMSBgw4cCANoFWAsAgThgXQRYkXLWLhCCdTH5CZho3MVLIkHDgTha3xsyZSgQIAxMyMIyaOAQiBdO7k2XMnGCEtWrTygUFhmjdJI3LsmJKpR6ccIQ4AgAGDCRMdtE7A4QPChgsbVOkoU0YHsQ0QDkp4IwwjFgESKVbc+NSjyZLD+uDNhDKlgAyx1lw5cDASzZmRCKDx2ZinkFYqVKzogHBAUjYR32KJ2hTlxTcHOvhY0cr0E9QtRkwusgHAawcQVBErw8Rs/1oAaTK4lTjxrcaneO/2Gbn3rkcsU4RlWCO4QiQFAWjGuVnAsWNXRSZM0ApA4eU3bNKsYtqxPOdMavpYPDBBxZMRUEbMh1IfiqQWrR0QAPBHwgEATIjNKwcOcKKi36TSqDfO7sJrpGH46usiiuZgyY8AFEhgOjEUo+A6n9owwSoMFkrDEowuQtEuu+BQTw0sBuhghfdGaAG1+FLRMZUWVsgCDbQoMIi/hhYagDwFzzOvKSxOchDCvZzMxCJAVkrgyjCu5DAOADYAkadGrPruDUvegKg34Brsyy411IAjjRlTUIG++TTQgIH4RnhihQ1aU2W2ss4SkoADNFPyPAHc8v/Mwbwg1KuvKSdaY40rA7gyAVpmMsWAmyAY4stAIDDBu4a+G+9MBqN6Y4DxzgMEABpVYIABKFB5ws4Q7HxCBQ30ew2AAjagjQnbNnDgsqXS7KyulPxCyaQttoBQOECYS8DSSxWYyaY4DiBAB1DbELcNH3Co7Kg3xlsFSakGcAAHAFg1kqEJVkDlC1RQ0VE++1LBr5XWDELojz9gKwACeE9dsDenOnsWKpTU+GiYLYiL0iSLArt2Y23FkK6CYCSIDURX3GikkTZwGBUDBxwY8QBWLaHIojcA8MEHrXDYAAeXcVDBBSNguAQGC1LJ9xJ9dSyhhQ2y2KAMtNR6rcjLMkL/k2Gm6GrQRWdNothR4SayNoFYYtE2ALQrODCNA3BYwbEsRERIIQBwUBmDqjBoiABCF+pgshUCX6HcDk64xAUlGDiCgUsuGYGEHHW0Q5KmKdjg8oFmU0XIeDXLaKNmW3TWWZAojtbRCNestrnmYrmU7AoSWCODVdLA4O2eFHGjQCMPwIrU0cy1m/cDfJDshO200iqEWVNwHs/5GHjvCaHw43NuAE2QjSwdKADATDTL8+upPkaXsI/ToSxJKieYEyyWDBPwY0O0Y0kjDaq85GkICPT+TwIMVAZAXcGZVvR2GQz44AQ4e1n2VqCBEIQgBXciAeRq9IT6DKUIWSgAf6YG/yAAtIwAEoCIqxi0NTj0wU0eaROkRGI6vYxEWifhCEUm5TrZTepa0bEf/gDQCJ5ILSEMcVkHcFCEwXXAf6xa1WgM+J2FJHAFztPAK5DmuBEwDhUl0BHA/qQDMKKlgwi5AnlQcijx+QVSo3vWR7bgBS9IaxhxjBBHAEOpsl2pbK6bSQJEcL80SAAAOdGJiA7ou64EDmdGWcgbVpEU0ZjLKON5AwtsR5oU5MqKlyABfEZwCSjsSAVF2NyfspAFYmyOAhDo4EPSdCi/rBCFaszLGyP0tZGc0X2V8phzxKCACgTzfn8AECED0Qa8CTJnKotXzFjlhFXIyFxDfIMTphAM2//V6wQSTMGsbmWnWVnwBK0h0muu4gAK/AkCJKwSGrvmJI9EaTjog6McwTallZghj5b6AEs2pKFsKaCYOtEBAfQWIHMaSV1puIIj62YCmN1PGFOASM06wIETnICKswpBRrdpJ+74wFi/SsgVGAIA/lgijaPb2kf6Es+SRAkk9KwnhE43JQHM4QOxgMQeLXQtS82uJZEgKoD01waDjopqjUTKFaLwBglkJSGUnFntAHDRFWg0BY8jwZ0YQAJ9jYA7X0knMc6yOQgQKg0NMs/42NrGZsXTL3sByRtrKsMZpmQlexTMpCiVgArEQgBrCGYFuhVCnWSBDHyD2bzkNYArBIP/KqNaiGbmMAfaAXA0WbXTK0gwq1khDRUq0MpXLmC52ZxFjISaQotmuUI2rvEjpbNr+mRIEosIw0If2KlfgRoAATghdsHkEgF0AoQYxCSi+GskGypJlbUMgAXBEIYApjA7tmUFoxGcoAa661UNTOAqwSJUQ0D4GgEBoCJuZeMKX+osicWzdHOspxdQh9vlrIG3+nSd6ywlgNq1RAHV0UkZGhED7zh2IQr5z2vGFBEnRNgJk+3ABDDKAQyfgAM94PB2PFAiDOhsSFP7zxUYulYUzjKF6TEOG2FaVzjG0bZv3MKUVmeGfn7AQnxNVBr8EIubDHInbmiDZeYlASQrhGqU/4zwKprMEKt4wMIb7sEEuEAiU61ikJcjRpdTubkLHOQKrnWWmkACWwnNlmIxjmMciTMS+6YEsxno56RyzJwmZUABQDaAdYas3MYyZMESMKmRphuMdQmjfbVbMAY8wAUrf1ghEqGhE+qGhtOKxayB2kABDsAwF6vxRc9SIaRUSNvaos+eMuyLci77ajrvhrpYIGwCuHQBnrhBud9Z6rzwd4UrZKDJLFiF1i4SyBINABATS12rgUUBA0SCmL/i22veMMtF9eXMJ0lPSdwUUzfalY6rjtZekvPqV8/OCZMSgNli0eeehNnICn7sQg4gAhE0JF1toei6lhJP9TkJC8AKs/8Hp3qZuIaalt6mq3q07dKJiVvGpkOf6XCagcsqZ3bCtnMCFKAAAuCaJ3sgg/+QXCojQRFYB4EJEzOAb6ge4NozvaVejIMFLX8FDapVxUAGBQAnLGp0bQrJcNpEdImVTiRthiOcK3bbGmMB3RbazXXLFh0FOKAMPomBVRJi3q9DUZAECZAJFkIYB7PATJwpDl3L91JhDDJzs+kyGDdXAAms94xqemn5jq5Cos+U5qZjsxwnDiWOvHo5iVrJ/LRlAMb4hMheB3up/scQI+INZtNtiAg855HimESWcJjCsxHyqxC6TG9ag8vQSweSFJ56tm+OEG3ZbF+8OqrGep3CFDL/IAAsuK8CMyHA1huTBQoc5PQIAft/sjdEdVVzLpyZr+idFVwCFOACHpzbFVgwszXBZQ45nasatGBz9dB8pulHtbijdVe8bsEpl0VQ8NFGHT9fJzuGJGmpwO7r+2ky9Kg4kmCjKYiC7KMAy/mytBCYQuEI31uDy4IF0jkz9UAdi8lA4ni/+hq3VYszqdMx67quAKAOAPgQUJmB7LgbzRuiAUiyANEbR6ILUgs9NhKAYEjAAkAtBkwLB2ABQJiCy5LAOeg9AXCRbXM7wcsLJVyzDjQdcpO/4MMs5ciA2KEO4wIVnnAalHEAEjEnuymCMnCFNnAIz3ihCGGjibgCYIEA/1JBPZKiC+u6rAZ4BFi4Q/ZzOCWcL8HDqxiLFg60J2lZD4qABQHIKfgRA3jTwsYYilZwGh/piSKAGY3gDfJYn7jiCCfIwR3cDwAwAP9oqGI7iZzSKXTDQ4sJPKV7vQu0KYkLxEGcFr0SP2vhEka8xZ7wngFQqY4QBmULv/MQhhyEAIH4kz/ZgFU6iANYL+tihFhgBFMkupP4uzNbPy1Iv5iCQluiIyghiUwADIo4EMIygD3ARXMMBHg5EnYhNadQFJxzAhEgAGLUvssxxmQEAHYZLN5ihAZAQguMmJdKDzmDBdhyE6iTMUCkmGqso4pYCcMqAFU4R1wsMlZ5Jba6CP8n6I0p8IPsc8PKi6i2GJ/L4q0GIEjze5E2cTGpiwQDoEC/gIWSoLE/jDGFTKE05IyViIPFkEhcbATvQIqIUJTxwUi6mIJ43EGYqLaBAbags6NSnIMGUMUWSrqIST84EIEriIqcagAYOx37khY5gquJ8AMxqARj4kktdANGWheLpBIKwYJNfLawMMbLuceImMNX68f0O7p3YjEVehg4gAWd+gCuJDxABEtvVB1hMIBKWAS0xEVVYCQzSZby0Izq0q2j3D4CeBcI6MwxGrOOoEOoRDoXOTpwCwnjkCc4EIAGIMyoVDWKyYQrmAO+gIoMWMTHvMUsOCAUMZTyOKH2ycz/eZOuYuOMjtjK0UTJo3MTVZytwHMSWGhNMyDIr+mDNHCAmJgavom27MtNcyyKiNqMjUiRKnGCKBBOOGyINFC7BilFHSNIwOPL5WROwFuxlAxM6cQxNZghCbgOcPFOc9yAA3Kkpai/FGlIo8y+CziAgmkZnlE9mZOIp7ys5XyplFzOWGK/j0AJWPiAMEAABPiAo3MCBwBQE93NiFoXtwyfidDEo4SAhnAAJUI5V2qQRzBFk2whwETJWBK8M4OD1vxQEP0AghSALDTR3CwCQlEIFLmIApUKYSCPnKqAjmwIr7s2iLm+DAiGD3iE0lyTDB09+boYDt0vMwBRHGMEyEPS/9x0g745FbZkEN5wC2Hwg6w7GPPCigHgiJtEiUd4hJ3SsdJ0MeZ8pyVcn8syAzMQUgSgBQXIPzaVyCw4iMtAClS5GrhQDkagUjylinKRAPSoI5RgzTAwgwUoSflsL4DU0G5DCajcrw+VAbSB1Eg1R1egVFZ5pEt1S4qwrhf9AxbwnXhpEpAwztX8ABBFgAWgwEINtYJETdiiwAZQ1DAIABSghQAwgBKt1XMsAmVElmJLESpJjinYxBe1jKtKMH3LiDlgVDOIyhViTgsd1OUk06Pr0EVVVEi4P1rl1rSMLqAk0IVJjnCsgNgoiIPIig5omf34gyoRgARAAGtFAWXVgv8cRbr5LE3AWz/mjM4GCANGzRQCiEh/vUVdayZieyR/O9DLdAKRIUYIQFgHPRgYzQDmCABayFmKnc6LbaH47NHA+zY3aQDpBFEayFnpONKSBZXdQVkCXVmVmCiKyIA/OBiCQEZWOhixuAAD8IMMwJCcDVsEeFeTvMZvK80GqUbAE0gvJdozRYBrzVlFVNql1T9KZQFR9DffVNH2iYRK2MELQIPLQcZ69B4/wBCc1VlsHds5KM167VgWysP3QomipQEQxdkOodu6lTyIAo8oWBfwAY6HdQJGyDqYVQWx2IBFQAPWvQAA8KfEFVtagIRTfdy/jFcV0oKZ6osVssMPONP/D63WRs3Wft3cnUi+n3SuJvMcplgFIXSJHSQIY1SFRVBAITmAK6gABQhbpIUEWrBcsnXcn61K4hBI2KLDt4WESkEASMAJ43WMMgBYR3KkBGEK61KASlDAC1gE6l1dn4sJEdjesDUFFAgASIAEikWAknRcvoyliSk6NxEAQ5TOUjWDBBBSMSje943fZnpatpyZ8ijXSHCACzgtVQCCJFiE1VVhGIUO7o1btJEBSFDUBc7YqmQ/vbjQY81XC47YMPBezX3fQAAC/mikRyJQ3tiaRHGCAwDcC/gTFfa56z2MnDUFWrDi7kVTwnRJvnRJF5m9fyQ9ouWtBbhgBKABGiBe/yHuCSAgA8tQCs85oTNahSZeJQhAgyhmXYEoAKISA1PA4ioOW0gYWzOYA1hAj3s11D7Q3fRwk+hcAEVdVPaFBBqQAQMQuTXWiQtw4+VyUkCwhDI6D997tpjlXykmiAKgDj/+42slYCxGARQo1S2eT9OEFD2cz0ceZAQQUhmQAVPQ4M11A05GlopKgxD6HmMFhCioYxP+E9aty1SOgz/+40CmBVi25l1+V72cz7eLKS2YxvlsgAQ4YPZFAculBQJwhEzWCVXg5PGIsAwgjB3EgbwzzjolOGKkSzxGxmieZkDW2WtFgUEuVaKl5Tu8mN3F0OiEHwPeZRClBQNAwUxu2v8/CMCvDYa2KQIfwEe6AARL076YheINYF3WLQBO8edrDmiAnmFtPgOYdOQPUIA1WDGQMFuusUNYcMZSTVYaaF9gXlpvBYAleKZVWAPJMoGbwYBrqyEnYMwSTqdjFNyBMGlppua4DWgUkAFakIFrJWSi9Ys5iASE8MdGhq3WE4C3TVb2DYCfLtk2Roj7SQonsCTf6QB2sl/GFJInnl6xQAM3NAADoGaAjlvuZWkc40r8jIUKEIEjVNtoleB2E9KeXmsCkGghdgQ3jgNhU5d1sYT7Mc72zGvt418oJmkKIIDD+GeVLuwDBtkwIEwtGGPMEoA327bra5JpleRBvpJLXuf/MkCwOPADoIzjFj2PPkMDmMDjPB4I5AZsLCZgax7gK85qit3XAHjXMyDaO0QJH4UnOsztHzbgQS7LdUYuAIiDmIEIlf2c8hCGP0Cn5M5jgdBfAqgJK4buarZiWIZlGjBnXT7VfjQ1wXMWOvzdRUWbA87ZIK5b844DCQjYOKUQjQSE9xaSO6Ze5vY5NHAAA5iJK+Zea97vEDdnc6YFEF2AU31pNFw//BzMSCbnRoXoyBNiINiD82YLAqXfthSGwtDr6WXu+U6rmgjbGI5urLZmNE7ysU3xiIGD2pOYvrhDog1SMzjgQd7XCsDk93UEGzcACcDKI7bMJK6hwiiIJ+4y/wyvXus9CA/H1sQ9WkrmamvWamxe8gYw5Cx9u5ecA2oV0jhHAMBa8JKtApIzgIRANLWLU0PJiDLXPrrrXxVWwLQggAcQg5y1bgOW4Tiv5Jw92tm18/HbGofb8/2y8jO2XEgAOSBYYyJYBDKINkKrnTgWV4rocUfvMkegXuol3E57gJrwmIZGU6PlajrHWV3GsfFr3HlyKSA1cPaVAaPldANwzDVOAjLw9cUOBmEjTwkHjCYuCNlwBHEHAnJHXevdvg63FLVO1kFGYzkX2xkmzFc7QpciUxf/4VOv5AB4iUx+60hQiGqa9YWhY+2DCVVwhDJwBHLPdcwZCKSKhNhpaM5dXvdrBmjLDVHegkp4janygYPdyhLxrmQZDgBB99c2foB/B7akwAjeSBGCT74C6LKEF3dHSKXBRUbDuBYEiIV1h9tkDeSAHuRIBnDuhphSNINgRwAZ0HcD0J/3XYRPRBf6bXlu/3bsPPiyEPeEd2ZkvEcN+dCJR2OeJuy4XfoDPuxa3gs1EEydSmulP1o1FmJX74+jgCxAkr7lcAIfumOYAIIyqIIqKAvbKAO6rEsO7/ABfm5A9mfGz1kZINs73O5D/KtMue8r3pTuBJGAAAAh+QQJCACKACwqAAgAhAC6AAAI/wAVCRxIsKDBgwgTKlx4K1CgJk1uLZxIsaLFixgzIgxEp6NHOg4dahxJsqRJik0CyUIya5YsWbPouByDBIksh7hO6tzJU2FDmTKR5Bg6JgefHTtq1CAK41TPp1BL4gpkxCWSMXz4DDWaNIjXGkh38HgVtazZhYFgGM2aFWmOojmQ1pgwIUiPu3cZ5DzLly8urEqDcPmqNGxSpTV6JOYRgoctG30jR1VpVCkXD4MFcxmcWPHcIDU4cAgRwkUEyah1Npwl1KjmzZc9fO3x+uvoEwxYpd49sonLoTuCeBg+PHbmusQxcwk92hfv5xVTGmnNp0bs5MlhE4fNocdoRHKgi/9HiCvo1q7Yh2PYnt3DhLuiOUAZT59gIKtX41pPjx325glcTICYaBrUV18TdKy01VH78ZddgHRFKGBoBRo43n2snVeDVwBeV5xy/0Eo4XsnlGCheDLJshVXopEmmndzxXdCCDOK5sOIE3CQyonQcfQSXGMccUQXXbjgAiqojMCACio8MUIqJVhgQSpJanCChBzAwONzdNQE11VGugCDBb6UWaaUdeCRCAgg4IFHBBH4gsqVdHFg4pa7zbLiEUoYaYstY5YZJ5wRuGnooRFYwIBiOd6JJ2p6HjWWLWEeCUOZXxBa6Cl4cMpmm3jISacPj+YZVw8aMPCnC3+iIqWgmsL/aeinbVqgAgcTnFBqaliJpcEIf64KaKCEukkorWyG+sQJHJS4q2RxiZVCkX9SC8O1ZMKqKR60hjoCsz7Y8WxfXxzVQwipUlrptYFmGmsEyILgCxQhiCbEuHx9cWoIKgC7qp+2vBrBKbHG2yYUt54gLr5mWcDDDuc+QYItr7zCAAMVT0xssdwi+6YdKpywwsIMR/VFCnehi3EK9cY3GgOu+hInmYW2may39Y5cclmBHDFaqgywPKOLLapKJgxIopIKzcZaQAKzKuxcFi5dpJDCkipcjTEqiCQZdAivoOKLBbYwQBq6I0AhJdmijSB1WZROmyoJGYudaNlXowKn0wwA/83ACE9aMGfUb0cFgwsMuPAKCSRc3HfaKqSa6qVvkm3BF5WnsvQIIThaOE9yfGGEn6+M8IoGNJ4NdNgyJ8p4KppGmfbnTzn0hUcwLE4pAyTAQLHjrO+Nyt9pW1BHBHWMQDLtJ2EYk0NGUGyL0lKiUjEDXQQPp5lkdhyBHTMwrxMrRsg0S0hGHD69q6gwbvHidhtb7Kd12AGZ+CbhcntLIKXfJ6tIch/GKnYpX3BLft0qQR3wd5JTtCQmonOBEpRQpIpZEGPZo1mh3OSxmZ2GgSQBgUeMEEEiZc+CKEzcpWTFwU8Z601OAeFI9Ge+L3zBSCesmAvoZrYe8OAIrGJasv9AJSjdyHAkp6BDVYyQPiO9goJOPJ3VLtYFmJXJUJoqEwiOSBIrjI1dh3MBkRS3OMYxzlUR+ELrsCioMhmRixqpQxjHZAv3iVF3SGIaB98kP1jBsSRJVOIXUPGvHE6PTJm62bvgtMU/luQW8mofpYg0QBLETGZvYuG2GulIksjBBoKr4yu6cASrac2Sl2ydpmZQh/t1ciRyYEUJ2qfDKmrtYq8Y1to2+cr8sQIRojQhDsX0Kl+ocWyqTEQvTSIHEFhgBO5D4Z/GJLA2xel4M3DlMjXCplPQEoVlpKa26lAH4ylzmyQBZZmsZ8FpitOYapyZBUqgTXRixAapABTF6Eb/Aj8Vk1Ayq0MJSjADK9hzJPiMpgVZ1TspAVSNxlPgQUcCglTQrYrAs2CgzARRmk1UI4mAAg8dR9KKIUmca2vlRzNiA2g27mJTJOkRXiEmGCBiaeSs50onEtJvwpQxM2LM1bpwSF+Q8407nYgcIjBJE5IyBTyIago0YC2BRSA8SZ1ILVjB1ByOkkgWmx41raompGb1ILWwAiu+QDEUmrChxdRWoVhRi7Oi1QpWmArZbOFUsOZyo4nSFrd6YdeCfJIVctDf4cCJQlSs0Eyq5JYNevGCGxRWEXKQQh3kkNhQ7tBPZAzb2pA5v0QkohdlcEMedsoKVpiWnKzkrBzqsKY2/yViBjMoATQxFrC1ZYtQFkjEIVRRgA2s1p6nIOdAU2GH5qaiDrjABQiEMAMp2EAK2L1uC0y3ON9mS2YWsJ8NkpALE2yACtsEQR2g8IQntKIVpFHBdn3B2RnYQQcbyO8GVFGGDbRCBYwb62/hNAJ66mEPuQAABihwXDjaoE0lQBizJOSDFTwBCqdI7AxckQVV5JcCFPBwFgB8SN+aKUmJuIMeYpBgAADAAcYF4VZZIdBUQAG+PuBCBzAwAROYoAMVVsFVP+mKFexXEILQbysk5lgBjy1JM+jFHYhABjK42MUYwMEKXME8zqoXEXZY1o12jAEM+NjFJggyHnDh2izoN//JguBvCyRW4lfxLRWTvUMVyNBiADzgymkewvLw9UnkWYC99eKCCcqMgQNI4AAHGMABMNCBFaggw6yYgZv1u18dUGEG/srj2k73hDpI+QdJsDIADMDqVhvgxRTIQoNLFctECBQKnMOVohk9gF4PQAK/fnQHTnCCU7BZ05yOs6dBnTQw9k0DJTjEHVS8B1U/wNVxyDarAaDlWVsolnioQyrmHDJcdWDRjga2r9fdaxOMJhCssAEVNp3fOA9iCHlIm1h9FzRo20AP0yYCi/3M6mzHQQwGjwOkAWCCLb/AQlKYQSpGAN8V+MAH58YAABzN7o7/2gQTgAIuPolsTm9gEHn/mAEUCImk04WAAfT8wbTvkGo/X7vgClDAwRGugCUc4NUmgMAGmKDT3QghZDeawLlN4GJIe9zjEgDABKAb7xkYOdk6GIJ9Cck4oJVACjKf9g+AYO1Wx4EXOkd7whW+cBPE2tuocUURMJ7xjUP67utOAxvSoHc2sBsAJwgEmxORh6uDGA2CGMQLts64i5GglWGfOdldfG1tG1wBvMg8L3j+h0cfgOFt2MC9dgMEH5f57nf/Q+fZzXc2uN71b/g1AFYQbxvMQAibpgAa0HDyxbfAjMqTAsBnPvM9E9zyYuD5EiqAedX/oQISUD0vII2BNpRhN25YtN1R73wJqNvXaWAB/+z3LunZBwIPVKCCEPSrezSo4t5CcBKwCDp84t/hB6pIsKsLnu0KPN/5S/AHASh9SzB9DDd0qAEBGrd9B/AHkNZ538cCLNBraTAAb3CBA+B3gBcBM5B+6/dhuvd+QxB/TzIDehB59gcGMUBw+2dw0PcHIiACned8mpd2PvdiMcYXZeAAjYZ6bOd8HCcCV8ACQyiBbHCBaRB7B7ACHIhdH7gBFLABiHdveUBdiXCC9jdzegAEBLBq2JZtCuB83ScCFVABAch8zMcLZxcHLoYDg4BeZfECG+AATYd6kPZovQZsUSCEEhh+LJCEepcGB+ADUNACQtACKgCCaEABccYEN/9ABcKHgsT3A1Wgfy14ds5XhiKQhzQYhn+AdgiXbdRHATpQFkPgA+hmh6rnfevWhxOYhEf4BhWohFg2ARdHARBwARcAAYhXBi8AiZGYhXpmZQX3hbwAg2RYATEYg5ooAcf4fMyXbWJQAbzwagXABFGhA6jIgA0Igb92BXx4BUOYhBe4CheIhHw3ABiwAkamColXBkzwi/E4BDcgBcI4ZcS4fwV3jDHoB8oogzKIjP6XibxQAQgXigZAABcQFRuAAz3Ifci4jFfQa0R4BVHwBua4ChrJAm/wh3x3ACAWhbwXZ2VQBoNQkvEIBpK4hfoXBwbgkgZwAAeneiKwh/8ohDT/KYR7uIzSF4piwGoFABVZgIo9+GhiKAGb6H1/AI7ex5HmiJEXeJFOsIeq52IOAAEQ4AAFUACJRwFbiQM4AAE6oJJiBwY76IUv6ZJqSZN8B44xeAUCiIxpIIQxqHoJh3CvhgZPkQU4wHROF32PFn1/4Gvi6JYs4ASrcISHaQga+QZREAV+4IBWKXSDkHjxyARlIAhZ6XZVcAM3UAVz6IVquYYHpwCaKI5RMJFk+Ik3SYYikHkHZ3CvBgAL2RNFsGN452ve15QDUJG9JgJzOYR76AeI+ZiPWQEHAAGDMAg6wATxSARlEAMQIAjw6JwmOQhAsAEFAAAOmJaYqIbJFwCm/3kFfpABqSmDaPeM4LgESKmGLll5cfBnBQAEtrlou5mH6eZrLCCEHTmRVzCXIuAHfhAFTuAEFyiBj1YAzVmdmElcXfhi01kGQ5B+VFAGFICWcYB5sFmaFeAH4miecyl9BQl9v/aJamgAD3Bz20YAg9ATOrBoGPB9wSYBfvCH/dmReygBqGmRGYCY5/gG4PhiBUABzFkFZVAFL/ACZUBcDkAAWkmkTDAEqkAAZicGmAeGYlAICVCGCSCgySiin2eVdGh2ppCiKZoLgtATWeCX6jaBdVmTFimBjmmRQGqcBEqg58gCj+mACgmPRKCkjohdUgAGVaAKWXllG2cAaGeaZf9YkFraoQLqj2ZYAQkggy5ZfWDpA25QBE0KANrGan9WmzoxAxvAdOD3m0gZfRz5BmwggY/pBH+opwXqBICgkY/pjw4wCPF4A0TgmYKglRegq8AIBi+gA9vpeYs6ogVpmpEqqVwqjtTIcDhwcVuWBUM5ptmWogAAATvhCj7QBo1GkXu3dywgmEPomHZqjhI4BQSqkbYaBWugAA7gi8RKBL0KBGhQAHT4YsE6BGAABkMwCF2oqApQCH5Ql2VIqVyaAFqaAF1aAeB4AGlmaa1giC3QCivQBg+KogTArTqBiripbkkogb8Wg4+5BsbZo+c4lQQKCLW6ChmwBn6QAAlZAIr/16uf+a/Fmq9XdpUUcAEbt6jKOJwzy6UKkACx4AdrILOSegUHUGnt1QLN1VyuIHc8uG0eaxIbcG59yXG92ZEXCI5LmQFkmwHlaZ4FqpFOYAiAUJxRYLb+mJCC8AL2egOq0JxggF3EOggXQIeRNgCZFwBairKQmQAB4LAMGwBJS7YzO7gS0HDtJQTNNVB2IARF1gZXFpQn0Zcm4JB/+7XnCI4WWaAxS7hRMAWI6a612rZOgLpRYADUKY838AIQQAAEUABoQK/Y9QKDsJ0/95KH66Ux2KWImwBrULZm67B+8LgW1gJS21y4VbktsAIOCQB7oBMOaWb5Cbphq5NRYAiG/2CeZPsGrbu67sq2q2CcAKAKEyoFkPgCQCAIBfCgWrkBzYmZ2wmKAdChItCl/rilDJsAZFuga8Cwa+C0ldYKzmUHJcDAUzu9TBcDJ5EFuPm5AxB+P5qar1qrTpABc4CY5euyU+CyL1urUVABHVsGwncIVFAFYDC7mXmoCuYAdLh5ChC8kDmzxFvAh5sBq9C2BRwLc5ABB+AAK/C8A9XADJzErcB0FHASpWrBvsYGGhmLeqqRJjyrIWwIU8CYIuyyq+AEIpCQgwAGeqAHL3C38QiJVKCkaECHOppz4tml5Cmg/pu0SUugiGm2x+sEB6BlSKzEuYVTUNBjRbC5JhBpfP+XjnqHkVVcjj/srmE8BSO8CobgBFgACFOwCpn8w1FwABfgi+4rBUOwgrAmrIPKBL37klbKpf+rpZG6tMQJxmQrAAKQAQBQYa5QuQ2cWwOFJqlwAh1wyCUhBG2QyBdMsr0Zi+bYqgRqCFiwyRrJxZ2syVhwzdi8yZ+MBkOQpL9YBSDWqVZ5Ae8Xnawmx0wboEprnif7thlAyXMwB4CABQOQZoY4uQSFW7klUHawAuZlEm7QAQAgshS4qk8JyT9Mwq1boF7sstjs0BopAgBQXO6opKrQxgGbr10Ypu55tP5rx8b7qsa5ttdsy5k8AFAruZMLPgRVB7nVzzBmEi8aoxf/zKqw58iNidPWXKtc3KNsO88i/NNtGwV8ipWDgIu6+ovpF7B9awDMl3zMOqBw+7ZRqccZAM3ge9IdwAFP0ALMNbX6HL1CsAIO4AYAzXTA1sg3nboZCcbzjAWWTMkCQM0PPc8jXKtX4ABxpp0QYHenvMYvwAQbAACBe7QCapxSPZU+vbZAjQVwAAgozQEqAAVTy1y45dIN/ASoqAomUQSJLAHkmJgI7darK9RcLAAfjM3ZTMkuawgiUAATOgRRKIXz69cOcAH7dQEHILSRerIya7buPAcCQMJvjQVpgAE+EAIXpjn47MupoAI9lgVnDQAWiNNYHMlYXM2Z3LoCQMl3/33Ndg3eeD3RJ8eIOpCkDXqo+Wm2N1ywiPsBkEmgAnq8azAHqg0HcIAFujCIJ/ArlL3SDZwKrSDM/1wS2Ufdqru65pvQ0TwF14zf+c3a1+zgqh3NJuwHn3eVG0CZgP0CVSC/A02GxVu8KKu0KLu0HjzhEJ7fEpAjLwcF/73EzHUrPrYBWmuqrJrQJPwGbk3h2JzfEx7kFe7j7LqtHzbYYeoARIqkQ6DKDkCwgnu4YYC0c3CnjzkF3S0AQA4Hu7AL+V3PPjAjaQMFmlPmLRACOwYALUoSVHDMA52EOp7JCo7F8wzhqk3Cd+7gWV7kZTwEG4BkXlmHEApinirHOeewsf8QC8drnia+BhQOC1jQ5V6u3yD3M39D5pqDMBzAdBNNEonQAuDKcRhJ3MRN5+GN319MwpQ84YAgAHB9yQdQAO+HBvc2u1UwCDz7t3zHfDd8uEjrB4r+AXMws0qb1Y7N5ZMOCG8Acsk9VWnD3JyT5p0+EnngCpj75leQ4JoM0Q6NBa6O39gsyXfu7bbc3Xs40bgdYvf7AkNgkhTgAJHGfAFwuIkO7H7wAXkss2sAvhSO7JPuBLk8GlO13Db2BJueuQglBK2AuZGmo3H+4I/9w9ls595t4V+MzbDQ3U5wBdv6sxfas+ZtnX2Ndoir6EobC7++6OX51v7eB/mNyz4g8Kn/MuYjAN0LaABZixF50ApZgLm7mQYS7+ArDt6ZPAVDL8JBruB1LcbXqANxpgq5Xn4+C+8FWbz+qMNdirJDPNcPvguE4OVwMAUwL/OqAuO2gOYa93NPnBE7z444sHHedwWjXucUH810feyt7uOs/uCZbAhzCQCMSKQvIAVKKr9wzHe68AZYj7RIu7SOb+JzgOVd7/L4Hb65PCMDT/MrINCJuvYYofBuD/f/yeMsj99e7uP5nfp2Lue/ZocMd2aQdtv5VZIl2e74dayLHwZTbuKMruj7Hs1d//WnD/A5gvmAA+PLkvYuqbkXQQXvhbETAPdwXqvRDOG7kMnYf9/gjgVv/1DEFfZfKsCOKhACK3AlP4aVQNuzOKDu/UXYC/sBVu+/CfABV/3TkS7p1x++B5AjAg8QKkZAgdIiBIYDBwwA2KDI4UOIER1K0dHK4ooOACQMWNWxIyAsIeHA2QUHC6CRKeGoUQPoDQAcK54QhDJixBOcI0Kc8LFiAwVBg9A40DhgwAEARCVIEJEg1geoftasSVA11lMBAgBtHbmr5MiTAzr04MAhhIYRqaCo7YBBAlIKEuU+lOJqwwofPjocGJBm1VbAWFJ+NQlSJUs4bw7EfDIQ1U3IjTXsDPFT1QsqTMoIokD0AAtAq6748QN1ztQMUTJUTRDmwxxDgHf1mV0yJP+gNB0mcOhxQsNMKL6g4OArIWmZuXJdtelgAgBfo3+3hhTZ1WtKwSNZqoFzwEFPgTZvTj4bIkRZDid+Xgiqo4zmzRA0NrX6YY1U+7H8XI2VAWR1r/oAKzQMJqihhx5CCK8EO3zAwCikLkguIlfaejCNNEL7jzrqBiPMJBBZwuINE3paIbwRVNgJPQ5qmIALLiagQL7nADDBAQgo+MmBAypIIIAAEngtgzXsu88Pp/zrkCSVqBugQAPNUmFKKCbgK40BJChgwocqxOBBXQD7aMPsSPpqySZfwuGus9K6iQHyTuDgRQw68EFHVTYo4LmNspTgjTeuIJK/DzKY41AikUz/IIMlr2sSjlUOMMGDCXZb8YQOJJAuDQBU4VIRHJrDAIBRr/QLMMNUKmwK7EzCIlIHiljBNwZQScWCmm6a0jwOmsOBAlWGoOIFJgaZkSgRpnAigwyeCiOMQwWAitkoqlpjjikEu+7DKbh740sPYvRhgg7KlWC6VSRAg8si8uoAB3hNOOCtUnWR7r//4MhAhCiccCLbkziFYIUVQkjhiFdssYUEEuBUkde2cMgRgg1Uce+9MgaRTwTSniry0EPXEIBZqeYQQCSvHFWpJCy/NEHULwfYcIAtJ5Q11FH7TMoEhNIwJAMnVjk1pCmSckCpN0KToMRZDQ6BAQZI0Iky83j6/1LiAuZ9K6lfL5AvjWUzgCorAWAhG4spDBEg25Vno20XNVLe5dVVnvzy7r5QwkIXAAZJLgs3fHiuL6OWLuqoeQF4ThcnHaDAB3kHeGMVxewk+ASDX5H6iZ1OwPy8thbLsYCjn7uCBRb6BWyKsqdg/WRYOOTQTO2sm42Qt217w24TeO6rsAMESW4IN5yTAEOjYs4Spt6dk3yVsF52q6/YIu2grII1YMAWKGwZQQMNdt2JC4Q60HGDQXTQQSjSAfAZJAHgIPtksGT30Do4+tCfkC22wF3/XQDiSb1THkje8Ie4zKUKnjGK5CSVEJj4AGfHk05IJFWUMVkvPebRgAsUtv+whoFPBZMhnwQkBgEC4Ah9ZWDhBhzwB0OIhDpZgUXsZueh2gCQEPzzghd2+DYspMFlyrPXKpKig+Q4Bzp9edm73FUUDEEPJKvAQOSmc5JI4WCDKUgB1KAWQvOYZwIPkgCO5FMcxeGIKBnKzpK4Y5symSlAbutD/3rYv//RRoB4M0oRveMA4cmlCNOT3NJ0EyoA9DFM9wriqKIDkike4Hrp+Zz2JiMn9IzxQQPA0YzapxEW/KU6IDIJYuKmqriVJGX6218PvYDH/vmvDwJsIJbe4Jc/8AgACYyIEJSYBl0cACHzMkqGxBQYpFAQklvRoOfM08WGQS0F2jsPmDgJAQj/HA1PaMjmAdJQnZAQBhbbSQlLahMg2sSNhz3cIf/8h7tXAdMjzBIBAQDwhz8UwG8QEQIDj1JLDCXtLx7ZygCeA7YNhcaI13PmWaJGAs29QqIa4MCDdqfGChhnTeobxAXclypSrgQxqjLT/ggBt9lswZV2JMQr+0cbsBRmFSIAAC94UYglOGCfE6EAQmpZTL9IpyNvcMJWkPI86gCmcrupJNS60IVXgG8nHuCLAB13rBoZ7YXQi2M5WSIguHGnpLRhJe5cudJYvtN/cMTNFXhRATEU4goDgABEpDCINvCpgYRLA6BCM7lVGMIJVQ3TSTQUGknuhkUh4AEXT+AiD3yp/7Bl1JEgNtBNyTmBSStZmaquowYBjYSst6NNS1d6R/61c4e2Cc0VfFQIMQSJprxUxAsooLglYglDWBJaXydnlKRdkW4ClGSMDkQW3gQhsptEiVewIIICZFNxacQB6XiRgfhxR6ycJalIVek2t7kTrWmNJe4I4aqfJaAQAVCAAthrnJ3aYJB6xRJAWaBbFjjhDWwY00kMKzRhYsC4NajBcgfAuJSe1CRXUOMf+mrQAlj2hTEk50hVIqCRojS8rVzpDtXqQx+yFhAZ8IOP1BukCuSSCQ9RBc/6tFfkEY4FuxtqcJPqBEOsQhe6sJsHIntgLNTRh334H3cYDIELoOGyBf+wp+JEEMftcrckqVyJ3FgZoHW6sp27UC3u5gYIJ0ShxPepQCEKkeJdPkQHbXnxXmGchivwdqDMLGq+AlhfxnnYpXkMrQgckGRVDGIQedoTG0lJzsGsBIDmRClZiUxklZ71nVx2p//Qu6w1EOnMZ/6DASTkkCw4wKdudnMaZgxYoc3YoAfor0v4S2kevnO1jmLwBZisuBs17wBJK1OURQrA3OnPnGWN9EqF7OEtAHAkgPgZkZgVi0IoQAxiMEDNFDGENuSsgW2u5X0px6np3lZybHgD6vibPy6rlX/C1o4a/JzNCohgDWmr25e42t2vfDV3tbGO/oqN1kqXlzYh+dn/VaaSAAXANg4AWNdDejpqPw0An9yGkAlwcCPi9BXOkyPJSQNeRy9H+d0XuIAnicInVh1GO3Pzbh/iNlp0tvOsr3Tph3/45WUJyT5+WC+1rf0QUfNpKVrjdn0lhbMHDTTlKSGyO0+KzrCOJJclHwQLy6CDLBQBBwBg23a2A1NFO1rZL3+0eGfuv0jLeuAjXkN/iFQBBcQhF8iRiA+CnhC8L4XiBlUiR4SLMmS/8solCS0c3s3koxUAXg6Ql7bC6nXtgpY7AARvymQ+89Pe8Z0CwkLY1mCI9CrAAA2ZiyookO3p5n2J2y6mvVAVTkpDWvB05K7h1SiCKwSNcuFMp0gt/6xdYbNS+B7XM+Z7SGSaq3Str8q0AEC/GjE4wFMTEkLgeJZ3itdXQ6MML7JlOUdVvXtipLPnAUSg2XxHHvIuB+3w9yfLf8884HgkBBaZtRVmVcAAdf3UQ3zQBiVqsyrCgbzgi3trt7JbN/3BH5UooxwJNI76CfmAnpSpMPUbKcnTAkczr/iTtNR6qT4IicDKMZLhBQfoP+XYgAnQOgnKgi4xgY0QpexQpT7QQOHrLqnDkT1pHgLSCMFovwzbrDdaPzoiNkkrtqaTtQBaBedrO/0wgIZDQSnMAhgEMlKawdlov6/4kJFwQB7pq47QFhB5PAxbpTyKPHQyqeKTtFfyMP/VCkG1IRL1EgMCkEI7VARX8B2ugqRISYM0VDaSwgLKQjKvKZ2E+KbDQAy4uTLKE75HS0DlK7ZIdLrVwoKfmYo1KIQ4+Lk75BIqrCoyESCUyB/hsw1VwQJJmZHz2YAlIwq2KSdVuTJGY6X2a6f3M62aa8NK2yEsWpY58AMDCKRO/BQqBJMNISkaPJNREkTH0SXcSggJcII2OsX8UUCYuzI+k70ObENYOqmtwLHVqMNh7L8N4Blg+ruY6ixfM4ky8qi8GwB/iSEQEQyzgQXWyZ+XOilapDzRgjQhMz7NMy94mg4nUAD+G0cuoYDIGZPAcBUcPEXv6AyK0REIwIGjkQD/gAEEaYGK1wAtG/yhG4SUt7gCkmAlOzpCgVutwFiDB0DI/nOQPmLIDgEp2mmSKfCOCziao7HI3kmk/2CdWDADqGgALSjKptuf3CG4eGOV8Dq7tOqyAAqNDDCAGHDJT3GQjVgkVDGMUfI6VbnJP0skGBtFsJiCOQhKoYSF1HJEkFTGVxStk3TDllItrwiNNYiDqrRKLtkAnyKowECTdrMwk8DJJjuavYijkJiDD3iWBnDEsuIzwUwJWICDLKO/ZDMv20gDvNTLT1mBUTvHreTKMuFCCwpLERABpPAmuuEQATCZDyBKDdyu9hO2KDslOKihrOCyENsFs1kl9HoAYeTM/+Tgyz4BlFYTDOScQZICBO+QD3mUIUAAGJM4lNf0unFquSxMR5Ugm+rchTU4CgAwAAdIoQPIPQkggOAUzrngyyvhr62UnSsixSjLpQncwkdrkqz4AAHwSt/Tt3WUTKiAlrIRR7mAgPRUz/V0C9+6F0iSnQ45p5RoTgAwhClbxMKjx9Ysm5GooQboUK8Duw1VCbMRgCL5gFiALgR1Sc+8kslxPTJxUMqkzZFICvlwAq8Iwu08FFhogNscpw41gwaAhUUUp8kUUQEQkjCoihNM0XEcJIsCrMD4uw7ZMu4omrCMwytICNyTRpEQgAYomxoapx3t0AaAPMkM0slUgx1tzf8PMIMAMIUHiEImtcMiiJw0IDcGjdIlqaO1ggMr/RqkAIAUOhoRiCG0Ucw5YIkg7dA5aACouE4LG9MwHdONDABaAM457cRsAyrjFKoryhdS7NM/vSccITk0IDkDKCosUEyhbIAzCC2zQVQvvU3sYJ0vpaER1c9YQABTOMhMRcFs2whAQbXQRBP9ETyTSAqPAoALYMUNEARB8Cj/gIU5MIMFCIMFsDAwbc05KFLJrMdJ/dJDiYUwoIVc+FU73DrgyqD3vCF/wx0/BYACWNZmdVbOAIAr0MjFDAMEANKXK6cR7a4wRdMy7dA2LdcH+DR09UTiKCZU8dQXxQKvcLoQlFf/CFgIinHWn/goQ6hWBECABTCDMyC72FS5+qnHHqXWao2FAEABWtg/ulvYudgDHumLe5HJGyrJsuqDooku85vX8zlVAMiAS/zYAADZkRWpksXBkKAhNV1TMzADBKABGRADE4xZmY0ICPCpU1EoRmpQkcDGZMMCi8XXUnXWCzCAa2HZo6UFFOjXMlVD0owpGkLTrGiAkKUBvQ0AP+DErHWIvLoSiH09+3FMQhAAGv2MTrKsDfAo1WBbl/1YoTyD2Pyfx1OVESXTW8XbBfjYjw2DvvnbiMg26AjNY3xQUjQpnrXYzzABbIJWNLitN0ASWqhdWgCSBVgAD3U5mHo8cprM/zE9g82NWs+lgQWoANITXYfQAQKAjqEBDIccQxp8TLKNLl54CWx61th1H7izVFpAgACQARkA2TJ9oyKcst/FTc4l3o+VATOIBYN8AeVd3mGyWWYapftJXaSs3gKogJeIrvO5rQq4qdp1WfFFgQAA0t0VPirbLJNgndyNWgkmXjd1APmdXx2InOch3CkIrJCgPNJiJcQtgAL4g5foJFakAANoL9t1W5d9W7jd3XPiwvr50QmWXKFMgNDFYDuF0isyqOdgAYldpQ3r2ayJFBKmACUTYPfyXhR44u/92AUY2a9bwJdLGbCQltxtUzMIA6mN2gCAwvlVBB0giufp4OnADf8MoEgM+KYhHjz5SYoSNgToKgAlblwAgDsxMAW3pYEXpoGpRQAP1V8BeRtA7NDcDVlr7VypDQAxuIALFt0yaN4NFhOhsTiC2QuQAK/RGuECOJd3U7Lt/YNp42OXrV2qpQVABtKuYMTSepvb9FLdbQD2PVoEoAUxKACszVogyAXBZUjKkaRyeZA4Ai84MAR5/WRDuAICKAAl21he2GM+rl0+Fl+37dcPGKdV0gJ9c7mR0OJZ/tFbnlpLJYBdltleNoCNYKaOpY66WYowIQmy87JdcAIAgIASzopmDmAAiIM9pgVTOOXxrV0gweYgdZvY1EAslh/Nfc3OFV/wfVlBAAP/5QWC5t0Iv4iNFwVVUoRQOIgCAsBnCRAseW1WNBgKA4iDaXZbWpCBFlZluM1WVoKD04ifr5jU/HzNNgWSMAhjCIjkrHWDmn0ejV6mnHVgsPhfCIAhFtjnDTjpAjAAA+DjaQZk8bVmFLhq3Q2rDEAKXsiOrJCfNT0UcY5oUyiAFRPdPfDlYsovGZydrmLA/92q/00yqO5nU8hrPkYAKHbhJ35bf2WJkGGU/EkJMn0NLw3SD0AAflWAXNipoB7qW/KIt07HDyGM/+1f/SrVkz5VApjqvC7gU/5rFNBbQCZKbzYJIV1ozd3iDt3Vj31ZNADqhd0AMjCVU/PhrlpoleAU/9KpAD9g5hyxrGiNapUWg5dO7ice3ykWq8mUmw1N7JCNYJa96v1La14mA40wNdWYM5rEwcx0ABL+gys4MqCwLDRgMgOYNlV+6VRe6dsl3zOoIfDbUEftXCm+1vY9a+yW2TKIAWIagBmbM/+ixnJyOSxgZhJWgCioABJGA9jlpqieNhmggfhOboBGZUBu7sl0NO4wG87tXEZuX1owZ9FlghgYnAWtIPztCtHit8NbgjXIp5KDVkE4aRRa75Z+Yks95dpF7gKWXDIt0iwsCWlhX8ZOgPaVAQMAAuWNAQP4g+e5l9jQThdXmQRv5gLghTQ4ADt+VkFQhc7ek/Uu7fCtcJ6qFV9LlQGX1dt+jdovJby38dLFBmTGPlozsHAD2IMn72cJKKLACprZ4W3epk8HOJ57rixVQO/YdYCUtt3SNu2PLe0+jtw3H+Sv2gVZxu+o5Ve+Bui8/Nu1NoB5wb0KuAIRABvQUxuyYZ0RJZs58PJsInUCwJMyAIJBgFZWJJ0HCG2qhm+97nW9JmhrLRtjnwp+beE3peoHKIAq+JSAAAAh+QQJCACmACwsAAsAfAC3AAAI/wBNCRxIsKDBgwgTKhwYiFKgJhAXSpxIsaLFixiNGBHFsSNHjRhDihxJUmETUZ+M0DHy6SOSUDlyjEHy6VPJmzhzIhRFpyeSmKHG5ODDp4bRHURzHNHJtCnGJpTo1PyZdKjRIFiDHK3Bg4HTr2APGvkZkyifUC9z7DA6oa0nTz16cOBwKULYu06NDF2rtcaOv4DX1mjbo8bcuTxSwMCEt/FNI0JrBOHigctkLpiDTIg7uO2Etxx48DhxybFpkZQ+oc1RAzNmD7C5fG5LubLsCRxOcNDw5bRvinJSw9xRG7bxyp6Le+jgae4JHrx/Sz8IEaXQHUGMYzhu3LJyD7gRc//wOr28qeBShaptzd3DdtiTjXeo/Lb5aA0lzE+POhYm6+ztvWdbbBPc5llzJ7Sg329y8PRJWv8pJ6BtnlVooWFPLOjbSVL5xwd2rnGHmYWeWFhhDytoeFogDnq4A2c1yMVBfQiuoMKNGmgQgm4WpqiiY1BJRZZSKRzBAAMjXDLCCDkiiYgFX3wRQSlRWjDCCSW25eOPeHH4oExKuCCmCzBAWeWTEUSAR5qlrKnmF09w4NmWXIYlXEw5hCnmJZeYGWUEUoIwSR11pInHoWtCEUKWdNb5FSVC8dEVn2P26WeUXxSappp4gIBoCU+coKWjd1GCxIc8qMDnqpeUiSmmhAL/GgEItHoKqKJynkBqWKXslcITLUDBqquvEoporbR2GoEkO+K2K1hKAJYqFMIOa4GfsgaKrK2IaIBlo8/mxMBfPUzK6qrEYmrotrRGgEionugablMu8LADB7/ySUIXXfAJxbVSAqpup9viYYEKup2Qx7xMwZBCuU1esi8JJPiLSMACf3Eou19Y4C0H4DJcEgPlHnmkBqKdcEIImzDQZ5VQqllwBAfPFbLII0GB78k8HDbjXCm4jAgiwlLcxdBQEloHIipw4EMWOOsExZEuMBCCBiloYHKOiTEAxRdEY32f14jMUAKoJ6wgRNQ51QFD1Socye/LiFxyRNBf12HBJXJf/0IttZKU0MIJa7ONEyYWdAFFkhNfMjSTKaSwCSJq0iysBZWDPXQLISRiOE5yfMFqF1aHEMIKNjZ5cacljOCyBSUQWoLZwH5+kxyTUELJF9UyoIEKTzyhdcSYr4nICE8AL0mmdYBqh+0j2TClEQ7t7sKq1JJgMgP9RlkHHnVU+X2tdYwgCfQiBbKSEQ8FYgQM2EvcBQlLknAxpxsX/IUkktSBPkZTWkkpAhEIGLztei7jFwO0xwAYBOxYyFrTF0qAh978zyJ40MgnvhCIUhzQBUrgngKPRAJX4W9bm9rUBS0ivZ4M0IOX4Be/KNa4lxkqf+0SWMxWaJEIaMQIU4LBvv9kSEPtJaYLMEDTDZMVgfBBCQQ8rAgmSqGRUlACfkOcm/ZSAJ1NxPASmEKUmpQWJShGkSJ4MKARqKgvIu6LhA5U1xjTREaNnbEiNkBEF9ZYComtKoutMtPGEHWoJioNBDa4Y0Xcxj4Y/lF+rQpjrdy0pkIRyoyKlCImArG3VcltfnGU0poKaShDYjKTeARB3fjUhSaZjE+hzBT+6pAIOaASIzZIxCoZGLnIHeEIYQLjte6Xphkk8pYXyaUkKDYmGfbLgHI0kyGRiUtVXmJMIIRlmWImxj/RkprJBEEdYtgFMc2vYn4DWAoxlR9wshAPpUCEC/glJnT+C2BfKAWVojT/O3daJBElABQ5GXC9QErzVfz0nD8pkghJUEtigIzkn15Vggn6b6ES0YQNWrA9uXGvYuni59n6idGFWMEGUNBejrTmOwYo4ZnEGtrFCFVSk9oAoq3EWtY0sImWETSJMoVSCRRaU4RoNKWkOxIXRcPUoNlPEojoXxOJWtSCaMIKIJAYA4x0sqVCR3FRnUH4DEXVqg7kqnjI4vaw5jIoIGJ2SvuemmZgBbMWxApy2OfoTuY1t8JVU2lKhDHralcrGHaTTShFHRCZyzrMYAZQvZj3NnUoxybCBoowqxUuKwdMcBAKdqCCaKVAWinYQRIAw1wK02SHRBzCEYsoai5LIAc5/0TArUJgwiAEwVs0lGEQWWjBk/C5KULZAQSHAEIMNrBQgDq2BIjAhG2fIAkhZIG3G0ADBXibhREgLWYprK4N9CAIMhCgCC9A5mNL4NBgQQEGtU3EE+xg3Q0Iwr6C2G3wHHot8KapBZIY7yLIAAACNIIJinSsEFoQPNStIATUra0NskDfDbgBv/nVQR5aYIHh/ilNx6OrHi5AYAAAwAEbKNz/MJEIO7QAdT6IcQc64IMTqAAKEs7DhlewgR7zdhBMsIEQhovPjpnPBnfQQwxKbGIAmMAHKlAx22ywtCesoEQz7oAJMGACGq8Ax3KwghRmkIUL+3gQQB4FalNrJhI8Yf8Gh+AEGGJAABMb4M4GcHIjfFCGqAlWElaWUwcwAAAuH+AATsZBgmprhR/oQQhm5m1+y5CHJ1Crv9cawSaEcIgfcIIIZCDwAx5ggDgYIBKIxgAOiqDhZ8lBsEKw8gRmjAEMSEACADjAABANgA5MgAFNCDMn9FAGHmNYEJQOFpGtpIER1CHOnHBEiUdN6jjEAdWH1nMWZsAlKtcB0CvA0qBrLYEBmPvcEji0r0eACRscIsllKEKP5z2IZFcLBlMLQQvgzIlhX8DE1Kb2tf/whzhk2wQ4yALUzMPiOtgBCrKesQlyfe6Km1sCfzhAly+BCSm8+wZl6DEF0ICG/DJhw3//014IVDADPXhaznQGQMAfYO1rRyIS1r5zoU1QBDdIR5ySYPAKfDDrcee63AO4wrnTMAAWXLzXXwCBxw/xgkHMm+QbAPILWsA4BmxivuPtN8xFLfCa4xznNTc4ohG+gYU1ZgYuVsHQG4EDLU/80HhfOtPfwHemI9oHaiKtHl4gCHmP/AKTHgWDmaS1Erhc7MPeA9lHfedrW/vmphaDGGp+aAw4gAKDuIt1w130LZsY74f+A9It3vddA0AFgeg4aQm/AQrYvuT13voTfDdfKbxc7HoYsMxJbQCaW97yN0e7Ai7/hzx/Pixu8IHdm5x3vBNc1wNgOhuy/wZLpCENEjDB/wgCYQMqgAEMQ8hC7SlwAQpkXcMMfoIQRvF4yEde1HemfNrFkPzLa37zoLAEqIYBbcBcTVEFbWB0uYZ6u0ZwBCcCFvd9fPcGu2YCkoAJo2B+N+AIF2Z7F/CB+ZV+89Vyvwd5NzBtMxcHYqAACqB5aGdzKnh5aGdiECAITAEEZLBlB5BueMeDB5BxDvh9SzeBTDcAGNACdZCBNwAGZaADv6VdEIB49UZpUlB/9hd8dUZ5ZbeCLMiCfyCABBcJLbh5cQAKN+d8FKADOeEGDoABqJd6Dqh6fyACInAFQngFdPh93sd0ALACJUAFgqcIOjAEv1UGTPACYKAIinADVagH9v/Xbz9QBeY1fMRXc/ynAAGQABUQCX9wc52Icy1obcsngIj2fCWBgHf3g6gXhwSXfU53BRKAh2nwBrNIi2lwAH44A6Owi4PgftqFe4a4hFX4iP1GBDFHfMVHfJFQARWgiZq4iZz4iWIACipIhsuHcwbgADfhBqZ3broWhqxYcVcwjmnAAm9gjq3nAEWwjhRQAA7gABDQjgUAAb51iGBghZAHBnsgc3iWf6QWjRXwB8zIjJHAfzc3hss3jZoXg3EAABdQEkXQhjt4a9anehgnAq3IBkzHAuXYfWxAhLS4awfwju6IYu+nA4fIBIvoiI8oiQCAZ6YGk5yIh3RYAQqAedf/tnn/h3NkGAc09wAAUAAkUQZt4AAmlm7m5oC3lm4Yp3oiEAUsYI5s8JHo+AZRcJVQeQCgZ4iHOAQv8JWD4IQ64IQ3UIJYiIw1V3kPSIdh2IU214UsuJA++ZMPQAAUMBI60Aant5RKWYcDcJF1GJUfOYFvwAaWYAmAYAlOcJVXcAAFsJVMEJmKUAaOcAEQ4I4T5wCCQAQuBwZAYJTFV3k5d3kVIALMKJA2yYIqCJfLZ20BN5cGAAEjEZFu+IPlZpGqdwUscJFzyAKDOYFswAKWwHeHGQW6KQLZBo+C4IRlAARl8Jw6YHUUEIU64AgxkGv9WHmYt4wC6QcD6QcJkAA3/3mQqUmGpDZqMZmNI8GNFIduGCcBdQiLqImVfCec5wiV3XeYLHCVIkAAlxmPZfACREAElfl+TDAEivCVL1AGglAAxZdzxpd2CtCMFeCdA5l85GmTEFpqPWkABOAIIUGUhIZ96LaWNFmHUeAE94mVWOkEU6CYw3kFFVAAkWmPN0AEG+iOBPCO9Jh7X7kBBKCFpSahE/qMN8mCybeCmSieYpB/1iYGdOmfIWqUh5Z954aH8CkCUUmHUZABUTCYLHqV3ZeflmCcdhmWTHCjN3ADVaCIzYkGOkoAcuoABAChmWd5ShqemtiCR4p2y8iMATCaaVdqQCmUGFEEOlhu4ygCWf9ah3X4BuM4jvg5gfu5mG+QmIhplVHwByZGABewiGDApoioB6QaqlUgCBBQZ803pGl5bV04kBp6dgm5pJoYkzrpk8loAIZqEUzQCB1QpQNAh8JKh/DZpVFgmk8ZBcNpCYaZohmAmIepmFfpmPToCDi6hMqFeGWwiI24oBTwknemkwYJlysohje5iczIgoUAnpsYrgoZmpS3qxVRBG1wd1e6qMNaocwoAn5An8OpqcoarYCwmCIAAIPwAsK4pp55AQUgpztaABcQlo5AAXcmq3GwiQqgiQXJggFgk5oHlwmwrppIhiuYAAGwkJunnhfhq3dXbmkQqbqJh8zoBxbqr///epVT4ASGcJhTYAheegA1GKBScI/EhrCK4AiCwLB1dnpL8KRjyIzhOYaa17EtGAATapOFkLUm65MfGwAnq6RicGIYUa+pmHQvO4sfeaxP6aVX6QROEK1WmQFuOwVTAAiAwAhsGwWIZpdUoAeHIAWGiIildQOKMAipegCRwKormJoYu4Ilq6fhyYxrMLneiXZisKRFqgDOhxE4YHrYZ4foGKN16AcZULop+rbE6QSlS7cDq7NO8AF+EAkOgAaLoANgQFpU0KCPiWyHeAMvoFsEAJNKiqTjyYViELkU2oxau7VPKp4cq6EFdhE6YAKJygI06ZtjOo4V4KxXKbeY2n0Z/zAHdDu+4xsFCnABLzBagJi7lymnBeYA8zidL1mNU+u1VjuhXRiyNFsBS+oHquudCVBzzZixzlgBe3sRiFqbuhaVVxAFxKmpIiC3pUu6b3uYiekEAiAAjyAAc7DBdJsBClAJvPu7LzAEgvCVilAFjoAGdGYAf/B9oNgJl2u/9+uM4UmzNKunOhsFa2CyN5kAa1ABWVsIkZtn8joRiNqe1ruougkI9/mUbhsFH4DBPVvBiDkFj0C3GTy+H6AABYYD0zkEQ0ABvXu7poqqANCJpqYAnWC19ouJUZuJ/eqlfsCvbpsBPdyaa5ABV9DDIZsAePaQFrECLWulAxAF3/e2Kv/aoppqxSqKmIk5vgJQt1MwB36gq7a3AQVwX+8Ij2gAZIoQmWVQAABgrnEpw6hMq5GLlX7QwIagumvgB8unAK2cBqbpBz0cCaQmmxZBARPnskxnh7Q4po2cATnrtof5yjtrt4CQwQJgCMecAX4AAAHquyQ3chBApy/5vgVAyj+4iW58sp3QxibrtXpKwVHgv68szbJ8vAkwjhKwv8tnxCs7ceaWBhr5fbNot5Zgji6Kxcfcs5agzICABc2MBQiN0BwcBQBAAWXglT/mu5MJBIvQwi8MfjfntW2MAm1szuasp2swBz6bAQKABa/cw1Ybsj18BRYakwDAyxXRBoR2z+b/iM8W7MSK+QZuawjQPAXG/Mqsi9AFDc2AwNM+i5FBCQE1uAGR+ZVr+gIqjAYO8In028YdDbnhScS4LM1zAAcDi8f3S8R/zKTpCdMUgQNuaG7GKcyQ/K87bbdY4Lb/TMlTUNIFbdB2y9NTULDzaJmaLKfzCIzPSbHhOs6XO872m9VZjcuTuwZ2bQhrQMQBINYfUAhwnABNampHvBB5gNYTab3ZlwbR+q83bbeLGQUvOgUGjdcAfcyvbL40+qO9qLQL2KlGuQQJ2bUandh6WghrkM4p2gACUNTpPJBAXAgBAAlZWwFkqKsWoQOe/Zd1fM8D/a8f6QSAULcDi7evnN2r/23SCE23PA0IGdCfg4Cgk7amk4mqDQsA2ScCUjvOmNgJkEDDkMvYdV3SAkCwV7CqF5sAkNDG/3dn2lgRKxDdTXdrA9B9qEuc/GwIBo3a2W23dZvQ4V3XIj0FsXti7WdyCVrCQ8AEvwUBpUy//ycGiM3bCpC1k0vSk3zUnOoAjdAIeimQtbqQQTnICA7P3ye30WoIzKzacGDQPovdllDhk6zQDfAIczDBkUAAj4l4DfuwEGBfz7kB4Nqkl4uJyX3V/OuMNNulQ44FlnxiRZAFyXMCnr2JMZhngkwRWRDd90mmcIuYQA7hWDDkPVu3R17XcK3Bwv3M6WwAgnCI+UVyDf/rwtlWZ/HtuHxqv5BgskD8AXOwBhg85k7wBwTQBisQPHI3dEZZjab20hbhBtE9i7O4rMt6qUdu4XBgCM/8ys/MzOH9CLaOBZN8yRewrVlXBmCwoIOABqmaxleA2ePcCY/+0UvqtWZA6SQNB48w5E6gcbixMiEwAi1gXUVABhHq3BVh6jOdfQJrCN2X2kUN5AidCXAw3CbNzHftzFtc11PQxf7pfkAm4jX6W9+KjfVLqymtp2EQBpTe1XBQ8IcpARjga56gb5JgB/TVAm5AyjG52Qpx4IS2BLGYn4kJ1wN713ed51ig2t5N6868wZM8B5bsxfALp3QKvxeQdVYXvNX/KMOZSMMogAB6GgDNHtJwkAmZgNBOUIETYGMt4PBGrwNZoJf0XBFJP6ISINrQ6t14PeHYndAFnbMlbdKqHfKVvMFzIAAfUAGa2YvZdQF1NpGcegCmOYbyzeU0PNkhWwgfYMwFrwZe7QTp1gFELwR2cDZmU11Z0Ah1RvEJAe4A4LKqu/F5ngnuLtR5PuTZDesZPOR6Trcoj/IfkAAEkHXbFaC6xd659rLMjeIca9XHXt9LOsTRbvdwMAVBDACNoDZGP/sl4GJZ4AMOEAMWEeduWG5WCeTZXfBeXdQIPeYFH96TnMGP8PjQ7swNgPIbDr+9/pyirANSba4o/sbhTN/k/5wAYWAGHdzz0P4BYSAG6ggsfW8HM5AHDs9eQfcEM86rEmluV5ABeL78WPDzd023WAAQj7BkglPwkQCEWLAULCgAC8I5U6L4MeCgAAUCAAAQKACBAho0DiJVSNDJZACUATqlZFnoQwYBDB9+CPDAQZEQLezstFPCjiRJJUpIelKkjSmkSZUuNVUm4wEJA94AUrhQJlU4DqsWxEJ1ikCrXL/OEfDhA0UIaCBsgFBA458BAyT8uVJBgRgxJlcGSJAApd4AYcwUEvCIK5YGNCv6eAKUp1ALkCWp8HGU6WVTLwRpPCDijSVDhgBp5Ur14RSFMhemDsvwq4A5ZhVcpCBIB/+TMoM2XHCroK7dvHsRBO4EySQCBILNNDDMVYAZBQSKtHBsZ8bOEjOElmixwkQjzEylDNlsIJKIDE7UG0pN0HTVrQSxTElzRTRDho8eNWgQu1B0CATZYJBByjCwDEEKMMAuwJBLbriUhlPuAzUyqRCORz4QQ7onqONpJyF8GuoJ7ywLL6lRhtgAAAOWSMMSJ2Dc6iqqBADkxtPeAMAEBw4YAEcMD4ItNjPCMKAjjDRywKKOCjigApTEUEkl5P7qRIYHzViuoEwyyRCBOBxoZIUWhBCCJ8ckQYQo7xw4EUUmdIjBgD9etMQSIBnqA447LXkIkDsHOMAEHHwwtAMf2Yv/Sb8pYvsgjAAIYIuCAgrI6A/PYnSigk7EQOGkThxU6UrktOQPP/6MdIAx6s78EChEWqCMxzdNuUGHItw6II0bvUqNyz0BDXTQDnxQAQooNAjhhAlM2BUrNR5p1CxICYAgQEEMdEQQ3gCgC8pOTYIksDDCQOC45ExtgKCCEksAgEayoE6SD3sSShIoVugAAwJqLcMBAHzkdauuqsqkjz4ycYIFeFd4AhELSinlCxgu0YADT5odgD2DGMng0UJU4miD2go0UDcH/gggL7w+7aTccllSbrkG+oi2rOgaUcFDScwUgl6hEBlhAgwAgOBNIXAAIC48u+KSK/z2TMMEFb74/6IUSrA2AoaKNwkBYxMk8LOhKT4uMgExKr0gI40IYBIAEUYN7lOYIQ0AuQkf6bKhDCIhYMxjgRI8qBIQgeIEZwG44M1GAJAAqjTSmAorOA5mtyAWOoBCYqwnprhiEhgIwZMOosJqIUA+Lvdd3tCwNGAJJMfCkChW7vRTTxEwy4yUyjXjg+YufCQDEQAoNgQGoIAVEeZjPQHRAxxg4sQy2jDhemfTGCCD9xbK5EZL0ujgkkAoMWJrF9K/5BISSNiEAwww+FE1AaYNI4Ej10JDEP5dJ6AzcLGsEyigAQK0NJxQhcEs+nkahtZQAeNNgAMh0MAIoLAmC1gAESHY1wH8Vv+GE2WhCI1oAw5MELABXCEDoumVJTjTgRGUYmtKYEAKGHDDLnSBAcpqVuyw0BwMwcYsZknAyBywFkEQaAMKisNKWPaAvBgQOX4xoFnmwCV2xcYPEeQAB3iggS6QAFlQUAHRAmYAABQAhJhxAwkdED/sPeVFaZAAAABmgiwwzwUM2IQG/EjBHI5ABSvQl4+sQpBHAMIJc3DUFjsSsANsxAEZEYEfzIUCTGaSBmZIzv0U+IErVo4hakhMIYznCS/yIAV+7IIgiXaAAyxhCZGw4xqXUoZGmKBoAMABDiDQS4D5SCO//A6Z1nfDGvpRAwwInQYGiYNnhUVajHzU/ThCKYD/OY4FhqifX1ailwEW0IDlcskcGhATUaqBlNDhZRd58M53pmB0pZOABEgSiT+kcRBM2cNTJPAdH6xghB3EgAO+04HvPOEJF4TCDVepgSeMgAQjeMIzo+maaX1AS0WkDRo2QDIIEGBBfYFUuEyCgnRRyyyFGciegviBCmCgA6g8AQdOcFMeMGtfcamkH/zwOAfsUymNyMjjcPDRFTSig9eTKQ460AEyjQBiOlymMxWKLEH6wARS+RUcfihEK3IkpNf8aEgVkABzBcBlJ/ndEK3IwMotKjExnWkX7frOEIRgBRiI3RX8MAfaXcEAR1NKDJ7igA0UYQU+2NeOdHmADvSy/wgqaAwiLqHDHfqRsk+4xAhCoNUfhWUKEIkNI+cgVpFG0o4By4AfqumyT91NS25tQH4wFC396KgDE/AEKlOpgYYSLSoSKEQhMnBcwaJBKRcgAwAwUAToFmECT32q/A5QqICuAFk7tGFmNZs8zz4vDa3xqkKk9YEpOOGaFGDL/zKwmtE+Sq0sk1IAzDCH+zIyJlYxzEG6IgEMeGACNehBDyaogRR4wgM+GoBd+tKXDKQBABRIiiJCgoMi/NKpTz1hXHg5Qhw4LAQpIDGJEWxiElxCdKAdCH686lUhTSGNFPAIjQsAsApwcz8LOBcmw2lARxUGnQyxEMLgAIj4eYALE/+YgCpr6gH5vSENfrCLAqzshwgjNimCIAMJCXA9DjN4AIQyIaF4G89VlniZXbjEIBuBgfFezsUIkVYaIRAwJVUKABwjJX8WoKU/82c/5mQpHNSAMIRtQdGEAMQAksxbT3AByvPDwhoCoIAAFMIPV7hCVAqw3DfjGXYD4FUaZFq0A8hUgvBMQTyXeUMNLLYD81Oni+ejHyfYeUkB+0MkRZAadaqzD/p5RLDV4GILHawPit6CFxbdByzIJX5i9hNBDLGGkPlhDRm4QuSMlhQ3tIEzsIwLqQ0hYY142AQd8GKJ46lKZQ7SBLwydK3LS2w4qPciAyIZwK6wmnrbDNEJO/b/KLu0J4QRotleYLizEZYJ1kQ7LoDgiiGKq20nEK8CIvg0UoqgNFj+QeR/WIJ90hDJ2GkPAxI8AatLvMoRuPIA1TZ2fhiY64tc4CM2/h/F1UkKhAUb4YhmVx8IgWiFN7zhW4B4V8IHYNOxJgOaXsMafFoBAxBAqEUI5hLqKXIRXMESghKYynfbxZavMq8QZd8J5EdxmwW7IPbOdxp1BUtYemshwh54348+8L8vmxBKZzjTsWCJNzwu1XEZL1cykIBtZ8DqFYgDADaAFDcEU1AjpwsgTi6wN7wh1Us28LtXyYAR8ICvllB2zV0MBxl3ZJIBS4Mhqq3svh+67w8/eMIH/0/4LRwdC2+QS6r5OoCqOCFkmX7gyh5AgCogRRDBVPwBRF5qH30m9I4WcA9U6fIUwE9suA+63PET+5IJApuO897u3Y/oQwc/0YR3thcIAXHtwVJ+vFKkH9AGxUJIgLsgAOVCCkdoLrwLuZKLMAl4AzYIPTago5VDJR5wJx7oAaL5kUwghMAzP/x4iBnbAAGhABsDAKxAGKArv/c7NA40uoWjv79rNKj7EaqogOcjg0p4ACsTgwdYBKUAghiApOrDlPqIndCDQEfbLd/yhBqYgEl7AxfkwKOrt2MruIKIPbfQCC0EgPHCAhZswcC7PzjYPYVjthesP2cLvuGLnIGZj/8DIIBKqARLiYM46EGm4DoMwDvFq5O4OMI+kcCnYjInlB/v4cDga0GXMjQXi72Qgh2xg7uDM8RDJAUpPDpLrEQzpL+lg7au8qrikcM5NIBKYCNdgiS8E7nYecDQQzxHk6mngrI0iMRKlMLycz302x+2uLH/UQhlIwVKvMSj0z2iMzpJ1MRNTBiX6godIQBmNAAxUJzwyIIsTMC5qBNVnBzii5/4acBIJAVmo0U5MzY1kDGPqLFrqZQDgDvAk8ItMLqB671KNEbCk8IuUQgBSAMRiAQFoMM9qJVuwTO8iwsWEJQrkDLVigpLqJyDUacyXLRgrLWaEwA7E0K8SwMu0T3/MFQ0d0yY3ku44DvDM1w6RdubrgAEbAOFOCAAH6wVUwACCCADtsm7+BEpWYokrrIcRFKDpFu4wJs7uSNHCJi9P5AA+8CCuDO2Q1S4wOtISVQ04DPDFzy6LoE4J1gDtImDjmPJpCgCblmSNiih1CK3asMiCRMAYmw2pSQ4cYS9GWMvG5ukAxAIn6REh9xIv+sD+0s6pVu0dtxJqZSPqkyAytNKpAk3jTAAegO2gigeQJBFWvTJn7SWtlgSygQY1JgCQ+sDSiTGMHRHS3TBTCw8ZuPMpZwPyaO8fiHMN8kDgJGA7iEyXjTEMuzJemMIfXMLCWABVpSdF7OZX9TIhPM9/6UkiEwIyacMPI70qtRRgAfIStXEDB1wltAymKnEvVlswSqsuSmQTD3jNRFwAvzgO3cUxr87RCyIkYHYSRg8RHeUD0XKAAUAgOd8EzeQzl5poIJARqTLPbqDPWuhMWxakv9xgqowDPIkRgSVSobAk2ULSfkjzfsrGECQAL+ZzxDiqzYUJZ+cyrvUzJo7NvW6lmyCinqKgl9hIIasRNLkyL2Bg2L0AmLk0IFTzuGTgIqw0PB4Jf4DNqGbyoIzNqP70Hz7z6CUAPKyLWFDRAjlQGVrSg7EArwTAA6dShp9g0ggAxwNjw7a0V+xwtcLNlo0vzSwiKDkQoV4nIQ0L7hSg/9fTDSk68izlL8oWBxTcAADMIA1QKeucII0+AOOyFLMYKwowxPKsbWwCDag68CCG9NKaUA8MTUMeIOmewTTKra/o0XkBEa7NAQcWAoIWJBe24g/BdRA1aUBuBOK+0CosUKhm02CCLYrOKIC+APT0BEuzI8hMkv3IwWMfL8ndRNSzVKtEpimgY8Xmzv8KDLZ7JJaiwKOKIBfq5w3KBqLRKQhegSpfD9fNTqIS81gtdA2yMNTBQTRmALTMI3Xy88ydLaaC9ECqID3wgJ0Qz6GKIsrWsjA80WBQ87WQxgskM9vtdA3i50+6RWDPdLMJEaGe0g4GNNruZSTo71UhYPEMMv/YIS/uCu/+7sc/kiMAyjAgCXMGVCaPsQTQv2hFzvSgVu4doTVI7qAtmBGZtSIxsOQK+I9iDzK/kSIBliAPysEA6DTkNXK6HQc/usVY+1EdVXPllWnWL2Aj/ooGjtHANiKR0hBZAyS/UiMjhUA/uDZIjkXrBxawqzP7DvZ7jnSCkG64HO2YISDWPUI/ukfNKCACwCAqXiIYlPIgiCL3TGLBfiAsvjaxNCo4dgQstXKDTi+0EPagpmRZOU7vWzZTPCDIyoZJSIZCnCAKxgtr/2Aji0IQzCtIfodn/UzsujZmCEAQUjcWlGaqPgMkz1ZhShUhRRPv9yTCqgEuR2EudXc/1l9g9E1gz+jmSAZoglpAOJtK2oqLvwRWte9jCwAGFJD1YOtijwpuvg7xGdTgwq43CTyXQGp2wKQgIwzXORYAOZgDiIRDLNQ3tmCDbD6D8KK3svIvKWZHJPFkYgjMgTlzGbTSDWwXAi4gLkdXxKcVUuwJAcxIPXts541lfd933NKjMD9gOgAWftVikGg3qMFlOs9Vsvxu498NsuFWRH0XY9K4D94vLuhAXFaDnU6gwh+X69d37LgpJ8NgIpo3Q1WiiKAndrDEapA107k0M4cPI28AgKA2f0RkA2oWxoDAD9QgAEiIALy2TOIlo4FXebIigrmpFIpIEiIjh9WCjQImP8FJNCS5N+wiERla1IOdLg+YOJreeIoluI7EwErHqABKpUG2GIuZo7mOAiNMgNIgAQEIGNIKIRIANYzLgKaLDkWcmPvQWJaRDTu3QKgEwEHcGL+iWISRIO7tYu70STk4A8t4A+INIjnMCBFTmRIQGQzqADo3eC1AQCvG1fH5UVZFM4lvT81GFPeMGAo3rm1oUM/XmRMQgD1PZVjzY8cliIEUOTlUIBRPGNTuFtdrqfIydvyAhaO9DswTLguGYBPLgBjFhAoZq44wAtPuWKUcmZBC2cNLYtDDttSEYNsPuMgtL6h/OZCLZiD+bsu+cxLNTI48GTeCJCo7R/euFO9yCT/AqKBZwaLZN2TwkgMLSmEPytjb/1ht6ATH/G6pmEIz0O+DdxIFQ265PyDdF5nEdyAReCNB3iAk5LnLK5nRMKihOEbIuGkTgDYM94DFoGluShW7H2RlsLUlr6QgoDphv7d8eUNAniAd6ZoGIbhZ64tihW0vTEMiDBckwjpDQ7CcaPB1TDW6izoDrWZgnhk3igAQViERZhbUg4pZ/QULKYBTQpcAfgPMVgD0GWgsUbfRH4AbTaF5tKIx+EVbmpj76mcdey71ju26GkLuuafuxYQmFUQvDgpLEYBGSigdykAUgaABKAzIcE2xIYExT5jRWhsBuMVtD3iOGbRn5Yzqa6U/7m1a7u+gG5pouA4KRm4kgCwPB1ogSxog13JgDlYg+gm7ELgJBqABBk4kjNOAtouWULFisupEJy0EIX86afpbQgQX+DOa0txxishbQI6l06YjQ0QsVl7A+h2K8DVEuO40R/m7nRjGicI4WSNY1FqUSKDgwNQZ3UeBCAAgiRIguCeTCjKi9IubRpYmSOhgBV4HvkxhI9R3r/9gMAdF2w+40VoLgOICjuxXtZQyN7TUHYhTnZZ8GIeBEdwhAgPbt6ohKsubhlwGR50GxzgK+JaDhLvWI7+nQCAhA1xhB9OcRYZyitYj++Oj7YmbyrNT/k4gErgjUXI8RyPcFKe6x/vBJW/1ovjFoM7FQMFkAEZmOWOpWGu5egoGVX7XYSMiINISI8YAeHHPaTq1FCbOTiSjB6YFQRHKIMxB4K6VotKuWpw6hQxgHMgr2Z6VvILNlzjeIB+jt4UF6k4IMJu6zb1qD0nQAhDeA291VutFbIrSCOPKgMmUIQqqAJG35ZFYO+rvml4huebrvAGcRDjSAkrfj6ts9CAAAAh+QQJCABNACwuABAAdgCyAAAI/wCbCBxIsKDBgwgTFryFq+G+fQojSpxIsaLFiwIbUqIkqmNHjpSkYRxJsqTJgZTo0BG1siOdT5+QIPlkxIgoIydz6tzZhONKIzSNIAmVY4dRozlyqINBiafTpxKlcRSFJGkodUl31AiytYbXGjt4wCgFtaxZXCmFWpVJVGuQIBO+au3B4wgMnGbz6hRKNGkOtuqMevXkdYInuhx48Ehh94vexyMpjSl69CjYrzUm9PA0wbAnTxxC81BnRCTk0xMpGfG7g+vbIFy4cO08wYMH2hNCi04BA7XvhAxffsqxVXZsD1w6c57AxXby3KIV87DwuzrBfSmrtm5uuzvyzse75//+nJgHhyNkrf++pbpvDe7djXU/zr25YeWh6aJS/xvXy7bveSdgbM09R9tynfXAQQiS8HcaWi8hERhsAnpX4HPPLdfBgSc06OBj+7AUU1EUVkigcp8ZxsFnnMXWGQctfPiYVP8VlRluB4J2QggaPPEEAyMEqcEJnHWQHAdPyKgXWkANlYN0ioUQwgk7qjACKiV8oWUdEUTgiwUjrNBibh4qWRZ2EY6hhBIuuHAJKnDC+eYXXdZZSil1lvAEkcoJYeZZLMmkJgxtomLBoV9Y8IUvWvriKJ3MRFDKJL5IEgKCSf75lBylxBTKGJfAgMqbhqZigaOoelknM5OAMEmkehL/+Vkrmj4ljRGTqaMEqZf0eqiiX2T5RR10dskqCCB0Ceals9bqFC4wFKWOC3L2SuqiWmY7rLHIgsAMM75cEsKKnqzgLE/SKJFUCtSOai2ciCr6aJeuduttBBYM+dkKNpyrkzQpPHkEKqm4+yappzbqKLetdhtBKiMQycEKdfibEyY8hHUEtda6+SYMizKq7bf2IvvwnqGtMIPFJ4HAgGIpWNurx4YCq+0XzJR8L8QnhEYryyaBgEoKdXl8CQNIM0ACwcCmYqqxOXcbKZihnfAz0CRZMYMGRffKA5W7MXCJqQVfsjScqWTpSx11lNDCChx0iLVJNoyQQgpdHK1Yz+Yp/ya2oagwwLViGlxJcLCSwK3CynOTZIMkDLjpQtJ5H61BChpccuqXJDDQRc0WEJx2KivI3ThJrDCDSptduNB50hpcHrMFdQbuuaEilzBD4icwfvpIIFgws+Dmxc2D7F2AHGngill5ONuJr8DM76h7OSrSm4SgggpPjJA0yBEw8wUqS6ciSQl1fFtHKiE8IQf1GNkAgjTSlDIqCSQEOcKPSJNAe/jiOxTU7lUCFbSgDqyAX0Vs8C1MOFB4vdLfj7pAAs35AoDEolP6cvat8YWvYgpMDR1K4UBMhO4Sk+se/rpAwf9xcFFQm0SXGMUqX4RwIqWgwxekgQtpjMoFFHwdC//xd6rwvYpeyPpWnRYWgRtKRDVGwIQ0MEG+IQZxiP7zxbe2eKxkcclLX9KiEyVSkwjggookYKEVu8CAFIgNUXWCGpe45CjagWCMEclhKegnPPxVMI0M2ERdlJbFOBpyidPDY0RUI8Uv9GqFgAyk2GBwQUMqMY7HUmREQAADKZZCZhRU49KKyMFVRapOX3CVJiPCjFSUoocw6BgQK4g7AHrrlOHLJb36tUqF+OKV0oBg64BIwZpdsJSSsiQIEtjLiODiFqyoww9doATPUVBzh0IVDPHUJRA2kyI2mMEPlXCEu6VgE4TE3ReeZiy2fdMi4kwjG5M2yc1dMFGVrMMM7vj/ToqIc5hKYOPSYCAvLcrQUWybwQwS2U+JiPNowxwmQbVkrC5lS6G+a6hCpFAC71VOcvBKlUWDpVApaFQiIFifH2VWMzqFLFtZKgEvT5qQlKbCbGJr05tslq3c6W6mND2IOFfXhdgJLm+puNmiSoA+fQI1qAUpARvHUrDA7fRXjGIqU4dVBxC8D6oGmUHnvoCLEnQRBDYIp1bXyrZUMhOsA5FDHToHshbM4AVUyGteXyAESRBsq4uywDLfCldWfKFzn2tBFuYxjw2gYR5lGIQQWpA29EWKbSA4xB3gKpB6sMIXr0PFChi7gQ1Q4LHzOF9T2cYlZsxAs4fgrGd9oUYL/7RitPNA7SAGkYcsbRBqrz2EIogAVitY4bOXyJsFVLCC0jZ2HoNggkKLBcAuzcAGrHDEIl4QVBuMwgrBTCMqvqACxz53EGWQAgi4+sU5XvcQjiDDBZigUStIQRJf4BT53tjc0jq3DFSYgamKCDVJ2OAOjsgFAQpA32/WwwovyIMQSoAL1aURZItFLXTLMARJJJV2X4yAJPJgg0MAgQwAAEAHViCEjI7RBlLIQwtmTGEQQI4Bv1zsBhjbWEe8QBKSUFSIfYGKGVjhByfORYpNgIMiZGEIeLxvC56wPQ1YYB+PU8EmLriCFaBhxxvY7Y+DLK9FoaIFJf5BEsiQCyWnGP8AJlhxK8p0unBKIkylqxqFWSEJFYQgqc398o7RG2EP9xRMBr6DHtYMgAc0+gEGSDEGTFCuFdDZYtHcX+k80YFO56YErEirEFZAsCw49rQUgO4LOmyqRIHpCTNghaL3oOQH2BrSBjgAAHSNgQ6s48ksq0MLpsSBzhgDA3DekCSkwQorjCILM27uab+s6jx4+FckCMEISnwHMMSg1rd+wDEicYADRCLSAMAADhqhAyFQQVPCVsGKJtDpDmCg3JPuQAukYQVFM+HOK5g2tQcxBGsPmAQaUIFM7/ADb6P40bY2gMTNHYljSHzJOPCBDvIgo1GUoBVE6oAJTICBkh9gAAP/OECvRyCNAyt6FIlDAwVm/liCGzx0I1CBJKTwgx/cgQhshritLT7uischDsdIOrnTjYMdWyeakniCmOhtApXf+wASQPkASq4CaUhBs3eQQhZMPfMLUCDMTJgs+TahASGMQg93iPsNgg5pXBug6JGoeNKVfoBmRBoDDliHDlADghm4DW5U37XWMaB1lKs8BNKgQr8VrYOxo7rmZWjFj9gOa57HfdbglrjEK573Zug9EgqowNHNrWsAOCDVerFB21qggpCT/OSNz33KMaACTMxADz7/QTGKoQPoMoEJeJXxj3o0g69/nuGLAPetxz3uZljf9HnPfiRMP25dm2Ad84DK/yTa1gqQc9re95aA+nUvAscbg+XNh/sPxAGEDTTC7GHWgQ40vz8heP75ehB9Qnd3e7d9V2B612d9S6B91icBrkcBg6cTzCBNUhdy9rZrWTcAGdh4LMACbJByHQADLUcFcBd3evACWdAI60ABWVB+PvIEbleCAEhr4YZrcSAGCrAEzSAB2Ld91pd9SWd95aZrDhB+JiEFM9ACt7UinVZyAMCDWKd7bNCBLKB1HWABXkcFYACAilAMZVB5mucjktB8Pvd8P/dtA6h0O6iBFXB6P5h3eKeGB0AAaFASMrZpVIdsKdZ3fZd1H9h4afAGU5gGA9ABdRB5WiiDP3ADjBhhmv83Z80Hds/3A/GVCzUIaccQB80gAiLAg3l3dxUnBqXHfQVocQ4QgReRByvgA3moh1infju4gX/YgYLIBmxAiCZQAnkFBrwIfIpGBIqgCJEFbZLwdr5ohkTwbZdIgKUnAm24d9CId6YnBtSYdI4GARiRB27QBiLniuqXdd+ogVcwAGlQhQPABm/wBquwCoK4da0wAzfAi2Dgi3pABOIQjGVQBnkwClJwjDPoZhIXcQW4fRXAfXpHjdWodHt3d2IgcQ7AXRYxBG1AcozngBuYcn14BVfAAoTIiRypjuz4BmkgARsgBC8Qj72oB2AQj4xIBERwA1LQj2X4fIqAYrg2fcf/IG44qADHoAAEmHQKIIoVx5NJFwdDZ3GRRgEXMQgOgGyvuH4a6IAZeQWESI60yI7rmI4DUAAc5pJEUAVgSQQryYvBqAgwqQeSGHdqVmsBeWsG8ADUqABB2ZBvOZCRUI0EiIlJF2nYWBEv0AgkBwBRiXLgKJV91wwbOYtRkI7rmJVpAABntwEXUACV4AAFMAiMyIviwARVcHwneYyLyGY1+JYGIAY9GQAVMJfHgJBFJ5emSZriRoClaQAFgIoSUQYxsIe4R5iwyIPN0IYVwIkaOQAsAJKAgJWrwALqdwAFUABmB1knuZJJMAiMRQEFAAEbUAW8SAR7QABvGXGvmXQ4/1gB5HmQCRkJqRme1hiND+AAdUgRi+AAT6h7hKmBFPebwSkC48gGTuAEjbkKgBCg7CgBEABZm/kCUhCPRLAIFwABBeAABAAAC3ZaBXAAogeXpimecUme5BmUnZCQChAAcpmT4qahe/cABNCXEkEEbvBwF1mfynkAPZl6FZAMURAF6LgKUeCfABqg/fkGErBgF4AG0SUFisCLjiAOSpqPTDAEQ1AGG1AAokd00IiQqZcAIoqDGSqerrmlH0qUe0kARigRUuAGTfmiWicCQGqhCoCeNZoMGxmILNCfURCgPnqjrbdgOiAFVJCg8wAEQKADZYB8VPACTFAGFwAAF4prpv8ZlzPqmtCokyGaoXGJmki3dwDwnhIxCnuQbuHIm/o5ktxnAOiZDDZ6o1egn07wBv0JCIbACIxQAQSwY6qGllLwAhcQA81ZCQRQCc1pmQCQdz75k7HZqHPJmncHlwGwrG14lwGQAMkgAguYoQRwARSBqym2gWnwh1lXhaY3l6lnqqdao1EwBYYwBa7qBFEgAgSAXscHBodwCHpwA46gCFXgCEDAoBAgnwdwgKh3dz95ohi6pVW6rHJ5bj1Zox0qBgEgcSoaEaOQm4KpdSI5AO13jqLaDOAKracaBTY6Bebqo1cQBbQJAak2BDF5q+Igj7x4A8I4CBCgqMmqkwQrBnD/uZoIiYNcKqJ6F6LiSp6FwJO0SRFM0JQTmwbbinJVyAJRkAEi8K04CK03OrUfawhWOwWMkAHJUAEGQABeewE6gHxlAAGLsAh/mqRfqAMUAABIyZCsabPTp6U4m3TPmqWNKqIJkJoJEJQWVwATwQo6YLQo9wYDMI7E2YE3mgzWJ5cKwLFTO7Uga66RmwwKcJm7NQil9QJl0Jxk4LVv9mYyirOMu3dwa2sMu7dyKaLLiroZ2glymZrPGqJ9OxGjMA8FgAHainLlWI6sGgUFybgJAK1rIK43OgUCALKGgAVTQLkFIA4voAgvMAjrMAiCGoz3yqAFQAAnJwJCa5qq+Z0P/9AJ4cusqRcAqGewAZCzqhu8o2sAD5sQQ1AEZ0qfhzuyTpuejZsMH7AGw/uxkYsFgDAFWiurEHABtIqdBBedN2Co4qADaOCd1pizJAqXFCwGwduhcomlIjqix7CsAVAIe2uwFmettwmY86m7gWiLbHCj/Um5Udu/sAq5kTvDjLAGPum1C1YA1tmcQ0qrjPXAq2m6CamTnbCaAQAJIFy3jVsIq8u3xwDChQDCybAGInoMB/C+CDEPEzmfIkCItyiIVbgKdMq9Fsy/TcsITRsFH8AIkZsB5poBCWAAYFsGjjAIFzAPF9Cg2btrzTCEczmwjdqQQtwJzxq8WNq4Gsy4p/9bAf3rsRnKnBNRBIG5fkirjiDJmE6wtRmcDBngxlPQn04Aq6KctU2bDAZAAc57A+KABkBQBQvMBNRJAQ5KAL8pBh/6oenbqEn3oQybvwkAwhXwyxqcy886xcacAKtpcZVAXBFRBPb2lOQYiI2ZjugaBXsrvFHACE4wwwI8yrCqtQpQrWE2CGgwnchnqMfHBOIwCFJ6l51wy3B5rLxMjasbvFMcxSFMz/ZsCHD8xyjqCBJRBDiAbBdZnNOsjoaQycF8qt7cnwn9qmgMstbctQTgAAV8Ab7anNfZwxTgAHenAB8avnH5mtUYolcavPyLuiD9zlG8BhmwBkyMszZLAED/ENBNuZsUy5hYea7rmp/JMMrFu80CUMOPWwEAsAjopV1JsAd7vGtY13fO2KU2K3q9GgNtsMXnWwHLyr/BfKzLWgj8a6pBG5S2JqYSkQW3R46AqI7HmY6AIAAeKwLiOspTUK6fDLKiXNeyOggvAAYvMA9Jaq+Rhcf7CgAL2KURRwBt0GWtMGNZIMkA4JoKANMg7ZqEDNYvXQjJELxZ+s8S4QYdoHiAmAYHDaDKm7imCqtDXdfcLMqdbMoFMM6LAKj5OKjHR8cX4J0I6ZYA0AYLsgljA2Qp6NGlysgbzLAfzL/8C8epGZRvOQgSsQLPjMKV3KONCQhYoK6PO8WMcLyR/8vGeP3NlNu1G70IvFrRzYlqBcC2OUmN79yQveYJJ8AAf1UCQpCCANCJS5CzUYvSys2+zm0AY5oQK0Byax2IbxCgILkK6KrdUTC8awDebJzXrr3ZlQtd80ABi9CcXjuE1qeBoWjLIh4JcJYb7aNaJSAJbxPaB3CDIfrVCcC/AiAAa8C+eyngEgGYuKu76Ii01h2gU4AFABzKUbzGMywAsDDUNA6r+7u3ECC24/yF1CmZ2XuYcPnehHwMve0DIdAK+0NZWiUJrQCYBNi4AbDcGSAATgCtVYyUGxDQ063WA8CYAhrAxqu8TJsAawzeIOvdAtAATF4IH7C1dBjLO6Z/tv8tDlCqvXdJjVfeCbRZBI0NZB6GNmmj4iuAA4q6moWQ5iDrBJy4t9BoAJqaEPJ7byi84Areo1gAB1iwClewBh/wAdzs57Aq62YQBslQCF1r0RDwwF5rmRu93gfZCTJAA52QAABQAJLeAkBWAk6DCkES7WHi0cdQAYKevFOwBl09xKRu0zuukcW54Mi5CgLg6jo6xWtw5EM94YzwAbmu5wlAh4w1pA/KrwegqqC+0saOxMruAI2wAk/g7E4D7ZQOZGHSBmzLyOc+1AlgBgmgy3uplM08v3NOlZb8n9g9BXAAB+zosYzQAN6NtYD+58b77gkQBgHQrkzgwLtFx9SJBvv/2neNbsuQsKxduw4rEIYz5jQ+T+0roPCREOMzXuOcjYOo15NyLBE6YG9Zh7SEKM3HuY7HGeSurq58brxYq9pK/u4foPLue2obJqiHWgZ4LHFB3AkIIKLL7gYDD+1nFiRA5vOXIHWhvQQVsMb4rPKBPG5vWeoJMdBP/wZRcAWqDqDm3uodz9rgPeMnD6uAHuFrnOsN63omi8PC7qAOYKEYuvZs7wA+MOmX3gJBMioEgwoq4AMmIAEioOdDDcJYqqUIKXEDHvioPuc6vc3KawiroPhwoAZ13d1sPOOwAPndPePwbgZmIKLVarJo8KARCtUuXeO23AkoQAMiagAOUC4G/4TiHjYCfsQAl8J4aZABbPzSwbys/G1r0C0RW0zdYozdcHCc8g8LagAHdf3TxnvuJA8QAqYwGvjBYKEABiAMmodm3qAyOhheKEAgUoY1AcR0QkEjQCQAOHycCKHiyQhJqUqUSJVqxAgNPCZgkJBGABwshtYkSABJzE8xAY49IFCmyVGkSZE2wgBAwoABad68AQQICxZAq6xigdMVi5OBAgTAgjVFACOxaRkZNBMmAYELFC5s2ACxTMR5FBysEWAmAArAnQw4KNKq1YgWrU6iapnSpQYOHQ6kMTQWjqEMCCEF4KxAwVAC85SOPurDxIEBV644caLVKpyqW+GoUQNnyv8UsrCwWBbbVazZBozWREl2wEEBCgSUOzheoAAAJ2ITBEAQANIxAkVWPJHU/cn3Eai6p5Kk4kSHmoBgdcVs8INbhEIHkyZtGgBU1emv4qyKhWxXnKZoALexrtqNK9sEEuiDKA4oAAIIKCjAAQAOeCoNrbDYBY4PEkCgOpBwWMEkxlJB5aWTwiMhBE9MiAqQ2WAzZLcp1ohPDAMMoIC+0UyzMDUWWMjQq/6sqm1DriwDcEk4YBGLrCmiAGADCiDY4KF5qISAgANE0NC2ZMJoK4FmMOiApCcuQaVESVC5ZATzPMFgAK3g2BCnq2CxsbNjANiRx6RwaMrCK95YZYr9+Hv/LUY1sOqKNie5qo02rwCcopkH55pnHokk2uACAGDsaqe2PshAAgA68KSk8EpM5RISzJvgPqvuNFAAjMKID6QNAE2qjUEl0GpIAA1csrZHvUJwUiYtNQ6CCwgAYFrlpG1Gww1hEfMD4ZIpzoQJOOBBAwZIuARWBmS9bxU4uKl0tzXeK6SQBCIhAAhfkbqgKQmE7S/RrJLsaheC7+xqvYNjxAkWZAVwAgAIIXBA2i7fqOwmbrjZBYvbGFnLoApS9eSEcRkwWQMV1G0mjQbWU4Pg3XQSEyEFCBgk36NAdSqNrP7lCisEm7RTY2SZpJTJ9bC4ogA0NGWIyoomw1ZjBMlS/wOWkHHwRFxyGYBThRU86QCAJRSApIGC4RAAMzMaaCCM6o4pAOcmdF45qwyv2nBRBHchxN1Ki6ataADVcIIAaK8cZPEs0YDgAFEp3UWNjLlRIw2ROeBagyc00OCECUyQoBkPF0B7wwzO+uBDGTZL4IBe842hwvTy5grJn5fdxXLCBb+6WTgkcCDCaqUlwAQCJJiaEDW24GYL6LnB4gBVexA3Bc9VCIGDmSSogDMxzfjgrLXC6ASSTjZSoIKiZAcgEgnewFA2gm3L/dGMj1Z40t8Lr83BAlxgYgc4QKFWkShuEOJvlYPeFggxAHBZjwcpYADKwDYB9HwvAGEIQCHM8P/BeU0HEiMMgAJwFDseuaFCUlmFa26XsV3A6Gf4453CjqU/ZGEBYlba1AYcR6Fm1GqBhChYA70wvQ5MQIKe89z2JPO9ngSAJ6aDRXA+wBk+RQICgNKB6NJTJKBtaBcC4FjQ/Pa3oyUtYXhyWaOeRQE4XqkhFDkAtgimsb8RYgtecCAgMOABLiiRByFAWWSMMQAJ8IQnnEmA+GABs8xo5BgGKIBRSDOP07woNlu5nZ2uchOF3XFwOHkUstbTxtpcYXgQqNABpjUtE1zBjmfMGCG8cEsvEMKPgAwXyU7gCS7MKQ0dpNciR8iX+gnARj8BgCPo0wF+QeUAJrgPzwxUv0T/AchvCZwUKvlXyv89CAITqpCQDIEoDSVQjw5UIPRwubEBYOCPXOiAMeQZlTQko5gJgM8H15A6J3lMmZgiTRaYA00zrYBF6OHZwPa2LAAl0HmM+mbRbHUAaDkkSxKiUPzSWUvnSRR6erylA7EiP6pUZRWZiQ8kPhS+D6xBfMlYwz9x1YwtJuUFbmhEI9rgiRXARHMzodPUYJPN2ajTXaOcDQ6bigVMQQsC66AAGtAAxwJAbmgOdN46+bjAjEXvTkjCDD8RAAkZ0KAtHmxbA2IqFoxM4Q0HEA1SRpEFN2inBW7aRBdIcJ45AaJgGwsa/hwIuKMNTrFHUyWEaOdKDFBT/wIwUqceFdjOwypMQ1jxWV/ghj4anNU6kGibkxClzAww4goAqOshypDX7YyAAZeAwRdgEAKZACANWEggYbtiuabqEbiJXSyz4BBVCT0HNWzI22/XydUG/s0rU8CQoXhWFcwUAm4fQoAZREtatD1JDbhaQxqWkNOdtqERPhjRJUph2y5sQgMrkMwqdmewpg7ueWhk1igX25WoooEuVXKAZF2Y1JFeNnpdcYIICIiaFrbQCRjRbiM/aB3wtQ1POMlABRIQsqM4ohExEEkrfIEJ255LTU8ogou+tKRl0Ua4lSplUwsHhwGsckLMcQAOcCCZqUThA7BQp/Pc6TwkOaEZBP8cAFVWcQBp5agCNHVLAGTQCepoGDZwLYQCDEAANIChDINwgxskwQwUw0BNFmBzC1bQBt1+qbD4E667gvbfpza2IhWCygBc2WTitK3I3MhlSYmIExE0oxkScAJWjOMcBxigAiEk4ZUL8YGuAAKuGTEAGRbRhBfkQQh1kEYpLKAmVLCZzZIYwQpEhy3gJfV5wJXUfxlWGxEMz6pNU+4AmGuIZDSScpV1Z0mB2+EKiGC3WJgrAJhjEXqN8MoykCKmcTLhDCQAO2g4ihRGYQNWlAIVJEg1m2HAZpe8GQBvSFuNkzrjRNmaUjm20uIGsYFxUmgy8woDkYtsyz1+VWMZ8Fb/MgxhFUAMYFoTO8YIIaGZTmDZDPVzQhQ6DBekWMEGNviCm1JhgTWRW9WoUAFTlEew4sp4jxPNb8pTObzkTgh5zIklwddA5Od61dC7uE0aJkxGLKziDRKIxDHM5tKzou98YbATHCacDAPEIOM2YIYkGOCCNV3CZCJnMyqecALRpcFOkyvuc4fbcnDCIdcX2BLtpILI+OkkAR/wWwNXjktcIpmU/GF2RjaDdGm3zgyPxAJGFCD1jM/A6uRyQQU1MAI1kccC6R7bAcleXEJHr2i5OWV+G1tVXlOMTqvI7sQtG3C8492B9Ttq4QsB+BG+XtpmYEROgk0ApbBiBk9gQAp8/489c6G6JSUguaB2S3beDbuWwq2NWQTQgOffmjaHu4BDBuGIhnB03RmIQiHWAId2KtiIqmc9KRvwQe+2xeGcEXxNK2AAbitlBtrjwQmwVy5YkXv4kmiFD+aErcXinefagkZhhPMTH0aQvstZpXFyDhN4wKagkyhIgEJoAGK7LJJKvYnamK5wK/T7INeRIkail0ioBNKYP5KhIJNhgC54vEsYPvKgr8m6PMXKn5X7GyxgBO/qLkyjnNpggeZ4padgAzaYihaykUbaBbuLngzUQI0pluczg3lBv3kppkmrmT9RilFoha75vU2gIDXpDpZIhRXAgRm8Ex+sQT5yIA7xLv8UQIB+s7E0GB6KyDcKmZb4AQQnCJN+u8DTS72vOjQ8eT7o85hu4Ql6UYBImBv6EIIWYIAv5AFJ1AAVYwwLKAELUIEJOEOKoo38WSdCsA0dhEMzyC84mENoKQCqqpICwIEJEZY06JAwMB3KCT+JUr0jA5wNU5u1wYyd4InPqARnoo8ZaIFNmCBJpCC/MpePmzwVQA92mRyU0y91MrYmMYgwGLJSQsXneCUAkKdpoZM0sBGkM508AsXT+5sbJCJjuQqr0IkPoJcSMoALAJRReIIQSAFJnKAVnK1mTIUQgMY7Yr0aJCnoGS+ZCgNQopQ0QByK0LcBYAEjRBS5C4DQQoD/BaicPNqCXUgDYdmdlTusUFSWnMCIPRGDB9gDX+E/hcKt39NHSmzGEZCTAZia/KFGI7sl5tkN92i5z/MhjpKWCnmD3dDBnviQBfBEjZGekMCBOqo7dmo3r8AVjEgAlEQ8X8mDLFgBhdpHcbk6NbmEgMSAWhmsGgorI5qotdAwxco1O+Qx58ABCiG9eNwujKxBbpAAH+uAAbCTgCMimDEQA2GNDos6upECcSiGrdQcCVJGraNJwVKgO9IYJ2A3g8w7nlsLb3JLB/gRRFo0PFwFZSoE7nIkhNEN6jkNDbElPgq63AEarDAEJ6gZRqSbF9CBLDgBDpCgCUqBLugCDjgk//u6IwXKmOCRgDMyIuGChQ9omWGjjbXLN2mRgNVAp2vzoJdqTrdxG1hIgybjLVDUIUgDAAOQCtkUAQAggNqkmyYYhdfyBE/gzRQ4ghSoAWMQlqHBwL/ZhdUgmHW6xVAUgA9QSuh0ALYTylaiTqq4CkNYHQR4wzBogAX4ILcSgDMiKSJaBRNIClCZhzQwDvYkjWJoBByYgAmogR6wnh4IpqhYzeXTT1vCrCXkhrEgUDXgzMkQOkO5nTtRJrR6w+4KnwUwHf/MwBjCgBANUUeIgeMJpCAIAi6wJzqxE8l8HnaCLq7KJXW8peRLoMpxy+TxzhUau/phTgSggY7oLu8aUv8qIs7ixALcS1L2jIFckCcTsCfU4JnJxEB2WsMECz9DA5zdgSHh2ZKnMA4XsQqoEJXz+xAauEg1pVDufL5dcJI4lVOc2QMywMOiCqOB1Mi7M7Ti3MiSqg082pBCJYBCkQBoGoCq+DOrENAzfdSOGNIPmtAPCgO4+aBkuFRMzZdo2RnBuiaNKZjlg65zFMli84LK8dJdWDtVXQVWDaw0kKfJ4slZDa3QytUd7K6zQgB6AYBfpRs3eA46wa7cQbmlvMCuSrBQdSDl0xgReJBIawYAOI0Dwhx5Isq+MANtvUhbRT/uCtIEMIC6GldfYSXUgIoDwpPBMtbL8tJkHT8+0kj/y2kGA72AhxTWD32KA5qCD9jBizSDBXAPu/xWM3i/9URYQKEqN3AARrumwWoXi2UesHou1QOr4wqgDQACIFiEGGAOt+MkARUT7prQuiRNR33UBIC6nGJZugGVa206JJkcy5nMZuVT1GPWm8SUCxgEcUjMn10EttuzSJiRtUS/BYhU7DzTbEUAMXhaqPWVMgCVZpgRwfSfLlVKYku94qQNB7kARyiDsHUEn20Ix3mONEidvmBTbvUu63jUWf0QuZlbnCmG2VmCDDCWZlEsY5Uor0K9g9QYB0EDsGUCccA+hriqcSIAETCEBtXOCR1YXXXUb6WBTniAAtABy/WVeaBT/wXIAE5CKhuqnCINuK21HHcBAKYBW3EYsx6iErbrzBkJ2SE9v7b9Vu5yOBnAkXrsXR4BAuCNDsHkXCYZVD5tQmNb3uYNW3FgiB6qknE6ANi13u0U0CH9kG4FV9LcDB0BX/pYBDKQtEYbXsFEmIF5UXfNO2dlXtN1X0eAXyqRXwDACJK9XreaUKN124tsndaJWwAeDUXYg1w4BgxxjX/hJCaRWHTko7xzHlhQzwcO2zLAvo2KC4kRAUbwINNxq+ZEv4tEU9sNrQf43hBGCnEgYRM+oNiAzTnLz/3KOdRboCmQYedNXcbRknzTYR10pO38IP2d3EfVVno84qQAAhI2gP8lcIJNGl61aTqHwqy+LSmOFADEmeHnXV3phZCsIg62SkCx+IAFONkxpoG0EoyVDWFxoNNjWALKyADZRDjZoFrjTV8Fwjt2VE8KuGIb3hS50NjnEAEPExMnIa9uvbJs7QQZkAEFSGQAFt9cAABlc4KDY2LOHauxO8cYFamR4gZAYN5Ndl/oHTC2a13v6QmYagsOhtSkw91WNuOjIAIBJk9hibAmzqb7giGlEsl0pEwZdgRxQN3U7aGm4WOYXYKe2Aw1hRtD/hCXEhOX8glKguYmUIQk2FQDqGYXKt+xK9bKglF2qrM5ZBpwZgLUjeBP0diIyapICAqLVNN4NmRV/lb/aksf3aVncZjmyTCUa+4b9N3PbfrogBaujjwONCgDg2aCu2CIRfjksiVPoHApM0DJB4g43IVUatuIeYbmKtBUsmGh5iKsdNrPiB1p/dwjeT0OCkBpRVCEKjDceViERbgqhSYAAwiKiJOiajkGMbgywLjILksABZBbRfbpJdAPY5kCQOgXrCUiL2XhIuuqZzXpglaE1AWCqLYqjdVYCuHqrK4ZhrtqMUCBTpDcKxMMIz7int7Us7YdTwo6wRpUbS7OroJR6ZpXghaHKqiCsMXrXdtriiCASdoIMQBs0e7qn1DlR11l76XnJR3gJUgpvalas/znUdXPQa2fRYSWKy6DVMNtmqZRaIkxgJpOHwVIz6s+hohTZdV+1E6oXGgW3wFeGUMgC7Hwj95okvVIG8l+WHd5JIKZgh3aAHCG4MNFXL0+UAPIXWaC6dTO3eWOOBwha0wNCAAh+QQJCABxACwpABUAeQCtAAAI/wDjCBxIsKDBgwgTErzVhFKTJgwpiaJE6ZbCixgzatzIkeMtihNFifxkxIhIStIodVzJsqXLg9Aaipxp5FOoHDty5Lg5JpSLUy+DCh1qsKHET0iS3tyxowbTp01TwDjl0CLRq1gxyhR1syvOGjWCBAFbowfYHiGOKDFCCReurHDjCjyKZGdNm18n6J0QpIdfDhx48DjySZQ0aHITC8UFY4zOx4+ZgvU0gXJlwBxCcOixQ60RaYpDt5SmBCdUp2THelq9V28PDicA8wgx2ILo2xs/GqnbVGwQDx4mlLUMnAsXD2UBn9DsNwXu5xdxNTSSI2yQ48VbYweOHKzwzLE5oP+CTt4gLlG8r3Nfz2XCeu6tK/t9raK8/Tgfee8IMmE7d+MeYGdcfAOuBpsk95GHS003Weffe8VdpxdrHVQ4oScrJAhdE6IgVZ1YD/b334CVreZJhcFNeIKGz9FVXVgAdpBiibAtl4IGKoSwAgcndmBMB5WdYAOLon3UYSih7OCXJ6+Z6MkJK7QwAhQWVPmFBSWk0sIJlFk4gQpWEBmakUghMUYKKTDAwAgjMKCBBiOUMMMzdEYQATN2PlPCCFy2psGQYibGkCh3GaGELahAkQoUjKZSQp1ffGEnnswwo+cTHLS2YqCJ4SJRTSXBgKiikVZJ5wwW2HknCCBMgqcFfFr/NsEJYXIa1xdlfgLDrjCggkqVFlwZ6bCTsgoCnl+gopllHDxja1ynlEbSrlDYgigMV2I5rKSrGntsBKk80ecEHDx76xE5fBJpr7ZAkWiww8JbrLd4liAuswiaixUqg7HVKyqI+hosvNt26y2d9+rFgSv6YsVAWv7CUO2/wJY6LDPeGhvBF7Ys6wkHqTR8lQVqTSSqtYmSOmwJJUSKccavdhzeCoCKLJQ0MLjA1inWumBtu/GmEqzBrCKbrGawZWgzUafAYAFFMGiA5psMtIulu78Ca6qqEVigAo+etLI0UczY8gVFLgDWw8cnaNBuKrZ0sUkIdOP4xAjyPsMnYAyP/y0UCFCcEggMbmrgJt0huC10tZtoEELVKKeSyhfPpLIjBy34LZQVz6TkggskMNC41CGkYEuqetrS+CaoCI0ly3pzqbTmL1kBgjSnuPAw2Dam4IIFp1g6ggpcnqDCE1A8imWsYtMelA02RKB6CCcsl/ibp39RaZYt3C2JJI8+E0HsHNji/POsBFJt6GyqoILhJAxtKcvhv/xtKnSjEsH5LUVjhRW4sIAtSNCFLjAgdKHLHsYsNSfxPWOBlUoF3jbmLP5xRBrMYAUAT1GtAnZhBCRo0+kiYCw61elllWLGFybHqgpaUCOniAArWIGLZJHghl24oZpQISkIjk98KORaqv9Y9cKNBOIzuAgE3LrwuRy2iQE85FqkVoUxrt3pVxF4SxEzEghRnCKJHWQiARlQQChwy07cSiGeVFWprjFjixuJlDRwRsAuDDB0KXgcouI3RStaEVkggKNGKPEZnFmrgC7oQh5LZ8dfEQuNqpKUJN8oyIywghnSqGHPPKimGw5tUhs7ox8xVkmNtCp9PxvgHbMmKY2Jco09rFkpL2KDZ7BCGutT5Q2pJL81biyFqrKALWe5kVFYQRoWAFgO7UgCVvZRUuKLpJ1YQcyNRMN/JbCWmgy3iU1ULWtaG58vIyDLamKkFqyYgTZJV7o0NXNgVKKcpX5YTnMqJBqHmEG1dKf/JjK6wGl9DGWknkG5Z9TTngmRwiiE4M8C1hFbPUTjwL4wg4oeFKEHOYQUJAHCuOFwKhvjmp5MxbKKYlQjUphBC0jwuUS64AvInAT0pKBRhc6gpDMI5EkxYoNRcNSDtnjpM4TwgiG84AVUoMJRbyqnGVx0pwRhBQiyuSbddSF5QtDBIFQhCDQIogyOGIIkKupUqF7ECjNYlC008AT32aIErciCIOaKhg1sdQgVxdJTzRoHtD6BBLZwE5oYYIFWrGAQguCqIByhgxdUlKAgqBVfDVKLGTyBam9KnAWysIINbGCug9DBEKjQwAeyIhqTNUg0mDECqd1osCXo7Gc3oIpB/5RBCjZ4LJ1s4IzUFsR2I9gEmhZJ2Cx4dra2pUJKHzi+yN7AtwO5pJqOMFypREC2tE1sYx+bp2dY4QYXKIZv0RmB0G3zTV84hQqOq1hHkHYGk7LoDWJQgA2kdoan6MIRqJuCIzAgvdgVhF0d4dgGfkESzzgEGMgAAAI0ggpmxa0NvqC7/vaXAVSSLQU2sAhVuHdOqhrrD8AQAwYDwAGqMCpGF2rLEpBgdFRTVGe72lVV6OAG3IUVCEZcYgD4GAMmwIEPdCCEas6gFSqAqQVENzo3QWEE2K1rbQtM0Cfb4AeHuICJAWCALgPABB3wwQpcUeQt2kAS7luBBQJRgvdpwP+barIAFKJs1+3OCVYzsAInsrxlADzAAJE4wAEAgIEONGIFrciX8276hBVUjwMlkIZKE9fP/87Zs2jY8JTzaosnJHjPPX6AqEUdaEEPmtBB9kEWFG0zG8DV0V3yhCSk8YwhZIHSarKFCmSLhgt4VRCOLQEU2AqCQ3CCxFsWtQGOYepmRCLQBvAxmH2wgTLrS28rWEGPTADmJ0gDekxYwZu9mYq4DuKzAh7EIJiQ1vdJQgrOOHaoRw3oZ9s7EvUW9I87gIMNZOFZI6DeakyAAQygWgU2OIQVpFCMu3myFTrQahmYgFQpiPWyI5jBIX7Aifn6md5dPobIn92MktsbAIL/jjYGHFCEMryASCrlUoU6gHJTA4BmV/6BIlzBphDqaAMUCDoadOAKVzyBbkKQAsePreWPdxnQIheDGCJhcnsfw94G0LcJKDCIl9vHBlAIwYmMUXAMmFrfjbCB0vesiFb0nARQkEQWgk6BLHQvjy0YhbE5wXcgmPjPIRe5yEtOeGdH4uqHH7nKcZCFMjxHqvaSOdnNfoABWH4Ag8bBDGjKdzAIYQS2AGEqZiCEiesgC++j2+b3znciMHjUohY8yStw78M/e+SJzzqhIeD40NhuT1+bQAcof/niY74DJRgF539wAyFI6XTPUOpRh9AKx41A70vn+w1eP2rBj7zktFeA/9WvPnIFyH7QDghNSocn84JX3vjF/7IQor/3H1Dh83BPxRCYUIUyDKIVIfAEGpd9rcd9sRd1VFdyEkB7ied9UScG3jdoEJAYetICmjEBBCdoEgB/xXcAJiAEM/ACYMB3nGB/HaV/ZdB/brACKiAJekeCJFgFBvgAskdyzbAE4idyy9ZlNOiAxwBoDTYIcHFmI2BYwmd2lreBlscCl8cCTigBg7YCR3UDYLB0P3BTozcKYHADN8BYQoB9MLhnSeB0P7hsuEd4Dfh0+LaDO6iD0TaBWEF6nOUDHUBwKCcBeCgBV8CETDgATsgCUAgAG3BURAAGI8h3hzAKeKWFhlgGQ/9wA2sXhq5Hb4B3DBBYe2UYePhWhj7YZQQgCERxZo1Gh8NXc8UnAWlwBSKwhGzAAm/ABoM2iEcFBqxXgltIhVtYBsq1cWF4CEDgY38WjIIHgZZIfsv2Zw4Ycmz4dACABkLxDEe2I0eIcgMgAc2Ah1cwAGnwimngh2+wCt/4BgMAAILABIrAhbQIg1hmiI1IiwRYgjLIZctmCvRIgxAodTr4gz4IgW1oAD3oZQXwEmfWCjJXhzVXeYJ2jXu4jSyQBg35jeD4BizQDBRgjkSAi9n3AyNGhTdQBenYixfgZ/54DPSojyKnABWgAOZ3j8R4DOanjwZgCt73dAXQeyshBZz/1SMGJ2iXh4fVuIGu2IpB+QYQCY4sUJPmyI4aqWC4qAiHQAQuB4m8CI8iWYYPQIxTFwkomYNaeQyxJ3VTZ5JSBwqC12A22RFC0Ag4QHBmp4Q/mYfXKAIikAatyAZ2SZSrAI6rwAIAoAMUdwNEUAVbVVs3JgW02IVloFWq4HJgoAgxMGr0KJNgKXXip5KUKXIPYAr2SIxddpk66GOq0BLF4AA7qYF5aI2ndgAlJ5ciwAJs4JBs8AbIkJfgeABcpwoQ4AA+dmoOcFuHcAgvoApoUAA192UAIAH4Ro+U2QmUWZlayZxe6ZWZCZbepwBiAApg+XQX0BKLQAA7mYfF1wyp/9kMFVCeIpAMUYCXtLmeUCgBJwYBnkV3Q0BTwHkBEHCfFAABBUAAgBaTykmZYtAJChAAkwmBkGkKAOqAYhAABFqWzrgSLxADNeeWftiHpgZo5VmeVxAFGZCeeekEhmAIq4AMs5kGDrABonVUSqVcUiAFL1AGN5BUSfWiFMBlEGgKzAmWljmM+ZiZlhigxWgAzRl+U2cAcNgRZcBgB+CTPtmBB7CGKomSFbAGURAFI+oETpABhoAMWIAFhnAFPkYABQABFOBVOjBxVFAGi+B/W5VpEMCfkRCgBSqnlqiZkWmnQtoJAbCjlqgACZChL2kAAbkSbqCb70ehTtpl9hYA5f+5BsnwqIWQAMkAosgwBVMQBVdQcqfmY2SqCi8wCARAAKaojYZApGKgAHoaAJ3QCT/6o9QpBggqoNYpdVepAMmQAAmwp/w4qB2xAaL6ftrYh5bXjfp2eNapAJEqqclQAbiaDBkwBQJgqcvqAIJgW4pwVEygChcQcY7QraqQn/u5bDqao3qKj0KqANgZpXMqeFcJCpCgkgmAqmLwALzKETV6nBLghMYnArFpjSEndQEgqYWwrMyaDIxgqV1qCFEgAgVwphQHBi3KBBSQYlQABtK3fzpQAMumlZYJlvX4o1Eap3N6ozgasAMaADJAoAZAACsxCiF5nNqYBjKrhCJwBYb/IALOJqQBmqth8KjMmgAf8AFT8AhdOgVOkAyREKoE4AAFMKYUcAEUUAD2qZ9NWwC6GaUnu6qrGpkBOqC5ap1am6OwKnWQgKsVELCQAAkQyLIdcQNowGBKKJHiOABXkAZa6gQiILKnGrCP+qflGamMgAWWWqmMkAwK4GVLy7T3KapZJ2jbaAhOoKsMyqDMiaD0KKCUq6urKgMyUKABUAiO+qcJEKk/yLYcUQVNt4Hb+I3dyAIbKqJRYKpei6uSKqkfwAjRKgBYIABrkAAFYFvmqAhQWa1nqpjfGq6TqZIECquxeqzwuryrOpnMKalrsAYZMLBrYH4r6whI+qbUOABE/ymRLFCzGcClTlBysxqwYQC0tzq6jHCwlhqtsVsAjqAI1/oCN1AG1WqOTNC//esIFEAAD3id0YujARqwBKqnq6qqYNkJCLqgyVC9oJsBa1ABEAgAQsgRL9AGuxmz4DgArBkFTmC01viDC5oAYcAIQXurBmupuButU/ABChCmYjqmvRaqDaa0v2qGriq9smqdk+unuip1zKmnhcAI1fsBFRynXfagGzEEbYCEw7qN3aiKRImlONtls/sB7JsAVBoFLjwFyPC+CRAJOSymZBrAu6macokBbdAIcNwG/Fmn/zmrcuqn5WnHXTu6ZrAGH8C7ltllR6oRUHyHS+iKq0CXV//wjdAauzqLq2EQtCp8qx+QARnwvgIgAI7csFOYv9XqCImpVV1FASzIJiPQAlkgx//qkqcKtie7p3psxGEQBoWQyR9Aez8IABTQEa4QxZVHl3gZvm+wjauABefLsSh8u0IbBbX7qMkQtAKQAYbbsEZ1VGVAmGWQzVqFWEVANxjmKHJXBA4AdZZIoCIbxF0LsF5cCKCbyYarvUbaEVmAA1Icvnr5jbPJpVOwrAAbBmbwAQ2gwuysrAarwowQBR8QbTnsAGksqj720IQGJCFgC47CMnLXCCYAAHGKnQjMoB17rAFbvcmgu4bwtWVYrxnhBhm9pMNalOtJoshwBSnJoAj/EMnvq8SFQMtAq8Tvq8IJEKaKG3Q4DADNEAWGgAUDUGht0y70UwKS0AqNgAEGMKAn+7V6e8AB0MdH/Qglnati4IkdUQQZuAR+SMx5CdMwbcwiwKBhUNNB+9YfEMkr/MxBWwhGWgb3e242ps2DgAbe2wErcDemnDwlsDwrYHA/GrDxOpmTq9iGMAVY0L7ZSQCKwBHi7GMSULNOCJGVigVpjbdnm8xr0NN0HbSRbAZmwM5hIAa8h63npl0RF3ECBgF2NwKS4y6RIzSpUARS7ZKjy9gnnKtevLtH69VSF21niRFifYcb6pD4zKWePaKezQLJwKCSygjPKtBwLclxzcXR/xaqDoAD+QnREI0DiCYljiI5A6QoVZIFGR0JP5uSYNsJtFsIf9ylR1vd1GkA3LsRGI1yS1Czi0ybW4rWXRoFt8qglXywj6DCyqzEyvy+t6rQAFAA+fmrzXAFIPoGJpBtT3A37K01VbIC750GFUzVqYqr1TsFcAAH+7wGhQAJnSADmvkAOmDZK52vixyOZ92lJFq0CR4At8uhl/zWVHrJ7zsFB20AQ5fNiEWY52afVst43fPhP+MrrlNuGU2euerRXsvOf9ziWEDBaxAAkMC580oAGawR//3LrliU0I0F0g0Hj9C7Ow2/PT3kuPsIj5DJAsAITJ7NTEBjoRVxiOVZrf/QAt/TPv1kR1WSCu6t0ZGqqnzrxY6Ku3BgzFHQuwiAAGqrmeTIEW1gAu8HzGf945mO6i6uwv58u+/bAAGduy3+CLP+CFMwaKJq4Rfg0OV93radChwVeiHUOpJA4geQBgmu4n6szAKQ6U6w6QK9ADLeCQ9AAIuA47/M2Qbu2V2KBXCgBWMO17DeALnL5y2e6bsr5k6gb7r+q3O5Ck4AAId2PCMAPpKzKFgOZaQuAckQqey8Bv8s63AgAMVdCKhtBigrA9Xe3xrB2yydBrS57T/u7VoAB8/+AWbw6raOybQu5lhAtMZMALSlAxuABqHVpvoZ3mLmPk9gLSFuAWoVAqT/LgIDPbrV+8K669mG4Kh+zAgxzrmmQADJfRGRDpTa3tncnu4V/+wqDOvQquQC0PHnLuazSY6h1VWDwFg6IGCeVdsjcHSJgzzJgyXWogKkPgAVbPA87eeZDAdjHMEZ0Oe5OuNBL88ZjYfoOaJpHefNrgxaUPFK3tNRH61woAZT3+3ovu4+NqbeC9EmIGZuJ0HuQ++KUgKoMDwdsKTsbN9J7ucdrwZ/ngHNPgUwbp3VjqS6uYTqWamViu5d2uKAr8L/zAh8XvstrgyHn+mXin6LCwAiYL0CMAAdzoLtUi2JAjCtAwUt0Ao4cJybf7uvT+ePsAy4T7SQjQUIrqqaidIY/6EIurmBsfmNTgDTkE3nr+/3WhD4QUvunz/1U0+0DPtZUPtZwpnyGd0BnpA4oMfe2QQQtlClGtGiCIYDFQp9eAQHCxY4EeFoiYilIRxDGRKI4WjgQhyQIUWOBKmIDAAJaa5EceJkFTKYyLCokQhnGaFlWKYw+vChwaOGNGvCEfpQRIENgihQEDRIxyBBGyhAAJAGw4QTGp6MGCipoC0otmydMJHQ58WIj5bBUeYwopZHAjIUAgVJjAFBJPWKLEPGwJIBb1oaWlVYJsSHb7VQnDLlAyOgaYdGpPnwUZRmAApMJUAAwGcAB9I4HNCBQ4gUDEasHiFWLNmEZtYIiDxRGf8himyVxZ2yphAkuwY27CUOxO8BCW9YFjb0UObaxFoI4TbU26cAOEAh6m47NEPmAhcKfJaQQQAWLcsWLzvg6UQIDbZSpYLSurUnhAogFQrj0+ZbZZZRpjsBBFjjAzMgAUUBB6ggTi9VPJOAhSsEIywmZNSDQyabcKNIAJ4a+EmiAUskii01pgAADak2SCoqCArwLIObtnjDtPcYAGu1+kLoAKEEAthvoWWKVG+x3OAQ4AMBzAigEAQKiSSvB0dyQ8LAXCrMMPQIcQgiZRYjZDdGGPkJrQG1KJGmtlSEYKkNVHFKBx2UKuCAm3DCwBMOTmMAFdeeOKGD0ICTrZAAGDr/EkklQRSgAUgQMCOMABQAoMqR2kAopTfeMAwmiNTLCSI1btuCMRFHDKrEttRgE44prgAAh6kccAAAEz47wBDpphtggj5RU02sEQY9oBlQOikEUUMbWC+uDMxbMgFIhAQOkgoKwBSkLG49YAA2WGDB05dClW5U3XqFVcRHXHWV1QFJVFICzWIMbYA0VsHCSEK22AIZY2o4LQUNhn2Cgw4OWAISGfYLwIzfzDhzyccEWBa4uoArJAECto0jC0K/HbfTl/TtEKfEipwOt50aEECNduEd0N2ImoFAKhaVEk9GAK5Az99lBvBA4BDgU2EEFTwpK5K6wkhwUkMZAuoRlxlZ/8PaSIFTwAAKti3ix28HEDtfUIs8tyYxvdjikSnYJZFVmtCKIrw3BaGTTlU2oCpD6bYgZBUMPJigh/cEnQChCq79gD8nhUSAIZexU5KRjQOoVIG70Nh2BRMQEltsFkw2W8OHtpPOC5xAvCjeVieLKArNKCjA1lxBG2Dffv399wAMuACWA09+lCCBBCRd3IwEA0DA6WUeyeBAm4o0cFnMDSCACUw3yBU5EcYV3aHbKAJTt36nE2CndoliXeYBk9HsAgeaGeAKJxL7sl8v8kd9Fd498MDzARzIJw1AHsQYBgmJLWN6tEnPWiLCiAoYAABdq9IGwNaMNGQQGf95CJK0sP+ddPVtGS2rTVtM1DoBEOACF2DRUmJ0q9CkQQRTqJG/ppOTNLzhME4oRAN6QrHi0UAGQnzcI55WCEaspUDnEUAyMqODCnYOOSzIV+ncorIklWgx/tLCFKLQk4Y0ZE3qo4kA6sWiu0GlVs2oQAIYoYa+5U93ftsCFpIRhv5QbFIB6AQNEPDH/pjhj2b4gHnWwAi5FEgEkXAA9ojjBhxsLzAvOQyJcCORUoVJd1oAUU9GFJGZmVAZNHHCARwQIwKYoHahwWAyEhCGM3RoC3KU4xbgwIgFIC+XCCrEpP4YKadNCnkNQCSIHNIYQ6yhGdraixWyUAQceC4NGOJQh3KTyQH/6c5LLXtM+tjiOhEQYDMEOFYaDLFB6d1RYg3JnZcmsphHMEKQCKhWGIyHvDAsC3nAWd4C4iIAQ0hvDWuI1jJJUotbsKIELfDBj/A1TXSO7pJDWYwcP8iT/pRpRO/6JjIIMBUKsEgqqAyNCFw5zCSeClYDcIKSktGZY3TCck9CUD6vhUBmIZCJtKFJBpJB0HCOxAog+MIXnjEDSWShDQAIzENGt6iamFALavMbrCblNARJTETYxMIEb6YKHZThKXmTHUqChIAzMERMcAgdHJwQiQLElQAGUEACeok8xw2RnkKqixlyUiCbCCANFahAJC4lEhuUYD4WOGoJXOGDskxz/19GOhJlBqSy8i1mCvzB4x/v2YBMqiEDsZudAzyDAdu9gXiwNMNE/KaF+lFEVpohQCRmg8iedJYGu/1ls9BVJGSkQQHH6BhiS4AKKFjAAjNgrhCy0IjIPgez0ElX7mwIos4q76phYIRu3FovAjSjGSKgH4dGeEcE+LCGXtqXFpBxAF2lIQM+/AACBQkcGTSsYQxLrxILtIxVpMGwEDAufZCr3BIwdwauKIIDDGBOs0nng2/TJBe96EpA+rIQGRBjV1e4ATS0UDwwFIET0PuTvm2hO2V0gghKmgxe7rOA/JTBH2vsLIwcchnIkMABPgISK9hACCOYz4FToeAZCGEFjf9wgGjau7L/aDGOtnQMorSLR7tKDgsHgMDN4kTWRnQZB1WJQjIkZqoxdcch55lCBtfwygJKqoCUQoC1/tiAImGBoHD4DjPjYIUZlEDQgRbLYhMcaIPkSgJ8y2xEBBQm/NkQC4ygMz7rHICXtcUJsfNW2D43zQzg0VmZVbNEsNBJYS4Pjz9cluUgYc/+5mTPaQCAKkByiEAjOdDzmY+gFVuCLGyvpemRsKPVlM1Zom4388wnPVFQxIis4n2eCQ1yBmAyLDhhDf2ZSP4mKpS0UGx5y1sIk3y4LHsC0wwNMZB5KkBgkDxDEr72NXMVy2sLCFoImjqACCabJw1Jmap+i2f/MO2Jgk4gYAGlgsMBCgCBqKhCFYJQygsB0AxtByAMCxj1a9sCQodQjdm9RGKZ3owAP77SPwbKCAGgCBIqtGAE9Tkyc48qCXznuwQ+QIgIBKAyLi6GVdPRphrk2VkEdCLhoB1Qtm4WYr2VFge2OsAb3jypBXwAjjYc3ZdmIqIPZHQ2LkOQkPA4qZ9kxAnN+DFIhtAK+DwhFYy9uRDunYoS5HsFhFpCBk7mIXidTpuP+MAflae89D4iTCoKDzkHIK5VGKIlTpDJXCiFvA9owV9q01BFtvNPQxhiiUu6atYI2YA3j3YkM1jBCVKT3KMiVRI4X+wXLNCCpYrm5zU8tlRz/ydHOBTes4NkujIyIE7ZURs0oWHBOZ3AiLMOU20W7TwoK/IliWSA0r70LKUSAFeSCAE+BcO7gn1tgbmjXxI8R87PiX4qLUJ686hTkiB3+2yJnWFAV3AAUjYAFYkbqanDAJZyJe3yiWSrJTVxNEdzoJzwrzVAnl/iDwWogOIaiRdoBQ3YQAaouRmwAElQLguwPUHjHJQYtn6RsDBJE8FTmw8qPBR4tuUpPv7bjNKyFYQ4AB2sulUwMcRDHhFamVNRk7VwoP8oQixIJn3ij0IYrsMiiVFoARVIgRQggVSIPZzLO+UyKgtQAUIpD8XTvCH0oF7RHfqjNASQwTBwlgERgf/+owAY+hb6WQmXmIJsiwI+QgFuC5oD6BK/wY0ibMDo+ZJo+YA1MEAxAIAY2ItnaAUVyAr5ODRBw7sRfAblagVCGQC/SzEvQRIP+T0XJDxYm8EjMSOk6LIui6v+c4BcuTYnyAA+Up7HAAAHwABDgANCoCqcMLV/M8KHcII0CBIxeIBFJA4hEJSCsQWdC7S8MyrbSwXYEIE1UI9Zei0yBMVZ8pKwU7UzUxNTvABqIwBbWb5vKYwMSLpOkIEEcJ8my5BcVMBRcaro2Y4kvIIAEAMyaLsHaYEnSMby8zXbs70ROJyUwI5I86AwkTDN0x9bioJ5urPFgAP+gwA06IzQmBD/ymsMjVTCNOyEMLBAproJ/WFI9iodeUQMZLgCAyiARfCYGYC7ENgEKEgwQXuGZ7A9KDgBhDAn15Kj6Tg2MfGbkfSCLoLBZwMtNQmnp0MDF+IZ0Kg6ZKA0hHu2ADCAZIieOJIjLJCA8XKJ58ACmOAfB7A1jwGJEQiBE1ANfCPBVFiB/7k2AYA0F0SSFbyN6RhKQii4GEQr23iE9zGt/lNFVeqAVlwFq0k6FPCjJ0Ek9fg9nBiADZgdezkAzxAnB8CBshwJSTgarhiIuUuFsfgRAtSXFBvCm/CgORrJUyGgNFS4iJSA/qOKZrgCcRkZTwEVjKC0TkC4GouUBOqV6Wi4/8wczjjIQAY4ThIAFA3Aj2+pIlzcPNyIznZKsaG0JRhMr/SAAwDoMjg8rYsUDJfIIZmgnACIwT6igb1ct9HZMuLMzJfUANRAywl4y3yhpGUQylqaI/hThqGUo2VgBM9yFtkygYerNvjSQRZwgk5hqYdYEjxCvMSUM8wDke8YhPb0mLc7AU+YgAkwhtEEy0oSQ4Y0w/yRyEeYPryMJ+Q5AyTpqrhiqgHQFRoSQtw4tcWxswiVszq7NAWgoAutkhnIgkiSJpnAENyxrgRkyCnow+r0NiVxmlEjBBe9kysojWjaICxYBQEon5xwDBvzI1hDHhpIR8uJBH380UeituakpP9yqRFQZEiSTED8DEVP6hu/jKtmWAUWuEwAkIk0OAAWcMcuFb7hG77dEqJOOAbNQdMq0QEYiiGZ4JLSTNL56086Us1b8gkJGy08XYXSSBiYONBvyZBJOzgUCAA/GiT72y1TEAM/Y1TiWAQAOAYDkID6UdAM+LdKnb4kHVES1Z//1Lpzgc0uE40D6ABQlTYAwIAPtVF64idJyaU03C0Z4IhXhVW9QAO/iIQcSoNmsNXJ6hVLTTY5DcpKzUukxIl6QSUMIMwBQAb+gdE3yFIbpRTE+6MFGLdprdYCeDls3YsLAI3AhACMQ6e+eb9Lzc9PfEeGjAs4oggC4E6K2wDxCK//DMKX5niDXYnKwosUz5qnPaqzTiAAC/1X4nCEkSDYNAhXnCDDSq3Gn8xK4JuCd4IDcboZR3CEMnAEIFiEGFBTA4AvEwhUeZpW3hq+WKwUACgDky1LApSu9TAbIayl6DSSXiVKxbBZCLgAQXAEJqiCMthZIGDKVJQrCRCAV4Q1/EsQdFS6ezSARW3aChrVf8NKs7lUomug0lRNNVGTR4hYri2DKgDbsHUEQWDKqUCljSW9X3KaSIlB8+wEBbhAuSWOGPiL5migQCS2T/xDnOjcXU0PljmlwBVc03WEiQuxC7C4K9DSbTS8x51KhOuEu2Dayt0LVTiJvguVoaCshAwf/08UwpctEmVwgoe7AFUI27AFW0eACtWNkQIoi1V4ngS5lhpTut1MRxmoSiq5XZIwjgeoAPOwH+yLKk+MsIPtVSSZmwuggOStAiYw3TKYuMNN3Nk5gOl9yGtBz8Q8VBSQAbj1Xr1IAjJ4AFBYg+agR5OUCAGxiaglOtzo1Rt6g4djCuUNWybg2ahwoS5rsjdQwupFABkwz0NFz04wAHgTYJG4AL8AhQwIvcRQ4O0oQsz6SQim1C1Yhgw43g244PjVYBZB3NmpirmYqYa5v//dTURlJBUeiYA9hgDIACM1SfKlLOAMSrVhWPoTgS67gB7G4Pjd2cMNMQpYXdNqBt+AEv+GSUwZULr+HVMFMNMmFolFIINjEF9kgOElouL/iJ5FQVKZ9ZJmAClBWN4w3tkkSAIynor7fR7+yK/8Uro2HqJqCQA5nmOQYOFjUIBcbY4NApUYnmGVORLhJTqGhAObeZPkFdzBLVwgSORFQFx7EQHigQSlqzMxwF5IrtZjuFYVruNjSIBzApXDQAwGpqxFKc3yIdeGk1hWJlyxTYJYbt/VhYD4CUYh6YQEsBQDoF0hyi8xIC5MBokYAIAHEIFhBlFQBpO10FyFXBnhPeUDIGQmUAQiIALC5dlYDjEytmYDaAYFsJYAECcCOAYxGKI2pl3KbeJyNoAKKBeTLGZzkVrVQFzm6EzYHJ5nVS4DReho5n1laY4KEEMDexkupWvVxjuGY0iWhgnnhRZg4zBnEYgCSlpn+7FiJMmTnzzN38vhFXmTQfhaIlCEC35l+h3piu1mpbNWcDRoSeZlArDdJiZgAHgwcyqdmEAMnAbEdwbOxrSoFVmhQRDce25lsaW4iUWDpM7lNhaD/jOAmFI6RCUusmxiFp7VCpiN0NvrJVKL5ikSNUBmURFsQGyAKSCAkQ7qju5ofK4CngUC+l2ERVhdGXmAmDIFU+gMuMZs7L0LAojbCw0IACH5BAkIAFoALCsAFwB2AKsAAAj/ALUIHEiwoMGDCBMabMJQocOHECNKnDjxVhNKGDGK2iiKkrRbFEOKHEnyIENKGzUa+fTJSEcjGUvKnEmzIK6LolyKYjkmh88xPZEIhVmzqFGJt6RR+hQUic8dUGtAnbojBwxpuHAd3cpVIC6UTMcIRTIGapAgE6Tu6FEjSA0eY4zILdW17sxARsgCRcLSadQJgN2yrdGjxw64SORSsss4JIyePp8+jVojLWAOHHpwOHFiQg+fSug2Hv3QxsqeU2uoXs3WE2DAbXtw9uQpMw8NMLSS3m3QhtJPOaYG4eIhrWrAHTx0IO4Zc23MmXtA0c27OqulwdsS91D8dYfkGDBw/+fimXbm6DVO+KrOHu9T7dzjD0/uQXz97lzIp2VbWIMN9rzhBdwObU0QH3cGKscdfcXFNwEXHbjmiWx2ALhbKSsFd9Z28h343XjI5fedfrWpYCFplGS4w3AHepBffB8iWBly342YFgcnjrbUJ0iYBRh5Z01AmyecFckZB7RNUCOCtbmSI2OB5MTUESGcUOUJm4WgwhMtSFJCCalAIaYkT6zAQYzKEfmkXTZEmZNctsQZJwMq2JJKCb7UEcGefEbgCxQacKCkch1MYOKaXQWC0kZGwABDnKg4aoEveVLaJzN8lmCLBp5AmNwE7SDKlRxuMuroqRZM6suXedZRBzMgMP8jawR1lKCCoDV2cIKoW8mBoUeUOIqKLTCkmkqqvnxB6RcRwGoDCLH6+URnNK7A61alfIFRKah0CwMUMKRy7KTKMtsstOgy48sIIbj23QS7XlsUCDCUIk0gX4iJChSopOovsszKii606qISqCfLwStvUTN8Eci9FvALKRST+pvsnrAODG0dBiP5WrwLzzTDw01IY8Gwj+5LqcXmakxwBKnc6hpgIIdckhWsYIVLBCcP268FX3xhQQlAY5wxwbLGfEKSnlhrs0y1yGFDVhHYQgIDExvLqtEDy1qH0kM2/TTUrJQdiAUpYMlBCBpgPawt3VJMaR1I62nBE0g+5/TYJB3/YgMzXzAQQgjQnXCECy6QoIIGGgze9giptKpsCSMsPaSTfJckhQ1QuCAnAxqkkALWj4I+uJYqtDOCJKkqm8oKSXIQauYkSQFCKiQ0ztngo9cLsy2ga0BC5KnYYcekMMMO2N60i8QKCIBiWRvjbUMRQSDMWBA6Zhq0AwXRy8Y88+zNO3+7LSosvuUTdaYSMOUjpL+lJHfqWYcQKtB2QgvlO/88zyQYwQiewL4njMACzWJGrcR1p1bZrw6SgJ0nNFCH/lHEBjZ4HggsEEAGeDCAqDCX1yhFQoEpsA52YJwKEPgfC0akDhm0QQSgQAJbjABrcYLCF0zoJzxZKoEKpJwO/5VVQRdCBINWsIEvrGa1EQBveL5IoJ9WpidZWXGBddghz4wIEVbYwAr0ipPnPIi4ovUpaCLsk5/8BAM+cfEhXmRFIB5FgsR50IMwUBafltUnV1UKgUuM4hshAgI5wgAViHOB6UKANQaMgFk/5JOyVpZAZTFjkA+xghzkcDJbII4Bm2DcJuJEgiii8ZRovNisvtBCTCYkaqzIFyLtSAIS9CsC5hJasph1yiga7ZKuVEjZrJA9q3muhnIDIuCChqk97XKNsJJDMB1ihSRagJS1tIW/MJbAPPVxihZ4VSun+Uob4A54ibNlpMyFS1wGrZ1fqIMvxAUC6pBTmCW4WuhCN/86rFUMWRfDZa2+VMR7wjGfoNyE6FKwCQbYEpDkChoJS1CHGYDAoF2swwhqqUg8wiBZzMBFFMsmhZKWdAYzKMFFMeqQQ8xABXW8IxnzCCshvOAFN6ACFaRAhRdQYQYFZWlC5CEFIdRSpm6bVAmEoANVCEIQG9iAOAaRB6AKFY522CgZHbqv75XAFapwqiDQgAanotQaV32INSRxtQ/aQm55kkQWwjqIsOqgDCgdZ1oPYoM6oE8DKuDqR6PoiqhGVRCDKAMTrDEDve61ICAoARQW1zYPvtUXgXDFCjbwVFUklgqsmAErHpsQO0gCFblbaApqGM4sbEAVnEWsDl5gA9H/yoO0B9Eo1lywidONDoEqOKwgVAGEQTDhpza4A24NUgcGHEEDCiWcZkKAilJo9rXDFcRsGWuNHyh3uQJhRXOPIDrCYYYHKYBCIFSwWeEOwqcolQInDgFeebDCFyQ4AnlDkILTaQAVvmivYQXhiBdYowR2kMIPiKAI3FZTDl9wAXkXyl+GoqIErjUsBRBr4BnYwRqHqAIaHPHY2uYMBkqY8EKPsIlRRtCwaHjtexkrCRATgQwxGERaZyAEIdzLFimusOhCqQEovC6qFCArYhVBBTu0wBp6AEMMAEAACgwBo1LIgysIGIgIoMKDoqMekYe2WQokGQ2IZcIMUvGEGUR5/8oAAIADILABHQSTFVQQgmZXoALsSYKyYl7cJlDRjhWswMwUuEBZ1SyJFtjgEFKOs6Sp3IYiqCILQnChFNZaJumtAASBsAOgqedBDdiiHSrQAYzTjD9J2OAHUiZDnB9ggAMcIM4mwIEPspCFGdAOBDxWgfRqxAFm1DYLJxAlkT1oAbmWIbHiYMINpPACV/SaFbC+gKwfQGsD8OLbtgaACTrggxW4gn8hS+KfV7C075gAAybwRB3wnIcVqFB+oMvdCcqc5MTyWgVUOASsY0AGbnM7DnFQAMJ5sYRbw5vcK8gC5hB1CGvYAW9J6gAGABCeA+BAtIeQwhCywL5NyK+yI/9oQRYgYGZB4G8FQgAxJ2JtcAMgHOGgAAW4Gx5neJugCHXOkRUY2wLYufvdGJDAACQgbknI4RB30EMZSC5AxW20liWQKxPKUIws8HkGCp45wWv+gJvn/Oa8sPUBDGAAXOOAAqrIQ3X8NoM/++A7G7/1AQbA96VjQAWP/sEPblCGLdtSTKT0xQxu+oI88DrmP+DEHW5ccAOU3ewKyLwClrCEby8hDgyP8wEwQAAICKIMoxn6msuEsHcDQO197zsAVmADKeiBEz9QxJadaGR+kUASQhiCIsRRjIiD3btiz4XByWHzOIAi8xWoAOcRrvA4dJ4XCHc4Dl5rF1YcOH6d6YD/65Ue+9gDwAczoMLtOaGHF7SgBZALEw1HIARxVEEcgigC5DkheT2gQfkGh3nRx3lLUAGgt3DYB3qcF24OQAFcsWkl0ALC1noYsHflV34SIAE4YAc7tX56wAQCpFSpIAmSMAM3cIJlUAZgsH6S9wOOsG0PQA6XB31LIAEiUIAJeHNod308VwA6VhObNgMtUCaC8m4WeIFskAYDoIQZiAM2tYKRN3h6xjpfIgkfBgZYqAg3EHn8x38/UAWyZnm0dnMKUAEicIYDmIDfhoCdB3rYBwAQQBNB6GQTKH6vd4FpwAZ6qAt8yIQOUAZD8AIr2IU3kAessypWaA03gIVVwIJd/+iC28Z2OliGZygC0nd9OniAmdh2BCAIMrFpdNhuJiBpR8h3bKALepiKerh0BVAGioBTYIB8sMZYCCYEeWANWHgDiuCI/Od/BLB85BCMCZcACSACyZCGa5iJcdB8zQcABVASFvdyFHgASpeBElCD5JcGLMACp6iHLHAFB1AA4qAIREAEWMiFsNZkQ/hhiwgGu9iFhDhlwBiMOUeJZih9C6eM+mgABKAKIkEFeVB0PtB6cUZ+Gbh0aZCQS5gGVxAFe3iKV7AEragI5GiOjphlBJRgRBBl7wiPP5AEAHBwwUgO9RgAZVgBZdiGCYd9OaiDNsd2D3ABIlF8RqdxAHCQfP+XgTd4BZXIkHnIh7qQhywgAg6gA0zwAkTQjlyIe1kmBGBne3qwkfDICTcWkrQmgzlHDjR4fckICvuIcAbAfJb3jBThCEWAAxqXdxLAcNZYgyJgg1cQl1HAkNx4ipZgCbpwBQAgCEyghVgYi7j3A3qgBzdgYFJwCFFGBEuJe0BglSNJkiTZCSfJCwrwbQrglWSImWAZlswXBw9AAGhAEcWAA0ZIfjVYgKhpidFXAQ15BQzZkHepC3jJAgdAAUe5iDfAYIpQBRTJeDt1CJC2kUtJBDFAazFIDnEAmTkXAAlQAd9GmSa5jPqojJZHADI5EWhAADd5kNfIeWZYiSKQBlH/cAVDKQINGQVRAAh3uZ4S4INNRQEFEGelV2dMMARDMG1gIAW6qAdcqAcgeXlZiZw51wkBUKCZx3AGKIkJp4lkeHP8GIcSUQVTdgBLkAbVqHRLUIk8GX3JwJPHaIZRYAhOoJ6WQKID8JZXwHQO4ADaSWVzRp9HOQQbUAXt2JgxmHOgQJI4WqA8GgCSWZkvCXrVp4Og4JzYx3YEMBFAIGsAsIQLOQDf+Y1L6J3ZkAzNKQLo6QSGcJeA0KVYoJ5OQJQbUAYvMARbB1sXAAGmhwYvwAQFAAFoAAQXAAA4R4/P56MKYJIF2gmgwKeY2Xzf5pU2V4/RV5m8wI/YKWvUaIoJ/ykBrskCCcl5mtec0ZcBlmoIXSqiliAAX2oJImAADnABnqVYgWimTDAIEKAKOiAOOEV4F0AAlheMfKoABEqMBoqjZ6eDvICSvOCVOZeGBwoAJBYRMaCdRxiUDBmeVxCUnbcEZUiMxJgM2ZABU+AETpABApCtWCCbUZAMZ3hrVEYABVAAF5BkdHZ6OPUC4pCdN9oJBMqczGmlPoqruOp8mnd2oMCczZl5AbCM1/kQqgBne5cGQMkCJ5oNy6oLnEeZzwetyZAM6ImejMAIApAO6VCiUbAE4rphUAUBBUAAIDuuFACyBEAGIAsADOuuPAqtCRAAOCqZz+enyxmdzjeMx//YnC5rAP/qEGUAZ0qXkGngBAw5nleAlyKwhpmXAN4qsVFgjFGQART7pYYQBQcAATowBIcJnDxVmOLwWqKKBq8KAIV6mQNaoPuaeQNKoGRrryZJtvVYhmTLpzobEW4woXwHtE6gC9tIniM6lN9WAfqaDBmQDej5sMlAsdnapRlLZQWABoPAqj6VUy9AYFVQUjcwVRDgbc7nru/asi6rsgZ6mdAXfQmgcANKjM9aAaVrAGT5EEwAZ3cLqQQblw05ok27mkobrYdruNkwsYwwBViABRkwnubJdJO2ouUaVo7gCM+mCgXgbXnaozzapz2KutELrbT6soXQsoVQCBWQDbz/4IwRMQiKupBAqQtOIJcjmr6WmKfQGgYfMLGF+wHxywjB6wRUO2dwNwiOoAoX8LFvigYmK3oHYJ4V0KfvyqOcC7oPWwG1yrI4Sg4/WggPmwFXcKit6xDFIGt324eymZdX4ARc+o0oyaOFQL/y2631OwXA6wTJoLOAeJhWoLW6GKfE9b/ayZPOaqAL7K4ygAAPXKXNybIJILPM2b2CmwEJCqEAK2s1mAZ3mYeW8I08GQUlir+A27LEiMICwAhRgMK/G8bH6IzkugGJVZ+KwASOqwhgUKZl4Lxsd7ota8QFur3Qqrosm6d6nA3ZUAgBcMLZ4JwAsLMK4QbauYSQmpdR/2Ct2WCtVgwIhmCJpUuM3Vu/vnvJjNANE3uMcTkA4Bqub7oBG7YBaDay2Ee9tkqrfEqgkKCvSmu4D1u6Bqq0fZwA2SAAyaBwrBsRbTCKfOeadHmXIiybJRrJDBsAhgu1jPABhXDJ3fDME+uc1olmjlBXaBADaZqdAHCaSxDI/KqvKInAoKu6tUzB0VrCdVzJFJvLnpmkEBEDG8d351uisbmeJXoFKJmnFSy4mEy/9KvJGfDCF6BYvznDUqAIZZVkacqikpq9eZqj7pqjqGzL22u4trrKnVAIYWAGHyAASnyZnxkRZBDPBMulJm3SXeqp1+u7AsDCUzCxz6zJvhsFCv8gro37uEfZpo5rXEywdRvgAHFMvZyro6cbBrr7sHZ8mQTaCQgACYWQrQLQsqDwmcPqEA5wk3ebt7rQpVytnl5qCfisANE6sS8d0x+gyd2QrVPwtMT4rZ8srnSmpma2ARCwzZS51H4qq3zqyq7cvT7KuTwKCdnQAB6tutXpgA9RAEmX1VBcol3N1fcLuNsbv9CMyRPb0oYQ0BXAuhcwXIMwCGigpnBKALzwlhIQtFdQugQKCvw4riZrcwEQffCaDN2Ltgisr2bACLDACLZ6qAawARCh2MfKpYDwpcHrpViQDrCQDdBK2d3QALDg0v6sydn6AZt9ATRqe8AJBmrsv2n/+rHb7KwRTQ4A0Ab7ZmhFEJ8HwAvvWghV+terXAgcnQ0WG9Woy9pMrBDxSX5LiJeP/aVearHD+7CXjAWc+tLL7M+MUKW5LK6iqgMUqQiOUFY87dOwGgedgAJ8CgA4sDYM0AJCoHJFcNW76td4CtjuXbHCewXbm3m//c5xtgTyLJv/DeDBiwWF67suDdUv7c8oTL9W6q1tJ2njKggsh2jxubnvygsYICQhsDrGo2dnKbbyGr3uGwaMYLFYUAHb+8cKMLcPAbt3i5fEfePGDQjpIADz+8zpMAUtHcY+PrEf0LIPimaqcM0BjLJLEJdOIABXkHlM7aNxgAEdwAHV8yW1/7gCOLDNgCvWCdC92ZDcaa7RxBgGrI3YDqHY/A3FxFyiZl7ckt7j8Rvdao3gPt4NH2AGLpsLaMDGg0mYEz5WoQ3eBYi2nSADJlne5aYBI4AKdvAlKSUEbjCKB5DFZmAGFbsMwmvL0Mra7uwQbbDYCdnpnh686WDmwTsFhqvbzw0LhL3gfJwN8evPX26dZqxYz4Zmd3Wmr9qrfUoDCIAANV0EJMcl72eFwG4HKzCKBSjfHwALy5DmgzvwhcDaGZwQYt7Y9NzVAA7qyr3M8HvZbt7Fx37W/4zqxIiSNUjkcCrXiRaf7O2u8C7vBEDvTyAEjXbvRoZgEWQC/V4I3VDfg//LCDOfywYQmg/RmEfY2P+N5sEb8AEPC6n+zCxssQ1AvxttBhHfDeKeAJ9ZAGb2v29KASibgWkgokvw1yiAACZJAOXmCiRoPKbVaMWTCq7gAxgwAIMLC2mO4DMvANu7yw8BkgYg41Ls2FyNl3p5AGlQ3Gnuu90wBW0uAHxcCJAQBohfv4gPCgQwCEOwU1QwBINAAaLssSRuiavM9QHAjxSwAlwS9nZwJ6HfbAxwAiawhNjq0dLq0Rlg4NLHCwePEBu8zQPAhyiNlwfQAelzJgNgCdee4OlQ3CLqz2Gg0fR79EaN3+euAzogCJ2dWGWganW9BEXM1AiQAM64Aevz+Qz/xECoIGynnwbJALxYkNkZ8NRY8KGwDxFLagASIJtsEJu6MAAA0AHtUAqlAAMpMAFpDxDp0glgNEXAFCxYMjD60JBhw27dzJj5UKiCiCUANBIosAHCBQoXCjgAkCZZoQAIwogAAGGFqxaShLSIKammBUkafGAYkEaAQCxOBDQUICBZMowFtCxl2pQpEDIGJKQxBAiQpQEAcLQr1YQSjCM8JvBMt0zgFIMHGa1t2PZDxG4NCxngWMBuAQgUCCzpaQlQQgEZPkyscKCAjydCJNmxY1OSJFQkJKvwBKCngGVmsQgwJNDQFREiDhBA49S0FlVRpxoyFGWACRURpEkrBUNJ/4geXDCkKZsObdqijOAOZwQLVjdGCRwMYvJiCJNBFDZQgEDyQBosAgXE/ZAMgAkfL2MybpwqFZQRDDRUHmAJs+aE6bAkuJJMAS8HpU83vUAGwJIoorhCgg6gCIQSab6AwZYjQvCkA7Iy22wo4YaLyLh0YNGuu5YoUOVDNC4QZBAdBlGFggIAcCK7zT5IoKUVNFBBhZrsKOHGVFDR4IQJrgNEIPmy8yybMALoJA4CBtmPKXFiIMCAJa4Y0BMLSvnCCCVcgAGVEXbs4DosluFmoIciEq4BDGFRQ5k1gZzCiShEkAAABwqgDgcI7CLJECFhEaACAopY4Yl22pmxncfMM/9vhBMg9KsssyD1LYMAjASFAB2WXKoK//5b4gAffKnNBVJtkcS8J1TYaYAfMwMkg2weequbBhpIRw2BcNVQPpY0AgAvCgCQQAInnEij1czkcwKA8NpBBQpUGFBhhBGgOC8VRr/8K9myuFnm1Q9AQQkUAzbQFLVOD9DKgi9cUIIBF2yx9tQWnvDBBAksCXOZFt/6QAAMcwVyGWWUCcoBVXQoQwdBpAupAAL+wy4dbsZMxxAJTDiBRvMgg+IxaLlsVAI+M8usYu0SCMAMSAKowAAINHUjYo1wgOILEtRL4Qh5UznVphVwOECXfYPczjhljNNQGSDTYRoLQ36VTpDpRlz/+ESIWaDYW80G6ICDaVFRlDEobCFBBQ46mIoRMbkhxNt0uimkEDNQCqOQF/U77QKaTWjHAp1DOCEFElAx9UZJVOVp3zEBmQI5DYUsGNemtZtClzkdyEtPAkzQCLuKK05WFww8WUEFW3o2z3ANOMBAAhEK+UBMQsxqoKKKWg4gAd4JWJJvDEwYVIUUQjBeRgYYUL3ee1ndWr6ijvbTOFwpb/NidQHgKC8ADugJkJ+WIeTtt7cYnxssDphg43YKR+X9dtbD94oEIOnG5KHqNiOAMCDR/cUL7KcYBMBAB1bAAQ6EoHgakNGhWtCxJzSKVZl5WzoA4YQpBGxXAiuYfJYA/4FBlKEMDdvAdKqjEWLRrmKEYMcWWqgLE3jiBCfYRLxSpwIe8aQCRkKAGTRUFLxVhHe7K8R9knSa1ASvA19rR5dk1MARnMpnT1hBBwZANEJsoXFoMc4UmqYGMOKKaQK4ggOko4qqDYJEOjAhACyxNfNtwYVbAEQBERgC5VELhxCSwBWMJINKfQBNDehGUWB1kiKSCwJlMM0FHICB4E2gHVBQAQNDICNCJcoOLajiVML0NrMc5CcZBBKbKCefWznhCgM4gOYo4ABYxpIAEviR27LowhYuo4CeSGAKpKWeHEqgApCQgQx0ZwZawcJkZjHEUAIACgBQwDRFIOB3VpC4FP9o4JLTGkELoviYFqhAaNi5JSGYZpAMNW1yHWSaMqaQkV9BAAL/uUIzE2KyOGaRHS0khNd4qUAGMpADEzDBAJaQEgQgoBOQ6KEZEPAWkw0kIh9gCQRU0RQ0QIwAPnDFCQAaAhU84X2ps5bPVAUAotGudqis3Jo6WLlokoiEG0BDniK2BBGsSHzjwyU7CEG6CXDAozIy1EBNcICD6g4UnZBBQs2gsgwIAAtrCQxrdGGYpqgiBg5owwpOgMATMHBGJBiBChjwLFT5wDKAUKnFlOabpU1OIE9rSQkpQIER6aBEVEMRANg6vlvucwvLSAMGJvDPGeFwLBJYgsqM1ImF7u7/qWEIQzYycNmiGMISqlyCUpbSpM51YAITqAFIKxlQDVTLDmktyb4AazEgaQiMBWNT08gogVZ+hAC73a0JdnuAT5pPn/us3QAwwIXDfpUDnlhsfeZWKf/tjrJh6CHAiqKsKFykJZ/t1He+Ji1LMvCbUrRXSbbGU4uB8Va0pa3TmraseEIASjklWnxOdsuetpAbhcWAB5DLBQ9AcgBXMEMY9heAlumOumHohoZ+VJbAJCMACgggaiI2gIxx9AnanGFqqTUCsVGSPQmxpQvNckqnmVK9TEtHFAqgikGQUDoXcKRGDiCBn7gtv3IcLL/SYFwBp0HIUXBoyxDA0GIWk6EB/2CbVOOjix0iaSlo8FUbNqCDFuxohilQAQlSNQJFtWNV2VGGjtkxJspJDkguLVgGCEABNKABrwm72nRQlK+dypGf5pOPmL7lFxYZohD+SzICaFDMQ1cqANmABWB+AogoXEpJWvAPBiCwAUHowKt3zOaMwFyCRbkOOwRboflMWblbsZm2U7hCbiFAgFg6YLefs+8ctZjFP7M1SGGaagIMjeiEEjO6AZAdZgaSjaKIwACenZkDfNAGi6rCB574pwK5nIobgVoFPUqpLW8J2zXPlr1t1p6dUnSAK7BAF14MUrsDS4h0jG8ZuhjwrrFwBQMgmAYLnUiRoOs/ut1vGYZIQP8hMtBZRyylCFZuw5tVAYEl8pIDPUggmM1TAkp+adRl1qIczYnquY47HTGdjp3zBLHuLYGWTsjGFMy8BflUDBBzkoCQsCCB3RoAFE2lSKVUttSWheEDFRNANuZmAGlq4QWOUEUbNDId74qWtBwgnNhyNALXTbCt3JAjbL2o6nEroE7AwgsaRoRG6swyDVHIgBrclsu/lOWqKJVQBn5VgHwHIAOILBICJryyMCRr77zwrNLd0HCN9JVOS0RuDcL64RGEIMBpOFmp9fxxLChN3CI3xBIIkCdfwXrW3XNcM2Hx9hYKREKiuUJ8bs4RBxigAnSj7EQcS2wzlOXeyTCA3sr/EAOU/0ojJjgqJD0w9Us6CEID+CQ3yhzYFjLtOMlUQ1xpC4tWFgAkIomYBHRhT/decArKGC5sgyIlJwTJEOqKmAJ4NzcDF7xSc2OEAJwwAEA1hQkxiAEAeCF87dkNejO+0ZqA5Zsgt3G+Utun6DsOQqqViKg+l0qGAmgYvBIEQbiAk6OZPsKCC8oAWGAhwSIYg4mCBIiC+hOAv7AE3DIABaAulTCwu1GZHkK2bFCAByg8LVAE4Oue0YsYXbCKH4MkAdOFRymziuE4PWPAMRmOWXmLBjgDWLC7kdBAmjEjkyMJv5iCKGiAisGlW+MG+yuKDbKKKMC9hFKJfgsDx5ob/wWIAzJopBTRHgLInqGxCkDQhSDUFz6JD/J7m4IpH8EytQYQjsGYiImAnKTxvBPyFe3xlSvKDidIBjNogPFhQAZcKbOIFCyYgmzIhgJLQ6GrCLxBMEgoBGiKAdNwgzmUNTusJzy0Cvn4kfg4H+dDwhbCRLOAhYZAROqaiA+ABRGoEwhAgw34kFcSlnUDkoTIBkgwA1vCRMHiGtHhl6LoRdszOKMromeSgThQRdMohv4TPtjzlKlIgzdCJckxnwRcoUtkwC1ImokKxTREgG6IJjvBtLvCAeKTNV+hJUAARTM4g+GSxq4THRZDJYKAlcvauwMDBWjajybRCIjJgha4F/9HPBYPjA+BKLG3cccdGxOGKDDq6gQUQAF7VABYAz2+wDAMGDsH8Jy/cIIPEDq3yy9MlLfKsbmEsApYYQSUiIMHAMfTGEcHwAFfSAUO8BwbYwGrSAgh0bGDBCzoI650eIgi6YSl6gQEkMLcSpHdOkp/7B5P6kQiYTDxwUl4XCmQ642LgRVUNIA4XJJiIAMCwAEfsIBtExb/y4C/YJHsyLOPDJ0sKkif4oa4kEGFMslOaAARsIu7OsYP8Qh8qS9A6MMp+IAAQIEFEB9plEZQsjeWAgxnJIdcOJcy6I828AFVsSJWcoILAkzVwy9QCh2uw0lC4EXFhCwUCIAGSAaOuCv/efJH7/MLJ6C5N8rMX7REtcTEwQIKqDQLq2CNGySDuZSZAljNIliV77EnjsyzqSRMnpJGbrgdhzrJTqABGrCVVhIJsjSo7BE9y3gjLEiG6TIDfjHMQRQu+GCRWcwGuTwXplAFWesAHPiS73nKpgGsOTofW2RQg1SDxEQAFFBPe2QEjqCxu6KOvNBAiDkAv+ANhXCou6GoeFNL81kGZQISzkiIDOAFAiBKAW064vOcAeiLvwzMnXo3BiWf8STPuCmwCj3JBWCEX6Gxk4tJGxsAzcqKfAkKRpiufxETFB25ArDLiDGABzCAuxNQ06CA4LGMGz2WpwzMEvM4nhIuqizI/65ThqGgUBRIzwVoAJV0JO+5URZgASHLChtDRw8UjNo7veYkBCdgCkVgAi8VUDcwAUiSgBsNwhxlnMvr0TX9UXjkBl70u/SkgUpctjyRtc6hGV+5Dnozwj8lEnv0wjMFpSvQwUQV0BiAJDHVw6tQUApCU287nz4bLjAcE+U0NE7thu2pDpq5MarYlvQBABbQF4VwkR6CCzSxndspBFd9VU1JRmHBMEcd02H5pErlqfGxoMBawuiLi3oUOjp5tWHpnom5TKD4DnScySgohOlKw34rMEi4FGu1VgpoA1kzI2ryrFlyrUrlMX0CQ3LdAliwzzA4SQRgBEYkCc0pqDSYk/+S+IsDKKinDAwYTCgaSCg2BNZOyAVB2FeTNQ1VIICU2lEH7VHz8SmPg8dl2DuECgNYWALNiRgcKAKKPQB+zNbvYL6nhBUYVE8Z6AQE81hQeICYOVmn1QIcuFg4+tY0bVCc3IIpkLCUYLAKyFkCGYsrKqAO6J6smCUL0pdf3bcKtVD/UShyqNan9dIVoNiyeC3A2lFbEy5yzaUMoFfq6oauVVcTWD7S6QBGvaLvuALCIhmC8Fj1NFpjKqYjuc64fVUEZSuVKsyPZFA1tVTBgoVsQKhuELsT4keewBxhORYYcoCp0Ih6EoyEqtCEkoGPPTTI6r3KfdUi4Al9qVu3MRn/qk3A2rnaq1ywD1AA7aMxkQg+R/w8jSKJJaBOh6pH/zm0oyWXks1dAeVZH5GUSDkZSGmbaqRSnOSGKaAu/jEAB7iADSARRwACIEAjTIszGrsL6wjCvkUov0PJX5MBRdJeAXW6SGRGjnRL2hHfthHBnsrND3CqZbsAVSgDcagCCq4CcRCHMnAEQQiRJI2YYzGEDKAu9TQyBJDcfCWA7AXg09ABfNHIwITKpjmZzGin8H1Z5zRfzQyDZaMA5lAEH6ZgJrhgpqPfT+2+vxA0USxayVWAX1Hh/QDT7ylg1UuWZaKtTcyzz4S5ZEioHe7hQ1WEKghicXCEQZiO+h0JILxM/1T1u9ilXcjqhP+rMCduiv67orhrmsCkGEmZq8oDVx5jwGWI0gDYYVUQBzA+VCYQYzLe4JriHGHZrGygXkSLU8gCBV5o2jlmigLwHqLBY5ZymmUimNkUXo9bYN3sYkP2YTC+YCFGIw5G4/9wDwGYXmA9SRpAgSQDBbhVYTJYgnjlyU+mmE0cGHfEr3wysaNQ3wsYhCpQ5VW+4AwGgg2mDruYtSu4TM1MCWJ63CSTAeTN5KbYCzsG5hiGm8pJYHCFUJ8SgCh4YGZ2ZkVg5TFWo4bx0Go+gGJxxpSQ3G4upktJOHC+AHrqw78M5vAdGPFN05YVrHTQhSMdhAtWBCL4Yf9WLgMTUQX61cAePJb8LeGjpV1Eg4ROIAA5dmI0iIoo6UOoXOns2JWIoiBvM1gIHSxLOFJHoGAimGgLludFphrlLQAnGRpKeWNiSjL1jEu9cWKBlr0g7EkPjFSAQWiTsbyCFSxCmAJ3nmCJ/mEJFuL4VYVp9lCSEIHQBTrI6ma/iwPcnePfAwDZ++W/iMW4HhhIkTcd82P8EiwscOdm9mGdxmBHCOz3lWYz3kAFCEqITOyPNiZy2eW4BYL+M4Args2NhMqqgGGpTuiq5TEwxIKH7uu/lucxhl+wFs48iYqfI4elfZKlitN9IwffyeRxrICGbKaDsG3OiJ5oDV/b9DMyFaoYbagdAfgVNEhlVWaCCgbicQjsGLsAOfNQAogDcnmAByADNCCAB4BIyKJuxz6XgAAAIfkECQgAWgAsIQAcAHkApgAACP8AtQgcSLCgwYMIEx7E1YSSKFEOH9IRZcQIRIUYM2rcyLGjRlwgHdKZ+NDIJ5MT6VDC5bGly5cwDeKiJPLTyE+fxuTYaRPnSGkxgwodWpChQyNIxiBBsnNHjac7ckTNMcamKJZEs2r9eMpk0oqfmDoNwqVskCA10O44Mmbl1rdwCYKAoXMn1bpjg0zgMoHs2Ro7digx8iWu4ay1cIkSGziwVKc1JkSe0OOp5LSAcxyBcbgzzG0zP0mdDPhp5ckTONTgwFo12qc8XHie3TH0aL17a/SoPGGvBw9lJ3jicIJDb081eKSgzTyjNFGix3L5fbZ3WQ/GfgMXzsGTd9M9eDT/H3+woZHbZIFzSY8dg7H3fL0LH949snjy+LU8Px/4bNngQWD3XnbG8NXbcfR154kG+Y0nTSB0RJfWdGZNR2B2v/E13XbzyXdCg82xEgh0Yk24HXsZFmjdfx10cCB3rYBImzSnUDLSGCnwwNuBngi34ou9deBBiy4eF4KMs9EYkREwuPAKAyGccMIKVKpgpQZUSqngBES2GJ8nIyDZ2Uw0UQQDDLak+QoUUCBSwhdwxlkCIlCoEIJxRBrjoncximkYmTQxicqgg74Z5xcRJAoCCMw888UIIfTY5Z4r+PnnTIF8ceagFqDi5qFfnHIKM6QyE8EziDxxgidcdDnBCTNY/xoXK6AFYsGZZ3b6KZwWIBoBM4suyswXUETKJZFcHCkrXLTSiKYtMHiKyLRfWGBtosAGu+gXiGjAaqstTlDpsm9ZsQ0IX6CSpi2oWICItdX2iq22i6KqQndldcBXn+RqtQ0rzHSqLrQwWAsvnNhmu+ipUGiAb6tceDJuv1mxwqjAaeYaba++/kqvqYgwgC+RE2RBsVYABwLDK+yikqunHHtML6MRWKDBqsd24IMQJxNlgw2nwHAEDyGkwIAL0BIaKraJRkBzBOne3OOBO/c8lBQgWDB0a0Uj7QLS7SJ6SsKmQo2Kw/L15oPVQ9nwDCpfu6BBCCHwwLItDGigAQMj2P8ib6nPPBOBJHemLTHbQrHyNpqD4p0Cy6g8QTcPrIXAACqBZz64t4ZPjPhLbqvLAAl46+0CKukykLdyemsARQmGQv2Egj16wu/nLtmQNZTEnaCCBq9YIKoFtrzyCgnuosLmp1BD0d2BK7SAO0ys2BCB3Hr/zoAtiIK8yd4GS2voozjvOz31rERQ/JPaw9A9M4iMMLfr07opOLezv8jz+S4BDAMJxnMSyxAVrGpBYQRQkEScmhYBRKhAPp74EP9yRzykkYAEDHgF6hRWM4MJjmmJ6pZ3OOA6VkywJTYY2AWf5LfuLayDiBJco5omibmpAHVfsMEJPZJCW1wwgyRA3dj/msYrCzSNVAwMWQu/UIJn7LAjrPiCD38IvIIREVSnYiCcpiWvrDnxiRx5mw/zVjTVXQ6LUAMVnJooRQsMCwRgDKO6MGjGEZDAjhxTox7NZsQIxFGOaXIBANmVxivqMU7PQCIB/7iRZ6zLFkhj1/tMhSgaReAUh4LdB7HFyI2UAAoBBBsOtQgCTEqjelL4GQhmMINEAquTG5GE445whAyeEWEIa4EQqMBLKkhBCmCgQiu/wAwdwjIjiMBgjnigHFpq0GDVasEQBjGPDcwDDTooQzEkUQJmmPCYGZmBHZ2UAloyQAlpmqOnJJGFLMyjmhR4pw6GYINtgFMjM2gBCZSg/wRaukAJBdtimqblznlQ06A6YAIV7hlLITxBdUdIgdGeKVA3UWkD1jRoGRbK0I3kU36qS8HepGUt1EliBdXcABoMyoRDdHQjNvik6p4EOU7NyQInxSgaMDqIlr5UI4prwQiMN1BCoQJ2EShBQd+pUXT8VCPPEMIIbBlERAxqWiWQxjNWgFGmDqIMTn2qQqzwDEnIT2/bY5ct2lQCt2FUpe/8qh7EmpBt2GBaqGBAjowWyXWWlatoCKw1y+BSui7kFBe0owaIphzVPaEFLSiBEFaw051u4KtSMKxBWIGLU7xCAyJdLAd2wxoeqOAJX2hBEVS6gUU0VbNyYYU0vvAkif8yc7Q94EAINDACSTyjFSsogmAvW4a5wlYLTAyErZTAgE3Y9k4c4MEtQdACjFLAsoNwRGY1K4V8fkG5qHjF9/TGTGYaDRFw+i1Xr3tdg4LBsFKggiRaAIXvSlGvEs0v6zS4xla0IgvXDaxBb+CMn/7MGvNtxRNU8F0LTJW8esvv48IWgVYIoQzZZcILpIAOMPxCEYu4pxSsUQJUtEAFVKKSfU/cuhbzYBPb8xQqqOQGClxgpdm8wQ+IQIYYlKGTboPCglHcmuKgIhD5XIHe6ibhifrNXZJg5zrWQYF23uAXPAZAAQz6xEV98mbFOQGXyuKdI/+1xWgmKscs8IxsluH/zcWgApbJAAAAEKAARTDZ+awxAzo5bC/gwgAGTBAuWwTCBtYoRhZ+h+YMsutd1XoGFW5A6SpUQQpzrrMB7OyAdWzgx2xjpSSegDYuGAMDBxC0BA4AgEF3QAWntMINFE3q1sF4dE9+lySG8AJFiMMRLzjEDxRB5wfEwQAGiMMBCNDpeeyPXDaYwXxVIGYhnRoDAzjAALa9agCYYAWx/sULiqHgRgfRXTjddRUUYWkw/OAHVSADGR6A7DiIQQGs9jYONuAIWT1jBnhbgQ+4JGhBb/vgCG/1CaSBaWf8ogpCaMWDNaACR4tvBpOm9A30wIkfjKPYBniAKewdhzj84QCs/3ZAlZEUbUnUCU8mAIC2EU7zbSs8ENY4BCc4cYMhSPWOU73go+1nDTAYnQi/4MQvkjBvehtg5GIo+R8qcPI6MzvPQyAPOqR94hV4ogOClrkEaj6ANCA81SoIBBXQ8QOl+xyBU7wgCaDgqSYWHQw3IELb9XABkD/d3mLgxR+mPviq67sIOqANn4XQghVUGwMAkMCqD/CHsZP94AfoACJAsPa2cwIMTGD8uxAxxXZZoAUzuHve3w2GGGga2VEPPC8UoABeVID2vBj7qgcNAQp0RrLAHTjY63wAyRfe8mVPQxrecIU3pIEFA/DBM2xABQ/vXNxCkET96AQFa5HgCTPoMP/e9b5jOiP76WJIvwIqwH4FBEABgZe8BJZQdQJQYBBwibjUOmACQRd/1YNnfGOnfG9QgGXnfAOAASvgTdWXdNdHBEPARnTSOBQXfht3A2CgdETgek73AOl3bxUgAuwHCbRXe0twgoXHagQAARugFcVQBMLXf5E3APJXeX9Af38gAsu3bcqnfJYwACxwACogadXnbjundC8gCTNQAhZAd3lDcWuHDodgdL/wA60HAPQmBqZgCul3e7eXAAGQABWQALZHdbeHe3EAAA4AAfMwFOIAg8MndpJ3ghIgggFYh8rHBsvHAstXgEFYBBhXhOjggJyADlTwb5+EQXsjCdagB3r/cAiU1nZXaGxayIXrVwHvlwCaGIIi8Ae8EAe8MHu0B4opBwFCMQgOUGcAcIM4OIc3OHUiWAES0HwsUIBvYAm3+AZsMABFwGtFCAYcd32GOF8jMAIqgHoc9guHoAeRyAnEhoUhJ3IlR3vvFwABwImdWHKhCH+jGIop14YwMQ+pGHnGx37sJwKd+Afrh45R4ARpcAW1aAm4KI9vMAAFsFFGhw564IDO0HFSMAQK1lvWIIW/oAf6uHq/AAQgt4Wx537W+JBimACeqI0lZ28KoI2b5nsw4XqrKH+SNwBXYI6eyH5+4AfoKAJRkJJO0I6GAAiWwAYOUAYvAAb6aJBGd5OG/zgEQ2ANNiCFP4AOiqAIYCAOVVB+AJBsIbeFgFeN1ggJ76cAJAiK6icGAfCBJWcADgATFzCOrFgBVwCPLHAFIiABFTB7FZCSaRAFGZCS7egETmAJgOCSy1YAEFCXBUCXq9VTL/ACGIgOg7hz6AAEg3AD41AFN3ABR1lvT+eB9xaGYuh+3HiRHxh1JAd4xwYAGtkSbkAAdTZ1IXgFzwd9IiiGU/eVbKmSb2kILRmXcZmLNLh7KpdNTMBrGHgIVZiQi+AIhpkE0Ah4sQeKDqmJD3lv8Fdy6UdyoXiVIVcALlEFrkd5OWiSURCabPAGGZABJcl+V5ABKxmPcGkJqrmaLv+ZBiKwgmhQAA5AAHd2f+LABExwA1KgB++mCCt1A4oQA/Tmm1oYByUYhg8ZAJ3gkFVJnArQCZRZkSFHAODYEWWQigdAf5y4BmupkimJjiFYkn4goYYwj5YwBYCABS7ph+WJBmXABBi2ARRQlxk1D8DmYSAGbFVQAE43meqniTb6kA4Zme1XnJQZdSEXYh6hkHV2ghXgB20ZBX6wkisplkZqpGvgB9zpBIDgBNfpBB46BVPglmnwB2oIAWjwVW9GTRSwDjjgAFvGBOLQVRQAAMbpm50QoFQZCwkgp9bYCQBKmQFagsf5m8fGnEFKZw8agm1JpRNKpUiKkiiJpFWKpHP/+gFYGpdWGgVimW/MVgBf+mZloAPzQAGrtakU4AAGAH80aqf/GYZmQKfWKKo1SnsMOZV92hKLAKhLMJZX4ARvwJZPep3YWaRQiqRrgKVTsAZzygjAigVYMAWGIAIAgAaO4AiLUADqaWd0aU2D8FWDkFEXQACT+ZCkCoYBgACxEAaoao3pR6oAyoXpF5ViYAD21xFA4HqhqoNpII/yKJaK+gGM4AeOaaSMUKXYuQb4SqwCYKyG4AQVQAAbsGEd9gJMAASLAAHpWakBZlDzQADJ1phv+qbWiADWGAYIEAYfkKoD+qbuh673JoI+agCZqRFuQGdLIAEpWYDyCAjKd6i6/zqnfpAAv2oIGVCwajkFAoClAzsFlhAFIsALKzgPGmZ0NmmfznoBdEkBFACtnxgHAWqgBiqg3uqfYVCnjUmuH9gJCZCzxWkApsgR0EqOVxCz9Li2vnqdayACGPqkGaqW3KmawCoAQTulflABKmimKyUOM0mQYEAEjoCiBJCDWkiV3GqNNpoAXfu4YMi4AQAJnWAKARoAsRALJEh7BuCnG1EEkDd2t1q0bYuhVwCl+YqSJZkBWMqdRIu3QruhK3mw9+esMRCxdMmiioCBVfBO54lsphCcjguGkCC5kluqqnqjYmCgcQC6GkEBqLZtLACXt2gJhLqSKem6aymWIkCswP8qtHkbtIZanoPwAh2Wd1WAuwVABmZKAYuwUsH7dFqriVobBlCas8LqlI+bfo6bqve2rtCbERCAAZbHAtVLrwULnikJpa/LCFGwBowgALAwBRU8sMc6vgKQARWAlfe3tH55dOu7CClqYxZbAemHuRwrp5sbhpsLsv/6uML6fh8YhiQotu/3uS+AtgDAg3wIlx/KmlNwq7UatIzACGuwBnMQtEJrrIBgCEErAHNgwVOQnZt2ZyxYBr3rl+nrCGiQraGKidYop2EAueIKuXJqBkcMsDkbCyUJhv0ZC2MorJrICwVwAxzhehJgCT88s6xprLiYkkw8BfgqtBhsrFggAIb/AKyMMMVRcLAs+LDpyWks6AiK8AJeHL8FYACU+7FmMKdhcKplnAAfUMofkMRyugZ02phz2srXqACfqwh5HHn0eItS+qFTAAeAbKRUHL5Aa6y6jAWwwMTCPAeOrAAF4Ag3kL4jDAHQqp5RiwYQQAD8WaBlHMphMMovHAumfMqbu7n2W6M3asOf2xF6TK+2bAiIvM5HDAtqkMGNbMxTgMhwUM/GSsENMMVOoKwFMAiCi4FGp74OewExkKIGYIaaWMZm8MlzGq7hagYfsLkRbQYSmsSP2ZgLnQCfHAuvOst/cL3XG5cWbM9TyggNAAewUNINEMUfus64LMX4upZHW2dr//ilgouTRAAEboAGFmt7j5vNkiuusbAGp3rKEpoBFt2fmmsGmhsLAdDRG+F6f7Ca84i3AlDPcPDEGcAIsAAHijwFjQy0uazLLT3PUtzIK1mezpy2nHYB86DFijAIlUXNCmCj2QzUaAzRp6zXHyCuSA3OjhkLCx0LwZoAgTfAGBEDBrAE6gyiM9uhQFvPLgnWWD2wFAy0Vz20imwI2cZqgyZoFNC7YOBrQEDQZMCZ6tl70kwAtOet2HzN2fwBpyqhH2DMH9AASZyzdt3XQ20IwrquWTnLEtDYLgnELS3ZgBDZ9qy3I93VgDwAJjABGgADTFItqKACFvYCkxbQN1AF4//wsHdpY2Gsjma80bIt2yDbzUY9B6cckcLJ0IxgCB/glFjJEe9qALHQ2I4NxPS83HCgBsqgy2ANC7BwrG8gAR1wAkcWCNJACZhULf+DJavFb/9sdC9QBtdEASd8e4551x4eAKHczQDL3nLKfq4dykv8AccZ3BrhCPipAIZA1iAal+tsz8eqt8tNxU6A4AymXJrSJGq1MgyA3UXwzOt5WY6A4RSgUps8e8Ipp2CY0B5eynMQzxG9uRXglNYI0cswB04twBzxcQ+gAGugty59rMcdzMC8DHAwBUv8BgooPEHjArV0NI8EJSqAcS9QBYsQAwWgiszWexswzVPXrWbgsSD/DuKhrNf5nAG2XcpyvOUI8AGGsAyMkAAyIAPPyxEtG6oZYObr3N/BPNZwsAywIM8H4AMawE9P2GKqo4hTMgS+tLCKgGFTi8UQAABfmbMAigAf67GkutAhLsGPDs7eWtT1vAYBIAPAzRF9t9hpoM4YjNXUHuDUjtUNAAuGcACUUTS8ZYwthkC/wwEdgAMs+FXrxpdDwAQ6gKKfetCx8KbZ/Ou+/rGeLNsQPQcN0ACHDuVOHdG7cOpObaD1vRGLQADF146HjAVYbe1sTs/KoAxs3uYHEDEcYDTFWHGjg0BQ0HUdsIbtC81LPgg60O5LHry8UK6+ftf0PundvO/8Luw6/wuwH6AGcPABc/qm5RzVMre2MS7MWG3zWM0N1l7PAR7xcGAJGJAaDBAtBxR0faN9UNAKKpBnlKYIpU1nVreGSw6xB4CJb0oDCCDs9X7oZrDvpYz22XzoIKvvpLAMAuDUyw7mG5GKf6CSQNvVSF/Py8AN1w4HEU8KAZ4GHaAB3PMsqlOMdtTxQqYBPpAF6KsHhSsO14SeuB55PJsAb7ryoVzvY28GC1DbXF3Ba3DXt+3OyiAAZakAscDsO68RdPYHRrrI6lztgB/xRG/0ysANgg8HhH8ClmNGjGYlT/BYLfAEAmemlzUO7TkE7XmiNpaKterUKIACY9/Xn48AC7DQMP+vBjBt+lxdz1zKbMZ2kWebEWAsAbq61QPb8AHu90Qf8YFPCn5P+KnBOhTXOgzQ8ZAFEE9WdMAAoEABAgQKQEAzT4eODQ03QABwJQGCTigQmDETBsHHjR8ajISlBlYDMx8+mGkwBxacNAAwOGjkA0fCeVp07uTJ0w2AAxKuZMiwZs0ULFjgvHwJB44yZU7VKONWFc4AExM48OChwWuKFAxe2UKFqoWKEwQpiKsCBCFQAAQcQKCABkIBACyixArQ6WMYjx8XDB7ZANbhkx8WkGwgIM0BDB08cdCgYoWQnpl3xgAqIQrRNRkMJYXDbdnLqdxIQa1KipuyZVg7cDjBI4X/V69iGTAYoeGEJxMAKFQBc6PtRIQK71bEAiiKnwQBwnAMvLFwgzPclsIRwIiR4aaWJADoMGGyBigzbFjR3BOvBL2WnDgRTRoq1apbCLGu+lqAhPI4COE23LwK4cAQTuCAi4IUQmMQR8qQ0JFBNqCAAggIOOAKS96IYo0EYvHug8AWE6mBqZwSYI7vGljGqWUsgcwELrQKAYoSSphBivZ0KgavAwZg4Y03LPkMEKWeqooQQrZ47bX7YBFPMgG5ItC3EDQYAYoRVPAEgwOW+MOAuBxYiIJ5BrkwIoT+YCOKKBJI4INYLtIopcLU0A6LKVBCYCQY34CsAy488eQEFUaQ/0SSGazhUTM3HACAlyuiuGK++UZzCo5lliSktaiigsMQACfjYKuwNtntlbIQQYUBDkw44AAC6soQAANyVY4CIFl4cw3AoqtugQ/mmEMNNZZygpGVFtuF09gAMCFAr1RIVBIdqXi0JzcImBSSWKKYItMpBNh0mU6ZdFK7TbGYUivarsztFRJ6SwsACQ4owJEXFCljELsOWqgACZJ07oOPpDMDJJXmaCDUpRogzMXSsBhA2kIRfaKFJ1ppAdsZtM3MDTIAiKOCKJwAxBJDnDBEgCSVJIVJUUlzV4JpaQvBNrC82mQTDTiYwIOgMqjAoA0cKoMJJsRxBA27CDBABCemiP/CI+kCACkkhzdFVuLFGtgOCwkiMw/Rj7FtQQiQbcgMCG95gY8NI1WeYtOXqJo52aSSghkQ2U6t0soQOPCEQQwGSCONOWIJw48/yiygLguhRoNXDTPwA2sUNEJgOpLwZrGwM5CFY4oDpj1bg41BLmHRRkeWeokoiARkPktIg3EZqmrmEymn3ohsshNOQDCEGgjCIA1ABKCPxTAMSMjbWWk9EwIIHCBAAiMR7hwBGkBaLFk4lILFYRS5MV3QDiTzJEsVngB5hhkYdbSnC2avtGqX+94UP/VxB2ZJag4LyAMvwXGgBgwaAJKwAIsVNeADnajVPCh0uYNgDy8iGA2fnPD/gb50IiMgYckZNrUUY8GidFC5Cnmo1YpWbEwIOqLfDJ6xLZ1wxgC0q9rdkvKi/vQnKgIQQFOccrMD1qAHS+yB0IwxgNypiIgkQsADCACBpElIHGW43F2oJ4E0OGEOZkBBRr6HgAWUblNFZMSx9KQMQsQmMoWizBOEcEe2MYp+z3AbTy5gMl5EwRKAOOF2nHKfQp7QXZAxhjHMY6rDYSB3iEzMwjqRqzLRBUMU2ICFCuAAE0ggAyTqXOf8Mp28QQUW5UIRf6JFKEOdYGM5WhS2sAWCPm4GVxXIgLk4dUT/icopTVEKzEiFgWk5cgI1ONUEJAkjFp7ET53IBQCAMqvI/80le0BRHMwEgDDw0cBzC5hKVMhXEjWspj8Xo5F5OLCCVsyQfq9bFB/ZsxO8LMEJMCuf7rBAxHYB4mVK8ZsTruDC9hFqAhNgICF5J6rvrASE0ptcwM7kAANU4AqGQMqLYLGwMt6JnCw8orl6pxpuDMBsh6pWK+Y3A0TcUT07cYSG0kAaQDjwn7DgKAEN0cu+CcBqg0poI42RuJt+ipKGcdhKoje5NA1CTZvk1ScJkAanjPF7nVsALEg6zJLcZwvLSMNKEQWFJ8SvBTQswR0lsa0/cs+B9IkCEVmUgQcesWWagplBpdU+E2AATAP4oVKVsRruoLMljFBAXBJyPcph6P8thhjmShCgkcV49avo1NtYy1oelqatBa3A0euE0IIW7CiH+EqD7ZzwGSIyYg2MQE35pgDUl2CBVGUTbOIs8UsscMNJpFiNMkyylJMwywAH0dCs5OLFDeUuuLw73RgF84GwPkW7xnXNFpykUhoZKgQqKK0kTiuJtbVgBUPg0SISYk0JFCkNlSIKUZKkjN+toWpREAEH0zAAAAf4RZwS7rpesyljNcA7a2hsQsw0MApoDyh/YNlNWUhF0Gm2n02Bo3f1IzxjgLYGIXgCInL0uhGkVSCtoIIWfmJNKBoCEFe4FKbu9svyCdUJf0jIAeQb4AaSRj9M6k9x4dCSw7BxCiL/QJpUL4SmiEAAB9r7baeYBTrDTOUMiJkKKbzLDu8CAgMeWGgQzBMCBizKtE/QwAo4UIQhaEFSQWLe7SQgAjipzJflWxmpDhCXvOQ0DRIAo0CVQggwO2nIB46YSdi4XIEJjKqfDE5SX9SdMBBLbFNBFoe9vIVEi5nMC13oiBkAhUUJoRVungAOyqCFkv0hDfKZT39ThqQTTmFlEnAAKDHAPTgAYnEChdkyEA1qMAtRVNI8SeMcMI+JeAsAc9HQHwbgBCygy9idWsYUFDMSZAnzKVRBNphFTeoapLsGxotfWk8wgQ44QAfFkBQYDcFRJwjlDTktH3CFeoBey8qhMTsk/zeaxA6ED/c+JjnJGQzTkqNZU3LZ0560OwOI/hyZJE15kpLKbW4MGMPM6V6i4IyXIB8QhABlmIeGJJDTe792ZbhOJNnkAoA0vAhdprnPMkD9cf0U15xqQBHRUbRkEQD8LnWZR9Pt0msAvAFd0dyUdogMlZ8nnB2xMUaNlFhyQ03GE/BuEIXIsMMijcYQV2AeATfFbyewYNYO1fnUlZF1hCP8U4QQujIOMxKHrcEBT77L5D7Za5dL1+A7jwoQjW1wD4M57+wghCXGXGom1oDUXCCINWPw6rMvIYxJMcQg+R0znTaHoOiC1pM8DHQn7Wc1yYrSSCpQgDQ5AjkZkoDiev9piNb+1jTU3fanvjx55G/BYhjwerrL7AHlTYoAg9DJ2WU9Gue5DElGbE5O+5bt0pjGNJ8SbpP0M/l1sbCcxt3OFHhRJrksBHsarDhQDKFt8hs8jnhPPsK5YQmV6joz4wIuOKrEOQBeMAAK2IlFwJX4ag4Z8z6lWAY+Mb3vS5L+4DYPa5KDSzjDYiH1MySDSjq54KR5kCxvuQIHqoqdew0mUZfj+7hk44blM6pGShzFkYD3QwM/AoAlkIAIzCkhPCIL7KeY0badGzIYzLst4I+FK6dNyQCFeDLD0xDFwbYp6BBsY70gKrAvk8G8iyMKLCvBArA36Js0aCzq4wnO6D3/S7BAAioSCZzA3SGwAiOyF5Q8MLsPPlw4v8uAacMiu6AAaZMLCYOv+9O2IFIX5GtEQgi2QXrDAThDaBkVBZi+ngACMggSKBqk73tDIfy+1hO/L8u/qjgsPRwrnuvDFCmfK/gz5TgTNtmem9odbsPD42vEyYuRK1CcuUMSdBEA6DAAHuyJBqQzUMypN0zGOdy5TtE/ygMV4iIF9DvFPvQ7qFADHtMeM+EVKQuOAZAxJ2AZQhI/Jkk0rdNFJsSCKPgDTgxFLIgcBVBAzSCDB6AUZiQSOYRHAksX/Xi81+i7ctsC4rpG2uMOg6CLpfMiwhIPaSGASawydBmyyFPHySME/wFIut5zoJyKHGsqAM1wLwNoINOzBF/ZRyF0xp17wU+ZRqggLqA7LD4sLvVRg4yERcMDACi6ArmwwpU5QyQ0PzC0SG4QxisASgqcMWtSiPb4I9FbmQ4xw0HaN08Myk8xNvLrQ+HSQ3bou0PqwwxwR+VoriuKsEkEsA6hu/BbQotENgpcgwrYwhcBBKORnh5ZhE0EsDRgAbnTy7Scw2xjyfwjH9boQP8DwXHjQwGolbqYHE26HAfoPWvaNzZgA0B4kX9ykVzUxS8cKz8wAAVgBMzMgCvwgziAgB7RAs5YghwEsv8qkjcYgD8DgFhYSdfgHSf4swOIgtI4RyaUvWt8Df9YmDYHwIGB0Z7BSp3t6RBfiaJvaoBdKLC2RLRkE4B5TIDyYYQ6gYRcSE0tWIQ5AzIgoxUHWAed+Ik1aMGosAQTwIEpAwBA6KyB7DsoUY2oeAMJeC6X+7NpkZUBILQ3YIN9a45YGIwzGEqiNIQK4AU/yIAEgARIoEfvvIALiIHpcTDjLIKeKIYHEAEkQaQ0aB8c6IADIKTDkkH1CRUoYSEsCESFlLIR9U92gqLm/KcMAJ1Pa0QwHLJlcII1iAVImEeQ9E4izYx50EmlyEY4iE1kijolMUz/Q6yTcjQRKIAoezp8YZmkkBEH+IMpeIPg4xNmQRH9QFCC9C6DMw0scAL/BXgAMihSOMUfnPshGHGXYUsK/JDBODokpyAJ51lKapMrgfKhAZCUnDLDnPoglsgPzjykOBo+AeCFN41TSl2tIIsZgjqXZxTKDWSXiGmJORCA0lM6SWktnMEXAEsIlcmXIAMERuAIF2FLhFuGPxOBBY0DAniABxjSSqVUK5SuRGK91nvBMvUu6oqYUDUWRsjNyYmw3jsAwMKXhMgA1AEKFsgpbzODxTA/9AOEuYCqXg3X82QtB0okAoOR8SM/8zOsF2ERZlmDKDCICzEBxYkM5SlUB6AxawqKfYOFleAIyLtIbxVXgl0t7hHFTC2kTQ2iUvTUEVEJQGzWDqjXDjgq/wAzE0P8ouYpigQwAzXwuRik1WIs2F5FA3zZN52CEU19xv5gEmMLwwFzmI4wA0YwAG2i17I6qkwqPMTLUkCYAkNgljnwx4TrUV4lWUrlDChKPdJgPUW0T/3zQjBjPQGQIOpYLgyZM4q6gEWYh0WYP6sCirYzBJXALsgTQ3YEgJxAWkqttzcIwhOqO7vjj/Ert0d0ildFgAAQgymsC6jpWiBwBMEFgkWQrPqLL4GiE23NwH9iBD/ghaNlW++kt5M1veYhuErsOW4L2KJFIUYIgwCAtIZwBHEoXdN1GiBIAru4i0Nc2jUgkUU1CaeKhUvcAMkt0kE4O3sTAO8LVrsbvv+WzcWxWgrtDN2DoIBBYIIqUARFqALTFdx56KLs+SLmMYQ58IjF0Fa91ZrQHdnb7RGSOYC2g8eYgQ1occY0lc6E2xNGiA5IQ14mYN4qcN7nhTYM8SLquYKk8LbACJ+PoIEwSAAFKIBX+94esVBeCEeY48gjUlmoUER02Tv0e0v3NRM0cIT4bV76LV0KOUHDpd6fXYOF+V8SToCjQU0Dbo+aChJPBEyFLQ0kVESg044xCgArmhxHWN7mbZrT/ZforSoJY2G65AiQoAEZkIEASOIKkJ41TGGeKIPESwqai1ttO99nTBdupbw4+qYAMIVpo4AcZt7mPV2nGQSn++BZSYPwe1PchUnij4CEJE4AALBdJ+YJuAmSCLzAforhGBY/qfXA04kFapqcQRAHMd7g5zXjH8bfoEiDKQARkEhiSe4EJFYAFK5jnWg58WVaUUTC4YthGAS60xDkXCiAC15eIphfMhaHQQACMy5cXgnijcqAWPgIJA4AOA4AGfic23METD5Pm5IuhKVDPu7jDaROyoMDEHIQ0lUEIhhjMi4D6C1c+oubZQERSQ6AEOkLvb3EtcXklqMUl7m3eysiIiIibTuMZIEF1mNnbsNi4oKFWDCFK1oEDBZjDUZkaTZjqPngjCKKCgihAFCAge6EvWViIg0IACH5BAkIAFgALBkAHgCPAKQAAAj/ALEIHEiwoMGDCBMqVHjr1sKHECNKnEixokWBt5pQoiRK1MaNTUJeHEmypMmKGTnS8dhRFJ1PMD/RoXSyps2bFm9xFGVk5ctPSHKEgmmkKKUmOJMqXYpFJVAkn0KFyrGjag6oY6AaoeSQqdevFCkBvWoEZo4cNWoE4cIlbY0dZ5Fs7Qq2rl2CuIxMFQo06g61E7h48LC2cI6s0ujeXew1b1CrZ6n2qDGBMpcgEwK3rcFDyZdTjEMr1enX7duqkyd48lSZA4+0HCYEqdGDhwvRuE/qpBM0bZDCPYJb9sClcg0OHE6wrjybAbPc0C3icomk6lrBv9UGGcx9cGsOqym//z0iLbr5iLgo8bY+gftlwYONYXCvenX44DwsnN+vUJr66n8FNlhx8HmAwXzGELdaZp4gNxlnEfAnIUFy+KcXe/Cx1R0GCQ4oYH0NsuYJAxOWeAsm6n1ClVqCEdhdh8StxR2D9k3AgX4l8neLfxzBcAQPqWUmYAdEduBdZtwZKSSDkuTIXxM8UmIEDC64oEEI4DXoQ5ZLssaWkUUuuYIVTp6HCy5QSuMLDDDYYgsJKjwxAhRQSEInA1eecAKXOHTQIQ6AelJCmeadiSYmbLaJyqIlWODLoxFE8MWjFqQChQrKTeCnB0TiMAEOMxAK3S24WIGLNBbAgIqqqaRSwqO+OP/qS6QgTMIMMxFY8IRyOBhjTKeZPSFqbnJYYYU0pyTKZgmMxmqBoxHcKi0zdUARwgma/vmpEMOKVoscFWJiASpuLrqoq47Kesokk4DgLq4ltLCCJ0QO1sEEIdTRbWjRgAtCrraYa0GjjT4ra7Tu2gACvC1kaiSnEwyxb2hySMEKCF+0We65BT87a6QRTKIwtRY0vByYE7gyMWPRWIxJsuTagq6qHn8c7a3uLlzCriffy0GoK99lBSusYPKFEi4EjEoqAlvwRaTT5kztzg4ruULQiw3NDAwp8MBDChpsvDS0N0u7cB112PFECKwBem8rWN8lhw2pMJBCCnueoEHS5ZL/PS2udURQRyqYxrYk3HHXVQvdMY9wpQYMkOACA5SjYkG0ZaOdayoa7OmJp5lxmzhY0YCwqrm2aKABCVCknmcIDFg+6ymR1uGLJFjWOIEPdowOlhWmk0A5niGo4EIqFtiySdfInZACFLJSmgrbC6q2AhO+e1UL0REwsGdyxUPPjAUjDG832LHD+qwKWYqoQ/ZeRUP0KZOrrkGcqPiCK/mQox459OlqBXgygwMfYA9+S7GCDRBVJVswIE62eNXNpheCsJWgVUt7VayeYLgO4OBqCFRKLYDniypVaQRPgEL+EBaBElwqfK1CHqVKoAIfLKkFIRShDZiBCqSRgARPSKHT/xA2tQu6qg4lKIHmbhcCHyxnBfrKIU5qcQgevil9qpoVzvbnC7TVwWy48oW17HMCSbBCiklhBTNSITkXwOAUzyobtSgFrRl8EWTVupYGVBgBxaDxJMBLnguUcIQjuPFykYqV+malRC82qnyWy5gtnvNHmwSyjT/iwRHwZIt0Rc8X0pBG7bpYAju06nJbYwaZKnmSaNhAkC4oZCEZwAMNWG5R0ZOGEm1ANFbY4JczGMGsYGADObCyJjZAheSQxjeDPctyzixBK+wwhBdY85rBlNUZj3kSOUhCeCZ0E9kisCaPWUASrnAFMeaxgXmgoQw6sIMQLmdMbp4kmQzYRAPFOf8r2/kCmrEqgSuyMI91ooEC83CDHXZpT2RKQgNeS8EmKueojiHvWaVcAUHnwVFHOOIFM7BBQx0qvK6d4GuRWxoumZYuIaxgA+3k6CCYIAUpjBSZdvgh5TaxiU1qYBMjiJOrLmoBV7yUox19QTRuahM7XHF4tmDToqw1Alw+S15ILag4XsBUm8wACuXL50StagEoxA6gQoApUokxCEV01aEjEN7wSMAxS6lwUb4QwkaR2ta3noQVdViU5Ejgpo3ZtVy+kJdak+rXkoyQh5ITm7mmqkJXKXaxZeBqY0cCrlOggnKGZdq5UEGnFkgTpjBFwzw+utmLSGGBz8on5ZI2WdL/0qlOdmgFatU609ZW5BAzMJobYWC3ic62sLYorR3skIWXona1bvXtRF7ADHHNknJd+1oKKPeEOLVAEsvV7W7n0VfpRkQKdngZDAi5PB7oCTmu+ZqcUrHcFhB0AxRAg37nIQ7zLsQhNrCDBV4Wy0J27VrBqc12M5iKtGXBFe6M8Dii61+DROMQUkgiKk4hXAYUsr16OikDOjmwgbWwFToYhCOqoIgb6GGpFS6IFaQwA0m0gE7IssDkPny3iK5ubEks5aVeSoEiD+IFq4wxFqwAXDtAobtxQpYDPXyE5Wmgx2MdmPpiKIkiFAEN4khyhaeGQhWoIAQrCEEIpAGCh6pO/6JXvpvqYndKgwW0BDpggiIUoVn/smJnxTvBCuCrpxBgooVnvvIm7Gc/BlTWmc+qwwxuQOkbzENi0k1bK5SznAmYwIOe8MEJMOHLFoRgeYv+qf02wTqiBlSeiiACixdRAGJsNm0twNSnTMBrPx3IBJ7yBDOINoo0x1nVqhsrDOz8LDtIQs9EAIMjCOCAedj0pjZwYStWYMMOmAADBzjAgTAwAHF/egJ1sAGTyxBEnjIackqDdAnsSAUwuHjaAABAEQ54TAXaYQTXYk0HMPDtAwxgAPk+eLkBAGwLqPsHL3CFnJI957ieK4YDUyIYNq6HYhAg3wAggA9AiEZ/5zo2OP/49oEUznKWM5wLDrfCD/TAhBaE9ac8jVzAkHdK+s5g42DQAxBykQsAGCDcAMCBykIY4Ba04lqaUrnCJdDyg7OABQfHwAS6eIhD/IAIEh9BmXPOgKpWShLPgkILRgF0oef7AQaIAy94ke8CbKDPifsqpj43cACEewASkMASlnBwXWB9ACzQhS6yvoJTzEAKh+AEzW+8KBQ+oeytlkSrLtUKKtxg41KYx8cfEIc4gIIXClgCADCAAx1QIW4z2DZ4cHCgfAs+8IFfAu5ZwAarO2HxA+jAgKlAhR9wghMvoLylngDUHy6tVSPYRAgkIQWOS8ENRSd96eXOiyUgHQcbwPT/sKRgVGylvPYHEPwBdC+CweteAonnPe/Z4ASs+4AZNqCCFPRwfD0IQYWVAgXCQ1itIgmO8zyj4HUz9wIxkAtwB3dypwAKgHq8EAcGkHRZIH5lUgyNoCngFm64twTd536DVwFLcAVRcAVsYHhXYA9OMAAYcAL4B3THxwlgIASat3kWB308BQUzoAc/YHxSIA5kAAAPAIHbBwpxMIEi6H0AUGtlUCYv0AjfBgDlJngkKHgVoAAV0IVL0IV+4AdXoAtO8A728A66cAA+MG/1BgY1+AM3sFB1UClVxTSOowEtsH+SB4R6UAZF+ACmYIHbN4EVwAtdWAHtdwAA4AAbwG8S/zIPDpBvJKh7JTgAgyeBsdCFCWCCInAFv2cPZ7h4JzAD+vd5xtd/L2AHc8hGlbcJKkB9/LeHegAGVUAGDmgAppCLpSeBWyiBEth+EqCIjDghTBAD+bZ+IpCMEnAFyZiMW4h6frAGYXgFS5CMusAG75CNi+cDpNh2nOAM/TcDpeRkKKQBT2AHUnCKnHADW/UCi+CAcRCIgfgAoCCBoBAAEhgA+liIuqeIEDAP/OEGHwcAhoiIV8CMCeAHzriFkOAHGeAEGRAF7TeGimeG2/h4egCExgeOnPADYJCKLdBdTyAEP6iO67gITPACe0AApAeIpgCI9YiPvjiTEzh3FkgAAP9pHgx4jAWpkJ3IAszojAmQALGQAfYQkQp5Be9QhqE4AErHBDewfxmZkUF4CFQgBCjUAhhZgzUIBotQBBRAAHGXi2RpCjFZAZtYAfqoAKAACpAggUtIdwXQX9DhCEUoeLyQAAGQAGvgBGxwBQ4ZBRngB7HgBxWwBnMQBVEQhlFQhmYIiouniItYABBAAcRQBkyQklIwBEPQjUDIlf0HBAJpAAbgkmTZlp0QABXgB0M5lL6IemzJhIpombmxCB9XjQqgl3yZARG5Br4pjYXpB1GQjU4QhkZ5ho8JisjplywgAQAAASvgCnk2BIrgjaApeUCQBGRwhGWZi225l625ljP/2YW+WIi8YAAOEIWhUYySKAKaGAt96QSCKZ+DGQtEOQe8CZFOwJTK2Z9n6AQiEHIA4JzgRwwplllBd53YCQTbSZadUJadkJp7yYV6GQD1KIFzN5NLeAAFoJ6LwZ4HUAESiZaI6YJh+JtrYJ+xMAdT8JAQmY3vwJsZIAD9GaMiUAAphgYFYAJPuAE6UAZb9Zlc+XVJwKCm6aASupf2qY8yGZtt+aRPGgcAgAahAYkAMHjRmJC8+Q6CKY27aZ8JMAf4OaMZEKOK6ZACkKbI+Q5XMKWYyQRlsAEF4AAOUJkU4Ag3YJJwCARG2p25GKH6OJRMGgARWqgX2pamZ4EGUACM/5EFVDigIqCYayCYZxiRUSCN0RgLsVANMiqm+bmYgsmbNfqXwmiZZVAGg4AGEBCJT0hTGXkDRPAC8wAEBWCBZQkKpiChCLCXgaqPhRqhUYqopImTi0EMBGACVDcAoVqmxPmQEcmXmloN+ImfUwCKS5kBvjkHaToF1ToFEukABeB3dYcGOlCuWUABEHABZaAIQBADBFAAFwCJcfekfyqhRBmehAqoqQmlbTmWU7oYFLByBweYGdCiLZqf8kmU1bAAK5oBYqqmlcqbYgqKNNqiIkAB1lQGOiqudbpaQKpn4gAEixADCFUAuIiaDxqhrRkL4BkLYUCoMBusSqioBnABi/9hjAOKeIq5n9koAPspn1EwlAurqYiprTUKkQ8rANzaoldAADrwAjV1A0wwCO6ab+9KrlA7i0OwAcTgACeLmrh6j0QJprGwAHr5q4bqnTO7qIsxDwnHe0vJs4/pl2wQtNEqrdqaphBrrQW7tEubAW1aABQwU/r3kUyQBDFQhNT2j+WqWl5br52gAINaoUp6tqDwq7iqtjNLAIvhBjkrAZTqgmY4uu9Qt6y5qR9QDdKaptSgt9a6tHq7tG0qlhfoABSQWZAnBS/gCHtQAGJ5AAQAAWjQoLlaqL2qj7sKnvYooSmbpP1KrHZxAVa4jGVYrQLwDtUKit6qmIcppt47BbD/QA2tS6NLaQ/cqrRK26IVgAZMIA7z4Lu1O7hZO4tM0K6UiQZiGQdJOrnI+7Jh8LIBsKsIQAO/yqTbBwAUcBfG6Ikx2rfm+w57qwvMiJjdgLewIADUcMGuS7HnOwUCUA1XUABMULgvIA4jSwAobHeZ9XkvwASqRQC7OKi9GgZ6ScMBYMO8GgAycLlKupYWSKV2scAw6rf2oLd6y6WsKa1TwKL2IL6tS7HiKwDhi77cGgVLELzzkFn1dgPsegEDuYiVOQ/5JZY8nADJG8D/q6ksmwBhwLI4DKgBoMYWCgoGAMR1EQMG4InWyggePAVOjMHUYKJsvACry7rjC8hRHL5T/zwF8kmaF4jFUBu17huu3Xe1ZKyPbfy/bPy/C8Cwm7qwQykD+ni5ndDJC0CoMiADdazAD6CU1oq95wvIygALS8maCFDBeevEf4zB2yrFGpwBB3ABqVoAuTCs/wiVNUUFTEAMFHABwgvDoICWmvq/1IwAasywZju2u3q5onzKTKoAwXwXZJDHFBux6BvFrcul+rgADXDBTqwG4xvFUtzH2fsOInABL+B59XsBvhtytksMKZmxqlWr+nvDCLDJ1LwAYdDJKzq23hyhNHDGe1kBq2wX4ywCTtDENKqc6AvINBq0AcDOGqzLJO266eyCbQoBl/kCN2BNXUwGYplvddrM8/8wzjxctgyrutXwyQ670ypaoW0pA21ctvZZAQeQwHVxA2QQBwnAujSqtEWMyMpAo4MZxw2QpuFL0ui8wUWMhgiXbzhgmSMctRobroT3ru9brwiw0B/gm5pKyPiJor6pl22JALuaANUwlBaI1F/Rh+MMCR7s0ebLy+KrDK3LCLbcAGrgzoWtBobtxLAAC1NwBcKIA43QCF5WBD6AAw5g2RlYuDdQBsRwAc2MvzDZCXYdBqq7Bgqbt3Ogxgvtq6gdxz9tgTYLFkSQBLnA1Igsz/EMz4H8DqwdAA2gBYstxdSgDMqtDGoAz5IdfCeQQqkgCdRd3ZKwbSvQCDggvJfJBEP/AKdjbHoRigAosNaqa8rSCguvrdo7zaSd8MlgGgB7XRdVIL0GUAEzSg3NLc9SjNzwvMRmvACO/dgDvtzKLQABWgStAAUF6GzLBV7o1ApPsAKsKtPC+8ziHaHl3ckLq9BhwKJzsLAVvKT3uKlmy7AWWtFfYaS8IJyBrcuG/NitOwUuK+Dc4MQGrtwZzAhJtwIqUIc2JnYMbidiJwkzsLtefKXOKbgEwJY8XN5rvdALXcghPuK+GgBD+7863AkGkJNf8Y7rdwUZwAhzkNV/rNVK+78I0ACGzdw5vtxsYAKiVkFzgkKtYGZxEkQhcI6jIAVUMAQ6sAEQQJlhaXr6iALl/00DnNzJ3dANAlDl3aDQW44A1bDQkh6hBuAIYFEFxmiIazDmc9AN6IzjOt66Ffy/3VDgBp7cU93jejMCrVICEF7dTqcpHoRQeZaZOhCvBImaMoACEb3WjN4A3hvq3aDlnaDoUh4GA4zpfM0UREiQ+C2x3RC+A17YJK3emirqOc4NpR58c75HMbRc5P7gK5ByOSuMEIBfG0AAhgjRwI4Apszo3QDpec2yAszhlb7ND3DbXqHbBrAE0ZiNSwy+sADPb/7YIR4G3G7gpPDwymAPSQc+/VOA4FXudjADMwDoGysCzWkCgpsLqKfhnQDlzE7IjS6m9f4BAozGUz7NnQAKuf9gx0zR6auprdhL5qGe1QlPDSFOyLCg3N7+8NzADbswACYwAYLm40+ACjYWkq3QAi0gBFTfCq7AmS3MBGJcAPdLALKdmnYt7Kpb7zvfADsNwOZ93mwc87nw7EpRDNvp6X3LrRkw9pHN6qtODRVc7ULPDaRQ9NwgAEmnJyuQZipQJ08vBFIvCULQChOAAbfuo2+aqqInuYUa9ruq095b7RVMlDes0NIa6QFAwHEw819ezIboBzhvvhlQtqKu6jrO3FXO5kNf9KRADSLgAKJG+LCzNKaE8c5WBJF4gs4J8hSwARfQ7luYr6gN0QvQ6GQPC8ReDWfMyQ2wAGEf89Bb8wD/EAddOPfdugbV4Nh43/c63gDor9yksOpLUABFsAKCpmYaMCfTTd0xRF92MLU6KpaEBxASCBSgAEBEggAIEKBA0EkhggVzGnRrQA3WnA9hIC5YQLGBRgQ0OoEiIA7LSZQpVa5kyTIGAFB+/DCaUlNAzTlzYCnjSYqUMlKECPFUpsYoUFLciFKTgMPHiRMrToTQoGEEFFdPtG5ttcJVGSZMygzaAMFBAQgFD4JE4VDhggYSG8DqhnPB22qwGnxUKEOBqQItBQ9uqYjMAwUJ/GSY8u6dvSk3JapRxm0oty3sthD6SdTz0gFOpYYgrYGErVSoWkCBggpKqwkYAJjAASGL/w6wYymgMVghwG8UDN92hAWLmoA5a2JpXFBtb7duIEc+CEzYOmEguQxA8rPmwxTGkYvnpByU0Bb0Qrl19tyZGrUBHXxInVoadSr8duykgnKiAwAJBrhCAgAcSGuD3QBQLpYFAghOOLjm2omuBqrhiKPnuuGIht9MueA6EFtaJJc4KvAjivBgEUAAanCChbL00vPpMxqp0cWEp6CqzzT8ekzttSzmQaMAAgBkgQUJDCxoDeU0enCjvSpSg0ILFarGQoo4QiCATgxAI0QwUxqxxCjKRLEa8Y4TwDhlhEIPPaU8M4oynnax0YQJooIqBB5SYIAEVFAh4QkNTvAEBxw2IP9mEB3IMmugC9Aw4IoMYklApE4Y4qga6HiyCDotm7twy+C6/DBMMImI4YE4onDiHSecmGKOKYp779bKLEuPKDrf64modwDIc0+oeNCAAQ08maADDDA4gIUBDigQgnkYJWaDDSIFIAPkqmko043ggkUpiyaysLk5nLtLoQBAMWADVMF0hEQFMoD11VlhmeI9NW6lhhvM4MyVmn599YyadzBwSscTOOAAKg8wGECXAQAowAEADhBBF4pnA2CgtAi4wh4BMnqyub3U+EmNnOaADjq6NAyJS3e/jBfERQCIA5IM7H1HPBYpUypOoNYjmmga+3UCABw8eZhhTzo4wJ5duBH/AAAK5pkHQSIPkPWdAQYqyAnJnHwrysqUoabll1nUS8MGE1DAy5tBvEDnxRp7rCaCiwbKs6GIAlhtg3lFmOkJHH6aA2MO0OVfQmDx42MHKNhAazQwBqBAtKbe5aZquESBhua6UWPwtaPci5pd7FzbwgQSoLtuwpIgQ+crXl2RxdapqfFXtQmnUxnXPRXACYUn8MRphzsYQADL1ltbgcVYkJYgRRGEYHuv35viA4U0nQvgnz59eS/Xb81pDQXKoJ2wKg6jnrHj/PV9qeGH95RGnowS4AoCIEp5E5iAMQZAtfMADBYJGEiReHEFXUjLATigwAUgcAECHIBF9shAGITj/xyVWUYZK+oGp85wwtXtoijHmYII4PU+wSRBOwq4woq40br0qahg+/Pd/Y4TPB/6rl9XmE0HPBCxidkDYOhR2xwWQAA0DGIQQipAxq7AhgEoCQIEcMJxMnAXGiCAIrniyds0VKG9OOdWdhJABhwAQ8HsIRe8WAPJbnWTFfnKfu9RYQ9ZVLi/3WppB2jWAQmxxM0M5XUJsFjWiEEMIV2gAJO0YMam8Lk5gESMDVBZ2tZEEeecQQta2IutqjZCA8wDjiw5jB8iw6IVvfKP/mKR2gAGMFzViRt6PM47oPU8N22BG5oRZlFc9gERJFOCZ9keWrinC+h9bg0LgQgnjWYRJ/86pwFaIMUotbA2nRCPGk6oDqpsMANmSIMlxQAALzJAst0JAJ67U9Mfc3VDNfFKhcECwBUekwERLGEA7zgPO37yJk91Yw68mCQADCCC3B1pAAJJC8aucEMBROdspyMXLDhVSi3cUil60YlFpgAAYqDKFQ3jgQu+oM6UXGBSEPxZPOOpoinYkSeHJJevfsJGAOhAByJzTECXEAXMDG0LM2riHBRQAEVtjQIOIIAJBkKQC1B1Cb1z4l3gEtKVTUGhFCmOUQDWL9WpSBflvI4QVsABT/SgByfYBCpsgBIgEGAJ78jdO2y6O1n6iyfRA6TadAGALGQBA7p4TBSWAKBbkYL/HZcxnkJF0Mh56IAYQhUqBSgAAQAswQmtU4ZHwxAGcS0lj5RRHfq4cZEG/NEeAADRDFQAFQ70gANUYQAU6oASmeZOF/aA5zznCcvWES1w91PbgACAgQng4IBquoLXWBSwW/YvZnPwQ0CltTnwOkCSBhDtLoqZrjCAkCivNI4azAUd5xSlOKsTAAtONZghjEZxVIFCKiRRgrtioQC8eJUTirs7ezzGHvXj4y4rw+Cq7cIeFWvWAZ6HQwnbkRDsmCzS1ABfBTQwY8ns7gEIAIECGCBj0BuKAK7kHC0QRTISOeHbvBqX53SkGhkgAGHsoCMeNGy3KoCCfuwwA1YUQ68s/zAwcUm2YHnSc5asu+UsxSmAARRywa0TCiGOY14OF3Nwpc3JB/wAxWpBch5uQAMaLuDZrv1LmLPCECd7OBGPbFMZDfAqyvi8kVgYAAKCEcKeeBACIYdABU+QhB0azYpxZCyJxT0wPPnoqd5ZWU1TGMCFI5xAzHCYw0pJSmc+rKEP8KJAWWOUZufhWdBKoIYJZNlHVVjGlxHsKGq40IW68ZAExKICFGiJK55CGtI0bCqLboGRWSEOEo3MycYlLj3r16/PzbJ4hGNdlzEDZlETc6nrUdt8F8DIA1T3AOuWgASJFIU5iMAJb8IkJynDL+jopAF9dFk1UHtGUfUsA7RVyf8oWuGw+iD6YaRphQpGkIoSzOAkMdhOk6sNS5sKVm155KWdqmYZ9Rxyw+Empk9QRxeOhCEAqiZAkcBLAAMRqeVbFeYuXcbJcp9PL7hckcs8AovevUcAFbDZSUaxAqfVJwUhWHgIVqCCRadiBjOIBhYW8QACOxmWOX2yte9oR4PhM3rREznJ35SUMbsXVAv4ACMpsCgpTtGzn83gFaiRHky+qNxyOYMaRkmuP378hr1TETmHkIUyZMEHy1P60htGmqc/oRX//S0WbGcABSj4uPNU03FUZEccDnZohEjuITOTmXDD6ZC8ynEYLNZymDtA9sx0wF4F8JjTe3lN99ZLlM7/sG+RL5H0rdOCioqzossSsgPKg0oKeHBohZ8A6k9oQSr0I/GJY/2dj4my1ld0XLLt8V9cPiQOzzPy1G+mmESxcTUMcBYCSED+zzqAgRxwgCW0mwW7SOAupnCUmNkLUWqAWzo/0qOG4iulWwEYCVOYpOOTpUsBZVuBFZA8ISiBErCDOqg6LMiOOBiZdziOabu475u2wFtAFSrA83gTYhK1BGIP7cKzFgovNNgAN7sgItkc+ROAN9mlF5kvUBIlLdgMzCi/G1KDPKoa9SMEAZCA5fOE5nO+FCiUh6HAFWiFJziyqYspxKAU4tK8aoMnWFGweGIdDAO5N9mwLkO9Dssu//abiIlYA4vBGAfgmknaomfhmAGYglDTPbmoEIrwu5BKj8FTioIxr9PbjGDBgcQ5gT5JAUgkjd3SgFaoREaLOOw7iTGpgCazuGl7BzbwROKqn8EjP/VLQ5FDPZ6CQSAsoUBDC5eTtWm5GABgMgnQhcpIIOTIMXGpmg1LD/UYrIIStS3YBRagjaR7vufbBA1guhDQihaQBChothkIMJSguAqglHfyPuKKFTC8ODO8pVMExlQcOWEqNU8xowtJAHa7HmdCMQAIQWXIgCsoD2GihrXriClRQvQgRmFawTALM/hAxod5PkicwsfTgCeAghKwgEarvJRIgnZajJ5RMIt0jP9X0bzd+biQS4/JcpMiZEOeMhwK0ZKrCqC5u8P4W7dYOYBuWI/MeK1zuRLj0BViFDn0MztCiA/lWbgU2ASg3ARDmUQGQIUSaDRrTIlVKZG++kTGsodYMTBYWqNuW0ED7DKsDLfVK6Pem4i7iAMV+5iLWTf7MxACYDL8k7MDhI7nGB8WJKZhJLkwI4Rj7ElHDIEp3IQUgKsaqAEO4AES8C87aAnbwTp/+sR7iUqNXLD6QUQ3CaY0TCRiNLVyiRILqYY5AKglWLfHMst1O6B3WLd9SSRlEKsG+D0WM7t+lMvUS5ie/MtHZEam44Aa8IQQGAFUqEbBuADt4ETHeAwn4Bj/xvpN4tIFArm/d+gdoeC/xwymLiPGOJmTrrSQECsANJgHSPostOinZ6EGeyCQJRCALrOTWskVNvTH1GNNdtiF+Igr3TLIqtCApVu4EbCDUSCMGMgFUBABFqCYTus0xnoV4zQBAymDGcABCViR0hOp5aQyN3FBpFFHBDAA69SabHEAAsWglmMBe9AFFtic5AxG5KCMYUQ99VPP1CMEXcAALqgBuZqrQwNKRIO+J8jEweDNOMg/+ZO/X5IA2igClWgEABiu9yjEf9mlilEiXflFBrwfG+OIAFCAA5C/TvvQmMugikm3zRmAqtGM19KJgCFGzUBRnQQbY+CCIHBR3aqP//o4NChIysFIghgoADJoOcoxC2JjiYKQANDDIdZhHScYACpbojAjmuKAr5RTALGcJBygJJGxhw81iM3RIPOqGnBSg/MkU7lMQyzDAGPwgBatTYfpgb6szRZYJcEoAgA4oCnDMNMbScsQNXKhiHy7kgYhAOy8FrMgUNAKwV0wMQnSq3DcBboYF01Nv0wVCnnKMgw4Ii4gIC44Ig8whglA1ZbY01Fco+SKsFI8pEIlheN4GbjZkvdzuQGwHvsDALIJm5ajKnXlP8uwiLzIVDLtxxghQnzq0E6zMIkB0Dey1pWYBwDxqynrtlviVoBBP3Lxyl5DgFjYvmiRIHicUiuVvf+WE4HrajFOCbVNTdE3SSRUPCQzpKcIEwC2AtiTcIOBZUzW4Z1StAzmjNVCLZe124jMBCB4JIgCMIFVrViqyqAQbZ2LqIbTOdZx/Eis7DI1SbB3gKbWsYceQ1kxAZDhsjQzJB7BY1A2LEbz4TMtiYU1iAKswQHa+Cxm6U8CdbkisTv1IFZOGULW3NrIXMJEild5cgJe4IULgwUKldqYolpw1NaDZcDnDLMm4pSajYjZQpQOoKCLOdf6+1mXo9S2zSgC/FgTRVbIPD+QwyF7uAIRWAMnkBZV8lvgAtxsncrTuSeeEgqttDlatZD06gYsa9zGpQCZY6Yc5Nm15TKMygn//jtPYERFkPW28SxB9ola0/3bJThM70vCtBE85jRRTHoZ2f2AboAFH+0AAxmSC8Ac3J09d6XUCKs1AszJNUyk4fPF5dxWNcHbXIiB5V2JuxGtEczWYQ1HspPVWIKv2JEdkIG163SEMigDR0ADFJs9O7W7j2sqWPhFzUja8sMwP3Wd/+GFlpvfllgVeQNDBgs7fEquzSDGbIuZBQgD6pgHR1jheYgURxAHGHaEVzML8W0nBMInFztfmI2tDFAOSADblumZNeAFA2i5ArgA+dVgwXgJ+73fgq1gX+TYyeqlDLBVBbiAFxaHKnCEC0iCQYBhcRgLBL4YBX5XwUOONSDA/11YAvHC0FxoudsxgLD8mCRW4uu4OglwjO7LoySkMo/zOPT9HHtIl2qIhTi4AHFQBCIggnH43iyOYSFJYIvNGKqJsONYA8zMgJO1YzjKmeatoRHUNjPcVvMb4SnulhN+KkeogkUGgu/9YjAWB0fQHvEtEj6lhuG7PSbhMU4G2Jx5oAywuA/24945w/Mr1IxK1AJwBEVWBCDYg2pRhCoAYxl2s0ma5H7yRUFOjjmIAuXtZRgS2A8kQycTuiRs1Y50QXy8iyglACBQBEV2ZRWeZmoGAjf4rBgo4zzGMOT4gHfShX8F5/cZk8W4X5bFsMa8oTWETpSTGwJIgipgZVdGg55VjmhqHoQ2u2bZW1VdQOg2WoM5EIDDKl2BvpkRqRetI0E+GmVSRsNEZIfX6oY1CAADuIAqiOdFAAJmpmdqnodFkKSf1cFK7p1ZiYXkWIJNLmkwmVOXy5h1UzEDWLcP7JkoSADlMJEM4K4reLEXW4MKAEtcVYQbuIFx8GJWhuebfgEiUARxAIIW1mgHcBZKuYIKqGsFiIMHULH78tuAAAAh+QQJCABLACwYAB0AhAClAAAI/wCXCBxIsKDBgwgTKjzYBFyThxDBLZxIsaLFixgzFgRHSRSdj6I8gqT0UKPJkyhTKgTHj1LHj3Re0vmEBMknUZQkqtzJs2dClh1FGflkhM7QUKFyhEJS9CZJn1CjogQ6FEkOpUlz7KjBdQdSpUz5SR1LdqEcGEiyKv30dWuQIB48cJ2bw0jZu3iX1JKjROuOv6E+0dRaY4LhuBOCcAlSIwWMUoHySvYJTo6RpFu77ri6o0cNT54M1/DMlUMNHkdclJrMGqWclnRCuX3LZXRnroYn1ODAmwMPTzX+7kDVuvhFK4FEsc1RgzYXxLifx/VgGPQJDrqDM4hsvLtCOYFmJv9tPmE6dS4TpJun7on3597Evcs3KKfj5dnrPaj3gGG6YQ6g9dZefPPNBw4mlIi3QxCG7affdBj0h5huE7THW2g9fFGggckJJlth5eX3IIToNVjhhYWhotOGxgGlnFVbpRfXYlyoV+NzDfpXIWg1+GMDi929FpJgSBzBA4CGKVbiczeWmF6IHeTmiT8lAGlcSyF9ZAQMttjCgD9H9tADByeEsMJ1AYZmWAdstjkBByNYWVx4dOBECQx4oqLnCCqoMMIIqCBSQgmIoDLCEyqEgKQHbUbpQwtyssaRnS7hCUOgmCLyRR11ROApM55G8EUJI4QQWqMTrBApa3JcIwo/sF7/c+mlg47aqaihMsMMJsyAwEwJT5zgSaOeILLqZHUYQclrgViAii161lrCpnV88UUEvYIAAqd1kJrCqWx6IsmxeVkRASWwUnKNnrbAgMi701or77Xa1svMF6j4o2YH6NVBLl7gwcpPKexCi2mg8Vr7ab2+foGICkhG6Ym//5Zlgw2B8BPIunp2jIgF1sZ7zafZanvvw0j+92PFZEVjAyaBBEJwlx1bAPKo13zhS6clm+zLw8JOEOUKcrBMVi1SYFxKKS500QXN8aJSggW+jKwrw6D+rELQhq0AgtFkJR0zDDyUnQIDgGpqwcc6R+Arw576ki9vufkI9lhJY2IBAzyI/8lbCAwYrOc1dfTsawTVjuDPhRP4IMTdUoEjBQgRoNIFA11oEMIJJ6TwtNMkAEp1r7p6ai0qaIK2AhWQQxWNFRfX8azBfKaggQtdMqBBCiGE4GcJhSNurSSmguZDFiu3vhPSF4OAr6F/IuqPBtCuq/vmHISgwQg3b1qCCqB54sMQyvcUza5yYOKLl9dxrj0DLlxTyrokMFD/5QwwEKi84Ie2QvLlSwk4IoAJjTXLFpuwnQZUoAH7faEUiBuB/VBhM48NqgT6Cs3jArgTOYCggJjABJe6RIInSLALqPAFtkAgiSfY7gmDQoQkBlUHRBTPHzPg4E6s8MGYXcMWuHPBn//yZwsLeMpXJZDEoZ4ww2lxSxLC8sQIiqbDlFihUzIDIuhsMYL6pRBbvYpArTalq9J9YQTXCcEIAFhFjdSCcoFYn9Muhz8SIAKMpKsWz662rTqMYHtfsFkbU2KDCGxMi6AjAbSuha1GIm6PuuKWnq7lCwtQcZAa4aH6gNi0/BHxgRHwhQpFKcpQklKU1kIEDFR4DTZi0iKwwwTBXNC0y6WAB5t4WhEDScmdiWpe00IECYzIjGi80iQXYwYiaOlJBiRQdykYps1U6DY5EJBTJZhBtSgYgUseMyM2AIEFmlbLLpDgaTazQM5QETJMDMoGcoDdxWzAKXh+0yTRAAEqaNn/SUUGipoRuIY6R/WFJwyhDExIKBNewNBRWOGeJ7HBsy53ThJ0jJGeWhvIStACHcxjHhvYAAV0UIYXWKEWEEWm5RiQgk2oIHDQUicpR7VRIWThoyDdwDwGAQaUplQjNpCEC5x5y+y1VH8VtBbIrjGDLAzio08dhDik8FOTWGEEoINmCra6icCRwE+CGt5NQwrVMhyiqkCVREXxBz88pfNP8OLoTXO6U0UYE60YAccMFMnWFBwBnamkGTuFoFOczkMHTLgrXi/iR1t0QQme/Kst4FUomn3BpoWFKhOouliLgMN5iPwczQT1LqhJYqw4HQQTwNDZisAOEbLCnC4N9q53/3VMakJYQUgLq1rOtlYhsUQFDK6BOcx1CQZrs22hDMVR3ZJ1Hgj17W8RMgpZNo1LDMwfCgMlwz8ZSgiSaIFzc9rb6SbECqOQGWSPkL/d+dV+FgXUCFrQgmy2YLchRYNqz2reg9QBZqVQwhGOsNVblo3A+RsB1LQpXvxugKTS7a9ARlECjRlhwAQ2cJjIZLu0Aa8ODc7vTsXBXwkvwQYzEEKFAwED/B1BA2XbMA80YNGEScIfWRApBXYs1RJP93UpbsETLLCxlRJ1q0fyTeBkai1fFFQIxaDAPNAAXUWYtxbRkMIohPAEf/gjBKgIBCKwqrsEapgHZ6MgQTc1gxW0YP8Qg0CoIsDgY7y6DMUtXMGZeBPmL7zUmQlMIJq3qr/abrSFWcgCBS5AATRs1s5AbmGiFAWaKE3AFoEAse02YWbbFThw3PXeDGZQAiEUYccPduUxrXAIKcxAEoniXKXZZAI2jSAQNsAgpzft3rJtQpEf694XRl0GRVRBEQ+GqBWsIAUqDKEF/uBaXDqAgQMAAAAY6MATbAC7FvCpTxrodUstmk55DWoUL7iBIoiABgfMg3yYZDap+bS4YZkgQvg+wACaYW0TrAAT8Xw2AxjoXq7abwTBtlbOwssEY1fhAgAwAQXKUMVpgIOepPoygDpggnsfQN/6HsAAJCByDBAtnlL/oC+fCt5Ac3LXZjmzwKEaXoUbJOHaEYcAxZVXC9glEdrCorW1ARByCRhd5EjHgA8wwe1DMEEIQ9xEuLVr0doGGxVPmAEYwHCDQ+jg2gYwQMRHCjZWa5lUigu6xz8ugQOQHOlvZ4PIDzABxFnhB2AQh7dDJ8H8kaDqhkZFn2Zwg60fogwEAEDYeWFtBxQhCxU7xChGIQkhiBc7HMcAzg/A72Y0A+kiZ0M55D4ADJygDlQ4xA9+QASohy50fgf8uySYghZIYetgkALiFR/2OMRB7CYows7lJO/w+mMFw+I4zvn98QPwIg68SMMVRH4FFrBB9KVfwQxecAhOcOIHTFBw/6DUqsi02VZ3LajD7bcuhWIkPuym8L38I94IyAPJCs8+PubXvu9mSMDzABgHCiB91scGTiB6TlB6OkAFLyAF3scJN+BtHyNDhkJuzkIC2zMDUnB7hdd+7/cABkAOIkgOCiB2AOAAEMAELJIFPtAIQnNv1TYAIiCDANgMaSACItAMFZAMGcACV5AGLFAOTvAO1+cAL0AFW/cD3vcDLyAEH0MoCiZNXqIBWScFh3AIXCcFNwBxihcHICh/YPhxwTd83TEEjUBr1yZyn5eDOeh5FeCGChAAyZAM1ZcG5VAO7+AEo4cDVEAFhdd93ncIL0BDSSRDF5iBgPh9V6gIMQAAIP9oAPHne+QAhrzgeRG3AS/gHfPgAJrndiSHgyJwBSKQDBVQirzACxWgAAoACXP4g1HgBEOIDO/AAhDAUH/4gD8gedr0apjCJ1mXiIooBVVABo4YgqYQgiIoiQpwiqfYeKpVHDcAAZrneaAYBaKIg8mQAKlIDgGQANpYAVFgjVcQjk6ADMhQDixQAAuFew/4faNABaQmCc/CdxqohA94hYcwjMUIiQYQB8moigApggoQB9aGA2SIF6MwD4nHeckwijgYjtYYBdmoANzYjRUgihWAgxnwik4gAFHAAg6wjknYjj9wA5T3JyrARFKweiS5gbrXiI9oCiM4idCnigI5iYz/dwAEgAaZmBeMeG3NgI0PCZFRIALb2AkBUAhrsJFRUIrJ8A7vYI5YkIcEUFJ0pnrfh4tb5m2SMApYSZI34AgLtQgEEHb9aAoySYLLyAszGYcBIIKVCAAFoAN5AQTEeABXMI4NSZRsYI0i4I0B0I1LKZGleAXmeJhQCQBVxlDrVni4dwNDMASTt5Lt+IA3sAdV8AJoQACPCIkjGJgBQJEjKJoUuYz8RgAboIJkcQhcKAGhCIrlQJQsEI4ZkI3emAFrIJGkmAGIKZXIIALWNnQEUAA7hVAvoAgvkHuUWZmcAAaLcAEXUJbyN4mT6JYJYJOnWJrcSIKn2AxySZdjwQR3/9kMeZmR2JgBGaCHRVmbc5gMS5kBCRAFCbAGhymLWIAMWJCfUFkOOHeC+iUOALpQywmWSbAIBfCI/vh7NRkAFRCagSmanTCT3Ml4JwieUVEG48kGotgM8bkGTpCe6LkGa2CbIxoFuDmHaxCVsoif+Jmf6CgCczkPF1AABICC0CUOCwWMS0gEi7AIjQiJaPkAaEmCgZkAoGmTbxmh3KiK0GdtFCAVYIAGd1l9V+CUGZCHQwiLEnmd3oiiIvoBazAFH4qeUzAFLBqOFeAAJaUITKADaFAABQABEMBjN2CPnKB6hwAESdCIkkgOQ1qRRhqHSDmCStqWvmcAVRkVdkmM5P8ZBeVglAlQjsgAi06QBslQDWtQAQkwh/O5lFA5BbppooxgpsiAnlHAC8MpZYPgCI4AUhQAAQ6AglVAZ2AwDo4wDoswDzEAgkM6pJ2gioCpANcZhwoQoUqaoPM3D1GxBwQwjePoBBA5qu9gouxZCIygqd44n9WQAVPACIxgm+7Jm6V6ohVAABBAozVaABQwCCSlA08FBFVABOOwB2RABhegqw/wACIokzL5q6DZjdcZmoU6gvFnlgbwpFDRiABAcs/6Dun5DlOAntBam/OpmwlQCGEQpmXKnsmglIwgAALgBIxQm7xQiy8gDoOwB3DqAAVwr4iVblxHBFUABIswCLv/ipY4Sw6dgJTaGIfY+pYiOLCT2HsGAAHwxhNVoLAjN45RAJUqWqofSZgj2rFGmgDb2q0Z8AHhmgEfG7LsmaZlcAMbeAPq5ggqO5wxUGWOSQQ7daAGkK9C6qeBGQah+bNM2gkyUKgFe4wGYIQ+UQYOkIZ3qIds4LTnOIQmyqmYWggJ8AFhUA0fOwVzMAUfgJveWqYRWw1h0JDDqV+ZqZxgoAhAsAcxwLIFEAN7sAhUVgD96Kc4i5RFCpihua86q6Q5K5NxQAAWuhNDsJAScAUGmKWIiaUUa7Wai7GP2wDdIAAbywgfcLkhCrkZIAJySQDW6wAXMAhzdoVcpwiO4KPD/3mvrMuvQoqWO9uN2Qia+7qzQqukYqesPQEEBOB211e49SmVUAmt6fu43RgGYcAI3TAFINu83uqtkOutpFiLilAGPuoA6boI4pCcLnkDVTAIUsa6+2q+prCzMvCgbjmkFKmk/xqhYocGPjEPRHeHwfu0+YkFU+DCTUmRARAGCOCNhdANywsHAtDCAjAHBSzACKwABTBnHKgIKGugcFoA/3ls4kBlDqCvnbDBG8zBRTrC7LuzIigDCBAAMpC3YrcBPoEGRJeHeKiiLXwGcAAH+VmbDooACxAGVjsHZ3AGAgAHZSoAZ9ANl8u8kssIa4CoEDBiTOCYFAwEM2q96QoBi//gACEYoSiwsyjwyDwru1ass1pcCA/6e/DLExAAAM1QDueIpZ/awmrswh9gpJ2wAN2gtR/QDWmcxlggAMo7slcKsd2quWGAqIlXo+sqwRw4s6XLsu3mjwEQxRx8vtnKuKgcmFjcCW6Myb9KDgZgwj3RiJ9sjnnotPn5ymnMvNCMAA3wAc87qjvczQ0wBz5My1zLCNVwnRdQBShLAQ4MAOY6DxEstmAgr0lwAYvcj8aKlOerzIAJmNActAiAyW9JkdPsEzf3yVFpuLaMBdwsAOw8tw1QwIwwBxINBw1Ax5OLtevMzoWgABcgtrfHBIOwCBRQAA7MsjXrCOLgCE4cggH/gAAoQAM0sMXdWAhzqMw1XczG+q9d/JYGsAg+sQieDMrvMJUryrykrMNTkI2dEAZnELHPK8ACDLIDjLnomQFzkAHtLJdx1nALdQMvwATfi67XFqft1sgBgAI2HcmBWQhKybiBiQA2nbdIidDqu9A9gdQSIItL/dAdudQbrcYCkAGF4MzdMLlkaqY9TMdTANHeqtXfaoLDSZwlZYVaKA4Gmtntpq+1C9cIsLMIgKkfsACgiddXDAnQXAil/XvUzBN7sLBQ2aKfeseHbcdrsNiprMfjnAE7HMtY/Q7lMHcYcG8yyAsFkNIQkHj0DAFooAMwe5zxvInIyMF4DZriLNL9/2vT5nvQGKvT0rzJO7EHBiABeIgM3cy87l3Hr1yma2DTC5DH3hrAEOvCaVB6HXACKtAuXhIC1AYAFFB46jYIb4rIwlyzcHbBYQfJNUzDCOC/iwvH1aDaVyzemOzFBmDeKrEHD9AMhv3KLhzLsVzHygAHVb0GRlrf9j2yUDkAJuAJKnANLqEuW6IEKTABmudux3bWCSUOZSCj87zWELABrNvIO+u/TB4GC3C81RDlgVm7Tt7OCJC35e0TIK4AGbDN3GziLgwHypDiiZ0AnVAIc4y1LHAAHZACRlAKlDA/eEJLRlIDHsB5vCB2LBvIVrl1RCDTsBqn8hx2OquzP43XYf9QCAuwAIreANXA1zMsohdb2tI8CFoOAAqwBuX85V4u5inerZiMAGegDB4pAh3gD9cgMzBAS3oCA+d0AjyOActtrjQqdvV8z2yK0vPQaGXZrxk+4eKMw2HQDRe+xbC7uEY65UXrExegr2swB2mMxtwc7WM+5hS92Cjgyu8AAD5gAfOjBF3QVeJnKFtjAm4nn9NMBBRssw6sy3GqU3Am3Yz8upI84Rlbmxh74dBs2o9O16hMDgAAAT3xAmRgAApgrWisBtPOzWMO1XR72lMAACtgAUbgAgPWVQPnJ7XDAeZuqddZACVl3TEtozR6ALYOpxRAAOYL4TUNx2HwAXRdCI//zsznuwZOjtC/erDxCwBxUAFrkNHSzvDV3vDMq7mnfQCN8FLslT99EgK24yeIsgKN4MkXmwCIioJUVmyMKdNwCtoq7+s3PeETHuVkH+Wy+7hvzOhADfCznRIY+gC8wIOVvdFDX/fV3gBvHAYA0AG+oQHi3icaz0VK9AQr4AAHsINGOpxlGd3zANMAWgYeNQ+KzMijHfZ4veiL3g0X7bixG+Vr8OgdHKEAAMbnrXg+z9UobvfV/soN4OgfwOae4DuH8id/El+BcigrgAMAgK0PsAhG/Nk4N5xzulODIN1lWbudEMlx7cZOjsMXTrd3XfZh0MEBoMk7MYwPEAciwK18//yxnq76Ka7i3bC5sL89fKdyf+Jt80X4hl8BmJzuRKAIRkzyRJeD0X3kX7+zpqD8lw8QCxAsaNCtWxgEnQIgGNigwYJCASQaAFBmyUWMGTVuzLgHAABeFRidEeBkyruRytQo06KMpUs4LOE0CJPgwIQQKmwxGEFixE8VQX+OUOHDRLMKEQMQuLBoUBlxTMQ5GrQIggMCAAhAQOPAALlOnVDQQMFwIMIFBquFCUtjYNoFCCEhCBAHgCOOefUuiQGyQrJuDaYMzvChWrczL1lq2dISzpluHyoAwJmCweUuJFT446xiBKoRGlaYOCCiEENTBB48IOCA66BB4soMmreBAv9XAgoChBU71uxAg92q0VX49iFdieQMPFC01znGMlklRMnQYM6ZwVMyMGqwUsv371uUxXw8RQSADhx4pNh0OagGz0OfaDB6IM2aBZ0eOI1BwACvA7QqgIJF5jEQgg380w2FsFAoK660zjijIIToKuQhgcwKQDkCKHjuOXEAOECCK6KY4gwsBBgsCu7A+44QGAlxSaUprjigA0/USyEoHp9oYYQWggphAgwGcIKRagJ4AAgiFJntggL8O4CXj7bCgYLcdmuwLATCWCAtNWbq5ksvCTruS+LiIACND51bREQJWKBOAJIGW8NLNVxkjJCWVFKmmwxunICDEFKALz6iNnv/4gkVRrOvmuE6IaPAp8qYbZ7bogTAgQEB0I033778sjvs1kIoDEgFIpOhTtScp829PGqGROqmEAAOWzMopJo8teBziy34nJHGZkwYtFAeefRHg6FGcFQE/OJ6wCsBKZjnKR10wPQ2NDxdaCwH3yJoF2UmRFJUuKoRNaFODCCACVjzKoMMAGaNIop33hFgXyymSIYgl8ADVliYphjA2BNC4EEDfzwL6omfJBnBnwkAGCCNQr5MgIB5NKVo0wIKgGBkCijotoJPy0Lhy8POUOPlM9QtMy1I1UWAwU4U4DhejhShd7p7MxjsVgkZ+YCRXvVsyTGDTUgvYUN7/MmnIYss/yeDMREoBIBrYYPSPxFEiKKcZlyjAIAEEkgIXAQg7Walx4RDl6A51jBLLLq45nkjR0RMIwMnhH4HixRJagDJxMCDSYtMMnkMCzYwwJFQQ+FrVgNPOigSmSnmMOjLpSC4Vgfa0IAgqwMOMPuAZBIQq7eBqpkDjpgKGnPUCSENA6FwAzBgkL018ogXaAHPQMUU4QhTwu58dYw82gmPfPL1NGAWqBM0HwAZ2idswGYETHlAQNFhmweN20g+wIlk2HIw1AZcyh1dUhlhJIxCaCBLBuVeDf6iGxQAJPdJBnUIZyuXhWk8ixkP7RoIB8KV42DpoZz1VKABDmAAA06AQyZcov+GCS3ALSggwCIE+B/yWQt9EKDAAd5hGnaFqzvyux1w3gbCOSTgNAuBhAIM4KH/LaEY9GpG0KbQLyw4kCV8WlpMHhi96E0vR+rhQRVPQCQnYMGDMIGMQBxUQgOhoQAOEFHqPiKyFiLDCWtIwG5kOEMQqistDpHQHBhxJxnkkX8/DOISFkGAAzRjDYzoxq1op0SBfWdGcKAT4Q5ZkhvlqAc94EAliTQALc4IhAb5wN0eUIB5kM5AmcKKyCDQDGQgozBra0j8XPI9gQSGeXMQACPmUAhcQsJ3EAgiEfoShwocDw6OaRwE9xUwRaqEJGeYXcDUgIWDTcATk6wkBzQ3uGH/wcEgBVnLAqrRgAoQQGRoQMMGanOb9DUDgu9IBkMe9LJyzQ93zAtMN5B0GroUIIg+e4ACBheTlmSCcP26VZ4+mM3HOFCgcCiH5CZQA0pywBNFescwPzghThZid2FwVwEMUJoAfQQAGOBUAdQpUCdUiCBwU0NB0KW4lh4OSdXApc6CmAQAxCEDSTwk7VR0qxQpxomO62lRkTEADHDhoTXI3PaSqEgJBScuZukQpsaYFZGKc2QHaBwWMhCGsayUhsMR1RlchKuCQOYgPvSfc6RgBY3EwAAZQEYSGygAFpRDX0iMiQed+EAQnsGvhEOqB5R6yYr+dTyQkWOX4rKxAqAB/zZUMdAob3NSRg6nLC7jYtZwl4nv0A6EDnmsAdqaFyoIoQVDkAJGQlSBvJbDRALAQjmuUA699uufShyPXXsLPYNp0AMaxCRoHafJmN1OVY8NZwEugIYwrvCyWsxEzBiyAM6ORwByJG0DEqgGD0IGQxzlZV5sMIQVrOAJQnhBa/1oAAmIVAQmQQZu9ZqvfDlyRn2CiQOjd9QDYCB12wMtIbYov9F+Dk3tcpeIeNGMZgygGQfokEmHqQU1KNe7j5mfd8+ApsOsZJMPOUgFCnADjkihBen1xxMkMYNDXIQMEbbYfet6WzbodV91LWoDFzis3rIhrxIewDsY0xhNwsy7jP/IEEMU4AByQiBkDqAyp6R8gA4yTm7YXQlGvyShmKk0ON1AwJjWEk68aEQI6V1Bi1sgBNb68QGzSsPg3lEOZNy5HE5ggxNo68hDPjHQRCVcXdUYNicwpk8rUUlMXXozgejsNZYiHW1KBgEACCATjfnwl7sHS9y5dKoDMcvuCpEAvWHECpJYwQlWAB8fSUISrQWCAZqRhty+I4t6zu9AeepECCbx17hKxuBS5C8AZYBxB52RWtelvzAQAKuuGZmUxyhlVBZYm97sDu1A7d1NkgktDDlVABJgWozYQAj+OEHCYD0CWY/CjwPMbSqxoOt31NXXReW3aDOgFQCkARkiOAD/RUTQQQYyWrvKBStDWiPS0oRtAKq7iggysGlOQ+oMMWnpmALj1ykoeG5lqsAB/Kfi9EItBTvykRBmsARZ1fkdU+Cxr/fdb34zAgAhAwCeCc6LK/BUGcDSAoddpk3lmiUBBHdAyS5dbQoIsBkYx3BafeoQrIN2PIQUDqSw7jJGTAYCUpjBitMbArSv3DNvfrlHDCDzVNJO344E9CFtTrspNANkgLRzFqOnBXYE3jEJDOG6vpSMKiEINuZjoQB5AQdCACsTtaQnugRr4HKJ9jsFllHeMYCDFrCbA1Ar1ApyAm+Xy9jWTjA0BHlsd2EHGwuvJ9wBBkTGA1DXcY1jTOAD/49k+Tm7m7szQGRPB3BpW5kAaXi8rwysTe8VpCEucknjeG/9ojuhGZ9fQTVHnzC0NwzeL4brHgjAC73WPO7DhkNdB1N3OLwDACWzmBYZt6df+V7ww2rp3AQSuqsAOACgCJFxAACBg2CBkerCOpdyiDxpjKVxnF2YkMdQhqPCAKeZIu8bPdODjxYgv4u4AFsTOMLpNZvrl1TSN/+CJgErB93LBBhJwC3QP3Your9SriaDCAUIECizLBYiIwDIgMiTvH4pCFgCN+ezwehbCYFigwNwmkFpN0IJgXZztYfxkRKwgYtwBLBxwXvLtxM8iRTUtwYSqLraPd6LPDWcQRrkL/+1Sjq3SA2sGhBrExkCaAZeSANfaQzHCbkxS5wh7BOH2IVeESik6gBpqkK0a7cUaLOWa4EP7IgHyMNUYj3OEbYjOiB+wTmX4JMYZAcY8RV2YMPfWzRlEDVVuRkwmgdMA4Cw2bmroJJmiLxRNDAs4LptYolRBD4RyxNCYKgnlKbRQ7tFBD8ViDVZq4OMqAIyeLt8GUN9y7N8y4A1yMRgox3QSsIYDJYEHEL9E5bRkiM0YYiOkjIqGxB0EiARGSZg2QLHQZJtcpneq0HFGcItwIIrcKgpUhgqPIFKcreWKwEQ0Ig3iYM1wLN8G8N3EBpqXAPagiLrS8NP7MZ2pMFgUSb/bkKX2EmGK5g4AGAh27DDZEgDADCydmwMeDyMtzmy3ztJ34ODfETEHAE/YiRGtfuJl9uIGOgnEXjGFMwXJ3iHKGC9I8LGCzOwGBnCGOFGeyRFTvMetRjHTrCykVHHTTkdMzo4WgyWWiIk7zoyl6RBdoCDQxRGtOMB8LvJn3gzLdyIP7I1G8szNZItS+QxZYjIpRyYk+RGvSTFGmy0DJubhKA29CmAA0AGitOUdRRFyZuCkXhAsRRLdzxET8gRYkyYtBy/1MuLvqDEoMwzJyiHHEu/17u+pMxLYNnFk5zHv4wbrkMTgSigjhyAAWAB1bHDZmCDj8gAlhiYyUMaGPTL/8gMvEygzJmsQn/8xxQYv5zkCCAgAGBKAyeYTie4l7xigWcEtMZJSopkSjVsSt9DMnl6izFxl3PklJIZEALoyQGwmLtsRwM7jD0cTv1zx4Yyln9cjxQIgUryhBo4Ac+QBOfYyTzcsz1jATZIUL3KxBQ5Qxg8zdNcmqW0SMfouG6Ki2izlmspAnN0DQIYAINZTEIIvMg7HDUYUfr8RizQoIcaxprkz0oKgScoATdpRgVIgzSQgBxNg9GczivYuQ1wgKDjPcZZSgN7hwPIgGH6ldQMz1eqGfBBgI8ZqQOgzau8Q73bzeCcwV/8JuFMUUJoKA+QphqopnajQirkgRZoy/+9AIILwD0Iw1EnYAG9KwAdgJclmIcDwDOAQspQzIQrIA0t8kR7/D0+USsmS8UFsImQqhKR4bnWWE/Is8fJ6wbAS9H6zAQxXaoNHL0UeILm/BBHAALFFKfTuogWYoOnAg8ZYVXaiZEXKVRQLBfbGcfwCRl1rE0RcI0pqzIDOIMYjLyiQ4wmxdRavEDDWqoaWFZCGYFQ7SONcIAqTSLsK7CILDAXQVH9a4lazRAa0A8DuAK/+9Gma40xojIAmIJghcHJmwOWNNZuRFbD4gJ65QJPeAI2hdaMYAJAciq8hNBNC0Xnm0Gn3AIvUym6oIg9Jddy3RSskDYR2M4EFKiR0Nb/FB0YNWwcJ0AqDerYU9XXi8gCEXFBbNzObDxNd4xVWtzWx3gILyE1AxgZAAhNE6Cys9GKrJA2ABhUWMUVpPlSyRzCa509e8OCNNgAkN0IkS0y7XQ+AwtYjIVV1vw9jLwddSk+CMAACTIBHGi6KtHZrBDCByW6M+AOoI1MLjVDol0/CWCTpM2Is2FaiMRLp/VTT9xLEo0bUcEfXnANE+gzkvLQSJW2rDg4p+VDJgvO4QzLYFmnPaPOd+AFt33bJZACj5AAkqVWo/zXB83L/KNapCMrBHgyCPhbJBUnCuCUh60yrurcp92uXei9Yq3Fk4xBgXoHFhABPKyAcPpYfS0D/2nFtdfjN8dh1dPsXL8suu26rjAIJ6wYQJDJlF5FV+rCWMcRjl2w2PCEUDVsPycQAQOIg+JbBMrFCC60D2O7RijqIOtDyvZF3vCsrsYa3chahCRIAiBYhBggp6g7VyojgCjYTlgtF0iRXYJ1R+7lk+hxAl5givLNiEGolz07wfU1zc2DQV8BLYL1vV+cguGgC3IoAEcQB0WoAnEYhKbYANPxX6zIPdd9PvvpBqiNke1kX/dlpDQwgBgg3wfGCI8wkhQsNBXc3GwkUnbdRjbkyjlQl3OLAahoEkVAYeiaByhhYQOYAwEWVji4H98xgAqgrWu1vvZbA7sQJ+Dp4Yx4E/9xLVpDEzbNZd8iNS7urMhRfIw10KgQdoQqgOJBEJ1rEaMqQ1cRoC4FVOAkKSEH6NqsqAAcxUOtiIECiAE0zos98OLtMbbZGyiIZF/Ou+A/ZcnGFY4wIAcHcARFOGUm6OMNGARHWISoC2RA0rQHNa5TTIAHmNwlcAQqjoFiWIQyeIFJjpURtDfZizujvEvsc74jRspi/U22KOUqOOUovoBV1uUV9t+Aa98/bYA1MLFgDiK5urUgPqAhHiYPisgl4l46Lro5UMV5IGEiIAI3XeUyaGVS+t8KIOSnbZwz+IADAKJv5hm5koCgDEokGuIwxst/neMZ1IIpUMVBiOZTdtOxa5kKIFjhhwUkJRVgMc4AE7OIgI6XvmiGDDiek/gz7bxWxvnXDEZigi26JNmPKpBoio4NR7Dnq9LZNNi9G2akKDiA8grpNnmTW+ucm6PWhFZpPhnbJCbRTGAEJbmAPW6SmhaHcWhlNICSh3XFF9xnAfBoAgBpoX6O4bkPWhIAZNC0WzGkiOTkMP7F+0vK0JoD37kAEj5lR4AuHRAHE7bmDvWPKNg443KcfckAvfPdIAoIACH5BAkIAGMALBsAGABxAKoAAAj/AMcIHEiwoMGDCBMqHAOuCR1KlJo0ATdtocWLGDNq3DhwWhMjs+iIFEVHFMSIEjmqXMmSIzhKs5DIogMM2EiSs2bJApaypc+fLWvJEVWzps5QIYEhCZUjRyhZOUUBnUr1YhNRRI0ydRoq1I6vNXY0bapEVtWzaMdYKUVHltutOb6CDUKXbo27YbuUkpO2b0s5MMbG3VEjCOG7dCdMCKLYE4caPXockWXEr2WN4ALJmos3CF7EnmpM8KT4RAgOPFIf+XK59cKXs+IG4UKby+zbQUJzUNzYk+MQPHrodU2coESIwGTlKMzFg23aHpyPntA8unMuE1L34PGqeHFwpbCS/1S+Y7b189KpRzdm3TEH1DygeHcth5LNo4Sro8fgoQP68+6ZxgMi87WGiSg5LRVXYf8Zg4Ex7P3X32juhfBEgZbVcpVOSCxFWBASPhhhc83xZmJoK2DoVxOUIBgTEguCKKF1tJloYge8pahiWk0EQpRyTR2mGBf+nYcdb74pxgFpvNWg445nyREIHTGNtcN272X5mG81/BaCCmCq8EQIJ5h4ApRoseiWcqmloMQrrzDAgC22jABmCl9KYocFX/TZpwWSrMDbCTOgWVUTwIzFQwpduHDJo6ggYsGkX6QiCRRf1MHMppxGUIcFGuzmyQl2GEqVHEYMxgMDj16CCiqp+P/ZZwSZcgrCJLhOwkwEEUgSwmikmjpVE4ERFsIIUKByCRTLIiKrpxEwAwKnk2AyybR1lHDaqNYICxQmR3zFgQa2QJEKFMlC4aysmdYR7abXgiBvtk+c8J4Q3v6ECQ+E8aCCJCWc+2qk686aKa/uyqurpyU8scIJJwyRr0+YMHBXCBq0kIqyraICA5+z0voFr9LeuimtvkJc6MQs2TACYSeoMAIqtlzi6KPq8smrp+6WPG20KJO5giQstywJBz18WXPNN7uaCsiezuozvCjb+2TRKtVhbwpztvqKzZCuK/LI0cp7cp8jQFwq1ivZABwDcdoSp5wMdPE1puySXfau2Ur/csKFbLetQgqv1KkBmVpygPGyX1iQCiKSgjwyMzPMYMcKKwfOkQ1QyHmJBhrgGcLo9nJwAuFQlADFCKAfPifAJZQgSQuaryTHFyPUzCrdJLxqy+GrotI4KgxoUDwDI+QO8Oy1u4QJDF1cQuclccaJChS2FG88IryqTumkAQPcAu3NZ8RiTbI0Tf3hoGMM+gjcb2rBq3hbELvsT9hQPkaYADMLMEYwAsceNQI5JY91DCABDMj2BVQkT2OVm0EdJDGCOuzvIqXwnxECQQkLdMxcJaAZ6+DkrHdlK3aaOlkJLGDBCy4kgzkpRSm+0Cp0pSIV0xsBCS4htnfBK17McJf+/1yoEBAY5QtGgAHYXMUsW5AATiT8ggwjcCt5ma0O2arDEImIEDkYBYAuCKMYX7FDEjwximTblBWx9akvgIOLCZEDDJPogleIMYxOhNMTL6Gzd+1tV5nKFF/g2MUvwMBj1HuF3Rr1NTKSIIF8wuLOdsUzvm2RkAapRR2gYEdU1FGRjQpjFxhAJnINzE+86lMdJAiCN2IyIcww5KPMSAK7QTF0oPuaLSSXSlqVYAaXfGUhW2WzT+rRVRbwIa3cJTItCvMiIGCWzUAJt7vpbFpnI5sWXflMhdggFTusHhS/5qxkAm1nqmSGFbjZTYRYoQSJdAHd5PQKVDgujTbABNCwaP+FWrRTIXKApwu60IXQpSA1i0qgPflkA0nMwAoQjag//3kQG1jgiaOU0xFSkIIjdHJST0tFC4YgjiEw4aQveAFFKxoBVMTJeHU7Qt1c8DFZiTQLgtiAIChAAR2IY6UGqYMh5QRTujGqd5TqkyRwKoimomEQgwAqQcABTxhoz3hcM97dUuenQDG1qT6V6kCskIqMgk4FMHVB70DIJxY6rKlNHYQ4VCpWK3COAZtIQetap9AbTmpSEWhBFnSqU0GI4wZiHYMcWtqFg3JUrxw1nqtgZT8WtoCwOh2EI+gKVHDIEXqPBY5jI3s3RJTgCyC4bGHB+oKJUtQK1sBEKWBwBJn/im50PBgdxpAHBUl8wQaChStrXdvOdyJCtlAY5UFzexotYWxm6ipFC1awgdVulrjPtIEdZIYJGnbBtgh1LrlSscJMPaG6G0BDZlvbTnDMYLqKC4QHi8fRNiEuBFy7xNPAR93qogENgtABe59phResYDcT4EApLPAEtC53UXiCWAgS+LTTXg691RXEIBSBXS7adboT6ICIO7DCBmsAoYtalGkm/Aoo2K8ElytCev+r4SpYAZNymIEQVuCDDpgAA0A2gRCosGPQPfi2+F0W+AJVXQrQ2LDi0AERwWGDhtkrxEDGwAEAQIAWUIEKLXBwXvGL20Ut64apUEF/eXoBCgR4/xEEoIA4qNA8Km/3PSHugJYPIIEDbFkQUtDDC7KA1sPplqN1uwQMnvYFSTyhBTuNqzjEcQECcNkBG5Ay1mBrh3oNyQQ/5vMARr1lClBBD3pgwhOe0DqM4Vehf62DYLOQBbmmFAyKiAEBDMBrLkNAwPkChzU6zWMfYwAAWxb1qAcgAQAU4AVScMYNhPAEOzV4dMbr3Q1jF+YsFAECELjAIICg6wfwmtd+BgAOBMHZHdlVEmrusZ4B0GdmL3vZzWgGAZgghV/oYQjV3sQmGqyCBJqRsjB29Ap4KudBAAAA5uY1L/K9ZQCYINMqkoN2HeYDLD/czwdohgQkYO97A0AHN//Qg7RbUMAEJo+WlLVfKuwkBB2glAIQj7gBeBHyZvCi1wT4NZ2JY4MJchzLx/ZzvpfejFHr4uksGMABNnADKXDiFy9g+eskQTNYmctxI7BQSl9g0hg8/NzH4IXaeXGMtqd9yw4QhCIuI4UZwPs0E/jxw/vcc6Y3/QpXeLoumH0BRYDBGZz4d7VHgOZLQPdprAuBJEiqCHE4YhEQN0DbH+D2zqf97QBwwCDaTZV3O6xMPv54n5eu9gqIoOmDF7wlriABCjABDD/4ASfAIITxhRQRG7OnJDZxLCq8gAmKqEIVgJALiB/DAA8Qg+bbTo5jVL/tIX94AX5aeikofDd61vL/6v3OdgVUoBlXSAMLWOAES7BAFweQe8o5wYkf3EAS+F/lFwJ2Q9Y9YQZ6AAYCeAM3MA7NF30PYAqmIAbW14Dk8IBtp3a9hgbc1xJWoGPxJmLHNnIj53cVoHbmd34ioAssEAUsYAlPRwDioAg3gHv09wPWMAQShEX8ZwuboAJDIAU/8AsteANEYIA5t4DR53kGwICdp3m8EHobMHQqMQQrcGAhpnf0tgT5RoVpp3ZLVwHnh35XkAEZsAYZwAJX4ABz1YK/QH/1BwZUMAMgsEqWUjwOdYYCKIBEwHwPcIfRZ4Sf53bX53Zqdwxwp2kb8QIbgAPGhmx91oHN8IFs94C8/6CFi5gMrycCaaALXugETiACZKgIRAAGeoCGaWgNEhRCI/AEdtBv9BeAYFCAMZALdygGsGgK1KcACkAOsEiEbOd2B0AAG8AR4oADoSZqIycCV/B6+UaLCtB6WpgMjKiFGdB+ljB7Kmh4Aqh7aKgHdVcC1DYCkmAN1nh1LQgGjuCKd1iEYjCED1iLBnB95uZ5bmcAACAIGjEERWACyDYAzSACIrAES1ABURAFxVgBAZCMChAAFWB+IqCFWmiC0GgJTmAAGxaO31h/egACFHQJJYCKaGh/LTiOd7iA0peAbScGtPiAt3iHnsd58EgAGlEMDrCBCcmMy5gMkvh6tSgG5P9QkArAjGvnjygYjSjYDBTAgp6Yexv5C1JAdtagkaDob1LgkQkIkreoh9aXgJxnfQawgOc2gRkhCPbIbBKQkDOZDFFQkwqpkxXAjD73iGQZjU5gglEAAS8ABr+wg6gGBkSQfC8QjkUJihT5lOT4kaYQfbJIDgq4gNdXfTgJkpt3DM6GES8AAeI3AGI5k/9IlmUpAsioAGuQDCFokIwwBZg4BVMQjQQAYIKwCBdQAJVQABBAAZnGBGPXgkZJf0gpBXaIh4MZlbCohw+YmLbIedJ3bvt2EUPgAPQ2aouYkAmQDF4YBRnwj/94kLSYAAmghQUZAGuwnQLQnVOADA4JeAf/4AAFUAAEcJ7k+VSTZnni0Im/4JRSIAiBeZiLaQqGaX2/eZNuJ33Ph5PwKIgKUQx7R5mup4UJsAbtpwtOMAWMEJ0C2QkBYJ0JUJLayQgWyghz8J3I8JYiEI97eQOVNwhocAEXgAYUAAHluQiOkHxAgHwXAHFicJgyap85SYsBYJiHeQznqKNGyGsXcBGYR2+LqJCSiIng6QQZcKEiEACdAKFnGaFrEAYS+gEWyqA0aQAFEJFzSIA+qAgnhXycOA4XIJtmV4Qzepi/SQ43iqbsWIQmCX0FYBE3YHZ8toiFUAGF8I+kiQwbGgXVYKEHuY60WAEJUAgRyowSeqAXyggf/+CZBkAABbAHi5AEjlAFLMilcwgGVUCiEAAA0xejM8qjaYqjEKij5AAKJnkMDxCnC1EMlnYAS6CP/ygC0OmFlsCnX4ikUVABMZqThVAIzWmdBZkAYRAGf8qoYbAAE1oJF7AIqtma5RkDJNqsiwAEQKCaFOAA/YmjaKqAnUCjJqmAo/qAMtAJJrl9C4EGx9YMSyCd0RkFCyoAWOAEyJCkSLoGAQCL2SmhUpoATBoAyVoN1bAAC1ANYWAAaDCXA5iXVTAO4+AISeCsexADFIsGlaB5v3mm3Wqf4GqS5NAJMhAAA/l8DgCgB4GcADAA64ekz3irloAF4GkJz5mk/jqQBf8ppcUaoTUbBh9QDR/wAcb6AQFQCYvQnuEYaKj2nv6mqZe3CJXwANWXsRorrrZomNxKDjIgA4b6gI8qjwnxAq8qAexXghlwqzDLp5gonR+grCL7gBBKrBIqsgCbrDi7tguQr1xWANI6qUCwokTQglKQfIKQBE+ro+J6phmbsThZnxBqs53wqGigEFnwcEsgAe2XthkwBQLAp25Js8ngs9cptwGAAMRarAgwunPLsz9brJ1QAE6GBoswsZVAsZUwuzGwCLd7AYJwsWJgrlNrrk06qr7rraI7kKepEJIJAJULjRt6q5tbmpYgndb5ARIKvHJbrAtQrP6arNRbDRJqAOz/JgVSMIA+SAQNCwQRW57NyrukKqNWK7dqOpDBK66Na7O8cLwJIQj3OABAuafIgAUCoLkB/JbJkADVMAdRkADf+raqm73amwA/W8BwqwAFYFiXCgaB5m+oJgU3YHkAVgCcp7Efa58RKrJN2gm1mKYiG7IDuYuRm7/7G43IMAVniwU2fMP1WsAL0ABrMKEfC6HcW6w+q73FKsRhMJCPSgDkebtJ0LeWmpeT9sFFeMIa27glqaZNiqb+KqwKALkKgXmwpwu3yqf/e8PUcMYbWsBhwAjee6MQigDF+rPWWcR0nAxyLAYFsAipGburWbu1W56ueQEbUAnW962HecLWO5A3//qxOvmAABu3+UoAXosQZgd7mNiQfPqdZ/wI1IAFjCCyf0qsTIoCAPuzQOvAPEvH1JsADzAIAji+c5iXD6ua5QkBaEAA+DmjWeytjRu/IpvCoPDI/goKx0AAUZUQZrcElWikMcunWNDJZ9zJU0Cs1fAIQiuyKHDEVAq0dFzEqBwG5BADlbqXAqgH74mNN1AF4jAIgozLhSyjC4zIJ1zCKeyrawCsCVB9lbAQybzMLhuNN/zM1BAO4QDAjBAGDfAIjyDKCIAAC9Cz3NzN3tzQCKAAXAapt1utjlCp7KkDsInLtEjFptCkoosA83zEKSyy29mZ+XwMDsDP9JYGlzzGZv9Lw9EcDtRQrx8wBWccpWFAutOLrEaMvQvg0KRLwdRKu7V7nkztmrecyyMtz74cAOV6xDfqxoUAhnOwBrSIpUygEDFgAEtQtmTczAIs0Gpwxgyq0NTACHNcrMlgoT67thINx2HQCa3MlwSYl44gCBeAok4N0gEQ1VItt9lp1T/cCQuwBgKrwF1cAF+NzAbQDDKtoTY8wzZ8xsqw2WcsABbKydZsulIaBYxKsAX703EsyuTwAGhQBX/Ll6uYfJM2CLaMy7070iiAyIR9vdlbvGtMDXNgqAowniZbEGFdAWswxmUNwAEdDsogzRbaANQgAMkwutmcABdKsKLNswObswH/8Kh6ewGSqscaBlWDIAi1/c4jjabyzMD+StIRiqH4isJdC9YPoMxGKsM0jAXfKdBnDMA9K92PMN9vi6FsbNqoDbSrfNdYKq0XEANLzdTn6ZpwZn3eSthui8gBkL0T+q8BUA0CMAc1y3b4exBz+gCgsAaZzN/M/Qjy6t9q/dnPPc3Xy8ZyHdHdDLAKoIKZCqJ9PaKAnd4jvN5UDN8A29tZ3AmFMAeP0ABHbK7wWIEGQQTHnQGYbcOPcMNsfcY4jQWPwAgNoAac7dZF7LPV0ABC3c2NveOOwJcc7KVMsJ6D4GYE0LvyTNgnXcRyC6EgHuI1qwCOOckGAQaEXAgZENBm/7zJmh3NpMnJ1KAMWkDdq0uwAmu3di3REwqpBVCiizCiAHbeGqa7BKAAnYACKHDI7e3QA3u65YoCCzAHbc22tfh8P4oQ4pALx2DoZWzGjj7Q0dzJAPwIz00NWtDWP0vp2l3Up7vdYZDbneBs0grh5/lwF62+o17qp87LTYoCpGusp73CNCDdaF6shgrlrGoQerAIuWAAnPniMBvQms3Zz+3l8jrQxS7X2YvgCI7aDmzqplAAl9rBjiCiaADY5XnLBWnq217qJ5zbCPCnVp21CCDdbJysTArlL30QuQYAx1ABh77fMM7Zj64MamDDUzAHAg3pX97d2m3X+Q7ByvrTCP8gBpVAlLj2pevZ1wWABg6wiAy/wLmt8BuOod6bAChAAwjACI+w1aLcpLSOEFXQfHEgAguK6L/+6/NODaQp3WJe7FOw6giA9A3twMlAxw1Nyg8wuycayE4GVwV/y4TKpHiO23w+B1v9r6R7rKt+8dV37gXhkbyQDJhd79G82c99+P89BQ2w+F0f6QJbrEc/9nRssHvfCWKg6ZVgadRO7ZCKc2V58fCM7QjdnR9A0Q8vwBngvYZ6o8WMEJjX8ZkbwJnt3CO/6L6u9aC92Vpw7wYr80Vs13R99t/K2i9ABJbnVH/NmgdPAAl58bl9mNz+8I9w8tUQADRAA2HA5N25nX//Xn0AENkEceIGkJZK39+ZzeWLrgyEIM08XfhaoAxTkL2nG/2XbtpFTQO5/QAXsILqDBDiBIpzNGjQhguCCjSrEKBTJ1MRHwYIkGBNhgyMwlBEEIYRozkZ1iSjGECBAgMABI1h2bJYLgNxKmQQIADLzSmPHlHjyVOZli3hsCCzlAFLT2o/H30IsxHFUwRROy6Q+vSpAQKVKhWAcOECBTRoFlFIuLAQxYcoOiEwhcIkLwAADjQDVWhNNZsC1jAqtMBhAHLHVLZsCQQmr2QZck6ZUlPAlKM9tRAiFA7ZFV2Wbib9uYVagwUbO6GQioBq6dIKCDyIC8DA65QAHEBAQ0BE/4YECKzu7qQAgAkcOBwA4JVmjVAB1dbkDiDjoRgDiwizXASz2RUnyBpDXrw5nBYt4R4N6FCkiIkBTrDs/KnlUTXdUcOYRh2VtFoCggwOEoTmQowCCiBgNgoIECmBAHR7ypSHAgOggw44OKEREwCQABkBGFljvqiaI4e1C6YbIwbiJLhNscVy2oka8MCjZoAJECmFBB8wGACZ9dqjhpEPEpTqtNAWOM0qAhYZRAdHCHIEyYMogGADB5phJAGrdOvkw5SAm8CHFbqk8AAnkkkgNxnKlIEcUwwYREQSDajgNicY02nOpAgBTwAYZYRBAw5MuJC9Fh9JoKlBhTRtgWoMpf/BKjEIcDTAGLyiYFInKSgAgChye2pRcrAaEIdGuFxBhSeeWAEHABoKI4GzyuzkNSbYzOUAEy9i7LHG2AuHGizyDOSLI0LwxE8cfXKRxzELFTLRIXfzlIC4DDhgWtkKKPAARkga7alXP/XhhFFJfWIEIVqoMSZQzLzytZUIEycGAmgVIYqL4swuMmWUmYIFHKAIxAgYjjjBBz8tscknZaiJItNkmgoDUWarQiGiAvQzSJCxICjAgQALvGKK5bZVKyUCcPBBwlGfkMSWVFKRJAtU41A3MAM2mK6KSohLZue95mAMGZ2SogaZA1b4ohQYLiFBg1MBSGMKY8F7ZOGHhbT/mtndKNYPyYF0GAQNJ2vDtBpN1RrNNxO25CDlFqBIpYRU7BCiCAKOASVdNA1otyVBYIojmQqS2cuJx9ZjTwAJJoDii6RRQaWFJ85rxqajWqRGpKashpiq3Z6CDoABueoKAtIvgJKAK3BLEAUaovINgwjBJdWWEWyRpOUSJFmhwmOOIedDmwkzzIAldk6GkcLXO0rfA3CQpAQYHG/ZDlMbcTqy78JzIlOHNbfP7LbIaa21lJqpFgIABrBkCu6lCiMlBzrgMgQVapdEkhEkQeVt3YczoHe9Tac6BlBAApIRBUY0hie7osYUJOADC3zhC4hIhQVKYAc7QI5u6jtK9rSQ/6GN/Mh7VnkIARIiCBT6J0ABggAFnOaERziBKQ5734C2JLv8xe1+0ktFC1bgPwM8QAeEuUEMYKKAndGkg5QJzxVwIEFEJO1tOpSEDx0gAUvgCDyUEQ9TNKe5EHLrATGggH6S5AgU9qeFw2kGFqbAI0R1BG0m4xKpbmeHEsANCiQYQamKkIvWrKkl4qgEIBUgAvV8JxyU2YIWkNEBSXzhEgx4xSUusb/bpaJcqNIFFrK3SPc0gFlfDA2HoNIprKyQhVy5ALQq0BgBiDJRCajAAUzQgRuGawRuK8EXUkE7FaygCMOJCxoIMw5ANiMNNwFli/QlgRWU4AkaSEEXXsEAW/+gIpPUq1Ens0eILRCigYy4mtUcxjrdiA9arjEAL3hxANBxxQAJWCZP3pOoAGDllqJaAbhCwABU5HEGdpBEMIfJTgjooSVJmFUatBMORW7mEbro1xNCcNEQaEADKmDZ2zK4uwt9RxmM1MJnIJao+XAIATRonQFO2B+wTeoCpSOOAgTQk0SxRTY4mAC4SmWqjI5gfxfMYAi+tIQrOGAILYkB8YrFK17ddAoZKFoIThACDkgoBCnAZtxapjscHMAS32FkOBtYDbSexj4iVEABTngkr3ktbA6AlgAgatIwvEpLJyBVC8pVKhVw1BZQkIQQVEAwCQwgDQAQB0uAUAkw3eT/EVPQDhYEMFknPMgTWT2BVlOggV1KAo+SeEJYvbnFcLrnPYaKClWE1IAGJFAEcCHACkmnsa5A6wB25Qk5hVQBAnRgs6Nqwf0ISto+9nGaK+gAAJYQhTQUgDoAaIYukIGMZhxgABJohmLiNAAMTMATV8VoRkF7xypaz5vtYaIyHsGInLZ2WbDVifnkMi14xoUApANTenzyCNguoAIAMBlf+/q2POaOtNMMQdN4QU8CsMSF8QJdvOA5AHheyBKwm0CXLkre+m1Td+hBhkiBsoVGUmO1V0tUAx6hhgYSAA0bAFuNN+Akr1DYCRBN2JzW8KCePgFypWJZgnsYzIE1lxeF/xDBASAwItI5YDgYlgsGNoZFS9hyfiforFZ3+VXSXlEzWugMioMSYNNUgxGwbQCMeQWAFqJBEF4Th0G+QgG6AuAKEGXgT6hxBdjxNZv4G1fLvmpRH3QAAxKoQCESIIII5yJn2tWFBEwAnOCkDxkDeBCXu5zVrXL0ki1rQSPE6skWbcELlFnxAlz84ny1RwBRaHKFHTUg0lEXACzw4BbBg4zwnkADt1NwccsFORVQCAAiKESzIT0GaDVjAJmxJQYwEBcs6uIAsMsqB3qQVR7wIKMMYAAU4GYuAHSSRZMxM3jQmuY2PyLWJc3Ardep39kshGh73iI4260LDHBB2G776v+QA7uCRmCgGWehiAEK8BILZWbTA6D4dnVxBXje0hMTmEANtIpRrhoa3eqeTFkb+d6rtTnWPDEAGnTAJK+h8CsQoHAaPkkIL+R81S8KLwc00FGXWbRLRcCBwkVwEjGESBwEMEAanGAJS1BcF05wwhUkIJcHdeCWHfB4CMQNaqESdgQTOEAnfe1vFKvYtdVQQ6z93AxrydliKGwhzeMigk8CJecoxgLAPdDxfw6WtMH0QdGdWwgFiEE6LIFJBuKEjMxAPQNWn/aDqizcbnebq5a0RQiMcaNw5Au1qvaCe8hpGpWDx8+0VoB97a0xXmSAuotMLelzHo4N/73jHOCBRjX/0OCE1xTxlSDMIh5QCKPoYgAsmLoTIg/w9G33lhyvgcclxFVyT8BGnvymv/euBvhEpc0tcpGtHVXhFcZeLlgoud51voVeGYMLQaj+tyXEgUS7xm6geMDiWZKEulkCAdCFzIgCqns6S2ABSlO+3+iAv7M+3uOBFOAAGykxsho9nXOPUWoA1QMPJ6iYQRgI/hCEmWql1igxO6G9vWskYPOA+eM48ZoArSOOuwmMCJuOPXgAXhhAqIO67CAK5SNAS7g48JI/8aq+rKqBzxurkrOTEwOnvfsM0ICt9nARh5OzEaSx2yIA+0IGoIAo9/OCoMC9AzAGDzhDDzAGY8AAWmmI/ysxBekSkT0wgDVgAc3oQaiDvGnLovVxIwkwww7gAo7zgAqkBg9ywrLau5ICDVerQjvBAoxrjdcrgPSAJxRERNKDP83QNmvrREpLg+Y4kwegABEZA0I6BgmwLjy8roubuuvajCnYNjVcQw7qtVQzM53bOVFClLYDCjsxH0eRMmEUHeKIiwy4QNGLwiu4AqjbLqnLIizIgEK4kmOIw1IUBOqyLiwYwh6sOqrDkciIOgkYR28yxH5rEcpIR9srPWpglgYYKXAKB4fjClViIUu5tePIHs6IQkuQADB5RWZyo2oIAwUwhQewRhFZBLnAIqKwwyFkgStIgwy4LhyxhCtohv9mKI4OogZEtBMm8r5cFENl2MV3VDXP4IV6pCspizK6IoAKQMbQMzOhcIJpUQ9mCgcneI3fOchSLAyYwDLIs0MWGEpLuJehiIIKMJ80MESySkenLDkUC8mc04LYcjUOdMIDsJZFCAuZcisIaEmXZBHK4JU5ODHPwIIfWwILtBMWOD/WeLKeNEVAWoLMcAKi1IWhxAjtoDoRGIBmwLvwoD0UY7dwSkcxjMpcJISRrAbYakIR4BivABvSEZ08IwBeWKR0pIY5qIZHWCShiAKMPEbPlL0AIYAYiEumoi5mbEgfLErFyK7qcqhwaCTBLEyhqE1cXMfSu6cGMMQUc73x2a//jYGWePmO1NqR9wGAEsOCZAhN2tMCLGiG2vI/1FwEpktFvGQBx6M6iKyWdEPB0GOkdAyHNJAA9jMz29PNLVADUWrMR4yLaRlH0Mm387NMT0pHLWCECjAAmssOEcDIKGDKo7gCh9sb1ByDC5iVikudKIDIKDgAB5gUAihHjkQxtDtLKBTDXETPDLynBdgFF5mW5SNAJ5BOjQEd0DkALAAnJqKGNVCA4bgJJ/hPEfCkm7CEKHC4A52OCygAA0gsCVgCIf3P2diADii7+wwnJQ0nqVy1qMRFqQS/1/o16lofq6s64fwNFF1Rp1SGbGkGZPDIcIiCJaCJDAEuhNzRlliE/xjImeB0ABzwE2+yk8K00A190sPMU6nMz4F0NTVIKgBwPgyoEAjVmAMgTgCwK5KiygRghPA4z8sJnEN1ADWtVMLIgnRbIHajDD09zExET38DSTF8j4dxsQFwgLIbgFsyAQzIN+k8v2OcDFB6hOVghNqSi9fICmOyVF4dAwq4kPAID/HMTQtVRzMrK0bKxfxMACFhhGYwAbHShVuyNgfoUfPJs3z8yAYyidPsVW91FyTlM9pjUbQTT7O80CVNTFoNDUaIgngZwkuLC1eVDWjJR6hkVAWgzm/lVSqoQHHFTKc8VnJ9UvTMzfejymr4gGqAtFQBxngy1AoDgDXwTX8Lh/856BG43NdexYEL4T4w9MiODFgoBNUl1U1CwAL4IsgC2AMAiZQLWITRCUZoAcxxPVmyoVSN5VUmwIBlEtfAhCinVMdyFU9jRcy989KBJIcYcIRxcASndQQg+AoAGZCZBdrCFCcBSAYACJ6cVdMLSEVkWCA+q4zJEFYmMttivVoLrdP3e6/3uYBxUARFGAhH8IoevbVlS9LxzNoDIMWu3dEhIIAb8dh/VSRF+tmxrQxjDdp1zM8wMIULEAe5VYQqIIivuNvzqwD2AyUuUpgKwNm/Rc0NcBocuSswBFrE5bOfBY+aZdyQ3IKlEAMIkFy5FYi6VaHzI44VbcrKCAcBEIH/wQjduGyqNNAMpgzWFvnXnzVHwyXagN3QR0gGMVjayRWHKnAEsLAUAdGtOQBazNwVLHCCthLenlQEyHo6TxJbpjTdw1XeZgpaJjLaRmIEciiAJKFc220hJxEQ+LTAsu3daEyAACLf6WAC57oRozTEnijcf00K8mtC+H3dR6gA+7XeyrXcsEADjXGUA+he1JVVakgOciAAriXgMVgE4rkRzbgJ7GFgMOSMKiQ/RXLK13XRAgjByq3c25UzNIiBPFvKxOUzvbiSEDFhlqiEB1Amm/SOBVpf1T1d8iMpgB1YZc0AB8DhKtBh2tAPEuRfm/NZPsOCagAM4jNiZNJB7IiM/wVmIHHlCeRV3aBNXnXcUN8lACzO4tu1mHtMFY/t3bsSgAUYYUEi4CrIhQeogItgYqRg38JN3Y4UVsLcUGqwY8m1XoKIATkrCDTYGOci3C26qznIJ78l5COSSKNgJp7YjEV24cTlov812r3DAkq+4EteBEGosw0YznQj3DaeAwEeZPJVBJhYAlNOHqRYY7Ft5LKFYKg0yXZTiSyO5rq15SRRiB8mXD/WzGTghSIm4EHIBVQsXsKZgznYjPQ9ZvUt3N49W6gkV3DSAr2R2wsGghigZjT6SkcRQJ8NzBB+0TQNXUewjjSQyKkyUwGYg8uyLJ3gPp0IBxA1XQXuTDWAYiQtmGgXEQCVkOdxGAcg2INFAIKn7WEBocPLYkp7EgCR0FFeDQgAIfkECQgATQAsHAASAHAAsAAACP8AmwgcSLCgwYMIEx4MRGcWHTr3It5TSLGixYsYM1JsKEvWLIcPIUpkFZGVxpMoU6KkI2tMjhyyHs5CAnJWR490AgVSybOnz4YuX3Yc49IjkpdEXY5R4uKLz6dQKz5siWTM0B1Ys9aogTUHVh48usCISrZsk6k5kh7dUSOI2yBcuLit0aPHjh48jigpZbYvz3tAX2bdAdeD3LhBJkygWxdv3rF+I2MMBLih1xpcPGjWzEUxZ8WNFS/mwECyaYr3GAIlnHnz5gmtDS8W3XlxCguncxfUObOq18Kajbnu0GFzXM+yJ4Rwqls3K4aykCCR9RKzZuKbiRM3hsH45wkqnjX/181wptVZRAm73mzMRHvuwl9P8MRBBe7xpo20fOn1snXXxgQIHwYEylcDB/WJh59kSuwgGFtvxRWXB8Vd10GA3cm3WA8cLLdgZAzwoFVbnbk1oXbFbRefZooxVtcJknzoVwhYtWWiB4qViCOKxU2A43GenBCCCiqscAIHI9ggo1l22ViYaFBOwIEn9J1g5ZUcnKDCCKmUYIcdKpyQ5JJlcVBDjtcdR1eWIWigwhMjSJJKKhaUIEkLkpTAzJ7MfIFICE8oSSZUpWjQg2cVdnagkAx0YQuXXzwTATOTRvDMMzaAoCmlX4wQ3qBQ2eDCDrBhx1kPIaQwAiq2oAIFnZfu/znJrJrWCgKlqahgB6hPTQKDetoZVsMJGrjgKirIQmFBBJPuGYittkbQ6Qya8NpTIL9aZ0xxXHCggS2ttprsF18wywwIk5wL7a0RSLKrtT0ZccR/FEqZAgMu5AuuLYhYQK65fKZrK6XuwnvtvEEYNwGxDNjigsMPI0JuueZOsi67X7xrcEqBHKHeZsNuOQK4D0OhrL/lqnvxns/MsLFKX7jAA3CLEfvEviTYAgUqdPorqcrQMqvgyyh90WBiOI4WQsMkOGoLDFAgUkIJ/k5a657oUmop0SlBwcCZUdY38r46v2rBnLCeS+mldZaQytBcZ4RKCFAS1yG+JDTdBQN8M//gpgYacGmBpF+kMoKnb7oct0YMnAC2aFria8veKaTAQ+UahLBCCEvzTO7OqMT55eIn0R2lll00zUDlfJOAir+GA+6CxF9Y4DMzLZOukQocnK4CuCQ02kXqr5fb6fBdQMFs4V2WMIM1umdkQQqHikYauHsjH/wIeLYwctO2GH+2JHlCH/1FEcDAQF1nntAw8A8/qgGc7qaSNwMkVM1pCc+Yfz5FpaCDEYzgghQg6AROm1zZ5jS4S5UAFcNjAAzKBS1B/U8hpRjgLIzAgBBwIAUkGBu4eEY1n32hBJPbRMOWpa5zwe2CBwlgQ2bhgtV1wQX3G54t5kS1iaFwdfjzGbT/YKgQ1XzECDDInguQp8Oo1elzJNBA6xARq035j4gGmYQRBDhAGNhCeEzEn87aZoERAK5RJKBis3BnQSwaJINchMESwchEF8AABnWCQhTvVTkSdOkLfGqjGwtCLiTCQHURZKKjTgbB1aUgBDxoWNowNUiE9OmOcmyUJrWXs5NBwRbBI16/UvYMEFQyISCwwB2zp0jktQqPiHBi1QBZKWYI8pQEYYYqEclK7b0uFbLU360CicuE2OAZqEBko5Y4vJwhi1Wv0x/LrFbMhDxjBMHjWyJdCS6/ifGXtqvTC6tJkGdIQnX32pvwRugCDaRAik0MZ6TImRALZPOMfWuUzliV/zfX4fFfkTIlPQ9SguBV7p19Q94zQekq2/0rAoobqEG+MLkjsA6h62wV6PpVNUsJVKIFAcEIGGDRy92LpCm4oUYR0bN/7ckkIC0IKyB4BIse9KT4KlkPAfkMO8yAClLwhlCFGtOZDs+mlbvc5Y6gUrN9AQR2EII19DDUoepBopmiaReQelCTonGMX2iBEHRQhrKWYQgvuMFV6ZkpX0XQb+60HA8gadJ7uU4SrciCKjawAQpQQBCDUIQzBmoDVpQCEVt1ZFLnGgIhQTJVDDhcK/gqiL1uALAvqBY57VCCQHzBayQtqVx5gCAELY0EUCDfZC97WcDqgAqaLeYMWqGCQP9Y4It+6ypYOAfJe6GiBOSaQQuwsQE0COK4gyiDFGJ7SjtkwQcTmNoT+AY4y8mVtxpwHRSmNrUW8LW4xh2EOKSw1lMKIQuNIM4KStCKMy52sW1qmLK4613wXja5L9hAAVRRSUlgowMmwAAAcGCHFqhAinF9J28x5zrbOa8VxEVDa1UxiCHgAAMmwAEFsiAIGArhvyYAgIgdIAQhrADB79TAJgDnThYLzqerlbAg7juEAohYxBmmgCqyIATSPaMFnuiAgCVwAACYoAxUEMKBWcxkjDKAZ6nwaRa+W9wNULjGIn7AMQ5QZAA4AAIbGATXWrCCCQQYABKQQDNErAoqUKH/BU9YMotZhz8od8m5fPUrGoyrgxoT4AEPMIABjnGMG2MYB9gog7WEewIAnznNai4yBaighyG0Is4qlmI+UcvS5k25r+AFLBNsDIBAE/oYD7hxl3GwAUUvSbgruBAGinwANQ9AzUQuwAv0IAUhwJkBRDowNvGH2nCWYAWg3jMaKMwEBxBAxIKOBKq1fOpVU0AHC7KBkoNsDC6n+QDNWEKaBzCAAxw5qG8ewXTn18+8PdPBKyhCcSmwZ1Wootl/DrSgp31qQgdaxAUQhKtPY4MZZOEEZgYAl2tN5GY0QwLkZkGRBxHUH7ygBZeO7OFCqDOOQmG48/YrBaxchmcDQND7/z7GoE+98hsPuAimKfhwJwBgETdj4Qt/eMTLfYFdO+MbTICzFF2XrJOVUQM+uCwEIFCAAkhYFc9G+cpV3m+Uo7rUAMAADlbgF+FiI8ghxjmXHU52EVwhDSy4NQHKAIYfOAMMQnjC0HkmiRHYzouBS3QVKjuIQTCBCYu4cSQikfJTa9kAgJ52qkWMAzGTpQRkpvmZwX3zsRM+Eg5fwtlZ8IYBAGADPucEGIYw0mLbrmdAlPciFtH3MrzgBRc4udQLr3JBA/r2txfxBsgihFY0WsgKx/ngB18BchigGSLQPBvSgPYBQIAJYPAGJzhBhSG0oAUnq50FULE6DWSBCYpYRP/TISAICJSa0FYvPOJxz34RQwAqs0U48HPeDGkbYPiDvz/yr/AGS6Th1hAgDkTwDdP3A1JgB5JgOw70SX7TAtYgBVKwV4JAAeaXeOg3deRgfLa3fuyXagSABj1hDSYGdiJGeWRXf8cgbcegAOSQghVQAVfABjLIAhIAAWWgCG03fZzwDTMAXJdSdyH0BHYwVWBQBYrwAoqQBLlQaocHaMZHdevHgR0IAASweyrRAlkAYgI2dkvQDBXgcIN3DC24gtJGDgngB28gg2xwBQdAAeKgCDfwDXqgg99ABTNwKYczAq0gCQ/4A9+gCESgCEmYb06obxo4e1LIfgQAAS+AEr3/hw00t4UO94JdeIIquIIKgHIK4AdOwAZvkIZtCH5EAAbf8AM6+APWYA12kIeSMAPk5YeKYITnEAO4ZwpjqHL2N2goB2iDdnuCBgAFgG0ZMQRZGIlDFm4vGAkv+IX1N3gZ2AksKIadcIZOYAlOEAUiUACudwNgkIOnKAXWdziuqAc/AIuCWAW0qGUPkIEsZwBj2IKJiH6ERoUUkBFAkF5hN24SsAQvmAAJsIwVoAACuYKdEADGRw62qAAVwInXKAIAMAhp1Y2mqIOc4IcvMITkRY4/oAfd2I2Bp2W2mIG6aHsZaAoPYAoGYIu8yHIA0GEX8QKNcGa3BmkSIAIi0I8K//CPAcmCAhmQUieQfuAHGZABUXAFzYAGOAgGekCAFOmHHXkD3NiRYEAEUHkBuaBlCJmBLYiQptCVXemOiGcK/aaBLXkRelAGOCBiEFeTy+iPC+kHbhkAnUAOc0kOA1mS5BAA1BgFUcAGUeAATMCN5ViA3zCVgAgGN/ACVQAEaHABVUAEVHkDMXCVIBmSIlmSXmmLU1d1APB+FnEDaPBs4GaTy6iX/ugH/ZgAAqmVClAIBqmVeZkAUeAEjJABjBAFLfkCbfcDYKAIQHABMXABiwAERuibMeAADuB6kZmOxxCSmqmBgNaVWYlqYriCKWgAwHgRRBADz9aFFSAC9acAAf9QAdkQlHDpj6q5mjlZfLCpl37ACLdJlNl4g4HoCEmwB003fotwDo7gCOJQBeKgm6OoCLQohnipgRrYlSepoNSWlyJpAAVwEWVABgonAVdwk+KplwHgB3yJmuiZAHSZl3DJgiGZkwlQCB9Qm1HACJEAAJWQBI4Ah4gJlTRKikvZm3F4A1LwAum4lVy5oJkpnbdolwrQCWKYnRYBBBQabqRZAR/KoXwZBUGZDQbZlQXJjgYqkAHwAVxanuYJjBegCv9ZnEf4AoFYBfZ5AYqgB2zKo+eHmQoapJlpoHlpkPMYoRaxCEuojCKAjam5kBkgDNcYlB+gAHJakgWZAAGwqNP/eIaOWgHYSYUEUAmVQADIWQn56QCVAJgZyaNOCKcmaZlB6o52uahaaQAO8JkxYHNXwAKoqZDomQ1zIKhOMJTZYKhy2gnQ6I+LagqLip6F4I8AgAbncA7iMKbgJ4iAqAj9CVQQ6KbReahaGaQHmZMBwILG5wCNSBHouISah3Y36aQnmgFOIAzwIKh8mQDUypUFuahy6a6mea0AUAbc+A1yKIdseqM3IA6u52a9OZnRypUoWZ1imJnsKJ5FKpKpWhGOsKRmxwJpcAV+kJNBSa7mCg/XKKUsSKrsqqF0majm4I8f4I8KUAkypgpAkARJAASCsAgXcAEFQACL+FcvMAhk/xCt1CqQooqX4smruoqqebqnN9mh53mGggoPSOsEUxqQoAqvcgmNpsmrCWAOCiBiMjupMbCpTedsyLl0G8AEUBewXpmBq1mXzlmq7goJnQC0FUFqDzebcIua2ZANAnCxGCulQ8m0mKmrptCuvyq16GkAF+CfVWCEkAmHL8AEjlAGfbcBS/dnhMaVsAmbdcmOWqmovGp8BGARFHoAmteXGau0dCsApIuu2eCPrnmtHwuv5hAArfuh6Nm6D7AIEUmK9lqYYKC4fTdjEEABABC5Vhqiffuxk/uMrRmUwVq1BCCMCQF1aHYFs0mrUTCUc0C6pTsHc3C6J6qondC3IGsOrf/rrlMbsuaAAKbqABeABqu3enuwBzArs1ZbAH5FbV7pt7rKt8Frl+1aCIXgB6ebiVVIEUCwhBKQBpaAsXcrpU4wBcJgvQLAwFGQAHMrkN3bCeA7vq2bweC7weY7l1R4qZUQAyKsqZvqAAUAAS9bagJrpbr6tB97v7qqAJCQDYUwlKqJnS6ZEIFXayxgCT5cjbUaBQ0sANQgAI9AuhorwYqKkAWJABxsvnT5q+E7lwYAAVVgplDZjTcAoPxaVnuFBp9avzDcvc+olXPZCZCAogKQAT4JAPWoEIEXCTZZjT48xFNAutRwxNYrDGycAB/gmnzrxBvcuh1svouKAIoaAIL/O4pS8JREIA59t7sTGHvrKLD3S5e2WJBzmckFyb9zQA3/W2iemRCrGgn8xwYHfMDwYL3U0MqtTMTwkAH/OAcNIJfeiwCCXL6G7LSMGgCLCAGNCZxZa3LPRgDySwFOCMPver99a6r3KwMBUAh0+whUurELq8MAEAlp4Ik+DA+WIABIm8eu7Mp1i5of0ADm0L0ocMiCjMvlG7LcK74JIKkmTKmUipz52buxx7FjbKX5e79pvABEPAdLjGoEwAQKQYvNUI39182qDA/UoAxqMM7UgLF+3AALkMi6jAAo4M65rKG4jADGdwFMkFbcGItdXFaDIAhogMyBVqWMOsbr3Muu/8ulDbDG3EsOqca8BqEIsad53tzN3oy0RBzRy6AGypDUAiC6R3y67BzSUA2+GuquxocGr5fFzDoI9qYKLN3SvkuquuqPm2ylKNDCAZDG5rAAj9DUzoydi5AQBAoAS/AG5TrUSHvXRd3KSb0MD4y9j0ANcwCX5gvVuWwOM/2uqksAL9vSBeBsLgdwFBB7zQmviby6Me265sClWvAIGXDWfIudVngQjkCLS0CudIzXq7zKrpzUykANwsClj6AGUwCXclm+C/ABt70AG13W7fqzH9zYk3qpwC2/FVin8KrMjAoJkODE59wAj/DHauuVBvDGB6Gkx1ABgVq6qQ3OFM3aSf8N2HPwCBI9BwsQ0pnNpXPApeXb0U8rl+QwrMmKpv1ZBvw6CF7tu2LIy/erl66p3OZrDg2wC0cM3fg73QlxAWRwDNJ8xw5MxEWd196tBgIwB2qA1FPwAZ2AABZ83rL6AeCr4TKg4XXZkjdABS8AyVxdZWiwdBR4cmbY3racl9KMnme9AA3wytmwAO4tktRdEKowmZGQDRlwx6+c10Vc1N7d2lPwyUitDHMQACjQ0eB72w2A260b5Vhel5XwsjFrciencAPWuzGrcNI2je6tlx+QvTSc1h/g4FW+qDJQkFXb4wShpACgANlwsQ8+zkge0aydx6Tb5I9g2J3Q0Qtw6Ln/vdtRbqoPcLWWipzOVszHTAGNgAMQgAMOQAbPdgxiIJ79y78nugC03MpVbg5qK+dlWd2lBoMPTdSvvNrU0ORJrQaPMAV+zg3K8AFl7cS6zcGK3tFdSQBAAMmtVwaOsFcU6FdhlgXMnldZ2AgxQKFiWAGfPrrW6+GQEOfQiMMIscMF7ARErdpGPtF+rgy4ruTlzg0N4M6HPsgcHOW6WtYKsHaKUAZcneIX8F30tgE6gHF4Qj4YlwXxlpaRkJM1nAEPjtvKLQZU3JkIUcoWKgzCMAWrbOQUXe7fneTcoAYejgCI3uvvjuUoELKo6tjBV2QFwFfyJgg60AouzyVT8yV3/9IKRTBrgCoAasDX6V3e2S4DIjnKBNGwD7AEPWy9FO/gFh/rSU0K2tDa3k0K5v4I5c3m7f7EUJ3Rqmm1V0uFYLYB8sZX2LACb3I47sJZX9IKHfC85roMro292WC+kPC0BrC5BsEElTD0BkzU5krETt/K5M7aTJ/kgJ/r5Z3bh17Y5n3bhUAAI7e7jdm7IkcBRYADniD2b/IE9CMnqSAJnvC8q9zawpDeHp7Oamt8AHAQE4pmTgDurt7df630SU0IXgD1gs/0HJ/WiN7O7wy+DdD7DdCZkM90jv5lkk/5l49xL88l5OMDGGChn/8IwjC3hQC+p762jG8QA/wAFbD6RP/916/f2n/v3dqgDYQw60tPCtzQ9FWO27pt3h+OAB9A6xUuDMh3ADbZs2Z3AMQPAdgAEK1aDCQ4QhKUVJJOYJDgRIAAatQEzPnwodCCAJA6kSMHYFETkCEF5TrW0IkweA+nRIyoTI0ymMqoKeNGSlvMmTRhclPzqIE5BEFRBCVqbkGDncoEAABAwGmBAg6cAigAgUIRbE+eDJRkx06qVFBQpVLBME1Kn3PmCMiWrVAAuOQMAEATMuQFAJGuvHHixNIUAY9YtozpUhkhbV64FVZGarFjZQ0WIBiKgEZloEdfwnRSQJCgDRs+o6EQ1SoFCNharSYoqYUkVGOfmJBg6WH/gw8PP7iF1Hvj3Lp2m8R4EClDXwHwIj58JFjN8800SXnxApkmt5rSIwOlQcPyZQRGGzQ4o4YUqaUFcER1INUpgQIUNqQWSHCgwYSpnhgbYCml2gbmyGYyFGjQKICOggtJEeKaucISCIWBSKKHGFuMG8SoI0Wnxgo7T5k5JiPKsvDEa8C8xQRI4wAA5lJAhCuaoUq+Rnx4YgT7WjBIkrBUMKE/eFJqILA53pIBARk2OgaADYRzhIziHoQwyOYG4/A8xxC7SacPd3KMGwE+ELEoERdY4Aya1GgGPgoouCCqqeIrAgcOVNiKq9d4lESSVjDoT6IAH2KrkEIQyGgjuoQD/yKXB5a4oi8ngoRIDYgKw06bxLzAlBAvr+QGU26okcxMo8wsEymeAJBPEFUEuQACOOPboJE6n6iPKx7tECILDA7IYI7xqHlEAGEyyKaiBcwxB5JIIBBuEUaXECGK45gbjDAtMd00ppqwk+7T6h75gEQEkk2WqAV0kqCp9qZiasb5PFGBoNVaGQGhhLDptQJTh1QpMInM/EAEAASx64JcDnC0ryhOYqk5Abw8DztCCPE2qZ1q0pabBijzLjOggELgpWUsWfddAA5oJoMKHGgTB080GMEgHW9ECJURFgIgDkiCWuADcwrJRq1hCT1uAAfsWiTlKxp2olpBIYr44uuwW/+MW50upU5TNSYTUdlkRT5xmQOqarO09phywCocJjjB5oT23HMgHzDIqxMZ4FqA0EIqGu+DAD4QxmQcQlp6iTTesESYwZODZ9icrLMasQu/vRpDTDWNrOOPSUVhqAW0IPu0NmGViioIIDChgwk4COHG/MBqoRVP9s0IrkJKhSToDyTbzZI3Dih8uLyuYIPaYo+zrUJvL9cGQ5m4vRjDrTUV9WtlzfmchgXU4GYKlJlqphkRDnAZBwzS96D1EDSwZWbXnpgAAAkqUKC3jHTv+aiHhNmLBQCAhDiOotax5pABlFQKa1bb1OW6dSEMEWJrNxEAUIaCAgt+zhxqoMYbAND/rkoQAAAVyEAzXOaA/lgiDRgwhts08AQSzEwFHQBAMypwu050IjxhO0oDhiUMJ1yBYE1QBJQU4Ic5MCIDS1wLNaLzJYtpLYpW2xB2SKGl6pFCXGP6XCc+1z1lXEFWFEDDBi7gAHZRwAECWAaGuPGGFp6gfTLswAHqZw644A1dPxtP/5wggkgkTRxQ0kvDqMUIwDgxJ596HsW2drWswcQxmZqgGkKkvQJ9rjIvycAHoWK2AjxFjQ4B1zIw4IEenEADqzwBDW2YO7j0DAG9MUr/BJSNChCgLkUsDgkRiJKZuDGCn2IgdZ6XlOzQJHPVq05kFqBDy2gSjAKIUYvmorIr/3xwlNSQoBcIMYAWckCVKjiBMeyYgGR1QgEBUBZc4EKktyiAAIMAyZMeEAc/ZAAwE5pcFK9znm5qo4qNgWC2mKkYanARBV7UjAgI4ICqnE4EAIyPA5zAza1ZAgOsk+MJJsAQCSRATG9hp6E60bMEPKQQCgDABUICBCjFIRvCeIRMBmO1nWDKJpk65k6mmC1KGhNEIusiChZQUwWsDQ2jCWVT4kOAlVByGQPY6AQ8MQH+DEACfkiWO+FiqAAgoBAqBUAM7AJTACwhAxNazqQspS1NaeqYk7Ma5oL6SDWMizKahIQP58Cih0IFjU6lAAGigFHqEAIeVGVhryDEAq4Gjf+kePSqH3BZAHqC5AZLS2tKWJIcAaykpjFZhkQc0kaLLYMQqKUYIw8qV46JaKEoCJxa5hI+CXjQZQTwgwDAhankAC8NZ3mIE5BFqGWxExIygEQAEuAHJtlFHHgpTqQekhJBCSYmApAADnzw3Tq+ISLLYG3FMrdMZnLjEXMg6lDM8QEFxOcClWiXCB9a2ArMgRrE5AY8/AOPNrZRAJF4QCf4Vqhl9YwGeYuvk2JAhrReQQIsmNJtxjOeKUjAByUIRIe/MMMDpIG8bqScNsyLXqH+JIOgS+oFUPNJqbSnsAowB7BCRY3FSuAKAlitADLwUAIYIAGFgETuEswRMQBAFU7/ugCE35Xb5QHrDGcYjx8I0IIOexgKT/ABbdhIsWwhBosT1CIeZ+veAHzQPUyRwLp2G4nANYC8EZERAK6AHR/DxwEGUMCQi0yoJHGEAMJpwiLeJEL6vYENbFhrYJqDGxHggMNaRgSOVoCDA7CxYhJ83qZRzLWOadK9nfAke1I2AG0S4Bjs7B6YluEEFvlhzk5oCgEOMGTL/FkB5DjGA/ZA6BhUgs0sgEcaJLAEYYhqPI/oSRRMcIIRwMAFXXCBLd7XgizgYAkArpimzGtXZmrjEebwIgbDE4DAps50aVR1AMx0Bi2wJAq+Im9y1qWyBBjFO9lIQACOYYBBE5oMuVgC/5Dg0eYr+IEcCvgANUoL6w6EIAU84EEKGHDxmbUAG15eBqg2Dea7cuMD5f4cAuT5UPec7r4EWGep4u1bajxqGaB9wwAGIAJCzVJo/T5GJQgNEggDSQADsOMHCVABCQkg0isowRcQ0YUuvC+GI3hfKzD9BtWKmVsZqp5Ax63J8BigPZUIpQjHl+obKgsBcn5EqDw7B5RY4mnGMvKfj0GAj/w8F5FIw/KaYgIHmOAAJ4FHMygwAxvcIxCl+MIXSlACSYyABDh7gr4k4Fti0uTEE8wUN9irQ6PI02xtaioBcIDfsIZVzg6XFDzako2TFKstRFbAAwhg1p8D/RgVsI0wmP9yAJu/ISVpwIEdssz4L8zg8ZEnQQxbsALawKO1FNtp1zn9iMmAntRqhgoE2gNR/N6P1btoY+udICBiHdBYta+EKpacewEWZ61OaEYaBpA4S0hEAhsoQQScjggLKIEZGEBdybjZwTQRgyBwmyC50oZlCJGgMIcHoK/TQRk2AYAE8LOekbMbSw5hUD8E4rcHIIMmgT/hgJJsWIY3oLCT8A8ck4AJWAEVUAEGsAWwkBuvcA2vaIFGAADbWAaaaCNtOS+eep6E8hkDiI+z8T77ig8AEAE/KJSLaADz6rEg+UB+AzjcM0FFIQMFsAQWuALG8S/lODgTcJsQkDgGyLiuUD7/r/CKLPgRAEMtLeE6E1umm/iJcqkAT1rCwDOBqgCAKCQU1VODTFkteLiCCpgLB3ApLsw94pCwNECOIPEvY+sADshEcdKA17CDAVS+ErADSXiCOppDkBtCUOGGRxqVvfEDETiZ35MADHAZQTSWfruIR+gmxRAGiCqAR+RCaHGQR0mgK1SRjcrEE0iBebEDAZyBN9wT+QGANPgyi8kQbakYrdEUcemdBUgAEXjFNmszwrKzJfKDzPCtxHDADEiaX3xEkkAceACMIIEQS7gCDEDDFFilJ+gKr3i8r4g8DvATbqvG81JASgITMVmAOZgCFoiCK2ARpgBECrCzp8kGkSmE/6xzwDRwlnbkQihZGJSoRDAEAO8KAR6QuHxkAChgxlD8ilRABQ4AgAGQPtc6RBLLRnEDlpoShihQjqWQyVmcSDEUBoskigALlc7oSC6MAQA4hkepxHlMA5L0hBPoKDmSGWZkxq5IhVb4qAEQgOchQhOzmC8xMWNSg2ULI/pJiabQrcK6gv+wIAToHWEpEgAoA6WEvxiIluOASmFgAwCoqh7QxBC4l5b0ilQYAeibyY47sQaqq/PgKfU6EWWoMx1zCg/CAQgYIQm5pMwYj2ThwxLMS0JbBEKqAKSDSkuwuQPAAC6ogU0kgZVsyVSwAAbwSh5DRdjCjpkwKG9SNmoAAP8TSBkJcIoV0kwCWIJIgQdhyJ7wCIrmOgAFIU3h2AMjqoCZui7gUZwB6ABPECeLGwFUcEk7aIFWwgBLUC1UfMy6EijJ/EABYBHgowoCuAITOD0CaAhiyYAFkCWi0IgkpE5IJI7dWyv/Ah4IoSq3qcqrHIEbnCEMSAOHC7NqrCthsolHCq0oEJ9IgI+UgQ8IIAAH8cnJCJnvQAFyIACDEdCfW4S9FAPHsQQ2WJzVFMxUkhkoGAEI/UrXkqvUstAI2ql0FACW+j7wEyGICtH6ExKMmKWg6I5OMAUA4EgWbVEyOIZsYM6n8QsVAqcJ6AE17IIQ8Epus75Gmpzn+ZKafIT/KV0EN3VTNWqPqrA1CcCuEpWly1ioKa1S+IMpcniUDGCE5QwSLxUnDvCEDvCT3OS8IfypTbMYuNIGNaALR3CEcwACIECDAqCvObWz5PCJc7kgTSIHn+PTnxOHPcgFcoC9DJC7H+wgFvKA9JnJRaWkdCQxRw3L8wpONKhUR8BUQ+u+EPVUNhIXoICE7ugOFDAFFTVVQkNVVb2C4xicpJOI/1KO/RozzqvQfoog89qaZaCLQRiEMvjVTI2KinrChwkR7/gOGUBRqnDWLnyABIC9FRwfpHuIjtOUCEKxsRQmbiVIg3oeA0CDQRAHhP3VRYCVdL08h8O+vUpW8Eiz95PX/0Ijg05oNHigilC6PDbaFE6z1VSknCj6V8zZPMVQAAoYBEcQh0oFAtCAldIYIQALlVArEInVUyqV171EOvJahnWxm7MYMTdaz2usQ2zEHGGiGJCNhJVtWUcog0FQhfmwilDKNG5YBlD1GXfVWYu92AfIUtXCjtJKifKqQqD614/7OLryVlCRznOI2pZl2UF4k9KwtQyYs/EolaCQgQUzBQPYWVOFFixVjjZaWrb1Vre9SVwF0kfdGKeNW0v1VUd4lVdBo94ir7QwUb9dqGPwRYtlSgWIAglxOPLiVooZ25qYIjfKmmpcW0/rtptQgAs4B9ud3Eq1XDhRgNKty3zrGf8ZCF5By7vBhbAKsC7TBVLlzdoRO9yfPdzE/bZsUQbatV3JddnKjQG0wVs2AppCSIBZmgzhTdHR5FPTfAAF2LEJ8a2jXNoAK63DNd3nVVxHjV1uMIAYuN1KxV4XcxP6ekKVaq4RQZJASxRnJVwFyM7l2K/mzVoHJtuflZqbgt6kbS1ItRgDqF3bRdiEtdz5kgoSEgbl4tpZWi5SowCeJYl6FRSWcF7mfd7DzdrBgAjBcKK6al9vJYTgvIAkuN2EdQTUcJNgQyMFWCKL8E/olIGOAF1ThZJVVQvGgYjmfd/5bSPTvZaIeI7rqFDV3bTg3IMe9mGENTQ0uIAPbspjIZT/3igKEyYHBxiC4n2AP0WglMBWKnY4sr1hh+MglpCJzVDetVUvvLNe/XUEFyWNIRYhac0AIkPWdtWIjSAAJojjOUYJYMJj+J2Jn4UJGP4sluAg6YlhsjUxAXCAHrZUMSbjV4kBViYA42BkZPVbGsgIjSCHB3AEU93LByChQdVXLF6OJZLiOZu5h5CIa1EGUQ4wbPSDAojbhN1gcShjN7kAVg62J3SCbFiu4N3m4DWFB1gEMODTvXTKYZSUYmajazmAhwJgK47gBeZkosXGKVqGCoCAc+DgKqDcPXAxM2bl/z0AaU0AR74Mbe4EX7uBKkUrp4SUMWSr8SqtNHCZDRDK+DmcuYepEjXQ2vGaPt6kizJA2CpQBEXwVTNGg0VAA1ihLxE6ABHot95I1hwyBVMogBeo0oFD33waQ7OVX4eTCOLbgBUQBByoDWx16BYurRZm2tUKTkH46CqoAnGA6ty9gDc1YwoUoUhAzYxIksv4W0m2aQBA35kKSZ9kq3N+gzPEBmwYarNF6oeuEpsiWqWduXni4KiGapc140UAVmomu6lQmBs6URqI0gdYUQG96SOCPSCSkGGJGgqBtTOcANpgAanxCQHwIR8alubgIPISnZ5+BD+AgDJgAiZQBCZ4atQ2NEHYX1Uo4xiICqYwAHfKoZi2vcxqx4AAACH5BAkIAFYALBYACgBzALgAAAj/AK0IHEiwoMGDCBMqNAiuVi1wCyNKnEixosWETZoEEsWxlBFRgTKCy3ixpMmTJTNuNPIJyRgkMD9yDBSolKiMTVih3MnzJLiNoli2zJGDT44xLV2yHJMjppFSgXT2nEoVoQ2gn5Lm2FGjxg4+Xr/y2SGWh9kj15pUXVtVI0eXTMeADcKFC127d4PU6MGBR18GEdgK3tkk6FCiW2tw8cB4sQe6jfX25cthhI3BmC1q/EQUCeK5i40ZY8z4bt0JHDj0WM3hWebXEd16RtxyB2QPGEYznsB7wu6uE7r2gAK7+MGfb4kazaGY8WjRzzt04O1hNJcOeHvYMs5d4EiOQ7nW/wjiPHd10aSnO9f9WC+DQN2NF146ZgxX8ufze5jOuwN03MZgp5d2l8WXGXKicIaYbY5VR9puHZz3n2jT7RWCLwa+hlVRX3VVA2no/TddhNKhtx8XqIVggVQZDhaIgrZ50FtoDq633wTSSZeejDVUxmKLbLFiy1gfppfjfiYiuV+OR0qHGgepQASkYDaEMJ5jujGJnXQontZbDRN4EqaYHJygwjVTDvbMfc45x2RvwfVY5glmavBEC1C0ooIKT6RSAghpsmWDBs2tl6WTYaa2ggoajGALFKlYUEoEzDxj6TMgMMPMj4Hy9AwHYEYIXYBvTrDCCo1CasE110QQwSQgxP8qq6ycdorSDCeMJyGpJE7nSQgpMOAnq9f4QqmsNtgwKwgF2soTCFaGxuubPYagwqMlXFNCtscuu2ytzl4UAQM9cEGhCVpOxwGqDDyaip8l+PIMM95+G+5Oz7hQ7qjT8saBtQx04W62z3Rbb6zg3kuRBTDsEBq6AS7pL8AC2xIpq75oerDGCp/EcLnnpduBJyeEoAED7Vq8asEF03twsx1bVIoSzSWJqKIanEyCwBdfw7LLy9Ibc0mlHKHYf+vx5sm6OQfcBRSr+iK11JoCbWmlQ18EAgNgemACe4zx968KTpOgsgXvRpr2vMzMIAkULWRt0SSE4uhfmwGGecLJDIz/QILZUEAxAqM5h9B3CTPMUEILrbTimtwT+QLqYne3OTIHKZzcxeYodz5C4IL7DUWxJUiCOMyQJ8TKNaDazZ6TNZSM8s5dzA61BZQ+I0kqtsBgrLaSzJBw6gSxkkrr143Wq95kd/G37e9aIIkkLUhyDdqtlt5KCcMTP1AqYvZ3Wl2+/svA33+DnsoId1ZfwjMWQG3sM4h3770VUIRPcmrAKY35+WZTGasssC1LZcsCvYPBNTRmP+894wSeCNbmjnCEEHDAE0sz3OZs8ahVFUte9HrGDOCHQAUeq4HeGwEDYMAAJcDABTDoQgpScwKUdcEFHOydBSxgrIxVylJo06Gx/5ghpfspxCMuNMIYXOACBqQgWE7b3AZtQcBiUcpVEYgfCWCgwIyh0Hs28AUMjGAEJUjxjGisGAyihsUI+AIKf+Niq5hhxIiwIgJkfOEG0ZfGDUJhja0qWBZFBwWL+ayOC2EFCDzCRVsIjHZOU8IRpIhDIbrqjU6zIRQeh0jVibGRfewjE3tnxSwW0pEwvAagOqm6CHARhn/jXBTRaAsY8tBVzIjAB6eGKVYqBASp4CIonWjDNDJRjsa6pNSw2EtfJsQXN2SiC2r3xIBRkIKbO2YXp4YxZq7SmQcJhA2LyQC+GdOWA0TbDnf5DNSBkyDP6FwmOzdBJZjxho9iFRz/9v+owEXqnQqJgC2iKM/OTbILSsjhqmCQQx2uDKAKeUYsa1dQBhx0mi6Qny+I9cFjQTQhNtgnRXPWtCiOMhUb3WgpKfVR1aUCkiiDIsqwiU9IYWxqEWhmSw1ivInG9IkyjWI+rVg1Zrhzp1awwUt3Js8nAqugm9Ooq5CF1IKwwgbXoN0RnAZUYAG1cyRQFVG/WVUrKBIEFiCBNSnqRKA6tZoocxcBn/FFVipLUzCAaUFJGoK+AksDMoUChsoqEGWxogS802s5nQhYBvg1NSZrVyo4WVZWvEAIWIWjDSc5TpRp4AhO7asGYDBZZhFWIDNYwQno9wQVVjRgr5XsNRJngxn/MEEKUjiEPA5xCIiyIrU+6EALZvCE2MIWtlHl4UYVZwMp6OAFueWtHvSgW2eyQhIrkI4JfDADIZCtorU7Y1hXpUsCSgIEL3AEE8TBBCa84AVgoIIUWMmKQwwhuxjAAABwMIT7Go6em6OdH0e3Q/PaYAiDGAQaNkCBBg9iA/SgB3vvBw5WjEIIwc3vAQ5gAnFQwRWMGqfz0Ie+R62xwCU4sCA2sGJBoIECK6aACRyAgyLoALNZq4U8pDCDVvjABADYsAQOAIBBUGEIrRgBW/dYYg7e7nopZsIGWCyIFg9CEBDQb37R5QMduKJjO55BC1bw4yAfQAJoBsAG5MsEISi5/5ybCFgs+RlMD0LhT0NY8ZRZrIpBiIMeAAi0oAFgAhxQQAejsJU8autjHJhAvxIYgKQHIAEAFGAIh5ACntRqTvSJLlIeHEGUVVGEBW8ADarQwZEJEOgHuPoYDwAABrbbCiFMSR4WFsIKcNABDGz4zGiW9JAdII7cDsFv8hzx3z4HagSqYAZSUIQqTj1lQfSZCYMQ9DEM8IBjwDrQs66xrQ10iFFgF0f6BUAz1t2MSF9hAFcgsiqokGkhtECtNmyyqhjGgGdLoQpAYHG1BTEIJqAh0N72tqu73W1wd0AH3bmqJHzcASAH+gDN2HAzRHCFd19BBBKAAHRZQQUhiNR5kP9K27uuYYsQDFcK4qA2lQlu8FYvHNYMjzUAYk0AehSHFTwes6P1e2Z2G33jumABC0RAgGI7Qw8vkMQI/Ga2tO0bBhoIQfBgLogGM3jKBb8Awru97VcvfOGE9jlmwtwKMvda0EVftwTYzfGOi0AEan6BdN2Gsk+rHAqODQG09QCERTTY6zQ/+M69bYDGn/3sgcYBEwZjg1G4wu2PDjIveMHuzXe+An6IwhWccIVmFIAJYPjB01/QAhWSIHpW30QIngBtKajixRT4Os0pkIudu9oAsHY85APd4SBJQdcZ1jbnOb/uzVfA8yJIQwZE3/Eiv0APznAGGIbgZlCz6l0j6Kv/EEYhBcIzGPcw9jMFfN/txrv/8TwnwAaOehIbvMAVwQXyhjfv7WZUoBm84G3L53wVEAXTt3QAIAiop3o/oAdu8y7zkwqCowKt8AKjMF0Bh365JwjiIHY7ZwCm8Hvw52qCVgBUMBVAN2boFmTNIIAJt3kBeAwKUAGNN4MVIAIZwAKll4Di8A96wAlAqAejkC0Zcw0T+ATjl1t6sAj0UASHl3uqIA4QYHNmx20jGGsOMHk8YQMTl2EYMHfrVgFicAwwyH/HIAYz2HicVwihlwEfRwB+9g+pB4Sc8AM8NkKp0AJPoAIv9wOcsISqAAQXMIgQsGCDUADs535ld3ZWyHOC/8ATPRZcbweG/lcBlqgAMJhwCpAAvOB+vLCJoaeDRSYOigAGP0iHDTgKbvMEdzIDF+iHPwAEjiAOi7AIqtBn4jAIlQAAVuh4CjeC37YBKHF/bkd0ErAEGycCzaAAM0iACRcACUCD3CaDCZAAfjB9CcgEcjiHdPiHPTZ1kkB+fviHQJAEt+hn7kUFOsBqjHiGi/h4jWdpJyEORTB0QSZpImCJfnB3/seMzJhwYgAJftCJjXeGoOgH+wgB7gUG3NiNesB9Fjhd4/gDRFAFixADEFAAEAABF4CIi1iQD9CLIqhwAJCFJoEGrHYMzbAEEnAFaXAFoHeDIuAHCSAGaOiPm/+4BgPpeKaAhgGwBmsQBUzXg3pgit1Ih2BwA0rJkNOlBw0IBkmAkRnpAAjnbWJQkI1IdmS3bccQaINQEuJAlQBwjNEIen4Qk/l4ibwQAAmXAD+5k79nAGJQjaEXb2hwA6k3jnX4lEp5A0QwDo6gCoKwCBdAmJXAge01COzYflfIbcCncNumZiWhCqyGcf1oiTKpj/nIjDapAGIQAAtQCNLYeD35mYVwgFdAAKjnlKxZkY4ABEBQBURABLQYA6wmaMSmCLrJBFT5e6YQgvAHgu44ht9GARdRDDEAAGRYiZhYAWWJkAgZjZwZAGhYjdJoCu5nAKAYBVHAAgewAdvol+P/kAR7EAPmuQdJMA5VMIviUGUrhgazWAXioAqt1ojYuXDZyZViEJKxZpwWIQ5koJzJaInLmAAziZBBKZTOWY0KIJfUOYbZqZ1syJ2iuAGkSAR+WQWKUAUcKptLyZDiEKI6wIHiwKH0uZUiGJIRCpAkKYwWAQQBegxLYHeX+JNrkAEZ4AROgKMI6geYWJDbJgbY+ZummQDTt4MQIAiOoAizqZRN6qTrqQod6QAOcAGK0JfiQAAEoKIgqKIMV3Ys+m1oYBFSkJwPUAFLIJT+lwAKEAB+cKMCAA9yOgVTIACMwAgV0KCNB6Gk+ZsB8KcJIJrPBwAEUAkFYJ4xcKgxUJ6I/1oJWvqoVnqlN+AIi+l+RGoKCZepONmV/kkRRLCLx3B3HyeU1QiUNwoPUyCn8MAIAiAAcLCTQ4qVv9mTbdqmAXCfhXmLt5gEsOkIvqqhAOerv3oD/4ChlOpqsxqrmAprzCqDtcqpFsEEMcpxShcFzgmUjDAF76CqTrCtrQoHU0CDQ/qbcjmrcumT1MltQICXpohbuDVd5ScFN7Ch4uAIfsaQDAkEvbdw5Fp2wEd2N5mnAQgAEPCiBKCS1Fqt2FoNArCtqQoPrQqxcAAH1nqV42oKtDCr1cmgtPAAlRCfG8qh4xCir0mejvqoG+CX+bqlyKqxIIipBemPbMqmBFsRZf8qoHWnCzv6phnACBkgp60qAHX6rdwwBT76srOasbPaptXIoAZQqAVQCVI7tVIbtWTwqFq6AUmJW6qQCy1LpDYZtsdAq/6IhtxWsBQBoCrZkjratjjKqgLws3QqtKnqqhOrCyLQoOYqpMkqBrQAjWxqABTgqyVaorpJBFdaBSMbouKgA7cVryeqostqlefak8cQAHnqmWIAABdQEYugbhIgffCQo9uKqqhap6oqtBI7sXAAD3l7sdj5shn7t9YpuPDlrmAgBfgKBq6pAzpwZcXGW7bntVzKovsZtrSwiZ7ZoA/QuRQRAw+wBGlQunH7Du9Ap3MKB0ErsUELB9wAB07/4JbJaq4YSwt/C7gKAABoMAjCWo5JUIt7cLKDRgG4dQhUoJghOaQ3GbZ8m7G1GgC0AGudGhGOQAYymgZOkLrwsK3v8LOuGqdxmrquyg3cAA9+cKvJqrRJC6h/+rRUWwmIugdRS6UOILUOsGYvQAUvgL9Iawply7+08Jl/CglsKZkTUQxeWwFpoLPwkMByysDfqr0LLMGsCwcZgMF+Or5KzG0X4AgcqptMiqHyybghemUj+gI117JC2pn8G7Y0DAmBa8MSoa/HkAHvoAu6gL2rG8QT+8DfarfKMLEJoLTnq8FL/AAFUIq7i6+K0LgJJpgUAAGBHKLQ+wB8W5pdvMUB/1AIhVANeFoBB4C2EQEGF5ALx7DDOiqnTgDBbczGrPvAcKAMFKwMa0DHSly+dty87Ft4tXiR8gt3EmACBUABHjm25qu0NonKAAzGN7oGlngADjARQJCc0nvG1ku92pvMRRzKcVzEoqwMjJAASWvHqHzLv1mohmqoGGnCDkAAJEwAwIwDEMCyyJuxfouG/vunCNDIjFAIAaAAx9B0EnEBZHCm3dqt1quqdbrMytDPcRzEcSzKr6oA1azBt/y3Gdu8IQrFSknFjDsItFwJhbilZ7jB5uu35vuni1wN8ODLzPi0qiARMWDJOrzA91y6EAvHz/zJy8wNhMAN0Wy+KHDQ5v9rCjOdrAYQA3rMkA1dr/YqmGhQAASgkSgJfAqQ0e+cvEeNsX8aBoUQt4WgvF35lQtBDwF6pmuA0kOsqqzbz6PczHY7sS79vYWQsTNNC2ct0whgzSG4B61MmEJ9m3DHcRItCATgoH+a0RltqwEACYXAqmvglv9oAGO6EEnQe2tZAWvww/qc0l3tz8vMzKLMDdB8qwGQ1mhN00rrwdocA1NbAAXgAFHLas1QCYV5sDZ5y/17voD61w1QCG4JoTW7EJ/7ALyQAKeqqkDryZLdzI+tDKRACmSttCiAsb85u2z9AItwoVLs0K+JBpWAxxewAXedyxeN3H/KtGtwpwJAk/D/vG2VEBHQeww6nAFZrdtB68n+7Nv9TAr+zA3awA1HrNkHfdO/+QB7sNP/kIuDMG1oMIhCbWkTfYYIHcO0QMN9TcOBut2tGtj+aADhrRAAqpyK3ba7HdYT28zhINm//d7cIABuedO3fKuZnawEUJhwLddBpm53dwAFcAEoSeD7uXDM6JbQeJpvnAEMepWVAHEJUcC2DXo/S8SR3dXM3OFerQ2kwAiQcMuYzdb3XbWgbaigPeVU+XwSHeMD6wAUUASN4ABAxgugB5TfOrqcuW0O8IgJ0bXkjcDdytVFzt6QneG9TcGEAAfubNNnfdZKXAlJUAX/oAjsScVXVgBERtTK/zmwOOADdtJ2Xt7N6pbAAuAEPuqZ20YAan4QUiB2B5AGImDhqyvnHR7Zz+zVFBzTmY3ZxT2rcEgEWNzf7/liGUkAvODihaichLros9cCQiAE02Nvp1JmxxgHYhAHsOYAipAQL7CL7bYEn46qAB3Q6z3tzUzt760N4fABCLDWKNDtMu3txn3iHSnXvzaTGZCnDjDRBAABRbACLVA98LIt8u42Y1ZmmSrPCDHhS4CmCOytRm7t1N7b004K2qANU1AIa43KM93tDG8K2Ay1VQ7aW8qg646SDtDuvj49u5M2BUQ/iNUKRQBkCQcAIY0QjuC10quj1IvhzkzZAZ/h603BpP/gBdieAduO1mmNAGcdAAZwASI66PwN3Qrgy+m+fgSAA4u+An6l9NbSWvC+LYyDA8pJhg8gyQbxuaFKuhDr2DAP89P+1V9PwRSsDV5AClPgljh/82tNCzTwzpj+30/YkbvICxkQt0UfaJU2a75iJqzYeiOAJ++yhz6AAVYZzy5qEMScoz6sz2G93sEd8y4P8EmuDXAQ2DiPAjqP+d2OADx/1wYAd4FWAYzAuk6w7utX64S26D6w66Yj74i1O4Nj72MIAAM8EC9Qz26ewD5Mt14f8PAt+e0tygX/4WHA8GhtCjofAAiwAGHgwaC9kYKMBuO8Bq36DqZPfDjQCKfSOCP/oPGIM0LbQkB5UgQp2ZV5bBBAXtILjMyk7tXuTQja8NLWHvnCH//cUA3cXtyXj9YIABAPLiwaVLCgIEEXHIiAJ+CdgwsbHDiY4ONECBUYVbR60gKKpFSpSpSwYAHKkxU4ABw7BgAABSsxZQLJdcxPhndT4O0UIADOT6BBlZHiRkqbNqLKlHFT2lQpt6NRG4RBURUFAhoItGpN8IBAAbAFCAA4IGKNTzjwIG4o4MMHhxNxT8A9sWKFCrwdoYRsgbIDgCUVRDTDIVPmIgC80kTR9c4xz6A9fTYlpK3y0adMnQ4tqs3LUTjVaFklXRVBtShRmh0AQMABAAN+gj6EQMFB/4cJEzzttqjiiRBJIIODTCVphIoJJgY4ycDIiQQIhq3EAJyGhZOdO6cARSugadHPUQk5JeW0KFTPXryQEkDV6mirC6q5hgABjSAdCQkw9EmbgssOcIPrLo8kGWmGEmZAsARJoEDugOUyEMEJJwCQrpIHlkjDDyfeya6hnoRSipSkOtOMmxOXYuoy9bwgpD0ERoMvvgYIiAiNCy6AoIBKAIiiobQIqA0ADASsawWMnnjiI5EORLAFDSbAQII0KlBAwwFgkomMYzTMQCd4PEQLqM1QRJEoQlBU8cyl0KysxTQZibE00xpYozUAFBCsue1+UmYKIf8rMjdPOCj0Irw4av+hheH6WkHKA5ZYI4EKJJDAAcO4lIBCJ6YQYApQx5yMvKKIMtNMFUlE8agW1dMmnAWqktEqBBb4wAACKnGAgLEU8K4peL6CQIIBMMDAA908ueiJEfaCYoRmPXpCBQ7+4qWCNTJYI41mHBAnJnHIeCANXTqEB1RPQx1VMxUvU/U8VFVktVVtuGkAATqtMqCS+xASBI0CFPDzTyEhuKKhYpGFKwRoQyLpmpEkeaIVH0xYyY+b1hiMgEFiUkRcER6TzKcQySRvRPHSRFHlUlulV4AF8EWBBhpmpmGBrnh1aecr4GhqCgfqiwKOnuAxFrdCQ2BgryYZREmlYyooJAOqKwD/AA3DYsiFF+yI5s7ngZsylZvLooK3XjRJ+czlz5SRc0ZaF2iAET9EiOIdnzcTwIQdWQgnnMvC0aVYY5DtQWlbPmpBhRX+ioOXBHBa4gAtD8tlXCCJHtPkp0hUOzzx4O0sKra94Ka9AGyWOQxTvroADQoKACCDzZwo+AoB3oQTjsExMGYCDpSe9lGL49CzECeW4Fi6JMRdAruSB1aTMxJZ/KyysckmhRDuSXdZGzjkpJOG1gugAI0NAAbgV6WcCLoAXeAgpFVC/oan2GOBDyGEE3z46xgxiEEBCdDYBaRjhSo4D3pAIZvZViWe9LiKe4Qwyqm8V7rThSErWanKAjy4/4YrNINneVPKO4RUACfIr1XcgEM4BEA4LtQALoaS0krEQAsF6OlqBxwHAcbVp6e0yXMoCo/nvoc2pjywdPSCwwditpWbIcAUZOFFFNalpgycsGfhSI82GkII3vnOAzLkAAcmYIwDHCMOtAiAAo7Bi0oc0AqOqAlaylQmy5gpgq4iW1FUBLolto0R1diKVlBgikpcgAIXEIuv1qQM20GgEk4IBzdcBYd3CKBe8DhA/mowAS5gAEJLkAEkEhAAMRigcoZZxAMqsLnNlGl7Z/oeUZCyoqh4Zo8rhMMTaRUGAwCgEhBgJAG2o4y86eJ98ePiZzCZyb+9g3DGwsAAyrWGAP8EoAIJUAAB5PixY5xlVCoqk5nSRKIW3dJM5dHj/OYHugnWC2Yyu8oCwlCNnkzhCnY7pppE8D6foOdV95OACHTREyfoQhfwAEoGTkmLAApEjqo4RhpABDY/gU0p3CMbBT33rjad7Sjzy6MA7ueEnvwNDoWgZ60CwKux+MFTAWVKOK4QNAe842/hqZ8uWAOANPhEpS4UwBoKUYg2HoMAWJPOEBzQjIWC6ifRM09RKGjOlZmKZegJj+AkAAAThBUDABhAOJooMwSEIQwB4Ne/ZBcFRjTAZ9wIxz8hQAB4AA50LowCL3jRDAHQtX4uVMADDBtAAxRAjoIAALEkIKY+mWz/rqcS26lONbZ6haNCHcABDnCTG+W0kBFhQGutFCBMsABABH4oRBgaoBS7OoCherWMWRmxhgo0Aw7iEYAIAOCASvhQqUw44As0RSwWiImBLJwMqkIjt++wbClKAZsuTAC8MuYmNxjQRSXDR9q0hkE+U3hHBoDEiASIF5/duqsAAKc7s+qEalBxUTjg8dVdrQQABjwgYppBJXMxFA6o6oneGnDgzDTFT+yCgwRM8JYyZveMAxgwUkKD1gDsrBmrFQB6xbuANRwAInjVa4voSrS7ped08LgCa9L42yHI8T8HeOyHaMrcvAEFwWdil1yni8zePriMhcquMTCQ18rUj5BY/0lrMMmy4fK2Vq1hAEABLkAA9+ruMyx8h91y58IwpcFSvGgNPeRohQskxqLv6FALOwrkWD5Ful5bSpqIZl3sRrjIoszrUbhByKsg4AO8MEAzLOpeeHxgKwF4QCUoQIBM0jedgrMbdsJEIV0s4QFBM/OZrcClNFjaU5VUU0ZJqMc4owoeFcIBkYOngRSY0RPJoXCS4QBee1a5APlNzRpkRotGt9esuhupC3+y6oQO4LeK9bRMYuBK8zYkXkEh4Yi49zd2cQaZ7wAADt5yEaUxgH9H6sAB8spFZRDSgyD+Ka8OEIU1UAUBL00kXgVAoXCoJ03zO/Gq03AAAmxAB802jP8jQN0173IHltau8/RIBORufTsEGlABxfdnlxMk5wDvIJvbqiGfahSCEST7lAA+AF5G1zuFA3isZ7qnWZO2GACLILgcERM1Sqr0U5njnJlIraZSp6HbFrmIBigOLZTYxYwdkMDf/vTxXI+FLCLIQPhiFaOvPDqFRONikgkhgUWCFVM1PzOGxJCB7oBoc2GbK1HQBD6iARwHcVmYb2zRF4xcHAcHCKwyOjxlXME0MYxgRMxoQQvXQfpvxObeAVxB9po37wFrYGjRSEbtvF1WZfUiGjzA2gFlLYzieA+Bkp4Qgg4MIHfIbEA1qtGAnngoA6H+u1a6aWUCoL2S7zxKONL/sErIn/kCDyiEZLJj0hCNSSmk5t7yvSaAAwTI1fszOv9UMIIWtGIFobVzXOUmGCQ7XQDVWCuucK+A4tO2fvBoBvCDf0CDH+NcPLn82s1TL2QODA5XAADoyziXFEiB/cEI7FMBHwCA7qoMv/u4BvCDCkAplfK7BsCZlzIfAhCgBWih+hm/BOAFb3q/ZquEcKIanZgpzAsbcqIzpdCF/iMjPQuBFDA6JVkBH+AuvWKhQZKbL9MlFiK/D6iAxLshBDiwA/s4VAKADQBBT3u2bVoDMcmc7sixFJSMptCFIiEjuoNBcYtBvJgAANApl2siD/qrFtIrMPq4MLi9RwugWlk3/3tCAAU4gOhQQjkCAgAQA2wpmp1oIc75iT6aqp44Mf4TkAibC6UJQAaYlr1LwLYZv2o4gDT4m5RioalAgATIOgcQgwDQCjckLTdiNjo8oGcLgKlhKJ4wK8kaMBQBErOqJGXwqc/Ss4WJQShYnBpMIXc6HfI7BvfiBg/Jm0pUwwsMgA8Tr0JYgGwSg+UJRVF8AFpYA0u7KKLJP6AwqzEJh6VIi05CFiLrgTLSwhGYlhpkxPWAgwkUmDRps6kyvCAMAA9yPddbADY6LVVgRjmKARH0Aw8RMOoCimPqvDI0tXfIH0/oAW+MsImbmAchx/KYwDDQAu6ZLRcaLVMonyuLA/9i/DgnKqQAMAD+ssf+IgMDqADdUzBqQz6uUwZXxKToIxRZ3B9oQT3VayZnaj1aKAS5+gnvGiSswz1NbEPxwoqqaCMHGDiQPCBxWIStCSps7DwBA0Sh4kOgkIAAwQ2DNMgy0oARiJIDYKYICocpuEQfegADuBZGgIMpYIQ2EhYCoAVIaENDopmqmKKOOUqbq4ni00PIQL5rnCpOGqvCmYAawEql0QBPqKY++0oBSIBKwMfgGotXSo0KAELcAyAZqJVCkoHDo4XEsks5MrjLqYAPyQ60jB5qy4ADuAIrDMwakKH9OUzVa6Au+hPGvIAY4JHgMoDbopvbu7IbekutoJn/0ZABFGAjOfRM6SiGGIgBAjCAH+EJ6Fw7r5kCERABsxoAYzAGLuACQumAagosFkkPUoADP0gksKiE4AKAQliDNfiAS7RABdjEQtIKWqiZGDmAj0ROKwCCC+gR0URLtau/e0soCUiuDKCr08EfaqomSnK5XQIfEbCy88xNP2CEY+ymessmKNqKQAsAWuCFOdRPKlgE6jiAFDoxVJyMnlA2lxgLvOkezkMRbEsTVpmXdIKDCjBP3IRMwguD90wzMYAESPCg+QzOAOCFotRPK3gBrTkGCXCzPKofVcSkIumA2zC3vOqjErOM8OhSG1UPZShPRkJP9DSABCC8BvhRAiDG/ycKTihiI6upR/1cBDJorIOqJJdxp3AYABPogD5FzF7EJS/tIlf5HmWIAh0lUwLwlQ7zA9d5gPgEryJNAFM6LUFQUuo4huWYrRqlF2mCkGpyM3PSJQcl1UJlIkRlJNwMLlNgBFBhBGGCgAdIL9KimZrJCq2ABIgyAKbyTFXQlDTYxwHTMvqxs90bVdIpm+uxnq9khETaEUU1hdezE9cBgARoLaG01awIA11NJVC0SzqqqA6RjBndJQmyjJFyEetxEfTonkL9yit41lVtzmogvPmwMmtFquHUzJkJNBkIIAIgLs9USl7YFPprLmLNJd2B0XclNtL5Um6IUB1ZVQxZg/9B+oAqgwAAwBjYUIDDkwHipAUZoAHNFIMHuFTPfDZDWyCdHFWSotF9yyVSHamRCs+16VJu8AMrs83lxMdZJaAfBYBtcglekM+q0NZd7VWQTKAHMKg9HLAFW74+SrI+qtkv5SnQ0aV0Mp0EMB+eXU4MGSD3FJY7TICWaIZTggSQtVWQFQNTCFGQFAcCcNKFUjs+xDaz6qhKUliv07ckM9e1mRduuIKd/drcTIBTetT4JLMK0NXiHFmhjBFc8cwk2BoJqNuLIrVWZL6/5ahriydTzVqZ9bMssrKeXU5xSUYhGb4AQNxrVSussNXg/FcCQFl7lALEUAzogYy7PZVri9L/fZugv6VZywBdfRspRnCdRbiAPUDdB9DE25PVIG1D8qtVbb0KWtihpX023VUuyWhZGTUnql2Z4qXRlEFX0e2jVE2CJFhe28QQA+jIap3eBRhSSZXL4jy8B3A/JTS4B+CFaDtYr6mkn9s3uvqbGZ2glQFdCCpfuhIBCAACR3CE9sWR3MyhR/1JTjRarBhZkZUBjzxKySNJ7TA+ckVgFE7h3Sve8oVR4k2ZNKmAC3AEcZjg9m1eHzKAbqqP573M+fRhmgFZWqhIAvgWe1RKcaW/0Vy898JbzVnhZRXeFq4M2SxeOFAANKDhGgaC9i0mANi0AtDY+HzLmHlLISXZINbM/ymSU2bcA6EN1mi0MbxtYrPKAJdohgxI4QUWXgV+r5FiIQAQBC2eYC5ehNjZFQcIYwOABJaaTyG9TCE+PDEAADamwyp4tjgINQ8RmaJhYhQmmgHIOhOAQGw74PdSGT7mKLMK5EHeYkOGABzYtfow02MkUrV1SwRYW5JNWnscB3GpgFCzsZFR4VbEJKosAgAg5Y6SUeHd4/oZLM8TBHGoghquYUcAAkOe2FkmRXsirVse2TT+11SC2/4FmWAdTcub4801q/vCANwh5mNVZSqeIPupXXG453smZCCAnfqggLsK0taKGc3czLfUzJI9hgIwYjqkCQXgEHQumruFZxfCG/891uOp9dxrC4eHGAR8tmZCVgXYiQEd6RFe8AOjemSQHdnLvGXOLGJmbCXFuA4bA5EULkOJRmBTPmWqnWK6WoMC4OiOtmYgwGYdoQDbmDrWElK1FWIf9uApsl0QJALuVc19hM5TtOlPHqqb3r3u6dvKMKsouIBp7mhH0IFrBgJV2IDagIDXIAtLEYEESOkPvsxdNtn8fD+m1ZDGGE2U6g4XSuFrXGesRuAprlGz4gVprgJqzudBOGsgEARiYqS2pjFdqBJK/ditAFlTCGE69N8NC9aqFpnMSVFrDMjNTYvB7igFrlkXouSxJusJvmZVUKRDlroBGAAWgIdJCSAxQIBQRzaFVIojOvzVBzA084o2qjGv702+nshJlfqa70VgLdCCv6Fu6dYC8qyEaVZsxb5nau5ucaCA9NmR/GqsAvWDBBCDY6CFXFZjU3iAb/W0gAAAIfkECQgAUQAsEgAGAIYAvAAACP8AowgcSLCgwYMIEyo82KRhoECiTl075StQwyYLM2rcyLGjx49RGooSZeTTJyShcuQIFQqJEZIPQcqcSbNmwiYjXxpxiXKHzyNHPo3JgWTMGCUwjASyybSpU4M4SYr6xBJJjjE7anCpwbWrzxo7ciA99bSsWY/gIE5tqdJn1iBcjHmAy4VLkAl1g/jMceTa2b+AoY4UZbVtjSBBtHLx4EEuYy4TJjCewJUHjy6+Ams+i7PkpxxZfcKF62FxY8ceInfokJoDhxA8EG2e3VRkSauH6zI+bUxub8eRPa1O7alHjxS0k9PEeTJlDq28e2Po3UH69Nas5U5IzIOs8u8cm+z/zGEy5Y4gjaf/Xj28uu/okzl4B0//pmeUoLmi/83fA/sJ7KWnHmNBhFDfgQed8klJ5uXGmG/GYCBhb/7tZt2ExkBWAwMIdjjQSJ+Jdpp/q0lnImMd4GXhb5B5wgEUHnaIExJvwZddieuVxlppFcoF2QSeqBCjjKI8t1iEJkTo2I4PorYbik9uFYJsQ9aXFo1a9ZbkbyRG5uWPXqqmWl4v2lAlfXJEgBVpxnRgwnC7rQakixzQycEJJ6yggQornFAnBylEAM6Z39XyTApcHWkCiQGiCOQJIaSggQYM2AIFIhb48owvJSAywgiITDIoocnJAQUHhzVJXZvsyelJCCpU/4rpNb5EcEogkwQCAgjMPBOBqKSWGsErqeLIaqsAenKCBiNAQeszvkYQwa4g2FDtrszIESxtcvjCA2nu8ddqB8q2AsWl15TwzAzSMkPtu7tqu+1mcsDQA1wmyjVuZBys0OylJZRQq6/wwmvmvJrZgMi9Ao6LbL//IhJwrRE8UzC8CGsGggapRoiBw66eoMK/lyJyDbTPuHvxrhkHxgzHcXl83WP/9avBK5ZCYUGm0LYLwiQFy9tyWWmGUIOAE8ZZ8woqkGDL07NK267K8FoxtFlyMGP0kRLOrCOAE/ig59OW7uwLxVQHfXVZ4DCDaMxd91dzCE9YagsMMOz8LLTqpv8MNAjPHLx2U+BYgOppGDamtCd6kuD43TCcC8UITzzB5woMQOELM77YIsngTtlgC8P8cdmqi5Q6DsXTIzBAwr+SINICA5mXcI0kDHwOOlNykHDvYuFSONyjIz8NxevM2oIIIgNbgIjyEfhyqdC701QLFL+X7uSPy47gtC1Olyy5Csw6n6kvrTxBffUzQdGxXJ54glddPyoba/jL74wIFE+00IIkmnqGwCKAiGdYjX01eUYPjpaaFNzNFgwIgfz4JbJK4c0CtBqYr1DGt809Y30IBEkETqCYSLlACV2AQRdCUCcXSeoV38PbNaQ2LWa4q1fn84XgQigT0cmvBl04ggX/jAADF8DgFSlwTaRcRzYZ7k1lNzzbNa4BAh7WxBcS5IALXkErGCjBBbboAgMoBcPwkQ2DtPLZrjaFwc0d0IogscETONADFE5xi0ewxStewYA9+hGGtgAjDM42NXdFYGfn2yEcPVICox1BCVO8RhjBR7sjdOGSr7ikCzbpxAgwo10l0JkvpsiMRcoEBCHoAQe6cD4YkI0EmezCHi8py03erY2e5NylLACDTz1jVKbsiA1awIEJhMAWaLxGpTIJFFk6E2ecbOMpbCg9RLhSA7aoYjA/8owQUCYFYMQgDEhwyWbKMpachELepGbD6EVvc9sEiRxG4IkacMCC1ziiGGnH/08/uvKCaVQjtRQZz408408pYIARn/YKDSS0j5jE2dPyhkF3qvGDBf2IHFbgiYSmIKGW5CMDjtBHPj5uono7Gy5zqc2MdqQElBJjEDEpS9pdsqSQQyYajwc5C6gLhC5diMJIwIBz4oycfqTdHp3mNIpOEQpMnGgJCBrUhTwDCn406kyLqtQynpFihHxnS6u6kaHOcpYyreRIiypRZFJMaoQEKlkTIgdJjOCsWd0npWwqUVfarlaEhJZc52oQK9igBI77Y1JpNylJndN4uKSYxQibkVrIYVcWQCstM8nVjz5Uk5Zi3lsBR1XKDqQWVpCDDSZRxFjyUbP8/Gg/cSZKtP+BYLCmlYNhm3CKcWp2sXp1aAqWqDqJZfAZplXIBydxR1ruE6IzpZRwYePZm0nOp6VN7jNaEIjO6dG5+4zlc4U73NdoAEYlaBaVknuQGaiAA2d7guucOVvO9rGPmxjjcEMQOG+wdyEzWAGAWrFdFYj0viWNZYIdNylmBe6N/zVIgAFkgiK8YAjk46dS+whLxcKwdcqbAQiGMNYI18IGkjiBmzAAABwM4QWt2AQZl1rGDy9VeecLmA2EUAQhCGEUETZsC4TDYgAAgABloEILnqCB/MKQw2QDn9MwdbaAzcAGVCiAAxzQCHq0YAiUVa0kBNwBCQFAAgcAgCDiQYX0dXX/qRTFG2SdZ2UboGMRZDAyBkyAAx8IgQpBtcIMWrACH0zABEY+M5oBgAYqeGMILXBcP0lA0f2VLHYSK8GVvQEEMsTgAoIoAxNG/WI9oCO71bNCPIRAZhMgGgADQHMz0FyAIXgDHUKY3KdaR2n9LS9/ZivBKGzACSKQQRCCeAE6vGFqMMQDHUOgh4+tCA5cC9gERTbyrCWwbQkgGQxWUHLrlOo0XwNbf5IYhR44AYYYxGADZUC2vMtQBjS8qQNF0IEQUo1iMmf7AGmedawlwG01O/rRLWidSZUXuV8j0gIkkEQ8fsGJb7h7AxjfABoocIFBCIICif5YI3Sgu6FZSxKt//ABDoqc5gM04wAGaEYzlkBwgjej1vHwxqon57hy//rn+VRBCSbOiV/sYQ+LQIO8NS6IDVyAAIk2sgkgoAN3ZEznrPaBm4zscpk3gxdxiIPMJRDrK1xBBAQYxMGV3HMS6Mx5iMA0Bhmgghno4Q6c+AEQkJ50jCPb44KIugEMAAAJ4SDZwYrGqldQhJUDAOAy5wUvui55XsyaBWY3uwQuoIhv3OEXL7Dr434ObCic4AmjQMcPOFFsICziAhpn+iDK8AKoA2Dwgw95B+hxJitYuxErZzHkwT75rzcj7HGw/BVYEAwWsGAADigDGFYP+oSX23yYWl4ITiBxirP+F+MAQv8RNI4GpQ+CCVQgANRxn/tET91DqI3HEHSgdWw/HuCVP0DlLc8LA8RBARXgB8GgC7rwfGlHBN73C0PwBJ+CKQHzawywLDOgeqyXd4rgeuT3d2WgA+oHAA/wAIP3gR9IeAQgCAdSC8z2Au7QePb3eF5XAZKHfMn3dcgXAIWQAU6gC06AdoOgCNPHet+wgCQwKyWwM7agASfQCvGwbhX4A4qwCBindPKmAxy4fiBoACIYdQVQBvThey/Aao1QZgDwcsYXeRWgADLICzAYg6AACdnwDk7AAs1QCWWgCDfgeaynB5KALnyDCDKmAZJAgRX4DeOQdBQQexsQahzogVgIgg//YGRZmHbgIX+EFobC94KVF3nkYAAKQA4KoIbN4H/kQA6QcIMZkAEisIV2+IN5GHozJEAjMCktoG4VaIFAsHEcRwFokIgbCAC5cHsiGIwfeGQmqBzR5gONYH9d1wwV0Iy88IkwGHajCIB+4Af99wD/FwAJkA1xyALRt4rfUIvf8ALqEkqTMgLPoAerV4FEsAivl4sUcIizNwhH5ojBmAvDaGQFoBwvwILCdwAisATNKAIJAIMK0Imj+H+fqAB+cAX9ZwCmQA7a6AfZ4HwA4AjguI7fdwODNgIq0AITqJF5BwQx8HoXcJLxiAbzqH6NKIzBeGSDkByCQAAsVnOzJgLB/yACIsCMZziKndCJChAAB5kACRAHgzeK2pgNGRAMwaAAgrCK3leLPwAGSwaSRCeOexADgnABubgBhygIOkCPHuiSwmhkMTkbNxADXMeTFXAFEiACFcCTBzmKBjCNB1kB1dCJWFiX5JAA1egHFZCKTAAG3yCSFagHF5Z6v2CYxlYA8fiY8ZiIYVmP9uiSuXcBsxEPncZ1B9CMzeh1zJgAc0kOcWCXCmAAkBAApMmXnUCURCmAADAIhBmV3wcGN3ADtnmHi9mEVUAGBXCSXsmVuigIHmdkYVeZwZh7DoCWMQB1BKeTZ9gMBzmUZ4iQPhmUQ0kOplCX20kOrUmUTFkBF/9wA+jwC+b5DUSgCONAb4qgCFXgCI5Ab0RAmN+wCOpXAL8JAQWgnxegkhdgnC0pjGFHghuwGWWQZ2eWBjspnQrgmn7pB6I5l3UZAAuQAJ2gndi4iUf5mhnAfGrGBERABFWwd2TgaaBWh/VWAOrnAPEIdQRwkoJgfnX4AkxQAMBIltiYfLxgZAUaGL8gCAgqAWYnc2eohq+ZkxUgmptIDoUgAH6gl+w3eKagjdvIlFcAAA7wlGBgmxeIBvgJASeJnw6gZS5IePqZgbPHBGXgADcqgo1olKU5eQCAmYFBBf/pgmbnmc0YlDfoBKeYDcEAmBUgAALgBD0ppUuKlAlQCAL/GAwwWABPiZvfgA7oEA+2+QK3+WzoQAX1tn4GoH4EUAn4qWWeKozk8IFw+olxMKeA9hdWcKCPtwRLoJOCGoDZcKtzYAi6agh+eqtwIADw4JBGGZGjqJ0SSaUCCIODF6r7uYvESW9MoAhM8ALUGm9QF4wvmogbAHUwt5ciaAoPsJ2lSZpGCQGKABg2IAi/eABCegVMCZc4iYMZAA+5eoqGQKiE+qvvAKURiYWm8K9U6peiaQBguosboJ8O0IFRRwAGYHnH14hqVgXtWQU2insf+K8guJ3+h3yDdwEvABjocKcC567vwAI66QS86gTwIAD3mgH4+qtwAAfvcIbh+q8Y//qvptAJCLCopxmbVLBszcalVVAGHld+KgoAcRCuwwgEElsFVaCW7Aeu4eqv0oh8c/qxf6EIedaZInB2IgCHwXAF7wAPZFu2hDoH1fAI+RoOAuCQSouzFwuwkECUp1kJs2eH8WCplPoNk6oHfnsDTDCTyYkGjuC0T3t7YfevuNevxXqQhOexgFEF6yqkwXCKwfAO71C5ZVu291oNAtAAaxsOhqoAOFu6/6qzDnqahHdkW/alBfusHncB+Ki0BiAI0WqH/7mxUnqU5DquPXsBrWoW3hB4inYFBeh8ToCy8woPhkC274CvAqC2vxoO4QAPwRAApmu63ymaFWAAkIpsGv93ASq6frc3hm1ZARj6AEiGqTcQD2hAAFdYmjIojc/4iYMHAYBRn2MopLqwuU4wBboKrGQLvYT6CGorAHAQDnDgBKSbvadLlFQaAA8QA+3rDRZ8a5eqpo4gCGQKkSJYCYqAqS/gvusXBxeakHwJgJ9IDv2Hv39hcQ/ACxKQBphbtnDYvPgqvSw7BSuLwDEbs06Ks9oJkQAbAEYMwZ+6CKI2rdSKm2CwbLdGo4IrgjGgCERwmyGbC6LonUvqf5I3moO3j38BBnuAjVcwAMk7titbwwRstgW8tsoAB36AvZ1Qx6XbCUZ8xBa6iUZme6C6n/2JBmDKpi1Zxezbbohblwr/cMLFOo3eGcZ/cQeKEAMxbHZpgIMDDKzQ+8O/urKPAMQJrAzKkAF0jMd2fLoooMedYACVQJyDMAhocAH62YEHsARXgIMOiaEF8AKr2G4Ma5SqmbOJipQBsMre+8LjQMlxcAV+mrz3+sMI7MNx/Ks+zMnhIMoCIJo5O6WlXMwBYA7moM27jA56YMF+a5vpGW/6CQBgJ7UFQAUjXKnNWZp1bMSdIMTeKQOQIAOEt5xnQQRJQAYPoAAZgLkoG8DwAMo/LMoK/cPXzA1w0JSne8pTWs/fPLAdJ2ohjKlbSqk3QKMUAL97uctLmLcQ8MtETKzFWscyYMQKcAD+XBbeUIgx//B/y0u2vCrAnAwHojzNOx2z3MANyjAF2oyzeJyzeByw2Lu6LgqqoqqfEMCm/TfEEPCzlRoPUBsHRn3CEYnHkPDVLx3TT3FnMUAGcVABy4u5zUu2C93TPd3WPyzUEJ0NCTDRKNAJKIAAd52aCIAAAfCpQOAIrrcIWdmBBkBzhjCz97ydwEsFeYvViGvUoOCdddwJqUm3vCDGZYHVCRsHAZANa425aryybf3WMevWPK0M2sANGZAAxXy6poACsn3Xsu3XpgDCevALfjupYMDL8Sa+SOuvtz1q1EoFJ52hlN3IpKiNLn3MZvECZJALBBCAN8i8Nby50tzTQv3TMRsOhP+gDE5azHiMAtuM1LPt1w+gxKPWnocMBlWgpgWQ0qZAAPH4YkNAyEmL1Fx8oXjs2nTpwk8RDWXgos0QDEq5uT28yaGsDAq80KkNB0EN0Y6KvXeN1HV83noNrkdWvn0MqgnLnXBbAHarA0Xwyz6Z1MyNx7eaAKup2U6hB4uQaM1wBdmQq/ia4Jr8yant06d92txACEBuCBVwz7J94ZWd13l9zyUIBIJA2OMLAGjtBCxb16UbqlGNtPRs0UlNlIVgCHR9oQRrFnqgltrGzGNLwNRMzcC646ft03FMvdwQDtdL3ltd2Rf+rwSgCH6rB9+Qm4rgcRRQCQ2rnThLAL9p4tr/ec+mHLCF8AEQvKN0+hQ3kGdkKLbwwMOavNPVzNOl7eZxTgjcMAcJcNd2TOR4neR3PcGFa7ghrKajNpMQSeimkAuHzpeUndSWXaGFUAjhLJSTF+lNEQ29yc4yFwxSnq+cnN1xHcduzeyi/ONA3gCjPttHjtcIcOr3/IiQuLodTgCSN4o2S+tPx5d5HAA7C84Oag6FMLeniQZl8QtAoMVeJ4C6muCl3enOjto8HdTKkA0BQOrai+R63Qkl6Aixe7QAKa+jiecx8L4PkOg5m9fhHM68Xg3VEM5oWLtlgcjmWwFMmQH3OsBtPs3Nnu8lH+HcMAWFgNcUHfHYPt9lsITe/8ClG7iVDrCXVd6fN6/Vp4sA4AzOu96kcwDOqmkA7v4UimCj7NqMxn7sm9zs/F7yUq8MQa0N4TAHpVzhA3/q5G0AMZCmavrKOrCBIHeUhd7wgr7VfQ30H6CU9zoHCwAJRlmMTiG5ioaTTf+8Cn3ybq3AJs/QP64NhCAAH8DyqGznAJ97hOd1fQzlaAju8w0BIR3rOZualm8Obr+yH1AIRpzZTPAUG/B4ZceUTnDmPb7jfO/sqB/n3g3qyoD1RR7b3kzbdvwAKrkICC8CUg4HGdCT4G7ok3/rfo0AFV8N2dDDdC2UcSCJTfECajnDaeCuyWu2+O7WUT/12s3vcPAB5v9A2wPv831tzw8Q85uqpjrQdDb6jIq+yob+vnyZs98c9B+wANkQzRnA+WDeo0xRBQwLEBKcvHs30Am8d/AEKISjzOHDh6S4QYQ48SE3QtwmCqgWoBMKFAhCIhCJolMnAwUEldEhSNCgQToGFTBg4ORJUwQKoCFggJwpUzLMQSqUIIE5c9UECDCUrZCMk3EKRKFa1epVrFgXAYiz5ApBsGAVPmpAMSIpQmYdWlTWMKM2bnDmBAhAkiQNkCHpdjJVk1cwERIOHABwoMJNnDov9AR1kiQkkguQLni0cE6hADIg8QKgI+tn0FSTFF6SRmzChPDGNlTGNqNGtWvXctNGiFD/bWXZFohEYI6kb3N0TT24gKYAgZ7NRCjMhhioYgJxbvbeDbzanKUC5kiG1EnBgUGhxV+9wPVKGl3vDKlWLVYA67WvNaZVyxbjbW1w4VTbDdKuuQQQ8CiXKsB4oYwyBhGEgkoMKASxAHIqgAICHjDlpAUy7M2cBapRSoAG5phjKLp4gYCK8VKM4YE4rnCChSsyOCg11d67SL77vIDLPrPeys8LbqopBIGPIiPJo04eiGFBCC64YIMFCVAAJ1Mi1IlCA+IIyq7/rnuksjmyuQwzXggoI8XxyDCgggxYcCKbbDJYSKH3BHikoYYw4oYUtDKSzyGJWgMUrfy00RGOD0qK/0xDu0xRIM5srhChmQNE8APJujqBLo6fQpqsw2oauHOppjisJpsKDtgAzdCIUFMEJ9ZLyJCD3oPj1lsvgg2//PZkSzZAb/Ni2EOr4W1DyUoiAAIHkAPgWQngySCBukyScDFOO6EuwwwbECCc9x6Zg78FvC2kGRPCYzWrKnIx4CuEEppxIVyXgk8j2m6zzbZfdVVGWGK9IMRYkLTl0DcUTCmACR0cgYmeIhw4gBdyOqGBL1Mq2amnihHg1lQQw4HDW/44FNWQYA6gZ92sFFHzivUWSi01e+3VlddC4aJoIj1t+3FYQrQYMa/eEAgwgGUhKKKIFeihpxEAeJnyQr504v9JS0g4TLbbBuAQd9xQGxBVABEI0MEGcFi2yuUHrlAIHjjozc7OW21sTaPacH4tUFKUkWg+HQ0dFq5H+FNUwAQUMIAAEzqY4IQVoJagAgVCSvja6MjxVOtyRQ3nyzvv/FzcCgoYxYZ40LFC7ShcXtOQueu1le488Q3859p8vRtf2gYPGMhHGEWBHAMAIMABHCbw5IQQVuhggHemLYmuSprkqhMZtr2ObpHDgU2LurNpxgFJQJjhfCpWX9dlABSAeSEbvQ49190xIhb3XmXTkxugCfldG2UUbgEBWBzyJsABBHLgBBpQQRFMIIElKCAzUDGAxi6QJW1xy0NzuFPtNDL/tri9QwIYaMUzSvAEFUChBFSIRzzQpIgY5CIOj4pZB+/UlrWQYkeF8l3g9tUan/3NUPgzVFw+sLgCNGIFJzgBAj3xRA74oBE4wMCzMFi1AlyQHHXhVoaUkqdwBFBs4fAeHOCRBgxMAIUhCIEGGACFFrSiFSugIx2FMAMbXIUIe8jFFhOQjXfEDli16eFt+DREH84nd4ArlK/0NIUDOECJdQxBExM4gUZkMpPN8kknyKExCBiAF1mbjIfGmBGHkKU1O4LHADBgAuUtz40M0IAGLMmBOrZiCC6syg2SQIYHPIpO9DOLDvNjSEANTnA61MjfJOKzHUGEBRjAgQ/qqAE2/yKQiXXkZhFiAIAsfbIAoVQAtTxWDQ6doWuo3B1+uNFKDHhgAjVAYApSgM0QcICNIXiCJCTxgiG8gJdR+IUjyBCHQtiqX/X5Ww4RqUzYNLM2edNhoNDoOMi1sZb7VEFH5diCOM4RB+D8icYokCUFUCdEoTpD/fA1RG4IwJXy9EQP2JiCfGqTeSpowQxaSIUX6KEqSchFBeAhsrbcak99a8sNJTofRebsb7+6z1tuw40pUPOAGa1lVxmogie0QAj+fELkqsipCo7TJwFISthEtcrX4GdwcZmp8nqAwJwmUIE83SU6vIEOPUQjClWIQRzkBK6lPOJuD7mhoNCCL4kYE/82s1Hl3fjlKzhIAAeN8IECmbdRrzLwCSN4AgpXMAFwSietoSQHJEBVLhvpizY8HFw46lrTHuRWr1DUQAsCGg9veCOwURAEACpAowyICg7c+JLXWMOzaD7EZ5PFV/DKohHv7Q4eAKimZ9noVZzutKOlVcEKfICBToqTta7tnLcUyy/B/Y4QMo3nPHN7Vydy4ImeWIFYh8DC4HojCjE4QBrelpApVEaxoIPNcx3itdnkb3daOIMWjskzfLHABI3w7ne/6lUVMKC0pW3FeeMQAEgooHqhBEUAuOatPMk1YDuirzxroNvdIpCOvmWCQOOhB28sggASWA97aHenri12Dov/TWV8dOaQ1yijLNF0JDeu0IHOMlGfbQSrCrp6zxHDsRUjrQAkqlEBUMYBFOxtwBkewY1wTPRnOgISIeDwDlcaw774raRnIdcKIQT0BSxERzQKaxr2sKduSrWI2BT74BBdN3d5YvJiaaMnZQygA55QoGdFi8JaelkFIxgBFOB43gMUwltoLkABKvDHOXjOsg+9H77o67ga3Bivn/VoT2dABRbeQMCHplGN5lZptZBFC5eOCEaku1R8oVICm+40E2vJAGzTUtQjbsEKTGBcVc9BBA6AgKuzkdi7CY7WxLpqONCIAS7s2dOiFeug/QpYqqgJPQmBn7G9169+NaAay6YP/+92xDveBWraB/TutWkZ2lGXFtUJcG0DWO2AbBgCDv+Gps9+pyM4w7nG9tUrl8P6z9QFtyp7aFut7JUQRrPFwQ/BlbNngy+H7ChQe2qNBGCpV+bds5ZCvzapnwC1A2iLBghQQBYJ4Lbu4W1wAAvYa+qUZy7UoKZA3/EM7D1c0ZChNMXmN+9onuzazWaVGIYsn/CVBlhyuuRE9yoDSO1tw8hg6QgwgAMu4ACoc7zqVFemNsCFEAwYQ544tnZH70hosEcBCAd1W40UvVyLwOciFbmb2/9FiH/jHOHKuCgUExiCe9Id26Q+7+Q+ggJIVHAx5yajx6c+56nD+fC6SDzJa/9JWkDPYBSp04NQrcJyEQQSfraCD67MYh+c1y+MnG9IoN6BgU3LHa/2pLsGyDuBA0gAMyaBxAMq8fcrfMtn7vTeROmsI9CLzIwC4L0xsq7PWj5hrJD3Ri2u0q7SsLy6yS7nA5abOTieyYjQgza8yQh4wD7tuyvUQ73Q0oARUAEPGIABuIIhqQvzOw4n2LjLiikMIABd+Jbe6R8zYoiNg6es4zQ2kgSfAqw7+IzCihGEgBtcaYgOmrmbwwgEpI0FhLYL44brcxzT2z4P+70R4AAMgJ5g8IME+IBqqCBm0bh/awt4OIAWeAETGAABAMIfqQ0BeAddCEEyCgd4oikO6Kn/H/OGX/gMIMgFXnAROmGIOkkqzZu+z+sVhPtDR8INZeC9Dog3edsyjXKjC3wegmABP8gG/pA9E4QbAbgCCZAA3muFKGiEATgq/xGWY4obS8TC99CFuuopvxIs0FgRr9C49zCyRXsufOE4uMAR7LoP0csfU4wnLgiCXMMxP+uqCcCANCjDN/mAQsgGSUwNACgCejivNIoCHSgwERzDy4IDJxCIOWEPAGiEMkCR8ZjDOGCTO2TBHXSI7IIzfbmsq1quu8mu2eAX+sM6DwiCWNqv/TqBYezEuBmXQkgKSdS4AZikFfAADPAEqqCidyAj7FpAMzKES2wGCTANCXCAQXgB/1bZA67IgBqhmR10R+wCokW6RaT6w9aYKt2jL2NQPA/gAg9oSQ/oAJk0SOgho6VIFA7hheohgIQ4AGtSASeMxoQsMDr5Fu8ho1t5hzSQgGZohiUYn4tcFyD4JvcxBH6Dn4/UPZNkDVw5yv2JKN7xH4GRKVfCALM8y7MEQ96Jmy6yQgI4CF1oHJp0patYgSLAARMggPBbj1sBl3dYAl5AItaJgnGIgXdhgTRwglc0x41jyAfTQzzpy9GrCAVMwYkCvTlxgliBHfWbNBDxooBsTOVbiAM4gc9wGnoQBALAAWc5HgIYTKtwhBiqQ840to9EqqSCzJrDMIgQgCmIsZdKwf+MqBvtWIpwqDq5IJcq9Lu3NMpw8B+R0SzYnM6qAAI+MoBsqJGPrBPnox9bOcrQE4A0EIFgeJYDsJGvVLekEhsRaQD+uZ+RaQDQPL/m9B75gANdwAHq3E+qmMoCAIBmqDw6sUnmk7/GZMjnBJdXIgAAcAAHAACNO0nbGZymAptQEQCxPBT5RApzsEIHOKx/g4tweAf95E8TlbwYuIACGEdD4Ex7mb7QA735sK0OwAG8tFEJ2LibI4WAiYv4FJtTOU6QE6P5XAzFnK1FgofXPFEmBQPDLB42+U6Rwa59CTkBOAAbNcsOwABd2Dici69hiQtxqQYqNAcRiDMgEVPllMT/E7yP/CCj7RIEJj1RJwUAMqCJhMK8+fCTvLEN2zLLNNBAXYAmwPmfWxkXyUgKsbyNuCGXDq0eBziI5+QXcHGCA5DTOeXPUSCDBi2AByiER7BP27gdQioUxErD+KKt/3EIgfOiBvAfU/1MyXDLgxBB0DvUCkCDTOVPIWDQGPDUPEXT24HVj7udYj1WZZDVDhGVDmoqwzEHAKBPSeU4rxGfqdhV6tSB42kENclTOKhFfrG9Yx3X9wOa/dCgxFEANmmLcQEOSfQDJ0hDkdlQBSAAJsDW6aQHMkhRNYEEe9nTy1LV+wHTjwPTtBCbcunQmniXUeEPtuq7xaiAbGBIr+GP/xQDAEzFV9YZBDK4gBiKgwWYg5hDUP5xvxnTlyHKmYJlLiBNgOJ5lmZ4j1bNmmiFAAKQ2FBtC/ncDaa7Vo1Vm6lcBDKQIXPAjoqItss8pn3BmZTtIQqNz2pIgGcxT5lNFmilT4kFEbLYje7ohAqwyJ9lmVFYhAsQ2oMqBOxoiBhFWkKqqqoivHIN05HxEKl1lgMIwZ1FimiN2PQjC/lEARq4mAQgAAoI23VBh0UQhBgYWlA4NwGYjSEM16+MtqrCPWKZiDFFGmcxgAxITm7ZWylJKLH528A1h0I4AAgwXFahgkVYhBgKpuzUQa20CNEDRCDcF5MNmL4RIKSZWuyMG/+OyBDQVYBCCBUNCdylC4AD0FXVTZEXEIQ94FQDUICB+E6tdKnK7JkqzRlQ7FHeRQ4GPYDO1Q4PWQAAcLqs/UwEwIulg4QD8NnmDQ10mMpcACc2qVWKRcqQs12EA0WV7VG5+ADNZdDflQsgPd+ITUZyWd+lGyBegN/4/Qxf+iYDGLtAwjwdbUiOG0GUhSZj/Z2+kc+cAF8AyAavGd05QGACEAFIzBCE0RYBqdcIFo8XoN9xdBHY2bi+1FMvvcWo6lMZC5wZO9cRdhYT9tsQadDyeDWeFQm88BimA4AzmeHPUIQk+KY4mMiBYIg09NEDbYuwBEWryhmC9QJlQKciZtD/BIib0a0GBAY3yGBg5CWJ77gAKv6MKoheFqmA97lNx0xDPcVdpr0fpw1TgUtjAEiAeSUXxTCuBCgKkgBcwPWYAOAF5r3jq5BNd+Hjr+BOpQojQOzTt6UtdcM9bQiReiWASkAOBViKVkWaLIqaxTGAugjcSR4gA0hdTL6KqTSPGMnhcwwjHV4uUe1TpeWVgZ0zbSicCqqEVZaSpSgZBGjk9/1PCbKLwCWJT7rXXaYKxAWmOIgTWGzMBosLHx5l+ym8gZ0xLahCZ35mAyhfDVFlCHgWBzUMFIMMwKUBqMDYbqaKGxDaB+iEQsiAIrMVZUDQ1uhigF1HZDZZVYWLOTA//1Ve5QdI1Hk+P3sG0AoYkscIXEggBwBQl25WBD0OgIK2PHs5UMxbaFHFxajqOJTt0Tlo5nd+AATImkRtZAPA50L4R0bRDFAwgML9Z02OA0gw6LFY6e5ZiyGsXPxYWmgSWC8gBQGI1neuhFxwDA6B5fI4sXz2jWTJaRkABQWw43+evAcghwSQkaLMjk/2ylmcxTBcv6i23Mt1Ap1otQIYWlNwrSNpZLCGBP/I6aVDARkIgKb75ygwqOnFYWOrGR1maAyDAzdJAy8tFKYtY22YAgKIAdBeXDIwBbuABK8GAHLQDEjgZ+RtbRkgBwKogn/+pekVAYM26BZNLKPc4f2F0/9amVTcPSY5U2YBIIAL2IPQBiZIgATNgOX1gozWBml+fm1/7uZFkKFyyoZYMbIeBOSjPFCktE9R7Tg3RSRCcAIHQAM0cN1ffYAACJAFqNdYbq04Dly9kwH8PgnFQWtMzuNcqBI4yQABLzIWlFcDR1CGVEc/qdLgJhZSMASVEAQ08NjjQGqkkG9PbQzIyB7pxm+9Sxz+vmNH4CO2jpMWJXDt7J5hlleMMHBBbsAGBxIRgICXEIQLKDdPRTHF1gkIWOt8zmfN8HCoQAkInuHCXOuCFnCDnpPsAGQM1lGXmlQgJlQZ44YZr3GPBW0C8AgrGafroQHIWG7mzu/8zokpvmP/tUaoYHBrI/PkrpRX1iCjd3xbt7WfRmoGCICJQUCD5N4ilODxtbYYzchp5sYeWwaKByBpKpZNJL8CmImZouzL7lHxHp7zl5Zqj8OPcDiAC9DzDXCSxV1rBcBwnwAF1RZzIS/zB8jYGQYDoTWAxpWRFn2blSbmrowbYt5TqNofqTYUQl3eQUgQCc9yrgCFOAD01B70u8Bv1n7tvgjxCDZpYFIAg9ZMxSxKuEnDuUHKA93fpX3bqa7SA6CAYHcEIFgEPl9cn0CiDDf01kZs+4aKvnAATJb2B6gAXThDWpn1b/FjXF/xLn7OkPv2UeUV0FteR0AQcydbFSWAwFwWT012v7wQ8njPb9gu6hneo4Nik5k5aOOc7H/3Y46zz4Ye1THkhuVFkDIw9yQgW5sFJ50wTOlI9em+75MgB5FW9PiFIRm6gvRQj0TDykk30B1kyMo0+riqKh8KBwNAA5U3dyCw8QJ40JpdEVMwdb2reSHHHpw3AFaPX8ICpvtdD1oR8LfewcT6Ei34knDQgtFxezLSAriXe/CxT7kvbkGoAkWogipwBEew8XJrlkpo7ziQjk7o2ps/iSEnhwd4AIw/0YAAACH5BAkIAFYALA4ABwCmALsAAAj/AK0IHEiwoMGDCBMqXCiwicOHTXAxnEixosWLGDNqVNgk0KePH5EgGTMGySc6gQI1AbexpcuXMGMWDESHDkiRn0Ll2LEjR6iQn4wIlUm0qNGiTWp+pIPEJxKdNYL05Mkzx84jML4c3cq1K0JwSW2GGruz7A4uHrhEDRKES5CoNXbwcKHVq927McPa3MmzBhe3fj14MJb2r2EPE2r04JHCCN7HkC0mBbmzRlS0h41pJiyYy4QJaRXz4MHgWeTTqAuCU/qpaWC0mzd36KAZ8WdPoCf04DAaUerfkadN1mk18GYMGGTTrn3b02C1lhkAn24XLFOfZHcEOR679mxjyRFz/6n9N0iIQNTTGw1kBGT2y4PB1+ZsbHYHwctjewjCo676/y7h0t5HOu0QlWAIeoBccuEJBppg4CVHXg08oAfghRrRtJeBQcTH2XfIdefBfR5uZlsNr2CoIkY0jbFTh5qFZ193JCL4F2KDOZjYCVCs6ONE4Hj0YnwSjpigfTXaaFtan03AQQs/RqmQgEMaY4KJnCE22wT3TWBYk5h92cMINkhppkGlDJnfYN+NmNgEnnDgyZy7ccDBCXJ6UkOTJ0Rw5p8D8XDgbCZciWSOiPVwwgorhKCBBk+MMEILLUjSwhMqhBACmYD++UUPHeJ3pWYzGuNZnCdowAAUiFhggS++MP8DwqwgMGMBFL6w0umZvvDQ1mCFJockYZ7VkOoIuH6hbASy0kqrrLruKiUDB2pWqAlIkvjZCSpAAYUFyz4jrrPklintj7jYUq2V2GbrpicnMGALFDCA+0UE95JLbrTnqhiIoGgteKiRcHKgqi3zunqvL8zqSyu//V7oC6jjLVhoth3AuWgLCNuisLgNO8yMuREDyAoUoA62IAbtZtxknCus6q2r4EZgcwQik1yyeqyMkHKEyNln5GwwP+GtLfVaYDMzTDe7784A4sIAqDEu+KGDHcC8KtIw1MtwyA7rDPV0UlPdgdWy4Zc1tyNwnfQXDM/wDNP6ij32b/8aF6J+CDr/GYK8CMMwLwytQiEppSMgEqu4pt1NXQk/M0hjl/Cq0DYJLrjwCgmbj8CAqhpo2i2siDwxg+PT+RwqlrXh5+QJbXfMOQMMkJC0LyUgAoXHX9wqCeqp7xlfiVkiBi/ggpNAAsKuIiLJEzK32vsIjQOfmiS4IeokB3t+qXEKLnTMKs2Gt6BCC7AqbMETdlv/GCsnfCYYBwzUCwMDJ8xZ8N+vBG5vBM+A1TPkBkBfLIwZEnFfakKAGy54gnYwcEHXXhGCPJ3gbx2j2b1sVqu5Mc5eIIiGAlMDBdxMIARdUMIXhGKE+1WQAyFIQf/cpjAAzg0Ec2OGssDFDIiN8DHPUAFu/1KgBLp8IXPho52qujBDpFngbcyiW62YEQFwPcOHP7zLM56Am7lkJYLhg8HsXkFGFyjPf/9zWq3wxTAQZPE0iOBAYo6gwhWGkYy0O0IX9tjEeikrX7OylQZ7+EbIMEOOFHIBuJ5oO1tw7gh63CMTX9E1KNLqGd961avcWMjHcDEx9VOY4Bz5CgZEkoyvkGAla9YsCyDNBZ9DBCc7eRcLhOAzPODavSLYBdpJ8hVMrGTX7NW03j2RcO2jJVe4WAP6UVJZMCglJPcYySIGrmvLoiIVbVaKWSrzLiWwUwpoR8kIlnKcp+xC5mj4x6U1jZDffEymVOVLSTJgE5tgADD3qf/Kty3rZlFkSTzxUgJ9/jKVwGQAEye5xzCu0pj/Y9ZA34cIzqFycyTgo0IX2gW3va2itqtk9SbqFXD4gpQYvWgpycjHGdJLYb6gmatgMFKScqUWz7AFSxmqhD2aUqEKLaPg/Iivdj4jmTYtCjN254KWchSSejyCQtc5r38ClBlJtQtOoWBR5W0OmL2knViDirBvwQ2gR83qVqZRi2iwIgII05xKmxpWseoxfAkzoDvTqlajsAIXuAiEKy2qT85NspS0QycDrJmwbDKDr32VyRUBG4FoqvSy9UyBZscJOMUxrGlYjOxGWIGIJpSidwjzKirPiEd7bvZRtCNBJpXmTdH/toQVkmAALiKwu8uy9Ksk0GcpN7FZzX7uUSOwHc5s+xJM4umxLUiuRVtLRuWplnbETUEIbBEIKiLihsx1STS2eMsOtGAGQoCedYXbP85Z15HKw+4mfBFeothAEgzkkgmKgN4WxHalZJSddUlwuXuSoKb11Ug07ps/BQEAADgYwgzMtwmvFrZru8sw0hDRtVbNAKkJZggr7rsCT3TABAdI8QFMwARrvEAHT4iUV5dHMw7PbIMzKEEJQhjii9hgwivwwQQwAIADDEACEjgABgZBBT0MIcZjlW3zEKE76QWwBDk+qiKoAA5wsMKt0QizmHtsBVbM4Ak+IJQJMIBkCSwh/8kA2AAVvAGGS3lOrB6rsQVa5SosP0MSRy1DDFYghPOiwxuI9oYe9OCN+tbix4zCwZqJXOQ2uxnJBXgBo18Q3Tv3r8ZUpvKefTFASVjDGzeoBA6KsAEmMOEFsKYCGG6gB+aOWBJBPjGRj3GMAxT5AG9u8xIIUAYwKFoIyUWlLfgcakmImmFCkAQ6fvCNGJChAKpQxQYogAYKbMARjqi1aK0hhFyb4MEP5nUkeB1sYQNAFU12xiiQPWA+7znUMlWBJGzwgx8sggwx2IDAB04BVQwitANlBpDTvOYi81rdkYjDMYItAl2IYAkHKAAT0OEMPbwA2dJtVeHw7SpbhGAG6P/gxA+qAPAieHsD2ja4Dl4ghaSyYhRPMDeRD5DkY0Ti55FYAtArIIIoREEEFRi2DubsDHQMAeTjCzWrqJy7EKjAGinnhCLI0O1tCzzbOihDGYqggyEM9Mct0PmDU7zuOPw82EsQegX8EAUnZIAFIoizIvTgjB9I4cnJFXmok4YI/Jku60SohCpcvgE0wFwVM6cCDhyAA1W8gJbeWLiufw1snwM97kT/uQLmXncn4P0AG1DEN5yh8hvIGAYxJbkFRnCCE0hCCj/gBCeIEAMgDHzgBh+COAjwYAzggAI6yCIrSoBmhhNZ6EIH+s/dHnEFWD8S1k+A0Z1wdAAMQhFg0IP/7vWgiEjVqwR6JkEIFjWDb+SeE2DoPQVeDnOYl0EV6H7Ag/d7eev9+AkngAMnVmRxF3ciIAI/VwEKAAoK4HYMmAA/BwoJkABr4Ad2twQOUAbgBwa5R21D0AKehTtUBgWbsH4tgHu6xwnfsAhAMH/0twGDwASDgG4AoH8P5gAb0H9jwwpDoHYqVoCgJ3rW14BxAAoBoADYFwkJ4AcZkAFO4AQiQGzg536654GSQGrPkDuzt34nl3VVCAQt6IIvF4P492APcIZneIOQNzaDIGk7Z2kHWAFyKIcRBwqg4HZDGAB4OHp+sAZOyAIsAABl8AJgQIUp+A1UIDdZqDuhEwJQ/2AN7/eFYbht3AZzOqAKxFeDD2AAcXCGx/BgOJB8JaMIBUBpcedmSzCHSUeHRQgKBnCHdhgAEAiLAVABa+CHRvduhKgHkTh+o8A4hecoLWANhqh7K6gKLthtaIAGqlAGg5CJBnCGnIiGn+gAgxAxL7ABmQhsqLgECgB6Cmh9dmiHnUCOkACBEVeEAbAGhXCLR5dphdiL4zdAJTACjwJo4peCKlcFF6AKF3AByWh/ZYiGBhCNaJiGEBAx4hADa3eASCeH1geRCxgHQ7iA5dgJAaCHnGiHhVAITWh0gSgON1CMKfgD6IBekbJj+aiPvNePYjh/2XZ/AEAABVmTB5mGBP8gitKyCA7wYKiYdEMYCQoYjrA4jnaoAGFQjqBgCnaYAE2YAUanCxKgCvFYhT+waN8ABlQgYaOwaPqoe/F3bS4IkAAJc46wAQ9WkwV5k2moCueiCDFAfDwHhEDHgBmZkUYJCuWYkQhgCn75lwHgkU/oBLqgCwUwBGAwa0RQBVWgCEPwmC8ga+jAi1/5A0BABgRQABAAAfO3mQVQcDqABmmplmypfwVwLmVABg8mlEkHjhmZALI4gUa5gAuYkX/pl0bokUYXBXQ3bA5QAAXQk5mJBjrwai/ABIowkl9ZbblAAJn5mZu5bQY3CAWgiWppkAcJABm4K7yXCwAwcXMolKn/qACwmQCFMIEKwJR2WZB6eZum0AkY2ZHaV3fvcGQ5qQj3BwEO4AD9WAauJg4iSZk/sHXNWQkUcAGDIHOv9ncFQJPSaJNsSWy7AgSV8GCp6Ad+sIoVUJ59OAcdeZ4VoJedYACm8IruCZ+xuYQYenRLEGdDIAXegA5UUAYbAJycCQHAmXpZmQS5kAtnWAmVAJyayZkUAAFpeYc1GQfYiYYAgAa78m/fuQQHiKEbKodLmAFzIABzsAbdUA0ZwI5rEAAn6pedYH2vaaUZugQGMJMIygRUIAVScAPioAr6WWQziaNmKI2bSABBqpnndgwPUIRKWpBx0ImFyokFSQGdImjE/xd0RccCRod0FNiE8CAAZyAAUwAPUyAAlroGS3mi8LmUZaoAGVmlkfAAfCqkBbABZQdrL6AITCAOCXoBBHAMS0oA/Sl21bmJg3qdSiqoSuoAigAoQ1ChBCgCLGB67yCpGZCp8FCpU5ABnEoN1CoACkCit9kJCCCmuFmOkICXa6oKxjmnMeAAmXkBi1CcN3Bo6IB/txqDsMoEDFmD1zmNhIqEcfBgbvknVZCJEoCsgKgLT4ihlPqsz+qs8FCtfrCUD0CmfAmfKHqXR3it2Oam6IAOUqAIjrAI1kYA14YGgyAOtMqWixCDZeAIDPmgNpmkSPhzvnYBgAIEBMBz/wqINv/LfWuQpc/6DtCaqQJArdQwBdxKph0ZAKGKkXc5gQlwrWvqABQwiOGnB2DwAmXAsZkodAZpCme4CI4AoHBZg4OqpLzKiUWIrwZwDBsAKGWIZLrwDk8IiFEwBXPgrALwrJg6BT5LrWcQon8JCggQBhl5kUo7gYUQBtcapM6ZmTGgCo5AcxgLBoqgA0YKqA2rtZVQBURwAzcABiN7qIXaiq/4inf4c+8Ws985AANQmDz7DroAqRlgt5VqsHU7rdSaAde6iUa4ABNotCk6uNeqClJABYqgCOJgtcMJtejwAru6lg9QCUxABJl7AxRAAGf4ua7oioc6joX6ADD7J2XgnRL/0Lpuu7rvQJ+V+rOcOgXvsKk/Sw3KIAAh2glMKYvnCZtIO7hLawCVEHYiebFyqgoNSgC/2W3EZ6sGWQmKkLlEwLlgW6hFKbbqiaQGcJp/ogo+KgFPqAtGJ7uaOrvUwKl3i77LwA3LsAYIAJ8okABhsADVALgqDLivqbRr+mCVgKCOC7kbW6HA9rklOsHPewMLHJeBupR52YpH2YAPQMFmogeL8J0S4LamFwWvC7sJC7QfDMK0Sw0ZkADyawoBEAaFwMJhEAZ/K6YxTLHI2KDaeQGOAH7okJWKcAH0SqKbmGkvoLk3EAO54MB2WIQJAIu4eYfBSgVnEn9O/A5ua3RT/4zFVnzFQYu+7isAhcCtGJkAfzvGZMyXSnutaAAGwSuDaBCcDgABiyAOCywOFYqtJQoBrjq11XkMFEmbFKmkfcyAEWcAEmomCwkAcVABr+u2rsu+QKsG7tvIQKsMyqAGYXqbGYnJ2xoAl7zCR0gAxDm8byoFL+AItOqcwcnLZ+iXBnABsqYHyduTFIm04oiERUmEa+qkUiKyMRCovrypiRwFsUutyoDP+Vytx5zPW5ytX7wAY/zCfDnGR/hgfHoBMycF6DC12kwAUhoJ0QjOF0BzeoDN5qyXEkubLdvHhep9ZgLABQDL7eisiNyEc5ClVozM+9y+1KAG3MANAsDF7//5nioMzWHwAWEAmwGAAggwgbhcpD15p6rgxthMAQCwllprABRABRdLBcr7ndaHtAEwjhtptHeof+4cJXJMAAkorbFbvlHAqWeAz+6LzNXqwcjMDXNAyRgZzR/QwmT8t+iZaVAdmgGcmeL6As+Y1Fpbx5H5plSQsuR4l3ZoCq24gIJ8DIoaJVVQnQCQik6ZpSCMyB1MrWrA0u8Lwv3MDWdQCJ2AAijwnj6NyXONAJf8AQnwbltGBVCtscZLfEvguQVJANrmamXwykYosXYoumaqAJ3QiUrsI0CAbqAXmLS7s5o6BS+91txgxcScz9xACNyQAZM82qJd2s6M2mNcDX7/kHcAYKCDUAXrKrWKQJ0PkI5x8JdMDQH+iYmBWoT324DjaKZ2GAnaKSVN/IkHIAKkWgjVUMV1a7eczdKNvM/UENPw4Ac9DbE+vQCoDc1/+7ctnAAGYK4IXbHrig43IMeBKrolKsAHSgCfC9wp2oARXKajmt8/8gKqCWciwOAJUA3d0L7oO7tl7b7PPcwIns/LIAB+kJShra3cPeGYvACqnZNDoM3GCgAFQJxMIJpGPI7hrZ+wbJdJC5tEHItmKtHDrSLi4J1LMAD9fXQqPAcNYMWMjM/cgMzRnePUOsJa7Ac6va3c7cw4HQYtzNRDANVMcH8xUAnQWAHYZ32Ceq4O/3AMha3Jf2yUnfCthv4ADqCTKtLE7ZasvGmelnrWav6zMZ3M+uzIyjDd1OAEQV4N1aDC1aDaNw3NX1wNFeDk/RmZs6YIFEqREv2Kn+vkaFAJD7DogYuXRnuRWK2ktv0jFfpmLDAAcOsHCRDXDZDZBu7Sn+7mLK0GxJzgMU0N7zAH3dANH7AGFPgBdS7hOf0B4ZyJTlsGb8rh8Wyi6hkHuNrrv4609i6xECsDMlCOhUrNPjIIqhkJAJusTUjnY9wNZ6DZPV7tnG7FMb3tIIy3axDXcn3kqG4Ai1AGvY5un6kD4lAAm4it40gAMUDvGt3T2woJEQufpIqR5Yiq3asicv88cUVXd04IlRmg03r+swbO0m3e8w3f3G5O1pia0ikt1wvAwtWgAATwfaCsxhZah5/qisNZCa8IsaGNAN8Ksd/6rQGg8ncIAOLgIxVKdKSHyE6AyBO/wgvQDUKv2dVu4C8t7Qqfz9N6Bmfw7V1K49++6gqgeIPgn8g5pwVgAFLftwQAARvg6yIKnzQA4RkJCV7/rZPc26W7ImTwAHJ4i07Is8s9BzpdDdF+1j4/6gpPzAJQ95q9DO6b2WfQAHjfALL/7WtQARegjaM8CISYvNVZhEwJzpm5AQ7w62RKAwiQ9B0JCWWckZOs8tHY2BgCBHs8dxng+WkPwltaDW0P+2////N1j9nJrPo/Tw1ljffmn/cNsPQXUAZGmmK4GnYjXahdzJTDOfxxAJ8yoPwsvAZJDxABIEEKgCBBgE6g4jwoYMXhQ4gRJU6kWNGiFVUAIonIMAfeR5DwBFCDN6dbt2pzGjRQpowbN1ItZSqjRnOmMjU3ubWkllPNGaAnG3RjBKCAKlUQCAA40KGIDwzHQHXqZMoqgQIUCDyY2kkGggVhCxUKA3bBWIIIQT2AcNHtW7gSLwCokOGdgJAgBZyh1u3MnJRnZMKE2XLnzJw2E8vUdtglTpw/9xKtUGDDBlVFIPh4ssIEAKlUQZnCqpWr104IVCMI01pgmIEDq5qK4yDu/23cFC88qODEyd1370IKGEntzBTkiV9qa+zy5cyaMhcbJuT48U9qxuf4IUChAIQiRVaseKLCBw4AcWRQ7WSUgoM4UwuGDRN2QX1IYFUHQNgpDoEychMQNyJiAEAE4fLSi6+99ppCDW4IYU4bl0ix0LqbdOJGGwsNI0UN4874aTsCVKFAvBVUeGLFJ1oYJIYH4pCxtK3i6CSA+lqrZo0wCllAtdhAWQ8UAwCgYEAk3xKHjGP8yECkj4QTjjji+ApKsA0LGyzCw2CKybnnNHyJG+PUMDMDABzwYbwVW3BTCEkkEaIYHwCIEasL4AOFv9bqq6Y1+vaDRIb1EgJggyQTrf+oilx4e1KkKaAkbooqQ2xAMFJ2Imw5Qqp7KdNMCes0TOeqcwkovJYAoAMfVHCzBSGgkARWSWYoQZIVCDjmv6xqDICs+1JagywdF+BPrU4UAAAHRZuNCIhGKwiuQZFGorLKS89oQDnnSGFOQuce09RCTx0Lk8wpRFjVEw5CkDVOKOIdQQV66S0CtEho5Iq/BVBaoJpqCkkAWLESIGjPJRwI0FlnF4n2N0qzI+4jaooToBuTutl2zE+/bYwwwzStTkJTNd1JAF0kMKEDTzzhQYMW4hyhsxM4aNnmCUw4IBIF9J2KtX7Fao0sgHcsBCFCIwFAB4adhTGOCqJwQiQGrSX/jhpKBRhqJQifg6nTb001Uw1vPZVw3OfgkQCDDibggIMTQtDg3RZUWOGEFFs0D4MDFKjA505QUK3PtNZYI6UGBBgrAELjAGCQppudi7c1MpgiA8snrRbE7M7Y69IsB/N2wpf68gvMTceMSWWW3447BQ1GkPVVWuMUYgUA0uu5ADT07CQ/FARfDZJC1pijoznWWEA2x4+MPFEDeSt+jowvxivr7GoyEzJSDSO9pTNOIruxUdGmZt234Q5hfVffjVMSRBCJc4WoFNj9vV2pWm1/HKlPifqz8AcUB3De85BUgPTUhXomqcZJunG5qy1GMC4hxJfCxBwM2QRsEYpJYaaw/6r0uS5u7opfnGLmps54AjSguB8B4oMj/eyvPij5nwCqUbADNMSAA3oBGWLkpDlMIWMas1Z2uuS1MelEG4QAX5hyMqEKSsdzy4JbzU5Qs/XJDgojmNkTNKCBEEyAb/EBRWn0JDyzmCUsN/yX/+4ThgAk7AU7FJAiyKCRulCqI9cSAMeyMxPV4aQnFYqJtiIUGWpsCjKR+SC7rvhI9Y2ABFtk0Qjc1IEVUoUAldCKjQQXFtXYR0c7+oDhejSWBCzBBEyjI24c5qjfXK0lxeFJxaYQvq5lKjJq0IKFMqWGbvBSl9HR5djMdJwD4MAHIryi3EhQwvfZrk756wSNbFSQsv+o0T5/CsOOBjYQBKzBDwBYWCvj8sreiGQZ2UPOIJXxF5UAUxlfMl0DSNGpe3JjKLw8THSkY0wQSUCZzIzbJmwhv2jG6QmYDE01s6IR/uRHjQD7VwMbOAdigUUATjCBOXHjiFzEQQTqJARJqOec7HRjAZc6nRbCV42VnEELG3znxpZIKp+MbSVTWELrHnlFDqRgkvGjpAZUcILPxEeTEEADABTwmvq80V8NvFjylBeWbhRiCQX06FsWoRFdjIRM8DBeYtQgxDnw8icisg9LtKWF7/mFl81BTIh+sq0zDGCgQIVbuxgguyeE4JEq4ADfFGAKTRZgLjwbmB8Ox8aUXCz/W1oDSgMWkIAK2KarcIERgooDjwwUQiVWMskZnvMTlYYFQmoAHXPemdZefgwxImLtpX7CAhMsM4Rvk5slAxsCFUChBXVaAn9Q4FCt7AloH2DjGgVQWpcsgxsvLUQFHrdZtyhCV0+a2F2yRpxu7AWlfbEPlpSxkjGZTqZcekxLzqqtbR2TBaxKX83alQIGxGuLWhwBJiPBn4TgiQA/a01qdSSUYLoEQiu5bCEAwATsXuSrS5jacPhouZo8x3Qr1cJztLVaGvLTa9LxS3xz0gARqMl1IVgxf6FAghEw4AQYoEs2A0AjUEg0qlhVida2RRM1LONiACvEAVgZYYoAAQBL/9AFPIIDEoldL8OC1JhlTRsmEXnOgTn5mhOPOTacnIEFKlbf+q64ib+OYBOCzdmSFbCa3V1gwKkZ3L/6dRKgdO2uVe7GGpbQFiRTJAka8UOFq1WxKJPJw1XG1Jd8UrEPV+imPMkz13pSMdyyjF19XTHOPGCMAYTaD/tzqJzjIBAcrRFgDmSJPm1Z2YBZ98iBhsigj5FOvFiNJH3sp3EulmcMIRqQG2qOcfDKNRDRhKOablmzJzABD2CAb6EOqxP8QDiHFmBfobxhxho4FCshehnaQkAAKqAuyNEaIkRgkh8ShGhJSZcaMcmeXRHjXtSRb4nLyJBxuuFPNK3s2dD+NP8GBqCLZQj5Hb75yLVDeeMCaLsCvzKLAy1ejRC5xNj3yU8AEnCoWdMaRtL6iMWII+/oXJomg8ypP18CNgnRta6emwk8dDEAaUv7AAfPgADU0CkJHCCsZOJRKHdXAANUoAKFMItFT/LtBnDKONwMpeEkUCIfDGFAtUjUVyvQ5OF8JOHcWKc/L332RHptZDc11U16wrmW/DJC66QSNVbSjZlyYwA7D6sAio6AQhw9Do5t7r8c2C+ARcgLjQlfald6vI/o4gAmMEERbmODF8yAFUmqApN0cZeJiSSRCUf022vyx5DB5GMYxGD3bLJyUbnEC17Q5TuFogbmrHMZTmjyFH7/BBaIFyASCVBJW+8evsSdQUKL34ndv00luoNkACZA1EVmpQINIMIG0HuABPJSHEII+WrZk4kRO3X+6mhj8eVaZwZpojXcr55CiBHf7LkReSeA1z7Bj0QFGqitylqJS6GSCdEGfuuciRkJ0iM9eHACCXAAJkAHiWCFFliB9NGAL9i8JHEYqJES0aOGdbIwYSMT6hgTkvmYJEovAVCVKFiCA3AqnqAgLPuTajgD5kix3BkAeKgYbjq6JXCsk8AqVquyZSAZMumciqGYl0i4hMOLyDsACNABa3AIGxCCE2i2drEAG8CFRAECH1IAu9ALKqmWXJMl6UKd9FsiDmE/eRMA/72CgNzJHREQAJvgGDK5GDx7iQ8CgL4TACEKi+D7wTV4ujUSiqHYiw0hhXqrmOIowlFpjERSBiFbBsnDgRUQgidotpYJAVuwgAgohUAIBFwYRVwAB9x4Go6osJFQkEbMjnUaGZhjO9ThGAFYFTHaOwl4B+myQ+bwt5NIpNwzGW54rhtKAKyohCVYg895uhrUlgYRgNa7tLJziW+JkJi7qSxxw5W5Gd4iAQuwAFuwBRj4xnH8glBkBQ10C0cgA6jhCCd0MjIEQdIDQbIrF2u0Q7IbE+laBniYPAwAOwHYxeqoiW8xtgb6OQMUARdcMrwADDgiAAgQPv/bGo0JLx8jwP9vYcK0s8bzY47FW7/cE4Cm0LR2CQEGgAGUDEcYIAFbYEkXQMkvAEUbYAUutAh0EoEKm5opsRjxm0ZNUYbws8PyKR9+/DzpWj6PJJ/Z04aKoaErEwACcAAHAADv88M/CT6oKYRfGwqLoxJuWMolssdrjLnZQ79e1AW2mQBHMslXsAUXeIUj6AIGmMtXYIAjUAf86oIugAEjAMWapIhFcCEniRIo20EQdEVX3EeaYEKBfDn0I4QdnD3JnEzKXDxSIMZq6BpuEAGcXAYDnLowODoF6JdL6Ylu+AAhJA5CmExs7Ej1mxCQVL/FW4bpaxt2CQE0OwIGwMsU4AEeCIEUCM7/3hROHuAAHjiCcYwAUQRMGAEFjhC9BGzC4kDMlmi/IszH6pAuNSSEAXCC5atM8CSFxgsmFbwWf1sA0fyVvVinD1AAAzCFAKiGkZDNpQSb9RvL1VzK+qSGyfMAtWwXDWCA3vRN30yB9SHOI3hJW4CCATVJGIiAdJQINIiBGKiEpcgdAziGSDiAJVgCzsTJXBMyetxFE+yU+0w4+mTN8MQa8fGUoGsyahhIlQq+pxrES0ETClAFpCuEDPBM1ixANfSC1VzN19xOyGQbLpiAGjDO4CTQAgXO4GQAvXSBUmiCh/gCC2AA4ByBGYCLYigGRwCCRQiPIriAFdCB96iECjDM/10Ek1FJw4/5zo+0TyBdPPDJTA65vz6STEicA2OMuD3ppvACABTxgQOIgh30SD4NG5IhUrAsQEIQyQ5gmRpYUgLtTSg90LlkABJ4SVA0RYcIBAsogVtpGgDIvyK8TiN809WLueUbS/IhSyGtqZe7z7Jsjm740wKIj25qgDkggPHwgQ44OHiQrkd1VbAJSyIltgnZPbah1LfhgRTYBANdH2uVmy9igC9K0L78SwMqAD8IyKBszKPsSBOtT2S9x+8sKfFJL3jgknoTgL+JuEgAhQRoo8nrAAyQAF1AVc9UVzUMWJiLxdxzAgAwgWergR5w0uCE0uEEzt6CAg3wTSWAgf9S8NamiYFIEFd525IIUVbXPEEjtMYlksxl4JqzYYEBiFF+NEx5xYpdzTEaAIs5wEnhEKLD3MFyWTtlVT9kdVW0RFhP6IGF9U28ZIBN+CINaFhpHQELwIVnsAAX8M0uMIJSfJ4CAMN5BMFhyxLX9JhGdUz6ZLwG6LDGeEEBCL+puRoRgNn4oAG4DaVVZFMonIslKNaEG5Wx40hl/Vh4wAChLdoC1c2kVVrD5VRf2D4rKIEWCE4XMMfIyVplJMOREJHU4xhklU22awxFpT0RebllyJ1ipQZ/pYa2jbj4kAG4FZxuCp/v0iyMuJepYcKA3Nuz2UcJcUMM8IAgIFqGHVD/aoUdw+0tC3iIGWiBE+CBLviCpiGASHgUvVhEEoXFs/nasKzVpSyTJRwA70tCvMgO7og4A8ixcgscBJDP8RMAHXqIDSgAB7hbiRlRxmRMksA5LlBY35XWAS3QTUhaUl2fpR2BZzDeJ+ABBhhgZ6kEUFgDSVGJxMmOZEPDcjXRmwqbziVBCVkGVeHQA+hgChOAto1IA/gd+giLOeCLJoSH9Y0I7wCAcL0a3ZvfFB4AY7jfHjBOJ/VNa/0rELACG2gBDWgmBLYCVpiVEmAYF+o5AegIoZAYvqBHYWTVxYOiRJzML6mOWoy4SiiASrDQA3CCFBNhEibN6WxCXQC0ipAz/7oo1oBUpxhOOHjAOWNQ0vzFYfXZBBU4YoeQhKNqF0mgI+fFHJGgHoy5licWyvLxlo89PwsZ25b4TAJAAzSggAvg4ql0QAcQ31+xNBI14xW2SQRKp+FgxI9wAjlOUoU14PK4VhXoUuO9GxWYwucpAxdaUyfrCBsNjLfDXEfkGAs2y6WMCSx2gEVIgkWoZPc9kIQRXwWAKZkyW30UgHdA47fQgQuwUAojQ8K0uVDbOwwwBhUIhIdg3LjJY4iwhtv54+cZAuedXHiglCozic+RqStLvw2q3vN7OW9hvrOBSqQ4ZktmioQR4QBYKbFdQjJ5h0+OCzkjgLuFklI+uIDEi/8DUAWJEIIQWBGJqBUDeoEkxospAQwBDB/K4icSfY6y6Vn9rM9MoYbuWASAdt+pXOZdTYCA7KXHPBldcAAqSJL2RaBsfgdinRgAmIgZgBMhwC5ajgMG1osMSJyTmAPiiC+NS0GxpdOPfFRFPBRVOOYKlUqmcICIHL4GyDBOITsQhAdycpZMXopclJIcooghmAFX7qp1FClDKznPsR6gAMDtScHthKLO5VMyAQA0QApK5mILTZOIVADRio6X8IKXGyvDfh4IcAACiMqFVjcr0C6oUUU+yhi0i2CPDcuABU9ILBGkQANkXuxKqOThmwPjGL3z0z1qkIDq4+wIc4QYSYD/R8k1qlmgJ/4jf6IgWBSVweZTZTiUQRgE1o4BLs7sSojIOBCtmCpBtBYAFrgA3UayRXgABVgDSjk0iSHkkaAJjrlcvr3GFJ3i5T7sQTARCrXQLm5s4/Exs/YUIXMC2O3uroKR8I7H7GlIqYbsFAwVzPXI/KzMlzAA+O7qSt5iLuZiQYQpMxm9ehwrApgj/+4qH6qLkkM0a/kLgNkWLdDMMTFtjylA8GxwNBgEHRiEmNbiPKkAw1k1FNZHIYMHAoCwDjcnO3oAnAyJ7GGQOUBN2+oYngXJgZVTwjYAVRiEMnCEGY/IsZ6eBoHi8AvBB/txc3KEBPrt9NUabgqLsoWQ/2QVbHuGoso82xcfBEdIAjT4johUrKy17pVQwHLl8nLycgOasMrRC8r1uwRAgE9iCcOY4tdk7yle8MnkBgdv7jIYBO+AAEu380gohGroubLG8HFVax/3cwMCAvBm4ASpFsr9kUPPb7pb5KQET8nkhkigAB0ogymv5Au49EpWgASAqeSrXS6JVLXWOlH/8zgI8JIruauZDDWy3OjyjXeI0RRtb8okha2CcXFw7gugUFx3AL9ZKc9JzLMhO4Pt82JnGABfgwQpQ0YEimpYDXCXifYDwXPNalinvSV4cUcQBzGd0Pm+ZqUrhEtpgB1hwtoG9XN/nnRfd1RHNGBagOBBgP+yja4lRNGwvHfWvPYyEIc492rovuYlqIB7bYA1iEoRkMdU5fFQT/hmcYRKgJrKebLx65yHD6UFMC2caD5VVdRvgXVt2Kp953ggSAIKrdBdT4BCXwAAyBPvY0Kye4ceZ3mGWQR2TAAGXtsiqhKgmIPfAwuWcMUSdfJ71wYJuICg5/ck2PZr9o4HiChQ+I5Trd19RHipb5bAhBroBe4y3Po/UY2VyJ75ZfRkrUxSEAEKOPs4Z+1K9o7xTYgHmMomk/uAdAIAqXu7D6lC+A1Duxaq4cGyMPMndvoUN0IWZ80ogADEV4VJXnul4Bn7iYSpQXm6o/yVt/wB+arw/o3vs5j/vWajUGoAxlzMl7PgRZ9MQnCCApBycRB61V98CKgEp+L1+x470lvitbb9DXwAD9V9eET1BHyu+vB6oJBHKK5HvWX0pVRh5c92IBBTXPcO5+V1q5d7RtyOLsd+JIGRSFgDnQQIeAIFEBwoAJ6AOYUSIECw4Ay1iNyoLavIbRm3jBcJEdKmzQtIL9oEEFBVRpw4R46AJLlQ6QKaAgUegFKgoJCAZdQE7JyzpgIBcVaGEi1q9CjSpEqXMm16dNEDBWsyOHmHkOBOggLObO1WbQHYBQ0aqMlYUedFsxk7ehQZcllJHShVOmr58oJMAJEUgCo0h2LCatUKAS3j9DDixIqV/0KVmuFdVYEIs2YV8HVBQ7A6z1pcW5Ejx7ba2C4DYHJuSiB4L1CAAIHAMVCgAoRpQG2O4AWFAhBgsvg38OBHY0T1UxWy1ataISbE3dChbYpnKV7EyA20R7YeS59GmRovhdYQKtGcDWmN18uQgPoW7v69UyLkFVAVmByhQZ5au4UVy9kiIdVhFJpHBX7E3UlzAaHKBRCE11oBBMShACSQLHBZGAgEwJth8Hn4YVGKkBFHBWs4Ac+JBlEzmVYEeQVWNw38Z11no9noRUcdecENAGgkmNoi4IXnmoQTdmLhAmFkGABQL4D4pIcixiGCCMfddxV+kiV04YUyorXZWZ5dx2vNaKARskwkFJxUBUosLRIDGmg0GGEccYDSSScbQtJQAEs4ACWg7ilCQCRTPYaiVQdlMEWLBOEWRm7VQETNRDktY+kyWnCjhRYWZcrpMgosUoUipQIZwyKLyBnDTHbKJgMkFAYAiQEFBPpkQAAh+QQJCABoACwOAAkAjwC5AAAI/wDRCBxIsKDBgwgTKlzYJBCdhw8dBmoybaHFixgzatzI0WITiJ8+IckxBknJTxEDqZSzraPLlzBjZmzyMSSSkGNy7NiRA4kRkSE/GTFyKtC2ljKTKl1qUQ7EhyaRSM1RI0iNnVhz6OSpBEZRpmDDKnVIJ+hIklprcPHggctat0HiXuXBI4WLU2Lz6s1I1sjZrTuDuPVgzBjbDh3WephglW4KWyD2Sp5M8GPZsyWxVuViDAOGwmwnDOYyoQcHuhxsUV6tVw7ZTzl3ah2zQ3DbwsYQi54genGP379TsB7OdJtTv1p3VLWqljDu3CZ0T/A0gTAX6j1qCCfOHaZrIyWjjv9p7vy5c88Y2vYG3bYGj2vd428EQeenyJxpFZtnj3hwecPtcQCffAQuJMdQZcW2HFvlfeaceokRhl5hpJXGQx0FZojQdwoqpth/7HmQGGLP4UaaJxwwEJmGLA7klE5qFfbZhyUCeBgXuhHGIG89aDBgiy3KoURtnHVmJGKHMYjYkku2xWCFPaTwhRxAtrjNFzyQZ2RhTLrVn1triYZjByKydR0HMFBZJYtYblbeg+rxJuecnqDIwZ3UTceBBnitqaEFIbhJYgeG4ZYYb3feGUIIGqjAABSQIgLFEyqEMAIUNvipYR0pECmiZ2Qy2QGiJ1R6qQWoflEHCHjgAQIIddj/8UUEK2pKIAi2VEWYCSZgIOqhKDYKRQlfFDurqyAEYsOrr7Zqa4FfpKCrMb1+ltuSpEXJgC2IGFtsHcgyKy4eaj7bnQUc9LBWZ9GJOkEHnvCgwSu2QGHBNd6GKy6zmZp7LgfNcfnrqByswIALttRrwawRzLrvvv36S9wIv0lo7WFLTsBBCAcnbK+3Eej7sMTE2cBAD0FYnN6vGq8wL722wJAqwyE//CpSJFMGAgM8pNyZg0zyhmIIKoxAQsK2LBxBw0uLzCzOOUsGAgw8iPazoV9qzPErr7iAcNI0Lx2yyOVGvZfJPUsIGmj9ae0o0goby3SrrgaCR8hlm50XHoFW//cmxqN6UioDMJNwNKqItGDHCE9cemwEFtiBod57Yamu2riJGPieDHTBtS1cc80AAxo8EcIKjEJRrAVPaNAC5Xuhyxtb1l67JAcnbB06A1tDakEEdSBitOpfSIoIHrDrJfuYhAqsm+AaEC46AyRAgQgiJWQvq/FLL14C1MkzVQIHvOFIGphxTjA414ZHasEIKsQ/QgnBK22HCiWEnxe6KKsfvQYh6AGd9tQ1pMkMVXaAgh3oh4c6oEppX4iY/sCiAurwoHNegwEDOFCnoREOYQfEl9hcVYcSokqEyJugWGBwpy4coSsugIEGQ3CnE6Tgcx47odhCVsI6fOEa97pGBP8kqMKlwKALMFDCUGBwBBi8ogukk14BEyaza6BwVXf7wgPxlcIiMgUPMuxKEpWgBBeEznBnhJkMlVazLCJChlacnBeXIgcLwCCGMnSBGEnAvtCxL2YnLNbY8CCppAmRXHNkyhdihjA7dgFhJBjdEz33xM/BEYV4+AIUYrbGLiYyKXjoGh5t0QVKjm50nivlI2GWqqYhggQuYEAKoifHTyYFBo8BIQxsYcZTSq9zrzAcFZXmxk3aggQwsKUiGYVMGYLuFZuInh+DKcyYWbFprdphBJTJlEqh0msugCIq00hFOMqNbszyJDdlEsUjlHJ6wAwm+6p3Qiv+sA7YbOA6jfj/inFOb5rUHObCrnG9hdFMnfuECRRCZ0auQZGSDlUjDPAFgxFQr5qI2GZCkwIFPr5TlQ8F6SPLaUVEcHIoVkToRjtSgmeGTpVP7BxMjwaDbhXLnsaq1UphUgfQhVOkDDhCPHEIhYniC1/eyttON2Kcnk4SpEo4glA7J0mvWfOHWBWkUpeKEePYwAI+nWYpfalKcBpSkKdoGlc7YpyG7JKPYg0pVU/ZhYQZ9BSnuJtO14oR1wTiFAhzqEhVOdUUnNKdeBTh0gLBV43goQlWtABc0/jSsZIuBZg95ecQgaq9NlYhiwvE+44pun7OM6aj0wBmV4tZaSJzSp+1iDVacIIT/+ChBJKcJuEMN9mYYpYHKbIAGkAwKyLG9iAzaMEKcIADISR3E3wknBTRCNBXrNYWdajFcS9iAzus4F0YMEEWqCAER720uqE7JjBrWgcraHe7B7GCDWaLjQ70CgAAKMILhkCp3ErRtH+0HqqyVwcb/MIbtbCCFKzA4Abf4Q5r9cZ8vQteABwAvxAYwgvKK01JHo201PxYwxZmBxC8oAxSsMYQpOANOTDYG7/4hRV2Ot8ZPOEEFT7AASRwYQcwgQr8VUGH6YWqYxrZd9egXwnsMN8YFAEbWRiChl9wAzBY+RcbnfB3EdMrHe/4ywQoAxWkwOHojS5pdoTU0TpqAezVYf/JNrABBRwAAUEMYgN4psAGylAGb+xzwiF418+8PAAJDKDQACDAIKjgDTA84QmbOCWarQepelkPESW0wwxs4A0gkKEReA61ngVRhhkrU8s+6AB6Dn1oHrO60AegwAu8YYU8NG50RuOs8S5d0OC1oA7euIMiyFCEIoRaEMgeRJ9tOV8hYKMROLjvhXdcaAlY29q6KLQJUKxgIbTAaO1rM6QiVdD3tcAa3uDEDWKwAT3rGc+C0AETmDAEa3jRGjPIwgpSbQL8GsDLB1jCEq6N7StcQQIAWPSBb/DtEbxiBJwVN6/vZQEN2MEav+DEN2IAhCK4G96LFgIOfKA4/VkjD1n/8EGqPWPhSHhZ4DCHucGvoIsrxPoF3/jBLzZsNIijatyXRhXvSiCFH2h8EcUINbzt/AId8MoEOMCGDih38pTjwL4YwO8BIsH1gB/gGAqoQCQELoJkRCEKTrjCEgrAhBv84AffyMO3udVmSfFaeLmbwTc4cfSOv3sDyS7DBlie6A4UIQs5o0K+G4GYrOt4CWOHPNfjcAywc33sIhBBFFjgBBYswQFlcDvfqdCCJ1TvenZHPRRCcIIRYJzv3wACEBpBgVEjm9QbIIC/DYBfE1AA8c+ygY19EG3HX3vrl+d65SMhhkgoIOzJcIITLGEJFkigEmUgwt458QMbX+p6JUA9/1g1sDGiG53vjgBC7dcP+EEwIff4fYAB5o9fBxShDH6yhh2eQPz7AsDaSyACS1ABz3cMlycGlacAXKcAsRB9yGAJyGB9F1AGigAG5/cLTNA495I9BbUJtfUEr8d3P6AIfrd+FGBn74dfADB/Ljd/vGcC9wckZYAN/Zd1/ydw1iaAFZAACiAGCFh5YPd8zxcLZZcBltB5scYERAAG26dxeSAEnPVmugZAGjADUsB3WEgEJch+7kcBu2cAx+CC9AcAHTAILJIFDuB/EhBzAVgBbvh8zdd8x4CABeiDCpAACZAB0qd2FKAIS9iEcJcHJQA8b2YHpKMBUGAN55eF6meCJ/9Ial64gvI3f/L3APLXe4KQIcXgAMYHcyJQAQM4gG44gD3og3MoBgFQimIQdiIwfU4QBSJwAYpQZb9wfm/3DVSwKrEyAhqgASMwA7WIhdxXBerXbuuHbGUQiZY4iZS4jPjVAQVSBRfQbwEngGyoAEsghKloh6aoANvog24oAiwQBRlwdpXQdky4iLeIbyVQek+AacEojDewCIvgiI9YBhcAAMs4ifvojASwAQTiCA6gdQEocKAogDr4fAGAgKsIhwGwkD64ihVwdhQZBQnHhBmHhW/3A1KQXI92cRkpjN+QBDEAARdAARBgkhCgZ4MAAZLYjzD5AAAAAfJxAxdABjf/GHOjOHCZR4Cl6Hx2+JCmOId4mAFm13kSQAG0+Hbcp3NvR2aaJgXxqJFVQAYxUAArWQAXAHKCMJAGAJNfCZMFMHXdUQUxQJAw55MKkAzJcAVuKHaqKAad4I0+aAoGsIoNmAF6uXkDgAMvIJU69w1WBgY3cANUQAVgAJiLyHdgEAO5UAAsOQiDIG9/yQQOQACU6IIxKZP/GB+CgJMAcI1CuJaw+ImRQIA++JAPWQERiYrZ8JrJwAjJwAIsEGs6oAODIAgXsJLxRm8voAhM8AIWKIwjSAa5QAAOUADKmZIrSQEFIIli6ILH0I/4RQHd0Zi5sIJLcAWfuIPeiIdmV46f/0iXqBgL1fCNqRkLepkMr1mOaXdhOCAIG4ADBIABdEZqTMBn8nYDwfgNi5CdY4icWFkAuiedYPiVYDid1EmT3OFp2pl5PZkAAbCDCZANe5kB2QCLCjB/qxgAnWAKH2oKAZAAbJkMePgBm3dwBwABTCAFUtB0zomczZmGvtd2ZYCTy2gABEAB7lcGOkAAlWgABWgApvAAYbiPYQgAoMcdgpCdkSAB4giL2TiiJHp2eukEGTAFc5AAPniXPtgJIdoJeDimJJqhIqCAAFAAgqAIYyYFN8AEdwYBBXCZ+EUABNqM8kcAOqAIL8AEivCcCKoAYRiWllikRoqAOpqJw/ECMf+ge2R3BVGgds5Hoq+IDAIgAMgwBQJADXMgApHgpWIAoqHqjaT6kCTKlmL3b4lWCRdAanx6mFaGmEBWBoDajASAgmUwCDgKhoi6jKYQqgwpqLwHkMOhCLq3dQN4BbR5Bd6YDFmqqVgwBciADFgQrVwXqqbwqyCqmgoApqr5AeDKgwZQAO0XowLKksF5Ay46CAW6j4LgCGWQn7p3qGLgpYXamgr4qTNJHGWge5gnAspKm1EQnpoqAFOABdM6rdTAAqyJrdv6kGEAkagYAGbwAbKZAMegaC3qpoowCDGqggRgpxdQAHj6AGE2izfwp0AahghYia2ZrXMZCWHIoKwBBNn/OXCcJ326IH1RkA2XCgvVirDSigXUYAlL8JXZCqKdYKoeCqZ3GAYWmwysyXuVwKPCKZUcm6sfy3WE+gAs+gJUxgQ4GoZAWHmtKZepyHUAcAEvwBqddrNlJ3206YpOYKmXmrB6GbQi4KVJ2wkRK6GpuLQBEAZhUKIEyHt1qqYUqK4xJgWESav9aAAZBrZgUJX6yKEReYoM2aUGmKZMwBrzaGGaFwUQWH1WmgGbirCWgKlTQA3VSg1OgJqjKqZhALhgKrgfMAeoOq5wSo8jG7IiuwHudwMvQAG5UKiWyLa/eQOOcLwGsICqmK112YNzGIYFYIar8QL5eACQinYJ+4rh/ykA1UqtczAHj/C6yFABCwmzS1uxHxALD4kAIxoLhJsABBhmffqXYMAEulkJKpho/voA2WqJsga2zKt7lieXESmowCqU9aqk2EsZeXCW3OuKGUCt1PqKUSC+Qaulj/AIsEANjxAFCRCmYJoAFWu73jqi77uQSloJEDAI6uqiYPACjiAIEICZZzqdv2oAFABkwukImKm5EQmR0vulXaporEEEZ7kEO7uzR4gMrlutB0sNVuy6TgALIWzFj6AASWsKKJAAYWAGyUC4qokACFC7H2AGEWsAlaB7iVZnbeei3uC4xUCyYVikPnyYjusIK3gMqnmKEnuKc/mDt8oaitDEuv9gCbqwsxf8ulN8xdXqBAIQwsqgDLuQDA7bCWkcBt1gBtUQBmicxh+QAGuMAGJwjjBKoMALmfhZBmd5l3r8wzQ8CLnwvOr7kArZg9IrA2BqigBgnashtv+nCw/IyCwAgURLtFdsxVhQt1tsxRkQAH3LwtVQDWYAv2nsvtVQymKgaGA7BMEJp40KxwQpyzJJy1JABcXgpHgYCzwIh2YrBjKgywgYzNn7mcU8rbrAApCqzM5sxZdMDdTazMpADclAzUqLAlALtWxcu2bgvuEqBomGlRuwYo2Wso6wCM8JebxcrwV8mP3Kq1TqjRB5iia9kMeAz5RRBo1AAAdQAVcAgQ//2M+UDMkCfdDVeqnUcNDKMAUKDaIM/QGEC89hEAvgCrXhqgAA8MY6RgAXMAgV+A2/8A3Mi8fA+s2CgA1DUAaCgJnMd4cjas9FDAkOvK+UsQGXOXBRQK1YQH3Th6k4fcnKgAWVDLQCDQvJEKYiOsb0y8ZzsMbJAK7VwKUEYKMXAMcyame56QAJKr3BnGFMkI/Op5BUyoOtqZoqzdKSYZn9FoBZmroIi6nUWsV0XdeWasl0PQVcCqLbSrigfM2M8AHd/NABYAAbALYnlpsX4L//Zm1uWZc9jJzOCQBcl8uqedTx3K0IAAmQAKYrLcySUQz1adwKkA1zINoP6Nab2tN0/w3CDdAAp60MsPABYAqiCIAC2wzK5TsH1xzRW5oAFX2CwbnOLzAIHB2azBeqneCDdgoBju18mu23tWu7D8nGHhqG0q0XoYtfBhgL2R2040u0j5DTA13hV3za3SChYCq/nRzRzpoNSM0I5WuiOqqCDkABZfCXdfwCm8irMPvNkEkAla3ZYx3PqfjOHD6zk6EIA/l4O5i7HPy6QAvCGX7Q3t3T3n3JH0DNYKreFAuuyaCl19zNc5ANCWAA7rcBz9ljK5mbuQfj2ZqxM851Czm4CQAJ8Cyh3xkLr/mQkEDRFzAZ7Pp/AeeGCVAN3W3QGZ7kRz7eDcDhKKDeH567tB3R1f9Q4pGQYUDmsQSKX9tJc5CHratIACtJAGAXv4MbyoCrmhCe0ELJ2XmxbhamY1AqoZ4czRZ+5Abt06e9pR6q3oRL1OBK2N0wByReykoKARsgbxrWsXMWmpD3xd986c9rqhIqxp1uqtnArRs653vxAj/+eAOIh+W75z795wdtyRZ+yXqt0LJuBqQ8B91A21VeypFAp00tCEMwZlSgCDrglQ6bsSeJmRMroZDwt0373FSqy58K7XpR56FYASLwzu2t7dxwydyQ8OO95ArP2reLABFN27jeDVV+66Xsw0xAAYpNrqGGwK79q5bO8XMYvxBtBoBr1n7LtD2YppKxvWs4gNn/kAzw3N7doNoKn/CkMN48f8mEQA3T3OETn+jkXuVmcOtSi319KgiPHnDAjZq3W+wcb+YQG9uEC9sIIKHw+9z16gBUoBdf/X8DYHCku54VWw03r+R0vfCEsPA87/CksAXUAK4KMMbXXL63fs20fakjrAA7qmz6icO694kmXOy5N4edQOjYXL8RW7tjjPL9jYBhBvbZeWich7cZ4N7X3A3iPd4L7/YD3erKwA1bQAqwkAHIffSB3Q23nt1T8PpSa6chq6bBKc5fjfhfXAkzXvKmusafvuaxENHw/MuR0Jl5sQihKQHUN62liwxXjutzEN48zw2kAPquPt5xzw1YAOoB/yDxsc36c1CwAvABClAAyQjTFc3rXngMYAoJKCDyWonp3ki4iS4A5Z752bDGEa3CkQAQADagIVjQ4EGECQ/GABDpihNLEZEhw4JFgIA5H+bMadBR2UdlpAiRAlmyJDduyghxmxIrQCcUCBZUq9atASycDbpViyWwzKALBA5c0XWFqAIFnZQqJVAg6DExAQKEqTZHQIYMyZJli2UGgZkwkKR2OnaAgkK0aQ8qKgBgCdGIEitigXV145xqAmB95LZlC6mUJakpo1aYL6GVcxCgiBlmQYOaj3A+6vbBTLIDDjYMErShgFCiIipIRdBJTNOgccRAQkBVQAMBXGPNNlNbqv9UBZEOQFDbG20VMgAkRJEokSK1igKQZbBJmNtIL1tQpiRFkqRJUn5JUfNKA8F3M48L79Vp5oMCAgQAVLogiDOEhgpuB0DvlICYTmHCmKmJNZtl/qoxI5bFlsrNAd8SPAiIXAyoIAOIkDEOGeTquogjZbgBzK+/UCJJQ5NAyq46bhpY4KvvHsOJmo4gC4CAQQZxQAIJCHAAgrYiCSCBBMIQ47QCKLiPNKrmwCqWD2jKBq/ZAoBEBhkCiISAFxS0sopcHqjgCgiXm4MiLCSkixpYuplDmb9KIhGwk07KLjpCqNkpDBpiqgYnWOTcKBkAKChDEAgIEMEJJ65AJopkELj/rb6gDJiqNf4yyKY2/viLhSsnO5GhEwUAGMRKBZNocNAMLEFmjrnmKoyaRyjLMLCQRtIQVpOm43ALwj6gM6aOcCJMgCmyqgCAIDegwAEAnBAgigQCUJQp+/ADj6aMzOixtmyyva2TJztFEFTfLgDAwWyUQwbYuWDBYgqcLOpmrwxDqk46lNT8iEQP/UJpp8VQ4K8BkFit5oMEDAAgPQgooKCAA5p9SSkghTSgk2mrWaC2rmqzao7bxNqRWHB9YygOCAWwyBKTK6KIXVZ3ArheDTmcLsR7EctuCy/i7CaMxRyraTwBqkmAgA3KgOCAAQ5GtgKlUFiqqQ0IMCCqqQTU/2/ABGbTqZowmsTtmG9D/o0hh76c6FyTpyisIjJh8Wjmm2WdudbpCNFOmSl0/e67Bs7oNSMDCnhPPaSLyhTiG58SY78Aweo6gaoE2Ikmr6UsQOy0kiDDAAUySBmLtgubAvTCHgGYL+v8QuyvlUCi7rmVnsM5TVj0ZgyBXlmdIxsRDiAAgg2KgAADCa5IABIDHYh2qv1osjpAavGqKpvRFDiGAMzRAmJzMbLJAO0pBGg1z0fWbhtewKq7WTs245UXJQ6jk447MxhjbIEzCMPCCRGWAAADHPgAGytohHBGoxT6oGZIjKOctfhjJthgZHeziUUCIgEAQWQvIQwygEOwcv+RR1REMo8QwKoGY5jnpER28hPJSNoUkph5QYYraQAC6sQYGtxJAFc4AAYcEEAf+GAFPuiAAceSgPpQAADHcFZtFnCxDHRFQHlpgPQmiMRjYFCDCLlAgyrghAxMYQ6jS1VhYDWYe3noI36Rn6zat4vA2EqGXkhJNRZDAxrQBwAAMAEOgLiCEATSBwAYgAQqEJYdMQoA8qGUGYy0kdp0Qy9lamQFFRAHs2zxIF08xkNMpRfkUGMXo0whYDwkkvb1BWczVJ8pYdbCVgZGQKUxQFMg0IggruAEIdBAL4foAAI8ICkQQ42jplKp6QWoRWbiSaVqUwEJhE2TaIjB5h5yHBP/ZmhEaZxOveLFxujM6lUn6earXPiIWNSyAI0oAiADyUsNqEAF8VQBNopQTaiYphJOWSTkrMa4WMzBJpDZHVaQOUZdmGCaBYlBLiLhBArNjEwCIMxHDMOXuclrlfpS4Thf1U1vYkEX/+uAEAH5hCfMcxMMGMETWorSLGCjEVPTZ8KM6UxK5UWgzrMKLJaxjI5cRRcdWCgaiBADA4ggotxADrvSuAsyvctXswoMm1ZpHbiZMnazAgw1ktaBDnjiBCdFqUtHQAIStKAFL0VpAZn4gH2KSwEIoEl4nDiT11RDJw0YD2SqQb1MLrQYBFiCJbAAVWpIaA6wgNUUptAcwsDx/0PXeV/6MpoheqEEMUwdKVg9wYFdqsClKB1BaU072pTiYImdgGuQlpgxZ14scnsRJUowgpEMiKBPRWXIANgWJkso64SweMQUHhGvwajPm/DC6Nx8pTqQMhUAJf0saEOgAtO2dJ7zzO4TVlBE+TygADG4wNSOSanHaKwBpKwXNS6CFT7xZppVIIAEdAEmCbHAc4W5yEWSixMNmVIZlAKYgENiUZucYbN1S4kTCBBA0J5glwwgARRagFJ5upQEI7iwCiaAgUg0q7Xl5RZYGilbvcARJVAljIWcIAEcLBQIADjAfc/2SRJKsIQHvgkMlYGT8JxBC9NJLohYVI0hT8eUJP8RgQN8IGEJB1IDFV5raRnA0uyGwAQAqIBLTFEJCJQ3KvrZz0yemBdqBMZtq8LJVQ4wkGnO+ACmMpWEJhK+75WQTWQqidssdoZyni4lZOpIkj00K2osAQdijbCUR2CL0qbUtBtuKQcw0LDviGGfEDDv1cLjV9ik+SN5EqWfhQYAbCxUVJ2E6NnmYhXQua6ieSqTX88AmJWw6MB9zhAcMYocAOCAAxHmAC8pbAsLl7bCUKC0CjpwAAkQKAxfhgCnFZAAxz0RMjaBxS6UweIMwSIbjLOgDxa6iAbZ19UU6S8aA/Zj5sLiMebkhtuUXCv3XQcWwR42lHepgVdA+tFnRev/hr1rgkImAyyaxtEBKsAjxj1GkqHmhoqVIYBY0OQxGbgCqqmgSUXE4AFLuC/b7Aw69lqUuaOeyV4Q8+OP0kqb4vyIAIJd3WEXOwWvQOukez6CEHQAAwO4gmXCoAAwM+zh4ZlJeKglADj6ZRcCqA1NOiJJSxygpHbQoBUW0RAbh2kihVExSrJpkjOcgbEoIW5lKQvDqmYIC9OdQM5zngIG2ELgGuiuD2qMDCd05ehJX0IFstERjdtEoN2wW87qDZkVkR05lhhAH4WQvTI06AqmEjuFvg3HUZ7dJABucXJj5SZZa2juHai73YtN4bO2VPYoFbpvnQAgBdzIAaLJhvN2/9IN4PO1L3CCI6nzpOK1XUECJigC5o7qllZPBAufD73oCeNuw1w0JH6hWZuwoPUJfBbneKd0d1PqAQxgQBeWiIV+gLR7MOYENhxpDiFkuIXYrYqU+B+lRZwwgAPAgRUgiOsKpBFggBKYgRmwgxJICEfIhWOogLOhkMGoOOQgnRPKQFFyHZnDP4+qFZKYAglgPU/AudejtLIyraCrsYrIBtZ4v0goFzYDvtpYr8aLnVGKOvyDHQvEAsrDANabgPCDp156p+uygzowiKN6AIeAKNLpP2xyt8CAqrLzpsN4nY+Kl1kRAPALvx64O76LNNJyKUsbAMPCgjlIAARADwhwAP/DWxJJugiX2QtVmo5dEIlVkh/8W4ldQIYBAEIhfL0rY4AiDIFdCoEnOAh0M4C38ByUSxUMNCGyq0JvSh93ixcS+YghmwK688IvBC28I0R54rsn0IAOGAAwoYYp6BExUB439BydeBfIaBGV2ENbabw5uj+p0wUMMIFAPAG8O6tX0ABDPIEI04AGLAjgaIgHMZnEcjXQicQcZK/o2qwKtMJ6qY4+nC4S7AFv/MJQpCd5UoETGLoBWD9VTIYwUCc3vBP32ojX6IhbW534iZ9c1MUfZD2dC8UrS4EQsLsT0ACuM4hVe5C5oIjjiMRYo8aVWLAU8jYV8rZxIjInmC4uEML/8CvBYivEQJKwCdgy+9oFQsACRFEnAtgKisKJObyJvsBFGXqTe4QTbvBDX6y7HuABHvBHQ+QAb+w3XkKEBQmOOMgGhIRGE0KsNJtGzQIpqDK7juJAwnCCHsIALrhIjDTBYfOECRC6v9sF/KOGDCiYpiAAyIEFLWgxt+kVl8zDmJwj6cg6E7jIb+SBf8y5Tyw2XmoBhNgeB4EowwITDJzGUfq2mbFDiwI9i7Oo2oIqP5xKYzAGD/CAqrTKCahKExg6XTgsxLCbXZiCZDBJw+s2lesxbmhL08zDXbAEDDAGIfzGL/xGnvzEgNSAJxhIg1gEMmA1zkM5b5M8M6LCcXI3/19bsdbhwNYRJT9MP+VcTuUcAFREDNCxG5whBVgwg9NoQwXIhrWbSeFCE7Y0zXvcgtRMP7mETbu8y9lUAb3kIrLZvDLSv6MUJQ30NpJgSMpCoxQqTf4zFV1YP8AEnYsYPnCaHWr4ACCpBAWIhQaYjgx4CywoTfBsSzaaSfKcANd0vZz7Nw1AQLQIuQIwgAMQAUc0oUiUz6NkyhXbH6xYgiXIgDSDn/uTTnrMmTDBCy0wzThhBHWqhGOIhW5LIWqwhDT7zgh1yz6s0J6kyxDwxww1Np5Lxt5IDyk1gAi8JpUJpUkcNMOcu/TwHfU4rP1by1zcgnc0A1j4TrvhhnWpj/9KWI1qEMnNHKVbkZ8inaMjpcoS/MJASgEmBcgNHYEkBJcyAAIguIAYcABG5BKoQrna+raP2AUsGIAOgIAOMAEHcIADOCxR8rXoMM2UcJsz+M4cDNIlGMsxW4ZR2kzE4KE5UFX7C8/7uz+vokoL7Tc+NcRijDJStM3siQEC6NESmsTQAz1VDDYc6MVKdYJV0R+RvJmYxBWqawC7abwtqAjGXAJXlA9IuBMerDgCEIS2uIJNXR1qDc/xZM1PNEKf7KUnWCsh4NXsSYIHgASogx9btMMp0DqE60UJAJ32ogbpBE9CqLWA9YLtCD0sqICmcENsQ1U4ZSosIAAmQINBwIH/OQO9ilshPYTOATAGLjBPu7SuTRgBKHhXEJimRXiAWKit2XHLPdwFXTjHINWFF93BqHPZZ6XOM70/plJF4xKAUm1DwxOAitvMivu+LCgICjCBfg092HFVqUOG1QwCkO3JnAuBFrADazg3lU1V6WTL2VkJ1ZlWOHFJOCHS6PgI+yPT3jmAhmCEfP2dV0yzr0UMatAFczOIRqgvMBVMQoDTlYhUDPAAqgXZDH2CGbABrqXXHNysMUVbsL3HryXSNcqZKDiYPQIApcLWCygABZgDr53Wv0WGGEMIHCCAzBTMVAVcSP1DdK2BdE2BeNLaokpZSOg29ppRtK3T2UHbecG//ww4GPWgMaD9Hc+FOrG1RUhVKIU4FgmgkMZ9DhXLQWSI2cHlgmITLRJAhECdphuwXZOZ3tjBP9UBpzEFz42S0JzZgjkQ3oOZs1ItgA+tBtmBLjjCAgn4FLQIlNTd1GENE968WxPIAmugghmog+6dJkVAt2PIgL4N3RvMmWlN3/Csx92dIZuT0j3ShWjCEQPIADgiVz70qtJNi9NdAoqYRh80is2jEAmQr6I6CCJANzFAlU29xQnmkM2cU/StU2oQ3vQQjg6uhAMAYdjZw8DVhRJWC2CSACdgG+QYABY1FGq4gguIYYSY4VzohGwIpXoRSdlRJR2mxx3uVDYy39P8Yf8p7dLMgAAizgY4HduKO9JUS5A2ZMEw0YUDYETPAQAYxmKCWOBc6B5nFNalJF89xL/1fdUKjlD+81INBoAb+dBYULE0/VsLHCpQEQQhWQKIMAqIuoLLAWSDKANx6Z4nhs8bdtWG3KxbKVg0ltCVKNU13qNJPgY4TqGtWjFkAICQYQLP6EvAEwhSNgggELnsLORvy0AwftqWFOFE1uE65QYRWOPhdYAL4NFKXp2njR0suALmBRciOObPcIAMKuaCWIQYiEDPicKjFOGx7d3yjVV7FNgMtmbdS1AwTl7EAL3v06AqWAR0XggCaMKxyyYUWsp+3ijyteALHlObc4BKkFL/5cnmHrVknEnTHIzYgS4qzWFCQ0lFSYysEBbbzQpYVZ3neo5JQuhlApjol64E9uDRCtjnHVZh7OlolA2OhxJpSdS/EG7o+k1kekRk9N0F35lomb7UC3CASNjmlLYVSPVlndakCyADLXHCEkXK3wRc6SjfV+bhh+aGzFDqSmBqB+icOG7oEHavJahqTaqmB0iA70lFUjMM/5pjGYXaHB7QIuWGUpXofSoAbHZDOK5bh6SGOShVuNYgUdESB1YVSUzLn9KsV3blW0HjhyYEhTVrwm5DERAAWJYhFRM3pGvs7EE3yHY1SbSIoKkGVNUsXHRos61TQkiGmJbpAmCP3RPt/8nlP6iKjaFBbcxhYAVwwk+yiLmgun+ht8t2S8So01wkhSnIbZkGMwdo0Wms17/dBb/CbeIWG9xc7b9kt+SgJP5YBuLczIpYW9U5X/TFv+q+7n0CMwLoMvXmUl0IPVPrifAOGdV+kN1MFf+CjPROMpNu7/Rl5AvmqAzI7d22bwWAhAXYBWw1AZqFKljAi2xIgN36bysJ8BbGLzCBOshonhy0w1QN2zmNZbcMpwfX7cHu5AqogIgGgDNEQyMRmkj4YxDvDdVWgJAuyuQQAKCaor5JMvGNZ90lUjbarCuIafl146ZeAjHgkYPp11dzulhQAB//8bQI8GyIEGi8CMh47f9Cs0CnPeLJhRNH5oYrmOTB5u3Cq6BjiITl9pyMiYUK+HIwVwjjvibpOxeLCB8JsjrGUkrQ+1ujTendFc8lcAr57dyZjgQRmA2sWBW8qA0EiAWxkKY/RwsGfovokz7JvoiquAnEIiXE5Ov3ruBHDrNJl9+FcRAuWZKqmKKu+A6xIABHCHW1YOAtib5UOQ5gee0Uk0+llO3LJlsz5qjdoABD7VxJZ0au4ImMa6T96HQA0AFgD/MsGXa0AWByXxfnuZNpJDtndnRYDtvo2IU+kXZZd4pAiYQt2QqI43WveBwD0N9vTwjVNmitBp2ERPW8uGv/LdqMnVyUjlH7U1Oi2YDzC5j4GKD33FSACkhQqYAEnvmOsICEgvH3f1fELMnOUgdM/kJ1v/JfVk9xewVrnIWTiN0AY6F4ev9QMZABSHgSKEEA1tgbRTmGsxh5hFDtABhzO0vFaLSIjbkIl59j2Fl0JM7s2W5pc+6MRaB2aW+LONAUKIES1oAEGgB7MTiGKyZ6Rdyct7AxaMTA/rK6hFfdKhRdRp6hPUSGq18Eva/4iW+LH/l6sAf8TZEBMfDzkX9sDyIUZamLNruIuriLFdkF3BVMUdICyycEy898bdCCzbf8URIBwRkEIEgCdY4Bef9VpYASTXmSJ6EBSPgRAzD8ogoIACH5BAkIAE8ALBAACgCAALgAAAj/AJ8IHEiwoMGDCBMqPAjuSZMmgTDJedik4cKLGDNq3MhR48RAgUQZQRIqFBIkn0SJogjOYseXMGPKNCgnpBEjn5Dk2JkjVMpPRlTeNBLolI2ZSJMqLVhTJNBPoXLsqLFjB88cY3TuNOniSwQ5S8OKzSgHk0pROT/l3BGEC5e2QWrInVuVZwoLmMbq3TuwqdqoPXfWaOuhsAe3XAq/rdGjKg8GEVzynZzU7KedJHdODeLBmOHPhSdMYMyhMQcVRymrlglRlNaSOtkm7uzZcAfFojmUlssh8urfHZuIBNxzDFvbtQ8nnu1htNy4NWCABU79osqcUeXKLmysdnfDoid8/1ceJK6tJtXTHxSulmRswtzjJ1fM/fvb8hqmq98PUqVWzZwZ5pl9iHVn4Hj31TCCfvulFwhOUVU11WACegeaMRhg0J2GnjkXwgwN7icHDJrV8FZ4F1rIxW0dfIfgBBycgAiDIQL3BQ9TJWbMbTom56MHHQQZJGgexMXBgjWqZ8tmnXEY32GK3VbYkEN+xkUNupWQZHpfhFBeYi0aaBgXE7glZAfhpZkmYyFo8MWW1Y3wXI9PkhmEc6N5otsJJ6zgpwYrnBCjBiRAAQKc1Klg4mxhfhckmbpxsIIKI4wABSIWfOFVBBF8UUIJnHKKKHBQ5AhkmEKGBmMIKkBxKSKIbP8Kwqxy2DDrrV+NulqphLm4o5CrpmALFCV4akGmEWACAiY2NGvrrBEcqitlFqQAn4FnrqpBF8PCiqlXyz57K66pTctXBEq09SuLwHIQAgPcXmpBCchGO+690Zo72SlKmNjZme2mAK8L3dK76SnK3juuvuce4e+B7brLALy2DHusppvaq7C0DI91Y4A7dnZYbhJzyy0MF2N8ysa3dqyXBT3UIOBnaOr5bhc424IyshlrfK/LY1nAQYAzG0Mmlu8ecUTOKGvaaca4hmoF0EvZYEsPZUIMHpYp4HyEC12QcKwFsLoKRb2cfoFICyBSnRQIGtQwgXz2wagBvDjnTcIIGqj/ACifhGaq9gh+ujK12zPBzcHcp4o5gScn3N3F0kekIDADlbo6wsQkNO3qpzMcjnhMEYQgGpjrNueu5F1MLHChsUYbASIjdK4psiDQOHpHX5yAIpC2Pd5m2HoP+2oJdnyKiC2CQ1GpHbvPVLonMHIgt5qD4k2CCztDoYIKrbSSPCKuCm4BFDNIFj1HcjAQAgyTLx3C4rkNjzP3TatNrFclkM882rpbn0Zi9YUuwEAJSmhdpNrEABLcDwb5C1UEZjADTMEKgAKEiRxA8IWhcM8FKQjBuxroQFsQjHkYk+AXjkU+wXGqXBlk31CMkMC8hc0WOHNgFwh2qU9JMALn61a9/2AYQ42AIwIigV/OSKBDG+bQYsVyGhBtQYL/bYqIRcwIB40AwRsy0Yk4o5i8MvYFKDARgsd6YRY7IocIQBAGYKMiGPF2P1t863YTa53AUBjANS4EBBZ4IxObmLc83g9/TrMADl1nQAtEwI9sBOQbzUhHMLqAYE1L29gEpyksQvIikoQgDjdhSOLljWApw1jP1PhJjkDBFkpYmusqmTclVOxs5ktZqL7AsVZqEQp0nNjElnbKS1psbLhMoad82ZHl2ZCWTjwmMClWMQu+iZkb+ULtwNa6+MWPmDu81BdgYIuJcW9sX2gbNjNSxh2GsXVKOwItUbhCdGZsndmkIjeHyf8AYpYShZvUpSfxiZAImLGG8ROYQsFZTU7ezisDJWhBrBABHNownoyU5+S4RU8pRkt0EkWIFdroQG56LYzD7ObE7LhCToHApSFVSFmaUEAwopQBlrMcA+7mgjFKMKIhtQEmvnAKJdq0dTgNocA0cDcGCBFZMT2IFOzwhUBAAY5HFeZONcCDEOTUqylQQQMREQGQRvUJNrDDCqAgBzs08J1O1KrlNJACd7VJfFA960CiEYEWrGACK4iAHVpBSGgWEqciZAAiSmCDeuiVIFaQQguKMIEO4GAIM3DFCObYzXdq9WyfAoENzBrSaNhgBq3wQQdMgAEH6IAKrmgF3kp52Jz/na1TMyjBDGzwgtFS4QV6sIJwrfCDH+jhk8Kd6gpwwFoAOHceLxhCK5qqVbhSLGWL1a0NykAPIeiACUx4gXipAIbyRmONNpDCDOygAk90AAMAOMABnEsB8U6XupIjJOyORS/k2YG3DmjDBgaxgQJTgAKDcAQRzltEG0jXd6uNrwQmLAEAQOAFVBACU0k5MUshYpB7g90Fv2CH3UqhAG2gQIHnYeB5DOIFpEVcZEvQ3tXCV74UHoAEDuAAJkhhFK4Q68TEakdb1G6QHsZUCVoQARvoYRExKIKKNzAPFruYCgwenWkFW2PWHkDHYB6AmHdMgDJIwRs3iK0wu3ApM1aM/4reohcU/msFbwDhAgeeMpUHYeYYM8wKNhiFWt1rgviK+dCHFoGid4wG4HpjCC1oQaVG4C2zuSrOJRjBf73BiSosYgMqnrKLy+ANHejgBS6rhzdOKwR6qLa5X0a0jiesaBFMuACKkMIdvgHpSb+qbK+MMxRaUQIp/IATinBxgUGNhiqX4QVtsGwRXGGuekR2CK5YgWrhG99meLsZFG7GEpYggitcgQVpkAABdHADb3jjBbHNHLBfaUdvgW8Gxv7BDZIwjwugYcVV1sEQHEAA5xIAAhtAVDS8MdVWrKARNo6vfJvBC28v4dvgvoIIWKALWwMAunq4gx5e0Ap5V5p8Fv8cwQlaMIpjc+IGQAACGv7NYio7YuDOzTkB2gCBGi2c19mOdqG77e0KULzizTC6tzWuC11cQRdpAAAFmPCNY4Mhtq3oYdlQboERiNAOxuYEJ77hCCDkWdRlUAQZch5f55qgDUVQTzTuIAV4FyHaN774txVw9DjwghcVMHoFkhEFJ7wD6gM4wAWYAIZj/+DqlbKgt8gGBQ1woBWj0IPYOfEDTy/i7FQWOMGdGwcDxCHnGMABPajD8Bn4tRE44PYBLr4EXijg77yIw+1tnwAFKCABa9j4O97hhCgAYANMuME3xP4DKpQcU2TzFiIsfwI7VH3znCDCIoog5Ty7WBEOyHn/6UtvAAO4nQLzUM21HQ7x5uo98BXA/d91b3sFBOD2gxeBE5yQgXMDYBDJ13jM9wItcDae0j+0EwIn0AozoHnYRwTzcHYHVmVMMHrl9wDkV37mBwAmQAGUUQX0cHcRJmFLUAG9pwAVsHsKAApx4Hco2Hu2N3j7x3/GNwiKQAQCOIBUxSnIQwIa0CZg53LMpwiLgAYS6GwFp4EG8ABK+ABMCAAEUAB8oQgX4ACwJgHjFni+BwpcuIK5d3uggIKDV3G8UG5QV3w1eINgcH3MBwYzkDaVx1R2kHnYN3aOUIR4hmfNNg86kIQayIROGAdOWH4A4AB8AQRrJ2ESAH+Dp4Vc/9iFj2h/CZAMWmiChFd4xScCG/ACN7CGdfh4FDRY3wN2eiCEnOdpMYBnBQABq9hsjlBwAHCBTjiLtPgABOCBY+EIF5ALAOB3KYiCKKho8beCjxgHXZgACaCFvhgFV5AMGeAEusACuLaGpsh830By4TOHDoh9N3ABFxADMwcBe6gDZbAIvNiEtTiL5tdzYzEIMUB6gVd/jPiLW9iFAaB7W8gLYRgAhZABa7AGycACTgAAZUCNdch8QFZiUlCKn4iIi3ABVTZqTEAFN4AGBMCEf5iOTuhcUjgWi7B2B/B3vveCySACJRl4vfeIoHB/ymgAprCShQCQ/xgFLNAMaAAG2//Iecb1DeV1A6OQbwdJBDGQC2RAAJVQCQWwihBAARDgh00oiLVofgSQfmLxjgDwbZWYjCbYiCa4gp0QAGBZCMgICgbAhQEAfP+YAVEQBbrgAC+whmBwA4rgCGVQBuClCC+gCIqgfKb4A45ABrmAkYW4igXglBm4hKagjup4fGIxDyCZdF0phoOXDACZjCkJCp2AmWAZAKDwknHAj/34j/unCwPgAAVwYGhQmByIcHwGXnWpCDh5bN9gjoMIAJUwD3ZZBhTgXE74klxYli0oi6awhAbAjksRA2sHbsLYlfc3ic+YASYIlpn5iAEwnWaZADG5BsVneNEoAlKXfEwwCBT/QHAOAAFVRgFt4AA4gHwwt3bqiAbhBV7z4IemkJmlx4SCSJxK2JFK8QLvaAAXJwJRIAImaJnO+IzvkAHJsKAp2Amm8JLWqZmFUAiUqZaZyAsGcJsvIAUc+gLhOQ+fVwDkaZrhd5+zGAN1WQZ3eI7GyIKz+KAYiJ8saAAOkHBK4ZjdxgI6SqALmpZTgAzCMHxOMAX+WAgB8KBIyoJx8JUsCXxRoJaUGADlF4W4GV5gwKFSUF49mWzht4Qn6ghVUAVlgAakV5bEOYvG2IIrGJwHtxSLUHAH0AwbR5MCmgFzkAEZIAxTIAB6OgVTQA2P8AgZ4KBJapaRiIzZmQy+ZwAE/1CeEOAAkBoD4DgPdBlenfgC8wkAs0gASYCDnTgP52h6iRmIpjd+xhh/vPBxS3EBziWnLECT77CWwiAMQFqrwiAAfjoFWACoCdCZD5qZX5kADrqSYfAB/7igCmAABZB2cTmXD1mYSQiFlUBwsmiLCkYERHADtKmBSPoASlqqYeh384WLSVEA8UVuA1p4xOcEtIoM74AMQNqn1DCv1BAFCpCYv/p7vXqdhWCsAJmsB4cGz7aQepCl4lUGg5CaBBAHgSeL67aX2cqqGFmWntmCvlqfXMgL83UBSlEGBScBA/Cq0Gh479Cu8Bqvfbqr84oFvYqkMnCWwuqgwXqsa9CrGv8Iheb5XRuKpR06CAUAiE5YZi+ArUSwixhIjL/pmw9ajLkndUpBpgCgYzP4DizwriXrrsKABbuKBboqANQgALuaASu4tJCQAJv5lRM6oWEglqDwAAUwD6wIqQQwt6YJkTqgCEygm5r6AIkptG+pCP9peirZokuLmY9ofvw5E7sZtWkQpO5aslebtViAq1w7BY/gp1q7CwKQDITaCSgAlgiAAGabtv8YBmHQtheQl+DloXcYAxdJiDnHC3z7oAQwkRvqn7EIiSrpq7s7o2igFItwlRKgC+8Kr0EKuZK7tVpruY8wr7uABZwLoV9pusiIqB9QDWvwAUbaCRZmhPOQa6X/+A03QARVkASuCwAp6JK0OwRU0KHmWpZh2Lsq2QnTWXrkKhNS8I7NkAZVO3zIoLVYILnNu6tBuqcqSw27QA1rcKT0G5aFYLoBgAD8CJDJ8AFhkJkbCIVvm3ad+A16AAZV4LOzS7sT6b69GIYVwJnW+ZIvCQkBAAlkaQAcixRgEH5L4IzsmgFgC8AATK88vLLOKwAx2wnIGAYLUA0LEAZgubbGmgyF0Alu6wiOgAaVAItzWwAQKcU6UACI2bc+1qH/6XvI+JURyoWQsIIKcHozPBNVQAYAWrV4qsOSC8S7kMDUoLU7TK/csAsZUJ2dIMEBEAbVUA0QHMgPjIwB8ACV/5BrVJC3ZTAPaOC6BKCfFdCZncmoZfBbVKAIFHC0k4jIwMqFS7qZMbzGMtHGBqAAebp/wqDDWovA9KoMPvzD1MAN3CAA1YmZDXzICWC6YYCdvdx7yop+g3Bq7RuXTHBnBVfJ3WoA6PddW4yBulcBC2C29Eu/LQqWvynDSfGRupcMfDqrQbrDB1zLdjzA86oMtqzA1fmrESzIFtzLoYsAC2CkUhqL81UAAvuWC7nJW6y+D6qs5skE82l6vwezEry7YHnGv2mcMcEErhsHwMen/uuuPZzOtszDzYvR3DAH7QyhCFCshXDEa3DEhKzEoEAAdEnFOlcJ5hmRk4ykpqAAtv+5igtre5sZyErMmY8ICZBQCPZHlg4NE/MwlHGgf5JLq0E6x/PKDcqgDFjwCOVcy+qMy4RanxEc0oVQDQnwAUf8AWab0j4GBkOgA6AGrQbAC+R2BSl81QLNxcbYCfYHlojsx5jp09os1EgBZb1YAewawCf7vwf81LJMr4ZN2LZcDShwzdMbwcB3vSZNvRmKYKYWXhSpCIMAAZVwlW39kgpwAFjMxWXZwA5stl75x9WQgg3Nxkf5AAqwBrOKBSf7yoDqtbsgy0/tvOmM2B3tx/UpuiFdrNUA2cVqunLNdvpcwnUXngQQkpFYnBTws3GtAAgACcEKlr7XCZAwyGZ7j8X/ORNAQJQGcAXsKtg8rLK7itiFfdjqvQD0+5IoELprO9wJkMQLYMFA/XEJ29zNUIgI928U0Nz6iLHKegEQ4K2audNi2d30W9+F4MIryM0ywarNXQFPeqvKa9iD7dSxvNtP7dTV8N6dIAPyfb0fYMFITL2g8H/t+wKDUIVwKqfkTXEXW+AHvqQv291G+svV+dOHDJZxcABDzRGA61wHIAJpOcdTTQ2ETdi7zeS8PQULgKQjHrofMAcAOdwLkMQI4KAEsAF2CV6u2W/hJwLNsIVgaQAxAGVOqJlFHAahq8KdMKHAzJnKimow8ZfOJQEmuQaurLJ2HMtNfti33eSkoAbV/+DHnhvf8DzI10vIgFwBBkelmdzIzC24XNgJBR4DfNvAiJrE1RkAL7u2NavNGcoEMWGORh4FFRrbhg3lTZ7bTw7rykAK3PAICVCfDRzSgzwF1TAHc5DiwowGL97cGoxnoHbCupysWAwBgsukCUDI3b3Qa1vnAFsGqZ5zR57kXhuo7B3rylDoHo7YuO7HKMDo2Avsgzzcw10BBzAPlzoPqrm/TXcFuUy/ZBnaCK7d9e3o3S3f923PnRAHZQYTVWCuwst/fi4AXkuvzQvuthzrtK7Otj4FT6zrvP7rwb7uwL4GFUAAAou3ZaADEViYB7C9wDqcoT3a02vS1SCWLwwJRv/M3fd3eoNA1Lz4ZbrArvyXAbvq7d+uzoQA7rHODYRACI/wAUd67iG9AHPQAA3wCBzfAFydAIzaqAWwAeSYt/P5iITqthcg2m6+BuqOxFu+5Sn+xCzImC8RvDq/88M3qwIA9OutDGogy0ZP1UQv9NygBkpPv/Ft0lS/7uuexApQAD5rABPm3wcGAPqoy1JaCWE/2mFZDQ0gAFS/1XC+5b6cy9/9EuYqAWkgpHEvAE+/0ROP91vg1ODO5LZs9L0N+AAf2YTP1aBwAXqpA00p+mmQBuR9BfZ3zWDPxZoZANXA8ALw8ltOz5wPwRhsiB2h56Lfyk6AtVhwpxmA+rid21v/sPqFTvS23P278PfnTgMLELpoT/jnT9PmWczi+ajo6wQEWp0okJiST/wy8LLHb/qDDBBhCi0oVChMggAJO4GKQ2DeE4gRJU6MuCgXgCVp3gl79w7LR2pzhAkQQM0kNWXKuHHbsmVlSpgxuREi5HJKgE4oUCDgiWDBgmoNBFT7GQZBGAUGABCoRGHeoEEXAFSowLOTqQcFLhR4AKpTJwTVxFYrCLTanDlkA8iA9LVhGYpxJy4CYKBCBmFOnHj8iOURFpKPHqFcOXMLO0IvY8pkueXRAgQ6eUI2O5bowU4E0MQ4IEIEAAcQCkxVgGBtJwOVtj7oJENG2LPVwhQVu6Zg/wBIMlrzArBB7u8ndOMESKa3ozDkAh4pF/xo18qaNbck5qYyphqUKllym4Mg506flcUuMBrGVAwmLwZBINDMSV5hyRJaTX2hEmtIR8cW/UmUIKRCTpOBNwiAkysGAB5QQIQonEBmI+T6oqa556Rr6cLqqkspu5RWaumRML6brD//iOrpgRjmeWoeCioxQAQs1kDoK9S0KsAAUALwabyfCkkgPIESSogtBQCgwMC4YnggjgSK20sYLCI8iZopSoKOEHaybKmwxawzzKUGIpMsPMt+Ik+/Cg4ADQIKWjwgAYQi6ySrrXAMIAyxGghqtjstC9BH3JIqAEmKlASluHf2ev8HGeSmQAk7akrSDkt2MFRsscIOc6kaMVGYjSgeizIKgAIIAMCzAwgg4IAK5uPJgAIouBGUHRvQ08wd0+oRIYQUiKOAFwiNyJH7Fnwvr2MD88skRz08rNKWqCtsWlJoms6lOQLQCbyxbj3TNAKg2qDUZqCkJoNCeMKJ1DrBIpEso8LKgKQ51kAXoQAYcmAIYSFahAwFC5lXgAzwUk4ALCIVzCSVatIy2ui4hMmlxgh5JN0x+QOqAcheJSBWFSloL69k8A2AVFkN6ETHBWwlb7afbCWJINt8jMMAAvjtFwiAebkigznorVI5KhlmeCYsNbWWJi6n/ZKQXdYwaiej3uX/eDI816hgza0AKDkBowKoz0V395OtP5ktsy1fnJnoN7hcFFwDuZGgHMlRkwZDiRRSrs2y0kpneinDwqyd7pEEdALrKKBIGurlMAx4AAAAWLiiGQCaKVmnhFKDwIE4QMkvqPHCa1mo8apZwzZfAdDBin7nySWOu+ium6STVNrFS5b+hpZi6qS9siV2uPsgDPDI29jbowi4YIMWAciAGiyqye+oBFAmQPQRedTT1gbQSousghLgjQIp+r0gl0PnXa5KwBjWrnDDfIfWWug8TMzhSi3+ILLw9KREskEKaGJFAQcAYHU9MQ2p0FCJHA3ETMqDjczm8L3ayGgJDggWocqA/yAF2AswJckdS6STGL/Z70KImQ5NThidv4EJMttK3oj6s5wopMoBq5IR2FCQGdWArhP5AYqZ8BS+5hxMOQ2gngCuAABXCEsRCMqIE0hYoWqRojGaIh7xfMfF/rkEeBd61kquFhkaJM+IYYgc5U4VISxEIV08eYBqCBAHd5mFRLZSQwN2oTduyMw2V5AAPYRVBRddAUqCW8nuOsQNajTGQw+D1sOiBR0xkvFvkOwYAmjgnZ7MJl4om8doRIAcGfEEBUy5gANEN8EitqwaWuCGGlRikl3s4lYJiIPrhOUIMsRBGLjkxi5KyLQrFaZvXvTi7wx3wmdpqY8LoMEnJyNBoP8URAEfE80OvRagnqAMgpCApVlsRUstQG0wy0FLIXppAh0IaxF2EUAujdmchhUzUiZxmnZIYT/f9e5aKwzoFOLFQNwwxABKAYAJTCABCXjGCXH8UQO1sj2W7Shm4ONoR6uxtQ7gQAiE4hkvdIGFXURpJINRBkry1gCWKkOLpEiJFqMZw+Ip7UJLk+ZlEIAQhS6FAA7tgA98YAIASKCeu8jAGmSTDKawJ0dshIxlzslRQthKLBUwAAY6wIESyAFJdFmCuQQwhwzobUPUE4wtbckNLWpIpgDlIhkFR9AtkOIxV3mAqgjggJDiAAeN8MEK2tAIWQHgABmIwgd+kr1KSNX/IBPUasv0uQstgO8RDXiiVyfQAhAgCUESQAYWNlKwwKwzYbtTA0uVSbhqAQ5wFKPYTA13GEIIAHMfa8NhJ+AJ4AKXAxPAAAZMsKpyoStsUcUoUD5FIloWhigwNYkwJOBVT5CgBEgigwFIexw4QumKK1mOGvj2EjW0lqUDpdi0aHJeMhICGRIgwGCLsIITnIAD+vXEfjWwAh/gAKlLqO4HEhAgbgIgR7FEWwPUMJNdnDW9tNwFMgbgWQ5oYAR2mMEMqDCDIQiBChHprgQ6ggxGIQwwCdPO7vjIJTV0qwGCq1ZeY7LM4E0HCxJoKA4KuwIgAzm/IQiBBv5LDyQ3wgGL/50DZA7ysQt05U57BF86CTEl/SHjAJ6tAQf824IWtELMdrABRKRi0kVxBDmL4udaL2hLZWyWUy1Lr4ZWQooJndOFjITkdTswAf9qQAVG1gCRCa0CFYg5yQRYAroMXIEEK6AQY9FVNQRgK5egpELRSsOWPTCBLnOgyCNoRZhbwOEy/8sAV2AUozYCklym5J7NkfPGurSSSDW5AVqI67SUEQUChJQDQBY0oY1c5ESLWcwAxoAEkDOHA2+zEjdKwOrOekGxvFlaLkQMIXRR3E/XoAY9CEEKGDACdI+gBUKYgZkf0Iw0tLq01HhOMfWZHfXqKSjm1SJMqmMSPk7nUsqYAv8ABOvlEwga0cYWtLId3gEADABKtnnytA2QjIEh8c3UcGEXtbSLNGDAGBP4bQ+8POpSC0EIdhhFmR0xuwo4iFEobaQjYZKdR0x31xKTKSQvPWNC0NTXUXAADhCecIUP+tBiBjOYVdABhx5AGHM4iLQhYIA1oFRv6zRJxwHKjZBjgORePrmg1W2HEnS4zE+Iwewy0BGE7SIxudznWlGS81lG98Y0NUm1aFLvlEzhADjo736LrAEGLNzY6h4BFKDQghNgQE3OpngCogqAK6yhOZBSjtzJGM2WfNsYXAC0oRF/biigfQYRgF1wAKaAK0y0Q89ha+5OstlH8DoxjNmQMpD/qRgniB3hhka04o2sAnSXGgqtWAHEB/AO6kXBKJevQCHQihZbOUeglPIdIbDgaVCLehPnRve6OTyDtbN9SYUwF92nZDRHhkQA2vE3XOWavztXRwQm8AHZ82v2VlC6hmsFxmsBFSAuCUgDXSitDCALbsK6oLkgvXmOnVIhxMCCCxs5QBM1I2s8leOwUdCDYQEYUMi6hDkJkKAeFWypCaG3+yMcFqw3npOAPyM7DkQ+AWy4RGu8pzuA59MFXaCeqauGqDKAQiAa7OgQ6QCo2dqFCws3hDMyBkg9Ozi/9KmIuFkA6vkIRrGbE4yJk5Arf6MpFsyQ36MGGjQ6siu3xCs+/0QLQAJsvBMwBsmjHBPDAmQYCgCILCOsJyV0Fgv0HWrIwPBjwylEhCo8v/R7AiBQEhmYAzyEOwl5v6OpN0eCq0wrQ6TxECeswTVMulZQODhsBVtggA4wBqhTLOgDiTkglasrhFzCpJnQEib8m114hy0jvS4LAQY4t0RMu1G4wohIAjLohAQQAORAsUk0iRPkEIkxIcKRwTtziQH4s3E7uRQ4tOPTQRKIPMk7KXsyJsAglQKIgzmgN2uppFrsPgzEAA8IApLbRQ2rwtWTgkV8gilakpjDw75ImBP0Rxecn0whBXsanj1zQhPogGssOyNLAYd0SERLvAkYgHiTuythFv9y5AVh2LSUkjtaXEeoCbnRA7VQS7hWEIK0swFvmIgbsAhTqABWU8aTMCZKlAnqyDRptK1GurA/6wGfFLVs1IAUILJs3EEVwIE0wMNd+KKWasVpOwCUspYK84gtYkLika8nDL8TKMoxm4FRWMmJqIK2AwWBSUFcokQO4Z3LmkbqqBZjujBdHDdyc0ihfMgBXAET0AWPZEoQYYoCOIBI2jNu0AUowQKaWEfE4IZ3yEpAQ7yz6zB7jIsqSIJiwYtmZMbLPMsWkx9M2ra3dMd4NLlyC0qH7EUNGwFPOABk2MurnJBC4KYDkLv9oQnqaQYCqKd0pKstSKkn1MWEGwFglIL/1pOLRbiPCihMFevHy/S33JHBLRDIXRCGDNRFkwPKQmM4RDOBATDMZ4Ea2muA14wswCxIwaGGA7gAAljNdFSa6NCxdxA5D/g0QBuBGRBOQrmAf3mAuUGY0lIps2TBE3yOeuu3wqiwCxM50gM00RwyY1MBDgCANNgFL0opl3qENfiYAuAFemuvxKCGK2ARE0gDepNNF4ImqGnH4vIqHxgCYRSWJIiBGOiuEDIYOGKxKbEnMqQ/XEOGb0NQkttA/+NADugA1WyMLIGk7DgX2IzKEk2Md8ABiEigibLITNGxEaUeZFDAanwbigCCF1WVu7DMZWHGEX0OL+mQ+cGCsDMG//kEtd8KLpIzhgNISm6IoepIqZYSAFeEynqzK2FwgIiggDYgAIkbUcO4MhQ7lijRsiLg0t+4kWZotBp9PzO1jpaan5a4xQNl0yDgAk/lgvj0AAx4voTpzgmZgigQgcHIAAxVzcA8yO8zpIgYBHpYsneIxbnDgsupgCVIQF3oDUeViw0wFSMciX48S2OKggxAVaCJpFmslJRKgwNN0RT1wXjDpWd5hGZYKMo5RwHwS9WUzRaaCWpIgwmgiBlwBQoAAHCUu13QBV64mWaQgAFwgIcIVoooBjLIBQJQgAzoR7oTR/pqj6UAgIR5VsTIJS5Uxv6skJrAxEpZA6EyFRj5Vv8H+MuNfKaaSKkOkIsXGIIieCiPqDAJ4IUDmFcAuAB8jQt9JQMyUADcnBaafIe/MpW/crZ6a0+d+khNoStC+ICJbQ9qEAYDAsxDNZyUAgADGYJiGNQDgKjL4QVYWdm44JkYBQUBiA6thaQBSEgAwAAc6ICk5CcI4z5abCa6qhQ99atV4Qhy5FOdFTgM9AFhGYQY2CFTGRSq7VIYhSAB+JK/uTIJMAHJ8yoMKC1p9DzEREzz9CvKSRRu4gUm7Z/9ucUOWIG9zVyIKIYYsI9OyFr+0RJukM7nuzARzdnc7NnF/aJdSBXH3YtWRSkSDR5uwEBA1dy9/SA0KABQyADZVEf/yq1dwyzRvQTe1e0+23RcEXCCt2XSEhW4oTUS3KXaRvyXOKgGXH2WmwrE7d3e460UEWDb9mABvzQA53hepsklYWgGvZ3eYL2AGLDerMPV9fxe+7XKNBDfAwA2i8tYpOk2ussASHNffJ0HGO1XzcMlcU2h1VVdBkZMQiBatj2VBFsDF3QYgYswAVZaAnbUf7kRRTJL2UQas5WtWtRetK3F3ArazMFQAMDNpdnNlMICdDGAe+3gnamE7krKjwjH2eQfMLLKbkuh7u2+XQhamy0ArjhfxMgSqIkUYcgA87ldHBYWngEAXpioACVPCT2hMLJATUrhwAW91vUrb3pA3Byo/1wiidVJgG2q4n4hRgNYAi2WXVy9EgvZqTz+vBVqJtD7ONt0AAeoBFW52Bvx3Yd9Yo7ZlQAgADi24lx4kUXpYfIk4aeJlvjSpPtFjPD9q0og5Gm7kfmNlkjxD58wDQN45PsMJvYThv50QYeFGqThY7T1OPslBOb9q0H+ZAi4ugrATXsSgJ/wiYIoBA5WZeC4gGCKOWWEtZlkpI5TXRXy3rT1HQlmik+OLAgYjkKgsOXopPAohFRGZuBQtbtg2CslpkYqJq874UqiZhVa213m5Rthi6AoBELGDU/qiUJQAHIu5xgwAAVwEHNRwRsNx1nuWe+F5xPGgqWYZ23GEUggp/9woQAceY2eSIAB/me5KJaYfOVmdL9YnOW/wwKCquZ13AJqAI1snrYLgICuYIsAKIAyuICLZguegIRG5mi5iGTYO7F528LVCkcSFZyPWMIvwqmUduiWLoDI4gpQIJICGIRyVADXuKaT4em46K4KWIO9QDGQ/sdIikXU9bwW+jxKskqX0NNsVuJQjmlI2KZh5YUEmOhPeiwDUFmtlog7qoBkWJTSKsxlLNORpl+Sjq8SVqEII0clVmLReADcGIheomvcuJ78cOP23esn6C6fAeyZO9aDJupc+rst2qmT/iKmwQITaGzWvhEFSIiDeA277onrUYDM3usbWYIr8OxmBgn/gCxTwrbI1EVsP46WCjPkAogBp3ZqHIGTtQAPu6YBttBpBaBizQ5omDyxZPTHfxxqAS0msmaaPI5mTd4pJwgN0VDuAhANHAkQ3GALGoCEavKk3AiAIrltng5o2HOQNJs37pYQhLanudu0Pf7js92FK1jv5FZvCHCRqJ5oBJjo18Boa0oI6dXszVYQjXgQuuHuLWxBLh5p8E5oWkZhaJWAXm5t9o7q6W4L12gN+JZpXtDr61aQ3QZrV0YGoV5G0aZfEm2h+n0Y6dgFFKcA+H1prYAAAAgdGXjvtcCNIfoktpABBTgSDO+Z2MNxwfZtAC9IHyZhiDFtjXUhIzHyC0DyV5feniGCBBSggcp2Del2DdeIg0rA8AznheVFlpFwHD7nc72ZEKJ2DurRAkIndMwidG5A9HCkBs3YADR49DNHg0W4EVPwCt3oBAVYma/QDVAABaywbkcNCAAh+QQJCABOACwTAAsAcgC3AAAI/wCdCBxIsKDBgwgTKjRYa6HDhxAjSpzosEkgOoFOBWrCkaLHjyBDDuRIZ5ask7LoqAy0sYnIlzBjNlEpK1SOULJmlcypko6RWUaMxBxKtKLKWUhy8OFzM4fTUEmVOnWqJIWFoliLNvk5a5bNHUz57KhBtmyNHWh5pLUQKKvbkCW7Rl2qtEaQu0EmeOBy9ywHDjx4HIHB6q1hiXFlzbUbhItjLhMmQJ6Qt0aPv2j5HGl7uLNCcBe7yqrb2IPpvZMd373co0fZHRYKe55NcKbJUDb5lD59GjJvyHb5BjlrizPt2eBUzh3LxbSx0x08dOggmbdpvnx7MDB+/HBy5bmD8/+Obr086uzFu3dmFchkTdw50O7eK9387749LLhU//aUkZpT1cWYfR4YY2B5wPXAQwT8GabEV2iNdVdzv0FGnn2QtcaBBng06BYUPPBhl2WSOdbbXtFRiGFkPXjCAQMdeohVCBIGMZ19kkV3I3k37jXBZSecwEEIM8iIFQeMqehjB45F5uQEnkTpYpB/DakBFIhYMMITzxhJlCRI3lUedU5G+dcJIWjAQAuoIAKFJFtK8sUpp0RwzQiSeElUCOJZR51lHKCpwQi2YPlFBBGcMgkejILgKAiTRCBJnnrGZEsP80E3AWAhMFAoKm1eg+gkjzpqQ6kgfGFHpTFds8Nu08X/umkIXbhgC6ih1qkoqqXiEUGXrL50CnPSdfCcdD106sKyuCIiagR48IoqHsAGG5KrNTTXgQmybljrsjCAasGhiEYrraPUWivSNTz0QOGxHmyaAgNKLGtLuKiMSy605/5arboUWZACptZBycG89TKLCgwWXEOuubz6iocNAH/0hQaYctHjpmgy4EIXXdhyL8MWjNvoudRSXDFFX4TQg16ayssAyCHfW7LD+05CKggnRyvbyhLBwAHBp03QgYvzdqFEzSQ33DC5p0SLx6FfPPPMz0BDhMjQesUKmScnaKA0yCSUXTYUTzzBAKHjImoBFCqokLbKWUNkwQmeRKYxmUPO/0wzAxpoEEKagwtKAiJfXIPKCHK3IATddTuERwgc6M3kj97SnELgM0NRcslQzAzDF1/cTO0zkEeu0DOU561xZH+JXTYDSd9qAbTUIjICCagc+jYiiJQwQ+qqI2RB609CGTYDJHTRvNkjjAAFFC1MKgnvt39RAtotlEB88QaBcAoMKXAQZWRgy172rYsLrsIIJZQA/O6jM+qr1ViDf9CpMMgyxhHtilKnQPYx2wGvZL+6BiJg0DxbmKxU39PfQFgRAa7AAICxq5XImNY2RFnNAqgwW9vMhYf8SZAgrDiFT4KihCOkIAUhsxcHcUa6CICweS5g2KHQFcETpvALLKwX2f+aR8BawYBhNPwCAxlwhC7o8AtSM+EJB2KDL/hEFkpgYNloxkWRQeEa47rGNWDAAL/l62HPAMEUEQKOqY0xh1vkIhdtBQOcWcAWXfBbF86IKBD0cIoUFOOynEdEOSqhXkdsGBlpx4MhheyBUlyjE1iRKiPA4GNy5OIhRfa0G5aReXUk1x/XGEgY4DGTmrRVw8T4OTHui1GjnGItbDBGW7iAiZo8wiHrdS8xgrFkpPMVon4VS0Di4Y4gS0ETUWmrhZEsSyNEFBQjKUkq4oGBINPjHOloAVOKLF8Oi0DpSqDGai4EDxvMozpBtjQN3osEL0wa70hGTnM6BBGnPIIed5n/sCOi4pQ2Q6M9HYLMPH5ymTTLIRiPiMSHRWugCynBKbugzCNYVI7sYxgSwwmtYlbTBogopAZeeNF1hmxhn9tXBMoJ0YNQMoTL+mQ8P+k3FzhTjLiDZUv3xzNU1CqbBn3hJ9V5Kx2Wi1Hg2GlBDmEDlky0jNmkXTyT1kxwku4LHp2iFJqqERhwkaZdGGk81TTUolrgX0p1gh1m0ASHeRWofpNpCkIw1c1p4HBpReEoniCJQABvogYdKuBe2Mi+2aJ6NkiqQGZABSmw4hBSkMIhDkHKGTzBByvAQwkIJUfBllGs8wLnDGbgR8o6gQkvkKwepAAGMOjBtPpjxQxW4IMO/+BAEiV4gpr+RlaaBu5WvozfDFAnhBmwQghlGMQgBKFcJlQBDBK0gR1WYDQTmEAHllUBWGn6yd2BM37xs4MdbKADH+iAHvQQhCA2QIELqMIRo9DfM4Swgm1hAAAYEAQV6AvVwEL1kyRw4DXAWwJJjPcFDsBBETag3vVSQBWDiG/xZqACo90XABimwAteQA/t7q6Ms6Opdy0AzQJ7Dwx7iMGCGcxg5upACqprAT1qi4H7HkACBwBAAV5ABR2s4AkfZkCbSMC8ta3vgKSTxAwO8QsgLKIIFNiAlNU7CCbII2szaEF9rWuCG0tAAgPAsQOYMIq9qg3EvPMpVM0GA2giov8Fz/jFD9yhClWsmL0QZgJkVzZd+2LgAAcYQJi//GUClIEKh3gBkEfAPN4hgnmELJSb3wQCOSsCCEmA8pSZW4YhQIAeOngCq+zwhC0DQNCCJrSqcSyIF7y2DC2IXvTaZIvo2SLNJQOeCiQhhR9wAgyYZi8FGjwIHTCByzjwAT2MVAL6TsAEAAg0qlNNaFQfoABDkII8pCCERacZFVAwW4DbpDsVlKDXv3ZEpi+waVWUgQkEIAB+MWACBfNnCC2orQlqLG1B60ICS1i1LgRtaMkeAt9AZp+bzHavLKEiBE+YgR58/YsqZJoCGI/yIN4tbwx7vN7L9owNZlBe+5461Uv/CPgVviyCK+jiCjBnwRUOMAhX/0AK+PYu8P5ZNlDp+gQtkMIvOMGJiiehvRkXhLvh7XEDHMMAHsfBBgwjBVLr+8IHCPiXU87yL8P8CpZ4+co1PPEfgEEIs84S8NLMsBGgyQ7oJroiktAIdrd3A8UuQ7ydfoynGwDqAAA5VqTwAh2cwMIYzjqgU74EXvBiCSIQwRJgbokoiP0KS7iAIsBAccsC2c3/vNUIQnCCJ4xCD0Qn+g0ufgGMU7kMTe+702efYxM0QgcxGQUVLouDbQHAAI1nvOQdz4tjPD7lLWeBJZafAREcgAJMuMHQi67oJwDv+jvXwAlWMISJp/4Hcxc2/8bxrgMd5ELeD+B73/3ucQdMPSSy1TKNMZzy4jve+I3nhQJAoQDJt/zrV/AOlnAFACAIQ3ADqEd0v/ACLfAmViM/FsAAg9MC0pd6RFcFi6AKSOd6ypULAPAAIPgA6yd7f/cAAEAA70cRUmBZtGVyW8d49fd4jqcANFgBFSACFZAMlGcJMkcAOjAELwAG08cJP3ADQlAC96M7ghNx3vd9jrAH7VUAEFAA7KYKi4BhBhCCIZiF6QeCUOcAHjEEM6Zv0UZoMLgENjiDx0CDChAAFTCDySACGVB5LMACADAIinADruVrCjgKw2U1cANxcMeHqVdxizAI7LVx0fcCMYCFf/9XgunHhV4YbyEnEargAPsWbVqHfJHHeDOoADNYAQlQfOTQCYVQCGuQilEQBQewAQe4hxbICaMAAs8gCU8gN3A3hEQHfouwCILgeu+lCGVQAL/3iJKohSF4ghcwEYoQAwTwZywnAhJQAWiYANT4hmz4ho8nigrQd6BQCMmQgxmwiiKAbQhIiN9XdS3wBC2Qi7HICTewB+cXb5VQCQXgAHv3iH4HiccIggCwjBIBBB6YdTgYeTaYDGhogwmQADQYAAwZAA6ZAKCwfgEAjmuQARlQhwTABESgB7+gi7s4Cg04A1LgkbH4A46QC5FIABDAYBdAAFD3d8eQfuRgjF2ohQD/AIYRUQWNCAApF4ciEAVXYIM3qJA0CAqdEABJqQCFIJGgQA7k4JDJcJF0SHNUIIQn+Qt6oAc3cAMlCZKcoAeLoJIPQACC0GlDMAQvqY/HYAqmUJPGmIWm0IVmGREpWYaRlww6GI4VEAV6aYNHiZSdkJTW+HSmAAoOeZECqAtCCQFBuJV6AAY3QAQvoAiKAIQbFoRyZoGKUAmTqApMMARlUAYQ8HvpdwzkAApxCZcl+Hd1+RCKMJZleAWR9384mAyrGI4SmZSg4JYOuX/k4JuouHwsoAt1WICjWQWOsAgxUABUuAE68G6juXGK4JFmlwQq+YgX4Ajv5giVUIwyOZEz/zl7MkmCAJCCC+EOPRlwnHgFq7iKGbAGENmGSqkAwWkKnSCex8B/CRAFGbCY76ALlpBjBEABVaAIykkBU/icv1gABGACEKAKFkeWj7gIZVCZVVAJqzmT9ymeIrh+BnAAEAARqvCdwCcBKycCyZAAyYCRGcAIqbiiEAmRUPkAbwkKT4mYCbAGLeqiyyd511YGrnUIkfkCZaADg6AKv8hgSXoBuXCMlVAGeQgGRNCIj4ij4/l35LCfH0qCBXADD6EKHsgLKApzQRkFLBAF77CmUzAFGZAMTdmUvTmXwYmjUTmjC9miFxkFKXcABFAAFECdL9CVYCAFowAGo6BaRLAIBP+ghZVgmV3Zmb+Hmm5pCvtoClm4pfwne5WAew4xlicKc1HQl8v3DvZwqqdqCS/KCFPwDhVwnwZwmEgJkYMJkYXACDCaDDRoAATgAM7pnJXQnK23CBegXtw5CBTQqCEYpYowqIrggSIIlQZQkzXZm0+XmvxHjQbgAILwEN+ZdShqCe+wiu/wn2sqAPaArqb6CAIgAJZQAXOKn7UaAL1piqmIq9WAAHMJnah1AwjqZMwZA5UQb/JmAI4XqyC4Yxvmr9A6rTeKmk+5pW7JfwqQcsfgAIPwEA5AfyiqC2v6sag6BQLQpiPbrnBgDyJwnzY6r/mpADk4lalYCJ1gAAWwcY//+ZFb2VpEQARV4A5J4IygEIkPUAmD+gKjUAVkiZp1iqN2mpr7CYqOdwAY+xDyBmZ16LGnaqqn2q5ci66nCgdTcAX2KZeDWbYKwKJ6eZHxyZBQRwCVcAGHyJ39qoc5ywSMqoU7VmZSgLS/V635ybTduJ+IqZ/XxgQO0YhgZpxYaw9w0K5by7XpKgBwMLlw4KqdUKn4iQLzyqIfAKO4mgwBYABvWwADi48EG2/OyWDM+YHTuq3ZtlpMoJJPy7S0O5GHWbYTua0PgbgSUIelurWo6rjvILImqwxgC6+Ym5QQuZDMmwCo+AEJELoXsGGWSQQIupwXQLrydgCP142YSrOu/3YIYIC0H9qGvEm73kirQau7DuGBEuCxAvixWru1J1uy7Cq5yiAAKXuf+Lm8CRAGzhunH1AIYRAACkAAoAmEiQqZrXUDRroIDrqPNNtYkcUEnml8LkuvODqY6zer+TmTBOAQAgkA4Tq/wSu5XVuykgsHxssIAVCpSYkAYTDDEem8M5wMM5yfvOqrEDBs3NmsQUh4ZXABv+eWvNppG5ahIsgLosiQgomlfWe+OFqWDiGmBlDCqBq5IzsFjZvCK6wM+ZsMERsAkFCRzVvAATDDC/ABBUwOlUABEGy6J0iPVAgBEOAADnuYB3ABF4BaYiqCLruQ9Iq7Gzyj6xvCCwGqKP9anMuXro/LuF3criJLueHwCOE4p8url4LskGm8vJ1ADgWweWBQmUzgCFZ4AQMbbTbItG95bQXAXERssPQ5o4NJuzNKr/upkwrRiLwwgLqAtWuqxZB8sqY6BY9AucabAch7ucobvdGLAAGAANLMvAesCqJcqKuls4qwnM6YxzWZk84JfPoHkZAACfm5lEw7ozT4dLqcEKoQbR4bduIazOlKuZSLrgLwCMfMwsYrszBckTMcBtIczQHdyaAAAPZIhRlInZtHBEwwjJEYnJ3wp/fodIgJkTJQzuq8f3hqwN2IyApBxEsQzyaMql3cuJPLtSgNB9ygDKDLzJob0AAMzQH/jQCCPNFwjMow2bYU7ZwAQIrBSQ46lr0WTca1nNFlrMEz2pTr3M4IQcQHIK6/m8UqbbJVPbnKwA3cMAXR65adAAnSLNOQINDQ7JCXWwlMoLPK2YsOSgBZB3aNt59vqWMUUABOpwBlW7YIAAnRe9HOuwYM2Y1ObRA86ZOWkLX07LXDDMaRTLlancwJcLkoIMOFsABqbNmWTcAADAoEsAiP2VpX2ZVMoIEFwL0KMLGdAAAtaddrqJRJGcNorKMfIJ8QOZEgjRDq+dMBmMWR+7XIbLz2jNWMzdUwbdMz/AELUA0CvbwznABz6ZxwmwTceaEvwARMMAg7Ha+qTdSCO6Ng/23ZtOq8MFoIStl3BJCxCQEEvHwFwQu8XSvc96zSLLzVke3VyhsG1ZDcaLyQTE0OD8DHzhlvc+wAvuoAWccL8fqnG1AAgGy+EIkACxC9SrmjjEDefQ11AHkQilCiBpsMh+21II6u9szYKb3SWQ0HycDMnSDDMm3ZAJzGAxwA5EAAzyWZVeBkAhttIrB8+oefbkkAMQDBFj3LCFAN0OvaAXCR5F3bxwAAi5AQinABMWAACvCfjvzeK8zCwm28wM3PWu3Ckr3iYYDZZL0AhQC9K5ragrB5rCWZlmnKdf13OfqWQE4BnmkAOrq8yv0BM4oAp7jJ3fiP6Z29x1ABjPDh7/99z1rOzyS+5dwgAJHdCSgw2TWdxgnwAdWQ6TOMAAoAznALYdxpbGUgCDu9n5f7p4twwYjZlAmwALkq4QGMigvZjTTrzs64BBhpqviMzMENxr5u4r5OCOEgn5k72SyO3wB85sqNAIOpY8DacfFG4G5dAfuHo6bwp3GOlGf7v0bOCJsMCQsQswvZCX03oggBwT6521lc4lru6+7O5b7e0lo9BTIr6cYuzQuQ3Jmu6QI90TXnr46g029tD++wokg511TI4DrKoriKqwNc2fhdDTAavft3sbjtpCR82I970r3+7h6f1Vr9CFEQ2ZOO72M+5pjOCMiNACgwlxSweZEpjMr/teAEgIN4XbYPAKgKH5HJ0K6sCr2FANYSvwanuM4XqwgHMYzR5nIar9hW3e4fT+JZTQhbEA4Z4NwoQAOU3uLJzcYsf7lD615KqgrROZoU8NMyXrZ/egF4vPAJwAgCMLzQW8DcbuZ9rZrnfRCySaZvag9tqsXAHu9RD8aEUPhw8AGTXvJj7uJqvOkDzasBzgsEagL4OI1KWalr3/Zl7Lz3+7kBXJHKLeGgwAuvWRBXeAyTN88jW88dD8aPPfhazQ3hwMaSrvVkvgAy3PU0HLrQpwiD8JIkHIACWAGuTedU6ACm3gnO2wACkOlsnNwLoNFlbcDH8HwHQcQuGwWqGrzB/83P880NW0AKH+/YX06rJX/sx67G0EyzNVfdybUBbA8AYiuYp06FnhkHSAmOjJDfawAQYRCEKVQoQYCCARQGOAYAghOIEZ1UeqCgQhR7luxtFCDg0SM4ykSOVMaNELdwJEWGFGkSTqEAKGSiGBhmQRicOBHsRJBAAYACFy5QWCRokCAIBo6B6tTUFIECFCge6xTgAyNGhbIKXIBgQYIEaw427XTsgCCJEXMZUJAsyrt3G+11FACH5UhuyrZs4ZZXpbKQ3PZym5KgE4rDKBYsXmyTcc4ABgAQOMBLwYHJAJYoCHC409MCiyoZAAUpTLUGDRitWcN4QbVqBRcsLGtgQ/9aJ0lyPVhyhcVcuXXhPBJOci87vn9JCmb3KBlZmV5t2vyAM3rkC4PKXChAWcQUOPYqKIAOlUIB0gHCrF7TIDYk0wsaZMgaAH4ABQYMUMAdA8AxCXyLK7i6iitJGVKOS64lvFpKMBxGPjtsJ/ncq+YmgXgyoIBBXihjEFU2uMCBA64QgbOYQBsxvQUYEUA1RjJYoyBG5puxKYU60e+C/h44RoQrLImrIzg8Is6ulgghZK/B8urrr772esSw6BhDDbWbKOzKAKgKgICCDQQ5TwEUDyPHvNGOCUC+j6ZYoxoZM5hiCgHW6My+po4xgMe0/DumAhHoc3EKkIwEqaQomdz/4iTlEOQmQb4aiCk6rxq7abGBukpAvyWWEGEJzAC4IhmeEDOPgGPUrFCADJJRgJfeNpIRJoVAAaUhPiWK4QFeKkhmDRflsks4lvJaVDAlGR2JFJX2IgQORsKgtKvGcoJsQwi4IwAAESwRwJ4ZdwoAFKguQLUTSF7Dag0RDjChAxMOCLCggxSwtSH+0qJIgUKSYWQKe96hq8C7ECRFMGeffFIlhPkSQKBpXbspAZwii0oQQVQRxNwSK1AvjADODIoAA9BFTTV2ATDBhxN8wGCJChIAhcxUG0IrrbV4YW21DOYazq6CWzKpSb9IYrYvk5B75IOdaMp0Mdiy3CmMnwhw/yAqCkY8oAKdEOjk1GMUeBO1rCpQeYITVvDBgW0fmIwAkjEoIq1F1vLVrZ45GvYulphkh51kF2awpOPYUYaRBHi69DXGBcopGU9F+PQAyi25InGBvg7qP1AQuJCxBM7mIATSi2jk9CJSL8IHH9JyZC2x18ggb6DhQInhBP9GbrCT/HJSGSW3QA7aaqbDSWLXwjDg6gIcAOCADDqKIhmpy32gtEobWCwBXjDowJMQVHhifHrGN/+JFVqQSLcHKsgALmGRDMd2ofUSHjnkllTyUf5FIoUQ/BGGEUxTnJUaR7VybYACEKDMFKJAMZsEoFz/SdditIcASHSvA6NTwQig0P8CEIZQEiGUCBB2o4D30QUO4QgHSlzYwicBUHf4AxzSkJas+w0PK6WaWk4uZRPIHaBL3VkCWDIkwc0poIKfW4zZOnCC8HlQCFMUgiTsIAkstkASEalb+2hnlxYGT3986YsMZ+is3tnwJEvSnQAzJB3HdMUrBjEArKLAAhOJ4BGI4wkkoJIUBaDmDA04w2IgUYEDfC+KUIACFq1oB0giAgpC4OJutFIXGCZKUQkzo+4WtUaTIAxSOdyCMrTnGgrxZCA7AUAlCvBKAFSAEY8QCwJoorkLAIAzV8IUJOJwNig+oZGQJGYJ7FACSVDSCYrYldgEwMJQuvCGelnSJ2foyTT/miR4fkMONx5RPDnKEQUB2AnmIlOJL42IACIQS4Y0BwEAxCEAsPlcQwhgAhygLQTCfCQxISkJRNgBIouIZfRCmUmUhDGapMjfNXe3yU8qSnfMekQ4dwKJTvSQQsloF9yeJ6coVMdrrixARWxCtkJwCQc+KELawvcELVpREiUwJjEHagBdAG1+K7whNG04NIfmj0mPiihETzKFC3mFJ2tiIgICMJkDeIpQw0mqLV0JgesloBo12qoTfcCBFZBOfPzspz+dUIVc8MJbRQIjolZiQ0RVM4cPXRREN+lJaFErS4Ww1k3wAzerPe8KU2BEUnFZkUKkprANWIO7vgdFFaiA/wEedKQ/7TADJyyifXFha+2K1BGh9eV/SMshAI0qw8LN0JufU1zUprbVKEjAatuqQEdS05UusaU9ZxiJJRw7AQ56EAq2wCIiHBlQzFbiGEGyB51qRyw4HCxKSiLFwU5CSuwqio3XJEQ4TtkVGrzmguoym7wkIIEpsBBJylhDlw5QiOgpVAADeNcEwCdZD9rig8ksbglA4IS1XOEKsyNSkY7kVttdlx3RnKsndyfX1P6NL3BgImO+u1UFOIBtBwhUXaJ0uC7xIgMgCYeCCKELDNjXpeJrASOx6M9RANgAAbKEt+gCEtttgVmASdqxTPK/oOJvUULtpIQpLDHVEJK3ef/JwBIAwLYG2q4vAujSEubCHGzO1wP63KdkW9xPSTxjIrwJ0BWAAzQbQusRUSpaSxos4fz9735vDsc3rfSi1DRAC32ZwhIkEKolPBNpj+jSFZ755kUJAANc8AQHGcBiEFaxBZitG4CCNCS7/C6vS95xnh3EnLlWE4emxWsGXqWnUBlABFKGQ5e4xQLhPInQrxTBoWk4Q0JoGXwamCxMQwjCLTphVxLQhSV0MZdMzm+PC3jESB5xytQsR7vbddYou2uJP2NA2ybgdgdw0AEJ2CMc3T3AK7clLxasUCRUprWgb607JcFhAFsm3WQ/+EEhgFAtM77CsQXdl8+6p9nPllj/s1eCFxsO1Yb2kMBkOvDwDkxA4hLHAQYGYI8cwyEKQbpCwyVQl5LMugCGDmOQkTNfY0ygByHQgH4RgYoPPkGgmbWbRlrYQrvMhUgigfYZ9txm9xDy5z9Vxjsk4D2Je0LpHFB6oznQgQFYIsdbEADlKCeBAbwDzewuQBR4iuWgUn0AiwYu6TSggrOnLyK7OkZ8YfhZA8EhNT5H2oGUYWf5jIR+dxfBk1nHgRNwQPCCX3oHLO7vFl5Bw2wDQNTByI0MEAACI/dww4J8YgwYgwtcsO/ST1AEekSkCv6pAGeH9S2d1+UjCFeJnfX8FwGIwGo+WEHtTxB4pk98AtzmPQEG/xCOqlOu37rQxU6VMQXJF0AE4t7mm4MXDt9m3gPT94AxjIGDQZQwFxVIvQAGtBE6gRyudr97jQQHGDiwAJ8scynuc99oT7AudT7AwQHeEY6ATeEdJoJ1So5f6K97N08CvpzThbHTNgRshLRAq2PwluB4QLoYHNYbDrfSu3cAgHxKm7AKgdsjPMCrvfKhBxHEgY+rOsA6N60TCUZIPpITJW5qIwHQhfubn40gPgOcG4lAKwMwsweUiyEBuQpkkMorGjiYggPIJ8AjHQ7EPaU7gcjytSdQAR8AgJyCAyE6t6ybH5GIguTLqTKaMGShtnAwwBm8ufmRgNvQvh00Nl0AGP+O6Aid87+DC5q/gIPIwwHBgyIlXEKxGoEW+6AWCAGoyyng0wiMw7gWAozIe6UWPAk4gAsYKpwtKERxYyEaJADcmIg/kUGN+L5vKTA6PD+VgAMJcICv4oHbS8XbC58O0i9GggL0gTrme0RE1Ca/iALmkTr9yQt7ODaggjf864j58b4DyERhq4grgB/Uk4vUC5oSI8LAAAx7SKRGwz33Gx0N0IDxGQFXfAIfMAFCnER7UBLVEgnFax5LuDlG+cRxk6gF+6wMMJElwERj3IMZExKBWUZ9RBIk6Qv/8yy7sAQA+J7By8PBY7nJmixb0C8VGMRx652EGQzAEIFcZKE0WqP/bQql7vK+KGgXoDDGtfMirFhGZsQ4oBEJZeEbgEMxggS8JIQiPWS5DmKkFpiAA9CFQ4s3wQhGgIMDinylZJAy/WEjMkooM7SHJuMSkIwIR9gVhMibjCAQAwsMfzzJksA534q4giSdwFtFhFxIKAgBE8i6HqsrdhAAFvCWYVwC5jG0NWKS7nqHK9wWypAAy+EFqFhKutkNSHifgClJvbGdneqskMBKpCtIHtjKEEgBBmAA/XoCDrA4AWiYSRSe9FurIlQAV3KAWnvIZMm1AVgBHcCNoKCA7NNL3NgDAgAF7iOQ4ABIfswk78s84CrIwQs8HpBJD2rIAcDJRAGcRJNB/+F4hAx7JRErsU9SkjFsHdRsTokQjYqQneiJntc8PZbIJuAbgJRzOts8SMYcgVjMwi9cFMCYghqTAK/rM+aBnnYUNUJ4BwxYAeecT4gAgl3pFdlhxuLoLGnyx/kiux4IUAEdvB7gge9UgROQxUQUHqqjHAB4UMr4lwNwgMlru1CKKEKwhwFgTvqkz0oggDgIlL9MvfhZoa+DAxTbshoQ0ADdSl6LwhPAALV0swwlgEq40QL40GTIgHKbvANIx+sCJVJ0gA4tUhPihQEDTOEwPqrMTgDtAQ4YUChFSPCcgAF4Ji1EGEJzJS4lAAWYAl6g0AI4gGfaH6QBvisAgHwp0v/59I8leItOHBLAQD/0K0z8wwAVbVEobVGWG4ERiNF0JE/C2YItfaUbJRkeFVNemMxdVLYMqIAwZVP6jIG0EoEoqLEBgUPYVAYW+s8tAy4WhVIe0AASCAFjuDjkzItkaTWSqgQNExVsKYBjWIObG5bCgomGSENJRU3/oJzvQL1P9BnYtAduiEE85Tz7YtET0ABBvDhqAzVumFAu1TAvXZ4KpVX1WjavCIAKmMddbc5G2Ba2oE6M+z6dM0m2WhR5w1Pdm4AVFTyouz84Y4fc4YsDuNFWJQBemNBrLZK5SKrF6JfGeohvXUp4etBFBRo4vALhG4CsIxLkzNCxo77N44L/IJgAD7C/EpvXASw3fM1REplQ7tCZPAPYBTCIQliDJciVgs1E55mMYxA09RKAo4uXBz02odSfMXRYBETAnCoyh9qCK7DRj3UefnWAQIIN90Cy1aiAAmhZkKwECBUxnmKhaeQ2lcEAM7s5jVwU4MsIGWS+NwvayMPRHP3QJ4MApC2E16gwpY0NBSCAMoDaTPSPyeCFGewu/MtalTkAZPspBjUtHGJQk5OwLUA+LsVRuHGAEVEAzIEaA0qI/aDb/siFBzU0cUOa+TqAATgArf232+GGoG2+sb0mQm2lszVUV7oA5QIFvtKq1IiN1ygEDDoGgqXctQMAA3AfYSyjjRxD/0MTgF1EidL1m9KlIaprJbM920owF86ABK9Q2iSLjUKAhLjFXV15gDjIAEOUsrriCxYCnP1px4YK2uM1XSt8pQKIAeZt3tWEDwQoiDWok6zYK1B4WuyFCLZLBkPE0sEVshoyrRfkWAEMu2hd3xhI4NRloKVYIqzAigS4CXoBgPyFiD3IhT95nwFZoUwKXBwyXcINWgcLKkLgBQRO4BjAUdYtDfiQj52xCaU6WQOoYJp7gGQUlvmBoYesK2pDo2p6KAGcM+6qgEpAYfZVYeXyGEhAiAdVohY+We6h4S6qAEM8xExroWMZSjGSKG5CtMtLhhNW4ARmXaqQAevdEwoAAP9QkAEZ8Ip6kWIMdp8R/RYT9anP3K6/eb4ik0ST24IMYFwjTuGgaF0zJpdB0AECuJ42vglISAB6xF4T2l2orM4c9l0Ie7DuShpPirCwswcCEIpAHmRyWGMZiFtBQGSq6ITwWoAlfmTcrbTSU9JPBKNx80zh2cgr8F4hNtzSJQVCG4oLMOKRUYpOMOMNSWNeUAj4hQ8Kzt8uYq4RDczP4qne2cWMgCE8pqvSJQwC2ABVWIQ9QOGRSRUZoAEZCADMEIEKgAQ2buOe4IUKfp3lCtuShLuN+LowCpxqFmK/CZ4zymN7cACMEYRFCOZXYmDsgY9+SQb7QABzpgFIKISfcOb/3aiASxOSN6RjFcrni3zLuxI1BTmjDBVojcmaC5g8c7ke+IBfsGhoiDbjM87fCzaA3pDBuDDXAimwhywjbYImouTiAkYOT8aYb84alEYPpljp+7CPlTbjcWnmV1YuBbho/SwQYV2h/blj30UjNDJdw+WGgCZqCjDqoOgOqlDqhWBjdlZrcslf+0RGmwZMjhBWHU6oGxKjO87mOeOLgFYFv14Ekw4KtSUNe0nqAJABpmhntYbn/GU7KoYf4CjJWU42o0SonkYJudoduhIADvHrbxaKbNGWVJkZ8mgKW5GBYkbsmXFluvWTQpiC2ZGTfJyL2QGYjngES8xtLQiH3fYpKt3WAuDes965uQy4AEdwhEEAEcC+AAViXdKYGbLoBFAgB1Oo7upe7aUMCAAh+QQJCABbACwaABIAcQCwAAAI/wC3CBxIsKDBgwgTFmzCkCG4hk3AKZxIsaLFixgRBgpEpyOwWR3pABtJp4kciRlTqlypks4sJCA/yho5awySm7NkyTJyKpAclkCDCm1CR9asj6HG6ByTg09Tp09zHLFwUqjVqxSJHv3INIdXPjt21BgbtuwOHkqMBMLKtu2WJh+RLG1qdkeQu0HI9uDAg0eKMTBOuR0MFFqgWV4TlwUrtkaQCZDH1uBAuW8KGIQzp5RjhK7YsJLH4q3RowbkCaYnW/6iuXXFQLJy2OVCGy9t2pFNc/GAewJlviksuB5+UGsoPjV2177tofnp3c15593b9xLx6wO1yhpjN4jy6OBpg/9vPp06AxvYiTfhCEzW8eTjmxuLH512atI8hKdvfThuqByO7WbMfPJhQB8XpyU4GQP7aUaULEj8J1t39BHYXG8JJsjBEw1mdhgSX5V1F33hIYjaZCecwEGCLXRIGFJPgeXYBAhCdyGCk3EQggpPjADFj0+ccNoJzLjYlhFy/ceYXWOhhtpvKZ6wYwuplPBFBFh+IYkKK06wQglGstXELEktGRZlIaTAwAg+ovLjj1diyQyWEXzxRSopoHbCDGGyFchxoKl2BAOXFGqBBXYm+gUzjDIqZ5YjqMhBi31e1cQYYOXFQQpdFIoKKqkoWkcdETADwpxYgqAqCBHUAUUIlLn/UulVgfAgFmohuHAJDJd8eqiddD5aKqOqMjNqKiqoqMKsVgVyxK09pFDotFCgYoGVwMYpp6mrglBHCZFysAKzQp1iq55PXGLLtLaAim2rpA5LbLcglPDqCcuSC5S5dk1wQrqgouKptYhqKy+3qxoLRYqU6rvSJDyY5u8T7VbLLgwwWEAnqosifKrCKUriMEsgMNDDXvhW++kluvaasZ2OAusxo9/iOzLJqJzcA762tLuuutMWXOcpp1w585wWhNDwzSlBcfJkGnTKsgtdMGB1Fy68rOih16YiSah3qsAa0yqlwsPJJ2hAqAsMpMADrGiq2asFqaBCggYaqMBjC1Sm//IEn2SnFEgKe4XAgAojpAB3CGky7lenMNx5CQMajCBJCSVcXoIr6AWekRwmb8qALSrgfbWbtrSdQgouJGpB4pVrPsMMQtTh+ecj7KVm6VbjzfgKKqy+uguIRmCv3k88AUUJM7gK5u0XyZE0X2tOrkEKHKTYI5ttZx0n5phLMqqxJaQCAvQWyfFFCiek4GOhVjNAcd0kjEA5CagAWweqNDuKJfoUkcMpZqEEv4xgWiy7BBRSUbf4ESp/RiNWox51PgAmBBynEMksBuWjn7WLgXarHwlI0CuZ0etjpfqJBRGiPiPIxAX1O6Cu2iUwKJCAASPEX/E8dqpRfaEOVlhhQv8ymJOcdGGEDHCBEguFRAdCsFT0MlYdmhdEIR5EDi6ZxSyMULUuMqALYDxiDm/4RDkVC0uj6pwVD3KKkQDDCDe0mhKpBsYcto0HXQBVlbbVqlRVcY0GAcEpXAiDql2ti2K8odt48MUS1ilYqQJkQibxBSMooW1HUALWuqBJJVYtBUc4gvcMVqpUqVCSBpFDBAoZPzpSjY5h7MLL5LWxUv0RlamMgAVgwLYvgnGOrvTeDum0P1PhciJyYMYufwnLLpIwcoqy06hapcZjstBO9vNl/NR0uk+B6mtWGp81JzInVMQPjJTrSwj8QqiCicp241TIqMzJgEFtU3hYg2Yp6/D/hRJUM54GYUYJ6HnOq32RBBgjZQmACNCEuAoGvVPbIcG4K3deaXbwbOhBQFCtG0o0fkpQgq5+Baw6faGaipDCIXphhV64tBfjtKHVVifHL2ZNaHSy0wwquAUpVEEKKgWDUIcKU1RaoQWqo+kXbVpRafKzn/4ciA1cIYRBWHUQOmACE/TgDFyCgASfdFsK8CbRfJIUqgsFRxCnmgVVbIACF6AAVqWgB1TagBmXCGtfLCM8QnmqSuVjng1GIYVRtFUViEUDGlQxCCncUog2uGte63mERTrOMpRjwAIxRzdJ2GAGg8gCBTawAcQyVgfisMEhADkKZqiPaqurrPBCcIK3/+FNeQwMbOZsIIVFuIECo10sY8XxgpauUQquKEEgeElZ2VJOcWPVgPLoVr5UIKp2NnAHEDag2LduYBDioMJjAUg7H6jgFJOdKShXZ5nbWo6B1qUbCfz5gkGoggKLLS1WX7BSISLXBx3wwRegoILMOvC5q6ucLbwGX0T9jbeD4C4aSovYQbwAqOMN3H87YIIOtEAST5ipc5M61vp1tkqH0gAQD6EDNAB3whVmgg6KkAVXSAJwgZtBFnxgAgz4OAszcEXpJMpN4SUYf7n9ggVQ8YQVu8MNRXAxdxnLhA2YoMM+WIErZiAFpkmCAxwGwAEAAIAiDGEIKxhrRPEmPLyNQP+PJTjUCJ5gAz384MlwBa5+maAKMpMZAyZwQBHEwQRySUEIKwAwBg5wAAmQGQIveEGaPxo/vG1iTfgDFdc0q1I9nMMNcQUuBaiMBjIf4wCnJrMJcHABHVQK0RMI8wEG0AwJjBnSUpA07xxouiN+qsFQ0IAkOg2E3+IXrlS+gKmPcQxeOPsYqsaBDoTQoRasgMMYAAAGJMBtCQzA1g4YgkqZkLxDLvWgl4Bv3fBWAin8QA9JMLaoSysOCACA2fjONy/GjAEc1Bg7Ola0mLtda2/bmgDiUCly5xziHNovh3pMBQPwNQM762ERpIXrBS5A7xjcO98gx7e2HdAIV7emvB3/8PGsB/Dtbl+B1s04gCqocIgfvMAVIa5jCKs2QlCRgLYtoIIeOHFxNFwAAgVIOscH4fGQO53ZZHaAKjJDBVf4AAcpF3Ojuy2BWg9ABCLgNgSGYOcfDMEV2SSB10LYc1RoYFNc5gQnfgAEINhXFeIg7gt0UAkAGMDpBvg7s/9uAFVTwC0zQLOis32AZjie5QNIwxVEwAIRTF4CDhAHGH5AdHKPoOdrHyEUIMowocv9B+fYLozB+wJVEIDwIA88vnlxDMIXngBTx0rAsa11x/MC7GB/+RWGD3kC6OAGnOcEGMiNQ2uBEIm0DcGwDyF3ohMhBklPugMc8PFjgCIACsh3/+DHL3ioA+ACVwlyEbDuYzE7vhm8cHwFLJ+GcqQhDSy4fxoAYOGhzx0MaMcA1hVnMsU+/0IF7lZ9RHd0i4UGDoBqzaYAElgB+PYABmCBsjd40AYADrABQSEFaDYBPaZ1S/B+yeB7FZAMwccC5WB/LMACBDAIigAG1fcDoyAELWAt/SQJI3A9KbAC4vYDySd3egAE4qAIL6AI4kAAfmcAvFABFQB/x/AAVFiFDzCFVvgABOCBK2EDisd73FZrzQB8T6gAyZABUTB8V5ABltCCLJB5inAD/jd3NyAEkoAo9pJUQiCHQyh3RLAIihCIVXAOryd4ClABzjZ+WbiIhYd+Kv8RZFc3ggewBJRYgr7HCxMYBZrIAprYgi14BQXABHEIBnPICSAYKqnQg6vTAjOweQqofIsQA+JwDopQBXsAAFfofaBQe044fsxmgYv4AACwhRlRB7Ama5T4flAogaBwiFCoglGQDMmgiU5gCU7whkdIBKSogD8gBTOQitcjXS+wjQoIBklABgWQjYqwCBgofrZXfsFYewRweBZxgysQa4zXdVC4j8uYABNYAQkAhVGQAQS5BlHgBJpofKIoVH34bi/QAk+gAq4wBKTYkFVABgSABi9wA0IFBARggd4XfoG3i/lGhRqIb4GXexWhCuxHZlsnASIAhQnQDPvojwlwk8n/4I/JEAsZsAYEKQDXeAAbsJFCZWfcqAcPKQRUAAZ01YdgsAcYOZTjeAOL8HreV3v4Fn5TKH65KH4QYBHuwH1i1nJLgH+cmAzzB5D8GAAJEAsK0IwBsAZr4ASGIAACUA4iAAFMoI10VYpEV1ijMAocaZSnd5EEgHs3wJFgUJWBJ4Fa2YwX+ACmMHjlR5LQVgAW4QZM+JJpqImaeAWeKY03CZDS6JhtmQHlYAmqaQkwyASKKYTvpgdgQASB+AJaJQ5VMIN6YGc3EAO5oIWDcAMbeQPKZoHN+JbMBgp/15VbmZygsIsG4AAV4Q4eBwDcBpoikAwvWA6cqInSKJo3GQv+/8iWCZABhmAJyJCebdgMqkCUszmIi7Bx+iUO9oUGSFcAaAAEMTB+/AcGcdibuHgMyImcT5ecMgAKzqac0kkRi0AGYrYEoJmC+bed3BmNaImWCVANGZAMChAAFRALPukEToAMAoAFbSh1jHUOKpoEsVgJDpB9R5d0lQABF1AATjiF/XkDUkAFTWcAu+iYPppvCoCJz9kJMsCWV1ABBkAAhTYRi5AL7ueZIkCNTsCdCCmNyxgACxAGNxmea8AIdikADRCmk9cMAAABwQlUN0CbVZB3hIaEilkFyhZ4/NeXL2BvzGYKzyl+zYlvoAAJ/hh/URiDFOGbYvaE00il1XiQUf+wBmhJgabQCeAHfgoACbHACA0wBQKAqWKKBVOwBgpAAGj6pi9ABLRJm6WqVUk4CBdQiAbQWIewox73d6Cgp3uapyT5nM/Zof/IC8ZXqGSGiThZASIqoshgCMXqBBmgAAZgCqbgo7qqAAsQC2HwAWGwANUgAJrqqBUwZsP4opUQruLqAJVwmIdpADSZiDqwo7lWALg4kgEAfrmqq7rooW/5fcz6qxPhoMewBN+5iatJolMwBU4wsCLAC4HnrKAgqQEgnm0ZBmFQDWM6BYyQkwYAAYuFm1UwiECQBB7rsfZ1AX2HibW3AWf2AkNQCVQIr/HqmBLopwvrj0MqgUs6CBP/cQ5k8ABPOKXFWg7piQxYgAyaOgVYgAVRAKkKy7CUepMLAKaPQLGMEAsGgAaENo59KZtDRVdSoAg6cAEJawD4uQIvIA45e4U+Gq8BsKvM+JxnG5AKkADgV7MTUQVQygsScAUiiqzqiQyWYAh+S6JwMAVK6qy2+rZsCZAJkAwfwAiMS7EcSgBHdwGnNQh1p6IqmncbcAEOQH4EUAAQoAOu15VwKbOH6Jid8JzkGZD+uKRcmBA4q7PNUH90OQU/y7cCYAgDCwdwcAYc2qy2+n3k2YwQi62Mywg3WXjDeJgOcJi5AKXC6HcHYHkV4LIE4AAQYJW6OrqTepNpW6QOmwxr/3AFzgYAKokQT2oAh5iaJWoJAgC0QKut8Fuia8ALyumsnYACKNCy8ZoAH1AN/ssIH7C6aIpaeSeIG5t6QLAIBfB6iLirleC5fud9nXCvkxoAnQAJayuBXTqNBwtt5XsQt3gMlNe3QIsFdnmsxzq7RQsHApAM9aunRooACLC/XFqt/lsNYRAAD5COcKqjWTtUSjgINoq+yvnArXqFCnC6ugoJ8QoJkHCcwBuesZAMAQB/U6sQ14eu9UfCJtzFdjm7JYoFcGC0CkC4pyvDNwmxNdy/jAuxAXB+F6BYcbwBi7AIiAUEqrBxrXoA6CuBlRADF2CSutoJkgqo3AuXHRqXcv/JCGsgsxerEO5ABscgAT67t+1bwnapqXDwCI8AB8owBQlQq5Gav2qsxgvAxg3QAG6cALdXveZqrn43f1fgqMxoAJWwce+6sPeLtuFZwTcpl2uwqRgskpiZEItAZvX3s+jpvkUrxmK8u7qrDI8QC6J8vwhQraV8zRBrrdYKtzF4hIGoCEywsfBZowzMjDuMywl7v0f6fW0ZwC37tgngk4wbC2xZe46IEB7nbWlQuyRaomM8xiWsu54MB8uatJ0Qsf2bzdhaDR8gnqFKXIo5VEzpn0wgDqpgo5RZAHHld88ZqVHclhCNug0LogLQyB6KsMV8EIrQd95WyT/bzAQ9xib/LACerAzKIABlHKmEfM0fsAbWuqVq/AGLW7G2vHFyTAF1jFgbh3QEkIgXyNHKpouoC7dtWbHcG6+xAKJ+uwZuGQvduqAHMQSSLAFpMKLv28zPTNBFa9M3DQcJYL8G0AkJUK1ETdTDu6VE7dD+6GeHCQC58JGB94TDtwS0p5wcTQF+56wyLMNsOcU3ycRsCb6MgAWG0KUJgLD6ahCRbADeZqyGwLcrvMI4zda6yw3cwAgBANJ0nbixcNfcHLFfWg1uiXtZpVW1uLEsGgPL62z0i9hwBa0LG6+SigALkAFbHcoBII1gKgC0PZrhx38IAQRQCqGqGdNhPNOlLbTRrAxw/73a3wexr43DDr3Qi+vQ9vwAqsAEL4CAQ3UD4kyfrSp7iL1xTiiBDNsJCJChyW3VPGnTArDVKI2IBpDPBaEKuXAMFXAFbUi76SnTb80NM33a3ADKp5u214ytes241YCpDcAIOGwKBLAHcaxYdXwBgAwBSOfRzgq2NNrH+zue2CyNDrsGhiDGm/rcAZCIaIAQ55DgxHrdDz7hOI3TEk7QysANhHAGcDvcxq3Ndv0BGt4A/pvDndDKf20A8ycCWxzKztq5NAoAiRyvM4wAi+uwAbnVAL4G1eDVo6mkK10Qx8wLV5AGqpndE17QcLAMem7k323GKADlDn3DGr4ACHDlF/8ABCp6wPFZAOUKACKAnGDbCBtHAHEw3BespVWew10aC2dg2SC61fY8pEtqvgawBDCN59p909zA592N2owQBoR8vzQQ6Aug1/6bytWwpQuQAA9wAUeomGObd6CrbC9rADhQBKPVCATAbIRMA5CArV5tz7FwyhlQopsql7SNtr7apHJunXeu6tFc0EnODd7d3aQg4R9gwbRu3LfetB7uv0I9wwDA0YpldDR6n6/Hq8dAchynCo2wvMbZCaFOrUQdC9lqlzUN4qOuAGZqswbhcUuQAcigu0EL0Hm+5+f+1uWu2kV6zY2Nrbrev1t66HGLvAYQvZa3hlOwoXAbqqy2ASv/sAJP4AqukAUrsH4mcAw0+aHBDNBY8OFuHq+ICACtSxD7SazvO+QZ7+dIjtPaoA2P8AFJTMrvLrHy/u6H3gmm8AADfA6qgO8LDAC8gJYKMIwqTlquwDeSoDmZ0wJZgAMEcAAVEMxnoLu3O/TAy6wQXxAOWgEZoNYQTuSoXeRFjtrasAxrkLbF7e63nuvXGgaNjQK/rndt6qasaqMHQHIrkAVFQGNUZYeYMwPgkzlFcG+zfPdFi9xom+mgQL4G8QKSLAIArfBd3PSk4N26792E4AUVngD6HQB5vevv/viGXuud0Lkbl3Q0WqPbdwAEUATJ4/kroApZwCM+Yoduby/c/zfxFm8IjmrPRXrlsF8Q1H0Mdk6itbvW3R3NfL77ykAI2kAIcLDugZ7XJF/8Wo/GgQcQIgReEXElyhQnaTD4WJFixYoiRR6qGPHE4hMokiSlaoEDwBIBy+DAyRArVphYCSBBAmWAwLktMWW6yXUsjSEnU5AhmyJg5E+gy7hxU6YMTlFl3LR5IXUmTBgEYRZMbVB16gKpUxFsBXABzYUCBRwQIGCAlwhkEkxMmOAjoqoVKlqk0ijErhBJQkZ4lIAMDhYsAqqdTBArQIBjxwgwkSlzEYBjV5w4waITMGCgI5ctI0S0qMiiSrWdYRQGxVap1RpUqzZVNetqTwFsGFS7tv8OVWAdHADQYcKJFT42wMWYqsTxGSVS0YWyAoMELH8ZrTH5NAwo7AZiNHYM+YohQwIsVwZ65mhSbZ6NhhatrFoAFPEXIFhQ1f4Z/PgbMEoGgGxYCHRzYEAfTjjBoSI22CCuEVDRSJISIFyOrkYAKKeyKTJYgzrqOunElAcu4C6mGCDLwAlLdhJAgEce+Qk/pJQaCqmiSOGGlPQagOo0+qhSpgEakRppCsmcYCGNcjIwZAoJOuDAQAOLQCOiuFS4qIWMlkMFCh8OKMcvARipZkPDPDQlF3FG3GKRB45JxpIUxZsiuhfPSIobQrzwTL2hSPFCG2Xmi6/H+uxkj0Y4RAj/SyyyDmhGAgkwYGuCJxNcsDhJWrCoQS0Z6MDLwFZbwKQAQPEQFAKqUDMGA+K4whInBAjsMjjwOw+99GJEbyg8uWEEPhRoILQBGJMSMtEChlNFlQ3AKoCAJikNIbhlsyjuOAiVyzaLT9OItTX6VuoEFBALUHMLMgxYIg1LfBopsClsvVUpPWncjFdt8g0UgUHpq8rQPYuCQ4Bm/FvUAf8AOMDJE6a1NC6Msj1uYkmcO2CADASoChIPTwWlKzXPIeMYCcpJ8TJZBZA3RkJyDZK9pUarht/TgKSRFBo9g2OKR6YwpJwLo8NiYbZ8wOErHzjgIAUrW5AEiuU0CsEECb6D/4ObMwwDZSXEDDB3xCpGZpcnZC7DAr9HQrOR3oCTslGZlvUt7bQFglTvM6NEGHBAAhQ+4Iq/kEljABOOpmCFAxmwKIUUnhiBrhE4wACAKxj5N7BYqMv8iq4YayxsA65A5mRDRndiJF3V3vO8Pekd7QP6DD00xqMShUBZVdAIy4ErhNJmGQyOXlAFBlAxLkJJjE9Fgw4UriAAw9ZgxF04ykamnAMg4A6IXAyowAmcBAA/J9Tv3DM9nWPkFc/OHmnNZvVzLuqRAwg4uG8AMqCXkAMKoGDBAz1uYhNLhQpM8JEAdGIrC4BEAtawojVkYCQCIFxjuHeMWEwGRaXrCepad/+j9KDOg+tz3RliU6iXpfAMCElIGsp2tZb96QAOuIADTOAbDoTgWqmAAhROgIEDPK8TMuBaLMb0wAyoCAtpcIBMzlET6GUgA1NASAftxqt6Gat8RCEEjv6kjNJEpRopfFkzyHJGs4huKC3r3wUAYIlyDAADxqBUCrpwiUtEDogKSKAMiBgASCygGkoKDxbCgwwAUCAmScjFA0ARQSlS0Yov69X6QmO3fGmDEGf4AFQWILu70UhRFGBWs8RyACwMZRltBAAcRFKOObIlhxpQQQf22AlhdSyQ1RBAxnoigAhK4GsXDEACkiG9f7nyVkjBkTZs9LY7sQeEXtATI64Cvxj/4UxI9SOAA56lMBHAcJUFcOO9kIEBD3BhAj3I4QkOeIDDQAIBK9laABYgq/AIwBAZqED/YrKImlQgGVHIyYrolBn2URNQRLnRB6fJFDgwokegDKWNnGCQKBA0OkIhRGdmCIFWcmMZWJCAMdTZAx6EYAJAfB4CaMASQHYCEigJDHh6WQEAoOGfuQBFBaSoJOoBJTQxpCYJ1/dML/6JG48QwFRkp4y10Q4Ai6oE/pqRyqF8FACb2QwsPUApHtTAGAOQQDLkuRKOyXQl9cHCT/vztS2UCBSxWNGcNqo6oSSFqGtbX0c7GjOFaqNWDaiP3YxFCo96k5wUYFQ5rsaNjx7A/5VDgYMc08kFYxzAEmmgDloBuRI/yoCXwMSpiGQSgwdUYA1nEMm9Yhizvyb1iyTsaDMzSU0vjNSaKDQfQ5WyjIsWTGEDcKxQIEtDAGBhM4TYDDIGcADNKretT9kKJOIJCRnQR5+cU0VjFEGG1BrialwVCmd4FZp84RZ9Ij1qF9OrXji4jyp2siSetCGAhDVDMn4p7zgvIFnOaAMZAuiMK5cLhyiEIQAoMYw8Q4uAQR5Ap415AU8zIBJlinSybiOFjW7rhc7Ul1dxWwpuCQEHwhZ2RivGkwC6ubu+HSAKGJoqBFB5rylEwcD3WoYhkpGSMBQmASoJ7Ut5ob3tAQAUtP86lno6TNQ/6SnEfm1ZZzr6pxIr1YSquVOHcYZYPU1hAAXj29/Ex4gaA3gzj6iACNLAgvLCgRcFqOoDrgtIP4JCAQRIU2OksAgDxMIQmAHKjQ7V4ff+icrs+2smP8yUH1XFWOZrpjJ4EeMBXOEKUxjSGuxnY666sp+OgkOBLw2BZ4GCiGEArQxAcQy4NqZEx3hgZo7SJ23iS73r7SijS5xl3HIDxWf4l9pwdOKpgoUAf8vJIxjxAftdwACPHUkGDiAQLJwYDk6YYVniOc/CsAQA3eWOImJQk1q/a7LnvdHaAAviltk3XyR+NDVxZhWqEEuv+VqDf8jCNwCIYA0JyEX/JWzsSub+xBCbFgkWkOEECYjgx581SQIU4DU1KWIR6fpO2TYq0mw6WqG41ZO8bzvvRFNzkymeD1WW+7soKIAXzeANAJqRAUYk4NPH8J2wx7uT6Ojz4WuoQAI+C4mUHCORaiLCxiHDLp+ItLW90mtnUq7oXmmy15qs973nQ58FLsB3GbBfWGRMGaN4ugAH54yejPsXwOhzn5qTikn4Oedzral7f0MGj0EzI2aanORY1mSf/PpueyuD2C13KQ3EjqcrkPMrCIOuCDK0880oVJV/EQAy9rkiCK6oJBYnQ971/sgXYvgn6imfFjg6+MBmsplEzTIhlCGYqXQiPjQ4Q76W/yFcR3ETAFG4wqclyw3c2qgyDn94FDYkPX42oxkG8I/p9W6KZCiXKLL6SVHyc5Sq+A72u0ZsemP2XkAtfivr770mnSAC6B5AAgNw8yOc8GkDZJ7wwnY4rAaeEkiAtZi4gEWwvi1IAtSKBen6pdqBu1oRk/lqtPHjOhDjukfzudWgrjA4A8SCgxlalL6RAHYph24CKeUavM4YKSfIgCFTAFAIEQMcEZFRgEFzgigIifIwitWoCi5jqDyBvXnTvJOztwdsDahAgDMQjQzwNwDwGxG8v7U7AENYhiwLCfbqsWSwOALYgxgcEXcYGSXREPMYqb/4CcvJD/1gLWUANvWKm//YizKFiqgPaLlPurJlYAFNA5/NuhAXWzsAqIC2+5MBsATyuikY7ELuEIcYOIYTOYiU6b7MQAr7+Bd6GbzzMz84LKopwIoFagAc4Qa9YZS+WbZmSINPI4AKYIQA45/eWYYltJ8YUBVELLdFvIIMuAIWKAfwiQ6BEaqRYIQKoD4DiIwAI7xMYh/EUygT2gphsZN8EYGyG4tGEcFPAwAFiAWO6jHpIoAhGIJZzLtajIITsYSD4MVenCARAAAHCJCIgICRmcIfNL9MorcsIwXCWr8F0IKlIIRykL75G4A0uIJyKD4/PIYEaIBlGMPNwAIA0IFvzDs24QXJAI+TsbWdOQD/HICYi4AIB2iGUssT9LOtSiQ5MDrCBZg9LLCEjWo4biMAHAApXoCwf1mRBliDA9iAhzyXc4CMqtFDlaQTgcGCAcABV4CCL0gFEiABTcmCRiAAeCS5RNO6lOOGFKMPuGkZQ+KouBGAD4QAA9Czq8AKqQiAI8vJc0mXs1ASJTooOLCEDsiCVPiCL4CBSyABKNCUFXAA6KDCPxEKICQxhQKjq9ACv0qDKcCT6OgoOFDHtWuVldiK06CBPHMAcjPLxmCTY5DIXgI6szEEAFgBKECFS2AA0mQAErCIvDyAvluKZbiQ8QPCpmiNuukVEdwMgPwSZHixAggiXKIB3/xNGuiE/3GzzO0hAwDwnjUYH4/btgPwAeJJgRDgAR7QANOsCKa0kABbBgmwBOSLPTb8k4hqDcLUpC/hhqGRvwEYgBLcTVAAJMkEThSABIwjTgvKBchIAEIyGwnAAeJhAB5omBQwTRKoiCdYAapRrnxBUKiEynp0tk/iOlnhBmTgjfmTAN08hmJSCeAUFlerBPrkjnNDzp1QESZaAVsQTQagzk0ozRGoiBXwiN4Byat7zS+yJn1MUOWyBPSc0AFBtQPgIzyTAd/cClebjQ+Vte4JgCTyvCswAdAsAQugy9NkgBYdULx4giJYtmwrvH38TthbuTXMF0PQryuoUAtVrAI4Bj6ChP8NbTyynLAj3YJzWAQCkMjSiQIAKIIWKIEvMAIjgIEBHYGkdBqNcIW83MvfqbfAAkIUg5v0UJSqwp9u+rQ0fR55ajzgHBeQidNFGhnV0htVaBA/9VMYQAVTnZDlaAEV2I2QoDJ6Y9DBEzbO8KgLUIVFcBaqQjVeUIDnQQE/wlQ/IksHcEhOvYEvfAAFaAYH2AAGgIEvOAW5/FMLsIBU2BJUsAtX8AhCZK5ZBcz0gjLcGgleaYYLGIRluQAIQLVKWLsCUC0AFNJg+c1OCAAFMFJO3QI9AALwMoBlbQEYGFUYcAE8GthTVVUc8BLj+iurc0M3HDzXAkUIqI3cwVV21Sz/6lg/l2o8GSimsrzXmAibXCCAIkgBDUiBIzBZ0uyCpMQjB2mBF32j5WKuobDAXRs/9uGGK4hYc20WdAWQ3fyOBDuM6vpNpKsA0/LYLeAeAMABHDoBHmCc0iSBLdGIAm0EE+idm0XGv1K5H7TEfMFZnTXXr+hZsKCch0sGqUCAANBYedozz/FYfQUADMChHGKckmWAS6ALIcBLH9BL1zo8wHI0L1W0DEiWZdmAsQULdCWAZggPCIQKNn1PtTUAnERakG1CHAoBzQ3QAc2LTDHUvr2xXvMrRaNAGlU0JyiAZVmWxI2BC6ghCxkwCFxbBPhVyTQAOL1XcTDOJlwLpWkY/yrtIbvIlAJ90ejqVgsMwsFVL0OgzNW91dd1XWXrCydgBGuaJ+wKrVeLNU7lnjZRug7IXA0YgUvIiKfh2w4YAOVqNF9rNJFbUG1oXtxZBOiV3lMCH+pY28PwTe0lgMq91wuqAJmT2w4oEJKl0hHooRFQgeAwgTRYX1eN4FeFPW4QABOgjUEAAvpdhD2wX4QRAUtgwSHCLjYVUj+iXKQFAgCQyCXghd5tWs4dgRQNAQ74lAshr5gF3AlWLxDDAgJQhdo4B1ulX+mFgLGQQhFWtY4R0pXoWAC2uYAUgcQg4AIGUMah4ZV6YOPiKgmGtxlVKB+mjXM4hyQg4iIeEMrJgP9SecFGGqLsggQF8FCPfQxekAApCsaEAYC1oBSl4YAJ8IAB6DvOGGTAlUoSA0lLXIbZGIQxLuMyLmJGuTl6NQAyoNNjULVgHc57peNXsYQ5YywAkIADmKOv4gIPwIBAVq5s7NbD0+EvXiU0AOIkSAIgeGSv0I2yaIYKeDUCAAteUDXJ7AQDqMw45WQ4+cC+Sc/nwgAg0uIcZuWFtcCtq9miIlc0WIRZpuVFkF4BqdM4yI6+4QU3Ds4je4FNhowKKAecGBxIGZsX2rErc9UKpLJ5o+d6LjFCUJRsTgIyRsDX7WbIaE96XVMhfak9M2dOpWOfAo8R/RKHkxUcjhv2ocL/wmu0KkterSMqQoi8bG5kf/5nsUCYxMAO7JCp30SAeu2zYl5hTdsJuzIbzeivKptpvxIpwQ1CLIubeEwGCBjjRiZj1w0QgL5kJXZjP/IQ3D3nOEiGKxgbWbmMkVrJHPa99b0XqVS0Q25YPREBCACCc6gCn/7o1w3psbjkIeoYyTxqUOBe+gQvXmgzJygbg8KMwNixrPVA0X25ebToesPZCzgHcRjjKhAHBEzcGpJGyJCpBDJqGRgXAiDWIy2RZigIFjiZ0ZFrj4vojuLKK8ATvU6PmuZWCWyZZbiCCwhscRCHwS7sf8blsfjKw3g1D2lsTSVm+kQtiRRIDQKP8FhBOYNiLanbjF5iLa7SAuN2veM2LtfjhuNmbgHgBTRQ7SqYbrAmQDQYW1QL6bIYxpE2lcR4AAM4WusLCAAh+QQJCABQACweABcAdgCrAAAI/wChCBxIsKDBgwgRgmtCqQlDUQ0TSpxIsaLFixgRUhLFcSMdOrPoUGoYMaPJkyhTFmwi6iNHkLJkIZE1i2bMkipz6twp8CVNkEhCjcnBJwdRPkjHGGlphBLPp1ApUgI5NFQoo3xqaN26Y0eNHXxCxRTZJKrZs1NnDTVq1GuQIFrh9qjRoy7bmXTKnt2bU5qoWUGN0kQypmuNCYhrwOXAmEOIEDuMjlEija9lk8xcrMU6pnMOw4gnHJ7AwZOnxxx68EC64wizy7ArRmDAx6tW27a1ekLcoQOXCb8bq+bBo+4IG7GTH5TDDAZRxW+je+ASpAeHGlw8GDPmYXqN1N8fW/8PMUO5+YFySlEyojZuEODd3x/uvr07F62JU1s/8aTyefN+AcZHEN150IF2xnBBHRfc1cddaMAl5gkHJ5T3n3KUyPJcEAzStx139Gk3nQcQZjddfi1cqBwdhGVFoIcfKigiid1BOEFvBorGQQlyqBgbHTK5OJ0xvYGIWHYdhPZdY7t1QORvJzADjo+XNQEkEjkoJmOB9ol2wmMaPDGCLaiUqQIHN/YmmgVWUGmZlUGNwUddh5lWgyffnaDCCJKUYIEFvkTgSym+oHJmmr9J0qObe1kp0xhHpKCBBgwwMMIIGqjwRJ911BHBp5+CAAIzvrSwAm+IMYAco2exJMtkLrj/YAuZZJaZSiozMONpBF9EwAwzojITQQlPnABhCCCwapY0pRjRmRIwzArDtNP+6UuggoIKrKggDCuJBmgitsJrykIljRJDQTutLdWiAqgFJVybbajcilqHJCqcsNsE45b7VD3SHEGcrKhMW6a1f1o776/1jlqCCivsW6G/TzHDQA8pKFErKtLCkDCg18q7bb0RWMDACeFOTPFOEYTQQwgE2xKrrB5b62fI9NZbh8krlObJChaunFPLjr0y66yxsuvxtQgHOnKwdRDbMwc+rFCC0DpZzEMIDMgq88wFM50wttz+ava9+k6YBdY6gYBKCDxo4PXMsVbriwXuWlDKp2ab/x1BHamogCcHQbONEnMapODCKyS8UmmlYP9Z5sF/3vypL52OwNgKyRqukhy2UMqABiGgXBqFRzAAA8ejkx7CpHuikoqfdWjOgQqLeo4SOCa7wEDpFDI2oWOqo0LC6GCOMLns8Y6A8tW6pwSO22WK3rrrXFvwxRd4a3DCl0+kYsHOUUvyfPSf30oCCaSHS2EIKTCgva8P56unCn3+fe8KJ0iCfkpyEJQtfvc9xmQqcQxAhdOidqsSlKAOv/IV4FSgwFL8zyT1sIIcpFEmEoyAASoI4RNUUCkFBqoOM3igr/r2qxJIwgLAuiBGrDCqDeJtVgywxQjEtD4SwMBpuvpTp/9Y2Ck/RWBVMqyINIxQig0Walbru9SYGPfDFYLgbhZYYQQ7VSgYJtEiNigFHaQhjS9wzBaNe9wIGKdALYZsgX8L2Z/888WJgOALdChFGXHYQ8YdjwR/0hYEtai/OmDLF3Sso0SYMQsm0kFW63uFJBnQQxh8YW++AhWovoA5eflKkRUBAXvU44JIvmJxlQrBEVwQrVQEKovCEtQJRdY5UErEBl+YxSWjhUZJOi4Fjlnl+kCmyWwZ8oEgaJMtJ2KDP4HAAlCU5PFSkILU/RBzsiwmF7OIxGUmxAozSMUdj5ZGxtUKlhHMJqiulUhv3lISICgFFG0hyVKSSWGadJommZH/O3dOxBo2cJspfUkCd4lvnZ7cog366U9mpsKUlXJcQScnvlS4y5goXCgUrCCPejRUIuBcY6WAuTX4lbBmB7tWCWYwAxCAYwhU0IMVZmqFQ9j0owSxgSQ+6LhNPI6VxBTWxxw4gzqAQwdDgOkNlgoGMEjhEDgViA1S8UEG+LKeHuPkIR3I1ZaCowUtUMUGNoAGCuhAHDeAalShUDvHXdWqSgMU9+BVggaWgJ8tyMIGVCFWCqhiEFRQZlSn6tZJmnNab6SrXesgh7zy9bGD0IEU5LFWKFijBMfrGj1JYAtrcc8XDrxVnyzgShBkwQ1o2OtjxaEHyq7VBso75VXZJVeV/96qgQljxhOKMFbVioMJHK0sbCcZUTbm7W51tStpHZgF3vb2r0zQgzPWagXYbiJ+16NkQW/LXT/5KRWSWAFvU8vXs+rBo1HVAwgkwQBqSipxksLuCEggCe4mDLzNRUNqxzoIcVgBvTilIXtTUNLHlO4E1AxTfW8LMguElwIUICtf+/vftcrBbb9MAfxQ45hMLZir8YpaC4pQBArsdwP9lYIUuulNGwiBjKh4RaSo+RgNfylTspvd+DxVPhJDWL97RSoFspAFcQihxfhSjy2OwOT21rh0r0vgreAFsrtJwscm5i9SHYABE3SgDT7IQgugl0Qb2OFMMJBne1PnXg0nWP8DZKqoJ11YYhMD+a/iIAAADrBnAni5aitowZGjVw892GEFPpiACnwhiSf4dMYauC6NU7Bd8TU4FbvVL4RNXF49G4AXS1jCAQ6AgS7joA2NIHLhKGYFa7TAB73pQAhKEbiRthm+1DSa7Kx1txGIV78QCPYF0KAKIOQCAAb4NC+WPWoDAAAApTYBDlawAlbbYAZPgLUJvHyCLxBrUkyG9Ibjt92xGeoJK2CCOIhN7Mgu4tgGOMYxli3qJfAi2QbgM7Q74IMiCIEKjAKnqbSNgWf7AF7fStwmVLCJSSVuUsb92AhUMOJBDEIVjmDCC8Bwgwt4et68mDfI6R3qA/Di2V7/LkIWnqCiaxeLNwUfNQA6IAlrWOMJk2KATx0+KZ9yNsfd00ALxCEOR+xhD22AAIQ/Lu+QgzzUoQa1qJedbACYoA1rO4+ZT5UmDBxAAhIYtQlaYA0rUCELJPT56BLs83uiYnRPmIEefqCHJFwAAgUggLOTLfVljxzq9Da504+B8kYox+We6I0JSn2AAUhgCY4HwAqoYAMrDCEL8z3epRquAV/WqnV2kAInOKEHcVRBEeKAALznHXVeKMD1r/e7vOM9+GMkmwAUiI1OT9UBxoP98UuQwAAGAIA2hN4KUhCCmKSIxsxWqqDsy9QL9DB6PSyVCIpQRS4ewH2pL6EC4Je9/7zHH+/xx6HqBNCBZaxhh5ebYM/CH77jhU//9EvBCpxwtZh8Squq+tHhZPcD1acI2OcIMfBsD/Bp4Pd9C1h74/eAycZ9hAcBe2EDJdACxtJ7jSd/HCgBIjB8EgAAqjB9o3cDTPAETyBl4mM8x+NwcScFAkh6VXB6QEAGAMB9BgAKCgB+CxhqCvCAtgeECZiAAFAAg2AWu+cDsFZw8ceBjjcALBCFLCABFDAEYOAMnPADNyAOJARIkpNGsCMJTzV6pLdUN6AIMbB9CaiDFRBqCaAAcBiEEihv3DeEdfgABECBT+FyvPd+G8iBUsgCbDCIbMACAwABTJBWWPgDRNACKv9gNH+SCtcTJjMAg2SoB2BABJl4gDh4DHDYhuFHh0Foe3f4AMdgitxXhDzRauHlAzjwfnv2dZAXhfJniGmgC4R4iOKgCGBAhj/wAmCVNwMEO09ghdTnixwHBopggzgICp2wg9AICkA4exF4hwZQhw7ABDohBXaQBfrSAYv3dWAXfMIXhWnAArqQjpbgBFGQDEuABkzAi2AQg1oYTuCFcyL0b/NIhqSXiWeohmsICgEwkAHwg9J4DNIICjo4fnNoe7eHBiphA1RgKk3ih8EHdSLggVHAApagjuvoBE7AAgewARp3A2Awd6P3A1IwA43mcBRXiTGIjCapCADJfQo5kHD/eJAIqZAKyZAPoIMH+QAAsAEpkXw9cyMFBwBgJwIiUAG8wIPJEAW6YAlUiQzCgAxOYAlsIAHwuHEnGZOkNwQjNClP8AI3gJL8yAmZKAVVAJDypoMBkAA46Yw6qZPjpwAFSYcGkHsmYQOuloHv93tQF34VkAAJkA2HmZVTeZXI0JFUGI+a+JX8aH0t8AQtMAQmeQhpSXcqKQU0WYc7KZAEGQA8+ZM52JMI6Yl4KY0JWAAmMQSmciN+CIIVIAE8eJvJkAHtGAUgmZWNKQy6wAIOoAOKYJJNNYYpaX0vsJxNpZn82Jx6IAVMcGw2+ZMFOZqgcJqmWJd4eZuz5wBHiBFF/9AG4Oh18ccGyQB+yZAA4AeH7JkBaZAB8ikMjGkJwkCVB6AKQxCZeqAHh+AMPwAGL6AITDAERLeLmuifdFcFTqVi4nBsO2kAncCTAeCJeilvCqCQcLihbxgH40cAioARVRAD4Uh/IhCFTCkC6ymXeFkIySAMUSACU0mVTkCfwuAEyMACiGicKnaGF/dYf6UDYrUOSbcIg3ABBWCFVCAFxbB9O9kJpAmX2WmXnsiTOqgAhcCicSCNBBCeFlEMBVBww8eUCRCVaRAFaLqicmmYupkMbOAEGSAMAiAMWFCnwJmNS4V6G5B3z0YAfuoABRCoDmACgCqoDoBi4jAEbrB9PP85oaQJpVNqpRMKpVEKCaNZoYSnChhhbEo5pskgAufIju1omGtaAfGZDFHJm1Q5BVgwBffpBBJQAMEmq4iqAxdnYpz2W2bZVHq6AWZFBe/2k1ZKl8P6pJ0woQrZCXKpkG0ojQDAlxVBBWhwbOWIptaaDVGQAckwkFdaplGJqi9alXQqDFNQroLIArinAy9ABey6VGZphjdABMupCBeHpIBKAQ6wncOKrMfKrxJ6rAeprAkACiwqjXt5EeJwgKMmASwQBW8qqu2YDIUQAJ1gndmwnqi6ANUgAAJQruQqAHXaqkzJZ4A6q4F6sgXgAH6qZ1InAQ7wshj6qMjqjMc6kP3/6owBYKkEmaUJwLOkaQAFIAUW4QY2uIHWmgYd+aZRkA3ZMLE8iZdvGJfZwAhTkK3yOQUciwXrKAIK4GwEgLJgWwAXMLYpq2dFCAEOEJqNOqmj+Yz8arOkmaWoyrNd6wAhWhGOcGyQ54HJgLTruI7Z2rEV0LWnSaEB8AEuiqryCbJYgAztSACqoAMa11RNZZyUKwUCqm74qnQFkINQOqmSeqlP27YFiao9S5rHQADaiLe5YADfJwLymQHIMLuWYJU2GgWDK5AKULMBEAYL4K3ZkAFT0A0CcAaP8AjJMJRnxQQaN69MMIMHKg6qgAbrkHcQgKTch5cU+wAAG5eGSZCf/0upO1sIF6utg0t44mAROtC6S8CUOFq79WmfdOoES5ChyDqQC7AAiOutH1CuAkANj8AIHxAABmC2K+unz3aDyHYAS2CLByC2BSCs/cq7cjmQPnupBJkNsBu8WZqhBqCpFdGkAAB5uuAEM9qYH5kG5DoFg1u4A/kBMJyePdu/rArAMPyGBFCosjq2Y7sIPoykZftsF0ABEYyQk2qd3xuXFwy+BdmzTCuf6/mDB1sRnNq+WUmVHduY7FijrIq71/iTygrDH2CY6/kBwkunUyDAXduV7NqgmPvGVPAC6nakDmBiRWylYCyaLZrEOEmQYVAI5CsAjFABAUB1rlkR7zbCEv9AlZbQqq5KriDJqliQAV1rk1BaCB+QDPsLw91QrtSABYI8sAXwW8yrbuoWvRfnq0hKAOuABp1rxBWbrKI5kGHQs6Q6mgngux8AslOQpU4JtENLrX5rlXWKlUorvKBcAaBQh6IZBh9QDTH8Ad0wzVibxjCsAMiWwNrMZ+LogaAaq64cb6V5k7g8kLdMmgiAAL2bvxubBmnQlLbXpRWxB8c2AH5rn3XKyIHbAP+bDRlqky/MCAI90NXQDQ3wCGkswOtpAIA6xCbmw4uABncnqGZbAK6srzRLs+VMqhUcBgGAAPk7tQKQBoXpwZBbERewZ/ZclcSMwuuYAQdNDSycoc7/iAIIEAYF3QBT0ADdMNAC/QjTnJ6jbJZtLAXReQMvMATMKw6DsLmuPH4Z/QAo4Md+XMHqvAAf7bsbKwBNW8G2dwEVcYAkfJ+MjMJsMJVOwAj/ewZRQJo/adM4bdBnINAfIMDVINDdsL+QG70H6gipLFZogHd5GM5RPcFQqs60jNjem8sLEAbE2wCFUA2FgKxTPBEF0Klp4ART8Juz27hXaQkC8AjKoAyMsK1gfNPJUA13Pc2M0A0F7dPQnAzOps0LvLChJgJv+sBE7LkZXdOXGgY3DaWGWb5qfQYNIMBZaqk/eMgToWftC79XiQX0iQWfrLWtSg3KQA24W9MIkMt1/53Trq3a0NzaPV0IDB2oPbwIR3eyKgsA9yarBJDHyTqpnYAAKADXwJ3Ovpu/hUCnn1za1VDB0gieFOHcIgCSs2uVjFun1f2/1EANTjC4nWDTz8wIqt3TOj3Nrl3XmZwAXaoIu9pU2FfKTL2nDgABFy2sCUkDMoDY6hwGvgvcA4kAkp0NDi4AKjqxkGCpJ0eUzd2pi3mj/v3gDx6yRA6jhAzX333XjPAIxavhdB3gBoAGOnBWROcIQArYeHfiRHyH8W3EMsC7wL0AO57ONx0GjFDkabCef4yTCnAA0IoQOqBnwjejTgCyRJ7nrUrdDx7hoADXTC4APS3oUB7ejd0JVf+XwFA3ALcdqkWIvQlIAGDWAQCwpThbCGSOABNbCPu9APzMseuZAU1rzm2YpBKhCnR+z/a54Ay+DCHL54wgl/UN0qvd0xsu3g0g3mGggwDwtSn7ssCOwEsQBUVIAfGdnQ4AaD6gdzeZy7SM041dDZ4uyKLOtG0elwqwBPKcEG6gd/a8mLPL6nye5w9+BgP75yiA089cDTx94eKt2vkLCgCABom6nKVM4oPgyrJ60bZnAj4QAiG0ApQeB1g6kJYaBk3Lzq2N58KgrUmskASQvgmR0gYwfOrY2dLN4NRACMtA5KOtBh5dszft7uw+zbju2jAOtKpAdEL6o49FAXgnq/j/Gm+k1gEc4HAngAN695SGSb5TK+3sTuQCUA3Z8LsVLAPyLvEIcQGtKwFTWcySnOfLwPHjPtpnkN/prLGq3QANYNwGreHinckioG+yGHwM7M1R8LVoawCvN3MTcAKwI16N0AYvu2fgJ9L/uwx6n8bSDsiFgABI/wAgvPRNrwvIIN3RTe7UoPdVP9pYTbE2vfVcP9fTnOsFLe1hkJ76trIvi8BsLwKP3rm3l+wI9nwjAFZE1lw4sGdpkA0PrvcQngHVEAaQgOmB/wA+jhDvZgASMMxGrviKP9rdQMDcSwP5y9Nfz/WurfWNTcAQELlER+IlfgEvWwBE3OsOgGorkCmx/5MKdvD9diAJkjBiBPB1GYAFen+jom7LFLvMD8DcB/Fux7DIGP/q4774n/zgo00K5g4QAUDJQLCgWrcGCBOe6datWrUFEREoKEBhgypVgzBi3HABQgEHBS6AbOOjyAoNKlQ8GYFKkqRUMUvElJTFgQRhy5ZhESYsW7ZCASB1AgXqwQM0UJQuZeomFy+cyJBhwTKVKhZqWZURooZVKyll1RB0QoEAwUOGDdQ+VNsAYhgEARQoWHIAwIEDSyQckCAiiggAFSG0aXQSZcqVT560eBnTcYsVJgYg6yo1A1CgRUEZAMDUs1KnBiRYsiTsKjLTWakqI0UqKzVlsQmdqWAABf+NiGrPqFGrEGLEBWESJLMLgMBxAgDuLoniJDAakD58nKAeQoMGxYufSEKFiqYtFRMOWJrqU8DlzESPOfjseVEuAyKckMci4CpWqllbK3sNuzWjABAIw6AGziiwt4ci+i2MMAwoYINBdBBnQnE0ogCkkChIzoTpTgjBQxVGaGFExl7yLhVUwjtAF2GQOU8AoBIA5RiiDLigPabeE40006YQQIAp8OuKGlII4e+12Eh5BK6C0HrkkTOiTEgtgwwSzgEKLLpoow0+ciBDBwAwYQIOqPMQuxJhcsyxETiQTBcnBHgIqACI6oQzCnBcSsMdyUNtCmp+fMQr1rZwDbYkjWz/IAEBFSxwNzWiPOOhgx56ZAon0tB0gCU6rSANXXQBAMsCOuiAzDJPuG6lNNdMRRISNBBvACeyqYaRQgqpoAIF5AJgAz2VuiA5WkmTaoogu8JKmWVI2cJIRBNV4wMmq3n0DK12k7ShKAUozjjl8FqigigCu7CkVE9YYYXESJSEMcckGUGFE0yQII1sMhAG114rWIIXAPIM9gLlBoCzJ2GCvEqrQg2NTQ3WCDG0G4kILFANiB9WRg1qOKYmGQgglFAHHQbZgAIIQqqoJDLP1CCEld59d8SXYJLkCVntTeNHAXDllVcFjgFgkYGJHYAFS5xI2L77mt3i6WX6a1gNRhYo/2gBtxrIOOPYulaSgAIgoACNjdDwsoCKHMCh5Q81YFcxmWuOF7IJMBjAPmqWgbEQW3/KZq8C9BwWgHvJE6Y006wiUidCCImaYWcJIcUtswx6COMoN44tWmXOyCCDCvDCy68Myk371DJDUF31mOWOyY5Xn1hhAgBo/WkOKakSwDRh0hiAAIE9G1wCJ/RVmKfU8m7t6S2i9trZLR6p2lGtu7aetf2mMCC55JS7a9fAhsXAgwk8Sd26mN1t4THZ6+4rqAQKMehHYfTV14m9khKegAPSQM20+qCGKowr0hbYsQX+sAZ7T1PGI36DtShB7AzXUyA1lnCBQUSoZBoxG9rEBv+ANByAfOeD2Qhs9hJ43Yxe7suVUOKSgHz15Eef6x0BVOEZN9xFArpAnBPmk7xmFYkdB3TN9aCnDEYwaAHdgBKiOOe1DBAgZFs6mZfURgEAmCYN42ObdVriqlTYggEq8EQHAMCLXgUgInyrH/3sk4Z7LUF/S1mEDn1YvPlIZVmtaVyRwAKbaPERLBQzCGy4RsHssaAuolvCzkQVNgAIYBmEwMIAMMCFGqQuRN1ZEyoYoAEfYOAAFQhAAga0gFxlY2lME4AIQhc8YekQTknzIVZ0wqwkRa6Iz1PG0ybXgIhA6olgsZ4w8OK95VRABGCDAADy9jTHDcAYXCifJ1RFAk7/oogBIegABtAYgFJCAhKoDEMG6hMo+wijAp3xzB50mAY2sCAKP5Eks4IIPV9aL2/MMiApeGMt3Rwyl/sJWEYymMEOehAAWFiGAYdICEtIAAMYmCaZrEMCMWrgBGY8Big60YkAyECckGAjFhhRjfNkw0GficFdBtCXZAwnA0gCy/KYh0AKNowUDsnaxYzYmtZUQCRa2kCXQII2LOZNYgd8aFUsOU1rWudlZQTAMUR6VRlkNQDZYESgChE/XtzoM+7Mi1+SkS8BGNFQEjMgTveTQFIMcQtS6g2kMgbUAi5jCn8RAadYwII4HcABzWQoIYZ4WLkuw5Lki+oJPFG3UVZg/6RZFWkA5CcAalyGIjhq6ShFIAK0Lst6yzuswxTotWexwzWU6kYENwZUyTkMMMfxngF4sQQCDBYAyJgkYktLCF2MLwiZ5MBjzTgAEfAtV+KkQWXDgNJsVIA9OHInAHZVgc/lJyvLSJJDHyo5YsqGtEZ6xFqsJalc9pEaDhBZBlXREbRBkrdx9e0Bm7dYak5gAt08wEuV+dUEhFSkkAhDITKQDAKItT1k3VU2MLtdiTWucd5lB3iB+jxnqTZSPT1v1yQMlgNUZGxoyBKGIFlYCle4SI7bIkWNYQwMSAC5hShwMloozqwigG8GmGN7WhofAE5ywo5bMVsPaOHRQk+upP8w0G8AqgbJ9bE11IgCrzrVKfkEppk5MaxvEUiNxu3Edy8dQBr8Ir9qfNWyOBbnVwMXLHc2kqFbkbBOGPestkpOyHgt4NOGCBYH5sYtd2UeV77lPbyAjWAiAHN92UENSzDUzjtBBhwrEFPlFjhXCBhpAnjRYx/XThf5iZqkGbdUuT6Lzn6MMPMO6xpgQkQtd40tKaIAgYxw6UJha2YFBKDk0i7jsyIwZ5gVqxwDKCB+2QjOgDidVQUQIFhKCdMA6MNQW046tYiN8ofBO+FXd84hucFWxKApALDFN75fgiSzq3GGpYJXGU4QAS8qIIy8RW0AxnEAAQxQAfnFpRCQqCz/KN6spyoUgAATxYBy7pWTqOmkpjddsS+/zVaHGoohlusG16AnuTM4gQUiWEJf/8pMAARlAWcQomkDNS5V2lkXB0DOGUMKibgIRS7SnnYW1vXzExS3AyYgXBrwLWEjhznKRZ6wn59GjSYDdDc6JYUCQgKBkYAkt5DEl6zj6rDtnicZ5tQJFkLoPV50gtOQKCWvVjptJgjhVSiSl2JUsAIf4IB/2XjmTZG+4iJDM9xRR8jUGxcbAkAog0XNEgSwDkJd2KoBvXz6a6L2o3xXJQ11+Wb8gqLM9UxbKUOoQx1SYQHUr+ldTyiCA46RjUm6Gs9/RzrGD6gMATyiIQfphiTx/7rMfnfvOFcHgCXSEIUMvPvrkgNkf2xJFWEU76sLsOxmAjMI0UNBCCWogy+87wsUnd4Cr2pBIwigAEn2NtXP6uOHSUtEakDJLRBprS7nTfJDM7N/xZO1Ggr9x0AxkN05g6ugn2SogAcggFyIAaLJPiiYge6zABiAAVQYARKAiZlIBTvIgjYAAPRrqPqCJmJqOlT7I4Y4JYPgmilQNDTYADTIOpEggCXIADnJjT5znMvjGQAKFKVxAgcBNQdkhtNDBVuwhe4ggQuUBNixAyFoPQMoBJZDLKfTMyGTsrZyDYdgECVSA6CKIrFBGQy5OgIgHjmBi5U7AwH4sKxwo/P4nP9kwC000AEHbI8SsAAitAUkREKXcAw7aIE2MABQmAMQlEKka6gCej/HwYKEgIiCYLnNobnu8R7i2xmTCg5O44wliD1V4w8giantwaA5xJE6sEMkfIVX0EPvgAk7kIQiAIA4gEJUSzW2kpg+27YKCxRG+ACzQACWm7JR+RKV8aBhIR5qmAJqMQsDcAAMSIPYOzIsoLmQWARxCEU9KT07tIVTNMLuSL1XyQIC4IVCSEMvYz+ka6uMO6Bl0D2ruY0G+LZk4AwCMAFgFENecIL4qxoBWScQYpw/YwEgpMbPsIIZQD1SNELHOJGYeIIwqQBBjMX1qzAJ8zOmusVuCINOoAH/3NCGCBMGzkA044Ck/kENYDKLQjA6FKuwZUiDgwPI9pADECDIbAIjm2mBUDoA2OuyEISmpbqpw9IruLiNBcirEBMbx1OZoiQc1BAAiWCQo6szLBABBWNJz5CDUvAFO4wXMBK/V4kMA8iGdnQ0uXrI0nooasBHGmiADNuCDOA3tTFKCBhDXZAKytnFMCiQZlmGM2AEoZLKgBzFIURImajDDBw/SVgBM2JIh1w/2wNLQpiC35g86NGreGIBCdgLEwBJCWABZNg4BMBIjLQWOamGneNLptCDGUARjMqmOnSMGchAx1CBw0xDh8Qz+wpLR+MKYIIgtlqGKMiLzLQEFmCm/+QYDcqghgW4jdu4GolAgU4AgKiUSioQgrrLQ5coAeuMiRk4zTVpARwAgCUQBnAjxFQDy8MiBN1ji3gLoQNgAap4pAIojhbBijNYx+QsCLOgAQQwAAggzaWgghm4GQvEJsewzuzUzsfoTgnQxPBkKkpSBvKUK2UYt3aUGGoYFQLQzJlTGUikj6wQCxQoC/zcRRnohAdYSdIUSJawQDVJhRLIzuvkxicwI12owpvKuIgCzwc9IIZ4NwnDAgDAgQ7orwOQR8ejuYWqCtigmM7sTM+kARSQAYPjT88QghYYgSLEQAJ1DAuYCVSolwPAgggLU9mjBhZoqBSrL/NkhCjcAv9qwABTuZcDwAEc+AgL5YninJT7bFIn/Siek1KlOE2aqRk7cM01YYC6GYAqdBwjsT2nSzHZO6BL6Qbo8VEcsBtLktN1eMt+O5xREze4wEgmJQvmBIAb8lMosIEZEIJVlITxc5UMbBMTWBEJozMxDUFHk8hbfIRm4YpRqR0W+MV1WIcvyaKX0oWscEwEkIHm0tM72U9TtQI9eAEhmFaamTsWTYUR2KhlTNTai8jyrE3ybB5dDbPA6De2RJuQIBzlYAFAwYKKRIDb0FMUeDtThQIweAFrWMUUgglUeAJtHYDC6taIzDhcPVNuywoKTTyMWIQLGAmxQZua2yGsKEMmbVL/FACFgKlXpbABVKXSlkDCTdAATzCG/gFT9uPWgTVHgg1X2eAKG3KECXEEIGhYj4iv7pkM3bHE+0TOTuAFEzVVa6BSJPykE5gAYzAYMC3E2ps9aHK1iSTPIooaGxKHKqiCCWnYF8y67inZ+mDEPM0qorAhjVUKPRiCFngCevEELoixUQMzgSXHiMQ4pwVXLxMyanhZqxUHR6DZhkXX7vnOrhCGamCSZFVWGuiExBtbpbCGFlihbnq42OtWuH3b9ZtbLzu8qaWQvb2AF/wIrQsXSsQCsRBRUIUEUlVcKIjWLJiAWMVZrDC2lNVJyQ1LngTLZ8GCzI3ZLEEDhvXcmjsA/yfAimzAObNQVk4LABtBXaUAAn9z3Wyzs3KESMmtUZ6USO9qHh9VBQmZEB24AItQhc71W5fCrOHFOebCDeR1VuUlg9e7j3yD3oFdWglTzKaz3jH9FQoRh5mlgEVQhUVYhD1Qt+QAXtQohIrFua86hp/V2PdQAADCj6tA2bfNs6WdSNl9Fmo4gA3I30Fo2IxIgkXI2gKIge4pnGQQsBzLKv1UXqV4j2PQl6lQjQGC3yqE3zC9YZVtuodaBgnYgO3V2z24AFVwBJkFX49ImYWrHUsQgTq5KoKD0gJQBBbeg1x4PfIotYWZtElTulMTWG81R7kiBAmggEGIWSAI4oyQ2f8kqCIvGWBNqQCPoixxOgYCcAQWjoEqdgIBUhZS02I/PrXJxTOdRNMxptqYDeJFGASZBQJVoICaVTiX2jw7cWJQIIBpVF48VgD/0aMsft4/7uJyDOS5JYQ0uABHUIRDvoBEllmZdWTHg2QZi4IEIIo4xjEDKFXUpWJeSAP64GRTMzUtrjNQnt0QTAMIEAdFsNozVmUiJmIgILG+DRMZcyUF0IxOECfkfU6NxeNjEAGj0yM+ft/aq2Gl8+Kd9DKVLGO9TQJEBgJWdoRFaLyUCRNPgeNjoBEoDYBjuAAiQN0q4OZGIg+lmYri3GJu5VbZrWCmYj9hcIAhJmJ2JptmXuRIrNVa7+yUGbnnoriTArjksXUEPLath0OYH4m4M/BjHJw0ZknpP4ZdnVBJd4bZM04CdUZmq32vouqgAbatozCAozCKAqgClgwIACH5BAkIAE8ALCUAGwB1AKcAAAj/AJ8IHEiwoMGDCAc2WbiQEiVRlJqAS0ixosWLGDNqJNhQFERRdEJCjChqo8mTKFMabOKxJZ1Pn8aEQkIzJhI6KnPq3MmR0suQn5Dk2EG0aNEcRhw6bMKzqVOKDz+FyhFqKtEaNYzuwLojxxiYI5+KFevzUw4kQYVeDTKB644eWHvwoAoz6cSxeFNKKxV0KhIjQYdu7THB04QJPXpwWHyiR4gcXpWUkpO38kYYRyBr1nwV6+HPNRSfaCxXMA9fdy2rTigHhuCiWGPD/dzBA5fbijnkDsHh7Qlmq4MflBNVcBC2Hjwc98zFg7HkXELXaOuY9+J2NoRrF7iX79DjE5Ir/wfPpYMxE7U9fL7ddvHiFTO2a5dmRG2NIM3F2wbfwbz49cl95slirWQnn2rg8GUVW8jpd1ty/fX32WH5cfFZDyfYcSCCZX0XhG0OPhihhJ4Ydlh/HtRW2AmSbGgZOJQA5mF5Dk5YmA8cnLDCCidwYFiE6k2gAmUu5tUEJTAJNt2EXAyoYzvtQAEFKqlYUAIqI2hwQngSToBdkXnBCJhaIZxQZpk6qgBFKvnkE0EpEcTJTAT5oKICBxNEyEUI0oCJVy0swYSEEi6QQCUqUq5ZQptxRsDMo49GYAEUKxhWHhcngODnWHJII8onRhgBgy22oEJlCVa6mY8vrEYgzaMgRP9qgZZ5HnZCPpuKtReooppqaiolBFvCF75E4IubzICgrLJzpjJCpR3YimuuTvH1FwwwWOCrsMFaYAGrxTq6bKz5lPAsnv1xUAK1Tn2hxBi9+vqrsN/6YkGjyY5LpyQ8CtgCu035coQSdBhhKqmlolJCld56Wyys4zKTjyR3+gswT6ik4AIlX6CCcMLCMvwwxMs2q0KPh/mg4cU6pXIEDBx/XCrD3qI68rixxlnCyYt54kN8LOdkgQtKODSqLS6QioqV3poabr7MRurLCIv14HOLQatkgy8bU+LC10krvbS2S7uJL6Rz+iLJCQNysMIoWatkRQSolEIfAxqEEIIGKjD/kLAtJDAwguC/WsComxaoUKIn/8adkjzMWCANJTBYVyIHeyuNdwo97q3BCIoaXkIrhnmysuMo2cDMXi50wQADKuQdgsao2GsLA3qH8MrSCzc8uo8nAI36STaAIMcXraeAZu4uSM6ML6jkPWAII1RpbLCt+KiCgcObZIUNcqDSBW+2rqBBCl3AUEopzJjLQAoatACFJCXEWW4Li6nADJHdaySHDTZAxSvOtzcVtOJ1LoDBF9iXj1SkYmnHctSc8mGBFphvaRFITf8sMg0rKOtKHiPBCFrRisG94l4RIFe95IS2iUHhXr6wBfc2SJFafO9/dEMFCQJXQhK8whYohJSx/8IlLnItzBeP8sUMaYgQDzKjeNKwgC1e0YVXjGAEOwTiF8Q1xG+x0H6r8laclshEg8zNF9KQBvRs0YWkWTFwWmwUuIgox1aJEQRWKCNF5AGCe0XRh1V8hQ9f8cMtOmqIrWoUndrkpi/ci4x6LIgVvsUMI7CRkITEGwNO6DBJJbJVrKoXq7aYx0gmxAr2YsYXSBXILhyBcxrYoQZqZy8igpKC4IqADUppyuFEjnVIw2QXUpACBpCgYcXqpCLtxShH8a+Xw3kT5UglzCqWComxep4YjWW/hQErH7uE5iklFkWPga1QCbvXshApx3xAoQUzGMUobHCIQ/zgEOI0yCFmYP+DEuxwk4QEnAWyJUFu5vJ5+WiBEF5ABSpIQQpguAEY9JBPgljhEDbIxwhe8boq7hBb2SqWvURZrHzMIAtCIIYqVqoKHSiCCD+oqCRBkIpNvg9+s9PA6xgQQp6K0kpZyIIqNqAKNFAADYNQBC9lKhAbOIsBw5zd7DYJxIZBoVQ1C1ZQicpSVQziBbVgakGYAYURdMF1O7VFSBcJQm6lQgVu2ABXVUEMHYBVrASxgSRMmElrZiurDnRgsFLRCrkOlajEKIMUworXgcwAoML84V+55U1glaAFcs0sXRW7VLyOoqw+BCgJbMGwkFU2WC3IwgbQMFRiDKIMVGBsYwXirEH/BpRKNQusbrG3gaPOVbGyne0MLABIjmLVd7oFFlBXq9mWSkEesx2IJK7KUZ0G1AK6bYEkLLuwFfSWAhTgKmejK5AW9O12xCym32wxvxa0wA6WBWoRwIuG+joXuuSVxPmO4Drl5Y5vJHxvt6y0giLU17fO7axY5VBT/yrPPZgLgQoEjCphFfio9d2Aa8GAz9mCQw4W4Kh/c5cj+I0gWDNYFar45QbwIngQN5DCbKnQqRAf4ab+HU3mTvUtb0miCHGlwAXAu9Iy6KAMLxCrFCRht1G58pXEzN2OUUXBVdmhCEKFwAUgAAE0aNgBbaBAEYhBjDwIAW6RtIIUzItGVLTu/31HgLLyUrCJqjaMkVloQRm8ygQmOHQQDgCAoDFgAhw0AsuuwNoGrTADC55Acqh4XQrkHOW97Q63hmugCi4c3s1CAAAGMMAxeHGAAwCA0A5oRFCHkAfUyUMKeWjFChZjgVJE+n04fp/eUvBDKlmWkc8qAg5w4AATCDrUoh71EkpdagAQoNA+wPJCL/a/y67AB5+BQRT7ptP0auDb8Nukr4Ol4hFsOrHEoMCxjyFqBRzD3crmRahNjWocqCILrtjUIaRA2GvnKUK2kEY+2hGCTbxuE99OuE5HK9hFNVADkpjBC27wAnHkggAPQPYxjgEKBShgCUsQwRIqwAuQN5vQOP9YgQ5cpOa39sgTHTCBCTAAgA60QxqNPsG38QZuvVnXUIItV5YkkYcXKGIci8hFxjUOio67++MVWAIvpg7yJQha0IV2w8qFIw9Gt2NLJzI2AEqNgSGNggpZSDjCEw4/gxuKx1AwYB7EIQ5FVCEGAFi6ATK+8XeDghdRr4DHefFxk5ec3iZoREtVY4NRWPBHMzf2ACTQ7BWAQAqHeEEW+mZwnn/b4D/ErrZUoAIhUOEFREj9IjCO7KZzHBQBiH3gBa+Aqdt+CaMWtQEAYII2qCIvHrRDK7ZkHgw0ewDIl8AAMDCBL0jhokLIwgF3qvDXGYq4CG/FKCAKhu4nIe+6d73/xxVQAcGPvPzw/jvJecHxje8eAA4Yglj2nQoL5mnmB0i+8vV/gA7M4PnOIAXFMH3GVF06ZUymwnOSMAp6EFE3cAN7AH6i1nTjV360N3Ljx3599261VwGgwG4AAAFOoWaN1i8xZ3zIl4IqiHwmkAoM6AycAAZlQEJYZCoi9DqCxHPwJAUN2H0QKIETWIEJMISCR3ge53of+IFTt4EGQAAbwBOMJgmyBnPGln8rmHwqaAItsH2HwAk/cAPSt1G+coMMsAnZ93+H0INgQAQRqHdNB3sVEABDSIRFqABvmIQb2He7J4I5cQijYAfncoJWuIJswAbIZ4jIBwArkAdUYE9e//gC04dVtmBuCVd6POiFekAEEYV3fHeHoJAAheAHflABCUCKtMeEr/eBG/gADqAS+/YCFjRrMQcAKViIA8ACuGiIuFgOhmiIFMAEEvUDnMAJehBrIzA2ZWVABrSFeiCMxDhRNxADBBBqD2AKbxh7CeAHIpAAdniEHeeJrtd3oIBsxHASF0UFseZvHUBz+zcAbFAOuCgCuGgJllAOvMgGLHAAqjAEmqgHw+iFebBd2jJCpGdA/9eMmKgHehCN07hxpvCQptAJAfABhRCHAWCHTWcA3wgKpvB6G6eK7seHGmEFo5AHrqCONHcAIOeOyMcC8AiPLOAEuwiPbKCP/Nh9zv/ohaMgBC1AiaTXAnnAgM74Az+gkC9QAA1pABAZkXJokQHQdNa4cRjpesmWhwZQAFuHEX+YWj7QCLNYaksgASIgjzD5jrw4k/bIAiIAAPv4At3nj//4A1RgXt82YXkwUXCJiQ91lKDmkNbYCaAgkXKYALEXe3b4bhKJh07HhASABhkhBa6QBV0pc4KmklWXjX6Aiy5pj+/oBPSIDMgQBVfAlkMwcTj5j154AzrQCnJ3Awj5j5n4AhXnABnXdE9pCgrQCQqAjaUYAIXAjR+4m0/5hu9GmBi5exSQEcXQBm3wlRIgAVcQnSIgin6wBk4QBU6QneUQBVGQAZ8ZmuUgAhf/wASmeZpxKYNASQXmOYx6AASq8AJloHQf2XSdIJiESZhPGXscaZu1d5i7WYpUCQAFkBGLUGy0KAFhCXLPKQIVMJ1+kAHYSY+WkJ1OgAwVSqFR4ABlMAQSBVHNWJQRdXpDUJoTlZMx6AhIhQag9obCGQASOYQXWZhQ+ZcBIHgdJ4d+UAgYeQwCihFEcAGVOXljOZYNqo1jKZoR6gTb6ZKWAJqWMAXIUA4AQAwc2n0RpQjiUFd1pQNcemSKUKJEqQdVcAFAym62WZ9oypu56aL1+ZCwZ5iwlwBrsAZ+YJwK0ISDcBGKgHcHsKBRMKQiIJrReQXciZ1RUA70aI/lgAwC/zAFT4oMEnABZdBnjnABBTBoJuAABdBpQ0UBEEABLnUDVbAIZAoAHKef9Rl7ulmYqNoJbhqnQrgGGSCKtAcKU3oR4kAGYwedV6CN0smd0ukH3JmdicqLngmaUwClUmoCBOBsn2pUEFAADkAABKCp0uoAmooGxOAIpHoBi1CbEpmqbMqqrTqcAWAO+OlxvkmnfqCf7HYBFgEGqiBoz3kFMEmo0SmKDDqED5qki4qsUIoFUNqkTnAFBEABg9BnfVYGRjYIg6ADTFCaL/BQUqAIKPqtGimu5OqiGwuYsFcIrCqRD7oGv8mN7AYBTFARQwCkAACdLGCW8Hid2LmvCpCNsv96rMiABQLQqFMgAFiADFA6BVFgdQRQAFymZfTlVUfGsH02BGUwCGiwCCuKAoWJAAFgtapasyULp3EIo4W5BnM4hO5mAA4gDhWRB3yqfCyADPU4oYUaBWsgeOU3hDebARWaAYwwB3nrs6A5q36wbIJGrVcXuM1KuM1aAGQ6geJqDqoqmL65AOjqmy56n/gZeyRbCGDrgeNIAFmJEMVQAMYHnZ5ZDkpaqBmQrCKgrnJYCHOQAR/wAXMwp9UwBz4rsFPACEPrAHz2UlVAd44gDo7gCEAABEkABKSqZUNWm+RKmEwZe79pDoyrqthIrqE4pxXpcez2hBThCGkrAYj6vZb/EKGMOrT0ubofsAazuwYfMLsNcAbUcAYCO7QEkFgTx4MPBQb2q5D2ewNMoAP1lXG5iQDR27ixB71zyLgDXJiEWQgLIKuXe5Hs5pgUUQxpu5lNWo/DCrRDq5FOlwDmsABz0A1gK6fs2w1T8LN+oADOVrRc5q2LwFp05bAM67DMZaqBiaapqrEJ8AEGLMD4WbkJ0MDoG7tzOI4DShFAgHe84L1mybbbGQUPOqG0l6oJUA3VsAALAIqFUAizewaN2qiM8LemtsLUKriDW5nwp2WmWrOEiQBp6sEF/AGQK8DmUA0lS7mwa8V2bMcX2YQpmxB3BwBLnJ1O6rZQHAUWmrpO/yeHdazHehzC1BDJAjAH3EkAXlUGiiCbsjkEvfu0xmupRitkAOBxQ1gIjCuYhcDDCIAAWLzFH8Cvc7i6H7wAjlyyPFoGFBGfY2evElqs3NmkWBAFtPefQWzFsQu7c9CzU3AGyZoBBptY5EkFMUax1AwGisAEeyZkofaJQ+jGVBzE0NvItLzFc8jGJGzMcwCyQ8gLAJCnCaEKudCyiNrL1/nEwDwFS9CNmMnFazAHczC7ycyzJzwFGbAEzUqt2KplGRbDXSVkECBqnTCE5uDNL2oOchzOV8zA1nvHpozFs1sNYBt78qa9CFEEDtCnVyChFWqhpJsBLo0FWAC26rrF/f+czMnqzwJwBu6brI0aBdwIaldXuFfXp83mANGqkYMZvan6wVyMxXVMy7M7qyULCVzcDQ0wB15MsoXJCyJ5EKt3ABXgmb3sndmZATiNBRlgoxN5vlit090Q0Dvbszs7BwnQmK+lCHiN10zQu58crUbLZUgduSiQw5L7wRMN1QuwvtUAvc/r0e0rALIKsnd6xAgBpChdob1soU7g0jlNDc5cAam6vibMs2fQADl92jpN1wCwCEgmUd1HsQtpdAvbWw8dmBxbn28qvQgACZDg0a1syjv8AQHg0TubAZhbCB13DASQZAiBdy17Bcd6wcjq0nMA0xCaALad2DytBtSgBqX/zczt689z8AEqDH9GO2TMtQiZxVUODdGDPdiumqYBAAnm0NuIDbnhHM5Y3ADUMMnHzY3sXI7NvavQzbYwDcw6y6g6G74JENqza9Xu+77gfQZv/dZg+wEVYGrvN9TPSXmCZrQFIGoR2QkoAN9oKsAC7NHVYNXd4NQTfbX77d2XC7KdwG64POApaI+g+bM73t+gmbMZkLoSaQ6sOwft277efdUh3A1vzQgVAAAXQAziUAV5jaWq4NAFkOWIGwMTOOLxzZH1SQOrzMpc/NETvcr4veLVDdm/GQAy8IEGkJwDnn9MutI7jgWSvOMC4Afl+7rJXNoNoAambeRM7s9gCwAb/4BkVKAHD9WAm6ywZbBaMQCu9WniaFriYu7RczrHq4yuhWDV1IDWWu3mb24A8DrnA2CP2SkAP56zkdzj1DAFhDnkILzMSO6+AiDhVm3FT160Q+ZlRfXrhnXlFMDlHCcD743DJY4CswzCSt4Ns/zB6Bvhk6zVkMCmvFAAf2wQzi0BLDChxNqkOYvnsC4AcSiRCDC7k9wAgX4GtNsAU2DVDWDFr5wAyLZ7BmCZlNdsfy3iyZ6mJI4CrEzLIezPVwy9WLy+Ed66fBx7MhAABv17B8Gnt6jSOIvnywDTeB7JKZyqhZABkxzC7L6z313a/2wOBhADQDDlVVAFe1Zffo2t/f+ulPG91A0u5qyMzkx+xfjt0Vg97wd/yhJpdRLP7btq54x658sQ6sAcyXNQp7GHzN2w4u1e2t2g01fNwwawCFXwgA9FcSMK6TogZCFuADj8orPeCWi+ABZ+8ljswZvevu5uxSDropCgm3Fe2bsMzHcO05H86njuvk/f4L7pz+zu3Trt1m499eQtoL/u0GR6AcB+5ZYK0QF/tdDLpgjv8wbf8/Qu3v9sxQMMmFep930q1n3v95Es17kuAGnNyOyr097991g/9Yv9m3d6dSUncvv+4Z6quCR+rpkfe2POym/N7i2OxQ2M05LM8yGNpqBA2QVxqbxQ4Ds+7hv/9zDtvmr/sOcSTfVnoAazT/vx3uLm0AkGAAGX7Agr1VtbpuWfWvYRSQNXK/Bn7qJjjsVMftU8DxDdGsxpoIYaNQFzupkrlCCAjE6dTMV4UtFixRgADFTI4AQZMo+WypUTgAULtZMHqRn0k8DlhzkC1Mw0KOBggwbdFixA0MkAGiYvwIBRNITJUSZlygyiQKGAAQOmUKDoNLUTAhQIsGrduWBgNbAMvVbrpmbZsjNzqi0w1xYSxAcUL1pcRMDAkgxRppRjAcBEBxMHBiBDmNImtQwtE/ipRpDamcdnuglssJZtAAUEClxAcwEChAIQmlJAs+ECBQgGQEVkTUPra62QEJgTqLPr/4LaDc6izFCtkDlIkB6aepBrrkUguQwo8BMligQTPk5wmOABwwCTKVXOydDQ3AeBZ8RPmSI+5+0FH6L4WXJgiYQBA66IaH8AAA6nqqtmhf06a9duFEJvp4K00OKgDD5gqxBIWCvuuIqSyOUBBQqJQgQTVgghhRSoM2Ewk1Si5sDEzNlpsgbEi6y2ycD6wBwDCthAlQ3QsLGpzwpwoID8DLjKnP60eggBAHHSaTavcDpLi2WwmMOcBNpaQDYaTDEOQkfIoHCJ+04IgYcjjuCBgw4AYOGjEFfSAosoXvxOIcjOwCknsMBiCwECVGHCKKSOEqcMHYjB0QBeQAmAP/+CxP9tDgFP9Aqy3ZxsaIHfgqvSAQifSI7QAzo4AUwlwuxwguuQMYmwg0gshEiYAjTvDDVy+kBBngIwhYAcQytA189QQ41QUGSwKgAi+1uArPCOBHAOapZpVtI1CimEWBo6AeWBRSC8AIADJMBgghC6gGHcLhgIwZMyy7HE1JSW0aIbNz8gSzx65ezGTp5MrOaD5py74t8r5APAAQgcWKICYacK8j/c6hSoKyOrucI+Ca7oTtp9EWgQlGMIIOa4jAAAoBENXBh3XFteYUADHz4s5yN2D6RmihflJUg8NWClU0ogzckstAs4szFo0Hh04Ao/AghgP6xoQMGUTlwj0s4GGu7/qpo1lsAABxw+rLgQOxnkOMaPL8oouhHGNcIIlFEhoRUVJgBggJdNdddAAeS1uRvIHqOmMsteCwAACgYpo8+klhLUqQNEcEhhq6hKeOq1uCJQoIm/9WSCMpfAeI1oI1KAFwIosEgHBxxYIRVUYHDBFhhat8ACVEZohYPArjC1WWoIIYQa23ALbybzduq5LQUG1nVXHR3QTDQICFgiyq2msqoqnoQfEKcFKjhAcx8awQEDXgpZI4M1sJZ2jYkhEOKJLApYQRJbbHn95Nl9sSCVVrJoBAMJWEI7BnqMgqaWIlgdRDJ3mo1WPrCGKLAgCvNZggjoMzDQAOAK6zEHVawH/7nsTSZ4EFvAFbzVgQlIpwiNcIABdGeqi53PCQeAwBOKkYUSoKJ19dMhDL7gC/2lQhKtWIED5ra7g6jhQJYRXnhSlBOd9GxpMYLAaWq0gRltADUFG4wT1sCTqmClKmFk2PbklIEBYACFHFiBCrKQhSLgQHpOQF8FptUcAjzhBUJABQP86EdUzC5/+5NEC1rRssE4K4mEUIMAmCjCJ1bGNm0xRwAIsAFHHM5PRwGUFqMHAMc97oNMYxiRsse9bmSgUxNYgQZaYTtDrmAFjZBeAiBhqABUgACDeEEWNBQCDTCABIFMhSD3lwooEBEHBxDgSWZCwCkgqzY6S9GRYAMKAv9ohnmpcx7BLqAjUEZhDVgZJaIIRCCcyOlYFRhZG1vxSii0wJD9K+IBrrAGO2bmCUwowgn8yQBUQEES+yuBEFNxUGSq4H+DSaIStaCGKajlXrl5YhTzpa81NIcv/7qgAy5gsHJgYQpf7MkHUWAiAOkkkrCagwQA0AEfhEAFKhhBMuVpSEO2QYMSqIABLvCEIRTBB57QgCQMageEzg6hyWyZBEKqEi0QQgv2Alw15gRFnmiFPzG6QAyqyBnSeKZgS7iCEwTghwVYDysmQsBkbnNVnAggAyw4gAkm4IkTaICmN22BHezQAlc0AgAS8GlFxLHC+ZVAnpJAagnyUVCEDnH/BR9al0ocOhMBQBFFRjqPVlFgSTSoYhA60CSgFlc0ACyhJWJUmCnvBbE5dWMNInCpGlPYyla0gLGSMGpBDVkEExRgEIZtRCOyYIdCLtax+difQA/aAhUsE4k0oQlVUZQzOVWNtQsYnciy+V0AEIBgBSCAyEgiICB9cCeW4ewceCGyv3SgESdwZyuci1SkzkCyjYCADirChEYU4abvbEEq8vFY1jk3FYYU7BWwgIxlGGRE0FQIiujV2UNpZV9Q4VYFl8AlghFAd7xDxhyySk4U0OCttUnAwNqAgxTSVwXvfCcU7uvXBa/AB0UoQ0WA0IY2tnHGqMgHM/IR2ci2osFY/4iwQQxkIINIJp3myUlb/AMKGamCRle0URVTV14AqEsAtkFxGReQ3UL4pbjSoa9eadwCG6cCvwtWgQ/cYJEN4GAFRZClCvpaAt/qFqFyji4ztTNhLWzhoeahzFqQdSjrdUJGWFQFMUYbqKaIlbxLQEZCqtHBqUjtRFfNmm05QF9ZujK3NzXqQZO7gizQxQSNuK1udWjjmhrU1a3AAQAskaq7RdULW3hMRCljm8plJStQ4gUv7BPe74bGiBWz22OOpNa2CiRnA+GSqfU64xrzlrdIdbU8W2EHi5zNuLrFNU2hgMyDWqAEduC1Bt11N3cRYguKnhllzvBp4/WHLMkTGf+33IPB8pLVJs46iU74I0m+0QQLV/DLGt38ylwjtLHzvuko6HIBN7iBGPNsRTDfDW9AF7TeV0C0gfbtBS/87iTmsUx6tYqAaigAAhsYBDFoZKMNQA8NoCnvUyNctWNZmCYEPOFdvTRTjKNi0IO+qRQsksmhuwHWqR6B1N9dAnnPOwu9ZvmTn+y7LRCiSSvhbL5ew5YFJGAzYm2Klk/TlF0V3SQGUcO9yLJ0tO97GchQoydOvSG9jkDxCi53bmdgkSRQAAA82oAv2zhMqafCsQWVhAoCU45l6NvsUdW32h/D2ZpftBpnyMB8RDAf7xLMAe5xApOjCuUow0qJatgCzPf/vW8tEL4DHODAhhhQU1bLWc7mbkU+6BKDAhRhA1r35Tu7rnkLIFgSJ8DAAQQQeqkyKfy9T7t4RNii453oDEvQ5q6M+DzniYysEHbW7qnrO5jnP//B/9apNaCBXGOsQfureXo8H1sEIAg5VXADX5opgMK+Y1KBzvm+fZOqs1Aifdu3KBOhrkCprpiDPFEKpfA50yANGnEKIyqHZlk6A/EdfdO//FM0S8AALpiA4gPAzBu0QqKxErAIRQCCJIiBC1CFYiiCfgKmrpM6HWIAUrEnLCi9qMq3RCM/mZEMt9qebjCAzyia0OiV0wAne7KEu3Eo30m0F4RBmJMqLDgAD7ir/+I7vhyMJ7iRpTywCCJwAzIggCEEAvFxOr3yo/8jFfnIgGXoPakqw0N8OUaCKCgCC7dKp75bg40SgWeTPQMQASfgHSYrwxZMu6jqPTQcti1okgEwhgmoAS/RgGESoiGCGx9YgTpMt/C6ACD4qA7ogDY0POJDl+uoLC0YNii8vd8btofSrGNxmILIGdIBmi7LEefJJvn7vgjrxEM8QzRMu2WwBDYMgsMLJlvQIdtRgRXwr4u4gGy6gCA0AADAAHbEAGMwhnYcgHU5CVD0RBeswHo8EM0CC4lKoAqAAMMRByb4E1WAgNIYhEFQBdQoLxbonYcyOxfEP1CMQd8ZPHesQf9P6IEbbAe4caP3KUfx2oBFyIVjCCBLEIn4oJu6Wbh6BD60S8Q03LYWOcZkRAzKQwPU2JWv8qRpY4GQwj3Si8iJhEG1O4tycEcPqMEJ0EhgkqWPvAhVSJ1FGMm7gA+fXJd16bQQscZDTLRPzEBijBW1OJHhMQtKLDjv2gzy4paKmSAHA7+ZyMBhHEr9UyQs0EZ2NAYPSMoUKoJYO45i2JUZMSJ1ZEvdmUfeETbfUzShfMGX47cp0InN0j1qWIIdEQ3SCLqcfEbwwg6IFDbgezk0PJAHM4lySKN2NAYcKJvjKIMYaIMsQB20vIuyyoAQ2cSJTLtqvMfF9IIDySxpqkn/auCFy2yKIvCVgsEAv0gdkfHMFgw/LRCAcsjERNM/fkMJNEGJ+GjHGsqUJ4iBGGiBLDCigiOrFzqJk8g30dRNtYNJ6zwQqkqRy8ICCXi2ggsNMNOM2WOD+IAw0nsy+jQBAvDM/COE+bBNJkOJs2iSuwSAbPHORYgBV3ADExCZbikrj7hN8Eu7lqxG0Rw231tE7HomKMuA9mseHhENnISAwToAwRDD0APKATCBwECGXxw2LHCAoCMAjviIg2iSDIgR7/wvBgSuDiurrERPJgM/uazAwJtL38M9s3AoKIsCbzoNuqOAbyLPwPDJkDoLqTIIZ0kjFZRLLOjOJyCvxvGD/wzIgApwALkY0idQBSOs0Pe4AnVBE3ZZ0nuMyNL7UFFMw/qj0idbhiuoD5HBAI8yomczgdmbAmR4mbv5HZVwltCLQWrAFItQhYx4gGM4BgdQBTm9CDe4gFwQGV6omJN0grMkgFwABd2oSLDUTSWiy/1jwf/Uggz4MPvcDAKAj/iYPACYgomDUXdBiOxyuWFchjyaiwsgAwCI01GtiDIIwoQDMRzQ1IpwhAeQgQaQqmEExt/hvVAMS927vYeiRC65T3N0QvokrwxABgkQgSV1Fkcii1jNwN8BgA2AECCYVgiZSug7DQjJiE7QjaBkzME7gAwghBjMTUZaiTMISi1wgv+RmDznSVHykgAWkIDUEQFksI9M3A1qUIu1yFepogYAQFOAbdlMSY4HYBaIdMGKXYLeWczfA8VFa4CzIzaRwAAK6Br8aAofmIDAyFYJEAD7WAJptFcTI5CKLFkDMB2Xrdq5cIQCAIAKOIMloVkzJD0nJb9h/M0UGb0G5RxHNU4foA7VLAARKAcLJcQFLdkFkAEV0w2EwCeWtdqqXQSNIMQR4cR7zNne5FDfW4aEODMoOxBtvEUTGNoimIAJMAYTcIpmKy97ahImQYhqeAsV84puSAAFKAC+5dtimJAK4J1m6dpfXM+cDdv8mxmC4NkDQYY06prH3SIadVRVQIO8Szj/+tsNE7Nb2IAEBdDW0m3ZjDCAQkjQeg3KJ8XH3sy/JhkzOUHcyasi8BQNoKGAGRmEJFiELRUZ2yRZLFgLGpABGUAA9cWm4UpegAWCPDyGDNDEH61U1i09mh1KRevHBvhHngMCIFgEFSUG0hJBIFCFCF1LTjuLBB1e9U1f9eVX+AXYRSADMnChJRUR/IXOsws/h9W/qZKobqiACyiDKhCHKqjFDSAGcXjhP/kTR1hg5zGANWhaZ+kGrVBfu5WB463gUR0C8MzgaqhX1b1fKaWJwLXGYVsGLyILEy4DRZhiIIgBNBiEKshiGBYHR1CFLS2vCli4h+o7npBgpwkAIQVi/+90zRggyRue2yO+Xwmb406EweicgzXwmRNWBCL4QSt2BCZQBBV+YaUAAjSAPufJ3AV1luFNX63ohGNAAzX2TnGIUK2V20VWJEUaEQmr1OeEQWJDH3MAhT3m4ypeBEeoAkXQYkJOyG9iYBw+iGpAgPSlgfTFskmGEDBwhD3I4EJY3bmF4ynl4GZJWBCFOV1tiYlwhCkmglN2hBdO4UFeCi0buvgTAWlUOyeZElqmAeMl3VyeixsAgj0gAAVYg3rN5AV9SGJ2l9fNTSyIFlMoAGbu42eO5ixeZS52BEcwZB0hAIYFU3ud5fQNjgAA53CuiF2+4I1A0PQEZiZhEjgG5v/Qe8wCHcWROuh6/sELQGUVzmJWHgd+doSgW0sRKGbTMzFbFpJmTegnGIcYyOAEiNeSsJslMZB72w1NXlC5DFEXpIY1ON5UpuI9QGWQnmJW3mcvJi+ADt7qnZL1VRoAeN+ElhAA4IXzvM0fzelC7eB7vFFRFDw33SVVduaiTuV8XmVp3md/jj+WW2QsyIAACA6I+AmXfoKRfACsbtNOq2kRyelMXl3orUBljbmzyhNV/sGphOYUZmVpFul+7irn4QUnCOygDgBQAIXCcmkJWY6ZdoKYEADRHm0B4FqJXomDwOFCDbZDRNwrIGsqXgRVEIdV1ud8VmUt7mJEHixTEY8LhEiaW7qWB63agAAAIfkECQgATQAsJAAfAIcAowAACP8AmwgcSLCgwYMIEUqjJG1hQ0qU9kncl7CixYsYM2rcyHEgJVEgP9IZ+YmOqI8hO6pcybLlRoiiTMY08glJjpuhco4Zg0SUNJdAgwrVyIwSyZqfcubYwbRp0xxGUFIcSrWqSxulYiLJqZRpkCA1nD4N9amkT6to016UI41OWbJltzKtEWQC3Ro9euDlgLMkQ3BqAwu2cS1pqK05DodaukOv3Ql2OXAIQXkHjzFHlFyTA1iw56rSlNwcLbaGaU+eIEP2VIPDiRMcePBY2kPJz8+4g7ZNOhfs1695a0D2QBxya8mxGfcYkbt5SzkfjSyl+3sC2NQTiGv3cJ11Dx4heEz/vua8/EZw0kR9Wvo1+/bq24m3N47cdQvz+NdSSsr+9/uv8RWn2oCmcbBCfggiBF1N7Kn23nAdeDDgBNh10IFqnkgmRIIcDpQeg9S5J2B2E1ho4WqopWaihBNwoEKHHX5o0w50DTciaq6FsMKOKqjwmoomtngfjAii59Z6jZ3GmnccpPDECKggUsKUM1yDyAghAAnZCfkQiSBbMdV0xBEaMNAFAwxooOYIiFzjSwRvRgACMxFEcA0UGnhy4WobeokfmEfC4IILtqBiKCJRuunLm2/SGQEzkFrQwgkDejKDn39+VNYnRsBgKAwwXGNBCYouGiekc86ZjyQqcICdJ31i/1oeTZyC+qkFiIxaggVuRpBPnXKCIKyqiGhwwquxytqcEmPUiqgtMOCaK668MlonM8POGUEJT5zgQ4meuKJseV0cAUOnhkKLii0WjDotr9dcmy2d14ywAgerPTGucwwcYUQpntpCaKHU7npNr6hmC4Kd9n5LYRb7NpfCEaUAbMvFF6PSLq/t+vKrwsLWaQGe3nriw5ARf6aBv5R4CgXG0B4sarWPggznnSrcy4EPyaYcmAUuRGUExl1cnCupVlrQqMJ0eoyIj6+dgLLPgTEDQykQ2YJmmSQUmisiiLY7ZT4z5OOoyE8gt8ILVHtmNUTS2BKCqxmGwIDXUKSppgpPPP8BBSL5/OorFMd6om/bgklzzUKiuKBBCLBJxgMDUeatAXghaDACAyNAoXHghKN2OOKBNSQNDCScqebjKVC+6DWopEkZmzNLOYMkK2Q4NelpsRW7BnSfQFkKtlxTiuIj+Fg37R7fnjuXvAsmRwQkPA6b8BqkoIELFpQCKSIttPBEC1D8/SvZkswdwgxWRK+WDfmsO8ITKuxtJrvXTinJ2Nn6+rTmgHNfWmwAgmd17gmc81uuasaMGcygBGULlrCYYYHPRUASNhDgUKxgAwIu7GJd6MIIRoAxwD0KW4EL3AkhVaeZyckXGdRgUOokLGlYQGAhdAEDSMA5E56wToK7FhD/fUEtOMVQhi4BgS8muK4QdkGHISSBBVIIrCAKMXAliACi4tU+JLpEDvGSRilQkbonOrFoFrhW04AFLI/lY2z5aBcIOuPFlogKBNJYly3OhKYU8CAFA0PF63oFJ0Q8QRJSEoIDHSiHOgKlgA1BxMXKyIAUTCYFfNRYCfJhKl8gwhVUQIc39BAPMIAhHt5wJFB8cTwYTNKJacpMqGQ2qlKNwBVlGIQjBjGIMrzgBalUZUvgp7h18bBoUYxWo3xVLV9c4wlZIIYqVLEBClBAB4PoojBXYoVRLEyPAyMBCTSmtDo5cEolcGYLVrABVUhzmoPQgTa3qZIOggAKPESTE9WV/8Y3xlFXM1jnNAeqikEwYZ70VEkB84mmhnYNWhv728FKsM4NtBOevtRHQoc5gz1WMjyU+aOZupA6AE5JCFmw6EV7CcyNssQGM8BnH8t0t2gdzJmI8JyUXEHNixbUES9AqEs3EtDNNRRN0AqVqUqAqCi1oJo+VQVQNTpUlcRDCEaFpZnIKSp0gu0JG0CDWAc6iBdQtaocscIMnjTSKHYtSmBjKlMlkVIKiBUN0yzDDc6K1o3YQBJockEIMRYlaU1JSoYswl3RsAFdEuEOfe2IHOJ31KJ5DZ1MRYQk6BpWxuJVqmaNbFp3ZdSRZkxXYItrFopgV7G20xGKEKpoLSKEJ/9oTU1HdcGhyofIEqigs2FtbFn5OluL2KAFaiJpH/14BDORAEqoKAHuVqBYu76WCMQtroJssLkUaO+j4omNmnQq3R254QLohQBeFZFd7RaEgyDQWh/Bk5fvZG4E+4MgM4Tgijw4AghlYMILwKCH9rp3IPCNXXO9S1/xKnCTZHOFG7Lghp+K4wWKYMKBE2ID3/ULTX8Ezx8119s3XUO6KG1EIy7giAs4oAA6uNSGCfKCDjNDvlvzo2w0oMBcuZFsM8hCQVXBhEUAAAAEoAAVZuwNdEhCCMyYXuy2xoBNpIAyGtjE36QE4RTOIA83CLORjwwAHKygDHkorhXQMYPatiD/yiXAcesq6cfMeU1KgWMGkMFcBUUAgQBHNgAATIADH2TBFT1LKDpGkQfx9UgFUc7H5rLX0Ox5VwMk2HIKA/dlJijiwlUgAwEe8ABBHxkDHTCzK8RFz3gE9Ak7es2OIjBZ+h1Vb35sHQmmtekS5OEFRFDEDRQhalIbgBfNaIYEDnCAQeOgCId2JExhvYKSoWYCJ6D1DFyBW72pSTaTG6fYNgnBUppy2GQAQKkNEAdkN+MABlAAswfdhiIcSIOjoGiW9GQiE1jIExGQRjzysIIsp2kTq6OpuN81pXiEGQzBTjepS82LiisgDnEABSh4IWgMENoHRYheQFtVog6YwAQY/8BAs00wgRIIfBRZqF/CEY7brkkrV5t1uCkjrm5j80IBCuBFHBQACqD/fAnzxoADGkE1mK6TUiYHwLwPMIABNLsDqJCGHNAxhIKXKeGZQ9M4yWlISeg82OOQ+ANM0e6NA/3tbx96sucNAAdAQBXjuh2sVaRyqg9AAlVf9qChIA0rWCEeMZd5whUOV0kkTwgORwcYFJF2Y2O83XBXQAACEPclSCDZyZaAsylADC/loba5mwDKMQCAqrv+71YfdAtAgI47/OAGMT/q6nYIJUTRTwV5QEc8SKkIYgPAAOzGeNEVAAnOaz4ACahABZaQ7Ao0QwTWf3fdIbABVudH7yv4Vv8HAICB15tfAiJ4twlakA9R/kAPTOgRUhlAvydBdwRqasEo9OANb8RjwDHQcxmnfMzHedAXfc1QAUHHC9LXgJAgdIJGaBBjHn9FP7ljcipnfq7HAlfgehJgAk8wA6ikBz+ADrXFNc+VPJrDQ2oSgsM3SpOnBxdABqR2eUPHfAlwgA3YDArQgNL3dhoXdCu3Ac6hd8pjISoHeAPABhqYBldwBSIgAhLQAYBDBXqgB5zwA/HgCgg0TuXTN/i3CSrQAjNAYFcoecJWbKawhqbwfJyXAHCogHDHebyQAEBIC7SgcbyAZBSAG/EgCa4QfnpycszmemnwBmlgiCzwBsHwhFf/MIUQNArDl4W3h1XjlFMqWD9PUALDpwdgQAX/F2AEkAtrt3Zsp3lwGH0VYIABgIe04HxAl4caBwqXBwAF4Bng5wODeGRKmAaJyAYskIgDkIjB4AROEAyNeAA4EAHx4HBYyAlZ+AKSsGX4pwE98gRCsH+coAfioAo3UAaqsAgTBwqmMIs9mIp2qAAyAItER4sZB3fuiHwE4AiCsVo+gISsp4RV54u+yAZs8AbB+AYAGQz+yAISgAMzIHym9APQmIU3IARYpTd8A2YkuI3jgAaf5ggxYACkxoazeIAJ0HybZ4AX93OzeJLuGAfI14dqUQaNgIEAsGzmJwLDyIiIaAmW/8CIyOgEluCPU5gHVEAFN0BgDbmNLyAEivcEYIYODMmQRHABbqAIjpAL7MaG5ViOIFkIObh5ORiERNeOJ3l5HHmLaqEKDpCPgKePEpAMUXiMwfAGyIAMOfkGTmAIlhCXbHAFAOBLD0dgDJmFeoCUPUKGoVSR0AgG0wQEF1BqRUeO5ahxXFkIH1AIYTCScJeOKJmSKkkAg6AWiwBorkeTwzgAHHgFUWAJwYCTOKmTqpmTiQgAxPBLQ2mG0PgDJchfQjBgV1iUnHADQKAK6aZ8VpmH63iAhTCSm6cA6ch5oEALcbCGGmeDDwAAeJcWY/Z6UNiBaRAFVxAMLJCaxmiMO/9pCU4gl4x4AKqgCANmSp54br/0AkPwAkO5m0V5A0mQBA9Ai+SYcSdJC8pZCNmglSMJh1w5ko5ZjjIACmKAcch3AfGQFgWAAfrohKb5hFGQDMlQl4Ygl4YQnuQZl1hgCG8gAhQgYJ+mmAUAAdCGaEMQYENwA/TZkPb5meWoec2Jhxr3imEAoNlAoNB3nMjZirRQjrRAA7QgBrSIfAWgCGgBBA4Qk8MoAlHgnVMaDBhqmlFQnnHZoTgZl3VZnoaAZIC2ckd2AP7mA6qgA4gmYDDakD/gZ6pwAfEGh67onM0ZAIUAoFqZAIWwAFsZpEL6igEgA5AgBhdnAASgA2hBAbz/OIxPyALfGQwXyp1SmgEeqppxiQyGsKGtaQkSAGNloAMbAAEOcHI4AAGomqKDoAgEJpWLsAgFwG43SgsosHl5qKPVsKMJkAx/unk7ynm0gADHGaDQVwGbWZ1VEaGt54tvwISLiIxREAVRKH3JkAEZMAWamqlYsK1YEJeoyYFJZlBDwARMoAPEEFapWgAFgAaOMA5J8KqLmXF4GABhUJlCSgMIgAALsK8COqB86qeatwDVkA0ZEKB2yHEEsAho8aQH4ItOIJDN2qzFKKnYVwHJkA0d6q1xOQXcmqmMGK0icAAEYHekpwMBxgTxGZ/reQOO8K4AoHyu2IoK8IoygK8I/1CvQIoAeEqvAtp8u5oBhlCw6RgHAHABVlEMBSB1EpAGb9msBQmeUNgMcJgNPJmpHGoI3dqtcnkFySBoBFAAgEZmI1sAF+BOAaabTEBNBJB8d2qrr4gC+VqvfJqDC1CvO7qnqQigBcurm6eSRlsVwKm0THuXqHkFLBAFHXoFCrirc5ABczAFG2qMjisAArCtltChFUAAGyBgLzAOQLAIFwC2YSu2ZHtXaxuLNwt9AZCvN1uvC8CrdhsGcLivcZi3BBugQBoHBaBhVAEE6SYBEnC5doma3gmQTnAFb7d5ADoHWOsEGfAB1VC5+GC5VmqLRAYG6KCQYTYEVeAIqoAG6P+lrmQLAcfGC5Cpq3DYugvwAQQbBUILh3kKoHzrq3zao4XAq6AAAIpKFW4AaIDHk5vqllNqjD9oq4VQDXMgAJZqqRyLD9OLBeQZBdInsimKBsRwtlSAvcInecP2vXJacXdKmQQqmWHwAQmQDey7tz0qsAM7vyN5wLhrhwcAAVWBBo1Kl3bpBNEarZHLqwQaBtGLrVMwBYwwxA6MBfjgpVGwhwQAaAbQbEf2YhSQpgJmSoMAvg8wdAdYDblat5TJxVzcuI1bsAfMxQtgq3jap2Ccp82nu0NAFY2gtKTJk+SpwgLQoReKnAhcuVggAEMMC0e8rcjwBldAAKrwS+LgveH/K2rHd2RfCwHpdWzKmQBhwMJ1y6ddvAANMAecnAG5Wg0sDKSVvK8Cu6d0CABEKBRZkLQHsLRp8J04qcNZ6gTbqsOoKJkZULm6PAWUCwsdGwUJULRM8InN+Ik38AJVIA6fG77qSgEFgHGTHLuUuaOyq8YCkMBzUAgIAMqgrJXCCsqkbMqcBwA0LBQbgHKtfAV2KZCaKssbCsESzJWczMf40A1+jAW8XLlTcKEVgKgvdgEbcMHxCYrxIHlggMzfS74wS8n6ardmDMT2fM2TecChDL+uu6/VsJVEFwflHBRogHL/y6nZOshvsKFyCcxcGb3Siw+V68vbqstzwKsKgGTH/0d3dodXZ/tL1ES+OUqvsTvKfXrA82zGArsA3cDFx6nG3LwApgwJujsUbtCoafCwb3CX3oqTfJwBrUivCPzOWjvS+By0dghjiLzMYEtmjvxiEEABciqvq2u3CIDJYEywuSwAn8zF3dANfhoAkLCj3Py+kHBxDlAGQnEBUrePadClIGq125oBREcLPMqxcqmpAiCXfZzAAcoLnBlK5gYGwyYO3Qi6olsAFAAB/GkKr6izce2rYIzAdZ0N2TAHRw3K9grD2YDXAtCjcLiHaCAUMZCEA3AFxwiXICrIyNDYFRCsO5oNlf0GdecAFmICAHAFuSy0M52iU9xLnHtKpXQDTP/gCGhQ2lWJ2jarsyMJxBgd29dc1wnsxXwq1HOg0hmQp3ZoAH8LFKz8d1dwiJjqwA/80slw3t0wBZ6KbXMGOR0godRd306MfF5Lto2FsuSqCuL9nK9os8ipr6S8AL1sz5cd35VZyQd8wJRbsAarAAaQyvh92MNo1cUtyFmLD/EMfclwBQfQAT2QGUqw48bSAYCXDCgOAZ6mzKK9tlLnyI9sTaWG2oA6khpu1AKb15SLDAlst6u7r90wz9ecpwgACgbQ0S7xpMDri13amplqCALgwAKQACrpAD6gArZQMcdTMQcjNwl+ABwHAS8gSk3m2RnmCEWOZKSt0KgtqJQsu8j/ieV5XQ0Rfc3ZEAase7P7OgewwMnVoM0IIAYGQJZA8bstXubIUJdIHKLTiw+G0AwEUAQtwCtCAyqCMihpQikAwIObTgGN5QjigLLyGWbIvEvWFKsG0JygoLoF+tYYndfd0ACwsN6PXsmSLrCUG9/aTK8BsOlCIeYDAJcuzq34sAv+va1vgAGeEALm8upoMiZjcmX4Mn4SUAEJYGovK2j/3E5lUO9lgK6yutWbZ97KO8p4ndfLbun7mq9YHr3xjdSQHgBPHRRintigzq3eztKAjAUH4AmT0yk6dAStIxtJkh2sNwDNwAsPcAFlQOQzuLbHBsWPjAYQ8LK0EOJwvbr0/0rKjJ7sDRDRc5ANdUvzoKzldq2rCuAA176sxmjc2+rfLN3HEuAJ22MERuACR/BHfsQB1OEBGRilKH4BN4AOVzh5VWDWTypopF0AXwl9rZuvtF2vYVzzDXDzs03K+orAPp/zeVoNmSsUbQCl22nV3D7q3aqMKjAoSnBl4NE6Gk/1Vl+TltCjAQAKuVAAUpXr8ame8MkE4EjhpT1085qv2lyZNxu3lcz2bd8N9D3Noc/FsQ3bapwBIkAAhR2TV0CwaH70RxzxaeDm4SEbkmFnNnVDKnCPVEfdQIri8D62a11Q9h5WF0AA8lreGD3Krsvo1aDsAc/FlXz63HzbjrvHGf8QzEJhZLxwrXcMokjfB2qABQPgb8jxGvdVKOS0LXTVCARwABVQCENq37qUBKG7tsgGEAcAAHAAAcKFCwTigDJFi1YABBEXFFoQJkzFBdWqNeA4p5vGBSGrfawWMmS3OXMyzMlWAYCqJjFlzqRZc+YiAAayGcKCDJklZFiw4MOnpucAExNOpHBhiwEDFSOgQEGEyMK1qi2eNAJwQIECU7lU3dBT9kYVR4suFCAwEECBtRUqKAAF0WGYiBctVizZjSPHjyYzaixZ0mS1lNkSGLhg0/FjMIvIGIBkKGjPy0TxYbF0YIIKGKV8weiiQYMKBiNGIEJVVdKIJ0VwAFhIyxT/ATQ6mLx4wWTIECZMyuhQtYEChQK8KiQI8LA5xIgI9ors1g0WLHxzDFf8WL2wSAEZshVKAArCY/Q0wSQh80CBZaJChWpG9saEChcwXDBIoSHEf9P+W2GF/044wYcOAOCFuQoCUMAAAAiQ0IECKNhgkEF00OG4Cxw4YDkEAkABheaik04w6zQToBvB+mKxokI0SmmOQgIAhYD0cmyiCiAmE6OQDAQQYCjN4rPPkx444IEHDgwMISrVnljhBE86sNIEDA7gxcEADKhQlYS6kmAACQYqCAI0OgSAOVpGRMEhFBAI6SKTGigSlsDqbCCwEwlDrEbzdESvmEVieICWBFbK/4yoXYhCBgMPJujhhBAoDUEDBlqrCpERVPAEgwFClYA5BwlQ5YV44nmhjEEogMCBtgSq0IEKREiGzYbgjBMvOhewcygB5jCJIl8bUINFicATIJtkAsBRUMdUaWMyBZJxwgkhiWSUKAmS8oRSDfo7bQRNEXlCBR9MGOANQzIIIwB4HyjgwuDqFa4MYow7rgADKmA2AQQaerNN507i6Dp8VhRsATkb6APPivDSqIEZEzjgPGhrciOG9hS4Isg5hBRgl0bx6WMXpDpo8lL/THOZAf9OmADUN5zQDsYEkhHBLQIohIACNFQhhpgLXGXL1gTCeHNgh2iRkzrsYAFsYV+1eP/4I7xE4kgjBQjQIWOaFmELAAUqCHJIfHbpY+1dCMHigA48IdC/Spuk1EAOEAQ1DUMYMQwvWgyQsAAHuhJhzGZkPaiAAw64wolbERg4xLwGqy7q6qpbuBqrj61Ioo1MSoCXxsCWaZHCFTRbM7UJIeRkfCyRIG67T1j5qdagGGEFH/aO4oOI4b0RDUcUIcKRQcAkvC2COuQJC0Oygc6uEuUcyS8VCwMppAa02EUNPCOCSDCLuh7E9JjcwAEDAJpJYyiS+yBkC0Lw+emNbifggAMANRjBlk0hAgor4MoALJEBPoUocHAZxL2CIw5WqQINP3NAM7IhpGq8KyIjig6dRoL/naLsaQF5ykgD1NYH8IUkRAwTTDKaUTqwlaEIbcCBCQAgAZ4wahdYEMEArhAFQ7AAAypbisv8RwISwExm6nqDJULGMBo0jRaFqIBAzFSAn1GAGGBCg6sKtxyAtclNcZKORvxyHTXsiUW92ojVUAgxpcGrgwlwyQZMJ8NGNGI2zXACMjaDBScQxHCWSAMGJuAJ/vXvPxyYwMxCdRlhLSCKbgKFASDklgM0QwQiSByFKICQAigoAcyRnBg5aDDASG17gune2tTwSj7RggazREAhCtGMAgwBbK6YIZYk8L6hAJIAryJAJi3xBrjZ7T+VkpkHQGWJtP3RMJIbkW0IcIEL/5XBEaoAEwTYQgC48OsKz6MRNZdGxgUIiSPgU2PmCmPCE6pBC2lU4SwhUctCZKMZGINWMdpgwwGk4TKcAYA3HcC+A6QhDXBD5P4olQIOdAAD7zMZyTYjrOjE6U2CmxcxBlEGcVRBOIPYAJrGVqsMlEREHDTRCP3CTqmpcTAbOaEr2anCWm4kPFcAAAUylgUy3NCAmEGGBChUOAxkKaAHSMr+mtQfDoAKCySjasKQJYPo0KBhGRCBFX0GtJKiYQMlhVUzohC5NiFAq2S83l/cSpIGaMSNJ3tlTEvSACHhCSUVcEDGinDDNFiiq6FKA0GQCgCADiCph3Rofz6VhrSdrP8PmxFASTi4NBpUEkKZbIYmN9mMt1zAmwNpxhsEMIUMZrSDJXTrnrYW14047JVqKEoIG4AwfDSAYQHIBgDQAK02AMCAoLXiARyQuuMWLlRJ7QBjlxKCDgw1spNd0d8YJjkEdK1CYy0OcthCoQ414wqZCdZ1AYYX68X2L5mLa3s5ora6NkoNu9ACbhuAABkg6mKC2oCYcjIAw5rguCYQsANMcICkJjVSjGWkVIky26LA4m8R0WqIFHCAYaKBGGXgMIeJAQFVGC11fPwAXsi4waexKLaV3cjE4gqL+L2SZIQgWdTiGhE6HqAAgoLAQNhXxYJ0oMAEPi6oFOxMSDXSmQP/QIZ8Zwu+NUrnIR38QDK4KpCeYbFoaBJrFwt3gDdox0QtvR6LOsJit6rteyhc28ksCgstcCRYzXhWjsrQBlgRwAC8IMiBBTyh4wqXuQlOauPe5zoUPhlPJUHxib00tq40Qzl8LgisBsLkaHYDLzTYVdaKVZ2OhEydHJHf2ubHNtomOs4mhIUIdqyjMrihcHqOkHCNKqEIMU+xhA5VT4bSB3awg36Jpm0Cx9wlLB5nA9xMk0EqhOtMfixtEkZxS/2iRo9sBBZCso7a6DdshKkh0SJEjAj4mZ4euSVCBmjGAIw7ITwPZEyhIixQ4LeFYG/BprSt7Iui05yH3DJCaNIB/4fFMQhscnMDExwbtqqxwRNLJHMhm4Ocr3PbteGbHTQWgLHGvafodK0MOkq3W/olgoVGaLttKGa75y3QoKRtfvkmxJOPpbnrQgReDmpfV3N9pixO0CCFw2HCGN3SYgEGr6PmiNW2oPHX6XAX15HaAvKrAACcL0dAUDcvRPDDKAjEARvIAjGCK4HEHWBMlphP24L9dho/OXP1BLgp5NXsL6f9LRCIlQR+KYC0NaqyFpGI9cxcnbzGtHsaFzb9XulKNMYV4A/waY5UwbxoX+sKTPUB7zpwAHcPJKF9rKj8ng73mqdRjdOMYnNMcRtwGuQgRXPVz5xtadJmgCgZAB7SWf/kFyGFzK1aYPzTiS1jokCsOQaAydaD2vMmImO5OMDB50V1hTQ4AX7xm5++T79xFE6BJCp+VwAAlpdq6Ay0DrBQ8ijATQx116AHgKYTUkrNZGktZH1pOiHeru/veTK2wQdVwjo7ypFieL4lQLljEhUTEDLC8omYa5TW6b75cZ1gSzTvGIkMYg68aI4HACdouyJnKwDCMTB5gybBYzRaOow9iS2tIb580zdxE7fXcSWioBjQar4c4RgFwT5LICw2mLeAGqjpkh/XsUCNo0F8QK3AqIYPGCXAuQ0NGxqy6orYwySByCQRCIapahQWzD+qqRP/a7xhMzVEm6y4oiKBqLz/HJGMybgCoKiPNGADFmCBNIg++fjC1vk2RGO8mmvC6gAejSA8yomDCTFBZzuILJKg4/AiG5IALKCuh1Orp9kcVirDJXwd1xm272mAbMA6xMKBLBACIUgPRVCFAniACoA5QkoDFrgCFniDn5gP+DE1+qGxJIQ6FMqth7OIo2sTi5iDKLgCYww92ROtCcKBQOsK0JtE6oKiSxwMrdkTfHi6TRQ2/wPAN6oixLKSb1kBVzjFx3iBC1AQV3yDNBiAWbQEe2OdE3q6JLxAxuvFPCkJ9CIjZ4ELg5KQLOsxMXG3xlG7AcCC1wHDrFEvehqhg9kFxpvB79O3ycqAZsCApDik/28xkCcogcfIAzToCiazBDxcRzykxUUJPNNznT7MN2GDJZEACWpyCHlRhQzRkEEgBqHjOyxKtg1Yi8KBLBrzxaT7C8O4Lezog4cUNqX8vz4QgJ15QIwEl9NwhVFwDDBINwNKgyvYpDxsInvbwxnbxF1USgC8mWmqti4ZiJ45LhNMNlXQkBBDjgMTASewhLYJyu3ICJyLLViYrzJ8u6WEu11YKKhsKJYxDRVoAUl4AZtwhMn4JWPUpF+aRSewjPlglNfBN3mkR8HEB++YE/SSjjBIvysIlU3yO3CivVC6IQlgAUvIoaJgm8q6Lr1kLY9DSpYEzKXcAixwN29pKHB5Cv+XWQEVgIJ8mAkiMJQloLfOas03sEM9lA+qssC7REps1Der6gbgQS9D9BJvyqJPEq2xUTtZIRzh4oypWhvP5M6X5MuM00343IJdkL4haqSG4h/TgJkUYCYNeILjlIkwmbdMIiyFir4g7IocQsKDREOogzJ8JDw6QYBr0rCbxBCcFK3jagv2KynhYoFQmYKKmrqH+xw6eS8k/L/4nJ/BtMjm8gTgtJRl4s8ngIKZcIOgAr3GaTfCordu2QAmaIQx8aPqjB8kNL66+ogxiw5TsCS1JDCCMEF1M4hi8jvEekb4oq2juwhj4b7ig898QxmLbCT9OYEAoRvbcZL+lASacIT/1RQ9CVC7MiEIjBGCRgC9NJixg6SqIsXBF2EYN/m3B1G3J/UmZaOAAyOAA/O7N32DwCMKZJGObsPFmfNSqAPT5mok/DyNADEQTtWAFpgBm3CDE2wDUg2lRqAJIWgDwkpPlWQUBg3KRx2jODGFCgkabiqOg7CQEKuht6AAB5AAZDCENy1INSPAhwucChgZ0/PSFMUHxVow/eGA/OwUFTANJ1EBNUUfmciC6LJSqiISurrLoPwARhsRThsReeHHEtQy3MOA4zoOAGgit3CCyGoUTXMWAnCCPtTMiExKt0kZjHSqFGAAEtAd1YCKJ3AFUNXWmCiCAwMAEfhCfGii7dPT/6ibAu0ITXMyvytohjcVOygdSGfEgQ0wAXcUJEmMHxENAwgxhGUNtgvcIQxkSd5UrBbdnxqoAUpJDdUgAdhoASFYWIZdAcMSqKHojDeFrAerwMmKnk2rMPwChZ+jECwyiK6QRSdggzcAANkwIOO6IRVUG8+shgsq0tO7QGQAgGzoRAt01vr0hBpwKgNBTExRjaBlWJlAAwcILu1rFCxIuQHYjKKwQezEWKuTgXN1iGsaK2KS09UMtNYcAB+gAPozqoGALDUTvDmAMdP7Nm1EBhxogitQUNfBh0K61IZyGRVY3dV9ghbgSLyNCWkhAL4hEqEgpKkiijaL2fAIgyiigf/8ogVQyIUC6CLhArCCCCUQ24AigIADa4T+kp3UOYD0NLWEEQAY677r5E0TiAleGBmq2gVLCNND6oEaYBkVcN2e/dTYbdg2+CWfCCZtiSaUREIsyIAakQH91d8AiINLCpW9Qw4A6AAfaJKIwgCSNYEyyTOI/cKgXBaaKlJEw4I2kIkCIAM944UreAPFss8eSBL8jIqpgIInyNbYLQIHMKDL8CPNIBLaUrPu26EoKIRZ0l8UoIFCgAXO4GCj2knO44AqsSEKICnZy1AAMITAsygB0NIK3DgaAwCaGIcYmOJQIt8JiNtE6k+qkAQoEAIbaN8e+xi287XLnF80LN3o2d//SVoAWPCJ2Cms5EUwF70SEPMw5Qk0Eahfe+UeTpTHXWiGA7SJtShMuA1hESZh9o1dD/kYQ7CMgZpfV+1EduiD+00A/W0TrDKhzTCEYHDcgbASHNAicRhlCGoVgyocuwzfqdO0BajAG0yD30KPRmiDSz0kMk0Nnz2NLGhfcSCDOJCAupRAI5S6RnnP+pmCQkBcc0UAjfDGQUUIhFgERxjlKiDlg+vJE7yhEKUqAZgIZU3CPjCEV8sRH/AE+yRTJFrdFWiB9nVMDe4jYcaMy9ShZdW3KfBdN5HJ1LyARVCLC0ADcVAEgR7oKlAEUmYVNDDBQMsGVd6hlcBeXJzPvoIW/wowZ/3pzydw3aqM3QRUgAxw5D2M3/mlQNzcOHx4OOAFXlrADSBwhHEYh7S4AFWoAiIwnpquaYEWKXFwhCS4gBjI0GYAX4uiLCGROXZoFAAIZEHhnc5L37ttXzcgAFD4aLSRj5iDZFbFxvnMhqddaVUI6IFehKARaCK46YHO6Z0GArXI5itI4vClZ5U8AKVuX7xVBQAAhZ3YQ/kQ3CJxVfnRRnxwgvGACFoFgnGwaUUQa1UYaJw+6yqoZkcAgp72SQLgBSR+65KZThp7g4mm69jFCV7YiYGSQL3u63h8ul0IFlwhAyAo6LJO7LEm67Mu68d2BNtWa582z/dpaLdGyow+QAYd8+zYteslGKc5DIr47Wv6NRkJxgf8dT0ySIJxeO0q6OfFLmvsfu2argJtsu2YNsFi4om2qaodql5KvoJzE27TwYmvq0whqUwsyKtsuQ6RgTGS0QItIARYmANIAAVQeAAyWASbrmmxHoQBb+zGrubHRos0iYFQEgHspSpYMITTAt/rcAJcUu+AAAAh+QQJCABcACwsAB8AfgCjAAAI/wC5CBxIsKDBgwgRQrt1S1qTh5QoNYEGLaHFixgzatzIESNEUaIogRRlpCTJkNI6qlzJsqVHaSJHipIlK1SOmzhvKgnksqfPnxZvRaRUcwwSmzn47Fi6Q6nSHTyMRARKterKW00iGrmJpKvNHTVqMN3RowcHDjyUSKVkta3bg9CkgTRyFIkRWUeVlt1bw+yJEzyOjJEl9a1ht4Fq5lystG/ZCUF6ePKElgcfozBSHt7sU44FdTf5iH4K1rHkCR0mqJ5AGe2RFDx4cJ7d8tYpvF9LBwmimrIn1R08eEDdunJsDbSTc4RJUhafsLxVD18tXbjwyZM5wOYRIpXy7xflGv/5WmOChw7BjZ1fHdw6ddZl0T6ZAb5+QaHjk9YIMhy9B/XCBRfcewT6RZ99CMpVkzrPsWedcNWt5kF07KU2AQctIGifHAoioR9vD0JIHXZnnTXZe56soGF9coiE14eoEUjZCSo8MQIUOKYCxQgqnIBaap6EsCJ4TTR3VA57FffXCSvcWMIMEUQZATPP+JLKExzEOIGQQyqX1UxdIaEODykwcAkJJEBxyQiSlOCLL888M2WUzETgCxQa/KYal13S9uVdsijhwiWE5vimL1PWCWeiIEwyCTO+POGjaif0mVxDYBoBg445luDmm3HKSSczzDT66J0aZMmaJJbOJsdd6oz/AQMMJUChYyq4HvpplIiC4GujdabSo54qtMrZKUqApsQltnKayqefHkpno75OckoEFowQgp4ZGmvYLdcckQMPLuCoZqG5uummnYhOQi2wEVwDxbaqdevtW77w0EMKgzLrL7OpWHCoBde8GYG7jvoKKaqqZnGvYSVw0AO5/xLKLBQCv0mwwe6+qyieJdr7sFUlnMBBCGaeW6itvhTsiwUCT/lrxyDYaUGqZ4k8MlU2aEAmCRZf4gLQALf8cgkZy1wqCHVWOYLJPgixc1s2SJJCmYS2oIEGV5dp5rOcjkDCjS3Yuu6bUJis4tRWyfEM1ymncJZknvylAbO1XqKCBiFo/8BACy0IkauVIXDwBNttsfLE15fwffXWW+8NxZslpEICA2ZKIrAFqbyZSqqsIl6VHCVYjPnpkHN9N6KQ4hnCCRqweegzkmiwwoGiAxUNCJJA4YILDKRwwm8crMB1Cpe0y0wqPNY4QgvP1BmBECqsYEPuVO2e9+V8hxCCCuCrYKYFiVbe5gyk/gpCCU+oMAMI2P9UCyuBnGIBFECT8ISN+2N+Cfmkkl701EclX5QteqyIX0/mJ4cmyOtfOxrBCM6UPEaRSkoBrFkEUhEBpsFPgS0JBAgaKA0dCU1/EkQT0BCltDqlL4C8ShQzQMgSZhjBF3LgkJoYMDQGoEmC41sUDP+X5sIIVKlzzLgeDVUSCJAEQhqBSIXQGCAoNJ2ugomS0q+kxy6BzXCJKrGNVGCiJhcIamiXwxwJNrerOUmvgLyaBBhXIg3CRAQGhKKiDxmwNR4w4BrSMJgR4SRIO4kqAgmcY0ekUZJTUOIahDIj8PgYgjIFsgQ2sIImWWGDTkbPiM9AHwiioUiV+EIqTQhEGc14Ov+dQhKSYMIQmMAEcTDhBS+YwQxCucskllIlcniTNEqYx1amrASAI4Yq0ICGCwxiEGXQJS9L9cuVzMACT8TjJY7AzdOlKRWSyIIqVCEINGxAEIKIpi5nkMlqrmR9T7TAmRjwmqud7llZUKYgBrH/Tx0MgQozKMEzbuHOlsjBBs+4BB+3E5vYkEASK1DFOQWhCmhKwRrSLKhL9DCDEQQvNmbhAGA2tYKJ7pMYQ2AFRtmpUZdYAwqYg03X6HmNVEQUneQchDikoEtMtrQlVQve47aGOfuVlKLohCZAA6rEn6rEBiUQKgP2FjwGBMIXR8UpNFdagkQ69al4gtzjGGClLGzgnDkVB0Cf5NWvcsQGM4Ap5ohKVoiedaI6XeoM2upWjQRUin6TaipaUNKzoqGiZVgpS/vKkVrtsGtXs8ATCnvWfZaBp3EaJWM3Iom5CjU2R7jGCO5610E4AqByYgZfN5uQ2m0iBVxr6B8ne1YK/5hTqbuMUztZa5GgfpShfmTSBihAgQtcYJ+5DJUU9GAF3iLECrzDXD0bmgLJtkAH+zRtFcQR0DglEQw3cK5BoiEFEKSCnvX0W5kssIJ8alcRYFiqcvUAhGKIdyC14ER5z4u6wJZJA1nQARogYFsdlEES0pyBHvTgCDKoIrzOtYI1bMAKEMgVsq28BIKzIIgNZGGdoWLnD8ZBhlxcoAystYIUXjCETkbgwmM93QhKII0h4HIIQ3hSqEoghR8oIga5AIADNqADKXzVCjagwhCE0GK4etSYrSQBJqlAhRvgUpqhlESPiVBiAHi5ABtggtQKagNrSEIIgGuBJDrJPqLStf+VUJDEEBShCHEcWKC+EIIk9ODjGJDBy4AmQAFQ+kvPjKB94FvBCoRgg/U9Qawp2MRcy/TQWSqiCgf23Hz4TAQ/A9oABvAyARxQhCwMYYkV1pYGTuCDyfjAByOQBlwnmzoN7G0TfrvEDKQgBTCAYQgB9cXzQGCFH3Q6Fw94gAHiwOxlh9oEOMgCirHHihlAlAO/QY+2JxDrautgBX2DrQYkfcVd+/oGTIAlFJ6w5x8YG8gPiAOol83sOPCiGQDAgAnWoQomNPVhcMWTj9Bjgg6YAAMASE0LZG2NISi6kuIetxqf4WvwlkFHsVMwJ4xd4njPOw6gqLcClnCAAwCg4Ov/MPW94CoJSXnC4BgoecxjXvAWsIKTVChGEfoGuVaOwBoVv0EZtKYBLeth41XouLLpDXJQOF0BcVgCyZ+NgxWU4QV9gqsQJpsl9MRcAmAfgNgx0IEWUHjBNyiG8fwWWDWCALxgeEExqrdpd/cZ2fXOu9ObDgoF+J0XJtc3BFSBu/rAtQVcR40xjIEBsTve8Ql/QiBscHQfZ4Gqe8TcCECwYj28IAvt3fUPNm7sPSCb6fXuOy8qUAFegJwXsHe2l3GA0uYqJ5SAW8HAGV/yx/v+ACZoQSAWvHE9VCELi8vfD0HACrS7IQtrtvvoj51sA5hC5J1QQAWawf0K+N3veQc8/wAGferZQHXduucAzBv/+DSk4ffBf8ZyR/+DtNtoBLiCQgtGoNoFvwAIQzB/7sYJnMBlAFB9qfd028cLS8B6rMd9TacA92ZyDjAITGAYVqBLiKd7qnFw7Od4LCB27/d+YicBwWcDvMZnP+B5iPdN4CQEzOd/TDB/BEh/DaZsD2AKphByCuiAq9d9zbAEvKAAThdy8hZqDkBoVsFTG+gDOABzAHAAvjcAacACacAGVcgGYpdwmJRklbeCQ1A2AXM/0JOCN6AIKkiABKgHixBkyaaDygZyAbB9FSACCcB6IsCAzcALfacAAWCE8gYABAAB0wYUUvBtAweFEjCFLHAFjv/IAm9whSwQggAwARFwUFTAZzXoeULgJoPFbmVwS46gCAOohhyHbMoGCjp4fX3HesngfT44hKv3d3tXb6GmClVRBUXgA+t3AIvoeFfgfgNwBSzABmzwBsZojJToA4gkBVTgawP4A1IwBJKgIxIkCWF2A45wA6OnhhsHBLmQC8y2g6bQCTsYAOiYAHeofd8Hfgqwh1BnhCHHCwZAAFVRBk+IATE3hcModpOYjG8QkMk4AABwAr6QZBV3dDVIBWgmQbZWBBQwCNzojQR4A38Gaquog32HjgGgjnfofX0Ida/nd31XhPQIABtAFargAAgXdo5HglQ4iZMYkMj4BqtgjAP/cAA+UALWUGU3AI2baA0NyW4C5ghg0I1qSF+nJ2+qqJEK4JEeOYd/WITtyHd5B2oFABTWsAiA9osiiJMvSZMBOQVOsArIOAAS0Agt8AJU9pNgoJBryJAIZg1loApGSZEjRgZxGAermH0d6ZHJkAwJwJFESIQlWYSACHLMRgBo8BNMEANedgDN4HvG+IhWKJAsEAVO4ASGsApRcAUD0AFP8E9Udm7nRmW45JaOAASOAJecoAeKcJGg1glO55TqGJiCmQB+x5EdOZWgQJtGGI/NdgE/UQx/JoUi0H7ulwY2aZOrYJZvEAWrYAjIAJ0EqQpMNgQ6oAoUAAHrYFm0ZGM3/3ADQAAE4qCJBAgGjrAIlZCD5dgJ8LmDoICOheCRFcCbAfCUuqkAwMmDzBZyWPkTaEAAALCIoPl4wcgCm2kIZRmQ0FmdyFCdbyABQkaggOYAo1YAFLAB0DQEVaAIz9Sa3agHYKAIZVAAALCK3+d08JkAhZANgxkAncCRdxijU6mRiNlsEPATkAkAYnegw+iIb1CMx9igZvmcqxChR/qcEnoAOCAIOjAIEtWdF0BaG1BRN7BgekAEjjAIEAAAyxZyK+qH6vgBUBkAhVCfTxkAkMCfwHmO6KiKoGAAlfATF7CPVCiCjngFUfCPbKCgSBqhEYqM0PmcQ3oAQ2ZgtMQEZf/AT8N1ARSwCGggDnSWBH5GALxwBURoAE/ndzUamOpYn3/5fYRZkvD5l3tHpz9RCRjwi6tAgn6KjMkYBZo5BQLQmZyJpEf6Bk7wBvg2asSlCjpgYKEoDhWlCh96aUCwCDFQCQTwn79Jo4P5otmQAYFZCOjodxXgooMJCreZDVFgrboZcvbYE2XAkovInK86ADNpjA56k9OZpAu6mVMQr7zqBFEgiA6AoQSaoRCABuUEBIPwAjfQay9QZ6pAANYXrfnZmx35AfUJo2Zgo6Gqjh1ZrdkwBRlgrXtXri7hBgSarmmwrlRIk8fooG+gpMhAq05AlhKKr8lwAAUApbTUqIL/cAEQUAk6W6X/WlHPxE8FgJGmEAAIIKPSmqbZkAxpqo5F66JmsLTquLGCmg1FaACC0BOD4GWPF4kDMKQsgKQny6sOyrKrQK9TcLabyQsOEJE29ozgdbDi4AgbCgE566yApn33GQBhAAmnSp8emab1iQAuurT1ia0KAAnZIABYgAUZkAAysHcU0BN36qMlG4mZybIMGp29iqSb6QTV6blnKwACUJYsIAImp6GC4AjiUAVE8JNEsAjPRGfjsEw5q7B+6IcIgAAz2pFQGwZhgK0JEAbqGAYfkA3YSp9zIAAZMAeFAAky0KYGsKMuUQlRqJx/KpjJ0Kv3eqSdy5ktawhn/1u2+NqIJjdqBHC+OhsDi8Cd5fmTl1ZLZbAICnuqvnu0SPuigGu8hQCx2cB6aDoHGZC0zQsJe5eVLTEIDlCg/hiCxpgGIvDAV9C9hjC6GpsBZAm+omsIWLCZtAoAg/ehTOAIqsCszVoJBcCsewCpG0pRMcCpv9kJuQsJFlsIT0vDc5AN2cC8afoBEKuOM5oA1RrAS0ubcUAAhagSA1q9RNrAV2CHgRnEGcCZ4AvAobu4WHCrTrCx+QoBA+u243mwVbCei3ABMXC+gAYATwmfnQAJCOC7YVDD6mgGHxDAODwHZcq/Mbq/G+sEokrEANCYLFEEJqDA7nqWLKALHpm0yf+wsYw8B1NAnRM8wVOADJxJqyIQagXQs45QBoqAS6/LmiY6CM0EARhqfeY4o74LuGkKCWm6sTiMwzQMsYbbCYUwBwB8wy4apwaAiywBAQhHhSOLDGK7CrogAq6Iw4wcxYawsZCswaKbpBbMCMkgiOZ7voJ2ASNsl0ywXXZWBsQwoC4Mn4I7uPpbCAJgyxubDDj8AQKAwxZrBtVKnQGcDDI6p9K7Ejjwy8NYlkdKyXyqztkwxwG8sS4LyQJwtmT5yBkgAgQgCOKAS2E8xs0aAzGgChBQAAUAqQArCF9Kb6CAv78LxE77AY68zAH9AQ1QDT1Mww0gAI8wB4ZgCDdcCLT/qaosQb2UKwK60JnOuQqXa8Gd+8iPTMmRjNC2WpZOIAIOoAov8JYkCl6Y5giHVbsWGpl2+IdoqrTCi7Q8zM4H7cqiWw1P66LsTNK2rLHGKwMyEAcOwBJugNMGupn9vMFlG75SHNPVyaQxjQVnG9PKqwuCWACHpbpVEJ5M4LONukwXUADnG6bzWQjXGryxXK1eLbqWzcODGby2zM4wPQXGGwCP29ArQQEWCnbMWYXOGaEMOsnIAL62KqhMqrzJG7oVnAy8QM3WbMIXwEyIZUvwK8KVEKadYAZjHbxyvL8knQHUMAW2vNkwOq1dzdk3nA31bADEqRIXQKBSWLnv+pyc/4kM9ZqyWYwMi9vaSTrBoosFrY3DClAJgzAOijAOy9qsggYBzJrJu01RQMup5SjDw8u7ZjAHPJwBWADA5/wBxY2mXp28opsB2FrTba0Sxkm5XWuyNimhnvkGBIkDimcMFmICYpek6t3aTjDNFFAFTk2i6CalF7AIEFDVohaF9PyHnfC8u4sAxM3DDK6xDC7LaSrHOXzOtorLg8kLMbASgxCyVAidF07eZskCB9ABTaJQscEAMOACR+AJjZeySfqcDFoB44cGOlUFIIxpG/1MknrR2m3MMrrGkEADz9vGv8vD7by8yzsHZuDGb6zjj+DSymu8RR7hHZEF+jwAugqhWP8woR2QBYgCBbBBRTBgBMDjCSCeBtTZ2ss8uhkA5rld38VlWeIQ6nEryiiatzWu1kRbtHKs4+ds2aKL4G9M3KL7CI/A1yaNrbc9CCqhCoP8i+qapIMKACsgCafgC5egLzugDkoAA7LwGlo+AGyQpKIL3nOQDAZQAKowDhFduw4AARtAt7t9TlLK0Zj6wmrs5r8b6x+wAOw8xQJuBrlL3NWguH2eAQJgBpDQkQpgACnZEcWg3Ut+4Un6BgCQBXFyXiFQFrEyGM2eAhPgo02u2pve0Gi4YCtmsxvK2GdsvgDQDPepxjLg5jLsxgjA568uy2wsx65+zjpctHN6tf5OoGL/19NIKuz5xzcS0wPqECuBcgQ80AEhDux+XZ90igaj2MmMWgY6QAFJJakXUAkY2vG68IptLri5GwBmsABZn+OKW+AIXghh0Mbrzs7UILoC3rwIwLdsLeGD7HiE+pwSsA4q4FGXIDdlsQM5sPA+/+y6EKHqjd4HngChNmr7WgkEBgGCQAxlEOplgPGMbQDNwJ9Ee7yQkOdZz+7VUOuM+8o/LsfVkLyOjOD53ptFrBJloORpoAs0eQUYsA7Go1CF0wNikfexog494AGNJ+Kia6sCwMNgLtgCy57nm8nNtNsA+7OCQAEoyocgDwnOy8Z7rtKuTseFULSQsOeU/QG/y7t///jHHVEF1LuIlGyoA4ABVSdBsCH7sz8YSqAEPPByrZqyVvzq1s7FTa0HZ2izVarxogYQBBwUIACgGa9OCTsFgNQQkhkzC6p9EPDokQABGZIVgmgmTJiIZgoVQoBgJEcFvAwI4tLS5UuYLcVVArAkjSFkyFaxGACgkYpLDFJw6NGDhwsj13wt9WVhhIZGJg6keYPMUMZkvAhAGFSGCZMq4soMoiBIlSo0FwoUcFBwqqFsCRQmlEEDwUeIHyxSwyhgzgfAHkFC/FgSAcRCCSoYgBDT8UtFMQAcGLAqpxM2AzqsGCE0RQoGRk6NVqq0qQULLZ4UkZpGV7ZkyRTzAkBAYP+lAhAoQNgwSJxYsTpUbSBoMACohKY6yZCBIEDhamoaXPSb7eTIBCQN2zWcIIACA5Uej48MgNcAXaucZHgjYbOGzwxgzKcPA/U1/EtTtVjhgLKu2BIAj4ACLrgAAoIIhCAtCtBQhRgdBhlEEArYOqCCAOYKwLswDjOjATVCpOaiDwYT6S7COvwoAQQg+c6AAsZ7TBzJeNHFCSesegMAHHwIgQEgg2TgkkugSCUVC+aDAoonTugAgwFuEgC2Cgi4YJAqbnihirE2aLA4AGqzTaCCRIjCu4QgMYyjD6ITkUTAsmnzgwU6MqMkkazzDhIFHJAxphuAqPGmVVZ5440DOuD/AIprYBCSARJIGOGpEE7wxJMOPMCAMvUwyiCKKwzYSpAyyhCLCR3QEGSDRQ6spK0ww1xPtjQ7UTOvOUBcJsQG5hCpkA86orOjjz7IADbvAtDqT5iKKUIyAyoo1LJVBpjgkkY94yE+IDXgYAJjMNg0yjRyusqQKbLJJopkFAhTwQsooGADQQZxxBEJJ9zNLREy7ES55RAATIAQ1aBmugbMKPGjBSQyo5o5OCokA4rj8g4UAwZh1qUyGqHpgQoMwYIaLAzBQAULgPwshRB4gNSCa1JW4YRGcGitKiwo/quQZBYb07Ywc6sQggtUJUZfthwwrhMUFELhMAEaoMbgEQWY/wiwBRqopgGuGxAg2LwSY8jFjDduyY1GCoghlyUMoYbkNDrQoOWVQwANW9KWKkESIbJwQAJdDDEkg78C6/MCeiVUZdUFIfgZ6APCxEACEeSaiwa7Hi44RL/oBKyardWg7q+wEdgzAAMuMFsRN4rIoggCRMAppzRMmMCTEELQYPch67NPb0mewEGCAS6b43h1K6itgLIcKbWMslbdrTjKeHrDEHb9bRoFFECS+s1HAoMI9DcxCrYQ6xBLABRQHFBkY0WyeN0BG2fHYhUANnviKd6DdOES+xypBSrwAZRWgQUsVEddc0hAAlQiJqFBQBCqWpz0EOSWQ0WhEAEIwPYOs/+1qb3tIhNZAEW89gg1LKNqXwvMByTWCYxpjFllcIPNJJCGDMwuDTzKghAkwSQNqGB3KwPSklTDASi9AYEI/NocsmGGBISnAJUoSNB4w5bcIE4VEtrAOpRmpj0hgGk0+BCIRPgIrUFEIoBBoQobsAA2Wa0aIAkDJDphgEVsTBVKu2FOaAeAAqhCCIN8wu7gk4ITnOBHJECSJEYwASghg4nmC9YHEgBI3RRNEIxDwwUFspa1tMUBUmEXmjzYJgGIECPVqFNEsqaFPixjhCHJixmekyFQxOhPQlBalHKCQGQcIJBZeMIKnqCCzxhydyOAAswsQIITGKN4I0ugXwj3ASr/0YZAFOiKKsqiuLSA6QCRA0CODPGBTtCAeyUJHdX4ArqHaa0BWlBh1UAnvjAkxjsKIIAj/lSEcb1BFyKQQEELsIENFGEdPlCBEJW5OxIYCQoagGTx3va2BB7vL9lz15jWAgEJmkVxG0BDWhDEx+tlIwAIWKf3QKQGLHCtTRJ5o66oIcteec1rdDKJ2Aygij/1UgLLG6UDEsoWE/RoBfA5ZP9C4AljTAULy6AqRqeg0TYVAkaLUAUElAYAB+imLQqa1yaJwxYADGAKjEjA9mgQhqyVL2pa21rXUnhRi0SNhC3aoAMpICM3xCqpBWhEB0ywDuIoDQMd8MEK7Layz/AA/1ybkuQy+tAHjGJhCnplpRkMENaTfvSKQCNTFQ9QUAmsghoZ2CD3nhZXqnFta3V95WVvitfOjcQ5DaySjAbhAAc0wnEOwAEGDluAMA1gABjAwQpWkIJt8SB3HJCmEi3bB3dq9qpzAN3VFCCCZgzVAfK6QL3wRaGTVjFMN9RsNkqCAjLa1WCyresHuAZLQmCXahfZLOnQlw0RHOCvj2GCG2oYJpuZQCCTUe4ADtAjDuTObkCCZLmwcNnLUk0A2w0WXD0iqlAOBKTz2uJZKmgWknoVAKvISIcMU8ZHjEieW8sa1zKs36mJ7mBeq4hfphAFPz3GETFwXG0SDFbKkGsAJv9QVA84wAHQaOBJaRgZhndl1c6NzwydIEC9kJbFBCloHetAw/RMkNaRPeJOJQFJXaXTXXlyTQ19yK9+r/w2qlIVw9TAny5jsohXFWQtZ65NM0Sg3DQ4uAOeIAoHeKCBE1B2qnXGrMFi/LU3KsyWCkKQaDsZAyoCLVaUuR4CVegrw0ikYDvuml0JsQX9YjiW2JUx1x6hBSxcIcgxKcaryBBoAAzVIFGK0huW24EJOJkHPHjSAKhp5YvyBSNca9jCknFoCUROaPbC1yDSohZYhUmqIyoRO2ssW7p2TQtT6wOs57yF/J4RjSWCBEV2VAbHkKURZMhFch1sEBFk4Aq6iJL/BJh8O0xF8qKXzXMI/fIw0DXMDMn47EdB6SVV5Stfw/ESWyRw4fCtOSK23mmbWk2NyxLi1VtgxxZUWM/p2HI5HzCECAYMkxuoYm0MTvQ4K3DtK1xhAMYWlzE8EC4Lk2wZdd6VCh8xhQx8jlgw6o2EJki0Kv5sIAXAQQE6EGzVYtZXKy1j1+QIZxS2mx1rb3l+r3xpF3LQDBTzM0xUQYbJNAM9aWhG380UBRwZ+wDi2lS5kKFEarw6vwYTHXWkvoCP8FMgwBXxBUQ51jHFauiGcMKFVSgAj8TTImis8bnbrfYtwDrPsczz5zeyGNU5Bgh4Py2xiafcN7CABUFXLpTG/zl0Xy7d3at++hwoVkszwEYE4I3cQNRCgS1K6LyLmB6sRFDV8IWhrhaRLZ1AxzXht1y/c75xfuuMhSgoz5+OcQTeg633AcBf6EEHlXJPG7krBFgEyFgGyxcfotFRF/FxjvCIl5LajQqJF3pZFTRAqAacHgJohqk6tWCpMTkyuVZTO/FDowawLUuzCMviswOIARmRjAPoO73Tu92LvzBZvgP4mcngBScQAEJgB5WjtYuiJBKqkwBwAAfJF4y7ACoaNXKKFQazrrchnYaZre3LwLVLvT64L5XjPq6BK68RgcaQkQtgsNtDNBEIk7Y4QbB6FaXhhQx4BNSDtVgSoeMRH/+JqIYAqA2wAi6hCTXbyA1Qmjy3OAAnsCxZqgZX6i4ObLUOfML/0y8ODBY7ggTlkaHx2MK0arAGO4CBWAcTIJ4XrKJm6Dw6Yzl4yzDqeLg6kTgoSoB2aYbmAykAeAAC2YCj4SIInIwD0IXWUzOJAL2+0JqGsbEbvCyL0AKqSaGEaZEAiAMDuLnHUAV/k8SewAGFMqCeaIYomIJHWDobZDkbBMVQrKk1upMHqIQGQQPqIxoEIZoDSZAwMTTmO4Dr27M3yppqGMR33Brz80V6AkaDUaFY+gDmwJjYGw9xwDviQUG9S5QJ6ICpmJYpmKpOVDlDxC7Myiu9Cgk4goRc4Kb/UiELEpMQNECucQIAUVGQAjiz1PJDaiCd70M3eVKD1HO3l2I4e9SCYeyEB3DEx5i9vIM/+AOAcUk6POvE1FO8T2y8d5oINTKDhjCAXJg84AKpUKoi5qkXYvAmHIhEAEgDlPNF0KsrXWTCBvBEWLtBePvEi5ApO3qA9/kTyZDFcYI/B0M0SRqZm1q5oFQ5KNQwjPiLUWSzfFIActo6kDQAbeOm4SiOyjCEnigeOsOsr+FKu/pFbGy5J2y7WOIaOXIR8WAWN3C/Ueu7BnsDy5AkSUo8xVM5uhy/UPwaD/uIOMwikzKQcDQrFTsAnjDCYEOGxMOuR3Cvc5MzFEq9J4xM/3bwxa4BxA0ChX/8k0XgzMiBP+JJg0I5FETTszqzyzqTsa0hHTP4msTgJ6HxkgbxMmIghiLAAeCKlfEaydMCgDdAuXhzLyssGC2oRuBkO7aDNWrgqUKwI/YpG7NxhANRr8m4vUQbKhwgjuKxLEozTcyypw/wFXwqhMV4F9CyDRMgtGyLldzoJTYYKqxczNVSo3lKIXoKP/tcu1iat/58gNpwgCwwm5dwBJ0jA9MaqsNyCRw4ACXCLFl7tYg0H8RQow5BHdtwANy4INskK3khgII6raFqBkMwzWXAgog5Ny2ApU48Uf/rg92kjRYNLoZ6BhiNiRhYhBhwgCLYAJjIUf8qqyqUWzrbyiuweZg2qSMuKxB5MccHbMAF7DjJMYHJ6QkA0IWsNJiHqyk1gKX6PNFsxIKeWKwJiFRGCwFJAIExhdHhQcIUIr8Mk7Y51bSSuKOQFAiQoryBoLxAJScMUJpmaMG5bNC/YKUGsCzhZFTM2qGDk9Si4IARENNLZRYhMIHKYMiX88OX27DCAYyFuYswqAAvDauvKsK0YgM2sB5DoMSsOwBDuC7MuqqIoFVGPdE+WIUDyNVLYbRE0gAo8NVfHY8siCRqQjSRuSkVyqioUdY1QwDJyw2nZAtRo01hSytjW7BY6UM4VYMp0T5rDNf7pIZj09UeOIHdaSgVaIH/ErDUdnUMCkir0RRUNKNXjPKLWAWMFRGVI9WNIvu3j5SghLJEADABpSEnEZg0WuscE2VYQkgDDDAGiHU0DRgBSTkmFXiCZ7CBjIWJvykXqsKCNCgo1botjLqKwgHEIQWPMIFZryrIgSA0ZzwB54IkQDKI2jiASfvEEaHGV2NU4HS5h022Xd2WIFEmFZAEoz1aLlDG1JLLt4nLqYo2zcqV8fkABKABDioEAUAGg3McvcufqBgnD2A0DsCUcgWTgsgAqrpBaZvVRdVSR4XU2ykKJ3M03XmoJ5AEVrDbXlIivV1dv52CYDkM0qEB5giADGBaAiGAgkO2J9nZ25kATTEB/zz019i53Fd7mwygxixV287NVdAFXQ5QpIl9gicQghmwgqPdQl+SyyVCoNuqJ0PQTrAZ3DvKBmpIAwIBgCswNibb3cUyrPEyC5NKkAMQgOsihJClwbTV0i3oXGSL1F1ttAj72ScwEkmQhBmo23btJV0Yzcwime5d2s4JDMNAAVCYg0cwX+oBq7WohBjo4AtQBUf4DUcAglbx10El3qrCiJu1T0LgX/91Mt2RMA0Y4CPxhRKYARBA4Etlglw4D8vQWwcG4hTWy3xtkQcwgCigRNG6gEVIgiQAgt+oAimW4t8AAiDoJODCXfq9rnpCw/zVUmrg3c+F4d3ZBENigBFIhf8bfoYczlhlNAARCM2+JRkghtqHKwkZaAgEYEUDWJ4FAYJ7kWJFIAJCJgJFOGRFCIsRrj4CmMXVW8OsRD373AJkEGPnjbBkkuERkIQbBoHTbdfAagbo5FsHvqjWg+CIKeI72ordYOIqGORCJuQbgGVDDosu6bSC0IUJZL1iVdBF3d8B4FlP2NUTEF2WOeMRoF5rkALrbVdltIkf5t5SNuWGQ4aogwjDCIBciAFVAII9aOJYluUXuIFYTuSw0Jf00lY9Yzino1+HvM9lCGb/fd7cSSTohRRJSIVnmAEp0IPrDTbQjEuMKuUJbLicyZVys6NcuAAr/mYgIIIbIGdyhuj/FzBkRE5kcZiQTkqaQd1lzPo8OblZLDg8DPAAXeWA3akURdKdTZ6BZ2Dmf04tncgJOh7pJaJXg44pwQ0AGgCFXFgEIEgCh6ZlWZ7oF7josMhoCuHoAdhiXuaLbAiDDsTGLegJ4uHZCaiBooDelFakijVgKmjmX30ByagMP/Kj7ZXmB8aCeesQSPBpoBZqoIboWI7oiC7kQ07qEV6E9AIAt9GzpcWCD6i3/ntCXbCNwTNphHuy3NEABtid0n0BKpCCaDjaGBgXHMlsHNmwKZiCq9isKei8alKpfzGA8FiEvVYFcbgBMAADurZrLXkB2Z5oIuASb8PlZlCi0Xu6KZANIEgQADrLLwEAJEA1uhrQ6mVLpLuBghJgBmvQg8rmgoAAACH5BAUIAF0ALDEAHAB0AKYAAAj/ALsIHEiwoMGDCA82WdgEXMKHECNKnEix4sFpCylppCSKo5GOHDk2mWaxpMmTKLs00SiqpSgjSJCEypFDnbqaNa/JkZOyp0+fK1t+CiVzZg4+O5Ii3YGUjxIjgZr8nEo1IrhAHEPN1EpzR42vO3okHctnzKeOUquqVQuuyctPNJF8knnU64QaXmv04MCBBw91Zo3wXEu4JzhKc7nm0DoTqV5PPWpMmNBjL4cUf48ogTG4sGeLgcbQ5MOnbt6vlSdP8MBFNd8ef3PwuNT5s+2Hh+F2zRskCJfWeidz8eChwwQunjhU5pFjBwcotW9LJ3hY1KehfGr0Zk38uOrhxIkn/6eM2a+GZ9PTU3drZEx23+GJD2/NPTwXyZNRczgBRb36WnIgdtMO8MVn33BBsOabahMEoVoNHITAjH/S6cNKIDCF8h4XHRgoH3et5ccgg56cMCGFtl2IGHY1/AZefByq5klyJ0R4wgmeeDcZB+ih6Jk+0njEYm/zuThZciGE8MQIUEBxCQxOhsABgzz66JkVQb5E12n6nRDCCSo8AYUkXzzzTCkRoHkNFCHkeGQJVha2E0fX0eVXCkcwwMAIl1zCZJlmPsNMBMwUGoEvl+B4ZI9xqgWkRkZ8MsYY6mjmAgxQIlKCpr5EEIGZhHpqqC/XaMCBm080SpgcgVg36WaYPv9pwRclkPqFL898KiihIPQ6qC8jtDljCDaoqpYcpbSnzqWyIvLFrF98cU20uebKa6/Y+gKFqTmeMIOxVcnRXk0u9OnkJVDAAO20t3YqKra+RmCBBop6C+5U07CixFHLmtunuc7SGq27zMDrqy8WPCGsJ3De65M+zDCA1BHl/msxIhYg4ku0txJasMHMlMDmjJ5I4rBPrDCjgVgpMGDxv1AEvPGsnX4MsshS7vftySlBvPIOLb8M8zUW+ILwwDbHSysiOa9gDc89sYLInS4LfQnGNFsAbc2FFrrxM4iowFcWrECdEitfpBBC0H0yoMHbe6Y7a8ZN1t2kpiXkjcgIN0r/oo/ZKYHAwGUMuDCCBl/y5aUGLseMyCVuv63BCCNIoqkkM/DtNOApyWFBCEfkifiNISCeJONQcAwFCZvEjXfez0BxwgpWcJ4SM4cfkYLkekquwe5Q+FLoF1CokOQTLUhSgpkin9BK7bafJAciLjDQsp5fJud76oQ+I0kLKrSCvPKCfoHICi04FL1J4DxzSfXWJ0m6CiowfkmthW5q+fI2P/OFClB4RrHWZ5GraK1PjHPbExa4JBJcrUzMeMYMBFUoeD1DZBNkFAEnUosLlQIR54IcCUjAOMpdomgeM9OtBAWCQqnQhRukSC1sEJVArKlPJHAZAxw4QhLAgGCDelcL/z3lqZrFcCKtKoU0pFGKcxXOZT10mbOAKKpBBdFTRTvRESFSipdIowkROJcLSDACMh7OgSgkYtfW+IxOkcoXA9ziQyhhBCMosYmQ09MO9ci4ommtYxFooaEiMLBraFCOCSnFJ+wYiH+54JE5fNvaGLC6mNUMBESsltEiEEdEJoSOoihFICzwvjGO0W0h4EHLMvYFj33sitRiRic9iRA6loISpHykC5Sgx9ZdimCC7BoRcQWCWdISIRa4RiBK0Sdd6skFpSjFNUpRM0/l6oq/YgYroHfMh3wBBoEIBAz+lcNLyaFTrNgmK6TATmsUTJjaVF83H8KMLwRCGojS4zOvMf+CEgzhBi8IaECpMIMJdg8EZZunRORggy/k0XopSIHhWjCIQQhCEBQQhw6EkMFA2YCbCoWIFWKnJ7X55RItyEJFLUqBiwqhBCs0U0JDKhEbSMJtEV3b1VagikH0VBCD0MEQ8gbTEswABDSdiBVuGtGIagAGI1jBBjYgCFWoQgfisEbeODYDYyb1IFbI3O8iegQLRJWqF73qC1hR0GgZdaZffQhJf/c2RLRgBRdNqziYYIOCEnUGcI0rQsB2ibEyoBRnzStQmWCNF8xgq4AVLEQuCIXqSTQQUJBqWnvKBCnMQBLKK2hgJVuQzOXQekrArFTRulhrDCG0ZkIqaREygyf/aCB0eOLnalu6WCpgLlDPQOhsD1IC2zY1BcWbKm8FoQPGFvSaBfvocAtigxFsQne7Y9pqp9ra514zuFLQw3QFMlLrim4EFmjFVDeABqoOIqsZ7N4zwqsIRUzXCjaIgJ7ytAkYfEG9G6AAGtAAVPi2sVMStIEebrAHIMx2hiD4wn71RMYVSJUCGN7Aewk6wVaaSQo/AEMMyOCGF0gWvzYoQQ7z1DgVZEEVG1BFgcXxAklYy1MF/YEe9kAGAEBAHFJIqhWsYQ1WgKAEbrvuEdSFvooyQRE3kAJAH9tGQi2PE2DYQy4eAAAC/JgJ89SHFGr8DFbYtKShc9sJpgoBDDNX/wfKe1YrSyAEa3DiBzx+AJe7XIAN6CDIcsSvJITQghaU+Rkt0MB1ncqAJ6wgC22mwAaEoLzlBQq0UrhzEnqsZwMYAAAAMAEOBjGEGEoQEQwUnzaZkWiyHqF1YpqBUJkgDkpjjGMlaMEM9KBpMui508c4wAEAgAEcFEEVTLgB59hqW8StYHYriAArvHe61rWOAYiwwQtuwO2hYu1ZI2iBNX7ACT1sessP8PQx9HwACYCaAA6ggA5MfLJptyAEzz5VBzrgiWjb4MhfgpsenyCJJ9NaHKDVmgWgQPBMl3vToE63uoPdjGYIG9Si3kCpjSUH76lAUfvugAn2HW1WWGMGrf9YQeneZlsVtIAJVVBEFWotCa0xvBVU4DWWN/1rTxuAF7yweMUrPmxid6ARg6A3ivLLcByJHAPGMAEGQN0BDvjCzJ7Nwsolp2sqgIHbTLDcwhEnBBBzYuecTvcxDHCMoA+9GW4nOqjjrQP/2MB74NO31DFgAgAMYNgY8EGZWaHjG7SifpIbwQxuAIavC0EIj0PcE3Z99nIDgQzoXjvb4/72zlu8yxQYhHRGWtyPe2LfUx/A31X/dww04gus0AO59TCEBTJOA1CgAuO/zgQhHE4Dkzf7nX8gjrSv/RjHAEXQK9D25QO9GRWAuwI+DwEheObfIFTBCnzw9HZLgPWsdzf/wxRM7hAL4Qkq0FPuG/91cbSg5ZKwhs6HD3Fgg6L50Yc7L0ChgOlLHxSgIAZE52XvVRX4JTIKo3cAcAAD8H0NyHoVBwA4MAPspHM/cAPnpyeIYA3sdwPicHi4J3/kdnY6lmcS53PHoABu93zRxwvI54LIR3HCRgAFQAEb1xOf1QIpdwITIHILGH7gxwKq524TKAU5N4J68AItQDnZxm1JKA5Z0Ap1JnskSG43EAMAcIJrd3/LN3QVwAv9B4YwmHwK0HbHYHFeJg4oAQ59JQQp5wOnt3fgx3osIIRXIITuJng2IAVgYIG0934loGB68IRZoGtUWIU/UAWc5nOexn+8/1ABA1AB0feFQAd0MZh8yrd/QDdsBXASrFACI6B9PtCDUidsQDgAQqh6QsgGDQgAK4BQRggGladjNVYCIDCIUjAEhUiBIziCD5eF6fYAphCDQccLIiACVyACFaCC+jeGbVeGKdh2B0AAolcSQvBsp9d9c6h6V3CHbMACrBh+GNAKNsAKugcGvvgDntVVCiYFtBZl81d5nKAIaadnpqBuQNd/x5gAX9h/lGiJzXeJa+djSjcRVFAEcViKDDiHLNCNVxAF4PiNb9CQAzCOxUQF24aOs/h1e8hOyRZevlh5O5aFBtBz97h5QCeJ+Sd9lViJKXh/MViSBKAKFpEFOKCQDv+4jW/ABjzZk6zYkFcwAADQCjOAkRkZj3ogZcn2Ao7QhyFZecUHAJ72a5eoAMvYf2HYgo/4hS84hiW5dlwmCBahClL3g6eoijvpkzwJlBVwBQewAkIgULvXi0l5A2gQUE35A0/JCVcIalMpjF9JhmAYhiooiVa5jAKJfIFZkg5QEVJwAX3nd9s4AHf4BmmpliyQARnQjRKAA1kwBALVeIP4dQAlDhcAVIrQh/J4dnpQBXmGiaZgCmpHhlipAPynkoa5jAAICsMYgzD5aRWhCG0wdQ4oARJQcXdYh6hYhzxpmXUYBRBZhwSwAeIwBENAaxZ1URUlDuIwYILAeIdIgkT/oAhJgG7pFpvoCQqdEAAJkAC22X/8iJtXCZOJOZBiORFD4ACglpMD0AzIGJRryQJR0JyWGQUPaQkT6WMUAAE4QADwBgEQ2mYERmCCIA5Q5pR3BgZVAAQx0GmxCYAfup7s6Z7+GJ/yqYLQiJW/CQBoQBE6QAAY4H0Q2AwO2Y0s8AZRYJkFmgFO4ASW8KNByXrFVmAVJQjt1VKRpgpVQAREcAOKsAcx4AAPgHymAKIh2gkK0J4JEAAAOKJY6Z7uCYAlmgy2eX8PQJMT4QYEAAD8SZkikAzJ8J8CiqMImqNOgAw/igxOkAF4+gYD4GXMxZ2C6ghooAq8NQhAsKRE4AhJ/7AHeyClBlClyWcAvNkJXdqe/SeiAdB/I9qe6smeFZABhRCGngYBFOEGqTcA4ciNylgByMgCltCjbBAFPxqrPWqZPeqQzcBnEHqoaGBRgqoITQoGTCoOjnABUomJu1mlpoCl7RkA0LqlZZqlVsmp0FoI2eCq7rl2nTgRF7Cm38eTrPeQV+Cf0OkELNCjd7qnTkCrOKqu0CkCAOAABRBpEFAAF3CaEioIjmChimCsQCAIBGCPsdkJlqqeoLCpWkqimGqwXhoA6/kBH5AN8VmGD9CYE1EAqTqHNfqQtIqglpAB0AmdbwCvToCjV+Bj7/VkMmesvzpg+RqzUBoDMUAAbP/3oeppsAjbCZCgANCqsMnAj/C5sAEQBh8gqoVQAZBgqcfgAGoYETrgADHKehPZsd0YBYxAslp7qz0aBRkwBZbQkIC6V9vGbYqgCo7gCPVVBTPnCECwBxdQAAVgs5FapdDqs9GqsCNaCMlQCO0JCVqqkoWgmdmQDOzJpcdAAPcJEeJQimipistZme3qo3Z6rng6ueqaAcMGbzVYVT8FBIMQcxfqpDNnUQXgaR/6s9HKj50aAHBauO2ZDX77pdkguwlQCAEACaDwAATQohHhCDDapnRYoFHQtVEwBzzKCMrro1PQrj+6p3HKZ/lKs3CrCjHgqEDlCD5VUYZqs7u5ns//+rML67fJULvla74kGgCFW76F4Lfu+WkXIBGDgAFT+31BqnrNKaBeywjZ0KO22rxTALaWgAwCIAAZUAEEEHoWegNs6whVRWAzGwOV4AD06gAEcAy6a7AG67PPmqW3257nG7TY+sGcOgeyWwhhoKVlaADVCBFqigHCOwA7eaM4ygKvq5lT8LVz4AQCPMDIEMAi0LvvBWVMygQNprZsa6wXdQEQasHCWKkOa5XsicILmwB9mwC2u6XXasLYirvQen8GEL8RoaZsqnpVG5R1mK44GgUikA2aicN7qpk/GsA8HMC7SoMQcAHYe5pKWl9EMHODKginG6KfqrpFmwALULuF/+u3hBu0PvsBfiuxYRAACDC7ZxoRQ/CtkkmZqpicNzqy5fsBOfy1AYyncywAU4AFAvAIUyCv+Dq9MXABaFAAsTxgFNpTqoAG3qvBlIwACNCpiPwBXBy02WDCcLqMnSCxwly77eu+B0ABUDucm+ynJauuuBoFFQDJyvy1yICnjMCjljAFAtANdqy4CzyepikIekyzUUrBlVAAFox8hezLvty+t5sME5sBypwNoqyZQXu7E8vPyuy+vPAA3foQxVAAZinDA4Cg7XqHlQvQX+ujyIAFP1zKAWzAjKAABVCh3MZ7hfpexsq96nyvFkypGmywvrye7tuehSCxsrvMV7ClkP9AybJbu1yMqYkbEaogtZIpAqj4BldQsmx8p1lrxXMgzHda0T980XgqAHMwB8kgvZt1ATLWr/0qqCMtyACgns3aCSgQACgQ1pDQzCkc0MVswPYMrR8gAMWcAQLgvohLAGD2EC/MgOR6BScbspvZoyIbysg7BT9Myt0s2Kg8BSYsArxAgzHLxIIst/jqnVV1UQ7gabysuigcBguwAAiwAN2Q1HMA1R9guNBqtEmdAaGdAUGLuAbguwlRDDDqdw8pAs5Zss+rp1GQDHBNwAb8tQXczciADxadw9lgAJUQukz6r4War3JLwc5NrwRwAMqoACKKAJPMnmFg3bhr2nCt1u3/+csvLburnNP9t7ti/Np9t5A2iqv+O8CxWsrIgLxzIM4CYNEVjQUWjQVTMNVoQGPsxwRAtVI+lVdMDM/RvYzNCrHVncL0jAASG9r4MAUUi7udvQBQjd8S3r5legwHjRBt0Hf8qaPt7cPtjadNLc4BnMqp3M1OQKY02FIr1VIhvZ2COuAQQAD7V7AGiwLrCd6IbLSDK9yqfbvWvQBGKwD44NZ+67cGawAEABFFAOIy/AaWIMM+DLLdPMDNi6B6eqf0rd+CraeonbWLXQk0ewEx8NgRSqGKNbe8mbMp/bNhkNlhkNb6/QFzXtoL8AH4gA+PIKqarcWJWwUPQQFSS7V5/1qrOhqrmumjfI3DU0DO4ozfFh3VUw0BoVtfx4pRBU7BOADPzg0AV1ABcA7WYx3W1j3nkDzfqAzJYfDqRrvn443nnD3JlhrGD4EG+umAlpnlfdrr4dyuxSvOfBrA4RzprFzAJqwAilsFu1cFv/peJI0GC2rS0V2mGiwDGvzLr46taV3AH7DnCaDZnv0IST4HKPyz2i6bi3sQG6CfC7noVL6TvZ7l1fzGjo6nqhzAUR3VCWAADgABQBWwp6mdIl3jMgYBlZ18Oi4DYa3nOI0FES4AtV7Jmh3aUE2x9BwAMiADa2eqr63QDKijqlqylpmnFR2rXovaAgDc963Kyj4Hc/+OAArAZ/Uq8PfaqwRmVUWq8FP6vXEuA+yZyHNg7uP8Ab5M7gsg3BGO9L/sy9DaCcdw3gchDgpdxkE5kYtuysC98nCNvEtd0QUM1XPw2R8QALkg8P06CKeJYU0M2ZBtwQBQAQmQ0jwO1iKq2dmwykneDZDsy5vN5/itz5y98RDbtBDRBqC2BA4Jfu2mo0wt7Lv91JQu8X7+CN2g2gZQAKpgoS8wCBTQU+Iw4EZa4AYOAM2wpZ3w1SgA9dbdnmHQDX7eAHOw2Unf1uZO3zJftH4LsaDw5A+hsagvAtAphAdQdadn5ZT+1C2fysON34/QAA3wCKE9BxUwr7xF7XnF81j/XaQbELcEkPopne31XLt8/wjjTM9hENr4TcA53b5fvHZo6uGgFonJAJEH4AnyMwEYABAD3mDBgszJlCkEsUxBNkUAQQHdpsyhOOeDiAMACBAoUGADhI4QIKARJGjQSUEUChBoViFAJ5gxUSBAEKbQB3z4FlqkGWaBAKBALS4IkwCS0ZegHlDo0tTp0zYYADS7MmAAhhMMjhzhMQGDQCw6sWSY0+0hQWQE8QXtVnZOMgMERpakIEgkyAIOOu7dODWKy5gwUcwME2ZOg105BXz4EAYB0Tk58T2yaLNQoQQBkoKq9NRzFzcEABywioEDAyXq1PGoYQKszoaMupl92BAt/5aIjMMEkItG1cm6g8TpAKIKzQWQG/seaAZJRmCYMh7ffKRGDb4pjWv6NDt5qM8PmDcbgPDZqZUhRUxgkGBihQbUqUN4cj1QLMI5GQRMEftw/xSz5sgmAQM0KgACCiAoaZDfTFJFlZIEQSNBBwDgBSZTOjElQ+kW+CCy6x6ZIpkFIHEMkgUeUXE2DxlDCpJOQDGgAPO60EcKIYrAAQMMJjjhCCVc2Io1YwRKK6cpGBEgv7MaSmuKRwLMIJkEKtCIIwQ70utACkgyKSUcCDjgipdiem6mBbqpzrpHFiOqsDA+UDHK8ArJJhvMMosRFAdqtGKGVlboAAMTJuCAByDHUP+nBy6+suRInWZrwCy0KIVIAEbmSEABLBHsUqS98toyr9EkeCOKMs2sKc1drlMsgw8WkHW2XR7Bp5sPMsgmA10XwCzGB3K54bNaQGghBB86MKHQGnpQ4tkjGP1qILWwEHE/AdIiKKGFJsqOQL0QnFAQVcQ5aRAJQXJAzCsOEkDXwF4KIM1u8HGVsmwWeCzNBobBZ1LGyLIIEoIDOOaYBwb57M9AV1ihjQ46qIEPJYwIMgSvrIIUW4q4xU0toSzKzIC4HBBJwt/OhVCQDVRaV8wKEpBZM8EeE0CytYaS1cMG+vh3tiXbDC8ASAKQkTzP9LFBiCeeaKGVEE4I4Qgjqjb/AgYGTvAEBwDsgw0LSxyyFiGzHFrMIioVACDcAx0Y9S400Nhgg5RWMoBKzWDsBAUZFmgAH5/XamCOnbtp4JFW6bxp8FgLKRoUUwy4wDMrnmlhBChGGIEEGGAopRSrSWBAgxCKIGAAZHJCC5mgHALQdYuywRuAudAYCQLkIIghhgJwwOFAkXBY94pkxAsgQxRo8Ns6xSz6oBu/D98lsbU+AArXQgKQQQZQlKLxKfSEgAKKSy6xwIJrPjfiGgsuGeGJEBoBYICwVGed1zkeemRSoe5kLAAAcIkCwRGHIwzoCHSBqi8AkEAUpqSnTshgMH6z13VwRRRZNQAx9zqbACij/53ndI8A4niKNSSBufGlrxSUuMbVOqe5+dTnSApxgoD0sxY1UYQsH4qVAhQQlwNF6CTDQWBJJqQu0YggGalCQSeUV6/J0Al6jDGcGqinosFFBHupUgoTnkIFFTDgEp5Tnws790KMSUUCTsAH9RRCkaAFBRkZiEIhPFSUCsglQWh42V48NUC6hKlrUUgAKASDJpxMZlI7m1UDmOfBKJZli4bUkAHQ8BQdhAA+6bvGNTrnAhJAARGIsAAUnuCDRnCNftRDRiv9o6KCAEVXH7KIAhxArpSgIS970YvbHCC8dU3lDVPIgOMimDwU/CQnarjgzjTYAC0kxlZziiKuIBijPv85JQsrCAEUAnGNSwjpCC4w3zV84QsLvK90rkmd/QA0p3clZI53skgADBCuC3SpSykzYoLyIpqpiMCB2dDe9h5jFjX0QQ0NiFUjNagFK1bzZpPBXtE0Y6UNOEUcPtBABGAguhSkQIwW8IU52QeFYzXiK2G5zrag1CYAXY8iupGZAngRwAGKqyT8lJCE/MmSKWlGgjNRUxQZyshnKnQykIQiPHHDq2Q045JNEccKSoAIFWhAq2KEgTlLUVILIOIJKkVdTlolFuz4Zz+Gi8hiMBMGTv2xEi/jiB8HmNOVXGEsmaEJTaqohv3N6gPPhKZ1XCWZNVlxejqZEgE0KoQSPEH/q/Ap5znBiogRhAAHpgrL9FzVraC0dVKzcYzRCEABdMUtOQTwpXLoKiYWWIIgGQgAAmaCAEcatgH68ttstKCFPiiUeYet4PSMOxapdkEPTKBCC7QaUhfAAH2dZF9YW7AC18h2mQlFq0NmM5v97XZnvKmEAEPiG5T4FIlikoBssxMGNB3OsPral+GgGVz8DqMP1MvJIjO4CwGwoE/WGIIQAjVZcp5PumEdZSs80bX6WdGwrvJgAxyyP8NB7zGbshLw3FYA9KoMXSxLUJgGgow5OIY7gGXRvviFmOAOQ7/7reBCd7s9GVgPH5YAQBduMJxtjo4BDCABCS4xvlEiQhLY/33NLhQa3OEqEkBmiVKafHIUA1QiQf4MlcnugiBQVYiNS8oGAublyMAykl49G8YWtoDfxOhWvAa9mSUGAIEbILAIK3hCVuFDWVGOEgonwABpkLFYJ0MZZ21qQG66URQzE6gAKdEnhZRz6Y28bExsBHAyHLNmDaq5OzMOrr32y6bfinde+hHAFQighyoMogitUEEIQqpJIkOBwVDgQKEHMIXFJlTRzZuDitxE392UjEuicluXIhQ3vG7kAGlZkk88NJuGipeCu2izv9ZiK0Wq4bdamFQYdnWnBEwuz4PYptRCoEnMJRkRvP4K6oxrHfy2NDv5WxJjGlqYBMDFw8rRsv9JGDTiliXIBAfAQmIEkA3uGK6h0JMU4GTch24Adhf8E8BDE42P/GUAEscozwvM5YYi+OBQ8CnyJZLM6/kNZHp9uPiw+22WDO/sMQiYEQUuQBLjhNmXQ8fBekgD7MQMZbSFs68j++AF/WoQcZGMVRWDKxTeCKILilDFBRrRCE94AtdDJmVYn+AJjYVFv2ufcWKwMJS24KqhNDGFAyYUHAbVja5DX07XADcZnkFPsNCbFJuHYePDquHhmkEAitrygQSMsCmK2EMM2oCDRnDg3SnQAAnkrYIODOBRqUt0oofdpiVluKGyCkAuTDZALfVRQV+iNASERwC9Tk9ouGJR4dL/JOxhpNrJxtVJ9p4jHQR0ggCO0GgbLO8AsHNA+hog57xHQGjUpcXJW5Cxm4WbEwyD13mNKQxcvKwcABioLv3UkmjG1HAna/u7aeLXI2iO3/3S3LjTCw+OuQcAhdGoC7A8AsCBDvCEGtC8IxgyBkgj0XuDQ2O7GHszJDGb2XAL7TAtkVi/kkg4SwOo0eCFZkg//tgvLMg2wnom4JKxXeiGYjqLjrOxBagtGuiEByCDAHQKNyCDNiAAE4iYCWiWQ+EBDuACYziANzASbuu2GNOvlrKWiCiLiOgrUwCAfEKQczmXlHiZcBE6AoiCNvIXizgMwoqeJsSHNzgAqaCKbGAR/8OZwe05BgcgoacYhALoQR4xAWPgggnowwloFKtIQtniNm67P+4bhitqE5zrveQDortgNlHhiOAgsZVIojaiMYuwsRRUg4tDhquIGK7hBRTJoA8ok2OIgc+wwx5Mv9EgFD3kkVKxCtmiOQlkQv7an/C6oN2wJ5N5LUybC0sjjQGYiobDr8VoOme6Pyy4Cgw4wEbowQfwoQD4EEjoHlCYnM+4PPc7AF7IiPS7tKkQiCWUMXIcBi+gwGWyFaARr9ICgEoAiZHwkggJpHU5AAkYwfQ7ACfAAv0COTtKwW7QAjfbhSTEAGM4QE/gAB8QpAfgBaMwpAdgvs9QBd5hxQdAGP+NaC0AEIEM4MduK8c28z7DQqzeixVejIF82qmDI7EPA6heSr8rAJz9qrbogSYtIMdl5BEPmABPcLcQWIFUIoCGPAZQIANFMA9HaAMyuBKhfADWchvRqICOpMU3i7E+cLM3Yx7wK7w3nKK4EhVeqkTRuDSRYK+NtLj9eq/CA64t8II+KMgfNJR306qfLAJofIAHQMUaoUgebIQC+MaXmQoW2MdEY0HD9IJz9LattC/oKQpe1JJQiUTWEiAKOJ0ByAgJwAL8w4eqg7GQ7IOrOEie1LzJIh2HKYKlBAAgqJGmKA5VcAOuuRILkcWMyL2Zyy+sLLXrACz/erTjyYVK4J3/DcynuxqgudlCBlJDjQAApHNCLMq/ttyCnOyA0TwBDVABFXgCBmiapnkYMpBI1lQEcVCFNmDFqViCJTiAAhgEHXAN+Fsm/OK+YTOq73KMTogL3vml3+myAym6+fHGSwNDWpwwmmvLc0SGA/jBhJQaDWia8Wm5p8kCVWDNp/ixZ/wn1sKB8miK0LMEnBk+7pPPw1IT/3IMFHgAB7gAXkI/VhRGNpAACRgACWCtjRABzbw/6rlKxDzHN2jG0SRNzRmf8TmhVsiCIaBQJPUMcfgK7Vss1um+GQuRZ7ogmrDBFP0jCKCr9GMBFmiGAzgAFvBEGhUTwCnE4OK2HT1HS2jG/7CTPuvUgM0JJUmQhBZ4glZ4gSTN0y7YACQ8tJxAhjfYyPxrO8F5plhBAO5xvdwZIDHJCGkbAD0qABNgoDEFAAEoTNzcUek8gAM8AU/11OvcHCiYU0kQAiGQAj1N0s2yD7SQgGmbnu6jQKDIRX3pBF7MUh/8CjY4ALkAKBwogrkpAk/gkcDMgDYyPSczRy9gh2HoUersyXd703hTshIogSGwgVRFUgLgrPopCPhbQvl0O4bCFccws3uCgNN5gzdggyg4AJPBgS81gZ50mAfDgNsDgJgcvppTVmZ1Vp60Tk26zlAaJUlQslPNVtYsgvl5FLU41v3bvlMDiqWLtHPFPf9LuNgklIsOIA15lT5POEJ7DZNttbhk3a82Q8xhWNMD5ABPncvsRCFEaAEhGAJ9QNga+UuB4A+c+VD8cyMNIj8EAJeVSAb9cIKqMAHfmZ9mjBhlCZfAdAIzXbsQPUd8GABjSEgO4KZ3w84nGIEWqNMnEAKbrRHRED2FaNgPTdYtuKJ/O56KPQZeeICM7M/IHIkHSQlcxVeZ7MfbHMgeNRQGLU3NmVNTtYax/YwNYKDs21nGvcT9ahXeZL0f0ouNCM6f26nfAAIgcITNFQfPBQJBUNF1aYabGb4c3QU3GwZP7NTSfNlRLdUhsILD9YzENRUIRFu14C84eyTBC4DJPZn/JDAgzxWHKiheRVAEIjheJvhcvK1HwnxYWOW+ZTQGnuQB0tEqFXgfr22BZ5hdzyhP0Wslb2XcxDCux1WMxTAzezotNHAEcTheIojfG4hf+k1eJlje8bQd4dnIb0W06FVdDOCChHRZOOVOIcBW73WKChGIi9WWsEBbs9o/nZiIxtCMe7oAQSBe5CWC+QWD+a3f460CJkCglvmnZvhWyehbRPxbd5us92maGUhgjSrbN2DYs9WJxr1Eh/sOXgyOKkDeG5jfDwbhKiBec8HbMHlV6J25kCRIeQ3YMBqBVmgFSZBhpygG2HIC8W0lSFEIszIrGsuZ4kmGtfk54YDf+qXf/xdAXuU1F1X4CLfB12IsPfOFswGQ1zdt0FZ4ghi24i4QBwZiAQjkYgdWHQhewunBjWz4gGy4J2d73w2W3w9eY0Uw3uFAF5eZH9IjVH2Nsen1kevEzir24y4ohnBs4LQQ37N94BRuM5+JJQFxZEHY3Ejm4OSN5OMNYTeGYzGxhJlbrGPNP8nwxB6B1lYg5aZQhXAk5IJQ5frZ2dtMDIcQEJwyCUiu3yBO40qu5CooIpUQjXyV4PI9U+yo4U/kgBZA5qYoz2YYZEJm5hw2LkRkrGxYmy4ZBEeoZSEe4vgt3uLlXFX45tPpLDjT3elxAl6pCgxYAXVuihgAgCVol0dBaDVZQohZvZlp0gnEmZ4l0RV3rAtHqAJbDmKSHuJc/uFKPuJvnjZ7cVzFA4ooIqaquIqMytOAAAA7)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732727012"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1732727033"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,R0lGODlhyADIAPdOAFJENDQyKysmC0MxC1tMRGxiVUM7NUk5KCwxKzQyJTszLCotJLR6ayYmE2VVSkM7O3RpXcualUQzHIdXN3xwZzszJMONhXVsY2I8FjMrFKx0ZYN1bJZlTHVRMnVGDSsrHMyfoqNrXDwzG7N8eLl8c7yUi2lJNZlpViwyMqxyXKl2aplsYzsxC6uDfLyDaKWZmMSLeGtZZDMtMriYliwtMZVZKMqqqaWcpHdZRrZuJ5aDfaFcGqpuSZlhOoplVrWuwYp7g4tQFKqJh6WSjZuYooZrZc6Tb7d3W8iCPn56grx8XEM0JJySjeC6nzQrC6t6dLmGezUxFLanqCwqBa2hnZeNk8q5uDsxEyskAph3dRwbAhYRAIFMD7l7axIMAMmWiqilqiwxJTw0M8F9Tl5NYJWMiystJCQlDHxyazwtChwhAjMtGzsxBXdZWYZsdTotBSQjAUM1NNW2rCsqFN2hbsSZlbWMjLuywsycm6uOkbSssm5qc6tlIx0bATUxHEQ0IzMmAtapkYV6dI2CfBwVADMuJDMnC7extbyLhMWdoJqUmHtzeCsrFINfZIyFhiUlCzMuLEM1LLSJg9Cfodqqhl9gWzUqBLqEc9GomiIcAdbDwbJtZ7awxjUzM49hPdCOUjs0M8N7ON2nebGcohYbAdGdijY2OdGdlbuFeruLhIZ6dTUqA820sad7dqV/gLl7bCUlDDMuI8yJS9SUVzQzM9bJybqEdN7Ctdm2p05JUjosBSIcAkM1K8K3wcmWi7Wuu9mcZjYxFDInCx0VAI6Ad5J6g3RFDUM2NDMmAzQxHBshAiMcAsucm0Q0JLu5xsSZluPPyMm8v9atmeTTzSQjAiorHLmeocmVh41sbDMsGxYSANLAvhwbAScpFLu1t66ptNvDuiMcAZSMi42LlDs0NDktBSwxJoSEirCnqyUjAbVzTXtnWhEMAK2Ab5N/izQqBDImA7Klo8W/xIZ6dI9zddLExjImAuG2lCUjAsSYlM2/wuG/qdyzmenh36R0Z5+gnCH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCABOACwAAAAAyADIAAAI/wCdCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LNiW4s2ebqOXXpOzVafwoiZo7l46RT5+MUKIUl5Lbp03kiqJDmM6nUKFy7NiRo3EOHgyM/F0Kd69hxIkVL97MGXIgfpOPgpNLB0njUEgSc+7BeQfrHJ8oyQk9FJyou4lD4UVienGNGj2CB+fA4QQPHkeMgKYNlJJpx9A3A+8xIciE6548FUeu5NIX5j8paf/m/LtGkBoTgnuqbh17jxA8UsS3AL6n8xyhfFv3wN/D9f/9YUeccfIxYEN9Oo1mFxI7/NZffx38N0GAE3gS3AkhhHBCCqnMhmBN04DDjyifKBZEEA8+2EEH/vXXnoTDaXDghzOFOGJvDU6YYoAtXuefhP/1cIIvNM4kIomq7YAifyymOCGQ2VEHJAczFglTYHchMQYP5i25Y3UVFheCBmSSecJ61/VQpZUt9RNXlvkpiaJ1EQbJQQgMXJJKKr706UsqI5yZZglswjSiYVpq1sOAGaaggQoqQGFBHcxEYOmlvljwhKCejFDoS00MdlhmKaSQ5yWXQKEqFKnUYamrl57/YqkvUKiwnicqfOoSlqkhpoQSLlwCA6slWNDnpRF8cekkzDAbgQWBZteKri7xc1gORygBg7AwWGCsL1+Eq6ylskbQ7CToRuBLCxpw4MkKdVDLkhGJIYdqqpd4a0G4fY6L7CnNggACM1+kosIJxc0g70pGNHZEsNwKq6+fx4ab7CnoCszMnwdr18LCKsGgGGT3ogpDKt1S3K+yX2A8icZ/BkqcECCnBMNipkJxL8QT8wvuuC8L/HIdJTzRLgcf13zSCDg/ofMlLkAMQ8p+ftFnwAJr/CwUGpxwgiRKn3TJe46+8krUl5BwL9WZgmspMwMzU+nWKhTHTNgm1dGoBmej/0oCCSO8ojaffep78p57etsnoCdMi3dJNmgQgqMaMMAAmRpiuMkrknoL6OVkqtACFJIgPoIGYD9eEhQbVi45ccV5PSbnnadyyQgMkJBKCYjz/sQKd6tOEjNlFr/JCLeXmacFln5Rwqq9lyB9C08IX1Idll/+BAMjdA86mctfWrQGm6gwghCSlFDHuqlbL5INUOBuuQqSI4wh+LqPy3v3kqRP6caqYoX7RAIO23VvBPTTwAoeVTnLcc4X5qrDDPo0A7jFzReSGIEF1jRAjoDjT6oawRMOqDP5qQ0KvnCV3P6XtYFFgE/mqkUHOzINOQTiFAUbwdPUlrbcvUJPKbyU3P8s6EJkMUOGM9wIK8J1w1Soym9/i+Lf+KTCSskta3NT1xdAkMSNgOMUdtnLtqBmNim+gnupYJ654hYwuUVgfRDkYBctAkYjhGtbUYua4AQXRSq+0Y1wA2QdBhkBOc6RIoEgjBGMgEcXPCx3JDDbGfU0MSGuUILrC94hMSIHI9iFkXmUZBQZkIIQbGKK+3qbGwc5A/UJcJMZASMdvmABqLlgj5G03CaWZywhOutSgzQkLCfyJrtcwmyo+qEDf5hKc8lqiMCcQR2sMEyNBMICU4MBMiMZLKlZDJrmsqKlKljNjfgiYsk8m9kgRrhwImsSb5yBMMs5ETmcgh/8sF0Pz5j/PVRJqk8laJs7Z/BKenKEGU9zgRJAabZTsQpxx2KlhwzqxRLYEgb8+AIzbMBRG0gTVhRj5TwpSpEZPMFsMDgFFGYQDym49KXWqJQvpEdTZlCTpBqxQeAsBwUh6IAYxFCFKgTBBB1IwlXOC2hA68AKeeA0I3IowRlVkIpWAHUDgtgAGoghiCEslabqq4MNrODUp16kDlBgwBNKIIksCEKoghDEIFSRvhQSTXqDBAErWIFEs1KEFbZjQCpasIINbECoqihDGVoZ0JnitQ563etN/SoRVjzvEr5oRWGxKtdBvMCySpVeEDe61xccgrITmYHOvtCKuGZVEEAowwukANbH//7RBoeowgaYgNqIxAN5EWjFYQXB1UEMggkvEIITqQhSsf5AETGIwSCk0FuH2OAJlwgEYeMK1+O+oAW7o9irCHqHKsSADASggA6qyxBWSAIK/JDEZrl73HhIYmVWexVTfwAEMuSCAABwgCpewF6FqPYUhDUsZwcxBGscNVniMpcvrGEFPSwiFwDIcIYFnIUZWKPABalDCzK7Wa0KwhFMsMYMzJWsn0WgBGMFwx7IoGEAGAAAGDABDnyQBfTNYLK9tUH6NGtYQaBBrkywQQmQNa6Z2uAOYIhBLjD8AAMcI8MHAIAJHICDRvhgBS2QBEFRG1VfqKCwrkWyDYSALPHZlP8TN4hBhqtsgDob4ADNyDIGMLCiRqxgBa2QhDUKSlI5WIrICkayNQKqRWVh8MnP9W+G6/yAY9Q5zweQQJa13IEdf3kFQrBGPEhqgz+tIAuGRQMaDrvYNGYqXIMVKyd+UAUMA+ABuLbyASLRjF4PYAASkACOTbCiTu+4CDpQWDlZUQdAZQHVqqYAGgZRhjwIwVj60uE0Z50EKhsA18c4RiTG7etgA3vTe86xCYi9Dh0MYZi1YMUELdAKn1JbtvFIbum8BQMSPEEIUuAEJ/SwB1t/u9J1FnczJCACEfwa2MHW9AEmvuktb6AMH+5iLVwqiRacGc1CLQMThBBmC8SPBAz/aMUM9CBwPSSBxre2c50jwXAWXEEELHj4wyXw62Ys4RgVd0ARykDdDtbiEFLwaCvIdGoIOL0IG8iC09IWOklIgeWzdoR/cV3pcPO6GSK4QjmuQPY0LCENv06D2SuQgApUQAGYzjEOVKEI68mDFfFghUtn0IoNnU8VOphrFloxApSX6QkrF/isibD1B5jC0goPu9jHLoIlLKECV2ABCyrvhwr02udLoDgACFAAQTyuFiqWhBBssFdrtABDG3xBPG7wgsGTqVRkEjTWBR5lKiPcAOOuQNjLUY7NN1z4YU8D2yswgMsrYNzijkSdCVCGsMm7BC1oRQtYzwqla+AJdRjC/w2YwIQs0G8TuG9BHaTwA8XDmcZcrzS5ez38Kyif7QlouNodDmwFkIMc4QYK5MB1F1BWC2NZQqBZgMZ9SFd7oMYEiqAIRXV+GpACKpAHYLB7s1YFjVdl5MZrwpcGwdBwN+cHCZANaSACaDcAvRYJ5AAK4XYM8ZcL1bcwDtYKHfMuTEVWA6cI7vYCNxCEOoCDFRgCLRAPetB+ikdwjReD5JZ5mTeCEiCCGWAJVZiCnXd5kXAMABhuM+gI8mIFrtcxxTYkrGAFh8B7swUGbCgFCYg7GqByV+d+tAZzueZ1YBcM5TCCfiACFRAMwbAKlmAJwdCHnud5kcB14UZpDwAAe/9QdGxiBVYwA4S1Hh2wZx3gA5IQCKyQhrOmB2x4A2xYBq3wBJAiCS2lgYw3ZzInbseAeTYnAc3gdoAoiBmQAdlggiKwhTLodZZ2cA+QC6pQKIcwAwl4JiuCAcHGZ62wUUkocD8AimwIBqRoiqjIhrv3A90Wc3YGeZGAeSIoi2FnCYAACBkQDLjYdgpgZTEYg1Z2cARQBWxiWYTFARPQAesmeh2wAiVgDS6FddIIBjegA+bXAiyVge6nB3JGZwmHhyLgB2ngB3k4iPuHjibIi113eTEYfwRAYDQihh23AhyAj3wGAME2cR1wAiWgdy71A+0nkFLggK0ge9jofquYa///F24KkAAJUAgmKHzBEAVBCYiAmAGdB3kAqAB+4AcbWWkPQACm9yHgYA0JuAKecIk4pow8p2mZyFRSEA8Z6JKgqAcvQJB58ALT+IxZlwu51pBcqABulwCdB5RLmQAjiI7ZUAG/GG4VcJSQt5GL8CEeRVgncI8YkGEmcAA6JwEmsAKsZwNgmYFJqAd6YG1nCYRp6ZJxNmnApwAxSA47yZOi6QfBkAb5JwLNQI7B4Jl1Bpo8WQG8yIUy+ADDWB9CpllXaQIAkGkZpnPABgA+wAx6F5kZeAh6IAVVwAR5kAfkB4ERSASKsAeT9plW9n8BYIKiyZPZkIttJwLm6AcKYAqm//CChaCO4QaaCqAAuBYD9eF6f3aVGDBxA4BjPPdr5nYAniBP8TB72EiZUqBY5KdYggABDuAA0dV15ymbnUAOARAAPBkAChAAFZANlrAKuDihAmCU/hcAndCTogmhbFcI0vcABQCJf+FeHWOYJrmMijkA/AdxHWCQLHUDilAGQSgFNyAIF0ABFAABBUAApAcBaEABDpBwB/d/EcqgCZCeEeoH2XCLltCHt5gBbleeolkIECqXfpABIjCbNBgaVLkCyIiPu/lrOPZrm6d2ZMeYgTYDeUAMBdBuG/ACQ3ABMeB0FHBYOiByZaAKBQAAi/gA/0cOnZCeDaqOTkqOGQAIKf8oAFbodnkplw/qoFv6dvAIhn9hDX1niTlWpr/ZogPAAoNIdvMJaCuAjzhwautADH2qA3uqWGWgA6qABhBAALsWbuO5oJ3QoLwKoQHwpOUICFaYAVgACMHQl9o5B5OqANsJm4wYmH+RBUWAA+t2mCZwmLzZosXHBmSXeTl3rZm2j8+Wp6sWbQVQoABmYweQnpaWq4fqoBG6pCeYARk6BbcoAMXqh6I5B+nIk/wKm16Ia1FZFkNQBA5wrRoWnxSHAQ9XDpZQDmwAscTHBmyQc/NZoOuQpz+qYQRQoBAgbRRQAF1HDqbQCSbboDvJqztJrMF6i/hQrBXgoNuZoRnQk4v/agkAG3+YWhYvcLDxuZugepIPxwIUC7ERW7GTF7HzWQB5mqeHxaoiF6CqAAGAegziOZ4NCgko66DaGazluAovS6UBUAjVIADV4JNPmqG7CICOJ4PQSrAOgK2ZVp+h+msUywITa7SCWJppQKrpNavEcFzNWQbGtQEhC2CRkJ4ki7W76quH+qRYUKxfiw8CgJ1+MAdz4AeFQLbn2Hn+B4BsewF/0bPYepL1SbR3W5ossAoSWw7GmnljBwClNwhHBrIF8KPpupufl7j/l6snC6GQ0LWRG6z4OgdYeoIC8KT0mqGmqZcL6o7s6Raku5uyuHA6Z3M3p3nEN7EsAIgTm2Wk/5en6dqxBQABO9qjPyp9g1qyDcqgAggKMmAOT7oKgCC5kauhhSAAAjAH2SAAj3CLS+mC/8eOBgABf3EDf6q7C0e3m0d2eFsOAzB5xIe3GXAFrMsGEuAATbsBg6ADzckEiqUKFEAArbmghNqrJtsJNCCzXhus2cCT1UC5/ku5GcC/CTCooCuDEABkYiEFcpZpC0y33UqxFBuqE7y9lhAFxXcApTdtggvCskqrG9sMW7i4oLurJgsJkCADY5sN9Vusw2uCv/oIMzylNRwAhDrAXFjAp8Wzf5ppECeLVzCCDrytmscGq9C9rCuUx0oAaAC4PHquubuiPLeFuep/isuhAf8ACbuati+LBfjwsi+cAHOAr8U6pebIq4O6xgUovXHbotV7fJKHuiygxBHLulV4i8I6euUrCOPrAOUrpCFbpFx4tc+XpL06thmwCvRbjpCMBTWbAAKAD16LBfsrxmjMoP/3AKLrFnlwiUEbbA2Xh5k3AEUbseXAupYwBdwsrCLQyhSgClALq31KpOxoCq2ppBEar3JZoV/8y8ZqgsMcuZActjG7qzg8gGjwF6rwyb5JgmFnxHlLfLwcBbfIzeUgAn4czqoQoIRrZOe6m3ppAOiMpKH5rte5y4AQyZFcrGI8B5EbycuAD5YgAgmQwoNaqAZQm2VhDetwmDyXZ+YWwdb/LKpRoMQQy8vEBwjcvApRcAAQYLgDergaBsdX4KK9O57umgAgmgAfkLb1iw/LsAzAzJOF0AAi3Qd9ULkQyqDJvKvryNJkIQUvXaaaJgFzHHaom804nc30GwXcbK+rcAWyK6S5S74+GtHSJ569e8IoG6FPGgz4OgUcDczZEAAI0AB9sAx9oAZToKyKrLVoDNYA8LZlUQTYap9qvdbYjMQ67bDdzLosQABBnaeC4KqwamRUW2dXS7KgubVNermVXM9UHQxMndha3QfA7AeK3NX/B9YGUAC85RY6ANPAFqpXcLTY3NkQ+7C2uAo9XQ4A4HRvBcIPLcWIO8DjSbImjLK7/6q591rPYXvYAdANWo0Fq/DCHKrF7duhAWBpBLCzZFEGewaqRCuxzD2xwWCOSgwI9DsFUWAJANCjA+qj6ZppDWfSHLq4V9u4TO2g5lAI/Kq/Uk3VNbvIC6AGL2uOZxsAC4ClaOzh711nGxCtmZ12eNvZUcC627uoK47T9GuhdY0Gg9yxBfqjBtAJSl2yOq7IDx4A5lANizoFWMDYlMvbJjsHxGyF2WC8Qt6+5EC2CbCIBeAWVqAKAGbfrbvlBF2hU+Df7lyOU2AJpD3UWNXBsmq4BOB4VyueutrjXr0ADdAAAgAIU90HlHvYDArSq4COH1DJGcrU/7cAeh5uBEAMZf8hBTRukjpHxNt7yoLo08Hw5bzs3/U7BX7QyoCnWGlOoAQgwG6uAAva5icLCdVQyY/A2IuND6vA2w6q5Pv7Aadur4C4pJBA6DmJa808FnnQCLrJwHXbujft1ryM3itOvFgQCeVruAae5eNYszru5pPdoI3boNVA58Ns5FgwBepNySOdofob6EzNrNWQzBT9ANE7FmWAA4fpm46+vRbKy/Iu7/5drAIwBVcQvtS7aUAKpAaQ1Cidyw1aCHKeoVKN5/gA2WPbAFNNxpGcubyaANeezFxX5WShAwcLAL8GsQOQtw87BTpdofRu6e+8CrIbshCwDkcmVFpVq71rsjxe7eP/ngDd0A36qwZqgOePYA7mgAAIYA4MP9KR/AhYysidQOfV8LngFo9k8czxiaY5xwYdD+m8bNOVDvJR8MUvywKy+8fEEHhzhQZ67X86XvadINm5bA7d8AiPgPNDXw0I0AkokNg5L9WPUA0pbLJCzpNqbGk1KBZZAM0Pd7fYLO/Ep8Qs7sstPAXlQNpD6qMOAGDN0PEiyKHRLp4CP/BXzfBareECgKVyT/d33g3mQANnLwP5e9g3TA4UDYDpHhZloJstKvXFx7qGj8QOm80tXL+A0PgFgAa7iZqbpmGJe/l5z/NGv6tlKwCqPtKPjdgIIOe5jQ+kb/pnb7aWH+0mG4xN/98BnlrT1uzWwkrsRQnGYu7LGUDaIVu+qjakqlYA/57CPF6yPh/3JosCC3DqFf7tCwAQkGQg6KamTx81j+YsQBAAUoNuhTp1MmXq2DFy5B6QSeLE40eQIUWOJFnS5EmUKUlKMgFAwoABV2AOYFNuFSCcqyzpBDTl5k0sU7D0FJCBQIENGwYNIraBAgQHBA4kmGgKRUUZkGggQEBxIsFsApaNXYZPQCGuCBo06LNMwKMp1QrNFWAugCmvGcmZekBgkErAgQUPJtyi5cuZAyyVs5mz3E5LO3HixCIAEJbKfghAcAqhAAAAzSTYnJKNaicZEzuh4AoJBUVICKpVE4BvWf8ffPjmmIMUe0EDNcsazCE+J+ycBAE67dWbka8gwtGlTxecpQOAxCwYM15VDtCqVVEygP+ewedloT2NQqAQWoQICRIOHACtQIFq/J24TmRtbsEcsnLDYo5qAjDwt+AgWmDBbhZE4Kr8OgFFIwios/BCDJ14wQHsZmJjAO3A8+6mx8C76TLKLhvKks3QKOBFCDyLEQICyFGtotWw2q8TAwtp4JGycgMkm0KSK6Qag/BpYLZullwAkqoqOsaU5h64IEMsswQsns9eYoEFEE38aSibfprsO8rI3CwpVQTZwLMCopoqABRQSK2q1BAwh6sAzCmkttwSEqCaBQJIwEd8cKv/TIAmIQnAxokyuqjKArS09FKRpKAAgwNgqomN7hizBKcyg+mOvMnMLKfFFwkA4AARLJkCEEuS21O51ALg6lYEEkggg0dsw21QBLQyx5xqDlIjN4gaKPRG58g5xgCMDCBgCEyzvXRTl0BcjDE2Rp3ssQwEsOzEyTADZNUCIABABJlEaOYAA1711S4EZKCBPwQWmO1Yc+awLUlnaTC434IOQugRBXVdrrnmpgWgDG0rxlIHEzB49QAJTOjgugFO1CmDncQET4Ch1ITAxXZhjLEAAhTw1UAcv/IPOWS7eUQNns1iyOCtgOuDkGELObYhKB/OSAG9+trAYqgtFCLjVzHw/yGVL1zwBIOXfgrGVJMzSBkfQERwgLMN3ETDs6hC82Pmu/Cqs05kP/CvmmDxEbTQ3mj4TWHcjOuzq6QpopIcpvmyMmrGo2OCaqu/4IeSL1LoAIMBcLIkimCiELenVYa6TIAKzqagVfcisyyDbLLZkzWu6pThWAZ/1BufRx6ZLTm/GyAaId0ILCSAO6NsjqIHgGh8+cAk6cDjEySnhBIjtDYhZPAiiwJVnMwd3Q8H2oU1DfjmBe2At/17EHardAW4gbJyF2CObpCjql/4iV4WnwwyIJSr1FAJL83hC8WYd0CUrEAFXwgEPxxICRgwoAeY4x55yGOuosxPBO2iQPjaJf8jzwAgARUYnH5a8xo93e1HEKFf/RKQwr/przItXBAN7LQcHFZFI9BBYA9JYgM5NIEfpzhF1hjAAw9gjjKoMtkc3mKWBJxtA2iY4lPi5CoR9K8ar9MVV7ayK3/RDyLdaBKhFnCsbtyGEPt7BBm3aA4UHKwreJmIDPiiCh/mMSRyCMQpjGAEGLyCASmYAKcylxOTnWoKUxAAIzXDHld1iwW02gnrtogAq9jwiwhrEhk76UmG6KlJhNjCsh7BqAYtKJT+4k0O+XIlPepRDl+AgRJgAINL5FIDlxtAOTBjou9YEBDmmkP/zBajSKThS/KiDwAM4Ac/ZOMDsUtLWn6jM0b/0Y9Q3djiAlijM1IC75TD8ddsCEWo4anmAQ+oVCx9KIcIHuEILrgEDFIBBRV0oFOhCyZ5MPNL0eHkmHB60QdjRAARdO6SCNiK387YpDHO4QNbTMDRuLKAgpCSaLkxi3EKcUZzZGMBc4FSRfiSC0W4E4E2SAUDBpkCDZDgEvdkwNYyF9B0oUhF6jomGi6AhqfAyVUSAE8GduOgtGzlN2sZzr8+MDz/+CujhNBfbrphN4dUlDcyyEoAT+oIlTJvBiRggAZSkIIQxJQEULinTUelroAOZVaYwcdQrnA2GrmKY720ScqmkEqGLGCTGGXqWhYEiYp+1D/dGBpV19izORQp/4UP6ipXJ9KXKoR1eanQwCY0kFYNMIAEJEhFKkZwAiXqNKBA+ec/7+qZZvTPElcQQTMPUI5FxkWVoaQd/taSSv/sKapsIeUWfneQZTDMjXvqDUOzIi0CpFSzjCvBCMqqARWoYARrhQIUWnAC7KiIbDtFUWvraranECAqDvBgq64QOolGtV+qvGjtyOis+S6IuFvYQh/4S1UtmDIh1ShW37bSCQMYwIDTtZgVmHEJBggyuy69BBQu0YIVKLGudf0nh1uLhdygd21WXC9oJICZKRCIdsj6l51SaEZnrfI3SNJCYx2rP54ti5tQYuhWyJFgPDLYYnKow2hJsAmYaiC0I/+AgiRUcL3QCUhF5DXvQM8ngStcQTJCwYyC8tugPdU3zKG8aDXWoobjEuI2CAnw/pyFGqAtJ8FoELLFwCEEErziFUrm8wiY7OTr+XLDHwZxof95zAIYoBkDkA+9QPOu0A1ot2Du8WR7/EWM6sw2hKjx73IMPGZVw4ad2FdFElyhOmvLBtu9bgjS+gQ/m3aXB7iMbTgqILpydCgSKAAFTldQg3qGqJhZiHDpi+lQAo0rv61NH9jh2GUsK8c9U1KyGUqRU6c6WzYQgp+f0FnsZhfWI0jFE3xwABZggSxjacutb40FXlNgbXBiL4dAI64Uv3FBrDmYKr/Y76X+iBDsMK7/sqTds8osyKJz5EsMtI2pF5QhD3lowbefkF1xt0ASkjh3OTiKm0S5W9fwxitoFn2FEN3EEiDGHRmDW+n8ejGwAQfOFthB8KH1oc2mVNAZ6Yuahj/8Uoe4wQ0o/m0VKPkEGvhzC/TpyzW3+3Yix8JrC9AMrDejXo8GTTY4qqAG4Zc1SK0v/ppkkJvf/L+P5XmDuOkg1WhkD0K3lBVu8AIhJJ3PJ0grA7qrARPc9jb/xU2SbK1rCZwtTgZlPAD8MIVgMcqMSKVvsQD2qGqc3b9pV7tx3ewsJoXZQIaDJd2xdPcybIDvSnY1TLV7WgqqkWjRDs6t94eFgRaUvQRQ71BX/7Fhs0ze5wpfZQOyUQE/mOtHzuZ82reghQBrwVleLpaBFHARh5s+Q1ZgAhM20AhPrJ7PSmZyhjO3DKpuYSyJOkigEJ74EEryS4yOjy9Z/tvA5hej/voRkMYiAJ4ZuOZrvgCLMYbooobYi8XRPgyJBx0ghkZwgA7whNZLMiaDAg4IL/T7r3ULkqkjOahohvdaBTYAkyuQAJfwuEKTvKjaLZD6DXzQqPhBswHsPHZYGIUjHhpwCMN5gOxjQAspAyC4APbCgAnggApkgAobgcvxuGWwOYILkrYoC54BsSmAvy5ZBRbgOtAYgCnANYa5pBZUJXP4AOIAMYY5M/7iPP5aQ//9eYTXqRODeQ3FQTUgpI4yUIUCIAOpMIEJ6AFXCwEG8DPUOj9SUjuymEJ3wz3FCw1AGAAuTMFayx2XmzRVyjyJaiEBOLMB1CiCCycsYIi5WY0eXMA7nI4q0EM+lA8M8IAa6AG+SwEOaEIsGBooVD92Yzd3uwIToJHQGAr6Aw0MaIkBYDk14KajccEFYRKIWoudqUGCIzjjIgR8KJD8wAvFWYRTpI4bUAUyWEWYaMUJ+MMJSKLzs0VE3LT220XFI4BIsDUsWIWO2b10s8IxArPhUyVPapblg0Lna8PG6gMsSKeJUI4oeQCw2kbpOIQq+EYCQIwBwACJlEjFwAz0O0T/nLtIhNifHHukOKmAqFsFADABkqQ1ltuZ+5o8GPstlvwRNfDHf5xGhFiSPfmKq8DGB8gshZSOG/hGB1i0xIAJ8FC3NRPAm5vC25i2HCsdtomEsViWckDBTlFBvVEuf/mAS9ym+9rHtWA+ziOacNKfBnGNgiTFTniAXEjInSSMnuTDV4mPrpkMW2sLfzSuRJQ6jhKBzYiTd7yNZViFiMwc2wiSMVpGN4qx+zIsiNICmFQ7x2o3NWiAa3uNG0GwXNDJtRyMG4iBb+S6fUqTRCwum1OzZQmQW8PCz4iEbGCkqASAdBsLQxuUzHuLZjyz3GGqJmHMAeQvpNSxGqIBvLi2/7Mkg8yMDinQQ3szsTJBkcFEx09UGF08TbyCClcxgEhopvMLkkXxJPqZA9wEjshsEkZpAN1sPt6UOt3Zovy4IVNop+IkjCqIAa4DlS85EVtjN9GENtqTNnxArxl5kVyIJNDwjskwl9zZGeWqTdwkjiZZht3Uz9xIz67AjzqpCOJ8T8I4BG80OcaACRaItMuwBPpIg7GwS7+cthBzgKCKkRiAgBiIipbgGAlIg2Fyok3cGdwko4DrJPjZPPOkqiBpo/9RjdTQF4pwTwwVDEUgA9BYAphYgjQYgDSIjKikACZAg2aoxdkziNt4N/+MEQq4gDCNEwcgSb3KBrmAqNvUGf+ImI0cXYvBq0G7xJ0Ya4jlMIXiOcsfTNLA2MxcsM4KWIJAFY2XOICnkYICOEeD28jcWAaSe4qgEtOXWbw4cby5yLzCahYy2kR+7NHGdMwpZBgyUw06RJ495VPAGMIYUK8C+Ck9vICj8AgmAAAajTqQG7kpaAYVnZEZiQErchmE8pWPwtRGui/vPEzbGZoa/J34cZbYMMjKrIi5Q9VLKQMJsIREKbhbBZTKiIRdZY8wDdMLGFdfixEHOIAK8BXZoI1FGhQM2tQze0k5bQsuTQhnUQ6roCOTegBtpFZLEYRilL1nEzmzOIACGDExHVeFTdgL8AxY8YM9YZDicCKWZBT/9vtUnMMdgwiOY0QLs8QRA0BIf9USRD3HNlQzDzQLATCAXmOPhR1XnxrXl3mXdA2unElMsGs2HzXPwnPG21AIazQcbDMAOhtZLIkHAhBMNVqz9aurR8CCA9jVcH3ZhU2vZqjZF9tKw4LBODXPmyOaNISfCEUOwzGpkC1ao8WQMniACjCXqGvaQsOHXJVahfU1qm1YB4iEJdAVw3Q7N1qqR/CvNZxX4dCv5ROABZCB1/CqB5CutL2QPXiAAGidtbAMluMwAYnapyBXhq1bmf0MchgIFLjEbtjETkKQDYRGtYtMZ7mvhBCs/MCsx70QMGDSBzCpilAAsXk3stHclfGp/0WAWaqNEQA4htX4omogjrcYI/hRN4yExv4qXAT4qCYRLMsynFyY3QtpyG/sXgIggwcohN3FNajFKzRYBDSIAZ9Cg5itWxq5iNXQE9roMm5qkkZVVtXNyEFZLGf1qqDT3umQgiTgzBiIgVzIhQKWXC4rtMsAgJZlX/QN3kWYYM59CgeglomQKnPJAD8Y1rc4iOeFXqKhyWJRpSjhi2kF4Oi4gSTYAxf+xhhIAjIwhUKotVybAgDYVQj+qQlOgkXYA3lj33VINIwIAIyajUKgDwOogAxIo4PA2GWNzGrgKqWiATu6io1QYekggiToYs4kgz2QYUgQm9ZyVCxw4M29gP8JXoQubmGF9akhLl6ZmY0FiYSRDLywUCMbzN8bbCOBiCPnCqAHSGEtDgx5qIJz6OLuHeBjaNuyuNygQOPfXWM2Rt/1Zd/0MgBycAiuUAAAIIDnOYBafeJn88qYHE2E6AZzUFygYdx+LeTAuANEHuBvDGMySKZaqyv0sARJBt7zXWP2/amYpQAC0GT8UAD1wgEcwByxsDH8hclpNK7+0p2usGL/9UFYFow7UAQgaOEY2AMgWIQ/nZcKaIZIqACaNVg0EARVGARHcAQgiGcgGIR5nmdiIAZBEIQLKIC+WCfeQwpiyIIieJWrTS4iSQCm8pFqqIBCeAQimQOH9oOQvV0df86FvsiFV85mjd5oju5oj/5okA5pkR5pkq6YgAAAIfkECQgATAAsOAARAHYAsQAACP8AmQgcSLCgwYMIEzK5p7Chw4cQI0qcWBAYMDp0Ll7MOKujR4ogQ4oceY9OR4uykMwCJitUjhx8+LzMMebIyJs4cwosadGky5kw+eyoQXSHUT48uuhcytThvXvAVs5yKTMU1aE1emg9uoOHi6ZgwwoMBMzqzJg5fgolupWtVh5KjIidi/OekatGh8Zc63ZCkCATtPbgwCMFDLqIQZZ0OfRvjb+QuUwIPJkL4MmDCX9NzBliSVkwGwfhQpqLh9OTK5u2HJhDCK+dYyv8/HKo6dO4T5OecNvD6AkcgvMIwUC2cYI8GT/OzRw1aQ+SJwcPQb34ceMckcB83NtEBw/GMOD/jp66fOsQqa7LZqmWO+7vHjAY022efOrBI9R3Nqn9JR/37+UW3WAnBMfBCT74cJ8K+nHGEhI/NWZeeVqdEIIKI4yAyoaoPBECB6kx2CBdJs3Skn9GDTZcChcy8IQGGmj4xRcR1PGFjV+gEkJqIZQw4lxQTXVWYV0w4MIlqVig5JI04uFkBHhEIOUXI5ww2QlP/DgXHdrFROSRG1owI40R0HjKk1CC8OQXFnw4wQk+ahmWEaHtQJwLeCIp5oxTShmlk5OAMImUZTKA4AktyDnnWjswcMmjj6KyJ5ljQolHoCBkquYXHgaXqKJNjSFUD8RFmgoql8AwaZ9OOqmpphGk/6JBgZ+CulQoo4YwAqSXoAqDqmPi6OergoIQ6xMFZmnrUjmkGCOkeIKpqphlEurqq1FaoMIJWC67FA9GcaCBCtFGmyqw1RIawSSXahrlF4ZysIK3Oh0RbgoqXFJunpfsqa6leKgJZZkWGNotvTgxkGIIr0TbxREQM+AoKpWOOWMdZdI4Y5UnCIEwThpwMNizrzCQgoXUhZCCo8AqeSoJGY4gSZIWVKnsxyPpSKqjl2yScgopaMDiyv26jMoI48osycypSLKCHTjjlAIHRMMosQY8j8CA0AxQjEcdFlxSMiqp2FGC2ZLcHLVI1KXwCtKvPCzx1iqoAKMGl3wRZR0kaP9wISqSmF3H0mvf1LbEJLjQBYsWqvBE3TDmPXAqSMssRB114FF24SO9iPWurxxx9xNHj/CExC7AoDceJaSSCuZ1gIB5CRZwLlIqqDvaxZGPnpqhxLuL+STmAburpO0UGQuDEl3wCinZJMAc/Ssk+EuompkGSijyEn1h0SwwOB8pKtGT8Mr5r6ju55/FqulkHdxDdIr3JsriAglin39k9BmWfL76rVrXqwaGh/g9JEpRWYkLqKev+52vfAwgAQNeQTGAFS9Te4udAR8SAYtYBAboC2H5zPcKoonJAhd019c0uMGGgCCBszDC+XbXBfRBMAU8OAIDYCCpYQkMYzZq4UP/vBcV5nWhC0pg3gKnV0Id5o1PrUJTmoToEBB8wQhGAGEIG0ZC6r0iVasL4MCkhDkqPgRs+qrhFxuor/M9CoCCEuOTQMAKMw7xVwtsmL6YiD6KNUlg74pSBGxgx4mkooF4Ot/WGLC7aZEpXVICQSEnUgdUtfF8QFsZyybFpiYFbJISmcEhFYenIq1sd/2qGJ+kREhQQsQGdpjeEY/IQGB5Ul11mEErXekQG5RgBCSkIfVQobpVtqqTuuTlQ2wgSrHVME/4S+UqazSjEtQhEco8Y+suMUF+pcp6ZPxCCVpXgkFmUyGJENPRjKTHXlFrSmNS0owyBb9zHsQGM3uC5yZI/z0S2HJGS7JmJG2QiCyozZ5M8CWbXNerV2Atgr/ak8tuVCY82MAGRShCFhA6kCEkwgasYIUNDnEIGwjhdBHsVZLO9sgajXQPlSiAGzjKhCG8wKaKeEFOh5CFthFtQ6kQKKHqcNELkIEADsDBIBA6BB2oYgOC2AAFyqCKLKzgBEGb2KQwJiULjDQGZMgFAAjQgXXYk6dZUMUgNrCBp1qVOCQgm8XGmEtmglWsYyUABDaQhTLwEq2qCKwqdDAIg0aQBEmaq59KkAhWDOGoBDDAAx4AgLGW1Q0t8FgheeqGwApiEIMYgh0w5CiJqutrXwApEMJaWckawAAHAAAGOoCDBP+t4AmabSFPVRFVQQz2BTY4XfNWBUXGilQVZKjsA1wLWwDEFgMmMEFti7ACIdzUgIrIghug2lYdDGEGL4LoO5tUBzvY4A562ENyAbDc1xrgGEs4xgEOsITYeqcNjdBoFoQwBORlF6q8VWsZhHChTaSPkzMSwgxYcYcbkGG9k33AMSa8hApLoL4SOAB0O8Dh6WZho4XjKVR9+1nRPg5rPJxUzVqQiENwQhGsjbCEKSyBAQygxjaWQGWh650OF2EDa6NqbwVRYjvoE5hhUhKqGGAHKfzgB0nIRS5k/F76LsHGAxDBFbB84xvHtrKydUAb+IowKgjBDWhgq28HcdMjx5X/bBYgHwNGUIdDPDkJ63XtMd4biQoPIA1YBjSXsZzh+QLABGMG8rJm0ALeshWqoTWyCib4ZhKqoMl64MQPiBDWKS93wpGowBK0DOgrpIEFgE4DoFnA6gEsIRKR+LJ0i6AKOdmACjOwQxbQkGY1D6IMQ3jcYbk5tyckQg8/0HR6xTrZ9x6jzyKogAgGcIVqozoYWr7CG64Q7UgoIAEKqMCXZ4sDCoxICkMQgh3ssAIKbCDNRP71SX93NYld2gbJ5gQn9LAIZrc31qMmdRquEIyCB8MPV0D1tqNdgQQkoAKRePaXHVDr6yRiBkJowRPsYIEVvPvjJU5b9LAmNBi1gAqZ/9a3pvfAbPf2uQLSrjbBuS2CbFO72gyH9YSfDevYFuA6uZbEtm77hBWogtcUoAAafq1x0m4NRk+YAcpV/gMwxECsr/00rENdARvTXNrZxjnMYQ0KUOx8zwYY6yKMM4O0rWAyPsBtZnVAZDSotbBwJSGMJDEDJ+u76nhmb3vFcIxwSzvmYK9AMAiO7a+PPeIKAIV70w4B2TB6BW/3zgSe0IK+gjanL0D3CkKAtfMhLepSSPkPbrCI5Db7tRNWQLj9UPMLN9wPfgiGE5yA6pqPXQETLjvaJ0uApSYmEXZowQoUZAIMAIC2J1hBFgRxgaSr1Q2jzzsDLk0Fv+97A2GNcP/WQb2ExIugwjBPgB+c8IY3LD7awN858CUbYQIIAjG3PunbO2CCymq4AyuABzPwAmhAARfwa9hHHQZmOnbQfaqnCJXQWss1Y3sWCdmGbQwHbrK3fk6AbUsQf7GnAFlXf2gwF6wgBRh3VfzXAQBQaAfQASdQB5MwA2XwAmWQU0KwAnajAa/AeS9ABWCgekCAV5K1ZzsXajWXhLYHfLDmB8LQgfA3Ye9VAXsmYw9AAOYWFreWfMvHf9F1ABJwYQdgAj7wBSL1AjdABEQABlSQNiUXdTeQeimnB1f3ekf4bAogAhd2fqIGcwrwchmQATBnhBM2dlXYbFiohbmmfBPQAc7/139h6GWz9QWBMAM4pQhgIAU3MAQa9wSSQAU3EIfI9gOK0HLOJn8wl4qiVn4VQHuiFgwCkAHZoABiQHjPVgGyN2Fi0GwAUIJNwUxuNwHNJ1sYkGM3pmMdQIk3pQiKQASpBwZEMAQDNgTU+AJoKAVEwHLMZQA6J3uGl4oWKHOpmA1OIAx+EAmnuAQP94dnZwAEsHZLwQrIJ3TMhwEZ1n9cFobPR4lUAIppmIlgcFPVSI3SOAiCAAEEAAB8xo2Q541++IHlJwK5J5FO6ARXEF/HYHatWGEf6I179o5LkX8e4gP8B4Y6Zo/5GIYdUAIgAIRgAAbNeAOKUAY0CWwzqQMb/1AACbkEp1h4kBcAXAdxChAACoB7BlcBGYAFTuAHtDiUChALfrCOsudwewYAF6ATFycEVkWSGACGA3AABHAAg4ZjGPAEUuCSYOAISfBuBggB7laA64ADBQABDnAAr+Vt4faH3kiUexkA6qd7uCcMWCAMCZCRfhkLUBkLGthwwDdZMZATZqZ8VuKIYmljlTWWOAYARdCPL5mWMRADBRCXEAAB1QdgoFUACslnoYaXDomLx+CXCWBwwZCUwpABkQcJYZAA2bCbsdBwfhkAE0ZZMfACN4FxW8lh/eeVOoZjWCZzX4kDP9iZVOUIZaADhAVa12mQFBBZRghrsgdx3vmHoP/wbbmXAR0YDIIJCMGAi4oZC9mgmJCQAAHwAbEQnJRVCcYXEk21fDjgiBjQlTgWW1j2BmzAAgPAAtW2BCagA1Twg1IAWjRpnYNwdBQAAQXgAGH5ahEHa69WfrJXduP5be6ZDcIQBQUnDIAgDBcZlQkwB3OAe9+2mwkQcccwWWTgiyFxnMPYfy14YwBgY2wwAGwwpAXKAot3ABvggA+adBZaAE7qpA4wlwh5AN45nh7KmpFHnoFoniZqCYMpDNH2cNmQAX7gnuoXlWb3XsRXcSFRBDjQfIbWlSaZYTbGagTKagjKbUhKBST1oE9KmmmmVtRJVQVgl0YYot+Zi+N5poH/2IHlOJjBoI5RmQEHlw1XIIuuaZ9XCI8gkQVtQJliOV9cVpl4WqRvYKIskGFJegh6QAWg9Ws1GauDgAao6Wwg6pMK8IGxlwCxcHDlWJtOIACDmX6xkAHCYHCyGJWRV3YyxqYUUQT8V1k1FolCWqcHaqesZnAIKgFJ2n1g8GvX+VRoYKGVgKH0FXEGYIsh6oegIAagwKu5JwxPiJ5YgAUZ4HDuuaUCUJt+kA24WHa7KGEEoGgg4Qb815XHWJkHWqRs4H55qq1bhgPWqVMXcAEXSgAYi1RzeQF02V7vNZ6IKnygEAB+2a/GKgxeOpgsGgtzYKxzMAVzkA0wCqKmMFnH/0AAzjoRbuAAzjdf0wqkLDCkQfsGQcsC7iebV1AAa3VTMVAJMXUBafaqNJmTkycGNFp2kXcM7hqivEqiKYoFU3CvQ5kNLlqvLTsHiBkAnQCitQgKxScSblAJPUutWDa0RGq0Rnu0JuoHAGChUEUBn6UDsVoGE0qrCrlnYmAKppCRoNAJa7u2I1uyfnCy9SoMs/iUj1Cvg0m2u+kHRAmw7nqzOEoRcet8zJljIhAMRiu0UWCkRrp7BRcFEuAAbgkB8QZaUmWxGBpZwNeutai4pgCyiAqb7jkH8lqvSxl5H4AF+IAPWCAAAuCi2eBw/2p2QElxIqEKcquwzCkBV9C6b/9gCUSre04QBe3XfpFKu7RKrruLsVHqpJXwXq9Vi1s7siD6nepHtvvKvPjwoiPbAM5buY8QsyyaACILlAXgVyGhA2+qsM1JcEabBgTagWSae7u3eyLgAFCbsQRQAFC7ZqBFfalJv5EXvJBLsuGmfpTLv8IQC0P5CH2wDJobve6Zfgqwtt8WCQk8Em/ao4RWtOGbt0ZKqeTrBJZgCRm8wQWABosAq9VZuHTpcrUoe1vbCU55mCS6r4JZr2SqAJCAD8vgvM0rAO/5cCQbogEQC5GQiCLRBsk5aEFLpELLAlEAu3b8BkksCASwdCGMBharkwoZbhFHv2XXCabguO/qcGX/OpuAUK/NOwVOUAFpLABhzLxhy5u/uay8egxWORKNAKeDJqQNywZRUMfsV8q7ZwlRYAlOIAIevAEdfLEc7AAY6gAAQKPuSr9rG7yJrMjGKgCA0Lz4UKINlw2PAMbOmwH0qZgON5SgIANhAAmSx8Yg8ckIy2VX0LAEOqSWYLSofMSsbJGVALWVhbFPu3SOtp1ZR7+Ju8uOS724lwFzsK/NC6kNFwvLUMmyWMa8SpQBAAqx8AEGLHk/FxLW7JVcRrRyfKekzH7he6qufAEbMFZ2h52Cu1YWape1+ACmkLjAa8iRC5tk68jOS5jyGQuPHIuy2LXZcMbzOYsG8IdvCxI6/0CZp4unUaDNwWC+Q2rK4ovHHiwIAFAJvsVbBWihGcqTBqC4HA28wXvInUCyaTzPAiDMWDC9kZcAxxyLZYqYHyDQn8uyC5DVFWAAWUgRWdDDdZunddy6BRfH7fer4isBrzxWspxXGQsAIkCLk+XUigsKhyzVYUDVzBvG/evCady8tYmY2fDVsQAJ/xwALgqcsKnDIUEFRdB8pyvB7We+BufQ4bt77kfXbnnLYxWlbvluHFuX6erXT624jhvVg72/hk3GUUmymWuOZNsADaCYKBwLZBx5nQCVS0DNEwGt15wGlnBqEmy0P32+bBDOUBilFKCQS/xZv2aQFksAkeCuTv/dth8NCvGpv8IgzPgwBSya2Psqz9E7vfJJlC37ryTrBxUAAGets21gunW6zezX3+2nzdKNbdQdW4Bbd9s9XxCntU4N2Ib811HtnlMgmMugBs7bgVKN0uZNwyj8lLH4r52wAP56AA6wwDHgw6omwT9tvrtXym9gxBeMx7RLAfPVvgnpXPMlAt393eMZ1Ygc1fpb1cislCubDfmcz/gwwPJZdi06BxBXyAtA3DM9ETrQCCgpyv8d16Ld30bspazMArR7AQdwBWDZwaNpoRAQga294P/8uOMZAGMq4cL8hJ4bAGHwAWG8DH3Qvx/QCTJgxR8gAOvZu52AAB9QATp23xH/oQP57cNswNmWAAjdfL52XHDsNwAx7lwOALivOq5RTIt+XXa/icO8arxYYNgqe+Fz0Lx9QOHv6bhuHty0COphkA0iQOAFu+g4ttCPfr51bJ4X7ARBGuPzVQAjNq4YCgB56dFqLtyd8JosW95GfuokGwYN0AfWrgYuGgYkC9wmvazjWcORAAAFoAik64g9qnCcHb6PDgjlawnHmspOYOluCYYcbOPzVX7K3teBDaJlBwksC+T1nAGxINXziecUHr30CQktG5UV4LsA/QHT+5H5GRGNYO7M+QYSzH7gfMRb3uK6ZwlXIOzBEFvuG1NOyt3K7tSP+9d0HtCPMOEHj7bv/13nRl7Pc/ABMQuVD1fIoADi2dAJxDe6EJEF0Vq3Cv3Q6i6+dVxwJ+vKbhnTfYsGUcWkqOnprh3Ysd0JdZ7qMH/k7g3ZC1Dtwgy9j/AIve3b/+yukPDksdCuk1UJIPGmxWhjqmaqbwDp4Lz0ThCIYDqXFBDTWPhuFmrL9FUByg7YH622ro6YqW7VU4D2CfABL48PZK8GfTAHC4DI3h4AkIAA0kx4xHd/E/HJPjwA7fdn4QsIeP/Tu+frGVza9Z2xVhaGV4CLsN24H531KEDozWvqMSvYxmzY+KAGavAIjw25IxvVAfDk3i5ZvUgRblz6EqzNd7/xvHf9T5jBBVDdtP9H8uZcCQTwoR/t4AEgA30+7R9g3s5LxvIZBgvA9WBM4YcNCbGNApDt/gNvxTJgdnsGEAWYDCRY0CDBIiYwHBgwgM2ANBEtvbFkCVBFJxktCZsiTISDAhcAiABQgMLJCxAKEIgUSYwpmJ1MyZwpQwaKTp3CfMDXEx+WKVMWBOgEaQHPPmrU9MEn4EMsBQEUdJIBCVKsBEQ7geIKqsISAoIOjjWIwwSAhhAbVmS7MYOTKBqFeSxgEoAEAhcoqHRAAMABERVA5cwJM6aMTgEUh2ng86ewD2EUQ0LwYWmfpI/mfEhAOLHVrURlcEX8FYAqsqmZmL3bkMXrNG0tbnQiDND/XI8OIFAAcOUAAQIHDkiQICLYlKw0lRNG0BxBAwE9seCbYikD1jBhFjTATGhZ082SEzeHRHQyVRoIApimoJpswtYD3kR5E6ztRba1a1u6ovvCgbcOAAAA4IADoIIKpKJppplQQOCoBD5ozCcsOMrmqQefw6yP77CYY7NYsgsAksRKHCzD8iIpyb2xsugAA7QgoogtQGq0SBhLnAiqo48guCAS3wqAQKW6KiFgCQUGCyAmw0xBYacPPnhEDZ+CmiObBMJI4MEGCMGsJ2EyADEWxbYCpcwAZCjzGDYBcIDFsRo5qyE2ZpwNR9yEqW0uS0QQ8r8rABiyLuAAC0axwWZa/7ATFAJYIJs5eqISnw83+2BELjekEgsBPowFK6lAiWqqxBADRYxjIjlAIDgNgk8C+W67CD/bsABKPxz9vOC/DMD6CzARjPMjOZk8IwyFBeZ45JGmHnEqygWw+2A7zJTqSbOnwvhUsQQVK7MTMbZSAID2Wi1IhxfvSuMNGy26CAv8nGDrDQn+jCQD34QrMLgKkosppwC4KmonZSvdbIEFstNuOy368HJSTj+AtNILyQyA2DNBOSYsc8sywYQDYrMVR3cBsbVC/Oi1148DHKikLkIPGDbRmL7thAYpNYM0gwUSSCBhrGKRELMtJgXP2WWY/QmfBsj0uTOujgGADNQ6Jv+okSIckCA2S+C1rUZhgNoIRyfeWHVIwNx0oK/gJHAiGD8CNgwFunNysIFlO53iSoQR0NbRoR1O6tplHbOVUkt93uoBMR6IQRGrCSpDFQJiNRleoGq8jWTbLDkbgiWCES7YK66IgoUc5/DXybpNoSGMKad4pAGEp10AAcoepHaLLTbEZ3bpBOjU4AuzOvUB5GOInCBFYkCrIrDDNvknLKCv6I0lhCxga+KEIxA444JR3LO67+6pAdsR1k6yByUkhPfeCfm9AaMFEFPiKC3mqvFcql6+CALAil2bs5XJwkay27ylXkMCEnBcRqjgXGFYAUAAo+yGk/JIiWnoyw60nLP/nWW8z0vVUgPwpDOmWEAiASQyzANycYHlDaQN6tKcRTJ3uAKOzAnZU8kSBrAvv4zOCVfKCt2MiAJIhOFBcyhhA0A0h77pjju8I0QVNfWIZSwFW9vyVmFM8QAyLCKGRVgIRKB3uRxST1YV4WEBfDgcCVyBBWm4gghy5IQJlo9uD8rOdoDXACcC8igSekQf4Me7LzENH2pYBt9wV54uguKLlYihD0DWkHWxazqbBIR0KlQhHJ3NjcHq3oDAFwwsZQkBR6TBdhCGsFjMAQvLoh/tAnkZEXrJJ0qjVFYeebEKkEhjBmBV5NqAgbXMpkZYWMYyTvbMGi6wAFdYgikL1JcD/wRDfKo8ou5qV7soAdJ2gKSfw6joO8c4xTnNkcy3GgfDyLnhRVs74zIN95Ma1ugjdRGBBAb0K+Es4Q1OyMawVIkAGjjolUcR5wcOljCElZN3XkBkUqzVEwFgiZ3quVhnGvcAMUZuBW140QCgBy80UgilNfRTD4M1ABb0UzgSyJEfsKQd5yi0dlnioBI/KNGJWpEpk6rUp5KYMHYGDHlkiGEWVtABtFDEgIfriTMrNBt3tbQA/byCBH5DgJcdSZtY8VlzkPXKMGxmDui7XXNeCUhDeoGiDltKszpFO9sp0afq+Sg8IyeJRmAAmW8IG1XxwZQOobRrQJGAbrYnIFOCZP8l2TQoBde5nXB+iHZtlSL9tiDX3pGQnOHcLETbWhgXKi9yLbAkQ0yqOZ80EzMdOiAgqtNYlchUOLsdXQYyoKXF+K2DDrWU7dhJOy00DLSIVIoayAlRn2aJfeU5HhnKQBYbJMIGNhiLJQXLEE2erKrN7NAUBDAFW02hRwVIw0XeIAIkRWIJVwhTNhS2SrduB2+BVFiILhYLNWjhs3J9WHOvZVyFZeVbknRcaqQghBLUIRCsKMg6OtABhQjwcj+RLTo9FJ2f1OsCDiidV/d1gND5AVp71Q45ndvTnSTgU9kI4UTnmpREaoatQ1FPeQojE5A62A5fIPIpbMAKVsygCG3/+BiM7rK16eBjGRyaMiE2VaEpmEyaS1iCgAiATQmw4A33Q2p+9SuhHceiAgS4Qk8cJleKvg+d8+MgaIyFWtWOhRV1sIAFSkBkPGQ3C43AWhtwsBJkdo28G5IfRwRgq0ev6gKVqAB8Zwor+XQkPNDVL2bRFyVtGeACJkjDlAe8XO8wkmn5k7FVEEMVRiHmi3tITSJSgQpUpCIVJeB1CVqQhSwUwSwwYkh7mdnhPggjGLU5GSAk7QA/BIM+aRBGGgZ0gNrsLX0RjWhDo5WNluFAAoeFcxUvUy2MQvF2PqUBDW5iE5lQkix1QAUJUmEBXVuAyL5eQSOYHB+IdPKwIlyG/29EkIEDTuHZXh3AFd6AD2H4szc5mkJ23ErOT0dGOw6dQlctYcjPhnbKjKTyT+agMIs3xyaQkMEX82wQPlsgAnhIBK8tUIcv1KEEWWCyYGNE7ShXUZf+pGmN0PvsLtPrClOutsOFMYff+rTTtPMbOPEWwvfBeQsjrNaGltGpnq3zkVWRCQHI0ucvRCACM+h1CW7Oa0m0dgCYTsN0ZFvFZhLd2E05mwOM3RvZfsc2T8+rfgW5MAlZ5n2n1vqGkpJFKgmSs86hAYMafJAZSAIVMEDFCCRRghnUge36LkEqsoCDGK1FGFKuspeWISCaFhYLkiaAJfBhCQxcYbbf6VqYpv/VxygFXzsBiGUhF894+FmUkd/B1isp326avLwgqGAAA1IQAgagQt+it8O99Z0KH6DFRjWSMtF0KZxYSadlIx5A9XI/WzXAizqWqvpOo+SzbGCxijbWOiKzKKnZQavcQQDEQAGYuDyDkIQRuD4OSAEGuATSKwE7sDk/ywIT2BoDEjiHGaHXYwjb+wkBeLYD6CoCyIApmzJ40TT08aajwAoDCCIgYaYN7L84G5zZmR2q0xIfM4WW+yKmGgtJUIEUOIEQ0AANuIRL2LUZWEJ9+wILkIQZGgDZmw4vEbplmLs3iDJbWRUKqITIGkEBaKZnOhhvyp+WubALUwhLwLqJ2rr/rVO+F3O+ESGfL8qFkMK8JwiBFDBCB2SAe1vCP2tCO1iBC+wa6ZiyDfSOtXAMhTOJvniglfCL+Xo0sFMfNPuADACADpgATpwADzAGZBIZGewO78giHFSf9DCWLwIj1RiCFlABDdhDB9S+L+C1OtA5J3yCDggZgWs9oZIPw5q9kFgJmFGJl3EAALAhpzC8EnqEDMCATexETvSATzQGhRgAk0HE5opDpMKJnJC1ByAA6TsIO3gCDQiBImQAe+uzCMA5J/yCuBM/u0NEoesDitgkjOLCAniZIVEJH4EAB1gChNsMQCqcn7CEDjgBDljIhQwBheREDniRkLGVKdGCF/Mg/4TCCXibJBZ5gTxERyN8QAhUu32DR9TDxqrikKzburmQskWiDn18mboYEr2ggAIIGcJbKyqZlDfAgRDgAR64vhS4vhPogU6cpzQQkwZYBkBaq8gwq/LxQTgRgie4Pj3UgOpzgSa8uVpEhQlAJrtzGFP7LEI4nO9QP5OAGSGhSb2AAADIAPtZK7xxDIREx6E0wnMMAaM0ygnAsIYTk+LqqVVCAXDsmFdExyLUwySsxX0rARXoAAl4uKoaoUNaGkbUx5lcy7aEAAJwAiyYloL8Dg5BSCJMgSNgABWAxXNUyIeEqoYrrhXLSJxwOaspRxVARw4owlfINSL7Ajs4AWSaHv96PCTviDIKOYBK2Au1rAu92BUCCAYxQRil8B1hMAYOCEkGeIInGIERYIBYRMcTsCRYuRDaUaIyw7PlCcIQ4IDSfEDSS4URKKl5bKYwaSYrcgy0tMnMZEsKGDHjcKi5XCSmwAIMOIHq6wINUAHuJIERSE3EXAHUi4QKKDPKI4xZiyEhuE09nMU+g8+vpCktnD2ViARhCKGzVCnMnEm2TIlKkIBgkMtFQsTvwIDrfAXv1ADPq7cReAIV4FEV8AEMMIBggkpvZJALjaEZaIHvPIIkRAUV+MqGQCMskAAKeIFBKMHDOtHjTM5i1MxdAchI8INYAKRzqysJuM7qw0p7SwX/SdBON30CQgSAYxgMumkSI0XA5ZmBj2TACQBFTNoc34AAggCANDgsDjGcRtTPtVzRC7jJi5EQ+8SxK5yAFOiCS3iFV0hCO1DA7WzQ20S9OZ0bJ6EKRTEFeYshJlgBDpgALvjEYoOINPAnAiiADSCINpCATsI7KTucR0jRAoiBXQlWCKgEAyA+Jqoy33mDDsA+JETCVNjUNu3UBg2/Of0xRbHQB6gEIEBVJpATwRIsiBCGuZvVsag9ZrrPE+1VLo0BdgXWYE2JAgAA4vuAE9w/DsEC6zzCZrUDaG0BaX0CIDWAYygWBvEMmCCAbUVVAIqPiLA2CvCfgogBIQ1DXU0n/2Jq1HZlVx/50kp4AAXIBhM0pP3jHXzAgAkIARdwASSUBJZlWVx72TgdWIL9F5oggEHgViZwAAyguwE4gHIZixjIhQegMcFppiq52Bj4VXZ91y8lAFAY02ZyQzfsgwHggh54QBJABUmA1pfNNVTQRTmVpJlAngfYihYSVG51HoArAB0gC0fYgxggA1DAohP0JAEoCeX81Y191xhwWikxvyr0jjTwgAa8BO5sWZbVNUnQtSdAPQMYDCAjgAeQJJp4AFrjVjcgg2vDi+saCyIogySI26FlvcSaC7xVWqZtzpVQgBIVupHdOnzNTe58AsTtvnz7WiAN2y96wcmlmQcoJv9UXYRc+KefNQgwIAJHOIdFIIMHmAMZtaoKKQl4Zc5g7c+UcIBICEOQOySKKtncTFDtFAJ+XdyX5U7glNMDBA4DUIAt2QoDGMfIKYMYMBK0PQgwuAFFOIckWN7mJV3asgTpHZQY2FiUgNcDKNEaoyiKgl0T8IETSNDDTVxduzXzhZFjSF+/OIaowAlQqAQ0wFk4UQTQTYIk2AMyMIVIIS98it6QYNRdsd5GTcaBCzn4KUsT6AAOWAEFbQE23doe5s4RCAGoigQMJoBjUDBwIVcQdg8gWIQY2AO4zQVQiJRj+w4Dwtu9fVc0CNaVqLsqW2AqKtlNPIEe9bzEZdkW4M7/c9zFJQCXFyyUqEgMUDCAD17i1JBfMiADdmVeUMiAbBTD6QAE6U3d1AVICZDB46OiK4TGCdDh7WyB8uXO2zwByBwArjAAUzoAUukEBTCAU7Xjg0CDf6qEjn0ASMgG2zBaqwLgkCDkLRbWmyxRczok2E0DaCRjFWgBXdbOHZ3kiISVCogETB6QYmU5961fUDaIGfIeyTWFWMiAG8EhLHiDWbXeV94VNLhmlejMqFXgrfOC4hyABnbkN+1ODTiBE5gAE4AIwehkABDYnBgMUMjWZB6LeMUL4DCFY6iAK2A26TCZYKhmCliERbhmQcjmLwXIpXuzcnM9LLgCk8XlN30C/+90SCi1BPEBhQEJF3jbCjEwu3ouiBEbEEKZ40hwgttYKZM5mwtAA0EoaDRYBEHYgA0QVpU4gHNdSe94jFgAABzwAR3uUe2ERfD8yvYSBj/oZIG1iXYbDVDIi5AmCAoIDgxYB5sUEIGcA+kBJWerBB9xaVUg6II+aIROCbdEYEJYYNejlFg4gA4A6hUIagdVVR/YxSzEAj+oAAN4XJazCVN5AGSu5w3wCxNYBzRYh4W4AujU6rmoECcoCQhAgw1QhbAm6Jh+6XcFSGyM2q1rptnBCgUggJ9egROIa3RGZx/oU5P6CfEJDb9+tTn2q5B2Awf4mJ+ep+KogAzwAz8wjjtKIwAfWYRBcIRBAILKrmyYzmbOjKOw+bqMKhONIYA2aIS4Nu3TTmdkuoIMEIEEUICXEFvLQ55PHouAAAAh+QQJCABTACw4AA0AeAC1AAAI/wCnCBxIsKDBgwgTDmwSiE4TOoGaNFFIsaLFixgzahRIpyMdI588GkHy6ZMRIxtTqlzJkuDHjkhChSoZKkcOPjhzHHFxqqXPn0AFPoRps+jNHTWS7li6I8WloFCjWgxUMuZNPjnG2OSTtEePGj2QcuDwVKrZs1OMjNGKk88OrFuRgvVaY0ePsTxQod0LNBCSHEiDCE5KuIbgu548TfDawxOHFAz4SlZ5i+pNwUG4YBbMRXPjCRM0BwF9l0PkyagvPjQSym2NzrA7e/CgGTQX2h5AO+YQAlHq3wlvPfy0NfNsD8ZuH6dt21juxWND9AZOneDwra+VI+/g/DgX0BOeT/8YyzuFpOrVA4GsCdiwcmPdl48GDz7x2BMqnqH/TdWqzcDvLXccffUlZuAJ5+032XAy5VDTDpx50MGE23Xw3WKJ+WCfgfY9oeBkdHyChH9ujeZJYxwYSB5vGqjwxAgwjqDCCSlO4IkKH/I1nIhbudUDD9K1OAIUI7TyhApDluBLBExG4Ms1qIRgII45osVQiD3uwAMDDFxyCSqIWGBBCWSW8AwzIDCjpppM+sLACYlRWeVZ6sX1IwMueAmFBU/68kwEaIIg6JpsMhOBBSGkuMKcaPl1E1ghdOHCpF9acM2SgAYq6KaDqukmjYsyapZfrvGggZeoXmLpNU0Cyumrafr/ckmioYoaVSBj+BiCCqmigoqYl7ZKqKaDRgCFBiecIIStt7bXA2RfpgoDDNdciqmhmb4KKCLIntACs1Cd4iMHGowQLaqowGAppk2qCWuaFjyR7LfgAmUED2KF8AQUqE6ap7qsMsmmq68yY8GbJ7RSL1C+8JAUb0he4kIXEueZ7rVO/snMJJwaGm+yCS7ckgU8fMWbuZd0wcARDGgAWZd8Lmnwk3/+KTAiI3Cwwgwi++SmV+TCyEAKIQCZ7AkhpEBCmBGUgAgqI0DdQguSIPJMCSN427NPrKAyFmQjaKCBdC9zmQJkXQBrwQgMhKBBl6hAAaaMJWztkwU0psC22Fzi/3kJv31rgMqSviBCAgNRI6K44i3UbXdLiCCtQRcqqMCly9IhabnKg09isIz6QlE1444/vtI1QSJubtvS6fvEi2+7ELAvkhz54p5kSpKI6Swx07be+7LN5QgtIALFEy3jyWcEV5dp5jPQ6877ShGs3AWMl4xAwt+Lj4A84iQsD+gzgiayKTMl7D59Sh8pQTH2XypuQQtCk9BF+NcmQqya6a+/EVWfUIK/LkECiz2NBAhEIJeo5QtidYxJ/tNIR0xihC5Y0F8usN/9LMil8GULVoSKYEZecpKUMYBiKbMgCbR3wu1ZgHnmAyEzZgACEWKkIycxwsQsyMMd7nBoDAif1f8ENrBLWaCGNrTIKUSiQR72cGKs20QXoLAnIg7MFyVgRRItAgJfnAQGqJKUE3eoMhf86lprSlO7bLBFixxKhyrs4RPztLw0YotNvuBYGy3CigjAwH0WlBgCU+YCAbqAgR801MDQtEeM+OJJqPASxRBowZ1Iik/XQBO2BMYkJDYSI32M5Pbsd7gUHIFlLhDTC51ERECx8ZMZAQEiJLnDI5hyEy381aWuYalswVIjIJCE9ibFwyMEUpePTKbMmPHKX17EBsK038Q0SMd1CUyNTCKfMzFigxlAQZoTC6cZY8YuQyWzmdukiA2eMcsLSmqA1mSXk66RxXRe5GrtvOCkptX/y1Y9slrPQKc9E8LOWWIwT16i1uySWQJL1XOgCkkEFMj4zolFjYH/pCeZoGcDLUIUITNAnhNH2gV+PnJMG4UeCFgRso8SxAZQ6MIpWfa2vp3wEupanCSeRz5WFOMCxXBpQSRxwlOa8mxITUEgEVG1RwosEVYQggMcsAGhDmQGRUVq6842OVWJCVMNZEYi7sAEMgCAABBQhVBrkYgZlGBalzAb2kigLmUKCwSHKIZZz0rVgVohHlKwgRUGe4jCCuFIF1RVsFrVJBscYhF7fQAAAJDWdB4iD0MoAxM0y4QXMCELlTuhGavlVMJhixVSiEFkJTtZB6yjCEJ4wScvqwNV/9iWAmiobRZasbku/OqFARPYEVnxAjKY9QHINYABDnAAAJgABz7Axm7baIU8ZCELtlXFBrKwAd5ySWVeZVUym3YNwSpitck1wBKYO1kMPFe6yxIhK4Rw3eyqQgdZaMH3chnPJyGCGaywgiOMCwDkGvgYkYiEBAYgAfY+tw3SVdj6oord7A5iEC+YQStGsMHwkfNJohOsHvZAYAM/4BgIXoIIJMDiBgMAAx0wQQfaUIQNDIF3NqDvBjZg20HoIB6JeAIlSZCuVfESas+wwh3A4AAyEKDAB0bxEiQggiUsoQJWZi8G3Pvc19rNCjYoQ4W16+Mh1I7D9/OVpSyAisNBAf+qPzjvZKGsXANEwsoSuMIVRCCCCmBZAutlb3tdW4aFRUMKVijDIFRx4R4z4bB9ux8M0kVAEjxhBjb4QZz3CgDlHmO5B6gAlffcZz/jecosPoCLAeCAIgyCWaxIRCJYUYYd23cQisjD91RIQAvCSHeHuMOSSTzZB9g5EikWQTnSoOcr+KECz8Zzi62M7NaiQa1z6iYU0tcKW2v3vi/QtfY2yMGWtSARwRb2HYBwXGMv986jLkezrwDtFdO7yn5WACiQ/WlWt4ECObJBCVrRisZxd8c83sAghpCHDbPQpgy4tBR+oO47lIEABKizAVI85XJYIg1pyHOf+XzvfPvZ1JH/UO5kC7CfbragFRzwwQokgQ2Eb+DaC6cv2+xnUw3oTg8V/0ESntxpT8P7Cmkoh9L1XO9giMAPUD85lv3M72OctarUgWYrVuCDCWGjBTW3NY8XzoQVWC6INpV4uu/wgxsUgACSdfedrSwCFihdBFcIRrP1rnc/J2DqVD8GOfrNcuA8owUqiHmMTbCCFoj95hd+tHS+i0ANPEESUtADxdl+gz082cR2trKKgyHvJeyZBXjPezCg/ncFVEABCUbxpw0wWWxPxgozaAHXJ9ABDDh3BUJAOBpuzuhHr+Bt90OgCjAvhXTHOQbFNnDoIyHqPYu8AiIIhvb1nIG+L0EBCkCw/+xnT3sIoKabW+d97wHQ3OjyGA0UoMAFrl0GIZgdlwgcEmCBLmwwXODzoHdsS+AHegZo+IZ3fOcEpAZ+5FB1KGYAxsZqk5EIkrACHDABJiBj7Ndc3tICL6Boi8ZZQ7Bf3tMCM7B/6iZnUJZex6AAV5Z6V0BlfrB6fJZ9TsBn+TZ4ghd+yoVcZxUDe8EKubcCvOd7JoABzMVcMocNPaZZinADRAAGeaBfLmKCUpB56qYHSdBuD2AKprBxkQB7kfB0eFeDJ+d6M0iAr0cOPQh+KGZiBLAIaAFNYIeB7YWEqdZcHeADkjAE8gcBuHYDegAGQ/ByrVAC8QAGmbd5YBADcP8nfZ7GcVJHhhWAbOCXARmwBn6gAORgCshFDgqwcT2IXAQABGZhBYmAeF1nAkmIhKo2AAw2WT4QCBGQBYvGBHqgeYP4AkIQWy9wAzcABrrIbo/IgghGfS+IfZQIftQnDN1XAZ/2aQ8Aig94DMlFAEAYFVbwDCOwAp6wfgcwAM3FXLAIaO0XCM8gBPEAhYK4i0PwjvDIBEPABEwwCA7Qach1jLIHfq6nYsr4bPm2BBkgDE4QDOE3e+QQADooeAZGBtkYFNAkL0XYYOFIjuWYhx3wDPHwAi+gCETwhIqwWWVQBu+oCJmlChBwjwcAgRvXgvsYhlKnADjoB38HbcIACML/4AcLmZABEAAHKXsPQAAXABWpOCNFiAGwKI7hmJTlKI4m0AJ5oFll4AhAgAYXAAEQEH/Xpl0QgANTdY8ah2Jh6Hqwd2Wv53pPt3p+lgFYAAgZoJCmQA7k0Ak9yYmgKJefRgCv9hPoZ4FF+IpZtpQDUICpBgDAxwSKoAjnUACMCQGMWQBYiVs8pgNlgAZFp1xyaZc+yY9niX0z6GcicJOAcAXhJ5fkAAkJ0HqcmJpsSAC2xxJD6AOryH4NxpRMGYNUJgLNtQ6/CAZgoAiqwFkjOZzCOQho4AB11oKw53oVAIrMCHv1pol9tgZt6QSbaAoKEACp2XoJgIahKFlD2RLW/5UiE+J7vqdqC2abDDYAeJdqBTAEwQgGTAAEUgmCi/aHBaCS0XhsZLmZzwlteucEUbB6bOmWr9eTARALaxALqTmDa7AEKSdZhccSWdB1MTZnvsd+6nkFdscCesYCgAYBvxiMTLAHj/mVX9mYKRmJCXaW5FCJCpAAPulnmhgMUWAJ2teWwhAMzZmgsRAL0NadfrAGlRihD+AAPlEEMeaKzbWBr5h0zMYCbMAGHuqhunkBvSmfMeCYFNBjOuBjwnkBl6mcYZiZa+h6CZABTiCgwaCm1VllCboGGZAANEmnGVCJ0ohc5tcS63CEG5hqtrlsU0qldkel8nYAFLCOvjmVw/+JmPFYBl/6f0WHYvzohi6qnW3qBJZgCQIqANXpd7EwpJi4Bk6QAX4QCZ04ewAwoSsBAUfIXC0mmGxwBQMAclMqpR4aBVKKqFJwA1foCI6gaNkFf/k5VRm3XglmlwwIfp3AidmZAGsQDJYACOXQpm0JCE5QAakZC5koDARpqnZpjdb4AKyqEhdwngcQaK84q0iXdOUgpWnAAtt3BYgKWIcgBY5wAW+HcQQwVZCJlSl5ACnXkrB3l6bZrNoJdZu6pljQsJbgBwlLkE4gDFiQiZu4kAZWrhsRD5IKqwOwXuk5mB76rriqfdEqAgCABvYqBTrQmBewY4MwkvSoaBAwppn/aZqdOJegmAAKOpDCYAkNi600qaACMLFY4Iw06ZOguHHIpbEawbFP9ooNxmJMSbKEWg7dN4O6qbKZFw+LFqwyO5xfugEQ8GR1hpeCh7Om+aw9O5ANu6MyGgtFS7ESuwYLyomgAIFN2xLxUASv2pRJ6aFpwAZKZ3faZ6pDGgwSIKIvIAVe22OqQAGOua9RKwEp54WYe7AKOZedkJA8+wFzMAcNe7RzmgAC4KlYIABzQJCWcKfdyYbi6rQZEQ+NsGWCeZuW4HFKFwXvqn1r6gQgWgCL1pH6yq/GC5lXeY+f1omZa5qby5M9GQtzcLrp0LBOIKMJUL3VG7reOqfZibZs/yi7GeG3tGmbbBCvSmcJLCClhBoFaiqlDhC576ivjNmljBaz9DgIYtqDmOuFg6es25maa3C6o4sFPFoBc1C9Rzu6OZmaSpu2BiC+GEG+SKme8Kp0GLy+7yqg63sAHeAAFDBVTSiSX2pb/9eSXZi5DJiQnbCdCbq6DZsO6SAAm1gBApAJ6QAIMSwAa+DAPYmXg7enLIEGJqCh6jkAUloOgJC7vRsMpfq+A4BWFNCv2oUGVqmvDkB0oRaGytW/y/mszyrA3srANBwAfnDDMly9ApABDLqdDNgJnXAMQrwSG/C3R8yhHteh2ue7USCgV4BWaIBxWTxnZ9WvDvB2AIBsBv/QvweLsODHs2bAvQV8vQkqAGk8wxkwB3/nxpzYk8eApC1RBr3nsWwAi1cAvBpMuMDbx6w8oMEglBtAAAfQrwVwAffrCI1GAUWXuV9oADi7mTyLiWyZxliQral5yan7o91ZAWvgkz4ZC5BgdeG5Ei+AA6yYlKU8mIWbxITboVHwzXb3xy/7ZF2qA5Q5kouGBil5mYssl6bQuZxIlz3JswN8tGmck9optzKMBa3LoNr6o3XJs6DwaRJsEUPQBr6XnudLstv8rtvcx4UrAg4wfxmXVtolufkZtVb2gL4cAHBMl9i7nUMaup6aDji8oxBrutUbBQsKCeaQAB/QzArZCbH/8AEBgGIAAHArAQZ1DADpCXKweL4dWqiEm8FLN9GWGQmFPGfG+2QD28XvTJcfrZ1/Z7erKwzEfL0yGgCWXLRDW9OarACdCwkxXZpyzBJSkAUqGbKw6K7rO6gbzLvl4ATyBsKBvARnBZlWzGiqAH8ZV2df2IkfbQo96WeiCsM4PMMLGguVnA5zsKByerqvO5cB8AGxIJfdSQAsYQXFgNDrWsrLlnS/Ww6GWg7fvLsiUMuqIMsFwGjnbM6qoK+J7MuC3bl0+c6UDW0Dibr7jM/RiwWZULQZcLqmmpp4GwvCcNkJGn4FrRB51QjlOwDnC9d0nbtFjcG8q3eAzH6tbVtW/+mYskxlZdrOXsiMFSDPAVABbosFxMzGHl3ZlnyTDSsAOSkCStsJZT2XqRkJoKwSWdAIRYzNSXfdGFzgSrem8kYAuAUAeN3Uc9ZclahxtP29dAmK+RzTyCwMayDWMgAJDbDP8+3C4DfAmwvHN20AaLASWdAGRRyy7orddG3gfezHgEwA60XLuAV/jukAKwnYi1zh2rmZAWAOMZ0BGd7D2enhOJwJOCwA2mqX3LoGd9kJkPB6kTDHGqHWSJiUbq10pEfaSlfU7ht1DgABlqkABIBzg4DLG1C8AsuJEv7eCErVZvABlgzic9qTLt0AfcDkOFy6er7GfubMlh0LkaDZ/v89yiHLxAPOxAVekNrnBxKdlQxOAAgnf2+HnlamAL0cl3KJoJlJz8JgyYmt4T3ZCQhgBg2gBn2eDg3s0UQ+B1immXbrkzmtEsUwyly+bAa+qXPNu2vqyiKw3TdOdJPFXNQHfu+8yP5Ll+A3z9IbukyuwHPAoD4JCWagBkzeB65uqnRpBjR8li2YpuBqAFiOETrwqgs2uAaevr+rppyqfXwGmRvg0xKQ1wAL3pj5hf0L0pWKmh9g58jMxgmAmglgDnyuBq6uuj1s5+ntk5QaAHOAiaGY5imRBdZsxLXq6B63xDs64988oKlt5j6t4JD73QSgtsz+zti5hvNc53cuw0j/u9XmoOo4PN8NO72M7Z+eK6fQSHuviRHxgAPnyeXWnb6+nrt2J6BLV8uWee9aicVPlp1w3umLDOoeHaNrILrEzKkySpfYLsMC0AAEnLoQ++zLCq2xkLfG1twHIQXk+4pIJ6hFvamcmruaysRXUOaWSa+EfAB8pmKx0Llx2enzLNYICq0xL/M9bA6xYA41b9LEXL086pPNipeVbdN4aQAWvxFxv+7TfaubusScWpBrmrt7T/J4V8gnipyc64WL7MvZ+cOdgALauQZpnNili71EjsaZoPBH68DPiqB1ftnMy/nnbhHYoOiBeuAd7+ulqqnyVsu6jLJmvgg6np+J7M78/x7YDjzVCZDAl8zDdXrwjm/Sfa7wc0CTz0rTO6+0vmwKhJcSquAArijgvq7Edr+mbQoQGYSVu+IAAhoASwxAYFiAAICEIioEMFXRlAFT5DolSBCgE6QAAdYIwJIuHRYsAvwkiJXAXII1GTJl6jMznZOVHQMoWONnpwKg5IQ+OGaAwBSkSZUuVVrEAYYDAwakScOGTTmslrSitOTEiUBLUa4QKIBQhAiIACKdlSBiDccA5C7KNfUxQEuP5uY4KXky5ZpYZsy9/NCAppo+agRkAMwxVizAO4V6FNppp4ELTDUvFbIOAwAJA9gMwFq6HCBLwgQIc7ImWBQnlgY4KHABNP9asgV0O6xQoWMny3SBszQXMlYGQChRCsvgp6VLcw3SDdPWp0+6OXPWzFn5XIEB4J2EaoTU6TuFzemnxEMDVUJoqWlMb+XqBKv9ggUogAYAgQKFCy6IwaElKlCgIuAsqiuABCB5KRaSlGMtA7waNGeBdKzLxKSUhBEmGOcMJMeAykIKAAEZyCnKAfXS2+CzA96TQD6tLMnKkvrs83CssvjbzYGHDDhLhJDEU7CuThAwxwztlMPCwwyye2kwM8yYTpsNORRAgDmeM/AYBchhECTKHgDgqBY1G4SAGAd4Tz5AUKsRNSwsAcRDQJwo6CAArpDggAPYOsuPYIjsxKJDEfz/6KU5BDgpOSzmaK7KBBBAwAzDtBmmJpPS4fKDDx4TwScTHYyrkwcuAgC9NJfS4akYJbiiHByxQM1DW9ORMzVLRCjAPwMkgIgAYmlzwACgwjxSUQYhLGk11hqLJSRILm1gmGE2VGPb1bL7IDsKHYul2lPFKwqNVpcqowAA2kyDvjlTe5LXrny9YAMDIqENgt0cQjZMuugyxUwCkI1FtZNUo9CMWFCUodoFGuhjU04V29LR5Rhbg+HfhKroATLKSFcpJmJISzQ7n0QtzjtPwlEY1K6oDaEDCAAyrQOWCGaiQxOtywAHKPChg4QyiHBLwCCpVgYZUKgyQ22iHqbTTgXY/5DLwBgOSdkHuo5hZJL3ICMGMgxIA1Jb40zZZbUBGeBXmmO8Iphg2prbJ4EtMoCCFTiYwATQyvHwq8diMQcBGmSgwdo+oq4uS5KqDjUAB+Ear2syVAE7qTKA8Lzss+NEieXk/KqxHAlq26Ddh4i12SERdvbZIgeEUOEETybowISo3l0DsMBoSJwGMz7IxHEsqe5LAOB1YvDUgR/4enOkFClDEVUSejdOYUa/s3sJvUodgtUB6KAA2nYjoIJgEsjbTFWeGUEDDU7wuwOoBriiOwY7YfrSK2Viat07SacoZDhzKC0kHusaATRHvSnc4AZMYFdotgeptnEFNV/xFQSyB/8AE7AJUICKXfsoYpEHECALFriEC1zAAPt5ogO7A5wBljAtykEiFg2QGqcilR1PbSlUCTBDRxIAMHJ0zQGOgOAUpPCCPbRrKlopnXLQxivW+God2GjXAeTjlSvMKgpR8InPzFQERKDChV3QQAhyNwE4/u0AvhGMGaymKU6dRAAfKF4DttSohQUmLseIXmaaKAUgkAE0NGJZX2yFEtN5yFcUyMJn0nImYh0gGBnQSXhMAYAiWAAGa2TA7Txxytzhr0Cgks6maJKODaFkDqCiJai0wzGPmOIYKWQVBG9gsqikppF98cvobFUv/azgMyG0mQNuxgIQdQQBKECBAQCwgVP/XMOFlyABCRgQAvtx4JREGwCEMlSTPJ5kDoKpZRGf8xhzqGiXLGriFLIAq3fhCW1+KeaTmLOEZMIoZ396zxWioB2OTLOaAFhBNrdJAm4yoI0aSMEJdHcAJ8DSlXlMyR5ZkoBQVektgRlXEs1kyCYWoQ1tAMAASAdJWGbJLx7SSurWocyosCENV1jCAQDglg9w0iWWIgcAfOBQGMDgEkv1pgZGINETdOAAOMrEttTQKTWkhDGGqxLDzPGBBDgnFokCGRDqaU9sNAIDA9CF6GAaUw7tqlf6qeRnXJcbAMTED745HAICYFRfaBMGFkAFFC4xghF08xLfnEBUIEU1k3AJ/3iGe4wZLvUtTsrFa2edQh6wwbsp7nMmo30U6SapTAyEEEjOJMASxkhGl6DArwdoAyKugQoYpBEVh2UAAyBKAg1woKW16tRysPYYuOQQAR84ybRAAbIH1lMIOMDAWts6zJjOxFaq4YswJllXGZ1Ff04QRhR+pxNzxGIJDriEL5KKCPgiArEq8K03T4CBGalmSygRgBOy0xKGjctSCHBQZNdADgIsgrNT2IAJTACV7SmnU6Td7pMEIIKgodZNf4LIAdhgCckyyFIJiEQHoHCK3cYXvlAYQRdc/E3epUEYfuRSdmw8reLkcGmQWIAZehKJGNyAs8VoBA4eHBW2lsQmM//R0AaZc+GgFaG6IDSWA1rqhChkAKwJCM4BTACFQCj1EqhQMSrMjAoShECqV9Cyj3+n5ZywJABMk0F4EsewNRwjuvVMKw6ciYGHSCBOMbWOderkhMhhQYtc/AygM0marwBGMJZSwBJMMIIwXwIKZIZvCRBhgWvAABUaIJoEslY4ww2VI5BQHHBSVGfLVCASEFhwFhpxAZX6mU0uVXKhhyGMq4APC6mjwAbaJBWrCM5DwngLWCmXABGY4AnX4CYJoKDiT1/DAhYYwQQwUCAiurNhlkmSX/3n6vEE5xgFUE8imGEDVtxiM/HARhE20AgHHFkqulAyTWhyBS/C7E7ENnb/TrUyAECxwVuCZJAfymECDbigCwxALBRasOml6rbb7TqGDJTEEdmioM5k8gidU4SkEbF7MzOQxLYjwAwQsIIVSrFCHrKQVlhZUCvZtU46fLqE7qGG2FKG0awGQKwraOcDa5hcAgSgCwycoLcUH0ELLr7bpXJzBD7AgAFAoTi/hkTkilNgAFCAbo+JxwDomncL4GuBZ5SgBM9gBjMiUIIWYMMHRX5Ku2aEI55fp8OCi5MEHLCOdSzSEhiVzQEEV+MufVVXB/ABA1yI2ItDAeNMHQEHug6KTpz97J4ETkiYBpzxyAVVZGDiZmwghLdr+xrPeMYMSiCJJ2ADB/jrYoze/9Vv6wwDC5mkVXIwjPgZYWEAALCEyzxUYy0LwDDD9gQDLtEFElQ861n3pucPoJE6eyRBSApP2JH4MQWrRxK6JbMFfEH7GbC8BUOTolT2DQiTMLkPljjy2VAiARxAvnLAAp/CApswrj8SAA0ZAE+IOOw7rBYYge27PgYQrgM4htCDNY1AvfAIid9gGqEggz1oERuQhBH4tPbbNvjzBUlYARxIiCvQCl2Qj14LvjT4DAngt5OwKRzwIkCACFhyGf6KEKhJBwZMgakbgSd4AglkqqbyvmPYwPDomfDQiLuYFrkggBhIgjSZgRFAhQh4hk/btmvwhQiwALmTBCk7gCsAH/8qIjTruALQQpvja4OAgwgDjCViOonGwZI0mIAQoB8GWMIlTKzEIgEVqB+oqABQAL9EmUKPmDOOMICxSb8WAYEyZIa4mwHa87QxLMMSaIUXzEFIgiQBcqUByB86LIB1eMEBsAQgtAkOmTCpyQRd6IAQkKjeKkTfUsI2ciPQWIJGVJBUIT+PKIoCWITWS5NEKIEIOAULQIQSmAEQSASWyzb3s4AWKALeEbRSPCeKQbhXhBTvOjyWGhYCuII8nLCZiBovqA4sMAEOkCgNUIElpLjsS8QQEKe1koDyqIsGShX/IYcweYALUASwMUFUeCpUmMZEsMbb2zY09DRRbKm2Qgn//aOOYUgDx5MwRdMPh0gf9GmXDOgLxKCOd4yaTDgATwgBlwwBFYhJp3qCRMQdbyONt/CIgEw3tWO7kWkBisrFhpwBa4y/EpBIuUMEKMAGqCCujMwWt+E3J0mdC0Af3WAIfnEIvlAyd9TITBiACeAAsTyBl4xJFXBJi+KCtSoHCgkAawqSKMyIQzEAS0wX2wkBJBwBKJCEaYw/25PIT0MEFZAq/zPA4DueYXCbx9rB2tgNCLiAx2QIB9hKmtCUrvzKsPSEHuCAEyDLl+zM+1mrO1mJv4JLT7oIn7TL26Eoe+TLZ0iEZ1g/pJS7FiBMU5wYxxG+AVSeA/gVx4TMx7wA/wdIAyVDSXf0gmHQBS6wqFMSS+eMIU8whuoizpT4ALd8CAAAD9lKlOlJyECkKAaAgr6UhGewANmcO27DH+LMv4nxAg3BggF0JAHozaz8FYYAzuFMDuqQmv3sA0AwgTiaAFTaTHHSnerCgPVMB+v8DqPQTmoSDzQBGxtoAbzMxROUuxKou2x7hmtAhCfAH37LBMPMhMXQLgIqrt6EzKtsCMm8AkAQIOTRBi9wz3Q40A7gggAVUAPFrxl5URI9IgOwpmMwu9HrhAhNyF9MAacyM7rzNPdLyhMwgeSTqSs4iAowpuIiwNrISn65z6p00eOxTOTJFuWrLhPwAA/IUdBKg/9XzEMBSK8gPYYlCADhoaYEMIANoJ48OEuydCoGaMi4c8YI8AX5wh9eC0JAOIohGE4J4xBhACgVtU+sFE4XbRyNtExsIVM2NVNjmKHdOYDSocGZWKc7VQsFMAcUoAHZMoO9oZ4ZaIEneMlAvARp/DRf8IUSQAXPW6uSUA4ARIp1WILkqKL/M4j6xErJFAED3BRs0RRsqQk8EtEbPFCowAJsyQQbwT9P+QBziARkUZrhQYBY0JcmsoEZiNU+tT5p7FBUCIEHcym1SQMJQJMXcIBxvBMrMrz6lNQAKQBlnQmNfNZM3c+owQJdsD+XOh73XJnIQqgKqJYBs5SdUDkIkgL/CvVMDaDVNBqBEzCGYBI6AviPpCiCqWpUXzUIq2TRfpWADGlHgcXN/UxJ7SrOibkOYUuJyIPYS1EgBThSV33Vs8zF6wsBbwuNtmIDANgzpGgDlzIJAkqb9apKfg2QqpSAPDzFms2WxplRrq1Ff8uj/cJZULEsxBmwxBmR1IQgc43AEXAj6ZQKS5jBpGWKMuiTdXQSLaWAfvkVqi2AJchD66iOgXVHGUWe0aqqq1KedBCGdVoAS1kciC2PJOolzkoEIcCftZqKgz0Ayk0Kk1EAuCqJoIvaYw3OqoyEvqiJ0cragX1Wq3rd19UjwEAcVU1V2Sq5TgCaBUuKRXUXG5kN/x1gCkcQmwDIw15VDgyLVPvsWwAgoMPtQ4qZGK2tKqxqAOvNPz8SKkio04dRVf+ps4HZ3aQAAjaBDzZwIKa4gTI4BzKABKtR3WJKURb10gBp3piK3oEtNJv4kO3YEuv93w+IGMvyOOFJnIeZpqZBAVPwWc56AdsYod5kCj0gAiJgXxqwmgP0C/lFVqoNEALgC4CtWQ0ZrazqLxAiAAnYpAAO4AVoYQRw3GkqYKYpYAMeGIrdXSZQJGRkCjCgYCLYgwdAAELTQ2EAgC2d1A6GgHT0UX+TRchyAgLoABlqKeBZEhpYkgXgI0hIVRo228SxYfFNikWIgQtYB81QBAoe3v8HkAEM9iGUMGIA+U3T9VdhgKtichSMIcAOmIAeuMkrCAzE+Z8FEAAz2F4DpuE6pYEkoqcwVg8wKANHAIIkiIEHgISr1UMsgOMAMd0OLgADKMlevZhGobHVAAA46uO1SoMMsKzhqZIGmANWEx4UER6wS9VDYeRG3gxFkOQkEBtTMIN+I9MngWMIiIEY4OR+JYDjwOMMYAyQoiUuOYA9ngAPiIooqZICfmHrNQfFUdUuRuBDYeBcVgoduIAxVqROWIM6hiUfguKygEwy7uB+dQAFMJo9Kp4iuixQWYMKAIADTQP/GlvEEblLWQBDHh5ZrhYuHhiUGmelGAJ+MWYyWOP/NbjNTnEC2tjkeJZnfgGACmC6pSsOsBuwl/CDGbHnBiiMAKbdS6kS2l2cxbEUiKWBzXLopVAFZyqAiX6YNSgg0kqHYKANADFmeQaQqnSASPCNtwAJV+tmS1kSJtkjP2qUdRqwFibbVKXdapHh3MVlm54CCjABHNCNB+iIkcDb7gGodw4QNECDC2jrCwAQfjGAiYALBGhqOlucrmKlV+YjVq6SHjPbsqUcWq4zo1hGm76BfOsA2jCAWFCAChCIoFu2/njnRTDnt6aAtjZqdumNiYC1BPlej1MSy8IU6esqsn3hwwFXWSYwpaEzhv5qpFCFKTMBB9ifCvADgVCbDwkG/wLgl7hua+FGg0VAA6OGgGNZgiUACtJrakgQjL5qadS2lK5a7TqV6btWHBnYpYZ26AvAzoe4AgM5GIEDhJ4Qgd+uDQpQheIebrhWUVMVP/CVy25u7Qt54QU4nB6zrMPpq9Z+3LGTgYro7lweBCvDGQMgioPJk2XLgPHRjw1gbzTYAAoo7riOY/QhkQ30mIzQ7myOWDOA4Rcm2yo5nNamZQM+Oa/OZVVQJEsilq45GK+YA9YIhgOIzAkHAvZeBFVQhfeWWocgJCRREJN7mK1+apmGWCqxrO8tD+02OfFY8UYGAiAplgLoGnI4DoFwjUIJWTQ4CB7vcTTwceJO4rlGlFnQbmoDPpGIFR6dHYxAprNUrbMZBl9xFl8wUAUB0Y2qfAADABMFkIjeiAQjFvMkAAJHGARF7/ENWIT2/g8AcYCuIcaumXQFwYhlecS62HREsQiBSaG61IyAAAAh+QQJCABgACw+AAYAdwC8AAAI/wDBCBxIsKDBgwgTCgTXJBAdhk2agFNIsaLFixgzagwETNYsYCBB0hk5i47GkyhTqkQILtAsjx2RIPkoK4fNHGNgGDGysqfPnwTlcPxIZ1aoHHxs8uGzo4bTHTv48LgEtKrVi3JOdZQlC0kOqEm/7ghCNsiEGlB7hEB0ta3bgYG8Ll0KFa3Spk5rTOixo0cPHiEsvB0MFJyRrzWCcPEQxGnjxE799sir9gQPBnUIa07Z0ggSPmQ9iGbMZbHosz0mTFh8tgaHEBpQbZ6NNRDHz4nJljY92oPqCb1V1+BxYgTt4wnBCS0aiqni3r0xeOCiunfpCRw4aCiBvPvAJiOZI/9NDH20MenTPXTo0Ds7hxMqvHdvCezlUaa5y3s4r7+0h+w8ACaYfLPh4dAsSBwVSnNj8WaeMaNd59tvNXjyngaSEDgbKiQtuCBiz+k3mmK/UffbWSc8oaFmIBgxy0sJ3kXWibtNd11rJ+ZYQ3wrDmYDHTHJxVRTPWQXwpFHnuDeCSmoMAIDDGgQwgmeUMhjj24JdRtSUO0QIAMuuHAJKoiUiQgqI4yASgl11BHBmxFYMMIJwoWA5VsMuXSflyEw0MUll7gAgwVffPFmHV9cEwEIIOARAR6ORvDFCByodgIMd7ZVixx07FlDCH8CGuighb55yqmBTMJoo5C+iQiVE5z/wF2mVm3aKR9OncCAqIAOSqipcEK66qqtqsCBJyfMQKtV04A33qcqABqmmBYQaiicj+IxLLF4jKDBexkuW1UTszjXgwrRikoCKoNec02pb267LR6SfMtBC+JWJYcseGk3gqhiXgKDr+++Kay8jOKByCZK4pvvT4EogRd8//IKKLsWXHNqqwdvGycDJ5wQ7sM9yeECVNg5CSgJJAAKRa8ZnxLpowjH+e0JUJDsEzhd1AUfmJd00QWUXbQscKmFXiuvzSesMLLOKU3Sc5F9kuACAylMGbJloMKgqKTuGswqpBZokCLUPdmASAo7cJDCv1hnnYIGWRPHw5+EXoMKyww8/7EuIhZEUILZQqC9EjhfpNDDCRr4SXTRqFgAQ9BQMoBKoogMncLmUP6tgoqGqzRNHUpeFqXQQ0fp5JNdpLDrm19Y4MKfgH8hCZlPPB26RtPgUTqUYg495XtPqNA4lJdc46gFDEypARQlxI6I7rtrNEncfrpAgtCqjyCJJI7vGjgIdXirQZojEGoB9dVjFIELRxzRRZiiooIKFJKUAMWTnRPqaKkzi0AdlNU+jYDnRWM4gvZ4ZaZq8Y1lIyhYpLQ1rDrMqoAYAdJLZGGEyV3CaIAq0weHNrTkfUFm2aIgowRnAwxexCH18chO9ja/gKHig9tD3SWsJTM8qGpYeLDABf9dqBBwaOVFwOjg9qQVKpbNDnWDCpYKV/g/IlpkEiD5CDBgILQnPnF7T+xi3gw1xf9FwIoWyUpRXgQDJ86vi2J64pe6YD8JrkpSX8ADGq+oQSUs0Gqoq+HsGBC/P8HgctpSVaskBYI9WuQURpCFEooWqGnBcVrtelQKtTWzzDjSItcwwiQFGaY3zk9g/kNYoyS1qE9e5BoD0x4pp0W/X01xbHByJUZsYIMvAIyWqBNU4GgGKUcVEw8t1OVFrGAD+wETa5UTmq+q5b9sJVOZFqmF2pxoycr5qQvtcle1spUIbGJEm4gYodCCVrRwSvBRX3CTtsx5ERuQz42lDBPG3EX/xkgVjJ71dBMicvhG+nntXQWD07v0CFCLSKJQNBQkKpOGLQHGs5ENrUgJANdGUo6JVAaLVDxnUM6MUmQGI5hfDmlptYPCKXbVKgFDTZoQEEQ0kMEcWMYM9YUSlMACbbomTQ0yqRxGM6c6fVeZSnAoEEhhqAcpHyBbB834FdIF7KpdSG0gBCpA1SBQIKjmQhCgzbkOnNYipxVakIUhfJUgA1VpDlNwBLrOj1Tw0lYirCCEGFBAB28VSAmmqs4utouiId1rXwnQBlUE9guBFKsw34VYOO1VB2QgAABMkIWvyuELs9seywhqQngFa1E2UAUZAKBZDKjCYRm1QSi/yLJA/6KCstfCVh14uYjVAuC3AMDBBoTAvk/KIQJeK+VoAxnOpDl3rzOIgW8fYAAD/NYEPshC4ZQpBznUgQFGwClOJ+vcQpXABlYYwnSrW93fYqADOMDGCoZQ3PbVgpl1ENiY/oVTEuh0p4W6BiLqYIU7OGK1D6Aue3lxgAMAAAMYMEF8hUBADILDCnJgEwh4KYUOJyKscByYrxKlN0TYoBd66O1vqZtgA/xhCQ2WQIM3iwMfrEAIJQ0dOGwwgza1YAYvoEKQqSCFGbQgpUJjWVKrtbcIFBgd0gUAiw1A3WMwWAIDkICMHWwC+GZXCC+AmjYtKAlElEAIWVCFIASxgQ0wIf8LxUNdy/47uS6YuBc/UMR0FfyAYxxjCUvQsgSW8IdCO/jBEvbBBsqQL2YmQhJHfgL02KqKSqNhA6rYQAtUMNo5H5JvqNjrD34AhD2z1wBWDvSg/8ALQm95xhHuADZgiyUrzADSK7jQj4WA6TSveRCvfQIOl8u9EcxADz/gxA+S4FsqoxrVvKjAFbCs5WlreQkKAPQfGuzgDhShsyvisSSesIITrGcCK3gCIp6QBTarWRVlKMO4x2S/7TnuCSVAtrJJvWLq8sLPVq6ABK4wgAFMWwQiIHQFXgxoCWz7ABH2gVu9o80StGAFPphAByDcAR/g+wltZrMg4E2FRKjJAmf/MioDSiAFPez7B1UgQ4IVjGoF8OIPIpi2wacdDIRXIOc5H/TNG4wBHBQBzLTZ8a3JrfGNN9gEE1CBJLIQ8g2M3BEvKMEI/EtDKGkAEVTQNyeUTQQEPxvaFZA2C8oxABZc4Qoi+LmgE67tF2/7uhAYxGZs8Ghye6IDXTYBtwHQgSfUgeoh/zUThMDp0VYOCmEXu7JjLmUFW/kPEsi5E1bBdrj7Aehv/7kI/lABQvOCwYd2gGPfwswZCAHjgI+wCQDA7QOYoAV4QPyafz0EIfhttCPIHZFdPvaxo+MCmj31lbF8hWAEww8JiP7nER73Cnwe52k/fRxAcQwDEAACbtnU/6MvPgETYIDL5z+AliGugjqsoM2JH0Tvfw/BrqJDD8RXNjoWodkWV/nmOccCTlAObycCztd8zwd3SzB6C1gBoPCAfpZgBLAIV9F6aOYDODB7RCd4MSZjAOADaAZ/IVcGLzAERwZBkkAF9zdqY/cDN7AIUlZd3fdsvGCAwfB2OJiDzkd9OZd2FXB6EAgKCQYABVAVSodrGocBtOeBtId5WeZgONACIrgBaABvLyAFJsgyiDADLYdsLLh//Xdqx0BdCvBzb5d5OVeAcecHbEh9CRBtFQBwM/cABFAAjOYTVpAIFpcFPhB7tJdlA6B+WWZoDuYDLVAEIliFg3ADViAFkv8ABQPWYWKXbGW3YmdXXQ9YAcHAAiwgcIUWd4V2BZ/nB2kXd6d3ehE4hwSABj5hAyUwbrA3e38IiAdQcIPogYYIf2hwaaowCFcoBSUIZCrohS3IbJbYfch4DGX4dgbHgyLACwpggCLAhj9oZXHwb3EwhjPHWqy4En2HcRqngVpWcONoi1p2dysghW22i2ggCIPABCU4BEMQjy9wA/g3akQQA1I2hmLoZ9G2iZ5HjQuXc6swgNAHjQD3b1SmihewEkZWbuH4W7Voi4BIkQ73cDa2jhSwkZgWb4NQBvBYgkygA/H2AoqAfMdoAP+mjGWYAM5IfT6YAauQARkAfaCgAAD/x33dp4rgpxJ8GI7m92BLWJEEZ44DIAIypmiWRoUUYHWqQAEF0AZG12YQgAMZ6ACyyF4PCAqoxpIK4JLUR3oikAA/WAFrkAHCkAEJgJMAZwBsyY9D2JAq0QZ+OGNBOZEFZ23kSI4AsAFZkAU60IsgeQPAyARlAGwiqAqAWQYbMHvOBoHKyAtkWQGTmW08WAFlmAFzsAZj+ZZ9ppPJ+AAAIJcoUQZtcJdaJpGzSJFtV5EFV4c4AAEcOXJloANMwATy+AK6SQW8yZtM4AAA0JXHwH3RRnoBV2iD1nzVpwBnmQFr4AcKwH0LCZnCeQwA0I0o8ZuoOQC/xZppkAZZloZX//Cdtqh+RVcAEFAADkAADtCeDtAGbbCRaAABECCVwBmcfoaTN/dzb6gAn4iUOddzaScMTiAMz7mW2jicyKgANvdvALB6pekASuhgtceaFmpwLMCaEoADg/CRg7AIVSgIF3AB9Jme6nmfDWZl0IiZZZh9LFqDN3gFnIhwMgkIBAp92mgAEKgAAdCiCuB9TKASOiChtFd7tYhlFImDnLhz4FlwB7ABuambQ0CYvKmbN1CPunmYmoWfAXeKPsiW1vd2a/d2wiAMWIAFTgCdWtkJoBAACRAAbhqH3qd3KVEMElp7gpZlSJoGbqekO7eJbJAGEuAA76gIVeAISQAEH1kMOv9AkmUwBLc5ksApnD4Ih6yGk185gGlQDmzAicIACIAwkwkAcF8ZfZPpB4WwkwRwhyhhp+mnpzJ2oUpaDn06niwAngAgCCBZBjFAAJq1pcAllBJ5AP/2gDYHCjXIgCzqB5rKiQKYDqAKCMGAkw+YAGwInQHAhjtJhxB6EtiggbWofniZpGnIAlGQhjd4qwPQBiF5A46wZpXGZhtpouvZYIWGimmHeQhHeqcnbeVAgDeYBqsQrU4QDA4oA4VQkzTpB2e5knGpEkVgfg1Gjk5YcOQpo7b6rwUrpjJGAbuJDlbam0KmmyKpAwVAe6hoZdY1jhcZdJzHBuWwCmlgpqCaBj7/6AdoeZZrsLNsOYcFgA4pEbGr6ZoFl6FKyolHu6RQupuDwGaYpmbw95eDsAGaRawMZgAOsAFF0AEAcI4VK7DlsKnlgAWgugoCyrA0iZYCsAZv6GfsBQAOwKoasQjieKEG951hK6acGAUy6nYsIAFLewM3cAEF4KvAZaTc9gd+BgBSGS0pwAFcMHsM93abaqMDC6pYsAqjh7MEWqYCIAzPZ3My2H0EoAgpQbdFaouYh6RMmgZs8LrlwLfNx7cicACqsJs3QIJVcJhQO6/qiZ/VVQA+wAE64QI8UCVOh2X/WraXC6oZcAWamJZmKgA06XzZp4zdBwB0ehKCoIF223a0/0qrndqptOp8B2i7VDAEUnADTCAF6HClUiqP8lgGBfC2PtAnp0AHRtA8leJ0trgKnHe5A+sEcVcIU5ABAoAFwlCQGdBz0NgJO2kA2KkREfuqA9CkF5wGMkqrLPC6nOgE49l8b3cAWcCbevCCa4YGFECfbYaIGwABBHAA1UUAK8AAMABJYRIlVAJ4AJDB3wmqn2q20VejmTvATpABaceWzkaaGlEM3muxFMmpgbrBHBwFwVCToKi9XTi4v3u4HVhwrMYLJhAtMPAFWzQ06GI2GtfDF/ypgEC2BPwHV4AFUxCq0YoFBruWkMmVRYgSQ4AD57entriprguz/wq7fNvA+/+qxeiADlTwjiPZoaqgwukJnGG8WSrgAnQQCJBEAgyALsajJFxbcJgbqnGcAemwwJerwNCXxNyXjQbQkyfxAo0wobbIdq7LqXzKqbxcvn5gvtumA7wpBY8ckvA4j5BaBqpQv4vbAV1gBKcSO4c0AmmsARrwd7U4sAvcyn8gDNBqo2daDp35lWwJCnEQyymRBW0woaxbtLBryLBbvsGws873B4vGBOkbleiJnvSJA1J5sn9gcx9oAR1ULTBQJnvTOGk8AT0swKtAihUwB+lwphPtBEmsAIWQANx3kz9KASmBDZ7wxBS5dr38rwAcu85Hk3w7ABBgdS+gAyYgi0Vajhr//IO8gAErAAPT0jJkUm/oYywYMAAC/HxDjAXpkA6wUJNJnABsG52gsJYGwMQZsbXmF6sU+Z2c969azbfOFwVe/a8sIGE4oAOI14uVxpTpCQCoaHsaECjzwwAs80E3VG8gE9TRugpXEH0VIABHnQ5p+qagYJZrwKAB0AnRaQDdmhF9yIHeqdVZTasD6HbB8K9eDbMDIGE60AIt4KiRWptTW7+nZ3sjMDDAlyY8fdCIAAUnENQDW5BnOwVHLQxwt5a8gJYs6qYBcM4TnBGnacEDQKubGsCP/bJXvHnl4AQDOACxqQNFgIEF8NzQ7Z5qHdo+gAjXQG9QoNmm/TdnwgFB/x2zBQnRfjAF4YDHeZywBloBcPqVa1ABc4oS5RfI3gm7AwveexsFToDfUVAOGeAEEiCbT5CBSujFA8ff+QoAK3BDfkICwTcC+zNaPe3dEiCwwWCqP+fNWAB9TJ0BGa7RPfqVGZCqB9DHGtHbePmdYssGJx2znIrcweDVUWCu+P0HslkGf6lm7ti0aEC4DqCSC2cCK/BEUPIEaQIFL0MCkGg/nhDUF+wHcEqZfiDR6cC2a/C57e3U1aqWpzeaJ9EIEnviv23SyH3cVnzF+J3fL/7iBwABgrB4QlCbjdqoxdC0EGAACyfaA/NBwUfkI9ACUEAmZwIFS66848yjaxDbwf8gDJ8rAjbHoG26s5hZAQcQtxQssaxbyPCs1SzgfAN43MEw5k4AAC3N3FXpnr7KngRg5zZne1Cg00ITfKuTJj2NJkt+weUAfYSdAB9w1FiQwIBg0WXYowFQ5T/IoEsg6pVuweS5y4+t1c6e32u3dgCwkaogscEaY8et5QeAA1AiP3DN51unJvbzQbWuwdHHoF8p0eEQDhNNx+cenYWwmWzJoA4GWBhR7UPZdngL3ssLwBkQu1ttvqHelDoAf067e1AJANm37VLCA67zBEReZn9uPzdEAuV+BR/Oo0xt1H2dDmoZnW46B3NQCFvZpj/aBhmhA8nLujArtgD82B1s0mf/PoCivgFkvdk60KHANskQAAD7egAdICUhMDfo4uBncj+8cgLGgGXQ9+FkGQwcb9R4/KZwOgcCgJkl76a88KAZgZVDyacX/LqG3Npbrd/IvXk1nwVWaepevK+FNsbvMfToAtf3YyY3NCeCl3kJUAgBkNHWCgtqsO5oWgjq3fdri5kBUPJk+QckbhHr3MOs66zOTvZand/4DcCh3tIbMKEzxm0ScNzQ++OeYCGMY80qYz/Tk92qLXhLcAV+X6oJkA6Cr8AC8AGF8AGwwLbWqsdtGn1/wPUXcZr5brGODcCAoLH4TaAFqvyiXoVFgA1UyI47Xrik56YKQHgdMAHIYs27//LnY5Ldmn0Ckgu9uO2mhZAOfZAOrU2gfC0MlGn9ia+MhUD4a44RXp7v4Dn565/VMA4QTlY5KVcOAIQNqjZkUaVK0MMNFCAQEFFBgYJjBwBg6DDhhAaQJC5BuTQSyogRIUwAOMYrgIIEAQIkKKSmTzqBgABhwSKs0MVjoEApEArqQ6EKGlWBYdrUqdNGHTAcOCBBwoA0aQqWW9W169ZVUcSWi+LEyUEKG0ysJdAWwNsDIpz4CQCqE6iMGEx4OhEiBIOSgUu2OLEyqNBOLxMkaKAm3c504cIJ8PMTMeIAkBLIOGYAAIWnoZv6MDGVqogrLMoBKtgV0KrXZgsKEzjwLP8ENBQwwH0Lt4JZPzE7dVLwR+MEDhz+jiAZGMqTwgAMXFQwXIE5cx8apIscDguguRVkFiq0hrxMoZ0BOHghOnSR0gCoDhhwBfaq1qxflzPrhHaG2g7aYIM2IKAAjQ0EQfCCAv6oKAHEiDOuox6UA4wkDJ9YwbBjguoEgeE6MceMObDgrqcMElAgAPLWWCyAu/A65gEDCNjAvacEKW0+rKKADRCt7oOtrLLKoe0rASUqMC2IKHAgLvGqGy6ACiQwYYIJegghBRVGMOkSFVboQLpjTLksxJnWEIAn8IRZw481MggmOAg77Ew9CNrDkaliHDANqzTw06m1+8CzTSBhbAP/oAA0IJCPKriqkuAKPyxacUVIqORoghqUU+FTElAZQQMxpRPKlLs6MQXVxBLQDhbuYo0sHWEswutUOwG4cU8wNvBTPvqCFEaY134ERJgpEm2TtiiCERCCAgpwgAD5HLyCq2BiCqCymBII5gATOkIuBA0+HUGFE0g7ICgzQ0TVLqECMKMBWCWLFYs5ClmMF4zS4wWANngFY5BfJfhDgjRYeI1Y177TyTWd+jvrgog2GMQhiaAtAIDgZJJJ25lEACDcCTzhoC+QQuBA3WM6kSHETiBRNcIEzPgAFlgEILYn82hSUcYOPRuEVyZioPbgAQoqtliIlWU6LGcN1LgAHByw/9qBAg6YU9sVP2zVuHA7MFk5DU7AEoAlpJx5RVBWxSwABMyJ04lj3VxM3+FkfOCB9ZjY84YL4AqWq53YhBgLr7zab1E0sr6CPhZYwO+KK4ADuRMUEEABEj8GOECvDrhAjoMJOhhzABEySxXuu0yR6aLhzKl5jTmmEOCDnoVr2xQDaASgiD2ZCBxYrAiP9WGdkl8a8dsksroACKClVgKystW3LtVFXGOVNAbAAANjPMDSmO8PSEMCBR4gQP0HiJpyJrsSWzGANUxMB19h6Lp1770NcCB4ChAPUKvhieF2MqyyDCtiUUPQgAQxiItt4AIUmZN4MiODuCEgACPaySroI/+B74XwKtz7gwEoUIAyBM4AoJAJcexSl8TQTwAn4kmK+lWmoBHAb+4pQwyApZVAdUUY98OCAHRCxGOtYgpLlNOiKCCRaEXLatS6QjBclJnNzURfr7rf/YBUjqzQJ2lOqAABVEEBKgxCPrwQDoxaOKUEzAFWdbvdRWTUOwIsYk9Z2NgIV5EorQzxXmwiVuGwMAUnRIFxT6oP5YKIrAy4SAaQoCSLPnDJOXBHMpIZxjC8Uw76gKcCBmjUC1Rhqpe87o0xo98a7vfHKcxBRXbqnQOGhiNfAQBhsHEYL00UDiQ+7EfMcuLVsCYtavHCLC/KTCFsFqc5zEEYWOhDHzgpGcT/YUUYAriCASDggDIEMA4KqABNuHW9l5CzENOsmx+owwv1XIBXG5AWBrCSvO8UcFaGYxgsnRAMAjDKQAhqkqMoBSd9FUI7AhBABtKBs3R4UjLV7APi0sAGJWaAlAVgAhqkc5GZJMAPldHXYl7khxkWcQ3UCZoD9LinMhShEU+iHj55cj9g3o82S+zJEoMhAgLgZorTotZbJJBAZNGuRLHaZDiGQVGKeieQkTwICj16jBX5rBAkdRFIN9gAe2WAnBjxDBoEZspGtEGXP1rFTbsDzEMyYg5mSVYwglHGAkyQFyKYVORUozRArGmGmuTkU/uwBcP2oZPWNMuw1lCBt0yL/18xgUlJzbOG3MnkA/aqlUU6Q4AyCAwMWWgEAapCQJ380pr2QqTOnLBERgQnoI2LVvSkVQACKMA1smpqJxe7WKhi00QMjeQS/lBOkyYAOyUtTwZS1MKbAVMYFemMAQog2kRkAQdTGcCP9GmvyPTUCQJgIiMYgddGXSAtEaEAg3gRBUFqMlbVHIYXENtJxCp2C9WMlQCiuYajINSk2DEHJMwxhzg9dzhxlIwARKAi/92SVzPwgVR2JIHkMXWTiBPiEmFbRghMsDeRkgALpmm/WYUDqlu4b319+9Sc3i+aM8YseZSrXGeaYQ3DygBdFqyddAhgX9YVLRie4AkstaENfv86QNKw0FRrfuWPiRrITwMawGolLQqq6YpbZ6XJw7IYvywWs2H7m44MEFcYczgKTWQH4DTTJhiZAZE5wFqrABxDh3uSQ58jAJKPZIG0BZhKGk6c0++wgQ1c6UqyygFUqYUYWlcDQKAg0x01qFjFLfZti/ML3nRMgSfTXDOby3NJ3JF6zjLJ1AcQbBEi72kGUEDEJRhw6xFI4gnYaENpBgAI+XIHlIp2DbH4E9QNGCgik3YAACTnVntV06legHGYx+wF+96Xv8Ittc5iKU3aFdFucMQsRghgVhxZoQQjYEAKbt2FkajAB72eSjmevElAeO4Aq1EeeK7c7N70VTWF+3L/OGyi2KcmnMzD2AK2Hd5i/uozZ4KVoxzv599CwOhFEJbnnmwgiVsz4AhdIHnZfFC63fyaqWnoTXfx2RWsBZB6q6CKBPzzRy+rQedQpe+YydxwMmObxda03017wlATFRBfCCaPpY5x3T1ZYQbsToG7b72JsiFZKvIpxz4HEHDv8sQJDjAQtbr79WkBwD8oNjhFgatt/CbcmmF2OLUlSsSLr4m3RZzDSCvAixp13D1ySAQqGID1qt86BX4hnTEelYZfYuHr8klDagsYhZgXdd8GaTYLnJD07sxd2/Tt+VMlTxVAOLXhQl+scA0pq1g5IZKjFLxobIAHGLiABAzQANZv/62BxZ/AE1KhDwHvB8KpdLmAAghGzAHgObOvggWGNrqsFOt2aV9/tQMwAQ4mgIFVbNq+Dpc2DZX++vulYQlQH3wdYEByEpTLSyTYfQo0oDLihx0Qn5MPbKa5JmFoPgNxgD+gubWoNCPxstBLLGmbKE+6CXAxnQ5Ig8hYvYfLr7u7Kcj4JdYggCrYk8JjgC7gPQ0IFUQwPOALPk/AgJraQAkAlmO5qWG5gmihJwKQADawEhwwgQNoK2jrAzUos9UqvU4Kh1VAPgkQhmmru7rLr9UKhxicFdYAAAlzjxlQPJBgABJABEQ4iSy8Pw6Qisoruhc0H1/6jiPMPLhgA8+ZCv+Csz7gekIHbD0o5AkV0y8LbELE2iQiMpwDqD33SIRRAQkNGIEtRIQWQImQSwGzsSdgCy+NMB+dOLHvuAKs8ajJ07cB+LzqiwyEK8LgcirS+y36YjGhY0LTO4CN4YUrODGaA0QckYQsxDVU4EJJgIJ3WzxPMIbuujcskIAme70imgIJuET52Bj8uAr0uzeE47k75DkiFDNT7KS6e6pyYD+1mhboKTIw0DUS1AAGoDVJuEV2UzwOMAaEebKbCBalsx1YmAIRIDuPWpQDuDd7cSvVYsCJmrt9NKwX+7lsGz/76oN45EYcmYEnUAHguzVUKAGH9BLFS4Fz3Dd1DIfu4aX/hyqinpCAoEIDjSgACdCnE+GtOHxCILSmg3M7T2I4TmM4+8KvdACq0DJI0WgBhSSXUCmBOuBCVNi9dtvFfePD7jEk8uoJYbiCoKIAjcCBeqQh2HvGarIJPgwut9ukZvytMeskWFAAKqRJ94CC+xPBS+DCEvgCw+uCxZsAYzAfFOMeQzI6YiS7wDmAJ/kl2Oui7IsqMONHafMkT7w+iVKxlXyqD1AAb/JK2xOCJwBHF7gEVLAAs+Q9ieQCR8QCqqAcAgK99FsU3HiLjbm3TFMDnoCFZ1Sxg5MMndM5LUjNiVKx7uAOhoqmnCHNcGgAcwgA/5lJxHQKhCREBmhIRLhJ/x74viYrhwNAg0FAAwdIwgKyHZ4oxgugGGiBFgAQgW3qL1gIrtRcLZ1Lh9R0jC66l5yKpkLIjkJgsw8wA5kxhQdAt910Cl3zC8CotarjgBrwgEJTxaYoAwK4AkM6IFWMTvZ6Iijqz52YAu9MTe9kqu7kDlhxjKJ0ToZ6qDlogPS0sZiABBQYjgdgv/dkCsJTSAZwgRFUmftkQY2AAKd4gazxP57oioMQUASZ0ScqABE4UASFqFj5zliBKA+LJSzAmQbIJFiIJjO4zRfJlA0FhRpxzw8FAysQAoWsOh7ogQnAT73AgdCoghhgxQKishhNCzQQhA3IjRr9g21iBMxyNf85EgCD0zlYcVDy8rCKK9IKFdIhdZEjRQAljRkmVdEnbYoZuL8e6IEa4AIsnQD3cAQyAIVWHJauuA31KtMBMVMGsc6+WwzsWIB5oReciVPE6QnZY7MGKFVTlaNSRTCaKE9z6AQaeBkmJYBAbYpEWAH7DALKZEETcI8bAIJFeIAKgI3auA1layA0QIMLgBYRWIWfygyPQYBOLdU41SnykitT1Q4LrdBU1VPsoKSXGY7OANRZfYLSIR8W1BVeTYIkAADOaagMmAJLjJ4DmdHcSFYHoBTxGI7MgZsRMVXYm7EhLVVstdBrbYAFSM8jNQcQ+VYmhcX3FAKpECEtFQ09qIL/c0iCRq2ASFqDKfiDAmgvMT1WAj0hETDMthmOVcEcaJVWnPEvOYIFU41Zmb0kZxoRDYIZWHXY9/QBEcIAHNEDR7hYMniAbfED5zqIY6VXM22vAhilFTKFDUVZGoDWBRjSOxXSaMKkrNXWS7IZM0AAsNUg1ZEBsu0EAiCCWWUKX1mLXcWRG3AEdY2BBwCFQpCLKQCAC1AQkR3Z9nIAEQC8VQlcVcmcqk1VU/UvVzPcmT3S9AxbPgVbGohcGugEA6jCtOUVK1CEc9jcRSAAFioE5zo3Mt1bAo1OApwOVGEVFEAVBGBTq1VcmTXYazUD2l2AEVmADJJcGthQE7rcIkOH/ypQBIvFWNfxgwB0gAdKkDIl3Qt4EgMwk8BlFQyymRmr0GiK3Xk5WIGdAzPgVAIzB9xFAMl9GVPwUN91D+BVBCIY3rlVgHUSgQJoCGMV2RndmOeNXsGF1tpx2SHVDlfDVk6l3VNFWK/9WkjQnFfNGwLQgfPdkypwhCp4YEeQW1AwWkCQAAi4GKVN2twogL2JXlVZFbhh0zkQACFFNYINYOq9JFO1GdylJLDNHBqQmQAAACdt4KcAAiAI3gceWroViOOEIHp9oqUtAAO4X8GNH0ggkWjKyNu5JJuFVtpFtQLe01elAbgRXz6tCwN4KRwODV+F4CpYBAAYCqM1CIsZhP9KJWI0WIQnggAaiV4UOFmhsBmkeygBsFAzCAAR1jH0JGDaheFKCluPGSVx/WKnWIQYWIQHltuLuAIAsREh1ts2XoQ2bq/1eQDBBeHWdTUTTocZSwDrwi0FMFqt9dqwLTDHjdxMwc3/QeSniAEyYGSMBYUKoBw5keTkpORF6GUzJYDe0eTUDWGVVSj/stM5GBkc2EGtwaysTc8PGBEzKARIoGaFndot1jPLRWQymOUJNoA4oJxWbL4HGgQKUBBL5tsTeoAySVkQhtoAcDWYhQU1mAKOwIEOMAEJEIE1mOKupV0SoWbH1ZxMuYvehWWmwFhGQQNg1lhcht9yPuc2zg3/0p0Idk5ZYlYVzMmOIcUZYQAACdTnCsixANaOGYvmgQbbAECBAHgAnT1fRR4QIz4Gjb2rb4GAiEZnS07a9vqmI/YQjZbjldXWOQChfD6AK8gx2qXagwWw9MSOsIWE3R0O/0FopriAQXgBgjEArKIJfjGAvIUgifblMj0QpuXqU9kdu0jZzDnSg8WdK0CYK+hngO5e8IVWp6Zdhc0cBJCBVwUFXiAAQbBqB9iAFvABAICnoSiEDmlPHR6EvK3kDbDknY7O9WmZodgdjHaZAwbbacYd7q3d7gVo25UXm0Fp8cVmVjZM0IDlwHGA+OCbotibPNJhIMjbRRCE3O7lymYQ/3aOH5Td5A/ZIGm2GQv9ABWu6+K2GYWFXGymJMM8ZBz2oRHrZjN5gG4uAEGw7XN+IN3m7b3FrQ6BF3d5lxCB4U1N7n9eboB27qktMEh4mVj7YkYlgN0AAAKQZU3G7oDabkcAgu4ehIf47jX2aa6GmbUW3OEI2+5dAE5lYe04UuXu5+bWYrCN77oggJcOVEEgg41YjxjQb/Xx8ALIbQGnmHJ2CDIl0zKVng65i6gNYcFFb39GNTZb6rreY1VO7bCdWhlIn13B4UWYFhMIqBAng/yWZTLIW+VFcQhScYgo629iCaGIcRlHFRTAZoBGtf998H+e5seN3IHGoJY2X99VZP/8xpojj4EkkGU2B4KHQNYEefIBHxD2kh60jp9TCVwU6PMPiZvuPQr/xV2AluYe7/EDjtyX6dAvVgRFJgOsuQA3T4JzWAQyiAEgKANHcARBoJg0hnLlzY3oabbx1vM9x/LNAVsHR2FAruuw3ZzOFvP4hgRQWGAcHmMkv0RZXoSgdXNH0PQy6HQEGYRN1+EBF1nbcgC0hpnyxpw+F3MEUGrSTu4LT2nxJdvJBWscdvRchwBFjoFzwPVLLwNyD/YLGFNyL/Zjf2PbAuYVMvUr19fOhlb27tZ5H+j45tPINegNf88JRvICKIIL6GWL9XAyoIByD/ZzHgRg/28VZ69kVS+Y+y2TywDuEEEBv57m5hbtlM4UyIXWqJYZypXV872BNkdyb1/kcJdb7EaDMmB4hV8Ehq8CTf9vOBdZ9UKQE0JrjFZrVlHZgXbwpS6EkL9mLebrqcV4UyAARzhfdHCEb59sXlcERgUAMshgcqf5Xib2Mohgmn95AYcIglII3Mpk/jl7/nGbttkdys0bJI7eU18V/iEAMhCtgAAAIfkECQgAWgAsPQAFAHoAvQAACP8AtQgcSLCgwYMIEwpsQkcWEll0ZsmC2HBMjhxIFGrcyLGjx48dGU6cFfFiDlkWd+yosYNPDiWXXICcSbOmzYIRkUhEkkOlzxo1gggNwnIHjyOobipdynSgEYsX+fBZWSPqjqFBuBBl2SNEiaZgw3YMdGRlVq1DgU4FOqFtjx4qeYQI4Uus3bsEA8nKUYOLh78ehvoVWqMHhxoTEHPoweOEhmd4I4NlOGtMUL9/tWIOnBjxBC5c3J4I0U6y6ZtNAlXk03czYMBtP8MOzeHEia+nc3NMTSfnmLWvMfzt4EG4h9CAMfidYPiEJN3QE25TPZFnz5WgX//FYFx7YA/MOdT/fh69vMBSqukggZpjatbhxLd3P768bQ3xIU6UNl8ehhHfGKX0nnbccZfZBEHEpiAHpPFXnhEQzYKEde0F1VYH8XkHWGihKTgBg7g5mFtEDu3l0lpBGOaDD555mJh4Ltp3Qgsi6qaaRBZNxQcPPIaggQYjBNmOCvnN1c4IqMCQyiUMhMCBgvrVmBtlUEmVwxFKuKAlKtdc48uXFqSCSgnPgAACHmhG4AsMIcR2wghSnsZQlUYdoaWWl6RyTSlqRuBnBHiYeSaaeKjJwJMf0hinZAxVWBgDl0QaKSoWdMknoIAKqmmhvljw5H1CLGoaHb8BFQKkkkYKg6WAFhqBppsa/7oYB1CIKpkRPRF1aqouwOBrl778mSmsZ6p5yQniKWrrXUZQxSCqkvpqwbTB+llooLCmyaZ4rSyLlxJUnaDCCJG6ENMlvsJgQbWYYrspmhZogGy33toFLlDikhsTnqhQWuml1hJrZgTx2qZsvU2VosRUPeRbLr9JVhpsmq9mW2jBJ9CLcFMWHMFwCE9AcckrDKSQgo8aMECCuhP/uSkIflpg2wqhbpwwDDyopEE7LpSMLIMc+PBhCK/A8OU1YVrwzNLPcJqKkyvYDFYg14TQMANYm4z1KySgwoAGczHwSqUWeK2BCuNCUcKXkuR3sNRK+WLbqSSoIPYrJF/SLyqvaP+QAgOoqGn2XBo8MQIUFkiywttw3+TpXK+M8MrITZ7woQo/lgx4KXj4wqTK06YieipPhNi4UhGY/DcJLrzSRcknhyDJE2Iz0EXgZqaiQW0htLCuBS2Qd7pScij8urmXsB7p4amUIMkIW6PiS6AzSNKK4U9IsrQkwg9fU0SzzALDncjvPTr0Kb8ifaGJLI2H+2iWkIj3Nt0Y/iylGIHKnXlOWzYJJMOb0TKVCIE9Ywb0q0kpehM+I1zDCOQzl79GFsCuTUxgZnpG9xLokQWCjw7XGJ+WJocuGJDghAEs2gUF1r5acRAk9gsfHbLUBRqSD4Bi69q6rkWs9xHshTOJAAP/Z2GE8dWwC1rqQhdIEBO8pcBO1BrWoFwVASCCZBL/oUMRY6LELuANiTBIXhdSIBfbpUB6FRtYBJ4RARtYESQRMEIRvRipI2pJCUp0nRJ7hTQL+ElQrvLFM9z4Ro/gwQIQbB3r7qgEPLYOeau6xqsCRclA+mJ+hfxIBEI4Piaa605ZmtyvAgZIigUqkzOZRClKcQ0mLrJ1SESiDldopmv5aZCopIkcQGCBh2mJAUd4Ih07dUFXpQmTuQSJHORQAlREiolKVJ3WXuGCJHXKj61CZjI/sg05PAMKTKQm3lynJWl5yUtRBBQhtwkSEPhCZeMkZznl+KU09ulV7JzJNnwR/4gmjjOJ5Yzk9CimJhDkcyYlYKUz/3kudUlMWF8ikxwOCpJeqouCJNQbpbx0TzVZQH4UBYnnkOhPak5qXcHiky+8tLaJhtQjI/UiychHTS5VSpJLo5YVXuqREozsdX/Lox5LuCowlYBMO+UpR55xiS5m7QhQPYLtqKmu0a1tkElVqkKesb9xwi4E0vwb4ERHpqWBYJ1aPYgcItBVFJYsP3P7m96ax8Y1gkAIQ0jrQWxgAzzwrXVcAyDJsNYrlLLrgDYQQhb0WhAbnBUPYfQiCsepN2p9qZ7vm4EVhhCDDbyAsVo4hGMjUAoj4m2yXXMou6yFhxkcYggOMIEPPptWK//o4UyVMkJTT4jCEwpUWKxNxA+YQAYCOIACtOXpNqzg2DXJUUuTpay6vFRXaw3yB0AgQy4AQAAKKHUbNlgmCK6hhCJCl7cBvIT/VluoZxxCCnvQLgHmSwFVHHS5ywyvHGxggRRkKXm8FazKVLvaVCTiDlQgAxkA8AADAAAAJqBAFjb4RuYm4k/5fYYGoOqCAAfphBEzLJhmYAMrVEG7DG7wgyGMAyHUzIoWngFZS5DhuaTgtIHlWr/8Z1jRgcAKh1gEih9A5Acc4MgY6AAOsJEFKrwwEdVrAdqgwM9l7vd55Aowb/3lP6SlAgruvYMe9rDdFDf4ABJI8wEwYALZZuH/BU5unByg3IIVrEBoHGhHIHwhPyv4ma820GALtMzlaUFhBJKwwQ9+oAjtbpfIBjgGmtP8hyOv2QSNwIYQ4oywbUAZCioImg9M0IEJqCBxLcDrEIbAhBe8YAitgEK/RnBCjfaLBNk7MCewu+AHF/kYvPiDsIV9gEoDgM04KEIWXmyrGZSgHU6agJJN8OAOrAAKLWjFBra9gfrqIAutaEEqwtS1Ewbpa1BIhBU4wQkwxODRkD6GvHmxhD+IYAADkEClD3BsZNd3UbssQZ2lbYIkdwAAR7Z2O+rMbW4LYgOtGEEqOoUKWp/way2Qgh7YzQkivNvXx4j0vP+whCXkO98k/5fAkVfsgDZsQAciAkEJRuAkDBWoAxiwtAmw0Q7FbUAVD9+AIHSggxWM4HeowCHWRuBajrf740SWt9QVUHIJXKHqKa83L3jh4GMnO7m6SUQJoLCCJxWIOwe3NL990IIWOFwQgiAGMWB99E7RGm+Idu0Pds3uH5A5F0Q2hSnmXYEK+EEEEsh3miVQ78LzQgFbNwB3cLCB3NjA2VK2HM4LdIA2W3oAR8ZBqhsOd2IwwQbP6xeAGYCkROhh44tm95jh/YDBH0MBFRCBCK7A+yuk4Qq6X4IIllB4yBsbwmhYLF4Czb1WaD7nlv7DsRGOb3x3PgtuJz0xykAFIVj84oh2Pf/snX6Ddz/gGIGXdwWA33veWx3xFSB+8QNQAV5YGgAOKEDlwwJlIbSi7ASHAQincio3gNVnfSbgYg4ndMSgA1QwO5M1As/genvHd7K3CNtlAA8ACqAwbxLAAr1XDiCoe4h3BRJgeIWXgoy3BAfgYA4AAWAxBNlWdjjQAW0GfQdgfQ+WePiWZqBnAtzzdoKgCmUgBahncakwAxq3cRb4A2CQBA6QCwaggVHHC+uXBmkwAFk4AL0XfCJQAQmwfsNHcl+4dVwHAN7FFNjwJBhScDiIZtaXgweIbywwAAAQbg3HgEXIV0MgBCVABRpXgRXYbotAAAAwhVN4fiEHYQaYhVf/EAy6V3h+cAV+kIKIJwHDt3WLSABosBTYUINuiHDHVnByOIdpAIInB3ocsAJ5+HMO6GqudgNSoHEcF3s/4AgLhoiR9gDGlWnY4AM4YAJyyHjxtwRWx3uQ6AeVWG8KcHsh9wAAUACeaIMCyG9ItmKlWH1swIX3VocAgA2syG1ogAYN+GqwOARwpgc/cAd3wHHudoiICAoG4ACNsDgt8ARPsAKfKIxpVnJcWH3AV4nFdwwdiH5ExolKIQihqHZHpnKlmIUsAIK/534AEI7bNo5xZ3poQISrtmpMQAXq2I4/UAaGaAC8IG8Olmnjwj1CcI80WI0+iG/A94UpWAEK0IFF/8aLnXgTquCGDIlwn3eAqIiMJliRK1AE4kiOplcAsYUDPrABRQCMGzAEYCAFVRADD3aSBekA2KAC+Hg4QXJoKnBnOJBzEoCF+FaC9WeGBllk0agUG0BtDBl9w2Z1dBiRAxCRvAcADXcBF4AGG9CAVPACTKADUIkDoNhmbVAA8DiFCtCMAAAB4IaP2dZ2I9ACyZOPbQAAPNh+ayl1OFlkBFAAjmATilAEpKh2DvkHiycCpwiC7QebaPiU3UYBF0ABG1kGQ1cGZbBqLiYERGeYDgCPt6cABlAAy5Ztl9l2hoNokpAKdQZ9S3CKIvAHBIl+8iaPOWlcgmATWdAIcnlk+//GmpiIeDI5guUJfHYojhSwAWgAd6pwAYbIXS3XnlmgA6q2AVn5B1znAEZ3j0ESoPgIBaPzNAeXeMBXAdYpb4qYk0TGXd1ZE9jQBtyBZhZKngOge7yXoSS4e7qHbwCgCoEpdzrABEMwmLypCmgAAQUwnw/GZsN5iFsnfRP2ZQKKPcwTOiFAbVZ3eDbJoA8QB0AKaQZAAMRgE0UQjECpcpUGkB7Khbyne8HQfgdAACZQABAAAX55AYGpCIA4i1JABYpQBhsAAcNpoTN6AKJ3CVDQpi2AbS0QluP2DL7QNvyohV8ICqYQdR1IhddZpEdaE8WgpDmob8LGgzK5e1eQb7v/N6W9R4cHkH8QQAHDiQGjCQGBWQauBogoSgGHCGzSdwL+ISkBepkE+jtfdgL8mAaQ2Iy/hp0cCHkhZ6Q2oQoOAH1qxppauKssMKWKGgx+oJdXAJsswJcNWAbEwKIuym9W+oLtKQiMaZLB1gGowErP9GFCMG7j5gupIAmooKoHsARXMJBRB3mPlwBheJNFWpo1AZ64inLCNqxswKrs13vBEJH4Wg6QCABzd46DyWrEIAhowJQPBodpZoUVcAAc4B9hdAkjYDiooK1HVQKiMwIckHPi6ni/9pgVEAuPGQABgH4EAAQ24a6TFocZCoK9OqzEmq/lEAW8xwIHQAFlUAWK/+AIi7B96EgFnEqYxLABLYpmhScCB+ADIYBEXPOwBPqc/jM6T+ADGNCPjpedHOsHHJsAIcuLgUoTCmmWPBivvYevMRuR5TCswTCl93oFfwABOmCzjhCjxlUAFLCbikCYZIpwIjClElBqPJACKRMkBTo6iZMKIwC1PLgEsgoKYYiCCuAHa5AABkkAEToTNyAICwaHPSiTjoqvLBAFK3u2weAEaCsC/PoCN3ADirAIyoqN/AZhJhBbaZa3U3oApTYaZyNxz1mgYZIKKjABGCCTS7B1FbAGGeC4wZAAa7AGFRCatEoTipBdQDmHGXqvbMAGnMsCIhiRoHu2IkAAmnoDYP+AujfwakxQBoa5uomXhcS3BlM6AEk2NF5JoBQ7OtxjPTg3AGVbfwmQARlwtpS4Bn6QAAVJZLkwuSABBNBasNLLhffKAmwwtuUgglEQBdsrAd5LBGAABkTgCFVQBeh4Azw7mIUJtABAbx2bBmuQhcIxASewAuPSrc0zsd3au1GboTa5Bk7gBBFsCZawBuq6nfZFE8XQCIxpgPirjWwQwTAbDNVbDtb7smfrB5DovYpwuooQAwTAHQ7grCOqA2WgCoeoALGQvDhcDqDXAauoAuLWPJJQAh81w757lldghfwrupYgDMWLtaBQZIBaE0XQBpt5ZNW3hdWbxA48weVgCS//+7JR4ATFe7beG4tVcAFmaoiWVoArRozBkAHEmwFOkIUmkMaHwz2Jc1Ri8rS/i29/4Ad4nAHIwL/8GwsCHGkdSADsOhNtEIw5N8hZeIoRvMgU/MsR7MiOfLYsQACt9gJSgI5harciWskIh4W6J8XBkLyePACyNRdPEDy5OzpJdwL3q2/WLAzCYM3JK8AKEAC1vLUg0QY32JDSmwZJrMSgq8ROEAWebMwOcKIaNwS8aaLo6Gqshqwb4ADFJrtTSsZXIFujsZLdfD7gmm8VIAxOYAk5nLxjbJOPeZNEtgjtWnDRi2/ynMSFzMg5HMFsYNHBEAXCwAhTus8aJwVl0KIs/yeprmirwpYAjuvJTkDO5YAB8Js9wVOgkgAFJ2CWfxAMWJDIGYDHPV2JIPuYe/wA0kgT7sqZ1YeXpzjPJ20JE3zPUfCyOVy83avMeiDT40jT2WiNaUnGTS0MyIAMlkC7PmC7SLLGz/k8votwFZABAjAF5CwMWIAFGQCGIKvOe/oADlATumywB9jEv8zDTvzLwaDIjUzB3XuigNhqzUzQLCqXZ5mhY1zHFJ3D2IzGYJU2uVvUIYBzB7B1sfDXgz3Y+loBAZAAsaDOoBAAvNC8IEGomOvE8yqCiRzB2FvcJk3BORwMIUoMrqYK28cE0t2brFa+xFAAByACfjDaPI0MTv8g150Hv0HiPKIjZVALAMUZCxmABdRADcIQwAGwBlPgsekchpFJExRKfSI90nnJApKtyPeswymtyOWQw6LLlxSgAy9AAfO1YnELAUi5ATiAZtpNvDlsCXGNDMJwxjXQ0CRQvyUwAzOQBYZIkCBLvHOwBrkNCgrAv+kMsgp637hcjabowCIo2U6swzxs0Xdc0ctdAfnXnmW6usWWl9a3q7pnzd+t4XGtC+7bAXXtI/JLJpKwAQSggRwYADd52wnwmB8gAMqbzrHgB9IHg7gcnjzowNZbvRhe3DwuDBiew3MgDAUeBaQ7qRugqTzrzz9LATjgAIaYlh2r4hZOzhluCU//XhuFgwpwmgUMTpCxCgq0kOVYO+cBjK6y3NtB/NvveoBbncgEbtE6HAX/XdEa7gR3vqJ/uX282YdMIASF6al/UHi4nbybLAACANdYAOfhzTsqcAIr4gMQQACSHtUcOOkKgLxgjrUgmwBTWABlYNU8aoqfvuPIDeo7nsOlnQEGoKUGbaGt+7pySwEQAACzHsCEXrwZMAe5PthwLgFJhhwFYgIEcAD0zYH4/uKxkNsvzoFT6AAG7BH5zYNpQNyRjeF3TOA7nMje3dMWvQaRuQEXUABMGaN/oIVbmMiViK617siwPNjtTQ3IkG9w2OZHhoXFJ9W0MOmKy+wBAAks3qcB/98R7rzL+Fa9WOjA/o3jvzzPPDwFU3DRsQAAf4kG/zzQhkkBNC0CGSAC6AqGyMvTcC3Y1JAJmTDb7N3kEoDVA2DYLH7YsarOhw2ytBCyBABz7QzaeQnZO3zHci3Mbs7DBg6sBPCXFI/nDSjd5aubBDDrHI/pngzYgs3eVk8NhN8HWGCHN5h4S8DsXt+Bkr7bkw6y+26cDoD2HmGymHgFPv/fh67IoC/3ojvWsVD3aND3v+eQrouYjHmCyDvm+/7WWCAA7F31fdDehD/XpFZwiWeTV/71MY/vLE8LyOvDDlYAmM8RPoBzeHsFGA7Xirzzcm0J8zzPBe7xFAzx7UnJTP9pyXKYyOTMqsqIrlLsyYId14Nt9ZkQ8liADJcmgFxYAZLrAAYQ6fh+/x8wB7Gg0Q4GEBCYaCFY0OBBHyYwADggopwlS8iQWSrH5iFEiA8fOrEkzEmGOU6cBANwQdCGMil16CBGbMOFAgQAXAlW089NP2syZBAmUSIWapn6UMOCBRmWAQcYDhhQzgAxQQQeHANV1aopULQgzUmgIEECPwoAANhw0KxBHx0wHGB7UWLGchPLzXUy15JIj1MsTfkIAAKamA4cQNigamUZJsQgHKAZLGesWGuE9expScAjan2GEi2qK82ANKHXAEBDgEDMqVVp0TJlihaCWAESVAhQoQL/rwMYyp41i03hAaZpyqWJKHHu24fC7or8yHOyMJIFSgMQETqNBKUEHBA4MLdcsARr/Ozk6RPZFCxC+wzLFDRTJiw9P84RIeJPAR0xAGRd3Z9WgAAUsM22Pyr4QwIAKODtoCxMAEACpkArDqMJMSqnOSfmmEOAKTp0wi800NjgpZiWSi6+C8X7KrIOjSoKqPcyYa+99jjDQoA5xDNgA2IIMIA/qwCUDSw/RKhAgWMqEOEAB4hZsKANZAIONOIqzMiijCIqJwryOvTIrw0EQYyJMlpSZQMKIOCOoij8+CoAFpERZoqjigpqGDz7iJEaPuMDaY0rpOQlK/7+S4CXCvyw/6mCJXiJAxReACjgSS1eKGKhKYOb8C2KKpwooinmFEAASyQFTDvtcPhLhzJ02ACANJjLQDwz1nBCmKLq5NM9PNnTE74bNVxj2CuWSCAASAKQ4b8hFfADi0cEECaDWBQA5RgDyHryhUbGyjS04j610Ly35JxC2lslpYAAEQZg4d00RBhrrQEgEibH8UBC70U73XtPs/Xe6/NeYWP56thCD64ggQyAis+PWI7MFoIFDxni0qWYYkM4S17ESLgIwb2LL4++lA4CCihAI83tGOvYRRzJm/ORfoEKaj091+tVqPdGnXZYg7sCJQBahjajKwDXkDaDhcFSwAACdjNLhyIcnP/SO3tflEsCD3rgYAIMmjI31Ock3QANYlJS6UwIHJjJiaMygHuyKWiuOT3NYux1xveKEmZYoN/kb8gErIpl1lg+YLqCOKCm+CAdcKB3AF0qwlrOXAfA4ARUYNCAA7UGkIgvsj8sgAK3xyLABNYdOL0ACR5CRoBc+yWqz8zU07nXvNuLD5lZ54As2WNlW2MOP1SDRPE1YvnoNmwBwCELgyQPGzTZI4LoJ6Q6aKeUa1zY5ASw6x29JyxMR8OBhq4QLrRyWJBAAvRvxPXFXW2+GeCAddaG74Gt4QOxSZaQYkG7ctBmNZHRCa7mUIFrjWV6BGkQ6x7UFNnJSS4sOIAPYBD/iFIYwQUMCMEETMCUiNxKPgkS0UlClDIKFOBBKrwRNWhXO/xRQw3/4p3/hqGZGXFmVh8wgzmO5pVYoEcYfiAaLWJhQ48EYwpM+wMv/gCANghBC0IoQhEagYMLwm8umuvACVwQCDT6wgKXICHogHMhnnDECQS4QJhYNaZW6QANEAAA3IpyQ6MchTO7EljvhDKM/3nhf3kjCo7MYAYiAigBh7tRBhKwGlDEoijkEcAakHSMsWBDC0zIQhHa4CAIfWY4B8BBO66BRjSWwgIWcIEGQgA6CNVLhRQBUUxMYBoHsM5BD7rf7fhlu6C4p3cAQ6Q2FvmrP87hA0Q0g8FisaFH/wyQaFWZQ/rytYbbGOABBFBQFnyAA4VkrBwDAAAHXtkEEIYQBjBABQk0QL7rcUx7pToddyRwhZHghV/5c9gxk8mnf/0qb4j0QkO90CvO3GtWj/zKhnBkMEI9EQtpqIBOwgm1wpwSA6wbaUk3VwpYgu8aMHCBC+oZAi5gIGz6vIj6eHSmNKWpRGm42zEddtAa0ah3w3DoQ3/ou1FlgIhETMD9pjBJSMgAFJBoABaY5gcn+IEX2JrUKVmHAxy0Aaw46EAIUCrLll5Cra94BQkYcILQVYkiGyEJYdKmkpXo4EwF+ENHbNgngyIUoUJRZkK10dBmHrWRU9CQNHcyh53ERv8GUoUEzQQggitYgqMT00IRHNAIbIS2COcs4zXQygANaIABr7gEW0nwhBD4IGwUkohyTBelsTAkt2yhXw5tZzuBxehfwsVTQ52pyD2NirGKA4mGqAWJAl7ThiJo2GYdUBYvYiML2+UAWTugAVSMwK2pDYFqSaDWS4zgcydMw0RuhRFhqIs7BuDFP+2iPzshc1c345lwhYqnwyIWkQAcFWQ1NCosTAEy5kBWeOITDKWlYQklIUgXtVtKyZmgAytYwRNQgQrUppYBDCDBh1HxBA6cMC51wpVHCPAXEbUEKmgqgNuc4FM7qWFXO/SXntTwYz7lbT0CBjA0BfDYFv9sDY//NJjSsLAGhqXhAARQBUHKYOENeNUEOOBAFiTxDFSkVrWqvQQqUvEEFZRPFxPpUIvmWIANFOACd10JTgmQBkDuNxM61qFg97vDnAGxmYuUEc58Fx8EKxdxsTjaeAQwmwxcwQAXKAgYstCIRmRZmDjYQAtmUALUhli1I7gEFGBbvvaO7TJTeDEaAIAbpXiLLTx10X5tnUwaBdeQ6mGoM/+HyH/ZsCPnGpW0cmTEr4ynArEQRqCkpgViNCIGG4AADoJJgSwMQRJPGHFqU5CC1I6gBS1A8Uw/FSoPtbrGDPlDfVggSGDd7tZ4ExhCdyhcZh7XuHs7KnzOZdGlDesD4IyF/x8qcAVh3KcKBtFBG677RdZlWxIqKG8ILB4CcKtgBFAYgQp8AAAJaa/NUXhxmGY8IpYRoLcFtXVRCLs/fOtMM7526K8FLbB/W/Rns6KWmxQAUNIcBAgxOaeDTCAEIazgBCcAtwa+LWIzjyC27JUL3CaShtMApgCnEwRL0MTHiARWz4Mdbn/9JSOi1vzXzdRTUUKyIbJNBpzW4kV9HOAIoZMBA9Z+0PSKgAMfcMDb3x4xA0r9hHt2QALtDZdyyvFiCgDgDwPAzm7/QMNb7wpg+OZvjALWqwDX/Id56tuNAHmeyYSlKk/bg1lU4YCRuu0AdSTrBE7g9G/nPrUk2HgITP+w+I5gASJ0EsFg0LRH2QPUZjXK/I/5J+ScOR/taE97URX560VGFMEv+lsAjnEMBeRiEWapQgFkigOZ7FEhZbx4+1PQDjND4QTXg0h85jSFKwxGEGKq8x5rTAApujUgc74fU4M+MMB/QUBmAqJMCD3RWyREajtEM4pGsqTve4AY4A0IUAj0uy63wYDA4wAOwLgUsDgNuIRUSAUNCJ3skZPJEIECIAztcB0IqMEa5Cth2LE+K8DnO8BdKzTd2R0HRCwInBH705X4WANQiINcWJALgD10agM+UgoNmwAfOAGLI7wyW8HZckHgmYMXpEEDEIFgmIvQwJ78+jPnW6bn67f/GHkm7BtCZ+K3oSiKfYkmUDAANFgQVeBAE4AAGToA7KhCDsDC3CMhsImd2nIvuXGC4iOMGAREKRGByTg0AWiAOcCMH/ufPeNBgLm3I3OCHhs069u3H9q8RnIYZHCCWMDAJ8kCdAIrNWGI+ZEpLpiAQsTCEMAnyjkKObkLxzie4nsdCuARvaI2t4kLOwScDTHAzejEXyEkAXDEDNifHzoufSuqOQw0o8AViRiAY8hAStkAE2iDRmgDKZmSAzCBWxRBESwfcomimxBG11kX1REM14mJGxMAGxq4aXoEBGyPA3RGzXCPP3KCR0io3bk+bTQuHgKW+HCCAygAvKOUMjDH/yK4gFygxSkBgCrsAJAEjo7xRWAUD5wYxhiSCQhZDo8ALGH4AIhhhMzwMf9SyD67nSDsA1/LRkUyLoWCj8nIAF6YFEopCCZQBSC4AG+Znwhhi99IA13QBX6RCEuCGMj4gAqoR9PYugKwmj+4An5hLEbQEJx5RrPbPB9kwzzZyWZqKIFsu4FJOKIsyoIYgirYg40URN5iC4ZItZfhDIhwjKaRDV44jcjLDq7cOgAoB1zBkcaayQOstx27t5uUzKAAtLV0Js3wC+3wytCYSLo8CyAgA9hbi8rry4k4gD+wGaO4C0s6ltUIkMFAHW9hCr7sqxdxzDlwxh9rj968TD7rM//f5LNHAEgDBD1gwwIC4A0pDE3eKAZV+KK1YAuRlADpuDPuGwkoQxoAgZrXAQDBwIDYmQz9sSENMc7e1LEC1KHgLE4+UU9qKM5p+oA54KEgAgDnzM+6bBDqbArwJIgCWIKI8Ig2cROiUYD/cJw4+5ZyUIq+up97wYz3DM5bK073nMz4fIQGoKYN0ZuhkABK00/9XIT/A8/H0QK+WjPmcAyhKZoAOY0NcIA0EAYZyYQBMIFkrJNHaCxN5JML/TMJtRuA9FENbYAiCo/63BMJUBARbdIyeDYUPYAqEQkWtZaq8D7DZBers4R1NIED6ImjmAIB+gAJ3ZUyjU8f9dGiuFD/xzTSo0EWM2iA93ggB2hSOzWLAgAO4pgLN0GYK1UAGOWrLdUcKX0RxkoAI2qABkjTGrK1ILXQDM1EDSEic2CwBECAODUYAHCSO+3UPBUdS4iCYLiChQmSF0WZPL0Vo5CyxfSbv7nUOG0ACp23NFUDSM1QTJQmZEEABIAuBAAQXjjRTm1SMngjinAMNwEFrBgaJiGMCzgAUSyKNFiIcoim2HiNBTiD9WS+zJNQHQtSHJmCD8BUBosqZuEFB6iyYW1S7hCb7ygSocmKWPALwogzyauJ6ziAl+mk4kGAD5BVHsu8m5zV+GwsaSqiAEAAGUABFFgNsdjDdRXRdtUIm4DN/6FJgBerI0E4E5jYjrEQnQSDTVpAAUzdTUJKJh3bM/YkUiLdUEWdpmNZ2IZdlmOYy4gNzWJoV+0ZCcewiv+Qs2JUBWJQBUFAA5iQCdFBBvBoopE1h38t0wJcT/YEsgzdUUVtgDPYUMiQWf94AGG9WYskgD+Qqzb5iqLJigAAWkFoiY09mxg6IWQoh7Dwj5F9pEycTKl9zyEt2DlQVIOVJgRg2IZlDVN4gBAFW0pxBDIwAPcJzJs4EmVljdOpI6I9ibNBPgmwBFJV1tboD0wlUx0swB7NUCLt2w2Vpg39AHPg1cHFJJtFXN4QhFzgBbEBnrAgms5VgBgsxv0bkZe4AP+YOAAW+APO7dzVQAEjutupJVjgVIMG2NF/haT5XF0EoIHjRYG0hV1KIYZccJkUMhJriU0D2N0wcSGjBV4IOBAIcg3CdQ0EMKKx5Ec1XNnQ3dHggaRH4tXqpQEa4FVA5VTtPYsN6N56uYt44QUERVsDgADgLd/LPd88raLWmOAJ1l/6pBmB9db1LE7HZLRKpd7qhYRezUOIDeCDKAb90FOKiBfbKBQ9TJnyPQlBAF6YMADwK14KJllMXYDnbT4MpVrloiZerVQz4FVISNASNuGCUIQUbgqKYIFgIN5CiZqVGRHLPd8argoKzuHARQAevlCqndCoDdj4nKb8HWIjBhD/3VXig3CEFI4LCjESZa0KAijaEDmbRaBh4C0AG8bhLWbYBXjaCcXbMb7MPtvRR2KwhIUE/rVeUFhONi6I0ZS8ctCFTkmDKmKNqigAOw6Ty9VjPn6ALabg4/XiHh5jqh1AMY7aDUWA/xjZ6l0WUNCWSNaCSeaFxqUIETAAA3CNoeHkENk/YS7aCwAMcRrlCV4NGjCDL0Zl0e3E9VTPbxWWhEWByZIBGpgsw61lLRAEMphdfcoqXl5WUADmYB7mlwCMBxBlZG4NhuXVONVg0RXkH3tUanjeOWAsEVZYEeZfWhhfbl6EGOhe+PmDdkOSXqYF3S1aK96/RQiRYlbKY2jn/84VXEx93h611TXgZaWp2uI03efFxFhY3f6dLP5d41oGghjgDuJIAwAwgD/wpB/JQwgo2kVYhP1Lgpt+aKOVisKlaIY1BeSN1TkArCnwgwOoANNdapA23QGi3myerEcWhFr25lxYAsb7DAlwRKoIgEmz6UUAAkHY6bE+mwJ4gF42XlLuj3c2Bx7msxvhCxFgrJC+WrvGxGkyB/6t3hE2AKqOZJV+AKz+mAHwCAT2apMIEZzW6YfG6Tw+63HOClMIgC2mW15dACCWliuw0Lu26/lkNP2VAegqmtcNYJU2gCXIrIvoGImEaT0UhGLcAEcAAp1W7PP16WTGCvZdDfaFhP93vuD9cs/ifNmrbSz6pFQUYGQa8O1yTunFpV0WYIO3mBYDUABALYzYnu0kqO08Bl4fSeZXHuWR1eH3NYdMPNP4rJFcbSxqcVOo3mtaIICBYOMkIINjsCIISQ7q5uWomWE0EARH0G7GjmjU6Fz2FWrWaN3/+GAj+gDMPtNv9dtoEYABmk8jNukjpmUTvoFFIIMHYLd/yog0wJZj6O86QoMAp23Ghui2EWW6VfD+ABD99WIeVtSWxQwLLbAxpSaSXu5fnTQ2roJFkAlvwayLyABeBtT9M4lFCHABf2j0jQkD8A8U6N/AFVytCIAq598FqHGMxuhMGG64m4MPLqL3LqD/mg3yRdhIhhDEWJmLK8AWA3CAJQ8TJ6dtnIboju1jWuDfIp7xKx/vRkaAzlbUIg1pHKHU/N1n/Q2ARw5yvByLXCrgUeXl8d1Yk0gCJ0/xmz5flPGR/4Bn6l1daz7ekfXzqx1uzy7uvi2i9/XVXoUuR6cjJb5LNo8QCfmOA+BlTlYFjd302Rbm840hADiGhH0kM2dd/iXZd+bVVD/0VG8AHLnaBTjj/X3f7ixtsK2CGCCDjw0OjgkGXn4AThaEvwDwKqgCJ2+JMFmZIoghGw4AIq5U1sXmhS3lz7VxaC/u1P3XalfYRu5fwtT2m+V2b7+gCNEsJ+AFtJYOo90/YnCE/ypQmxQ/CQp4dzU5AAXY1XJl5GUx9eNt8A+4jPgs7kvMVTf986iuXjUm+IgtBjKQkkmnEj+wdOnIY4iPeEdIiYov2jQBxFdTAEaHLhoQ3KAe2dd4JEP30VzVTQdfACMqIjPoX/6VdQ2H3Q5PR8qLkCtYEl42iRl+aBnT+Z43WhuUoa5+dejybSyfYBm46B62IYwebg3t8iJGdi+OdevVQxNGg5WmxQGYPKbQdahB8aS8aWAP8IgXayhPmbbZj6GxXsHN5tY1XkhIVHwu0r413X8fetG+5n8WR+3t8LxkStAYgCsg1cJ3BEHYA5zeeWAnBiBg/BARETSRCWPXcgCpcqmkd41kniwaN3QOntR/NwNGj3WPl1wT9uaXVk0JaBfKMxJeWH0gQIOwTveUUHfFn/1OHpEiUJPqjvHVWFjQnyzXmKxHCuS7vREH/3N4VvZ+lmVI1l5B+HtetiK2wA1eBk8xAQhHSYA4UkSEiEFFZZiUKeMIyKINqlRtqHjBAQBTD0yBAmXqI8iQH0HRohUgVqwPc+Z8gIQAUoCSHknO5KjxAQEtOnfy3BkQACH5BAkIAIEALDAABgCFALwAAAj/AAMJHEiwoMGDCBMqNCgHEyVKdOg8pNREziQQCzNq3Mixo8ePAjFhmjUGCTBgs4BFpDPLiEsjIGPKnElToUiUKUnmGCNLVg4+fHbwyKHEiJKaSJMqTQjiFEuUssYE5fNzx44aQYLUsMqHB4OlYMPO/IIkh9mqW8eM+Yk1yIS3W62GEEu37kJKsoLWaLu3BlWgV3v0mNDD6o4eHDTYXcw40MgcO4J4mMyFS5DKloMg5kBY8IkQJ058bUx6aRNKs8pevYy5MuXOEy5rRhwiRIrSuGdqEsly7VUuk4MDD/42uAe3mzmMzs1cY8OJOvlgNW4cA/HhrwUrb859YRM6UNdC/55OfbJ1yq49ANfMgcOJFt3jF2zyfVZUteMll8dwnjJ1wZutIN+AgTzEUlRIqEYedf2pNwEXb7012ATuqVAHgfGpBExP4kmXFXbUQfhghA5GSGEILmDYHXj2lYVWDQBOaGJngvkwo4kcjKAidxDZtxZVP/GQQgoMMDDCCAxoUJttT4xwCQyXMABaDzZKqOOOzMlBB4JnHaGEEi64AIMFX5T5hQWooGJBHXjgAUIEEZTpAmdv+XAllrjhdZZQR4QZ5pNklgknnJNcBAIIbuJRpgZV+vAEnrnpGVgKYMJg6ZNlnnIKnJriMUmbhyIKpwUh2NgDfJCWhpdeITDgpwuXqP9p5qCbgurmoW3GyYCNOaaqqlRbpaDBq7HCYOascLZ5a6hwksABYqj6ypgRQcnFwCWXvGrpmMgmayiieMR5yQntqSBtY8DksFUPGlyLrZ9QGtstnKHiqigMGrQn4LmLGQHZDolhG+slr7wSJreDxhnBsvVGIIkG5LbCb7//8jAstiSQ4Gqxs276RbKhJhpBKhBzEO3EYrnAg1zDvlJkCrUJywAJCCt8ykUXKTsyxCdIjDJdMKzMAZEuD9leez74MLSYp5xpAZkLhztoKqWuYMfPdJ2SglAMFKxBu12jcskIShJ5ydOpaJzkK7LGSfUJ5mItlgVChtBFkQx0cfcrNKP/QsLdKbzyxSkWvKLk0F+TkIoFqYTms9xgfaHBkEViiyS5E5zwdbutfhyBBVEyoCbjUKRixwpQQC4WJjAkOXPGSSqpwRMtuN61sXGOEAIHIYxApgV2SPJEBKqDxQoIZ/55CQnLXwJF6akQnLeYnlswggrYP5FKmc8Xv5QROKlkxJ8woJLK+SWg0nXBr8jbZh11RAD/oFCU4H1SmJw0S0sPWZomFOZjHAlctj6oLYtheJDEhe5XE4hsSBbAoIQRYOAnbF1qgHhr38cYVi/kLZCBM8GEEeyTEmCM71ViIljBuna7jyGqg7j6HAxASJNThO8LFHRBF3QYJvaxb4cWoBcM/w8Fpy+kgoYzseFJTJhDHoZph6/owitSwIM+PQ1UHZRaBDCCxJhEQH+zgMEJdwgmvbkgikfggZBiF0RD5QpObOriTOJ0Qihhy4fL+9sRduiC30UgZ2+SWpm4KEeQgMAC4yuY2J54xowNkHouvJXOBvWFDxbyIyCowxdcYsdsSZF9zMMUvdyYMIXh4ZIzscGhcPiuM/qQfWY6YAQ2NahTonImVmCFDdBEgh5GiWgFG1MQBVnKON4Sl3L4gtii6LUhDWmPBjPW0wanqYXZ4Jg00eUXVKgEvTHzFU96iZm4tak6XBObqUReHqXoShKggluCUtasCInOmCDvFK4sWCPdKf/MWLbpWOespz1TQTgV8k1ggAqU5+JUJksK9CM2EFv5GolQeH7Mc2YqAT0f6hEQpOKVjnSnrARFyzKtiRUcjUlE9bi3b7pToccqQQlmYIWUgqQEUJAe3vLmzXAq1AIy1WhNbeqROkBhgBj8WheOUCR9ChN9M5gBCAJK1I3UQWDsYwDMbGMbyl3rfJWcgQ1QWtWN2AAPd+RbM3e3pJnF6mnykypZy7oQG6gSFT0MaZESN7ppDqoOUx0qXRFihamyLlsFMyg4+3qshU5VCoMl7PEwgU8dFmyA7JMVTCs5qENRIbIGsYJoKUuJHvItpC9t7ELxAFgbZCEPoB2IHFgxWkT/5tWRp+1roBLGWhv8YhFFcANoWaFLVmiisGLKJ2rZ9rRpLnRhJbCBFC5QgDbAlqjEFQn8xGoFOdRBA15aoV5n9k7nLgxOM2WFFGJABgJQoAwplQL84DfTEmCCtnIAwQjCtMwRYPC0woQaJe0AAiu8gAwAAIB74YtOKUhhBsGTxJFGYIc6yGEGeCCuXaULAglnzL/Ms5R53RYBVvwCCAhWMAEckIUsoDKXICiBHVqgghP4gFwaGEEqItAKSeSBCkCmAhhe0IIjqY1mzXUu6KJrBT3sIcUGMAAATICDIriii9KtQwkk0YIV2KgDb+mAD1rRAju4whVZUIUqNrCBMhAj/wuteILLLqvbp40AFSBgxR1uEAMCJNgADzDAAQ4AABxswMX3O56Wr2fjDpgAAyboAKQnsIJWmHkFalYFBSigiiLA+aggLtbi0GSkOuj5DmVIcaCjHIdIDBoDYj603HSJiQjgVAVffjQA+AMAQndgBU+Y8Qo2QIxMFxvOkjiqI4uVplLb4A53cDKCV83qSPxh0Amm8gZ0MDFValnCXnY0f/gjgUGbW8wraEEL2LwBY5dhxotLhdiY12xnQ/sORCDDtFcdh1YvYQl/uDahCVCAbQsBUrmswwxw+oRwmyDBGDD3ACQwgIofAAM+WIEksjDsDaBBzcR4QYcVnj6/wS7HM//4xQ+g/QNHJPgB/DaAvyWQhgoE/NpTrrIqmLCjTG65Ba1o9KPJXfGiV1wCFC/0CSTRio6jod3EYMIMRgCnxYH4ayOYgRRWzvIkJBgArJZ5vyvw7z9U4OwC37UJ2kCBDQwIwi14Qo1zHXGkT9zoRkf6AX5dh4az+eOqIEYZhNAC+NnhqF0bgSSooAeu39sRCI4yq/utgLNbHu1ILze2O9D27uTBFSuw8QTE3esDUBzvqLd4B6BwCgZ0vN2Bf3cLzpSKCVNYCo2/9+PJAPNA91sMcRCDGJZA9j8ooPJnT8O/zT1lH6iiOVmgO68lnvqiS+AKVxjAATwAg1P4nd2x53L/TklwJChoXQ+/0D209bCIP4u935Gw/PITbPo//Lvsria0AyjAbdxkwQG6Zm4CeHqplwYDkH3a1wFk8n0U8HTEoAhSQHjkV2aMh36Od2/5BgC+B3zwV3l/sGu/tgKN4AClN2iREAcA52oYYGgM1hgXEIACqH+9dnpsYHRXEAzYl4DnowIdt2loEHU2MANCUDrn9wvpp353AAZ7QACSJ3m/JwYVAABgBmzq1mVtYAKDdn+RsIUD1wZuxxgv0AbTF4O71mtFlwZskAZpwAIssIYskIDP83qb1m5l8GAz8GMOZoRIGG1JQADU5oRxcHyRYAI+oAEq8ASSIAnB02U+0AGl/0d8WxgJXwcBF7AYVVAAGFCCAkh/f3B9A/AGaMgGbPAGb8AGLJB9GFBpcgh1ZUAFQ/ACrwgGuYeELRd5cRB2/RYHFVBuOLACI1CFz2MH5yMJKjABEXcAJ3iCcYBtDvCFdKEDJKiJpkdoB2B/FSAC2WeAafAGq7AKpVh0IchuaPBxgscEZfCKr3gDerCHGQiI76cAIjAAGNAIKtACQiAEipiIwng+UFAED3cAFaAAwLeFCVYAdlEEDpCJMYht5naNV/CGLFCKlkCKalhxGMdmm3YBF/BxOqAKELBtZRCSTAAGRwhtJ8aEBhAJk/d7CnBtbVBp9hiT9igJaYI+PhBxyv8YBwEnZQTwfGIhBP54jAKofb12c38gAmwIkREJim8oAR2wAT5AARfQdpxWjsRAARCQlQ7gABCgA7L4C3rwAhfwZ5HAge8YhY0Ak/ZIeMkGQItTSU/giDI3kFGmYBRAF26AAwpJcRJHjQGHjSwQBaZIimxIkQZoaMSmZmXABEPgikzwmCG5ZhDgAAVXBlWgCgXwZ7m4mcenAJLoaeqGj4mYbJJwPmRSAiNgjGCXi5L3AAVADGJRBJI2g+UmAZ2oedUoAtg4ihF5isEQDN5oigBAmZQIAZsWeBRAmRcQe5AZkmWAmZoZfMAnBvFXAQlQAQfgAEVAZlWobomIPjKVCk//oJqTJ3OARgCVGBaN8I/VWG4BZ3HV2ImAKYpriH1LWYo1SGgFQJxo4AiqQF0OQAArVgA/WAYvcAMvwARjOXkK0GqRoAAJcJ2FBmzlBwXeWZoyVSapoAKzGXZRBnMEgAZigQPsmXl2lwb1F58VgIMsKgLBwALdGJxvCABspgPE8IAH+gKK4GYAupUFcAHtVgBRFn/xV3nHd50o2osq4CTYUjp28KRBhVMn4IireYuABqJ7MKLseZt3p33VuIXW6QdXEAXB8Aa/GZHeSJgS4ACL+QI6ugiLoANM8AJg4GAI+pwF4GelF38R2qfXGaFpIAEmADdg46QztXAlcD4tcAIP/1elV9p76QkWV6iJnVhxKPqlYOqiv3mm3NiNpXiKAKAKi4mnAkpwy2mgdSoFL1AGG0CCKpoAflABfjCra1CRAHAi7aJjqRBVMiWMwnOTX7eFgCZ5BBcWTCCGtGl0auierSarL0qmvxkFMdqNpngFNEoMVbCjIXmV+ymgBfCRZaAIisAEGwB21uYHuml2shoLaZABBkiIE2AbGmA+iJqoaDKemRhlFbCScQAABXADYKEDyEqANTgA2xioJriiwRAFTuAEm5oBDQsI3sgCEkAA4UoERKAIVfACVHADN7CjqoAG3eqtBPCqsyqrIrAG6PqbbzAAJkAhwqJjQQVh59MKev8JdoL4B4HYoA9AAP2XFNGHA6V3ems4AKN4qWbnB8HgBGTKtMGwBsEAsWl6BSJQAIrwAkRwA1VAiaogpzcAZENWBcQwmSkKprK6orOqtMDJjfIYrzmWCjObqBt6swaQs8h3iz25FG0wejN4hvjpjRMnAZr6tLOaAVHrBNO6ClFQtRvrsWWQpwlGcBQgeAd6A0NQBhTQaw9qnQmQBiKQtiq7BsIACBK7d3DDAKUzU3YAYXbAoZmoi8dnecFnAATgjDUhmz4gtKZ3hsFJimxAtb/pBxlAqxC7tE4gDMKwClOQAVU7pwdaBdu6CBcQoALKlVCXudVoeaC7BhmQAcLQsMf/Cwimu6SKeKhP2rqSFn8BYJ0BKZAqCQB3mRQQAGb/SIBpkKbdyAIs+pvdC7EN642r8L3fmwFXUABuegNgsJgdi6A7CgRo0GdfV5RHSbxqa7jHm7zdKAE4ADeICKULFzyuC5CxEAtn96ANSrsimhQJmYm1WXGiOIpOILFkGgWBGbXeG8DdCAjJK7HCQMMGzLFg4AjfWqBXK2Ra+58OYLL8G7VL67+kK7ED0AEnAGxQoI/n+zCOSHNrcJ2daaV5ixRu8GgHgHdsOIrcSLpvUMPBMAVsPLrI241uTLpOkAYGTAUOVgbRmGDWK6duygTEUJSyqrQRabz/G8BYgAWAEMWJ/1GPini+waMBHTDGn3udw8uzPctzSAEBdUfGo4i/3hi8GTAFFzy6WCAMpYy8h+wEIgABdqwHUrCtG0ABkBu534qVAKCus1qmfgC1DRsFpLsKh4wFaUCIK8DIjgzCjlhx3OuuFXCLMOcAStEIEaesA8ACnZzD3Uim3DsFAozKgIDIOmzKqzAArOxgVLCYV9vHzynLfjZoEycCFQC1L+qwDJvDEvvNiHyrHNwCjWw6UADJGGCwwjAHJKwAH+qaSiGGAV10N3jN3XjIgMCN3XvB3GzKwazD37wKLFAAQUYFqtAGxtm1zpug/pmZuZnLm/q0UrsKOhzMWLB3HFDMige3wf8zAlOKARLwBirrBwkgkKtmkEixAXqJd2tIitLKjaMb0W/QsKjs0nAABxetw29gApRLrq6qfwUwuSIJjcgIq/K8Bsu8Cogbw6QbzGnQARXSwTIlYSfgARH3ubucAAEgfP0G1LebkGT8kPfJ0r/cjccrAIh8yFDt0hD9BgeAlUMwBImJlXmsxyDda4HcsCrNvVALsUmNBVC9Chg3xYzcq1CwApFcjX461wFg0HZNEwgJADR4tGjoqSz9xqSovMgrABaN2YdM2wIAuFsJe4vJmOZIDCLbzhRHc7/pBN37tGDNvcaNylAN1VEcGiGgAuUbPy3gA6qtrhGqAKUdZac9E27/4KoGS4riHaPcCNHTOtukbNtYIABTcMoRnZ2TSXBZ3bVternE0KrIGM9LS7ihC9bgi89PDQeAcKvuMTtQcCSKuAELHXBHeny3CM1IAQR+9gf3K7HjzY3l/dSljMOlLAD4HMwCANiIPAWrMJzxDXaENpzzrQMhOZZJ271gnQGxsAZz0L3CIMrB/NSZkAmAgAF1MsWilzQYsI0S0L7WOdemQACwWRNoQIKf+AYSm7ix/c1PTbrJi7hlbdG1zc1Y4AT+igaLEJJAsAgxEI04t2IAsAQQWrgqnQGi673I29JwkAlw0Ad9gAWabR0d4AFDt3dDvgpFLnwQKpC32N0x8X+q/13N2Jy4ynvRLE3WH97epSzpyOvlxokGBsrATNCR1OVnNFfkoQuxGVDjE+3LfI3ZOz4Mw8DjloB6FDfNoNi+x0fXcQABNZEH/jiDsY24i97Sjs7X31zWpXzIpszD/koB3rqcgtfbm+6RubkGTiDKwgDj/hvDw47qmbDqw5DjWNCyZRjQlrAKwdC+YiCQpR0Hhv4RQiDNqq2psT2t+GzKUD26MZrehI0FUyDHAAABaCCgEaxgWd1iOpAFAICN3uu9OszNtE3vgT3n2b4Fqp4JEK19sNYB4jYAq5ABFVDuYkAL0onuNPF5yHoAulmmAFzWwS7YUB3lWo68tY3IV77v4/94o5oGudg2ZQG91C7/11NA2+Eb2IKdCX0Q8Tve7YKKAzgQZvwxAB8IAMpI1wYQqTHxeexuf1cQw958yPmu8k+d1N9sypJO2KPrBOipaY4wp67oZhuwn2YYo+GMynEe57Tt0tmu6qsu8cKcc472aMOtYGAnfGIAaDEwE0SWBY0gwWnwyyoP0QCuBhqO0cLA3oD9xGAvygAwld4KAYHH4iFpoxRgAvfL0guf73H+xITt8MMw9Dte9JYgAfQ3xgYbDK6/msIXZQQwE0LQdG1QlDRX4R8u4MIOB46/8la+w3ztxqVs6f1uAAHnasPpAIjZqp+I0U+Mz8Lu1HPeBzuu/av/L/G//AYTmQazegDtPJ3AZwAQ/hFUkPtZIIa7u432bNuXjdkBDs7tXf0WHe4Su6b8DhAU0FC4UMABgAMSBgw4cCANoFWAsAgThgXQRYkXLWLhCCdTH5CZho3MVLIkHDgTha3xsyZSgQIAxMyMIyaOAQiBdO7k2XMnGCEtWrTygUFhmjdJI3LsmJKpR6ccIQ4AgAGDCRMdtE7A4QPChgsbVOkoU0YHsQ0QDkp4IwwjFgESKVbc+NSjyZLD+uDNhDKlgAyx1lw5cDASzZmRCKDx2ZinkFYqVKzogHBAUjYR32KJ2hTlxTcHOvhY0cr0E9QtRkwusgHAawcQVBErw8Rs/1oAaTK4lTjxrcaneO/2Gbn3rkcsU4RlWCO4QiQFAWjGuVnAsWNXRSZM0ApA4eU3bNKsYtqxPOdMavpYPDBBxZMRUEbMh1IfiqQWrR0QAPBHwgEATIjNKwcOcKKi36TSqDfO7sJrpGH46usiiuZgyY8AFEhgOjEUo+A6n9owwSoMFkrDEowuQtEuu+BQTw0sBuhghfdGaAG1+FLRMZUWVsgCDbQoMIi/hhYagDwFzzOvKSxOchDCvZzMxCJAVkrgyjCu5DAOADYAkadGrPruDUvegKg34Brsyy411IAjjRlTUIG++TTQgIH4RnhihQ1aU2W2ss4SkoADNFPyPAHc8v/Mwbwg1KuvKSdaY40rA7gyAVpmMsWAmyAY4stAIDDBu4a+G+9MBqN6Y4DxzgMEABpVYIABKFB5ws4Q7HxCBQ30ew2AAjagjQnbNnDgsqXS7KyulPxCyaQttoBQOECYS8DSSxWYyaY4DiBAB1DbELcNH3Co7Kg3xlsFSakGcAAHAFg1kqEJVkDlC1RQ0VE++1LBr5XWDELojz9gKwACeE9dsDenOnsWKpTU+GiYLYiL0iSLArt2Y23FkK6CYCSIDURX3GikkTZwGBUDBxwY8QBWLaHIojcA8MEHrXDYAAeXcVDBBSNguAQGC1LJ9xJ9dSyhhQ2y2KAMtNR6rcjLMkL/k2Gm6GrQRWdNothR4SayNoFYYtE2ALQrODCNA3BYwbEsRERIIQBwUBmDqjBoiABCF+pgshUCX6HcDk64xAUlGDiCgUsuGYGEHHW0Q5KmKdjg8oFmU0XIeDXLaKNmW3TWWZAojtbRCNestrnmYrmU7AoSWCODVdLA4O2eFHGjQCMPwIrU0cy1m/cDfJDshO200iqEWVNwHs/5GHjvCaHw43NuAE2QjSwdKADATDTL8+upPkaXsI/ToSxJKieYEyyWDBPwY0O0Y0kjDaq85GkICPT+TwIMVAZAXcGZVvR2GQz44AQ4e1n2VqCBEIQgBXciAeRq9IT6DKUIWSgAf6YG/yAAtIwAEoCIqxi0NTj0wU0eaROkRGI6vYxEWifhCEUm5TrZTepa0bEf/gDQCJ5ILSEMcVkHcFCEwXXAf6xa1WgM+J2FJHAFztPAK5DmuBEwDhUl0BHA/qQDMKKlgwi5AnlQcijx+QVSo3vWR7bgBS9IaxhxjBBHAEOpsl2pbK6bSQJEcL80SAAAOdGJiA7ou64EDmdGWcgbVpEU0ZjLKON5AwtsR5oU5MqKlyABfEZwCSjsSAVF2NyfspAFYmyOAhDo4EPSdCi/rBCFaszLGyP0tZGc0X2V8phzxKCACgTzfn8AECED0Qa8CTJnKotXzFjlhFXIyFxDfIMTphAM2//V6wQSTMGsbmWnWVnwBK0h0muu4gAK/AkCJKwSGrvmJI9EaTjog6McwTallZghj5b6AEs2pKFsKaCYOtEBAfQWIHMaSV1puIIj62YCmN1PGFOASM06wIETnICKswpBRrdpJ+74wFi/SsgVGAIA/lgijaPb2kf6Es+SRAkk9KwnhE43JQHM4QOxgMQeLXQtS82uJZEgKoD01waDjopqjUTKFaLwBglkJSGUnFntAHDRFWg0BY8jwZ0YQAJ9jYA7X0knMc6yOQgQKg0NMs/42NrGZsXTL3sByRtrKsMZpmQlexTMpCiVgArEQgBrCGYFuhVCnWSBDHyD2bzkNYArBIP/KqNaiGbmMAfaAXA0WbXTK0gwq1khDRUq0MpXLmC52ZxFjISaQotmuUI2rvEjpbNr+mRIEosIw0If2KlfgRoAATghdsHkEgF0AoQYxCSi+GskGypJlbUMgAXBEIYApjA7tmUFoxGcoAa661UNTOAqwSJUQ0D4GgEBoCJuZeMKX+osicWzdHOspxdQh9vlrIG3+nSd6ywlgNq1RAHV0UkZGhED7zh2IQr5z2vGFBEnRNgJk+3ABDDKAQyfgAM94PB2PFAiDOhsSFP7zxUYulYUzjKF6TEOG2FaVzjG0bZv3MKUVmeGfn7AQnxNVBr8EIubDHInbmiDZeYlASQrhGqU/4zwKprMEKt4wMIb7sEEuEAiU61ikJcjRpdTubkLHOQKrnWWmkACWwnNlmIxjmMciTMS+6YEsxno56RyzJwmZUABQDaAdYas3MYyZMESMKmRphuMdQmjfbVbMAY8wAUrf1ghEqGhE+qGhtOKxayB2kABDsAwF6vxRc9SIaRUSNvaos+eMuyLci77ajrvhrpYIGwCuHQBnrhBud9Z6rzwd4UrZKDJLFiF1i4SyBINABATS12rgUUBA0SCmL/i22veMMtF9eXMJ0lPSdwUUzfalY6rjtZekvPqV8/OCZMSgNli0eeehNnICn7sQg4gAhE0JF1toei6lhJP9TkJC8AKs/8Hp3qZuIaalt6mq3q07dKJiVvGpkOf6XCagcsqZ3bCtnMCFKAAAuCaJ3sgg/+QXCojQRFYB4EJEzOAb6ge4NozvaVejIMFLX8FDapVxUAGBQAnLGp0bQrJcNpEdImVTiRthiOcK3bbGmMB3RbazXXLFh0FOKAMPomBVRJi3q9DUZAECZAJFkIYB7PATJwpDl3L91JhDDJzs+kyGDdXAAms94xqemn5jq5Cos+U5qZjsxwnDiWOvHo5iVrJ/LRlAMb4hMheB3up/scQI+INZtNtiAg855HimESWcJjCsxHyqxC6TG9ag8vQSweSFJ56tm+OEG3ZbF+8OqrGep3CFDL/IAAsuK8CMyHA1huTBQoc5PQIAft/sjdEdVVzLpyZr+idFVwCFOACHpzbFVgwszXBZQ45nasatGBz9dB8pulHtbijdVe8bsEpl0VQ8NFGHT9fJzuGJGmpwO7r+2ky9Kg4kmCjKYiC7KMAy/mytBCYQuEI31uDy4IF0jkz9UAdi8lA4ni/+hq3VYszqdMx67quAKAOAPgQUJmB7LgbzRuiAUiyANEbR6ILUgs9NhKAYEjAAkAtBkwLB2ABQJiCy5LAOeg9AXCRbXM7wcsLJVyzDjQdcpO/4MMs5ciA2KEO4wIVnnAalHEAEjEnuymCMnCFNnAIz3ihCGGjibgCYIEA/1JBPZKiC+u6rAZ4BFi4Q/ZzOCWcL8HDqxiLFg60J2lZD4qABQHIKfgRA3jTwsYYilZwGh/piSKAGY3gDfJYn7jiCCfIwR3cDwAwAP9oqGI7iZzSKXTDQ4sJPKV7vQu0KYkLxEGcFr0SP2vhEka8xZ7wngFQqY4QBmULv/MQhhyEAIH4kz/ZgFU6iANYL+tihFhgBFMkupP4uzNbPy1Iv5iCQluiIyghiUwADIo4EMIygD3ARXMMBHg5EnYhNadQFJxzAhEgAGLUvssxxmQEAHYZLN5ihAZAQguMmJdKDzmDBdhyE6iTMUCkmGqso4pYCcMqAFU4R1wsMlZ5Jba6CP8n6I0p8IPsc8PKi6i2GJ/L4q0GIEjze5E2cTGpiwQDoEC/gIWSoLE/jDGFTKE05IyViIPFkEhcbATvQIqIUJTxwUi6mIJ43EGYqLaBAbags6NSnIMGUMUWSrqIST84EIEriIqcagAYOx37khY5gquJ8AMxqARj4kktdANGWheLpBIKwYJNfLawMMbLuceImMNX68f0O7p3YjEVehg4gAWd+gCuJDxABEtvVB1hMIBKWAS0xEVVYCQzSZby0Izq0q2j3D4CeBcI6MwxGrOOoEOoRDoXOTpwCwnjkCc4EIAGIMyoVDWKyYQrmAO+gIoMWMTHvMUsOCAUMZTyOKH2ycz/eZOuYuOMjtjK0UTJo3MTVZytwHMSWGhNMyDIr+mDNHCAmJgavom27MtNcyyKiNqMjUiRKnGCKBBOOGyINFC7BilFHSNIwOPL5WROwFuxlAxM6cQxNZghCbgOcPFOc9yAA3Kkpai/FGlIo8y+CziAgmkZnlE9mZOIp7ys5XyplFzOWGK/j0AJWPiAMEAABPiAo3MCBwBQE93NiFoXtwyfidDEo4SAhnAAJUI5V2qQRzBFk2whwETJWBK8M4OD1vxQEP0AghSALDTR3CwCQlEIFLmIApUKYSCPnKqAjmwIr7s2iLm+DAiGD3iE0lyTDB09+boYDt0vMwBRHGMEyEPS/9x0g745FbZkEN5wC2Hwg6w7GPPCigHgiJtEiUd4hJ3SsdJ0MeZ8pyVcn8syAzMQUgSgBQXIPzaVyCw4iMtAClS5GrhQDkagUjylinKRAPSoI5RgzTAwgwUoSflsL4DU0G5DCajcrw+VAbSB1Eg1R1egVFZ5pEt1S4qwrhf9AxbwnXhpEpAwztX8ABBFgAWgwEINtYJETdiiwAZQ1DAIABSghQAwgBKt1XMsAmVElmJLESpJjinYxBe1jKtKMH3LiDlgVDOIyhViTgsd1OUk06Pr0EVVVEi4P1rl1rSMLqAk0IVJjnCsgNgoiIPIig5omf34gyoRgARAAGtFAWXVgv8cRbr5LE3AWz/mjM4GCANGzRQCiEh/vUVdayZieyR/O9DLdAKRIUYIQFgHPRgYzQDmCABayFmKnc6LbaH47NHA+zY3aQDpBFEayFnpONKSBZXdQVkCXVmVmCiKyIA/OBiCQEZWOhixuAAD8IMMwJCcDVsEeFeTvMZvK80GqUbAE0gvJdozRYBrzVlFVNql1T9KZQFR9DffVNH2iYRK2MELQIPLQcZ69B4/wBCc1VlsHds5KM167VgWysP3QomipQEQxdkOodu6lTyIAo8oWBfwAY6HdQJGyDqYVQWx2IBFQAPWvQAA8KfEFVtagIRTfdy/jFcV0oKZ6osVssMPONP/D63WRs3Wft3cnUi+n3SuJvMcplgFIXSJHSQIY1SFRVBAITmAK6gABQhbpIUEWrBcsnXcn61K4hBI2KLDt4WESkEASMAJ43WMMgBYR3KkBGEK61KASlDAC1gE6l1dn4sJEdjesDUFFAgASIAEikWAknRcvoyliSk6NxEAQ5TOUjWDBBBSMSje943fZnpatpyZ8ijXSHCACzgtVQCCJFiE1VVhGIUO7o1btJEBSFDUBc7YqmQ/vbjQY81XC47YMPBezX3fQAAC/mikRyJQ3tiaRHGCAwDcC/gTFfa56z2MnDUFWrDi7kVTwnRJvnRJF5m9fyQ9ouWtBbhgBKABGiBe/yHuCSAgA8tQCs85oTNahSZeJQhAgyhmXYEoAKISA1PA4ioOW0gYWzOYA1hAj3s11D7Q3fRwk+hcAEVdVPaFBBqQAQMQuTXWiQtw4+VyUkCwhDI6D997tpjlXykmiAKgDj/+42slYCxGARQo1S2eT9OEFD2cz0ceZAQQUhmQAVPQ4M11A05GlopKgxD6HmMFhCioYxP+E9aty1SOgz/+40CmBVi25l1+V72cz7eLKS2YxvlsgAQ4YPZFAculBQJwhEzWCVXg5PGIsAwgjB3EgbwzzjolOGKkSzxGxmieZkDW2WtFgUEuVaKl5Tu8mN3F0OiEHwPeZRClBQNAwUxu2v8/CMCvDYa2KQIfwEe6AARL076YheINYF3WLQBO8edrDmiAnmFtPgOYdOQPUIA1WDGQMFuusUNYcMZSTVYaaF9gXlpvBYAleKZVWAPJMoGbwYBrqyEnYMwSTqdjFNyBMGlppua4DWgUkAFakIFrJWSi9Ys5iASE8MdGhq3WE4C3TVb2DYCfLtk2Roj7SQonsCTf6QB2sl/GFJInnl6xQAM3NAADoGaAjlvuZWkc40r8jIUKEIEjVNtoleB2E9KeXmsCkGghdgQ3jgNhU5d1sYT7Mc72zGvt418oJmkKIIDD+GeVLuwDBtkwIEwtGGPMEoA327bra5JpleRBvpJLXuf/MkCwOPADoIzjFj2PPkMDmMDjPB4I5AZsLCZgax7gK85qit3XAHjXMyDaO0QJH4UnOsztHzbgQS7LdUYuAIiDmIEIlf2c8hCGP0Cn5M5jgdBfAqgJK4buarZiWIZlGjBnXT7VfjQ1wXMWOvzdRUWbA87ZIK5b844DCQjYOKUQjQSE9xaSO6Ze5vY5NHAAA5iJK+Zea97vEDdnc6YFEF2AU31pNFw//BzMSCbnRoXoyBNiINiD82YLAqXfthSGwtDr6WXu+U6rmgjbGI5urLZmNE7ysU3xiIGD2pOYvrhDog1SMzjgQd7XCsDk93UEGzcACcDKI7bMJK6hwiiIJ+4y/wyvXus9CA/H1sQ9WkrmamvWamxe8gYw5Cx9u5ecA2oV0jhHAMBa8JKtApIzgIRANLWLU0PJiDLXPrrrXxVWwLQggAcQg5y1bgOW4Tiv5Jw92tm18/HbGofb8/2y8jO2XEgAOSBYYyJYBDKINkKrnTgWV4rocUfvMkegXuol3E57gJrwmIZGU6PlajrHWV3GsfFr3HlyKSA1cPaVAaPldANwzDVOAjLw9cUOBmEjTwkHjCYuCNlwBHEHAnJHXevdvg63FLVO1kFGYzkX2xkmzFc7QpciUxf/4VOv5AB4iUx+60hQiGqa9YWhY+2DCVVwhDJwBHLPdcwZCKSKhNhpaM5dXvdrBmjLDVHegkp4janygYPdyhLxrmQZDgBB99c2foB/B7akwAjeSBGCT74C6LKEF3dHSKXBRUbDuBYEiIV1h9tkDeSAHuRIBnDuhphSNINgRwAZ0HcD0J/3XYRPRBf6bXlu/3bsPPiyEPeEd2ZkvEcN+dCJR2OeJuy4XfoDPuxa3gs1EEydSmulP1o1FmJX74+jgCxAkr7lcAIfumOYAIIyqIIqKAvbKAO6rEsO7/ABfm5A9mfGz1kZINs73O5D/KtMue8r3pTuBJGAAAAh+QQJCACKACwqAAgAhAC6AAAI/wAVCRxIsKDBgwgTKlx4K1CgJk1uLZxIsaLFixgzIgxEp6NHOg4dahxJsqRJik0CyUIya5YsWbPouByDBIksh7hO6tzJU2FDmTKR5Bg6JgefHTtq1CAK41TPp1BL4gpkxCWSMXz4DDWaNIjXGkh38HgVtazZhYFgGM2aFWmOojmQ1pgwIUiPu3cZ5DzLly8urEqDcPmqNGxSpTV6JOYRgoctG30jR1VpVCkXD4MFcxmcWPHcIDU4cAgRwkUEyah1Npwl1KjmzZc9fO3x+uvoEwxYpd49sonLoTuCeBg+PHbmusQxcwk92hfv5xVTGmnNp0bs5MlhE4fNocdoRHKgi/9HiCvo1q7Yh2PYnt3DhLuiOUAZT59gIKtX41pPjx325glcTICYaBrUV18TdKy01VH78ZddgHRFKGBoBRo43n2snVeDVwBeV5xy/0Eo4XsnlGCheDLJshVXopEmmndzxXdCCDOK5sOIE3CQyonQcfQSXGMccUQXXbjgAiqojMCACio8MUIqJVhgQSpJanCChBzAwONzdNQE11VGugCDBb6UWaaUdeCRCAgg4IFHBBH4gsqVdHFg4pa7zbLiEUoYaYstY5YZJ5wRuGnooRFYwIBiOd6JJ2p6HjWWLWEeCUOZXxBa6Cl4cMpmm3jISacPj+YZVw8aMPCnC3+iIqWgmsL/aeinbVqgAgcTnFBqaliJpcEIf64KaKCEukkorWyG+sQJHJS4q2RxiZVCkX9SC8O1ZMKqKR60hjoCsz7Y8WxfXxzVQwipUlrptYFmGmsEyILgCxQhiCbEuHx9cWoIKgC7qp+2vBrBKbHG2yYUt54gLr5mWcDDDuc+QYItr7zCAAMVT0xssdwi+6YdKpywwsIMR/VFCnehi3EK9cY3GgOu+hInmYW2may39Y5cclmBHDFaqgywPKOLLapKJgxIopIKzcZaQAKzKuxcFi5dpJDCkipcjTEqiCQZdAivoOKLBbYwQBq6I0AhJdmijSB1WZROmyoJGYudaNlXowKn0wwA/83ACE9aMGfUb0cFgwsMuPAKCSRc3HfaKqSa6qVvkm3BF5WnsvQIIThaOE9yfGGEn6+M8IoGNJ4NdNgyJ8p4KppGmfbnTzn0hUcwLE4pAyTAQLHjrO+Nyt9pW1BHBHWMQDLtJ2EYk0NGUGyL0lKiUjEDXQQPp5lkdhyBHTMwrxMrRsg0S0hGHD69q6gwbvHidhtb7Kd12AGZ+CbhcntLIKXfJ6tIch/GKnYpX3BLft0qQR3wd5JTtCQmonOBEpRQpIpZEGPZo1mh3OSxmZ2GgSQBgUeMEEEiZc+CKEzcpWTFwU8Z601OAeFI9Ge+L3zBSCesmAvoZrYe8OAIrGJasv9AJSjdyHAkp6BDVYyQPiO9goJOPJ3VLtYFmJXJUJoqEwiOSBIrjI1dh3MBkRS3OMYxzlUR+ELrsCioMhmRixqpQxjHZAv3iVF3SGIaB98kP1jBsSRJVOIXUPGvHE6PTJm62bvgtMU/luQW8mofpYg0QBLETGZvYuG2GulIksjBBoKr4yu6cASrac2Sl2ydpmZQh/t1ciRyYEUJ2qfDKmrtYq8Y1to2+cr8sQIRojQhDsX0Kl+ocWyqTEQvTSIHEFhgBO5D4Z/GJLA2xel4M3DlMjXCplPQEoVlpKa26lAH4ylzmyQBZZmsZ8FpitOYapyZBUqgTXRixAapABTF6Eb/Aj8Vk1Ayq0MJSjADK9hzJPiMpgVZ1TspAVSNxlPgQUcCglTQrYrAs2CgzARRmk1UI4mAAg8dR9KKIUmca2vlRzNiA2g27mJTJOkRXiEmGCBiaeSs50onEtJvwpQxM2LM1bpwSF+Q8407nYgcIjBJE5IyBTyIago0YC2BRSA8SZ1ILVjB1ByOkkgWmx41raompGb1ILWwAiu+QDEUmrChxdRWoVhRi7Oi1QpWmArZbOFUsOZyo4nSFrd6YdeCfJIVctDf4cCJQlSs0Eyq5JYNevGCGxRWEXKQQh3kkNhQ7tBPZAzb2pA5v0QkohdlcEMedsoKVpiWnKzkrBzqsKY2/yViBjMoATQxFrC1ZYtQFkjEIVRRgA2s1p6nIOdAU2GH5qaiDrjABQiEMAMp2EAK2L1uC0y3ON9mS2YWsJ8NkpALE2yACtsEQR2g8IQntKIVpFHBdn3B2RnYQQcbyO8GVFGGDbRCBYwb62/hNAJ66mEPuQAABihwXDjaoE0lQBizJOSDFTwBCqdI7AxckQVV5JcCFPBwFgB8SN+aKUmJuIMeYpBgAADAAcYF4VZZIdBUQAG+PuBCBzAwAROYoAMVVsFVP+mKFexXEILQbysk5lgBjy1JM+jFHYhABjK42MUYwMEKXME8zqoXEXZY1o12jAEM+NjFJggyHnDh2izoN//JguBvCyRW4lfxLRWTvUMVyNBiADzgymkewvLw9UnkWYC99eKCCcqMgQNI4AAHGMABMNCBFaggw6yYgZv1u18dUGEG/srj2k73hDpI+QdJsDIADMDqVhvgxRTIQoNLFctECBQKnMOVohk9gF4PQAK/fnQHTnCCU7BZ05yOs6dBnTQw9k0DJTjEHVS8B1U/wNVxyDarAaDlWVsolnioQyrmHDJcdWDRjga2r9fdaxOMJhCssAEVNp3fOA9iCHlIm1h9FzRo20AP0yYCi/3M6mzHQQwGjwOkAWCCLb/AQlKYQSpGAN8V+MAH58YAABzN7o7/2gQTgAIuPolsTm9gEHn/mAEUCImk04WAAfT8wbTvkGo/X7vgClDAwRGugCUc4NUmgMAGmKDT3QghZDeawLlN4GJIe9zjEgDABKAb7xkYOdk6GIJ9Cck4oJVACjKf9g+AYO1Wx4EXOkd7whW+cBPE2tuocUURMJ7xjUP67utOAxvSoHc2sBsAJwgEmxORh6uDGA2CGMQLts64i5GglWGfOdldfG1tG1wBvMg8L3j+h0cfgOFt2MC9dgMEH5f57nf/Q+fZzXc2uN71b/g1AFYQbxvMQAibpgAa0HDyxbfAjMqTAsBnPvM9E9zyYuD5EiqAedX/oQISUD0vII2BNpRhN25YtN1R73wJqNvXaWAB/+z3LunZBwIPVKCCEPSrezSo4t5CcBKwCDp84t/hB6pIsKsLnu0KPN/5S/AHASh9SzB9DDd0qAEBGrd9B/AHkNZ538cCLNBraTAAb3CBA+B3gBcBM5B+6/dhuvd+QxB/TzIDehB59gcGMUBw+2dw0PcHIiACned8mpd2PvdiMcYXZeAAjYZ6bOd8HCcCV8ACQyiBbHCBaRB7B7ACHIhdH7gBFLABiHdveUBdiXCC9jdzegAEBLBq2JZtCuB83ScCFVABAch8zMcLZxcHLoYDg4BeZfECG+AATYd6kPZovQZsUSCEEhh+LJCEepcGB+ADUNACQtACKgCCaEABccYEN/9ABcKHgsT3A1Wgfy14ds5XhiKQhzQYhn+AdgiXbdRHATpQFkPgA+hmh6rnfevWhxOYhEf4BhWohFg2ARdHARBwARcAAYhXBi8AiZGYhXpmZQX3hbwAg2RYATEYg5ooAcf4fMyXbWJQAbzwagXABFGhA6jIgA0Igb92BXx4BUOYhBe4CheIhHw3ABiwAkamColXBkzwi/E4BDcgBcI4ZcS4fwV3jDHoB8oogzKIjP6XibxQAQgXigZAABcQFRuAAz3Ifci4jFfQa0R4BVHwBua4ChrJAm/wh3x3ACAWhbwXZ2VQBoNQkvEIBpK4hfoXBwbgkgZwAAeneiKwh/8ohDT/KYR7uIzSF4piwGoFABVZgIo9+GhiKAGb6H1/AI7ex5HmiJEXeJFOsIeq52IOAAEQ4AAFUACJRwFbiQM4AAE6oJJiBwY76IUv6ZJqSZN8B44xeAUCiIxpIIQxqHoJh3CvhgZPkQU4wHROF32PFn1/4Gvi6JYs4ASrcISHaQga+QZREAV+4IBWKXSDkHjxyARlIAhZ6XZVcAM3UAVz6IVquYYHpwCaKI5RMJFk+Ik3SYYikHkHZ3CvBgAL2RNFsGN452ve15QDUJG9JgJzOYR76AeI+ZiPWQEHAAGDMAg6wATxSARlEAMQIAjw6JwmOQhAsAEFAAAOmJaYqIbJFwCm/3kFfpABqSmDaPeM4LgESKmGLll5cfBnBQAEtrlou5mH6eZrLCCEHTmRVzCXIuAHfhAFTuAEFyiBj1YAzVmdmElcXfhi01kGQ5B+VFAGFICWcYB5sFmaFeAH4miecyl9BQl9v/aJamgAD3Bz20YAg9ATOrBoGPB9wSYBfvCH/dmReygBqGmRGYCY5/gG4PhiBUABzFkFZVAFL/ACZUBcDkAAWkmkTDAEqkAAZicGmAeGYlAICVCGCSCgySiin2eVdGh2ppCiKZoLgtATWeCX6jaBdVmTFimBjmmRQGqcBEqg58gCj+mACgmPRKCkjohdUgAGVaAKWXllG2cAaGeaZf9YkFraoQLqj2ZYAQkggy5ZfWDpA25QBE0KANrGan9WmzoxAxvAdOD3m0gZfRz5BmwggY/pBH+opwXqBICgkY/pjw4wCPF4A0TgmYKglRegq8AIBi+gA9vpeYs6ogVpmpEqqVwqjtTIcDhwcVuWBUM5ptmWogAAATvhCj7QBo1GkXu3dywgmEPomHZqjhI4BQSqkbYaBWugAA7gi8RKBL0KBGhQAHT4YsE6BGAABkMwCF2oqApQCH5Ql2VIqVyaAFqaAF1aAeB4AGlmaa1giC3QCivQBg+KogTArTqBiripbkkogb8Wg4+5BsbZo+c4lQQKCLW6ChmwBn6QAAlZAIr/16uf+a/Fmq9XdpUUcAEbt6jKOJwzy6UKkACx4AdrILOSegUHUGnt1QLN1VyuIHc8uG0eaxIbcG59yXG92ZEXCI5LmQFkmwHlaZ4FqpFOYAiAUJxRYLb+mJCC8AL2egOq0JxggF3EOggXQIeRNgCZFwBairKQmQAB4LAMGwBJS7YzO7gS0HDtJQTNNVB2IARF1gZXFpQn0Zcm4JB/+7XnCI4WWaAxS7hRMAWI6a612rZOgLpRYADUKY838AIQQAAEUABoQK/Y9QKDsJ0/95KH66Ux2KWImwBrULZm67B+8LgW1gJS21y4VbktsAIOCQB7oBMOaWb5Cbphq5NRYAiG/2CeZPsGrbu67sq2q2CcAKAKEyoFkPgCQCAIBfCgWrkBzYmZ2wmKAdChItCl/rilDJsAZFuga8Cwa+C0ldYKzmUHJcDAUzu9TBcDJ5EFuPm5AxB+P5qar1qrTpABc4CY5euyU+CyL1urUVABHVsGwncIVFAFYDC7mXmoCuYAdLh5ChC8kDmzxFvAh5sBq9C2BRwLc5ABB+AAK/C8A9XADJzErcB0FHASpWrBvsYGGhmLeqqRJjyrIWwIU8CYIuyyq+AEIpCQgwAGeqAHL3C38QiJVKCkaECHOppz4tml5Cmg/pu0SUugiGm2x+sEB6BlSKzEuYVTUNBjRbC5JhBpfP+XjnqHkVVcjj/srmE8BSO8CobgBFgACFOwCpn8w1FwABfgi+4rBUOwgrAmrIPKBL37klbKpf+rpZG6tMQJxmQrAAKQAQBQYa5QuQ2cWwOFJqlwAh1wyCUhBG2QyBdMsr0Zi+bYqgRqCFiwyRrJxZ2syVhwzdi8yZ+MBkOQpL9YBSDWqVZ5Ae8Xnawmx0wboEprnif7thlAyXMwB4CABQOQZoY4uQSFW7klUHawAuZlEm7QAQAgshS4qk8JyT9Mwq1boF7sstjs0BopAgBQXO6opKrQxgGbr10Ypu55tP5rx8b7qsa5ttdsy5k8AFAruZMLPgRVB7nVzzBmEi8aoxf/zKqw58iNidPWXKtc3KNsO88i/NNtGwV8ipWDgIu6+ovpF7B9awDMl3zMOqBw+7ZRqccZAM3ge9IdwAFP0ALMNbX6HL1CsAIO4AYAzXTA1sg3nboZCcbzjAWWTMkCQM0PPc8jXKtX4ABxpp0QYHenvMYvwAQbAACBe7QCapxSPZU+vbZAjQVwAAgozQEqAAVTy1y45dIN/ASoqAomUQSJLAHkmJgI7darK9RcLAAfjM3ZTMkuawgiUAATOgRRKIXz69cOcAH7dQEHILSRerIya7buPAcCQMJvjQVpgAE+EAIXpjn47MupoAI9lgVnDQAWiNNYHMlYXM2Z3LoCQMl3/33Ndg3eeD3RJ8eIOpCkDXqo+Wm2N1ywiPsBkEmgAnq8azAHqg0HcIAFujCIJ/ArlL3SDZwKrSDM/1wS2Ufdqru65pvQ0TwF14zf+c3a1+zgqh3NJuwHn3eVG0CZgP0CVSC/A02GxVu8KKu0KLu0HjzhEJ7fEpAjLwcF/73EzHUrPrYBWmuqrJrQJPwGbk3h2JzfEx7kFe7j7LqtHzbYYeoARIqkQ6DKDkCwgnu4YYC0c3CnjzkF3S0AQA4Hu7AL+V3PPjAjaQMFmlPmLRACOwYALUoSVHDMA52EOp7JCo7F8wzhqk3Cd+7gWV7kZTwEG4BkXlmHEApinirHOeewsf8QC8drnia+BhQOC1jQ5V6u3yD3M39D5pqDMBzAdBNNEonQAuDKcRhJ3MRN5+GN319MwpQ84YAgAHB9yQdQAO+HBvc2u1UwCDz7t3zHfDd8uEjrB4r+AXMws0qb1Y7N5ZMOCG8Acsk9VWnD3JyT5p0+EnngCpj75leQ4JoM0Q6NBa6O39gsyXfu7bbc3Xs40bgdYvf7AkNgkhTgAJHGfAFwuIkO7H7wAXkss2sAvhSO7JPuBLk8GlO13Db2BJueuQglBK2AuZGmo3H+4I/9w9ls595t4V+MzbDQ3U5wBdv6sxfas+ZtnX2Ndoir6EobC7++6OX51v7eB/mNyz4g8Kn/MuYjAN0LaABZixF50ApZgLm7mQYS7+ArDt6ZPAVDL8JBruB1LcbXqANxpgq5Xn4+C+8FWbz+qMNdirJDPNcPvguE4OVwMAUwL/OqAuO2gOYa93NPnBE7z444sHHedwWjXucUH810feyt7uOs/uCZbAhzCQCMSKQvIAVKKr9wzHe68AZYj7RIu7SOb+JzgOVd7/L4Hb65PCMDT/MrINCJuvYYofBuD/f/yeMsj99e7uP5nfp2Lue/ZocMd2aQdtv5VZIl2e74dayLHwZTbuKMruj7Hs1d//WnD/A5gvmAA+PLkvYuqbkXQQXvhbETAPdwXqvRDOG7kMnYf9/gjgVv/1DEFfZfKsCOKhACK3AlP4aVQNuzOKDu/UXYC/sBVu+/CfABV/3TkS7p1x++B5AjAg8QKkZAgdIiBIYDBwwA2KDI4UOIER1K0dHK4ooOACQMWNWxIyAsIeHA2QUHC6CRKeGoUQPoDQAcK54QhDJixBOcI0Kc8LFiAwVBg9A40DhgwAEARCVIEJEg1geoftasSVA11lMBAgBtHbmr5MiTAzr04MAhhIYRqaCo7YBBAlIKEuU+lOJqwwofPjocGJBm1VbAWFJ+NQlSJUs4bw7EfDIQ1U3IjTXsDPFT1QsqTMoIokD0AAtAq6748QN1ztQMUTJUTRDmwxxDgHf1mV0yJP+gNB0mcOhxQsNMKL6g4OArIWmZuXJdtelgAgBfo3+3hhTZ1WtKwSNZqoFzwEFPgTZvTj4bIkRZDid+Xgiqo4zmzRA0NrX6YY1U+7H8XI2VAWR1r/oAKzQMJqihhx5CCK8EO3zAwCikLkguIlfaejCNNEL7jzrqBiPMJBBZwuINE3paIbwRVNgJPQ5qmIALLiagQL7nADDBAQgo+MmBAypIIIAAEngtgzXsu88Pp/zrkCSVqBugQAPNUmFKKCbgK40BJChgwocqxOBBXQD7aMPsSPpqySZfwuGus9K6iQHyTuDgRQw68EFHVTYo4LmNspTgjTeuIJK/DzKY41AikUz/IIMlr2sSjlUOMMGDCXZb8YQOJJAuDQBU4VIRHJrDAIBRr/QLMMNUKmwK7EzCIlIHiljBNwZQScWCmm6a0jwOmsOBAlWGoOIFJgaZkSgRpnAigwyeCiOMQwWAitkoqlpjjikEu+7DKbh740sPYvRhgg7KlWC6VSRAg8si8uoAB3hNOOCtUnWR7r//4MhAhCiccCLbkziFYIUVQkjhiFdssYUEEuBUkde2cMgRgg1Uce+9MgaRTwTSniry0EPXEIBZqeYQQCSvHFWpJCy/NEHULwfYcIAtJ5Q11FH7TMoEhNIwJAMnVjk1pCmSckCpN0KToMRZDQ6BAQZI0Iky83j6/1LiAuZ9K6lfL5AvjWUzgCorAWAhG4spDBEg25Vno20XNVLe5dVVnvzy7r5QwkIXAAZJLgs3fHiuL6OWLuqoeQF4ThcnHaDAB3kHeGMVxewk+ASDX5H6iZ1OwPy8thbLsYCjn7uCBRb6BWyKsqdg/WRYOOTQTO2sm42Qt217w24TeO6rsAMESW4IN5yTAEOjYs4Spt6dk3yVsF52q6/YIu2grII1YMAWKGwZQQMNdt2JC4Q60HGDQXTQQSjSAfAZJAHgIPtksGT30Do4+tCfkC22wF3/XQDiSb1THkje8Ie4zKUKnjGK5CSVEJj4AGfHk05IJFWUMVkvPebRgAsUtv+whoFPBZMhnwQkBgEC4Ah9ZWDhBhzwB0OIhDpZgUXsZueh2gCQEPzzghd2+DYspMFlyrPXKpKig+Q4Bzp9edm73FUUDEEPJKvAQOSmc5JI4WCDKUgB1KAWQvOYZwIPkgCO5FMcxeGIKBnKzpK4Y5symSlAbutD/3rYv//RRoB4M0oRveMA4cmlCNOT3NJ0EyoA9DFM9wriqKIDkike4Hrp+Zz2JiMn9IzxQQPA0YzapxEW/KU6IDIJYuKmqriVJGX6218PvYDH/vmvDwJsIJbe4Jc/8AgACYyIEJSYBl0cACHzMkqGxBQYpFAQklvRoOfM08WGQS0F2jsPmDgJAQj/HA1PaMjmAdJQnZAQBhbbSQlLahMg2sSNhz3cIf/8h7tXAdMjzBIBAQDwhz8UwG8QEQIDj1JLDCXtLx7ZygCeA7YNhcaI13PmWaJGAs29QqIa4MCDdqfGChhnTeobxAXclypSrgQxqjLT/ggBt9lswZV2JMQr+0cbsBRmFSIAAC94UYglOGCfE6EAQmpZTL9IpyNvcMJWkPI86gCmcrupJNS60IVXgG8nHuCLAB13rBoZ7YXQi2M5WSIguHGnpLRhJe5cudJYvtN/cMTNFXhRATEU4goDgABEpDCINvCpgYRLA6BCM7lVGMIJVQ3TSTQUGknuhkUh4AEXT+AiD3yp/7Bl1JEgNtBNyTmBSStZmaquowYBjYSst6NNS1d6R/61c4e2Cc0VfFQIMQSJprxUxAsooLglYglDWBJaXydnlKRdkW4ClGSMDkQW3gQhsptEiVewIIICZFNxacQB6XiRgfhxR6ycJalIVek2t7kTrWmNJe4I4aqfJaAQAVCAAthrnJ3aYJB6xRJAWaBbFjjhDWwY00kMKzRhYsC4NajBcgfAuJSe1CRXUOMf+mrQAlj2hTEk50hVIqCRojS8rVzpDtXqQx+yFhAZ8IOP1BukCuSSCQ9RBc/6tFfkEY4FuxtqcJPqBEOsQhe6sJsHIntgLNTRh334H3cYDIELoOGyBf+wp+JEEMftcrckqVyJ3FgZoHW6sp27UC3u5gYIJ0ShxPepQCEKkeJdPkQHbXnxXmGchivwdqDMLGq+AlhfxnnYpXkMrQgckGRVDGIQedoTG0lJzsGsBIDmRClZiUxklZ71nVx2p//Qu6w1EOnMZ/6DASTkkCw4wKdudnMaZgxYoc3YoAfor0v4S2kevnO1jmLwBZisuBs17wBJK1OURQrA3OnPnGWN9EqF7OEtAHAkgPgZkZgVi0IoQAxiMEDNFDGENuSsgW2u5X0px6np3lZybHgD6vibPy6rlX/C1o4a/JzNCohgDWmr25e42t2vfDV3tbGO/oqN1kqXlzYh+dn/VaaSAAXANg4AWNdDejpqPw0An9yGkAlwcCPi9BXOkyPJSQNeRy9H+d0XuIAnicInVh1GO3Pzbh/iNlp0tvOsr3Tph3/45WUJyT5+WC+1rf0QUfNpKVrjdn0lhbMHDTTlKSGyO0+KzrCOJJclHwQLy6CDLBQBBwBg23a2A1NFO1rZL3+0eGfuv0jLeuAjXkN/iFQBBcQhF8iRiA+CnhC8L4XiBlUiR4SLMmS/8solCS0c3s3koxUAXg6Ql7bC6nXtgpY7AARvymQ+89Pe8Z0CwkLY1mCI9CrAAA2ZiyookO3p5n2J2y6mvVAVTkpDWvB05K7h1SiCKwSNcuFMp0gt/6xdYbNS+B7XM+Z7SGSaq3Str8q0AEC/GjE4wFMTEkLgeJZ3itdXQ6MML7JlOUdVvXtipLPnAUSg2XxHHvIuB+3w9yfLf8884HgkBBaZtRVmVcAAdf3UQ3zQBiVqsyrCgbzgi3trt7JbN/3BH5UooxwJNI76CfmAnpSpMPUbKcnTAkczr/iTtNR6qT4IicDKMZLhBQfoP+XYgAnQOgnKgi4xgY0QpexQpT7QQOHrLqnDkT1pHgLSCMFovwzbrDdaPzoiNkkrtqaTtQBaBedrO/0wgIZDQSnMAhgEMlKawdlov6/4kJFwQB7pq47QFhB5PAxbpTyKPHQyqeKTtFfyMP/VCkG1IRL1EgMCkEI7VARX8B2ugqRISYM0VDaSwgLKQjKvKZ2E+KbDQAy4uTLKE75HS0DlK7ZIdLrVwoKfmYo1KIQ4+Lk75BIqrCoyESCUyB/hsw1VwQJJmZHz2YAlIwq2KSdVuTJGY6X2a6f3M62aa8NK2yEsWpY58AMDCKRO/BQqBJMNISkaPJNREkTH0SXcSggJcII2OsX8UUCYuzI+k70ObENYOqmtwLHVqMNh7L8N4Blg+ruY6ixfM4ky8qi8GwB/iSEQEQyzgQXWyZ+XOilapDzRgjQhMz7NMy94mg4nUAD+G0cuoYDIGZPAcBUcPEXv6AyK0REIwIGjkQD/gAEEaYGK1wAtG/yhG4SUt7gCkmAlOzpCgVutwFiDB0DI/nOQPmLIDgEp2mmSKfCOCziao7HI3kmk/2CdWDADqGgALSjKptuf3CG4eGOV8Dq7tOqyAAqNDDCAGHDJT3GQjVgkVDGMUfI6VbnJP0skGBtFsJiCOQhKoYSF1HJEkFTGVxStk3TDllItrwiNNYiDqrRKLtkAnyKowECTdrMwk8DJJjuavYijkJiDD3iWBnDEsuIzwUwJWICDLKO/ZDMv20gDvNTLT1mBUTvHreTKMuFCCwpLERABpPAmuuEQATCZDyBKDdyu9hO2KDslOKihrOCyENsFs1kl9HoAYeTM/+Tgyz4BlFYTDOScQZICBO+QD3mUIUAAGJM4lNf0unFquSxMR5Ugm+rchTU4CgAwAAdIoQPIPQkggOAUzrngyyvhr62UnSsixSjLpQncwkdrkqz4AAHwSt/Tt3WUTKiAlrIRR7mAgPRUz/V0C9+6F0iSnQ45p5RoTgAwhClbxMKjx9Ysm5GooQboUK8Duw1VCbMRgCL5gFiALgR1Sc+8kslxPTJxUMqkzZFICvlwAq8Iwu08FFhogNscpw41gwaAhUUUp8kUUQEQkjCoihNM0XEcJIsCrMD4uw7ZMu4omrCMwytICNyTRpEQgAYomxoapx3t0AaAPMkM0slUgx1tzf8PMIMAMIUHiEImtcMiiJw0IDcGjdIlqaO1ggMr/RqkAIAUOhoRiCG0Ucw5YIkg7dA5aACouE4LG9MwHdONDABaAM457cRsAyrjFKoryhdS7NM/vSccITk0IDkDKCosUEyhbIAzCC2zQVQvvU3sYJ0vpaER1c9YQABTOMhMRcFs2whAQbXQRBP9ETyTSAqPAoALYMUNEARB8Cj/gIU5MIMFCIMFsDAwbc05KFLJrMdJ/dJDiYUwoIVc+FU73DrgyqD3vCF/wx0/BYACWNZmdVbOAIAr0MjFDAMEANKXK6cR7a4wRdMy7dA2LdcH+DR09UTiKCZU8dQXxQKvcLoQlFf/CFgIinHWn/goQ6hWBECABTCDMyC72FS5+qnHHqXWao2FAEABWtg/ulvYudgDHumLe5HJGyrJsuqDooku85vX8zlVAMiAS/zYAADZkRWpksXBkKAhNV1TMzADBKABGRADE4xZmY0ICPCpU1EoRmpQkcDGZMMCi8XXUnXWCzCAa2HZo6UFFOjXMlVD0owpGkLTrGiAkKUBvQ0AP+DErHWIvLoSiH09+3FMQhAAGv2MTrKsDfAo1WBbl/1YoTyD2Pyfx1OVESXTW8XbBfjYjw2DvvnbiMg26AjNY3xQUjQpnrXYzzABbIJWNLitN0ASWqhdWgCSBVgAD3U5mHo8cprM/zE9g82NWs+lgQWoANITXYfQAQKAjqEBDIccQxp8TLKNLl54CWx61th1H7izVFpAgACQARkA2TJ9oyKcst/FTc4l3o+VATOIBYN8AeVd3mGyWWYapftJXaSs3gKogJeIrvO5rQq4qdp1WfFFgQAA0t0VPirbLJNgndyNWgkmXjd1APmdXx2InOch3CkIrJCgPNJiJcQtgAL4g5foJFakAANoL9t1W5d9W7jd3XPiwvr50QmWXKFMgNDFYDuF0isyqOdgAYldpQ3r2ayJFBKmACUTYPfyXhR44u/92AUY2a9bwJdLGbCQltxtUzMIA6mN2gCAwvlVBB0giufp4OnADf8MoEgM+KYhHjz5SYoSNgToKgAlblwAgDsxMAW3pYEXpoGpRQAP1V8BeRtA7NDcDVlr7VypDQAxuIALFt0yaN4NFhOhsTiC2QuQAK/RGuECOJd3U7Lt/YNp42OXrV2qpQVABtKuYMTSepvb9FLdbQD2PVoEoAUxKACszVogyAXBZUjKkaRyeZA4Ai84MAR5/WRDuAICKAAl21he2GM+rl0+Fl+37dcPGKdV0gJ9c7mR0OJZ/tFbnlpLJYBdltleNoCNYKaOpY66WYowIQmy87JdcAIAgIASzopmDmAAiIM9pgVTOOXxrV0gweYgdZvY1EAslh/Nfc3OFV/wfVlBAAP/5QWC5t0Iv4iNFwVVUoRQOIgCAsBnCRAseW1WNBgKA4iDaXZbWpCBFlZluM1WVoKD04ifr5jU/HzNNgWSMAhjCIjkrHWDmn0ejV6mnHVgsPhfCIAhFtjnDTjpAjAAA+DjaQZk8bVmFLhq3Q2rDEAKXsiOrJCfNT0UcY5oUyiAFRPdPfDlYsovGZydrmLA/92q/00yqO5nU8hrPkYAKHbhJ35bf2WJkGGU/EkJMn0NLw3SD0AAflWAXNipoB7qW/KIt07HDyGM/+1f/SrVkz5VApjqvC7gU/5rFNBbQCZKbzYJIV1ozd3iDt3Vj31ZNADqhd0AMjCVU/PhrlpoleAU/9KpAD9g5hyxrGiNapUWg5dO7ice3ykWq8mUmw1N7JCNYJa96v1La14mA40wNdWYM5rEwcx0ABL+gys4MqCwLDRgMgOYNlV+6VRe6dsl3zOoIfDbUEftXCm+1vY9a+yW2TKIAWIagBmbM/+ixnJyOSxgZhJWgCioABJGA9jlpqieNhmggfhOboBGZUBu7sl0NO4wG87tXEZuX1owZ9FlghgYnAWtIPztCtHit8NbgjXIp5KDVkE4aRRa75Z+Yks95dpF7gKWXDIt0iwsCWlhX8ZOgPaVAQMAAuWNAQP4g+e5l9jQThdXmQRv5gLghTQ4ADt+VkFQhc7ek/Uu7fCtcJ6qFV9LlQGX1dt+jdovJby38dLFBmTGPlozsHAD2IMn72cJKKLACprZ4W3epk8HOJ57rixVQO/YdYCUtt3SNu2PLe0+jtw3H+Sv2gVZxu+o5Ve+Bui8/Nu1NoB5wb0KuAIRABvQUxuyYZ0RJZs58PJsInUCwJMyAIJBgFZWJJ0HCG2qhm+97nW9JmhrLRtjnwp+beE3peoHKIAq+JSAAAAh+QQJCACmACwsAAsAfAC3AAAI/wBNCRxIsKDBgwgTKhwYiFKgJhAXSpxIsaLFixiNGBHFsSNHjRhDihxJUmETUZ+M0DHy6SOSUDlyjEHy6VPJmzhzIhRFpyeSmKHG5ODDp4bRHURzHNHJtCnGJpTo1PyZdKjRIFiDHK3Bg4HTr2APGvkZkyifUC9z7DA6oa0nTz16cOBwKULYu06NDF2rtcaOv4DX1mjbo8bcuTxSwMCEt/FNI0JrBOHigctkLpiDTIg7uO2Etxx48DhxybFpkZQ+oc1RAzNmD7C5fG5LubLsCRxOcNDw5bRvinJSw9xRG7bxyp6Le+jgae4JHrx/Sz8IEaXQHUGMYzhu3LJyD7gRc//wOr28qeBShaptzd3DdtiTjXeo/Lb5aA0lzE+POhYm6+ztvWdbbBPc5llzJ7Sg329y8PRJWv8pJ6BtnlVooWFPLOjbSVL5xwd2rnGHmYWeWFhhDytoeFogDnq4A2c1yMVBfQiuoMKNGmgQgm4WpqiiY1BJRZZSKRzBAAMjXDLCCDkiiYgFX3wRQSlRWjDCCSW25eOPeHH4oExKuCCmCzBAWeWTEUSAR5qlrKnmF09w4NmWXIYlXEw5hCnmJZeYGWUEUoIwSR11pInHoWtCEUKWdNb5FSVC8dEVn2P26WeUXxSappp4gIBoCU+coKWjd1GCxIc8qMDnqpeUiSmmhAL/GgEItHoKqKJynkBqWKXslcITLUDBqquvEoporbR2GoEkO+K2K1hKAJYqFMIOa4GfsgaKrK2IaIBlo8/mxMBfPUzK6qrEYmrotrRGgEionugablMu8LADB7/ySUIXXfAJxbVSAqpup9viYYEKup2Qx7xMwZBCuU1esi8JJPiLSMACf3Eou19Y4C0H4DJcEgPlHnmkBqKdcEIImzDQZ5VQqllwBAfPFbLII0GB78k8HDbjXCm4jAgiwlLcxdBQEloHIipw4EMWOOsExZEuMBCCBiloYHKOiTEAxRdEY32f14jMUAKoJ6wgRNQ51QFD1Socye/LiFxyRNBf12HBJXJf/0IttZKU0MIJa7ONEyYWdAFFkhNfMjSTKaSwCSJq0iysBZWDPXQLISRiOE5yfMFqF1aHEMIKNjZ5cacljOCyBSUQWoLZwH5+kxyTUELJF9UyoIEKTzyhdcSYr4nICE8AL0mmdYBqh+0j2TClEQ7t7sKq1JJgMgP9RlkHHnVU+X2tdYwgCfQiBbKSEQ8FYgQM2EvcBQlLknAxpxsX/IUkktSBPkZTWkkpAhEIGLztei7jFwO0xwAYBOxYyFrTF0qAh978zyJ40MgnvhCIUhzQBUrgngKPRAJX4W9bm9rUBS0ivZ4M0IOX4Be/KNa4lxkqf+0SWMxWaJEIaMQIU4LBvv9kSEPtJaYLMEDTDZMVgfBBCQQ8rAgmSqGRUlACfkOcm/ZSAJ1NxPASmEKUmpQWJShGkSJ4MKARqKgvIu6LhA5U1xjTREaNnbEiNkBEF9ZYComtKoutMtPGEHWoJioNBDa4Y0Xcxj4Y/lF+rQpjrdy0pkIRyoyKlCImArG3VcltfnGU0poKaShDYjKTeARB3fjUhSaZjE+hzBT+6pAIOaASIzZIxCoZGLnIHeEIYQLjte6Xphkk8pYXyaUkKDYmGfbLgHI0kyGRiUtVXmJMIIRlmWImxj/RkprJBEEdYtgFMc2vYn4DWAoxlR9wshAPpUCEC/glJnT+C2BfKAWVojT/O3daJBElABQ5GXC9QErzVfz0nD8pkghJUEtigIzkn15Vggn6b6ES0YQNWrA9uXGvYuni59n6idGFWMEGUNBejrTmOwYo4ZnEGtrFCFVSk9oAoq3EWtY0sImWETSJMoVSCRRaU4RoNKWkOxIXRcPUoNlPEojoXxOJWtSCaMIKIJAYA4x0sqVCR3FRnUH4DEXVqg7kqnjI4vaw5jIoIGJ2SvuemmZgBbMWxApy2OfoTuY1t8JVU2lKhDHralcrGHaTTShFHRCZyzrMYAZQvZj3NnUoxybCBoowqxUuKwdMcBAKdqCCaKVAWinYQRIAw1wK02SHRBzCEYsoai5LIAc5/0TArUJgwiAEwVs0lGEQWWjBk/C5KULZAQSHAEIMNrBQgDq2BIjAhG2fIAkhZIG3G0ADBXibhREgLWYprK4N9CAIMhCgCC9A5mNL4NBgQQEGtU3EE+xg3Q0Iwr6C2G3wHHot8KapBZIY7yLIAAACNIIJinSsEFoQPNStIATUra0NskDfDbgBv/nVQR5aYIHh/ilNx6OrHi5AYAAAwAEbKNz/MJEIO7QAdT6IcQc64IMTqAAKEs7DhlewgR7zdhBMsIEQhovPjpnPBnfQQwxKbGIAmMAHKlAx22ywtCesoEQz7oAJMGACGq8Ax3KwghRmkIUL+3gQQB4FalNrJhI8Yf8Gh+AEGGJAABMb4M4GcHIjfFCGqAlWElaWUwcwAAAuH+AATsZBgmprhR/oQQhm5m1+y5CHJ1Crv9cawSaEcIgfcIIIZCDwAx5ggDgYIBKIxgAOiqDhZ8lBsEKw8gRmjAEMSEACADjAABANgA5MgAFNCDMn9FAGHmNYEJQOFpGtpIER1CHOnHBEiUdN6jjEAdWH1nMWZsAlKtcB0CvA0qBrLYEBmPvcEji0r0eACRscIsllKEKP5z2IZFcLBlMLQQvgzIlhX8DE1Kb2tf/whzhk2wQ4yALUzMPiOtgBCrKesQlyfe6Km1sCfzhAly+BCSm8+wZl6DEF0ICG/DJhw3//014IVDADPXhaznQGQMAfYO1rRyIS1r5zoU1QBDdIR5ySYPAKfDDrcee63AO4wrnTMAAWXLzXXwCBxw/xgkHMm+QbAPILWsA4BmxivuPtN8xFLfCa4xznNTc4ohG+gYU1ZgYuVsHQG4EDLU/80HhfOtPfwHemI9oHaiKtHl4gCHmP/AKTHgWDmaS1Erhc7MPeA9lHfedrW/vmphaDGGp+aAw4gAKDuIt1w130LZsY74f+A9It3vddA0AFgeg4aQm/AQrYvuT13voTfDdfKbxc7HoYsMxJbQCaW97yN0e7Ai7/hzx/Pixu8IHdm5x3vBNc1wNgOhuy/wZLpCENEjDB/wgCYQMqgAEMQ8hC7SlwAQpkXcMMfoIQRvF4yEde1HemfNrFkPzLa37zoLAEqIYBbcBcTVEFbWB0uYZ6u0ZwBCcCFvd9fPcGu2YCkoAJo2B+N+AIF2Z7F/CB+ZV+89Vyvwd5NzBtMxcHYqAACqB5aGdzKnh5aGdiECAITAEEZLBlB5BueMeDB5BxDvh9SzeBTDcAGNACdZCBNwAGZaADv6VdEIB49UZpUlB/9hd8dUZ5ZbeCLMiCfyCABBcJLbh5cQAKN+d8FKADOeEGDoABqJd6Dqh6fyACInAFQngFdPh93sd0ALACJUAFgqcIOjAEv1UGTPACYKAIinADVagH9v/Xbz9QBeY1fMRXc/ynAAGQABUQCX9wc52Icy1obcsngIj2fCWBgHf3g6gXhwSXfU53BRKAh2nwBrNIi2lwAH44A6Owi4PgftqFe4a4hFX4iP1GBDFHfMVHfJFQARWgiZq4iZz4iWIACipIhsuHcwbgADfhBqZ3broWhqxYcVcwjmnAAm9gjq3nAEWwjhRQAA7gABDQjgUAAb51iGBghZAHBnsgc3iWf6QWjRXwB8zIjJHAfzc3hss3jZoXg3EAABdQEkXQhjt4a9anehgnAq3IBkzHAuXYfWxAhLS4awfwju6IYu+nA4fIBIvoiI8oiQCAZ6YGk5yIh3RYAQqAedf/tnn/h3NkGAc09wAAUAAkUQZt4AAmlm7m5oC3lm4Yp3oiEAUsYI5s8JHo+AZRcJVQeQCgZ4iHOAQv8JWD4IQ64IQ3UIJYiIw1V3kPSIdh2IU214UsuJA++ZMPQAAUMBI60Aant5RKWYcDcJF1GJUfOYFvwAaWYAmAYAlOcJVXcAAFsJVMEJmKUAaOcAEQ4I4T5wCCQAQuBwZAYJTFV3k5d3kVIALMKJA2yYIqCJfLZ20BN5cGAAEjEZFu+IPlZpGqdwUscJFzyAKDOYFswAKWwHeHGQW6KQLZBo+C4IRlAARl8Jw6YHUUEIU64AgxkGv9WHmYt4wC6QcD6QcJkAA3/3mQqUmGpDZqMZmNI8GNFIduGCcBdQiLqImVfCec5wiV3XeYLHCVIkAAlxmPZfACREAElfl+TDAEivCVL1AGglAAxZdzxpd2CtCMFeCdA5l85GmTEFpqPWkABOAIIUGUhIZ96LaWNFmHUeAE94mVWOkEU6CYw3kFFVAAkWmPN0AEG+iOBPCO9Jh7X7kBBKCFpSahE/qMN8mCybeCmSieYpB/1iYGdOmfIWqUh5Z954aH8CkCUUmHUZABUTCYLHqV3ZeflmCcdhmWTHCjN3ADVaCIzYkGOkoAcuoABAChmWd5ShqemtiCR4p2y8iMATCaaVdqQCmUGFEEOlhu4ygCWf9ah3X4BuM4jvg5gfu5mG+QmIhplVHwByZGABewiGDApoioB6QaqlUgCBBQZ803pGl5bV04kBp6dgm5pJoYkzrpk8loAIZqEUzQCB1QpQNAh8JKh/DZpVFgmk8ZBcNpCYaZohmAmIepmFfpmPToCDi6hMqFeGWwiI24oBTwknemkwYJlysohje5iczIgoUAnpsYrgoZmpS3qxVRBG1wd1e6qMNaocwoAn5An8OpqcoarYCwmCIAAIPwAsK4pp55AQUgpztaABcQlo5AAXcmq3GwiQqgiQXJggFgk5oHlwmwrppIhiuYAAGwkJunnhfhq3dXbmkQqbqJh8zoBxbqr///epVT4ASGcJhTYAheegA1GKBScI/EhrCK4AiCwLB1dnpL8KRjyIzhOYaa17EtGAATapOFkLUm65MfGwAnq6RicGIYUa+pmHQvO4sfeaxP6aVX6QROEK1WmQFuOwVTAAiAwAhsGwWIZpdUoAeHIAWGiIildQOKMAipegCRwKormJoYu4Ilq6fhyYxrMLneiXZisKRFqgDOhxE4YHrYZ4foGKN16AcZULop+rbE6QSlS7cDq7NO8AF+EAkOgAaLoANgQFpU0KCPiWyHeAMvoFsEAJNKiqTjyYViELkU2oxau7VPKp4cq6EFdhE6YAKJygI06ZtjOo4V4KxXKbeY2n0Z/zAHdDu+4xsFCnABLzBagJi7lymnBeYA8zidL1mNU+u1VjuhXRiyNFsBS+oHquudCVBzzZixzlgBe3sRiFqbuhaVVxAFxKmpIiC3pUu6b3uYiekEAiAAjyAAc7DBdJsBClAJvPu7LzAEgvCVilAFjoAGdGYAf/B9oNgJl2u/9+uM4UmzNKunOhsFa2CyN5kAa1ABWVsIkZtn8joRiNqe1ruougkI9/mUbhsFH4DBPVvBiDkFj0C3GTy+H6AABYYD0zkEQ0ABvXu7poqqANCJpqYAnWC19ouJUZuJ/eqlfsCvbpsBPdyaa5ABV9DDIZsAePaQFrECLWulAxAF3/e2Kv/aoppqxSqKmIk5vgJQt1MwB36gq7a3AQVwX+8Ij2gAZIoQmWVQAABgrnEpw6hMq5GLlX7QwIagumvgB8unAK2cBqbpBz0cCaQmmxZBARPnskxnh7Q4po2cATnrtof5yjtrt4CQwQJgCMecAX4AAAHquyQ3chBApy/5vgVAyj+4iW58sp3QxibrtXpKwVHgv68szbJ8vAkwjhKwv8tnxCs7ceaWBhr5fbNot5Zgji6Kxcfcs5agzICABc2MBQiN0BwcBQBAAWXglT/mu5MJBIvQwi8MfjfntW2MAm1szuasp2swBz6bAQKABa/cw1Ybsj18BRYakwDAyxXRBoR2z+b/iM8W7MSK+QZuawjQPAXG/Mqsi9AFDc2AwNM+i5FBCQE1uAGR+ZVr+gIqjAYO8In028YdDbnhScS4LM1zAAcDi8f3S8R/zKTpCdMUgQNuaG7GKcyQ/K87bbdY4Lb/TMlTUNIFbdB2y9NTULDzaJmaLKfzCIzPSbHhOs6XO872m9VZjcuTuwZ2bQhrQMQBINYfUAhwnABNampHvBB5gNYTab3ZlwbR+q83bbeLGQUvOgUGjdcAfcyvbL40+qO9qLQL2KlGuQQJ2bUandh6WghrkM4p2gACUNTpPJBAXAgBAAlZWwFkqKsWoQOe/Zd1fM8D/a8f6QSAULcDi7evnN2r/23SCE23PA0IGdCfg4Cgk7amk4mqDQsA2ScCUjvOmNgJkEDDkMvYdV3SAkCwV7CqF5sAkNDG/3dn2lgRKxDdTXdrA9B9qEuc/GwIBo3a2W23dZvQ4V3XIj0FsXti7WdyCVrCQ8AEvwUBpUy//ycGiM3bCpC1k0vSk3zUnOoAjdAIeimQtbqQQTnICA7P3ye30WoIzKzacGDQPovdllDhk6zQDfAIczDBkUAAj4l4DfuwEGBfz7kB4Nqkl4uJyX3V/OuMNNulQ44FlnxiRZAFyXMCnr2JMZhngkwRWRDd90mmcIuYQA7hWDDkPVu3R17XcK3Bwv3M6WwAgnCI+UVyDf/rwtlWZ/HtuHxqv5BgskD8AXOwBhg85k7wBwTQBisQPHI3dEZZjab20hbhBtE9i7O4rMt6qUdu4XBgCM/8ys/MzOH9CLaOBZN8yRewrVlXBmCwoIOABqmaxleA2ePcCY/+0UvqtWZA6SQNB48w5E6gcbixMiEwAi1gXUVABhHq3BVh6jOdfQJrCN2X2kUN5AidCXAw3CbNzHftzFtc11PQxf7pfkAm4jX6W9+KjfVLqymtp2EQBpTe1XBQ8IcpARjga56gb5JgB/TVAm5AyjG52Qpx4IS2BLGYn4kJ1wN713ed51ig2t5N6868wZM8B5bsxfALp3QKvxeQdVYXvNX/KMOZSMMogAB6GgDNHtJwkAmZgNBOUIETYGMt4PBGrwNZoJf0XBFJP6ISINrQ6t14PeHYndAFnbMlbdKqHfKVvMFzIAAfUAGa2YvZdQF1NpGcegCmOYbyzeU0PNkhWwgfYMwFrwZe7QTp1gFELwR2cDZmU11Z0Ah1RvEJAe4A4LKqu/F5ngnuLtR5PuTZDesZPOR6Trcoj/IfkAAEkHXbFaC6xd659rLMjeIca9XHXt9LOsTRbvdwMAVBDACNoDZGP/sl4GJZ4AMOEAMWEeduWG5WCeTZXfBeXdQIPeYFH96TnMGP8PjQ7swNgPIbDr+9/pyirANSba4o/sbhTN/k/5wAYWAGHdzz0P4BYSAG6ggsfW8HM5AHDs9eQfcEM86rEmluV5ABeL78WPDzd023WAAQj7BkglPwkQCEWLAULCgAC8I5U6L4MeCgAAUCAAAQKACBAho0DiJVSNDJZACUATqlZFnoQwYBDB9+CPDAQZEQLezstFPCjiRJJUpIelKkjSmkSZUuNVUm4wEJA94AUrhQJlU4DqsWxEJ1ikCrXL/OEfDhA0UIaCBsgFBA458BAyT8uVJBgRgxJlcGSJAApd4AYcwUEvCIK5YGNCv6eAKUp1ALkCWp8HGU6WVTLwRpPCDijSVDhgBp5Ur14RSFMhemDsvwq4A5ZhVcpCBIB/+TMoM2XHCroK7dvHsRBO4EySQCBILNNDDMVYAZBQSKtHBsZ8bOEjOElmixwkQjzEylDNlsIJKIDE7UG0pN0HTVrQSxTElzRTRDho8eNWgQu1B0CATZYJBByjCwDEEKMMAuwJBLbriUhlPuAzUyqRCORz4QQ7onqONpJyF8GuoJ7ywLL6lRhtgAAAOWSMMSJ2Dc6iqqBADkxtPeAMAEBw4YAEcMD4ItNjPCMKAjjDRywKKOCjigApTEUEkl5P7qRIYHzViuoEwyyRCBOBxoZIUWhBCCJ8ckQYQo7xw4EUUmdIjBgD9etMQSIBnqA447LXkIkDsHOMAEHHwwtAMf2Yv/Sb8pYvsgjAAIYIuCAgrI6A/PYnSigk7EQOGkThxU6UrktOQPP/6MdIAx6s78EChEWqCMxzdNuUGHItw6II0bvUqNyz0BDXTQDnxQAQooNAjhhAlM2BUrNR5p1CxICYAgQEEMdEQQ3gCgC8pOTYIksDDCQOC45ExtgKCCEksAgEayoE6SD3sSShIoVugAAwJqLcMBAHzkdauuqsqkjz4ycYIFeFd4AhELSinlCxgu0YADT5odgD2DGMng0UJU4miD2go0UDcH/gggL7w+7aTccllSbrkG+oi2rOgaUcFDScwUgl6hEBlhAgwAgOBNIXAAIC48u+KSK/z2TMMEFb74/6IUSrA2AoaKNwkBYxMk8LOhKT4uMgExKr0gI40IYBIAEUYN7lOYIQ0AuQkf6bKhDCIhYMxjgRI8qBIQgeIEZwG44M1GAJAAqjTSmAorOA5mtyAWOoBCYqwnprhiEhgIwZMOosJqIUA+Lvdd3tCwNGAJJMfCkChW7vRTTxEwy4yUyjXjg+YufCQDEQAoNgQGoIAVEeZjPQHRAxxg4sQy2jDhemfTGCCD9xbK5EZL0ujgkkAoMWJrF9K/5BISSNiEAwww+FE1AaYNI4Ej10JDEP5dJ6AzcLGsEyigAQK0NJxQhcEs+nkahtZQAeNNgAMh0MAIoLAmC1gAESHY1wH8Vv+GE2WhCI1oAw5MELABXCEDoumVJTjTgRGUYmtKYEAKGHDDLnSBAcpqVuyw0BwMwcYsZknAyBywFkEQaAMKisNKWPaAvBgQOX4xoFnmwCV2xcYPEeQAB3iggS6QAFlQUAHRAmYAABQAhJhxAwkdED/sPeVFaZAAAABmgiwwzwUM2IQG/EjBHI5ABSvQl4+sQpBHAMIJc3DUFjsSsANsxAEZEYEfzIUCTGaSBmZIzv0U+IErVo4hakhMIYznCS/yIAV+7IIgiXaAAyxhCZGw4xqXUoZGmKBoAMABDiDQS4D5SCO//A6Z1nfDGvpRAwwInQYGiYNnhUVajHzU/ThCKYD/OY4FhqifX1ailwEW0IDlcskcGhATUaqBlNDhZRd58M53pmB0pZOABEgSiT+kcRBM2cNTJPAdH6xghB3EgAO+04HvPOEJF4TCDVepgSeMgAQjeMIzo+maaX1AS0WkDRo2QDIIEGBBfYFUuEyCgnRRyyyFGciegviBCmCgA6g8AQdOcFMeMGtfcamkH/zwOAfsUymNyMjjcPDRFTSig9eTKQ460AEyjQBiOlymMxWKLEH6wARS+RUcfihEK3IkpNf8aEgVkABzBcBlJ/ndEK3IwMotKjExnWkX7frOEIRgBRiI3RX8MAfaXcEAR1NKDJ7igA0UYQU+2NeOdHmADvSy/wgqaAwiLqHDHfqRsk+4xAhCoNUfhWUKEIkNI+cgVpFG0o4By4AfqumyT91NS25tQH4wFC396KgDE/AEKlOpgYYSLSoSKEQhMnBcwaJBKRcgAwAwUAToFmECT32q/A5QqICuAFk7tGFmNZs8zz4vDa3xqkKk9YEpOOGaFGDL/zKwmtE+Sq0sk1IAzDCH+zIyJlYxzEG6IgEMeGACNehBDyaogRR4wgM+GoBd+tKXDKQBABRIiiJCgoMi/NKpTz1hXHg5Qhw4LAQpIDGJEWxiElxCdKAdCH686lUhTSGNFPAIjQsAsApwcz8LOBcmw2lARxUGnQyxEMLgAIj4eYALE/+YgCpr6gH5vSENfrCLAqzshwgjNimCIAMJCXA9DjN4AIQyIaF4G89VlniZXbjEIBuBgfFezsUIkVYaIRAwJVUKABwjJX8WoKU/82c/5mQpHNSAMIRtQdGEAMQAksxbT3AByvPDwhoCoIAAFMIPV7hCVAqw3DfjGXYD4FUaZFq0A8hUgvBMQTyXeUMNLLYD81Oni+ejHyfYeUkB+0MkRZAadaqzD/p5RLDV4GILHawPit6CFxbdByzIJX5i9hNBDLGGkPlhDRm4QuSMlhQ3tIEzsIwLqQ0hYY142AQd8GKJ46lKZQ7SBLwydK3LS2w4qPciAyIZwK6wmnrbDNEJO/b/KLu0J4QRotleYLizEZYJ1kQ7LoDgiiGKq20nEK8CIvg0UoqgNFj+QeR/WIJ90hDJ2GkPAxI8AatLvMoRuPIA1TZ2fhiY64tc4CM2/h/F1UkKhAUb4YhmVx8IgWiFN7zhW4B4V8IHYNOxJgOaXsMafFoBAxBAqEUI5hLqKXIRXMESghKYynfbxZavMq8QZd8J5EdxmwW7IPbOdxp1BUtYemshwh54348+8L8vmxBKZzjTsWCJNzwu1XEZL1cykIBtZ8DqFYgDADaAFDcEU1AjpwsgTi6wN7wh1Us28LtXyYAR8ICvllB2zV0MBxl3ZJIBS4Mhqq3svh+67w8/eMIH/0/4LRwdC2+QS6r5OoCqOCFkmX7gyh5AgCogRRDBVPwBRF5qH30m9I4WcA9U6fIUwE9suA+63PET+5IJApuO897u3Y/oQwc/0YR3thcIAXHtwVJ+vFKkH9AGxUJIgLsgAOVCCkdoLrwLuZKLMAl4AzYIPTago5VDJR5wJx7oAaL5kUwghMAzP/x4iBnbAAGhABsDAKxAGKArv/c7NA40uoWjv79rNKj7EaqogOcjg0p4ACsTgwdYBKUAghiApOrDlPqIndCDQEfbLd/yhBqYgEl7AxfkwKOrt2MruIKIPbfQCC0EgPHCAhZswcC7PzjYPYVjthesP2cLvuGLnIGZj/8DIIBKqARLiYM46EGm4DoMwDvFq5O4OMI+kcCnYjInlB/v4cDga0GXMjQXi72Qgh2xg7uDM8RDJAUpPDpLrEQzpL+lg7au8qrikcM5NIBKYCNdgiS8E7nYecDQQzxHk6mngrI0iMRKlMLycz302x+2uLH/UQhlIwVKvMSj0z2iMzpJ1MRNTBiX6godIQBmNAAxUJzwyIIsTMC5qBNVnBzii5/4acBIJAVmo0U5MzY1kDGPqLFrqZQDgDvAk8ItMLqB671KNEbCk8IuUQgBSAMRiAQFoMM9qJVuwTO8iwsWEJQrkDLVigpLqJyDUacyXLRgrLWaEwA7E0K8SwMu0T3/MFQ0d0yY3ku44DvDM1w6RdubrgAEbAOFOCAAH6wVUwACCCADtsm7+BEpWYokrrIcRFKDpFu4wJs7uSNHCJi9P5AA+8CCuDO2Q1S4wOtISVQ04DPDFzy6LoE4J1gDtImDjmPJpCgCblmSNiih1CK3asMiCRMAYmw2pSQ4cYS9GWMvG5ukAxAIn6REh9xIv+sD+0s6pVu0dtxJqZSPqkyAytNKpAk3jTAAegO2gigeQJBFWvTJn7SWtlgSygQY1JgCQ+sDSiTGMHRHS3TBTCw8ZuPMpZwPyaO8fiHMN8kDgJGA7iEyXjTEMuzJemMIfXMLCWABVpSdF7OZX9TIhPM9/6UkiEwIyacMPI70qtRRgAfIStXEDB1wltAymKnEvVlswSqsuSmQTD3jNRFwAvzgO3cUxr87RCyIkYHYSRg8RHeUD0XKAAUAgOd8EzeQzl5poIJARqTLPbqDPWuhMWxakv9xgqowDPIkRgSVSobAk2ULSfkjzfsrGECQAL+ZzxDiqzYUJZ+cyrvUzJo7NvW6lmyCinqKgl9hIIasRNLkyL2Bg2L0AmLk0IFTzuGTgIqw0PB4Jf4DNqGbyoIzNqP70Hz7z6CUAPKyLWFDRAjlQGVrSg7EArwTAA6dShp9g0ggAxwNjw7a0V+xwtcLNlo0vzSwiKDkQoV4nIQ0L7hSg/9fTDSk68izlL8oWBxTcAADMIA1QKeucII0+AOOyFLMYKwowxPKsbWwCDag68CCG9NKaUA8MTUMeIOmewTTKra/o0XkBEa7NAQcWAoIWJBe24g/BdRA1aUBuBOK+0CosUKhm02CCLYrOKIC+APT0BEuzI8hMkv3IwWMfL8ndRNSzVKtEpimgY8Xmzv8KDLZ7JJaiwKOKIBfq5w3KBqLRKQhegSpfD9fNTqIS81gtdA2yMNTBQTRmALTMI3Xy88ydLaaC9ECqID3wgJ0Qz6GKIsrWsjA80WBQ87WQxgskM9vtdA3i50+6RWDPdLMJEaGe0g4GNNruZSTo71UhYPEMMv/YIS/uCu/+7sc/kiMAyjAgCXMGVCaPsQTQv2hFzvSgVu4doTVI7qAtmBGZtSIxsOQK+I9iDzK/kSIBliAPysEA6DTkNXK6HQc/usVY+1EdVXPllWnWL2Aj/ooGjtHANiKR0hBZAyS/UiMjhUA/uDZIjkXrBxawqzP7DvZ7jnSCkG64HO2YISDWPUI/ukfNKCACwCAqXiIYlPIgiCL3TGLBfiAsvjaxNCo4dgQstXKDTi+0EPagpmRZOU7vWzZTPCDIyoZJSIZCnCAKxgtr/2Aji0IQzCtIfodn/UzsujZmCEAQUjcWlGaqPgMkz1ZhShUhRRPv9yTCqgEuR2EudXc/1l9g9E1gz+jmSAZoglpAOJtK2oqLvwRWte9jCwAGFJD1YOtijwpuvg7xGdTgwq43CTyXQGp2wKQgIwzXORYAOZgDiIRDLNQ3tmCDbD6D8KK3svIvKWZHJPFkYgjMgTlzGbTSDWwXAi4gLkdXxKcVUuwJAcxIPXts541lfd933NKjMD9gOgAWftVikGg3qMFlOs9Vsvxu498NsuFWRH0XY9K4D94vLuhAXFaDnU6gwh+X69d37LgpJ8NgIpo3Q1WiiKAndrDEapA107k0M4cPI28AgKA2f0RkA2oWxoDAD9QgAEiIALy2TOIlo4FXebIigrmpFIpIEiIjh9WCjQImP8FJNCS5N+wiERla1IOdLg+YOJreeIoluI7EwErHqABKpUG2GIuZo7mOAiNMgNIgAQEIGNIKIRIANYzLgKaLDkWcmPvQWJaRDTu3QKgEwEHcGL+iWISRIO7tYu70STk4A8t4A+INIjnMCBFTmRIQGQzqADo3eC1AQCvG1fH5UVZFM4lvT81GFPeMGAo3rm1oUM/XmRMQgD1PZVjzY8cliIEUOTlUIBRPGNTuFtdrqfIydvyAhaO9DswTLguGYBPLgBjFhAoZq44wAtPuWKUcmZBC2cNLYtDDttSEYNsPuMgtL6h/OZCLZiD+bsu+cxLNTI48GTeCJCo7R/euFO9yCT/AqKBZwaLZN2TwkgMLSmEPytjb/1ht6ATH/G6pmEIz0O+DdxIFQ265PyDdF5nEdyAReCNB3iAk5LnLK5nRMKihOEbIuGkTgDYM94DFoGluShW7H2RlsLUlr6QgoDphv7d8eUNAniAd6ZoGIbhZ64tihW0vTEMiDBckwjpDQ7CcaPB1TDW6izoDrWZgnhk3igAQViERZhbUg4pZ/QULKYBTQpcAfgPMVgD0GWgsUbfRH4AbTaF5tKIx+EVbmpj76mcdey71ju26GkLuuafuxYQmFUQvDgpLEYBGSigdykAUgaABKAzIcE2xIYExT5jRWhsBuMVtD3iOGbRn5Yzqa6U/7m1a7u+gG5pouA4KRm4kgCwPB1ogSxog13JgDlYg+gm7ELgJBqABBk4kjNOAtouWULFisupEJy0EIX86afpbQgQX+DOa0txxishbQI6l06YjQ0QsVl7A+h2K8DVEuO40R/m7nRjGicI4WSNY1FqUSKDgwNQZ3UeBCAAgiRIguCeTCjKi9IubRpYmSOhgBV4HvkxhI9R3r/9gMAdF2w+40VoLgOICjuxXtZQyN7TUHYhTnZZ8GIeBEdwhAgPbt6ohKsubhlwGR50GxzgK+JaDhLvWI7+nQCAhA1xhB9OcRYZyitYj++Oj7YmbyrNT/k4gErgjUXI8RyPcFKe6x/vBJW/1ovjFoM7FQMFkAEZmOWOpWGu5egoGVX7XYSMiINISI8YAeHHPaTq1FCbOTiSjB6YFQRHKIMxB4K6VotKuWpw6hQxgHMgr2Z6VvILNlzjeIB+jt4UF6k4IMJu6zb1qD0nQAhDeA291VutFbIrSCOPKgMmUIQqqAJG35ZFYO+rvml4huebrvAGcRDjSAkrfj6ts9CAAAAh+QQJCABNACwuABAAdgCyAAAI/wCbCBxIsKDBgwgTFryFq+G+fQojSpxIsaLFiwIbUqIkqmNHjpSkYRxJsqTJgZTo0BG1siOdT5+QIPlkxIgoIydz6tzZhONKIzSNIAmVY4dRozlyqINBiafTpxKlcRSFJGkodUl31AiytYbXGjt4wCgFtaxZXCmFWpVJVGuQIBO+au3B4wgMnGbz6hRKNGkOtuqMevXkdYInuhx48Ehh94vexyMpjSl69CjYrzUm9PA0wbAnTxxC81BnRCTk0xMpGfG7g+vbIFy4cO08wYMH2hNCi04BA7XvhAxffsqxVXZsD1w6c57AxXby3KIV87DwuzrBfSmrtm5uuzvyzse75//+nJgHhyNkrf++pbpvDe7djXU/zr25YeWh6aJS/xvXy7bveSdgbM09R9tynfXAQQiS8HcaWi8hERhsAnpX4HPPLdfBgSc06OBj+7AUU1EUVkigcp8ZxsFnnMXWGQctfPiYVP8VlRluB4J2QggaPPEEAyMEqcEJnHWQHAdPyKgXWkANlYN0ioUQwgk7qjACKiV8oWUdEUTgiwUjrNBibh4qWRZ2EY6hhBIuuHAJKnDC+eYXXdZZSil1lvAEkcoJYeZZLMmkJgxtomLBoV9Y8IUvWvriKJ3MRFDKJL5IEgKCSf75lBylxBTKGJfAgMqbhqZigaOoelknM5OAMEmkehL/+Vkrmj4ljRGTqaMEqZf0eqiiX2T5RR10dskqCCB0Ceals9bqFC4wFKWOC3L2SuqiWmY7rLHIgsAMM75cEsKKnqzgLE/SKJFUCtSOai2ciCr6aJeuduttBBYM+dkKNpyrkzQpPHkEKqm4+yappzbqKLetdhtBKiMQycEKdfibEyY8hHUEtda6+SYMizKq7bf2IvvwnqGtMIPFJ4HAgGIpWNurx4YCq+0XzJR8L8QnhEYryyaBgEoKdXl8CQNIM0ACwcCmYqqxOXcbKZihnfAz0CRZMYMGRffKA5W7MXCJqQVfsjScqWTpSx11lNDCChx0iLVJNoyQQgpdHK1Yz+Yp/ya2oagwwLViGlxJcLCSwK3CynOTZIMkDLjpQtJ5H61BChpccuqXJDDQRc0WEJx2KivI3ThJrDCDSptduNB50hpcHrMFdQbuuaEilzBD4icwfvpIIFgws+Dmxc2D7F2AHGngill5ONuJr8DM76h7OSrSm4SgggpPjJA0yBEw8wUqS6ciSQl1fFtHKiE8IQf1GNkAgjTSlDIqCSQEOcKPSJNAe/jiOxTU7lUCFbSgDqyAX0Vs8C1MOFB4vdLfj7pAAs35AoDEolP6cvat8YWvYgpMDR1K4UBMhO4Sk+se/rpAwf9xcFFQm0SXGMUqX4RwIqWgwxekgQtpjMoFFHwdC//xd6rwvYpeyPpWnRYWgRtKRDVGwIQ0MEG+IQZxiP7zxbe2eKxkcclLX9KiEyVSkwjggookYKEVu8CAFIgNUXWCGpe45CjagWCMEclhKegnPPxVMI0M2ERdlJbFOBpyidPDY0RUI8Uv9GqFgAyk2GBwQUMqMY7HUmREQAADKZZCZhRU49KKyMFVRapOX3CVJiPCjFSUoocw6BgQK4g7AHrrlOHLJb36tUqF+OKV0oBg64BIwZpdsJSSsiQIEtjLiODiFqyoww9doATPUVBzh0IVDPHUJRA2kyI2mMEPlXCEu6VgE4TE3ReeZiy2fdMi4kwjG5M2yc1dMFGVrMMM7vj/ToqIc5hKYOPSYCAvLcrQUWybwQwS2U+JiPNowxwmQbVkrC5lS6G+a6hCpFAC71VOcvBKlUWDpVApaFQiIFifH2VWMzqFLFtZKgEvT5qQlKbCbGJr05tslq3c6W6mND2IOFfXhdgJLm+puNmiSoA+fQI1qAUpARvHUrDA7fRXjGIqU4dVBxC8D6oGmUHnvoCLEnQRBDYIp1bXyrZUMhOsA5FDHToHshbM4AVUyGteXyAESRBsq4uywDLfCldWfKFzn2tBFuYxjw2gYR5lGIQQWpA29EWKbSA4xB3gKpB6sMIXr0PFChi7gQ1Q4LHzOF9T2cYlZsxAs4fgrGd9oUYL/7RitPNA7SAGkYcsbRBqrz2EIogAVitY4bOXyJsFVLCC0jZ2HoNggkKLBcAuzcAGrHDEIl4QVBuMwgrBTCMqvqACxz53EGWQAgi4+sU5XvcQjiDDBZigUStIQRJf4BT53tjc0jq3DFSYgamKCDVJ2OAOjsgFAQpA32/WwwovyIMQSoAL1aURZItFLXTLMARJJJV2X4yAJPJgg0MAgQwAAEAHViCEjI7RBlLIQwtmTGEQQI4Bv1zsBhjbWEe8QBKSUFSIfYGKGVjhByfORYpNgIMiZGEIeLxvC56wPQ1YYB+PU8EmLriCFaBhxxvY7Y+DLK9FoaIFJf5BEsiQCyWnGP8AJlhxK8p0unBKIkylqxqFWSEJFYQgqc398o7RG2EP9xRMBr6DHtYMgAc0+gEGSDEGTFCuFdDZYtHcX+k80YFO56YErEirEFZAsCw49rQUgO4LOmyqRIHpCTNghaL3oOQH2BrSBjgAAHSNgQ6s48ksq0MLpsSBzhgDA3DekCSkwQorjCILM27uab+s6jx4+FckCMEISnwHMMSg1rd+wDEicYADRCLSAMAADhqhAyFQQVPCVsGKJtDpDmCg3JPuQAukYQVFM+HOK5g2tQcxBGsPmAQaUIFM7/ADb6P40bY2gMTNHYljSHzJOPCBDvIgo1GUoBVE6oAJTICBkh9gAAP/OECvRyCNAyt6FIlDAwVm/liCGzx0I1CBJKTwgx/cgQhshritLT7uischDsdIOrnTjYMdWyeakniCmOhtApXf+wASQPkASq4CaUhBs3eQQhZMPfMLUCDMTJgs+TahASGMQg93iPsNgg5pXBug6JGoeNKVfoBmRBoDDliHDlADghm4DW5U37XWMaB1lKs8BNKgQr8VrYOxo7rmZWjFj9gOa57HfdbglrjEK573Zug9EgqowNHNrWsAOCDVerFB21qggpCT/OSNz33KMaACTMxADz7/QTGKoQPoMoEJeJXxj3o0g69/nuGLAPetxz3uZljf9HnPfiRMP25dm2Ad84DK/yTa1gqQc9re95aA+nUvAscbg+XNh/sPxAGEDTTC7GHWgQ40vz8heP75ehB9Qnd3e7d9V2B612d9S6B91icBrkcBg6cTzCBNUhdy9rZrWTcAGdh4LMACbJByHQADLUcFcBd3evACWdAI60ABWVB+PvIEbleCAEhr4YZrcSAGCrAEzSAB2Ld91pd9SWd95aZrDhB+JiEFM9ACt7UinVZyAMCDWKd7bNCBLKB1HWABXkcFYACAilAMZVB5mucjktB8Pvd8P/dtA6h0O6iBFXB6P5h3eKeGB0AAaFASMrZpVIdsKdZ3fZd1H9h4afAGU5gGA9ABdRB5WiiDP3ADjBhhmv83Z80Hds/3A/GVCzUIaccQB80gAiLAg3l3dxUnBqXHfQVocQ4QgReRByvgA3moh1infju4gX/YgYLIBmxAiCZQAnkFBrwIfIpGBIqgCJEFbZLwdr5ohkTwbZdIgKUnAm24d9CId6YnBtSYdI4GARiRB27QBiLniuqXdd+ogVcwAGlQhQPABm/wBquwCoK4da0wAzfAi2Dgi3pABOIQjGVQBnkwClJwjDPoZhIXcQW4fRXAfXpHjdWodHt3d2IgcQ7AXRYxBG1AcozngBuYcn14BVfAAoTIiRypjuz4BmkgARsgBC8Qj72oB2AQj4xIBERwA1LQj2X4fIqAYrg2fcf/IG44qADHoAAEmHQKIIoVx5NJFwdDZ3GRRgEXMQgOgGyvuH4a6IAZeQWESI60yI7rmI4DUAAc5pJEUAVgSQQryYvBqAgwqQeSGHdqVmsBeWsG8ADUqABB2ZBvOZCRUI0EiIlJF2nYWBEv0AgkBwBRiXLgKJV91wwbOYtRkI7rmJVpAABntwEXUACV4AAFMAiMyIviwARVcHwneYyLyGY1+JYGIAY9GQAVMJfHgJBFJ5emSZriRoClaQAFgIoSUQYxsIe4R5iwyIPN0IYVwIkaOQAsAJKAgJWrwALqdwAFUABmB1knuZJJMAiMRQEFAAEbUAW8SAR7QABvGXGvmXQ4/1gB5HmQCRkJqRme1hiND+AAdUgRi+AAT6h7hKmBFPebwSkC48gGTuAEjbkKgBCg7CgBEABZm/kCUhCPRLAIFwABBeAABAAAC3ZaBXAAogeXpimecUme5BmUnZCQChAAcpmT4qahe/cABNCXEkEEbvBwF1mfynkAPZl6FZAMURAF6LgKUeCfABqg/fkGErBgF4AG0SUFisCLjiAOSpqPTDAEQ1AGG1AAokd00IiQqZcAIoqDGSqerrmlH0qUe0kARigRUuAGTfmiWicCQGqhCoCeNZoMGxmILNCfURCgPnqjrbdgOiAFVJCg8wAEQKADZYB8VPACTFAGFwAAF4prpv8ZlzPqmtCokyGaoXGJmki3dwDwnhIxCnuQbuHIm/o5ktxnAOiZDDZ6o1egn07wBv0JCIbACIxQAQSwY6qGllLwAhcQA81ZCQRQCc1pmQCQdz75k7HZqHPJmncHlwGwrG14lwGQAMkgAguYoQRwARSBqym2gWnwh1lXhaY3l6lnqqdao1EwBYYwBa7qBFEgAgSAXscHBodwCHpwA46gCFXgCEDAoBAgnwdwgKh3dz95ohi6pVW6rHJ5bj1Zox0qBgEgcSoaEaOQm4KpdSI5AO13jqLaDOAKracaBTY6Bebqo1cQBbQJAak2BDF5q+Igj7x4A8I4CBCgqMmqkwQrBnD/uZoIiYNcKqJ6F6LiSp6FwJO0SRFM0JQTmwbbinJVyAJRkAEi8K04CK03OrUfawhWOwWMkAHJUAEGQABeewE6gHxlAAGLsAh/mqRfqAMUAABIyZCsabPTp6U4m3TPmqWNKqIJkJoJEJQWVwATwQo6YLQo9wYDMI7E2YE3mgzWJ5cKwLFTO7Uga66RmwwKcJm7NQil9QJl0Jxk4LVv9mYyirOMu3dwa2sMu7dyKaLLiroZ2glymZrPGqJ9OxGjMA8FgAHainLlWI6sGgUFybgJAK1rIK43OgUCALKGgAVTQLkFIA4voAgvMAjrMAiCGoz3yqAFQAAnJwJCa5qq+Z0P/9AJ4cusqRcAqGewAZCzqhu8o2sAD5sQQ1AEZ0qfhzuyTpuejZsMH7AGw/uxkYsFgDAFWiurEHABtIqdBBedN2Co4qADaOCd1pizJAqXFCwGwduhcomlIjqix7CsAVAIe2uwFmettwmY86m7gWiLbHCj/Um5Udu/sAq5kTvDjLAGPum1C1YA1tmcQ0qrjPXAq2m6CamTnbCaAQAJIFy3jVsIq8u3xwDChQDCybAGInoMB/C+CDEPEzmfIkCItyiIVbgKdMq9Fsy/TcsITRsFH8AIkZsB5poBCWAAYFsGjjAIFzAPF9Cg2btrzTCEczmwjdqQQtwJzxq8WNq4Gsy4p/9bAf3rsRnKnBNRBIG5fkirjiDJmE6wtRmcDBngxlPQn04Aq6KctU2bDAZAAc57A+KABkBQBQvMBNRJAQ5KAL8pBh/6oenbqEn3oQybvwkAwhXwyxqcy886xcacAKtpcZVAXBFRBPb2lOQYiI2ZjugaBXsrvFHACE4wwwI8yrCqtQpQrWE2CGgwnchnqMfHBOIwCFJ6l51wy3B5rLxMjasbvFMcxSFMz/ZsCHD8xyjqCBJRBDiAbBdZnNOsjoaQycF8qt7cnwn9qmgMstbctQTgAAV8Ab7anNfZwxTgAHenAB8avnH5mtUYolcavPyLuiD9zlG8BhmwBkyMszZLAED/ENBNuZsUy5hYea7rmp/JMMrFu80CUMOPWwEAsAjopV1JsAd7vGtY13fO2KU2K3q9GgNtsMXnWwHLyr/BfKzLWgj8a6pBG5S2JqYSkQW3R46AqI7HmY6AIAAeKwLiOspTUK6fDLKiXNeyOggvAAYvMA9Jaq+Rhcf7CgAL2KURRwBt0GWtMGNZIMkA4JoKANMg7ZqEDNYvXQjJELxZ+s8S4QYdoHiAmAYHDaDKm7imCqtDXdfcLMqdbMoFMM6LAKj5OKjHR8cX4J0I6ZYA0AYLsgljA2Qp6NGlysgbzLAfzL/8C8epGZRvOQgSsQLPjMKV3KONCQhYoK6PO8WMcLyR/8vGeP3NlNu1G70IvFrRzYlqBcC2OUmN79yQveYJJ8AAf1UCQpCCANCJS5CzUYvSys2+zm0AY5oQK0Byax2IbxCgILkK6KrdUTC8awDebJzXrr3ZlQtd80ABi9CcXjuE1qeBoWjLIh4JcJYb7aNaJSAJbxPaB3CDIfrVCcC/AiAAa8C+eyngEgGYuKu76Ii01h2gU4AFABzKUbzGMywAsDDUNA6r+7u3ECC24/yF1CmZ2XuYcPnehHwMve0DIdAK+0NZWiUJrQCYBNi4AbDcGSAATgCtVYyUGxDQ063WA8CYAhrAxqu8TJsAawzeIOvdAtAATF4IH7C1dBjLO6Z/tv8tDlCqvXdJjVfeCbRZBI0NZB6GNmmj4iuAA4q6moWQ5iDrBJy4t9BoAJqaEPJ7byi84Areo1gAB1iwClewBh/wAdzs57Aq62YQBslQCF1r0RDwwF5rmRu93gfZCTJAA52QAABQAJLeAkBWAk6DCkES7WHi0cdQAYKevFOwBl09xKRu0zuukcW54Mi5CgLg6jo6xWtw5EM94YzwAbmu5wlAh4w1pA/KrwegqqC+0saOxMruAI2wAk/g7E4D7ZQOZGHSBmzLyOc+1AlgBgmgy3uplM08v3NOlZb8n9g9BXAAB+zosYzQAN6NtYD+58b77gkQBgHQrkzgwLtFx9SJBvv/2neNbsuQsKxduw4rEIYz5jQ+T+0roPCREOMzXuOcjYOo15NyLBE6YG9Zh7SEKM3HuY7HGeSurq58brxYq9pK/u4foPLue2obJqiHWgZ4LHFB3AkIIKLL7gYDD+1nFiRA5vOXIHWhvQQVsMb4rPKBPG5vWeoJMdBP/wZRcAWqDqDm3uodz9rgPeMnD6uAHuFrnOsN63omi8PC7qAOYKEYuvZs7wA+MOmX3gJBMioEgwoq4AMmIAEioOdDDcJYqqUIKXEDHvioPuc6vc3KawiroPhwoAZ13d1sPOOwAPndPePwbgZmIKLVarJo8KARCtUuXeO23AkoQAMiagAOUC4G/4TiHjYCfsQAl8J4aZABbPzSwbys/G1r0C0RW0zdYozdcHCc8g8LagAHdf3TxnvuJA8QAqYwGvjBYKEABiAMmodm3qAyOhheKEAgUoY1AcR0QkEjQCQAOHycCKHiyQhJqUqUSJVqxAgNPCZgkJBGABwshtYkSABJzE8xAY49IFCmyVGkSZE2wgBAwoABad68AQQICxZAq6xigdMVi5OBAgTAgjVFACOxaRkZNBMmAYELFC5s2ACxTMR5FBysEWAmAArAnQw4KNKq1YgWrU6iapnSpQYOHQ6kMTQWjqEMCCEF4KxAwVAC85SOPurDxIEBV644caLVKpyqW+GoUQNnyv8UsrCwWBbbVazZBozWREl2wEEBCgSUOzheoAAAJ2ITBEAQANIxAkVWPJHU/cn3Eai6p5Kk4kSHmoBgdcVs8INbhEIHkyZtGgBU1emv4qyKhWxXnKZoALexrtqNK9sEEuiDKA4oAAIIKCjAAQAOeCoNrbDYBY4PEkCgOpBwWMEkxlJB5aWTwiMhBE9MiAqQ2WAzZLcp1ohPDAMMoIC+0UyzMDUWWMjQq/6sqm1DriwDcEk4YBGLrCmiAGADCiDY4KF5qISAgANE0NC2ZMJoK4FmMOiApCcuQaVESVC5ZATzPMFgAK3g2BCnq2CxsbNjANiRx6RwaMrCK95YZYr9+Hv/LUY1sOqKNie5qo02rwCcopkH55pnHokk2uACAGDsaqe2PshAAgA68KSk8EpM5RISzJvgPqvuNFAAjMKID6QNAE2qjUEl0GpIAA1csrZHvUJwUiYtNQ6CCwgAYFrlpG1Gww1hEfMD4ZIpzoQJOOBBAwZIuARWBmS9bxU4uKl0tzXeK6SQBCIhAAhfkbqgKQmE7S/RrJLsaheC7+xqvYNjxAkWZAVwAgAIIXBA2i7fqOwmbrjZBYvbGFnLoApS9eSEcRkwWQMV1G0mjQbWU4Pg3XQSEyEFCBgk36NAdSqNrP7lCisEm7RTY2SZpJTJ9bC4ogA0NGWIyoomw1ZjBMlS/wOWkHHwRFxyGYBThRU86QCAJRSApIGC4RAAMzMaaCCM6o4pAOcmdF45qwyv2nBRBHchxN1Ki6ataADVcIIAaK8cZPEs0YDgAFEp3UWNjLlRIw2ROeBagyc00OCECUyQoBkPF0B7wwzO+uBDGTZL4IBe842hwvTy5grJn5fdxXLCBb+6WTgkcCDCaqUlwAQCJJiaEDW24GYL6LnB4gBVexA3Bc9VCIGDmSSogDMxzfjgrLXC6ASSTjZSoIKiZAcgEgnewFA2gm3L/dGMj1Z40t8Lr83BAlxgYgc4QKFWkShuEOJvlYPeFggxAHBZjwcpYADKwDYB9HwvAGEIQCHM8P/BeU0HEiMMgAJwFDseuaFCUlmFa26XsV3A6Gf4453CjqU/ZGEBYlba1AYcR6Fm1GqBhChYA70wvQ5MQIKe89z2JPO9ngSAJ6aDRXA+wBk+RQICgNKB6NJTJKBtaBcC4FjQ/Pa3oyUtYXhyWaOeRQE4XqkhFDkAtgimsb8RYgtecCAgMOABLiiRByFAWWSMMQAJ8IQnnEmA+GABs8xo5BgGKIBRSDOP07woNlu5nZ2uchOF3XFwOHkUstbTxtpcYXgQqNABpjUtE1zBjmfMGCG8cEsvEMKPgAwXyU7gCS7MKQ0dpNciR8iX+gnARj8BgCPo0wF+QeUAJrgPzwxUv0T/AchvCZwUKvlXyv89CAITqpCQDIEoDSVQjw5UIPRwubEBYOCPXOiAMeQZlTQko5gJgM8H15A6J3lMmZgiTRaYA00zrYBF6OHZwPa2LAAl0HmM+mbRbHUAaDkkSxKiUPzSWUvnSRR6erylA7EiP6pUZRWZiQ8kPhS+D6xBfMlYwz9x1YwtJuUFbmhEI9rgiRXARHMzodPUYJPN2ajTXaOcDQ6bigVMQQsC66AAGtAAxwJAbmgOdN46+bjAjEXvTkjCDD8RAAkZ0KAtHmxbA2IqFoxM4Q0HEA1SRpEFN2inBW7aRBdIcJ45AaJgGwsa/hwIuKMNTrFHUyWEaOdKDFBT/wIwUqceFdjOwypMQ1jxWV/ghj4anNU6kGibkxClzAww4goAqOshypDX7YyAAZeAwRdgEAKZACANWEggYbtiuabqEbiJXSyz4BBVCT0HNWzI22/XydUG/s0rU8CQoXhWFcwUAm4fQoAZREtatD1JDbhaQxqWkNOdtqERPhjRJUph2y5sQgMrkMwqdmewpg7ueWhk1igX25WoooEuVXKAZF2Y1JFeNnpdcYIICIiaFrbQCRjRbiM/aB3wtQ1POMlABRIQsqM4ohExEEkrfIEJ255LTU8ogou+tKRl0Ua4lSplUwsHhwGsckLMcQAOcCCZqUThA7BQp/Pc6TwkOaEZBP8cAFVWcQBp5agCNHVLAGTQCepoGDZwLYQCDEAANIChDINwgxskwQwUw0BNFmBzC1bQBt1+qbD4E667gvbfpza2IhWCygBc2WTitK3I3MhlSYmIExE0oxkScAJWjOMcBxigAiEk4ZUL8YGuAAKuGTEAGRbRhBfkQQh1kEYpLKAmVLCZzZIYwQpEhy3gJfV5wJXUfxlWGxEMz6pNU+4AmGuIZDSScpV1Z0mB2+EKiGC3WJgrAJhjEXqN8MoykCKmcTLhDCQAO2g4ihRGYQNWlAIVJEg1m2HAZpe8GQBvSFuNkzrjRNmaUjm20uIGsYFxUmgy8woDkYtsyz1+VWMZ8Fb/MgxhFUAMYFoTO8YIIaGZTmDZDPVzQhQ6DBekWMEGNviCm1JhgTWRW9WoUAFTlEew4sp4jxPNb8pTObzkTgh5zIklwddA5Od61dC7uE0aJkxGLKziDRKIxDHM5tKzou98YbATHCacDAPEIOM2YIYkGOCCNV3CZCJnMyqecALRpcFOkyvuc4fbcnDCIdcX2BLtpILI+OkkAR/wWwNXjktcIpmU/GF2RjaDdGm3zgyPxAJGFCD1jM/A6uRyQQU1MAI1kccC6R7bAcleXEJHr2i5OWV+G1tVXlOMTqvI7sQtG3C8492B9Ttq4QsB+BG+XtpmYEROgk0ApbBiBk9gQAp8/489c6G6JSUguaB2S3beDbuWwq2NWQTQgOffmjaHu4BDBuGIhnB03RmIQiHWAId2KtiIqmc9KRvwQe+2xeGcEXxNK2AAbitlBtrjwQmwVy5YkXv4kmiFD+aErcXinefagkZhhPMTH0aQvstZpXFyDhN4wKagkyhIgEJoAGK7LJJKvYnamK5wK/T7INeRIkail0ioBNKYP5KhIJNhgC54vEsYPvKgr8m6PMXKn5X7GyxgBO/qLkyjnNpggeZ4padgAzaYihaykUbaBbuLngzUQI0pluczg3lBv3kppkmrmT9RilFoha75vU2gIDXpDpZIhRXAgRm8Ex+sQT5yIA7xLv8UQIB+s7E0GB6KyDcKmZb4AQQnCJN+u8DTS72vOjQ8eT7o85hu4Ql6UYBImBv6EIIWYIAv5AFJ1AAVYwwLKAELUIEJOEOKoo38WSdCsA0dhEMzyC84mENoKQCqqpICwIEJEZY06JAwMB3KCT+JUr0jA5wNU5u1wYyd4InPqARnoo8ZaIFNmCBJpCC/MpePmzwVQA92mRyU0y91MrYmMYgwGLJSQsXneCUAkKdpoZM0sBGkM508AsXT+5sbJCJjuQqr0IkPoJcSMoALAJRReIIQSAFJnKAVnK1mTIUQgMY7Yr0aJCnoGS+ZCgNQopQ0QByK0LcBYAEjRBS5C4DQQoD/BaicPNqCXUgDYdmdlTusUFSWnMCIPRGDB9gDX+E/hcKt39NHSmzGEZCTAZia/KFGI7sl5tkN92i5z/MhjpKWCnmD3dDBnviQBfBEjZGekMCBOqo7dmo3r8AVjEgAlEQ8X8mDLFgBhdpHcbk6NbmEgMSAWhmsGgorI5qotdAwxco1O+Qx58ABCiG9eNwujKxBbpAAH+uAAbCTgCMimDEQA2GNDos6upECcSiGrdQcCVJGraNJwVKgO9IYJ2A3g8w7nlsLb3JLB/gRRFo0PFwFZSoE7nIkhNEN6jkNDbElPgq63AEarDAEJ6gZRqSbF9CBLDgBDpCgCUqBLugCDjgk//u6IwXKmOCRgDMyIuGChQ9omWGjjbXLN2mRgNVAp2vzoJdqTrdxG1hIgybjLVDUIUgDAAOQCtkUAQAggNqkmyYYhdfyBE/gzRQ4ghSoAWMQlqHBwL/ZhdUgmHW6xVAUgA9QSuh0ALYTylaiTqq4CkNYHQR4wzBogAX4ILcSgDMiKSJaBRNIClCZhzQwDvYkjWJoBByYgAmogR6wnh4IpqhYzeXTT1vCrCXkhrEgUDXgzMkQOkO5nTtRJrR6w+4KnwUwHf/MwBjCgBANUUeIgeMJpCAIAi6wJzqxE8l8HnaCLq7KJXW8peRLoMpxy+TxzhUau/phTgSggY7oLu8aUv8qIs7ixALcS1L2jIFckCcTsCfU4JnJxEB2WsMECz9DA5zdgSHh2ZKnMA4XsQqoEJXz+xAauEg1pVDufL5dcJI4lVOc2QMywMOiCqOB1Mi7M7Ti3MiSqg082pBCJYBCkQBoGoCq+DOrENAzfdSOGNIPmtAPCgO4+aBkuFRMzZdo2RnBuiaNKZjlg65zFMli84LK8dJdWDtVXQVWDaw0kKfJ4slZDa3QytUd7K6zQgB6AYBfpRs3eA46wa7cQbmlvMCuSrBQdSDl0xgReJBIawYAOI0Dwhx5Isq+MANtvUhbRT/uCtIEMIC6GldfYSXUgIoDwpPBMtbL8tJkHT8+0kj/y2kGA72AhxTWD32KA5qCD9jBizSDBXAPu/xWM3i/9URYQKEqN3AARrumwWoXi2UesHou1QOr4wqgDQACIFiEGGAOt+MkARUT7prQuiRNR33UBIC6nGJZugGVa206JJkcy5nMZuVT1GPWm8SUCxgEcUjMn10EttuzSJiRtUS/BYhU7DzTbEUAMXhaqPWVMgCVZpgRwfSfLlVKYku94qQNB7kARyiDsHUEn20Ix3mONEidvmBTbvUu63jUWf0QuZlbnCmG2VmCDDCWZlEsY5Uor0K9g9QYB0EDsGUCccA+hriqcSIAETCEBtXOCR1YXXXUb6WBTniAAtABy/WVeaBT/wXIAE5CKhuqnCINuK21HHcBAKYBW3EYsx6iErbrzBkJ2SE9v7b9Vu5yOBnAkXrsXR4BAuCNDsHkXCYZVD5tQmNb3uYNW3FgiB6qknE6ANi13u0U0CH9kG4FV9LcDB0BX/pYBDKQtEYbXsFEmIF5UXfNO2dlXtN1X0eAXyqRXwDACJK9XreaUKN124tsndaJWwAeDUXYg1w4BgxxjX/hJCaRWHTko7xzHlhQzwcO2zLAvo2KC4kRAUbwINNxq+ZEv4tEU9sNrQf43hBGCnEgYRM+oNiAzTnLz/3KOdRboCmQYedNXcbRknzTYR10pO38IP2d3EfVVno84qQAAhI2gP8lcIJNGl61aTqHwqy+LSmOFADEmeHnXV3phZCsIg62SkCx+IAFONkxpoG0EoyVDWFxoNNjWALKyADZRDjZoFrjTV8Fwjt2VE8KuGIb3hS50NjnEAEPExMnIa9uvbJs7QQZkAEFSGQAFt9cAABlc4KDY2LOHauxO8cYFamR4gZAYN5Ndl/oHTC2a13v6QmYagsOhtSkw91WNuOjIAIBJk9hibAmzqb7giGlEsl0pEwZdgRxQN3U7aGm4WOYXYKe2Aw1hRtD/hCXEhOX8glKguYmUIQk2FQDqGYXKt+xK9bKglF2qrM5ZBpwZgLUjeBP0diIyapICAqLVNN4NmRV/lb/aksf3aVncZjmyTCUa+4b9N3PbfrogBaujjwONCgDg2aCu2CIRfjksiVPoHApM0DJB4g43IVUatuIeYbmKtBUsmGh5iKsdNrPiB1p/dwjeT0OCkBpRVCEKjDceViERbgqhSYAAwiKiJOiajkGMbgywLjILksABZBbRfbpJdAPY5kCQOgXrCUiL2XhIuuqZzXpglaE1AWCqLYqjdVYCuHqrK4ZhrtqMUCBTpDcKxMMIz7int7Us7YdTwo6wRpUbS7OroJR6ZpXghaHKqiCsMXrXdtriiCASdoIMQBs0e7qn1DlR11l76XnJR3gJUgpvalas/znUdXPQa2fRYSWKy6DVMNtmqZRaIkxgJpOHwVIz6s+hohTZdV+1E6oXGgW3wFeGUMgC7Hwj95okvVIG8l+WHd5JIKZgh3aAHCG4MNFXL0+UAPIXWaC6dTO3eWOOBwha0wNCAAh+QQJCABxACwpABUAeQCtAAAI/wDjCBxIsKDBgwgTErzVhFKTJgwpiaJE6ZbCixgzatzIkeMtihNFifxkxIhIStIodVzJsqXLg9Aaipxp5FOoHDty5Lg5JpSLUy+DCh1qsKHET0iS3tyxowbTp01TwDjl0CLRq1gxyhR1syvOGjWCBAFbowfYHiGOKDFCCReurHDjCjyKZGdNm18n6J0QpIdfDhx48DjySZQ0aHITC8UFY4zOx4+ZgvU0gXJlwBxCcOixQ60RaYpDt5SmBCdUp2THelq9V28PDicA8wgx2ILo2xs/GqnbVGwQDx4mlLUMnAsXD2UBn9DsNwXu5xdxNTSSI2yQ48VbYweOHKzwzLE5oP+CTt4gLlG8r3Nfz2XCeu6tK/t9raK8/Tgfee8IMmE7d+MeYGdcfAOuBpsk95GHS003Weffe8VdpxdrHVQ4oScrJAhdE6IgVZ1YD/b334CVreZJhcFNeIKGz9FVXVgAdpBiibAtl4IGKoSwAgcndmBMB5WdYAOLon3UYSih7OCXJ6+Z6MkJK7QwAhQWVPmFBSWk0sIJlFk4gQpWEBmakUghMUYKKTDAwAgjMKCBBiOUMMMzdEYQATN2PlPCCFy2psGQYibGkCh3GaGELahAkQoUjKZSQp1ffGEnnswwo+cTHLS2YqCJ4SJRTSXBgKiikVZJ5wwW2HknCCBMgqcFfFr/NsEJYXIa1xdlfgLDrjCggkqVFlwZ6bCTsgoCnl+gopllHDxja1ynlEbSrlDYgigMV2I5rKSrGntsBKk80ecEHDx76xE5fBJpr7ZAkWiww8JbrLd4liAuswiaixUqg7HVKyqI+hosvNt26y2d9+rFgSv6YsVAWv7CUO2/wJY6LDPeGhvBF7Ys6wkHqTR8lQVqTSSqtYmSOmwJJUSKccavdhzeCoCKLJQ0MLjA1inWumBtu/GmEqzBrCKbrGawZWgzUafAYAFFMGiA5psMtIulu78Ca6qqEVigAo+etLI0UczY8gVFLgDWw8cnaNBuKrZ0sUkIdOP4xAjyPsMnYAyP/y0UCFCcEggMbmrgJt0huC10tZtoEELVKKeSyhfPpLIjBy34LZQVz6TkggskMNC41CGkYEuqetrS+CaoCI0ly3pzqbTmL1kBgjSnuPAw2Dam4IIFp1g6ggpcnqDCE1A8imWsYtMelA02RKB6CCcsl/ibp39RaZYt3C2JJI8+E0HsHNji/POsBFJt6GyqoILhJAxtKcvhv/xtKnSjEsH5LUVjhRW4sIAtSNCFLjAgdKHLHsYsNSfxPWOBlUoF3jbmLP5xRBrMYAUAT1GtAnZhBCRo0+kiYCw61elllWLGFybHqgpaUCOniAArWIGLZJHghl24oZpQISkIjk98KORaqv9Y9cKNBOIzuAgE3LrwuRy2iQE85FqkVoUxrt3pVxF4SxEzEghRnCKJHWQiARlQQChwy07cSiGeVFWprjFjixuJlDRwRsAuDDB0KXgcouI3RStaEVkggKNGKPEZnFmrgC7oQh5LZ8dfEQuNqpKUJN8oyIywghnSqGHPPKimGw5tUhs7ox8xVkmNtCp9PxvgHbMmKY2Jco09rFkpL2KDZ7BCGutT5Q2pJL81biyFqrKALWe5kVFYQRoWAFgO7UgCVvZRUuKLpJ1YQcyNRMN/JbCWmgy3iU1ULWtaG58vIyDLamKkFqyYgTZJV7o0NXNgVKKcpX5YTnMqJBqHmEG1dKf/JjK6wGl9DGWknkG5Z9TTngmRwiiE4M8C1hFbPUTjwL4wg4oeFKEHOYQUJAHCuOFwKhvjmp5MxbKKYlQjUphBC0jwuUS64AvInAT0pKBRhc6gpDMI5EkxYoNRcNSDtnjpM4TwgiG84AVUoMJRbyqnGVx0pwRhBQiyuSbddSF5QtDBIFQhCDQIogyOGIIkKupUqF7ECjNYlC008AT32aIErciCIOaKhg1sdQgVxdJTzRoHtD6BBLZwE5oYYIFWrGAQguCqIByhgxdUlKAgqBVfDVKLGTyBam9KnAWysIINbGCug9DBEKjQwAeyIhqTNUg0mDECqd1osCXo7Gc3oIpB/5RBCjZ4LJ1s4IzUFsR2I9gEmhZJ2Cx4dra2pUJKHzi+yN7AtwO5pJqOMFypREC2tE1sYx+bp2dY4QYXKIZv0RmB0G3zTV84hQqOq1hHkHYGk7LoDWJQgA2kdoan6MIRqJuCIzAgvdgVhF0d4dgGfkESzzgEGMgAAAI0ggpmxa0NvqC7/vaXAVSSLQU2sAhVuHdOqhrrD8AQAwYDwAGqMCpGF2rLEpBgdFRTVGe72lVV6OAG3IUVCEZcYgD4GAMmwIEPdCCEas6gFSqAqQVENzo3QWEE2K1rbQtM0Cfb4AeHuICJAWCALgPABB3wwQpcUeQt2kAS7luBBQJRgvdpwP+barIAFKJs1+3OCVYzsAInsrxlADzAAJE4wAEAgIEONGIFrciX8276hBVUjwMlkIZKE9fP/87Zs2jY8JTzaosnJHjPPX6AqEUdaEEPmtBB9kEWFG0zG8DV0V3yhCSk8YwhZIHSarKFCmSLhgt4VRCOLQEU2AqCQ3CCxFsWtQGOYepmRCLQBvAxmH2wgTLrS28rWEGPTADmJ0gDekxYwZu9mYq4DuKzAh7EIJiQ1vdJQgrOOHaoRw3oZ9s7EvUW9I87gIMNZOFZI6DeakyAAQygWgU2OIQVpFCMu3myFTrQahmYgFQpiPWyI5jBIX7Aifn6md5dPobIn92MktsbAIL/jjYGHFCEMryASCrlUoU6gHJTA4BmV/6BIlzBphDqaAMUCDoadOAKVzyBbkKQAsePreWPdxnQIheDGCJhcnsfw94G0LcJKDCIl9vHBlAIwYmMUXAMmFrfjbCB0vesiFb0nARQkEQWgk6BLHQvjy0YhbE5wXcgmPjPIRe5yEtOeGdH4uqHH7nKcZCFMjxHqvaSOdnNfoABWH4Ag8bBDGjKdzAIYQS2AGEqZiCEiesgC++j2+b3znciMHjUohY8yStw78M/e+SJzzqhIeD40NhuT1+bQAcof/niY74DJRgF539wAyFI6XTPUOpRh9AKx41A70vn+w1eP2rBj7zktFeA/9WvPnIFyH7QDghNSocn84JX3vjF/7IQor/3H1Dh83BPxRCYUIUyDKIVIfAEGpd9rcd9sRd1VFdyEkB7ied9UScG3jdoEJAYetICmjEBBCdoEgB/xXcAJiAEM/ACYMB3nGB/HaV/ZdB/brACKiAJekeCJFgFBvgAskdyzbAE4idyy9ZlNOiAxwBoDTYIcHFmI2BYwmd2lreBlscCl8cCTigBg7YCR3UDYLB0P3BTozcKYHADN8BYQoB9MLhnSeB0P7hsuEd4Dfh0+LaDO6iD0TaBWEF6nOUDHUBwKCcBeCgBV8CETDgATsgCUAgAG3BURAAGI8h3hzAKeKWFhlgGQ/9wA2sXhq5Hb4B3DBBYe2UYePhWhj7YZQQgCERxZo1Gh8NXc8UnAWlwBSKwhGzAAm/ABoM2iEcFBqxXgltIhVtYBsq1cWF4CEDgY38WjIIHgZZIfsv2Zw4Ycmz4dACABkLxDEe2I0eIcgMgAc2Ah1cwAGnwimngh2+wCt/4BgMAAILABIrAhbQIg1hmiI1IiwRYgjLIZctmCvRIgxAodTr4gz4IgW1oAD3oZQXwEmfWCjJXhzVXeYJ2jXu4jSyQBg35jeD4BizQDBRgjkSAi9n3AyNGhTdQBenYixfgZ/54DPSojyKnABWgAOZ3j8R4DOanjwZgCt73dAXQeyshBZz/1SMGJ2iXh4fVuIGu2IpB+QYQCY4sUJPmyI4aqWC4qAiHQAQuB4m8CI8iWYYPQIxTFwkomYNaeQyxJ3VTZ5JSBwqC12A22RFC0Ag4QHBmp4Q/mYfXKAIikAatyAZ2SZSrAI6rwAIAoAMUdwNEUAVbVVs3JgW02IVloFWq4HJgoAgxMGr0KJNgKXXip5KUKXIPYAr2SIxddpk66GOq0BLF4AA7qYF5aI2ndgAlJ5ciwAJs4JBs8AbIkJfgeABcpwoQ4AA+dmoOcFuHcAgvoApoUAA192UAIAH4Ro+U2QmUWZlayZxe6ZWZCZbepwBiAApg+XQX0BKLQAA7mYfF1wyp/9kMFVCeIpAMUYCXtLmeUCgBJwYBnkV3Q0BTwHkBEHCfFAABBUAAgBaTykmZYtAJChAAkwmBkGkKAOqAYhAABFqWzrgSLxADNeeWftiHpgZo5VmeVxAFGZCeeekEhmAIq4AMs5kGDrABonVUSqVcUiAFL1AGN5BUSfWiFMBlEGgKzAmWljmM+ZiZlhigxWgAzRl+U2cAcNgRZcBgB+CTPtmBB7CGKomSFbAGURAFI+oETpABhoAMWIAFhnAFPkYABQABFOBVOjBxVFAGi+B/W5VpEMCfkRCgBSqnlqiZkWmnQtoJAbCjlqgACZChL2kAAbkSbqCb70ehTtpl9hYA5f+5BsnwqIWQAMkAosgwBVMQBVdQcqfmY2SqCi8wCARAAKaojYZApGKgAHoaAJ3QCT/6o9QpBggqoNYpdVepAMmQAAmwp/w4qB2xAaL6ftrYh5bXjfp2eNapAJEqqclQAbiaDBkwBQJgqcvqAIJgW4pwVEygChcQcY7QraqQn/u5bDqao3qKj0KqANgZpXMqeFcJCpCgkgmAqmLwALzKETV6nBLghMYnArFpjSEndQEgqYWwrMyaDIxgqV1qCFEgAgVwphQHBi3KBBSQYlQABtK3fzpQAMumlZYJlvX4o1Eap3N6ozgasAMaADJAoAZAACsxCiF5nNqYBjKrhCJwBYb/IALOJqQBmqth8KjMmgAf8AFT8AhdOgVOkAyREKoE4AAFMKYUcAEUUAD2qZ9NWwC6GaUnu6qrGpkBOqC5ap1am6OwKnWQgKsVELCQAAkQyLIdcQNowGBKKJHiOABXkAZa6gQiILKnGrCP+qflGamMgAWWWqmMkAwK4GVLy7T3KapZJ2jbaAhOoKsMyqDMiaD0KKCUq6urKgMyUKABUAiO+qcJEKk/yLYcUQVNt4Hb+I3dyAIbKqJRYKpei6uSKqkfwAjRKgBYIABrkAAFYFvmqAhQWa1nqpjfGq6TqZIECquxeqzwuryrOpnMKalrsAYZMLBrYH4r6whI+qbUOABE/ymRLFCzGcClTlBysxqwYQC0tzq6jHCwlhqtsVsAjqAI1/oCN1AG1WqOTNC//esIFEAAD3id0YujARqwBKqnq6qqYNkJCLqgyVC9oJsBa1ABEAgAQsgRL9AGuxmz4DgArBkFTmC01viDC5oAYcAIQXurBmupuButU/ABChCmYjqmvRaqDaa0v2qGriq9smqdk+unuip1zKmnhcAI1fsBFRynXfagGzEEbYCEw7qN3aiKRImlONtls/sB7JsAVBoFLjwFyPC+CRAJOSymZBrAu6macokBbdAIcNwG/Fmn/zmrcuqn5WnHXTu6ZrAGH8C7ltllR6oRUHyHS+iKq0CXV//wjdAauzqLq2EQtCp8qx+QARnwvgIgAI7csFOYv9XqCImpVV1FASzIJiPQAlkgx//qkqcKtie7p3psxGEQBoWQyR9Aez8IABTQEa4QxZVHl3gZvm+wjauABefLsSh8u0IbBbX7qMkQtAKQAYbbsEZ1VGVAmGWQzVqFWEVANxjmKHJXBA4AdZZIoCIbxF0LsF5cCKCbyYarvUbaEVmAA1Icvnr5jbPJpVOwrAAbBmbwAQ2gwuysrAarwowQBR8QbTnsAGksqj720IQGJCFgC47CMnLXCCYAAHGKnQjMoB17rAFbvcmgu4bwtWVYrxnhBhm9pMNalOtJoshwBSnJoAj/EMnvq8SFQMtAq8Tvq8IJEKaKG3Q4DADNEAWGgAUDUGht0y70UwKS0AqNgAEGMKAn+7V6e8AB0MdH/Qglnati4IkdUQQZuAR+SMx5CdMwbcwiwKBhUNNB+9YfEMkr/MxBWwhGWgb3e242ps2DgAbe2wErcDemnDwlsDwrYHA/GrDxOpmTq9iGMAVY0L7ZSQCKwBHi7GMSULNOCJGVigVpjbdnm8xr0NN0HbSRbAZmwM5hIAa8h63npl0RF3ECBgF2NwKS4y6RIzSpUARS7ZKjy9gnnKtevLtH69VSF21niRFifYcb6pD4zKWePaKezQLJwKCSygjPKtBwLclxzcXR/xaqDoAD+QnREI0DiCYljiI5A6QoVZIFGR0JP5uSYNsJtFsIf9ylR1vd1GkA3LsRGI1yS1Czi0ybW4rWXRoFt8qglXywj6DCyqzEyvy+t6rQAFAA+fmrzXAFIPoGJpBtT3A37K01VbIC750GFUzVqYqr1TsFcAAH+7wGhQAJnSADmvkAOmDZK52vixyOZ92lJFq0CR4At8uhl/zWVHrJ7zsFB20AQ5fNiEWY52afVst43fPhP+MrrlNuGU2euerRXsvOf9ziWEDBaxAAkMC580oAGawR//3LrliU0I0F0g0Hj9C7Ow2/PT3kuPsIj5DJAsAITJ7NTEBjoRVxiOVZrf/QAt/TPv1kR1WSCu6t0ZGqqnzrxY6Ku3BgzFHQuwiAAGqrmeTIEW1gAu8HzGf945mO6i6uwv58u+/bAAGduy3+CLP+CFMwaKJq4Rfg0OV93radChwVeiHUOpJA4geQBgmu4n6szAKQ6U6w6QK9ADLeCQ9AAIuA47/M2Qbu2V2KBXCgBWMO17DeALnL5y2e6bsr5k6gb7r+q3O5Ck4AAId2PCMAPpKzKFgOZaQuAckQqey8Bv8s63AgAMVdCKhtBigrA9Xe3xrB2yydBrS57T/u7VoAB8/+AWbw6raOybQu5lhAtMZMALSlAxuABqHVpvoZ3mLmPk9gLSFuAWoVAqT/LgIDPbrV+8K669mG4Kh+zAgxzrmmQADJfRGRDpTa3tncnu4V/+wqDOvQquQC0PHnLuazSY6h1VWDwFg6IGCeVdsjcHSJgzzJgyXWogKkPgAVbPA87eeZDAdjHMEZ0Oe5OuNBL88ZjYfoOaJpHefNrgxaUPFK3tNRH61woAZT3+3ovu4+NqbeC9EmIGZuJ0HuQ++KUgKoMDwdsKTsbN9J7ucdrwZ/ngHNPgUwbp3VjqS6uYTqWamViu5d2uKAr8L/zAh8XvstrgyHn+mXin6LCwAiYL0CMAAdzoLtUi2JAjCtAwUt0Ao4cJybf7uvT+ePsAy4T7SQjQUIrqqaidIY/6EIurmBsfmNTgDTkE3nr+/3WhD4QUvunz/1U0+0DPtZUPtZwpnyGd0BnpA4oMfe2QQQtlClGtGiCIYDFQp9eAQHCxY4EeFoiYilIRxDGRKI4WjgQhyQIUWOBKmIDAAJaa5EceJkFTKYyLCokQhnGaFlWKYw+vChwaOGNGvCEfpQRIENgihQEDRIxyBBGyhAAJAGw4QTGp6MGCipoC0otmydMJHQ58WIj5bBUeYwopZHAjIUAgVJjAFBJPWKLEPGwJIBb1oaWlVYJsSHb7VQnDLlAyOgaYdGpPnwUZRmAApMJUAAwGcAB9I4HNCBQ4gUDEasHiFWLNmEZtYIiDxRGf8himyVxZ2yphAkuwY27CUOxO8BCW9YFjb0UObaxFoI4TbU26cAOEAh6m47NEPmAhcKfJaQQQAWLcsWLzvg6UQIDbZSpYLSurUnhAogFQrj0+ZbZZZRpjsBBFjjAzMgAUUBB6ggTi9VPJOAhSsEIywmZNSDQyabcKNIAJ4a+EmiAUskii01pgAADak2SCoqCArwLIObtnjDtPcYAGu1+kLoAKEEAthvoWWKVG+x3OAQ4AMBzAigEAQKiSSvB0dyQ8LAXCrMMPQIcQgiZRYjZDdGGPkJrQG1KJGmtlSEYKkNVHFKBx2UKuCAm3DCwBMOTmMAFdeeOKGD0ICTrZAAGDr/EkklQRSgAUgQMCOMABQAoMqR2kAopTfeMAwmiNTLCSI1btuCMRFHDKrEttRgE44prgAAh6kccAAAEz47wBDpphtggj5RU02sEQY9oBlQOikEUUMbWC+uDMxbMgFIhAQOkgoKwBSkLG49YAA2WGDB05dClW5U3XqFVcRHXHWV1QFJVFICzWIMbYA0VsHCSEK22AIZY2o4LQUNhn2Cgw4OWAISGfYLwIzfzDhzyccEWBa4uoArJAECto0jC0K/HbfTl/TtEKfEipwOt50aEECNduEd0N2ImoFAKhaVEk9GAK5Az99lBvBA4BDgU2EEFTwpK5K6wkhwUkMZAuoRlxlZ/8PaSIFTwAAKti3ix28HEDtfUIs8tyYxvdjikSnYJZFVmtCKIrw3BaGTTlU2oCpD6bYgZBUMPJigh/cEnQChCq79gD8nhUSAIZexU5KRjQOoVIG70Nh2BRMQEltsFkw2W8OHtpPOC5xAvCjeVieLKArNKCjA1lxBG2Dffv399wAMuACWA09+lCCBBCRd3IwEA0DA6WUeyeBAm4o0cFnMDSCACUw3yBU5EcYV3aHbKAJTt36nE2CndoliXeYBk9HsAgeaGeAKJxL7sl8v8kd9Fd498MDzARzIJw1AHsQYBgmJLWN6tEnPWiLCiAoYAABdq9IGwNaMNGQQGf95CJK0sP+ddPVtGS2rTVtM1DoBEOACF2DRUmJ0q9CkQQRTqJG/ppOTNLzhME4oRAN6QrHi0UAGQnzcI55WCEaspUDnEUAyMqODCnYOOSzIV+ncorIklWgx/tLCFKLQk4Y0ZE3qo4kA6sWiu0GlVs2oQAIYoYa+5U93ftsCFpIRhv5QbFIB6AQNEPDH/pjhj2b4gHnWwAi5FEgEkXAA9ojjBhxsLzAvOQyJcCORUoVJd1oAUU9GFJGZmVAZNHHCARwQIwKYoHahwWAyEhCGM3RoC3KU4xbgwIgFIC+XCCrEpP4YKadNCnkNQCSIHNIYQ6yhGdraixWyUAQceC4NGOJQh3KTyQH/6c5LLXtM+tjiOhEQYDMEOFYaDLFB6d1RYg3JnZcmsphHMEKQCKhWGIyHvDAsC3nAWd4C4iIAQ0hvDWuI1jJJUotbsKIELfDBj/A1TXSO7pJDWYwcP8iT/pRpRO/6JjIIMBUKsEgqqAyNCFw5zCSeClYDcIKSktGZY3TCck9CUD6vhUBmIZCJtKFJBpJB0HCOxAog+MIXnjEDSWShDQAIzENGt6iamFALavMbrCblNARJTETYxMIEb6YKHZThKXmTHUqChIAzMERMcAgdHJwQiQLElQAGUEACeok8xw2RnkKqixlyUiCbCCANFahAJC4lEhuUYD4WOGoJXOGDskxz/19GOhJlBqSy8i1mCvzB4x/v2YBMqiEDsZudAzyDAdu9gXiwNMNE/KaF+lFEVpohQCRmg8iedJYGu/1ls9BVJGSkQQHH6BhiS4AKKFjAAjNgrhCy0IjIPgez0ElX7mwIos4q76phYIRu3FovAjSjGSKgH4dGeEcE+LCGXtqXFpBxAF2lIQM+/AACBQkcGTSsYQxLrxILtIxVpMGwEDAufZCr3BIwdwauKIIDDGBOs0nng2/TJBe96EpA+rIQGRBjV1e4ATS0UDwwFIET0PuTvm2hO2V0gghKmgxe7rOA/JTBH2vsLIwcchnIkMABPgISK9hACCOYz4FToeAZCGEFjf9wgGjau7L/aDGOtnQMorSLR7tKDgsHgMDN4kTWRnQZB1WJQjIkZqoxdcch55lCBtfwygJKqoCUQoC1/tiAImGBoHD4DjPjYIUZlEDQgRbLYhMcaIPkSgJ8y2xEBBQm/NkQC4ygMz7rHICXtcUJsfNW2D43zQzg0VmZVbNEsNBJYS4Pjz9cluUgYc/+5mTPaQCAKkByiEAjOdDzmY+gFVuCLGyvpemRsKPVlM1Zom4388wnPVFQxIis4n2eCQ1yBmAyLDhhDf2ZSP4mKpS0UGx5y1sIk3y4LHsC0wwNMZB5KkBgkDxDEr72NXMVy2sLCFoImjqACCabJw1Jmap+i2f/MO2Jgk4gYAGlgsMBCgCBqKhCFYJQygsB0AxtByAMCxj1a9sCQodQjdm9RGKZ3owAP77SPwbKCAGgCBIqtGAE9Tkyc48qCXznuwQ+QIgIBKAyLi6GVdPRphrk2VkEdCLhoB1Qtm4WYr2VFge2OsAb3jypBXwAjjYc3ZdmIqIPZHQ2LkOQkPA4qZ9kxAnN+DFIhtAK+DwhFYy9uRDunYoS5HsFhFpCBk7mIXidTpuP+MAflae89D4iTCoKDzkHIK5VGKIlTpDJXCiFvA9owV9q01BFtvNPQxhiiUu6atYI2YA3j3YkM1jBCVKT3KMiVRI4X+wXLNCCpYrm5zU8tlRz/ydHOBTes4NkujIyIE7ZURs0oWHBOZ3AiLMOU20W7TwoK/IliWSA0r70LKUSAFeSCAE+BcO7gn1tgbmjXxI8R87PiX4qLUJ686hTkiB3+2yJnWFAV3AAUjYAFYkbqanDAJZyJe3yiWSrJTVxNEdzoJzwrzVAnl/iDwWogOIaiRdoBQ3YQAaouRmwAElQLguwPUHjHJQYtn6RsDBJE8FTmw8qPBR4tuUpPv7bjNKyFYQ4AB2sulUwMcRDHhFamVNRk7VwoP8oQixIJn3ij0IYrsMiiVFoARVIgRQggVSIPZzLO+UyKgtQAUIpD8XTvCH0oF7RHfqjNASQwTBwlgERgf/+owAY+hb6WQmXmIJsiwI+QgFuC5oD6BK/wY0ibMDo+ZJo+YA1MEAxAIAY2ItnaAUVyAr5ODRBw7sRfAblagVCGQC/SzEvQRIP+T0XJDxYm8EjMSOk6LIui6v+c4BcuTYnyAA+Up7HAAAHwABDgANCoCqcMLV/M8KHcII0CBIxeIBFJA4hEJSCsQWdC7S8MyrbSwXYEIE1UI9Zei0yBMVZ8pKwU7UzUxNTvABqIwBbWb5vKYwMSLpOkIEEcJ8my5BcVMBRcaro2Y4kvIIAEAMyaLsHaYEnSMby8zXbs70ROJyUwI5I86AwkTDN0x9bioJ5urPFgAP+gwA06IzQmBD/ymsMjVTCNOyEMLBAproJ/WFI9iodeUQMZLgCAyiARfCYGYC7ENgEKEgwQXuGZ7A9KDgBhDAn15Kj6Tg2MfGbkfSCLoLBZwMtNQmnp0MDF+IZ0Kg6ZKA0hHu2ADCAZIieOJIjLJCA8XKJ58ACmOAfB7A1jwGJEQiBE1ANfCPBVFiB/7k2AYA0F0SSFbyN6RhKQii4GEQr23iE9zGt/lNFVeqAVlwFq0k6FPCjJ0Ek9fg9nBiADZgdezkAzxAnB8CBshwJSTgarhiIuUuFsfgRAtSXFBvCm/CgORrJUyGgNFS4iJSA/qOKZrgCcRkZTwEVjKC0TkC4GouUBOqV6Wi4/8wczjjIQAY4ThIAFA3Aj2+pIlzcPNyIznZKsaG0JRhMr/SAAwDoMjg8rYsUDJfIIZmgnACIwT6igb1ct9HZMuLMzJfUANRAywl4y3yhpGUQylqaI/hThqGUo2VgBM9yFtkygYerNvjSQRZwgk5hqYdYEjxCvMSUM8wDke8YhPb0mLc7AU+YgAkwhtEEy0oSQ4Y0w/yRyEeYPryMJ+Q5AyTpqrhiqgHQFRoSQtw4tcWxswiVszq7NAWgoAutkhnIgkiSJpnAENyxrgRkyCnow+r0NiVxmlEjBBe9kysojWjaICxYBQEon5xwDBvzI1hDHhpIR8uJBH380UeituakpP9yqRFQZEiSTED8DEVP6hu/jKtmWAUWuEwAkIk0OAAWcMcuFb7hG77dEqJOOAbNQdMq0QEYiiGZ4JLSTNL56086Us1b8gkJGy08XYXSSBiYONBvyZBJOzgUCAA/GiT72y1TEAM/Y1TiWAQAOAYDkID6UdAM+LdKnb4kHVES1Z//1Lpzgc0uE40D6ABQlTYAwIAPtVF64idJyaU03C0Z4IhXhVW9QAO/iIQcSoNmsNXJ6hVLTTY5DcpKzUukxIl6QSUMIMwBQAb+gdE3yFIbpRTE+6MFGLdprdYCeDls3YsLAI3AhACMQ6e+eb9Lzc9PfEeGjAs4oggC4E6K2wDxCK//DMKX5niDXYnKwosUz5qnPaqzTiAAC/1X4nCEkSDYNAhXnCDDSq3Gn8xK4JuCd4IDcboZR3CEMnAEIFiEGFBTA4AvEwhUeZpW3hq+WKwUACgDky1LApSu9TAbIayl6DSSXiVKxbBZCLgAQXAEJqiCMthZIGDKVJQrCRCAV4Q1/EsQdFS6ezSARW3aChrVf8NKs7lUomug0lRNNVGTR4hYri2DKgDbsHUEQWDKqUCljSW9X3KaSIlB8+wEBbhAuSWOGPiL5migQCS2T/xDnOjcXU0PljmlwBVc03WEiQuxC7C4K9DSbTS8x51KhOuEu2Dayt0LVTiJvguVoaCshAwf/08UwpctEmVwgoe7AFUI27AFW0eACtWNkQIoi1V4ngS5lhpTut1MRxmoSiq5XZIwjgeoAPOwH+yLKk+MsIPtVSSZmwuggOStAiYw3TKYuMNN3Nk5gOl9yGtBz8Q8VBSQAbj1Xr1IAjJ4AFBYg+agR5OUCAGxiaglOtzo1Rt6g4djCuUNWybg2ahwoS5rsjdQwupFABkwz0NFz04wAHgTYJG4AL8AhQwIvcRQ4O0oQsz6SQim1C1Yhgw43g244PjVYBZB3NmpirmYqYa5v//dTURlJBUeiYA9hgDIACM1SfKlLOAMSrVhWPoTgS67gB7G4Pjd2cMNMQpYXdNqBt+AEv+GSUwZULr+HVMFMNMmFolFIINjEF9kgOElouL/iJ5FQVKZ9ZJmAClBWN4w3tkkSAIynor7fR7+yK/8Uro2HqJqCQA5nmOQYOFjUIBcbY4NApUYnmGVORLhJTqGhAObeZPkFdzBLVwgSORFQFx7EQHigQSlqzMxwF5IrtZjuFYVruNjSIBzApXDQAwGpqxFKc3yIdeGk1hWJlyxTYJYbt/VhYD4CUYh6YQEsBQDoF0hyi8xIC5MBokYAIAHEIFhBlFQBpO10FyFXBnhPeUDIGQmUAQiIALC5dlYDjEytmYDaAYFsJYAECcCOAYxGKI2pl3KbeJyNoAKKBeTLGZzkVrVQFzm6EzYHJ5nVS4DReho5n1laY4KEEMDexkupWvVxjuGY0iWhgnnhRZg4zBnEYgCSlpn+7FiJMmTnzzN38vhFXmTQfhaIlCEC35l+h3piu1mpbNWcDRoSeZlArDdJiZgAHgwcyqdmEAMnAbEdwbOxrSoFVmhQRDce25lsaW4iUWDpM7lNhaD/jOAmFI6RCUusmxiFp7VCpiN0NvrJVKL5ikSNUBmURFsQGyAKSCAkQ7qju5ofK4CngUC+l2ERVhdGXmAmDIFU+gMuMZs7L0LAojbCw0IACH5BAkIAFoALCsAFwB2AKsAAAj/ALUIHEiwoMGDCBMabMJQocOHECNKnDjxVhNKGDGK2iiKkrRbFEOKHEnyIENKGzUa+fTJSEcjGUvKnEmzIK6LolyKYjkmh88xPZEIhVmzqFGJt6RR+hQUic8dUGtAnbojBwxpuHAd3cpVIC6UTMcIRTIGapAgE6Tu6FEjSA0eY4zILdW17sxARsgCRcLSadQJgN2yrdGjxw64SORSsss4JIyePp8+jVojLWAOHHpwOHFiQg+fSug2Hv3QxsqeU2uoXs3WE2DAbXtw9uQpMw8NMLSS3m3QhtJPOaYG4eIhrWrAHTx0IO4Zc23MmXtA0c27OqulwdsS91D8dYfkGDBw/+fimXbm6DVO+KrOHu9T7dzjD0/uQXz97lzIp2VbWIMN9rzhBdwObU0QH3cGKscdfcXFNwEXHbjmiWx2ALhbKSsFd9Z28h343XjI5fedfrWpYCFplGS4w3AHepBffB8iWBly342YFgcnjrbUJ0iYBRh5Z01AmyecFckZB7RNUCOCtbmSI2OB5MTUESGcUOUJm4WgwhMtSFJCCalAIaYkT6zAQYzKEfmkXTZEmZNctsQZJwMq2JJKCb7UEcGefEbgCxQacKCkch1MYOKaXQWC0kZGwABDnKg4aoEveVLaJzN8lmCLBp5AmNwE7SDKlRxuMuroqRZM6suXedZRBzMgMP8jawR1lKCCoDV2cIKoW8mBoUeUOIqKLTCkmkqqvnxB6RcRwGoDCLH6+URnNK7A61alfIFRKah0CwMUMKRy7KTKMtsstOgy48sIIbj23QS7XlsUCDCUIk0gX4iJChSopOovsszKii606qISqCfLwStvUTN8Eci9FvALKRST+pvsnrAODG0dBiP5WrwLzzTDw01IY8Gwj+5LqcXmakxwBKnc6hpgIIdckhWsYIVLBCcP268FX3xhQQlAY5wxwbLGfEKSnlhrs0y1yGFDVhHYQgIDExvLqtEDy1qH0kM2/TTUrJQdiAUpYMlBCBpgPawt3VJMaR1I62nBE0g+5/TYJB3/YgMzXzAQQgjQnXCECy6QoIIGGgze9giptKpsCSMsPaSTfJckhQ1QuCAnAxqkkALWj4I+uJYqtDOCJKkqm8oKSXIQauYkSQFCKiQ0ztngo9cLsy2ga0BC5KnYYcekMMMO2N60i8QKCIBiWRvjbUMRQSDMWBA6Zhq0AwXRy8Y88+zNO3+7LSosvuUTdaYSMOUjpL+lJHfqWYcQKtB2QgvlO/88zyQYwQiewL4njMACzWJGrcR1p1bZrw6SgJ0nNFCH/lHEBjZ4HggsEEAGeDCAqDCX1yhFQoEpsA52YJwKEPgfC0akDhm0QQSgQAJbjABrcYLCF0zoJzxZKoEKpJwO/5VVQRdCBINWsIEvrGa1EQBveL5IoJ9WpidZWXGBddghz4wIEVbYwAr0ipPnPIi4ovUpaCLsk5/8BAM+cfEhXmRFIB5FgsR50IMwUBafltUnV1UKgUuM4hshAgI5wgAViHOB6UKANQaMgFk/5JOyVpZAZTFjkA+xghzkcDJbII4Bm2DcJuJEgiii8ZRovNisvtBCTCYkaqzIFyLtSAIS9CsC5hJasph1yiga7ZKuVEjZrJA9q3muhnIDIuCChqk97XKNsJJDMB1ihSRagJS1tIW/MJbAPPVxihZ4VSun+Uob4A54ibNlpMyFS1wGrZ1fqIMvxAUC6pBTmCW4WuhCN/86rFUMWRfDZa2+VMR7wjGfoNyE6FKwCQbYEpDkChoJS1CHGYDAoF2swwhqqUg8wiBZzMBFFMsmhZKWdAYzKMFFMeqQQ8xABXW8IxnzCCshvOAFN6ACFaRAhRdQYQYFZWlC5CEFIdRSpm6bVAmEoANVCEIQG9iAOAaRB6AKFY522CgZHbqv75XAFapwqiDQgAanotQaV32INSRxtQ/aQm55kkQWwjqIsOqgDCgdZ1oPYoM6oE8DKuDqR6PoiqhGVRCDKAMTrDEDve61ICAoARQW1zYPvtUXgXDFCjbwVFUklgqsmAErHpsQO0gCFblbaApqGM4sbEAVnEWsDl5gA9H/yoO0B9Eo1lywidONDoEqOKwgVAGEQTDhpza4A24NUgcGHEEDCiWcZkKAilJo9rXDFcRsGWuNHyh3uQJhRXOPIDrCYYYHKYBCIFSwWeEOwqcolQInDgFeebDCFyQ4AnlDkILTaQAVvmivYQXhiBdYowR2kMIPiKAI3FZTDl9wAXkXyl+GoqIErjUsBRBr4BnYwRqHqAIaHPHY2uYMBkqY8EKPsIlRRtCwaHjtexkrCRATgQwxGERaZyAEIdzLFimusOhCqQEovC6qFCArYhVBBTu0wBp6AEMMAEAACgwBo1LIgysIGIgIoMKDoqMekYe2WQokGQ2IZcIMUvGEGUR5/8oAAIADILABHQSTFVQQgmZXoALsSYKyYl7cJlDRjhWswMwUuEBZ1SyJFtjgEFKOs6Sp3IYiqCILQnChFNZaJumtAASBsAOgqedBDdiiHSrQAYzTjD9J2OAHUiZDnB9ggAMcIM4mwIEPspCFGdAOBDxWgfRqxAFm1DYLJxAlkT1oAbmWIbHiYMINpPACV/SaFbC+gKwfQGsD8OLbtgaACTrggxW4gn8hS+KfV7C075gAAybwRB3wnIcVqFB+oMvdCcqc5MTyWgVUOASsY0AGbnM7DnFQAMJ5sYRbw5vcK8gC5hB1CGvYAW9J6gAGABCeA+BAtIeQwhCywL5NyK+yI/9oQRYgYGZB4G8FQgAxJ2JtcAMgHOGgAAW4Gx5neJugCHXOkRUY2wLYufvdGJDAACQgbknI4RB30EMZSC5AxW20liWQKxPKUIws8HkGCp45wWv+gJvn/Oa8sPUBDGAAXOOAAqrIQ3X8NoM/++A7G7/1AQbA96VjQAWP/sEPblCGLdtSTKT0xQxu+oI88DrmP+DEHW5ccAOU3ewKyLwClrCEby8hDgyP8wEwQAAICKIMoxn6msuEsHcDQO197zsAVmADKeiBEz9QxJadaGR+kUASQhiCIsRRjIiD3btiz4XByWHzOIAi8xWoAOcRrvA4dJ4XCHc4Dl5rF1YcOH6d6YD/65Ue+9gDwAczoMLtOaGHF7SgBZALEw1HIARxVEEcgigC5DkheT2gQfkGh3nRx3lLUAGgt3DYB3qcF24OQAFcsWkl0ALC1noYsHflV34SIAE4YAc7tX56wAQCpFSpIAmSMAM3cIJlUAZgsH6S9wOOsG0PQA6XB31LIAEiUIAJeHNod308VwA6VhObNgMtUCaC8m4WeIFskAYDoIQZiAM2tYKRN3h6xjpfIgkfBgZYqAg3EHn8x38/UAWyZnm0dnMKUAEicIYDmIDfhoCdB3rYBwAQQBNB6GQTKH6vd4FpwAZ6qAt8yIQOUAZD8AIr2IU3kAessypWaA03gIVVwIJd/+iC28Z2OliGZygC0nd9OniAmdh2BCAIMrFpdNhuJiBpR8h3bKALepiKerh0BVAGioBTYIB8sMZYCCYEeWANWHgDiuCI/Od/BLB85BCMCZcACSACyZCGa5iJcdB8zQcABVASFvdyFHgASpeBElCD5JcGLMACp6iHLHAFB1AA4qAIREAEWMiFsNZkQ/hhiwgGu9iFhDhlwBiMOUeJZih9C6eM+mgABKAKIkEFeVB0PtB6cUZ+Gbh0aZCQS5gGVxAFe3iKV7AEragI5GiOjphlBJRgRBBl7wiPP5AEAHBwwUgO9RgAZVgBZdiGCYd9OaiDNsd2D3ABIlF8RqdxAHCQfP+XgTd4BZXIkHnIh7qQhywgAg6gA0zwAkTQjlyIe1kmBGBne3qwkfDICTcWkrQmgzlHDjR4fckICvuIcAbAfJb3jBThCEWAAxqXdxLAcNZYgyJgg1cQl1HAkNx4ipZgCbpwBQAgCEyghVgYi7j3A3qgBzdgYFJwCFFGBEuJe0BglSNJkiTZCSfJCwrwbQrglWSImWAZlswXBw9AAGhAEcWAA0ZIfjVYgKhpidFXAQ15BQzZkHepC3jJAgdAAUe5iDfAYIpQBRTJeDt1CJC2kUtJBDFAazFIDnEAmTkXAAlQAd9GmSa5jPqojJZHADI5EWhAADd5kNfIeWZYiSKQBlH/cAVDKQINGQVRAAh3uZ4S4INNRQEFEGelV2dMMARDMG1gIAW6qAdcqAcgeXlZiZw51wkBUKCZx3AGKIkJp4lkeHP8GIcSUQVTdgBLkAbVqHRLUIk8GX3JwJPHaIZRYAhOoJ6WQKID8JZXwHQO4ADaSWVzRp9HOQQbUAXt2JgxmHOgQJI4WqA8GgCSWZkvCXrVp4Og4JzYx3YEMBFAIGsAsIQLOQDf+Y1L6J3ZkAzNKQLo6QSGcJeA0KVYoJ5OQJQbUAYvMARbB1sXAAGmhwYvwAQFAAFoAAQXAAA4R4/P56MKYJIF2gmgwKeY2Xzf5pU2V4/RV5m8wI/YKWvUaIoJ/ykBrskCCcl5mtec0ZcBlmoIXSqiliAAX2oJImAADnABnqVYgWimTDAIEKAKOiAOOEV4F0AAlheMfKoABEqMBoqjZ6eDvICSvOCVOZeGBwoAJBYRMaCdRxiUDBmeVxCUnbcEZUiMxJgM2ZABU+AETpABApCtWCCbUZAMZ3hrVEYABVAAF5BkdHZ6OPUC4pCdN9oJBMqczGmlPoqruOp8mnd2oMCczZl5AbCM1/kQqgBne5cGQMkCJ5oNy6oLnEeZzwetyZAM6ImejMAIApAO6VCiUbAE4rphUAUBBUAAIDuuFACyBEAGIAsADOuuPAqtCRAAOCqZz+enyxmdzjeMx//YnC5rAP/qEGUAZ0qXkGngBAw5nleAlyKwhpmXAN4qsVFgjFGQART7pYYQBQcAATowBIcJnDxVmOLwWqKKBq8KAIV6mQNaoPuaeQNKoGRrryZJtvVYhmTLpzobEW4woXwHtE6gC9tIniM6lN9WAfqaDBmQDej5sMlAsdnapRlLZQWABoPAqj6VUy9AYFVQUjcwVRDgbc7nru/asi6rsgZ6mdAXfQmgcANKjM9aAaVrAGT5EEwAZ3cLqQQblw05ok27mkobrYdruNkwsYwwBViABRkwnubJdJO2ouUaVo7gCM+mCgXgbXnaozzapz2KutELrbT6soXQsoVQCBWQDbz/4IwRMQiKupBAqQtOIJcjmr6WmKfQGgYfMLGF+wHxywjB6wRUO2dwNwiOoAoX8LFvigYmK3oHYJ4V0KfvyqOcC7oPWwG1yrI4Sg4/WggPmwFXcKit6xDFIGt324eymZdX4ARc+o0oyaOFQL/y2631OwXA6wTJoLOAeJhWoLW6GKfE9b/ayZPOaqAL7K4ygAAPXKXNybIJILPM2b2CmwEJCqEAK2s1mAZ3mYeW8I08GQUlir+A27LEiMICwAhRgMK/G8bH6IzkugGJVZ+KwASOqwhgUKZl4Lxsd7ota8QFur3Qqrosm6d6nA3ZUAgBcMLZ4JwAsLMK4QbauYSQmpdR/2Ct2WCtVgwIhmCJpUuM3Vu/vnvJjNANE3uMcTkA4Bqub7oBG7YBaDay2Ee9tkqrfEqgkKCvSmu4D1u6Bqq0fZwA2SAAyaBwrBsRbTCKfOeadHmXIiybJRrJDBsAhgu1jPABhXDJ3fDME+uc1olmjlBXaBADaZqdAHCaSxDI/KqvKInAoKu6tUzB0VrCdVzJFJvLnpmkEBEDG8d351uisbmeJXoFKJmnFSy4mEy/9KvJGfDCF6BYvznDUqAIZZVkacqikpq9eZqj7pqjqGzL22u4trrKnVAIYWAGHyAASnyZnxkRZBDPBMulJm3SXeqp1+u7AsDCUzCxz6zJvhsFCv8gro37uEfZpo5rXEywdRvgAHFMvZyro6cbBrr7sHZ8mQTaCQgACYWQrQLQsqDwmcPqEA5wk3ebt7rQpVytnl5qCfisANE6sS8d0x+gyd2QrVPwtMT4rZ8srnSmpma2ARCwzZS51H4qq3zqyq7cvT7KuTwKCdnQAB6tutXpgA9RAEmX1VBcol3N1fcLuNsbv9CMyRPb0oYQ0BXAuhcwXIMwCGigpnBKALzwlhIQtFdQugQKCvw4riZrcwEQffCaDN2Ltgisr2bACLDACLZ6qAawARCh2MfKpYDwpcHrpViQDrCQDdBK2d3QALDg0v6sydn6AZt9ATRqe8AJBmrsv2n/+rHb7KwRTQ4A0Ab7ZmhFEJ8HwAvvWghV+terXAgcnQ0WG9Woy9pMrBDxSX5LiJeP/aVearHD+7CXjAWc+tLL7M+MUKW5LK6iqgMUqQiOUFY87dOwGgedgAJ8CgA4sDYM0AJCoHJFcNW76td4CtjuXbHCewXbm3m//c5xtgTyLJv/DeDBiwWF67suDdUv7c8oTL9W6q1tJ2njKggsh2jxubnvygsYICQhsDrGo2dnKbbyGr3uGwaMYLFYUAHb+8cKMLcPAbt3i5fEfePGDQjpIADz+8zpMAUtHcY+PrEf0LIPimaqcM0BjLJLEJdOIABXkHlM7aNxgAEdwAHV8yW1/7gCOLDNgCvWCdC92ZDcaa7RxBgGrI3YDqHY/A3FxFyiZl7ckt7j8Rvdao3gPt4NH2AGLpsLaMDGg0mYEz5WoQ3eBYi2nSADJlne5aYBI4AKdvAlKSUEbjCKB5DFZmAGFbsMwmvL0Mra7uwQbbDYCdnpnh686WDmwTsFhqvbzw0LhL3gfJwN8evPX26dZqxYz4Zmd3Wmr9qrfUoDCIAANV0EJMcl72eFwG4HKzCKBSjfHwALy5DmgzvwhcDaGZwQYt7Y9NzVAA7qyr3M8HvZbt7Fx37W/4zqxIiSNUjkcCrXiRaf7O2u8C7vBEDvTyAEjXbvRoZgEWQC/V4I3VDfg//LCDOfywYQmg/RmEfY2P+N5sEb8AEPC6n+zCxssQ1AvxttBhHfDeKeAJ9ZAGb2v29KASibgWkgokvw1yiAACZJAOXmCiRoPKbVaMWTCq7gAxgwAIMLC2mO4DMvANu7yw8BkgYg41Ls2FyNl3p5AGlQ3Gnuu90wBW0uAHxcCJAQBohfv4gPCgQwCEOwU1QwBINAAaLssSRuiavM9QHAjxSwAlwS9nZwJ6HfbAxwAiawhNjq0dLq0Rlg4NLHCwePEBu8zQPAhyiNlwfQAelzJgNgCdee4OlQ3CLqz2Gg0fR79EaN3+euAzogCJ2dWGWganW9BEXM1AiQAM64Aevz+Qz/xECoIGynnwbJALxYkNkZ8NRY8KGwDxFLagASIJtsEJu6MAAA0AHtUAqlAAMpMAFpDxDp0glgNEXAFCxYMjD60JBhw27dzJj5UKiCiCUANBIosAHCBQoXCjgAkCZZoQAIwogAAGGFqxaShLSIKammBUkafGAYkEaAQCxOBDQUICBZMowFtCxl2pQpEDIGJKQxBAiQpQEAcLQr1YQSjCM8JvBMt0zgFIMHGa1t2PZDxG4NCxngWMBuAQgUCCzpaQlQQgEZPkyscKCAjydCJNmxY1OSJFQkJKvwBKCngGVmsQgwJNDQFREiDhBA49S0FlVRpxoyFGWACRURpEkrBUNJ/4geXDCkKZsObdqijOAOZwQLVjdGCRwMYvJiCJNBFDZQgEDyQBosAgXE/ZAMgAkfL2MybpwqFZQRDDRUHmAJs+aE6bAkuJJMAS8HpU83vUAGwJIoorhCgg6gCIQSab6AwZYjQvCkA7Iy22wo4YaLyLh0YNGuu5YoUOVDNC4QZBAdBlGFggIAcCK7zT5IoKUVNFBBhZrsKOHGVFDR4IQJrgNEIPmy8yybMALoJA4CBtmPKXFiIMCAJa4Y0BMLSvnCCCVcgAGVEXbs4DosluFmoIciEq4BDGFRQ5k1gZzCiShEkAAABwqgDgcI7CLJECFhEaACAopY4Yl22pmxncfMM/9vhBMg9KsssyD1LYMAjASFAB2WXKoK//5b4gAffKnNBVJtkcS8J1TYaYAfMwMkg2weequbBhpIRw2BcNVQPpY0AgAvCgCQQAInnEij1czkcwKA8NpBBQpUGFBhhBGgOC8VRr/8K9myuFnm1Q9AQQkUAzbQFLVOD9DKgi9cUIIBF2yx9tQWnvDBBAksCXOZFt/6QAAMcwVyGWWUCcoBVXQoQwdBpAupAAL+wy4dbsZMxxAJTDiBRvMgg+IxaLlsVAI+M8usYu0SCMAMSAKowAAINHUjYo1wgOILEtRL4Qh5UznVphVwOECXfYPczjhljNNQGSDTYRoLQ36VTpDpRlz/+ESIWaDYW80G6ICDaVFRlDEobCFBBQ46mIoRMbkhxNt0uimkEDNQCqOQF/U77QKaTWjHAp1DOCEFElAx9UZJVOVp3zEBmQI5DYUsGNemtZtClzkdyEtPAkzQCLuKK05WFww8WUEFW3o2z3ANOMBAAhEK+UBMQsxqoKKKWg4gAd4JWJJvDEwYVIUUQjBeRgYYUL3ee1ndWr6ijvbTOFwpb/NidQHgKC8ADugJkJ+WIeTtt7cYnxssDphg43YKR+X9dtbD94oEIOnG5KHqNiOAMCDR/cUL7KcYBMBAB1bAAQ6EoHgakNGhWtCxJzSKVZl5WzoA4YQpBGxXAiuYfJYA/4FBlKEMDdvAdKqjEWLRrmKEYMcWWqgLE3jiBCfYRLxSpwIe8aQCRkKAGTRUFLxVhHe7K8R9knSa1ASvA19rR5dk1MARnMpnT1hBBwZANEJsoXFoMc4UmqYGMOKKaQK4ggOko4qqDYJEOjAhACyxNfNtwYVbAEQBERgC5VELhxCSwBWMJINKfQBNDehGUWB1kiKSCwJlMM0FHICB4E2gHVBQAQNDICNCJcoOLajiVML0NrMc5CcZBBKbKCefWznhCgM4gOYo4ABYxpIAEviR27LowhYuo4CeSGAKpKWeHEqgApCQgQx0ZwZawcJkZjHEUAIACgBQwDRFIOB3VpC4FP9o4JLTGkELoviYFqhAaNi5JSGYZpAMNW1yHWSaMqaQkV9BAAL/uUIzE2KyOGaRHS0khNd4qUAGMpADEzDBAJaQEgQgoBOQ6KEZEPAWkw0kIh9gCQRU0RQ0QIwAPnDFCQAaAhU84X2ps5bPVAUAotGudqis3Jo6WLlokoiEG0BDniK2BBGsSHzjwyU7CEG6CXDAozIy1EBNcICD6g4UnZBBQs2gsgwIAAtrCQxrdGGYpqgiBg5owwpOgMATMHBGJBiBChjwLFT5wDKAUKnFlOabpU1OIE9rSQkpQIER6aBEVEMRANg6vlvucwvLSAMGJvDPGeFwLBJYgsqM1ImF7u7/qWEIQzYycNmiGMISqlyCUpbSpM51YAITqAFIKxlQDVTLDmktyb4AazEgaQiMBWNT08gogVZ+hAC73a0JdnuAT5pPn/us3QAwwIXDfpUDnlhsfeZWKf/tjrJh6CHAiqKsKFykJZ/t1He+Ji1LMvCbUrRXSbbGU4uB8Va0pa3TmraseEIASjklWnxOdsuetpAbhcWAB5DLBQ9AcgBXMEMY9heAlumOumHohoZ+VJbAJCMACgggaiI2gIxx9AnanGFqqTUCsVGSPQmxpQvNckqnmVK9TEtHFAqgikGQUDoXcKRGDiCBn7gtv3IcLL/SYFwBp0HIUXBoyxDA0GIWk6EB/2CbVOOjix0iaSlo8FUbNqCDFuxohilQAQlSNQJFtWNV2VGGjtkxJspJDkguLVgGCEABNKABrwm72nRQlK+dypGf5pOPmL7lFxYZohD+SzICaFDMQ1cqANmABWB+AogoXEpJWvAPBiCwAUHowKt3zOaMwFyCRbkOOwRboflMWblbsZm2U7hCbiFAgFg6YLefs+8ctZjFP7M1SGGaagIMjeiEEjO6AZAdZgaSjaKIwACenZkDfNAGi6rCB574pwK5nIobgVoFPUqpLW8J2zXPlr1t1p6dUnSAK7BAF14MUrsDS4h0jG8ZuhjwrrFwBQMgmAYLnUiRoOs/ut1vGYZIQP8hMtBZRyylCFZuw5tVAYEl8pIDPUggmM1TAkp+adRl1qIczYnquY47HTGdjp3zBLHuLYGWTsjGFMy8BflUDBBzkoCQsCCB3RoAFE2lSKVUttSWheEDFRNANuZmAGlq4QWOUEUbNDId74qWtBwgnNhyNALXTbCt3JAjbL2o6nEroE7AwgsaRoRG6swyDVHIgBrclsu/lOWqKJVQBn5VgHwHIAOILBICJryyMCRr77zwrNLd0HCN9JVOS0RuDcL64RGEIMBpOFmp9fxxLChN3CI3xBIIkCdfwXrW3XNcM2Hx9hYKREKiuUJ8bs4RBxigAnSj7EQcS2wzlOXeyTCA3sr/EAOU/0ojJjgqJD0w9Us6CEID+CQ3yhzYFjLtOMlUQ1xpC4tWFgAkIomYBHRhT/decArKGC5sgyIlJwTJEOqKmAJ4NzcDF7xSc2OEAJwwAEA1hQkxiAEAeCF87dkNejO+0ZqA5Zsgt3G+Utun6DsOQqqViKg+l0qGAmgYvBIEQbiAk6OZPsKCC8oAWGAhwSIYg4mCBIiC+hOAv7AE3DIABaAulTCwu1GZHkK2bFCAByg8LVAE4Oue0YsYXbCKH4MkAdOFRymziuE4PWPAMRmOWXmLBjgDWLC7kdBAmjEjkyMJv5iCKGiAisGlW+MG+yuKDbKKKMC9hFKJfgsDx5ob/wWIAzJopBTRHgLInqGxCkDQhSDUFz6JD/J7m4IpH8EytQYQjsGYiImAnKTxvBPyFe3xlSvKDidIBjNogPFhQAZcKbOIFCyYgmzIhgJLQ6GrCLxBMEgoBGiKAdNwgzmUNTusJzy0Cvn4kfg4H+dDwhbCRLOAhYZAROqaiA+ABRGoEwhAgw34kFcSlnUDkoTIBkgwA1vCRMHiGtHhl6LoRdszOKMromeSgThQRdMohv4TPtjzlKlIgzdCJckxnwRcoUtkwC1ImokKxTREgG6IJjvBtLvCAeKTNV+hJUAARTM4g+GSxq4THRZDJYKAlcvauwMDBWjajybRCIjJgha4F/9HPBYPjA+BKLG3cccdGxOGKDDq6gQUQAF7VABYAz2+wDAMGDsH8Jy/cIIPEDq3yy9MlLfKsbmEsApYYQSUiIMHAMfTGEcHwAFfSAUO8BwbYwGrSAgh0bGDBCzoI650eIgi6YSl6gQEkMLcSpHdOkp/7B5P6kQiYTDxwUl4XCmQ642LgRVUNIA4XJJiIAMCwAEfsIBtExb/y4C/YJHsyLOPDJ0sKkif4oa4kEGFMslOaAARsIu7OsYP8Qh8qS9A6MMp+IAAQIEFEB9plEZQsjeWAgxnJIdcOJcy6I828AFVsSJWcoILAkzVwy9QCh2uw0lC4EXFhCwUCIAGSAaOuCv/efJH7/MLJ6C5N8rMX7REtcTEwQIKqDQLq2CNGySDuZSZAljNIliV77EnjsyzqSRMnpJGbrgdhzrJTqABGrCVVhIJsjSo7BE9y3gjLEiG6TIDfjHMQRQu+GCRWcwGuTwXplAFWesAHPiS73nKpgGsOTofW2RQg1SDxEQAFFBPe2QEjqCxu6KOvNBAiDkAv+ANhXCou6GoeFNL81kGZQISzkiIDOAFAiBKAW064vOcAeiLvwzMnXo3BiWf8STPuCmwCj3JBWCEX6Gxk4tJGxsAzcqKfAkKRpiufxETFB25ArDLiDGABzCAuxNQ06CA4LGMGz2WpwzMEvM4nhIuqizI/65ThqGgUBRIzwVoAJV0JO+5URZgASHLChtDRw8UjNo7veYkBCdgCkVgAi8VUDcwAUiSgBsNwhxlnMvr0TX9UXjkBl70u/SkgUpctjyRtc6hGV+5Dnozwj8lEnv0wjMFpSvQwUQV0BiAJDHVw6tQUApCU287nz4bLjAcE+U0NE7thu2pDpq5MarYlvQBABbQF4VwkR6CCzSxndspBFd9VU1JRmHBMEcd02H5pErlqfGxoMBawuiLi3oUOjp5tWHpnom5TKD4DnScySgohOlKw34rMEi4FGu1VgpoA1kzI2ryrFlyrUrlMX0CQ3LdAliwzzA4SQRgBEYkCc0pqDSYk/+S+IsDKKinDAwYTCgaSCg2BNZOyAVB2FeTNQ1VIICU2lEH7VHz8SmPg8dl2DuECgNYWALNiRgcKAKKPQB+zNbvYL6nhBUYVE8Z6AQE81hQeICYOVmn1QIcuFg4+tY0bVCc3IIpkLCUYLAKyFkCGYsrKqAO6J6smCUL0pdf3bcKtVD/UShyqNan9dIVoNiyeC3A2lFbEy5yzaUMoFfq6oauVVcTWD7S6QBGvaLvuALCIhmC8Fj1NFpjKqYjuc64fVUEZSuVKsyPZFA1tVTBgoVsQKhuELsT4keewBxhORYYcoCp0Ih6EoyEqtCEkoGPPTTI6r3KfdUi4Al9qVu3MRn/qk3A2rnaq1ywD1AA7aMxkQg+R/w8jSKJJaBOh6pH/zm0oyWXks1dAeVZH5GUSDkZSGmbaqRSnOSGKaAu/jEAB7iADSARRwACIEAjTIszGrsL6wjCvkUov0PJX5MBRdJeAXW6SGRGjnRL2hHfthHBnsrND3CqZbsAVSgDcagCCq4CcRCHMnAEQQiRJI2YYzGEDKAu9TQyBJDcfCWA7AXg09ABfNHIwITKpjmZzGin8H1Z5zRfzQyDZaMA5lAEH6ZgJrhgpqPfT+2+vxA0USxayVWAX1Hh/QDT7ylg1UuWZaKtTcyzz4S5ZEioHe7hQ1WEKghicXCEQZiO+h0JILxM/1T1u9ilXcjqhP+rMCduiv67orhrmsCkGEmZq8oDVx5jwGWI0gDYYVUQBzA+VCYQYzLe4JriHGHZrGygXkSLU8gCBV5o2jlmigLwHqLBY5ZymmUimNkUXo9bYN3sYkP2YTC+YCFGIw5G4/9wDwGYXmA9SRpAgSQDBbhVYTJYgnjlyU+mmE0cGHfEr3wysaNQ3wsYhCpQ5VW+4AwGgg2mDruYtSu4TM1MCWJ63CSTAeTN5KbYCzsG5hiGm8pJYHCFUJ8SgCh4YGZ2ZkVg5TFWo4bx0Go+gGJxxpSQ3G4upktJOHC+AHrqw78M5vAdGPFN05YVrHTQhSMdhAtWBCL4Yf9WLgMTUQX61cAePJb8LeGjpV1Eg4ROIAA5dmI0iIoo6UOoXOns2JWIoiBvM1gIHSxLOFJHoGAimGgLludFphrlLQAnGRpKeWNiSjL1jEu9cWKBlr0g7EkPjFSAQWiTsbyCFSxCmAJ3nmCJ/mEJFuL4VYVp9lCSEIHQBTrI6ma/iwPcnePfAwDZ++W/iMW4HhhIkTcd82P8EiwscOdm9mGdxmBHCOz3lWYz3kAFCEqITOyPNiZy2eW4BYL+M4Args2NhMqqgGGpTuiq5TEwxIKH7uu/lucxhl+wFs48iYqfI4elfZKlitN9IwffyeRxrICGbKaDsG3OiJ5oDV/b9DMyFaoYbagdAfgVNEhlVWaCCgbicQjsGLsAOfNQAogDcnmAByADNCCAB4BIyKJuxz6XgAAAIfkECQgAWgAsIQAcAHkApgAACP8AtQgcSLCgwYMIEx7E1YSSKFEOH9IRZcQIRIUYM2rcyLGjRlwgHdKZ+NDIJ5MT6VDC5bGly5cwDeKiJPLTyE+fxuTYaRPnSGkxgwodWpChQyNIxiBBsnNHjac7ckTNMcamKJZEs2r9eMpk0oqfmDoNwqVskCA10O44Mmbl1rdwCYKAoXMn1bpjg0zgMoHs2Ro7digx8iWu4ay1cIkSGziwVKc1JkSe0OOp5LSAcxyBcbgzzG0zP0mdDPhp5ckTONTgwFo12qc8XHie3TH0aL17a/SoPGGvBw9lJ3jicIJDb081eKSgzTyjNFGix3L5fbZ3WQ/GfgMXzsGTd9M9eDT/H3+woZHbZIFzSY8dg7H3fL0LH949snjy+LU8Px/4bNngQWD3XnbG8NXbcfR154kG+Y0nTSB0RJfWdGZNR2B2v/E13XbzyXdCg82xEgh0Yk24HXsZFmjdfx10cCB3rYBImzSnUDLSGCnwwNuBngi34ou9deBBiy4eF4KMs9EYkREwuPAKAyGccMIKVKpgpQZUSqngBES2GJ8nIyDZ2Uw0UQQDDLak+QoUUCBSwhdwxlkCIlCoEIJxRBrjoncximkYmTQxicqgg74Z5xcRJAoCCMw888UIIfTY5Z4r+PnnTIF8ceagFqDi5qFfnHIKM6QyE8EziDxxgidcdDnBCTNY/xoXK6AFYsGZZ3b6KZwWIBoBM4suyswXUETKJZFcHCkrXLTSiKYtMHiKyLRfWGBtosAGu+gXiGjAaqstTlDpsm9ZsQ0IX6CSpi2oWICItdX2iq22i6KqQndldcBXn+RqtQ0rzHSqLrQwWAsvnNhmu+ipUGiAb6tceDJuv1mxwqjAaeYaba++/kqvqYgwgC+RE2RBsVYABwLDK+yikqunHHtML6MRWKDBqsd24IMQJxNlgw2nwHAEDyGkwIAL0BIaKraJRkBzBOne3OOBO/c8lBQgWDB0a0Uj7QLS7SJ6SsKmQo2Kw/L15oPVQ9nwDCpfu6BBCCHwwLItDGigAQMj2P8ib6nPPBOBJHemLTHbQrHyNpqD4p0Cy6g8QTcPrIXAACqBZz64t4ZPjPhLbqvLAAl46+0CKukykLdyemsARQmGQv2Egj16wu/nLtmQNZTEnaCCBq9YIKoFtrzyCgnuosLmp1BD0d2BK7SAO0ys2BCB3Hr/zoAtiIK8yd4GS2voozjvOz31rERQ/JPaw9A9M4iMMLfr07opOLezv8jz+S4BDAMJxnMSyxAVrGpBYQRQkEScmhYBRKhAPp74EP9yRzykkYAEDHgF6hRWM4MJjmmJ6pZ3OOA6VkywJTYY2AWf5LfuLayDiBJco5omibmpAHVfsMEJPZJCW1wwgyRA3dj/msYrCzSNVAwMWQu/UIJn7LAjrPiCD38IvIIREVSnYiCcpiWvrDnxiRx5mw/zVjTVXQ6LUAMVnJooRQsMCwRgDKO6MGjGEZDAjhxTox7NZsQIxFGOaXIBANmVxivqMU7PQCIB/7iRZ6zLFkhj1/tMhSgaReAUh4LdB7HFyI2UAAoBBBsOtQgCTEqjelL4GQhmMINEAquTG5GE445whAyeEWEIa4EQqMBLKkhBCmCgQiu/wAwdwjIjiMBgjnigHFpq0GDVasEQBjGPDcwDDTooQzEkUQJmmPCYGZmBHZ2UAloyQAlpmqOnJJGFLMyjmhR4pw6GYINtgFMjM2gBCZSg/wRaukAJBdtimqblznlQ06A6YAIV7hlLITxBdUdIgdGeKVA3UWkD1jRoGRbK0I3kU36qS8HepGUt1EliBdXcABoMyoRDdHQjNvik6p4EOU7NyQInxSgaMDqIlr5UI4prwQiMN1BCoQJ2EShBQd+pUXT8VCPPEMIIbBlERAxqWiWQxjNWgFGmDqIMTn2qQqzwDEnIT2/bY5ct2lQCt2FUpe/8qh7EmpBt2GBaqGBAjowWyXWWlatoCKw1y+BSui7kFBe0owaIphzVPaEFLSiBEFaw051u4KtSMKxBWIGLU7xCAyJdLAd2wxoeqOAJX2hBEVS6gUU0VbNyYYU0vvAkif8yc7Q94EAINDACSTyjFSsogmAvW4a5wlYLTAyErZTAgE3Y9k4c4MEtQdACjFLAsoNwRGY1K4V8fkG5qHjF9/TGTGYaDRFw+i1Xr3tdg4LBsFKggiRaAIXvSlGvEs0v6zS4xla0IgvXDaxBb+CMn/7MGvNtxRNU8F0LTJW8esvv48IWgVYIoQzZZcILpIAOMPxCEYu4pxSsUQJUtEAFVKKSfU/cuhbzYBPb8xQqqOQGClxgpdm8wQ+IQIYYlKGTboPCglHcmuKgIhD5XIHe6ibhifrNXZJg5zrWQYF23uAXPAZAAQz6xEV98mbFOQGXyuKdI/+1xWgmKscs8IxsluH/zcWgApbJAAAAEKAARTDZ+awxAzo5bC/gwgAGTBAuWwTCBtYoRhZ+h+YMsutd1XoGFW5A6SpUQQpzrrMB7OyAdWzgx2xjpSSegDYuGAMDBxC0BA4AgEF3QAWntMINFE3q1sF4dE9+lySG8AJFiMMRLzjEDxRB5wfEwQAGiMMBCNDpeeyPXDaYwXxVIGYhnRoDAzjAALa9agCYYAWx/sULiqHgRgfRXTjddRUUYWkw/OAHVSADGR6A7DiIQQGs9jYONuAIWT1jBnhbgQ+4JGhBb/vgCG/1CaSBaWf8ogpCaMWDNaACR4tvBpOm9A30wIkfjKPYBniAKewdhzj84QCs/3ZAlZEUbUnUCU8mAIC2EU7zbSs8ENY4BCc4cYMhSPWOU73go+1nDTAYnQi/4MQvkjBvehtg5GIo+R8qcPI6MzvPQyAPOqR94hV4ogOClrkEaj6ANCA81SoIBBXQ8QOl+xyBU7wgCaDgqSYWHQw3IELb9XABkD/d3mLgxR+mPviq67sIOqANn4XQghVUGwMAkMCqD/CHsZP94AfoACJAsPa2cwIMTGD8uxAxxXZZoAUzuHve3w2GGGga2VEPPC8UoABeVID2vBj7qgcNAQp0RrLAHTjY63wAyRfe8mVPQxrecIU3pIEFA/DBM2xABQ/vXNxCkET96AQFa5HgCTPoMP/e9b5jOiP76WJIvwIqwH4FBEABgZe8BJZQdQJQYBBwibjUOmACQRd/1YNnfGOnfG9QgGXnfAOAASvgTdWXdNdHBEPARnTSOBQXfht3A2CgdETgek73AOl3bxUgAuwHCbRXe0twgoXHagQAARugFcVQBMLXf5E3APJXeX9Af38gAsu3bcqnfJYwACxwACogadXnbjundC8gCTNQAhZAd3lDcWuHDodgdL/wA60HAPQmBqZgCul3e7eXAAGQABWQALZHdbeHe3EAAA4AAfMwFOIAg8MndpJ3ghIgggFYh8rHBsvHAstXgEFYBBhXhOjggJyADlTwb5+EQXsjCdagB3r/cAiU1nZXaGxayIXrVwHvlwCaGIIi8Ae8EAe8MHu0B4opBwFCMQgOUGcAcIM4OIc3OHUiWAES0HwsUIBvYAm3+AZsMABFwGtFCAYcd32GOF8jMAIqgHoc9guHoAeRyAnEhoUhJ3IlR3vvFwABwImdWHKhCH+jGIop14YwMQ+pGHnGx37sJwKd+Afrh45R4ARpcAW1aAm4KI9vMAAFsFFGhw564IDO0HFSMAQK1lvWIIW/oAf6uHq/AAQgt4Wx537W+JBimACeqI0lZ28KoI2b5nsw4XqrKH+SNwBXYI6eyH5+4AfoKAJRkJJO0I6GAAiWwAYOUAYvAAb6aJBGd5OG/zgEQ2ANNiCFP4AOiqAIYCAOVVB+AJBsIbeFgFeN1ggJ76cAJAiK6icGAfCBJWcADgATFzCOrFgBVwCPLHAFIiABFTB7FZCSaRAFGZCS7egETmAJgOCSy1YAEFCXBUCXq9VTL/ACGIgOg7hz6AAEg3AD41AFN3ABR1lvT+eB9xaGYuh+3HiRHxh1JAd4xwYAGtkSbkAAdTZ1IXgFzwd9IiiGU/eVbKmSb2kILRmXcZmLNLh7KpdNTMBrGHgIVZiQi+AIhpkE0Ah4sQeKDqmJD3lv8Fdy6UdyoXiVIVcALlEFrkd5OWiSURCabPAGGZABJcl+V5ABKxmPcGkJqrmaLv+ZBiKwgmhQAA5AAHd2f+LABExwA1KgB++mCCt1A4oQA/Tmm1oYByUYhg8ZAJ3gkFVJnArQCZRZkSFHAODYEWWQigdAf5y4BmupkimJjiFYkn4goYYwj5YwBYCABS7ph+WJBmXABBi2ARRQlxk1D8DmYSAGbFVQAE43meqniTb6kA4Zme1XnJQZdSEXYh6hkHV2ghXgB20ZBX6wkisplkZqpGvgB9zpBIDgBNfpBB46BVPglmnwB2oIAWjwVW9GTRSwDjjgAFvGBOLQVRQAAMbpm50QoFQZCwkgp9bYCQBKmQFagsf5m8fGnEFKZw8agm1JpRNKpUiKkiiJpFWKpHP/+gFYGpdWGgVimW/MVgBf+mZloAPzQAGrtakU4AAGAH80aqf/GYZmQKfWKKo1SnsMOZV92hKLAKhLMJZX4ARvwJZPep3YWaRQiqRrgKVTsAZzygjAigVYMAWGIAIAgAaO4AiLUADqaWd0aU2D8FWDkFEXQACT+ZCkCoYBgACxEAaoao3pR6oAyoXpF5ViYAD21xFA4HqhqoNpII/yKJaK+gGM4AeOaaSMUKXYuQb4SqwCYKyG4AQVQAAbsGEd9gJMAASLAAHpWakBZlDzQADJ1phv+qbWiADWGAYIEAYfkKoD+qbuh673JoI+agCZqRFuQGdLIAEpWYDyCAjKd6i6/zqnfpAAv2oIGVCwajkFAoClAzsFlhAFIsALKzgPGmZ0NmmfznoBdEkBFACtnxgHAWqgBiqg3uqfYVCnjUmuH9gJCZCzxWkApsgR0EqOVxCz9Li2vnqdayACGPqkGaqW3KmawCoAQTulflABKmimKyUOM0mQYEAEjoCiBJCDWkiV3GqNNpoAXfu4YMi4AQAJnWAKARoAsRALJEh7BuCnG1EEkDd2t1q0bYuhVwCl+YqSJZkBWMqdRIu3QruhK3mw9+esMRCxdMmiioCBVfBO54lsphCcjguGkCC5kluqqnqjYmCgcQC6GkEBqLZtLACXt2gJhLqSKem6aymWIkCswP8qtHkbtIZanoPwAh2Wd1WAuwVABmZKAYuwUsH7dFqriVobBlCas8LqlI+bfo6bqve2rtCbERCAAZbHAtVLrwULnikJpa/LCFGwBowgALAwBRU8sMc6vgKQARWAlfe3tH55dOu7CClqYxZbAemHuRwrp5sbhpsLsv/6uML6fh8YhiQotu/3uS+AtgDAg3wIlx/KmlNwq7UatIzACGuwBnMQtEJrrIBgCEErAHNgwVOQnZt2ZyxYBr3rl+nrCGiQraGKidYop2EAueIKuXJqBkcMsDkbCyUJhv0ZC2MorJrICwVwAxzhehJgCT88s6xprLiYkkw8BfgqtBhsrFggAIb/AKyMMMVRcLAs+LDpyWks6AiK8AJeHL8FYACU+7FmMKdhcKplnAAfUMofkMRyugZ02phz2srXqACfqwh5HHn0eItS+qFTAAeAbKRUHL5Aa6y6jAWwwMTCPAeOrAAF4Ag3kL4jDAHQqp5RiwYQQAD8WaBlHMphMMovHAumfMqbu7n2W6M3asOf2xF6TK+2bAiIvM5HDAtqkMGNbMxTgMhwUM/GSsENMMVOoKwFMAiCi4FGp74OewExkKIGYIaaWMZm8MlzGq7hagYfsLkRbQYSmsSP2ZgLnQCfHAuvOst/cL3XG5cWbM9TyggNAAewUNINEMUfus64LMX4upZHW2dr//ilgouTRAAEboAGFmt7j5vNkiuusbAGp3rKEpoBFt2fmmsGmhsLAdDRG+F6f7Ca84i3AlDPcPDEGcAIsAAHijwFjQy0uazLLT3PUtzIK1mezpy2nHYB86DFijAIlUXNCmCj2QzUaAzRp6zXHyCuSA3OjhkLCx0LwZoAgTfAGBEDBrAE6gyiM9uhQFvPLgnWWD2wFAy0Vz20imwI2cZqgyZoFNC7YOBrQEDQZMCZ6tl70kwAtOet2HzN2fwBpyqhH2DMH9AASZyzdt3XQ20IwrquWTnLEtDYLgnELS3ZgBDZ9qy3I93VgDwAJjABGgADTFItqKACFvYCkxbQN1AF4//wsHdpY2Gsjma80bIt2yDbzUY9B6cckcLJ0IxgCB/glFjJEe9qALHQ2I4NxPS83HCgBsqgy2ANC7BwrG8gAR1wAkcWCNJACZhULf+DJavFb/9sdC9QBtdEASd8e4551x4eAKHczQDL3nLKfq4dykv8AccZ3BrhCPipAIZA1iAal+tsz8eqt8tNxU6A4AymXJrSJGq1MgyA3UXwzOt5WY6A4RSgUps8e8Ipp2CY0B5eynMQzxG9uRXglNYI0cswB04twBzxcQ+gAGugty59rMcdzMC8DHAwBUv8BgooPEHjArV0NI8EJSqAcS9QBYsQAwWgiszWexswzVPXrWbgsSD/DuKhrNf5nAG2XcpyvOUI8AGGsAyMkAAyIAPPyxEtG6oZYObr3N/BPNZwsAywIM8H4AMawE9P2GKqo4hTMgS+tLCKgGFTi8UQAABfmbMAigAf67GkutAhLsGPDs7eWtT1vAYBIAPAzRF9t9hpoM4YjNXUHuDUjtUNAAuGcACUUTS8ZYwthkC/wwEdgAMs+FXrxpdDwAQ6gKKfetCx8KbZ/Ou+/rGeLNsQPQcN0ACHDuVOHdG7cOpObaD1vRGLQADF146HjAVYbe1sTs/KoAxs3uYHEDEcYDTFWHGjg0BQ0HUdsIbtC81LPgg60O5LHry8UK6+ftf0PundvO/8Luw6/wuwH6AGcPABc/qm5RzVMre2MS7MWG3zWM0N1l7PAR7xcGAJGJAaDBAtBxR0faN9UNAKKpBnlKYIpU1nVreGSw6xB4CJb0oDCCDs9X7oZrDvpYz22XzoIKvvpLAMAuDUyw7mG5GKf6CSQNvVSF/Py8AN1w4HEU8KAZ4GHaAB3PMsqlOMdtTxQqYBPpAF6KsHhSsO14SeuB55PJsAb7ryoVzvY28GC1DbXF3Ba3DXt+3OyiAAZakAscDsO68RdPYHRrrI6lztgB/xRG/0ysANgg8HhH8ClmNGjGYlT/BYLfAEAmemlzUO7TkE7XmiNpaKterUKIACY9/Xn48AC7DQMP+vBjBt+lxdz1zKbMZ2kWebEWAsAbq61QPb8AHu90Qf8YFPCn5P+KnBOhTXOgzQ8ZAFEE9WdMAAoEABAgQKQEAzT4eODQ03QABwJQGCTigQmDETBsHHjR8ajISlBlYDMx8+mGkwBxacNAAwOGjkA0fCeVp07uTJ0w2AAxKuZMiwZs0ULFjgvHwJB44yZU7VKONWFc4AExM48OChwWuKFAxe2UKFqoWKEwQpiKsCBCFQAAQcQKCABkIBACyixArQ6WMYjx8XDB7ZANbhkx8WkGwgIM0BDB08cdCgYoWQnpl3xgAqIQrRNRkMJYXDbdnLqdxIQa1KipuyZVg7cDjBI4X/V69iGTAYoeGEJxMAKFQBc6PtRIQK71bEAiiKnwQBwnAMvLFwgzPclsIRwIiR4aaWJADoMGGyBigzbFjR3BOvBL2WnDgRTRoq1apbCLGu+lqAhPI4COE23LwK4cAQTuCAi4IUQmMQR8qQ0JFBNqCAAggIOOAKS96IYo0EYvHug8AWE6mBqZwSYI7vGljGqWUsgcwELrQKAYoSSphBivZ0KgavAwZg4Y03LPkMEKWeqooQQrZ47bX7YBFPMgG5ItC3EDQYAYoRVPAEgwOW+MOAuBxYiIJ5BrkwIoT+YCOKKBJI4INYLtIopcLU0A6LKVBCYCQY34CsAy488eQEFUaQ/0SSGazhUTM3HACAlyuiuGK++UZzCo5lliSktaiigsMQACfjYKuwNtntlbIQQYUBDkw44AAC6soQAANyVY4CIFl4cw3AoqtugQ/mmEMNNZZygpGVFtuF09gAMCFAr1RIVBIdqXi0JzcImBSSWKKYItMpBNh0mU6ZdFK7TbGYUivarsztFRJ6SwsACQ4owJEXFCljELsOWqgACZJ07oOPpDMDJJXmaCDUpRogzMXSsBhA2kIRfaKFJ1ppAdsZtM3MDTIAiKOCKJwAxBJDnDBEgCSVJIVJUUlzV4JpaQvBNrC82mQTDTiYwIOgMqjAoA0cKoMJJsRxBA27CDBABCemiP/CI+kCACkkhzdFVuLFGtgOCwkiMw/Rj7FtQQiQbcgMCG95gY8NI1WeYtOXqJo52aSSghkQ2U6t0soQOPCEQQwGSCONOWIJw48/yiygLguhRoNXDTPwA2sUNEJgOpLwZrGwM5CFY4oDpj1bg41BLmHRRkeWeokoiARkPktIg3EZqmrmEymn3ohsshNOQDCEGgjCIA1ABKCPxTAMSMjbWWk9EwIIHCBAAiMR7hwBGkBaLFk4lILFYRS5MV3QDiTzJEsVngB5hhkYdbSnC2avtGqX+94UP/VxB2ZJag4LyAMvwXGgBgwaAJKwAIsVNeADnajVPCh0uYNgDy8iGA2fnPD/gb50IiMgYckZNrUUY8GidFC5Cnmo1YpWbEwIOqLfDJ6xLZ1wxgC0q9rdkvKi/vQnKgIQQFOccrMD1qAHS+yB0IwxgNypiIgkQsADCACBpElIHGW43F2oJ4E0OGEOZkBBRr6HgAWUblNFZMSx9KQMQsQmMoWizBOEcEe2MYp+z3AbTy5gMl5EwRKAOOF2nHKfQp7QXZAxhjHMY6rDYSB3iEzMwjqRqzLRBUMU2ICFCuAAE0ggAyTqXOf8Mp28QQUW5UIRf6JFKEOdYGM5WhS2sAWCPm4GVxXIgLk4dUT/icopTVEKzEiFgWk5cgI1ONUEJAkjFp7ET53IBQCAMqvI/80le0BRHMwEgDDw0cBzC5hKVMhXEjWspj8Xo5F5OLCCVsyQfq9bFB/ZsxO8LMEJMCuf7rBAxHYB4mVK8ZsTruDC9hFqAhNgICF5J6rvrASE0ptcwM7kAANU4AqGQMqLYLGwMt6JnCw8orl6pxpuDMBsh6pWK+Y3A0TcUT07cYSG0kAaQDjwn7DgKAEN0cu+CcBqg0poI42RuJt+ipKGcdhKoje5NA1CTZvk1ScJkAanjPF7nVsALEg6zJLcZwvLSMNKEQWFJ8SvBTQswR0lsa0/cs+B9IkCEVmUgQcesWWagplBpdU+E2AATAP4oVKVsRruoLMljFBAXBJyPcph6P8thhjmShCgkcV49avo1NtYy1oelqatBa3A0euE0IIW7CiH+EqD7ZzwGSIyYg2MQE35pgDUl2CBVGUTbOIs8UsscMNJpFiNMkyylJMwywAH0dCs5OLFDeUuuLw73RgF84GwPkW7xnXNFpykUhoZKgQqKK0kTiuJtbVgBUPg0SISYk0JFCkNlSIKUZKkjN+toWpREAEH0zAAAAf4RZwS7rpesyljNcA7a2hsQsw0MApoDyh/YNlNWUhF0Gm2n02Bo3f1IzxjgLYGIXgCInL0uhGkVSCtoIIWfmJNKBoCEFe4FKbu9svyCdUJf0jIAeQb4AaSRj9M6k9x4dCSw7BxCiL/QJpUL4SmiEAAB9r7baeYBTrDTOUMiJkKKbzLDu8CAgMeWGgQzBMCBizKtE/QwAo4UIQhaEFSQWLe7SQgAjipzJflWxmpDhCXvOQ0DRIAo0CVQggwO2nIB46YSdi4XIEJjKqfDE5SX9SdMBBLbFNBFoe9vIVEi5nMC13oiBkAhUUJoRVungAOyqCFkv0hDfKZT39ThqQTTmFlEnAAKDHAPTgAYnEChdkyEA1qMAtRVNI8SeMcMI+JeAsAc9HQHwbgBCygy9idWsYUFDMSZAnzKVRBNphFTeoapLsGxotfWk8wgQ44QAfFkBQYDcFRJwjlDTktH3CFeoBey8qhMTsk/zeaxA6ED/c+JjnJGQzTkqNZU3LZ0560OwOI/hyZJE15kpLKbW4MGMPM6V6i4IyXIB8QhABlmIeGJJDTe792ZbhOJNnkAoA0vAhdprnPMkD9cf0U15xqQBHRUbRkEQD8LnWZR9Pt0msAvAFd0dyUdogMlZ8nnB2xMUaNlFhyQ03GE/BuEIXIsMMijcYQV2AeATfFbyewYNYO1fnUlZF1hCP8U4QQujIOMxKHrcEBT77L5D7Za5dL1+A7jwoQjW1wD4M57+wghCXGXGom1oDUXCCINWPw6rMvIYxJMcQg+R0znTaHoOiC1pM8DHQn7Wc1yYrSSCpQgDQ5AjkZkoDiev9piNb+1jTU3fanvjx55G/BYhjwerrL7AHlTYoAg9DJ2WU9Gue5DElGbE5O+5bt0pjGNJ8SbpP0M/l1sbCcxt3OFHhRJrksBHsarDhQDKFt8hs8jnhPPsK5YQmV6joz4wIuOKrEOQBeMAAK2IlFwJX4ag4Z8z6lWAY+Mb3vS5L+4DYPa5KDSzjDYiH1MySDSjq54KR5kCxvuQIHqoqdew0mUZfj+7hk44blM6pGShzFkYD3QwM/AoAlkIAIzCkhPCIL7KeY0badGzIYzLst4I+FK6dNyQCFeDLD0xDFwbYp6BBsY70gKrAvk8G8iyMKLCvBArA36Js0aCzq4wnO6D3/S7BAAioSCZzA3SGwAiOyF5Q8MLsPPlw4v8uAacMiu6AAaZMLCYOv+9O2IFIX5GtEQgi2QXrDAThDaBkVBZi+ngACMggSKBqk73tDIfy+1hO/L8u/qjgsPRwrnuvDFCmfK/gz5TgTNtmem9odbsPD42vEyYuRK1CcuUMSdBEA6DAAHuyJBqQzUMypN0zGOdy5TtE/ygMV4iIF9DvFPvQ7qFADHtMeM+EVKQuOAZAxJ2AZQhI/Jkk0rdNFJsSCKPgDTgxFLIgcBVBAzSCDB6AUZiQSOYRHAksX/Xi81+i7ctsC4rpG2uMOg6CLpfMiwhIPaSGASawydBmyyFPHySME/wFIut5zoJyKHGsqAM1wLwNoINOzBF/ZRyF0xp17wU+ZRqggLqA7LD4sLvVRg4yERcMDACi6ArmwwpU5QyQ0PzC0SG4QxisASgqcMWtSiPb4I9FbmQ4xw0HaN08Myk8xNvLrQ+HSQ3bou0PqwwxwR+VoriuKsEkEsA6hu/BbQotENgpcgwrYwhcBBKORnh5ZhE0EsDRgAbnTy7Scw2xjyfwjH9boQP8DwXHjQwGolbqYHE26HAfoPWvaNzZgA0B4kX9ykVzUxS8cKz8wAAVgBMzMgCvwgziAgB7RAs5YghwEsv8qkjcYgD8DgFhYSdfgHSf4swOIgtI4RyaUvWt8Df9YmDYHwIGB0Z7BSp3t6RBfiaJvaoBdKLC2RLRkE4B5TIDyYYQ6gYRcSE0tWIQ5AzIgoxUHWAed+Ik1aMGosAQTwIEpAwBA6KyB7DsoUY2oeAMJeC6X+7NpkZUBILQ3YIN9a45YGIwzGEqiNIQK4AU/yIAEgARIoEfvvIALiIHpcTDjLIKeKIYHEAEkQaQ0aB8c6IADIKTDkkH1CRUoYSEsCESFlLIR9U92gqLm/KcMAJ1Pa0QwHLJlcII1iAVImEeQ9E4izYx50EmlyEY4iE1kijolMUz/Q6yTcjQRKIAoezp8YZmkkBEH+IMpeIPg4xNmQRH9QFCC9C6DMw0scAL/BXgAMihSOMUfnPshGHGXYUsK/JDBODokpyAJ51lKapMrgfKhAZCUnDLDnPoglsgPzjykOBo+AeCFN41TSl2tIIsZgjqXZxTKDWSXiGmJORCA0lM6SWktnMEXAEsIlcmXIAMERuAIF2FLhFuGPxOBBY0DAniABxjSSqVUK5SuRGK91nvBMvUu6oqYUDUWRsjNyYmw3jsAwMKXhMgA1AEKFsgpbzODxTA/9AOEuYCqXg3X82QtB0okAoOR8SM/8zOsF2ERZlmDKDCICzEBxYkM5SlUB6AxawqKfYOFleAIyLtIbxVXgl0t7hHFTC2kTQ2iUvTUEVEJQGzWDqjXDjgq/wAzE0P8ouYpigQwAzXwuRik1WIs2F5FA3zZN52CEU19xv5gEmMLwwFzmI4wA0YwAG2i17I6qkwqPMTLUkCYAkNgljnwx4TrUV4lWUrlDChKPdJgPUW0T/3zQjBjPQGQIOpYLgyZM4q6gEWYh0WYP6sCirYzBJXALsgTQ3YEgJxAWkqttzcIwhOqO7vjj/Ert0d0ildFgAAQgymsC6jpWiBwBMEFgkWQrPqLL4GiE23NwH9iBD/ghaNlW++kt5M1veYhuErsOW4L2KJFIUYIgwCAtIZwBHEoXdN1GiBIAru4i0Nc2jUgkUU1CaeKhUvcAMkt0kE4O3sTAO8LVrsbvv+WzcWxWgrtDN2DoIBBYIIqUARFqALTFdx56KLs+SLmMYQ58IjF0Fa91ZrQHdnb7RGSOYC2g8eYgQ1occY0lc6E2xNGiA5IQ14mYN4qcN7nhTYM8SLquYKk8LbACJ+PoIEwSAAFKIBX+94esVBeCEeY48gjUlmoUER02Tv0e0v3NRM0cIT4bV76LV0KOUHDpd6fXYOF+V8SToCjQU0Dbo+aChJPBEyFLQ0kVESg044xCgArmhxHWN7mbZrT/ZforSoJY2G65AiQoAEZkIEASOIKkJ41TGGeKIPESwqai1ttO99nTBdupbw4+qYAMIVpo4AcZt7mPV2nGQSn++BZSYPwe1PchUnij4CEJE4AALBdJ+YJuAmSCLzAforhGBY/qfXA04kFapqcQRAHMd7g5zXjH8bfoEiDKQARkEhiSe4EJFYAFK5jnWg58WVaUUTC4YthGAS60xDkXCiAC15eIphfMhaHQQACMy5cXgnijcqAWPgIJA4AOA4AGfic23METD5Pm5IuhKVDPu7jDaROyoMDEHIQ0lUEIhhjMi4D6C1c+oubZQERSQ6AEOkLvb3EtcXklqMUl7m3eysiIiIibTuMZIEF1mNnbsNi4oKFWDCFK1oEDBZjDUZkaTZjqPngjCKKCgihAFCAge6EvWViIg0IACH5BAkIAFgALBkAHgCPAKQAAAj/ALEIHEiwoMGDCBMqVHjr1sKHECNKnEixokWBt5pQoiRK1MaNTUJeHEmypMmKGTnS8dhRFJ1PMD/RoXSyps2bFm9xFGVk5ctPSHKEgmmkKKUmOJMqXYpFJVAkn0KFyrGjag6oY6AaoeSQqdevFCkBvWoEZo4cNWoE4cIlbY0dZ5Fs7Qq2rl2CuIxMFQo06g61E7h48LC2cI6s0ujeXew1b1CrZ6n2qDGBMpcgEwK3rcFDyZdTjEMr1enX7duqkyd48lSZA4+0HCYEqdGDhwvRuE/qpBM0bZDCPYJb9sClcg0OHE6wrjybAbPc0C3icomk6lrBv9UGGcx9cGsOqym//z0iLbr5iLgo8bY+gftlwYONYXCvenX44DwsnN+vUJr66n8FNlhx8HmAwXzGELdaZp4gNxlnEfAnIUFy+KcXe/Cx1R0GCQ4oYH0NsuYJAxOWeAsm6n1ClVqCEdhdh8StxR2D9k3AgX4l8neLfxzBcAQPqWUmYAdEduBdZtwZKSSDkuTIXxM8UmIEDC64oEEI4DXoQ5ZLssaWkUUuuYIVTp6HCy5QSuMLDDDYYgsJKjwxAhRQSEInA1eecAKXOHTQIQ6AelJCmeadiSYmbLaJyqIlWODLoxFE8MWjFqQChQrKTeCnB0TiMAEOMxAK3S24WIGLNBbAgIqqqaRSwqO+OP/qS6QgTMIMMxFY8IRyOBhjTKeZPSFqbnJYYYU0pyTKZgmMxmqBoxHcKi0zdUARwgma/vmpEMOKVoscFWJiASpuLrqoq47Kesokk4DgLq4ltLCCJ0QO1sEEIdTRbWjRgAtCrraYa0GjjT4ra7Tu2gACvC1kaiSnEwyxb2hySMEKCF+0We65BT87a6QRTKIwtRY0vByYE7gyMWPRWIxJsuTagq6qHn8c7a3uLlzCriffy0GoK99lBSusYPKFEi4EjEoqAlvwRaTT5kztzg4ruULQiw3NDAwp8MBDChpsvDS0N0u7cB112PFECKwBem8rWN8lhw2pMJBCCnueoEHS5ZL/PS2udURQRyqYxrYk3HHXVQvdMY9wpQYMkOACA5SjYkG0ZaOdayoa7OmJp5lxmzhY0YCwqrm2aKABCVCknmcIDFg+6ymR1uGLJFjWOIEPdowOlhWmk0A5niGo4EIqFtiySdfInZACFLJSmgrbC6q2AhO+e1UL0REwsGdyxUPPjAUjDG832LHD+qwKWYqoQ/ZeRUP0KZOrrkGcqPiCK/mQox459OlqBXgygwMfYA9+S7GCDRBVJVswIE62eNXNpheCsJWgVUt7VayeYLgO4OBqCFRKLYDniypVaQRPgEL+EBaBElwqfK1CHqVKoAIfLKkFIRShDZiBCqSRgARPSKHT/xA2tQu6qg4lKIHmbhcCHyxnBfrKIU5qcQgevil9qpoVzvbnC7TVwWy48oW17HMCSbBCiklhBTNSITkXwOAUzyobtSgFrRl8EWTVupYGVBgBxaDxJMBLnguUcIQjuPFykYqV+malRC82qnyWy5gtnvNHmwSyjT/iwRHwZIt0Rc8X0pBG7bpYAju06nJbYwaZKnmSaNhAkC4oZCEZwAMNWG5R0ZOGEm1ANFbY4JczGMGsYGADObCyJjZAheSQxjeDPctyzixBK+wwhBdY85rBlNUZj3kSOUhCeCZ0E9kisCaPWUASrnAFMeaxgXmgoQw6sIMQLmdMbp4kmQzYRAPFOf8r2/kCmrEqgSuyMI91ooEC83CDHXZpT2RKQgNeS8EmKueojiHvWaVcAUHnwVFHOOIFM7BBQx0qvK6d4GuRWxoumZYuIaxgA+3k6CCYIAUpjBSZdvgh5TaxiU1qYBMjiJOrLmoBV7yUox19QTRuahM7XHF4tmDToqw1Alw+S15ILag4XsBUm8wACuXL50StagEoxA6gQoApUokxCEV01aEjEN7wSMAxS6lwUb4QwkaR2ta3noQVdViU5Ejgpo3ZtVy+kJdak+rXkoyQh5ITm7mmqkJXKXaxZeBqY0cCrlOggnKGZdq5UEGnFkgTpjBFwzw+utmLSGGBz8on5ZI2WdL/0qlOdmgFatU609ZW5BAzMJobYWC3ic62sLYorR3skIWXona1bvXtRF7ADHHNknJd+1oKKPeEOLVAEsvV7W7n0VfpRkQKdngZDAi5PB7oCTmu+ZqcUrHcFhB0AxRAg37nIQ7zLsQhNrCDBV4Wy0J27VrBqc12M5iKtGXBFe6M8Dii61+DROMQUkgiKk4hXAYUsr16OikDOjmwgbWwFToYhCOqoIgb6GGpFS6IFaQwA0m0gE7IssDkPny3iK5ubEks5aVeSoEiD+IFq4wxFqwAXDtAobtxQpYDPXyE5Wmgx2MdmPpiKIkiFAEN4khyhaeGQhWoIAQrCEEIpAGCh6pO/6JXvpvqYndKgwW0BDpggiIUoVn/smJnxTvBCuCrpxBgooVnvvIm7Gc/BlTWmc+qwwxuQOkbzENi0k1bK5SznAmYwIOe8MEJMOHLFoRgeYv+qf02wTqiBlSeiiACixdRAGJsNm0twNSnTMBrPx3IBJ7yBDOINoo0x1nVqhsrDOz8LDtIQs9EAIMjCOCAedj0pjZwYStWYMMOmAADBzjAgTAwAHF/egJ1sAGTyxBEnjIackqDdAnsSAUwuHjaAABAEQ54TAXaYQTXYk0HMPDtAwxgAPk+eLkBAGwLqPsHL3CFnJI957ieK4YDUyIYNq6HYhAg3wAggA9AiEZ/5zo2OP/49oEUznKWM5wLDrfCD/TAhBaE9ac8jVzAkHdK+s5g42DQAxBykQsAGCDcAMCBykIY4Ba04lqaUrnCJdDyg7OABQfHwAS6eIhD/IAIEh9BmXPOgKpWShLPgkILRgF0oef7AQaIAy94ke8CbKDPifsqpj43cACEewASkMASlnBwXWB9ACzQhS6yvoJTzEAKh+AEzW+8KBQ+oeytlkSrLtUKKtxg41KYx8cfEIc4gIIXClgCADCAAx1QIW4z2DZ4cHCgfAs+8IFfAu5ZwAarO2HxA+jAgKlAhR9wghMvoLylngDUHy6tVSPYRAgkIQWOS8ENRSd96eXOiyUgHQcbwPT/sKRgVGylvPYHEPwBdC+CweteAonnPe/Z4ASs+4AZNqCCFPRwfD0IQYWVAgXCQ1itIgmO8zyj4HUz9wIxkAtwB3dypwAKgHq8EAcGkHRZIH5lUgyNoCngFm64twTd536DVwFLcAVRcAVsYHhXYA9OMAAYcAL4B3THxwlgIASat3kWB308BQUzoAc/YHxSIA5kAAAPAIHbBwpxMIEi6H0AUGtlUCYv0AjfBgDlJngkKHgVoAAV0IVL0IV+4AdXoAtO8A728A66cAA+MG/1BgY1+AM3sFB1UClVxTSOowEtsH+SB4R6UAZF+ACmYIHbN4EVwAtdWAHtdwAA4AAbwG8S/zIPDpBvJKh7JTgAgyeBsdCFCWCCInAFv2cPZ7h4JzAD+vd5xtd/L2AHc8hGlbcJKkB9/LeHegAGVUAGDmgAppCLpSeBWyiBEth+EqCIjDghTBAD+bZ+IpCMEnAFyZiMW4h6frAGYXgFS5CMusAG75CNi+cDpNh2nOAM/TcDpeRkKKQBT2AHUnCKnHADW/UCi+CAcRCIgfgAoCCBoBAAEhgA+liIuqeIEDAP/OEGHwcAhoiIV8CMCeAHzriFkOAHGeAEGRAF7TeGimeG2/h4egCExgeOnPADYJCKLdBdTyAEP6iO67gITPACe0AApAeIpgCI9YiPvjiTEzh3FkgAAP9pHgx4jAWpkJ3IAszojAmQALGQAfYQkQp5Be9QhqE4AErHBDewfxmZkUF4CFQgBCjUAhhZgzUIBotQBBRAAHGXi2RpCjFZAZtYAfqoAKAACpAggUtIdwXQX9DhCEUoeLyQAAGQAGvgBGxwBQ4ZBRngB7HgBxWwBnMQBVEQhlFQhmYIiouniItYABBAAcRQBkyQklIwBEPQjUDIlf0HBAJpAAbgkmTZlp0QABXgB0M5lL6IemzJhIpombmxCB9XjQqgl3yZARG5Br4pjYXpB1GQjU4QhkZ5ho8JisjplywgAQAAASvgCnk2BIrgjaApeUCQBGRwhGWZi225l625ljP/2YW+WIi8YAAOEIWhUYySKAKaGAt96QSCKZ+DGQtEOQe8CZFOwJTK2Z9n6AQiEHIA4JzgRwwplllBd53YCQTbSZadUJadkJp7yYV6GQD1KIFzN5NLeAAFoJ6LwZ4HUAESiZaI6YJh+JtrYJ+xMAdT8JAQmY3vwJsZIAD9GaMiUAAphgYFYAJPuAE6UAZb9Zlc+XVJwKCm6aASupf2qY8yGZtt+aRPGgcAgAahAYkAMHjRmJC8+Q6CKY27aZ8JMAf4OaMZEKOK6ZACkKbI+Q5XMKWYyQRlsAEF4AAOUJkU4Ag3YJJwCARG2p25GKH6OJRMGgARWqgX2pamZ4EGUACM/5EFVDigIqCYayCYZxiRUSCN0RgLsVANMiqm+bmYgsmbNfqXwmiZZVAGg4AGEBCJT0hTGXkDRPAC8wAEBWCBZQkKpiChCLCXgaqPhRqhUYqopImTi0EMBGACVDcAoVqmxPmQEcmXmloN+ImfUwCKS5kBvjkHaToF1ToFEukABeB3dYcGOlCuWUABEHABZaAIQBADBFAAFwCJcfekfyqhRBmehAqoqQmlbTmWU7oYFLByBweYGdCiLZqf8kmU1bAAK5oBYqqmlcqbYgqKNNqiIkAB1lQGOiqudbpaQKpn4gAEixADCFUAuIiaDxqhrRkL4BkLYUCoMBusSqioBnABi/9hjAOKeIq5n9koAPspn1EwlAurqYiprTUKkQ8rANzaoldAADrwAjV1A0wwCO6ab+9KrlA7i0OwAcTgACeLmrh6j0QJprGwAHr5q4bqnTO7qIsxDwnHe0vJs4/pl2wQtNEqrdqaphBrrQW7tEubAW1aABQwU/r3kUyQBDFQhNT2j+WqWl5br52gAINaoUp6tqDwq7iqtjNLAIvhBjkrAZTqgmY4uu9Qt6y5qR9QDdKaptSgt9a6tHq7tG0qlhfoABSQWZAnBS/gCHtQAGJ5AAQAAWjQoLlaqL2qj7sKnvYooSmbpP1KrHZxAVa4jGVYrQLwDtUKit6qmIcppt47BbD/QA2tS6NLaQ/cqrRK26IVgAZMIA7z4Lu1O7hZO4tM0K6UiQZiGQdJOrnI+7Jh8LIBsKsIQAO/yqTbBwAUcBfG6Ikx2rfm+w57qwvMiJjdgLewIADUcMGuS7HnOwUCUA1XUABMULgvIA4jSwAobHeZ9XkvwASqRQC7OKi9GgZ6ScMBYMO8GgAycLlKupYWSKV2scAw6rf2oLd6y6WsKa1TwKL2IL6tS7HiKwDhi77cGgVLELzzkFn1dgPsegEDuYiVOQ/5JZY8nADJG8D/q6ksmwBhwLI4DKgBoMYWCgoGAMR1EQMG4InWyggePAVOjMHUYKJsvACry7rjC8hRHL5T/zwF8kmaF4jFUBu17huu3Xe1ZKyPbfy/bPy/C8Cwm7qwQykD+ni5ndDJC0CoMiADdazAD6CU1oq95wvIygALS8maCFDBeevEf4zB2yrFGpwBB3ABqVoAuTCs/wiVNUUFTEAMFHABwgvDoICWmvq/1IwAasywZju2u3q5onzKTKoAwXwXZJDHFBux6BvFrcul+rgADXDBTqwG4xvFUtzH2fsOInABL+B59XsBvhtytksMKZmxqlWr+nvDCLDJ1LwAYdDJKzq23hyhNHDGe1kBq2wX4ywCTtDENKqc6AvINBq0AcDOGqzLJO266eyCbQoBl/kCN2BNXUwGYplvddrM8/8wzjxctgyrutXwyQ670ypaoW0pA21ctvZZAQeQwHVxA2QQBwnAujSqtEWMyMpAo4MZxw2QpuFL0ui8wUWMhgiXbzhgmSMctRobroT3ru9brwiw0B/gm5pKyPiJor6pl22JALuaANUwlBaI1F/Rh+MMCR7s0ebLy+KrDK3LCLbcAGrgzoWtBobtxLAAC1NwBcKIA43QCF5WBD6AAw5g2RlYuDdQBsRwAc2MvzDZCXYdBqq7Bgqbt3Ogxgvtq6gdxz9tgTYLFkSQBLnA1Igsz/EMz4H8DqwdAA2gBYstxdSgDMqtDGoAz5IdfCeQQqkgCdRd3ZKwbSvQCDggvJfJBEP/AKdjbHoRigAosNaqa8rSCguvrdo7zaSd8MlgGgB7XRdVIL0GUAEzSg3NLc9SjNzwvMRmvACO/dgDvtzKLQABWgStAAUF6GzLBV7o1ApPsAKsKtPC+8ziHaHl3ckLq9BhwKJzsLAVvKT3uKlmy7AWWtFfYaS8IJyBrcuG/NitOwUuK+Dc4MQGrtwZzAhJtwIqUIc2JnYMbidiJwkzsLtefKXOKbgEwJY8XN5rvdALXcghPuK+GgBD+7863AkGkJNf8Y7rdwUZwAhzkNV/rNVK+78I0ACGzdw5vtxsYAKiVkFzgkKtYGZxEkQhcI6jIAVUMAQ6sAEQQJlhaXr6iALl/00DnNzJ3dANAlDl3aDQW44A1bDQkh6hBuAIYFEFxmiIazDmc9AN6IzjOt66Ffy/3VDgBp7cU93jejMCrVICEF7dTqcpHoRQeZaZOhCvBImaMoACEb3WjN4A3hvq3aDlnaDoUh4GA4zpfM0UREiQ+C2x3RC+A17YJK3emirqOc4NpR58c75HMbRc5P7gK5ByOSuMEIBfG0AAhgjRwI4Apszo3QDpec2yAszhlb7ND3DbXqHbBrAE0ZiNSwy+sADPb/7YIR4G3G7gpPDwymAPSQc+/VOA4FXudjADMwDoGysCzWkCgpsLqKfhnQDlzE7IjS6m9f4BAozGUz7NnQAKuf9gx0zR6auprdhL5qGe1QlPDSFOyLCg3N7+8NzADbswACYwAYLm40+ACjYWkq3QAi0gBFTfCq7AmS3MBGJcAPdLALKdmnYt7Kpb7zvfADsNwOZ93mwc87nw7EpRDNvp6X3LrRkw9pHN6qtODRVc7ULPDaRQ9NwgAEmnJyuQZipQJ08vBFIvCULQChOAAbfuo2+aqqInuYUa9ruq095b7RVMlDes0NIa6QFAwHEw819ezIboBzhvvhlQtqKu6jrO3FXO5kNf9KRADSLgAKJG+LCzNKaE8c5WBJF4gs4J8hSwARfQ7luYr6gN0QvQ6GQPC8ReDWfMyQ2wAGEf89Bb8wD/EAddOPfdugbV4Nh43/c63gDor9yksOpLUABFsAKCpmYaMCfTTd0xRF92MLU6KpaEBxASCBSgAEBEggAIEKBA0EkhggVzGnRrQA3WnA9hIC5YQLGBRgQ0OoEiIA7LSZQpVa5kyTIGAFB+/DCaUlNAzTlzYCnjSYqUMlKECPFUpsYoUFLciFKTgMPHiRMrToTQoGEEFFdPtG5ttcJVGSZMygzaAMFBAQgFD4JE4VDhggYSG8DqhnPB22qwGnxUKEOBqQItBQ9uqYjMAwUJ/GSY8u6dvSk3JapRxm0oty3sthD6SdTz0gFOpYYgrYGErVSoWkCBggpKqwkYAJjAASGL/w6wYymgMVghwG8UDN92hAWLmoA5a2JpXFBtb7duIEc+CEzYOmEguQxA8rPmwxTGkYvnpByU0Bb0Qrl19tyZGrUBHXxInVoadSr8duykgnKiAwAJBrhCAgAcSGuD3QBQLpYFAghOOLjm2omuBqrhiKPnuuGIht9MueA6EFtaJJc4KvAjivBgEUAAanCChbL00vPpMxqp0cWEp6CqzzT8ekzttSzmQaMAAgBkgQUJDCxoDeU0enCjvSpSg0ILFarGQoo4QiCATgxAI0QwUxqxxCjKRLEa8Y4TwDhlhEIPPaU8M4oynnax0YQJooIqBB5SYIAEVFAh4QkNTvAEBxw2IP9mEB3IMmugC9Aw4IoMYklApE4Y4qga6HiyCDotm7twy+C6/DBMMImI4YE4onDiHSecmGKOKYp779bKLEuPKDrf64modwDIc0+oeNCAAQ08maADDDA4gIUBDigQgnkYJWaDDSIFIAPkqmko043ggkUpiyaysLk5nLtLoQBAMWADVMF0hEQFMoD11VlhmeI9NW6lhhvM4MyVmn599YyadzBwSscTOOAAKg8wGECXAQAowAEADhBBF4pnA2CgtAi4wh4BMnqyub3U+EmNnOaADjq6NAyJS3e/jBfERQCIA5IM7H1HPBYpUypOoNYjmmga+3UCABw8eZhhTzo4wJ5duBH/AAAK5pkHQSIPkPWdAQYqyAnJnHwrysqUoabll1nUS8MGE1DAy5tBvEDnxRp7rCaCiwbKs6GIAlhtg3lFmOkJHH6aA2MO0OVfQmDx42MHKNhAazQwBqBAtKbe5aZquESBhua6UWPwtaPci5pd7FzbwgQSoLtuwpIgQ+crXl2RxdapqfFXtQmnUxnXPRXACYUn8MRphzsYQADL1ltbgcVYkJYgRRGEYHuv35viA4U0nQvgnz59eS/Xb81pDQXKoJ2wKg6jnrHj/PV9qeGH95RGnowS4AoCIEp5E5iAMQZAtfMADBYJGEiReHEFXUjLATigwAUgcAECHIBF9shAGITj/xyVWUYZK+oGp85wwtXtoijHmYII4PU+wSRBOwq4woq40br0qahg+/Pd/Y4TPB/6rl9XmE0HPBCxidkDYOhR2xwWQAA0DGIQQipAxq7AhgEoCQIEcMJxMnAXGiCAIrniyds0VKG9OOdWdhJABhwAQ8HsIRe8WAPJbnWTFfnKfu9RYQ9ZVLi/3WppB2jWAQmxxM0M5XUJsFjWiEEMIV2gAJO0YMam8Lk5gESMDVBZ2tZEEeecQQta2IutqjZCA8wDjiw5jB8iw6IVvfKP/mKR2gAGMFzViRt6PM47oPU8N22BG5oRZlFc9gERJFOCZ9keWrinC+h9bg0LgQgnjWYRJ/86pwFaIMUotbA2nRCPGk6oDqpsMANmSIMlxQAALzJAst0JAJ67U9Mfc3VDNfFKhcECwBUekwERLGEA7zgPO37yJk91Yw68mCQADCCC3B1pAAJJC8aucEMBROdspyMXLDhVSi3cUil60YlFpgAAYqDKFQ3jgQu+oM6UXGBSEPxZPOOpoinYkSeHJJevfsJGAOhAByJzTECXEAXMDG0LM2riHBRQAEVtjQIOIIAJBkKQC1B1Cb1z4l3gEtKVTUGhFCmOUQDWL9WpSBflvI4QVsABT/SgByfYBCpsgBIgEGAJ78jdO2y6O1n6iyfRA6TadAGALGQBA7p4TBSWAKBbkYL/HZcxnkJF0Mh56IAYQhUqBSgAAQAswQmtU4ZHwxAGcS0lj5RRHfq4cZEG/NEeAADRDFQAFQ70gANUYQAU6oASmeZOF/aA5zznCcvWES1w91PbgACAgQng4IBquoLXWBSwW/YvZnPwQ0CltTnwOkCSBhDtLoqZrjCAkCivNI4azAUd5xSlOKsTAAtONZghjEZxVIFCKiRRgrtioQC8eJUTirs7ezzGHvXj4y4rw+Cq7cIeFWvWAZ6HQwnbkRDsmCzS1ABfBTQwY8ns7gEIAIECGCBj0BuKAK7kHC0QRTISOeHbvBqX53SkGhkgAGHsoCMeNGy3KoCCfuwwA1YUQ68s/zAwcUm2YHnSc5asu+UsxSmAARRywa0TCiGOY14OF3Nwpc3JB/wAxWpBch5uQAMaLuDZrv1LmLPCECd7OBGPbFMZDfAqyvi8kVgYAAKCEcKeeBACIYdABU+QhB0azYpxZCyJxT0wPPnoqd5ZWU1TGMCFI5xAzHCYw0pJSmc+rKEP8KJAWWOUZufhWdBKoIYJZNlHVVjGlxHsKGq40IW68ZAExKICFGiJK55CGtI0bCqLboGRWSEOEo3MycYlLj3r16/PzbJ4hGNdlzEDZlETc6nrUdt8F8DIA1T3AOuWgASJFIU5iMAJb8IkJynDL+jopAF9dFk1UHtGUfUsA7RVyf8oWuGw+iD6YaRphQpGkIoSzOAkMdhOk6sNS5sKVm155KWdqmYZ9Rxyw+Empk9QRxeOhCEAqiZAkcBLAAMRqeVbFeYuXcbJcp9PL7hckcs8AovevUcAFbDZSUaxAqfVJwUhWHgIVqCCRadiBjOIBhYW8QACOxmWOX2yte9oR4PhM3rREznJ35SUMbsXVAv4ACMpsCgpTtGzn83gFaiRHky+qNxyOYMaRkmuP378hr1TETmHkIUyZMEHy1P60htGmqc/oRX//S0WbGcABSj4uPNU03FUZEccDnZohEjuITOTmXDD6ZC8ynEYLNZymDtA9sx0wF4F8JjTe3lN99ZLlM7/sG+RL5H0rdOCioqzossSsgPKg0oKeHBohZ8A6k9oQSr0I/GJY/2dj4my1ld0XLLt8V9cPiQOzzPy1G+mmESxcTUMcBYCSED+zzqAgRxwgCW0mwW7SOAupnCUmNkLUWqAWzo/0qOG4iulWwEYCVOYpOOTpUsBZVuBFZA8ISiBErCDOqg6LMiOOBiZdziOabu475u2wFtAFSrA83gTYhK1BGIP7cKzFgovNNgAN7sgItkc+ROAN9mlF5kvUBIlLdgMzCi/G1KDPKoa9SMEAZCA5fOE5nO+FCiUh6HAFWiFJziyqYspxKAU4tK8aoMnWFGweGIdDAO5N9mwLkO9Dssu//abiIlYA4vBGAfgmknaomfhmAGYglDTPbmoEIrwu5BKj8FTioIxr9PbjGDBgcQ5gT5JAUgkjd3SgFaoREaLOOw7iTGpgCazuGl7BzbwROKqn8EjP/VLQ5FDPZ6CQSAsoUBDC5eTtWm5GABgMgnQhcpIIOTIMXGpmg1LD/UYrIIStS3YBRagjaR7vufbBA1guhDQihaQBChothkIMJSguAqglHfyPuKKFTC8ODO8pVMExlQcOWEqNU8xowtJAHa7HmdCMQAIQWXIgCsoD2GihrXriClRQvQgRmFawTALM/hAxod5PkicwsfTgCeAghKwgEarvJRIgnZajJ5RMIt0jP9X0bzd+biQS4/JcpMiZEOeMhwK0ZKrCqC5u8P4W7dYOYBuWI/MeK1zuRLj0BViFDn0MztCiA/lWbgU2ASg3ARDmUQGQIUSaDRrTIlVKZG++kTGsodYMTBYWqNuW0ED7DKsDLfVK6Pem4i7iAMV+5iLWTf7MxACYDL8k7MDhI7nGB8WJKZhJLkwI4Rj7ElHDIEp3IQUgKsaqAEO4AES8C87aAnbwTp/+sR7iUqNXLD6QUQ3CaY0TCRiNLVyiRILqYY5AKglWLfHMst1O6B3WLd9SSRlEKsG+D0WM7t+lMvUS5ie/MtHZEam44Aa8IQQGAFUqEbBuADt4ETHeAwn4Bj/xvpN4tIFArm/d+gdoeC/xwymLiPGOJmTrrSQECsANJgHSPostOinZ6EGeyCQJRCALrOTWskVNvTH1GNNdtiF+Igr3TLIqtCApVu4EbCDUSCMGMgFUBABFqCYTus0xnoV4zQBAymDGcABCViR0hOp5aQyN3FBpFFHBDAA69SabHEAAsWglmMBe9AFFtic5AxG5KCMYUQ99VPP1CMEXcAALqgBuZqrQwNKRIO+J8jEweDNOMg/+ZO/X5IA2igClWgEABiu9yjEf9mlilEiXflFBrwfG+OIAFCAA5C/TvvQmMugikm3zRmAqtGM19KJgCFGzUBRnQQbY+CCIHBR3aqP//o4NChIysFIghgoADJoOcoxC2JjiYKQANDDIdZhHScYACpbojAjmuKAr5RTALGcJBygJJGxhw81iM3RIPOqGnBSg/MkU7lMQyzDAGPwgBatTYfpgb6szRZYJcEoAgA4oCnDMNMbScsQNXKhiHy7kgYhAOy8FrMgUNAKwV0wMQnSq3DcBboYF01Nv0wVCnnKMgw4Ii4gIC44Ig8whglA1ZbY01Fco+SKsFI8pEIlheN4GbjZkvdzuQGwHvsDALIJm5ajKnXlP8uwiLzIVDLtxxghQnzq0E6zMIkB0Dey1pWYBwDxqynrtlviVoBBP3Lxyl5DgFjYvmiRIHicUiuVvf+WE4HrajFOCbVNTdE3SSRUPCQzpKcIEwC2AtiTcIOBZUzW4Z1StAzmjNVCLZe124jMBCB4JIgCMIFVrViqyqAQbZ2LqIbTOdZx/Eis7DI1SbB3gKbWsYceQ1kxAZDhsjQzJB7BY1A2LEbz4TMtiYU1iAKswQHa+Cxm6U8CdbkisTv1IFZOGULW3NrIXMJEild5cgJe4IULgwUKldqYolpw1NaDZcDnDLMm4pSajYjZQpQOoKCLOdf6+1mXo9S2zSgC/FgTRVbIPD+QwyF7uAIRWAMnkBZV8lvgAtxsncrTuSeeEgqttDlatZD06gYsa9zGpQCZY6Yc5Nm15TKMygn//jtPYERFkPW28SxB9ola0/3bJThM70vCtBE85jRRTHoZ2f2AboAFH+0AAxmSC8Ac3J09d6XUCKs1AszJNUyk4fPF5dxWNcHbXIiB5V2JuxGtEczWYQ1HspPVWIKv2JEdkIG163SEMigDR0ADFJs9O7W7j2sqWPhFzUja8sMwP3Wd/+GFlpvfllgVeQNDBgs7fEquzSDGbIuZBQgD6pgHR1jheYgURxAHGHaEVzML8W0nBMInFztfmI2tDFAOSADblumZNeAFA2i5ArgA+dVgwXgJ+73fgq1gX+TYyeqlDLBVBbiAFxaHKnCEC0iCQYBhcRgLBL4YBX5XwUOONSDA/11YAvHC0FxoudsxgLD8mCRW4uu4OglwjO7LoySkMo/zOPT9HHtIl2qIhTi4AHFQBCIggnH43iyOYSFJYIvNGKqJsONYA8zMgJO1YzjKmeatoRHUNjPcVvMb4SnulhN+KkeogkUGgu/9YjAWB0fQHvEtEj6lhuG7PSbhMU4G2Jx5oAywuA/24945w/Mr1IxK1AJwBEVWBCDYg2pRhCoAYxl2s0ma5H7yRUFOjjmIAuXtZRgS2A8kQycTuiRs1Y50QXy8iyglACBQBEV2ZRWeZmoGAjf4rBgo4zzGMOT4gHfShX8F5/cZk8W4X5bFsMa8oTWETpSTGwJIgipgZVdGg55VjmhqHoQ2u2bZW1VdQOg2WoM5EIDDKl2BvpkRqRetI0E+GmVSRsNEZIfX6oY1CAADuIAqiOdFAAJmpmdqnodFkKSf1cFK7p1ZiYXkWIJNLmkwmVOXy5h1UzEDWLcP7JkoSADlMJEM4K4reLEXW4MKAEtcVYQbuIFx8GJWhuebfgEiUARxAIIW1mgHcBZKuYIKqGsFiIMHULH78tuAAAAh+QQJCABLACwYAB0AhAClAAAI/wCXCBxIsKDBgwgTKjzYBFyThxDBLZxIsaLFixgzFgRHSRSdj6I8gqT0UKPJkyhTKgTHj1LHj3Re0vmEBMknUZQkqtzJs2dClh1FGflkhM7QUKFyhEJS9CZJn1CjogQ6FEkOpUlz7KjBdQdSpUz5SR1LdqEcGEiyKv30dWuQIB48cJ2bw0jZu3iX1JKjROuOv6E+0dRaY4LhuBOCcAlSIwWMUoHySvYJTo6RpFu77ri6o0cNT54M1/DMlUMNHkdclJrMGqWclnRCuX3LZXRnroYn1ODAmwMPTzX+7kDVuvhFK4FEsc1RgzYXxLifx/VgGPQJDrqDM4hsvLtCOYFmJv9tPmE6dS4TpJun7on3597Evcs3KKfj5dnrPaj3gGG6YQ6g9dZefPPNBw4mlIi3QxCG7affdBj0h5huE7THW2g9fFGggckJJlth5eX3IIToNVjhhYWhotOGxgGlnFVbpRfXYlyoV+NzDfpXIWg1+GMDi929FpJgSBzBA4CGKVbiczeWmF6IHeTmiT8lAGlcSyF9ZAQMttjCgD9H9tADByeEsMJ1AYZmWAdstjkBByNYWVx4dOBECQx4oqLnCCqoMMIIqCBSQgmIoDLCEyqEgKQHbUbpQwtyssaRnS7hCUOgmCLyRR11ROApM55G8EUJI4QQWqMTrBApa3JcIwo/sF7/c+mlg47aqaihMsMMJsyAwEwJT5zgSaOeILLqZHUYQclrgViAii161lrCpnV88UUEvYIAAqd1kJrCqWx6IsmxeVkRASWwUnKNnrbAgMi701or77Xa1svMF6j4o2YH6NVBLl7gwcpPKexCi2mg8Vr7ab2+foGICkhG6Ym//5Zlgw2B8BPIunp2jIgF1sZ7zafZanvvw0j+92PFZEVjAyaBBEJwlx1bAPKo13zhS6clm+zLw8JOEOUKcrBMVi1SYFxKKS500QXN8aJSggW+jKwrw6D+rELQhq0AgtFkJR0zDDyUnQIDgGpqwcc6R+Arw576ki9vufkI9lhJY2IBAzyI/8lbCAwYrOc1dfTsawTVjuDPhRP4IMTdUoEjBQgRoNIFA11oEMIJJ6TwtNMkAEp1r7p6ai0qaIK2AhWQQxWNFRfX8azBfKaggQtdMqBBCiGE4GcJhSNurSSmguZDFiu3vhPSF4OAr6F/IuqPBtCuq/vmHISgwQg3b1qCCqB54sMQyvcUza5yYOKLl9dxrj0DLlxTyrokMFD/5QwwEKi84Ie2QvLlSwk4IoAJjTXLFpuwnQZUoAH7faEUiBuB/VBhM48NqgT6Cs3jArgTOYCggJjABJe6RIInSLALqPAFtkAgiSfY7gmDQoQkBlUHRBTPHzPg4E6s8MGYXcMWuHPBn//yZwsLeMpXJZDEoZ4ww2lxSxLC8sQIiqbDlFihUzIDIuhsMYL6pRBbvYpArTalq9J9YQTXCcEIAFhFjdSCcoFYn9Muhz8SIAKMpKsWz662rTqMYHtfsFkbU2KDCGxMi6AjAbSuha1GIm6PuuKWnq7lCwtQcZAa4aH6gNi0/BHxgRHwhQpFKcpQklKU1kIEDFR4DTZi0iKwwwTBXNC0y6WAB5t4WhEDScmdiWpe00IECYzIjGi80iQXYwYiaOlJBiRQdykYps1U6DY5EJBTJZhBtSgYgUseMyM2AIEFmlbLLpDgaTazQM5QETJMDMoGcoDdxWzAKXh+0yTRAAEqaNn/SUUGipoRuIY6R/WFJwyhDExIKBNewNBRWOGeJ7HBsy53ThJ0jJGeWhvIStACHcxjHhvYAAV0UIYXWKEWEEWm5RiQgk2oIHDQUicpR7VRIWThoyDdwDwGAQaUplQjNpCEC5x5y+y1VH8VtBbIrjGDLAzio08dhDik8FOTWGEEoINmCra6icCRwE+CGt5NQwrVMhyiqkCVREXxBz88pfNP8OLoTXO6U0UYE60YAccMFMnWFBwBnamkGTuFoFOczkMHTLgrXi/iR1t0QQme/Kst4FUomn3BpoWFKhOouliLgMN5iPwczQT1LqhJYqw4HQQTwNDZisAOEbLCnC4N9q53/3VMakJYQUgLq1rOtlYhsUQFDK6BOcx1CQZrs22hDMVR3ZJ1Hgj17W8RMgpZNo1LDMwfCgMlwz8ZSgiSaIFzc9rb6SbECqOQGWSPkL/d+dV+FgXUCFrQgmy2YLchRYNqz2reg9QBZqVQwhGOsNVblo3A+RsB1LQpXvxugKTS7a9ARlECjRlhwAQ2cJjIZLu0Aa8ODc7vTsXBXwkvwQYzEEKFAwED/B1BA2XbMA80YNGEScIfWRApBXYs1RJP93UpbsETLLCxlRJ1q0fyTeBkai1fFFQIxaDAPNAAXUWYtxbRkMIohPAEf/gjBKgIBCKwqrsEapgHZ6MgQTc1gxW0YP8Qg0CoIsDgY7y6DMUtXMGZeBPmL7zUmQlMIJq3qr/abrSFWcgCBS5AATRs1s5AbmGiFAWaKE3AFoEAse02YWbbFThw3PXeDGZQAiEUYccPduUxrXAIKcxAEoniXKXZZAI2jSAQNsAgpzft3rJtQpEf694XRl0GRVRBEQ+GqBWsIAUqDKEF/uBaXDqAgQMAAAAY6MATbAC7FvCpTxrodUstmk55DWoUL7iBIoiABgfMg3yYZDap+bS4YZkgQvg+wACaYW0TrAAT8Xw2AxjoXq7abwTBtlbOwssEY1fhAgAwAQXKUMVpgIOepPoygDpggnsfQN/6HsAAJCByDBAtnlL/oC+fCt5Ac3LXZjmzwKEaXoUbJOHaEYcAxZVXC9glEdrCorW1ARByCRhd5EjHgA8wwe1DMEEIQ9xEuLVr0doGGxVPmAEYwHCDQ+jg2gYwQMRHCjZWa5lUigu6xz8ugQOQHOlvZ4PIDzABxFnhB2AQh7dDJ8H8kaDqhkZFn2Zwg60fogwEAEDYeWFtBxQhCxU7xChGIQkhiBc7HMcAzg/A72Y0A+kiZ0M55D4ADJygDlQ4xA9+QASohy50fgf8uySYghZIYetgkALiFR/2OMRB7CYows7lJO/w+mMFw+I4zvn98QPwIg68SMMVRH4FFrBB9KVfwQxecAhOcOIHTFBw/6DUqsi02VZ3LajD7bcuhWIkPuym8L38I94IyAPJCs8+PubXvu9mSMDzABgHCiB91scGTiB6TlB6OkAFLyAF3scJN+BtHyNDhkJuzkIC2zMDUnB7hdd+7/cABkAOIkgOCiB2AOAAEMAELJIFPtAIQnNv1TYAIiCDANgMaSACItAMFZAMGcACV5AGLFAOTvAO1+cAL0AFW/cD3vcDLyAEH0MoCiZNXqIBWScFh3AIXCcFNwBxihcHICh/YPhxwTd83TEEjUBr1yZyn5eDOeh5FeCGChAAyZAM1ZcG5VAO7+AEo4cDVEAFhdd93ncIL0BDSSRDF5iBgPh9V6gIMQAAIP9oAPHne+QAhrzgeRG3AS/gHfPgAJrndiSHgyJwBSKQDBVQirzACxWgAAoACXP4g1HgBEOIDO/AAhDAUH/4gD8gedr0apjCJ1mXiIooBVVABo4YgqYQgiIoiQpwiqfYeKpVHDcAAZrneaAYBaKIg8mQAKlIDgGQANpYAVFgjVcQjk6ADMhQDixQAAuFew/4faNABaQmCc/CdxqohA94hYcwjMUIiQYQB8moigApggoQB9aGA2SIF6MwD4nHeckwijgYjtYYBdmoANzYjRUgihWAgxnwik4gAFHAAg6wjknYjj9wA5T3JyrARFKweiS5gbrXiI9oCiM4idCnigI5iYz/dwAEgAaZmBeMeG3NgI0PCZFRIALb2AkBUAhrsJFRUIrJ8A7vYI5YkIcEUFJ0pnrfh4tb5m2SMApYSZI34AgLtQgEEHb9aAoySYLLyAszGYcBIIKVCAAFoAN5AQTEeABXMI4NSZRsYI0i4I0B0I1LKZGleAXmeJhQCQBVxlDrVni4dwNDMASTt5Lt+IA3sAdV8AJoQACPCIkjGJgBQJEjKJoUuYz8RgAboIJkcQhcKAGhCIrlQJQsEI4ZkI3emAFrIJGkmAGIKZXIIALWNnQEUAA7hVAvoAgvkHuUWZmcAAaLcAEXUJbyN4mT6JYJYJOnWJrcSIKn2AxySZdjwQR3/9kMeZmR2JgBGaCHRVmbc5gMS5kBCRAFCbAGhymLWIAMWJCfUFkOOHeC+iUOALpQywmWSbAIBfCI/vh7NRkAFRCagSmanTCT3Ml4JwieUVEG48kGotgM8bkGTpCe6LkGa2CbIxoFuDmHaxCVsoif+Jmf6CgCczkPF1AABICC0CUOCwWMS0gEi7AIjQiJaPkAaEmCgZkAoGmTbxmh3KiK0GdtFCAVYIAGd1l9V+CUGZCHQwiLEnmd3oiiIvoBazAFH4qeUzAFLBqOFeAAJaUITKADaFAABQABEMBjN2CPnKB6hwAESdCIkkgOQ1qRRhqHSDmCStqWvmcAVRkVdkmM5P8ZBeVglAlQjsgAi06QBslQDWtQAQkwh/O5lFA5BbppooxgpsiAnlHAC8MpZYPgCI4AUhQAAQ6AglVAZ2AwDo4wDoswDzEAgkM6pJ2gioCpANcZhwoQoUqaoPM3D1GxBwQwjePoBBA5qu9gouxZCIygqd44n9WQAVPACIxgm+7Jm6V6ohVAABBAozVaABQwCCSlA08FBFVABOOwB2RABhegqw/wACIokzL5q6DZjdcZmoU6gvFnlgbwpFDRiABAcs/6Dun5DlOAntBam/OpmwlQCGEQpmXKnsmglIwgAALgBIxQm7xQiy8gDoOwB3DqAAVwr4iVblxHBFUABIswCLv/ipY4Sw6dgJTaGIfY+pYiOLCT2HsGAAHwxhNVoLAjN45RAJUqWqofSZgj2rFGmgDb2q0Z8AHhmgEfG7LsmaZlcAMbeAPq5ggqO5wxUGWOSQQ7daAGkK9C6qeBGQah+bNM2gkyUKgFe4wGYIQ+UQYOkIZ3qIds4LTnOIQmyqmYWggJ8AFhUA0fOwVzMAUfgJveWqYRWw1h0JDDqV+ZqZxgoAhAsAcxwLIFEAN7sAhUVgD96Kc4i5RFCpihua86q6Q5K5NxQAAWuhNDsJAScAUGmKWIiaUUa7Wai7GP2wDdIAAbywgfcLkhCrkZIAJySQDW6wAXMAhzdoVcpwiO4KPD/3mvrMuvQoqWO9uN2Qia+7qzQqukYqesPQEEBOB211e49SmVUAmt6fu43RgGYcAI3TAFINu83uqtkOutpFiLilAGPuoA6boI4pCcLnkDVTAIUsa6+2q+prCzMvCgbjmkFKmk/xqhYocGPjEPRHeHwfu0+YkFU+DCTUmRARAGCOCNhdANywsHAtDCAjAHBSzACKwABTBnHKgIKGugcFoA/3ls4kBlDqCvnbDBG8zBRTrC7LuzIigDCBAAMpC3YrcBPoEGRJeHeKiiLXwGcAAH+VmbDooACxAGVjsHZ3AGAgAHZSoAZ9ANl8u8kssIa4CoEDBiTOCYFAwEM2q96QoBi//gACEYoSiwsyjwyDwru1ass1pcCA/6e/DLExAAAM1QDueIpZ/awmrswh9gpJ2wAN2gtR/QDWmcxlggAMo7slcKsd2quWGAqIlXo+sqwRw4s6XLsu3mjwEQxRx8vtnKuKgcmFjcCW6Myb9KDgZgwj3RiJ9sjnnotPn5ymnMvNCMAA3wAc87qjvczQ0wBz5My1zLCNVwnRdQBShLAQ4MAOY6DxEstmAgr0lwAYvcj8aKlOerzIAJmNActAiAyW9JkdPsEzf3yVFpuLaMBdwsAOw8tw1QwIwwBxINBw1Ax5OLtevMzoWgABcgtrfHBIOwCBRQAA7MsjXrCOLgCE4cggH/gAAoQAM0sMXdWAhzqMw1XczG+q9d/JYGsAg+sQieDMrvMJUryrykrMNTkI2dEAZnELHPK8ACDLIDjLnomQFzkAHtLJdx1nALdQMvwATfi67XFqft1sgBgAI2HcmBWQhKybiBiQA2nbdIidDqu9A9gdQSIItL/dAdudQbrcYCkAGF4MzdMLlkaqY9TMdTANHeqtXfaoLDSZwlZYVaKA4Gmtntpq+1C9cIsLMIgKkfsACgiddXDAnQXAil/XvUzBN7sLBQ2aKfeseHbcdrsNiprMfjnAE7HMtY/Q7lMHcYcG8yyAsFkNIQkHj0DAFooAMwe5zxvInIyMF4DZriLNL9/2vT5nvQGKvT0rzJO7EHBiABeIgM3cy87l3Hr1yma2DTC5DH3hrAEOvCaVB6HXACKtAuXhIC1AYAFFB46jYIb4rIwlyzcHbBYQfJNUzDCOC/iwvH1aDaVyzemOzFBmDeKrEHD9AMhv3KLhzLsVzHygAHVb0GRlrf9j2yUDkAJuAJKnANLqEuW6IEKTABmudux3bWCSUOZSCj87zWELABrNvIO+u/TB4GC3C81RDlgVm7Tt7OCJC35e0TIK4AGbDN3GziLgwHypDiiZ0AnVAIc4y1LHAAHZACRlAKlDA/eEJLRlIDHsB5vCB2LBvIVrl1RCDTsBqn8hx2OquzP43XYf9QCAuwAIreANXA1zMsohdb2tI8CFoOAAqwBuX85V4u5inerZiMAGegDB4pAh3gD9cgMzBAS3oCA+d0AjyOActtrjQqdvV8z2yK0vPQaGXZrxk+4eKMw2HQDRe+xbC7uEY65UXrExegr2swB2mMxtwc7WM+5hS92Cjgyu8AAD5gAfOjBF3QVeJnKFtjAm4nn9NMBBRssw6sy3GqU3Am3Yz8upI84Rlbmxh74dBs2o9O16hMDgAAAT3xAmRgAApgrWisBtPOzWMO1XR72lMAACtgAUbgAgPWVQPnJ7XDAeZuqddZACVl3TEtozR6ALYOpxRAAOYL4TUNx2HwAXRdCI//zsznuwZOjtC/erDxCwBxUAFrkNHSzvDV3vDMq7mnfQCN8FLslT99EgK24yeIsgKN4MkXmwCIioJUVmyMKdNwCtoq7+s3PeETHuVkH+Wy+7hvzOhADfCznRIY+gC8wIOVvdFDX/fV3gBvHAYA0AG+oQHi3icaz0VK9AQr4AAHsINGOpxlGd3zANMAWgYeNQ+KzMijHfZ4veiL3g0X7bixG+Vr8OgdHKEAAMbnrXg+z9UobvfV/soN4OgfwOae4DuH8id/El+BcigrgAMAgK0PsAhG/Nk4N5xzulODIN1lWbudEMlx7cZOjsMXTrd3XfZh0MEBoMk7MYwPEAciwK18//yxnq76Ka7i3bC5sL89fKdyf+Jt80X4hl8BmJzuRKAIRkzyRJeD0X3kX7+zpqD8lw8QCxAsaNCtWxgEnQIgGNigwYJCASQaAFBmyUWMGTVuzLgHAABeFRidEeBkyruRytQo06KMpUs4LOE0CJPgwIQQKmwxGEFixE8VQX+OUOHDRLMKEQMQuLBoUBlxTMQ5GrQIggMCAAhAQOPAALlOnVDQQMFwIMIFBquFCUtjYNoFCCEhCBAHgCOOefUuiQGyQrJuDaYMzvChWrczL1lq2dISzpluHyoAwJmCweUuJFT446xiBKoRGlaYOCCiEENTBB48IOCA66BB4soMmreBAv9XAgoChBU71uxAg92q0VX49iFdieQMPFC01znGMlklRMnQYM6ZwVMyMGqwUsv371uUxXw8RQSADhx4pNh0OagGz0OfaDB6IM2aBZ0eOI1BwACvA7QqgIJF5jEQgg380w2FsFAoK660zjijIIToKuQhgcwKQDkCKHjuOXEAOECCK6KY4gwsBBgsCu7A+44QGAlxSaUprjigA0/USyEoHp9oYYQWggphAgwGcIKRagJ4AAgiFJntggL8O4CXj7bCgYLcdmuwLATCWCAtNWbq5ksvCTruS+LiIACND51bREQJWKBOAJIGW8NLNVxkjJCWVFKmmwxunICDEFKALz6iNnv/4gkVRrOvmuE6IaPAp8qYbZ7bogTAgQEB0I033778sjvs1kIoDEgFIpOhTtScp829PGqGROqmEAAOWzMopJo8teBziy34nJHGZkwYtFAeefRHg6FGcFQE/OJ6wCsBKZjnKR10wPQ2NDxdaCwH3yJoF2UmRFJUuKoRNaFODCCACVjzKoMMAGaNIop33hFgXyymSIYgl8ADVliYphjA2BNC4EEDfzwL6omfJBnBnwkAGCCNQr5MgIB5NKVo0wIKgGBkCijotoJPy0Lhy8POUOPlM9QtMy1I1UWAwU4U4DhejhShd7p7MxjsVgkZ+YCRXvVsyTGDTUgvYUN7/MmnIYss/yeDMREoBIBrYYPSPxFEiKKcZlyjAIAEEkgIXAQg7Walx4RDl6A51jBLLLq45nkjR0RMIwMnhH4HixRJagDJxMCDSYtMMnkMCzYwwJFQQ+FrVgNPOigSmSnmMOjLpSC4Vgfa0IAgqwMOMPuAZBIQq7eBqpkDjpgKGnPUCSENA6FwAzBgkL018ogXaAHPQMUU4QhTwu58dYw82gmPfPL1NGAWqBM0HwAZ2idswGYETHlAQNFhmweN20g+wIlk2HIw1AZcyh1dUhlhJIxCaCBLBuVeDf6iGxQAJPdJBnUIZyuXhWk8ixkP7RoIB8KV42DpoZz1VKABDmAAA06AQyZcov+GCS3ALSggwCIE+B/yWQt9EKDAAd5hGnaFqzvyux1w3gbCOSTgNAuBhAIM4KH/LaEY9GpG0KbQLyw4kCV8WlpMHhi96E0vR+rhQRVPQCQnYMGDMIGMQBxUQgOhoQAOEFHqPiKyFiLDCWtIwG5kOEMQqistDpHQHBhxJxnkkX8/DOISFkGAAzRjDYzoxq1op0SBfWdGcKAT4Q5ZkhvlqAc94EAliTQALc4IhAb5wN0eUIB5kM5AmcKKyCDQDGQgozBra0j8XPI9gQSGeXMQACPmUAhcQsJ3EAgiEfoShwocDw6OaRwE9xUwRaqEJGeYXcDUgIWDTcATk6wkBzQ3uGH/wcEgBVnLAqrRgAoQQGRoQMMGanOb9DUDgu9IBkMe9LJyzQ93zAtMN5B0GroUIIg+e4ACBheTlmSCcP26VZ4+mM3HOFCgcCiH5CZQA0pywBNFescwPzghThZid2FwVwEMUJoAfQQAGOBUAdQpUCdUiCBwU0NB0KW4lh4OSdXApc6CmAQAxCEDSTwk7VR0qxQpxomO62lRkTEADHDhoTXI3PaSqEgJBScuZukQpsaYFZGKc2QHaBwWMhCGsayUhsMR1RlchKuCQOYgPvSfc6RgBY3EwAAZQEYSGygAFpRDX0iMiQed+EAQnsGvhEOqB5R6yYr+dTyQkWOX4rKxAqAB/zZUMdAob3NSRg6nLC7jYtZwl4nv0A6EDnmsAdqaFyoIoQVDkAJGQlSBvJbDRALAQjmuUA699uufShyPXXsLPYNp0AMaxCRoHafJmN1OVY8NZwEugIYwrvCyWsxEzBiyAM6ORwByJG0DEqgGD0IGQxzlZV5sMIQVrOAJQnhBa/1oAAmIVAQmQQZu9ZqvfDlyRn2CiQOjd9QDYCB12wMtIbYov9F+Dk3tcpeIeNGMZgygGQfokEmHqQU1KNe7j5mfd8+ApsOsZJMPOUgFCnADjkihBen1xxMkMYNDXIQMEbbYfet6WzbodV91LWoDFzis3rIhrxIewDsY0xhNwsy7jP/IEEMU4AByQiBkDqAyp6R8gA4yTm7YXQlGvyShmKk0ON1AwJjWEk68aEQI6V1Bi1sgBNb68QGzSsPg3lEOZNy5HE5ggxNo68hDPjHQRCVcXdUYNicwpk8rUUlMXXozgejsNZYiHW1KBgEACCATjfnwl7sHS9y5dKoDMcvuCpEAvWHECpJYwQlWAB8fSUISrQWCAZqRhty+I4t6zu9AeepECCbx17hKxuBS5C8AZYBxB52RWtelvzAQAKuuGZmUxyhlVBZYm97sDu1A7d1NkgktDDlVABJgWozYQAj+OEHCYD0CWY/CjwPMbSqxoOt31NXXReW3aDOgFQCkARkiOAD/RUTQQQYyWrvKBStDWiPS0oRtAKq7iggysGlOQ+oMMWnpmALj1ykoeG5lqsAB/Kfi9EItBTvykRBmsARZ1fkdU+Cxr/fdb34zAgAhAwCeCc6LK/BUGcDSAoddpk3lmiUBBHdAyS5dbQoIsBkYx3BafeoQrIN2PIQUDqSw7jJGTAYCUpjBitMbArSv3DNvfrlHDCDzVNJO344E9CFtTrspNANkgLRzFqOnBXYE3jEJDOG6vpSMKiEINuZjoQB5AQdCACsTtaQnugRr4HKJ9jsFllHeMYCDFrCbA1Ar1ApyAm+Xy9jWTjA0BHlsd2EHGwuvJ9wBBkTGA1DXcY1jTOAD/49k+Tm7m7szQGRPB3BpW5kAaXi8rwysTe8VpCEucknjeG/9ojuhGZ9fQTVHnzC0NwzeL4brHgjAC73WPO7DhkNdB1N3OLwDACWzmBYZt6df+V7ww2rp3AQSuqsAOACgCJFxAACBg2CBkerCOpdyiDxpjKVxnF2YkMdQhqPCAKeZIu8bPdODjxYgv4u4AFsTOMLpNZvrl1TSN/+CJgErB93LBBhJwC3QP3Your9SriaDCAUIECizLBYiIwDIgMiTvH4pCFgCN+ezwehbCYFigwNwmkFpN0IJgXZztYfxkRKwgYtwBLBxwXvLtxM8iRTUtwYSqLraPd6LPDWcQRrkL/+1Sjq3SA2sGhBrExkCaAZeSANfaQzHCbkxS5wh7BOH2IVeESik6gBpqkK0a7cUaLOWa4EP7IgHyMNUYj3OEbYjOiB+wTmX4JMYZAcY8RV2YMPfWzRlEDVVuRkwmgdMA4Cw2bmroJJmiLxRNDAs4LptYolRBD4RyxNCYKgnlKbRQ7tFBD8ViDVZq4OMqAIyeLt8GUN9y7N8y4A1yMRgox3QSsIYDJYEHEL9E5bRkiM0YYiOkjIqGxB0EiARGSZg2QLHQZJtcpneq0HFGcItwIIrcKgpUhgqPIFKcreWKwEQ0Ig3iYM1wLN8G8N3EBpqXAPagiLrS8NP7MZ2pMFgUSb/bkKX2EmGK5g4AGAh27DDZEgDADCydmwMeDyMtzmy3ztJ34ODfETEHAE/YiRGtfuJl9uIGOgnEXjGFMwXJ3iHKGC9I8LGCzOwGBnCGOFGeyRFTvMetRjHTrCykVHHTTkdMzo4WgyWWiIk7zoyl6RBdoCDQxRGtOMB8LvJn3gzLdyIP7I1G8szNZItS+QxZYjIpRyYk+RGvSTFGmy0DJubhKA29CmAA0AGitOUdRRFyZuCkXhAsRRLdzxET8gRYkyYtBy/1MuLvqDEoMwzJyiHHEu/17u+pMxLYNnFk5zHv4wbrkMTgSigjhyAAWAB1bHDZmCDj8gAlhiYyUMaGPTL/8gMvEygzJmsQn/8xxQYv5zkCCAgAGBKAyeYTie4l7xigWcEtMZJSopkSjVsSt9DMnl6izFxl3PklJIZEALoyQGwmLtsRwM7jD0cTv1zx4Yyln9cjxQIgUryhBo4Ac+QBOfYyTzcsz1jATZIUL3KxBQ5Qxg8zdNcmqW0SMfouG6Ki2izlmspAnN0DQIYAINZTEIIvMg7HDUYUfr8RizQoIcaxprkz0oKgScoATdpRgVIgzSQgBxNg9GczivYuQ1wgKDjPcZZSgN7hwPIgGH6ldQMz1eqGfBBgI8ZqQOgzau8Q73bzeCcwV/8JuFMUUJoKA+QphqopnajQirkgRZoy/+9AIILwD0Iw1EnYAG9KwAdgJclmIcDwDOAQspQzIQrIA0t8kR7/D0+USsmS8UFsImQqhKR4bnWWE/Is8fJ6wbAS9H6zAQxXaoNHL0UeILm/BBHAALFFKfTuogWYoOnAg8ZYVXaiZEXKVRQLBfbGcfwCRl1rE0RcI0pqzIDOIMYjLyiQ4wmxdRavEDDWqoaWFZCGYFQ7SONcIAqTSLsK7CILDAXQVH9a4lazRAa0A8DuAK/+9Gma40xojIAmIJghcHJmwOWNNZuRFbD4gJ65QJPeAI2hdaMYAJAciq8hNBNC0Xnm0Gn3AIvUym6oIg9Jddy3RSskDYR2M4EFKiR0Nb/FB0YNWwcJ0AqDerYU9XXi8gCEXFBbNzObDxNd4xVWtzWx3gILyE1AxgZAAhNE6Cys9GKrJA2ABhUWMUVpPlSyRzCa509e8OCNNgAkN0IkS0y7XQ+AwtYjIVV1vw9jLwddSk+CMAACTIBHGi6KtHZrBDCByW6M+AOoI1MLjVDol0/CWCTpM2Is2FaiMRLp/VTT9xLEo0bUcEfXnANE+gzkvLQSJW2rDg4p+VDJgvO4QzLYFmnPaPOd+AFt33bJZACj5AAkqVWo/zXB83L/KNapCMrBHgyCPhbJBUnCuCUh60yrurcp92uXei9Yq3Fk4xBgXoHFhABPKyAcPpYfS0D/2nFtdfjN8dh1dPsXL8suu26rjAIJ6wYQJDJlF5FV+rCWMcRjl2w2PCEUDVsPycQAQOIg+JbBMrFCC60D2O7RijqIOtDyvZF3vCsrsYa3chahCRIAiBYhBggp6g7VyojgCjYTlgtF0iRXYJ1R+7lk+hxAl5givLNiEGolz07wfU1zc2DQV8BLYL1vV+cguGgC3IoAEcQB0WoAnEYhKbYANPxX6zIPdd9PvvpBqiNke1kX/dlpDQwgBgg3wfGCI8wkhQsNBXc3GwkUnbdRjbkyjlQl3OLAahoEkVAYeiaByhhYQOYAwEWVji4H98xgAqgrWu1vvZbA7sQJ+Dp4Yx4E/9xLVpDEzbNZd8iNS7urMhRfIw10KgQdoQqgOJBEJ1rEaMqQ1cRoC4FVOAkKSEH6NqsqAAcxUOtiIECiAE0zos98OLtMbbZGyiIZF/Ou+A/ZcnGFY4wIAcHcARFOGUm6OMNGARHWISoC2RA0rQHNa5TTIAHmNwlcAQqjoFiWIQyeIFJjpURtDfZizujvEvsc74jRspi/U22KOUqOOUovoBV1uUV9t+Aa98/bYA1MLFgDiK5urUgPqAhHiYPisgl4l46Lro5UMV5IGEiIAI3XeUyaGVS+t8KIOSnbZwz+IADAKJv5hm5koCgDEokGuIwxst/neMZ1IIpUMVBiOZTdtOxa5kKIFjhhwUkJRVgMc4AE7OIgI6XvmiGDDiek/gz7bxWxvnXDEZigi26JNmPKpBoio4NR7Dnq9LZNNi9G2akKDiA8grpNnmTW+ucm6PWhFZpPhnbJCbRTGAEJbmAPW6SmhaHcWhlNICSh3XFF9xnAfBoAgBpoX6O4bkPWhIAZNC0WzGkiOTkMP7F+0vK0JoD37kAEj5lR4AuHRAHE7bmDvWPKNg443KcfckAvfPdIAoIACH5BAkIAGMALBsAGABxAKoAAAj/AMcIHEiwoMGDCBMqHAOuCR1KlJo0ATdtocWLGDNq3DhwWhMjs+iIFEVHFMSIEjmqXMmSIzhKs5DIogMM2EiSs2bJApaypc+fLWvJEVWzps5QIYEhCZUjRyhZOUUBnUr1YhNRRI0ydRoq1I6vNXY0bapEVtWzaMdYKUVHltutOb6CDUKXbo27YbuUkpO2b0s5MMbG3VEjCOG7dCdMCKLYE4caPXockWXEr2WN4ALJmos3CF7EnmpM8KT4RAgOPFIf+XK59cKXs+IG4UKby+zbQUJzUNzYk+MQPHrodU2coESIwGTlKMzFg23aHpyPntA8unMuE1L34PGqeHFwpbCS/1S+Y7b189KpRzdm3TEH1DygeHcth5LNo4Sro8fgoQP68+6ZxgMi87WGiSg5LRVXYf8Zg4Ex7P3X32juhfBEgZbVcpVOSCxFWBASPhhhc83xZmJoK2DoVxOUIBgTEguCKKF1tJloYge8pahiWk0EQpRyTR2mGBf+nYcdb74pxgFpvNWg445nyREIHTGNtcN272X5mG81/BaCCmCq8EQIJ5h4ApRoseiWcqmloMQrrzDAgC22jABmCl9KYocFX/TZpwWSrMDbCTOgWVUTwIzFQwpduHDJo6ggYsGkX6QiCRRf1MHMppxGUIcFGuzmyQl2GEqVHEYMxgMDj16CCiqp+P/ZZwSZcgrCJLhOwkwEEUgSwmikmjpVE4ERFsIIUKByCRTLIiKrpxEwAwKnk2AyybR1lHDaqNYICxQmR3zFgQa2QJEKFMlC4aysmdYR7abXgiBvtk+c8J4Q3v6ECQ+E8aCCJCWc+2qk686aKa/uyqurpyU8scIJJwyRr0+YMHBXCBq0kIqyraICA5+z0voFr9LeuimtvkJc6MQs2TACYSeoMAIqtlzi6KPq8smrp+6WPG20KJO5giQstywJBz18WXPNN7uaCsiezuozvCjb+2TRKtVhbwpztvqKzZCuK/LI0cp7cp8jQFwq1ivZABwDcdoSp5wMdPE1puySXfau2Ur/csKFbLetQgqv1KkBmVpygPGyX1iQCiKSgjwyMzPMYMcKKwfOkQ1QyHmJBhrgGcLo9nJwAuFQlADFCKAfPifAJZQgSQuaryTHFyPUzCrdJLxqy+GrotI4KgxoUDwDI+QO8Oy1u4QJDF1cQuclccaJChS2FG88IryqTumkAQPcAu3NZ8RiTbI0Tf3hoGMM+gjcb2rBq3hbELvsT9hQPkaYADMLMEYwAsceNQI5JY91DCABDMj2BVQkT2OVm0EdJDGCOuzvIqXwnxECQQkLdMxcJaAZ6+DkrHdlK3aaOlkJLGDBCy4kgzkpRSm+0Cp0pSIV0xsBCS4htnfBK17McJf+/1yoEBAY5QtGgAHYXMUsW5AATiT8ggwjcCt5ma0O2arDEImIEDkYBYAuCKMYX7FDEjwximTblBWx9akvgIOLCZEDDJPogleIMYxOhNMTL6Gzd+1tV5nKFF/g2MUvwMBj1HuF3Rr1NTKSIIF8wuLOdsUzvm2RkAapRR2gYEdU1FGRjQpjFxhAJnINzE+86lMdJAiCN2IyIcww5KPMSAK7QTF0oPuaLSSXSlqVYAaXfGUhW2WzT+rRVRbwIa3cJTItCvMiIGCWzUAJt7vpbFpnI5sWXflMhdggFTusHhS/5qxkAm1nqmSGFbjZTYRYoQSJdAHd5PQKVDgujTbABNCwaP+FWrRTIXKApwu60IXQpSA1i0qgPflkA0nMwAoQjag//3kQG1jgiaOU0xFSkIIjdHJST0tFC4YgjiEw4aQveAFFKxoBVMTJeHU7Qt1c8DFZiTQLgtiAIChAAR2IY6UGqYMh5QRTujGqd5TqkyRwKoimomEQgwAqQcABTxhoz3hcM97dUuenQDG1qT6V6kCskIqMgk4FMHVB70DIJxY6rKlNHYQ4VCpWK3COAZtIQetap9AbTmpSEWhBFnSqU0GI4wZiHYMcWtqFg3JUrxw1nqtgZT8WtoCwOh2EI+gKVHDIEXqPBY5jI3s3RJTgCyC4bGHB+oKJUtQK1sBEKWBwBJn/im50PBgdxpAHBUl8wQaChStrXdvOdyJCtlAY5UFzexotYWxm6ipFC1awgdVulrjPtIEdZIYJGnbBtgh1LrlSscJMPaG6G0BDZlvbTnDMYLqKC4QHi8fRNiEuBFy7xNPAR93qogENgtABe59phResYDcT4EApLPAEtC53UXiCWAgS+LTTXg691RXEIBSBXS7adboT6ICIO7DCBmsAoYtalGkm/Aoo2K8ElytCev+r4SpYAZNymIEQVuCDDpgAA0A2gRCosGPQPfi2+F0W+AJVXQrQ2LDi0AERwWGDhtkrxEDGwAEAQIAWUIEKLXBwXvGL20Ut64apUEF/eXoBCgR4/xEEoIA4qNA8Km/3PSHugJYPIIEDbFkQUtDDC7KA1sPplqN1uwQMnvYFSTyhBTuNqzjEcQECcNkBG5Ay1mBrh3oNyQQ/5vMARr1lClBBD3pgwhOe0DqM4Vehf62DYLOQBbmmFAyKiAEBDMBrLkNAwPkChzU6zWMfYwAAWxb1qAcgAQAU4AVScMYNhPAEOzV4dMbr3Q1jF+YsFAECELjAIICg6wfwmtd+BgAOBMHZHdlVEmrusZ4B0GdmL3vZzWgGAZgghV/oYQjV3sQmGqyCBJqRsjB29Ap4KudBAAAA5uY1L/K9ZQCYINMqkoN2HeYDLD/czwdohgQkYO97A0AHN//Qg7RbUMAEJo+WlLVfKuwkBB2glAIQj7gBeBHyZvCi1wT4NZ2JY4MJchzLx/ZzvpfejFHr4uksGMABNnADKXDiFy9g+eskQTNYmctxI7BQSl9g0hg8/NzH4IXaeXGMtqd9yw4QhCIuI4UZwPs0E/jxw/vcc6Y3/QpXeLoumH0BRYDBGZz4d7VHgOZLQPdprAuBJEiqCHE4YhEQN0DbH+D2zqf97QBwwCDaTZV3O6xMPv54n5eu9gqIoOmDF7wlriABCjABDD/4ASfAIITxhRQRG7OnJDZxLCq8gAmKqEIVgJALiB/DAA8Qg+bbTo5jVL/tIX94AX5aeikofDd61vL/6v3OdgVUoBlXSAMLWOAES7BAFweQe8o5wYkf3EAS+F/lFwJ2Q9Y9YQZ6AAYCeAM3MA7NF30PYAqmIAbW14Dk8IBtp3a9hgbc1xJWoGPxJmLHNnIj53cVoHbmd34ioAssEAUsYAlPRwDioAg3gHv09wPWMAQShEX8ZwuboAJDIAU/8AsteANEYIA5t4DR53kGwICdp3m8EHobMHQqMQQrcGAhpnf0tgT5RoVpp3ZLVwHnh35XkAEZsAYZwAJX4ABz1YK/QH/1BwZUMAMgsEqWUjwOdYYCKIBEwHwPcIfRZ4Sf53bX53Zqdwxwp2kb8QIbgAPGhmx91oHN8IFs94C8/6CFi5gMrycCaaALXugETiACZKgIRAAGeoCGaWgNEhRCI/AEdtBv9BeAYFCAMZALdygGsGgK1KcACkAOsEiEbOd2B0AAG8AR4oADoSZqIycCV/B6+UaLCtB6WpgMjKiFGdB+ljB7Kmh4Aqh7aKgHdVcC1DYCkmAN1nh1LQgGjuCKd1iEYjCED1iLBnB95uZ5bmcAACAIGjEERWACyDYAzSACIrAES1ABURAFxVgBAZCMChAAFWB+IqCFWmiC0GgJTmAAGxaO31h/egACFHQJJYCKaGh/LTiOd7iA0peAbScGtPiAt3iHnsd58EgAGlEMDrCBCcmMy5gMkvh6tSgG5P9QkArAjGvnjygYjSjYDBTAgp6Yexv5C1JAdtagkaDob1LgkQkIkreoh9aXgJxnfQawgOc2gRkhCPbIbBKQkDOZDFFQkwqpkxXAjD73iGQZjU5gglEAAS8ABr+wg6gGBkSQfC8QjkUJihT5lOT4kaYQfbJIDgq4gNdXfTgJkpt3DM6GES8AAeI3AGI5k/9IlmUpAsioAGuQDCFokIwwBZg4BVMQjQQAYIKwCBdQAJVQABBAAZnGBGPXgkZJf0gpBXaIh4MZlbCohw+YmLbIedJ3bvt2EUPgAPQ2aouYkAmQDF4YBRnwj/94kLSYAAmghQUZAGuwnQLQnVOADA4JeAf/4AAFUAAEcJ7k+VSTZnni0Im/4JRSIAiBeZiLaQqGaX2/eZNuJ33Ph5PwKIgKUQx7R5mup4UJsAbtpwtOMAWMEJ0C2QkBYJ0JUJLayQgWyghz8J3I8JYiEI97eQOVNwhocAEXgAYUAAHluQiOkHxAgHwXAHFicJgyap85SYsBYJiHeQznqKNGyGsXcBGYR2+LqJCSiIng6QQZcKEiEACdAKFnGaFrEAYS+gEWyqA0aQAFEJFzSIA+qAgnhXycOA4XIJtmV4Qzepi/SQ43iqbsWIQmCX0FYBE3YHZ8toiFUAGF8I+kiQwbGgXVYKEHuY60WAEJUAgRyowSeqAXyggf/+CZBkAABbAHi5AEjlAFLMilcwgGVUCiEAAA0xejM8qjaYqjEKij5AAKJnkMDxCnC1EMlnYAS6CP/ygC0OmFlsCnX4ikUVABMZqThVAIzWmdBZkAYRAGf8qoYbAAE1oJF7AIqtma5RkDJNqsiwAEQKCaFOAA/YmjaKqAnUCjJqmAo/qAMtAJJrl9C4EGx9YMSyCd0RkFCyoAWOAEyJCkSLoGAQCL2SmhUpoATBoAyVoN1bAAC1ANYWAAaDCXA5iXVTAO4+AISeCsexADFIsGlaB5v3mm3Wqf4GqS5NAJMhAAA/l8DgCgB4GcADAA64ekz3irloAF4GkJz5mk/jqQBf8ppcUaoTUbBh9QDR/wAcb6AQFQCYvQnuEYaKj2nv6mqZe3CJXwANWXsRorrrZomNxKDjIgA4b6gI8qjwnxAq8qAexXghlwqzDLp5gonR+grCL7gBBKrBIqsgCbrDi7tguQr1xWANI6qUCwokTQglKQfIKQBE+ro+J6phmbsThZnxBqs53wqGigEFnwcEsgAe2XthkwBQLAp25Js8ngs9cptwGAAMRarAgwunPLsz9brJ1QAE6GBoswsZVAsZUwuzGwCLd7AYJwsWJgrlNrrk06qr7rraI7kKepEJIJAJULjRt6q5tbmpYgndb5ARIKvHJbrAtQrP6arNRbDRJqAOz/JgVSMIA+SAQNCwQRW57NyrukKqNWK7dqOpDBK66Na7O8cLwJIQj3OABAuafIgAUCoLkB/JbJkADVMAdRkADf+raqm73amwA/W8BwqwAFYFiXCgaB5m+oJgU3YHkAVgCcp7Efa58RKrJN2gm1mKYiG7IDuYuRm7/7G43IMAVniwU2fMP1WsAL0ABrMKEfC6HcW6w+q73FKsRhMJCPSgDkebtJ0LeWmpeT9sFFeMIa27glqaZNiqb+KqwKALkKgXmwpwu3yqf/e8PUcMYbWsBhwAjee6MQigDF+rPWWcR0nAxyLAYFsAipGburWbu1W56ueQEbUAnW962HecLWO5A3//qxOvmAABu3+UoAXosQZgd7mNiQfPqdZ/wI1IAFjCCyf0qsTIoCAPuzQOvAPEvH1JsADzAIAji+c5iXD6ua5QkBaEAA+DmjWeytjRu/IpvCoPDI/goKx0AAUZUQZrcElWikMcunWNDJZ9zJU0Cs1fAIQiuyKHDEVAq0dFzEqBwG5BADlbqXAqgH74mNN1AF4jAIgozLhSyjC4zIJ1zCKeyrawCsCVB9lbAQybzMLhuNN/zM1BAO4QDAjBAGDfAIjyDKCIAAC9Cz3NzN3tzQCKAAXAapt1utjlCp7KkDsInLtEjFptCkoosA83zEKSyy29mZ+XwMDsDP9JYGlzzGZv9Lw9EcDtRQrx8wBWccpWFAutOLrEaMvQvg0KRLwdRKu7V7nkztmrecyyMtz74cAOV6xDfqxoUAhnOwBrSIpUygEDFgAEtQtmTczAIs0Gpwxgyq0NTACHNcrMlgoT67thINx2HQCa3MlwSYl44gCBeAok4N0gEQ1VItt9lp1T/cCQuwBgKrwF1cAF+NzAbQDDKtoTY8wzZ8xsqw2WcsABbKydZsulIaBYxKsAX703EsyuTwAGhQBX/Ll6uYfJM2CLaMy7070iiAyIR9vdlbvGtMDXNgqAowniZbEGFdAWswxmUNwAEdDsogzRbaANQgAMkwutmcABdKsKLNswObswH/8Kh6ewGSqscaBlWDIAi1/c4jjabyzMD+StIRiqH4isJdC9YPoMxGKsM0jAXfKdBnDMA9K92PMN9vi6FsbNqoDbSrfNdYKq0XEANLzdTn6ZpwZn3eSthui8gBkL0T+q8BUA0CMAc1y3b4exBz+gCgsAaZzN/M/Qjy6t9q/dnPPc3Xy8ZyHdHdDLAKoIKZCqJ9PaKAnd4jvN5UDN8A29tZ3AmFMAeP0ABHbK7wWIEGQQTHnQGYbcOPcMNsfcY4jQWPwAgNoAac7dZF7LPV0ABC3c2NveOOwJcc7KVMsJ6D4GYE0LvyTNgnXcRyC6EgHuI1qwCOOckGAQaEXAgZENBm/7zJmh3NpMnJ1KAMWkDdq0uwAmu3di3REwqpBVCiizCiAHbeGqa7BKAAnYACKHDI7e3QA3u65YoCCzAHbc22tfh8P4oQ4pALx2DoZWzGjj7Q0dzJAPwIz00NWtDWP0vp2l3Up7vdYZDbneBs0grh5/lwF62+o17qp87LTYoCpGusp73CNCDdaF6shgrlrGoQerAIuWAAnPniMBvQms3Zz+3l8jrQxS7X2YvgCI7aDmzqplAAl9rBjiCiaADY5XnLBWnq217qJ5zbCPCnVp21CCDdbJysTArlL30QuQYAx1ABh77fMM7Zj64MamDDUzAHAg3pX97d2m3X+Q7ByvrTCP8gBpVAlLj2pevZ1wWABg6wiAy/wLmt8BuOod6bAChAAwjACI+w1aLcpLSOEFXQfHEgAguK6L/+6/NODaQp3WJe7FOw6giA9A3twMlAxw1Nyg8wuycayE4GVwV/y4TKpHiO23w+B1v9r6R7rKt+8dV37gXhkbyQDJhd79G82c99+P89BQ2w+F0f6QJbrEc/9nRssHvfCWKg6ZVgadRO7ZCKc2V58fCM7QjdnR9A0Q8vwBngvYZ6o8WMEJjX8ZkbwJnt3CO/6L6u9aC92Vpw7wYr80Vs13R99t/K2i9ABJbnVH/NmgdPAAl58bl9mNz+8I9w8tUQADRAA2HA5N25nX//Xn0AENkEceIGkJZK39+ZzeWLrgyEIM08XfhaoAxTkL2nG/2XbtpFTQO5/QAXsILqDBDiBIpzNGjQhguCCjSrEKBTJ1MRHwYIkGBNhgyMwlBEEIYRozkZ1iSjGECBAgMABI1h2bJYLgNxKmQQIADLzSmPHlHjyVOZli3hsCCzlAFLT2o/H30IsxHFUwRROy6Q+vSpAQKVKhWAcOECBTRoFlFIuLAQxYcoOiEwhcIkLwAADjQDVWhNNZsC1jAqtMBhAHLHVLZsCQQmr2QZck6ZUlPAlKM9tRAiFA7ZFV2Wbib9uYVagwUbO6GQioBq6dIKCDyIC8DA65QAHEBAQ0BE/4YECKzu7qQAgAkcOBwA4JVmjVAB1dbkDiDjoRgDiwizXASz2RUnyBpDXrw5nBYt4R4N6FCkiIkBTrDs/KnlUTXdUcOYRh2VtFoCggwOEoTmQowCCiBgNgoIECmBAHR7ypSHAgOggw44OKEREwCQABkBGFljvqiaI4e1C6YbIwbiJLhNscVy2oka8MCjZoAJECmFBB8wGACZ9dqjhpEPEpTqtNAWOM0qAhYZRAdHCHIEyYMogGADB5phJAGrdOvkw5SAm8CHFbqk8AAnkkkgNxnKlIEcUwwYREQSDajgNicY02nOpAgBTwAYZYRBAw5MuJC9Fh9JoKlBhTRtgWoMpf/BKjEIcDTAGLyiYFInKSgAgChye2pRcrAaEIdGuFxBhSeeWAEHABoKI4GzyuzkNSbYzOUAEy9i7LHG2AuHGizyDOSLI0LwxE8cfXKRxzELFTLRIXfzlIC4DDhgWtkKKPAARkga7alXP/XhhFFJfWIEIVqoMSZQzLzytZUIEycGAmgVIYqL4swuMmWUmYIFHKAIxAgYjjjBBz8tscknZaiJItNkmgoDUWarQiGiAvQzSJCxICjAgQALvGKK5bZVKyUCcPBBwlGfkMSWVFKRJAtU41A3MAM2mK6KSohLZue95mAMGZ2SogaZA1b4ohQYLiFBg1MBSGMKY8F7ZOGHhbT/mtndKNYPyYF0GAQNJ2vDtBpN1RrNNxO25CDlFqBIpYRU7BCiCAKOASVdNA1otyVBYIojmQqS2cuJx9ZjTwAJJoDii6RRQaWFJ85rxqajWqRGpKashpiq3Z6CDoABueoKAtIvgJKAK3BLEAUaovINgwjBJdWWEWyRpOUSJFmhwmOOIedDmwkzzIAldk6GkcLXO0rfA3CQpAQYHG/ZDlMbcTqy78JzIlOHNbfP7LbIaa21lJqpFgIABrBkCu6lCiMlBzrgMgQVapdEkhEkQeVt3YczoHe9Tac6BlBAApIRBUY0hie7osYUJOADC3zhC4hIhQVKYAc7QI5u6jtK9rSQ/6GN/Mh7VnkIARIiCBT6J0ABggAFnOaERziBKQ5734C2JLv8xe1+0ktFC1bgPwM8QAeEuUEMYKKAndGkg5QJzxVwIEFEJO1tOpSEDx0gAUvgCDyUEQ9TNKe5EHLrATGggH6S5AgU9qeFw2kGFqbAI0R1BG0m4xKpbmeHEsANCiQYQamKkIvWrKkl4qgEIBUgAvV8JxyU2YIWkNEBSXzhEgx4xSUusb/bpaJcqNIFFrK3SPc0gFlfDA2HoNIprKyQhVy5ALQq0BgBiDJRCajAAUzQgRuGawRuK8EXUkE7FaygCMOJCxoIMw5ANiMNNwFli/QlgRWU4AkaSEEXXsEAW/+gIpPUq1Ens0eILRCigYy4mtUcxjrdiA9arjEAL3hxANBxxQAJWCZP3pOoAGDllqJaAbhCwABU5HEGdpBEMIfJTgjooSVJmFUatBMORW7mEbro1xNCcNEQaEADKmDZ2zK4uwt9RxmM1MJnIJao+XAIATRonQFO2B+wTeoCpSOOAgTQk0SxRTY4mAC4SmWqjI5gfxfMYAi+tIQrOGAILYkB8YrFK17ddAoZKFoIThACDkgoBCnAZtxapjscHMAS32FkOBtYDbSexj4iVEABTngkr3ktbA6AlgAgatIwvEpLJyBVC8pVKhVw1BZQkIQQVEAwCQwgDQAQB0uAUAkw3eT/EVPQDhYEMFknPMgTWT2BVlOggV1KAo+SeEJYvbnFcLrnPYaKClWE1IAGJFAEcCHACkmnsa5A6wB25Qk5hVQBAnRgs6Nqwf0ISto+9nGaK+gAAJYQhTQUgDoAaIYukIGMZhxgABJohmLiNAAMTMATV8VoRkF7xypaz5vtYaIyHsGInLZ2WbDVifnkMi14xoUApANTenzyCNguoAIAMBlf+/q2POaOtNMMQdN4QU8CsMSF8QJdvOA5AHheyBKwm0CXLkre+m1Td+hBhkiBsoVGUmO1V0tUAx6hhgYSAA0bAFuNN+Akr1DYCRBN2JzW8KCePgFypWJZgnsYzIE1lxeF/xDBASAwItI5YDgYlgsGNoZFS9hyfiforFZ3+VXSXlEzWugMioMSYNNUgxGwbQCMeQWAFqJBEF4Th0G+QgG6AuAKEGXgT6hxBdjxNZv4G1fLvmpRH3QAAxKoQCESIIII5yJn2tWFBEwAnOCkDxkDeBCXu5zVrXL0ki1rQSPE6skWbcELlFnxAlz84ny1RwBRaHKFHTUg0lEXACzw4BbBg4zwnkADt1NwccsFORVQCAAiKESzIT0GaDVjAJmxJQYwEBcs6uIAsMsqB3qQVR7wIKMMYAAU4GYuAHSSRZMxM3jQmuY2PyLWJc3Ardep39kshGh73iI4260LDHBB2G776v+QA7uCRmCgGWehiAEK8BILZWbTA6D4dnVxBXje0hMTmEANtIpRrhoa3eqeTFkb+d6rtTnWPDEAGnTAJK+h8CsQoHAaPkkIL+R81S8KLwc00FGXWbRLRcCBwkVwEjGESBwEMEAanGAJS1BcF05wwhUkIJcHdeCWHfB4CMQNaqESdgQTOEAnfe1vFKvYtdVQQ6z93AxrydliKGwhzeMigk8CJecoxgLAPdDxfw6WtMH0QdGdWwgFiEE6LIFJBuKEjMxAPQNWn/aDqizcbnebq5a0RQiMcaNw5Au1qvaCe8hpGpWDx8+0VoB97a0xXmSAuotMLelzHo4N/73jHOCBRjX/0OCE1xTxlSDMIh5QCKPoYgAsmLoTIg/w9G33lhyvgcclxFVyT8BGnvymv/euBvhEpc0tcpGtHVXhFcZeLlgoud51voVeGYMLQaj+tyXEgUS7xm6geMDiWZKEulkCAdCFzIgCqns6S2ABSlO+3+iAv7M+3uOBFOAAGykxsho9nXOPUWoA1QMPJ6iYQRgI/hCEmWql1igxO6G9vWskYPOA+eM48ZoArSOOuwmMCJuOPXgAXhhAqIO67CAK5SNAS7g48JI/8aq+rKqBzxurkrOTEwOnvfsM0ICt9nARh5OzEaSx2yIA+0IGoIAo9/OCoMC9AzAGDzhDDzAGY8AAWmmI/ysxBekSkT0wgDVgAc3oQaiDvGnLovVxIwkwww7gAo7zgAqkBg9ywrLau5ICDVerQjvBAoxrjdcrgPSAJxRERNKDP83QNmvrREpLg+Y4kwegABEZA0I6BgmwLjy8roubuuvajCnYNjVcQw7qtVQzM53bOVFClLYDCjsxH0eRMmEUHeKIiwy4QNGLwiu4AqjbLqnLIizIgEK4kmOIw1IUBOqyLiwYwh6sOqrDkciIOgkYR28yxH5rEcpIR9srPWpglgYYKXAKB4fjClViIUu5tePIHs6IQkuQADB5RWZyo2oIAwUwhQewRhFZBLnAIqKwwyFkgStIgwy4LhyxhCtohv9mKI4OogZEtBMm8r5cFENl2MV3VDXP4IV6pCspizK6IoAKQMbQMzOhcIJpUQ9mCgcneI3fOchSLAyYwDLIs0MWGEpLuJehiIIKMJ80MESySkenLDkUC8mc04LYcjUOdMIDsJZFCAuZcisIaEmXZBHK4JU5ODHPwIIfWwILtBMWOD/WeLKeNEVAWoLMcAKi1IWhxAjtoDoRGIBmwLvwoD0UY7dwSkcxjMpcJISRrAbYakIR4BivABvSEZ08IwBeWKR0pIY5qIZHWCShiAKMPEbPlL0AIYAYiEumoi5mbEgfLErFyK7qcqhwaCTBLEyhqE1cXMfSu6cGMMQUc73x2a//jYGWePmO1NqR9wGAEsOCZAhN2tMCLGiG2vI/1FwEpktFvGQBx6M6iKyWdEPB0GOkdAyHNJAA9jMz29PNLVADUWrMR4yLaRlH0Mm387NMT0pHLWCECjAAmssOEcDIKGDKo7gCh9sb1ByDC5iVikudKIDIKDgAB5gUAihHjkQxtDtLKBTDXETPDLynBdgFF5mW5SNAJ5BOjQEd0DkALAAnJqKGNVCA4bgJJ/hPEfCkm7CEKHC4A52OCygAA0gsCVgCIf3P2diADii7+wwnJQ0nqVy1qMRFqQS/1/o16lofq6s64fwNFF1Rp1SGbGkGZPDIcIiCJaCJDAEuhNzRlliE/xjImeB0ABzwE2+yk8K00A190sPMU6nMz4F0NTVIKgBwPgyoEAjVmAMgTgCwK5KiygRghPA4z8sJnEN1ADWtVMLIgnRbIHajDD09zExET38DSTF8j4dxsQFwgLIbgFsyAQzIN+k8v2OcDFB6hOVghNqSi9fICmOyVF4dAwq4kPAID/HMTQtVRzMrK0bKxfxMACFhhGYwAbHShVuyNgfoUfPJs3z8yAYyidPsVW91FyTlM9pjUbQTT7O80CVNTFoNDUaIgngZwkuLC1eVDWjJR6hkVAWgzm/lVSqoQHHFTKc8VnJ9UvTMzfejymr4gGqAtFQBxngy1AoDgDXwTX8Lh/856BG43NdexYEL4T4w9MiODFgoBNUl1U1CwAL4IsgC2AMAiZQLWITRCUZoAcxxPVmyoVSN5VUmwIBlEtfAhCinVMdyFU9jRcy989KBJIcYcIRxcASndQQg+AoAGZCZBdrCFCcBSAYACJ6cVdMLSEVkWCA+q4zJEFYmMttivVoLrdP3e6/3uYBxUARFGAhH8IoevbVlS9LxzNoDIMWu3dEhIIAb8dh/VSRF+tmxrQxjDdp1zM8wMIULEAe5VYQqIIivuNvzqwD2AyUuUpgKwNm/Rc0NcBocuSswBFrE5bOfBY+aZdyQ3IKlEAMIkFy5FYi6VaHzI44VbcrKCAcBEIH/wQjduGyqNNAMpgzWFvnXnzVHwyXagN3QR0gGMVjayRWHKnAEsLAUAdGtOQBazNwVLHCCthLenlQEyHo6TxJbpjTdw1XeZgpaJjLaRmIEciiAJKFc220hJxEQ+LTAsu3daEyAACLf6WAC57oRozTEnijcf00K8mtC+H3dR6gA+7XeyrXcsEADjXGUA+he1JVVakgOciAAriXgMVgE4rkRzbgJ7GFgMOSMKiQ/RXLK13XRAgjByq3c25UzNIiBPFvKxOUzvbiSEDFhlqiEB1Amm/SOBVpf1T1d8iMpgB1YZc0AB8DhKtBh2tAPEuRfm/NZPsOCagAM4jNiZNJB7IiM/wVmIHHlCeRV3aBNXnXcUN8lACzO4tu1mHtMFY/t3bsSgAUYYUEi4CrIhQeogItgYqRg38JN3Y4UVsLcUGqwY8m1XoKIATkrCDTYGOci3C26qznIJ78l5COSSKNgJp7YjEV24cTlov812r3DAkq+4EteBEGosw0YznQj3DaeAwEeZPJVBJhYAlNOHqRYY7Ft5LKFYKg0yXZTiSyO5rq15SRRiB8mXD/WzGTghSIm4EHIBVQsXsKZgznYjPQ9ZvUt3N49W6gkV3DSAr2R2wsGghigZjT6SkcRQJ8NzBB+0TQNXUewjjSQyKkyUwGYg8uyLJ3gPp0IBxA1XQXuTDWAYiQtmGgXEQCVkOdxGAcg2INFAIKn7WEBocPLYkp7EgCR0FFeDQgAIfkECQgATQAsHAASAHAAsAAACP8AmwgcSLCgwYMIEx4MRGcWHTr3It5TSLGixYsYM1JsKEvWLIcPIUpkFZGVxpMoU6KkI2tMjhyyHs5CAnJWR490AgVSybOnz4YuX3Yc49IjkpdEXY5R4uKLz6dQKz5siWTM0B1Ys9aogTUHVh48usCISrZsk6k5kh7dUSOI2yBcuLit0aPHjh48jigpZbYvz3tAX2bdAdeD3LhBJkygWxdv3rF+I2MMBLih1xpcPGjWzEUxZ8WNFS/mwECyaYr3GAIlnHnz5gmtDS8W3XlxCguncxfUObOq18Kajbnu0GFzXM+yJ4Rwqls3K4aykCCR9RKzZuKbiRM3hsH45wkqnjX/181wptVZRAm73mzMRHvuwl9P8MRBBe7xpo20fOn1snXXxgQIHwYEylcDB/WJh59kSuwgGFtvxRWXB8Vd10GA3cm3WA8cLLdgZAzwoFVbnbk1oXbFbRefZooxVtcJknzoVwhYtWWiB4qViCOKxU2A43GenBCCCiqscAIHI9ggo1l22ViYaFBOwIEn9J1g5ZUcnKDCCKmUYIcdKpyQ5JJlcVBDjtcdR1eWIWigwhMjSJJKKhaUIEkLkpTAzJ7MfIFICE8oSSZUpWjQg2cVdnagkAx0YQuXXzwTATOTRvDMMzaAoCmlX4wQ3qBQ2eDCDrBhx1kPIaQwAiq2oAIFnZfu/znJrJrWCgKlqahgB6hPTQKDetoZVsMJGrjgKirIQmFBBJPuGYittkbQ6Qya8NpTIL9aZ0xxXHCggS2ttprsF18wywwIk5wL7a0RSLKrtT0ZccR/FEqZAgMu5AuuLYhYQK65fKZrK6XuwnvtvEEYNwGxDNjigsMPI0JuueZOsi67X7xrcEqBHKHeZsNuOQK4D0OhrL/lqnvxns/MsLFKX7jAA3CLEfvEviTYAgUqdPorqcrQMqvgyyh90WBiOI4WQsMkOGoLDFAgUkIJ/k5a657oUmop0SlBwcCZUdY38r46v2rBnLCeS+mldZaQytBcZ4RKCFAS1yG+JDTdBQN8M//gpgYacGmBpF+kMoKnb7oct0YMnAC2aFria8veKaTAQ+UahLBCCEvzTO7OqMT55eIn0R2lll00zUDlfJOAir+GA+6CxF9Y4DMzLZOukQocnK4CuCQ02kXqr5fb6fBdQMFs4V2WMIM1umdkQQqHikYauHsjH/wIeLYwctO2GH+2JHlCH/1FEcDAQF1nntAw8A8/qgGc7qaSNwMkVM1pCc+Yfz5FpaCDEYzgghQg6AROm1zZ5jS4S5UAFcNjAAzKBS1B/U8hpRjgLIzAgBBwIAUkGBu4eEY1n32hBJPbRMOWpa5zwe2CBwlgQ2bhgtV1wQX3G54t5kS1iaFwdfjzGbT/YKgQ1XzECDDInguQp8Oo1elzJNBA6xARq035j4gGmYQRBDhAGNhCeEzEn87aZoERAK5RJKBis3BnQSwaJINchMESwchEF8AABnWCQhTvVTkSdOkLfGqjGwtCLiTCQHURZKKjTgbB1aUgBDxoWNowNUiE9OmOcmyUJrWXs5NBwRbBI16/UvYMEFQyISCwwB2zp0jktQqPiHBi1QBZKWYI8pQEYYYqEclK7b0uFbLU360CicuE2OAZqEBko5Y4vJwhi1Wv0x/LrFbMhDxjBMHjWyJdCS6/ifGXtqvTC6tJkGdIQnX32pvwRugCDaRAik0MZ6TImRALZPOMfWuUzliV/zfX4fFfkTIlPQ9SguBV7p19Q94zQekq2/0rAoobqEG+MLkjsA6h62wV6PpVNUsJVKIFAcEIGGDRy92LpCm4oUYR0bN/7ckkIC0IKyB4BIse9KT4KlkPAfkMO8yAClLwhlCFGtOZDs+mlbvc5Y6gUrN9AQR2EII19DDUoepBopmiaReQelCTonGMX2iBEHRQhrKWYQgvuMFV6ZkpX0XQb+60HA8gadJ7uU4SrciCKjawAQpQQBCDUIQzBmoDVpQCEVt1ZFLnGgIhQTJVDDhcK/gqiL1uALAvqBY57VCCQHzBayQtqVx5gCAELY0EUCDfZC97WcDqgAqaLeYMWqGCQP9Y4It+6ypYOAfJe6GiBOSaQQuwsQE0COK4gyiDFGJ7SjtkwQcTmNoT+AY4y8mVtxpwHRSmNrUW8LW4xh2EOKSw1lMKIQuNIM4KStCKMy52sW1qmLK4613wXja5L9hAAVRRSUlgowMmwAAAcGCHFqhAinF9J28x5zrbOa8VxEVDa1UxiCHgAAMmwAEFsiAIGArhvyYAgIgdIAQhrADB79TAJgDnThYLzqerlbAg7juEAohYxBmmgCqyIATSPaMFnuiAgCVwAACYoAxUEMKBWcxkjDKAZ6nwaRa+W9wNULjGIn7AMQ5QZAA4AAIbGATXWrCCCQQYABKQQDNErAoqUKH/BU9YMotZhz8od8m5fPUrGoyrgxoT4AEPMIABjnGMG2MYB9gog7WEewIAnznNai4yBaighyG0Is4qlmI+UcvS5k25r+AFLBNsDIBAE/oYD7hxl3GwAUUvSbgruBAGinwANQ9AzUQuwAv0IAUhwJkBRDowNvGH2nCWYAWg3jMaKMwEBxBAxIKOBKq1fOpVU0AHC7KBkoNsDC6n+QDNWEKaBzCAAxw5qG8ewXTn18+8PdPBKyhCcSmwZ1Wootl/DrSgp31qQgdaxAUQhKtPY4MZZOEEZgYAl2tN5GY0QwLkZkGRBxHUH7ygBZeO7OFCqDOOQmG48/YrBaxchmcDQND7/z7GoE+98hsPuAimKfhwJwBgETdj4Qt/eMTLfYFdO+MbTICzFF2XrJOVUQM+uCwEIFCAAkhYFc9G+cpV3m+Uo7rUAMAADlbgF+FiI8ghxjmXHU52EVwhDSy4NQHKAIYfOAMMQnjC0HkmiRHYzouBS3QVKjuIQTCBCYu4cSQikfJTa9kAgJ52qkWMAzGTpQRkpvmZwX3zsRM+Eg5fwtlZ8IYBAGADPucEGIYw0mLbrmdAlPciFtH3MrzgBRc4udQLr3JBA/r2txfxBsgihFY0WsgKx/ngB18BchigGSLQPBvSgPYBQIAJYPAGJzhBhSG0oAUnq50FULE6DWSBCYpYRP/TISAICJSa0FYvPOJxz34RQwAqs0U48HPeDGkbYPiDvz/yr/AGS6Th1hAgDkTwDdP3A1JgB5JgOw70SX7TAtYgBVKwV4JAAeaXeOg3deRgfLa3fuyXagSABj1hDSYGdiJGeWRXf8cgbcegAOSQghVQAVfABjLIAhIAAWWgCG03fZzwDTMAXJdSdyH0BHYwVWBQBYrwAoqQBLlQaocHaMZHdevHgR0IAASweyrRAlkAYgI2dkvQDBXgcIN3DC24gtJGDgngB28gg2xwBQdAAeKgCDfwDXqgg99ABTNwKYczAq0gCQ/4A9+gCESgCEmYb06obxo4e1LIfgQAAS+AEr3/hw00t4UO94JdeIIquIIKgHIK4AdOwAZvkIZtCH5EAAbf8AM6+APWYA12kIeSMAPk5YeKYITnEAO4ZwpjqHL2N2goB2iDdnuCBgAFgG0ZMQRZGIlDFm4vGAkv+IX1N3gZ2AksKIadcIZOYAlOEAUiUACudwNgkIOnKAXWdziuqAc/AIuCWAW0qGUPkIEsZwBj2IKJiH6ERoUUkBFAkF5hN24SsAQvmAAJsIwVoAACuYKdEADGRw62qAAVwInXKAIAMAhp1Y2mqIOc4IcvMITkRY4/oAfd2I2Bp2W2mIG6aHsZaAoPYAoGYIu8yHIA0GEX8QKNcGa3BmkSIAIi0I8K//CPAcmCAhmQUieQfuAHGZABUXAFzYAGOAgGekCAFOmHHXkD3NiRYEAEUHkBuaBlCJmBLYiQptCVXemOiGcK/aaBLXkRelAGOCBiEFeTy+iPC+kHbhkAnUAOc0kOA1mS5BAA1BgFUcAGUeAATMCN5ViA3zCVgAgGN/ACVQAEaHABVUAEVHkDMXCVIBmSIlmSXmmLU1d1APB+FnEDaPBs4GaTy6iX/ugH/ZgAAqmVClAIBqmVeZkAUeAEjJABjBAFLfkCbfcDYKAIQHABMXABiwAERuibMeAADuB6kZmOxxCSmqmBgNaVWYlqYriCKWgAwHgRRBADz9aFFSAC9acAAf9QAdkQlHDpj6q5mjlZfLCpl37ACLdJlNl4g4HoCEmwB003fotwDo7gCOJQBeKgm6OoCLQohnipgRrYlSepoNSWlyJpAAVwEWVABgonAVdwk+KplwHgB3yJmuiZAHSZl3DJgiGZkwlQCB9Qm1HACJEAAJWQBI4Ah4gJlTRKikvZm3F4A1LwAum4lVy5oJkpnbdolwrQCWKYnRYBBBQabqRZAR/KoXwZBUGZDQbZlQXJjgYqkAHwAVxanuYJjBegCv9ZnEf4AoFYBfZ5AYqgB2zKo+eHmQoapJlpoHlpkPMYoRaxCEuojCKAjam5kBkgDNcYlB+gAHJakgWZAAGwqNP/eIaOWgHYSYUEUAmVQADIWQn56QCVAJgZyaNOCKcmaZlB6o52uahaaQAO8JkxYHNXwAKoqZDomQ1zIKhOMJTZYKhy2gnQ6I+LagqLip6F4I8AgAbncA7iMKbgJ4iAqAj9CVQQ6KbReahaGaQHmZMBwILG5wCNSBHouISah3Y36aQnmgFOIAzwIKh8mQDUypUFuahy6a6mea0AUAbc+A1yKIdseqM3IA6u52a9OZnRypUoWZ1imJnsKJ5FKpKpWhGOsKRmxwJpcAV+kJNBSa7mCg/XKKUsSKrsqqF0majm4I8f4I8KUAkypgpAkARJAASCsAgXcAEFQACL+FcvMAhk/xCt1CqQooqX4smruoqqebqnN9mh53mGggoPSOsEUxqQoAqvcgmNpsmrCWAOCiBiMjupMbCpTedsyLl0G8AEUBewXpmBq1mXzlmq7goJnQC0FUFqDzebcIua2ZANAnCxGCulQ8m0mKmrptCuvyq16GkAF+CfVWCEkAmHL8AEjlAGfbcBS/dnhMaVsAmbdcmOWqmovGp8BGARFHoAmteXGau0dCsApIuu2eCPrnmtHwuv5hAArfuh6Nm6D7AIEUmK9lqYYKC4fTdjEEABABC5Vhqiffuxk/uMrRmUwVq1BCCMCQF1aHYFs0mrUTCUc0C6pTsHc3C6J6qondC3IGsOrf/rrlMbsuaAAKbqABeABqu3enuwBzArs1ZbAH5FbV7pt7rKt8Frl+1aCIXgB6ebiVVIEUCwhBKQBpaAsXcrpU4wBcJgvQLAwFGQAHMrkN3bCeA7vq2bweC7weY7l1R4qZUQAyKsqZvqAAUAAS9bagJrpbr6tB97v7qqAJCQDYUwlKqJnS6ZEIFXayxgCT5cjbUaBQ0sANQgAI9AuhorwYqKkAWJABxsvnT5q+E7lwYAAVVgplDZjTcAoPxaVnuFBp9avzDcvc+olXPZCZCAogKQAT4JAPWoEIEXCTZZjT48xFNAutRwxNYrDGycAB/gmnzrxBvcuh1svouKAIoaAIL/O4pS8JREIA59t7sTGHvrKLD3S5e2WJBzmckFyb9zQA3/W2iemRCrGgn8xwYHfMDwYL3U0MqtTMTwkAH/OAcNIJfeiwCCXL6G7LSMGgCLCAGNCZxZa3LPRgDySwFOCMPver99a6r3KwMBUAh0+whUurELq8MAEAlp4Ik+DA+WIABIm8eu7Mp1i5of0ADm0L0ocMiCjMvlG7LcK74JIKkmTKmUipz52buxx7FjbKX5e79pvABEPAdLjGoEwAQKQYvNUI39182qDA/UoAxqMM7UgLF+3AALkMi6jAAo4M65rKG4jADGdwFMkFbcGItdXFaDIAhogMyBVqWMOsbr3Muu/8ulDbDG3EsOqca8BqEIsad53tzN3oy0RBzRy6AGypDUAiC6R3y67BzSUA2+GuquxocGr5fFzDoI9qYKLN3SvkuquuqPm2ylKNDCAZDG5rAAj9DUzoydi5AQBAoAS/AG5TrUSHvXRd3KSb0MD4y9j0ANcwCX5gvVuWwOM/2uqksAL9vSBeBsLgdwFBB7zQmviby6Me265sClWvAIGXDWfIudVngQjkCLS0CudIzXq7zKrpzUykANwsClj6AGUwCXclm+C/ABt70AG13W7fqzH9zYk3qpwC2/FVin8KrMjAoJkODE59wAj/DHauuVBvDGB6Gkx1ABgVq6qQ3OFM3aSf8N2HPwCBI9BwsQ0pnNpXPApeXb0U8rl+QwrMmKpv1ZBvw6CF7tu2LIy/erl66p3OZrDg2wC0cM3fg73QlxAWRwDNJ8xw5MxEWd196tBgIwB2qA1FPwAZ2AABZ83rL6AeCr4TKg4XXZkjdABS8AyVxdZWiwdBR4cmbY3racl9KMnme9AA3wytmwAO4tktRdEKowmZGQDRlwx6+c10Vc1N7d2lPwyUitDHMQACjQ0eB72w2A260b5Vhel5XwsjFrciencAPWuzGrcNI2je6tlx+QvTSc1h/g4FW+qDJQkFXb4wShpACgANlwsQ8+zkge0aydx6Tb5I9g2J3Q0Qtw6Ln/vdtRbqoPcLWWipzOVszHTAGNgAMQgAMOQAbPdgxiIJ79y78nugC03MpVbg5qK+dlWd2lBoMPTdSvvNrU0ORJrQaPMAV+zg3K8AFl7cS6zcGK3tFdSQBAAMmtVwaOsFcU6FdhlgXMnldZ2AgxQKFiWAGfPrrW6+GQEOfQiMMIscMF7ARErdpGPtF+rgy4ruTlzg0N4M6HPsgcHOW6WtYKsHaKUAZcneIX8F30tgE6gHF4Qj4YlwXxlpaRkJM1nAEPjtvKLQZU3JkIUcoWKgzCMAWrbOQUXe7fneTcoAYejgCI3uvvjuUoELKo6tjBV2QFwFfyJgg60AouzyVT8yV3/9IKRTBrgCoAasDX6V3e2S4DIjnKBNGwD7AEPWy9FO/gFh/rSU0K2tDa3k0K5v4I5c3m7f7EUJ3Rqmm1V0uFYLYB8sZX2LACb3I47sJZX9IKHfC85roMro292WC+kPC0BrC5BsEElTD0BkzU5krETt/K5M7aTJ/kgJ/r5Z3bh17Y5n3bhUAAI7e7jdm7IkcBRYADniD2b/IE9CMnqSAJnvC8q9zawpDeHp7Oamt8AHAQE4pmTgDurt7df630SU0IXgD1gs/0HJ/WiN7O7wy+DdD7DdCZkM90jv5lkk/5l49xL88l5OMDGGChn/8IwjC3hQC+p762jG8QA/wAFbD6RP/916/f2n/v3dqgDYQw60tPCtzQ9FWO27pt3h+OAB9A6xUuDMh3ADbZs2Z3AMQPAdgAEK1aDCQ4QhKUVJJOYJDgRIAAatQEzPnwodCCAJA6kSMHYFETkCEF5TrW0IkweA+nRIyoTI0ymMqoKeNGSlvMmTRhclPzqIE5BEFRBCVqbkGDncoEAABAwGmBAg6cAigAgUIRbE+eDJRkx06qVFBQpVLBME1Kn3PmCMiWrVAAuOQMAEATMuQFAJGuvHHixNIUAY9YtozpUhkhbV64FVZGarFjZQ0WIBiKgEZloEdfwnRSQJCgDRs+o6EQ1SoFCNharSYoqYUkVGOfmJBg6WH/gw8PP7iF1Hvj3Lp2m8R4EClDXwHwIj58JFjN8800SXnxApkmt5rSIwOlQcPyZQRGGzQ4o4YUqaUFcER1INUpgQIUNqQWSHCgwYSpnhgbYCml2gbmyGYyFGjQKICOggtJEeKaucISCIWBSKKHGFuMG8SoI0Wnxgo7T5k5JiPKsvDEa8C8xQRI4wAA5lJAhCuaoUq+Rnx4YgT7WjBIkrBUMKE/eFJqILA53pIBARk2OgaADYRzhIziHoQwyOYG4/A8xxC7SacPd3KMGwE+ELEoERdY4Aya1GgGPgoouCCqqeIrAgcOVNiKq9d4lESSVjDoT6IAH2KrkEIQyGgjuoQD/yKXB5a4oi8ngoRIDYgKw06bxLzAlBAvr+QGU26okcxMo8wsEymeAJBPEFUEuQACOOPboJE6n6iPKx7tECILDA7IYI7xqHlEAGEyyKaiBcwxB5JIIBBuEUaXECGK45gbjDAtMd00ppqwk+7T6h75gEQEkk2WqAV0kqCp9qZiasb5PFGBoNVaGQGhhLDptQJTh1QpMInM/EAEAASx64JcDnC0ryhOYqk5Abw8DztCCPE2qZ1q0pabBijzLjOggELgpWUsWfddAA5oJoMKHGgTB080GMEgHW9ECJURFgIgDkiCWuADcwrJRq1hCT1uAAfsWiTlKxp2olpBIYr44uuwW/+MW50upU5TNSYTUdlkRT5xmQOqarO09phywCocJjjB5oT23HMgHzDIqxMZ4FqA0EIqGu+DAD4QxmQcQlp6iTTesESYwZODZ9icrLMasQu/vRpDTDWNrOOPSUVhqAW0IPu0NmGViioIIDChgwk4COHG/MBqoRVP9s0IrkJKhSToDyTbzZI3Dih8uLyuYIPaYo+zrUJvL9cGQ5m4vRjDrTUV9WtlzfmchgXU4GYKlJlqphkRDnAZBwzS96D1EDSwZWbXnpgAAAkqUKC3jHTv+aiHhNmLBQCAhDiOotax5pABlFQKa1bb1OW6dSEMEWJrNxEAUIaCAgt+zhxqoMYbAND/rkoQAAAVyEAzXOaA/lgiDRgwhts08AQSzEwFHQBAMypwu050IjxhO0oDhiUMJ1yBYE1QBJQU4Ic5MCIDS1wLNaLzJYtpLYpW2xB2SKGl6pFCXGP6XCc+1z1lXEFWFEDDBi7gAHZRwAECWAaGuPGGFp6gfTLswAHqZw644A1dPxtP/5wggkgkTRxQ0kvDqMUIwDgxJ596HsW2drWswcQxmZqgGkKkvQJ9rjIvycAHoWK2AjxFjQ4B1zIw4IEenEADqzwBDW2YO7j0DAG9MUr/BJSNChCgLkUsDgkRiJKZuDGCn2IgdZ6XlOzQJHPVq05kFqBDy2gSjAKIUYvmorIr/3xwlNSQoBcIMYAWckCVKjiBMeyYgGR1QgEBUBZc4EKktyiAAIMAyZMeEAc/ZAAwE5pcFK9znm5qo4qNgWC2mKkYanARBV7UjAgI4ICqnE4EAIyPA5zAza1ZAgOsk+MJJsAQCSRATG9hp6E60bMEPKQQCgDABUICBCjFIRvCeIRMBmO1nWDKJpk65k6mmC1KGhNEIusiChZQUwWsDQ2jCWVT4kOAlVByGQPY6AQ8MQH+DEACfkiWO+FiqAAgoBAqBUAM7AJTACwhAxNazqQspS1NaeqYk7Ma5oL6SDWMizKahIQP58Cih0IFjU6lAAGigFHqEAIeVGVhryDEAq4Gjf+kePSqH3BZAHqC5AZLS2tKWJIcAaykpjFZhkQc0kaLLYMQqKUYIw8qV46JaKEoCJxa5hI+CXjQZQTwgwDAhankAC8NZ3mIE5BFqGWxExIygEQAEuAHJtlFHHgpTqQekhJBCSYmApAADnzw3Tq+ISLLYG3FMrdMZnLjEXMg6lDM8QEFxOcClWiXCB9a2ArMgRrE5AY8/AOPNrZRAJF4QCf4Vqhl9YwGeYuvk2JAhrReQQIsmNJtxjOeKUjAByUIRIe/MMMDpIG8bqScNsyLXqH+JIOgS+oFUPNJqbSnsAowB7BCRY3FSuAKAlitADLwUAIYIAGFgETuEswRMQBAFU7/ugCE35Xb5QHrDGcYjx8I0IIOexgKT/ABbdhIsWwhBosT1CIeZ+veAHzQPUyRwLp2G4nANYC8EZERAK6AHR/DxwEGUMCQi0yoJHGEAMJpwiLeJEL6vYENbFhrYJqDGxHggMNaRgSOVoCDA7CxYhJ83qZRzLWOadK9nfAke1I2AG0S4Bjs7B6YluEEFvlhzk5oCgEOMGTL/FkB5DjGA/ZA6BhUgs0sgEcaJLAEYYhqPI/oSRRMcIIRwMAFXXCBLd7XgizgYAkArpimzGtXZmrjEebwIgbDE4DAps50aVR1AMx0Bi2wJAq+Im9y1qWyBBjFO9lIQACOYYBBE5oMuVgC/5Dg0eYr+IEcCvgANUoL6w6EIAU84EEKGHDxmbUAG15eBqg2Dea7cuMD5f4cAuT5UPec7r4EWGep4u1bajxqGaB9wwAGIAJCzVJo/T5GJQgNEggDSQADsOMHCVABCQkg0isowRcQ0YUuvC+GI3hfKzD9BtWKmVsZqp5Ax63J8BigPZUIpQjHl+obKgsBcn5EqDw7B5RY4mnGMvKfj0GAj/w8F5FIw/KaYgIHmOAAJ4FHMygwAxvcIxCl+MIXSlACSYyABDh7gr4k4Fti0uTEE8wUN9irQ6PI02xtaioBcIDfsIZVzg6XFDzako2TFKstRFbAAwhg1p8D/RgVsI0wmP9yAJu/ISVpwIEdssz4L8zg8ZEnQQxbsALawKO1FNtp1zn9iMmAntRqhgoE2gNR/N6P1btoY+udICBiHdBYta+EKpacewEWZ61OaEYaBpA4S0hEAhsoQQScjggLKIEZGEBdybjZwTQRgyBwmyC50oZlCJGgMIcHoK/TQRk2AYAE8LOekbMbSw5hUD8E4rcHIIMmgT/hgJJsWIY3oLCT8A8ck4AJWAEVUAEGsAWwkBuvcA2vaIFGAADbWAaaaCNtOS+eep6E8hkDiI+z8T77ig8AEAE/KJSLaADz6rEg+UB+AzjcM0FFIQMFsAQWuALG8S/lODgTcJsQkDgGyLiuUD7/r/CKLPgRAEMtLeE6E1umm/iJcqkAT1rCwDOBqgCAKCQU1VODTFkteLiCCpgLB3ApLsw94pCwNECOIPEvY+sADshEcdKA17CDAVS+ErADSXiCOppDkBtCUOGGRxqVvfEDETiZ35MADHAZQTSWfruIR+gmxRAGiCqAR+RCaHGQR0mgK1SRjcrEE0iBebEDAZyBN9wT+QGANPgyi8kQbakYrdEUcemdBUgAEXjFNmszwrKzJfKDzPCtxHDADEiaX3xEkkAceACMIIEQS7gCDEDDFFilJ+gKr3i8r4g8DvATbqvG81JASgITMVmAOZgCFoiCK2ARpgBECrCzp8kGkSmE/6xzwDRwlnbkQihZGJSoRDAEAO8KAR6QuHxkAChgxlD8ilRABQ4AgAGQPtc6RBLLRnEDlpoShihQjqWQyVmcSDEUBoskigALlc7oSC6MAQA4hkepxHlMA5L0hBPoKDmSGWZkxq5IhVb4qAEQgOchQhOzmC8xMWNSg2ULI/pJiabQrcK6gv+wIAToHWEpEgAoA6WEvxiIluOASmFgAwCoqh7QxBC4l5b0ilQYAeibyY47sQaqq/PgKfU6EWWoMx1zCg/CAQgYIQm5pMwYj2ThwxLMS0JbBEKqAKSDSkuwuQPAAC6ogU0kgZVsyVSwAAbwSh5DRdjCjpkwKG9SNmoAAP8TSBkJcIoV0kwCWIJIgQdhyJ7wCIrmOgAFIU3h2AMjqoCZui7gUZwB6ABPECeLGwFUcEk7aIFWwgBLUC1UfMy6EijJ/EABYBHgowoCuAITOD0CaAhiyYAFkCWi0IgkpE5IJI7dWyv/Ah4IoSq3qcqrHIEbnCEMSAOHC7NqrCthsolHCq0oEJ9IgI+UgQ8IIAAH8cnJCJnvQAFyIACDEdCfW4S9FAPHsQQ2WJzVFMxUkhkoGAEI/UrXkqvUstAI2ql0FACW+j7wEyGICtH6ExKMmKWg6I5OMAUA4EgWbVEyOIZsYM6n8QsVAqcJ6AE17IIQ8Epus75Gmpzn+ZKafIT/KV0EN3VTNWqPqrA1CcCuEpWly1ioKa1S+IMpcniUDGCE5QwSLxUnDvCEDvCT3OS8IfypTbMYuNIGNaALR3CEcwACIECDAqCvObWz5PCJc7kgTSIHn+PTnxOHPcgFcoC9DJC7H+wgFvKA9JnJRaWkdCQxRw3L8wpONKhUR8BUQ+u+EPVUNhIXoICE7ugOFDAFFTVVQkNVVb2C4xicpJOI/1KO/RozzqvQfoog89qaZaCLQRiEMvjVTI2KinrChwkR7/gOGUBRqnDWLnyABIC9FRwfpHuIjtOUCEKxsRQmbiVIg3oeA0CDQRAHhP3VRYCVdL08h8O+vUpW8Eiz95PX/0Ijg05oNHigilC6PDbaFE6z1VSknCj6V8zZPMVQAAoYBEcQh0oFAtCAldIYIQALlVArEInVUyqV171EOvJahnWxm7MYMTdaz2usQ2zEHGGiGJCNhJVtWUcog0FQhfmwilDKNG5YBlD1GXfVWYu92AfIUtXCjtJKifKqQqD614/7OLryVlCRznOI2pZl2UF4k9KwtQyYs/EolaCQgQUzBQPYWVOFFixVjjZaWrb1Vre9SVwF0kfdGKeNW0v1VUd4lVdBo94ir7QwUb9dqGPwRYtlSgWIAglxOPLiVooZ25qYIjfKmmpcW0/rtptQgAs4B9ud3Eq1XDhRgNKty3zrGf8ZCF5By7vBhbAKsC7TBVLlzdoRO9yfPdzE/bZsUQbatV3JddnKjQG0wVs2AppCSIBZmgzhTdHR5FPTfAAF2LEJ8a2jXNoAK63DNd3nVVxHjV1uMIAYuN1KxV4XcxP6ekKVaq4RQZJASxRnJVwFyM7l2K/mzVoHJtuflZqbgt6kbS1ItRgDqF3bRdiEtdz5kgoSEgbl4tpZWi5SowCeJYl6FRSWcF7mfd7DzdrBgAjBcKK6al9vJYTgvIAkuN2EdQTUcJNgQyMFWCKL8E/olIGOAF1ThZJVVQvGgYjmfd/5bSPTvZaIeI7rqFDV3bTg3IMe9mGENTQ0uIAPbspjIZT/3igKEyYHBxiC4n2AP0WglMBWKnY4sr1hh+MglpCJzVDetVUvvLNe/XUEFyWNIRYhac0AIkPWdtWIjSAAJojjOUYJYMJj+J2Jn4UJGP4sluAg6YlhsjUxAXCAHrZUMSbjV4kBViYA42BkZPVbGsgIjSCHB3AEU93LByChQdVXLF6OJZLiOZu5h5CIa1EGUQ4wbPSDAojbhN1gcShjN7kAVg62J3SCbFiu4N3m4DWFB1gEMODTvXTKYZSUYmajazmAhwJgK47gBeZkosXGKVqGCoCAc+DgKqDcPXAxM2bl/z0AaU0AR74Mbe4EX7uBKkUrp4SUMWSr8SqtNHCZDRDK+DmcuYepEjXQ2vGaPt6kizJA2CpQBEXwVTNGg0VAA1ihLxE6ABHot95I1hwyBVMogBeo0oFD33waQ7OVX4eTCOLbgBUQBByoDWx16BYurRZm2tUKTkH46CqoAnGA6ty9gDc1YwoUoUhAzYxIksv4W0m2aQBA35kKSZ9kq3N+gzPEBmwYarNF6oeuEpsiWqWduXni4KiGapc140UAVmomu6lQmBs6URqI0gdYUQG96SOCPSCSkGGJGgqBtTOcANpgAanxCQHwIR8alubgIPISnZ5+BD+AgDJgAiZQBCZ4atQ2NEHYX1Uo4xiICqYwAHfKoZi2vcxqx4AAACH5BAkIAFYALBYACgBzALgAAAj/AK0IHEiwoMGDCBMqNAiuVi1wCyNKnEixosWETZoEEsWxlBFRgTKCy3ixpMmTJTNuNPIJyRgkMD9yDBSolKiMTVih3MnzJLiNoli2zJGDT44xLV2yHJMjppFSgXT2nEoVoQ2gn5Lm2FGjxg4+Xr/y2SGWh9kj15pUXVtVI0eXTMeADcKFC127d4PU6MGBR18GEdgK3tkk6FCiW2tw8cB4sQe6jfX25cthhI3BmC1q/EQUCeK5i40ZY8z4bt0JHDj0WM3hWebXEd16RtxyB2QPGEYznsB7wu6uE7r2gAK7+MGfb4kazaGY8WjRzzt04O1hNJcOeHvYMs5d4EiOQ7nW/wjiPHd10aSnO9f9WC+DQN2NF146ZgxX8ufze5jOuwN03MZgp5d2l8WXGXKicIaYbY5VR9puHZz3n2jT7RWCLwa+hlVRX3VVA2no/TddhNKhtx8XqIVggVQZDhaIgrZ50FtoDq633wTSSZeejDVUxmKLbLFiy1gfppfjfiYiuV+OR0qHGgepQASkYDaEMJ5jujGJnXQontZbDRN4EqaYHJygwjVTDvbMfc45x2RvwfVY5glmavBEC1C0ooIKT6RSAghpsmWDBs2tl6WTYaa2ggoajGALFKlYUEoEzDxj6TMgMMPMj4Hy9AwHYEYIXYBvTrDCCo1CasE110QQwSQgxP8qq6ycdorSDCeMJyGpJE7nSQgpMOAnq9f4QqmsNtgwKwgF2soTCFaGxuubPYagwqMlXFNCtscuu2ytzl4UAQM9cEGhCVpOxwGqDDyaip8l+PIMM95+G+5Oz7hQ7qjT8saBtQx04W62z3Rbb6zg3kuRBTDsEBq6AS7pL8AC2xIpq75oerDGCp/EcLnnpduBJyeEoAED7Vq8asEF03twsx1bVIoSzSWJqKIanEyCwBdfw7LLy9Ibc0mlHKHYf+vx5sm6OQfcBRSr+iK11JoCbWmlQ18EAgNgemACe4zx968KTpOgsgXvRpr2vMzMIAkULWRt0SSE4uhfmwGGecLJDIz/QILZUEAxAqM5h9B3CTPMUEILrbTimtwT+QLqYne3OTIHKZzcxeYodz5C4IL7DUWxJUiCOMyQJ8TKNaDazZ6TNZSM8s5dzA61BZQ+I0kqtsBgrLaSzJBw6gSxkkrr143Wq95kd/G37e9aIIkkLUhyDdqtlt5KCcMTP1AqYvZ3Wl2+/svA33+DnsoId1ZfwjMWQG3sM4h3770VUIRPcmrAKY35+WZTGasssC1LZcsCvYPBNTRmP+894wSeCNbmjnCEEHDAE0sz3OZs8ahVFUte9HrGDOCHQAUeq4HeGwEDYMAAJcDABTDoQgpScwKUdcEFHOydBSxgrIxVylJo06Gx/5ghpfspxCMuNMIYXOACBqQgWE7b3AZtQcBiUcpVEYgfCWCgwIyh0Hs28AUMjGAEJUjxjGisGAyihsUI+AIKf+Niq5hhxIiwIgJkfOEG0ZfGDUJhja0qWBZFBwWL+ayOC2EFCDzCRVsIjHZOU8IRpIhDIbrqjU6zIRQeh0jVibGRfewjE3tnxSwW0pEwvAagOqm6CHARhn/jXBTRaAsY8tBVzIjAB6eGKVYqBASp4CIonWjDNDJRjsa6pNSw2EtfJsQXN2SiC2r3xIBRkIKbO2YXp4YxZq7SmQcJhA2LyQC+GdOWA0TbDnf5DNSBkyDP6FwmOzdBJZjxho9iFRz/9v+owEXqnQqJgC2iKM/OTbILSsjhqmCQQx2uDKAKeUYsa1dQBhx0mi6Qny+I9cFjQTQhNtgnRXPWtCiOMhUb3WgpKfVR1aUCkiiDIsqwiU9IYWxqEWhmSw1ivInG9IkyjWI+rVg1Zrhzp1awwUt3Js8nAqugm9Ooq5CF1IKwwgbXoN0RnAZUYAG1cyRQFVG/WVUrKBIEFiCBNSnqRKA6tZoocxcBn/FFVipLUzCAaUFJGoK+AksDMoUChsoqEGWxogS802s5nQhYBvg1NSZrVyo4WVZWvEAIWIWjDSc5TpRp4AhO7asGYDBZZhFWIDNYwQno9wQVVjRgr5XsNRJngxn/MEEKUjiEPA5xCIiyIrU+6EALZvCE2MIWtlHl4UYVZwMp6OAFueWtHvSgW2eyQhIrkI4JfDADIZCtorU7Y1hXpUsCSgIEL3AEE8TBBCa84AVgoIIUWMmKQwwhuxjAAABwMIT7Go6em6OdH0e3Q/PaYAiDGAQaNkCBBg9iA/SgB3vvBw5WjEIIwc3vAQ5gAnFQwRWMGqfz0Ie+R62xwCU4sCA2sGJBoIECK6aACRyAgyLoALNZq4U8pDCDVvjABADYsAQOAIBBUGEIrRgBW/dYYg7e7nopZsIGWCyIFg9CEBDQb37R5QMduKJjO55BC1bw4yAfQAJoBsAG5MsEISi5/5ybCFgs+RlMD0LhT0NY8ZRZrIpBiIMeAAi0oAFgAhxQQAejsJU8autjHJhAvxIYgKQHIAEAFGAIh5ACntRqTvSJLlIeHEGUVVGEBW8ADarQwZEJEOgHuPoYDwAABrbbCiFMSR4WFsIKcNABDGz4zGiW9JAdII7cDsFv8hzx3z4HagSqYAZSUIQqTj1lQfSZCYMQ9DEM8IBjwDrQs66xrQ10iFFgF0f6BUAz1t2MSF9hAFcgsiqokGkhtECtNmyyqhjGgGdLoQpAYHG1BTEIJqAh0N72tqu73W1wd0AH3bmqJHzcASAH+gDN2HAzRHCFd19BBBKAAHRZQQUhiNR5kP9K27uuYYsQDFcK4qA2lQlu8FYvHNYMjzUAYk0AehSHFTwes6P1e2Z2G33jumABC0RAgGI7Qw8vkMQI/Ga2tO0bBhoIQfBgLogGM3jKBb8Awru97VcvfOGE9jlmwtwKMvda0EVftwTYzfGOi0AEan6BdN2Gsk+rHAqODQG09QCERTTY6zQ/+M69bYDGn/3sgcYBEwZjg1G4wu2PDjIveMHuzXe+An6IwhWccIVmFIAJYPjB01/QAhWSIHpW30QIngBtKajixRT4Os0pkIudu9oAsHY85APd4SBJQdcZ1jbnOb/uzVfA8yJIQwZE3/Eiv0APznAGGIbgZlCz6l0j6Kv/EEYhBcIzGPcw9jMFfN/txrv/8TwnwAaOehIbvMAVwQXyhjfv7WZUoBm84G3L53wVEAXTt3QAIAiop3o/oAdu8y7zkwqCowKt8AKjMF0Bh365JwjiIHY7ZwCm8Hvw52qCVgBUMBVAN2boFmTNIIAJt3kBeAwKUAGNN4MVIAIZwAKll4Di8A96wAlAqAejkC0Zcw0T+ATjl1t6sAj0UASHl3uqIA4QYHNmx20jGGsOMHk8YQMTl2EYMHfrVgFicAwwyH/HIAYz2HicVwihlwEfRwB+9g+pB4Sc8AM8NkKp0AJPoAIv9wOcsISqAAQXMIgQsGCDUADs535ld3ZWyHOC/8ATPRZcbweG/lcBlqgAMJhwCpAAvOB+vLCJoaeDRSYOigAGP0iHDTgKbvMEdzIDF+iHPwAEjiAOi7AIqtBn4jAIlQAAVuh4CjeC37YBKHF/bkd0ErAEGycCzaAAM0iACRcACUCD3CaDCZAAfjB9CcgEcjiHdPiHPTZ1kkB+fviHQJAEt+hn7kUFOsBqjHiGi/h4jWdpJyEORTB0QSZpImCJfnB3/seMzJhwYgAJftCJjXeGoOgH+wgB7gUG3NiNesB9Fjhd4/gDRFAFixADEFAAEAABF4CIi1iQD9CLIqhwAJCFJoEGrHYMzbAEEnAFaXAFoHeDIuAHCSAGaOiPm/+4BgPpeKaAhgGwBmsQBUzXg3pgit1Ih2BwA0rJkNOlBw0IBkmAkRnpAAjnbWJQkI1IdmS3bccQaINQEuJAlQBwjNEIen4Qk/l4ibwQAAmXAD+5k79nAGJQjaEXb2hwA6k3jnX4lEp5A0QwDo6gCoKwCBdAmJXAge01COzYflfIbcCncNumZiWhCqyGcf1oiTKpj/nIjDapAGIQAAtQCNLYeD35mYVwgFdAAKjnlKxZkY4ABEBQBURABLQYA6wmaMSmCLrJBFT5e6YQgvAHgu44ht9GARdRDDEAAGRYiZhYAWWJkAgZjZwZAGhYjdJoCu5nAKAYBVHAAgewAdvol+P/kAR7EAPmuQdJMA5VMIviUGUrhgazWAXioAqt1ojYuXDZyZViEJKxZpwWIQ5koJzJaInLmAAziZBBKZTOWY0KIJfUOYbZqZ1syJ2iuAGkSAR+WQWKUAUcKptLyZDiEKI6wIHiwKH0uZUiGJIRCpAkKYwWAQQBegxLYHeX+JNrkAEZ4AROgKMI6geYWJDbJgbY+ZummQDTt4MQIAiOoAizqZRN6qTrqQod6QAOcAGK0JfiQAAEoKIgqKIMV3Ys+m1oYBFSkJwPUAFLIJT+lwAKEAB+cKMCAA9yOgVTIACMwAgV0KCNB6Gk+ZsB8KcJIJrPBwAEUAkFYJ4xcKgxUJ6I/1oJWvqoVnqlN+AIi+l+RGoKCZepONmV/kkRRLCLx3B3HyeU1QiUNwoPUyCn8MAIAiAAcLCTQ4qVv9mTbdqmAXCfhXmLt5gEsOkIvqqhAOerv3oD/4ChlOpqsxqrmAprzCqDtcqpFsEEMcpxShcFzgmUjDAF76CqTrCtrQoHU0CDQ/qbcjmrcumT1MltQICXpohbuDVd5ScFN7Ch4uAIfsaQDAkEvbdw5Fp2wEd2N5mnAQgAEPCiBKCS1Fqt2FoNArCtqQoPrQqxcAAH1nqV42oKtDCr1cmgtPAAlRCfG8qh4xCir0mejvqoG+CX+bqlyKqxIIipBemPbMqmBFsRZf8qoHWnCzv6phnACBkgp60qAHX6rdwwBT76srOasbPaptXIoAZQqAVQCVI7tVIbtWTwqFq6AUmJW6qQCy1LpDYZtsdAq/6IhtxWsBQBoCrZkjratjjKqgLws3QqtKnqqhOrCyLQoOYqpMkqBrQAjWxqABTgqyVaorpJBFdaBSMbouKgA7cVryeqostqlefak8cQAHnqmWIAABdQEYugbhIgffCQo9uKqqhap6oqtBI7sXAAD3l7sdj5shn7t9YpuPDlrmAgBfgKBq6pAzpwZcXGW7bntVzKovsZtrSwiZ7ZoA/QuRQRAw+wBGlQunH7Du9Ap3MKB0ErsUELB9wAB07/4JbJaq4YSwt/C7gKAABoMAjCWo5JUIt7cLKDRgG4dQhUoJghOaQ3GbZ8m7G1GgC0AGudGhGOQAYymgZOkLrwsK3v8LOuGqdxmrquyg3cAA9+cKvJqrRJC6h/+rRUWwmIugdRS6UOILUOsGYvQAUvgL9Iawply7+08Jl/CglsKZkTUQxeWwFpoLPwkMByysDfqr0LLMGsCwcZgMF+Or5KzG0X4AgcqptMiqHyybghemUj+gI117JC2pn8G7Y0DAmBa8MSoa/HkAHvoAu6gL2rG8QT+8DfarfKMLEJoLTnq8FL/AAFUIq7i6+K0LgJJpgUAAGBHKLQ+wB8W5pdvMUB/1AIhVANeFoBB4C2EQEGF5ALx7DDOiqnTgDBbczGrPvAcKAMFKwMa0DHSly+dty87Ft4tXiR8gt3EmACBUABHjm25qu0NonKAAzGN7oGlngADjARQJCc0nvG1ku92pvMRRzKcVzEoqwMjJAASWvHqHzLv1mohmqoGGnCDkAAJEwAwIwDEMCyyJuxfouG/vunCNDIjFAIAaAAx9B0EnEBZHCm3dqt1quqdbrMytDPcRzEcSzKr6oA1azBt/y3Gdu8IQrFSknFjDsItFwJhbilZ7jB5uu35vuni1wN8ODLzPi0qiARMWDJOrzA91y6EAvHz/zJy8wNhMAN0Wy+KHDQ5v9rCjOdrAYQA3rMkA1dr/YqmGhQAASgkSgJfAqQ0e+cvEeNsX8aBoUQt4WgvF35lQtBDwF6pmuA0kOsqqzbz6PczHY7sS79vYWQsTNNC2ct0whgzSG4B61MmEJ9m3DHcRItCATgoH+a0RltqwEACYXAqmvglv9oAGO6EEnQe2tZAWvww/qc0l3tz8vMzKLMDdB8qwGQ1mhN00rrwdocA1NbAAXgAFHLas1QCYV5sDZ5y/17voD61w1QCG4JoTW7EJ/7ALyQAKeqqkDryZLdzI+tDKRACmSttCiAsb85u2z9AItwoVLs0K+JBpWAxxewAXedyxeN3H/KtGtwpwJAk/D/vG2VEBHQeww6nAFZrdtB68n+7Nv9TAr+zA3awA1HrNkHfdO/+QB7sNP/kIuDMG1oMIhCbWkTfYYIHcO0QMN9TcOBut2tGtj+aADhrRAAqpyK3ba7HdYT28zhINm//d7cIABuedO3fKuZnawEUJhwLddBpm53dwAFcAEoSeD7uXDM6JbQeJpvnAEMepWVAHEJUcC2DXo/S8SR3dXM3OFerQ2kwAiQcMuYzdb3XbWgbaigPeVU+XwSHeMD6wAUUASN4ABAxgugB5TfOrqcuW0O8IgJ0bXkjcDdytVFzt6QneG9TcGEAAfubNNnfdZKXAlJUAX/oAjsScVXVgBERtTK/zmwOOADdtJ2Xt7N6pbAAuAEPuqZ20YAan4QUiB2B5AGImDhqyvnHR7Zz+zVFBzTmY3ZxT2rcEgEWNzf7/liGUkAvODihaichLros9cCQiAE02Nvp1JmxxgHYhAHsOYAipAQL7CL7bYEn46qAB3Q6z3tzUzt760N4fABCLDWKNDtMu3txn3iHSnXvzaTGZCnDjDRBAABRbACLVA98LIt8u42Y1ZmmSrPCDHhS4CmCOytRm7t1N7b004K2qANU1AIa43KM93tDG8K2Ay1VQ7aW8qg646SDtDuvj49u5M2BUQ/iNUKRQBkCQcAIY0QjuC10quj1IvhzkzZAZ/h603BpP/gBdieAduO1mmNAGcdAAZwASI66PwN3Qrgy+m+fgSAA4u+An6l9NbSWvC+LYyDA8pJhg8gyQbxuaFKuhDr2DAP89P+1V9PwRSsDV5AClPgljh/82tNCzTwzpj+30/YkbvICxkQt0UfaJU2a75iJqzYeiOAJ++yhz6AAVYZzy5qEMScoz6sz2G93sEd8y4P8EmuDXAQ2DiPAjqP+d2OADx/1wYAd4FWAYzAuk6w7utX64S26D6w66Yj74i1O4Nj72MIAAM8EC9Qz26ewD5Mt14f8PAt+e0tygX/4WHA8GhtCjofAAiwAGHgwaC9kYKMBuO8Bq36DqZPfDjQCKfSOCP/oPGIM0LbQkB5UgQp2ZV5bBBAXtILjMyk7tXuTQja8NLWHvnCH//cUA3cXtyXj9YIABAPLiwaVLCgIEEXHIiAJ+CdgwsbHDiY4ONECBUYVbR60gKKpFSpSpSwYAHKkxU4ABw7BgAABSsxZQLJdcxPhndT4O0UIADOT6BBlZHiRkqbNqLKlHFT2lQpt6NRG4RBURUFAhoItGpN8IBAAbAFCAA4IGKNTzjwIG4o4MMHhxNxT8A9sWKFCrwdoYRsgbIDgCUVRDTDIVPmIgC80kTR9c4xz6A9fTYlpK3y0adMnQ4tqs3LUTjVaFklXRVBtShRmh0AQMABAAN+gj6EQMFB/4cJEzzttqjiiRBJIIODTCVphIoJJgY4ycDIiQQIhq3EAJyGhZOdO6cARSugadHPUQk5JeW0KFTPXryQEkDV6mirC6q5hgABjSAdCQkw9EmbgssOcIPrLo8kGWmGEmZAsARJoEDugOUyEMEJJwCQrpIHlkjDDyfeya6hnoRSipSkOtOMmxOXYuoy9bwgpD0ERoMvvgYIiAiNCy6AoIBKAIiiobQIqA0ADASsawWMnnjiI5EORLAFDSbAQII0KlBAwwFgkomMYzTMQCd4PEQLqM1QRJEoQlBU8cyl0KysxTQZibE00xpYozUAFBCsue1+UmYKIf8rMjdPOCj0Irw4av+hheH6WkHKA5ZYI4EKJJDAAcO4lIBCJ6YQYApQx5yMvKKIMtNMFUlE8agW1dMmnAWqktEqBBb4wAACKnGAgLEU8K4peL6CQIIBMMDAA908ueiJEfaCYoRmPXpCBQ7+4qWCNTJYI41mHBAnJnHIeCANXTqEB1RPQx1VMxUvU/U8VFVktVVtuGkAATqtMqCS+xASBI0CFPDzTyEhuKKhYpGFKwRoQyLpmpEkeaIVH0xYyY+b1hiMgEFiUkRcER6TzKcQySRvRPHSRFHlUlulV4AF8EWBBhpmpmGBrnh1aecr4GhqCgfqiwKOnuAxFrdCQ2BgryYZREmlYyooJAOqKwD/AA3DYsiFF+yI5s7ngZsylZvLooK3XjRJ+czlz5SRc0ZaF2iAET9EiOIdnzcTwIQdWQgnnMvC0aVYY5DtQWlbPmpBhRX+ioOXBHBa4gAtD8tlXCCJHtPkp0hUOzzx4O0sKra94Ka9AGyWOQxTvroADQoKACCDzZwo+AoB3oQTjsExMGYCDpSe9lGL49CzECeW4Fi6JMRdAruSB1aTMxJZ/KyysckmhRDuSXdZGzjkpJOG1gugAI0NAAbgV6WcCLoAXeAgpFVC/oan2GOBDyGEE3z46xgxiEEBCdDYBaRjhSo4D3pAIZvZViWe9LiKe4Qwyqm8V7rThSErWanKAjy4/4YrNINneVPKO4RUACfIr1XcgEM4BEA4LtQALoaS0krEQAsF6OlqBxwHAcbVp6e0yXMoCo/nvoc2pjywdPSCwwditpWbIcAUZOFFFNalpgycsGfhSI82GkII3vnOAzLkAAcmYIwDHCMOtAiAAo7Bi0oc0AqOqAlaylQmy5gpgq4iW1FUBLolto0R1diKVlBgikpcgAIXEIuv1qQM20GgEk4IBzdcBYd3CKBe8DhA/mowAS5gAEJLkAEkEhAAMRigcoZZxAMqsLnNlGl7Z/oeUZCyoqh4Zo8rhMMTaRUGAwCgEhBgJAG2o4y86eJ98ePiZzCZyb+9g3DGwsAAyrWGAP8EoAIJUAAB5PixY5xlVCoqk5nSRKIW3dJM5dHj/OYHugnWC2Yyu8oCwlCNnkzhCnY7pppE8D6foOdV95OACHTREyfoQhfwAEoGTkmLAApEjqo4RhpABDY/gU0p3CMbBT33rjad7Sjzy6MA7ueEnvwNDoWgZ60CwKux+MFTAWVKOK4QNAe842/hqZ8uWAOANPhEpS4UwBoKUYg2HoMAWJPOEBzQjIWC6ifRM09RKGjOlZmKZegJj+AkAAAThBUDABhAOJooMwSEIQwB4Ne/ZBcFRjTAZ9wIxz8hQAB4AA50LowCL3jRDAHQtX4uVMADDBtAAxRAjoIAALEkIKY+mWz/rqcS26lONbZ6haNCHcABDnCTG+W0kBFhQGutFCBMsABABH4oRBgaoBS7OoCherWMWRmxhgo0Aw7iEYAIAOCASvhQqUw44As0RSwWiImBLJwMqkIjt++wbClKAZsuTAC8MuYmNxjQRSXDR9q0hkE+U3hHBoDEiASIF5/duqsAAKc7s+qEalBxUTjg8dVdrQQABjwgYppBJXMxFA6o6oneGnDgzDTFT+yCgwRM8JYyZveMAxgwUkKD1gDsrBmrFQB6xbuANRwAInjVa4voSrS7ped08LgCa9L42yHI8T8HeOyHaMrcvAEFwWdil1yni8zePriMhcquMTCQ18rUj5BY/0lrMMmy4fK2Vq1hAEABLkAA9+ruMyx8h91y58IwpcFSvGgNPeRohQskxqLv6FALOwrkWD5Ful5bSpqIZl3sRrjIoszrUbhByKsg4AO8MEAzLOpeeHxgKwF4QCUoQIBM0jedgrMbdsJEIV0s4QFBM/OZrcClNFjaU5VUU0ZJqMc4owoeFcIBkYOngRSY0RPJoXCS4QBee1a5APlNzRpkRotGt9esuhupC3+y6oQO4LeK9bRMYuBK8zYkXkEh4Yi49zd2cQaZ7wAADt5yEaUxgH9H6sAB8spFZRDSgyD+Ka8OEIU1UAUBL00kXgVAoXCoJ03zO/Gq03AAAmxAB802jP8jQN0173IHltau8/RIBORufTsEGlABxfdnlxMk5wDvIJvbqiGfahSCEST7lAA+AF5G1zuFA3isZ7qnWZO2GACLILgcERM1Sqr0U5njnJlIraZSp6HbFrmIBigOLZTYxYwdkMDf/vTxXI+FLCLIQPhiFaOvPDqFRONikgkhgUWCFVM1PzOGxJCB7oBoc2GbK1HQBD6iARwHcVmYb2zRF4xcHAcHCKwyOjxlXME0MYxgRMxoQQvXQfpvxObeAVxB9po37wFrYGjRSEbtvF1WZfUiGjzA2gFlLYzieA+Bkp4Qgg4MIHfIbEA1qtGAnngoA6H+u1a6aWUCoL2S7zxKONL/sErIn/kCDyiEZLJj0hCNSSmk5t7yvSaAAwTI1fszOv9UMIIWtGIFobVzXOUmGCQ7XQDVWCuucK+A4tO2fvBoBvCDf0CDH+NcPLn82s1TL2QODA5XAADoyziXFEiB/cEI7FMBHwCA7qoMv/u4BvCDCkAplfK7BsCZlzIfAhCgBWih+hm/BOAFb3q/ZquEcKIanZgpzAsbcqIzpdCF/iMjPQuBFDA6JVkBH+AuvWKhQZKbL9MlFiK/D6iAxLshBDiwA/s4VAKADQBBT3u2bVoDMcmc7sixFJSMptCFIiEjuoNBcYtBvJgAANApl2siD/qrFtIrMPq4MLi9RwugWlk3/3tCAAU4gOhQQjkCAgAQA2wpmp1oIc75iT6aqp44Mf4TkAibC6UJQAaYlr1LwLYZv2o4gDT4m5RioalAgATIOgcQgwDQCjckLTdiNjo8oGcLgKlhKJ4wK8kaMBQBErOqJGXwqc/Ss4WJQShYnBpMIXc6HfI7BvfiBg/Jm0pUwwsMgA8Tr0JYgGwSg+UJRVF8AFpYA0u7KKLJP6AwqzEJh6VIi05CFiLrgTLSwhGYlhpkxPWAgwkUmDRps6kyvCAMAA9yPddbADY6LVVgRjmKARH0Aw8RMOoCimPqvDI0tXfIH0/oAW+MsImbmAchx/KYwDDQAu6ZLRcaLVMonyuLA/9i/DgnKqQAMAD+ssf+IgMDqADdUzBqQz6uUwZXxKToIxRZ3B9oQT3VayZnaj1aKAS5+gnvGiSswz1NbEPxwoqqaCMHGDiQPCBxWIStCSps7DwBA0Sh4kOgkIAAwQ2DNMgy0oARiJIDYKYICocpuEQfegADuBZGgIMpYIQ2EhYCoAVIaENDopmqmKKOOUqbq4ni00PIQL5rnCpOGqvCmYAawEql0QBPqKY++0oBSIBKwMfgGotXSo0KAELcAyAZqJVCkoHDo4XEsks5MrjLqYAPyQ60jB5qy4ADuAIrDMwakKH9OUzVa6Au+hPGvIAY4JHgMoDbopvbu7IbekutoJn/0ZABFGAjOfRM6SiGGIgBAjCAH+EJ6Fw7r5kCERABsxoAYzAGLuACQumAagosFkkPUoADP0gksKiE4AKAQliDNfiAS7RABdjEQtIKWqiZGDmAj0ROKwCCC+gR0URLtau/e0soCUiuDKCr08EfaqomSnK5XQIfEbCy88xNP2CEY+ymessmKNqKQAsAWuCFOdRPKlgE6jiAFDoxVJyMnlA2lxgLvOkezkMRbEsTVpmXdIKDCjBP3IRMwguD90wzMYAESPCg+QzOAOCFotRPK3gBrTkGCXCzPKofVcSkIumA2zC3vOqjErOM8OhSG1UPZShPRkJP9DSABCC8BvhRAiDG/ycKTihiI6upR/1cBDJorIOqJJdxp3AYABPogD5FzF7EJS/tIlf5HmWIAh0lUwLwlQ7zA9d5gPgEryJNAFM6LUFQUuo4huWYrRqlF2mCkGpyM3PSJQcl1UJlIkRlJNwMLlNgBFBhBGGCgAdIL9KimZrJCq2ABIgyAKbyTFXQlDTYxwHTMvqxs90bVdIpm+uxnq9khETaEUU1hdezE9cBgARoLaG01awIA11NJVC0SzqqqA6RjBndJQmyjJFyEetxEfTonkL9yit41lVtzmogvPmwMmtFquHUzJkJNBkIIAIgLs9USl7YFPprLmLNJd2B0XclNtL5Um6IUB1ZVQxZg/9B+oAqgwAAwBjYUIDDkwHipAUZoAHNFIMHuFTPfDZDWyCdHFWSotF9yyVSHamRCs+16VJu8AMrs83lxMdZJaAfBYBtcglekM+q0NZd7VWQTKAHMKg9HLAFW74+SrI+qtkv5SnQ0aV0Mp0EMB+eXU4MGSD3FJY7TICWaIZTggSQtVWQFQNTCFGQFAcCcNKFUjs+xDaz6qhKUliv07ckM9e1mRduuIKd/drcTIBTetT4JLMK0NXiHFmhjBFc8cwk2BoJqNuLIrVWZL6/5ahriydTzVqZ9bMssrKeXU5xSUYhGb4AQNxrVSussNXg/FcCQFl7lALEUAzogYy7PZVri9L/fZugv6VZywBdfRspRnCdRbiAPUDdB9DE25PVIG1D8qtVbb0KWtihpX023VUuyWhZGTUnql2Z4qXRlEFX0e2jVE2CJFhe28QQA+jIap3eBRhSSZXL4jy8B3A/JTS4B+CFaDtYr6mkn9s3uvqbGZ2glQFdCCpfuhIBCAACR3CE9sWR3MyhR/1JTjRarBhZkZUBjzxKySNJ7TA+ckVgFE7h3Sve8oVR4k2ZNKmAC3AEcZjg9m1eHzKAbqqP573M+fRhmgFZWqhIAvgWe1RKcaW/0Vy898JbzVnhZRXeFq4M2SxeOFAANKDhGgaC9i0mANi0AtDY+HzLmHlLISXZINbM/ymSU2bcA6EN1mi0MbxtYrPKAJdohgxI4QUWXgV+r5FiIQAQBC2eYC5ehNjZFQcIYwOABJaaTyG9TCE+PDEAADamwyp4tjgINQ8RmaJhYhQmmgHIOhOAQGw74PdSGT7mKLMK5EHeYkOGABzYtfow02MkUrV1SwRYW5JNWnscB3GpgFCzsZFR4VbEJKosAgAg5Y6SUeHd4/oZLM8TBHGoghquYUcAAkOe2FkmRXsirVse2TT+11SC2/4FmWAdTcub4801q/vCANwh5mNVZSqeIPupXXG453smZCCAnfqggLsK0taKGc3czLfUzJI9hgIwYjqkCQXgEHQumruFZxfCG/891uOp9dxrC4eHGAR8tmZCVgXYiQEd6RFe8AOjemSQHdnLvGXOLGJmbCXFuA4bA5EULkOJRmBTPmWqnWK6WoMC4OiOtmYgwGYdoQDbmDrWElK1FWIf9uApsl0QJALuVc19hM5TtOlPHqqb3r3u6dvKMKsouIBp7mhH0IFrBgJV2IDagIDXIAtLEYEESOkPvsxdNtn8fD+m1ZDGGE2U6g4XSuFrXGesRuAprlGz4gVprgJqzudBOGsgEARiYqS2pjFdqBJK/ditAFlTCGE69N8NC9aqFpnMSVFrDMjNTYvB7igFrlkXouSxJusJvmZVUKRDlroBGAAWgIdJCSAxQIBQRzaFVIojOvzVBzA084o2qjGv702+nshJlfqa70VgLdCCv6Fu6dYC8qyEaVZsxb5nau5ucaCA9NmR/GqsAvWDBBCDY6CFXFZjU3iAb/W0gAAAIfkECQgAUQAsEgAGAIYAvAAACP8AowgcSLCgwYMIEyo82KRhoECiTl075StQwyYLM2rcyLGjx49RGooSZeTTJyShcuQIFQqJEZIPQcqcSbNmwiYjXxpxiXKHzyNHPo3JgWTMGCUwjASyybSpU4M4SYr6xBJJjjE7anCpwbWrzxo7ciA99bSsWY/gIE5tqdJn1iBcjHmAy4VLkAl1g/jMceTa2b+AoY4UZbVtjSBBtHLx4EEuYy4TJjCewJUHjy6+Ams+i7PkpxxZfcKF62FxY8ceInfokJoDhxA8EG2e3VRkSauH6zI+bUxub8eRPa1O7alHjxS0k9PEeTJlDq28e2Po3UH69Nas5U5IzIOs8u8cm+z/zGEy5Y4gjaf/Xj28uu/okzl4B0//pmeUoLmi/83fA/sJ7KWnHmNBhFDfgQed8klJ5uXGmG/GYCBhb/7tZt2ExkBWAwMIdjjQSJ+Jdpp/q0lnImMd4GXhb5B5wgEUHnaIExJvwZddieuVxlppFcoF2QSeqBCjjKI8t1iEJkTo2I4PorYbik9uFYJsQ9aXFo1a9ZbkbyRG5uWPXqqmWl4v2lAlfXJEgBVpxnRgwnC7rQakixzQycEJJ6yggQornFAnBylEAM6Z39XyTApcHWkCiQGiCOQJIaSggQYM2AIFIhb48owvJSAywgiITDIoocnJAQUHhzVJXZvsyelJCCpU/4rpNb5EcEogkwQCAgjMPBOBqKSWGsErqeLIaqsAenKCBiNAQeszvkYQwa4g2FDtrszIESxtcvjCA2nu8ddqB8q2AsWl15TwzAzSMkPtu7tqu+1mcsDQA1wmyjVuZBys0OylJZRQq6/wwmvmvJrZgMi9Ao6LbL//IhJwrRE8UzC8CGsGggapRoiBw66eoMK/lyJyDbTPuHvxrhkHxgzHcXl83WP/9avBK5ZCYUGm0LYLwiQFy9tyWWmGUIOAE8ZZ8woqkGDL07NK267K8FoxtFlyMGP0kRLOrCOAE/ig59OW7uwLxVQHfXVZ4DCDaMxd91dzCE9YagsMMOz8LLTqpv8MNAjPHLx2U+BYgOppGDamtCd6kuD43TCcC8UITzzB5woMQOELM77YIsngTtlgC8P8cdmqi5Q6DsXTIzBAwr+SINICA5mXcI0kDHwOOlNykHDvYuFSONyjIz8NxevM2oIIIgNbgIjyEfhyqdC701QLFL+X7uSPy47gtC1Olyy5Csw6n6kvrTxBffUzQdGxXJ54glddPyoba/jL74wIFE+00IIkmnqGwCKAiGdYjX01eUYPjpaaFNzNFgwIgfz4JbJK4c0CtBqYr1DGt809Y30IBEkETqCYSLlACV2AQRdCUCcXSeoV38PbNaQ2LWa4q1fn84XgQigT0cmvBl04ggX/jAADF8DgFSlwTaRcRzYZ7k1lNzzbNa4BAh7WxBcS5IALXkErGCjBBbboAgMoBcPwkQ2DtPLZrjaFwc0d0IogscETONADFE5xi0ewxStewYA9+hGGtgAjDM42NXdFYGfn2yEcPVICox1BCVO8RhjBR7sjdOGSr7ikCzbpxAgwo10l0JkvpsiMRcoEBCHoAQe6cD4YkI0EmezCHi8py03erY2e5NylLACDTz1jVKbsiA1awIEJhMAWaLxGpTIJFFk6E2ecbOMpbCg9RLhSA7aoYjA/8owQUCYFYMQgDEhwyWbKMpachELepGbD6EVvc9sEiRxG4IkacMCC1ziiGGnH/08/uvKCaVQjtRQZz408408pYIARn/YKDSS0j5jE2dPyhkF3qvGDBf2IHFbgiYSmIKGW5CMDjtBHPj5uono7Gy5zqc2MdqQElBJjEDEpS9pdsqSQQyYajwc5C6gLhC5diMJIwIBz4oycfqTdHp3mNIpOEQpMnGgJCBrUhTwDCn406kyLqtQynpFihHxnS6u6kaHOcpYyreRIiypRZFJMaoQEKlkTIgdJjOCsWd0npWwqUVfarlaEhJZc52oQK9igBI77Y1JpNylJndN4uKSYxQibkVrIYVcWQCstM8nVjz5Uk5Zi3lsBR1XKDqQWVpCDDSZRxFjyUbP8/Gg/cSZKtP+BYLCmlYNhm3CKcWp2sXp1aAqWqDqJZfAZplXIBydxR1ruE6IzpZRwYePZm0nOp6VN7jNaEIjO6dG5+4zlc4U73NdoAEYlaBaVknuQGaiAA2d7guucOVvO9rGPmxjjcEMQOG+wdyEzWAGAWrFdFYj0viWNZYIdNylmBe6N/zVIgAFkgiK8YAjk46dS+whLxcKwdcqbAQiGMNYI18IGkjiBmzAAABwM4QWt2AQZl1rGDy9VeecLmA2EUAQhCGEUETZsC4TDYgAAgABloEILnqCB/MKQw2QDn9MwdbaAzcAGVCiAAxzQCHq0YAiUVa0kBNwBCQFAAgcAgCDiQYX0dXX/qRTFG2SdZ2UboGMRZDAyBkyAAx8IgQpBtcIMWrACH0zABEY+M5oBgAYqeGMILXBcP0lA0f2VLHYSK8GVvQEEMsTgAoIoAxNG/WI9oCO71bNCPIRAZhMgGgADQHMz0FyAIXgDHUKY3KdaR2n9LS9/ZivBKGzACSKQQRCCeAE6vGFqMMQDHUOgh4+tCA5cC9gERTbyrCWwbQkgGQxWUHLrlOo0XwNbf5IYhR44AYYYxGADZUC2vMtQBjS8qQNF0IEQUo1iMmf7AGmedawlwG01O/rRLWidSZUXuV8j0gIkkEQ8fsGJb7h7AxjfABoocIFBCIICif5YI3Sgu6FZSxKt//ABDoqc5gM04wAGaEYzlkBwgjej1vHwxqon57hy//rn+VRBCSbOiV/sYQ+LQIO8NS6IDVyAAIk2sgkgoAN3ZEznrPaBm4zscpk3gxdxiIPMJRDrK1xBBAQYxMGV3HMS6Mx5iMA0Bhmgghno4Q6c+AEQkJ50jCPb44KIugEMAAAJ4SDZwYrGqldQhJUDAOAy5wUvui55XsyaBWY3uwQuoIhv3OEXL7Dr434ObCic4AmjQMcPOFFsICziAhpn+iDK8AKoA2Dwgw95B+hxJitYuxErZzHkwT75rzcj7HGw/BVYEAwWsGAADigDGFYP+oSX23yYWl4ITiBxirP+F+MAQv8RNI4GpQ+CCVQgANRxn/tET91DqI3HEHSgdWw/HuCVP0DlLc8LA8RBARXgB8GgC7rwfGlHBN73C0PwBJ+CKQHzawywLDOgeqyXd4rgeuT3d2WgA+oHAA/wAIP3gR9IeAQgCAdSC8z2Au7QePb3eF5XAZKHfMn3dcgXAIWQAU6gC06AdoOgCNPHet+wgCQwKyWwM7agASfQCvGwbhX4A4qwCBindPKmAxy4fiBoACIYdQVQBvThey/Aao1QZgDwcsYXeRWgADLICzAYg6AACdnwDk7AAs1QCWWgCDfgeaynB5KALnyDCDKmAZJAgRX4DeOQdBQQexsQahzogVgIgg//YGRZmHbgIX+EFobC94KVF3nkYAAKQA4KoIbN4H/kQA6QcIMZkAEisIV2+IN5GHozJEAjMCktoG4VaIFAsHEcRwFokIgbCAC5cHsiGIwfeGQmqBzR5gONYH9d1wwV0Iy88IkwGHajCIB+4Af99wD/FwAJkA1xyALRt4rfUIvf8ALqEkqTMgLPoAerV4FEsAivl4sUcIizNwhH5ojBmAvDaGQFoBwvwILCdwAisATNKAIJAIMK0Imj+H+fqAB+cAX9ZwCmQA7a6AfZ4HwA4AjguI7fdwODNgIq0AITqJF5BwQx8HoXcJLxiAbzqH6NKIzBeGSDkByCQAAsVnOzJgLB/yACIsCMZziKndCJChAAB5kACRAHgzeK2pgNGRAMwaAAgrCK3leLPwAGSwaSRCeOexADgnABubgBhygIOkCPHuiSwmhkMTkbNxADXMeTFXAFEiACFcCTBzmKBjCNB1kB1dCJWFiX5JAA1egHFZCKTAAG3yCSFagHF5Z6v2CYxlYA8fiY8ZiIYVmP9uiSuXcBsxEPncZ1B9CMzeh1zJgAc0kOcWCXCmAAkBAApMmXnUCURCmAADAIhBmV3wcGN3ADtnmHi9mEVUAGBXCSXsmVuigIHmdkYVeZwZh7DoCWMQB1BKeTZ9gMBzmUZ4iQPhmUQ0kOplCX20kOrUmUTFkBF/9wA+jwC+b5DUSgCONAb4qgCFXgCI5Ab0RAmN+wCOpXAL8JAQWgnxegkhdgnC0pjGFHghuwGWWQZ2eWBjspnQrgmn7pB6I5l3UZAAuQAJ2gndi4iUf5mhnAfGrGBERABFWwd2TgaaBWh/VWAOrnAPEIdQRwkoJgfnX4AkxQAMBIltiYfLxgZAUaGL8gCAgqAWYnc2eohq+ZkxUgmptIDoUgAH6gl+w3eKagjdvIlFcAAA7wlGBgmxeIBvgJASeJnw6gZS5IePqZgbPHBGXgADcqgo1olKU5eQCAmYFBBf/pgmbnmc0YlDfoBKeYDcEAmBUgAALgBD0ppUuKlAlQCAL/GAwwWABPiZvfgA7oEA+2+QK3+WzoQAX1tn4GoH4EUAn4qWWeKozk8IFw+olxMKeA9hdWcKCPtwRLoJOCGoDZcKtzYAi6agh+eqtwIADw4JBGGZGjqJ0SSaUCCIODF6r7uYvESW9MoAhM8ALUGm9QF4wvmogbAHUwt5ciaAoPsJ2lSZpGCQGKABg2IAi/eABCegVMCZc4iYMZAA+5eoqGQKiE+qvvAKURiYWm8K9U6peiaQBguosboJ8O0IFRRwAGYHnH14hqVgXtWQU2insf+K8guJ3+h3yDdwEvABjocKcC567vwAI66QS86gTwIAD3mgH4+qtwAAfvcIbh+q8Y//qvptAJCLCopxmbVLBszcalVVAGHld+KgoAcRCuwwgEElsFVaCW7Aeu4eqv0oh8c/qxf6EIedaZInB2IgCHwXAF7wAPZFu2hDoH1fAI+RoOAuCQSouzFwuwkECUp1kJs2eH8WCplPoNk6oHfnsDTDCTyYkGjuC0T3t7YfevuNevxXqQhOexgFEF6yqkwXCKwfAO71C5ZVu291oNAtAAaxsOhqoAOFu6/6qzDnqahHdkW/alBfusHncB+Ki0BiAI0WqH/7mxUnqU5DquPXsBrWoW3hB4inYFBeh8ToCy8woPhkC274CvAqC2vxoO4QAPwRAApmu63ymaFWAAkIpsGv93ASq6frc3hm1ZARj6AEiGqTcQD2hAAFdYmjIojc/4iYMHAYBRn2MopLqwuU4wBboKrGQLvYT6CGorAHAQDnDgBKSbvadLlFQaAA8QA+3rDRZ8a5eqpo4gCGQKkSJYCYqAqS/gvusXBxeakHwJgJ9IDv2Hv39hcQ/ACxKQBphbtnDYvPgqvSw7BSuLwDEbs06Ks9oJkQAbAEYMwZ+6CKI2rdSKm2CwbLdGo4IrgjGgCERwmyGbC6LonUvqf5I3moO3j38BBnuAjVcwAMk7titbwwRstgW8tsoAB36AvZ1Qx6XbCUZ8xBa6iUZme6C6n/2JBmDKpi1Zxezbbohblwr/cMLFOo3eGcZ/cQeKEAMxbHZpgIMDDKzQ+8O/urKPAMQJrAzKkAF0jMd2fLoooMedYACVQJyDMAhocAH62YEHsARXgIMOiaEF8AKr2G4Ma5SqmbOJipQBsMre+8LjQMlxcAV+mrz3+sMI7MNx/Ks+zMnhIMoCIJo5O6WlXMwBYA7moM27jA56YMF+a5vpGW/6CQBgJ7UFQAUjXKnNWZp1bMSdIMTeKQOQIAOEt5xnQQRJQAYPoAAZgLkoG8DwAMo/LMoK/cPXzA1w0JSne8pTWs/fPLAdJ2ohjKlbSqk3QKMUAL97uctLmLcQ8MtETKzFWscyYMQKcAD+XBbeUIgx//B/y0u2vCrAnAwHojzNOx2z3MANyjAF2oyzeJyzeByw2Lu6LgqqoqqfEMCm/TfEEPCzlRoPUBsHRn3CEYnHkPDVLx3TT3FnMUAGcVABy4u5zUu2C93TPd3WPyzUEJ0NCTDRKNAJKIAAd52aCIAAAfCpQOAIrrcIWdmBBkBzhjCz97ydwEsFeYvViGvUoOCdddwJqUm3vCDGZYHVCRsHAZANa425aryybf3WMevWPK0M2sANGZAAxXy6poACsn3Xsu3XpgDCevALfjupYMDL8Sa+SOuvtz1q1EoFJ52hlN3IpKiNLn3MZvECZJALBBCAN8i8Nby50tzTQv3TMRsOhP+gDE5azHiMAtuM1LPt1w+gxKPWnocMBlWgpgWQ0qZAAPH4YkNAyEmL1Fx8oXjs2nTpwk8RDWXgos0QDEq5uT28yaGsDAq80KkNB0EN0Y6KvXeN1HV83noNrkdWvn0MqgnLnXBbAHarA0Xwyz6Z1MyNx7eaAKup2U6hB4uQaM1wBdmQq/ia4Jr8yant06d92txACEBuCBVwz7J94ZWd13l9zyUIBIJA2OMLAGjtBCxb16UbqlGNtPRs0UlNlIVgCHR9oQRrFnqgltrGzGNLwNRMzcC646ft03FMvdwQDtdL3ltd2Rf+rwSgCH6rB9+Qm4rgcRRQCQ2rnThLAL9p4tr/ec+mHLCF8AEQvKN0+hQ3kGdkKLbwwMOavNPVzNOl7eZxTgjcMAcJcNd2TOR4neR3PcGFa7ghrKajNpMQSeimkAuHzpeUndSWXaGFUAjhLJSTF+lNEQ29yc4yFwxSnq+cnN1xHcduzeyi/ONA3gCjPttHjtcIcOr3/IiQuLodTgCSN4o2S+tPx5d5HAA7C84Oag6FMLeniQZl8QtAoMVeJ4C6muCl3enOjto8HdTKkA0BQOrai+R63Qkl6Aixe7QAKa+jiecx8L4PkOg5m9fhHM68Xg3VEM5oWLtlgcjmWwFMmQH3OsBtPs3Nnu8lH+HcMAWFgNcUHfHYPt9lsITe/8ClG7iVDrCXVd6fN6/Vp4sA4AzOu96kcwDOqmkA7v4UimCj7NqMxn7sm9zs/F7yUq8MQa0N4TAHpVzhA3/q5G0AMZCmavrKOrCBIHeUhd7wgr7VfQ30H6CU9zoHCwAJRlmMTiG5ioaTTf+8Cn3ybq3AJs/QP64NhCAAH8DyqGznAJ97hOd1fQzlaAju8w0BIR3rOZualm8Obr+yH1AIRpzZTPAUG/B4ZceUTnDmPb7jfO/sqB/n3g3qyoD1RR7b3kzbdvwAKrkICC8CUg4HGdCT4G7ok3/rfo0AFV8N2dDDdC2UcSCJTfECajnDaeCuyWu2+O7WUT/12s3vcPAB5v9A2wPv831tzw8Q85uqpjrQdDb6jIq+yob+vnyZs98c9B+wANkQzRnA+WDeo0xRBQwLEBKcvHs30Am8d/AEKISjzOHDh6S4QYQ48SE3QtwmCqgWoBMKFAhCIhCJolMnAwUEldEhSNCgQToGFTBg4ORJUwQKoCFggJwpUzLMQSqUIIE5c9UECDCUrZCMk3EKRKFa1epVrFgXAYiz5ApBsGAVPmpAMSIpQmYdWlTWMKM2bnDmBAhAkiQNkCHpdjJVk1cwERIOHABwoMJNnDov9AR1kiQkkguQLni0cE6hADIg8QKgI+tn0FSTFF6SRmzChPDGNlTGNqNGtWvXctNGiFD/bWXZFohEYI6kb3N0TT24gKYAgZ7NRCjMhhioYgJxbvbeDbzanKUC5kiG1EnBgUGhxV+9wPVKGl3vDKlWLVYA67WvNaZVyxbjbW1w4VTbDdKuuQQQ8CiXKsB4oYwyBhGEgkoMKASxAHIqgAICHjDlpAUy7M2cBapRSoAG5phjKLp4gYCK8VKM4YE4rnCChSsyOCg11d67SL77vIDLPrPeys8LbqopBIGPIiPJo04eiGFBCC64YIMFCVAAJ1Mi1IlCA+IIyq7/rnuksjmyuQwzXggoI8XxyDCgggxYcCKbbDJYSKH3BHikoYYw4oYUtDKSzyGJWgMUrfy00RGOD0qK/0xDu0xRIM5srhChmQNE8APJujqBLo6fQpqsw2oauHOppjisJpsKDtgAzdCIUFMEJ9ZLyJCD3oPj1lsvgg2//PZkSzZAb/Ni2EOr4W1DyUoiAAIHkAPgWQngySCBukyScDFOO6EuwwwbECCc9x6Zg78FvC2kGRPCYzWrKnIx4CuEEppxIVyXgk8j2m6zzbZfdVVGWGK9IMRYkLTl0DcUTCmACR0cgYmeIhw4gBdyOqGBL1Mq2amnihHg1lQQw4HDW/44FNWQYA6gZ92sFFHzivUWSi01e+3VlddC4aJoIj1t+3FYQrQYMa/eEAgwgGUhKKKIFeihpxEAeJnyQr504v9JS0g4TLbbBuAQd9xQGxBVABEI0MEGcFi2yuUHrlAIHjjozc7OW21sTaPacH4tUFKUkWg+HQ0dFq5H+FNUwAQUMIAAEzqY4IQVoJagAgVCSvja6MjxVOtyRQ3nyzvv/FzcCgoYxYZ40LFC7ShcXtOQueu1le488Q3859p8vRtf2gYPGMhHGEWBHAMAIMABHCbw5IQQVuhggHemLYmuSprkqhMZtr2ObpHDgU2LurNpxgFJQJjhfCpWX9dlABSAeSEbvQ49190xIhb3XmXTkxugCfldG2UUbgEBWBzyJsABBHLgBBpQQRFMIIElKCAzUDGAxi6QJW1xy0NzuFPtNDL/tri9QwIYaMUzSvAEFUChBFSIRzzQpIgY5CIOj4pZB+/UlrWQYkeF8l3g9tUan/3NUPgzVFw+sLgCNGIFJzgBAj3xRA74oBE4wMCzMFi1AlyQHHXhVoaUkqdwBFBs4fAeHOCRBgxMAIUhCIEGGACFFrSiFSugIx2FMAMbXIUIe8jFFhOQjXfEDli16eFt+DREH84nd4ArlK/0NIUDOECJdQxBExM4gUZkMpPN8kknyKExCBiAF1mbjIfGmBGHkKU1O4LHADBgAuUtz40M0IAGLMmBOrZiCC6syg2SQIYHPIpO9DOLDvNjSEANTnA61MjfJOKzHUGEBRjAgQ/qqAE2/yKQiXXkZhFiAIAsfbIAoVQAtTxWDQ6doWuo3B1+uNFKDHhgAjVAYApSgM0QcICNIXiCJCTxgiG8gJdR+IUjyBCHQtiqX/X5Ww4RqUzYNLM2edNhoNDoOMi1sZb7VEFH5diCOM4RB+D8icYokCUFUCdEoTpD/fA1RG4IwJXy9EQP2JiCfGqTeSpowQxaSIUX6KEqSchFBeAhsrbcak99a8sNJTofRebsb7+6z1tuw40pUPOAGa1lVxmogie0QAj+fELkqsipCo7TJwFISthEtcrX4GdwcZmp8nqAwJwmUIE83SU6vIEOPUQjClWIQRzkBK6lPOJuD7mhoNCCL4kYE/82s1Hl3fjlKzhIAAeN8IECmbdRrzLwCSN4AgpXMAFwSietoSQHJEBVLhvpizY8HFw46lrTHuRWr1DUQAsCGg9veCOwURAEACpAowyICg7c+JLXWMOzaD7EZ5PFV/DKohHv7Q4eAKimZ9noVZzutKOlVcEKfICBToqTta7tnLcUyy/B/Y4QMo3nPHN7Vydy4ImeWIFYh8DC4HojCjE4QBrelpApVEaxoIPNcx3itdnkb3daOIMWjskzfLHABI3w7ne/6lUVMKC0pW3FeeMQAEgooHqhBEUAuOatPMk1YDuirzxroNvdIpCOvmWCQOOhB28sggASWA97aHenri12Dov/TWV8dOaQ1yijLNF0JDeu0IHOMlGfbQSrCrp6zxHDsRUjrQAkqlEBUMYBFOxtwBkewY1wTPRnOgISIeDwDlcaw774raRnIdcKIQT0BSxERzQKaxr2sKduSrWI2BT74BBdN3d5YvJiaaMnZQygA55QoGdFi8JaelkFIxgBFOB43gMUwltoLkABKvDHOXjOsg+9H77o67ga3Bivn/VoT2dABRbeQMCHplGN5lZptZBFC5eOCEaku1R8oVICm+40E2vJAGzTUtQjbsEKTGBcVc9BBA6AgKuzkdi7CY7WxLpqONCIAS7s2dOiFeug/QpYqqgJPQmBn7G9169+NaAay6YP/+92xDveBWraB/TutWkZ2lGXFtUJcG0DWO2AbBgCDv+Gps9+pyM4w7nG9tUrl8P6z9QFtyp7aFut7JUQRrPFwQ/BlbNngy+H7ChQe2qNBGCpV+bds5ZCvzapnwC1A2iLBghQQBYJ4Lbu4W1wAAvYa+qUZy7UoKZA3/EM7D1c0ZChNMXmN+9onuzazWaVGIYsn/CVBlhyuuRE9yoDSO1tw8hg6QgwgAMu4ACoc7zqVFemNsCFEAwYQ544tnZH70hosEcBCAd1W40UvVyLwOciFbmb2/9FiH/jHOHKuCgUExiCe9Id26Q+7+Q+ggJIVHAx5yajx6c+56nD+fC6SDzJa/9JWkDPYBSp04NQrcJyEQQSfraCD67MYh+c1y+MnG9IoN6BgU3LHa/2pLsGyDuBA0gAMyaBxAMq8fcrfMtn7vTeROmsI9CLzIwC4L0xsq7PWj5hrJD3Ri2u0q7SsLy6yS7nA5abOTieyYjQgza8yQh4wD7tuyvUQ73Q0oARUAEPGIABuIIhqQvzOw4n2LjLiikMIABd+Jbe6R8zYoiNg6es4zQ2kgSfAqw7+IzCihGEgBtcaYgOmrmbwwgEpI0FhLYL44brcxzT2z4P+70R4AAMgJ5g8IME+IBqqCBm0bh/awt4OIAWeAETGAABAMIfqQ0BeAddCEEyCgd4oikO6Kn/H/OGX/gMIMgFXnAROmGIOkkqzZu+z+sVhPtDR8INZeC9Dog3edsyjXKjC3wegmABP8gG/pA9E4QbAbgCCZAA3muFKGiEATgq/xGWY4obS8TC99CFuuopvxIs0FgRr9C49zCyRXsufOE4uMAR7LoP0csfU4wnLgiCXMMxP+uqCcCANCjDN/mAQsgGSUwNACgCejivNIoCHSgwERzDy4IDJxCIOWEPAGiEMkCR8ZjDOGCTO2TBHXSI7IIzfbmsq1quu8mu2eAX+sM6DwiCWNqv/TqBYezEuBmXQkgKSdS4AZikFfAADPAEqqCidyAj7FpAMzKES2wGCTANCXCAQXgB/1bZA67IgBqhmR10R+wCokW6RaT6w9aYKt2jL2NQPA/gAg9oSQ/oAJk0SOgho6VIFA7hheohgIQ4AGtSASeMxoQsMDr5Fu8ho1t5hzSQgGZohiUYn4tcFyD4JvcxBH6Dn4/UPZNkDVw5yv2JKN7xH4GRKVfCALM8y7MEQ96Jmy6yQgI4CF1oHJp0patYgSLAARMggPBbj1sBl3dYAl5AItaJgnGIgXdhgTRwglc0x41jyAfTQzzpy9GrCAVMwYkCvTlxgliBHfWbNBDxooBsTOVbiAM4gc9wGnoQBALAAWc5HgIYTKtwhBiqQ840to9EqqSCzJrDMIgQgCmIsZdKwf+MqBvtWIpwqDq5IJcq9Lu3NMpw8B+R0SzYnM6qAAI+MoBsqJGPrBPnox9bOcrQE4A0EIFgeJYDsJGvVLekEhsRaQD+uZ+RaQDQPL/m9B75gANdwAHq3E+qmMoCAIBmqDw6sUnmk7/GZMjnBJdXIgAAcAAHAACNO0nbGZymAptQEQCxPBT5RApzsEIHOKx/g4tweAf95E8TlbwYuIACGEdD4Ex7mb7QA735sK0OwAG8tFEJ2LibI4WAiYv4FJtTOU6QE6P5XAzFnK1FgofXPFEmBQPDLB42+U6Rwa59CTkBOAAbNcsOwABd2Dici69hiQtxqQYqNAcRiDMgEVPllMT/E7yP/CCj7RIEJj1RJwUAMqCJhMK8+fCTvLEN2zLLNNBAXYAmwPmfWxkXyUgKsbyNuCGXDq0eBziI5+QXcHGCA5DTOeXPUSCDBi2AByiER7BP27gdQioUxErD+KKt/3EIgfOiBvAfU/1MyXDLgxBB0DvUCkCDTOVPIWDQGPDUPEXT24HVj7udYj1WZZDVDhGVDmoqwzEHAKBPSeU4rxGfqdhV6tSB42kENclTOKhFfrG9Yx3X9wOa/dCgxFEANmmLcQEOSfQDJ0hDkdlQBSAAJsDW6aQHMkhRNYEEe9nTy1LV+wHTjwPTtBCbcunQmniXUeEPtuq7xaiAbGBIr+GP/xQDAEzFV9YZBDK4gBiKgwWYg5hDUP5xvxnTlyHKmYJlLiBNgOJ5lmZ4j1bNmmiFAAKQ2FBtC/ncDaa7Vo1Vm6lcBDKQIXPAjoqItss8pn3BmZTtIQqNz2pIgGcxT5lNFmilT4kFEbLYje7ohAqwyJ9lmVFYhAsQ2oMqBOxoiBhFWkKqqqoivHIN05HxEKl1lgMIwZ1FimiN2PQjC/lEARq4mAQgAAoI23VBh0UQhBgYWlA4NwGYjSEM16+MtqrCPWKZiDFFGmcxgAxITm7ZWylJKLH528A1h0I4AAgwXFahgkVYhBgKpuzUQa20CNEDRCDcF5MNmL4RIKSZWuyMG/+OyBDQVYBCCBUNCdylC4AD0FXVTZEXEIQ94FQDUICB+E6tdKnK7JkqzRlQ7FHeRQ4GPYDO1Q4PWQAAcLqs/UwEwIulg4QD8NnmDQ10mMpcACc2qVWKRcqQs12EA0WV7VG5+ADNZdDflQsgPd+ITUZyWd+lGyBegN/4/Qxf+iYDGLtAwjwdbUiOG0GUhSZj/Z2+kc+cAF8AyAavGd05QGACEAFIzBCE0RYBqdcIFo8XoN9xdBHY2bi+1FMvvcWo6lMZC5wZO9cRdhYT9tsQadDyeDWeFQm88BimA4AzmeHPUIQk+KY4mMiBYIg09NEDbYuwBEWryhmC9QJlQKciZtD/BIib0a0GBAY3yGBg5CWJ77gAKv6MKoheFqmA97lNx0xDPcVdpr0fpw1TgUtjAEiAeSUXxTCuBCgKkgBcwPWYAOAF5r3jq5BNd+Hjr+BOpQojQOzTt6UtdcM9bQiReiWASkAOBViKVkWaLIqaxTGAugjcSR4gA0hdTL6KqTSPGMnhcwwjHV4uUe1TpeWVgZ0zbSicCqqEVZaSpSgZBGjk9/1PCbKLwCWJT7rXXaYKxAWmOIgTWGzMBosLHx5l+ym8gZ0xLahCZ35mAyhfDVFlCHgWBzUMFIMMwKUBqMDYbqaKGxDaB+iEQsiAIrMVZUDQ1uhigF1HZDZZVYWLOTA//1Ve5QdI1Hk+P3sG0AoYkscIXEggBwBQl25WBD0OgIK2PHs5UMxbaFHFxajqOJTt0Tlo5nd+AATImkRtZAPA50L4R0bRDFAwgML9Z02OA0gw6LFY6e5ZiyGsXPxYWmgSWC8gBQGI1neuhFxwDA6B5fI4sXz2jWTJaRkABQWw43+evAcghwSQkaLMjk/2ylmcxTBcv6i23Mt1Ap1otQIYWlNwrSNpZLCGBP/I6aVDARkIgKb75ygwqOnFYWOrGR1maAyDAzdJAy8tFKYtY22YAgKIAdBeXDIwBbuABK8GAHLQDEjgZ+RtbRkgBwKogn/+pekVAYM26BZNLKPc4f2F0/9amVTcPSY5U2YBIIAL2IPQBiZIgATNgOX1gozWBml+fm1/7uZFkKFyyoZYMbIeBOSjPFCktE9R7Tg3RSRCcAIHQAM0cN1ffYAACJAFqNdYbq04Dly9kwH8PgnFQWtMzuNcqBI4yQABLzIWlFcDR1CGVEc/qdLgJhZSMASVEAQ08NjjQGqkkG9PbQzIyB7pxm+9Sxz+vmNH4CO2jpMWJXDt7J5hlleMMHBBbsAGBxIRgICXEIQLKDdPRTHF1gkIWOt8zmfN8HCoQAkInuHCXOuCFnCDnpPsAGQM1lGXmlQgJlQZ44YZr3GPBW0C8AgrGafroQHIWG7mzu/8zokpvmP/tUaoYHBrI/PkrpRX1iCjd3xbt7WfRmoGCICJQUCD5N4ilODxtbYYzchp5sYeWwaKByBpKpZNJL8CmImZouzL7lHxHp7zl5Zqj8OPcDiAC9DzDXCSxV1rBcBwnwAF1RZzIS/zB8jYGQYDoTWAxpWRFn2blSbmrowbYt5TqNofqTYUQl3eQUgQCc9yrgCFOAD01B70u8Bv1n7tvgjxCDZpYFIAg9ZMxSxKuEnDuUHKA93fpX3bqa7SA6CAYHcEIFgEPl9cn0CiDDf01kZs+4aKvnAATJb2B6gAXThDWpn1b/FjXF/xLn7OkPv2UeUV0FteR0AQcydbFSWAwFwWT012v7wQ8njPb9gu6hneo4Nik5k5aOOc7H/3Y46zz4Ye1THkhuVFkDIw9yQgW5sFJ50wTOlI9em+75MgB5FW9PiFIRm6gvRQj0TDykk30B1kyMo0+riqKh8KBwNAA5U3dyCw8QJ40JpdEVMwdb2reSHHHpw3AFaPX8ICpvtdD1oR8LfewcT6Ei34knDQgtFxezLSAriXe/CxT7kvbkGoAkWogipwBEew8XJrlkpo7ziQjk7o2ps/iSEnhwd4AIw/0YAAACH5BAkIAFYALA4ABwCmALsAAAj/AK0IHEiwoMGDCBMqXCiwicOHTXAxnEixosWLGDNqVNgk0KePH5EgGTMGySc6gQI1AbexpcuXMGMWDESHDkiRn0Ll2LEjR6iQn4wIlUm0qNGiTWp+pIPEJxKdNYL05Mkzx84jML4c3cq1K0JwSW2GGruz7A4uHrhEDRKES5CoNXbwcKHVq927McPa3MmzBhe3fj14MJb2r2EPE2r04JHCCN7HkC0mBbmzRlS0h41pJiyYy4QJaRXz4MHgWeTTqAuCU/qpaWC0mzd36KAZ8WdPoCf04DAaUerfkadN1mk18GYMGGTTrn3b02C1lhkAn24XLFOfZHcEOR679mxjyRFz/6n9N0iIQNTTGw1kBGT2y4PB1+ZsbHYHwctjewjCo676/y7h0t5HOu0QlWAIeoBccuEJBppg4CVHXg08oAfghRrRtJeBQcTH2XfIdefBfR5uZlsNr2CoIkY0jbFTh5qFZ193JCL4F2KDOZjYCVCs6ONE4Hj0YnwSjpigfTXaaFtan03AQQs/RqmQgEMaY4KJnCE22wT3TWBYk5h92cMINkhppkGlDJnfYN+NmNgEnnDgyZy7ccDBCXJ6UkOTJ0Rw5p8D8XDgbCZciWSOiPVwwgorhKCBBk+MMEILLUjSwhMqhBACmYD++UUPHeJ3pWYzGuNZnCdowAAUiFhggS++MP8DwqwgMGMBFL6w0umZvvDQ1mCFJockYZ7VkOoIuH6hbASy0kqrrLruKiUDB2pWqAlIkvjZCSpAAYUFyz4jrrPklintj7jYUq2V2GbrpicnMGALFDCA+0UE95JLbrTnqhiIoGgteKiRcHKgqi3zunqvL8zqSyu//V7oC6jjLVhoth3AuWgLCNuisLgNO8yMuREDyAoUoA62IAbtZtxknCus6q2r4EZgcwQik1yyeqyMkHKEyNln5GwwP+GtLfVaYDMzTDe7784A4sIAqDEu+KGDHcC8KtIw1MtwyA7rDPV0UlPdgdWy4Zc1tyNwnfQXDM/wDNP6ij32b/8aF6J+CDr/GYK8CMMwLwytQiEppSMgEqu4pt1NXQk/M0hjl/Cq0DYJLrjwCgmbj8CAqhpo2i2siDwxg+PT+RwqlrXh5+QJbXfMOQMMkJC0LyUgAoXHX9wqCeqp7xlfiVkiBi/ggpNAAsKuIiLJEzK32vsIjQOfmiS4IeokB3t+qXEKLnTMKs2Gt6BCC7AqbMETdlv/GCsnfCYYBwzUCwMDJ8xZ8N+vBG5vBM+A1TPkBkBfLIwZEnFfakKAGy54gnYwcEHXXhGCPJ3gbx2j2b1sVqu5Mc5eIIiGAlMDBdxMIARdUMIXhGKE+1WQAyFIQf/cpjAAzg0Ec2OGssDFDIiN8DHPUAFu/1KgBLp8IXPho52qujBDpFngbcyiW62YEQFwPcOHP7zLM56Am7lkJYLhg8HsXkFGFyjPf/9zWq3wxTAQZPE0iOBAYo6gwhWGkYy0O0IX9tjEeikrX7OylQZ7+EbIMEOOFHIBuJ5oO1tw7gh63CMTX9E1KNLqGd961avcWMjHcDEx9VOY4Bz5CgZEkoyvkGAla9YsCyDNBZ9DBCc7eRcLhOAzPODavSLYBdpJ8hVMrGTX7NW03j2RcO2jJVe4WAP6UVJZMCglJPcYySIGrmvLoiIVbVaKWSrzLiWwUwpoR8kIlnKcp+xC5mj4x6U1jZDffEymVOVLSTJgE5tgADD3qf/Kty3rZlFkSTzxUgJ9/jKVwGQAEye5xzCu0pj/Y9ZA34cIzqFycyTgo0IX2gW3va2itqtk9SbqFXD4gpQYvWgpycjHGdJLYb6gmatgMFKScqUWz7AFSxmqhD2aUqEKLaPg/Iivdj4jmTYtCjN254KWchSSejyCQtc5r38ClBlJtQtOoWBR5W0OmL2knViDirBvwQ2gR83qVqZRi2iwIgII05xKmxpWseoxfAkzoDvTqlajsAIXuAiEKy2qT85NspS0QycDrJmwbDKDr32VyRUBG4FoqvSy9UyBZscJOMUxrGlYjOxGWIGIJpSidwjzKirPiEd7bvZRtCNBJpXmTdH/toQVkmAALiKwu8uy9Ksk0GcpN7FZzX7uUSOwHc5s+xJM4umxLUiuRVtLRuWplnbETUEIbBEIKiLihsx1STS2eMsOtGAGQoCedYXbP85Z15HKw+4mfBFeothAEgzkkgmKgN4WxHalZJSddUlwuXuSoKb11Ug07ps/BQEAADgYwgzMtwmvFrZru8sw0hDRtVbNAKkJZggr7rsCT3TABAdI8QFMwARrvEAHT4iUV5dHMw7PbIMzKEEJQhjii9hgwivwwQQwAIADDEACEjgABgZBBT0MIcZjlW3zEKE76QWwBDk+qiKoAA5wsMKt0QizmHtsBVbM4Ak+IJQJMIBkCSwh/8kA2AAVvAGGS3lOrB6rsQVa5SosP0MSRy1DDFYghPOiwxuI9oYe9OCN+tbix4zCwZqJXOQ2uxnJBXgBo18Q3Tv3r8ZUpvKefTFASVjDGzeoBA6KsAEmMOEFsKYCGG6gB+aOWBJBPjGRj3GMAxT5AG9u8xIIUAYwKFoIyUWlLfgcakmImmFCkAQ6fvCNGJChAKpQxQYogAYKbMARjqi1aK0hhFyb4MEP5nUkeB1sYQNAFU12xiiQPWA+7znUMlWBJGzwgx8sggwx2IDAB04BVQwitANlBpDTvOYi81rdkYjDMYItAl2IYAkHKAAT0OEMPbwA2dJtVeHw7SpbhGAG6P/gxA+qAPAieHsD2ja4Dl4ghaSyYhRPMDeRD5DkY0Ti55FYAtArIIIoREEEFRi2DubsDHQMAeTjCzWrqJy7EKjAGinnhCLI0O1tCzzbOihDGYqggyEM9Mct0PmDU7zuOPw82EsQegX8EAUnZIAFIoizIvTgjB9I4cnJFXmok4YI/Jku60SohCpcvgE0wFwVM6cCDhyAA1W8gJbeWLiufw1snwM97kT/uQLmXncn4P0AG1DEN5yh8hvIGAYxJbkFRnCCE0hCCj/gBCeIEAMgDHzgBh+COAjwYAzggAI6yCIrSoBmhhNZ6EIH+s/dHnEFWD8S1k+A0Z1wdAAMQhFg0IP/7vWgiEjVqwR6JkEIFjWDb+SeE2DoPQVeDnOYl0EV6H7Ag/d7eev9+AkngAMnVmRxF3ciIAI/VwEKAAoK4HYMmAA/BwoJkABr4Ad2twQOUAbgBwa5R21D0AKehTtUBgWbsH4tgHu6xwnfsAhAMH/0twGDwASDgG4AoH8P5gAb0H9jwwpDoHYqVoCgJ3rW14BxAAoBoADYFwkJ4AcZkAFO4AQiQGzg536654GSQGrPkDuzt34nl3VVCAQt6IIvF4P492APcIZneIOQNzaDIGk7Z2kHWAFyKIcRBwqg4HZDGAB4OHp+sAZOyAIsAABl8AJgQIUp+A1UIDdZqDuhEwJQ/2AN7/eFYbht3AZzOqAKxFeDD2AAcXCGx/BgOJB8JaMIBUBpcedmSzCHSUeHRQgKBnCHdhgAEAiLAVABa+CHRvduhKgHkTh+o8A4hecoLWANhqh7K6gKLthtaIAGqlAGg5CJBnCGnIiGn+gAgxAxL7ABmQhsqLgECgB6Cmh9dmiHnUCOkACBEVeEAbAGhXCLR5dphdiL4zdAJTACjwJo4peCKlcFF6AKF3AByWh/ZYiGBhCNaJiGEBAx4hADa3eASCeH1geRCxgHQ7iA5dgJAaCHnGiHhVAITWh0gSgON1CMKfgD6IBekbJj+aiPvNePYjh/2XZ/AEAABVmTB5mGBP8gitKyCA7wYKiYdEMYCQoYjrA4jnaoAGFQjqBgCnaYAE2YAUanCxKgCvFYhT+waN8ABlQgYaOwaPqoe/F3bS4IkAAJc46wAQ9WkwV5k2moCueiCDFAfDwHhEDHgBmZkUYJCuWYkQhgCn75lwHgkU/oBLqgCwUwBGAwa0RQBVWgCEPwmC8ga+jAi1/5A0BABgRQABAAAfO3mQVQcDqABmmplmypfwVwLmVABg8mlEkHjhmZALI4gUa5gAuYkX/pl0bokUYXBXQ3bA5QAAXQk5mJBjrwai/ABIowkl9ZbblAAJn5mZu5bQY3CAWgiWppkAcJABm4K7yXCwAwcXMolKn/qACwmQCFMIEKwJR2WZB6eZum0AkY2ZHaV3fvcGQ5qQj3BwEO4AD9WAauJg4iSZk/sHXNWQkUcAGDIHOv9ncFQJPSaJNsSWy7AgSV8GCp6Ad+sIoVUJ59OAcdeZ4VoJedYACm8IruCZ+xuYQYenRLEGdDIAXegA5UUAYbAJycCQHAmXpZmQS5kAtnWAmVAJyayZkUAAFpeYc1GQfYiYYAgAa78m/fuQQHiKEbKodLmAFzIABzsAbdUA0ZwI5rEAAn6pedYH2vaaUZugQGMJMIygRUIAVScAPioAr6WWQziaNmKI2bSABBqpnndgwPUIRKWpBx0ImFyokFSQGdImjE/xd0RccCRod0FNiE8CAAZyAAUwAPUyAAlroGS3mi8LmUZaoAGVmlkfAAfCqkBbABZQdrL6AITCAOCXoBBHAMS0oA/Sl21bmJg3qdSiqoSuoAigAoQ1ChBCgCLGB67yCpGZCp8FCpU5ABnEoN1CoACkCit9kJCCCmuFmOkICXa6oKxjmnMeAAmXkBi1CcN3Bo6IB/txqDsMoEDFmD1zmNhIqEcfBgbvknVZCJEoCsgKgLT4ihlPqsz+qs8FCtfrCUD0CmfAmfKHqXR3it2Oam6IAOUqAIjrAI1kYA14YGgyAOtMqWixCDZeAIDPmgNpmkSPhzvnYBgAIEBMBz/wqINv/LfWuQpc/6DtCaqQJArdQwBdxKph0ZAKGKkXc5gQlwrWvqABQwiOGnB2DwAmXAsZkodAZpCme4CI4AoHBZg4OqpLzKiUWIrwZwDBsAKGWIZLrwDk8IiFEwBXPgrALwrJg6BT5LrWcQon8JCggQBhl5kUo7gYUQBtcapM6ZmTGgCo5AcxgLBoqgA0YKqA2rtZVQBURwAzcABiN7qIXaiq/4inf4c+8Ws985AANQmDz7DroAqRlgt5VqsHU7rdSaAde6iUa4ABNotCk6uNeqClJABYqgCOJgtcMJtejwAru6lg9QCUxABJl7AxRAAGf4ua7oioc6joX6ADD7J2XgnRL/0Lpuu7rvQJ+V+rOcOgXvsKk/Sw3KIAAh2glMKYvnCZtIO7hLawCVEHYiebFyqgoNSgC/2W3EZ6sGWQmKkLlEwLlgW6hFKbbqiaQGcJp/ogo+KgFPqAtGJ7uaOrvUwKl3i77LwA3LsAYIAJ8okABhsADVALgqDLivqbRr+mCVgKCOC7kbW6HA9rklOsHPewMLHJeBupR52YpH2YAPQMFmogeL8J0S4LamFwWvC7sJC7QfDMK0Sw0ZkADyawoBEAaFwMJhEAZ/K6YxTLHI2KDaeQGOAH7okJWKcAH0SqKbmGkvoLk3EAO54MB2WIQJAIu4eYfBSgVnEn9O/A5ua3RT/4zFVnzFQYu+7isAhcCtGJkAfzvGZMyXSnutaAAGwSuDaBCcDgABiyAOCywOFYqtJQoBrjq11XkMFEmbFKmkfcyAEWcAEmomCwkAcVABr+u2rsu+QKsG7tvIQKsMyqAGYXqbGYnJ2xoAl7zCR0gAxDm8byoFL+AItOqcwcnLZ+iXBnABsqYHyduTFIm04oiERUmEa+qkUiKyMRCovrypiRwFsUutyoDP+Vytx5zPW5ytX7wAY/zCfDnGR/hgfHoBMycF6DC12kwAUhoJ0QjOF0BzeoDN5qyXEkubLdvHhep9ZgLABQDL7eisiNyEc5ClVozM+9y+1KAG3MANAsDF7//5nioMzWHwAWEAmwGAAggwgbhcpD15p6rgxthMAQCwllprABRABRdLBcr7ndaHtAEwjhtptHeof+4cJXJMAAkorbFbvlHAqWeAz+6LzNXqwcjMDXNAyRgZzR/QwmT8t+iZaVAdmgGcmeL6As+Y1Fpbx5H5plSQsuR4l3ZoCq24gIJ8DIoaJVVQnQCQik6ZpSCMyB1MrWrA0u8Lwv3MDWdQCJ2AAijwnj6NyXONAJf8AQnwbltGBVCtscZLfEvguQVJANrmamXwykYosXYoumaqAJ3QiUrsI0CAbqAXmLS7s5o6BS+91txgxcScz9xACNyQAZM82qJd2s6M2mNcDX7/kHcAYKCDUAXrKrWKQJ0PkI5x8JdMDQH+iYmBWoT324DjaKZ2GAnaKSVN/IkHIAKkWgjVUMV1a7eczdKNvM/UENPw4Ac9DbE+vQCoDc1/+7ctnAAGYK4IXbHrig43IMeBKrolKsAHSgCfC9wp2oARXKajmt8/8gKqCWciwOAJUA3d0L7oO7tl7b7PPcwIns/LIAB+kJShra3cPeGYvACqnZNDoM3GCgAFQJxMIJpGPI7hrZ+wbJdJC5tEHItmKtHDrSLi4J1LMAD9fXQqPAcNYMWMjM/cgMzRnePUOsJa7Ac6va3c7cw4HQYtzNRDANVMcH8xUAnQWAHYZ32Ceq4O/3AMha3Jf2yUnfCthv4ADqCTKtLE7ZasvGmelnrWav6zMZ3M+uzIyjDd1OAEQV4N1aDC1aDaNw3NX1wNFeDk/RmZs6YIFEqREv2Kn+vkaFAJD7DogYuXRnuRWK2ktv0jFfpmLDAAcOsHCRDXDZDZBu7Sn+7mLK0GxJzgMU0N7zAH3dANH7AGFPgBdS7hOf0B4ZyJTlsGb8rh8Wyi6hkHuNrrv4609i6xECsDMlCOhUrNPjIIqhkJAJusTUjnY9wNZ6DZPV7tnG7FMb3tIIy3axDXcn3kqG4Ai1AGvY5un6kD4lAAm4it40gAMUDvGt3T2woJEQufpIqR5Yiq3asicv88cUVXd04IlRmg03r+swbO0m3e8w3f3G5O1pia0ikt1wvAwtWgAATwfaCsxhZah5/qisNZCa8IsaGNAN8Ksd/6rQGg8ncIAOLgIxVKdKSHyE6AyBO/wgvQDUKv2dVu4C8t7Qqfz9N6Bmfw7V1K49++6gqgeIPgn8g5pwVgAFLftwQAARvg6yIKnzQA4RkJCV7/rZPc26W7ImTwAHJ4i07Is8s9BzpdDdF+1j4/6gpPzAJQ95q9DO6b2WfQAHjfALL/7WtQARegjaM8CISYvNVZhEwJzpm5AQ7w62RKAwiQ9B0JCWWckZOs8tHY2BgCBHs8dxng+WkPwltaDW0P+2////N1j9nJrPo/Tw1ljffmn/cNsPQXUAZGmmK4GnYjXahdzJTDOfxxAJ8yoPwsvAZJDxABIEEKgCBBgE6g4jwoYMXhQ4gRJU6kWNGiFVUAIonIMAfeR5DwBFCDN6dbt2pzGjRQpowbN1ItZSqjRnOmMjU3ubWkllPNGaAnG3RjBKCAKlUQCAA40KGIDwzHQHXqZMoqgQIUCDyY2kkGggVhCxUKA3bBWIIIQT2AcNHtW7gSLwCokOGdgJAgBZyh1u3MnJRnZMKE2XLnzJw2E8vUdtglTpw/9xKtUGDDBlVFIPh4ssIEAKlUQZnCqpWr104IVCMI01pgmIEDq5qK4yDu/23cFC88qODEyd1370IKGEntzBTkiV9qa+zy5cyaMhcbJuT48U9qxuf4IUChAIQiRVaseKLCBw4AcWRQ7WSUgoM4UwuGDRN2QX1IYFUHQNgpDoEychMQNyJiAEAE4fLSi6+99ppCDW4IYU4bl0ix0LqbdOJGGwsNI0UN4874aTsCVKFAvBVUeGLFJ1oYJIYH4pCxtK3i6CSA+lqrZo0wCllAtdhAWQ8UAwCgYEAk3xKHjGP8yECkj4QTjjji+ApKsA0LGyzCw2CKybnnNHyJG+PUMDMDABzwYbwVW3BTCEkkEaIYHwCIEasL4AOFv9bqq6Y1+vaDRIb1EgJggyQTrf+oilx4e1KkKaAkbooqQ2xAMFJ2Imw5Qqp7KdNMCes0TOeqcwkovJYAoAMfVHCzBSGgkARWSWYoQZIVCDjmv6xqDICs+1JagywdF+BPrU4UAAAHRZuNCIhGKwiuQZFGorLKS89oQDnnSGFOQuce09RCTx0Lk8wpRFjVEw5CkDVOKOIdQQV66S0CtEho5Iq/BVBaoJpqCkkAWLESIGjPJRwI0FlnF4n2N0qzI+4jaooToBuTutl2zE+/bYwwwzStTkJTNd1JAF0kMKEDTzzhQYMW4hyhsxM4aNnmCUw4IBIF9J2KtX7Fao0sgHcsBCFCIwFAB4adhTGOCqJwQiQGrSX/jhpKBRhqJQifg6nTb001Uw1vPZVw3OfgkQCDDibggIMTQtDg3RZUWOGEFFs0D4MDFKjA505QUK3PtNZYI6UGBBgrAELjAGCQppudi7c1MpgiA8snrRbE7M7Y69IsB/N2wpf68gvMTceMSWWW3447BQ1GkPVVWuMUYgUA0uu5ADT07CQ/FARfDZJC1pijoznWWEA2x4+MPFEDeSt+jowvxivr7GoyEzJSDSO9pTNOIruxUdGmZt234Q5hfVffjVMSRBCJc4WoFNj9vV2pWm1/HKlPifqz8AcUB3De85BUgPTUhXomqcZJunG5qy1GMC4hxJfCxBwM2QRsEYpJYaaw/6r0uS5u7opfnGLmps54AjSguB8B4oMj/eyvPij5nwCqUbADNMSAA3oBGWLkpDlMIWMas1Z2uuS1MelEG4QAX5hyMqEKSsdzy4JbzU5Qs/XJDgojmNkTNKCBEEyAb/EBRWn0JDyzmCUsN/yX/+4ThgAk7AU7FJAiyKCRulCqI9cSAMeyMxPV4aQnFYqJtiIUGWpsCjKR+SC7rvhI9Y2ABFtk0Qjc1IEVUoUAldCKjQQXFtXYR0c7+oDhejSWBCzBBEyjI24c5qjfXK0lxeFJxaYQvq5lKjJq0IKFMqWGbvBSl9HR5djMdJwD4MAHIryi3EhQwvfZrk756wSNbFSQsv+o0T5/CsOOBjYQBKzBDwBYWCvj8sreiGQZ2UPOIJXxF5UAUxlfMl0DSNGpe3JjKLw8THSkY0wQSUCZzIzbJmwhv2jG6QmYDE01s6IR/uRHjQD7VwMbOAdigUUATjCBOXHjiFzEQQTqJARJqOec7HRjAZc6nRbCV42VnEELG3znxpZIKp+MbSVTWELrHnlFDqRgkvGjpAZUcILPxEeTEEADABTwmvq80V8NvFjylBeWbhRiCQX06FsWoRFdjIRM8DBeYtQgxDnw8icisg9LtKWF7/mFl81BTIh+sq0zDGCgQIVbuxgguyeE4JEq4ADfFGAKTRZgLjwbmB8Ox8aUXCz/W1oDSgMWkIAK2KarcIERgooDjwwUQiVWMskZnvMTlYYFQmoAHXPemdZefgwxImLtpX7CAhMsM4Rvk5slAxsCFUChBXVaAn9Q4FCt7AloH2DjGgVQWpcsgxsvLUQFHrdZtyhCV0+a2F2yRpxu7AWlfbEPlpSxkjGZTqZcekxLzqqtbR2TBaxKX83alQIGxGuLWhwBJiPBn4TgiQA/a01qdSSUYLoEQiu5bCEAwATsXuSrS5jacPhouZo8x3Qr1cJztLVaGvLTa9LxS3xz0gARqMl1IVgxf6FAghEw4AQYoEs2A0AjUEg0qlhVida2RRM1LONiACvEAVgZYYoAAQBL/9AFPIIDEoldL8OC1JhlTRsmEXnOgTn5mhOPOTacnIEFKlbf+q64ib+OYBOCzdmSFbCa3V1gwKkZ3L/6dRKgdO2uVe7GGpbQFiRTJAka8UOFq1WxKJPJw1XG1Jd8UrEPV+imPMkz13pSMdyyjF19XTHOPGCMAYTaD/tzqJzjIBAcrRFgDmSJPm1Z2YBZ98iBhsigj5FOvFiNJH3sp3EulmcMIRqQG2qOcfDKNRDRhKOablmzJzABD2CAb6EOqxP8QDiHFmBfobxhxho4FCshehnaQkAAKqAuyNEaIkRgkh8ShGhJSZcaMcmeXRHjXtSRb4nLyJBxuuFPNK3s2dD+NP8GBqCLZQj5Hb75yLVDeeMCaLsCvzKLAy1ejRC5xNj3yU8AEnCoWdMaRtL6iMWII+/oXJomg8ypP18CNgnRta6emwk8dDEAaUv7AAfPgADU0CkJHCCsZOJRKHdXAANUoAKFMItFT/LtBnDKONwMpeEkUCIfDGFAtUjUVyvQ5OF8JOHcWKc/L332RHptZDc11U16wrmW/DJC66QSNVbSjZlyYwA7D6sAio6AQhw9Do5t7r8c2C+ARcgLjQlfald6vI/o4gAmMEERbmODF8yAFUmqApN0cZeJiSSRCUf022vyx5DB5GMYxGD3bLJyUbnEC17Q5TuFogbmrHMZTmjyFH7/BBaIFyASCVBJW+8evsSdQUKL34ndv00luoNkACZA1EVmpQINIMIG0HuABPJSHEII+WrZk4kRO3X+6mhj8eVaZwZpojXcr55CiBHf7LkReSeA1z7Bj0QFGqitylqJS6GSCdEGfuuciRkJ0iM9eHACCXAAJkAHiWCFFliB9NGAL9i8JHEYqJES0aOGdbIwYSMT6hgTkvmYJEovAVCVKFiCA3AqnqAgLPuTajgD5kix3BkAeKgYbjq6JXCsk8AqVquyZSAZMumciqGYl0i4hMOLyDsACNABa3AIGxCCE2i2drEAG8CFRAECH1IAu9ALKqmWXJMl6UKd9FsiDmE/eRMA/72CgNzJHREQAJvgGDK5GDx7iQ8CgL4TACEKi+D7wTV4ujUSiqHYiw0hhXqrmOIowlFpjERSBiFbBsnDgRUQgidotpYJAVuwgAgohUAIBFwYRVwAB9x4Go6osJFQkEbMjnUaGZhjO9ThGAFYFTHaOwl4B+myQ+bwt5NIpNwzGW54rhtKAKyohCVYg895uhrUlgYRgNa7tLJziW+JkJi7qSxxw5W5Gd4iAQuwAFuwBRj4xnH8glBkBQ10C0cgA6jhCCd0MjIEQdIDQbIrF2u0Q7IbE+laBniYPAwAOwHYxeqoiW8xtgb6OQMUARdcMrwADDgiAAgQPv/bGo0JLx8jwP9vYcK0s8bzY47FW7/cE4Cm0LR2CQEGgAGUDEcYIAFbYEkXQMkvAEUbYAUutAh0EoEKm5opsRjxm0ZNUYbws8PyKR9+/DzpWj6PJJ/Z04aKoaErEwACcAAHAADv88M/CT6oKYRfGwqLoxJuWMolssdrjLnZQ79e1AW2mQBHMslXsAUXeIUj6AIGmMtXYIAjUAf86oIugAEjAMWapIhFcCEniRIo20EQdEVX3EeaYEKBfDn0I4QdnD3JnEzKXDxSIMZq6BpuEAGcXAYDnLowODoF6JdL6Ylu+AAhJA5CmExs7Ej1mxCQVL/FW4bpaxt2CQE0OwIGwMsU4AEeCIEUCM7/3hROHuAAHjiCcYwAUQRMGAEFjhC9BGzC4kDMlmi/IszH6pAuNSSEAXCC5atM8CSFxgsmFbwWf1sA0fyVvVinD1AAAzCFAKiGkZDNpQSb9RvL1VzK+qSGyfMAtWwXDWCA3vRN30yB9SHOI3hJW4CCATVJGIiAdJQINIiBGKiEpcgdAziGSDiAJVgCzsTJXBMyetxFE+yU+0w4+mTN8MQa8fGUoGsyahhIlQq+pxrES0ETClAFpCuEDPBM1ixANfSC1VzN19xOyGQbLpiAGjDO4CTQAgXO4GQAvXSBUmiCh/gCC2AA4ByBGYCLYigGRwCCRQiPIriAFdCB96iECjDM/10Ek1FJw4/5zo+0TyBdPPDJTA65vz6STEicA2OMuD3ppvACABTxgQOIgh30SD4NG5IhUrAsQEIQyQ5gmRpYUgLtTSg90LlkABJ4SVA0RYcIBAsogVtpGgDIvyK8TiN809WLueUbS/IhSyGtqZe7z7Jsjm740wKIj25qgDkggPHwgQ44OHiQrkd1VbAJSyIltgnZPbah1LfhgRTYBANdH2uVmy9igC9K0L78SwMqAD8IyKBszKPsSBOtT2S9x+8sKfFJL3jgknoTgL+JuEgAhQRoo8nrAAyQAF1AVc9UVzUMWJiLxdxzAgAwgWergR5w0uCE0uEEzt6CAg3wTSWAgf9S8NamiYFIEFd525IIUVbXPEEjtMYlksxl4JqzYYEBiFF+NEx5xYpdzTEaAIs5wEnhEKLD3MFyWTtlVT9kdVW0RFhP6IGF9U28ZIBN+CINaFhpHQELwIVnsAAX8M0uMIJSfJ4CAMN5BMFhyxLX9JhGdUz6ZLwG6LDGeEEBCL+puRoRgNn4oAG4DaVVZFMonIslKNaEG5Wx40hl/Vh4wAChLdoC1c2kVVrD5VRf2D4rKIEWCE4XMMfIyVplJMOREJHU4xhklU22awxFpT0RebllyJ1ipQZ/pYa2jbj4kAG4FZxuCp/v0iyMuJepYcKA3Nuz2UcJcUMM8IAgIFqGHVD/aoUdw+0tC3iIGWiBE+CBLviCpiGASHgUvVhEEoXFs/nasKzVpSyTJRwA70tCvMgO7og4A8ixcgscBJDP8RMAHXqIDSgAB7hbiRlRxmRMksA5LlBY35XWAS3QTUhaUl2fpR2BZzDeJ+ABBhhgZ6kEUFgDSVGJxMmOZEPDcjXRmwqbziVBCVkGVeHQA+hgChOAto1IA/gd+giLOeCLJoSH9Y0I7wCAcL0a3ZvfFB4AY7jfHjBOJ/VNa/0rELACG2gBDWgmBLYCVpiVEmAYF+o5AegIoZAYvqBHYWTVxYOiRJzML6mOWoy4SiiASrDQA3CCFBNhEibN6WxCXQC0ipAz/7oo1oBUpxhOOHjAOWNQ0vzFYfXZBBU4YoeQhKNqF0mgI+fFHJGgHoy5licWyvLxlo89PwsZ25b4TAJAAzSggAvg4ql0QAcQ31+xNBI14xW2SQRKp+FgxI9wAjlOUoU14PK4VhXoUuO9GxWYwucpAxdaUyfrCBsNjLfDXEfkGAs2y6WMCSx2gEVIgkWoZPc9kIQRXwWAKZkyW30UgHdA47fQgQuwUAojQ8K0uVDbOwwwBhUIhIdg3LjJY4iwhtv54+cZAuedXHiglCozic+RqStLvw2q3vN7OW9hvrOBSqQ4ZktmioQR4QBYKbFdQjJ5h0+OCzkjgLuFklI+uIDEi/8DUAWJEIIQWBGJqBUDeoEkxospAQwBDB/K4icSfY6y6Vn9rM9MoYbuWASAdt+pXOZdTYCA7KXHPBldcAAqSJL2RaBsfgdinRgAmIgZgBMhwC5ajgMG1osMSJyTmAPiiC+NS0GxpdOPfFRFPBRVOOYKlUqmcICIHL4GyDBOITsQhAdycpZMXopclJIcooghmAFX7qp1FClDKznPsR6gAMDtScHthKLO5VMyAQA0QApK5mILTZOIVADRio6X8IKXGyvDfh4IcAACiMqFVjcr0C6oUUU+yhi0i2CPDcuABU9ILBGkQANkXuxKqOThmwPjGL3z0z1qkIDq4+wIc4QYSYD/R8k1qlmgJ/4jf6IgWBSVweZTZTiUQRgE1o4BLs7sSojIOBCtmCpBtBYAFrgA3UayRXgABVgDSjk0iSHkkaAJjrlcvr3GFJ3i5T7sQTARCrXQLm5s4/Exs/YUIXMC2O3uroKR8I7H7GlIqYbsFAwVzPXI/KzMlzAA+O7qSt5iLuZiQYQpMxm9ehwrApgj/+4qH6qLkkM0a/kLgNkWLdDMMTFtjylA8GxwNBgEHRiEmNbiPKkAw1k1FNZHIYMHAoCwDjcnO3oAnAyJ7GGQOUBN2+oYngXJgZVTwjYAVRiEMnCEGY/IsZ6eBoHi8AvBB/txc3KEBPrt9NUabgqLsoWQ/2QVbHuGoso82xcfBEdIAjT4johUrKy17pVQwHLl8nLycgOasMrRC8r1uwRAgE9iCcOY4tdk7yle8MnkBgdv7jIYBO+AAEu380gohGroubLG8HFVax/3cwMCAvBm4ASpFsr9kUPPb7pb5KQET8nkhkigAB0ogymv5Au49EpWgASAqeSrXS6JVLXWOlH/8zgI8JIruauZDDWy3OjyjXeI0RRtb8okha2CcXFw7gugUFx3AL9ZKc9JzLMhO4Pt82JnGABfgwQpQ0YEimpYDXCXifYDwXPNalinvSV4cUcQBzGd0Pm+ZqUrhEtpgB1hwtoG9XN/nnRfd1RHNGBagOBBgP+yja4lRNGwvHfWvPYyEIc492rovuYlqIB7bYA1iEoRkMdU5fFQT/hmcYRKgJrKebLx65yHD6UFMC2caD5VVdRvgXVt2Kp953ggSAIKrdBdT4BCXwAAyBPvY0Kye4ceZ3mGWQR2TAAGXtsiqhKgmIPfAwuWcMUSdfJ71wYJuICg5/ck2PZr9o4HiChQ+I5Trd19RHipb5bAhBroBe4y3Po/UY2VyJ75ZfRkrUxSEAEKOPs4Z+1K9o7xTYgHmMomk/uAdAIAqXu7D6lC+A1Duxaq4cGyMPMndvoUN0IWZ80ogADEV4VJXnul4Bn7iYSpQXm6o/yVt/wB+arw/o3vs5j/vWajUGoAxlzMl7PgRZ9MQnCCApBycRB61V98CKgEp+L1+x470lvitbb9DXwAD9V9eET1BHyu+vB6oJBHKK5HvWX0pVRh5c92IBBTXPcO5+V1q5d7RtyOLsd+JIGRSFgDnQQIeAIFEBwoAJ6AOYUSIECw4Ay1iNyoLavIbRm3jBcJEdKmzQtIL9oEEFBVRpw4R46AJLlQ6QKaAgUegFKgoJCAZdQE7JyzpgIBcVaGEi1q9CjSpEqXMm16dNEDBWsyOHmHkOBOggLObO1WbQHYBQ0aqMlYUedFsxk7ehQZcllJHShVOmr58oJMAJEUgCo0h2LCatUKAS3j9DDixIqV/0KVmuFdVYEIs2YV8HVBQ7A6z1pcW5Ejx7ba2C4DYHJuSiB4L1CAAIHAMVCgAoRpQG2O4AWFAhBgsvg38OBHY0T1UxWy1ataISbE3dChbYpnKV7EyA20R7YeS59GmRovhdYQKtGcDWmN18uQgPoW7v69UyLkFVAVmByhQZ5au4UVy9kiIdVhFJpHBX7E3UlzAaHKBRCE11oBBMShACSQLHBZGAgEwJth8Hn4YVGKkBFHBWs4Ac+JBlEzmVYEeQVWNw38Z11no9noRUcdecENAGgkmNoi4IXnmoQTdmLhAmFkGABQL4D4pIcixiGCCMfddxV+kiV04YUyorXZWZ5dx2vNaKARskwkFJxUBUosLRIDGmg0GGEccYDSSScbQtJQAEs4ACWg7ilCQCRTPYaiVQdlMEWLBOEWRm7VQETNRDktY+kyWnCjhRYWZcrpMgosUoUipQIZwyKLyBnDTHbKJgMkFAYAiQEFBPpkQAAh+QQJCABoACwOAAkAjwC5AAAI/wDRCBxIsKDBgwgTKlzYJBCdhw8dBmoybaHFixgzatzI0WITiJ8+IckxBknJTxEDqZSzraPLlzBjZmzyMSSSkGNy7NiRA4kRkSE/GTFyKtC2ljKTKl1qUQ7EhyaRSM1RI0iNnVhz6OSpBEZRpmDDKnVIJ+hIklprcPHggctat0HiXuXBI4WLU2Lz6s1I1sjZrTuDuPVgzBjbDh3WephglW4KWyD2Sp5M8GPZsyWxVuViDAOGwmwnDOYyoQcHuhxsUV6tVw7ZTzl3ah2zQ3DbwsYQi54genGP379TsB7OdJtTv1p3VLWqljDu3CZ0T/A0gTAX6j1qCCfOHaZrIyWjjv9p7vy5c88Y2vYG3bYGj2vd428EQeenyJxpFZtnj3hwecPtcQCffAQuJMdQZcW2HFvlfeaceokRhl5hpJXGQx0FZojQdwoqpth/7HmQGGLP4UaaJxwwEJmGLA7klE5qFfbZhyUCeBgXuhHGIG89aDBgiy3KoURtnHVmJGKHMYjYkku2xWCFPaTwhRxAtrjNFzyQZ2RhTLrVn1triYZjByKydR0HMFBZJYtYblbeg+rxJuecnqDIwZ3UTceBBnitqaEFIbhJYgeG4ZYYb3feGUIIGqjAABSQIgLFEyqEMAIUNvipYR0pECmiZ2Qy2QGiJ1R6qQWoflEHCHjgAQIIddj/8UUEK2pKIAi2VEWYCSZgIOqhKDYKRQlfFDurqyAEYsOrr7Zqa4FfpKCrMb1+ltuSpEXJgC2IGFtsHcgyKy4eaj7bnQUc9LBWZ9GJOkEHnvCgwSu2QGHBNd6GKy6zmZp7LgfNcfnrqByswIALttRrwawRzLrvvv36S9wIv0lo7WFLTsBBCAcnbK+3Eej7sMTE2cBAD0FYnN6vGq8wL722wJAqwyE//CpSJFMGAgM8pNyZg0zyhmIIKoxAQsK2LBxBw0uLzCzOOUsGAgw8iPazoV9qzPErr7iAcNI0Lx2yyOVGvZfJPUsIGmj9ae0o0goby3SrrgaCR8hlm50XHoFW//cmxqN6UioDMJNwNKqItGDHCE9cemwEFtiBod57Yamu2riJGPieDHTBtS1cc80AAxo8EcIKjEJRrAVPaNAC5Xuhyxtb1l67JAcnbB06A1tDakEEdSBitOpfSIoIHrDrJfuYhAqsm+AaEC46AyRAgQgiJWQvq/FLL14C1MkzVQIHvOFIGphxTjA414ZHasEIKsQ/QgnBK22HCiWEnxe6KKsfvQYh6AGd9tQ1pMkMVXaAgh3oh4c6oEppX4iY/sCiAurwoHNegwEDOFCnoREOYQfEl9hcVYcSokqEyJugWGBwpy4coSsugIEGQ3CnE6Tgcx47odhCVsI6fOEa97pGBP8kqMKlwKALMFDCUGBwBBi8ogukk14BEyaza6BwVXf7wgPxlcIiMgUPMuxKEpWgBBeEznBnhJkMlVazLCJChlacnBeXIgcLwCCGMnSBGEnAvtCxL2YnLNbY8CCppAmRXHNkyhdihjA7dgFhJBjdEz33xM/BEYV4+AIUYrbGLiYyKXjoGh5t0QVKjm50nivlI2GWqqYhggQuYEAKoifHTyYFBo8BIQxsYcZTSq9zrzAcFZXmxk3aggQwsKUiGYVMGYLuFZuInh+DKcyYWbFprdphBJTJlEqh0msugCIq00hFOMqNbszyJDdlEsUjlHJ6wAwm+6p3Qiv+sA7YbOA6jfj/inFOb5rUHObCrnG9hdFMnfuECRRCZ0auQZGSDlUjDPAFgxFQr5qI2GZCkwIFPr5TlQ8F6SPLaUVEcHIoVkToRjtSgmeGTpVP7BxMjwaDbhXLnsaq1UphUgfQhVOkDDhCPHEIhYniC1/eyttON2Kcnk4SpEo4glA7J0mvWfOHWBWkUpeKEePYwAI+nWYpfalKcBpSkKdoGlc7YpyG7JKPYg0pVU/ZhYQZ9BSnuJtO14oR1wTiFAhzqEhVOdUUnNKdeBTh0gLBV43goQlWtABc0/jSsZIuBZg95ecQgaq9NlYhiwvE+44pun7OM6aj0wBmV4tZaSJzSp+1iDVacIIT/+ChBJKcJuEMN9mYYpYHKbIAGkAwKyLG9iAzaMEKcIADISR3E3wknBTRCNBXrNYWdajFcS9iAzus4F0YMEEWqCAER720uqE7JjBrWgcraHe7B7GCDWaLjQ70CgAAKMILhkCp3ErRtH+0HqqyVwcb/MIbtbCCFKzA4Abf4Q5r9cZ8vQteABwAvxAYwgvKK01JHo201PxYwxZmBxC8oAxSsMYQpOANOTDYG7/4hRV2Ot8ZPOEEFT7AASRwYQcwgQr8VUGH6YWqYxrZd9egXwnsMN8YFAEbWRiChl9wAzBY+RcbnfB3EdMrHe/4ywQoAxWkwOHojS5pdoTU0TpqAezVYf/JNrABBRwAAUEMYgN4psAGylAGb+xzwiF418+8PAAJDKDQACDAIKjgDTA84QmbOCWarQepelkPESW0wwxs4A0gkKEReA61ngVRhhkrU8s+6AB6Dn1oHrO60AegwAu8YYU8NG50RuOs8S5d0OC1oA7euIMiyFCEIoRaEMgeRJ9tOV8hYKMROLjvhXdcaAlY29q6KLQJUKxgIbTAaO1rM6QiVdD3tcAa3uDEDWKwAT3rGc+C0AETmDAEa3jRGjPIwgpSbQL8GsDLB1jCEq6N7StcQQIAWPSBb/DtEbxiBJwVN6/vZQEN2MEav+DEN2IAhCK4G96LFgIOfKA4/VkjD1n/8EGqPWPhSHhZ4DCHucGvoIsrxPoF3/jBLzZsNIijatyXRhXvSiCFH2h8EcUINbzt/AId8MoEOMCGDih38pTjwL4YwO8BIsH1gB/gGAqoQCQELoJkRCEKTrjCEgrAhBv84AffyMO3udVmSfFaeLmbwTc4cfSOv3sDyS7DBlie6A4UIQs5o0K+G4GYrOt4CWOHPNfjcAywc33sIhBBFFjgBBYswQFlcDvfqdCCJ1TvenZHPRRCcIIRYJzv3wACEBpBgVEjm9QbIIC/DYBfE1AA8c+ygY19EG3HX3vrl+d65SMhhkgoIOzJcIITLGEJFkigEmUgwt458QMbX+p6JUA9/1g1sDGiG53vjgBC7dcP+EEwIff4fYAB5o9fBxShDH6yhh2eQPz7AsDaSyACS1ABz3cMlycGlacAXKcAsRB9yGAJyGB9F1AGigAG5/cLTNA495I9BbUJtfUEr8d3P6AIfrd+FGBn74dfADB/Ljd/vGcC9wckZYAN/Zd1/ydw1iaAFZAACiAGCFh5YPd8zxcLZZcBltB5scYERAAG26dxeSAEnPVmugZAGjADUsB3WEgEJch+7kcBu2cAx+CC9AcAHTAILJIFDuB/EhBzAVgBbvh8zdd8x4CABeiDCpAACZAB0qd2FKAIS9iEcJcHJQA8b2YHpKMBUGAN55eF6meCJ/9Ial64gvI3f/L3APLXe4KQIcXgAMYHcyJQAQM4gG44gD3og3MoBgFQimIQdiIwfU4QBSJwAYpQZb9wfm/3DVSwKrEyAhqgASMwA7WIhdxXBerXbuuHbGUQiZY4iZS4jPjVAQVSBRfQbwEngGyoAEsghKloh6aoANvog24oAiwQBRlwdpXQdky4iLeIbyVQek+AacEojDewCIvgiI9YBhcAAMs4ifvojASwAQTiCA6gdQEocKAogDr4fAGAgKsIhwGwkD64ihVwdhQZBQnHhBmHhW/3A1KQXI92cRkpjN+QBDEAARdAARBgkhCgZ4MAAZLYjzD5AAAAAfJxAxdABjf/GHOjOHCZR4Cl6Hx2+JCmOId4mAFm13kSQAG0+Hbcp3NvR2aaJgXxqJFVQAYxUAArWQAXAHKCMJAGAJNfCZMFMHXdUQUxQJAw55MKkAzJcAVuKHaqKAad4I0+aAoGsIoNmAF6uXkDgAMvIJU69w1WBgY3cANUQAVgAJiLyHdgEAO5UAAsOQiDIG9/yQQOQACU6IIxKZP/GB+CgJMAcI1CuJaw+ImRQIA++JAPWQERiYrZ8JrJwAjJwAIsEGs6oAODIAgXsJLxRm8voAhM8AIWKIwjSAa5QAAOUADKmZIrSQEFIIli6ILH0I/4RQHd0Zi5sIJLcAWfuIPeiIdmV46f/0iXqBgL1fCNqRkLepkMr1mOaXdhOCAIG4ADBIABdEZqTMBn8nYDwfgNi5CdY4icWFkAuiedYPiVYDid1EmT3OFp2pl5PZkAAbCDCZANe5kB2QCLCjB/qxgAnWAKH2oKAZAAbJkMePgBm3dwBwABTCAFUtB0zomczZmGvtd2ZYCTy2gABEAB7lcGOkAAlWgABWgApvAAYbiPYQgAoMcdgpCdkSAB4giL2TiiJHp2eukEGTAFc5AAPniXPtgJIdoJeDimJJqhIqCAAFAAgqAIYyYFN8AEdwYBBXCZ+EUABNqM8kcAOqAIL8AEivCcCKoAYRiWllikRoqAOpqJw/ECMf+ge2R3BVGgds5Hoq+IDAIgAMgwBQJADXMgApHgpWIAoqHqjaT6kCTKlmL3b4lWCRdAanx6mFaGmEBWBoDajASAgmUwCDgKhoi6jKYQqgwpqLwHkMOhCLq3dQN4BbR5Bd6YDFmqqVgwBciADFgQrVwXqqbwqyCqmgoApqr5AeDKgwZQAO0XowLKksF5Ay46CAW6j4LgCGWQn7p3qGLgpYXamgr4qTNJHGWge5gnAspKm1EQnpoqAFOABdM6rdTAAqyJrdv6kGEAkagYAGbwAbKZAMegaC3qpoowCDGqggRgpxdQAHj6AGE2izfwp0AahghYia2ZrXMZCWHIoKwBBNn/OXCcJ326IH1RkA2XCgvVirDSigXUYAlL8JXZCqKdYKoeCqZ3GAYWmwysyXuVwKPCKZUcm6sfy3WE+gAs+gJUxgQ4GoZAWHmtKZepyHUAcAEvwBqddrNlJ3206YpOYKmXmrB6GbQi4KVJ2wkRK6GpuLQBEAZhUKIEyHt1qqYUqK4xJgWESav9aAAZBrZgUJX6yKEReYoM2aUGmKZMwBrzaGGaFwUQWH1WmgGbirCWgKlTQA3VSg1OgJqjKqZhALhgKrgfMAeoOq5wSo8jG7IiuwHudwMvQAG5UKiWyLa/eQOOcLwGsICqmK112YNzGIYFYIar8QL5eACQinYJ+4rh/ykA1UqtczAHj/C6yFABCwmzS1uxHxALD4kAIxoLhJsABBhmffqXYMAEulkJKpho/voA2WqJsga2zKt7lieXESmowCqU9aqk2EsZeXCW3OuKGUCt1PqKUSC+Qaulj/AIsEANjxAFCRCmYJoAFWu73jqi77uQSloJEDAI6uqiYPACjiAIEICZZzqdv2oAFABkwukImKm5EQmR0vulXaporEEEZ7kEO7uzR4gMrlutB0sNVuy6TgALIWzFj6AASWsKKJAAYWAGyUC4qokACFC7H2AGEWsAlaB7iVZnbeei3uC4xUCyYVikPnyYjusIK3gMqnmKEnuKc/mDt8oaitDEuv9gCbqwsxf8ulN8xdXqBAIQwsqgDLuQDA7bCWkcBt1gBtUQBmicxh+QAGuMAGJwjjBKoMALmfhZBmd5l3r8wzQ8CLnwvOr7kArZg9IrA2BqigBgnashtv+nCw/IyCwAgURLtFdsxVhQt1tsxRkQAH3LwtVQDWYAv2nsvtVQymKgaGA7BMEJp40KxwQpyzJJy1JABcXgpHgYCzwIh2YrBjKgywgYzNn7mcU8rbrAApCqzM5sxZdMDdTazMpADclAzUqLAlALtWxcu2bgvuEqBomGlRuwYo2Wso6wCM8JebxcrwV8mP3Kq1TqjRB5iia9kMeAz5RRBo1AAAdQAVcAgQ//2M+UDMkCfdDVeqnUcNDKMAUKDaIM/QGEC89hEAvgCrXhqgAA8MY6RgAXMAgV+A2/8A3Mi8fA+s2CgA1DUAaCgJnMd4cjas9FDAkOvK+UsQGXOXBRQK1YQH3Th6k4fcnKgAWVDLQCDQvJEKYiOsb0y8ZzsMbJAK7VwKUEYKMXAMcyame56QAJKr3BnGFMkI/Op5BUyoOtqZoqzdKSYZn9FoBZmroIi6nUWsV0XdeWasl0PQVcCqLbSrigfM2M8AHd/NABYAAbALYnlpsX4L//Zm1uWZc9jJzOCQBcl8uqedTx3K0IAAmQAKYrLcySUQz1adwKkA1zINoP6Nab2tN0/w3CDdAAp60MsPABYAqiCIAC2wzK5TsH1xzRW5oAFX2CwbnOLzAIHB2azBeqneCDdgoBju18mu23tWu7D8nGHhqG0q0XoYtfBhgL2R2040u0j5DTA13hV3za3SChYCq/nRzRzpoNSM0I5WuiOqqCDkABZfCXdfwCm8irMPvNkEkAla3ZYx3PqfjOHD6zk6EIA/l4O5i7HPy6QAvCGX7Q3t3T3n3JH0DNYKreFAuuyaCl19zNc5ANCWAA7rcBz9ljK5mbuQfj2ZqxM851Czm4CQAJ8Cyh3xkLr/mQkEDRFzAZ7Pp/AeeGCVAN3W3QGZ7kRz7eDcDhKKDeH567tB3R1f9Q4pGQYUDmsQSKX9tJc5CHratIACtJAGAXv4MbyoCrmhCe0ELJ2XmxbhamY1AqoZ4czRZ+5Abt06e9pR6q3oRL1OBK2N0wByReykoKARsgbxrWsXMWmpD3xd986c9rqhIqxp1uqtnArRs653vxAj/+eAOIh+W75z795wdtyRZ+yXqt0LJuBqQ8B91A21VeypFAp00tCEMwZlSgCDrglQ6bsSeJmRMroZDwt0373FSqy58K7XpR56FYASLwzu2t7dxwydyQ8OO95ArP2reLABFN27jeDVV+66Xsw0xAAYpNrqGGwK79q5bO8XMYvxBtBoBr1n7LtD2YppKxvWs4gNn/kAzw3N7doNoKn/CkMN48f8mEQA3T3OETn+jkXuVmcOtSi319KgiPHnDAjZq3W+wcb+YQG9uEC9sIIKHw+9z16gBUoBdf/X8DYHCku54VWw03r+R0vfCEsPA87/CksAXUAK4KMMbXXL63fs20fakjrAA7qmz6icO694kmXOy5N4edQOjYXL8RW7tjjPL9jYBhBvbZeWich7cZ4N7X3A3iPd4L7/YD3erKwA1bQAqwkAHIffSB3Q23nt1T8PpSa6chq6bBKc5fjfhfXAkzXvKmusafvuaxENHw/MuR0Jl5sQihKQHUN62liwxXjutzEN48zw2kAPquPt5xzw1YAOoB/yDxsc36c1CwAvABClAAyQjTFc3rXngMYAoJKCDyWonp3ki4iS4A5Z752bDGEa3CkQAQADagIVjQ4EGECQ/GABDpihNLEZEhw4JFgIA5H+bMadBR2UdlpAiRAlmyJDduyghxmxIrQCcUCBZUq9atASycDbpViyWwzKALBA5c0XWFqAIFnZQqJVAg6DExAQKEqTZHQIYMyZJli2UGgZkwkKR2OnaAgkK0aQ8qKgBgCdGIEitigXV145xqAmB95LZlC6mUJakpo1aYL6GVcxCgiBlmQYOaj3A+6vbBTLIDDjYMErShgFCiIipIRdBJTNOgccRAQkBVQAMBXGPNNlNbqv9UBZEOQFDbG20VMgAkRJEokSK1igKQZbBJmNtIL1tQpiRFkqRJUn5JUfNKA8F3M48L79Vp5oMCAgQAVLogiDOEhgpuB0DvlICYTmHCmKmJNZtl/qoxI5bFlsrNAd8SPAiIXAyoIAOIkDEOGeTquogjZbgBzK+/UCJJQ5NAyq46bhpY4KvvHsOJmo4gC4CAQQZxQAIJCHAAgrYiCSCBBMIQ47QCKLiPNKrmwCqWD2jKBq/ZAoBEBhkCiISAFxS0sopcHqjgCgiXm4MiLCSkixpYuplDmb9KIhGwk07KLjpCqNkpDBpiqgYnWOTcKBkAKChDEAgIEMEJJ65AJopkELj/rb6gDJiqNf4yyKY2/viLhSsnO5GhEwUAGMRKBZNocNAMLEFmjrnmKoyaRyjLMLCQRtIQVpOm43ALwj6gM6aOcCJMgCmyqgCAIDegwAEAnBAgigQCUJQp+/ADj6aMzOixtmyyva2TJztFEFTfLgDAwWyUQwbYuWDBYgqcLOpmrwxDqk46lNT8iEQP/UJpp8VQ4K8BkFit5oMEDAAgPQgooKCAA5p9SSkghTSgk2mrWaC2rmqzao7bxNqRWHB9YygOCAWwyBKTK6KIXVZ3ArheDTmcLsR7EctuCy/i7CaMxRyraTwBqkmAgA3KgOCAAQ5GtgKlUFiqqQ0IMCCqqQTU/2/ABGbTqZowmsTtmG9D/o0hh76c6FyTpyisIjJh8Wjmm2WdudbpCNFOmSl0/e67Bs7oNSMDCnhPPaSLyhTiG58SY78Aweo6gaoE2Ikmr6UsQOy0kiDDAAUySBmLtgubAvTCHgGYL+v8QuyvlUCi7rmVnsM5TVj0ZgyBXlmdIxsRDiAAgg2KgAADCa5IABIDHYh2qv1osjpAavGqKpvRFDiGAMzRAmJzMbLJAO0pBGg1z0fWbhtewKq7WTs245UXJQ6jk447MxhjbIEzCMPCCRGWAAADHPgAGytohHBGoxT6oGZIjKOctfhjJthgZHeziUUCIgEAQWQvIQwygEOwcv+RR1REMo8QwKoGY5jnpER28hPJSNoUkph5QYYraQAC6sQYGtxJAFc4AAYcEEAf+GAFPuiAAceSgPpQAADHcFZtFnCxDHRFQHlpgPQmiMRjYFCDCLlAgyrghAxMYQ6jS1VhYDWYe3noI36Rn6zat4vA2EqGXkhJNRZDAxrQBwAAMAEOgLiCEATSBwAYgAQqEJYdMQoA8qGUGYy0kdp0Qy9lamQFFRAHs2zxIF08xkNMpRfkUGMXo0whYDwkkvb1BWczVJ8pYdbCVgZGQKUxQFMg0IggruAEIdBAL4foAAI8ICkQQ42jplKp6QWoRWbiSaVqUwEJhE2TaIjB5h5yHBP/ZmhEaZxOveLFxujM6lUn6earXPiIWNSyAI0oAiADyUsNqEAF8VQBNopQTaiYphJOWSTkrMa4WMzBJpDZHVaQOUZdmGCaBYlBLiLhBArNjEwCIMxHDMOXuclrlfpS4Thf1U1vYkEX/+uAEAH5hCfMcxMMGMETWorSLGCjEVPTZ8KM6UxK5UWgzrMKLJaxjI5cRRcdWCgaiBADA4ggotxADrvSuAsyvctXswoMm1ZpHbiZMnazAgw1ktaBDnjiBCdFqUtHQAIStKAFL0VpAZn4gH2KSwEIoEl4nDiT11RDJw0YD2SqQb1MLrQYBFiCJbAAVWpIaA6wgNUUptAcwsDx/0PXeV/6MpoheqEEMUwdKVg9wYFdqsClKB1BaU072pTiYImdgGuQlpgxZ14scnsRJUowgpEMiKBPRWXIANgWJkso64SweMQUHhGvwajPm/DC6Nx8pTqQMhUAJf0saEOgAtO2dJ7zzO4TVlBE+TygADG4wNSOSanHaKwBpKwXNS6CFT7xZppVIIAEdAEmCbHAc4W5yEWSixMNmVIZlAKYgENiUZucYbN1S4kTCBBA0J5glwwgARRagFJ5upQEI7iwCiaAgUg0q7Xl5RZYGilbvcARJVAljIWcIAEcLBQIADjAfc/2SRJKsIQHvgkMlYGT8JxBC9NJLohYVI0hT8eUJP8RgQN8IGEJB1IDFV5raRnA0uyGwAQAqIBLTFEJCJQ3KvrZz0yemBdqBMZtq8LJVQ4wkGnO+ACmMpWEJhK+75WQTWQqidssdoZyni4lZOpIkj00K2osAQdijbCUR2CL0qbUtBtuKQcw0LDviGGfEDDv1cLjV9ik+SN5EqWfhQYAbCxUVJ2E6NnmYhXQua6ieSqTX88AmJWw6MB9zhAcMYocAOCAAxHmAC8pbAsLl7bCUKC0CjpwAAkQKAxfhgCnFZAAxz0RMjaBxS6UweIMwSIbjLOgDxa6iAbZ19UU6S8aA/Zj5sLiMebkhtuUXCv3XQcWwR42lHepgVdA+tFnRev/hr1rgkImAyyaxtEBKsAjxj1GkqHmhoqVIYBY0OQxGbgCqqmgSUXE4AFLuC/b7Aw69lqUuaOeyV4Q8+OP0kqb4vyIAIJd3WEXOwWvQOukez6CEHQAAwO4gmXCoAAwM+zh4ZlJeKglADj6ZRcCqA1NOiJJSxygpHbQoBUW0RAbh2kihVExSrJpkjOcgbEoIW5lKQvDqmYIC9OdQM5zngIG2ELgGuiuD2qMDCd05ehJX0IFstERjdtEoN2wW87qDZkVkR05lhhAH4WQvTI06AqmEjuFvg3HUZ7dJABucXJj5SZZa2juHai73YtN4bO2VPYoFbpvnQAgBdzIAaLJhvN2/9IN4PO1L3CCI6nzpOK1XUECJigC5o7qllZPBAufD73oCeNuw1w0JH6hWZuwoPUJfBbneKd0d1PqAQxgQBeWiIV+gLR7MOYENhxpDiFkuIXYrYqU+B+lRZwwgAPAgRUgiOsKpBFggBKYgRmwgxJICEfIhWOogLOhkMGoOOQgnRPKQFFyHZnDP4+qFZKYAglgPU/AudejtLIyraCrsYrIBtZ4v0goFzYDvtpYr8aLnVGKOvyDHQvEAsrDANabgPCDp156p+uygzowiKN6AIeAKNLpP2xyt8CAqrLzpsN4nY+Kl1kRAPALvx64O76LNNJyKUsbAMPCgjlIAARADwhwAP/DWxJJugiX2QtVmo5dEIlVkh/8W4ldQIYBAEIhfL0rY4AiDIFdCoEnOAh0M4C38ByUSxUMNCGyq0JvSh93ixcS+YghmwK688IvBC28I0R54rsn0IAOGAAwoYYp6BExUB439BydeBfIaBGV2ENbabw5uj+p0wUMMIFAPAG8O6tX0ABDPIEI04AGLAjgaIgHMZnEcjXQicQcZK/o2qwKtMJ6qY4+nC4S7AFv/MJQpCd5UoETGLoBWD9VTIYwUCc3vBP32ojX6IhbW534iZ9c1MUfZD2dC8UrS4EQsLsT0ACuM4hVe5C5oIjjiMRYo8aVWLAU8jYV8rZxIjInmC4uEML/8CvBYivEQJKwCdgy+9oFQsACRFEnAtgKisKJObyJvsBFGXqTe4QTbvBDX6y7HuABHvBHQ+QAb+w3XkKEBQmOOMgGhIRGE0KsNJtGzQIpqDK7juJAwnCCHsIALrhIjDTBYfOECRC6v9sF/KOGDCiYpiAAyIEFLWgxt+kVl8zDmJwj6cg6E7jIb+SBf8y5Tyw2XmoBhNgeB4EowwITDJzGUfq2mbFDiwI9i7Oo2oIqP5xKYzAGD/CAqrTKCahKExg6XTgsxLCbXZiCZDBJw+s2lesxbmhL08zDXbAEDDAGIfzGL/xGnvzEgNSAJxhIg1gEMmA1zkM5b5M8M6LCcXI3/19bsdbhwNYRJT9MP+VcTuUcAFREDNCxG5whBVgwg9NoQwXIhrWbSeFCE7Y0zXvcgtRMP7mETbu8y9lUAb3kIrLZvDLSv6MUJQ30NpJgSMpCoxQqTf4zFV1YP8AEnYsYPnCaHWr4ACCpBAWIhQaYjgx4CywoTfBsSzaaSfKcANd0vZz7Nw1AQLQIuQIwgAMQAUc0oUiUz6NkyhXbH6xYgiXIgDSDn/uTTnrMmTDBCy0wzThhBHWqhGOIhW5LIWqwhDT7zgh1yz6s0J6kyxDwxww1Np5Lxt5IDyk1gAi8JpUJpUkcNMOcu/TwHfU4rP1by1zcgnc0A1j4TrvhhnWpj/9KWI1qEMnNHKVbkZ8inaMjpcoS/MJASgEmBcgNHYEkBJcyAAIguIAYcABG5BKoQrna+raP2AUsGIAOgIAOMAEHcIADOCxR8rXoMM2UcJsz+M4cDNIlGMsxW4ZR2kzE4KE5UFX7C8/7uz+vokoL7Tc+NcRijDJStM3siQEC6NESmsTQAz1VDDYc6MVKdYJV0R+RvJmYxBWqawC7abwtqAjGXAJXlA9IuBMerDgCEIS2uIJNXR1qDc/xZM1PNEKf7KUnWCsh4NXsSYIHgASogx9btMMp0DqE60UJAJ32ogbpBE9CqLWA9YLtCD0sqICmcENsQ1U4ZSosIAAmQINBwIH/OQO9ilshPYTOATAGLjBPu7SuTRgBKHhXEJimRXiAWKit2XHLPdwFXTjHINWFF93BqHPZZ6XOM70/plJF4xKAUm1DwxOAitvMivu+LCgICjCBfg092HFVqUOG1QwCkO3JnAuBFrADazg3lU1V6WTL2VkJ1ZlWOHFJOCHS6PgI+yPT3jmAhmCEfP2dV0yzr0UMatAFczOIRqgvMBVMQoDTlYhUDPAAqgXZDH2CGbABrqXXHNysMUVbsL3HryXSNcqZKDiYPQIApcLWCygABZgDr53Wv0WGGEMIHCCAzBTMVAVcSP1DdK2BdE2BeNLaokpZSOg29ppRtK3T2UHbecG//ww4GPWgMaD9Hc+FOrG1RUhVKIU4FgmgkMZ9DhXLQWSI2cHlgmITLRJAhECdphuwXZOZ3tjBP9UBpzEFz42S0JzZgjkQ3oOZs1ItgA+tBtmBLjjCAgn4FLQIlNTd1GENE968WxPIAmugghmog+6dJkVAt2PIgL4N3RvMmWlN3/Csx92dIZuT0j3ShWjCEQPIADgiVz70qtJNi9NdAoqYRh80is2jEAmQr6I6CCJANzFAlU29xQnmkM2cU/StU2oQ3vQQjg6uhAMAYdjZw8DVhRJWC2CSACdgG+QYABY1FGq4gguIYYSY4VzohGwIpXoRSdlRJR2mxx3uVDYy39P8Yf8p7dLMgAAizgY4HduKO9JUS5A2ZMEw0YUDYETPAQAYxmKCWOBc6B5nFNalJF89xL/1fdUKjlD+81INBoAb+dBYULE0/VsLHCpQEQQhWQKIMAqIuoLLAWSDKANx6Z4nhs8bdtWG3KxbKVg0ltCVKNU13qNJPgY4TqGtWjFkAICQYQLP6EvAEwhSNgggELnsLORvy0AwftqWFOFE1uE65QYRWOPhdYAL4NFKXp2njR0suALmBRciOObPcIAMKuaCWIQYiEDPicKjFOGx7d3yjVV7FNgMtmbdS1AwTl7EAL3v06AqWAR0XggCaMKxyyYUWsp+3ijyteALHlObc4BKkFL/5cnmHrVknEnTHIzYgS4qzWFCQ0lFSYysEBbbzQpYVZ3neo5JQuhlApjol64E9uDRCtjnHVZh7OlolA2OhxJpSdS/EG7o+k1kekRk9N0F35lomb7UC3CASNjmlLYVSPVlndakCyADLXHCEkXK3wRc6SjfV+bhh+aGzFDqSmBqB+icOG7oEHavJahqTaqmB0iA70lFUjMM/5pjGYXaHB7QIuWGUpXofSoAbHZDOK5bh6SGOShVuNYgUdESB1YVSUzLn9KsV3blW0HjhyYEhTVrwm5DERAAWJYhFRM3pGvs7EE3yHY1SbSIoKkGVNUsXHRos61TQkiGmJbpAmCP3RPt/8nlP6iKjaFBbcxhYAVwwk+yiLmgun+ht8t2S8So01wkhSnIbZkGMwdo0Wms17/dBb/CbeIWG9xc7b9kt+SgJP5YBuLczIpYW9U5X/TFv+q+7n0CMwLoMvXmUl0IPVPrifAOGdV+kN1MFf+CjPROMpNu7/Rl5AvmqAzI7d22bwWAhAXYBWw1AZqFKljAi2xIgN36bysJ8BbGLzCBOshonhy0w1QN2zmNZbcMpwfX7cHu5AqogIgGgDNEQyMRmkj4YxDvDdVWgJAuyuQQAKCaor5JMvGNZ90lUjbarCuIafl146ZeAjHgkYPp11dzulhQAB//8bQI8GyIEGi8CMh47f9Cs0CnPeLJhRNH5oYrmOTB5u3Cq6BjiITl9pyMiYUK+HIwVwjjvibpOxeLCB8JsjrGUkrQ+1ujTendFc8lcAr57dyZjgQRmA2sWBW8qA0EiAWxkKY/RwsGfovokz7JvoiquAnEIiXE5Ov3ruBHDrNJl9+FcRAuWZKqmKKu+A6xIABHCHW1YOAtib5UOQ5gee0Uk0+llO3LJlsz5qjdoABD7VxJZ0au4ImMa6T96HQA0AFgD/MsGXa0AWByXxfnuZNpJDtndnRYDtvo2IU+kXZZd4pAiYQt2QqI43WveBwD0N9vTwjVNmitBp2ERPW8uGv/LdqMnVyUjlH7U1Oi2YDzC5j4GKD33FSACkhQqYAEnvmOsICEgvH3f1fELMnOUgdM/kJ1v/JfVk9xewVrnIWTiN0AY6F4ev9QMZABSHgSKEEA1tgbRTmGsxh5hFDtABhzO0vFaLSIjbkIl59j2Fl0JM7s2W5pc+6MRaB2aW+LONAUKIES1oAEGgB7MTiGKyZ6Rdyct7AxaMTA/rK6hFfdKhRdRp6hPUSGq18Eva/4iW+LH/l6sAf8TZEBMfDzkX9sDyIUZamLNruIuriLFdkF3BVMUdICyycEy898bdCCzbf8URIBwRkEIEgCdY4Bef9VpYASTXmSJ6EBSPgRAzD8ogoIACH5BAkIAE8ALBAACgCAALgAAAj/AJ8IHEiwoMGDCBMqPAjuSZMmgTDJedik4cKLGDNq3MhR48RAgUQZQRIqFBIkn0SJogjOYseXMGPKNCgnpBEjn5Dk2JkjVMpPRlTeNBLolI2ZSJMqLVhTJNBPoXLsqLFjB88cY3TuNOniSwQ5S8OKzSgHk0pROT/l3BGEC5e2QWrInVuVZwoLmMbq3TuwqdqoPXfWaOuhsAe3XAq/rdGjKg8GEVzynZzU7KedJHdODeLBmOHPhSdMYMyhMQcVRymrlglRlNaSOtkm7uzZcAfFojmUlssh8urfHZuIBNxzDFvbtQ8nnu1htNy4NWCABU79osqcUeXKLmysdnfDoid8/1ceJK6tJtXTHxSulmRswtzjJ1fM/fvb8hqmq98PUqVWzZwZ5pl9iHVn4Hj31TCCfvulFwhOUVU11WACegeaMRhg0J2GnjkXwgwN7icHDJrV8FZ4F1rIxW0dfIfgBBycgAiDIQL3BQ9TJWbMbTom56MHHQQZJGgexMXBgjWqZ8tmnXEY32GK3VbYkEN+xkUNupWQZHpfhFBeYi0aaBgXE7glZAfhpZkmYyFo8MWW1Y3wXI9PkhmEc6N5otsJJ6zgpwYrnBCjBiRAAQKc1Klg4mxhfhckmbpxsIIKI4wABSIWfOFVBBF8UUIJnHKKKHBQ5AhkmEKGBmMIKkBxKSKIbP8Kwqxy2DDrrV+NulqphLm4o5CrpmALFCV4akGmEWACAiY2NGvrrBEcqitlFqQAn4FnrqpBF8PCiqlXyz57K66pTctXBEq09SuLwHIQAgPcXmpBCchGO+690Zo72SlKmNjZme2mAK8L3dK76SnK3juuvuce4e+B7brLALy2DHusppvaq7C0DI91Y4A7dnZYbhJzyy0MF2N8ysa3dqyXBT3UIOBnaOr5bhc424IyshlrfK/LY1nAQYAzG0Mmlu8ecUTOKGvaaca4hmoF0EvZYEsPZUIMHpYp4HyEC12QcKwFsLoKRb2cfoFICyBSnRQIGtQwgXz2wagBvDjnTcIIGqj/ACifhGaq9gh+ujK12zPBzcHcp4o5gScn3N3F0kekIDADlbo6wsQkNO3qpzMcjnhMEYQgGpjrNueu5F1MLHChsUYbASIjdK4psiDQOHpHX5yAIpC2Pd5m2HoP+2oJdnyKiC2CQ1GpHbvPVLonMHIgt5qD4k2CCztDoYIKrbSSPCKuCm4BFDNIFj1HcjAQAgyTLx3C4rkNjzP3TatNrFclkM882rpbn0Zi9YUuwEAJSmhdpNrEABLcDwb5C1UEZjADTMEKgAKEiRxA8IWhcM8FKQjBuxroQFsQjHkYk+AXjkU+wXGqXBlk31CMkMC8hc0WOHNgFwh2qU9JMALn61a9/2AYQ42AIwIigV/OSKBDG+bQYsVyGhBtQYL/bYqIRcwIB40AwRsy0Yk4o5i8MvYFKDARgsd6YRY7IocIQBAGYKMiGPF2P1t863YTa53AUBjANS4EBBZ4IxObmLc83g9/TrMADl1nQAtEwI9sBOQbzUhHMLqAYE1L29gEpyksQvIikoQgDjdhSOLljWApw1jP1PhJjkDBFkpYmusqmTclVOxs5ktZqL7AsVZqEQp0nNjElnbKS1psbLhMoad82ZHl2ZCWTjwmMClWMQu+iZkb+ULtwNa6+MWPmDu81BdgYIuJcW9sX2gbNjNSxh2GsXVKOwItUbhCdGZsndmkIjeHyf8AYpYShZvUpSfxiZAImLGG8ROYQsFZTU7ezisDJWhBrBABHNownoyU5+S4RU8pRkt0EkWIFdroQG56LYzD7ObE7LhCToHApSFVSFmaUEAwopQBlrMcA+7mgjFKMKIhtQEmvnAKJdq0dTgNocA0cDcGCBFZMT2IFOzwhUBAAY5HFeZONcCDEOTUqylQQQMREQGQRvUJNrDDCqAgBzs08J1O1KrlNJACd7VJfFA960CiEYEWrGACK4iAHVpBSGgWEqciZAAiSmCDeuiVIFaQQguKMIEO4GAIM3DFCObYzXdq9WyfAoENzBrSaNhgBq3wQQdMgAEH6IAKrmgF3kp52Jz/na1TMyjBDGzwgtFS4QV6sIJwrfCDH+jhk8Kd6gpwwFoAOHceLxhCK5qqVbhSLGWL1a0NykAPIeiACUx4gXipAIbyRmONNpDCDOygAk90AAMAOMABnEsB8U6XupIjJOyORS/k2YG3DmjDBgaxgQJTgAKDcAQRzltEG0jXd6uNrwQmLAEAQOAFVBACU0k5MUshYpB7g90Fv2CH3UqhAG2gQIHnYeB5DOIFpEVcZEvQ3tXCV74UHoAEDuAAJkhhFK4Q68TEakdb1G6QHsZUCVoQARvoYRExKIKKNzAPFruYCgwenWkFW2PWHkDHYB6AmHdMgDJIwRs3iK0wu3ApM1aM/4reohcU/msFbwDhAgeeMpUHYeYYM8wKNhiFWt1rgviK+dCHFoGid4wG4HpjCC1oQaVG4C2zuSrOJRjBf73BiSosYgMqnrKLy+ANHejgBS6rhzdOKwR6qLa5X0a0jiesaBFMuACKkMIdvgHpSb+qbK+MMxRaUQIp/IATinBxgUGNhiqX4QVtsGwRXGGuekR2CK5YgWrhG99meLsZFG7GEpYggitcgQVpkAABdHADb3jjBbHNHLBfaUdvgW8Gxv7BDZIwjwugYcVV1sEQHEAA5xIAAhtAVDS8MdVWrKARNo6vfJvBC28v4dvgvoIIWKALWwMAunq4gx5e0Ap5V5p8Fv8cwQlaMIpjc+IGQAACGv7NYio7YuDOzTkB2gCBGi2c19mOdqG77e0KULzizTC6tzWuC11cQRdpAAAFmPCNY4Mhtq3oYdlQboERiNAOxuYEJ77hCCDkWdRlUAQZch5f55qgDUVQTzTuIAV4FyHaN774txVw9DjwghcVMHoFkhEFJ7wD6gM4wAWYAIZj/+DqlbKgt8gGBQ1woBWj0IPYOfEDTy/i7FQWOMGdGwcDxCHnGMABPajD8Bn4tRE44PYBLr4EXijg77yIw+1tnwAFKCABa9j4O97hhCgAYANMuME3xP4DKpQcU2TzFiIsfwI7VH3znCDCIoog5Ty7WBEOyHn/6UtvAAO4nQLzUM21HQ7x5uo98BXA/d91b3sFBOD2gxeBE5yQgXMDYBDJ13jM9wItcDae0j+0EwIn0AozoHnYRwTzcHYHVmVMMHrl9wDkV37mBwAmQAGUUQX0cHcRJmFLUAG9pwAVsHsKAApx4Hco2Hu2N3j7x3/GNwiKQAQCOIBUxSnIQwIa0CZg53LMpwiLgAYS6GwFp4EG8ABK+ABMCAAEUAB8oQgX4ACwJgHjFni+BwpcuIK5d3uggIKDV3G8UG5QV3w1eINgcH3MBwYzkDaVx1R2kHnYN3aOUIR4hmfNNg86kIQayIROGAdOWH4A4AB8AQRrJ2ESAH+Dp4Vc/9iFj2h/CZAMWmiChFd4xScCG/ACN7CGdfh4FDRY3wN2eiCEnOdpMYBnBQABq9hsjlBwAHCBTjiLtPgABOCBY+EIF5ALAOB3KYiCKKho8beCjxgHXZgACaCFvhgFV5AMGeAEusACuLaGpsh830By4TOHDoh9N3ABFxADMwcBe6gDZbAIvNiEtTiL5tdzYzEIMUB6gVd/jPiLW9iFAaB7W8gLYRgAhZABa7AGycACTgAAZUCNdch8QFZiUlCKn4iIi3ABVTZqTEAFN4AGBMCEf5iOTuhcUjgWi7B2B/B3vveCySACJRl4vfeIoHB/ymgAprCShQCQ/xgFLNAMaAAG2//Iecb1DeV1A6OQbwdJBDGQC2RAAJVQCQWwihBAARDgh00oiLVofgSQfmLxjgDwbZWYjCbYiCa4gp0QAGBZCMgICgbAhQEAfP+YAVEQBbrgAC+whmBwA4rgCGVQBuClCC+gCIqgfKb4A45ABrmAkYW4igXglBm4hKagjup4fGIxDyCZdF0phoOXDACZjCkJCp2AmWAZAKDwknHAj/34j/unCwPgAAVwYGhQmByIcHwGXnWpCDh5bN9gjoMIAJUwD3ZZBhTgXE74klxYli0oi6awhAbAjksRA2sHbsLYlfc3ic+YASYIlpn5iAEwnWaZADG5BsVneNEoAlKXfEwwCBT/QHAOAAFVRgFt4AA4gHwwt3bqiAbhBV7z4IemkJmlx4SCSJxK2JFK8QLvaAAXJwJRIAImaJnO+IzvkAHJsKAp2Amm8JLWqZmFUAiUqZaZyAsGcJsvIAUc+gLhOQ+fVwDkaZrhd5+zGAN1WQZ3eI7GyIKz+KAYiJ8saAAOkHBK4ZjdxgI6SqALmpZTgAzCMHxOMAX+WAgB8KBIyoJx8JUsCXxRoJaUGADlF4W4GV5gwKFSUF49mWzht4Qn6ghVUAVlgAakV5bEOYvG2IIrGJwHtxSLUHAH0AwbR5MCmgFzkAEZIAxTIAB6OgVTQA2P8AgZ4KBJapaRiIzZmQy+ZwAE/1CeEOAAkBoD4DgPdBlenfgC8wkAs0gASYCDnTgP52h6iRmIpjd+xhh/vPBxS3EBziWnLECT77CWwiAMQFqrwiAAfjoFWACoCdCZD5qZX5kADrqSYfAB/7igCmAABZB2cTmXD1mYSQiFlUBwsmiLCkYERHADtKmBSPoASlqqYeh384WLSVEA8UVuA1p4xOcEtIoM74AMQNqn1DCv1BAFCpCYv/p7vXqdhWCsAJmsB4cGz7aQepCl4lUGg5CaBBAHgSeL67aX2cqqGFmWntmCvlqfXMgL83UBSlEGBScBA/Cq0Gh479Cu8Bqvfbqr84oFvYqkMnCWwuqgwXqsa9CrGv8Iheb5XRuKpR06CAUAiE5YZi+ArUSwixhIjL/pmw9ajLkndUpBpgCgYzP4DizwriXrrsKABbuKBboqANQgALuaASu4tJCQAJv5lRM6oWEglqDwAAUwD6wIqQQwt6YJkTqgCEygm5r6AIkptG+pCP9peirZokuLmY9ofvw5E7sZtWkQpO5aslebtViAq1w7BY/gp1q7CwKQDITaCSgAlgiAAGabtv8YBmHQtheQl+DloXcYAxdJiDnHC3z7oAQwkRvqn7EIiSrpq7s7o2igFItwlRKgC+8Kr0EKuZK7tVpruY8wr7uABZwLoV9pusiIqB9QDWvwAUbaCRZmhPOQa6X/+A03QARVkASuCwAp6JK0OwRU0KHmWpZh2Lsq2QnTWXrkKhNS8I7NkAZVO3zIoLVYILnNu6tBuqcqSw27QA1rcKT0G5aFYLoBgAD8CJDJ8AFhkJkbCIVvm3ad+A16AAZV4LOzS7sT6b69GIYVwJnW+ZIvCQkBAAlkaQAcixRgEH5L4IzsmgFgC8AATK88vLLOKwAx2wnIGAYLUA0LEAZgubbGmgyF0Alu6wiOgAaVAItzWwAQKcU6UACI2bc+1qH/6XvI+JURyoWQsIIKcHozPBNVQAYAWrV4qsOSC8S7kMDUoLU7TK/csAsZUJ2dIMEBEAbVUA0QHMgPjIwB8ACV/5BrVJC3ZTAPaOC6BKCfFdCZncmoZfBbVKAIFHC0k4jIwMqFS7qZMbzGMtHGBqAAebp/wqDDWovA9KoMPvzD1MAN3CAA1YmZDXzICWC6YYCdvdx7yop+g3Bq7RuXTHBnBVfJ3WoA6PddW4yBulcBC2C29Eu/LQqWvynDSfGRupcMfDqrQbrDB1zLdjzA86oMtqzA1fmrESzIFtzLoYsAC2CkUhqL81UAAvuWC7nJW6y+D6qs5skE82l6vwezEry7YHnGv2mcMcEErhsHwMen/uuuPZzOtszDzYvR3DAH7QyhCFCshXDEa3DEhKzEoEAAdEnFOlcJ5hmRk4ykpqAAtv+5igtre5sZyErMmY8ICZBQCPZHlg4NE/MwlHGgf5JLq0E6x/PKDcqgDFjwCOVcy+qMy4RanxEc0oVQDQnwAUf8AWab0j4GBkOgA6AGrQbAC+R2BSl81QLNxcbYCfYHlojsx5jp09os1EgBZb1YAewawCf7vwf81LJMr4ZN2LZcDShwzdMbwcB3vSZNvRmKYKYWXhSpCIMAAZVwlW39kgpwAFjMxWXZwA5stl75x9WQgg3Nxkf5AAqwBrOKBSf7yoDqtbsgy0/tvOmM2B3tx/UpuiFdrNUA2cVqunLNdvpcwnUXngQQkpFYnBTws3GtAAgACcEKlr7XCZAwyGZ7j8X/ORNAQJQGcAXsKtg8rLK7itiFfdjqvQD0+5IoELprO9wJkMQLYMFA/XEJ29zNUIgI928U0Nz6iLHKegEQ4K2audNi2d30W9+F4MIryM0ywarNXQFPeqvKa9iD7dSxvNtP7dTV8N6dIAPyfb0fYMFITL2g8H/t+wKDUIVwKqfkTXEXW+AHvqQv291G+svV+dOHDJZxcABDzRGA61wHIAJpOcdTTQ2ETdi7zeS8PQULgKQjHrofMAcAOdwLkMQI4KAEsAF2CV6u2W/hJwLNsIVgaQAxAGVOqJlFHAahq8KdMKHAzJnKimow8ZfOJQEmuQaurLJ2HMtNfti33eSkoAbV/+DHnhvf8DzI10vIgFwBBkelmdzIzC24XNgJBR4DfNvAiJrE1RkAL7u2NavNGcoEMWGORh4FFRrbhg3lTZ7bTw7rykAK3PAICVCfDRzSgzwF1TAHc5DiwowGL97cGoxnoHbCupysWAwBgsukCUDI3b3Qa1vnAFsGqZ5zR57kXhuo7B3rylDoHo7YuO7HKMDo2Avsgzzcw10BBzAPlzoPqrm/TXcFuUy/ZBnaCK7d9e3o3S3f923PnRAHZQYTVWCuwst/fi4AXkuvzQvuthzrtK7Otj4FT6zrvP7rwb7uwL4GFUAAAou3ZaADEViYB7C9wDqcoT3a02vS1SCWLwwJRv/M3fd3eoNA1Lz4ZbrArvyXAbvq7d+uzoQA7rHODYRACI/wAUd67iG9AHPQAA3wCBzfAFydAIzaqAWwAeSYt/P5iITqthcg2m6+BuqOxFu+5Sn+xCzImC8RvDq/88M3qwIA9OutDGogy0ZP1UQv9NygBkpPv/Ft0lS/7uuexApQAD5rABPm3wcGAPqoy1JaCWE/2mFZDQ0gAFS/1XC+5b6cy9/9EuYqAWkgpHEvAE+/0ROP91vg1ODO5LZs9L0N+AAf2YTP1aBwAXqpA00p+mmQBuR9BfZ3zWDPxZoZANXA8ALw8ltOz5wPwRhsiB2h56Lfyk6AtVhwpxmA+rid21v/sPqFTvS23P278PfnTgMLELpoT/jnT9PmWczi+ajo6wQEWp0okJiST/wy8LLHb/qDDBBhCi0oVChMggAJO4GKQ2DeE4gRJU6MuCgXgCVp3gl79w7LR2pzhAkQQM0kNWXKuHHbsmVlSpgxuREi5HJKgE4oUCDgiWDBgmoNBFT7GQZBGAUGABCoRGHeoEEXAFSowLOTqQcFLhR4AKpTJwTVxFYrCLTanDlkA8iA9LVhGYpxJy4CYKBCBmFOnHj8iOURFpKPHqFcOXMLO0IvY8pkueXRAgQ6eUI2O5bowU4E0MQ4IEIEAAcQCkxVgGBtJwOVtj7oJENG2LPVwhQVu6Zg/wBIMlrzArBB7u8ndOMESKa3ozDkAh4pF/xo18qaNbck5qYyphqUKllym4Mg506flcUuMBrGVAwmLwZBINDMSV5hyRJaTX2hEmtIR8cW/UmUIKRCTpOBNwiAkysGAB5QQIQonEBmI+T6oqa556Rr6cLqqkspu5RWaumRML6brD//iOrpgRjmeWoeCioxQAQs1kDoK9S0KsAAUALwabyfCkkgPIESSogtBQCgwMC4YnggjgSK20sYLCI8iZopSoKOEHaybKmwxawzzKUGIpMsPMt+Ik+/Cg4ADQIKWjwgAYQi6ySrrXAMIAyxGghqtjstC9BH3JIqAEmKlASluHf2ev8HGeSmQAk7akrSDkt2MFRsscIOc6kaMVGYjSgeizIKgAIIAMCzAwgg4IAK5uPJgAIouBGUHRvQ08wd0+oRIYQUiKOAFwiNyJH7Fnwvr2MD88skRz08rNKWqCtsWlJoms6lOQLQCbyxbj3TNAKg2qDUZqCkJoNCeMKJ1DrBIpEso8LKgKQ51kAXoQAYcmAIYSFahAwFC5lXgAzwUk4ALCIVzCSVatIy2ui4hMmlxgh5JN0x+QOqAcheJSBWFSloL69k8A2AVFkN6ETHBWwlb7afbCWJINt8jMMAAvjtFwiAebkigznorVI5KhlmeCYsNbWWJi6n/ZKQXdYwaiej3uX/eDI816hgza0AKDkBowKoz0V395OtP5ktsy1fnJnoN7hcFFwDuZGgHMlRkwZDiRRSrs2y0kpneinDwqyd7pEEdALrKKBIGurlMAx4AAAAWLiiGQCaKVmnhFKDwIE4QMkvqPHCa1mo8apZwzZfAdDBin7nySWOu+ium6STVNrFS5b+hpZi6qS9siV2uPsgDPDI29jbowi4YIMWAciAGiyqye+oBFAmQPQRedTT1gbQSousghLgjQIp+r0gl0PnXa5KwBjWrnDDfIfWWug8TMzhSi3+ILLw9KREskEKaGJFAQcAYHU9MQ2p0FCJHA3ETMqDjczm8L3ayGgJDggWocqA/yAF2AswJckdS6STGL/Z70KImQ5NThidv4EJMttK3oj6s5wopMoBq5IR2FCQGdWArhP5AYqZ8BS+5hxMOQ2gngCuAABXCEsRCMqIE0hYoWqRojGaIh7xfMfF/rkEeBd61kquFhkaJM+IYYgc5U4VISxEIV08eYBqCBAHd5mFRLZSQwN2oTduyMw2V5AAPYRVBRddAUqCW8nuOsQNajTGQw+D1sOiBR0xkvFvkOwYAmjgnZ7MJl4om8doRIAcGfEEBUy5gANEN8EitqwaWuCGGlRikl3s4lYJiIPrhOUIMsRBGLjkxi5KyLQrFaZvXvTi7wx3wmdpqY8LoMEnJyNBoP8URAEfE80OvRagnqAMgpCApVlsRUstQG0wy0FLIXppAh0IaxF2EUAujdmchhUzUiZxmnZIYT/f9e5aKwzoFOLFQNwwxABKAYAJTCABCXjGCXH8UQO1sj2W7Shm4ONoR6uxtQ7gQAiE4hkvdIGFXURpJINRBkry1gCWKkOLpEiJFqMZw+Ip7UJLk+ZlEIAQhS6FAA7tgA98YAIASKCeu8jAGmSTDKawJ0dshIxlzslRQthKLBUwAAY6wIESyAFJdFmCuQQwhwzobUPUE4wtbckNLWpIpgDlIhkFR9AtkOIxV3mAqgjggJDiAAeN8MEK2tAIWQHgABmIwgd+kr1KSNX/IBPUasv0uQstgO8RDXiiVyfQAhAgCUESQAYWNlKwwKwzYbtTA0uVSbhqAQ5wFKPYTA13GEIIAHMfa8NhJ+AJ4AKXAxPAAAZMsKpyoStsUcUoUD5FIloWhigwNYkwJOBVT5CgBEgigwFIexw4QumKK1mOGvj2EjW0lqUDpdi0aHJeMhICGRIgwGCLsIITnIAD+vXEfjWwAh/gAKlLqO4HEhAgbgIgR7FEWwPUMJNdnDW9tNwFMgbgWQ5oYAR2mMEMqDCDIQiBChHprgQ6ggxGIQwwCdPO7vjIJTV0qwGCq1ZeY7LM4E0HCxJoKA4KuwIgAzm/IQiBBv5LDyQ3wgGL/50DZA7ysQt05U57BF86CTEl/SHjAJ6tAQf824IWtELMdrABRKRi0kVxBDmL4udaL2hLZWyWUy1Lr4ZWQooJndOFjITkdTswAf9qQAVG1gCRCa0CFYg5yQRYAroMXIEEK6AQY9FVNQRgK5egpELRSsOWPTCBLnOgyCNoRZhbwOEy/8sAV2AUozYCklym5J7NkfPGurSSSDW5AVqI67SUEQUChJQDQBY0oY1c5ESLWcwAxoAEkDOHA2+zEjdKwOrOekGxvFlaLkQMIXRR3E/XoAY9CEEKGDACdI+gBUKYgZkf0Iw0tLq01HhOMfWZHfXqKSjm1SJMqmMSPk7nUsqYAv8ABOvlEwga0cYWtLId3gEADABKtnnytA2QjIEh8c3UcGEXtbSLNGDAGBP4bQ+8POpSC0EIdhhFmR0xuwo4iFEobaQjYZKdR0x31xKTKSQvPWNC0NTXUXAADhCecIUP+tBiBjOYVdABhx5AGHM4iLQhYIA1oFRv6zRJxwHKjZBjgORePrmg1W2HEnS4zE+Iwewy0BGE7SIxudznWlGS81lG98Y0NUm1aFLvlEzhADjo736LrAEGLNzY6h4BFKDQghNgQE3OpngCogqAK6yhOZBSjtzJGM2WfNsYXAC0oRF/biigfQYRgF1wAKaAK0y0Q89ha+5OstlH8DoxjNmQMpD/qRgniB3hhka04o2sAnSXGgqtWAHEB/AO6kXBKJevQCHQihZbOUeglPIdIbDgaVCLehPnRve6OTyDtbN9SYUwF92nZDRHhkQA2vE3XOWavztXRwQm8AHZ82v2VlC6hmsFxmsBFSAuCUgDXSitDCALbsK6oLkgvXmOnVIhxMCCCxs5QBM1I2s8leOwUdCDYQEYUMi6hDkJkKAeFWypCaG3+yMcFqw3npOAPyM7DkQ+AWy4RGu8pzuA59MFXaCeqauGqDKAQiAa7OgQ6QCo2dqFCws3hDMyBkg9Ozi/9KmIuFkA6vkIRrGbE4yJk5Arf6MpFsyQ36MGGjQ6siu3xCs+/0QLQAJsvBMwBsmjHBPDAmQYCgCILCOsJyV0Fgv0HWrIwPBjwylEhCo8v/R7AiBQEhmYAzyEOwl5v6OpN0eCq0wrQ6TxECeswTVMulZQODhsBVtggA4wBqhTLOgDiTkglasrhFzCpJnQEib8m114hy0jvS4LAQY4t0RMu1G4wohIAjLohAQQAORAsUk0iRPkEIkxIcKRwTtziQH4s3E7uRQ4tOPTQRKIPMk7KXsyJsAglQKIgzmgN2uppFrsPgzEAA8IApLbRQ2rwtWTgkV8gilakpjDw75ImBP0Rxecn0whBXsanj1zQhPogGssOyNLAYd0SERLvAkYgHiTuythFv9y5AVh2LSUkjtaXEeoCbnRA7VQS7hWEIK0swFvmIgbsAhTqABWU8aTMCZKlAnqyDRptK1GurA/6wGfFLVs1IAUILJs3EEVwIE0wMNd+KKWasVpOwCUspYK84gtYkLika8nDL8TKMoxm4FRWMmJqIK2AwWBSUFcokQO4Z3LmkbqqBZjujBdHDdyc0ihfMgBXAET0AWPZEoQYYoCOIBI2jNu0AUowQKaWEfE4IZ3yEpAQ7yz6zB7jIsqSIJiwYtmZMbLPMsWkx9M2ra3dMd4NLlyC0qH7EUNGwFPOABk2MurnJBC4KYDkLv9oQnqaQYCqKd0pKstSKkn1MWEGwFglIL/1pOLRbiPCihMFevHy/S33JHBLRDIXRCGDNRFkwPKQmM4RDOBATDMZ4Ea2muA14wswCxIwaGGA7gAAljNdFSa6NCxdxA5D/g0QBuBGRBOQrmAf3mAuUGY0lIps2TBE3yOeuu3wqiwCxM50gM00RwyY1MBDgCANNgFL0opl3qENfiYAuAFemuvxKCGK2ARE0gDepNNF4ImqGnH4vIqHxgCYRSWJIiBGOiuEDIYOGKxKbEnMqQ/XEOGb0NQkttA/+NADugA1WyMLIGk7DgX2IzKEk2Md8ABiEigibLITNGxEaUeZFDAanwbigCCF1WVu7DMZWHGEX0OL+mQ+cGCsDMG//kEtd8KLpIzhgNISm6IoepIqZYSAFeEynqzK2FwgIiggDYgAIkbUcO4MhQ7lijRsiLg0t+4kWZotBp9PzO1jpaan5a4xQNl0yDgAk/lgvj0AAx4voTpzgmZgigQgcHIAAxVzcA8yO8zpIgYBHpYsneIxbnDgsupgCVIQF3oDUeViw0wFSMciX48S2OKggxAVaCJpFmslJRKgwNN0RT1wXjDpWd5hGZYKMo5RwHwS9WUzRaaCWpIgwmgiBlwBQoAAHCUu13QBV64mWaQgAFwgIcIVoooBjLIBQJQgAzoR7oTR/pqj6UAgIR5VsTIJS5Uxv6skJrAxEpZA6EyFRj5Vv8H+MuNfKaaSKkOkIsXGIIieCiPqDAJ4IUDmFcAuAB8jQt9JQMyUADcnBaafIe/MpW/crZ6a0+d+khNoStC+ICJbQ9qEAYDAsxDNZyUAgADGYJiGNQDgKjL4QVYWdm44JkYBQUBiA6thaQBSEgAwAAc6ICk5CcI4z5abCa6qhQ99atV4Qhy5FOdFTgM9AFhGYQY2CFTGRSq7VIYhSAB+JK/uTIJMAHJ8yoMKC1p9DzEREzz9CvKSRRu4gUm7Z/9ucUOWIG9zVyIKIYYsI9OyFr+0RJukM7nuzARzdnc7NnF/aJdSBXH3YtWRSkSDR5uwEBA1dy9/SA0KABQyADZVEf/yq1dwyzRvQTe1e0+23RcEXCCt2XSEhW4oTUS3KXaRvyXOKgGXH2WmwrE7d3e460UEWDb9mABvzQA53hepsklYWgGvZ3eYL2AGLDerMPV9fxe+7XKNBDfAwA2i8tYpOk2ussASHNffJ0HGO1XzcMlcU2h1VVdBkZMQiBatj2VBFsDF3QYgYswAVZaAnbUf7kRRTJL2UQas5WtWtRetK3F3ArazMFQAMDNpdnNlMICdDGAe+3gnamE7krKjwjH2eQfMLLKbkuh7u2+XQhamy0ArjhfxMgSqIkUYcgA87ldHBYWngEAXpioACVPCT2hMLJATUrhwAW91vUrb3pA3Byo/1wiidVJgG2q4n4hRgNYAi2WXVy9EgvZqTz+vBVqJtD7ONt0AAeoBFW52Bvx3Yd9Yo7ZlQAgADi24lx4kUXpYfIk4aeJlvjSpPtFjPD9q0og5Gm7kfmNlkjxD58wDQN45PsMJvYThv50QYeFGqThY7T1OPslBOb9q0H+ZAi4ugrATXsSgJ/wiYIoBA5WZeC4gGCKOWWEtZlkpI5TXRXy3rT1HQlmik+OLAgYjkKgsOXopPAohFRGZuBQtbtg2CslpkYqJq874UqiZhVa213m5Rthi6AoBELGDU/qiUJQAHIu5xgwAAVwEHNRwRsNx1nuWe+F5xPGgqWYZ23GEUggp/9woQAceY2eSIAB/me5KJaYfOVmdL9YnOW/wwKCquZ13AJqAI1snrYLgICuYIsAKIAyuICLZguegIRG5mi5iGTYO7F528LVCkcSFZyPWMIvwqmUduiWLoDI4gpQIJICGIRyVADXuKaT4em46K4KWIO9QDGQ/sdIikXU9bwW+jxKskqX0NNsVuJQjmlI2KZh5YUEmOhPeiwDUFmtlog7qoBkWJTSKsxlLNORpl+Sjq8SVqEII0clVmLReADcGIheomvcuJ78cOP23esn6C6fAeyZO9aDJupc+rst2qmT/iKmwQITaGzWvhEFSIiDeA277onrUYDM3usbWYIr8OxmBgn/gCxTwrbI1EVsP46WCjPkAogBp3ZqHIGTtQAPu6YBttBpBaBizQ5omDyxZPTHfxxqAS0msmaaPI5mTd4pJwgN0VDuAhANHAkQ3GALGoCEavKk3AiAIrltng5o2HOQNJs37pYQhLanudu0Pf7js92FK1jv5FZvCHCRqJ5oBJjo18Boa0oI6dXszVYQjXgQuuHuLWxBLh5p8E5oWkZhaJWAXm5t9o7q6W4L12gN+JZpXtDr61aQ3QZrV0YGoV5G0aZfEm2h+n0Y6dgFFKcA+H1prYAAAAgdGXjvtcCNIfoktpABBTgSDO+Z2MNxwfZtAC9IHyZhiDFtjXUhIzHyC0DyV5feniGCBBSggcp2Del2DdeIg0rA8AznheVFlpFwHD7nc72ZEKJ2DurRAkIndMwidG5A9HCkBs3YADR49DNHg0W4EVPwCt3oBAVYma/QDVAABaywbkcNCAAh+QQJCABOACwTAAsAcgC3AAAI/wCdCBxIsKDBgwgTKjRYa6HDhxAjSpzosEkgOoFOBWrCkaLHjyBDDuRIZ5ask7LoqAy0sYnIlzBjNlEpK1SOULJmlcypko6RWUaMxBxKtKLKWUhy8OFzM4fTUEmVOnWqJIWFoliLNvk5a5bNHUz57KhBtmyNHWh5pLUQKKvbkCW7Rl2qtEaQu0EmeOBy9ywHDjx4HIHB6q1hiXFlzbUbhItjLhMmQJ6Qt0aPv2j5HGl7uLNCcBe7yqrb2IPpvZMd373co0fZHRYKe55NcKbJUDb5lD59GjJvyHb5BjlrizPt2eBUzh3LxbSx0x08dOggmbdpvnx7MDB+/HBy5bmD8/+Obr086uzFu3dmFchkTdw50O7eK9387749LLhU//aUkZpT1cWYfR4YY2B5wPXAQwT8GabEV2iNdVdzv0FGnn2QtcaBBng06BYUPPBhl2WSOdbbXtFRiGFkPXjCAQMdeohVCBIGMZ19kkV3I3k37jXBZSecwEEIM8iIFQeMqehjB45F5uQEnkTpYpB/DakBFIhYMMITzxhJlCRI3lUedU5G+dcJIWjAQAuoIAKFJFtK8sUpp0RwzQiSeElUCOJZR51lHKCpwQi2YPlFBBGcMgkejILgKAiTRCBJnnrGZEsP80E3AWAhMFAoKm1eg+gkjzpqQ6kgfGFHpTFds8Nu08X/umkIXbhgC6ih1qkoqqXiEUGXrL50CnPSdfCcdD106sKyuCIiagR48IoqHsAGG5KrNTTXgQmybljrsjCAasGhiEYrraPUWivSNTz0QOGxHmyaAgNKLGtLuKiMSy605/5arboUWZACptZBycG89TKLCgwWXEOuubz6iocNAH/0hQaYctHjpmgy4EIXXdhyL8MWjNvoudRSXDFFX4TQg16ayssAyCHfW7LD+05CKggnRyvbyhLBwAHBp03QgYvzdqFEzSQ33DC5p0SLx6FfPPPMz0BDhMjQesUKmScnaKA0yCSUXTYUTzzBAKHjImoBFCqokLbKWUNkwQmeRKYxmUPO/0wzAxpoEEKagwtKAiJfXIPKCHK3IATddTuERwgc6M3kj97SnELgM0NRcslQzAzDF1/cTO0zkEeu0DOU561xZH+JXTYDSd9qAbTUIjICCagc+jYiiJQwQ+qqI2RB609CGTYDJHTRvNkjjAAFFC1MKgnvt39RAtotlEB88QaBcAoMKXAQZWRgy172rYsLrsIIJZQA/O6jM+qr1ViDf9CpMMgyxhHtilKnQPYx2wGvZL+6BiJg0DxbmKxU39PfQFgRAa7AAICxq5XImNY2RFnNAqgwW9vMhYf8SZAgrDiFT4KihCOkIAUhsxcHcUa6CICweS5g2KHQFcETpvALLKwX2f+aR8BawYBhNPwCAxlwhC7o8AtSM+EJB2KDL/hEFkpgYNloxkWRQeEa47rGNWDAAL/l62HPAMEUEQKOqY0xh1vkIhdtBQOcWcAWXfBbF86IKBD0cIoUFOOynEdEOSqhXkdsGBlpx4MhheyBUlyjE1iRKiPA4GNy5OIhRfa0G5aReXUk1x/XGEgY4DGTmrRVw8T4OTHui1GjnGItbDBGW7iAiZo8wiHrdS8xgrFkpPMVon4VS0Di4Y4gS0ETUWmrhZEsSyNEFBQjKUkq4oGBINPjHOloAVOKLF8Oi0DpSqDGai4EDxvMozpBtjQN3osEL0wa70hGTnM6BBGnPIIed5n/sCOi4pQ2Q6M9HYLMPH5ymTTLIRiPiMSHRWugCynBKbugzCNYVI7sYxgSwwmtYlbTBogopAZeeNF1hmxhn9tXBMoJ0YNQMoTL+mQ8P+k3FzhTjLiDZUv3xzNU1CqbBn3hJ9V5Kx2Wi1Hg2GlBDmEDlky0jNmkXTyT1kxwku4LHp2iFJqqERhwkaZdGGk81TTUolrgX0p1gh1m0ASHeRWofpNpCkIw1c1p4HBpReEoniCJQABvogYdKuBe2Mi+2aJ6NkiqQGZABSmw4hBSkMIhDkHKGTzBByvAQwkIJUfBllGs8wLnDGbgR8o6gQkvkKwepAAGMOjBtPpjxQxW4IMO/+BAEiV4gpr+RlaaBu5WvozfDFAnhBmwQghlGMQgBKFcJlQBDBK0gR1WYDQTmEAHllUBWGn6yd2BM37xs4MdbKADH+iAHvQQhCA2QIELqMIRo9DfM4Swgm1hAAAYEAQV6AvVwEL1kyRw4DXAWwJJjPcFDsBBETag3vVSQBWDiG/xZqACo90XABimwAteQA/t7q6Ms6Opdy0AzQJ7Dwx7iMGCGcxg5upACqprAT1qi4H7HkACBwBAAV5ABR2s4AkfZkCbSMC8ta3vgKSTxAwO8QsgLKIIFNiAlNU7CCbII2szaEF9rWuCG0tAAgPAsQOYMIq9qg3EvPMpVM0GA2giov8Fz/jFD9yhClWsmL0QZgJkVzZd+2LgAAcYQJi//GUClIEKh3gBkEfAPN4hgnmELJSb3wQCOSsCCEmA8pSZW4YhQIAeOngCq+zwhC0DQNCCJrSqcSyIF7y2DC2IXvTaZIvo2SLNJQOeCiQhhR9wAgyYZi8FGjwIHTCByzjwAT2MVAL6TsAEAAg0qlNNaFQfoABDkII8pCCERacZFVAwW4DbpDsVlKDXv3ZEpi+waVWUgQkEIAB+MWACBfNnCC2orQlqLG1B60ICS1i1LgRtaMkeAt9AZp+bzHavLKEiBE+YgR58/YsqZJoCGI/yIN4tbwx7vN7L9owNZlBe+5461Uv/CPgVviyCK+jiCjBnwRUOMAhX/0AK+PYu8P5ZNlDp+gQtkMIvOMGJiiehvRkXhLvh7XEDHMMAHsfBBgwjBVLr+8IHCPiXU87yL8P8CpZ4+co1PPEfgEEIs84S8NLMsBGgyQ7oJroiktAIdrd3A8UuQ7ydfoynGwDqAAA5VqTwAh2cwMIYzjqgU74EXvBiCSIQwRJgbokoiP0KS7iAIsBAccsC2c3/vNUIQnCCJ4xCD0Qn+g0ufgGMU7kMTe+702efYxM0QgcxGQUVLouDbQHAAI1nvOQdz4tjPD7lLWeBJZafAREcgAJMuMHQi67oJwDv+jvXwAlWMISJp/4Hcxc2/8bxrgMd5ELeD+B73/3ucQdMPSSy1TKNMZzy4jve+I3nhQJAoQDJt/zrV/AOlnAFACAIQ3ADqEd0v/ACLfAmViM/FsAAg9MC0pd6RFcFi6AKSOd6ypULAPAAIPgA6yd7f/cAAEAA70cRUmBZtGVyW8d49fd4jqcANFgBFSACFZAMlGcJMkcAOjAELwAG08cJP3ADQlAC96M7ghNx3vd9jrAH7VUAEFAA7KYKi4BhBhCCIZiF6QeCUOcAHjEEM6Zv0UZoMLgENjiDx0CDChAAFTCDySACGVB5LMACADAIinADruVrCjgKw2U1cANxcMeHqVdxizAI7LVx0fcCMYCFf/9XgunHhV4YbyEnEargAPsWbVqHfJHHeDOoADNYAQlQfOTQCYVQCGuQilEQBQewAQe4hxbICaMAAs8gCU8gN3A3hEQHfouwCILgeu+lCGVQAL/3iJKohSF4ghcwEYoQAwTwZywnAhJQAWiYANT4hmz4ho8nigrQd6BQCMmQgxmwiiKAbQhIiN9XdS3wBC2Qi7HICTewB+cXb5VQCQXgAHv3iH4HiccIggCwjBIBBB6YdTgYeTaYDGhogwmQADQYAAwZAA6ZAKCwfgEAjmuQARlQhwTABESgB7+gi7s4Cg04A1LgkbH4A46QC5FIABDAYBdAAFD3d8eQfuRgjF2ohQD/AIYRUQWNCAApF4ciEAVXYIM3qJA0CAqdEABJqQCFIJGgQA7k4JDJcJF0SHNUIIQn+Qt6oAc3cAMlCZKcoAeLoJIPQACC0GlDMAQvqY/HYAqmUJPGmIWm0IVmGREpWYaRlww6GI4VEAV6aYNHiZSdkJTW+HSmAAoOeZECqAtCCQFBuJV6AAY3QAQvoAiKAIQbFoRyZoGKUAmTqApMMARlUAYQ8HvpdwzkAApxCZcl+Hd1+RCKMJZleAWR9384mAyrGI4SmZSg4JYOuX/k4JuouHwsoAt1WICjWQWOsAgxUABUuAE68G6juXGK4JFmlwQq+YgX4Ajv5giVUIwyOZEz/zl7MkmCAJCCC+EOPRlwnHgFq7iKGbAGENmGSqkAwWkKnSCex8B/CRAFGbCY76ALlpBjBEABVaAIykkBU/icv1gABGACEKAKFkeWj7gIZVCZVVAJqzmT9ymeIrh+BnAAEAARqvCdwCcBKycCyZAAyYCRGcAIqbiiEAmRUPkAbwkKT4mYCbAGLeqiyyd511YGrnUIkfkCZaADg6AKv8hgSXoBuXCMlVAGeQgGRNCIj4ij4/l35LCfH0qCBXADD6EKHsgLKApzQRkFLBAF77CmUzAFGZAMTdmUvTmXwYmjUTmjC9miFxkFKXcABFAAFECdL9CVYCAFowAGo6BaRLAIBP+ghZVgmV3Zmb+Hmm5pCvtoClm4pfwne5WAew4xlicKc1HQl8v3DvZwqqdqCS/KCFPwDhVwnwZwmEgJkYMJkYXACDCaDDRoAATgAM7pnJXQnK23CBegXtw5CBTQqCEYpYowqIrggSIIlQZQkzXZm0+XmvxHjQbgAILwEN+ZdShqCe+wiu/wn2sqAPaArqb6CAIgAJZQAXOKn7UaAL1piqmIq9WAAHMJnah1AwjqZMwZA5UQb/JmAI4XqyC4Yxvmr9A6rTeKmk+5pW7JfwqQcsfgAIPwEA5AfyiqC2v6sag6BQLQpiPbrnBgDyJwnzY6r/mpADk4lalYCJ1gAAWwcY//+ZFb2VpEQARV4A5J4IygEIkPUAmD+gKjUAVkiZp1iqN2mpr7CYqOdwAY+xDyBmZ16LGnaqqn2q5ci66nCgdTcAX2KZeDWbYKwKJ6eZHxyZBQRwCVcAGHyJ39qoc5ywSMqoU7VmZSgLS/V635ybTduJ+IqZ/XxgQO0YhgZpxYaw9w0K5by7XpKgBwMLlw4KqdUKn4iQLzyqIfAKO4mgwBYABvWwADi48EG2/OyWDM+YHTuq3ZtlpMoJJPy7S0O5GHWbYTua0PgbgSUIelurWo6rjvILImqwxgC6+Ym5QQuZDMmwCo+AEJELoXsGGWSQQIupwXQLrydgCP142YSrOu/3YIYIC0H9qGvEm73kirQau7DuGBEuCxAvixWru1J1uy7Cq5yiAAKXuf+Lm8CRAGzhunH1AIYRAACkAAoAmEiQqZrXUDRroIDrqPNNtYkcUEnml8LkuvODqY6zer+TmTBOAQAgkA4Tq/wSu5XVuykgsHxssIAVCpSYkAYTDDEem8M5wMM5yfvOqrEDBs3NmsQUh4ZXABv+eWvNppG5ahIsgLosiQgomlfWe+OFqWDiGmBlDCqBq5IzsFjZvCK6wM+ZsMERsAkFCRzVvAATDDC/ABBUwOlUABEGy6J0iPVAgBEOAADnuYB3ABF4BaYiqCLruQ9Iq7Gzyj6xvCCwGqKP9anMuXro/LuF3criJLueHwCOE4p8url4LskGm8vJ1ADgWweWBQmUzgCFZ4AQMbbTbItG95bQXAXERssPQ5o4NJuzNKr/upkwrRiLwwgLqAtWuqxZB8sqY6BY9AucabAch7ucobvdGLAAGAANLMvAesCqJcqKuls4qwnM6YxzWZk84JfPoHkZAACfm5lEw7ozT4dLqcEKoQbR4bduIazOlKuZSLrgLwCMfMwsYrszBckTMcBtIczQHdyaAAAPZIhRlInZtHBEwwjJEYnJ3wp/fodIgJkTJQzuq8f3hqwN2IyApBxEsQzyaMql3cuJPLtSgNB9ygDKDLzJob0AAMzQH/jQCCPNFwjMow2bYU7ZwAQIrBSQ46lr0WTca1nNFlrMEz2pTr3M4IQcQHIK6/m8UqbbJVPbnKwA3cMAXR65adAAnSLNOQINDQ7JCXWwlMoLPK2YsOSgBZB3aNt59vqWMUUABOpwBlW7YIAAnRe9HOuwYM2Y1ObRA86ZOWkLX07LXDDMaRTLlancwJcLkoIMOFsABqbNmWTcAADAoEsAiP2VpX2ZVMoIEFwL0KMLGdAAAtaddrqJRJGcNorKMfIJ8QOZEgjRDq+dMBmMWR+7XIbLz2jNWMzdUwbdMz/AELUA0CvbwznABz6ZxwmwTceaEvwARMMAg7Ha+qTdSCO6Ng/23ZtOq8MFoIStl3BJCxCQEEvHwFwQu8XSvc96zSLLzVke3VyhsG1ZDcaLyQTE0OD8DHzhlvc+wAvuoAWccL8fqnG1AAgGy+EIkACxC9SrmjjEDefQ11AHkQilCiBpsMh+21II6u9szYKb3SWQ0HycDMnSDDMm3ZAJzGAxwA5EAAzyWZVeBkAhttIrB8+oefbkkAMQDBFj3LCFAN0OvaAXCR5F3bxwAAi5AQinABMWAACvCfjvzeK8zCwm28wM3PWu3Ckr3iYYDZZL0AhQC9K5ragrB5rCWZlmnKdf13OfqWQE4BnmkAOrq8yv0BM4oAp7jJ3fiP6Z29x1ABjPDh7/99z1rOzyS+5dwgAJHdCSgw2TWdxgnwAdWQ6TOMAAoAznALYdxpbGUgCDu9n5f7p4twwYjZlAmwALkq4QGMigvZjTTrzs64BBhpqviMzMENxr5u4r5OCOEgn5k72SyO3wB85sqNAIOpY8DacfFG4G5dAfuHo6bwp3GOlGf7v0bOCJsMCQsQswvZCX03oggBwT6521lc4lru6+7O5b7e0lo9BTIr6cYuzQuQ3Jmu6QI90TXnr46g029tD++wokg511TI4DrKoriKqwNc2fhdDTAavft3sbjtpCR82I970r3+7h6f1Vr9CFEQ2ZOO72M+5pjOCMiNACgwlxSweZEpjMr/teAEgIN4XbYPAKgKH5HJ0K6sCr2FANYSvwanuM4XqwgHMYzR5nIar9hW3e4fT+JZTQhbEA4Z4NwoQAOU3uLJzcYsf7lD615KqgrROZoU8NMyXrZ/egF4vPAJwAgCMLzQW8DcbuZ9rZrnfRCySaZvag9tqsXAHu9RD8aEUPhw8AGTXvJj7uJqvOkDzasBzgsEagL4OI1KWalr3/Zl7Lz3+7kBXJHKLeGgwAuvWRBXeAyTN88jW88dD8aPPfhazQ3hwMaSrvVkvgAy3PU0HLrQpwiD8JIkHIACWAGuTedU6ACm3gnO2wACkOlsnNwLoNFlbcDH8HwHQcQuGwWqGrzB/83P880NW0AKH+/YX06rJX/sx67G0EyzNVfdybUBbA8AYiuYp06FnhkHSAmOjJDfawAQYRCEKVQoQYCCARQGOAYAghOIEZ1UeqCgQhR7luxtFCDg0SM4ykSOVMaNELdwJEWGFGkSTqEAKGSiGBhmQRicOBHsRJBAAYACFy5QWCRokCAIBo6B6tTUFIECFCge6xTgAyNGhbIKXIBgQYIEaw427XTsgCCJEXMZUJAsyrt3G+11FACH5UhuyrZs4ZZXpbKQ3PZym5KgE4rDKBYsXmyTcc4ABgAQOMBLwYHJAJYoCHC409MCiyoZAAUpTLUGDRitWcN4QbVqBRcsLGtgQ/9aJ0lyPVhyhcVcuXXhPBJOci87vn9JCmb3KBlZmV5t2vyAM3rkC4PKXChAWcQUOPYqKIAOlUIB0gHCrF7TIDYk0wsaZMgaAH4ABQYMUMAdA8AxCXyLK7i6iitJGVKOS64lvFpKMBxGPjtsJ/ncq+YmgXgyoIBBXihjEFU2uMCBA64QgbOYQBsxvQUYEUA1RjJYoyBG5puxKYU60e+C/h44RoQrLImrIzg8Is6ulgghZK/B8urrr772esSw6BhDDbWbKOzKAKgKgICCDQQ5TwEUDyPHvNGOCUC+j6ZYoxoZM5hiCgHW6My+po4xgMe0/DumAhHoc3EKkIwEqaQomdz/4iTlEOQmQb4aiCk6rxq7abGBukpAvyWWEGEJzAC4IhmeEDOPgGPUrFCADJJRgJfeNpIRJoVAAaUhPiWK4QFeKkhmDRflsks4lvJaVDAlGR2JFJX2IgQORsKgtKvGcoJsQwi4IwAAESwRwJ4ZdwoAFKguQLUTSF7Dag0RDjChAxMOCLCggxSwtSH+0qJIgUKSYWQKe96hq8C7ECRFMGeffFIlhPkSQKBpXbspAZwii0oQQVQRxNwSK1AvjADODIoAA9BFTTV2ATDBhxN8wGCJChIAhcxUG0IrrbV4YW21DOYazq6CWzKpSb9IYrYvk5B75IOdaMp0Mdiy3CmMnwhw/yAqCkY8oAKdEOjk1GMUeBO1rCpQeYITVvDBgW0fmIwAkjEoIq1F1vLVrZ45GvYulphkh51kF2awpOPYUYaRBHi69DXGBcopGU9F+PQAyi25InGBvg7qP1AQuJCxBM7mIATSi2jk9CJSL8IHH9JyZC2x18ggb6DhQInhBP9GbrCT/HJSGSW3QA7aaqbDSWLXwjDg6gIcAOCADDqKIhmpy32gtEobWCwBXjDowJMQVHhifHrGN/+JFVqQSLcHKsgALmGRDMd2ofUSHjnkllTyUf5FIoUQ/BGGEUxTnJUaR7VybYACEKDMFKJAMZsEoFz/SdditIcASHSvA6NTwQig0P8CEIZQEiGUCBB2o4D30QUO4QgHSlzYwicBUHf4AxzSkJas+w0PK6WaWk4uZRPIHaBL3VkCWDIkwc0poIKfW4zZOnCC8HlQCFMUgiTsIAkstkASEalb+2hnlxYGT3986YsMZ+is3tnwJEvSnQAzJB3HdMUrBjEArKLAAhOJ4BGI4wkkoJIUBaDmDA04w2IgUYEDfC+KUIACFq1oB0giAgpC4OJutFIXGCZKUQkzo+4WtUaTIAxSOdyCMrTnGgrxZCA7AUAlCvBKAFSAEY8QCwJoorkLAIAzV8IUJOJwNig+oZGQJGYJ7FACSVDSCYrYldgEwMJQuvCGelnSJ2foyTT/miR4fkMONx5RPDnKEQUB2AnmIlOJL42IACIQS4Y0BwEAxCEAsPlcQwhgAhygLQTCfCQxISkJRNgBIouIZfRCmUmUhDGapMjfNXe3yU8qSnfMekQ4dwKJTvSQQsloF9yeJ6coVMdrrixARWxCtkJwCQc+KELawvcELVpREiUwJjEHagBdAG1+K7whNG04NIfmj0mPiihETzKFC3mFJ2tiIgICMJkDeIpQw0mqLV0JgesloBo12qoTfcCBFZBOfPzspz+dUIVc8MJbRQIjolZiQ0RVM4cPXRREN+lJaFErS4Ww1k3wAzerPe8KU2BEUnFZkUKkprANWIO7vgdFFaiA/wEedKQ/7TADJyyifXFha+2K1BGh9eV/SMshAI0qw8LN0JufU1zUprbVKEjAatuqQEdS05UusaU9ZxiJJRw7AQ56EAq2wCIiHBlQzFbiGEGyB51qRyw4HCxKSiLFwU5CSuwqio3XJEQ4TtkVGrzmguoym7wkIIEpsBBJylhDlw5QiOgpVAADeNcEwCdZD9rig8ksbglA4IS1XOEKsyNSkY7kVttdlx3RnKsndyfX1P6NL3BgImO+u1UFOIBtBwhUXaJ0uC7xIgMgCYeCCKELDNjXpeJrASOx6M9RANgAAbKEt+gCEtttgVmASdqxTPK/oOJvUULtpIQpLDHVEJK3ef/JwBIAwLYG2q4vAujSEubCHGzO1wP63KdkW9xPSTxjIrwJ0BWAAzQbQusRUSpaSxos4fz9735vDsc3rfSi1DRAC32ZwhIkEKolPBNpj+jSFZ755kUJAANc8AQHGcBiEFaxBZitG4CCNCS7/C6vS95xnh3EnLlWE4emxWsGXqWnUBlABFKGQ5e4xQLhPInQrxTBoWk4Q0JoGXwamCxMQwjCLTphVxLQhSV0MZdMzm+PC3jESB5xytQsR7vbddYou2uJP2NA2ybgdgdw0AEJ2CMc3T3AK7clLxasUCRUprWgb607JcFhAFsm3WQ/+EEhgFAtM77CsQXdl8+6p9nPllj/s1eCFxsO1Yb2kMBkOvDwDkxA4hLHAQYGYI8cwyEKQbpCwyVQl5LMugCGDmOQkTNfY0ygByHQgH4RgYoPPkGgmbWbRlrYQrvMhUgigfYZ9txm9xDy5z9Vxjsk4D2Je0LpHFB6oznQgQFYIsdbEADlKCeBAbwDzewuQBR4iuWgUn0AiwYu6TSggrOnLyK7OkZ8YfhZA8EhNT5H2oGUYWf5jIR+dxfBk1nHgRNwQPCCX3oHLO7vFl5Bw2wDQNTByI0MEAACI/dww4J8YgwYgwtcsO/ST1AEekSkCv6pAGeH9S2d1+UjCFeJnfX8FwGIwGo+WEHtTxB4pk98AtzmPQEG/xCOqlOu37rQxU6VMQXJF0AE4t7mm4MXDt9m3gPT94AxjIGDQZQwFxVIvQAGtBE6gRyudr97jQQHGDiwAJ8scynuc99oT7AudT7AwQHeEY6ATeEdJoJ1So5f6K97N08CvpzThbHTNgRshLRAq2PwluB4QLoYHNYbDrfSu3cAgHxKm7AKgdsjPMCrvfKhBxHEgY+rOsA6N60TCUZIPpITJW5qIwHQhfubn40gPgOcG4lAKwMwsweUiyEBuQpkkMorGjiYggPIJ8AjHQ7EPaU7gcjytSdQAR8AgJyCAyE6t6ybH5GIguTLqTKaMGShtnAwwBm8ufmRgNvQvh00Nl0AGP+O6Aid87+DC5q/gIPIwwHBgyIlXEKxGoEW+6AWCAGoyyng0wiMw7gWAozIe6UWPAk4gAsYKpwtKERxYyEaJADcmIg/kUGN+L5vKTA6PD+VgAMJcICv4oHbS8XbC58O0i9GggL0gTrme0RE1Ca/iALmkTr9yQt7ODaggjf864j58b4DyERhq4grgB/Uk4vUC5oSI8LAAAx7SKRGwz33Gx0N0IDxGQFXfAIfMAFCnER7UBLVEgnFax5LuDlG+cRxk6gF+6wMMJElwERj3IMZExKBWUZ9RBIk6Qv/8yy7sAQA+J7By8PBY7nJmixb0C8VGMRx652EGQzAEIFcZKE0WqP/bQql7vK+KGgXoDDGtfMirFhGZsQ4oBEJZeEbgEMxggS8JIQiPWS5DmKkFpiAA9CFQ4s3wQhGgIMDinylZJAy/WEjMkooM7SHJuMSkIwIR9gVhMibjCAQAwsMfzzJksA534q4giSdwFtFhFxIKAgBE8i6HqsrdhAAFvCWYVwC5jG0NWKS7nqHK9wWypAAy+EFqFhKutkNSHifgClJvbGdneqskMBKpCtIHtjKEEgBBmAA/XoCDrA4AWiYSRSe9FurIlQAV3KAWnvIZMm1AVgBHcCNoKCA7NNL3NgDAgAF7iOQ4ABIfswk78s84CrIwQs8HpBJD2rIAcDJRAGcRJNB/+F4hAx7JRErsU9SkjFsHdRsTokQjYqQneiJntc8PZbIJuAbgJRzOts8SMYcgVjMwi9cFMCYghqTAK/rM+aBnnYUNUJ4BwxYAeecT4gAgl3pFdlhxuLoLGnyx/kiux4IUAEdvB7gge9UgROQxUQUHqqjHAB4UMr4lwNwgMlru1CKKEKwhwFgTvqkz0oggDgIlL9MvfhZoa+DAxTbshoQ0ADdSl6LwhPAALV0swwlgEq40QL40GTIgHKbvANIx+sCJVJ0gA4tUhPihQEDTOEwPqrMTgDtAQ4YUChFSPCcgAF4Ji1EGEJzJS4lAAWYAl6g0AI4gGfaH6QBvisAgHwp0v/59I8leItOHBLAQD/0K0z8wwAVbVEobVGWG4ERiNF0JE/C2YItfaUbJRkeFVNemMxdVLYMqIAwZVP6jIG0EoEoqLEBgUPYVAYW+s8tAy4WhVIe0AASCAFjuDjkzItkaTWSqgQNExVsKYBjWIObG5bCgomGSENJRU3/oJzvQL1P9BnYtAduiEE85Tz7YtET0ABBvDhqAzVumFAu1TAvXZ4KpVX1WjavCIAKmMddbc5G2Ba2oE6M+z6dM0m2WhR5w1Pdm4AVFTyouz84Y4fc4YsDuNFWJQBemNBrLZK5SKrF6JfGeohvXUp4etBFBRo4vALhG4CsIxLkzNCxo77N44L/IJgAD7C/EpvXASw3fM1REplQ7tCZPAPYBTCIQliDJciVgs1E55mMYxA09RKAo4uXBz02odSfMXRYBETAnCoyh9qCK7DRj3UefnWAQIIN90Cy1aiAAmhZkKwECBUxnmKhaeQ2lcEAM7s5jVwU4MsIGWS+NwvayMPRHP3QJ4MApC2E16gwpY0NBSCAMoDaTPSPyeCFGewu/MtalTkAZPspBjUtHGJQk5OwLUA+LsVRuHGAEVEAzIEaA0qI/aDb/siFBzU0cUOa+TqAATgArf232+GGoG2+sb0mQm2lszVUV7oA5QIFvtKq1IiN1ygEDDoGgqXctQMAA3AfYSyjjRxD/0MTgF1EidL1m9KlIaprJbM920owF86ABK9Q2iSLjUKAhLjFXV15gDjIAEOUsrriCxYCnP1px4YK2uM1XSt8pQKIAeZt3tWEDwQoiDWok6zYK1B4WuyFCLZLBkPE0sEVshoyrRfkWAEMu2hd3xhI4NRloKVYIqzAigS4CXoBgPyFiD3IhT95nwFZoUwKXBwyXcINWgcLKkLgBQRO4BjAUdYtDfiQj52xCaU6WQOoYJp7gGQUlvmBoYesK2pDo2p6KAGcM+6qgEpAYfZVYeXyGEhAiAdVohY+We6h4S6qAEM8xExroWMZSjGSKG5CtMtLhhNW4ARmXaqQAevdEwoAAP9QkAEZ8Ip6kWIMdp8R/RYT9anP3K6/eb4ik0ST24IMYFwjTuGgaF0zJpdB0AECuJ42vglISAB6xF4T2l2orM4c9l0Ie7DuShpPirCwswcCEIpAHmRyWGMZiFtBQGSq6ITwWoAlfmTcrbTSU9JPBKNx80zh2cgr8F4hNtzSJQVCG4oLMOKRUYpOMOMNSWNeUAj4hQ8Kzt8uYq4RDczP4qne2cWMgCE8pqvSJQwC2ABVWIQ9QOGRSRUZoAEZCADMEIEKgAQ2buOe4IUKfp3lCtuShLuN+LowCpxqFmK/CZ4zymN7cACMEYRFCOZXYmDsgY9+SQb7QABzpgFIKISfcOb/3aiASxOSN6RjFcrni3zLuxI1BTmjDBVojcmaC5g8c7ke+IBfsGhoiDbjM87fCzaA3pDBuDDXAimwhywjbYImouTiAkYOT8aYb84alEYPpljp+7CPlTbjcWnmV1YuBbho/SwQYV2h/blj30UjNDJdw+WGgCZqCjDqoOgOqlDqhWBjdlZrcslf+0RGmwZMjhBWHU6oGxKjO87mOeOLgFYFv14Ekw4KtSUNe0nqAJABpmhntYbn/GU7KoYf4CjJWU42o0SonkYJudoduhIADvHrbxaKbNGWVJkZ8mgKW5GBYkbsmXFluvWTQpiC2ZGTfJyL2QGYjngES8xtLQiH3fYpKt3WAuDes965uQy4AEdwhEEAEcC+AAViXdKYGbLoBFAgB1Oo7upe7aUMCAAh+QQJCABbACwaABIAcQCwAAAI/wC3CBxIsKDBgwgTFmzCkCG4hk3AKZxIsaLFixgRBgpEpyOwWR3pABtJp4kciRlTqlypks4sJCA/yho5awySm7NkyTJyKpAclkCDCm1CR9asj6HG6ByTg09Tp09zHLFwUqjVqxSJHv3INIdXPjt21BgbtuwOHkqMBMLKtu2WJh+RLG1qdkeQu0HI9uDAg0eKMTBOuR0MFFqgWV4TlwUrtkaQCZDH1uBAuW8KGIQzp5RjhK7YsJLH4q3RowbkCaYnW/6iuXXFQLJy2OVCGy9t2pFNc/GAewJlviksuB5+UGsoPjV2177tofnp3c15593b9xLx6wO1yhpjN4jy6OBpg/9vPp06AxvYiTfhCEzW8eTjmxuLH512atI8hKdvfThuqByO7WbMfPJhQB8XpyU4GQP7aUaULEj8J1t39BHYXG8JJsjBEw1mdhgSX5V1F33hIYjaZCecwEGCLXRIGFJPgeXYBAhCdyGCk3EQggpPjADFj0+ccNoJzLjYlhFy/ceYXWOhhtpvKZ6wYwuplPBFBFh+IYkKK06wQglGstXELEktGRZlIaTAwAg+ovLjj1diyQyWEXzxRSopoHbCDGGyFchxoKl2BAOXFGqBBXYm+gUzjDIqZ5YjqMhBi31e1cQYYOXFQQpdFIoKKqkoWkcdETADwpxYgqAqCBHUAUUIlLn/UulVgfAgFmohuHAJDJd8eqiddD5aKqOqMjNqKiqoqMKsVgVyxK09pFDotFCgYoGVwMYpp6mrglBHCZFysAKzQp1iq55PXGLLtLaAim2rpA5LbLcglPDqCcuSC5S5dk1wQrqgouKptYhqKy+3qxoLRYqU6rvSJDyY5u8T7VbLLgwwWEAnqosifKrCKUriMEsgMNDDXvhW++kluvaasZ2OAusxo9/iOzLJqJzcA762tLuuutMWXOcpp1w585wWhNDwzSlBcfJkGnTKsgtdMGB1Fy68rOih16YiSah3qsAa0yqlwsPJJ2hAqAsMpMADrGiq2asFqaBCggYaqMBjC1Sm//IEn2SnFEgKe4XAgAojpAB3CGky7lenMNx5CQMajCBJCSVcXoIr6AWekRwmb8qALSrgfbWbtrSdQgouJGpB4pVrPsMMQtTh+ecj7KVm6VbjzfgKKqy+uguIRmCv3k88AUUJM7gK5u0XyZE0X2tOrkEKHKTYI5ttZx0n5phLMqqxJaQCAvQWyfFFCiek4GOhVjNAcd0kjEA5CagAWweqNDuKJfoUkcMpZqEEv4xgWiy7BBRSUbf4ESp/RiNWox51PgAmBBynEMksBuWjn7WLgXarHwlI0CuZ0etjpfqJBRGiPiPIxAX1O6Cu2iUwKJCAASPEX/E8dqpRfaEOVlhhQv8ymJOcdGGEDHCBEguFRAdCsFT0MlYdmhdEIR5EDi6ZxSyMULUuMqALYDxiDm/4RDkVC0uj6pwVD3KKkQDDCDe0mhKpBsYcto0HXQBVlbbVqlRVcY0GAcEpXAiDql2ti2K8odt48MUS1ilYqQJkQibxBSMooW1HUALWuqBJJVYtBUc4gvcMVqpUqVCSBpFDBAoZPzpSjY5h7MLL5LWxUv0RlamMgAVgwLYvgnGOrvTeDum0P1PhciJyYMYufwnLLpIwcoqy06hapcZjstBO9vNl/NR0uk+B6mtWGp81JzInVMQPjJTrSwj8QqiCicp241TIqMzJgEFtU3hYg2Yp6/D/hRJUM54GYUYJ6HnOq32RBBgjZQmACNCEuAoGvVPbIcG4K3deaXbwbOhBQFCtG0o0fkpQgq5+Baw6faGaipDCIXphhV64tBfjtKHVVifHL2ZNaHSy0wwquAUpVEEKKgWDUIcKU1RaoQWqo+kXbVpRafKzn/4ciA1cIYRBWHUQOmACE/TgDFyCgASfdFsK8CbRfJIUqgsFRxCnmgVVbIACF6AAVqWgB1TagBmXCGtfLCM8QnmqSuVjng1GIYVRtFUViEUDGlQxCCncUog2uGte63mERTrOMpRjwAIxRzdJ2GAGg8gCBTawAcQyVgfisMEhADkKZqiPaqurrPBCcIK3/+FNeQwMbOZsIIVFuIECo10sY8XxgpauUQquKEEgeElZ2VJOcWPVgPLoVr5UIKp2NnAHEDag2LduYBDioMJjAUg7H6jgFJOdKShXZ5nbWo6B1qUbCfz5gkGoggKLLS1WX7BSISLXBx3wwRegoILMOvC5q6ucLbwGX0T9jbeD4C4aSovYQbwAqOMN3H87YIIOtEAST5ipc5M61vp1tkqH0gAQD6EDNAB3whVmgg6KkAVXSAJwgZtBFnxgAgz4OAszcEXpJMpN4SUYf7n9ggVQ8YQVu8MNRXAxdxnLhA2YoMM+WIErZiAFpkmCAxwGwAEAAIAiDGEIKxhrRPEmPLyNQP+PJTjUCJ5gAz384MlwBa5+maAKMpMZAyZwQBHEwQRySUEIKwAwBg5wAAmQGQIveEGaPxo/vG1iTfgDFdc0q1I9nMMNcQUuBaiMBjIf4wCnJrMJcHABHVQK0RMI8wEG0AwJjBnSUpA07xxouiN+qsFQ0IAkOg2E3+IXrlS+gKmPcQxeOPsYqsaBDoTQoRasgMMYAAAGJMBtCQzA1g4YgkqZkLxDLvWgl4Bv3fBWAin8QA9JMLaoSysOCACA2fjONy/GjAEc1Bg7Ola0mLtda2/bmgDiUCly5xziHNovh3pMBQPwNQM762ERpIXrBS5A7xjcO98gx7e2HdAIV7emvB3/8PGsB/Dtbl+B1s04gCqocIgfvMAVIa5jCKs2QlCRgLYtoIIeOHFxNFwAAgVIOscH4fGQO53ZZHaAKjJDBVf4AAcpF3Ojuy2BWg9ABCLgNgSGYOcfDMEV2SSB10LYc1RoYFNc5gQnfgAEINhXFeIg7gt0UAkAGMDpBvg7s/9uAFVTwC0zQLOis32AZjie5QNIwxVEwAIRTF4CDhAHGH5AdHKPoOdrHyEUIMowocv9B+fYLozB+wJVEIDwIA88vnlxDMIXngBTx0rAsa11x/MC7GB/+RWGD3kC6OAGnOcEGMiNQ2uBEIm0DcGwDyF3ohMhBklPugMc8PFjgCIACsh3/+DHL3ioA+ACVwlyEbDuYzE7vhm8cHwFLJ+GcqQhDSy4fxoAYOGhzx0MaMcA1hVnMsU+/0IF7lZ9RHd0i4UGDoBqzaYAElgB+PYABmCBsjd40AYADrABQSEFaDYBPaZ1S/B+yeB7FZAMwccC5WB/LMACBDAIigAG1fcDoyAELWAt/SQJI3A9KbAC4vYDySd3egAE4qAIL6AI4kAAfmcAvFABFQB/x/AAVFiFDzCFVvgABOCBK2EDisd73FZrzQB8T6gAyZABUTB8V5ABltCCLJB5inAD/jd3NyAEkoAo9pJUQiCHQyh3RLAIihCIVXAOryd4ClABzjZ+WbiIhYd+Kv8RZFc3ggewBJRYgr7HCxMYBZrIAprYgi14BQXABHEIBnPICSAYKqnQg6vTAjOweQqofIsQA+JwDopQBXsAAFfofaBQe044fsxmgYv4AACwhRlRB7Ama5T4flAogaBwiFCoglGQDMmgiU5gCU7whkdIBKSogD8gBTOQitcjXS+wjQoIBklABgWQjYqwCBgofrZXfsFYewRweBZxgysQa4zXdVC4j8uYABNYAQkAhVGQAQS5BlHgBJpofKIoVH34bi/QAk+gAq4wBKTYkFVABgSABi9wA0IFBARggd4XfoG3i/lGhRqIb4GXexWhCuxHZlsnASIAhQnQDPvojwlwk8n/4I/JEAsZsAYEKQDXeAAbsJFCZWfcqAcPKQRUAAZ01YdgsAcYOZTjeAOL8HreV3v4Fn5TKH65KH4QYBHuwH1i1nJLgH+cmAzzB5D8GAAJEAsK0IwBsAZr4ASGIAACUA4iAAFMoI10VYpEV1ijMAocaZSnd5EEgHs3wJFgUJWBJ4Fa2YwX+ACmMHjlR5LQVgAW4QZM+JJpqImaeAWeKY03CZDS6JhtmQHlYAmqaQkwyASKKYTvpgdgQASB+AJaJQ5VMIN6YGc3EAO5oIWDcAMbeQPKZoHN+JbMBgp/15VbmZygsIsG4AAV4Q4eBwDcBpoikAwvWA6cqInSKJo3GQv+/8iWCZABhmAJyJCebdgMqkCUszmIi7Bx+iUO9oUGSFcAaAAEMTB+/AcGcdibuHgMyImcT5ecMgAKzqac0kkRi0AGYrYEoJmC+bed3BmNaImWCVANGZAMChAAFRALPukEToAMAoAFbSh1jHUOKpoEsVgJDpB9R5d0lQABF1AATjiF/XkDUkAFTWcAu+iYPppvCoCJz9kJMsCWV1ABBkAAhTYRi5AL7ueZIkCNTsCdCCmNyxgACxAGNxmea8AIdikADRCmk9cMAAABwQlUN0CbVZB3hIaEilkFyhZ4/NeXL2BvzGYKzyl+zYlvoAAJ/hh/URiDFOGbYvaE00il1XiQUf+wBmhJgabQCeAHfgoACbHACA0wBQKAqWKKBVOwBgpAAGj6pi9ABLRJm6WqVUk4CBdQiAbQWIewox73d6Cgp3uapyT5nM/Zof/IC8ZXqGSGiThZASIqoshgCMXqBBmgAAZgCqbgo7qqAAsQC2HwAWGwANUgAJrqqBUwZsP4opUQruLqAJVwmIdpADSZiDqwo7lWALg4kgEAfrmqq7rooW/5fcz6qxPhoMewBN+5iatJolMwBU4wsCLAC4HnrKAgqQEgnm0ZBmFQDWM6BYyQkwYAAYuFm1UwiECQBB7rsfZ1AX2HibW3AWf2AkNQCVQIr/HqmBLopwvrj0MqgUs6CBP/cQ5k8ABPOKXFWg7piQxYgAyaOgVYgAVRAKkKy7CUepMLAKaPQLGMEAsGgAaENo59KZtDRVdSoAg6cAEJawD4uQIvIA45e4U+Gq8BsKvM+JxnG5AKkADgV7MTUQVQygsScAUiiqzqiQyWYAh+S6JwMAVK6qy2+rZsCZAJkAwfwAiMS7EcSgBHdwGnNQh1p6IqmncbcAEOQH4EUAAQoAOu15VwKbOH6Jid8JzkGZD+uKRcmBA4q7PNUH90OQU/y7cCYAgDCwdwcAYc2qy2+n3k2YwQi62Mywg3WXjDeJgOcJi5AKXC6HcHYHkV4LIE4AAQYJW6OrqTepNpW6QOmwxr/3AFzgYAKokQT2oAh5iaJWoJAgC0QKut8Fuia8ALyumsnYACKNCy8ZoAH1AN/ssIH7C6aIpaeSeIG5t6QLAIBfB6iLirleC5fud9nXCvkxoAnQAJayuBXTqNBwtt5XsQt3gMlNe3QIsFdnmsxzq7RQsHApAM9aunRooACLC/XFqt/lsNYRAAD5COcKqjWTtUSjgINoq+yvnArXqFCnC6ugoJ8QoJkHCcwBuesZAMAQB/U6sQ14eu9UfCJtzFdjm7JYoFcGC0CkC4pyvDNwmxNdy/jAuxAXB+F6BYcbwBi7AIiAUEqrBxrXoA6CuBlRADF2CSutoJkgqo3AuXHRqXcv/JCGsgsxerEO5ABscgAT67t+1bwnapqXDwCI8AB8owBQlQq5Gav2qsxgvAxg3QAG6cALdXveZqrn43f1fgqMxoAJWwce+6sPeLtuFZwTcpl2uwqRgskpiZEItAZvX3s+jpvkUrxmK8u7qrDI8QC6J8vwhQraV8zRBrrdYKtzF4hIGoCEywsfBZowzMjDuMywl7v0f6fW0ZwC37tgngk4wbC2xZe46IEB7nbWlQuyRaomM8xiWsu54MB8uatJ0Qsf2bzdhaDR8gnqFKXIo5VEzpn0wgDqpgo5RZAHHld88ZqVHclhCNug0LogLQyB6KsMV8EIrQd95WyT/bzAQ9xib/LACerAzKIABlHKmEfM0fsAbWuqVq/AGLW7G2vHFyTAF1jFgbh3QEkIgXyNHKpouoC7dtWbHcG6+xAKJ+uwZuGQvduqAHMQSSLAFpMKLv28zPTNBFa9M3DQcJYL8G0AkJUK1ETdTDu6VE7dD+6GeHCQC58JGB94TDtwS0p5wcTQF+56wyLMNsOcU3ycRsCb6MgAWG0KUJgLD6ahCRbADeZqyGwLcrvMI4zda6yw3cwAgBANJ0nbixcNfcHLFfWg1uiXtZpVW1uLEsGgPL62z0i9hwBa0LG6+SigALkAFbHcoBII1gKgC0PZrhx38IAQRQCqGqGdNhPNOlLbTRrAxw/73a3wexr43DDr3Qi+vQ9vwAqsAEL4CAQ3UD4kyfrSp7iL1xTiiBDNsJCJChyW3VPGnTArDVKI2IBpDPBaEKuXAMFXAFbUi76SnTb80NM33a3ADKp5u214ytes241YCpDcAIOGwKBLAHcaxYdXwBgAwBSOfRzgq2NNrH+zue2CyNDrsGhiDGm/rcAZCIaIAQ55DgxHrdDz7hOI3TEk7QysANhHAGcDvcxq3Ndv0BGt4A/pvDndDKf20A8ycCWxzKztq5NAoAiRyvM4wAi+uwAbnVAL4G1eDVo6mkK10Qx8wLV5AGqpndE17QcLAMem7k323GKADlDn3DGr4ACHDlF/8ABCp6wPFZAOUKACKAnGDbCBtHAHEw3BespVWew10aC2dg2SC61fY8pEtqvgawBDCN59p909zA592N2owQBoR8vzQQ6Aug1/6bytWwpQuQAA9wAUeomGObd6CrbC9rADhQBKPVCATAbIRMA5CArV5tz7FwyhlQopsql7SNtr7apHJunXeu6tFc0EnODd7d3aQg4R9gwbRu3LfetB7uv0I9wwDA0YpldDR6n6/Hq8dAchynCo2wvMbZCaFOrUQdC9lqlzUN4qOuAGZqswbhcUuQAcigu0EL0Hm+5+f+1uWu2kV6zY2Nrbrev1t66HGLvAYQvZa3hlOwoXAbqqy2ASv/sAJP4AqukAUrsH4mcAw0+aHBDNBY8OFuHq+ICACtSxD7SazvO+QZ7+dIjtPaoA2P8AFJTMrvLrHy/u6H3gmm8AADfA6qgO8LDAC8gJYKMIwqTlquwDeSoDmZ0wJZgAMEcAAVEMxnoLu3O/TAy6wQXxAOWgEZoNYQTuSoXeRFjtrasAxrkLbF7e63nuvXGgaNjQK/rndt6qasaqMHQHIrkAVFQGNUZYeYMwPgkzlFcG+zfPdFi9xom+mgQL4G8QKSLAIArfBd3PSk4N26792E4AUVngD6HQB5vevv/viGXuud0Lkbl3Q0WqPbdwAEUATJ4/kroApZwCM+Yoduby/c/zfxFm8IjmrPRXrlsF8Q1H0Mdk6itbvW3R3NfL77ykAI2kAIcLDugZ7XJF/8Wo/GgQcQIgReEXElyhQnaTD4WJFixYoiRR6qGPHE4hMokiSlaoEDwBIBy+DAyRArVphYCSBBAmWAwLktMWW6yXUsjSEnU5AhmyJg5E+gy7hxU6YMTlFl3LR5IXUmTBgEYRZMbVB16gKpUxFsBXABzYUCBRwQIGCAlwhkEkxMmOAjoqoVKlqk0ijErhBJQkZ4lIAMDhYsAqqdTBArQIBjxwgwkSlzEYBjV5w4waITMGCgI5ctI0S0qMiiSrWdYRQGxVap1RpUqzZVNetqTwFsGFS7tv8OVWAdHADQYcKJFT42wMWYqsTxGSVS0YWyAoMELH8ZrTH5NAwo7AZiNHYM+YohQwIsVwZ65mhSbZ6NhhatrFoAFPEXIFhQ1f4Z/PgbMEoGgGxYCHRzYEAfTjjBoSI22CCuEVDRSJISIFyOrkYAKKeyKTJYgzrqOunElAcu4C6mGCDLwAlLdhJAgEce+Qk/pJQaCqmiSOGGlPQagOo0+qhSpgEakRppCsmcYCGNcjIwZAoJOuDAQAOLQCOiuFS4qIWMlkMFCh8OKMcvARipZkPDPDQlF3FG3GKRB45JxpIUxZsiuhfPSIobQrzwTL2hSPFCG2Xmi6/H+uxkj0Y4RAj/SyyyDmhGAgkwYGuCJxNcsDhJWrCoQS0Z6MDLwFZbwKQAQPEQFAKqUDMGA+K4whInBAjsMjjwOw+99GJEbyg8uWEEPhRoILQBGJMSMtEChlNFlQ3AKoCAJikNIbhlsyjuOAiVyzaLT9OItTX6VuoEFBALUHMLMgxYIg1LfBopsClsvVUpPWncjFdt8g0UgUHpq8rQPYuCQ4Bm/FvUAf8AOMDJE6a1NC6Msj1uYkmcO2CADASoChIPTwWlKzXPIeMYCcpJ8TJZBZA3RkJyDZK9pUarht/TgKSRFBo9g2OKR6YwpJwLo8NiYbZ8wOErHzjgIAUrW5AEiuU0CsEECb6D/4ObMwwDZSXEDDB3xCpGZpcnZC7DAr9HQrOR3oCTslGZlvUt7bQFglTvM6NEGHBAAhQ+4Iq/kEljABOOpmCFAxmwKIUUnhiBrhE4wACAKxj5N7BYqMv8iq4YayxsA65A5mRDRndiJF3V3vO8Pekd7QP6DD00xqMShUBZVdAIy4ErhNJmGQyOXlAFBlAxLkJJjE9Fgw4UriAAw9ZgxF04ykamnAMg4A6IXAyowAmcBAA/J9Tv3DM9nWPkFc/OHmnNZvVzLuqRAwg4uG8AMqCXkAMKoGDBAz1uYhNLhQpM8JEAdGIrC4BEAtawojVkYCQCIFxjuHeMWEwGRaXrCepad/+j9KDOg+tz3RliU6iXpfAMCElIGsp2tZb96QAOuIADTOAbDoTgWqmAAhROgIEDPK8TMuBaLMb0wAyoCAtpcIBMzlET6GUgA1NASAftxqt6Gat8RCEEjv6kjNJEpRopfFkzyHJGs4huKC3r3wUAYIlyDAADxqBUCrpwiUtEDogKSKAMiBgASCygGkoKDxbCgwwAUCAmScjFA0ARQSlS0Yov69X6QmO3fGmDEGf4AFQWILu70UhRFGBWs8RyACwMZRltBAAcRFKOObIlhxpQQQf22AlhdSyQ1RBAxnoigAhK4GsXDEACkiG9f7nyVkjBkTZs9LY7sQeEXtATI64Cvxj/4UxI9SOAA56lMBHAcJUFcOO9kIEBD3BhAj3I4QkOeIDDQAIBK9laABYgq/AIwBAZqED/YrKImlQgGVHIyYrolBn2URNQRLnRB6fJFDgwokegDKWNnGCQKBA0OkIhRGdmCIFWcmMZWJCAMdTZAx6EYAJAfB4CaMASQHYCEigJDHh6WQEAoOGfuQBFBaSoJOoBJTQxpCYJ1/dML/6JG48QwFRkp4y10Q4Ai6oE/pqRyqF8FACb2QwsPUApHtTAGAOQQDLkuRKOyXQl9cHCT/vztS2UCBSxWNGcNqo6oSSFqGtbX0c7GjOFaqNWDaiP3YxFCo96k5wUYFQ5rsaNjx7A/5VDgYMc08kFYxzAEmmgDloBuRI/yoCXwMSpiGQSgwdUYA1nEMm9Yhizvyb1iyTsaDMzSU0vjNSaKDQfQ5WyjIsWTGEDcKxQIEtDAGBhM4TYDDIGcADNKretT9kKJOIJCRnQR5+cU0VjFEGG1BrialwVCmd4FZp84RZ9Ij1qF9OrXji4jyp2siSetCGAhDVDMn4p7zgvIFnOaAMZAuiMK5cLhyiEIQAoMYw8Q4uAQR5Ap415AU8zIBJlinSybiOFjW7rhc7Ul1dxWwpuCQEHwhZ2RivGkwC6ubu+HSAKGJoqBFB5rylEwcD3WoYhkpGSMBQmASoJ7Ut5ob3tAQAUtP86lno6TNQ/6SnEfm1ZZzr6pxIr1YSquVOHcYZYPU1hAAXj29/Ex4gaA3gzj6iACNLAgvLCgRcFqOoDrgtIP4JCAQRIU2OksAgDxMIQmAHKjQ7V4ff+icrs+2smP8yUH1XFWOZrpjJ4EeMBXOEKUxjSGuxnY666sp+OgkOBLw2BZ4GCiGEArQxAcQy4NqZEx3hgZo7SJ23iS73r7SijS5xl3HIDxWf4l9pwdOKpgoUAf8vJIxjxAftdwACPHUkGDiAQLJwYDk6YYVniOc/CsAQA3eWOImJQk1q/a7LnvdHaAAviltk3XyR+NDVxZhWqEEuv+VqDf8jCNwCIYA0JyEX/JWzsSub+xBCbFgkWkOEECYjgx581SQIU4DU1KWIR6fpO2TYq0mw6WqG41ZO8bzvvRFNzkymeD1WW+7soKIAXzeANAJqRAUYk4NPH8J2wx7uT6Ojz4WuoQAI+C4mUHCORaiLCxiHDLp+ItLW90mtnUq7oXmmy15qs973nQ58FLsB3GbBfWGRMGaN4ugAH54yejPsXwOhzn5qTikn4Oedzral7f0MGj0EzI2aanORY1mSf/PpueyuD2C13KQ3EjqcrkPMrCIOuCDK0880oVJV/EQAy9rkiCK6oJBYnQ971/sgXYvgn6imfFjg6+MBmsplEzTIhlCGYqXQiPjQ4Q76W/yFcR3ETAFG4wqclyw3c2qgyDn94FDYkPX42oxkG8I/p9W6KZCiXKLL6SVHyc5Sq+A72u0ZsemP2XkAtfivr770mnSAC6B5AAgNw8yOc8GkDZJ7wwnY4rAaeEkiAtZi4gEWwvi1IAtSKBen6pdqBu1oRk/lqtPHjOhDjukfzudWgrjA4A8SCgxlalL6RAHYph24CKeUavM4YKSfIgCFTAFAIEQMcEZFRgEFzgigIifIwitWoCi5jqDyBvXnTvJOztwdsDahAgDMQjQzwNwDwGxG8v7U7AENYhiwLCfbqsWSwOALYgxgcEXcYGSXREPMYqb/4CcvJD/1gLWUANvWKm//YizKFiqgPaLlPurJlYAFNA5/NuhAXWzsAqIC2+5MBsATyuikY7ELuEIcYOIYTOYiU6b7MQAr7+Bd6GbzzMz84LKopwIoFagAc4Qa9YZS+WbZmSINPI4AKYIQA45/eWYYltJ8YUBVELLdFvIIMuAIWKAfwiQ6BEaqRYIQKoD4DiIwAI7xMYh/EUygT2gphsZN8EYGyG4tGEcFPAwAFiAWO6jHpIoAhGIJZzLtajIITsYSD4MVenCARAAAHCJCIgICRmcIfNL9MorcsIwXCWr8F0IKlIIRykL75G4A0uIJyKD4/PIYEaIBlGMPNwAIA0IFvzDs24QXJAI+TsbWdOQD/HICYi4AIB2iGUssT9LOtSiQ5MDrCBZg9LLCEjWo4biMAHAApXoCwf1mRBliDA9iAhzyXc4CMqtFDlaQTgcGCAcABV4CCL0gFEiABTcmCRiAAeCS5RNO6lOOGFKMPuGkZQ+KouBGAD4QAA9Czq8AKqQiAI8vJc0mXs1ASJTooOLCEDsiCVPiCL4CBSyABKNCUFXAA6KDCPxEKICQxhQKjq9ACv0qDKcCT6OgoOFDHtWuVldiK06CBPHMAcjPLxmCTY5DIXgI6szEEAFgBKECFS2AA0mQAErCIvDyAvluKZbiQ8QPCpmiNuukVEdwMgPwSZHixAggiXKIB3/xNGuiE/3GzzO0hAwDwnjUYH4/btgPwAeJJgRDgAR7QANOsCKa0kABbBgmwBOSLPTb8k4hqDcLUpC/hhqGRvwEYgBLcTVAAJMkEThSABIwjTgvKBchIAEIyGwnAAeJhAB5omBQwTRKoiCdYAapRrnxBUKiEynp0tk/iOlnhBmTgjfmTAN08hmJSCeAUFlerBPrkjnNDzp1QESZaAVsQTQagzk0ozRGoiBXwiN4Byat7zS+yJn1MUOWyBPSc0AFBtQPgIzyTAd/cClebjQ+Vte4JgCTyvCswAdAsAQugy9NkgBYdULx4giJYtmwrvH38TthbuTXMF0PQryuoUAtVrAI4Bj6ChP8NbTyynLAj3YJzWAQCkMjSiQIAKIIWKIEvMAIjgIEBHYGkdBqNcIW83MvfqbfAAkIUg5v0UJSqwp9u+rQ0fR55ajzgHBeQidNFGhnV0htVaBA/9VMYQAVTnZDlaAEV2I2QoDJ6Y9DBEzbO8KgLUIVFcBaqQjVeUIDnQQE/wlQ/IksHcEhOvYEvfAAFaAYH2AAGgIEvOAW5/FMLsIBU2BJUsAtX8AhCZK5ZBcz0gjLcGgleaYYLGIRluQAIQLVKWLsCUC0AFNJg+c1OCAAFMFJO3QI9AALwMoBlbQEYGFUYcAE8GthTVVUc8BLj+iurc0M3HDzXAkUIqI3cwVV21Sz/6lg/l2o8GSimsrzXmAibXCCAIkgBDUiBIzBZ0uyCpMQjB2mBF32j5WKuobDAXRs/9uGGK4hYc20WdAWQ3fyOBDuM6vpNpKsA0/LYLeAeAMABHDoBHmCc0iSBLdGIAm0EE+idm0XGv1K5H7TEfMFZnTXXr+hZsKCch0sGqUCAANBYedozz/FYfQUADMChHGKckmWAS6ALIcBLH9BL1zo8wHI0L1W0DEiWZdmAsQULdCWAZggPCIQKNn1PtTUAnERakG1CHAoBzQ3QAc2LTDHUvr2xXvMrRaNAGlU0JyiAZVmWxI2BC6ghCxkwCFxbBPhVyTQAOL1XcTDOJlwLpWkY/yrtIbvIlAJ90ejqVgsMwsFVL0OgzNW91dd1XWXrCydgBGuaJ+wKrVeLNU7lnjZRug7IXA0YgUvIiKfh2w4YAOVqNF9rNJFbUG1oXtxZBOiV3lMCH+pY28PwTe0lgMq91wuqAJmT2w4oEJKl0hHooRFQgeAwgTRYX1eN4FeFPW4QABOgjUEAAvpdhD2wX4QRAUtgwSHCLjYVUj+iXKQFAgCQyCXghd5tWs4dgRQNAQ74lAshr5gF3AlWLxDDAgJQhdo4B1ulX+mFgLGQQhFWtY4R0pXoWAC2uYAUgcQg4AIGUMah4ZV6YOPiKgmGtxlVKB+mjXM4hyQg4iIeEMrJgP9SecFGGqLsggQF8FCPfQxekAApCsaEAYC1oBSl4YAJ8IAB6DvOGGTAlUoSA0lLXIbZGIQxLuMyLmJGuTl6NQAyoNNjULVgHc57peNXsYQ5YywAkIADmKOv4gIPwIBAVq5s7NbD0+EvXiU0AOIkSAIgeGSv0I2yaIYKeDUCAAteUDXJ7AQDqMw45WQ4+cC+Sc/nwgAg0uIcZuWFtcCtq9miIlc0WIRZpuVFkF4BqdM4yI6+4QU3Ds4je4FNhowKKAecGBxIGZsX2rErc9UKpLJ5o+d6LjFCUJRsTgIyRsDX7WbIaE96XVMhfak9M2dOpWOfAo8R/RKHkxUcjhv2ocL/wmu0KkterSMqQoi8bG5kf/5nsUCYxMAO7JCp30SAeu2zYl5hTdsJuzIbzeivKptpvxIpwQ1CLIubeEwGCBjjRiZj1w0QgL5kJXZjP/IQ3D3nOEiGKxgbWbmMkVrJHPa99b0XqVS0Q25YPREBCACCc6gCn/7o1w3psbjkIeoYyTxqUOBe+gQvXmgzJygbg8KMwNixrPVA0X25ebToesPZCzgHcRjjKhAHBEzcGpJGyJCpBDJqGRgXAiDWIy2RZigIFjiZ0ZFrj4vojuLKK8ATvU6PmuZWCWyZZbiCCwhscRCHwS7sf8blsfjKw3g1D2lsTSVm+kQtiRRIDQKP8FhBOYNiLanbjF5iLa7SAuN2veM2LtfjhuNmbgHgBTRQ7SqYbrAmQDQYW1QL6bIYxpE2lcR4AAM4WusLCAAh+QQJCABQACweABcAdgCrAAAI/wChCBxIsKDBgwgRgmtCqQlDUQ0TSpxIsaLFixgRUhLFcSMdOrPoUGoYMaPJkyhTFmwi6iNHkLJkIZE1i2bMkipz6twp8CVNkEhCjcnBJwdRPkjHGGlphBLPp1ApUgI5NFQoo3xqaN26Y0eNHXxCxRTZJKrZs1NnDTVq1GuQIFrh9qjRoy7bmXTKnt2bU5qoWUGN0kQypmuNCYhrwOXAmEOIEDuMjlEija9lk8xcrMU6pnMOw4gnHJ7AwZOnxxx68EC64wizy7ArRmDAx6tW27a1ekLcoQOXCb8bq+bBo+4IG7GTH5TDDAZRxW+je+ASpAeHGlw8GDPmYXqN1N8fW/8PMUO5+YFySlEyojZuEODd3x/uvr07F62JU1s/8aTyefN+AcZHEN150IF2xnBBHRfc1cddaMAl5gkHJ5T3n3KUyPJcEAzStx139Gk3nQcQZjddfi1cqBwdhGVFoIcfKigiid1BOEFvBorGQQlyqBgbHTK5OJ0xvYGIWHYdhPZdY7t1QORvJzADjo+XNQEkEjkoJmOB9ol2wmMaPDGCLaiUqQIHN/YmmgVWUGmZlUGNwUddh5lWgyffnaDCCJKUYIEFvkTgSym+oHJmmr9J0qObe1kp0xhHpKCBBgwwMMIIGqjwRJ911BHBp5+CAAIzvrSwAm+IMYAco2exJMtkLrj/YAuZZJaZSiozMONpBF9EwAwzojITQQlPnABhCCCwapY0pRjRmRIwzArDtNP+6UuggoIKrKggDCuJBmgitsJrykIljRJDQTutLdWiAqgFJVybbajcilqHJCqcsNsE45b7VD3SHEGcrKhMW6a1f1o776/1jlqCCivsW6G/TzHDQA8pKFErKtLCkDCg18q7bb0RWMDACeFOTPFOEYTQQwgE2xKrrB5b62fI9NZbh8krlObJChaunFPLjr0y66yxsuvxtQgHOnKwdRDbMwc+rFCC0DpZzEMIDMgq88wFM50wttz+ava9+k6YBdY6gYBKCDxo4PXMsVbriwXuWlDKp2ab/x1BHamogCcHQbONEnMapODCKyS8UmmlYP9Z5sF/3vypL52OwNgKyRqukhy2UMqABiGgXBqFRzAAA8ejkx7CpHuikoqfdWjOgQqLeo4SOCa7wEDpFDI2oWOqo0LC6GCOMLns8Y6A8tW6pwSO22WK3rrrXFvwxRd4a3DCl0+kYsHOUUvyfPSf30oCCaSHS2EIKTCgva8P56unCn3+fe8KJ0iCfkpyEJQtfvc9xmQqcQxAhdOidqsSlKAOv/IV4FSgwFL8zyT1sIIcpFEmEoyAASoI4RNUUCkFBqoOM3igr/r2qxJIwgLAuiBGrDCqDeJtVgywxQjEtD4SwMBpuvpTp/9Y2Ck/RWBVMqyINIxQig0Walbru9SYGPfDFYLgbhZYYQQ7VSgYJtEiNigFHaQhjS9wzBaNe9wIGKdALYZsgX8L2Z/888WJgOALdChFGXHYQ8YdjwR/0hYEtai/OmDLF3Sso0SYMQsm0kFW63uFJBnQQxh8YW++AhWovoA5eflKkRUBAXvU44JIvmJxlQrBEVwQrVQEKovCEtQJRdY5UErEBl+YxSWjhUZJOi4Fjlnl+kCmyWwZ8oEgaJMtJ2KDP4HAAlCU5PFSkILU/RBzsiwmF7OIxGUmxAozSMUdj5ZGxtUKlhHMJqiulUhv3lISICgFFG0hyVKSSWGadJommZH/O3dOxBo2cJspfUkCd4lvnZ7cog366U9mpsKUlXJcQScnvlS4y5goXCgUrCCPejRUIuBcY6WAuTX4lbBmB7tWCWYwAxCAYwhU0IMVZmqFQ9j0owSxgSQ+6LhNPI6VxBTWxxw4gzqAQwdDgOkNlgoGMEjhEDgViA1S8UEG+LKeHuPkIR3I1ZaCowUtUMUGNoAGCuhAHDeAalShUDvHXdWqSgMU9+BVggaWgJ8tyMIGVCFWCqhiEFRQZlSn6tZJmnNab6SrXesgh7zy9bGD0IEU5LFWKFijBMfrGj1JYAtrcc8XDrxVnyzgShBkwQ1o2OtjxaEHyq7VBso75VXZJVeV/96qgQljxhOKMFbVioMJHK0sbCcZUTbm7W51tStpHZgF3vb2r0zQgzPWagXYbiJ+16NkQW/LXT/5KRWSWAFvU8vXs+rBo1HVAwgkwQBqSipxksLuCEggCe4mDLzNRUNqxzoIcVgBvTilIXtTUNLHlO4E1AxTfW8LMguElwIUICtf+/vftcrBbb9MAfxQ45hMLZir8YpaC4pQBArsdwP9lYIUuulNGwiBjKh4RaSo+RgNfylTspvd+DxVPhJDWL97RSoFspAFcQihxfhSjy2OwOT21rh0r0vgreAFsrtJwscm5i9SHYABE3SgDT7IQgugl0Qb2OFMMJBne1PnXg0nWP8DZKqoJ11YYhMD+a/iIAAADrBnAni5aitowZGjVw892GEFPpiACnwhiSf4dMYauC6NU7Bd8TU4FbvVL4RNXF49G4AXS1jCAQ6AgS7joA2NIHLhKGYFa7TAB73pQAhKEbiRthm+1DSa7Kx1txGIV78QCPYF0KAKIOQCAAb4NC+WPWoDAAAApTYBDlawAlbbYAZPgLUJvHyCLxBrUkyG9Ibjt92xGeoJK2CCOIhN7Mgu4tgGOMYxli3qJfAi2QbgM7Q74IMiCIEKjAKnqbSNgWf7AF7fStwmVLCJSSVuUsb92AhUMOJBDEIVjmDCC8Bwgwt4et68mDfI6R3qA/Di2V7/LkIWnqCiaxeLNwUfNQA6IAlrWOMJk2KATx0+KZ9yNsfd00ALxCEOR+xhD22AAIQ/Lu+QgzzUoQa1qJedbACYoA1rO4+ZT5UmDBxAAhIYtQlaYA0rUCELJPT56BLs83uiYnRPmIEefqCHJFwAAgUggLOTLfVljxzq9Da504+B8kYox+We6I0JSn2AAUhgCY4HwAqoYAMrDCEL8z3epRquAV/WqnV2kAInOKEHcVRBEeKAALznHXVeKMD1r/e7vOM9+GMkmwAUiI1OT9UBxoP98UuQwAAGAIA2hN4KUhCCmKSIxsxWqqDsy9QL9DB6PSyVCIpQRS4ewH2pL6EC4Je9/7zHH+/xx6HqBNCBZaxhh5ebYM/CH77jhU//9EvBCpxwtZh8Squq+tHhZPcD1acI2OcIMfBsD/Bp4Pd9C1h74/eAycZ9hAcBe2EDJdACxtJ7jSd/HCgBIjB8EgAAqjB9o3cDTPAETyBl4mM8x+NwcScFAkh6VXB6QEAGAMB9BgAKCgB+CxhqCvCAtgeECZiAAFAAg2AWu+cDsFZw8ceBjjcALBCFLCABFDAEYOAMnPADNyAOJARIkpNGsCMJTzV6pLdUN6AIMbB9CaiDFRBqCaAAcBiEEihv3DeEdfgABECBT+FyvPd+G8iBUsgCbDCIbMACAwABTJBWWPgDRNACKv9gNH+SCtcTJjMAg2SoB2BABJl4gDh4DHDYhuFHh0Foe3f4AMdgitxXhDzRauHlAzjwfnv2dZAXhfJniGmgC4R4iOKgCGBAhj/wAmCVNwMEO09ghdTnixwHBopggzgICp2wg9AICkA4exF4hwZQhw7ABDohBXaQBfrSAYv3dWAXfMIXhWnAArqQjpbgBFGQDEuABkzAi2AQg1oYTuCFcyL0b/NIhqSXiWeohmsICgEwkAHwg9J4DNIICjo4fnNoe7eHBiphA1RgKk3ih8EHdSLggVHAApagjuvoBE7AAgewARp3A2Awd6P3A1IwA43mcBRXiTGIjCapCADJfQo5kHD/eJAIqZAKyZAPoIMH+QAAsAEpkXw9cyMFBwBgJwIiUAG8wIPJEAW6YAlUiQzCgAxOYAlsIAHwuHEnGZOkNwQjNClP8AI3gJL8yAmZKAVVAJDypoMBkAA46Yw6qZPjpwAFSYcGkHsmYQOuloHv93tQF34VkAAJkA2HmZVTeZXI0JFUGI+a+JX8aH0t8AQtMAQmeQhpSXcqKQU0WYc7KZAEGQA8+ZM52JMI6Yl4KY0JWAAmMQSmciN+CIIVIAE8eJvJkAHtGAUgmZWNKQy6wAIOoAOKYJJNNYYpaX0vsJxNpZn82Jx6IAVMcGw2+ZMFOZqgcJqmWJd4eZuz5wBHiBFF/9AG4Oh18ccGyQB+yZAA4AeH7JkBaZAB8ikMjGkJwkCVB6AKQxCZeqAHh+AMPwAGL6AITDAERLeLmuifdFcFTqVi4nBsO2kAncCTAeCJeilvCqCQcLihbxgH40cAioARVRAD4Uh/IhCFTCkC6ymXeFkIySAMUSACU0mVTkCfwuAEyMACiGicKnaGF/dYf6UDYrUOSbcIg3ABBWCFVCAFxbB9O9kJpAmX2WmXnsiTOqgAhcCicSCNBBCeFlEMBVBww8eUCRCVaRAFaLqicmmYupkMbOAEGSAMAiAMWFCnwJmNS4V6G5B3z0YAfuoABRCoDmACgCqoDoBi4jAEbrB9PP85oaQJpVNqpRMKpVEKCaNZoYSnChhhbEo5pskgAufIju1omGtaAfGZDFHJm1Q5BVgwBffpBBJQAMEmq4iqAxdnYpz2W2bZVHq6AWZFBe/2k1ZKl8P6pJ0woQrZCXKpkG0ojQDAlxVBBWhwbOWIptaaDVGQAckwkFdaplGJqi9alXQqDFNQroLIArinAy9ABey6VGZphjdABMupCBeHpIBKAQ6wncOKrMfKrxJ6rAeprAkACiwqjXt5EeJwgKMmASwQBW8qqu2YDIUQAJ1gndmwnqi6ANUgAAJQruQqAHXaqkzJZ4A6q4F6sgXgAH6qZ1InAQ7wshj6qMjqjMc6kP3/6owBYKkEmaUJwLOkaQAFIAUW4QY2uIHWmgYd+aZRkA3ZMLE8iZdvGJfZwAhTkK3yOQUciwXrKAIK4GwEgLJgWwAXMLYpq2dFCAEOEJqNOqmj+Yz8arOkmaWoyrNd6wAhWhGOcGyQ54HJgLTruI7Z2rEV0LWnSaEB8AEuiqryCbJYgAztSACqoAMa11RNZZyUKwUCqm74qnQFkINQOqmSeqlP27YFiao9S5rHQADaiLe5YADfJwLymQHIMLuWYJU2GgWDK5AKULMBEAYL4K3ZkAFT0A0CcAaP8AjJMJRnxQQaN69MMIMHKg6qgAbrkHcQgKTch5cU+wAAG5eGSZCf/0upO1sIF6utg0t44mAROtC6S8CUOFq79WmfdOoES5ChyDqQC7AAiOutH1CuAkANj8AIHxAABmC2K+unz3aDyHYAS2CLByC2BSCs/cq7cjmQPnupBJkNsBu8WZqhBqCpFdGkAAB5uuAEM9qYH5kG5DoFg1u4A/kBMJyePdu/rArAMPyGBFCosjq2Y7sIPoykZftsF0ABEYyQk2qd3xuXFwy+BdmzTCuf6/mDB1sRnNq+WUmVHduY7FijrIq71/iTygrDH2CY6/kBwkunUyDAXduV7NqgmPvGVPAC6nakDmBiRWylYCyaLZrEOEmQYVAI5CsAjFABAUB1rlkR7zbCEv9AlZbQqq5KriDJqliQAV1rk1BaCB+QDPsLw91QrtSABYI8sAXwW8yrbuoWvRfnq0hKAOuABp1rxBWbrKI5kGHQs6Q6mgngux8AslOQpU4JtENLrX5rlXWKlUorvKBcAaBQh6IZBh9QDTH8Ad0wzVibxjCsAMiWwNrMZ+LogaAaq64cb6V5k7g8kLdMmgiAAL2bvxubBmnQlLbXpRWxB8c2AH5rn3XKyIHbAP+bDRlqky/MCAI90NXQDQ3wCGkswOtpAIA6xCbmw4uABncnqGZbAK6srzRLs+VMqhUcBgGAAPk7tQKQBoXpwZBbERewZ/ZclcSMwuuYAQdNDSycoc7/iAIIEAYF3QBT0ADdMNAC/QjTnJ6jbJZtLAXReQMvMATMKw6DsLmuPH4Z/QAo4Md+XMHqvAAf7bsbKwBNW8G2dwEVcYAkfJ+MjMJsMJVOwAj/ewZRQJo/adM4bdBnINAfIMDVINDdsL+QG70H6gipLFZogHd5GM5RPcFQqs60jNjem8sLEAbE2wCFUA2FgKxTPBEF0Klp4ART8Juz27hXaQkC8AjKoAyMsK1gfNPJUA13Pc2M0A0F7dPQnAzOps0LvLChJgJv+sBE7LkZXdOXGgY3DaWGWb5qfQYNIMBZaqk/eMgToWftC79XiQX0iQWfrLWtSg3KQA24W9MIkMt1/53Trq3a0NzaPV0IDB2oPbwIR3eyKgsA9yarBJDHyTqpnYAAKADXwJ3Ovpu/hUCnn1za1VDB0gieFOHcIgCSs2uVjFun1f2/1EANTjC4nWDTz8wIqt3TOj3Nrl3XmZwAXaoIu9pU2FfKTL2nDgABFy2sCUkDMoDY6hwGvgvcA4kAkp0NDi4AKjqxkGCpJ0eUzd2pi3mj/v3gDx6yRA6jhAzX333XjPAIxavhdB3gBoAGOnBWROcIQArYeHfiRHyH8W3EMsC7wL0AO57ONx0GjFDkabCef4yTCnAA0IoQOqBnwjejTgCyRJ7nrUrdDx7hoADXTC4APS3oUB7ejd0JVf+XwFA3ALcdqkWIvQlIAGDWAQCwpThbCGSOABNbCPu9APzMseuZAU1rzm2YpBKhCnR+z/a54Ay+DCHL54wgl/UN0qvd0xsu3g0g3mGggwDwtSn7ssCOwEsQBUVIAfGdnQ4AaD6gdzeZy7SM041dDZ4uyKLOtG0elwqwBPKcEG6gd/a8mLPL6nye5w9+BgP75yiA089cDTx94eKt2vkLCgCABom6nKVM4oPgyrJ60bZnAj4QAiG0ApQeB1g6kJYaBk3Lzq2N58KgrUmskASQvgmR0gYwfOrY2dLN4NRACMtA5KOtBh5dszft7uw+zbju2jAOtKpAdEL6o49FAXgnq/j/Gm+k1gEc4HAngAN695SGSb5TK+3sTuQCUA3Z8LsVLAPyLvEIcQGtKwFTWcySnOfLwPHjPtpnkN/prLGq3QANYNwGreHinckioG+yGHwM7M1R8LVoawCvN3MTcAKwI16N0AYvu2fgJ9L/uwx6n8bSDsiFgABI/wAgvPRNrwvIIN3RTe7UoPdVP9pYTbE2vfVcP9fTnOsFLe1hkJ76trIvi8BsLwKP3rm3l+wI9nwjAFZE1lw4sGdpkA0PrvcQngHVEAaQgOmB/wA+jhDvZgASMMxGrviKP9rdQMDcSwP5y9Nfz/WurfWNTcAQELlER+IlfgEvWwBE3OsOgGorkCmx/5MKdvD9diAJkjBiBPB1GYAFen+jom7LFLvMD8DcB/Fux7DIGP/q4774n/zgo00K5g4QAUDJQLCgWrcGCBOe6datWrUFEREoKEBhgypVgzBi3HABQgEHBS6AbOOjyAoNKlQ8GYFKkqRUMUvElJTFgQRhy5ZhESYsW7ZCASB1AgXqwQM0UJQuZeomFy+cyJBhwTKVKhZqWZURooZVKyll1RB0QoEAwUOGDdQ+VNsAYhgEARQoWHIAwIEDSyQckCAiiggAFSG0aXQSZcqVT560eBnTcYsVJgYg6yo1A1CgRUEZAMDUs1KnBiRYsiTsKjLTWakqI0UqKzVlsQmdqWAABf+NiGrPqFGrEGLEBWESJLMLgMBxAgDuLoniJDAakD58nKAeQoMGxYufSEKFiqYtFRMOWJrqU8DlzESPOfjseVEuAyKckMci4CpWqllbK3sNuzWjABAIw6AGziiwt4ci+i2MMAwoYINBdBBnQnE0ogCkkChIzoTpTgjBQxVGaGFExl7yLhVUwjtAF2GQOU8AoBIA5RiiDLigPabeE40006YQQIAp8OuKGlII4e+12Eh5BK6C0HrkkTOiTEgtgwwSzgEKLLpoow0+ciBDBwAwYQIOqPMQuxJhcsyxETiQTBcnBHgIqACI6oQzCnBcSsMdyUNtCmp+fMQr1rZwDbYkjWz/IAEBFSxwNzWiPOOhgx56ZAon0tB0gCU6rSANXXQBAMsCOuiAzDJPuG6lNNdMRRISNBBvACeyqYaRQgqpoAIF5AJgAz2VuiA5WkmTaoogu8JKmWVI2cJIRBNV4wMmq3n0DK12k7ShKAUozjjl8FqigigCu7CkVE9YYYXESJSEMcckGUGFE0yQII1sMhAG114rWIIXAPIM9gLlBoCzJ2GCvEqrQg2NTQ3WCDG0G4kILFANiB9WRg1qOKYmGQgglFAHHQbZgAIIQqqoJDLP1CCEld59d8SXYJLkCVntTeNHAXDllVcFjgFgkYGJHYAFS5xI2L77mt3i6WX6a1gNRhYo/2gBtxrIOOPYulaSgAIgoACNjdDwsoCKHMCh5Q81YFcxmWuOF7IJMBjAPmqWgbEQW3/KZq8C9BwWgHvJE6Y006wiUidCCImaYWcJIcUtswx6COMoN44tWmXOyCCDCvDCy68Myk371DJDUF31mOWOyY5Xn1hhAgBo/WkOKakSwDRh0hiAAIE9G1wCJ/RVmKfU8m7t6S2i9trZLR6p2lGtu7aetf2mMCC55JS7a9fAhsXAgwk8Sd26mN1t4THZ6+4rqAQKMehHYfTV14m9khKegAPSQM20+qCGKowr0hbYsQX+sAZ7T1PGI36DtShB7AzXUyA1lnCBQUSoZBoxG9rEBv+ANByAfOeD2Qhs9hJ43Yxe7suVUOKSgHz15Eef6x0BVOEZN9xFArpAnBPmk7xmFYkdB3TN9aCnDEYwaAHdgBKiOOe1DBAgZFs6mZfURgEAmCYN42ObdVriqlTYggEq8EQHAMCLXgUgInyrH/3sk4Z7LUF/S1mEDn1YvPlIZVmtaVyRwAKbaPERLBQzCGy4RsHssaAuolvCzkQVNgAIYBmEwMIAMMCFGqQuRN1ZEyoYoAEfYOAAFQhAAga0gFxlY2lME4AIQhc8YekQTknzIVZ0wqwkRa6Iz1PG0ybXgIhA6olgsZ4w8OK95VRABGCDAADy9jTHDcAYXCifJ1RFAk7/oogBIegABtAYgFJCAhKoDEMG6hMo+wijAp3xzB50mAY2sCAKP5Eks4IIPV9aL2/MMiApeGMt3Rwyl/sJWEYymMEOehAAWFiGAYdICEtIAAMYmCaZrEMCMWrgBGY8Big60YkAyECckGAjFhhRjfNkw0GficFdBtCXZAwnA0gCy/KYh0AKNowUDsnaxYzYmtZUQCRa2kCXQII2LOZNYgd8aFUsOU1rWudlZQTAMUR6VRlkNQDZYESgChE/XtzoM+7Mi1+SkS8BGNFQEjMgTveTQFIMcQtS6g2kMgbUAi5jCn8RAadYwII4HcABzWQoIYZ4WLkuw5Lki+oJPFG3UVZg/6RZFWkA5CcAalyGIjhq6ShFIAK0Lst6yzuswxTotWexwzWU6kYENwZUyTkMMMfxngF4sQQCDBYAyJgkYktLCF2MLwiZ5MBjzTgAEfAtV+KkQWXDgNJsVIA9OHInAHZVgc/lJyvLSJJDHyo5YsqGtEZ6xFqsJalc9pEaDhBZBlXREbRBkrdx9e0Bm7dYak5gAt08wEuV+dUEhFSkkAhDITKQDAKItT1k3VU2MLtdiTWucd5lB3iB+jxnqTZSPT1v1yQMlgNUZGxoyBKGIFlYCle4SI7bIkWNYQwMSAC5hShwMloozqwigG8GmGN7WhofAE5ywo5bMVsPaOHRQk+upP8w0G8AqgbJ9bE11IgCrzrVKfkEppk5MaxvEUiNxu3Edy8dQBr8Ir9qfNWyOBbnVwMXLHc2kqFbkbBOGPestkpOyHgt4NOGCBYH5sYtd2UeV77lPbyAjWAiAHN92UENSzDUzjtBBhwrEFPlFjhXCBhpAnjRYx/XThf5iZqkGbdUuT6Lzn6MMPMO6xpgQkQtd40tKaIAgYxw6UJha2YFBKDk0i7jsyIwZ5gVqxwDKCB+2QjOgDidVQUQIFhKCdMA6MNQW046tYiN8ofBO+FXd84hucFWxKApALDFN75fgiSzq3GGpYJXGU4QAS8qIIy8RW0AxnEAAQxQAfnFpRCQqCz/KN6spyoUgAATxYBy7pWTqOmkpjddsS+/zVaHGoohlusG16AnuTM4gQUiWEJf/8pMAARlAWcQomkDNS5V2lkXB0DOGUMKibgIRS7SnnYW1vXzExS3AyYgXBrwLWEjhznKRZ6wn59GjSYDdDc6JYUCQgKBkYAkt5DEl6zj6rDtnicZ5tQJFkLoPV50gtOQKCWvVjptJgjhVSiSl2JUsAIf4IB/2XjmTZG+4iJDM9xRR8jUGxcbAkAog0XNEgSwDkJd2KoBvXz6a6L2o3xXJQ11+Wb8gqLM9UxbKUOoQx1SYQHUr+ldTyiCA46RjUm6Gs9/RzrGD6gMATyiIQfphiTx/7rMfnfvOFcHgCXSEIUMvPvrkgNkf2xJFWEU76sLsOxmAjMI0UNBCCWogy+87wsUnd4Cr2pBIwigAEn2NtXP6uOHSUtEakDJLRBprS7nTfJDM7N/xZO1Ggr9x0AxkN05g6ugn2SogAcggFyIAaLJPiiYge6zABiAAVQYARKAiZlIBTvIgjYAAPRrqPqCJmJqOlT7I4Y4JYPgmilQNDTYADTIOpEggCXIADnJjT5znMvjGQAKFKVxAgcBNQdkhtNDBVuwhe4ggQuUBNixAyFoPQMoBJZDLKfTMyGTsrZyDYdgECVSA6CKIrFBGQy5OgIgHjmBi5U7AwH4sKxwo/P4nP9kwC000AEHbI8SsAAitAUkREKXcAw7aIE2MABQmAMQlEKka6gCej/HwYKEgIiCYLnNobnu8R7i2xmTCg5O44wliD1V4w8giantwaA5xJE6sEMkfIVX0EPvgAk7kIQiAIA4gEJUSzW2kpg+27YKCxRG+ACzQACWm7JR+RKV8aBhIR5qmAJqMQsDcAAMSIPYOzIsoLmQWARxCEU9KT07tIVTNMLuSL1XyQIC4IVCSEMvYz+ka6uMO6Bl0D2ruY0G+LZk4AwCMAFgFENecIL4qxoBWScQYpw/YwEgpMbPsIIZQD1SNELHOJGYeIIwqQBBjMX1qzAJ8zOmusVuCINOoAH/3NCGCBMGzkA044Ck/kENYDKLQjA6FKuwZUiDgwPI9pADECDIbAIjm2mBUDoA2OuyEISmpbqpw9IruLiNBcirEBMbx1OZoiQc1BAAiWCQo6szLBABBWNJz5CDUvAFO4wXMBK/V4kMA8iGdnQ0uXrI0nooasBHGmiADNuCDOA3tTFKCBhDXZAKytnFMCiQZlmGM2AEoZLKgBzFIURImajDDBw/SVgBM2JIh1w/2wNLQpiC35g86NGreGIBCdgLEwBJCWABZNg4BMBIjLQWOamGneNLptCDGUARjMqmOnSMGchAx1CBw0xDh8Qz+wpLR+MKYIIgtlqGKMiLzLQEFmCm/+QYDcqghgW4jdu4GolAgU4AgKiUSioQgrrLQ5coAeuMiRk4zTVpARwAgCUQBnAjxFQDy8MiBN1ji3gLoQNgAap4pAIojhbBijNYx+QsCLOgAQQwAAggzaWgghm4GQvEJsewzuzUzsfoTgnQxPBkKkpSBvKUK2UYt3aUGGoYFQLQzJlTGUikj6wQCxQoC/zcRRnohAdYSdIUSJawQDVJhRLIzuvkxicwI12owpvKuIgCzwc9IIZ4NwnDAgDAgQ7orwOQR8ejuYWqCtigmM7sTM+kARSQAYPjT88QghYYgSLEQAJ1DAuYCVSolwPAgggLU9mjBhZoqBSrL/NkhCjcAv9qwABTuZcDwAEc+AgL5YninJT7bFIn/Siek1KlOE2aqRk7cM01YYC6GYAqdBwjsT2nSzHZO6BL6Qbo8VEcsBtLktN1eMt+O5xREze4wEgmJQvmBIAb8lMosIEZEIJVlITxc5UMbBMTWBEJozMxDUFHk8hbfIRm4YpRqR0W+MV1WIcvyaKX0oWscEwEkIHm0tM72U9TtQI9eAEhmFaamTsWTYUR2KhlTNTai8jyrE3ybB5dDbPA6De2RJuQIBzlYAFAwYKKRIDb0FMUeDtThQIweAFrWMUUgglUeAJtHYDC6taIzDhcPVNuywoKTTyMWIQLGAmxQZua2yGsKEMmbVL/FACFgKlXpbABVKXSlkDCTdAATzCG/gFT9uPWgTVHgg1X2eAKG3KECXEEIGhYj4iv7pkM3bHE+0TOTuAFEzVVa6BSJPykE5gAYzAYMC3E2ps9aHK1iSTPIooaGxKHKqiCCWnYF8y67inZ+mDEPM0qorAhjVUKPRiCFngCevEELoixUQMzgSXHiMQ4pwVXLxMyanhZqxUHR6DZhkXX7vnOrhCGamCSZFVWGuiExBtbpbCGFlihbnq42OtWuH3b9ZtbLzu8qaWQvb2AF/wIrQsXSsQCsRBRUIUEUlVcKIjWLJiAWMVZrDC2lNVJyQ1LngTLZ8GCzI3ZLEEDhvXcmjsA/yfAimzAObNQVk4LABtBXaUAAn9z3Wyzs3KESMmtUZ6USO9qHh9VBQmZEB24AItQhc71W5fCrOHFOebCDeR1VuUlg9e7j3yD3oFdWglTzKaz3jH9FQoRh5mlgEVQhUVYhD1Qt+QAXtQohIrFua86hp/V2PdQAADCj6tA2bfNs6WdSNl9Fmo4gA3I30Fo2IxIgkXI2gKIge4pnGQQsBzLKv1UXqV4j2PQl6lQjQGC3yqE3zC9YZVtuodaBgnYgO3V2z24AFVwBJkFX49ImYWrHUsQgTq5KoKD0gJQBBbeg1x4PfIotYWZtElTulMTWG81R7kiBAmggEGIWSAI4oyQ2f8kqCIvGWBNqQCPoixxOgYCcAQWjoEqdgIBUhZS02I/PrXJxTOdRNMxptqYDeJFGASZBQJVoICaVTiX2jw7cWJQIIBpVF48VgD/0aMsft4/7uJyDOS5JYQ0uABHUIRDvoBEllmZdWTHg2QZi4IEIIo4xjEDKFXUpWJeSAP64GRTMzUtrjNQnt0QTAMIEAdFsNozVmUiJmIgILG+DRMZcyUF0IxOECfkfU6NxeNjEAGj0yM+ft/aq2Gl8+Kd9DKVLGO9TQJEBgJWdoRFaLyUCRNPgeNjoBEoDYBjuAAiQN0q4OZGIg+lmYri3GJu5VbZrWCmYj9hcIAhJmJ2JptmXuRIrNVa7+yUGbnnoriTArjksXUEPLath0OYH4m4M/BjHJw0ZknpP4ZdnVBJd4bZM04CdUZmq32vouqgAbatozCAozCKAqgClgwIACH5BAkIAE8ALCUAGwB1AKcAAAj/AJ8IHEiwoMGDCAc2WbiQEiVRlJqAS0ixosWLGDNqJNhQFERRdEJCjChqo8mTKFMabOKxJZ1Pn8aEQkIzJhI6KnPq3MmR0suQn5Dk2EG0aNEcRhw6bMKzqVOKDz+FyhFqKtEaNYzuwLojxxiYI5+KFevzUw4kQYVeDTKB644eWHvwoAoz6cSxeFNKKxV0KhIjQYdu7THB04QJPXpwWHyiR4gcXpWUkpO38kYYRyBr1nwV6+HPNRSfaCxXMA9fdy2rTigHhuCiWGPD/dzBA5fbijnkDsHh7Qlmq4MflBNVcBC2Hjwc98zFg7HkXELXaOuY9+J2NoRrF7iX79DjE5Ir/wfPpYMxE7U9fL7ddvHiFTO2a5dmRG2NIM3F2wbfwbz49cl95slirWQnn2rg8GUVW8jpd1ty/fX32WH5cfFZDyfYcSCCZX0XhG0OPhihhJ4Ydlh/HtRW2AmSbGgZOJQA5mF5Dk5YmA8cnLDCCidwYFiE6k2gAmUu5tUEJTAJNt2EXAyoYzvtQAEFKqlYUAIqI2hwQngSToBdkXnBCJhaIZxQZpk6qgBFKvnkE0EpEcTJTAT5oKICBxNEyEUI0oCJVy0swYSEEi6QQCUqUq5ZQptxRsDMo49GYAEUKxhWHhcngODnWHJII8onRhgBgy22oEJlCVa6mY8vrEYgzaMgRP9qgZZ5HnZCPpuKtReooppqaiolBFvCF75E4IubzICgrLJzpjJCpR3YimuuTvH1FwwwWOCrsMFaYAGrxTq6bKz5lPAsnv1xUAK1Tn2hxBi9+vqrsN/6YkGjyY5LpyQ8CtgCu035coQSdBhhKqmlolJCld56Wyys4zKTjyR3+gswT6ik4AIlX6CCcMLCMvwwxMs2q0KPh/mg4cU6pXIEDBx/XCrD3qI68rixxlnCyYt54kN8LOdkgQtKODSqLS6QioqV3poabr7MRurLCIv14HOLQatkgy8bU+LC10krvbS2S7uJL6Rz+iLJCQNysMIoWatkRQSolEIfAxqEEIIGKjD/kLAtJDAwguC/WsComxaoUKIn/8adkjzMWCANJTBYVyIHeyuNdwo97q3BCIoaXkIrhnmysuMo2cDMXi50wQADKuQdgsao2GsLA3qH8MrSCzc8uo8nAI36STaAIMcXraeAZu4uSM6ML6jkPWAII1RpbLCt+KiCgcObZIUNcqDSBW+2rqBBCl3AUEopzJjLQAoatACFJCXEWW4Li6nADJHdaySHDTZAxSvOtzcVtOJ1LoDBF9iXj1SkYmnHctSc8mGBFphvaRFITf8sMg0rKOtKHiPBCFrRisG94l4RIFe95IS2iUHhXr6wBfc2SJFafO9/dEMFCQJXQhK8whYohJSx/8IlLnItzBeP8sUMaYgQDzKjeNKwgC1e0YVXjGAEOwTiF8Q1xG+x0H6r8laclshEg8zNF9KQBvRs0YWkWTFwWmwUuIgox1aJEQRWKCNF5AGCe0XRh1V8hQ9f8cMtOmqIrWoUndrkpi/ci4x6LIgVvsUMI7CRkITEGwNO6DBJJbJVrKoXq7aYx0gmxAr2YsYXSBXILhyBcxrYoQZqZy8igpKC4IqADUppyuFEjnVIw2QXUpACBpCgYcXqpCLtxShH8a+Xw3kT5UglzCqWComxep4YjWW/hQErH7uE5iklFkWPga1QCbvXshApx3xAoQUzGMUobHCIQ/zgEOI0yCFmYP+DEuxwk4QEnAWyJUFu5vJ5+WiBEF5ABSpIQQpguAEY9JBPgljhEDbIxwhe8boq7hBb2SqWvURZrHzMIAtCIIYqVqoKHSiCCD+oqCRBkIpNvg9+s9PA6xgQQp6K0kpZyIIqNqAKNFAADYNQBC9lKhAbOIsBw5zd7DYJxIZBoVQ1C1ZQicpSVQziBbVgakGYAYURdMF1O7VFSBcJQm6lQgVu2ABXVUEMHYBVrASxgSRMmElrZiurDnRgsFLRCrkOlajEKIMUworXgcwAoML84V+55U1glaAFcs0sXRW7VLyOoqw+BCgJbMGwkFU2WC3IwgbQMFRiDKIMVGBsYwXirEH/BpRKNQusbrG3gaPOVbGyne0MLABIjmLVd7oFFlBXq9mWSkEesx2IJK7KUZ0G1AK6bYEkLLuwFfSWAhTgKmejK5AW9O12xCym32wxvxa0wA6WBWoRwIuG+joXuuSVxPmO4Drl5Y5vJHxvt6y0giLU17fO7axY5VBT/yrPPZgLgQoEjCphFfio9d2Aa8GAz9mCQw4W4Kh/c5cj+I0gWDNYFar45QbwIngQN5DCbKnQqRAf4ab+HU3mTvUtb0miCHGlwAXAu9Iy6KAMLxCrFCRht1G58pXEzN2OUUXBVdmhCEKFwAUgAAE0aNgBbaBAEYhBjDwIAW6RtIIUzItGVLTu/31HgLLyUrCJqjaMkVloQRm8ygQmOHQQDgCAoDFgAhw0AsuuwNoGrTADC55Acqh4XQrkHOW97Q63hmugCi4c3s1CAAAGMMAxeHGAAwCA0A5oRFCHkAfUyUMKeWjFChZjgVJE+n04fp/eUvBDKlmWkc8qAg5w4AATCDrUoh71EkpdagAQoNA+wPJCL/a/y67AB5+BQRT7ptP0auDb8Nukr4Ol4hFsOrHEoMCxjyFqBRzD3crmRahNjWocqCILrtjUIaRA2GvnKUK2kEY+2hGCTbxuE99OuE5HK9hFNVADkpjBC27wAnHkggAPQPYxjgEKBShgCUsQwRIqwAuQN5vQOP9YgQ5cpOa39sgTHTCBCTAAgA60QxqNPsG38QZuvVnXUIItV5YkkYcXKGIci8hFxjUOio67++MVWAIvpg7yJQha0IV2w8qFIw9Gt2NLJzI2AEqNgSGNggpZSDjCEw4/gxuKx1AwYB7EIQ5FVCEGAFi6ATK+8XeDghdRr4DHefFxk5ec3iZoREtVY4NRWPBHMzf2ACTQ7BWAQAqHeEEW+mZwnn/b4D/ErrZUoAIhUOEFREj9IjCO7KZzHBQBiH3gBa+Aqdt+CaMWtQEAYII2qCIvHrRDK7ZkHgw0ewDIl8AAMDCBL0jhokLIwgF3qvDXGYq4CG/FKCAKhu4nIe+6d73/xxVQAcGPvPzw/jvJecHxje8eAA4Yglj2nQoL5mnmB0i+8vV/gA7M4PnOIAXFMH3GVF06ZUymwnOSMAp6EFE3cAN7AH6i1nTjV360N3Ljx3599261VwGgwG4AAAFOoWaN1i8xZ3zIl4IqiHwmkAoM6AycAAZlQEJYZCoi9DqCxHPwJAUN2H0QKIETWIEJMISCR3ge53of+IFTt4EGQAAbwBOMJgmyBnPGln8rmHwqaAItsH2HwAk/cAPSt1G+coMMsAnZ93+H0INgQAQRqHdNB3sVEABDSIRFqABvmIQb2He7J4I5cQijYAfncoJWuIJswAbIZ4jIBwArkAdUYE9e//gC04dVtmBuCVd6POiFekAEEYV3fHeHoJAAheAHflABCUCKtMeEr/eBG/gADqAS+/YCFjRrMQcAKViIA8ACuGiIuFgOhmiIFMAEEvUDnMAJehBrIzA2ZWVABrSFeiCMxDhRNxADBBBqD2AKbxh7CeAHIpAAdniEHeeJrtd3oIBsxHASF0UFseZvHUBz+zcAbFAOuCgCuGgJllAOvMgGLHAAqjAEmqgHw+iFebBd2jJCpGdA/9eMmKgHehCN07hxpvCQptAJAfABhRCHAWCHTWcA3wgKpvB6G6eK7seHGmEFo5AHrqCONHcAIOeOyMcC8AiPLOAEuwiPbKCP/Nh9zv/ohaMgBC1AiaTXAnnAgM74Az+gkC9QAA1pABAZkXJokQHQdNa4cRjpesmWhwZQAFuHEX+YWj7QCLNYaksgASIgjzD5jrw4k/bIAiIAAPv4At3nj//4A1RgXt82YXkwUXCJiQ91lKDmkNbYCaAgkXKYALEXe3b4bhKJh07HhASABhkhBa6QBV0pc4KmklWXjX6Aiy5pj+/oBPSIDMgQBVfAlkMwcTj5j154AzrQCnJ3Awj5j5n4AhXnABnXdE9pCgrQCQqAjaUYAIXAjR+4m0/5hu9GmBi5exSQEcXQBm3wlRIgAVcQnSIgin6wBk4QBU6QneUQBVGQAZ8ZmuUgAhf/wASmeZpxKYNASQXmOYx6AASq8AJloHQf2XSdIJiESZhPGXscaZu1d5i7WYpUCQAFkBGLUGy0KAFhCXLPKQIVMJ1+kAHYSY+WkJ1OgAwVSqFR4ABlMAQSBVHNWJQRdXpDUJoTlZMx6AhIhQag9obCGQASOYQXWZhQ+ZcBIHgdJ4d+UAgYeQwCihFEcAGVOXljOZYNqo1jKZoR6gTb6ZKWAJqWMAXIUA4AQAwc2n0RpQjiUFd1pQNcemSKUKJEqQdVcAFAym62WZ9oypu56aL1+ZCwZ5iwlwBrsAZ+YJwK0ISDcBGKgHcHsKBRMKQiIJrReQXciZ1RUA70aI/lgAwC/zAFT4oMEnABZdBnjnABBTBoJuAABdBpQ0UBEEABLnUDVbAIZAoAHKef9Rl7ulmYqNoJbhqnQrgGGSCKtAcKU3oR4kAGYwedV6CN0smd0ukH3JmdicqLngmaUwClUmoCBOBsn2pUEFAADkAABKCp0uoAmooGxOAIpHoBi1CbEpmqbMqqrTqcAWAO+OlxvkmnfqCf7HYBFgEGqiBoz3kFMEmo0SmKDDqED5qki4qsUIoFUNqkTnAFBEABg9BnfVYGRjYIg6ADTFCaL/BQUqAIKPqtGimu5OqiGwuYsFcIrCqRD7oGv8mN7AYBTFARQwCkAACdLGCW8Hid2LmvCpCNsv96rMiABQLQqFMgAFiADFA6BVFgdQRQAFymZfTlVUfGsH02BGUwCGiwCCuKAoWJAAFgtapasyULp3EIo4W5BnM4hO5mAA4gDhWRB3yqfCyADPU4oYUaBWsgeOU3hDebARWaAYwwB3nrs6A5q36wbIJGrVcXuM1KuM1aAGQ6geJqDqoqmL65AOjqmy56n/gZeyRbCGDrgeNIAFmJEMVQAMYHnZ5ZDkpaqBmQrCKgrnJYCHOQAR/wAXMwp9UwBz4rsFPACEPrAHz2UlVAd44gDo7gCEAABEkABKSqZUNWm+RKmEwZe79pDoyrqthIrqE4pxXpcez2hBThCGkrAYj6vZb/EKGMOrT0ubofsAazuwYfMLsNcAbUcAYCO7QEkFgTx4MPBQb2q5D2ewNMoAP1lXG5iQDR27ixB71zyLgDXJiEWQgLIKuXe5Hs5pgUUQxpu5lNWo/DCrRDq5FOlwDmsABz0A1gK6fs2w1T8LN+oADOVrRc5q2LwFp05bAM67DMZaqBiaapqrEJ8AEGLMD4WbkJ0MDoG7tzOI4DShFAgHe84L1mybbbGQUPOqG0l6oJUA3VsAALAIqFUAizewaN2qiM8LemtsLUKriDW5nwp2WmWrOEiQBp6sEF/AGQK8DmUA0lS7mwa8V2bMcX2YQpmxB3BwBLnJ1O6rZQHAUWmrpO/yeHdazHehzC1BDJAjAH3EkAXlUGiiCbsjkEvfu0xmupRitkAOBxQ1gIjCuYhcDDCIAAWLzFH8Cvc7i6H7wAjlyyPFoGFBGfY2evElqs3NmkWBAFtPefQWzFsQu7c9CzU3AGyZoBBptY5EkFMUax1AwGisAEeyZkofaJQ+jGVBzE0NvItLzFc8jGJGzMcwCyQ8gLAJCnCaEKudCyiNrL1/nEwDwFS9CNmMnFazAHczC7ycyzJzwFGbAEzUqt2KplGRbDXSVkECBqnTCE5uDNL2oOchzOV8zA1nvHpozFs1sNYBt78qa9CFEEDtCnVyChFWqhpJsBLo0FWAC26rrF/f+czMnqzwJwBu6brI0aBdwIaldXuFfXp83mANGqkYMZvan6wVyMxXVMy7M7qyULCVzcDQ0wB15MsoXJCyJ5EKt3ABXgmb3sndmZATiNBRlgoxN5vlit090Q0Dvbszs7BwnQmK+lCHiN10zQu58crUbLZUgduSiQw5L7wRMN1QuwvtUAvc/r0e0rALIKsnd6xAgBpChdob1soU7g0jlNDc5cAam6vibMs2fQADl92jpN1wCwCEgmUd1HsQtpdAvbWw8dmBxbn28qvQgACZDg0a1syjv8AQHg0TubAZhbCB13DASQZAiBdy17Bcd6wcjq0nMA0xCaALad2DytBtSgBqX/zczt689z8AEqDH9GO2TMtQiZxVUODdGDPdiumqYBAAnm0NuIDbnhHM5Y3ADUMMnHzY3sXI7NvavQzbYwDcw6y6g6G74JENqza9Xu+77gfQZv/dZg+wEVYGrvN9TPSXmCZrQFIGoR2QkoAN9oKsAC7NHVYNXd4NQTfbX77d2XC7KdwG64POApaI+g+bM73t+gmbMZkLoSaQ6sOwft277efdUh3A1vzQgVAAAXQAziUAV5jaWq4NAFkOWIGwMTOOLxzZH1SQOrzMpc/NETvcr4veLVDdm/GQAy8IEGkJwDnn9MutI7jgWSvOMC4Afl+7rJXNoNoAambeRM7s9gCwAb/4BkVKAHD9WAm6ywZbBaMQCu9WniaFriYu7RczrHq4yuhWDV1IDWWu3mb24A8DrnA2CP2SkAP56zkdzj1DAFhDnkILzMSO6+AiDhVm3FT160Q+ZlRfXrhnXlFMDlHCcD743DJY4CswzCSt4Ns/zB6Bvhk6zVkMCmvFAAf2wQzi0BLDChxNqkOYvnsC4AcSiRCDC7k9wAgX4GtNsAU2DVDWDFr5wAyLZ7BmCZlNdsfy3iyZ6mJI4CrEzLIezPVwy9WLy+Ed66fBx7MhAABv17B8Gnt6jSOIvnywDTeB7JKZyqhZABkxzC7L6z313a/2wOBhADQDDlVVAFe1Zffo2t/f+ulPG91A0u5qyMzkx+xfjt0Vg97wd/yhJpdRLP7btq54x658sQ6sAcyXNQp7GHzN2w4u1e2t2g01fNwwawCFXwgA9FcSMK6TogZCFuADj8orPeCWi+ABZ+8ljswZvevu5uxSDropCgm3Fe2bsMzHcO05H86njuvk/f4L7pz+zu3Trt1m499eQtoL/u0GR6AcB+5ZYK0QF/tdDLpgjv8wbf8/Qu3v9sxQMMmFep930q1n3v95Es17kuAGnNyOyr097991g/9Yv9m3d6dSUncvv+4Z6quCR+rpkfe2POym/N7i2OxQ2M05LM8yGNpqBA2QVxqbxQ4Ds+7hv/9zDtvmr/sOcSTfVnoAazT/vx3uLm0AkGAAGX7Agr1VtbpuWfWvYRSQNXK/Bn7qJjjsVMftU8DxDdGsxpoIYaNQFzupkrlCCAjE6dTMV4UtFixRgADFTI4AQZMo+WypUTgAULtZMHqRn0k8DlhzkC1Mw0KOBggwbdFixA0MkAGiYvwIBRNITJUSZlygyiQKGAAQOmUKDoNLUTAhQIsGrduWBgNbAMvVbrpmbZsjNzqi0w1xYSxAcUL1pcRMDAkgxRppRjAcBEBxMHBiBDmNImtQwtE/ipRpDamcdnuglssJZtAAUEClxAcwEChAIQmlJAs+ECBQgGQEVkTUPra62QEJgTqLPr/4LaDc6izFCtkDlIkB6aepBrrkUguQwo8BMligQTPk5wmOABwwCTKVXOydDQ3AeBZ8RPmSI+5+0FH6L4WXJgiYQBA66IaH8AAA6nqqtmhf06a9duFEJvp4K00OKgDD5gqxBIWCvuuIqSyOUBBQqJQgQTVgghhRSoM2Ewk1Si5sDEzNlpsgbEi6y2ycD6wBwDCthAlQ3QsLGpzwpwoID8DLjKnP60eggBAHHSaTavcDpLi2WwmMOcBNpaQDYaTDEOQkfIoHCJ+04IgYcjjuCBgw4AYOGjEFfSAosoXvxOIcjOwCknsMBiCwECVGHCKKSOEqcMHYjB0QBeQAmAP/+CxP9tDgFP9Aqy3ZxsaIHfgqvSAQifSI7QAzo4AUwlwuxwguuQMYmwg0gshEiYAjTvDDVy+kBBngIwhYAcQytA189QQ41QUGSwKgAi+1uArPCOBHAOapZpVtI1CimEWBo6AeWBRSC8AIADJMBgghC6gGHcLhgIwZMyy7HE1JSW0aIbNz8gSzx65ezGTp5MrOaD5py74t8r5APAAQgcWKICYacK8j/c6hSoKyOrucI+Ca7oTtp9EWgQlGMIIOa4jAAAoBENXBh3XFteYUADHz4s5yN2D6RmihflJUg8NWClU0ogzckstAs4szFo0Hh04Ao/AghgP6xoQMGUTlwj0s4GGu7/qpo1lsAABxw+rLgQOxnkOMaPL8oouhHGNcIIlFEhoRUVJgBggJdNdddAAeS1uRvIHqOmMsteCwAACgYpo8+klhLUqQNEcEhhq6hKeOq1uCJQoIm/9WSCMpfAeI1oI1KAFwIosEgHBxxYIRVUYHDBFhhat8ACVEZohYPArjC1WWoIIYQa23ALbybzduq5LQUG1nVXHR3QTDQICFgiyq2msqoqnoQfEKcFKjhAcx8awQEDXgpZI4M1sJZ2jYkhEOKJLApYQRJbbHn95Nl9sSCVVrJoBAMJWEI7BnqMgqaWIlgdRDJ3mo1WPrCGKLAgCvNZggjoMzDQAOAK6zEHVawH/7nsTSZ4EFvAFbzVgQlIpwiNcIABdGeqi53PCQeAwBOKkYUSoKJ19dMhDL7gC/2lQhKtWIED5ra7g6jhQJYRXnhSlBOd9GxpMYLAaWq0gRltADUFG4wT1sCTqmClKmFk2PbklIEBYACFHFiBCrKQhSLgQHpOQF8FptUcAjzhBUJABQP86EdUzC5/+5NEC1rRssE4K4mEUIMAmCjCJ1bGNm0xRwAIsAFHHM5PRwGUFqMHAMc97oNMYxiRsse9bmSgUxNYgQZaYTtDrmAFjZBeAiBhqABUgACDeEEWNBQCDTCABIFMhSD3lwooEBEHBxDgSWZCwCkgqzY6S9GRYAMKAv9ohnmpcx7BLqAjUEZhDVgZJaIIRCCcyOlYFRhZG1vxSii0wJD9K+IBrrAGO2bmCUwowgn8yQBUQEES+yuBEFNxUGSq4H+DSaIStaCGKajlXrl5YhTzpa81NIcv/7qgAy5gsHJgYQpf7MkHUWAiAOkkkrCagwQA0AEfhEAFKhhBMuVpSEO2QYMSqIABLvCEIRTBB57QgCQMageEzg6hyWyZBEKqEi0QQgv2Alw15gRFnmiFPzG6QAyqyBnSeKZgS7iCEwTghwVYDysmQsBkbnNVnAggAyw4gAkm4IkTaICmN22BHezQAlc0AgAS8GlFxLHC+ZVAnpJAagnyUVCEDnH/BR9al0ocOhMBQBFFRjqPVlFgSTSoYhA60CSgFlc0ACyhJWJUmCnvBbE5dWMNInCpGlPYyla0gLGSMGpBDVkEExRgEIZtRCOyYIdCLtax+difQA/aAhUsE4k0oQlVUZQzOVWNtQsYnciy+V0AEIBgBSCAyEgiICB9cCeW4ewceCGyv3SgESdwZyuci1SkzkCyjYCADirChEYU4abvbEEq8vFY1jk3FYYU7BWwgIxlGGRE0FQIiujV2UNpZV9Q4VYFl8AlghFAd7xDxhyySk4U0OCttUnAwNqAgxTSVwXvfCcU7uvXBa/AB0UoQ0WA0IY2tnHGqMgHM/IR2ci2osFY/4iwQQxkIINIJp3myUlb/AMKGamCRle0URVTV14AqEsAtkFxGReQ3UL4pbjSoa9eadwCG6cCvwtWgQ/cYJEN4GAFRZClCvpaAt/qFqFyji4ztTNhLWzhoeahzFqQdSjrdUJGWFQFMUYbqKaIlbxLQEZCqtHBqUjtRFfNmm05QF9ZujK3NzXqQZO7gizQxQSNuK1udWjjmhrU1a3AAQAskaq7RdULW3hMRCljm8plJStQ4gUv7BPe74bGiBWz22OOpNa2CiRnA+GSqfU64xrzlrdIdbU8W2EHi5zNuLrFNU2hgMyDWqAEduC1Bt11N3cRYguKnhllzvBp4/WHLMkTGf+33IPB8pLVJs46iU74I0m+0QQLV/DLGt38ylwjtLHzvuko6HIBN7iBGPNsRTDfDW9AF7TeV0C0gfbtBS/87iTmsUx6tYqAaigAAhsYBDFoZKMNQA8NoCnvUyNctWNZmCYEPOFdvTRTjKNi0IO+qRQsksmhuwHWqR6B1N9dAnnPOwu9ZvmTn+y7LRCiSSvhbL5ew5YFJGAzYm2Klk/TlF0V3SQGUcO9yLJ0tO97GchQoydOvSG9jkDxCi53bmdgkSRQAAA82oAv2zhMqafCsQWVhAoCU45l6NvsUdW32h/D2ZpftBpnyMB8RDAf7xLMAe5xApOjCuUow0qJatgCzPf/vW8tEL4DHODAhhhQU1bLWc7mbkU+6BKDAhRhA1r35Tu7rnkLIFgSJ8DAAQQQeqkyKfy9T7t4RNii453oDEvQ5q6M+DzniYysEHbW7qnrO5jnP//B/9apNaCBXGOsQfureXo8H1sEIAg5VXADX5opgMK+Y1KBzvm+fZOqs1Aifdu3KBOhrkCprpiDPFEKpfA50yANGnEKIyqHZlk6A/EdfdO//FM0S8AALpiA4gPAzBu0QqKxErAIRQCCJIiBC1CFYiiCfgKmrpM6HWIAUrEnLCi9qMq3RCM/mZEMt9qebjCAzyia0OiV0wAne7KEu3Eo30m0F4RBmJMqLDgAD7ir/+I7vhyMJ7iRpTywCCJwAzIggCEEAvFxOr3yo/8jFfnIgGXoPakqw0N8OUaCKCgCC7dKp75bg40SgWeTPQMQASfgHSYrwxZMu6jqPTQcti1okgEwhgmoAS/RgGESoiGCGx9YgTpMt/C6ACD4qA7ogDY0POJDl+uoLC0YNii8vd8btofSrGNxmILIGdIBmi7LEefJJvn7vgjrxEM8QzRMu2WwBDYMgsMLJlvQIdtRgRXwr4u4gGy6gCA0AADAAHbEAGMwhnYcgHU5CVD0RBeswHo8EM0CC4lKoAqAAMMRByb4E1WAgNIYhEFQBdQoLxbonYcyOxfEP1CMQd8ZPHesQf9P6IEbbAe4caP3KUfx2oBFyIVjCCBLEIn4oJu6Wbh6BD60S8Q03LYWOcZkRAzKQwPU2JWv8qRpY4GQwj3Si8iJhEG1O4tycEcPqMEJ0EhgkqWPvAhVSJ1FGMm7gA+fXJd16bQQscZDTLRPzEBijBW1OJHhMQtKLDjv2gzy4paKmSAHA7+ZyMBhHEr9UyQs0EZ2NAYPSMoUKoJYO45i2JUZMSJ1ZEvdmUfeETbfUzShfMGX47cp0InN0j1qWIIdEQ3SCLqcfEbwwg6IFDbgezk0PJAHM4lySKN2NAYcKJvjKIMYaIMsQB20vIuyyoAQ2cSJTLtqvMfF9IIDySxpqkn/auCFy2yKIvCVgsEAv0gdkfHMFgw/LRCAcsjERNM/fkMJNEGJ+GjHGsqUJ4iBGGiBLDCigiOrFzqJk8g30dRNtYNJ6zwQqkqRy8ICCXi2ggsNMNOM2WOD+IAw0nsy+jQBAvDM/COE+bBNJkOJs2iSuwSAbPHORYgBV3ADExCZbikrj7hN8Eu7lqxG0Rw231tE7HomKMuA9mseHhENnISAwToAwRDD0APKATCBwECGXxw2LHCAoCMAjviIg2iSDIgR7/wvBgSuDiurrERPJgM/uazAwJtL38M9s3AoKIsCbzoNuqOAbyLPwPDJkDoLqTIIZ0kjFZRLLOjOJyCvxvGD/wzIgApwALkY0idQBSOs0Pe4AnVBE3ZZ0nuMyNL7UFFMw/qj0idbhiuoD5HBAI8yomczgdmbAmR4mbv5HZVwltCLQWrAFItQhYx4gGM4BgdQBTm9CDe4gFwQGV6omJN0grMkgFwABd2oSLDUTSWiy/1jwf/Uggz4MPvcDAKAj/iYPACYgomDUXdBiOxyuWFchjyaiwsgAwCI01GtiDIIwoQDMRzQ1IpwhAeQgQaQqmEExt/hvVAMS927vYeiRC65T3N0QvokrwxABgkQgSV1Fkcii1jNwN8BgA2AECCYVgiZSug7DQjJiE7QjaBkzME7gAwghBjMTUZaiTMISi1wgv+RmDznSVHykgAWkIDUEQFksI9M3A1qUIu1yFepogYAQFOAbdlMSY4HYBaIdMGKXYLeWczfA8VFa4CzIzaRwAAK6Br8aAofmIDAyFYJEAD7WAJptFcTI5CKLFkDMB2Xrdq5cIQCAIAKOIMloVkzJD0nJb9h/M0UGb0G5RxHNU4foA7VLAARKAcLJcQFLdkFkAEV0w2EwCeWtdqqXQSNIMQR4cR7zNne5FDfW4aEODMoOxBtvEUTGNoimIAJMAYTcIpmKy97ahImQYhqeAsV84puSAAFKAC+5dtimJAK4J1m6dpfXM+cDdv8mxmC4NkDQYY06prH3SIadVRVQIO8Szj/+tsNE7Nb2IAEBdDW0m3ZjDCAQkjQeg3KJ8XH3sy/JhkzOUHcyasi8BQNoKGAGRmEJFiELRUZ2yRZLFgLGpABGUAA9cWm4UpegAWCPDyGDNDEH61U1i09mh1KRevHBvhHngMCIFgEFSUG0hJBIFCFCF1LTjuLBB1e9U1f9eVX+AXYRSADMnChJRUR/IXOsws/h9W/qZKobqiACyiDKhCHKqjFDSAGcXjhP/kTR1hg5zGANWhaZ+kGrVBfu5WB463gUR0C8MzgaqhX1b1fKaWJwLXGYVsGLyILEy4DRZhiIIgBNBiEKshiGBYHR1CFLS2vCli4h+o7npBgpwkAIQVi/+90zRggyRue2yO+Xwmb406EweicgzXwmRNWBCL4QSt2BCZQBBV+YaUAAjSAPufJ3AV1luFNX63ohGNAAzX2TnGIUK2V20VWJEUaEQmr1OeEQWJDH3MAhT3m4ypeBEeoAkXQYkJOyG9iYBw+iGpAgPSlgfTFskmGEDBwhD3I4EJY3bmF4ynl4GZJWBCFOV1tiYlwhCkmglN2hBdO4UFeCi0buvgTAWlUOyeZElqmAeMl3VyeixsAgj0gAAVYg3rN5AV9SGJ2l9fNTSyIFlMoAGbu42eO5ixeZS52BEcwZB0hAIYFU3ud5fQNjgAA53CuiF2+4I1A0PQEZiZhEjgG5v/Qe8wCHcWROuh6/sELQGUVzmJWHgd+doSgW0sRKGbTMzFbFpJmTegnGIcYyOAEiNeSsJslMZB72w1NXlC5DFEXpIY1ON5UpuI9QGWQnmJW3mcvJi+ADt7qnZL1VRoAeN+ElhAA4IXzvM0fzelC7eB7vFFRFDw33SVVduaiTuV8XmVp3md/jj+WW2QsyIAACA6I+AmXfoKRfACsbtNOq2kRyelMXl3orUBljbmzyhNV/sGphOYUZmVpFul+7irn4QUnCOygDgBQAIXCcmkJWY6ZdoKYEADRHm0B4FqJXomDwOFCDbZDRNwrIGsqXgRVEIdV1ud8VmUt7mJEHixTEY8LhEiaW7qWB63agAAAIfkECQgATQAsJAAfAIcAowAACP8AmwgcSLCgwYMIEUqjJG1hQ0qU9kncl7CixYsYM2rcyHEgJVEgP9IZ+YmOqI8hO6pcybLlRoiiTMY08glJjpuhco4Zg0SUNJdAgwrVyIwSyZqfcubYwbRp0xxGUFIcSrWqSxulYiLJqZRpkCA1nD4N9amkT6to016UI41OWbJltzKtEWQC3Ro9euDlgLMkQ3BqAwu2cS1pqK05DodaukOv3Ql2OXAIQXkHjzFHlFyTA1iw56rSlNwcLbaGaU+eIEP2VIPDiRMcePBY2kPJz8+4g7ZNOhfs1695a0D2QBxya8mxGfcYkbt5SzkfjSyl+3sC2NQTiGv3cJ11Dx4heEz/vua8/EZw0kR9Wvo1+/bq24m3N47cdQvz+NdSSsr+9/uv8RWn2oCmcbBCfggiBF1N7Kn23nAdeDDgBNh10IFqnkgmRIIcDpQeg9S5J2B2E1ho4WqopWaihBNwoEKHHX5o0w50DTciaq6FsMKOKqjwmoomtngfjAii59Z6jZ3GmnccpPDECKggUsKUM1yDyAghAAnZCfkQiSBbMdV0xBEaMNAFAwxooOYIiFzjSwRvRgACMxFEcA0UGnhy4WobeokfmEfC4IILtqBiKCJRuunLm2/SGQEzkFrQwgkDejKDn39+VNYnRsBgKAwwXGNBCYouGiekc86ZjyQqcICdJ31i/1oeTZyC+qkFiIxaggVuRpBPnXKCIKyqiGhwwquxytqcEmPUiqgtMOCaK668MlonM8POGUEJT5zgQ4meuKJseV0cAUOnhkKLii0WjDotr9dcmy2d14ywAgerPTGucwwcYUQpntpCaKHU7npNr6hmC4Kd9n5LYRb7NpfCEaUAbMvFF6PSLq/t+vKrwsLWaQGe3nriw5ARf6aBv5R4CgXG0B4sarWPggznnSrcy4EPyaYcmAUuRGUExl1cnCupVlrQqMJ0eoyIj6+dgLLPgTEDQykQ2YJmmSQUmisiiLY7ZT4z5OOoyE8gt8ILVHtmNUTS2BKCqxmGwIDXUKSppgpPPP8BBSL5/OorFMd6om/bgklzzUKiuKBBCLBJxgMDUeatAXghaDACAyNAoXHghKN2OOKBNSQNDCScqebjKVC+6DWopEkZmzNLOYMkK2Q4NelpsRW7BnSfQFkKtlxTiuIj+Fg37R7fnjuXvAsmRwQkPA6b8BqkoIELFpQCKSIttPBEC1D8/SvZkswdwgxWRK+WDfmsO8ITKuxtJrvXTinJ2Nn6+rTmgHNfWmwAgmd17gmc81uuasaMGcygBGULlrCYYYHPRUASNhDgUKxgAwIu7GJd6MIIRoAxwD0KW4EL3AkhVaeZyckXGdRgUOokLGlYQGAhdAEDSMA5E56wToK7FhD/fUEtOMVQhi4BgS8muK4QdkGHISSBBVIIrCAKMXAliACi4tU+JLpEDvGSRilQkbonOrFoFrhW04AFLI/lY2z5aBcIOuPFlogKBNJYly3OhKYU8CAFA0PF63oFJ0Q8QRJSEoIDHSiHOgKlgA1BxMXKyIAUTCYFfNRYCfJhKl8gwhVUQIc39BAPMIAhHt5wJFB8cTwYTNKJacpMqGQ2qlKNwBVlGIQjBjGIMrzgBalUZUvgp7h18bBoUYxWo3xVLV9c4wlZIIYqVLEBClBAB4PoojBXYoVRLEyPAyMBCTSmtDo5cEolcGYLVrABVUhzmoPQgTa3qZIOggAKPESTE9WV/8Y3xlFXM1jnNAeqikEwYZ70VEkB84mmhnYNWhv728FKsM4NtBOevtRHQoc5gz1WMjyU+aOZupA6AE5JCFmw6EV7CcyNssQGM8BnH8t0t2gdzJmI8JyUXEHNixbUES9AqEs3EtDNNRRN0AqVqUqAqCi1oJo+VQVQNTpUlcRDCEaFpZnIKSp0gu0JG0CDWAc6iBdQtaocscIMnjTSKHYtSmBjKlMlkVIKiBUN0yzDDc6K1o3YQBJockEIMRYlaU1JSoYswl3RsAFdEuEOfe2IHOJ31KJ5DZ1MRYQk6BpWxuJVqmaNbFp3ZdSRZkxXYItrFopgV7G20xGKEKpoLSKEJ/9oTU1HdcGhyofIEqigs2FtbFn5OluL2KAFaiJpH/14BDORAEqoKAHuVqBYu76WCMQtroJssLkUaO+j4omNmnQq3R254QLohQBeFZFd7RaEgyDQWh/Bk5fvZG4E+4MgM4Tgijw4AghlYMILwKCH9rp3IPCNXXO9S1/xKnCTZHOFG7Lghp+K4wWKYMKBE2ID3/ULTX8Ezx8119s3XUO6KG1EIy7giAs4oAA6uNSGCfKCDjNDvlvzo2w0oMBcuZFsM8hCQVXBhEUAAAAEoAAVZuwNdEhCCMyYXuy2xoBNpIAyGtjE36QE4RTOIA83CLORjwwAHKygDHkorhXQMYPatiD/yiXAcesq6cfMeU1KgWMGkMFcBUUAgQBHNgAATIADH2TBFT1LKDpGkQfx9UgFUc7H5rLX0Ox5VwMk2HIKA/dlJijiwlUgAwEe8ABBHxkDHTCzK8RFz3gE9Ak7es2OIjBZ+h1Vb35sHQmmtekS5OEFRFDEDRQhalIbgBfNaIYEDnCAQeOgCId2JExhvYKSoWYCJ6D1DFyBW72pSTaTG6fYNgnBUppy2GQAQKkNEAdkN+MABlAAswfdhiIcSIOjoGiW9GQiE1jIExGQRjzysIIsp2kTq6OpuN81pXiEGQzBTjepS82LiisgDnEABSh4IWgMENoHRYheQFtVog6YwAQY/8BAs00wgRIIfBRZqF/CEY7brkkrV5t1uCkjrm5j80IBCuBFHBQACqD/fAnzxoADGkE1mK6TUiYHwLwPMIABNLsDqJCGHNAxhIKXKeGZQ9M4yWlISeg82OOQ+ANM0e6NA/3tbx96sucNAAdAQBXjuh2sVaRyqg9AAlVf9qChIA0rWCEeMZd5whUOV0kkTwgORwcYFJF2Y2O83XBXQAACEPclSCDZyZaAsylADC/loba5mwDKMQCAqrv+71YfdAtAgI47/OAGMT/q6nYIJUTRTwV5QEc8SKkIYgPAAOzGeNEVAAnOaz4ACahABZaQ7Ao0QwTWf3fdIbABVudH7yv4Vv8HAICB15tfAiJ4twlakA9R/kAPTOgRUhlAvydBdwRqasEo9OANb8RjwDHQcxmnfMzHedAXfc1QAUHHC9LXgJAgdIJGaBBjHn9FP7ljcipnfq7HAlfgehJgAk8wA6ikBz+ADrXFNc+VPJrDQ2oSgsM3SpOnBxdABqR2eUPHfAlwgA3YDArQgNL3dhoXdCu3Ac6hd8pjISoHeAPABhqYBldwBSIgAhLQAYBDBXqgB5zwA/HgCgg0TuXTN/i3CSrQAjNAYFcoecJWbKawhqbwfJyXAHCogHDHebyQAEBIC7SgcbyAZBSAG/EgCa4QfnpycszmemnwBmlgiCzwBsHwhFf/MIUQNArDl4W3h1XjlFMqWD9PUALDpwdgQAX/F2AEkAtrt3Zsp3lwGH0VYIABgIe04HxAl4caBwqXBwAF4Bng5wODeGRKmAaJyAYskIgDkIjB4AROEAyNeAA4EAHx4HBYyAlZ+AKSsGX4pwE98gRCsH+coAfioAo3UAaqsAgTBwqmMIs9mIp2qAAyAItER4sZB3fuiHwE4AiCsVo+gISsp4RV54u+yAZs8AbB+AYAGQz+yAISgAMzIHym9APQmIU3IARYpTd8A2YkuI3jgAaf5ggxYACkxoazeIAJ0HybZ4AX93OzeJLuGAfI14dqUQaNgIEAsGzmJwLDyIiIaAmW/8CIyOgEluCPU5gHVEAFN0BgDbmNLyAEivcEYIYODMmQRHABbqAIjpAL7MaG5ViOIFkIObh5ORiERNeOJ3l5HHmLaqEKDpCPgKePEpAMUXiMwfAGyIAMOfkGTmAIlhCXbHAFAOBLD0dgDJmFeoCUPUKGoVSR0AgG0wQEF1BqRUeO5ahxXFkIH1AIYTCScJeOKJmSKkkAg6AWiwBorkeTwzgAHHgFUWAJwYCTOKmTqpmTiQgAxPBLQ2mG0PgDJchfQjBgV1iUnHADQKAK6aZ8VpmH63iAhTCSm6cA6ch5oEALcbCGGmeDDwAAeJcWY/Z6UNiBaRAFVxAMLJCaxmiMO/9pCU4gl4x4AKqgCANmSp54br/0AkPwAkO5m0V5A0mQBA9Ai+SYcSdJC8pZCNmglSMJh1w5ko5ZjjIACmKAcch3AfGQFgWAAfrohKb5hFGQDMlQl4Ygl4YQnuQZl1hgCG8gAhQgYJ+mmAUAAdCGaEMQYENwA/TZkPb5meWoec2Jhxr3imEAoNlAoNB3nMjZirRQjrRAA7QgBrSIfAWgCGgBBA4Qk8MoAlHgnVMaDBhqmlFQnnHZoTgZl3VZnoaAZIC2ckd2AP7mA6qgA4gmYDDakD/gZ6pwAfEGh67onM0ZAIUAoFqZAIWwAFsZpEL6igEgA5AgBhdnAASgA2hBAbz/OIxPyALfGQwXyp1SmgEeqppxiQyGsKGtaQkSAGNloAMbAAEOcHI4AAGomqKDoAgEJpWLsAgFwG43SgsosHl5qKPVsKMJkAx/unk7ynm0gADHGaDQVwGbWZ1VEaGt54tvwISLiIxREAVRKH3JkAEZMAWamqlYsK1YEJeoyYFJZlBDwARMoAPEEFapWgAFgAaOMA5J8KqLmXF4GABhUJlCSgMIgAALsK8COqB86qeatwDVkA0ZEKB2yHEEsAho8aQH4ItOIJDN2qzFKKnYVwHJkA0d6q1xOQXcmqmMGK0icAAEYHekpwMBxgTxGZ/reQOO8K4AoHyu2IoK8IoygK8I/1CvQIoAeEqvAtp8u5oBhlCw6RgHAHABVlEMBSB1EpAGb9msBQmeUNgMcJgNPJmpHGoI3dqtcnkFySBoBFAAgEZmI1sAF+BOAaabTEBNBJB8d2qrr4gC+VqvfJqDC1CvO7qnqQigBcurm6eSRlsVwKm0THuXqHkFLBAFHXoFCrirc5ABczAFG2qMjisAArCtltChFUAAGyBgLzAOQLAIFwC2YSu2ZHtXaxuLNwt9AZCvN1uvC8CrdhsGcLivcZi3BBugQBoHBaBhVAEE6SYBEnC5doma3gmQTnAFb7d5ADoHWOsEGfAB1VC5+GC5VmqLRAYG6KCQYTYEVeAIqoAG6P+lrmQLAcfGC5Cpq3DYugvwAQQbBUILh3kKoHzrq3zao4XAq6AAAIpKFW4AaIDHk5vqllNqjD9oq4VQDXMgAJZqqRyLD9OLBeQZBdInsimKBsRwtlSAvcInecP2vXJacXdKmQQqmWHwAQmQDey7tz0qsAM7vyN5wLhrhwcAAVWBBo1Kl3bpBNEarZHLqwQaBtGLrVMwBYwwxA6MBfjgpVGwhwQAaAbQbEf2YhSQpgJmSoMAvg8wdAdYDblat5TJxVzcuI1bsAfMxQtgq3jap2Ccp82nu0NAFY2gtKTJk+SpwgLQoReKnAhcuVggAEMMC0e8rcjwBldAAKrwS+LgveH/K2rHd2RfCwHpdWzKmQBhwMJ1y6ddvAANMAecnAG5Wg0sDKSVvK8Cu6d0CABEKBRZkLQHsLRp8J04qcNZ6gTbqsOoKJkZULm6PAWUCwsdGwUJULRM8InN+Ik38AJVIA6fG77qSgEFgHGTHLuUuaOyq8YCkMBzUAgIAMqgrJXCCsqkbMqcBwA0LBQbgHKtfAV2KZCaKssbCsESzJWczMf40A1+jAW8XLlTcKEVgKgvdgEbcMHxCYrxIHlggMzfS74wS8n6ardmDMT2fM2TecChDL+uu6/VsJVEFwflHBRogHL/y6nZOshvsKFyCcxcGb3Siw+V68vbqstzwKsKgGTH/0d3dodXZ/tL1ES+OUqvsTvKfXrA82zGArsA3cDFx6nG3LwApgwJujsUbtCoafCwb3CX3oqTfJwBrUivCPzOWjvS+By0dghjiLzMYEtmjvxiEEABciqvq2u3CIDJYEywuSwAn8zF3dANfhoAkLCj3Py+kHBxDlAGQnEBUrePadClIGq125oBREcLPMqxcqmpAiCXfZzAAcoLnBlK5gYGwyYO3Qi6olsAFAAB/GkKr6izce2rYIzAdZ0N2TAHRw3K9grD2YDXAtCjcLiHaCAUMZCEA3AFxwiXICrIyNDYFRCsO5oNlf0GdecAFmICAHAFuSy0M52iU9xLnHtKpXQDTP/gCGhQ2lWJ2jarsyMJxBgd29dc1wnsxXwq1HOg0hmQp3ZoAH8LFKz8d1dwiJjqwA/80slw3t0wBZ6KbXMGOR0godRd306MfF5Lto2FsuSqCuL9nK9os8ipr6S8AL1sz5cd35VZyQd8wJRbsAarAAaQyvh92MNo1cUtyFmLD/EMfclwBQfQAT2QGUqw48bSAYCXDCgOAZ6mzKK9tlLnyI9sTaWG2oA6khpu1AKb15SLDAlst6u7r90wz9ecpwgACgbQ0S7xpMDri13amplqCALgwAKQACrpAD6gArZQMcdTMQcjNwl+ABwHAS8gSk3m2RnmCEWOZKSt0KgtqJQsu8j/ieV5XQ0Rfc3ZEAase7P7OgewwMnVoM0IIAYGQJZA8bstXubIUJdIHKLTiw+G0AwEUAQtwCtCAyqCMihpQikAwIObTgGN5QjigLLyGWbIvEvWFKsG0JygoLoF+tYYndfd0ACwsN6PXsmSLrCUG9/aTK8BsOlCIeYDAJcuzq34sAv+va1vgAGeEALm8upoMiZjcmX4Mn4SUAEJYGovK2j/3E5lUO9lgK6yutWbZ97KO8p4ndfLbun7mq9YHr3xjdSQHgBPHRRintigzq3eztKAjAUH4AmT0yk6dAStIxtJkh2sNwDNwAsPcAFlQOQzuLbHBsWPjAYQ8LK0EOJwvbr0/0rKjJ7sDRDRc5ANdUvzoKzldq2rCuAA176sxmjc2+rfLN3HEuAJ22MERuACR/BHfsQB1OEBGRilKH4BN4AOVzh5VWDWTypopF0AXwl9rZuvtF2vYVzzDXDzs03K+orAPp/zeVoNmSsUbQCl22nV3D7q3aqMKjAoSnBl4NE6Gk/1Vl+TltCjAQAKuVAAUpXr8ame8MkE4EjhpT1085qv2lyZNxu3lcz2bd8N9D3Noc/FsQ3bapwBIkAAhR2TV0CwaH70RxzxaeDm4SEbkmFnNnVDKnCPVEfdQIri8D62a11Q9h5WF0AA8lreGD3Krsvo1aDsAc/FlXz63HzbjrvHGf8QzEJhZLxwrXcMokjfB2qABQPgb8jxGvdVKOS0LXTVCARwABVQCENq37qUBKG7tsgGEAcAAHAAAcKFCwTigDJFi1YABBEXFFoQJkzFBdWqNeA4p5vGBSGrfawWMmS3OXMyzMlWAYCqJjFlzqRZc+YiAAayGcKCDJklZFiw4MOnpucAExNOpHBhiwEDFSOgQEGEyMK1qi2eNAJwQIECU7lU3dBT9kYVR4suFCAwEECBtRUqKAAF0WGYiBctVizZjSPHjyYzaixZ0mS1lNkSGLhg0/FjMIvIGIBkKGjPy0TxYbF0YIIKGKV8weiiQYMKBiNGIEJVVdKIJ0VwAFhIyxT/ATQ6mLx4wWTIECZMyuhQtYEChQK8KiQI8LA5xIgI9ors1g0WLHxzDFf8WL2wSAEZshVKAArCY/Q0wSQh80CBZaJChWpG9saEChcwXDBIoSHEf9P+W2GF/044wYcOAOCFuQoCUMAAAAiQ0IECKNhgkEF00OG4Cxw4YDkEAkABheaik04w6zQToBvB+mKxokI0SmmOQgIAhYD0cmyiCiAmE6OQDAQQYCjN4rPPkx444IEHDgwMISrVnljhBE86sNIEDA7gxcEADKhQlYS6kmAACQYqCAI0OgSAOVpGRMEhFBAI6SKTGigSlsDqbCCwEwlDrEbzdESvmEVieICWBFbK/4yoXYhCBgMPJujhhBAoDUEDBlqrCpERVPAEgwFClYA5BwlQ5YV44nmhjEEogMCBtgSq0IEKREiGzYbgjBMvOhewcygB5jCJIl8bUINFicATIJtkAsBRUMdUaWMyBZJxwgkhiWSUKAmS8oRSDfo7bQRNEXlCBR9MGOANQzIIIwB4HyjgwuDqFa4MYow7rgADKmA2AQQaerNN507i6Dp8VhRsATkb6APPivDSqIEZEzjgPGhrciOG9hS4Isg5hBRgl0bx6WMXpDpo8lL/THOZAf9OmADUN5zQDsYEkhHBLQIohIACNFQhhpgLXGXL1gTCeHNgh2iRkzrsYAFsYV+1eP/4I7xE4kgjBQjQIWOaFmELAAUqCHJIfHbpY+1dCMHigA48IdC/Spuk1EAOEAQ1DUMYMQwvWgyQsAAHuhJhzGZkPaiAAw64wolbERg4xLwGqy7q6qpbuBqrj61Ioo1MSoCXxsCWaZHCFTRbM7UJIeRkfCyRIG67T1j5qdagGGEFH/aO4oOI4b0RDUcUIcKRQcAkvC2COuQJC0Oygc6uEuUcyS8VCwMppAa02EUNPCOCSDCLuh7E9JjcwAEDAJpJYyiS+yBkC0Lw+emNbifggAMANRjBlk0hAgor4MoALJEBPoUocHAZxL2CIw5WqQINP3NAM7IhpGq8KyIjig6dRoL/naLsaQF5ykgD1NYH8IUkRAwTTDKaUTqwlaEIbcCBCQAgAZ4wahdYEMEArhAFQ7AAAypbisv8RwISwExm6nqDJULGMBo0jRaFqIBAzFSAn1GAGGBCg6sKtxyAtclNcZKORvxyHTXsiUW92ojVUAgxpcGrgwlwyQZMJ8NGNGI2zXACMjaDBScQxHCWSAMGJuAJ/vXvPxyYwMxCdRlhLSCKbgKFASDklgM0QwQiSByFKICQAigoAcyRnBg5aDDASG17gune2tTwSj7RggazREAhCtGMAgwBbK6YIZYk8L6hAJIAryJAJi3xBrjZ7T+VkpkHQGWJtP3RMJIbkW0IcIEL/5XBEaoAEwTYQgC48OsKz6MRNZdGxgUIiSPgU2PmCmPCE6pBC2lU4SwhUctCZKMZGINWMdpgwwGk4TKcAYA3HcC+A6QhDXBD5P4olQIOdAAD7zMZyTYjrOjE6U2CmxcxBlEGcVRBOIPYAJrGVqsMlEREHDTRCP3CTqmpcTAbOaEr2anCWm4kPFcAAAUylgUy3NCAmEGGBChUOAxkKaAHSMr+mtQfDoAKCySjasKQJYPo0KBhGRCBFX0GtJKiYQMlhVUzohC5NiFAq2S83l/cSpIGaMSNJ3tlTEvSACHhCSUVcEDGinDDNFiiq6FKA0GQCgCADiCph3Rofz6VhrSdrP8PmxFASTi4NBpUEkKZbIYmN9mMt1zAmwNpxhsEMIUMZrSDJXTrnrYW14047JVqKEoIG4AwfDSAYQHIBgDQAK02AMCAoLXiARyQuuMWLlRJ7QBjlxKCDgw1spNd0d8YJjkEdK1CYy0OcthCoQ414wqZCdZ1AYYX68X2L5mLa3s5ora6NkoNu9ACbhuAABkg6mKC2oCYcjIAw5rguCYQsANMcICkJjVSjGWkVIky26LA4m8R0WqIFHCAYaKBGGXgMIeJAQFVGC11fPwAXsi4waexKLaV3cjE4gqL+L2SZIQgWdTiGhE6HqAAgoLAQNhXxYJ0oMAEPi6oFOxMSDXSmQP/QIZ8Zwu+NUrnIR38QDK4KpCeYbFoaBJrFwt3gDdox0QtvR6LOsJit6rteyhc28ksCgstcCRYzXhWjsrQBlgRwAC8IMiBBTyh4wqXuQlOauPe5zoUPhlPJUHxib00tq40Qzl8LgisBsLkaHYDLzTYVdaKVZ2OhEydHJHf2ubHNtomOs4mhIUIdqyjMrihcHqOkHCNKqEIMU+xhA5VT4bSB3awg36Jpm0Cx9wlLB5nA9xMk0EqhOtMfixtEkZxS/2iRo9sBBZCso7a6DdshKkh0SJEjAj4mZ4euSVCBmjGAIw7ITwPZEyhIixQ4LeFYG/BprSt7Iui05yH3DJCaNIB/4fFMQhscnMDExwbtqqxwRNLJHMhm4Ocr3PbteGbHTQWgLHGvafodK0MOkq3W/olgoVGaLttKGa75y3QoKRtfvkmxJOPpbnrQgReDmpfV3N9pixO0CCFw2HCGN3SYgEGr6PmiNW2oPHX6XAX15HaAvKrAACcL0dAUDcvRPDDKAjEARvIAjGCK4HEHWBMlphP24L9dho/OXP1BLgp5NXsL6f9LRCIlQR+KYC0NaqyFpGI9cxcnbzGtHsaFzb9XulKNMYV4A/waY5UwbxoX+sKTPUB7zpwAHcPJKF9rKj8ng73mqdRjdOMYnNMcRtwGuQgRXPVz5xtadJmgCgZAB7SWf/kFyGFzK1aYPzTiS1jokCsOQaAydaD2vMmImO5OMDB50V1hTQ4AX7xm5++T79xFE6BJCp+VwAAlpdq6Ay0DrBQ8ijATQx116AHgKYTUkrNZGktZH1pOiHeru/veTK2wQdVwjo7ypFieL4lQLljEhUTEDLC8omYa5TW6b75cZ1gSzTvGIkMYg68aI4HACdouyJnKwDCMTB5gybBYzRaOow9iS2tIb580zdxE7fXcSWioBjQar4c4RgFwT5LICw2mLeAGqjpkh/XsUCNo0F8QK3AqIYPGCXAuQ0NGxqy6orYwySByCQRCIapahQWzD+qqRP/a7xhMzVEm6y4oiKBqLz/HJGMybgCoKiPNGADFmCBNIg++fjC1vk2RGO8mmvC6gAejSA8yomDCTFBZzuILJKg4/AiG5IALKCuh1Orp9kcVirDJXwd1xm272mAbMA6xMKBLBACIUgPRVCFAniACoA5QkoDFrgCFniDn5gP+DE1+qGxJIQ6FMqth7OIo2sTi5iDKLgCYww92ROtCcKBQOsK0JtE6oKiSxwMrdkTfHi6TRQ2/wPAN6oixLKSb1kBVzjFx3iBC1AQV3yDNBiAWbQEe2OdE3q6JLxAxuvFPCkJ9CIjZ4ELg5KQLOsxMXG3xlG7AcCC1wHDrFEvehqhg9kFxpvB79O3ycqAZsCApDik/28xkCcogcfIAzToCiazBDxcRzykxUUJPNNznT7MN2GDJZEACWpyCHlRhQzRkEEgBqHjOyxKtg1Yi8KBLBrzxaT7C8O4Lezog4cUNqX8vz4QgJ15QIwEl9NwhVFwDDBINwNKgyvYpDxsInvbwxnbxF1USgC8mWmqti4ZiJ45LhNMNlXQkBBDjgMTASewhLYJyu3ICJyLLViYrzJ8u6WEu11YKKhsKJYxDRVoAUl4AZtwhMn4JWPUpF+aRSewjPlglNfBN3mkR8HEB++YE/SSjjBIvysIlU3yO3CivVC6IQlgAUvIoaJgm8q6Lr1kLY9DSpYEzKXcAixwN29pKHB5Cv+XWQEVgIJ8mAkiMJQloLfOas03sEM9lA+qssC7REps1Der6gbgQS9D9BJvyqJPEq2xUTtZIRzh4oypWhvP5M6X5MuM00343IJdkL4haqSG4h/TgJkUYCYNeILjlIkwmbdMIiyFir4g7IocQsKDREOogzJ8JDw6QYBr0rCbxBCcFK3jagv2KynhYoFQmYKKmrqH+xw6eS8k/L/4nJ/BtMjm8gTgtJRl4s8ngIKZcIOgAr3GaTfCordu2QAmaIQx8aPqjB8kNL66+ogxiw5TsCS1JDCCMEF1M4hi8jvEekb4oq2juwhj4b7ig898QxmLbCT9OYEAoRvbcZL+lASacIT/1RQ9CVC7MiEIjBGCRgC9NJixg6SqIsXBF2EYN/m3B1G3J/UmZaOAAyOAA/O7N32DwCMKZJGObsPFmfNSqAPT5mok/DyNADEQTtWAFpgBm3CDE2wDUg2lRqAJIWgDwkpPlWQUBg3KRx2jODGFCgkabiqOg7CQEKuht6AAB5AAZDCENy1INSPAhwucChgZ0/PSFMUHxVow/eGA/OwUFTANJ1EBNUUfmciC6LJSqiISurrLoPwARhsRThsReeHHEtQy3MOA4zoOAGgit3CCyGoUTXMWAnCCPtTMiExKt0kZjHSqFGAAEtAd1YCKJ3AFUNXWmCiCAwMAEfhCfGii7dPT/6ibAu0ITXMyvytohjcVOygdSGfEgQ0wAXcUJEmMHxENAwgxhGUNtgvcIQxkSd5UrBbdnxqoAUpJDdUgAdhoASFYWIZdAcMSqKHojDeFrAerwMmKnk2rMPwChZ+jECwyiK6QRSdggzcAANkwIOO6IRVUG8+shgsq0tO7QGQAgGzoRAt01vr0hBpwKgNBTExRjaBlWJlAAwcILu1rFCxIuQHYjKKwQezEWKuTgXN1iGsaK2KS09UMtNYcAB+gAPozqoGALDUTvDmAMdP7Nm1EBhxogitQUNfBh0K61IZyGRVY3dV9ghbgSLyNCWkhAL4hEqEgpKkiijaL2fAIgyiigf/8ogVQyIUC6CLhArCCCCUQ24AigIADa4T+kp3UOYD0NLWEEQAY677r5E0TiAleGBmq2gVLCNND6oEaYBkVcN2e/dTYbdg2+CWfCCZtiSaUREIsyIAakQH91d8AiINLCpW9Qw4A6AAfaJKIwgCSNYEyyTOI/cKgXBaaKlJEw4I2kIkCIAM944UreAPFss8eSBL8jIqpgIInyNbYLQIHMKDL8CPNIBLaUrPu26EoKIRZ0l8UoIFCgAXO4GCj2knO44AqsSEKICnZy1AAMITAsygB0NIK3DgaAwCaGIcYmOJQIt8JiNtE6k+qkAQoEAIbaN8e+xi287XLnF80LN3o2d//SVoAWPCJ2Cms5EUwF70SEPMw5Qk0Eahfe+UeTpTHXWiGA7SJtShMuA1hESZh9o1dD/kYQ7CMgZpfV+1EduiD+00A/W0TrDKhzTCEYHDcgbASHNAicRhlCGoVgyocuwzfqdO0BajAG0yD30KPRmiDSz0kMk0Nnz2NLGhfcSCDOJCAupRAI5S6RnnP+pmCQkBcc0UAjfDGQUUIhFgERxjlKiDlg+vJE7yhEKUqAZgIZU3CPjCEV8sRH/AE+yRTJFrdFWiB9nVMDe4jYcaMy9ShZdW3KfBdN5HJ1LyARVCLC0ADcVAEgR7oKlAEUmYVNDDBQMsGVd6hlcBeXJzPvoIW/wowZ/3pzydw3aqM3QRUgAxw5D2M3/mlQNzcOHx4OOAFXlrADSBwhHEYh7S4AFWoAiIwnpquaYEWKXFwhCS4gBjI0GYAX4uiLCGROXZoFAAIZEHhnc5L37ttXzcgAFD4aLSRj5iDZFbFxvnMhqddaVUI6IFehKARaCK46YHO6Z0GArXI5itI4vClZ5U8AKVuX7xVBQAAhZ3YQ/kQ3CJxVfnRRnxwgvGACFoFgnGwaUUQa1UYaJw+6yqoZkcAgp72SQLgBSR+65KZThp7g4mm69jFCV7YiYGSQL3u63h8ul0IFlwhAyAo6LJO7LEm67Mu68d2BNtWa582z/dpaLdGyow+QAYd8+zYteslGKc5DIr47Wv6NRkJxgf8dT0ySIJxeO0q6OfFLmvsfu2argJtsu2YNsFi4om2qaodql5KvoJzE27TwYmvq0whqUwsyKtsuQ6RgTGS0QItIARYmANIAAVQeAAyWASbrmmxHoQBb+zGrubHRos0iYFQEgHspSpYMITTAt/rcAJcUu+AAAAh+QQJCABcACwsAB8AfgCjAAAI/wC5CBxIsKDBgwgRQrt1S1qTh5QoNYEGLaHFixgzatzIESNEUaIogRRlpCTJkNI6qlzJsqVHaSJHipIlK1SOmzhvKgnksqfPnxZvRaRUcwwSmzn47Fi6Q6nSHTyMRARKterKW00iGrmJpKvNHTVqMN3RowcHDjyUSKVkta3bg9CkgTRyFIkRWUeVlt1bw+yJEzyOjJEl9a1ht4Fq5lystG/ZCUF6ePKElgcfozBSHt7sU44FdTf5iH4K1rHkCR0mqJ5AGe2RFDx4cJ7d8tYpvF9LBwmimrIn1R08eEDdunJsDbSTc4RJUhafsLxVD18tXbjwyZM5wOYRIpXy7xflGv/5WmOChw7BjZ1fHdw6ddZl0T6ZAb5+QaHjk9YIMhy9B/XCBRfcewT6RZ99CMpVkzrPsWedcNWt5kF07KU2AQctIGifHAoioR9vD0JIHXZnnTXZe56soGF9coiE14eoEUjZCSo8MQIUOKYCxQgqnIBaap6EsCJ4TTR3VA57FffXCSvcWMIMEUQZATPP+JLKExzEOIGQQyqX1UxdIaEODykwcAkJJEBxyQiSlOCLL888M2WUzETgCxQa/KYal13S9uVdsijhwiWE5vimL1PWCWeiIEwyCTO+POGjaif0mVxDYBoBg445luDmm3HKSSczzDT66J0aZMmaJJbOJsdd6oz/AQMMJUChYyq4HvpplIiC4GujdabSo54qtMrZKUqApsQltnKayqefHkpno75OckoEFowQgp4ZGmvYLdcckQMPLuCoZqG5uummnYhOQi2wEVwDxbaqdevtW77w0EMKgzLrL7OpWHCoBde8GYG7jvoKKaqqZnGvYSVw0AO5/xLKLBQCv0mwwe6+qyieJdr7sFUlnMBBCGaeW6itvhTsiwUCT/lrxyDYaUGqZ4k8MlU2aEAmCRZf4gLQALf8cgkZy1wqCHVWOYLJPgixc1s2SJJCmYS2oIEGV5dp5rOcjkDCjS3Yuu6bUJis4tRWyfEM1ymncJZknvylAbO1XqKCBiFo/8BACy0IkauVIXDwBNttsfLE15fwffXWW+8NxZslpEICA2ZKIrAFqbyZSqqsIl6VHCVYjPnpkHN9N6KQ4hnCCRqweegzkmiwwoGiAxUNCJJA4YILDKRwwm8crMB1Cpe0y0wqPNY4QgvP1BmBECqsYEPuVO2e9+V8hxCCCuCrYKYFiVbe5gyk/gpCCU+oMAMI2P9UCyuBnGIBFECT8ISN+2N+Cfmkkl701EclX5QteqyIX0/mJ4cmyOtfOxrBCM6UPEaRSkoBrFkEUhEBpsFPgS0JBAgaKA0dCU1/EkQT0BCltDqlL4C8ShQzQMgSZhjBF3LgkJoYMDQGoEmC41sUDP+X5sIIVKlzzLgeDVUSCJAEQhqBSIXQGCAoNJ2ugomS0q+kxy6BzXCJKrGNVGCiJhcIamiXwxwJNrerOUmvgLyaBBhXIg3CRAQGhKKiDxmwNR4w4BrSMJgR4SRIO4kqAgmcY0ekUZJTUOIahDIj8PgYgjIFsgQ2sIImWWGDTkbPiM9AHwiioUiV+EIqTQhEGc14Ov+dQhKSYMIQmMAEcTDhBS+YwQxCucskllIlcniTNEqYx1amrASAI4Yq0ICGCwxiEGXQJS9L9cuVzMACT8TjJY7AzdOlKRWSyIIqVCEINGxAEIKIpi5nkMlqrmR9T7TAmRjwmqud7llZUKYgBrH/Tx0MgQozKMEzbuHOlsjBBs+4BB+3E5vYkEASK1DFOQWhCmhKwRrSLKhL9DCDEQQvNmbhAGA2tYKJ7pMYQ2AFRtmpUZdYAwqYg03X6HmNVEQUneQchDikoEtMtrQlVQve47aGOfuVlKLohCZAA6rEn6rEBiUQKgP2FjwGBMIXR8UpNFdagkQ69al4gtzjGGClLGzgnDkVB0Cf5NWvcsQGM4Ap5ohKVoiedaI6XeoM2upWjQRUin6TaipaUNKzoqGiZVgpS/vKkVrtsGtXs8ATCnvWfZaBp3EaJWM3Iom5CjU2R7jGCO5610E4AqByYgZfN5uQ2m0iBVxr6B8ne1YK/5hTqbuMUztZa5GgfpShfmTSBihAgQtcYJ+5DJUU9GAF3iLECrzDXD0bmgLJtkAH+zRtFcQR0DglEQw3cK5BoiEFEKSCnvX0W5kssIJ8alcRYFiqcvUAhGKIdyC14ER5z4u6wJZJA1nQARogYFsdlEES0pyBHvTgCDKoIrzOtYI1bMAKEMgVsq28BIKzIIgNZGGdoWLnD8ZBhlxcoAystYIUXjCETkbgwmM93QhKII0h4HIIQ3hSqEoghR8oIga5AIADNqADKXzVCjagwhCE0GK4etSYrSQBJqlAhRvgUpqhlESPiVBiAHi5ABtggtQKagNrSEIIgGuBJDrJPqLStf+VUJDEEBShCHEcWKC+EIIk9ODjGJDBy4AmQAFQ+kvPjKB94FvBCoRgg/U9Qawp2MRcy/TQWSqiCgf23Hz4TAQ/A9oABvAyARxQhCwMYYkV1pYGTuCDyfjAByOQBlwnmzoN7G0TfrvEDKQgBTCAYQgB9cXzQGCFH3Q6Fw94gAHiwOxlh9oEOMgCirHHihlAlAO/QY+2JxDrautgBX2DrQYkfcVd+/oGTIAlFJ6w5x8YG8gPiAOol83sOPCiGQDAgAnWoQomNPVhcMWTj9Bjgg6YAAMASE0LZG2NISi6kuIetxqf4WvwlkFHsVMwJ4xd4njPOw6gqLcClnCAAwCg4Ov/MPW94CoJSXnC4BgoecxjXvAWsIKTVChGEfoGuVaOwBoVv0EZtKYBLeth41XouLLpDXJQOF0BcVgCyZ+NgxWU4QV9gqsQJpsl9MRcAmAfgNgx0IEWUHjBNyiG8fwWWDWCALxgeEExqrdpd/cZ2fXOu9ObDgoF+J0XJtc3BFSBu/rAtQVcR40xjIEBsTve8Ql/QiBscHQfZ4Gqe8TcCECwYj28IAvt3fUPNm7sPSCb6fXuOy8qUAFegJwXsHe2l3GA0uYqJ5SAW8HAGV/yx/v+ACZoQSAWvHE9VCELi8vfD0HACrS7IQtrtvvoj51sA5hC5J1QQAWawf0K+N3veQc8/wAGferZQHXduucAzBv/+DSk4ffBf8ZyR/+DtNtoBLiCQgtGoNoFvwAIQzB/7sYJnMBlAFB9qfd028cLS8B6rMd9TacA92ZyDjAITGAYVqBLiKd7qnFw7Od4LCB27/d+YicBwWcDvMZnP+B5iPdN4CQEzOd/TDB/BEh/DaZsD2AKphByCuiAq9d9zbAEvKAAThdy8hZqDkBoVsFTG+gDOABzAHAAvjcAacACacAGVcgGYpdwmJRklbeCQ1A2AXM/0JOCN6AIKkiABKgHixBkyaaDygZyAbB9FSACCcB6IsCAzcALfacAAWCE8gYABAAB0wYUUvBtAweFEjCFLHAFjv/IAm9whSwQggAwARFwUFTAZzXoeULgJoPFbmVwS46gCAOohhyHbMoGCjp4fX3HesngfT44hKv3d3tXb6GmClVRBUXgA+t3AIvoeFfgfgNwBSzABmzwBsZojJToA4gkBVTgawP4A1IwBJKgIxIkCWF2A45wA6OnhhsHBLmQC8y2g6bQCTsYAOiYAHeofd8Hfgqwh1BnhCHHCwZAAFVRBk+IATE3hcModpOYjG8QkMk4AABwAr6QZBV3dDVIBWgmQbZWBBQwCNzojQR4A38Gaquog32HjgGgjnfofX0Ida/nd31XhPQIABtAFargAAgXdo5HglQ4iZMYkMj4BqtgjAP/cAA+UALWUGU3AI2baA0NyW4C5ghg0I1qSF+nJ2+qqJEK4JEeOYd/WITtyHd5B2oFABTWsAiA9osiiJMvSZMBOQVOsArIOAAS0Agt8AJU9pNgoJBryJAIZg1loApGSZEjRgZxGAermH0d6ZHJkAwJwJFESIQlWYSACHLMRgBo8BNMEANedgDN4HvG+IhWKJAsEAVO4ASGsApRcAUD0AFP8E9Udm7nRmW45JaOAASOAJecoAeKcJGg1glO55TqGJiCmQB+x5EdOZWgQJtGGI/NdgE/UQx/JoUi0H7ulwY2aZOrYJZvEAWrYAjIAJ0EqQpMNgQ6oAoUAAHrYFm0ZGM3/3ADQAAE4qCJBAgGjrAIlZCD5dgJ8LmDoICOheCRFcCbAfCUuqkAwMmDzBZyWPkTaEAAALCIoPl4wcgCm2kIZRmQ0FmdyFCdbyABQkaggOYAo1YAFLAB0DQEVaAIz9Sa3agHYKAIZVAAALCK3+d08JkAhZANgxkAncCRdxijU6mRiNlsEPATkAkAYnegw+iIb1CMx9igZvmcqxChR/qcEnoAOCAIOjAIEtWdF0BaG1BRN7BgekAEjjAIEAAAyxZyK+qH6vgBUBkAhVCfTxkAkMCfwHmO6KiKoGAAlfATF7CPVCiCjngFUfCPbKCgSBqhEYqM0PmcQ3oAQ2ZgtMQEZf/AT8N1ARSwCGggDnSWBH5GALxwBURoAE/ndzUamOpYn3/5fYRZkvD5l3tHpz9RCRjwi6tAgn6KjMkYBZo5BQLQmZyJpEf6Bk7wBvg2asSlCjpgYKEoDhWlCh96aUCwCDFQCQTwn79Jo4P5otmQAYFZCOjodxXgooMJCreZDVFgrboZcvbYE2XAkovInK86ADNpjA56k9OZpAu6mVMQr7zqBFEgiA6AoQSaoRCABuUEBIPwAjfQay9QZ6pAANYXrfnZmx35AfUJo2Zgo6Gqjh1ZrdkwBRlgrXtXri7hBgSarmmwrlRIk8fooG+gpMhAq05AlhKKr8lwAAUApbTUqIL/cAEQUAk6W6X/WlHPxE8FgJGmEAAIIKPSmqbZkAxpqo5F66JmsLTquLGCmg1FaACC0BOD4GWPF4kDMKQsgKQny6sOyrKrQK9TcLabyQsOEJE29ozgdbDi4AgbCgE566yApn33GQBhAAmnSp8emab1iQAuurT1ia0KAAnZIABYgAUZkAAysHcU0BN36qMlG4mZybIMGp29iqSb6QTV6blnKwACUJYsIAImp6GC4AjiUAVE8JNEsAjPRGfjsEw5q7B+6IcIgAAz2pFQGwZhgK0JEAbqGAYfkA3YSp9zIAAZMAeFAAky0KYGsKMuUQlRqJx/KpjJ0Kv3eqSdy5ktawhn/1u2+NqIJjdqBHC+OhsDi8Cd5fmTl1ZLZbAICnuqvnu0SPuigGu8hQCx2cB6aDoHGZC0zQsJe5eVLTEIDlCg/hiCxpgGIvDAV9C9hjC6GpsBZAm+omsIWLCZtAoAg/ehTOAIqsCszVoJBcCsewCpG0pRMcCpv9kJuQsJFlsIT0vDc5AN2cC8afoBEKuOM5oA1RrAS0ubcUAAhagSA1q9RNrAV2CHgRnEGcCZ4AvAobu4WHCrTrCx+QoBA+u243mwVbCei3ABMXC+gAYATwmfnQAJCOC7YVDD6mgGHxDAODwHZcq/Mbq/G+sEokrEANCYLFEEJqDA7nqWLKALHpm0yf+wsYw8B1NAnRM8wVOADJxJqyIQagXQs45QBoqAS6/LmiY6CM0EARhqfeY4o74LuGkKCWm6sTiMwzQMsYbbCYUwBwB8wy4apwaAiywBAQhHhSOLDGK7CrogAq6Iw4wcxYawsZCswaKbpBbMCMkgiOZ7voJ2ASNsl0ywXXZWBsQwoC4Mn4I7uPpbCAJgyxubDDj8AQKAwxZrBtVKnQGcDDI6p9K7Ejjwy8NYlkdKyXyqztkwxwG8sS4LyQJwtmT5yBkgAgQgCOKAS2E8xs0aAzGgChBQAAUAqQArCF9Kb6CAv78LxE77AY68zAH9AQ1QDT1Mww0gAI8wB4ZgCDdcCLT/qaosQb2UKwK60JnOuQqXa8Gd+8iPTMmRjNC2WpZOIAIOoAov8JYkCl6Y5giHVbsWGpl2+IdoqrTCi7Q8zM4H7cqiWw1P66LsTNK2rLHGKwMyEAcOwBJugNMGupn9vMFlG75SHNPVyaQxjQVnG9PKqwuCWACHpbpVEJ5M4LONukwXUADnG6bzWQjXGryxXK1eLbqWzcODGby2zM4wPQXGGwCP29ArQQEWCnbMWYXOGaEMOsnIAL62KqhMqrzJG7oVnAy8QM3WbMIXwEyIZUvwK8KVEKadYAZjHbxyvL8knQHUMAW2vNkwOq1dzdk3nA31bADEqRIXQKBSWLnv+pyc/4kM9ZqyWYwMi9vaSTrBoosFrY3DClAJgzAOijAOy9qsggYBzJrJu01RQMup5SjDw8u7ZjAHPJwBWADA5/wBxY2mXp28opsB2FrTba0Sxkm5XWuyNimhnvkGBIkDimcMFmICYpek6t3aTjDNFFAFTk2i6CalF7AIEFDVohaF9PyHnfC8u4sAxM3DDK6xDC7LaSrHOXzOtorLg8kLMbASgxCyVAidF07eZskCB9ABTaJQscEAMOACR+AJjZeySfqcDFoB44cGOlUFIIxpG/1MknrR2m3MMrrGkEADz9vGv8vD7by8yzsHZuDGb6zjj+DSymu8RR7hHZEF+jwAugqhWP8woR2QBYgCBbBBRTBgBMDjCSCeBtTZ2ss8uhkA5rld38VlWeIQ6nEryiiatzWu1kRbtHKs4+ds2aKL4G9M3KL7CI/A1yaNrbc9CCqhCoP8i+qapIMKACsgCafgC5egLzugDkoAA7LwGlo+AGyQpKIL3nOQDAZQAKowDhFduw4AARtAt7t9TlLK0Zj6wmrs5r8b6x+wAOw8xQJuBrlL3NWguH2eAQJgBpDQkQpgACnZEcWg3Ut+4Un6BgCQBXFyXiFQFrEyGM2eAhPgo02u2pve0Gi4YCtmsxvK2GdsvgDQDPepxjLg5jLsxgjA568uy2wsx65+zjpctHN6tf5OoGL/19NIKuz5xzcS0wPqECuBcgQ80AEhDux+XZ90igaj2MmMWgY6QAFJJakXUAkY2vG68IptLri5GwBmsABZn+OKW+AIXghh0Mbrzs7UILoC3rwIwLdsLeGD7HiE+pwSsA4q4FGXIDdlsQM5sPA+/+y6EKHqjd4HngChNmr7WgkEBgGCQAxlEOplgPGMbQDNwJ9Ee7yQkOdZz+7VUOuM+8o/LsfVkLyOjOD53ptFrBJloORpoAs0eQUYsA7Go1CF0wNikfexog494AGNJ+Kia6sCwMNgLtgCy57nm8nNtNsA+7OCQAEoyocgDwnOy8Z7rtKuTseFULSQsOeU/QG/y7t///jHHVEF1LuIlGyoA4ABVSdBsCH7sz8YSqAEPPByrZqyVvzq1s7FTa0HZ2izVarxogYQBBwUIACgGa9OCTsFgNQQkhkzC6p9EPDokQABGZIVgmgmTJiIZgoVQoBgJEcFvAwI4tLS5UuYLcVVArAkjSFkyFaxGACgkYpLDFJw6NGDhwsj13wt9WVhhIZGJg6keYPMUMZkvAhAGFSGCZMq4soMoiBIlSo0FwoUcFBwqqFsCRQmlEEDwUeIHyxSwyhgzgfAHkFC/FgSAcRCCSoYgBDT8UtFMQAcGLAqpxM2AzqsGCE0RQoGRk6NVqq0qQULLZ4UkZpGV7ZkyRTzAkBAYP+lAhAoQNgwSJxYsTpUbSBoMACohKY6yZCBIEDhamoaXPSb7eTIBCQN2zWcIIACA5Uej48MgNcAXaucZHgjYbOGzwxgzKcPA/U1/EtTtVjhgLKu2BIAj4ACLrgAAoIIhCAtCtBQhRgdBhlEEArYOqCCAOYKwLswDjOjATVCpOaiDwYT6S7COvwoAQQg+c6AAsZ7TBzJeNHFCSesegMAHHwIgQEgg2TgkkugSCUVC+aDAoonTugAgwFuEgC2Cgi4YJAqbnihirE2aLA4AGqzTaCCRIjCu4QgMYyjD6ITkUTAsmnzgwU6MqMkkazzDhIFHJAxphuAqPGmVVZ5440DOuD/AIprYBCSARJIGOGpEE7wxJMOPMCAMvUwyiCKKwzYSpAyyhCLCR3QEGSDRQ6spK0ww1xPtjQ7UTOvOUBcJsQG5hCpkA86orOjjz7IADbvAtDqT5iKKUIyAyoo1LJVBpjgkkY94yE+IDXgYAJjMNg0yjRyusqQKbLJJopkFAhTwQsooGADQQZxxBEJJ9zNLREy7ES55RAATIAQ1aBmugbMKPGjBSQyo5o5OCokA4rj8g4UAwZh1qUyGqHpgQoMwYIaLAzBQAULgPwshRB4gNSCa1JW4YRGcGitKiwo/quQZBYb07Ywc6sQggtUJUZfthwwrhMUFELhMAEaoMbgEQWY/wiwBRqopgGuGxAg2LwSY8jFjDduyY1GCoghlyUMoYbkNDrQoOWVQwANW9KWKkESIbJwQAJdDDEkg78C6/MCeiVUZdUFIfgZ6APCxEACEeSaiwa7Hi44RL/oBKyardWg7q+wEdgzAAMuMFsRN4rIoggCRMAppzRMmMCTEELQYPch67NPb0mewEGCAS6b43h1K6itgLIcKbWMslbdrTjKeHrDEHb9bRoFFECS+s1HAoMI9DcxCrYQ6xBLABRQHFBkY0WyeN0BG2fHYhUANnviKd6DdOES+xypBSrwAZRWgQUsVEddc0hAAlQiJqFBQBCqWpz0EOSWQ0WhEAEIwPYOs/+1qb3tIhNZAEW89gg1LKNqXwvMByTWCYxpjFllcIPNJJCGDMwuDTzKghAkwSQNqGB3KwPSklTDASi9AYEI/NocsmGGBISnAJUoSNB4w5bcIE4VEtrAOpRmpj0hgGk0+BCIRPgIrUFEIoBBoQobsAA2Wa0aIAkDJDphgEVsTBVKu2FOaAeAAqhCCIN8wu7gk4ITnOBHJECSJEYwASghg4nmC9YHEgBI3RRNEIxDwwUFspa1tMUBUmEXmjzYJgGIECPVqFNEsqaFPixjhCHJixmekyFQxOhPQlBalHKCQGQcIJBZeMIKnqCCzxhydyOAAswsQIITGKN4I0ugXwj3ASr/0YZAFOiKKsqiuLSA6QCRA0CODPGBTtCAeyUJHdX4ArqHaa0BWlBh1UAnvjAkxjsKIIAj/lSEcb1BFyKQQEELsIENFGEdPlCBEJW5OxIYCQoagGTx3va2BB7vL9lz15jWAgEJmkVxG0BDWhDEx+tlIwAIWKf3QKQGLHCtTRJ5o66oIcteec1rdDKJ2Aygij/1UgLLG6UDEsoWE/RoBfA5ZP9C4AljTAULy6AqRqeg0TYVAkaLUAUElAYAB+imLQqa1yaJwxYADGAKjEjA9mgQhqyVL2pa21rXUnhRi0SNhC3aoAMpICM3xCqpBWhEB0ywDuIoDQMd8MEK7Layz/AA/1ybkuQy+tAHjGJhCnplpRkMENaTfvSKQCNTFQ9QUAmsghoZ2CD3nhZXqnFta3V95WVvitfOjcQ5DaySjAbhAAc0wnEOwAEGDluAMA1gABjAwQpWkIJt8SB3HJCmEi3bB3dq9qpzAN3VFCCCZgzVAfK6QL3wRaGTVjFMN9RsNkqCAjLa1WCyresHuAZLQmCXahfZLOnQlw0RHOCvj2GCG2oYJpuZQCCTUe4ADtAjDuTObkCCZLmwcNnLUk0A2w0WXD0iqlAOBKTz2uJZKmgWknoVAKvISIcMU8ZHjEieW8sa1zKs36mJ7mBeq4hfphAFPz3GETFwXG0SDFbKkGsAJv9QVA84wAHQaOBJaRgZhndl1c6NzwydIEC9kJbFBCloHetAw/RMkNaRPeJOJQFJXaXTXXlyTQ19yK9+r/w2qlIVw9TAny5jsohXFWQtZ65NM0Sg3DQ4uAOeIAoHeKCBE1B2qnXGrMFi/LU3KsyWCkKQaDsZAyoCLVaUuR4CVegrw0ikYDvuml0JsQX9YjiW2JUx1x6hBSxcIcgxKcaryBBoAAzVIFGK0huW24EJOJkHPHjSAKhp5YvyBSNca9jCknFoCUROaPbC1yDSohZYhUmqIyoRO2ssW7p2TQtT6wOs57yF/J4RjSWCBEV2VAbHkKURZMhFch1sEBFk4Aq6iJL/BJh8O0xF8qKXzXMI/fIw0DXMDMn47EdB6SVV5Stfw/ESWyRw4fCtOSK23mmbWk2NyxLi1VtgxxZUWM/p2HI5HzCECAYMkxuoYm0MTvQ4K3DtK1xhAMYWlzE8EC4Lk2wZdd6VCh8xhQx8jlgw6o2EJki0Kv5sIAXAQQE6EGzVYtZXKy1j1+QIZxS2mx1rb3l+r3xpF3LQDBTzM0xUQYbJNAM9aWhG380UBRwZ+wDi2lS5kKFEarw6vwYTHXWkvoCP8FMgwBXxBUQ51jHFauiGcMKFVSgAj8TTImis8bnbrfYtwDrPsczz5zeyGNU5Bgh4Py2xiafcN7CABUFXLpTG/zl0Xy7d3at++hwoVkszwEYE4I3cQNRCgS1K6LyLmB6sRFDV8IWhrhaRLZ1AxzXht1y/c75xfuuMhSgoz5+OcQTeg633AcBf6EEHlXJPG7krBFgEyFgGyxcfotFRF/FxjvCIl5LajQqJF3pZFTRAqAacHgJohqk6tWCpMTkyuVZTO/FDowawLUuzCMviswOIARmRjAPoO73Tu92LvzBZvgP4mcngBScQAEJgB5WjtYuiJBKqkwBwAAfJF4y7ACoaNXKKFQazrrchnYaZre3LwLVLvT64L5XjPq6BK68RgcaQkQtgsNtDNBEIk7Y4QbB6FaXhhQx4BNSDtVgSoeMRH/+JqIYAqA2wAi6hCTXbyA1Qmjy3OAAnsCxZqgZX6i4ObLUOfML/0y8ODBY7ggTlkaHx2MK0arAGO4CBWAcTIJ4XrKJm6Dw6Yzl4yzDqeLg6kTgoSoB2aYbmAykAeAAC2YCj4SIInIwD0IXWUzOJAL2+0JqGsbEbvCyL0AKqSaGEaZEAiAMDuLnHUAV/k8SewAGFMqCeaIYomIJHWDobZDkbBMVQrKk1upMHqIQGQQPqIxoEIZoDSZAwMTTmO4Dr27M3yppqGMR33Brz80V6AkaDUaFY+gDmwJjYGw9xwDviQUG9S5QJ6ICpmJYpmKpOVDlDxC7Myiu9Cgk4goRc4Kb/UiELEpMQNECucQIAUVGQAjiz1PJDaiCd70M3eVKD1HO3l2I4e9SCYeyEB3DEx5i9vIM/+AOAcUk6POvE1FO8T2y8d5oINTKDhjCAXJg84AKpUKoi5qkXYvAmHIhEAEgDlPNF0KsrXWTCBvBEWLtBePvEi5ApO3qA9/kTyZDFcYI/B0M0SRqZm1q5oFQ5KNQwjPiLUWSzfFIActo6kDQAbeOm4SiOyjCEnigeOsOsr+FKu/pFbGy5J2y7WOIaOXIR8WAWN3C/Ueu7BnsDy5AkSUo8xVM5uhy/UPwaD/uIOMwikzKQcDQrFTsAnjDCYEOGxMOuR3Cvc5MzFEq9J4xM/3bwxa4BxA0ChX/8k0XgzMiBP+JJg0I5FETTszqzyzqTsa0hHTP4msTgJ6HxkgbxMmIghiLAAeCKlfEaydMCgDdAuXhzLyssGC2oRuBkO7aDNWrgqUKwI/YpG7NxhANRr8m4vUQbKhwgjuKxLEozTcyypw/wFXwqhMV4F9CyDRMgtGyLldzoJTYYKqxczNVSo3lKIXoKP/tcu1iat/58gNpwgCwwm5dwBJ0jA9MaqsNyCRw4ACXCLFl7tYg0H8RQow5BHdtwANy4INskK3khgII6raFqBkMwzWXAgog5Ny2ApU48Uf/rg92kjRYNLoZ6BhiNiRhYhBhwgCLYAJjIUf8qqyqUWzrbyiuweZg2qSMuKxB5MccHbMAF7DjJMYHJ6QkA0IWsNJiHqyk1gKX6PNFsxIKeWKwJiFRGCwFJAIExhdHhQcIUIr8Mk7Y51bSSuKOQFAiQoryBoLxAJScMUJpmaMG5bNC/YKUGsCzhZFTM2qGDk9Si4IARENNLZRYhMIHKYMiX88OX27DCAYyFuYswqAAvDauvKsK0YgM2sB5DoMSsOwBDuC7MuqqIoFVGPdE+WIUDyNVLYbRE0gAo8NVfHY8siCRqQjSRuSkVyqioUdY1QwDJyw2nZAtRo01hSytjW7BY6UM4VYMp0T5rDNf7pIZj09UeOIHdaSgVaIH/ErDUdnUMCkir0RRUNKNXjPKLWAWMFRGVI9WNIvu3j5SghLJEADABpSEnEZg0WuscE2VYQkgDDDAGiHU0DRgBSTkmFXiCZ7CBjIWJvykXqsKCNCgo1botjLqKwgHEIQWPMIFZryrIgSA0ZzwB54IkQDKI2jiASfvEEaHGV2NU4HS5h022Xd2WIFEmFZAEoz1aLlDG1JLLt4nLqYo2zcqV8fkABKABDioEAUAGg3McvcufqBgnD2A0DsCUcgWTgsgAqrpBaZvVRdVSR4XU2ykKJ3M03XmoJ5AEVrDbXlIivV1dv52CYDkM0qEB5giADGBaAiGAgkO2J9nZ25kATTEB/zz019i53Fd7mwygxixV287NVdAFXQ5QpIl9gicQghmwgqPdQl+SyyVCoNuqJ0PQTrAZ3DvKBmpIAwIBgCswNibb3cUyrPEyC5NKkAMQgOsihJClwbTV0i3oXGSL1F1ttAj72ScwEkmQhBmo23btJV0Yzcwime5d2s4JDMNAAVCYg0cwX+oBq7WohBjo4AtQBUf4DUcAglbx10El3qrCiJu1T0LgX/91Mt2RMA0Y4CPxhRKYARBA4Etlglw4D8vQWwcG4hTWy3xtkQcwgCigRNG6gEVIgiQAgt+oAimW4t8AAiDoJODCXfq9rnpCw/zVUmrg3c+F4d3ZBENigBFIhf8bfoYczlhlNAARCM2+JRkghtqHKwkZaAgEYEUDWJ4FAYJ7kWJFIAJCJgJFOGRFCIsRrj4CmMXVW8OsRD373AJkEGPnjbBkkuERkIQbBoHTbdfAagbo5FsHvqjWg+CIKeI72ordYOIqGORCJuQbgGVDDosu6bSC0IUJZL1iVdBF3d8B4FlP2NUTEF2WOeMRoF5rkALrbVdltIkf5t5SNuWGQ4aogwjDCIBciAFVAII9aOJYluUXuIFYTuSw0Jf00lY9Yzino1+HvM9lCGb/fd7cSSTohRRJSIVnmAEp0IPrDTbQjEuMKuUJbLicyZVys6NcuAAr/mYgIIIbIGdyhuj/FzBkRE5kcZiQTkqaQd1lzPo8OblZLDg8DPAAXeWA3akURdKdTZ6BZ2Dmf04tncgJOh7pJaJXg44pwQ0AGgCFXFgEIEgCh6ZlWZ7oF7josMhoCuHoAdhiXuaLbAiDDsTGLegJ4uHZCaiBooDelFakijVgKmjmX30ByagMP/Kj7ZXmB8aCeesQSPBpoBZqoIboWI7oiC7kQ07qEV6E9AIAt9GzpcWCD6i3/ntCXbCNwTNphHuy3NEABtid0n0BKpCCaDjaGBgXHMlsHNmwKZiCq9isKei8alKpfzGA8FiEvVYFcbgBMAADurZrLXkB2Z5oIuASb8PlZlCi0Xu6KZANIEgQADrLLwEAJEA1uhrQ6mVLpLuBghJgBmvQg8rmgoAAACH5BAUIAF0ALDEAHAB0AKYAAAj/ALsIHEiwoMGDCA82WdgEXMKHECNKnEix4sFpCylppCSKo5GOHDk2mWaxpMmTKLs00SiqpSgjSJCEypFDnbqaNa/JkZOyp0+fK1t+CiVzZg4+O5Ii3YGUjxIjgZr8nEo1IrhAHEPN1EpzR42vO3okHctnzKeOUquqVQuuyctPNJF8knnU64QaXmv04MCBBw91Zo3wXEu4JzhKc7nm0DoTqV5PPWpMmNBjL4cUf48ogTG4sGeLgcbQ5MOnbt6vlSdP8MBFNd8ef3PwuNT5s+2Hh+F2zRskCJfWeidz8eChwwQunjhU5pFjBwcotW9LJ3hY1KehfGr0Zk38uOrhxIkn/6eM2a+GZ9PTU3drZEx23+GJD2/NPTwXyZNRczgBRb36WnIgdtMO8MVn33BBsOabahMEoVoNHITAjH/S6cNKIDCF8h4XHRgoH3et5ccgg56cMCGFtl2IGHY1/AZefByq5klyJ0R4wgmeeDcZB+ih6Jk+0njEYm/zuThZciGE8MQIUEBxCQxOhsABgzz66JkVQb5E12n6nRDCCSo8AYUkXzzzTCkRoHkNFCHkeGQJVha2E0fX0eVXCkcwwMAIl1zCZJlmPsNMBMwUGoEvl+B4ZI9xqgWkRkZ8MsYY6mjmAgxQIlKCpr5EEIGZhHpqqC/XaMCBm080SpgcgVg36WaYPv9pwRclkPqFL898KiihIPQ6qC8jtDljCDaoqpYcpbSnzqWyIvLFrF98cU20uebKa6/Y+gKFqTmeMIOxVcnRXk0u9OnkJVDAAO20t3YqKra+RmCBBop6C+5U07CixFHLmtunuc7SGq27zMDrqy8WPCGsJ3De65M+zDCA1BHl/msxIhYg4ku0txJasMHMlMDmjJ5I4rBPrDCjgVgpMGDxv1AEvPGsnX4MsshS7vftySlBvPIOLb8M8zUW+ILwwDbHSysiOa9gDc89sYLInS4LfQnGNFsAbc2FFrrxM4iowFcWrECdEitfpBBC0H0yoMHbe6Y7a8ZN1t2kpiXkjcgIN0r/oo/ZKYHAwGUMuDCCBl/y5aUGLseMyCVuv63BCCNIoqkkM/DtNOApyWFBCEfkifiNISCeJONQcAwFCZvEjXfez0BxwgpWcJ4SM4cfkYLkekquwe5Q+FLoF1CokOQTLUhSgpkin9BK7bafJAciLjDQsp5fJud76oQ+I0kLKrSCvPKCfoHICi04FL1J4DxzSfXWJ0m6CiowfkmthW5q+fI2P/OFClB4RrHWZ5GraK1PjHPbExa4JBJcrUzMeMYMBFUoeD1DZBNkFAEnUosLlQIR54IcCUjAOMpdomgeM9OtBAWCQqnQhRukSC1sEJVArKlPJHAZAxw4QhLAgGCDelcL/z3lqZrFcCKtKoU0pFGKcxXOZT10mbOAKKpBBdFTRTvRESFSipdIowkROJcLSDACMh7OgSgkYtfW+IxOkcoXA9ziQyhhBCMosYmQ09MO9ci4ommtYxFooaEiMLBraFCOCSnFJ+wYiH+54JE5fNvaGLC6mNUMBESsltEiEEdEJoSOoihFICzwvjGO0W0h4EHLMvYFj33sitRiRic9iRA6loISpHykC5Sgx9ZdimCC7BoRcQWCWdISIRa4RiBK0Sdd6skFpSjFNUpRM0/l6oq/YgYroHfMh3wBBoEIBAz+lcNLyaFTrNgmK6TATmsUTJjaVF83H8KMLwRCGojS4zOvMf+CEgzhBi8IaECpMIMJdg8EZZunRORggy/k0XopSIHhWjCIQQhCEBQQhw6EkMFA2YCbCoWIFWKnJ7X55RItyEJFLUqBiwqhBCs0U0JDKhEbSMJtEV3b1VagikH0VBCD0MEQ8gbTEswABDSdiBVuGtGIagAGI1jBBjYgCFWoQgfisEbeODYDYyb1IFbI3O8iegQLRJWqF73qC1hR0GgZdaZffQhJf/c2RLRgBRdNqziYYIOCEnUGcI0rQsB2ibEyoBRnzStQmWCNF8xgq4AVLEQuCIXqSTQQUJBqWnvKBCnMQBLKK2hgJVuQzOXQekrArFTRulhrDCG0ZkIqaREygyf/aCB0eOLnalu6WCpgLlDPQOhsD1IC2zY1BcWbKm8FoQPGFvSaBfvocAtigxFsQne7Y9pqp9ra514zuFLQw3QFMlLrim4EFmjFVDeABqoOIqsZ7N4zwqsIRUzXCjaIgJ7ytAkYfEG9G6AAGtAAVPi2sVMStIEebrAHIMx2hiD4wn71RMYVSJUCGN7Aewk6wVaaSQo/AEMMyOCGF0gWvzYoQQ7z1DgVZEEVG1BFgcXxAklYy1MF/YEe9kAGAEBAHFJIqhWsYQ1WgKAEbrvuEdSFvooyQRE3kAJAH9tGQi2PE2DYQy4eAAAC/JgJ89SHFGr8DFbYtKShc9sJpgoBDDNX/wfKe1YrSyAEa3DiBzx+AJe7XIAN6CDIcsSvJITQghaU+Rkt0MB1ncqAJ6wgC22mwAaEoLzlBQq0UrhzEnqsZwMYAAAAMAEOBjGEGEoQEQwUnzaZkWiyHqF1YpqBUJkgDkpjjGMlaMEM9KBpMui508c4wAEAgAEcFEEVTLgB59hqW8StYHYriAArvHe61rWOAYiwwQtuwO2hYu1ZI2iBNX7ACT1sessP8PQx9HwACYCaAA6ggA5MfLJptyAEzz5VBzrgiWjb4MhfgpsenyCJJ9NaHKDVmgWgQPBMl3vToE63uoPdjGYIG9Si3kCpjSUH76lAUfvugAn2HW1WWGMGrf9YQeneZlsVtIAJVVBEFWotCa0xvBVU4DWWN/1rTxuAF7yweMUrPmxid6ARg6A3ivLLcByJHAPGMAEGQN0BDvjCzJ7Nwsolp2sqgIHbTLDcwhEnBBBzYuecTvcxDHCMoA+9GW4nOqjjrQP/2MB74NO31DFgAgAMYNgY8EGZWaHjG7SifpIbwQxuAIavC0EIj0PcE3Z99nIDgQzoXjvb4/72zlu8yxQYhHRGWtyPe2LfUx/A31X/dww04gus0AO59TCEBTJOA1CgAuO/zgQhHE4Dkzf7nX8gjrSv/RjHAEXQK9D25QO9GRWAuwI+DwEheObfIFTBCnzw9HZLgPWsdzf/wxRM7hAL4Qkq0FPuG/91cbSg5ZKwhs6HD3Fgg6L50Yc7L0ChgOlLHxSgIAZE52XvVRX4JTIKo3cAcAAD8H0NyHoVBwA4MAPspHM/cAPnpyeIYA3sdwPicHi4J3/kdnY6lmcS53PHoABu93zRxwvI54LIR3HCRgAFQAEb1xOf1QIpdwITIHILGH7gxwKq524TKAU5N4J68AItQDnZxm1JKA5Z0Ap1JnskSG43EAMAcIJrd3/LN3QVwAv9B4YwmHwK0HbHYHFeJg4oAQ59JQQp5wOnt3fgx3osIIRXIITuJng2IAVgYIG0934loGB68IRZoGtUWIU/UAWc5nOexn+8/1ABA1AB0feFQAd0MZh8yrd/QDdsBXASrFACI6B9PtCDUidsQDgAQqh6QsgGDQgAK4BQRggGladjNVYCIDCIUjAEhUiBIziCD5eF6fYAphCDQccLIiACVyACFaCC+jeGbVeGKdh2B0AAolcSQvBsp9d9c6h6V3CHbMACrBh+GNAKNsAKugcGvvgDntVVCiYFtBZl81d5nKAIaadnpqBuQNd/x5gAX9h/lGiJzXeJa+djSjcRVFAEcViKDDiHLNCNVxAF4PiNb9CQAzCOxUQF24aOs/h1e8hOyRZevlh5O5aFBtBz97h5QCeJ+Sd9lViJKXh/MViSBKAKFpEFOKCQDv+4jW/ABjzZk6zYkFcwAADQCjOAkRkZj3ogZcn2Ao7QhyFZecUHAJ72a5eoAMvYf2HYgo/4hS84hiW5dlwmCBahClL3g6eoijvpkzwJlBVwBQewAkIgULvXi0l5A2gQUE35A0/JCVcIalMpjF9JhmAYhiooiVa5jAKJfIFZkg5QEVJwAX3nd9s4AHf4BmmpliyQARnQjRKAA1kwBALVeIP4dQAlDhcAVIrQh/J4dnpQBXmGiaZgCmpHhlipAPynkoa5jAAICsMYgzD5aRWhCG0wdQ4oARJQcXdYh6hYhzxpmXUYBRBZhwSwAeIwBENAaxZ1URUlDuIwYILAeIdIgkT/oAhJgG7pFpvoCQqdEAAJkAC22X/8iJtXCZOJOZBiORFD4ACglpMD0AzIGJRryQJR0JyWGQUPaQkT6WMUAAE4QADwBgEQ2mYERmCCIA5Q5pR3BgZVAAQx0GmxCYAfup7s6Z7+GJ/yqYLQiJW/CQBoQBE6QAAY4H0Q2AwO2Y0s8AZRYJkFmgFO4ASW8KNByXrFVmAVJQjt1VKRpgpVQAREcAOKsAcx4AAPgHymAKIh2gkK0J4JEAAAOKJY6Z7uCYAlmgy2eX8PQJMT4QYEAAD8SZkikAzJ8J8CiqMImqNOgAw/igxOkAF4+gYD4GXMxZ2C6ghooAq8NQhAsKRE4AhJ/7AHeyClBlClyWcAvNkJXdqe/SeiAdB/I9qe6smeFZABhRCGngYBFOEGqTcA4ciNylgByMgCltCjbBAFPxqrPWqZPeqQzcBnEHqoaGBRgqoITQoGTCoOjnABUomJu1mlpoCl7RkA0LqlZZqlVsmp0FoI2eCq7rl2nTgRF7Cm38eTrPeQV+Cf0OkELNCjd7qnTkCrOKqu0CkCAOAABRBpEFAAF3CaEioIjmChimCsQCAIBGCPsdkJlqqeoLCpWkqimGqwXhoA6/kBH5AN8VmGD9CYE1EAqTqHNfqQtIqglpAB0AmdbwCvToCjV+Bj7/VkMmesvzpg+RqzUBoDMUAAbP/3oeppsAjbCZCgANCqsMnAj/C5sAEQBh8gqoVQAZBgqcfgAGoYETrgADHKehPZsd0YBYxAslp7qz0aBRkwBZbQkIC6V9vGbYqgCo7gCPVVBTPnCECwBxdQAAVgs5FapdDqs9GqsCNaCMlQCO0JCVqqkoWgmdmQDOzJpcdAAPcJEeJQimipistZme3qo3Z6rng6ueqaAcMGbzVYVT8FBIMQcxfqpDNnUQXgaR/6s9HKj50aAHBauO2ZDX77pdkguwlQCAEACaDwAATQohHhCDDapnRYoFHQtVEwBzzKCMrro1PQrj+6p3HKZ/lKs3CrCjHgqEDlCD5VUYZqs7u5ns//+rML67fJULvla74kGgCFW76F4Lfu+WkXIBGDgAFT+31BqnrNKaBeywjZ0KO22rxTALaWgAwCIAAZUAEEEHoWegNs6whVRWAzGwOV4AD06gAEcAy6a7AG67PPmqW3257nG7TY+sGcOgeyWwhhoKVlaADVCBFqigHCOwA7eaM4ygKvq5lT8LVz4AQCPMDIEMAi0LvvBWVMygQNprZsa6wXdQEQasHCWKkOa5XsicILmwB9mwC2u6XXasLYirvQen8GEL8RoaZsqnpVG5R1mK44GgUikA2aicN7qpk/GsA8HMC7SoMQcAHYe5pKWl9EMHODKginG6KfqrpFmwALULuF/+u3hBu0PvsBfiuxYRAACDC7ZxoRQ/CtkkmZqpicNzqy5fsBOfy1AYyncywAU4AFAvAIUyCv+Dq9MXABaFAAsTxgFNpTqoAG3qvBlIwACNCpiPwBXBy02WDCcLqMnSCxwly77eu+B0ABUDucm+ynJauuuBoFFQDJyvy1yICnjMCjljAFAtANdqy4CzyepikIekyzUUrBlVAAFox8hezLvty+t5sME5sBypwNoqyZQXu7E8vPyuy+vPAA3foQxVAAZinDA4Cg7XqHlQvQX+ujyIAFP1zKAWzAjKAABVCh3MZ7hfpexsq96nyvFkypGmywvrye7tuehSCxsrvMV7ClkP9AybJbu1yMqYkbEaogtZIpAqj4BldQsmx8p1lrxXMgzHda0T980XgqAHMwB8kgvZt1ATLWr/0qqCMtyACgns3aCSgQACgQ1pDQzCkc0MVswPYMrR8gAMWcAQLgvohLAGD2EC/MgOR6BScbspvZoyIbysg7BT9Myt0s2Kg8BSYsArxAgzHLxIIst/jqnVV1UQ7gabysuigcBguwAAiwAN2Q1HMA1R9guNBqtEmdAaGdAUGLuAbguwlRDDDqdw8pAs5Zss+rp1GQDHBNwAb8tQXczciADxadw9lgAJUQukz6r4War3JLwc5NrwRwAMqoACKKAJPMnmFg3bhr2nCt1u3/+csvLburnNP9t7ti/Np9t5A2iqv+O8CxWsrIgLxzIM4CYNEVjQUWjQVTMNVoQGPsxwRAtVI+lVdMDM/RvYzNCrHVncL0jAASG9r4MAUUi7udvQBQjd8S3r5legwHjRBt0Hf8qaPt7cPtjadNLc4BnMqp3M1OQKY02FIr1VIhvZ2COuAQQAD7V7AGiwLrCd6IbLSDK9yqfbvWvQBGKwD44NZ+67cGawAEABFFAOIy/AaWIMM+DLLdPMDNi6B6eqf0rd+CraeonbWLXQk0ewEx8NgRSqGKNbe8mbMp/bNhkNlhkNb6/QFzXtoL8AH4gA+PIKqarcWJWwUPQQFSS7V5/1qrOhqrmumjfI3DU0DO4ozfFh3VUw0BoVtfx4pRBU7BOADPzg0AV1ABcA7WYx3W1j3nkDzfqAzJYfDqRrvn443nnD3JlhrGD4EG+umAlpnlfdrr4dyuxSvOfBrA4RzprFzAJqwAilsFu1cFv/peJI0GC2rS0V2mGiwDGvzLr46taV3AH7DnCaDZnv0IST4HKPyz2i6bi3sQG6CfC7noVL6TvZ7l1fzGjo6nqhzAUR3VCWAADgABQBWwp6mdIl3jMgYBlZ18Oi4DYa3nOI0FES4AtV7Jmh3aUE2x9BwAMiADa2eqr63QDKijqlqylpmnFR2rXovaAgDc963Kyj4Hc/+OAArAZ/Uq8PfaqwRmVUWq8FP6vXEuA+yZyHNg7uP8Ab5M7gsg3BGO9L/sy9DaCcdw3gchDgpdxkE5kYtuysC98nCNvEtd0QUM1XPw2R8QALkg8P06CKeJYU0M2ZBtwQBQAQmQ0jwO1iKq2dmwykneDZDsy5vN5/itz5y98RDbtBDRBqC2BA4Jfu2mo0wt7Lv91JQu8X7+CN2g2gZQAKpgoS8wCBTQU+Iw4EZa4AYOAM2wpZ3w1SgA9dbdnmHQDX7eAHOw2Unf1uZO3zJftH4LsaDw5A+hsagvAtAphAdQdadn5ZT+1C2fysON34/QAA3wCKE9BxUwr7xF7XnF81j/XaQbELcEkPopne31XLt8/wjjTM9hENr4TcA53b5fvHZo6uGgFonJAJEH4AnyMwEYABAD3mDBgszJlCkEsUxBNkUAQQHdpsyhOOeDiAMACBAoUGADhI4QIKARJGjQSUEUChBoViFAJ5gxUSBAEKbQB3z4FlqkGWaBAKBALS4IkwCS0ZegHlDo0tTp0zYYADS7MmAAhhMMjhzhMQGDQCw6sWSY0+0hQWQE8QXtVnZOMgMERpakIEgkyAIOOu7dODWKy5gwUcwME2ZOg105BXz4EAYB0Tk58T2yaLNQoQQBkoKq9NRzFzcEABywioEDAyXq1PGoYQKszoaMupl92BAt/5aIjMMEkItG1cm6g8TpAKIKzQWQG/seaAZJRmCYMh7ffKRGDb4pjWv6NDt5qM8PmDcbgPDZqZUhRUxgkGBihQbUqUN4cj1QLMI5GQRMEftw/xSz5sgmAQM0KgACCiAoaZDfTFJFlZIEQSNBBwDgBSZTOjElQ+kW+CCy6x6ZIpkFIHEMkgUeUXE2DxlDCpJOQDGgAPO60EcKIYrAAQMMJjjhCCVc2Io1YwRKK6cpGBEgv7MaSmuKRwLMIJkEKtCIIwQ70utACkgyKSUcCDjgipdiem6mBbqpzrpHFiOqsDA+UDHK8ArJJhvMMosRFAdqtGKGVlboAAMTJuCAByDHUP+nBy6+suRInWZrwCy0KIVIAEbmSEABLBHsUqS98toyr9EkeCOKMs2sKc1drlMsgw8WkHW2XR7Bp5sPMsgmA10XwCzGB3K54bNaQGghBB86MKHQGnpQ4tkjGP1qILWwEHE/AdIiKKGFJsqOQL0QnFAQVcQ5aRAJQXJAzCsOEkDXwF4KIM1u8HGVsmwWeCzNBobBZ1LGyLIIEoIDOOaYBwb57M9AV1ihjQ46qIEPJYwIMgSvrIIUW4q4xU0toSzKzIC4HBBJwt/OhVCQDVRaV8wKEpBZM8EeE0CytYaS1cMG+vh3tiXbDC8ASAKQkTzP9LFBiCeeaKGVEE4I4Qgjqjb/AgYGTvAEBwDsgw0LSxyyFiGzHFrMIioVACDcAx0Y9S400Nhgg5RWMoBKzWDsBAUZFmgAH5/XamCOnbtp4JFW6bxp8FgLKRoUUwy4wDMrnmlhBChGGIEEGGAopRSrSWBAgxCKIGAAZHJCC5mgHALQdYuywRuAudAYCQLkIIghhgJwwOFAkXBY94pkxAsgQxRo8Ns6xSz6oBu/D98lsbU+AArXQgKQQQZQlKLxKfSEgAKKSy6xwIJrPjfiGgsuGeGJEBoBYICwVGed1zkeemRSoe5kLAAAcIkCwRGHIwzoCHSBqi8AkEAUpqSnTshgMH6z13VwRRRZNQAx9zqbACij/53ndI8A4niKNSSBufGlrxSUuMbVOqe5+dTnSApxgoD0sxY1UYQsH4qVAhQQlwNF6CTDQWBJJqQu0YggGalCQSeUV6/J0Al6jDGcGqinosFFBHupUgoTnkIFFTDgEp5Tnws790KMSUUCTsAH9RRCkaAFBRkZiEIhPFSUCsglQWh42V48NUC6hKlrUUgAKASDJpxMZlI7m1UDmOfBKJZli4bUkAHQ8BQdhAA+6bvGNTrnAhJAARGIsAAUnuCDRnCNftRDRiv9o6KCAEVXH7KIAhxArpSgIS970YvbHCC8dU3lDVPIgOMimDwU/CQnarjgzjTYAC0kxlZziiKuIBijPv85JQsrCAEUAnGNSwjpCC4w3zV84QsLvK90rkmd/QA0p3clZI53skgADBCuC3SpSykzYoLyIpqpiMCB2dDe9h5jFjX0QQ0NiFUjNagFK1bzZpPBXtE0Y6UNOEUcPtBABGAguhSkQIwW8IU52QeFYzXiK2G5zrag1CYAXY8iupGZAngRwAGKqyT8lJCE/MmSKWlGgjNRUxQZyshnKnQykIQiPHHDq2Q045JNEccKSoAIFWhAq2KEgTlLUVILIOIJKkVdTlolFuz4Zz+Gi8hiMBMGTv2xEi/jiB8HmNOVXGEsmaEJTaqohv3N6gPPhKZ1XCWZNVlxejqZEgE0KoQSPEH/q/Ap5znBiogRhAAHpgrL9FzVraC0dVKzcYzRCEABdMUtOQTwpXLoKiYWWIIgGQgAAmaCAEcatgH68ttstKCFPiiUeYet4PSMOxapdkEPTKBCC7QaUhfAAH2dZF9YW7AC18h2mQlFq0NmM5v97XZnvKmEAEPiG5T4FIlikoBssxMGNB3OsPral+GgGVz8DqMP1MvJIjO4CwGwoE/WGIIQAjVZcp5PumEdZSs80bX6WdGwrvJgAxyyP8NB7zGbshLw3FYA9KoMXSxLUJgGgow5OIY7gGXRvviFmOAOQ7/7reBCd7s9GVgPH5YAQBduMJxtjo4BDCABCS4xvlEiQhLY/33NLhQa3OEqEkBmiVKafHIUA1QiQf4MlcnugiBQVYiNS8oGAublyMAykl49G8YWtoDfxOhWvAa9mSUGAIEbILAIK3hCVuFDWVGOEgonwABpkLFYJ0MZZ21qQG66URQzE6gAKdEnhZRz6Y28bExsBHAyHLNmDaq5OzMOrr32y6bfinde+hHAFQighyoMogitUEEIQqpJIkOBwVDgQKEHMIXFJlTRzZuDitxE392UjEuicluXIhQ3vG7kAGlZkk88NJuGipeCu2izv9ZiK0Wq4bdamFQYdnWnBEwuz4PYptRCoEnMJRkRvP4K6oxrHfy2NDv5WxJjGlqYBMDFw8rRsv9JGDTiliXIBAfAQmIEkA3uGK6h0JMU4GTch24Adhf8E8BDE42P/GUAEscozwvM5YYi+OBQ8CnyJZLM6/kNZHp9uPiw+22WDO/sMQiYEQUuQBLjhNmXQ8fBekgD7MQMZbSFs68j++AF/WoQcZGMVRWDKxTeCKILilDFBRrRCE94AtdDJmVYn+AJjYVFv2ufcWKwMJS24KqhNDGFAyYUHAbVja5DX07XADcZnkFPsNCbFJuHYePDquHhmkEAitrygQSMsCmK2EMM2oCDRnDg3SnQAAnkrYIODOBRqUt0oofdpiVluKGyCkAuTDZALfVRQV+iNASERwC9Tk9ouGJR4dL/JOxhpNrJxtVJ9p4jHQR0ggCO0GgbLO8AsHNA+hog57xHQGjUpcXJW5Cxm4WbEwyD13mNKQxcvKwcABioLv3UkmjG1HAna/u7aeLXI2iO3/3S3LjTCw+OuQcAhdGoC7A8AsCBDvCEGtC8IxgyBkgj0XuDQ2O7GHszJDGb2XAL7TAtkVi/kkg4SwOo0eCFZkg//tgvLMg2wnom4JKxXeiGYjqLjrOxBagtGuiEByCDAHQKNyCDNiAAE4iYCWiWQ+EBDuACYziANzASbuu2GNOvlrKWiCiLiOgrUwCAfEKQczmXlHiZcBE6AoiCNvIXizgMwoqeJsSHNzgAqaCKbGAR/8OZwe05BgcgoacYhALoQR4xAWPgggnowwloFKtIQtniNm67P+4bhitqE5zrveQDortgNlHhiOAgsZVIojaiMYuwsRRUg4tDhquIGK7hBRTJoA8ok2OIgc+wwx5Mv9EgFD3kkVKxCtmiOQlkQv7an/C6oN2wJ5N5LUybC0sjjQGYiobDr8VoOme6Pyy4Cgw4wEbowQfwoQD4EEjoHlCYnM+4PPc7AF7IiPS7tKkQiCWUMXIcBi+gwGWyFaARr9ICgEoAiZHwkggJpHU5AAkYwfQ7ACfAAv0COTtKwW7QAjfbhSTEAGM4QE/gAB8QpAfgBaMwpAdgvs9QBd5hxQdAGP+NaC0AEIEM4MduK8c28z7DQqzeixVejIF82qmDI7EPA6heSr8rAJz9qrbogSYtIMdl5BEPmABPcLcQWIFUIoCGPAZQIANFMA9HaAMyuBKhfADWchvRqICOpMU3i7E+cLM3Yx7wK7w3nKK4EhVeqkTRuDSRYK+NtLj9eq/CA64t8II+KMgfNJR306qfLAJofIAHQMUaoUgebIQC+MaXmQoW2MdEY0HD9IJz9LattC/oKQpe1JJQiUTWEiAKOJ0ByAgJwAL8w4eqg7GQ7IOrOEie1LzJIh2HKYKlBAAgqJGmKA5VcAOuuRILkcWMyL2Zyy+sLLXrACz/erTjyYVK4J3/DcynuxqgudlCBlJDjQAApHNCLMq/ttyCnOyA0TwBDVABFXgCBmiapnkYMpBI1lQEcVCFNmDFqViCJTiAAhgEHXAN+Fsm/OK+YTOq73KMTogL3vml3+myAym6+fHGSwNDWpwwmmvLc0SGA/jBhJQaDWia8Wm5p8kCVWDNp/ixZ/wn1sKB8miK0LMEnBk+7pPPw1IT/3IMFHgAB7gAXkI/VhRGNpAACRgACWCtjRABzbw/6rlKxDzHN2jG0SRNzRmf8TmhVsiCIaBQJPUMcfgK7Vss1um+GQuRZ7ogmrDBFP0jCKCr9GMBFmiGAzgAFvBEGhUTwCnE4OK2HT1HS2jG/7CTPuvUgM0JJUmQhBZ4glZ4gSTN0y7YACQ8tJxAhjfYyPxrO8F5plhBAO5xvdwZIDHJCGkbAD0qABNgoDEFAAEoTNzcUek8gAM8AU/11OvcHCiYU0kQAiGQAj1N0s2yD7SQgGmbnu6jQKDIRX3pBF7MUh/8CjY4ALkAKBwogrkpAk/gkcDMgDYyPSczRy9gh2HoUersyXd703hTshIogSGwgVRFUgLgrPopCPhbQvl0O4bCFccws3uCgNN5gzdggyg4AJPBgS81gZ50mAfDgNsDgJgcvppTVmZ1Vp60Tk26zlAaJUlQslPNVtYsgvl5FLU41v3bvlMDiqWLtHPFPf9LuNgklIsOIA15lT5POEJ7DZNttbhk3a82Q8xhWNMD5ABPncvsRCFEaAEhGAJ9QNga+UuB4A+c+VD8cyMNIj8EAJeVSAb9cIKqMAHfmZ9mjBhlCZfAdAIzXbsQPUd8GABjSEgO4KZ3w84nGIEWqNMnEAKbrRHRED2FaNgPTdYtuKJ/O56KPQZeeICM7M/IHIkHSQlcxVeZ7MfbHMgeNRQGLU3NmVNTtYax/YwNYKDs21nGvcT9ahXeZL0f0ouNCM6f26nfAAIgcITNFQfPBQJBUNF1aYabGb4c3QU3GwZP7NTSfNlRLdUhsILD9YzENRUIRFu14C84eyTBC4DJPZn/JDAgzxWHKiheRVAEIjheJvhcvK1HwnxYWOW+ZTQGnuQB0tEqFXgfr22BZ5hdzyhP0Wslb2XcxDCux1WMxTAzezotNHAEcTheIojfG4hf+k1eJlje8bQd4dnIb0W06FVdDOCChHRZOOVOIcBW73WKChGIi9WWsEBbs9o/nZiIxtCMe7oAQSBe5CWC+QWD+a3f460CJkCglvmnZvhWyehbRPxbd5us92maGUhgjSrbN2DYs9WJxr1Eh/sOXgyOKkDeG5jfDwbhKiBec8HbMHlV6J25kCRIeQ3YMBqBVmgFSZBhpygG2HIC8W0lSFEIszIrGsuZ4kmGtfk54YDf+qXf/xdAXuU1F1X4CLfB12IsPfOFswGQ1zdt0FZ4ghi24i4QBwZiAQjkYgdWHQhewunBjWz4gGy4J2d73w2W3w9eY0Uw3uFAF5eZH9IjVH2Nsen1kevEzir24y4ohnBs4LQQ37N94BRuM5+JJQFxZEHY3Ejm4OSN5OMNYTeGYzGxhJlbrGPNP8nwxB6B1lYg5aZQhXAk5IJQ5frZ2dtMDIcQEJwyCUiu3yBO40qu5CooIpUQjXyV4PI9U+yo4U/kgBZA5qYoz2YYZEJm5hw2LkRkrGxYmy4ZBEeoZSEe4vgt3uLlXFX45tPpLDjT3elxAl6pCgxYAXVuihgAgCVol0dBaDVZQohZvZlp0gnEmZ4l0RV3rAtHqAJbDmKSHuJc/uFKPuJvnjZ7cVzFA4ooIqaquIqMytOAAAA7)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786249"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786274"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786294"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786314"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786325"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786335"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["![rick roll](data:image/gif;base64,R0lGODlhyADIAPdOAFJENDQyKysmC0MxC1tMRGxiVUM7NUk5KCwxKzQyJTszLCotJLR6ayYmE2VVSkM7O3RpXcualUQzHIdXN3xwZzszJMONhXVsY2I8FjMrFKx0ZYN1bJZlTHVRMnVGDSsrHMyfoqNrXDwzG7N8eLl8c7yUi2lJNZlpViwyMqxyXKl2aplsYzsxC6uDfLyDaKWZmMSLeGtZZDMtMriYliwtMZVZKMqqqaWcpHdZRrZuJ5aDfaFcGqpuSZlhOoplVrWuwYp7g4tQFKqJh6WSjZuYooZrZc6Tb7d3W8iCPn56grx8XEM0JJySjeC6nzQrC6t6dLmGezUxFLanqCwqBa2hnZeNk8q5uDsxEyskAph3dRwbAhYRAIFMD7l7axIMAMmWiqilqiwxJTw0M8F9Tl5NYJWMiystJCQlDHxyazwtChwhAjMtGzsxBXdZWYZsdTotBSQjAUM1NNW2rCsqFN2hbsSZlbWMjLuywsycm6uOkbSssm5qc6tlIx0bATUxHEQ0IzMmAtapkYV6dI2CfBwVADMuJDMnC7extbyLhMWdoJqUmHtzeCsrFINfZIyFhiUlCzMuLEM1LLSJg9Cfodqqhl9gWzUqBLqEc9GomiIcAdbDwbJtZ7awxjUzM49hPdCOUjs0M8N7ON2nebGcohYbAdGdijY2OdGdlbuFeruLhIZ6dTUqA820sad7dqV/gLl7bCUlDDMuI8yJS9SUVzQzM9bJybqEdN7Ctdm2p05JUjosBSIcAkM1K8K3wcmWi7Wuu9mcZjYxFDInCx0VAI6Ad5J6g3RFDUM2NDMmAzQxHBshAiMcAsucm0Q0JLu5xsSZluPPyMm8v9atmeTTzSQjAiorHLmeocmVh41sbDMsGxYSANLAvhwbAScpFLu1t66ptNvDuiMcAZSMi42LlDs0NDktBSwxJoSEirCnqyUjAbVzTXtnWhEMAK2Ab5N/izQqBDImA7Klo8W/xIZ6dI9zddLExjImAuG2lCUjAsSYlM2/wuG/qdyzmenh36R0Z5+gnCH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCABOACwAAAAAyADIAAAI/wCdCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LNiW4s2ebqOXXpOzVafwoiZo7l46RT5+MUKIUl5Lbp03kiqJDmM6nUKFy7NiRo3EOHgyM/F0Kd69hxIkVL97MGXIgfpOPgpNLB0njUEgSc+7BeQfrHJ8oyQk9FJyou4lD4UVienGNGj2CB+fA4QQPHkeMgKYNlJJpx9A3A+8xIciE6548FUeu5NIX5j8paf/m/LtGkBoTgnuqbh17jxA8UsS3AL6n8xyhfFv3wN/D9f/9YUeccfIxYEN9Oo1mFxI7/NZffx38N0GAE3gS3AkhhHBCCqnMhmBN04DDjyifKBZEEA8+2EEH/vXXnoTDaXDghzOFOGJvDU6YYoAtXuefhP/1cIIvNM4kIomq7YAifyymOCGQ2VEHJAczFglTYHchMQYP5i25Y3UVFheCBmSSecJ61/VQpZUt9RNXlvkpiaJ1EQbJQQgMXJJKKr706UsqI5yZZglswjSiYVpq1sOAGaaggQoqQGFBHcxEYOmlvljwhKCejFDoS00MdlhmKaSQ5yWXQKEqFKnUYamrl57/YqkvUKiwnicqfOoSlqkhpoQSLlwCA6slWNDnpRF8cekkzDAbgQWBZteKri7xc1gORygBg7AwWGCsL1+Eq6ylskbQ7CToRuBLCxpw4MkKdVDLkhGJIYdqqpd4a0G4fY6L7CnNggACM1+kosIJxc0g70pGNHZEsNwKq6+fx4ab7CnoCszMnwdr18LCKsGgGGT3ogpDKt1S3K+yX2A8icZ/BkqcECCnBMNipkJxL8QT8wvuuC8L/HIdJTzRLgcf13zSCDg/ofMlLkAMQ8p+ftFnwAJr/CwUGpxwgiRKn3TJe46+8krUl5BwL9WZgmspMwMzU+nWKhTHTNgm1dGoBmej/0oCCSO8ojaffep78p57etsnoCdMi3dJNmgQgqMaMMAAmRpiuMkrknoL6OVkqtACFJIgPoIGYD9eEhQbVi45ccV5PSbnnadyyQgMkJBKCYjz/sQKd6tOEjNlFr/JCLeXmacFln5Rwqq9lyB9C08IX1Idll/+BAMjdA86mctfWrQGm6gwghCSlFDHuqlbL5INUOBuuQqSI4wh+LqPy3v3kqRP6caqYoX7RAIO23VvBPTTwAoeVTnLcc4X5qrDDPo0A7jFzReSGIEF1jRAjoDjT6oawRMOqDP5qQ0KvnCV3P6XtYFFgE/mqkUHOzINOQTiFAUbwdPUlrbcvUJPKbyU3P8s6EJkMUOGM9wIK8J1w1Soym9/i+Lf+KTCSskta3NT1xdAkMSNgOMUdtnLtqBmNim+gnupYJ654hYwuUVgfRDkYBctAkYjhGtbUYua4AQXRSq+0Y1wA2QdBhkBOc6RIoEgjBGMgEcXPCx3JDDbGfU0MSGuUILrC94hMSIHI9iFkXmUZBQZkIIQbGKK+3qbGwc5A/UJcJMZASMdvmABqLlgj5G03CaWZywhOutSgzQkLCfyJrtcwmyo+qEDf5hKc8lqiMCcQR2sMEyNBMICU4MBMiMZLKlZDJrmsqKlKljNjfgiYsk8m9kgRrhwImsSb5yBMMs5ETmcgh/8sF0Pz5j/PVRJqk8laJs7Z/BKenKEGU9zgRJAabZTsQpxx2KlhwzqxRLYEgb8+AIzbMBRG0gTVhRj5TwpSpEZPMFsMDgFFGYQDym49KXWqJQvpEdTZlCTpBqxQeAsBwUh6IAYxFCFKgTBBB1IwlXOC2hA68AKeeA0I3IowRlVkIpWAHUDgtgAGoghiCEslabqq4MNrODUp16kDlBgwBNKIIksCEKoghDEIFSRvhQSTXqDBAErWIFEs1KEFbZjQCpasIINbECoqihDGVoZ0JnitQ563etN/SoRVjzvEr5oRWGxKtdBvMCySpVeEDe61xccgrITmYHOvtCKuGZVEEAowwukANbH//7RBoeowgaYgNqIxAN5EWjFYQXB1UEMggkvEIITqQhSsf5AETGIwSCk0FuH2OAJlwgEYeMK1+O+oAW7o9irCHqHKsSADASggA6qyxBWSAIK/JDEZrl73HhIYmVWexVTfwAEMuSCAABwgCpewF6FqPYUhDUsZwcxBGscNVniMpcvrGEFPSwiFwDIcIYFnIUZWKPABalDCzK7Wa0KwhFMsMYMzJWsn0WgBGMFwx7IoGEAGAAAGDABDnyQBfTNYLK9tUH6NGtYQaBBrkywQQmQNa6Z2uAOYIhBLjD8AAMcI8MHAIAJHICDRvhgBS2QBEFRG1VfqKCwrkWyDYSALPHZlP8TN4hBhqtsgDob4ADNyDIGMLCiRqxgBa2QhDUKSlI5WIrICkayNQKqRWVh8MnP9W+G6/yAY9Q5zweQQJa13IEdf3kFQrBGPEhqgz+tIAuGRQMaDrvYNGYqXIMVKyd+UAUMA+ABuLbyASLRjF4PYAASkACOTbCiTu+4CDpQWDlZUQdAZQHVqqYAGgZRhjwIwVj60uE0Z50EKhsA18c4RiTG7etgA3vTe86xCYi9Dh0MYZi1YMUELdAKn1JbtvFIbum8BQMSPEEIUuAEJ/SwB1t/u9J1FnczJCACEfwa2MHW9AEmvuktb6AMH+5iLVwqiRacGc1CLQMThBBmC8SPBAz/aMUM9CBwPSSBxre2c50jwXAWXEEELHj4wyXw62Ys4RgVd0ARykDdDtbiEFLwaCvIdGoIOL0IG8iC09IWOklIgeWzdoR/cV3pcPO6GSK4QjmuQPY0LCENv06D2SuQgApUQAGYzjEOVKEI68mDFfFghUtn0IoNnU8VOphrFloxApSX6QkrF/isibD1B5jC0goPu9jHLoIlLKECV2ABCyrvhwr02udLoDgACFAAQTyuFiqWhBBssFdrtABDG3xBPG7wgsGTqVRkEjTWBR5lKiPcAOOuQNjLUY7NN1z4YU8D2yswgMsrYNzijkSdCVCGsMm7BC1oRQtYzwqla+AJdRjC/w2YwIQs0G8TuG9BHaTwA8XDmcZcrzS5ez38Kyif7QlouNodDmwFkIMc4QYK5MB1F1BWC2NZQqBZgMZ9SFd7oMYEiqAIRXV+GpACKpAHYLB7s1YFjVdl5MZrwpcGwdBwN+cHCZANaSACaDcAvRYJ5AAK4XYM8ZcL1bcwDtYKHfMuTEVWA6cI7vYCNxCEOoCDFRgCLRAPetB+ikdwjReD5JZ5mTeCEiCCGWAJVZiCnXd5kXAMABhuM+gI8mIFrtcxxTYkrGAFh8B7swUGbCgFCYg7GqByV+d+tAZzueZ1YBcM5TCCfiACFRAMwbAKlmAJwdCHnud5kcB14UZpDwAAe/9QdGxiBVYwA4S1Hh2wZx3gA5IQCKyQhrOmB2x4A2xYBq3wBJAiCS2lgYw3ZzInbseAeTYnAc3gdoAoiBmQAdlggiKwhTLodZZ2cA+QC6pQKIcwAwl4JiuCAcHGZ62wUUkocD8AimwIBqRoiqjIhrv3A90Wc3YGeZGAeSIoi2FnCYAACBkQDLjYdgpgZTEYg1Z2cARQBWxiWYTFARPQAesmeh2wAiVgDS6FddIIBjegA+bXAiyVge6nB3JGZwmHhyLgB2ngB3k4iPuHjibIi113eTEYfwRAYDQihh23AhyAj3wGAME2cR1wAiWgdy71A+0nkFLggK0ge9jofquYa///F24KkAAJUAgmKHzBEAVBCYiAmAGdB3kAqAB+4AcbWWkPQACm9yHgYA0JuAKecIk4pow8p2mZyFRSEA8Z6JKgqAcvQJB58ALT+IxZlwu51pBcqABulwCdB5RLmQAjiI7ZUAG/GG4VcJSQt5GL8CEeRVgncI8YkGEmcAA6JwEmsAKsZwNgmYFJqAd6YG1nCYRp6ZJxNmnApwAxSA47yZOi6QfBkAb5JwLNQI7B4Jl1Bpo8WQG8yIUy+ADDWB9CpllXaQIAkGkZpnPABgA+wAx6F5kZeAh6IAVVwAR5kAfkB4ERSASKsAeT9plW9n8BYIKiyZPZkIttJwLm6AcKYAqm//CChaCO4QaaCqAAuBYD9eF6f3aVGDBxA4BjPPdr5nYAniBP8TB72EiZUqBY5KdYggABDuAA0dV15ymbnUAOARAAPBkAChAAFZANlrAKuDihAmCU/hcAndCTogmhbFcI0vcABQCJf+FeHWOYJrmMijkA/AdxHWCQLHUDilAGQSgFNyAIF0ABFAABBUAApAcBaEABDpBwB/d/EcqgCZCeEeoH2XCLltCHt5gBbleeolkIECqXfpABIjCbNBgaVLkCyIiPu/lrOPZrm6d2ZMeYgTYDeUAMBdBuG/ACQ3ABMeB0FHBYOiByZaAKBQAAi/gA/0cOnZCeDaqOTkqOGQAIKf8oAFbodnkplw/qoFv6dvAIhn9hDX1niTlWpr/ZogPAAoNIdvMJaCuAjzhwautADH2qA3uqWGWgA6qABhBAALsWbuO5oJ3QoLwKoQHwpOUICFaYAVgACMHQl9o5B5OqANsJm4wYmH+RBUWAA+t2mCZwmLzZosXHBmSXeTl3rZm2j8+Wp6sWbQVQoABmYweQnpaWq4fqoBG6pCeYARk6BbcoAMXqh6I5B+nIk/wKm16Ia1FZFkNQBA5wrRoWnxSHAQ9XDpZQDmwAscTHBmyQc/NZoOuQpz+qYQRQoBAgbRRQAF1HDqbQCSbboDvJqztJrMF6i/hQrBXgoNuZoRnQk4v/agkAG3+YWhYvcLDxuZugepIPxwIUC7ERW7GTF7HzWQB5mqeHxaoiF6CqAAGAegziOZ4NCgko66DaGazluAovS6UBUAjVIADV4JNPmqG7CICOJ4PQSrAOgK2ZVp+h+msUywITa7SCWJppQKrpNavEcFzNWQbGtQEhC2CRkJ4ki7W76quH+qRYUKxfiw8CgJ1+MAdz4AeFQLbn2Hn+B4BsewF/0bPYepL1SbR3W5ossAoSWw7GmnljBwClNwhHBrIF8KPpupufl7j/l6snC6GQ0LWRG6z4OgdYeoIC8KT0mqGmqZcL6o7s6Raku5uyuHA6Z3M3p3nEN7EsAIgTm2Wk/5en6dqxBQABO9qjPyp9g1qyDcqgAggKMmAOT7oKgCC5kauhhSAAAjAH2SAAj3CLS+mC/8eOBgABf3EDf6q7C0e3m0d2eFsOAzB5xIe3GXAFrMsGEuAATbsBg6ADzckEiqUKFEAArbmghNqrJtsJNCCzXhus2cCT1UC5/ku5GcC/CTCooCuDEABkYiEFcpZpC0y33UqxFBuqE7y9lhAFxXcApTdtggvCskqrG9sMW7i4oLurJgsJkCADY5sN9Vusw2uCv/oIMzylNRwAhDrAXFjAp8Wzf5ppECeLVzCCDrytmscGq9C9rCuUx0oAaAC4PHquubuiPLeFuep/isuhAf8ACbuati+LBfjwsi+cAHOAr8U6pebIq4O6xgUovXHbotV7fJKHuiygxBHLulV4i8I6euUrCOPrAOUrpCFbpFx4tc+XpL06thmwCvRbjpCMBTWbAAKAD16LBfsrxmjMoP/3AKLrFnlwiUEbbA2Xh5k3AEUbseXAupYwBdwsrCLQyhSgClALq31KpOxoCq2ppBEar3JZoV/8y8ZqgsMcuZActjG7qzg8gGjwF6rwyb5JgmFnxHlLfLwcBbfIzeUgAn4czqoQoIRrZOe6m3ppAOiMpKH5rte5y4AQyZFcrGI8B5EbycuAD5YgAgmQwoNaqAZQm2VhDetwmDyXZ+YWwdb/LKpRoMQQy8vEBwjcvApRcAAQYLgDergaBsdX4KK9O57umgAgmgAfkLb1iw/LsAzAzJOF0AAi3Qd9ULkQyqDJvKvryNJkIQUvXaaaJgFzHHaom804nc30GwXcbK+rcAWyK6S5S74+GtHSJ569e8IoG6FPGgz4OgUcDczZEAAI0AB9sAx9oAZToKyKrLVoDNYA8LZlUQTYap9qvdbYjMQ67bDdzLosQABBnaeC4KqwamRUW2dXS7KgubVNermVXM9UHQxMndha3QfA7AeK3NX/B9YGUAC85RY6ANPAFqpXcLTY3NkQ+7C2uAo9XQ4A4HRvBcIPLcWIO8DjSbImjLK7/6q591rPYXvYAdANWo0Fq/DCHKrF7duhAWBpBLCzZFEGewaqRCuxzD2xwWCOSgwI9DsFUWAJANCjA+qj6ZppDWfSHLq4V9u4TO2g5lAI/Kq/Uk3VNbvIC6AGL2uOZxsAC4ClaOzh711nGxCtmZ12eNvZUcC627uoK47T9GuhdY0Gg9yxBfqjBtAJSl2yOq7IDx4A5lANizoFWMDYlMvbJjsHxGyF2WC8Qt6+5EC2CbCIBeAWVqAKAGbfrbvlBF2hU+Df7lyOU2AJpD3UWNXBsmq4BOB4VyueutrjXr0ADdAAAgAIU90HlHvYDArSq4COH1DJGcrU/7cAeh5uBEAMZf8hBTRukjpHxNt7yoLo08Hw5bzs3/U7BX7QyoCnWGlOoAQgwG6uAAva5icLCdVQyY/A2IuND6vA2w6q5Pv7Aadur4C4pJBA6DmJa808FnnQCLrJwHXbujft1ryM3itOvFgQCeVruAae5eNYszru5pPdoI3boNVA58Ns5FgwBepNySOdofob6EzNrNWQzBT9ANE7FmWAA4fpm46+vRbKy/Iu7/5drAIwBVcQvtS7aUAKpAaQ1Cidyw1aCHKeoVKN5/gA2WPbAFNNxpGcubyaANeezFxX5WShAwcLAL8GsQOQtw87BTpdofRu6e+8CrIbshCwDkcmVFpVq71rsjxe7eP/ngDd0A36qwZqgOePYA7mgAAIYA4MP9KR/AhYysidQOfV8LngFo9k8czxiaY5xwYdD+m8bNOVDvJR8MUvywKy+8fEEHhzhQZ67X86XvadINm5bA7d8AiPgPNDXw0I0AkokNg5L9WPUA0pbLJCzpNqbGk1KBZZAM0Pd7fYLO/Ep8Qs7sstPAXlQNpD6qMOAGDN0PEiyKHRLp4CP/BXzfBareECgKVyT/d33g3mQANnLwP5e9g3TA4UDYDpHhZloJstKvXFx7qGj8QOm80tXL+A0PgFgAa7iZqbpmGJe/l5z/NGv6tlKwCqPtKPjdgIIOe5jQ+kb/pnb7aWH+0mG4xN/98BnlrT1uzWwkrsRQnGYu7LGUDaIVu+qjakqlYA/57CPF6yPh/3JosCC3DqFf7tCwAQkGQg6KamTx81j+YsQBAAUoNuhTp1MmXq2DFy5B6QSeLE40eQIUWOJFnS5EmUKUlKMgFAwoABV2AOYFNuFSCcqyzpBDTl5k0sU7D0FJCBQIENGwYNIraBAgQHBA4kmGgKRUUZkGggQEBxIsFsApaNXYZPQCGuCBo06LNMwKMp1QrNFWAugCmvGcmZekBgkErAgQUPJtyi5cuZAyyVs5mz3E5LO3HixCIAEJbKfghAcAqhAAAAzSTYnJKNaicZEzuh4AoJBUVICKpVE4BvWf8ffPjmmIMUe0EDNcsazCE+J+ycBAE67dWbka8gwtGlTxecpQOAxCwYM15VDtCqVVEygP+ewedloT2NQqAQWoQICRIOHACtQIFq/J24TmRtbsEcsnLDYo5qAjDwt+AgWmDBbhZE4Kr8OgFFIwios/BCDJ14wQHsZmJjAO3A8+6mx8C76TLKLhvKks3QKOBFCDyLEQICyFGtotWw2q8TAwtp4JGycgMkm0KSK6Qag/BpYLZullwAkqoqOsaU5h64IEMsswQsns9eYoEFEE38aSibfprsO8rI3CwpVQTZwLMCopoqABRQSK2q1BAwh6sAzCmkttwSEqCaBQJIwEd8cKv/TIAmIQnAxokyuqjKArS09FKRpKAAgwNgqomN7hizBKcyg+mOvMnMLKfFFwkA4AARLJkCEEuS21O51ALg6lYEEkggg0dsw21QBLQyx5xqDlIjN4gaKPRG58g5xgCMDCBgCEyzvXRTl0BcjDE2Rp3ssQwEsOzEyTADZNUCIABABJlEaOYAA1711S4EZKCBPwQWmO1Yc+awLUlnaTC434IOQugRBXVdrrnmpgWgDG0rxlIHEzB49QAJTOjgugFO1CmDncQET4Ch1ITAxXZhjLEAAhTw1UAcv/IPOWS7eUQNns1iyOCtgOuDkGELObYhKB/OSAG9+trAYqgtFCLjVzHw/yGVL1zwBIOXfgrGVJMzSBkfQERwgLMN3ETDs6hC82Pmu/Cqs05kP/CvmmDxEbTQ3mj4TWHcjOuzq6QpopIcpvmyMmrGo2OCaqu/4IeSL1LoAIMBcLIkimCiELenVYa6TIAKzqagVfcisyyDbLLZkzWu6pThWAZ/1BufRx6ZLTm/GyAaId0ILCSAO6NsjqIHgGh8+cAk6cDjEySnhBIjtDYhZPAiiwJVnMwd3Q8H2oU1DfjmBe2At/17EHardAW4gbJyF2CObpCjql/4iV4WnwwyIJSr1FAJL83hC8WYd0CUrEAFXwgEPxxICRgwoAeY4x55yGOuosxPBO2iQPjaJf8jzwAgARUYnH5a8xo93e1HEKFf/RKQwr/przItXBAN7LQcHFZFI9BBYA9JYgM5NIEfpzhF1hjAAw9gjjKoMtkc3mKWBJxtA2iY4lPi5CoR9K8ar9MVV7ayK3/RDyLdaBKhFnCsbtyGEPt7BBm3aA4UHKwreJmIDPiiCh/mMSRyCMQpjGAEGLyCASmYAKcylxOTnWoKUxAAIzXDHld1iwW02gnrtogAq9jwiwhrEhk76UmG6KlJhNjCsh7BqAYtKJT+4k0O+XIlPepRDl+AgRJgAINL5FIDlxtAOTBjou9YEBDmmkP/zBajSKThS/KiDwAM4Ac/ZOMDsUtLWn6jM0b/0Y9Q3djiAlijM1IC75TD8ddsCEWo4anmAQ+oVCx9KIcIHuEILrgEDFIBBRV0oFOhCyZ5MPNL0eHkmHB60QdjRAARdO6SCNiK387YpDHO4QNbTMDRuLKAgpCSaLkxi3EKcUZzZGMBc4FSRfiSC0W4E4E2SAUDBpkCDZDgEvdkwNYyF9B0oUhF6jomGi6AhqfAyVUSAE8GduOgtGzlN2sZzr8+MDz/+CujhNBfbrphN4dUlDcyyEoAT+oIlTJvBiRggAZSkIIQxJQEULinTUelroAOZVaYwcdQrnA2GrmKY720ScqmkEqGLGCTGGXqWhYEiYp+1D/dGBpV19izORQp/4UP6ipXJ9KXKoR1eanQwCY0kFYNMIAEJEhFKkZwAiXqNKBA+ec/7+qZZvTPElcQQTMPUI5FxkWVoaQd/taSSv/sKapsIeUWfneQZTDMjXvqDUOzIi0CpFSzjCvBCMqqARWoYARrhQIUWnAC7KiIbDtFUWvraranECAqDvBgq64QOolGtV+qvGjtyOis+S6IuFvYQh/4S1UtmDIh1ShW37bSCQMYwIDTtZgVmHEJBggyuy69BBQu0YIVKLGudf0nh1uLhdygd21WXC9oJICZKRCIdsj6l51SaEZnrfI3SNJCYx2rP54ti5tQYuhWyJFgPDLYYnKow2hJsAmYaiC0I/+AgiRUcL3QCUhF5DXvQM8ngStcQTJCwYyC8tugPdU3zKG8aDXWoobjEuI2CAnw/pyFGqAtJ8FoELLFwCEEErziFUrm8wiY7OTr+XLDHwZxof95zAIYoBkDkA+9QPOu0A1ot2Du8WR7/EWM6sw2hKjx73IMPGZVw4ad2FdFElyhOmvLBtu9bgjS+gQ/m3aXB7iMbTgqILpydCgSKAAFTldQg3qGqJhZiHDpi+lQAo0rv61NH9jh2GUsK8c9U1KyGUqRU6c6WzYQgp+f0FnsZhfWI0jFE3xwABZggSxjacutb40FXlNgbXBiL4dAI64Uv3FBrDmYKr/Y76X+iBDsMK7/sqTds8osyKJz5EsMtI2pF5QhD3lowbefkF1xt0ASkjh3OTiKm0S5W9fwxitoFn2FEN3EEiDGHRmDW+n8ejGwAQfOFthB8KH1oc2mVNAZ6Yuahj/8Uoe4wQ0o/m0VKPkEGvhzC/TpyzW3+3Yix8JrC9AMrDejXo8GTTY4qqAG4Zc1SK0v/ppkkJvf/L+P5XmDuOkg1WhkD0K3lBVu8AIhJJ3PJ0grA7qrARPc9jb/xU2SbK1rCZwtTgZlPAD8MIVgMcqMSKVvsQD2qGqc3b9pV7tx3ewsJoXZQIaDJd2xdPcybIDvSnY1TLV7WgqqkWjRDs6t94eFgRaUvQRQ71BX/7Fhs0ze5wpfZQOyUQE/mOtHzuZ82reghQBrwVleLpaBFHARh5s+Q1ZgAhM20AhPrJ7PSmZyhjO3DKpuYSyJOkigEJ74EEryS4yOjy9Z/tvA5hej/voRkMYiAJ4ZuOZrvgCLMYbooobYi8XRPgyJBx0ghkZwgA7whNZLMiaDAg4IL/T7r3ULkqkjOahohvdaBTYAkyuQAJfwuEKTvKjaLZD6DXzQqPhBswHsPHZYGIUjHhpwCMN5gOxjQAspAyC4APbCgAnggApkgAobgcvxuGWwOYILkrYoC54BsSmAvy5ZBRbgOtAYgCnANYa5pBZUJXP4AOIAMYY5M/7iPP5aQ//9eYTXqRODeQ3FQTUgpI4yUIUCIAOpMIEJ6AFXCwEG8DPUOj9SUjuymEJ3wz3FCw1AGAAuTMFayx2XmzRVyjyJaiEBOLMB1CiCCycsYIi5WY0eXMA7nI4q0EM+lA8M8IAa6AG+SwEOaEIsGBooVD92Yzd3uwIToJHQGAr6Aw0MaIkBYDk14KajccEFYRKIWoudqUGCIzjjIgR8KJD8wAvFWYRTpI4bUAUyWEWYaMUJ+MMJSKLzs0VE3LT220XFI4BIsDUsWIWO2b10s8IxArPhUyVPapblg0Lna8PG6gMsSKeJUI4oeQCw2kbpOIQq+EYCQIwBwACJlEjFwAz0O0T/nLtIhNifHHukOKmAqFsFADABkqQ1ltuZ+5o8GPstlvwRNfDHf5xGhFiSPfmKq8DGB8gshZSOG/hGB1i0xIAJ8FC3NRPAm5vC25i2HCsdtomEsViWckDBTlFBvVEuf/mAS9ym+9rHtWA+ziOacNKfBnGNgiTFTniAXEjInSSMnuTDV4mPrpkMW2sLfzSuRJQ6jhKBzYiTd7yNZViFiMwc2wiSMVpGN4qx+zIsiNICmFQ7x2o3NWiAa3uNG0GwXNDJtRyMG4iBb+S6fUqTRCwum1OzZQmQW8PCz4iEbGCkqASAdBsLQxuUzHuLZjyz3GGqJmHMAeQvpNSxGqIBvLi2/7Mkg8yMDinQQ3szsTJBkcFEx09UGF08TbyCClcxgEhopvMLkkXxJPqZA9wEjshsEkZpAN1sPt6UOt3Zovy4IVNop+IkjCqIAa4DlS85EVtjN9GENtqTNnxArxl5kVyIJNDwjskwl9zZGeWqTdwkjiZZht3Uz9xIz67AjzqpCOJ8T8I4BG80OcaACRaItMuwBPpIg7GwS7+cthBzgKCKkRiAgBiIipbgGAlIg2Fyok3cGdwko4DrJPjZPPOkqiBpo/9RjdTQF4pwTwwVDEUgA9BYAphYgjQYgDSIjKikACZAg2aoxdkziNt4N/+MEQq4gDCNEwcgSb3KBrmAqNvUGf+ImI0cXYvBq0G7xJ0Ya4jlMIXiOcsfTNLA2MxcsM4KWIJAFY2XOICnkYICOEeD28jcWAaSe4qgEtOXWbw4cby5yLzCahYy2kR+7NHGdMwpZBgyUw06RJ495VPAGMIYUK8C+Ck9vICj8AgmAAAajTqQG7kpaAYVnZEZiQErchmE8pWPwtRGui/vPEzbGZoa/J34cZbYMMjKrIi5Q9VLKQMJsIREKbhbBZTKiIRdZY8wDdMLGFdfixEHOIAK8BXZoI1FGhQM2tQze0k5bQsuTQhnUQ6roCOTegBtpFZLEYRilL1nEzmzOIACGDExHVeFTdgL8AxY8YM9YZDicCKWZBT/9vtUnMMdgwiOY0QLs8QRA0BIf9USRD3HNlQzDzQLATCAXmOPhR1XnxrXl3mXdA2unElMsGs2HzXPwnPG21AIazQcbDMAOhtZLIkHAhBMNVqz9aurR8CCA9jVcH3ZhU2vZqjZF9tKw4LBODXPmyOaNISfCEUOwzGpkC1ao8WQMniACjCXqGvaQsOHXJVahfU1qm1YB4iEJdAVw3Q7N1qqR/CvNZxX4dCv5ROABZCB1/CqB5CutL2QPXiAAGidtbAMluMwAYnapyBXhq1bmf0MchgIFLjEbtjETkKQDYRGtYtMZ7mvhBCs/MCsx70QMGDSBzCpilAAsXk3stHclfGp/0WAWaqNEQA4htX4omogjrcYI/hRN4yExv4qXAT4qCYRLMsynFyY3QtpyG/sXgIggwcohN3FNajFKzRYBDSIAZ9Cg5itWxq5iNXQE9roMm5qkkZVVtXNyEFZLGf1qqDT3umQgiTgzBiIgVzIhQKWXC4rtMsAgJZlX/QN3kWYYM59CgeglomQKnPJAD8Y1rc4iOeFXqKhyWJRpSjhi2kF4Oi4gSTYAxf+xhhIAjIwhUKotVybAgDYVQj+qQlOgkXYA3lj33VINIwIAIyajUKgDwOogAxIo4PA2GWNzGrgKqWiATu6io1QYekggiToYs4kgz2QYUgQm9ZyVCxw4M29gP8JXoQubmGF9akhLl6ZmY0FiYSRDLywUCMbzN8bbCOBiCPnCqAHSGEtDgx5qIJz6OLuHeBjaNuyuNygQOPfXWM2Rt/1Zd/0MgBycAiuUAAAIIDnOYBafeJn88qYHE2E6AZzUFygYdx+LeTAuANEHuBvDGMySKZaqyv0sARJBt7zXWP2/amYpQAC0GT8UAD1wgEcwByxsDH8hclpNK7+0p2usGL/9UFYFow7UAQgaOEY2AMgWIQ/nZcKaIZIqACaNVg0EARVGARHcAQgiGcgGIR5nmdiIAZBEIQLKIC+WCfeQwpiyIIieJWrTS4iSQCm8pFqqIBCeAQimQOH9oOQvV0df86FvsiFV85mjd5oju5oj/5okA5pkR5pkq6YgAAAIfkECQgATAAsOAARAHYAsQAACP8AmQgcSLCgwYMIEzK5p7Chw4cQI0qcWBAYMDp0Ll7MOKujR4ogQ4oceY9OR4uykMwCJitUjhx8+LzMMebIyJs4cwosadGky5kw+eyoQXSHUT48uuhcytThvXvAVs5yKTMU1aE1emg9uoOHi6ZgwwoMBMzqzJg5fgolupWtVh5KjIidi/OekatGh8Zc63ZCkCATtPbgwCMFDLqIQZZ0OfRvjb+QuUwIPJkL4MmDCX9NzBliSVkwGwfhQpqLh9OTK5u2HJhDCK+dYyv8/HKo6dO4T5OecNvD6AkcgvMIwUC2cYI8GT/OzRw1aQ+SJwcPQb34ceMckcB83NtEBw/GMOD/jp66fOsQqa7LZqmWO+7vHjAY022efOrBI9R3Nqn9JR/37+UW3WAnBMfBCT74cJ8K+nHGEhI/NWZeeVqdEIIKI4yAyoaoPBECB6kx2CBdJs3Skn9GDTZcChcy8IQGGmj4xRcR1PGFjV+gEkJqIZQw4lxQTXVWYV0w4MIlqVig5JI04uFkBHhEIOUXI5ww2QlP/DgXHdrFROSRG1owI40R0HjKk1CC8OQXFnw4wQk+ahmWEaHtQJwLeCIp5oxTShmlk5OAMImUZTKA4AktyDnnWjswcMmjj6KyJ5ljQolHoCBkquYXHgaXqKJNjSFUD8RFmgoql8AwaZ9OOqmpphGk/6JBgZ+CulQoo4YwAqSXoAqDqmPi6OergoIQ6xMFZmnrUjmkGCOkeIKpqphlEurqq1FaoMIJWC67FA9GcaCBCtFGmyqw1RIawSSXahrlF4ZysIK3Oh0RbgoqXFJunpfsqa6leKgJZZkWGNotvTgxkGIIr0TbxREQM+AoKpWOOWMdZdI4Y5UnCIEwThpwMNizrzCQgoXUhZCCo8AqeSoJGY4gSZIWVKnsxyPpSKqjl2yScgopaMDiyv26jMoI48osycypSLKCHTjjlAIHRMMosQY8j8CA0AxQjEcdFlxSMiqp2FGC2ZLcHLVI1KXwCtKvPCzx1iqoAKMGl3wRZR0kaP9wISqSmF3H0mvf1LbEJLjQBYsWqvBE3TDmPXAqSMssRB114FF24SO9iPWurxxx9xNHj/CExC7AoDceJaSSCuZ1gIB5CRZwLlIqqDvaxZGPnpqhxLuL+STmAburpO0UGQuDEl3wCinZJMAc/Ssk+EuompkGSijyEn1h0SwwOB8pKtGT8Mr5r6ju55/FqulkHdxDdIr3JsriAglin39k9BmWfL76rVrXqwaGh/g9JEpRWYkLqKev+52vfAwgAQNeQTGAFS9Te4udAR8SAYtYBAboC2H5zPcKoonJAhd019c0uMGGgCCBszDC+XbXBfRBMAU8OAIDYCCpYQkMYzZq4UP/vBcV5nWhC0pg3gKnV0Id5o1PrUJTmoToEBB8wQhGAGEIG0ZC6r0iVasL4MCkhDkqPgRs+qrhFxuor/M9CoCCEuOTQMAKMw7xVwtsmL6YiD6KNUlg74pSBGxgx4mkooF4Ot/WGLC7aZEpXVICQSEnUgdUtfF8QFsZyybFpiYFbJISmcEhFYenIq1sd/2qGJ+kREhQQsQGdpjeEY/IQGB5Ul11mEErXekQG5RgBCSkIfVQobpVtqqTuuTlQ2wgSrHVME/4S+UqazSjEtQhEco8Y+suMUF+pcp6ZPxCCVpXgkFmUyGJENPRjKTHXlFrSmNS0owyBb9zHsQGM3uC5yZI/z0S2HJGS7JmJG2QiCyozZ5M8CWbXNerV2Atgr/ak8tuVCY82MAGRShCFhA6kCEkwgasYIUNDnEIGwjhdBHsVZLO9sgajXQPlSiAGzjKhCG8wKaKeEFOh5CFthFtQ6kQKKHqcNELkIEADsDBIBA6BB2oYgOC2AAFyqCKLKzgBEGb2KQwJiULjDQGZMgFAAjQgXXYk6dZUMUgNrCBp1qVOCQgm8XGmEtmglWsYyUABDaQhTLwEq2qCKwqdDAIg0aQBEmaq59KkAhWDOGoBDDAAx4AgLGW1Q0t8FgheeqGwApiEIMYgh0w5CiJqutrXwApEMJaWckawAAHAAAGOoCDBP+t4AmabSFPVRFVQQz2BTY4XfNWBUXGilQVZKjsA1wLWwDEFgMmMEFti7ACIdzUgIrIghug2lYdDGEGL4LoO5tUBzvY4A562ENyAbDc1xrgGEs4xgEOsITYeqcNjdBoFoQwBORlF6q8VWsZhHChTaSPkzMSwgxYcYcbkGG9k33AMSa8hApLoL4SOAB0O8Dh6WZho4XjKVR9+1nRPg5rPJxUzVqQiENwQhGsjbCEKSyBAQygxjaWQGWh650OF2EDa6NqbwVRYjvoE5hhUhKqGGAHKfzgB0nIRS5k/F76LsHGAxDBFbB84xvHtrKydUAb+IowKgjBDWhgq28HcdMjx5X/bBYgHwNGUIdDPDkJ63XtMd4biQoPIA1YBjSXsZzh+QLABGMG8rJm0ALeshWqoTWyCib4ZhKqoMl64MQPiBDWKS93wpGowBK0DOgrpIEFgE4DoFnA6gEsIRKR+LJ0i6AKOdmACjOwQxbQkGY1D6IMQ3jcYbk5tyckQg8/0HR6xTrZ9x6jzyKogAgGcIVqozoYWr7CG64Q7UgoIAEKqMCXZ4sDCoxICkMQgh3ssAIKbCDNRP71SX93NYld2gbJ5gQn9LAIZrc31qMmdRquEIyCB8MPV0D1tqNdgQQkoAKRePaXHVDr6yRiBkJowRPsYIEVvPvjJU5b9LAmNBi1gAqZ/9a3pvfAbPf2uQLSrjbBuS2CbFO72gyH9YSfDevYFuA6uZbEtm77hBWogtcUoAAafq1x0m4NRk+YAcpV/gMwxECsr/00rENdARvTXNrZxjnMYQ0KUOx8zwYY6yKMM4O0rWAyPsBtZnVAZDSotbBwJSGMJDEDJ+u76nhmb3vFcIxwSzvmYK9AMAiO7a+PPeIKAIV70w4B2TB6BW/3zgSe0IK+gjanL0D3CkKAtfMhLepSSPkPbrCI5Db7tRNWQLj9UPMLN9wPfgiGE5yA6pqPXQETLjvaJ0uApSYmEXZowQoUZAIMAIC2J1hBFgRxgaSr1Q2jzzsDLk0Fv+97A2GNcP/WQb2ExIugwjBPgB+c8IY3LD7awN858CUbYQIIAjG3PunbO2CCymq4AyuABzPwAmhAARfwa9hHHQZmOnbQfaqnCJXQWss1Y3sWCdmGbQwHbrK3fk6AbUsQf7GnAFlXf2gwF6wgBRh3VfzXAQBQaAfQASdQB5MwA2XwAmWQU0KwAnajAa/AeS9ABWCgekCAV5K1ZzsXajWXhLYHfLDmB8LQgfA3Ye9VAXsmYw9AAOYWFreWfMvHf9F1ABJwYQdgAj7wBSL1AjdABEQABlSQNiUXdTeQeimnB1f3ekf4bAogAhd2fqIGcwrwchmQATBnhBM2dlXYbFiohbmmfBPQAc7/139h6GWz9QWBMAM4pQhgIAU3MAQa9wSSQAU3EIfI9gOK0HLOJn8wl4qiVn4VQHuiFgwCkAHZoABiQHjPVgGyN2Fi0GwAUIJNwUxuNwHNJ1sYkGM3pmMdQIk3pQiKQASpBwZEMAQDNgTU+AJoKAVEwHLMZQA6J3uGl4oWKHOpmA1OIAx+EAmnuAQP94dnZwAEsHZLwQrIJ3TMhwEZ1n9cFobPR4lUAIppmIlgcFPVSI3SOAiCAAEEAAB8xo2Q541++IHlJwK5J5FO6ARXEF/HYHatWGEf6I179o5LkX8e4gP8B4Y6Zo/5GIYdUAIgAIRgAAbNeAOKUAY0CWwzqQMb/1AACbkEp1h4kBcAXAdxChAACoB7BlcBGYAFTuAHtDiUChALfrCOsudwewYAF6ATFycEVkWSGACGA3AABHAAg4ZjGPAEUuCSYOAISfBuBggB7laA64ADBQABDnAAr+Vt4faH3kiUexkA6qd7uCcMWCAMCZCRfhkLUBkLGthwwDdZMZATZqZ8VuKIYmljlTWWOAYARdCPL5mWMRADBRCXEAAB1QdgoFUACslnoYaXDomLx+CXCWBwwZCUwpABkQcJYZAA2bCbsdBwfhkAE0ZZMfACN4FxW8lh/eeVOoZjWCZzX4kDP9iZVOUIZaADhAVa12mQFBBZRghrsgdx3vmHoP/wbbmXAR0YDIIJCMGAi4oZC9mgmJCQAAHwAbEQnJRVCcYXEk21fDjgiBjQlTgWW1j2BmzAAgPAAtW2BCagA1Twg1IAWjRpnYNwdBQAAQXgAGH5ahEHa69WfrJXduP5be6ZDcIQBQUnDIAgDBcZlQkwB3OAe9+2mwkQcccwWWTgiyFxnMPYfy14YwBgY2wwAGwwpAXKAot3ABvggA+adBZaAE7qpA4wlwh5AN45nh7KmpFHnoFoniZqCYMpDNH2cNmQAX7gnuoXlWb3XsRXcSFRBDjQfIbWlSaZYTbGagTKagjKbUhKBST1oE9KmmmmVtRJVQVgl0YYot+Zi+N5poH/2IHlOJjBoI5RmQEHlw1XIIuuaZ9XCI8gkQVtQJliOV9cVpl4WqRvYKIskGFJegh6QAWg9Ws1GauDgAao6Wwg6pMK8IGxlwCxcHDlWJtOIACDmX6xkAHCYHCyGJWRV3YyxqYUUQT8V1k1FolCWqcHaqesZnAIKgFJ2n1g8GvX+VRoYKGVgKH0FXEGYIsh6oegIAagwKu5JwxPiJ5YgAUZ4HDuuaUCUJt+kA24WHa7KGEEoGgg4Qb815XHWJkHWqRs4H55qq1bhgPWqVMXcAEXSgAYi1RzeQF02V7vNZ6IKnygEAB+2a/GKgxeOpgsGgtzYKxzMAVzkA0wCqKmMFnH/0AAzjoRbuAAzjdf0wqkLDCkQfsGQcsC7iebV1AAa3VTMVAJMXUBafaqNJmTkycGNFp2kXcM7hqivEqiKYoFU3CvQ5kNLlqvLTsHiBkAnQCitQgKxScSblAJPUutWDa0RGq0Rnu0JuoHAGChUEUBn6UDsVoGE0qrCrlnYmAKppCRoNAJa7u2I1uyfnCy9SoMs/iUj1Cvg0m2u+kHRAmw7nqzOEoRcet8zJljIhAMRiu0UWCkRrp7BRcFEuAAbgkB8QZaUmWxGBpZwNeutai4pgCyiAqb7jkH8lqvSxl5H4AF+IAPWCAAAuCi2eBw/2p2QElxIqEKcquwzCkBV9C6b/9gCUSre04QBe3XfpFKu7RKrruLsVHqpJXwXq9Vi1s7siD6nepHtvvKvPjwoiPbAM5buY8QsyyaACILlAXgVyGhA2+qsM1JcEabBgTagWSae7u3eyLgAFCbsQRQAFC7ZqBFfalJv5EXvJBLsuGmfpTLv8IQC0P5CH2wDJobve6Zfgqwtt8WCQk8Em/ao4RWtOGbt0ZKqeTrBJZgCRm8wQWABosAq9VZuHTpcrUoe1vbCU55mCS6r4JZr2SqAJCAD8vgvM0rAO/5cCQbogEQC5GQiCLRBsk5aEFLpELLAlEAu3b8BkksCASwdCGMBharkwoZbhFHv2XXCabguO/qcGX/OpuAUK/NOwVOUAFpLABhzLxhy5u/uay8egxWORKNAKeDJqQNywZRUMfsV8q7ZwlRYAlOIAIevAEdfLEc7AAY6gAAQKPuSr9rG7yJrMjGKgCA0Lz4UKINlw2PAMbOmwH0qZgON5SgIANhAAmSx8Yg8ckIy2VX0LAEOqSWYLSofMSsbJGVALWVhbFPu3SOtp1ZR7+Ju8uOS724lwFzsK/NC6kNFwvLUMmyWMa8SpQBAAqx8AEGLHk/FxLW7JVcRrRyfKekzH7he6qufAEbMFZ2h52Cu1YWape1+ACmkLjAa8iRC5tk68jOS5jyGQuPHIuy2LXZcMbzOYsG8IdvCxI6/0CZp4unUaDNwWC+Q2rK4ovHHiwIAFAJvsVbBWihGcqTBqC4HA28wXvInUCyaTzPAiDMWDC9kZcAxxyLZYqYHyDQn8uyC5DVFWAAWUgRWdDDdZunddy6BRfH7fer4isBrzxWspxXGQsAIkCLk+XUigsKhyzVYUDVzBvG/evCady8tYmY2fDVsQAJ/xwALgqcsKnDIUEFRdB8pyvB7We+BufQ4bt77kfXbnnLYxWlbvluHFuX6erXT624jhvVg72/hk3GUUmymWuOZNsADaCYKBwLZBx5nQCVS0DNEwGt15wGlnBqEmy0P32+bBDOUBilFKCQS/xZv2aQFksAkeCuTv/dth8NCvGpv8IgzPgwBSya2Psqz9E7vfJJlC37ryTrBxUAAGets21gunW6zezX3+2nzdKNbdQdW4Bbd9s9XxCntU4N2Ib811HtnlMgmMugBs7bgVKN0uZNwyj8lLH4r52wAP56AA6wwDHgw6omwT9tvrtXym9gxBeMx7RLAfPVvgnpXPMlAt393eMZ1Ygc1fpb1cislCubDfmcz/gwwPJZdi06BxBXyAtA3DM9ETrQCCgpyv8d16Ld30bspazMArR7AQdwBWDZwaNpoRAQga294P/8uOMZAGMq4cL8hJ4bAGHwAWG8DH3Qvx/QCTJgxR8gAOvZu52AAB9QATp23xH/oQP57cNswNmWAAjdfL52XHDsNwAx7lwOALivOq5RTIt+XXa/icO8arxYYNgqe+Fz0Lx9QOHv6bhuHty0COphkA0iQOAFu+g4ttCPfr51bJ4X7ARBGuPzVQAjNq4YCgB56dFqLtyd8JosW95GfuokGwYN0AfWrgYuGgYkC9wmvazjWcORAAAFoAik64g9qnCcHb6PDgjlawnHmspOYOluCYYcbOPzVX7K3teBDaJlBwksC+T1nAGxINXziecUHr30CQktG5UV4LsA/QHT+5H5GRGNYO7M+QYSzH7gfMRb3uK6ZwlXIOzBEFvuG1NOyt3K7tSP+9d0HtCPMOEHj7bv/13nRl7Pc/ABMQuVD1fIoADi2dAJxDe6EJEF0Vq3Cv3Q6i6+dVxwJ+vKbhnTfYsGUcWkqOnprh3Ysd0JdZ7qMH/k7g3ZC1Dtwgy9j/AIve3b/+yukPDksdCuk1UJIPGmxWhjqmaqbwDp4Lz0ThCIYDqXFBDTWPhuFmrL9FUByg7YH622ro6YqW7VU4D2CfABL48PZK8GfTAHC4DI3h4AkIAA0kx4xHd/E/HJPjwA7fdn4QsIeP/Tu+frGVza9Z2xVhaGV4CLsN24H531KEDozWvqMSvYxmzY+KAGavAIjw25IxvVAfDk3i5ZvUgRblz6EqzNd7/xvHf9T5jBBVDdtP9H8uZcCQTwoR/t4AEgA30+7R9g3s5LxvIZBgvA9WBM4YcNCbGNApDt/gNvxTJgdnsGEAWYDCRY0CDBIiYwHBgwgM2ANBEtvbFkCVBFJxktCZsiTISDAhcAiABQgMLJCxAKEIgUSYwpmJ1MyZwpQwaKTp3CfMDXEx+WKVMWBOgEaQHPPmrU9MEn4EMsBQEUdJIBCVKsBEQ7geIKqsISAoIOjjWIwwSAhhAbVmS7MYOTKBqFeSxgEoAEAhcoqHRAAMABERVA5cwJM6aMTgEUh2ng86ewD2EUQ0LwYWmfpI/mfEhAOLHVrURlcEX8FYAqsqmZmL3bkMXrNG0tbnQiDND/XI8OIFAAcOUAAQIHDkiQICLYlKw0lRNG0BxBAwE9seCbYikD1jBhFjTATGhZ082SEzeHRHQyVRoIApimoJpswtYD3kR5E6ztRba1a1u6ovvCgbcOAAAA4IADoIIKpKJppplQQOCoBD5ozCcsOMrmqQefw6yP77CYY7NYsgsAksRKHCzD8iIpyb2xsugAA7QgoogtQGq0SBhLnAiqo48guCAS3wqAQKW6KiFgCQUGCyAmw0xBYacPPnhEDZ+CmiObBMJI4MEGCMGsJ2EyADEWxbYCpcwAZCjzGDYBcIDFsRo5qyE2ZpwNR9yEqW0uS0QQ8r8rABiyLuAAC0axwWZa/7ATFAJYIJs5eqISnw83+2BELjekEgsBPowFK6lAiWqqxBADRYxjIjlAIDgNgk8C+W67CD/bsABKPxz9vOC/DMD6CzARjPMjOZk8IwyFBeZ45JGmHnEqygWw+2A7zJTqSbOnwvhUsQQVK7MTMbZSAID2Wi1IhxfvSuMNGy26CAv8nGDrDQn+jCQD34QrMLgKkosppwC4KmonZSvdbIEFstNuOy368HJSTj+AtNILyQyA2DNBOSYsc8sywYQDYrMVR3cBsbVC/Oi1148DHKikLkIPGDbRmL7thAYpNYM0gwUSSCBhrGKRELMtJgXP2WWY/QmfBsj0uTOujgGADNQ6Jv+okSIckCA2S+C1rUZhgNoIRyfeWHVIwNx0oK/gJHAiGD8CNgwFunNysIFlO53iSoQR0NbRoR1O6tplHbOVUkt93uoBMR6IQRGrCSpDFQJiNRleoGq8jWTbLDkbgiWCES7YK66IgoUc5/DXybpNoSGMKad4pAGEp10AAcoepHaLLTbEZ3bpBOjU4AuzOvUB5GOInCBFYkCrIrDDNvknLKCv6I0lhCxga+KEIxA444JR3LO67+6pAdsR1k6yByUkhPfeCfm9AaMFEFPiKC3mqvFcql6+CALAil2bs5XJwkay27ylXkMCEnBcRqjgXGFYAUAAo+yGk/JIiWnoyw60nLP/nWW8z0vVUgPwpDOmWEAiASQyzANycYHlDaQN6tKcRTJ3uAKOzAnZU8kSBrAvv4zOCVfKCt2MiAJIhOFBcyhhA0A0h77pjju8I0QVNfWIZSwFW9vyVmFM8QAyLCKGRVgIRKB3uRxST1YV4WEBfDgcCVyBBWm4gghy5IQJlo9uD8rOdoDXACcC8igSekQf4Me7LzENH2pYBt9wV54uguKLlYihD0DWkHWxazqbBIR0KlQhHJ3NjcHq3oDAFwwsZQkBR6TBdhCGsFjMAQvLoh/tAnkZEXrJJ0qjVFYeebEKkEhjBmBV5NqAgbXMpkZYWMYyTvbMGi6wAFdYgikL1JcD/wRDfKo8ou5qV7soAdJ2gKSfw6joO8c4xTnNkcy3GgfDyLnhRVs74zIN95Ma1ugjdRGBBAb0K+Es4Q1OyMawVIkAGjjolUcR5wcOljCElZN3XkBkUqzVEwFgiZ3quVhnGvcAMUZuBW140QCgBy80UgilNfRTD4M1ABb0UzgSyJEfsKQd5yi0dlnioBI/KNGJWpEpk6rUp5KYMHYGDHlkiGEWVtABtFDEgIfriTMrNBt3tbQA/byCBH5DgJcdSZtY8VlzkPXKMGxmDui7XXNeCUhDeoGiDltKszpFO9sp0afq+Sg8IyeJRmAAmW8IG1XxwZQOobRrQJGAbrYnIFOCZP8l2TQoBde5nXB+iHZtlSL9tiDX3pGQnOHcLETbWhgXKi9yLbAkQ0yqOZ80EzMdOiAgqtNYlchUOLsdXQYyoKXF+K2DDrWU7dhJOy00DLSIVIoayAlRn2aJfeU5HhnKQBYbJMIGNhiLJQXLEE2erKrN7NAUBDAFW02hRwVIw0XeIAIkRWIJVwhTNhS2SrduB2+BVFiILhYLNWjhs3J9WHOvZVyFZeVbknRcaqQghBLUIRCsKMg6OtABhQjwcj+RLTo9FJ2f1OsCDiidV/d1gND5AVp71Q45ndvTnSTgU9kI4UTnmpREaoatQ1FPeQojE5A62A5fIPIpbMAKVsygCG3/+BiM7rK16eBjGRyaMiE2VaEpmEyaS1iCgAiATQmw4A33Q2p+9SuhHceiAgS4Qk8cJleKvg+d8+MgaIyFWtWOhRV1sIAFSkBkPGQ3C43AWhtwsBJkdo28G5IfRwRgq0ev6gKVqAB8Zwor+XQkPNDVL2bRFyVtGeACJkjDlAe8XO8wkmn5k7FVEEMVRiHmi3tITSJSgQpUpCIVJeB1CVqQhSwUwSwwYkh7mdnhPggjGLU5GSAk7QA/BIM+aRBGGgZ0gNrsLX0RjWhDo5WNluFAAoeFcxUvUy2MQvF2PqUBDW5iE5lQkix1QAUJUmEBXVuAyL5eQSOYHB+IdPKwIlyG/29EkIEDTuHZXh3AFd6AD2H4szc5mkJ23ErOT0dGOw6dQlctYcjPhnbKjKTyT+agMIs3xyaQkMEX82wQPlsgAnhIBK8tUIcv1KEEWWCyYGNE7ShXUZf+pGmN0PvsLtPrClOutsOFMYff+rTTtPMbOPEWwvfBeQsjrNaGltGpnq3zkVWRCQHI0ucvRCACM+h1CW7Oa0m0dgCYTsN0ZFvFZhLd2E05mwOM3RvZfsc2T8+rfgW5MAlZ5n2n1vqGkpJFKgmSs86hAYMafJAZSAIVMEDFCCRRghnUge36LkEqsoCDGK1FGFKuspeWISCaFhYLkiaAJfBhCQxcYbbf6VqYpv/VxygFXzsBiGUhF894+FmUkd/B1isp326avLwgqGAAA1IQAgagQt+it8O99Z0KH6DFRjWSMtF0KZxYSadlIx5A9XI/WzXAizqWqvpOo+SzbGCxijbWOiKzKKnZQavcQQDEQAGYuDyDkIQRuD4OSAEGuATSKwE7sDk/ywIT2BoDEjiHGaHXYwjb+wkBeLYD6CoCyIApmzJ40TT08aajwAoDCCIgYaYN7L84G5zZmR2q0xIfM4WW+yKmGgtJUIEUOIEQ0AANuIRL2LUZWEJ9+wILkIQZGgDZmw4vEbplmLs3iDJbWRUKqITIGkEBaKZnOhhvyp+WubALUwhLwLqJ2rr/rVO+F3O+ESGfL8qFkMK8JwiBFDBCB2SAe1vCP2tCO1iBC+wa6ZiyDfSOtXAMhTOJvniglfCL+Xo0sFMfNPuADACADpgATpwADzAGZBIZGewO78giHFSf9DCWLwIj1RiCFlABDdhDB9S+L+C1OtA5J3yCDggZgWs9oZIPw5q9kFgJmFGJl3EAALAhpzC8EnqEDMCATexETvSATzQGhRgAk0HE5opDpMKJnJC1ByAA6TsIO3gCDQiBImQAe+uzCMA5J/yCuBM/u0NEoesDitgkjOLCAniZIVEJH4EAB1gChNsMQCqcn7CEDjgBDljIhQwBheREDniRkLGVKdGCF/Mg/4TCCXibJBZ5gTxERyN8QAhUu32DR9TDxqrikKzburmQskWiDn18mboYEr2ggAIIGcJbKyqZlDfAgRDgAR64vhS4vhPogU6cpzQQkwZYBkBaq8gwq/LxQTgRgie4Pj3UgOpzgSa8uVpEhQlAJrtzGFP7LEI4nO9QP5OAGSGhSb2AAADIAPtZK7xxDIREx6E0wnMMAaM0ygnAsIYTk+LqqVVCAXDsmFdExyLUwySsxX0rARXoAAl4uKoaoUNaGkbUx5lcy7aEAAJwAiyYloL8Dg5BSCJMgSNgABWAxXNUyIeEqoYrrhXLSJxwOaspRxVARw4owlfINSL7Ajs4AWSaHv96PCTviDIKOYBK2Au1rAu92BUCCAYxQRil8B1hMAYOCEkGeIInGIERYIBYRMcTsCRYuRDaUaIyw7PlCcIQ4IDSfEDSS4URKKl5bKYwaSYrcgy0tMnMZEsKGDHjcKi5XCSmwAIMOIHq6wINUAHuJIERSE3EXAHUi4QKKDPKI4xZiyEhuE09nMU+g8+vpCktnD2ViARhCKGzVCnMnEm2TIlKkIBgkMtFQsTvwIDrfAXv1ADPq7cReAIV4FEV8AEMMIBggkpvZJALjaEZaIHvPIIkRAUV+MqGQCMskAAKeIFBKMHDOtHjTM5i1MxdAchI8INYAKRzqysJuM7qw0p7SwX/SdBON30CQgSAYxgMumkSI0XA5ZmBj2TACQBFTNoc34AAggCANDgsDjGcRtTPtVzRC7jJi5EQ+8SxK5yAFOiCS3iFV0hCO1DA7WzQ20S9OZ0bJ6EKRTEFeYshJlgBDpgALvjEYoOINPAnAiiADSCINpCATsI7KTucR0jRAoiBXQlWCKgEAyA+Jqoy33mDDsA+JETCVNjUNu3UBg2/Of0xRbHQB6gEIEBVJpATwRIsiBCGuZvVsag9ZrrPE+1VLo0BdgXWYE2JAgAA4vuAE9w/DsEC6zzCZrUDaG0BaX0CIDWAYygWBvEMmCCAbUVVAIqPiLA2CvCfgogBIQ1DXU0n/2Jq1HZlVx/50kp4AAXIBhM0pP3jHXzAgAkIARdwASSUBJZlWVx72TgdWIL9F5oggEHgViZwAAyguwE4gHIZixjIhQegMcFppiq52Bj4VXZ91y8lAFAY02ZyQzfsgwHggh54QBJABUmA1pfNNVTQRTmVpJlAngfYihYSVG51HoArAB0gC0fYgxggA1DAohP0JAEoCeX81Y191xhwWikxvyr0jjTwgAa8BO5sWZbVNUnQtSdAPQMYDCAjgAeQJJp4AFrjVjcgg2vDi+saCyIogySI26FlvcSaC7xVWqZtzpVQgBIVupHdOnzNTe58AsTtvnz7WiAN2y96wcmlmQcoJv9UXYRc+KefNQgwIAJHOIdFIIMHmAMZtaoKKQl4Zc5g7c+UcIBICEOQOySKKtncTFDtFAJ+XdyX5U7glNMDBA4DUIAt2QoDGMfIKYMYMBK0PQgwuAFFOIckWN7mJV3asgTpHZQY2FiUgNcDKNEaoyiKgl0T8IETSNDDTVxduzXzhZFjSF+/OIaowAlQqAQ0wFk4UQTQTYIk2AMyMIVIIS98it6QYNRdsd5GTcaBCzn4KUsT6AAOWAEFbQE23doe5s4RCAGoigQMJoBjUDBwIVcQdg8gWIQY2AO4zQVQiJRj+w4Dwtu9fVc0CNaVqLsqW2AqKtlNPIEe9bzEZdkW4M7/c9zFJQCXFyyUqEgMUDCAD17i1JBfMiADdmVeUMiAbBTD6QAE6U3d1AVICZDB46OiK4TGCdDh7WyB8uXO2zwByBwArjAAUzoAUukEBTCAU7Xjg0CDf6qEjn0ASMgG2zBaqwLgkCDkLRbWmyxRczok2E0DaCRjFWgBXdbOHZ3kiISVCogETB6QYmU5961fUDaIGfIeyTWFWMiAG8EhLHiDWbXeV94VNLhmlejMqFXgrfOC4hyABnbkN+1ODTiBE5gAE4AIwehkABDYnBgMUMjWZB6LeMUL4DCFY6iAK2A26TCZYKhmCliERbhmQcjmLwXIpXuzcnM9LLgCk8XlN30C/+90SCi1BPEBhQEJF3jbCjEwu3ouiBEbEEKZ40hwgttYKZM5mwtAA0EoaDRYBEHYgA0QVpU4gHNdSe94jFgAABzwAR3uUe2ERfD8yvYSBj/oZIG1iXYbDVDIi5AmCAoIDgxYB5sUEIGcA+kBJWerBB9xaVUg6II+aIROCbdEYEJYYNejlFg4gA4A6hUIagdVVR/YxSzEAj+oAAN4XJazCVN5AGSu5w3wCxNYBzRYh4W4AujU6rmoECcoCQhAgw1QhbAm6Jh+6XcFSGyM2q1rptnBCgUggJ9egROIa3RGZx/oU5P6CfEJDb9+tTn2q5B2Awf4mJ+ep+KogAzwAz8wjjtKIwAfWYRBcIRBAILKrmyYzmbOjKOw+bqMKhONIYA2aIS4Nu3TTmdkuoIMEIEEUICXEFvLQ55PHouAAAAh+QQJCABTACw4AA0AeAC1AAAI/wCnCBxIsKDBgwgTDmwSiE4TOoGaNFFIsaLFixgzahRIpyMdI588GkHy6ZMRIxtTqlzJkuDHjkhChSoZKkcOPjhzHHFxqqXPn0AFPoRps+jNHTWS7li6I8WloFCjWgxUMuZNPjnG2OSTtEePGj2QcuDwVKrZs1OMjNGKk88OrFuRgvVaY0ePsTxQod0LNBCSHEiDCE5KuIbgu548TfDawxOHFAz4SlZ5i+pNwUG4YBbMRXPjCRM0BwF9l0PkyagvPjQSym2NzrA7e/CgGTQX2h5AO+YQAlHq3wlvPfy0NfNsD8ZuH6dt21juxWND9AZOneDwra+VI+/g/DgX0BOeT/8YyzuFpOrVA4GsCdiwcmPdl48GDz7x2BMqnqH/TdWqzcDvLXccffUlZuAJ5+032XAy5VDTDpx50MGE23Xw3WKJ+WCfgfY9oeBkdHyChH9ujeZJYxwYSB5vGqjwxAgwjqDCCSlO4IkKH/I1nIhbudUDD9K1OAIUI7TyhApDluBLBExG4Ms1qIRgII45osVQiD3uwAMDDFxyCSqIWGBBCWSW8AwzIDCjpppM+sLACYlRWeVZ6sX1IwMueAmFBU/68kwEaIIg6JpsMhOBBSGkuMKcaPl1E1ghdOHCpF9acM2SgAYq6KaDqukmjYsyapZfrvGggZeoXmLpNU0Cyumrafr/ckmioYoaVSBj+BiCCqmigoqYl7ZKqKaDRgCFBiecIIStt7bXA2RfpgoDDNdciqmhmb4KKCLIntACs1Cd4iMHGowQLaqowGAppk2qCWuaFjyR7LfgAmUED2KF8AQUqE6ap7qsMsmmq68yY8GbJ7RSL1C+8JAUb0he4kIXEueZ7rVO/snMJJwaGm+yCS7ckgU8fMWbuZd0wcARDGgAWZd8Lmnwk3/+KTAiI3Cwwgwi++SmV+TCyEAKIQCZ7AkhpEBCmBGUgAgqI0DdQguSIPJMCSN427NPrKAyFmQjaKCBdC9zmQJkXQBrwQgMhKBBl6hAAaaMJWztkwU0psC22Fzi/3kJv31rgMqSviBCAgNRI6K44i3UbXdLiCCtQRcqqMCly9IhabnKg09isIz6QlE1444/vtI1QSJubtvS6fvEi2+7ELAvkhz54p5kSpKI6Swx07be+7LN5QgtIALFEy3jyWcEV5dp5jPQ6877ShGs3AWMl4xAwt+Lj4A84iQsD+gzgiayKTMl7D59Sh8pQTH2XypuQQtCk9BF+NcmQqya6a+/EVWfUIK/LkECiz2NBAhEIJeo5QtidYxJ/tNIR0xihC5Y0F8usN/9LMil8GULVoSKYEZecpKUMYBiKbMgCbR3wu1ZgHnmAyEzZgACEWKkIycxwsQsyMMd7nBoDAif1f8ENrBLWaCGNrTIKUSiQR72cGKs20QXoLAnIg7MFyVgRRItAgJfnAQGqJKUE3eoMhf86lprSlO7bLBFixxKhyrs4RPztLw0YotNvuBYGy3CigjAwH0WlBgCU+YCAbqAgR801MDQtEeM+OJJqPASxRBowZ1Iik/XQBO2BMYkJDYSI32M5Pbsd7gUHIFlLhDTC51ERECx8ZMZAQEiJLnDI5hyEy381aWuYalswVIjIJCE9ibFwyMEUpePTKbMmPHKX17EBsK038Q0SMd1CUyNTCKfMzFigxlAQZoTC6cZY8YuQyWzmdukiA2eMcsLSmqA1mSXk66RxXRe5GrtvOCkptX/y1Y9slrPQKc9E8LOWWIwT16i1uySWQJL1XOgCkkEFMj4zolFjYH/pCeZoGcDLUIUITNAnhNH2gV+PnJMG4UeCFgRso8SxAZQ6MIpWfa2vp3wEupanCSeRz5WFOMCxXBpQSRxwlOa8mxITUEgEVG1RwosEVYQggMcsAGhDmQGRUVq6842OVWJCVMNZEYi7sAEMgCAABBQhVBrkYgZlGBalzAb2kigLmUKCwSHKIZZz0rVgVohHlKwgRUGe4jCCuFIF1RVsFrVJBscYhF7fQAAAJDWdB4iD0MoAxM0y4QXMCELlTuhGavlVMJhixVSiEFkJTtZB6yjCEJ4wScvqwNV/9iWAmiobRZasbku/OqFARPYEVnxAjKY9QHINYABDnAAAJgABz7Axm7baIU8ZCELtlXFBrKwAd5ySWVeZVUym3YNwSpitck1wBKYO1kMPFe6yxIhK4Rw3eyqQgdZaMH3chnPJyGCGaywgiOMCwDkGvgYkYiEBAYgAfY+tw3SVdj6oord7A5iEC+YQStGsMHwkfNJohOsHvZAYAM/4BgIXoIIJMDiBgMAAx0wQQfaUIQNDIF3NqDvBjZg20HoIB6JeAIlSZCuVfESas+wwh3A4AAyEKDAB0bxEiQggiUsoQJWZi8G3Pvc19rNCjYoQ4W16+Mh1I7D9/OVpSyAisNBAf+qPzjvZKGsXANEwsoSuMIVRCCCCmBZAutlb3tdW4aFRUMKVijDIFRx4R4z4bB9ux8M0kVAEjxhBjb4QZz3CgDlHmO5B6gAlffcZz/jecosPoCLAeCAIgyCWaxIRCJYUYYd23cQisjD91RIQAvCSHeHuMOSSTzZB9g5EikWQTnSoOcr+KECz8Zzi62M7NaiQa1z6iYU0tcKW2v3vi/QtfY2yMGWtSARwRb2HYBwXGMv986jLkezrwDtFdO7yn5WACiQ/WlWt4ECObJBCVrRisZxd8c83sAghpCHDbPQpgy4tBR+oO47lIEABKizAVI85XJYIg1pyHOf+XzvfPvZ1JH/UO5kC7CfbragFRzwwQokgQ2Eb+DaC6cv2+xnUw3oTg8V/0ESntxpT8P7Cmkoh9L1XO9giMAPUD85lv3M72OctarUgWYrVuCDCWGjBTW3NY8XzoQVWC6INpV4uu/wgxsUgACSdfedrSwCFihdBFcIRrP1rnc/J2DqVD8GOfrNcuA8owUqiHmMTbCCFoj95hd+tHS+i0ANPEESUtADxdl+gz082cR2trKKgyHvJeyZBXjPezCg/ncFVEABCUbxpw0wWWxPxgozaAHXJ9ABDDh3BUJAOBpuzuhHr+Bt90OgCjAvhXTHOQbFNnDoIyHqPYu8AiIIhvb1nIG+L0EBCkCw/+xnT3sIoKabW+d97wHQ3OjyGA0UoMAFrl0GIZgdlwgcEmCBLmwwXODzoHdsS+AHegZo+IZ3fOcEpAZ+5FB1KGYAxsZqk5EIkrACHDABJiBj7Ndc3tICL6Boi8ZZQ7Bf3tMCM7B/6iZnUJZex6AAV5Z6V0BlfrB6fJZ9TsBn+TZ4ghd+yoVcZxUDe8EKubcCvOd7JoABzMVcMocNPaZZinADRAAGeaBfLmKCUpB56qYHSdBuD2AKprBxkQB7kfB0eFeDJ+d6M0iAr0cOPQh+KGZiBLAIaAFNYIeB7YWEqdZcHeADkjAE8gcBuHYDegAGQ/ByrVAC8QAGmbd5YBADcP8nfZ7GcVJHhhWAbOCXARmwBn6gAORgCshFDgqwcT2IXAQABGZhBYmAeF1nAkmIhKo2AAw2WT4QCBGQBYvGBHqgeYP4AkIQWy9wAzcABrrIbo/IgghGfS+IfZQIftQnDN1XAZ/2aQ8Aig94DMlFAEAYFVbwDCOwAp6wfgcwAM3FXLAIaO0XCM8gBPEAhYK4i0PwjvDIBEPABEwwCA7Qach1jLIHfq6nYsr4bPm2BBkgDE4QDOE3e+QQADooeAZGBtkYFNAkL0XYYOFIjuWYhx3wDPHwAi+gCETwhIqwWWVQBu+oCJmlChBwjwcAgRvXgvsYhlKnADjoB38HbcIACML/4AcLmZABEAAHKXsPQAAXABWpOCNFiAGwKI7hmJTlKI4m0AJ5oFll4AhAgAYXAAEQEH/Xpl0QgANTdY8ah2Jh6Hqwd2Wv53pPt3p+lgFYAAgZoJCmQA7k0Ak9yYmgKJefRgCv9hPoZ4FF+IpZtpQDUICpBgDAxwSKoAjnUACMCQGMWQBYiVs8pgNlgAZFp1xyaZc+yY9niX0z6GcicJOAcAXhJ5fkAAkJ0HqcmJpsSAC2xxJD6AOryH4NxpRMGYNUJgLNtQ6/CAZgoAiqwFkjOZzCOQho4AB11oKw53oVAIrMCHv1pol9tgZt6QSbaAoKEACp2XoJgIahKFlD2RLW/5UiE+J7vqdqC2abDDYAeJdqBTAEwQgGTAAEUgmCi/aHBaCS0XhsZLmZzwlteucEUbB6bOmWr9eTARALaxALqTmDa7AEKSdZhccSWdB1MTZnvsd+6nkFdscCesYCgAYBvxiMTLAHj/mVX9mYKRmJCXaW5FCJCpAAPulnmhgMUWAJ2teWwhAMzZmgsRAL0NadfrAGlRihD+AAPlEEMeaKzbWBr5h0zMYCbMAGHuqhunkBvSmfMeCYFNBjOuBjwnkBl6mcYZiZa+h6CZABTiCgwaCm1VllCboGGZAANEmnGVCJ0ohc5tcS63CEG5hqtrlsU0qldkel8nYAFLCOvjmVw/+JmPFYBl/6f0WHYvzohi6qnW3qBJZgCQIqANXpd7EwpJi4Bk6QAX4QCZ04ewAwoSsBAUfIXC0mmGxwBQMAclMqpR4aBVKKqFJwA1foCI6gaNkFf/k5VRm3XglmlwwIfp3AidmZAGsQDJYACOXQpm0JCE5QAakZC5koDARpqnZpjdb4AKyqEhdwngcQaK84q0iXdOUgpWnAAtt3BYgKWIcgBY5wAW+HcQQwVZCJlSl5ACnXkrB3l6bZrNoJdZu6pljQsJbgBwlLkE4gDFiQiZu4kAZWrhsRD5IKqwOwXuk5mB76rriqfdEqAgCABvYqBTrQmBewY4MwkvSoaBAwppn/aZqdOJegmAAKOpDCYAkNi600qaACMLFY4Iw06ZOguHHIpbEawbFP9ooNxmJMSbKEWg7dN4O6qbKZFw+LFqwyO5xfugEQ8GR1hpeCh7Om+aw9O5ANu6MyGgtFS7ESuwYLyomgAIFN2xLxUASv2pRJ6aFpwAZKZ3faZ6pDGgwSIKIvIAVe22OqQAGOua9RKwEp54WYe7AKOZedkJA8+wFzMAcNe7RzmgAC4KlYIABzQJCWcKfdyYbi6rQZEQ+NsGWCeZuW4HFKFwXvqn1r6gQgWgCL1pH6yq/GC5lXeY+f1omZa5qby5M9GQtzcLrp0LBOIKMJUL3VG7reOqfZibZs/yi7GeG3tGmbbBCvSmcJLCClhBoFaiqlDhC576ivjNmljBaz9DgIYtqDmOuFg6es25maa3C6o4sFPFoBc1C9Rzu6OZmaSpu2BiC+GEG+SKme8Kp0GLy+7yqg63sAHeAAFDBVTSiSX2pb/9eSXZi5DJiQnbCdCbq6DZsO6SAAm1gBApAJ6QAIMSwAa+DAPYmXg7enLIEGJqCh6jkAUloOgJC7vRsMpfq+A4BWFNCv2oUGVqmvDkB0oRaGytW/y/mszyrA3srANBwAfnDDMly9ApABDLqdDNgJnXAMQrwSG/C3R8yhHteh2ue7USCgV4BWaIBxWTxnZ9WvDvB2AIBsBv/QvweLsODHs2bAvQV8vQkqAGk8wxkwB3/nxpzYk8eApC1RBr3nsWwAi1cAvBpMuMDbx6w8oMEglBtAAAfQrwVwAffrCI1GAUWXuV9oADi7mTyLiWyZxliQral5yan7o91ZAWvgkz4ZC5BgdeG5Ei+AA6yYlKU8mIWbxITboVHwzXb3xy/7ZF2qA5Q5kouGBil5mYssl6bQuZxIlz3JswN8tGmck9optzKMBa3LoNr6o3XJs6DwaRJsEUPQBr6XnudLstv8rtvcx4UrAg4wfxmXVtolufkZtVb2gL4cAHBMl9i7nUMaup6aDji8oxBrutUbBQsKCeaQAB/QzArZCbH/8AEBgGIAAHArAQZ1DADpCXKweL4dWqiEm8FLN9GWGQmFPGfG+2QD28XvTJcfrZ1/Z7erKwzEfL0yGgCWXLRDW9OarACdCwkxXZpyzBJSkAUqGbKw6K7rO6gbzLvl4ATyBsKBvARnBZlWzGiqAH8ZV2df2IkfbQo96WeiCsM4PMMLGguVnA5zsKByerqvO5cB8AGxIJfdSQAsYQXFgNDrWsrLlnS/Ww6GWg7fvLsiUMuqIMsFwGjnbM6qoK+J7MuC3bl0+c6UDW0Dibr7jM/RiwWZULQZcLqmmpp4GwvCcNkJGn4FrRB51QjlOwDnC9d0nbtFjcG8q3eAzH6tbVtW/+mYskxlZdrOXsiMFSDPAVABbosFxMzGHl3ZlnyTDSsAOSkCStsJZT2XqRkJoKwSWdAIRYzNSXfdGFzgSrem8kYAuAUAeN3Uc9ZclahxtP29dAmK+RzTyCwMayDWMgAJDbDP8+3C4DfAmwvHN20AaLASWdAGRRyy7orddG3gfezHgEwA60XLuAV/jukAKwnYi1zh2rmZAWAOMZ0BGd7D2enhOJwJOCwA2mqX3LoGd9kJkPB6kTDHGqHWSJiUbq10pEfaSlfU7ht1DgABlqkABIBzg4DLG1C8AsuJEv7eCErVZvABlgzic9qTLt0AfcDkOFy6er7GfubMlh0LkaDZ/v89yiHLxAPOxAVekNrnBxKdlQxOAAgnf2+HnlamAL0cl3KJoJlJz8JgyYmt4T3ZCQhgBg2gBn2eDg3s0UQ+B1immXbrkzmtEsUwyly+bAa+qXPNu2vqyiKw3TdOdJPFXNQHfu+8yP5Ll+A3z9IbukyuwHPAoD4JCWagBkzeB65uqnRpBjR8li2YpuBqAFiOETrwqgs2uAaevr+rppyqfXwGmRvg0xKQ1wAL3pj5hf0L0pWKmh9g58jMxgmAmglgDnyuBq6uuj1s5+ntk5QaAHOAiaGY5imRBdZsxLXq6B63xDs64988oKlt5j6t4JD73QSgtsz+zti5hvNc53cuw0j/u9XmoOo4PN8NO72M7Z+eK6fQSHuviRHxgAPnyeXWnb6+nrt2J6BLV8uWee9aicVPlp1w3umLDOoeHaNrILrEzKkySpfYLsMC0AAEnLoQ++zLCq2xkLfG1twHIQXk+4pIJ6hFvamcmruaysRXUOaWSa+EfAB8pmKx0Llx2enzLNYICq0xL/M9bA6xYA41b9LEXL086pPNipeVbdN4aQAWvxFxv+7TfaubusScWpBrmrt7T/J4V8gnipyc64WL7MvZ+cOdgALauQZpnNili71EjsaZoPBH68DPiqB1ftnMy/nnbhHYoOiBeuAd7+ulqqnyVsu6jLJmvgg6np+J7M78/x7YDjzVCZDAl8zDdXrwjm/Sfa7wc0CTz0rTO6+0vmwKhJcSquAArijgvq7Edr+mbQoQGYSVu+IAAhoASwxAYFiAAICEIioEMFXRlAFT5DolSBCgE6QAAdYIwJIuHRYsAvwkiJXAXII1GTJl6jMznZOVHQMoWONnpwKg5IQ+OGaAwBSkSZUuVVrEAYYDAwakScOGTTmslrSitOTEiUBLUa4QKIBQhAiIACKdlSBiDccA5C7KNfUxQEuP5uY4KXky5ZpYZsy9/NCAppo+agRkAMwxVizAO4V6FNppp4ELTDUvFbIOAwAJA9gMwFq6HCBLwgQIc7ImWBQnlgY4KHABNP9asgV0O6xQoWMny3SBszQXMlYGQChRCsvgp6VLcw3SDdPWp0+6OXPWzFn5XIEB4J2EaoTU6TuFzemnxEMDVUJoqWlMb+XqBKv9ggUogAYAgQKFCy6IwaElKlCgIuAsqiuABCB5KRaSlGMtA7waNGeBdKzLxKSUhBEmGOcMJMeAykIKAAEZyCnKAfXS2+CzA96TQD6tLMnKkvrs83CssvjbzYGHDDhLhJDEU7CuThAwxwztlMPCwwyye2kwM8yYTpsNORRAgDmeM/AYBchhECTKHgDgqBY1G4SAGAd4Tz5AUKsRNSwsAcRDQJwo6CAArpDggAPYOsuPYIjsxKJDEfz/6KU5BDgpOSzmaK7KBBBAwAzDtBmmJpPS4fKDDx4TwScTHYyrkwcuAgC9NJfS4akYJbiiHByxQM1DW9ORMzVLRCjAPwMkgIgAYmlzwACgwjxSUQYhLGk11hqLJSRILm1gmGE2VGPb1bL7IDsKHYul2lPFKwqNVpcqowAA2kyDvjlTe5LXrny9YAMDIqENgt0cQjZMuugyxUwCkI1FtZNUo9CMWFCUodoFGuhjU04V29LR5Rhbg+HfhKroATLKSFcpJmJISzQ7n0QtzjtPwlEY1K6oDaEDCAAyrQOWCGaiQxOtywAHKPChg4QyiHBLwCCpVgYZUKgyQ22iHqbTTgXY/5DLwBgOSdkHuo5hZJL3ICMGMgxIA1Jb40zZZbUBGeBXmmO8Iphg2prbJ4EtMoCCFTiYwATQyvHwq8diMQcBGmSgwdo+oq4uS5KqDjUAB+Ear2syVAE7qTKA8Lzss+NEieXk/KqxHAlq26Ddh4i12SERdvbZIgeEUOEETybowISo3l0DsMBoSJwGMz7IxHEsqe5LAOB1YvDUgR/4enOkFClDEVUSejdOYUa/s3sJvUodgtUB6KAA2nYjoIJgEsjbTFWeGUEDDU7wuwOoBriiOwY7YfrSK2Viat07SacoZDhzKC0kHusaATRHvSnc4AZMYFdotgeptnEFNV/xFQSyB/8AE7AJUICKXfsoYpEHECALFriEC1zAAPt5ogO7A5wBljAtykEiFg2QGqcilR1PbSlUCTBDRxIAMHJ0zQGOgOAUpPCCPbRrKlopnXLQxivW+God2GjXAeTjlSvMKgpR8InPzFQERKDChV3QQAhyNwE4/u0AvhGMGaymKU6dRAAfKF4DttSohQUmLseIXmaaKAUgkAE0NGJZX2yFEtN5yFcUyMJn0nImYh0gGBnQSXhMAYAiWAAGa2TA7Txxytzhr0Cgks6maJKODaFkDqCiJai0wzGPmOIYKWQVBG9gsqikppF98cvobFUv/azgMyG0mQNuxgIQdQQBKECBAQCwgVP/XMOFlyABCRgQAvtx4JREGwCEMlSTPJ5kDoKpZRGf8xhzqGiXLGriFLIAq3fhCW1+KeaTmLOEZMIoZ396zxWioB2OTLOaAFhBNrdJAm4yoI0aSMEJdHcAJ8DSlXlMyR5ZkoBQVektgRlXEs1kyCYWoQ1tAMAASAdJWGbJLx7SSurWocyosCENV1jCAQDglg9w0iWWIgcAfOBQGMDgEkv1pgZGINETdOAAOMrEttTQKTWkhDGGqxLDzPGBBDgnFokCGRDqaU9sNAIDA9CF6GAaUw7tqlf6qeRnXJcbAMTED745HAICYFRfaBMGFkAFFC4xghF08xLfnEBUIEU1k3AJ/3iGe4wZLvUtTsrFa2edQh6wwbsp7nMmo30U6SapTAyEEEjOJMASxkhGl6DArwdoAyKugQoYpBEVh2UAAyBKAg1woKW16tRysPYYuOQQAR84ybRAAbIH1lMIOMDAWts6zJjOxFaq4YswJllXGZ1Ff04QRhR+pxNzxGIJDriEL5KKCPgiArEq8K03T4CBGalmSygRgBOy0xKGjctSCHBQZNdADgIsgrNT2IAJTACV7SmnU6Td7pMEIIKgodZNf4LIAdhgCckyyFIJiEQHoHCK3cYXvlAYQRdc/E3epUEYfuRSdmw8reLkcGmQWIAZehKJGNyAs8VoBA4eHBW2lsQmM//R0AaZc+GgFaG6IDSWA1rqhChkAKwJCM4BTACFQCj1EqhQMSrMjAoShECqV9Cyj3+n5ZywJABMk0F4EsewNRwjuvVMKw6ciYGHSCBOMbWOderkhMhhQYtc/AygM0marwBGMJZSwBJMMIIwXwIKZIZvCRBhgWvAABUaIJoEslY4ww2VI5BQHHBSVGfLVCASEFhwFhpxAZX6mU0uVXKhhyGMq4APC6mjwAbaJBWrCM5DwngLWCmXABGY4AnX4CYJoKDiT1/DAhYYwQQwUCAiurNhlkmSX/3n6vEE5xgFUE8imGEDVtxiM/HARhE20AgHHFkqulAyTWhyBS/C7E7ENnb/TrUyAECxwVuCZJAfymECDbigCwxALBRasOml6rbb7TqGDJTEEdmioM5k8gidU4SkEbF7MzOQxLYjwAwQsIIVSrFCHrKQVlhZUCvZtU46fLqE7qGG2FKG0awGQKwraOcDa5hcAgSgCwycoLcUH0ELLr7bpXJzBD7AgAFAoTi/hkTkilNgAFCAbo+JxwDomncL4GuBZ5SgBM9gBjMiUIIWYMMHRX5Ku2aEI55fp8OCi5MEHLCOdSzSEhiVzQEEV+MufVVXB/ABA1yI2ItDAeNMHQEHug6KTpz97J4ETkiYBpzxyAVVZGDiZmwghLdr+xrPeMYMSiCJJ2ADB/jrYoze/9Vv6wwDC5mkVXIwjPgZYWEAALCEyzxUYy0LwDDD9gQDLtEFElQ861n3pucPoJE6eyRBSApP2JH4MQWrRxK6JbMFfEH7GbC8BUOTolT2DQiTMLkPljjy2VAiARxAvnLAAp/CApswrj8SAA0ZAE+IOOw7rBYYge27PgYQrgM4htCDNY1AvfAIid9gGqEggz1oERuQhBH4tPbbNvjzBUlYARxIiCvQCl2Qj14LvjT4DAngt5OwKRzwIkCACFhyGf6KEKhJBwZMgakbgSd4AglkqqbyvmPYwPDomfDQiLuYFrkggBhIgjSZgRFAhQh4hk/btmvwhQiwALmTBCk7gCsAH/8qIjTruALQQpvja4OAgwgDjCViOonGwZI0mIAQoB8GWMIlTKzEIgEVqB+oqABQAL9EmUKPmDOOMICxSb8WAYEyZIa4mwHa87QxLMMSaIUXzEFIgiQBcqUByB86LIB1eMEBsAQgtAkOmTCpyQRd6IAQkKjeKkTfUsI2ciPQWIJGVJBUIT+PKIoCWITWS5NEKIEIOAULQIQSmAEQSASWyzb3s4AWKALeEbRSPCeKQbhXhBTvOjyWGhYCuII8nLCZiBovqA4sMAEOkCgNUIElpLjsS8QQEKe1koDyqIsGShX/IYcweYALUASwMUFUeCpUmMZEsMbb2zY09DRRbKm2Qgn//aOOYUgDx5MwRdMPh0gf9GmXDOgLxKCOd4yaTDgATwgBlwwBFYhJp3qCRMQdbyONt/CIgEw3tWO7kWkBisrFhpwBa4y/EpBIuUMEKMAGqCCujMwWt+E3J0mdC0Af3WAIfnEIvlAyd9TITBiACeAAsTyBl4xJFXBJi+KCtSoHCgkAawqSKMyIQzEAS0wX2wkBJBwBKJCEaYw/25PIT0MEFZAq/zPA4DueYXCbx9rB2tgNCLiAx2QIB9hKmtCUrvzKsPSEHuCAEyDLl+zM+1mrO1mJv4JLT7oIn7TL26Eoe+TLZ0iEZ1g/pJS7FiBMU5wYxxG+AVSeA/gVx4TMx7wA/wdIAyVDSXf0gmHQBS6wqFMSS+eMIU8whuoizpT4ALd8CAAAD9lKlOlJyECkKAaAgr6UhGewANmcO27DH+LMv4nxAg3BggF0JAHozaz8FYYAzuFMDuqQmv3sA0AwgTiaAFTaTHHSnerCgPVMB+v8DqPQTmoSDzQBGxtoAbzMxROUuxKou2x7hmtAhCfAH37LBMPMhMXQLgIqrt6EzKtsCMm8AkAQIOTRBi9wz3Q40A7gggAVUAPFrxl5URI9IgOwpmMwu9HrhAhNyF9MAacyM7rzNPdLyhMwgeSTqSs4iAowpuIiwNrISn65z6p00eOxTOTJFuWrLhPwAA/IUdBKg/9XzEMBSK8gPYYlCADhoaYEMIANoJ48OEuydCoGaMi4c8YI8AX5wh9eC0JAOIohGE4J4xBhACgVtU+sFE4XbRyNtExsIVM2NVNjmKHdOYDSocGZWKc7VQsFMAcUoAHZMoO9oZ4ZaIEneMlAvARp/DRf8IUSQAXPW6uSUA4ARIp1WILkqKL/M4j6xErJFAED3BRs0RRsqQk8EtEbPFCowAJsyQQbwT9P+QBziARkUZrhQYBY0JcmsoEZiNU+tT5p7FBUCIEHcym1SQMJQJMXcIBxvBMrMrz6lNQAKQBlnQmNfNZM3c+owQJdsD+XOh73XJnIQqgKqJYBs5SdUDkIkgL/CvVMDaDVNBqBEzCGYBI6AviPpCiCqWpUXzUIq2TRfpWADGlHgcXN/UxJ7SrOibkOYUuJyIPYS1EgBThSV33Vs8zF6wsBbwuNtmIDANgzpGgDlzIJAkqb9apKfg2QqpSAPDzFms2WxplRrq1Ff8uj/cJZULEsxBmwxBmR1IQgc43AEXAj6ZQKS5jBpGWKMuiTdXQSLaWAfvkVqi2AJchD66iOgXVHGUWe0aqqq1KedBCGdVoAS1kciC2PJOolzkoEIcCftZqKgz0Ayk0Kk1EAuCqJoIvaYw3OqoyEvqiJ0cragX1Wq3rd19UjwEAcVU1V2Sq5TgCaBUuKRXUXG5kN/x1gCkcQmwDIw15VDgyLVPvsWwAgoMPtQ4qZGK2tKqxqAOvNPz8SKkio04dRVf+ps4HZ3aQAAjaBDzZwIKa4gTI4BzKABKtR3WJKURb10gBp3piK3oEtNJv4kO3YEuv93w+IGMvyOOFJnIeZpqZBAVPwWc56AdsYod5kCj0gAiJgXxqwmgP0C/lFVqoNEALgC4CtWQ0ZrazqLxAiAAnYpAAO4AVoYQRw3GkqYKYpYAMeGIrdXSZQJGRkCjCgYCLYgwdAAELTQ2EAgC2d1A6GgHT0UX+TRchyAgLoABlqKeBZEhpYkgXgI0hIVRo228SxYfFNikWIgQtYB81QBAoe3v8HkAEM9iGUMGIA+U3T9VdhgKtichSMIcAOmIAeuMkrCAzE+Z8FEAAz2F4DpuE6pYEkoqcwVg8wKANHAIIkiIEHgISr1UMsgOMAMd0OLgADKMlevZhGobHVAAA46uO1SoMMsKzhqZIGmANWEx4UER6wS9VDYeRG3gxFkOQkEBtTMIN+I9MngWMIiIEY4OR+JYDjwOMMYAyQoiUuOYA9ngAPiIooqZICfmHrNQfFUdUuRuBDYeBcVgoduIAxVqROWIM6hiUfguKygEwy7uB+dQAFMJo9Kp4iuixQWYMKAIADTQP/GlvEEblLWQBDHh5ZrhYuHhiUGmelGAJ+MWYyWOP/NbjNTnEC2tjkeJZnfgGACmC6pSsOsBuwl/CDGbHnBiiMAKbdS6kS2l2cxbEUiKWBzXLopVAFZyqAiX6YNSgg0kqHYKANADFmeQaQqnSASPCNtwAJV+tmS1kSJtkjP2qUdRqwFibbVKXdapHh3MVlm54CCjABHNCNB+iIkcDb7gGodw4QNECDC2jrCwAQfjGAiYALBGhqOlucrmKlV+YjVq6SHjPbsqUcWq4zo1hGm76BfOsA2jCAWFCAChCIoFu2/njnRTDnt6aAtjZqdumNiYC1BPlej1MSy8IU6esqsn3hwwFXWSYwpaEzhv5qpFCFKTMBB9ifCvADgVCbDwkG/wLgl7hua+FGg0VAA6OGgGNZgiUACtJrakgQjL5qadS2lK5a7TqV6btWHBnYpYZ26AvAzoe4AgM5GIEDhJ4Qgd+uDQpQheIebrhWUVMVP/CVy25u7Qt54QU4nB6zrMPpq9Z+3LGTgYro7lweBCvDGQMgioPJk2XLgPHRjw1gbzTYAAoo7riOY/QhkQ30mIzQ7myOWDOA4Rcm2yo5nNamZQM+Oa/OZVVQJEsilq45GK+YA9YIhgOIzAkHAvZeBFVQhfeWWocgJCRREJN7mK1+apmGWCqxrO8tD+02OfFY8UYGAiAplgLoGnI4DoFwjUIJWTQ4CB7vcTTwceJO4rlGlFnQbmoDPpGIFR6dHYxAprNUrbMZBl9xFl8wUAUB0Y2qfAADABMFkIjeiAQjFvMkAAJHGARF7/ENWIT2/g8AcYCuIcaumXQFwYhlecS62HREsQiBSaG61IyAAAAh+QQJCABgACw+AAYAdwC8AAAI/wDBCBxIsKDBgwgTCgTXJBAdhk2agFNIsaLFixgzagwETNYsYCBB0hk5i47GkyhTqkQILtAsjx2RIPkoK4fNHGNgGDGysqfPnwTlcPxIZ1aoHHxs8uGzo4bTHTv48LgEtKrVi3JOdZQlC0kOqEm/7ghCNsiEGlB7hEB0ta3bgYG8Ll0KFa3Spk5rTOixo0cPHiEsvB0MFJyRrzWCcPEQxGnjxE799sir9gQPBnUIa07Z0ggSPmQ9iGbMZbHosz0mTFh8tgaHEBpQbZ6NNRDHz4nJljY92oPqCb1V1+BxYgTt4wnBCS0aiqni3r0xeOCiunfpCRw4aCiBvPvAJiOZI/9NDH20MenTPXTo0Ds7hxMqvHdvCezlUaa5y3s4r7+0h+w8ACaYfLPh4dAsSBwVSnNj8WaeMaNd59tvNXjyngaSEDgbKiQtuCBiz+k3mmK/UffbWSc8oaFmIBgxy0sJ3kXWibtNd11rJ+ZYQ3wrDmYDHTHJxVRTPWQXwpFHnuDeCSmoMAIDDGgQwgmeUMhjj24JdRtSUO0QIAMuuHAJKoiUiQgqI4yASgl11BHBmxFYMMIJwoWA5VsMuXSflyEw0MUll7gAgwVffPFmHV9cEwEIIOARAR6ORvDFCByodgIMd7ZVixx07FlDCH8CGuighb55yqmBTMJoo5C+iQiVE5z/wF2mVm3aKR9OncCAqIAOSqipcEK66qqtqsCBJyfMQKtV04A33qcqABqmmBYQaiicj+IxLLF4jKDBexkuW1UTszjXgwrRikoCKoNec02pb267LR6SfMtBC+JWJYcseGk3gqhiXgKDr+++Kay8jOKByCZK4pvvT4EogRd8//IKKLsWXHNqqwdvGycDJ5wQ7sM9yeECVNg5CSgJJAAKRa8ZnxLpowjH+e0JUJDsEzhd1AUfmJd00QWUXbQscKmFXiuvzSesMLLOKU3Sc5F9kuACAylMGbJloMKgqKTuGswqpBZokCLUPdmASAo7cJDCv1hnnYIGWRPHw5+EXoMKyww8/7EuIhZEUILZQqC9EjhfpNDDCRr4SXTRqFgAQ9BQMoBKoogMncLmUP6tgoqGqzRNHUpeFqXQQ0fp5JNdpLDrm19Y4MKfgH8hCZlPPB26RtPgUTqUYg495XtPqNA4lJdc46gFDEypARQlxI6I7rtrNEncfrpAgtCqjyCJJI7vGjgIdXirQZojEGoB9dVjFIELRxzRRZiiooIKFJKUAMWTnRPqaKkzi0AdlNU+jYDnRWM4gvZ4ZaZq8Y1lIyhYpLQ1rDrMqoAYAdJLZGGEyV3CaIAq0weHNrTkfUFm2aIgowRnAwxexCH18chO9ja/gKHig9tD3SWsJTM8qGpYeLDABf9dqBBwaOVFwOjg9qQVKpbNDnWDCpYKV/g/IlpkEiD5CDBgILQnPnF7T+xi3gw1xf9FwIoWyUpRXgQDJ86vi2J64pe6YD8JrkpSX8ADGq+oQSUs0Gqoq+HsGBC/P8HgctpSVaskBYI9WuQURpCFEooWqGnBcVrtelQKtTWzzDjSItcwwiQFGaY3zk9g/kNYoyS1qE9e5BoD0x4pp0W/X01xbHByJUZsYIMvAIyWqBNU4GgGKUcVEw8t1OVFrGAD+wETa5UTmq+q5b9sJVOZFqmF2pxoycr5qQvtcle1spUIbGJEm4gYodCCVrRwSvBRX3CTtsx5ERuQz42lDBPG3EX/xkgVjJ71dBMicvhG+nntXQWD07v0CFCLSKJQNBQkKpOGLQHGs5ENrUgJANdGUo6JVAaLVDxnUM6MUmQGI5hfDmlptYPCKXbVKgFDTZoQEEQ0kMEcWMYM9YUSlMACbbomTQ0yqRxGM6c6fVeZSnAoEEhhqAcpHyBbB834FdIF7KpdSG0gBCpA1SBQIKjmQhCgzbkOnNYipxVakIUhfJUgA1VpDlNwBLrOj1Tw0lYirCCEGFBAB28VSAmmqs4utouiId1rXwnQBlUE9guBFKsw34VYOO1VB2QgAABMkIWvyuELs9seywhqQngFa1E2UAUZAKBZDKjCYRm1QSi/yLJA/6KCstfCVh14uYjVAuC3AMDBBoTAvk/KIQJeK+VoAxnOpDl3rzOIgW8fYAAD/NYEPshC4ZQpBznUgQFGwClOJ+vcQpXABlYYwnSrW93fYqADOMDGCoZQ3PbVgpl1ENiY/oVTEuh0p4W6BiLqYIU7OGK1D6Aue3lxgAMAAAMYMEF8hUBADILDCnJgEwh4KYUOJyKscByYrxKlN0TYoBd66O1vqZtgA/xhCQ2WQIM3iwMfrEAIJQ0dOGwwgza1YAYvoEKQqSCFGbQgpUJjWVKrtbcIFBgd0gUAiw1A3WMwWAIDkICMHWwC+GZXCC+AmjYtKAlElEAIWVCFIASxgQ0wIf8LxUNdy/47uS6YuBc/UMR0FfyAYxxjCUvQsgSW8IdCO/jBEvbBBsqQL2YmQhJHfgL02KqKSqNhA6rYQAtUMNo5H5JvqNjrD34AhD2z1wBWDvSg/8ALQm95xhHuADZgiyUrzADSK7jQj4WA6TSveRCvfQIOl8u9EcxADz/gxA+S4FsqoxrVvKjAFbCs5WlreQkKAPQfGuzgDhShsyvisSSesIITrGcCK3gCIp6QBTarWRVlKMO4x2S/7TnuCSVAtrJJvWLq8sLPVq6ABK4wgAFMWwQiIHQFXgxoCWz7ABH2gVu9o80StGAFPphAByDcAR/g+wltZrMg4E2FRKjJAmf/MioDSiAFPez7B1UgQ4IVjGoF8OIPIpi2wacdDIRXIOc5H/TNG4wBHBQBzLTZ8a3JrfGNN9gEE1CBJLIQ8g2M3BEvKMEI/EtDKGkAEVTQNyeUTQQEPxvaFZA2C8oxABZc4Qoi+LmgE67tF2/7uhAYxGZs8Ghye6IDXTYBtwHQgSfUgeoh/zUThMDp0VYOCmEXu7JjLmUFW/kPEsi5E1bBdrj7Aehv/7kI/lABQvOCwYd2gGPfwswZCAHjgI+wCQDA7QOYoAV4QPyafz0EIfhttCPIHZFdPvaxo+MCmj31lbF8hWAEww8JiP7nER73Cnwe52k/fRxAcQwDEAACbtnU/6MvPgETYIDL5z+AliGugjqsoM2JH0Tvfw/BrqJDD8RXNjoWodkWV/nmOccCTlAObycCztd8zwd3SzB6C1gBoPCAfpZgBLAIV9F6aOYDODB7RCd4MSZjAOADaAZ/IVcGLzAERwZBkkAF9zdqY/cDN7AIUlZd3fdsvGCAwfB2OJiDzkd9OZd2FXB6EAgKCQYABVAVSodrGocBtOeBtId5WeZgONACIrgBaABvLyAFJsgyiDADLYdsLLh//Xdqx0BdCvBzb5d5OVeAcecHbEh9CRBtFQBwM/cABFAAjOYTVpAIFpcFPhB7tJdlA6B+WWZoDuYDLVAEIliFg3ADViAFkv8ABQPWYWKXbGW3YmdXXQ9YAcHAAiwgcIUWd4V2BZ/nB2kXd6d3ehE4hwSABj5hAyUwbrA3e38IiAdQcIPogYYIf2hwaaowCFcoBSUIZCrohS3IbJbYfch4DGX4dgbHgyLACwpggCLAhj9oZXHwb3EwhjPHWqy4En2HcRqngVpWcONoi1p2dysghW22i2ggCIPABCU4BEMQjy9wA/g3akQQA1I2hmLoZ9G2iZ5HjQuXc6swgNAHjQD3b1SmihewEkZWbuH4W7Voi4BIkQ73cDa2jhSwkZgWb4NQBvBYgkygA/H2AoqAfMdoAP+mjGWYAM5IfT6YAauQARkAfaCgAAD/x33dp4rgpxJ8GI7m92BLWJEEZ44DIAIypmiWRoUUYHWqQAEF0AZG12YQgAMZ6ACyyF4PCAqoxpIK4JLUR3oikAA/WAFrkAHCkAEJgJMAZwBsyY9D2JAq0QZ+OGNBOZEFZ23kSI4AsAFZkAU60IsgeQPAyARlAGwiqAqAWQYbMHvOBoHKyAtkWQGTmW08WAFlmAFzsAZj+ZZ9ppPJ+AAAIJcoUQZtcJdaJpGzSJFtV5EFV4c4AAEcOXJloANMwATy+AK6SQW8yZtM4AAA0JXHwH3RRnoBV2iD1nzVpwBnmQFr4AcKwH0LCZnCeQwA0I0o8ZuoOQC/xZppkAZZloZX//Cdtqh+RVcAEFAADkAADtCeDtAGbbCRaAABECCVwBmcfoaTN/dzb6gAn4iUOddzaScMTiAMz7mW2jicyKgANvdvALB6pekASuhgtceaFmpwLMCaEoADg/CRg7AIVSgIF3AB9Jme6nmfDWZl0IiZZZh9LFqDN3gFnIhwMgkIBAp92mgAEKgAAdCiCuB9TKASOiChtFd7tYhlFImDnLhz4FlwB7ABuambQ0CYvKmbN1CPunmYmoWfAXeKPsiW1vd2a/d2wiAMWIAFTgCdWtkJoBAACRAAbhqH3qd3KVEMElp7gpZlSJoGbqekO7eJbJAGEuAA76gIVeAISQAEH1kMOv9AkmUwBLc5ksApnD4Ih6yGk185gGlQDmzAicIACIAwkwkAcF8ZfZPpB4WwkwRwhyhhp+mnpzJ2oUpaDn06niwAngAgCCBZBjFAAJq1pcAllBJ5AP/2gDYHCjXIgCzqB5rKiQKYDqAKCMGAkw+YAGwInQHAhjtJhxB6EtiggbWofniZpGnIAlGQhjd4qwPQBiF5A46wZpXGZhtpouvZYIWGimmHeQhHeqcnbeVAgDeYBqsQrU4QDA4oA4VQkzTpB2e5knGpEkVgfg1Gjk5YcOQpo7b6rwUrpjJGAbuJDlbam0KmmyKpAwVAe6hoZdY1jhcZdJzHBuWwCmlgpqCaBj7/6AdoeZZrsLNsOYcFgA4pEbGr6ZoFl6FKyolHu6RQupuDwGaYpmbw95eDsAGaRawMZgAOsAFF0AEAcI4VK7DlsKnlgAWgugoCyrA0iZYCsAZv6GfsBQAOwKoasQjieKEG951hK6acGAUy6nYsIAFLewM3cAEF4KvAZaTc9gd+BgBSGS0pwAFcMHsM93abaqMDC6pYsAqjh7MEWqYCIAzPZ3My2H0EoAgpQbdFaouYh6RMmgZs8LrlwLfNx7cicACqsJs3QIJVcJhQO6/qiZ/VVQA+wAE64QI8UCVOh2X/WraXC6oZcAWamJZmKgA06XzZp4zdBwB0ehKCoIF223a0/0qrndqptOp8B2i7VDAEUnADTCAF6HClUiqP8lgGBfC2PtAnp0AHRtA8leJ0trgKnHe5A+sEcVcIU5ABAoAFwlCQGdBz0NgJO2kA2KkREfuqA9CkF5wGMkqrLPC6nOgE49l8b3cAWcCbevCCa4YGFECfbYaIGwABBHAA1UUAK8AAMABJYRIlVAJ4AJDB3wmqn2q20VejmTvATpABaceWzkaaGlEM3muxFMmpgbrBHBwFwVCToKi9XTi4v3u4HVhwrMYLJhAtMPAFWzQ06GI2GtfDF/ypgEC2BPwHV4AFUxCq0YoFBruWkMmVRYgSQ4AD57entriprguz/wq7fNvA+/+qxeiADlTwjiPZoaqgwukJnGG8WSrgAnQQCJBEAgyALsajJFxbcJgbqnGcAemwwJerwNCXxNyXjQbQkyfxAo0wobbIdq7LqXzKqbxcvn5gvtumA7wpBY8ckvA4j5BaBqpQv4vbAV1gBKcSO4c0AmmsARrwd7U4sAvcyn8gDNBqo2daDp35lWwJCnEQyymRBW0woaxbtLBryLBbvsGws873B4vGBOkbleiJnvSJA1J5sn9gcx9oAR1ULTBQJnvTOGk8AT0swKtAihUwB+lwphPtBEmsAIWQANx3kz9KASmBDZ7wxBS5dr38rwAcu85Hk3w7ABBgdS+gAyYgi0Vajhr//IO8gAErAAPT0jJkUm/oYywYMAAC/HxDjAXpkA6wUJNJnABsG52gsJYGwMQZsbXmF6sU+Z2c969azbfOFwVe/a8sIGE4oAOI14uVxpTpCQCoaHsaECjzwwAs80E3VG8gE9TRugpXEH0VIABHnQ5p+qagYJZrwKAB0AnRaQDdmhF9yIHeqdVZTasD6HbB8K9eDbMDIGE60AIt4KiRWptTW7+nZ3sjMDDAlyY8fdCIAAUnENQDW5BnOwVHLQxwt5a8gJYs6qYBcM4TnBGnacEDQKubGsCP/bJXvHnl4AQDOACxqQNFgIEF8NzQ7Z5qHdo+gAjXQG9QoNmm/TdnwgFB/x2zBQnRfjAF4YDHeZywBloBcPqVa1ABc4oS5RfI3gm7AwveexsFToDfUVAOGeAEEiCbT5CBSujFA8ff+QoAK3BDfkICwTcC+zNaPe3dEiCwwWCqP+fNWAB9TJ0BGa7RPfqVGZCqB9DHGtHbePmdYssGJx2znIrcweDVUWCu+P0HslkGf6lm7ti0aEC4DqCSC2cCK/BEUPIEaQIFL0MCkGg/nhDUF+wHcEqZfiDR6cC2a/C57e3U1aqWpzeaJ9EIEnviv23SyH3cVnzF+J3fL/7iBwABgrB4QlCbjdqoxdC0EGAACyfaA/NBwUfkI9ACUEAmZwIFS66848yjaxDbwf8gDJ8rAjbHoG26s5hZAQcQtxQssaxbyPCs1SzgfAN43MEw5k4AAC3N3FXpnr7KngRg5zZne1Cg00ITfKuTJj2NJkt+weUAfYSdAB9w1FiQwIBg0WXYowFQ5T/IoEsg6pVuweS5y4+t1c6e32u3dgCwkaogscEaY8et5QeAA1AiP3DN51unJvbzQbWuwdHHoF8p0eEQDhNNx+cenYWwmWzJoA4GWBhR7UPZdngL3ssLwBkQu1ttvqHelDoAf067e1AJANm37VLCA67zBEReZn9uPzdEAuV+BR/Oo0xt1H2dDmoZnW46B3NQCFvZpj/aBhmhA8nLujArtgD82B1s0mf/PoCivgFkvdk60KHANskQAAD7egAdICUhMDfo4uBncj+8cgLGgGXQ9+FkGQwcb9R4/KZwOgcCgJkl76a88KAZgZVDyacX/LqG3Npbrd/IvXk1nwVWaepevK+FNsbvMfToAtf3YyY3NCeCl3kJUAgBkNHWCgtqsO5oWgjq3fdri5kBUPJk+QckbhHr3MOs66zOTvZand/4DcCh3tIbMKEzxm0ScNzQ++OeYCGMY80qYz/Tk92qLXhLcAV+X6oJkA6Cr8AC8AGF8AGwwLbWqsdtGn1/wPUXcZr5brGODcCAoLH4TaAFqvyiXoVFgA1UyI47Xrik56YKQHgdMAHIYs27//LnY5Ldmn0Ckgu9uO2mhZAOfZAOrU2gfC0MlGn9ia+MhUD4a44RXp7v4Dn565/VMA4QTlY5KVcOAIQNqjZkUaVK0MMNFCAQEFFBgYJjBwBg6DDhhAaQJC5BuTQSyogRIUwAOMYrgIIEAQIkKKSmTzqBgABhwSKs0MVjoEApEArqQ6EKGlWBYdrUqdNGHTAcOCBBwoA0aQqWW9W169ZVUcSWi+LEyUEKG0ysJdAWwNsDIpz4CQCqE6iMGEx4OhEiBIOSgUu2OLEyqNBOLxMkaKAm3c504cIJ8PMTMeIAkBLIOGYAAIWnoZv6MDGVqogrLMoBKtgV0KrXZgsKEzjwLP8ENBQwwH0Lt4JZPzE7dVLwR+MEDhz+jiAZGMqTwgAMXFQwXIE5cx8apIscDguguRVkFiq0hrxMoZ0BOHghOnSR0gCoDhhwBfaq1qxflzPrhHaG2g7aYIM2IKAAjQ0EQfCCAv6oKAHEiDOuox6UA4wkDJ9YwbBjguoEgeE6MceMObDgrqcMElAgAPLWWCyAu/A65gEDCNjAvacEKW0+rKKADRCt7oOtrLLKoe0rASUqMC2IKHAgLvGqGy6ACiQwYYIJegghBRVGMOkSFVboQLpjTLksxJnWEIAn8IRZw481MggmOAg77Ew9CNrDkaliHDANqzTw06m1+8CzTSBhbAP/oAA0IJCPKriqkuAKPyxacUVIqORoghqUU+FTElAZQQMxpRPKlLs6MQXVxBLQDhbuYo0sHWEswutUOwG4cU8wNvBTPvqCFEaY134ERJgpEm2TtiiCERCCAgpwgAD5HLyCq2BiCqCymBII5gATOkIuBA0+HUGFE0g7ICgzQ0TVLqECMKMBWCWLFYs5ClmMF4zS4wWANngFY5BfJfhDgjRYeI1Y177TyTWd+jvrgog2GMQhiaAtAIDgZJJJ25lEACDcCTzhoC+QQuBA3WM6kSHETiBRNcIEzPgAFlgEILYn82hSUcYOPRuEVyZioPbgAQoqtliIlWU6LGcN1LgAHByw/9qBAg6YU9sVP2zVuHA7MFk5DU7AEoAlpJx5RVBWxSwABMyJ04lj3VxM3+FkfOCB9ZjY84YL4AqWq53YhBgLr7zab1E0sr6CPhZYwO+KK4ADuRMUEEABEj8GOECvDrhAjoMJOhhzABEySxXuu0yR6aLhzKl5jTmmEOCDnoVr2xQDaASgiD2ZCBxYrAiP9WGdkl8a8dsksroACKClVgKystW3LtVFXGOVNAbAAANjPMDSmO8PSEMCBR4gQP0HiJpyJrsSWzGANUxMB19h6Lp1770NcCB4ChAPUKvhieF2MqyyDCtiUUPQgAQxiItt4AIUmZN4MiODuCEgACPaySroI/+B74XwKtz7gwEoUIAyBM4AoJAJcexSl8TQTwAn4kmK+lWmoBHAb+4pQwyApZVAdUUY98OCAHRCxGOtYgpLlNOiKCCRaEXLatS6QjBclJnNzURfr7rf/YBUjqzQJ2lOqAABVEEBKgxCPrwQDoxaOKUEzAFWdbvdRWTUOwIsYk9Z2NgIV5EorQzxXmwiVuGwMAUnRIFxT6oP5YKIrAy4SAaQoCSLPnDJOXBHMpIZxjC8Uw76gKcCBmjUC1Rhqpe87o0xo98a7vfHKcxBRXbqnQOGhiNfAQBhsHEYL00UDiQ+7EfMcuLVsCYtavHCLC/KTCFsFqc5zEEYWOhDHzgpGcT/YUUYAriCASDggDIEMA4KqABNuHW9l5CzENOsmx+owwv1XIBXG5AWBrCSvO8UcFaGYxgsnRAMAjDKQAhqkqMoBSd9FUI7AhBABtKBs3R4UjLV7APi0sAGJWaAlAVgAhqkc5GZJMAPldHXYl7khxkWcQ3UCZoD9LinMhShEU+iHj55cj9g3o82S+zJEoMhAgLgZorTotZbJJBAZNGuRLHaZDiGQVGKeieQkTwICj16jBX5rBAkdRFIN9gAe2WAnBjxDBoEZspGtEGXP1rFTbsDzEMyYg5mSVYwglHGAkyQFyKYVORUozRArGmGmuTkU/uwBcP2oZPWNMuw1lCBt0yL/18xgUlJzbOG3MnkA/aqlUU6Q4AyCAwMWWgEAapCQJ380pr2QqTOnLBERgQnoI2LVvSkVQACKMA1smpqJxe7WKhi00QMjeQS/lBOkyYAOyUtTwZS1MKbAVMYFemMAQog2kRkAQdTGcCP9GmvyPTUCQJgIiMYgddGXSAtEaEAg3gRBUFqMlbVHIYXENtJxCp2C9WMlQCiuYajINSk2DEHJMwxhzg9dzhxlIwARKAi/92SVzPwgVR2JIHkMXWTiBPiEmFbRghMsDeRkgALpmm/WYUDqlu4b319+9Sc3i+aM8YseZSrXGeaYQ3DygBdFqyddAhgX9YVLRie4AkstaENfv86QNKw0FRrfuWPiRrITwMawGolLQqq6YpbZ6XJw7IYvywWs2H7m44MEFcYczgKTWQH4DTTJhiZAZE5wFqrABxDh3uSQ58jAJKPZIG0BZhKGk6c0++wgQ1c6UqyygFUqYUYWlcDQKAg0x01qFjFLfZti/ML3nRMgSfTXDOby3NJ3JF6zjLJ1AcQbBEi72kGUEDEJRhw6xFI4gnYaENpBgAI+XIHlIp2DbH4E9QNGCgik3YAACTnVntV06legHGYx+wF+96Xv8Ittc5iKU3aFdFucMQsRghgVhxZoQQjYEAKbt2FkajAB72eSjmevElAeO4Aq1EeeK7c7N70VTWF+3L/OGyi2KcmnMzD2AK2Hd5i/uozZ4KVoxzv599CwOhFEJbnnmwgiVsz4AhdIHnZfFC63fyaqWnoTXfx2RWsBZB6q6CKBPzzRy+rQedQpe+YydxwMmObxda03017wlATFRBfCCaPpY5x3T1ZYQbsToG7b72JsiFZKvIpxz4HEHDv8sQJDjAQtbr79WkBwD8oNjhFgatt/CbcmmF2OLUlSsSLr4m3RZzDSCvAixp13D1ySAQqGID1qt86BX4hnTEelYZfYuHr8klDagsYhZgXdd8GaTYLnJD07sxd2/Tt+VMlTxVAOLXhQl+scA0pq1g5IZKjFLxobIAHGLiABAzQANZv/62BxZ/AE1KhDwHvB8KpdLmAAghGzAHgObOvggWGNrqsFOt2aV9/tQMwAQ4mgIFVbNq+Dpc2DZX++vulYQlQH3wdYEByEpTLSyTYfQo0oDLihx0Qn5MPbKa5JmFoPgNxgD+gubWoNCPxstBLLGmbKE+6CXAxnQ5Ig8hYvYfLr7u7Kcj4JdYggCrYk8JjgC7gPQ0IFUQwPOALPk/AgJraQAkAlmO5qWG5gmihJwKQADawEhwwgQNoK2jrAzUos9UqvU4Kh1VAPgkQhmmru7rLr9UKhxicFdYAAAlzjxlQPJBgABJABEQ4iSy8Pw6Qisoruhc0H1/6jiPMPLhgA8+ZCv+Csz7gekIHbD0o5AkV0y8LbELE2iQiMpwDqD33SIRRAQkNGIEtRIQWQImQSwGzsSdgCy+NMB+dOLHvuAKs8ajJ07cB+LzqiwyEK8LgcirS+y36YjGhY0LTO4CN4YUrODGaA0QckYQsxDVU4EJJgIJ3WzxPMIbuujcskIAme70imgIJuET52Bj8uAr0uzeE47k75DkiFDNT7KS6e6pyYD+1mhboKTIw0DUS1AAGoDVJuEV2UzwOMAaEebKbCBalsx1YmAIRIDuPWpQDuDd7cSvVYsCJmrt9NKwX+7lsGz/76oN45EYcmYEnUAHguzVUKAGH9BLFS4Fz3Dd1DIfu4aX/hyqinpCAoEIDjSgACdCnE+GtOHxCILSmg3M7T2I4TmM4+8KvdACq0DJI0WgBhSSXUCmBOuBCVNi9dtvFfePD7jEk8uoJYbiCoKIAjcCBeqQh2HvGarIJPgwut9ukZvytMeskWFAAKqRJ94CC+xPBS+DCEvgCw+uCxZsAYzAfFOMeQzI6YiS7wDmAJ/kl2Oui7IsqMONHafMkT7w+iVKxlXyqD1AAb/JK2xOCJwBHF7gEVLAAs+Q9ieQCR8QCqqAcAgK99FsU3HiLjbm3TFMDnoCFZ1Sxg5MMndM5LUjNiVKx7uAOhoqmnCHNcGgAcwgA/5lJxHQKhCREBmhIRLhJ/x74viYrhwNAg0FAAwdIwgKyHZ4oxgugGGiBFgAQgW3qL1gIrtRcLZ1Lh9R0jC66l5yKpkLIjkJgsw8wA5kxhQdAt910Cl3zC8CotarjgBrwgEJTxaYoAwK4AkM6IFWMTvZ6Iijqz52YAu9MTe9kqu7kDlhxjKJ0ToZ6qDlogPS0sZiABBQYjgdgv/dkCsJTSAZwgRFUmftkQY2AAKd4gazxP57oioMQUASZ0ScqABE4UASFqFj5zliBKA+LJSzAmQbIJFiIJjO4zRfJlA0FhRpxzw8FAysQAoWsOh7ogQnAT73AgdCoghhgxQKishhNCzQQhA3IjRr9g21iBMxyNf85EgCD0zlYcVDy8rCKK9IKFdIhdZEjRQAljRkmVdEnbYoZuL8e6IEa4AIsnQD3cAQyAIVWHJauuA31KtMBMVMGsc6+WwzsWIB5oReciVPE6QnZY7MGKFVTlaNSRTCaKE9z6AQaeBkmJYBAbYpEWAH7DALKZEETcI8bAIJFeIAKgI3auA1layA0QIMLgBYRWIWfygyPQYBOLdU41SnykitT1Q4LrdBU1VPsoKSXGY7OANRZfYLSIR8W1BVeTYIkAADOaagMmAJLjJ4DmdHcSFYHoBTxGI7MgZsRMVXYm7EhLVVstdBrbYAFSM8jNQcQ+VYmhcX3FAKpECEtFQ09qIL/c0iCRq2ASFqDKfiDAmgvMT1WAj0hETDMthmOVcEcaJVWnPEvOYIFU41Zmb0kZxoRDYIZWHXY9/QBEcIAHNEDR7hYMniAbfED5zqIY6VXM22vAhilFTKFDUVZGoDWBRjSOxXSaMKkrNXWS7IZM0AAsNUg1ZEBsu0EAiCCWWUKX1mLXcWRG3AEdY2BBwCFQpCLKQCAC1AQkR3Z9nIAEQC8VQlcVcmcqk1VU/UvVzPcmT3S9AxbPgVbGohcGugEA6jCtOUVK1CEc9jcRSAAFioE5zo3Mt1bAo1OApwOVGEVFEAVBGBTq1VcmTXYazUD2l2AEVmADJJcGthQE7rcIkOH/ypQBIvFWNfxgwB0gAdKkDIl3Qt4EgMwk8BlFQyymRmr0GiK3Xk5WIGdAzPgVAIzB9xFAMl9GVPwUN91D+BVBCIY3rlVgHUSgQJoCGMV2RndmOeNXsGF1tpx2SHVDlfDVk6l3VNFWK/9WkjQnFfNGwLQgfPdkypwhCp4YEeQW1AwWkCQAAi4GKVN2twogL2JXlVZFbhh0zkQACFFNYINYOq9JFO1GdylJLDNHBqQmQAAACdt4KcAAiAI3gceWroViOOEIHp9oqUtAAO4X8GNH0ggkWjKyNu5JJuFVtpFtQLe01elAbgRXz6tCwN4KRwODV+F4CpYBAAYCqM1CIsZhP9KJWI0WIQnggAaiV4UOFmhsBmkeygBsFAzCAAR1jH0JGDaheFKCluPGSVx/WKnWIQYWIQHltuLuAIAsREh1ts2XoQ2bq/1eQDBBeHWdTUTTocZSwDrwi0FMFqt9dqwLTDHjdxMwc3/QeSniAEyYGSMBYUKoBw5keTkpORF6GUzJYDe0eTUDWGVVSj/stM5GBkc2EGtwaysTc8PGBEzKARIoGaFndot1jPLRWQymOUJNoA4oJxWbL4HGgQKUBBL5tsTeoAySVkQhtoAcDWYhQU1mAKOwIEOMAEJEIE1mOKupV0SoWbH1ZxMuYvehWWmwFhGQQNg1lhcht9yPuc2zg3/0p0Idk5ZYlYVzMmOIcUZYQAACdTnCsixANaOGYvmgQbbAECBAHgAnT1fRR4QIz4Gjb2rb4GAiEZnS07a9vqmI/YQjZbjldXWOQChfD6AK8gx2qXagwWw9MSOsIWE3R0O/0FopriAQXgBgjEArKIJfjGAvIUgifblMj0QpuXqU9kdu0jZzDnSg8WdK0CYK+hngO5e8IVWp6Zdhc0cBJCBVwUFXiAAQbBqB9iAFvABAICnoSiEDmlPHR6EvK3kDbDknY7O9WmZodgdjHaZAwbbacYd7q3d7gVo25UXm0Fp8cVmVjZM0IDlwHGA+OCbotibPNJhIMjbRRCE3O7lymYQ/3aOH5Td5A/ZIGm2GQv9ABWu6+K2GYWFXGymJMM8ZBz2oRHrZjN5gG4uAEGw7XN+IN3m7b3FrQ6BF3d5lxCB4U1N7n9eboB27qktMEh4mVj7YkYlgN0AAAKQZU3G7oDabkcAgu4ehIf47jX2aa6GmbUW3OEI2+5dAE5lYe04UuXu5+bWYrCN77oggJcOVEEgg41YjxjQb/Xx8ALIbQGnmHJ2CDIl0zKVng65i6gNYcFFb39GNTZb6rreY1VO7bCdWhlIn13B4UWYFhMIqBAng/yWZTLIW+VFcQhScYgo629iCaGIcRlHFRTAZoBGtf998H+e5seN3IHGoJY2X99VZP/8xpojj4EkkGU2B4KHQNYEefIBHxD2kh60jp9TCVwU6PMPiZvuPQr/xV2AluYe7/EDjtyX6dAvVgRFJgOsuQA3T4JzWAQyiAEgKANHcARBoJg0hnLlzY3oabbx1vM9x/LNAVsHR2FAruuw3ZzOFvP4hgRQWGAcHmMkv0RZXoSgdXNH0PQy6HQEGYRN1+EBF1nbcgC0hpnyxpw+F3MEUGrSTu4LT2nxJdvJBWscdvRchwBFjoFzwPVLLwNyD/YLGFNyL/Zjf2PbAuYVMvUr19fOhlb27tZ5H+j45tPINegNf88JRvICKIIL6GWL9XAyoIByD/ZzHgRg/28VZ69kVS+Y+y2TywDuEEEBv57m5hbtlM4UyIXWqJYZypXV872BNkdyb1/kcJdb7EaDMmB4hV8Ehq8CTf9vOBdZ9UKQE0JrjFZrVlHZgXbwpS6EkL9mLebrqcV4UyAARzhfdHCEb59sXlcERgUAMshgcqf5Xib2Mohgmn95AYcIglII3Mpk/jl7/nGbttkdys0bJI7eU18V/iEAMhCtgAAAIfkECQgAWgAsPQAFAHoAvQAACP8AtQgcSLCgwYMIEwpsQkcWEll0ZsmC2HBMjhxIFGrcyLGjx48dGU6cFfFiDlkWd+yosYNPDiWXXICcSbOmzYIRkUhEkkOlzxo1gggNwnIHjyOobipdynSgEYsX+fBZWSPqjqFBuBBl2SNEiaZgw3YMdGRlVq1DgU4FOqFtjx4qeYQI4Uus3bsEA8nKUYOLh78ehvoVWqMHhxoTEHPoweOEhmd4I4NlOGtMUL9/tWIOnBjxBC5c3J4I0U6y6ZtNAlXk03czYMBtP8MOzeHEia+nc3NMTSfnmLWvMfzt4EG4h9CAMfidYPiEJN3QE25TPZFnz5WgX//FYFx7YA/MOdT/fh69vMBSqukggZpjatbhxLd3P768bQ3xIU6UNl8ehhHfGKX0nnbccZfZBEHEpiAHpPFXnhEQzYKEde0F1VYH8XkHWGihKTgBg7g5mFtEDu3l0lpBGOaDD555mJh4Ltp3Qgsi6qaaRBZNxQcPPIaggQYjBNmOCvnN1c4IqMCQyiUMhMCBgvrVmBtlUEmVwxFKuKAlKtdc48uXFqSCSgnPgAACHmhG4AsMIcR2wghSnsZQlUYdoaWWl6RyTSlqRuBnBHiYeSaaeKjJwJMf0hinZAxVWBgDl0QaKSoWdMknoIAKqmmhvljw5H1CLGoaHb8BFQKkkkYKg6WAFhqBppsa/7oYB1CIKpkRPRF1aqouwOBrl778mSmsZ6p5yQniKWrrXUZQxSCqkvpqwbTB+llooLCmyaZ4rSyLlxJUnaDCCJG6ENMlvsJgQbWYYrspmhZogGy33toFLlDikhsTnqhQWuml1hJrZgTx2qZsvU2VosRUPeRbLr9JVhpsmq9mW2jBJ9CLcFMWHMFwCE9AcckrDKSQgo8aMECCuhP/uSkIflpg2wqhbpwwDDyopEE7LpSMLIMc+PBhCK/A8OU1YVrwzNLPcJqKkyvYDFYg14TQMANYm4z1KySgwoAGczHwSqUWeK2BCuNCUcKXkuR3sNRK+WLbqSSoIPYrJF/SLyqvaP+QAgOoqGn2XBo8MQIUFkiywttw3+TpXK+M8MrITZ7woQo/lgx4KXj4wqTK06YieipPhNi4UhGY/DcJLrzSRcknhyDJE2Iz0EXgZqaiQW0htLCuBS2Qd7pScij8urmXsB7p4amUIMkIW6PiS6AzSNKK4U9IsrQkwg9fU0SzzALDncjvPTr0Kb8ifaGJLI2H+2iWkIj3Nt0Y/iylGIHKnXlOWzYJJMOb0TKVCIE9Ywb0q0kpehM+I1zDCOQzl79GFsCuTUxgZnpG9xLokQWCjw7XGJ+WJocuGJDghAEs2gUF1r5acRAk9gsfHbLUBRqSD4Bi69q6rkWs9xHshTOJAAP/Z2GE8dWwC1rqQhdIEBO8pcBO1BrWoFwVASCCZBL/oUMRY6LELuANiTBIXhdSIBfbpUB6FRtYBJ4RARtYESQRMEIRvRipI2pJCUp0nRJ7hTQL+ElQrvLFM9z4Ro/gwQIQbB3r7qgEPLYOeau6xqsCRclA+mJ+hfxIBEI4Piaa605ZmtyvAgZIigUqkzOZRClKcQ0mLrJ1SESiDldopmv5aZCopIkcQGCBh2mJAUd4Ih07dUFXpQmTuQSJHORQAlREiolKVJ3WXuGCJHXKj61CZjI/sg05PAMKTKQm3lynJWl5yUtRBBQhtwkSEPhCZeMkZznl+KU09ulV7JzJNnwR/4gmjjOJ5Yzk9CimJhDkcyYlYKUz/3kudUlMWF8ikxwOCpJeqouCJNQbpbx0TzVZQH4UBYnnkOhPak5qXcHiky+8tLaJhtQjI/UiychHTS5VSpJLo5YVXuqREozsdX/Lox5LuCowlYBMO+UpR55xiS5m7QhQPYLtqKmu0a1tkElVqkKesb9xwi4E0vwb4ERHpqWBYJ1aPYgcItBVFJYsP3P7m96ax8Y1gkAIQ0jrQWxgAzzwrXVcAyDJsNYrlLLrgDYQQhb0WhAbnBUPYfQiCsepN2p9qZ7vm4EVhhCDDbyAsVo4hGMjUAoj4m2yXXMou6yFhxkcYggOMIEPPptWK//o4UyVMkJTT4jCEwpUWKxNxA+YQAYCOIACtOXpNqzg2DXJUUuTpay6vFRXaw3yB0AgQy4AQAAKKHUbNlgmCK6hhCJCl7cBvIT/VluoZxxCCnvQLgHmSwFVHHS5ywyvHGxggRRkKXm8FazKVLvaVCTiDlQgAxkA8AADAAAAJqBAFjb4RuYm4k/5fYYGoOqCAAfphBEzLJhmYAMrVEG7DG7wgyGMAyHUzIoWngFZS5DhuaTgtIHlWr/8Z1jRgcAKh1gEih9A5Acc4MgY6AAOsJEFKrwwEdVrAdqgwM9l7vd55Aowb/3lP6SlAgruvYMe9rDdFDf4ABJI8wEwYALZZuH/BU5unByg3IIVrEBoHGhHIHwhPyv4ma820GALtMzlaUFhBJKwwQ9+oAjtbpfIBjgGmtP8hyOv2QSNwIYQ4oywbUAZCioImg9M0IEJqCBxLcDrEIbAhBe8YAitgEK/RnBCjfaLBNk7MCewu+AHF/kYvPiDsIV9gEoDgM04KEIWXmyrGZSgHU6agJJN8OAOrAAKLWjFBra9gfrqIAutaEEqwtS1Ewbpa1BIhBU4wQkwxODRkD6GvHmxhD+IYAADkEClD3BsZNd3UbssQZ2lbYIkdwAAR7Z2O+rMbW4LYgOtGEEqOoUKWp/way2Qgh7YzQkivNvXx4j0vP+whCXkO98k/5fAkVfsgDZsQAciAkEJRuAkDBWoAxiwtAmw0Q7FbUAVD9+AIHSggxWM4HeowCHWRuBajrf740SWt9QVUHIJXKHqKa83L3jh4GMnO7m6SUQJoLCCJxWIOwe3NL990IIWOFwQgiAGMWB99E7RGm+Idu0Pds3uH5A5F0Q2hSnmXYEK+EEEEsh3miVQ78LzQgFbNwB3cLCB3NjA2VK2HM4LdIA2W3oAR8ZBqhsOd2IwwQbP6xeAGYCkROhh44tm95jh/YDBH0MBFRCBCK7A+yuk4Qq6X4IIllB4yBsbwmhYLF4Czb1WaD7nlv7DsRGOb3x3PgtuJz0xykAFIVj84oh2Pf/snX6Ddz/gGIGXdwWA33veWx3xFSB+8QNQAV5YGgAOKEDlwwJlIbSi7ASHAQincio3gNVnfSbgYg4ndMSgA1QwO5M1As/genvHd7K3CNtlAA8ACqAwbxLAAr1XDiCoe4h3BRJgeIWXgoy3BAfgYA4AAWAxBNlWdjjQAW0GfQdgfQ+WePiWZqBnAtzzdoKgCmUgBahncakwAxq3cRb4A2CQBA6QCwaggVHHC+uXBmkwAFk4AL0XfCJQAQmwfsNHcl+4dVwHAN7FFNjwJBhScDiIZtaXgweIbywwAAAQbg3HgEXIV0MgBCVABRpXgRXYbotAAAAwhVN4fiEHYQaYhVf/EAy6V3h+cAV+kIKIJwHDt3WLSABosBTYUINuiHDHVnByOIdpAIInB3ocsAJ5+HMO6GqudgNSoHEcF3s/4AgLhoiR9gDGlWnY4AM4YAJyyHjxtwRWx3uQ6AeVWG8KcHsh9wAAUACeaIMCyG9ItmKlWH1swIX3VocAgA2syG1ogAYN+GqwOARwpgc/cAd3wHHudoiICAoG4ACNsDgt8ARPsAKfKIxpVnJcWH3AV4nFdwwdiH5ExolKIQihqHZHpnKlmIUsAIK/534AEI7bNo5xZ3poQISrtmpMQAXq2I4/UAaGaAC8IG8Olmnjwj1CcI80WI0+iG/A94UpWAEK0IFF/8aLnXgTquCGDIlwn3eAqIiMJliRK1AE4kiOplcAsYUDPrABRQCMGzAEYCAFVRADD3aSBekA2KAC+Hg4QXJoKnBnOJBzEoCF+FaC9WeGBllk0agUG0BtDBl9w2Z1dBiRAxCRvAcADXcBF4AGG9CAVPACTKADUIkDoNhmbVAA8DiFCtCMAAAB4IaP2dZ2I9ACyZOPbQAAPNh+ayl1OFlkBFAAjmATilAEpKh2DvkHiycCpwiC7QebaPiU3UYBF0ABG1kGQ1cGZbBqLiYERGeYDgCPt6cABlAAy5Ztl9l2hoNokpAKdQZ9S3CKIvAHBIl+8iaPOWlcgmATWdAIcnlk+//GmpiIeDI5guUJfHYojhSwAWgAd6pwAYbIXS3XnlmgA6q2AVn5B1znAEZ3j0ESoPgIBaPzNAeXeMBXAdYpb4qYk0TGXd1ZE9jQBtyBZhZKngOge7yXoSS4e7qHbwCgCoEpdzrABEMwmLypCmgAAQUwnw/GZsN5iFsnfRP2ZQKKPcwTOiFAbVZ3eDbJoA8QB0AKaQZAAMRgE0UQjECpcpUGkB7Khbyne8HQfgdAACZQABAAAX55AYGpCIA4i1JABYpQBhsAAcNpoTN6AKJ3CVDQpi2AbS0QluP2DL7QNvyohV8ICqYQdR1IhddZpEdaE8WgpDmob8LGgzK5e1eQb7v/N6W9R4cHkH8QQAHDiQGjCQGBWQauBogoSgGHCGzSdwL+ISkBepkE+jtfdgL8mAaQ2Iy/hp0cCHkhZ6Q2oQoOAH1qxppauKssMKWKGgx+oJdXAJsswJcNWAbEwKIuym9W+oLtKQiMaZLB1gGowErP9GFCMG7j5gupIAmooKoHsARXMJBRB3mPlwBheJNFWpo1AZ64inLCNqxswKrs13vBEJH4Wg6QCABzd46DyWrEIAhowJQPBodpZoUVcAAc4B9hdAkjYDiooK1HVQKiMwIckHPi6ni/9pgVEAuPGQABgH4EAAQ24a6TFocZCoK9OqzEmq/lEAW8xwIHQAFlUAWK/+AIi7B96EgFnEqYxLABLYpmhScCB+ADIYBEXPOwBPqc/jM6T+ADGNCPjpedHOsHHJsAIcuLgUoTCmmWPBivvYevMRuR5TCswTCl93oFfwABOmCzjhCjxlUAFLCbikCYZIpwIjClElBqPJACKRMkBTo6iZMKIwC1PLgEsgoKYYiCCuAHa5AABkkAEToTNyAICwaHPSiTjoqvLBAFK3u2weAEaCsC/PoCN3ADirAIyoqN/AZhJhBbaZa3U3oApTYaZyNxz1mgYZIKKjABGCCTS7B1FbAGGeC4wZAAa7AGFRCatEoTipBdQDmHGXqvbMAGnMsCIhiRoHu2IkAAmnoDYP+AujfwakxQBoa5uomXhcS3BlM6AEk2NF5JoBQ7OtxjPTg3AGVbfwmQARlwtpS4Bn6QAAVJZLkwuSABBNBasNLLhffKAmwwtuUgglEQBdsrAd5LBGAABkTgCFVQBeh4Azw7mIUJtABAbx2bBmuQhcIxASewAuPSrc0zsd3au1GboTa5Bk7gBBFsCZawBuq6nfZFE8XQCIxpgPirjWwQwTAbDNVbDtb7smfrB5DovYpwuooQAwTAHQ7grCOqA2WgCoeoALGQvDhcDqDXAauoAuLWPJJQAh81w757lldghfwrupYgDMWLtaBQZIBaE0XQBpt5ZNW3hdWbxA48weVgCS//+7JR4ATFe7beG4tVcAFmaoiWVoArRozBkAHEmwFOkIUmkMaHwz2Jc1Ri8rS/i29/4Ad4nAHIwL/8GwsCHGkdSADsOhNtEIw5N8hZeIoRvMgU/MsR7MiOfLYsQACt9gJSgI5harciWskIh4W6J8XBkLyePACyNRdPEDy5OzpJdwL3q2/WLAzCYM3JK8AKEAC1vLUg0QY32JDSmwZJrMSgq8ROEAWebMwOcKIaNwS8aaLo6Gqshqwb4ADFJrtTSsZXIFujsZLdfD7gmm8VIAxOYAk5nLxjbJOPeZNEtgjtWnDRi2/ynMSFzMg5HMFsYNHBEAXCwAhTus8aJwVl0KIs/yeprmirwpYAjuvJTkDO5YAB8Js9wVOgkgAFJ2CWfxAMWJDIGYDHPV2JIPuYe/wA0kgT7sqZ1YeXpzjPJ20JE3zPUfCyOVy83avMeiDT40jT2WiNaUnGTS0MyIAMlkC7PmC7SLLGz/k8votwFZABAjAF5CwMWIAFGQCGIKvOe/oADlATumywB9jEv8zDTvzLwaDIjUzB3XuigNhqzUzQLCqXZ5mhY1zHFJ3D2IzGYJU2uVvUIYBzB7B1sfDXgz3Y+loBAZAAsaDOoBAAvNC8IEGomOvE8yqCiRzB2FvcJk3BORwMIUoMrqYK28cE0t2brFa+xFAAByACfjDaPI0MTv8g150Hv0HiPKIjZVALAMUZCxmABdRADcIQwAGwBlPgsekchpFJExRKfSI90nnJApKtyPeswymtyOWQw6LLlxSgAy9AAfO1YnELAUi5ATiAZtpNvDlsCXGNDMJwxjXQ0CRQvyUwAzOQBYZIkCBLvHOwBrkNCgrAv+kMsgp637hcjabowCIo2U6swzxs0Xdc0ctdAfnXnmW6usWWl9a3q7pnzd+t4XGtC+7bAXXtI/JLJpKwAQSggRwYADd52wnwmB8gAMqbzrHgB9IHg7gcnjzowNZbvRhe3DwuDBiew3MgDAUeBaQ7qRugqTzrzz9LATjgAIaYlh2r4hZOzhluCU//XhuFgwpwmgUMTpCxCgq0kOVYO+cBjK6y3NtB/NvveoBbncgEbtE6HAX/XdEa7gR3vqJ/uX282YdMIASF6al/UHi4nbybLAACANdYAOfhzTsqcAIr4gMQQACSHtUcOOkKgLxgjrUgmwBTWABlYNU8aoqfvuPIDeo7nsOlnQEGoKUGbaGt+7pySwEQAACzHsCEXrwZMAe5PthwLgFJhhwFYgIEcAD0zYH4/uKxkNsvzoFT6AAG7BH5zYNpQNyRjeF3TOA7nMje3dMWvQaRuQEXUABMGaN/oIVbmMiViK617siwPNjtTQ3IkG9w2OZHhoXFJ9W0MOmKy+wBAAks3qcB/98R7rzL+Fa9WOjA/o3jvzzPPDwFU3DRsQAAf4kG/zzQhkkBNC0CGSAC6AqGyMvTcC3Y1JAJmTDb7N3kEoDVA2DYLH7YsarOhw2ytBCyBABz7QzaeQnZO3zHci3Mbs7DBg6sBPCXFI/nDSjd5aubBDDrHI/pngzYgs3eVk8NhN8HWGCHN5h4S8DsXt+Bkr7bkw6y+26cDoD2HmGymHgFPv/fh67IoC/3ojvWsVD3aND3v+eQrouYjHmCyDvm+/7WWCAA7F31fdDehD/XpFZwiWeTV/71MY/vLE8LyOvDDlYAmM8RPoBzeHsFGA7Xirzzcm0J8zzPBe7xFAzx7UnJTP9pyXKYyOTMqsqIrlLsyYId14Nt9ZkQ8liADJcmgFxYAZLrAAYQ6fh+/x8wB7Gg0Q4GEBCYaCFY0OBBHyYwADggopwlS8iQWSrH5iFEiA8fOrEkzEmGOU6cBANwQdCGMil16CBGbMOFAgQAXAlW089NP2syZBAmUSIWapn6UMOCBRmWAQcYDhhQzgAxQQQeHANV1aopULQgzUmgIEECPwoAANhw0KxBHx0wHGB7UWLGchPLzXUy15JIj1MsTfkIAAKamA4cQNigamUZJsQgHKAZLGesWGuE9expScAjan2GEi2qK82ANKHXAEBDgEDMqVVp0TJlihaCWAESVAhQoQL/rwMYyp41i03hAaZpyqWJKHHu24fC7or8yHOyMJIFSgMQETqNBKUEHBA4MLdcsARr/Ozk6RPZFCxC+wzLFDRTJiw9P84RIeJPAR0xAGRd3Z9WgAAUsM22Pyr4QwIAKODtoCxMAEACpkArDqMJMSqnOSfmmEOAKTp0wi800NjgpZiWSi6+C8X7KrIOjSoKqPcyYa+99jjDQoA5xDNgA2IIMIA/qwCUDSw/RKhAgWMqEOEAB4hZsKANZAIONOIqzMiijCIqJwryOvTIrw0EQYyJMlpSZQMKIOCOoij8+CoAFpERZoqjigpqGDz7iJEaPuMDaY0rpOQlK/7+S4CXCvyw/6mCJXiJAxReACjgSS1eKGKhKYOb8C2KKpwooinmFEAASyQFTDvtcPhLhzJ02ACANJjLQDwz1nBCmKLq5NM9PNnTE74bNVxj2CuWSCAASAKQ4b8hFfADi0cEECaDWBQA5RgDyHryhUbGyjS04j610Ly35JxC2lslpYAAEQZg4d00RBhrrQEgEibH8UBC70U73XtPs/Xe6/NeYWP56thCD64ggQyAis+PWI7MFoIFDxni0qWYYkM4S17ESLgIwb2LL4++lA4CCihAI83tGOvYRRzJm/ORfoEKaj091+tVqPdGnXZYg7sCJQBahjajKwDXkDaDhcFSwAACdjNLhyIcnP/SO3tflEsCD3rgYAIMmjI31Ock3QANYlJS6UwIHJjJiaMygHuyKWiuOT3NYux1xveKEmZYoN/kb8gErIpl1lg+YLqCOKCm+CAdcKB3AF0qwlrOXAfA4ARUYNCAA7UGkIgvsj8sgAK3xyLABNYdOL0ACR5CRoBc+yWqz8zU07nXvNuLD5lZ54As2WNlW2MOP1SDRPE1YvnoNmwBwCELgyQPGzTZI4LoJ6Q6aKeUa1zY5ASw6x29JyxMR8OBhq4QLrRyWJBAAvRvxPXFXW2+GeCAddaG74Gt4QOxSZaQYkG7ctBmNZHRCa7mUIFrjWV6BGkQ6x7UFNnJSS4sOIAPYBD/iFIYwQUMCMEETMCUiNxKPgkS0UlClDIKFOBBKrwRNWhXO/xRQw3/4p3/hqGZGXFmVh8wgzmO5pVYoEcYfiAaLWJhQ48EYwpM+wMv/gCANghBC0IoQhEagYMLwm8umuvACVwQCDT6wgKXICHogHMhnnDECQS4QJhYNaZW6QANEAAA3IpyQ6MchTO7EljvhDKM/3nhf3kjCo7MYAYiAigBh7tRBhKwGlDEoijkEcAakHSMsWBDC0zIQhHa4CAIfWY4B8BBO66BRjSWwgIWcIEGQgA6CNVLhRQBUUxMYBoHsM5BD7rf7fhlu6C4p3cAQ6Q2FvmrP87hA0Q0g8FisaFH/wyQaFWZQ/rytYbbGOABBFBQFnyAA4VkrBwDAAAHXtkEEIYQBjBABQk0QL7rcUx7pToddyRwhZHghV/5c9gxk8mnf/0qb4j0QkO90CvO3GtWj/zKhnBkMEI9EQtpqIBOwgm1wpwSA6wbaUk3VwpYgu8aMHCBC+oZAi5gIGz6vIj6eHSmNKWpRGm42zEddtAa0ah3w3DoQ3/ou1FlgIhETMD9pjBJSMgAFJBoABaY5gcn+IEX2JrUKVmHAxy0Aaw46EAIUCrLll5Cra94BQkYcILQVYkiGyEJYdKmkpXo4EwF+ENHbNgngyIUoUJRZkK10dBmHrWRU9CQNHcyh53ERv8GUoUEzQQggitYgqMT00IRHNAIbIS2COcs4zXQygANaIABr7gEW0nwhBD4IGwUkohyTBelsTAkt2yhXw5tZzuBxehfwsVTQ52pyD2NirGKA4mGqAWJAl7ThiJo2GYdUBYvYiML2+UAWTugAVSMwK2pDYFqSaDWS4zgcydMw0RuhRFhqIs7BuDFP+2iPzshc1c345lwhYqnwyIWkQAcFWQ1NCosTAEy5kBWeOITDKWlYQklIUgXtVtKyZmgAytYwRNQgQrUppYBDCDBh1HxBA6cMC51wpVHCPAXEbUEKmgqgNuc4FM7qWFXO/SXntTwYz7lbT0CBjA0BfDYFv9sDY//NJjSsLAGhqXhAARQBUHKYOENeNUEOOBAFiTxDFSkVrWqvQQqUvEEFZRPFxPpUIvmWIANFOACd10JTgmQBkDuNxM61qFg97vDnAGxmYuUEc58Fx8EKxdxsTjaeAQwmwxcwQAXKAgYstCIRmRZmDjYQAtmUALUhli1I7gEFGBbvvaO7TJTeDEaAIAbpXiLLTx10X5tnUwaBdeQ6mGoM/+HyH/ZsCPnGpW0cmTEr4ynArEQRqCkpgViNCIGG4AADoJJgSwMQRJPGHFqU5CC1I6gBS1A8Uw/FSoPtbrGDPlDfVggSGDd7tZ4ExhCdyhcZh7XuHs7KnzOZdGlDesD4IyF/x8qcAVh3KcKBtFBG677RdZlWxIqKG8ILB4CcKtgBFAYgQp8AAAJaa/NUXhxmGY8IpYRoLcFtXVRCLs/fOtMM7526K8FLbB/W/Rns6KWmxQAUNIcBAgxOaeDTCAEIazgBCcAtwa+LWIzjyC27JUL3CaShtMApgCnEwRL0MTHiARWz4Mdbn/9JSOi1vzXzdRTUUKyIbJNBpzW4kV9HOAIoZMBA9Z+0PSKgAMfcMDb3x4xA0r9hHt2QALtDZdyyvFiCgDgDwPAzm7/QMNb7wpg+OZvjALWqwDX/Id56tuNAHmeyYSlKk/bg1lU4YCRuu0AdSTrBE7g9G/nPrUk2HgITP+w+I5gASJ0EsFg0LRH2QPUZjXK/I/5J+ScOR/taE97URX560VGFMEv+lsAjnEMBeRiEWapQgFkigOZ7FEhZbx4+1PQDjND4QTXg0h85jSFKwxGEGKq8x5rTAApujUgc74fU4M+MMB/QUBmAqJMCD3RWyREajtEM4pGsqTve4AY4A0IUAj0uy63wYDA4wAOwLgUsDgNuIRUSAUNCJ3skZPJEIECIAztcB0IqMEa5Cth2LE+K8DnO8BdKzTd2R0HRCwInBH705X4WANQiINcWJALgD10agM+UgoNmwAfOAGLI7wyW8HZckHgmYMXpEEDEIFgmIvQwJ78+jPnW6bn67f/GHkm7BtCZ+K3oSiKfYkmUDAANFgQVeBAE4AAGToA7KhCDsDC3CMhsImd2nIvuXGC4iOMGAREKRGByTg0AWiAOcCMH/ufPeNBgLm3I3OCHhs069u3H9q8RnIYZHCCWMDAJ8kCdAIrNWGI+ZEpLpiAQsTCEMAnyjkKObkLxzie4nsdCuARvaI2t4kLOwScDTHAzejEXyEkAXDEDNifHzoufSuqOQw0o8AViRiAY8hAStkAE2iDRmgDKZmSAzCBWxRBESwfcomimxBG11kX1REM14mJGxMAGxq4aXoEBGyPA3RGzXCPP3KCR0io3bk+bTQuHgKW+HCCAygAvKOUMjDH/yK4gFygxSkBgCrsAJAEjo7xRWAUD5wYxhiSCQhZDo8ALGH4AIhhhMzwMf9SyD67nSDsA1/LRkUyLoWCj8nIAF6YFEopCCZQBSC4AG+Znwhhi99IA13QBX6RCEuCGMj4gAqoR9PYugKwmj+4An5hLEbQEJx5RrPbPB9kwzzZyWZqKIFsu4FJOKIsyoIYgirYg40URN5iC4ZItZfhDIhwjKaRDV44jcjLDq7cOgAoB1zBkcaayQOstx27t5uUzKAAtLV0Js3wC+3wytCYSLo8CyAgA9hbi8rry4k4gD+wGaO4C0s6ltUIkMFAHW9hCr7sqxdxzDlwxh9rj968TD7rM//f5LNHAEgDBD1gwwIC4A0pDE3eKAZV+KK1YAuRlADpuDPuGwkoQxoAgZrXAQDBwIDYmQz9sSENMc7e1LEC1KHgLE4+UU9qKM5p+oA54KEgAgDnzM+6bBDqbArwJIgCWIKI8Ig2cROiUYD/cJw4+5ZyUIq+up97wYz3DM5bK073nMz4fIQGoKYN0ZuhkABK00/9XIT/A8/H0QK+WjPmcAyhKZoAOY0NcIA0EAYZyYQBMIFkrJNHaCxN5JML/TMJtRuA9FENbYAiCo/63BMJUBARbdIyeDYUPYAqEQkWtZaq8D7DZBers4R1NIED6ImjmAIB+gAJ3ZUyjU8f9dGiuFD/xzTSo0EWM2iA93ggB2hSOzWLAgAO4pgLN0GYK1UAGOWrLdUcKX0RxkoAI2qABkjTGrK1ILXQDM1EDSEic2CwBECAODUYAHCSO+3UPBUdS4iCYLiChQmSF0WZPL0Vo5CyxfSbv7nUOG0ACp23NFUDSM1QTJQmZEEABIAuBAAQXjjRTm1SMngjinAMNwEFrBgaJiGMCzgAUSyKNFiIcoim2HiNBTiD9WS+zJNQHQtSHJmCD8BUBosqZuEFB6iyYW1S7hCb7ygSocmKWPALwogzyauJ6ziAl+mk4kGAD5BVHsu8m5zV+GwsaSqiAEAAGUABFFgNsdjDdRXRdtUIm4DN/6FJgBerI0E4E5jYjrEQnQSDTVpAAUzdTUJKJh3bM/YkUiLdUEWdpmNZ2IZdlmOYy4gNzWJoV+0ZCcewiv+Qs2JUBWJQBUFAA5iQCdFBBvBoopE1h38t0wJcT/YEsgzdUUVtgDPYUMiQWf94AGG9WYskgD+Qqzb5iqLJigAAWkFoiY09mxg6IWQoh7Dwj5F9pEycTKl9zyEt2DlQVIOVJgRg2IZlDVN4gBAFW0pxBDIwAPcJzJs4EmVljdOpI6I9ibNBPgmwBFJV1tboD0wlUx0swB7NUCLt2w2Vpg39AHPg1cHFJJtFXN4QhFzgBbEBnrAgms5VgBgsxv0bkZe4AP+YOAAW+APO7dzVQAEjutupJVjgVIMG2NF/haT5XF0EoIHjRYG0hV1KIYZccJkUMhJriU0D2N0wcSGjBV4IOBAIcg3CdQ0EMKKx5Ec1XNnQ3dHggaRH4tXqpQEa4FVA5VTtPYsN6N56uYt44QUERVsDgADgLd/LPd88raLWmOAJ1l/6pBmB9db1LE7HZLRKpd7qhYRezUOIDeCDKAb90FOKiBfbKBQ9TJnyPQlBAF6YMADwK14KJllMXYDnbT4MpVrloiZerVQz4FVISNASNuGCUIQUbgqKYIFgIN5CiZqVGRHLPd8argoKzuHARQAevlCqndCoDdj4nKb8HWIjBhD/3VXig3CEFI4LCjESZa0KAijaEDmbRaBh4C0AG8bhLWbYBXjaCcXbMb7MPtvRR2KwhIUE/rVeUFhONi6I0ZS8ctCFTkmDKmKNqigAOw6Ty9VjPn6ALabg4/XiHh5jqh1AMY7aDUWA/xjZ6l0WUNCWSNaCSeaFxqUIETAAA3CNoeHkENk/YS7aCwAMcRrlCV4NGjCDL0Zl0e3E9VTPbxWWhEWByZIBGpgsw61lLRAEMphdfcoqXl5WUADmYB7mlwCMBxBlZG4NhuXVONVg0RXkH3tUanjeOWAsEVZYEeZfWhhfbl6EGOhe+PmDdkOSXqYF3S1aK96/RQiRYlbKY2jn/84VXEx93h611TXgZaWp2uI03efFxFhY3f6dLP5d41oGghjgDuJIAwAwgD/wpB/JQwgo2kVYhP1Lgpt+aKOVisKlaIY1BeSN1TkArCnwgwOoANNdapA23QGi3myerEcWhFr25lxYAsb7DAlwRKoIgEmz6UUAAkHY6bE+mwJ4gF42XlLuj3c2Bx7msxvhCxFgrJC+WrvGxGkyB/6t3hE2AKqOZJV+AKz+mAHwCAT2apMIEZzW6YfG6Tw+63HOClMIgC2mW15dACCWliuw0Lu26/lkNP2VAegqmtcNYJU2gCXIrIvoGImEaT0UhGLcAEcAAp1W7PP16WTGCvZdDfaFhP93vuD9cs/ifNmrbSz6pFQUYGQa8O1yTunFpV0WYIO3mBYDUABALYzYnu0kqO08Bl4fSeZXHuWR1eH3NYdMPNP4rJFcbSxqcVOo3mtaIICBYOMkIINjsCIISQ7q5uWomWE0EARH0G7GjmjU6Fz2FWrWaN3/+GAj+gDMPtNv9dtoEYABmk8jNukjpmUTvoFFIIMHYLd/yog0wJZj6O86QoMAp23Ghui2EWW6VfD+ABD99WIeVtSWxQwLLbAxpSaSXu5fnTQ2roJFkAlvwayLyABeBtT9M4lFCHABf2j0jQkD8A8U6N/AFVytCIAq598FqHGMxuhMGG64m4MPLqL3LqD/mg3yRdhIhhDEWJmLK8AWA3CAJQ8TJ6dtnIboju1jWuDfIp7xKx/vRkaAzlbUIg1pHKHU/N1n/Q2ARw5yvByLXCrgUeXl8d1Yk0gCJ0/xmz5flPGR/4Bn6l1daz7ekfXzqx1uzy7uvi2i9/XVXoUuR6cjJb5LNo8QCfmOA+BlTlYFjd302Rbm840hADiGhH0kM2dd/iXZd+bVVD/0VG8AHLnaBTjj/X3f7ixtsK2CGCCDjw0OjgkGXn4AThaEvwDwKqgCJ2+JMFmZIoghGw4AIq5U1sXmhS3lz7VxaC/u1P3XalfYRu5fwtT2m+V2b7+gCNEsJ+AFtJYOo90/YnCE/ypQmxQ/CQp4dzU5AAXY1XJl5GUx9eNt8A+4jPgs7kvMVTf986iuXjUm+IgtBjKQkkmnEj+wdOnIY4iPeEdIiYov2jQBxFdTAEaHLhoQ3KAe2dd4JEP30VzVTQdfACMqIjPoX/6VdQ2H3Q5PR8qLkCtYEl42iRl+aBnT+Z43WhuUoa5+dejybSyfYBm46B62IYwebg3t8iJGdi+OdevVQxNGg5WmxQGYPKbQdahB8aS8aWAP8IgXayhPmbbZj6GxXsHN5tY1XkhIVHwu0r413X8fetG+5n8WR+3t8LxkStAYgCsg1cJ3BEHYA5zeeWAnBiBg/BARETSRCWPXcgCpcqmkd41kniwaN3QOntR/NwNGj3WPl1wT9uaXVk0JaBfKMxJeWH0gQIOwTveUUHfFn/1OHpEiUJPqjvHVWFjQnyzXmKxHCuS7vREH/3N4VvZ+lmVI1l5B+HtetiK2wA1eBk8xAQhHSYA4UkSEiEFFZZiUKeMIyKINqlRtqHjBAQBTD0yBAmXqI8iQH0HRohUgVqwPc+Z8gIQAUoCSHknO5KjxAQEtOnfy3BkQACH5BAkIAIEALDAABgCFALwAAAj/AAMJHEiwoMGDCBMqNCgHEyVKdOg8pNREziQQCzNq3Mixo8ePAjFhmjUGCTBgs4BFpDPLiEsjIGPKnElToUiUKUnmGCNLVg4+fHbwyKHEiJKaSJMqTQjiFEuUssYE5fNzx44aQYLUsMqHB4OlYMPO/IIkh9mqW8eM+Yk1yIS3W62GEEu37kJKsoLWaLu3BlWgV3v0mNDD6o4eHDTYXcw40MgcO4J4mMyFS5DKloMg5kBY8IkQJ058bUx6aRNKs8pevYy5MuXOEy5rRhwiRIrSuGdqEsly7VUuk4MDD/42uAe3mzmMzs1cY8OJOvlgNW4cA/HhrwUrb859YRM6UNdC/55OfbJ1yq49ANfMgcOJFt3jF2zyfVZUteMll8dwnjJ1wZutIN+AgTzEUlRIqEYedf2pNwEXb7012ATuqVAHgfGpBExP4kmXFXbUQfhghA5GSGEILmDYHXj2lYVWDQBOaGJngvkwo4kcjKAidxDZtxZVP/GQQgoMMDDCCAxoUJttT4xwCQyXMABaDzZKqOOOzMlBB4JnHaGEEi64AIMFX5T5hQWooGJBHXjgAUIEEZTpAmdv+XAllrjhdZZQR4QZ5pNklgknnJNcBAIIbuJRpgZV+vAEnrnpGVgKYMJg6ZNlnnIKnJriMUmbhyIKpwUh2NgDfJCWhpdeITDgpwuXqP9p5qCbgurmoW3GyYCNOaaqqlRbpaDBq7HCYOascLZ5a6hwksABYqj6ypgRQcnFwCWXvGrpmMgmayiieMR5yQntqSBtY8DksFUPGlyLrZ9QGtstnKHiqigMGrQn4LmLGQHZDolhG+slr7wSJreDxhnBsvVGIIkG5LbCb7//8jAstiSQ4Gqxs276RbKhJhpBKhBzEO3EYrnAg1zDvlJkCrUJywAJCCt8ykUXKTsyxCdIjDJdMKzMAZEuD9leez74MLSYp5xpAZkLhztoKqWuYMfPdJ2SglAMFKxBu12jcskIShJ5ydOpaJzkK7LGSfUJ5mItlgVChtBFkQx0cfcrNKP/QsLdKbzyxSkWvKLk0F+TkIoFqYTms9xgfaHBkEViiyS5E5zwdbutfhyBBVEyoCbjUKRixwpQQC4WJjAkOXPGSSqpwRMtuN61sXGOEAIHIYxApgV2SPJEBKqDxQoIZ/55CQnLXwJF6akQnLeYnlswggrYP5FKmc8Xv5QROKlkxJ8woJLK+SWg0nXBr8jbZh11RAD/oFCU4H1SmJw0S0sPWZomFOZjHAlctj6oLYtheJDEhe5XE4hsSBbAoIQRYOAnbF1qgHhr38cYVi/kLZCBM8GEEeyTEmCM71ViIljBuna7jyGqg7j6HAxASJNThO8LFHRBF3QYJvaxb4cWoBcM/w8Fpy+kgoYzseFJTJhDHoZph6/owitSwIM+PQ1UHZRaBDCCxJhEQH+zgMEJdwgmvbkgikfggZBiF0RD5QpObOriTOJ0Qihhy4fL+9sRduiC30UgZ2+SWpm4KEeQgMAC4yuY2J54xowNkHouvJXOBvWFDxbyIyCowxdcYsdsSZF9zMMUvdyYMIXh4ZIzscGhcPiuM/qQfWY6YAQ2NahTonImVmCFDdBEgh5GiWgFG1MQBVnKON4Sl3L4gtii6LUhDWmPBjPW0wanqYXZ4Jg00eUXVKgEvTHzFU96iZm4tak6XBObqUReHqXoShKggluCUtasCInOmCDvFK4sWCPdKf/MWLbpWOespz1TQTgV8k1ggAqU5+JUJksK9CM2EFv5GolQeH7Mc2YqAT0f6hEQpOKVjnSnrARFyzKtiRUcjUlE9bi3b7pToccqQQlmYIWUgqQEUJAe3vLmzXAq1AIy1WhNbeqROkBhgBj8WheOUCR9ChN9M5gBCAJK1I3UQWDsYwDMbGMbyl3rfJWcgQ1QWtWN2AAPd+RbM3e3pJnF6mnykypZy7oQG6gSFT0MaZESN7ppDqoOUx0qXRFihamyLlsFMyg4+3qshU5VCoMl7PEwgU8dFmyA7JMVTCs5qENRIbIGsYJoKUuJHvItpC9t7ELxAFgbZCEPoB2IHFgxWkT/5tWRp+1roBLGWhv8YhFFcANoWaFLVmiisGLKJ2rZ9rRpLnRhJbCBFC5QgDbAlqjEFQn8xGoFOdRBA15aoV5n9k7nLgxOM2WFFGJABgJQoAwplQL84DfTEmCCtnIAwQjCtMwRYPC0woQaJe0AAiu8gAwAAIB74YtOKUhhBsGTxJFGYIc6yGEGeCCuXaULAglnzL/Ms5R53RYBVvwCCAhWMAEckIUsoDKXICiBHVqgghP4gFwaGEEqItAKSeSBCkCmAhhe0IIjqY1mzXUu6KJrBT3sIcUGMAAATICDIriii9KtQwkk0YIV2KgDb+mAD1rRAju4whVZUIUqNrCBMhAj/wuteILLLqvbp40AFSBgxR1uEAMCJNgADzDAAQ4AABxswMX3O56Wr2fjDpgAAyboAKQnsIJWmHkFalYFBSigiiLA+aggLtbi0GSkOuj5DmVIcaCjHIdIDBoDYj603HSJiQjgVAVffjQA+AMAQndgBU+Y8Qo2QIxMFxvOkjiqI4uVplLb4A53cDKCV83qSPxh0Amm8gZ0MDFValnCXnY0f/gjgUGbW8wraEEL2LwBY5dhxotLhdiY12xnQ/sORCDDtFcdh1YvYQl/uDahCVCAbQsBUrmswwxw+oRwmyDBGDD3ACQwgIofAAM+WIEksjDsDaBBzcR4QYcVnj6/wS7HM//4xQ+g/QNHJPgB/DaAvyWQhgoE/NpTrrIqmLCjTG65Ba1o9KPJXfGiV1wCFC/0CSTRio6jod3EYMIMRgCnxYH4ayOYgRRWzvIkJBgArJZ5vyvw7z9U4OwC37UJ2kCBDQwIwi14Qo1zHXGkT9zoRkf6AX5dh4az+eOqIEYZhNAC+NnhqF0bgSSooAeu39sRCI4yq/utgLNbHu1ILze2O9D27uTBFSuw8QTE3esDUBzvqLd4B6BwCgZ0vN2Bf3cLzpSKCVNYCo2/9+PJAPNA91sMcRCDGJZA9j8ooPJnT8O/zT1lH6iiOVmgO68lnvqiS+AKVxjAATwAg1P4nd2x53L/TklwJChoXQ+/0D209bCIP4u935Gw/PITbPo//Lvsria0AyjAbdxkwQG6Zm4CeHqplwYDkH3a1wFk8n0U8HTEoAhSQHjkV2aMh36Od2/5BgC+B3zwV3l/sGu/tgKN4AClN2iREAcA52oYYGgM1hgXEIACqH+9dnpsYHRXEAzYl4DnowIdt2loEHU2MANCUDrn9wvpp353AAZ7QACSJ3m/JwYVAABgBmzq1mVtYAKDdn+RsIUD1wZuxxgv0AbTF4O71mtFlwZskAZpwAIssIYskIDP83qb1m5l8GAz8GMOZoRIGG1JQADU5oRxcHyRYAI+oAEq8ASSIAnB02U+0AGl/0d8WxgJXwcBF7AYVVAAGFCCAkh/f3B9A/AGaMgGbPAGb8AGLJB9GFBpcgh1ZUAFQ/ACrwgGuYeELRd5cRB2/RYHFVBuOLACI1CFz2MH5yMJKjABEXcAJ3iCcYBtDvCFdKEDJKiJpkdoB2B/FSAC2WeAafAGq7AKpVh0IchuaPBxgscEZfCKr3gDerCHGQiI76cAIjAAGNAIKtACQiAEipiIwng+UFAED3cAFaAAwLeFCVYAdlEEDpCJMYht5naNV/CGLFCKlkCKalhxGMdmm3YBF/BxOqAKELBtZRCSTAAGRwhtJ8aEBhAJk/d7CnBtbVBp9hiT9igJaYI+PhBxyv8YBwEnZQTwfGIhBP54jAKofb12c38gAmwIkREJim8oAR2wAT5AARfQdpxWjsRAARCQlQ7gABCgA7L4C3rwAhfwZ5HAge8YhY0Ak/ZIeMkGQItTSU/giDI3kFGmYBRAF26AAwpJcRJHjQGHjSwQBaZIimxIkQZoaMSmZmXABEPgikzwmCG5ZhDgAAVXBlWgCgXwZ7m4mcenAJLoaeqGj4mYbJJwPmRSAiNgjGCXi5L3AAVADGJRBJI2g+UmAZ2oedUoAtg4ihF5isEQDN5oigBAmZQIAZsWeBRAmRcQe5AZkmWAmZoZfMAnBvFXAQlQAQfgAEVAZlWobomIPjKVCk//oJqTJ3OARgCVGBaN8I/VWG4BZ3HV2ImAKYpriH1LWYo1SGgFQJxo4AiqQF0OQAArVgA/WAYvcAMvwARjOXkK0GqRoAAJcJ2FBmzlBwXeWZoyVSapoAKzGXZRBnMEgAZigQPsmXl2lwb1F58VgIMsKgLBwALdGJxvCABspgPE8IAH+gKK4GYAupUFcAHtVgBRFn/xV3nHd50o2osq4CTYUjp28KRBhVMn4IireYuABqJ7MKLseZt3p33VuIXW6QdXEAXB8Aa/GZHeSJgS4ACL+QI6ugiLoANM8AJg4GAI+pwF4GelF38R2qfXGaFpIAEmADdg46QztXAlcD4tcAIP/1elV9p76QkWV6iJnVhxKPqlYOqiv3mm3NiNpXiKAKAKi4mnAkpwy2mgdSoFL1AGG0CCKpoAflABfjCra1CRAHAi7aJjqRBVMiWMwnOTX7eFgCZ5BBcWTCCGtGl0auierSarL0qmvxkFMdqNpngFNEoMVbCjIXmV+ymgBfCRZaAIisAEGwB21uYHuml2shoLaZABBkiIE2AbGmA+iJqoaDKemRhlFbCScQAABXADYKEDyEqANTgA2xioJriiwRAFTuAEm5oBDQsI3sgCEkAA4UoERKAIVfACVHADN7CjqoAG3eqtBPCqsyqrIrAG6PqbbzAAJkAhwqJjQQVh59MKev8JdoL4B4HYoA9AAP2XFNGHA6V3ems4AKN4qWbnB8HgBGTKtMGwBsEAsWl6BSJQAIrwAkRwA1VAiaogpzcAZENWBcQwmSkKprK6orOqtMDJjfIYrzmWCjObqBt6swaQs8h3iz25FG0wejN4hvjpjRMnAZr6tLOaAVHrBNO6ClFQtRvrsWWQpwlGcBQgeAd6A0NQBhTQaw9qnQmQBiKQtiq7BsIACBK7d3DDAKUzU3YAYXbAoZmoi8dnecFnAATgjDUhmz4gtKZ3hsFJimxAtb/pBxlAqxC7tE4gDMKwClOQAVU7pwdaBdu6CBcQoALKlVCXudVoeaC7BhmQAcLQsMf/Cwimu6SKeKhP2rqSFn8BYJ0BKZAqCQB3mRQQAGb/SIBpkKbdyAIs+pvdC7EN642r8L3fmwFXUABuegNgsJgdi6A7CgRo0GdfV5RHSbxqa7jHm7zdKAE4ADeICKULFzyuC5CxEAtn96ANSrsimhQJmYm1WXGiOIpOILFkGgWBGbXeG8DdCAjJK7HCQMMGzLFg4AjfWqBXK2Ra+58OYLL8G7VL67+kK7ED0AEnAGxQoI/n+zCOSHNrcJ2daaV5ixRu8GgHgHdsOIrcSLpvUMPBMAVsPLrI241uTLpOkAYGTAUOVgbRmGDWK6duygTEUJSyqrQRabz/G8BYgAWAEMWJ/1GPini+waMBHTDGn3udw8uzPctzSAEBdUfGo4i/3hi8GTAFFzy6WCAMpYy8h+wEIgABdqwHUrCtG0ABkBu534qVAKCus1qmfgC1DRsFpLsKh4wFaUCIK8DIjgzCjlhx3OuuFXCLMOcAStEIEaesA8ACnZzD3Uim3DsFAozKgIDIOmzKqzAArOxgVLCYV9vHzynLfjZoEycCFQC1L+qwDJvDEvvNiHyrHNwCjWw6UADJGGCwwjAHJKwAH+qaSiGGAV10N3jN3XjIgMCN3XvB3GzKwazD37wKLFAAQUYFqtAGxtm1zpug/pmZuZnLm/q0UrsKOhzMWLB3HFDMige3wf8zAlOKARLwBirrBwkgkKtmkEixAXqJd2tIitLKjaMb0W/QsKjs0nAABxetw29gApRLrq6qfwUwuSIJjcgIq/K8Bsu8Cogbw6QbzGnQARXSwTIlYSfgARH3ubucAAEgfP0G1LebkGT8kPfJ0r/cjccrAIh8yFDt0hD9BgeAlUMwBImJlXmsxyDda4HcsCrNvVALsUmNBVC9Chg3xYzcq1CwApFcjX461wFg0HZNEwgJADR4tGjoqSz9xqSovMgrABaN2YdM2wIAuFsJe4vJmOZIDCLbzhRHc7/pBN37tGDNvcaNylAN1VEcGiGgAuUbPy3gA6qtrhGqAKUdZac9E27/4KoGS4riHaPcCNHTOtukbNtYIABTcMoRnZ2TSXBZ3bVternE0KrIGM9LS7ihC9bgi89PDQeAcKvuMTtQcCSKuAELHXBHeny3CM1IAQR+9gf3K7HjzY3l/dSljMOlLAD4HMwCANiIPAWrMJzxDXaENpzzrQMhOZZJ271gnQGxsAZz0L3CIMrB/NSZkAmAgAF1MsWilzQYsI0S0L7WOdemQACwWRNoQIKf+AYSm7ix/c1PTbrJi7hlbdG1zc1Y4AT+igaLEJJAsAgxEI04t2IAsAQQWrgqnQGi673I29JwkAlw0Ad9gAWabR0d4AFDt3dDvgpFLnwQKpC32N0x8X+q/13N2Jy4ynvRLE3WH97epSzpyOvlxokGBsrATNCR1OVnNFfkoQuxGVDjE+3LfI3ZOz4Mw8DjloB6FDfNoNi+x0fXcQABNZEH/jiDsY24i97Sjs7X31zWpXzIpszD/koB3rqcgtfbm+6RubkGTiDKwgDj/hvDw47qmbDqw5DjWNCyZRjQlrAKwdC+YiCQpR0Hhv4RQiDNqq2psT2t+GzKUD26MZrehI0FUyDHAAABaCCgEaxgWd1iOpAFAICN3uu9OszNtE3vgT3n2b4Fqp4JEK19sNYB4jYAq5ABFVDuYkAL0onuNPF5yHoAulmmAFzWwS7YUB3lWo68tY3IV77v4/94o5oGudg2ZQG91C7/11NA2+Eb2IKdCX0Q8Tve7YKKAzgQZvwxAB8IAMpI1wYQqTHxeexuf1cQw958yPmu8k+d1N9sypJO2KPrBOipaY4wp67oZhuwn2YYo+GMynEe57Tt0tmu6qsu8cKcc472aMOtYGAnfGIAaDEwE0SWBY0gwWnwyyoP0QCuBhqO0cLA3oD9xGAvygAwld4KAYHH4iFpoxRgAvfL0guf73H+xITt8MMw9Dte9JYgAfQ3xgYbDK6/msIXZQQwE0LQdG1QlDRX4R8u4MIOB46/8la+w3ztxqVs6f1uAAHnasPpAIjZqp+I0U+Mz8Lu1HPeBzuu/av/L/G//AYTmQazegDtPJ3AZwAQ/hFUkPtZIIa7u432bNuXjdkBDs7tXf0WHe4Su6b8DhAU0FC4UMABgAMSBgw4cCANoFWAsAgThgXQRYkXLWLhCCdTH5CZho3MVLIkHDgTha3xsyZSgQIAxMyMIyaOAQiBdO7k2XMnGCEtWrTygUFhmjdJI3LsmJKpR6ccIQ4AgAGDCRMdtE7A4QPChgsbVOkoU0YHsQ0QDkp4IwwjFgESKVbc+NSjyZLD+uDNhDKlgAyx1lw5cDASzZmRCKDx2ZinkFYqVKzogHBAUjYR32KJ2hTlxTcHOvhY0cr0E9QtRkwusgHAawcQVBErw8Rs/1oAaTK4lTjxrcaneO/2Gbn3rkcsU4RlWCO4QiQFAWjGuVnAsWNXRSZM0ApA4eU3bNKsYtqxPOdMavpYPDBBxZMRUEbMh1IfiqQWrR0QAPBHwgEATIjNKwcOcKKi36TSqDfO7sJrpGH46usiiuZgyY8AFEhgOjEUo+A6n9owwSoMFkrDEowuQtEuu+BQTw0sBuhghfdGaAG1+FLRMZUWVsgCDbQoMIi/hhYagDwFzzOvKSxOchDCvZzMxCJAVkrgyjCu5DAOADYAkadGrPruDUvegKg34Brsyy411IAjjRlTUIG++TTQgIH4RnhihQ1aU2W2ss4SkoADNFPyPAHc8v/Mwbwg1KuvKSdaY40rA7gyAVpmMsWAmyAY4stAIDDBu4a+G+9MBqN6Y4DxzgMEABpVYIABKFB5ws4Q7HxCBQ30ew2AAjagjQnbNnDgsqXS7KyulPxCyaQttoBQOECYS8DSSxWYyaY4DiBAB1DbELcNH3Co7Kg3xlsFSakGcAAHAFg1kqEJVkDlC1RQ0VE++1LBr5XWDELojz9gKwACeE9dsDenOnsWKpTU+GiYLYiL0iSLArt2Y23FkK6CYCSIDURX3GikkTZwGBUDBxwY8QBWLaHIojcA8MEHrXDYAAeXcVDBBSNguAQGC1LJ9xJ9dSyhhQ2y2KAMtNR6rcjLMkL/k2Gm6GrQRWdNothR4SayNoFYYtE2ALQrODCNA3BYwbEsRERIIQBwUBmDqjBoiABCF+pgshUCX6HcDk64xAUlGDiCgUsuGYGEHHW0Q5KmKdjg8oFmU0XIeDXLaKNmW3TWWZAojtbRCNestrnmYrmU7AoSWCODVdLA4O2eFHGjQCMPwIrU0cy1m/cDfJDshO200iqEWVNwHs/5GHjvCaHw43NuAE2QjSwdKADATDTL8+upPkaXsI/ToSxJKieYEyyWDBPwY0O0Y0kjDaq85GkICPT+TwIMVAZAXcGZVvR2GQz44AQ4e1n2VqCBEIQgBXciAeRq9IT6DKUIWSgAf6YG/yAAtIwAEoCIqxi0NTj0wU0eaROkRGI6vYxEWifhCEUm5TrZTepa0bEf/gDQCJ5ILSEMcVkHcFCEwXXAf6xa1WgM+J2FJHAFztPAK5DmuBEwDhUl0BHA/qQDMKKlgwi5AnlQcijx+QVSo3vWR7bgBS9IaxhxjBBHAEOpsl2pbK6bSQJEcL80SAAAOdGJiA7ou64EDmdGWcgbVpEU0ZjLKON5AwtsR5oU5MqKlyABfEZwCSjsSAVF2NyfspAFYmyOAhDo4EPSdCi/rBCFaszLGyP0tZGc0X2V8phzxKCACgTzfn8AECED0Qa8CTJnKotXzFjlhFXIyFxDfIMTphAM2//V6wQSTMGsbmWnWVnwBK0h0muu4gAK/AkCJKwSGrvmJI9EaTjog6McwTallZghj5b6AEs2pKFsKaCYOtEBAfQWIHMaSV1puIIj62YCmN1PGFOASM06wIETnICKswpBRrdpJ+74wFi/SsgVGAIA/lgijaPb2kf6Es+SRAkk9KwnhE43JQHM4QOxgMQeLXQtS82uJZEgKoD01waDjopqjUTKFaLwBglkJSGUnFntAHDRFWg0BY8jwZ0YQAJ9jYA7X0knMc6yOQgQKg0NMs/42NrGZsXTL3sByRtrKsMZpmQlexTMpCiVgArEQgBrCGYFuhVCnWSBDHyD2bzkNYArBIP/KqNaiGbmMAfaAXA0WbXTK0gwq1khDRUq0MpXLmC52ZxFjISaQotmuUI2rvEjpbNr+mRIEosIw0If2KlfgRoAATghdsHkEgF0AoQYxCSi+GskGypJlbUMgAXBEIYApjA7tmUFoxGcoAa661UNTOAqwSJUQ0D4GgEBoCJuZeMKX+osicWzdHOspxdQh9vlrIG3+nSd6ywlgNq1RAHV0UkZGhED7zh2IQr5z2vGFBEnRNgJk+3ABDDKAQyfgAM94PB2PFAiDOhsSFP7zxUYulYUzjKF6TEOG2FaVzjG0bZv3MKUVmeGfn7AQnxNVBr8EIubDHInbmiDZeYlASQrhGqU/4zwKprMEKt4wMIb7sEEuEAiU61ikJcjRpdTubkLHOQKrnWWmkACWwnNlmIxjmMciTMS+6YEsxno56RyzJwmZUABQDaAdYas3MYyZMESMKmRphuMdQmjfbVbMAY8wAUrf1ghEqGhE+qGhtOKxayB2kABDsAwF6vxRc9SIaRUSNvaos+eMuyLci77ajrvhrpYIGwCuHQBnrhBud9Z6rzwd4UrZKDJLFiF1i4SyBINABATS12rgUUBA0SCmL/i22veMMtF9eXMJ0lPSdwUUzfalY6rjtZekvPqV8/OCZMSgNli0eeehNnICn7sQg4gAhE0JF1toei6lhJP9TkJC8AKs/8Hp3qZuIaalt6mq3q07dKJiVvGpkOf6XCagcsqZ3bCtnMCFKAAAuCaJ3sgg/+QXCojQRFYB4EJEzOAb6ge4NozvaVejIMFLX8FDapVxUAGBQAnLGp0bQrJcNpEdImVTiRthiOcK3bbGmMB3RbazXXLFh0FOKAMPomBVRJi3q9DUZAECZAJFkIYB7PATJwpDl3L91JhDDJzs+kyGDdXAAms94xqemn5jq5Cos+U5qZjsxwnDiWOvHo5iVrJ/LRlAMb4hMheB3up/scQI+INZtNtiAg855HimESWcJjCsxHyqxC6TG9ag8vQSweSFJ56tm+OEG3ZbF+8OqrGep3CFDL/IAAsuK8CMyHA1huTBQoc5PQIAft/sjdEdVVzLpyZr+idFVwCFOACHpzbFVgwszXBZQ45nasatGBz9dB8pulHtbijdVe8bsEpl0VQ8NFGHT9fJzuGJGmpwO7r+2ky9Kg4kmCjKYiC7KMAy/mytBCYQuEI31uDy4IF0jkz9UAdi8lA4ni/+hq3VYszqdMx67quAKAOAPgQUJmB7LgbzRuiAUiyANEbR6ILUgs9NhKAYEjAAkAtBkwLB2ABQJiCy5LAOeg9AXCRbXM7wcsLJVyzDjQdcpO/4MMs5ciA2KEO4wIVnnAalHEAEjEnuymCMnCFNnAIz3ihCGGjibgCYIEA/1JBPZKiC+u6rAZ4BFi4Q/ZzOCWcL8HDqxiLFg60J2lZD4qABQHIKfgRA3jTwsYYilZwGh/piSKAGY3gDfJYn7jiCCfIwR3cDwAwAP9oqGI7iZzSKXTDQ4sJPKV7vQu0KYkLxEGcFr0SP2vhEka8xZ7wngFQqY4QBmULv/MQhhyEAIH4kz/ZgFU6iANYL+tihFhgBFMkupP4uzNbPy1Iv5iCQluiIyghiUwADIo4EMIygD3ARXMMBHg5EnYhNadQFJxzAhEgAGLUvssxxmQEAHYZLN5ihAZAQguMmJdKDzmDBdhyE6iTMUCkmGqso4pYCcMqAFU4R1wsMlZ5Jba6CP8n6I0p8IPsc8PKi6i2GJ/L4q0GIEjze5E2cTGpiwQDoEC/gIWSoLE/jDGFTKE05IyViIPFkEhcbATvQIqIUJTxwUi6mIJ43EGYqLaBAbags6NSnIMGUMUWSrqIST84EIEriIqcagAYOx37khY5gquJ8AMxqARj4kktdANGWheLpBIKwYJNfLawMMbLuceImMNX68f0O7p3YjEVehg4gAWd+gCuJDxABEtvVB1hMIBKWAS0xEVVYCQzSZby0Izq0q2j3D4CeBcI6MwxGrOOoEOoRDoXOTpwCwnjkCc4EIAGIMyoVDWKyYQrmAO+gIoMWMTHvMUsOCAUMZTyOKH2ycz/eZOuYuOMjtjK0UTJo3MTVZytwHMSWGhNMyDIr+mDNHCAmJgavom27MtNcyyKiNqMjUiRKnGCKBBOOGyINFC7BilFHSNIwOPL5WROwFuxlAxM6cQxNZghCbgOcPFOc9yAA3Kkpai/FGlIo8y+CziAgmkZnlE9mZOIp7ys5XyplFzOWGK/j0AJWPiAMEAABPiAo3MCBwBQE93NiFoXtwyfidDEo4SAhnAAJUI5V2qQRzBFk2whwETJWBK8M4OD1vxQEP0AghSALDTR3CwCQlEIFLmIApUKYSCPnKqAjmwIr7s2iLm+DAiGD3iE0lyTDB09+boYDt0vMwBRHGMEyEPS/9x0g745FbZkEN5wC2Hwg6w7GPPCigHgiJtEiUd4hJ3SsdJ0MeZ8pyVcn8syAzMQUgSgBQXIPzaVyCw4iMtAClS5GrhQDkagUjylinKRAPSoI5RgzTAwgwUoSflsL4DU0G5DCajcrw+VAbSB1Eg1R1egVFZ5pEt1S4qwrhf9AxbwnXhpEpAwztX8ABBFgAWgwEINtYJETdiiwAZQ1DAIABSghQAwgBKt1XMsAmVElmJLESpJjinYxBe1jKtKMH3LiDlgVDOIyhViTgsd1OUk06Pr0EVVVEi4P1rl1rSMLqAk0IVJjnCsgNgoiIPIig5omf34gyoRgARAAGtFAWXVgv8cRbr5LE3AWz/mjM4GCANGzRQCiEh/vUVdayZieyR/O9DLdAKRIUYIQFgHPRgYzQDmCABayFmKnc6LbaH47NHA+zY3aQDpBFEayFnpONKSBZXdQVkCXVmVmCiKyIA/OBiCQEZWOhixuAAD8IMMwJCcDVsEeFeTvMZvK80GqUbAE0gvJdozRYBrzVlFVNql1T9KZQFR9DffVNH2iYRK2MELQIPLQcZ69B4/wBCc1VlsHds5KM167VgWysP3QomipQEQxdkOodu6lTyIAo8oWBfwAY6HdQJGyDqYVQWx2IBFQAPWvQAA8KfEFVtagIRTfdy/jFcV0oKZ6osVssMPONP/D63WRs3Wft3cnUi+n3SuJvMcplgFIXSJHSQIY1SFRVBAITmAK6gABQhbpIUEWrBcsnXcn61K4hBI2KLDt4WESkEASMAJ43WMMgBYR3KkBGEK61KASlDAC1gE6l1dn4sJEdjesDUFFAgASIAEikWAknRcvoyliSk6NxEAQ5TOUjWDBBBSMSje943fZnpatpyZ8ijXSHCACzgtVQCCJFiE1VVhGIUO7o1btJEBSFDUBc7YqmQ/vbjQY81XC47YMPBezX3fQAAC/mikRyJQ3tiaRHGCAwDcC/gTFfa56z2MnDUFWrDi7kVTwnRJvnRJF5m9fyQ9ouWtBbhgBKABGiBe/yHuCSAgA8tQCs85oTNahSZeJQhAgyhmXYEoAKISA1PA4ioOW0gYWzOYA1hAj3s11D7Q3fRwk+hcAEVdVPaFBBqQAQMQuTXWiQtw4+VyUkCwhDI6D997tpjlXykmiAKgDj/+42slYCxGARQo1S2eT9OEFD2cz0ceZAQQUhmQAVPQ4M11A05GlopKgxD6HmMFhCioYxP+E9aty1SOgz/+40CmBVi25l1+V72cz7eLKS2YxvlsgAQ4YPZFAculBQJwhEzWCVXg5PGIsAwgjB3EgbwzzjolOGKkSzxGxmieZkDW2WtFgUEuVaKl5Tu8mN3F0OiEHwPeZRClBQNAwUxu2v8/CMCvDYa2KQIfwEe6AARL076YheINYF3WLQBO8edrDmiAnmFtPgOYdOQPUIA1WDGQMFuusUNYcMZSTVYaaF9gXlpvBYAleKZVWAPJMoGbwYBrqyEnYMwSTqdjFNyBMGlppua4DWgUkAFakIFrJWSi9Ys5iASE8MdGhq3WE4C3TVb2DYCfLtk2Roj7SQonsCTf6QB2sl/GFJInnl6xQAM3NAADoGaAjlvuZWkc40r8jIUKEIEjVNtoleB2E9KeXmsCkGghdgQ3jgNhU5d1sYT7Mc72zGvt418oJmkKIIDD+GeVLuwDBtkwIEwtGGPMEoA327bra5JpleRBvpJLXuf/MkCwOPADoIzjFj2PPkMDmMDjPB4I5AZsLCZgax7gK85qit3XAHjXMyDaO0QJH4UnOsztHzbgQS7LdUYuAIiDmIEIlf2c8hCGP0Cn5M5jgdBfAqgJK4buarZiWIZlGjBnXT7VfjQ1wXMWOvzdRUWbA87ZIK5b844DCQjYOKUQjQSE9xaSO6Ze5vY5NHAAA5iJK+Zea97vEDdnc6YFEF2AU31pNFw//BzMSCbnRoXoyBNiINiD82YLAqXfthSGwtDr6WXu+U6rmgjbGI5urLZmNE7ysU3xiIGD2pOYvrhDog1SMzjgQd7XCsDk93UEGzcACcDKI7bMJK6hwiiIJ+4y/wyvXus9CA/H1sQ9WkrmamvWamxe8gYw5Cx9u5ecA2oV0jhHAMBa8JKtApIzgIRANLWLU0PJiDLXPrrrXxVWwLQggAcQg5y1bgOW4Tiv5Jw92tm18/HbGofb8/2y8jO2XEgAOSBYYyJYBDKINkKrnTgWV4rocUfvMkegXuol3E57gJrwmIZGU6PlajrHWV3GsfFr3HlyKSA1cPaVAaPldANwzDVOAjLw9cUOBmEjTwkHjCYuCNlwBHEHAnJHXevdvg63FLVO1kFGYzkX2xkmzFc7QpciUxf/4VOv5AB4iUx+60hQiGqa9YWhY+2DCVVwhDJwBHLPdcwZCKSKhNhpaM5dXvdrBmjLDVHegkp4janygYPdyhLxrmQZDgBB99c2foB/B7akwAjeSBGCT74C6LKEF3dHSKXBRUbDuBYEiIV1h9tkDeSAHuRIBnDuhphSNINgRwAZ0HcD0J/3XYRPRBf6bXlu/3bsPPiyEPeEd2ZkvEcN+dCJR2OeJuy4XfoDPuxa3gs1EEydSmulP1o1FmJX74+jgCxAkr7lcAIfumOYAIIyqIIqKAvbKAO6rEsO7/ABfm5A9mfGz1kZINs73O5D/KtMue8r3pTuBJGAAAAh+QQJCACKACwqAAgAhAC6AAAI/wAVCRxIsKDBgwgTKlx4K1CgJk1uLZxIsaLFixgzIgxEp6NHOg4dahxJsqRJik0CyUIya5YsWbPouByDBIksh7hO6tzJU2FDmTKR5Bg6JgefHTtq1CAK41TPp1BL4gpkxCWSMXz4DDWaNIjXGkh38HgVtazZhYFgGM2aFWmOojmQ1pgwIUiPu3cZ5DzLly8urEqDcPmqNGxSpTV6JOYRgoctG30jR1VpVCkXD4MFcxmcWPHcIDU4cAgRwkUEyah1Npwl1KjmzZc9fO3x+uvoEwxYpd49sonLoTuCeBg+PHbmusQxcwk92hfv5xVTGmnNp0bs5MlhE4fNocdoRHKgi/9HiCvo1q7Yh2PYnt3DhLuiOUAZT59gIKtX41pPjx325glcTICYaBrUV18TdKy01VH78ZddgHRFKGBoBRo43n2snVeDVwBeV5xy/0Eo4XsnlGCheDLJshVXopEmmndzxXdCCDOK5sOIE3CQyonQcfQSXGMccUQXXbjgAiqojMCACio8MUIqJVhgQSpJanCChBzAwONzdNQE11VGugCDBb6UWaaUdeCRCAgg4IFHBBH4gsqVdHFg4pa7zbLiEUoYaYstY5YZJ5wRuGnooRFYwIBiOd6JJ2p6HjWWLWEeCUOZXxBa6Cl4cMpmm3jISacPj+YZVw8aMPCnC3+iIqWgmsL/aeinbVqgAgcTnFBqaliJpcEIf64KaKCEukkorWyG+sQJHJS4q2RxiZVCkX9SC8O1ZMKqKR60hjoCsz7Y8WxfXxzVQwipUlrptYFmGmsEyILgCxQhiCbEuHx9cWoIKgC7qp+2vBrBKbHG2yYUt54gLr5mWcDDDuc+QYItr7zCAAMVT0xssdwi+6YdKpywwsIMR/VFCnehi3EK9cY3GgOu+hInmYW2may39Y5cclmBHDFaqgywPKOLLapKJgxIopIKzcZaQAKzKuxcFi5dpJDCkipcjTEqiCQZdAivoOKLBbYwQBq6I0AhJdmijSB1WZROmyoJGYudaNlXowKn0wwA/83ACE9aMGfUb0cFgwsMuPAKCSRc3HfaKqSa6qVvkm3BF5WnsvQIIThaOE9yfGGEn6+M8IoGNJ4NdNgyJ8p4KppGmfbnTzn0hUcwLE4pAyTAQLHjrO+Nyt9pW1BHBHWMQDLtJ2EYk0NGUGyL0lKiUjEDXQQPp5lkdhyBHTMwrxMrRsg0S0hGHD69q6gwbvHidhtb7Kd12AGZ+CbhcntLIKXfJ6tIch/GKnYpX3BLft0qQR3wd5JTtCQmonOBEpRQpIpZEGPZo1mh3OSxmZ2GgSQBgUeMEEEiZc+CKEzcpWTFwU8Z601OAeFI9Ge+L3zBSCesmAvoZrYe8OAIrGJasv9AJSjdyHAkp6BDVYyQPiO9goJOPJ3VLtYFmJXJUJoqEwiOSBIrjI1dh3MBkRS3OMYxzlUR+ELrsCioMhmRixqpQxjHZAv3iVF3SGIaB98kP1jBsSRJVOIXUPGvHE6PTJm62bvgtMU/luQW8mofpYg0QBLETGZvYuG2GulIksjBBoKr4yu6cASrac2Sl2ydpmZQh/t1ciRyYEUJ2qfDKmrtYq8Y1to2+cr8sQIRojQhDsX0Kl+ocWyqTEQvTSIHEFhgBO5D4Z/GJLA2xel4M3DlMjXCplPQEoVlpKa26lAH4ylzmyQBZZmsZ8FpitOYapyZBUqgTXRixAapABTF6Eb/Aj8Vk1Ayq0MJSjADK9hzJPiMpgVZ1TspAVSNxlPgQUcCglTQrYrAs2CgzARRmk1UI4mAAg8dR9KKIUmca2vlRzNiA2g27mJTJOkRXiEmGCBiaeSs50onEtJvwpQxM2LM1bpwSF+Q8407nYgcIjBJE5IyBTyIago0YC2BRSA8SZ1ILVjB1ByOkkgWmx41raompGb1ILWwAiu+QDEUmrChxdRWoVhRi7Oi1QpWmArZbOFUsOZyo4nSFrd6YdeCfJIVctDf4cCJQlSs0Eyq5JYNevGCGxRWEXKQQh3kkNhQ7tBPZAzb2pA5v0QkohdlcEMedsoKVpiWnKzkrBzqsKY2/yViBjMoATQxFrC1ZYtQFkjEIVRRgA2s1p6nIOdAU2GH5qaiDrjABQiEMAMp2EAK2L1uC0y3ON9mS2YWsJ8NkpALE2yACtsEQR2g8IQntKIVpFHBdn3B2RnYQQcbyO8GVFGGDbRCBYwb62/hNAJ66mEPuQAABihwXDjaoE0lQBizJOSDFTwBCqdI7AxckQVV5JcCFPBwFgB8SN+aKUmJuIMeYpBgAADAAcYF4VZZIdBUQAG+PuBCBzAwAROYoAMVVsFVP+mKFexXEILQbysk5lgBjy1JM+jFHYhABjK42MUYwMEKXME8zqoXEXZY1o12jAEM+NjFJggyHnDh2izoN//JguBvCyRW4lfxLRWTvUMVyNBiADzgymkewvLw9UnkWYC99eKCCcqMgQNI4AAHGMABMNCBFaggw6yYgZv1u18dUGEG/srj2k73hDpI+QdJsDIADMDqVhvgxRTIQoNLFctECBQKnMOVohk9gF4PQAK/fnQHTnCCU7BZ05yOs6dBnTQw9k0DJTjEHVS8B1U/wNVxyDarAaDlWVsolnioQyrmHDJcdWDRjga2r9fdaxOMJhCssAEVNp3fOA9iCHlIm1h9FzRo20AP0yYCi/3M6mzHQQwGjwOkAWCCLb/AQlKYQSpGAN8V+MAH58YAABzN7o7/2gQTgAIuPolsTm9gEHn/mAEUCImk04WAAfT8wbTvkGo/X7vgClDAwRGugCUc4NUmgMAGmKDT3QghZDeawLlN4GJIe9zjEgDABKAb7xkYOdk6GIJ9Cck4oJVACjKf9g+AYO1Wx4EXOkd7whW+cBPE2tuocUURMJ7xjUP67utOAxvSoHc2sBsAJwgEmxORh6uDGA2CGMQLts64i5GglWGfOdldfG1tG1wBvMg8L3j+h0cfgOFt2MC9dgMEH5f57nf/Q+fZzXc2uN71b/g1AFYQbxvMQAibpgAa0HDyxbfAjMqTAsBnPvM9E9zyYuD5EiqAedX/oQISUD0vII2BNpRhN25YtN1R73wJqNvXaWAB/+z3LunZBwIPVKCCEPSrezSo4t5CcBKwCDp84t/hB6pIsKsLnu0KPN/5S/AHASh9SzB9DDd0qAEBGrd9B/AHkNZ538cCLNBraTAAb3CBA+B3gBcBM5B+6/dhuvd+QxB/TzIDehB59gcGMUBw+2dw0PcHIiACned8mpd2PvdiMcYXZeAAjYZ6bOd8HCcCV8ACQyiBbHCBaRB7B7ACHIhdH7gBFLABiHdveUBdiXCC9jdzegAEBLBq2JZtCuB83ScCFVABAch8zMcLZxcHLoYDg4BeZfECG+AATYd6kPZovQZsUSCEEhh+LJCEepcGB+ADUNACQtACKgCCaEABccYEN/9ABcKHgsT3A1Wgfy14ds5XhiKQhzQYhn+AdgiXbdRHATpQFkPgA+hmh6rnfevWhxOYhEf4BhWohFg2ARdHARBwARcAAYhXBi8AiZGYhXpmZQX3hbwAg2RYATEYg5ooAcf4fMyXbWJQAbzwagXABFGhA6jIgA0Igb92BXx4BUOYhBe4CheIhHw3ABiwAkamColXBkzwi/E4BDcgBcI4ZcS4fwV3jDHoB8oogzKIjP6XibxQAQgXigZAABcQFRuAAz3Ifci4jFfQa0R4BVHwBua4ChrJAm/wh3x3ACAWhbwXZ2VQBoNQkvEIBpK4hfoXBwbgkgZwAAeneiKwh/8ohDT/KYR7uIzSF4piwGoFABVZgIo9+GhiKAGb6H1/AI7ex5HmiJEXeJFOsIeq52IOAAEQ4AAFUACJRwFbiQM4AAE6oJJiBwY76IUv6ZJqSZN8B44xeAUCiIxpIIQxqHoJh3CvhgZPkQU4wHROF32PFn1/4Gvi6JYs4ASrcISHaQga+QZREAV+4IBWKXSDkHjxyARlIAhZ6XZVcAM3UAVz6IVquYYHpwCaKI5RMJFk+Ik3SYYikHkHZ3CvBgAL2RNFsGN452ve15QDUJG9JgJzOYR76AeI+ZiPWQEHAAGDMAg6wATxSARlEAMQIAjw6JwmOQhAsAEFAAAOmJaYqIbJFwCm/3kFfpABqSmDaPeM4LgESKmGLll5cfBnBQAEtrlou5mH6eZrLCCEHTmRVzCXIuAHfhAFTuAEFyiBj1YAzVmdmElcXfhi01kGQ5B+VFAGFICWcYB5sFmaFeAH4miecyl9BQl9v/aJamgAD3Bz20YAg9ATOrBoGPB9wSYBfvCH/dmReygBqGmRGYCY5/gG4PhiBUABzFkFZVAFL/ACZUBcDkAAWkmkTDAEqkAAZicGmAeGYlAICVCGCSCgySiin2eVdGh2ppCiKZoLgtATWeCX6jaBdVmTFimBjmmRQGqcBEqg58gCj+mACgmPRKCkjohdUgAGVaAKWXllG2cAaGeaZf9YkFraoQLqj2ZYAQkggy5ZfWDpA25QBE0KANrGan9WmzoxAxvAdOD3m0gZfRz5BmwggY/pBH+opwXqBICgkY/pjw4wCPF4A0TgmYKglRegq8AIBi+gA9vpeYs6ogVpmpEqqVwqjtTIcDhwcVuWBUM5ptmWogAAATvhCj7QBo1GkXu3dywgmEPomHZqjhI4BQSqkbYaBWugAA7gi8RKBL0KBGhQAHT4YsE6BGAABkMwCF2oqApQCH5Ql2VIqVyaAFqaAF1aAeB4AGlmaa1giC3QCivQBg+KogTArTqBiripbkkogb8Wg4+5BsbZo+c4lQQKCLW6ChmwBn6QAAlZAIr/16uf+a/Fmq9XdpUUcAEbt6jKOJwzy6UKkACx4AdrILOSegUHUGnt1QLN1VyuIHc8uG0eaxIbcG59yXG92ZEXCI5LmQFkmwHlaZ4FqpFOYAiAUJxRYLb+mJCC8AL2egOq0JxggF3EOggXQIeRNgCZFwBairKQmQAB4LAMGwBJS7YzO7gS0HDtJQTNNVB2IARF1gZXFpQn0Zcm4JB/+7XnCI4WWaAxS7hRMAWI6a612rZOgLpRYADUKY838AIQQAAEUABoQK/Y9QKDsJ0/95KH66Ux2KWImwBrULZm67B+8LgW1gJS21y4VbktsAIOCQB7oBMOaWb5Cbphq5NRYAiG/2CeZPsGrbu67sq2q2CcAKAKEyoFkPgCQCAIBfCgWrkBzYmZ2wmKAdChItCl/rilDJsAZFuga8Cwa+C0ldYKzmUHJcDAUzu9TBcDJ5EFuPm5AxB+P5qar1qrTpABc4CY5euyU+CyL1urUVABHVsGwncIVFAFYDC7mXmoCuYAdLh5ChC8kDmzxFvAh5sBq9C2BRwLc5ABB+AAK/C8A9XADJzErcB0FHASpWrBvsYGGhmLeqqRJjyrIWwIU8CYIuyyq+AEIpCQgwAGeqAHL3C38QiJVKCkaECHOppz4tml5Cmg/pu0SUugiGm2x+sEB6BlSKzEuYVTUNBjRbC5JhBpfP+XjnqHkVVcjj/srmE8BSO8CobgBFgACFOwCpn8w1FwABfgi+4rBUOwgrAmrIPKBL37klbKpf+rpZG6tMQJxmQrAAKQAQBQYa5QuQ2cWwOFJqlwAh1wyCUhBG2QyBdMsr0Zi+bYqgRqCFiwyRrJxZ2syVhwzdi8yZ+MBkOQpL9YBSDWqVZ5Ae8Xnawmx0wboEprnif7thlAyXMwB4CABQOQZoY4uQSFW7klUHawAuZlEm7QAQAgshS4qk8JyT9Mwq1boF7sstjs0BopAgBQXO6opKrQxgGbr10Ypu55tP5rx8b7qsa5ttdsy5k8AFAruZMLPgRVB7nVzzBmEi8aoxf/zKqw58iNidPWXKtc3KNsO88i/NNtGwV8ipWDgIu6+ovpF7B9awDMl3zMOqBw+7ZRqccZAM3ge9IdwAFP0ALMNbX6HL1CsAIO4AYAzXTA1sg3nboZCcbzjAWWTMkCQM0PPc8jXKtX4ABxpp0QYHenvMYvwAQbAACBe7QCapxSPZU+vbZAjQVwAAgozQEqAAVTy1y45dIN/ASoqAomUQSJLAHkmJgI7darK9RcLAAfjM3ZTMkuawgiUAATOgRRKIXz69cOcAH7dQEHILSRerIya7buPAcCQMJvjQVpgAE+EAIXpjn47MupoAI9lgVnDQAWiNNYHMlYXM2Z3LoCQMl3/33Ndg3eeD3RJ8eIOpCkDXqo+Wm2N1ywiPsBkEmgAnq8azAHqg0HcIAFujCIJ/ArlL3SDZwKrSDM/1wS2Ufdqru65pvQ0TwF14zf+c3a1+zgqh3NJuwHn3eVG0CZgP0CVSC/A02GxVu8KKu0KLu0HjzhEJ7fEpAjLwcF/73EzHUrPrYBWmuqrJrQJPwGbk3h2JzfEx7kFe7j7LqtHzbYYeoARIqkQ6DKDkCwgnu4YYC0c3CnjzkF3S0AQA4Hu7AL+V3PPjAjaQMFmlPmLRACOwYALUoSVHDMA52EOp7JCo7F8wzhqk3Cd+7gWV7kZTwEG4BkXlmHEApinirHOeewsf8QC8drnia+BhQOC1jQ5V6u3yD3M39D5pqDMBzAdBNNEonQAuDKcRhJ3MRN5+GN319MwpQ84YAgAHB9yQdQAO+HBvc2u1UwCDz7t3zHfDd8uEjrB4r+AXMws0qb1Y7N5ZMOCG8Acsk9VWnD3JyT5p0+EnngCpj75leQ4JoM0Q6NBa6O39gsyXfu7bbc3Xs40bgdYvf7AkNgkhTgAJHGfAFwuIkO7H7wAXkss2sAvhSO7JPuBLk8GlO13Db2BJueuQglBK2AuZGmo3H+4I/9w9ls595t4V+MzbDQ3U5wBdv6sxfas+ZtnX2Ndoir6EobC7++6OX51v7eB/mNyz4g8Kn/MuYjAN0LaABZixF50ApZgLm7mQYS7+ArDt6ZPAVDL8JBruB1LcbXqANxpgq5Xn4+C+8FWbz+qMNdirJDPNcPvguE4OVwMAUwL/OqAuO2gOYa93NPnBE7z444sHHedwWjXucUH810feyt7uOs/uCZbAhzCQCMSKQvIAVKKr9wzHe68AZYj7RIu7SOb+JzgOVd7/L4Hb65PCMDT/MrINCJuvYYofBuD/f/yeMsj99e7uP5nfp2Lue/ZocMd2aQdtv5VZIl2e74dayLHwZTbuKMruj7Hs1d//WnD/A5gvmAA+PLkvYuqbkXQQXvhbETAPdwXqvRDOG7kMnYf9/gjgVv/1DEFfZfKsCOKhACK3AlP4aVQNuzOKDu/UXYC/sBVu+/CfABV/3TkS7p1x++B5AjAg8QKkZAgdIiBIYDBwwA2KDI4UOIER1K0dHK4ooOACQMWNWxIyAsIeHA2QUHC6CRKeGoUQPoDQAcK54QhDJixBOcI0Kc8LFiAwVBg9A40DhgwAEARCVIEJEg1geoftasSVA11lMBAgBtHbmr5MiTAzr04MAhhIYRqaCo7YBBAlIKEuU+lOJqwwofPjocGJBm1VbAWFJ+NQlSJUs4bw7EfDIQ1U3IjTXsDPFT1QsqTMoIokD0AAtAq6748QN1ztQMUTJUTRDmwxxDgHf1mV0yJP+gNB0mcOhxQsNMKL6g4OArIWmZuXJdtelgAgBfo3+3hhTZ1WtKwSNZqoFzwEFPgTZvTj4bIkRZDid+Xgiqo4zmzRA0NrX6YY1U+7H8XI2VAWR1r/oAKzQMJqihhx5CCK8EO3zAwCikLkguIlfaejCNNEL7jzrqBiPMJBBZwuINE3paIbwRVNgJPQ5qmIALLiagQL7nADDBAQgo+MmBAypIIIAAEngtgzXsu88Pp/zrkCSVqBugQAPNUmFKKCbgK40BJChgwocqxOBBXQD7aMPsSPpqySZfwuGus9K6iQHyTuDgRQw68EFHVTYo4LmNspTgjTeuIJK/DzKY41AikUz/IIMlr2sSjlUOMMGDCXZb8YQOJJAuDQBU4VIRHJrDAIBRr/QLMMNUKmwK7EzCIlIHiljBNwZQScWCmm6a0jwOmsOBAlWGoOIFJgaZkSgRpnAigwyeCiOMQwWAitkoqlpjjikEu+7DKbh740sPYvRhgg7KlWC6VSRAg8si8uoAB3hNOOCtUnWR7r//4MhAhCiccCLbkziFYIUVQkjhiFdssYUEEuBUkde2cMgRgg1Uce+9MgaRTwTSniry0EPXEIBZqeYQQCSvHFWpJCy/NEHULwfYcIAtJ5Q11FH7TMoEhNIwJAMnVjk1pCmSckCpN0KToMRZDQ6BAQZI0Iky83j6/1LiAuZ9K6lfL5AvjWUzgCorAWAhG4spDBEg25Vno20XNVLe5dVVnvzy7r5QwkIXAAZJLgs3fHiuL6OWLuqoeQF4ThcnHaDAB3kHeGMVxewk+ASDX5H6iZ1OwPy8thbLsYCjn7uCBRb6BWyKsqdg/WRYOOTQTO2sm42Qt217w24TeO6rsAMESW4IN5yTAEOjYs4Spt6dk3yVsF52q6/YIu2grII1YMAWKGwZQQMNdt2JC4Q60HGDQXTQQSjSAfAZJAHgIPtksGT30Do4+tCfkC22wF3/XQDiSb1THkje8Ie4zKUKnjGK5CSVEJj4AGfHk05IJFWUMVkvPebRgAsUtv+whoFPBZMhnwQkBgEC4Ah9ZWDhBhzwB0OIhDpZgUXsZueh2gCQEPzzghd2+DYspMFlyrPXKpKig+Q4Bzp9edm73FUUDEEPJKvAQOSmc5JI4WCDKUgB1KAWQvOYZwIPkgCO5FMcxeGIKBnKzpK4Y5symSlAbutD/3rYv//RRoB4M0oRveMA4cmlCNOT3NJ0EyoA9DFM9wriqKIDkike4Hrp+Zz2JiMn9IzxQQPA0YzapxEW/KU6IDIJYuKmqriVJGX6218PvYDH/vmvDwJsIJbe4Jc/8AgACYyIEJSYBl0cACHzMkqGxBQYpFAQklvRoOfM08WGQS0F2jsPmDgJAQj/HA1PaMjmAdJQnZAQBhbbSQlLahMg2sSNhz3cIf/8h7tXAdMjzBIBAQDwhz8UwG8QEQIDj1JLDCXtLx7ZygCeA7YNhcaI13PmWaJGAs29QqIa4MCDdqfGChhnTeobxAXclypSrgQxqjLT/ggBt9lswZV2JMQr+0cbsBRmFSIAAC94UYglOGCfE6EAQmpZTL9IpyNvcMJWkPI86gCmcrupJNS60IVXgG8nHuCLAB13rBoZ7YXQi2M5WSIguHGnpLRhJe5cudJYvtN/cMTNFXhRATEU4goDgABEpDCINvCpgYRLA6BCM7lVGMIJVQ3TSTQUGknuhkUh4AEXT+AiD3yp/7Bl1JEgNtBNyTmBSStZmaquowYBjYSst6NNS1d6R/61c4e2Cc0VfFQIMQSJprxUxAsooLglYglDWBJaXydnlKRdkW4ClGSMDkQW3gQhsptEiVewIIICZFNxacQB6XiRgfhxR6ycJalIVek2t7kTrWmNJe4I4aqfJaAQAVCAAthrnJ3aYJB6xRJAWaBbFjjhDWwY00kMKzRhYsC4NajBcgfAuJSe1CRXUOMf+mrQAlj2hTEk50hVIqCRojS8rVzpDtXqQx+yFhAZ8IOP1BukCuSSCQ9RBc/6tFfkEY4FuxtqcJPqBEOsQhe6sJsHIntgLNTRh334H3cYDIELoOGyBf+wp+JEEMftcrckqVyJ3FgZoHW6sp27UC3u5gYIJ0ShxPepQCEKkeJdPkQHbXnxXmGchivwdqDMLGq+AlhfxnnYpXkMrQgckGRVDGIQedoTG0lJzsGsBIDmRClZiUxklZ71nVx2p//Qu6w1EOnMZ/6DASTkkCw4wKdudnMaZgxYoc3YoAfor0v4S2kevnO1jmLwBZisuBs17wBJK1OURQrA3OnPnGWN9EqF7OEtAHAkgPgZkZgVi0IoQAxiMEDNFDGENuSsgW2u5X0px6np3lZybHgD6vibPy6rlX/C1o4a/JzNCohgDWmr25e42t2vfDV3tbGO/oqN1kqXlzYh+dn/VaaSAAXANg4AWNdDejpqPw0An9yGkAlwcCPi9BXOkyPJSQNeRy9H+d0XuIAnicInVh1GO3Pzbh/iNlp0tvOsr3Tph3/45WUJyT5+WC+1rf0QUfNpKVrjdn0lhbMHDTTlKSGyO0+KzrCOJJclHwQLy6CDLBQBBwBg23a2A1NFO1rZL3+0eGfuv0jLeuAjXkN/iFQBBcQhF8iRiA+CnhC8L4XiBlUiR4SLMmS/8solCS0c3s3koxUAXg6Ql7bC6nXtgpY7AARvymQ+89Pe8Z0CwkLY1mCI9CrAAA2ZiyookO3p5n2J2y6mvVAVTkpDWvB05K7h1SiCKwSNcuFMp0gt/6xdYbNS+B7XM+Z7SGSaq3Str8q0AEC/GjE4wFMTEkLgeJZ3itdXQ6MML7JlOUdVvXtipLPnAUSg2XxHHvIuB+3w9yfLf8884HgkBBaZtRVmVcAAdf3UQ3zQBiVqsyrCgbzgi3trt7JbN/3BH5UooxwJNI76CfmAnpSpMPUbKcnTAkczr/iTtNR6qT4IicDKMZLhBQfoP+XYgAnQOgnKgi4xgY0QpexQpT7QQOHrLqnDkT1pHgLSCMFovwzbrDdaPzoiNkkrtqaTtQBaBedrO/0wgIZDQSnMAhgEMlKawdlov6/4kJFwQB7pq47QFhB5PAxbpTyKPHQyqeKTtFfyMP/VCkG1IRL1EgMCkEI7VARX8B2ugqRISYM0VDaSwgLKQjKvKZ2E+KbDQAy4uTLKE75HS0DlK7ZIdLrVwoKfmYo1KIQ4+Lk75BIqrCoyESCUyB/hsw1VwQJJmZHz2YAlIwq2KSdVuTJGY6X2a6f3M62aa8NK2yEsWpY58AMDCKRO/BQqBJMNISkaPJNREkTH0SXcSggJcII2OsX8UUCYuzI+k70ObENYOqmtwLHVqMNh7L8N4Blg+ruY6ixfM4ky8qi8GwB/iSEQEQyzgQXWyZ+XOilapDzRgjQhMz7NMy94mg4nUAD+G0cuoYDIGZPAcBUcPEXv6AyK0REIwIGjkQD/gAEEaYGK1wAtG/yhG4SUt7gCkmAlOzpCgVutwFiDB0DI/nOQPmLIDgEp2mmSKfCOCziao7HI3kmk/2CdWDADqGgALSjKptuf3CG4eGOV8Dq7tOqyAAqNDDCAGHDJT3GQjVgkVDGMUfI6VbnJP0skGBtFsJiCOQhKoYSF1HJEkFTGVxStk3TDllItrwiNNYiDqrRKLtkAnyKowECTdrMwk8DJJjuavYijkJiDD3iWBnDEsuIzwUwJWICDLKO/ZDMv20gDvNTLT1mBUTvHreTKMuFCCwpLERABpPAmuuEQATCZDyBKDdyu9hO2KDslOKihrOCyENsFs1kl9HoAYeTM/+Tgyz4BlFYTDOScQZICBO+QD3mUIUAAGJM4lNf0unFquSxMR5Ugm+rchTU4CgAwAAdIoQPIPQkggOAUzrngyyvhr62UnSsixSjLpQncwkdrkqz4AAHwSt/Tt3WUTKiAlrIRR7mAgPRUz/V0C9+6F0iSnQ45p5RoTgAwhClbxMKjx9Ysm5GooQboUK8Duw1VCbMRgCL5gFiALgR1Sc+8kslxPTJxUMqkzZFICvlwAq8Iwu08FFhogNscpw41gwaAhUUUp8kUUQEQkjCoihNM0XEcJIsCrMD4uw7ZMu4omrCMwytICNyTRpEQgAYomxoapx3t0AaAPMkM0slUgx1tzf8PMIMAMIUHiEImtcMiiJw0IDcGjdIlqaO1ggMr/RqkAIAUOhoRiCG0Ucw5YIkg7dA5aACouE4LG9MwHdONDABaAM457cRsAyrjFKoryhdS7NM/vSccITk0IDkDKCosUEyhbIAzCC2zQVQvvU3sYJ0vpaER1c9YQABTOMhMRcFs2whAQbXQRBP9ETyTSAqPAoALYMUNEARB8Cj/gIU5MIMFCIMFsDAwbc05KFLJrMdJ/dJDiYUwoIVc+FU73DrgyqD3vCF/wx0/BYACWNZmdVbOAIAr0MjFDAMEANKXK6cR7a4wRdMy7dA2LdcH+DR09UTiKCZU8dQXxQKvcLoQlFf/CFgIinHWn/goQ6hWBECABTCDMyC72FS5+qnHHqXWao2FAEABWtg/ulvYudgDHumLe5HJGyrJsuqDooku85vX8zlVAMiAS/zYAADZkRWpksXBkKAhNV1TMzADBKABGRADE4xZmY0ICPCpU1EoRmpQkcDGZMMCi8XXUnXWCzCAa2HZo6UFFOjXMlVD0owpGkLTrGiAkKUBvQ0AP+DErHWIvLoSiH09+3FMQhAAGv2MTrKsDfAo1WBbl/1YoTyD2Pyfx1OVESXTW8XbBfjYjw2DvvnbiMg26AjNY3xQUjQpnrXYzzABbIJWNLitN0ASWqhdWgCSBVgAD3U5mHo8cprM/zE9g82NWs+lgQWoANITXYfQAQKAjqEBDIccQxp8TLKNLl54CWx61th1H7izVFpAgACQARkA2TJ9oyKcst/FTc4l3o+VATOIBYN8AeVd3mGyWWYapftJXaSs3gKogJeIrvO5rQq4qdp1WfFFgQAA0t0VPirbLJNgndyNWgkmXjd1APmdXx2InOch3CkIrJCgPNJiJcQtgAL4g5foJFakAANoL9t1W5d9W7jd3XPiwvr50QmWXKFMgNDFYDuF0isyqOdgAYldpQ3r2ayJFBKmACUTYPfyXhR44u/92AUY2a9bwJdLGbCQltxtUzMIA6mN2gCAwvlVBB0giufp4OnADf8MoEgM+KYhHjz5SYoSNgToKgAlblwAgDsxMAW3pYEXpoGpRQAP1V8BeRtA7NDcDVlr7VypDQAxuIALFt0yaN4NFhOhsTiC2QuQAK/RGuECOJd3U7Lt/YNp42OXrV2qpQVABtKuYMTSepvb9FLdbQD2PVoEoAUxKACszVogyAXBZUjKkaRyeZA4Ai84MAR5/WRDuAICKAAl21he2GM+rl0+Fl+37dcPGKdV0gJ9c7mR0OJZ/tFbnlpLJYBdltleNoCNYKaOpY66WYowIQmy87JdcAIAgIASzopmDmAAiIM9pgVTOOXxrV0gweYgdZvY1EAslh/Nfc3OFV/wfVlBAAP/5QWC5t0Iv4iNFwVVUoRQOIgCAsBnCRAseW1WNBgKA4iDaXZbWpCBFlZluM1WVoKD04ifr5jU/HzNNgWSMAhjCIjkrHWDmn0ejV6mnHVgsPhfCIAhFtjnDTjpAjAAA+DjaQZk8bVmFLhq3Q2rDEAKXsiOrJCfNT0UcY5oUyiAFRPdPfDlYsovGZydrmLA/92q/00yqO5nU8hrPkYAKHbhJ35bf2WJkGGU/EkJMn0NLw3SD0AAflWAXNipoB7qW/KIt07HDyGM/+1f/SrVkz5VApjqvC7gU/5rFNBbQCZKbzYJIV1ozd3iDt3Vj31ZNADqhd0AMjCVU/PhrlpoleAU/9KpAD9g5hyxrGiNapUWg5dO7ice3ykWq8mUmw1N7JCNYJa96v1La14mA40wNdWYM5rEwcx0ABL+gys4MqCwLDRgMgOYNlV+6VRe6dsl3zOoIfDbUEftXCm+1vY9a+yW2TKIAWIagBmbM/+ixnJyOSxgZhJWgCioABJGA9jlpqieNhmggfhOboBGZUBu7sl0NO4wG87tXEZuX1owZ9FlghgYnAWtIPztCtHit8NbgjXIp5KDVkE4aRRa75Z+Yks95dpF7gKWXDIt0iwsCWlhX8ZOgPaVAQMAAuWNAQP4g+e5l9jQThdXmQRv5gLghTQ4ADt+VkFQhc7ek/Uu7fCtcJ6qFV9LlQGX1dt+jdovJby38dLFBmTGPlozsHAD2IMn72cJKKLACprZ4W3epk8HOJ57rixVQO/YdYCUtt3SNu2PLe0+jtw3H+Sv2gVZxu+o5Ve+Bui8/Nu1NoB5wb0KuAIRABvQUxuyYZ0RJZs58PJsInUCwJMyAIJBgFZWJJ0HCG2qhm+97nW9JmhrLRtjnwp+beE3peoHKIAq+JSAAAAh+QQJCACmACwsAAsAfAC3AAAI/wBNCRxIsKDBgwgTKhwYiFKgJhAXSpxIsaLFixiNGBHFsSNHjRhDihxJUmETUZ+M0DHy6SOSUDlyjEHy6VPJmzhzIhRFpyeSmKHG5ODDp4bRHURzHNHJtCnGJpTo1PyZdKjRIFiDHK3Bg4HTr2APGvkZkyifUC9z7DA6oa0nTz16cOBwKULYu06NDF2rtcaOv4DX1mjbo8bcuTxSwMCEt/FNI0JrBOHigctkLpiDTIg7uO2Etxx48DhxybFpkZQ+oc1RAzNmD7C5fG5LubLsCRxOcNDw5bRvinJSw9xRG7bxyp6Le+jgae4JHrx/Sz8IEaXQHUGMYzhu3LJyD7gRc//wOr28qeBShaptzd3DdtiTjXeo/Lb5aA0lzE+POhYm6+ztvWdbbBPc5llzJ7Sg329y8PRJWv8pJ6BtnlVooWFPLOjbSVL5xwd2rnGHmYWeWFhhDytoeFogDnq4A2c1yMVBfQiuoMKNGmgQgm4WpqiiY1BJRZZSKRzBAAMjXDLCCDkiiYgFX3wRQSlRWjDCCSW25eOPeHH4oExKuCCmCzBAWeWTEUSAR5qlrKnmF09w4NmWXIYlXEw5hCnmJZeYGWUEUoIwSR11pInHoWtCEUKWdNb5FSVC8dEVn2P26WeUXxSappp4gIBoCU+coKWjd1GCxIc8qMDnqpeUiSmmhAL/GgEItHoKqKJynkBqWKXslcITLUDBqquvEoporbR2GoEkO+K2K1hKAJYqFMIOa4GfsgaKrK2IaIBlo8/mxMBfPUzK6qrEYmrotrRGgEionugablMu8LADB7/ySUIXXfAJxbVSAqpup9viYYEKup2Qx7xMwZBCuU1esi8JJPiLSMACf3Eou19Y4C0H4DJcEgPlHnmkBqKdcEIImzDQZ5VQqllwBAfPFbLII0GB78k8HDbjXCm4jAgiwlLcxdBQEloHIipw4EMWOOsExZEuMBCCBiloYHKOiTEAxRdEY32f14jMUAKoJ6wgRNQ51QFD1Socye/LiFxyRNBf12HBJXJf/0IttZKU0MIJa7ONEyYWdAFFkhNfMjSTKaSwCSJq0iysBZWDPXQLISRiOE5yfMFqF1aHEMIKNjZ5cacljOCyBSUQWoLZwH5+kxyTUELJF9UyoIEKTzyhdcSYr4nICE8AL0mmdYBqh+0j2TClEQ7t7sKq1JJgMgP9RlkHHnVU+X2tdYwgCfQiBbKSEQ8FYgQM2EvcBQlLknAxpxsX/IUkktSBPkZTWkkpAhEIGLztei7jFwO0xwAYBOxYyFrTF0qAh978zyJ40MgnvhCIUhzQBUrgngKPRAJX4W9bm9rUBS0ivZ4M0IOX4Be/KNa4lxkqf+0SWMxWaJEIaMQIU4LBvv9kSEPtJaYLMEDTDZMVgfBBCQQ8rAgmSqGRUlACfkOcm/ZSAJ1NxPASmEKUmpQWJShGkSJ4MKARqKgvIu6LhA5U1xjTREaNnbEiNkBEF9ZYComtKoutMtPGEHWoJioNBDa4Y0Xcxj4Y/lF+rQpjrdy0pkIRyoyKlCImArG3VcltfnGU0poKaShDYjKTeARB3fjUhSaZjE+hzBT+6pAIOaASIzZIxCoZGLnIHeEIYQLjte6Xphkk8pYXyaUkKDYmGfbLgHI0kyGRiUtVXmJMIIRlmWImxj/RkprJBEEdYtgFMc2vYn4DWAoxlR9wshAPpUCEC/glJnT+C2BfKAWVojT/O3daJBElABQ5GXC9QErzVfz0nD8pkghJUEtigIzkn15Vggn6b6ES0YQNWrA9uXGvYuni59n6idGFWMEGUNBejrTmOwYo4ZnEGtrFCFVSk9oAoq3EWtY0sImWETSJMoVSCRRaU4RoNKWkOxIXRcPUoNlPEojoXxOJWtSCaMIKIJAYA4x0sqVCR3FRnUH4DEXVqg7kqnjI4vaw5jIoIGJ2SvuemmZgBbMWxApy2OfoTuY1t8JVU2lKhDHralcrGHaTTShFHRCZyzrMYAZQvZj3NnUoxybCBoowqxUuKwdMcBAKdqCCaKVAWinYQRIAw1wK02SHRBzCEYsoai5LIAc5/0TArUJgwiAEwVs0lGEQWWjBk/C5KULZAQSHAEIMNrBQgDq2BIjAhG2fIAkhZIG3G0ADBXibhREgLWYprK4N9CAIMhCgCC9A5mNL4NBgQQEGtU3EE+xg3Q0Iwr6C2G3wHHot8KapBZIY7yLIAAACNIIJinSsEFoQPNStIATUra0NskDfDbgBv/nVQR5aYIHh/ilNx6OrHi5AYAAAwAEbKNz/MJEIO7QAdT6IcQc64IMTqAAKEs7DhlewgR7zdhBMsIEQhovPjpnPBnfQQwxKbGIAmMAHKlAx22ywtCesoEQz7oAJMGACGq8Ax3KwghRmkIUL+3gQQB4FalNrJhI8Yf8Gh+AEGGJAABMb4M4GcHIjfFCGqAlWElaWUwcwAAAuH+AATsZBgmprhR/oQQhm5m1+y5CHJ1Crv9cawSaEcIgfcIIIZCDwAx5ggDgYIBKIxgAOiqDhZ8lBsEKw8gRmjAEMSEACADjAABANgA5MgAFNCDMn9FAGHmNYEJQOFpGtpIER1CHOnHBEiUdN6jjEAdWH1nMWZsAlKtcB0CvA0qBrLYEBmPvcEji0r0eACRscIsllKEKP5z2IZFcLBlMLQQvgzIlhX8DE1Kb2tf/whzhk2wQ4yALUzMPiOtgBCrKesQlyfe6Km1sCfzhAly+BCSm8+wZl6DEF0ICG/DJhw3//014IVDADPXhaznQGQMAfYO1rRyIS1r5zoU1QBDdIR5ySYPAKfDDrcee63AO4wrnTMAAWXLzXXwCBxw/xgkHMm+QbAPILWsA4BmxivuPtN8xFLfCa4xznNTc4ohG+gYU1ZgYuVsHQG4EDLU/80HhfOtPfwHemI9oHaiKtHl4gCHmP/AKTHgWDmaS1Erhc7MPeA9lHfedrW/vmphaDGGp+aAw4gAKDuIt1w130LZsY74f+A9It3vddA0AFgeg4aQm/AQrYvuT13voTfDdfKbxc7HoYsMxJbQCaW97yN0e7Ai7/hzx/Pixu8IHdm5x3vBNc1wNgOhuy/wZLpCENEjDB/wgCYQMqgAEMQ8hC7SlwAQpkXcMMfoIQRvF4yEde1HemfNrFkPzLa37zoLAEqIYBbcBcTVEFbWB0uYZ6u0ZwBCcCFvd9fPcGu2YCkoAJo2B+N+AIF2Z7F/CB+ZV+89Vyvwd5NzBtMxcHYqAACqB5aGdzKnh5aGdiECAITAEEZLBlB5BueMeDB5BxDvh9SzeBTDcAGNACdZCBNwAGZaADv6VdEIB49UZpUlB/9hd8dUZ5ZbeCLMiCfyCABBcJLbh5cQAKN+d8FKADOeEGDoABqJd6Dqh6fyACInAFQngFdPh93sd0ALACJUAFgqcIOjAEv1UGTPACYKAIinADVagH9v/Xbz9QBeY1fMRXc/ynAAGQABUQCX9wc52Icy1obcsngIj2fCWBgHf3g6gXhwSXfU53BRKAh2nwBrNIi2lwAH44A6Owi4PgftqFe4a4hFX4iP1GBDFHfMVHfJFQARWgiZq4iZz4iWIACipIhsuHcwbgADfhBqZ3broWhqxYcVcwjmnAAm9gjq3nAEWwjhRQAA7gABDQjgUAAb51iGBghZAHBnsgc3iWf6QWjRXwB8zIjJHAfzc3hss3jZoXg3EAABdQEkXQhjt4a9anehgnAq3IBkzHAuXYfWxAhLS4awfwju6IYu+nA4fIBIvoiI8oiQCAZ6YGk5yIh3RYAQqAedf/tnn/h3NkGAc09wAAUAAkUQZt4AAmlm7m5oC3lm4Yp3oiEAUsYI5s8JHo+AZRcJVQeQCgZ4iHOAQv8JWD4IQ64IQ3UIJYiIw1V3kPSIdh2IU214UsuJA++ZMPQAAUMBI60Aant5RKWYcDcJF1GJUfOYFvwAaWYAmAYAlOcJVXcAAFsJVMEJmKUAaOcAEQ4I4T5wCCQAQuBwZAYJTFV3k5d3kVIALMKJA2yYIqCJfLZ20BN5cGAAEjEZFu+IPlZpGqdwUscJFzyAKDOYFswAKWwHeHGQW6KQLZBo+C4IRlAARl8Jw6YHUUEIU64AgxkGv9WHmYt4wC6QcD6QcJkAA3/3mQqUmGpDZqMZmNI8GNFIduGCcBdQiLqImVfCec5wiV3XeYLHCVIkAAlxmPZfACREAElfl+TDAEivCVL1AGglAAxZdzxpd2CtCMFeCdA5l85GmTEFpqPWkABOAIIUGUhIZ96LaWNFmHUeAE94mVWOkEU6CYw3kFFVAAkWmPN0AEG+iOBPCO9Jh7X7kBBKCFpSahE/qMN8mCybeCmSieYpB/1iYGdOmfIWqUh5Z954aH8CkCUUmHUZABUTCYLHqV3ZeflmCcdhmWTHCjN3ADVaCIzYkGOkoAcuoABAChmWd5ShqemtiCR4p2y8iMATCaaVdqQCmUGFEEOlhu4ygCWf9ah3X4BuM4jvg5gfu5mG+QmIhplVHwByZGABewiGDApoioB6QaqlUgCBBQZ803pGl5bV04kBp6dgm5pJoYkzrpk8loAIZqEUzQCB1QpQNAh8JKh/DZpVFgmk8ZBcNpCYaZohmAmIepmFfpmPToCDi6hMqFeGWwiI24oBTwknemkwYJlysohje5iczIgoUAnpsYrgoZmpS3qxVRBG1wd1e6qMNaocwoAn5An8OpqcoarYCwmCIAAIPwAsK4pp55AQUgpztaABcQlo5AAXcmq3GwiQqgiQXJggFgk5oHlwmwrppIhiuYAAGwkJunnhfhq3dXbmkQqbqJh8zoBxbqr///epVT4ASGcJhTYAheegA1GKBScI/EhrCK4AiCwLB1dnpL8KRjyIzhOYaa17EtGAATapOFkLUm65MfGwAnq6RicGIYUa+pmHQvO4sfeaxP6aVX6QROEK1WmQFuOwVTAAiAwAhsGwWIZpdUoAeHIAWGiIildQOKMAipegCRwKormJoYu4Ilq6fhyYxrMLneiXZisKRFqgDOhxE4YHrYZ4foGKN16AcZULop+rbE6QSlS7cDq7NO8AF+EAkOgAaLoANgQFpU0KCPiWyHeAMvoFsEAJNKiqTjyYViELkU2oxau7VPKp4cq6EFdhE6YAKJygI06ZtjOo4V4KxXKbeY2n0Z/zAHdDu+4xsFCnABLzBagJi7lymnBeYA8zidL1mNU+u1VjuhXRiyNFsBS+oHquudCVBzzZixzlgBe3sRiFqbuhaVVxAFxKmpIiC3pUu6b3uYiekEAiAAjyAAc7DBdJsBClAJvPu7LzAEgvCVilAFjoAGdGYAf/B9oNgJl2u/9+uM4UmzNKunOhsFa2CyN5kAa1ABWVsIkZtn8joRiNqe1ruougkI9/mUbhsFH4DBPVvBiDkFj0C3GTy+H6AABYYD0zkEQ0ABvXu7poqqANCJpqYAnWC19ouJUZuJ/eqlfsCvbpsBPdyaa5ABV9DDIZsAePaQFrECLWulAxAF3/e2Kv/aoppqxSqKmIk5vgJQt1MwB36gq7a3AQVwX+8Ij2gAZIoQmWVQAABgrnEpw6hMq5GLlX7QwIagumvgB8unAK2cBqbpBz0cCaQmmxZBARPnskxnh7Q4po2cATnrtof5yjtrt4CQwQJgCMecAX4AAAHquyQ3chBApy/5vgVAyj+4iW58sp3QxibrtXpKwVHgv68szbJ8vAkwjhKwv8tnxCs7ceaWBhr5fbNot5Zgji6Kxcfcs5agzICABc2MBQiN0BwcBQBAAWXglT/mu5MJBIvQwi8MfjfntW2MAm1szuasp2swBz6bAQKABa/cw1Ybsj18BRYakwDAyxXRBoR2z+b/iM8W7MSK+QZuawjQPAXG/Mqsi9AFDc2AwNM+i5FBCQE1uAGR+ZVr+gIqjAYO8In028YdDbnhScS4LM1zAAcDi8f3S8R/zKTpCdMUgQNuaG7GKcyQ/K87bbdY4Lb/TMlTUNIFbdB2y9NTULDzaJmaLKfzCIzPSbHhOs6XO872m9VZjcuTuwZ2bQhrQMQBINYfUAhwnABNampHvBB5gNYTab3ZlwbR+q83bbeLGQUvOgUGjdcAfcyvbL40+qO9qLQL2KlGuQQJ2bUandh6WghrkM4p2gACUNTpPJBAXAgBAAlZWwFkqKsWoQOe/Zd1fM8D/a8f6QSAULcDi7evnN2r/23SCE23PA0IGdCfg4Cgk7amk4mqDQsA2ScCUjvOmNgJkEDDkMvYdV3SAkCwV7CqF5sAkNDG/3dn2lgRKxDdTXdrA9B9qEuc/GwIBo3a2W23dZvQ4V3XIj0FsXti7WdyCVrCQ8AEvwUBpUy//ycGiM3bCpC1k0vSk3zUnOoAjdAIeimQtbqQQTnICA7P3ye30WoIzKzacGDQPovdllDhk6zQDfAIczDBkUAAj4l4DfuwEGBfz7kB4Nqkl4uJyX3V/OuMNNulQ44FlnxiRZAFyXMCnr2JMZhngkwRWRDd90mmcIuYQA7hWDDkPVu3R17XcK3Bwv3M6WwAgnCI+UVyDf/rwtlWZ/HtuHxqv5BgskD8AXOwBhg85k7wBwTQBisQPHI3dEZZjab20hbhBtE9i7O4rMt6qUdu4XBgCM/8ys/MzOH9CLaOBZN8yRewrVlXBmCwoIOABqmaxleA2ePcCY/+0UvqtWZA6SQNB48w5E6gcbixMiEwAi1gXUVABhHq3BVh6jOdfQJrCN2X2kUN5AidCXAw3CbNzHftzFtc11PQxf7pfkAm4jX6W9+KjfVLqymtp2EQBpTe1XBQ8IcpARjga56gb5JgB/TVAm5AyjG52Qpx4IS2BLGYn4kJ1wN713ed51ig2t5N6868wZM8B5bsxfALp3QKvxeQdVYXvNX/KMOZSMMogAB6GgDNHtJwkAmZgNBOUIETYGMt4PBGrwNZoJf0XBFJP6ISINrQ6t14PeHYndAFnbMlbdKqHfKVvMFzIAAfUAGa2YvZdQF1NpGcegCmOYbyzeU0PNkhWwgfYMwFrwZe7QTp1gFELwR2cDZmU11Z0Ah1RvEJAe4A4LKqu/F5ngnuLtR5PuTZDesZPOR6Trcoj/IfkAAEkHXbFaC6xd659rLMjeIca9XHXt9LOsTRbvdwMAVBDACNoDZGP/sl4GJZ4AMOEAMWEeduWG5WCeTZXfBeXdQIPeYFH96TnMGP8PjQ7swNgPIbDr+9/pyirANSba4o/sbhTN/k/5wAYWAGHdzz0P4BYSAG6ggsfW8HM5AHDs9eQfcEM86rEmluV5ABeL78WPDzd023WAAQj7BkglPwkQCEWLAULCgAC8I5U6L4MeCgAAUCAAAQKACBAho0DiJVSNDJZACUATqlZFnoQwYBDB9+CPDAQZEQLezstFPCjiRJJUpIelKkjSmkSZUuNVUm4wEJA94AUrhQJlU4DqsWxEJ1ikCrXL/OEfDhA0UIaCBsgFBA458BAyT8uVJBgRgxJlcGSJAApd4AYcwUEvCIK5YGNCv6eAKUp1ALkCWp8HGU6WVTLwRpPCDijSVDhgBp5Ur14RSFMhemDsvwq4A5ZhVcpCBIB/+TMoM2XHCroK7dvHsRBO4EySQCBILNNDDMVYAZBQSKtHBsZ8bOEjOElmixwkQjzEylDNlsIJKIDE7UG0pN0HTVrQSxTElzRTRDho8eNWgQu1B0CATZYJBByjCwDEEKMMAuwJBLbriUhlPuAzUyqRCORz4QQ7onqONpJyF8GuoJ7ywLL6lRhtgAAAOWSMMSJ2Dc6iqqBADkxtPeAMAEBw4YAEcMD4ItNjPCMKAjjDRywKKOCjigApTEUEkl5P7qRIYHzViuoEwyyRCBOBxoZIUWhBCCJ8ckQYQo7xw4EUUmdIjBgD9etMQSIBnqA447LXkIkDsHOMAEHHwwtAMf2Yv/Sb8pYvsgjAAIYIuCAgrI6A/PYnSigk7EQOGkThxU6UrktOQPP/6MdIAx6s78EChEWqCMxzdNuUGHItw6II0bvUqNyz0BDXTQDnxQAQooNAjhhAlM2BUrNR5p1CxICYAgQEEMdEQQ3gCgC8pOTYIksDDCQOC45ExtgKCCEksAgEayoE6SD3sSShIoVugAAwJqLcMBAHzkdauuqsqkjz4ycYIFeFd4AhELSinlCxgu0YADT5odgD2DGMng0UJU4miD2go0UDcH/gggL7w+7aTccllSbrkG+oi2rOgaUcFDScwUgl6hEBlhAgwAgOBNIXAAIC48u+KSK/z2TMMEFb74/6IUSrA2AoaKNwkBYxMk8LOhKT4uMgExKr0gI40IYBIAEUYN7lOYIQ0AuQkf6bKhDCIhYMxjgRI8qBIQgeIEZwG44M1GAJAAqjTSmAorOA5mtyAWOoBCYqwnprhiEhgIwZMOosJqIUA+Lvdd3tCwNGAJJMfCkChW7vRTTxEwy4yUyjXjg+YufCQDEQAoNgQGoIAVEeZjPQHRAxxg4sQy2jDhemfTGCCD9xbK5EZL0ujgkkAoMWJrF9K/5BISSNiEAwww+FE1AaYNI4Ej10JDEP5dJ6AzcLGsEyigAQK0NJxQhcEs+nkahtZQAeNNgAMh0MAIoLAmC1gAESHY1wH8Vv+GE2WhCI1oAw5MELABXCEDoumVJTjTgRGUYmtKYEAKGHDDLnSBAcpqVuyw0BwMwcYsZknAyBywFkEQaAMKisNKWPaAvBgQOX4xoFnmwCV2xcYPEeQAB3iggS6QAFlQUAHRAmYAABQAhJhxAwkdED/sPeVFaZAAAABmgiwwzwUM2IQG/EjBHI5ABSvQl4+sQpBHAMIJc3DUFjsSsANsxAEZEYEfzIUCTGaSBmZIzv0U+IErVo4hakhMIYznCS/yIAV+7IIgiXaAAyxhCZGw4xqXUoZGmKBoAMABDiDQS4D5SCO//A6Z1nfDGvpRAwwInQYGiYNnhUVajHzU/ThCKYD/OY4FhqifX1ailwEW0IDlcskcGhATUaqBlNDhZRd58M53pmB0pZOABEgSiT+kcRBM2cNTJPAdH6xghB3EgAO+04HvPOEJF4TCDVepgSeMgAQjeMIzo+maaX1AS0WkDRo2QDIIEGBBfYFUuEyCgnRRyyyFGciegviBCmCgA6g8AQdOcFMeMGtfcamkH/zwOAfsUymNyMjjcPDRFTSig9eTKQ460AEyjQBiOlymMxWKLEH6wARS+RUcfihEK3IkpNf8aEgVkABzBcBlJ/ndEK3IwMotKjExnWkX7frOEIRgBRiI3RX8MAfaXcEAR1NKDJ7igA0UYQU+2NeOdHmADvSy/wgqaAwiLqHDHfqRsk+4xAhCoNUfhWUKEIkNI+cgVpFG0o4By4AfqumyT91NS25tQH4wFC396KgDE/AEKlOpgYYSLSoSKEQhMnBcwaJBKRcgAwAwUAToFmECT32q/A5QqICuAFk7tGFmNZs8zz4vDa3xqkKk9YEpOOGaFGDL/zKwmtE+Sq0sk1IAzDCH+zIyJlYxzEG6IgEMeGACNehBDyaogRR4wgM+GoBd+tKXDKQBABRIiiJCgoMi/NKpTz1hXHg5Qhw4LAQpIDGJEWxiElxCdKAdCH686lUhTSGNFPAIjQsAsApwcz8LOBcmw2lARxUGnQyxEMLgAIj4eYALE/+YgCpr6gH5vSENfrCLAqzshwgjNimCIAMJCXA9DjN4AIQyIaF4G89VlniZXbjEIBuBgfFezsUIkVYaIRAwJVUKABwjJX8WoKU/82c/5mQpHNSAMIRtQdGEAMQAksxbT3AByvPDwhoCoIAAFMIPV7hCVAqw3DfjGXYD4FUaZFq0A8hUgvBMQTyXeUMNLLYD81Oni+ejHyfYeUkB+0MkRZAadaqzD/p5RLDV4GILHawPit6CFxbdByzIJX5i9hNBDLGGkPlhDRm4QuSMlhQ3tIEzsIwLqQ0hYY142AQd8GKJ46lKZQ7SBLwydK3LS2w4qPciAyIZwK6wmnrbDNEJO/b/KLu0J4QRotleYLizEZYJ1kQ7LoDgiiGKq20nEK8CIvg0UoqgNFj+QeR/WIJ90hDJ2GkPAxI8AatLvMoRuPIA1TZ2fhiY64tc4CM2/h/F1UkKhAUb4YhmVx8IgWiFN7zhW4B4V8IHYNOxJgOaXsMafFoBAxBAqEUI5hLqKXIRXMESghKYynfbxZavMq8QZd8J5EdxmwW7IPbOdxp1BUtYemshwh54348+8L8vmxBKZzjTsWCJNzwu1XEZL1cykIBtZ8DqFYgDADaAFDcEU1AjpwsgTi6wN7wh1Us28LtXyYAR8ICvllB2zV0MBxl3ZJIBS4Mhqq3svh+67w8/eMIH/0/4LRwdC2+QS6r5OoCqOCFkmX7gyh5AgCogRRDBVPwBRF5qH30m9I4WcA9U6fIUwE9suA+63PET+5IJApuO897u3Y/oQwc/0YR3thcIAXHtwVJ+vFKkH9AGxUJIgLsgAOVCCkdoLrwLuZKLMAl4AzYIPTago5VDJR5wJx7oAaL5kUwghMAzP/x4iBnbAAGhABsDAKxAGKArv/c7NA40uoWjv79rNKj7EaqogOcjg0p4ACsTgwdYBKUAghiApOrDlPqIndCDQEfbLd/yhBqYgEl7AxfkwKOrt2MruIKIPbfQCC0EgPHCAhZswcC7PzjYPYVjthesP2cLvuGLnIGZj/8DIIBKqARLiYM46EGm4DoMwDvFq5O4OMI+kcCnYjInlB/v4cDga0GXMjQXi72Qgh2xg7uDM8RDJAUpPDpLrEQzpL+lg7au8qrikcM5NIBKYCNdgiS8E7nYecDQQzxHk6mngrI0iMRKlMLycz302x+2uLH/UQhlIwVKvMSj0z2iMzpJ1MRNTBiX6godIQBmNAAxUJzwyIIsTMC5qBNVnBzii5/4acBIJAVmo0U5MzY1kDGPqLFrqZQDgDvAk8ItMLqB671KNEbCk8IuUQgBSAMRiAQFoMM9qJVuwTO8iwsWEJQrkDLVigpLqJyDUacyXLRgrLWaEwA7E0K8SwMu0T3/MFQ0d0yY3ku44DvDM1w6RdubrgAEbAOFOCAAH6wVUwACCCADtsm7+BEpWYokrrIcRFKDpFu4wJs7uSNHCJi9P5AA+8CCuDO2Q1S4wOtISVQ04DPDFzy6LoE4J1gDtImDjmPJpCgCblmSNiih1CK3asMiCRMAYmw2pSQ4cYS9GWMvG5ukAxAIn6REh9xIv+sD+0s6pVu0dtxJqZSPqkyAytNKpAk3jTAAegO2gigeQJBFWvTJn7SWtlgSygQY1JgCQ+sDSiTGMHRHS3TBTCw8ZuPMpZwPyaO8fiHMN8kDgJGA7iEyXjTEMuzJemMIfXMLCWABVpSdF7OZX9TIhPM9/6UkiEwIyacMPI70qtRRgAfIStXEDB1wltAymKnEvVlswSqsuSmQTD3jNRFwAvzgO3cUxr87RCyIkYHYSRg8RHeUD0XKAAUAgOd8EzeQzl5poIJARqTLPbqDPWuhMWxakv9xgqowDPIkRgSVSobAk2ULSfkjzfsrGECQAL+ZzxDiqzYUJZ+cyrvUzJo7NvW6lmyCinqKgl9hIIasRNLkyL2Bg2L0AmLk0IFTzuGTgIqw0PB4Jf4DNqGbyoIzNqP70Hz7z6CUAPKyLWFDRAjlQGVrSg7EArwTAA6dShp9g0ggAxwNjw7a0V+xwtcLNlo0vzSwiKDkQoV4nIQ0L7hSg/9fTDSk68izlL8oWBxTcAADMIA1QKeucII0+AOOyFLMYKwowxPKsbWwCDag68CCG9NKaUA8MTUMeIOmewTTKra/o0XkBEa7NAQcWAoIWJBe24g/BdRA1aUBuBOK+0CosUKhm02CCLYrOKIC+APT0BEuzI8hMkv3IwWMfL8ndRNSzVKtEpimgY8Xmzv8KDLZ7JJaiwKOKIBfq5w3KBqLRKQhegSpfD9fNTqIS81gtdA2yMNTBQTRmALTMI3Xy88ydLaaC9ECqID3wgJ0Qz6GKIsrWsjA80WBQ87WQxgskM9vtdA3i50+6RWDPdLMJEaGe0g4GNNruZSTo71UhYPEMMv/YIS/uCu/+7sc/kiMAyjAgCXMGVCaPsQTQv2hFzvSgVu4doTVI7qAtmBGZtSIxsOQK+I9iDzK/kSIBliAPysEA6DTkNXK6HQc/usVY+1EdVXPllWnWL2Aj/ooGjtHANiKR0hBZAyS/UiMjhUA/uDZIjkXrBxawqzP7DvZ7jnSCkG64HO2YISDWPUI/ukfNKCACwCAqXiIYlPIgiCL3TGLBfiAsvjaxNCo4dgQstXKDTi+0EPagpmRZOU7vWzZTPCDIyoZJSIZCnCAKxgtr/2Aji0IQzCtIfodn/UzsujZmCEAQUjcWlGaqPgMkz1ZhShUhRRPv9yTCqgEuR2EudXc/1l9g9E1gz+jmSAZoglpAOJtK2oqLvwRWte9jCwAGFJD1YOtijwpuvg7xGdTgwq43CTyXQGp2wKQgIwzXORYAOZgDiIRDLNQ3tmCDbD6D8KK3svIvKWZHJPFkYgjMgTlzGbTSDWwXAi4gLkdXxKcVUuwJAcxIPXts541lfd933NKjMD9gOgAWftVikGg3qMFlOs9Vsvxu498NsuFWRH0XY9K4D94vLuhAXFaDnU6gwh+X69d37LgpJ8NgIpo3Q1WiiKAndrDEapA107k0M4cPI28AgKA2f0RkA2oWxoDAD9QgAEiIALy2TOIlo4FXebIigrmpFIpIEiIjh9WCjQImP8FJNCS5N+wiERla1IOdLg+YOJreeIoluI7EwErHqABKpUG2GIuZo7mOAiNMgNIgAQEIGNIKIRIANYzLgKaLDkWcmPvQWJaRDTu3QKgEwEHcGL+iWISRIO7tYu70STk4A8t4A+INIjnMCBFTmRIQGQzqADo3eC1AQCvG1fH5UVZFM4lvT81GFPeMGAo3rm1oUM/XmRMQgD1PZVjzY8cliIEUOTlUIBRPGNTuFtdrqfIydvyAhaO9DswTLguGYBPLgBjFhAoZq44wAtPuWKUcmZBC2cNLYtDDttSEYNsPuMgtL6h/OZCLZiD+bsu+cxLNTI48GTeCJCo7R/euFO9yCT/AqKBZwaLZN2TwkgMLSmEPytjb/1ht6ATH/G6pmEIz0O+DdxIFQ265PyDdF5nEdyAReCNB3iAk5LnLK5nRMKihOEbIuGkTgDYM94DFoGluShW7H2RlsLUlr6QgoDphv7d8eUNAniAd6ZoGIbhZ64tihW0vTEMiDBckwjpDQ7CcaPB1TDW6izoDrWZgnhk3igAQViERZhbUg4pZ/QULKYBTQpcAfgPMVgD0GWgsUbfRH4AbTaF5tKIx+EVbmpj76mcdey71ju26GkLuuafuxYQmFUQvDgpLEYBGSigdykAUgaABKAzIcE2xIYExT5jRWhsBuMVtD3iOGbRn5Yzqa6U/7m1a7u+gG5pouA4KRm4kgCwPB1ogSxog13JgDlYg+gm7ELgJBqABBk4kjNOAtouWULFisupEJy0EIX86afpbQgQX+DOa0txxishbQI6l06YjQ0QsVl7A+h2K8DVEuO40R/m7nRjGicI4WSNY1FqUSKDgwNQZ3UeBCAAgiRIguCeTCjKi9IubRpYmSOhgBV4HvkxhI9R3r/9gMAdF2w+40VoLgOICjuxXtZQyN7TUHYhTnZZ8GIeBEdwhAgPbt6ohKsubhlwGR50GxzgK+JaDhLvWI7+nQCAhA1xhB9OcRYZyitYj++Oj7YmbyrNT/k4gErgjUXI8RyPcFKe6x/vBJW/1ovjFoM7FQMFkAEZmOWOpWGu5egoGVX7XYSMiINISI8YAeHHPaTq1FCbOTiSjB6YFQRHKIMxB4K6VotKuWpw6hQxgHMgr2Z6VvILNlzjeIB+jt4UF6k4IMJu6zb1qD0nQAhDeA291VutFbIrSCOPKgMmUIQqqAJG35ZFYO+rvml4huebrvAGcRDjSAkrfj6ts9CAAAAh+QQJCABNACwuABAAdgCyAAAI/wCbCBxIsKDBgwgTFryFq+G+fQojSpxIsaLFiwIbUqIkqmNHjpSkYRxJsqTJgZTo0BG1siOdT5+QIPlkxIgoIydz6tzZhONKIzSNIAmVY4dRozlyqINBiafTpxKlcRSFJGkodUl31AiytYbXGjt4wCgFtaxZXCmFWpVJVGuQIBO+au3B4wgMnGbz6hRKNGkOtuqMevXkdYInuhx48Ehh94vexyMpjSl69CjYrzUm9PA0wbAnTxxC81BnRCTk0xMpGfG7g+vbIFy4cO08wYMH2hNCi04BA7XvhAxffsqxVXZsD1w6c57AxXby3KIV87DwuzrBfSmrtm5uuzvyzse75//+nJgHhyNkrf++pbpvDe7djXU/zr25YeWh6aJS/xvXy7bveSdgbM09R9tynfXAQQiS8HcaWi8hERhsAnpX4HPPLdfBgSc06OBj+7AUU1EUVkigcp8ZxsFnnMXWGQctfPiYVP8VlRluB4J2QggaPPEEAyMEqcEJnHWQHAdPyKgXWkANlYN0ioUQwgk7qjACKiV8oWUdEUTgiwUjrNBibh4qWRZ2EY6hhBIuuHAJKnDC+eYXXdZZSil1lvAEkcoJYeZZLMmkJgxtomLBoV9Y8IUvWvriKJ3MRFDKJL5IEgKCSf75lBylxBTKGJfAgMqbhqZigaOoelknM5OAMEmkehL/+Vkrmj4ljRGTqaMEqZf0eqiiX2T5RR10dskqCCB0Ceals9bqFC4wFKWOC3L2SuqiWmY7rLHIgsAMM75cEsKKnqzgLE/SKJFUCtSOai2ciCr6aJeuduttBBYM+dkKNpyrkzQpPHkEKqm4+yappzbqKLetdhtBKiMQycEKdfibEyY8hHUEtda6+SYMizKq7bf2IvvwnqGtMIPFJ4HAgGIpWNurx4YCq+0XzJR8L8QnhEYryyaBgEoKdXl8CQNIM0ACwcCmYqqxOXcbKZihnfAz0CRZMYMGRffKA5W7MXCJqQVfsjScqWTpSx11lNDCChx0iLVJNoyQQgpdHK1Yz+Yp/ya2oagwwLViGlxJcLCSwK3CynOTZIMkDLjpQtJ5H61BChpccuqXJDDQRc0WEJx2KivI3ThJrDCDSptduNB50hpcHrMFdQbuuaEilzBD4icwfvpIIFgws+Dmxc2D7F2AHGngill5ONuJr8DM76h7OSrSm4SgggpPjJA0yBEw8wUqS6ciSQl1fFtHKiE8IQf1GNkAgjTSlDIqCSQEOcKPSJNAe/jiOxTU7lUCFbSgDqyAX0Vs8C1MOFB4vdLfj7pAAs35AoDEolP6cvat8YWvYgpMDR1K4UBMhO4Sk+se/rpAwf9xcFFQm0SXGMUqX4RwIqWgwxekgQtpjMoFFHwdC//xd6rwvYpeyPpWnRYWgRtKRDVGwIQ0MEG+IQZxiP7zxbe2eKxkcclLX9KiEyVSkwjggookYKEVu8CAFIgNUXWCGpe45CjagWCMEclhKegnPPxVMI0M2ERdlJbFOBpyidPDY0RUI8Uv9GqFgAyk2GBwQUMqMY7HUmREQAADKZZCZhRU49KKyMFVRapOX3CVJiPCjFSUoocw6BgQK4g7AHrrlOHLJb36tUqF+OKV0oBg64BIwZpdsJSSsiQIEtjLiODiFqyoww9doATPUVBzh0IVDPHUJRA2kyI2mMEPlXCEu6VgE4TE3ReeZiy2fdMi4kwjG5M2yc1dMFGVrMMM7vj/ToqIc5hKYOPSYCAvLcrQUWybwQwS2U+JiPNowxwmQbVkrC5lS6G+a6hCpFAC71VOcvBKlUWDpVApaFQiIFifH2VWMzqFLFtZKgEvT5qQlKbCbGJr05tslq3c6W6mND2IOFfXhdgJLm+puNmiSoA+fQI1qAUpARvHUrDA7fRXjGIqU4dVBxC8D6oGmUHnvoCLEnQRBDYIp1bXyrZUMhOsA5FDHToHshbM4AVUyGteXyAESRBsq4uywDLfCldWfKFzn2tBFuYxjw2gYR5lGIQQWpA29EWKbSA4xB3gKpB6sMIXr0PFChi7gQ1Q4LHzOF9T2cYlZsxAs4fgrGd9oUYL/7RitPNA7SAGkYcsbRBqrz2EIogAVitY4bOXyJsFVLCC0jZ2HoNggkKLBcAuzcAGrHDEIl4QVBuMwgrBTCMqvqACxz53EGWQAgi4+sU5XvcQjiDDBZigUStIQRJf4BT53tjc0jq3DFSYgamKCDVJ2OAOjsgFAQpA32/WwwovyIMQSoAL1aURZItFLXTLMARJJJV2X4yAJPJgg0MAgQwAAEAHViCEjI7RBlLIQwtmTGEQQI4Bv1zsBhjbWEe8QBKSUFSIfYGKGVjhByfORYpNgIMiZGEIeLxvC56wPQ1YYB+PU8EmLriCFaBhxxvY7Y+DLK9FoaIFJf5BEsiQCyWnGP8AJlhxK8p0unBKIkylqxqFWSEJFYQgqc398o7RG2EP9xRMBr6DHtYMgAc0+gEGSDEGTFCuFdDZYtHcX+k80YFO56YErEirEFZAsCw49rQUgO4LOmyqRIHpCTNghaL3oOQH2BrSBjgAAHSNgQ6s48ksq0MLpsSBzhgDA3DekCSkwQorjCILM27uab+s6jx4+FckCMEISnwHMMSg1rd+wDEicYADRCLSAMAADhqhAyFQQVPCVsGKJtDpDmCg3JPuQAukYQVFM+HOK5g2tQcxBGsPmAQaUIFM7/ADb6P40bY2gMTNHYljSHzJOPCBDvIgo1GUoBVE6oAJTICBkh9gAAP/OECvRyCNAyt6FIlDAwVm/liCGzx0I1CBJKTwgx/cgQhshritLT7uischDsdIOrnTjYMdWyeakniCmOhtApXf+wASQPkASq4CaUhBs3eQQhZMPfMLUCDMTJgs+TahASGMQg93iPsNgg5pXBug6JGoeNKVfoBmRBoDDliHDlADghm4DW5U37XWMaB1lKs8BNKgQr8VrYOxo7rmZWjFj9gOa57HfdbglrjEK573Zug9EgqowNHNrWsAOCDVerFB21qggpCT/OSNz33KMaACTMxADz7/QTGKoQPoMoEJeJXxj3o0g69/nuGLAPetxz3uZljf9HnPfiRMP25dm2Ad84DK/yTa1gqQc9re95aA+nUvAscbg+XNh/sPxAGEDTTC7GHWgQ40vz8heP75ehB9Qnd3e7d9V2B612d9S6B91icBrkcBg6cTzCBNUhdy9rZrWTcAGdh4LMACbJByHQADLUcFcBd3evACWdAI60ABWVB+PvIEbleCAEhr4YZrcSAGCrAEzSAB2Ld91pd9SWd95aZrDhB+JiEFM9ACt7UinVZyAMCDWKd7bNCBLKB1HWABXkcFYACAilAMZVB5mucjktB8Pvd8P/dtA6h0O6iBFXB6P5h3eKeGB0AAaFASMrZpVIdsKdZ3fZd1H9h4afAGU5gGA9ABdRB5WiiDP3ADjBhhmv83Z80Hds/3A/GVCzUIaccQB80gAiLAg3l3dxUnBqXHfQVocQ4QgReRByvgA3moh1infju4gX/YgYLIBmxAiCZQAnkFBrwIfIpGBIqgCJEFbZLwdr5ohkTwbZdIgKUnAm24d9CId6YnBtSYdI4GARiRB27QBiLniuqXdd+ogVcwAGlQhQPABm/wBquwCoK4da0wAzfAi2Dgi3pABOIQjGVQBnkwClJwjDPoZhIXcQW4fRXAfXpHjdWodHt3d2IgcQ7AXRYxBG1AcozngBuYcn14BVfAAoTIiRypjuz4BmkgARsgBC8Qj72oB2AQj4xIBERwA1LQj2X4fIqAYrg2fcf/IG44qADHoAAEmHQKIIoVx5NJFwdDZ3GRRgEXMQgOgGyvuH4a6IAZeQWESI60yI7rmI4DUAAc5pJEUAVgSQQryYvBqAgwqQeSGHdqVmsBeWsG8ADUqABB2ZBvOZCRUI0EiIlJF2nYWBEv0AgkBwBRiXLgKJV91wwbOYtRkI7rmJVpAABntwEXUACV4AAFMAiMyIviwARVcHwneYyLyGY1+JYGIAY9GQAVMJfHgJBFJ5emSZriRoClaQAFgIoSUQYxsIe4R5iwyIPN0IYVwIkaOQAsAJKAgJWrwALqdwAFUABmB1knuZJJMAiMRQEFAAEbUAW8SAR7QABvGXGvmXQ4/1gB5HmQCRkJqRme1hiND+AAdUgRi+AAT6h7hKmBFPebwSkC48gGTuAEjbkKgBCg7CgBEABZm/kCUhCPRLAIFwABBeAABAAAC3ZaBXAAogeXpimecUme5BmUnZCQChAAcpmT4qahe/cABNCXEkEEbvBwF1mfynkAPZl6FZAMURAF6LgKUeCfABqg/fkGErBgF4AG0SUFisCLjiAOSpqPTDAEQ1AGG1AAokd00IiQqZcAIoqDGSqerrmlH0qUe0kARigRUuAGTfmiWicCQGqhCoCeNZoMGxmILNCfURCgPnqjrbdgOiAFVJCg8wAEQKADZYB8VPACTFAGFwAAF4prpv8ZlzPqmtCokyGaoXGJmki3dwDwnhIxCnuQbuHIm/o5ktxnAOiZDDZ6o1egn07wBv0JCIbACIxQAQSwY6qGllLwAhcQA81ZCQRQCc1pmQCQdz75k7HZqHPJmncHlwGwrG14lwGQAMkgAguYoQRwARSBqym2gWnwh1lXhaY3l6lnqqdao1EwBYYwBa7qBFEgAgSAXscHBodwCHpwA46gCFXgCEDAoBAgnwdwgKh3dz95ohi6pVW6rHJ5bj1Zox0qBgEgcSoaEaOQm4KpdSI5AO13jqLaDOAKracaBTY6Bebqo1cQBbQJAak2BDF5q+Igj7x4A8I4CBCgqMmqkwQrBnD/uZoIiYNcKqJ6F6LiSp6FwJO0SRFM0JQTmwbbinJVyAJRkAEi8K04CK03OrUfawhWOwWMkAHJUAEGQABeewE6gHxlAAGLsAh/mqRfqAMUAABIyZCsabPTp6U4m3TPmqWNKqIJkJoJEJQWVwATwQo6YLQo9wYDMI7E2YE3mgzWJ5cKwLFTO7Uga66RmwwKcJm7NQil9QJl0Jxk4LVv9mYyirOMu3dwa2sMu7dyKaLLiroZ2glymZrPGqJ9OxGjMA8FgAHainLlWI6sGgUFybgJAK1rIK43OgUCALKGgAVTQLkFIA4voAgvMAjrMAiCGoz3yqAFQAAnJwJCa5qq+Z0P/9AJ4cusqRcAqGewAZCzqhu8o2sAD5sQQ1AEZ0qfhzuyTpuejZsMH7AGw/uxkYsFgDAFWiurEHABtIqdBBedN2Co4qADaOCd1pizJAqXFCwGwduhcomlIjqix7CsAVAIe2uwFmettwmY86m7gWiLbHCj/Um5Udu/sAq5kTvDjLAGPum1C1YA1tmcQ0qrjPXAq2m6CamTnbCaAQAJIFy3jVsIq8u3xwDChQDCybAGInoMB/C+CDEPEzmfIkCItyiIVbgKdMq9Fsy/TcsITRsFH8AIkZsB5poBCWAAYFsGjjAIFzAPF9Cg2btrzTCEczmwjdqQQtwJzxq8WNq4Gsy4p/9bAf3rsRnKnBNRBIG5fkirjiDJmE6wtRmcDBngxlPQn04Aq6KctU2bDAZAAc57A+KABkBQBQvMBNRJAQ5KAL8pBh/6oenbqEn3oQybvwkAwhXwyxqcy886xcacAKtpcZVAXBFRBPb2lOQYiI2ZjugaBXsrvFHACE4wwwI8yrCqtQpQrWE2CGgwnchnqMfHBOIwCFJ6l51wy3B5rLxMjasbvFMcxSFMz/ZsCHD8xyjqCBJRBDiAbBdZnNOsjoaQycF8qt7cnwn9qmgMstbctQTgAAV8Ab7anNfZwxTgAHenAB8avnH5mtUYolcavPyLuiD9zlG8BhmwBkyMszZLAED/ENBNuZsUy5hYea7rmp/JMMrFu80CUMOPWwEAsAjopV1JsAd7vGtY13fO2KU2K3q9GgNtsMXnWwHLyr/BfKzLWgj8a6pBG5S2JqYSkQW3R46AqI7HmY6AIAAeKwLiOspTUK6fDLKiXNeyOggvAAYvMA9Jaq+Rhcf7CgAL2KURRwBt0GWtMGNZIMkA4JoKANMg7ZqEDNYvXQjJELxZ+s8S4QYdoHiAmAYHDaDKm7imCqtDXdfcLMqdbMoFMM6LAKj5OKjHR8cX4J0I6ZYA0AYLsgljA2Qp6NGlysgbzLAfzL/8C8epGZRvOQgSsQLPjMKV3KONCQhYoK6PO8WMcLyR/8vGeP3NlNu1G70IvFrRzYlqBcC2OUmN79yQveYJJ8AAf1UCQpCCANCJS5CzUYvSys2+zm0AY5oQK0Byax2IbxCgILkK6KrdUTC8awDebJzXrr3ZlQtd80ABi9CcXjuE1qeBoWjLIh4JcJYb7aNaJSAJbxPaB3CDIfrVCcC/AiAAa8C+eyngEgGYuKu76Ii01h2gU4AFABzKUbzGMywAsDDUNA6r+7u3ECC24/yF1CmZ2XuYcPnehHwMve0DIdAK+0NZWiUJrQCYBNi4AbDcGSAATgCtVYyUGxDQ063WA8CYAhrAxqu8TJsAawzeIOvdAtAATF4IH7C1dBjLO6Z/tv8tDlCqvXdJjVfeCbRZBI0NZB6GNmmj4iuAA4q6moWQ5iDrBJy4t9BoAJqaEPJ7byi84Areo1gAB1iwClewBh/wAdzs57Aq62YQBslQCF1r0RDwwF5rmRu93gfZCTJAA52QAABQAJLeAkBWAk6DCkES7WHi0cdQAYKevFOwBl09xKRu0zuukcW54Mi5CgLg6jo6xWtw5EM94YzwAbmu5wlAh4w1pA/KrwegqqC+0saOxMruAI2wAk/g7E4D7ZQOZGHSBmzLyOc+1AlgBgmgy3uplM08v3NOlZb8n9g9BXAAB+zosYzQAN6NtYD+58b77gkQBgHQrkzgwLtFx9SJBvv/2neNbsuQsKxduw4rEIYz5jQ+T+0roPCREOMzXuOcjYOo15NyLBE6YG9Zh7SEKM3HuY7HGeSurq58brxYq9pK/u4foPLue2obJqiHWgZ4LHFB3AkIIKLL7gYDD+1nFiRA5vOXIHWhvQQVsMb4rPKBPG5vWeoJMdBP/wZRcAWqDqDm3uodz9rgPeMnD6uAHuFrnOsN63omi8PC7qAOYKEYuvZs7wA+MOmX3gJBMioEgwoq4AMmIAEioOdDDcJYqqUIKXEDHvioPuc6vc3KawiroPhwoAZ13d1sPOOwAPndPePwbgZmIKLVarJo8KARCtUuXeO23AkoQAMiagAOUC4G/4TiHjYCfsQAl8J4aZABbPzSwbys/G1r0C0RW0zdYozdcHCc8g8LagAHdf3TxnvuJA8QAqYwGvjBYKEABiAMmodm3qAyOhheKEAgUoY1AcR0QkEjQCQAOHycCKHiyQhJqUqUSJVqxAgNPCZgkJBGABwshtYkSABJzE8xAY49IFCmyVGkSZE2wgBAwoABad68AQQICxZAq6xigdMVi5OBAgTAgjVFACOxaRkZNBMmAYELFC5s2ACxTMR5FBysEWAmAArAnQw4KNKq1YgWrU6iapnSpQYOHQ6kMTQWjqEMCCEF4KxAwVAC85SOPurDxIEBV644caLVKpyqW+GoUQNnyv8UsrCwWBbbVazZBozWREl2wEEBCgSUOzheoAAAJ2ITBEAQANIxAkVWPJHU/cn3Eai6p5Kk4kSHmoBgdcVs8INbhEIHkyZtGgBU1emv4qyKhWxXnKZoALexrtqNK9sEEuiDKA4oAAIIKCjAAQAOeCoNrbDYBY4PEkCgOpBwWMEkxlJB5aWTwiMhBE9MiAqQ2WAzZLcp1ohPDAMMoIC+0UyzMDUWWMjQq/6sqm1DriwDcEk4YBGLrCmiAGADCiDY4KF5qISAgANE0NC2ZMJoK4FmMOiApCcuQaVESVC5ZATzPMFgAK3g2BCnq2CxsbNjANiRx6RwaMrCK95YZYr9+Hv/LUY1sOqKNie5qo02rwCcopkH55pnHokk2uACAGDsaqe2PshAAgA68KSk8EpM5RISzJvgPqvuNFAAjMKID6QNAE2qjUEl0GpIAA1csrZHvUJwUiYtNQ6CCwgAYFrlpG1Gww1hEfMD4ZIpzoQJOOBBAwZIuARWBmS9bxU4uKl0tzXeK6SQBCIhAAhfkbqgKQmE7S/RrJLsaheC7+xqvYNjxAkWZAVwAgAIIXBA2i7fqOwmbrjZBYvbGFnLoApS9eSEcRkwWQMV1G0mjQbWU4Pg3XQSEyEFCBgk36NAdSqNrP7lCisEm7RTY2SZpJTJ9bC4ogA0NGWIyoomw1ZjBMlS/wOWkHHwRFxyGYBThRU86QCAJRSApIGC4RAAMzMaaCCM6o4pAOcmdF45qwyv2nBRBHchxN1Ki6ataADVcIIAaK8cZPEs0YDgAFEp3UWNjLlRIw2ROeBagyc00OCECUyQoBkPF0B7wwzO+uBDGTZL4IBe842hwvTy5grJn5fdxXLCBb+6WTgkcCDCaqUlwAQCJJiaEDW24GYL6LnB4gBVexA3Bc9VCIGDmSSogDMxzfjgrLXC6ASSTjZSoIKiZAcgEgnewFA2gm3L/dGMj1Z40t8Lr83BAlxgYgc4QKFWkShuEOJvlYPeFggxAHBZjwcpYADKwDYB9HwvAGEIQCHM8P/BeU0HEiMMgAJwFDseuaFCUlmFa26XsV3A6Gf4453CjqU/ZGEBYlba1AYcR6Fm1GqBhChYA70wvQ5MQIKe89z2JPO9ngSAJ6aDRXA+wBk+RQICgNKB6NJTJKBtaBcC4FjQ/Pa3oyUtYXhyWaOeRQE4XqkhFDkAtgimsb8RYgtecCAgMOABLiiRByFAWWSMMQAJ8IQnnEmA+GABs8xo5BgGKIBRSDOP07woNlu5nZ2uchOF3XFwOHkUstbTxtpcYXgQqNABpjUtE1zBjmfMGCG8cEsvEMKPgAwXyU7gCS7MKQ0dpNciR8iX+gnARj8BgCPo0wF+QeUAJrgPzwxUv0T/AchvCZwUKvlXyv89CAITqpCQDIEoDSVQjw5UIPRwubEBYOCPXOiAMeQZlTQko5gJgM8H15A6J3lMmZgiTRaYA00zrYBF6OHZwPa2LAAl0HmM+mbRbHUAaDkkSxKiUPzSWUvnSRR6erylA7EiP6pUZRWZiQ8kPhS+D6xBfMlYwz9x1YwtJuUFbmhEI9rgiRXARHMzodPUYJPN2ajTXaOcDQ6bigVMQQsC66AAGtAAxwJAbmgOdN46+bjAjEXvTkjCDD8RAAkZ0KAtHmxbA2IqFoxM4Q0HEA1SRpEFN2inBW7aRBdIcJ45AaJgGwsa/hwIuKMNTrFHUyWEaOdKDFBT/wIwUqceFdjOwypMQ1jxWV/ghj4anNU6kGibkxClzAww4goAqOshypDX7YyAAZeAwRdgEAKZACANWEggYbtiuabqEbiJXSyz4BBVCT0HNWzI22/XydUG/s0rU8CQoXhWFcwUAm4fQoAZREtatD1JDbhaQxqWkNOdtqERPhjRJUph2y5sQgMrkMwqdmewpg7ueWhk1igX25WoooEuVXKAZF2Y1JFeNnpdcYIICIiaFrbQCRjRbiM/aB3wtQ1POMlABRIQsqM4ohExEEkrfIEJ255LTU8ogou+tKRl0Ua4lSplUwsHhwGsckLMcQAOcCCZqUThA7BQp/Pc6TwkOaEZBP8cAFVWcQBp5agCNHVLAGTQCepoGDZwLYQCDEAANIChDINwgxskwQwUw0BNFmBzC1bQBt1+qbD4E667gvbfpza2IhWCygBc2WTitK3I3MhlSYmIExE0oxkScAJWjOMcBxigAiEk4ZUL8YGuAAKuGTEAGRbRhBfkQQh1kEYpLKAmVLCZzZIYwQpEhy3gJfV5wJXUfxlWGxEMz6pNU+4AmGuIZDSScpV1Z0mB2+EKiGC3WJgrAJhjEXqN8MoykCKmcTLhDCQAO2g4ihRGYQNWlAIVJEg1m2HAZpe8GQBvSFuNkzrjRNmaUjm20uIGsYFxUmgy8woDkYtsyz1+VWMZ8Fb/MgxhFUAMYFoTO8YIIaGZTmDZDPVzQhQ6DBekWMEGNviCm1JhgTWRW9WoUAFTlEew4sp4jxPNb8pTObzkTgh5zIklwddA5Od61dC7uE0aJkxGLKziDRKIxDHM5tKzou98YbATHCacDAPEIOM2YIYkGOCCNV3CZCJnMyqecALRpcFOkyvuc4fbcnDCIdcX2BLtpILI+OkkAR/wWwNXjktcIpmU/GF2RjaDdGm3zgyPxAJGFCD1jM/A6uRyQQU1MAI1kccC6R7bAcleXEJHr2i5OWV+G1tVXlOMTqvI7sQtG3C8492B9Ttq4QsB+BG+XtpmYEROgk0ApbBiBk9gQAp8/489c6G6JSUguaB2S3beDbuWwq2NWQTQgOffmjaHu4BDBuGIhnB03RmIQiHWAId2KtiIqmc9KRvwQe+2xeGcEXxNK2AAbitlBtrjwQmwVy5YkXv4kmiFD+aErcXinefagkZhhPMTH0aQvstZpXFyDhN4wKagkyhIgEJoAGK7LJJKvYnamK5wK/T7INeRIkail0ioBNKYP5KhIJNhgC54vEsYPvKgr8m6PMXKn5X7GyxgBO/qLkyjnNpggeZ4padgAzaYihaykUbaBbuLngzUQI0pluczg3lBv3kppkmrmT9RilFoha75vU2gIDXpDpZIhRXAgRm8Ex+sQT5yIA7xLv8UQIB+s7E0GB6KyDcKmZb4AQQnCJN+u8DTS72vOjQ8eT7o85hu4Ql6UYBImBv6EIIWYIAv5AFJ1AAVYwwLKAELUIEJOEOKoo38WSdCsA0dhEMzyC84mENoKQCqqpICwIEJEZY06JAwMB3KCT+JUr0jA5wNU5u1wYyd4InPqARnoo8ZaIFNmCBJpCC/MpePmzwVQA92mRyU0y91MrYmMYgwGLJSQsXneCUAkKdpoZM0sBGkM508AsXT+5sbJCJjuQqr0IkPoJcSMoALAJRReIIQSAFJnKAVnK1mTIUQgMY7Yr0aJCnoGS+ZCgNQopQ0QByK0LcBYAEjRBS5C4DQQoD/BaicPNqCXUgDYdmdlTusUFSWnMCIPRGDB9gDX+E/hcKt39NHSmzGEZCTAZia/KFGI7sl5tkN92i5z/MhjpKWCnmD3dDBnviQBfBEjZGekMCBOqo7dmo3r8AVjEgAlEQ8X8mDLFgBhdpHcbk6NbmEgMSAWhmsGgorI5qotdAwxco1O+Qx58ABCiG9eNwujKxBbpAAH+uAAbCTgCMimDEQA2GNDos6upECcSiGrdQcCVJGraNJwVKgO9IYJ2A3g8w7nlsLb3JLB/gRRFo0PFwFZSoE7nIkhNEN6jkNDbElPgq63AEarDAEJ6gZRqSbF9CBLDgBDpCgCUqBLugCDjgk//u6IwXKmOCRgDMyIuGChQ9omWGjjbXLN2mRgNVAp2vzoJdqTrdxG1hIgybjLVDUIUgDAAOQCtkUAQAggNqkmyYYhdfyBE/gzRQ4ghSoAWMQlqHBwL/ZhdUgmHW6xVAUgA9QSuh0ALYTylaiTqq4CkNYHQR4wzBogAX4ILcSgDMiKSJaBRNIClCZhzQwDvYkjWJoBByYgAmogR6wnh4IpqhYzeXTT1vCrCXkhrEgUDXgzMkQOkO5nTtRJrR6w+4KnwUwHf/MwBjCgBANUUeIgeMJpCAIAi6wJzqxE8l8HnaCLq7KJXW8peRLoMpxy+TxzhUau/phTgSggY7oLu8aUv8qIs7ixALcS1L2jIFckCcTsCfU4JnJxEB2WsMECz9DA5zdgSHh2ZKnMA4XsQqoEJXz+xAauEg1pVDufL5dcJI4lVOc2QMywMOiCqOB1Mi7M7Ti3MiSqg082pBCJYBCkQBoGoCq+DOrENAzfdSOGNIPmtAPCgO4+aBkuFRMzZdo2RnBuiaNKZjlg65zFMli84LK8dJdWDtVXQVWDaw0kKfJ4slZDa3QytUd7K6zQgB6AYBfpRs3eA46wa7cQbmlvMCuSrBQdSDl0xgReJBIawYAOI0Dwhx5Isq+MANtvUhbRT/uCtIEMIC6GldfYSXUgIoDwpPBMtbL8tJkHT8+0kj/y2kGA72AhxTWD32KA5qCD9jBizSDBXAPu/xWM3i/9URYQKEqN3AARrumwWoXi2UesHou1QOr4wqgDQACIFiEGGAOt+MkARUT7prQuiRNR33UBIC6nGJZugGVa206JJkcy5nMZuVT1GPWm8SUCxgEcUjMn10EttuzSJiRtUS/BYhU7DzTbEUAMXhaqPWVMgCVZpgRwfSfLlVKYku94qQNB7kARyiDsHUEn20Ix3mONEidvmBTbvUu63jUWf0QuZlbnCmG2VmCDDCWZlEsY5Uor0K9g9QYB0EDsGUCccA+hriqcSIAETCEBtXOCR1YXXXUb6WBTniAAtABy/WVeaBT/wXIAE5CKhuqnCINuK21HHcBAKYBW3EYsx6iErbrzBkJ2SE9v7b9Vu5yOBnAkXrsXR4BAuCNDsHkXCYZVD5tQmNb3uYNW3FgiB6qknE6ANi13u0U0CH9kG4FV9LcDB0BX/pYBDKQtEYbXsFEmIF5UXfNO2dlXtN1X0eAXyqRXwDACJK9XreaUKN124tsndaJWwAeDUXYg1w4BgxxjX/hJCaRWHTko7xzHlhQzwcO2zLAvo2KC4kRAUbwINNxq+ZEv4tEU9sNrQf43hBGCnEgYRM+oNiAzTnLz/3KOdRboCmQYedNXcbRknzTYR10pO38IP2d3EfVVno84qQAAhI2gP8lcIJNGl61aTqHwqy+LSmOFADEmeHnXV3phZCsIg62SkCx+IAFONkxpoG0EoyVDWFxoNNjWALKyADZRDjZoFrjTV8Fwjt2VE8KuGIb3hS50NjnEAEPExMnIa9uvbJs7QQZkAEFSGQAFt9cAABlc4KDY2LOHauxO8cYFamR4gZAYN5Ndl/oHTC2a13v6QmYagsOhtSkw91WNuOjIAIBJk9hibAmzqb7giGlEsl0pEwZdgRxQN3U7aGm4WOYXYKe2Aw1hRtD/hCXEhOX8glKguYmUIQk2FQDqGYXKt+xK9bKglF2qrM5ZBpwZgLUjeBP0diIyapICAqLVNN4NmRV/lb/aksf3aVncZjmyTCUa+4b9N3PbfrogBaujjwONCgDg2aCu2CIRfjksiVPoHApM0DJB4g43IVUatuIeYbmKtBUsmGh5iKsdNrPiB1p/dwjeT0OCkBpRVCEKjDceViERbgqhSYAAwiKiJOiajkGMbgywLjILksABZBbRfbpJdAPY5kCQOgXrCUiL2XhIuuqZzXpglaE1AWCqLYqjdVYCuHqrK4ZhrtqMUCBTpDcKxMMIz7int7Us7YdTwo6wRpUbS7OroJR6ZpXghaHKqiCsMXrXdtriiCASdoIMQBs0e7qn1DlR11l76XnJR3gJUgpvalas/znUdXPQa2fRYSWKy6DVMNtmqZRaIkxgJpOHwVIz6s+hohTZdV+1E6oXGgW3wFeGUMgC7Hwj95okvVIG8l+WHd5JIKZgh3aAHCG4MNFXL0+UAPIXWaC6dTO3eWOOBwha0wNCAAh+QQJCABxACwpABUAeQCtAAAI/wDjCBxIsKDBgwgTErzVhFKTJgwpiaJE6ZbCixgzatzIkeMtihNFifxkxIhIStIodVzJsqXLg9Aaipxp5FOoHDty5Lg5JpSLUy+DCh1qsKHET0iS3tyxowbTp01TwDjl0CLRq1gxyhR1syvOGjWCBAFbowfYHiGOKDFCCReurHDjCjyKZGdNm18n6J0QpIdfDhx48DjySZQ0aHITC8UFY4zOx4+ZgvU0gXJlwBxCcOixQ60RaYpDt5SmBCdUp2THelq9V28PDicA8wgx2ILo2xs/GqnbVGwQDx4mlLUMnAsXD2UBn9DsNwXu5xdxNTSSI2yQ48VbYweOHKzwzLE5oP+CTt4gLlG8r3Nfz2XCeu6tK/t9raK8/Tgfee8IMmE7d+MeYGdcfAOuBpsk95GHS003Weffe8VdpxdrHVQ4oScrJAhdE6IgVZ1YD/b334CVreZJhcFNeIKGz9FVXVgAdpBiibAtl4IGKoSwAgcndmBMB5WdYAOLon3UYSih7OCXJ6+Z6MkJK7QwAhQWVPmFBSWk0sIJlFk4gQpWEBmakUghMUYKKTDAwAgjMKCBBiOUMMMzdEYQATN2PlPCCFy2psGQYibGkCh3GaGELahAkQoUjKZSQp1ffGEnnswwo+cTHLS2YqCJ4SJRTSXBgKiikVZJ5wwW2HknCCBMgqcFfFr/NsEJYXIa1xdlfgLDrjCggkqVFlwZ6bCTsgoCnl+gopllHDxja1ynlEbSrlDYgigMV2I5rKSrGntsBKk80ecEHDx76xE5fBJpr7ZAkWiww8JbrLd4liAuswiaixUqg7HVKyqI+hosvNt26y2d9+rFgSv6YsVAWv7CUO2/wJY6LDPeGhvBF7Ys6wkHqTR8lQVqTSSqtYmSOmwJJUSKccavdhzeCoCKLJQ0MLjA1inWumBtu/GmEqzBrCKbrGawZWgzUafAYAFFMGiA5psMtIulu78Ca6qqEVigAo+etLI0UczY8gVFLgDWw8cnaNBuKrZ0sUkIdOP4xAjyPsMnYAyP/y0UCFCcEggMbmrgJt0huC10tZtoEELVKKeSyhfPpLIjBy34LZQVz6TkggskMNC41CGkYEuqetrS+CaoCI0ly3pzqbTmL1kBgjSnuPAw2Dam4IIFp1g6ggpcnqDCE1A8imWsYtMelA02RKB6CCcsl/ibp39RaZYt3C2JJI8+E0HsHNji/POsBFJt6GyqoILhJAxtKcvhv/xtKnSjEsH5LUVjhRW4sIAtSNCFLjAgdKHLHsYsNSfxPWOBlUoF3jbmLP5xRBrMYAUAT1GtAnZhBCRo0+kiYCw61elllWLGFybHqgpaUCOniAArWIGLZJHghl24oZpQISkIjk98KORaqv9Y9cKNBOIzuAgE3LrwuRy2iQE85FqkVoUxrt3pVxF4SxEzEghRnCKJHWQiARlQQChwy07cSiGeVFWprjFjixuJlDRwRsAuDDB0KXgcouI3RStaEVkggKNGKPEZnFmrgC7oQh5LZ8dfEQuNqpKUJN8oyIywghnSqGHPPKimGw5tUhs7ox8xVkmNtCp9PxvgHbMmKY2Jco09rFkpL2KDZ7BCGutT5Q2pJL81biyFqrKALWe5kVFYQRoWAFgO7UgCVvZRUuKLpJ1YQcyNRMN/JbCWmgy3iU1ULWtaG58vIyDLamKkFqyYgTZJV7o0NXNgVKKcpX5YTnMqJBqHmEG1dKf/JjK6wGl9DGWknkG5Z9TTngmRwiiE4M8C1hFbPUTjwL4wg4oeFKEHOYQUJAHCuOFwKhvjmp5MxbKKYlQjUphBC0jwuUS64AvInAT0pKBRhc6gpDMI5EkxYoNRcNSDtnjpM4TwgiG84AVUoMJRbyqnGVx0pwRhBQiyuSbddSF5QtDBIFQhCDQIogyOGIIkKupUqF7ECjNYlC008AT32aIErciCIOaKhg1sdQgVxdJTzRoHtD6BBLZwE5oYYIFWrGAQguCqIByhgxdUlKAgqBVfDVKLGTyBam9KnAWysIINbGCug9DBEKjQwAeyIhqTNUg0mDECqd1osCXo7Gc3oIpB/5RBCjZ4LJ1s4IzUFsR2I9gEmhZJ2Cx4dra2pUJKHzi+yN7AtwO5pJqOMFypREC2tE1sYx+bp2dY4QYXKIZv0RmB0G3zTV84hQqOq1hHkHYGk7LoDWJQgA2kdoan6MIRqJuCIzAgvdgVhF0d4dgGfkESzzgEGMgAAAI0ggpmxa0NvqC7/vaXAVSSLQU2sAhVuHdOqhrrD8AQAwYDwAGqMCpGF2rLEpBgdFRTVGe72lVV6OAG3IUVCEZcYgD4GAMmwIEPdCCEas6gFSqAqQVENzo3QWEE2K1rbQtM0Cfb4AeHuICJAWCALgPABB3wwQpcUeQt2kAS7luBBQJRgvdpwP+barIAFKJs1+3OCVYzsAInsrxlADzAAJE4wAEAgIEONGIFrciX8276hBVUjwMlkIZKE9fP/87Zs2jY8JTzaosnJHjPPX6AqEUdaEEPmtBB9kEWFG0zG8DV0V3yhCSk8YwhZIHSarKFCmSLhgt4VRCOLQEU2AqCQ3CCxFsWtQGOYepmRCLQBvAxmH2wgTLrS28rWEGPTADmJ0gDekxYwZu9mYq4DuKzAh7EIJiQ1vdJQgrOOHaoRw3oZ9s7EvUW9I87gIMNZOFZI6DeakyAAQygWgU2OIQVpFCMu3myFTrQahmYgFQpiPWyI5jBIX7Aifn6md5dPobIn92MktsbAIL/jjYGHFCEMryASCrlUoU6gHJTA4BmV/6BIlzBphDqaAMUCDoadOAKVzyBbkKQAsePreWPdxnQIheDGCJhcnsfw94G0LcJKDCIl9vHBlAIwYmMUXAMmFrfjbCB0vesiFb0nARQkEQWgk6BLHQvjy0YhbE5wXcgmPjPIRe5yEtOeGdH4uqHH7nKcZCFMjxHqvaSOdnNfoABWH4Ag8bBDGjKdzAIYQS2AGEqZiCEiesgC++j2+b3znciMHjUohY8yStw78M/e+SJzzqhIeD40NhuT1+bQAcof/niY74DJRgF539wAyFI6XTPUOpRh9AKx41A70vn+w1eP2rBj7zktFeA/9WvPnIFyH7QDghNSocn84JX3vjF/7IQor/3H1Dh83BPxRCYUIUyDKIVIfAEGpd9rcd9sRd1VFdyEkB7ied9UScG3jdoEJAYetICmjEBBCdoEgB/xXcAJiAEM/ACYMB3nGB/HaV/ZdB/brACKiAJekeCJFgFBvgAskdyzbAE4idyy9ZlNOiAxwBoDTYIcHFmI2BYwmd2lreBlscCl8cCTigBg7YCR3UDYLB0P3BTozcKYHADN8BYQoB9MLhnSeB0P7hsuEd4Dfh0+LaDO6iD0TaBWEF6nOUDHUBwKCcBeCgBV8CETDgATsgCUAgAG3BURAAGI8h3hzAKeKWFhlgGQ/9wA2sXhq5Hb4B3DBBYe2UYePhWhj7YZQQgCERxZo1Gh8NXc8UnAWlwBSKwhGzAAm/ABoM2iEcFBqxXgltIhVtYBsq1cWF4CEDgY38WjIIHgZZIfsv2Zw4Ycmz4dACABkLxDEe2I0eIcgMgAc2Ah1cwAGnwimngh2+wCt/4BgMAAILABIrAhbQIg1hmiI1IiwRYgjLIZctmCvRIgxAodTr4gz4IgW1oAD3oZQXwEmfWCjJXhzVXeYJ2jXu4jSyQBg35jeD4BizQDBRgjkSAi9n3AyNGhTdQBenYixfgZ/54DPSojyKnABWgAOZ3j8R4DOanjwZgCt73dAXQeyshBZz/1SMGJ2iXh4fVuIGu2IpB+QYQCY4sUJPmyI4aqWC4qAiHQAQuB4m8CI8iWYYPQIxTFwkomYNaeQyxJ3VTZ5JSBwqC12A22RFC0Ag4QHBmp4Q/mYfXKAIikAatyAZ2SZSrAI6rwAIAoAMUdwNEUAVbVVs3JgW02IVloFWq4HJgoAgxMGr0KJNgKXXip5KUKXIPYAr2SIxddpk66GOq0BLF4AA7qYF5aI2ndgAlJ5ciwAJs4JBs8AbIkJfgeABcpwoQ4AA+dmoOcFuHcAgvoApoUAA192UAIAH4Ro+U2QmUWZlayZxe6ZWZCZbepwBiAApg+XQX0BKLQAA7mYfF1wyp/9kMFVCeIpAMUYCXtLmeUCgBJwYBnkV3Q0BTwHkBEHCfFAABBUAAgBaTykmZYtAJChAAkwmBkGkKAOqAYhAABFqWzrgSLxADNeeWftiHpgZo5VmeVxAFGZCeeekEhmAIq4AMs5kGDrABonVUSqVcUiAFL1AGN5BUSfWiFMBlEGgKzAmWljmM+ZiZlhigxWgAzRl+U2cAcNgRZcBgB+CTPtmBB7CGKomSFbAGURAFI+oETpABhoAMWIAFhnAFPkYABQABFOBVOjBxVFAGi+B/W5VpEMCfkRCgBSqnlqiZkWmnQtoJAbCjlqgACZChL2kAAbkSbqCb70ehTtpl9hYA5f+5BsnwqIWQAMkAosgwBVMQBVdQcqfmY2SqCi8wCARAAKaojYZApGKgAHoaAJ3QCT/6o9QpBggqoNYpdVepAMmQAAmwp/w4qB2xAaL6ftrYh5bXjfp2eNapAJEqqclQAbiaDBkwBQJgqcvqAIJgW4pwVEygChcQcY7QraqQn/u5bDqao3qKj0KqANgZpXMqeFcJCpCgkgmAqmLwALzKETV6nBLghMYnArFpjSEndQEgqYWwrMyaDIxgqV1qCFEgAgVwphQHBi3KBBSQYlQABtK3fzpQAMumlZYJlvX4o1Eap3N6ozgasAMaADJAoAZAACsxCiF5nNqYBjKrhCJwBYb/IALOJqQBmqth8KjMmgAf8AFT8AhdOgVOkAyREKoE4AAFMKYUcAEUUAD2qZ9NWwC6GaUnu6qrGpkBOqC5ap1am6OwKnWQgKsVELCQAAkQyLIdcQNowGBKKJHiOABXkAZa6gQiILKnGrCP+qflGamMgAWWWqmMkAwK4GVLy7T3KapZJ2jbaAhOoKsMyqDMiaD0KKCUq6urKgMyUKABUAiO+qcJEKk/yLYcUQVNt4Hb+I3dyAIbKqJRYKpei6uSKqkfwAjRKgBYIABrkAAFYFvmqAhQWa1nqpjfGq6TqZIECquxeqzwuryrOpnMKalrsAYZMLBrYH4r6whI+qbUOABE/ymRLFCzGcClTlBysxqwYQC0tzq6jHCwlhqtsVsAjqAI1/oCN1AG1WqOTNC//esIFEAAD3id0YujARqwBKqnq6qqYNkJCLqgyVC9oJsBa1ABEAgAQsgRL9AGuxmz4DgArBkFTmC01viDC5oAYcAIQXurBmupuButU/ABChCmYjqmvRaqDaa0v2qGriq9smqdk+unuip1zKmnhcAI1fsBFRynXfagGzEEbYCEw7qN3aiKRImlONtls/sB7JsAVBoFLjwFyPC+CRAJOSymZBrAu6macokBbdAIcNwG/Fmn/zmrcuqn5WnHXTu6ZrAGH8C7ltllR6oRUHyHS+iKq0CXV//wjdAauzqLq2EQtCp8qx+QARnwvgIgAI7csFOYv9XqCImpVV1FASzIJiPQAlkgx//qkqcKtie7p3psxGEQBoWQyR9Aez8IABTQEa4QxZVHl3gZvm+wjauABefLsSh8u0IbBbX7qMkQtAKQAYbbsEZ1VGVAmGWQzVqFWEVANxjmKHJXBA4AdZZIoCIbxF0LsF5cCKCbyYarvUbaEVmAA1Icvnr5jbPJpVOwrAAbBmbwAQ2gwuysrAarwowQBR8QbTnsAGksqj720IQGJCFgC47CMnLXCCYAAHGKnQjMoB17rAFbvcmgu4bwtWVYrxnhBhm9pMNalOtJoshwBSnJoAj/EMnvq8SFQMtAq8Tvq8IJEKaKG3Q4DADNEAWGgAUDUGht0y70UwKS0AqNgAEGMKAn+7V6e8AB0MdH/Qglnati4IkdUQQZuAR+SMx5CdMwbcwiwKBhUNNB+9YfEMkr/MxBWwhGWgb3e242ps2DgAbe2wErcDemnDwlsDwrYHA/GrDxOpmTq9iGMAVY0L7ZSQCKwBHi7GMSULNOCJGVigVpjbdnm8xr0NN0HbSRbAZmwM5hIAa8h63npl0RF3ECBgF2NwKS4y6RIzSpUARS7ZKjy9gnnKtevLtH69VSF21niRFifYcb6pD4zKWePaKezQLJwKCSygjPKtBwLclxzcXR/xaqDoAD+QnREI0DiCYljiI5A6QoVZIFGR0JP5uSYNsJtFsIf9ylR1vd1GkA3LsRGI1yS1Czi0ybW4rWXRoFt8qglXywj6DCyqzEyvy+t6rQAFAA+fmrzXAFIPoGJpBtT3A37K01VbIC750GFUzVqYqr1TsFcAAH+7wGhQAJnSADmvkAOmDZK52vixyOZ92lJFq0CR4At8uhl/zWVHrJ7zsFB20AQ5fNiEWY52afVst43fPhP+MrrlNuGU2euerRXsvOf9ziWEDBaxAAkMC580oAGawR//3LrliU0I0F0g0Hj9C7Ow2/PT3kuPsIj5DJAsAITJ7NTEBjoRVxiOVZrf/QAt/TPv1kR1WSCu6t0ZGqqnzrxY6Ku3BgzFHQuwiAAGqrmeTIEW1gAu8HzGf945mO6i6uwv58u+/bAAGduy3+CLP+CFMwaKJq4Rfg0OV93radChwVeiHUOpJA4geQBgmu4n6szAKQ6U6w6QK9ADLeCQ9AAIuA47/M2Qbu2V2KBXCgBWMO17DeALnL5y2e6bsr5k6gb7r+q3O5Ck4AAId2PCMAPpKzKFgOZaQuAckQqey8Bv8s63AgAMVdCKhtBigrA9Xe3xrB2yydBrS57T/u7VoAB8/+AWbw6raOybQu5lhAtMZMALSlAxuABqHVpvoZ3mLmPk9gLSFuAWoVAqT/LgIDPbrV+8K669mG4Kh+zAgxzrmmQADJfRGRDpTa3tncnu4V/+wqDOvQquQC0PHnLuazSY6h1VWDwFg6IGCeVdsjcHSJgzzJgyXWogKkPgAVbPA87eeZDAdjHMEZ0Oe5OuNBL88ZjYfoOaJpHefNrgxaUPFK3tNRH61woAZT3+3ovu4+NqbeC9EmIGZuJ0HuQ++KUgKoMDwdsKTsbN9J7ucdrwZ/ngHNPgUwbp3VjqS6uYTqWamViu5d2uKAr8L/zAh8XvstrgyHn+mXin6LCwAiYL0CMAAdzoLtUi2JAjCtAwUt0Ao4cJybf7uvT+ePsAy4T7SQjQUIrqqaidIY/6EIurmBsfmNTgDTkE3nr+/3WhD4QUvunz/1U0+0DPtZUPtZwpnyGd0BnpA4oMfe2QQQtlClGtGiCIYDFQp9eAQHCxY4EeFoiYilIRxDGRKI4WjgQhyQIUWOBKmIDAAJaa5EceJkFTKYyLCokQhnGaFlWKYw+vChwaOGNGvCEfpQRIENgihQEDRIxyBBGyhAAJAGw4QTGp6MGCipoC0otmydMJHQ58WIj5bBUeYwopZHAjIUAgVJjAFBJPWKLEPGwJIBb1oaWlVYJsSHb7VQnDLlAyOgaYdGpPnwUZRmAApMJUAAwGcAB9I4HNCBQ4gUDEasHiFWLNmEZtYIiDxRGf8himyVxZ2yphAkuwY27CUOxO8BCW9YFjb0UObaxFoI4TbU26cAOEAh6m47NEPmAhcKfJaQQQAWLcsWLzvg6UQIDbZSpYLSurUnhAogFQrj0+ZbZZZRpjsBBFjjAzMgAUUBB6ggTi9VPJOAhSsEIywmZNSDQyabcKNIAJ4a+EmiAUskii01pgAADak2SCoqCArwLIObtnjDtPcYAGu1+kLoAKEEAthvoWWKVG+x3OAQ4AMBzAigEAQKiSSvB0dyQ8LAXCrMMPQIcQgiZRYjZDdGGPkJrQG1KJGmtlSEYKkNVHFKBx2UKuCAm3DCwBMOTmMAFdeeOKGD0ICTrZAAGDr/EkklQRSgAUgQMCOMABQAoMqR2kAopTfeMAwmiNTLCSI1btuCMRFHDKrEttRgE44prgAAh6kccAAAEz47wBDpphtggj5RU02sEQY9oBlQOikEUUMbWC+uDMxbMgFIhAQOkgoKwBSkLG49YAA2WGDB05dClW5U3XqFVcRHXHWV1QFJVFICzWIMbYA0VsHCSEK22AIZY2o4LQUNhn2Cgw4OWAISGfYLwIzfzDhzyccEWBa4uoArJAECto0jC0K/HbfTl/TtEKfEipwOt50aEECNduEd0N2ImoFAKhaVEk9GAK5Az99lBvBA4BDgU2EEFTwpK5K6wkhwUkMZAuoRlxlZ/8PaSIFTwAAKti3ix28HEDtfUIs8tyYxvdjikSnYJZFVmtCKIrw3BaGTTlU2oCpD6bYgZBUMPJigh/cEnQChCq79gD8nhUSAIZexU5KRjQOoVIG70Nh2BRMQEltsFkw2W8OHtpPOC5xAvCjeVieLKArNKCjA1lxBG2Dffv399wAMuACWA09+lCCBBCRd3IwEA0DA6WUeyeBAm4o0cFnMDSCACUw3yBU5EcYV3aHbKAJTt36nE2CndoliXeYBk9HsAgeaGeAKJxL7sl8v8kd9Fd498MDzARzIJw1AHsQYBgmJLWN6tEnPWiLCiAoYAABdq9IGwNaMNGQQGf95CJK0sP+ddPVtGS2rTVtM1DoBEOACF2DRUmJ0q9CkQQRTqJG/ppOTNLzhME4oRAN6QrHi0UAGQnzcI55WCEaspUDnEUAyMqODCnYOOSzIV+ncorIklWgx/tLCFKLQk4Y0ZE3qo4kA6sWiu0GlVs2oQAIYoYa+5U93ftsCFpIRhv5QbFIB6AQNEPDH/pjhj2b4gHnWwAi5FEgEkXAA9ojjBhxsLzAvOQyJcCORUoVJd1oAUU9GFJGZmVAZNHHCARwQIwKYoHahwWAyEhCGM3RoC3KU4xbgwIgFIC+XCCrEpP4YKadNCnkNQCSIHNIYQ6yhGdraixWyUAQceC4NGOJQh3KTyQH/6c5LLXtM+tjiOhEQYDMEOFYaDLFB6d1RYg3JnZcmsphHMEKQCKhWGIyHvDAsC3nAWd4C4iIAQ0hvDWuI1jJJUotbsKIELfDBj/A1TXSO7pJDWYwcP8iT/pRpRO/6JjIIMBUKsEgqqAyNCFw5zCSeClYDcIKSktGZY3TCck9CUD6vhUBmIZCJtKFJBpJB0HCOxAog+MIXnjEDSWShDQAIzENGt6iamFALavMbrCblNARJTETYxMIEb6YKHZThKXmTHUqChIAzMERMcAgdHJwQiQLElQAGUEACeok8xw2RnkKqixlyUiCbCCANFahAJC4lEhuUYD4WOGoJXOGDskxz/19GOhJlBqSy8i1mCvzB4x/v2YBMqiEDsZudAzyDAdu9gXiwNMNE/KaF+lFEVpohQCRmg8iedJYGu/1ls9BVJGSkQQHH6BhiS4AKKFjAAjNgrhCy0IjIPgez0ElX7mwIos4q76phYIRu3FovAjSjGSKgH4dGeEcE+LCGXtqXFpBxAF2lIQM+/AACBQkcGTSsYQxLrxILtIxVpMGwEDAufZCr3BIwdwauKIIDDGBOs0nng2/TJBe96EpA+rIQGRBjV1e4ATS0UDwwFIET0PuTvm2hO2V0gghKmgxe7rOA/JTBH2vsLIwcchnIkMABPgISK9hACCOYz4FToeAZCGEFjf9wgGjau7L/aDGOtnQMorSLR7tKDgsHgMDN4kTWRnQZB1WJQjIkZqoxdcch55lCBtfwygJKqoCUQoC1/tiAImGBoHD4DjPjYIUZlEDQgRbLYhMcaIPkSgJ8y2xEBBQm/NkQC4ygMz7rHICXtcUJsfNW2D43zQzg0VmZVbNEsNBJYS4Pjz9cluUgYc/+5mTPaQCAKkByiEAjOdDzmY+gFVuCLGyvpemRsKPVlM1Zom4388wnPVFQxIis4n2eCQ1yBmAyLDhhDf2ZSP4mKpS0UGx5y1sIk3y4LHsC0wwNMZB5KkBgkDxDEr72NXMVy2sLCFoImjqACCabJw1Jmap+i2f/MO2Jgk4gYAGlgsMBCgCBqKhCFYJQygsB0AxtByAMCxj1a9sCQodQjdm9RGKZ3owAP77SPwbKCAGgCBIqtGAE9Tkyc48qCXznuwQ+QIgIBKAyLi6GVdPRphrk2VkEdCLhoB1Qtm4WYr2VFge2OsAb3jypBXwAjjYc3ZdmIqIPZHQ2LkOQkPA4qZ9kxAnN+DFIhtAK+DwhFYy9uRDunYoS5HsFhFpCBk7mIXidTpuP+MAflae89D4iTCoKDzkHIK5VGKIlTpDJXCiFvA9owV9q01BFtvNPQxhiiUu6atYI2YA3j3YkM1jBCVKT3KMiVRI4X+wXLNCCpYrm5zU8tlRz/ydHOBTes4NkujIyIE7ZURs0oWHBOZ3AiLMOU20W7TwoK/IliWSA0r70LKUSAFeSCAE+BcO7gn1tgbmjXxI8R87PiX4qLUJ686hTkiB3+2yJnWFAV3AAUjYAFYkbqanDAJZyJe3yiWSrJTVxNEdzoJzwrzVAnl/iDwWogOIaiRdoBQ3YQAaouRmwAElQLguwPUHjHJQYtn6RsDBJE8FTmw8qPBR4tuUpPv7bjNKyFYQ4AB2sulUwMcRDHhFamVNRk7VwoP8oQixIJn3ij0IYrsMiiVFoARVIgRQggVSIPZzLO+UyKgtQAUIpD8XTvCH0oF7RHfqjNASQwTBwlgERgf/+owAY+hb6WQmXmIJsiwI+QgFuC5oD6BK/wY0ibMDo+ZJo+YA1MEAxAIAY2ItnaAUVyAr5ODRBw7sRfAblagVCGQC/SzEvQRIP+T0XJDxYm8EjMSOk6LIui6v+c4BcuTYnyAA+Up7HAAAHwABDgANCoCqcMLV/M8KHcII0CBIxeIBFJA4hEJSCsQWdC7S8MyrbSwXYEIE1UI9Zei0yBMVZ8pKwU7UzUxNTvABqIwBbWb5vKYwMSLpOkIEEcJ8my5BcVMBRcaro2Y4kvIIAEAMyaLsHaYEnSMby8zXbs70ROJyUwI5I86AwkTDN0x9bioJ5urPFgAP+gwA06IzQmBD/ymsMjVTCNOyEMLBAproJ/WFI9iodeUQMZLgCAyiARfCYGYC7ENgEKEgwQXuGZ7A9KDgBhDAn15Kj6Tg2MfGbkfSCLoLBZwMtNQmnp0MDF+IZ0Kg6ZKA0hHu2ADCAZIieOJIjLJCA8XKJ58ACmOAfB7A1jwGJEQiBE1ANfCPBVFiB/7k2AYA0F0SSFbyN6RhKQii4GEQr23iE9zGt/lNFVeqAVlwFq0k6FPCjJ0Ek9fg9nBiADZgdezkAzxAnB8CBshwJSTgarhiIuUuFsfgRAtSXFBvCm/CgORrJUyGgNFS4iJSA/qOKZrgCcRkZTwEVjKC0TkC4GouUBOqV6Wi4/8wczjjIQAY4ThIAFA3Aj2+pIlzcPNyIznZKsaG0JRhMr/SAAwDoMjg8rYsUDJfIIZmgnACIwT6igb1ct9HZMuLMzJfUANRAywl4y3yhpGUQylqaI/hThqGUo2VgBM9yFtkygYerNvjSQRZwgk5hqYdYEjxCvMSUM8wDke8YhPb0mLc7AU+YgAkwhtEEy0oSQ4Y0w/yRyEeYPryMJ+Q5AyTpqrhiqgHQFRoSQtw4tcWxswiVszq7NAWgoAutkhnIgkiSJpnAENyxrgRkyCnow+r0NiVxmlEjBBe9kysojWjaICxYBQEon5xwDBvzI1hDHhpIR8uJBH380UeituakpP9yqRFQZEiSTED8DEVP6hu/jKtmWAUWuEwAkIk0OAAWcMcuFb7hG77dEqJOOAbNQdMq0QEYiiGZ4JLSTNL56086Us1b8gkJGy08XYXSSBiYONBvyZBJOzgUCAA/GiT72y1TEAM/Y1TiWAQAOAYDkID6UdAM+LdKnb4kHVES1Z//1Lpzgc0uE40D6ABQlTYAwIAPtVF64idJyaU03C0Z4IhXhVW9QAO/iIQcSoNmsNXJ6hVLTTY5DcpKzUukxIl6QSUMIMwBQAb+gdE3yFIbpRTE+6MFGLdprdYCeDls3YsLAI3AhACMQ6e+eb9Lzc9PfEeGjAs4oggC4E6K2wDxCK//DMKX5niDXYnKwosUz5qnPaqzTiAAC/1X4nCEkSDYNAhXnCDDSq3Gn8xK4JuCd4IDcboZR3CEMnAEIFiEGFBTA4AvEwhUeZpW3hq+WKwUACgDky1LApSu9TAbIayl6DSSXiVKxbBZCLgAQXAEJqiCMthZIGDKVJQrCRCAV4Q1/EsQdFS6ezSARW3aChrVf8NKs7lUomug0lRNNVGTR4hYri2DKgDbsHUEQWDKqUCljSW9X3KaSIlB8+wEBbhAuSWOGPiL5migQCS2T/xDnOjcXU0PljmlwBVc03WEiQuxC7C4K9DSbTS8x51KhOuEu2Dayt0LVTiJvguVoaCshAwf/08UwpctEmVwgoe7AFUI27AFW0eACtWNkQIoi1V4ngS5lhpTut1MRxmoSiq5XZIwjgeoAPOwH+yLKk+MsIPtVSSZmwuggOStAiYw3TKYuMNN3Nk5gOl9yGtBz8Q8VBSQAbj1Xr1IAjJ4AFBYg+agR5OUCAGxiaglOtzo1Rt6g4djCuUNWybg2ahwoS5rsjdQwupFABkwz0NFz04wAHgTYJG4AL8AhQwIvcRQ4O0oQsz6SQim1C1Yhgw43g244PjVYBZB3NmpirmYqYa5v//dTURlJBUeiYA9hgDIACM1SfKlLOAMSrVhWPoTgS67gB7G4Pjd2cMNMQpYXdNqBt+AEv+GSUwZULr+HVMFMNMmFolFIINjEF9kgOElouL/iJ5FQVKZ9ZJmAClBWN4w3tkkSAIynor7fR7+yK/8Uro2HqJqCQA5nmOQYOFjUIBcbY4NApUYnmGVORLhJTqGhAObeZPkFdzBLVwgSORFQFx7EQHigQSlqzMxwF5IrtZjuFYVruNjSIBzApXDQAwGpqxFKc3yIdeGk1hWJlyxTYJYbt/VhYD4CUYh6YQEsBQDoF0hyi8xIC5MBokYAIAHEIFhBlFQBpO10FyFXBnhPeUDIGQmUAQiIALC5dlYDjEytmYDaAYFsJYAECcCOAYxGKI2pl3KbeJyNoAKKBeTLGZzkVrVQFzm6EzYHJ5nVS4DReho5n1laY4KEEMDexkupWvVxjuGY0iWhgnnhRZg4zBnEYgCSlpn+7FiJMmTnzzN38vhFXmTQfhaIlCEC35l+h3piu1mpbNWcDRoSeZlArDdJiZgAHgwcyqdmEAMnAbEdwbOxrSoFVmhQRDce25lsaW4iUWDpM7lNhaD/jOAmFI6RCUusmxiFp7VCpiN0NvrJVKL5ikSNUBmURFsQGyAKSCAkQ7qju5ofK4CngUC+l2ERVhdGXmAmDIFU+gMuMZs7L0LAojbCw0IACH5BAkIAFoALCsAFwB2AKsAAAj/ALUIHEiwoMGDCBMabMJQocOHECNKnDjxVhNKGDGK2iiKkrRbFEOKHEnyIENKGzUa+fTJSEcjGUvKnEmzIK6LolyKYjkmh88xPZEIhVmzqFGJt6RR+hQUic8dUGtAnbojBwxpuHAd3cpVIC6UTMcIRTIGapAgE6Tu6FEjSA0eY4zILdW17sxARsgCRcLSadQJgN2yrdGjxw64SORSsss4JIyePp8+jVojLWAOHHpwOHFiQg+fSug2Hv3QxsqeU2uoXs3WE2DAbXtw9uQpMw8NMLSS3m3QhtJPOaYG4eIhrWrAHTx0IO4Zc23MmXtA0c27OqulwdsS91D8dYfkGDBw/+fimXbm6DVO+KrOHu9T7dzjD0/uQXz97lzIp2VbWIMN9rzhBdwObU0QH3cGKscdfcXFNwEXHbjmiWx2ALhbKSsFd9Z28h343XjI5fedfrWpYCFplGS4w3AHepBffB8iWBly342YFgcnjrbUJ0iYBRh5Z01AmyecFckZB7RNUCOCtbmSI2OB5MTUESGcUOUJm4WgwhMtSFJCCalAIaYkT6zAQYzKEfmkXTZEmZNctsQZJwMq2JJKCb7UEcGefEbgCxQacKCkch1MYOKaXQWC0kZGwABDnKg4aoEveVLaJzN8lmCLBp5AmNwE7SDKlRxuMuroqRZM6suXedZRBzMgMP8jawR1lKCCoDV2cIKoW8mBoUeUOIqKLTCkmkqqvnxB6RcRwGoDCLH6+URnNK7A61alfIFRKah0CwMUMKRy7KTKMtsstOgy48sIIbj23QS7XlsUCDCUIk0gX4iJChSopOovsszKii606qISqCfLwStvUTN8Eci9FvALKRST+pvsnrAODG0dBiP5WrwLzzTDw01IY8Gwj+5LqcXmakxwBKnc6hpgIIdckhWsYIVLBCcP268FX3xhQQlAY5wxwbLGfEKSnlhrs0y1yGFDVhHYQgIDExvLqtEDy1qH0kM2/TTUrJQdiAUpYMlBCBpgPawt3VJMaR1I62nBE0g+5/TYJB3/YgMzXzAQQgjQnXCECy6QoIIGGgze9giptKpsCSMsPaSTfJckhQ1QuCAnAxqkkALWj4I+uJYqtDOCJKkqm8oKSXIQauYkSQFCKiQ0ztngo9cLsy2ga0BC5KnYYcekMMMO2N60i8QKCIBiWRvjbUMRQSDMWBA6Zhq0AwXRy8Y88+zNO3+7LSosvuUTdaYSMOUjpL+lJHfqWYcQKtB2QgvlO/88zyQYwQiewL4njMACzWJGrcR1p1bZrw6SgJ0nNFCH/lHEBjZ4HggsEEAGeDCAqDCX1yhFQoEpsA52YJwKEPgfC0akDhm0QQSgQAJbjABrcYLCF0zoJzxZKoEKpJwO/5VVQRdCBINWsIEvrGa1EQBveL5IoJ9WpidZWXGBddghz4wIEVbYwAr0ipPnPIi4ovUpaCLsk5/8BAM+cfEhXmRFIB5FgsR50IMwUBafltUnV1UKgUuM4hshAgI5wgAViHOB6UKANQaMgFk/5JOyVpZAZTFjkA+xghzkcDJbII4Bm2DcJuJEgiii8ZRovNisvtBCTCYkaqzIFyLtSAIS9CsC5hJasph1yiga7ZKuVEjZrJA9q3muhnIDIuCChqk97XKNsJJDMB1ihSRagJS1tIW/MJbAPPVxihZ4VSun+Uob4A54ibNlpMyFS1wGrZ1fqIMvxAUC6pBTmCW4WuhCN/86rFUMWRfDZa2+VMR7wjGfoNyE6FKwCQbYEpDkChoJS1CHGYDAoF2swwhqqUg8wiBZzMBFFMsmhZKWdAYzKMFFMeqQQ8xABXW8IxnzCCshvOAFN6ACFaRAhRdQYQYFZWlC5CEFIdRSpm6bVAmEoANVCEIQG9iAOAaRB6AKFY522CgZHbqv75XAFapwqiDQgAanotQaV32INSRxtQ/aQm55kkQWwjqIsOqgDCgdZ1oPYoM6oE8DKuDqR6PoiqhGVRCDKAMTrDEDve61ICAoARQW1zYPvtUXgXDFCjbwVFUklgqsmAErHpsQO0gCFblbaApqGM4sbEAVnEWsDl5gA9H/yoO0B9Eo1lywidONDoEqOKwgVAGEQTDhpza4A24NUgcGHEEDCiWcZkKAilJo9rXDFcRsGWuNHyh3uQJhRXOPIDrCYYYHKYBCIFSwWeEOwqcolQInDgFeebDCFyQ4AnlDkILTaQAVvmivYQXhiBdYowR2kMIPiKAI3FZTDl9wAXkXyl+GoqIErjUsBRBr4BnYwRqHqAIaHPHY2uYMBkqY8EKPsIlRRtCwaHjtexkrCRATgQwxGERaZyAEIdzLFimusOhCqQEovC6qFCArYhVBBTu0wBp6AEMMAEAACgwBo1LIgysIGIgIoMKDoqMekYe2WQokGQ2IZcIMUvGEGUR5/8oAAIADILABHQSTFVQQgmZXoALsSYKyYl7cJlDRjhWswMwUuEBZ1SyJFtjgEFKOs6Sp3IYiqCILQnChFNZaJumtAASBsAOgqedBDdiiHSrQAYzTjD9J2OAHUiZDnB9ggAMcIM4mwIEPspCFGdAOBDxWgfRqxAFm1DYLJxAlkT1oAbmWIbHiYMINpPACV/SaFbC+gKwfQGsD8OLbtgaACTrggxW4gn8hS+KfV7C075gAAybwRB3wnIcVqFB+oMvdCcqc5MTyWgVUOASsY0AGbnM7DnFQAMJ5sYRbw5vcK8gC5hB1CGvYAW9J6gAGABCeA+BAtIeQwhCywL5NyK+yI/9oQRYgYGZB4G8FQgAxJ2JtcAMgHOGgAAW4Gx5neJugCHXOkRUY2wLYufvdGJDAACQgbknI4RB30EMZSC5AxW20liWQKxPKUIws8HkGCp45wWv+gJvn/Oa8sPUBDGAAXOOAAqrIQ3X8NoM/++A7G7/1AQbA96VjQAWP/sEPblCGLdtSTKT0xQxu+oI88DrmP+DEHW5ccAOU3ewKyLwClrCEby8hDgyP8wEwQAAICKIMoxn6msuEsHcDQO197zsAVmADKeiBEz9QxJadaGR+kUASQhiCIsRRjIiD3btiz4XByWHzOIAi8xWoAOcRrvA4dJ4XCHc4Dl5rF1YcOH6d6YD/65Ue+9gDwAczoMLtOaGHF7SgBZALEw1HIARxVEEcgigC5DkheT2gQfkGh3nRx3lLUAGgt3DYB3qcF24OQAFcsWkl0ALC1noYsHflV34SIAE4YAc7tX56wAQCpFSpIAmSMAM3cIJlUAZgsH6S9wOOsG0PQA6XB31LIAEiUIAJeHNod308VwA6VhObNgMtUCaC8m4WeIFskAYDoIQZiAM2tYKRN3h6xjpfIgkfBgZYqAg3EHn8x38/UAWyZnm0dnMKUAEicIYDmIDfhoCdB3rYBwAQQBNB6GQTKH6vd4FpwAZ6qAt8yIQOUAZD8AIr2IU3kAessypWaA03gIVVwIJd/+iC28Z2OliGZygC0nd9OniAmdh2BCAIMrFpdNhuJiBpR8h3bKALepiKerh0BVAGioBTYIB8sMZYCCYEeWANWHgDiuCI/Od/BLB85BCMCZcACSACyZCGa5iJcdB8zQcABVASFvdyFHgASpeBElCD5JcGLMACp6iHLHAFB1AA4qAIREAEWMiFsNZkQ/hhiwgGu9iFhDhlwBiMOUeJZih9C6eM+mgABKAKIkEFeVB0PtB6cUZ+Gbh0aZCQS5gGVxAFe3iKV7AEragI5GiOjphlBJRgRBBl7wiPP5AEAHBwwUgO9RgAZVgBZdiGCYd9OaiDNsd2D3ABIlF8RqdxAHCQfP+XgTd4BZXIkHnIh7qQhywgAg6gA0zwAkTQjlyIe1kmBGBne3qwkfDICTcWkrQmgzlHDjR4fckICvuIcAbAfJb3jBThCEWAAxqXdxLAcNZYgyJgg1cQl1HAkNx4ipZgCbpwBQAgCEyghVgYi7j3A3qgBzdgYFJwCFFGBEuJe0BglSNJkiTZCSfJCwrwbQrglWSImWAZlswXBw9AAGhAEcWAA0ZIfjVYgKhpidFXAQ15BQzZkHepC3jJAgdAAUe5iDfAYIpQBRTJeDt1CJC2kUtJBDFAazFIDnEAmTkXAAlQAd9GmSa5jPqojJZHADI5EWhAADd5kNfIeWZYiSKQBlH/cAVDKQINGQVRAAh3uZ4S4INNRQEFEGelV2dMMARDMG1gIAW6qAdcqAcgeXlZiZw51wkBUKCZx3AGKIkJp4lkeHP8GIcSUQVTdgBLkAbVqHRLUIk8GX3JwJPHaIZRYAhOoJ6WQKID8JZXwHQO4ADaSWVzRp9HOQQbUAXt2JgxmHOgQJI4WqA8GgCSWZkvCXrVp4Og4JzYx3YEMBFAIGsAsIQLOQDf+Y1L6J3ZkAzNKQLo6QSGcJeA0KVYoJ5OQJQbUAYvMARbB1sXAAGmhwYvwAQFAAFoAAQXAAA4R4/P56MKYJIF2gmgwKeY2Xzf5pU2V4/RV5m8wI/YKWvUaIoJ/ykBrskCCcl5mtec0ZcBlmoIXSqiliAAX2oJImAADnABnqVYgWimTDAIEKAKOiAOOEV4F0AAlheMfKoABEqMBoqjZ6eDvICSvOCVOZeGBwoAJBYRMaCdRxiUDBmeVxCUnbcEZUiMxJgM2ZABU+AETpABApCtWCCbUZAMZ3hrVEYABVAAF5BkdHZ6OPUC4pCdN9oJBMqczGmlPoqruOp8mnd2oMCczZl5AbCM1/kQqgBne5cGQMkCJ5oNy6oLnEeZzwetyZAM6ImejMAIApAO6VCiUbAE4rphUAUBBUAAIDuuFACyBEAGIAsADOuuPAqtCRAAOCqZz+enyxmdzjeMx//YnC5rAP/qEGUAZ0qXkGngBAw5nleAlyKwhpmXAN4qsVFgjFGQART7pYYQBQcAATowBIcJnDxVmOLwWqKKBq8KAIV6mQNaoPuaeQNKoGRrryZJtvVYhmTLpzobEW4woXwHtE6gC9tIniM6lN9WAfqaDBmQDej5sMlAsdnapRlLZQWABoPAqj6VUy9AYFVQUjcwVRDgbc7nru/asi6rsgZ6mdAXfQmgcANKjM9aAaVrAGT5EEwAZ3cLqQQblw05ok27mkobrYdruNkwsYwwBViABRkwnubJdJO2ouUaVo7gCM+mCgXgbXnaozzapz2KutELrbT6soXQsoVQCBWQDbz/4IwRMQiKupBAqQtOIJcjmr6WmKfQGgYfMLGF+wHxywjB6wRUO2dwNwiOoAoX8LFvigYmK3oHYJ4V0KfvyqOcC7oPWwG1yrI4Sg4/WggPmwFXcKit6xDFIGt324eymZdX4ARc+o0oyaOFQL/y2631OwXA6wTJoLOAeJhWoLW6GKfE9b/ayZPOaqAL7K4ygAAPXKXNybIJILPM2b2CmwEJCqEAK2s1mAZ3mYeW8I08GQUlir+A27LEiMICwAhRgMK/G8bH6IzkugGJVZ+KwASOqwhgUKZl4Lxsd7ota8QFur3Qqrosm6d6nA3ZUAgBcMLZ4JwAsLMK4QbauYSQmpdR/2Ct2WCtVgwIhmCJpUuM3Vu/vnvJjNANE3uMcTkA4Bqub7oBG7YBaDay2Ee9tkqrfEqgkKCvSmu4D1u6Bqq0fZwA2SAAyaBwrBsRbTCKfOeadHmXIiybJRrJDBsAhgu1jPABhXDJ3fDME+uc1olmjlBXaBADaZqdAHCaSxDI/KqvKInAoKu6tUzB0VrCdVzJFJvLnpmkEBEDG8d351uisbmeJXoFKJmnFSy4mEy/9KvJGfDCF6BYvznDUqAIZZVkacqikpq9eZqj7pqjqGzL22u4trrKnVAIYWAGHyAASnyZnxkRZBDPBMulJm3SXeqp1+u7AsDCUzCxz6zJvhsFCv8gro37uEfZpo5rXEywdRvgAHFMvZyro6cbBrr7sHZ8mQTaCQgACYWQrQLQsqDwmcPqEA5wk3ebt7rQpVytnl5qCfisANE6sS8d0x+gyd2QrVPwtMT4rZ8srnSmpma2ARCwzZS51H4qq3zqyq7cvT7KuTwKCdnQAB6tutXpgA9RAEmX1VBcol3N1fcLuNsbv9CMyRPb0oYQ0BXAuhcwXIMwCGigpnBKALzwlhIQtFdQugQKCvw4riZrcwEQffCaDN2Ltgisr2bACLDACLZ6qAawARCh2MfKpYDwpcHrpViQDrCQDdBK2d3QALDg0v6sydn6AZt9ATRqe8AJBmrsv2n/+rHb7KwRTQ4A0Ab7ZmhFEJ8HwAvvWghV+terXAgcnQ0WG9Woy9pMrBDxSX5LiJeP/aVearHD+7CXjAWc+tLL7M+MUKW5LK6iqgMUqQiOUFY87dOwGgedgAJ8CgA4sDYM0AJCoHJFcNW76td4CtjuXbHCewXbm3m//c5xtgTyLJv/DeDBiwWF67suDdUv7c8oTL9W6q1tJ2njKggsh2jxubnvygsYICQhsDrGo2dnKbbyGr3uGwaMYLFYUAHb+8cKMLcPAbt3i5fEfePGDQjpIADz+8zpMAUtHcY+PrEf0LIPimaqcM0BjLJLEJdOIABXkHlM7aNxgAEdwAHV8yW1/7gCOLDNgCvWCdC92ZDcaa7RxBgGrI3YDqHY/A3FxFyiZl7ckt7j8Rvdao3gPt4NH2AGLpsLaMDGg0mYEz5WoQ3eBYi2nSADJlne5aYBI4AKdvAlKSUEbjCKB5DFZmAGFbsMwmvL0Mra7uwQbbDYCdnpnh686WDmwTsFhqvbzw0LhL3gfJwN8evPX26dZqxYz4Zmd3Wmr9qrfUoDCIAANV0EJMcl72eFwG4HKzCKBSjfHwALy5DmgzvwhcDaGZwQYt7Y9NzVAA7qyr3M8HvZbt7Fx37W/4zqxIiSNUjkcCrXiRaf7O2u8C7vBEDvTyAEjXbvRoZgEWQC/V4I3VDfg//LCDOfywYQmg/RmEfY2P+N5sEb8AEPC6n+zCxssQ1AvxttBhHfDeKeAJ9ZAGb2v29KASibgWkgokvw1yiAACZJAOXmCiRoPKbVaMWTCq7gAxgwAIMLC2mO4DMvANu7yw8BkgYg41Ls2FyNl3p5AGlQ3Gnuu90wBW0uAHxcCJAQBohfv4gPCgQwCEOwU1QwBINAAaLssSRuiavM9QHAjxSwAlwS9nZwJ6HfbAxwAiawhNjq0dLq0Rlg4NLHCwePEBu8zQPAhyiNlwfQAelzJgNgCdee4OlQ3CLqz2Gg0fR79EaN3+euAzogCJ2dWGWganW9BEXM1AiQAM64Aevz+Qz/xECoIGynnwbJALxYkNkZ8NRY8KGwDxFLagASIJtsEJu6MAAA0AHtUAqlAAMpMAFpDxDp0glgNEXAFCxYMjD60JBhw27dzJj5UKiCiCUANBIosAHCBQoXCjgAkCZZoQAIwogAAGGFqxaShLSIKammBUkafGAYkEaAQCxOBDQUICBZMowFtCxl2pQpEDIGJKQxBAiQpQEAcLQr1YQSjCM8JvBMt0zgFIMHGa1t2PZDxG4NCxngWMBuAQgUCCzpaQlQQgEZPkyscKCAjydCJNmxY1OSJFQkJKvwBKCngGVmsQgwJNDQFREiDhBA49S0FlVRpxoyFGWACRURpEkrBUNJ/4geXDCkKZsObdqijOAOZwQLVjdGCRwMYvJiCJNBFDZQgEDyQBosAgXE/ZAMgAkfL2MybpwqFZQRDDRUHmAJs+aE6bAkuJJMAS8HpU83vUAGwJIoorhCgg6gCIQSab6AwZYjQvCkA7Iy22wo4YaLyLh0YNGuu5YoUOVDNC4QZBAdBlGFggIAcCK7zT5IoKUVNFBBhZrsKOHGVFDR4IQJrgNEIPmy8yybMALoJA4CBtmPKXFiIMCAJa4Y0BMLSvnCCCVcgAGVEXbs4DosluFmoIciEq4BDGFRQ5k1gZzCiShEkAAABwqgDgcI7CLJECFhEaACAopY4Yl22pmxncfMM/9vhBMg9KsssyD1LYMAjASFAB2WXKoK//5b4gAffKnNBVJtkcS8J1TYaYAfMwMkg2weequbBhpIRw2BcNVQPpY0AgAvCgCQQAInnEij1czkcwKA8NpBBQpUGFBhhBGgOC8VRr/8K9myuFnm1Q9AQQkUAzbQFLVOD9DKgi9cUIIBF2yx9tQWnvDBBAksCXOZFt/6QAAMcwVyGWWUCcoBVXQoQwdBpAupAAL+wy4dbsZMxxAJTDiBRvMgg+IxaLlsVAI+M8usYu0SCMAMSAKowAAINHUjYo1wgOILEtRL4Qh5UznVphVwOECXfYPczjhljNNQGSDTYRoLQ36VTpDpRlz/+ESIWaDYW80G6ICDaVFRlDEobCFBBQ46mIoRMbkhxNt0uimkEDNQCqOQF/U77QKaTWjHAp1DOCEFElAx9UZJVOVp3zEBmQI5DYUsGNemtZtClzkdyEtPAkzQCLuKK05WFww8WUEFW3o2z3ANOMBAAhEK+UBMQsxqoKKKWg4gAd4JWJJvDEwYVIUUQjBeRgYYUL3ee1ndWr6ijvbTOFwpb/NidQHgKC8ADugJkJ+WIeTtt7cYnxssDphg43YKR+X9dtbD94oEIOnG5KHqNiOAMCDR/cUL7KcYBMBAB1bAAQ6EoHgakNGhWtCxJzSKVZl5WzoA4YQpBGxXAiuYfJYA/4FBlKEMDdvAdKqjEWLRrmKEYMcWWqgLE3jiBCfYRLxSpwIe8aQCRkKAGTRUFLxVhHe7K8R9knSa1ASvA19rR5dk1MARnMpnT1hBBwZANEJsoXFoMc4UmqYGMOKKaQK4ggOko4qqDYJEOjAhACyxNfNtwYVbAEQBERgC5VELhxCSwBWMJINKfQBNDehGUWB1kiKSCwJlMM0FHICB4E2gHVBQAQNDICNCJcoOLajiVML0NrMc5CcZBBKbKCefWznhCgM4gOYo4ABYxpIAEviR27LowhYuo4CeSGAKpKWeHEqgApCQgQx0ZwZawcJkZjHEUAIACgBQwDRFIOB3VpC4FP9o4JLTGkELoviYFqhAaNi5JSGYZpAMNW1yHWSaMqaQkV9BAAL/uUIzE2KyOGaRHS0khNd4qUAGMpADEzDBAJaQEgQgoBOQ6KEZEPAWkw0kIh9gCQRU0RQ0QIwAPnDFCQAaAhU84X2ps5bPVAUAotGudqis3Jo6WLlokoiEG0BDniK2BBGsSHzjwyU7CEG6CXDAozIy1EBNcICD6g4UnZBBQs2gsgwIAAtrCQxrdGGYpqgiBg5owwpOgMATMHBGJBiBChjwLFT5wDKAUKnFlOabpU1OIE9rSQkpQIER6aBEVEMRANg6vlvucwvLSAMGJvDPGeFwLBJYgsqM1ImF7u7/qWEIQzYycNmiGMISqlyCUpbSpM51YAITqAFIKxlQDVTLDmktyb4AazEgaQiMBWNT08gogVZ+hAC73a0JdnuAT5pPn/us3QAwwIXDfpUDnlhsfeZWKf/tjrJh6CHAiqKsKFykJZ/t1He+Ji1LMvCbUrRXSbbGU4uB8Va0pa3TmraseEIASjklWnxOdsuetpAbhcWAB5DLBQ9AcgBXMEMY9heAlumOumHohoZ+VJbAJCMACgggaiI2gIxx9AnanGFqqTUCsVGSPQmxpQvNckqnmVK9TEtHFAqgikGQUDoXcKRGDiCBn7gtv3IcLL/SYFwBp0HIUXBoyxDA0GIWk6EB/2CbVOOjix0iaSlo8FUbNqCDFuxohilQAQlSNQJFtWNV2VGGjtkxJspJDkguLVgGCEABNKABrwm72nRQlK+dypGf5pOPmL7lFxYZohD+SzICaFDMQ1cqANmABWB+AogoXEpJWvAPBiCwAUHowKt3zOaMwFyCRbkOOwRboflMWblbsZm2U7hCbiFAgFg6YLefs+8ctZjFP7M1SGGaagIMjeiEEjO6AZAdZgaSjaKIwACenZkDfNAGi6rCB574pwK5nIobgVoFPUqpLW8J2zXPlr1t1p6dUnSAK7BAF14MUrsDS4h0jG8ZuhjwrrFwBQMgmAYLnUiRoOs/ut1vGYZIQP8hMtBZRyylCFZuw5tVAYEl8pIDPUggmM1TAkp+adRl1qIczYnquY47HTGdjp3zBLHuLYGWTsjGFMy8BflUDBBzkoCQsCCB3RoAFE2lSKVUttSWheEDFRNANuZmAGlq4QWOUEUbNDId74qWtBwgnNhyNALXTbCt3JAjbL2o6nEroE7AwgsaRoRG6swyDVHIgBrclsu/lOWqKJVQBn5VgHwHIAOILBICJryyMCRr77zwrNLd0HCN9JVOS0RuDcL64RGEIMBpOFmp9fxxLChN3CI3xBIIkCdfwXrW3XNcM2Hx9hYKREKiuUJ8bs4RBxigAnSj7EQcS2wzlOXeyTCA3sr/EAOU/0ojJjgqJD0w9Us6CEID+CQ3yhzYFjLtOMlUQ1xpC4tWFgAkIomYBHRhT/decArKGC5sgyIlJwTJEOqKmAJ4NzcDF7xSc2OEAJwwAEA1hQkxiAEAeCF87dkNejO+0ZqA5Zsgt3G+Utun6DsOQqqViKg+l0qGAmgYvBIEQbiAk6OZPsKCC8oAWGAhwSIYg4mCBIiC+hOAv7AE3DIABaAulTCwu1GZHkK2bFCAByg8LVAE4Oue0YsYXbCKH4MkAdOFRymziuE4PWPAMRmOWXmLBjgDWLC7kdBAmjEjkyMJv5iCKGiAisGlW+MG+yuKDbKKKMC9hFKJfgsDx5ob/wWIAzJopBTRHgLInqGxCkDQhSDUFz6JD/J7m4IpH8EytQYQjsGYiImAnKTxvBPyFe3xlSvKDidIBjNogPFhQAZcKbOIFCyYgmzIhgJLQ6GrCLxBMEgoBGiKAdNwgzmUNTusJzy0Cvn4kfg4H+dDwhbCRLOAhYZAROqaiA+ABRGoEwhAgw34kFcSlnUDkoTIBkgwA1vCRMHiGtHhl6LoRdszOKMromeSgThQRdMohv4TPtjzlKlIgzdCJckxnwRcoUtkwC1ImokKxTREgG6IJjvBtLvCAeKTNV+hJUAARTM4g+GSxq4THRZDJYKAlcvauwMDBWjajybRCIjJgha4F/9HPBYPjA+BKLG3cccdGxOGKDDq6gQUQAF7VABYAz2+wDAMGDsH8Jy/cIIPEDq3yy9MlLfKsbmEsApYYQSUiIMHAMfTGEcHwAFfSAUO8BwbYwGrSAgh0bGDBCzoI650eIgi6YSl6gQEkMLcSpHdOkp/7B5P6kQiYTDxwUl4XCmQ642LgRVUNIA4XJJiIAMCwAEfsIBtExb/y4C/YJHsyLOPDJ0sKkif4oa4kEGFMslOaAARsIu7OsYP8Qh8qS9A6MMp+IAAQIEFEB9plEZQsjeWAgxnJIdcOJcy6I828AFVsSJWcoILAkzVwy9QCh2uw0lC4EXFhCwUCIAGSAaOuCv/efJH7/MLJ6C5N8rMX7REtcTEwQIKqDQLq2CNGySDuZSZAljNIliV77EnjsyzqSRMnpJGbrgdhzrJTqABGrCVVhIJsjSo7BE9y3gjLEiG6TIDfjHMQRQu+GCRWcwGuTwXplAFWesAHPiS73nKpgGsOTofW2RQg1SDxEQAFFBPe2QEjqCxu6KOvNBAiDkAv+ANhXCou6GoeFNL81kGZQISzkiIDOAFAiBKAW064vOcAeiLvwzMnXo3BiWf8STPuCmwCj3JBWCEX6Gxk4tJGxsAzcqKfAkKRpiufxETFB25ArDLiDGABzCAuxNQ06CA4LGMGz2WpwzMEvM4nhIuqizI/65ThqGgUBRIzwVoAJV0JO+5URZgASHLChtDRw8UjNo7veYkBCdgCkVgAi8VUDcwAUiSgBsNwhxlnMvr0TX9UXjkBl70u/SkgUpctjyRtc6hGV+5Dnozwj8lEnv0wjMFpSvQwUQV0BiAJDHVw6tQUApCU287nz4bLjAcE+U0NE7thu2pDpq5MarYlvQBABbQF4VwkR6CCzSxndspBFd9VU1JRmHBMEcd02H5pErlqfGxoMBawuiLi3oUOjp5tWHpnom5TKD4DnScySgohOlKw34rMEi4FGu1VgpoA1kzI2ryrFlyrUrlMX0CQ3LdAliwzzA4SQRgBEYkCc0pqDSYk/+S+IsDKKinDAwYTCgaSCg2BNZOyAVB2FeTNQ1VIICU2lEH7VHz8SmPg8dl2DuECgNYWALNiRgcKAKKPQB+zNbvYL6nhBUYVE8Z6AQE81hQeICYOVmn1QIcuFg4+tY0bVCc3IIpkLCUYLAKyFkCGYsrKqAO6J6smCUL0pdf3bcKtVD/UShyqNan9dIVoNiyeC3A2lFbEy5yzaUMoFfq6oauVVcTWD7S6QBGvaLvuALCIhmC8Fj1NFpjKqYjuc64fVUEZSuVKsyPZFA1tVTBgoVsQKhuELsT4keewBxhORYYcoCp0Ih6EoyEqtCEkoGPPTTI6r3KfdUi4Al9qVu3MRn/qk3A2rnaq1ywD1AA7aMxkQg+R/w8jSKJJaBOh6pH/zm0oyWXks1dAeVZH5GUSDkZSGmbaqRSnOSGKaAu/jEAB7iADSARRwACIEAjTIszGrsL6wjCvkUov0PJX5MBRdJeAXW6SGRGjnRL2hHfthHBnsrND3CqZbsAVSgDcagCCq4CcRCHMnAEQQiRJI2YYzGEDKAu9TQyBJDcfCWA7AXg09ABfNHIwITKpjmZzGin8H1Z5zRfzQyDZaMA5lAEH6ZgJrhgpqPfT+2+vxA0USxayVWAX1Hh/QDT7ylg1UuWZaKtTcyzz4S5ZEioHe7hQ1WEKghicXCEQZiO+h0JILxM/1T1u9ilXcjqhP+rMCduiv67orhrmsCkGEmZq8oDVx5jwGWI0gDYYVUQBzA+VCYQYzLe4JriHGHZrGygXkSLU8gCBV5o2jlmigLwHqLBY5ZymmUimNkUXo9bYN3sYkP2YTC+YCFGIw5G4/9wDwGYXmA9SRpAgSQDBbhVYTJYgnjlyU+mmE0cGHfEr3wysaNQ3wsYhCpQ5VW+4AwGgg2mDruYtSu4TM1MCWJ63CSTAeTN5KbYCzsG5hiGm8pJYHCFUJ8SgCh4YGZ2ZkVg5TFWo4bx0Go+gGJxxpSQ3G4upktJOHC+AHrqw78M5vAdGPFN05YVrHTQhSMdhAtWBCL4Yf9WLgMTUQX61cAePJb8LeGjpV1Eg4ROIAA5dmI0iIoo6UOoXOns2JWIoiBvM1gIHSxLOFJHoGAimGgLludFphrlLQAnGRpKeWNiSjL1jEu9cWKBlr0g7EkPjFSAQWiTsbyCFSxCmAJ3nmCJ/mEJFuL4VYVp9lCSEIHQBTrI6ma/iwPcnePfAwDZ++W/iMW4HhhIkTcd82P8EiwscOdm9mGdxmBHCOz3lWYz3kAFCEqITOyPNiZy2eW4BYL+M4Args2NhMqqgGGpTuiq5TEwxIKH7uu/lucxhl+wFs48iYqfI4elfZKlitN9IwffyeRxrICGbKaDsG3OiJ5oDV/b9DMyFaoYbagdAfgVNEhlVWaCCgbicQjsGLsAOfNQAogDcnmAByADNCCAB4BIyKJuxz6XgAAAIfkECQgAWgAsIQAcAHkApgAACP8AtQgcSLCgwYMIEx7E1YSSKFEOH9IRZcQIRIUYM2rcyLGjRlwgHdKZ+NDIJ5MT6VDC5bGly5cwDeKiJPLTyE+fxuTYaRPnSGkxgwodWpChQyNIxiBBsnNHjac7ckTNMcamKJZEs2r9eMpk0oqfmDoNwqVskCA10O44Mmbl1rdwCYKAoXMn1bpjg0zgMoHs2Ro7digx8iWu4ay1cIkSGziwVKc1JkSe0OOp5LSAcxyBcbgzzG0zP0mdDPhp5ckTONTgwFo12qc8XHie3TH0aL17a/SoPGGvBw9lJ3jicIJDb081eKSgzTyjNFGix3L5fbZ3WQ/GfgMXzsGTd9M9eDT/H3+woZHbZIFzSY8dg7H3fL0LH949snjy+LU8Px/4bNngQWD3XnbG8NXbcfR154kG+Y0nTSB0RJfWdGZNR2B2v/E13XbzyXdCg82xEgh0Yk24HXsZFmjdfx10cCB3rYBImzSnUDLSGCnwwNuBngi34ou9deBBiy4eF4KMs9EYkREwuPAKAyGccMIKVKpgpQZUSqngBES2GJ8nIyDZ2Uw0UQQDDLak+QoUUCBSwhdwxlkCIlCoEIJxRBrjoncximkYmTQxicqgg74Z5xcRJAoCCMw888UIIfTY5Z4r+PnnTIF8ceagFqDi5qFfnHIKM6QyE8EziDxxgidcdDnBCTNY/xoXK6AFYsGZZ3b6KZwWIBoBM4suyswXUETKJZFcHCkrXLTSiKYtMHiKyLRfWGBtosAGu+gXiGjAaqstTlDpsm9ZsQ0IX6CSpi2oWICItdX2iq22i6KqQndldcBXn+RqtQ0rzHSqLrQwWAsvnNhmu+ipUGiAb6tceDJuv1mxwqjAaeYaba++/kqvqYgwgC+RE2RBsVYABwLDK+yikqunHHtML6MRWKDBqsd24IMQJxNlgw2nwHAEDyGkwIAL0BIaKraJRkBzBOne3OOBO/c8lBQgWDB0a0Uj7QLS7SJ6SsKmQo2Kw/L15oPVQ9nwDCpfu6BBCCHwwLItDGigAQMj2P8ib6nPPBOBJHemLTHbQrHyNpqD4p0Cy6g8QTcPrIXAACqBZz64t4ZPjPhLbqvLAAl46+0CKukykLdyemsARQmGQv2Egj16wu/nLtmQNZTEnaCCBq9YIKoFtrzyCgnuosLmp1BD0d2BK7SAO0ys2BCB3Hr/zoAtiIK8yd4GS2voozjvOz31rERQ/JPaw9A9M4iMMLfr07opOLezv8jz+S4BDAMJxnMSyxAVrGpBYQRQkEScmhYBRKhAPp74EP9yRzykkYAEDHgF6hRWM4MJjmmJ6pZ3OOA6VkywJTYY2AWf5LfuLayDiBJco5omibmpAHVfsMEJPZJCW1wwgyRA3dj/msYrCzSNVAwMWQu/UIJn7LAjrPiCD38IvIIREVSnYiCcpiWvrDnxiRx5mw/zVjTVXQ6LUAMVnJooRQsMCwRgDKO6MGjGEZDAjhxTox7NZsQIxFGOaXIBANmVxivqMU7PQCIB/7iRZ6zLFkhj1/tMhSgaReAUh4LdB7HFyI2UAAoBBBsOtQgCTEqjelL4GQhmMINEAquTG5GE445whAyeEWEIa4EQqMBLKkhBCmCgQiu/wAwdwjIjiMBgjnigHFpq0GDVasEQBjGPDcwDDTooQzEkUQJmmPCYGZmBHZ2UAloyQAlpmqOnJJGFLMyjmhR4pw6GYINtgFMjM2gBCZSg/wRaukAJBdtimqblznlQ06A6YAIV7hlLITxBdUdIgdGeKVA3UWkD1jRoGRbK0I3kU36qS8HepGUt1EliBdXcABoMyoRDdHQjNvik6p4EOU7NyQInxSgaMDqIlr5UI4prwQiMN1BCoQJ2EShBQd+pUXT8VCPPEMIIbBlERAxqWiWQxjNWgFGmDqIMTn2qQqzwDEnIT2/bY5ct2lQCt2FUpe/8qh7EmpBt2GBaqGBAjowWyXWWlatoCKw1y+BSui7kFBe0owaIphzVPaEFLSiBEFaw051u4KtSMKxBWIGLU7xCAyJdLAd2wxoeqOAJX2hBEVS6gUU0VbNyYYU0vvAkif8yc7Q94EAINDACSTyjFSsogmAvW4a5wlYLTAyErZTAgE3Y9k4c4MEtQdACjFLAsoNwRGY1K4V8fkG5qHjF9/TGTGYaDRFw+i1Xr3tdg4LBsFKggiRaAIXvSlGvEs0v6zS4xla0IgvXDaxBb+CMn/7MGvNtxRNU8F0LTJW8esvv48IWgVYIoQzZZcILpIAOMPxCEYu4pxSsUQJUtEAFVKKSfU/cuhbzYBPb8xQqqOQGClxgpdm8wQ+IQIYYlKGTboPCglHcmuKgIhD5XIHe6ibhifrNXZJg5zrWQYF23uAXPAZAAQz6xEV98mbFOQGXyuKdI/+1xWgmKscs8IxsluH/zcWgApbJAAAAEKAARTDZ+awxAzo5bC/gwgAGTBAuWwTCBtYoRhZ+h+YMsutd1XoGFW5A6SpUQQpzrrMB7OyAdWzgx2xjpSSegDYuGAMDBxC0BA4AgEF3QAWntMINFE3q1sF4dE9+lySG8AJFiMMRLzjEDxRB5wfEwQAGiMMBCNDpeeyPXDaYwXxVIGYhnRoDAzjAALa9agCYYAWx/sULiqHgRgfRXTjddRUUYWkw/OAHVSADGR6A7DiIQQGs9jYONuAIWT1jBnhbgQ+4JGhBb/vgCG/1CaSBaWf8ogpCaMWDNaACR4tvBpOm9A30wIkfjKPYBniAKewdhzj84QCs/3ZAlZEUbUnUCU8mAIC2EU7zbSs8ENY4BCc4cYMhSPWOU73go+1nDTAYnQi/4MQvkjBvehtg5GIo+R8qcPI6MzvPQyAPOqR94hV4ogOClrkEaj6ANCA81SoIBBXQ8QOl+xyBU7wgCaDgqSYWHQw3IELb9XABkD/d3mLgxR+mPviq67sIOqANn4XQghVUGwMAkMCqD/CHsZP94AfoACJAsPa2cwIMTGD8uxAxxXZZoAUzuHve3w2GGGga2VEPPC8UoABeVID2vBj7qgcNAQp0RrLAHTjY63wAyRfe8mVPQxrecIU3pIEFA/DBM2xABQ/vXNxCkET96AQFa5HgCTPoMP/e9b5jOiP76WJIvwIqwH4FBEABgZe8BJZQdQJQYBBwibjUOmACQRd/1YNnfGOnfG9QgGXnfAOAASvgTdWXdNdHBEPARnTSOBQXfht3A2CgdETgek73AOl3bxUgAuwHCbRXe0twgoXHagQAARugFcVQBMLXf5E3APJXeX9Af38gAsu3bcqnfJYwACxwACogadXnbjundC8gCTNQAhZAd3lDcWuHDodgdL/wA60HAPQmBqZgCul3e7eXAAGQABWQALZHdbeHe3EAAA4AAfMwFOIAg8MndpJ3ghIgggFYh8rHBsvHAstXgEFYBBhXhOjggJyADlTwb5+EQXsjCdagB3r/cAiU1nZXaGxayIXrVwHvlwCaGIIi8Ae8EAe8MHu0B4opBwFCMQgOUGcAcIM4OIc3OHUiWAES0HwsUIBvYAm3+AZsMABFwGtFCAYcd32GOF8jMAIqgHoc9guHoAeRyAnEhoUhJ3IlR3vvFwABwImdWHKhCH+jGIop14YwMQ+pGHnGx37sJwKd+Afrh45R4ARpcAW1aAm4KI9vMAAFsFFGhw564IDO0HFSMAQK1lvWIIW/oAf6uHq/AAQgt4Wx537W+JBimACeqI0lZ28KoI2b5nsw4XqrKH+SNwBXYI6eyH5+4AfoKAJRkJJO0I6GAAiWwAYOUAYvAAb6aJBGd5OG/zgEQ2ANNiCFP4AOiqAIYCAOVVB+AJBsIbeFgFeN1ggJ76cAJAiK6icGAfCBJWcADgATFzCOrFgBVwCPLHAFIiABFTB7FZCSaRAFGZCS7egETmAJgOCSy1YAEFCXBUCXq9VTL/ACGIgOg7hz6AAEg3AD41AFN3ABR1lvT+eB9xaGYuh+3HiRHxh1JAd4xwYAGtkSbkAAdTZ1IXgFzwd9IiiGU/eVbKmSb2kILRmXcZmLNLh7KpdNTMBrGHgIVZiQi+AIhpkE0Ah4sQeKDqmJD3lv8Fdy6UdyoXiVIVcALlEFrkd5OWiSURCabPAGGZABJcl+V5ABKxmPcGkJqrmaLv+ZBiKwgmhQAA5AAHd2f+LABExwA1KgB++mCCt1A4oQA/Tmm1oYByUYhg8ZAJ3gkFVJnArQCZRZkSFHAODYEWWQigdAf5y4BmupkimJjiFYkn4goYYwj5YwBYCABS7ph+WJBmXABBi2ARRQlxk1D8DmYSAGbFVQAE43meqniTb6kA4Zme1XnJQZdSEXYh6hkHV2ghXgB20ZBX6wkisplkZqpGvgB9zpBIDgBNfpBB46BVPglmnwB2oIAWjwVW9GTRSwDjjgAFvGBOLQVRQAAMbpm50QoFQZCwkgp9bYCQBKmQFagsf5m8fGnEFKZw8agm1JpRNKpUiKkiiJpFWKpHP/+gFYGpdWGgVimW/MVgBf+mZloAPzQAGrtakU4AAGAH80aqf/GYZmQKfWKKo1SnsMOZV92hKLAKhLMJZX4ARvwJZPep3YWaRQiqRrgKVTsAZzygjAigVYMAWGIAIAgAaO4AiLUADqaWd0aU2D8FWDkFEXQACT+ZCkCoYBgACxEAaoao3pR6oAyoXpF5ViYAD21xFA4HqhqoNpII/yKJaK+gGM4AeOaaSMUKXYuQb4SqwCYKyG4AQVQAAbsGEd9gJMAASLAAHpWakBZlDzQADJ1phv+qbWiADWGAYIEAYfkKoD+qbuh673JoI+agCZqRFuQGdLIAEpWYDyCAjKd6i6/zqnfpAAv2oIGVCwajkFAoClAzsFlhAFIsALKzgPGmZ0NmmfznoBdEkBFACtnxgHAWqgBiqg3uqfYVCnjUmuH9gJCZCzxWkApsgR0EqOVxCz9Li2vnqdayACGPqkGaqW3KmawCoAQTulflABKmimKyUOM0mQYEAEjoCiBJCDWkiV3GqNNpoAXfu4YMi4AQAJnWAKARoAsRALJEh7BuCnG1EEkDd2t1q0bYuhVwCl+YqSJZkBWMqdRIu3QruhK3mw9+esMRCxdMmiioCBVfBO54lsphCcjguGkCC5kluqqnqjYmCgcQC6GkEBqLZtLACXt2gJhLqSKem6aymWIkCswP8qtHkbtIZanoPwAh2Wd1WAuwVABmZKAYuwUsH7dFqriVobBlCas8LqlI+bfo6bqve2rtCbERCAAZbHAtVLrwULnikJpa/LCFGwBowgALAwBRU8sMc6vgKQARWAlfe3tH55dOu7CClqYxZbAemHuRwrp5sbhpsLsv/6uML6fh8YhiQotu/3uS+AtgDAg3wIlx/KmlNwq7UatIzACGuwBnMQtEJrrIBgCEErAHNgwVOQnZt2ZyxYBr3rl+nrCGiQraGKidYop2EAueIKuXJqBkcMsDkbCyUJhv0ZC2MorJrICwVwAxzhehJgCT88s6xprLiYkkw8BfgqtBhsrFggAIb/AKyMMMVRcLAs+LDpyWks6AiK8AJeHL8FYACU+7FmMKdhcKplnAAfUMofkMRyugZ02phz2srXqACfqwh5HHn0eItS+qFTAAeAbKRUHL5Aa6y6jAWwwMTCPAeOrAAF4Ag3kL4jDAHQqp5RiwYQQAD8WaBlHMphMMovHAumfMqbu7n2W6M3asOf2xF6TK+2bAiIvM5HDAtqkMGNbMxTgMhwUM/GSsENMMVOoKwFMAiCi4FGp74OewExkKIGYIaaWMZm8MlzGq7hagYfsLkRbQYSmsSP2ZgLnQCfHAuvOst/cL3XG5cWbM9TyggNAAewUNINEMUfus64LMX4upZHW2dr//ilgouTRAAEboAGFmt7j5vNkiuusbAGp3rKEpoBFt2fmmsGmhsLAdDRG+F6f7Ca84i3AlDPcPDEGcAIsAAHijwFjQy0uazLLT3PUtzIK1mezpy2nHYB86DFijAIlUXNCmCj2QzUaAzRp6zXHyCuSA3OjhkLCx0LwZoAgTfAGBEDBrAE6gyiM9uhQFvPLgnWWD2wFAy0Vz20imwI2cZqgyZoFNC7YOBrQEDQZMCZ6tl70kwAtOet2HzN2fwBpyqhH2DMH9AASZyzdt3XQ20IwrquWTnLEtDYLgnELS3ZgBDZ9qy3I93VgDwAJjABGgADTFItqKACFvYCkxbQN1AF4//wsHdpY2Gsjma80bIt2yDbzUY9B6cckcLJ0IxgCB/glFjJEe9qALHQ2I4NxPS83HCgBsqgy2ANC7BwrG8gAR1wAkcWCNJACZhULf+DJavFb/9sdC9QBtdEASd8e4551x4eAKHczQDL3nLKfq4dykv8AccZ3BrhCPipAIZA1iAal+tsz8eqt8tNxU6A4AymXJrSJGq1MgyA3UXwzOt5WY6A4RSgUps8e8Ipp2CY0B5eynMQzxG9uRXglNYI0cswB04twBzxcQ+gAGugty59rMcdzMC8DHAwBUv8BgooPEHjArV0NI8EJSqAcS9QBYsQAwWgiszWexswzVPXrWbgsSD/DuKhrNf5nAG2XcpyvOUI8AGGsAyMkAAyIAPPyxEtG6oZYObr3N/BPNZwsAywIM8H4AMawE9P2GKqo4hTMgS+tLCKgGFTi8UQAABfmbMAigAf67GkutAhLsGPDs7eWtT1vAYBIAPAzRF9t9hpoM4YjNXUHuDUjtUNAAuGcACUUTS8ZYwthkC/wwEdgAMs+FXrxpdDwAQ6gKKfetCx8KbZ/Ou+/rGeLNsQPQcN0ACHDuVOHdG7cOpObaD1vRGLQADF146HjAVYbe1sTs/KoAxs3uYHEDEcYDTFWHGjg0BQ0HUdsIbtC81LPgg60O5LHry8UK6+ftf0PundvO/8Luw6/wuwH6AGcPABc/qm5RzVMre2MS7MWG3zWM0N1l7PAR7xcGAJGJAaDBAtBxR0faN9UNAKKpBnlKYIpU1nVreGSw6xB4CJb0oDCCDs9X7oZrDvpYz22XzoIKvvpLAMAuDUyw7mG5GKf6CSQNvVSF/Py8AN1w4HEU8KAZ4GHaAB3PMsqlOMdtTxQqYBPpAF6KsHhSsO14SeuB55PJsAb7ryoVzvY28GC1DbXF3Ba3DXt+3OyiAAZakAscDsO68RdPYHRrrI6lztgB/xRG/0ysANgg8HhH8ClmNGjGYlT/BYLfAEAmemlzUO7TkE7XmiNpaKterUKIACY9/Xn48AC7DQMP+vBjBt+lxdz1zKbMZ2kWebEWAsAbq61QPb8AHu90Qf8YFPCn5P+KnBOhTXOgzQ8ZAFEE9WdMAAoEABAgQKQEAzT4eODQ03QABwJQGCTigQmDETBsHHjR8ajISlBlYDMx8+mGkwBxacNAAwOGjkA0fCeVp07uTJ0w2AAxKuZMiwZs0ULFjgvHwJB44yZU7VKONWFc4AExM48OChwWuKFAxe2UKFqoWKEwQpiKsCBCFQAAQcQKCABkIBACyixArQ6WMYjx8XDB7ZANbhkx8WkGwgIM0BDB08cdCgYoWQnpl3xgAqIQrRNRkMJYXDbdnLqdxIQa1KipuyZVg7cDjBI4X/V69iGTAYoeGEJxMAKFQBc6PtRIQK71bEAiiKnwQBwnAMvLFwgzPclsIRwIiR4aaWJADoMGGyBigzbFjR3BOvBL2WnDgRTRoq1apbCLGu+lqAhPI4COE23LwK4cAQTuCAi4IUQmMQR8qQ0JFBNqCAAggIOOAKS96IYo0EYvHug8AWE6mBqZwSYI7vGljGqWUsgcwELrQKAYoSSphBivZ0KgavAwZg4Y03LPkMEKWeqooQQrZ47bX7YBFPMgG5ItC3EDQYAYoRVPAEgwOW+MOAuBxYiIJ5BrkwIoT+YCOKKBJI4INYLtIopcLU0A6LKVBCYCQY34CsAy488eQEFUaQ/0SSGazhUTM3HACAlyuiuGK++UZzCo5lliSktaiigsMQACfjYKuwNtntlbIQQYUBDkw44AAC6soQAANyVY4CIFl4cw3AoqtugQ/mmEMNNZZygpGVFtuF09gAMCFAr1RIVBIdqXi0JzcImBSSWKKYItMpBNh0mU6ZdFK7TbGYUivarsztFRJ6SwsACQ4owJEXFCljELsOWqgACZJ07oOPpDMDJJXmaCDUpRogzMXSsBhA2kIRfaKFJ1ppAdsZtM3MDTIAiKOCKJwAxBJDnDBEgCSVJIVJUUlzV4JpaQvBNrC82mQTDTiYwIOgMqjAoA0cKoMJJsRxBA27CDBABCemiP/CI+kCACkkhzdFVuLFGtgOCwkiMw/Rj7FtQQiQbcgMCG95gY8NI1WeYtOXqJo52aSSghkQ2U6t0soQOPCEQQwGSCONOWIJw48/yiygLguhRoNXDTPwA2sUNEJgOpLwZrGwM5CFY4oDpj1bg41BLmHRRkeWeokoiARkPktIg3EZqmrmEymn3ohsshNOQDCEGgjCIA1ABKCPxTAMSMjbWWk9EwIIHCBAAiMR7hwBGkBaLFk4lILFYRS5MV3QDiTzJEsVngB5hhkYdbSnC2avtGqX+94UP/VxB2ZJag4LyAMvwXGgBgwaAJKwAIsVNeADnajVPCh0uYNgDy8iGA2fnPD/gb50IiMgYckZNrUUY8GidFC5Cnmo1YpWbEwIOqLfDJ6xLZ1wxgC0q9rdkvKi/vQnKgIQQFOccrMD1qAHS+yB0IwxgNypiIgkQsADCACBpElIHGW43F2oJ4E0OGEOZkBBRr6HgAWUblNFZMSx9KQMQsQmMoWizBOEcEe2MYp+z3AbTy5gMl5EwRKAOOF2nHKfQp7QXZAxhjHMY6rDYSB3iEzMwjqRqzLRBUMU2ICFCuAAE0ggAyTqXOf8Mp28QQUW5UIRf6JFKEOdYGM5WhS2sAWCPm4GVxXIgLk4dUT/icopTVEKzEiFgWk5cgI1ONUEJAkjFp7ET53IBQCAMqvI/80le0BRHMwEgDDw0cBzC5hKVMhXEjWspj8Xo5F5OLCCVsyQfq9bFB/ZsxO8LMEJMCuf7rBAxHYB4mVK8ZsTruDC9hFqAhNgICF5J6rvrASE0ptcwM7kAANU4AqGQMqLYLGwMt6JnCw8orl6pxpuDMBsh6pWK+Y3A0TcUT07cYSG0kAaQDjwn7DgKAEN0cu+CcBqg0poI42RuJt+ipKGcdhKoje5NA1CTZvk1ScJkAanjPF7nVsALEg6zJLcZwvLSMNKEQWFJ8SvBTQswR0lsa0/cs+B9IkCEVmUgQcesWWagplBpdU+E2AATAP4oVKVsRruoLMljFBAXBJyPcph6P8thhjmShCgkcV49avo1NtYy1oelqatBa3A0euE0IIW7CiH+EqD7ZzwGSIyYg2MQE35pgDUl2CBVGUTbOIs8UsscMNJpFiNMkyylJMwywAH0dCs5OLFDeUuuLw73RgF84GwPkW7xnXNFpykUhoZKgQqKK0kTiuJtbVgBUPg0SISYk0JFCkNlSIKUZKkjN+toWpREAEH0zAAAAf4RZwS7rpesyljNcA7a2hsQsw0MApoDyh/YNlNWUhF0Gm2n02Bo3f1IzxjgLYGIXgCInL0uhGkVSCtoIIWfmJNKBoCEFe4FKbu9svyCdUJf0jIAeQb4AaSRj9M6k9x4dCSw7BxCiL/QJpUL4SmiEAAB9r7baeYBTrDTOUMiJkKKbzLDu8CAgMeWGgQzBMCBizKtE/QwAo4UIQhaEFSQWLe7SQgAjipzJflWxmpDhCXvOQ0DRIAo0CVQggwO2nIB46YSdi4XIEJjKqfDE5SX9SdMBBLbFNBFoe9vIVEi5nMC13oiBkAhUUJoRVungAOyqCFkv0hDfKZT39ThqQTTmFlEnAAKDHAPTgAYnEChdkyEA1qMAtRVNI8SeMcMI+JeAsAc9HQHwbgBCygy9idWsYUFDMSZAnzKVRBNphFTeoapLsGxotfWk8wgQ44QAfFkBQYDcFRJwjlDTktH3CFeoBey8qhMTsk/zeaxA6ED/c+JjnJGQzTkqNZU3LZ0560OwOI/hyZJE15kpLKbW4MGMPM6V6i4IyXIB8QhABlmIeGJJDTe792ZbhOJNnkAoA0vAhdprnPMkD9cf0U15xqQBHRUbRkEQD8LnWZR9Pt0msAvAFd0dyUdogMlZ8nnB2xMUaNlFhyQ03GE/BuEIXIsMMijcYQV2AeATfFbyewYNYO1fnUlZF1hCP8U4QQujIOMxKHrcEBT77L5D7Za5dL1+A7jwoQjW1wD4M57+wghCXGXGom1oDUXCCINWPw6rMvIYxJMcQg+R0znTaHoOiC1pM8DHQn7Wc1yYrSSCpQgDQ5AjkZkoDiev9piNb+1jTU3fanvjx55G/BYhjwerrL7AHlTYoAg9DJ2WU9Gue5DElGbE5O+5bt0pjGNJ8SbpP0M/l1sbCcxt3OFHhRJrksBHsarDhQDKFt8hs8jnhPPsK5YQmV6joz4wIuOKrEOQBeMAAK2IlFwJX4ag4Z8z6lWAY+Mb3vS5L+4DYPa5KDSzjDYiH1MySDSjq54KR5kCxvuQIHqoqdew0mUZfj+7hk44blM6pGShzFkYD3QwM/AoAlkIAIzCkhPCIL7KeY0badGzIYzLst4I+FK6dNyQCFeDLD0xDFwbYp6BBsY70gKrAvk8G8iyMKLCvBArA36Js0aCzq4wnO6D3/S7BAAioSCZzA3SGwAiOyF5Q8MLsPPlw4v8uAacMiu6AAaZMLCYOv+9O2IFIX5GtEQgi2QXrDAThDaBkVBZi+ngACMggSKBqk73tDIfy+1hO/L8u/qjgsPRwrnuvDFCmfK/gz5TgTNtmem9odbsPD42vEyYuRK1CcuUMSdBEA6DAAHuyJBqQzUMypN0zGOdy5TtE/ygMV4iIF9DvFPvQ7qFADHtMeM+EVKQuOAZAxJ2AZQhI/Jkk0rdNFJsSCKPgDTgxFLIgcBVBAzSCDB6AUZiQSOYRHAksX/Xi81+i7ctsC4rpG2uMOg6CLpfMiwhIPaSGASawydBmyyFPHySME/wFIut5zoJyKHGsqAM1wLwNoINOzBF/ZRyF0xp17wU+ZRqggLqA7LD4sLvVRg4yERcMDACi6ArmwwpU5QyQ0PzC0SG4QxisASgqcMWtSiPb4I9FbmQ4xw0HaN08Myk8xNvLrQ+HSQ3bou0PqwwxwR+VoriuKsEkEsA6hu/BbQotENgpcgwrYwhcBBKORnh5ZhE0EsDRgAbnTy7Scw2xjyfwjH9boQP8DwXHjQwGolbqYHE26HAfoPWvaNzZgA0B4kX9ykVzUxS8cKz8wAAVgBMzMgCvwgziAgB7RAs5YghwEsv8qkjcYgD8DgFhYSdfgHSf4swOIgtI4RyaUvWt8Df9YmDYHwIGB0Z7BSp3t6RBfiaJvaoBdKLC2RLRkE4B5TIDyYYQ6gYRcSE0tWIQ5AzIgoxUHWAed+Ik1aMGosAQTwIEpAwBA6KyB7DsoUY2oeAMJeC6X+7NpkZUBILQ3YIN9a45YGIwzGEqiNIQK4AU/yIAEgARIoEfvvIALiIHpcTDjLIKeKIYHEAEkQaQ0aB8c6IADIKTDkkH1CRUoYSEsCESFlLIR9U92gqLm/KcMAJ1Pa0QwHLJlcII1iAVImEeQ9E4izYx50EmlyEY4iE1kijolMUz/Q6yTcjQRKIAoezp8YZmkkBEH+IMpeIPg4xNmQRH9QFCC9C6DMw0scAL/BXgAMihSOMUfnPshGHGXYUsK/JDBODokpyAJ51lKapMrgfKhAZCUnDLDnPoglsgPzjykOBo+AeCFN41TSl2tIIsZgjqXZxTKDWSXiGmJORCA0lM6SWktnMEXAEsIlcmXIAMERuAIF2FLhFuGPxOBBY0DAniABxjSSqVUK5SuRGK91nvBMvUu6oqYUDUWRsjNyYmw3jsAwMKXhMgA1AEKFsgpbzODxTA/9AOEuYCqXg3X82QtB0okAoOR8SM/8zOsF2ERZlmDKDCICzEBxYkM5SlUB6AxawqKfYOFleAIyLtIbxVXgl0t7hHFTC2kTQ2iUvTUEVEJQGzWDqjXDjgq/wAzE0P8ouYpigQwAzXwuRik1WIs2F5FA3zZN52CEU19xv5gEmMLwwFzmI4wA0YwAG2i17I6qkwqPMTLUkCYAkNgljnwx4TrUV4lWUrlDChKPdJgPUW0T/3zQjBjPQGQIOpYLgyZM4q6gEWYh0WYP6sCirYzBJXALsgTQ3YEgJxAWkqttzcIwhOqO7vjj/Ert0d0ildFgAAQgymsC6jpWiBwBMEFgkWQrPqLL4GiE23NwH9iBD/ghaNlW++kt5M1veYhuErsOW4L2KJFIUYIgwCAtIZwBHEoXdN1GiBIAru4i0Nc2jUgkUU1CaeKhUvcAMkt0kE4O3sTAO8LVrsbvv+WzcWxWgrtDN2DoIBBYIIqUARFqALTFdx56KLs+SLmMYQ58IjF0Fa91ZrQHdnb7RGSOYC2g8eYgQ1occY0lc6E2xNGiA5IQ14mYN4qcN7nhTYM8SLquYKk8LbACJ+PoIEwSAAFKIBX+94esVBeCEeY48gjUlmoUER02Tv0e0v3NRM0cIT4bV76LV0KOUHDpd6fXYOF+V8SToCjQU0Dbo+aChJPBEyFLQ0kVESg044xCgArmhxHWN7mbZrT/ZforSoJY2G65AiQoAEZkIEASOIKkJ41TGGeKIPESwqai1ttO99nTBdupbw4+qYAMIVpo4AcZt7mPV2nGQSn++BZSYPwe1PchUnij4CEJE4AALBdJ+YJuAmSCLzAforhGBY/qfXA04kFapqcQRAHMd7g5zXjH8bfoEiDKQARkEhiSe4EJFYAFK5jnWg58WVaUUTC4YthGAS60xDkXCiAC15eIphfMhaHQQACMy5cXgnijcqAWPgIJA4AOA4AGfic23METD5Pm5IuhKVDPu7jDaROyoMDEHIQ0lUEIhhjMi4D6C1c+oubZQERSQ6AEOkLvb3EtcXklqMUl7m3eysiIiIibTuMZIEF1mNnbsNi4oKFWDCFK1oEDBZjDUZkaTZjqPngjCKKCgihAFCAge6EvWViIg0IACH5BAkIAFgALBkAHgCPAKQAAAj/ALEIHEiwoMGDCBMqVHjr1sKHECNKnEixokWBt5pQoiRK1MaNTUJeHEmypMmKGTnS8dhRFJ1PMD/RoXSyps2bFm9xFGVk5ctPSHKEgmmkKKUmOJMqXYpFJVAkn0KFyrGjag6oY6AaoeSQqdevFCkBvWoEZo4cNWoE4cIlbY0dZ5Fs7Qq2rl2CuIxMFQo06g61E7h48LC2cI6s0ujeXew1b1CrZ6n2qDGBMpcgEwK3rcFDyZdTjEMr1enX7duqkyd48lSZA4+0HCYEqdGDhwvRuE/qpBM0bZDCPYJb9sClcg0OHE6wrjybAbPc0C3icomk6lrBv9UGGcx9cGsOqym//z0iLbr5iLgo8bY+gftlwYONYXCvenX44DwsnN+vUJr66n8FNlhx8HmAwXzGELdaZp4gNxlnEfAnIUFy+KcXe/Cx1R0GCQ4oYH0NsuYJAxOWeAsm6n1ClVqCEdhdh8StxR2D9k3AgX4l8neLfxzBcAQPqWUmYAdEduBdZtwZKSSDkuTIXxM8UmIEDC64oEEI4DXoQ5ZLssaWkUUuuYIVTp6HCy5QSuMLDDDYYgsJKjwxAhRQSEInA1eecAKXOHTQIQ6AelJCmeadiSYmbLaJyqIlWODLoxFE8MWjFqQChQrKTeCnB0TiMAEOMxAK3S24WIGLNBbAgIqqqaRSwqO+OP/qS6QgTMIMMxFY8IRyOBhjTKeZPSFqbnJYYYU0pyTKZgmMxmqBoxHcKi0zdUARwgma/vmpEMOKVoscFWJiASpuLrqoq47Kesokk4DgLq4ltLCCJ0QO1sEEIdTRbWjRgAtCrraYa0GjjT4ra7Tu2gACvC1kaiSnEwyxb2hySMEKCF+0We65BT87a6QRTKIwtRY0vByYE7gyMWPRWIxJsuTagq6qHn8c7a3uLlzCriffy0GoK99lBSusYPKFEi4EjEoqAlvwRaTT5kztzg4ruULQiw3NDAwp8MBDChpsvDS0N0u7cB112PFECKwBem8rWN8lhw2pMJBCCnueoEHS5ZL/PS2udURQRyqYxrYk3HHXVQvdMY9wpQYMkOACA5SjYkG0ZaOdayoa7OmJp5lxmzhY0YCwqrm2aKABCVCknmcIDFg+6ymR1uGLJFjWOIEPdowOlhWmk0A5niGo4EIqFtiySdfInZACFLJSmgrbC6q2AhO+e1UL0REwsGdyxUPPjAUjDG832LHD+qwKWYqoQ/ZeRUP0KZOrrkGcqPiCK/mQox459OlqBXgygwMfYA9+S7GCDRBVJVswIE62eNXNpheCsJWgVUt7VayeYLgO4OBqCFRKLYDniypVaQRPgEL+EBaBElwqfK1CHqVKoAIfLKkFIRShDZiBCqSRgARPSKHT/xA2tQu6qg4lKIHmbhcCHyxnBfrKIU5qcQgevil9qpoVzvbnC7TVwWy48oW17HMCSbBCiklhBTNSITkXwOAUzyobtSgFrRl8EWTVupYGVBgBxaDxJMBLnguUcIQjuPFykYqV+malRC82qnyWy5gtnvNHmwSyjT/iwRHwZIt0Rc8X0pBG7bpYAju06nJbYwaZKnmSaNhAkC4oZCEZwAMNWG5R0ZOGEm1ANFbY4JczGMGsYGADObCyJjZAheSQxjeDPctyzixBK+wwhBdY85rBlNUZj3kSOUhCeCZ0E9kisCaPWUASrnAFMeaxgXmgoQw6sIMQLmdMbp4kmQzYRAPFOf8r2/kCmrEqgSuyMI91ooEC83CDHXZpT2RKQgNeS8EmKueojiHvWaVcAUHnwVFHOOIFM7BBQx0qvK6d4GuRWxoumZYuIaxgA+3k6CCYIAUpjBSZdvgh5TaxiU1qYBMjiJOrLmoBV7yUox19QTRuahM7XHF4tmDToqw1Alw+S15ILag4XsBUm8wACuXL50StagEoxA6gQoApUokxCEV01aEjEN7wSMAxS6lwUb4QwkaR2ta3noQVdViU5Ejgpo3ZtVy+kJdak+rXkoyQh5ITm7mmqkJXKXaxZeBqY0cCrlOggnKGZdq5UEGnFkgTpjBFwzw+utmLSGGBz8on5ZI2WdL/0qlOdmgFatU609ZW5BAzMJobYWC3ic62sLYorR3skIWXona1bvXtRF7ADHHNknJd+1oKKPeEOLVAEsvV7W7n0VfpRkQKdngZDAi5PB7oCTmu+ZqcUrHcFhB0AxRAg37nIQ7zLsQhNrCDBV4Wy0J27VrBqc12M5iKtGXBFe6M8Dii61+DROMQUkgiKk4hXAYUsr16OikDOjmwgbWwFToYhCOqoIgb6GGpFS6IFaQwA0m0gE7IssDkPny3iK5ubEks5aVeSoEiD+IFq4wxFqwAXDtAobtxQpYDPXyE5Wmgx2MdmPpiKIkiFAEN4khyhaeGQhWoIAQrCEEIpAGCh6pO/6JXvpvqYndKgwW0BDpggiIUoVn/smJnxTvBCuCrpxBgooVnvvIm7Gc/BlTWmc+qwwxuQOkbzENi0k1bK5SznAmYwIOe8MEJMOHLFoRgeYv+qf02wTqiBlSeiiACixdRAGJsNm0twNSnTMBrPx3IBJ7yBDOINoo0x1nVqhsrDOz8LDtIQs9EAIMjCOCAedj0pjZwYStWYMMOmAADBzjAgTAwAHF/egJ1sAGTyxBEnjIackqDdAnsSAUwuHjaAABAEQ54TAXaYQTXYk0HMPDtAwxgAPk+eLkBAGwLqPsHL3CFnJI957ieK4YDUyIYNq6HYhAg3wAggA9AiEZ/5zo2OP/49oEUznKWM5wLDrfCD/TAhBaE9ac8jVzAkHdK+s5g42DQAxBykQsAGCDcAMCBykIY4Ba04lqaUrnCJdDyg7OABQfHwAS6eIhD/IAIEh9BmXPOgKpWShLPgkILRgF0oef7AQaIAy94ke8CbKDPifsqpj43cACEewASkMASlnBwXWB9ACzQhS6yvoJTzEAKh+AEzW+8KBQ+oeytlkSrLtUKKtxg41KYx8cfEIc4gIIXClgCADCAAx1QIW4z2DZ4cHCgfAs+8IFfAu5ZwAarO2HxA+jAgKlAhR9wghMvoLylngDUHy6tVSPYRAgkIQWOS8ENRSd96eXOiyUgHQcbwPT/sKRgVGylvPYHEPwBdC+CweteAonnPe/Z4ASs+4AZNqCCFPRwfD0IQYWVAgXCQ1itIgmO8zyj4HUz9wIxkAtwB3dypwAKgHq8EAcGkHRZIH5lUgyNoCngFm64twTd536DVwFLcAVRcAVsYHhXYA9OMAAYcAL4B3THxwlgIASat3kWB308BQUzoAc/YHxSIA5kAAAPAIHbBwpxMIEi6H0AUGtlUCYv0AjfBgDlJngkKHgVoAAV0IVL0IV+4AdXoAtO8A728A66cAA+MG/1BgY1+AM3sFB1UClVxTSOowEtsH+SB4R6UAZF+ACmYIHbN4EVwAtdWAHtdwAA4AAbwG8S/zIPDpBvJKh7JTgAgyeBsdCFCWCCInAFv2cPZ7h4JzAD+vd5xtd/L2AHc8hGlbcJKkB9/LeHegAGVUAGDmgAppCLpSeBWyiBEth+EqCIjDghTBAD+bZ+IpCMEnAFyZiMW4h6frAGYXgFS5CMusAG75CNi+cDpNh2nOAM/TcDpeRkKKQBT2AHUnCKnHADW/UCi+CAcRCIgfgAoCCBoBAAEhgA+liIuqeIEDAP/OEGHwcAhoiIV8CMCeAHzriFkOAHGeAEGRAF7TeGimeG2/h4egCExgeOnPADYJCKLdBdTyAEP6iO67gITPACe0AApAeIpgCI9YiPvjiTEzh3FkgAAP9pHgx4jAWpkJ3IAszojAmQALGQAfYQkQp5Be9QhqE4AErHBDewfxmZkUF4CFQgBCjUAhhZgzUIBotQBBRAAHGXi2RpCjFZAZtYAfqoAKAACpAggUtIdwXQX9DhCEUoeLyQAAGQAGvgBGxwBQ4ZBRngB7HgBxWwBnMQBVEQhlFQhmYIiouniItYABBAAcRQBkyQklIwBEPQjUDIlf0HBAJpAAbgkmTZlp0QABXgB0M5lL6IemzJhIpombmxCB9XjQqgl3yZARG5Br4pjYXpB1GQjU4QhkZ5ho8JisjplywgAQAAASvgCnk2BIrgjaApeUCQBGRwhGWZi225l625ljP/2YW+WIi8YAAOEIWhUYySKAKaGAt96QSCKZ+DGQtEOQe8CZFOwJTK2Z9n6AQiEHIA4JzgRwwplllBd53YCQTbSZadUJadkJp7yYV6GQD1KIFzN5NLeAAFoJ6LwZ4HUAESiZaI6YJh+JtrYJ+xMAdT8JAQmY3vwJsZIAD9GaMiUAAphgYFYAJPuAE6UAZb9Zlc+XVJwKCm6aASupf2qY8yGZtt+aRPGgcAgAahAYkAMHjRmJC8+Q6CKY27aZ8JMAf4OaMZEKOK6ZACkKbI+Q5XMKWYyQRlsAEF4AAOUJkU4Ag3YJJwCARG2p25GKH6OJRMGgARWqgX2pamZ4EGUACM/5EFVDigIqCYayCYZxiRUSCN0RgLsVANMiqm+bmYgsmbNfqXwmiZZVAGg4AGEBCJT0hTGXkDRPAC8wAEBWCBZQkKpiChCLCXgaqPhRqhUYqopImTi0EMBGACVDcAoVqmxPmQEcmXmloN+ImfUwCKS5kBvjkHaToF1ToFEukABeB3dYcGOlCuWUABEHABZaAIQBADBFAAFwCJcfekfyqhRBmehAqoqQmlbTmWU7oYFLByBweYGdCiLZqf8kmU1bAAK5oBYqqmlcqbYgqKNNqiIkAB1lQGOiqudbpaQKpn4gAEixADCFUAuIiaDxqhrRkL4BkLYUCoMBusSqioBnABi/9hjAOKeIq5n9koAPspn1EwlAurqYiprTUKkQ8rANzaoldAADrwAjV1A0wwCO6ab+9KrlA7i0OwAcTgACeLmrh6j0QJprGwAHr5q4bqnTO7qIsxDwnHe0vJs4/pl2wQtNEqrdqaphBrrQW7tEubAW1aABQwU/r3kUyQBDFQhNT2j+WqWl5br52gAINaoUp6tqDwq7iqtjNLAIvhBjkrAZTqgmY4uu9Qt6y5qR9QDdKaptSgt9a6tHq7tG0qlhfoABSQWZAnBS/gCHtQAGJ5AAQAAWjQoLlaqL2qj7sKnvYooSmbpP1KrHZxAVa4jGVYrQLwDtUKit6qmIcppt47BbD/QA2tS6NLaQ/cqrRK26IVgAZMIA7z4Lu1O7hZO4tM0K6UiQZiGQdJOrnI+7Jh8LIBsKsIQAO/yqTbBwAUcBfG6Ikx2rfm+w57qwvMiJjdgLewIADUcMGuS7HnOwUCUA1XUABMULgvIA4jSwAobHeZ9XkvwASqRQC7OKi9GgZ6ScMBYMO8GgAycLlKupYWSKV2scAw6rf2oLd6y6WsKa1TwKL2IL6tS7HiKwDhi77cGgVLELzzkFn1dgPsegEDuYiVOQ/5JZY8nADJG8D/q6ksmwBhwLI4DKgBoMYWCgoGAMR1EQMG4InWyggePAVOjMHUYKJsvACry7rjC8hRHL5T/zwF8kmaF4jFUBu17huu3Xe1ZKyPbfy/bPy/C8Cwm7qwQykD+ni5ndDJC0CoMiADdazAD6CU1oq95wvIygALS8maCFDBeevEf4zB2yrFGpwBB3ABqVoAuTCs/wiVNUUFTEAMFHABwgvDoICWmvq/1IwAasywZju2u3q5onzKTKoAwXwXZJDHFBux6BvFrcul+rgADXDBTqwG4xvFUtzH2fsOInABL+B59XsBvhtytksMKZmxqlWr+nvDCLDJ1LwAYdDJKzq23hyhNHDGe1kBq2wX4ywCTtDENKqc6AvINBq0AcDOGqzLJO266eyCbQoBl/kCN2BNXUwGYplvddrM8/8wzjxctgyrutXwyQ670ypaoW0pA21ctvZZAQeQwHVxA2QQBwnAujSqtEWMyMpAo4MZxw2QpuFL0ui8wUWMhgiXbzhgmSMctRobroT3ru9brwiw0B/gm5pKyPiJor6pl22JALuaANUwlBaI1F/Rh+MMCR7s0ebLy+KrDK3LCLbcAGrgzoWtBobtxLAAC1NwBcKIA43QCF5WBD6AAw5g2RlYuDdQBsRwAc2MvzDZCXYdBqq7Bgqbt3Ogxgvtq6gdxz9tgTYLFkSQBLnA1Igsz/EMz4H8DqwdAA2gBYstxdSgDMqtDGoAz5IdfCeQQqkgCdRd3ZKwbSvQCDggvJfJBEP/AKdjbHoRigAosNaqa8rSCguvrdo7zaSd8MlgGgB7XRdVIL0GUAEzSg3NLc9SjNzwvMRmvACO/dgDvtzKLQABWgStAAUF6GzLBV7o1ApPsAKsKtPC+8ziHaHl3ckLq9BhwKJzsLAVvKT3uKlmy7AWWtFfYaS8IJyBrcuG/NitOwUuK+Dc4MQGrtwZzAhJtwIqUIc2JnYMbidiJwkzsLtefKXOKbgEwJY8XN5rvdALXcghPuK+GgBD+7863AkGkJNf8Y7rdwUZwAhzkNV/rNVK+78I0ACGzdw5vtxsYAKiVkFzgkKtYGZxEkQhcI6jIAVUMAQ6sAEQQJlhaXr6iALl/00DnNzJ3dANAlDl3aDQW44A1bDQkh6hBuAIYFEFxmiIazDmc9AN6IzjOt66Ffy/3VDgBp7cU93jejMCrVICEF7dTqcpHoRQeZaZOhCvBImaMoACEb3WjN4A3hvq3aDlnaDoUh4GA4zpfM0UREiQ+C2x3RC+A17YJK3emirqOc4NpR58c75HMbRc5P7gK5ByOSuMEIBfG0AAhgjRwI4Apszo3QDpec2yAszhlb7ND3DbXqHbBrAE0ZiNSwy+sADPb/7YIR4G3G7gpPDwymAPSQc+/VOA4FXudjADMwDoGysCzWkCgpsLqKfhnQDlzE7IjS6m9f4BAozGUz7NnQAKuf9gx0zR6auprdhL5qGe1QlPDSFOyLCg3N7+8NzADbswACYwAYLm40+ACjYWkq3QAi0gBFTfCq7AmS3MBGJcAPdLALKdmnYt7Kpb7zvfADsNwOZ93mwc87nw7EpRDNvp6X3LrRkw9pHN6qtODRVc7ULPDaRQ9NwgAEmnJyuQZipQJ08vBFIvCULQChOAAbfuo2+aqqInuYUa9ruq095b7RVMlDes0NIa6QFAwHEw819ezIboBzhvvhlQtqKu6jrO3FXO5kNf9KRADSLgAKJG+LCzNKaE8c5WBJF4gs4J8hSwARfQ7luYr6gN0QvQ6GQPC8ReDWfMyQ2wAGEf89Bb8wD/EAddOPfdugbV4Nh43/c63gDor9yksOpLUABFsAKCpmYaMCfTTd0xRF92MLU6KpaEBxASCBSgAEBEggAIEKBA0EkhggVzGnRrQA3WnA9hIC5YQLGBRgQ0OoEiIA7LSZQpVa5kyTIGAFB+/DCaUlNAzTlzYCnjSYqUMlKECPFUpsYoUFLciFKTgMPHiRMrToTQoGEEFFdPtG5ttcJVGSZMygzaAMFBAQgFD4JE4VDhggYSG8DqhnPB22qwGnxUKEOBqQItBQ9uqYjMAwUJ/GSY8u6dvSk3JapRxm0oty3sthD6SdTz0gFOpYYgrYGErVSoWkCBggpKqwkYAJjAASGL/w6wYymgMVghwG8UDN92hAWLmoA5a2JpXFBtb7duIEc+CEzYOmEguQxA8rPmwxTGkYvnpByU0Bb0Qrl19tyZGrUBHXxInVoadSr8duykgnKiAwAJBrhCAgAcSGuD3QBQLpYFAghOOLjm2omuBqrhiKPnuuGIht9MueA6EFtaJJc4KvAjivBgEUAAanCChbL00vPpMxqp0cWEp6CqzzT8ekzttSzmQaMAAgBkgQUJDCxoDeU0enCjvSpSg0ILFarGQoo4QiCATgxAI0QwUxqxxCjKRLEa8Y4TwDhlhEIPPaU8M4oynnax0YQJooIqBB5SYIAEVFAh4QkNTvAEBxw2IP9mEB3IMmugC9Aw4IoMYklApE4Y4qga6HiyCDotm7twy+C6/DBMMImI4YE4onDiHSecmGKOKYp779bKLEuPKDrf64modwDIc0+oeNCAAQ08maADDDA4gIUBDigQgnkYJWaDDSIFIAPkqmko043ggkUpiyaysLk5nLtLoQBAMWADVMF0hEQFMoD11VlhmeI9NW6lhhvM4MyVmn599YyadzBwSscTOOAAKg8wGECXAQAowAEADhBBF4pnA2CgtAi4wh4BMnqyub3U+EmNnOaADjq6NAyJS3e/jBfERQCIA5IM7H1HPBYpUypOoNYjmmga+3UCABw8eZhhTzo4wJ5duBH/AAAK5pkHQSIPkPWdAQYqyAnJnHwrysqUoabll1nUS8MGE1DAy5tBvEDnxRp7rCaCiwbKs6GIAlhtg3lFmOkJHH6aA2MO0OVfQmDx42MHKNhAazQwBqBAtKbe5aZquESBhua6UWPwtaPci5pd7FzbwgQSoLtuwpIgQ+crXl2RxdapqfFXtQmnUxnXPRXACYUn8MRphzsYQADL1ltbgcVYkJYgRRGEYHuv35viA4U0nQvgnz59eS/Xb81pDQXKoJ2wKg6jnrHj/PV9qeGH95RGnowS4AoCIEp5E5iAMQZAtfMADBYJGEiReHEFXUjLATigwAUgcAECHIBF9shAGITj/xyVWUYZK+oGp85wwtXtoijHmYII4PU+wSRBOwq4woq40br0qahg+/Pd/Y4TPB/6rl9XmE0HPBCxidkDYOhR2xwWQAA0DGIQQipAxq7AhgEoCQIEcMJxMnAXGiCAIrniyds0VKG9OOdWdhJABhwAQ8HsIRe8WAPJbnWTFfnKfu9RYQ9ZVLi/3WppB2jWAQmxxM0M5XUJsFjWiEEMIV2gAJO0YMam8Lk5gESMDVBZ2tZEEeecQQta2IutqjZCA8wDjiw5jB8iw6IVvfKP/mKR2gAGMFzViRt6PM47oPU8N22BG5oRZlFc9gERJFOCZ9keWrinC+h9bg0LgQgnjWYRJ/86pwFaIMUotbA2nRCPGk6oDqpsMANmSIMlxQAALzJAst0JAJ67U9Mfc3VDNfFKhcECwBUekwERLGEA7zgPO37yJk91Yw68mCQADCCC3B1pAAJJC8aucEMBROdspyMXLDhVSi3cUil60YlFpgAAYqDKFQ3jgQu+oM6UXGBSEPxZPOOpoinYkSeHJJevfsJGAOhAByJzTECXEAXMDG0LM2riHBRQAEVtjQIOIIAJBkKQC1B1Cb1z4l3gEtKVTUGhFCmOUQDWL9WpSBflvI4QVsABT/SgByfYBCpsgBIgEGAJ78jdO2y6O1n6iyfRA6TadAGALGQBA7p4TBSWAKBbkYL/HZcxnkJF0Mh56IAYQhUqBSgAAQAswQmtU4ZHwxAGcS0lj5RRHfq4cZEG/NEeAADRDFQAFQ70gANUYQAU6oASmeZOF/aA5zznCcvWES1w91PbgACAgQng4IBquoLXWBSwW/YvZnPwQ0CltTnwOkCSBhDtLoqZrjCAkCivNI4azAUd5xSlOKsTAAtONZghjEZxVIFCKiRRgrtioQC8eJUTirs7ezzGHvXj4y4rw+Cq7cIeFWvWAZ6HQwnbkRDsmCzS1ABfBTQwY8ns7gEIAIECGCBj0BuKAK7kHC0QRTISOeHbvBqX53SkGhkgAGHsoCMeNGy3KoCCfuwwA1YUQ68s/zAwcUm2YHnSc5asu+UsxSmAARRywa0TCiGOY14OF3Nwpc3JB/wAxWpBch5uQAMaLuDZrv1LmLPCECd7OBGPbFMZDfAqyvi8kVgYAAKCEcKeeBACIYdABU+QhB0azYpxZCyJxT0wPPnoqd5ZWU1TGMCFI5xAzHCYw0pJSmc+rKEP8KJAWWOUZufhWdBKoIYJZNlHVVjGlxHsKGq40IW68ZAExKICFGiJK55CGtI0bCqLboGRWSEOEo3MycYlLj3r16/PzbJ4hGNdlzEDZlETc6nrUdt8F8DIA1T3AOuWgASJFIU5iMAJb8IkJynDL+jopAF9dFk1UHtGUfUsA7RVyf8oWuGw+iD6YaRphQpGkIoSzOAkMdhOk6sNS5sKVm155KWdqmYZ9Rxyw+Empk9QRxeOhCEAqiZAkcBLAAMRqeVbFeYuXcbJcp9PL7hckcs8AovevUcAFbDZSUaxAqfVJwUhWHgIVqCCRadiBjOIBhYW8QACOxmWOX2yte9oR4PhM3rREznJ35SUMbsXVAv4ACMpsCgpTtGzn83gFaiRHky+qNxyOYMaRkmuP378hr1TETmHkIUyZMEHy1P60htGmqc/oRX//S0WbGcABSj4uPNU03FUZEccDnZohEjuITOTmXDD6ZC8ynEYLNZymDtA9sx0wF4F8JjTe3lN99ZLlM7/sG+RL5H0rdOCioqzossSsgPKg0oKeHBohZ8A6k9oQSr0I/GJY/2dj4my1ld0XLLt8V9cPiQOzzPy1G+mmESxcTUMcBYCSED+zzqAgRxwgCW0mwW7SOAupnCUmNkLUWqAWzo/0qOG4iulWwEYCVOYpOOTpUsBZVuBFZA8ISiBErCDOqg6LMiOOBiZdziOabu475u2wFtAFSrA83gTYhK1BGIP7cKzFgovNNgAN7sgItkc+ROAN9mlF5kvUBIlLdgMzCi/G1KDPKoa9SMEAZCA5fOE5nO+FCiUh6HAFWiFJziyqYspxKAU4tK8aoMnWFGweGIdDAO5N9mwLkO9Dssu//abiIlYA4vBGAfgmknaomfhmAGYglDTPbmoEIrwu5BKj8FTioIxr9PbjGDBgcQ5gT5JAUgkjd3SgFaoREaLOOw7iTGpgCazuGl7BzbwROKqn8EjP/VLQ5FDPZ6CQSAsoUBDC5eTtWm5GABgMgnQhcpIIOTIMXGpmg1LD/UYrIIStS3YBRagjaR7vufbBA1guhDQihaQBChothkIMJSguAqglHfyPuKKFTC8ODO8pVMExlQcOWEqNU8xowtJAHa7HmdCMQAIQWXIgCsoD2GihrXriClRQvQgRmFawTALM/hAxod5PkicwsfTgCeAghKwgEarvJRIgnZajJ5RMIt0jP9X0bzd+biQS4/JcpMiZEOeMhwK0ZKrCqC5u8P4W7dYOYBuWI/MeK1zuRLj0BViFDn0MztCiA/lWbgU2ASg3ARDmUQGQIUSaDRrTIlVKZG++kTGsodYMTBYWqNuW0ED7DKsDLfVK6Pem4i7iAMV+5iLWTf7MxACYDL8k7MDhI7nGB8WJKZhJLkwI4Rj7ElHDIEp3IQUgKsaqAEO4AES8C87aAnbwTp/+sR7iUqNXLD6QUQ3CaY0TCRiNLVyiRILqYY5AKglWLfHMst1O6B3WLd9SSRlEKsG+D0WM7t+lMvUS5ie/MtHZEam44Aa8IQQGAFUqEbBuADt4ETHeAwn4Bj/xvpN4tIFArm/d+gdoeC/xwymLiPGOJmTrrSQECsANJgHSPostOinZ6EGeyCQJRCALrOTWskVNvTH1GNNdtiF+Igr3TLIqtCApVu4EbCDUSCMGMgFUBABFqCYTus0xnoV4zQBAymDGcABCViR0hOp5aQyN3FBpFFHBDAA69SabHEAAsWglmMBe9AFFtic5AxG5KCMYUQ99VPP1CMEXcAALqgBuZqrQwNKRIO+J8jEweDNOMg/+ZO/X5IA2igClWgEABiu9yjEf9mlilEiXflFBrwfG+OIAFCAA5C/TvvQmMugikm3zRmAqtGM19KJgCFGzUBRnQQbY+CCIHBR3aqP//o4NChIysFIghgoADJoOcoxC2JjiYKQANDDIdZhHScYACpbojAjmuKAr5RTALGcJBygJJGxhw81iM3RIPOqGnBSg/MkU7lMQyzDAGPwgBatTYfpgb6szRZYJcEoAgA4oCnDMNMbScsQNXKhiHy7kgYhAOy8FrMgUNAKwV0wMQnSq3DcBboYF01Nv0wVCnnKMgw4Ii4gIC44Ig8whglA1ZbY01Fco+SKsFI8pEIlheN4GbjZkvdzuQGwHvsDALIJm5ajKnXlP8uwiLzIVDLtxxghQnzq0E6zMIkB0Dey1pWYBwDxqynrtlviVoBBP3Lxyl5DgFjYvmiRIHicUiuVvf+WE4HrajFOCbVNTdE3SSRUPCQzpKcIEwC2AtiTcIOBZUzW4Z1StAzmjNVCLZe124jMBCB4JIgCMIFVrViqyqAQbZ2LqIbTOdZx/Eis7DI1SbB3gKbWsYceQ1kxAZDhsjQzJB7BY1A2LEbz4TMtiYU1iAKswQHa+Cxm6U8CdbkisTv1IFZOGULW3NrIXMJEild5cgJe4IULgwUKldqYolpw1NaDZcDnDLMm4pSajYjZQpQOoKCLOdf6+1mXo9S2zSgC/FgTRVbIPD+QwyF7uAIRWAMnkBZV8lvgAtxsncrTuSeeEgqttDlatZD06gYsa9zGpQCZY6Yc5Nm15TKMygn//jtPYERFkPW28SxB9ola0/3bJThM70vCtBE85jRRTHoZ2f2AboAFH+0AAxmSC8Ac3J09d6XUCKs1AszJNUyk4fPF5dxWNcHbXIiB5V2JuxGtEczWYQ1HspPVWIKv2JEdkIG163SEMigDR0ADFJs9O7W7j2sqWPhFzUja8sMwP3Wd/+GFlpvfllgVeQNDBgs7fEquzSDGbIuZBQgD6pgHR1jheYgURxAHGHaEVzML8W0nBMInFztfmI2tDFAOSADblumZNeAFA2i5ArgA+dVgwXgJ+73fgq1gX+TYyeqlDLBVBbiAFxaHKnCEC0iCQYBhcRgLBL4YBX5XwUOONSDA/11YAvHC0FxoudsxgLD8mCRW4uu4OglwjO7LoySkMo/zOPT9HHtIl2qIhTi4AHFQBCIggnH43iyOYSFJYIvNGKqJsONYA8zMgJO1YzjKmeatoRHUNjPcVvMb4SnulhN+KkeogkUGgu/9YjAWB0fQHvEtEj6lhuG7PSbhMU4G2Jx5oAywuA/24945w/Mr1IxK1AJwBEVWBCDYg2pRhCoAYxl2s0ma5H7yRUFOjjmIAuXtZRgS2A8kQycTuiRs1Y50QXy8iyglACBQBEV2ZRWeZmoGAjf4rBgo4zzGMOT4gHfShX8F5/cZk8W4X5bFsMa8oTWETpSTGwJIgipgZVdGg55VjmhqHoQ2u2bZW1VdQOg2WoM5EIDDKl2BvpkRqRetI0E+GmVSRsNEZIfX6oY1CAADuIAqiOdFAAJmpmdqnodFkKSf1cFK7p1ZiYXkWIJNLmkwmVOXy5h1UzEDWLcP7JkoSADlMJEM4K4reLEXW4MKAEtcVYQbuIFx8GJWhuebfgEiUARxAIIW1mgHcBZKuYIKqGsFiIMHULH78tuAAAAh+QQJCABLACwYAB0AhAClAAAI/wCXCBxIsKDBgwgTKjzYBFyThxDBLZxIsaLFixgzFgRHSRSdj6I8gqT0UKPJkyhTKgTHj1LHj3Re0vmEBMknUZQkqtzJs2dClh1FGflkhM7QUKFyhEJS9CZJn1CjogQ6FEkOpUlz7KjBdQdSpUz5SR1LdqEcGEiyKv30dWuQIB48cJ2bw0jZu3iX1JKjROuOv6E+0dRaY4LhuBOCcAlSIwWMUoHySvYJTo6RpFu77ri6o0cNT54M1/DMlUMNHkdclJrMGqWclnRCuX3LZXRnroYn1ODAmwMPTzX+7kDVuvhFK4FEsc1RgzYXxLifx/VgGPQJDrqDM4hsvLtCOYFmJv9tPmE6dS4TpJun7on3597Evcs3KKfj5dnrPaj3gGG6YQ6g9dZefPPNBw4mlIi3QxCG7affdBj0h5huE7THW2g9fFGggckJJlth5eX3IIToNVjhhYWhotOGxgGlnFVbpRfXYlyoV+NzDfpXIWg1+GMDi929FpJgSBzBA4CGKVbiczeWmF6IHeTmiT8lAGlcSyF9ZAQMttjCgD9H9tADByeEsMJ1AYZmWAdstjkBByNYWVx4dOBECQx4oqLnCCqoMMIIqCBSQgmIoDLCEyqEgKQHbUbpQwtyssaRnS7hCUOgmCLyRR11ROApM55G8EUJI4QQWqMTrBApa3JcIwo/sF7/c+mlg47aqaihMsMMJsyAwEwJT5zgSaOeILLqZHUYQclrgViAii161lrCpnV88UUEvYIAAqd1kJrCqWx6IsmxeVkRASWwUnKNnrbAgMi701or77Xa1svMF6j4o2YH6NVBLl7gwcpPKexCi2mg8Vr7ab2+foGICkhG6Ym//5Zlgw2B8BPIunp2jIgF1sZ7zafZanvvw0j+92PFZEVjAyaBBEJwlx1bAPKo13zhS6clm+zLw8JOEOUKcrBMVi1SYFxKKS500QXN8aJSggW+jKwrw6D+rELQhq0AgtFkJR0zDDyUnQIDgGpqwcc6R+Arw576ki9vufkI9lhJY2IBAzyI/8lbCAwYrOc1dfTsawTVjuDPhRP4IMTdUoEjBQgRoNIFA11oEMIJJ6TwtNMkAEp1r7p6ai0qaIK2AhWQQxWNFRfX8azBfKaggQtdMqBBCiGE4GcJhSNurSSmguZDFiu3vhPSF4OAr6F/IuqPBtCuq/vmHISgwQg3b1qCCqB54sMQyvcUza5yYOKLl9dxrj0DLlxTyrokMFD/5QwwEKi84Ie2QvLlSwk4IoAJjTXLFpuwnQZUoAH7faEUiBuB/VBhM48NqgT6Cs3jArgTOYCggJjABJe6RIInSLALqPAFtkAgiSfY7gmDQoQkBlUHRBTPHzPg4E6s8MGYXcMWuHPBn//yZwsLeMpXJZDEoZ4ww2lxSxLC8sQIiqbDlFihUzIDIuhsMYL6pRBbvYpArTalq9J9YQTXCcEIAFhFjdSCcoFYn9Muhz8SIAKMpKsWz662rTqMYHtfsFkbU2KDCGxMi6AjAbSuha1GIm6PuuKWnq7lCwtQcZAa4aH6gNi0/BHxgRHwhQpFKcpQklKU1kIEDFR4DTZi0iKwwwTBXNC0y6WAB5t4WhEDScmdiWpe00IECYzIjGi80iQXYwYiaOlJBiRQdykYps1U6DY5EJBTJZhBtSgYgUseMyM2AIEFmlbLLpDgaTazQM5QETJMDMoGcoDdxWzAKXh+0yTRAAEqaNn/SUUGipoRuIY6R/WFJwyhDExIKBNewNBRWOGeJ7HBsy53ThJ0jJGeWhvIStACHcxjHhvYAAV0UIYXWKEWEEWm5RiQgk2oIHDQUicpR7VRIWThoyDdwDwGAQaUplQjNpCEC5x5y+y1VH8VtBbIrjGDLAzio08dhDik8FOTWGEEoINmCra6icCRwE+CGt5NQwrVMhyiqkCVREXxBz88pfNP8OLoTXO6U0UYE60YAccMFMnWFBwBnamkGTuFoFOczkMHTLgrXi/iR1t0QQme/Kst4FUomn3BpoWFKhOouliLgMN5iPwczQT1LqhJYqw4HQQTwNDZisAOEbLCnC4N9q53/3VMakJYQUgLq1rOtlYhsUQFDK6BOcx1CQZrs22hDMVR3ZJ1Hgj17W8RMgpZNo1LDMwfCgMlwz8ZSgiSaIFzc9rb6SbECqOQGWSPkL/d+dV+FgXUCFrQgmy2YLchRYNqz2reg9QBZqVQwhGOsNVblo3A+RsB1LQpXvxugKTS7a9ARlECjRlhwAQ2cJjIZLu0Aa8ODc7vTsXBXwkvwQYzEEKFAwED/B1BA2XbMA80YNGEScIfWRApBXYs1RJP93UpbsETLLCxlRJ1q0fyTeBkai1fFFQIxaDAPNAAXUWYtxbRkMIohPAEf/gjBKgIBCKwqrsEapgHZ6MgQTc1gxW0YP8Qg0CoIsDgY7y6DMUtXMGZeBPmL7zUmQlMIJq3qr/abrSFWcgCBS5AATRs1s5AbmGiFAWaKE3AFoEAse02YWbbFThw3PXeDGZQAiEUYccPduUxrXAIKcxAEoniXKXZZAI2jSAQNsAgpzft3rJtQpEf694XRl0GRVRBEQ+GqBWsIAUqDKEF/uBaXDqAgQMAAAAY6MATbAC7FvCpTxrodUstmk55DWoUL7iBIoiABgfMg3yYZDap+bS4YZkgQvg+wACaYW0TrAAT8Xw2AxjoXq7abwTBtlbOwssEY1fhAgAwAQXKUMVpgIOepPoygDpggnsfQN/6HsAAJCByDBAtnlL/oC+fCt5Ac3LXZjmzwKEaXoUbJOHaEYcAxZVXC9glEdrCorW1ARByCRhd5EjHgA8wwe1DMEEIQ9xEuLVr0doGGxVPmAEYwHCDQ+jg2gYwQMRHCjZWa5lUigu6xz8ugQOQHOlvZ4PIDzABxFnhB2AQh7dDJ8H8kaDqhkZFn2Zwg60fogwEAEDYeWFtBxQhCxU7xChGIQkhiBc7HMcAzg/A72Y0A+kiZ0M55D4ADJygDlQ4xA9+QASohy50fgf8uySYghZIYetgkALiFR/2OMRB7CYows7lJO/w+mMFw+I4zvn98QPwIg68SMMVRH4FFrBB9KVfwQxecAhOcOIHTFBw/6DUqsi02VZ3LajD7bcuhWIkPuym8L38I94IyAPJCs8+PubXvu9mSMDzABgHCiB91scGTiB6TlB6OkAFLyAF3scJN+BtHyNDhkJuzkIC2zMDUnB7hdd+7/cABkAOIkgOCiB2AOAAEMAELJIFPtAIQnNv1TYAIiCDANgMaSACItAMFZAMGcACV5AGLFAOTvAO1+cAL0AFW/cD3vcDLyAEH0MoCiZNXqIBWScFh3AIXCcFNwBxihcHICh/YPhxwTd83TEEjUBr1yZyn5eDOeh5FeCGChAAyZAM1ZcG5VAO7+AEo4cDVEAFhdd93ncIL0BDSSRDF5iBgPh9V6gIMQAAIP9oAPHne+QAhrzgeRG3AS/gHfPgAJrndiSHgyJwBSKQDBVQirzACxWgAAoACXP4g1HgBEOIDO/AAhDAUH/4gD8gedr0apjCJ1mXiIooBVVABo4YgqYQgiIoiQpwiqfYeKpVHDcAAZrneaAYBaKIg8mQAKlIDgGQANpYAVFgjVcQjk6ADMhQDixQAAuFew/4faNABaQmCc/CdxqohA94hYcwjMUIiQYQB8moigApggoQB9aGA2SIF6MwD4nHeckwijgYjtYYBdmoANzYjRUgihWAgxnwik4gAFHAAg6wjknYjj9wA5T3JyrARFKweiS5gbrXiI9oCiM4idCnigI5iYz/dwAEgAaZmBeMeG3NgI0PCZFRIALb2AkBUAhrsJFRUIrJ8A7vYI5YkIcEUFJ0pnrfh4tb5m2SMApYSZI34AgLtQgEEHb9aAoySYLLyAszGYcBIIKVCAAFoAN5AQTEeABXMI4NSZRsYI0i4I0B0I1LKZGleAXmeJhQCQBVxlDrVni4dwNDMASTt5Lt+IA3sAdV8AJoQACPCIkjGJgBQJEjKJoUuYz8RgAboIJkcQhcKAGhCIrlQJQsEI4ZkI3emAFrIJGkmAGIKZXIIALWNnQEUAA7hVAvoAgvkHuUWZmcAAaLcAEXUJbyN4mT6JYJYJOnWJrcSIKn2AxySZdjwQR3/9kMeZmR2JgBGaCHRVmbc5gMS5kBCRAFCbAGhymLWIAMWJCfUFkOOHeC+iUOALpQywmWSbAIBfCI/vh7NRkAFRCagSmanTCT3Ml4JwieUVEG48kGotgM8bkGTpCe6LkGa2CbIxoFuDmHaxCVsoif+Jmf6CgCczkPF1AABICC0CUOCwWMS0gEi7AIjQiJaPkAaEmCgZkAoGmTbxmh3KiK0GdtFCAVYIAGd1l9V+CUGZCHQwiLEnmd3oiiIvoBazAFH4qeUzAFLBqOFeAAJaUITKADaFAABQABEMBjN2CPnKB6hwAESdCIkkgOQ1qRRhqHSDmCStqWvmcAVRkVdkmM5P8ZBeVglAlQjsgAi06QBslQDWtQAQkwh/O5lFA5BbppooxgpsiAnlHAC8MpZYPgCI4AUhQAAQ6AglVAZ2AwDo4wDoswDzEAgkM6pJ2gioCpANcZhwoQoUqaoPM3D1GxBwQwjePoBBA5qu9gouxZCIygqd44n9WQAVPACIxgm+7Jm6V6ohVAABBAozVaABQwCCSlA08FBFVABOOwB2RABhegqw/wACIokzL5q6DZjdcZmoU6gvFnlgbwpFDRiABAcs/6Dun5DlOAntBam/OpmwlQCGEQpmXKnsmglIwgAALgBIxQm7xQiy8gDoOwB3DqAAVwr4iVblxHBFUABIswCLv/ipY4Sw6dgJTaGIfY+pYiOLCT2HsGAAHwxhNVoLAjN45RAJUqWqofSZgj2rFGmgDb2q0Z8AHhmgEfG7LsmaZlcAMbeAPq5ggqO5wxUGWOSQQ7daAGkK9C6qeBGQah+bNM2gkyUKgFe4wGYIQ+UQYOkIZ3qIds4LTnOIQmyqmYWggJ8AFhUA0fOwVzMAUfgJveWqYRWw1h0JDDqV+ZqZxgoAhAsAcxwLIFEAN7sAhUVgD96Kc4i5RFCpihua86q6Q5K5NxQAAWuhNDsJAScAUGmKWIiaUUa7Wai7GP2wDdIAAbywgfcLkhCrkZIAJySQDW6wAXMAhzdoVcpwiO4KPD/3mvrMuvQoqWO9uN2Qia+7qzQqukYqesPQEEBOB211e49SmVUAmt6fu43RgGYcAI3TAFINu83uqtkOutpFiLilAGPuoA6boI4pCcLnkDVTAIUsa6+2q+prCzMvCgbjmkFKmk/xqhYocGPjEPRHeHwfu0+YkFU+DCTUmRARAGCOCNhdANywsHAtDCAjAHBSzACKwABTBnHKgIKGugcFoA/3ls4kBlDqCvnbDBG8zBRTrC7LuzIigDCBAAMpC3YrcBPoEGRJeHeKiiLXwGcAAH+VmbDooACxAGVjsHZ3AGAgAHZSoAZ9ANl8u8kssIa4CoEDBiTOCYFAwEM2q96QoBi//gACEYoSiwsyjwyDwru1ass1pcCA/6e/DLExAAAM1QDueIpZ/awmrswh9gpJ2wAN2gtR/QDWmcxlggAMo7slcKsd2quWGAqIlXo+sqwRw4s6XLsu3mjwEQxRx8vtnKuKgcmFjcCW6Myb9KDgZgwj3RiJ9sjnnotPn5ymnMvNCMAA3wAc87qjvczQ0wBz5My1zLCNVwnRdQBShLAQ4MAOY6DxEstmAgr0lwAYvcj8aKlOerzIAJmNActAiAyW9JkdPsEzf3yVFpuLaMBdwsAOw8tw1QwIwwBxINBw1Ax5OLtevMzoWgABcgtrfHBIOwCBRQAA7MsjXrCOLgCE4cggH/gAAoQAM0sMXdWAhzqMw1XczG+q9d/JYGsAg+sQieDMrvMJUryrykrMNTkI2dEAZnELHPK8ACDLIDjLnomQFzkAHtLJdx1nALdQMvwATfi67XFqft1sgBgAI2HcmBWQhKybiBiQA2nbdIidDqu9A9gdQSIItL/dAdudQbrcYCkAGF4MzdMLlkaqY9TMdTANHeqtXfaoLDSZwlZYVaKA4Gmtntpq+1C9cIsLMIgKkfsACgiddXDAnQXAil/XvUzBN7sLBQ2aKfeseHbcdrsNiprMfjnAE7HMtY/Q7lMHcYcG8yyAsFkNIQkHj0DAFooAMwe5zxvInIyMF4DZriLNL9/2vT5nvQGKvT0rzJO7EHBiABeIgM3cy87l3Hr1yma2DTC5DH3hrAEOvCaVB6HXACKtAuXhIC1AYAFFB46jYIb4rIwlyzcHbBYQfJNUzDCOC/iwvH1aDaVyzemOzFBmDeKrEHD9AMhv3KLhzLsVzHygAHVb0GRlrf9j2yUDkAJuAJKnANLqEuW6IEKTABmudux3bWCSUOZSCj87zWELABrNvIO+u/TB4GC3C81RDlgVm7Tt7OCJC35e0TIK4AGbDN3GziLgwHypDiiZ0AnVAIc4y1LHAAHZACRlAKlDA/eEJLRlIDHsB5vCB2LBvIVrl1RCDTsBqn8hx2OquzP43XYf9QCAuwAIreANXA1zMsohdb2tI8CFoOAAqwBuX85V4u5inerZiMAGegDB4pAh3gD9cgMzBAS3oCA+d0AjyOActtrjQqdvV8z2yK0vPQaGXZrxk+4eKMw2HQDRe+xbC7uEY65UXrExegr2swB2mMxtwc7WM+5hS92Cjgyu8AAD5gAfOjBF3QVeJnKFtjAm4nn9NMBBRssw6sy3GqU3Am3Yz8upI84Rlbmxh74dBs2o9O16hMDgAAAT3xAmRgAApgrWisBtPOzWMO1XR72lMAACtgAUbgAgPWVQPnJ7XDAeZuqddZACVl3TEtozR6ALYOpxRAAOYL4TUNx2HwAXRdCI//zsznuwZOjtC/erDxCwBxUAFrkNHSzvDV3vDMq7mnfQCN8FLslT99EgK24yeIsgKN4MkXmwCIioJUVmyMKdNwCtoq7+s3PeETHuVkH+Wy+7hvzOhADfCznRIY+gC8wIOVvdFDX/fV3gBvHAYA0AG+oQHi3icaz0VK9AQr4AAHsINGOpxlGd3zANMAWgYeNQ+KzMijHfZ4veiL3g0X7bixG+Vr8OgdHKEAAMbnrXg+z9UobvfV/soN4OgfwOae4DuH8id/El+BcigrgAMAgK0PsAhG/Nk4N5xzulODIN1lWbudEMlx7cZOjsMXTrd3XfZh0MEBoMk7MYwPEAciwK18//yxnq76Ka7i3bC5sL89fKdyf+Jt80X4hl8BmJzuRKAIRkzyRJeD0X3kX7+zpqD8lw8QCxAsaNCtWxgEnQIgGNigwYJCASQaAFBmyUWMGTVuzLgHAABeFRidEeBkyruRytQo06KMpUs4LOE0CJPgwIQQKmwxGEFixE8VQX+OUOHDRLMKEQMQuLBoUBlxTMQ5GrQIggMCAAhAQOPAALlOnVDQQMFwIMIFBquFCUtjYNoFCCEhCBAHgCOOefUuiQGyQrJuDaYMzvChWrczL1lq2dISzpluHyoAwJmCweUuJFT446xiBKoRGlaYOCCiEENTBB48IOCA66BB4soMmreBAv9XAgoChBU71uxAg92q0VX49iFdieQMPFC01znGMlklRMnQYM6ZwVMyMGqwUsv371uUxXw8RQSADhx4pNh0OagGz0OfaDB6IM2aBZ0eOI1BwACvA7QqgIJF5jEQgg380w2FsFAoK660zjijIIToKuQhgcwKQDkCKHjuOXEAOECCK6KY4gwsBBgsCu7A+44QGAlxSaUprjigA0/USyEoHp9oYYQWggphAgwGcIKRagJ4AAgiFJntggL8O4CXj7bCgYLcdmuwLATCWCAtNWbq5ksvCTruS+LiIACND51bREQJWKBOAJIGW8NLNVxkjJCWVFKmmwxunICDEFKALz6iNnv/4gkVRrOvmuE6IaPAp8qYbZ7bogTAgQEB0I033778sjvs1kIoDEgFIpOhTtScp829PGqGROqmEAAOWzMopJo8teBziy34nJHGZkwYtFAeefRHg6FGcFQE/OJ6wCsBKZjnKR10wPQ2NDxdaCwH3yJoF2UmRFJUuKoRNaFODCCACVjzKoMMAGaNIop33hFgXyymSIYgl8ADVliYphjA2BNC4EEDfzwL6omfJBnBnwkAGCCNQr5MgIB5NKVo0wIKgGBkCijotoJPy0Lhy8POUOPlM9QtMy1I1UWAwU4U4DhejhShd7p7MxjsVgkZ+YCRXvVsyTGDTUgvYUN7/MmnIYss/yeDMREoBIBrYYPSPxFEiKKcZlyjAIAEEkgIXAQg7Walx4RDl6A51jBLLLq45nkjR0RMIwMnhH4HixRJagDJxMCDSYtMMnkMCzYwwJFQQ+FrVgNPOigSmSnmMOjLpSC4Vgfa0IAgqwMOMPuAZBIQq7eBqpkDjpgKGnPUCSENA6FwAzBgkL018ogXaAHPQMUU4QhTwu58dYw82gmPfPL1NGAWqBM0HwAZ2idswGYETHlAQNFhmweN20g+wIlk2HIw1AZcyh1dUhlhJIxCaCBLBuVeDf6iGxQAJPdJBnUIZyuXhWk8ixkP7RoIB8KV42DpoZz1VKABDmAAA06AQyZcov+GCS3ALSggwCIE+B/yWQt9EKDAAd5hGnaFqzvyux1w3gbCOSTgNAuBhAIM4KH/LaEY9GpG0KbQLyw4kCV8WlpMHhi96E0vR+rhQRVPQCQnYMGDMIGMQBxUQgOhoQAOEFHqPiKyFiLDCWtIwG5kOEMQqistDpHQHBhxJxnkkX8/DOISFkGAAzRjDYzoxq1op0SBfWdGcKAT4Q5ZkhvlqAc94EAliTQALc4IhAb5wN0eUIB5kM5AmcKKyCDQDGQgozBra0j8XPI9gQSGeXMQACPmUAhcQsJ3EAgiEfoShwocDw6OaRwE9xUwRaqEJGeYXcDUgIWDTcATk6wkBzQ3uGH/wcEgBVnLAqrRgAoQQGRoQMMGanOb9DUDgu9IBkMe9LJyzQ93zAtMN5B0GroUIIg+e4ACBheTlmSCcP26VZ4+mM3HOFCgcCiH5CZQA0pywBNFescwPzghThZid2FwVwEMUJoAfQQAGOBUAdQpUCdUiCBwU0NB0KW4lh4OSdXApc6CmAQAxCEDSTwk7VR0qxQpxomO62lRkTEADHDhoTXI3PaSqEgJBScuZukQpsaYFZGKc2QHaBwWMhCGsayUhsMR1RlchKuCQOYgPvSfc6RgBY3EwAAZQEYSGygAFpRDX0iMiQed+EAQnsGvhEOqB5R6yYr+dTyQkWOX4rKxAqAB/zZUMdAob3NSRg6nLC7jYtZwl4nv0A6EDnmsAdqaFyoIoQVDkAJGQlSBvJbDRALAQjmuUA699uufShyPXXsLPYNp0AMaxCRoHafJmN1OVY8NZwEugIYwrvCyWsxEzBiyAM6ORwByJG0DEqgGD0IGQxzlZV5sMIQVrOAJQnhBa/1oAAmIVAQmQQZu9ZqvfDlyRn2CiQOjd9QDYCB12wMtIbYov9F+Dk3tcpeIeNGMZgygGQfokEmHqQU1KNe7j5mfd8+ApsOsZJMPOUgFCnADjkihBen1xxMkMYNDXIQMEbbYfet6WzbodV91LWoDFzis3rIhrxIewDsY0xhNwsy7jP/IEEMU4AByQiBkDqAyp6R8gA4yTm7YXQlGvyShmKk0ON1AwJjWEk68aEQI6V1Bi1sgBNb68QGzSsPg3lEOZNy5HE5ggxNo68hDPjHQRCVcXdUYNicwpk8rUUlMXXozgejsNZYiHW1KBgEACCATjfnwl7sHS9y5dKoDMcvuCpEAvWHECpJYwQlWAB8fSUISrQWCAZqRhty+I4t6zu9AeepECCbx17hKxuBS5C8AZYBxB52RWtelvzAQAKuuGZmUxyhlVBZYm97sDu1A7d1NkgktDDlVABJgWozYQAj+OEHCYD0CWY/CjwPMbSqxoOt31NXXReW3aDOgFQCkARkiOAD/RUTQQQYyWrvKBStDWiPS0oRtAKq7iggysGlOQ+oMMWnpmALj1ykoeG5lqsAB/Kfi9EItBTvykRBmsARZ1fkdU+Cxr/fdb34zAgAhAwCeCc6LK/BUGcDSAoddpk3lmiUBBHdAyS5dbQoIsBkYx3BafeoQrIN2PIQUDqSw7jJGTAYCUpjBitMbArSv3DNvfrlHDCDzVNJO344E9CFtTrspNANkgLRzFqOnBXYE3jEJDOG6vpSMKiEINuZjoQB5AQdCACsTtaQnugRr4HKJ9jsFllHeMYCDFrCbA1Ar1ApyAm+Xy9jWTjA0BHlsd2EHGwuvJ9wBBkTGA1DXcY1jTOAD/49k+Tm7m7szQGRPB3BpW5kAaXi8rwysTe8VpCEucknjeG/9ojuhGZ9fQTVHnzC0NwzeL4brHgjAC73WPO7DhkNdB1N3OLwDACWzmBYZt6df+V7ww2rp3AQSuqsAOACgCJFxAACBg2CBkerCOpdyiDxpjKVxnF2YkMdQhqPCAKeZIu8bPdODjxYgv4u4AFsTOMLpNZvrl1TSN/+CJgErB93LBBhJwC3QP3Your9SriaDCAUIECizLBYiIwDIgMiTvH4pCFgCN+ezwehbCYFigwNwmkFpN0IJgXZztYfxkRKwgYtwBLBxwXvLtxM8iRTUtwYSqLraPd6LPDWcQRrkL/+1Sjq3SA2sGhBrExkCaAZeSANfaQzHCbkxS5wh7BOH2IVeESik6gBpqkK0a7cUaLOWa4EP7IgHyMNUYj3OEbYjOiB+wTmX4JMYZAcY8RV2YMPfWzRlEDVVuRkwmgdMA4Cw2bmroJJmiLxRNDAs4LptYolRBD4RyxNCYKgnlKbRQ7tFBD8ViDVZq4OMqAIyeLt8GUN9y7N8y4A1yMRgox3QSsIYDJYEHEL9E5bRkiM0YYiOkjIqGxB0EiARGSZg2QLHQZJtcpneq0HFGcItwIIrcKgpUhgqPIFKcreWKwEQ0Ig3iYM1wLN8G8N3EBpqXAPagiLrS8NP7MZ2pMFgUSb/bkKX2EmGK5g4AGAh27DDZEgDADCydmwMeDyMtzmy3ztJ34ODfETEHAE/YiRGtfuJl9uIGOgnEXjGFMwXJ3iHKGC9I8LGCzOwGBnCGOFGeyRFTvMetRjHTrCykVHHTTkdMzo4WgyWWiIk7zoyl6RBdoCDQxRGtOMB8LvJn3gzLdyIP7I1G8szNZItS+QxZYjIpRyYk+RGvSTFGmy0DJubhKA29CmAA0AGitOUdRRFyZuCkXhAsRRLdzxET8gRYkyYtBy/1MuLvqDEoMwzJyiHHEu/17u+pMxLYNnFk5zHv4wbrkMTgSigjhyAAWAB1bHDZmCDj8gAlhiYyUMaGPTL/8gMvEygzJmsQn/8xxQYv5zkCCAgAGBKAyeYTie4l7xigWcEtMZJSopkSjVsSt9DMnl6izFxl3PklJIZEALoyQGwmLtsRwM7jD0cTv1zx4Yyln9cjxQIgUryhBo4Ac+QBOfYyTzcsz1jATZIUL3KxBQ5Qxg8zdNcmqW0SMfouG6Ki2izlmspAnN0DQIYAINZTEIIvMg7HDUYUfr8RizQoIcaxprkz0oKgScoATdpRgVIgzSQgBxNg9GczivYuQ1wgKDjPcZZSgN7hwPIgGH6ldQMz1eqGfBBgI8ZqQOgzau8Q73bzeCcwV/8JuFMUUJoKA+QphqopnajQirkgRZoy/+9AIILwD0Iw1EnYAG9KwAdgJclmIcDwDOAQspQzIQrIA0t8kR7/D0+USsmS8UFsImQqhKR4bnWWE/Is8fJ6wbAS9H6zAQxXaoNHL0UeILm/BBHAALFFKfTuogWYoOnAg8ZYVXaiZEXKVRQLBfbGcfwCRl1rE0RcI0pqzIDOIMYjLyiQ4wmxdRavEDDWqoaWFZCGYFQ7SONcIAqTSLsK7CILDAXQVH9a4lazRAa0A8DuAK/+9Gma40xojIAmIJghcHJmwOWNNZuRFbD4gJ65QJPeAI2hdaMYAJAciq8hNBNC0Xnm0Gn3AIvUym6oIg9Jddy3RSskDYR2M4EFKiR0Nb/FB0YNWwcJ0AqDerYU9XXi8gCEXFBbNzObDxNd4xVWtzWx3gILyE1AxgZAAhNE6Cys9GKrJA2ABhUWMUVpPlSyRzCa509e8OCNNgAkN0IkS0y7XQ+AwtYjIVV1vw9jLwddSk+CMAACTIBHGi6KtHZrBDCByW6M+AOoI1MLjVDol0/CWCTpM2Is2FaiMRLp/VTT9xLEo0bUcEfXnANE+gzkvLQSJW2rDg4p+VDJgvO4QzLYFmnPaPOd+AFt33bJZACj5AAkqVWo/zXB83L/KNapCMrBHgyCPhbJBUnCuCUh60yrurcp92uXei9Yq3Fk4xBgXoHFhABPKyAcPpYfS0D/2nFtdfjN8dh1dPsXL8suu26rjAIJ6wYQJDJlF5FV+rCWMcRjl2w2PCEUDVsPycQAQOIg+JbBMrFCC60D2O7RijqIOtDyvZF3vCsrsYa3chahCRIAiBYhBggp6g7VyojgCjYTlgtF0iRXYJ1R+7lk+hxAl5givLNiEGolz07wfU1zc2DQV8BLYL1vV+cguGgC3IoAEcQB0WoAnEYhKbYANPxX6zIPdd9PvvpBqiNke1kX/dlpDQwgBgg3wfGCI8wkhQsNBXc3GwkUnbdRjbkyjlQl3OLAahoEkVAYeiaByhhYQOYAwEWVji4H98xgAqgrWu1vvZbA7sQJ+Dp4Yx4E/9xLVpDEzbNZd8iNS7urMhRfIw10KgQdoQqgOJBEJ1rEaMqQ1cRoC4FVOAkKSEH6NqsqAAcxUOtiIECiAE0zos98OLtMbbZGyiIZF/Ou+A/ZcnGFY4wIAcHcARFOGUm6OMNGARHWISoC2RA0rQHNa5TTIAHmNwlcAQqjoFiWIQyeIFJjpURtDfZizujvEvsc74jRspi/U22KOUqOOUovoBV1uUV9t+Aa98/bYA1MLFgDiK5urUgPqAhHiYPisgl4l46Lro5UMV5IGEiIAI3XeUyaGVS+t8KIOSnbZwz+IADAKJv5hm5koCgDEokGuIwxst/neMZ1IIpUMVBiOZTdtOxa5kKIFjhhwUkJRVgMc4AE7OIgI6XvmiGDDiek/gz7bxWxvnXDEZigi26JNmPKpBoio4NR7Dnq9LZNNi9G2akKDiA8grpNnmTW+ucm6PWhFZpPhnbJCbRTGAEJbmAPW6SmhaHcWhlNICSh3XFF9xnAfBoAgBpoX6O4bkPWhIAZNC0WzGkiOTkMP7F+0vK0JoD37kAEj5lR4AuHRAHE7bmDvWPKNg443KcfckAvfPdIAoIACH5BAkIAGMALBsAGABxAKoAAAj/AMcIHEiwoMGDCBMqHAOuCR1KlJo0ATdtocWLGDNq3DhwWhMjs+iIFEVHFMSIEjmqXMmSIzhKs5DIogMM2EiSs2bJApaypc+fLWvJEVWzps5QIYEhCZUjRyhZOUUBnUr1YhNRRI0ydRoq1I6vNXY0bapEVtWzaMdYKUVHltutOb6CDUKXbo27YbuUkpO2b0s5MMbG3VEjCOG7dCdMCKLYE4caPXockWXEr2WN4ALJmos3CF7EnmpM8KT4RAgOPFIf+XK59cKXs+IG4UKby+zbQUJzUNzYk+MQPHrodU2coESIwGTlKMzFg23aHpyPntA8unMuE1L34PGqeHFwpbCS/1S+Y7b189KpRzdm3TEH1DygeHcth5LNo4Sro8fgoQP68+6ZxgMi87WGiSg5LRVXYf8Zg4Ex7P3X32juhfBEgZbVcpVOSCxFWBASPhhhc83xZmJoK2DoVxOUIBgTEguCKKF1tJloYge8pahiWk0EQpRyTR2mGBf+nYcdb74pxgFpvNWg445nyREIHTGNtcN272X5mG81/BaCCmCq8EQIJ5h4ApRoseiWcqmloMQrrzDAgC22jABmCl9KYocFX/TZpwWSrMDbCTOgWVUTwIzFQwpduHDJo6ggYsGkX6QiCRRf1MHMppxGUIcFGuzmyQl2GEqVHEYMxgMDj16CCiqp+P/ZZwSZcgrCJLhOwkwEEUgSwmikmjpVE4ERFsIIUKByCRTLIiKrpxEwAwKnk2AyybR1lHDaqNYICxQmR3zFgQa2QJEKFMlC4aysmdYR7abXgiBvtk+c8J4Q3v6ECQ+E8aCCJCWc+2qk686aKa/uyqurpyU8scIJJwyRr0+YMHBXCBq0kIqyraICA5+z0voFr9LeuimtvkJc6MQs2TACYSeoMAIqtlzi6KPq8smrp+6WPG20KJO5giQstywJBz18WXPNN7uaCsiezuozvCjb+2TRKtVhbwpztvqKzZCuK/LI0cp7cp8jQFwq1ivZABwDcdoSp5wMdPE1puySXfau2Ur/csKFbLetQgqv1KkBmVpygPGyX1iQCiKSgjwyMzPMYMcKKwfOkQ1QyHmJBhrgGcLo9nJwAuFQlADFCKAfPifAJZQgSQuaryTHFyPUzCrdJLxqy+GrotI4KgxoUDwDI+QO8Oy1u4QJDF1cQuclccaJChS2FG88IryqTumkAQPcAu3NZ8RiTbI0Tf3hoGMM+gjcb2rBq3hbELvsT9hQPkaYADMLMEYwAsceNQI5JY91DCABDMj2BVQkT2OVm0EdJDGCOuzvIqXwnxECQQkLdMxcJaAZ6+DkrHdlK3aaOlkJLGDBCy4kgzkpRSm+0Cp0pSIV0xsBCS4htnfBK17McJf+/1yoEBAY5QtGgAHYXMUsW5AATiT8ggwjcCt5ma0O2arDEImIEDkYBYAuCKMYX7FDEjwximTblBWx9akvgIOLCZEDDJPogleIMYxOhNMTL6Gzd+1tV5nKFF/g2MUvwMBj1HuF3Rr1NTKSIIF8wuLOdsUzvm2RkAapRR2gYEdU1FGRjQpjFxhAJnINzE+86lMdJAiCN2IyIcww5KPMSAK7QTF0oPuaLSSXSlqVYAaXfGUhW2WzT+rRVRbwIa3cJTItCvMiIGCWzUAJt7vpbFpnI5sWXflMhdggFTusHhS/5qxkAm1nqmSGFbjZTYRYoQSJdAHd5PQKVDgujTbABNCwaP+FWrRTIXKApwu60IXQpSA1i0qgPflkA0nMwAoQjag//3kQG1jgiaOU0xFSkIIjdHJST0tFC4YgjiEw4aQveAFFKxoBVMTJeHU7Qt1c8DFZiTQLgtiAIChAAR2IY6UGqYMh5QRTujGqd5TqkyRwKoimomEQgwAqQcABTxhoz3hcM97dUuenQDG1qT6V6kCskIqMgk4FMHVB70DIJxY6rKlNHYQ4VCpWK3COAZtIQetap9AbTmpSEWhBFnSqU0GI4wZiHYMcWtqFg3JUrxw1nqtgZT8WtoCwOh2EI+gKVHDIEXqPBY5jI3s3RJTgCyC4bGHB+oKJUtQK1sBEKWBwBJn/im50PBgdxpAHBUl8wQaChStrXdvOdyJCtlAY5UFzexotYWxm6ipFC1awgdVulrjPtIEdZIYJGnbBtgh1LrlSscJMPaG6G0BDZlvbTnDMYLqKC4QHi8fRNiEuBFy7xNPAR93qogENgtABe59phResYDcT4EApLPAEtC53UXiCWAgS+LTTXg691RXEIBSBXS7adboT6ICIO7DCBmsAoYtalGkm/Aoo2K8ElytCev+r4SpYAZNymIEQVuCDDpgAA0A2gRCosGPQPfi2+F0W+AJVXQrQ2LDi0AERwWGDhtkrxEDGwAEAQIAWUIEKLXBwXvGL20Ut64apUEF/eXoBCgR4/xEEoIA4qNA8Km/3PSHugJYPIIEDbFkQUtDDC7KA1sPplqN1uwQMnvYFSTyhBTuNqzjEcQECcNkBG5Ay1mBrh3oNyQQ/5vMARr1lClBBD3pgwhOe0DqM4Vehf62DYLOQBbmmFAyKiAEBDMBrLkNAwPkChzU6zWMfYwAAWxb1qAcgAQAU4AVScMYNhPAEOzV4dMbr3Q1jF+YsFAECELjAIICg6wfwmtd+BgAOBMHZHdlVEmrusZ4B0GdmL3vZzWgGAZgghV/oYQjV3sQmGqyCBJqRsjB29Ap4KudBAAAA5uY1L/K9ZQCYINMqkoN2HeYDLD/czwdohgQkYO97A0AHN//Qg7RbUMAEJo+WlLVfKuwkBB2glAIQj7gBeBHyZvCi1wT4NZ2JY4MJchzLx/ZzvpfejFHr4uksGMABNnADKXDiFy9g+eskQTNYmctxI7BQSl9g0hg8/NzH4IXaeXGMtqd9yw4QhCIuI4UZwPs0E/jxw/vcc6Y3/QpXeLoumH0BRYDBGZz4d7VHgOZLQPdprAuBJEiqCHE4YhEQN0DbH+D2zqf97QBwwCDaTZV3O6xMPv54n5eu9gqIoOmDF7wlriABCjABDD/4ASfAIITxhRQRG7OnJDZxLCq8gAmKqEIVgJALiB/DAA8Qg+bbTo5jVL/tIX94AX5aeikofDd61vL/6v3OdgVUoBlXSAMLWOAES7BAFweQe8o5wYkf3EAS+F/lFwJ2Q9Y9YQZ6AAYCeAM3MA7NF30PYAqmIAbW14Dk8IBtp3a9hgbc1xJWoGPxJmLHNnIj53cVoHbmd34ioAssEAUsYAlPRwDioAg3gHv09wPWMAQShEX8ZwuboAJDIAU/8AsteANEYIA5t4DR53kGwICdp3m8EHobMHQqMQQrcGAhpnf0tgT5RoVpp3ZLVwHnh35XkAEZsAYZwAJX4ABz1YK/QH/1BwZUMAMgsEqWUjwOdYYCKIBEwHwPcIfRZ4Sf53bX53Zqdwxwp2kb8QIbgAPGhmx91oHN8IFs94C8/6CFi5gMrycCaaALXugETiACZKgIRAAGeoCGaWgNEhRCI/AEdtBv9BeAYFCAMZALdygGsGgK1KcACkAOsEiEbOd2B0AAG8AR4oADoSZqIycCV/B6+UaLCtB6WpgMjKiFGdB+ljB7Kmh4Aqh7aKgHdVcC1DYCkmAN1nh1LQgGjuCKd1iEYjCED1iLBnB95uZ5bmcAACAIGjEERWACyDYAzSACIrAES1ABURAFxVgBAZCMChAAFWB+IqCFWmiC0GgJTmAAGxaO31h/egACFHQJJYCKaGh/LTiOd7iA0peAbScGtPiAt3iHnsd58EgAGlEMDrCBCcmMy5gMkvh6tSgG5P9QkArAjGvnjygYjSjYDBTAgp6Yexv5C1JAdtagkaDob1LgkQkIkreoh9aXgJxnfQawgOc2gRkhCPbIbBKQkDOZDFFQkwqpkxXAjD73iGQZjU5gglEAAS8ABr+wg6gGBkSQfC8QjkUJihT5lOT4kaYQfbJIDgq4gNdXfTgJkpt3DM6GES8AAeI3AGI5k/9IlmUpAsioAGuQDCFokIwwBZg4BVMQjQQAYIKwCBdQAJVQABBAAZnGBGPXgkZJf0gpBXaIh4MZlbCohw+YmLbIedJ3bvt2EUPgAPQ2aouYkAmQDF4YBRnwj/94kLSYAAmghQUZAGuwnQLQnVOADA4JeAf/4AAFUAAEcJ7k+VSTZnni0Im/4JRSIAiBeZiLaQqGaX2/eZNuJ33Ph5PwKIgKUQx7R5mup4UJsAbtpwtOMAWMEJ0C2QkBYJ0JUJLayQgWyghz8J3I8JYiEI97eQOVNwhocAEXgAYUAAHluQiOkHxAgHwXAHFicJgyap85SYsBYJiHeQznqKNGyGsXcBGYR2+LqJCSiIng6QQZcKEiEACdAKFnGaFrEAYS+gEWyqA0aQAFEJFzSIA+qAgnhXycOA4XIJtmV4Qzepi/SQ43iqbsWIQmCX0FYBE3YHZ8toiFUAGF8I+kiQwbGgXVYKEHuY60WAEJUAgRyowSeqAXyggf/+CZBkAABbAHi5AEjlAFLMilcwgGVUCiEAAA0xejM8qjaYqjEKij5AAKJnkMDxCnC1EMlnYAS6CP/ygC0OmFlsCnX4ikUVABMZqThVAIzWmdBZkAYRAGf8qoYbAAE1oJF7AIqtma5RkDJNqsiwAEQKCaFOAA/YmjaKqAnUCjJqmAo/qAMtAJJrl9C4EGx9YMSyCd0RkFCyoAWOAEyJCkSLoGAQCL2SmhUpoATBoAyVoN1bAAC1ANYWAAaDCXA5iXVTAO4+AISeCsexADFIsGlaB5v3mm3Wqf4GqS5NAJMhAAA/l8DgCgB4GcADAA64ekz3irloAF4GkJz5mk/jqQBf8ppcUaoTUbBh9QDR/wAcb6AQFQCYvQnuEYaKj2nv6mqZe3CJXwANWXsRorrrZomNxKDjIgA4b6gI8qjwnxAq8qAexXghlwqzDLp5gonR+grCL7gBBKrBIqsgCbrDi7tguQr1xWANI6qUCwokTQglKQfIKQBE+ro+J6phmbsThZnxBqs53wqGigEFnwcEsgAe2XthkwBQLAp25Js8ngs9cptwGAAMRarAgwunPLsz9brJ1QAE6GBoswsZVAsZUwuzGwCLd7AYJwsWJgrlNrrk06qr7rraI7kKepEJIJAJULjRt6q5tbmpYgndb5ARIKvHJbrAtQrP6arNRbDRJqAOz/JgVSMIA+SAQNCwQRW57NyrukKqNWK7dqOpDBK66Na7O8cLwJIQj3OABAuafIgAUCoLkB/JbJkADVMAdRkADf+raqm73amwA/W8BwqwAFYFiXCgaB5m+oJgU3YHkAVgCcp7Efa58RKrJN2gm1mKYiG7IDuYuRm7/7G43IMAVniwU2fMP1WsAL0ABrMKEfC6HcW6w+q73FKsRhMJCPSgDkebtJ0LeWmpeT9sFFeMIa27glqaZNiqb+KqwKALkKgXmwpwu3yqf/e8PUcMYbWsBhwAjee6MQigDF+rPWWcR0nAxyLAYFsAipGburWbu1W56ueQEbUAnW962HecLWO5A3//qxOvmAABu3+UoAXosQZgd7mNiQfPqdZ/wI1IAFjCCyf0qsTIoCAPuzQOvAPEvH1JsADzAIAji+c5iXD6ua5QkBaEAA+DmjWeytjRu/IpvCoPDI/goKx0AAUZUQZrcElWikMcunWNDJZ9zJU0Cs1fAIQiuyKHDEVAq0dFzEqBwG5BADlbqXAqgH74mNN1AF4jAIgozLhSyjC4zIJ1zCKeyrawCsCVB9lbAQybzMLhuNN/zM1BAO4QDAjBAGDfAIjyDKCIAAC9Cz3NzN3tzQCKAAXAapt1utjlCp7KkDsInLtEjFptCkoosA83zEKSyy29mZ+XwMDsDP9JYGlzzGZv9Lw9EcDtRQrx8wBWccpWFAutOLrEaMvQvg0KRLwdRKu7V7nkztmrecyyMtz74cAOV6xDfqxoUAhnOwBrSIpUygEDFgAEtQtmTczAIs0Gpwxgyq0NTACHNcrMlgoT67thINx2HQCa3MlwSYl44gCBeAok4N0gEQ1VItt9lp1T/cCQuwBgKrwF1cAF+NzAbQDDKtoTY8wzZ8xsqw2WcsABbKydZsulIaBYxKsAX703EsyuTwAGhQBX/Ll6uYfJM2CLaMy7070iiAyIR9vdlbvGtMDXNgqAowniZbEGFdAWswxmUNwAEdDsogzRbaANQgAMkwutmcABdKsKLNswObswH/8Kh6ewGSqscaBlWDIAi1/c4jjabyzMD+StIRiqH4isJdC9YPoMxGKsM0jAXfKdBnDMA9K92PMN9vi6FsbNqoDbSrfNdYKq0XEANLzdTn6ZpwZn3eSthui8gBkL0T+q8BUA0CMAc1y3b4exBz+gCgsAaZzN/M/Qjy6t9q/dnPPc3Xy8ZyHdHdDLAKoIKZCqJ9PaKAnd4jvN5UDN8A29tZ3AmFMAeP0ABHbK7wWIEGQQTHnQGYbcOPcMNsfcY4jQWPwAgNoAac7dZF7LPV0ABC3c2NveOOwJcc7KVMsJ6D4GYE0LvyTNgnXcRyC6EgHuI1qwCOOckGAQaEXAgZENBm/7zJmh3NpMnJ1KAMWkDdq0uwAmu3di3REwqpBVCiizCiAHbeGqa7BKAAnYACKHDI7e3QA3u65YoCCzAHbc22tfh8P4oQ4pALx2DoZWzGjj7Q0dzJAPwIz00NWtDWP0vp2l3Up7vdYZDbneBs0grh5/lwF62+o17qp87LTYoCpGusp73CNCDdaF6shgrlrGoQerAIuWAAnPniMBvQms3Zz+3l8jrQxS7X2YvgCI7aDmzqplAAl9rBjiCiaADY5XnLBWnq217qJ5zbCPCnVp21CCDdbJysTArlL30QuQYAx1ABh77fMM7Zj64MamDDUzAHAg3pX97d2m3X+Q7ByvrTCP8gBpVAlLj2pevZ1wWABg6wiAy/wLmt8BuOod6bAChAAwjACI+w1aLcpLSOEFXQfHEgAguK6L/+6/NODaQp3WJe7FOw6giA9A3twMlAxw1Nyg8wuycayE4GVwV/y4TKpHiO23w+B1v9r6R7rKt+8dV37gXhkbyQDJhd79G82c99+P89BQ2w+F0f6QJbrEc/9nRssHvfCWKg6ZVgadRO7ZCKc2V58fCM7QjdnR9A0Q8vwBngvYZ6o8WMEJjX8ZkbwJnt3CO/6L6u9aC92Vpw7wYr80Vs13R99t/K2i9ABJbnVH/NmgdPAAl58bl9mNz+8I9w8tUQADRAA2HA5N25nX//Xn0AENkEceIGkJZK39+ZzeWLrgyEIM08XfhaoAxTkL2nG/2XbtpFTQO5/QAXsILqDBDiBIpzNGjQhguCCjSrEKBTJ1MRHwYIkGBNhgyMwlBEEIYRozkZ1iSjGECBAgMABI1h2bJYLgNxKmQQIADLzSmPHlHjyVOZli3hsCCzlAFLT2o/H30IsxHFUwRROy6Q+vSpAQKVKhWAcOECBTRoFlFIuLAQxYcoOiEwhcIkLwAADjQDVWhNNZsC1jAqtMBhAHLHVLZsCQQmr2QZck6ZUlPAlKM9tRAiFA7ZFV2Wbib9uYVagwUbO6GQioBq6dIKCDyIC8DA65QAHEBAQ0BE/4YECKzu7qQAgAkcOBwA4JVmjVAB1dbkDiDjoRgDiwizXASz2RUnyBpDXrw5nBYt4R4N6FCkiIkBTrDs/KnlUTXdUcOYRh2VtFoCggwOEoTmQowCCiBgNgoIECmBAHR7ypSHAgOggw44OKEREwCQABkBGFljvqiaI4e1C6YbIwbiJLhNscVy2oka8MCjZoAJECmFBB8wGACZ9dqjhpEPEpTqtNAWOM0qAhYZRAdHCHIEyYMogGADB5phJAGrdOvkw5SAm8CHFbqk8AAnkkkgNxnKlIEcUwwYREQSDajgNicY02nOpAgBTwAYZYRBAw5MuJC9Fh9JoKlBhTRtgWoMpf/BKjEIcDTAGLyiYFInKSgAgChye2pRcrAaEIdGuFxBhSeeWAEHABoKI4GzyuzkNSbYzOUAEy9i7LHG2AuHGizyDOSLI0LwxE8cfXKRxzELFTLRIXfzlIC4DDhgWtkKKPAARkga7alXP/XhhFFJfWIEIVqoMSZQzLzytZUIEycGAmgVIYqL4swuMmWUmYIFHKAIxAgYjjjBBz8tscknZaiJItNkmgoDUWarQiGiAvQzSJCxICjAgQALvGKK5bZVKyUCcPBBwlGfkMSWVFKRJAtU41A3MAM2mK6KSohLZue95mAMGZ2SogaZA1b4ohQYLiFBg1MBSGMKY8F7ZOGHhbT/mtndKNYPyYF0GAQNJ2vDtBpN1RrNNxO25CDlFqBIpYRU7BCiCAKOASVdNA1otyVBYIojmQqS2cuJx9ZjTwAJJoDii6RRQaWFJ85rxqajWqRGpKashpiq3Z6CDoABueoKAtIvgJKAK3BLEAUaovINgwjBJdWWEWyRpOUSJFmhwmOOIedDmwkzzIAldk6GkcLXO0rfA3CQpAQYHG/ZDlMbcTqy78JzIlOHNbfP7LbIaa21lJqpFgIABrBkCu6lCiMlBzrgMgQVapdEkhEkQeVt3YczoHe9Tac6BlBAApIRBUY0hie7osYUJOADC3zhC4hIhQVKYAc7QI5u6jtK9rSQ/6GN/Mh7VnkIARIiCBT6J0ABggAFnOaERziBKQ5734C2JLv8xe1+0ktFC1bgPwM8QAeEuUEMYKKAndGkg5QJzxVwIEFEJO1tOpSEDx0gAUvgCDyUEQ9TNKe5EHLrATGggH6S5AgU9qeFw2kGFqbAI0R1BG0m4xKpbmeHEsANCiQYQamKkIvWrKkl4qgEIBUgAvV8JxyU2YIWkNEBSXzhEgx4xSUusb/bpaJcqNIFFrK3SPc0gFlfDA2HoNIprKyQhVy5ALQq0BgBiDJRCajAAUzQgRuGawRuK8EXUkE7FaygCMOJCxoIMw5ANiMNNwFli/QlgRWU4AkaSEEXXsEAW/+gIpPUq1Ens0eILRCigYy4mtUcxjrdiA9arjEAL3hxANBxxQAJWCZP3pOoAGDllqJaAbhCwABU5HEGdpBEMIfJTgjooSVJmFUatBMORW7mEbro1xNCcNEQaEADKmDZ2zK4uwt9RxmM1MJnIJao+XAIATRonQFO2B+wTeoCpSOOAgTQk0SxRTY4mAC4SmWqjI5gfxfMYAi+tIQrOGAILYkB8YrFK17ddAoZKFoIThACDkgoBCnAZtxapjscHMAS32FkOBtYDbSexj4iVEABTngkr3ktbA6AlgAgatIwvEpLJyBVC8pVKhVw1BZQkIQQVEAwCQwgDQAQB0uAUAkw3eT/EVPQDhYEMFknPMgTWT2BVlOggV1KAo+SeEJYvbnFcLrnPYaKClWE1IAGJFAEcCHACkmnsa5A6wB25Qk5hVQBAnRgs6Nqwf0ISto+9nGaK+gAAJYQhTQUgDoAaIYukIGMZhxgABJohmLiNAAMTMATV8VoRkF7xypaz5vtYaIyHsGInLZ2WbDVifnkMi14xoUApANTenzyCNguoAIAMBlf+/q2POaOtNMMQdN4QU8CsMSF8QJdvOA5AHheyBKwm0CXLkre+m1Td+hBhkiBsoVGUmO1V0tUAx6hhgYSAA0bAFuNN+Akr1DYCRBN2JzW8KCePgFypWJZgnsYzIE1lxeF/xDBASAwItI5YDgYlgsGNoZFS9hyfiforFZ3+VXSXlEzWugMioMSYNNUgxGwbQCMeQWAFqJBEF4Th0G+QgG6AuAKEGXgT6hxBdjxNZv4G1fLvmpRH3QAAxKoQCESIIII5yJn2tWFBEwAnOCkDxkDeBCXu5zVrXL0ki1rQSPE6skWbcELlFnxAlz84ny1RwBRaHKFHTUg0lEXACzw4BbBg4zwnkADt1NwccsFORVQCAAiKESzIT0GaDVjAJmxJQYwEBcs6uIAsMsqB3qQVR7wIKMMYAAU4GYuAHSSRZMxM3jQmuY2PyLWJc3Ardep39kshGh73iI4260LDHBB2G776v+QA7uCRmCgGWehiAEK8BILZWbTA6D4dnVxBXje0hMTmEANtIpRrhoa3eqeTFkb+d6rtTnWPDEAGnTAJK+h8CsQoHAaPkkIL+R81S8KLwc00FGXWbRLRcCBwkVwEjGESBwEMEAanGAJS1BcF05wwhUkIJcHdeCWHfB4CMQNaqESdgQTOEAnfe1vFKvYtdVQQ6z93AxrydliKGwhzeMigk8CJecoxgLAPdDxfw6WtMH0QdGdWwgFiEE6LIFJBuKEjMxAPQNWn/aDqizcbnebq5a0RQiMcaNw5Au1qvaCe8hpGpWDx8+0VoB97a0xXmSAuotMLelzHo4N/73jHOCBRjX/0OCE1xTxlSDMIh5QCKPoYgAsmLoTIg/w9G33lhyvgcclxFVyT8BGnvymv/euBvhEpc0tcpGtHVXhFcZeLlgoud51voVeGYMLQaj+tyXEgUS7xm6geMDiWZKEulkCAdCFzIgCqns6S2ABSlO+3+iAv7M+3uOBFOAAGykxsho9nXOPUWoA1QMPJ6iYQRgI/hCEmWql1igxO6G9vWskYPOA+eM48ZoArSOOuwmMCJuOPXgAXhhAqIO67CAK5SNAS7g48JI/8aq+rKqBzxurkrOTEwOnvfsM0ICt9nARh5OzEaSx2yIA+0IGoIAo9/OCoMC9AzAGDzhDDzAGY8AAWmmI/ysxBekSkT0wgDVgAc3oQaiDvGnLovVxIwkwww7gAo7zgAqkBg9ywrLau5ICDVerQjvBAoxrjdcrgPSAJxRERNKDP83QNmvrREpLg+Y4kwegABEZA0I6BgmwLjy8roubuuvajCnYNjVcQw7qtVQzM53bOVFClLYDCjsxH0eRMmEUHeKIiwy4QNGLwiu4AqjbLqnLIizIgEK4kmOIw1IUBOqyLiwYwh6sOqrDkciIOgkYR28yxH5rEcpIR9srPWpglgYYKXAKB4fjClViIUu5tePIHs6IQkuQADB5RWZyo2oIAwUwhQewRhFZBLnAIqKwwyFkgStIgwy4LhyxhCtohv9mKI4OogZEtBMm8r5cFENl2MV3VDXP4IV6pCspizK6IoAKQMbQMzOhcIJpUQ9mCgcneI3fOchSLAyYwDLIs0MWGEpLuJehiIIKMJ80MESySkenLDkUC8mc04LYcjUOdMIDsJZFCAuZcisIaEmXZBHK4JU5ODHPwIIfWwILtBMWOD/WeLKeNEVAWoLMcAKi1IWhxAjtoDoRGIBmwLvwoD0UY7dwSkcxjMpcJISRrAbYakIR4BivABvSEZ08IwBeWKR0pIY5qIZHWCShiAKMPEbPlL0AIYAYiEumoi5mbEgfLErFyK7qcqhwaCTBLEyhqE1cXMfSu6cGMMQUc73x2a//jYGWePmO1NqR9wGAEsOCZAhN2tMCLGiG2vI/1FwEpktFvGQBx6M6iKyWdEPB0GOkdAyHNJAA9jMz29PNLVADUWrMR4yLaRlH0Mm387NMT0pHLWCECjAAmssOEcDIKGDKo7gCh9sb1ByDC5iVikudKIDIKDgAB5gUAihHjkQxtDtLKBTDXETPDLynBdgFF5mW5SNAJ5BOjQEd0DkALAAnJqKGNVCA4bgJJ/hPEfCkm7CEKHC4A52OCygAA0gsCVgCIf3P2diADii7+wwnJQ0nqVy1qMRFqQS/1/o16lofq6s64fwNFF1Rp1SGbGkGZPDIcIiCJaCJDAEuhNzRlliE/xjImeB0ABzwE2+yk8K00A190sPMU6nMz4F0NTVIKgBwPgyoEAjVmAMgTgCwK5KiygRghPA4z8sJnEN1ADWtVMLIgnRbIHajDD09zExET38DSTF8j4dxsQFwgLIbgFsyAQzIN+k8v2OcDFB6hOVghNqSi9fICmOyVF4dAwq4kPAID/HMTQtVRzMrK0bKxfxMACFhhGYwAbHShVuyNgfoUfPJs3z8yAYyidPsVW91FyTlM9pjUbQTT7O80CVNTFoNDUaIgngZwkuLC1eVDWjJR6hkVAWgzm/lVSqoQHHFTKc8VnJ9UvTMzfejymr4gGqAtFQBxngy1AoDgDXwTX8Lh/856BG43NdexYEL4T4w9MiODFgoBNUl1U1CwAL4IsgC2AMAiZQLWITRCUZoAcxxPVmyoVSN5VUmwIBlEtfAhCinVMdyFU9jRcy989KBJIcYcIRxcASndQQg+AoAGZCZBdrCFCcBSAYACJ6cVdMLSEVkWCA+q4zJEFYmMttivVoLrdP3e6/3uYBxUARFGAhH8IoevbVlS9LxzNoDIMWu3dEhIIAb8dh/VSRF+tmxrQxjDdp1zM8wMIULEAe5VYQqIIivuNvzqwD2AyUuUpgKwNm/Rc0NcBocuSswBFrE5bOfBY+aZdyQ3IKlEAMIkFy5FYi6VaHzI44VbcrKCAcBEIH/wQjduGyqNNAMpgzWFvnXnzVHwyXagN3QR0gGMVjayRWHKnAEsLAUAdGtOQBazNwVLHCCthLenlQEyHo6TxJbpjTdw1XeZgpaJjLaRmIEciiAJKFc220hJxEQ+LTAsu3daEyAACLf6WAC57oRozTEnijcf00K8mtC+H3dR6gA+7XeyrXcsEADjXGUA+he1JVVakgOciAAriXgMVgE4rkRzbgJ7GFgMOSMKiQ/RXLK13XRAgjByq3c25UzNIiBPFvKxOUzvbiSEDFhlqiEB1Amm/SOBVpf1T1d8iMpgB1YZc0AB8DhKtBh2tAPEuRfm/NZPsOCagAM4jNiZNJB7IiM/wVmIHHlCeRV3aBNXnXcUN8lACzO4tu1mHtMFY/t3bsSgAUYYUEi4CrIhQeogItgYqRg38JN3Y4UVsLcUGqwY8m1XoKIATkrCDTYGOci3C26qznIJ78l5COSSKNgJp7YjEV24cTlov812r3DAkq+4EteBEGosw0YznQj3DaeAwEeZPJVBJhYAlNOHqRYY7Ft5LKFYKg0yXZTiSyO5rq15SRRiB8mXD/WzGTghSIm4EHIBVQsXsKZgznYjPQ9ZvUt3N49W6gkV3DSAr2R2wsGghigZjT6SkcRQJ8NzBB+0TQNXUewjjSQyKkyUwGYg8uyLJ3gPp0IBxA1XQXuTDWAYiQtmGgXEQCVkOdxGAcg2INFAIKn7WEBocPLYkp7EgCR0FFeDQgAIfkECQgATQAsHAASAHAAsAAACP8AmwgcSLCgwYMIEx4MRGcWHTr3It5TSLGixYsYM1JsKEvWLIcPIUpkFZGVxpMoU6KkI2tMjhyyHs5CAnJWR490AgVSybOnz4YuX3Yc49IjkpdEXY5R4uKLz6dQKz5siWTM0B1Ys9aogTUHVh48usCISrZsk6k5kh7dUSOI2yBcuLit0aPHjh48jigpZbYvz3tAX2bdAdeD3LhBJkygWxdv3rF+I2MMBLih1xpcPGjWzEUxZ8WNFS/mwECyaYr3GAIlnHnz5gmtDS8W3XlxCguncxfUObOq18Kajbnu0GFzXM+yJ4Rwqls3K4aykCCR9RKzZuKbiRM3hsH45wkqnjX/181wptVZRAm73mzMRHvuwl9P8MRBBe7xpo20fOn1snXXxgQIHwYEylcDB/WJh59kSuwgGFtvxRWXB8Vd10GA3cm3WA8cLLdgZAzwoFVbnbk1oXbFbRefZooxVtcJknzoVwhYtWWiB4qViCOKxU2A43GenBCCCiqscAIHI9ggo1l22ViYaFBOwIEn9J1g5ZUcnKDCCKmUYIcdKpyQ5JJlcVBDjtcdR1eWIWigwhMjSJJKKhaUIEkLkpTAzJ7MfIFICE8oSSZUpWjQg2cVdnagkAx0YQuXXzwTATOTRvDMMzaAoCmlX4wQ3qBQ2eDCDrBhx1kPIaQwAiq2oAIFnZfu/znJrJrWCgKlqahgB6hPTQKDetoZVsMJGrjgKirIQmFBBJPuGYittkbQ6Qya8NpTIL9aZ0xxXHCggS2ttprsF18wywwIk5wL7a0RSLKrtT0ZccR/FEqZAgMu5AuuLYhYQK65fKZrK6XuwnvtvEEYNwGxDNjigsMPI0JuueZOsi67X7xrcEqBHKHeZsNuOQK4D0OhrL/lqnvxns/MsLFKX7jAA3CLEfvEviTYAgUqdPorqcrQMqvgyyh90WBiOI4WQsMkOGoLDFAgUkIJ/k5a657oUmop0SlBwcCZUdY38r46v2rBnLCeS+mldZaQytBcZ4RKCFAS1yG+JDTdBQN8M//gpgYacGmBpF+kMoKnb7oct0YMnAC2aFria8veKaTAQ+UahLBCCEvzTO7OqMT55eIn0R2lll00zUDlfJOAir+GA+6CxF9Y4DMzLZOukQocnK4CuCQ02kXqr5fb6fBdQMFs4V2WMIM1umdkQQqHikYauHsjH/wIeLYwctO2GH+2JHlCH/1FEcDAQF1nntAw8A8/qgGc7qaSNwMkVM1pCc+Yfz5FpaCDEYzgghQg6AROm1zZ5jS4S5UAFcNjAAzKBS1B/U8hpRjgLIzAgBBwIAUkGBu4eEY1n32hBJPbRMOWpa5zwe2CBwlgQ2bhgtV1wQX3G54t5kS1iaFwdfjzGbT/YKgQ1XzECDDInguQp8Oo1elzJNBA6xARq035j4gGmYQRBDhAGNhCeEzEn87aZoERAK5RJKBis3BnQSwaJINchMESwchEF8AABnWCQhTvVTkSdOkLfGqjGwtCLiTCQHURZKKjTgbB1aUgBDxoWNowNUiE9OmOcmyUJrWXs5NBwRbBI16/UvYMEFQyISCwwB2zp0jktQqPiHBi1QBZKWYI8pQEYYYqEclK7b0uFbLU360CicuE2OAZqEBko5Y4vJwhi1Wv0x/LrFbMhDxjBMHjWyJdCS6/ifGXtqvTC6tJkGdIQnX32pvwRugCDaRAik0MZ6TImRALZPOMfWuUzliV/zfX4fFfkTIlPQ9SguBV7p19Q94zQekq2/0rAoobqEG+MLkjsA6h62wV6PpVNUsJVKIFAcEIGGDRy92LpCm4oUYR0bN/7ckkIC0IKyB4BIse9KT4KlkPAfkMO8yAClLwhlCFGtOZDs+mlbvc5Y6gUrN9AQR2EII19DDUoepBopmiaReQelCTonGMX2iBEHRQhrKWYQgvuMFV6ZkpX0XQb+60HA8gadJ7uU4SrciCKjawAQpQQBCDUIQzBmoDVpQCEVt1ZFLnGgIhQTJVDDhcK/gqiL1uALAvqBY57VCCQHzBayQtqVx5gCAELY0EUCDfZC97WcDqgAqaLeYMWqGCQP9Y4It+6ypYOAfJe6GiBOSaQQuwsQE0COK4gyiDFGJ7SjtkwQcTmNoT+AY4y8mVtxpwHRSmNrUW8LW4xh2EOKSw1lMKIQuNIM4KStCKMy52sW1qmLK4613wXja5L9hAAVRRSUlgowMmwAAAcGCHFqhAinF9J28x5zrbOa8VxEVDa1UxiCHgAAMmwAEFsiAIGArhvyYAgIgdIAQhrADB79TAJgDnThYLzqerlbAg7juEAohYxBmmgCqyIATSPaMFnuiAgCVwAACYoAxUEMKBWcxkjDKAZ6nwaRa+W9wNULjGIn7AMQ5QZAA4AAIbGATXWrCCCQQYABKQQDNErAoqUKH/BU9YMotZhz8od8m5fPUrGoyrgxoT4AEPMIABjnGMG2MYB9gog7WEewIAnznNai4yBaighyG0Is4qlmI+UcvS5k25r+AFLBNsDIBAE/oYD7hxl3GwAUUvSbgruBAGinwANQ9AzUQuwAv0IAUhwJkBRDowNvGH2nCWYAWg3jMaKMwEBxBAxIKOBKq1fOpVU0AHC7KBkoNsDC6n+QDNWEKaBzCAAxw5qG8ewXTn18+8PdPBKyhCcSmwZ1Wootl/DrSgp31qQgdaxAUQhKtPY4MZZOEEZgYAl2tN5GY0QwLkZkGRBxHUH7ygBZeO7OFCqDOOQmG48/YrBaxchmcDQND7/z7GoE+98hsPuAimKfhwJwBgETdj4Qt/eMTLfYFdO+MbTICzFF2XrJOVUQM+uCwEIFCAAkhYFc9G+cpV3m+Uo7rUAMAADlbgF+FiI8ghxjmXHU52EVwhDSy4NQHKAIYfOAMMQnjC0HkmiRHYzouBS3QVKjuIQTCBCYu4cSQikfJTa9kAgJ52qkWMAzGTpQRkpvmZwX3zsRM+Eg5fwtlZ8IYBAGADPucEGIYw0mLbrmdAlPciFtH3MrzgBRc4udQLr3JBA/r2txfxBsgihFY0WsgKx/ngB18BchigGSLQPBvSgPYBQIAJYPAGJzhBhSG0oAUnq50FULE6DWSBCYpYRP/TISAICJSa0FYvPOJxz34RQwAqs0U48HPeDGkbYPiDvz/yr/AGS6Th1hAgDkTwDdP3A1JgB5JgOw70SX7TAtYgBVKwV4JAAeaXeOg3deRgfLa3fuyXagSABj1hDSYGdiJGeWRXf8cgbcegAOSQghVQAVfABjLIAhIAAWWgCG03fZzwDTMAXJdSdyH0BHYwVWBQBYrwAoqQBLlQaocHaMZHdevHgR0IAASweyrRAlkAYgI2dkvQDBXgcIN3DC24gtJGDgngB28gg2xwBQdAAeKgCDfwDXqgg99ABTNwKYczAq0gCQ/4A9+gCESgCEmYb06obxo4e1LIfgQAAS+AEr3/hw00t4UO94JdeIIquIIKgHIK4AdOwAZvkIZtCH5EAAbf8AM6+APWYA12kIeSMAPk5YeKYITnEAO4ZwpjqHL2N2goB2iDdnuCBgAFgG0ZMQRZGIlDFm4vGAkv+IX1N3gZ2AksKIadcIZOYAlOEAUiUACudwNgkIOnKAXWdziuqAc/AIuCWAW0qGUPkIEsZwBj2IKJiH6ERoUUkBFAkF5hN24SsAQvmAAJsIwVoAACuYKdEADGRw62qAAVwInXKAIAMAhp1Y2mqIOc4IcvMITkRY4/oAfd2I2Bp2W2mIG6aHsZaAoPYAoGYIu8yHIA0GEX8QKNcGa3BmkSIAIi0I8K//CPAcmCAhmQUieQfuAHGZABUXAFzYAGOAgGekCAFOmHHXkD3NiRYEAEUHkBuaBlCJmBLYiQptCVXemOiGcK/aaBLXkRelAGOCBiEFeTy+iPC+kHbhkAnUAOc0kOA1mS5BAA1BgFUcAGUeAATMCN5ViA3zCVgAgGN/ACVQAEaHABVUAEVHkDMXCVIBmSIlmSXmmLU1d1APB+FnEDaPBs4GaTy6iX/ugH/ZgAAqmVClAIBqmVeZkAUeAEjJABjBAFLfkCbfcDYKAIQHABMXABiwAERuibMeAADuB6kZmOxxCSmqmBgNaVWYlqYriCKWgAwHgRRBADz9aFFSAC9acAAf9QAdkQlHDpj6q5mjlZfLCpl37ACLdJlNl4g4HoCEmwB003fotwDo7gCOJQBeKgm6OoCLQohnipgRrYlSepoNSWlyJpAAVwEWVABgonAVdwk+KplwHgB3yJmuiZAHSZl3DJgiGZkwlQCB9Qm1HACJEAAJWQBI4Ah4gJlTRKikvZm3F4A1LwAum4lVy5oJkpnbdolwrQCWKYnRYBBBQabqRZAR/KoXwZBUGZDQbZlQXJjgYqkAHwAVxanuYJjBegCv9ZnEf4AoFYBfZ5AYqgB2zKo+eHmQoapJlpoHlpkPMYoRaxCEuojCKAjam5kBkgDNcYlB+gAHJakgWZAAGwqNP/eIaOWgHYSYUEUAmVQADIWQn56QCVAJgZyaNOCKcmaZlB6o52uahaaQAO8JkxYHNXwAKoqZDomQ1zIKhOMJTZYKhy2gnQ6I+LagqLip6F4I8AgAbncA7iMKbgJ4iAqAj9CVQQ6KbReahaGaQHmZMBwILG5wCNSBHouISah3Y36aQnmgFOIAzwIKh8mQDUypUFuahy6a6mea0AUAbc+A1yKIdseqM3IA6u52a9OZnRypUoWZ1imJnsKJ5FKpKpWhGOsKRmxwJpcAV+kJNBSa7mCg/XKKUsSKrsqqF0majm4I8f4I8KUAkypgpAkARJAASCsAgXcAEFQACL+FcvMAhk/xCt1CqQooqX4smruoqqebqnN9mh53mGggoPSOsEUxqQoAqvcgmNpsmrCWAOCiBiMjupMbCpTedsyLl0G8AEUBewXpmBq1mXzlmq7goJnQC0FUFqDzebcIua2ZANAnCxGCulQ8m0mKmrptCuvyq16GkAF+CfVWCEkAmHL8AEjlAGfbcBS/dnhMaVsAmbdcmOWqmovGp8BGARFHoAmteXGau0dCsApIuu2eCPrnmtHwuv5hAArfuh6Nm6D7AIEUmK9lqYYKC4fTdjEEABABC5Vhqiffuxk/uMrRmUwVq1BCCMCQF1aHYFs0mrUTCUc0C6pTsHc3C6J6qondC3IGsOrf/rrlMbsuaAAKbqABeABqu3enuwBzArs1ZbAH5FbV7pt7rKt8Frl+1aCIXgB6ebiVVIEUCwhBKQBpaAsXcrpU4wBcJgvQLAwFGQAHMrkN3bCeA7vq2bweC7weY7l1R4qZUQAyKsqZvqAAUAAS9bagJrpbr6tB97v7qqAJCQDYUwlKqJnS6ZEIFXayxgCT5cjbUaBQ0sANQgAI9AuhorwYqKkAWJABxsvnT5q+E7lwYAAVVgplDZjTcAoPxaVnuFBp9avzDcvc+olXPZCZCAogKQAT4JAPWoEIEXCTZZjT48xFNAutRwxNYrDGycAB/gmnzrxBvcuh1svouKAIoaAIL/O4pS8JREIA59t7sTGHvrKLD3S5e2WJBzmckFyb9zQA3/W2iemRCrGgn8xwYHfMDwYL3U0MqtTMTwkAH/OAcNIJfeiwCCXL6G7LSMGgCLCAGNCZxZa3LPRgDySwFOCMPver99a6r3KwMBUAh0+whUurELq8MAEAlp4Ik+DA+WIABIm8eu7Mp1i5of0ADm0L0ocMiCjMvlG7LcK74JIKkmTKmUipz52buxx7FjbKX5e79pvABEPAdLjGoEwAQKQYvNUI39182qDA/UoAxqMM7UgLF+3AALkMi6jAAo4M65rKG4jADGdwFMkFbcGItdXFaDIAhogMyBVqWMOsbr3Muu/8ulDbDG3EsOqca8BqEIsad53tzN3oy0RBzRy6AGypDUAiC6R3y67BzSUA2+GuquxocGr5fFzDoI9qYKLN3SvkuquuqPm2ylKNDCAZDG5rAAj9DUzoydi5AQBAoAS/AG5TrUSHvXRd3KSb0MD4y9j0ANcwCX5gvVuWwOM/2uqksAL9vSBeBsLgdwFBB7zQmviby6Me265sClWvAIGXDWfIudVngQjkCLS0CudIzXq7zKrpzUykANwsClj6AGUwCXclm+C/ABt70AG13W7fqzH9zYk3qpwC2/FVin8KrMjAoJkODE59wAj/DHauuVBvDGB6Gkx1ABgVq6qQ3OFM3aSf8N2HPwCBI9BwsQ0pnNpXPApeXb0U8rl+QwrMmKpv1ZBvw6CF7tu2LIy/erl66p3OZrDg2wC0cM3fg73QlxAWRwDNJ8xw5MxEWd196tBgIwB2qA1FPwAZ2AABZ83rL6AeCr4TKg4XXZkjdABS8AyVxdZWiwdBR4cmbY3racl9KMnme9AA3wytmwAO4tktRdEKowmZGQDRlwx6+c10Vc1N7d2lPwyUitDHMQACjQ0eB72w2A260b5Vhel5XwsjFrciencAPWuzGrcNI2je6tlx+QvTSc1h/g4FW+qDJQkFXb4wShpACgANlwsQ8+zkge0aydx6Tb5I9g2J3Q0Qtw6Ln/vdtRbqoPcLWWipzOVszHTAGNgAMQgAMOQAbPdgxiIJ79y78nugC03MpVbg5qK+dlWd2lBoMPTdSvvNrU0ORJrQaPMAV+zg3K8AFl7cS6zcGK3tFdSQBAAMmtVwaOsFcU6FdhlgXMnldZ2AgxQKFiWAGfPrrW6+GQEOfQiMMIscMF7ARErdpGPtF+rgy4ruTlzg0N4M6HPsgcHOW6WtYKsHaKUAZcneIX8F30tgE6gHF4Qj4YlwXxlpaRkJM1nAEPjtvKLQZU3JkIUcoWKgzCMAWrbOQUXe7fneTcoAYejgCI3uvvjuUoELKo6tjBV2QFwFfyJgg60AouzyVT8yV3/9IKRTBrgCoAasDX6V3e2S4DIjnKBNGwD7AEPWy9FO/gFh/rSU0K2tDa3k0K5v4I5c3m7f7EUJ3Rqmm1V0uFYLYB8sZX2LACb3I47sJZX9IKHfC85roMro292WC+kPC0BrC5BsEElTD0BkzU5krETt/K5M7aTJ/kgJ/r5Z3bh17Y5n3bhUAAI7e7jdm7IkcBRYADniD2b/IE9CMnqSAJnvC8q9zawpDeHp7Oamt8AHAQE4pmTgDurt7df630SU0IXgD1gs/0HJ/WiN7O7wy+DdD7DdCZkM90jv5lkk/5l49xL88l5OMDGGChn/8IwjC3hQC+p762jG8QA/wAFbD6RP/916/f2n/v3dqgDYQw60tPCtzQ9FWO27pt3h+OAB9A6xUuDMh3ADbZs2Z3AMQPAdgAEK1aDCQ4QhKUVJJOYJDgRIAAatQEzPnwodCCAJA6kSMHYFETkCEF5TrW0IkweA+nRIyoTI0ymMqoKeNGSlvMmTRhclPzqIE5BEFRBCVqbkGDncoEAABAwGmBAg6cAigAgUIRbE+eDJRkx06qVFBQpVLBME1Kn3PmCMiWrVAAuOQMAEATMuQFAJGuvHHixNIUAY9YtozpUhkhbV64FVZGarFjZQ0WIBiKgEZloEdfwnRSQJCgDRs+o6EQ1SoFCNharSYoqYUkVGOfmJBg6WH/gw8PP7iF1Hvj3Lp2m8R4EClDXwHwIj58JFjN8800SXnxApkmt5rSIwOlQcPyZQRGGzQ4o4YUqaUFcER1INUpgQIUNqQWSHCgwYSpnhgbYCml2gbmyGYyFGjQKICOggtJEeKaucISCIWBSKKHGFuMG8SoI0Wnxgo7T5k5JiPKsvDEa8C8xQRI4wAA5lJAhCuaoUq+Rnx4YgT7WjBIkrBUMKE/eFJqILA53pIBARk2OgaADYRzhIziHoQwyOYG4/A8xxC7SacPd3KMGwE+ELEoERdY4Aya1GgGPgoouCCqqeIrAgcOVNiKq9d4lESSVjDoT6IAH2KrkEIQyGgjuoQD/yKXB5a4oi8ngoRIDYgKw06bxLzAlBAvr+QGU26okcxMo8wsEymeAJBPEFUEuQACOOPboJE6n6iPKx7tECILDA7IYI7xqHlEAGEyyKaiBcwxB5JIIBBuEUaXECGK45gbjDAtMd00ppqwk+7T6h75gEQEkk2WqAV0kqCp9qZiasb5PFGBoNVaGQGhhLDptQJTh1QpMInM/EAEAASx64JcDnC0ryhOYqk5Abw8DztCCPE2qZ1q0pabBijzLjOggELgpWUsWfddAA5oJoMKHGgTB080GMEgHW9ECJURFgIgDkiCWuADcwrJRq1hCT1uAAfsWiTlKxp2olpBIYr44uuwW/+MW50upU5TNSYTUdlkRT5xmQOqarO09phywCocJjjB5oT23HMgHzDIqxMZ4FqA0EIqGu+DAD4QxmQcQlp6iTTesESYwZODZ9icrLMasQu/vRpDTDWNrOOPSUVhqAW0IPu0NmGViioIIDChgwk4COHG/MBqoRVP9s0IrkJKhSToDyTbzZI3Dih8uLyuYIPaYo+zrUJvL9cGQ5m4vRjDrTUV9WtlzfmchgXU4GYKlJlqphkRDnAZBwzS96D1EDSwZWbXnpgAAAkqUKC3jHTv+aiHhNmLBQCAhDiOotax5pABlFQKa1bb1OW6dSEMEWJrNxEAUIaCAgt+zhxqoMYbAND/rkoQAAAVyEAzXOaA/lgiDRgwhts08AQSzEwFHQBAMypwu050IjxhO0oDhiUMJ1yBYE1QBJQU4Ic5MCIDS1wLNaLzJYtpLYpW2xB2SKGl6pFCXGP6XCc+1z1lXEFWFEDDBi7gAHZRwAECWAaGuPGGFp6gfTLswAHqZw644A1dPxtP/5wggkgkTRxQ0kvDqMUIwDgxJ596HsW2drWswcQxmZqgGkKkvQJ9rjIvycAHoWK2AjxFjQ4B1zIw4IEenEADqzwBDW2YO7j0DAG9MUr/BJSNChCgLkUsDgkRiJKZuDGCn2IgdZ6XlOzQJHPVq05kFqBDy2gSjAKIUYvmorIr/3xwlNSQoBcIMYAWckCVKjiBMeyYgGR1QgEBUBZc4EKktyiAAIMAyZMeEAc/ZAAwE5pcFK9znm5qo4qNgWC2mKkYanARBV7UjAgI4ICqnE4EAIyPA5zAza1ZAgOsk+MJJsAQCSRATG9hp6E60bMEPKQQCgDABUICBCjFIRvCeIRMBmO1nWDKJpk65k6mmC1KGhNEIusiChZQUwWsDQ2jCWVT4kOAlVByGQPY6AQ8MQH+DEACfkiWO+FiqAAgoBAqBUAM7AJTACwhAxNazqQspS1NaeqYk7Ma5oL6SDWMizKahIQP58Cih0IFjU6lAAGigFHqEAIeVGVhryDEAq4Gjf+kePSqH3BZAHqC5AZLS2tKWJIcAaykpjFZhkQc0kaLLYMQqKUYIw8qV46JaKEoCJxa5hI+CXjQZQTwgwDAhankAC8NZ3mIE5BFqGWxExIygEQAEuAHJtlFHHgpTqQekhJBCSYmApAADnzw3Tq+ISLLYG3FMrdMZnLjEXMg6lDM8QEFxOcClWiXCB9a2ArMgRrE5AY8/AOPNrZRAJF4QCf4Vqhl9YwGeYuvk2JAhrReQQIsmNJtxjOeKUjAByUIRIe/MMMDpIG8bqScNsyLXqH+JIOgS+oFUPNJqbSnsAowB7BCRY3FSuAKAlitADLwUAIYIAGFgETuEswRMQBAFU7/ugCE35Xb5QHrDGcYjx8I0IIOexgKT/ABbdhIsWwhBosT1CIeZ+veAHzQPUyRwLp2G4nANYC8EZERAK6AHR/DxwEGUMCQi0yoJHGEAMJpwiLeJEL6vYENbFhrYJqDGxHggMNaRgSOVoCDA7CxYhJ83qZRzLWOadK9nfAke1I2AG0S4Bjs7B6YluEEFvlhzk5oCgEOMGTL/FkB5DjGA/ZA6BhUgs0sgEcaJLAEYYhqPI/oSRRMcIIRwMAFXXCBLd7XgizgYAkArpimzGtXZmrjEebwIgbDE4DAps50aVR1AMx0Bi2wJAq+Im9y1qWyBBjFO9lIQACOYYBBE5oMuVgC/5Dg0eYr+IEcCvgANUoL6w6EIAU84EEKGHDxmbUAG15eBqg2Dea7cuMD5f4cAuT5UPec7r4EWGep4u1bajxqGaB9wwAGIAJCzVJo/T5GJQgNEggDSQADsOMHCVABCQkg0isowRcQ0YUuvC+GI3hfKzD9BtWKmVsZqp5Ax63J8BigPZUIpQjHl+obKgsBcn5EqDw7B5RY4mnGMvKfj0GAj/w8F5FIw/KaYgIHmOAAJ4FHMygwAxvcIxCl+MIXSlACSYyABDh7gr4k4Fti0uTEE8wUN9irQ6PI02xtaioBcIDfsIZVzg6XFDzako2TFKstRFbAAwhg1p8D/RgVsI0wmP9yAJu/ISVpwIEdssz4L8zg8ZEnQQxbsALawKO1FNtp1zn9iMmAntRqhgoE2gNR/N6P1btoY+udICBiHdBYta+EKpacewEWZ61OaEYaBpA4S0hEAhsoQQScjggLKIEZGEBdybjZwTQRgyBwmyC50oZlCJGgMIcHoK/TQRk2AYAE8LOekbMbSw5hUD8E4rcHIIMmgT/hgJJsWIY3oLCT8A8ck4AJWAEVUAEGsAWwkBuvcA2vaIFGAADbWAaaaCNtOS+eep6E8hkDiI+z8T77ig8AEAE/KJSLaADz6rEg+UB+AzjcM0FFIQMFsAQWuALG8S/lODgTcJsQkDgGyLiuUD7/r/CKLPgRAEMtLeE6E1umm/iJcqkAT1rCwDOBqgCAKCQU1VODTFkteLiCCpgLB3ApLsw94pCwNECOIPEvY+sADshEcdKA17CDAVS+ErADSXiCOppDkBtCUOGGRxqVvfEDETiZ35MADHAZQTSWfruIR+gmxRAGiCqAR+RCaHGQR0mgK1SRjcrEE0iBebEDAZyBN9wT+QGANPgyi8kQbakYrdEUcemdBUgAEXjFNmszwrKzJfKDzPCtxHDADEiaX3xEkkAceACMIIEQS7gCDEDDFFilJ+gKr3i8r4g8DvATbqvG81JASgITMVmAOZgCFoiCK2ARpgBECrCzp8kGkSmE/6xzwDRwlnbkQihZGJSoRDAEAO8KAR6QuHxkAChgxlD8ilRABQ4AgAGQPtc6RBLLRnEDlpoShihQjqWQyVmcSDEUBoskigALlc7oSC6MAQA4hkepxHlMA5L0hBPoKDmSGWZkxq5IhVb4qAEQgOchQhOzmC8xMWNSg2ULI/pJiabQrcK6gv+wIAToHWEpEgAoA6WEvxiIluOASmFgAwCoqh7QxBC4l5b0ilQYAeibyY47sQaqq/PgKfU6EWWoMx1zCg/CAQgYIQm5pMwYj2ThwxLMS0JbBEKqAKSDSkuwuQPAAC6ogU0kgZVsyVSwAAbwSh5DRdjCjpkwKG9SNmoAAP8TSBkJcIoV0kwCWIJIgQdhyJ7wCIrmOgAFIU3h2AMjqoCZui7gUZwB6ABPECeLGwFUcEk7aIFWwgBLUC1UfMy6EijJ/EABYBHgowoCuAITOD0CaAhiyYAFkCWi0IgkpE5IJI7dWyv/Ah4IoSq3qcqrHIEbnCEMSAOHC7NqrCthsolHCq0oEJ9IgI+UgQ8IIAAH8cnJCJnvQAFyIACDEdCfW4S9FAPHsQQ2WJzVFMxUkhkoGAEI/UrXkqvUstAI2ql0FACW+j7wEyGICtH6ExKMmKWg6I5OMAUA4EgWbVEyOIZsYM6n8QsVAqcJ6AE17IIQ8Epus75Gmpzn+ZKafIT/KV0EN3VTNWqPqrA1CcCuEpWly1ioKa1S+IMpcniUDGCE5QwSLxUnDvCEDvCT3OS8IfypTbMYuNIGNaALR3CEcwACIECDAqCvObWz5PCJc7kgTSIHn+PTnxOHPcgFcoC9DJC7H+wgFvKA9JnJRaWkdCQxRw3L8wpONKhUR8BUQ+u+EPVUNhIXoICE7ugOFDAFFTVVQkNVVb2C4xicpJOI/1KO/RozzqvQfoog89qaZaCLQRiEMvjVTI2KinrChwkR7/gOGUBRqnDWLnyABIC9FRwfpHuIjtOUCEKxsRQmbiVIg3oeA0CDQRAHhP3VRYCVdL08h8O+vUpW8Eiz95PX/0Ijg05oNHigilC6PDbaFE6z1VSknCj6V8zZPMVQAAoYBEcQh0oFAtCAldIYIQALlVArEInVUyqV171EOvJahnWxm7MYMTdaz2usQ2zEHGGiGJCNhJVtWUcog0FQhfmwilDKNG5YBlD1GXfVWYu92AfIUtXCjtJKifKqQqD614/7OLryVlCRznOI2pZl2UF4k9KwtQyYs/EolaCQgQUzBQPYWVOFFixVjjZaWrb1Vre9SVwF0kfdGKeNW0v1VUd4lVdBo94ir7QwUb9dqGPwRYtlSgWIAglxOPLiVooZ25qYIjfKmmpcW0/rtptQgAs4B9ud3Eq1XDhRgNKty3zrGf8ZCF5By7vBhbAKsC7TBVLlzdoRO9yfPdzE/bZsUQbatV3JddnKjQG0wVs2AppCSIBZmgzhTdHR5FPTfAAF2LEJ8a2jXNoAK63DNd3nVVxHjV1uMIAYuN1KxV4XcxP6ekKVaq4RQZJASxRnJVwFyM7l2K/mzVoHJtuflZqbgt6kbS1ItRgDqF3bRdiEtdz5kgoSEgbl4tpZWi5SowCeJYl6FRSWcF7mfd7DzdrBgAjBcKK6al9vJYTgvIAkuN2EdQTUcJNgQyMFWCKL8E/olIGOAF1ThZJVVQvGgYjmfd/5bSPTvZaIeI7rqFDV3bTg3IMe9mGENTQ0uIAPbspjIZT/3igKEyYHBxiC4n2AP0WglMBWKnY4sr1hh+MglpCJzVDetVUvvLNe/XUEFyWNIRYhac0AIkPWdtWIjSAAJojjOUYJYMJj+J2Jn4UJGP4sluAg6YlhsjUxAXCAHrZUMSbjV4kBViYA42BkZPVbGsgIjSCHB3AEU93LByChQdVXLF6OJZLiOZu5h5CIa1EGUQ4wbPSDAojbhN1gcShjN7kAVg62J3SCbFiu4N3m4DWFB1gEMODTvXTKYZSUYmajazmAhwJgK47gBeZkosXGKVqGCoCAc+DgKqDcPXAxM2bl/z0AaU0AR74Mbe4EX7uBKkUrp4SUMWSr8SqtNHCZDRDK+DmcuYepEjXQ2vGaPt6kizJA2CpQBEXwVTNGg0VAA1ihLxE6ABHot95I1hwyBVMogBeo0oFD33waQ7OVX4eTCOLbgBUQBByoDWx16BYurRZm2tUKTkH46CqoAnGA6ty9gDc1YwoUoUhAzYxIksv4W0m2aQBA35kKSZ9kq3N+gzPEBmwYarNF6oeuEpsiWqWduXni4KiGapc140UAVmomu6lQmBs6URqI0gdYUQG96SOCPSCSkGGJGgqBtTOcANpgAanxCQHwIR8alubgIPISnZ5+BD+AgDJgAiZQBCZ4atQ2NEHYX1Uo4xiICqYwAHfKoZi2vcxqx4AAACH5BAkIAFYALBYACgBzALgAAAj/AK0IHEiwoMGDCBMqNAiuVi1wCyNKnEixosWETZoEEsWxlBFRgTKCy3ixpMmTJTNuNPIJyRgkMD9yDBSolKiMTVih3MnzJLiNoli2zJGDT44xLV2yHJMjppFSgXT2nEoVoQ2gn5Lm2FGjxg4+Xr/y2SGWh9kj15pUXVtVI0eXTMeADcKFC127d4PU6MGBR18GEdgK3tkk6FCiW2tw8cB4sQe6jfX25cthhI3BmC1q/EQUCeK5i40ZY8z4bt0JHDj0WM3hWebXEd16RtxyB2QPGEYznsB7wu6uE7r2gAK7+MGfb4kazaGY8WjRzzt04O1hNJcOeHvYMs5d4EiOQ7nW/wjiPHd10aSnO9f9WC+DQN2NF146ZgxX8ufze5jOuwN03MZgp5d2l8WXGXKicIaYbY5VR9puHZz3n2jT7RWCLwa+hlVRX3VVA2no/TddhNKhtx8XqIVggVQZDhaIgrZ50FtoDq633wTSSZeejDVUxmKLbLFiy1gfppfjfiYiuV+OR0qHGgepQASkYDaEMJ5jujGJnXQontZbDRN4EqaYHJygwjVTDvbMfc45x2RvwfVY5glmavBEC1C0ooIKT6RSAghpsmWDBs2tl6WTYaa2ggoajGALFKlYUEoEzDxj6TMgMMPMj4Hy9AwHYEYIXYBvTrDCCo1CasE110QQwSQgxP8qq6ycdorSDCeMJyGpJE7nSQgpMOAnq9f4QqmsNtgwKwgF2soTCFaGxuubPYagwqMlXFNCtscuu2ytzl4UAQM9cEGhCVpOxwGqDDyaip8l+PIMM95+G+5Oz7hQ7qjT8saBtQx04W62z3Rbb6zg3kuRBTDsEBq6AS7pL8AC2xIpq75oerDGCp/EcLnnpduBJyeEoAED7Vq8asEF03twsx1bVIoSzSWJqKIanEyCwBdfw7LLy9Ibc0mlHKHYf+vx5sm6OQfcBRSr+iK11JoCbWmlQ18EAgNgemACe4zx968KTpOgsgXvRpr2vMzMIAkULWRt0SSE4uhfmwGGecLJDIz/QILZUEAxAqM5h9B3CTPMUEILrbTimtwT+QLqYne3OTIHKZzcxeYodz5C4IL7DUWxJUiCOMyQJ8TKNaDazZ6TNZSM8s5dzA61BZQ+I0kqtsBgrLaSzJBw6gSxkkrr143Wq95kd/G37e9aIIkkLUhyDdqtlt5KCcMTP1AqYvZ3Wl2+/svA33+DnsoId1ZfwjMWQG3sM4h3770VUIRPcmrAKY35+WZTGasssC1LZcsCvYPBNTRmP+894wSeCNbmjnCEEHDAE0sz3OZs8ahVFUte9HrGDOCHQAUeq4HeGwEDYMAAJcDABTDoQgpScwKUdcEFHOydBSxgrIxVylJo06Gx/5ghpfspxCMuNMIYXOACBqQgWE7b3AZtQcBiUcpVEYgfCWCgwIyh0Hs28AUMjGAEJUjxjGisGAyihsUI+AIKf+Niq5hhxIiwIgJkfOEG0ZfGDUJhja0qWBZFBwWL+ayOC2EFCDzCRVsIjHZOU8IRpIhDIbrqjU6zIRQeh0jVibGRfewjE3tnxSwW0pEwvAagOqm6CHARhn/jXBTRaAsY8tBVzIjAB6eGKVYqBASp4CIonWjDNDJRjsa6pNSw2EtfJsQXN2SiC2r3xIBRkIKbO2YXp4YxZq7SmQcJhA2LyQC+GdOWA0TbDnf5DNSBkyDP6FwmOzdBJZjxho9iFRz/9v+owEXqnQqJgC2iKM/OTbILSsjhqmCQQx2uDKAKeUYsa1dQBhx0mi6Qny+I9cFjQTQhNtgnRXPWtCiOMhUb3WgpKfVR1aUCkiiDIsqwiU9IYWxqEWhmSw1ivInG9IkyjWI+rVg1Zrhzp1awwUt3Js8nAqugm9Ooq5CF1IKwwgbXoN0RnAZUYAG1cyRQFVG/WVUrKBIEFiCBNSnqRKA6tZoocxcBn/FFVipLUzCAaUFJGoK+AksDMoUChsoqEGWxogS802s5nQhYBvg1NSZrVyo4WVZWvEAIWIWjDSc5TpRp4AhO7asGYDBZZhFWIDNYwQno9wQVVjRgr5XsNRJngxn/MEEKUjiEPA5xCIiyIrU+6EALZvCE2MIWtlHl4UYVZwMp6OAFueWtHvSgW2eyQhIrkI4JfDADIZCtorU7Y1hXpUsCSgIEL3AEE8TBBCa84AVgoIIUWMmKQwwhuxjAAABwMIT7Go6em6OdH0e3Q/PaYAiDGAQaNkCBBg9iA/SgB3vvBw5WjEIIwc3vAQ5gAnFQwRWMGqfz0Ie+R62xwCU4sCA2sGJBoIECK6aACRyAgyLoALNZq4U8pDCDVvjABADYsAQOAIBBUGEIrRgBW/dYYg7e7nopZsIGWCyIFg9CEBDQb37R5QMduKJjO55BC1bw4yAfQAJoBsAG5MsEISi5/5ybCFgs+RlMD0LhT0NY8ZRZrIpBiIMeAAi0oAFgAhxQQAejsJU8autjHJhAvxIYgKQHIAEAFGAIh5ACntRqTvSJLlIeHEGUVVGEBW8ADarQwZEJEOgHuPoYDwAABrbbCiFMSR4WFsIKcNABDGz4zGiW9JAdII7cDsFv8hzx3z4HagSqYAZSUIQqTj1lQfSZCYMQ9DEM8IBjwDrQs66xrQ10iFFgF0f6BUAz1t2MSF9hAFcgsiqokGkhtECtNmyyqhjGgGdLoQpAYHG1BTEIJqAh0N72tqu73W1wd0AH3bmqJHzcASAH+gDN2HAzRHCFd19BBBKAAHRZQQUhiNR5kP9K27uuYYsQDFcK4qA2lQlu8FYvHNYMjzUAYk0AehSHFTwes6P1e2Z2G33jumABC0RAgGI7Qw8vkMQI/Ga2tO0bBhoIQfBgLogGM3jKBb8Awru97VcvfOGE9jlmwtwKMvda0EVftwTYzfGOi0AEan6BdN2Gsk+rHAqODQG09QCERTTY6zQ/+M69bYDGn/3sgcYBEwZjg1G4wu2PDjIveMHuzXe+An6IwhWccIVmFIAJYPjB01/QAhWSIHpW30QIngBtKajixRT4Os0pkIudu9oAsHY85APd4SBJQdcZ1jbnOb/uzVfA8yJIQwZE3/Eiv0APznAGGIbgZlCz6l0j6Kv/EEYhBcIzGPcw9jMFfN/txrv/8TwnwAaOehIbvMAVwQXyhjfv7WZUoBm84G3L53wVEAXTt3QAIAiop3o/oAdu8y7zkwqCowKt8AKjMF0Bh365JwjiIHY7ZwCm8Hvw52qCVgBUMBVAN2boFmTNIIAJt3kBeAwKUAGNN4MVIAIZwAKll4Di8A96wAlAqAejkC0Zcw0T+ATjl1t6sAj0UASHl3uqIA4QYHNmx20jGGsOMHk8YQMTl2EYMHfrVgFicAwwyH/HIAYz2HicVwihlwEfRwB+9g+pB4Sc8AM8NkKp0AJPoAIv9wOcsISqAAQXMIgQsGCDUADs535ld3ZWyHOC/8ATPRZcbweG/lcBlqgAMJhwCpAAvOB+vLCJoaeDRSYOigAGP0iHDTgKbvMEdzIDF+iHPwAEjiAOi7AIqtBn4jAIlQAAVuh4CjeC37YBKHF/bkd0ErAEGycCzaAAM0iACRcACUCD3CaDCZAAfjB9CcgEcjiHdPiHPTZ1kkB+fviHQJAEt+hn7kUFOsBqjHiGi/h4jWdpJyEORTB0QSZpImCJfnB3/seMzJhwYgAJftCJjXeGoOgH+wgB7gUG3NiNesB9Fjhd4/gDRFAFixADEFAAEAABF4CIi1iQD9CLIqhwAJCFJoEGrHYMzbAEEnAFaXAFoHeDIuAHCSAGaOiPm/+4BgPpeKaAhgGwBmsQBUzXg3pgit1Ih2BwA0rJkNOlBw0IBkmAkRnpAAjnbWJQkI1IdmS3bccQaINQEuJAlQBwjNEIen4Qk/l4ibwQAAmXAD+5k79nAGJQjaEXb2hwA6k3jnX4lEp5A0QwDo6gCoKwCBdAmJXAge01COzYflfIbcCncNumZiWhCqyGcf1oiTKpj/nIjDapAGIQAAtQCNLYeD35mYVwgFdAAKjnlKxZkY4ABEBQBURABLQYA6wmaMSmCLrJBFT5e6YQgvAHgu44ht9GARdRDDEAAGRYiZhYAWWJkAgZjZwZAGhYjdJoCu5nAKAYBVHAAgewAdvol+P/kAR7EAPmuQdJMA5VMIviUGUrhgazWAXioAqt1ojYuXDZyZViEJKxZpwWIQ5koJzJaInLmAAziZBBKZTOWY0KIJfUOYbZqZ1syJ2iuAGkSAR+WQWKUAUcKptLyZDiEKI6wIHiwKH0uZUiGJIRCpAkKYwWAQQBegxLYHeX+JNrkAEZ4AROgKMI6geYWJDbJgbY+ZummQDTt4MQIAiOoAizqZRN6qTrqQod6QAOcAGK0JfiQAAEoKIgqKIMV3Ys+m1oYBFSkJwPUAFLIJT+lwAKEAB+cKMCAA9yOgVTIACMwAgV0KCNB6Gk+ZsB8KcJIJrPBwAEUAkFYJ4xcKgxUJ6I/1oJWvqoVnqlN+AIi+l+RGoKCZepONmV/kkRRLCLx3B3HyeU1QiUNwoPUyCn8MAIAiAAcLCTQ4qVv9mTbdqmAXCfhXmLt5gEsOkIvqqhAOerv3oD/4ChlOpqsxqrmAprzCqDtcqpFsEEMcpxShcFzgmUjDAF76CqTrCtrQoHU0CDQ/qbcjmrcumT1MltQICXpohbuDVd5ScFN7Ch4uAIfsaQDAkEvbdw5Fp2wEd2N5mnAQgAEPCiBKCS1Fqt2FoNArCtqQoPrQqxcAAH1nqV42oKtDCr1cmgtPAAlRCfG8qh4xCir0mejvqoG+CX+bqlyKqxIIipBemPbMqmBFsRZf8qoHWnCzv6phnACBkgp60qAHX6rdwwBT76srOasbPaptXIoAZQqAVQCVI7tVIbtWTwqFq6AUmJW6qQCy1LpDYZtsdAq/6IhtxWsBQBoCrZkjratjjKqgLws3QqtKnqqhOrCyLQoOYqpMkqBrQAjWxqABTgqyVaorpJBFdaBSMbouKgA7cVryeqostqlefak8cQAHnqmWIAABdQEYugbhIgffCQo9uKqqhap6oqtBI7sXAAD3l7sdj5shn7t9YpuPDlrmAgBfgKBq6pAzpwZcXGW7bntVzKovsZtrSwiZ7ZoA/QuRQRAw+wBGlQunH7Du9Ap3MKB0ErsUELB9wAB07/4JbJaq4YSwt/C7gKAABoMAjCWo5JUIt7cLKDRgG4dQhUoJghOaQ3GbZ8m7G1GgC0AGudGhGOQAYymgZOkLrwsK3v8LOuGqdxmrquyg3cAA9+cKvJqrRJC6h/+rRUWwmIugdRS6UOILUOsGYvQAUvgL9Iawply7+08Jl/CglsKZkTUQxeWwFpoLPwkMByysDfqr0LLMGsCwcZgMF+Or5KzG0X4AgcqptMiqHyybghemUj+gI117JC2pn8G7Y0DAmBa8MSoa/HkAHvoAu6gL2rG8QT+8DfarfKMLEJoLTnq8FL/AAFUIq7i6+K0LgJJpgUAAGBHKLQ+wB8W5pdvMUB/1AIhVANeFoBB4C2EQEGF5ALx7DDOiqnTgDBbczGrPvAcKAMFKwMa0DHSly+dty87Ft4tXiR8gt3EmACBUABHjm25qu0NonKAAzGN7oGlngADjARQJCc0nvG1ku92pvMRRzKcVzEoqwMjJAASWvHqHzLv1mohmqoGGnCDkAAJEwAwIwDEMCyyJuxfouG/vunCNDIjFAIAaAAx9B0EnEBZHCm3dqt1quqdbrMytDPcRzEcSzKr6oA1azBt/y3Gdu8IQrFSknFjDsItFwJhbilZ7jB5uu35vuni1wN8ODLzPi0qiARMWDJOrzA91y6EAvHz/zJy8wNhMAN0Wy+KHDQ5v9rCjOdrAYQA3rMkA1dr/YqmGhQAASgkSgJfAqQ0e+cvEeNsX8aBoUQt4WgvF35lQtBDwF6pmuA0kOsqqzbz6PczHY7sS79vYWQsTNNC2ct0whgzSG4B61MmEJ9m3DHcRItCATgoH+a0RltqwEACYXAqmvglv9oAGO6EEnQe2tZAWvww/qc0l3tz8vMzKLMDdB8qwGQ1mhN00rrwdocA1NbAAXgAFHLas1QCYV5sDZ5y/17voD61w1QCG4JoTW7EJ/7ALyQAKeqqkDryZLdzI+tDKRACmSttCiAsb85u2z9AItwoVLs0K+JBpWAxxewAXedyxeN3H/KtGtwpwJAk/D/vG2VEBHQeww6nAFZrdtB68n+7Nv9TAr+zA3awA1HrNkHfdO/+QB7sNP/kIuDMG1oMIhCbWkTfYYIHcO0QMN9TcOBut2tGtj+aADhrRAAqpyK3ba7HdYT28zhINm//d7cIABuedO3fKuZnawEUJhwLddBpm53dwAFcAEoSeD7uXDM6JbQeJpvnAEMepWVAHEJUcC2DXo/S8SR3dXM3OFerQ2kwAiQcMuYzdb3XbWgbaigPeVU+XwSHeMD6wAUUASN4ABAxgugB5TfOrqcuW0O8IgJ0bXkjcDdytVFzt6QneG9TcGEAAfubNNnfdZKXAlJUAX/oAjsScVXVgBERtTK/zmwOOADdtJ2Xt7N6pbAAuAEPuqZ20YAan4QUiB2B5AGImDhqyvnHR7Zz+zVFBzTmY3ZxT2rcEgEWNzf7/liGUkAvODihaichLros9cCQiAE02Nvp1JmxxgHYhAHsOYAipAQL7CL7bYEn46qAB3Q6z3tzUzt760N4fABCLDWKNDtMu3txn3iHSnXvzaTGZCnDjDRBAABRbACLVA98LIt8u42Y1ZmmSrPCDHhS4CmCOytRm7t1N7b004K2qANU1AIa43KM93tDG8K2Ay1VQ7aW8qg646SDtDuvj49u5M2BUQ/iNUKRQBkCQcAIY0QjuC10quj1IvhzkzZAZ/h603BpP/gBdieAduO1mmNAGcdAAZwASI66PwN3Qrgy+m+fgSAA4u+An6l9NbSWvC+LYyDA8pJhg8gyQbxuaFKuhDr2DAP89P+1V9PwRSsDV5AClPgljh/82tNCzTwzpj+30/YkbvICxkQt0UfaJU2a75iJqzYeiOAJ++yhz6AAVYZzy5qEMScoz6sz2G93sEd8y4P8EmuDXAQ2DiPAjqP+d2OADx/1wYAd4FWAYzAuk6w7utX64S26D6w66Yj74i1O4Nj72MIAAM8EC9Qz26ewD5Mt14f8PAt+e0tygX/4WHA8GhtCjofAAiwAGHgwaC9kYKMBuO8Bq36DqZPfDjQCKfSOCP/oPGIM0LbQkB5UgQp2ZV5bBBAXtILjMyk7tXuTQja8NLWHvnCH//cUA3cXtyXj9YIABAPLiwaVLCgIEEXHIiAJ+CdgwsbHDiY4ONECBUYVbR60gKKpFSpSpSwYAHKkxU4ABw7BgAABSsxZQLJdcxPhndT4O0UIADOT6BBlZHiRkqbNqLKlHFT2lQpt6NRG4RBURUFAhoItGpN8IBAAbAFCAA4IGKNTzjwIG4o4MMHhxNxT8A9sWKFCrwdoYRsgbIDgCUVRDTDIVPmIgC80kTR9c4xz6A9fTYlpK3y0adMnQ4tqs3LUTjVaFklXRVBtShRmh0AQMABAAN+gj6EQMFB/4cJEzzttqjiiRBJIIODTCVphIoJJgY4ycDIiQQIhq3EAJyGhZOdO6cARSugadHPUQk5JeW0KFTPXryQEkDV6mirC6q5hgABjSAdCQkw9EmbgssOcIPrLo8kGWmGEmZAsARJoEDugOUyEMEJJwCQrpIHlkjDDyfeya6hnoRSipSkOtOMmxOXYuoy9bwgpD0ERoMvvgYIiAiNCy6AoIBKAIiiobQIqA0ADASsawWMnnjiI5EORLAFDSbAQII0KlBAwwFgkomMYzTMQCd4PEQLqM1QRJEoQlBU8cyl0KysxTQZibE00xpYozUAFBCsue1+UmYKIf8rMjdPOCj0Irw4av+hheH6WkHKA5ZYI4EKJJDAAcO4lIBCJ6YQYApQx5yMvKKIMtNMFUlE8agW1dMmnAWqktEqBBb4wAACKnGAgLEU8K4peL6CQIIBMMDAA908ueiJEfaCYoRmPXpCBQ7+4qWCNTJYI41mHBAnJnHIeCANXTqEB1RPQx1VMxUvU/U8VFVktVVtuGkAATqtMqCS+xASBI0CFPDzTyEhuKKhYpGFKwRoQyLpmpEkeaIVH0xYyY+b1hiMgEFiUkRcER6TzKcQySRvRPHSRFHlUlulV4AF8EWBBhpmpmGBrnh1aecr4GhqCgfqiwKOnuAxFrdCQ2BgryYZREmlYyooJAOqKwD/AA3DYsiFF+yI5s7ngZsylZvLooK3XjRJ+czlz5SRc0ZaF2iAET9EiOIdnzcTwIQdWQgnnMvC0aVYY5DtQWlbPmpBhRX+ioOXBHBa4gAtD8tlXCCJHtPkp0hUOzzx4O0sKra94Ka9AGyWOQxTvroADQoKACCDzZwo+AoB3oQTjsExMGYCDpSe9lGL49CzECeW4Fi6JMRdAruSB1aTMxJZ/KyysckmhRDuSXdZGzjkpJOG1gugAI0NAAbgV6WcCLoAXeAgpFVC/oan2GOBDyGEE3z46xgxiEEBCdDYBaRjhSo4D3pAIZvZViWe9LiKe4Qwyqm8V7rThSErWanKAjy4/4YrNINneVPKO4RUACfIr1XcgEM4BEA4LtQALoaS0krEQAsF6OlqBxwHAcbVp6e0yXMoCo/nvoc2pjywdPSCwwditpWbIcAUZOFFFNalpgycsGfhSI82GkII3vnOAzLkAAcmYIwDHCMOtAiAAo7Bi0oc0AqOqAlaylQmy5gpgq4iW1FUBLolto0R1diKVlBgikpcgAIXEIuv1qQM20GgEk4IBzdcBYd3CKBe8DhA/mowAS5gAEJLkAEkEhAAMRigcoZZxAMqsLnNlGl7Z/oeUZCyoqh4Zo8rhMMTaRUGAwCgEhBgJAG2o4y86eJ98ePiZzCZyb+9g3DGwsAAyrWGAP8EoAIJUAAB5PixY5xlVCoqk5nSRKIW3dJM5dHj/OYHugnWC2Yyu8oCwlCNnkzhCnY7pppE8D6foOdV95OACHTREyfoQhfwAEoGTkmLAApEjqo4RhpABDY/gU0p3CMbBT33rjad7Sjzy6MA7ueEnvwNDoWgZ60CwKux+MFTAWVKOK4QNAe842/hqZ8uWAOANPhEpS4UwBoKUYg2HoMAWJPOEBzQjIWC6ifRM09RKGjOlZmKZegJj+AkAAAThBUDABhAOJooMwSEIQwB4Ne/ZBcFRjTAZ9wIxz8hQAB4AA50LowCL3jRDAHQtX4uVMADDBtAAxRAjoIAALEkIKY+mWz/rqcS26lONbZ6haNCHcABDnCTG+W0kBFhQGutFCBMsABABH4oRBgaoBS7OoCherWMWRmxhgo0Aw7iEYAIAOCASvhQqUw44As0RSwWiImBLJwMqkIjt++wbClKAZsuTAC8MuYmNxjQRSXDR9q0hkE+U3hHBoDEiASIF5/duqsAAKc7s+qEalBxUTjg8dVdrQQABjwgYppBJXMxFA6o6oneGnDgzDTFT+yCgwRM8JYyZveMAxgwUkKD1gDsrBmrFQB6xbuANRwAInjVa4voSrS7ped08LgCa9L42yHI8T8HeOyHaMrcvAEFwWdil1yni8zePriMhcquMTCQ18rUj5BY/0lrMMmy4fK2Vq1hAEABLkAA9+ruMyx8h91y58IwpcFSvGgNPeRohQskxqLv6FALOwrkWD5Ful5bSpqIZl3sRrjIoszrUbhByKsg4AO8MEAzLOpeeHxgKwF4QCUoQIBM0jedgrMbdsJEIV0s4QFBM/OZrcClNFjaU5VUU0ZJqMc4owoeFcIBkYOngRSY0RPJoXCS4QBee1a5APlNzRpkRotGt9esuhupC3+y6oQO4LeK9bRMYuBK8zYkXkEh4Yi49zd2cQaZ7wAADt5yEaUxgH9H6sAB8spFZRDSgyD+Ka8OEIU1UAUBL00kXgVAoXCoJ03zO/Gq03AAAmxAB802jP8jQN0173IHltau8/RIBORufTsEGlABxfdnlxMk5wDvIJvbqiGfahSCEST7lAA+AF5G1zuFA3isZ7qnWZO2GACLILgcERM1Sqr0U5njnJlIraZSp6HbFrmIBigOLZTYxYwdkMDf/vTxXI+FLCLIQPhiFaOvPDqFRONikgkhgUWCFVM1PzOGxJCB7oBoc2GbK1HQBD6iARwHcVmYb2zRF4xcHAcHCKwyOjxlXME0MYxgRMxoQQvXQfpvxObeAVxB9po37wFrYGjRSEbtvF1WZfUiGjzA2gFlLYzieA+Bkp4Qgg4MIHfIbEA1qtGAnngoA6H+u1a6aWUCoL2S7zxKONL/sErIn/kCDyiEZLJj0hCNSSmk5t7yvSaAAwTI1fszOv9UMIIWtGIFobVzXOUmGCQ7XQDVWCuucK+A4tO2fvBoBvCDf0CDH+NcPLn82s1TL2QODA5XAADoyziXFEiB/cEI7FMBHwCA7qoMv/u4BvCDCkAplfK7BsCZlzIfAhCgBWih+hm/BOAFb3q/ZquEcKIanZgpzAsbcqIzpdCF/iMjPQuBFDA6JVkBH+AuvWKhQZKbL9MlFiK/D6iAxLshBDiwA/s4VAKADQBBT3u2bVoDMcmc7sixFJSMptCFIiEjuoNBcYtBvJgAANApl2siD/qrFtIrMPq4MLi9RwugWlk3/3tCAAU4gOhQQjkCAgAQA2wpmp1oIc75iT6aqp44Mf4TkAibC6UJQAaYlr1LwLYZv2o4gDT4m5RioalAgATIOgcQgwDQCjckLTdiNjo8oGcLgKlhKJ4wK8kaMBQBErOqJGXwqc/Ss4WJQShYnBpMIXc6HfI7BvfiBg/Jm0pUwwsMgA8Tr0JYgGwSg+UJRVF8AFpYA0u7KKLJP6AwqzEJh6VIi05CFiLrgTLSwhGYlhpkxPWAgwkUmDRps6kyvCAMAA9yPddbADY6LVVgRjmKARH0Aw8RMOoCimPqvDI0tXfIH0/oAW+MsImbmAchx/KYwDDQAu6ZLRcaLVMonyuLA/9i/DgnKqQAMAD+ssf+IgMDqADdUzBqQz6uUwZXxKToIxRZ3B9oQT3VayZnaj1aKAS5+gnvGiSswz1NbEPxwoqqaCMHGDiQPCBxWIStCSps7DwBA0Sh4kOgkIAAwQ2DNMgy0oARiJIDYKYICocpuEQfegADuBZGgIMpYIQ2EhYCoAVIaENDopmqmKKOOUqbq4ni00PIQL5rnCpOGqvCmYAawEql0QBPqKY++0oBSIBKwMfgGotXSo0KAELcAyAZqJVCkoHDo4XEsks5MrjLqYAPyQ60jB5qy4ADuAIrDMwakKH9OUzVa6Au+hPGvIAY4JHgMoDbopvbu7IbekutoJn/0ZABFGAjOfRM6SiGGIgBAjCAH+EJ6Fw7r5kCERABsxoAYzAGLuACQumAagosFkkPUoADP0gksKiE4AKAQliDNfiAS7RABdjEQtIKWqiZGDmAj0ROKwCCC+gR0URLtau/e0soCUiuDKCr08EfaqomSnK5XQIfEbCy88xNP2CEY+ymessmKNqKQAsAWuCFOdRPKlgE6jiAFDoxVJyMnlA2lxgLvOkezkMRbEsTVpmXdIKDCjBP3IRMwguD90wzMYAESPCg+QzOAOCFotRPK3gBrTkGCXCzPKofVcSkIumA2zC3vOqjErOM8OhSG1UPZShPRkJP9DSABCC8BvhRAiDG/ycKTihiI6upR/1cBDJorIOqJJdxp3AYABPogD5FzF7EJS/tIlf5HmWIAh0lUwLwlQ7zA9d5gPgEryJNAFM6LUFQUuo4huWYrRqlF2mCkGpyM3PSJQcl1UJlIkRlJNwMLlNgBFBhBGGCgAdIL9KimZrJCq2ABIgyAKbyTFXQlDTYxwHTMvqxs90bVdIpm+uxnq9khETaEUU1hdezE9cBgARoLaG01awIA11NJVC0SzqqqA6RjBndJQmyjJFyEetxEfTonkL9yit41lVtzmogvPmwMmtFquHUzJkJNBkIIAIgLs9USl7YFPprLmLNJd2B0XclNtL5Um6IUB1ZVQxZg/9B+oAqgwAAwBjYUIDDkwHipAUZoAHNFIMHuFTPfDZDWyCdHFWSotF9yyVSHamRCs+16VJu8AMrs83lxMdZJaAfBYBtcglekM+q0NZd7VWQTKAHMKg9HLAFW74+SrI+qtkv5SnQ0aV0Mp0EMB+eXU4MGSD3FJY7TICWaIZTggSQtVWQFQNTCFGQFAcCcNKFUjs+xDaz6qhKUliv07ckM9e1mRduuIKd/drcTIBTetT4JLMK0NXiHFmhjBFc8cwk2BoJqNuLIrVWZL6/5ahriydTzVqZ9bMssrKeXU5xSUYhGb4AQNxrVSussNXg/FcCQFl7lALEUAzogYy7PZVri9L/fZugv6VZywBdfRspRnCdRbiAPUDdB9DE25PVIG1D8qtVbb0KWtihpX023VUuyWhZGTUnql2Z4qXRlEFX0e2jVE2CJFhe28QQA+jIap3eBRhSSZXL4jy8B3A/JTS4B+CFaDtYr6mkn9s3uvqbGZ2glQFdCCpfuhIBCAACR3CE9sWR3MyhR/1JTjRarBhZkZUBjzxKySNJ7TA+ckVgFE7h3Sve8oVR4k2ZNKmAC3AEcZjg9m1eHzKAbqqP573M+fRhmgFZWqhIAvgWe1RKcaW/0Vy898JbzVnhZRXeFq4M2SxeOFAANKDhGgaC9i0mANi0AtDY+HzLmHlLISXZINbM/ymSU2bcA6EN1mi0MbxtYrPKAJdohgxI4QUWXgV+r5FiIQAQBC2eYC5ehNjZFQcIYwOABJaaTyG9TCE+PDEAADamwyp4tjgINQ8RmaJhYhQmmgHIOhOAQGw74PdSGT7mKLMK5EHeYkOGABzYtfow02MkUrV1SwRYW5JNWnscB3GpgFCzsZFR4VbEJKosAgAg5Y6SUeHd4/oZLM8TBHGoghquYUcAAkOe2FkmRXsirVse2TT+11SC2/4FmWAdTcub4801q/vCANwh5mNVZSqeIPupXXG453smZCCAnfqggLsK0taKGc3czLfUzJI9hgIwYjqkCQXgEHQumruFZxfCG/891uOp9dxrC4eHGAR8tmZCVgXYiQEd6RFe8AOjemSQHdnLvGXOLGJmbCXFuA4bA5EULkOJRmBTPmWqnWK6WoMC4OiOtmYgwGYdoQDbmDrWElK1FWIf9uApsl0QJALuVc19hM5TtOlPHqqb3r3u6dvKMKsouIBp7mhH0IFrBgJV2IDagIDXIAtLEYEESOkPvsxdNtn8fD+m1ZDGGE2U6g4XSuFrXGesRuAprlGz4gVprgJqzudBOGsgEARiYqS2pjFdqBJK/ditAFlTCGE69N8NC9aqFpnMSVFrDMjNTYvB7igFrlkXouSxJusJvmZVUKRDlroBGAAWgIdJCSAxQIBQRzaFVIojOvzVBzA084o2qjGv702+nshJlfqa70VgLdCCv6Fu6dYC8qyEaVZsxb5nau5ucaCA9NmR/GqsAvWDBBCDY6CFXFZjU3iAb/W0gAAAIfkECQgAUQAsEgAGAIYAvAAACP8AowgcSLCgwYMIEyo82KRhoECiTl075StQwyYLM2rcyLGjx49RGooSZeTTJyShcuQIFQqJEZIPQcqcSbNmwiYjXxpxiXKHzyNHPo3JgWTMGCUwjASyybSpU4M4SYr6xBJJjjE7anCpwbWrzxo7ciA99bSsWY/gIE5tqdJn1iBcjHmAy4VLkAl1g/jMceTa2b+AoY4UZbVtjSBBtHLx4EEuYy4TJjCewJUHjy6+Ams+i7PkpxxZfcKF62FxY8ceInfokJoDhxA8EG2e3VRkSauH6zI+bUxub8eRPa1O7alHjxS0k9PEeTJlDq28e2Po3UH69Nas5U5IzIOs8u8cm+z/zGEy5Y4gjaf/Xj28uu/okzl4B0//pmeUoLmi/83fA/sJ7KWnHmNBhFDfgQed8klJ5uXGmG/GYCBhb/7tZt2ExkBWAwMIdjjQSJ+Jdpp/q0lnImMd4GXhb5B5wgEUHnaIExJvwZddieuVxlppFcoF2QSeqBCjjKI8t1iEJkTo2I4PorYbik9uFYJsQ9aXFo1a9ZbkbyRG5uWPXqqmWl4v2lAlfXJEgBVpxnRgwnC7rQakixzQycEJJ6yggQornFAnBylEAM6Z39XyTApcHWkCiQGiCOQJIaSggQYM2AIFIhb48owvJSAywgiITDIoocnJAQUHhzVJXZvsyelJCCpU/4rpNb5EcEogkwQCAgjMPBOBqKSWGsErqeLIaqsAenKCBiNAQeszvkYQwa4g2FDtrszIESxtcvjCA2nu8ddqB8q2AsWl15TwzAzSMkPtu7tqu+1mcsDQA1wmyjVuZBys0OylJZRQq6/wwmvmvJrZgMi9Ao6LbL//IhJwrRE8UzC8CGsGggapRoiBw66eoMK/lyJyDbTPuHvxrhkHxgzHcXl83WP/9avBK5ZCYUGm0LYLwiQFy9tyWWmGUIOAE8ZZ8woqkGDL07NK267K8FoxtFlyMGP0kRLOrCOAE/ig59OW7uwLxVQHfXVZ4DCDaMxd91dzCE9YagsMMOz8LLTqpv8MNAjPHLx2U+BYgOppGDamtCd6kuD43TCcC8UITzzB5woMQOELM77YIsngTtlgC8P8cdmqi5Q6DsXTIzBAwr+SINICA5mXcI0kDHwOOlNykHDvYuFSONyjIz8NxevM2oIIIgNbgIjyEfhyqdC701QLFL+X7uSPy47gtC1Olyy5Csw6n6kvrTxBffUzQdGxXJ54glddPyoba/jL74wIFE+00IIkmnqGwCKAiGdYjX01eUYPjpaaFNzNFgwIgfz4JbJK4c0CtBqYr1DGt809Y30IBEkETqCYSLlACV2AQRdCUCcXSeoV38PbNaQ2LWa4q1fn84XgQigT0cmvBl04ggX/jAADF8DgFSlwTaRcRzYZ7k1lNzzbNa4BAh7WxBcS5IALXkErGCjBBbboAgMoBcPwkQ2DtPLZrjaFwc0d0IogscETONADFE5xi0ewxStewYA9+hGGtgAjDM42NXdFYGfn2yEcPVICox1BCVO8RhjBR7sjdOGSr7ikCzbpxAgwo10l0JkvpsiMRcoEBCHoAQe6cD4YkI0EmezCHi8py03erY2e5NylLACDTz1jVKbsiA1awIEJhMAWaLxGpTIJFFk6E2ecbOMpbCg9RLhSA7aoYjA/8owQUCYFYMQgDEhwyWbKMpachELepGbD6EVvc9sEiRxG4IkacMCC1ziiGGnH/08/uvKCaVQjtRQZz408408pYIARn/YKDSS0j5jE2dPyhkF3qvGDBf2IHFbgiYSmIKGW5CMDjtBHPj5uono7Gy5zqc2MdqQElBJjEDEpS9pdsqSQQyYajwc5C6gLhC5diMJIwIBz4oycfqTdHp3mNIpOEQpMnGgJCBrUhTwDCn406kyLqtQynpFihHxnS6u6kaHOcpYyreRIiypRZFJMaoQEKlkTIgdJjOCsWd0npWwqUVfarlaEhJZc52oQK9igBI77Y1JpNylJndN4uKSYxQibkVrIYVcWQCstM8nVjz5Uk5Zi3lsBR1XKDqQWVpCDDSZRxFjyUbP8/Gg/cSZKtP+BYLCmlYNhm3CKcWp2sXp1aAqWqDqJZfAZplXIBydxR1ruE6IzpZRwYePZm0nOp6VN7jNaEIjO6dG5+4zlc4U73NdoAEYlaBaVknuQGaiAA2d7guucOVvO9rGPmxjjcEMQOG+wdyEzWAGAWrFdFYj0viWNZYIdNylmBe6N/zVIgAFkgiK8YAjk46dS+whLxcKwdcqbAQiGMNYI18IGkjiBmzAAABwM4QWt2AQZl1rGDy9VeecLmA2EUAQhCGEUETZsC4TDYgAAgABloEILnqCB/MKQw2QDn9MwdbaAzcAGVCiAAxzQCHq0YAiUVa0kBNwBCQFAAgcAgCDiQYX0dXX/qRTFG2SdZ2UboGMRZDAyBkyAAx8IgQpBtcIMWrACH0zABEY+M5oBgAYqeGMILXBcP0lA0f2VLHYSK8GVvQEEMsTgAoIoAxNG/WI9oCO71bNCPIRAZhMgGgADQHMz0FyAIXgDHUKY3KdaR2n9LS9/ZivBKGzACSKQQRCCeAE6vGFqMMQDHUOgh4+tCA5cC9gERTbyrCWwbQkgGQxWUHLrlOo0XwNbf5IYhR44AYYYxGADZUC2vMtQBjS8qQNF0IEQUo1iMmf7AGmedawlwG01O/rRLWidSZUXuV8j0gIkkEQ8fsGJb7h7AxjfABoocIFBCIICif5YI3Sgu6FZSxKt//ABDoqc5gM04wAGaEYzlkBwgjej1vHwxqon57hy//rn+VRBCSbOiV/sYQ+LQIO8NS6IDVyAAIk2sgkgoAN3ZEznrPaBm4zscpk3gxdxiIPMJRDrK1xBBAQYxMGV3HMS6Mx5iMA0Bhmgghno4Q6c+AEQkJ50jCPb44KIugEMAAAJ4SDZwYrGqldQhJUDAOAy5wUvui55XsyaBWY3uwQuoIhv3OEXL7Dr434ObCic4AmjQMcPOFFsICziAhpn+iDK8AKoA2Dwgw95B+hxJitYuxErZzHkwT75rzcj7HGw/BVYEAwWsGAADigDGFYP+oSX23yYWl4ITiBxirP+F+MAQv8RNI4GpQ+CCVQgANRxn/tET91DqI3HEHSgdWw/HuCVP0DlLc8LA8RBARXgB8GgC7rwfGlHBN73C0PwBJ+CKQHzawywLDOgeqyXd4rgeuT3d2WgA+oHAA/wAIP3gR9IeAQgCAdSC8z2Au7QePb3eF5XAZKHfMn3dcgXAIWQAU6gC06AdoOgCNPHet+wgCQwKyWwM7agASfQCvGwbhX4A4qwCBindPKmAxy4fiBoACIYdQVQBvThey/Aao1QZgDwcsYXeRWgADLICzAYg6AACdnwDk7AAs1QCWWgCDfgeaynB5KALnyDCDKmAZJAgRX4DeOQdBQQexsQahzogVgIgg//YGRZmHbgIX+EFobC94KVF3nkYAAKQA4KoIbN4H/kQA6QcIMZkAEisIV2+IN5GHozJEAjMCktoG4VaIFAsHEcRwFokIgbCAC5cHsiGIwfeGQmqBzR5gONYH9d1wwV0Iy88IkwGHajCIB+4Af99wD/FwAJkA1xyALRt4rfUIvf8ALqEkqTMgLPoAerV4FEsAivl4sUcIizNwhH5ojBmAvDaGQFoBwvwILCdwAisATNKAIJAIMK0Imj+H+fqAB+cAX9ZwCmQA7a6AfZ4HwA4AjguI7fdwODNgIq0AITqJF5BwQx8HoXcJLxiAbzqH6NKIzBeGSDkByCQAAsVnOzJgLB/yACIsCMZziKndCJChAAB5kACRAHgzeK2pgNGRAMwaAAgrCK3leLPwAGSwaSRCeOexADgnABubgBhygIOkCPHuiSwmhkMTkbNxADXMeTFXAFEiACFcCTBzmKBjCNB1kB1dCJWFiX5JAA1egHFZCKTAAG3yCSFagHF5Z6v2CYxlYA8fiY8ZiIYVmP9uiSuXcBsxEPncZ1B9CMzeh1zJgAc0kOcWCXCmAAkBAApMmXnUCURCmAADAIhBmV3wcGN3ADtnmHi9mEVUAGBXCSXsmVuigIHmdkYVeZwZh7DoCWMQB1BKeTZ9gMBzmUZ4iQPhmUQ0kOplCX20kOrUmUTFkBF/9wA+jwC+b5DUSgCONAb4qgCFXgCI5Ab0RAmN+wCOpXAL8JAQWgnxegkhdgnC0pjGFHghuwGWWQZ2eWBjspnQrgmn7pB6I5l3UZAAuQAJ2gndi4iUf5mhnAfGrGBERABFWwd2TgaaBWh/VWAOrnAPEIdQRwkoJgfnX4AkxQAMBIltiYfLxgZAUaGL8gCAgqAWYnc2eohq+ZkxUgmptIDoUgAH6gl+w3eKagjdvIlFcAAA7wlGBgmxeIBvgJASeJnw6gZS5IePqZgbPHBGXgADcqgo1olKU5eQCAmYFBBf/pgmbnmc0YlDfoBKeYDcEAmBUgAALgBD0ppUuKlAlQCAL/GAwwWABPiZvfgA7oEA+2+QK3+WzoQAX1tn4GoH4EUAn4qWWeKozk8IFw+olxMKeA9hdWcKCPtwRLoJOCGoDZcKtzYAi6agh+eqtwIADw4JBGGZGjqJ0SSaUCCIODF6r7uYvESW9MoAhM8ALUGm9QF4wvmogbAHUwt5ciaAoPsJ2lSZpGCQGKABg2IAi/eABCegVMCZc4iYMZAA+5eoqGQKiE+qvvAKURiYWm8K9U6peiaQBguosboJ8O0IFRRwAGYHnH14hqVgXtWQU2insf+K8guJ3+h3yDdwEvABjocKcC567vwAI66QS86gTwIAD3mgH4+qtwAAfvcIbh+q8Y//qvptAJCLCopxmbVLBszcalVVAGHld+KgoAcRCuwwgEElsFVaCW7Aeu4eqv0oh8c/qxf6EIedaZInB2IgCHwXAF7wAPZFu2hDoH1fAI+RoOAuCQSouzFwuwkECUp1kJs2eH8WCplPoNk6oHfnsDTDCTyYkGjuC0T3t7YfevuNevxXqQhOexgFEF6yqkwXCKwfAO71C5ZVu291oNAtAAaxsOhqoAOFu6/6qzDnqahHdkW/alBfusHncB+Ki0BiAI0WqH/7mxUnqU5DquPXsBrWoW3hB4inYFBeh8ToCy8woPhkC274CvAqC2vxoO4QAPwRAApmu63ymaFWAAkIpsGv93ASq6frc3hm1ZARj6AEiGqTcQD2hAAFdYmjIojc/4iYMHAYBRn2MopLqwuU4wBboKrGQLvYT6CGorAHAQDnDgBKSbvadLlFQaAA8QA+3rDRZ8a5eqpo4gCGQKkSJYCYqAqS/gvusXBxeakHwJgJ9IDv2Hv39hcQ/ACxKQBphbtnDYvPgqvSw7BSuLwDEbs06Ks9oJkQAbAEYMwZ+6CKI2rdSKm2CwbLdGo4IrgjGgCERwmyGbC6LonUvqf5I3moO3j38BBnuAjVcwAMk7titbwwRstgW8tsoAB36AvZ1Qx6XbCUZ8xBa6iUZme6C6n/2JBmDKpi1Zxezbbohblwr/cMLFOo3eGcZ/cQeKEAMxbHZpgIMDDKzQ+8O/urKPAMQJrAzKkAF0jMd2fLoooMedYACVQJyDMAhocAH62YEHsARXgIMOiaEF8AKr2G4Ma5SqmbOJipQBsMre+8LjQMlxcAV+mrz3+sMI7MNx/Ks+zMnhIMoCIJo5O6WlXMwBYA7moM27jA56YMF+a5vpGW/6CQBgJ7UFQAUjXKnNWZp1bMSdIMTeKQOQIAOEt5xnQQRJQAYPoAAZgLkoG8DwAMo/LMoK/cPXzA1w0JSne8pTWs/fPLAdJ2ohjKlbSqk3QKMUAL97uctLmLcQ8MtETKzFWscyYMQKcAD+XBbeUIgx//B/y0u2vCrAnAwHojzNOx2z3MANyjAF2oyzeJyzeByw2Lu6LgqqoqqfEMCm/TfEEPCzlRoPUBsHRn3CEYnHkPDVLx3TT3FnMUAGcVABy4u5zUu2C93TPd3WPyzUEJ0NCTDRKNAJKIAAd52aCIAAAfCpQOAIrrcIWdmBBkBzhjCz97ydwEsFeYvViGvUoOCdddwJqUm3vCDGZYHVCRsHAZANa425aryybf3WMevWPK0M2sANGZAAxXy6poACsn3Xsu3XpgDCevALfjupYMDL8Sa+SOuvtz1q1EoFJ52hlN3IpKiNLn3MZvECZJALBBCAN8i8Nby50tzTQv3TMRsOhP+gDE5azHiMAtuM1LPt1w+gxKPWnocMBlWgpgWQ0qZAAPH4YkNAyEmL1Fx8oXjs2nTpwk8RDWXgos0QDEq5uT28yaGsDAq80KkNB0EN0Y6KvXeN1HV83noNrkdWvn0MqgnLnXBbAHarA0Xwyz6Z1MyNx7eaAKup2U6hB4uQaM1wBdmQq/ia4Jr8yant06d92txACEBuCBVwz7J94ZWd13l9zyUIBIJA2OMLAGjtBCxb16UbqlGNtPRs0UlNlIVgCHR9oQRrFnqgltrGzGNLwNRMzcC646ft03FMvdwQDtdL3ltd2Rf+rwSgCH6rB9+Qm4rgcRRQCQ2rnThLAL9p4tr/ec+mHLCF8AEQvKN0+hQ3kGdkKLbwwMOavNPVzNOl7eZxTgjcMAcJcNd2TOR4neR3PcGFa7ghrKajNpMQSeimkAuHzpeUndSWXaGFUAjhLJSTF+lNEQ29yc4yFwxSnq+cnN1xHcduzeyi/ONA3gCjPttHjtcIcOr3/IiQuLodTgCSN4o2S+tPx5d5HAA7C84Oag6FMLeniQZl8QtAoMVeJ4C6muCl3enOjto8HdTKkA0BQOrai+R63Qkl6Aixe7QAKa+jiecx8L4PkOg5m9fhHM68Xg3VEM5oWLtlgcjmWwFMmQH3OsBtPs3Nnu8lH+HcMAWFgNcUHfHYPt9lsITe/8ClG7iVDrCXVd6fN6/Vp4sA4AzOu96kcwDOqmkA7v4UimCj7NqMxn7sm9zs/F7yUq8MQa0N4TAHpVzhA3/q5G0AMZCmavrKOrCBIHeUhd7wgr7VfQ30H6CU9zoHCwAJRlmMTiG5ioaTTf+8Cn3ybq3AJs/QP64NhCAAH8DyqGznAJ97hOd1fQzlaAju8w0BIR3rOZualm8Obr+yH1AIRpzZTPAUG/B4ZceUTnDmPb7jfO/sqB/n3g3qyoD1RR7b3kzbdvwAKrkICC8CUg4HGdCT4G7ok3/rfo0AFV8N2dDDdC2UcSCJTfECajnDaeCuyWu2+O7WUT/12s3vcPAB5v9A2wPv831tzw8Q85uqpjrQdDb6jIq+yob+vnyZs98c9B+wANkQzRnA+WDeo0xRBQwLEBKcvHs30Am8d/AEKISjzOHDh6S4QYQ48SE3QtwmCqgWoBMKFAhCIhCJolMnAwUEldEhSNCgQToGFTBg4ORJUwQKoCFggJwpUzLMQSqUIIE5c9UECDCUrZCMk3EKRKFa1epVrFgXAYiz5ApBsGAVPmpAMSIpQmYdWlTWMKM2bnDmBAhAkiQNkCHpdjJVk1cwERIOHABwoMJNnDov9AR1kiQkkguQLni0cE6hADIg8QKgI+tn0FSTFF6SRmzChPDGNlTGNqNGtWvXctNGiFD/bWXZFohEYI6kb3N0TT24gKYAgZ7NRCjMhhioYgJxbvbeDbzanKUC5kiG1EnBgUGhxV+9wPVKGl3vDKlWLVYA67WvNaZVyxbjbW1w4VTbDdKuuQQQ8CiXKsB4oYwyBhGEgkoMKASxAHIqgAICHjDlpAUy7M2cBapRSoAG5phjKLp4gYCK8VKM4YE4rnCChSsyOCg11d67SL77vIDLPrPeys8LbqopBIGPIiPJo04eiGFBCC64YIMFCVAAJ1Mi1IlCA+IIyq7/rnuksjmyuQwzXggoI8XxyDCgggxYcCKbbDJYSKH3BHikoYYw4oYUtDKSzyGJWgMUrfy00RGOD0qK/0xDu0xRIM5srhChmQNE8APJujqBLo6fQpqsw2oauHOppjisJpsKDtgAzdCIUFMEJ9ZLyJCD3oPj1lsvgg2//PZkSzZAb/Ni2EOr4W1DyUoiAAIHkAPgWQngySCBukyScDFOO6EuwwwbECCc9x6Zg78FvC2kGRPCYzWrKnIx4CuEEppxIVyXgk8j2m6zzbZfdVVGWGK9IMRYkLTl0DcUTCmACR0cgYmeIhw4gBdyOqGBL1Mq2amnihHg1lQQw4HDW/44FNWQYA6gZ92sFFHzivUWSi01e+3VlddC4aJoIj1t+3FYQrQYMa/eEAgwgGUhKKKIFeihpxEAeJnyQr504v9JS0g4TLbbBuAQd9xQGxBVABEI0MEGcFi2yuUHrlAIHjjozc7OW21sTaPacH4tUFKUkWg+HQ0dFq5H+FNUwAQUMIAAEzqY4IQVoJagAgVCSvja6MjxVOtyRQ3nyzvv/FzcCgoYxYZ40LFC7ShcXtOQueu1le488Q3859p8vRtf2gYPGMhHGEWBHAMAIMABHCbw5IQQVuhggHemLYmuSprkqhMZtr2ObpHDgU2LurNpxgFJQJjhfCpWX9dlABSAeSEbvQ49190xIhb3XmXTkxugCfldG2UUbgEBWBzyJsABBHLgBBpQQRFMIIElKCAzUDGAxi6QJW1xy0NzuFPtNDL/tri9QwIYaMUzSvAEFUChBFSIRzzQpIgY5CIOj4pZB+/UlrWQYkeF8l3g9tUan/3NUPgzVFw+sLgCNGIFJzgBAj3xRA74oBE4wMCzMFi1AlyQHHXhVoaUkqdwBFBs4fAeHOCRBgxMAIUhCIEGGACFFrSiFSugIx2FMAMbXIUIe8jFFhOQjXfEDli16eFt+DREH84nd4ArlK/0NIUDOECJdQxBExM4gUZkMpPN8kknyKExCBiAF1mbjIfGmBGHkKU1O4LHADBgAuUtz40M0IAGLMmBOrZiCC6syg2SQIYHPIpO9DOLDvNjSEANTnA61MjfJOKzHUGEBRjAgQ/qqAE2/yKQiXXkZhFiAIAsfbIAoVQAtTxWDQ6doWuo3B1+uNFKDHhgAjVAYApSgM0QcICNIXiCJCTxgiG8gJdR+IUjyBCHQtiqX/X5Ww4RqUzYNLM2edNhoNDoOMi1sZb7VEFH5diCOM4RB+D8icYokCUFUCdEoTpD/fA1RG4IwJXy9EQP2JiCfGqTeSpowQxaSIUX6KEqSchFBeAhsrbcak99a8sNJTofRebsb7+6z1tuw40pUPOAGa1lVxmogie0QAj+fELkqsipCo7TJwFISthEtcrX4GdwcZmp8nqAwJwmUIE83SU6vIEOPUQjClWIQRzkBK6lPOJuD7mhoNCCL4kYE/82s1Hl3fjlKzhIAAeN8IECmbdRrzLwCSN4AgpXMAFwSietoSQHJEBVLhvpizY8HFw46lrTHuRWr1DUQAsCGg9veCOwURAEACpAowyICg7c+JLXWMOzaD7EZ5PFV/DKohHv7Q4eAKimZ9noVZzutKOlVcEKfICBToqTta7tnLcUyy/B/Y4QMo3nPHN7Vydy4ImeWIFYh8DC4HojCjE4QBrelpApVEaxoIPNcx3itdnkb3daOIMWjskzfLHABI3w7ne/6lUVMKC0pW3FeeMQAEgooHqhBEUAuOatPMk1YDuirzxroNvdIpCOvmWCQOOhB28sggASWA97aHenri12Dov/TWV8dOaQ1yijLNF0JDeu0IHOMlGfbQSrCrp6zxHDsRUjrQAkqlEBUMYBFOxtwBkewY1wTPRnOgISIeDwDlcaw774raRnIdcKIQT0BSxERzQKaxr2sKduSrWI2BT74BBdN3d5YvJiaaMnZQygA55QoGdFi8JaelkFIxgBFOB43gMUwltoLkABKvDHOXjOsg+9H77o67ga3Bivn/VoT2dABRbeQMCHplGN5lZptZBFC5eOCEaku1R8oVICm+40E2vJAGzTUtQjbsEKTGBcVc9BBA6AgKuzkdi7CY7WxLpqONCIAS7s2dOiFeug/QpYqqgJPQmBn7G9169+NaAay6YP/+92xDveBWraB/TutWkZ2lGXFtUJcG0DWO2AbBgCDv+Gps9+pyM4w7nG9tUrl8P6z9QFtyp7aFut7JUQRrPFwQ/BlbNngy+H7ChQe2qNBGCpV+bds5ZCvzapnwC1A2iLBghQQBYJ4Lbu4W1wAAvYa+qUZy7UoKZA3/EM7D1c0ZChNMXmN+9onuzazWaVGIYsn/CVBlhyuuRE9yoDSO1tw8hg6QgwgAMu4ACoc7zqVFemNsCFEAwYQ544tnZH70hosEcBCAd1W40UvVyLwOciFbmb2/9FiH/jHOHKuCgUExiCe9Id26Q+7+Q+ggJIVHAx5yajx6c+56nD+fC6SDzJa/9JWkDPYBSp04NQrcJyEQQSfraCD67MYh+c1y+MnG9IoN6BgU3LHa/2pLsGyDuBA0gAMyaBxAMq8fcrfMtn7vTeROmsI9CLzIwC4L0xsq7PWj5hrJD3Ri2u0q7SsLy6yS7nA5abOTieyYjQgza8yQh4wD7tuyvUQ73Q0oARUAEPGIABuIIhqQvzOw4n2LjLiikMIABd+Jbe6R8zYoiNg6es4zQ2kgSfAqw7+IzCihGEgBtcaYgOmrmbwwgEpI0FhLYL44brcxzT2z4P+70R4AAMgJ5g8IME+IBqqCBm0bh/awt4OIAWeAETGAABAMIfqQ0BeAddCEEyCgd4oikO6Kn/H/OGX/gMIMgFXnAROmGIOkkqzZu+z+sVhPtDR8INZeC9Dog3edsyjXKjC3wegmABP8gG/pA9E4QbAbgCCZAA3muFKGiEATgq/xGWY4obS8TC99CFuuopvxIs0FgRr9C49zCyRXsufOE4uMAR7LoP0csfU4wnLgiCXMMxP+uqCcCANCjDN/mAQsgGSUwNACgCejivNIoCHSgwERzDy4IDJxCIOWEPAGiEMkCR8ZjDOGCTO2TBHXSI7IIzfbmsq1quu8mu2eAX+sM6DwiCWNqv/TqBYezEuBmXQkgKSdS4AZikFfAADPAEqqCidyAj7FpAMzKES2wGCTANCXCAQXgB/1bZA67IgBqhmR10R+wCokW6RaT6w9aYKt2jL2NQPA/gAg9oSQ/oAJk0SOgho6VIFA7hheohgIQ4AGtSASeMxoQsMDr5Fu8ho1t5hzSQgGZohiUYn4tcFyD4JvcxBH6Dn4/UPZNkDVw5yv2JKN7xH4GRKVfCALM8y7MEQ96Jmy6yQgI4CF1oHJp0patYgSLAARMggPBbj1sBl3dYAl5AItaJgnGIgXdhgTRwglc0x41jyAfTQzzpy9GrCAVMwYkCvTlxgliBHfWbNBDxooBsTOVbiAM4gc9wGnoQBALAAWc5HgIYTKtwhBiqQ840to9EqqSCzJrDMIgQgCmIsZdKwf+MqBvtWIpwqDq5IJcq9Lu3NMpw8B+R0SzYnM6qAAI+MoBsqJGPrBPnox9bOcrQE4A0EIFgeJYDsJGvVLekEhsRaQD+uZ+RaQDQPL/m9B75gANdwAHq3E+qmMoCAIBmqDw6sUnmk7/GZMjnBJdXIgAAcAAHAACNO0nbGZymAptQEQCxPBT5RApzsEIHOKx/g4tweAf95E8TlbwYuIACGEdD4Ex7mb7QA735sK0OwAG8tFEJ2LibI4WAiYv4FJtTOU6QE6P5XAzFnK1FgofXPFEmBQPDLB42+U6Rwa59CTkBOAAbNcsOwABd2Dici69hiQtxqQYqNAcRiDMgEVPllMT/E7yP/CCj7RIEJj1RJwUAMqCJhMK8+fCTvLEN2zLLNNBAXYAmwPmfWxkXyUgKsbyNuCGXDq0eBziI5+QXcHGCA5DTOeXPUSCDBi2AByiER7BP27gdQioUxErD+KKt/3EIgfOiBvAfU/1MyXDLgxBB0DvUCkCDTOVPIWDQGPDUPEXT24HVj7udYj1WZZDVDhGVDmoqwzEHAKBPSeU4rxGfqdhV6tSB42kENclTOKhFfrG9Yx3X9wOa/dCgxFEANmmLcQEOSfQDJ0hDkdlQBSAAJsDW6aQHMkhRNYEEe9nTy1LV+wHTjwPTtBCbcunQmniXUeEPtuq7xaiAbGBIr+GP/xQDAEzFV9YZBDK4gBiKgwWYg5hDUP5xvxnTlyHKmYJlLiBNgOJ5lmZ4j1bNmmiFAAKQ2FBtC/ncDaa7Vo1Vm6lcBDKQIXPAjoqItss8pn3BmZTtIQqNz2pIgGcxT5lNFmilT4kFEbLYje7ohAqwyJ9lmVFYhAsQ2oMqBOxoiBhFWkKqqqoivHIN05HxEKl1lgMIwZ1FimiN2PQjC/lEARq4mAQgAAoI23VBh0UQhBgYWlA4NwGYjSEM16+MtqrCPWKZiDFFGmcxgAxITm7ZWylJKLH528A1h0I4AAgwXFahgkVYhBgKpuzUQa20CNEDRCDcF5MNmL4RIKSZWuyMG/+OyBDQVYBCCBUNCdylC4AD0FXVTZEXEIQ94FQDUICB+E6tdKnK7JkqzRlQ7FHeRQ4GPYDO1Q4PWQAAcLqs/UwEwIulg4QD8NnmDQ10mMpcACc2qVWKRcqQs12EA0WV7VG5+ADNZdDflQsgPd+ITUZyWd+lGyBegN/4/Qxf+iYDGLtAwjwdbUiOG0GUhSZj/Z2+kc+cAF8AyAavGd05QGACEAFIzBCE0RYBqdcIFo8XoN9xdBHY2bi+1FMvvcWo6lMZC5wZO9cRdhYT9tsQadDyeDWeFQm88BimA4AzmeHPUIQk+KY4mMiBYIg09NEDbYuwBEWryhmC9QJlQKciZtD/BIib0a0GBAY3yGBg5CWJ77gAKv6MKoheFqmA97lNx0xDPcVdpr0fpw1TgUtjAEiAeSUXxTCuBCgKkgBcwPWYAOAF5r3jq5BNd+Hjr+BOpQojQOzTt6UtdcM9bQiReiWASkAOBViKVkWaLIqaxTGAugjcSR4gA0hdTL6KqTSPGMnhcwwjHV4uUe1TpeWVgZ0zbSicCqqEVZaSpSgZBGjk9/1PCbKLwCWJT7rXXaYKxAWmOIgTWGzMBosLHx5l+ym8gZ0xLahCZ35mAyhfDVFlCHgWBzUMFIMMwKUBqMDYbqaKGxDaB+iEQsiAIrMVZUDQ1uhigF1HZDZZVYWLOTA//1Ve5QdI1Hk+P3sG0AoYkscIXEggBwBQl25WBD0OgIK2PHs5UMxbaFHFxajqOJTt0Tlo5nd+AATImkRtZAPA50L4R0bRDFAwgML9Z02OA0gw6LFY6e5ZiyGsXPxYWmgSWC8gBQGI1neuhFxwDA6B5fI4sXz2jWTJaRkABQWw43+evAcghwSQkaLMjk/2ylmcxTBcv6i23Mt1Ap1otQIYWlNwrSNpZLCGBP/I6aVDARkIgKb75ygwqOnFYWOrGR1maAyDAzdJAy8tFKYtY22YAgKIAdBeXDIwBbuABK8GAHLQDEjgZ+RtbRkgBwKogn/+pekVAYM26BZNLKPc4f2F0/9amVTcPSY5U2YBIIAL2IPQBiZIgATNgOX1gozWBml+fm1/7uZFkKFyyoZYMbIeBOSjPFCktE9R7Tg3RSRCcAIHQAM0cN1ffYAACJAFqNdYbq04Dly9kwH8PgnFQWtMzuNcqBI4yQABLzIWlFcDR1CGVEc/qdLgJhZSMASVEAQ08NjjQGqkkG9PbQzIyB7pxm+9Sxz+vmNH4CO2jpMWJXDt7J5hlleMMHBBbsAGBxIRgICXEIQLKDdPRTHF1gkIWOt8zmfN8HCoQAkInuHCXOuCFnCDnpPsAGQM1lGXmlQgJlQZ44YZr3GPBW0C8AgrGafroQHIWG7mzu/8zokpvmP/tUaoYHBrI/PkrpRX1iCjd3xbt7WfRmoGCICJQUCD5N4ilODxtbYYzchp5sYeWwaKByBpKpZNJL8CmImZouzL7lHxHp7zl5Zqj8OPcDiAC9DzDXCSxV1rBcBwnwAF1RZzIS/zB8jYGQYDoTWAxpWRFn2blSbmrowbYt5TqNofqTYUQl3eQUgQCc9yrgCFOAD01B70u8Bv1n7tvgjxCDZpYFIAg9ZMxSxKuEnDuUHKA93fpX3bqa7SA6CAYHcEIFgEPl9cn0CiDDf01kZs+4aKvnAATJb2B6gAXThDWpn1b/FjXF/xLn7OkPv2UeUV0FteR0AQcydbFSWAwFwWT012v7wQ8njPb9gu6hneo4Nik5k5aOOc7H/3Y46zz4Ye1THkhuVFkDIw9yQgW5sFJ50wTOlI9em+75MgB5FW9PiFIRm6gvRQj0TDykk30B1kyMo0+riqKh8KBwNAA5U3dyCw8QJ40JpdEVMwdb2reSHHHpw3AFaPX8ICpvtdD1oR8LfewcT6Ei34knDQgtFxezLSAriXe/CxT7kvbkGoAkWogipwBEew8XJrlkpo7ziQjk7o2ps/iSEnhwd4AIw/0YAAACH5BAkIAFYALA4ABwCmALsAAAj/AK0IHEiwoMGDCBMqXCiwicOHTXAxnEixosWLGDNqVNgk0KePH5EgGTMGySc6gQI1AbexpcuXMGMWDESHDkiRn0Ll2LEjR6iQn4wIlUm0qNGiTWp+pIPEJxKdNYL05Mkzx84jML4c3cq1K0JwSW2GGruz7A4uHrhEDRKES5CoNXbwcKHVq927McPa3MmzBhe3fj14MJb2r2EPE2r04JHCCN7HkC0mBbmzRlS0h41pJiyYy4QJaRXz4MHgWeTTqAuCU/qpaWC0mzd36KAZ8WdPoCf04DAaUerfkadN1mk18GYMGGTTrn3b02C1lhkAn24XLFOfZHcEOR679mxjyRFz/6n9N0iIQNTTGw1kBGT2y4PB1+ZsbHYHwctjewjCo676/y7h0t5HOu0QlWAIeoBccuEJBppg4CVHXg08oAfghRrRtJeBQcTH2XfIdefBfR5uZlsNr2CoIkY0jbFTh5qFZ193JCL4F2KDOZjYCVCs6ONE4Hj0YnwSjpigfTXaaFtan03AQQs/RqmQgEMaY4KJnCE22wT3TWBYk5h92cMINkhppkGlDJnfYN+NmNgEnnDgyZy7ccDBCXJ6UkOTJ0Rw5p8D8XDgbCZciWSOiPVwwgorhKCBBk+MMEILLUjSwhMqhBACmYD++UUPHeJ3pWYzGuNZnCdowAAUiFhggS++MP8DwqwgMGMBFL6w0umZvvDQ1mCFJockYZ7VkOoIuH6hbASy0kqrrLruKiUDB2pWqAlIkvjZCSpAAYUFyz4jrrPklintj7jYUq2V2GbrpicnMGALFDCA+0UE95JLbrTnqhiIoGgteKiRcHKgqi3zunqvL8zqSyu//V7oC6jjLVhoth3AuWgLCNuisLgNO8yMuREDyAoUoA62IAbtZtxknCus6q2r4EZgcwQik1yyeqyMkHKEyNln5GwwP+GtLfVaYDMzTDe7784A4sIAqDEu+KGDHcC8KtIw1MtwyA7rDPV0UlPdgdWy4Zc1tyNwnfQXDM/wDNP6ij32b/8aF6J+CDr/GYK8CMMwLwytQiEppSMgEqu4pt1NXQk/M0hjl/Cq0DYJLrjwCgmbj8CAqhpo2i2siDwxg+PT+RwqlrXh5+QJbXfMOQMMkJC0LyUgAoXHX9wqCeqp7xlfiVkiBi/ggpNAAsKuIiLJEzK32vsIjQOfmiS4IeokB3t+qXEKLnTMKs2Gt6BCC7AqbMETdlv/GCsnfCYYBwzUCwMDJ8xZ8N+vBG5vBM+A1TPkBkBfLIwZEnFfakKAGy54gnYwcEHXXhGCPJ3gbx2j2b1sVqu5Mc5eIIiGAlMDBdxMIARdUMIXhGKE+1WQAyFIQf/cpjAAzg0Ec2OGssDFDIiN8DHPUAFu/1KgBLp8IXPho52qujBDpFngbcyiW62YEQFwPcOHP7zLM56Am7lkJYLhg8HsXkFGFyjPf/9zWq3wxTAQZPE0iOBAYo6gwhWGkYy0O0IX9tjEeikrX7OylQZ7+EbIMEOOFHIBuJ5oO1tw7gh63CMTX9E1KNLqGd961avcWMjHcDEx9VOY4Bz5CgZEkoyvkGAla9YsCyDNBZ9DBCc7eRcLhOAzPODavSLYBdpJ8hVMrGTX7NW03j2RcO2jJVe4WAP6UVJZMCglJPcYySIGrmvLoiIVbVaKWSrzLiWwUwpoR8kIlnKcp+xC5mj4x6U1jZDffEymVOVLSTJgE5tgADD3qf/Kty3rZlFkSTzxUgJ9/jKVwGQAEye5xzCu0pj/Y9ZA34cIzqFycyTgo0IX2gW3va2itqtk9SbqFXD4gpQYvWgpycjHGdJLYb6gmatgMFKScqUWz7AFSxmqhD2aUqEKLaPg/Iivdj4jmTYtCjN254KWchSSejyCQtc5r38ClBlJtQtOoWBR5W0OmL2knViDirBvwQ2gR83qVqZRi2iwIgII05xKmxpWseoxfAkzoDvTqlajsAIXuAiEKy2qT85NspS0QycDrJmwbDKDr32VyRUBG4FoqvSy9UyBZscJOMUxrGlYjOxGWIGIJpSidwjzKirPiEd7bvZRtCNBJpXmTdH/toQVkmAALiKwu8uy9Ksk0GcpN7FZzX7uUSOwHc5s+xJM4umxLUiuRVtLRuWplnbETUEIbBEIKiLihsx1STS2eMsOtGAGQoCedYXbP85Z15HKw+4mfBFeothAEgzkkgmKgN4WxHalZJSddUlwuXuSoKb11Ug07ps/BQEAADgYwgzMtwmvFrZru8sw0hDRtVbNAKkJZggr7rsCT3TABAdI8QFMwARrvEAHT4iUV5dHMw7PbIMzKEEJQhjii9hgwivwwQQwAIADDEACEjgABgZBBT0MIcZjlW3zEKE76QWwBDk+qiKoAA5wsMKt0QizmHtsBVbM4Ak+IJQJMIBkCSwh/8kA2AAVvAGGS3lOrB6rsQVa5SosP0MSRy1DDFYghPOiwxuI9oYe9OCN+tbix4zCwZqJXOQ2uxnJBXgBo18Q3Tv3r8ZUpvKefTFASVjDGzeoBA6KsAEmMOEFsKYCGG6gB+aOWBJBPjGRj3GMAxT5AG9u8xIIUAYwKFoIyUWlLfgcakmImmFCkAQ6fvCNGJChAKpQxQYogAYKbMARjqi1aK0hhFyb4MEP5nUkeB1sYQNAFU12xiiQPWA+7znUMlWBJGzwgx8sggwx2IDAB04BVQwitANlBpDTvOYi81rdkYjDMYItAl2IYAkHKAAT0OEMPbwA2dJtVeHw7SpbhGAG6P/gxA+qAPAieHsD2ja4Dl4ghaSyYhRPMDeRD5DkY0Ti55FYAtArIIIoREEEFRi2DubsDHQMAeTjCzWrqJy7EKjAGinnhCLI0O1tCzzbOihDGYqggyEM9Mct0PmDU7zuOPw82EsQegX8EAUnZIAFIoizIvTgjB9I4cnJFXmok4YI/Jku60SohCpcvgE0wFwVM6cCDhyAA1W8gJbeWLiufw1snwM97kT/uQLmXncn4P0AG1DEN5yh8hvIGAYxJbkFRnCCE0hCCj/gBCeIEAMgDHzgBh+COAjwYAzggAI6yCIrSoBmhhNZ6EIH+s/dHnEFWD8S1k+A0Z1wdAAMQhFg0IP/7vWgiEjVqwR6JkEIFjWDb+SeE2DoPQVeDnOYl0EV6H7Ag/d7eev9+AkngAMnVmRxF3ciIAI/VwEKAAoK4HYMmAA/BwoJkABr4Ad2twQOUAbgBwa5R21D0AKehTtUBgWbsH4tgHu6xwnfsAhAMH/0twGDwASDgG4AoH8P5gAb0H9jwwpDoHYqVoCgJ3rW14BxAAoBoADYFwkJ4AcZkAFO4AQiQGzg536654GSQGrPkDuzt34nl3VVCAQt6IIvF4P492APcIZneIOQNzaDIGk7Z2kHWAFyKIcRBwqg4HZDGAB4OHp+sAZOyAIsAABl8AJgQIUp+A1UIDdZqDuhEwJQ/2AN7/eFYbht3AZzOqAKxFeDD2AAcXCGx/BgOJB8JaMIBUBpcedmSzCHSUeHRQgKBnCHdhgAEAiLAVABa+CHRvduhKgHkTh+o8A4hecoLWANhqh7K6gKLthtaIAGqlAGg5CJBnCGnIiGn+gAgxAxL7ABmQhsqLgECgB6Cmh9dmiHnUCOkACBEVeEAbAGhXCLR5dphdiL4zdAJTACjwJo4peCKlcFF6AKF3AByWh/ZYiGBhCNaJiGEBAx4hADa3eASCeH1geRCxgHQ7iA5dgJAaCHnGiHhVAITWh0gSgON1CMKfgD6IBekbJj+aiPvNePYjh/2XZ/AEAABVmTB5mGBP8gitKyCA7wYKiYdEMYCQoYjrA4jnaoAGFQjqBgCnaYAE2YAUanCxKgCvFYhT+waN8ABlQgYaOwaPqoe/F3bS4IkAAJc46wAQ9WkwV5k2moCueiCDFAfDwHhEDHgBmZkUYJCuWYkQhgCn75lwHgkU/oBLqgCwUwBGAwa0RQBVWgCEPwmC8ga+jAi1/5A0BABgRQABAAAfO3mQVQcDqABmmplmypfwVwLmVABg8mlEkHjhmZALI4gUa5gAuYkX/pl0bokUYXBXQ3bA5QAAXQk5mJBjrwai/ABIowkl9ZbblAAJn5mZu5bQY3CAWgiWppkAcJABm4K7yXCwAwcXMolKn/qACwmQCFMIEKwJR2WZB6eZum0AkY2ZHaV3fvcGQ5qQj3BwEO4AD9WAauJg4iSZk/sHXNWQkUcAGDIHOv9ncFQJPSaJNsSWy7AgSV8GCp6Ad+sIoVUJ59OAcdeZ4VoJedYACm8IruCZ+xuYQYenRLEGdDIAXegA5UUAYbAJycCQHAmXpZmQS5kAtnWAmVAJyayZkUAAFpeYc1GQfYiYYAgAa78m/fuQQHiKEbKodLmAFzIABzsAbdUA0ZwI5rEAAn6pedYH2vaaUZugQGMJMIygRUIAVScAPioAr6WWQziaNmKI2bSABBqpnndgwPUIRKWpBx0ImFyokFSQGdImjE/xd0RccCRod0FNiE8CAAZyAAUwAPUyAAlroGS3mi8LmUZaoAGVmlkfAAfCqkBbABZQdrL6AITCAOCXoBBHAMS0oA/Sl21bmJg3qdSiqoSuoAigAoQ1ChBCgCLGB67yCpGZCp8FCpU5ABnEoN1CoACkCit9kJCCCmuFmOkICXa6oKxjmnMeAAmXkBi1CcN3Bo6IB/txqDsMoEDFmD1zmNhIqEcfBgbvknVZCJEoCsgKgLT4ihlPqsz+qs8FCtfrCUD0CmfAmfKHqXR3it2Oam6IAOUqAIjrAI1kYA14YGgyAOtMqWixCDZeAIDPmgNpmkSPhzvnYBgAIEBMBz/wqINv/LfWuQpc/6DtCaqQJArdQwBdxKph0ZAKGKkXc5gQlwrWvqABQwiOGnB2DwAmXAsZkodAZpCme4CI4AoHBZg4OqpLzKiUWIrwZwDBsAKGWIZLrwDk8IiFEwBXPgrALwrJg6BT5LrWcQon8JCggQBhl5kUo7gYUQBtcapM6ZmTGgCo5AcxgLBoqgA0YKqA2rtZVQBURwAzcABiN7qIXaiq/4inf4c+8Ws985AANQmDz7DroAqRlgt5VqsHU7rdSaAde6iUa4ABNotCk6uNeqClJABYqgCOJgtcMJtejwAru6lg9QCUxABJl7AxRAAGf4ua7oioc6joX6ADD7J2XgnRL/0Lpuu7rvQJ+V+rOcOgXvsKk/Sw3KIAAh2glMKYvnCZtIO7hLawCVEHYiebFyqgoNSgC/2W3EZ6sGWQmKkLlEwLlgW6hFKbbqiaQGcJp/ogo+KgFPqAtGJ7uaOrvUwKl3i77LwA3LsAYIAJ8okABhsADVALgqDLivqbRr+mCVgKCOC7kbW6HA9rklOsHPewMLHJeBupR52YpH2YAPQMFmogeL8J0S4LamFwWvC7sJC7QfDMK0Sw0ZkADyawoBEAaFwMJhEAZ/K6YxTLHI2KDaeQGOAH7okJWKcAH0SqKbmGkvoLk3EAO54MB2WIQJAIu4eYfBSgVnEn9O/A5ua3RT/4zFVnzFQYu+7isAhcCtGJkAfzvGZMyXSnutaAAGwSuDaBCcDgABiyAOCywOFYqtJQoBrjq11XkMFEmbFKmkfcyAEWcAEmomCwkAcVABr+u2rsu+QKsG7tvIQKsMyqAGYXqbGYnJ2xoAl7zCR0gAxDm8byoFL+AItOqcwcnLZ+iXBnABsqYHyduTFIm04oiERUmEa+qkUiKyMRCovrypiRwFsUutyoDP+Vytx5zPW5ytX7wAY/zCfDnGR/hgfHoBMycF6DC12kwAUhoJ0QjOF0BzeoDN5qyXEkubLdvHhep9ZgLABQDL7eisiNyEc5ClVozM+9y+1KAG3MANAsDF7//5nioMzWHwAWEAmwGAAggwgbhcpD15p6rgxthMAQCwllprABRABRdLBcr7ndaHtAEwjhtptHeof+4cJXJMAAkorbFbvlHAqWeAz+6LzNXqwcjMDXNAyRgZzR/QwmT8t+iZaVAdmgGcmeL6As+Y1Fpbx5H5plSQsuR4l3ZoCq24gIJ8DIoaJVVQnQCQik6ZpSCMyB1MrWrA0u8Lwv3MDWdQCJ2AAijwnj6NyXONAJf8AQnwbltGBVCtscZLfEvguQVJANrmamXwykYosXYoumaqAJ3QiUrsI0CAbqAXmLS7s5o6BS+91txgxcScz9xACNyQAZM82qJd2s6M2mNcDX7/kHcAYKCDUAXrKrWKQJ0PkI5x8JdMDQH+iYmBWoT324DjaKZ2GAnaKSVN/IkHIAKkWgjVUMV1a7eczdKNvM/UENPw4Ac9DbE+vQCoDc1/+7ctnAAGYK4IXbHrig43IMeBKrolKsAHSgCfC9wp2oARXKajmt8/8gKqCWciwOAJUA3d0L7oO7tl7b7PPcwIns/LIAB+kJShra3cPeGYvACqnZNDoM3GCgAFQJxMIJpGPI7hrZ+wbJdJC5tEHItmKtHDrSLi4J1LMAD9fXQqPAcNYMWMjM/cgMzRnePUOsJa7Ac6va3c7cw4HQYtzNRDANVMcH8xUAnQWAHYZ32Ceq4O/3AMha3Jf2yUnfCthv4ADqCTKtLE7ZasvGmelnrWav6zMZ3M+uzIyjDd1OAEQV4N1aDC1aDaNw3NX1wNFeDk/RmZs6YIFEqREv2Kn+vkaFAJD7DogYuXRnuRWK2ktv0jFfpmLDAAcOsHCRDXDZDZBu7Sn+7mLK0GxJzgMU0N7zAH3dANH7AGFPgBdS7hOf0B4ZyJTlsGb8rh8Wyi6hkHuNrrv4609i6xECsDMlCOhUrNPjIIqhkJAJusTUjnY9wNZ6DZPV7tnG7FMb3tIIy3axDXcn3kqG4Ai1AGvY5un6kD4lAAm4it40gAMUDvGt3T2woJEQufpIqR5Yiq3asicv88cUVXd04IlRmg03r+swbO0m3e8w3f3G5O1pia0ikt1wvAwtWgAATwfaCsxhZah5/qisNZCa8IsaGNAN8Ksd/6rQGg8ncIAOLgIxVKdKSHyE6AyBO/wgvQDUKv2dVu4C8t7Qqfz9N6Bmfw7V1K49++6gqgeIPgn8g5pwVgAFLftwQAARvg6yIKnzQA4RkJCV7/rZPc26W7ImTwAHJ4i07Is8s9BzpdDdF+1j4/6gpPzAJQ95q9DO6b2WfQAHjfALL/7WtQARegjaM8CISYvNVZhEwJzpm5AQ7w62RKAwiQ9B0JCWWckZOs8tHY2BgCBHs8dxng+WkPwltaDW0P+2////N1j9nJrPo/Tw1ljffmn/cNsPQXUAZGmmK4GnYjXahdzJTDOfxxAJ8yoPwsvAZJDxABIEEKgCBBgE6g4jwoYMXhQ4gRJU6kWNGiFVUAIonIMAfeR5DwBFCDN6dbt2pzGjRQpowbN1ItZSqjRnOmMjU3ubWkllPNGaAnG3RjBKCAKlUQCAA40KGIDwzHQHXqZMoqgQIUCDyY2kkGggVhCxUKA3bBWIIIQT2AcNHtW7gSLwCokOGdgJAgBZyh1u3MnJRnZMKE2XLnzJw2E8vUdtglTpw/9xKtUGDDBlVFIPh4ssIEAKlUQZnCqpWr104IVCMI01pgmIEDq5qK4yDu/23cFC88qODEyd1370IKGEntzBTkiV9qa+zy5cyaMhcbJuT48U9qxuf4IUChAIQiRVaseKLCBw4AcWRQ7WSUgoM4UwuGDRN2QX1IYFUHQNgpDoEychMQNyJiAEAE4fLSi6+99ppCDW4IYU4bl0ix0LqbdOJGGwsNI0UN4874aTsCVKFAvBVUeGLFJ1oYJIYH4pCxtK3i6CSA+lqrZo0wCllAtdhAWQ8UAwCgYEAk3xKHjGP8yECkj4QTjjji+ApKsA0LGyzCw2CKybnnNHyJG+PUMDMDABzwYbwVW3BTCEkkEaIYHwCIEasL4AOFv9bqq6Y1+vaDRIb1EgJggyQTrf+oilx4e1KkKaAkbooqQ2xAMFJ2Imw5Qqp7KdNMCes0TOeqcwkovJYAoAMfVHCzBSGgkARWSWYoQZIVCDjmv6xqDICs+1JagywdF+BPrU4UAAAHRZuNCIhGKwiuQZFGorLKS89oQDnnSGFOQuce09RCTx0Lk8wpRFjVEw5CkDVOKOIdQQV66S0CtEho5Iq/BVBaoJpqCkkAWLESIGjPJRwI0FlnF4n2N0qzI+4jaooToBuTutl2zE+/bYwwwzStTkJTNd1JAF0kMKEDTzzhQYMW4hyhsxM4aNnmCUw4IBIF9J2KtX7Fao0sgHcsBCFCIwFAB4adhTGOCqJwQiQGrSX/jhpKBRhqJQifg6nTb001Uw1vPZVw3OfgkQCDDibggIMTQtDg3RZUWOGEFFs0D4MDFKjA505QUK3PtNZYI6UGBBgrAELjAGCQppudi7c1MpgiA8snrRbE7M7Y69IsB/N2wpf68gvMTceMSWWW3447BQ1GkPVVWuMUYgUA0uu5ADT07CQ/FARfDZJC1pijoznWWEA2x4+MPFEDeSt+jowvxivr7GoyEzJSDSO9pTNOIruxUdGmZt234Q5hfVffjVMSRBCJc4WoFNj9vV2pWm1/HKlPifqz8AcUB3De85BUgPTUhXomqcZJunG5qy1GMC4hxJfCxBwM2QRsEYpJYaaw/6r0uS5u7opfnGLmps54AjSguB8B4oMj/eyvPij5nwCqUbADNMSAA3oBGWLkpDlMIWMas1Z2uuS1MelEG4QAX5hyMqEKSsdzy4JbzU5Qs/XJDgojmNkTNKCBEEyAb/EBRWn0JDyzmCUsN/yX/+4ThgAk7AU7FJAiyKCRulCqI9cSAMeyMxPV4aQnFYqJtiIUGWpsCjKR+SC7rvhI9Y2ABFtk0Qjc1IEVUoUAldCKjQQXFtXYR0c7+oDhejSWBCzBBEyjI24c5qjfXK0lxeFJxaYQvq5lKjJq0IKFMqWGbvBSl9HR5djMdJwD4MAHIryi3EhQwvfZrk756wSNbFSQsv+o0T5/CsOOBjYQBKzBDwBYWCvj8sreiGQZ2UPOIJXxF5UAUxlfMl0DSNGpe3JjKLw8THSkY0wQSUCZzIzbJmwhv2jG6QmYDE01s6IR/uRHjQD7VwMbOAdigUUATjCBOXHjiFzEQQTqJARJqOec7HRjAZc6nRbCV42VnEELG3znxpZIKp+MbSVTWELrHnlFDqRgkvGjpAZUcILPxEeTEEADABTwmvq80V8NvFjylBeWbhRiCQX06FsWoRFdjIRM8DBeYtQgxDnw8icisg9LtKWF7/mFl81BTIh+sq0zDGCgQIVbuxgguyeE4JEq4ADfFGAKTRZgLjwbmB8Ox8aUXCz/W1oDSgMWkIAK2KarcIERgooDjwwUQiVWMskZnvMTlYYFQmoAHXPemdZefgwxImLtpX7CAhMsM4Rvk5slAxsCFUChBXVaAn9Q4FCt7AloH2DjGgVQWpcsgxsvLUQFHrdZtyhCV0+a2F2yRpxu7AWlfbEPlpSxkjGZTqZcekxLzqqtbR2TBaxKX83alQIGxGuLWhwBJiPBn4TgiQA/a01qdSSUYLoEQiu5bCEAwATsXuSrS5jacPhouZo8x3Qr1cJztLVaGvLTa9LxS3xz0gARqMl1IVgxf6FAghEw4AQYoEs2A0AjUEg0qlhVida2RRM1LONiACvEAVgZYYoAAQBL/9AFPIIDEoldL8OC1JhlTRsmEXnOgTn5mhOPOTacnIEFKlbf+q64ib+OYBOCzdmSFbCa3V1gwKkZ3L/6dRKgdO2uVe7GGpbQFiRTJAka8UOFq1WxKJPJw1XG1Jd8UrEPV+imPMkz13pSMdyyjF19XTHOPGCMAYTaD/tzqJzjIBAcrRFgDmSJPm1Z2YBZ98iBhsigj5FOvFiNJH3sp3EulmcMIRqQG2qOcfDKNRDRhKOablmzJzABD2CAb6EOqxP8QDiHFmBfobxhxho4FCshehnaQkAAKqAuyNEaIkRgkh8ShGhJSZcaMcmeXRHjXtSRb4nLyJBxuuFPNK3s2dD+NP8GBqCLZQj5Hb75yLVDeeMCaLsCvzKLAy1ejRC5xNj3yU8AEnCoWdMaRtL6iMWII+/oXJomg8ypP18CNgnRta6emwk8dDEAaUv7AAfPgADU0CkJHCCsZOJRKHdXAANUoAKFMItFT/LtBnDKONwMpeEkUCIfDGFAtUjUVyvQ5OF8JOHcWKc/L332RHptZDc11U16wrmW/DJC66QSNVbSjZlyYwA7D6sAio6AQhw9Do5t7r8c2C+ARcgLjQlfald6vI/o4gAmMEERbmODF8yAFUmqApN0cZeJiSSRCUf022vyx5DB5GMYxGD3bLJyUbnEC17Q5TuFogbmrHMZTmjyFH7/BBaIFyASCVBJW+8evsSdQUKL34ndv00luoNkACZA1EVmpQINIMIG0HuABPJSHEII+WrZk4kRO3X+6mhj8eVaZwZpojXcr55CiBHf7LkReSeA1z7Bj0QFGqitylqJS6GSCdEGfuuciRkJ0iM9eHACCXAAJkAHiWCFFliB9NGAL9i8JHEYqJES0aOGdbIwYSMT6hgTkvmYJEovAVCVKFiCA3AqnqAgLPuTajgD5kix3BkAeKgYbjq6JXCsk8AqVquyZSAZMumciqGYl0i4hMOLyDsACNABa3AIGxCCE2i2drEAG8CFRAECH1IAu9ALKqmWXJMl6UKd9FsiDmE/eRMA/72CgNzJHREQAJvgGDK5GDx7iQ8CgL4TACEKi+D7wTV4ujUSiqHYiw0hhXqrmOIowlFpjERSBiFbBsnDgRUQgidotpYJAVuwgAgohUAIBFwYRVwAB9x4Go6osJFQkEbMjnUaGZhjO9ThGAFYFTHaOwl4B+myQ+bwt5NIpNwzGW54rhtKAKyohCVYg895uhrUlgYRgNa7tLJziW+JkJi7qSxxw5W5Gd4iAQuwAFuwBRj4xnH8glBkBQ10C0cgA6jhCCd0MjIEQdIDQbIrF2u0Q7IbE+laBniYPAwAOwHYxeqoiW8xtgb6OQMUARdcMrwADDgiAAgQPv/bGo0JLx8jwP9vYcK0s8bzY47FW7/cE4Cm0LR2CQEGgAGUDEcYIAFbYEkXQMkvAEUbYAUutAh0EoEKm5opsRjxm0ZNUYbws8PyKR9+/DzpWj6PJJ/Z04aKoaErEwACcAAHAADv88M/CT6oKYRfGwqLoxJuWMolssdrjLnZQ79e1AW2mQBHMslXsAUXeIUj6AIGmMtXYIAjUAf86oIugAEjAMWapIhFcCEniRIo20EQdEVX3EeaYEKBfDn0I4QdnD3JnEzKXDxSIMZq6BpuEAGcXAYDnLowODoF6JdL6Ylu+AAhJA5CmExs7Ej1mxCQVL/FW4bpaxt2CQE0OwIGwMsU4AEeCIEUCM7/3hROHuAAHjiCcYwAUQRMGAEFjhC9BGzC4kDMlmi/IszH6pAuNSSEAXCC5atM8CSFxgsmFbwWf1sA0fyVvVinD1AAAzCFAKiGkZDNpQSb9RvL1VzK+qSGyfMAtWwXDWCA3vRN30yB9SHOI3hJW4CCATVJGIiAdJQINIiBGKiEpcgdAziGSDiAJVgCzsTJXBMyetxFE+yU+0w4+mTN8MQa8fGUoGsyahhIlQq+pxrES0ETClAFpCuEDPBM1ixANfSC1VzN19xOyGQbLpiAGjDO4CTQAgXO4GQAvXSBUmiCh/gCC2AA4ByBGYCLYigGRwCCRQiPIriAFdCB96iECjDM/10Ek1FJw4/5zo+0TyBdPPDJTA65vz6STEicA2OMuD3ppvACABTxgQOIgh30SD4NG5IhUrAsQEIQyQ5gmRpYUgLtTSg90LlkABJ4SVA0RYcIBAsogVtpGgDIvyK8TiN809WLueUbS/IhSyGtqZe7z7Jsjm740wKIj25qgDkggPHwgQ44OHiQrkd1VbAJSyIltgnZPbah1LfhgRTYBANdH2uVmy9igC9K0L78SwMqAD8IyKBszKPsSBOtT2S9x+8sKfFJL3jgknoTgL+JuEgAhQRoo8nrAAyQAF1AVc9UVzUMWJiLxdxzAgAwgWergR5w0uCE0uEEzt6CAg3wTSWAgf9S8NamiYFIEFd525IIUVbXPEEjtMYlksxl4JqzYYEBiFF+NEx5xYpdzTEaAIs5wEnhEKLD3MFyWTtlVT9kdVW0RFhP6IGF9U28ZIBN+CINaFhpHQELwIVnsAAX8M0uMIJSfJ4CAMN5BMFhyxLX9JhGdUz6ZLwG6LDGeEEBCL+puRoRgNn4oAG4DaVVZFMonIslKNaEG5Wx40hl/Vh4wAChLdoC1c2kVVrD5VRf2D4rKIEWCE4XMMfIyVplJMOREJHU4xhklU22awxFpT0RebllyJ1ipQZ/pYa2jbj4kAG4FZxuCp/v0iyMuJepYcKA3Nuz2UcJcUMM8IAgIFqGHVD/aoUdw+0tC3iIGWiBE+CBLviCpiGASHgUvVhEEoXFs/nasKzVpSyTJRwA70tCvMgO7og4A8ixcgscBJDP8RMAHXqIDSgAB7hbiRlRxmRMksA5LlBY35XWAS3QTUhaUl2fpR2BZzDeJ+ABBhhgZ6kEUFgDSVGJxMmOZEPDcjXRmwqbziVBCVkGVeHQA+hgChOAto1IA/gd+giLOeCLJoSH9Y0I7wCAcL0a3ZvfFB4AY7jfHjBOJ/VNa/0rELACG2gBDWgmBLYCVpiVEmAYF+o5AegIoZAYvqBHYWTVxYOiRJzML6mOWoy4SiiASrDQA3CCFBNhEibN6WxCXQC0ipAz/7oo1oBUpxhOOHjAOWNQ0vzFYfXZBBU4YoeQhKNqF0mgI+fFHJGgHoy5licWyvLxlo89PwsZ25b4TAJAAzSggAvg4ql0QAcQ31+xNBI14xW2SQRKp+FgxI9wAjlOUoU14PK4VhXoUuO9GxWYwucpAxdaUyfrCBsNjLfDXEfkGAs2y6WMCSx2gEVIgkWoZPc9kIQRXwWAKZkyW30UgHdA47fQgQuwUAojQ8K0uVDbOwwwBhUIhIdg3LjJY4iwhtv54+cZAuedXHiglCozic+RqStLvw2q3vN7OW9hvrOBSqQ4ZktmioQR4QBYKbFdQjJ5h0+OCzkjgLuFklI+uIDEi/8DUAWJEIIQWBGJqBUDeoEkxospAQwBDB/K4icSfY6y6Vn9rM9MoYbuWASAdt+pXOZdTYCA7KXHPBldcAAqSJL2RaBsfgdinRgAmIgZgBMhwC5ajgMG1osMSJyTmAPiiC+NS0GxpdOPfFRFPBRVOOYKlUqmcICIHL4GyDBOITsQhAdycpZMXopclJIcooghmAFX7qp1FClDKznPsR6gAMDtScHthKLO5VMyAQA0QApK5mILTZOIVADRio6X8IKXGyvDfh4IcAACiMqFVjcr0C6oUUU+yhi0i2CPDcuABU9ILBGkQANkXuxKqOThmwPjGL3z0z1qkIDq4+wIc4QYSYD/R8k1qlmgJ/4jf6IgWBSVweZTZTiUQRgE1o4BLs7sSojIOBCtmCpBtBYAFrgA3UayRXgABVgDSjk0iSHkkaAJjrlcvr3GFJ3i5T7sQTARCrXQLm5s4/Exs/YUIXMC2O3uroKR8I7H7GlIqYbsFAwVzPXI/KzMlzAA+O7qSt5iLuZiQYQpMxm9ehwrApgj/+4qH6qLkkM0a/kLgNkWLdDMMTFtjylA8GxwNBgEHRiEmNbiPKkAw1k1FNZHIYMHAoCwDjcnO3oAnAyJ7GGQOUBN2+oYngXJgZVTwjYAVRiEMnCEGY/IsZ6eBoHi8AvBB/txc3KEBPrt9NUabgqLsoWQ/2QVbHuGoso82xcfBEdIAjT4johUrKy17pVQwHLl8nLycgOasMrRC8r1uwRAgE9iCcOY4tdk7yle8MnkBgdv7jIYBO+AAEu380gohGroubLG8HFVax/3cwMCAvBm4ASpFsr9kUPPb7pb5KQET8nkhkigAB0ogymv5Au49EpWgASAqeSrXS6JVLXWOlH/8zgI8JIruauZDDWy3OjyjXeI0RRtb8okha2CcXFw7gugUFx3AL9ZKc9JzLMhO4Pt82JnGABfgwQpQ0YEimpYDXCXifYDwXPNalinvSV4cUcQBzGd0Pm+ZqUrhEtpgB1hwtoG9XN/nnRfd1RHNGBagOBBgP+yja4lRNGwvHfWvPYyEIc492rovuYlqIB7bYA1iEoRkMdU5fFQT/hmcYRKgJrKebLx65yHD6UFMC2caD5VVdRvgXVt2Kp953ggSAIKrdBdT4BCXwAAyBPvY0Kye4ceZ3mGWQR2TAAGXtsiqhKgmIPfAwuWcMUSdfJ71wYJuICg5/ck2PZr9o4HiChQ+I5Trd19RHipb5bAhBroBe4y3Po/UY2VyJ75ZfRkrUxSEAEKOPs4Z+1K9o7xTYgHmMomk/uAdAIAqXu7D6lC+A1Duxaq4cGyMPMndvoUN0IWZ80ogADEV4VJXnul4Bn7iYSpQXm6o/yVt/wB+arw/o3vs5j/vWajUGoAxlzMl7PgRZ9MQnCCApBycRB61V98CKgEp+L1+x470lvitbb9DXwAD9V9eET1BHyu+vB6oJBHKK5HvWX0pVRh5c92IBBTXPcO5+V1q5d7RtyOLsd+JIGRSFgDnQQIeAIFEBwoAJ6AOYUSIECw4Ay1iNyoLavIbRm3jBcJEdKmzQtIL9oEEFBVRpw4R46AJLlQ6QKaAgUegFKgoJCAZdQE7JyzpgIBcVaGEi1q9CjSpEqXMm16dNEDBWsyOHmHkOBOggLObO1WbQHYBQ0aqMlYUedFsxk7ehQZcllJHShVOmr58oJMAJEUgCo0h2LCatUKAS3j9DDixIqV/0KVmuFdVYEIs2YV8HVBQ7A6z1pcW5Ejx7ba2C4DYHJuSiB4L1CAAIHAMVCgAoRpQG2O4AWFAhBgsvg38OBHY0T1UxWy1ataISbE3dChbYpnKV7EyA20R7YeS59GmRovhdYQKtGcDWmN18uQgPoW7v69UyLkFVAVmByhQZ5au4UVy9kiIdVhFJpHBX7E3UlzAaHKBRCE11oBBMShACSQLHBZGAgEwJth8Hn4YVGKkBFHBWs4Ac+JBlEzmVYEeQVWNw38Z11no9noRUcdecENAGgkmNoi4IXnmoQTdmLhAmFkGABQL4D4pIcixiGCCMfddxV+kiV04YUyorXZWZ5dx2vNaKARskwkFJxUBUosLRIDGmg0GGEccYDSSScbQtJQAEs4ACWg7ilCQCRTPYaiVQdlMEWLBOEWRm7VQETNRDktY+kyWnCjhRYWZcrpMgosUoUipQIZwyKLyBnDTHbKJgMkFAYAiQEFBPpkQAAh+QQJCABoACwOAAkAjwC5AAAI/wDRCBxIsKDBgwgTKlzYJBCdhw8dBmoybaHFixgzatzI0WITiJ8+IckxBknJTxEDqZSzraPLlzBjZmzyMSSSkGNy7NiRA4kRkSE/GTFyKtC2ljKTKl1qUQ7EhyaRSM1RI0iNnVhz6OSpBEZRpmDDKnVIJ+hIklprcPHggctat0HiXuXBI4WLU2Lz6s1I1sjZrTuDuPVgzBjbDh3WephglW4KWyD2Sp5M8GPZsyWxVuViDAOGwmwnDOYyoQcHuhxsUV6tVw7ZTzl3ah2zQ3DbwsYQi54genGP379TsB7OdJtTv1p3VLWqljDu3CZ0T/A0gTAX6j1qCCfOHaZrIyWjjv9p7vy5c88Y2vYG3bYGj2vd428EQeenyJxpFZtnj3hwecPtcQCffAQuJMdQZcW2HFvlfeaceokRhl5hpJXGQx0FZojQdwoqpth/7HmQGGLP4UaaJxwwEJmGLA7klE5qFfbZhyUCeBgXuhHGIG89aDBgiy3KoURtnHVmJGKHMYjYkku2xWCFPaTwhRxAtrjNFzyQZ2RhTLrVn1triYZjByKydR0HMFBZJYtYblbeg+rxJuecnqDIwZ3UTceBBnitqaEFIbhJYgeG4ZYYb3feGUIIGqjAABSQIgLFEyqEMAIUNvipYR0pECmiZ2Qy2QGiJ1R6qQWoflEHCHjgAQIIddj/8UUEK2pKIAi2VEWYCSZgIOqhKDYKRQlfFDurqyAEYsOrr7Zqa4FfpKCrMb1+ltuSpEXJgC2IGFtsHcgyKy4eaj7bnQUc9LBWZ9GJOkEHnvCgwSu2QGHBNd6GKy6zmZp7LgfNcfnrqByswIALttRrwawRzLrvvv36S9wIv0lo7WFLTsBBCAcnbK+3Eej7sMTE2cBAD0FYnN6vGq8wL722wJAqwyE//CpSJFMGAgM8pNyZg0zyhmIIKoxAQsK2LBxBw0uLzCzOOUsGAgw8iPazoV9qzPErr7iAcNI0Lx2yyOVGvZfJPUsIGmj9ae0o0goby3SrrgaCR8hlm50XHoFW//cmxqN6UioDMJNwNKqItGDHCE9cemwEFtiBod57Yamu2riJGPieDHTBtS1cc80AAxo8EcIKjEJRrAVPaNAC5Xuhyxtb1l67JAcnbB06A1tDakEEdSBitOpfSIoIHrDrJfuYhAqsm+AaEC46AyRAgQgiJWQvq/FLL14C1MkzVQIHvOFIGphxTjA414ZHasEIKsQ/QgnBK22HCiWEnxe6KKsfvQYh6AGd9tQ1pMkMVXaAgh3oh4c6oEppX4iY/sCiAurwoHNegwEDOFCnoREOYQfEl9hcVYcSokqEyJugWGBwpy4coSsugIEGQ3CnE6Tgcx47odhCVsI6fOEa97pGBP8kqMKlwKALMFDCUGBwBBi8ogukk14BEyaza6BwVXf7wgPxlcIiMgUPMuxKEpWgBBeEznBnhJkMlVazLCJChlacnBeXIgcLwCCGMnSBGEnAvtCxL2YnLNbY8CCppAmRXHNkyhdihjA7dgFhJBjdEz33xM/BEYV4+AIUYrbGLiYyKXjoGh5t0QVKjm50nivlI2GWqqYhggQuYEAKoifHTyYFBo8BIQxsYcZTSq9zrzAcFZXmxk3aggQwsKUiGYVMGYLuFZuInh+DKcyYWbFprdphBJTJlEqh0msugCIq00hFOMqNbszyJDdlEsUjlHJ6wAwm+6p3Qiv+sA7YbOA6jfj/inFOb5rUHObCrnG9hdFMnfuECRRCZ0auQZGSDlUjDPAFgxFQr5qI2GZCkwIFPr5TlQ8F6SPLaUVEcHIoVkToRjtSgmeGTpVP7BxMjwaDbhXLnsaq1UphUgfQhVOkDDhCPHEIhYniC1/eyttON2Kcnk4SpEo4glA7J0mvWfOHWBWkUpeKEePYwAI+nWYpfalKcBpSkKdoGlc7YpyG7JKPYg0pVU/ZhYQZ9BSnuJtO14oR1wTiFAhzqEhVOdUUnNKdeBTh0gLBV43goQlWtABc0/jSsZIuBZg95ecQgaq9NlYhiwvE+44pun7OM6aj0wBmV4tZaSJzSp+1iDVacIIT/+ChBJKcJuEMN9mYYpYHKbIAGkAwKyLG9iAzaMEKcIADISR3E3wknBTRCNBXrNYWdajFcS9iAzus4F0YMEEWqCAER720uqE7JjBrWgcraHe7B7GCDWaLjQ70CgAAKMILhkCp3ErRtH+0HqqyVwcb/MIbtbCCFKzA4Abf4Q5r9cZ8vQteABwAvxAYwgvKK01JHo201PxYwxZmBxC8oAxSsMYQpOANOTDYG7/4hRV2Ot8ZPOEEFT7AASRwYQcwgQr8VUGH6YWqYxrZd9egXwnsMN8YFAEbWRiChl9wAzBY+RcbnfB3EdMrHe/4ywQoAxWkwOHojS5pdoTU0TpqAezVYf/JNrABBRwAAUEMYgN4psAGylAGb+xzwiF418+8PAAJDKDQACDAIKjgDTA84QmbOCWarQepelkPESW0wwxs4A0gkKEReA61ngVRhhkrU8s+6AB6Dn1oHrO60AegwAu8YYU8NG50RuOs8S5d0OC1oA7euIMiyFCEIoRaEMgeRJ9tOV8hYKMROLjvhXdcaAlY29q6KLQJUKxgIbTAaO1rM6QiVdD3tcAa3uDEDWKwAT3rGc+C0AETmDAEa3jRGjPIwgpSbQL8GsDLB1jCEq6N7StcQQIAWPSBb/DtEbxiBJwVN6/vZQEN2MEav+DEN2IAhCK4G96LFgIOfKA4/VkjD1n/8EGqPWPhSHhZ4DCHucGvoIsrxPoF3/jBLzZsNIijatyXRhXvSiCFH2h8EcUINbzt/AId8MoEOMCGDih38pTjwL4YwO8BIsH1gB/gGAqoQCQELoJkRCEKTrjCEgrAhBv84AffyMO3udVmSfFaeLmbwTc4cfSOv3sDyS7DBlie6A4UIQs5o0K+G4GYrOt4CWOHPNfjcAywc33sIhBBFFjgBBYswQFlcDvfqdCCJ1TvenZHPRRCcIIRYJzv3wACEBpBgVEjm9QbIIC/DYBfE1AA8c+ygY19EG3HX3vrl+d65SMhhkgoIOzJcIITLGEJFkigEmUgwt458QMbX+p6JUA9/1g1sDGiG53vjgBC7dcP+EEwIff4fYAB5o9fBxShDH6yhh2eQPz7AsDaSyACS1ABz3cMlycGlacAXKcAsRB9yGAJyGB9F1AGigAG5/cLTNA495I9BbUJtfUEr8d3P6AIfrd+FGBn74dfADB/Ljd/vGcC9wckZYAN/Zd1/ydw1iaAFZAACiAGCFh5YPd8zxcLZZcBltB5scYERAAG26dxeSAEnPVmugZAGjADUsB3WEgEJch+7kcBu2cAx+CC9AcAHTAILJIFDuB/EhBzAVgBbvh8zdd8x4CABeiDCpAACZAB0qd2FKAIS9iEcJcHJQA8b2YHpKMBUGAN55eF6meCJ/9Ial64gvI3f/L3APLXe4KQIcXgAMYHcyJQAQM4gG44gD3og3MoBgFQimIQdiIwfU4QBSJwAYpQZb9wfm/3DVSwKrEyAhqgASMwA7WIhdxXBerXbuuHbGUQiZY4iZS4jPjVAQVSBRfQbwEngGyoAEsghKloh6aoANvog24oAiwQBRlwdpXQdky4iLeIbyVQek+AacEojDewCIvgiI9YBhcAAMs4ifvojASwAQTiCA6gdQEocKAogDr4fAGAgKsIhwGwkD64ihVwdhQZBQnHhBmHhW/3A1KQXI92cRkpjN+QBDEAARdAARBgkhCgZ4MAAZLYjzD5AAAAAfJxAxdABjf/GHOjOHCZR4Cl6Hx2+JCmOId4mAFm13kSQAG0+Hbcp3NvR2aaJgXxqJFVQAYxUAArWQAXAHKCMJAGAJNfCZMFMHXdUQUxQJAw55MKkAzJcAVuKHaqKAad4I0+aAoGsIoNmAF6uXkDgAMvIJU69w1WBgY3cANUQAVgAJiLyHdgEAO5UAAsOQiDIG9/yQQOQACU6IIxKZP/GB+CgJMAcI1CuJaw+ImRQIA++JAPWQERiYrZ8JrJwAjJwAIsEGs6oAODIAgXsJLxRm8voAhM8AIWKIwjSAa5QAAOUADKmZIrSQEFIIli6ILH0I/4RQHd0Zi5sIJLcAWfuIPeiIdmV46f/0iXqBgL1fCNqRkLepkMr1mOaXdhOCAIG4ADBIABdEZqTMBn8nYDwfgNi5CdY4icWFkAuiedYPiVYDid1EmT3OFp2pl5PZkAAbCDCZANe5kB2QCLCjB/qxgAnWAKH2oKAZAAbJkMePgBm3dwBwABTCAFUtB0zomczZmGvtd2ZYCTy2gABEAB7lcGOkAAlWgABWgApvAAYbiPYQgAoMcdgpCdkSAB4giL2TiiJHp2eukEGTAFc5AAPniXPtgJIdoJeDimJJqhIqCAAFAAgqAIYyYFN8AEdwYBBXCZ+EUABNqM8kcAOqAIL8AEivCcCKoAYRiWllikRoqAOpqJw/ECMf+ge2R3BVGgds5Hoq+IDAIgAMgwBQJADXMgApHgpWIAoqHqjaT6kCTKlmL3b4lWCRdAanx6mFaGmEBWBoDajASAgmUwCDgKhoi6jKYQqgwpqLwHkMOhCLq3dQN4BbR5Bd6YDFmqqVgwBciADFgQrVwXqqbwqyCqmgoApqr5AeDKgwZQAO0XowLKksF5Ay46CAW6j4LgCGWQn7p3qGLgpYXamgr4qTNJHGWge5gnAspKm1EQnpoqAFOABdM6rdTAAqyJrdv6kGEAkagYAGbwAbKZAMegaC3qpoowCDGqggRgpxdQAHj6AGE2izfwp0AahghYia2ZrXMZCWHIoKwBBNn/OXCcJ326IH1RkA2XCgvVirDSigXUYAlL8JXZCqKdYKoeCqZ3GAYWmwysyXuVwKPCKZUcm6sfy3WE+gAs+gJUxgQ4GoZAWHmtKZepyHUAcAEvwBqddrNlJ3206YpOYKmXmrB6GbQi4KVJ2wkRK6GpuLQBEAZhUKIEyHt1qqYUqK4xJgWESav9aAAZBrZgUJX6yKEReYoM2aUGmKZMwBrzaGGaFwUQWH1WmgGbirCWgKlTQA3VSg1OgJqjKqZhALhgKrgfMAeoOq5wSo8jG7IiuwHudwMvQAG5UKiWyLa/eQOOcLwGsICqmK112YNzGIYFYIar8QL5eACQinYJ+4rh/ykA1UqtczAHj/C6yFABCwmzS1uxHxALD4kAIxoLhJsABBhmffqXYMAEulkJKpho/voA2WqJsga2zKt7lieXESmowCqU9aqk2EsZeXCW3OuKGUCt1PqKUSC+Qaulj/AIsEANjxAFCRCmYJoAFWu73jqi77uQSloJEDAI6uqiYPACjiAIEICZZzqdv2oAFABkwukImKm5EQmR0vulXaporEEEZ7kEO7uzR4gMrlutB0sNVuy6TgALIWzFj6AASWsKKJAAYWAGyUC4qokACFC7H2AGEWsAlaB7iVZnbeei3uC4xUCyYVikPnyYjusIK3gMqnmKEnuKc/mDt8oaitDEuv9gCbqwsxf8ulN8xdXqBAIQwsqgDLuQDA7bCWkcBt1gBtUQBmicxh+QAGuMAGJwjjBKoMALmfhZBmd5l3r8wzQ8CLnwvOr7kArZg9IrA2BqigBgnashtv+nCw/IyCwAgURLtFdsxVhQt1tsxRkQAH3LwtVQDWYAv2nsvtVQymKgaGA7BMEJp40KxwQpyzJJy1JABcXgpHgYCzwIh2YrBjKgywgYzNn7mcU8rbrAApCqzM5sxZdMDdTazMpADclAzUqLAlALtWxcu2bgvuEqBomGlRuwYo2Wso6wCM8JebxcrwV8mP3Kq1TqjRB5iia9kMeAz5RRBo1AAAdQAVcAgQ//2M+UDMkCfdDVeqnUcNDKMAUKDaIM/QGEC89hEAvgCrXhqgAA8MY6RgAXMAgV+A2/8A3Mi8fA+s2CgA1DUAaCgJnMd4cjas9FDAkOvK+UsQGXOXBRQK1YQH3Th6k4fcnKgAWVDLQCDQvJEKYiOsb0y8ZzsMbJAK7VwKUEYKMXAMcyame56QAJKr3BnGFMkI/Op5BUyoOtqZoqzdKSYZn9FoBZmroIi6nUWsV0XdeWasl0PQVcCqLbSrigfM2M8AHd/NABYAAbALYnlpsX4L//Zm1uWZc9jJzOCQBcl8uqedTx3K0IAAmQAKYrLcySUQz1adwKkA1zINoP6Nab2tN0/w3CDdAAp60MsPABYAqiCIAC2wzK5TsH1xzRW5oAFX2CwbnOLzAIHB2azBeqneCDdgoBju18mu23tWu7D8nGHhqG0q0XoYtfBhgL2R2040u0j5DTA13hV3za3SChYCq/nRzRzpoNSM0I5WuiOqqCDkABZfCXdfwCm8irMPvNkEkAla3ZYx3PqfjOHD6zk6EIA/l4O5i7HPy6QAvCGX7Q3t3T3n3JH0DNYKreFAuuyaCl19zNc5ANCWAA7rcBz9ljK5mbuQfj2ZqxM851Czm4CQAJ8Cyh3xkLr/mQkEDRFzAZ7Pp/AeeGCVAN3W3QGZ7kRz7eDcDhKKDeH567tB3R1f9Q4pGQYUDmsQSKX9tJc5CHratIACtJAGAXv4MbyoCrmhCe0ELJ2XmxbhamY1AqoZ4czRZ+5Abt06e9pR6q3oRL1OBK2N0wByReykoKARsgbxrWsXMWmpD3xd986c9rqhIqxp1uqtnArRs653vxAj/+eAOIh+W75z795wdtyRZ+yXqt0LJuBqQ8B91A21VeypFAp00tCEMwZlSgCDrglQ6bsSeJmRMroZDwt0373FSqy58K7XpR56FYASLwzu2t7dxwydyQ8OO95ArP2reLABFN27jeDVV+66Xsw0xAAYpNrqGGwK79q5bO8XMYvxBtBoBr1n7LtD2YppKxvWs4gNn/kAzw3N7doNoKn/CkMN48f8mEQA3T3OETn+jkXuVmcOtSi319KgiPHnDAjZq3W+wcb+YQG9uEC9sIIKHw+9z16gBUoBdf/X8DYHCku54VWw03r+R0vfCEsPA87/CksAXUAK4KMMbXXL63fs20fakjrAA7qmz6icO694kmXOy5N4edQOjYXL8RW7tjjPL9jYBhBvbZeWich7cZ4N7X3A3iPd4L7/YD3erKwA1bQAqwkAHIffSB3Q23nt1T8PpSa6chq6bBKc5fjfhfXAkzXvKmusafvuaxENHw/MuR0Jl5sQihKQHUN62liwxXjutzEN48zw2kAPquPt5xzw1YAOoB/yDxsc36c1CwAvABClAAyQjTFc3rXngMYAoJKCDyWonp3ki4iS4A5Z752bDGEa3CkQAQADagIVjQ4EGECQ/GABDpihNLEZEhw4JFgIA5H+bMadBR2UdlpAiRAlmyJDduyghxmxIrQCcUCBZUq9atASycDbpViyWwzKALBA5c0XWFqAIFnZQqJVAg6DExAQKEqTZHQIYMyZJli2UGgZkwkKR2OnaAgkK0aQ8qKgBgCdGIEitigXV145xqAmB95LZlC6mUJakpo1aYL6GVcxCgiBlmQYOaj3A+6vbBTLIDDjYMErShgFCiIipIRdBJTNOgccRAQkBVQAMBXGPNNlNbqv9UBZEOQFDbG20VMgAkRJEokSK1igKQZbBJmNtIL1tQpiRFkqRJUn5JUfNKA8F3M48L79Vp5oMCAgQAVLogiDOEhgpuB0DvlICYTmHCmKmJNZtl/qoxI5bFlsrNAd8SPAiIXAyoIAOIkDEOGeTquogjZbgBzK+/UCJJQ5NAyq46bhpY4KvvHsOJmo4gC4CAQQZxQAIJCHAAgrYiCSCBBMIQ47QCKLiPNKrmwCqWD2jKBq/ZAoBEBhkCiISAFxS0sopcHqjgCgiXm4MiLCSkixpYuplDmb9KIhGwk07KLjpCqNkpDBpiqgYnWOTcKBkAKChDEAgIEMEJJ65AJopkELj/rb6gDJiqNf4yyKY2/viLhSsnO5GhEwUAGMRKBZNocNAMLEFmjrnmKoyaRyjLMLCQRtIQVpOm43ALwj6gM6aOcCJMgCmyqgCAIDegwAEAnBAgigQCUJQp+/ADj6aMzOixtmyyva2TJztFEFTfLgDAwWyUQwbYuWDBYgqcLOpmrwxDqk46lNT8iEQP/UJpp8VQ4K8BkFit5oMEDAAgPQgooKCAA5p9SSkghTSgk2mrWaC2rmqzao7bxNqRWHB9YygOCAWwyBKTK6KIXVZ3ArheDTmcLsR7EctuCy/i7CaMxRyraTwBqkmAgA3KgOCAAQ5GtgKlUFiqqQ0IMCCqqQTU/2/ABGbTqZowmsTtmG9D/o0hh76c6FyTpyisIjJh8Wjmm2WdudbpCNFOmSl0/e67Bs7oNSMDCnhPPaSLyhTiG58SY78Aweo6gaoE2Ikmr6UsQOy0kiDDAAUySBmLtgubAvTCHgGYL+v8QuyvlUCi7rmVnsM5TVj0ZgyBXlmdIxsRDiAAgg2KgAADCa5IABIDHYh2qv1osjpAavGqKpvRFDiGAMzRAmJzMbLJAO0pBGg1z0fWbhtewKq7WTs245UXJQ6jk447MxhjbIEzCMPCCRGWAAADHPgAGytohHBGoxT6oGZIjKOctfhjJthgZHeziUUCIgEAQWQvIQwygEOwcv+RR1REMo8QwKoGY5jnpER28hPJSNoUkph5QYYraQAC6sQYGtxJAFc4AAYcEEAf+GAFPuiAAceSgPpQAADHcFZtFnCxDHRFQHlpgPQmiMRjYFCDCLlAgyrghAxMYQ6jS1VhYDWYe3noI36Rn6zat4vA2EqGXkhJNRZDAxrQBwAAMAEOgLiCEATSBwAYgAQqEJYdMQoA8qGUGYy0kdp0Qy9lamQFFRAHs2zxIF08xkNMpRfkUGMXo0whYDwkkvb1BWczVJ8pYdbCVgZGQKUxQFMg0IggruAEIdBAL4foAAI8ICkQQ42jplKp6QWoRWbiSaVqUwEJhE2TaIjB5h5yHBP/ZmhEaZxOveLFxujM6lUn6earXPiIWNSyAI0oAiADyUsNqEAF8VQBNopQTaiYphJOWSTkrMa4WMzBJpDZHVaQOUZdmGCaBYlBLiLhBArNjEwCIMxHDMOXuclrlfpS4Thf1U1vYkEX/+uAEAH5hCfMcxMMGMETWorSLGCjEVPTZ8KM6UxK5UWgzrMKLJaxjI5cRRcdWCgaiBADA4ggotxADrvSuAsyvctXswoMm1ZpHbiZMnazAgw1ktaBDnjiBCdFqUtHQAIStKAFL0VpAZn4gH2KSwEIoEl4nDiT11RDJw0YD2SqQb1MLrQYBFiCJbAAVWpIaA6wgNUUptAcwsDx/0PXeV/6MpoheqEEMUwdKVg9wYFdqsClKB1BaU072pTiYImdgGuQlpgxZ14scnsRJUowgpEMiKBPRWXIANgWJkso64SweMQUHhGvwajPm/DC6Nx8pTqQMhUAJf0saEOgAtO2dJ7zzO4TVlBE+TygADG4wNSOSanHaKwBpKwXNS6CFT7xZppVIIAEdAEmCbHAc4W5yEWSixMNmVIZlAKYgENiUZucYbN1S4kTCBBA0J5glwwgARRagFJ5upQEI7iwCiaAgUg0q7Xl5RZYGilbvcARJVAljIWcIAEcLBQIADjAfc/2SRJKsIQHvgkMlYGT8JxBC9NJLohYVI0hT8eUJP8RgQN8IGEJB1IDFV5raRnA0uyGwAQAqIBLTFEJCJQ3KvrZz0yemBdqBMZtq8LJVQ4wkGnO+ACmMpWEJhK+75WQTWQqidssdoZyni4lZOpIkj00K2osAQdijbCUR2CL0qbUtBtuKQcw0LDviGGfEDDv1cLjV9ik+SN5EqWfhQYAbCxUVJ2E6NnmYhXQua6ieSqTX88AmJWw6MB9zhAcMYocAOCAAxHmAC8pbAsLl7bCUKC0CjpwAAkQKAxfhgCnFZAAxz0RMjaBxS6UweIMwSIbjLOgDxa6iAbZ19UU6S8aA/Zj5sLiMebkhtuUXCv3XQcWwR42lHepgVdA+tFnRev/hr1rgkImAyyaxtEBKsAjxj1GkqHmhoqVIYBY0OQxGbgCqqmgSUXE4AFLuC/b7Aw69lqUuaOeyV4Q8+OP0kqb4vyIAIJd3WEXOwWvQOukez6CEHQAAwO4gmXCoAAwM+zh4ZlJeKglADj6ZRcCqA1NOiJJSxygpHbQoBUW0RAbh2kihVExSrJpkjOcgbEoIW5lKQvDqmYIC9OdQM5zngIG2ELgGuiuD2qMDCd05ehJX0IFstERjdtEoN2wW87qDZkVkR05lhhAH4WQvTI06AqmEjuFvg3HUZ7dJABucXJj5SZZa2juHai73YtN4bO2VPYoFbpvnQAgBdzIAaLJhvN2/9IN4PO1L3CCI6nzpOK1XUECJigC5o7qllZPBAufD73oCeNuw1w0JH6hWZuwoPUJfBbneKd0d1PqAQxgQBeWiIV+gLR7MOYENhxpDiFkuIXYrYqU+B+lRZwwgAPAgRUgiOsKpBFggBKYgRmwgxJICEfIhWOogLOhkMGoOOQgnRPKQFFyHZnDP4+qFZKYAglgPU/AudejtLIyraCrsYrIBtZ4v0goFzYDvtpYr8aLnVGKOvyDHQvEAsrDANabgPCDp156p+uygzowiKN6AIeAKNLpP2xyt8CAqrLzpsN4nY+Kl1kRAPALvx64O76LNNJyKUsbAMPCgjlIAARADwhwAP/DWxJJugiX2QtVmo5dEIlVkh/8W4ldQIYBAEIhfL0rY4AiDIFdCoEnOAh0M4C38ByUSxUMNCGyq0JvSh93ixcS+YghmwK688IvBC28I0R54rsn0IAOGAAwoYYp6BExUB439BydeBfIaBGV2ENbabw5uj+p0wUMMIFAPAG8O6tX0ABDPIEI04AGLAjgaIgHMZnEcjXQicQcZK/o2qwKtMJ6qY4+nC4S7AFv/MJQpCd5UoETGLoBWD9VTIYwUCc3vBP32ojX6IhbW534iZ9c1MUfZD2dC8UrS4EQsLsT0ACuM4hVe5C5oIjjiMRYo8aVWLAU8jYV8rZxIjInmC4uEML/8CvBYivEQJKwCdgy+9oFQsACRFEnAtgKisKJObyJvsBFGXqTe4QTbvBDX6y7HuABHvBHQ+QAb+w3XkKEBQmOOMgGhIRGE0KsNJtGzQIpqDK7juJAwnCCHsIALrhIjDTBYfOECRC6v9sF/KOGDCiYpiAAyIEFLWgxt+kVl8zDmJwj6cg6E7jIb+SBf8y5Tyw2XmoBhNgeB4EowwITDJzGUfq2mbFDiwI9i7Oo2oIqP5xKYzAGD/CAqrTKCahKExg6XTgsxLCbXZiCZDBJw+s2lesxbmhL08zDXbAEDDAGIfzGL/xGnvzEgNSAJxhIg1gEMmA1zkM5b5M8M6LCcXI3/19bsdbhwNYRJT9MP+VcTuUcAFREDNCxG5whBVgwg9NoQwXIhrWbSeFCE7Y0zXvcgtRMP7mETbu8y9lUAb3kIrLZvDLSv6MUJQ30NpJgSMpCoxQqTf4zFV1YP8AEnYsYPnCaHWr4ACCpBAWIhQaYjgx4CywoTfBsSzaaSfKcANd0vZz7Nw1AQLQIuQIwgAMQAUc0oUiUz6NkyhXbH6xYgiXIgDSDn/uTTnrMmTDBCy0wzThhBHWqhGOIhW5LIWqwhDT7zgh1yz6s0J6kyxDwxww1Np5Lxt5IDyk1gAi8JpUJpUkcNMOcu/TwHfU4rP1by1zcgnc0A1j4TrvhhnWpj/9KWI1qEMnNHKVbkZ8inaMjpcoS/MJASgEmBcgNHYEkBJcyAAIguIAYcABG5BKoQrna+raP2AUsGIAOgIAOMAEHcIADOCxR8rXoMM2UcJsz+M4cDNIlGMsxW4ZR2kzE4KE5UFX7C8/7uz+vokoL7Tc+NcRijDJStM3siQEC6NESmsTQAz1VDDYc6MVKdYJV0R+RvJmYxBWqawC7abwtqAjGXAJXlA9IuBMerDgCEIS2uIJNXR1qDc/xZM1PNEKf7KUnWCsh4NXsSYIHgASogx9btMMp0DqE60UJAJ32ogbpBE9CqLWA9YLtCD0sqICmcENsQ1U4ZSosIAAmQINBwIH/OQO9ilshPYTOATAGLjBPu7SuTRgBKHhXEJimRXiAWKit2XHLPdwFXTjHINWFF93BqHPZZ6XOM70/plJF4xKAUm1DwxOAitvMivu+LCgICjCBfg092HFVqUOG1QwCkO3JnAuBFrADazg3lU1V6WTL2VkJ1ZlWOHFJOCHS6PgI+yPT3jmAhmCEfP2dV0yzr0UMatAFczOIRqgvMBVMQoDTlYhUDPAAqgXZDH2CGbABrqXXHNysMUVbsL3HryXSNcqZKDiYPQIApcLWCygABZgDr53Wv0WGGEMIHCCAzBTMVAVcSP1DdK2BdE2BeNLaokpZSOg29ppRtK3T2UHbecG//ww4GPWgMaD9Hc+FOrG1RUhVKIU4FgmgkMZ9DhXLQWSI2cHlgmITLRJAhECdphuwXZOZ3tjBP9UBpzEFz42S0JzZgjkQ3oOZs1ItgA+tBtmBLjjCAgn4FLQIlNTd1GENE968WxPIAmugghmog+6dJkVAt2PIgL4N3RvMmWlN3/Csx92dIZuT0j3ShWjCEQPIADgiVz70qtJNi9NdAoqYRh80is2jEAmQr6I6CCJANzFAlU29xQnmkM2cU/StU2oQ3vQQjg6uhAMAYdjZw8DVhRJWC2CSACdgG+QYABY1FGq4gguIYYSY4VzohGwIpXoRSdlRJR2mxx3uVDYy39P8Yf8p7dLMgAAizgY4HduKO9JUS5A2ZMEw0YUDYETPAQAYxmKCWOBc6B5nFNalJF89xL/1fdUKjlD+81INBoAb+dBYULE0/VsLHCpQEQQhWQKIMAqIuoLLAWSDKANx6Z4nhs8bdtWG3KxbKVg0ltCVKNU13qNJPgY4TqGtWjFkAICQYQLP6EvAEwhSNgggELnsLORvy0AwftqWFOFE1uE65QYRWOPhdYAL4NFKXp2njR0suALmBRciOObPcIAMKuaCWIQYiEDPicKjFOGx7d3yjVV7FNgMtmbdS1AwTl7EAL3v06AqWAR0XggCaMKxyyYUWsp+3ijyteALHlObc4BKkFL/5cnmHrVknEnTHIzYgS4qzWFCQ0lFSYysEBbbzQpYVZ3neo5JQuhlApjol64E9uDRCtjnHVZh7OlolA2OhxJpSdS/EG7o+k1kekRk9N0F35lomb7UC3CASNjmlLYVSPVlndakCyADLXHCEkXK3wRc6SjfV+bhh+aGzFDqSmBqB+icOG7oEHavJahqTaqmB0iA70lFUjMM/5pjGYXaHB7QIuWGUpXofSoAbHZDOK5bh6SGOShVuNYgUdESB1YVSUzLn9KsV3blW0HjhyYEhTVrwm5DERAAWJYhFRM3pGvs7EE3yHY1SbSIoKkGVNUsXHRos61TQkiGmJbpAmCP3RPt/8nlP6iKjaFBbcxhYAVwwk+yiLmgun+ht8t2S8So01wkhSnIbZkGMwdo0Wms17/dBb/CbeIWG9xc7b9kt+SgJP5YBuLczIpYW9U5X/TFv+q+7n0CMwLoMvXmUl0IPVPrifAOGdV+kN1MFf+CjPROMpNu7/Rl5AvmqAzI7d22bwWAhAXYBWw1AZqFKljAi2xIgN36bysJ8BbGLzCBOshonhy0w1QN2zmNZbcMpwfX7cHu5AqogIgGgDNEQyMRmkj4YxDvDdVWgJAuyuQQAKCaor5JMvGNZ90lUjbarCuIafl146ZeAjHgkYPp11dzulhQAB//8bQI8GyIEGi8CMh47f9Cs0CnPeLJhRNH5oYrmOTB5u3Cq6BjiITl9pyMiYUK+HIwVwjjvibpOxeLCB8JsjrGUkrQ+1ujTendFc8lcAr57dyZjgQRmA2sWBW8qA0EiAWxkKY/RwsGfovokz7JvoiquAnEIiXE5Ov3ruBHDrNJl9+FcRAuWZKqmKKu+A6xIABHCHW1YOAtib5UOQ5gee0Uk0+llO3LJlsz5qjdoABD7VxJZ0au4ImMa6T96HQA0AFgD/MsGXa0AWByXxfnuZNpJDtndnRYDtvo2IU+kXZZd4pAiYQt2QqI43WveBwD0N9vTwjVNmitBp2ERPW8uGv/LdqMnVyUjlH7U1Oi2YDzC5j4GKD33FSACkhQqYAEnvmOsICEgvH3f1fELMnOUgdM/kJ1v/JfVk9xewVrnIWTiN0AY6F4ev9QMZABSHgSKEEA1tgbRTmGsxh5hFDtABhzO0vFaLSIjbkIl59j2Fl0JM7s2W5pc+6MRaB2aW+LONAUKIES1oAEGgB7MTiGKyZ6Rdyct7AxaMTA/rK6hFfdKhRdRp6hPUSGq18Eva/4iW+LH/l6sAf8TZEBMfDzkX9sDyIUZamLNruIuriLFdkF3BVMUdICyycEy898bdCCzbf8URIBwRkEIEgCdY4Bef9VpYASTXmSJ6EBSPgRAzD8ogoIACH5BAkIAE8ALBAACgCAALgAAAj/AJ8IHEiwoMGDCBMqPAjuSZMmgTDJedik4cKLGDNq3MhR48RAgUQZQRIqFBIkn0SJogjOYseXMGPKNCgnpBEjn5Dk2JkjVMpPRlTeNBLolI2ZSJMqLVhTJNBPoXLsqLFjB88cY3TuNOniSwQ5S8OKzSgHk0pROT/l3BGEC5e2QWrInVuVZwoLmMbq3TuwqdqoPXfWaOuhsAe3XAq/rdGjKg8GEVzynZzU7KedJHdODeLBmOHPhSdMYMyhMQcVRymrlglRlNaSOtkm7uzZcAfFojmUlssh8urfHZuIBNxzDFvbtQ8nnu1htNy4NWCABU79osqcUeXKLmysdnfDoid8/1ceJK6tJtXTHxSulmRswtzjJ1fM/fvb8hqmq98PUqVWzZwZ5pl9iHVn4Hj31TCCfvulFwhOUVU11WACegeaMRhg0J2GnjkXwgwN7icHDJrV8FZ4F1rIxW0dfIfgBBycgAiDIQL3BQ9TJWbMbTom56MHHQQZJGgexMXBgjWqZ8tmnXEY32GK3VbYkEN+xkUNupWQZHpfhFBeYi0aaBgXE7glZAfhpZkmYyFo8MWW1Y3wXI9PkhmEc6N5otsJJ6zgpwYrnBCjBiRAAQKc1Klg4mxhfhckmbpxsIIKI4wABSIWfOFVBBF8UUIJnHKKKHBQ5AhkmEKGBmMIKkBxKSKIbP8Kwqxy2DDrrV+NulqphLm4o5CrpmALFCV4akGmEWACAiY2NGvrrBEcqitlFqQAn4FnrqpBF8PCiqlXyz57K66pTctXBEq09SuLwHIQAgPcXmpBCchGO+690Zo72SlKmNjZme2mAK8L3dK76SnK3juuvuce4e+B7brLALy2DHusppvaq7C0DI91Y4A7dnZYbhJzyy0MF2N8ysa3dqyXBT3UIOBnaOr5bhc424IyshlrfK/LY1nAQYAzG0Mmlu8ecUTOKGvaaca4hmoF0EvZYEsPZUIMHpYp4HyEC12QcKwFsLoKRb2cfoFICyBSnRQIGtQwgXz2wagBvDjnTcIIGqj/ACifhGaq9gh+ujK12zPBzcHcp4o5gScn3N3F0kekIDADlbo6wsQkNO3qpzMcjnhMEYQgGpjrNueu5F1MLHChsUYbASIjdK4psiDQOHpHX5yAIpC2Pd5m2HoP+2oJdnyKiC2CQ1GpHbvPVLonMHIgt5qD4k2CCztDoYIKrbSSPCKuCm4BFDNIFj1HcjAQAgyTLx3C4rkNjzP3TatNrFclkM882rpbn0Zi9YUuwEAJSmhdpNrEABLcDwb5C1UEZjADTMEKgAKEiRxA8IWhcM8FKQjBuxroQFsQjHkYk+AXjkU+wXGqXBlk31CMkMC8hc0WOHNgFwh2qU9JMALn61a9/2AYQ42AIwIigV/OSKBDG+bQYsVyGhBtQYL/bYqIRcwIB40AwRsy0Yk4o5i8MvYFKDARgsd6YRY7IocIQBAGYKMiGPF2P1t863YTa53AUBjANS4EBBZ4IxObmLc83g9/TrMADl1nQAtEwI9sBOQbzUhHMLqAYE1L29gEpyksQvIikoQgDjdhSOLljWApw1jP1PhJjkDBFkpYmusqmTclVOxs5ktZqL7AsVZqEQp0nNjElnbKS1psbLhMoad82ZHl2ZCWTjwmMClWMQu+iZkb+ULtwNa6+MWPmDu81BdgYIuJcW9sX2gbNjNSxh2GsXVKOwItUbhCdGZsndmkIjeHyf8AYpYShZvUpSfxiZAImLGG8ROYQsFZTU7ezisDJWhBrBABHNownoyU5+S4RU8pRkt0EkWIFdroQG56LYzD7ObE7LhCToHApSFVSFmaUEAwopQBlrMcA+7mgjFKMKIhtQEmvnAKJdq0dTgNocA0cDcGCBFZMT2IFOzwhUBAAY5HFeZONcCDEOTUqylQQQMREQGQRvUJNrDDCqAgBzs08J1O1KrlNJACd7VJfFA960CiEYEWrGACK4iAHVpBSGgWEqciZAAiSmCDeuiVIFaQQguKMIEO4GAIM3DFCObYzXdq9WyfAoENzBrSaNhgBq3wQQdMgAEH6IAKrmgF3kp52Jz/na1TMyjBDGzwgtFS4QV6sIJwrfCDH+jhk8Kd6gpwwFoAOHceLxhCK5qqVbhSLGWL1a0NykAPIeiACUx4gXipAIbyRmONNpDCDOygAk90AAMAOMABnEsB8U6XupIjJOyORS/k2YG3DmjDBgaxgQJTgAKDcAQRzltEG0jXd6uNrwQmLAEAQOAFVBACU0k5MUshYpB7g90Fv2CH3UqhAG2gQIHnYeB5DOIFpEVcZEvQ3tXCV74UHoAEDuAAJkhhFK4Q68TEakdb1G6QHsZUCVoQARvoYRExKIKKNzAPFruYCgwenWkFW2PWHkDHYB6AmHdMgDJIwRs3iK0wu3ApM1aM/4reohcU/msFbwDhAgeeMpUHYeYYM8wKNhiFWt1rgviK+dCHFoGid4wG4HpjCC1oQaVG4C2zuSrOJRjBf73BiSosYgMqnrKLy+ANHejgBS6rhzdOKwR6qLa5X0a0jiesaBFMuACKkMIdvgHpSb+qbK+MMxRaUQIp/IATinBxgUGNhiqX4QVtsGwRXGGuekR2CK5YgWrhG99meLsZFG7GEpYggitcgQVpkAABdHADb3jjBbHNHLBfaUdvgW8Gxv7BDZIwjwugYcVV1sEQHEAA5xIAAhtAVDS8MdVWrKARNo6vfJvBC28v4dvgvoIIWKALWwMAunq4gx5e0Ap5V5p8Fv8cwQlaMIpjc+IGQAACGv7NYio7YuDOzTkB2gCBGi2c19mOdqG77e0KULzizTC6tzWuC11cQRdpAAAFmPCNY4Mhtq3oYdlQboERiNAOxuYEJ77hCCDkWdRlUAQZch5f55qgDUVQTzTuIAV4FyHaN774txVw9DjwghcVMHoFkhEFJ7wD6gM4wAWYAIZj/+DqlbKgt8gGBQ1woBWj0IPYOfEDTy/i7FQWOMGdGwcDxCHnGMABPajD8Bn4tRE44PYBLr4EXijg77yIw+1tnwAFKCABa9j4O97hhCgAYANMuME3xP4DKpQcU2TzFiIsfwI7VH3znCDCIoog5Ty7WBEOyHn/6UtvAAO4nQLzUM21HQ7x5uo98BXA/d91b3sFBOD2gxeBE5yQgXMDYBDJ13jM9wItcDae0j+0EwIn0AozoHnYRwTzcHYHVmVMMHrl9wDkV37mBwAmQAGUUQX0cHcRJmFLUAG9pwAVsHsKAApx4Hco2Hu2N3j7x3/GNwiKQAQCOIBUxSnIQwIa0CZg53LMpwiLgAYS6GwFp4EG8ABK+ABMCAAEUAB8oQgX4ACwJgHjFni+BwpcuIK5d3uggIKDV3G8UG5QV3w1eINgcH3MBwYzkDaVx1R2kHnYN3aOUIR4hmfNNg86kIQayIROGAdOWH4A4AB8AQRrJ2ESAH+Dp4Vc/9iFj2h/CZAMWmiChFd4xScCG/ACN7CGdfh4FDRY3wN2eiCEnOdpMYBnBQABq9hsjlBwAHCBTjiLtPgABOCBY+EIF5ALAOB3KYiCKKho8beCjxgHXZgACaCFvhgFV5AMGeAEusACuLaGpsh830By4TOHDoh9N3ABFxADMwcBe6gDZbAIvNiEtTiL5tdzYzEIMUB6gVd/jPiLW9iFAaB7W8gLYRgAhZABa7AGycACTgAAZUCNdch8QFZiUlCKn4iIi3ABVTZqTEAFN4AGBMCEf5iOTuhcUjgWi7B2B/B3vveCySACJRl4vfeIoHB/ymgAprCShQCQ/xgFLNAMaAAG2//Iecb1DeV1A6OQbwdJBDGQC2RAAJVQCQWwihBAARDgh00oiLVofgSQfmLxjgDwbZWYjCbYiCa4gp0QAGBZCMgICgbAhQEAfP+YAVEQBbrgAC+whmBwA4rgCGVQBuClCC+gCIqgfKb4A45ABrmAkYW4igXglBm4hKagjup4fGIxDyCZdF0phoOXDACZjCkJCp2AmWAZAKDwknHAj/34j/unCwPgAAVwYGhQmByIcHwGXnWpCDh5bN9gjoMIAJUwD3ZZBhTgXE74klxYli0oi6awhAbAjksRA2sHbsLYlfc3ic+YASYIlpn5iAEwnWaZADG5BsVneNEoAlKXfEwwCBT/QHAOAAFVRgFt4AA4gHwwt3bqiAbhBV7z4IemkJmlx4SCSJxK2JFK8QLvaAAXJwJRIAImaJnO+IzvkAHJsKAp2Amm8JLWqZmFUAiUqZaZyAsGcJsvIAUc+gLhOQ+fVwDkaZrhd5+zGAN1WQZ3eI7GyIKz+KAYiJ8saAAOkHBK4ZjdxgI6SqALmpZTgAzCMHxOMAX+WAgB8KBIyoJx8JUsCXxRoJaUGADlF4W4GV5gwKFSUF49mWzht4Qn6ghVUAVlgAakV5bEOYvG2IIrGJwHtxSLUHAH0AwbR5MCmgFzkAEZIAxTIAB6OgVTQA2P8AgZ4KBJapaRiIzZmQy+ZwAE/1CeEOAAkBoD4DgPdBlenfgC8wkAs0gASYCDnTgP52h6iRmIpjd+xhh/vPBxS3EBziWnLECT77CWwiAMQFqrwiAAfjoFWACoCdCZD5qZX5kADrqSYfAB/7igCmAABZB2cTmXD1mYSQiFlUBwsmiLCkYERHADtKmBSPoASlqqYeh384WLSVEA8UVuA1p4xOcEtIoM74AMQNqn1DCv1BAFCpCYv/p7vXqdhWCsAJmsB4cGz7aQepCl4lUGg5CaBBAHgSeL67aX2cqqGFmWntmCvlqfXMgL83UBSlEGBScBA/Cq0Gh479Cu8Bqvfbqr84oFvYqkMnCWwuqgwXqsa9CrGv8Iheb5XRuKpR06CAUAiE5YZi+ArUSwixhIjL/pmw9ajLkndUpBpgCgYzP4DizwriXrrsKABbuKBboqANQgALuaASu4tJCQAJv5lRM6oWEglqDwAAUwD6wIqQQwt6YJkTqgCEygm5r6AIkptG+pCP9peirZokuLmY9ofvw5E7sZtWkQpO5aslebtViAq1w7BY/gp1q7CwKQDITaCSgAlgiAAGabtv8YBmHQtheQl+DloXcYAxdJiDnHC3z7oAQwkRvqn7EIiSrpq7s7o2igFItwlRKgC+8Kr0EKuZK7tVpruY8wr7uABZwLoV9pusiIqB9QDWvwAUbaCRZmhPOQa6X/+A03QARVkASuCwAp6JK0OwRU0KHmWpZh2Lsq2QnTWXrkKhNS8I7NkAZVO3zIoLVYILnNu6tBuqcqSw27QA1rcKT0G5aFYLoBgAD8CJDJ8AFhkJkbCIVvm3ad+A16AAZV4LOzS7sT6b69GIYVwJnW+ZIvCQkBAAlkaQAcixRgEH5L4IzsmgFgC8AATK88vLLOKwAx2wnIGAYLUA0LEAZgubbGmgyF0Alu6wiOgAaVAItzWwAQKcU6UACI2bc+1qH/6XvI+JURyoWQsIIKcHozPBNVQAYAWrV4qsOSC8S7kMDUoLU7TK/csAsZUJ2dIMEBEAbVUA0QHMgPjIwB8ACV/5BrVJC3ZTAPaOC6BKCfFdCZncmoZfBbVKAIFHC0k4jIwMqFS7qZMbzGMtHGBqAAebp/wqDDWovA9KoMPvzD1MAN3CAA1YmZDXzICWC6YYCdvdx7yop+g3Bq7RuXTHBnBVfJ3WoA6PddW4yBulcBC2C29Eu/LQqWvynDSfGRupcMfDqrQbrDB1zLdjzA86oMtqzA1fmrESzIFtzLoYsAC2CkUhqL81UAAvuWC7nJW6y+D6qs5skE82l6vwezEry7YHnGv2mcMcEErhsHwMen/uuuPZzOtszDzYvR3DAH7QyhCFCshXDEa3DEhKzEoEAAdEnFOlcJ5hmRk4ykpqAAtv+5igtre5sZyErMmY8ICZBQCPZHlg4NE/MwlHGgf5JLq0E6x/PKDcqgDFjwCOVcy+qMy4RanxEc0oVQDQnwAUf8AWab0j4GBkOgA6AGrQbAC+R2BSl81QLNxcbYCfYHlojsx5jp09os1EgBZb1YAewawCf7vwf81LJMr4ZN2LZcDShwzdMbwcB3vSZNvRmKYKYWXhSpCIMAAZVwlW39kgpwAFjMxWXZwA5stl75x9WQgg3Nxkf5AAqwBrOKBSf7yoDqtbsgy0/tvOmM2B3tx/UpuiFdrNUA2cVqunLNdvpcwnUXngQQkpFYnBTws3GtAAgACcEKlr7XCZAwyGZ7j8X/ORNAQJQGcAXsKtg8rLK7itiFfdjqvQD0+5IoELprO9wJkMQLYMFA/XEJ29zNUIgI928U0Nz6iLHKegEQ4K2audNi2d30W9+F4MIryM0ywarNXQFPeqvKa9iD7dSxvNtP7dTV8N6dIAPyfb0fYMFITL2g8H/t+wKDUIVwKqfkTXEXW+AHvqQv291G+svV+dOHDJZxcABDzRGA61wHIAJpOcdTTQ2ETdi7zeS8PQULgKQjHrofMAcAOdwLkMQI4KAEsAF2CV6u2W/hJwLNsIVgaQAxAGVOqJlFHAahq8KdMKHAzJnKimow8ZfOJQEmuQaurLJ2HMtNfti33eSkoAbV/+DHnhvf8DzI10vIgFwBBkelmdzIzC24XNgJBR4DfNvAiJrE1RkAL7u2NavNGcoEMWGORh4FFRrbhg3lTZ7bTw7rykAK3PAICVCfDRzSgzwF1TAHc5DiwowGL97cGoxnoHbCupysWAwBgsukCUDI3b3Qa1vnAFsGqZ5zR57kXhuo7B3rylDoHo7YuO7HKMDo2Avsgzzcw10BBzAPlzoPqrm/TXcFuUy/ZBnaCK7d9e3o3S3f923PnRAHZQYTVWCuwst/fi4AXkuvzQvuthzrtK7Otj4FT6zrvP7rwb7uwL4GFUAAAou3ZaADEViYB7C9wDqcoT3a02vS1SCWLwwJRv/M3fd3eoNA1Lz4ZbrArvyXAbvq7d+uzoQA7rHODYRACI/wAUd67iG9AHPQAA3wCBzfAFydAIzaqAWwAeSYt/P5iITqthcg2m6+BuqOxFu+5Sn+xCzImC8RvDq/88M3qwIA9OutDGogy0ZP1UQv9NygBkpPv/Ft0lS/7uuexApQAD5rABPm3wcGAPqoy1JaCWE/2mFZDQ0gAFS/1XC+5b6cy9/9EuYqAWkgpHEvAE+/0ROP91vg1ODO5LZs9L0N+AAf2YTP1aBwAXqpA00p+mmQBuR9BfZ3zWDPxZoZANXA8ALw8ltOz5wPwRhsiB2h56Lfyk6AtVhwpxmA+rid21v/sPqFTvS23P278PfnTgMLELpoT/jnT9PmWczi+ajo6wQEWp0okJiST/wy8LLHb/qDDBBhCi0oVChMggAJO4GKQ2DeE4gRJU6MuCgXgCVp3gl79w7LR2pzhAkQQM0kNWXKuHHbsmVlSpgxuREi5HJKgE4oUCDgiWDBgmoNBFT7GQZBGAUGABCoRGHeoEEXAFSowLOTqQcFLhR4AKpTJwTVxFYrCLTanDlkA8iA9LVhGYpxJy4CYKBCBmFOnHj8iOURFpKPHqFcOXMLO0IvY8pkueXRAgQ6eUI2O5bowU4E0MQ4IEIEAAcQCkxVgGBtJwOVtj7oJENG2LPVwhQVu6Zg/wBIMlrzArBB7u8ndOMESKa3ozDkAh4pF/xo18qaNbck5qYyphqUKllym4Mg506flcUuMBrGVAwmLwZBINDMSV5hyRJaTX2hEmtIR8cW/UmUIKRCTpOBNwiAkysGAB5QQIQonEBmI+T6oqa556Rr6cLqqkspu5RWaumRML6brD//iOrpgRjmeWoeCioxQAQs1kDoK9S0KsAAUALwabyfCkkgPIESSogtBQCgwMC4YnggjgSK20sYLCI8iZopSoKOEHaybKmwxawzzKUGIpMsPMt+Ik+/Cg4ADQIKWjwgAYQi6ySrrXAMIAyxGghqtjstC9BH3JIqAEmKlASluHf2ev8HGeSmQAk7akrSDkt2MFRsscIOc6kaMVGYjSgeizIKgAIIAMCzAwgg4IAK5uPJgAIouBGUHRvQ08wd0+oRIYQUiKOAFwiNyJH7Fnwvr2MD88skRz08rNKWqCtsWlJoms6lOQLQCbyxbj3TNAKg2qDUZqCkJoNCeMKJ1DrBIpEso8LKgKQ51kAXoQAYcmAIYSFahAwFC5lXgAzwUk4ALCIVzCSVatIy2ui4hMmlxgh5JN0x+QOqAcheJSBWFSloL69k8A2AVFkN6ETHBWwlb7afbCWJINt8jMMAAvjtFwiAebkigznorVI5KhlmeCYsNbWWJi6n/ZKQXdYwaiej3uX/eDI816hgza0AKDkBowKoz0V395OtP5ktsy1fnJnoN7hcFFwDuZGgHMlRkwZDiRRSrs2y0kpneinDwqyd7pEEdALrKKBIGurlMAx4AAAAWLiiGQCaKVmnhFKDwIE4QMkvqPHCa1mo8apZwzZfAdDBin7nySWOu+ium6STVNrFS5b+hpZi6qS9siV2uPsgDPDI29jbowi4YIMWAciAGiyqye+oBFAmQPQRedTT1gbQSousghLgjQIp+r0gl0PnXa5KwBjWrnDDfIfWWug8TMzhSi3+ILLw9KREskEKaGJFAQcAYHU9MQ2p0FCJHA3ETMqDjczm8L3ayGgJDggWocqA/yAF2AswJckdS6STGL/Z70KImQ5NThidv4EJMttK3oj6s5wopMoBq5IR2FCQGdWArhP5AYqZ8BS+5hxMOQ2gngCuAABXCEsRCMqIE0hYoWqRojGaIh7xfMfF/rkEeBd61kquFhkaJM+IYYgc5U4VISxEIV08eYBqCBAHd5mFRLZSQwN2oTduyMw2V5AAPYRVBRddAUqCW8nuOsQNajTGQw+D1sOiBR0xkvFvkOwYAmjgnZ7MJl4om8doRIAcGfEEBUy5gANEN8EitqwaWuCGGlRikl3s4lYJiIPrhOUIMsRBGLjkxi5KyLQrFaZvXvTi7wx3wmdpqY8LoMEnJyNBoP8URAEfE80OvRagnqAMgpCApVlsRUstQG0wy0FLIXppAh0IaxF2EUAujdmchhUzUiZxmnZIYT/f9e5aKwzoFOLFQNwwxABKAYAJTCABCXjGCXH8UQO1sj2W7Shm4ONoR6uxtQ7gQAiE4hkvdIGFXURpJINRBkry1gCWKkOLpEiJFqMZw+Ip7UJLk+ZlEIAQhS6FAA7tgA98YAIASKCeu8jAGmSTDKawJ0dshIxlzslRQthKLBUwAAY6wIESyAFJdFmCuQQwhwzobUPUE4wtbckNLWpIpgDlIhkFR9AtkOIxV3mAqgjggJDiAAeN8MEK2tAIWQHgABmIwgd+kr1KSNX/IBPUasv0uQstgO8RDXiiVyfQAhAgCUESQAYWNlKwwKwzYbtTA0uVSbhqAQ5wFKPYTA13GEIIAHMfa8NhJ+AJ4AKXAxPAAAZMsKpyoStsUcUoUD5FIloWhigwNYkwJOBVT5CgBEgigwFIexw4QumKK1mOGvj2EjW0lqUDpdi0aHJeMhICGRIgwGCLsIITnIAD+vXEfjWwAh/gAKlLqO4HEhAgbgIgR7FEWwPUMJNdnDW9tNwFMgbgWQ5oYAR2mMEMqDCDIQiBChHprgQ6ggxGIQwwCdPO7vjIJTV0qwGCq1ZeY7LM4E0HCxJoKA4KuwIgAzm/IQiBBv5LDyQ3wgGL/50DZA7ysQt05U57BF86CTEl/SHjAJ6tAQf824IWtELMdrABRKRi0kVxBDmL4udaL2hLZWyWUy1Lr4ZWQooJndOFjITkdTswAf9qQAVG1gCRCa0CFYg5yQRYAroMXIEEK6AQY9FVNQRgK5egpELRSsOWPTCBLnOgyCNoRZhbwOEy/8sAV2AUozYCklym5J7NkfPGurSSSDW5AVqI67SUEQUChJQDQBY0oY1c5ESLWcwAxoAEkDOHA2+zEjdKwOrOekGxvFlaLkQMIXRR3E/XoAY9CEEKGDACdI+gBUKYgZkf0Iw0tLq01HhOMfWZHfXqKSjm1SJMqmMSPk7nUsqYAv8ABOvlEwga0cYWtLId3gEADABKtnnytA2QjIEh8c3UcGEXtbSLNGDAGBP4bQ+8POpSC0EIdhhFmR0xuwo4iFEobaQjYZKdR0x31xKTKSQvPWNC0NTXUXAADhCecIUP+tBiBjOYVdABhx5AGHM4iLQhYIA1oFRv6zRJxwHKjZBjgORePrmg1W2HEnS4zE+Iwewy0BGE7SIxudznWlGS81lG98Y0NUm1aFLvlEzhADjo736LrAEGLNzY6h4BFKDQghNgQE3OpngCogqAK6yhOZBSjtzJGM2WfNsYXAC0oRF/biigfQYRgF1wAKaAK0y0Q89ha+5OstlH8DoxjNmQMpD/qRgniB3hhka04o2sAnSXGgqtWAHEB/AO6kXBKJevQCHQihZbOUeglPIdIbDgaVCLehPnRve6OTyDtbN9SYUwF92nZDRHhkQA2vE3XOWavztXRwQm8AHZ82v2VlC6hmsFxmsBFSAuCUgDXSitDCALbsK6oLkgvXmOnVIhxMCCCxs5QBM1I2s8leOwUdCDYQEYUMi6hDkJkKAeFWypCaG3+yMcFqw3npOAPyM7DkQ+AWy4RGu8pzuA59MFXaCeqauGqDKAQiAa7OgQ6QCo2dqFCws3hDMyBkg9Ozi/9KmIuFkA6vkIRrGbE4yJk5Arf6MpFsyQ36MGGjQ6siu3xCs+/0QLQAJsvBMwBsmjHBPDAmQYCgCILCOsJyV0Fgv0HWrIwPBjwylEhCo8v/R7AiBQEhmYAzyEOwl5v6OpN0eCq0wrQ6TxECeswTVMulZQODhsBVtggA4wBqhTLOgDiTkglasrhFzCpJnQEib8m114hy0jvS4LAQY4t0RMu1G4wohIAjLohAQQAORAsUk0iRPkEIkxIcKRwTtziQH4s3E7uRQ4tOPTQRKIPMk7KXsyJsAglQKIgzmgN2uppFrsPgzEAA8IApLbRQ2rwtWTgkV8gilakpjDw75ImBP0Rxecn0whBXsanj1zQhPogGssOyNLAYd0SERLvAkYgHiTuythFv9y5AVh2LSUkjtaXEeoCbnRA7VQS7hWEIK0swFvmIgbsAhTqABWU8aTMCZKlAnqyDRptK1GurA/6wGfFLVs1IAUILJs3EEVwIE0wMNd+KKWasVpOwCUspYK84gtYkLika8nDL8TKMoxm4FRWMmJqIK2AwWBSUFcokQO4Z3LmkbqqBZjujBdHDdyc0ihfMgBXAET0AWPZEoQYYoCOIBI2jNu0AUowQKaWEfE4IZ3yEpAQ7yz6zB7jIsqSIJiwYtmZMbLPMsWkx9M2ra3dMd4NLlyC0qH7EUNGwFPOABk2MurnJBC4KYDkLv9oQnqaQYCqKd0pKstSKkn1MWEGwFglIL/1pOLRbiPCihMFevHy/S33JHBLRDIXRCGDNRFkwPKQmM4RDOBATDMZ4Ea2muA14wswCxIwaGGA7gAAljNdFSa6NCxdxA5D/g0QBuBGRBOQrmAf3mAuUGY0lIps2TBE3yOeuu3wqiwCxM50gM00RwyY1MBDgCANNgFL0opl3qENfiYAuAFemuvxKCGK2ARE0gDepNNF4ImqGnH4vIqHxgCYRSWJIiBGOiuEDIYOGKxKbEnMqQ/XEOGb0NQkttA/+NADugA1WyMLIGk7DgX2IzKEk2Md8ABiEigibLITNGxEaUeZFDAanwbigCCF1WVu7DMZWHGEX0OL+mQ+cGCsDMG//kEtd8KLpIzhgNISm6IoepIqZYSAFeEynqzK2FwgIiggDYgAIkbUcO4MhQ7lijRsiLg0t+4kWZotBp9PzO1jpaan5a4xQNl0yDgAk/lgvj0AAx4voTpzgmZgigQgcHIAAxVzcA8yO8zpIgYBHpYsneIxbnDgsupgCVIQF3oDUeViw0wFSMciX48S2OKggxAVaCJpFmslJRKgwNN0RT1wXjDpWd5hGZYKMo5RwHwS9WUzRaaCWpIgwmgiBlwBQoAAHCUu13QBV64mWaQgAFwgIcIVoooBjLIBQJQgAzoR7oTR/pqj6UAgIR5VsTIJS5Uxv6skJrAxEpZA6EyFRj5Vv8H+MuNfKaaSKkOkIsXGIIieCiPqDAJ4IUDmFcAuAB8jQt9JQMyUADcnBaafIe/MpW/crZ6a0+d+khNoStC+ICJbQ9qEAYDAsxDNZyUAgADGYJiGNQDgKjL4QVYWdm44JkYBQUBiA6thaQBSEgAwAAc6ICk5CcI4z5abCa6qhQ99atV4Qhy5FOdFTgM9AFhGYQY2CFTGRSq7VIYhSAB+JK/uTIJMAHJ8yoMKC1p9DzEREzz9CvKSRRu4gUm7Z/9ucUOWIG9zVyIKIYYsI9OyFr+0RJukM7nuzARzdnc7NnF/aJdSBXH3YtWRSkSDR5uwEBA1dy9/SA0KABQyADZVEf/yq1dwyzRvQTe1e0+23RcEXCCt2XSEhW4oTUS3KXaRvyXOKgGXH2WmwrE7d3e460UEWDb9mABvzQA53hepsklYWgGvZ3eYL2AGLDerMPV9fxe+7XKNBDfAwA2i8tYpOk2ussASHNffJ0HGO1XzcMlcU2h1VVdBkZMQiBatj2VBFsDF3QYgYswAVZaAnbUf7kRRTJL2UQas5WtWtRetK3F3ArazMFQAMDNpdnNlMICdDGAe+3gnamE7krKjwjH2eQfMLLKbkuh7u2+XQhamy0ArjhfxMgSqIkUYcgA87ldHBYWngEAXpioACVPCT2hMLJATUrhwAW91vUrb3pA3Byo/1wiidVJgG2q4n4hRgNYAi2WXVy9EgvZqTz+vBVqJtD7ONt0AAeoBFW52Bvx3Yd9Yo7ZlQAgADi24lx4kUXpYfIk4aeJlvjSpPtFjPD9q0og5Gm7kfmNlkjxD58wDQN45PsMJvYThv50QYeFGqThY7T1OPslBOb9q0H+ZAi4ugrATXsSgJ/wiYIoBA5WZeC4gGCKOWWEtZlkpI5TXRXy3rT1HQlmik+OLAgYjkKgsOXopPAohFRGZuBQtbtg2CslpkYqJq874UqiZhVa213m5Rthi6AoBELGDU/qiUJQAHIu5xgwAAVwEHNRwRsNx1nuWe+F5xPGgqWYZ23GEUggp/9woQAceY2eSIAB/me5KJaYfOVmdL9YnOW/wwKCquZ13AJqAI1snrYLgICuYIsAKIAyuICLZguegIRG5mi5iGTYO7F528LVCkcSFZyPWMIvwqmUduiWLoDI4gpQIJICGIRyVADXuKaT4em46K4KWIO9QDGQ/sdIikXU9bwW+jxKskqX0NNsVuJQjmlI2KZh5YUEmOhPeiwDUFmtlog7qoBkWJTSKsxlLNORpl+Sjq8SVqEII0clVmLReADcGIheomvcuJ78cOP23esn6C6fAeyZO9aDJupc+rst2qmT/iKmwQITaGzWvhEFSIiDeA277onrUYDM3usbWYIr8OxmBgn/gCxTwrbI1EVsP46WCjPkAogBp3ZqHIGTtQAPu6YBttBpBaBizQ5omDyxZPTHfxxqAS0msmaaPI5mTd4pJwgN0VDuAhANHAkQ3GALGoCEavKk3AiAIrltng5o2HOQNJs37pYQhLanudu0Pf7js92FK1jv5FZvCHCRqJ5oBJjo18Boa0oI6dXszVYQjXgQuuHuLWxBLh5p8E5oWkZhaJWAXm5t9o7q6W4L12gN+JZpXtDr61aQ3QZrV0YGoV5G0aZfEm2h+n0Y6dgFFKcA+H1prYAAAAgdGXjvtcCNIfoktpABBTgSDO+Z2MNxwfZtAC9IHyZhiDFtjXUhIzHyC0DyV5feniGCBBSggcp2Del2DdeIg0rA8AznheVFlpFwHD7nc72ZEKJ2DurRAkIndMwidG5A9HCkBs3YADR49DNHg0W4EVPwCt3oBAVYma/QDVAABaywbkcNCAAh+QQJCABOACwTAAsAcgC3AAAI/wCdCBxIsKDBgwgTKjRYa6HDhxAjSpzosEkgOoFOBWrCkaLHjyBDDuRIZ5ask7LoqAy0sYnIlzBjNlEpK1SOULJmlcypko6RWUaMxBxKtKLKWUhy8OFzM4fTUEmVOnWqJIWFoliLNvk5a5bNHUz57KhBtmyNHWh5pLUQKKvbkCW7Rl2qtEaQu0EmeOBy9ywHDjx4HIHB6q1hiXFlzbUbhItjLhMmQJ6Qt0aPv2j5HGl7uLNCcBe7yqrb2IPpvZMd373co0fZHRYKe55NcKbJUDb5lD59GjJvyHb5BjlrizPt2eBUzh3LxbSx0x08dOggmbdpvnx7MDB+/HBy5bmD8/+Obr086uzFu3dmFchkTdw50O7eK9387749LLhU//aUkZpT1cWYfR4YY2B5wPXAQwT8GabEV2iNdVdzv0FGnn2QtcaBBng06BYUPPBhl2WSOdbbXtFRiGFkPXjCAQMdeohVCBIGMZ19kkV3I3k37jXBZSecwEEIM8iIFQeMqehjB45F5uQEnkTpYpB/DakBFIhYMMITzxhJlCRI3lUedU5G+dcJIWjAQAuoIAKFJFtK8sUpp0RwzQiSeElUCOJZR51lHKCpwQi2YPlFBBGcMgkejILgKAiTRCBJnnrGZEsP80E3AWAhMFAoKm1eg+gkjzpqQ6kgfGFHpTFds8Nu08X/umkIXbhgC6ih1qkoqqXiEUGXrL50CnPSdfCcdD106sKyuCIiagR48IoqHsAGG5KrNTTXgQmybljrsjCAasGhiEYrraPUWivSNTz0QOGxHmyaAgNKLGtLuKiMSy605/5arboUWZACptZBycG89TKLCgwWXEOuubz6iocNAH/0hQaYctHjpmgy4EIXXdhyL8MWjNvoudRSXDFFX4TQg16ayssAyCHfW7LD+05CKggnRyvbyhLBwAHBp03QgYvzdqFEzSQ33DC5p0SLx6FfPPPMz0BDhMjQesUKmScnaKA0yCSUXTYUTzzBAKHjImoBFCqokLbKWUNkwQmeRKYxmUPO/0wzAxpoEEKagwtKAiJfXIPKCHK3IATddTuERwgc6M3kj97SnELgM0NRcslQzAzDF1/cTO0zkEeu0DOU561xZH+JXTYDSd9qAbTUIjICCagc+jYiiJQwQ+qqI2RB609CGTYDJHTRvNkjjAAFFC1MKgnvt39RAtotlEB88QaBcAoMKXAQZWRgy172rYsLrsIIJZQA/O6jM+qr1ViDf9CpMMgyxhHtilKnQPYx2wGvZL+6BiJg0DxbmKxU39PfQFgRAa7AAICxq5XImNY2RFnNAqgwW9vMhYf8SZAgrDiFT4KihCOkIAUhsxcHcUa6CICweS5g2KHQFcETpvALLKwX2f+aR8BawYBhNPwCAxlwhC7o8AtSM+EJB2KDL/hEFkpgYNloxkWRQeEa47rGNWDAAL/l62HPAMEUEQKOqY0xh1vkIhdtBQOcWcAWXfBbF86IKBD0cIoUFOOynEdEOSqhXkdsGBlpx4MhheyBUlyjE1iRKiPA4GNy5OIhRfa0G5aReXUk1x/XGEgY4DGTmrRVw8T4OTHui1GjnGItbDBGW7iAiZo8wiHrdS8xgrFkpPMVon4VS0Di4Y4gS0ETUWmrhZEsSyNEFBQjKUkq4oGBINPjHOloAVOKLF8Oi0DpSqDGai4EDxvMozpBtjQN3osEL0wa70hGTnM6BBGnPIIed5n/sCOi4pQ2Q6M9HYLMPH5ymTTLIRiPiMSHRWugCynBKbugzCNYVI7sYxgSwwmtYlbTBogopAZeeNF1hmxhn9tXBMoJ0YNQMoTL+mQ8P+k3FzhTjLiDZUv3xzNU1CqbBn3hJ9V5Kx2Wi1Hg2GlBDmEDlky0jNmkXTyT1kxwku4LHp2iFJqqERhwkaZdGGk81TTUolrgX0p1gh1m0ASHeRWofpNpCkIw1c1p4HBpReEoniCJQABvogYdKuBe2Mi+2aJ6NkiqQGZABSmw4hBSkMIhDkHKGTzBByvAQwkIJUfBllGs8wLnDGbgR8o6gQkvkKwepAAGMOjBtPpjxQxW4IMO/+BAEiV4gpr+RlaaBu5WvozfDFAnhBmwQghlGMQgBKFcJlQBDBK0gR1WYDQTmEAHllUBWGn6yd2BM37xs4MdbKADH+iAHvQQhCA2QIELqMIRo9DfM4Swgm1hAAAYEAQV6AvVwEL1kyRw4DXAWwJJjPcFDsBBETag3vVSQBWDiG/xZqACo90XABimwAteQA/t7q6Ms6Opdy0AzQJ7Dwx7iMGCGcxg5upACqprAT1qi4H7HkACBwBAAV5ABR2s4AkfZkCbSMC8ta3vgKSTxAwO8QsgLKIIFNiAlNU7CCbII2szaEF9rWuCG0tAAgPAsQOYMIq9qg3EvPMpVM0GA2giov8Fz/jFD9yhClWsmL0QZgJkVzZd+2LgAAcYQJi//GUClIEKh3gBkEfAPN4hgnmELJSb3wQCOSsCCEmA8pSZW4YhQIAeOngCq+zwhC0DQNCCJrSqcSyIF7y2DC2IXvTaZIvo2SLNJQOeCiQhhR9wAgyYZi8FGjwIHTCByzjwAT2MVAL6TsAEAAg0qlNNaFQfoABDkII8pCCERacZFVAwW4DbpDsVlKDXv3ZEpi+waVWUgQkEIAB+MWACBfNnCC2orQlqLG1B60ICS1i1LgRtaMkeAt9AZp+bzHavLKEiBE+YgR58/YsqZJoCGI/yIN4tbwx7vN7L9owNZlBe+5461Uv/CPgVviyCK+jiCjBnwRUOMAhX/0AK+PYu8P5ZNlDp+gQtkMIvOMGJiiehvRkXhLvh7XEDHMMAHsfBBgwjBVLr+8IHCPiXU87yL8P8CpZ4+co1PPEfgEEIs84S8NLMsBGgyQ7oJroiktAIdrd3A8UuQ7ydfoynGwDqAAA5VqTwAh2cwMIYzjqgU74EXvBiCSIQwRJgbokoiP0KS7iAIsBAccsC2c3/vNUIQnCCJ4xCD0Qn+g0ufgGMU7kMTe+702efYxM0QgcxGQUVLouDbQHAAI1nvOQdz4tjPD7lLWeBJZafAREcgAJMuMHQi67oJwDv+jvXwAlWMISJp/4Hcxc2/8bxrgMd5ELeD+B73/3ucQdMPSSy1TKNMZzy4jve+I3nhQJAoQDJt/zrV/AOlnAFACAIQ3ADqEd0v/ACLfAmViM/FsAAg9MC0pd6RFcFi6AKSOd6ypULAPAAIPgA6yd7f/cAAEAA70cRUmBZtGVyW8d49fd4jqcANFgBFSACFZAMlGcJMkcAOjAELwAG08cJP3ADQlAC96M7ghNx3vd9jrAH7VUAEFAA7KYKi4BhBhCCIZiF6QeCUOcAHjEEM6Zv0UZoMLgENjiDx0CDChAAFTCDySACGVB5LMACADAIinADruVrCjgKw2U1cANxcMeHqVdxizAI7LVx0fcCMYCFf/9XgunHhV4YbyEnEargAPsWbVqHfJHHeDOoADNYAQlQfOTQCYVQCGuQilEQBQewAQe4hxbICaMAAs8gCU8gN3A3hEQHfouwCILgeu+lCGVQAL/3iJKohSF4ghcwEYoQAwTwZywnAhJQAWiYANT4hmz4ho8nigrQd6BQCMmQgxmwiiKAbQhIiN9XdS3wBC2Qi7HICTewB+cXb5VQCQXgAHv3iH4HiccIggCwjBIBBB6YdTgYeTaYDGhogwmQADQYAAwZAA6ZAKCwfgEAjmuQARlQhwTABESgB7+gi7s4Cg04A1LgkbH4A46QC5FIABDAYBdAAFD3d8eQfuRgjF2ohQD/AIYRUQWNCAApF4ciEAVXYIM3qJA0CAqdEABJqQCFIJGgQA7k4JDJcJF0SHNUIIQn+Qt6oAc3cAMlCZKcoAeLoJIPQACC0GlDMAQvqY/HYAqmUJPGmIWm0IVmGREpWYaRlww6GI4VEAV6aYNHiZSdkJTW+HSmAAoOeZECqAtCCQFBuJV6AAY3QAQvoAiKAIQbFoRyZoGKUAmTqApMMARlUAYQ8HvpdwzkAApxCZcl+Hd1+RCKMJZleAWR9384mAyrGI4SmZSg4JYOuX/k4JuouHwsoAt1WICjWQWOsAgxUABUuAE68G6juXGK4JFmlwQq+YgX4Ajv5giVUIwyOZEz/zl7MkmCAJCCC+EOPRlwnHgFq7iKGbAGENmGSqkAwWkKnSCex8B/CRAFGbCY76ALlpBjBEABVaAIykkBU/icv1gABGACEKAKFkeWj7gIZVCZVVAJqzmT9ymeIrh+BnAAEAARqvCdwCcBKycCyZAAyYCRGcAIqbiiEAmRUPkAbwkKT4mYCbAGLeqiyyd511YGrnUIkfkCZaADg6AKv8hgSXoBuXCMlVAGeQgGRNCIj4ij4/l35LCfH0qCBXADD6EKHsgLKApzQRkFLBAF77CmUzAFGZAMTdmUvTmXwYmjUTmjC9miFxkFKXcABFAAFECdL9CVYCAFowAGo6BaRLAIBP+ghZVgmV3Zmb+Hmm5pCvtoClm4pfwne5WAew4xlicKc1HQl8v3DvZwqqdqCS/KCFPwDhVwnwZwmEgJkYMJkYXACDCaDDRoAATgAM7pnJXQnK23CBegXtw5CBTQqCEYpYowqIrggSIIlQZQkzXZm0+XmvxHjQbgAILwEN+ZdShqCe+wiu/wn2sqAPaArqb6CAIgAJZQAXOKn7UaAL1piqmIq9WAAHMJnah1AwjqZMwZA5UQb/JmAI4XqyC4Yxvmr9A6rTeKmk+5pW7JfwqQcsfgAIPwEA5AfyiqC2v6sag6BQLQpiPbrnBgDyJwnzY6r/mpADk4lalYCJ1gAAWwcY//+ZFb2VpEQARV4A5J4IygEIkPUAmD+gKjUAVkiZp1iqN2mpr7CYqOdwAY+xDyBmZ16LGnaqqn2q5ci66nCgdTcAX2KZeDWbYKwKJ6eZHxyZBQRwCVcAGHyJ39qoc5ywSMqoU7VmZSgLS/V635ybTduJ+IqZ/XxgQO0YhgZpxYaw9w0K5by7XpKgBwMLlw4KqdUKn4iQLzyqIfAKO4mgwBYABvWwADi48EG2/OyWDM+YHTuq3ZtlpMoJJPy7S0O5GHWbYTua0PgbgSUIelurWo6rjvILImqwxgC6+Ym5QQuZDMmwCo+AEJELoXsGGWSQQIupwXQLrydgCP142YSrOu/3YIYIC0H9qGvEm73kirQau7DuGBEuCxAvixWru1J1uy7Cq5yiAAKXuf+Lm8CRAGzhunH1AIYRAACkAAoAmEiQqZrXUDRroIDrqPNNtYkcUEnml8LkuvODqY6zer+TmTBOAQAgkA4Tq/wSu5XVuykgsHxssIAVCpSYkAYTDDEem8M5wMM5yfvOqrEDBs3NmsQUh4ZXABv+eWvNppG5ahIsgLosiQgomlfWe+OFqWDiGmBlDCqBq5IzsFjZvCK6wM+ZsMERsAkFCRzVvAATDDC/ABBUwOlUABEGy6J0iPVAgBEOAADnuYB3ABF4BaYiqCLruQ9Iq7Gzyj6xvCCwGqKP9anMuXro/LuF3criJLueHwCOE4p8url4LskGm8vJ1ADgWweWBQmUzgCFZ4AQMbbTbItG95bQXAXERssPQ5o4NJuzNKr/upkwrRiLwwgLqAtWuqxZB8sqY6BY9AucabAch7ucobvdGLAAGAANLMvAesCqJcqKuls4qwnM6YxzWZk84JfPoHkZAACfm5lEw7ozT4dLqcEKoQbR4bduIazOlKuZSLrgLwCMfMwsYrszBckTMcBtIczQHdyaAAAPZIhRlInZtHBEwwjJEYnJ3wp/fodIgJkTJQzuq8f3hqwN2IyApBxEsQzyaMql3cuJPLtSgNB9ygDKDLzJob0AAMzQH/jQCCPNFwjMow2bYU7ZwAQIrBSQ46lr0WTca1nNFlrMEz2pTr3M4IQcQHIK6/m8UqbbJVPbnKwA3cMAXR65adAAnSLNOQINDQ7JCXWwlMoLPK2YsOSgBZB3aNt59vqWMUUABOpwBlW7YIAAnRe9HOuwYM2Y1ObRA86ZOWkLX07LXDDMaRTLlancwJcLkoIMOFsABqbNmWTcAADAoEsAiP2VpX2ZVMoIEFwL0KMLGdAAAtaddrqJRJGcNorKMfIJ8QOZEgjRDq+dMBmMWR+7XIbLz2jNWMzdUwbdMz/AELUA0CvbwznABz6ZxwmwTceaEvwARMMAg7Ha+qTdSCO6Ng/23ZtOq8MFoIStl3BJCxCQEEvHwFwQu8XSvc96zSLLzVke3VyhsG1ZDcaLyQTE0OD8DHzhlvc+wAvuoAWccL8fqnG1AAgGy+EIkACxC9SrmjjEDefQ11AHkQilCiBpsMh+21II6u9szYKb3SWQ0HycDMnSDDMm3ZAJzGAxwA5EAAzyWZVeBkAhttIrB8+oefbkkAMQDBFj3LCFAN0OvaAXCR5F3bxwAAi5AQinABMWAACvCfjvzeK8zCwm28wM3PWu3Ckr3iYYDZZL0AhQC9K5ragrB5rCWZlmnKdf13OfqWQE4BnmkAOrq8yv0BM4oAp7jJ3fiP6Z29x1ABjPDh7/99z1rOzyS+5dwgAJHdCSgw2TWdxgnwAdWQ6TOMAAoAznALYdxpbGUgCDu9n5f7p4twwYjZlAmwALkq4QGMigvZjTTrzs64BBhpqviMzMENxr5u4r5OCOEgn5k72SyO3wB85sqNAIOpY8DacfFG4G5dAfuHo6bwp3GOlGf7v0bOCJsMCQsQswvZCX03oggBwT6521lc4lru6+7O5b7e0lo9BTIr6cYuzQuQ3Jmu6QI90TXnr46g029tD++wokg511TI4DrKoriKqwNc2fhdDTAavft3sbjtpCR82I970r3+7h6f1Vr9CFEQ2ZOO72M+5pjOCMiNACgwlxSweZEpjMr/teAEgIN4XbYPAKgKH5HJ0K6sCr2FANYSvwanuM4XqwgHMYzR5nIar9hW3e4fT+JZTQhbEA4Z4NwoQAOU3uLJzcYsf7lD615KqgrROZoU8NMyXrZ/egF4vPAJwAgCMLzQW8DcbuZ9rZrnfRCySaZvag9tqsXAHu9RD8aEUPhw8AGTXvJj7uJqvOkDzasBzgsEagL4OI1KWalr3/Zl7Lz3+7kBXJHKLeGgwAuvWRBXeAyTN88jW88dD8aPPfhazQ3hwMaSrvVkvgAy3PU0HLrQpwiD8JIkHIACWAGuTedU6ACm3gnO2wACkOlsnNwLoNFlbcDH8HwHQcQuGwWqGrzB/83P880NW0AKH+/YX06rJX/sx67G0EyzNVfdybUBbA8AYiuYp06FnhkHSAmOjJDfawAQYRCEKVQoQYCCARQGOAYAghOIEZ1UeqCgQhR7luxtFCDg0SM4ykSOVMaNELdwJEWGFGkSTqEAKGSiGBhmQRicOBHsRJBAAYACFy5QWCRokCAIBo6B6tTUFIECFCge6xTgAyNGhbIKXIBgQYIEaw427XTsgCCJEXMZUJAsyrt3G+11FACH5UhuyrZs4ZZXpbKQ3PZym5KgE4rDKBYsXmyTcc4ABgAQOMBLwYHJAJYoCHC409MCiyoZAAUpTLUGDRitWcN4QbVqBRcsLGtgQ/9aJ0lyPVhyhcVcuXXhPBJOci87vn9JCmb3KBlZmV5t2vyAM3rkC4PKXChAWcQUOPYqKIAOlUIB0gHCrF7TIDYk0wsaZMgaAH4ABQYMUMAdA8AxCXyLK7i6iitJGVKOS64lvFpKMBxGPjtsJ/ncq+YmgXgyoIBBXihjEFU2uMCBA64QgbOYQBsxvQUYEUA1RjJYoyBG5puxKYU60e+C/h44RoQrLImrIzg8Is6ulgghZK/B8urrr772esSw6BhDDbWbKOzKAKgKgICCDQQ5TwEUDyPHvNGOCUC+j6ZYoxoZM5hiCgHW6My+po4xgMe0/DumAhHoc3EKkIwEqaQomdz/4iTlEOQmQb4aiCk6rxq7abGBukpAvyWWEGEJzAC4IhmeEDOPgGPUrFCADJJRgJfeNpIRJoVAAaUhPiWK4QFeKkhmDRflsks4lvJaVDAlGR2JFJX2IgQORsKgtKvGcoJsQwi4IwAAESwRwJ4ZdwoAFKguQLUTSF7Dag0RDjChAxMOCLCggxSwtSH+0qJIgUKSYWQKe96hq8C7ECRFMGeffFIlhPkSQKBpXbspAZwii0oQQVQRxNwSK1AvjADODIoAA9BFTTV2ATDBhxN8wGCJChIAhcxUG0IrrbV4YW21DOYazq6CWzKpSb9IYrYvk5B75IOdaMp0Mdiy3CmMnwhw/yAqCkY8oAKdEOjk1GMUeBO1rCpQeYITVvDBgW0fmIwAkjEoIq1F1vLVrZ45GvYulphkh51kF2awpOPYUYaRBHi69DXGBcopGU9F+PQAyi25InGBvg7qP1AQuJCxBM7mIATSi2jk9CJSL8IHH9JyZC2x18ggb6DhQInhBP9GbrCT/HJSGSW3QA7aaqbDSWLXwjDg6gIcAOCADDqKIhmpy32gtEobWCwBXjDowJMQVHhifHrGN/+JFVqQSLcHKsgALmGRDMd2ofUSHjnkllTyUf5FIoUQ/BGGEUxTnJUaR7VybYACEKDMFKJAMZsEoFz/SdditIcASHSvA6NTwQig0P8CEIZQEiGUCBB2o4D30QUO4QgHSlzYwicBUHf4AxzSkJas+w0PK6WaWk4uZRPIHaBL3VkCWDIkwc0poIKfW4zZOnCC8HlQCFMUgiTsIAkstkASEalb+2hnlxYGT3986YsMZ+is3tnwJEvSnQAzJB3HdMUrBjEArKLAAhOJ4BGI4wkkoJIUBaDmDA04w2IgUYEDfC+KUIACFq1oB0giAgpC4OJutFIXGCZKUQkzo+4WtUaTIAxSOdyCMrTnGgrxZCA7AUAlCvBKAFSAEY8QCwJoorkLAIAzV8IUJOJwNig+oZGQJGYJ7FACSVDSCYrYldgEwMJQuvCGelnSJ2foyTT/miR4fkMONx5RPDnKEQUB2AnmIlOJL42IACIQS4Y0BwEAxCEAsPlcQwhgAhygLQTCfCQxISkJRNgBIouIZfRCmUmUhDGapMjfNXe3yU8qSnfMekQ4dwKJTvSQQsloF9yeJ6coVMdrrixARWxCtkJwCQc+KELawvcELVpREiUwJjEHagBdAG1+K7whNG04NIfmj0mPiihETzKFC3mFJ2tiIgICMJkDeIpQw0mqLV0JgesloBo12qoTfcCBFZBOfPzspz+dUIVc8MJbRQIjolZiQ0RVM4cPXRREN+lJaFErS4Ww1k3wAzerPe8KU2BEUnFZkUKkprANWIO7vgdFFaiA/wEedKQ/7TADJyyifXFha+2K1BGh9eV/SMshAI0qw8LN0JufU1zUprbVKEjAatuqQEdS05UusaU9ZxiJJRw7AQ56EAq2wCIiHBlQzFbiGEGyB51qRyw4HCxKSiLFwU5CSuwqio3XJEQ4TtkVGrzmguoym7wkIIEpsBBJylhDlw5QiOgpVAADeNcEwCdZD9rig8ksbglA4IS1XOEKsyNSkY7kVttdlx3RnKsndyfX1P6NL3BgImO+u1UFOIBtBwhUXaJ0uC7xIgMgCYeCCKELDNjXpeJrASOx6M9RANgAAbKEt+gCEtttgVmASdqxTPK/oOJvUULtpIQpLDHVEJK3ef/JwBIAwLYG2q4vAujSEubCHGzO1wP63KdkW9xPSTxjIrwJ0BWAAzQbQusRUSpaSxos4fz9735vDsc3rfSi1DRAC32ZwhIkEKolPBNpj+jSFZ755kUJAANc8AQHGcBiEFaxBZitG4CCNCS7/C6vS95xnh3EnLlWE4emxWsGXqWnUBlABFKGQ5e4xQLhPInQrxTBoWk4Q0JoGXwamCxMQwjCLTphVxLQhSV0MZdMzm+PC3jESB5xytQsR7vbddYou2uJP2NA2ybgdgdw0AEJ2CMc3T3AK7clLxasUCRUprWgb607JcFhAFsm3WQ/+EEhgFAtM77CsQXdl8+6p9nPllj/s1eCFxsO1Yb2kMBkOvDwDkxA4hLHAQYGYI8cwyEKQbpCwyVQl5LMugCGDmOQkTNfY0ygByHQgH4RgYoPPkGgmbWbRlrYQrvMhUgigfYZ9txm9xDy5z9Vxjsk4D2Je0LpHFB6oznQgQFYIsdbEADlKCeBAbwDzewuQBR4iuWgUn0AiwYu6TSggrOnLyK7OkZ8YfhZA8EhNT5H2oGUYWf5jIR+dxfBk1nHgRNwQPCCX3oHLO7vFl5Bw2wDQNTByI0MEAACI/dww4J8YgwYgwtcsO/ST1AEekSkCv6pAGeH9S2d1+UjCFeJnfX8FwGIwGo+WEHtTxB4pk98AtzmPQEG/xCOqlOu37rQxU6VMQXJF0AE4t7mm4MXDt9m3gPT94AxjIGDQZQwFxVIvQAGtBE6gRyudr97jQQHGDiwAJ8scynuc99oT7AudT7AwQHeEY6ATeEdJoJ1So5f6K97N08CvpzThbHTNgRshLRAq2PwluB4QLoYHNYbDrfSu3cAgHxKm7AKgdsjPMCrvfKhBxHEgY+rOsA6N60TCUZIPpITJW5qIwHQhfubn40gPgOcG4lAKwMwsweUiyEBuQpkkMorGjiYggPIJ8AjHQ7EPaU7gcjytSdQAR8AgJyCAyE6t6ybH5GIguTLqTKaMGShtnAwwBm8ufmRgNvQvh00Nl0AGP+O6Aid87+DC5q/gIPIwwHBgyIlXEKxGoEW+6AWCAGoyyng0wiMw7gWAozIe6UWPAk4gAsYKpwtKERxYyEaJADcmIg/kUGN+L5vKTA6PD+VgAMJcICv4oHbS8XbC58O0i9GggL0gTrme0RE1Ca/iALmkTr9yQt7ODaggjf864j58b4DyERhq4grgB/Uk4vUC5oSI8LAAAx7SKRGwz33Gx0N0IDxGQFXfAIfMAFCnER7UBLVEgnFax5LuDlG+cRxk6gF+6wMMJElwERj3IMZExKBWUZ9RBIk6Qv/8yy7sAQA+J7By8PBY7nJmixb0C8VGMRx652EGQzAEIFcZKE0WqP/bQql7vK+KGgXoDDGtfMirFhGZsQ4oBEJZeEbgEMxggS8JIQiPWS5DmKkFpiAA9CFQ4s3wQhGgIMDinylZJAy/WEjMkooM7SHJuMSkIwIR9gVhMibjCAQAwsMfzzJksA534q4giSdwFtFhFxIKAgBE8i6HqsrdhAAFvCWYVwC5jG0NWKS7nqHK9wWypAAy+EFqFhKutkNSHifgClJvbGdneqskMBKpCtIHtjKEEgBBmAA/XoCDrA4AWiYSRSe9FurIlQAV3KAWnvIZMm1AVgBHcCNoKCA7NNL3NgDAgAF7iOQ4ABIfswk78s84CrIwQs8HpBJD2rIAcDJRAGcRJNB/+F4hAx7JRErsU9SkjFsHdRsTokQjYqQneiJntc8PZbIJuAbgJRzOts8SMYcgVjMwi9cFMCYghqTAK/rM+aBnnYUNUJ4BwxYAeecT4gAgl3pFdlhxuLoLGnyx/kiux4IUAEdvB7gge9UgROQxUQUHqqjHAB4UMr4lwNwgMlru1CKKEKwhwFgTvqkz0oggDgIlL9MvfhZoa+DAxTbshoQ0ADdSl6LwhPAALV0swwlgEq40QL40GTIgHKbvANIx+sCJVJ0gA4tUhPihQEDTOEwPqrMTgDtAQ4YUChFSPCcgAF4Ji1EGEJzJS4lAAWYAl6g0AI4gGfaH6QBvisAgHwp0v/59I8leItOHBLAQD/0K0z8wwAVbVEobVGWG4ERiNF0JE/C2YItfaUbJRkeFVNemMxdVLYMqIAwZVP6jIG0EoEoqLEBgUPYVAYW+s8tAy4WhVIe0AASCAFjuDjkzItkaTWSqgQNExVsKYBjWIObG5bCgomGSENJRU3/oJzvQL1P9BnYtAduiEE85Tz7YtET0ABBvDhqAzVumFAu1TAvXZ4KpVX1WjavCIAKmMddbc5G2Ba2oE6M+z6dM0m2WhR5w1Pdm4AVFTyouz84Y4fc4YsDuNFWJQBemNBrLZK5SKrF6JfGeohvXUp4etBFBRo4vALhG4CsIxLkzNCxo77N44L/IJgAD7C/EpvXASw3fM1REplQ7tCZPAPYBTCIQliDJciVgs1E55mMYxA09RKAo4uXBz02odSfMXRYBETAnCoyh9qCK7DRj3UefnWAQIIN90Cy1aiAAmhZkKwECBUxnmKhaeQ2lcEAM7s5jVwU4MsIGWS+NwvayMPRHP3QJ4MApC2E16gwpY0NBSCAMoDaTPSPyeCFGewu/MtalTkAZPspBjUtHGJQk5OwLUA+LsVRuHGAEVEAzIEaA0qI/aDb/siFBzU0cUOa+TqAATgArf232+GGoG2+sb0mQm2lszVUV7oA5QIFvtKq1IiN1ygEDDoGgqXctQMAA3AfYSyjjRxD/0MTgF1EidL1m9KlIaprJbM920owF86ABK9Q2iSLjUKAhLjFXV15gDjIAEOUsrriCxYCnP1px4YK2uM1XSt8pQKIAeZt3tWEDwQoiDWok6zYK1B4WuyFCLZLBkPE0sEVshoyrRfkWAEMu2hd3xhI4NRloKVYIqzAigS4CXoBgPyFiD3IhT95nwFZoUwKXBwyXcINWgcLKkLgBQRO4BjAUdYtDfiQj52xCaU6WQOoYJp7gGQUlvmBoYesK2pDo2p6KAGcM+6qgEpAYfZVYeXyGEhAiAdVohY+We6h4S6qAEM8xExroWMZSjGSKG5CtMtLhhNW4ARmXaqQAevdEwoAAP9QkAEZ8Ip6kWIMdp8R/RYT9anP3K6/eb4ik0ST24IMYFwjTuGgaF0zJpdB0AECuJ42vglISAB6xF4T2l2orM4c9l0Ie7DuShpPirCwswcCEIpAHmRyWGMZiFtBQGSq6ITwWoAlfmTcrbTSU9JPBKNx80zh2cgr8F4hNtzSJQVCG4oLMOKRUYpOMOMNSWNeUAj4hQ8Kzt8uYq4RDczP4qne2cWMgCE8pqvSJQwC2ABVWIQ9QOGRSRUZoAEZCADMEIEKgAQ2buOe4IUKfp3lCtuShLuN+LowCpxqFmK/CZ4zymN7cACMEYRFCOZXYmDsgY9+SQb7QABzpgFIKISfcOb/3aiASxOSN6RjFcrni3zLuxI1BTmjDBVojcmaC5g8c7ke+IBfsGhoiDbjM87fCzaA3pDBuDDXAimwhywjbYImouTiAkYOT8aYb84alEYPpljp+7CPlTbjcWnmV1YuBbho/SwQYV2h/blj30UjNDJdw+WGgCZqCjDqoOgOqlDqhWBjdlZrcslf+0RGmwZMjhBWHU6oGxKjO87mOeOLgFYFv14Ekw4KtSUNe0nqAJABpmhntYbn/GU7KoYf4CjJWU42o0SonkYJudoduhIADvHrbxaKbNGWVJkZ8mgKW5GBYkbsmXFluvWTQpiC2ZGTfJyL2QGYjngES8xtLQiH3fYpKt3WAuDes965uQy4AEdwhEEAEcC+AAViXdKYGbLoBFAgB1Oo7upe7aUMCAAh+QQJCABbACwaABIAcQCwAAAI/wC3CBxIsKDBgwgTFmzCkCG4hk3AKZxIsaLFixgRBgpEpyOwWR3pABtJp4kciRlTqlypks4sJCA/yho5awySm7NkyTJyKpAclkCDCm1CR9asj6HG6ByTg09Tp09zHLFwUqjVqxSJHv3INIdXPjt21BgbtuwOHkqMBMLKtu2WJh+RLG1qdkeQu0HI9uDAg0eKMTBOuR0MFFqgWV4TlwUrtkaQCZDH1uBAuW8KGIQzp5RjhK7YsJLH4q3RowbkCaYnW/6iuXXFQLJy2OVCGy9t2pFNc/GAewJlviksuB5+UGsoPjV2177tofnp3c15593b9xLx6wO1yhpjN4jy6OBpg/9vPp06AxvYiTfhCEzW8eTjmxuLH512atI8hKdvfThuqByO7WbMfPJhQB8XpyU4GQP7aUaULEj8J1t39BHYXG8JJsjBEw1mdhgSX5V1F33hIYjaZCecwEGCLXRIGFJPgeXYBAhCdyGCk3EQggpPjADFj0+ccNoJzLjYlhFy/ceYXWOhhtpvKZ6wYwuplPBFBFh+IYkKK06wQglGstXELEktGRZlIaTAwAg+ovLjj1diyQyWEXzxRSopoHbCDGGyFchxoKl2BAOXFGqBBXYm+gUzjDIqZ5YjqMhBi31e1cQYYOXFQQpdFIoKKqkoWkcdETADwpxYgqAqCBHUAUUIlLn/UulVgfAgFmohuHAJDJd8eqiddD5aKqOqMjNqKiqoqMKsVgVyxK09pFDotFCgYoGVwMYpp6mrglBHCZFysAKzQp1iq55PXGLLtLaAim2rpA5LbLcglPDqCcuSC5S5dk1wQrqgouKptYhqKy+3qxoLRYqU6rvSJDyY5u8T7VbLLgwwWEAnqosifKrCKUriMEsgMNDDXvhW++kluvaasZ2OAusxo9/iOzLJqJzcA762tLuuutMWXOcpp1w585wWhNDwzSlBcfJkGnTKsgtdMGB1Fy68rOih16YiSah3qsAa0yqlwsPJJ2hAqAsMpMADrGiq2asFqaBCggYaqMBjC1Sm//IEn2SnFEgKe4XAgAojpAB3CGky7lenMNx5CQMajCBJCSVcXoIr6AWekRwmb8qALSrgfbWbtrSdQgouJGpB4pVrPsMMQtTh+ecj7KVm6VbjzfgKKqy+uguIRmCv3k88AUUJM7gK5u0XyZE0X2tOrkEKHKTYI5ttZx0n5phLMqqxJaQCAvQWyfFFCiek4GOhVjNAcd0kjEA5CagAWweqNDuKJfoUkcMpZqEEv4xgWiy7BBRSUbf4ESp/RiNWox51PgAmBBynEMksBuWjn7WLgXarHwlI0CuZ0etjpfqJBRGiPiPIxAX1O6Cu2iUwKJCAASPEX/E8dqpRfaEOVlhhQv8ymJOcdGGEDHCBEguFRAdCsFT0MlYdmhdEIR5EDi6ZxSyMULUuMqALYDxiDm/4RDkVC0uj6pwVD3KKkQDDCDe0mhKpBsYcto0HXQBVlbbVqlRVcY0GAcEpXAiDql2ti2K8odt48MUS1ilYqQJkQibxBSMooW1HUALWuqBJJVYtBUc4gvcMVqpUqVCSBpFDBAoZPzpSjY5h7MLL5LWxUv0RlamMgAVgwLYvgnGOrvTeDum0P1PhciJyYMYufwnLLpIwcoqy06hapcZjstBO9vNl/NR0uk+B6mtWGp81JzInVMQPjJTrSwj8QqiCicp241TIqMzJgEFtU3hYg2Yp6/D/hRJUM54GYUYJ6HnOq32RBBgjZQmACNCEuAoGvVPbIcG4K3deaXbwbOhBQFCtG0o0fkpQgq5+Baw6faGaipDCIXphhV64tBfjtKHVVifHL2ZNaHSy0wwquAUpVEEKKgWDUIcKU1RaoQWqo+kXbVpRafKzn/4ciA1cIYRBWHUQOmACE/TgDFyCgASfdFsK8CbRfJIUqgsFRxCnmgVVbIACF6AAVqWgB1TagBmXCGtfLCM8QnmqSuVjng1GIYVRtFUViEUDGlQxCCncUog2uGte63mERTrOMpRjwAIxRzdJ2GAGg8gCBTawAcQyVgfisMEhADkKZqiPaqurrPBCcIK3/+FNeQwMbOZsIIVFuIECo10sY8XxgpauUQquKEEgeElZ2VJOcWPVgPLoVr5UIKp2NnAHEDag2LduYBDioMJjAUg7H6jgFJOdKShXZ5nbWo6B1qUbCfz5gkGoggKLLS1WX7BSISLXBx3wwRegoILMOvC5q6ucLbwGX0T9jbeD4C4aSovYQbwAqOMN3H87YIIOtEAST5ipc5M61vp1tkqH0gAQD6EDNAB3whVmgg6KkAVXSAJwgZtBFnxgAgz4OAszcEXpJMpN4SUYf7n9ggVQ8YQVu8MNRXAxdxnLhA2YoMM+WIErZiAFpkmCAxwGwAEAAIAiDGEIKxhrRPEmPLyNQP+PJTjUCJ5gAz384MlwBa5+maAKMpMZAyZwQBHEwQRySUEIKwAwBg5wAAmQGQIveEGaPxo/vG1iTfgDFdc0q1I9nMMNcQUuBaiMBjIf4wCnJrMJcHABHVQK0RMI8wEG0AwJjBnSUpA07xxouiN+qsFQ0IAkOg2E3+IXrlS+gKmPcQxeOPsYqsaBDoTQoRasgMMYAAAGJMBtCQzA1g4YgkqZkLxDLvWgl4Bv3fBWAin8QA9JMLaoSysOCACA2fjONy/GjAEc1Bg7Ola0mLtda2/bmgDiUCly5xziHNovh3pMBQPwNQM762ERpIXrBS5A7xjcO98gx7e2HdAIV7emvB3/8PGsB/Dtbl+B1s04gCqocIgfvMAVIa5jCKs2QlCRgLYtoIIeOHFxNFwAAgVIOscH4fGQO53ZZHaAKjJDBVf4AAcpF3Ojuy2BWg9ABCLgNgSGYOcfDMEV2SSB10LYc1RoYFNc5gQnfgAEINhXFeIg7gt0UAkAGMDpBvg7s/9uAFVTwC0zQLOis32AZjie5QNIwxVEwAIRTF4CDhAHGH5AdHKPoOdrHyEUIMowocv9B+fYLozB+wJVEIDwIA88vnlxDMIXngBTx0rAsa11x/MC7GB/+RWGD3kC6OAGnOcEGMiNQ2uBEIm0DcGwDyF3ohMhBklPugMc8PFjgCIACsh3/+DHL3ioA+ACVwlyEbDuYzE7vhm8cHwFLJ+GcqQhDSy4fxoAYOGhzx0MaMcA1hVnMsU+/0IF7lZ9RHd0i4UGDoBqzaYAElgB+PYABmCBsjd40AYADrABQSEFaDYBPaZ1S/B+yeB7FZAMwccC5WB/LMACBDAIigAG1fcDoyAELWAt/SQJI3A9KbAC4vYDySd3egAE4qAIL6AI4kAAfmcAvFABFQB/x/AAVFiFDzCFVvgABOCBK2EDisd73FZrzQB8T6gAyZABUTB8V5ABltCCLJB5inAD/jd3NyAEkoAo9pJUQiCHQyh3RLAIihCIVXAOryd4ClABzjZ+WbiIhYd+Kv8RZFc3ggewBJRYgr7HCxMYBZrIAprYgi14BQXABHEIBnPICSAYKqnQg6vTAjOweQqofIsQA+JwDopQBXsAAFfofaBQe044fsxmgYv4AACwhRlRB7Ama5T4flAogaBwiFCoglGQDMmgiU5gCU7whkdIBKSogD8gBTOQitcjXS+wjQoIBklABgWQjYqwCBgofrZXfsFYewRweBZxgysQa4zXdVC4j8uYABNYAQkAhVGQAQS5BlHgBJpofKIoVH34bi/QAk+gAq4wBKTYkFVABgSABi9wA0IFBARggd4XfoG3i/lGhRqIb4GXexWhCuxHZlsnASIAhQnQDPvojwlwk8n/4I/JEAsZsAYEKQDXeAAbsJFCZWfcqAcPKQRUAAZ01YdgsAcYOZTjeAOL8HreV3v4Fn5TKH65KH4QYBHuwH1i1nJLgH+cmAzzB5D8GAAJEAsK0IwBsAZr4ASGIAACUA4iAAFMoI10VYpEV1ijMAocaZSnd5EEgHs3wJFgUJWBJ4Fa2YwX+ACmMHjlR5LQVgAW4QZM+JJpqImaeAWeKY03CZDS6JhtmQHlYAmqaQkwyASKKYTvpgdgQASB+AJaJQ5VMIN6YGc3EAO5oIWDcAMbeQPKZoHN+JbMBgp/15VbmZygsIsG4AAV4Q4eBwDcBpoikAwvWA6cqInSKJo3GQv+/8iWCZABhmAJyJCebdgMqkCUszmIi7Bx+iUO9oUGSFcAaAAEMTB+/AcGcdibuHgMyImcT5ecMgAKzqac0kkRi0AGYrYEoJmC+bed3BmNaImWCVANGZAMChAAFRALPukEToAMAoAFbSh1jHUOKpoEsVgJDpB9R5d0lQABF1AATjiF/XkDUkAFTWcAu+iYPppvCoCJz9kJMsCWV1ABBkAAhTYRi5AL7ueZIkCNTsCdCCmNyxgACxAGNxmea8AIdikADRCmk9cMAAABwQlUN0CbVZB3hIaEilkFyhZ4/NeXL2BvzGYKzyl+zYlvoAAJ/hh/URiDFOGbYvaE00il1XiQUf+wBmhJgabQCeAHfgoACbHACA0wBQKAqWKKBVOwBgpAAGj6pi9ABLRJm6WqVUk4CBdQiAbQWIewox73d6Cgp3uapyT5nM/Zof/IC8ZXqGSGiThZASIqoshgCMXqBBmgAAZgCqbgo7qqAAsQC2HwAWGwANUgAJrqqBUwZsP4opUQruLqAJVwmIdpADSZiDqwo7lWALg4kgEAfrmqq7rooW/5fcz6qxPhoMewBN+5iatJolMwBU4wsCLAC4HnrKAgqQEgnm0ZBmFQDWM6BYyQkwYAAYuFm1UwiECQBB7rsfZ1AX2HibW3AWf2AkNQCVQIr/HqmBLopwvrj0MqgUs6CBP/cQ5k8ABPOKXFWg7piQxYgAyaOgVYgAVRAKkKy7CUepMLAKaPQLGMEAsGgAaENo59KZtDRVdSoAg6cAEJawD4uQIvIA45e4U+Gq8BsKvM+JxnG5AKkADgV7MTUQVQygsScAUiiqzqiQyWYAh+S6JwMAVK6qy2+rZsCZAJkAwfwAiMS7EcSgBHdwGnNQh1p6IqmncbcAEOQH4EUAAQoAOu15VwKbOH6Jid8JzkGZD+uKRcmBA4q7PNUH90OQU/y7cCYAgDCwdwcAYc2qy2+n3k2YwQi62Mywg3WXjDeJgOcJi5AKXC6HcHYHkV4LIE4AAQYJW6OrqTepNpW6QOmwxr/3AFzgYAKokQT2oAh5iaJWoJAgC0QKut8Fuia8ALyumsnYACKNCy8ZoAH1AN/ssIH7C6aIpaeSeIG5t6QLAIBfB6iLirleC5fud9nXCvkxoAnQAJayuBXTqNBwtt5XsQt3gMlNe3QIsFdnmsxzq7RQsHApAM9aunRooACLC/XFqt/lsNYRAAD5COcKqjWTtUSjgINoq+yvnArXqFCnC6ugoJ8QoJkHCcwBuesZAMAQB/U6sQ14eu9UfCJtzFdjm7JYoFcGC0CkC4pyvDNwmxNdy/jAuxAXB+F6BYcbwBi7AIiAUEqrBxrXoA6CuBlRADF2CSutoJkgqo3AuXHRqXcv/JCGsgsxerEO5ABscgAT67t+1bwnapqXDwCI8AB8owBQlQq5Gav2qsxgvAxg3QAG6cALdXveZqrn43f1fgqMxoAJWwce+6sPeLtuFZwTcpl2uwqRgskpiZEItAZvX3s+jpvkUrxmK8u7qrDI8QC6J8vwhQraV8zRBrrdYKtzF4hIGoCEywsfBZowzMjDuMywl7v0f6fW0ZwC37tgngk4wbC2xZe46IEB7nbWlQuyRaomM8xiWsu54MB8uatJ0Qsf2bzdhaDR8gnqFKXIo5VEzpn0wgDqpgo5RZAHHld88ZqVHclhCNug0LogLQyB6KsMV8EIrQd95WyT/bzAQ9xib/LACerAzKIABlHKmEfM0fsAbWuqVq/AGLW7G2vHFyTAF1jFgbh3QEkIgXyNHKpouoC7dtWbHcG6+xAKJ+uwZuGQvduqAHMQSSLAFpMKLv28zPTNBFa9M3DQcJYL8G0AkJUK1ETdTDu6VE7dD+6GeHCQC58JGB94TDtwS0p5wcTQF+56wyLMNsOcU3ycRsCb6MgAWG0KUJgLD6ahCRbADeZqyGwLcrvMI4zda6yw3cwAgBANJ0nbixcNfcHLFfWg1uiXtZpVW1uLEsGgPL62z0i9hwBa0LG6+SigALkAFbHcoBII1gKgC0PZrhx38IAQRQCqGqGdNhPNOlLbTRrAxw/73a3wexr43DDr3Qi+vQ9vwAqsAEL4CAQ3UD4kyfrSp7iL1xTiiBDNsJCJChyW3VPGnTArDVKI2IBpDPBaEKuXAMFXAFbUi76SnTb80NM33a3ADKp5u214ytes241YCpDcAIOGwKBLAHcaxYdXwBgAwBSOfRzgq2NNrH+zue2CyNDrsGhiDGm/rcAZCIaIAQ55DgxHrdDz7hOI3TEk7QysANhHAGcDvcxq3Ndv0BGt4A/pvDndDKf20A8ycCWxzKztq5NAoAiRyvM4wAi+uwAbnVAL4G1eDVo6mkK10Qx8wLV5AGqpndE17QcLAMem7k323GKADlDn3DGr4ACHDlF/8ABCp6wPFZAOUKACKAnGDbCBtHAHEw3BespVWew10aC2dg2SC61fY8pEtqvgawBDCN59p909zA592N2owQBoR8vzQQ6Aug1/6bytWwpQuQAA9wAUeomGObd6CrbC9rADhQBKPVCATAbIRMA5CArV5tz7FwyhlQopsql7SNtr7apHJunXeu6tFc0EnODd7d3aQg4R9gwbRu3LfetB7uv0I9wwDA0YpldDR6n6/Hq8dAchynCo2wvMbZCaFOrUQdC9lqlzUN4qOuAGZqswbhcUuQAcigu0EL0Hm+5+f+1uWu2kV6zY2Nrbrev1t66HGLvAYQvZa3hlOwoXAbqqy2ASv/sAJP4AqukAUrsH4mcAw0+aHBDNBY8OFuHq+ICACtSxD7SazvO+QZ7+dIjtPaoA2P8AFJTMrvLrHy/u6H3gmm8AADfA6qgO8LDAC8gJYKMIwqTlquwDeSoDmZ0wJZgAMEcAAVEMxnoLu3O/TAy6wQXxAOWgEZoNYQTuSoXeRFjtrasAxrkLbF7e63nuvXGgaNjQK/rndt6qasaqMHQHIrkAVFQGNUZYeYMwPgkzlFcG+zfPdFi9xom+mgQL4G8QKSLAIArfBd3PSk4N26792E4AUVngD6HQB5vevv/viGXuud0Lkbl3Q0WqPbdwAEUATJ4/kroApZwCM+Yoduby/c/zfxFm8IjmrPRXrlsF8Q1H0Mdk6itbvW3R3NfL77ykAI2kAIcLDugZ7XJF/8Wo/GgQcQIgReEXElyhQnaTD4WJFixYoiRR6qGPHE4hMokiSlaoEDwBIBy+DAyRArVphYCSBBAmWAwLktMWW6yXUsjSEnU5AhmyJg5E+gy7hxU6YMTlFl3LR5IXUmTBgEYRZMbVB16gKpUxFsBXABzYUCBRwQIGCAlwhkEkxMmOAjoqoVKlqk0ijErhBJQkZ4lIAMDhYsAqqdTBArQIBjxwgwkSlzEYBjV5w4waITMGCgI5ctI0S0qMiiSrWdYRQGxVap1RpUqzZVNetqTwFsGFS7tv8OVWAdHADQYcKJFT42wMWYqsTxGSVS0YWyAoMELH8ZrTH5NAwo7AZiNHYM+YohQwIsVwZ65mhSbZ6NhhatrFoAFPEXIFhQ1f4Z/PgbMEoGgGxYCHRzYEAfTjjBoSI22CCuEVDRSJISIFyOrkYAKKeyKTJYgzrqOunElAcu4C6mGCDLwAlLdhJAgEce+Qk/pJQaCqmiSOGGlPQagOo0+qhSpgEakRppCsmcYCGNcjIwZAoJOuDAQAOLQCOiuFS4qIWMlkMFCh8OKMcvARipZkPDPDQlF3FG3GKRB45JxpIUxZsiuhfPSIobQrzwTL2hSPFCG2Xmi6/H+uxkj0Y4RAj/SyyyDmhGAgkwYGuCJxNcsDhJWrCoQS0Z6MDLwFZbwKQAQPEQFAKqUDMGA+K4whInBAjsMjjwOw+99GJEbyg8uWEEPhRoILQBGJMSMtEChlNFlQ3AKoCAJikNIbhlsyjuOAiVyzaLT9OItTX6VuoEFBALUHMLMgxYIg1LfBopsClsvVUpPWncjFdt8g0UgUHpq8rQPYuCQ4Bm/FvUAf8AOMDJE6a1NC6Msj1uYkmcO2CADASoChIPTwWlKzXPIeMYCcpJ8TJZBZA3RkJyDZK9pUarht/TgKSRFBo9g2OKR6YwpJwLo8NiYbZ8wOErHzjgIAUrW5AEiuU0CsEECb6D/4ObMwwDZSXEDDB3xCpGZpcnZC7DAr9HQrOR3oCTslGZlvUt7bQFglTvM6NEGHBAAhQ+4Iq/kEljABOOpmCFAxmwKIUUnhiBrhE4wACAKxj5N7BYqMv8iq4YayxsA65A5mRDRndiJF3V3vO8Pekd7QP6DD00xqMShUBZVdAIy4ErhNJmGQyOXlAFBlAxLkJJjE9Fgw4UriAAw9ZgxF04ykamnAMg4A6IXAyowAmcBAA/J9Tv3DM9nWPkFc/OHmnNZvVzLuqRAwg4uG8AMqCXkAMKoGDBAz1uYhNLhQpM8JEAdGIrC4BEAtawojVkYCQCIFxjuHeMWEwGRaXrCepad/+j9KDOg+tz3RliU6iXpfAMCElIGsp2tZb96QAOuIADTOAbDoTgWqmAAhROgIEDPK8TMuBaLMb0wAyoCAtpcIBMzlET6GUgA1NASAftxqt6Gat8RCEEjv6kjNJEpRopfFkzyHJGs4huKC3r3wUAYIlyDAADxqBUCrpwiUtEDogKSKAMiBgASCygGkoKDxbCgwwAUCAmScjFA0ARQSlS0Yov69X6QmO3fGmDEGf4AFQWILu70UhRFGBWs8RyACwMZRltBAAcRFKOObIlhxpQQQf22AlhdSyQ1RBAxnoigAhK4GsXDEACkiG9f7nyVkjBkTZs9LY7sQeEXtATI64Cvxj/4UxI9SOAA56lMBHAcJUFcOO9kIEBD3BhAj3I4QkOeIDDQAIBK9laABYgq/AIwBAZqED/YrKImlQgGVHIyYrolBn2URNQRLnRB6fJFDgwokegDKWNnGCQKBA0OkIhRGdmCIFWcmMZWJCAMdTZAx6EYAJAfB4CaMASQHYCEigJDHh6WQEAoOGfuQBFBaSoJOoBJTQxpCYJ1/dML/6JG48QwFRkp4y10Q4Ai6oE/pqRyqF8FACb2QwsPUApHtTAGAOQQDLkuRKOyXQl9cHCT/vztS2UCBSxWNGcNqo6oSSFqGtbX0c7GjOFaqNWDaiP3YxFCo96k5wUYFQ5rsaNjx7A/5VDgYMc08kFYxzAEmmgDloBuRI/yoCXwMSpiGQSgwdUYA1nEMm9Yhizvyb1iyTsaDMzSU0vjNSaKDQfQ5WyjIsWTGEDcKxQIEtDAGBhM4TYDDIGcADNKretT9kKJOIJCRnQR5+cU0VjFEGG1BrialwVCmd4FZp84RZ9Ij1qF9OrXji4jyp2siSetCGAhDVDMn4p7zgvIFnOaAMZAuiMK5cLhyiEIQAoMYw8Q4uAQR5Ap415AU8zIBJlinSybiOFjW7rhc7Ul1dxWwpuCQEHwhZ2RivGkwC6ubu+HSAKGJoqBFB5rylEwcD3WoYhkpGSMBQmASoJ7Ut5ob3tAQAUtP86lno6TNQ/6SnEfm1ZZzr6pxIr1YSquVOHcYZYPU1hAAXj29/Ex4gaA3gzj6iACNLAgvLCgRcFqOoDrgtIP4JCAQRIU2OksAgDxMIQmAHKjQ7V4ff+icrs+2smP8yUH1XFWOZrpjJ4EeMBXOEKUxjSGuxnY666sp+OgkOBLw2BZ4GCiGEArQxAcQy4NqZEx3hgZo7SJ23iS73r7SijS5xl3HIDxWf4l9pwdOKpgoUAf8vJIxjxAftdwACPHUkGDiAQLJwYDk6YYVniOc/CsAQA3eWOImJQk1q/a7LnvdHaAAviltk3XyR+NDVxZhWqEEuv+VqDf8jCNwCIYA0JyEX/JWzsSub+xBCbFgkWkOEECYjgx581SQIU4DU1KWIR6fpO2TYq0mw6WqG41ZO8bzvvRFNzkymeD1WW+7soKIAXzeANAJqRAUYk4NPH8J2wx7uT6Ojz4WuoQAI+C4mUHCORaiLCxiHDLp+ItLW90mtnUq7oXmmy15qs973nQ58FLsB3GbBfWGRMGaN4ugAH54yejPsXwOhzn5qTikn4Oedzral7f0MGj0EzI2aanORY1mSf/PpueyuD2C13KQ3EjqcrkPMrCIOuCDK0880oVJV/EQAy9rkiCK6oJBYnQ971/sgXYvgn6imfFjg6+MBmsplEzTIhlCGYqXQiPjQ4Q76W/yFcR3ETAFG4wqclyw3c2qgyDn94FDYkPX42oxkG8I/p9W6KZCiXKLL6SVHyc5Sq+A72u0ZsemP2XkAtfivr770mnSAC6B5AAgNw8yOc8GkDZJ7wwnY4rAaeEkiAtZi4gEWwvi1IAtSKBen6pdqBu1oRk/lqtPHjOhDjukfzudWgrjA4A8SCgxlalL6RAHYph24CKeUavM4YKSfIgCFTAFAIEQMcEZFRgEFzgigIifIwitWoCi5jqDyBvXnTvJOztwdsDahAgDMQjQzwNwDwGxG8v7U7AENYhiwLCfbqsWSwOALYgxgcEXcYGSXREPMYqb/4CcvJD/1gLWUANvWKm//YizKFiqgPaLlPurJlYAFNA5/NuhAXWzsAqIC2+5MBsATyuikY7ELuEIcYOIYTOYiU6b7MQAr7+Bd6GbzzMz84LKopwIoFagAc4Qa9YZS+WbZmSINPI4AKYIQA45/eWYYltJ8YUBVELLdFvIIMuAIWKAfwiQ6BEaqRYIQKoD4DiIwAI7xMYh/EUygT2gphsZN8EYGyG4tGEcFPAwAFiAWO6jHpIoAhGIJZzLtajIITsYSD4MVenCARAAAHCJCIgICRmcIfNL9MorcsIwXCWr8F0IKlIIRykL75G4A0uIJyKD4/PIYEaIBlGMPNwAIA0IFvzDs24QXJAI+TsbWdOQD/HICYi4AIB2iGUssT9LOtSiQ5MDrCBZg9LLCEjWo4biMAHAApXoCwf1mRBliDA9iAhzyXc4CMqtFDlaQTgcGCAcABV4CCL0gFEiABTcmCRiAAeCS5RNO6lOOGFKMPuGkZQ+KouBGAD4QAA9Czq8AKqQiAI8vJc0mXs1ASJTooOLCEDsiCVPiCL4CBSyABKNCUFXAA6KDCPxEKICQxhQKjq9ACv0qDKcCT6OgoOFDHtWuVldiK06CBPHMAcjPLxmCTY5DIXgI6szEEAFgBKECFS2AA0mQAErCIvDyAvluKZbiQ8QPCpmiNuukVEdwMgPwSZHixAggiXKIB3/xNGuiE/3GzzO0hAwDwnjUYH4/btgPwAeJJgRDgAR7QANOsCKa0kABbBgmwBOSLPTb8k4hqDcLUpC/hhqGRvwEYgBLcTVAAJMkEThSABIwjTgvKBchIAEIyGwnAAeJhAB5omBQwTRKoiCdYAapRrnxBUKiEynp0tk/iOlnhBmTgjfmTAN08hmJSCeAUFlerBPrkjnNDzp1QESZaAVsQTQagzk0ozRGoiBXwiN4Byat7zS+yJn1MUOWyBPSc0AFBtQPgIzyTAd/cClebjQ+Vte4JgCTyvCswAdAsAQugy9NkgBYdULx4giJYtmwrvH38TthbuTXMF0PQryuoUAtVrAI4Bj6ChP8NbTyynLAj3YJzWAQCkMjSiQIAKIIWKIEvMAIjgIEBHYGkdBqNcIW83MvfqbfAAkIUg5v0UJSqwp9u+rQ0fR55ajzgHBeQidNFGhnV0htVaBA/9VMYQAVTnZDlaAEV2I2QoDJ6Y9DBEzbO8KgLUIVFcBaqQjVeUIDnQQE/wlQ/IksHcEhOvYEvfAAFaAYH2AAGgIEvOAW5/FMLsIBU2BJUsAtX8AhCZK5ZBcz0gjLcGgleaYYLGIRluQAIQLVKWLsCUC0AFNJg+c1OCAAFMFJO3QI9AALwMoBlbQEYGFUYcAE8GthTVVUc8BLj+iurc0M3HDzXAkUIqI3cwVV21Sz/6lg/l2o8GSimsrzXmAibXCCAIkgBDUiBIzBZ0uyCpMQjB2mBF32j5WKuobDAXRs/9uGGK4hYc20WdAWQ3fyOBDuM6vpNpKsA0/LYLeAeAMABHDoBHmCc0iSBLdGIAm0EE+idm0XGv1K5H7TEfMFZnTXXr+hZsKCch0sGqUCAANBYedozz/FYfQUADMChHGKckmWAS6ALIcBLH9BL1zo8wHI0L1W0DEiWZdmAsQULdCWAZggPCIQKNn1PtTUAnERakG1CHAoBzQ3QAc2LTDHUvr2xXvMrRaNAGlU0JyiAZVmWxI2BC6ghCxkwCFxbBPhVyTQAOL1XcTDOJlwLpWkY/yrtIbvIlAJ90ejqVgsMwsFVL0OgzNW91dd1XWXrCydgBGuaJ+wKrVeLNU7lnjZRug7IXA0YgUvIiKfh2w4YAOVqNF9rNJFbUG1oXtxZBOiV3lMCH+pY28PwTe0lgMq91wuqAJmT2w4oEJKl0hHooRFQgeAwgTRYX1eN4FeFPW4QABOgjUEAAvpdhD2wX4QRAUtgwSHCLjYVUj+iXKQFAgCQyCXghd5tWs4dgRQNAQ74lAshr5gF3AlWLxDDAgJQhdo4B1ulX+mFgLGQQhFWtY4R0pXoWAC2uYAUgcQg4AIGUMah4ZV6YOPiKgmGtxlVKB+mjXM4hyQg4iIeEMrJgP9SecFGGqLsggQF8FCPfQxekAApCsaEAYC1oBSl4YAJ8IAB6DvOGGTAlUoSA0lLXIbZGIQxLuMyLmJGuTl6NQAyoNNjULVgHc57peNXsYQ5YywAkIADmKOv4gIPwIBAVq5s7NbD0+EvXiU0AOIkSAIgeGSv0I2yaIYKeDUCAAteUDXJ7AQDqMw45WQ4+cC+Sc/nwgAg0uIcZuWFtcCtq9miIlc0WIRZpuVFkF4BqdM4yI6+4QU3Ds4je4FNhowKKAecGBxIGZsX2rErc9UKpLJ5o+d6LjFCUJRsTgIyRsDX7WbIaE96XVMhfak9M2dOpWOfAo8R/RKHkxUcjhv2ocL/wmu0KkterSMqQoi8bG5kf/5nsUCYxMAO7JCp30SAeu2zYl5hTdsJuzIbzeivKptpvxIpwQ1CLIubeEwGCBjjRiZj1w0QgL5kJXZjP/IQ3D3nOEiGKxgbWbmMkVrJHPa99b0XqVS0Q25YPREBCACCc6gCn/7o1w3psbjkIeoYyTxqUOBe+gQvXmgzJygbg8KMwNixrPVA0X25ebToesPZCzgHcRjjKhAHBEzcGpJGyJCpBDJqGRgXAiDWIy2RZigIFjiZ0ZFrj4vojuLKK8ATvU6PmuZWCWyZZbiCCwhscRCHwS7sf8blsfjKw3g1D2lsTSVm+kQtiRRIDQKP8FhBOYNiLanbjF5iLa7SAuN2veM2LtfjhuNmbgHgBTRQ7SqYbrAmQDQYW1QL6bIYxpE2lcR4AAM4WusLCAAh+QQJCABQACweABcAdgCrAAAI/wChCBxIsKDBgwgRgmtCqQlDUQ0TSpxIsaLFixgRUhLFcSMdOrPoUGoYMaPJkyhTFmwi6iNHkLJkIZE1i2bMkipz6twp8CVNkEhCjcnBJwdRPkjHGGlphBLPp1ApUgI5NFQoo3xqaN26Y0eNHXxCxRTZJKrZs1NnDTVq1GuQIFrh9qjRoy7bmXTKnt2bU5qoWUGN0kQypmuNCYhrwOXAmEOIEDuMjlEija9lk8xcrMU6pnMOw4gnHJ7AwZOnxxx68EC64wizy7ArRmDAx6tW27a1ekLcoQOXCb8bq+bBo+4IG7GTH5TDDAZRxW+je+ASpAeHGlw8GDPmYXqN1N8fW/8PMUO5+YFySlEyojZuEODd3x/uvr07F62JU1s/8aTyefN+AcZHEN150IF2xnBBHRfc1cddaMAl5gkHJ5T3n3KUyPJcEAzStx139Gk3nQcQZjddfi1cqBwdhGVFoIcfKigiid1BOEFvBorGQQlyqBgbHTK5OJ0xvYGIWHYdhPZdY7t1QORvJzADjo+XNQEkEjkoJmOB9ol2wmMaPDGCLaiUqQIHN/YmmgVWUGmZlUGNwUddh5lWgyffnaDCCJKUYIEFvkTgSym+oHJmmr9J0qObe1kp0xhHpKCBBgwwMMIIGqjwRJ911BHBp5+CAAIzvrSwAm+IMYAco2exJMtkLrj/YAuZZJaZSiozMONpBF9EwAwzojITQQlPnABhCCCwapY0pRjRmRIwzArDtNP+6UuggoIKrKggDCuJBmgitsJrykIljRJDQTutLdWiAqgFJVybbajcilqHJCqcsNsE45b7VD3SHEGcrKhMW6a1f1o776/1jlqCCivsW6G/TzHDQA8pKFErKtLCkDCg18q7bb0RWMDACeFOTPFOEYTQQwgE2xKrrB5b62fI9NZbh8krlObJChaunFPLjr0y66yxsuvxtQgHOnKwdRDbMwc+rFCC0DpZzEMIDMgq88wFM50wttz+ava9+k6YBdY6gYBKCDxo4PXMsVbriwXuWlDKp2ab/x1BHamogCcHQbONEnMapODCKyS8UmmlYP9Z5sF/3vypL52OwNgKyRqukhy2UMqABiGgXBqFRzAAA8ejkx7CpHuikoqfdWjOgQqLeo4SOCa7wEDpFDI2oWOqo0LC6GCOMLns8Y6A8tW6pwSO22WK3rrrXFvwxRd4a3DCl0+kYsHOUUvyfPSf30oCCaSHS2EIKTCgva8P56unCn3+fe8KJ0iCfkpyEJQtfvc9xmQqcQxAhdOidqsSlKAOv/IV4FSgwFL8zyT1sIIcpFEmEoyAASoI4RNUUCkFBqoOM3igr/r2qxJIwgLAuiBGrDCqDeJtVgywxQjEtD4SwMBpuvpTp/9Y2Ck/RWBVMqyINIxQig0Walbru9SYGPfDFYLgbhZYYQQ7VSgYJtEiNigFHaQhjS9wzBaNe9wIGKdALYZsgX8L2Z/888WJgOALdChFGXHYQ8YdjwR/0hYEtai/OmDLF3Sso0SYMQsm0kFW63uFJBnQQxh8YW++AhWovoA5eflKkRUBAXvU44JIvmJxlQrBEVwQrVQEKovCEtQJRdY5UErEBl+YxSWjhUZJOi4Fjlnl+kCmyWwZ8oEgaJMtJ2KDP4HAAlCU5PFSkILU/RBzsiwmF7OIxGUmxAozSMUdj5ZGxtUKlhHMJqiulUhv3lISICgFFG0hyVKSSWGadJommZH/O3dOxBo2cJspfUkCd4lvnZ7cog366U9mpsKUlXJcQScnvlS4y5goXCgUrCCPejRUIuBcY6WAuTX4lbBmB7tWCWYwAxCAYwhU0IMVZmqFQ9j0owSxgSQ+6LhNPI6VxBTWxxw4gzqAQwdDgOkNlgoGMEjhEDgViA1S8UEG+LKeHuPkIR3I1ZaCowUtUMUGNoAGCuhAHDeAalShUDvHXdWqSgMU9+BVggaWgJ8tyMIGVCFWCqhiEFRQZlSn6tZJmnNab6SrXesgh7zy9bGD0IEU5LFWKFijBMfrGj1JYAtrcc8XDrxVnyzgShBkwQ1o2OtjxaEHyq7VBso75VXZJVeV/96qgQljxhOKMFbVioMJHK0sbCcZUTbm7W51tStpHZgF3vb2r0zQgzPWagXYbiJ+16NkQW/LXT/5KRWSWAFvU8vXs+rBo1HVAwgkwQBqSipxksLuCEggCe4mDLzNRUNqxzoIcVgBvTilIXtTUNLHlO4E1AxTfW8LMguElwIUICtf+/vftcrBbb9MAfxQ45hMLZir8YpaC4pQBArsdwP9lYIUuulNGwiBjKh4RaSo+RgNfylTspvd+DxVPhJDWL97RSoFspAFcQihxfhSjy2OwOT21rh0r0vgreAFsrtJwscm5i9SHYABE3SgDT7IQgugl0Qb2OFMMJBne1PnXg0nWP8DZKqoJ11YYhMD+a/iIAAADrBnAni5aitowZGjVw892GEFPpiACnwhiSf4dMYauC6NU7Bd8TU4FbvVL4RNXF49G4AXS1jCAQ6AgS7joA2NIHLhKGYFa7TAB73pQAhKEbiRthm+1DSa7Kx1txGIV78QCPYF0KAKIOQCAAb4NC+WPWoDAAAApTYBDlawAlbbYAZPgLUJvHyCLxBrUkyG9Ibjt92xGeoJK2CCOIhN7Mgu4tgGOMYxli3qJfAi2QbgM7Q74IMiCIEKjAKnqbSNgWf7AF7fStwmVLCJSSVuUsb92AhUMOJBDEIVjmDCC8Bwgwt4et68mDfI6R3qA/Di2V7/LkIWnqCiaxeLNwUfNQA6IAlrWOMJk2KATx0+KZ9yNsfd00ALxCEOR+xhD22AAIQ/Lu+QgzzUoQa1qJedbACYoA1rO4+ZT5UmDBxAAhIYtQlaYA0rUCELJPT56BLs83uiYnRPmIEefqCHJFwAAgUggLOTLfVljxzq9Da504+B8kYox+We6I0JSn2AAUhgCY4HwAqoYAMrDCEL8z3epRquAV/WqnV2kAInOKEHcVRBEeKAALznHXVeKMD1r/e7vOM9+GMkmwAUiI1OT9UBxoP98UuQwAAGAIA2hN4KUhCCmKSIxsxWqqDsy9QL9DB6PSyVCIpQRS4ewH2pL6EC4Je9/7zHH+/xx6HqBNCBZaxhh5ebYM/CH77jhU//9EvBCpxwtZh8Squq+tHhZPcD1acI2OcIMfBsD/Bp4Pd9C1h74/eAycZ9hAcBe2EDJdACxtJ7jSd/HCgBIjB8EgAAqjB9o3cDTPAETyBl4mM8x+NwcScFAkh6VXB6QEAGAMB9BgAKCgB+CxhqCvCAtgeECZiAAFAAg2AWu+cDsFZw8ceBjjcALBCFLCABFDAEYOAMnPADNyAOJARIkpNGsCMJTzV6pLdUN6AIMbB9CaiDFRBqCaAAcBiEEihv3DeEdfgABECBT+FyvPd+G8iBUsgCbDCIbMACAwABTJBWWPgDRNACKv9gNH+SCtcTJjMAg2SoB2BABJl4gDh4DHDYhuFHh0Foe3f4AMdgitxXhDzRauHlAzjwfnv2dZAXhfJniGmgC4R4iOKgCGBAhj/wAmCVNwMEO09ghdTnixwHBopggzgICp2wg9AICkA4exF4hwZQhw7ABDohBXaQBfrSAYv3dWAXfMIXhWnAArqQjpbgBFGQDEuABkzAi2AQg1oYTuCFcyL0b/NIhqSXiWeohmsICgEwkAHwg9J4DNIICjo4fnNoe7eHBiphA1RgKk3ih8EHdSLggVHAApagjuvoBE7AAgewARp3A2Awd6P3A1IwA43mcBRXiTGIjCapCADJfQo5kHD/eJAIqZAKyZAPoIMH+QAAsAEpkXw9cyMFBwBgJwIiUAG8wIPJEAW6YAlUiQzCgAxOYAlsIAHwuHEnGZOkNwQjNClP8AI3gJL8yAmZKAVVAJDypoMBkAA46Yw6qZPjpwAFSYcGkHsmYQOuloHv93tQF34VkAAJkA2HmZVTeZXI0JFUGI+a+JX8aH0t8AQtMAQmeQhpSXcqKQU0WYc7KZAEGQA8+ZM52JMI6Yl4KY0JWAAmMQSmciN+CIIVIAE8eJvJkAHtGAUgmZWNKQy6wAIOoAOKYJJNNYYpaX0vsJxNpZn82Jx6IAVMcGw2+ZMFOZqgcJqmWJd4eZuz5wBHiBFF/9AG4Oh18ccGyQB+yZAA4AeH7JkBaZAB8ikMjGkJwkCVB6AKQxCZeqAHh+AMPwAGL6AITDAERLeLmuifdFcFTqVi4nBsO2kAncCTAeCJeilvCqCQcLihbxgH40cAioARVRAD4Uh/IhCFTCkC6ymXeFkIySAMUSACU0mVTkCfwuAEyMACiGicKnaGF/dYf6UDYrUOSbcIg3ABBWCFVCAFxbB9O9kJpAmX2WmXnsiTOqgAhcCicSCNBBCeFlEMBVBww8eUCRCVaRAFaLqicmmYupkMbOAEGSAMAiAMWFCnwJmNS4V6G5B3z0YAfuoABRCoDmACgCqoDoBi4jAEbrB9PP85oaQJpVNqpRMKpVEKCaNZoYSnChhhbEo5pskgAufIju1omGtaAfGZDFHJm1Q5BVgwBffpBBJQAMEmq4iqAxdnYpz2W2bZVHq6AWZFBe/2k1ZKl8P6pJ0woQrZCXKpkG0ojQDAlxVBBWhwbOWIptaaDVGQAckwkFdaplGJqi9alXQqDFNQroLIArinAy9ABey6VGZphjdABMupCBeHpIBKAQ6wncOKrMfKrxJ6rAeprAkACiwqjXt5EeJwgKMmASwQBW8qqu2YDIUQAJ1gndmwnqi6ANUgAAJQruQqAHXaqkzJZ4A6q4F6sgXgAH6qZ1InAQ7wshj6qMjqjMc6kP3/6owBYKkEmaUJwLOkaQAFIAUW4QY2uIHWmgYd+aZRkA3ZMLE8iZdvGJfZwAhTkK3yOQUciwXrKAIK4GwEgLJgWwAXMLYpq2dFCAEOEJqNOqmj+Yz8arOkmaWoyrNd6wAhWhGOcGyQ54HJgLTruI7Z2rEV0LWnSaEB8AEuiqryCbJYgAztSACqoAMa11RNZZyUKwUCqm74qnQFkINQOqmSeqlP27YFiao9S5rHQADaiLe5YADfJwLymQHIMLuWYJU2GgWDK5AKULMBEAYL4K3ZkAFT0A0CcAaP8AjJMJRnxQQaN69MMIMHKg6qgAbrkHcQgKTch5cU+wAAG5eGSZCf/0upO1sIF6utg0t44mAROtC6S8CUOFq79WmfdOoES5ChyDqQC7AAiOutH1CuAkANj8AIHxAABmC2K+unz3aDyHYAS2CLByC2BSCs/cq7cjmQPnupBJkNsBu8WZqhBqCpFdGkAAB5uuAEM9qYH5kG5DoFg1u4A/kBMJyePdu/rArAMPyGBFCosjq2Y7sIPoykZftsF0ABEYyQk2qd3xuXFwy+BdmzTCuf6/mDB1sRnNq+WUmVHduY7FijrIq71/iTygrDH2CY6/kBwkunUyDAXduV7NqgmPvGVPAC6nakDmBiRWylYCyaLZrEOEmQYVAI5CsAjFABAUB1rlkR7zbCEv9AlZbQqq5KriDJqliQAV1rk1BaCB+QDPsLw91QrtSABYI8sAXwW8yrbuoWvRfnq0hKAOuABp1rxBWbrKI5kGHQs6Q6mgngux8AslOQpU4JtENLrX5rlXWKlUorvKBcAaBQh6IZBh9QDTH8Ad0wzVibxjCsAMiWwNrMZ+LogaAaq64cb6V5k7g8kLdMmgiAAL2bvxubBmnQlLbXpRWxB8c2AH5rn3XKyIHbAP+bDRlqky/MCAI90NXQDQ3wCGkswOtpAIA6xCbmw4uABncnqGZbAK6srzRLs+VMqhUcBgGAAPk7tQKQBoXpwZBbERewZ/ZclcSMwuuYAQdNDSycoc7/iAIIEAYF3QBT0ADdMNAC/QjTnJ6jbJZtLAXReQMvMATMKw6DsLmuPH4Z/QAo4Md+XMHqvAAf7bsbKwBNW8G2dwEVcYAkfJ+MjMJsMJVOwAj/ewZRQJo/adM4bdBnINAfIMDVINDdsL+QG70H6gipLFZogHd5GM5RPcFQqs60jNjem8sLEAbE2wCFUA2FgKxTPBEF0Klp4ART8Juz27hXaQkC8AjKoAyMsK1gfNPJUA13Pc2M0A0F7dPQnAzOps0LvLChJgJv+sBE7LkZXdOXGgY3DaWGWb5qfQYNIMBZaqk/eMgToWftC79XiQX0iQWfrLWtSg3KQA24W9MIkMt1/53Trq3a0NzaPV0IDB2oPbwIR3eyKgsA9yarBJDHyTqpnYAAKADXwJ3Ovpu/hUCnn1za1VDB0gieFOHcIgCSs2uVjFun1f2/1EANTjC4nWDTz8wIqt3TOj3Nrl3XmZwAXaoIu9pU2FfKTL2nDgABFy2sCUkDMoDY6hwGvgvcA4kAkp0NDi4AKjqxkGCpJ0eUzd2pi3mj/v3gDx6yRA6jhAzX333XjPAIxavhdB3gBoAGOnBWROcIQArYeHfiRHyH8W3EMsC7wL0AO57ONx0GjFDkabCef4yTCnAA0IoQOqBnwjejTgCyRJ7nrUrdDx7hoADXTC4APS3oUB7ejd0JVf+XwFA3ALcdqkWIvQlIAGDWAQCwpThbCGSOABNbCPu9APzMseuZAU1rzm2YpBKhCnR+z/a54Ay+DCHL54wgl/UN0qvd0xsu3g0g3mGggwDwtSn7ssCOwEsQBUVIAfGdnQ4AaD6gdzeZy7SM041dDZ4uyKLOtG0elwqwBPKcEG6gd/a8mLPL6nye5w9+BgP75yiA089cDTx94eKt2vkLCgCABom6nKVM4oPgyrJ60bZnAj4QAiG0ApQeB1g6kJYaBk3Lzq2N58KgrUmskASQvgmR0gYwfOrY2dLN4NRACMtA5KOtBh5dszft7uw+zbju2jAOtKpAdEL6o49FAXgnq/j/Gm+k1gEc4HAngAN695SGSb5TK+3sTuQCUA3Z8LsVLAPyLvEIcQGtKwFTWcySnOfLwPHjPtpnkN/prLGq3QANYNwGreHinckioG+yGHwM7M1R8LVoawCvN3MTcAKwI16N0AYvu2fgJ9L/uwx6n8bSDsiFgABI/wAgvPRNrwvIIN3RTe7UoPdVP9pYTbE2vfVcP9fTnOsFLe1hkJ76trIvi8BsLwKP3rm3l+wI9nwjAFZE1lw4sGdpkA0PrvcQngHVEAaQgOmB/wA+jhDvZgASMMxGrviKP9rdQMDcSwP5y9Nfz/WurfWNTcAQELlER+IlfgEvWwBE3OsOgGorkCmx/5MKdvD9diAJkjBiBPB1GYAFen+jom7LFLvMD8DcB/Fux7DIGP/q4774n/zgo00K5g4QAUDJQLCgWrcGCBOe6datWrUFEREoKEBhgypVgzBi3HABQgEHBS6AbOOjyAoNKlQ8GYFKkqRUMUvElJTFgQRhy5ZhESYsW7ZCASB1AgXqwQM0UJQuZeomFy+cyJBhwTKVKhZqWZURooZVKyll1RB0QoEAwUOGDdQ+VNsAYhgEARQoWHIAwIEDSyQckCAiiggAFSG0aXQSZcqVT560eBnTcYsVJgYg6yo1A1CgRUEZAMDUs1KnBiRYsiTsKjLTWakqI0UqKzVlsQmdqWAABf+NiGrPqFGrEGLEBWESJLMLgMBxAgDuLoniJDAakD58nKAeQoMGxYufSEKFiqYtFRMOWJrqU8DlzESPOfjseVEuAyKckMci4CpWqllbK3sNuzWjABAIw6AGziiwt4ci+i2MMAwoYINBdBBnQnE0ogCkkChIzoTpTgjBQxVGaGFExl7yLhVUwjtAF2GQOU8AoBIA5RiiDLigPabeE40006YQQIAp8OuKGlII4e+12Eh5BK6C0HrkkTOiTEgtgwwSzgEKLLpoow0+ciBDBwAwYQIOqPMQuxJhcsyxETiQTBcnBHgIqACI6oQzCnBcSsMdyUNtCmp+fMQr1rZwDbYkjWz/IAEBFSxwNzWiPOOhgx56ZAon0tB0gCU6rSANXXQBAMsCOuiAzDJPuG6lNNdMRRISNBBvACeyqYaRQgqpoAIF5AJgAz2VuiA5WkmTaoogu8JKmWVI2cJIRBNV4wMmq3n0DK12k7ShKAUozjjl8FqigigCu7CkVE9YYYXESJSEMcckGUGFE0yQII1sMhAG114rWIIXAPIM9gLlBoCzJ2GCvEqrQg2NTQ3WCDG0G4kILFANiB9WRg1qOKYmGQgglFAHHQbZgAIIQqqoJDLP1CCEld59d8SXYJLkCVntTeNHAXDllVcFjgFgkYGJHYAFS5xI2L77mt3i6WX6a1gNRhYo/2gBtxrIOOPYulaSgAIgoACNjdDwsoCKHMCh5Q81YFcxmWuOF7IJMBjAPmqWgbEQW3/KZq8C9BwWgHvJE6Y006wiUidCCImaYWcJIcUtswx6COMoN44tWmXOyCCDCvDCy68Myk371DJDUF31mOWOyY5Xn1hhAgBo/WkOKakSwDRh0hiAAIE9G1wCJ/RVmKfU8m7t6S2i9trZLR6p2lGtu7aetf2mMCC55JS7a9fAhsXAgwk8Sd26mN1t4THZ6+4rqAQKMehHYfTV14m9khKegAPSQM20+qCGKowr0hbYsQX+sAZ7T1PGI36DtShB7AzXUyA1lnCBQUSoZBoxG9rEBv+ANByAfOeD2Qhs9hJ43Yxe7suVUOKSgHz15Eef6x0BVOEZN9xFArpAnBPmk7xmFYkdB3TN9aCnDEYwaAHdgBKiOOe1DBAgZFs6mZfURgEAmCYN42ObdVriqlTYggEq8EQHAMCLXgUgInyrH/3sk4Z7LUF/S1mEDn1YvPlIZVmtaVyRwAKbaPERLBQzCGy4RsHssaAuolvCzkQVNgAIYBmEwMIAMMCFGqQuRN1ZEyoYoAEfYOAAFQhAAga0gFxlY2lME4AIQhc8YekQTknzIVZ0wqwkRa6Iz1PG0ybXgIhA6olgsZ4w8OK95VRABGCDAADy9jTHDcAYXCifJ1RFAk7/oogBIegABtAYgFJCAhKoDEMG6hMo+wijAp3xzB50mAY2sCAKP5Eks4IIPV9aL2/MMiApeGMt3Rwyl/sJWEYymMEOehAAWFiGAYdICEtIAAMYmCaZrEMCMWrgBGY8Big60YkAyECckGAjFhhRjfNkw0GficFdBtCXZAwnA0gCy/KYh0AKNowUDsnaxYzYmtZUQCRa2kCXQII2LOZNYgd8aFUsOU1rWudlZQTAMUR6VRlkNQDZYESgChE/XtzoM+7Mi1+SkS8BGNFQEjMgTveTQFIMcQtS6g2kMgbUAi5jCn8RAadYwII4HcABzWQoIYZ4WLkuw5Lki+oJPFG3UVZg/6RZFWkA5CcAalyGIjhq6ShFIAK0Lst6yzuswxTotWexwzWU6kYENwZUyTkMMMfxngF4sQQCDBYAyJgkYktLCF2MLwiZ5MBjzTgAEfAtV+KkQWXDgNJsVIA9OHInAHZVgc/lJyvLSJJDHyo5YsqGtEZ6xFqsJalc9pEaDhBZBlXREbRBkrdx9e0Bm7dYak5gAt08wEuV+dUEhFSkkAhDITKQDAKItT1k3VU2MLtdiTWucd5lB3iB+jxnqTZSPT1v1yQMlgNUZGxoyBKGIFlYCle4SI7bIkWNYQwMSAC5hShwMloozqwigG8GmGN7WhofAE5ywo5bMVsPaOHRQk+upP8w0G8AqgbJ9bE11IgCrzrVKfkEppk5MaxvEUiNxu3Edy8dQBr8Ir9qfNWyOBbnVwMXLHc2kqFbkbBOGPestkpOyHgt4NOGCBYH5sYtd2UeV77lPbyAjWAiAHN92UENSzDUzjtBBhwrEFPlFjhXCBhpAnjRYx/XThf5iZqkGbdUuT6Lzn6MMPMO6xpgQkQtd40tKaIAgYxw6UJha2YFBKDk0i7jsyIwZ5gVqxwDKCB+2QjOgDidVQUQIFhKCdMA6MNQW046tYiN8ofBO+FXd84hucFWxKApALDFN75fgiSzq3GGpYJXGU4QAS8qIIy8RW0AxnEAAQxQAfnFpRCQqCz/KN6spyoUgAATxYBy7pWTqOmkpjddsS+/zVaHGoohlusG16AnuTM4gQUiWEJf/8pMAARlAWcQomkDNS5V2lkXB0DOGUMKibgIRS7SnnYW1vXzExS3AyYgXBrwLWEjhznKRZ6wn59GjSYDdDc6JYUCQgKBkYAkt5DEl6zj6rDtnicZ5tQJFkLoPV50gtOQKCWvVjptJgjhVSiSl2JUsAIf4IB/2XjmTZG+4iJDM9xRR8jUGxcbAkAog0XNEgSwDkJd2KoBvXz6a6L2o3xXJQ11+Wb8gqLM9UxbKUOoQx1SYQHUr+ldTyiCA46RjUm6Gs9/RzrGD6gMATyiIQfphiTx/7rMfnfvOFcHgCXSEIUMvPvrkgNkf2xJFWEU76sLsOxmAjMI0UNBCCWogy+87wsUnd4Cr2pBIwigAEn2NtXP6uOHSUtEakDJLRBprS7nTfJDM7N/xZO1Ggr9x0AxkN05g6ugn2SogAcggFyIAaLJPiiYge6zABiAAVQYARKAiZlIBTvIgjYAAPRrqPqCJmJqOlT7I4Y4JYPgmilQNDTYADTIOpEggCXIADnJjT5znMvjGQAKFKVxAgcBNQdkhtNDBVuwhe4ggQuUBNixAyFoPQMoBJZDLKfTMyGTsrZyDYdgECVSA6CKIrFBGQy5OgIgHjmBi5U7AwH4sKxwo/P4nP9kwC000AEHbI8SsAAitAUkREKXcAw7aIE2MABQmAMQlEKka6gCej/HwYKEgIiCYLnNobnu8R7i2xmTCg5O44wliD1V4w8giantwaA5xJE6sEMkfIVX0EPvgAk7kIQiAIA4gEJUSzW2kpg+27YKCxRG+ACzQACWm7JR+RKV8aBhIR5qmAJqMQsDcAAMSIPYOzIsoLmQWARxCEU9KT07tIVTNMLuSL1XyQIC4IVCSEMvYz+ka6uMO6Bl0D2ruY0G+LZk4AwCMAFgFENecIL4qxoBWScQYpw/YwEgpMbPsIIZQD1SNELHOJGYeIIwqQBBjMX1qzAJ8zOmusVuCINOoAH/3NCGCBMGzkA044Ck/kENYDKLQjA6FKuwZUiDgwPI9pADECDIbAIjm2mBUDoA2OuyEISmpbqpw9IruLiNBcirEBMbx1OZoiQc1BAAiWCQo6szLBABBWNJz5CDUvAFO4wXMBK/V4kMA8iGdnQ0uXrI0nooasBHGmiADNuCDOA3tTFKCBhDXZAKytnFMCiQZlmGM2AEoZLKgBzFIURImajDDBw/SVgBM2JIh1w/2wNLQpiC35g86NGreGIBCdgLEwBJCWABZNg4BMBIjLQWOamGneNLptCDGUARjMqmOnSMGchAx1CBw0xDh8Qz+wpLR+MKYIIgtlqGKMiLzLQEFmCm/+QYDcqghgW4jdu4GolAgU4AgKiUSioQgrrLQ5coAeuMiRk4zTVpARwAgCUQBnAjxFQDy8MiBN1ji3gLoQNgAap4pAIojhbBijNYx+QsCLOgAQQwAAggzaWgghm4GQvEJsewzuzUzsfoTgnQxPBkKkpSBvKUK2UYt3aUGGoYFQLQzJlTGUikj6wQCxQoC/zcRRnohAdYSdIUSJawQDVJhRLIzuvkxicwI12owpvKuIgCzwc9IIZ4NwnDAgDAgQ7orwOQR8ejuYWqCtigmM7sTM+kARSQAYPjT88QghYYgSLEQAJ1DAuYCVSolwPAgggLU9mjBhZoqBSrL/NkhCjcAv9qwABTuZcDwAEc+AgL5YninJT7bFIn/Siek1KlOE2aqRk7cM01YYC6GYAqdBwjsT2nSzHZO6BL6Qbo8VEcsBtLktN1eMt+O5xREze4wEgmJQvmBIAb8lMosIEZEIJVlITxc5UMbBMTWBEJozMxDUFHk8hbfIRm4YpRqR0W+MV1WIcvyaKX0oWscEwEkIHm0tM72U9TtQI9eAEhmFaamTsWTYUR2KhlTNTai8jyrE3ybB5dDbPA6De2RJuQIBzlYAFAwYKKRIDb0FMUeDtThQIweAFrWMUUgglUeAJtHYDC6taIzDhcPVNuywoKTTyMWIQLGAmxQZua2yGsKEMmbVL/FACFgKlXpbABVKXSlkDCTdAATzCG/gFT9uPWgTVHgg1X2eAKG3KECXEEIGhYj4iv7pkM3bHE+0TOTuAFEzVVa6BSJPykE5gAYzAYMC3E2ps9aHK1iSTPIooaGxKHKqiCCWnYF8y67inZ+mDEPM0qorAhjVUKPRiCFngCevEELoixUQMzgSXHiMQ4pwVXLxMyanhZqxUHR6DZhkXX7vnOrhCGamCSZFVWGuiExBtbpbCGFlihbnq42OtWuH3b9ZtbLzu8qaWQvb2AF/wIrQsXSsQCsRBRUIUEUlVcKIjWLJiAWMVZrDC2lNVJyQ1LngTLZ8GCzI3ZLEEDhvXcmjsA/yfAimzAObNQVk4LABtBXaUAAn9z3Wyzs3KESMmtUZ6USO9qHh9VBQmZEB24AItQhc71W5fCrOHFOebCDeR1VuUlg9e7j3yD3oFdWglTzKaz3jH9FQoRh5mlgEVQhUVYhD1Qt+QAXtQohIrFua86hp/V2PdQAADCj6tA2bfNs6WdSNl9Fmo4gA3I30Fo2IxIgkXI2gKIge4pnGQQsBzLKv1UXqV4j2PQl6lQjQGC3yqE3zC9YZVtuodaBgnYgO3V2z24AFVwBJkFX49ImYWrHUsQgTq5KoKD0gJQBBbeg1x4PfIotYWZtElTulMTWG81R7kiBAmggEGIWSAI4oyQ2f8kqCIvGWBNqQCPoixxOgYCcAQWjoEqdgIBUhZS02I/PrXJxTOdRNMxptqYDeJFGASZBQJVoICaVTiX2jw7cWJQIIBpVF48VgD/0aMsft4/7uJyDOS5JYQ0uABHUIRDvoBEllmZdWTHg2QZi4IEIIo4xjEDKFXUpWJeSAP64GRTMzUtrjNQnt0QTAMIEAdFsNozVmUiJmIgILG+DRMZcyUF0IxOECfkfU6NxeNjEAGj0yM+ft/aq2Gl8+Kd9DKVLGO9TQJEBgJWdoRFaLyUCRNPgeNjoBEoDYBjuAAiQN0q4OZGIg+lmYri3GJu5VbZrWCmYj9hcIAhJmJ2JptmXuRIrNVa7+yUGbnnoriTArjksXUEPLath0OYH4m4M/BjHJw0ZknpP4ZdnVBJd4bZM04CdUZmq32vouqgAbatozCAozCKAqgClgwIACH5BAkIAE8ALCUAGwB1AKcAAAj/AJ8IHEiwoMGDCAc2WbiQEiVRlJqAS0ixosWLGDNqJNhQFERRdEJCjChqo8mTKFMabOKxJZ1Pn8aEQkIzJhI6KnPq3MmR0suQn5Dk2EG0aNEcRhw6bMKzqVOKDz+FyhFqKtEaNYzuwLojxxiYI5+KFevzUw4kQYVeDTKB644eWHvwoAoz6cSxeFNKKxV0KhIjQYdu7THB04QJPXpwWHyiR4gcXpWUkpO38kYYRyBr1nwV6+HPNRSfaCxXMA9fdy2rTigHhuCiWGPD/dzBA5fbijnkDsHh7Qlmq4MflBNVcBC2Hjwc98zFg7HkXELXaOuY9+J2NoRrF7iX79DjE5Ir/wfPpYMxE7U9fL7ddvHiFTO2a5dmRG2NIM3F2wbfwbz49cl95slirWQnn2rg8GUVW8jpd1ty/fX32WH5cfFZDyfYcSCCZX0XhG0OPhihhJ4Ydlh/HtRW2AmSbGgZOJQA5mF5Dk5YmA8cnLDCCidwYFiE6k2gAmUu5tUEJTAJNt2EXAyoYzvtQAEFKqlYUAIqI2hwQngSToBdkXnBCJhaIZxQZpk6qgBFKvnkE0EpEcTJTAT5oKICBxNEyEUI0oCJVy0swYSEEi6QQCUqUq5ZQptxRsDMo49GYAEUKxhWHhcngODnWHJII8onRhgBgy22oEJlCVa6mY8vrEYgzaMgRP9qgZZ5HnZCPpuKtReooppqaiolBFvCF75E4IubzICgrLJzpjJCpR3YimuuTvH1FwwwWOCrsMFaYAGrxTq6bKz5lPAsnv1xUAK1Tn2hxBi9+vqrsN/6YkGjyY5LpyQ8CtgCu035coQSdBhhKqmlolJCld56Wyys4zKTjyR3+gswT6ik4AIlX6CCcMLCMvwwxMs2q0KPh/mg4cU6pXIEDBx/XCrD3qI68rixxlnCyYt54kN8LOdkgQtKODSqLS6QioqV3poabr7MRurLCIv14HOLQatkgy8bU+LC10krvbS2S7uJL6Rz+iLJCQNysMIoWatkRQSolEIfAxqEEIIGKjD/kLAtJDAwguC/WsComxaoUKIn/8adkjzMWCANJTBYVyIHeyuNdwo97q3BCIoaXkIrhnmysuMo2cDMXi50wQADKuQdgsao2GsLA3qH8MrSCzc8uo8nAI36STaAIMcXraeAZu4uSM6ML6jkPWAII1RpbLCt+KiCgcObZIUNcqDSBW+2rqBBCl3AUEopzJjLQAoatACFJCXEWW4Li6nADJHdaySHDTZAxSvOtzcVtOJ1LoDBF9iXj1SkYmnHctSc8mGBFphvaRFITf8sMg0rKOtKHiPBCFrRisG94l4RIFe95IS2iUHhXr6wBfc2SJFafO9/dEMFCQJXQhK8whYohJSx/8IlLnItzBeP8sUMaYgQDzKjeNKwgC1e0YVXjGAEOwTiF8Q1xG+x0H6r8laclshEg8zNF9KQBvRs0YWkWTFwWmwUuIgox1aJEQRWKCNF5AGCe0XRh1V8hQ9f8cMtOmqIrWoUndrkpi/ci4x6LIgVvsUMI7CRkITEGwNO6DBJJbJVrKoXq7aYx0gmxAr2YsYXSBXILhyBcxrYoQZqZy8igpKC4IqADUppyuFEjnVIw2QXUpACBpCgYcXqpCLtxShH8a+Xw3kT5UglzCqWComxep4YjWW/hQErH7uE5iklFkWPga1QCbvXshApx3xAoQUzGMUobHCIQ/zgEOI0yCFmYP+DEuxwk4QEnAWyJUFu5vJ5+WiBEF5ABSpIQQpguAEY9JBPgljhEDbIxwhe8boq7hBb2SqWvURZrHzMIAtCIIYqVqoKHSiCCD+oqCRBkIpNvg9+s9PA6xgQQp6K0kpZyIIqNqAKNFAADYNQBC9lKhAbOIsBw5zd7DYJxIZBoVQ1C1ZQicpSVQziBbVgakGYAYURdMF1O7VFSBcJQm6lQgVu2ABXVUEMHYBVrASxgSRMmElrZiurDnRgsFLRCrkOlajEKIMUworXgcwAoML84V+55U1glaAFcs0sXRW7VLyOoqw+BCgJbMGwkFU2WC3IwgbQMFRiDKIMVGBsYwXirEH/BpRKNQusbrG3gaPOVbGyne0MLABIjmLVd7oFFlBXq9mWSkEesx2IJK7KUZ0G1AK6bYEkLLuwFfSWAhTgKmejK5AW9O12xCym32wxvxa0wA6WBWoRwIuG+joXuuSVxPmO4Drl5Y5vJHxvt6y0giLU17fO7axY5VBT/yrPPZgLgQoEjCphFfio9d2Aa8GAz9mCQw4W4Kh/c5cj+I0gWDNYFar45QbwIngQN5DCbKnQqRAf4ab+HU3mTvUtb0miCHGlwAXAu9Iy6KAMLxCrFCRht1G58pXEzN2OUUXBVdmhCEKFwAUgAAE0aNgBbaBAEYhBjDwIAW6RtIIUzItGVLTu/31HgLLyUrCJqjaMkVloQRm8ygQmOHQQDgCAoDFgAhw0AsuuwNoGrTADC55Acqh4XQrkHOW97Q63hmugCi4c3s1CAAAGMMAxeHGAAwCA0A5oRFCHkAfUyUMKeWjFChZjgVJE+n04fp/eUvBDKlmWkc8qAg5w4AATCDrUoh71EkpdagAQoNA+wPJCL/a/y67AB5+BQRT7ptP0auDb8Nukr4Ol4hFsOrHEoMCxjyFqBRzD3crmRahNjWocqCILrtjUIaRA2GvnKUK2kEY+2hGCTbxuE99OuE5HK9hFNVADkpjBC27wAnHkggAPQPYxjgEKBShgCUsQwRIqwAuQN5vQOP9YgQ5cpOa39sgTHTCBCTAAgA60QxqNPsG38QZuvVnXUIItV5YkkYcXKGIci8hFxjUOio67++MVWAIvpg7yJQha0IV2w8qFIw9Gt2NLJzI2AEqNgSGNggpZSDjCEw4/gxuKx1AwYB7EIQ5FVCEGAFi6ATK+8XeDghdRr4DHefFxk5ec3iZoREtVY4NRWPBHMzf2ACTQ7BWAQAqHeEEW+mZwnn/b4D/ErrZUoAIhUOEFREj9IjCO7KZzHBQBiH3gBa+Aqdt+CaMWtQEAYII2qCIvHrRDK7ZkHgw0ewDIl8AAMDCBL0jhokLIwgF3qvDXGYq4CG/FKCAKhu4nIe+6d73/xxVQAcGPvPzw/jvJecHxje8eAA4Yglj2nQoL5mnmB0i+8vV/gA7M4PnOIAXFMH3GVF06ZUymwnOSMAp6EFE3cAN7AH6i1nTjV360N3Ljx3599261VwGgwG4AAAFOoWaN1i8xZ3zIl4IqiHwmkAoM6AycAAZlQEJYZCoi9DqCxHPwJAUN2H0QKIETWIEJMISCR3ge53of+IFTt4EGQAAbwBOMJgmyBnPGln8rmHwqaAItsH2HwAk/cAPSt1G+coMMsAnZ93+H0INgQAQRqHdNB3sVEABDSIRFqABvmIQb2He7J4I5cQijYAfncoJWuIJswAbIZ4jIBwArkAdUYE9e//gC04dVtmBuCVd6POiFekAEEYV3fHeHoJAAheAHflABCUCKtMeEr/eBG/gADqAS+/YCFjRrMQcAKViIA8ACuGiIuFgOhmiIFMAEEvUDnMAJehBrIzA2ZWVABrSFeiCMxDhRNxADBBBqD2AKbxh7CeAHIpAAdniEHeeJrtd3oIBsxHASF0UFseZvHUBz+zcAbFAOuCgCuGgJllAOvMgGLHAAqjAEmqgHw+iFebBd2jJCpGdA/9eMmKgHehCN07hxpvCQptAJAfABhRCHAWCHTWcA3wgKpvB6G6eK7seHGmEFo5AHrqCONHcAIOeOyMcC8AiPLOAEuwiPbKCP/Nh9zv/ohaMgBC1AiaTXAnnAgM74Az+gkC9QAA1pABAZkXJokQHQdNa4cRjpesmWhwZQAFuHEX+YWj7QCLNYaksgASIgjzD5jrw4k/bIAiIAAPv4At3nj//4A1RgXt82YXkwUXCJiQ91lKDmkNbYCaAgkXKYALEXe3b4bhKJh07HhASABhkhBa6QBV0pc4KmklWXjX6Aiy5pj+/oBPSIDMgQBVfAlkMwcTj5j154AzrQCnJ3Awj5j5n4AhXnABnXdE9pCgrQCQqAjaUYAIXAjR+4m0/5hu9GmBi5exSQEcXQBm3wlRIgAVcQnSIgin6wBk4QBU6QneUQBVGQAZ8ZmuUgAhf/wASmeZpxKYNASQXmOYx6AASq8AJloHQf2XSdIJiESZhPGXscaZu1d5i7WYpUCQAFkBGLUGy0KAFhCXLPKQIVMJ1+kAHYSY+WkJ1OgAwVSqFR4ABlMAQSBVHNWJQRdXpDUJoTlZMx6AhIhQag9obCGQASOYQXWZhQ+ZcBIHgdJ4d+UAgYeQwCihFEcAGVOXljOZYNqo1jKZoR6gTb6ZKWAJqWMAXIUA4AQAwc2n0RpQjiUFd1pQNcemSKUKJEqQdVcAFAym62WZ9oypu56aL1+ZCwZ5iwlwBrsAZ+YJwK0ISDcBGKgHcHsKBRMKQiIJrReQXciZ1RUA70aI/lgAwC/zAFT4oMEnABZdBnjnABBTBoJuAABdBpQ0UBEEABLnUDVbAIZAoAHKef9Rl7ulmYqNoJbhqnQrgGGSCKtAcKU3oR4kAGYwedV6CN0smd0ukH3JmdicqLngmaUwClUmoCBOBsn2pUEFAADkAABKCp0uoAmooGxOAIpHoBi1CbEpmqbMqqrTqcAWAO+OlxvkmnfqCf7HYBFgEGqiBoz3kFMEmo0SmKDDqED5qki4qsUIoFUNqkTnAFBEABg9BnfVYGRjYIg6ADTFCaL/BQUqAIKPqtGimu5OqiGwuYsFcIrCqRD7oGv8mN7AYBTFARQwCkAACdLGCW8Hid2LmvCpCNsv96rMiABQLQqFMgAFiADFA6BVFgdQRQAFymZfTlVUfGsH02BGUwCGiwCCuKAoWJAAFgtapasyULp3EIo4W5BnM4hO5mAA4gDhWRB3yqfCyADPU4oYUaBWsgeOU3hDebARWaAYwwB3nrs6A5q36wbIJGrVcXuM1KuM1aAGQ6geJqDqoqmL65AOjqmy56n/gZeyRbCGDrgeNIAFmJEMVQAMYHnZ5ZDkpaqBmQrCKgrnJYCHOQAR/wAXMwp9UwBz4rsFPACEPrAHz2UlVAd44gDo7gCEAABEkABKSqZUNWm+RKmEwZe79pDoyrqthIrqE4pxXpcez2hBThCGkrAYj6vZb/EKGMOrT0ubofsAazuwYfMLsNcAbUcAYCO7QEkFgTx4MPBQb2q5D2ewNMoAP1lXG5iQDR27ixB71zyLgDXJiEWQgLIKuXe5Hs5pgUUQxpu5lNWo/DCrRDq5FOlwDmsABz0A1gK6fs2w1T8LN+oADOVrRc5q2LwFp05bAM67DMZaqBiaapqrEJ8AEGLMD4WbkJ0MDoG7tzOI4DShFAgHe84L1mybbbGQUPOqG0l6oJUA3VsAALAIqFUAizewaN2qiM8LemtsLUKriDW5nwp2WmWrOEiQBp6sEF/AGQK8DmUA0lS7mwa8V2bMcX2YQpmxB3BwBLnJ1O6rZQHAUWmrpO/yeHdazHehzC1BDJAjAH3EkAXlUGiiCbsjkEvfu0xmupRitkAOBxQ1gIjCuYhcDDCIAAWLzFH8Cvc7i6H7wAjlyyPFoGFBGfY2evElqs3NmkWBAFtPefQWzFsQu7c9CzU3AGyZoBBptY5EkFMUax1AwGisAEeyZkofaJQ+jGVBzE0NvItLzFc8jGJGzMcwCyQ8gLAJCnCaEKudCyiNrL1/nEwDwFS9CNmMnFazAHczC7ycyzJzwFGbAEzUqt2KplGRbDXSVkECBqnTCE5uDNL2oOchzOV8zA1nvHpozFs1sNYBt78qa9CFEEDtCnVyChFWqhpJsBLo0FWAC26rrF/f+czMnqzwJwBu6brI0aBdwIaldXuFfXp83mANGqkYMZvan6wVyMxXVMy7M7qyULCVzcDQ0wB15MsoXJCyJ5EKt3ABXgmb3sndmZATiNBRlgoxN5vlit090Q0Dvbszs7BwnQmK+lCHiN10zQu58crUbLZUgduSiQw5L7wRMN1QuwvtUAvc/r0e0rALIKsnd6xAgBpChdob1soU7g0jlNDc5cAam6vibMs2fQADl92jpN1wCwCEgmUd1HsQtpdAvbWw8dmBxbn28qvQgACZDg0a1syjv8AQHg0TubAZhbCB13DASQZAiBdy17Bcd6wcjq0nMA0xCaALad2DytBtSgBqX/zczt689z8AEqDH9GO2TMtQiZxVUODdGDPdiumqYBAAnm0NuIDbnhHM5Y3ADUMMnHzY3sXI7NvavQzbYwDcw6y6g6G74JENqza9Xu+77gfQZv/dZg+wEVYGrvN9TPSXmCZrQFIGoR2QkoAN9oKsAC7NHVYNXd4NQTfbX77d2XC7KdwG64POApaI+g+bM73t+gmbMZkLoSaQ6sOwft277efdUh3A1vzQgVAAAXQAziUAV5jaWq4NAFkOWIGwMTOOLxzZH1SQOrzMpc/NETvcr4veLVDdm/GQAy8IEGkJwDnn9MutI7jgWSvOMC4Afl+7rJXNoNoAambeRM7s9gCwAb/4BkVKAHD9WAm6ywZbBaMQCu9WniaFriYu7RczrHq4yuhWDV1IDWWu3mb24A8DrnA2CP2SkAP56zkdzj1DAFhDnkILzMSO6+AiDhVm3FT160Q+ZlRfXrhnXlFMDlHCcD743DJY4CswzCSt4Ns/zB6Bvhk6zVkMCmvFAAf2wQzi0BLDChxNqkOYvnsC4AcSiRCDC7k9wAgX4GtNsAU2DVDWDFr5wAyLZ7BmCZlNdsfy3iyZ6mJI4CrEzLIezPVwy9WLy+Ed66fBx7MhAABv17B8Gnt6jSOIvnywDTeB7JKZyqhZABkxzC7L6z313a/2wOBhADQDDlVVAFe1Zffo2t/f+ulPG91A0u5qyMzkx+xfjt0Vg97wd/yhJpdRLP7btq54x658sQ6sAcyXNQp7GHzN2w4u1e2t2g01fNwwawCFXwgA9FcSMK6TogZCFuADj8orPeCWi+ABZ+8ljswZvevu5uxSDropCgm3Fe2bsMzHcO05H86njuvk/f4L7pz+zu3Trt1m499eQtoL/u0GR6AcB+5ZYK0QF/tdDLpgjv8wbf8/Qu3v9sxQMMmFep930q1n3v95Es17kuAGnNyOyr097991g/9Yv9m3d6dSUncvv+4Z6quCR+rpkfe2POym/N7i2OxQ2M05LM8yGNpqBA2QVxqbxQ4Ds+7hv/9zDtvmr/sOcSTfVnoAazT/vx3uLm0AkGAAGX7Agr1VtbpuWfWvYRSQNXK/Bn7qJjjsVMftU8DxDdGsxpoIYaNQFzupkrlCCAjE6dTMV4UtFixRgADFTI4AQZMo+WypUTgAULtZMHqRn0k8DlhzkC1Mw0KOBggwbdFixA0MkAGiYvwIBRNITJUSZlygyiQKGAAQOmUKDoNLUTAhQIsGrduWBgNbAMvVbrpmbZsjNzqi0w1xYSxAcUL1pcRMDAkgxRppRjAcBEBxMHBiBDmNImtQwtE/ipRpDamcdnuglssJZtAAUEClxAcwEChAIQmlJAs+ECBQgGQEVkTUPra62QEJgTqLPr/4LaDc6izFCtkDlIkB6aepBrrkUguQwo8BMligQTPk5wmOABwwCTKVXOydDQ3AeBZ8RPmSI+5+0FH6L4WXJgiYQBA66IaH8AAA6nqqtmhf06a9duFEJvp4K00OKgDD5gqxBIWCvuuIqSyOUBBQqJQgQTVgghhRSoM2Ewk1Si5sDEzNlpsgbEi6y2ycD6wBwDCthAlQ3QsLGpzwpwoID8DLjKnP60eggBAHHSaTavcDpLi2WwmMOcBNpaQDYaTDEOQkfIoHCJ+04IgYcjjuCBgw4AYOGjEFfSAosoXvxOIcjOwCknsMBiCwECVGHCKKSOEqcMHYjB0QBeQAmAP/+CxP9tDgFP9Aqy3ZxsaIHfgqvSAQifSI7QAzo4AUwlwuxwguuQMYmwg0gshEiYAjTvDDVy+kBBngIwhYAcQytA189QQ41QUGSwKgAi+1uArPCOBHAOapZpVtI1CimEWBo6AeWBRSC8AIADJMBgghC6gGHcLhgIwZMyy7HE1JSW0aIbNz8gSzx65ezGTp5MrOaD5py74t8r5APAAQgcWKICYacK8j/c6hSoKyOrucI+Ca7oTtp9EWgQlGMIIOa4jAAAoBENXBh3XFteYUADHz4s5yN2D6RmihflJUg8NWClU0ogzckstAs4szFo0Hh04Ao/AghgP6xoQMGUTlwj0s4GGu7/qpo1lsAABxw+rLgQOxnkOMaPL8oouhHGNcIIlFEhoRUVJgBggJdNdddAAeS1uRvIHqOmMsteCwAACgYpo8+klhLUqQNEcEhhq6hKeOq1uCJQoIm/9WSCMpfAeI1oI1KAFwIosEgHBxxYIRVUYHDBFhhat8ACVEZohYPArjC1WWoIIYQa23ALbybzduq5LQUG1nVXHR3QTDQICFgiyq2msqoqnoQfEKcFKjhAcx8awQEDXgpZI4M1sJZ2jYkhEOKJLApYQRJbbHn95Nl9sSCVVrJoBAMJWEI7BnqMgqaWIlgdRDJ3mo1WPrCGKLAgCvNZggjoMzDQAOAK6zEHVawH/7nsTSZ4EFvAFbzVgQlIpwiNcIABdGeqi53PCQeAwBOKkYUSoKJ19dMhDL7gC/2lQhKtWIED5ra7g6jhQJYRXnhSlBOd9GxpMYLAaWq0gRltADUFG4wT1sCTqmClKmFk2PbklIEBYACFHFiBCrKQhSLgQHpOQF8FptUcAjzhBUJABQP86EdUzC5/+5NEC1rRssE4K4mEUIMAmCjCJ1bGNm0xRwAIsAFHHM5PRwGUFqMHAMc97oNMYxiRsse9bmSgUxNYgQZaYTtDrmAFjZBeAiBhqABUgACDeEEWNBQCDTCABIFMhSD3lwooEBEHBxDgSWZCwCkgqzY6S9GRYAMKAv9ohnmpcx7BLqAjUEZhDVgZJaIIRCCcyOlYFRhZG1vxSii0wJD9K+IBrrAGO2bmCUwowgn8yQBUQEES+yuBEFNxUGSq4H+DSaIStaCGKajlXrl5YhTzpa81NIcv/7qgAy5gsHJgYQpf7MkHUWAiAOkkkrCagwQA0AEfhEAFKhhBMuVpSEO2QYMSqIABLvCEIRTBB57QgCQMageEzg6hyWyZBEKqEi0QQgv2Alw15gRFnmiFPzG6QAyqyBnSeKZgS7iCEwTghwVYDysmQsBkbnNVnAggAyw4gAkm4IkTaICmN22BHezQAlc0AgAS8GlFxLHC+ZVAnpJAagnyUVCEDnH/BR9al0ocOhMBQBFFRjqPVlFgSTSoYhA60CSgFlc0ACyhJWJUmCnvBbE5dWMNInCpGlPYyla0gLGSMGpBDVkEExRgEIZtRCOyYIdCLtax+difQA/aAhUsE4k0oQlVUZQzOVWNtQsYnciy+V0AEIBgBSCAyEgiICB9cCeW4ewceCGyv3SgESdwZyuci1SkzkCyjYCADirChEYU4abvbEEq8vFY1jk3FYYU7BWwgIxlGGRE0FQIiujV2UNpZV9Q4VYFl8AlghFAd7xDxhyySk4U0OCttUnAwNqAgxTSVwXvfCcU7uvXBa/AB0UoQ0WA0IY2tnHGqMgHM/IR2ci2osFY/4iwQQxkIINIJp3myUlb/AMKGamCRle0URVTV14AqEsAtkFxGReQ3UL4pbjSoa9eadwCG6cCvwtWgQ/cYJEN4GAFRZClCvpaAt/qFqFyji4ztTNhLWzhoeahzFqQdSjrdUJGWFQFMUYbqKaIlbxLQEZCqtHBqUjtRFfNmm05QF9ZujK3NzXqQZO7gizQxQSNuK1udWjjmhrU1a3AAQAskaq7RdULW3hMRCljm8plJStQ4gUv7BPe74bGiBWz22OOpNa2CiRnA+GSqfU64xrzlrdIdbU8W2EHi5zNuLrFNU2hgMyDWqAEduC1Bt11N3cRYguKnhllzvBp4/WHLMkTGf+33IPB8pLVJs46iU74I0m+0QQLV/DLGt38ylwjtLHzvuko6HIBN7iBGPNsRTDfDW9AF7TeV0C0gfbtBS/87iTmsUx6tYqAaigAAhsYBDFoZKMNQA8NoCnvUyNctWNZmCYEPOFdvTRTjKNi0IO+qRQsksmhuwHWqR6B1N9dAnnPOwu9ZvmTn+y7LRCiSSvhbL5ew5YFJGAzYm2Klk/TlF0V3SQGUcO9yLJ0tO97GchQoydOvSG9jkDxCi53bmdgkSRQAAA82oAv2zhMqafCsQWVhAoCU45l6NvsUdW32h/D2ZpftBpnyMB8RDAf7xLMAe5xApOjCuUow0qJatgCzPf/vW8tEL4DHODAhhhQU1bLWc7mbkU+6BKDAhRhA1r35Tu7rnkLIFgSJ8DAAQQQeqkyKfy9T7t4RNii453oDEvQ5q6M+DzniYysEHbW7qnrO5jnP//B/9apNaCBXGOsQfureXo8H1sEIAg5VXADX5opgMK+Y1KBzvm+fZOqs1Aifdu3KBOhrkCprpiDPFEKpfA50yANGnEKIyqHZlk6A/EdfdO//FM0S8AALpiA4gPAzBu0QqKxErAIRQCCJIiBC1CFYiiCfgKmrpM6HWIAUrEnLCi9qMq3RCM/mZEMt9qebjCAzyia0OiV0wAne7KEu3Eo30m0F4RBmJMqLDgAD7ir/+I7vhyMJ7iRpTywCCJwAzIggCEEAvFxOr3yo/8jFfnIgGXoPakqw0N8OUaCKCgCC7dKp75bg40SgWeTPQMQASfgHSYrwxZMu6jqPTQcti1okgEwhgmoAS/RgGESoiGCGx9YgTpMt/C6ACD4qA7ogDY0POJDl+uoLC0YNii8vd8btofSrGNxmILIGdIBmi7LEefJJvn7vgjrxEM8QzRMu2WwBDYMgsMLJlvQIdtRgRXwr4u4gGy6gCA0AADAAHbEAGMwhnYcgHU5CVD0RBeswHo8EM0CC4lKoAqAAMMRByb4E1WAgNIYhEFQBdQoLxbonYcyOxfEP1CMQd8ZPHesQf9P6IEbbAe4caP3KUfx2oBFyIVjCCBLEIn4oJu6Wbh6BD60S8Q03LYWOcZkRAzKQwPU2JWv8qRpY4GQwj3Si8iJhEG1O4tycEcPqMEJ0EhgkqWPvAhVSJ1FGMm7gA+fXJd16bQQscZDTLRPzEBijBW1OJHhMQtKLDjv2gzy4paKmSAHA7+ZyMBhHEr9UyQs0EZ2NAYPSMoUKoJYO45i2JUZMSJ1ZEvdmUfeETbfUzShfMGX47cp0InN0j1qWIIdEQ3SCLqcfEbwwg6IFDbgezk0PJAHM4lySKN2NAYcKJvjKIMYaIMsQB20vIuyyoAQ2cSJTLtqvMfF9IIDySxpqkn/auCFy2yKIvCVgsEAv0gdkfHMFgw/LRCAcsjERNM/fkMJNEGJ+GjHGsqUJ4iBGGiBLDCigiOrFzqJk8g30dRNtYNJ6zwQqkqRy8ICCXi2ggsNMNOM2WOD+IAw0nsy+jQBAvDM/COE+bBNJkOJs2iSuwSAbPHORYgBV3ADExCZbikrj7hN8Eu7lqxG0Rw231tE7HomKMuA9mseHhENnISAwToAwRDD0APKATCBwECGXxw2LHCAoCMAjviIg2iSDIgR7/wvBgSuDiurrERPJgM/uazAwJtL38M9s3AoKIsCbzoNuqOAbyLPwPDJkDoLqTIIZ0kjFZRLLOjOJyCvxvGD/wzIgApwALkY0idQBSOs0Pe4AnVBE3ZZ0nuMyNL7UFFMw/qj0idbhiuoD5HBAI8yomczgdmbAmR4mbv5HZVwltCLQWrAFItQhYx4gGM4BgdQBTm9CDe4gFwQGV6omJN0grMkgFwABd2oSLDUTSWiy/1jwf/Uggz4MPvcDAKAj/iYPACYgomDUXdBiOxyuWFchjyaiwsgAwCI01GtiDIIwoQDMRzQ1IpwhAeQgQaQqmEExt/hvVAMS927vYeiRC65T3N0QvokrwxABgkQgSV1Fkcii1jNwN8BgA2AECCYVgiZSug7DQjJiE7QjaBkzME7gAwghBjMTUZaiTMISi1wgv+RmDznSVHykgAWkIDUEQFksI9M3A1qUIu1yFepogYAQFOAbdlMSY4HYBaIdMGKXYLeWczfA8VFa4CzIzaRwAAK6Br8aAofmIDAyFYJEAD7WAJptFcTI5CKLFkDMB2Xrdq5cIQCAIAKOIMloVkzJD0nJb9h/M0UGb0G5RxHNU4foA7VLAARKAcLJcQFLdkFkAEV0w2EwCeWtdqqXQSNIMQR4cR7zNne5FDfW4aEODMoOxBtvEUTGNoimIAJMAYTcIpmKy97ahImQYhqeAsV84puSAAFKAC+5dtimJAK4J1m6dpfXM+cDdv8mxmC4NkDQYY06prH3SIadVRVQIO8Szj/+tsNE7Nb2IAEBdDW0m3ZjDCAQkjQeg3KJ8XH3sy/JhkzOUHcyasi8BQNoKGAGRmEJFiELRUZ2yRZLFgLGpABGUAA9cWm4UpegAWCPDyGDNDEH61U1i09mh1KRevHBvhHngMCIFgEFSUG0hJBIFCFCF1LTjuLBB1e9U1f9eVX+AXYRSADMnChJRUR/IXOsws/h9W/qZKobqiACyiDKhCHKqjFDSAGcXjhP/kTR1hg5zGANWhaZ+kGrVBfu5WB463gUR0C8MzgaqhX1b1fKaWJwLXGYVsGLyILEy4DRZhiIIgBNBiEKshiGBYHR1CFLS2vCli4h+o7npBgpwkAIQVi/+90zRggyRue2yO+Xwmb406EweicgzXwmRNWBCL4QSt2BCZQBBV+YaUAAjSAPufJ3AV1luFNX63ohGNAAzX2TnGIUK2V20VWJEUaEQmr1OeEQWJDH3MAhT3m4ypeBEeoAkXQYkJOyG9iYBw+iGpAgPSlgfTFskmGEDBwhD3I4EJY3bmF4ynl4GZJWBCFOV1tiYlwhCkmglN2hBdO4UFeCi0buvgTAWlUOyeZElqmAeMl3VyeixsAgj0gAAVYg3rN5AV9SGJ2l9fNTSyIFlMoAGbu42eO5ixeZS52BEcwZB0hAIYFU3ud5fQNjgAA53CuiF2+4I1A0PQEZiZhEjgG5v/Qe8wCHcWROuh6/sELQGUVzmJWHgd+doSgW0sRKGbTMzFbFpJmTegnGIcYyOAEiNeSsJslMZB72w1NXlC5DFEXpIY1ON5UpuI9QGWQnmJW3mcvJi+ADt7qnZL1VRoAeN+ElhAA4IXzvM0fzelC7eB7vFFRFDw33SVVduaiTuV8XmVp3md/jj+WW2QsyIAACA6I+AmXfoKRfACsbtNOq2kRyelMXl3orUBljbmzyhNV/sGphOYUZmVpFul+7irn4QUnCOygDgBQAIXCcmkJWY6ZdoKYEADRHm0B4FqJXomDwOFCDbZDRNwrIGsqXgRVEIdV1ud8VmUt7mJEHixTEY8LhEiaW7qWB63agAAAIfkECQgATQAsJAAfAIcAowAACP8AmwgcSLCgwYMIEUqjJG1hQ0qU9kncl7CixYsYM2rcyHEgJVEgP9IZ+YmOqI8hO6pcybLlRoiiTMY08glJjpuhco4Zg0SUNJdAgwrVyIwSyZqfcubYwbRp0xxGUFIcSrWqSxulYiLJqZRpkCA1nD4N9amkT6to016UI41OWbJltzKtEWQC3Ro9euDlgLMkQ3BqAwu2cS1pqK05DodaukOv3Ql2OXAIQXkHjzFHlFyTA1iw56rSlNwcLbaGaU+eIEP2VIPDiRMcePBY2kPJz8+4g7ZNOhfs1695a0D2QBxya8mxGfcYkbt5SzkfjSyl+3sC2NQTiGv3cJ11Dx4heEz/vua8/EZw0kR9Wvo1+/bq24m3N47cdQvz+NdSSsr+9/uv8RWn2oCmcbBCfggiBF1N7Kn23nAdeDDgBNh10IFqnkgmRIIcDpQeg9S5J2B2E1ho4WqopWaihBNwoEKHHX5o0w50DTciaq6FsMKOKqjwmoomtngfjAii59Z6jZ3GmnccpPDECKggUsKUM1yDyAghAAnZCfkQiSBbMdV0xBEaMNAFAwxooOYIiFzjSwRvRgACMxFEcA0UGnhy4WobeokfmEfC4IILtqBiKCJRuunLm2/SGQEzkFrQwgkDejKDn39+VNYnRsBgKAwwXGNBCYouGiekc86ZjyQqcICdJ31i/1oeTZyC+qkFiIxaggVuRpBPnXKCIKyqiGhwwquxytqcEmPUiqgtMOCaK668MlonM8POGUEJT5zgQ4meuKJseV0cAUOnhkKLii0WjDotr9dcmy2d14ywAgerPTGucwwcYUQpntpCaKHU7npNr6hmC4Kd9n5LYRb7NpfCEaUAbMvFF6PSLq/t+vKrwsLWaQGe3nriw5ARf6aBv5R4CgXG0B4sarWPggznnSrcy4EPyaYcmAUuRGUExl1cnCupVlrQqMJ0eoyIj6+dgLLPgTEDQykQ2YJmmSQUmisiiLY7ZT4z5OOoyE8gt8ILVHtmNUTS2BKCqxmGwIDXUKSppgpPPP8BBSL5/OorFMd6om/bgklzzUKiuKBBCLBJxgMDUeatAXghaDACAyNAoXHghKN2OOKBNSQNDCScqebjKVC+6DWopEkZmzNLOYMkK2Q4NelpsRW7BnSfQFkKtlxTiuIj+Fg37R7fnjuXvAsmRwQkPA6b8BqkoIELFpQCKSIttPBEC1D8/SvZkswdwgxWRK+WDfmsO8ITKuxtJrvXTinJ2Nn6+rTmgHNfWmwAgmd17gmc81uuasaMGcygBGULlrCYYYHPRUASNhDgUKxgAwIu7GJd6MIIRoAxwD0KW4EL3AkhVaeZyckXGdRgUOokLGlYQGAhdAEDSMA5E56wToK7FhD/fUEtOMVQhi4BgS8muK4QdkGHISSBBVIIrCAKMXAliACi4tU+JLpEDvGSRilQkbonOrFoFrhW04AFLI/lY2z5aBcIOuPFlogKBNJYly3OhKYU8CAFA0PF63oFJ0Q8QRJSEoIDHSiHOgKlgA1BxMXKyIAUTCYFfNRYCfJhKl8gwhVUQIc39BAPMIAhHt5wJFB8cTwYTNKJacpMqGQ2qlKNwBVlGIQjBjGIMrzgBalUZUvgp7h18bBoUYxWo3xVLV9c4wlZIIYqVLEBClBAB4PoojBXYoVRLEyPAyMBCTSmtDo5cEolcGYLVrABVUhzmoPQgTa3qZIOggAKPESTE9WV/8Y3xlFXM1jnNAeqikEwYZ70VEkB84mmhnYNWhv728FKsM4NtBOevtRHQoc5gz1WMjyU+aOZupA6AE5JCFmw6EV7CcyNssQGM8BnH8t0t2gdzJmI8JyUXEHNixbUES9AqEs3EtDNNRRN0AqVqUqAqCi1oJo+VQVQNTpUlcRDCEaFpZnIKSp0gu0JG0CDWAc6iBdQtaocscIMnjTSKHYtSmBjKlMlkVIKiBUN0yzDDc6K1o3YQBJockEIMRYlaU1JSoYswl3RsAFdEuEOfe2IHOJ31KJ5DZ1MRYQk6BpWxuJVqmaNbFp3ZdSRZkxXYItrFopgV7G20xGKEKpoLSKEJ/9oTU1HdcGhyofIEqigs2FtbFn5OluL2KAFaiJpH/14BDORAEqoKAHuVqBYu76WCMQtroJssLkUaO+j4omNmnQq3R254QLohQBeFZFd7RaEgyDQWh/Bk5fvZG4E+4MgM4Tgijw4AghlYMILwKCH9rp3IPCNXXO9S1/xKnCTZHOFG7Lghp+K4wWKYMKBE2ID3/ULTX8Ezx8119s3XUO6KG1EIy7giAs4oAA6uNSGCfKCDjNDvlvzo2w0oMBcuZFsM8hCQVXBhEUAAAAEoAAVZuwNdEhCCMyYXuy2xoBNpIAyGtjE36QE4RTOIA83CLORjwwAHKygDHkorhXQMYPatiD/yiXAcesq6cfMeU1KgWMGkMFcBUUAgQBHNgAATIADH2TBFT1LKDpGkQfx9UgFUc7H5rLX0Ox5VwMk2HIKA/dlJijiwlUgAwEe8ABBHxkDHTCzK8RFz3gE9Ak7es2OIjBZ+h1Vb35sHQmmtekS5OEFRFDEDRQhalIbgBfNaIYEDnCAQeOgCId2JExhvYKSoWYCJ6D1DFyBW72pSTaTG6fYNgnBUppy2GQAQKkNEAdkN+MABlAAswfdhiIcSIOjoGiW9GQiE1jIExGQRjzysIIsp2kTq6OpuN81pXiEGQzBTjepS82LiisgDnEABSh4IWgMENoHRYheQFtVog6YwAQY/8BAs00wgRIIfBRZqF/CEY7brkkrV5t1uCkjrm5j80IBCuBFHBQACqD/fAnzxoADGkE1mK6TUiYHwLwPMIABNLsDqJCGHNAxhIKXKeGZQ9M4yWlISeg82OOQ+ANM0e6NA/3tbx96sucNAAdAQBXjuh2sVaRyqg9AAlVf9qChIA0rWCEeMZd5whUOV0kkTwgORwcYFJF2Y2O83XBXQAACEPclSCDZyZaAsylADC/loba5mwDKMQCAqrv+71YfdAtAgI47/OAGMT/q6nYIJUTRTwV5QEc8SKkIYgPAAOzGeNEVAAnOaz4ACahABZaQ7Ao0QwTWf3fdIbABVudH7yv4Vv8HAICB15tfAiJ4twlakA9R/kAPTOgRUhlAvydBdwRqasEo9OANb8RjwDHQcxmnfMzHedAXfc1QAUHHC9LXgJAgdIJGaBBjHn9FP7ljcipnfq7HAlfgehJgAk8wA6ikBz+ADrXFNc+VPJrDQ2oSgsM3SpOnBxdABqR2eUPHfAlwgA3YDArQgNL3dhoXdCu3Ac6hd8pjISoHeAPABhqYBldwBSIgAhLQAYBDBXqgB5zwA/HgCgg0TuXTN/i3CSrQAjNAYFcoecJWbKawhqbwfJyXAHCogHDHebyQAEBIC7SgcbyAZBSAG/EgCa4QfnpycszmemnwBmlgiCzwBsHwhFf/MIUQNArDl4W3h1XjlFMqWD9PUALDpwdgQAX/F2AEkAtrt3Zsp3lwGH0VYIABgIe04HxAl4caBwqXBwAF4Bng5wODeGRKmAaJyAYskIgDkIjB4AROEAyNeAA4EAHx4HBYyAlZ+AKSsGX4pwE98gRCsH+coAfioAo3UAaqsAgTBwqmMIs9mIp2qAAyAItER4sZB3fuiHwE4AiCsVo+gISsp4RV54u+yAZs8AbB+AYAGQz+yAISgAMzIHym9APQmIU3IARYpTd8A2YkuI3jgAaf5ggxYACkxoazeIAJ0HybZ4AX93OzeJLuGAfI14dqUQaNgIEAsGzmJwLDyIiIaAmW/8CIyOgEluCPU5gHVEAFN0BgDbmNLyAEivcEYIYODMmQRHABbqAIjpAL7MaG5ViOIFkIObh5ORiERNeOJ3l5HHmLaqEKDpCPgKePEpAMUXiMwfAGyIAMOfkGTmAIlhCXbHAFAOBLD0dgDJmFeoCUPUKGoVSR0AgG0wQEF1BqRUeO5ahxXFkIH1AIYTCScJeOKJmSKkkAg6AWiwBorkeTwzgAHHgFUWAJwYCTOKmTqpmTiQgAxPBLQ2mG0PgDJchfQjBgV1iUnHADQKAK6aZ8VpmH63iAhTCSm6cA6ch5oEALcbCGGmeDDwAAeJcWY/Z6UNiBaRAFVxAMLJCaxmiMO/9pCU4gl4x4AKqgCANmSp54br/0AkPwAkO5m0V5A0mQBA9Ai+SYcSdJC8pZCNmglSMJh1w5ko5ZjjIACmKAcch3AfGQFgWAAfrohKb5hFGQDMlQl4Ygl4YQnuQZl1hgCG8gAhQgYJ+mmAUAAdCGaEMQYENwA/TZkPb5meWoec2Jhxr3imEAoNlAoNB3nMjZirRQjrRAA7QgBrSIfAWgCGgBBA4Qk8MoAlHgnVMaDBhqmlFQnnHZoTgZl3VZnoaAZIC2ckd2AP7mA6qgA4gmYDDakD/gZ6pwAfEGh67onM0ZAIUAoFqZAIWwAFsZpEL6igEgA5AgBhdnAASgA2hBAbz/OIxPyALfGQwXyp1SmgEeqppxiQyGsKGtaQkSAGNloAMbAAEOcHI4AAGomqKDoAgEJpWLsAgFwG43SgsosHl5qKPVsKMJkAx/unk7ynm0gADHGaDQVwGbWZ1VEaGt54tvwISLiIxREAVRKH3JkAEZMAWamqlYsK1YEJeoyYFJZlBDwARMoAPEEFapWgAFgAaOMA5J8KqLmXF4GABhUJlCSgMIgAALsK8COqB86qeatwDVkA0ZEKB2yHEEsAho8aQH4ItOIJDN2qzFKKnYVwHJkA0d6q1xOQXcmqmMGK0icAAEYHekpwMBxgTxGZ/reQOO8K4AoHyu2IoK8IoygK8I/1CvQIoAeEqvAtp8u5oBhlCw6RgHAHABVlEMBSB1EpAGb9msBQmeUNgMcJgNPJmpHGoI3dqtcnkFySBoBFAAgEZmI1sAF+BOAaabTEBNBJB8d2qrr4gC+VqvfJqDC1CvO7qnqQigBcurm6eSRlsVwKm0THuXqHkFLBAFHXoFCrirc5ABczAFG2qMjisAArCtltChFUAAGyBgLzAOQLAIFwC2YSu2ZHtXaxuLNwt9AZCvN1uvC8CrdhsGcLivcZi3BBugQBoHBaBhVAEE6SYBEnC5doma3gmQTnAFb7d5ADoHWOsEGfAB1VC5+GC5VmqLRAYG6KCQYTYEVeAIqoAG6P+lrmQLAcfGC5Cpq3DYugvwAQQbBUILh3kKoHzrq3zao4XAq6AAAIpKFW4AaIDHk5vqllNqjD9oq4VQDXMgAJZqqRyLD9OLBeQZBdInsimKBsRwtlSAvcInecP2vXJacXdKmQQqmWHwAQmQDey7tz0qsAM7vyN5wLhrhwcAAVWBBo1Kl3bpBNEarZHLqwQaBtGLrVMwBYwwxA6MBfjgpVGwhwQAaAbQbEf2YhSQpgJmSoMAvg8wdAdYDblat5TJxVzcuI1bsAfMxQtgq3jap2Ccp82nu0NAFY2gtKTJk+SpwgLQoReKnAhcuVggAEMMC0e8rcjwBldAAKrwS+LgveH/K2rHd2RfCwHpdWzKmQBhwMJ1y6ddvAANMAecnAG5Wg0sDKSVvK8Cu6d0CABEKBRZkLQHsLRp8J04qcNZ6gTbqsOoKJkZULm6PAWUCwsdGwUJULRM8InN+Ik38AJVIA6fG77qSgEFgHGTHLuUuaOyq8YCkMBzUAgIAMqgrJXCCsqkbMqcBwA0LBQbgHKtfAV2KZCaKssbCsESzJWczMf40A1+jAW8XLlTcKEVgKgvdgEbcMHxCYrxIHlggMzfS74wS8n6ardmDMT2fM2TecChDL+uu6/VsJVEFwflHBRogHL/y6nZOshvsKFyCcxcGb3Siw+V68vbqstzwKsKgGTH/0d3dodXZ/tL1ES+OUqvsTvKfXrA82zGArsA3cDFx6nG3LwApgwJujsUbtCoafCwb3CX3oqTfJwBrUivCPzOWjvS+By0dghjiLzMYEtmjvxiEEABciqvq2u3CIDJYEywuSwAn8zF3dANfhoAkLCj3Py+kHBxDlAGQnEBUrePadClIGq125oBREcLPMqxcqmpAiCXfZzAAcoLnBlK5gYGwyYO3Qi6olsAFAAB/GkKr6izce2rYIzAdZ0N2TAHRw3K9grD2YDXAtCjcLiHaCAUMZCEA3AFxwiXICrIyNDYFRCsO5oNlf0GdecAFmICAHAFuSy0M52iU9xLnHtKpXQDTP/gCGhQ2lWJ2jarsyMJxBgd29dc1wnsxXwq1HOg0hmQp3ZoAH8LFKz8d1dwiJjqwA/80slw3t0wBZ6KbXMGOR0godRd306MfF5Lto2FsuSqCuL9nK9os8ipr6S8AL1sz5cd35VZyQd8wJRbsAarAAaQyvh92MNo1cUtyFmLD/EMfclwBQfQAT2QGUqw48bSAYCXDCgOAZ6mzKK9tlLnyI9sTaWG2oA6khpu1AKb15SLDAlst6u7r90wz9ecpwgACgbQ0S7xpMDri13amplqCALgwAKQACrpAD6gArZQMcdTMQcjNwl+ABwHAS8gSk3m2RnmCEWOZKSt0KgtqJQsu8j/ieV5XQ0Rfc3ZEAase7P7OgewwMnVoM0IIAYGQJZA8bstXubIUJdIHKLTiw+G0AwEUAQtwCtCAyqCMihpQikAwIObTgGN5QjigLLyGWbIvEvWFKsG0JygoLoF+tYYndfd0ACwsN6PXsmSLrCUG9/aTK8BsOlCIeYDAJcuzq34sAv+va1vgAGeEALm8upoMiZjcmX4Mn4SUAEJYGovK2j/3E5lUO9lgK6yutWbZ97KO8p4ndfLbun7mq9YHr3xjdSQHgBPHRRintigzq3eztKAjAUH4AmT0yk6dAStIxtJkh2sNwDNwAsPcAFlQOQzuLbHBsWPjAYQ8LK0EOJwvbr0/0rKjJ7sDRDRc5ANdUvzoKzldq2rCuAA176sxmjc2+rfLN3HEuAJ22MERuACR/BHfsQB1OEBGRilKH4BN4AOVzh5VWDWTypopF0AXwl9rZuvtF2vYVzzDXDzs03K+orAPp/zeVoNmSsUbQCl22nV3D7q3aqMKjAoSnBl4NE6Gk/1Vl+TltCjAQAKuVAAUpXr8ame8MkE4EjhpT1085qv2lyZNxu3lcz2bd8N9D3Noc/FsQ3bapwBIkAAhR2TV0CwaH70RxzxaeDm4SEbkmFnNnVDKnCPVEfdQIri8D62a11Q9h5WF0AA8lreGD3Krsvo1aDsAc/FlXz63HzbjrvHGf8QzEJhZLxwrXcMokjfB2qABQPgb8jxGvdVKOS0LXTVCARwABVQCENq37qUBKG7tsgGEAcAAHAAAcKFCwTigDJFi1YABBEXFFoQJkzFBdWqNeA4p5vGBSGrfawWMmS3OXMyzMlWAYCqJjFlzqRZc+YiAAayGcKCDJklZFiw4MOnpucAExNOpHBhiwEDFSOgQEGEyMK1qi2eNAJwQIECU7lU3dBT9kYVR4suFCAwEECBtRUqKAAF0WGYiBctVizZjSPHjyYzaixZ0mS1lNkSGLhg0/FjMIvIGIBkKGjPy0TxYbF0YIIKGKV8weiiQYMKBiNGIEJVVdKIJ0VwAFhIyxT/ATQ6mLx4wWTIECZMyuhQtYEChQK8KiQI8LA5xIgI9ors1g0WLHxzDFf8WL2wSAEZshVKAArCY/Q0wSQh80CBZaJChWpG9saEChcwXDBIoSHEf9P+W2GF/044wYcOAOCFuQoCUMAAAAiQ0IECKNhgkEF00OG4Cxw4YDkEAkABheaik04w6zQToBvB+mKxokI0SmmOQgIAhYD0cmyiCiAmE6OQDAQQYCjN4rPPkx444IEHDgwMISrVnljhBE86sNIEDA7gxcEADKhQlYS6kmAACQYqCAI0OgSAOVpGRMEhFBAI6SKTGigSlsDqbCCwEwlDrEbzdESvmEVieICWBFbK/4yoXYhCBgMPJujhhBAoDUEDBlqrCpERVPAEgwFClYA5BwlQ5YV44nmhjEEogMCBtgSq0IEKREiGzYbgjBMvOhewcygB5jCJIl8bUINFicATIJtkAsBRUMdUaWMyBZJxwgkhiWSUKAmS8oRSDfo7bQRNEXlCBR9MGOANQzIIIwB4HyjgwuDqFa4MYow7rgADKmA2AQQaerNN507i6Dp8VhRsATkb6APPivDSqIEZEzjgPGhrciOG9hS4Isg5hBRgl0bx6WMXpDpo8lL/THOZAf9OmADUN5zQDsYEkhHBLQIohIACNFQhhpgLXGXL1gTCeHNgh2iRkzrsYAFsYV+1eP/4I7xE4kgjBQjQIWOaFmELAAUqCHJIfHbpY+1dCMHigA48IdC/Spuk1EAOEAQ1DUMYMQwvWgyQsAAHuhJhzGZkPaiAAw64wolbERg4xLwGqy7q6qpbuBqrj61Ioo1MSoCXxsCWaZHCFTRbM7UJIeRkfCyRIG67T1j5qdagGGEFH/aO4oOI4b0RDUcUIcKRQcAkvC2COuQJC0Oygc6uEuUcyS8VCwMppAa02EUNPCOCSDCLuh7E9JjcwAEDAJpJYyiS+yBkC0Lw+emNbifggAMANRjBlk0hAgor4MoALJEBPoUocHAZxL2CIw5WqQINP3NAM7IhpGq8KyIjig6dRoL/naLsaQF5ykgD1NYH8IUkRAwTTDKaUTqwlaEIbcCBCQAgAZ4wahdYEMEArhAFQ7AAAypbisv8RwISwExm6nqDJULGMBo0jRaFqIBAzFSAn1GAGGBCg6sKtxyAtclNcZKORvxyHTXsiUW92ojVUAgxpcGrgwlwyQZMJ8NGNGI2zXACMjaDBScQxHCWSAMGJuAJ/vXvPxyYwMxCdRlhLSCKbgKFASDklgM0QwQiSByFKICQAigoAcyRnBg5aDDASG17gune2tTwSj7RggazREAhCtGMAgwBbK6YIZYk8L6hAJIAryJAJi3xBrjZ7T+VkpkHQGWJtP3RMJIbkW0IcIEL/5XBEaoAEwTYQgC48OsKz6MRNZdGxgUIiSPgU2PmCmPCE6pBC2lU4SwhUctCZKMZGINWMdpgwwGk4TKcAYA3HcC+A6QhDXBD5P4olQIOdAAD7zMZyTYjrOjE6U2CmxcxBlEGcVRBOIPYAJrGVqsMlEREHDTRCP3CTqmpcTAbOaEr2anCWm4kPFcAAAUylgUy3NCAmEGGBChUOAxkKaAHSMr+mtQfDoAKCySjasKQJYPo0KBhGRCBFX0GtJKiYQMlhVUzohC5NiFAq2S83l/cSpIGaMSNJ3tlTEvSACHhCSUVcEDGinDDNFiiq6FKA0GQCgCADiCph3Rofz6VhrSdrP8PmxFASTi4NBpUEkKZbIYmN9mMt1zAmwNpxhsEMIUMZrSDJXTrnrYW14047JVqKEoIG4AwfDSAYQHIBgDQAK02AMCAoLXiARyQuuMWLlRJ7QBjlxKCDgw1spNd0d8YJjkEdK1CYy0OcthCoQ414wqZCdZ1AYYX68X2L5mLa3s5ora6NkoNu9ACbhuAABkg6mKC2oCYcjIAw5rguCYQsANMcICkJjVSjGWkVIky26LA4m8R0WqIFHCAYaKBGGXgMIeJAQFVGC11fPwAXsi4waexKLaV3cjE4gqL+L2SZIQgWdTiGhE6HqAAgoLAQNhXxYJ0oMAEPi6oFOxMSDXSmQP/QIZ8Zwu+NUrnIR38QDK4KpCeYbFoaBJrFwt3gDdox0QtvR6LOsJit6rteyhc28ksCgstcCRYzXhWjsrQBlgRwAC8IMiBBTyh4wqXuQlOauPe5zoUPhlPJUHxib00tq40Qzl8LgisBsLkaHYDLzTYVdaKVZ2OhEydHJHf2ubHNtomOs4mhIUIdqyjMrihcHqOkHCNKqEIMU+xhA5VT4bSB3awg36Jpm0Cx9wlLB5nA9xMk0EqhOtMfixtEkZxS/2iRo9sBBZCso7a6DdshKkh0SJEjAj4mZ4euSVCBmjGAIw7ITwPZEyhIixQ4LeFYG/BprSt7Iui05yH3DJCaNIB/4fFMQhscnMDExwbtqqxwRNLJHMhm4Ocr3PbteGbHTQWgLHGvafodK0MOkq3W/olgoVGaLttKGa75y3QoKRtfvkmxJOPpbnrQgReDmpfV3N9pixO0CCFw2HCGN3SYgEGr6PmiNW2oPHX6XAX15HaAvKrAACcL0dAUDcvRPDDKAjEARvIAjGCK4HEHWBMlphP24L9dho/OXP1BLgp5NXsL6f9LRCIlQR+KYC0NaqyFpGI9cxcnbzGtHsaFzb9XulKNMYV4A/waY5UwbxoX+sKTPUB7zpwAHcPJKF9rKj8ng73mqdRjdOMYnNMcRtwGuQgRXPVz5xtadJmgCgZAB7SWf/kFyGFzK1aYPzTiS1jokCsOQaAydaD2vMmImO5OMDB50V1hTQ4AX7xm5++T79xFE6BJCp+VwAAlpdq6Ay0DrBQ8ijATQx116AHgKYTUkrNZGktZH1pOiHeru/veTK2wQdVwjo7ypFieL4lQLljEhUTEDLC8omYa5TW6b75cZ1gSzTvGIkMYg68aI4HACdouyJnKwDCMTB5gybBYzRaOow9iS2tIb580zdxE7fXcSWioBjQar4c4RgFwT5LICw2mLeAGqjpkh/XsUCNo0F8QK3AqIYPGCXAuQ0NGxqy6orYwySByCQRCIapahQWzD+qqRP/a7xhMzVEm6y4oiKBqLz/HJGMybgCoKiPNGADFmCBNIg++fjC1vk2RGO8mmvC6gAejSA8yomDCTFBZzuILJKg4/AiG5IALKCuh1Orp9kcVirDJXwd1xm272mAbMA6xMKBLBACIUgPRVCFAniACoA5QkoDFrgCFniDn5gP+DE1+qGxJIQ6FMqth7OIo2sTi5iDKLgCYww92ROtCcKBQOsK0JtE6oKiSxwMrdkTfHi6TRQ2/wPAN6oixLKSb1kBVzjFx3iBC1AQV3yDNBiAWbQEe2OdE3q6JLxAxuvFPCkJ9CIjZ4ELg5KQLOsxMXG3xlG7AcCC1wHDrFEvehqhg9kFxpvB79O3ycqAZsCApDik/28xkCcogcfIAzToCiazBDxcRzykxUUJPNNznT7MN2GDJZEACWpyCHlRhQzRkEEgBqHjOyxKtg1Yi8KBLBrzxaT7C8O4Lezog4cUNqX8vz4QgJ15QIwEl9NwhVFwDDBINwNKgyvYpDxsInvbwxnbxF1USgC8mWmqti4ZiJ45LhNMNlXQkBBDjgMTASewhLYJyu3ICJyLLViYrzJ8u6WEu11YKKhsKJYxDRVoAUl4AZtwhMn4JWPUpF+aRSewjPlglNfBN3mkR8HEB++YE/SSjjBIvysIlU3yO3CivVC6IQlgAUvIoaJgm8q6Lr1kLY9DSpYEzKXcAixwN29pKHB5Cv+XWQEVgIJ8mAkiMJQloLfOas03sEM9lA+qssC7REps1Der6gbgQS9D9BJvyqJPEq2xUTtZIRzh4oypWhvP5M6X5MuM00343IJdkL4haqSG4h/TgJkUYCYNeILjlIkwmbdMIiyFir4g7IocQsKDREOogzJ8JDw6QYBr0rCbxBCcFK3jagv2KynhYoFQmYKKmrqH+xw6eS8k/L/4nJ/BtMjm8gTgtJRl4s8ngIKZcIOgAr3GaTfCordu2QAmaIQx8aPqjB8kNL66+ogxiw5TsCS1JDCCMEF1M4hi8jvEekb4oq2juwhj4b7ig898QxmLbCT9OYEAoRvbcZL+lASacIT/1RQ9CVC7MiEIjBGCRgC9NJixg6SqIsXBF2EYN/m3B1G3J/UmZaOAAyOAA/O7N32DwCMKZJGObsPFmfNSqAPT5mok/DyNADEQTtWAFpgBm3CDE2wDUg2lRqAJIWgDwkpPlWQUBg3KRx2jODGFCgkabiqOg7CQEKuht6AAB5AAZDCENy1INSPAhwucChgZ0/PSFMUHxVow/eGA/OwUFTANJ1EBNUUfmciC6LJSqiISurrLoPwARhsRThsReeHHEtQy3MOA4zoOAGgit3CCyGoUTXMWAnCCPtTMiExKt0kZjHSqFGAAEtAd1YCKJ3AFUNXWmCiCAwMAEfhCfGii7dPT/6ibAu0ITXMyvytohjcVOygdSGfEgQ0wAXcUJEmMHxENAwgxhGUNtgvcIQxkSd5UrBbdnxqoAUpJDdUgAdhoASFYWIZdAcMSqKHojDeFrAerwMmKnk2rMPwChZ+jECwyiK6QRSdggzcAANkwIOO6IRVUG8+shgsq0tO7QGQAgGzoRAt01vr0hBpwKgNBTExRjaBlWJlAAwcILu1rFCxIuQHYjKKwQezEWKuTgXN1iGsaK2KS09UMtNYcAB+gAPozqoGALDUTvDmAMdP7Nm1EBhxogitQUNfBh0K61IZyGRVY3dV9ghbgSLyNCWkhAL4hEqEgpKkiijaL2fAIgyiigf/8ogVQyIUC6CLhArCCCCUQ24AigIADa4T+kp3UOYD0NLWEEQAY677r5E0TiAleGBmq2gVLCNND6oEaYBkVcN2e/dTYbdg2+CWfCCZtiSaUREIsyIAakQH91d8AiINLCpW9Qw4A6AAfaJKIwgCSNYEyyTOI/cKgXBaaKlJEw4I2kIkCIAM944UreAPFss8eSBL8jIqpgIInyNbYLQIHMKDL8CPNIBLaUrPu26EoKIRZ0l8UoIFCgAXO4GCj2knO44AqsSEKICnZy1AAMITAsygB0NIK3DgaAwCaGIcYmOJQIt8JiNtE6k+qkAQoEAIbaN8e+xi287XLnF80LN3o2d//SVoAWPCJ2Cms5EUwF70SEPMw5Qk0Eahfe+UeTpTHXWiGA7SJtShMuA1hESZh9o1dD/kYQ7CMgZpfV+1EduiD+00A/W0TrDKhzTCEYHDcgbASHNAicRhlCGoVgyocuwzfqdO0BajAG0yD30KPRmiDSz0kMk0Nnz2NLGhfcSCDOJCAupRAI5S6RnnP+pmCQkBcc0UAjfDGQUUIhFgERxjlKiDlg+vJE7yhEKUqAZgIZU3CPjCEV8sRH/AE+yRTJFrdFWiB9nVMDe4jYcaMy9ShZdW3KfBdN5HJ1LyARVCLC0ADcVAEgR7oKlAEUmYVNDDBQMsGVd6hlcBeXJzPvoIW/wowZ/3pzydw3aqM3QRUgAxw5D2M3/mlQNzcOHx4OOAFXlrADSBwhHEYh7S4AFWoAiIwnpquaYEWKXFwhCS4gBjI0GYAX4uiLCGROXZoFAAIZEHhnc5L37ttXzcgAFD4aLSRj5iDZFbFxvnMhqddaVUI6IFehKARaCK46YHO6Z0GArXI5itI4vClZ5U8AKVuX7xVBQAAhZ3YQ/kQ3CJxVfnRRnxwgvGACFoFgnGwaUUQa1UYaJw+6yqoZkcAgp72SQLgBSR+65KZThp7g4mm69jFCV7YiYGSQL3u63h8ul0IFlwhAyAo6LJO7LEm67Mu68d2BNtWa582z/dpaLdGyow+QAYd8+zYteslGKc5DIr47Wv6NRkJxgf8dT0ySIJxeO0q6OfFLmvsfu2argJtsu2YNsFi4om2qaodql5KvoJzE27TwYmvq0whqUwsyKtsuQ6RgTGS0QItIARYmANIAAVQeAAyWASbrmmxHoQBb+zGrubHRos0iYFQEgHspSpYMITTAt/rcAJcUu+AAAAh+QQJCABcACwsAB8AfgCjAAAI/wC5CBxIsKDBgwgRQrt1S1qTh5QoNYEGLaHFixgzatzIESNEUaIogRRlpCTJkNI6qlzJsqVHaSJHipIlK1SOmzhvKgnksqfPnxZvRaRUcwwSmzn47Fi6Q6nSHTyMRARKterKW00iGrmJpKvNHTVqMN3RowcHDjyUSKVkta3bg9CkgTRyFIkRWUeVlt1bw+yJEzyOjJEl9a1ht4Fq5lystG/ZCUF6ePKElgcfozBSHt7sU44FdTf5iH4K1rHkCR0mqJ5AGe2RFDx4cJ7d8tYpvF9LBwmimrIn1R08eEDdunJsDbSTc4RJUhafsLxVD18tXbjwyZM5wOYRIpXy7xflGv/5WmOChw7BjZ1fHdw6ddZl0T6ZAb5+QaHjk9YIMhy9B/XCBRfcewT6RZ99CMpVkzrPsWedcNWt5kF07KU2AQctIGifHAoioR9vD0JIHXZnnTXZe56soGF9coiE14eoEUjZCSo8MQIUOKYCxQgqnIBaap6EsCJ4TTR3VA57FffXCSvcWMIMEUQZATPP+JLKExzEOIGQQyqX1UxdIaEODykwcAkJJEBxyQiSlOCLL888M2WUzETgCxQa/KYal13S9uVdsijhwiWE5vimL1PWCWeiIEwyCTO+POGjaif0mVxDYBoBg445luDmm3HKSSczzDT66J0aZMmaJJbOJsdd6oz/AQMMJUChYyq4HvpplIiC4GujdabSo54qtMrZKUqApsQltnKayqefHkpno75OckoEFowQgp4ZGmvYLdcckQMPLuCoZqG5uummnYhOQi2wEVwDxbaqdevtW77w0EMKgzLrL7OpWHCoBde8GYG7jvoKKaqqZnGvYSVw0AO5/xLKLBQCv0mwwe6+qyieJdr7sFUlnMBBCGaeW6itvhTsiwUCT/lrxyDYaUGqZ4k8MlU2aEAmCRZf4gLQALf8cgkZy1wqCHVWOYLJPgixc1s2SJJCmYS2oIEGV5dp5rOcjkDCjS3Yuu6bUJis4tRWyfEM1ymncJZknvylAbO1XqKCBiFo/8BACy0IkauVIXDwBNttsfLE15fwffXWW+8NxZslpEICA2ZKIrAFqbyZSqqsIl6VHCVYjPnpkHN9N6KQ4hnCCRqweegzkmiwwoGiAxUNCJJA4YILDKRwwm8crMB1Cpe0y0wqPNY4QgvP1BmBECqsYEPuVO2e9+V8hxCCCuCrYKYFiVbe5gyk/gpCCU+oMAMI2P9UCyuBnGIBFECT8ISN+2N+Cfmkkl701EclX5QteqyIX0/mJ4cmyOtfOxrBCM6UPEaRSkoBrFkEUhEBpsFPgS0JBAgaKA0dCU1/EkQT0BCltDqlL4C8ShQzQMgSZhjBF3LgkJoYMDQGoEmC41sUDP+X5sIIVKlzzLgeDVUSCJAEQhqBSIXQGCAoNJ2ugomS0q+kxy6BzXCJKrGNVGCiJhcIamiXwxwJNrerOUmvgLyaBBhXIg3CRAQGhKKiDxmwNR4w4BrSMJgR4SRIO4kqAgmcY0ekUZJTUOIahDIj8PgYgjIFsgQ2sIImWWGDTkbPiM9AHwiioUiV+EIqTQhEGc14Ov+dQhKSYMIQmMAEcTDhBS+YwQxCucskllIlcniTNEqYx1amrASAI4Yq0ICGCwxiEGXQJS9L9cuVzMACT8TjJY7AzdOlKRWSyIIqVCEINGxAEIKIpi5nkMlqrmR9T7TAmRjwmqud7llZUKYgBrH/Tx0MgQozKMEzbuHOlsjBBs+4BB+3E5vYkEASK1DFOQWhCmhKwRrSLKhL9DCDEQQvNmbhAGA2tYKJ7pMYQ2AFRtmpUZdYAwqYg03X6HmNVEQUneQchDikoEtMtrQlVQve47aGOfuVlKLohCZAA6rEn6rEBiUQKgP2FjwGBMIXR8UpNFdagkQ69al4gtzjGGClLGzgnDkVB0Cf5NWvcsQGM4Ap5ohKVoiedaI6XeoM2upWjQRUin6TaipaUNKzoqGiZVgpS/vKkVrtsGtXs8ATCnvWfZaBp3EaJWM3Iom5CjU2R7jGCO5610E4AqByYgZfN5uQ2m0iBVxr6B8ne1YK/5hTqbuMUztZa5GgfpShfmTSBihAgQtcYJ+5DJUU9GAF3iLECrzDXD0bmgLJtkAH+zRtFcQR0DglEQw3cK5BoiEFEKSCnvX0W5kssIJ8alcRYFiqcvUAhGKIdyC14ER5z4u6wJZJA1nQARogYFsdlEES0pyBHvTgCDKoIrzOtYI1bMAKEMgVsq28BIKzIIgNZGGdoWLnD8ZBhlxcoAystYIUXjCETkbgwmM93QhKII0h4HIIQ3hSqEoghR8oIga5AIADNqADKXzVCjagwhCE0GK4etSYrSQBJqlAhRvgUpqhlESPiVBiAHi5ABtggtQKagNrSEIIgGuBJDrJPqLStf+VUJDEEBShCHEcWKC+EIIk9ODjGJDBy4AmQAFQ+kvPjKB94FvBCoRgg/U9Qawp2MRcy/TQWSqiCgf23Hz4TAQ/A9oABvAyARxQhCwMYYkV1pYGTuCDyfjAByOQBlwnmzoN7G0TfrvEDKQgBTCAYQgB9cXzQGCFH3Q6Fw94gAHiwOxlh9oEOMgCirHHihlAlAO/QY+2JxDrautgBX2DrQYkfcVd+/oGTIAlFJ6w5x8YG8gPiAOol83sOPCiGQDAgAnWoQomNPVhcMWTj9Bjgg6YAAMASE0LZG2NISi6kuIetxqf4WvwlkFHsVMwJ4xd4njPOw6gqLcClnCAAwCg4Ov/MPW94CoJSXnC4BgoecxjXvAWsIKTVChGEfoGuVaOwBoVv0EZtKYBLeth41XouLLpDXJQOF0BcVgCyZ+NgxWU4QV9gqsQJpsl9MRcAmAfgNgx0IEWUHjBNyiG8fwWWDWCALxgeEExqrdpd/cZ2fXOu9ObDgoF+J0XJtc3BFSBu/rAtQVcR40xjIEBsTve8Ql/QiBscHQfZ4Gqe8TcCECwYj28IAvt3fUPNm7sPSCb6fXuOy8qUAFegJwXsHe2l3GA0uYqJ5SAW8HAGV/yx/v+ACZoQSAWvHE9VCELi8vfD0HACrS7IQtrtvvoj51sA5hC5J1QQAWawf0K+N3veQc8/wAGferZQHXduucAzBv/+DSk4ffBf8ZyR/+DtNtoBLiCQgtGoNoFvwAIQzB/7sYJnMBlAFB9qfd028cLS8B6rMd9TacA92ZyDjAITGAYVqBLiKd7qnFw7Od4LCB27/d+YicBwWcDvMZnP+B5iPdN4CQEzOd/TDB/BEh/DaZsD2AKphByCuiAq9d9zbAEvKAAThdy8hZqDkBoVsFTG+gDOABzAHAAvjcAacACacAGVcgGYpdwmJRklbeCQ1A2AXM/0JOCN6AIKkiABKgHixBkyaaDygZyAbB9FSACCcB6IsCAzcALfacAAWCE8gYABAAB0wYUUvBtAweFEjCFLHAFjv/IAm9whSwQggAwARFwUFTAZzXoeULgJoPFbmVwS46gCAOohhyHbMoGCjp4fX3HesngfT44hKv3d3tXb6GmClVRBUXgA+t3AIvoeFfgfgNwBSzABmzwBsZojJToA4gkBVTgawP4A1IwBJKgIxIkCWF2A45wA6OnhhsHBLmQC8y2g6bQCTsYAOiYAHeofd8Hfgqwh1BnhCHHCwZAAFVRBk+IATE3hcModpOYjG8QkMk4AABwAr6QZBV3dDVIBWgmQbZWBBQwCNzojQR4A38Gaquog32HjgGgjnfofX0Ida/nd31XhPQIABtAFargAAgXdo5HglQ4iZMYkMj4BqtgjAP/cAA+UALWUGU3AI2baA0NyW4C5ghg0I1qSF+nJ2+qqJEK4JEeOYd/WITtyHd5B2oFABTWsAiA9osiiJMvSZMBOQVOsArIOAAS0Agt8AJU9pNgoJBryJAIZg1loApGSZEjRgZxGAermH0d6ZHJkAwJwJFESIQlWYSACHLMRgBo8BNMEANedgDN4HvG+IhWKJAsEAVO4ASGsApRcAUD0AFP8E9Udm7nRmW45JaOAASOAJecoAeKcJGg1glO55TqGJiCmQB+x5EdOZWgQJtGGI/NdgE/UQx/JoUi0H7ulwY2aZOrYJZvEAWrYAjIAJ0EqQpMNgQ6oAoUAAHrYFm0ZGM3/3ADQAAE4qCJBAgGjrAIlZCD5dgJ8LmDoICOheCRFcCbAfCUuqkAwMmDzBZyWPkTaEAAALCIoPl4wcgCm2kIZRmQ0FmdyFCdbyABQkaggOYAo1YAFLAB0DQEVaAIz9Sa3agHYKAIZVAAALCK3+d08JkAhZANgxkAncCRdxijU6mRiNlsEPATkAkAYnegw+iIb1CMx9igZvmcqxChR/qcEnoAOCAIOjAIEtWdF0BaG1BRN7BgekAEjjAIEAAAyxZyK+qH6vgBUBkAhVCfTxkAkMCfwHmO6KiKoGAAlfATF7CPVCiCjngFUfCPbKCgSBqhEYqM0PmcQ3oAQ2ZgtMQEZf/AT8N1ARSwCGggDnSWBH5GALxwBURoAE/ndzUamOpYn3/5fYRZkvD5l3tHpz9RCRjwi6tAgn6KjMkYBZo5BQLQmZyJpEf6Bk7wBvg2asSlCjpgYKEoDhWlCh96aUCwCDFQCQTwn79Jo4P5otmQAYFZCOjodxXgooMJCreZDVFgrboZcvbYE2XAkovInK86ADNpjA56k9OZpAu6mVMQr7zqBFEgiA6AoQSaoRCABuUEBIPwAjfQay9QZ6pAANYXrfnZmx35AfUJo2Zgo6Gqjh1ZrdkwBRlgrXtXri7hBgSarmmwrlRIk8fooG+gpMhAq05AlhKKr8lwAAUApbTUqIL/cAEQUAk6W6X/WlHPxE8FgJGmEAAIIKPSmqbZkAxpqo5F66JmsLTquLGCmg1FaACC0BOD4GWPF4kDMKQsgKQny6sOyrKrQK9TcLabyQsOEJE29ozgdbDi4AgbCgE566yApn33GQBhAAmnSp8emab1iQAuurT1ia0KAAnZIABYgAUZkAAysHcU0BN36qMlG4mZybIMGp29iqSb6QTV6blnKwACUJYsIAImp6GC4AjiUAVE8JNEsAjPRGfjsEw5q7B+6IcIgAAz2pFQGwZhgK0JEAbqGAYfkA3YSp9zIAAZMAeFAAky0KYGsKMuUQlRqJx/KpjJ0Kv3eqSdy5ktawhn/1u2+NqIJjdqBHC+OhsDi8Cd5fmTl1ZLZbAICnuqvnu0SPuigGu8hQCx2cB6aDoHGZC0zQsJe5eVLTEIDlCg/hiCxpgGIvDAV9C9hjC6GpsBZAm+omsIWLCZtAoAg/ehTOAIqsCszVoJBcCsewCpG0pRMcCpv9kJuQsJFlsIT0vDc5AN2cC8afoBEKuOM5oA1RrAS0ubcUAAhagSA1q9RNrAV2CHgRnEGcCZ4AvAobu4WHCrTrCx+QoBA+u243mwVbCei3ABMXC+gAYATwmfnQAJCOC7YVDD6mgGHxDAODwHZcq/Mbq/G+sEokrEANCYLFEEJqDA7nqWLKALHpm0yf+wsYw8B1NAnRM8wVOADJxJqyIQagXQs45QBoqAS6/LmiY6CM0EARhqfeY4o74LuGkKCWm6sTiMwzQMsYbbCYUwBwB8wy4apwaAiywBAQhHhSOLDGK7CrogAq6Iw4wcxYawsZCswaKbpBbMCMkgiOZ7voJ2ASNsl0ywXXZWBsQwoC4Mn4I7uPpbCAJgyxubDDj8AQKAwxZrBtVKnQGcDDI6p9K7Ejjwy8NYlkdKyXyqztkwxwG8sS4LyQJwtmT5yBkgAgQgCOKAS2E8xs0aAzGgChBQAAUAqQArCF9Kb6CAv78LxE77AY68zAH9AQ1QDT1Mww0gAI8wB4ZgCDdcCLT/qaosQb2UKwK60JnOuQqXa8Gd+8iPTMmRjNC2WpZOIAIOoAov8JYkCl6Y5giHVbsWGpl2+IdoqrTCi7Q8zM4H7cqiWw1P66LsTNK2rLHGKwMyEAcOwBJugNMGupn9vMFlG75SHNPVyaQxjQVnG9PKqwuCWACHpbpVEJ5M4LONukwXUADnG6bzWQjXGryxXK1eLbqWzcODGby2zM4wPQXGGwCP29ArQQEWCnbMWYXOGaEMOsnIAL62KqhMqrzJG7oVnAy8QM3WbMIXwEyIZUvwK8KVEKadYAZjHbxyvL8knQHUMAW2vNkwOq1dzdk3nA31bADEqRIXQKBSWLnv+pyc/4kM9ZqyWYwMi9vaSTrBoosFrY3DClAJgzAOijAOy9qsggYBzJrJu01RQMup5SjDw8u7ZjAHPJwBWADA5/wBxY2mXp28opsB2FrTba0Sxkm5XWuyNimhnvkGBIkDimcMFmICYpek6t3aTjDNFFAFTk2i6CalF7AIEFDVohaF9PyHnfC8u4sAxM3DDK6xDC7LaSrHOXzOtorLg8kLMbASgxCyVAidF07eZskCB9ABTaJQscEAMOACR+AJjZeySfqcDFoB44cGOlUFIIxpG/1MknrR2m3MMrrGkEADz9vGv8vD7by8yzsHZuDGb6zjj+DSymu8RR7hHZEF+jwAugqhWP8woR2QBYgCBbBBRTBgBMDjCSCeBtTZ2ss8uhkA5rld38VlWeIQ6nEryiiatzWu1kRbtHKs4+ds2aKL4G9M3KL7CI/A1yaNrbc9CCqhCoP8i+qapIMKACsgCafgC5egLzugDkoAA7LwGlo+AGyQpKIL3nOQDAZQAKowDhFduw4AARtAt7t9TlLK0Zj6wmrs5r8b6x+wAOw8xQJuBrlL3NWguH2eAQJgBpDQkQpgACnZEcWg3Ut+4Un6BgCQBXFyXiFQFrEyGM2eAhPgo02u2pve0Gi4YCtmsxvK2GdsvgDQDPepxjLg5jLsxgjA568uy2wsx65+zjpctHN6tf5OoGL/19NIKuz5xzcS0wPqECuBcgQ80AEhDux+XZ90igaj2MmMWgY6QAFJJakXUAkY2vG68IptLri5GwBmsABZn+OKW+AIXghh0Mbrzs7UILoC3rwIwLdsLeGD7HiE+pwSsA4q4FGXIDdlsQM5sPA+/+y6EKHqjd4HngChNmr7WgkEBgGCQAxlEOplgPGMbQDNwJ9Ee7yQkOdZz+7VUOuM+8o/LsfVkLyOjOD53ptFrBJloORpoAs0eQUYsA7Go1CF0wNikfexog494AGNJ+Kia6sCwMNgLtgCy57nm8nNtNsA+7OCQAEoyocgDwnOy8Z7rtKuTseFULSQsOeU/QG/y7t///jHHVEF1LuIlGyoA4ABVSdBsCH7sz8YSqAEPPByrZqyVvzq1s7FTa0HZ2izVarxogYQBBwUIACgGa9OCTsFgNQQkhkzC6p9EPDokQABGZIVgmgmTJiIZgoVQoBgJEcFvAwI4tLS5UuYLcVVArAkjSFkyFaxGACgkYpLDFJw6NGDhwsj13wt9WVhhIZGJg6keYPMUMZkvAhAGFSGCZMq4soMoiBIlSo0FwoUcFBwqqFsCRQmlEEDwUeIHyxSwyhgzgfAHkFC/FgSAcRCCSoYgBDT8UtFMQAcGLAqpxM2AzqsGCE0RQoGRk6NVqq0qQULLZ4UkZpGV7ZkyRTzAkBAYP+lAhAoQNgwSJxYsTpUbSBoMACohKY6yZCBIEDhamoaXPSb7eTIBCQN2zWcIIACA5Uej48MgNcAXaucZHgjYbOGzwxgzKcPA/U1/EtTtVjhgLKu2BIAj4ACLrgAAoIIhCAtCtBQhRgdBhlEEArYOqCCAOYKwLswDjOjATVCpOaiDwYT6S7COvwoAQQg+c6AAsZ7TBzJeNHFCSesegMAHHwIgQEgg2TgkkugSCUVC+aDAoonTugAgwFuEgC2Cgi4YJAqbnihirE2aLA4AGqzTaCCRIjCu4QgMYyjD6ITkUTAsmnzgwU6MqMkkazzDhIFHJAxphuAqPGmVVZ5440DOuD/AIprYBCSARJIGOGpEE7wxJMOPMCAMvUwyiCKKwzYSpAyyhCLCR3QEGSDRQ6spK0ww1xPtjQ7UTOvOUBcJsQG5hCpkA86orOjjz7IADbvAtDqT5iKKUIyAyoo1LJVBpjgkkY94yE+IDXgYAJjMNg0yjRyusqQKbLJJopkFAhTwQsooGADQQZxxBEJJ9zNLREy7ES55RAATIAQ1aBmugbMKPGjBSQyo5o5OCokA4rj8g4UAwZh1qUyGqHpgQoMwYIaLAzBQAULgPwshRB4gNSCa1JW4YRGcGitKiwo/quQZBYb07Ywc6sQggtUJUZfthwwrhMUFELhMAEaoMbgEQWY/wiwBRqopgGuGxAg2LwSY8jFjDduyY1GCoghlyUMoYbkNDrQoOWVQwANW9KWKkESIbJwQAJdDDEkg78C6/MCeiVUZdUFIfgZ6APCxEACEeSaiwa7Hi44RL/oBKyardWg7q+wEdgzAAMuMFsRN4rIoggCRMAppzRMmMCTEELQYPch67NPb0mewEGCAS6b43h1K6itgLIcKbWMslbdrTjKeHrDEHb9bRoFFECS+s1HAoMI9DcxCrYQ6xBLABRQHFBkY0WyeN0BG2fHYhUANnviKd6DdOES+xypBSrwAZRWgQUsVEddc0hAAlQiJqFBQBCqWpz0EOSWQ0WhEAEIwPYOs/+1qb3tIhNZAEW89gg1LKNqXwvMByTWCYxpjFllcIPNJJCGDMwuDTzKghAkwSQNqGB3KwPSklTDASi9AYEI/NocsmGGBISnAJUoSNB4w5bcIE4VEtrAOpRmpj0hgGk0+BCIRPgIrUFEIoBBoQobsAA2Wa0aIAkDJDphgEVsTBVKu2FOaAeAAqhCCIN8wu7gk4ITnOBHJECSJEYwASghg4nmC9YHEgBI3RRNEIxDwwUFspa1tMUBUmEXmjzYJgGIECPVqFNEsqaFPixjhCHJixmekyFQxOhPQlBalHKCQGQcIJBZeMIKnqCCzxhydyOAAswsQIITGKN4I0ugXwj3ASr/0YZAFOiKKsqiuLSA6QCRA0CODPGBTtCAeyUJHdX4ArqHaa0BWlBh1UAnvjAkxjsKIIAj/lSEcb1BFyKQQEELsIENFGEdPlCBEJW5OxIYCQoagGTx3va2BB7vL9lz15jWAgEJmkVxG0BDWhDEx+tlIwAIWKf3QKQGLHCtTRJ5o66oIcteec1rdDKJ2Aygij/1UgLLG6UDEsoWE/RoBfA5ZP9C4AljTAULy6AqRqeg0TYVAkaLUAUElAYAB+imLQqa1yaJwxYADGAKjEjA9mgQhqyVL2pa21rXUnhRi0SNhC3aoAMpICM3xCqpBWhEB0ywDuIoDQMd8MEK7Layz/AA/1ybkuQy+tAHjGJhCnplpRkMENaTfvSKQCNTFQ9QUAmsghoZ2CD3nhZXqnFta3V95WVvitfOjcQ5DaySjAbhAAc0wnEOwAEGDluAMA1gABjAwQpWkIJt8SB3HJCmEi3bB3dq9qpzAN3VFCCCZgzVAfK6QL3wRaGTVjFMN9RsNkqCAjLa1WCyresHuAZLQmCXahfZLOnQlw0RHOCvj2GCG2oYJpuZQCCTUe4ADtAjDuTObkCCZLmwcNnLUk0A2w0WXD0iqlAOBKTz2uJZKmgWknoVAKvISIcMU8ZHjEieW8sa1zKs36mJ7mBeq4hfphAFPz3GETFwXG0SDFbKkGsAJv9QVA84wAHQaOBJaRgZhndl1c6NzwydIEC9kJbFBCloHetAw/RMkNaRPeJOJQFJXaXTXXlyTQ19yK9+r/w2qlIVw9TAny5jsohXFWQtZ65NM0Sg3DQ4uAOeIAoHeKCBE1B2qnXGrMFi/LU3KsyWCkKQaDsZAyoCLVaUuR4CVegrw0ikYDvuml0JsQX9YjiW2JUx1x6hBSxcIcgxKcaryBBoAAzVIFGK0huW24EJOJkHPHjSAKhp5YvyBSNca9jCknFoCUROaPbC1yDSohZYhUmqIyoRO2ssW7p2TQtT6wOs57yF/J4RjSWCBEV2VAbHkKURZMhFch1sEBFk4Aq6iJL/BJh8O0xF8qKXzXMI/fIw0DXMDMn47EdB6SVV5Stfw/ESWyRw4fCtOSK23mmbWk2NyxLi1VtgxxZUWM/p2HI5HzCECAYMkxuoYm0MTvQ4K3DtK1xhAMYWlzE8EC4Lk2wZdd6VCh8xhQx8jlgw6o2EJki0Kv5sIAXAQQE6EGzVYtZXKy1j1+QIZxS2mx1rb3l+r3xpF3LQDBTzM0xUQYbJNAM9aWhG380UBRwZ+wDi2lS5kKFEarw6vwYTHXWkvoCP8FMgwBXxBUQ51jHFauiGcMKFVSgAj8TTImis8bnbrfYtwDrPsczz5zeyGNU5Bgh4Py2xiafcN7CABUFXLpTG/zl0Xy7d3at++hwoVkszwEYE4I3cQNRCgS1K6LyLmB6sRFDV8IWhrhaRLZ1AxzXht1y/c75xfuuMhSgoz5+OcQTeg633AcBf6EEHlXJPG7krBFgEyFgGyxcfotFRF/FxjvCIl5LajQqJF3pZFTRAqAacHgJohqk6tWCpMTkyuVZTO/FDowawLUuzCMviswOIARmRjAPoO73Tu92LvzBZvgP4mcngBScQAEJgB5WjtYuiJBKqkwBwAAfJF4y7ACoaNXKKFQazrrchnYaZre3LwLVLvT64L5XjPq6BK68RgcaQkQtgsNtDNBEIk7Y4QbB6FaXhhQx4BNSDtVgSoeMRH/+JqIYAqA2wAi6hCTXbyA1Qmjy3OAAnsCxZqgZX6i4ObLUOfML/0y8ODBY7ggTlkaHx2MK0arAGO4CBWAcTIJ4XrKJm6Dw6Yzl4yzDqeLg6kTgoSoB2aYbmAykAeAAC2YCj4SIInIwD0IXWUzOJAL2+0JqGsbEbvCyL0AKqSaGEaZEAiAMDuLnHUAV/k8SewAGFMqCeaIYomIJHWDobZDkbBMVQrKk1upMHqIQGQQPqIxoEIZoDSZAwMTTmO4Dr27M3yppqGMR33Brz80V6AkaDUaFY+gDmwJjYGw9xwDviQUG9S5QJ6ICpmJYpmKpOVDlDxC7Myiu9Cgk4goRc4Kb/UiELEpMQNECucQIAUVGQAjiz1PJDaiCd70M3eVKD1HO3l2I4e9SCYeyEB3DEx5i9vIM/+AOAcUk6POvE1FO8T2y8d5oINTKDhjCAXJg84AKpUKoi5qkXYvAmHIhEAEgDlPNF0KsrXWTCBvBEWLtBePvEi5ApO3qA9/kTyZDFcYI/B0M0SRqZm1q5oFQ5KNQwjPiLUWSzfFIActo6kDQAbeOm4SiOyjCEnigeOsOsr+FKu/pFbGy5J2y7WOIaOXIR8WAWN3C/Ueu7BnsDy5AkSUo8xVM5uhy/UPwaD/uIOMwikzKQcDQrFTsAnjDCYEOGxMOuR3Cvc5MzFEq9J4xM/3bwxa4BxA0ChX/8k0XgzMiBP+JJg0I5FETTszqzyzqTsa0hHTP4msTgJ6HxkgbxMmIghiLAAeCKlfEaydMCgDdAuXhzLyssGC2oRuBkO7aDNWrgqUKwI/YpG7NxhANRr8m4vUQbKhwgjuKxLEozTcyypw/wFXwqhMV4F9CyDRMgtGyLldzoJTYYKqxczNVSo3lKIXoKP/tcu1iat/58gNpwgCwwm5dwBJ0jA9MaqsNyCRw4ACXCLFl7tYg0H8RQow5BHdtwANy4INskK3khgII6raFqBkMwzWXAgog5Ny2ApU48Uf/rg92kjRYNLoZ6BhiNiRhYhBhwgCLYAJjIUf8qqyqUWzrbyiuweZg2qSMuKxB5MccHbMAF7DjJMYHJ6QkA0IWsNJiHqyk1gKX6PNFsxIKeWKwJiFRGCwFJAIExhdHhQcIUIr8Mk7Y51bSSuKOQFAiQoryBoLxAJScMUJpmaMG5bNC/YKUGsCzhZFTM2qGDk9Si4IARENNLZRYhMIHKYMiX88OX27DCAYyFuYswqAAvDauvKsK0YgM2sB5DoMSsOwBDuC7MuqqIoFVGPdE+WIUDyNVLYbRE0gAo8NVfHY8siCRqQjSRuSkVyqioUdY1QwDJyw2nZAtRo01hSytjW7BY6UM4VYMp0T5rDNf7pIZj09UeOIHdaSgVaIH/ErDUdnUMCkir0RRUNKNXjPKLWAWMFRGVI9WNIvu3j5SghLJEADABpSEnEZg0WuscE2VYQkgDDDAGiHU0DRgBSTkmFXiCZ7CBjIWJvykXqsKCNCgo1botjLqKwgHEIQWPMIFZryrIgSA0ZzwB54IkQDKI2jiASfvEEaHGV2NU4HS5h022Xd2WIFEmFZAEoz1aLlDG1JLLt4nLqYo2zcqV8fkABKABDioEAUAGg3McvcufqBgnD2A0DsCUcgWTgsgAqrpBaZvVRdVSR4XU2ykKJ3M03XmoJ5AEVrDbXlIivV1dv52CYDkM0qEB5giADGBaAiGAgkO2J9nZ25kATTEB/zz019i53Fd7mwygxixV287NVdAFXQ5QpIl9gicQghmwgqPdQl+SyyVCoNuqJ0PQTrAZ3DvKBmpIAwIBgCswNibb3cUyrPEyC5NKkAMQgOsihJClwbTV0i3oXGSL1F1ttAj72ScwEkmQhBmo23btJV0Yzcwime5d2s4JDMNAAVCYg0cwX+oBq7WohBjo4AtQBUf4DUcAglbx10El3qrCiJu1T0LgX/91Mt2RMA0Y4CPxhRKYARBA4Etlglw4D8vQWwcG4hTWy3xtkQcwgCigRNG6gEVIgiQAgt+oAimW4t8AAiDoJODCXfq9rnpCw/zVUmrg3c+F4d3ZBENigBFIhf8bfoYczlhlNAARCM2+JRkghtqHKwkZaAgEYEUDWJ4FAYJ7kWJFIAJCJgJFOGRFCIsRrj4CmMXVW8OsRD373AJkEGPnjbBkkuERkIQbBoHTbdfAagbo5FsHvqjWg+CIKeI72ordYOIqGORCJuQbgGVDDosu6bSC0IUJZL1iVdBF3d8B4FlP2NUTEF2WOeMRoF5rkALrbVdltIkf5t5SNuWGQ4aogwjDCIBciAFVAII9aOJYluUXuIFYTuSw0Jf00lY9Yzino1+HvM9lCGb/fd7cSSTohRRJSIVnmAEp0IPrDTbQjEuMKuUJbLicyZVys6NcuAAr/mYgIIIbIGdyhuj/FzBkRE5kcZiQTkqaQd1lzPo8OblZLDg8DPAAXeWA3akURdKdTZ6BZ2Dmf04tncgJOh7pJaJXg44pwQ0AGgCFXFgEIEgCh6ZlWZ7oF7josMhoCuHoAdhiXuaLbAiDDsTGLegJ4uHZCaiBooDelFakijVgKmjmX30ByagMP/Kj7ZXmB8aCeesQSPBpoBZqoIboWI7oiC7kQ07qEV6E9AIAt9GzpcWCD6i3/ntCXbCNwTNphHuy3NEABtid0n0BKpCCaDjaGBgXHMlsHNmwKZiCq9isKei8alKpfzGA8FiEvVYFcbgBMAADurZrLXkB2Z5oIuASb8PlZlCi0Xu6KZANIEgQADrLLwEAJEA1uhrQ6mVLpLuBghJgBmvQg8rmgoAAACH5BAUIAF0ALDEAHAB0AKYAAAj/ALsIHEiwoMGDCA82WdgEXMKHECNKnEix4sFpCylppCSKo5GOHDk2mWaxpMmTKLs00SiqpSgjSJCEypFDnbqaNa/JkZOyp0+fK1t+CiVzZg4+O5Ii3YGUjxIjgZr8nEo1IrhAHEPN1EpzR42vO3okHctnzKeOUquqVQuuyctPNJF8knnU64QaXmv04MCBBw91Zo3wXEu4JzhKc7nm0DoTqV5PPWpMmNBjL4cUf48ogTG4sGeLgcbQ5MOnbt6vlSdP8MBFNd8ef3PwuNT5s+2Hh+F2zRskCJfWeidz8eChwwQunjhU5pFjBwcotW9LJ3hY1KehfGr0Zk38uOrhxIkn/6eM2a+GZ9PTU3drZEx23+GJD2/NPTwXyZNRczgBRb36WnIgdtMO8MVn33BBsOabahMEoVoNHITAjH/S6cNKIDCF8h4XHRgoH3et5ccgg56cMCGFtl2IGHY1/AZefByq5klyJ0R4wgmeeDcZB+ih6Jk+0njEYm/zuThZciGE8MQIUEBxCQxOhsABgzz66JkVQb5E12n6nRDCCSo8AYUkXzzzTCkRoHkNFCHkeGQJVha2E0fX0eVXCkcwwMAIl1zCZJlmPsNMBMwUGoEvl+B4ZI9xqgWkRkZ8MsYY6mjmAgxQIlKCpr5EEIGZhHpqqC/XaMCBm080SpgcgVg36WaYPv9pwRclkPqFL898KiihIPQ6qC8jtDljCDaoqpYcpbSnzqWyIvLFrF98cU20uebKa6/Y+gKFqTmeMIOxVcnRXk0u9OnkJVDAAO20t3YqKra+RmCBBop6C+5U07CixFHLmtunuc7SGq27zMDrqy8WPCGsJ3De65M+zDCA1BHl/msxIhYg4ku0txJasMHMlMDmjJ5I4rBPrDCjgVgpMGDxv1AEvPGsnX4MsshS7vftySlBvPIOLb8M8zUW+ILwwDbHSysiOa9gDc89sYLInS4LfQnGNFsAbc2FFrrxM4iowFcWrECdEitfpBBC0H0yoMHbe6Y7a8ZN1t2kpiXkjcgIN0r/oo/ZKYHAwGUMuDCCBl/y5aUGLseMyCVuv63BCCNIoqkkM/DtNOApyWFBCEfkifiNISCeJONQcAwFCZvEjXfez0BxwgpWcJ4SM4cfkYLkekquwe5Q+FLoF1CokOQTLUhSgpkin9BK7bafJAciLjDQsp5fJud76oQ+I0kLKrSCvPKCfoHICi04FL1J4DxzSfXWJ0m6CiowfkmthW5q+fI2P/OFClB4RrHWZ5GraK1PjHPbExa4JBJcrUzMeMYMBFUoeD1DZBNkFAEnUosLlQIR54IcCUjAOMpdomgeM9OtBAWCQqnQhRukSC1sEJVArKlPJHAZAxw4QhLAgGCDelcL/z3lqZrFcCKtKoU0pFGKcxXOZT10mbOAKKpBBdFTRTvRESFSipdIowkROJcLSDACMh7OgSgkYtfW+IxOkcoXA9ziQyhhBCMosYmQ09MO9ci4ommtYxFooaEiMLBraFCOCSnFJ+wYiH+54JE5fNvaGLC6mNUMBESsltEiEEdEJoSOoihFICzwvjGO0W0h4EHLMvYFj33sitRiRic9iRA6loISpHykC5Sgx9ZdimCC7BoRcQWCWdISIRa4RiBK0Sdd6skFpSjFNUpRM0/l6oq/YgYroHfMh3wBBoEIBAz+lcNLyaFTrNgmK6TATmsUTJjaVF83H8KMLwRCGojS4zOvMf+CEgzhBi8IaECpMIMJdg8EZZunRORggy/k0XopSIHhWjCIQQhCEBQQhw6EkMFA2YCbCoWIFWKnJ7X55RItyEJFLUqBiwqhBCs0U0JDKhEbSMJtEV3b1VagikH0VBCD0MEQ8gbTEswABDSdiBVuGtGIagAGI1jBBjYgCFWoQgfisEbeODYDYyb1IFbI3O8iegQLRJWqF73qC1hR0GgZdaZffQhJf/c2RLRgBRdNqziYYIOCEnUGcI0rQsB2ibEyoBRnzStQmWCNF8xgq4AVLEQuCIXqSTQQUJBqWnvKBCnMQBLKK2hgJVuQzOXQekrArFTRulhrDCG0ZkIqaREygyf/aCB0eOLnalu6WCpgLlDPQOhsD1IC2zY1BcWbKm8FoQPGFvSaBfvocAtigxFsQne7Y9pqp9ra514zuFLQw3QFMlLrim4EFmjFVDeABqoOIqsZ7N4zwqsIRUzXCjaIgJ7ytAkYfEG9G6AAGtAAVPi2sVMStIEebrAHIMx2hiD4wn71RMYVSJUCGN7Aewk6wVaaSQo/AEMMyOCGF0gWvzYoQQ7z1DgVZEEVG1BFgcXxAklYy1MF/YEe9kAGAEBAHFJIqhWsYQ1WgKAEbrvuEdSFvooyQRE3kAJAH9tGQi2PE2DYQy4eAAAC/JgJ89SHFGr8DFbYtKShc9sJpgoBDDNX/wfKe1YrSyAEa3DiBzx+AJe7XIAN6CDIcsSvJITQghaU+Rkt0MB1ncqAJ6wgC22mwAaEoLzlBQq0UrhzEnqsZwMYAAAAMAEOBjGEGEoQEQwUnzaZkWiyHqF1YpqBUJkgDkpjjGMlaMEM9KBpMui508c4wAEAgAEcFEEVTLgB59hqW8StYHYriAArvHe61rWOAYiwwQtuwO2hYu1ZI2iBNX7ACT1sessP8PQx9HwACYCaAA6ggA5MfLJptyAEzz5VBzrgiWjb4MhfgpsenyCJJ9NaHKDVmgWgQPBMl3vToE63uoPdjGYIG9Si3kCpjSUH76lAUfvugAn2HW1WWGMGrf9YQeneZlsVtIAJVVBEFWotCa0xvBVU4DWWN/1rTxuAF7yweMUrPmxid6ARg6A3ivLLcByJHAPGMAEGQN0BDvjCzJ7Nwsolp2sqgIHbTLDcwhEnBBBzYuecTvcxDHCMoA+9GW4nOqjjrQP/2MB74NO31DFgAgAMYNgY8EGZWaHjG7SifpIbwQxuAIavC0EIj0PcE3Z99nIDgQzoXjvb4/72zlu8yxQYhHRGWtyPe2LfUx/A31X/dww04gus0AO59TCEBTJOA1CgAuO/zgQhHE4Dkzf7nX8gjrSv/RjHAEXQK9D25QO9GRWAuwI+DwEheObfIFTBCnzw9HZLgPWsdzf/wxRM7hAL4Qkq0FPuG/91cbSg5ZKwhs6HD3Fgg6L50Yc7L0ChgOlLHxSgIAZE52XvVRX4JTIKo3cAcAAD8H0NyHoVBwA4MAPspHM/cAPnpyeIYA3sdwPicHi4J3/kdnY6lmcS53PHoABu93zRxwvI54LIR3HCRgAFQAEb1xOf1QIpdwITIHILGH7gxwKq524TKAU5N4J68AItQDnZxm1JKA5Z0Ap1JnskSG43EAMAcIJrd3/LN3QVwAv9B4YwmHwK0HbHYHFeJg4oAQ59JQQp5wOnt3fgx3osIIRXIITuJng2IAVgYIG0934loGB68IRZoGtUWIU/UAWc5nOexn+8/1ABA1AB0feFQAd0MZh8yrd/QDdsBXASrFACI6B9PtCDUidsQDgAQqh6QsgGDQgAK4BQRggGladjNVYCIDCIUjAEhUiBIziCD5eF6fYAphCDQccLIiACVyACFaCC+jeGbVeGKdh2B0AAolcSQvBsp9d9c6h6V3CHbMACrBh+GNAKNsAKugcGvvgDntVVCiYFtBZl81d5nKAIaadnpqBuQNd/x5gAX9h/lGiJzXeJa+djSjcRVFAEcViKDDiHLNCNVxAF4PiNb9CQAzCOxUQF24aOs/h1e8hOyRZevlh5O5aFBtBz97h5QCeJ+Sd9lViJKXh/MViSBKAKFpEFOKCQDv+4jW/ABjzZk6zYkFcwAADQCjOAkRkZj3ogZcn2Ao7QhyFZecUHAJ72a5eoAMvYf2HYgo/4hS84hiW5dlwmCBahClL3g6eoijvpkzwJlBVwBQewAkIgULvXi0l5A2gQUE35A0/JCVcIalMpjF9JhmAYhiooiVa5jAKJfIFZkg5QEVJwAX3nd9s4AHf4BmmpliyQARnQjRKAA1kwBALVeIP4dQAlDhcAVIrQh/J4dnpQBXmGiaZgCmpHhlipAPynkoa5jAAICsMYgzD5aRWhCG0wdQ4oARJQcXdYh6hYhzxpmXUYBRBZhwSwAeIwBENAaxZ1URUlDuIwYILAeIdIgkT/oAhJgG7pFpvoCQqdEAAJkAC22X/8iJtXCZOJOZBiORFD4ACglpMD0AzIGJRryQJR0JyWGQUPaQkT6WMUAAE4QADwBgEQ2mYERmCCIA5Q5pR3BgZVAAQx0GmxCYAfup7s6Z7+GJ/yqYLQiJW/CQBoQBE6QAAY4H0Q2AwO2Y0s8AZRYJkFmgFO4ASW8KNByXrFVmAVJQjt1VKRpgpVQAREcAOKsAcx4AAPgHymAKIh2gkK0J4JEAAAOKJY6Z7uCYAlmgy2eX8PQJMT4QYEAAD8SZkikAzJ8J8CiqMImqNOgAw/igxOkAF4+gYD4GXMxZ2C6ghooAq8NQhAsKRE4AhJ/7AHeyClBlClyWcAvNkJXdqe/SeiAdB/I9qe6smeFZABhRCGngYBFOEGqTcA4ciNylgByMgCltCjbBAFPxqrPWqZPeqQzcBnEHqoaGBRgqoITQoGTCoOjnABUomJu1mlpoCl7RkA0LqlZZqlVsmp0FoI2eCq7rl2nTgRF7Cm38eTrPeQV+Cf0OkELNCjd7qnTkCrOKqu0CkCAOAABRBpEFAAF3CaEioIjmChimCsQCAIBGCPsdkJlqqeoLCpWkqimGqwXhoA6/kBH5AN8VmGD9CYE1EAqTqHNfqQtIqglpAB0AmdbwCvToCjV+Bj7/VkMmesvzpg+RqzUBoDMUAAbP/3oeppsAjbCZCgANCqsMnAj/C5sAEQBh8gqoVQAZBgqcfgAGoYETrgADHKehPZsd0YBYxAslp7qz0aBRkwBZbQkIC6V9vGbYqgCo7gCPVVBTPnCECwBxdQAAVgs5FapdDqs9GqsCNaCMlQCO0JCVqqkoWgmdmQDOzJpcdAAPcJEeJQimipistZme3qo3Z6rng6ueqaAcMGbzVYVT8FBIMQcxfqpDNnUQXgaR/6s9HKj50aAHBauO2ZDX77pdkguwlQCAEACaDwAATQohHhCDDapnRYoFHQtVEwBzzKCMrro1PQrj+6p3HKZ/lKs3CrCjHgqEDlCD5VUYZqs7u5ns//+rML67fJULvla74kGgCFW76F4Lfu+WkXIBGDgAFT+31BqnrNKaBeywjZ0KO22rxTALaWgAwCIAAZUAEEEHoWegNs6whVRWAzGwOV4AD06gAEcAy6a7AG67PPmqW3257nG7TY+sGcOgeyWwhhoKVlaADVCBFqigHCOwA7eaM4ygKvq5lT8LVz4AQCPMDIEMAi0LvvBWVMygQNprZsa6wXdQEQasHCWKkOa5XsicILmwB9mwC2u6XXasLYirvQen8GEL8RoaZsqnpVG5R1mK44GgUikA2aicN7qpk/GsA8HMC7SoMQcAHYe5pKWl9EMHODKginG6KfqrpFmwALULuF/+u3hBu0PvsBfiuxYRAACDC7ZxoRQ/CtkkmZqpicNzqy5fsBOfy1AYyncywAU4AFAvAIUyCv+Dq9MXABaFAAsTxgFNpTqoAG3qvBlIwACNCpiPwBXBy02WDCcLqMnSCxwly77eu+B0ABUDucm+ynJauuuBoFFQDJyvy1yICnjMCjljAFAtANdqy4CzyepikIekyzUUrBlVAAFox8hezLvty+t5sME5sBypwNoqyZQXu7E8vPyuy+vPAA3foQxVAAZinDA4Cg7XqHlQvQX+ujyIAFP1zKAWzAjKAABVCh3MZ7hfpexsq96nyvFkypGmywvrye7tuehSCxsrvMV7ClkP9AybJbu1yMqYkbEaogtZIpAqj4BldQsmx8p1lrxXMgzHda0T980XgqAHMwB8kgvZt1ATLWr/0qqCMtyACgns3aCSgQACgQ1pDQzCkc0MVswPYMrR8gAMWcAQLgvohLAGD2EC/MgOR6BScbspvZoyIbysg7BT9Myt0s2Kg8BSYsArxAgzHLxIIst/jqnVV1UQ7gabysuigcBguwAAiwAN2Q1HMA1R9guNBqtEmdAaGdAUGLuAbguwlRDDDqdw8pAs5Zss+rp1GQDHBNwAb8tQXczciADxadw9lgAJUQukz6r4War3JLwc5NrwRwAMqoACKKAJPMnmFg3bhr2nCt1u3/+csvLburnNP9t7ti/Np9t5A2iqv+O8CxWsrIgLxzIM4CYNEVjQUWjQVTMNVoQGPsxwRAtVI+lVdMDM/RvYzNCrHVncL0jAASG9r4MAUUi7udvQBQjd8S3r5legwHjRBt0Hf8qaPt7cPtjadNLc4BnMqp3M1OQKY02FIr1VIhvZ2COuAQQAD7V7AGiwLrCd6IbLSDK9yqfbvWvQBGKwD44NZ+67cGawAEABFFAOIy/AaWIMM+DLLdPMDNi6B6eqf0rd+CraeonbWLXQk0ewEx8NgRSqGKNbe8mbMp/bNhkNlhkNb6/QFzXtoL8AH4gA+PIKqarcWJWwUPQQFSS7V5/1qrOhqrmumjfI3DU0DO4ozfFh3VUw0BoVtfx4pRBU7BOADPzg0AV1ABcA7WYx3W1j3nkDzfqAzJYfDqRrvn443nnD3JlhrGD4EG+umAlpnlfdrr4dyuxSvOfBrA4RzprFzAJqwAilsFu1cFv/peJI0GC2rS0V2mGiwDGvzLr46taV3AH7DnCaDZnv0IST4HKPyz2i6bi3sQG6CfC7noVL6TvZ7l1fzGjo6nqhzAUR3VCWAADgABQBWwp6mdIl3jMgYBlZ18Oi4DYa3nOI0FES4AtV7Jmh3aUE2x9BwAMiADa2eqr63QDKijqlqylpmnFR2rXovaAgDc963Kyj4Hc/+OAArAZ/Uq8PfaqwRmVUWq8FP6vXEuA+yZyHNg7uP8Ab5M7gsg3BGO9L/sy9DaCcdw3gchDgpdxkE5kYtuysC98nCNvEtd0QUM1XPw2R8QALkg8P06CKeJYU0M2ZBtwQBQAQmQ0jwO1iKq2dmwykneDZDsy5vN5/itz5y98RDbtBDRBqC2BA4Jfu2mo0wt7Lv91JQu8X7+CN2g2gZQAKpgoS8wCBTQU+Iw4EZa4AYOAM2wpZ3w1SgA9dbdnmHQDX7eAHOw2Unf1uZO3zJftH4LsaDw5A+hsagvAtAphAdQdadn5ZT+1C2fysON34/QAA3wCKE9BxUwr7xF7XnF81j/XaQbELcEkPopne31XLt8/wjjTM9hENr4TcA53b5fvHZo6uGgFonJAJEH4AnyMwEYABAD3mDBgszJlCkEsUxBNkUAQQHdpsyhOOeDiAMACBAoUGADhI4QIKARJGjQSUEUChBoViFAJ5gxUSBAEKbQB3z4FlqkGWaBAKBALS4IkwCS0ZegHlDo0tTp0zYYADS7MmAAhhMMjhzhMQGDQCw6sWSY0+0hQWQE8QXtVnZOMgMERpakIEgkyAIOOu7dODWKy5gwUcwME2ZOg105BXz4EAYB0Tk58T2yaLNQoQQBkoKq9NRzFzcEABywioEDAyXq1PGoYQKszoaMupl92BAt/5aIjMMEkItG1cm6g8TpAKIKzQWQG/seaAZJRmCYMh7ffKRGDb4pjWv6NDt5qM8PmDcbgPDZqZUhRUxgkGBihQbUqUN4cj1QLMI5GQRMEftw/xSz5sgmAQM0KgACCiAoaZDfTFJFlZIEQSNBBwDgBSZTOjElQ+kW+CCy6x6ZIpkFIHEMkgUeUXE2DxlDCpJOQDGgAPO60EcKIYrAAQMMJjjhCCVc2Io1YwRKK6cpGBEgv7MaSmuKRwLMIJkEKtCIIwQ70utACkgyKSUcCDjgipdiem6mBbqpzrpHFiOqsDA+UDHK8ArJJhvMMosRFAdqtGKGVlboAAMTJuCAByDHUP+nBy6+suRInWZrwCy0KIVIAEbmSEABLBHsUqS98toyr9EkeCOKMs2sKc1drlMsgw8WkHW2XR7Bp5sPMsgmA10XwCzGB3K54bNaQGghBB86MKHQGnpQ4tkjGP1qILWwEHE/AdIiKKGFJsqOQL0QnFAQVcQ5aRAJQXJAzCsOEkDXwF4KIM1u8HGVsmwWeCzNBobBZ1LGyLIIEoIDOOaYBwb57M9AV1ihjQ46qIEPJYwIMgSvrIIUW4q4xU0toSzKzIC4HBBJwt/OhVCQDVRaV8wKEpBZM8EeE0CytYaS1cMG+vh3tiXbDC8ASAKQkTzP9LFBiCeeaKGVEE4I4Qgjqjb/AgYGTvAEBwDsgw0LSxyyFiGzHFrMIioVACDcAx0Y9S400Nhgg5RWMoBKzWDsBAUZFmgAH5/XamCOnbtp4JFW6bxp8FgLKRoUUwy4wDMrnmlhBChGGIEEGGAopRSrSWBAgxCKIGAAZHJCC5mgHALQdYuywRuAudAYCQLkIIghhgJwwOFAkXBY94pkxAsgQxRo8Ns6xSz6oBu/D98lsbU+AArXQgKQQQZQlKLxKfSEgAKKSy6xwIJrPjfiGgsuGeGJEBoBYICwVGed1zkeemRSoe5kLAAAcIkCwRGHIwzoCHSBqi8AkEAUpqSnTshgMH6z13VwRRRZNQAx9zqbACij/53ndI8A4niKNSSBufGlrxSUuMbVOqe5+dTnSApxgoD0sxY1UYQsH4qVAhQQlwNF6CTDQWBJJqQu0YggGalCQSeUV6/J0Al6jDGcGqinosFFBHupUgoTnkIFFTDgEp5Tnws790KMSUUCTsAH9RRCkaAFBRkZiEIhPFSUCsglQWh42V48NUC6hKlrUUgAKASDJpxMZlI7m1UDmOfBKJZli4bUkAHQ8BQdhAA+6bvGNTrnAhJAARGIsAAUnuCDRnCNftRDRiv9o6KCAEVXH7KIAhxArpSgIS970YvbHCC8dU3lDVPIgOMimDwU/CQnarjgzjTYAC0kxlZziiKuIBijPv85JQsrCAEUAnGNSwjpCC4w3zV84QsLvK90rkmd/QA0p3clZI53skgADBCuC3SpSykzYoLyIpqpiMCB2dDe9h5jFjX0QQ0NiFUjNagFK1bzZpPBXtE0Y6UNOEUcPtBABGAguhSkQIwW8IU52QeFYzXiK2G5zrag1CYAXY8iupGZAngRwAGKqyT8lJCE/MmSKWlGgjNRUxQZyshnKnQykIQiPHHDq2Q045JNEccKSoAIFWhAq2KEgTlLUVILIOIJKkVdTlolFuz4Zz+Gi8hiMBMGTv2xEi/jiB8HmNOVXGEsmaEJTaqohv3N6gPPhKZ1XCWZNVlxejqZEgE0KoQSPEH/q/Ap5znBiogRhAAHpgrL9FzVraC0dVKzcYzRCEABdMUtOQTwpXLoKiYWWIIgGQgAAmaCAEcatgH68ttstKCFPiiUeYet4PSMOxapdkEPTKBCC7QaUhfAAH2dZF9YW7AC18h2mQlFq0NmM5v97XZnvKmEAEPiG5T4FIlikoBssxMGNB3OsPral+GgGVz8DqMP1MvJIjO4CwGwoE/WGIIQAjVZcp5PumEdZSs80bX6WdGwrvJgAxyyP8NB7zGbshLw3FYA9KoMXSxLUJgGgow5OIY7gGXRvviFmOAOQ7/7reBCd7s9GVgPH5YAQBduMJxtjo4BDCABCS4xvlEiQhLY/33NLhQa3OEqEkBmiVKafHIUA1QiQf4MlcnugiBQVYiNS8oGAublyMAykl49G8YWtoDfxOhWvAa9mSUGAIEbILAIK3hCVuFDWVGOEgonwABpkLFYJ0MZZ21qQG66URQzE6gAKdEnhZRz6Y28bExsBHAyHLNmDaq5OzMOrr32y6bfinde+hHAFQighyoMogitUEEIQqpJIkOBwVDgQKEHMIXFJlTRzZuDitxE392UjEuicluXIhQ3vG7kAGlZkk88NJuGipeCu2izv9ZiK0Wq4bdamFQYdnWnBEwuz4PYptRCoEnMJRkRvP4K6oxrHfy2NDv5WxJjGlqYBMDFw8rRsv9JGDTiliXIBAfAQmIEkA3uGK6h0JMU4GTch24Adhf8E8BDE42P/GUAEscozwvM5YYi+OBQ8CnyJZLM6/kNZHp9uPiw+22WDO/sMQiYEQUuQBLjhNmXQ8fBekgD7MQMZbSFs68j++AF/WoQcZGMVRWDKxTeCKILilDFBRrRCE94AtdDJmVYn+AJjYVFv2ufcWKwMJS24KqhNDGFAyYUHAbVja5DX07XADcZnkFPsNCbFJuHYePDquHhmkEAitrygQSMsCmK2EMM2oCDRnDg3SnQAAnkrYIODOBRqUt0oofdpiVluKGyCkAuTDZALfVRQV+iNASERwC9Tk9ouGJR4dL/JOxhpNrJxtVJ9p4jHQR0ggCO0GgbLO8AsHNA+hog57xHQGjUpcXJW5Cxm4WbEwyD13mNKQxcvKwcABioLv3UkmjG1HAna/u7aeLXI2iO3/3S3LjTCw+OuQcAhdGoC7A8AsCBDvCEGtC8IxgyBkgj0XuDQ2O7GHszJDGb2XAL7TAtkVi/kkg4SwOo0eCFZkg//tgvLMg2wnom4JKxXeiGYjqLjrOxBagtGuiEByCDAHQKNyCDNiAAE4iYCWiWQ+EBDuACYziANzASbuu2GNOvlrKWiCiLiOgrUwCAfEKQczmXlHiZcBE6AoiCNvIXizgMwoqeJsSHNzgAqaCKbGAR/8OZwe05BgcgoacYhALoQR4xAWPgggnowwloFKtIQtniNm67P+4bhitqE5zrveQDortgNlHhiOAgsZVIojaiMYuwsRRUg4tDhquIGK7hBRTJoA8ok2OIgc+wwx5Mv9EgFD3kkVKxCtmiOQlkQv7an/C6oN2wJ5N5LUybC0sjjQGYiobDr8VoOme6Pyy4Cgw4wEbowQfwoQD4EEjoHlCYnM+4PPc7AF7IiPS7tKkQiCWUMXIcBi+gwGWyFaARr9ICgEoAiZHwkggJpHU5AAkYwfQ7ACfAAv0COTtKwW7QAjfbhSTEAGM4QE/gAB8QpAfgBaMwpAdgvs9QBd5hxQdAGP+NaC0AEIEM4MduK8c28z7DQqzeixVejIF82qmDI7EPA6heSr8rAJz9qrbogSYtIMdl5BEPmABPcLcQWIFUIoCGPAZQIANFMA9HaAMyuBKhfADWchvRqICOpMU3i7E+cLM3Yx7wK7w3nKK4EhVeqkTRuDSRYK+NtLj9eq/CA64t8II+KMgfNJR306qfLAJofIAHQMUaoUgebIQC+MaXmQoW2MdEY0HD9IJz9LattC/oKQpe1JJQiUTWEiAKOJ0ByAgJwAL8w4eqg7GQ7IOrOEie1LzJIh2HKYKlBAAgqJGmKA5VcAOuuRILkcWMyL2Zyy+sLLXrACz/erTjyYVK4J3/DcynuxqgudlCBlJDjQAApHNCLMq/ttyCnOyA0TwBDVABFXgCBmiapnkYMpBI1lQEcVCFNmDFqViCJTiAAhgEHXAN+Fsm/OK+YTOq73KMTogL3vml3+myAym6+fHGSwNDWpwwmmvLc0SGA/jBhJQaDWia8Wm5p8kCVWDNp/ixZ/wn1sKB8miK0LMEnBk+7pPPw1IT/3IMFHgAB7gAXkI/VhRGNpAACRgACWCtjRABzbw/6rlKxDzHN2jG0SRNzRmf8TmhVsiCIaBQJPUMcfgK7Vss1um+GQuRZ7ogmrDBFP0jCKCr9GMBFmiGAzgAFvBEGhUTwCnE4OK2HT1HS2jG/7CTPuvUgM0JJUmQhBZ4glZ4gSTN0y7YACQ8tJxAhjfYyPxrO8F5plhBAO5xvdwZIDHJCGkbAD0qABNgoDEFAAEoTNzcUek8gAM8AU/11OvcHCiYU0kQAiGQAj1N0s2yD7SQgGmbnu6jQKDIRX3pBF7MUh/8CjY4ALkAKBwogrkpAk/gkcDMgDYyPSczRy9gh2HoUersyXd703hTshIogSGwgVRFUgLgrPopCPhbQvl0O4bCFccws3uCgNN5gzdggyg4AJPBgS81gZ50mAfDgNsDgJgcvppTVmZ1Vp60Tk26zlAaJUlQslPNVtYsgvl5FLU41v3bvlMDiqWLtHPFPf9LuNgklIsOIA15lT5POEJ7DZNttbhk3a82Q8xhWNMD5ABPncvsRCFEaAEhGAJ9QNga+UuB4A+c+VD8cyMNIj8EAJeVSAb9cIKqMAHfmZ9mjBhlCZfAdAIzXbsQPUd8GABjSEgO4KZ3w84nGIEWqNMnEAKbrRHRED2FaNgPTdYtuKJ/O56KPQZeeICM7M/IHIkHSQlcxVeZ7MfbHMgeNRQGLU3NmVNTtYax/YwNYKDs21nGvcT9ahXeZL0f0ouNCM6f26nfAAIgcITNFQfPBQJBUNF1aYabGb4c3QU3GwZP7NTSfNlRLdUhsILD9YzENRUIRFu14C84eyTBC4DJPZn/JDAgzxWHKiheRVAEIjheJvhcvK1HwnxYWOW+ZTQGnuQB0tEqFXgfr22BZ5hdzyhP0Wslb2XcxDCux1WMxTAzezotNHAEcTheIojfG4hf+k1eJlje8bQd4dnIb0W06FVdDOCChHRZOOVOIcBW73WKChGIi9WWsEBbs9o/nZiIxtCMe7oAQSBe5CWC+QWD+a3f460CJkCglvmnZvhWyehbRPxbd5us92maGUhgjSrbN2DYs9WJxr1Eh/sOXgyOKkDeG5jfDwbhKiBec8HbMHlV6J25kCRIeQ3YMBqBVmgFSZBhpygG2HIC8W0lSFEIszIrGsuZ4kmGtfk54YDf+qXf/xdAXuU1F1X4CLfB12IsPfOFswGQ1zdt0FZ4ghi24i4QBwZiAQjkYgdWHQhewunBjWz4gGy4J2d73w2W3w9eY0Uw3uFAF5eZH9IjVH2Nsen1kevEzir24y4ohnBs4LQQ37N94BRuM5+JJQFxZEHY3Ejm4OSN5OMNYTeGYzGxhJlbrGPNP8nwxB6B1lYg5aZQhXAk5IJQ5frZ2dtMDIcQEJwyCUiu3yBO40qu5CooIpUQjXyV4PI9U+yo4U/kgBZA5qYoz2YYZEJm5hw2LkRkrGxYmy4ZBEeoZSEe4vgt3uLlXFX45tPpLDjT3elxAl6pCgxYAXVuihgAgCVol0dBaDVZQohZvZlp0gnEmZ4l0RV3rAtHqAJbDmKSHuJc/uFKPuJvnjZ7cVzFA4ooIqaquIqMytOAAAA7)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"olq331buP5KSdrZQU5It0pw1fH4YkRkr7r98j4cmXs7qiNYV81dtsRIP11EKUkt2q8wcZAJoHw/Ul/CPOV2nBw=="}],"memo":""},"metadata":{"timestamp":"1733786370"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Nathan.\n\nThis page may look simple now, but its built using a little tool I built called [chonk](/p/n2p5/chonk/). It allows me to completely replace the markdown, which is kind of nice if I change my mind about things. [I can even preview the next version of this page before publishing it as well](/r/n2p5/home:preview).\n\n### Links you might find useful\n- my github [n2p5](https://github.com/n2p5)\n- my podcast [Book Overflow](https://www.youtube.com/@bookoverflowpod)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aDpVFWHEceOYbjirEZZ5sN5oQfchELOC01kozewmaqAfzpYGnqHrJk5XO5MRL0pcTDsp2MbFUQdVdh68yWCcCg=="}],"memo":""},"metadata":{"timestamp":"1732278210"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Nathan.\n\nThis page may look simple now, but its built using a little tool I built called [chonk](/p/n2p5/chonk/). It allows me to completely replace the markdown, which is kind of nice if I change my mind about things. [I can even preview the next version of this page before publishing it as well](/r/n2p5/home:preview).\n\n### Links you might find useful\n- my github [n2p5](https://github.com/n2p5)\n- my podcast [Book Overflow](https://www.youtube.com/@bookoverflowpod)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aDpVFWHEceOYbjirEZZ5sN5oQfchELOC01kozewmaqAfzpYGnqHrJk5XO5MRL0pcTDsp2MbFUQdVdh68yWCcCg=="}],"memo":""},"metadata":{"timestamp":"1732687431"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Nathan.\n\nThis page may look simple now, but its built using a little tool I built called [chonk](/p/n2p5/chonk/). It allows me to completely replace the markdown, which is kind of nice if I change my mind about things. [I can even preview the next version of this page before publishing it as well](/r/n2p5/home:preview).\n\n### Links you might find useful\n- my github [n2p5](https://github.com/n2p5)\n- my podcast [Book Overflow](https://www.youtube.com/@bookoverflowpod)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aDpVFWHEceOYbjirEZZ5sN5oQfchELOC01kozewmaqAfzpYGnqHrJk5XO5MRL0pcTDsp2MbFUQdVdh68yWCcCg=="}],"memo":""},"metadata":{"timestamp":"1732688792"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Nathan.\n\nThis page may look simple now, but its built using a little tool I built called [chonk](/p/n2p5/chonk/). It allows me to completely replace the markdown, which is kind of nice if I change my mind about things. [I can even preview the next version of this page before publishing it as well](/r/n2p5/home:preview).\n\n### Links you might find useful\n- my github [n2p5](https://github.com/n2p5)\n- my podcast [Book Overflow](https://www.youtube.com/@bookoverflowpod)\n- my personal [website](https://n.2p5.xyz)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kv6PqRRdqgVRbXHcg2jSvMCTsq67TQ4IjYJCzGR0wwSrRCo52Vi/opBPam7trMsN3aOsaR4j5E6oAHpQ3OD7DA=="}],"memo":""},"metadata":{"timestamp":"1732724778"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Nathan.\n\nThis page may look simple now, but its built using a little tool I built called [chonk](/p/n2p5/chonk/). It allows me to completely replace the markdown, which is kind of nice if I change my mind about things. [I can even preview the next version of this page before publishing it as well](/r/n2p5/home:preview).\n\n### Links you might find useful\n- my github [n2p5](https://github.com/n2p5)\n- my podcast [Book Overflow](https://www.youtube.com/@bookoverflowpod)\n- my personal [website](https://n.2p5.xyz)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kv6PqRRdqgVRbXHcg2jSvMCTsq67TQ4IjYJCzGR0wwSrRCo52Vi/opBPam7trMsN3aOsaR4j5E6oAHpQ3OD7DA=="}],"memo":""},"metadata":{"timestamp":"1732725235"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Nathan.\n\nThis page may look simple now, but its built using a little tool I built called [chonk](/p/n2p5/chonk/). It allows me to completely replace the markdown, which is kind of nice if I change my mind about things. [I can even preview the next version of this page before publishing it as well](/r/n2p5/home:preview).\n\n### Links you might find useful\n- my github [n2p5](https://github.com/n2p5)\n- my podcast [Book Overflow](https://www.youtube.com/@bookoverflowpod)\n- my personal [website](https://n.2p5.xyz)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kv6PqRRdqgVRbXHcg2jSvMCTsq67TQ4IjYJCzGR0wwSrRCo52Vi/opBPam7trMsN3aOsaR4j5E6oAHpQ3OD7DA=="}],"memo":""},"metadata":{"timestamp":"1733786169"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Rick.\n\n![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZdIF8ZiT2KBhFfQeVcWGmoPKNTxpcSy0vmjapHBVj87oi2sfBd1OcePR26Wa5yO5u01cO8cO6Us6+t4jpPhCw=="}],"memo":""},"metadata":{"timestamp":"1732278631"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Rick.\n\n![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZdIF8ZiT2KBhFfQeVcWGmoPKNTxpcSy0vmjapHBVj87oi2sfBd1OcePR26Wa5yO5u01cO8cO6Us6+t4jpPhCw=="}],"memo":""},"metadata":{"timestamp":"1732688109"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Rick.\n\n![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZdIF8ZiT2KBhFfQeVcWGmoPKNTxpcSy0vmjapHBVj87oi2sfBd1OcePR26Wa5yO5u01cO8cO6Us6+t4jpPhCw=="}],"memo":""},"metadata":{"timestamp":"1732688641"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Rick.\n\n![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZdIF8ZiT2KBhFfQeVcWGmoPKNTxpcSy0vmjapHBVj87oi2sfBd1OcePR26Wa5yO5u01cO8cO6Us6+t4jpPhCw=="}],"memo":""},"metadata":{"timestamp":"1732725135"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Rick.\n\n![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZdIF8ZiT2KBhFfQeVcWGmoPKNTxpcSy0vmjapHBVj87oi2sfBd1OcePR26Wa5yO5u01cO8cO6Us6+t4jpPhCw=="}],"memo":""},"metadata":{"timestamp":"1732726997"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["# Hi, I'm Rick.\n\n![rick roll](data:image/gif;base64,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)"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fZdIF8ZiT2KBhFfQeVcWGmoPKNTxpcSy0vmjapHBVj87oi2sfBd1OcePR26Wa5yO5u01cO8cO6Us6+t4jpPhCw=="}],"memo":""},"metadata":{"timestamp":"1733786229"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["The Project Gutenberg eBook of Frankenstein; Or, The Modern Prometheus\r\n \r\nThis ebook is for the use of anyone anywhere in the United States and\r\nmost other parts of the world at no cost and with almost no restrictions\r\nwhatsoever. You may copy it, give it away or re-use it under the terms\r\nof the Project Gutenberg License included with this ebook or online\r\nat www.gutenberg.org. If you are not located in the United States,\r\nyou will have to check the laws of the country where you are located\r\nbefore using this eBook.\r\n\r\nTitle: Frankenstein; Or, The Modern Prometheus\r\n\r\nAuthor: Mary Wollstonecraft Shelley\r\n\r\nRelease date: October 1, 1993 [eBook #84]\r\n Most recently updated: November 5, 2024\r\n\r\nLanguage: English\r\n\r\nCredits: Judith Boss, Christy Phillips, Lynn Hanninen and David Meltzer. HTML version by Al Haines.\r\n Further corrections by Menno de Leeuw.\r\n\r\n\r\n*** START OF THE PROJECT GUTENBERG EBOOK FRANKENSTEIN; OR, THE MODERN PROMETHEUS ***\r\n\r\nFrankenstein;\r\n\r\nor, the Modern Prometheus\r\n\r\nby Mary Wollstonecraft (Godwin) Shelley\r\n\r\n\r\n CONTENTS\r\n\r\n Letter 1\r\n Letter 2\r\n Letter 3\r\n Letter 4\r\n Chapter 1\r\n Chapter 2\r\n Chapter 3\r\n Chapter 4\r\n Chapter 5\r\n Chapter 6\r\n Chapter 7\r\n Chapter 8\r\n Chapter 9\r\n Chapter 10\r\n Chapter 11\r\n Chapter 12\r\n Chapter 13\r\n Chapter 14\r\n Chapter 15\r\n Chapter 16\r\n Chapter 17\r\n Chapter 18\r\n Chapter 19\r\n Chapter 20\r\n Chapter 21\r\n Chapter 22\r\n Chapter 23\r\n Chapter 24\r\n\r\n\r\n\r\n\r\nLetter 1\r\n\r\n_To Mrs. Saville, England._\r\n\r\n\r\nSt. Petersburgh, Dec. 11th, 17—.\r\n\r\n\r\nYou will rejoice to hear that no disaster has accompanied the\r\ncommencement of an enterprise which you have regarded with such evil\r\nforebodings. I arrived here yesterday, and my first task is to assure\r\nmy dear sister of my welfare and increasing confidence in the success\r\nof my undertaking.\r\n\r\nI am already far north of London, and as I walk in the streets of\r\nPetersburgh, I feel a cold northern breeze play upon my cheeks, which\r\nbraces my nerves and fills me with delight. Do you understand this\r\nfeeling? This breeze, which has travelled from the regions towards\r\nwhich I am advancing, gives me a foretaste of those icy climes.\r\nInspirited by this wind of promise, my daydreams become more fervent\r\nand vivid. I try in vain to be persuaded that the pole is the seat of\r\nfrost and desolation; it ever presents itself to my imagination as the\r\nregion of beauty and delight. There, Margaret, the sun is for ever\r\nvisible, its broad disk just skirting the horizon and diffusing a\r\nperpetual splendour. There—for with your leave, my sister, I will put\r\nsome trust in preceding navigators—there snow and frost are banished;\r\nand, sailing over a calm sea, we may be wafted to a land surpassing in\r\nwonders and in beauty every region hitherto discovered on the habitable\r\nglobe. Its productions and features may be without example, as the\r\nphenomena of the heavenly bodies undoubtedly are in those undiscovered\r\nsolitudes. What may not be expected in a country of eternal light? I\r\nmay there discover the wondrous power which attracts the needle and may\r\nregulate a thousand celestial observations that require only this\r\nvoyage to render their seeming eccentricities consistent for ever. I\r\nshall satiate my ardent curiosity with the sight of a part of the world\r\nnever before visited, and may tread a land never before imprinted by\r\nthe foot of man. These are my enticements, and they are sufficient to\r\nconquer all fear of danger or death and to induce me to commence this\r\nlaborious voyage with the joy a child feels when he embarks in a little\r\nboat, with his holiday mates, on an expedition of discovery up his\r\nnative river. But supposing all these conjectures to be false, you\r\ncannot contest the inestimable benefit which I shall confer on all\r\nmankind, to the last generation, by discovering a passage near the pole\r\nto those countries, to reach which at present so many months are\r\nrequisite; or by ascertaining the secret of the magnet, which, if at\r\nall possible, can only be effected by an undertaking such as mine.\r\n\r\nThese reflections have dispelled the agitation with which I began my\r\nletter, and I feel my heart glow with an enthusiasm which elevates me\r\nto heaven, for nothing contributes so much to tranquillise the mind as\r\na steady purpose—a point on which the soul may fix its intellectual\r\neye. This expedition has been the favourite dream of my early years. I\r\nhave read with ardour the accounts of the various voyages which have\r\nbeen made in the prospect of arriving at the North Pacific Ocean\r\nthrough the seas which surround the pole. You may remember that a\r\nhistory of all the voyages made for purposes of discovery composed the\r\nwhole of our good Uncle Thomas’ library. My education was neglected,\r\nyet I was passionately fond of reading. These volumes were my study\r\nday and night, and my familiarity with them increased that regret which\r\nI had felt, as a child, on learning that my father’s dying injunction\r\nhad forbidden my uncle to allow me to embark in a seafaring life.\r\n\r\nThese visions faded when I perused, for the first time, those poets\r\nwhose effusions entranced my soul and lifted it to heaven. I also\r\nbecame a poet and for one year lived in a paradise of my own creation;\r\nI imagined that I also might obtain a niche in the temple where the\r\nnames of Homer and Shakespeare are consecrated. You are well\r\nacquainted with my failure and how heavily I bore the disappointment.\r\nBut just at that time I inherited the fortune of my cousin, and my\r\nthoughts were turned into the channel of their earlier bent.\r\n\r\nSix years have passed since I resolved on my present undertaking. I\r\ncan, even now, remember the hour from which I dedicated myself to this\r\ngreat enterprise. I commenced by inuring my body to hardship. I\r\naccompanied the whale-fishers on several expeditions to the North Sea;\r\nI voluntarily endured cold, famine, thirst, and want of sleep; I often\r\nworked harder than the common sailors during the day and devoted my\r\nnights to the study of mathematics, the theory of medicine, and those\r\nbranches of physical science from which a naval adventurer might derive\r\nthe greatest practical advantage. Twice I actually hired myself as an\r\nunder-mate in a Greenland whaler, and acquitted myself to admiration. I\r\nmust own I felt a little proud when my captain offered me the second\r\ndignity in the vessel and entreated me to remain with the greatest\r\nearnestness, so valuable did he consider my services.\r\n\r\nAnd now, dear Margaret, do I not deserve to accomplish some great purpose?\r\nMy life might have been passed in ease and luxury, but I preferred glory to\r\nevery enticement that wealth placed in my path. Oh, that some encouraging\r\nvoice would answer in the affirmative! My courage and my resolution is\r\nfirm; but my hopes fluctuate, and my spirits are often depressed. I am\r\nabout to proceed on a long and difficult voyage, the emergencies of which\r\nwill demand all my fortitude: I am required not only to raise the spirits\r\nof others, but sometimes to sustain my own, when theirs are failing.\r\n\r\nThis is the most favourable period for travelling in Russia. They fly\r\nquickly over the snow in their sledges; the motion is pleasant, and, in\r\nmy opinion, far more agreeable than that of an English stagecoach. The\r\ncold is not excessive, if you are wrapped in furs—a dress which I have\r\nalready adopted, for there is a great difference between walking the\r\ndeck and remaining seated motionless for hours, when no exercise\r\nprevents the blood from actually freezing in your veins. I have no\r\nambition to lose my life on the post-road between St. Petersburgh and\r\nArchangel.\r\n\r\nI shall depart for the latter town in a fortnight or three weeks; and my\r\nintention is to hire a ship there, which can easily be done by paying the\r\ninsurance for the owner, and to engage as many sailors as I think necessary\r\namong those who are accustomed to the whale-fishing. I do not intend to\r\nsail until the month of June; and when shall I return? Ah, dear sister, how\r\ncan I answer this question? If I succeed, many, many months, perhaps years,\r\nwill pass before you and I may meet. If I fail, you will see me again soon,\r\nor never.\r\n\r\nFarewell, my dear, excellent Margaret. Heaven shower down blessings on you,\r\nand save me, that I may again and again testify my gratitude for all your\r\nlove and kindness.\r\n\r\nYour affectionate brother,\r\n\r\nR. Walton\r\n\r\n\r\n\r\n\r\nLetter 2\r\n\r\n_To Mrs. Saville, England._\r\n\r\nArchangel, 28th March, 17—.\r\n\r\n\r\nHow slowly the time passes here, encompassed as I am by frost and snow!\r\nYet a second step is taken towards my enterprise. I have hired a\r\nvessel and am occupied in collecting my sailors; those whom I have\r\nalready engaged appear to be men on whom I can depend and are certainly\r\npossessed of dauntless courage.\r\n\r\nBut I have one want which I have never yet been able to satisfy, and the\r\nabsence of the object of which I now feel as a most severe evil, I have no\r\nfriend, Margaret: when I am glowing with the enthusiasm of success, there\r\nwill be none to participate my joy; if I am assailed by disappointment, no\r\none will endeavour to sustain me in dejection. I shall commit my thoughts\r\nto paper, it is true; but that is a poor medium for the communication of\r\nfeeling. I desire the company of a man who could sympathise with me, whose\r\neyes would reply to mine. You may deem me romantic, my dear sister, but I\r\nbitterly feel the want of a friend. I have no one near me, gentle yet\r\ncourageous, possessed of a cultivated as well as of a capacious mind, whose\r\ntastes are like my own, to approve or amend my plans. How would such a\r\nfriend repair the faults of your poor brother! I am too ardent in execution\r\nand too impatient of difficulties. But it is a still greater evil to me\r\nthat I am self-educated: for the first fourteen years of my life I ran wild\r\non a common and read nothing but our Uncle Thomas’ books of voyages.\r\nAt that age I became acquainted with the celebrated poets of our own\r\ncountry; but it was only when it had ceased to be in my power to derive its\r\nmost important benefits from such a conviction that I perceived the\r\nnecessity of becoming acquainted with more languages than that of my native\r\ncountry. Now I am twenty-eight and am in reality more illiterate than many\r\nschoolboys of fifteen. It is true that I have thought more and that my\r\ndaydreams are more extended and magnificent, but they want (as the painters\r\ncall it) _keeping;_ and I greatly need a friend who would have sense\r\nenough not to despise me as romantic, and affection enough for me to\r\nendeavour to regulate my mind.\r\n\r\nWell, these are useless complaints; I shall certainly find no friend on the\r\nwide ocean, nor even here in Archangel, among merchants and seamen. Yet\r\nsome feelings, unallied to the dross of human nature, beat even in these\r\nrugged bosoms. My lieutenant, for instance, is a man of wonderful courage\r\nand enterprise; he is madly desirous of glory, or rather, to word my phrase\r\nmore characteristically, of advancement in his profession. He is an\r\nEnglishman, and in the midst of national and professional prejudices,\r\nunsoftened by cultivation, retains some of the noblest endowments of\r\nhumanity. I first became acquainted with him on board a whale vessel;\r\nfinding that he was unemployed in this city, I easily engaged him to assist\r\nin my enterprise.\r\n\r\nThe master is a person of an excellent disposition and is remarkable in the\r\nship for his gentleness and the mildness of his discipline. This\r\ncircumstance, added to his well-known integrity and dauntless courage, made\r\nme very desirous to engage him. A youth passed in solitude, my best years\r\nspent under your gentle and feminine fosterage, has so refined the\r\ngroundwork of my character that I cannot overcome an intense distaste to\r\nthe usual brutality exercised on board ship: I have never believed it to be\r\nnecessary, and when I heard of a mariner equally noted for his kindliness\r\nof heart and the respect and obedience paid to him by his crew, I felt\r\nmyself peculiarly fortunate in being able to secure his services. I heard\r\nof him first in rather a romantic manner, from a lady who owes to him the\r\nhappiness of her life. This, briefly, is his story. Some years ago he loved\r\na young Russian lady of moderate fortune, and having amassed a considerable\r\nsum in prize-money, the father of the girl consented to the match. He saw\r\nhis mistress once before the destined ceremony; but she was bathed in\r\ntears, and throwing herself at his feet, entreated him to spare her,\r\nconfessing at the same time that she loved another, but that he was poor,\r\nand that her father would never consent to the union. My generous friend\r\nreassured the suppliant, and on being informed of the name of her lover,\r\ninstantly abandoned his pursuit. He had already bought a farm with his\r\nmoney, on which he had designed to pass the remainder of his life; but he\r\nbestowed the whole on his rival, together with the remains of his\r\nprize-money to purchase stock, and then himself solicited the young\r\nwoman’s father to consent to her marriage with her lover. But the old\r\nman decidedly refused, thinking himself bound in honour to my friend, who,\r\nwhen he found the father inexorable, quitted his country, nor returned\r\nuntil he heard that his former mistress was married according to her\r\ninclinations. “What a noble fellow!” you will exclaim. He is\r\nso; but then he is wholly uneducated: he is as silent as a Turk, and a kind\r\nof ignorant carelessness attends him, which, while it renders his conduct\r\nthe more astonishing, detracts from the interest and sympathy which\r\notherwise he would command.\r\n\r\nYet do not suppose, because I complain a little or because I can\r\nconceive a consolation for my toils which I may never know, that I am\r\nwavering in my resolutions. Those are as fixed as fate, and my voyage\r\nis only now delayed until the weather shall permit my embarkation. The\r\nwinter has been dreadfully severe, but the spring promises well, and it\r\nis considered as a remarkably early season, so that perhaps I may sail\r\nsooner than I expected. I shall do nothing rashly: you know me\r\nsufficiently to confide in my prudence and considerateness whenever the\r\nsafety of others is committed to my care.\r\n\r\nI cannot describe to you my sensations on the near prospect of my\r\nundertaking. It is impossible to communicate to you a conception of\r\nthe trembling sensation, half pleasurable and half fearful, with which\r\nI am preparing to depart. I am going to unexplored regions, to “the\r\nland of mist and snow,” but I shall kill no albatross; therefore do not\r\nbe alarmed for my safety or if I should come back to you as worn and\r\nwoeful as the “Ancient Mariner.” You will smile at my allusion, but I\r\nwill disclose a secret. I have often attributed my attachment to, my\r\npassionate enthusiasm for, the dangerous mysteries of ocean to that\r\nproduction of the most imaginative of modern poets. There is something\r\nat work in my soul which I do not understand. I am practically\r\nindustrious—painstaking, a workman to execute with perseverance and\r\nlabour—but besides this there is a love for the marvellous, a belief\r\nin the marvellous, intertwined in all my projects, which hurries me out\r\nof the common pathways of men, even to the wild sea and unvisited\r\nregions I am about to explore.\r\n\r\nBut to return to dearer considerations. Shall I meet you again, after\r\nhaving traversed immense seas, and returned by the most southern cape of\r\nAfrica or America? I dare not expect such success, yet I cannot bear to\r\nlook on the reverse of the picture. Continue for the present to write to\r\nme by every opportunity: I may receive your letters on some occasions when\r\nI need them most to support my spirits. I love you very tenderly. \r\nRemember me with affection, should you never hear from me again.\r\n\r\nYour affectionate brother,\r\n Robert Walton\r\n\r\n\r\n\r\n\r\nLetter 3\r\n\r\n_To Mrs. Saville, England._\r\n\r\nJuly 7th, 17—.\r\n\r\n\r\nMy dear Sister,\r\n\r\nI write a few lines in haste to say that I am safe—and well advanced\r\non my voyage. This letter will reach England by a merchantman now on\r\nits homeward voyage from Archangel; more fortunate than I, who may not\r\nsee my native land, perhaps, for many years. I am, however, in good\r\nspirits: my men are bold and apparently firm of purpose, nor do the\r\nfloating sheets of ice that continually pass us, indicating the dangers\r\nof the region towards which we are advancing, appear to dismay them. We\r\nhave already reached a very high latitude; but it is the height of\r\nsummer, and although not so warm as in England, the southern gales,\r\nwhich blow us speedily towards those shores which I so ardently desire\r\nto attain, breathe a degree of renovating warmth which I had not\r\nexpected.\r\n\r\nNo incidents have hitherto befallen us that would make a figure in a\r\nletter. One or two stiff gales and the springing of a leak are\r\naccidents which experienced navigators scarcely remember to record, and\r\nI shall be well content if nothing worse happen to us during our voyage.\r\n\r\nAdieu, my dear Margaret. Be assured that for my own sake, as well as\r\nyours, I will not rashly encounter danger. I will be cool,\r\npersevering, and prudent.\r\n\r\nBut success _shall_ crown my endeavours. Wherefore not? Thus far I\r\nhave gone, tracing a secure way over the pathless seas, the very stars\r\nthemselves being witnesses and testimonies of my triumph. Why not\r\nstill proceed over the untamed yet obedient element? What can stop the\r\ndetermined heart and resolved will of man?\r\n\r\nMy swelling heart involuntarily pours itself out thus. But I must\r\nfinish. Heaven bless my beloved sister!\r\n\r\nR.W.\r\n\r\n\r\n\r\n\r\nLetter 4\r\n\r\n\r\n_To Mrs. Saville, England._\r\n\r\nAugust 5th, 17—.\r\n\r\nSo strange an accident has happened to us that I cannot forbear\r\nrecording it, although it is very probable that you will see me before\r\nthese papers can come into your possession.\r\n\r\nLast Monday (July 31st) we were nearly surrounded by ice, which closed\r\nin the ship on all sides, scarcely leaving her the sea-room in which\r\nshe floated. Our situation was somewhat dangerous, especially as we\r\nwere compassed round by a very thick fog. We accordingly lay to,\r\nhoping that some change would take place in the atmosphere and weather.\r\n\r\nAbout two o’clock the mist cleared away, and we beheld, stretched out\r\nin every direction, vast and irregular plains of ice, which seemed to\r\nhave no end. Some of my comrades groaned, and my own mind began to\r\ngrow watchful with anxious thoughts, when a strange sight suddenly\r\nattracted our attention and diverted our solicitude from our own\r\nsituation. We perceived a low carriage, fixed on a sledge and drawn by\r\ndogs, pass on towards the north, at the distance of half a mile; a\r\nbeing which had the shape of a man, but apparently of gigantic stature,\r\nsat in the sledge and guided the dogs. We watched the rapid progress\r\nof the traveller with our telescopes until he was lost among the\r\ndistant inequalities of the ice.\r\n\r\nThis appearance excited our unqualified wonder. We were, as we believed,\r\nmany hundred miles from any land; but this apparition seemed to denote that\r\nit was not, in reality, so distant as we had supposed. Shut in, however, by\r\nice, it was impossible to follow his track, which we had observed with the\r\ngreatest attention.\r\n\r\nAbout two hours after this occurrence we heard the ground sea, and before\r\nnight the ice broke and freed our ship. We, however, lay to until the\r\nmorning, fearing to encounter in the dark those large loose masses which\r\nfloat about after the breaking up of the ice. I profited of this time to\r\nrest for a few hours.\r\n\r\nIn the morning, however, as soon as it was light, I went upon deck and\r\nfound all the sailors busy on one side of the vessel, apparently\r\ntalking to someone in the sea. It was, in fact, a sledge, like that we\r\nhad seen before, which had drifted towards us in the night on a large\r\nfragment of ice. Only one dog remained alive; but there was a human\r\nbeing within it whom the sailors were persuading to enter the vessel.\r\nHe was not, as the other traveller seemed to be, a savage inhabitant of\r\nsome undiscovered island, but a European. When I appeared on deck the\r\nmaster said, “Here is our captain, and he will not allow you to perish\r\non the open sea.”\r\n\r\nOn perceiving me, the stranger addressed me in English, although with a\r\nforeign accent. “Before I come on board your vessel,” said he,\r\n“will you have the kindness to inform me whither you are bound?”\r\n\r\nYou may conceive my astonishment on hearing such a question addressed\r\nto me from a man on the brink of destruction and to whom I should have\r\nsupposed that my vessel would have been a resource which he would not\r\nhave exchanged for the most precious wealth the earth can afford. I\r\nreplied, however, that we were on a voyage of discovery towards the\r\nnorthern pole.\r\n\r\nUpon hearing this he appeared satisfied and consented to come on board.\r\nGood God! Margaret, if you had seen the man who thus capitulated for\r\nhis safety, your surprise would have been boundless. His limbs were\r\nnearly frozen, and his body dreadfully emaciated by fatigue and\r\nsuffering. I never saw a man in so wretched a condition. We attempted\r\nto carry him into the cabin, but as soon as he had quitted the fresh\r\nair he fainted. We accordingly brought him back to the deck and\r\nrestored him to animation by rubbing him with brandy and forcing him to\r\nswallow a small quantity. As soon as he showed signs of life we\r\nwrapped him up in blankets and placed him near the chimney of the\r\nkitchen stove. By slow degrees he recovered and ate a little soup,\r\nwhich restored him wonderfully.\r\n\r\nTwo days passed in this manner before he was able to speak, and I often\r\nfeared that his sufferings had deprived him of understanding. When he\r\nhad in some measure recovered, I removed him to my own cabin and\r\nattended on him as much as my duty would permit. I never saw a more\r\ninteresting creature: his eyes have generally an expression of\r\nwildness, and even madness, but there are moments when, if anyone\r\nperforms an act of kindness towards him or does him any the most\r\ntrifling service, his whole countenance is lighted up, as it were, with\r\na beam of benevolence and sweetness that I never saw equalled. But he\r\nis generally melancholy and despairing, and sometimes he gnashes his\r\nteeth, as if impatient of the weight of woes that oppresses him.\r\n\r\nWhen my guest was a little recovered I had great trouble to keep off\r\nthe men, who wished to ask him a thousand questions; but I would not\r\nallow him to be tormented by their idle curiosity, in a state of body\r\nand mind whose restoration evidently depended upon entire repose.\r\nOnce, however, the lieutenant asked why he had come so far upon the ice\r\nin so strange a vehicle.\r\n\r\nHis countenance instantly assumed an aspect of the deepest gloom, and\r\nhe replied, “To seek one who fled from me.”\r\n\r\n“And did the man whom you pursued travel in the same fashion?”\r\n\r\n“Yes.”\r\n\r\n“Then I fancy we have seen him, for the day before we picked you up we\r\nsaw some dogs drawing a sledge, with a man in it, across the ice.”\r\n\r\nThis aroused the stranger’s attention, and he asked a multitude of\r\nquestions concerning the route which the dæmon, as he called him, had\r\npursued. Soon after, when he was alone with me, he said, “I have,\r\ndoubtless, excited your curiosity, as well as that of these good\r\npeople; but you are too considerate to make inquiries.”\r\n\r\n“Certainly; it would indeed be very impertinent and inhuman in me to\r\ntrouble you with any inquisitiveness of mine.”\r\n\r\n“And yet you rescued me from a strange and perilous situation; you have\r\nbenevolently restored me to life.”\r\n\r\nSoon after this he inquired if I thought that the breaking up of the\r\nice had destroyed the other sledge. I replied that I could not answer\r\nwith any degree of certainty, for the ice had not broken until near\r\nmidnight, and the traveller might have arrived at a place of safety\r\nbefore that time; but of this I could not judge.\r\n\r\nFrom this time a new spirit of life animated the decaying frame of the\r\nstranger. He manifested the greatest eagerness to be upon deck to watch for\r\nthe sledge which had before appeared; but I have persuaded him to remain in\r\nthe cabin, for he is far too weak to sustain the rawness of the atmosphere.\r\nI have promised that someone should watch for him and give him instant\r\nnotice if any new object should appear in sight.\r\n\r\nSuch is my journal of what relates to this strange occurrence up to the\r\npresent day. The stranger has gradually improved in health but is very\r\nsilent and appears uneasy when anyone except myself enters his cabin.\r\nYet his manners are so conciliating and gentle that the sailors are all\r\ninterested in him, although they have had very little communication\r\nwith him. For my own part, I begin to love him as a brother, and his\r\nconstant and deep grief fills me with sympathy and compassion. He must\r\nhave been a noble creature in his better days, being even now in wreck\r\nso attractive and amiable.\r\n\r\nI said in one of my letters, my dear Margaret, that I should find no friend\r\non the wide ocean; yet I have found a man who, before his spirit had been\r\nbroken by misery, I should have been happy to have possessed as the brother\r\nof my heart.\r\n\r\nI shall continue my journal concerning the stranger at intervals,\r\nshould I have any fresh incidents to record.\r\n\r\n\r\n\r\n\r\nAugust 13th, 17—.\r\n\r\n\r\nMy affection for my guest increases every day. He excites at once my\r\nadmiration and my pity to an astonishing degree. How can I see so\r\nnoble a creature destroyed by misery without feeling the most poignant\r\ngrief? He is so gentle, yet so wise; his mind is so cultivated, and\r\nwhen he speaks, although his words are culled with the choicest art,\r\nyet they flow with rapidity and unparalleled eloquence.\r\n\r\nHe is now much recovered from his illness and is continually on the deck,\r\napparently watching for the sledge that preceded his own. Yet, although\r\nunhappy, he is not so utterly occupied by his own misery but that he\r\ninterests himself deeply in the projects of others. He has frequently\r\nconversed with me on mine, which I have communicated to him without\r\ndisguise. He entered attentively into all my arguments in favour of my\r\neventual success and into every minute detail of the measures I had taken\r\nto secure it. I was easily led by the sympathy which he evinced to use the\r\nlanguage of my heart, to give utterance to the burning ardour of my soul\r\nand to say, with all the fervour that warmed me, how gladly I would\r\nsacrifice my fortune, my existence, my every hope, to the furtherance of my\r\nenterprise. One man’s life or death were but a small price to pay for\r\nthe acquirement of the knowledge which I sought, for the dominion I should\r\nacquire and transmit over the elemental foes of our race. As I spoke, a\r\ndark gloom spread over my listener’s countenance. At first I\r\nperceived that he tried to suppress his emotion; he placed his hands before\r\nhis eyes, and my voice quivered and failed me as I beheld tears trickle\r\nfast from between his fingers; a groan burst from his heaving breast. I\r\npaused; at length he spoke, in broken accents: “Unhappy man! Do you\r\nshare my madness? Have you drunk also of the intoxicating draught? Hear me;\r\nlet me reveal my tale, and you will dash the cup from your lips!”\r\n\r\nSuch words, you may imagine, strongly excited my curiosity; but the\r\nparoxysm of grief that had seized the stranger overcame his weakened\r\npowers, and many hours of repose and tranquil conversation were\r\nnecessary to restore his composure.\r\n\r\nHaving conquered the violence of his feelings, he appeared to despise\r\nhimself for being the slave of passion; and quelling the dark tyranny of\r\ndespair, he led me again to converse concerning myself personally. He asked\r\nme the history of my earlier years. The tale was quickly told, but it\r\nawakened various trains of reflection. I spoke of my desire of finding a\r\nfriend, of my thirst for a more intimate sympathy with a fellow mind than\r\nhad ever fallen to my lot, and expressed my conviction that a man could\r\nboast of little happiness who did not enjoy this blessing.\r\n\r\n“I agree with you,” replied the stranger; “we are\r\nunfashioned creatures, but half made up, if one wiser, better, dearer than\r\nourselves—such a friend ought to be—do not lend his aid to\r\nperfectionate our weak and faulty natures. I once had a friend, the most\r\nnoble of human creatures, and am entitled, therefore, to judge respecting\r\nfriendship. You have hope, and the world before you, and have no cause for\r\ndespair. But I—I have lost everything and cannot begin life\r\nanew.”\r\n\r\nAs he said this his countenance became expressive of a calm, settled\r\ngrief that touched me to the heart. But he was silent and presently\r\nretired to his cabin.\r\n\r\nEven broken in spirit as he is, no one can feel more deeply than he\r\ndoes the beauties of nature. The starry sky, the sea, and every sight\r\nafforded by these wonderful regions seem still to have the power of\r\nelevating his soul from earth. Such a man has a double existence: he\r\nmay suffer misery and be overwhelmed by disappointments, yet when he\r\nhas retired into himself, he will be like a celestial spirit that has a\r\nhalo around him, within whose circle no grief or folly ventures.\r\n\r\nWill you smile at the enthusiasm I express concerning this divine\r\nwanderer? You would not if you saw him. You have been tutored and\r\nrefined by books and retirement from the world, and you are therefore\r\nsomewhat fastidious; but this only renders you the more fit to\r\nappreciate the extraordinary merits of this wonderful man. Sometimes I\r\nhave endeavoured to discover what quality it is which he possesses that\r\nelevates him so immeasurably above any other person I ever knew. I\r\nbelieve it to be an intuitive discernment, a quick but never-failing\r\npower of judgment, a penetration into the causes of things, unequalled\r\nfor clearness and precision; add to this a facility of expression and a\r\nvoice whose varied intonations are soul-subduing music.\r\n\r\n\r\n\r\n\r\nAugust 19th, 17—.\r\n\r\n\r\nYesterday the stranger said to me, “You may easily perceive, Captain\r\nWalton, that I have suffered great and unparalleled misfortunes. I had\r\ndetermined at one time that the memory of these evils should die with\r\nme, but you have won me to alter my determination. You seek for\r\nknowledge and wisdom, as I once did; and I ardently hope that the\r\ngratification of your wishes may not be a serpent to sting you, as mine\r\nhas been. I do not know that the relation of my disasters will be\r\nuseful to you; yet, when I reflect that you are pursuing the same\r\ncourse, exposing yourself to the same dangers which have rendered me\r\nwhat I am, I imagine that you may deduce an apt moral from my tale, one\r\nthat may direct you if you succeed in your undertaking and console you\r\nin case of failure. Prepare to hear of occurrences which are usually\r\ndeemed marvellous. Were we among the tamer scenes of nature I might\r\nfear to encounter your unbelief, perhaps your ridicule; but many things\r\nwill appear possible in these wild and mysterious regions which would\r\nprovoke the laughter of those unacquainted with the ever-varied powers\r\nof nature; nor can I doubt but that my tale conveys in its series\r\ninternal evidence of the truth of the events of which it is composed.”\r\n\r\nYou may easily imagine that I was much gratified by the offered\r\ncommunication, yet I could not endure that he should renew his grief by\r\na recital of his misfortunes. I felt the greatest eagerness to hear\r\nthe promised narrative, partly from curiosity and partly from a strong\r\ndesire to ameliorate his fate if it were in my power. I expressed\r\nthese feelings in my answer.\r\n\r\n“I thank you,” he replied, “for your sympathy, but it is\r\nuseless; my fate is nearly fulfilled. I wait but for one event, and then I\r\nshall repose in peace. I understand your feeling,” continued he,\r\nperceiving that I wished to interrupt him; “but you are mistaken, my\r\nfriend, if thus you will allow me to name you; nothing can alter my\r\ndestiny; listen to my history, and you will perceive how irrevocably it is\r\ndetermined.”\r\n\r\nHe then told me that he would commence his narrative the next day when I\r\nshould be at leisure. This promise drew from me the warmest thanks. I have\r\nresolved every night, when I am not imperatively occupied by my duties, to\r\nrecord, as nearly as possible in his own words, what he has related during\r\nthe day. If I should be engaged, I will at least make notes. This\r\nmanuscript will doubtless afford you the greatest pleasure; but to me, who\r\nknow him, and who hear it from his own lips—with what interest and\r\nsympathy shall I read it in some future day! Even now, as I commence my\r\ntask, his full-toned voice swells in my ears; his lustrous eyes dwell on me\r\nwith all their melancholy sweetness; I see his thin hand raised in\r\nanimation, while the lineaments of his face are irradiated by the soul\r\nwithin. Strange and harrowing must be his story, frightful the storm which\r\nembraced the gallant vessel on its course and wrecked it—thus!\r\n\r\n\r\n\r\n\r\nChapter 1\r\n\r\n\r\nI am by birth a Genevese, and my family is one of the most\r\ndistinguished of that republic. My ancestors had been for many years\r\ncounsellors and syndics, and my father had filled several public\r\nsituations with honour and reputation. He was respected by all who\r\nknew him for his integrity and indefatigable attention to public\r\nbusiness. He passed his younger days perpetually occupied by the\r\naffairs of his country; a variety of circumstances had prevented his\r\nmarrying early, nor was it until the decline of life that he became a\r\nhusband and the father of a family.\r\n\r\nAs the circumstances of his marriage illustrate his character, I cannot\r\nrefrain from relating them. One of his most intimate friends was a\r\nmerchant who, from a flourishing state, fell, through numerous\r\nmischances, into poverty. This man, whose name was Beaufort, was of a\r\nproud and unbending disposition and could not bear to live in poverty\r\nand oblivion in the same country where he had formerly been\r\ndistinguished for his rank and magnificence. Having paid his debts,\r\ntherefore, in the most honourable manner, he retreated with his\r\ndaughter to the town of Lucerne, where he lived unknown and in\r\nwretchedness. My father loved Beaufort with the truest friendship and\r\nwas deeply grieved by his retreat in these unfortunate circumstances.\r\nHe bitterly deplored the false pride which led his friend to a conduct\r\nso little worthy of the affection that united them. He lost no time in\r\nendeavouring to seek him out, with the hope of persuading him to begin\r\nthe world again through his credit and assistance.\r\n\r\nBeaufort had taken effectual measures to conceal himself, and it was ten\r\nmonths before my father discovered his abode. Overjoyed at this discovery,\r\nhe hastened to the house, which was situated in a mean street near the\r\nReuss. But when he entered, misery and despair alone welcomed him. Beaufort\r\nhad saved but a very small sum of money from the wreck of his fortunes, but\r\nit was sufficient to provide him with sustenance for some months, and in\r\nthe meantime he hoped to procure some respectable employment in a\r\nmerchant’s house. The interval was, consequently, spent in inaction;\r\nhis grief only became more deep and rankling when he had leisure for\r\nreflection, and at length it took so fast hold of his mind that at the end\r\nof three months he lay on a bed of sickness, incapable of any exertion.\r\n\r\nHis daughter attended him with the greatest tenderness, but she saw\r\nwith despair that their little fund was rapidly decreasing and that\r\nthere was no other prospect of support. But Caroline Beaufort\r\npossessed a mind of an uncommon mould, and her courage rose to support\r\nher in her adversity. She procured plain work; she plaited straw and\r\nby various means contrived to earn a pittance scarcely sufficient to\r\nsupport life.\r\n\r\nSeveral months passed in this manner. Her father grew worse; her time\r\nwas more entirely occupied in attending him; her means of subsistence\r\ndecreased; and in the tenth month her father died in her arms, leaving\r\nher an orphan and a beggar. This last blow overcame her, and she knelt\r\nby Beaufort’s coffin weeping bitterly, when my father entered the\r\nchamber. He came like a protecting spirit to the poor girl, who\r\ncommitted herself to his care; and after the interment of his friend he\r\nconducted her to Geneva and placed her under the protection of a\r\nrelation. Two years after this event Caroline became his wife.\r\n\r\nThere was a considerable difference between the ages of my parents, but\r\nthis circumstance seemed to unite them only closer in bonds of devoted\r\naffection. There was a sense of justice in my father’s upright mind\r\nwhich rendered it necessary that he should approve highly to love\r\nstrongly. Perhaps during former years he had suffered from the\r\nlate-discovered unworthiness of one beloved and so was disposed to set\r\na greater value on tried worth. There was a show of gratitude and\r\nworship in his attachment to my mother, differing wholly from the\r\ndoting fondness of age, for it was inspired by reverence for her\r\nvirtues and a desire to be the means of, in some degree, recompensing\r\nher for the sorrows she had endured, but which gave inexpressible grace\r\nto his behaviour to her. Everything was made to yield to her wishes\r\nand her convenience. He strove to shelter her, as a fair exotic is\r\nsheltered by the gardener, from every rougher wind and to surround her\r\nwith all that could tend to excite pleasurable emotion in her soft and\r\nbenevolent mind. Her health, and even the tranquillity of her hitherto\r\nconstant spirit, had been shaken by what she had gone through. During\r\nthe two years that had elapsed previous to their marriage my father had\r\ngradually relinquished all his public functions; and immediately after\r\ntheir union they sought the pleasant climate of Italy, and the change\r\nof scene and interest attendant on a tour through that land of wonders,\r\nas a restorative for her weakened frame.\r\n\r\nFrom Italy they visited Germany and France. I, their eldest child, was born\r\nat Naples, and as an infant accompanied them in their rambles. I remained\r\nfor several years their only child. Much as they were attached to each\r\nother, they seemed to draw inexhaustible stores of affection from a very\r\nmine of love to bestow them upon me. My mother’s tender caresses and\r\nmy father’s smile of benevolent pleasure while regarding me are my\r\nfirst recollections. I was their plaything and their idol, and something\r\nbetter—their child, the innocent and helpless creature bestowed on\r\nthem by Heaven, whom to bring up to good, and whose future lot it was in\r\ntheir hands to direct to happiness or misery, according as they fulfilled\r\ntheir duties towards me. With this deep consciousness of what they owed\r\ntowards the being to which they had given life, added to the active spirit\r\nof tenderness that animated both, it may be imagined that while during\r\nevery hour of my infant life I received a lesson of patience, of charity,\r\nand of self-control, I was so guided by a silken cord that all seemed but\r\none train of enjoyment to me.\r\n\r\nFor a long time I was their only care. My mother had much desired to have a\r\ndaughter, but I continued their single offspring. When I was about five\r\nyears old, while making an excursion beyond the frontiers of Italy, they\r\npassed a week on the shores of the Lake of Como. Their benevolent\r\ndisposition often made them enter the cottages of the poor. This, to my\r\nmother, was more than a duty; it was a necessity, a\r\npassion—remembering what she had suffered, and how she had been\r\nrelieved—for her to act in her turn the guardian angel to the\r\nafflicted. During one of their walks a poor cot in the foldings of a vale\r\nattracted their notice as being singularly disconsolate, while the number\r\nof half-clothed children gathered about it spoke of penury in its worst\r\nshape. One day, when my father had gone by himself to Milan, my mother,\r\naccompanied by me, visited this abode. She found a peasant and his wife,\r\nhard working, bent down by care and labour, distributing a scanty meal to\r\nfive hungry babes. Among these there was one which attracted my mother far\r\nabove all the rest. She appeared of a different stock. The four others were\r\ndark-eyed, hardy little vagrants; this child was thin and very fair. Her\r\nhair was the brightest living gold, and despite the poverty of her\r\nclothing, seemed to set a crown of distinction on her head. Her brow was\r\nclear and ample, her blue eyes cloudless, and her lips and the moulding of\r\nher face so expressive of sensibility and sweetness that none could behold\r\nher without looking on her as of a distinct species, a being heaven-sent,\r\nand bearing a celestial stamp in all her features.\r\n\r\nThe peasant woman, perceiving that my mother fixed eyes of wonder and\r\nadmiration on this lovely girl, eagerly communicated her history. She was\r\nnot her child, but the daughter of a Milanese nobleman. Her mother was a\r\nGerman and had died on giving her birth. The infant had been placed with\r\nthese good people to nurse: they were better off then. They had not been\r\nlong married, and their eldest child was but just born. The father of their\r\ncharge was one of those Italians nursed in the memory of the antique glory\r\nof Italy—one among the _schiavi ognor frementi,_ who exerted\r\nhimself to obtain the liberty of his country. He became the victim of its\r\nweakness. Whether he had died or still lingered in the dungeons of Austria\r\nwas not known. His property was confiscated; his child became an orphan and\r\na beggar. She continued with her foster parents and bloomed in their rude\r\nabode, fairer than a garden rose among dark-leaved brambles.\r\n\r\nWhen my father returned from Milan, he found playing with me in the hall of\r\nour villa a child fairer than pictured cherub—a creature who seemed\r\nto shed radiance from her looks and whose form and motions were lighter\r\nthan the chamois of the hills. The apparition was soon explained. With his\r\npermission my mother prevailed on her rustic guardians to yield their\r\ncharge to her. They were fond of the sweet orphan. Her presence had seemed\r\na blessing to them, but it would be unfair to her to keep her in poverty\r\nand want when Providence afforded her such powerful protection. They\r\nconsulted their village priest, and the result was that Elizabeth Lavenza\r\nbecame the inmate of my parents’ house—my more than\r\nsister—the beautiful and adored companion of all my occupations and\r\nmy pleasures.\r\n\r\nEveryone loved Elizabeth. The passionate and almost reverential\r\nattachment with which all regarded her became, while I shared it, my\r\npride and my delight. On the evening previous to her being brought to\r\nmy home, my mother had said playfully, “I have a pretty present for my\r\nVictor—tomorrow he shall have it.” And when, on the morrow, she\r\npresented Elizabeth to me as her promised gift, I, with childish\r\nseriousness, interpreted her words literally and looked upon Elizabeth\r\nas mine—mine to protect, love, and cherish. All praises bestowed on\r\nher I received as made to a possession of my own. We called each other\r\nfamiliarly by the name of cousin. No word, no expression could body\r\nforth the kind of relation in which she stood to me—my more than\r\nsister, since till death she was to be mine only.\r\n\r\n\r\n\r\n\r\nChapter 2\r\n\r\n\r\nWe were brought up together; there was not quite a year difference in\r\nour ages. I need not say that we were strangers to any species of\r\ndisunion or dispute. Harmony was the soul of our companionship, and\r\nthe diversity and contrast that subsisted in our characters drew us\r\nnearer together. Elizabeth was of a calmer and more concentrated\r\ndisposition; but, with all my ardour, I was capable of a more intense\r\napplication and was more deeply smitten with the thirst for knowledge.\r\nShe busied herself with following the aerial creations of the poets;\r\nand in the majestic and wondrous scenes which surrounded our Swiss\r\nhome —the sublime shapes of the mountains, the changes of the seasons,\r\ntempest and calm, the silence of winter, and the life and turbulence of\r\nour Alpine summers—she found ample scope for admiration and delight.\r\nWhile my companion contemplated with a serious and satisfied spirit the\r\nmagnificent appearances of things, I delighted in investigating their\r\ncauses. The world was to me a secret which I desired to divine.\r\nCuriosity, earnest research to learn the hidden laws of nature,\r\ngladness akin to rapture, as they were unfolded to me, are among the\r\nearliest sensations I can remember.\r\n\r\nOn the birth of a second son, my junior by seven years, my parents gave\r\nup entirely their wandering life and fixed themselves in their native\r\ncountry. We possessed a house in Geneva, and a _campagne_ on Belrive,\r\nthe eastern shore of the lake, at the distance of rather more than a\r\nleague from the city. We resided principally in the latter, and the\r\nlives of my parents were passed in considerable seclusion. It was my\r\ntemper to avoid a crowd and to attach myself fervently to a few. I was\r\nindifferent, therefore, to my school-fellows in general; but I united\r\nmyself in the bonds of the closest friendship to one among them. Henry\r\nClerval was the son of a merchant of Geneva. He was a boy of singular\r\ntalent and fancy. He loved enterprise, hardship, and even danger for\r\nits own sake. He was deeply read in books of chivalry and romance. He\r\ncomposed heroic songs and began to write many a tale of enchantment and\r\nknightly adventure. He tried to make us act plays and to enter into\r\nmasquerades, in which the characters were drawn from the heroes of\r\nRoncesvalles, of the Round Table of King Arthur, and the chivalrous\r\ntrain who shed their blood to redeem the holy sepulchre from the hands\r\nof the infidels.\r\n\r\nNo human being could have passed a happier childhood than myself. My\r\nparents were possessed by the very spirit of kindness and indulgence.\r\nWe felt that they were not the tyrants to rule our lot according to\r\ntheir caprice, but the agents and creators of all the many delights\r\nwhich we enjoyed. When I mingled with other families I distinctly\r\ndiscerned how peculiarly fortunate my lot was, and gratitude assisted\r\nthe development of filial love.\r\n\r\nMy temper was sometimes violent, and my passions vehement; but by some\r\nlaw in my temperature they were turned not towards childish pursuits\r\nbut to an eager desire to learn, and not to learn all things\r\nindiscriminately. I confess that neither the structure of languages,\r\nnor the code of governments, nor the politics of various states\r\npossessed attractions for me. It was the secrets of heaven and earth\r\nthat I desired to learn; and whether it was the outward substance of\r\nthings or the inner spirit of nature and the mysterious soul of man\r\nthat occupied me, still my inquiries were directed to the metaphysical,\r\nor in its highest sense, the physical secrets of the world.\r\n\r\nMeanwhile Clerval occupied himself, so to speak, with the moral\r\nrelations of things. The busy stage of life, the virtues of heroes,\r\nand the actions of men were his theme; and his hope and his dream was\r\nto become one among those whose names are recorded in story as the\r\ngallant and adventurous benefactors of our species. The saintly soul\r\nof Elizabeth shone like a shrine-dedicated lamp in our peaceful home.\r\nHer sympathy was ours; her smile, her soft voice, the sweet glance of\r\nher celestial eyes, were ever there to bless and animate us. She was\r\nthe living spirit of love to soften and attract; I might have become\r\nsullen in my study, rough through the ardour of my nature, but that\r\nshe was there to subdue me to a semblance of her own gentleness. And\r\nClerval—could aught ill entrench on the noble spirit of Clerval? Yet\r\nhe might not have been so perfectly humane, so thoughtful in his\r\ngenerosity, so full of kindness and tenderness amidst his passion for\r\nadventurous exploit, had she not unfolded to him the real loveliness of\r\nbeneficence and made the doing good the end and aim of his soaring\r\nambition.\r\n\r\nI feel exquisite pleasure in dwelling on the recollections of childhood,\r\nbefore misfortune had tainted my mind and changed its bright visions of\r\nextensive usefulness into gloomy and narrow reflections upon self. Besides,\r\nin drawing the picture of my early days, I also record those events which\r\nled, by insensible steps, to my after tale of misery, for when I would\r\naccount to myself for the birth of that passion which afterwards ruled my\r\ndestiny I find it arise, like a mountain river, from ignoble and almost\r\nforgotten sources; but, swelling as it proceeded, it became the torrent\r\nwhich, in its course, has swept away all my hopes and joys.\r\n\r\nNatural philosophy is the genius that has regulated my fate; I desire,\r\ntherefore, in this narration, to state those facts which led to my\r\npredilection for that science. When I was thirteen years of age we all went\r\non a party of pleasure to the baths near Thonon; the inclemency of the\r\nweather obliged us to remain a day confined to the inn. In this house I\r\nchanced to find a volume of the works of Cornelius Agrippa. I opened it\r\nwith apathy; the theory which he attempts to demonstrate and the wonderful\r\nfacts which he relates soon changed this feeling into enthusiasm. A new\r\nlight seemed to dawn upon my mind, and bounding with joy, I communicated my\r\ndiscovery to my father. My father looked carelessly at the title page of my\r\nbook and said, “Ah! Cornelius Agrippa! My dear Victor, do not waste\r\nyour time upon this; it is sad trash.”\r\n\r\nIf, instead of this remark, my father had taken the pains to explain to me\r\nthat the principles of Agrippa had been entirely exploded and that a modern\r\nsystem of science had been introduced which possessed much greater powers\r\nthan the ancient, because the powers of the latter were chimerical, while\r\nthose of the former were real and practical, under such circumstances I\r\nshould certainly have thrown Agrippa aside and have contented my\r\nimagination, warmed as it was, by returning with greater ardour to my\r\nformer studies. It is even possible that the train of my ideas would never\r\nhave received the fatal impulse that led to my ruin. But the cursory glance\r\nmy father had taken of my volume by no means assured me that he was\r\nacquainted with its contents, and I continued to read with the greatest\r\navidity.\r\n\r\nWhen I returned home my first care was to procure the whole works of this\r\nauthor, and afterwards of Paracelsus and Albertus Magnus. I read and\r\nstudied the wild fancies of these writers with delight; they appeared to me\r\ntreasures known to few besides myself. I have described myself as always\r\nhaving been imbued with a fervent longing to penetrate the secrets of\r\nnature. In spite of the intense labour and wonderful discoveries of modern\r\nphilosophers, I always came from my studies discontented and unsatisfied.\r\nSir Isaac Newton is said to have avowed that he felt like a child picking\r\nup shells beside the great and unexplored ocean of truth. Those of his\r\nsuccessors in each branch of natural philosophy with whom I was acquainted\r\nappeared even to my boy’s apprehensions as tyros engaged in the same\r\npursuit.\r\n\r\nThe untaught peasant beheld the elements around him and was acquainted\r\nwith their practical uses. The most learned philosopher knew little\r\nmore. He had partially unveiled the face of Nature, but her immortal\r\nlineaments were still a wonder and a mystery. He might dissect,\r\nanatomise, and give names; but, not to speak of a final cause, causes\r\nin their secondary and tertiary grades were utterly unknown to him. I\r\nhad gazed upon the fortifications and impediments that seemed to keep\r\nhuman beings from entering the citadel of nature, and rashly and\r\nignorantly I had repined.\r\n\r\nBut here were books, and here were men who had penetrated deeper and knew\r\nmore. I took their word for all that they averred, and I became their\r\ndisciple. It may appear strange that such should arise in the eighteenth\r\ncentury; but while I followed the routine of education in the schools of\r\nGeneva, I was, to a great degree, self-taught with regard to my favourite\r\nstudies. My father was not scientific, and I was left to struggle with a\r\nchild’s blindness, added to a student’s thirst for knowledge.\r\nUnder the guidance of my new preceptors I entered with the greatest\r\ndiligence into the search of the philosopher’s stone and the elixir\r\nof life; but the latter soon obtained my undivided attention. Wealth was an\r\ninferior object, but what glory would attend the discovery if I could\r\nbanish disease from the human frame and render man invulnerable to any but\r\na violent death!\r\n\r\nNor were these my only visions. The raising of ghosts or devils was a\r\npromise liberally accorded by my favourite authors, the fulfilment of which\r\nI most eagerly sought; and if my incantations were always unsuccessful, I\r\nattributed the failure rather to my own inexperience and mistake than to a\r\nwant of skill or fidelity in my instructors. And thus for a time I was\r\noccupied by exploded systems, mingling, like an unadept, a thousand\r\ncontradictory theories and floundering desperately in a very slough of\r\nmultifarious knowledge, guided by an ardent imagination and childish\r\nreasoning, till an accident again changed the current of my ideas.\r\n\r\nWhen I was about fifteen years old we had retired to our house near\r\nBelrive, when we witnessed a most violent and terrible thunderstorm. It\r\nadvanced from behind the mountains of Jura, and the thunder burst at once\r\nwith frightful loudness from various quarters of the heavens. I remained,\r\nwhile the storm lasted, watching its progress with curiosity and delight.\r\nAs I stood at the door, on a sudden I beheld a stream of fire issue from an\r\nold and beautiful oak which stood about twenty yards from our house; and so\r\nsoon as the dazzling light vanished, the oak had disappeared, and nothing\r\nremained but a blasted stump. When we visited it the next morning, we found\r\nthe tree shattered in a singular manner. It was not splintered by the\r\nshock, but entirely reduced to thin ribbons of wood. I never beheld\r\nanything so utterly destroyed.\r\n\r\nBefore this I was not unacquainted with the more obvious laws of\r\nelectricity. On this occasion a man of great research in natural\r\nphilosophy was with us, and excited by this catastrophe, he entered on\r\nthe explanation of a theory which he had formed on the subject of\r\nelectricity and galvanism, which was at once new and astonishing to me.\r\nAll that he said threw greatly into the shade Cornelius Agrippa,\r\nAlbertus Magnus, and Paracelsus, the lords of my imagination; but by\r\nsome fatality the overthrow of these men disinclined me to pursue my\r\naccustomed studies. It seemed to me as if nothing would or could ever\r\nbe known. All that had so long engaged my attention suddenly grew\r\ndespicable. By one of those caprices of the mind which we are perhaps\r\nmost subject to in early youth, I at once gave up my former\r\noccupations, set down natural history and all its progeny as a deformed\r\nand abortive creation, and entertained the greatest disdain for a\r\nwould-be science which could never even step within the threshold of\r\nreal knowledge. In this mood of mind I betook myself to the\r\nmathematics and the branches of study appertaining to that science as\r\nbeing built upon secure foundations, and so worthy of my consideration.\r\n\r\nThus strangely are our souls constructed, and by such slight ligaments\r\nare we bound to prosperity or ruin. When I look back, it seems to me\r\nas if this almost miraculous change of inclination and will was the\r\nimmediate suggestion of the guardian angel of my life—the last effort\r\nmade by the spirit of preservation to avert the storm that was even\r\nthen hanging in the stars and ready to envelop me. Her victory was\r\nannounced by an unusual tranquillity and gladness of soul which\r\nfollowed the relinquishing of my ancient and latterly tormenting\r\nstudies. It was thus that I was to be taught to associate evil with\r\ntheir prosecution, happiness with their disregard.\r\n\r\nIt was a strong effort of the spirit of good, but it was ineffectual.\r\nDestiny was too potent, and her immutable laws had decreed my utter and\r\nterrible destruction.\r\n\r\n\r\n\r\n\r\nChapter 3\r\n\r\n\r\nWhen I had attained the age of seventeen my parents resolved that I\r\nshould become a student at the university of Ingolstadt. I had\r\nhitherto attended the schools of Geneva, but my father thought it\r\nnecessary for the completion of my education that I should be made\r\nacquainted with other customs than those of my native country. My\r\ndeparture was therefore fixed at an early date, but before the day\r\nresolved upon could arrive, the first misfortune of my life\r\noccurred—an omen, as it were, of my future misery.\r\n\r\nElizabeth had caught the scarlet fever; her illness was severe, and she was\r\nin the greatest danger. During her illness many arguments had been urged to\r\npersuade my mother to refrain from attending upon her. She had at first\r\nyielded to our entreaties, but when she heard that the life of her\r\nfavourite was menaced, she could no longer control her anxiety. She\r\nattended her sickbed; her watchful attentions triumphed over the malignity\r\nof the distemper—Elizabeth was saved, but the consequences of this\r\nimprudence were fatal to her preserver. On the third day my mother\r\nsickened; her fever was accompanied by the most alarming symptoms, and the\r\nlooks of her medical attendants prognosticated the worst event. On her\r\ndeathbed the fortitude and benignity of this best of women did not desert\r\nher. She joined the hands of Elizabeth and myself. “My\r\nchildren,” she said, “my firmest hopes of future happiness were\r\nplaced on the prospect of your union. This expectation will now be the\r\nconsolation of your father. Elizabeth, my love, you must supply my place to\r\nmy younger children. Alas! I regret that I am taken from you; and, happy\r\nand beloved as I have been, is it not hard to quit you all? But these are\r\nnot thoughts befitting me; I will endeavour to resign myself cheerfully to\r\ndeath and will indulge a hope of meeting you in another world.”\r\n\r\nShe died calmly, and her countenance expressed affection even in death.\r\nI need not describe the feelings of those whose dearest ties are rent\r\nby that most irreparable evil, the void that presents itself to the\r\nsoul, and the despair that is exhibited on the countenance. It is so\r\nlong before the mind can persuade itself that she whom we saw every day\r\nand whose very existence appeared a part of our own can have departed\r\nfor ever—that the brightness of a beloved eye can have been\r\nextinguished and the sound of a voice so familiar and dear to the ear\r\ncan be hushed, never more to be heard. These are the reflections of\r\nthe first days; but when the lapse of time proves the reality of the\r\nevil, then the actual bitterness of grief commences. Yet from whom has\r\nnot that rude hand rent away some dear connection? And why should I\r\ndescribe a sorrow which all have felt, and must feel? The time at\r\nlength arrives when grief is rather an indulgence than a necessity; and\r\nthe smile that plays upon the lips, although it may be deemed a\r\nsacrilege, is not banished. My mother was dead, but we had still\r\nduties which we ought to perform; we must continue our course with the\r\nrest and learn to think ourselves fortunate whilst one remains whom the\r\nspoiler has not seized.\r\n\r\nMy departure for Ingolstadt, which had been deferred by these events,\r\nwas now again determined upon. I obtained from my father a respite of\r\nsome weeks. It appeared to me sacrilege so soon to leave the repose,\r\nakin to death, of the house of mourning and to rush into the thick of\r\nlife. I was new to sorrow, but it did not the less alarm me. I was\r\nunwilling to quit the sight of those that remained to me, and above\r\nall, I desired to see my sweet Elizabeth in some degree consoled.\r\n\r\nShe indeed veiled her grief and strove to act the comforter to us all.\r\nShe looked steadily on life and assumed its duties with courage and\r\nzeal. She devoted herself to those whom she had been taught to call\r\nher uncle and cousins. Never was she so enchanting as at this time,\r\nwhen she recalled the sunshine of her smiles and spent them upon us.\r\nShe forgot even her own regret in her endeavours to make us forget.\r\n\r\nThe day of my departure at length arrived. Clerval spent the last\r\nevening with us. He had endeavoured to persuade his father to permit\r\nhim to accompany me and to become my fellow student, but in vain. His\r\nfather was a narrow-minded trader and saw idleness and ruin in the\r\naspirations and ambition of his son. Henry deeply felt the misfortune\r\nof being debarred from a liberal education. He said little, but when\r\nhe spoke I read in his kindling eye and in his animated glance a\r\nrestrained but firm resolve not to be chained to the miserable details\r\nof commerce.\r\n\r\nWe sat late. We could not tear ourselves away from each other nor\r\npersuade ourselves to say the word “Farewell!” It was said, and we\r\nretired under the pretence of seeking repose, each fancying that the\r\nother was deceived; but when at morning’s dawn I descended to the\r\ncarriage which was to convey me away, they were all there—my father\r\nagain to bless me, Clerval to press my hand once more, my Elizabeth to\r\nrenew her entreaties that I would write often and to bestow the last\r\nfeminine attentions on her playmate and friend.\r\n\r\nI threw myself into the chaise that was to convey me away and indulged in\r\nthe most melancholy reflections. I, who had ever been surrounded by\r\namiable companions, continually engaged in endeavouring to bestow mutual\r\npleasure—I was now alone. In the university whither I was going I\r\nmust form my own friends and be my own protector. My life had hitherto\r\nbeen remarkably secluded and domestic, and this had given me invincible\r\nrepugnance to new countenances. I loved my brothers, Elizabeth, and\r\nClerval; these were “old familiar faces,” but I believed myself\r\ntotally unfitted for the company of strangers. Such were my reflections as\r\nI commenced my journey; but as I proceeded, my spirits and hopes rose. I\r\nardently desired the acquisition of knowledge. I had often, when at home,\r\nthought it hard to remain during my youth cooped up in one place and had\r\nlonged to enter the world and take my station among other human beings. \r\nNow my desires were complied with, and it would, indeed, have been folly to\r\nrepent.\r\n\r\nI had sufficient leisure for these and many other reflections during my\r\njourney to Ingolstadt, which was long and fatiguing. At length the\r\nhigh white steeple of the town met my eyes. I alighted and was\r\nconducted to my solitary apartment to spend the evening as I pleased.\r\n\r\nThe next morning I delivered my letters of introduction and paid a visit to\r\nsome of the principal professors. Chance—or rather the evil\r\ninfluence, the Angel of Destruction, which asserted omnipotent sway over me\r\nfrom the moment I turned my reluctant steps from my father’s\r\ndoor—led me first to M. Krempe, professor of natural philosophy. He\r\nwas an uncouth man, but deeply imbued in the secrets of his science. He\r\nasked me several questions concerning my progress in the different branches\r\nof science appertaining to natural philosophy. I replied carelessly, and\r\npartly in contempt, mentioned the names of my alchemists as the principal\r\nauthors I had studied. The professor stared. “Have you,” he\r\nsaid, “really spent your time in studying such nonsense?”\r\n\r\nI replied in the affirmative. “Every minute,” continued M. Krempe with\r\nwarmth, “every instant that you have wasted on those books is utterly\r\nand entirely lost. You have burdened your memory with exploded systems\r\nand useless names. Good God! In what desert land have you lived,\r\nwhere no one was kind enough to inform you that these fancies which you\r\nhave so greedily imbibed are a thousand years old and as musty as they\r\nare ancient? I little expected, in this enlightened and scientific\r\nage, to find a disciple of Albertus Magnus and Paracelsus. My dear\r\nsir, you must begin your studies entirely anew.”\r\n\r\nSo saying, he stepped aside and wrote down a list of several books\r\ntreating of natural philosophy which he desired me to procure, and\r\ndismissed me after mentioning that in the beginning of the following\r\nweek he intended to commence a course of lectures upon natural\r\nphilosophy in its general relations, and that M. Waldman, a fellow\r\nprofessor, would lecture upon chemistry the alternate days that he\r\nomitted.\r\n\r\nI returned home not disappointed, for I have said that I had long\r\nconsidered those authors useless whom the professor reprobated; but I\r\nreturned not at all the more inclined to recur to these studies in any\r\nshape. M. Krempe was a little squat man with a gruff voice and a\r\nrepulsive countenance; the teacher, therefore, did not prepossess me in\r\nfavour of his pursuits. In rather a too philosophical and connected a\r\nstrain, perhaps, I have given an account of the conclusions I had come\r\nto concerning them in my early years. As a child I had not been\r\ncontent with the results promised by the modern professors of natural\r\nscience. With a confusion of ideas only to be accounted for by my\r\nextreme youth and my want of a guide on such matters, I had retrod the\r\nsteps of knowledge along the paths of time and exchanged the\r\ndiscoveries of recent inquirers for the dreams of forgotten alchemists.\r\nBesides, I had a contempt for the uses of modern natural philosophy.\r\nIt was very different when the masters of the science sought\r\nimmortality and power; such views, although futile, were grand; but now\r\nthe scene was changed. The ambition of the inquirer seemed to limit\r\nitself to the annihilation of those visions on which my interest in\r\nscience was chiefly founded. I was required to exchange chimeras of\r\nboundless grandeur for realities of little worth.\r\n\r\nSuch were my reflections during the first two or three days of my\r\nresidence at Ingolstadt, which were chiefly spent in becoming\r\nacquainted with the localities and the principal residents in my new\r\nabode. But as the ensuing week commenced, I thought of the information\r\nwhich M. Krempe had given me concerning the lectures. And although I\r\ncould not consent to go and hear that little conceited fellow deliver\r\nsentences out of a pulpit, I recollected what he had said of M.\r\nWaldman, whom I had never seen, as he had hitherto been out of town.\r\n\r\nPartly from curiosity and partly from idleness, I went into the lecturing\r\nroom, which M. Waldman entered shortly after. This professor was very\r\nunlike his colleague. He appeared about fifty years of age, but with an\r\naspect expressive of the greatest benevolence; a few grey hairs covered his\r\ntemples, but those at the back of his head were nearly black. His person\r\nwas short but remarkably erect and his voice the sweetest I had ever heard.\r\nHe began his lecture by a recapitulation of the history of chemistry and\r\nthe various improvements made by different men of learning, pronouncing\r\nwith fervour the names of the most distinguished discoverers. He then took\r\na cursory view of the present state of the science and explained many of\r\nits elementary terms. After having made a few preparatory experiments, he\r\nconcluded with a panegyric upon modern chemistry, the terms of which I\r\nshall never forget:\r\n\r\n“The ancient teachers of this science,” said he,\r\n“promised impossibilities and performed nothing. The modern masters\r\npromise very little; they know that metals cannot be transmuted and that\r\nthe elixir of life is a chimera but these philosophers, whose hands seem\r\nonly made to dabble in dirt, and their eyes to pore over the microscope or\r\ncrucible, have indeed performed miracles. They penetrate into the recesses\r\nof nature and show how she works in her hiding-places. They ascend into the\r\nheavens; they have discovered how the blood circulates, and the nature of\r\nthe air we breathe. They have acquired new and almost unlimited powers;\r\nthey can command the thunders of heaven, mimic the earthquake, and even\r\nmock the invisible world with its own shadows.”\r\n\r\nSuch were the professor’s words—rather let me say such the words of\r\nthe fate—enounced to destroy me. As he went on I felt as if my soul\r\nwere grappling with a palpable enemy; one by one the various keys were\r\ntouched which formed the mechanism of my being; chord after chord was\r\nsounded, and soon my mind was filled with one thought, one conception,\r\none purpose. So much has been done, exclaimed the soul of\r\nFrankenstein—more, far more, will I achieve; treading in the steps\r\nalready marked, I will pioneer a new way, explore unknown powers, and\r\nunfold to the world the deepest mysteries of creation.\r\n\r\nI closed not my eyes that night. My internal being was in a state of\r\ninsurrection and turmoil; I felt that order would thence arise, but I\r\nhad no power to produce it. By degrees, after the morning’s dawn,\r\nsleep came. I awoke, and my yesternight’s thoughts were as a dream.\r\nThere only remained a resolution to return to my ancient studies and to\r\ndevote myself to a science for which I believed myself to possess a\r\nnatural talent. On the same day I paid M. Waldman a visit. His\r\nmanners in private were even more mild and attractive than in public,\r\nfor there was a certain dignity in his mien during his lecture which in\r\nhis own house was replaced by the greatest affability and kindness. I\r\ngave him pretty nearly the same account of my former pursuits as I had\r\ngiven to his fellow professor. He heard with attention the little\r\nnarration concerning my studies and smiled at the names of Cornelius\r\nAgrippa and Paracelsus, but without the contempt that M. Krempe had\r\nexhibited. He said that “These were men to whose indefatigable zeal\r\nmodern philosophers were indebted for most of the foundations of their\r\nknowledge. They had left to us, as an easier task, to give new names\r\nand arrange in connected classifications the facts which they in a\r\ngreat degree had been the instruments of bringing to light. The\r\nlabours of men of genius, however erroneously directed, scarcely ever\r\nfail in ultimately turning to the solid advantage of mankind.” I\r\nlistened to his statement, which was delivered without any presumption\r\nor affectation, and then added that his lecture had removed my\r\nprejudices against modern chemists; I expressed myself in measured\r\nterms, with the modesty and deference due from a youth to his\r\ninstructor, without letting escape (inexperience in life would have\r\nmade me ashamed) any of the enthusiasm which stimulated my intended\r\nlabours. I requested his advice concerning the books I ought to\r\nprocure.\r\n\r\n“I am happy,” said M. Waldman, “to have gained a\r\ndisciple; and if your application equals your ability, I have no doubt of\r\nyour success. Chemistry is that branch of natural philosophy in which the\r\ngreatest improvements have been and may be made; it is on that account that\r\nI have made it my peculiar study; but at the same time, I have not\r\nneglected the other branches of science. A man would make but a very sorry\r\nchemist if he attended to that department of human knowledge alone. If your\r\nwish is to become really a man of science and not merely a petty\r\nexperimentalist, I should advise you to apply to every branch of natural\r\nphilosophy, including mathematics.”\r\n\r\nHe then took me into his laboratory and explained to me the uses of his\r\nvarious machines, instructing me as to what I ought to procure and\r\npromising me the use of his own when I should have advanced far enough in\r\nthe science not to derange their mechanism. He also gave me the list of\r\nbooks which I had requested, and I took my leave.\r\n\r\nThus ended a day memorable to me; it decided my future destiny.\r\n\r\n\r\n\r\n\r\nChapter 4\r\n\r\n\r\nFrom this day natural philosophy, and particularly chemistry, in the\r\nmost comprehensive sense of the term, became nearly my sole occupation.\r\nI read with ardour those works, so full of genius and discrimination,\r\nwhich modern inquirers have written on these subjects. I attended the\r\nlectures and cultivated the acquaintance of the men of science of the\r\nuniversity, and I found even in M. Krempe a great deal of sound sense\r\nand real information, combined, it is true, with a repulsive\r\nphysiognomy and manners, but not on that account the less valuable. In\r\nM. Waldman I found a true friend. His gentleness was never tinged by\r\ndogmatism, and his instructions were given with an air of frankness and\r\ngood nature that banished every idea of pedantry. In a thousand ways\r\nhe smoothed for me the path of knowledge and made the most abstruse\r\ninquiries clear and facile to my apprehension. My application was at\r\nfirst fluctuating and uncertain; it gained strength as I proceeded and\r\nsoon became so ardent and eager that the stars often disappeared in the\r\nlight of morning whilst I was yet engaged in my laboratory.\r\n\r\nAs I applied so closely, it may be easily conceived that my progress\r\nwas rapid. My ardour was indeed the astonishment of the students, and\r\nmy proficiency that of the masters. Professor Krempe often asked me,\r\nwith a sly smile, how Cornelius Agrippa went on, whilst M. Waldman\r\nexpressed the most heartfelt exultation in my progress. Two years\r\npassed in this manner, during which I paid no visit to Geneva, but was\r\nengaged, heart and soul, in the pursuit of some discoveries which I\r\nhoped to make. None but those who have experienced them can conceive\r\nof the enticements of science. In other studies you go as far as\r\nothers have gone before you, and there is nothing more to know; but in\r\na scientific pursuit there is continual food for discovery and wonder.\r\nA mind of moderate capacity which closely pursues one study must\r\ninfallibly arrive at great proficiency in that study; and I, who\r\ncontinually sought the attainment of one object of pursuit and was\r\nsolely wrapped up in this, improved so rapidly that at the end of two\r\nyears I made some discoveries in the improvement of some chemical\r\ninstruments, which procured me great esteem and admiration at the\r\nuniversity. When I had arrived at this point and had become as well\r\nacquainted with the theory and practice of natural philosophy as\r\ndepended on the lessons of any of the professors at Ingolstadt, my\r\nresidence there being no longer conducive to my improvements, I thought\r\nof returning to my friends and my native town, when an incident\r\nhappened that protracted my stay.\r\n\r\nOne of the phenomena which had peculiarly attracted my attention was\r\nthe structure of the human frame, and, indeed, any animal endued with\r\nlife. Whence, I often asked myself, did the principle of life proceed?\r\nIt was a bold question, and one which has ever been considered as a\r\nmystery; yet with how many things are we upon the brink of becoming\r\nacquainted, if cowardice or carelessness did not restrain our\r\ninquiries. I revolved these circumstances in my mind and determined\r\nthenceforth to apply myself more particularly to those branches of\r\nnatural philosophy which relate to physiology. Unless I had been\r\nanimated by an almost supernatural enthusiasm, my application to this\r\nstudy would have been irksome and almost intolerable. To examine the\r\ncauses of life, we must first have recourse to death. I became\r\nacquainted with the science of anatomy, but this was not sufficient; I\r\nmust also observe the natural decay and corruption of the human body.\r\nIn my education my father had taken the greatest precautions that my\r\nmind should be impressed with no supernatural horrors. I do not ever\r\nremember to have trembled at a tale of superstition or to have feared\r\nthe apparition of a spirit. Darkness had no effect upon my fancy, and\r\na churchyard was to me merely the receptacle of bodies deprived of\r\nlife, which, from being the seat of beauty and strength, had become\r\nfood for the worm. Now I was led to examine the cause and progress of\r\nthis decay and forced to spend days and nights in vaults and\r\ncharnel-houses. My attention was fixed upon every object the most\r\ninsupportable to the delicacy of the human feelings. I saw how the\r\nfine form of man was degraded and wasted; I beheld the corruption of\r\ndeath succeed to the blooming cheek of life; I saw how the worm\r\ninherited the wonders of the eye and brain. I paused, examining and\r\nanalysing all the minutiae of causation, as exemplified in the change\r\nfrom life to death, and death to life, until from the midst of this\r\ndarkness a sudden light broke in upon me—a light so brilliant and\r\nwondrous, yet so simple, that while I became dizzy with the immensity\r\nof the prospect which it illustrated, I was surprised that among so\r\nmany men of genius who had directed their inquiries towards the same\r\nscience, that I alone should be reserved to discover so astonishing a\r\nsecret.\r\n\r\nRemember, I am not recording the vision of a madman. The sun does not\r\nmore certainly shine in the heavens than that which I now affirm is\r\ntrue. Some miracle might have produced it, yet the stages of the\r\ndiscovery were distinct and probable. After days and nights of\r\nincredible labour and fatigue, I succeeded in discovering the cause of\r\ngeneration and life; nay, more, I became myself capable of bestowing\r\nanimation upon lifeless matter.\r\n\r\nThe astonishment which I had at first experienced on this discovery\r\nsoon gave place to delight and rapture. After so much time spent in\r\npainful labour, to arrive at once at the summit of my desires was the\r\nmost gratifying consummation of my toils. But this discovery was so\r\ngreat and overwhelming that all the steps by which I had been\r\nprogressively led to it were obliterated, and I beheld only the result.\r\nWhat had been the study and desire of the wisest men since the creation\r\nof the world was now within my grasp. Not that, like a magic scene, it\r\nall opened upon me at once: the information I had obtained was of a\r\nnature rather to direct my endeavours so soon as I should point them\r\ntowards the object of my search than to exhibit that object already\r\naccomplished. I was like the Arabian who had been buried with the dead\r\nand found a passage to life, aided only by one glimmering and seemingly\r\nineffectual light.\r\n\r\nI see by your eagerness and the wonder and hope which your eyes\r\nexpress, my friend, that you expect to be informed of the secret with\r\nwhich I am acquainted; that cannot be; listen patiently until the end\r\nof my story, and you will easily perceive why I am reserved upon that\r\nsubject. I will not lead you on, unguarded and ardent as I then was,\r\nto your destruction and infallible misery. Learn from me, if not by my\r\nprecepts, at least by my example, how dangerous is the acquirement of\r\nknowledge and how much happier that man is who believes his native town\r\nto be the world, than he who aspires to become greater than his nature\r\nwill allow.\r\n\r\nWhen I found so astonishing a power placed within my hands, I hesitated\r\na long time concerning the manner in which I should employ it.\r\nAlthough I possessed the capacity of bestowing animation, yet to\r\nprepare a frame for the reception of it, with all its intricacies of\r\nfibres, muscles, and veins, still remained a work of inconceivable\r\ndifficulty and labour. I doubted at first whether I should attempt the\r\ncreation of a being like myself, or one of simpler organization; but my\r\nimagination was too much exalted by my first success to permit me to\r\ndoubt of my ability to give life to an animal as complex and wonderful\r\nas man. The materials at present within my command hardly appeared\r\nadequate to so arduous an undertaking, but I doubted not that I should\r\nultimately succeed. I prepared myself for a multitude of reverses; my\r\noperations might be incessantly baffled, and at last my work be\r\nimperfect, yet when I considered the improvement which every day takes\r\nplace in science and mechanics, I was encouraged to hope my present\r\nattempts would at least lay the foundations of future success. Nor\r\ncould I consider the magnitude and complexity of my plan as any\r\nargument of its impracticability. It was with these feelings that I\r\nbegan the creation of a human being. As the minuteness of the parts\r\nformed a great hindrance to my speed, I resolved, contrary to my first\r\nintention, to make the being of a gigantic stature, that is to say,\r\nabout eight feet in height, and proportionably large. After having\r\nformed this determination and having spent some months in successfully\r\ncollecting and arranging my materials, I began.\r\n\r\nNo one can conceive the variety of feelings which bore me onwards, like\r\na hurricane, in the first enthusiasm of success. Life and death\r\nappeared to me ideal bounds, which I should first break through, and\r\npour a torrent of light into our dark world. A new species would bless\r\nme as its creator and source; many happy and excellent natures would\r\nowe their being to me. No father could claim the gratitude of his\r\nchild so completely as I should deserve theirs. Pursuing these\r\nreflections, I thought that if I could bestow animation upon lifeless\r\nmatter, I might in process of time (although I now found it impossible)\r\nrenew life where death had apparently devoted the body to corruption.\r\n\r\nThese thoughts supported my spirits, while I pursued my undertaking\r\nwith unremitting ardour. My cheek had grown pale with study, and my\r\nperson had become emaciated with confinement. Sometimes, on the very\r\nbrink of certainty, I failed; yet still I clung to the hope which the\r\nnext day or the next hour might realise. One secret which I alone\r\npossessed was the hope to which I had dedicated myself; and the moon\r\ngazed on my midnight labours, while, with unrelaxed and breathless\r\neagerness, I pursued nature to her hiding-places. Who shall conceive\r\nthe horrors of my secret toil as I dabbled among the unhallowed damps\r\nof the grave or tortured the living animal to animate the lifeless\r\nclay? My limbs now tremble, and my eyes swim with the remembrance; but\r\nthen a resistless and almost frantic impulse urged me forward; I seemed\r\nto have lost all soul or sensation but for this one pursuit. It was\r\nindeed but a passing trance, that only made me feel with renewed\r\nacuteness so soon as, the unnatural stimulus ceasing to operate, I had\r\nreturned to my old habits. I collected bones from charnel-houses and\r\ndisturbed, with profane fingers, the tremendous secrets of the human\r\nframe. In a solitary chamber, or rather cell, at the top of the house,\r\nand separated from all the other apartments by a gallery and staircase,\r\nI kept my workshop of filthy creation; my eyeballs were starting from\r\ntheir sockets in attending to the details of my employment. The\r\ndissecting room and the slaughter-house furnished many of my materials;\r\nand often did my human nature turn with loathing from my occupation,\r\nwhilst, still urged on by an eagerness which perpetually increased, I\r\nbrought my work near to a conclusion.\r\n\r\nThe summer months passed while I was thus engaged, heart and soul, in\r\none pursuit. It was a most beautiful season; never did the fields\r\nbestow a more plentiful harvest or the vines yield a more luxuriant\r\nvintage, but my eyes were insensible to the charms of nature. And the\r\nsame feelings which made me neglect the scenes around me caused me also\r\nto forget those friends who were so many miles absent, and whom I had\r\nnot seen for so long a time. I knew my silence disquieted them, and I\r\nwell remembered the words of my father: “I know that while you are\r\npleased with yourself you will think of us with affection, and we shall\r\nhear regularly from you. You must pardon me if I regard any\r\ninterruption in your correspondence as a proof that your other duties\r\nare equally neglected.”\r\n\r\nI knew well therefore what would be my father’s feelings, but I could\r\nnot tear my thoughts from my employment, loathsome in itself, but which\r\nhad taken an irresistible hold of my imagination. I wished, as it\r\nwere, to procrastinate all that related to my feelings of affection\r\nuntil the great object, which swallowed up every habit of my nature,\r\nshould be completed.\r\n\r\nI then thought that my father would be unjust if he ascribed my neglect\r\nto vice or faultiness on my part, but I am now convinced that he was\r\njustified in conceiving that I should not be altogether free from\r\nblame. A human being in perfection ought always to preserve a calm and\r\npeaceful mind and never to allow passion or a transitory desire to\r\ndisturb his tranquillity. I do not think that the pursuit of knowledge\r\nis an exception to this rule. If the study to which you apply yourself\r\nhas a tendency to weaken your affections and to destroy your taste for\r\nthose simple pleasures in which no alloy can possibly mix, then that\r\nstudy is certainly unlawful, that is to say, not befitting the human\r\nmind. If this rule were always observed; if no man allowed any pursuit\r\nwhatsoever to interfere with the tranquillity of his domestic\r\naffections, Greece had not been enslaved, Cæsar would have spared his\r\ncountry, America would have been discovered more gradually, and the\r\nempires of Mexico and Peru had not been destroyed.\r\n\r\nBut I forget that I am moralizing in the most interesting part of my\r\ntale, and your looks remind me to proceed.\r\n\r\nMy father made no reproach in his letters and only took notice of my\r\nsilence by inquiring into my occupations more particularly than before.\r\nWinter, spring, and summer passed away during my labours; but I did not\r\nwatch the blossom or the expanding leaves—sights which before always\r\nyielded me supreme delight—so deeply was I engrossed in my\r\noccupation. The leaves of that year had withered before my work drew near\r\nto a close, and now every day showed me more plainly how well I had\r\nsucceeded. But my enthusiasm was checked by my anxiety, and I appeared\r\nrather like one doomed by slavery to toil in the mines, or any other\r\nunwholesome trade than an artist occupied by his favourite employment.\r\nEvery night I was oppressed by a slow fever, and I became nervous to a most\r\npainful degree; the fall of a leaf startled me, and I shunned my fellow\r\ncreatures as if I had been guilty of a crime. Sometimes I grew alarmed at\r\nthe wreck I perceived that I had become; the energy of my purpose alone\r\nsustained me: my labours would soon end, and I believed that exercise and\r\namusement would then drive away incipient disease; and I promised myself\r\nboth of these when my creation should be complete.\r\n\r\n\r\n\r\n\r\nChapter 5\r\n\r\n\r\nIt was on a dreary night of November that I beheld the accomplishment\r\nof my toils. With an anxiety that almost amounted to agony, I\r\ncollected the instruments of life around me, that I might infuse a\r\nspark of being into the lifeless thing that lay at my feet. It was\r\nalready one in the morning; the rain pattered dismally against the\r\npanes, and my candle was nearly burnt out, when, by the glimmer of the\r\nhalf-extinguished light, I saw the dull yellow eye of the creature\r\nopen; it breathed hard, and a convulsive motion agitated its limbs.\r\n\r\nHow can I describe my emotions at this catastrophe, or how delineate\r\nthe wretch whom with such infinite pains and care I had endeavoured to\r\nform? His limbs were in proportion, and I had selected his features as\r\nbeautiful. Beautiful! Great God! His yellow skin scarcely covered\r\nthe work of muscles and arteries beneath; his hair was of a lustrous\r\nblack, and flowing; his teeth of a pearly whiteness; but these\r\nluxuriances only formed a more horrid contrast with his watery eyes,\r\nthat seemed almost of the same colour as the dun-white sockets in which\r\nthey were set, his shrivelled complexion and straight black lips.\r\n\r\nThe different accidents of life are not so changeable as the feelings\r\nof human nature. I had worked hard for nearly two years, for the sole\r\npurpose of infusing life into an inanimate body. For this I had\r\ndeprived myself of rest and health. I had desired it with an ardour\r\nthat far exceeded moderation; but now that I had finished, the beauty\r\nof the dream vanished, and breathless horror and disgust filled my\r\nheart. Unable to endure the aspect of the being I had created, I\r\nrushed out of the room and continued a long time traversing my\r\nbed-chamber, unable to compose my mind to sleep. At length lassitude\r\nsucceeded to the tumult I had before endured, and I threw myself on the\r\nbed in my clothes, endeavouring to seek a few moments of forgetfulness.\r\nBut it was in vain; I slept, indeed, but I was disturbed by the wildest\r\ndreams. I thought I saw Elizabeth, in the bloom of health, walking in\r\nthe streets of Ingolstadt. Delighted and surprised, I embraced her,\r\nbut as I imprinted the first kiss on her lips, they became livid with\r\nthe hue of death; her features appeared to change, and I thought that I\r\nheld the corpse of my dead mother in my arms; a shroud enveloped her\r\nform, and I saw the grave-worms crawling in the folds of the flannel.\r\nI started from my sleep with horror; a cold dew covered my forehead, my\r\nteeth chattered, and every limb became convulsed; when, by the dim and\r\nyellow light of the moon, as it forced its way through the window\r\nshutters, I beheld the wretch—the miserable monster whom I had\r\ncreated. He held up the curtain of the bed; and his eyes, if eyes they\r\nmay be called, were fixed on me. His jaws opened, and he muttered some\r\ninarticulate sounds, while a grin wrinkled his cheeks. He might have\r\nspoken, but I did not hear; one hand was stretched out, seemingly to\r\ndetain me, but I escaped and rushed downstairs. I took refuge in the\r\ncourtyard belonging to the house which I inhabited, where I remained\r\nduring the rest of the night, walking up and down in the greatest\r\nagitation, listening attentively, catching and fearing each sound as if\r\nit were to announce the approach of the demoniacal corpse to which I\r\nhad so miserably given life.\r\n\r\nOh! No mortal could support the horror of that countenance. A mummy\r\nagain endued with animation could not be so hideous as that wretch. I\r\nhad gazed on him while unfinished; he was ugly then, but when those\r\nmuscles and joints were rendered capable of motion, it became a thing\r\nsuch as even Dante could not have conceived.\r\n\r\nI passed the night wretchedly. Sometimes my pulse beat so quickly and\r\nhardly that I felt the palpitation of every artery; at others, I nearly\r\nsank to the ground through languor and extreme weakness. Mingled with\r\nthis horror, I felt the bitterness of disappointment; dreams that had\r\nbeen my food and pleasant rest for so long a space were now become a\r\nhell to me; and the change was so rapid, the overthrow so complete!\r\n\r\nMorning, dismal and wet, at length dawned and discovered to my\r\nsleepless and aching eyes the church of Ingolstadt, its white steeple\r\nand clock, which indicated the sixth hour. The porter opened the gates\r\nof the court, which had that night been my asylum, and I issued into\r\nthe streets, pacing them with quick steps, as if I sought to avoid the\r\nwretch whom I feared every turning of the street would present to my\r\nview. I did not dare return to the apartment which I inhabited, but\r\nfelt impelled to hurry on, although drenched by the rain which poured\r\nfrom a black and comfortless sky.\r\n\r\nI continued walking in this manner for some time, endeavouring by\r\nbodily exercise to ease the load that weighed upon my mind. I\r\ntraversed the streets without any clear conception of where I was or\r\nwhat I was doing. My heart palpitated in the sickness of fear, and I\r\nhurried on with irregular steps, not daring to look about me:\r\n \r\n Like one who, on a lonely road,\r\n Doth walk in fear and dread,\r\n And, having once turned round, walks on,\r\n And turns no more his head;\r\n Because he knows a frightful fiend\r\n Doth close behind him tread.\r\n \r\n [Coleridge’s “Ancient Mariner.”]\r\n\r\n\r\n\r\nContinuing thus, I came at length opposite to the inn at which the various\r\ndiligences and carriages usually stopped. Here I paused, I knew not why;\r\nbut I remained some minutes with my eyes fixed on a coach that was coming\r\ntowards me from the other end of the street. As it drew nearer I observed\r\nthat it was the Swiss diligence; it stopped just where I was standing, and\r\non the door being opened, I perceived Henry Clerval, who, on seeing me,\r\ninstantly sprung out. “My dear Frankenstein,” exclaimed he,\r\n“how glad I am to see you! How fortunate that you should be here at\r\nthe very moment of my alighting!”\r\n\r\nNothing could equal my delight on seeing Clerval; his presence brought back\r\nto my thoughts my father, Elizabeth, and all those scenes of home so dear\r\nto my recollection. I grasped his hand, and in a moment forgot my horror\r\nand misfortune; I felt suddenly, and for the first time during many months,\r\ncalm and serene joy. I welcomed my friend, therefore, in the most cordial\r\nmanner, and we walked towards my college. Clerval continued talking for\r\nsome time about our mutual friends and his own good fortune in being\r\npermitted to come to Ingolstadt. “You may easily believe,” said\r\nhe, “how great was the difficulty to persuade my father that all\r\nnecessary knowledge was not comprised in the noble art of book-keeping;\r\nand, indeed, I believe I left him incredulous to the last, for his constant\r\nanswer to my unwearied entreaties was the same as that of the Dutch\r\nschoolmaster in The Vicar of Wakefield: ‘I have ten thousand florins\r\na year without Greek, I eat heartily without Greek.’ But his\r\naffection for me at length overcame his dislike of learning, and he has\r\npermitted me to undertake a voyage of discovery to the land of\r\nknowledge.”\r\n\r\n“It gives me the greatest delight to see you; but tell me how you left\r\nmy father, brothers, and Elizabeth.”\r\n\r\n“Very well, and very happy, only a little uneasy that they hear from\r\nyou so seldom. By the by, I mean to lecture you a little upon their\r\naccount myself. But, my dear Frankenstein,” continued he, stopping\r\nshort and gazing full in my face, “I did not before remark how very ill\r\nyou appear; so thin and pale; you look as if you had been watching for\r\nseveral nights.”\r\n\r\n“You have guessed right; I have lately been so deeply engaged in one\r\noccupation that I have not allowed myself sufficient rest, as you see;\r\nbut I hope, I sincerely hope, that all these employments are now at an\r\nend and that I am at length free.”\r\n\r\nI trembled excessively; I could not endure to think of, and far less to\r\nallude to, the occurrences of the preceding night. I walked with a\r\nquick pace, and we soon arrived at my college. I then reflected, and\r\nthe thought made me shiver, that the creature whom I had left in my\r\napartment might still be there, alive and walking about. I dreaded to\r\nbehold this monster, but I feared still more that Henry should see him.\r\nEntreating him, therefore, to remain a few minutes at the bottom of the\r\nstairs, I darted up towards my own room. My hand was already on the\r\nlock of the door before I recollected myself. I then paused, and a\r\ncold shivering came over me. I threw the door forcibly open, as\r\nchildren are accustomed to do when they expect a spectre to stand in\r\nwaiting for them on the other side; but nothing appeared. I stepped\r\nfearfully in: the apartment was empty, and my bedroom was also freed\r\nfrom its hideous guest. I could hardly believe that so great a good\r\nfortune could have befallen me, but when I became assured that my enemy\r\nhad indeed fled, I clapped my hands for joy and ran down to Clerval.\r\n\r\nWe ascended into my room, and the servant presently brought breakfast;\r\nbut I was unable to contain myself. It was not joy only that possessed\r\nme; I felt my flesh tingle with excess of sensitiveness, and my pulse\r\nbeat rapidly. I was unable to remain for a single instant in the same\r\nplace; I jumped over the chairs, clapped my hands, and laughed aloud.\r\nClerval at first attributed my unusual spirits to joy on his arrival,\r\nbut when he observed me more attentively, he saw a wildness in my eyes\r\nfor which he could not account, and my loud, unrestrained, heartless\r\nlaughter frightened and astonished him.\r\n\r\n“My dear Victor,” cried he, “what, for God’s sake,\r\nis the matter? Do not laugh in that manner. How ill you are! What is the\r\ncause of all this?”\r\n\r\n“Do not ask me,” cried I, putting my hands before my eyes, for I\r\nthought I saw the dreaded spectre glide into the room; “_he_ can\r\ntell. Oh, save me! Save me!” I imagined that the monster seized me;\r\nI struggled furiously and fell down in a fit.\r\n\r\nPoor Clerval! What must have been his feelings? A meeting, which he\r\nanticipated with such joy, so strangely turned to bitterness. But I\r\nwas not the witness of his grief, for I was lifeless and did not\r\nrecover my senses for a long, long time.\r\n\r\nThis was the commencement of a nervous fever which confined me for\r\nseveral months. During all that time Henry was my only nurse. I\r\nafterwards learned that, knowing my father’s advanced age and unfitness\r\nfor so long a journey, and how wretched my sickness would make\r\nElizabeth, he spared them this grief by concealing the extent of my\r\ndisorder. He knew that I could not have a more kind and attentive\r\nnurse than himself; and, firm in the hope he felt of my recovery, he\r\ndid not doubt that, instead of doing harm, he performed the kindest\r\naction that he could towards them.\r\n\r\nBut I was in reality very ill, and surely nothing but the unbounded and\r\nunremitting attentions of my friend could have restored me to life.\r\nThe form of the monster on whom I had bestowed existence was for ever\r\nbefore my eyes, and I raved incessantly concerning him. Doubtless my\r\nwords surprised Henry; he at first believed them to be the wanderings\r\nof my disturbed imagination, but the pertinacity with which I\r\ncontinually recurred to the same subject persuaded him that my disorder\r\nindeed owed its origin to some uncommon and terrible event.\r\n\r\nBy very slow degrees, and with frequent relapses that alarmed and\r\ngrieved my friend, I recovered. I remember the first time I became\r\ncapable of observing outward objects with any kind of pleasure, I\r\nperceived that the fallen leaves had disappeared and that the young\r\nbuds were shooting forth from the trees that shaded my window. It was\r\na divine spring, and the season contributed greatly to my\r\nconvalescence. I felt also sentiments of joy and affection revive in\r\nmy bosom; my gloom disappeared, and in a short time I became as\r\ncheerful as before I was attacked by the fatal passion.\r\n\r\n“Dearest Clerval,” exclaimed I, “how kind, how very good\r\nyou are to me. This whole winter, instead of being spent in study, as you\r\npromised yourself, has been consumed in my sick room. How shall I ever\r\nrepay you? I feel the greatest remorse for the disappointment of which I\r\nhave been the occasion, but you will forgive me.”\r\n\r\n“You will repay me entirely if you do not discompose yourself, but get\r\nwell as fast as you can; and since you appear in such good spirits, I\r\nmay speak to you on one subject, may I not?”\r\n\r\nI trembled. One subject! What could it be? Could he allude to an object on\r\nwhom I dared not even think?\r\n\r\n“Compose yourself,” said Clerval, who observed my change of\r\ncolour, “I will not mention it if it agitates you; but your father\r\nand cousin would be very happy if they received a letter from you in your\r\nown handwriting. They hardly know how ill you have been and are uneasy at\r\nyour long silence.”\r\n\r\n“Is that all, my dear Henry? How could you suppose that my first\r\nthought would not fly towards those dear, dear friends whom I love and\r\nwho are so deserving of my love?”\r\n\r\n“If this is your present temper, my friend, you will perhaps be glad\r\nto see a letter that has been lying here some days for you; it is from\r\nyour cousin, I believe.”\r\n\r\n\r\n\r\n\r\nChapter 6\r\n\r\n\r\nClerval then put the following letter into my hands. It was from my\r\nown Elizabeth:\r\n\r\n“My dearest Cousin,\r\n\r\n“You have been ill, very ill, and even the constant letters of dear\r\nkind Henry are not sufficient to reassure me on your account. You are\r\nforbidden to write—to hold a pen; yet one word from you, dear Victor,\r\nis necessary to calm our apprehensions. For a long time I have thought\r\nthat each post would bring this line, and my persuasions have\r\nrestrained my uncle from undertaking a journey to Ingolstadt. I have\r\nprevented his encountering the inconveniences and perhaps dangers of so\r\nlong a journey, yet how often have I regretted not being able to\r\nperform it myself! I figure to myself that the task of attending on\r\nyour sickbed has devolved on some mercenary old nurse, who could never\r\nguess your wishes nor minister to them with the care and affection of\r\nyour poor cousin. Yet that is over now: Clerval writes that indeed\r\nyou are getting better. I eagerly hope that you will confirm this\r\nintelligence soon in your own handwriting.\r\n\r\n“Get well—and return to us. You will find a happy, cheerful home and\r\nfriends who love you dearly. Your father’s health is vigorous, and he\r\nasks but to see you, but to be assured that you are well; and not a\r\ncare will ever cloud his benevolent countenance. How pleased you would\r\nbe to remark the improvement of our Ernest! He is now sixteen and full\r\nof activity and spirit. He is desirous to be a true Swiss and to enter\r\ninto foreign service, but we cannot part with him, at least until his\r\nelder brother returns to us. My uncle is not pleased with the idea of\r\na military career in a distant country, but Ernest never had your\r\npowers of application. He looks upon study as an odious fetter; his\r\ntime is spent in the open air, climbing the hills or rowing on the\r\nlake. I fear that he will become an idler unless we yield the point\r\nand permit him to enter on the profession which he has selected.\r\n\r\n“Little alteration, except the growth of our dear children, has taken\r\nplace since you left us. The blue lake and snow-clad mountains—they\r\nnever change; and I think our placid home and our contented hearts are\r\nregulated by the same immutable laws. My trifling occupations take up\r\nmy time and amuse me, and I am rewarded for any exertions by seeing\r\nnone but happy, kind faces around me. Since you left us, but one\r\nchange has taken place in our little household. Do you remember on\r\nwhat occasion Justine Moritz entered our family? Probably you do not;\r\nI will relate her history, therefore in a few words. Madame Moritz,\r\nher mother, was a widow with four children, of whom Justine was the\r\nthird. This girl had always been the favourite of her father, but\r\nthrough a strange perversity, her mother could not endure her, and\r\nafter the death of M. Moritz, treated her very ill. My aunt observed\r\nthis, and when Justine was twelve years of age, prevailed on her mother\r\nto allow her to live at our house. The republican institutions of our\r\ncountry have produced simpler and happier manners than those which\r\nprevail in the great monarchies that surround it. Hence there is less\r\ndistinction between the several classes of its inhabitants; and the\r\nlower orders, being neither so poor nor so despised, their manners are\r\nmore refined and moral. A servant in Geneva does not mean the same\r\nthing as a servant in France and England. Justine, thus received in\r\nour family, learned the duties of a servant, a condition which, in our\r\nfortunate country, does not include the idea of ignorance and a\r\nsacrifice of the dignity of a human being.\r\n\r\n“Justine, you may remember, was a great favourite of yours; and I\r\nrecollect you once remarked that if you were in an ill humour, one\r\nglance from Justine could dissipate it, for the same reason that\r\nAriosto gives concerning the beauty of Angelica—she looked so\r\nfrank-hearted and happy. My aunt conceived a great attachment for her,\r\nby which she was induced to give her an education superior to that\r\nwhich she had at first intended. This benefit was fully repaid;\r\nJustine was the most grateful little creature in the world: I do not\r\nmean that she made any professions I never heard one pass her lips, but\r\nyou could see by her eyes that she almost adored her protectress.\r\nAlthough her disposition was gay and in many respects inconsiderate,\r\nyet she paid the greatest attention to every gesture of my aunt. She\r\nthought her the model of all excellence and endeavoured to imitate her\r\nphraseology and manners, so that even now she often reminds me of her.\r\n\r\n“When my dearest aunt died every one was too much occupied in their own\r\ngrief to notice poor Justine, who had attended her during her illness\r\nwith the most anxious affection. Poor Justine was very ill; but other\r\ntrials were reserved for her.\r\n\r\n“One by one, her brothers and sister died; and her mother, with the\r\nexception of her neglected daughter, was left childless. The\r\nconscience of the woman was troubled; she began to think that the\r\ndeaths of her favourites was a judgement from heaven to chastise her\r\npartiality. She was a Roman Catholic; and I believe her confessor\r\nconfirmed the idea which she had conceived. Accordingly, a few months\r\nafter your departure for Ingolstadt, Justine was called home by her\r\nrepentant mother. Poor girl! She wept when she quitted our house; she\r\nwas much altered since the death of my aunt; grief had given softness\r\nand a winning mildness to her manners, which had before been remarkable\r\nfor vivacity. Nor was her residence at her mother’s house of a nature\r\nto restore her gaiety. The poor woman was very vacillating in her\r\nrepentance. She sometimes begged Justine to forgive her unkindness,\r\nbut much oftener accused her of having caused the deaths of her\r\nbrothers and sister. Perpetual fretting at length threw Madame Moritz\r\ninto a decline, which at first increased her irritability, but she is\r\nnow at peace for ever. She died on the first approach of cold weather,\r\nat the beginning of this last winter. Justine has just returned to us;\r\nand I assure you I love her tenderly. She is very clever and gentle,\r\nand extremely pretty; as I mentioned before, her mien and her\r\nexpression continually remind me of my dear aunt.\r\n\r\n“I must say also a few words to you, my dear cousin, of little darling\r\nWilliam. I wish you could see him; he is very tall of his age, with\r\nsweet laughing blue eyes, dark eyelashes, and curling hair. When he\r\nsmiles, two little dimples appear on each cheek, which are rosy with\r\nhealth. He has already had one or two little _wives,_ but Louisa Biron\r\nis his favourite, a pretty little girl of five years of age.\r\n\r\n“Now, dear Victor, I dare say you wish to be indulged in a little\r\ngossip concerning the good people of Geneva. The pretty Miss Mansfield\r\nhas already received the congratulatory visits on her approaching\r\nmarriage with a young Englishman, John Melbourne, Esq. Her ugly\r\nsister, Manon, married M. Duvillard, the rich banker, last autumn. Your\r\nfavourite schoolfellow, Louis Manoir, has suffered several misfortunes\r\nsince the departure of Clerval from Geneva. But he has already\r\nrecovered his spirits, and is reported to be on the point of marrying a\r\nlively pretty Frenchwoman, Madame Tavernier. She is a widow, and much\r\nolder than Manoir; but she is very much admired, and a favourite with\r\neverybody.\r\n\r\n“I have written myself into better spirits, dear cousin; but my anxiety\r\nreturns upon me as I conclude. Write, dearest Victor,—one line—one\r\nword will be a blessing to us. Ten thousand thanks to Henry for his\r\nkindness, his affection, and his many letters; we are sincerely\r\ngrateful. Adieu! my cousin; take care of yourself; and, I entreat\r\nyou, write!\r\n\r\n“Elizabeth Lavenza.\r\n\r\n\r\n“Geneva, March 18th, 17—.”\r\n\r\n\r\n\r\n“Dear, dear Elizabeth!” I exclaimed, when I had read her\r\nletter: “I will write instantly and relieve them from the anxiety\r\nthey must feel.” I wrote, and this exertion greatly fatigued me; but\r\nmy convalescence had commenced, and proceeded regularly. In another\r\nfortnight I was able to leave my chamber.\r\n\r\nOne of my first duties on my recovery was to introduce Clerval to the\r\nseveral professors of the university. In doing this, I underwent a\r\nkind of rough usage, ill befitting the wounds that my mind had\r\nsustained. Ever since the fatal night, the end of my labours, and the\r\nbeginning of my misfortunes, I had conceived a violent antipathy even\r\nto the name of natural philosophy. When I was otherwise quite restored\r\nto health, the sight of a chemical instrument would renew all the agony\r\nof my nervous symptoms. Henry saw this, and had removed all my\r\napparatus from my view. He had also changed my apartment; for he\r\nperceived that I had acquired a dislike for the room which had\r\npreviously been my laboratory. But these cares of Clerval were made of\r\nno avail when I visited the professors. M. Waldman inflicted torture\r\nwhen he praised, with kindness and warmth, the astonishing progress I\r\nhad made in the sciences. He soon perceived that I disliked the\r\nsubject; but not guessing the real cause, he attributed my feelings to\r\nmodesty, and changed the subject from my improvement, to the science\r\nitself, with a desire, as I evidently saw, of drawing me out. What\r\ncould I do? He meant to please, and he tormented me. I felt as if he\r\nhad placed carefully, one by one, in my view those instruments which\r\nwere to be afterwards used in putting me to a slow and cruel death. I\r\nwrithed under his words, yet dared not exhibit the pain I felt.\r\nClerval, whose eyes and feelings were always quick in discerning the\r\nsensations of others, declined the subject, alleging, in excuse, his\r\ntotal ignorance; and the conversation took a more general turn. I\r\nthanked my friend from my heart, but I did not speak. I saw plainly\r\nthat he was surprised, but he never attempted to draw my secret from\r\nme; and although I loved him with a mixture of affection and reverence\r\nthat knew no bounds, yet I could never persuade myself to confide in\r\nhim that event which was so often present to my recollection, but which\r\nI feared the detail to another would only impress more deeply.\r\n\r\nM. Krempe was not equally docile; and in my condition at that time, of\r\nalmost insupportable sensitiveness, his harsh blunt encomiums gave me even\r\nmore pain than the benevolent approbation of M. Waldman. “D—n\r\nthe fellow!” cried he; “why, M. Clerval, I assure you he has\r\noutstript us all. Ay, stare if you please; but it is nevertheless true. A\r\nyoungster who, but a few years ago, believed in Cornelius Agrippa as firmly\r\nas in the gospel, has now set himself at the head of the university; and if\r\nhe is not soon pulled down, we shall all be out of countenance.—Ay,\r\nay,” continued he, observing my face expressive of suffering,\r\n“M. Frankenstein is modest; an excellent quality in a young man.\r\nYoung men should be diffident of themselves, you know, M. Clerval: I was\r\nmyself when young; but that wears out in a very short time.”\r\n\r\nM. Krempe had now commenced an eulogy on himself, which happily turned\r\nthe conversation from a subject that was so annoying to me.\r\n\r\nClerval had never sympathised in my tastes for natural science; and his\r\nliterary pursuits differed wholly from those which had occupied me. He\r\ncame to the university with the design of making himself complete\r\nmaster of the oriental languages, and thus he should open a field for\r\nthe plan of life he had marked out for himself. Resolved to pursue no\r\ninglorious career, he turned his eyes toward the East, as affording\r\nscope for his spirit of enterprise. The Persian, Arabic, and Sanskrit\r\nlanguages engaged his attention, and I was easily induced to enter on\r\nthe same studies. Idleness had ever been irksome to me, and now that I\r\nwished to fly from reflection, and hated my former studies, I felt\r\ngreat relief in being the fellow-pupil with my friend, and found not\r\nonly instruction but consolation in the works of the orientalists. I\r\ndid not, like him, attempt a critical knowledge of their dialects, for\r\nI did not contemplate making any other use of them than temporary\r\namusement. I read merely to understand their meaning, and they well\r\nrepaid my labours. Their melancholy is soothing, and their joy\r\nelevating, to a degree I never experienced in studying the authors of\r\nany other country. When you read their writings, life appears to\r\nconsist in a warm sun and a garden of roses,—in the smiles and frowns\r\nof a fair enemy, and the fire that consumes your own heart. How\r\ndifferent from the manly and heroical poetry of Greece and Rome!\r\n\r\nSummer passed away in these occupations, and my return to Geneva was\r\nfixed for the latter end of autumn; but being delayed by several\r\naccidents, winter and snow arrived, the roads were deemed impassable,\r\nand my journey was retarded until the ensuing spring. I felt this\r\ndelay very bitterly; for I longed to see my native town and my beloved\r\nfriends. My return had only been delayed so long, from an\r\nunwillingness to leave Clerval in a strange place, before he had become\r\nacquainted with any of its inhabitants. The winter, however, was spent\r\ncheerfully; and although the spring was uncommonly late, when it came\r\nits beauty compensated for its dilatoriness.\r\n\r\nThe month of May had already commenced, and I expected the letter daily\r\nwhich was to fix the date of my departure, when Henry proposed a\r\npedestrian tour in the environs of Ingolstadt, that I might bid a\r\npersonal farewell to the country I had so long inhabited. I acceded\r\nwith pleasure to this proposition: I was fond of exercise, and Clerval\r\nhad always been my favourite companion in the ramble of this nature\r\nthat I had taken among the scenes of my native country.\r\n\r\nWe passed a fortnight in these perambulations: my health and spirits\r\nhad long been restored, and they gained additional strength from the\r\nsalubrious air I breathed, the natural incidents of our progress, and\r\nthe conversation of my friend. Study had before secluded me from the\r\nintercourse of my fellow-creatures, and rendered me unsocial; but\r\nClerval called forth the better feelings of my heart; he again taught\r\nme to love the aspect of nature, and the cheerful faces of children.\r\nExcellent friend! how sincerely you did love me, and endeavour to\r\nelevate my mind until it was on a level with your own. A selfish\r\npursuit had cramped and narrowed me, until your gentleness and\r\naffection warmed and opened my senses; I became the same happy creature\r\nwho, a few years ago, loved and beloved by all, had no sorrow or care.\r\nWhen happy, inanimate nature had the power of bestowing on me the most\r\ndelightful sensations. A serene sky and verdant fields filled me with\r\necstasy. The present season was indeed divine; the flowers of spring\r\nbloomed in the hedges, while those of summer were already in bud. I\r\nwas undisturbed by thoughts which during the preceding year had pressed\r\nupon me, notwithstanding my endeavours to throw them off, with an\r\ninvincible burden.\r\n\r\nHenry rejoiced in my gaiety, and sincerely sympathised in my feelings: he\r\nexerted himself to amuse me, while he expressed the sensations that filled\r\nhis soul. The resources of his mind on this occasion were truly\r\nastonishing: his conversation was full of imagination; and very often, in\r\nimitation of the Persian and Arabic writers, he invented tales of wonderful\r\nfancy and passion. At other times he repeated my favourite poems, or drew\r\nme out into arguments, which he supported with great ingenuity.\r\n\r\nWe returned to our college on a Sunday afternoon: the peasants were\r\ndancing, and every one we met appeared gay and happy. My own spirits were\r\nhigh, and I bounded along with feelings of unbridled joy and hilarity.\r\n\r\n\r\n\r\n\r\nChapter 7\r\n\r\n\r\nOn my return, I found the following letter from my father:—\r\n\r\n“My dear Victor,\r\n\r\n“You have probably waited impatiently for a letter to fix the date of\r\nyour return to us; and I was at first tempted to write only a few\r\nlines, merely mentioning the day on which I should expect you. But\r\nthat would be a cruel kindness, and I dare not do it. What would be\r\nyour surprise, my son, when you expected a happy and glad welcome, to\r\nbehold, on the contrary, tears and wretchedness? And how, Victor, can\r\nI relate our misfortune? Absence cannot have rendered you callous to\r\nour joys and griefs; and how shall I inflict pain on my long absent\r\nson? I wish to prepare you for the woeful news, but I know it is\r\nimpossible; even now your eye skims over the page to seek the words\r\nwhich are to convey to you the horrible tidings.\r\n\r\n“William is dead!—that sweet child, whose smiles delighted and warmed\r\nmy heart, who was so gentle, yet so gay! Victor, he is murdered!\r\n\r\n“I will not attempt to console you; but will simply relate the\r\ncircumstances of the transaction.\r\n\r\n“Last Thursday (May 7th), I, my niece, and your two brothers, went to\r\nwalk in Plainpalais. The evening was warm and serene, and we prolonged\r\nour walk farther than usual. It was already dusk before we thought of\r\nreturning; and then we discovered that William and Ernest, who had gone\r\non before, were not to be found. We accordingly rested on a seat until\r\nthey should return. Presently Ernest came, and enquired if we had seen\r\nhis brother; he said, that he had been playing with him, that William\r\nhad run away to hide himself, and that he vainly sought for him, and\r\nafterwards waited for a long time, but that he did not return.\r\n\r\n“This account rather alarmed us, and we continued to search for him\r\nuntil night fell, when Elizabeth conjectured that he might have\r\nreturned to the house. He was not there. We returned again, with\r\ntorches; for I could not rest, when I thought that my sweet boy had\r\nlost himself, and was exposed to all the damps and dews of night;\r\nElizabeth also suffered extreme anguish. About five in the morning I\r\ndiscovered my lovely boy, whom the night before I had seen blooming and\r\nactive in health, stretched on the grass livid and motionless; the\r\nprint of the murder’s finger was on his neck.\r\n\r\n“He was conveyed home, and the anguish that was visible in my\r\ncountenance betrayed the secret to Elizabeth. She was very earnest to\r\nsee the corpse. At first I attempted to prevent her but she persisted,\r\nand entering the room where it lay, hastily examined the neck of the\r\nvictim, and clasping her hands exclaimed, ‘O God! I have murdered my\r\ndarling child!’\r\n\r\n“She fainted, and was restored with extreme difficulty. When she again\r\nlived, it was only to weep and sigh. She told me, that that same\r\nevening William had teased her to let him wear a very valuable\r\nminiature that she possessed of your mother. This picture is gone, and\r\nwas doubtless the temptation which urged the murderer to the deed. We\r\nhave no trace of him at present, although our exertions to discover him\r\nare unremitted; but they will not restore my beloved William!\r\n\r\n“Come, dearest Victor; you alone can console Elizabeth. She weeps\r\ncontinually, and accuses herself unjustly as the cause of his death;\r\nher words pierce my heart. We are all unhappy; but will not that be an\r\nadditional motive for you, my son, to return and be our comforter?\r\nYour dear mother! Alas, Victor! I now say, Thank God she did not live\r\nto witness the cruel, miserable death of her youngest darling!\r\n\r\n“Come, Victor; not brooding thoughts of vengeance against the assassin,\r\nbut with feelings of peace and gentleness, that will heal, instead of\r\nfestering, the wounds of our minds. Enter the house of mourning, my\r\nfriend, but with kindness and affection for those who love you, and not\r\nwith hatred for your enemies.\r\n\r\n“Your affectionate and afflicted father,\r\n\r\n“Alphonse Frankenstein.\r\n\r\n\r\n\r\n“Geneva, May 12th, 17—.”\r\n\r\n\r\n\r\nClerval, who had watched my countenance as I read this letter, was\r\nsurprised to observe the despair that succeeded the joy I at first\r\nexpressed on receiving news from my friends. I threw the letter on the\r\ntable, and covered my face with my hands.\r\n\r\n“My dear Frankenstein,” exclaimed Henry, when he perceived me\r\nweep with bitterness, “are you always to be unhappy? My dear friend,\r\nwhat has happened?”\r\n\r\nI motioned him to take up the letter, while I walked up and down the\r\nroom in the extremest agitation. Tears also gushed from the eyes of\r\nClerval, as he read the account of my misfortune.\r\n\r\n“I can offer you no consolation, my friend,” said he;\r\n“your disaster is irreparable. What do you intend to do?”\r\n\r\n“To go instantly to Geneva: come with me, Henry, to order the horses.”\r\n\r\nDuring our walk, Clerval endeavoured to say a few words of consolation;\r\nhe could only express his heartfelt sympathy. “Poor William!” said he,\r\n“dear lovely child, he now sleeps with his angel mother! Who that had\r\nseen him bright and joyous in his young beauty, but must weep over his\r\nuntimely loss! To die so miserably; to feel the murderer’s grasp! How\r\nmuch more a murdered that could destroy radiant innocence! Poor little\r\nfellow! one only consolation have we; his friends mourn and weep, but\r\nhe is at rest. The pang is over, his sufferings are at an end for ever.\r\nA sod covers his gentle form, and he knows no pain. He can no longer\r\nbe a subject for pity; we must reserve that for his miserable\r\nsurvivors.”\r\n\r\nClerval spoke thus as we hurried through the streets; the words\r\nimpressed themselves on my mind and I remembered them afterwards in\r\nsolitude. But now, as soon as the horses arrived, I hurried into a\r\ncabriolet, and bade farewell to my friend.\r\n\r\nMy journey was very melancholy. At first I wished to hurry on, for I longed\r\nto console and sympathise with my loved and sorrowing friends; but when I\r\ndrew near my native town, I slackened my progress. I could hardly sustain\r\nthe multitude of feelings that crowded into my mind. I passed through\r\nscenes familiar to my youth, but which I had not seen for nearly six years.\r\nHow altered every thing might be during that time! One sudden and\r\ndesolating change had taken place; but a thousand little circumstances\r\nmight have by degrees worked other alterations, which, although they were\r\ndone more tranquilly, might not be the less decisive. Fear overcame me; I\r\ndared no advance, dreading a thousand nameless evils that made me tremble,\r\nalthough I was unable to define them.\r\n\r\nI remained two days at Lausanne, in this painful state of mind. I\r\ncontemplated the lake: the waters were placid; all around was calm; and the\r\nsnowy mountains, “the palaces of nature,” were not changed. By\r\ndegrees the calm and heavenly scene restored me, and I continued my journey\r\ntowards Geneva.\r\n\r\nThe road ran by the side of the lake, which became narrower as I\r\napproached my native town. I discovered more distinctly the black\r\nsides of Jura, and the bright summit of Mont Blanc. I wept like a\r\nchild. “Dear mountains! my own beautiful lake! how do you welcome your\r\nwanderer? Your summits are clear; the sky and lake are blue and\r\nplacid. Is this to prognosticate peace, or to mock at my unhappiness?”\r\n\r\nI fear, my friend, that I shall render myself tedious by dwelling on\r\nthese preliminary circumstances; but they were days of comparative\r\nhappiness, and I think of them with pleasure. My country, my beloved\r\ncountry! who but a native can tell the delight I took in again\r\nbeholding thy streams, thy mountains, and, more than all, thy lovely\r\nlake!\r\n\r\nYet, as I drew nearer home, grief and fear again overcame me. Night also\r\nclosed around; and when I could hardly see the dark mountains, I felt still\r\nmore gloomily. The picture appeared a vast and dim scene of evil, and I\r\nforesaw obscurely that I was destined to become the most wretched of human\r\nbeings. Alas! I prophesied truly, and failed only in one single\r\ncircumstance, that in all the misery I imagined and dreaded, I did not\r\nconceive the hundredth part of the anguish I was destined to endure.\r\n\r\nIt was completely dark when I arrived in the environs of Geneva; the gates\r\nof the town were already shut; and I was obliged to pass the night at\r\nSecheron, a village at the distance of half a league from the city. The sky\r\nwas serene; and, as I was unable to rest, I resolved to visit the spot\r\nwhere my poor William had been murdered. As I could not pass through the\r\ntown, I was obliged to cross the lake in a boat to arrive at Plainpalais.\r\nDuring this short voyage I saw the lightning playing on the summit of Mont\r\nBlanc in the most beautiful figures. The storm appeared to approach\r\nrapidly, and, on landing, I ascended a low hill, that I might observe its\r\nprogress. It advanced; the heavens were clouded, and I soon felt the rain\r\ncoming slowly in large drops, but its violence quickly increased.\r\n\r\nI quitted my seat, and walked on, although the darkness and storm\r\nincreased every minute, and the thunder burst with a terrific crash\r\nover my head. It was echoed from Salêve, the Juras, and the Alps of\r\nSavoy; vivid flashes of lightning dazzled my eyes, illuminating the\r\nlake, making it appear like a vast sheet of fire; then for an instant\r\nevery thing seemed of a pitchy darkness, until the eye recovered itself\r\nfrom the preceding flash. The storm, as is often the case in\r\nSwitzerland, appeared at once in various parts of the heavens. The\r\nmost violent storm hung exactly north of the town, over the part of the\r\nlake which lies between the promontory of Belrive and the village of\r\nCopêt. Another storm enlightened Jura with faint flashes; and another\r\ndarkened and sometimes disclosed the Môle, a peaked mountain to the\r\neast of the lake.\r\n\r\nWhile I watched the tempest, so beautiful yet terrific, I wandered on with\r\na hasty step. This noble war in the sky elevated my spirits; I clasped my\r\nhands, and exclaimed aloud, “William, dear angel! this is thy\r\nfuneral, this thy dirge!” As I said these words, I perceived in the\r\ngloom a figure which stole from behind a clump of trees near me; I stood\r\nfixed, gazing intently: I could not be mistaken. A flash of lightning\r\nilluminated the object, and discovered its shape plainly to me; its\r\ngigantic stature, and the deformity of its aspect more hideous than belongs\r\nto humanity, instantly informed me that it was the wretch, the filthy\r\ndæmon, to whom I had given life. What did he there? Could he be (I\r\nshuddered at the conception) the murderer of my brother? No sooner did that\r\nidea cross my imagination, than I became convinced of its truth; my teeth\r\nchattered, and I was forced to lean against a tree for support. The figure\r\npassed me quickly, and I lost it in the gloom. Nothing in human shape could\r\nhave destroyed the fair child. _He_ was the murderer! I could not\r\ndoubt it. The mere presence of the idea was an irresistible proof of the\r\nfact. I thought of pursuing the devil; but it would have been in vain, for\r\nanother flash discovered him to me hanging among the rocks of the nearly\r\nperpendicular ascent of Mont Salêve, a hill that bounds Plainpalais on the\r\nsouth. He soon reached the summit, and disappeared.\r\n\r\nI remained motionless. The thunder ceased; but the rain still\r\ncontinued, and the scene was enveloped in an impenetrable darkness. I\r\nrevolved in my mind the events which I had until now sought to forget:\r\nthe whole train of my progress toward the creation; the appearance of\r\nthe works of my own hands at my bedside; its departure. Two years had\r\nnow nearly elapsed since the night on which he first received life; and\r\nwas this his first crime? Alas! I had turned loose into the world a\r\ndepraved wretch, whose delight was in carnage and misery; had he not\r\nmurdered my brother?\r\n\r\nNo one can conceive the anguish I suffered during the remainder of the\r\nnight, which I spent, cold and wet, in the open air. But I did not\r\nfeel the inconvenience of the weather; my imagination was busy in\r\nscenes of evil and despair. I considered the being whom I had cast\r\namong mankind, and endowed with the will and power to effect purposes\r\nof horror, such as the deed which he had now done, nearly in the light\r\nof my own vampire, my own spirit let loose from the grave, and forced\r\nto destroy all that was dear to me.\r\n\r\nDay dawned; and I directed my steps towards the town. The gates were\r\nopen, and I hastened to my father’s house. My first thought was to\r\ndiscover what I knew of the murderer, and cause instant pursuit to be\r\nmade. But I paused when I reflected on the story that I had to tell. A\r\nbeing whom I myself had formed, and endued with life, had met me at\r\nmidnight among the precipices of an inaccessible mountain. I\r\nremembered also the nervous fever with which I had been seized just at\r\nthe time that I dated my creation, and which would give an air of\r\ndelirium to a tale otherwise so utterly improbable. I well knew that\r\nif any other had communicated such a relation to me, I should have\r\nlooked upon it as the ravings of insanity. Besides, the strange nature\r\nof the animal would elude all pursuit, even if I were so far credited\r\nas to persuade my relatives to commence it. And then of what use would\r\nbe pursuit? Who could arrest a creature capable of scaling the\r\noverhanging sides of Mont Salêve? These reflections determined me, and\r\nI resolved to remain silent.\r\n\r\nIt was about five in the morning when I entered my father’s house. I\r\ntold the servants not to disturb the family, and went into the library\r\nto attend their usual hour of rising.\r\n\r\nSix years had elapsed, passed in a dream but for one indelible trace, and I\r\nstood in the same place where I had last embraced my father before my\r\ndeparture for Ingolstadt. Beloved and venerable parent! He still remained\r\nto me. I gazed on the picture of my mother, which stood over the\r\nmantel-piece. It was an historical subject, painted at my father’s\r\ndesire, and represented Caroline Beaufort in an agony of despair, kneeling\r\nby the coffin of her dead father. Her garb was rustic, and her cheek pale;\r\nbut there was an air of dignity and beauty, that hardly permitted the\r\nsentiment of pity. Below this picture was a miniature of William; and my\r\ntears flowed when I looked upon it. While I was thus engaged, Ernest\r\nentered: he had heard me arrive, and hastened to welcome me:\r\n“Welcome, my dearest Victor,” said he. “Ah! I wish you\r\nhad come three months ago, and then you would have found us all joyous and\r\ndelighted. You come to us now to share a misery which nothing can\r\nalleviate; yet your presence will, I hope, revive our father, who seems\r\nsinking under his misfortune; and your persuasions will induce poor\r\nElizabeth to cease her vain and tormenting self-accusations.—Poor\r\nWilliam! he was our darling and our pride!”\r\n\r\nTears, unrestrained, fell from my brother’s eyes; a sense of mortal\r\nagony crept over my frame. Before, I had only imagined the\r\nwretchedness of my desolated home; the reality came on me as a new, and\r\na not less terrible, disaster. I tried to calm Ernest; I enquired more\r\nminutely concerning my father, and here I named my cousin.\r\n\r\n“She most of all,” said Ernest, “requires consolation; she accused\r\nherself of having caused the death of my brother, and that made her\r\nvery wretched. But since the murderer has been discovered—”\r\n\r\n“The murderer discovered! Good God! how can that be? who could attempt\r\nto pursue him? It is impossible; one might as well try to overtake the\r\nwinds, or confine a mountain-stream with a straw. I saw him too; he\r\nwas free last night!”\r\n\r\n“I do not know what you mean,” replied my brother, in accents of\r\nwonder, “but to us the discovery we have made completes our misery. No\r\none would believe it at first; and even now Elizabeth will not be\r\nconvinced, notwithstanding all the evidence. Indeed, who would credit\r\nthat Justine Moritz, who was so amiable, and fond of all the family,\r\ncould suddenly become so capable of so frightful, so appalling a crime?”\r\n\r\n“Justine Moritz! Poor, poor girl, is she the accused? But it is\r\nwrongfully; every one knows that; no one believes it, surely, Ernest?”\r\n\r\n“No one did at first; but several circumstances came out, that have\r\nalmost forced conviction upon us; and her own behaviour has been so\r\nconfused, as to add to the evidence of facts a weight that, I fear,\r\nleaves no hope for doubt. But she will be tried today, and you will\r\nthen hear all.”\r\n\r\nHe then related that, the morning on which the murder of poor William\r\nhad been discovered, Justine had been taken ill, and confined to her\r\nbed for several days. During this interval, one of the servants,\r\nhappening to examine the apparel she had worn on the night of the\r\nmurder, had discovered in her pocket the picture of my mother, which\r\nhad been judged to be the temptation of the murderer. The servant\r\ninstantly showed it to one of the others, who, without saying a word to\r\nany of the family, went to a magistrate; and, upon their deposition,\r\nJustine was apprehended. On being charged with the fact, the poor girl\r\nconfirmed the suspicion in a great measure by her extreme confusion of\r\nmanner.\r\n\r\nThis was a strange tale, but it did not shake my faith; and I replied\r\nearnestly, “You are all mistaken; I know the murderer. Justine, poor,\r\ngood Justine, is innocent.”\r\n\r\nAt that instant my father entered. I saw unhappiness deeply impressed\r\non his countenance, but he endeavoured to welcome me cheerfully; and,\r\nafter we had exchanged our mournful greeting, would have introduced\r\nsome other topic than that of our disaster, had not Ernest exclaimed,\r\n“Good God, papa! Victor says that he knows who was the murderer of\r\npoor William.”\r\n\r\n“We do also, unfortunately,” replied my father, “for indeed I had\r\nrather have been for ever ignorant than have discovered so much\r\ndepravity and ungratitude in one I valued so highly.”\r\n\r\n“My dear father, you are mistaken; Justine is innocent.”\r\n\r\n“If she is, God forbid that she should suffer as guilty. She is to be\r\ntried today, and I hope, I sincerely hope, that she will be acquitted.”\r\n\r\nThis speech calmed me. I was firmly convinced in my own mind that\r\nJustine, and indeed every human being, was guiltless of this murder. I\r\nhad no fear, therefore, that any circumstantial evidence could be\r\nbrought forward strong enough to convict her. My tale was not one to\r\nannounce publicly; its astounding horror would be looked upon as\r\nmadness by the vulgar. Did any one indeed exist, except I, the\r\ncreator, who would believe, unless his senses convinced him, in the\r\nexistence of the living monument of presumption and rash ignorance\r\nwhich I had let loose upon the world?\r\n\r\nWe were soon joined by Elizabeth. Time had altered her since I last\r\nbeheld her; it had endowed her with loveliness surpassing the beauty of\r\nher childish years. There was the same candour, the same vivacity, but\r\nit was allied to an expression more full of sensibility and intellect.\r\nShe welcomed me with the greatest affection. “Your arrival, my dear\r\ncousin,” said she, “fills me with hope. You perhaps will find some\r\nmeans to justify my poor guiltless Justine. Alas! who is safe, if she\r\nbe convicted of crime? I rely on her innocence as certainly as I do\r\nupon my own. Our misfortune is doubly hard to us; we have not only\r\nlost that lovely darling boy, but this poor girl, whom I sincerely\r\nlove, is to be torn away by even a worse fate. If she is condemned, I\r\nnever shall know joy more. But she will not, I am sure she will not;\r\nand then I shall be happy again, even after the sad death of my little\r\nWilliam.”\r\n\r\n“She is innocent, my Elizabeth,” said I, “and that shall\r\nbe proved; fear nothing, but let your spirits be cheered by the assurance\r\nof her acquittal.”\r\n\r\n“How kind and generous you are! every one else believes in her guilt,\r\nand that made me wretched, for I knew that it was impossible: and to\r\nsee every one else prejudiced in so deadly a manner rendered me\r\nhopeless and despairing.” She wept.\r\n\r\n“Dearest niece,” said my father, “dry your tears. If she\r\nis, as you believe, innocent, rely on the justice of our laws, and the\r\nactivity with which I shall prevent the slightest shadow of\r\npartiality.”\r\n\r\n\r\n\r\n\r\nChapter 8\r\n\r\n\r\nWe passed a few sad hours until eleven o’clock, when the trial was to\r\ncommence. My father and the rest of the family being obliged to attend\r\nas witnesses, I accompanied them to the court. During the whole of\r\nthis wretched mockery of justice I suffered living torture. It was to\r\nbe decided whether the result of my curiosity and lawless devices would\r\ncause the death of two of my fellow beings: one a smiling babe full of\r\ninnocence and joy, the other far more dreadfully murdered, with every\r\naggravation of infamy that could make the murder memorable in horror.\r\nJustine also was a girl of merit and possessed qualities which promised\r\nto render her life happy; now all was to be obliterated in an\r\nignominious grave, and I the cause! A thousand times rather would I\r\nhave confessed myself guilty of the crime ascribed to Justine, but I\r\nwas absent when it was committed, and such a declaration would have\r\nbeen considered as the ravings of a madman and would not have\r\nexculpated her who suffered through me.\r\n\r\nThe appearance of Justine was calm. She was dressed in mourning, and\r\nher countenance, always engaging, was rendered, by the solemnity of her\r\nfeelings, exquisitely beautiful. Yet she appeared confident in\r\ninnocence and did not tremble, although gazed on and execrated by\r\nthousands, for all the kindness which her beauty might otherwise have\r\nexcited was obliterated in the minds of the spectators by the\r\nimagination of the enormity she was supposed to have committed. She\r\nwas tranquil, yet her tranquillity was evidently constrained; and as\r\nher confusion had before been adduced as a proof of her guilt, she\r\nworked up her mind to an appearance of courage. When she entered the\r\ncourt she threw her eyes round it and quickly discovered where we were\r\nseated. A tear seemed to dim her eye when she saw us, but she quickly\r\nrecovered herself, and a look of sorrowful affection seemed to attest\r\nher utter guiltlessness.\r\n\r\nThe trial began, and after the advocate against her had stated the\r\ncharge, several witnesses were called. Several strange facts combined\r\nagainst her, which might have staggered anyone who had not such proof\r\nof her innocence as I had. She had been out the whole of the night on\r\nwhich the murder had been committed and towards morning had been\r\nperceived by a market-woman not far from the spot where the body of the\r\nmurdered child had been afterwards found. The woman asked her what she\r\ndid there, but she looked very strangely and only returned a confused\r\nand unintelligible answer. She returned to the house about eight\r\no’clock, and when one inquired where she had passed the night, she\r\nreplied that she had been looking for the child and demanded earnestly\r\nif anything had been heard concerning him. When shown the body, she\r\nfell into violent hysterics and kept her bed for several days. The\r\npicture was then produced which the servant had found in her pocket;\r\nand when Elizabeth, in a faltering voice, proved that it was the same\r\nwhich, an hour before the child had been missed, she had placed round\r\nhis neck, a murmur of horror and indignation filled the court.\r\n\r\nJustine was called on for her defence. As the trial had proceeded, her\r\ncountenance had altered. Surprise, horror, and misery were strongly\r\nexpressed. Sometimes she struggled with her tears, but when she was\r\ndesired to plead, she collected her powers and spoke in an audible\r\nalthough variable voice.\r\n\r\n“God knows,” she said, “how entirely I am innocent. But I\r\ndo not pretend that my protestations should acquit me; I rest my innocence\r\non a plain and simple explanation of the facts which have been adduced\r\nagainst me, and I hope the character I have always borne will incline my\r\njudges to a favourable interpretation where any circumstance appears\r\ndoubtful or suspicious.”\r\n\r\nShe then related that, by the permission of Elizabeth, she had passed\r\nthe evening of the night on which the murder had been committed at the\r\nhouse of an aunt at Chêne, a village situated at about a league from\r\nGeneva. On her return, at about nine o’clock, she met a man who asked\r\nher if she had seen anything of the child who was lost. She was\r\nalarmed by this account and passed several hours in looking for him,\r\nwhen the gates of Geneva were shut, and she was forced to remain\r\nseveral hours of the night in a barn belonging to a cottage, being\r\nunwilling to call up the inhabitants, to whom she was well known. Most\r\nof the night she spent here watching; towards morning she believed that\r\nshe slept for a few minutes; some steps disturbed her, and she awoke.\r\nIt was dawn, and she quitted her asylum, that she might again endeavour\r\nto find my brother. If she had gone near the spot where his body lay,\r\nit was without her knowledge. That she had been bewildered when\r\nquestioned by the market-woman was not surprising, since she had passed\r\na sleepless night and the fate of poor William was yet uncertain.\r\nConcerning the picture she could give no account.\r\n\r\n“I know,” continued the unhappy victim, “how heavily and\r\nfatally this one circumstance weighs against me, but I have no power of\r\nexplaining it; and when I have expressed my utter ignorance, I am only left\r\nto conjecture concerning the probabilities by which it might have been\r\nplaced in my pocket. But here also I am checked. I believe that I have no\r\nenemy on earth, and none surely would have been so wicked as to destroy me\r\nwantonly. Did the murderer place it there? I know of no opportunity\r\nafforded him for so doing; or, if I had, why should he have stolen the\r\njewel, to part with it again so soon?\r\n\r\n“I commit my cause to the justice of my judges, yet I see no room for\r\nhope. I beg permission to have a few witnesses examined concerning my\r\ncharacter, and if their testimony shall not overweigh my supposed\r\nguilt, I must be condemned, although I would pledge my salvation on my\r\ninnocence.”\r\n\r\nSeveral witnesses were called who had known her for many years, and\r\nthey spoke well of her; but fear and hatred of the crime of which they\r\nsupposed her guilty rendered them timorous and unwilling to come\r\nforward. Elizabeth saw even this last resource, her excellent\r\ndispositions and irreproachable conduct, about to fail the accused,\r\nwhen, although violently agitated, she desired permission to address\r\nthe court.\r\n\r\n“I am,” said she, “the cousin of the unhappy child who\r\nwas murdered, or rather his sister, for I was educated by and have lived\r\nwith his parents ever since and even long before his birth. It may\r\ntherefore be judged indecent in me to come forward on this occasion, but\r\nwhen I see a fellow creature about to perish through the cowardice of her\r\npretended friends, I wish to be allowed to speak, that I may say what I\r\nknow of her character. I am well acquainted with the accused. I have lived\r\nin the same house with her, at one time for five and at another for nearly\r\ntwo years. During all that period she appeared to me the most amiable and\r\nbenevolent of human creatures. She nursed Madame Frankenstein, my aunt, in\r\nher last illness, with the greatest affection and care and afterwards\r\nattended her own mother during a tedious illness, in a manner that excited\r\nthe admiration of all who knew her, after which she again lived in my\r\nuncle’s house, where she was beloved by all the family. She was\r\nwarmly attached to the child who is now dead and acted towards him like a\r\nmost affectionate mother. For my own part, I do not hesitate to say that,\r\nnotwithstanding all the evidence produced against her, I believe and rely\r\non her perfect innocence. She had no temptation for such an action; as to\r\nthe bauble on which the chief proof rests, if she had earnestly desired it,\r\nI should have willingly given it to her, so much do I esteem and value\r\nher.”\r\n\r\nA murmur of approbation followed Elizabeth’s simple and powerful\r\nappeal, but it was excited by her generous interference, and not in\r\nfavour of poor Justine, on whom the public indignation was turned with\r\nrenewed violence, charging her with the blackest ingratitude. She\r\nherself wept as Elizabeth spoke, but she did not answer. My own\r\nagitation and anguish was extreme during the whole trial. I believed\r\nin her innocence; I knew it. Could the dæmon who had (I did not for a\r\nminute doubt) murdered my brother also in his hellish sport have\r\nbetrayed the innocent to death and ignominy? I could not sustain the\r\nhorror of my situation, and when I perceived that the popular voice and\r\nthe countenances of the judges had already condemned my unhappy victim,\r\nI rushed out of the court in agony. The tortures of the accused did\r\nnot equal mine; she was sustained by innocence, but the fangs of\r\nremorse tore my bosom and would not forgo their hold.\r\n\r\nI passed a night of unmingled wretchedness. In the morning I went to\r\nthe court; my lips and throat were parched. I dared not ask the fatal\r\nquestion, but I was known, and the officer guessed the cause of my\r\nvisit. The ballots had been thrown; they were all black, and Justine\r\nwas condemned.\r\n\r\nI cannot pretend to describe what I then felt. I had before\r\nexperienced sensations of horror, and I have endeavoured to bestow upon\r\nthem adequate expressions, but words cannot convey an idea of the\r\nheart-sickening despair that I then endured. The person to whom I\r\naddressed myself added that Justine had already confessed her guilt.\r\n“That evidence,” he observed, “was hardly required in so glaring a\r\ncase, but I am glad of it, and, indeed, none of our judges like to\r\ncondemn a criminal upon circumstantial evidence, be it ever so\r\ndecisive.”\r\n\r\nThis was strange and unexpected intelligence; what could it mean? Had\r\nmy eyes deceived me? And was I really as mad as the whole world would\r\nbelieve me to be if I disclosed the object of my suspicions? I\r\nhastened to return home, and Elizabeth eagerly demanded the result.\r\n\r\n“My cousin,” replied I, “it is decided as you may have expected; all\r\njudges had rather that ten innocent should suffer than that one guilty\r\nshould escape. But she has confessed.”\r\n\r\nThis was a dire blow to poor Elizabeth, who had relied with firmness upon\r\nJustine’s innocence. “Alas!” said she. “How shall I\r\never again believe in human goodness? Justine, whom I loved and esteemed as\r\nmy sister, how could she put on those smiles of innocence only to betray?\r\nHer mild eyes seemed incapable of any severity or guile, and yet she has\r\ncommitted a murder.”\r\n\r\nSoon after we heard that the poor victim had expressed a desire to see my\r\ncousin. My father wished her not to go but said that he left it to her own\r\njudgment and feelings to decide. “Yes,” said Elizabeth,\r\n“I will go, although she is guilty; and you, Victor, shall accompany\r\nme; I cannot go alone.” The idea of this visit was torture to me, yet\r\nI could not refuse.\r\n\r\nWe entered the gloomy prison chamber and beheld Justine sitting on some\r\nstraw at the farther end; her hands were manacled, and her head rested on\r\nher knees. She rose on seeing us enter, and when we were left alone with\r\nher, she threw herself at the feet of Elizabeth, weeping bitterly. My\r\ncousin wept also.\r\n\r\n“Oh, Justine!” said she. “Why did you rob me of my last consolation?\r\nI relied on your innocence, and although I was then very wretched, I\r\nwas not so miserable as I am now.”\r\n\r\n“And do you also believe that I am so very, very wicked? Do you also\r\njoin with my enemies to crush me, to condemn me as a murderer?” Her\r\nvoice was suffocated with sobs.\r\n\r\n“Rise, my poor girl,” said Elizabeth; “why do you kneel,\r\nif you are innocent? I am not one of your enemies, I believed you\r\nguiltless, notwithstanding every evidence, until I heard that you had\r\nyourself declared your guilt. That report, you say, is false; and be\r\nassured, dear Justine, that nothing can shake my confidence in you for a\r\nmoment, but your own confession.”\r\n\r\n“I did confess, but I confessed a lie. I confessed, that I might\r\nobtain absolution; but now that falsehood lies heavier at my heart than\r\nall my other sins. The God of heaven forgive me! Ever since I was\r\ncondemned, my confessor has besieged me; he threatened and menaced,\r\nuntil I almost began to think that I was the monster that he said I\r\nwas. He threatened excommunication and hell fire in my last moments if\r\nI continued obdurate. Dear lady, I had none to support me; all looked\r\non me as a wretch doomed to ignominy and perdition. What could I do?\r\nIn an evil hour I subscribed to a lie; and now only am I truly\r\nmiserable.”\r\n\r\nShe paused, weeping, and then continued, “I thought with horror, my\r\nsweet lady, that you should believe your Justine, whom your blessed\r\naunt had so highly honoured, and whom you loved, was a creature capable\r\nof a crime which none but the devil himself could have perpetrated.\r\nDear William! dearest blessed child! I soon shall see you again in\r\nheaven, where we shall all be happy; and that consoles me, going as I\r\nam to suffer ignominy and death.”\r\n\r\n“Oh, Justine! Forgive me for having for one moment distrusted you.\r\nWhy did you confess? But do not mourn, dear girl. Do not fear. I\r\nwill proclaim, I will prove your innocence. I will melt the stony\r\nhearts of your enemies by my tears and prayers. You shall not die!\r\nYou, my playfellow, my companion, my sister, perish on the scaffold!\r\nNo! No! I never could survive so horrible a misfortune.”\r\n\r\nJustine shook her head mournfully. “I do not fear to die,” she said;\r\n“that pang is past. God raises my weakness and gives me courage to\r\nendure the worst. I leave a sad and bitter world; and if you remember\r\nme and think of me as of one unjustly condemned, I am resigned to the\r\nfate awaiting me. Learn from me, dear lady, to submit in patience to\r\nthe will of heaven!”\r\n\r\nDuring this conversation I had retired to a corner of the prison room,\r\nwhere I could conceal the horrid anguish that possessed me. Despair!\r\nWho dared talk of that? The poor victim, who on the morrow was to pass\r\nthe awful boundary between life and death, felt not, as I did, such\r\ndeep and bitter agony. I gnashed my teeth and ground them together,\r\nuttering a groan that came from my inmost soul. Justine started. When\r\nshe saw who it was, she approached me and said, “Dear sir, you are very\r\nkind to visit me; you, I hope, do not believe that I am guilty?”\r\n\r\nI could not answer. “No, Justine,” said Elizabeth; “he is more\r\nconvinced of your innocence than I was, for even when he heard that you\r\nhad confessed, he did not credit it.”\r\n\r\n“I truly thank him. In these last moments I feel the sincerest\r\ngratitude towards those who think of me with kindness. How sweet is\r\nthe affection of others to such a wretch as I am! It removes more than\r\nhalf my misfortune, and I feel as if I could die in peace now that my\r\ninnocence is acknowledged by you, dear lady, and your cousin.”\r\n\r\nThus the poor sufferer tried to comfort others and herself. She indeed\r\ngained the resignation she desired. But I, the true murderer, felt the\r\nnever-dying worm alive in my bosom, which allowed of no hope or\r\nconsolation. Elizabeth also wept and was unhappy, but hers also was\r\nthe misery of innocence, which, like a cloud that passes over the fair\r\nmoon, for a while hides but cannot tarnish its brightness. Anguish and\r\ndespair had penetrated into the core of my heart; I bore a hell within\r\nme which nothing could extinguish. We stayed several hours with\r\nJustine, and it was with great difficulty that Elizabeth could tear\r\nherself away. “I wish,” cried she, “that I were to die with you; I\r\ncannot live in this world of misery.”\r\n\r\nJustine assumed an air of cheerfulness, while she with difficulty\r\nrepressed her bitter tears. She embraced Elizabeth and said in a voice\r\nof half-suppressed emotion, “Farewell, sweet lady, dearest Elizabeth,\r\nmy beloved and only friend; may heaven, in its bounty, bless and\r\npreserve you; may this be the last misfortune that you will ever\r\nsuffer! Live, and be happy, and make others so.”\r\n\r\nAnd on the morrow Justine died. Elizabeth’s heart-rending eloquence\r\nfailed to move the judges from their settled conviction in the\r\ncriminality of the saintly sufferer. My passionate and indignant\r\nappeals were lost upon them. And when I received their cold answers\r\nand heard the harsh, unfeeling reasoning of these men, my purposed\r\navowal died away on my lips. Thus I might proclaim myself a madman,\r\nbut not revoke the sentence passed upon my wretched victim. She\r\nperished on the scaffold as a murderess!\r\n\r\nFrom the tortures of my own heart, I turned to contemplate the deep and\r\nvoiceless grief of my Elizabeth. This also was my doing! And my\r\nfather’s woe, and the desolation of that late so smiling home all was\r\nthe work of my thrice-accursed hands! Ye weep, unhappy ones, but these\r\nare not your last tears! Again shall you raise the funeral wail, and\r\nthe sound of your lamentations shall again and again be heard!\r\nFrankenstein, your son, your kinsman, your early, much-loved friend; he\r\nwho would spend each vital drop of blood for your sakes, who has no\r\nthought nor sense of joy except as it is mirrored also in your dear\r\ncountenances, who would fill the air with blessings and spend his life\r\nin serving you—he bids you weep, to shed countless tears; happy beyond\r\nhis hopes, if thus inexorable fate be satisfied, and if the destruction\r\npause before the peace of the grave have succeeded to your sad torments!\r\n\r\nThus spoke my prophetic soul, as, torn by remorse, horror, and despair,\r\nI beheld those I loved spend vain sorrow upon the graves of William and\r\nJustine, the first hapless victims to my unhallowed arts.\r\n\r\n\r\n\r\n\r\nChapter 9\r\n\r\n\r\nNothing is more painful to the human mind than, after the feelings have\r\nbeen worked up by a quick succession of events, the dead calmness of\r\ninaction and certainty which follows and deprives the soul both of hope\r\nand fear. Justine died, she rested, and I was alive. The blood flowed\r\nfreely in my veins, but a weight of despair and remorse pressed on my\r\nheart which nothing could remove. Sleep fled from my eyes; I wandered\r\nlike an evil spirit, for I had committed deeds of mischief beyond\r\ndescription horrible, and more, much more (I persuaded myself) was yet\r\nbehind. Yet my heart overflowed with kindness and the love of virtue.\r\nI had begun life with benevolent intentions and thirsted for the moment\r\nwhen I should put them in practice and make myself useful to my fellow\r\nbeings. Now all was blasted; instead of that serenity of conscience\r\nwhich allowed me to look back upon the past with self-satisfaction, and\r\nfrom thence to gather promise of new hopes, I was seized by remorse and\r\nthe sense of guilt, which hurried me away to a hell of intense tortures\r\nsuch as no language can describe.\r\n\r\nThis state of mind preyed upon my health, which had perhaps never\r\nentirely recovered from the first shock it had sustained. I shunned\r\nthe face of man; all sound of joy or complacency was torture to me;\r\nsolitude was my only consolation—deep, dark, deathlike solitude.\r\n\r\nMy father observed with pain the alteration perceptible in my disposition\r\nand habits and endeavoured by arguments deduced from the feelings of his\r\nserene conscience and guiltless life to inspire me with fortitude and\r\nawaken in me the courage to dispel the dark cloud which brooded over me.\r\n“Do you think, Victor,” said he, “that I do not suffer\r\nalso? No one could love a child more than I loved your\r\nbrother”—tears came into his eyes as he spoke—“but\r\nis it not a duty to the survivors that we should refrain from augmenting\r\ntheir unhappiness by an appearance of immoderate grief? It is also a duty\r\nowed to yourself, for excessive sorrow prevents improvement or enjoyment,\r\nor even the discharge of daily usefulness, without which no man is fit for\r\nsociety.”\r\n\r\nThis advice, although good, was totally inapplicable to my case; I\r\nshould have been the first to hide my grief and console my friends if\r\nremorse had not mingled its bitterness, and terror its alarm, with my\r\nother sensations. Now I could only answer my father with a look of\r\ndespair and endeavour to hide myself from his view.\r\n\r\nAbout this time we retired to our house at Belrive. This change was\r\nparticularly agreeable to me. The shutting of the gates regularly at\r\nten o’clock and the impossibility of remaining on the lake after that\r\nhour had rendered our residence within the walls of Geneva very irksome\r\nto me. I was now free. Often, after the rest of the family had\r\nretired for the night, I took the boat and passed many hours upon the\r\nwater. Sometimes, with my sails set, I was carried by the wind; and\r\nsometimes, after rowing into the middle of the lake, I left the boat to\r\npursue its own course and gave way to my own miserable reflections. I\r\nwas often tempted, when all was at peace around me, and I the only\r\nunquiet thing that wandered restless in a scene so beautiful and\r\nheavenly—if I except some bat, or the frogs, whose harsh and\r\ninterrupted croaking was heard only when I approached the shore—often,\r\nI say, I was tempted to plunge into the silent lake, that the waters\r\nmight close over me and my calamities for ever. But I was restrained,\r\nwhen I thought of the heroic and suffering Elizabeth, whom I tenderly\r\nloved, and whose existence was bound up in mine. I thought also of my\r\nfather and surviving brother; should I by my base desertion leave them\r\nexposed and unprotected to the malice of the fiend whom I had let loose\r\namong them?\r\n\r\nAt these moments I wept bitterly and wished that peace would revisit my\r\nmind only that I might afford them consolation and happiness. But that\r\ncould not be. Remorse extinguished every hope. I had been the author of\r\nunalterable evils, and I lived in daily fear lest the monster whom I had\r\ncreated should perpetrate some new wickedness. I had an obscure feeling\r\nthat all was not over and that he would still commit some signal crime,\r\nwhich by its enormity should almost efface the recollection of the past.\r\nThere was always scope for fear so long as anything I loved remained\r\nbehind. My abhorrence of this fiend cannot be conceived. When I thought of\r\nhim I gnashed my teeth, my eyes became inflamed, and I ardently wished to\r\nextinguish that life which I had so thoughtlessly bestowed. When I\r\nreflected on his crimes and malice, my hatred and revenge burst all bounds\r\nof moderation. I would have made a pilgrimage to the highest peak of the\r\nAndes, could I, when there, have precipitated him to their base. I wished\r\nto see him again, that I might wreak the utmost extent of abhorrence on his\r\nhead and avenge the deaths of William and Justine.\r\n\r\nOur house was the house of mourning. My father’s health was deeply\r\nshaken by the horror of the recent events. Elizabeth was sad and\r\ndesponding; she no longer took delight in her ordinary occupations; all\r\npleasure seemed to her sacrilege toward the dead; eternal woe and tears she\r\nthen thought was the just tribute she should pay to innocence so blasted\r\nand destroyed. She was no longer that happy creature who in earlier youth\r\nwandered with me on the banks of the lake and talked with ecstasy of our\r\nfuture prospects. The first of those sorrows which are sent to wean us from\r\nthe earth had visited her, and its dimming influence quenched her dearest\r\nsmiles.\r\n\r\n“When I reflect, my dear cousin,” said she, “on the miserable death of\r\nJustine Moritz, I no longer see the world and its works as they before\r\nappeared to me. Before, I looked upon the accounts of vice and\r\ninjustice that I read in books or heard from others as tales of ancient\r\ndays or imaginary evils; at least they were remote and more familiar to\r\nreason than to the imagination; but now misery has come home, and men\r\nappear to me as monsters thirsting for each other’s blood. Yet I am\r\ncertainly unjust. Everybody believed that poor girl to be guilty; and\r\nif she could have committed the crime for which she suffered, assuredly\r\nshe would have been the most depraved of human creatures. For the sake\r\nof a few jewels, to have murdered the son of her benefactor and friend,\r\na child whom she had nursed from its birth, and appeared to love as if\r\nit had been her own! I could not consent to the death of any human\r\nbeing, but certainly I should have thought such a creature unfit to\r\nremain in the society of men. But she was innocent. I know, I feel\r\nshe was innocent; you are of the same opinion, and that confirms me.\r\nAlas! Victor, when falsehood can look so like the truth, who can\r\nassure themselves of certain happiness? I feel as if I were walking on\r\nthe edge of a precipice, towards which thousands are crowding and\r\nendeavouring to plunge me into the abyss. William and Justine were\r\nassassinated, and the murderer escapes; he walks about the world free,\r\nand perhaps respected. But even if I were condemned to suffer on the\r\nscaffold for the same crimes, I would not change places with such a\r\nwretch.”\r\n\r\nI listened to this discourse with the extremest agony. I, not in deed,\r\nbut in effect, was the true murderer. Elizabeth read my anguish in my\r\ncountenance, and kindly taking my hand, said, “My dearest friend, you\r\nmust calm yourself. These events have affected me, God knows how\r\ndeeply; but I am not so wretched as you are. There is an expression of\r\ndespair, and sometimes of revenge, in your countenance that makes me\r\ntremble. Dear Victor, banish these dark passions. Remember the\r\nfriends around you, who centre all their hopes in you. Have we lost\r\nthe power of rendering you happy? Ah! While we love, while we are\r\ntrue to each other, here in this land of peace and beauty, your native\r\ncountry, we may reap every tranquil blessing—what can disturb our\r\npeace?”\r\n\r\nAnd could not such words from her whom I fondly prized before every\r\nother gift of fortune suffice to chase away the fiend that lurked in my\r\nheart? Even as she spoke I drew near to her, as if in terror, lest at\r\nthat very moment the destroyer had been near to rob me of her.\r\n\r\nThus not the tenderness of friendship, nor the beauty of earth, nor of\r\nheaven, could redeem my soul from woe; the very accents of love were\r\nineffectual. I was encompassed by a cloud which no beneficial\r\ninfluence could penetrate. The wounded deer dragging its fainting\r\nlimbs to some untrodden brake, there to gaze upon the arrow which had\r\npierced it, and to die, was but a type of me.\r\n\r\nSometimes I could cope with the sullen despair that overwhelmed me, but\r\nsometimes the whirlwind passions of my soul drove me to seek, by bodily\r\nexercise and by change of place, some relief from my intolerable\r\nsensations. It was during an access of this kind that I suddenly left\r\nmy home, and bending my steps towards the near Alpine valleys, sought\r\nin the magnificence, the eternity of such scenes, to forget myself and\r\nmy ephemeral, because human, sorrows. My wanderings were directed\r\ntowards the valley of Chamounix. I had visited it frequently during my\r\nboyhood. Six years had passed since then: _I_ was a wreck, but nought\r\nhad changed in those savage and enduring scenes.\r\n\r\nI performed the first part of my journey on horseback. I afterwards\r\nhired a mule, as the more sure-footed and least liable to receive\r\ninjury on these rugged roads. The weather was fine; it was about the\r\nmiddle of the month of August, nearly two months after the death of\r\nJustine, that miserable epoch from which I dated all my woe. The\r\nweight upon my spirit was sensibly lightened as I plunged yet deeper in\r\nthe ravine of Arve. The immense mountains and precipices that overhung\r\nme on every side, the sound of the river raging among the rocks, and\r\nthe dashing of the waterfalls around spoke of a power mighty as\r\nOmnipotence—and I ceased to fear or to bend before any being less\r\nalmighty than that which had created and ruled the elements, here\r\ndisplayed in their most terrific guise. Still, as I ascended higher,\r\nthe valley assumed a more magnificent and astonishing character.\r\nRuined castles hanging on the precipices of piny mountains, the\r\nimpetuous Arve, and cottages every here and there peeping forth from\r\namong the trees formed a scene of singular beauty. But it was\r\naugmented and rendered sublime by the mighty Alps, whose white and\r\nshining pyramids and domes towered above all, as belonging to another\r\nearth, the habitations of another race of beings.\r\n\r\nI passed the bridge of Pélissier, where the ravine, which the river\r\nforms, opened before me, and I began to ascend the mountain that\r\noverhangs it. Soon after, I entered the valley of Chamounix. This\r\nvalley is more wonderful and sublime, but not so beautiful and\r\npicturesque as that of Servox, through which I had just passed. The\r\nhigh and snowy mountains were its immediate boundaries, but I saw no\r\nmore ruined castles and fertile fields. Immense glaciers approached\r\nthe road; I heard the rumbling thunder of the falling avalanche and\r\nmarked the smoke of its passage. Mont Blanc, the supreme and\r\nmagnificent Mont Blanc, raised itself from the surrounding _aiguilles_,\r\nand its tremendous _dôme_ overlooked the valley.\r\n\r\nA tingling long-lost sense of pleasure often came across me during this\r\njourney. Some turn in the road, some new object suddenly perceived and\r\nrecognised, reminded me of days gone by, and were associated with the\r\nlighthearted gaiety of boyhood. The very winds whispered in soothing\r\naccents, and maternal Nature bade me weep no more. Then again the\r\nkindly influence ceased to act—I found myself fettered again to grief\r\nand indulging in all the misery of reflection. Then I spurred on my\r\nanimal, striving so to forget the world, my fears, and more than all,\r\nmyself—or, in a more desperate fashion, I alighted and threw myself on\r\nthe grass, weighed down by horror and despair.\r\n\r\nAt length I arrived at the village of Chamounix. Exhaustion succeeded\r\nto the extreme fatigue both of body and of mind which I had endured.\r\nFor a short space of time I remained at the window watching the pallid\r\nlightnings that played above Mont Blanc and listening to the rushing of\r\nthe Arve, which pursued its noisy way beneath. The same lulling sounds\r\nacted as a lullaby to my too keen sensations; when I placed my head\r\nupon my pillow, sleep crept over me; I felt it as it came and blessed\r\nthe giver of oblivion.\r\n\r\n\r\n\r\n\r\nChapter 10\r\n\r\n\r\nI spent the following day roaming through the valley. I stood beside\r\nthe sources of the Arveiron, which take their rise in a glacier, that\r\nwith slow pace is advancing down from the summit of the hills to\r\nbarricade the valley. The abrupt sides of vast mountains were before\r\nme; the icy wall of the glacier overhung me; a few shattered pines were\r\nscattered around; and the solemn silence of this glorious\r\npresence-chamber of imperial Nature was broken only by the brawling\r\nwaves or the fall of some vast fragment, the thunder sound of the\r\navalanche or the cracking, reverberated along the mountains, of the\r\naccumulated ice, which, through the silent working of immutable laws,\r\nwas ever and anon rent and torn, as if it had been but a plaything in\r\ntheir hands. These sublime and magnificent scenes afforded me the\r\ngreatest consolation that I was capable of receiving. They elevated me\r\nfrom all littleness of feeling, and although they did not remove my\r\ngrief, they subdued and tranquillised it. In some degree, also, they\r\ndiverted my mind from the thoughts over which it had brooded for the\r\nlast month. I retired to rest at night; my slumbers, as it were,\r\nwaited on and ministered to by the assemblance of grand shapes which I\r\nhad contemplated during the day. They congregated round me; the\r\nunstained snowy mountain-top, the glittering pinnacle, the pine woods,\r\nand ragged bare ravine, the eagle, soaring amidst the clouds—they all\r\ngathered round me and bade me be at peace.\r\n\r\nWhere had they fled when the next morning I awoke? All of\r\nsoul-inspiriting fled with sleep, and dark melancholy clouded every\r\nthought. The rain was pouring in torrents, and thick mists hid the\r\nsummits of the mountains, so that I even saw not the faces of those\r\nmighty friends. Still I would penetrate their misty veil and seek them\r\nin their cloudy retreats. What were rain and storm to me? My mule was\r\nbrought to the door, and I resolved to ascend to the summit of\r\nMontanvert. I remembered the effect that the view of the tremendous\r\nand ever-moving glacier had produced upon my mind when I first saw it.\r\nIt had then filled me with a sublime ecstasy that gave wings to the\r\nsoul and allowed it to soar from the obscure world to light and joy.\r\nThe sight of the awful and majestic in nature had indeed always the\r\neffect of solemnising my mind and causing me to forget the passing\r\ncares of life. I determined to go without a guide, for I was well\r\nacquainted with the path, and the presence of another would destroy the\r\nsolitary grandeur of the scene.\r\n\r\nThe ascent is precipitous, but the path is cut into continual and short\r\nwindings, which enable you to surmount the perpendicularity of the\r\nmountain. It is a scene terrifically desolate. In a thousand spots\r\nthe traces of the winter avalanche may be perceived, where trees lie\r\nbroken and strewed on the ground, some entirely destroyed, others bent,\r\nleaning upon the jutting rocks of the mountain or transversely upon\r\nother trees. The path, as you ascend higher, is intersected by ravines\r\nof snow, down which stones continually roll from above; one of them is\r\nparticularly dangerous, as the slightest sound, such as even speaking\r\nin a loud voice, produces a concussion of air sufficient to draw\r\ndestruction upon the head of the speaker. The pines are not tall or\r\nluxuriant, but they are sombre and add an air of severity to the scene.\r\nI looked on the valley beneath; vast mists were rising from the rivers\r\nwhich ran through it and curling in thick wreaths around the opposite\r\nmountains, whose summits were hid in the uniform clouds, while rain\r\npoured from the dark sky and added to the melancholy impression I\r\nreceived from the objects around me. Alas! Why does man boast of\r\nsensibilities superior to those apparent in the brute; it only renders\r\nthem more necessary beings. If our impulses were confined to hunger,\r\nthirst, and desire, we might be nearly free; but now we are moved by\r\nevery wind that blows and a chance word or scene that that word may\r\nconvey to us.\r\n\r\n We rest; a dream has power to poison sleep.\r\n We rise; one wand’ring thought pollutes the day.\r\n We feel, conceive, or reason; laugh or weep,\r\n Embrace fond woe, or cast our cares away;\r\n It is the same: for, be it joy or sorrow,\r\n The path of its departure still is free.\r\n Man’s yesterday may ne’er be like his morrow;\r\n Nought may endure but mutability!\r\n\r\n\r\nIt was nearly noon when I arrived at the top of the ascent. For some\r\ntime I sat upon the rock that overlooks the sea of ice. A mist covered\r\nboth that and the surrounding mountains. Presently a breeze dissipated\r\nthe cloud, and I descended upon the glacier. The surface is very\r\nuneven, rising like the waves of a troubled sea, descending low, and\r\ninterspersed by rifts that sink deep. The field of ice is almost a\r\nleague in width, but I spent nearly two hours in crossing it. The\r\nopposite mountain is a bare perpendicular rock. From the side where I\r\nnow stood Montanvert was exactly opposite, at the distance of a league;\r\nand above it rose Mont Blanc, in awful majesty. I remained in a recess\r\nof the rock, gazing on this wonderful and stupendous scene. The sea,\r\nor rather the vast river of ice, wound among its dependent mountains,\r\nwhose aerial summits hung over its recesses. Their icy and glittering\r\npeaks shone in the sunlight over the clouds. My heart, which was\r\nbefore sorrowful, now swelled with something like joy; I exclaimed,\r\n“Wandering spirits, if indeed ye wander, and do not rest in your narrow\r\nbeds, allow me this faint happiness, or take me, as your companion,\r\naway from the joys of life.”\r\n\r\nAs I said this I suddenly beheld the figure of a man, at some distance,\r\nadvancing towards me with superhuman speed. He bounded over the\r\ncrevices in the ice, among which I had walked with caution; his\r\nstature, also, as he approached, seemed to exceed that of man. I was\r\ntroubled; a mist came over my eyes, and I felt a faintness seize me,\r\nbut I was quickly restored by the cold gale of the mountains. I\r\nperceived, as the shape came nearer (sight tremendous and abhorred!)\r\nthat it was the wretch whom I had created. I trembled with rage and\r\nhorror, resolving to wait his approach and then close with him in\r\nmortal combat. He approached; his countenance bespoke bitter anguish,\r\ncombined with disdain and malignity, while its unearthly ugliness\r\nrendered it almost too horrible for human eyes. But I scarcely\r\nobserved this; rage and hatred had at first deprived me of utterance,\r\nand I recovered only to overwhelm him with words expressive of furious\r\ndetestation and contempt.\r\n\r\n“Devil,” I exclaimed, “do you dare approach me? And do\r\nnot you fear the fierce vengeance of my arm wreaked on your miserable head?\r\nBegone, vile insect! Or rather, stay, that I may trample you to dust! And,\r\noh! That I could, with the extinction of your miserable existence, restore\r\nthose victims whom you have so diabolically murdered!”\r\n\r\n“I expected this reception,” said the dæmon. “All men hate the\r\nwretched; how, then, must I be hated, who am miserable beyond all\r\nliving things! Yet you, my creator, detest and spurn me, thy creature,\r\nto whom thou art bound by ties only dissoluble by the annihilation of\r\none of us. You purpose to kill me. How dare you sport thus with life?\r\nDo your duty towards me, and I will do mine towards you and the rest of\r\nmankind. If you will comply with my conditions, I will leave them and\r\nyou at peace; but if you refuse, I will glut the maw of death, until it\r\nbe satiated with the blood of your remaining friends.”\r\n\r\n“Abhorred monster! Fiend that thou art! The tortures of hell are too\r\nmild a vengeance for thy crimes. Wretched devil! You reproach me with\r\nyour creation, come on, then, that I may extinguish the spark which I\r\nso negligently bestowed.”\r\n\r\nMy rage was without bounds; I sprang on him, impelled by all the\r\nfeelings which can arm one being against the existence of another.\r\n\r\nHe easily eluded me and said,\r\n\r\n“Be calm! I entreat you to hear me before you give vent to your hatred\r\non my devoted head. Have I not suffered enough, that you seek to\r\nincrease my misery? Life, although it may only be an accumulation of\r\nanguish, is dear to me, and I will defend it. Remember, thou hast made\r\nme more powerful than thyself; my height is superior to thine, my\r\njoints more supple. But I will not be tempted to set myself in\r\nopposition to thee. I am thy creature, and I will be even mild and\r\ndocile to my natural lord and king if thou wilt also perform thy part,\r\nthe which thou owest me. Oh, Frankenstein, be not equitable to every\r\nother and trample upon me alone, to whom thy justice, and even thy\r\nclemency and affection, is most due. Remember that I am thy creature;\r\nI ought to be thy Adam, but I am rather the fallen angel, whom thou\r\ndrivest from joy for no misdeed. Everywhere I see bliss, from which I\r\nalone am irrevocably excluded. I was benevolent and good; misery made\r\nme a fiend. Make me happy, and I shall again be virtuous.”\r\n\r\n“Begone! I will not hear you. There can be no community between you\r\nand me; we are enemies. Begone, or let us try our strength in a fight,\r\nin which one must fall.”\r\n\r\n“How can I move thee? Will no entreaties cause thee to turn a\r\nfavourable eye upon thy creature, who implores thy goodness and\r\ncompassion? Believe me, Frankenstein, I was benevolent; my soul glowed\r\nwith love and humanity; but am I not alone, miserably alone? You, my\r\ncreator, abhor me; what hope can I gather from your fellow creatures,\r\nwho owe me nothing? They spurn and hate me. The desert mountains and\r\ndreary glaciers are my refuge. I have wandered here many days; the\r\ncaves of ice, which I only do not fear, are a dwelling to me, and the\r\nonly one which man does not grudge. These bleak skies I hail, for they\r\nare kinder to me than your fellow beings. If the multitude of mankind\r\nknew of my existence, they would do as you do, and arm themselves for\r\nmy destruction. Shall I not then hate them who abhor me? I will keep\r\nno terms with my enemies. I am miserable, and they shall share my\r\nwretchedness. Yet it is in your power to recompense me, and deliver\r\nthem from an evil which it only remains for you to make so great, that\r\nnot only you and your family, but thousands of others, shall be\r\nswallowed up in the whirlwinds of its rage. Let your compassion be\r\nmoved, and do not disdain me. Listen to my tale; when you have heard\r\nthat, abandon or commiserate me, as you shall judge that I deserve.\r\nBut hear me. The guilty are allowed, by human laws, bloody as they\r\nare, to speak in their own defence before they are condemned. Listen\r\nto me, Frankenstein. You accuse me of murder, and yet you would, with\r\na satisfied conscience, destroy your own creature. Oh, praise the\r\neternal justice of man! Yet I ask you not to spare me; listen to me,\r\nand then, if you can, and if you will, destroy the work of your hands.”\r\n\r\n“Why do you call to my remembrance,” I rejoined, “circumstances of\r\nwhich I shudder to reflect, that I have been the miserable origin and\r\nauthor? Cursed be the day, abhorred devil, in which you first saw\r\nlight! Cursed (although I curse myself) be the hands that formed you!\r\nYou have made me wretched beyond expression. You have left me no power\r\nto consider whether I am just to you or not. Begone! Relieve me from\r\nthe sight of your detested form.”\r\n\r\n“Thus I relieve thee, my creator,” he said, and placed his hated hands\r\nbefore my eyes, which I flung from me with violence; “thus I take from\r\nthee a sight which you abhor. Still thou canst listen to me and grant\r\nme thy compassion. By the virtues that I once possessed, I demand this\r\nfrom you. Hear my tale; it is long and strange, and the temperature of\r\nthis place is not fitting to your fine sensations; come to the hut upon\r\nthe mountain. The sun is yet high in the heavens; before it descends\r\nto hide itself behind your snowy precipices and illuminate another\r\nworld, you will have heard my story and can decide. On you it rests,\r\nwhether I quit for ever the neighbourhood of man and lead a harmless\r\nlife, or become the scourge of your fellow creatures and the author of\r\nyour own speedy ruin.”\r\n\r\nAs he said this he led the way across the ice; I followed. My heart\r\nwas full, and I did not answer him, but as I proceeded, I weighed the\r\nvarious arguments that he had used and determined at least to listen to\r\nhis tale. I was partly urged by curiosity, and compassion confirmed my\r\nresolution. I had hitherto supposed him to be the murderer of my\r\nbrother, and I eagerly sought a confirmation or denial of this opinion.\r\nFor the first time, also, I felt what the duties of a creator towards\r\nhis creature were, and that I ought to render him happy before I\r\ncomplained of his wickedness. These motives urged me to comply with\r\nhis demand. We crossed the ice, therefore, and ascended the opposite\r\nrock. The air was cold, and the rain again began to descend; we\r\nentered the hut, the fiend with an air of exultation, I with a heavy\r\nheart and depressed spirits. But I consented to listen, and seating\r\nmyself by the fire which my odious companion had lighted, he thus began\r\nhis tale.\r\n\r\n\r\n\r\n\r\nChapter 11\r\n\r\n\r\n“It is with considerable difficulty that I remember the original era of\r\nmy being; all the events of that period appear confused and indistinct.\r\nA strange multiplicity of sensations seized me, and I saw, felt, heard,\r\nand smelt at the same time; and it was, indeed, a long time before I\r\nlearned to distinguish between the operations of my various senses. By\r\ndegrees, I remember, a stronger light pressed upon my nerves, so that I\r\nwas obliged to shut my eyes. Darkness then came over me and troubled\r\nme, but hardly had I felt this when, by opening my eyes, as I now\r\nsuppose, the light poured in upon me again. I walked and, I believe,\r\ndescended, but I presently found a great alteration in my sensations.\r\nBefore, dark and opaque bodies had surrounded me, impervious to my\r\ntouch or sight; but I now found that I could wander on at liberty, with\r\nno obstacles which I could not either surmount or avoid. The light\r\nbecame more and more oppressive to me, and the heat wearying me as I\r\nwalked, I sought a place where I could receive shade. This was the\r\nforest near Ingolstadt; and here I lay by the side of a brook resting\r\nfrom my fatigue, until I felt tormented by hunger and thirst. This\r\nroused me from my nearly dormant state, and I ate some berries which I\r\nfound hanging on the trees or lying on the ground. I slaked my thirst\r\nat the brook, and then lying down, was overcome by sleep.\r\n\r\n“It was dark when I awoke; I felt cold also, and half frightened, as it\r\nwere, instinctively, finding myself so desolate. Before I had quitted\r\nyour apartment, on a sensation of cold, I had covered myself with some\r\nclothes, but these were insufficient to secure me from the dews of\r\nnight. I was a poor, helpless, miserable wretch; I knew, and could\r\ndistinguish, nothing; but feeling pain invade me on all sides, I sat\r\ndown and wept.\r\n\r\n“Soon a gentle light stole over the heavens and gave me a sensation of\r\npleasure. I started up and beheld a radiant form rise from among the\r\ntrees. [The moon] I gazed with a kind of wonder. It moved slowly,\r\nbut it enlightened my path, and I again went out in search of berries.\r\nI was still cold when under one of the trees I found a huge cloak, with\r\nwhich I covered myself, and sat down upon the ground. No distinct\r\nideas occupied my mind; all was confused. I felt light, and hunger,\r\nand thirst, and darkness; innumerable sounds rang in my ears, and on\r\nall sides various scents saluted me; the only object that I could\r\ndistinguish was the bright moon, and I fixed my eyes on that with\r\npleasure.\r\n\r\n“Several changes of day and night passed, and the orb of night had\r\ngreatly lessened, when I began to distinguish my sensations from each\r\nother. I gradually saw plainly the clear stream that supplied me with\r\ndrink and the trees that shaded me with their foliage. I was delighted\r\nwhen I first discovered that a pleasant sound, which often saluted my\r\nears, proceeded from the throats of the little winged animals who had\r\noften intercepted the light from my eyes. I began also to observe,\r\nwith greater accuracy, the forms that surrounded me and to perceive the\r\nboundaries of the radiant roof of light which canopied me. Sometimes I\r\ntried to imitate the pleasant songs of the birds but was unable.\r\nSometimes I wished to express my sensations in my own mode, but the\r\nuncouth and inarticulate sounds which broke from me frightened me into\r\nsilence again.\r\n\r\n“The moon had disappeared from the night, and again, with a lessened\r\nform, showed itself, while I still remained in the forest. My\r\nsensations had by this time become distinct, and my mind received every\r\nday additional ideas. My eyes became accustomed to the light and to\r\nperceive objects in their right forms; I distinguished the insect from\r\nthe herb, and by degrees, one herb from another. I found that the\r\nsparrow uttered none but harsh notes, whilst those of the blackbird and\r\nthrush were sweet and enticing.\r\n\r\n“One day, when I was oppressed by cold, I found a fire which had been\r\nleft by some wandering beggars, and was overcome with delight at the\r\nwarmth I experienced from it. In my joy I thrust my hand into the live\r\nembers, but quickly drew it out again with a cry of pain. How strange,\r\nI thought, that the same cause should produce such opposite effects! I\r\nexamined the materials of the fire, and to my joy found it to be\r\ncomposed of wood. I quickly collected some branches, but they were wet\r\nand would not burn. I was pained at this and sat still watching the\r\noperation of the fire. The wet wood which I had placed near the heat\r\ndried and itself became inflamed. I reflected on this, and by touching\r\nthe various branches, I discovered the cause and busied myself in\r\ncollecting a great quantity of wood, that I might dry it and have a\r\nplentiful supply of fire. When night came on and brought sleep with\r\nit, I was in the greatest fear lest my fire should be extinguished. I\r\ncovered it carefully with dry wood and leaves and placed wet branches\r\nupon it; and then, spreading my cloak, I lay on the ground and sank\r\ninto sleep.\r\n\r\n“It was morning when I awoke, and my first care was to visit the fire.\r\nI uncovered it, and a gentle breeze quickly fanned it into a flame. I\r\nobserved this also and contrived a fan of branches, which roused the\r\nembers when they were nearly extinguished. When night came again I\r\nfound, with pleasure, that the fire gave light as well as heat and that\r\nthe discovery of this element was useful to me in my food, for I found\r\nsome of the offals that the travellers had left had been roasted, and\r\ntasted much more savoury than the berries I gathered from the trees. I\r\ntried, therefore, to dress my food in the same manner, placing it on\r\nthe live embers. I found that the berries were spoiled by this\r\noperation, and the nuts and roots much improved.\r\n\r\n“Food, however, became scarce, and I often spent the whole day\r\nsearching in vain for a few acorns to assuage the pangs of hunger. When\r\nI found this, I resolved to quit the place that I had hitherto\r\ninhabited, to seek for one where the few wants I experienced would be\r\nmore easily satisfied. In this emigration I exceedingly lamented the\r\nloss of the fire which I had obtained through accident and knew not how\r\nto reproduce it. I gave several hours to the serious consideration of\r\nthis difficulty, but I was obliged to relinquish all attempt to supply\r\nit, and wrapping myself up in my cloak, I struck across the wood\r\ntowards the setting sun. I passed three days in these rambles and at\r\nlength discovered the open country. A great fall of snow had taken\r\nplace the night before, and the fields were of one uniform white; the\r\nappearance was disconsolate, and I found my feet chilled by the cold\r\ndamp substance that covered the ground.\r\n\r\n“It was about seven in the morning, and I longed to obtain food and\r\nshelter; at length I perceived a small hut, on a rising ground, which\r\nhad doubtless been built for the convenience of some shepherd. This\r\nwas a new sight to me, and I examined the structure with great\r\ncuriosity. Finding the door open, I entered. An old man sat in it,\r\nnear a fire, over which he was preparing his breakfast. He turned on\r\nhearing a noise, and perceiving me, shrieked loudly, and quitting the\r\nhut, ran across the fields with a speed of which his debilitated form\r\nhardly appeared capable. His appearance, different from any I had ever\r\nbefore seen, and his flight somewhat surprised me. But I was enchanted\r\nby the appearance of the hut; here the snow and rain could not\r\npenetrate; the ground was dry; and it presented to me then as exquisite\r\nand divine a retreat as Pandæmonium appeared to the dæmons of hell\r\nafter their sufferings in the lake of fire. I greedily devoured the\r\nremnants of the shepherd’s breakfast, which consisted of bread, cheese,\r\nmilk, and wine; the latter, however, I did not like. Then, overcome by\r\nfatigue, I lay down among some straw and fell asleep.\r\n\r\n“It was noon when I awoke, and allured by the warmth of the sun, which\r\nshone brightly on the white ground, I determined to recommence my\r\ntravels; and, depositing the remains of the peasant’s breakfast in a\r\nwallet I found, I proceeded across the fields for several hours, until\r\nat sunset I arrived at a village. How miraculous did this appear! The\r\nhuts, the neater cottages, and stately houses engaged my admiration by\r\nturns. The vegetables in the gardens, the milk and cheese that I saw\r\nplaced at the windows of some of the cottages, allured my appetite. One\r\nof the best of these I entered, but I had hardly placed my foot within\r\nthe door before the children shrieked, and one of the women fainted.\r\nThe whole village was roused; some fled, some attacked me, until,\r\ngrievously bruised by stones and many other kinds of missile weapons, I\r\nescaped to the open country and fearfully took refuge in a low hovel,\r\nquite bare, and making a wretched appearance after the palaces I had\r\nbeheld in the village. This hovel however, joined a cottage of a neat\r\nand pleasant appearance, but after my late dearly bought experience, I\r\ndared not enter it. My place of refuge was constructed of wood, but so\r\nlow that I could with difficulty sit upright in it. No wood, however,\r\nwas placed on the earth, which formed the floor, but it was dry; and\r\nalthough the wind entered it by innumerable chinks, I found it an\r\nagreeable asylum from the snow and rain.\r\n\r\n“Here, then, I retreated and lay down happy to have found a shelter,\r\nhowever miserable, from the inclemency of the season, and still more\r\nfrom the barbarity of man. As soon as morning dawned I crept from my\r\nkennel, that I might view the adjacent cottage and discover if I could\r\nremain in the habitation I had found. It was situated against the back\r\nof the cottage and surrounded on the sides which were exposed by a pig\r\nsty and a clear pool of water. One part was open, and by that I had\r\ncrept in; but now I covered every crevice by which I might be perceived\r\nwith stones and wood, yet in such a manner that I might move them on\r\noccasion to pass out; all the light I enjoyed came through the sty, and\r\nthat was sufficient for me.\r\n\r\n“Having thus arranged my dwelling and carpeted it with clean straw, I\r\nretired, for I saw the figure of a man at a distance, and I remembered\r\ntoo well my treatment the night before to trust myself in his power. I\r\nhad first, however, provided for my sustenance for that day by a loaf\r\nof coarse bread, which I purloined, and a cup with which I could drink\r\nmore conveniently than from my hand of the pure water which flowed by\r\nmy retreat. The floor was a little raised, so that it was kept\r\nperfectly dry, and by its vicinity to the chimney of the cottage it was\r\ntolerably warm.\r\n\r\n“Being thus provided, I resolved to reside in this hovel until\r\nsomething should occur which might alter my determination. It was\r\nindeed a paradise compared to the bleak forest, my former residence,\r\nthe rain-dropping branches, and dank earth. I ate my breakfast with\r\npleasure and was about to remove a plank to procure myself a little\r\nwater when I heard a step, and looking through a small chink, I beheld\r\na young creature, with a pail on her head, passing before my hovel. The\r\ngirl was young and of gentle demeanour, unlike what I have since found\r\ncottagers and farmhouse servants to be. Yet she was meanly dressed, a\r\ncoarse blue petticoat and a linen jacket being her only garb; her fair\r\nhair was plaited but not adorned: she looked patient yet sad. I lost\r\nsight of her, and in about a quarter of an hour she returned bearing\r\nthe pail, which was now partly filled with milk. As she walked along,\r\nseemingly incommoded by the burden, a young man met her, whose\r\ncountenance expressed a deeper despondence. Uttering a few sounds with\r\nan air of melancholy, he took the pail from her head and bore it to the\r\ncottage himself. She followed, and they disappeared. Presently I saw\r\nthe young man again, with some tools in his hand, cross the field\r\nbehind the cottage; and the girl was also busied, sometimes in the\r\nhouse and sometimes in the yard.\r\n\r\n“On examining my dwelling, I found that one of the windows of the\r\ncottage had formerly occupied a part of it, but the panes had been\r\nfilled up with wood. In one of these was a small and almost\r\nimperceptible chink through which the eye could just penetrate.\r\nThrough this crevice a small room was visible, whitewashed and clean\r\nbut very bare of furniture. In one corner, near a small fire, sat an\r\nold man, leaning his head on his hands in a disconsolate attitude. The\r\nyoung girl was occupied in arranging the cottage; but presently she\r\ntook something out of a drawer, which employed her hands, and she sat\r\ndown beside the old man, who, taking up an instrument, began to play\r\nand to produce sounds sweeter than the voice of the thrush or the\r\nnightingale. It was a lovely sight, even to me, poor wretch who had\r\nnever beheld aught beautiful before. The silver hair and benevolent\r\ncountenance of the aged cottager won my reverence, while the gentle\r\nmanners of the girl enticed my love. He played a sweet mournful air\r\nwhich I perceived drew tears from the eyes of his amiable companion, of\r\nwhich the old man took no notice, until she sobbed audibly; he then\r\npronounced a few sounds, and the fair creature, leaving her work, knelt\r\nat his feet. He raised her and smiled with such kindness and affection\r\nthat I felt sensations of a peculiar and overpowering nature; they were\r\na mixture of pain and pleasure, such as I had never before experienced,\r\neither from hunger or cold, warmth or food; and I withdrew from the\r\nwindow, unable to bear these emotions.\r\n\r\n“Soon after this the young man returned, bearing on his shoulders a\r\nload of wood. The girl met him at the door, helped to relieve him of\r\nhis burden, and taking some of the fuel into the cottage, placed it on\r\nthe fire; then she and the youth went apart into a nook of the cottage,\r\nand he showed her a large loaf and a piece of cheese. She seemed\r\npleased and went into the garden for some roots and plants, which she\r\nplaced in water, and then upon the fire. She afterwards continued her\r\nwork, whilst the young man went into the garden and appeared busily\r\nemployed in digging and pulling up roots. After he had been employed\r\nthus about an hour, the young woman joined him and they entered the\r\ncottage together.\r\n\r\n“The old man had, in the meantime, been pensive, but on the appearance\r\nof his companions he assumed a more cheerful air, and they sat down to\r\neat. The meal was quickly dispatched. The young woman was again\r\noccupied in arranging the cottage, the old man walked before the\r\ncottage in the sun for a few minutes, leaning on the arm of the youth.\r\nNothing could exceed in beauty the contrast between these two excellent\r\ncreatures. One was old, with silver hairs and a countenance beaming\r\nwith benevolence and love; the younger was slight and graceful in his\r\nfigure, and his features were moulded with the finest symmetry, yet his\r\neyes and attitude expressed the utmost sadness and despondency. The\r\nold man returned to the cottage, and the youth, with tools different\r\nfrom those he had used in the morning, directed his steps across the\r\nfields.\r\n\r\n“Night quickly shut in, but to my extreme wonder, I found that the\r\ncottagers had a means of prolonging light by the use of tapers, and was\r\ndelighted to find that the setting of the sun did not put an end to the\r\npleasure I experienced in watching my human neighbours. In the evening\r\nthe young girl and her companion were employed in various occupations\r\nwhich I did not understand; and the old man again took up the\r\ninstrument which produced the divine sounds that had enchanted me in\r\nthe morning. So soon as he had finished, the youth began, not to play,\r\nbut to utter sounds that were monotonous, and neither resembling the\r\nharmony of the old man’s instrument nor the songs of the birds; I since\r\nfound that he read aloud, but at that time I knew nothing of the\r\nscience of words or letters.\r\n\r\n“The family, after having been thus occupied for a short time,\r\nextinguished their lights and retired, as I conjectured, to rest.”\r\n\r\n\r\n\r\n\r\nChapter 12\r\n\r\n\r\n“I lay on my straw, but I could not sleep. I thought of the\r\noccurrences of the day. What chiefly struck me was the gentle manners\r\nof these people, and I longed to join them, but dared not. I\r\nremembered too well the treatment I had suffered the night before from\r\nthe barbarous villagers, and resolved, whatever course of conduct I\r\nmight hereafter think it right to pursue, that for the present I would\r\nremain quietly in my hovel, watching and endeavouring to discover the\r\nmotives which influenced their actions.\r\n\r\n“The cottagers arose the next morning before the sun. The young woman\r\narranged the cottage and prepared the food, and the youth departed\r\nafter the first meal.\r\n\r\n“This day was passed in the same routine as that which preceded it.\r\nThe young man was constantly employed out of doors, and the girl in\r\nvarious laborious occupations within. The old man, whom I soon\r\nperceived to be blind, employed his leisure hours on his instrument or\r\nin contemplation. Nothing could exceed the love and respect which the\r\nyounger cottagers exhibited towards their venerable companion. They\r\nperformed towards him every little office of affection and duty with\r\ngentleness, and he rewarded them by his benevolent smiles.\r\n\r\n“They were not entirely happy. The young man and his companion often\r\nwent apart and appeared to weep. I saw no cause for their unhappiness,\r\nbut I was deeply affected by it. If such lovely creatures were\r\nmiserable, it was less strange that I, an imperfect and solitary being,\r\nshould be wretched. Yet why were these gentle beings unhappy? They\r\npossessed a delightful house (for such it was in my eyes) and every\r\nluxury; they had a fire to warm them when chill and delicious viands\r\nwhen hungry; they were dressed in excellent clothes; and, still more,\r\nthey enjoyed one another’s company and speech, interchanging each day\r\nlooks of affection and kindness. What did their tears imply? Did they\r\nreally express pain? I was at first unable to solve these questions,\r\nbut perpetual attention and time explained to me many appearances which\r\nwere at first enigmatic.\r\n\r\n“A considerable period elapsed before I discovered one of the causes of\r\nthe uneasiness of this amiable family: it was poverty, and they\r\nsuffered that evil in a very distressing degree. Their nourishment\r\nconsisted entirely of the vegetables of their garden and the milk of\r\none cow, which gave very little during the winter, when its masters\r\ncould scarcely procure food to support it. They often, I believe,\r\nsuffered the pangs of hunger very poignantly, especially the two\r\nyounger cottagers, for several times they placed food before the old\r\nman when they reserved none for themselves.\r\n\r\n“This trait of kindness moved me sensibly. I had been accustomed,\r\nduring the night, to steal a part of their store for my own\r\nconsumption, but when I found that in doing this I inflicted pain on\r\nthe cottagers, I abstained and satisfied myself with berries, nuts, and\r\nroots which I gathered from a neighbouring wood.\r\n\r\n“I discovered also another means through which I was enabled to assist\r\ntheir labours. I found that the youth spent a great part of each day\r\nin collecting wood for the family fire, and during the night I often\r\ntook his tools, the use of which I quickly discovered, and brought home\r\nfiring sufficient for the consumption of several days.\r\n\r\n“I remember, the first time that I did this, the young woman, when she\r\nopened the door in the morning, appeared greatly astonished on seeing a great\r\npile of wood on the outside. She uttered some words in a loud voice, and the\r\nyouth joined her, who also expressed surprise. I observed, with pleasure,\r\nthat he did not go to the forest that day, but spent it in repairing the\r\ncottage and cultivating the garden.\r\n\r\n“By degrees I made a discovery of still greater moment. I found that\r\nthese people possessed a method of communicating their experience and\r\nfeelings to one another by articulate sounds. I perceived that the words\r\nthey spoke sometimes produced pleasure or pain, smiles or sadness, in the\r\nminds and countenances of the hearers. This was indeed a godlike science,\r\nand I ardently desired to become acquainted with it. But I was baffled in\r\nevery attempt I made for this purpose. Their pronunciation was quick, and\r\nthe words they uttered, not having any apparent connection with visible\r\nobjects, I was unable to discover any clue by which I could unravel the\r\nmystery of their reference. By great application, however, and after having\r\nremained during the space of several revolutions of the moon in my hovel, I\r\ndiscovered the names that were given to some of the most familiar objects of\r\ndiscourse; I learned and applied the words, _fire, milk, bread,_ and\r\n_wood._ I learned also the names of the cottagers themselves. The youth\r\nand his companion had each of them several names, but the old man had only\r\none, which was _father._ The girl was called _sister_ or\r\n_Agatha,_ and the youth _Felix, brother,_ or _son_. I cannot\r\ndescribe the delight I felt when I learned the ideas appropriated to each of\r\nthese sounds and was able to pronounce them. I distinguished several other\r\nwords without being able as yet to understand or apply them, such as _good,\r\ndearest, unhappy._\r\n\r\n“I spent the winter in this manner. The gentle manners and beauty of\r\nthe cottagers greatly endeared them to me; when they were unhappy, I\r\nfelt depressed; when they rejoiced, I sympathised in their joys. I saw\r\nfew human beings besides them, and if any other happened to enter the\r\ncottage, their harsh manners and rude gait only enhanced to me the\r\nsuperior accomplishments of my friends. The old man, I could perceive,\r\noften endeavoured to encourage his children, as sometimes I found that\r\nhe called them, to cast off their melancholy. He would talk in a\r\ncheerful accent, with an expression of goodness that bestowed pleasure\r\neven upon me. Agatha listened with respect, her eyes sometimes filled\r\nwith tears, which she endeavoured to wipe away unperceived; but I\r\ngenerally found that her countenance and tone were more cheerful after\r\nhaving listened to the exhortations of her father. It was not thus\r\nwith Felix. He was always the saddest of the group, and even to my\r\nunpractised senses, he appeared to have suffered more deeply than his\r\nfriends. But if his countenance was more sorrowful, his voice was more\r\ncheerful than that of his sister, especially when he addressed the old\r\nman.\r\n\r\n“I could mention innumerable instances which, although slight, marked\r\nthe dispositions of these amiable cottagers. In the midst of poverty\r\nand want, Felix carried with pleasure to his sister the first little\r\nwhite flower that peeped out from beneath the snowy ground. Early in\r\nthe morning, before she had risen, he cleared away the snow that\r\nobstructed her path to the milk-house, drew water from the well, and\r\nbrought the wood from the outhouse, where, to his perpetual\r\nastonishment, he found his store always replenished by an invisible\r\nhand. In the day, I believe, he worked sometimes for a neighbouring\r\nfarmer, because he often went forth and did not return until dinner,\r\nyet brought no wood with him. At other times he worked in the garden,\r\nbut as there was little to do in the frosty season, he read to the old\r\nman and Agatha.\r\n\r\n“This reading had puzzled me extremely at first, but by degrees I\r\ndiscovered that he uttered many of the same sounds when he read as when\r\nhe talked. I conjectured, therefore, that he found on the paper signs\r\nfor speech which he understood, and I ardently longed to comprehend\r\nthese also; but how was that possible when I did not even understand\r\nthe sounds for which they stood as signs? I improved, however,\r\nsensibly in this science, but not sufficiently to follow up any kind of\r\nconversation, although I applied my whole mind to the endeavour, for I\r\neasily perceived that, although I eagerly longed to discover myself to\r\nthe cottagers, I ought not to make the attempt until I had first become\r\nmaster of their language, which knowledge might enable me to make them\r\noverlook the deformity of my figure, for with this also the contrast\r\nperpetually presented to my eyes had made me acquainted.\r\n\r\n“I had admired the perfect forms of my cottagers—their grace, beauty,\r\nand delicate complexions; but how was I terrified when I viewed myself\r\nin a transparent pool! At first I started back, unable to believe that\r\nit was indeed I who was reflected in the mirror; and when I became\r\nfully convinced that I was in reality the monster that I am, I was\r\nfilled with the bitterest sensations of despondence and mortification.\r\nAlas! I did not yet entirely know the fatal effects of this miserable\r\ndeformity.\r\n\r\n“As the sun became warmer and the light of day longer, the snow\r\nvanished, and I beheld the bare trees and the black earth. From this\r\ntime Felix was more employed, and the heart-moving indications of\r\nimpending famine disappeared. Their food, as I afterwards found, was\r\ncoarse, but it was wholesome; and they procured a sufficiency of it.\r\nSeveral new kinds of plants sprang up in the garden, which they\r\ndressed; and these signs of comfort increased daily as the season\r\nadvanced.\r\n\r\n“The old man, leaning on his son, walked each day at noon, when it did\r\nnot rain, as I found it was called when the heavens poured forth its\r\nwaters. This frequently took place, but a high wind quickly dried the\r\nearth, and the season became far more pleasant than it had been.\r\n\r\n“My mode of life in my hovel was uniform. During the morning I\r\nattended the motions of the cottagers, and when they were dispersed in\r\nvarious occupations, I slept; the remainder of the day was spent in\r\nobserving my friends. When they had retired to rest, if there was any\r\nmoon or the night was star-light, I went into the woods and collected\r\nmy own food and fuel for the cottage. When I returned, as often as it\r\nwas necessary, I cleared their path from the snow and performed those\r\noffices that I had seen done by Felix. I afterwards found that these\r\nlabours, performed by an invisible hand, greatly astonished them; and\r\nonce or twice I heard them, on these occasions, utter the words _good\r\nspirit, wonderful_; but I did not then understand the signification\r\nof these terms.\r\n\r\n“My thoughts now became more active, and I longed to discover the\r\nmotives and feelings of these lovely creatures; I was inquisitive to\r\nknow why Felix appeared so miserable and Agatha so sad. I thought\r\n(foolish wretch!) that it might be in my power to restore happiness to\r\nthese deserving people. When I slept or was absent, the forms of the\r\nvenerable blind father, the gentle Agatha, and the excellent Felix\r\nflitted before me. I looked upon them as superior beings who would be\r\nthe arbiters of my future destiny. I formed in my imagination a\r\nthousand pictures of presenting myself to them, and their reception of\r\nme. I imagined that they would be disgusted, until, by my gentle\r\ndemeanour and conciliating words, I should first win their favour and\r\nafterwards their love.\r\n\r\n“These thoughts exhilarated me and led me to apply with fresh ardour to\r\nthe acquiring the art of language. My organs were indeed harsh, but\r\nsupple; and although my voice was very unlike the soft music of their\r\ntones, yet I pronounced such words as I understood with tolerable ease.\r\nIt was as the ass and the lap-dog; yet surely the gentle ass whose\r\nintentions were affectionate, although his manners were rude, deserved\r\nbetter treatment than blows and execration.\r\n\r\n“The pleasant showers and genial warmth of spring greatly altered the\r\naspect of the earth. Men who before this change seemed to have been\r\nhid in caves dispersed themselves and were employed in various arts of\r\ncultivation. The birds sang in more cheerful notes, and the leaves\r\nbegan to bud forth on the trees. Happy, happy earth! Fit habitation\r\nfor gods, which, so short a time before, was bleak, damp, and\r\nunwholesome. My spirits were elevated by the enchanting appearance of\r\nnature; the past was blotted from my memory, the present was tranquil,\r\nand the future gilded by bright rays of hope and anticipations of joy.”\r\n\r\n\r\n\r\n\r\nChapter 13\r\n\r\n\r\n“I now hasten to the more moving part of my story. I shall relate\r\nevents that impressed me with feelings which, from what I had been,\r\nhave made me what I am.\r\n\r\n“Spring advanced rapidly; the weather became fine and the skies\r\ncloudless. It surprised me that what before was desert and gloomy\r\nshould now bloom with the most beautiful flowers and verdure. My\r\nsenses were gratified and refreshed by a thousand scents of delight and\r\na thousand sights of beauty.\r\n\r\n“It was on one of these days, when my cottagers periodically rested\r\nfrom labour—the old man played on his guitar, and the children\r\nlistened to him—that I observed the countenance of Felix was\r\nmelancholy beyond expression; he sighed frequently, and once his father\r\npaused in his music, and I conjectured by his manner that he inquired\r\nthe cause of his son’s sorrow. Felix replied in a cheerful accent, and\r\nthe old man was recommencing his music when someone tapped at the door.\r\n\r\n“It was a lady on horseback, accompanied by a country-man as a guide.\r\nThe lady was dressed in a dark suit and covered with a thick black\r\nveil. Agatha asked a question, to which the stranger only replied by\r\npronouncing, in a sweet accent, the name of Felix. Her voice was\r\nmusical but unlike that of either of my friends. On hearing this word,\r\nFelix came up hastily to the lady, who, when she saw him, threw up her\r\nveil, and I beheld a countenance of angelic beauty and expression. Her\r\nhair of a shining raven black, and curiously braided; her eyes were\r\ndark, but gentle, although animated; her features of a regular\r\nproportion, and her complexion wondrously fair, each cheek tinged with\r\na lovely pink.\r\n\r\n“Felix seemed ravished with delight when he saw her, every trait of\r\nsorrow vanished from his face, and it instantly expressed a degree of\r\necstatic joy, of which I could hardly have believed it capable; his\r\neyes sparkled, as his cheek flushed with pleasure; and at that moment I\r\nthought him as beautiful as the stranger. She appeared affected by\r\ndifferent feelings; wiping a few tears from her lovely eyes, she held\r\nout her hand to Felix, who kissed it rapturously and called her, as\r\nwell as I could distinguish, his sweet Arabian. She did not appear to\r\nunderstand him, but smiled. He assisted her to dismount, and\r\ndismissing her guide, conducted her into the cottage. Some\r\nconversation took place between him and his father, and the young\r\nstranger knelt at the old man’s feet and would have kissed his hand,\r\nbut he raised her and embraced her affectionately.\r\n\r\n“I soon perceived that although the stranger uttered articulate sounds\r\nand appeared to have a language of her own, she was neither understood\r\nby nor herself understood the cottagers. They made many signs which I\r\ndid not comprehend, but I saw that her presence diffused gladness\r\nthrough the cottage, dispelling their sorrow as the sun dissipates the\r\nmorning mists. Felix seemed peculiarly happy and with smiles of\r\ndelight welcomed his Arabian. Agatha, the ever-gentle Agatha, kissed\r\nthe hands of the lovely stranger, and pointing to her brother, made\r\nsigns which appeared to me to mean that he had been sorrowful until she\r\ncame. Some hours passed thus, while they, by their countenances,\r\nexpressed joy, the cause of which I did not comprehend. Presently I\r\nfound, by the frequent recurrence of some sound which the stranger\r\nrepeated after them, that she was endeavouring to learn their language;\r\nand the idea instantly occurred to me that I should make use of the\r\nsame instructions to the same end. The stranger learned about twenty\r\nwords at the first lesson; most of them, indeed, were those which I had\r\nbefore understood, but I profited by the others.\r\n\r\n“As night came on, Agatha and the Arabian retired early. When they\r\nseparated Felix kissed the hand of the stranger and said, ‘Good night\r\nsweet Safie.’ He sat up much longer, conversing with his father, and\r\nby the frequent repetition of her name I conjectured that their lovely\r\nguest was the subject of their conversation. I ardently desired to\r\nunderstand them, and bent every faculty towards that purpose, but found\r\nit utterly impossible.\r\n\r\n“The next morning Felix went out to his work, and after the usual\r\noccupations of Agatha were finished, the Arabian sat at the feet of the\r\nold man, and taking his guitar, played some airs so entrancingly\r\nbeautiful that they at once drew tears of sorrow and delight from my\r\neyes. She sang, and her voice flowed in a rich cadence, swelling or\r\ndying away like a nightingale of the woods.\r\n\r\n“When she had finished, she gave the guitar to Agatha, who at first\r\ndeclined it. She played a simple air, and her voice accompanied it in\r\nsweet accents, but unlike the wondrous strain of the stranger. The old\r\nman appeared enraptured and said some words which Agatha endeavoured to\r\nexplain to Safie, and by which he appeared to wish to express that she\r\nbestowed on him the greatest delight by her music.\r\n\r\n“The days now passed as peaceably as before, with the sole alteration\r\nthat joy had taken place of sadness in the countenances of my friends.\r\nSafie was always gay and happy; she and I improved rapidly in the\r\nknowledge of language, so that in two months I began to comprehend most\r\nof the words uttered by my protectors.\r\n\r\n“In the meanwhile also the black ground was covered with herbage, and\r\nthe green banks interspersed with innumerable flowers, sweet to the\r\nscent and the eyes, stars of pale radiance among the moonlight woods;\r\nthe sun became warmer, the nights clear and balmy; and my nocturnal\r\nrambles were an extreme pleasure to me, although they were considerably\r\nshortened by the late setting and early rising of the sun, for I never\r\nventured abroad during daylight, fearful of meeting with the same\r\ntreatment I had formerly endured in the first village which I entered.\r\n\r\n“My days were spent in close attention, that I might more speedily\r\nmaster the language; and I may boast that I improved more rapidly than\r\nthe Arabian, who understood very little and conversed in broken\r\naccents, whilst I comprehended and could imitate almost every word that\r\nwas spoken.\r\n\r\n“While I improved in speech, I also learned the science of letters as\r\nit was taught to the stranger, and this opened before me a wide field\r\nfor wonder and delight.\r\n\r\n“The book from which Felix instructed Safie was Volney’s _Ruins\r\nof Empires_. I should not have understood the purport of this book had not\r\nFelix, in reading it, given very minute explanations. He had chosen this\r\nwork, he said, because the declamatory style was framed in imitation of the\r\nEastern authors. Through this work I obtained a cursory knowledge of history\r\nand a view of the several empires at present existing in the world; it gave\r\nme an insight into the manners, governments, and religions of the different\r\nnations of the earth. I heard of the slothful Asiatics, of the stupendous\r\ngenius and mental activity of the Grecians, of the wars and wonderful virtue\r\nof the early Romans—of their subsequent degenerating—of the\r\ndecline of that mighty empire, of chivalry, Christianity, and kings. I heard\r\nof the discovery of the American hemisphere and wept with Safie over the\r\nhapless fate of its original inhabitants.\r\n\r\n“These wonderful narrations inspired me with strange feelings. Was\r\nman, indeed, at once so powerful, so virtuous and magnificent, yet so\r\nvicious and base? He appeared at one time a mere scion of the evil\r\nprinciple and at another as all that can be conceived of noble and\r\ngodlike. To be a great and virtuous man appeared the highest honour\r\nthat can befall a sensitive being; to be base and vicious, as many on\r\nrecord have been, appeared the lowest degradation, a condition more\r\nabject than that of the blind mole or harmless worm. For a long time I\r\ncould not conceive how one man could go forth to murder his fellow, or\r\neven why there were laws and governments; but when I heard details of\r\nvice and bloodshed, my wonder ceased and I turned away with disgust and\r\nloathing.\r\n\r\n“Every conversation of the cottagers now opened new wonders to me.\r\nWhile I listened to the instructions which Felix bestowed upon the\r\nArabian, the strange system of human society was explained to me. I\r\nheard of the division of property, of immense wealth and squalid\r\npoverty, of rank, descent, and noble blood.\r\n\r\n“The words induced me to turn towards myself. I learned that the\r\npossessions most esteemed by your fellow creatures were high and\r\nunsullied descent united with riches. A man might be respected with\r\nonly one of these advantages, but without either he was considered,\r\nexcept in very rare instances, as a vagabond and a slave, doomed to\r\nwaste his powers for the profits of the chosen few! And what was I? Of\r\nmy creation and creator I was absolutely ignorant, but I knew that I\r\npossessed no money, no friends, no kind of property. I was, besides,\r\nendued with a figure hideously deformed and loathsome; I was not even\r\nof the same nature as man. I was more agile than they and could\r\nsubsist upon coarser diet; I bore the extremes of heat and cold with\r\nless injury to my frame; my stature far exceeded theirs. When I looked\r\naround I saw and heard of none like me. Was I, then, a monster, a blot\r\nupon the earth, from which all men fled and whom all men disowned?\r\n\r\n“I cannot describe to you the agony that these reflections inflicted\r\nupon me; I tried to dispel them, but sorrow only increased with\r\nknowledge. Oh, that I had for ever remained in my native wood, nor\r\nknown nor felt beyond the sensations of hunger, thirst, and heat!\r\n\r\n“Of what a strange nature is knowledge! It clings to the mind when it\r\nhas once seized on it like a lichen on the rock. I wished sometimes to\r\nshake off all thought and feeling, but I learned that there was but one\r\nmeans to overcome the sensation of pain, and that was death—a state\r\nwhich I feared yet did not understand. I admired virtue and good\r\nfeelings and loved the gentle manners and amiable qualities of my\r\ncottagers, but I was shut out from intercourse with them, except\r\nthrough means which I obtained by stealth, when I was unseen and\r\nunknown, and which rather increased than satisfied the desire I had of\r\nbecoming one among my fellows. The gentle words of Agatha and the\r\nanimated smiles of the charming Arabian were not for me. The mild\r\nexhortations of the old man and the lively conversation of the loved\r\nFelix were not for me. Miserable, unhappy wretch!\r\n\r\n“Other lessons were impressed upon me even more deeply. I heard of the\r\ndifference of sexes, and the birth and growth of children, how the\r\nfather doted on the smiles of the infant, and the lively sallies of the\r\nolder child, how all the life and cares of the mother were wrapped up\r\nin the precious charge, how the mind of youth expanded and gained\r\nknowledge, of brother, sister, and all the various relationships which\r\nbind one human being to another in mutual bonds.\r\n\r\n“But where were my friends and relations? No father had watched my\r\ninfant days, no mother had blessed me with smiles and caresses; or if\r\nthey had, all my past life was now a blot, a blind vacancy in which I\r\ndistinguished nothing. From my earliest remembrance I had been as I\r\nthen was in height and proportion. I had never yet seen a being\r\nresembling me or who claimed any intercourse with me. What was I? The\r\nquestion again recurred, to be answered only with groans.\r\n\r\n“I will soon explain to what these feelings tended, but allow me now to\r\nreturn to the cottagers, whose story excited in me such various\r\nfeelings of indignation, delight, and wonder, but which all terminated\r\nin additional love and reverence for my protectors (for so I loved, in\r\nan innocent, half-painful self-deceit, to call them).”\r\n\r\n\r\n\r\n\r\nChapter 14\r\n\r\n\r\n“Some time elapsed before I learned the history of my friends. It was\r\none which could not fail to impress itself deeply on my mind, unfolding\r\nas it did a number of circumstances, each interesting and wonderful to\r\none so utterly inexperienced as I was.\r\n\r\n“The name of the old man was De Lacey. He was descended from a good\r\nfamily in France, where he had lived for many years in affluence,\r\nrespected by his superiors and beloved by his equals. His son was bred\r\nin the service of his country, and Agatha had ranked with ladies of the\r\nhighest distinction. A few months before my arrival they had lived in\r\na large and luxurious city called Paris, surrounded by friends and\r\npossessed of every enjoyment which virtue, refinement of intellect, or\r\ntaste, accompanied by a moderate fortune, could afford.\r\n\r\n“The father of Safie had been the cause of their ruin. He was a\r\nTurkish merchant and had inhabited Paris for many years, when, for some\r\nreason which I could not learn, he became obnoxious to the government.\r\nHe was seized and cast into prison the very day that Safie arrived from\r\nConstantinople to join him. He was tried and condemned to death. The\r\ninjustice of his sentence was very flagrant; all Paris was indignant;\r\nand it was judged that his religion and wealth rather than the crime\r\nalleged against him had been the cause of his condemnation.\r\n\r\n“Felix had accidentally been present at the trial; his horror and\r\nindignation were uncontrollable when he heard the decision of the\r\ncourt. He made, at that moment, a solemn vow to deliver him and then\r\nlooked around for the means. After many fruitless attempts to gain\r\nadmittance to the prison, he found a strongly grated window in an\r\nunguarded part of the building, which lighted the dungeon of the\r\nunfortunate Muhammadan, who, loaded with chains, waited in despair the\r\nexecution of the barbarous sentence. Felix visited the grate at night\r\nand made known to the prisoner his intentions in his favour. The Turk,\r\namazed and delighted, endeavoured to kindle the zeal of his deliverer\r\nby promises of reward and wealth. Felix rejected his offers with\r\ncontempt, yet when he saw the lovely Safie, who was allowed to visit\r\nher father and who by her gestures expressed her lively gratitude, the\r\nyouth could not help owning to his own mind that the captive possessed\r\na treasure which would fully reward his toil and hazard.\r\n\r\n“The Turk quickly perceived the impression that his daughter had made\r\non the heart of Felix and endeavoured to secure him more entirely in\r\nhis interests by the promise of her hand in marriage so soon as he\r\nshould be conveyed to a place of safety. Felix was too delicate to\r\naccept this offer, yet he looked forward to the probability of the\r\nevent as to the consummation of his happiness.\r\n\r\n“During the ensuing days, while the preparations were going forward for\r\nthe escape of the merchant, the zeal of Felix was warmed by several\r\nletters that he received from this lovely girl, who found means to\r\nexpress her thoughts in the language of her lover by the aid of an old\r\nman, a servant of her father who understood French. She thanked him in\r\nthe most ardent terms for his intended services towards her parent, and\r\nat the same time she gently deplored her own fate.\r\n\r\n“I have copies of these letters, for I found means, during my residence\r\nin the hovel, to procure the implements of writing; and the letters\r\nwere often in the hands of Felix or Agatha. Before I depart I will\r\ngive them to you; they will prove the truth of my tale; but at present,\r\nas the sun is already far declined, I shall only have time to repeat\r\nthe substance of them to you.\r\n\r\n“Safie related that her mother was a Christian Arab, seized and made a\r\nslave by the Turks; recommended by her beauty, she had won the heart of\r\nthe father of Safie, who married her. The young girl spoke in high and\r\nenthusiastic terms of her mother, who, born in freedom, spurned the\r\nbondage to which she was now reduced. She instructed her daughter in\r\nthe tenets of her religion and taught her to aspire to higher powers of\r\nintellect and an independence of spirit forbidden to the female\r\nfollowers of Muhammad. This lady died, but her lessons were indelibly\r\nimpressed on the mind of Safie, who sickened at the prospect of again\r\nreturning to Asia and being immured within the walls of a harem,\r\nallowed only to occupy herself with infantile amusements, ill-suited to\r\nthe temper of her soul, now accustomed to grand ideas and a noble\r\nemulation for virtue. The prospect of marrying a Christian and\r\nremaining in a country where women were allowed to take a rank in\r\nsociety was enchanting to her.\r\n\r\n“The day for the execution of the Turk was fixed, but on the night\r\nprevious to it he quitted his prison and before morning was distant\r\nmany leagues from Paris. Felix had procured passports in the name of\r\nhis father, sister, and himself. He had previously communicated his\r\nplan to the former, who aided the deceit by quitting his house, under\r\nthe pretence of a journey and concealed himself, with his daughter, in\r\nan obscure part of Paris.\r\n\r\n“Felix conducted the fugitives through France to Lyons and across Mont\r\nCenis to Leghorn, where the merchant had decided to wait a favourable\r\nopportunity of passing into some part of the Turkish dominions.\r\n\r\n“Safie resolved to remain with her father until the moment of his\r\ndeparture, before which time the Turk renewed his promise that she\r\nshould be united to his deliverer; and Felix remained with them in\r\nexpectation of that event; and in the meantime he enjoyed the society\r\nof the Arabian, who exhibited towards him the simplest and tenderest\r\naffection. They conversed with one another through the means of an\r\ninterpreter, and sometimes with the interpretation of looks; and Safie\r\nsang to him the divine airs of her native country.\r\n\r\n“The Turk allowed this intimacy to take place and encouraged the hopes\r\nof the youthful lovers, while in his heart he had formed far other\r\nplans. He loathed the idea that his daughter should be united to a\r\nChristian, but he feared the resentment of Felix if he should appear\r\nlukewarm, for he knew that he was still in the power of his deliverer\r\nif he should choose to betray him to the Italian state which they\r\ninhabited. He revolved a thousand plans by which he should be enabled\r\nto prolong the deceit until it might be no longer necessary, and\r\nsecretly to take his daughter with him when he departed. His plans\r\nwere facilitated by the news which arrived from Paris.\r\n\r\n“The government of France were greatly enraged at the escape of their\r\nvictim and spared no pains to detect and punish his deliverer. The\r\nplot of Felix was quickly discovered, and De Lacey and Agatha were\r\nthrown into prison. The news reached Felix and roused him from his\r\ndream of pleasure. His blind and aged father and his gentle sister lay\r\nin a noisome dungeon while he enjoyed the free air and the society of\r\nher whom he loved. This idea was torture to him. He quickly arranged\r\nwith the Turk that if the latter should find a favourable opportunity\r\nfor escape before Felix could return to Italy, Safie should remain as a\r\nboarder at a convent at Leghorn; and then, quitting the lovely Arabian,\r\nhe hastened to Paris and delivered himself up to the vengeance of the\r\nlaw, hoping to free De Lacey and Agatha by this proceeding.\r\n\r\n“He did not succeed. They remained confined for five months before the\r\ntrial took place, the result of which deprived them of their fortune\r\nand condemned them to a perpetual exile from their native country.\r\n\r\n“They found a miserable asylum in the cottage in Germany, where I\r\ndiscovered them. Felix soon learned that the treacherous Turk, for\r\nwhom he and his family endured such unheard-of oppression, on\r\ndiscovering that his deliverer was thus reduced to poverty and ruin,\r\nbecame a traitor to good feeling and honour and had quitted Italy with\r\nhis daughter, insultingly sending Felix a pittance of money to aid him,\r\nas he said, in some plan of future maintenance.\r\n\r\n“Such were the events that preyed on the heart of Felix and rendered\r\nhim, when I first saw him, the most miserable of his family. He could\r\nhave endured poverty, and while this distress had been the meed of his\r\nvirtue, he gloried in it; but the ingratitude of the Turk and the loss\r\nof his beloved Safie were misfortunes more bitter and irreparable. The\r\narrival of the Arabian now infused new life into his soul.\r\n\r\n“When the news reached Leghorn that Felix was deprived of his wealth\r\nand rank, the merchant commanded his daughter to think no more of her\r\nlover, but to prepare to return to her native country. The generous\r\nnature of Safie was outraged by this command; she attempted to\r\nexpostulate with her father, but he left her angrily, reiterating his\r\ntyrannical mandate.\r\n\r\n“A few days after, the Turk entered his daughter’s apartment and told\r\nher hastily that he had reason to believe that his residence at Leghorn\r\nhad been divulged and that he should speedily be delivered up to the\r\nFrench government; he had consequently hired a vessel to convey him to\r\nConstantinople, for which city he should sail in a few hours. He\r\nintended to leave his daughter under the care of a confidential\r\nservant, to follow at her leisure with the greater part of his\r\nproperty, which had not yet arrived at Leghorn.\r\n\r\n“When alone, Safie resolved in her own mind the plan of conduct that it\r\nwould become her to pursue in this emergency. A residence in Turkey\r\nwas abhorrent to her; her religion and her feelings were alike averse\r\nto it. By some papers of her father which fell into her hands she\r\nheard of the exile of her lover and learnt the name of the spot where\r\nhe then resided. She hesitated some time, but at length she formed her\r\ndetermination. Taking with her some jewels that belonged to her and a\r\nsum of money, she quitted Italy with an attendant, a native of Leghorn,\r\nbut who understood the common language of Turkey, and departed for\r\nGermany.\r\n\r\n“She arrived in safety at a town about twenty leagues from the cottage\r\nof De Lacey, when her attendant fell dangerously ill. Safie nursed her\r\nwith the most devoted affection, but the poor girl died, and the\r\nArabian was left alone, unacquainted with the language of the country\r\nand utterly ignorant of the customs of the world. She fell, however,\r\ninto good hands. The Italian had mentioned the name of the spot for\r\nwhich they were bound, and after her death the woman of the house in\r\nwhich they had lived took care that Safie should arrive in safety at\r\nthe cottage of her lover.”\r\n\r\n\r\n\r\n\r\nChapter 15\r\n\r\n\r\n“Such was the history of my beloved cottagers. It impressed me deeply.\r\nI learned, from the views of social life which it developed, to admire\r\ntheir virtues and to deprecate the vices of mankind.\r\n\r\n“As yet I looked upon crime as a distant evil, benevolence and\r\ngenerosity were ever present before me, inciting within me a desire to\r\nbecome an actor in the busy scene where so many admirable qualities\r\nwere called forth and displayed. But in giving an account of the\r\nprogress of my intellect, I must not omit a circumstance which occurred\r\nin the beginning of the month of August of the same year.\r\n\r\n“One night during my accustomed visit to the neighbouring wood where I\r\ncollected my own food and brought home firing for my protectors, I found on\r\nthe ground a leathern portmanteau containing several articles of dress and\r\nsome books. I eagerly seized the prize and returned with it to my hovel. \r\nFortunately the books were written in the language, the elements of which I\r\nhad acquired at the cottage; they consisted of _Paradise Lost_, a volume\r\nof _Plutarch’s Lives_, and the _Sorrows of Werter_. The\r\npossession of these treasures gave me extreme delight; I now continually\r\nstudied and exercised my mind upon these histories, whilst my friends were\r\nemployed in their ordinary occupations.\r\n\r\n“I can hardly describe to you the effect of these books. They produced\r\nin me an infinity of new images and feelings, that sometimes raised me\r\nto ecstasy, but more frequently sunk me into the lowest dejection. In\r\nthe _Sorrows of Werter_, besides the interest of its simple and affecting\r\nstory, so many opinions are canvassed and so many lights thrown upon\r\nwhat had hitherto been to me obscure subjects that I found in it a\r\nnever-ending source of speculation and astonishment. The gentle and\r\ndomestic manners it described, combined with lofty sentiments and\r\nfeelings, which had for their object something out of self, accorded\r\nwell with my experience among my protectors and with the wants which\r\nwere for ever alive in my own bosom. But I thought Werter himself a\r\nmore divine being than I had ever beheld or imagined; his character\r\ncontained no pretension, but it sank deep. The disquisitions upon\r\ndeath and suicide were calculated to fill me with wonder. I did not\r\npretend to enter into the merits of the case, yet I inclined towards\r\nthe opinions of the hero, whose extinction I wept, without precisely\r\nunderstanding it.\r\n\r\n“As I read, however, I applied much personally to my own feelings and\r\ncondition. I found myself similar yet at the same time strangely\r\nunlike to the beings concerning whom I read and to whose conversation I\r\nwas a listener. I sympathised with and partly understood them, but I\r\nwas unformed in mind; I was dependent on none and related to none.\r\n‘The path of my departure was free,’ and there was none to lament my\r\nannihilation. My person was hideous and my stature gigantic. What did\r\nthis mean? Who was I? What was I? Whence did I come? What was my\r\ndestination? These questions continually recurred, but I was unable to\r\nsolve them.\r\n\r\n“The volume of _Plutarch’s Lives_ which I possessed contained the\r\nhistories of the first founders of the ancient republics. This book\r\nhad a far different effect upon me from the _Sorrows of Werter_. I\r\nlearned from Werter’s imaginations despondency and gloom, but Plutarch\r\ntaught me high thoughts; he elevated me above the wretched sphere of my\r\nown reflections, to admire and love the heroes of past ages. Many\r\nthings I read surpassed my understanding and experience. I had a very\r\nconfused knowledge of kingdoms, wide extents of country, mighty rivers,\r\nand boundless seas. But I was perfectly unacquainted with towns and\r\nlarge assemblages of men. The cottage of my protectors had been the\r\nonly school in which I had studied human nature, but this book\r\ndeveloped new and mightier scenes of action. I read of men concerned\r\nin public affairs, governing or massacring their species. I felt the\r\ngreatest ardour for virtue rise within me, and abhorrence for vice, as\r\nfar as I understood the signification of those terms, relative as they\r\nwere, as I applied them, to pleasure and pain alone. Induced by these\r\nfeelings, I was of course led to admire peaceable lawgivers, Numa,\r\nSolon, and Lycurgus, in preference to Romulus and Theseus. The\r\npatriarchal lives of my protectors caused these impressions to take a\r\nfirm hold on my mind; perhaps, if my first introduction to humanity had\r\nbeen made by a young soldier, burning for glory and slaughter, I should\r\nhave been imbued with different sensations.\r\n\r\n“But _Paradise Lost_ excited different and far deeper emotions. I read\r\nit, as I had read the other volumes which had fallen into my hands, as\r\na true history. It moved every feeling of wonder and awe that the\r\npicture of an omnipotent God warring with his creatures was capable of\r\nexciting. I often referred the several situations, as their similarity\r\nstruck me, to my own. Like Adam, I was apparently united by no link to\r\nany other being in existence; but his state was far different from mine\r\nin every other respect. He had come forth from the hands of God a\r\nperfect creature, happy and prosperous, guarded by the especial care of\r\nhis Creator; he was allowed to converse with and acquire knowledge from\r\nbeings of a superior nature, but I was wretched, helpless, and alone.\r\nMany times I considered Satan as the fitter emblem of my condition, for\r\noften, like him, when I viewed the bliss of my protectors, the bitter\r\ngall of envy rose within me.\r\n\r\n“Another circumstance strengthened and confirmed these feelings. Soon\r\nafter my arrival in the hovel I discovered some papers in the pocket of\r\nthe dress which I had taken from your laboratory. At first I had\r\nneglected them, but now that I was able to decipher the characters in\r\nwhich they were written, I began to study them with diligence. It was\r\nyour journal of the four months that preceded my creation. You\r\nminutely described in these papers every step you took in the progress\r\nof your work; this history was mingled with accounts of domestic\r\noccurrences. You doubtless recollect these papers. Here they are.\r\nEverything is related in them which bears reference to my accursed\r\norigin; the whole detail of that series of disgusting circumstances\r\nwhich produced it is set in view; the minutest description of my odious\r\nand loathsome person is given, in language which painted your own\r\nhorrors and rendered mine indelible. I sickened as I read. ‘Hateful\r\nday when I received life!’ I exclaimed in agony. ‘Accursed creator!\r\nWhy did you form a monster so hideous that even _you_ turned from me in\r\ndisgust? God, in pity, made man beautiful and alluring, after his own\r\nimage; but my form is a filthy type of yours, more horrid even from the\r\nvery resemblance. Satan had his companions, fellow devils, to admire\r\nand encourage him, but I am solitary and abhorred.’\r\n\r\n“These were the reflections of my hours of despondency and solitude;\r\nbut when I contemplated the virtues of the cottagers, their amiable and\r\nbenevolent dispositions, I persuaded myself that when they should\r\nbecome acquainted with my admiration of their virtues they would\r\ncompassionate me and overlook my personal deformity. Could they turn\r\nfrom their door one, however monstrous, who solicited their compassion\r\nand friendship? I resolved, at least, not to despair, but in every way\r\nto fit myself for an interview with them which would decide my fate. I\r\npostponed this attempt for some months longer, for the importance\r\nattached to its success inspired me with a dread lest I should fail.\r\nBesides, I found that my understanding improved so much with every\r\nday’s experience that I was unwilling to commence this undertaking\r\nuntil a few more months should have added to my sagacity.\r\n\r\n“Several changes, in the meantime, took place in the cottage. The\r\npresence of Safie diffused happiness among its inhabitants, and I also\r\nfound that a greater degree of plenty reigned there. Felix and Agatha\r\nspent more time in amusement and conversation, and were assisted in\r\ntheir labours by servants. They did not appear rich, but they were\r\ncontented and happy; their feelings were serene and peaceful, while\r\nmine became every day more tumultuous. Increase of knowledge only\r\ndiscovered to me more clearly what a wretched outcast I was. I\r\ncherished hope, it is true, but it vanished when I beheld my person\r\nreflected in water or my shadow in the moonshine, even as that frail\r\nimage and that inconstant shade.\r\n\r\n“I endeavoured to crush these fears and to fortify myself for the trial\r\nwhich in a few months I resolved to undergo; and sometimes I allowed my\r\nthoughts, unchecked by reason, to ramble in the fields of Paradise, and\r\ndared to fancy amiable and lovely creatures sympathising with my\r\nfeelings and cheering my gloom; their angelic countenances breathed\r\nsmiles of consolation. But it was all a dream; no Eve soothed my\r\nsorrows nor shared my thoughts; I was alone. I remembered Adam’s\r\nsupplication to his Creator. But where was mine? He had abandoned me,\r\nand in the bitterness of my heart I cursed him.\r\n\r\n“Autumn passed thus. I saw, with surprise and grief, the leaves decay\r\nand fall, and nature again assume the barren and bleak appearance it\r\nhad worn when I first beheld the woods and the lovely moon. Yet I did\r\nnot heed the bleakness of the weather; I was better fitted by my\r\nconformation for the endurance of cold than heat. But my chief\r\ndelights were the sight of the flowers, the birds, and all the gay\r\napparel of summer; when those deserted me, I turned with more attention\r\ntowards the cottagers. Their happiness was not decreased by the\r\nabsence of summer. They loved and sympathised with one another; and\r\ntheir joys, depending on each other, were not interrupted by the\r\ncasualties that took place around them. The more I saw of them, the\r\ngreater became my desire to claim their protection and kindness; my\r\nheart yearned to be known and loved by these amiable creatures; to see\r\ntheir sweet looks directed towards me with affection was the utmost\r\nlimit of my ambition. I dared not think that they would turn them from\r\nme with disdain and horror. The poor that stopped at their door were\r\nnever driven away. I asked, it is true, for greater treasures than a\r\nlittle food or rest: I required kindness and sympathy; but I did not\r\nbelieve myself utterly unworthy of it.\r\n\r\n“The winter advanced, and an entire revolution of the seasons had taken\r\nplace since I awoke into life. My attention at this time was solely\r\ndirected towards my plan of introducing myself into the cottage of my\r\nprotectors. I revolved many projects, but that on which I finally\r\nfixed was to enter the dwelling when the blind old man should be alone.\r\nI had sagacity enough to discover that the unnatural hideousness of my\r\nperson was the chief object of horror with those who had formerly\r\nbeheld me. My voice, although harsh, had nothing terrible in it; I\r\nthought, therefore, that if in the absence of his children I could gain\r\nthe good will and mediation of the old De Lacey, I might by his means\r\nbe tolerated by my younger protectors.\r\n\r\n“One day, when the sun shone on the red leaves that strewed the ground\r\nand diffused cheerfulness, although it denied warmth, Safie, Agatha,\r\nand Felix departed on a long country walk, and the old man, at his own\r\ndesire, was left alone in the cottage. When his children had departed,\r\nhe took up his guitar and played several mournful but sweet airs, more\r\nsweet and mournful than I had ever heard him play before. At first his\r\ncountenance was illuminated with pleasure, but as he continued,\r\nthoughtfulness and sadness succeeded; at length, laying aside the\r\ninstrument, he sat absorbed in reflection.\r\n\r\n“My heart beat quick; this was the hour and moment of trial, which\r\nwould decide my hopes or realise my fears. The servants were gone to a\r\nneighbouring fair. All was silent in and around the cottage; it was an\r\nexcellent opportunity; yet, when I proceeded to execute my plan, my\r\nlimbs failed me and I sank to the ground. Again I rose, and exerting\r\nall the firmness of which I was master, removed the planks which I had\r\nplaced before my hovel to conceal my retreat. The fresh air revived\r\nme, and with renewed determination I approached the door of their\r\ncottage.\r\n\r\n“I knocked. ‘Who is there?’ said the old man. ‘Come in.’\r\n\r\n“I entered. ‘Pardon this intrusion,’ said I; ‘I am\r\na traveller in want of a little rest; you would greatly oblige me if you\r\nwould allow me to remain a few minutes before the fire.’\r\n\r\n“‘Enter,’ said De Lacey, ‘and I will try in what\r\nmanner I can to relieve your wants; but, unfortunately, my children are\r\nfrom home, and as I am blind, I am afraid I shall find it difficult to\r\nprocure food for you.’\r\n\r\n“‘Do not trouble yourself, my kind host; I have food; it is\r\nwarmth and rest only that I need.’\r\n\r\n“I sat down, and a silence ensued. I knew that every minute was\r\nprecious to me, yet I remained irresolute in what manner to commence\r\nthe interview, when the old man addressed me.\r\n\r\n‘By your language, stranger, I suppose you are my countryman; are you\r\nFrench?’\r\n\r\n“‘No; but I was educated by a French family and understand that\r\nlanguage only. I am now going to claim the protection of some friends,\r\nwhom I sincerely love, and of whose favour I have some hopes.’\r\n\r\n“‘Are they Germans?’\r\n\r\n“‘No, they are French. But let us change the subject. I am an\r\nunfortunate and deserted creature, I look around and I have no relation\r\nor friend upon earth. These amiable people to whom I go have never\r\nseen me and know little of me. I am full of fears, for if I fail\r\nthere, I am an outcast in the world for ever.’\r\n\r\n“‘Do not despair. To be friendless is indeed to be unfortunate, but\r\nthe hearts of men, when unprejudiced by any obvious self-interest, are\r\nfull of brotherly love and charity. Rely, therefore, on your hopes;\r\nand if these friends are good and amiable, do not despair.’\r\n\r\n“‘They are kind—they are the most excellent creatures in the world;\r\nbut, unfortunately, they are prejudiced against me. I have good\r\ndispositions; my life has been hitherto harmless and in some degree\r\nbeneficial; but a fatal prejudice clouds their eyes, and where they\r\nought to see a feeling and kind friend, they behold only a detestable\r\nmonster.’\r\n\r\n“‘That is indeed unfortunate; but if you are really blameless, cannot\r\nyou undeceive them?’\r\n\r\n“‘I am about to undertake that task; and it is on that account that I\r\nfeel so many overwhelming terrors. I tenderly love these friends; I\r\nhave, unknown to them, been for many months in the habits of daily\r\nkindness towards them; but they believe that I wish to injure them, and\r\nit is that prejudice which I wish to overcome.’\r\n\r\n“‘Where do these friends reside?’\r\n\r\n“‘Near this spot.’\r\n\r\n“The old man paused and then continued, ‘If you will unreservedly\r\nconfide to me the particulars of your tale, I perhaps may be of use in\r\nundeceiving them. I am blind and cannot judge of your countenance, but\r\nthere is something in your words which persuades me that you are\r\nsincere. I am poor and an exile, but it will afford me true pleasure\r\nto be in any way serviceable to a human creature.’\r\n\r\n“‘Excellent man! I thank you and accept your generous offer. You\r\nraise me from the dust by this kindness; and I trust that, by your aid,\r\nI shall not be driven from the society and sympathy of your fellow\r\ncreatures.’\r\n\r\n“‘Heaven forbid! Even if you were really criminal, for that can only\r\ndrive you to desperation, and not instigate you to virtue. I also am\r\nunfortunate; I and my family have been condemned, although innocent;\r\njudge, therefore, if I do not feel for your misfortunes.’\r\n\r\n“‘How can I thank you, my best and only benefactor? From your lips\r\nfirst have I heard the voice of kindness directed towards me; I shall\r\nbe for ever grateful; and your present humanity assures me of success\r\nwith those friends whom I am on the point of meeting.’\r\n\r\n“‘May I know the names and residence of those friends?’\r\n\r\n“I paused. This, I thought, was the moment of decision, which was to\r\nrob me of or bestow happiness on me for ever. I struggled vainly for\r\nfirmness sufficient to answer him, but the effort destroyed all my\r\nremaining strength; I sank on the chair and sobbed aloud. At that\r\nmoment I heard the steps of my younger protectors. I had not a moment\r\nto lose, but seizing the hand of the old man, I cried, ‘Now is the\r\ntime! Save and protect me! You and your family are the friends whom I\r\nseek. Do not you desert me in the hour of trial!’\r\n\r\n“‘Great God!’ exclaimed the old man. ‘Who are you?’\r\n\r\n“At that instant the cottage door was opened, and Felix, Safie, and\r\nAgatha entered. Who can describe their horror and consternation on\r\nbeholding me? Agatha fainted, and Safie, unable to attend to her\r\nfriend, rushed out of the cottage. Felix darted forward, and with\r\nsupernatural force tore me from his father, to whose knees I clung, in\r\na transport of fury, he dashed me to the ground and struck me violently\r\nwith a stick. I could have torn him limb from limb, as the lion rends\r\nthe antelope. But my heart sank within me as with bitter sickness, and\r\nI refrained. I saw him on the point of repeating his blow, when,\r\novercome by pain and anguish, I quitted the cottage, and in the general\r\ntumult escaped unperceived to my hovel.”\r\n\r\n\r\n\r\n\r\nChapter 16\r\n\r\n\r\n“Cursed, cursed creator! Why did I live? Why, in that instant, did I\r\nnot extinguish the spark of existence which you had so wantonly\r\nbestowed? I know not; despair had not yet taken possession of me; my\r\nfeelings were those of rage and revenge. I could with pleasure have\r\ndestroyed the cottage and its inhabitants and have glutted myself with\r\ntheir shrieks and misery.\r\n\r\n“When night came I quitted my retreat and wandered in the wood; and\r\nnow, no longer restrained by the fear of discovery, I gave vent to my\r\nanguish in fearful howlings. I was like a wild beast that had broken\r\nthe toils, destroying the objects that obstructed me and ranging\r\nthrough the wood with a stag-like swiftness. Oh! What a miserable\r\nnight I passed! The cold stars shone in mockery, and the bare trees\r\nwaved their branches above me; now and then the sweet voice of a bird\r\nburst forth amidst the universal stillness. All, save I, were at rest\r\nor in enjoyment; I, like the arch-fiend, bore a hell within me, and\r\nfinding myself unsympathised with, wished to tear up the trees, spread\r\nhavoc and destruction around me, and then to have sat down and enjoyed\r\nthe ruin.\r\n\r\n“But this was a luxury of sensation that could not endure; I became\r\nfatigued with excess of bodily exertion and sank on the damp grass in\r\nthe sick impotence of despair. There was none among the myriads of men\r\nthat existed who would pity or assist me; and should I feel kindness\r\ntowards my enemies? No; from that moment I declared everlasting war\r\nagainst the species, and more than all, against him who had formed me\r\nand sent me forth to this insupportable misery.\r\n\r\n“The sun rose; I heard the voices of men and knew that it was\r\nimpossible to return to my retreat during that day. Accordingly I hid\r\nmyself in some thick underwood, determining to devote the ensuing hours\r\nto reflection on my situation.\r\n\r\n“The pleasant sunshine and the pure air of day restored me to some\r\ndegree of tranquillity; and when I considered what had passed at the\r\ncottage, I could not help believing that I had been too hasty in my\r\nconclusions. I had certainly acted imprudently. It was apparent that\r\nmy conversation had interested the father in my behalf, and I was a\r\nfool in having exposed my person to the horror of his children. I\r\nought to have familiarised the old De Lacey to me, and by degrees to\r\nhave discovered myself to the rest of his family, when they should have\r\nbeen prepared for my approach. But I did not believe my errors to be\r\nirretrievable, and after much consideration I resolved to return to the\r\ncottage, seek the old man, and by my representations win him to my\r\nparty.\r\n\r\n“These thoughts calmed me, and in the afternoon I sank into a profound\r\nsleep; but the fever of my blood did not allow me to be visited by\r\npeaceful dreams. The horrible scene of the preceding day was for ever\r\nacting before my eyes; the females were flying and the enraged Felix\r\ntearing me from his father’s feet. I awoke exhausted, and finding that\r\nit was already night, I crept forth from my hiding-place, and went in\r\nsearch of food.\r\n\r\n“When my hunger was appeased, I directed my steps towards the\r\nwell-known path that conducted to the cottage. All there was at peace.\r\nI crept into my hovel and remained in silent expectation of the\r\naccustomed hour when the family arose. That hour passed, the sun\r\nmounted high in the heavens, but the cottagers did not appear. I\r\ntrembled violently, apprehending some dreadful misfortune. The inside\r\nof the cottage was dark, and I heard no motion; I cannot describe the\r\nagony of this suspense.\r\n\r\n“Presently two countrymen passed by, but pausing near the cottage, they\r\nentered into conversation, using violent gesticulations; but I did not\r\nunderstand what they said, as they spoke the language of the country,\r\nwhich differed from that of my protectors. Soon after, however, Felix\r\napproached with another man; I was surprised, as I knew that he had not\r\nquitted the cottage that morning, and waited anxiously to discover from\r\nhis discourse the meaning of these unusual appearances.\r\n\r\n“‘Do you consider,’ said his companion to him,\r\n‘that you will be obliged to pay three months’ rent and to lose\r\nthe produce of your garden? I do not wish to take any unfair advantage, and\r\nI beg therefore that you will take some days to consider of your\r\ndetermination.’\r\n\r\n“‘It is utterly useless,’ replied Felix; ‘we can\r\nnever again inhabit your cottage. The life of my father is in the greatest\r\ndanger, owing to the dreadful circumstance that I have related. My wife and\r\nmy sister will never recover from their horror. I entreat you not to reason\r\nwith me any more. Take possession of your tenement and let me fly from this\r\nplace.’\r\n\r\n“Felix trembled violently as he said this. He and his companion\r\nentered the cottage, in which they remained for a few minutes, and then\r\ndeparted. I never saw any of the family of De Lacey more.\r\n\r\n“I continued for the remainder of the day in my hovel in a state of\r\nutter and stupid despair. My protectors had departed and had broken\r\nthe only link that held me to the world. For the first time the\r\nfeelings of revenge and hatred filled my bosom, and I did not strive to\r\ncontrol them, but allowing myself to be borne away by the stream, I\r\nbent my mind towards injury and death. When I thought of my friends,\r\nof the mild voice of De Lacey, the gentle eyes of Agatha, and the\r\nexquisite beauty of the Arabian, these thoughts vanished and a gush of\r\ntears somewhat soothed me. But again when I reflected that they had\r\nspurned and deserted me, anger returned, a rage of anger, and unable to\r\ninjure anything human, I turned my fury towards inanimate objects. As\r\nnight advanced, I placed a variety of combustibles around the cottage,\r\nand after having destroyed every vestige of cultivation in the garden,\r\nI waited with forced impatience until the moon had sunk to commence my\r\noperations.\r\n\r\n“As the night advanced, a fierce wind arose from the woods and quickly\r\ndispersed the clouds that had loitered in the heavens; the blast tore\r\nalong like a mighty avalanche and produced a kind of insanity in my\r\nspirits that burst all bounds of reason and reflection. I lighted the\r\ndry branch of a tree and danced with fury around the devoted cottage,\r\nmy eyes still fixed on the western horizon, the edge of which the moon\r\nnearly touched. A part of its orb was at length hid, and I waved my\r\nbrand; it sank, and with a loud scream I fired the straw, and heath,\r\nand bushes, which I had collected. The wind fanned the fire, and the\r\ncottage was quickly enveloped by the flames, which clung to it and\r\nlicked it with their forked and destroying tongues.\r\n\r\n“As soon as I was convinced that no assistance could save any part of\r\nthe habitation, I quitted the scene and sought for refuge in the woods.\r\n\r\n“And now, with the world before me, whither should I bend my steps? I\r\nresolved to fly far from the scene of my misfortunes; but to me, hated\r\nand despised, every country must be equally horrible. At length the\r\nthought of you crossed my mind. I learned from your papers that you\r\nwere my father, my creator; and to whom could I apply with more fitness\r\nthan to him who had given me life? Among the lessons that Felix had\r\nbestowed upon Safie, geography had not been omitted; I had learned from\r\nthese the relative situations of the different countries of the earth.\r\nYou had mentioned Geneva as the name of your native town, and towards\r\nthis place I resolved to proceed.\r\n\r\n“But how was I to direct myself? I knew that I must travel in a\r\nsouthwesterly direction to reach my destination, but the sun was my\r\nonly guide. I did not know the names of the towns that I was to pass\r\nthrough, nor could I ask information from a single human being; but I\r\ndid not despair. From you only could I hope for succour, although\r\ntowards you I felt no sentiment but that of hatred. Unfeeling,\r\nheartless creator! You had endowed me with perceptions and passions\r\nand then cast me abroad an object for the scorn and horror of mankind.\r\nBut on you only had I any claim for pity and redress, and from you I\r\ndetermined to seek that justice which I vainly attempted to gain from\r\nany other being that wore the human form.\r\n\r\n“My travels were long and the sufferings I endured intense. It was\r\nlate in autumn when I quitted the district where I had so long resided.\r\nI travelled only at night, fearful of encountering the visage of a\r\nhuman being. Nature decayed around me, and the sun became heatless;\r\nrain and snow poured around me; mighty rivers were frozen; the surface\r\nof the earth was hard and chill, and bare, and I found no shelter. Oh,\r\nearth! How often did I imprecate curses on the cause of my being! The\r\nmildness of my nature had fled, and all within me was turned to gall\r\nand bitterness. The nearer I approached to your habitation, the more\r\ndeeply did I feel the spirit of revenge enkindled in my heart. Snow\r\nfell, and the waters were hardened, but I rested not. A few incidents\r\nnow and then directed me, and I possessed a map of the country; but I\r\noften wandered wide from my path. The agony of my feelings allowed me\r\nno respite; no incident occurred from which my rage and misery could\r\nnot extract its food; but a circumstance that happened when I arrived\r\non the confines of Switzerland, when the sun had recovered its warmth\r\nand the earth again began to look green, confirmed in an especial\r\nmanner the bitterness and horror of my feelings.\r\n\r\n“I generally rested during the day and travelled only when I was\r\nsecured by night from the view of man. One morning, however, finding\r\nthat my path lay through a deep wood, I ventured to continue my journey\r\nafter the sun had risen; the day, which was one of the first of spring,\r\ncheered even me by the loveliness of its sunshine and the balminess of\r\nthe air. I felt emotions of gentleness and pleasure, that had long\r\nappeared dead, revive within me. Half surprised by the novelty of\r\nthese sensations, I allowed myself to be borne away by them, and\r\nforgetting my solitude and deformity, dared to be happy. Soft tears\r\nagain bedewed my cheeks, and I even raised my humid eyes with\r\nthankfulness towards the blessed sun, which bestowed such joy upon me.\r\n\r\n“I continued to wind among the paths of the wood, until I came to its\r\nboundary, which was skirted by a deep and rapid river, into which many\r\nof the trees bent their branches, now budding with the fresh spring.\r\nHere I paused, not exactly knowing what path to pursue, when I heard\r\nthe sound of voices, that induced me to conceal myself under the shade\r\nof a cypress. I was scarcely hid when a young girl came running\r\ntowards the spot where I was concealed, laughing, as if she ran from\r\nsomeone in sport. She continued her course along the precipitous sides\r\nof the river, when suddenly her foot slipped, and she fell into the\r\nrapid stream. I rushed from my hiding-place and with extreme labour,\r\nfrom the force of the current, saved her and dragged her to shore. She\r\nwas senseless, and I endeavoured by every means in my power to restore\r\nanimation, when I was suddenly interrupted by the approach of a rustic,\r\nwho was probably the person from whom she had playfully fled. On\r\nseeing me, he darted towards me, and tearing the girl from my arms,\r\nhastened towards the deeper parts of the wood. I followed speedily, I\r\nhardly knew why; but when the man saw me draw near, he aimed a gun,\r\nwhich he carried, at my body and fired. I sank to the ground, and my\r\ninjurer, with increased swiftness, escaped into the wood.\r\n\r\n“This was then the reward of my benevolence! I had saved a human being\r\nfrom destruction, and as a recompense I now writhed under the miserable\r\npain of a wound which shattered the flesh and bone. The feelings of\r\nkindness and gentleness which I had entertained but a few moments\r\nbefore gave place to hellish rage and gnashing of teeth. Inflamed by\r\npain, I vowed eternal hatred and vengeance to all mankind. But the\r\nagony of my wound overcame me; my pulses paused, and I fainted.\r\n\r\n“For some weeks I led a miserable life in the woods, endeavouring to\r\ncure the wound which I had received. The ball had entered my shoulder,\r\nand I knew not whether it had remained there or passed through; at any\r\nrate I had no means of extracting it. My sufferings were augmented\r\nalso by the oppressive sense of the injustice and ingratitude of their\r\ninfliction. My daily vows rose for revenge—a deep and deadly revenge,\r\nsuch as would alone compensate for the outrages and anguish I had\r\nendured.\r\n\r\n“After some weeks my wound healed, and I continued my journey. The\r\nlabours I endured were no longer to be alleviated by the bright sun or\r\ngentle breezes of spring; all joy was but a mockery which insulted my\r\ndesolate state and made me feel more painfully that I was not made for\r\nthe enjoyment of pleasure.\r\n\r\n“But my toils now drew near a close, and in two months from this time I\r\nreached the environs of Geneva.\r\n\r\n“It was evening when I arrived, and I retired to a hiding-place among\r\nthe fields that surround it to meditate in what manner I should apply\r\nto you. I was oppressed by fatigue and hunger and far too unhappy to\r\nenjoy the gentle breezes of evening or the prospect of the sun setting\r\nbehind the stupendous mountains of Jura.\r\n\r\n“At this time a slight sleep relieved me from the pain of reflection,\r\nwhich was disturbed by the approach of a beautiful child, who came\r\nrunning into the recess I had chosen, with all the sportiveness of\r\ninfancy. Suddenly, as I gazed on him, an idea seized me that this\r\nlittle creature was unprejudiced and had lived too short a time to have\r\nimbibed a horror of deformity. If, therefore, I could seize him and\r\neducate him as my companion and friend, I should not be so desolate in\r\nthis peopled earth.\r\n\r\n“Urged by this impulse, I seized on the boy as he passed and drew him\r\ntowards me. As soon as he beheld my form, he placed his hands before\r\nhis eyes and uttered a shrill scream; I drew his hand forcibly from his\r\nface and said, ‘Child, what is the meaning of this? I do not intend to\r\nhurt you; listen to me.’\r\n\r\n“He struggled violently. ‘Let me go,’ he cried;\r\n‘monster! Ugly wretch! You wish to eat me and tear me to pieces. You\r\nare an ogre. Let me go, or I will tell my papa.’\r\n\r\n“‘Boy, you will never see your father again; you must come with me.’\r\n\r\n“‘Hideous monster! Let me go. My papa is a syndic—he is M.\r\nFrankenstein—he will punish you. You dare not keep me.’\r\n\r\n“‘Frankenstein! you belong then to my enemy—to him towards whom I have\r\nsworn eternal revenge; you shall be my first victim.’\r\n\r\n“The child still struggled and loaded me with epithets which carried\r\ndespair to my heart; I grasped his throat to silence him, and in a\r\nmoment he lay dead at my feet.\r\n\r\n“I gazed on my victim, and my heart swelled with exultation and hellish\r\ntriumph; clapping my hands, I exclaimed, ‘I too can create desolation;\r\nmy enemy is not invulnerable; this death will carry despair to him, and\r\na thousand other miseries shall torment and destroy him.’\r\n\r\n“As I fixed my eyes on the child, I saw something glittering on his\r\nbreast. I took it; it was a portrait of a most lovely woman. In spite\r\nof my malignity, it softened and attracted me. For a few moments I\r\ngazed with delight on her dark eyes, fringed by deep lashes, and her\r\nlovely lips; but presently my rage returned; I remembered that I was\r\nfor ever deprived of the delights that such beautiful creatures could\r\nbestow and that she whose resemblance I contemplated would, in\r\nregarding me, have changed that air of divine benignity to one\r\nexpressive of disgust and affright.\r\n\r\n“Can you wonder that such thoughts transported me with rage? I only\r\nwonder that at that moment, instead of venting my sensations in\r\nexclamations and agony, I did not rush among mankind and perish in the\r\nattempt to destroy them.\r\n\r\n“While I was overcome by these feelings, I left the spot where I had\r\ncommitted the murder, and seeking a more secluded hiding-place, I\r\nentered a barn which had appeared to me to be empty. A woman was\r\nsleeping on some straw; she was young, not indeed so beautiful as her\r\nwhose portrait I held, but of an agreeable aspect and blooming in the\r\nloveliness of youth and health. Here, I thought, is one of those whose\r\njoy-imparting smiles are bestowed on all but me. And then I bent over\r\nher and whispered, ‘Awake, fairest, thy lover is near—he who would\r\ngive his life but to obtain one look of affection from thine eyes; my\r\nbeloved, awake!’\r\n\r\n“The sleeper stirred; a thrill of terror ran through me. Should she\r\nindeed awake, and see me, and curse me, and denounce the murderer? Thus\r\nwould she assuredly act if her darkened eyes opened and she beheld me.\r\nThe thought was madness; it stirred the fiend within me—not I, but\r\nshe, shall suffer; the murder I have committed because I am for ever\r\nrobbed of all that she could give me, she shall atone. The crime had\r\nits source in her; be hers the punishment! Thanks to the lessons of\r\nFelix and the sanguinary laws of man, I had learned now to work\r\nmischief. I bent over her and placed the portrait securely in one of\r\nthe folds of her dress. She moved again, and I fled.\r\n\r\n“For some days I haunted the spot where these scenes had taken place,\r\nsometimes wishing to see you, sometimes resolved to quit the world and\r\nits miseries for ever. At length I wandered towards these mountains,\r\nand have ranged through their immense recesses, consumed by a burning\r\npassion which you alone can gratify. We may not part until you have\r\npromised to comply with my requisition. I am alone and miserable; man\r\nwill not associate with me; but one as deformed and horrible as myself\r\nwould not deny herself to me. My companion must be of the same species\r\nand have the same defects. This being you must create.”\r\n\r\n\r\n\r\n\r\nChapter 17\r\n\r\n\r\nThe being finished speaking and fixed his looks upon me in the\r\nexpectation of a reply. But I was bewildered, perplexed, and unable to\r\narrange my ideas sufficiently to understand the full extent of his\r\nproposition. He continued,\r\n\r\n“You must create a female for me with whom I can live in the\r\ninterchange of those sympathies necessary for my being. This you alone\r\ncan do, and I demand it of you as a right which you must not refuse to\r\nconcede.”\r\n\r\nThe latter part of his tale had kindled anew in me the anger that had\r\ndied away while he narrated his peaceful life among the cottagers, and\r\nas he said this I could no longer suppress the rage that burned within\r\nme.\r\n\r\n“I do refuse it,” I replied; “and no torture shall ever extort a\r\nconsent from me. You may render me the most miserable of men, but you\r\nshall never make me base in my own eyes. Shall I create another like\r\nyourself, whose joint wickedness might desolate the world. Begone! I\r\nhave answered you; you may torture me, but I will never consent.”\r\n\r\n“You are in the wrong,” replied the fiend; “and instead\r\nof threatening, I am content to reason with you. I am malicious because I\r\nam miserable. Am I not shunned and hated by all mankind? You, my creator,\r\nwould tear me to pieces and triumph; remember that, and tell me why I\r\nshould pity man more than he pities me? You would not call it murder if you\r\ncould precipitate me into one of those ice-rifts and destroy my frame, the\r\nwork of your own hands. Shall I respect man when he condemns me? Let him\r\nlive with me in the interchange of kindness, and instead of injury I would\r\nbestow every benefit upon him with tears of gratitude at his acceptance.\r\nBut that cannot be; the human senses are insurmountable barriers to our\r\nunion. Yet mine shall not be the submission of abject slavery. I will\r\nrevenge my injuries; if I cannot inspire love, I will cause fear, and\r\nchiefly towards you my arch-enemy, because my creator, do I swear\r\ninextinguishable hatred. Have a care; I will work at your destruction, nor\r\nfinish until I desolate your heart, so that you shall curse the hour of\r\nyour birth.”\r\n\r\nA fiendish rage animated him as he said this; his face was wrinkled\r\ninto contortions too horrible for human eyes to behold; but presently\r\nhe calmed himself and proceeded—\r\n\r\n“I intended to reason. This passion is detrimental to me, for you do\r\nnot reflect that _you_ are the cause of its excess. If any being felt\r\nemotions of benevolence towards me, I should return them a hundred and a\r\nhundredfold; for that one creature’s sake I would make peace with the\r\nwhole kind! But I now indulge in dreams of bliss that cannot be realised.\r\nWhat I ask of you is reasonable and moderate; I demand a creature of\r\nanother sex, but as hideous as myself; the gratification is small, but it\r\nis all that I can receive, and it shall content me. It is true, we shall be\r\nmonsters, cut off from all the world; but on that account we shall be more\r\nattached to one another. Our lives will not be happy, but they will be\r\nharmless and free from the misery I now feel. Oh! My creator, make me\r\nhappy; let me feel gratitude towards you for one benefit! Let me see that I\r\nexcite the sympathy of some existing thing; do not deny me my\r\nrequest!”\r\n\r\nI was moved. I shuddered when I thought of the possible consequences\r\nof my consent, but I felt that there was some justice in his argument.\r\nHis tale and the feelings he now expressed proved him to be a creature\r\nof fine sensations, and did I not as his maker owe him all the portion\r\nof happiness that it was in my power to bestow? He saw my change of\r\nfeeling and continued,\r\n\r\n“If you consent, neither you nor any other human being shall ever see\r\nus again; I will go to the vast wilds of South America. My food is not\r\nthat of man; I do not destroy the lamb and the kid to glut my appetite;\r\nacorns and berries afford me sufficient nourishment. My companion will\r\nbe of the same nature as myself and will be content with the same fare.\r\nWe shall make our bed of dried leaves; the sun will shine on us as on\r\nman and will ripen our food. The picture I present to you is peaceful\r\nand human, and you must feel that you could deny it only in the\r\nwantonness of power and cruelty. Pitiless as you have been towards me,\r\nI now see compassion in your eyes; let me seize the favourable moment\r\nand persuade you to promise what I so ardently desire.”\r\n\r\n“You propose,” replied I, “to fly from the habitations of\r\nman, to dwell in those wilds where the beasts of the field will be your\r\nonly companions. How can you, who long for the love and sympathy of man,\r\npersevere in this exile? You will return and again seek their kindness, and\r\nyou will meet with their detestation; your evil passions will be renewed,\r\nand you will then have a companion to aid you in the task of destruction.\r\nThis may not be; cease to argue the point, for I cannot consent.”\r\n\r\n“How inconstant are your feelings! But a moment ago you were moved by\r\nmy representations, and why do you again harden yourself to my complaints?\r\nI swear to you, by the earth which I inhabit, and by you that made me, that\r\nwith the companion you bestow, I will quit the neighbourhood of man and\r\ndwell, as it may chance, in the most savage of places. My evil passions\r\nwill have fled, for I shall meet with sympathy! My life will flow quietly\r\naway, and in my dying moments I shall not curse my maker.”\r\n\r\nHis words had a strange effect upon me. I compassionated him and\r\nsometimes felt a wish to console him, but when I looked upon him, when\r\nI saw the filthy mass that moved and talked, my heart sickened and my\r\nfeelings were altered to those of horror and hatred. I tried to stifle\r\nthese sensations; I thought that as I could not sympathise with him, I\r\nhad no right to withhold from him the small portion of happiness which\r\nwas yet in my power to bestow.\r\n\r\n“You swear,” I said, “to be harmless; but have you not\r\nalready shown a degree of malice that should reasonably make me distrust\r\nyou? May not even this be a feint that will increase your triumph by\r\naffording a wider scope for your revenge?”\r\n\r\n“How is this? I must not be trifled with, and I demand an answer. If\r\nI have no ties and no affections, hatred and vice must be my portion;\r\nthe love of another will destroy the cause of my crimes, and I shall\r\nbecome a thing of whose existence everyone will be ignorant. My vices\r\nare the children of a forced solitude that I abhor, and my virtues will\r\nnecessarily arise when I live in communion with an equal. I shall feel\r\nthe affections of a sensitive being and become linked to the chain of\r\nexistence and events from which I am now excluded.”\r\n\r\nI paused some time to reflect on all he had related and the various\r\narguments which he had employed. I thought of the promise of virtues which\r\nhe had displayed on the opening of his existence and the subsequent blight\r\nof all kindly feeling by the loathing and scorn which his protectors had\r\nmanifested towards him. His power and threats were not omitted in my\r\ncalculations; a creature who could exist in the ice-caves of the glaciers\r\nand hide himself from pursuit among the ridges of inaccessible precipices\r\nwas a being possessing faculties it would be vain to cope with. After a\r\nlong pause of reflection I concluded that the justice due both to him and\r\nmy fellow creatures demanded of me that I should comply with his request.\r\nTurning to him, therefore, I said,\r\n\r\n“I consent to your demand, on your solemn oath to quit Europe for ever,\r\nand every other place in the neighbourhood of man, as soon as I shall\r\ndeliver into your hands a female who will accompany you in your exile.”\r\n\r\n“I swear,” he cried, “by the sun, and by the blue sky of\r\nheaven, and by the fire of love that burns my heart, that if you grant my\r\nprayer, while they exist you shall never behold me again. Depart to your\r\nhome and commence your labours; I shall watch their progress with\r\nunutterable anxiety; and fear not but that when you are ready I shall\r\nappear.”\r\n\r\nSaying this, he suddenly quitted me, fearful, perhaps, of any change in\r\nmy sentiments. I saw him descend the mountain with greater speed than\r\nthe flight of an eagle, and quickly lost among the undulations of the\r\nsea of ice.\r\n\r\nHis tale had occupied the whole day, and the sun was upon the verge of\r\nthe horizon when he departed. I knew that I ought to hasten my descent\r\ntowards the valley, as I should soon be encompassed in darkness; but my\r\nheart was heavy, and my steps slow. The labour of winding among the\r\nlittle paths of the mountain and fixing my feet firmly as I advanced\r\nperplexed me, occupied as I was by the emotions which the occurrences\r\nof the day had produced. Night was far advanced when I came to the\r\nhalfway resting-place and seated myself beside the fountain. The stars\r\nshone at intervals as the clouds passed from over them; the dark pines\r\nrose before me, and every here and there a broken tree lay on the\r\nground; it was a scene of wonderful solemnity and stirred strange\r\nthoughts within me. I wept bitterly, and clasping my hands in agony, I\r\nexclaimed, “Oh! stars and clouds and winds, ye are all about to mock\r\nme; if ye really pity me, crush sensation and memory; let me become as\r\nnought; but if not, depart, depart, and leave me in darkness.”\r\n\r\nThese were wild and miserable thoughts, but I cannot describe to you\r\nhow the eternal twinkling of the stars weighed upon me and how I\r\nlistened to every blast of wind as if it were a dull ugly siroc on its\r\nway to consume me.\r\n\r\nMorning dawned before I arrived at the village of Chamounix; I took no\r\nrest, but returned immediately to Geneva. Even in my own heart I could\r\ngive no expression to my sensations—they weighed on me with a\r\nmountain’s weight and their excess destroyed my agony beneath them.\r\nThus I returned home, and entering the house, presented myself to the\r\nfamily. My haggard and wild appearance awoke intense alarm, but I\r\nanswered no question, scarcely did I speak. I felt as if I were placed\r\nunder a ban—as if I had no right to claim their sympathies—as if\r\nnever more might I enjoy companionship with them. Yet even thus I\r\nloved them to adoration; and to save them, I resolved to dedicate\r\nmyself to my most abhorred task. The prospect of such an occupation\r\nmade every other circumstance of existence pass before me like a dream,\r\nand that thought only had to me the reality of life.\r\n\r\n\r\n\r\n\r\nChapter 18\r\n\r\n\r\nDay after day, week after week, passed away on my return to Geneva; and\r\nI could not collect the courage to recommence my work. I feared the\r\nvengeance of the disappointed fiend, yet I was unable to overcome my\r\nrepugnance to the task which was enjoined me. I found that I could not\r\ncompose a female without again devoting several months to profound\r\nstudy and laborious disquisition. I had heard of some discoveries\r\nhaving been made by an English philosopher, the knowledge of which was\r\nmaterial to my success, and I sometimes thought of obtaining my\r\nfather’s consent to visit England for this purpose; but I clung to\r\nevery pretence of delay and shrank from taking the first step in an\r\nundertaking whose immediate necessity began to appear less absolute to\r\nme. A change indeed had taken place in me; my health, which had\r\nhitherto declined, was now much restored; and my spirits, when\r\nunchecked by the memory of my unhappy promise, rose proportionably. My\r\nfather saw this change with pleasure, and he turned his thoughts\r\ntowards the best method of eradicating the remains of my melancholy,\r\nwhich every now and then would return by fits, and with a devouring\r\nblackness overcast the approaching sunshine. At these moments I took\r\nrefuge in the most perfect solitude. I passed whole days on the lake\r\nalone in a little boat, watching the clouds and listening to the\r\nrippling of the waves, silent and listless. But the fresh air and\r\nbright sun seldom failed to restore me to some degree of composure, and\r\non my return I met the salutations of my friends with a readier smile\r\nand a more cheerful heart.\r\n\r\nIt was after my return from one of these rambles that my father,\r\ncalling me aside, thus addressed me,\r\n\r\n“I am happy to remark, my dear son, that you have resumed your former\r\npleasures and seem to be returning to yourself. And yet you are still\r\nunhappy and still avoid our society. For some time I was lost in\r\nconjecture as to the cause of this, but yesterday an idea struck me,\r\nand if it is well founded, I conjure you to avow it. Reserve on such a\r\npoint would be not only useless, but draw down treble misery on us all.”\r\n\r\nI trembled violently at his exordium, and my father continued—\r\n\r\n“I confess, my son, that I have always looked forward to your\r\nmarriage with our dear Elizabeth as the tie of our domestic comfort and the\r\nstay of my declining years. You were attached to each other from your\r\nearliest infancy; you studied together, and appeared, in dispositions and\r\ntastes, entirely suited to one another. But so blind is the experience of\r\nman that what I conceived to be the best assistants to my plan may have\r\nentirely destroyed it. You, perhaps, regard her as your sister, without any\r\nwish that she might become your wife. Nay, you may have met with another\r\nwhom you may love; and considering yourself as bound in honour to\r\nElizabeth, this struggle may occasion the poignant misery which you appear\r\nto feel.”\r\n\r\n“My dear father, reassure yourself. I love my cousin tenderly and\r\nsincerely. I never saw any woman who excited, as Elizabeth does, my\r\nwarmest admiration and affection. My future hopes and prospects are\r\nentirely bound up in the expectation of our union.”\r\n\r\n“The expression of your sentiments of this subject, my dear Victor,\r\ngives me more pleasure than I have for some time experienced. If you\r\nfeel thus, we shall assuredly be happy, however present events may cast\r\na gloom over us. But it is this gloom which appears to have taken so\r\nstrong a hold of your mind that I wish to dissipate. Tell me,\r\ntherefore, whether you object to an immediate solemnisation of the\r\nmarriage. We have been unfortunate, and recent events have drawn us\r\nfrom that everyday tranquillity befitting my years and infirmities. You\r\nare younger; yet I do not suppose, possessed as you are of a competent\r\nfortune, that an early marriage would at all interfere with any future\r\nplans of honour and utility that you may have formed. Do not suppose,\r\nhowever, that I wish to dictate happiness to you or that a delay on\r\nyour part would cause me any serious uneasiness. Interpret my words\r\nwith candour and answer me, I conjure you, with confidence and\r\nsincerity.”\r\n\r\nI listened to my father in silence and remained for some time incapable\r\nof offering any reply. I revolved rapidly in my mind a multitude of\r\nthoughts and endeavoured to arrive at some conclusion. Alas! To me\r\nthe idea of an immediate union with my Elizabeth was one of horror and\r\ndismay. I was bound by a solemn promise which I had not yet fulfilled\r\nand dared not break, or if I did, what manifold miseries might not\r\nimpend over me and my devoted family! Could I enter into a festival\r\nwith this deadly weight yet hanging round my neck and bowing me to the\r\nground? I must perform my engagement and let the monster depart with\r\nhis mate before I allowed myself to enjoy the delight of a union from\r\nwhich I expected peace.\r\n\r\nI remembered also the necessity imposed upon me of either journeying to\r\nEngland or entering into a long correspondence with those philosophers\r\nof that country whose knowledge and discoveries were of indispensable\r\nuse to me in my present undertaking. The latter method of obtaining\r\nthe desired intelligence was dilatory and unsatisfactory; besides, I\r\nhad an insurmountable aversion to the idea of engaging myself in my\r\nloathsome task in my father’s house while in habits of familiar\r\nintercourse with those I loved. I knew that a thousand fearful\r\naccidents might occur, the slightest of which would disclose a tale to\r\nthrill all connected with me with horror. I was aware also that I\r\nshould often lose all self-command, all capacity of hiding the\r\nharrowing sensations that would possess me during the progress of my\r\nunearthly occupation. I must absent myself from all I loved while thus\r\nemployed. Once commenced, it would quickly be achieved, and I might be\r\nrestored to my family in peace and happiness. My promise fulfilled,\r\nthe monster would depart for ever. Or (so my fond fancy imaged) some\r\naccident might meanwhile occur to destroy him and put an end to my\r\nslavery for ever.\r\n\r\nThese feelings dictated my answer to my father. I expressed a wish to\r\nvisit England, but concealing the true reasons of this request, I\r\nclothed my desires under a guise which excited no suspicion, while I\r\nurged my desire with an earnestness that easily induced my father to\r\ncomply. After so long a period of an absorbing melancholy that\r\nresembled madness in its intensity and effects, he was glad to find\r\nthat I was capable of taking pleasure in the idea of such a journey,\r\nand he hoped that change of scene and varied amusement would, before my\r\nreturn, have restored me entirely to myself.\r\n\r\nThe duration of my absence was left to my own choice; a few months, or\r\nat most a year, was the period contemplated. One paternal kind\r\nprecaution he had taken to ensure my having a companion. Without\r\npreviously communicating with me, he had, in concert with Elizabeth,\r\narranged that Clerval should join me at Strasburgh. This interfered\r\nwith the solitude I coveted for the prosecution of my task; yet at the\r\ncommencement of my journey the presence of my friend could in no way be\r\nan impediment, and truly I rejoiced that thus I should be saved many\r\nhours of lonely, maddening reflection. Nay, Henry might stand between\r\nme and the intrusion of my foe. If I were alone, would he not at times\r\nforce his abhorred presence on me to remind me of my task or to\r\ncontemplate its progress?\r\n\r\nTo England, therefore, I was bound, and it was understood that my union\r\nwith Elizabeth should take place immediately on my return. My father’s\r\nage rendered him extremely averse to delay. For myself, there was one\r\nreward I promised myself from my detested toils—one consolation for my\r\nunparalleled sufferings; it was the prospect of that day when,\r\nenfranchised from my miserable slavery, I might claim Elizabeth and\r\nforget the past in my union with her.\r\n\r\nI now made arrangements for my journey, but one feeling haunted me\r\nwhich filled me with fear and agitation. During my absence I should\r\nleave my friends unconscious of the existence of their enemy and\r\nunprotected from his attacks, exasperated as he might be by my\r\ndeparture. But he had promised to follow me wherever I might go, and\r\nwould he not accompany me to England? This imagination was dreadful in\r\nitself, but soothing inasmuch as it supposed the safety of my friends.\r\nI was agonised with the idea of the possibility that the reverse of\r\nthis might happen. But through the whole period during which I was the\r\nslave of my creature I allowed myself to be governed by the impulses of\r\nthe moment; and my present sensations strongly intimated that the fiend\r\nwould follow me and exempt my family from the danger of his\r\nmachinations.\r\n\r\nIt was in the latter end of September that I again quitted my native\r\ncountry. My journey had been my own suggestion, and Elizabeth\r\ntherefore acquiesced, but she was filled with disquiet at the idea of\r\nmy suffering, away from her, the inroads of misery and grief. It had\r\nbeen her care which provided me a companion in Clerval—and yet a man\r\nis blind to a thousand minute circumstances which call forth a woman’s\r\nsedulous attention. She longed to bid me hasten my return; a thousand\r\nconflicting emotions rendered her mute as she bade me a tearful, silent\r\nfarewell.\r\n\r\nI threw myself into the carriage that was to convey me away, hardly\r\nknowing whither I was going, and careless of what was passing around.\r\nI remembered only, and it was with a bitter anguish that I reflected on\r\nit, to order that my chemical instruments should be packed to go with\r\nme. Filled with dreary imaginations, I passed through many beautiful\r\nand majestic scenes, but my eyes were fixed and unobserving. I could\r\nonly think of the bourne of my travels and the work which was to occupy\r\nme whilst they endured.\r\n\r\nAfter some days spent in listless indolence, during which I traversed\r\nmany leagues, I arrived at Strasburgh, where I waited two days for\r\nClerval. He came. Alas, how great was the contrast between us! He\r\nwas alive to every new scene, joyful when he saw the beauties of the\r\nsetting sun, and more happy when he beheld it rise and recommence a new\r\nday. He pointed out to me the shifting colours of the landscape and\r\nthe appearances of the sky. “This is what it is to live,” he cried;\r\n“now I enjoy existence! But you, my dear Frankenstein, wherefore are\r\nyou desponding and sorrowful!” In truth, I was occupied by gloomy\r\nthoughts and neither saw the descent of the evening star nor the golden\r\nsunrise reflected in the Rhine. And you, my friend, would be far more\r\namused with the journal of Clerval, who observed the scenery with an\r\neye of feeling and delight, than in listening to my reflections. I, a\r\nmiserable wretch, haunted by a curse that shut up every avenue to\r\nenjoyment.\r\n\r\nWe had agreed to descend the Rhine in a boat from Strasburgh to\r\nRotterdam, whence we might take shipping for London. During this\r\nvoyage we passed many willowy islands and saw several beautiful towns.\r\nWe stayed a day at Mannheim, and on the fifth from our departure from\r\nStrasburgh, arrived at Mainz. The course of the Rhine below Mainz\r\nbecomes much more picturesque. The river descends rapidly and winds\r\nbetween hills, not high, but steep, and of beautiful forms. We saw\r\nmany ruined castles standing on the edges of precipices, surrounded by\r\nblack woods, high and inaccessible. This part of the Rhine, indeed,\r\npresents a singularly variegated landscape. In one spot you view\r\nrugged hills, ruined castles overlooking tremendous precipices, with\r\nthe dark Rhine rushing beneath; and on the sudden turn of a promontory,\r\nflourishing vineyards with green sloping banks and a meandering river\r\nand populous towns occupy the scene.\r\n\r\nWe travelled at the time of the vintage and heard the song of the labourers\r\nas we glided down the stream. Even I, depressed in mind, and my spirits\r\ncontinually agitated by gloomy feelings, even I was pleased. I lay at the\r\nbottom of the boat, and as I gazed on the cloudless blue sky, I seemed to\r\ndrink in a tranquillity to which I had long been a stranger. And if these\r\nwere my sensations, who can describe those of Henry? He felt as if he had\r\nbeen transported to Fairy-land and enjoyed a happiness seldom tasted by\r\nman. “I have seen,” he said, “the most beautiful scenes\r\nof my own country; I have visited the lakes of Lucerne and Uri, where the\r\nsnowy mountains descend almost perpendicularly to the water, casting black\r\nand impenetrable shades, which would cause a gloomy and mournful appearance\r\nwere it not for the most verdant islands that relieve the eye by their gay\r\nappearance; I have seen this lake agitated by a tempest, when the wind tore\r\nup whirlwinds of water and gave you an idea of what the water-spout must be\r\non the great ocean; and the waves dash with fury the base of the mountain,\r\nwhere the priest and his mistress were overwhelmed by an avalanche and\r\nwhere their dying voices are still said to be heard amid the pauses of the\r\nnightly wind; I have seen the mountains of La Valais, and the Pays de Vaud;\r\nbut this country, Victor, pleases me more than all those wonders. The\r\nmountains of Switzerland are more majestic and strange, but there is a\r\ncharm in the banks of this divine river that I never before saw equalled.\r\nLook at that castle which overhangs yon precipice; and that also on the\r\nisland, almost concealed amongst the foliage of those lovely trees; and now\r\nthat group of labourers coming from among their vines; and that village\r\nhalf hid in the recess of the mountain. Oh, surely the spirit that inhabits\r\nand guards this place has a soul more in harmony with man than those who\r\npile the glacier or retire to the inaccessible peaks of the mountains of\r\nour own country.”\r\n\r\nClerval! Beloved friend! Even now it delights me to record your words and\r\nto dwell on the praise of which you are so eminently deserving. He was a\r\nbeing formed in the “very poetry of nature.” His wild and\r\nenthusiastic imagination was chastened by the sensibility of his heart. His\r\nsoul overflowed with ardent affections, and his friendship was of that\r\ndevoted and wondrous nature that the worldly-minded teach us to look for only\r\nin the imagination. But even human sympathies were not sufficient to\r\nsatisfy his eager mind. The scenery of external nature, which others regard\r\nonly with admiration, he loved with ardour:—\r\n\r\n ——The sounding cataract\r\n Haunted him like a passion: the tall rock,\r\n The mountain, and the deep and gloomy wood,\r\n Their colours and their forms, were then to him\r\n An appetite; a feeling, and a love,\r\n That had no need of a remoter charm,\r\n By thought supplied, or any interest\r\n Unborrow’d from the eye.\r\n\r\n [Wordsworth’s “Tintern Abbey”.]\r\n\r\nAnd where does he now exist? Is this gentle and lovely being lost\r\nfor ever? Has this mind, so replete with ideas, imaginations fanciful\r\nand magnificent, which formed a world, whose existence depended on the\r\nlife of its creator;—has this mind perished? Does it now only exist\r\nin my memory? No, it is not thus; your form so divinely wrought, and\r\nbeaming with beauty, has decayed, but your spirit still visits and\r\nconsoles your unhappy friend.\r\n\r\nPardon this gush of sorrow; these ineffectual words are but a slight\r\ntribute to the unexampled worth of Henry, but they soothe my heart,\r\noverflowing with the anguish which his remembrance creates. I will\r\nproceed with my tale.\r\n\r\nBeyond Cologne we descended to the plains of Holland; and we resolved to\r\npost the remainder of our way, for the wind was contrary and the stream of\r\nthe river was too gentle to aid us.\r\n\r\nOur journey here lost the interest arising from beautiful scenery, but we\r\narrived in a few days at Rotterdam, whence we proceeded by sea to England.\r\nIt was on a clear morning, in the latter days of December, that I first saw\r\nthe white cliffs of Britain. The banks of the Thames presented a new scene;\r\nthey were flat but fertile, and almost every town was marked by the\r\nremembrance of some story. We saw Tilbury Fort and remembered the Spanish\r\nArmada, Gravesend, Woolwich, and Greenwich—places which I had heard\r\nof even in my country.\r\n\r\nAt length we saw the numerous steeples of London, St. Paul’s towering\r\nabove all, and the Tower famed in English history.\r\n\r\n\r\n\r\n\r\nChapter 19\r\n\r\n\r\nLondon was our present point of rest; we determined to remain several\r\nmonths in this wonderful and celebrated city. Clerval desired the\r\nintercourse of the men of genius and talent who flourished at this\r\ntime, but this was with me a secondary object; I was principally\r\noccupied with the means of obtaining the information necessary for the\r\ncompletion of my promise and quickly availed myself of the letters of\r\nintroduction that I had brought with me, addressed to the most\r\ndistinguished natural philosophers.\r\n\r\nIf this journey had taken place during my days of study and happiness,\r\nit would have afforded me inexpressible pleasure. But a blight had\r\ncome over my existence, and I only visited these people for the sake of\r\nthe information they might give me on the subject in which my interest\r\nwas so terribly profound. Company was irksome to me; when alone, I\r\ncould fill my mind with the sights of heaven and earth; the voice of\r\nHenry soothed me, and I could thus cheat myself into a transitory\r\npeace. But busy, uninteresting, joyous faces brought back despair to\r\nmy heart. I saw an insurmountable barrier placed between me and my\r\nfellow men; this barrier was sealed with the blood of William and\r\nJustine, and to reflect on the events connected with those names filled\r\nmy soul with anguish.\r\n\r\nBut in Clerval I saw the image of my former self; he was inquisitive\r\nand anxious to gain experience and instruction. The difference of\r\nmanners which he observed was to him an inexhaustible source of\r\ninstruction and amusement. He was also pursuing an object he had long\r\nhad in view. His design was to visit India, in the belief that he had\r\nin his knowledge of its various languages, and in the views he had\r\ntaken of its society, the means of materially assisting the progress of\r\nEuropean colonization and trade. In Britain only could he further the\r\nexecution of his plan. He was for ever busy, and the only check to his\r\nenjoyments was my sorrowful and dejected mind. I tried to conceal this\r\nas much as possible, that I might not debar him from the pleasures\r\nnatural to one who was entering on a new scene of life, undisturbed by\r\nany care or bitter recollection. I often refused to accompany him,\r\nalleging another engagement, that I might remain alone. I now also\r\nbegan to collect the materials necessary for my new creation, and this\r\nwas to me like the torture of single drops of water continually falling\r\non the head. Every thought that was devoted to it was an extreme\r\nanguish, and every word that I spoke in allusion to it caused my lips\r\nto quiver, and my heart to palpitate.\r\n\r\nAfter passing some months in London, we received a letter from a person in\r\nScotland who had formerly been our visitor at Geneva. He mentioned the\r\nbeauties of his native country and asked us if those were not sufficient\r\nallurements to induce us to prolong our journey as far north as Perth,\r\nwhere he resided. Clerval eagerly desired to accept this invitation, and I,\r\nalthough I abhorred society, wished to view again mountains and streams and\r\nall the wondrous works with which Nature adorns her chosen dwelling-places.\r\n\r\nWe had arrived in England at the beginning of October, and it was now\r\nFebruary. We accordingly determined to commence our journey towards the\r\nnorth at the expiration of another month. In this expedition we did not\r\nintend to follow the great road to Edinburgh, but to visit Windsor, Oxford,\r\nMatlock, and the Cumberland lakes, resolving to arrive at the completion of\r\nthis tour about the end of July. I packed up my chemical instruments and\r\nthe materials I had collected, resolving to finish my labours in some\r\nobscure nook in the northern highlands of Scotland.\r\n\r\nWe quitted London on the 27th of March and remained a few days at\r\nWindsor, rambling in its beautiful forest. This was a new scene to us\r\nmountaineers; the majestic oaks, the quantity of game, and the herds of\r\nstately deer were all novelties to us.\r\n\r\nFrom thence we proceeded to Oxford. As we entered this city, our minds\r\nwere filled with the remembrance of the events that had been transacted\r\nthere more than a century and a half before. It was here that Charles\r\nI. had collected his forces. This city had remained faithful to him,\r\nafter the whole nation had forsaken his cause to join the standard of\r\nParliament and liberty. The memory of that unfortunate king and his\r\ncompanions, the amiable Falkland, the insolent Goring, his queen, and\r\nson, gave a peculiar interest to every part of the city which they\r\nmight be supposed to have inhabited. The spirit of elder days found a\r\ndwelling here, and we delighted to trace its footsteps. If these\r\nfeelings had not found an imaginary gratification, the appearance of\r\nthe city had yet in itself sufficient beauty to obtain our admiration.\r\nThe colleges are ancient and picturesque; the streets are almost\r\nmagnificent; and the lovely Isis, which flows beside it through meadows\r\nof exquisite verdure, is spread forth into a placid expanse of waters,\r\nwhich reflects its majestic assemblage of towers, and spires, and\r\ndomes, embosomed among aged trees.\r\n\r\nI enjoyed this scene, and yet my enjoyment was embittered both by the\r\nmemory of the past and the anticipation of the future. I was formed\r\nfor peaceful happiness. During my youthful days discontent never\r\nvisited my mind, and if I was ever overcome by _ennui_, the sight of what\r\nis beautiful in nature or the study of what is excellent and sublime in\r\nthe productions of man could always interest my heart and communicate\r\nelasticity to my spirits. But I am a blasted tree; the bolt has\r\nentered my soul; and I felt then that I should survive to exhibit what\r\nI shall soon cease to be—a miserable spectacle of wrecked humanity,\r\npitiable to others and intolerable to myself.\r\n\r\nWe passed a considerable period at Oxford, rambling among its environs\r\nand endeavouring to identify every spot which might relate to the most\r\nanimating epoch of English history. Our little voyages of discovery\r\nwere often prolonged by the successive objects that presented\r\nthemselves. We visited the tomb of the illustrious Hampden and the\r\nfield on which that patriot fell. For a moment my soul was elevated\r\nfrom its debasing and miserable fears to contemplate the divine ideas\r\nof liberty and self-sacrifice of which these sights were the monuments\r\nand the remembrancers. For an instant I dared to shake off my chains\r\nand look around me with a free and lofty spirit, but the iron had eaten\r\ninto my flesh, and I sank again, trembling and hopeless, into my\r\nmiserable self.\r\n\r\nWe left Oxford with regret and proceeded to Matlock, which was our next\r\nplace of rest. The country in the neighbourhood of this village\r\nresembled, to a greater degree, the scenery of Switzerland; but\r\neverything is on a lower scale, and the green hills want the crown of\r\ndistant white Alps which always attend on the piny mountains of my\r\nnative country. We visited the wondrous cave and the little cabinets\r\nof natural history, where the curiosities are disposed in the same\r\nmanner as in the collections at Servox and Chamounix. The latter name\r\nmade me tremble when pronounced by Henry, and I hastened to quit\r\nMatlock, with which that terrible scene was thus associated.\r\n\r\nFrom Derby, still journeying northwards, we passed two months in\r\nCumberland and Westmorland. I could now almost fancy myself among the\r\nSwiss mountains. The little patches of snow which yet lingered on the\r\nnorthern sides of the mountains, the lakes, and the dashing of the\r\nrocky streams were all familiar and dear sights to me. Here also we\r\nmade some acquaintances, who almost contrived to cheat me into\r\nhappiness. The delight of Clerval was proportionably greater than\r\nmine; his mind expanded in the company of men of talent, and he found\r\nin his own nature greater capacities and resources than he could have\r\nimagined himself to have possessed while he associated with his\r\ninferiors. “I could pass my life here,” said he to me; “and among\r\nthese mountains I should scarcely regret Switzerland and the Rhine.”\r\n\r\nBut he found that a traveller’s life is one that includes much pain\r\namidst its enjoyments. His feelings are for ever on the stretch; and\r\nwhen he begins to sink into repose, he finds himself obliged to quit\r\nthat on which he rests in pleasure for something new, which again\r\nengages his attention, and which also he forsakes for other novelties.\r\n\r\nWe had scarcely visited the various lakes of Cumberland and Westmorland\r\nand conceived an affection for some of the inhabitants when the period\r\nof our appointment with our Scotch friend approached, and we left them\r\nto travel on. For my own part I was not sorry. I had now neglected my\r\npromise for some time, and I feared the effects of the dæmon’s\r\ndisappointment. He might remain in Switzerland and wreak his vengeance\r\non my relatives. This idea pursued me and tormented me at every moment\r\nfrom which I might otherwise have snatched repose and peace. I waited\r\nfor my letters with feverish impatience; if they were delayed I was\r\nmiserable and overcome by a thousand fears; and when they arrived and I\r\nsaw the superscription of Elizabeth or my father, I hardly dared to\r\nread and ascertain my fate. Sometimes I thought that the fiend\r\nfollowed me and might expedite my remissness by murdering my companion.\r\nWhen these thoughts possessed me, I would not quit Henry for a moment,\r\nbut followed him as his shadow, to protect him from the fancied rage of\r\nhis destroyer. I felt as if I had committed some great crime, the\r\nconsciousness of which haunted me. I was guiltless, but I had indeed\r\ndrawn down a horrible curse upon my head, as mortal as that of crime.\r\n\r\nI visited Edinburgh with languid eyes and mind; and yet that city might\r\nhave interested the most unfortunate being. Clerval did not like it so well\r\nas Oxford, for the antiquity of the latter city was more pleasing to him.\r\nBut the beauty and regularity of the new town of Edinburgh, its romantic\r\ncastle and its environs, the most delightful in the world, Arthur’s\r\nSeat, St. Bernard’s Well, and the Pentland Hills, compensated him for\r\nthe change and filled him with cheerfulness and admiration. But I was\r\nimpatient to arrive at the termination of my journey.\r\n\r\nWe left Edinburgh in a week, passing through Coupar, St. Andrew’s, and\r\nalong the banks of the Tay, to Perth, where our friend expected us.\r\nBut I was in no mood to laugh and talk with strangers or enter into\r\ntheir feelings or plans with the good humour expected from a guest; and\r\naccordingly I told Clerval that I wished to make the tour of Scotland\r\nalone. “Do you,” said I, “enjoy yourself, and let this be our\r\nrendezvous. I may be absent a month or two; but do not interfere with\r\nmy motions, I entreat you; leave me to peace and solitude for a short\r\ntime; and when I return, I hope it will be with a lighter heart, more\r\ncongenial to your own temper.”\r\n\r\nHenry wished to dissuade me, but seeing me bent on this plan, ceased to\r\nremonstrate. He entreated me to write often. “I had rather be with\r\nyou,” he said, “in your solitary rambles, than with these Scotch\r\npeople, whom I do not know; hasten, then, my dear friend, to return,\r\nthat I may again feel myself somewhat at home, which I cannot do in\r\nyour absence.”\r\n\r\nHaving parted from my friend, I determined to visit some remote spot of\r\nScotland and finish my work in solitude. I did not doubt but that the\r\nmonster followed me and would discover himself to me when I should have\r\nfinished, that he might receive his companion.\r\n\r\nWith this resolution I traversed the northern highlands and fixed on one of\r\nthe remotest of the Orkneys as the scene of my labours. It was a place\r\nfitted for such a work, being hardly more than a rock whose high sides were\r\ncontinually beaten upon by the waves. The soil was barren, scarcely\r\naffording pasture for a few miserable cows, and oatmeal for its\r\ninhabitants, which consisted of five persons, whose gaunt and scraggy limbs\r\ngave tokens of their miserable fare. Vegetables and bread, when they\r\nindulged in such luxuries, and even fresh water, was to be procured from\r\nthe mainland, which was about five miles distant.\r\n\r\nOn the whole island there were but three miserable huts, and one of\r\nthese was vacant when I arrived. This I hired. It contained but two\r\nrooms, and these exhibited all the squalidness of the most miserable\r\npenury. The thatch had fallen in, the walls were unplastered, and the\r\ndoor was off its hinges. I ordered it to be repaired, bought some\r\nfurniture, and took possession, an incident which would doubtless have\r\noccasioned some surprise had not all the senses of the cottagers been\r\nbenumbed by want and squalid poverty. As it was, I lived ungazed at\r\nand unmolested, hardly thanked for the pittance of food and clothes\r\nwhich I gave, so much does suffering blunt even the coarsest sensations\r\nof men.\r\n\r\nIn this retreat I devoted the morning to labour; but in the evening,\r\nwhen the weather permitted, I walked on the stony beach of the sea to\r\nlisten to the waves as they roared and dashed at my feet. It was a\r\nmonotonous yet ever-changing scene. I thought of Switzerland; it was\r\nfar different from this desolate and appalling landscape. Its hills\r\nare covered with vines, and its cottages are scattered thickly in the\r\nplains. Its fair lakes reflect a blue and gentle sky, and when\r\ntroubled by the winds, their tumult is but as the play of a lively\r\ninfant when compared to the roarings of the giant ocean.\r\n\r\nIn this manner I distributed my occupations when I first arrived, but\r\nas I proceeded in my labour, it became every day more horrible and\r\nirksome to me. Sometimes I could not prevail on myself to enter my\r\nlaboratory for several days, and at other times I toiled day and night\r\nin order to complete my work. It was, indeed, a filthy process in\r\nwhich I was engaged. During my first experiment, a kind of\r\nenthusiastic frenzy had blinded me to the horror of my employment; my\r\nmind was intently fixed on the consummation of my labour, and my eyes\r\nwere shut to the horror of my proceedings. But now I went to it in\r\ncold blood, and my heart often sickened at the work of my hands.\r\n\r\nThus situated, employed in the most detestable occupation, immersed in\r\na solitude where nothing could for an instant call my attention from\r\nthe actual scene in which I was engaged, my spirits became unequal; I\r\ngrew restless and nervous. Every moment I feared to meet my\r\npersecutor. Sometimes I sat with my eyes fixed on the ground, fearing\r\nto raise them lest they should encounter the object which I so much\r\ndreaded to behold. I feared to wander from the sight of my fellow\r\ncreatures lest when alone he should come to claim his companion.\r\n\r\nIn the mean time I worked on, and my labour was already considerably\r\nadvanced. I looked towards its completion with a tremulous and eager\r\nhope, which I dared not trust myself to question but which was\r\nintermixed with obscure forebodings of evil that made my heart sicken\r\nin my bosom.\r\n\r\n\r\n\r\n\r\nChapter 20\r\n\r\n\r\nI sat one evening in my laboratory; the sun had set, and the moon was just\r\nrising from the sea; I had not sufficient light for my employment, and I\r\nremained idle, in a pause of consideration of whether I should leave my\r\nlabour for the night or hasten its conclusion by an unremitting attention\r\nto it. As I sat, a train of reflection occurred to me which led me to\r\nconsider the effects of what I was now doing. Three years before, I was\r\nengaged in the same manner and had created a fiend whose unparalleled\r\nbarbarity had desolated my heart and filled it for ever with the bitterest\r\nremorse. I was now about to form another being of whose dispositions I was\r\nalike ignorant; she might become ten thousand times more malignant than her\r\nmate and delight, for its own sake, in murder and wretchedness. He had\r\nsworn to quit the neighbourhood of man and hide himself in deserts, but she\r\nhad not; and she, who in all probability was to become a thinking and\r\nreasoning animal, might refuse to comply with a compact made before her\r\ncreation. They might even hate each other; the creature who already lived\r\nloathed his own deformity, and might he not conceive a greater abhorrence\r\nfor it when it came before his eyes in the female form? She also might turn\r\nwith disgust from him to the superior beauty of man; she might quit him,\r\nand he be again alone, exasperated by the fresh provocation of being\r\ndeserted by one of his own species.\r\n\r\nEven if they were to leave Europe and inhabit the deserts of the new world,\r\nyet one of the first results of those sympathies for which the dæmon\r\nthirsted would be children, and a race of devils would be propagated upon\r\nthe earth who might make the very existence of the species of man a\r\ncondition precarious and full of terror. Had I right, for my own benefit,\r\nto inflict this curse upon everlasting generations? I had before been moved\r\nby the sophisms of the being I had created; I had been struck senseless by\r\nhis fiendish threats; but now, for the first time, the wickedness of my\r\npromise burst upon me; I shuddered to think that future ages might curse me\r\nas their pest, whose selfishness had not hesitated to buy its own peace at\r\nthe price, perhaps, of the existence of the whole human race.\r\n\r\nI trembled and my heart failed within me, when, on looking up, I saw by\r\nthe light of the moon the dæmon at the casement. A ghastly grin\r\nwrinkled his lips as he gazed on me, where I sat fulfilling the task\r\nwhich he had allotted to me. Yes, he had followed me in my travels; he\r\nhad loitered in forests, hid himself in caves, or taken refuge in wide\r\nand desert heaths; and he now came to mark my progress and claim the\r\nfulfilment of my promise.\r\n\r\nAs I looked on him, his countenance expressed the utmost extent of\r\nmalice and treachery. I thought with a sensation of madness on my\r\npromise of creating another like to him, and trembling with passion,\r\ntore to pieces the thing on which I was engaged. The wretch saw me\r\ndestroy the creature on whose future existence he depended for\r\nhappiness, and with a howl of devilish despair and revenge, withdrew.\r\n\r\nI left the room, and locking the door, made a solemn vow in my own\r\nheart never to resume my labours; and then, with trembling steps, I\r\nsought my own apartment. I was alone; none were near me to dissipate\r\nthe gloom and relieve me from the sickening oppression of the most\r\nterrible reveries.\r\n\r\nSeveral hours passed, and I remained near my window gazing on the sea;\r\nit was almost motionless, for the winds were hushed, and all nature\r\nreposed under the eye of the quiet moon. A few fishing vessels alone\r\nspecked the water, and now and then the gentle breeze wafted the sound\r\nof voices as the fishermen called to one another. I felt the silence,\r\nalthough I was hardly conscious of its extreme profundity, until my ear\r\nwas suddenly arrested by the paddling of oars near the shore, and a\r\nperson landed close to my house.\r\n\r\nIn a few minutes after, I heard the creaking of my door, as if some one\r\nendeavoured to open it softly. I trembled from head to foot; I felt a\r\npresentiment of who it was and wished to rouse one of the peasants who\r\ndwelt in a cottage not far from mine; but I was overcome by the sensation\r\nof helplessness, so often felt in frightful dreams, when you in vain\r\nendeavour to fly from an impending danger, and was rooted to the spot.\r\n\r\nPresently I heard the sound of footsteps along the passage; the door\r\nopened, and the wretch whom I dreaded appeared. Shutting the door, he\r\napproached me and said in a smothered voice,\r\n\r\n“You have destroyed the work which you began; what is it that you\r\nintend? Do you dare to break your promise? I have endured toil and misery;\r\nI left Switzerland with you; I crept along the shores of the Rhine, among\r\nits willow islands and over the summits of its hills. I have dwelt many\r\nmonths in the heaths of England and among the deserts of Scotland. I have\r\nendured incalculable fatigue, and cold, and hunger; do you dare destroy my\r\nhopes?”\r\n\r\n“Begone! I do break my promise; never will I create another like\r\nyourself, equal in deformity and wickedness.”\r\n\r\n“Slave, I before reasoned with you, but you have proved yourself\r\nunworthy of my condescension. Remember that I have power; you believe\r\nyourself miserable, but I can make you so wretched that the light of\r\nday will be hateful to you. You are my creator, but I am your master;\r\nobey!”\r\n\r\n“The hour of my irresolution is past, and the period of your power is\r\narrived. Your threats cannot move me to do an act of wickedness; but\r\nthey confirm me in a determination of not creating you a companion in\r\nvice. Shall I, in cool blood, set loose upon the earth a dæmon whose\r\ndelight is in death and wretchedness? Begone! I am firm, and your\r\nwords will only exasperate my rage.”\r\n\r\nThe monster saw my determination in my face and gnashed his teeth in the\r\nimpotence of anger. “Shall each man,” cried he, “find a\r\nwife for his bosom, and each beast have his mate, and I be alone? I had\r\nfeelings of affection, and they were requited by detestation and scorn.\r\nMan! You may hate, but beware! Your hours will pass in dread and misery,\r\nand soon the bolt will fall which must ravish from you your happiness for\r\never. Are you to be happy while I grovel in the intensity of my\r\nwretchedness? You can blast my other passions, but revenge\r\nremains—revenge, henceforth dearer than light or food! I may die, but\r\nfirst you, my tyrant and tormentor, shall curse the sun that gazes on your\r\nmisery. Beware, for I am fearless and therefore powerful. I will watch with\r\nthe wiliness of a snake, that I may sting with its venom. Man, you shall\r\nrepent of the injuries you inflict.”\r\n\r\n“Devil, cease; and do not poison the air with these sounds of malice.\r\nI have declared my resolution to you, and I am no coward to bend\r\nbeneath words. Leave me; I am inexorable.”\r\n\r\n“It is well. I go; but remember, I shall be with you on your\r\nwedding-night.”\r\n\r\nI started forward and exclaimed, “Villain! Before you sign my\r\ndeath-warrant, be sure that you are yourself safe.”\r\n\r\nI would have seized him, but he eluded me and quitted the house with\r\nprecipitation. In a few moments I saw him in his boat, which shot\r\nacross the waters with an arrowy swiftness and was soon lost amidst the\r\nwaves.\r\n\r\nAll was again silent, but his words rang in my ears. I burned with rage to\r\npursue the murderer of my peace and precipitate him into the ocean. I\r\nwalked up and down my room hastily and perturbed, while my imagination\r\nconjured up a thousand images to torment and sting me. Why had I not\r\nfollowed him and closed with him in mortal strife? But I had suffered him\r\nto depart, and he had directed his course towards the mainland. I shuddered\r\nto think who might be the next victim sacrificed to his insatiate revenge.\r\nAnd then I thought again of his words—“_I will be with you on\r\nyour wedding-night._” That, then, was the period fixed for the\r\nfulfilment of my destiny. In that hour I should die and at once satisfy and\r\nextinguish his malice. The prospect did not move me to fear; yet when I\r\nthought of my beloved Elizabeth, of her tears and endless sorrow, when she\r\nshould find her lover so barbarously snatched from her, tears, the first I\r\nhad shed for many months, streamed from my eyes, and I resolved not to fall\r\nbefore my enemy without a bitter struggle.\r\n\r\nThe night passed away, and the sun rose from the ocean; my feelings became\r\ncalmer, if it may be called calmness when the violence of rage sinks into\r\nthe depths of despair. I left the house, the horrid scene of the last\r\nnight’s contention, and walked on the beach of the sea, which I\r\nalmost regarded as an insuperable barrier between me and my fellow\r\ncreatures; nay, a wish that such should prove the fact stole across me. I\r\ndesired that I might pass my life on that barren rock, wearily, it is true,\r\nbut uninterrupted by any sudden shock of misery. If I returned, it was to\r\nbe sacrificed or to see those whom I most loved die under the grasp of a\r\ndæmon whom I had myself created.\r\n\r\nI walked about the isle like a restless spectre, separated from all it\r\nloved and miserable in the separation. When it became noon, and the\r\nsun rose higher, I lay down on the grass and was overpowered by a deep\r\nsleep. I had been awake the whole of the preceding night, my nerves\r\nwere agitated, and my eyes inflamed by watching and misery. The sleep\r\ninto which I now sank refreshed me; and when I awoke, I again felt as\r\nif I belonged to a race of human beings like myself, and I began to\r\nreflect upon what had passed with greater composure; yet still the\r\nwords of the fiend rang in my ears like a death-knell; they appeared\r\nlike a dream, yet distinct and oppressive as a reality.\r\n\r\nThe sun had far descended, and I still sat on the shore, satisfying my\r\nappetite, which had become ravenous, with an oaten cake, when I saw a\r\nfishing-boat land close to me, and one of the men brought me a packet;\r\nit contained letters from Geneva, and one from Clerval entreating me to\r\njoin him. He said that he was wearing away his time fruitlessly where\r\nhe was, that letters from the friends he had formed in London desired\r\nhis return to complete the negotiation they had entered into for his\r\nIndian enterprise. He could not any longer delay his departure; but as\r\nhis journey to London might be followed, even sooner than he now\r\nconjectured, by his longer voyage, he entreated me to bestow as much of\r\nmy society on him as I could spare. He besought me, therefore, to\r\nleave my solitary isle and to meet him at Perth, that we might proceed\r\nsouthwards together. This letter in a degree recalled me to life, and\r\nI determined to quit my island at the expiration of two days.\r\n\r\nYet, before I departed, there was a task to perform, on which I shuddered\r\nto reflect; I must pack up my chemical instruments, and for that purpose I\r\nmust enter the room which had been the scene of my odious work, and I must\r\nhandle those utensils the sight of which was sickening to me. The next\r\nmorning, at daybreak, I summoned sufficient courage and unlocked the door\r\nof my laboratory. The remains of the half-finished creature, whom I had\r\ndestroyed, lay scattered on the floor, and I almost felt as if I had\r\nmangled the living flesh of a human being. I paused to collect myself and\r\nthen entered the chamber. With trembling hand I conveyed the instruments\r\nout of the room, but I reflected that I ought not to leave the relics of my\r\nwork to excite the horror and suspicion of the peasants; and I accordingly\r\nput them into a basket, with a great quantity of stones, and laying them\r\nup, determined to throw them into the sea that very night; and in the\r\nmeantime I sat upon the beach, employed in cleaning and arranging my\r\nchemical apparatus.\r\n\r\nNothing could be more complete than the alteration that had taken place\r\nin my feelings since the night of the appearance of the dæmon. I had\r\nbefore regarded my promise with a gloomy despair as a thing that, with\r\nwhatever consequences, must be fulfilled; but I now felt as if a film\r\nhad been taken from before my eyes and that I for the first time saw\r\nclearly. The idea of renewing my labours did not for one instant occur\r\nto me; the threat I had heard weighed on my thoughts, but I did not\r\nreflect that a voluntary act of mine could avert it. I had resolved in\r\nmy own mind that to create another like the fiend I had first made\r\nwould be an act of the basest and most atrocious selfishness, and I\r\nbanished from my mind every thought that could lead to a different\r\nconclusion.\r\n\r\nBetween two and three in the morning the moon rose; and I then, putting my\r\nbasket aboard a little skiff, sailed out about four miles from the shore.\r\nThe scene was perfectly solitary; a few boats were returning towards land,\r\nbut I sailed away from them. I felt as if I was about the commission of a\r\ndreadful crime and avoided with shuddering anxiety any encounter with my\r\nfellow creatures. At one time the moon, which had before been clear, was\r\nsuddenly overspread by a thick cloud, and I took advantage of the moment of\r\ndarkness and cast my basket into the sea; I listened to the gurgling sound\r\nas it sank and then sailed away from the spot. The sky became clouded, but\r\nthe air was pure, although chilled by the northeast breeze that was then\r\nrising. But it refreshed me and filled me with such agreeable sensations\r\nthat I resolved to prolong my stay on the water, and fixing the rudder in a\r\ndirect position, stretched myself at the bottom of the boat. Clouds hid the\r\nmoon, everything was obscure, and I heard only the sound of the boat as its\r\nkeel cut through the waves; the murmur lulled me, and in a short time I\r\nslept soundly.\r\n\r\nI do not know how long I remained in this situation, but when I awoke I\r\nfound that the sun had already mounted considerably. The wind was high, and\r\nthe waves continually threatened the safety of my little skiff. I found\r\nthat the wind was northeast and must have driven me far from the coast from\r\nwhich I had embarked. I endeavoured to change my course but quickly found\r\nthat if I again made the attempt the boat would be instantly filled with\r\nwater. Thus situated, my only resource was to drive before the wind. I\r\nconfess that I felt a few sensations of terror. I had no compass with me\r\nand was so slenderly acquainted with the geography of this part of the\r\nworld that the sun was of little benefit to me. I might be driven into the\r\nwide Atlantic and feel all the tortures of starvation or be swallowed up in\r\nthe immeasurable waters that roared and buffeted around me. I had already\r\nbeen out many hours and felt the torment of a burning thirst, a prelude to\r\nmy other sufferings. I looked on the heavens, which were covered by clouds\r\nthat flew before the wind, only to be replaced by others; I looked upon the\r\nsea; it was to be my grave. “Fiend,” I exclaimed, “your\r\ntask is already fulfilled!” I thought of Elizabeth, of my father, and\r\nof Clerval—all left behind, on whom the monster might satisfy his\r\nsanguinary and merciless passions. This idea plunged me into a reverie so\r\ndespairing and frightful that even now, when the scene is on the point of\r\nclosing before me for ever, I shudder to reflect on it.\r\n\r\nSome hours passed thus; but by degrees, as the sun declined towards the\r\nhorizon, the wind died away into a gentle breeze and the sea became\r\nfree from breakers. But these gave place to a heavy swell; I felt sick\r\nand hardly able to hold the rudder, when suddenly I saw a line of high\r\nland towards the south.\r\n\r\nAlmost spent, as I was, by fatigue and the dreadful suspense I endured\r\nfor several hours, this sudden certainty of life rushed like a flood of\r\nwarm joy to my heart, and tears gushed from my eyes.\r\n\r\nHow mutable are our feelings, and how strange is that clinging love we have\r\nof life even in the excess of misery! I constructed another sail with a\r\npart of my dress and eagerly steered my course towards the land. It had a\r\nwild and rocky appearance, but as I approached nearer I easily perceived\r\nthe traces of cultivation. I saw vessels near the shore and found myself\r\nsuddenly transported back to the neighbourhood of civilised man. I\r\ncarefully traced the windings of the land and hailed a steeple which I at\r\nlength saw issuing from behind a small promontory. As I was in a state of\r\nextreme debility, I resolved to sail directly towards the town, as a place\r\nwhere I could most easily procure nourishment. Fortunately I had money with\r\nme. As I turned the promontory I perceived a small neat town and a good\r\nharbour, which I entered, my heart bounding with joy at my unexpected\r\nescape.\r\n\r\nAs I was occupied in fixing the boat and arranging the sails, several\r\npeople crowded towards the spot. They seemed much surprised at my\r\nappearance, but instead of offering me any assistance, whispered\r\ntogether with gestures that at any other time might have produced in me\r\na slight sensation of alarm. As it was, I merely remarked that they\r\nspoke English, and I therefore addressed them in that language. “My\r\ngood friends,” said I, “will you be so kind as to tell me the name of\r\nthis town and inform me where I am?”\r\n\r\n“You will know that soon enough,” replied a man with a hoarse voice.\r\n“Maybe you are come to a place that will not prove much to your taste,\r\nbut you will not be consulted as to your quarters, I promise you.”\r\n\r\nI was exceedingly surprised on receiving so rude an answer from a\r\nstranger, and I was also disconcerted on perceiving the frowning and\r\nangry countenances of his companions. “Why do you answer me so\r\nroughly?” I replied. “Surely it is not the custom of Englishmen to\r\nreceive strangers so inhospitably.”\r\n\r\n“I do not know,” said the man, “what the custom of the\r\nEnglish may be, but it is the custom of the Irish to hate villains.”\r\n\r\nWhile this strange dialogue continued, I perceived the crowd rapidly\r\nincrease. Their faces expressed a mixture of curiosity and anger, which\r\nannoyed and in some degree alarmed me. I inquired the way to the inn, but\r\nno one replied. I then moved forward, and a murmuring sound arose from the\r\ncrowd as they followed and surrounded me, when an ill-looking man\r\napproaching tapped me on the shoulder and said, “Come, sir, you must\r\nfollow me to Mr. Kirwin’s to give an account of yourself.”\r\n\r\n“Who is Mr. Kirwin? Why am I to give an account of myself? Is not\r\nthis a free country?”\r\n\r\n“Ay, sir, free enough for honest folks. Mr. Kirwin is a magistrate,\r\nand you are to give an account of the death of a gentleman who was\r\nfound murdered here last night.”\r\n\r\nThis answer startled me, but I presently recovered myself. I was innocent;\r\nthat could easily be proved; accordingly I followed my conductor in silence\r\nand was led to one of the best houses in the town. I was ready to sink from\r\nfatigue and hunger, but being surrounded by a crowd, I thought it politic\r\nto rouse all my strength, that no physical debility might be construed into\r\napprehension or conscious guilt. Little did I then expect the calamity that\r\nwas in a few moments to overwhelm me and extinguish in horror and despair\r\nall fear of ignominy or death.\r\n\r\nI must pause here, for it requires all my fortitude to recall the memory of\r\nthe frightful events which I am about to relate, in proper detail, to my\r\nrecollection.\r\n\r\n\r\n\r\n\r\nChapter 21\r\n\r\n\r\nI was soon introduced into the presence of the magistrate, an old\r\nbenevolent man with calm and mild manners. He looked upon me, however,\r\nwith some degree of severity, and then, turning towards my conductors,\r\nhe asked who appeared as witnesses on this occasion.\r\n\r\nAbout half a dozen men came forward; and, one being selected by the\r\nmagistrate, he deposed that he had been out fishing the night before with\r\nhis son and brother-in-law, Daniel Nugent, when, about ten o’clock,\r\nthey observed a strong northerly blast rising, and they accordingly put in\r\nfor port. It was a very dark night, as the moon had not yet risen; they did\r\nnot land at the harbour, but, as they had been accustomed, at a creek about\r\ntwo miles below. He walked on first, carrying a part of the fishing tackle,\r\nand his companions followed him at some distance. As he was proceeding\r\nalong the sands, he struck his foot against something and fell at his\r\nlength on the ground. His companions came up to assist him, and by the\r\nlight of their lantern they found that he had fallen on the body of a man,\r\nwho was to all appearance dead. Their first supposition was that it was the\r\ncorpse of some person who had been drowned and was thrown on shore by the\r\nwaves, but on examination they found that the clothes were not wet and even\r\nthat the body was not then cold. They instantly carried it to the cottage\r\nof an old woman near the spot and endeavoured, but in vain, to restore it\r\nto life. It appeared to be a handsome young man, about five and twenty\r\nyears of age. He had apparently been strangled, for there was no sign of\r\nany violence except the black mark of fingers on his neck.\r\n\r\nThe first part of this deposition did not in the least interest me, but\r\nwhen the mark of the fingers was mentioned I remembered the murder of\r\nmy brother and felt myself extremely agitated; my limbs trembled, and a\r\nmist came over my eyes, which obliged me to lean on a chair for\r\nsupport. The magistrate observed me with a keen eye and of course drew\r\nan unfavourable augury from my manner.\r\n\r\nThe son confirmed his father’s account, but when Daniel Nugent was\r\ncalled he swore positively that just before the fall of his companion, he\r\nsaw a boat, with a single man in it, at a short distance from the shore;\r\nand as far as he could judge by the light of a few stars, it was the same\r\nboat in which I had just landed.\r\n\r\nA woman deposed that she lived near the beach and was standing at the door\r\nof her cottage, waiting for the return of the fishermen, about an hour\r\nbefore she heard of the discovery of the body, when she saw a boat with\r\nonly one man in it push off from that part of the shore where the corpse\r\nwas afterwards found.\r\n\r\nAnother woman confirmed the account of the fishermen having brought the\r\nbody into her house; it was not cold. They put it into a bed and\r\nrubbed it, and Daniel went to the town for an apothecary, but life was\r\nquite gone.\r\n\r\nSeveral other men were examined concerning my landing, and they agreed\r\nthat, with the strong north wind that had arisen during the night, it\r\nwas very probable that I had beaten about for many hours and had been\r\nobliged to return nearly to the same spot from which I had departed.\r\nBesides, they observed that it appeared that I had brought the body\r\nfrom another place, and it was likely that as I did not appear to know\r\nthe shore, I might have put into the harbour ignorant of the distance\r\nof the town of —— from the place where I had deposited the corpse.\r\n\r\nMr. Kirwin, on hearing this evidence, desired that I should be taken into\r\nthe room where the body lay for interment, that it might be observed what\r\neffect the sight of it would produce upon me. This idea was probably\r\nsuggested by the extreme agitation I had exhibited when the mode of the\r\nmurder had been described. I was accordingly conducted, by the magistrate\r\nand several other persons, to the inn. I could not help being struck by the\r\nstrange coincidences that had taken place during this eventful night; but,\r\nknowing that I had been conversing with several persons in the island I had\r\ninhabited about the time that the body had been found, I was perfectly\r\ntranquil as to the consequences of the affair.\r\n\r\nI entered the room where the corpse lay and was led up to the coffin. How\r\ncan I describe my sensations on beholding it? I feel yet parched with\r\nhorror, nor can I reflect on that terrible moment without shuddering and\r\nagony. The examination, the presence of the magistrate and witnesses,\r\npassed like a dream from my memory when I saw the lifeless form of Henry\r\nClerval stretched before me. I gasped for breath, and throwing myself on\r\nthe body, I exclaimed, “Have my murderous machinations deprived you\r\nalso, my dearest Henry, of life? Two I have already destroyed; other\r\nvictims await their destiny; but you, Clerval, my friend, my\r\nbenefactor—”\r\n\r\nThe human frame could no longer support the agonies that I endured, and\r\nI was carried out of the room in strong convulsions.\r\n\r\nA fever succeeded to this. I lay for two months on the point of death; my\r\nravings, as I afterwards heard, were frightful; I called myself the\r\nmurderer of William, of Justine, and of Clerval. Sometimes I entreated my\r\nattendants to assist me in the destruction of the fiend by whom I was\r\ntormented; and at others I felt the fingers of the monster already grasping\r\nmy neck, and screamed aloud with agony and terror. Fortunately, as I spoke\r\nmy native language, Mr. Kirwin alone understood me; but my gestures and\r\nbitter cries were sufficient to affright the other witnesses.\r\n\r\nWhy did I not die? More miserable than man ever was before, why did I not\r\nsink into forgetfulness and rest? Death snatches away many blooming\r\nchildren, the only hopes of their doting parents; how many brides and\r\nyouthful lovers have been one day in the bloom of health and hope, and the\r\nnext a prey for worms and the decay of the tomb! Of what materials was I\r\nmade that I could thus resist so many shocks, which, like the turning of\r\nthe wheel, continually renewed the torture?\r\n\r\nBut I was doomed to live and in two months found myself as awaking from\r\na dream, in a prison, stretched on a wretched bed, surrounded by\r\ngaolers, turnkeys, bolts, and all the miserable apparatus of a dungeon.\r\nIt was morning, I remember, when I thus awoke to understanding; I had\r\nforgotten the particulars of what had happened and only felt as if some\r\ngreat misfortune had suddenly overwhelmed me; but when I looked around\r\nand saw the barred windows and the squalidness of the room in which I\r\nwas, all flashed across my memory and I groaned bitterly.\r\n\r\nThis sound disturbed an old woman who was sleeping in a chair beside\r\nme. She was a hired nurse, the wife of one of the turnkeys, and her\r\ncountenance expressed all those bad qualities which often characterise\r\nthat class. The lines of her face were hard and rude, like that of\r\npersons accustomed to see without sympathising in sights of misery. Her\r\ntone expressed her entire indifference; she addressed me in English,\r\nand the voice struck me as one that I had heard during my sufferings.\r\n\r\n“Are you better now, sir?” said she.\r\n\r\nI replied in the same language, with a feeble voice, “I believe I am;\r\nbut if it be all true, if indeed I did not dream, I am sorry that I am\r\nstill alive to feel this misery and horror.”\r\n\r\n“For that matter,” replied the old woman, “if you mean about the\r\ngentleman you murdered, I believe that it were better for you if you\r\nwere dead, for I fancy it will go hard with you! However, that’s none\r\nof my business; I am sent to nurse you and get you well; I do my duty\r\nwith a safe conscience; it were well if everybody did the same.”\r\n\r\nI turned with loathing from the woman who could utter so unfeeling a\r\nspeech to a person just saved, on the very edge of death; but I felt\r\nlanguid and unable to reflect on all that had passed. The whole series\r\nof my life appeared to me as a dream; I sometimes doubted if indeed it\r\nwere all true, for it never presented itself to my mind with the force\r\nof reality.\r\n\r\nAs the images that floated before me became more distinct, I grew\r\nfeverish; a darkness pressed around me; no one was near me who soothed\r\nme with the gentle voice of love; no dear hand supported me. The\r\nphysician came and prescribed medicines, and the old woman prepared\r\nthem for me; but utter carelessness was visible in the first, and the\r\nexpression of brutality was strongly marked in the visage of the\r\nsecond. Who could be interested in the fate of a murderer but the\r\nhangman who would gain his fee?\r\n\r\nThese were my first reflections, but I soon learned that Mr. Kirwin had\r\nshown me extreme kindness. He had caused the best room in the prison\r\nto be prepared for me (wretched indeed was the best); and it was he who\r\nhad provided a physician and a nurse. It is true, he seldom came to\r\nsee me, for although he ardently desired to relieve the sufferings of\r\nevery human creature, he did not wish to be present at the agonies and\r\nmiserable ravings of a murderer. He came, therefore, sometimes to see\r\nthat I was not neglected, but his visits were short and with long\r\nintervals.\r\n\r\nOne day, while I was gradually recovering, I was seated in a chair, my eyes\r\nhalf open and my cheeks livid like those in death. I was overcome by gloom\r\nand misery and often reflected I had better seek death than desire to\r\nremain in a world which to me was replete with wretchedness. At one time I\r\nconsidered whether I should not declare myself guilty and suffer the\r\npenalty of the law, less innocent than poor Justine had been. Such were my\r\nthoughts when the door of my apartment was opened and Mr. Kirwin entered.\r\nHis countenance expressed sympathy and compassion; he drew a chair close to\r\nmine and addressed me in French,\r\n\r\n“I fear that this place is very shocking to you; can I do anything to\r\nmake you more comfortable?”\r\n\r\n“I thank you, but all that you mention is nothing to me; on the whole\r\nearth there is no comfort which I am capable of receiving.”\r\n\r\n“I know that the sympathy of a stranger can be but of little relief to\r\none borne down as you are by so strange a misfortune. But you will, I\r\nhope, soon quit this melancholy abode, for doubtless evidence can\r\neasily be brought to free you from the criminal charge.”\r\n\r\n“That is my least concern; I am, by a course of strange events, become\r\nthe most miserable of mortals. Persecuted and tortured as I am and\r\nhave been, can death be any evil to me?”\r\n\r\n“Nothing indeed could be more unfortunate and agonising than the\r\nstrange chances that have lately occurred. You were thrown, by some\r\nsurprising accident, on this shore, renowned for its hospitality,\r\nseized immediately, and charged with murder. The first sight that was\r\npresented to your eyes was the body of your friend, murdered in so\r\nunaccountable a manner and placed, as it were, by some fiend across\r\nyour path.”\r\n\r\nAs Mr. Kirwin said this, notwithstanding the agitation I endured on\r\nthis retrospect of my sufferings, I also felt considerable surprise at\r\nthe knowledge he seemed to possess concerning me. I suppose some\r\nastonishment was exhibited in my countenance, for Mr. Kirwin hastened\r\nto say,\r\n\r\n“Immediately upon your being taken ill, all the papers that were on\r\nyour person were brought me, and I examined them that I might discover some\r\ntrace by which I could send to your relations an account of your misfortune\r\nand illness. I found several letters, and, among others, one which I\r\ndiscovered from its commencement to be from your father. I instantly wrote\r\nto Geneva; nearly two months have elapsed since the departure of my letter.\r\nBut you are ill; even now you tremble; you are unfit for agitation of any\r\nkind.”\r\n\r\n“This suspense is a thousand times worse than the most horrible event;\r\ntell me what new scene of death has been acted, and whose murder I am\r\nnow to lament?”\r\n\r\n“Your family is perfectly well,” said Mr. Kirwin with\r\ngentleness; “and someone, a friend, is come to visit you.”\r\n\r\nI know not by what chain of thought the idea presented itself, but it\r\ninstantly darted into my mind that the murderer had come to mock at my\r\nmisery and taunt me with the death of Clerval, as a new incitement for\r\nme to comply with his hellish desires. I put my hand before my eyes,\r\nand cried out in agony,\r\n\r\n“Oh! Take him away! I cannot see him; for God’s sake, do not\r\nlet him enter!”\r\n\r\nMr. Kirwin regarded me with a troubled countenance. He could not help\r\nregarding my exclamation as a presumption of my guilt and said in\r\nrather a severe tone,\r\n\r\n“I should have thought, young man, that the presence of your father\r\nwould have been welcome instead of inspiring such violent repugnance.”\r\n\r\n“My father!” cried I, while every feature and every muscle was relaxed\r\nfrom anguish to pleasure. “Is my father indeed come? How kind, how\r\nvery kind! But where is he, why does he not hasten to me?”\r\n\r\nMy change of manner surprised and pleased the magistrate; perhaps he\r\nthought that my former exclamation was a momentary return of delirium,\r\nand now he instantly resumed his former benevolence. He rose and\r\nquitted the room with my nurse, and in a moment my father entered it.\r\n\r\nNothing, at this moment, could have given me greater pleasure than the\r\narrival of my father. I stretched out my hand to him and cried,\r\n\r\n“Are you then safe—and Elizabeth—and Ernest?”\r\n\r\nMy father calmed me with assurances of their welfare and endeavoured, by\r\ndwelling on these subjects so interesting to my heart, to raise my\r\ndesponding spirits; but he soon felt that a prison cannot be the abode of\r\ncheerfulness. “What a place is this that you inhabit, my son!”\r\nsaid he, looking mournfully at the barred windows and wretched appearance\r\nof the room. “You travelled to seek happiness, but a fatality seems\r\nto pursue you. And poor Clerval—”\r\n\r\nThe name of my unfortunate and murdered friend was an agitation too\r\ngreat to be endured in my weak state; I shed tears.\r\n\r\n“Alas! Yes, my father,” replied I; “some destiny of the\r\nmost horrible kind hangs over me, and I must live to fulfil it, or surely I\r\nshould have died on the coffin of Henry.”\r\n\r\nWe were not allowed to converse for any length of time, for the\r\nprecarious state of my health rendered every precaution necessary that\r\ncould ensure tranquillity. Mr. Kirwin came in and insisted that my\r\nstrength should not be exhausted by too much exertion. But the\r\nappearance of my father was to me like that of my good angel, and I\r\ngradually recovered my health.\r\n\r\nAs my sickness quitted me, I was absorbed by a gloomy and black\r\nmelancholy that nothing could dissipate. The image of Clerval was\r\nfor ever before me, ghastly and murdered. More than once the agitation\r\ninto which these reflections threw me made my friends dread a dangerous\r\nrelapse. Alas! Why did they preserve so miserable and detested a\r\nlife? It was surely that I might fulfil my destiny, which is now\r\ndrawing to a close. Soon, oh, very soon, will death extinguish these\r\nthrobbings and relieve me from the mighty weight of anguish that bears\r\nme to the dust; and, in executing the award of justice, I shall also\r\nsink to rest. Then the appearance of death was distant, although the\r\nwish was ever present to my thoughts; and I often sat for hours\r\nmotionless and speechless, wishing for some mighty revolution that\r\nmight bury me and my destroyer in its ruins.\r\n\r\nThe season of the assizes approached. I had already been three months\r\nin prison, and although I was still weak and in continual danger of a\r\nrelapse, I was obliged to travel nearly a hundred miles to the country\r\ntown where the court was held. Mr. Kirwin charged himself with every\r\ncare of collecting witnesses and arranging my defence. I was spared\r\nthe disgrace of appearing publicly as a criminal, as the case was not\r\nbrought before the court that decides on life and death. The grand\r\njury rejected the bill, on its being proved that I was on the Orkney\r\nIslands at the hour the body of my friend was found; and a fortnight\r\nafter my removal I was liberated from prison.\r\n\r\nMy father was enraptured on finding me freed from the vexations of a\r\ncriminal charge, that I was again allowed to breathe the fresh\r\natmosphere and permitted to return to my native country. I did not\r\nparticipate in these feelings, for to me the walls of a dungeon or a\r\npalace were alike hateful. The cup of life was poisoned for ever, and\r\nalthough the sun shone upon me, as upon the happy and gay of heart, I\r\nsaw around me nothing but a dense and frightful darkness, penetrated by\r\nno light but the glimmer of two eyes that glared upon me. Sometimes\r\nthey were the expressive eyes of Henry, languishing in death, the dark\r\norbs nearly covered by the lids and the long black lashes that fringed\r\nthem; sometimes it was the watery, clouded eyes of the monster, as I\r\nfirst saw them in my chamber at Ingolstadt.\r\n\r\nMy father tried to awaken in me the feelings of affection. He talked\r\nof Geneva, which I should soon visit, of Elizabeth and Ernest; but\r\nthese words only drew deep groans from me. Sometimes, indeed, I felt a\r\nwish for happiness and thought with melancholy delight of my beloved\r\ncousin or longed, with a devouring _maladie du pays_, to see once more\r\nthe blue lake and rapid Rhone, that had been so dear to me in early\r\nchildhood; but my general state of feeling was a torpor in which a\r\nprison was as welcome a residence as the divinest scene in nature; and\r\nthese fits were seldom interrupted but by paroxysms of anguish and\r\ndespair. At these moments I often endeavoured to put an end to the\r\nexistence I loathed, and it required unceasing attendance and vigilance\r\nto restrain me from committing some dreadful act of violence.\r\n\r\nYet one duty remained to me, the recollection of which finally\r\ntriumphed over my selfish despair. It was necessary that I should\r\nreturn without delay to Geneva, there to watch over the lives of those\r\nI so fondly loved and to lie in wait for the murderer, that if any\r\nchance led me to the place of his concealment, or if he dared again to\r\nblast me by his presence, I might, with unfailing aim, put an end to\r\nthe existence of the monstrous image which I had endued with the\r\nmockery of a soul still more monstrous. My father still desired to\r\ndelay our departure, fearful that I could not sustain the fatigues of a\r\njourney, for I was a shattered wreck—the shadow of a human being. My\r\nstrength was gone. I was a mere skeleton, and fever night and day\r\npreyed upon my wasted frame.\r\n\r\nStill, as I urged our leaving Ireland with such inquietude and impatience,\r\nmy father thought it best to yield. We took our passage on board a vessel\r\nbound for Havre-de-Grace and sailed with a fair wind from the Irish shores.\r\nIt was midnight. I lay on the deck looking at the stars and listening to\r\nthe dashing of the waves. I hailed the darkness that shut Ireland from my\r\nsight, and my pulse beat with a feverish joy when I reflected that I should\r\nsoon see Geneva. The past appeared to me in the light of a frightful dream;\r\nyet the vessel in which I was, the wind that blew me from the detested\r\nshore of Ireland, and the sea which surrounded me, told me too forcibly\r\nthat I was deceived by no vision and that Clerval, my friend and dearest\r\ncompanion, had fallen a victim to me and the monster of my creation. I\r\nrepassed, in my memory, my whole life; my quiet happiness while residing\r\nwith my family in Geneva, the death of my mother, and my departure for\r\nIngolstadt. I remembered, shuddering, the mad enthusiasm that hurried me on\r\nto the creation of my hideous enemy, and I called to mind the night in\r\nwhich he first lived. I was unable to pursue the train of thought; a\r\nthousand feelings pressed upon me, and I wept bitterly.\r\n\r\nEver since my recovery from the fever, I had been in the custom of taking\r\nevery night a small quantity of laudanum, for it was by means of this drug\r\nonly that I was enabled to gain the rest necessary for the preservation of\r\nlife. Oppressed by the recollection of my various misfortunes, I now\r\nswallowed double my usual quantity and soon slept profoundly. But sleep did\r\nnot afford me respite from thought and misery; my dreams presented a\r\nthousand objects that scared me. Towards morning I was possessed by a kind\r\nof nightmare; I felt the fiend’s grasp in my neck and could not free\r\nmyself from it; groans and cries rang in my ears. My father, who was\r\nwatching over me, perceiving my restlessness, awoke me; the dashing waves\r\nwere around, the cloudy sky above, the fiend was not here: a sense of\r\nsecurity, a feeling that a truce was established between the present hour\r\nand the irresistible, disastrous future imparted to me a kind of calm\r\nforgetfulness, of which the human mind is by its structure peculiarly\r\nsusceptible.\r\n\r\n\r\n\r\n\r\nChapter 22\r\n\r\n\r\nThe voyage came to an end. We landed, and proceeded to Paris. I soon\r\nfound that I had overtaxed my strength and that I must repose before I\r\ncould continue my journey. My father’s care and attentions were\r\nindefatigable, but he did not know the origin of my sufferings and\r\nsought erroneous methods to remedy the incurable ill. He wished me to\r\nseek amusement in society. I abhorred the face of man. Oh, not\r\nabhorred! They were my brethren, my fellow beings, and I felt\r\nattracted even to the most repulsive among them, as to creatures of an\r\nangelic nature and celestial mechanism. But I felt that I had no right\r\nto share their intercourse. I had unchained an enemy among them whose\r\njoy it was to shed their blood and to revel in their groans. How they\r\nwould, each and all, abhor me and hunt me from the world, did they know\r\nmy unhallowed acts and the crimes which had their source in me!\r\n\r\nMy father yielded at length to my desire to avoid society and strove by\r\nvarious arguments to banish my despair. Sometimes he thought that I\r\nfelt deeply the degradation of being obliged to answer a charge of\r\nmurder, and he endeavoured to prove to me the futility of pride.\r\n\r\n“Alas! My father,” said I, “how little do you know me. \r\nHuman beings, their feelings and passions, would indeed be degraded if such\r\na wretch as I felt pride. Justine, poor unhappy Justine, was as innocent\r\nas I, and she suffered the same charge; she died for it; and I am the cause\r\nof this—I murdered her. William, Justine, and Henry—they all\r\ndied by my hands.”\r\n\r\nMy father had often, during my imprisonment, heard me make the same\r\nassertion; when I thus accused myself, he sometimes seemed to desire an\r\nexplanation, and at others he appeared to consider it as the offspring of\r\ndelirium, and that, during my illness, some idea of this kind had presented\r\nitself to my imagination, the remembrance of which I preserved in my\r\nconvalescence. I avoided explanation and maintained a continual silence\r\nconcerning the wretch I had created. I had a persuasion that I should be\r\nsupposed mad, and this in itself would for ever have chained my tongue. But,\r\nbesides, I could not bring myself to disclose a secret which would fill my\r\nhearer with consternation and make fear and unnatural horror the inmates of\r\nhis breast. I checked, therefore, my impatient thirst for sympathy and was\r\nsilent when I would have given the world to have confided the fatal secret.\r\nYet, still, words like those I have recorded would burst uncontrollably\r\nfrom me. I could offer no explanation of them, but their truth in part\r\nrelieved the burden of my mysterious woe.\r\n\r\nUpon this occasion my father said, with an expression of unbounded wonder,\r\n“My dearest Victor, what infatuation is this? My dear son, I entreat\r\nyou never to make such an assertion again.”\r\n\r\n“I am not mad,” I cried energetically; “the sun and the heavens, who\r\nhave viewed my operations, can bear witness of my truth. I am the\r\nassassin of those most innocent victims; they died by my machinations.\r\nA thousand times would I have shed my own blood, drop by drop, to have\r\nsaved their lives; but I could not, my father, indeed I could not\r\nsacrifice the whole human race.”\r\n\r\nThe conclusion of this speech convinced my father that my ideas were\r\nderanged, and he instantly changed the subject of our conversation and\r\nendeavoured to alter the course of my thoughts. He wished as much as\r\npossible to obliterate the memory of the scenes that had taken place in\r\nIreland and never alluded to them or suffered me to speak of my\r\nmisfortunes.\r\n\r\nAs time passed away I became more calm; misery had her dwelling in my\r\nheart, but I no longer talked in the same incoherent manner of my own\r\ncrimes; sufficient for me was the consciousness of them. By the utmost\r\nself-violence I curbed the imperious voice of wretchedness, which\r\nsometimes desired to declare itself to the whole world, and my manners\r\nwere calmer and more composed than they had ever been since my journey\r\nto the sea of ice.\r\n\r\nA few days before we left Paris on our way to Switzerland, I received the\r\nfollowing letter from Elizabeth:\r\n\r\n“My dear Friend,\r\n\r\n“It gave me the greatest pleasure to receive a letter from my uncle\r\ndated at Paris; you are no longer at a formidable distance, and I may\r\nhope to see you in less than a fortnight. My poor cousin, how much you\r\nmust have suffered! I expect to see you looking even more ill than\r\nwhen you quitted Geneva. This winter has been passed most miserably,\r\ntortured as I have been by anxious suspense; yet I hope to see peace in\r\nyour countenance and to find that your heart is not totally void of\r\ncomfort and tranquillity.\r\n\r\n“Yet I fear that the same feelings now exist that made you so miserable\r\na year ago, even perhaps augmented by time. I would not disturb you at\r\nthis period, when so many misfortunes weigh upon you, but a\r\nconversation that I had with my uncle previous to his departure renders\r\nsome explanation necessary before we meet.\r\n\r\nExplanation! You may possibly say, What can Elizabeth have to explain? If\r\nyou really say this, my questions are answered and all my doubts satisfied.\r\nBut you are distant from me, and it is possible that you may dread and yet\r\nbe pleased with this explanation; and in a probability of this being the\r\ncase, I dare not any longer postpone writing what, during your absence, I\r\nhave often wished to express to you but have never had the courage to begin.\r\n\r\n“You well know, Victor, that our union had been the favourite plan of\r\nyour parents ever since our infancy. We were told this when young, and\r\ntaught to look forward to it as an event that would certainly take\r\nplace. We were affectionate playfellows during childhood, and, I\r\nbelieve, dear and valued friends to one another as we grew older. But\r\nas brother and sister often entertain a lively affection towards each\r\nother without desiring a more intimate union, may not such also be our\r\ncase? Tell me, dearest Victor. Answer me, I conjure you by our mutual\r\nhappiness, with simple truth—Do you not love another?\r\n\r\n“You have travelled; you have spent several years of your life at\r\nIngolstadt; and I confess to you, my friend, that when I saw you last\r\nautumn so unhappy, flying to solitude from the society of every\r\ncreature, I could not help supposing that you might regret our\r\nconnection and believe yourself bound in honour to fulfil the wishes of\r\nyour parents, although they opposed themselves to your inclinations.\r\nBut this is false reasoning. I confess to you, my friend, that I love\r\nyou and that in my airy dreams of futurity you have been my constant\r\nfriend and companion. But it is your happiness I desire as well as my\r\nown when I declare to you that our marriage would render me eternally\r\nmiserable unless it were the dictate of your own free choice. Even now\r\nI weep to think that, borne down as you are by the cruellest\r\nmisfortunes, you may stifle, by the word _honour_, all hope of that\r\nlove and happiness which would alone restore you to yourself. I, who\r\nhave so disinterested an affection for you, may increase your miseries\r\ntenfold by being an obstacle to your wishes. Ah! Victor, be assured\r\nthat your cousin and playmate has too sincere a love for you not to be\r\nmade miserable by this supposition. Be happy, my friend; and if you\r\nobey me in this one request, remain satisfied that nothing on earth\r\nwill have the power to interrupt my tranquillity.\r\n\r\n“Do not let this letter disturb you; do not answer tomorrow, or the\r\nnext day, or even until you come, if it will give you pain. My uncle\r\nwill send me news of your health, and if I see but one smile on your\r\nlips when we meet, occasioned by this or any other exertion of mine, I\r\nshall need no other happiness.\r\n\r\n“Elizabeth Lavenza.\r\n\r\n\r\n\r\n“Geneva, May 18th, 17—”\r\n\r\n\r\n\r\nThis letter revived in my memory what I had before forgotten, the threat of\r\nthe fiend—“_I will be with you on your\r\nwedding-night!_” Such was my sentence, and on that night would the\r\ndæmon employ every art to destroy me and tear me from the glimpse of\r\nhappiness which promised partly to console my sufferings. On that night he\r\nhad determined to consummate his crimes by my death. Well, be it so; a\r\ndeadly struggle would then assuredly take place, in which if he were\r\nvictorious I should be at peace and his power over me be at an end. If he\r\nwere vanquished, I should be a free man. Alas! What freedom? Such as the\r\npeasant enjoys when his family have been massacred before his eyes, his\r\ncottage burnt, his lands laid waste, and he is turned adrift, homeless,\r\npenniless, and alone, but free. Such would be my liberty except that in my\r\nElizabeth I possessed a treasure, alas, balanced by those horrors of\r\nremorse and guilt which would pursue me until death.\r\n\r\nSweet and beloved Elizabeth! I read and reread her letter, and some\r\nsoftened feelings stole into my heart and dared to whisper paradisiacal\r\ndreams of love and joy; but the apple was already eaten, and the\r\nangel’s arm bared to drive me from all hope. Yet I would die to make\r\nher happy. If the monster executed his threat, death was inevitable; yet,\r\nagain, I considered whether my marriage would hasten my fate. My\r\ndestruction might indeed arrive a few months sooner, but if my torturer\r\nshould suspect that I postponed it, influenced by his menaces, he would\r\nsurely find other and perhaps more dreadful means of revenge. He had vowed\r\n_to be with me on my wedding-night_, yet he did not consider that\r\nthreat as binding him to peace in the meantime, for as if to show me that\r\nhe was not yet satiated with blood, he had murdered Clerval immediately\r\nafter the enunciation of his threats. I resolved, therefore, that if my\r\nimmediate union with my cousin would conduce either to hers or my\r\nfather’s happiness, my adversary’s designs against my life\r\nshould not retard it a single hour.\r\n\r\nIn this state of mind I wrote to Elizabeth. My letter was calm and\r\naffectionate. “I fear, my beloved girl,” I said, “little happiness\r\nremains for us on earth; yet all that I may one day enjoy is centred in\r\nyou. Chase away your idle fears; to you alone do I consecrate my life\r\nand my endeavours for contentment. I have one secret, Elizabeth, a\r\ndreadful one; when revealed to you, it will chill your frame with\r\nhorror, and then, far from being surprised at my misery, you will only\r\nwonder that I survive what I have endured. I will confide this tale of\r\nmisery and terror to you the day after our marriage shall take place,\r\nfor, my sweet cousin, there must be perfect confidence between us. But\r\nuntil then, I conjure you, do not mention or allude to it. This I most\r\nearnestly entreat, and I know you will comply.”\r\n\r\nIn about a week after the arrival of Elizabeth’s letter we returned\r\nto Geneva. The sweet girl welcomed me with warm affection, yet tears were\r\nin her eyes as she beheld my emaciated frame and feverish cheeks. I saw a\r\nchange in her also. She was thinner and had lost much of that heavenly\r\nvivacity that had before charmed me; but her gentleness and soft looks of\r\ncompassion made her a more fit companion for one blasted and miserable as I\r\nwas.\r\n\r\nThe tranquillity which I now enjoyed did not endure. Memory brought madness\r\nwith it, and when I thought of what had passed, a real insanity possessed\r\nme; sometimes I was furious and burnt with rage, sometimes low and\r\ndespondent. I neither spoke nor looked at anyone, but sat motionless,\r\nbewildered by the multitude of miseries that overcame me.\r\n\r\nElizabeth alone had the power to draw me from these fits; her gentle voice\r\nwould soothe me when transported by passion and inspire me with human\r\nfeelings when sunk in torpor. She wept with me and for me. When reason\r\nreturned, she would remonstrate and endeavour to inspire me with\r\nresignation. Ah! It is well for the unfortunate to be resigned, but for the\r\nguilty there is no peace. The agonies of remorse poison the luxury there is\r\notherwise sometimes found in indulging the excess of grief.\r\n\r\nSoon after my arrival my father spoke of my immediate marriage with\r\nElizabeth. I remained silent.\r\n\r\n“Have you, then, some other attachment?”\r\n\r\n“None on earth. I love Elizabeth and look forward to our union with\r\ndelight. Let the day therefore be fixed; and on it I will consecrate\r\nmyself, in life or death, to the happiness of my cousin.”\r\n\r\n“My dear Victor, do not speak thus. Heavy misfortunes have befallen\r\nus, but let us only cling closer to what remains and transfer our love\r\nfor those whom we have lost to those who yet live. Our circle will be\r\nsmall but bound close by the ties of affection and mutual misfortune.\r\nAnd when time shall have softened your despair, new and dear objects of\r\ncare will be born to replace those of whom we have been so cruelly\r\ndeprived.”\r\n\r\nSuch were the lessons of my father. But to me the remembrance of the\r\nthreat returned; nor can you wonder that, omnipotent as the fiend had\r\nyet been in his deeds of blood, I should almost regard him as\r\ninvincible, and that when he had pronounced the words “_I shall be with\r\nyou on your wedding-night_,” I should regard the threatened fate as\r\nunavoidable. But death was no evil to me if the loss of Elizabeth were\r\nbalanced with it, and I therefore, with a contented and even cheerful\r\ncountenance, agreed with my father that if my cousin would consent, the\r\nceremony should take place in ten days, and thus put, as I imagined,\r\nthe seal to my fate.\r\n\r\nGreat God! If for one instant I had thought what might be the hellish\r\nintention of my fiendish adversary, I would rather have banished myself\r\nfor ever from my native country and wandered a friendless outcast over\r\nthe earth than have consented to this miserable marriage. But, as if\r\npossessed of magic powers, the monster had blinded me to his real\r\nintentions; and when I thought that I had prepared only my own death, I\r\nhastened that of a far dearer victim.\r\n\r\nAs the period fixed for our marriage drew nearer, whether from cowardice or\r\na prophetic feeling, I felt my heart sink within me. But I concealed my\r\nfeelings by an appearance of hilarity that brought smiles and joy to the\r\ncountenance of my father, but hardly deceived the ever-watchful and nicer\r\neye of Elizabeth. She looked forward to our union with placid contentment,\r\nnot unmingled with a little fear, which past misfortunes had impressed,\r\nthat what now appeared certain and tangible happiness might soon dissipate\r\ninto an airy dream and leave no trace but deep and everlasting regret.\r\n\r\nPreparations were made for the event, congratulatory visits were received,\r\nand all wore a smiling appearance. I shut up, as well as I could, in my own\r\nheart the anxiety that preyed there and entered with seeming earnestness\r\ninto the plans of my father, although they might only serve as the\r\ndecorations of my tragedy. Through my father’s exertions a part of\r\nthe inheritance of Elizabeth had been restored to her by the Austrian\r\ngovernment. A small possession on the shores of Como belonged to her. It\r\nwas agreed that, immediately after our union, we should proceed to Villa\r\nLavenza and spend our first days of happiness beside the beautiful lake\r\nnear which it stood.\r\n\r\nIn the meantime I took every precaution to defend my person in case the\r\nfiend should openly attack me. I carried pistols and a dagger\r\nconstantly about me and was ever on the watch to prevent artifice, and\r\nby these means gained a greater degree of tranquillity. Indeed, as the\r\nperiod approached, the threat appeared more as a delusion, not to be\r\nregarded as worthy to disturb my peace, while the happiness I hoped for\r\nin my marriage wore a greater appearance of certainty as the day fixed\r\nfor its solemnisation drew nearer and I heard it continually spoken of\r\nas an occurrence which no accident could possibly prevent.\r\n\r\nElizabeth seemed happy; my tranquil demeanour contributed greatly to\r\ncalm her mind. But on the day that was to fulfil my wishes and my\r\ndestiny, she was melancholy, and a presentiment of evil pervaded her;\r\nand perhaps also she thought of the dreadful secret which I had\r\npromised to reveal to her on the following day. My father was in the\r\nmeantime overjoyed, and, in the bustle of preparation, only recognised in\r\nthe melancholy of his niece the diffidence of a bride.\r\n\r\nAfter the ceremony was performed a large party assembled at my\r\nfather’s, but it was agreed that Elizabeth and I should commence our\r\njourney by water, sleeping that night at Evian and continuing our\r\nvoyage on the following day. The day was fair, the wind favourable;\r\nall smiled on our nuptial embarkation.\r\n\r\nThose were the last moments of my life during which I enjoyed the\r\nfeeling of happiness. We passed rapidly along; the sun was hot, but we\r\nwere sheltered from its rays by a kind of canopy while we enjoyed the\r\nbeauty of the scene, sometimes on one side of the lake, where we saw\r\nMont Salêve, the pleasant banks of Montalègre, and at a distance,\r\nsurmounting all, the beautiful Mont Blanc, and the assemblage of snowy\r\nmountains that in vain endeavour to emulate her; sometimes coasting the\r\nopposite banks, we saw the mighty Jura opposing its dark side to the\r\nambition that would quit its native country, and an almost\r\ninsurmountable barrier to the invader who should wish to enslave it.\r\n\r\nI took the hand of Elizabeth. “You are sorrowful, my love. Ah! If\r\nyou knew what I have suffered and what I may yet endure, you would\r\nendeavour to let me taste the quiet and freedom from despair that this\r\none day at least permits me to enjoy.”\r\n\r\n“Be happy, my dear Victor,” replied Elizabeth; “there is, I hope,\r\nnothing to distress you; and be assured that if a lively joy is not\r\npainted in my face, my heart is contented. Something whispers to me\r\nnot to depend too much on the prospect that is opened before us, but I\r\nwill not listen to such a sinister voice. Observe how fast we move\r\nalong and how the clouds, which sometimes obscure and sometimes rise\r\nabove the dome of Mont Blanc, render this scene of beauty still more\r\ninteresting. Look also at the innumerable fish that are swimming in\r\nthe clear waters, where we can distinguish every pebble that lies at\r\nthe bottom. What a divine day! How happy and serene all nature\r\nappears!”\r\n\r\nThus Elizabeth endeavoured to divert her thoughts and mine from all\r\nreflection upon melancholy subjects. But her temper was fluctuating;\r\njoy for a few instants shone in her eyes, but it continually gave place\r\nto distraction and reverie.\r\n\r\nThe sun sank lower in the heavens; we passed the river Drance and\r\nobserved its path through the chasms of the higher and the glens of the\r\nlower hills. The Alps here come closer to the lake, and we approached\r\nthe amphitheatre of mountains which forms its eastern boundary. The\r\nspire of Evian shone under the woods that surrounded it and the range\r\nof mountain above mountain by which it was overhung.\r\n\r\nThe wind, which had hitherto carried us along with amazing rapidity,\r\nsank at sunset to a light breeze; the soft air just ruffled the water\r\nand caused a pleasant motion among the trees as we approached the\r\nshore, from which it wafted the most delightful scent of flowers and\r\nhay. The sun sank beneath the horizon as we landed, and as I touched\r\nthe shore I felt those cares and fears revive which soon were to clasp\r\nme and cling to me for ever.\r\n\r\n\r\n\r\n\r\nChapter 23\r\n\r\n\r\nIt was eight o’clock when we landed; we walked for a short time on the\r\nshore, enjoying the transitory light, and then retired to the inn and\r\ncontemplated the lovely scene of waters, woods, and mountains, obscured\r\nin darkness, yet still displaying their black outlines.\r\n\r\nThe wind, which had fallen in the south, now rose with great violence\r\nin the west. The moon had reached her summit in the heavens and was\r\nbeginning to descend; the clouds swept across it swifter than the\r\nflight of the vulture and dimmed her rays, while the lake reflected the\r\nscene of the busy heavens, rendered still busier by the restless waves\r\nthat were beginning to rise. Suddenly a heavy storm of rain descended.\r\n\r\nI had been calm during the day, but so soon as night obscured the\r\nshapes of objects, a thousand fears arose in my mind. I was anxious\r\nand watchful, while my right hand grasped a pistol which was hidden in\r\nmy bosom; every sound terrified me, but I resolved that I would sell my\r\nlife dearly and not shrink from the conflict until my own life or that\r\nof my adversary was extinguished.\r\n\r\nElizabeth observed my agitation for some time in timid and fearful silence,\r\nbut there was something in my glance which communicated terror to her, and\r\ntrembling, she asked, “What is it that agitates you, my dear Victor?\r\nWhat is it you fear?”\r\n\r\n“Oh! Peace, peace, my love,” replied I; “this night, and\r\nall will be safe; but this night is dreadful, very dreadful.”\r\n\r\nI passed an hour in this state of mind, when suddenly I reflected how\r\nfearful the combat which I momentarily expected would be to my wife,\r\nand I earnestly entreated her to retire, resolving not to join her\r\nuntil I had obtained some knowledge as to the situation of my enemy.\r\n\r\nShe left me, and I continued some time walking up and down the passages\r\nof the house and inspecting every corner that might afford a retreat to\r\nmy adversary. But I discovered no trace of him and was beginning to\r\nconjecture that some fortunate chance had intervened to prevent the\r\nexecution of his menaces when suddenly I heard a shrill and dreadful\r\nscream. It came from the room into which Elizabeth had retired. As I\r\nheard it, the whole truth rushed into my mind, my arms dropped, the\r\nmotion of every muscle and fibre was suspended; I could feel the blood\r\ntrickling in my veins and tingling in the extremities of my limbs. This\r\nstate lasted but for an instant; the scream was repeated, and I rushed\r\ninto the room.\r\n\r\nGreat God! Why did I not then expire! Why am I here to relate the\r\ndestruction of the best hope and the purest creature on earth? She was\r\nthere, lifeless and inanimate, thrown across the bed, her head hanging down\r\nand her pale and distorted features half covered by her hair. Everywhere I\r\nturn I see the same figure—her bloodless arms and relaxed form flung\r\nby the murderer on its bridal bier. Could I behold this and live? Alas!\r\nLife is obstinate and clings closest where it is most hated. For a moment\r\nonly did I lose recollection; I fell senseless on the ground.\r\n\r\nWhen I recovered I found myself surrounded by the people of the inn; their\r\ncountenances expressed a breathless terror, but the horror of others\r\nappeared only as a mockery, a shadow of the feelings that oppressed me. I\r\nescaped from them to the room where lay the body of Elizabeth, my love, my\r\nwife, so lately living, so dear, so worthy. She had been moved from the\r\nposture in which I had first beheld her, and now, as she lay, her head upon\r\nher arm and a handkerchief thrown across her face and neck, I might have\r\nsupposed her asleep. I rushed towards her and embraced her with ardour, but\r\nthe deadly languor and coldness of the limbs told me that what I now held\r\nin my arms had ceased to be the Elizabeth whom I had loved and cherished.\r\nThe murderous mark of the fiend’s grasp was on her neck, and the\r\nbreath had ceased to issue from her lips.\r\n\r\nWhile I still hung over her in the agony of despair, I happened to look up.\r\nThe windows of the room had before been darkened, and I felt a kind of\r\npanic on seeing the pale yellow light of the moon illuminate the chamber.\r\nThe shutters had been thrown back, and with a sensation of horror not to be\r\ndescribed, I saw at the open window a figure the most hideous and abhorred.\r\nA grin was on the face of the monster; he seemed to jeer, as with his\r\nfiendish finger he pointed towards the corpse of my wife. I rushed towards\r\nthe window, and drawing a pistol from my bosom, fired; but he eluded me,\r\nleaped from his station, and running with the swiftness of lightning,\r\nplunged into the lake.\r\n\r\nThe report of the pistol brought a crowd into the room. I pointed to\r\nthe spot where he had disappeared, and we followed the track with\r\nboats; nets were cast, but in vain. After passing several hours, we\r\nreturned hopeless, most of my companions believing it to have been a\r\nform conjured up by my fancy. After having landed, they proceeded to\r\nsearch the country, parties going in different directions among the\r\nwoods and vines.\r\n\r\nI attempted to accompany them and proceeded a short distance from the\r\nhouse, but my head whirled round, my steps were like those of a drunken\r\nman, I fell at last in a state of utter exhaustion; a film covered my\r\neyes, and my skin was parched with the heat of fever. In this state I\r\nwas carried back and placed on a bed, hardly conscious of what had\r\nhappened; my eyes wandered round the room as if to seek something that\r\nI had lost.\r\n\r\nAfter an interval I arose, and as if by instinct, crawled into the room\r\nwhere the corpse of my beloved lay. There were women weeping around; I\r\nhung over it and joined my sad tears to theirs; all this time no\r\ndistinct idea presented itself to my mind, but my thoughts rambled to\r\nvarious subjects, reflecting confusedly on my misfortunes and their\r\ncause. I was bewildered, in a cloud of wonder and horror. The death\r\nof William, the execution of Justine, the murder of Clerval, and lastly\r\nof my wife; even at that moment I knew not that my only remaining\r\nfriends were safe from the malignity of the fiend; my father even now\r\nmight be writhing under his grasp, and Ernest might be dead at his\r\nfeet. This idea made me shudder and recalled me to action. I started\r\nup and resolved to return to Geneva with all possible speed.\r\n\r\nThere were no horses to be procured, and I must return by the lake; but the\r\nwind was unfavourable, and the rain fell in torrents. However, it was\r\nhardly morning, and I might reasonably hope to arrive by night. I hired men\r\nto row and took an oar myself, for I had always experienced relief from\r\nmental torment in bodily exercise. But the overflowing misery I now felt,\r\nand the excess of agitation that I endured rendered me incapable of any\r\nexertion. I threw down the oar, and leaning my head upon my hands, gave way\r\nto every gloomy idea that arose. If I looked up, I saw scenes which were\r\nfamiliar to me in my happier time and which I had contemplated but the day\r\nbefore in the company of her who was now but a shadow and a recollection.\r\nTears streamed from my eyes. The rain had ceased for a moment, and I saw\r\nthe fish play in the waters as they had done a few hours before; they had\r\nthen been observed by Elizabeth. Nothing is so painful to the human mind as\r\na great and sudden change. The sun might shine or the clouds might lower,\r\nbut nothing could appear to me as it had done the day before. A fiend had\r\nsnatched from me every hope of future happiness; no creature had ever been\r\nso miserable as I was; so frightful an event is single in the history of\r\nman.\r\n\r\nBut why should I dwell upon the incidents that followed this last\r\noverwhelming event? Mine has been a tale of horrors; I have reached their\r\n_acme_, and what I must now relate can but be tedious to you. Know\r\nthat, one by one, my friends were snatched away; I was left desolate. My\r\nown strength is exhausted, and I must tell, in a few words, what remains of\r\nmy hideous narration.\r\n\r\nI arrived at Geneva. My father and Ernest yet lived, but the former sunk\r\nunder the tidings that I bore. I see him now, excellent and venerable old\r\nman! His eyes wandered in vacancy, for they had lost their charm and their\r\ndelight—his Elizabeth, his more than daughter, whom he doted on with\r\nall that affection which a man feels, who in the decline of life, having\r\nfew affections, clings more earnestly to those that remain. Cursed, cursed\r\nbe the fiend that brought misery on his grey hairs and doomed him to waste\r\nin wretchedness! He could not live under the horrors that were accumulated\r\naround him; the springs of existence suddenly gave way; he was unable to\r\nrise from his bed, and in a few days he died in my arms.\r\n\r\nWhat then became of me? I know not; I lost sensation, and chains and\r\ndarkness were the only objects that pressed upon me. Sometimes,\r\nindeed, I dreamt that I wandered in flowery meadows and pleasant vales\r\nwith the friends of my youth, but I awoke and found myself in a\r\ndungeon. Melancholy followed, but by degrees I gained a clear\r\nconception of my miseries and situation and was then released from my\r\nprison. For they had called me mad, and during many months, as I\r\nunderstood, a solitary cell had been my habitation.\r\n\r\nLiberty, however, had been a useless gift to me, had I not, as I\r\nawakened to reason, at the same time awakened to revenge. As the\r\nmemory of past misfortunes pressed upon me, I began to reflect on their\r\ncause—the monster whom I had created, the miserable dæmon whom I had\r\nsent abroad into the world for my destruction. I was possessed by a\r\nmaddening rage when I thought of him, and desired and ardently prayed\r\nthat I might have him within my grasp to wreak a great and signal\r\nrevenge on his cursed head.\r\n\r\nNor did my hate long confine itself to useless wishes; I began to\r\nreflect on the best means of securing him; and for this purpose, about\r\na month after my release, I repaired to a criminal judge in the town\r\nand told him that I had an accusation to make, that I knew the\r\ndestroyer of my family, and that I required him to exert his whole\r\nauthority for the apprehension of the murderer.\r\n\r\nThe magistrate listened to me with attention and kindness. “Be\r\nassured, sir,” said he, “no pains or exertions on my part shall\r\nbe spared to discover the villain.”\r\n\r\n“I thank you,” replied I; “listen, therefore, to the\r\ndeposition that I have to make. It is indeed a tale so strange that I\r\nshould fear you would not credit it were there not something in truth\r\nwhich, however wonderful, forces conviction. The story is too connected to\r\nbe mistaken for a dream, and I have no motive for falsehood.” My\r\nmanner as I thus addressed him was impressive but calm; I had formed in my\r\nown heart a resolution to pursue my destroyer to death, and this purpose\r\nquieted my agony and for an interval reconciled me to life. I now related\r\nmy history briefly but with firmness and precision, marking the dates with\r\naccuracy and never deviating into invective or exclamation.\r\n\r\nThe magistrate appeared at first perfectly incredulous, but as I continued\r\nhe became more attentive and interested; I saw him sometimes shudder with\r\nhorror; at others a lively surprise, unmingled with disbelief, was painted\r\non his countenance.\r\n\r\nWhen I had concluded my narration, I said, “This is the being whom I\r\naccuse and for whose seizure and punishment I call upon you to exert your\r\nwhole power. It is your duty as a magistrate, and I believe and hope that\r\nyour feelings as a man will not revolt from the execution of those\r\nfunctions on this occasion.”\r\n\r\nThis address caused a considerable change in the physiognomy of my own\r\nauditor. He had heard my story with that half kind of belief that is given\r\nto a tale of spirits and supernatural events; but when he was called upon\r\nto act officially in consequence, the whole tide of his incredulity\r\nreturned. He, however, answered mildly, “I would willingly afford you\r\nevery aid in your pursuit, but the creature of whom you speak appears to\r\nhave powers which would put all my exertions to defiance. Who can follow an\r\nanimal which can traverse the sea of ice and inhabit caves and dens where\r\nno man would venture to intrude? Besides, some months have elapsed since\r\nthe commission of his crimes, and no one can conjecture to what place he\r\nhas wandered or what region he may now inhabit.”\r\n\r\n“I do not doubt that he hovers near the spot which I inhabit, and if\r\nhe has indeed taken refuge in the Alps, he may be hunted like the chamois\r\nand destroyed as a beast of prey. But I perceive your thoughts; you do not\r\ncredit my narrative and do not intend to pursue my enemy with the\r\npunishment which is his desert.”\r\n\r\nAs I spoke, rage sparkled in my eyes; the magistrate was intimidated.\r\n“You are mistaken,” said he. “I will exert myself, and if\r\nit is in my power to seize the monster, be assured that he shall suffer\r\npunishment proportionate to his crimes. But I fear, from what you have\r\nyourself described to be his properties, that this will prove\r\nimpracticable; and thus, while every proper measure is pursued, you should\r\nmake up your mind to disappointment.”\r\n\r\n“That cannot be; but all that I can say will be of little avail. My\r\nrevenge is of no moment to you; yet, while I allow it to be a vice, I\r\nconfess that it is the devouring and only passion of my soul. My rage\r\nis unspeakable when I reflect that the murderer, whom I have turned\r\nloose upon society, still exists. You refuse my just demand; I have\r\nbut one resource, and I devote myself, either in my life or death, to\r\nhis destruction.”\r\n\r\nI trembled with excess of agitation as I said this; there was a frenzy\r\nin my manner, and something, I doubt not, of that haughty fierceness\r\nwhich the martyrs of old are said to have possessed. But to a Genevan\r\nmagistrate, whose mind was occupied by far other ideas than those of\r\ndevotion and heroism, this elevation of mind had much the appearance of\r\nmadness. He endeavoured to soothe me as a nurse does a child and\r\nreverted to my tale as the effects of delirium.\r\n\r\n“Man,” I cried, “how ignorant art thou in thy pride of\r\nwisdom! Cease; you know not what it is you say.”\r\n\r\nI broke from the house angry and disturbed and retired to meditate on\r\nsome other mode of action.\r\n\r\n\r\n\r\n\r\nChapter 24\r\n\r\n\r\nMy present situation was one in which all voluntary thought was\r\nswallowed up and lost. I was hurried away by fury; revenge alone\r\nendowed me with strength and composure; it moulded my feelings and\r\nallowed me to be calculating and calm at periods when otherwise\r\ndelirium or death would have been my portion.\r\n\r\nMy first resolution was to quit Geneva for ever; my country, which, when I\r\nwas happy and beloved, was dear to me, now, in my adversity, became\r\nhateful. I provided myself with a sum of money, together with a few jewels\r\nwhich had belonged to my mother, and departed.\r\n\r\nAnd now my wanderings began which are to cease but with life. I have\r\ntraversed a vast portion of the earth and have endured all the hardships\r\nwhich travellers in deserts and barbarous countries are wont to meet. How I\r\nhave lived I hardly know; many times have I stretched my failing limbs upon\r\nthe sandy plain and prayed for death. But revenge kept me alive; I dared\r\nnot die and leave my adversary in being.\r\n\r\nWhen I quitted Geneva my first labour was to gain some clue by which I\r\nmight trace the steps of my fiendish enemy. But my plan was unsettled,\r\nand I wandered many hours round the confines of the town, uncertain\r\nwhat path I should pursue. As night approached I found myself at the\r\nentrance of the cemetery where William, Elizabeth, and my father\r\nreposed. I entered it and approached the tomb which marked their\r\ngraves. Everything was silent except the leaves of the trees, which\r\nwere gently agitated by the wind; the night was nearly dark, and the\r\nscene would have been solemn and affecting even to an uninterested\r\nobserver. The spirits of the departed seemed to flit around and to\r\ncast a shadow, which was felt but not seen, around the head of the\r\nmourner.\r\n\r\nThe deep grief which this scene had at first excited quickly gave way to\r\nrage and despair. They were dead, and I lived; their murderer also lived,\r\nand to destroy him I must drag out my weary existence. I knelt on the grass\r\nand kissed the earth and with quivering lips exclaimed, “By the\r\nsacred earth on which I kneel, by the shades that wander near me, by the\r\ndeep and eternal grief that I feel, I swear; and by thee, O Night, and the\r\nspirits that preside over thee, to pursue the dæmon who caused this misery,\r\nuntil he or I shall perish in mortal conflict. For this purpose I will\r\npreserve my life; to execute this dear revenge will I again behold the sun\r\nand tread the green herbage of earth, which otherwise should vanish from my\r\neyes for ever. And I call on you, spirits of the dead, and on you, wandering\r\nministers of vengeance, to aid and conduct me in my work. Let the cursed\r\nand hellish monster drink deep of agony; let him feel the despair that now\r\ntorments me.”\r\n\r\nI had begun my adjuration with solemnity and an awe which almost assured me\r\nthat the shades of my murdered friends heard and approved my devotion, but\r\nthe furies possessed me as I concluded, and rage choked my utterance.\r\n\r\nI was answered through the stillness of night by a loud and fiendish\r\nlaugh. It rang on my ears long and heavily; the mountains re-echoed\r\nit, and I felt as if all hell surrounded me with mockery and laughter.\r\nSurely in that moment I should have been possessed by frenzy and have\r\ndestroyed my miserable existence but that my vow was heard and that I\r\nwas reserved for vengeance. The laughter died away, when a well-known\r\nand abhorred voice, apparently close to my ear, addressed me in an\r\naudible whisper, “I am satisfied, miserable wretch! You have\r\ndetermined to live, and I am satisfied.”\r\n\r\nI darted towards the spot from which the sound proceeded, but the devil\r\neluded my grasp. Suddenly the broad disk of the moon arose and shone\r\nfull upon his ghastly and distorted shape as he fled with more than\r\nmortal speed.\r\n\r\nI pursued him, and for many months this has been my task. Guided by a\r\nslight clue, I followed the windings of the Rhone, but vainly. The\r\nblue Mediterranean appeared, and by a strange chance, I saw the fiend\r\nenter by night and hide himself in a vessel bound for the Black Sea. I\r\ntook my passage in the same ship, but he escaped, I know not how.\r\n\r\nAmidst the wilds of Tartary and Russia, although he still evaded me, I\r\nhave ever followed in his track. Sometimes the peasants, scared by\r\nthis horrid apparition, informed me of his path; sometimes he himself,\r\nwho feared that if I lost all trace of him I should despair and die,\r\nleft some mark to guide me. The snows descended on my head, and I saw\r\nthe print of his huge step on the white plain. To you first entering\r\non life, to whom care is new and agony unknown, how can you understand\r\nwhat I have felt and still feel? Cold, want, and fatigue were the\r\nleast pains which I was destined to endure; I was cursed by some devil\r\nand carried about with me my eternal hell; yet still a spirit of good\r\nfollowed and directed my steps and when I most murmured would suddenly\r\nextricate me from seemingly insurmountable difficulties. Sometimes,\r\nwhen nature, overcome by hunger, sank under the exhaustion, a repast\r\nwas prepared for me in the desert that restored and inspirited me. The\r\nfare was, indeed, coarse, such as the peasants of the country ate, but\r\nI will not doubt that it was set there by the spirits that I had\r\ninvoked to aid me. Often, when all was dry, the heavens cloudless, and\r\nI was parched by thirst, a slight cloud would bedim the sky, shed the\r\nfew drops that revived me, and vanish.\r\n\r\nI followed, when I could, the courses of the rivers; but the dæmon\r\ngenerally avoided these, as it was here that the population of the\r\ncountry chiefly collected. In other places human beings were seldom\r\nseen, and I generally subsisted on the wild animals that crossed my\r\npath. I had money with me and gained the friendship of the villagers\r\nby distributing it; or I brought with me some food that I had killed,\r\nwhich, after taking a small part, I always presented to those who had\r\nprovided me with fire and utensils for cooking.\r\n\r\nMy life, as it passed thus, was indeed hateful to me, and it was during\r\nsleep alone that I could taste joy. O blessed sleep! Often, when most\r\nmiserable, I sank to repose, and my dreams lulled me even to rapture. The\r\nspirits that guarded me had provided these moments, or rather hours, of\r\nhappiness that I might retain strength to fulfil my pilgrimage. Deprived of\r\nthis respite, I should have sunk under my hardships. During the day I was\r\nsustained and inspirited by the hope of night, for in sleep I saw my\r\nfriends, my wife, and my beloved country; again I saw the benevolent\r\ncountenance of my father, heard the silver tones of my Elizabeth’s\r\nvoice, and beheld Clerval enjoying health and youth. Often, when wearied by\r\na toilsome march, I persuaded myself that I was dreaming until night should\r\ncome and that I should then enjoy reality in the arms of my dearest\r\nfriends. What agonising fondness did I feel for them! How did I cling to\r\ntheir dear forms, as sometimes they haunted even my waking hours, and\r\npersuade myself that they still lived! At such moments vengeance, that\r\nburned within me, died in my heart, and I pursued my path towards the\r\ndestruction of the dæmon more as a task enjoined by heaven, as the\r\nmechanical impulse of some power of which I was unconscious, than as the\r\nardent desire of my soul.\r\n\r\nWhat his feelings were whom I pursued I cannot know. Sometimes, indeed, he\r\nleft marks in writing on the barks of the trees or cut in stone that guided\r\nme and instigated my fury. “My reign is not yet\r\nover”—these words were legible in one of these\r\ninscriptions—“you live, and my power is complete. Follow me; I\r\nseek the everlasting ices of the north, where you will feel the misery of\r\ncold and frost, to which I am impassive. You will find near this place, if\r\nyou follow not too tardily, a dead hare; eat and be refreshed. Come on, my\r\nenemy; we have yet to wrestle for our lives, but many hard and miserable\r\nhours must you endure until that period shall arrive.”\r\n\r\nScoffing devil! Again do I vow vengeance; again do I devote thee,\r\nmiserable fiend, to torture and death. Never will I give up my search\r\nuntil he or I perish; and then with what ecstasy shall I join my\r\nElizabeth and my departed friends, who even now prepare for me the\r\nreward of my tedious toil and horrible pilgrimage!\r\n\r\nAs I still pursued my journey to the northward, the snows thickened and the\r\ncold increased in a degree almost too severe to support. The peasants were\r\nshut up in their hovels, and only a few of the most hardy ventured forth to\r\nseize the animals whom starvation had forced from their hiding-places to\r\nseek for prey. The rivers were covered with ice, and no fish could be\r\nprocured; and thus I was cut off from my chief article of maintenance.\r\n\r\nThe triumph of my enemy increased with the difficulty of my labours. One\r\ninscription that he left was in these words: “Prepare! Your toils\r\nonly begin; wrap yourself in furs and provide food, for we shall soon enter\r\nupon a journey where your sufferings will satisfy my everlasting\r\nhatred.”\r\n\r\nMy courage and perseverance were invigorated by these scoffing words; I\r\nresolved not to fail in my purpose, and calling on Heaven to support\r\nme, I continued with unabated fervour to traverse immense deserts,\r\nuntil the ocean appeared at a distance and formed the utmost boundary\r\nof the horizon. Oh! How unlike it was to the blue seasons of the\r\nsouth! Covered with ice, it was only to be distinguished from land by\r\nits superior wildness and ruggedness. The Greeks wept for joy when\r\nthey beheld the Mediterranean from the hills of Asia, and hailed with\r\nrapture the boundary of their toils. I did not weep, but I knelt down\r\nand with a full heart thanked my guiding spirit for conducting me in\r\nsafety to the place where I hoped, notwithstanding my adversary’s gibe,\r\nto meet and grapple with him.\r\n\r\nSome weeks before this period I had procured a sledge and dogs and thus\r\ntraversed the snows with inconceivable speed. I know not whether the\r\nfiend possessed the same advantages, but I found that, as before I had\r\ndaily lost ground in the pursuit, I now gained on him, so much so that\r\nwhen I first saw the ocean he was but one day’s journey in advance, and\r\nI hoped to intercept him before he should reach the beach. With new\r\ncourage, therefore, I pressed on, and in two days arrived at a wretched\r\nhamlet on the seashore. I inquired of the inhabitants concerning the\r\nfiend and gained accurate information. A gigantic monster, they said,\r\nhad arrived the night before, armed with a gun and many pistols,\r\nputting to flight the inhabitants of a solitary cottage through fear of\r\nhis terrific appearance. He had carried off their store of winter\r\nfood, and placing it in a sledge, to draw which he had seized on a\r\nnumerous drove of trained dogs, he had harnessed them, and the same\r\nnight, to the joy of the horror-struck villagers, had pursued his\r\njourney across the sea in a direction that led to no land; and they\r\nconjectured that he must speedily be destroyed by the breaking of the\r\nice or frozen by the eternal frosts.\r\n\r\nOn hearing this information I suffered a temporary access of despair.\r\nHe had escaped me, and I must commence a destructive and almost endless\r\njourney across the mountainous ices of the ocean, amidst cold that few\r\nof the inhabitants could long endure and which I, the native of a\r\ngenial and sunny climate, could not hope to survive. Yet at the idea\r\nthat the fiend should live and be triumphant, my rage and vengeance\r\nreturned, and like a mighty tide, overwhelmed every other feeling.\r\nAfter a slight repose, during which the spirits of the dead hovered\r\nround and instigated me to toil and revenge, I prepared for my journey.\r\n\r\nI exchanged my land-sledge for one fashioned for the inequalities of\r\nthe Frozen Ocean, and purchasing a plentiful stock of provisions, I\r\ndeparted from land.\r\n\r\nI cannot guess how many days have passed since then, but I have endured\r\nmisery which nothing but the eternal sentiment of a just retribution\r\nburning within my heart could have enabled me to support. Immense and\r\nrugged mountains of ice often barred up my passage, and I often heard\r\nthe thunder of the ground sea, which threatened my destruction. But\r\nagain the frost came and made the paths of the sea secure.\r\n\r\nBy the quantity of provision which I had consumed, I should guess that\r\nI had passed three weeks in this journey; and the continual protraction\r\nof hope, returning back upon the heart, often wrung bitter drops of\r\ndespondency and grief from my eyes. Despair had indeed almost secured\r\nher prey, and I should soon have sunk beneath this misery. Once, after\r\nthe poor animals that conveyed me had with incredible toil gained the\r\nsummit of a sloping ice mountain, and one, sinking under his fatigue,\r\ndied, I viewed the expanse before me with anguish, when suddenly my eye\r\ncaught a dark speck upon the dusky plain. I strained my sight to\r\ndiscover what it could be and uttered a wild cry of ecstasy when I\r\ndistinguished a sledge and the distorted proportions of a well-known\r\nform within. Oh! With what a burning gush did hope revisit my heart!\r\nWarm tears filled my eyes, which I hastily wiped away, that they might\r\nnot intercept the view I had of the dæmon; but still my sight was\r\ndimmed by the burning drops, until, giving way to the emotions that\r\noppressed me, I wept aloud.\r\n\r\nBut this was not the time for delay; I disencumbered the dogs of their\r\ndead companion, gave them a plentiful portion of food, and after an\r\nhour’s rest, which was absolutely necessary, and yet which was bitterly\r\nirksome to me, I continued my route. The sledge was still visible, nor\r\ndid I again lose sight of it except at the moments when for a short\r\ntime some ice-rock concealed it with its intervening crags. I indeed\r\nperceptibly gained on it, and when, after nearly two days’ journey, I\r\nbeheld my enemy at no more than a mile distant, my heart bounded within\r\nme.\r\n\r\nBut now, when I appeared almost within grasp of my foe, my hopes were\r\nsuddenly extinguished, and I lost all trace of him more utterly than I had\r\never done before. A ground sea was heard; the thunder of its progress, as\r\nthe waters rolled and swelled beneath me, became every moment more ominous\r\nand terrific. I pressed on, but in vain. The wind arose; the sea roared;\r\nand, as with the mighty shock of an earthquake, it split and cracked with a\r\ntremendous and overwhelming sound. The work was soon finished; in a few\r\nminutes a tumultuous sea rolled between me and my enemy, and I was left\r\ndrifting on a scattered piece of ice that was continually lessening and\r\nthus preparing for me a hideous death.\r\n\r\nIn this manner many appalling hours passed; several of my dogs died, and I\r\nmyself was about to sink under the accumulation of distress when I saw your\r\nvessel riding at anchor and holding forth to me hopes of succour and life.\r\nI had no conception that vessels ever came so far north and was astounded\r\nat the sight. I quickly destroyed part of my sledge to construct oars, and\r\nby these means was enabled, with infinite fatigue, to move my ice raft in\r\nthe direction of your ship. I had determined, if you were going southwards,\r\nstill to trust myself to the mercy of the seas rather than abandon my\r\npurpose. I hoped to induce you to grant me a boat with which I could pursue\r\nmy enemy. But your direction was northwards. You took me on board when my\r\nvigour was exhausted, and I should soon have sunk under my multiplied\r\nhardships into a death which I still dread, for my task is unfulfilled.\r\n\r\nOh! When will my guiding spirit, in conducting me to the dæmon, allow\r\nme the rest I so much desire; or must I die, and he yet live? If I do,\r\nswear to me, Walton, that he shall not escape, that you will seek him\r\nand satisfy my vengeance in his death. And do I dare to ask of you to\r\nundertake my pilgrimage, to endure the hardships that I have undergone?\r\nNo; I am not so selfish. Yet, when I am dead, if he should appear, if\r\nthe ministers of vengeance should conduct him to you, swear that he\r\nshall not live—swear that he shall not triumph over my accumulated\r\nwoes and survive to add to the list of his dark crimes. He is eloquent\r\nand persuasive, and once his words had even power over my heart; but\r\ntrust him not. His soul is as hellish as his form, full of treachery\r\nand fiend-like malice. Hear him not; call on the names of William,\r\nJustine, Clerval, Elizabeth, my father, and of the wretched Victor, and\r\nthrust your sword into his heart. I will hover near and direct the\r\nsteel aright.\r\n\r\nWalton, _in continuation._\r\n\r\n\r\nAugust 26th, 17—.\r\n\r\n\r\nYou have read this strange and terrific story, Margaret; and do you not\r\nfeel your blood congeal with horror, like that which even now curdles\r\nmine? Sometimes, seized with sudden agony, he could not continue his\r\ntale; at others, his voice broken, yet piercing, uttered with\r\ndifficulty the words so replete with anguish. His fine and lovely eyes\r\nwere now lighted up with indignation, now subdued to downcast sorrow\r\nand quenched in infinite wretchedness. Sometimes he commanded his\r\ncountenance and tones and related the most horrible incidents with a\r\ntranquil voice, suppressing every mark of agitation; then, like a\r\nvolcano bursting forth, his face would suddenly change to an expression\r\nof the wildest rage as he shrieked out imprecations on his persecutor.\r\n\r\nHis tale is connected and told with an appearance of the simplest truth,\r\nyet I own to you that the letters of Felix and Safie, which he showed me,\r\nand the apparition of the monster seen from our ship, brought to me a\r\ngreater conviction of the truth of his narrative than his asseverations,\r\nhowever earnest and connected. Such a monster has, then, really existence!\r\nI cannot doubt it, yet I am lost in surprise and admiration. Sometimes I\r\nendeavoured to gain from Frankenstein the particulars of his\r\ncreature’s formation, but on this point he was impenetrable.\r\n\r\n“Are you mad, my friend?” said he. “Or whither does your\r\nsenseless curiosity lead you? Would you also create for yourself and the\r\nworld a demoniacal enemy? Peace, peace! Learn my miseries and do not seek\r\nto increase your own.”\r\n\r\nFrankenstein discovered that I made notes concerning his history; he asked\r\nto see them and then himself corrected and augmented them in many places,\r\nbut principally in giving the life and spirit to the conversations he held\r\nwith his enemy. “Since you have preserved my narration,” said\r\nhe, “I would not that a mutilated one should go down to\r\nposterity.”\r\n\r\nThus has a week passed away, while I have listened to the strangest\r\ntale that ever imagination formed. My thoughts and every feeling of my\r\nsoul have been drunk up by the interest for my guest which this tale\r\nand his own elevated and gentle manners have created. I wish to soothe\r\nhim, yet can I counsel one so infinitely miserable, so destitute of\r\nevery hope of consolation, to live? Oh, no! The only joy that he can\r\nnow know will be when he composes his shattered spirit to peace and\r\ndeath. Yet he enjoys one comfort, the offspring of solitude and\r\ndelirium; he believes that when in dreams he holds converse with his\r\nfriends and derives from that communion consolation for his miseries or\r\nexcitements to his vengeance, that they are not the creations of his\r\nfancy, but the beings themselves who visit him from the regions of a\r\nremote world. This faith gives a solemnity to his reveries that render\r\nthem to me almost as imposing and interesting as truth.\r\n\r\nOur conversations are not always confined to his own history and\r\nmisfortunes. On every point of general literature he displays\r\nunbounded knowledge and a quick and piercing apprehension. His\r\neloquence is forcible and touching; nor can I hear him, when he relates\r\na pathetic incident or endeavours to move the passions of pity or love,\r\nwithout tears. What a glorious creature must he have been in the days\r\nof his prosperity, when he is thus noble and godlike in ruin! He seems\r\nto feel his own worth and the greatness of his fall.\r\n\r\n“When younger,” said he, “I believed myself destined for\r\nsome great enterprise. My feelings are profound, but I possessed a coolness\r\nof judgment that fitted me for illustrious achievements. This sentiment of\r\nthe worth of my nature supported me when others would have been oppressed,\r\nfor I deemed it criminal to throw away in useless grief those talents that\r\nmight be useful to my fellow creatures. When I reflected on the work I had\r\ncompleted, no less a one than the creation of a sensitive and rational\r\nanimal, I could not rank myself with the herd of common projectors. But\r\nthis thought, which supported me in the commencement of my career, now\r\nserves only to plunge me lower in the dust. All my speculations and hopes\r\nare as nothing, and like the archangel who aspired to omnipotence, I am\r\nchained in an eternal hell. My imagination was vivid, yet my powers of\r\nanalysis and application were intense; by the union of these qualities I\r\nconceived the idea and executed the creation of a man. Even now I cannot\r\nrecollect without passion my reveries while the work was incomplete. I trod\r\nheaven in my thoughts, now exulting in my powers, now burning with the idea\r\nof their effects. From my infancy I was imbued with high hopes and a lofty\r\nambition; but how am I sunk! Oh! My friend, if you had known me as I once\r\nwas, you would not recognise me in this state of degradation. Despondency\r\nrarely visited my heart; a high destiny seemed to bear me on, until I fell,\r\nnever, never again to rise.”\r\n\r\nMust I then lose this admirable being? I have longed for a friend; I have\r\nsought one who would sympathise with and love me. Behold, on these desert\r\nseas I have found such a one, but I fear I have gained him only to know his\r\nvalue and lose him. I would reconcile him to life, but he repulses the idea.\r\n\r\n“I thank you, Walton,” he said, “for your kind intentions towards so\r\nmiserable a wretch; but when you speak of new ties and fresh\r\naffections, think you that any can replace those who are gone? Can any\r\nman be to me as Clerval was, or any woman another Elizabeth? Even\r\nwhere the affections are not strongly moved by any superior excellence,\r\nthe companions of our childhood always possess a certain power over our\r\nminds which hardly any later friend can obtain. They know our\r\ninfantine dispositions, which, however they may be afterwards modified,\r\nare never eradicated; and they can judge of our actions with more\r\ncertain conclusions as to the integrity of our motives. A sister or a\r\nbrother can never, unless indeed such symptoms have been shown early,\r\nsuspect the other of fraud or false dealing, when another friend,\r\nhowever strongly he may be attached, may, in spite of himself, be\r\ncontemplated with suspicion. But I enjoyed friends, dear not only\r\nthrough habit and association, but from their own merits; and wherever\r\nI am, the soothing voice of my Elizabeth and the conversation of\r\nClerval will be ever whispered in my ear. They are dead, and but one\r\nfeeling in such a solitude can persuade me to preserve my life. If I\r\nwere engaged in any high undertaking or design, fraught with extensive\r\nutility to my fellow creatures, then could I live to fulfil it. But\r\nsuch is not my destiny; I must pursue and destroy the being to whom I\r\ngave existence; then my lot on earth will be fulfilled and I may die.”\r\n\r\nMy beloved Sister,\r\n\r\nSeptember 2d.\r\n\r\n\r\nI write to you, encompassed by peril and ignorant whether I am ever\r\ndoomed to see again dear England and the dearer friends that inhabit\r\nit. I am surrounded by mountains of ice which admit of no escape and\r\nthreaten every moment to crush my vessel. The brave fellows whom I\r\nhave persuaded to be my companions look towards me for aid, but I have\r\nnone to bestow. There is something terribly appalling in our\r\nsituation, yet my courage and hopes do not desert me. Yet it is\r\nterrible to reflect that the lives of all these men are endangered\r\nthrough me. If we are lost, my mad schemes are the cause.\r\n\r\nAnd what, Margaret, will be the state of your mind? You will not hear of my\r\ndestruction, and you will anxiously await my return. Years will pass, and\r\nyou will have visitings of despair and yet be tortured by hope. Oh! My\r\nbeloved sister, the sickening failing of your heart-felt expectations is,\r\nin prospect, more terrible to me than my own death. But you have a husband\r\nand lovely children; you may be happy. Heaven bless you and make you so!\r\n\r\nMy unfortunate guest regards me with the tenderest compassion. He\r\nendeavours to fill me with hope and talks as if life were a possession\r\nwhich he valued. He reminds me how often the same accidents have\r\nhappened to other navigators who have attempted this sea, and in spite\r\nof myself, he fills me with cheerful auguries. Even the sailors feel\r\nthe power of his eloquence; when he speaks, they no longer despair; he\r\nrouses their energies, and while they hear his voice they believe these\r\nvast mountains of ice are mole-hills which will vanish before the\r\nresolutions of man. These feelings are transitory; each day of\r\nexpectation delayed fills them with fear, and I almost dread a mutiny\r\ncaused by this despair.\r\n\r\nSeptember 5th.\r\n\r\n\r\nA scene has just passed of such uncommon interest that, although it is\r\nhighly probable that these papers may never reach you, yet I cannot\r\nforbear recording it.\r\n\r\nWe are still surrounded by mountains of ice, still in imminent danger\r\nof being crushed in their conflict. The cold is excessive, and many of\r\nmy unfortunate comrades have already found a grave amidst this scene of\r\ndesolation. Frankenstein has daily declined in health; a feverish fire\r\nstill glimmers in his eyes, but he is exhausted, and when suddenly\r\nroused to any exertion, he speedily sinks again into apparent\r\nlifelessness.\r\n\r\nI mentioned in my last letter the fears I entertained of a mutiny.\r\nThis morning, as I sat watching the wan countenance of my friend—his\r\neyes half closed and his limbs hanging listlessly—I was roused by half\r\na dozen of the sailors, who demanded admission into the cabin. They\r\nentered, and their leader addressed me. He told me that he and his\r\ncompanions had been chosen by the other sailors to come in deputation\r\nto me to make me a requisition which, in justice, I could not refuse.\r\nWe were immured in ice and should probably never escape, but they\r\nfeared that if, as was possible, the ice should dissipate and a free\r\npassage be opened, I should be rash enough to continue my voyage and\r\nlead them into fresh dangers, after they might happily have surmounted\r\nthis. They insisted, therefore, that I should engage with a solemn\r\npromise that if the vessel should be freed I would instantly direct my\r\ncourse southwards.\r\n\r\nThis speech troubled me. I had not despaired, nor had I yet conceived\r\nthe idea of returning if set free. Yet could I, in justice, or even in\r\npossibility, refuse this demand? I hesitated before I answered, when\r\nFrankenstein, who had at first been silent, and indeed appeared hardly\r\nto have force enough to attend, now roused himself; his eyes sparkled,\r\nand his cheeks flushed with momentary vigour. Turning towards the men,\r\nhe said,\r\n\r\n“What do you mean? What do you demand of your captain? Are you, then,\r\nso easily turned from your design? Did you not call this a glorious\r\nexpedition? “And wherefore was it glorious? Not because the way was\r\nsmooth and placid as a southern sea, but because it was full of dangers and\r\nterror, because at every new incident your fortitude was to be called forth\r\nand your courage exhibited, because danger and death surrounded it, and\r\nthese you were to brave and overcome. For this was it a glorious, for this\r\nwas it an honourable undertaking. You were hereafter to be hailed as the\r\nbenefactors of your species, your names adored as belonging to brave men\r\nwho encountered death for honour and the benefit of mankind. And now,\r\nbehold, with the first imagination of danger, or, if you will, the first\r\nmighty and terrific trial of your courage, you shrink away and are content\r\nto be handed down as men who had not strength enough to endure cold and\r\nperil; and so, poor souls, they were chilly and returned to their warm\r\nfiresides. Why, that requires not this preparation; ye need not have come\r\nthus far and dragged your captain to the shame of a defeat merely to prove\r\nyourselves cowards. Oh! Be men, or be more than men. Be steady to your\r\npurposes and firm as a rock. This ice is not made of such stuff as your\r\nhearts may be; it is mutable and cannot withstand you if you say that it\r\nshall not. Do not return to your families with the stigma of disgrace\r\nmarked on your brows. Return as heroes who have fought and conquered and\r\nwho know not what it is to turn their backs on the foe.”\r\n\r\nHe spoke this with a voice so modulated to the different feelings expressed\r\nin his speech, with an eye so full of lofty design and heroism, that can\r\nyou wonder that these men were moved? They looked at one another and were\r\nunable to reply. I spoke; I told them to retire and consider of what had\r\nbeen said, that I would not lead them farther north if they strenuously\r\ndesired the contrary, but that I hoped that, with reflection, their courage\r\nwould return.\r\n\r\nThey retired and I turned towards my friend, but he was sunk in languor and\r\nalmost deprived of life.\r\n\r\nHow all this will terminate, I know not, but I had rather die than\r\nreturn shamefully, my purpose unfulfilled. Yet I fear such will be my\r\nfate; the men, unsupported by ideas of glory and honour, can never\r\nwillingly continue to endure their present hardships.\r\n\r\nSeptember 7th.\r\n\r\n\r\nThe die is cast; I have consented to return if we are not destroyed.\r\nThus are my hopes blasted by cowardice and indecision; I come back\r\nignorant and disappointed. It requires more philosophy than I possess\r\nto bear this injustice with patience.\r\n\r\nSeptember 12th.\r\n\r\n\r\nIt is past; I am returning to England. I have lost my hopes of utility\r\nand glory; I have lost my friend. But I will endeavour to detail these\r\nbitter circumstances to you, my dear sister; and while I am wafted\r\ntowards England and towards you, I will not despond.\r\n\r\nSeptember 9th, the ice began to move, and roarings like thunder were heard\r\nat a distance as the islands split and cracked in every direction. We were\r\nin the most imminent peril, but as we could only remain passive, my chief\r\nattention was occupied by my unfortunate guest whose illness increased in\r\nsuch a degree that he was entirely confined to his bed. The ice cracked\r\nbehind us and was driven with force towards the north; a breeze sprang from\r\nthe west, and on the 11th the passage towards the south became perfectly\r\nfree. When the sailors saw this and that their return to their native\r\ncountry was apparently assured, a shout of tumultuous joy broke from them,\r\nloud and long-continued. Frankenstein, who was dozing, awoke and asked the\r\ncause of the tumult. “They shout,” I said, “because they\r\nwill soon return to England.”\r\n\r\n“Do you, then, really return?”\r\n\r\n“Alas! Yes; I cannot withstand their demands. I cannot lead them\r\nunwillingly to danger, and I must return.”\r\n\r\n“Do so, if you will; but I will not. You may give up your purpose, but\r\nmine is assigned to me by Heaven, and I dare not. I am weak, but\r\nsurely the spirits who assist my vengeance will endow me with\r\nsufficient strength.” Saying this, he endeavoured to spring from the\r\nbed, but the exertion was too great for him; he fell back and fainted.\r\n\r\nIt was long before he was restored, and I often thought that life was\r\nentirely extinct. At length he opened his eyes; he breathed with\r\ndifficulty and was unable to speak. The surgeon gave him a composing\r\ndraught and ordered us to leave him undisturbed. In the meantime he\r\ntold me that my friend had certainly not many hours to live.\r\n\r\nHis sentence was pronounced, and I could only grieve and be patient. I sat\r\nby his bed, watching him; his eyes were closed, and I thought he slept; but\r\npresently he called to me in a feeble voice, and bidding me come near,\r\nsaid, “Alas! The strength I relied on is gone; I feel that I shall\r\nsoon die, and he, my enemy and persecutor, may still be in being. Think\r\nnot, Walton, that in the last moments of my existence I feel that burning\r\nhatred and ardent desire of revenge I once expressed; but I feel myself\r\njustified in desiring the death of my adversary. During these last days I\r\nhave been occupied in examining my past conduct; nor do I find it blamable.\r\nIn a fit of enthusiastic madness I created a rational creature and was\r\nbound towards him to assure, as far as was in my power, his happiness and\r\nwell-being. This was my duty, but there was another still paramount to\r\nthat. My duties towards the beings of my own species had greater claims to\r\nmy attention because they included a greater proportion of happiness or\r\nmisery. Urged by this view, I refused, and I did right in refusing, to\r\ncreate a companion for the first creature. He showed unparalleled malignity\r\nand selfishness in evil; he destroyed my friends; he devoted to destruction\r\nbeings who possessed exquisite sensations, happiness, and wisdom; nor do I\r\nknow where this thirst for vengeance may end. Miserable himself that he may\r\nrender no other wretched, he ought to die. The task of his destruction was\r\nmine, but I have failed. When actuated by selfish and vicious motives, I\r\nasked you to undertake my unfinished work, and I renew this request now,\r\nwhen I am only induced by reason and virtue.\r\n\r\n“Yet I cannot ask you to renounce your country and friends to fulfil\r\nthis task; and now that you are returning to England, you will have\r\nlittle chance of meeting with him. But the consideration of these\r\npoints, and the well balancing of what you may esteem your duties, I\r\nleave to you; my judgment and ideas are already disturbed by the near\r\napproach of death. I dare not ask you to do what I think right, for I\r\nmay still be misled by passion.\r\n\r\n“That he should live to be an instrument of mischief disturbs me; in\r\nother respects, this hour, when I momentarily expect my release, is the\r\nonly happy one which I have enjoyed for several years. The forms of\r\nthe beloved dead flit before me, and I hasten to their arms. Farewell,\r\nWalton! Seek happiness in tranquillity and avoid ambition, even if it\r\nbe only the apparently innocent one of distinguishing yourself in\r\nscience and discoveries. Yet why do I say this? I have myself been\r\nblasted in these hopes, yet another may succeed.”\r\n\r\nHis voice became fainter as he spoke, and at length, exhausted by his\r\neffort, he sank into silence. About half an hour afterwards he\r\nattempted again to speak but was unable; he pressed my hand feebly, and\r\nhis eyes closed for ever, while the irradiation of a gentle smile passed\r\naway from his lips.\r\n\r\nMargaret, what comment can I make on the untimely extinction of this\r\nglorious spirit? What can I say that will enable you to understand the\r\ndepth of my sorrow? All that I should express would be inadequate and\r\nfeeble. My tears flow; my mind is overshadowed by a cloud of\r\ndisappointment. But I journey towards England, and I may there find\r\nconsolation.\r\n\r\nI am interrupted. What do these sounds portend? It is midnight; the\r\nbreeze blows fairly, and the watch on deck scarcely stir. Again there\r\nis a sound as of a human voice, but hoarser; it comes from the cabin\r\nwhere the remains of Frankenstein still lie. I must arise and examine.\r\nGood night, my sister.\r\n\r\nGreat God! what a scene has just taken place! I am yet dizzy with the\r\nremembrance of it. I hardly know whether I shall have the power to detail\r\nit; yet the tale which I have recorded would be incomplete without this\r\nfinal and wonderful catastrophe.\r\n\r\nI entered the cabin where lay the remains of my ill-fated and admirable\r\nfriend. Over him hung a form which I cannot find words to\r\ndescribe—gigantic in stature, yet uncouth and distorted in its\r\nproportions. As he hung over the coffin, his face was concealed by long\r\nlocks of ragged hair; but one vast hand was extended, in colour and\r\napparent texture like that of a mummy. When he heard the sound of my\r\napproach, he ceased to utter exclamations of grief and horror and sprung\r\ntowards the window. Never did I behold a vision so horrible as his face, of\r\nsuch loathsome yet appalling hideousness. I shut my eyes involuntarily and\r\nendeavoured to recollect what were my duties with regard to this destroyer.\r\nI called on him to stay.\r\n\r\nHe paused, looking on me with wonder, and again turning towards the\r\nlifeless form of his creator, he seemed to forget my presence, and\r\nevery feature and gesture seemed instigated by the wildest rage of some\r\nuncontrollable passion.\r\n\r\n“That is also my victim!” he exclaimed. “In his murder my\r\ncrimes are consummated; the miserable series of my being is wound to its\r\nclose! Oh, Frankenstein! Generous and self-devoted being! What does it\r\navail that I now ask thee to pardon me? I, who irretrievably destroyed thee\r\nby destroying all thou lovedst. Alas! He is cold, he cannot answer\r\nme.”\r\n\r\nHis voice seemed suffocated, and my first impulses, which had suggested to\r\nme the duty of obeying the dying request of my friend in destroying his\r\nenemy, were now suspended by a mixture of curiosity and compassion. I\r\napproached this tremendous being; I dared not again raise my eyes to his\r\nface, there was something so scaring and unearthly in his ugliness. I\r\nattempted to speak, but the words died away on my lips. The monster\r\ncontinued to utter wild and incoherent self-reproaches. At length I\r\ngathered resolution to address him in a pause of the tempest of his passion.\r\n\r\n“Your repentance,” I said, “is now superfluous. If you\r\nhad listened to the voice of conscience and heeded the stings of remorse\r\nbefore you had urged your diabolical vengeance to this extremity,\r\nFrankenstein would yet have lived.”\r\n\r\n“And do you dream?” said the dæmon. “Do you think that I was then\r\ndead to agony and remorse? He,” he continued, pointing to the corpse,\r\n“he suffered not in the consummation of the deed. Oh! Not the\r\nten-thousandth portion of the anguish that was mine during the\r\nlingering detail of its execution. A frightful selfishness hurried me\r\non, while my heart was poisoned with remorse. Think you that the\r\ngroans of Clerval were music to my ears? My heart was fashioned to be\r\nsusceptible of love and sympathy, and when wrenched by misery to vice\r\nand hatred, it did not endure the violence of the change without\r\ntorture such as you cannot even imagine.\r\n\r\n“After the murder of Clerval I returned to Switzerland, heart-broken\r\nand overcome. I pitied Frankenstein; my pity amounted to horror; I\r\nabhorred myself. But when I discovered that he, the author at once of\r\nmy existence and of its unspeakable torments, dared to hope for\r\nhappiness, that while he accumulated wretchedness and despair upon me\r\nhe sought his own enjoyment in feelings and passions from the\r\nindulgence of which I was for ever barred, then impotent envy and bitter\r\nindignation filled me with an insatiable thirst for vengeance. I\r\nrecollected my threat and resolved that it should be accomplished. I\r\nknew that I was preparing for myself a deadly torture, but I was the\r\nslave, not the master, of an impulse which I detested yet could not\r\ndisobey. Yet when she died! Nay, then I was not miserable. I had\r\ncast off all feeling, subdued all anguish, to riot in the excess of my\r\ndespair. Evil thenceforth became my good. Urged thus far, I had no\r\nchoice but to adapt my nature to an element which I had willingly\r\nchosen. The completion of my demoniacal design became an insatiable\r\npassion. And now it is ended; there is my last victim!”\r\n\r\nI was at first touched by the expressions of his misery; yet, when I called\r\nto mind what Frankenstein had said of his powers of eloquence and\r\npersuasion, and when I again cast my eyes on the lifeless form of my\r\nfriend, indignation was rekindled within me. “Wretch!” I said.\r\n“It is well that you come here to whine over the desolation that you\r\nhave made. You throw a torch into a pile of buildings, and when they are\r\nconsumed, you sit among the ruins and lament the fall. Hypocritical fiend!\r\nIf he whom you mourn still lived, still would he be the object, again would\r\nhe become the prey, of your accursed vengeance. It is not pity that you\r\nfeel; you lament only because the victim of your malignity is withdrawn\r\nfrom your power.”\r\n\r\n“Oh, it is not thus—not thus,” interrupted the being.\r\n“Yet such must be the impression conveyed to you by what appears to\r\nbe the purport of my actions. Yet I seek not a fellow feeling in my misery.\r\nNo sympathy may I ever find. When I first sought it, it was the love of\r\nvirtue, the feelings of happiness and affection with which my whole being\r\noverflowed, that I wished to be participated. But now that virtue has\r\nbecome to me a shadow, and that happiness and affection are turned into\r\nbitter and loathing despair, in what should I seek for sympathy? I am\r\ncontent to suffer alone while my sufferings shall endure; when I die, I am\r\nwell satisfied that abhorrence and opprobrium should load my memory. Once\r\nmy fancy was soothed with dreams of virtue, of fame, and of enjoyment. Once\r\nI falsely hoped to meet with beings who, pardoning my outward form, would\r\nlove me for the excellent qualities which I was capable of unfolding. I was\r\nnourished with high thoughts of honour and devotion. But now crime has\r\ndegraded me beneath the meanest animal. No guilt, no mischief, no\r\nmalignity, no misery, can be found comparable to mine. When I run over the\r\nfrightful catalogue of my sins, I cannot believe that I am the same\r\ncreature whose thoughts were once filled with sublime and transcendent\r\nvisions of the beauty and the majesty of goodness. But it is even so; the\r\nfallen angel becomes a malignant devil. Yet even that enemy of God and man\r\nhad friends and associates in his desolation; I am alone.\r\n\r\n“You, who call Frankenstein your friend, seem to have a knowledge of my\r\ncrimes and his misfortunes. But in the detail which he gave you of them\r\nhe could not sum up the hours and months of misery which I endured\r\nwasting in impotent passions. For while I destroyed his hopes, I did\r\nnot satisfy my own desires. They were for ever ardent and craving; still\r\nI desired love and fellowship, and I was still spurned. Was there no\r\ninjustice in this? Am I to be thought the only criminal, when all\r\nhumankind sinned against me? Why do you not hate Felix, who drove his\r\nfriend from his door with contumely? Why do you not execrate the rustic\r\nwho sought to destroy the saviour of his child? Nay, these are virtuous\r\nand immaculate beings! I, the miserable and the abandoned, am an\r\nabortion, to be spurned at, and kicked, and trampled on. Even now my\r\nblood boils at the recollection of this injustice.\r\n\r\n“But it is true that I am a wretch. I have murdered the lovely and\r\nthe helpless; I have strangled the innocent as they slept and grasped to\r\ndeath his throat who never injured me or any other living thing. I have\r\ndevoted my creator, the select specimen of all that is worthy of love and\r\nadmiration among men, to misery; I have pursued him even to that\r\nirremediable ruin. There he lies, white and cold in death. You hate me, but\r\nyour abhorrence cannot equal that with which I regard myself. I look on the\r\nhands which executed the deed; I think on the heart in which the\r\nimagination of it was conceived and long for the moment when these hands\r\nwill meet my eyes, when that imagination will haunt my thoughts no more.\r\n\r\n“Fear not that I shall be the instrument of future mischief. My work\r\nis nearly complete. Neither yours nor any man’s death is needed to\r\nconsummate the series of my being and accomplish that which must be done,\r\nbut it requires my own. Do not think that I shall be slow to perform this\r\nsacrifice. I shall quit your vessel on the ice raft which brought me\r\nthither and shall seek the most northern extremity of the globe; I shall\r\ncollect my funeral pile and consume to ashes this miserable frame, that its\r\nremains may afford no light to any curious and unhallowed wretch who would\r\ncreate such another as I have been. I shall die. I shall no longer feel the\r\nagonies which now consume me or be the prey of feelings unsatisfied, yet\r\nunquenched. He is dead who called me into being; and when I shall be no\r\nmore, the very remembrance of us both will speedily vanish. I shall no\r\nlonger see the sun or stars or feel the winds play on my cheeks. Light,\r\nfeeling, and sense will pass away; and in this condition must I find my\r\nhappiness. Some years ago, when the images which this world affords first\r\nopened upon me, when I felt the cheering warmth of summer and heard the\r\nrustling of the leaves and the warbling of the birds, and these were all to\r\nme, I should have wept to die; now it is my only consolation. Polluted by\r\ncrimes and torn by the bitterest remorse, where can I find rest but in\r\ndeath?\r\n\r\n“Farewell! I leave you, and in you the last of humankind whom these\r\neyes will ever behold. Farewell, Frankenstein! If thou wert yet alive\r\nand yet cherished a desire of revenge against me, it would be better\r\nsatiated in my life than in my destruction. But it was not so; thou\r\ndidst seek my extinction, that I might not cause greater wretchedness;\r\nand if yet, in some mode unknown to me, thou hadst not ceased to think\r\nand feel, thou wouldst not desire against me a vengeance greater than\r\nthat which I feel. Blasted as thou wert, my agony was still superior to\r\nthine, for the bitter sting of remorse will not cease to rankle in my\r\nwounds until death shall close them for ever.\r\n\r\n“But soon,” he cried with sad and solemn enthusiasm, “I\r\nshall die, and what I now feel be no longer felt. Soon these burning\r\nmiseries will be extinct. I shall ascend my funeral pile triumphantly and\r\nexult in the agony of the torturing flames. The light of that conflagration\r\nwill fade away; my ashes will be swept into the sea by the winds. My spirit\r\nwill sleep in peace, or if it thinks, it will not surely think thus.\r\nFarewell.”\r\n\r\nHe sprang from the cabin-window as he said this, upon the ice raft\r\nwhich lay close to the vessel. He was soon borne away by the waves and\r\nlost in darkness and distance.\r\n\r\n\r\n\r\n\r\n*** END OF THE PROJECT GUTENBERG EBOOK FRANKENSTEIN; OR, THE MODERN PROMETHEUS ***\r\n\r\n\r\n \r\n\r\nUpdated editions will replace the previous one—the old editions will\r\nbe renamed.\r\n\r\nCreating the works from print editions not protected by U.S. copyright\r\nlaw means that no one owns a United States copyright in these works,\r\nso the Foundation (and you!) can copy and distribute it in the United\r\nStates without permission and without paying copyright\r\nroyalties. Special rules, set forth in the General Terms of Use part\r\nof this license, apply to copying and distributing Project\r\nGutenberg™ electronic works to protect the PROJECT GUTENBERG™\r\nconcept and trademark. Project Gutenberg is a registered trademark,\r\nand may not be used if you charge for an eBook, except by following\r\nthe terms of the trademark license, including paying royalties for use\r\nof the Project Gutenberg trademark. If you do not charge anything for\r\ncopies of this eBook, complying with the trademark license is very\r\neasy. You may use this eBook for nearly any purpose such as creation\r\nof derivative works, reports, performances and research. Project\r\nGutenberg eBooks may be modified and printed and given away—you may\r\ndo practically ANYTHING in the United States with eBooks not protected\r\nby U.S. copyright law. Redistribution is subject to the trademark\r\nlicense, especially commercial redistribution.\r\n\r\n\r\nSTART: FULL LICENSE\r\n\r\nTHE FULL PROJECT GUTENBERG LICENSE\r\n\r\nPLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK\r\n\r\nTo protect the Project Gutenberg™ mission of promoting the free\r\ndistribution of electronic works, by using or distributing this work\r\n(or any other work associated in any way with the phrase “Project\r\nGutenberg”), you agree to comply with all the terms of the Full\r\nProject Gutenberg™ License available with this file or online at\r\nwww.gutenberg.org/license.\r\n\r\nSection 1. General Terms of Use and Redistributing Project Gutenberg™\r\nelectronic works\r\n\r\n1.A. By reading or using any part of this Project Gutenberg™\r\nelectronic work, you indicate that you have read, understand, agree to\r\nand accept all the terms of this license and intellectual property\r\n(trademark/copyright) agreement. If you do not agree to abide by all\r\nthe terms of this agreement, you must cease using and return or\r\ndestroy all copies of Project Gutenberg™ electronic works in your\r\npossession. If you paid a fee for obtaining a copy of or access to a\r\nProject Gutenberg™ electronic work and you do not agree to be bound\r\nby the terms of this agreement, you may obtain a refund from the person\r\nor entity to whom you paid the fee as set forth in paragraph 1.E.8.\r\n\r\n1.B. “Project Gutenberg” is a registered trademark. It may only be\r\nused on or associated in any way with an electronic work by people who\r\nagree to be bound by the terms of this agreement. There are a few\r\nthings that you can do with most Project Gutenberg™ electronic works\r\neven without complying with the full terms of this agreement. See\r\nparagraph 1.C below. There are a lot of things you can do with Project\r\nGutenberg™ electronic works if you follow the terms of this\r\nagreement and help preserve free future access to Project Gutenberg™\r\nelectronic works. See paragraph 1.E below.\r\n\r\n1.C. The Project Gutenberg Literary Archive Foundation (“the\r\nFoundation” or PGLAF), owns a compilation copyright in the collection\r\nof Project Gutenberg™ electronic works. Nearly all the individual\r\nworks in the collection are in the public domain in the United\r\nStates. If an individual work is unprotected by copyright law in the\r\nUnited States and you are located in the United States, we do not\r\nclaim a right to prevent you from copying, distributing, performing,\r\ndisplaying or creating derivative works based on the work as long as\r\nall references to Project Gutenberg are removed. Of course, we hope\r\nthat you will support the Project Gutenberg™ mission of promoting\r\nfree access to electronic works by freely sharing Project Gutenberg™\r\nworks in compliance with the terms of this agreement for keeping the\r\nProject Gutenberg™ name associated with the work. You can easily\r\ncomply with the terms of this agreement by keeping this work in the\r\nsame format with its attached full Project Gutenberg™ License when\r\nyou share it without charge with others.\r\n\r\n1.D. The copyright laws of the place where you are located also govern\r\nwhat you can do with this work. Copyright laws in most countries are\r\nin a constant state of change. If you are outside the United States,\r\ncheck the laws of your country in addition to the terms of this\r\nagreement before downloading, copying, displaying, performing,\r\ndistributing or creating derivative works based on this work or any\r\nother Project Gutenberg™ work. The Foundation makes no\r\nrepresentations concerning the copyright status of any work in any\r\ncountry other than the United States.\r\n\r\n1.E. Unless you have removed all references to Project Gutenberg:\r\n\r\n1.E.1. The following sentence, with active links to, or other\r\nimmediate access to, the full Project Gutenberg™ License must appear\r\nprominently whenever any copy of a Project Gutenberg™ work (any work\r\non which the phrase “Project Gutenberg” appears, or with which the\r\nphrase “Project Gutenberg” is associated) is accessed, displayed,\r\nperformed, viewed, copied or distributed:\r\n\r\n This eBook is for the use of anyone anywhere in the United States and most\r\n other parts of the world at no cost and with almost no restrictions\r\n whatsoever. You may copy it, give it away or re-use it under the terms\r\n of the Project Gutenberg License included with this eBook or online\r\n at www.gutenberg.org. If you\r\n are not located in the United States, you will have to check the laws\r\n of the country where you are located before using this eBook.\r\n \r\n1.E.2. If an individual Project Gutenberg™ electronic work is\r\nderived from texts not protected by U.S. copyright law (does not\r\ncontain a notice indicating that it is posted with permission of the\r\ncopyright holder), the work can be copied and distributed to anyone in\r\nthe United States without paying any fees or charges. If you are\r\nredistributing or providing access to a work with the phrase “Project\r\nGutenberg” associated with or appearing on the work, you must comply\r\neither with the requirements of paragraphs 1.E.1 through 1.E.7 or\r\nobtain permission for the use of the work and the Project Gutenberg™\r\ntrademark as set forth in paragraphs 1.E.8 or 1.E.9.\r\n\r\n1.E.3. If an individual Project Gutenberg™ electronic work is posted\r\nwith the permission of the copyright holder, your use and distribution\r\nmust comply with both paragraphs 1.E.1 through 1.E.7 and any\r\nadditional terms imposed by the copyright holder. Additional terms\r\nwill be linked to the Project Gutenberg™ License for all works\r\nposted with the permission of the copyright holder found at the\r\nbeginning of this work.\r\n\r\n1.E.4. Do not unlink or detach or remove the full Project Gutenberg™\r\nLicense terms from this work, or any files containing a part of this\r\nwork or any other work associated with Project Gutenberg™.\r\n\r\n1.E.5. Do not copy, display, perform, distribute or redistribute this\r\nelectronic work, or any part of this electronic work, without\r\nprominently displaying the sentence set forth in paragraph 1.E.1 with\r\nactive links or immediate access to the full terms of the Project\r\nGutenberg™ License.\r\n\r\n1.E.6. You may convert to and distribute this work in any binary,\r\ncompressed, marked up, nonproprietary or proprietary form, including\r\nany word processing or hypertext form. However, if you provide access\r\nto or distribute copies of a Project Gutenberg™ work in a format\r\nother than “Plain Vanilla ASCII” or other format used in the official\r\nversion posted on the official Project Gutenberg™ website\r\n(www.gutenberg.org), you must, at no additional cost, fee or expense\r\nto the user, provide a copy, a means of exporting a copy, or a means\r\nof obtaining a copy upon request, of the work in its original “Plain\r\nVanilla ASCII” or other form. Any alternate format must include the\r\nfull Project Gutenberg™ License as specified in paragraph 1.E.1.\r\n\r\n1.E.7. Do not charge a fee for access to, viewing, displaying,\r\nperforming, copying or distributing any Project Gutenberg™ works\r\nunless you comply with paragraph 1.E.8 or 1.E.9.\r\n\r\n1.E.8. You may charge a reasonable fee for copies of or providing\r\naccess to or distributing Project Gutenberg™ electronic works\r\nprovided that:\r\n\r\n • You pay a royalty fee of 20% of the gross profits you derive from\r\n the use of Project Gutenberg™ works calculated using the method\r\n you already use to calculate your applicable taxes. The fee is owed\r\n to the owner of the Project Gutenberg™ trademark, but he has\r\n agreed to donate royalties under this paragraph to the Project\r\n Gutenberg Literary Archive Foundation. Royalty payments must be paid\r\n within 60 days following each date on which you prepare (or are\r\n legally required to prepare) your periodic tax returns. Royalty\r\n payments should be clearly marked as such and sent to the Project\r\n Gutenberg Literary Archive Foundation at the address specified in\r\n Section 4, “Information about donations to the Project Gutenberg\r\n Literary Archive Foundation.”\r\n \r\n • You provide a full refund of any money paid by a user who notifies\r\n you in writing (or by e-mail) within 30 days of receipt that s/he\r\n does not agree to the terms of the full Project Gutenberg™\r\n License. You must require such a user to return or destroy all\r\n copies of the works possessed in a physical medium and discontinue\r\n all use of and all access to other copies of Project Gutenberg™\r\n works.\r\n \r\n • You provide, in accordance with paragraph 1.F.3, a full refund of\r\n any money paid for a work or a replacement copy, if a defect in the\r\n electronic work is discovered and reported to you within 90 days of\r\n receipt of the work.\r\n \r\n • You comply with all other terms of this agreement for free\r\n distribution of Project Gutenberg™ works.\r\n \r\n\r\n1.E.9. If you wish to charge a fee or distribute a Project\r\nGutenberg™ electronic work or group of works on different terms than\r\nare set forth in this agreement, you must obtain permission in writing\r\nfrom the Project Gutenberg Literary Archive Foundation, the manager of\r\nthe Project Gutenberg™ trademark. Contact the Foundation as set\r\nforth in Section 3 below.\r\n\r\n1.F.\r\n\r\n1.F.1. Project Gutenberg volunteers and employees expend considerable\r\neffort to identify, do copyright research on, transcribe and proofread\r\nworks not protected by U.S. copyright law in creating the Project\r\nGutenberg™ collection. Despite these efforts, Project Gutenberg™\r\nelectronic works, and the medium on which they may be stored, may\r\ncontain “Defects,” such as, but not limited to, incomplete, inaccurate\r\nor corrupt data, transcription errors, a copyright or other\r\nintellectual property infringement, a defective or damaged disk or\r\nother medium, a computer virus, or computer codes that damage or\r\ncannot be read by your equipment.\r\n\r\n1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the “Right\r\nof Replacement or Refund” described in paragraph 1.F.3, the Project\r\nGutenberg Literary Archive Foundation, the owner of the Project\r\nGutenberg™ trademark, and any other party distributing a Project\r\nGutenberg™ electronic work under this agreement, disclaim all\r\nliability to you for damages, costs and expenses, including legal\r\nfees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT\r\nLIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE\r\nPROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE\r\nTRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE\r\nLIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR\r\nINCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH\r\nDAMAGE.\r\n\r\n1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a\r\ndefect in this electronic work within 90 days of receiving it, you can\r\nreceive a refund of the money (if any) you paid for it by sending a\r\nwritten explanation to the person you received the work from. If you\r\nreceived the work on a physical medium, you must return the medium\r\nwith your written explanation. The person or entity that provided you\r\nwith the defective work may elect to provide a replacement copy in\r\nlieu of a refund. If you received the work electronically, the person\r\nor entity providing it to you may choose to give you a second\r\nopportunity to receive the work electronically in lieu of a refund. If\r\nthe second copy is also defective, you may demand a refund in writing\r\nwithout further opportunities to fix the problem.\r\n\r\n1.F.4. Except for the limited right of replacement or refund set forth\r\nin paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO\r\nOTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT\r\nLIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.\r\n\r\n1.F.5. Some states do not allow disclaimers of certain implied\r\nwarranties or the exclusion or limitation of certain types of\r\ndamages. If any disclaimer or limitation set forth in this agreement\r\nviolates the law of the state applicable to this agreement, the\r\nagreement shall be interpreted to make the maximum disclaimer or\r\nlimitation permitted by the applicable state law. The invalidity or\r\nunenforceability of any provision of this agreement shall not void the\r\nremaining provisions.\r\n\r\n1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the\r\ntrademark owner, any agent or employee of the Foundation, anyone\r\nproviding copies of Project Gutenberg™ electronic works in\r\naccordance with this agreement, and any volunteers associated with the\r\nproduction, promotion and distribution of Project Gutenberg™\r\nelectronic works, harmless from all liability, costs and expenses,\r\nincluding legal fees, that arise directly or indirectly from any of\r\nthe following which you do or cause to occur: (a) distribution of this\r\nor any Project Gutenberg™ work, (b) alteration, modification, or\r\nadditions or deletions to any Project Gutenberg™ work, and (c) any\r\nDefect you cause.\r\n\r\nSection 2. Information about the Mission of Project Gutenberg™\r\n\r\nProject Gutenberg™ is synonymous with the free distribution of\r\nelectronic works in formats readable by the widest variety of\r\ncomputers including obsolete, old, middle-aged and new computers. It\r\nexists because of the efforts of hundreds of volunteers and donations\r\nfrom people in all walks of life.\r\n\r\nVolunteers and financial support to provide volunteers with the\r\nassistance they need are critical to reaching Project Gutenberg™’s\r\ngoals and ensuring that the Project Gutenberg™ collection will\r\nremain freely available for generations to come. In 2001, the Project\r\nGutenberg Literary Archive Foundation was created to provide a secure\r\nand permanent future for Project Gutenberg™ and future\r\ngenerations. To learn more about the Project Gutenberg Literary\r\nArchive Foundation and how your efforts and donations can help, see\r\nSections 3 and 4 and the Foundation information page at www.gutenberg.org.\r\n\r\nSection 3. Information about the Project Gutenberg Literary Archive Foundation\r\n\r\nThe Project Gutenberg Literary Archive Foundation is a non-profit\r\n501(c)(3) educational corporation organized under the laws of the\r\nstate of Mississippi and granted tax exempt status by the Internal\r\nRevenue Service. The Foundation’s EIN or federal tax identification\r\nnumber is 64-6221541. Contributions to the Project Gutenberg Literary\r\nArchive Foundation are tax deductible to the full extent permitted by\r\nU.S. federal laws and your state’s laws.\r\n\r\nThe Foundation’s business office is located at 809 North 1500 West,\r\nSalt Lake City, UT 84116, (801) 596-1887. Email contact links and up\r\nto date contact information can be found at the Foundation’s website\r\nand official page at www.gutenberg.org/contact\r\n\r\nSection 4. Information about Donations to the Project Gutenberg\r\nLiterary Archive Foundation\r\n\r\nProject Gutenberg™ depends upon and cannot survive without widespread\r\npublic support and donations to carry out its mission of\r\nincreasing the number of public domain and licensed works that can be\r\nfreely distributed in machine-readable form accessible by the widest\r\narray of equipment including outdated equipment. Many small donations\r\n($1 to $5,000) are particularly important to maintaining tax exempt\r\nstatus with the IRS.\r\n\r\nThe Foundation is committed to complying with the laws regulating\r\ncharities and charitable donations in all 50 states of the United\r\nStates. Compliance requirements are not uniform and it takes a\r\nconsiderable effort, much paperwork and many fees to meet and keep up\r\nwith these requirements. We do not solicit donations in locations\r\nwhere we have not received written confirmation of compliance. To SEND\r\nDONATIONS or determine the status of compliance for any particular state\r\nvisit www.gutenberg.org/donate.\r\n\r\nWhile we cannot and do not solicit contributions from states where we\r\nhave not met the solicitation requirements, we know of no prohibition\r\nagainst accepting unsolicited donations from donors in such states who\r\napproach us with offers to donate.\r\n\r\nInternational donations are gratefully accepted, but we cannot make\r\nany statements concerning tax treatment of donations received from\r\noutside the United States. U.S. laws alone swamp our small staff.\r\n\r\nPlease check the Project Gutenberg web pages for current donation\r\nmethods and addresses. Donations are accepted in a number of other\r\nways including checks, online payments and credit card donations. To\r\ndonate, please visit: www.gutenberg.org/donate.\r\n\r\nSection 5. General Information About Project Gutenberg™ electronic works\r\n\r\nProfessor Michael S. Hart was the originator of the Project\r\nGutenberg™ concept of a library of electronic works that could be\r\nfreely shared with anyone. For forty years, he produced and\r\ndistributed Project Gutenberg™ eBooks with only a loose network of\r\nvolunteer support.\r\n\r\nProject Gutenberg™ eBooks are often created from several printed\r\neditions, all of which are confirmed as not protected by copyright in\r\nthe U.S. unless a copyright notice is included. Thus, we do not\r\nnecessarily keep eBooks in compliance with any particular paper\r\nedition.\r\n\r\nMost people start at our website which has the main PG search\r\nfacility: www.gutenberg.org.\r\n\r\nThis website includes information about Project Gutenberg™,\r\nincluding how to make donations to the Project Gutenberg Literary\r\nArchive Foundation, how to help produce our new eBooks, and how to\r\nsubscribe to our email newsletter to hear about new eBooks.\r\n\r\n\r"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZX8k78tUCuL2FhVLxaXjykW2x58Nlx03HpMwXKlimuOLhAdDh+6S/EYN9l56r6nvuFzq56bTvyD7YdSJhP41Cg=="}],"memo":""},"metadata":{"timestamp":"1732688284"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["The Project Gutenberg eBook of Frankenstein; Or, The Modern Prometheus\r\n \r\nThis ebook is for the use of anyone anywhere in the United States and\r\nmost other parts of the world at no cost and with almost no restrictions\r\nwhatsoever. You may copy it, give it away or re-use it under the terms\r\nof the Project Gutenberg License included with this ebook or online\r\nat www.gutenberg.org. If you are not located in the United States,\r\nyou will have to check the laws of the country where you are located\r\nbefore using this eBook.\r\n\r\nTitle: Frankenstein; Or, The Modern Prometheus\r\n\r\nAuthor: Mary Wollstonecraft Shelley\r\n\r\nRelease date: October 1, 1993 [eBook #84]\r\n Most recently updated: November 5, 2024\r\n\r\nLanguage: English\r\n\r\nCredits: Judith Boss, Christy Phillips, Lynn Hanninen and David Meltzer. HTML version by Al Haines.\r\n Further corrections by Menno de Leeuw.\r\n\r\n\r\n*** START OF THE PROJECT GUTENBERG EBOOK FRANKENSTEIN; OR, THE MODERN PROMETHEUS ***\r\n\r\nFrankenstein;\r\n\r\nor, the Modern Prometheus\r\n\r\nby Mary Wollstonecraft (Godwin) Shelley\r\n\r\n\r\n CONTENTS\r\n\r\n Letter 1\r\n Letter 2\r\n Letter 3\r\n Letter 4\r\n Chapter 1\r\n Chapter 2\r\n Chapter 3\r\n Chapter 4\r\n Chapter 5\r\n Chapter 6\r\n Chapter 7\r\n Chapter 8\r\n Chapter 9\r\n Chapter 10\r\n Chapter 11\r\n Chapter 12\r\n Chapter 13\r\n Chapter 14\r\n Chapter 15\r\n Chapter 16\r\n Chapter 17\r\n Chapter 18\r\n Chapter 19\r\n Chapter 20\r\n Chapter 21\r\n Chapter 22\r\n Chapter 23\r\n Chapter 24\r\n\r\n\r\n\r\n\r\nLetter 1\r\n\r\n_To Mrs. Saville, England._\r\n\r\n\r\nSt. Petersburgh, Dec. 11th, 17—.\r\n\r\n\r\nYou will rejoice to hear that no disaster has accompanied the\r\ncommencement of an enterprise which you have regarded with such evil\r\nforebodings. I arrived here yesterday, and my first task is to assure\r\nmy dear sister of my welfare and increasing confidence in the success\r\nof my undertaking.\r\n\r\nI am already far north of London, and as I walk in the streets of\r\nPetersburgh, I feel a cold northern breeze play upon my cheeks, which\r\nbraces my nerves and fills me with delight. Do you understand this\r\nfeeling? This breeze, which has travelled from the regions towards\r\nwhich I am advancing, gives me a foretaste of those icy climes.\r\nInspirited by this wind of promise, my daydreams become more fervent\r\nand vivid. I try in vain to be persuaded that the pole is the seat of\r\nfrost and desolation; it ever presents itself to my imagination as the\r\nregion of beauty and delight. There, Margaret, the sun is for ever\r\nvisible, its broad disk just skirting the horizon and diffusing a\r\nperpetual splendour. There—for with your leave, my sister, I will put\r\nsome trust in preceding navigators—there snow and frost are banished;\r\nand, sailing over a calm sea, we may be wafted to a land surpassing in\r\nwonders and in beauty every region hitherto discovered on the habitable\r\nglobe. Its productions and features may be without example, as the\r\nphenomena of the heavenly bodies undoubtedly are in those undiscovered\r\nsolitudes. What may not be expected in a country of eternal light? I\r\nmay there discover the wondrous power which attracts the needle and may\r\nregulate a thousand celestial observations that require only this\r\nvoyage to render their seeming eccentricities consistent for ever. I\r\nshall satiate my ardent curiosity with the sight of a part of the world\r\nnever before visited, and may tread a land never before imprinted by\r\nthe foot of man. These are my enticements, and they are sufficient to\r\nconquer all fear of danger or death and to induce me to commence this\r\nlaborious voyage with the joy a child feels when he embarks in a little\r\nboat, with his holiday mates, on an expedition of discovery up his\r\nnative river. But supposing all these conjectures to be false, you\r\ncannot contest the inestimable benefit which I shall confer on all\r\nmankind, to the last generation, by discovering a passage near the pole\r\nto those countries, to reach which at present so many months are\r\nrequisite; or by ascertaining the secret of the magnet, which, if at\r\nall possible, can only be effected by an undertaking such as mine.\r\n\r\nThese reflections have dispelled the agitation with which I began my\r\nletter, and I feel my heart glow with an enthusiasm which elevates me\r\nto heaven, for nothing contributes so much to tranquillise the mind as\r\na steady purpose—a point on which the soul may fix its intellectual\r\neye. This expedition has been the favourite dream of my early years. I\r\nhave read with ardour the accounts of the various voyages which have\r\nbeen made in the prospect of arriving at the North Pacific Ocean\r\nthrough the seas which surround the pole. You may remember that a\r\nhistory of all the voyages made for purposes of discovery composed the\r\nwhole of our good Uncle Thomas’ library. My education was neglected,\r\nyet I was passionately fond of reading. These volumes were my study\r\nday and night, and my familiarity with them increased that regret which\r\nI had felt, as a child, on learning that my father’s dying injunction\r\nhad forbidden my uncle to allow me to embark in a seafaring life.\r\n\r\nThese visions faded when I perused, for the first time, those poets\r\nwhose effusions entranced my soul and lifted it to heaven. I also\r\nbecame a poet and for one year lived in a paradise of my own creation;\r\nI imagined that I also might obtain a niche in the temple where the\r\nnames of Homer and Shakespeare are consecrated. You are well\r\nacquainted with my failure and how heavily I bore the disappointment.\r\nBut just at that time I inherited the fortune of my cousin, and my\r\nthoughts were turned into the channel of their earlier bent.\r\n\r\nSix years have passed since I resolved on my present undertaking. I\r\ncan, even now, remember the hour from which I dedicated myself to this\r\ngreat enterprise. I commenced by inuring my body to hardship. I\r\naccompanied the whale-fishers on several expeditions to the North Sea;\r\nI voluntarily endured cold, famine, thirst, and want of sleep; I often\r\nworked harder than the common sailors during the day and devoted my\r\nnights to the study of mathematics, the theory of medicine, and those\r\nbranches of physical science from which a naval adventurer might derive\r\nthe greatest practical advantage. Twice I actually hired myself as an\r\nunder-mate in a Greenland whaler, and acquitted myself to admiration. I\r\nmust own I felt a little proud when my captain offered me the second\r\ndignity in the vessel and entreated me to remain with the greatest\r\nearnestness, so valuable did he consider my services.\r\n\r\nAnd now, dear Margaret, do I not deserve to accomplish some great purpose?\r\nMy life might have been passed in ease and luxury, but I preferred glory to\r\nevery enticement that wealth placed in my path. Oh, that some encouraging\r\nvoice would answer in the affirmative! My courage and my resolution is\r\nfirm; but my hopes fluctuate, and my spirits are often depressed. I am\r\nabout to proceed on a long and difficult voyage, the emergencies of which\r\nwill demand all my fortitude: I am required not only to raise the spirits\r\nof others, but sometimes to sustain my own, when theirs are failing.\r\n\r\nThis is the most favourable period for travelling in Russia. They fly\r\nquickly over the snow in their sledges; the motion is pleasant, and, in\r\nmy opinion, far more agreeable than that of an English stagecoach. The\r\ncold is not excessive, if you are wrapped in furs—a dress which I have\r\nalready adopted, for there is a great difference between walking the\r\ndeck and remaining seated motionless for hours, when no exercise\r\nprevents the blood from actually freezing in your veins. I have no\r\nambition to lose my life on the post-road between St. Petersburgh and\r\nArchangel.\r\n\r\nI shall depart for the latter town in a fortnight or three weeks; and my\r\nintention is to hire a ship there, which can easily be done by paying the\r\ninsurance for the owner, and to engage as many sailors as I think necessary\r\namong those who are accustomed to the whale-fishing. I do not intend to\r\nsail until the month of June; and when shall I return? Ah, dear sister, how\r\ncan I answer this question? If I succeed, many, many months, perhaps years,\r\nwill pass before you and I may meet. If I fail, you will see me again soon,\r\nor never.\r\n\r\nFarewell, my dear, excellent Margaret. Heaven shower down blessings on you,\r\nand save me, that I may again and again testify my gratitude for all your\r\nlove and kindness.\r\n\r\nYour affectionate brother,\r\n\r\nR. Walton\r\n\r\n\r\n\r\n\r\nLetter 2\r\n\r\n_To Mrs. Saville, England._\r\n\r\nArchangel, 28th March, 17—.\r\n\r\n\r\nHow slowly the time passes here, encompassed as I am by frost and snow!\r\nYet a second step is taken towards my enterprise. I have hired a\r\nvessel and am occupied in collecting my sailors; those whom I have\r\nalready engaged appear to be men on whom I can depend and are certainly\r\npossessed of dauntless courage.\r\n\r\nBut I have one want which I have never yet been able to satisfy, and the\r\nabsence of the object of which I now feel as a most severe evil, I have no\r\nfriend, Margaret: when I am glowing with the enthusiasm of success, there\r\nwill be none to participate my joy; if I am assailed by disappointment, no\r\none will endeavour to sustain me in dejection. I shall commit my thoughts\r\nto paper, it is true; but that is a poor medium for the communication of\r\nfeeling. I desire the company of a man who could sympathise with me, whose\r\neyes would reply to mine. You may deem me romantic, my dear sister, but I\r\nbitterly feel the want of a friend. I have no one near me, gentle yet\r\ncourageous, possessed of a cultivated as well as of a capacious mind, whose\r\ntastes are like my own, to approve or amend my plans. How would such a\r\nfriend repair the faults of your poor brother! I am too ardent in execution\r\nand too impatient of difficulties. But it is a still greater evil to me\r\nthat I am self-educated: for the first fourteen years of my life I ran wild\r\non a common and read nothing but our Uncle Thomas’ books of voyages.\r\nAt that age I became acquainted with the celebrated poets of our own\r\ncountry; but it was only when it had ceased to be in my power to derive its\r\nmost important benefits from such a conviction that I perceived the\r\nnecessity of becoming acquainted with more languages than that of my native\r\ncountry. Now I am twenty-eight and am in reality more illiterate than many\r\nschoolboys of fifteen. It is true that I have thought more and that my\r\ndaydreams are more extended and magnificent, but they want (as the painters\r\ncall it) _keeping;_ and I greatly need a friend who would have sense\r\nenough not to despise me as romantic, and affection enough for me to\r\nendeavour to regulate my mind.\r\n\r\nWell, these are useless complaints; I shall certainly find no friend on the\r\nwide ocean, nor even here in Archangel, among merchants and seamen. Yet\r\nsome feelings, unallied to the dross of human nature, beat even in these\r\nrugged bosoms. My lieutenant, for instance, is a man of wonderful courage\r\nand enterprise; he is madly desirous of glory, or rather, to word my phrase\r\nmore characteristically, of advancement in his profession. He is an\r\nEnglishman, and in the midst of national and professional prejudices,\r\nunsoftened by cultivation, retains some of the noblest endowments of\r\nhumanity. I first became acquainted with him on board a whale vessel;\r\nfinding that he was unemployed in this city, I easily engaged him to assist\r\nin my enterprise.\r\n\r\nThe master is a person of an excellent disposition and is remarkable in the\r\nship for his gentleness and the mildness of his discipline. This\r\ncircumstance, added to his well-known integrity and dauntless courage, made\r\nme very desirous to engage him. A youth passed in solitude, my best years\r\nspent under your gentle and feminine fosterage, has so refined the\r\ngroundwork of my character that I cannot overcome an intense distaste to\r\nthe usual brutality exercised on board ship: I have never believed it to be\r\nnecessary, and when I heard of a mariner equally noted for his kindliness\r\nof heart and the respect and obedience paid to him by his crew, I felt\r\nmyself peculiarly fortunate in being able to secure his services. I heard\r\nof him first in rather a romantic manner, from a lady who owes to him the\r\nhappiness of her life. This, briefly, is his story. Some years ago he loved\r\na young Russian lady of moderate fortune, and having amassed a considerable\r\nsum in prize-money, the father of the girl consented to the match. He saw\r\nhis mistress once before the destined ceremony; but she was bathed in\r\ntears, and throwing herself at his feet, entreated him to spare her,\r\nconfessing at the same time that she loved another, but that he was poor,\r\nand that her father would never consent to the union. My generous friend\r\nreassured the suppliant, and on being informed of the name of her lover,\r\ninstantly abandoned his pursuit. He had already bought a farm with his\r\nmoney, on which he had designed to pass the remainder of his life; but he\r\nbestowed the whole on his rival, together with the remains of his\r\nprize-money to purchase stock, and then himself solicited the young\r\nwoman’s father to consent to her marriage with her lover. But the old\r\nman decidedly refused, thinking himself bound in honour to my friend, who,\r\nwhen he found the father inexorable, quitted his country, nor returned\r\nuntil he heard that his former mistress was married according to her\r\ninclinations. “What a noble fellow!” you will exclaim. He is\r\nso; but then he is wholly uneducated: he is as silent as a Turk, and a kind\r\nof ignorant carelessness attends him, which, while it renders his conduct\r\nthe more astonishing, detracts from the interest and sympathy which\r\notherwise he would command.\r\n\r\nYet do not suppose, because I complain a little or because I can\r\nconceive a consolation for my toils which I may never know, that I am\r\nwavering in my resolutions. Those are as fixed as fate, and my voyage\r\nis only now delayed until the weather shall permit my embarkation. The\r\nwinter has been dreadfully severe, but the spring promises well, and it\r\nis considered as a remarkably early season, so that perhaps I may sail\r\nsooner than I expected. I shall do nothing rashly: you know me\r\nsufficiently to confide in my prudence and considerateness whenever the\r\nsafety of others is committed to my care.\r\n\r\nI cannot describe to you my sensations on the near prospect of my\r\nundertaking. It is impossible to communicate to you a conception of\r\nthe trembling sensation, half pleasurable and half fearful, with which\r\nI am preparing to depart. I am going to unexplored regions, to “the\r\nland of mist and snow,” but I shall kill no albatross; therefore do not\r\nbe alarmed for my safety or if I should come back to you as worn and\r\nwoeful as the “Ancient Mariner.” You will smile at my allusion, but I\r\nwill disclose a secret. I have often attributed my attachment to, my\r\npassionate enthusiasm for, the dangerous mysteries of ocean to that\r\nproduction of the most imaginative of modern poets. There is something\r\nat work in my soul which I do not understand. I am practically\r\nindustrious—painstaking, a workman to execute with perseverance and\r\nlabour—but besides this there is a love for the marvellous, a belief\r\nin the marvellous, intertwined in all my projects, which hurries me out\r\nof the common pathways of men, even to the wild sea and unvisited\r\nregions I am about to explore.\r\n\r\nBut to return to dearer considerations. Shall I meet you again, after\r\nhaving traversed immense seas, and returned by the most southern cape of\r\nAfrica or America? I dare not expect such success, yet I cannot bear to\r\nlook on the reverse of the picture. Continue for the present to write to\r\nme by every opportunity: I may receive your letters on some occasions when\r\nI need them most to support my spirits. I love you very tenderly. \r\nRemember me with affection, should you never hear from me again.\r\n\r\nYour affectionate brother,\r\n Robert Walton\r\n\r\n\r\n\r\n\r\nLetter 3\r\n\r\n_To Mrs. Saville, England._\r\n\r\nJuly 7th, 17—.\r\n\r\n\r\nMy dear Sister,\r\n\r\nI write a few lines in haste to say that I am safe—and well advanced\r\non my voyage. This letter will reach England by a merchantman now on\r\nits homeward voyage from Archangel; more fortunate than I, who may not\r\nsee my native land, perhaps, for many years. I am, however, in good\r\nspirits: my men are bold and apparently firm of purpose, nor do the\r\nfloating sheets of ice that continually pass us, indicating the dangers\r\nof the region towards which we are advancing, appear to dismay them. We\r\nhave already reached a very high latitude; but it is the height of\r\nsummer, and although not so warm as in England, the southern gales,\r\nwhich blow us speedily towards those shores which I so ardently desire\r\nto attain, breathe a degree of renovating warmth which I had not\r\nexpected.\r\n\r\nNo incidents have hitherto befallen us that would make a figure in a\r\nletter. One or two stiff gales and the springing of a leak are\r\naccidents which experienced navigators scarcely remember to record, and\r\nI shall be well content if nothing worse happen to us during our voyage.\r\n\r\nAdieu, my dear Margaret. Be assured that for my own sake, as well as\r\nyours, I will not rashly encounter danger. I will be cool,\r\npersevering, and prudent.\r\n\r\nBut success _shall_ crown my endeavours. Wherefore not? Thus far I\r\nhave gone, tracing a secure way over the pathless seas, the very stars\r\nthemselves being witnesses and testimonies of my triumph. Why not\r\nstill proceed over the untamed yet obedient element? What can stop the\r\ndetermined heart and resolved will of man?\r\n\r\nMy swelling heart involuntarily pours itself out thus. But I must\r\nfinish. Heaven bless my beloved sister!\r\n\r\nR.W.\r\n\r\n\r\n\r\n\r\nLetter 4\r\n\r\n\r\n_To Mrs. Saville, England._\r\n\r\nAugust 5th, 17—.\r\n\r\nSo strange an accident has happened to us that I cannot forbear\r\nrecording it, although it is very probable that you will see me before\r\nthese papers can come into your possession.\r\n\r\nLast Monday (July 31st) we were nearly surrounded by ice, which closed\r\nin the ship on all sides, scarcely leaving her the sea-room in which\r\nshe floated. Our situation was somewhat dangerous, especially as we\r\nwere compassed round by a very thick fog. We accordingly lay to,\r\nhoping that some change would take place in the atmosphere and weather.\r\n\r\nAbout two o’clock the mist cleared away, and we beheld, stretched out\r\nin every direction, vast and irregular plains of ice, which seemed to\r\nhave no end. Some of my comrades groaned, and my own mind began to\r\ngrow watchful with anxious thoughts, when a strange sight suddenly\r\nattracted our attention and diverted our solicitude from our own\r\nsituation. We perceived a low carriage, fixed on a sledge and drawn by\r\ndogs, pass on towards the north, at the distance of half a mile; a\r\nbeing which had the shape of a man, but apparently of gigantic stature,\r\nsat in the sledge and guided the dogs. We watched the rapid progress\r\nof the traveller with our telescopes until he was lost among the\r\ndistant inequalities of the ice.\r\n\r\nThis appearance excited our unqualified wonder. We were, as we believed,\r\nmany hundred miles from any land; but this apparition seemed to denote that\r\nit was not, in reality, so distant as we had supposed. Shut in, however, by\r\nice, it was impossible to follow his track, which we had observed with the\r\ngreatest attention.\r\n\r\nAbout two hours after this occurrence we heard the ground sea, and before\r\nnight the ice broke and freed our ship. We, however, lay to until the\r\nmorning, fearing to encounter in the dark those large loose masses which\r\nfloat about after the breaking up of the ice. I profited of this time to\r\nrest for a few hours.\r\n\r\nIn the morning, however, as soon as it was light, I went upon deck and\r\nfound all the sailors busy on one side of the vessel, apparently\r\ntalking to someone in the sea. It was, in fact, a sledge, like that we\r\nhad seen before, which had drifted towards us in the night on a large\r\nfragment of ice. Only one dog remained alive; but there was a human\r\nbeing within it whom the sailors were persuading to enter the vessel.\r\nHe was not, as the other traveller seemed to be, a savage inhabitant of\r\nsome undiscovered island, but a European. When I appeared on deck the\r\nmaster said, “Here is our captain, and he will not allow you to perish\r\non the open sea.”\r\n\r\nOn perceiving me, the stranger addressed me in English, although with a\r\nforeign accent. “Before I come on board your vessel,” said he,\r\n“will you have the kindness to inform me whither you are bound?”\r\n\r\nYou may conceive my astonishment on hearing such a question addressed\r\nto me from a man on the brink of destruction and to whom I should have\r\nsupposed that my vessel would have been a resource which he would not\r\nhave exchanged for the most precious wealth the earth can afford. I\r\nreplied, however, that we were on a voyage of discovery towards the\r\nnorthern pole.\r\n\r\nUpon hearing this he appeared satisfied and consented to come on board.\r\nGood God! Margaret, if you had seen the man who thus capitulated for\r\nhis safety, your surprise would have been boundless. His limbs were\r\nnearly frozen, and his body dreadfully emaciated by fatigue and\r\nsuffering. I never saw a man in so wretched a condition. We attempted\r\nto carry him into the cabin, but as soon as he had quitted the fresh\r\nair he fainted. We accordingly brought him back to the deck and\r\nrestored him to animation by rubbing him with brandy and forcing him to\r\nswallow a small quantity. As soon as he showed signs of life we\r\nwrapped him up in blankets and placed him near the chimney of the\r\nkitchen stove. By slow degrees he recovered and ate a little soup,\r\nwhich restored him wonderfully.\r\n\r\nTwo days passed in this manner before he was able to speak, and I often\r\nfeared that his sufferings had deprived him of understanding. When he\r\nhad in some measure recovered, I removed him to my own cabin and\r\nattended on him as much as my duty would permit. I never saw a more\r\ninteresting creature: his eyes have generally an expression of\r\nwildness, and even madness, but there are moments when, if anyone\r\nperforms an act of kindness towards him or does him any the most\r\ntrifling service, his whole countenance is lighted up, as it were, with\r\na beam of benevolence and sweetness that I never saw equalled. But he\r\nis generally melancholy and despairing, and sometimes he gnashes his\r\nteeth, as if impatient of the weight of woes that oppresses him.\r\n\r\nWhen my guest was a little recovered I had great trouble to keep off\r\nthe men, who wished to ask him a thousand questions; but I would not\r\nallow him to be tormented by their idle curiosity, in a state of body\r\nand mind whose restoration evidently depended upon entire repose.\r\nOnce, however, the lieutenant asked why he had come so far upon the ice\r\nin so strange a vehicle.\r\n\r\nHis countenance instantly assumed an aspect of the deepest gloom, and\r\nhe replied, “To seek one who fled from me.”\r\n\r\n“And did the man whom you pursued travel in the same fashion?”\r\n\r\n“Yes.”\r\n\r\n“Then I fancy we have seen him, for the day before we picked you up we\r\nsaw some dogs drawing a sledge, with a man in it, across the ice.”\r\n\r\nThis aroused the stranger’s attention, and he asked a multitude of\r\nquestions concerning the route which the dæmon, as he called him, had\r\npursued. Soon after, when he was alone with me, he said, “I have,\r\ndoubtless, excited your curiosity, as well as that of these good\r\npeople; but you are too considerate to make inquiries.”\r\n\r\n“Certainly; it would indeed be very impertinent and inhuman in me to\r\ntrouble you with any inquisitiveness of mine.”\r\n\r\n“And yet you rescued me from a strange and perilous situation; you have\r\nbenevolently restored me to life.”\r\n\r\nSoon after this he inquired if I thought that the breaking up of the\r\nice had destroyed the other sledge. I replied that I could not answer\r\nwith any degree of certainty, for the ice had not broken until near\r\nmidnight, and the traveller might have arrived at a place of safety\r\nbefore that time; but of this I could not judge.\r\n\r\nFrom this time a new spirit of life animated the decaying frame of the\r\nstranger. He manifested the greatest eagerness to be upon deck to watch for\r\nthe sledge which had before appeared; but I have persuaded him to remain in\r\nthe cabin, for he is far too weak to sustain the rawness of the atmosphere.\r\nI have promised that someone should watch for him and give him instant\r\nnotice if any new object should appear in sight.\r\n\r\nSuch is my journal of what relates to this strange occurrence up to the\r\npresent day. The stranger has gradually improved in health but is very\r\nsilent and appears uneasy when anyone except myself enters his cabin.\r\nYet his manners are so conciliating and gentle that the sailors are all\r\ninterested in him, although they have had very little communication\r\nwith him. For my own part, I begin to love him as a brother, and his\r\nconstant and deep grief fills me with sympathy and compassion. He must\r\nhave been a noble creature in his better days, being even now in wreck\r\nso attractive and amiable.\r\n\r\nI said in one of my letters, my dear Margaret, that I should find no friend\r\non the wide ocean; yet I have found a man who, before his spirit had been\r\nbroken by misery, I should have been happy to have possessed as the brother\r\nof my heart.\r\n\r\nI shall continue my journal concerning the stranger at intervals,\r\nshould I have any fresh incidents to record.\r\n\r\n\r\n\r\n\r\nAugust 13th, 17—.\r\n\r\n\r\nMy affection for my guest increases every day. He excites at once my\r\nadmiration and my pity to an astonishing degree. How can I see so\r\nnoble a creature destroyed by misery without feeling the most poignant\r\ngrief? He is so gentle, yet so wise; his mind is so cultivated, and\r\nwhen he speaks, although his words are culled with the choicest art,\r\nyet they flow with rapidity and unparalleled eloquence.\r\n\r\nHe is now much recovered from his illness and is continually on the deck,\r\napparently watching for the sledge that preceded his own. Yet, although\r\nunhappy, he is not so utterly occupied by his own misery but that he\r\ninterests himself deeply in the projects of others. He has frequently\r\nconversed with me on mine, which I have communicated to him without\r\ndisguise. He entered attentively into all my arguments in favour of my\r\neventual success and into every minute detail of the measures I had taken\r\nto secure it. I was easily led by the sympathy which he evinced to use the\r\nlanguage of my heart, to give utterance to the burning ardour of my soul\r\nand to say, with all the fervour that warmed me, how gladly I would\r\nsacrifice my fortune, my existence, my every hope, to the furtherance of my\r\nenterprise. One man’s life or death were but a small price to pay for\r\nthe acquirement of the knowledge which I sought, for the dominion I should\r\nacquire and transmit over the elemental foes of our race. As I spoke, a\r\ndark gloom spread over my listener’s countenance. At first I\r\nperceived that he tried to suppress his emotion; he placed his hands before\r\nhis eyes, and my voice quivered and failed me as I beheld tears trickle\r\nfast from between his fingers; a groan burst from his heaving breast. I\r\npaused; at length he spoke, in broken accents: “Unhappy man! Do you\r\nshare my madness? Have you drunk also of the intoxicating draught? Hear me;\r\nlet me reveal my tale, and you will dash the cup from your lips!”\r\n\r\nSuch words, you may imagine, strongly excited my curiosity; but the\r\nparoxysm of grief that had seized the stranger overcame his weakened\r\npowers, and many hours of repose and tranquil conversation were\r\nnecessary to restore his composure.\r\n\r\nHaving conquered the violence of his feelings, he appeared to despise\r\nhimself for being the slave of passion; and quelling the dark tyranny of\r\ndespair, he led me again to converse concerning myself personally. He asked\r\nme the history of my earlier years. The tale was quickly told, but it\r\nawakened various trains of reflection. I spoke of my desire of finding a\r\nfriend, of my thirst for a more intimate sympathy with a fellow mind than\r\nhad ever fallen to my lot, and expressed my conviction that a man could\r\nboast of little happiness who did not enjoy this blessing.\r\n\r\n“I agree with you,” replied the stranger; “we are\r\nunfashioned creatures, but half made up, if one wiser, better, dearer than\r\nourselves—such a friend ought to be—do not lend his aid to\r\nperfectionate our weak and faulty natures. I once had a friend, the most\r\nnoble of human creatures, and am entitled, therefore, to judge respecting\r\nfriendship. You have hope, and the world before you, and have no cause for\r\ndespair. But I—I have lost everything and cannot begin life\r\nanew.”\r\n\r\nAs he said this his countenance became expressive of a calm, settled\r\ngrief that touched me to the heart. But he was silent and presently\r\nretired to his cabin.\r\n\r\nEven broken in spirit as he is, no one can feel more deeply than he\r\ndoes the beauties of nature. The starry sky, the sea, and every sight\r\nafforded by these wonderful regions seem still to have the power of\r\nelevating his soul from earth. Such a man has a double existence: he\r\nmay suffer misery and be overwhelmed by disappointments, yet when he\r\nhas retired into himself, he will be like a celestial spirit that has a\r\nhalo around him, within whose circle no grief or folly ventures.\r\n\r\nWill you smile at the enthusiasm I express concerning this divine\r\nwanderer? You would not if you saw him. You have been tutored and\r\nrefined by books and retirement from the world, and you are therefore\r\nsomewhat fastidious; but this only renders you the more fit to\r\nappreciate the extraordinary merits of this wonderful man. Sometimes I\r\nhave endeavoured to discover what quality it is which he possesses that\r\nelevates him so immeasurably above any other person I ever knew. I\r\nbelieve it to be an intuitive discernment, a quick but never-failing\r\npower of judgment, a penetration into the causes of things, unequalled\r\nfor clearness and precision; add to this a facility of expression and a\r\nvoice whose varied intonations are soul-subduing music.\r\n\r\n\r\n\r\n\r\nAugust 19th, 17—.\r\n\r\n\r\nYesterday the stranger said to me, “You may easily perceive, Captain\r\nWalton, that I have suffered great and unparalleled misfortunes. I had\r\ndetermined at one time that the memory of these evils should die with\r\nme, but you have won me to alter my determination. You seek for\r\nknowledge and wisdom, as I once did; and I ardently hope that the\r\ngratification of your wishes may not be a serpent to sting you, as mine\r\nhas been. I do not know that the relation of my disasters will be\r\nuseful to you; yet, when I reflect that you are pursuing the same\r\ncourse, exposing yourself to the same dangers which have rendered me\r\nwhat I am, I imagine that you may deduce an apt moral from my tale, one\r\nthat may direct you if you succeed in your undertaking and console you\r\nin case of failure. Prepare to hear of occurrences which are usually\r\ndeemed marvellous. Were we among the tamer scenes of nature I might\r\nfear to encounter your unbelief, perhaps your ridicule; but many things\r\nwill appear possible in these wild and mysterious regions which would\r\nprovoke the laughter of those unacquainted with the ever-varied powers\r\nof nature; nor can I doubt but that my tale conveys in its series\r\ninternal evidence of the truth of the events of which it is composed.”\r\n\r\nYou may easily imagine that I was much gratified by the offered\r\ncommunication, yet I could not endure that he should renew his grief by\r\na recital of his misfortunes. I felt the greatest eagerness to hear\r\nthe promised narrative, partly from curiosity and partly from a strong\r\ndesire to ameliorate his fate if it were in my power. I expressed\r\nthese feelings in my answer.\r\n\r\n“I thank you,” he replied, “for your sympathy, but it is\r\nuseless; my fate is nearly fulfilled. I wait but for one event, and then I\r\nshall repose in peace. I understand your feeling,” continued he,\r\nperceiving that I wished to interrupt him; “but you are mistaken, my\r\nfriend, if thus you will allow me to name you; nothing can alter my\r\ndestiny; listen to my history, and you will perceive how irrevocably it is\r\ndetermined.”\r\n\r\nHe then told me that he would commence his narrative the next day when I\r\nshould be at leisure. This promise drew from me the warmest thanks. I have\r\nresolved every night, when I am not imperatively occupied by my duties, to\r\nrecord, as nearly as possible in his own words, what he has related during\r\nthe day. If I should be engaged, I will at least make notes. This\r\nmanuscript will doubtless afford you the greatest pleasure; but to me, who\r\nknow him, and who hear it from his own lips—with what interest and\r\nsympathy shall I read it in some future day! Even now, as I commence my\r\ntask, his full-toned voice swells in my ears; his lustrous eyes dwell on me\r\nwith all their melancholy sweetness; I see his thin hand raised in\r\nanimation, while the lineaments of his face are irradiated by the soul\r\nwithin. Strange and harrowing must be his story, frightful the storm which\r\nembraced the gallant vessel on its course and wrecked it—thus!\r\n\r\n\r\n\r\n\r\nChapter 1\r\n\r\n\r\nI am by birth a Genevese, and my family is one of the most\r\ndistinguished of that republic. My ancestors had been for many years\r\ncounsellors and syndics, and my father had filled several public\r\nsituations with honour and reputation. He was respected by all who\r\nknew him for his integrity and indefatigable attention to public\r\nbusiness. He passed his younger days perpetually occupied by the\r\naffairs of his country; a variety of circumstances had prevented his\r\nmarrying early, nor was it until the decline of life that he became a\r\nhusband and the father of a family.\r\n\r\nAs the circumstances of his marriage illustrate his character, I cannot\r\nrefrain from relating them. One of his most intimate friends was a\r\nmerchant who, from a flourishing state, fell, through numerous\r\nmischances, into poverty. This man, whose name was Beaufort, was of a\r\nproud and unbending disposition and could not bear to live in poverty\r\nand oblivion in the same country where he had formerly been\r\ndistinguished for his rank and magnificence. Having paid his debts,\r\ntherefore, in the most honourable manner, he retreated with his\r\ndaughter to the town of Lucerne, where he lived unknown and in\r\nwretchedness. My father loved Beaufort with the truest friendship and\r\nwas deeply grieved by his retreat in these unfortunate circumstances.\r\nHe bitterly deplored the false pride which led his friend to a conduct\r\nso little worthy of the affection that united them. He lost no time in\r\nendeavouring to seek him out, with the hope of persuading him to begin\r\nthe world again through his credit and assistance.\r\n\r\nBeaufort had taken effectual measures to conceal himself, and it was ten\r\nmonths before my father discovered his abode. Overjoyed at this discovery,\r\nhe hastened to the house, which was situated in a mean street near the\r\nReuss. But when he entered, misery and despair alone welcomed him. Beaufort\r\nhad saved but a very small sum of money from the wreck of his fortunes, but\r\nit was sufficient to provide him with sustenance for some months, and in\r\nthe meantime he hoped to procure some respectable employment in a\r\nmerchant’s house. The interval was, consequently, spent in inaction;\r\nhis grief only became more deep and rankling when he had leisure for\r\nreflection, and at length it took so fast hold of his mind that at the end\r\nof three months he lay on a bed of sickness, incapable of any exertion.\r\n\r\nHis daughter attended him with the greatest tenderness, but she saw\r\nwith despair that their little fund was rapidly decreasing and that\r\nthere was no other prospect of support. But Caroline Beaufort\r\npossessed a mind of an uncommon mould, and her courage rose to support\r\nher in her adversity. She procured plain work; she plaited straw and\r\nby various means contrived to earn a pittance scarcely sufficient to\r\nsupport life.\r\n\r\nSeveral months passed in this manner. Her father grew worse; her time\r\nwas more entirely occupied in attending him; her means of subsistence\r\ndecreased; and in the tenth month her father died in her arms, leaving\r\nher an orphan and a beggar. This last blow overcame her, and she knelt\r\nby Beaufort’s coffin weeping bitterly, when my father entered the\r\nchamber. He came like a protecting spirit to the poor girl, who\r\ncommitted herself to his care; and after the interment of his friend he\r\nconducted her to Geneva and placed her under the protection of a\r\nrelation. Two years after this event Caroline became his wife.\r\n\r\nThere was a considerable difference between the ages of my parents, but\r\nthis circumstance seemed to unite them only closer in bonds of devoted\r\naffection. There was a sense of justice in my father’s upright mind\r\nwhich rendered it necessary that he should approve highly to love\r\nstrongly. Perhaps during former years he had suffered from the\r\nlate-discovered unworthiness of one beloved and so was disposed to set\r\na greater value on tried worth. There was a show of gratitude and\r\nworship in his attachment to my mother, differing wholly from the\r\ndoting fondness of age, for it was inspired by reverence for her\r\nvirtues and a desire to be the means of, in some degree, recompensing\r\nher for the sorrows she had endured, but which gave inexpressible grace\r\nto his behaviour to her. Everything was made to yield to her wishes\r\nand her convenience. He strove to shelter her, as a fair exotic is\r\nsheltered by the gardener, from every rougher wind and to surround her\r\nwith all that could tend to excite pleasurable emotion in her soft and\r\nbenevolent mind. Her health, and even the tranquillity of her hitherto\r\nconstant spirit, had been shaken by what she had gone through. During\r\nthe two years that had elapsed previous to their marriage my father had\r\ngradually relinquished all his public functions; and immediately after\r\ntheir union they sought the pleasant climate of Italy, and the change\r\nof scene and interest attendant on a tour through that land of wonders,\r\nas a restorative for her weakened frame.\r\n\r\nFrom Italy they visited Germany and France. I, their eldest child, was born\r\nat Naples, and as an infant accompanied them in their rambles. I remained\r\nfor several years their only child. Much as they were attached to each\r\nother, they seemed to draw inexhaustible stores of affection from a very\r\nmine of love to bestow them upon me. My mother’s tender caresses and\r\nmy father’s smile of benevolent pleasure while regarding me are my\r\nfirst recollections. I was their plaything and their idol, and something\r\nbetter—their child, the innocent and helpless creature bestowed on\r\nthem by Heaven, whom to bring up to good, and whose future lot it was in\r\ntheir hands to direct to happiness or misery, according as they fulfilled\r\ntheir duties towards me. With this deep consciousness of what they owed\r\ntowards the being to which they had given life, added to the active spirit\r\nof tenderness that animated both, it may be imagined that while during\r\nevery hour of my infant life I received a lesson of patience, of charity,\r\nand of self-control, I was so guided by a silken cord that all seemed but\r\none train of enjoyment to me.\r\n\r\nFor a long time I was their only care. My mother had much desired to have a\r\ndaughter, but I continued their single offspring. When I was about five\r\nyears old, while making an excursion beyond the frontiers of Italy, they\r\npassed a week on the shores of the Lake of Como. Their benevolent\r\ndisposition often made them enter the cottages of the poor. This, to my\r\nmother, was more than a duty; it was a necessity, a\r\npassion—remembering what she had suffered, and how she had been\r\nrelieved—for her to act in her turn the guardian angel to the\r\nafflicted. During one of their walks a poor cot in the foldings of a vale\r\nattracted their notice as being singularly disconsolate, while the number\r\nof half-clothed children gathered about it spoke of penury in its worst\r\nshape. One day, when my father had gone by himself to Milan, my mother,\r\naccompanied by me, visited this abode. She found a peasant and his wife,\r\nhard working, bent down by care and labour, distributing a scanty meal to\r\nfive hungry babes. Among these there was one which attracted my mother far\r\nabove all the rest. She appeared of a different stock. The four others were\r\ndark-eyed, hardy little vagrants; this child was thin and very fair. Her\r\nhair was the brightest living gold, and despite the poverty of her\r\nclothing, seemed to set a crown of distinction on her head. Her brow was\r\nclear and ample, her blue eyes cloudless, and her lips and the moulding of\r\nher face so expressive of sensibility and sweetness that none could behold\r\nher without looking on her as of a distinct species, a being heaven-sent,\r\nand bearing a celestial stamp in all her features.\r\n\r\nThe peasant woman, perceiving that my mother fixed eyes of wonder and\r\nadmiration on this lovely girl, eagerly communicated her history. She was\r\nnot her child, but the daughter of a Milanese nobleman. Her mother was a\r\nGerman and had died on giving her birth. The infant had been placed with\r\nthese good people to nurse: they were better off then. They had not been\r\nlong married, and their eldest child was but just born. The father of their\r\ncharge was one of those Italians nursed in the memory of the antique glory\r\nof Italy—one among the _schiavi ognor frementi,_ who exerted\r\nhimself to obtain the liberty of his country. He became the victim of its\r\nweakness. Whether he had died or still lingered in the dungeons of Austria\r\nwas not known. His property was confiscated; his child became an orphan and\r\na beggar. She continued with her foster parents and bloomed in their rude\r\nabode, fairer than a garden rose among dark-leaved brambles.\r\n\r\nWhen my father returned from Milan, he found playing with me in the hall of\r\nour villa a child fairer than pictured cherub—a creature who seemed\r\nto shed radiance from her looks and whose form and motions were lighter\r\nthan the chamois of the hills. The apparition was soon explained. With his\r\npermission my mother prevailed on her rustic guardians to yield their\r\ncharge to her. They were fond of the sweet orphan. Her presence had seemed\r\na blessing to them, but it would be unfair to her to keep her in poverty\r\nand want when Providence afforded her such powerful protection. They\r\nconsulted their village priest, and the result was that Elizabeth Lavenza\r\nbecame the inmate of my parents’ house—my more than\r\nsister—the beautiful and adored companion of all my occupations and\r\nmy pleasures.\r\n\r\nEveryone loved Elizabeth. The passionate and almost reverential\r\nattachment with which all regarded her became, while I shared it, my\r\npride and my delight. On the evening previous to her being brought to\r\nmy home, my mother had said playfully, “I have a pretty present for my\r\nVictor—tomorrow he shall have it.” And when, on the morrow, she\r\npresented Elizabeth to me as her promised gift, I, with childish\r\nseriousness, interpreted her words literally and looked upon Elizabeth\r\nas mine—mine to protect, love, and cherish. All praises bestowed on\r\nher I received as made to a possession of my own. We called each other\r\nfamiliarly by the name of cousin. No word, no expression could body\r\nforth the kind of relation in which she stood to me—my more than\r\nsister, since till death she was to be mine only.\r\n\r\n\r\n\r\n\r\nChapter 2\r\n\r\n\r\nWe were brought up together; there was not quite a year difference in\r\nour ages. I need not say that we were strangers to any species of\r\ndisunion or dispute. Harmony was the soul of our companionship, and\r\nthe diversity and contrast that subsisted in our characters drew us\r\nnearer together. Elizabeth was of a calmer and more concentrated\r\ndisposition; but, with all my ardour, I was capable of a more intense\r\napplication and was more deeply smitten with the thirst for knowledge.\r\nShe busied herself with following the aerial creations of the poets;\r\nand in the majestic and wondrous scenes which surrounded our Swiss\r\nhome —the sublime shapes of the mountains, the changes of the seasons,\r\ntempest and calm, the silence of winter, and the life and turbulence of\r\nour Alpine summers—she found ample scope for admiration and delight.\r\nWhile my companion contemplated with a serious and satisfied spirit the\r\nmagnificent appearances of things, I delighted in investigating their\r\ncauses. The world was to me a secret which I desired to divine.\r\nCuriosity, earnest research to learn the hidden laws of nature,\r\ngladness akin to rapture, as they were unfolded to me, are among the\r\nearliest sensations I can remember.\r\n\r\nOn the birth of a second son, my junior by seven years, my parents gave\r\nup entirely their wandering life and fixed themselves in their native\r\ncountry. We possessed a house in Geneva, and a _campagne_ on Belrive,\r\nthe eastern shore of the lake, at the distance of rather more than a\r\nleague from the city. We resided principally in the latter, and the\r\nlives of my parents were passed in considerable seclusion. It was my\r\ntemper to avoid a crowd and to attach myself fervently to a few. I was\r\nindifferent, therefore, to my school-fellows in general; but I united\r\nmyself in the bonds of the closest friendship to one among them. Henry\r\nClerval was the son of a merchant of Geneva. He was a boy of singular\r\ntalent and fancy. He loved enterprise, hardship, and even danger for\r\nits own sake. He was deeply read in books of chivalry and romance. He\r\ncomposed heroic songs and began to write many a tale of enchantment and\r\nknightly adventure. He tried to make us act plays and to enter into\r\nmasquerades, in which the characters were drawn from the heroes of\r\nRoncesvalles, of the Round Table of King Arthur, and the chivalrous\r\ntrain who shed their blood to redeem the holy sepulchre from the hands\r\nof the infidels.\r\n\r\nNo human being could have passed a happier childhood than myself. My\r\nparents were possessed by the very spirit of kindness and indulgence.\r\nWe felt that they were not the tyrants to rule our lot according to\r\ntheir caprice, but the agents and creators of all the many delights\r\nwhich we enjoyed. When I mingled with other families I distinctly\r\ndiscerned how peculiarly fortunate my lot was, and gratitude assisted\r\nthe development of filial love.\r\n\r\nMy temper was sometimes violent, and my passions vehement; but by some\r\nlaw in my temperature they were turned not towards childish pursuits\r\nbut to an eager desire to learn, and not to learn all things\r\nindiscriminately. I confess that neither the structure of languages,\r\nnor the code of governments, nor the politics of various states\r\npossessed attractions for me. It was the secrets of heaven and earth\r\nthat I desired to learn; and whether it was the outward substance of\r\nthings or the inner spirit of nature and the mysterious soul of man\r\nthat occupied me, still my inquiries were directed to the metaphysical,\r\nor in its highest sense, the physical secrets of the world.\r\n\r\nMeanwhile Clerval occupied himself, so to speak, with the moral\r\nrelations of things. The busy stage of life, the virtues of heroes,\r\nand the actions of men were his theme; and his hope and his dream was\r\nto become one among those whose names are recorded in story as the\r\ngallant and adventurous benefactors of our species. The saintly soul\r\nof Elizabeth shone like a shrine-dedicated lamp in our peaceful home.\r\nHer sympathy was ours; her smile, her soft voice, the sweet glance of\r\nher celestial eyes, were ever there to bless and animate us. She was\r\nthe living spirit of love to soften and attract; I might have become\r\nsullen in my study, rough through the ardour of my nature, but that\r\nshe was there to subdue me to a semblance of her own gentleness. And\r\nClerval—could aught ill entrench on the noble spirit of Clerval? Yet\r\nhe might not have been so perfectly humane, so thoughtful in his\r\ngenerosity, so full of kindness and tenderness amidst his passion for\r\nadventurous exploit, had she not unfolded to him the real loveliness of\r\nbeneficence and made the doing good the end and aim of his soaring\r\nambition.\r\n\r\nI feel exquisite pleasure in dwelling on the recollections of childhood,\r\nbefore misfortune had tainted my mind and changed its bright visions of\r\nextensive usefulness into gloomy and narrow reflections upon self. Besides,\r\nin drawing the picture of my early days, I also record those events which\r\nled, by insensible steps, to my after tale of misery, for when I would\r\naccount to myself for the birth of that passion which afterwards ruled my\r\ndestiny I find it arise, like a mountain river, from ignoble and almost\r\nforgotten sources; but, swelling as it proceeded, it became the torrent\r\nwhich, in its course, has swept away all my hopes and joys.\r\n\r\nNatural philosophy is the genius that has regulated my fate; I desire,\r\ntherefore, in this narration, to state those facts which led to my\r\npredilection for that science. When I was thirteen years of age we all went\r\non a party of pleasure to the baths near Thonon; the inclemency of the\r\nweather obliged us to remain a day confined to the inn. In this house I\r\nchanced to find a volume of the works of Cornelius Agrippa. I opened it\r\nwith apathy; the theory which he attempts to demonstrate and the wonderful\r\nfacts which he relates soon changed this feeling into enthusiasm. A new\r\nlight seemed to dawn upon my mind, and bounding with joy, I communicated my\r\ndiscovery to my father. My father looked carelessly at the title page of my\r\nbook and said, “Ah! Cornelius Agrippa! My dear Victor, do not waste\r\nyour time upon this; it is sad trash.”\r\n\r\nIf, instead of this remark, my father had taken the pains to explain to me\r\nthat the principles of Agrippa had been entirely exploded and that a modern\r\nsystem of science had been introduced which possessed much greater powers\r\nthan the ancient, because the powers of the latter were chimerical, while\r\nthose of the former were real and practical, under such circumstances I\r\nshould certainly have thrown Agrippa aside and have contented my\r\nimagination, warmed as it was, by returning with greater ardour to my\r\nformer studies. It is even possible that the train of my ideas would never\r\nhave received the fatal impulse that led to my ruin. But the cursory glance\r\nmy father had taken of my volume by no means assured me that he was\r\nacquainted with its contents, and I continued to read with the greatest\r\navidity.\r\n\r\nWhen I returned home my first care was to procure the whole works of this\r\nauthor, and afterwards of Paracelsus and Albertus Magnus. I read and\r\nstudied the wild fancies of these writers with delight; they appeared to me\r\ntreasures known to few besides myself. I have described myself as always\r\nhaving been imbued with a fervent longing to penetrate the secrets of\r\nnature. In spite of the intense labour and wonderful discoveries of modern\r\nphilosophers, I always came from my studies discontented and unsatisfied.\r\nSir Isaac Newton is said to have avowed that he felt like a child picking\r\nup shells beside the great and unexplored ocean of truth. Those of his\r\nsuccessors in each branch of natural philosophy with whom I was acquainted\r\nappeared even to my boy’s apprehensions as tyros engaged in the same\r\npursuit.\r\n\r\nThe untaught peasant beheld the elements around him and was acquainted\r\nwith their practical uses. The most learned philosopher knew little\r\nmore. He had partially unveiled the face of Nature, but her immortal\r\nlineaments were still a wonder and a mystery. He might dissect,\r\nanatomise, and give names; but, not to speak of a final cause, causes\r\nin their secondary and tertiary grades were utterly unknown to him. I\r\nhad gazed upon the fortifications and impediments that seemed to keep\r\nhuman beings from entering the citadel of nature, and rashly and\r\nignorantly I had repined.\r\n\r\nBut here were books, and here were men who had penetrated deeper and knew\r\nmore. I took their word for all that they averred, and I became their\r\ndisciple. It may appear strange that such should arise in the eighteenth\r\ncentury; but while I followed the routine of education in the schools of\r\nGeneva, I was, to a great degree, self-taught with regard to my favourite\r\nstudies. My father was not scientific, and I was left to struggle with a\r\nchild’s blindness, added to a student’s thirst for knowledge.\r\nUnder the guidance of my new preceptors I entered with the greatest\r\ndiligence into the search of the philosopher’s stone and the elixir\r\nof life; but the latter soon obtained my undivided attention. Wealth was an\r\ninferior object, but what glory would attend the discovery if I could\r\nbanish disease from the human frame and render man invulnerable to any but\r\na violent death!\r\n\r\nNor were these my only visions. The raising of ghosts or devils was a\r\npromise liberally accorded by my favourite authors, the fulfilment of which\r\nI most eagerly sought; and if my incantations were always unsuccessful, I\r\nattributed the failure rather to my own inexperience and mistake than to a\r\nwant of skill or fidelity in my instructors. And thus for a time I was\r\noccupied by exploded systems, mingling, like an unadept, a thousand\r\ncontradictory theories and floundering desperately in a very slough of\r\nmultifarious knowledge, guided by an ardent imagination and childish\r\nreasoning, till an accident again changed the current of my ideas.\r\n\r\nWhen I was about fifteen years old we had retired to our house near\r\nBelrive, when we witnessed a most violent and terrible thunderstorm. It\r\nadvanced from behind the mountains of Jura, and the thunder burst at once\r\nwith frightful loudness from various quarters of the heavens. I remained,\r\nwhile the storm lasted, watching its progress with curiosity and delight.\r\nAs I stood at the door, on a sudden I beheld a stream of fire issue from an\r\nold and beautiful oak which stood about twenty yards from our house; and so\r\nsoon as the dazzling light vanished, the oak had disappeared, and nothing\r\nremained but a blasted stump. When we visited it the next morning, we found\r\nthe tree shattered in a singular manner. It was not splintered by the\r\nshock, but entirely reduced to thin ribbons of wood. I never beheld\r\nanything so utterly destroyed.\r\n\r\nBefore this I was not unacquainted with the more obvious laws of\r\nelectricity. On this occasion a man of great research in natural\r\nphilosophy was with us, and excited by this catastrophe, he entered on\r\nthe explanation of a theory which he had formed on the subject of\r\nelectricity and galvanism, which was at once new and astonishing to me.\r\nAll that he said threw greatly into the shade Cornelius Agrippa,\r\nAlbertus Magnus, and Paracelsus, the lords of my imagination; but by\r\nsome fatality the overthrow of these men disinclined me to pursue my\r\naccustomed studies. It seemed to me as if nothing would or could ever\r\nbe known. All that had so long engaged my attention suddenly grew\r\ndespicable. By one of those caprices of the mind which we are perhaps\r\nmost subject to in early youth, I at once gave up my former\r\noccupations, set down natural history and all its progeny as a deformed\r\nand abortive creation, and entertained the greatest disdain for a\r\nwould-be science which could never even step within the threshold of\r\nreal knowledge. In this mood of mind I betook myself to the\r\nmathematics and the branches of study appertaining to that science as\r\nbeing built upon secure foundations, and so worthy of my consideration.\r\n\r\nThus strangely are our souls constructed, and by such slight ligaments\r\nare we bound to prosperity or ruin. When I look back, it seems to me\r\nas if this almost miraculous change of inclination and will was the\r\nimmediate suggestion of the guardian angel of my life—the last effort\r\nmade by the spirit of preservation to avert the storm that was even\r\nthen hanging in the stars and ready to envelop me. Her victory was\r\nannounced by an unusual tranquillity and gladness of soul which\r\nfollowed the relinquishing of my ancient and latterly tormenting\r\nstudies. It was thus that I was to be taught to associate evil with\r\ntheir prosecution, happiness with their disregard.\r\n\r\nIt was a strong effort of the spirit of good, but it was ineffectual.\r\nDestiny was too potent, and her immutable laws had decreed my utter and\r\nterrible destruction.\r\n\r\n\r\n\r\n\r\nChapter 3\r\n\r\n\r\nWhen I had attained the age of seventeen my parents resolved that I\r\nshould become a student at the university of Ingolstadt. I had\r\nhitherto attended the schools of Geneva, but my father thought it\r\nnecessary for the completion of my education that I should be made\r\nacquainted with other customs than those of my native country. My\r\ndeparture was therefore fixed at an early date, but before the day\r\nresolved upon could arrive, the first misfortune of my life\r\noccurred—an omen, as it were, of my future misery.\r\n\r\nElizabeth had caught the scarlet fever; her illness was severe, and she was\r\nin the greatest danger. During her illness many arguments had been urged to\r\npersuade my mother to refrain from attending upon her. She had at first\r\nyielded to our entreaties, but when she heard that the life of her\r\nfavourite was menaced, she could no longer control her anxiety. She\r\nattended her sickbed; her watchful attentions triumphed over the malignity\r\nof the distemper—Elizabeth was saved, but the consequences of this\r\nimprudence were fatal to her preserver. On the third day my mother\r\nsickened; her fever was accompanied by the most alarming symptoms, and the\r\nlooks of her medical attendants prognosticated the worst event. On her\r\ndeathbed the fortitude and benignity of this best of women did not desert\r\nher. She joined the hands of Elizabeth and myself. “My\r\nchildren,” she said, “my firmest hopes of future happiness were\r\nplaced on the prospect of your union. This expectation will now be the\r\nconsolation of your father. Elizabeth, my love, you must supply my place to\r\nmy younger children. Alas! I regret that I am taken from you; and, happy\r\nand beloved as I have been, is it not hard to quit you all? But these are\r\nnot thoughts befitting me; I will endeavour to resign myself cheerfully to\r\ndeath and will indulge a hope of meeting you in another world.”\r\n\r\nShe died calmly, and her countenance expressed affection even in death.\r\nI need not describe the feelings of those whose dearest ties are rent\r\nby that most irreparable evil, the void that presents itself to the\r\nsoul, and the despair that is exhibited on the countenance. It is so\r\nlong before the mind can persuade itself that she whom we saw every day\r\nand whose very existence appeared a part of our own can have departed\r\nfor ever—that the brightness of a beloved eye can have been\r\nextinguished and the sound of a voice so familiar and dear to the ear\r\ncan be hushed, never more to be heard. These are the reflections of\r\nthe first days; but when the lapse of time proves the reality of the\r\nevil, then the actual bitterness of grief commences. Yet from whom has\r\nnot that rude hand rent away some dear connection? And why should I\r\ndescribe a sorrow which all have felt, and must feel? The time at\r\nlength arrives when grief is rather an indulgence than a necessity; and\r\nthe smile that plays upon the lips, although it may be deemed a\r\nsacrilege, is not banished. My mother was dead, but we had still\r\nduties which we ought to perform; we must continue our course with the\r\nrest and learn to think ourselves fortunate whilst one remains whom the\r\nspoiler has not seized.\r\n\r\nMy departure for Ingolstadt, which had been deferred by these events,\r\nwas now again determined upon. I obtained from my father a respite of\r\nsome weeks. It appeared to me sacrilege so soon to leave the repose,\r\nakin to death, of the house of mourning and to rush into the thick of\r\nlife. I was new to sorrow, but it did not the less alarm me. I was\r\nunwilling to quit the sight of those that remained to me, and above\r\nall, I desired to see my sweet Elizabeth in some degree consoled.\r\n\r\nShe indeed veiled her grief and strove to act the comforter to us all.\r\nShe looked steadily on life and assumed its duties with courage and\r\nzeal. She devoted herself to those whom she had been taught to call\r\nher uncle and cousins. Never was she so enchanting as at this time,\r\nwhen she recalled the sunshine of her smiles and spent them upon us.\r\nShe forgot even her own regret in her endeavours to make us forget.\r\n\r\nThe day of my departure at length arrived. Clerval spent the last\r\nevening with us. He had endeavoured to persuade his father to permit\r\nhim to accompany me and to become my fellow student, but in vain. His\r\nfather was a narrow-minded trader and saw idleness and ruin in the\r\naspirations and ambition of his son. Henry deeply felt the misfortune\r\nof being debarred from a liberal education. He said little, but when\r\nhe spoke I read in his kindling eye and in his animated glance a\r\nrestrained but firm resolve not to be chained to the miserable details\r\nof commerce.\r\n\r\nWe sat late. We could not tear ourselves away from each other nor\r\npersuade ourselves to say the word “Farewell!” It was said, and we\r\nretired under the pretence of seeking repose, each fancying that the\r\nother was deceived; but when at morning’s dawn I descended to the\r\ncarriage which was to convey me away, they were all there—my father\r\nagain to bless me, Clerval to press my hand once more, my Elizabeth to\r\nrenew her entreaties that I would write often and to bestow the last\r\nfeminine attentions on her playmate and friend.\r\n\r\nI threw myself into the chaise that was to convey me away and indulged in\r\nthe most melancholy reflections. I, who had ever been surrounded by\r\namiable companions, continually engaged in endeavouring to bestow mutual\r\npleasure—I was now alone. In the university whither I was going I\r\nmust form my own friends and be my own protector. My life had hitherto\r\nbeen remarkably secluded and domestic, and this had given me invincible\r\nrepugnance to new countenances. I loved my brothers, Elizabeth, and\r\nClerval; these were “old familiar faces,” but I believed myself\r\ntotally unfitted for the company of strangers. Such were my reflections as\r\nI commenced my journey; but as I proceeded, my spirits and hopes rose. I\r\nardently desired the acquisition of knowledge. I had often, when at home,\r\nthought it hard to remain during my youth cooped up in one place and had\r\nlonged to enter the world and take my station among other human beings. \r\nNow my desires were complied with, and it would, indeed, have been folly to\r\nrepent.\r\n\r\nI had sufficient leisure for these and many other reflections during my\r\njourney to Ingolstadt, which was long and fatiguing. At length the\r\nhigh white steeple of the town met my eyes. I alighted and was\r\nconducted to my solitary apartment to spend the evening as I pleased.\r\n\r\nThe next morning I delivered my letters of introduction and paid a visit to\r\nsome of the principal professors. Chance—or rather the evil\r\ninfluence, the Angel of Destruction, which asserted omnipotent sway over me\r\nfrom the moment I turned my reluctant steps from my father’s\r\ndoor—led me first to M. Krempe, professor of natural philosophy. He\r\nwas an uncouth man, but deeply imbued in the secrets of his science. He\r\nasked me several questions concerning my progress in the different branches\r\nof science appertaining to natural philosophy. I replied carelessly, and\r\npartly in contempt, mentioned the names of my alchemists as the principal\r\nauthors I had studied. The professor stared. “Have you,” he\r\nsaid, “really spent your time in studying such nonsense?”\r\n\r\nI replied in the affirmative. “Every minute,” continued M. Krempe with\r\nwarmth, “every instant that you have wasted on those books is utterly\r\nand entirely lost. You have burdened your memory with exploded systems\r\nand useless names. Good God! In what desert land have you lived,\r\nwhere no one was kind enough to inform you that these fancies which you\r\nhave so greedily imbibed are a thousand years old and as musty as they\r\nare ancient? I little expected, in this enlightened and scientific\r\nage, to find a disciple of Albertus Magnus and Paracelsus. My dear\r\nsir, you must begin your studies entirely anew.”\r\n\r\nSo saying, he stepped aside and wrote down a list of several books\r\ntreating of natural philosophy which he desired me to procure, and\r\ndismissed me after mentioning that in the beginning of the following\r\nweek he intended to commence a course of lectures upon natural\r\nphilosophy in its general relations, and that M. Waldman, a fellow\r\nprofessor, would lecture upon chemistry the alternate days that he\r\nomitted.\r\n\r\nI returned home not disappointed, for I have said that I had long\r\nconsidered those authors useless whom the professor reprobated; but I\r\nreturned not at all the more inclined to recur to these studies in any\r\nshape. M. Krempe was a little squat man with a gruff voice and a\r\nrepulsive countenance; the teacher, therefore, did not prepossess me in\r\nfavour of his pursuits. In rather a too philosophical and connected a\r\nstrain, perhaps, I have given an account of the conclusions I had come\r\nto concerning them in my early years. As a child I had not been\r\ncontent with the results promised by the modern professors of natural\r\nscience. With a confusion of ideas only to be accounted for by my\r\nextreme youth and my want of a guide on such matters, I had retrod the\r\nsteps of knowledge along the paths of time and exchanged the\r\ndiscoveries of recent inquirers for the dreams of forgotten alchemists.\r\nBesides, I had a contempt for the uses of modern natural philosophy.\r\nIt was very different when the masters of the science sought\r\nimmortality and power; such views, although futile, were grand; but now\r\nthe scene was changed. The ambition of the inquirer seemed to limit\r\nitself to the annihilation of those visions on which my interest in\r\nscience was chiefly founded. I was required to exchange chimeras of\r\nboundless grandeur for realities of little worth.\r\n\r\nSuch were my reflections during the first two or three days of my\r\nresidence at Ingolstadt, which were chiefly spent in becoming\r\nacquainted with the localities and the principal residents in my new\r\nabode. But as the ensuing week commenced, I thought of the information\r\nwhich M. Krempe had given me concerning the lectures. And although I\r\ncould not consent to go and hear that little conceited fellow deliver\r\nsentences out of a pulpit, I recollected what he had said of M.\r\nWaldman, whom I had never seen, as he had hitherto been out of town.\r\n\r\nPartly from curiosity and partly from idleness, I went into the lecturing\r\nroom, which M. Waldman entered shortly after. This professor was very\r\nunlike his colleague. He appeared about fifty years of age, but with an\r\naspect expressive of the greatest benevolence; a few grey hairs covered his\r\ntemples, but those at the back of his head were nearly black. His person\r\nwas short but remarkably erect and his voice the sweetest I had ever heard.\r\nHe began his lecture by a recapitulation of the history of chemistry and\r\nthe various improvements made by different men of learning, pronouncing\r\nwith fervour the names of the most distinguished discoverers. He then took\r\na cursory view of the present state of the science and explained many of\r\nits elementary terms. After having made a few preparatory experiments, he\r\nconcluded with a panegyric upon modern chemistry, the terms of which I\r\nshall never forget:\r\n\r\n“The ancient teachers of this science,” said he,\r\n“promised impossibilities and performed nothing. The modern masters\r\npromise very little; they know that metals cannot be transmuted and that\r\nthe elixir of life is a chimera but these philosophers, whose hands seem\r\nonly made to dabble in dirt, and their eyes to pore over the microscope or\r\ncrucible, have indeed performed miracles. They penetrate into the recesses\r\nof nature and show how she works in her hiding-places. They ascend into the\r\nheavens; they have discovered how the blood circulates, and the nature of\r\nthe air we breathe. They have acquired new and almost unlimited powers;\r\nthey can command the thunders of heaven, mimic the earthquake, and even\r\nmock the invisible world with its own shadows.”\r\n\r\nSuch were the professor’s words—rather let me say such the words of\r\nthe fate—enounced to destroy me. As he went on I felt as if my soul\r\nwere grappling with a palpable enemy; one by one the various keys were\r\ntouched which formed the mechanism of my being; chord after chord was\r\nsounded, and soon my mind was filled with one thought, one conception,\r\none purpose. So much has been done, exclaimed the soul of\r\nFrankenstein—more, far more, will I achieve; treading in the steps\r\nalready marked, I will pioneer a new way, explore unknown powers, and\r\nunfold to the world the deepest mysteries of creation.\r\n\r\nI closed not my eyes that night. My internal being was in a state of\r\ninsurrection and turmoil; I felt that order would thence arise, but I\r\nhad no power to produce it. By degrees, after the morning’s dawn,\r\nsleep came. I awoke, and my yesternight’s thoughts were as a dream.\r\nThere only remained a resolution to return to my ancient studies and to\r\ndevote myself to a science for which I believed myself to possess a\r\nnatural talent. On the same day I paid M. Waldman a visit. His\r\nmanners in private were even more mild and attractive than in public,\r\nfor there was a certain dignity in his mien during his lecture which in\r\nhis own house was replaced by the greatest affability and kindness. I\r\ngave him pretty nearly the same account of my former pursuits as I had\r\ngiven to his fellow professor. He heard with attention the little\r\nnarration concerning my studies and smiled at the names of Cornelius\r\nAgrippa and Paracelsus, but without the contempt that M. Krempe had\r\nexhibited. He said that “These were men to whose indefatigable zeal\r\nmodern philosophers were indebted for most of the foundations of their\r\nknowledge. They had left to us, as an easier task, to give new names\r\nand arrange in connected classifications the facts which they in a\r\ngreat degree had been the instruments of bringing to light. The\r\nlabours of men of genius, however erroneously directed, scarcely ever\r\nfail in ultimately turning to the solid advantage of mankind.” I\r\nlistened to his statement, which was delivered without any presumption\r\nor affectation, and then added that his lecture had removed my\r\nprejudices against modern chemists; I expressed myself in measured\r\nterms, with the modesty and deference due from a youth to his\r\ninstructor, without letting escape (inexperience in life would have\r\nmade me ashamed) any of the enthusiasm which stimulated my intended\r\nlabours. I requested his advice concerning the books I ought to\r\nprocure.\r\n\r\n“I am happy,” said M. Waldman, “to have gained a\r\ndisciple; and if your application equals your ability, I have no doubt of\r\nyour success. Chemistry is that branch of natural philosophy in which the\r\ngreatest improvements have been and may be made; it is on that account that\r\nI have made it my peculiar study; but at the same time, I have not\r\nneglected the other branches of science. A man would make but a very sorry\r\nchemist if he attended to that department of human knowledge alone. If your\r\nwish is to become really a man of science and not merely a petty\r\nexperimentalist, I should advise you to apply to every branch of natural\r\nphilosophy, including mathematics.”\r\n\r\nHe then took me into his laboratory and explained to me the uses of his\r\nvarious machines, instructing me as to what I ought to procure and\r\npromising me the use of his own when I should have advanced far enough in\r\nthe science not to derange their mechanism. He also gave me the list of\r\nbooks which I had requested, and I took my leave.\r\n\r\nThus ended a day memorable to me; it decided my future destiny.\r\n\r\n\r\n\r\n\r\nChapter 4\r\n\r\n\r\nFrom this day natural philosophy, and particularly chemistry, in the\r\nmost comprehensive sense of the term, became nearly my sole occupation.\r\nI read with ardour those works, so full of genius and discrimination,\r\nwhich modern inquirers have written on these subjects. I attended the\r\nlectures and cultivated the acquaintance of the men of science of the\r\nuniversity, and I found even in M. Krempe a great deal of sound sense\r\nand real information, combined, it is true, with a repulsive\r\nphysiognomy and manners, but not on that account the less valuable. In\r\nM. Waldman I found a true friend. His gentleness was never tinged by\r\ndogmatism, and his instructions were given with an air of frankness and\r\ngood nature that banished every idea of pedantry. In a thousand ways\r\nhe smoothed for me the path of knowledge and made the most abstruse\r\ninquiries clear and facile to my apprehension. My application was at\r\nfirst fluctuating and uncertain; it gained strength as I proceeded and\r\nsoon became so ardent and eager that the stars often disappeared in the\r\nlight of morning whilst I was yet engaged in my laboratory.\r\n\r\nAs I applied so closely, it may be easily conceived that my progress\r\nwas rapid. My ardour was indeed the astonishment of the students, and\r\nmy proficiency that of the masters. Professor Krempe often asked me,\r\nwith a sly smile, how Cornelius Agrippa went on, whilst M. Waldman\r\nexpressed the most heartfelt exultation in my progress. Two years\r\npassed in this manner, during which I paid no visit to Geneva, but was\r\nengaged, heart and soul, in the pursuit of some discoveries which I\r\nhoped to make. None but those who have experienced them can conceive\r\nof the enticements of science. In other studies you go as far as\r\nothers have gone before you, and there is nothing more to know; but in\r\na scientific pursuit there is continual food for discovery and wonder.\r\nA mind of moderate capacity which closely pursues one study must\r\ninfallibly arrive at great proficiency in that study; and I, who\r\ncontinually sought the attainment of one object of pursuit and was\r\nsolely wrapped up in this, improved so rapidly that at the end of two\r\nyears I made some discoveries in the improvement of some chemical\r\ninstruments, which procured me great esteem and admiration at the\r\nuniversity. When I had arrived at this point and had become as well\r\nacquainted with the theory and practice of natural philosophy as\r\ndepended on the lessons of any of the professors at Ingolstadt, my\r\nresidence there being no longer conducive to my improvements, I thought\r\nof returning to my friends and my native town, when an incident\r\nhappened that protracted my stay.\r\n\r\nOne of the phenomena which had peculiarly attracted my attention was\r\nthe structure of the human frame, and, indeed, any animal endued with\r\nlife. Whence, I often asked myself, did the principle of life proceed?\r\nIt was a bold question, and one which has ever been considered as a\r\nmystery; yet with how many things are we upon the brink of becoming\r\nacquainted, if cowardice or carelessness did not restrain our\r\ninquiries. I revolved these circumstances in my mind and determined\r\nthenceforth to apply myself more particularly to those branches of\r\nnatural philosophy which relate to physiology. Unless I had been\r\nanimated by an almost supernatural enthusiasm, my application to this\r\nstudy would have been irksome and almost intolerable. To examine the\r\ncauses of life, we must first have recourse to death. I became\r\nacquainted with the science of anatomy, but this was not sufficient; I\r\nmust also observe the natural decay and corruption of the human body.\r\nIn my education my father had taken the greatest precautions that my\r\nmind should be impressed with no supernatural horrors. I do not ever\r\nremember to have trembled at a tale of superstition or to have feared\r\nthe apparition of a spirit. Darkness had no effect upon my fancy, and\r\na churchyard was to me merely the receptacle of bodies deprived of\r\nlife, which, from being the seat of beauty and strength, had become\r\nfood for the worm. Now I was led to examine the cause and progress of\r\nthis decay and forced to spend days and nights in vaults and\r\ncharnel-houses. My attention was fixed upon every object the most\r\ninsupportable to the delicacy of the human feelings. I saw how the\r\nfine form of man was degraded and wasted; I beheld the corruption of\r\ndeath succeed to the blooming cheek of life; I saw how the worm\r\ninherited the wonders of the eye and brain. I paused, examining and\r\nanalysing all the minutiae of causation, as exemplified in the change\r\nfrom life to death, and death to life, until from the midst of this\r\ndarkness a sudden light broke in upon me—a light so brilliant and\r\nwondrous, yet so simple, that while I became dizzy with the immensity\r\nof the prospect which it illustrated, I was surprised that among so\r\nmany men of genius who had directed their inquiries towards the same\r\nscience, that I alone should be reserved to discover so astonishing a\r\nsecret.\r\n\r\nRemember, I am not recording the vision of a madman. The sun does not\r\nmore certainly shine in the heavens than that which I now affirm is\r\ntrue. Some miracle might have produced it, yet the stages of the\r\ndiscovery were distinct and probable. After days and nights of\r\nincredible labour and fatigue, I succeeded in discovering the cause of\r\ngeneration and life; nay, more, I became myself capable of bestowing\r\nanimation upon lifeless matter.\r\n\r\nThe astonishment which I had at first experienced on this discovery\r\nsoon gave place to delight and rapture. After so much time spent in\r\npainful labour, to arrive at once at the summit of my desires was the\r\nmost gratifying consummation of my toils. But this discovery was so\r\ngreat and overwhelming that all the steps by which I had been\r\nprogressively led to it were obliterated, and I beheld only the result.\r\nWhat had been the study and desire of the wisest men since the creation\r\nof the world was now within my grasp. Not that, like a magic scene, it\r\nall opened upon me at once: the information I had obtained was of a\r\nnature rather to direct my endeavours so soon as I should point them\r\ntowards the object of my search than to exhibit that object already\r\naccomplished. I was like the Arabian who had been buried with the dead\r\nand found a passage to life, aided only by one glimmering and seemingly\r\nineffectual light.\r\n\r\nI see by your eagerness and the wonder and hope which your eyes\r\nexpress, my friend, that you expect to be informed of the secret with\r\nwhich I am acquainted; that cannot be; listen patiently until the end\r\nof my story, and you will easily perceive why I am reserved upon that\r\nsubject. I will not lead you on, unguarded and ardent as I then was,\r\nto your destruction and infallible misery. Learn from me, if not by my\r\nprecepts, at least by my example, how dangerous is the acquirement of\r\nknowledge and how much happier that man is who believes his native town\r\nto be the world, than he who aspires to become greater than his nature\r\nwill allow.\r\n\r\nWhen I found so astonishing a power placed within my hands, I hesitated\r\na long time concerning the manner in which I should employ it.\r\nAlthough I possessed the capacity of bestowing animation, yet to\r\nprepare a frame for the reception of it, with all its intricacies of\r\nfibres, muscles, and veins, still remained a work of inconceivable\r\ndifficulty and labour. I doubted at first whether I should attempt the\r\ncreation of a being like myself, or one of simpler organization; but my\r\nimagination was too much exalted by my first success to permit me to\r\ndoubt of my ability to give life to an animal as complex and wonderful\r\nas man. The materials at present within my command hardly appeared\r\nadequate to so arduous an undertaking, but I doubted not that I should\r\nultimately succeed. I prepared myself for a multitude of reverses; my\r\noperations might be incessantly baffled, and at last my work be\r\nimperfect, yet when I considered the improvement which every day takes\r\nplace in science and mechanics, I was encouraged to hope my present\r\nattempts would at least lay the foundations of future success. Nor\r\ncould I consider the magnitude and complexity of my plan as any\r\nargument of its impracticability. It was with these feelings that I\r\nbegan the creation of a human being. As the minuteness of the parts\r\nformed a great hindrance to my speed, I resolved, contrary to my first\r\nintention, to make the being of a gigantic stature, that is to say,\r\nabout eight feet in height, and proportionably large. After having\r\nformed this determination and having spent some months in successfully\r\ncollecting and arranging my materials, I began.\r\n\r\nNo one can conceive the variety of feelings which bore me onwards, like\r\na hurricane, in the first enthusiasm of success. Life and death\r\nappeared to me ideal bounds, which I should first break through, and\r\npour a torrent of light into our dark world. A new species would bless\r\nme as its creator and source; many happy and excellent natures would\r\nowe their being to me. No father could claim the gratitude of his\r\nchild so completely as I should deserve theirs. Pursuing these\r\nreflections, I thought that if I could bestow animation upon lifeless\r\nmatter, I might in process of time (although I now found it impossible)\r\nrenew life where death had apparently devoted the body to corruption.\r\n\r\nThese thoughts supported my spirits, while I pursued my undertaking\r\nwith unremitting ardour. My cheek had grown pale with study, and my\r\nperson had become emaciated with confinement. Sometimes, on the very\r\nbrink of certainty, I failed; yet still I clung to the hope which the\r\nnext day or the next hour might realise. One secret which I alone\r\npossessed was the hope to which I had dedicated myself; and the moon\r\ngazed on my midnight labours, while, with unrelaxed and breathless\r\neagerness, I pursued nature to her hiding-places. Who shall conceive\r\nthe horrors of my secret toil as I dabbled among the unhallowed damps\r\nof the grave or tortured the living animal to animate the lifeless\r\nclay? My limbs now tremble, and my eyes swim with the remembrance; but\r\nthen a resistless and almost frantic impulse urged me forward; I seemed\r\nto have lost all soul or sensation but for this one pursuit. It was\r\nindeed but a passing trance, that only made me feel with renewed\r\nacuteness so soon as, the unnatural stimulus ceasing to operate, I had\r\nreturned to my old habits. I collected bones from charnel-houses and\r\ndisturbed, with profane fingers, the tremendous secrets of the human\r\nframe. In a solitary chamber, or rather cell, at the top of the house,\r\nand separated from all the other apartments by a gallery and staircase,\r\nI kept my workshop of filthy creation; my eyeballs were starting from\r\ntheir sockets in attending to the details of my employment. The\r\ndissecting room and the slaughter-house furnished many of my materials;\r\nand often did my human nature turn with loathing from my occupation,\r\nwhilst, still urged on by an eagerness which perpetually increased, I\r\nbrought my work near to a conclusion.\r\n\r\nThe summer months passed while I was thus engaged, heart and soul, in\r\none pursuit. It was a most beautiful season; never did the fields\r\nbestow a more plentiful harvest or the vines yield a more luxuriant\r\nvintage, but my eyes were insensible to the charms of nature. And the\r\nsame feelings which made me neglect the scenes around me caused me also\r\nto forget those friends who were so many miles absent, and whom I had\r\nnot seen for so long a time. I knew my silence disquieted them, and I\r\nwell remembered the words of my father: “I know that while you are\r\npleased with yourself you will think of us with affection, and we shall\r\nhear regularly from you. You must pardon me if I regard any\r\ninterruption in your correspondence as a proof that your other duties\r\nare equally neglected.”\r\n\r\nI knew well therefore what would be my father’s feelings, but I could\r\nnot tear my thoughts from my employment, loathsome in itself, but which\r\nhad taken an irresistible hold of my imagination. I wished, as it\r\nwere, to procrastinate all that related to my feelings of affection\r\nuntil the great object, which swallowed up every habit of my nature,\r\nshould be completed.\r\n\r\nI then thought that my father would be unjust if he ascribed my neglect\r\nto vice or faultiness on my part, but I am now convinced that he was\r\njustified in conceiving that I should not be altogether free from\r\nblame. A human being in perfection ought always to preserve a calm and\r\npeaceful mind and never to allow passion or a transitory desire to\r\ndisturb his tranquillity. I do not think that the pursuit of knowledge\r\nis an exception to this rule. If the study to which you apply yourself\r\nhas a tendency to weaken your affections and to destroy your taste for\r\nthose simple pleasures in which no alloy can possibly mix, then that\r\nstudy is certainly unlawful, that is to say, not befitting the human\r\nmind. If this rule were always observed; if no man allowed any pursuit\r\nwhatsoever to interfere with the tranquillity of his domestic\r\naffections, Greece had not been enslaved, Cæsar would have spared his\r\ncountry, America would have been discovered more gradually, and the\r\nempires of Mexico and Peru had not been destroyed.\r\n\r\nBut I forget that I am moralizing in the most interesting part of my\r\ntale, and your looks remind me to proceed.\r\n\r\nMy father made no reproach in his letters and only took notice of my\r\nsilence by inquiring into my occupations more particularly than before.\r\nWinter, spring, and summer passed away during my labours; but I did not\r\nwatch the blossom or the expanding leaves—sights which before always\r\nyielded me supreme delight—so deeply was I engrossed in my\r\noccupation. The leaves of that year had withered before my work drew near\r\nto a close, and now every day showed me more plainly how well I had\r\nsucceeded. But my enthusiasm was checked by my anxiety, and I appeared\r\nrather like one doomed by slavery to toil in the mines, or any other\r\nunwholesome trade than an artist occupied by his favourite employment.\r\nEvery night I was oppressed by a slow fever, and I became nervous to a most\r\npainful degree; the fall of a leaf startled me, and I shunned my fellow\r\ncreatures as if I had been guilty of a crime. Sometimes I grew alarmed at\r\nthe wreck I perceived that I had become; the energy of my purpose alone\r\nsustained me: my labours would soon end, and I believed that exercise and\r\namusement would then drive away incipient disease; and I promised myself\r\nboth of these when my creation should be complete.\r\n\r\n\r\n\r\n\r\nChapter 5\r\n\r\n\r\nIt was on a dreary night of November that I beheld the accomplishment\r\nof my toils. With an anxiety that almost amounted to agony, I\r\ncollected the instruments of life around me, that I might infuse a\r\nspark of being into the lifeless thing that lay at my feet. It was\r\nalready one in the morning; the rain pattered dismally against the\r\npanes, and my candle was nearly burnt out, when, by the glimmer of the\r\nhalf-extinguished light, I saw the dull yellow eye of the creature\r\nopen; it breathed hard, and a convulsive motion agitated its limbs.\r\n\r\nHow can I describe my emotions at this catastrophe, or how delineate\r\nthe wretch whom with such infinite pains and care I had endeavoured to\r\nform? His limbs were in proportion, and I had selected his features as\r\nbeautiful. Beautiful! Great God! His yellow skin scarcely covered\r\nthe work of muscles and arteries beneath; his hair was of a lustrous\r\nblack, and flowing; his teeth of a pearly whiteness; but these\r\nluxuriances only formed a more horrid contrast with his watery eyes,\r\nthat seemed almost of the same colour as the dun-white sockets in which\r\nthey were set, his shrivelled complexion and straight black lips.\r\n\r\nThe different accidents of life are not so changeable as the feelings\r\nof human nature. I had worked hard for nearly two years, for the sole\r\npurpose of infusing life into an inanimate body. For this I had\r\ndeprived myself of rest and health. I had desired it with an ardour\r\nthat far exceeded moderation; but now that I had finished, the beauty\r\nof the dream vanished, and breathless horror and disgust filled my\r\nheart. Unable to endure the aspect of the being I had created, I\r\nrushed out of the room and continued a long time traversing my\r\nbed-chamber, unable to compose my mind to sleep. At length lassitude\r\nsucceeded to the tumult I had before endured, and I threw myself on the\r\nbed in my clothes, endeavouring to seek a few moments of forgetfulness.\r\nBut it was in vain; I slept, indeed, but I was disturbed by the wildest\r\ndreams. I thought I saw Elizabeth, in the bloom of health, walking in\r\nthe streets of Ingolstadt. Delighted and surprised, I embraced her,\r\nbut as I imprinted the first kiss on her lips, they became livid with\r\nthe hue of death; her features appeared to change, and I thought that I\r\nheld the corpse of my dead mother in my arms; a shroud enveloped her\r\nform, and I saw the grave-worms crawling in the folds of the flannel.\r\nI started from my sleep with horror; a cold dew covered my forehead, my\r\nteeth chattered, and every limb became convulsed; when, by the dim and\r\nyellow light of the moon, as it forced its way through the window\r\nshutters, I beheld the wretch—the miserable monster whom I had\r\ncreated. He held up the curtain of the bed; and his eyes, if eyes they\r\nmay be called, were fixed on me. His jaws opened, and he muttered some\r\ninarticulate sounds, while a grin wrinkled his cheeks. He might have\r\nspoken, but I did not hear; one hand was stretched out, seemingly to\r\ndetain me, but I escaped and rushed downstairs. I took refuge in the\r\ncourtyard belonging to the house which I inhabited, where I remained\r\nduring the rest of the night, walking up and down in the greatest\r\nagitation, listening attentively, catching and fearing each sound as if\r\nit were to announce the approach of the demoniacal corpse to which I\r\nhad so miserably given life.\r\n\r\nOh! No mortal could support the horror of that countenance. A mummy\r\nagain endued with animation could not be so hideous as that wretch. I\r\nhad gazed on him while unfinished; he was ugly then, but when those\r\nmuscles and joints were rendered capable of motion, it became a thing\r\nsuch as even Dante could not have conceived.\r\n\r\nI passed the night wretchedly. Sometimes my pulse beat so quickly and\r\nhardly that I felt the palpitation of every artery; at others, I nearly\r\nsank to the ground through languor and extreme weakness. Mingled with\r\nthis horror, I felt the bitterness of disappointment; dreams that had\r\nbeen my food and pleasant rest for so long a space were now become a\r\nhell to me; and the change was so rapid, the overthrow so complete!\r\n\r\nMorning, dismal and wet, at length dawned and discovered to my\r\nsleepless and aching eyes the church of Ingolstadt, its white steeple\r\nand clock, which indicated the sixth hour. The porter opened the gates\r\nof the court, which had that night been my asylum, and I issued into\r\nthe streets, pacing them with quick steps, as if I sought to avoid the\r\nwretch whom I feared every turning of the street would present to my\r\nview. I did not dare return to the apartment which I inhabited, but\r\nfelt impelled to hurry on, although drenched by the rain which poured\r\nfrom a black and comfortless sky.\r\n\r\nI continued walking in this manner for some time, endeavouring by\r\nbodily exercise to ease the load that weighed upon my mind. I\r\ntraversed the streets without any clear conception of where I was or\r\nwhat I was doing. My heart palpitated in the sickness of fear, and I\r\nhurried on with irregular steps, not daring to look about me:\r\n \r\n Like one who, on a lonely road,\r\n Doth walk in fear and dread,\r\n And, having once turned round, walks on,\r\n And turns no more his head;\r\n Because he knows a frightful fiend\r\n Doth close behind him tread.\r\n \r\n [Coleridge’s “Ancient Mariner.”]\r\n\r\n\r\n\r\nContinuing thus, I came at length opposite to the inn at which the various\r\ndiligences and carriages usually stopped. Here I paused, I knew not why;\r\nbut I remained some minutes with my eyes fixed on a coach that was coming\r\ntowards me from the other end of the street. As it drew nearer I observed\r\nthat it was the Swiss diligence; it stopped just where I was standing, and\r\non the door being opened, I perceived Henry Clerval, who, on seeing me,\r\ninstantly sprung out. “My dear Frankenstein,” exclaimed he,\r\n“how glad I am to see you! How fortunate that you should be here at\r\nthe very moment of my alighting!”\r\n\r\nNothing could equal my delight on seeing Clerval; his presence brought back\r\nto my thoughts my father, Elizabeth, and all those scenes of home so dear\r\nto my recollection. I grasped his hand, and in a moment forgot my horror\r\nand misfortune; I felt suddenly, and for the first time during many months,\r\ncalm and serene joy. I welcomed my friend, therefore, in the most cordial\r\nmanner, and we walked towards my college. Clerval continued talking for\r\nsome time about our mutual friends and his own good fortune in being\r\npermitted to come to Ingolstadt. “You may easily believe,” said\r\nhe, “how great was the difficulty to persuade my father that all\r\nnecessary knowledge was not comprised in the noble art of book-keeping;\r\nand, indeed, I believe I left him incredulous to the last, for his constant\r\nanswer to my unwearied entreaties was the same as that of the Dutch\r\nschoolmaster in The Vicar of Wakefield: ‘I have ten thousand florins\r\na year without Greek, I eat heartily without Greek.’ But his\r\naffection for me at length overcame his dislike of learning, and he has\r\npermitted me to undertake a voyage of discovery to the land of\r\nknowledge.”\r\n\r\n“It gives me the greatest delight to see you; but tell me how you left\r\nmy father, brothers, and Elizabeth.”\r\n\r\n“Very well, and very happy, only a little uneasy that they hear from\r\nyou so seldom. By the by, I mean to lecture you a little upon their\r\naccount myself. But, my dear Frankenstein,” continued he, stopping\r\nshort and gazing full in my face, “I did not before remark how very ill\r\nyou appear; so thin and pale; you look as if you had been watching for\r\nseveral nights.”\r\n\r\n“You have guessed right; I have lately been so deeply engaged in one\r\noccupation that I have not allowed myself sufficient rest, as you see;\r\nbut I hope, I sincerely hope, that all these employments are now at an\r\nend and that I am at length free.”\r\n\r\nI trembled excessively; I could not endure to think of, and far less to\r\nallude to, the occurrences of the preceding night. I walked with a\r\nquick pace, and we soon arrived at my college. I then reflected, and\r\nthe thought made me shiver, that the creature whom I had left in my\r\napartment might still be there, alive and walking about. I dreaded to\r\nbehold this monster, but I feared still more that Henry should see him.\r\nEntreating him, therefore, to remain a few minutes at the bottom of the\r\nstairs, I darted up towards my own room. My hand was already on the\r\nlock of the door before I recollected myself. I then paused, and a\r\ncold shivering came over me. I threw the door forcibly open, as\r\nchildren are accustomed to do when they expect a spectre to stand in\r\nwaiting for them on the other side; but nothing appeared. I stepped\r\nfearfully in: the apartment was empty, and my bedroom was also freed\r\nfrom its hideous guest. I could hardly believe that so great a good\r\nfortune could have befallen me, but when I became assured that my enemy\r\nhad indeed fled, I clapped my hands for joy and ran down to Clerval.\r\n\r\nWe ascended into my room, and the servant presently brought breakfast;\r\nbut I was unable to contain myself. It was not joy only that possessed\r\nme; I felt my flesh tingle with excess of sensitiveness, and my pulse\r\nbeat rapidly. I was unable to remain for a single instant in the same\r\nplace; I jumped over the chairs, clapped my hands, and laughed aloud.\r\nClerval at first attributed my unusual spirits to joy on his arrival,\r\nbut when he observed me more attentively, he saw a wildness in my eyes\r\nfor which he could not account, and my loud, unrestrained, heartless\r\nlaughter frightened and astonished him.\r\n\r\n“My dear Victor,” cried he, “what, for God’s sake,\r\nis the matter? Do not laugh in that manner. How ill you are! What is the\r\ncause of all this?”\r\n\r\n“Do not ask me,” cried I, putting my hands before my eyes, for I\r\nthought I saw the dreaded spectre glide into the room; “_he_ can\r\ntell. Oh, save me! Save me!” I imagined that the monster seized me;\r\nI struggled furiously and fell down in a fit.\r\n\r\nPoor Clerval! What must have been his feelings? A meeting, which he\r\nanticipated with such joy, so strangely turned to bitterness. But I\r\nwas not the witness of his grief, for I was lifeless and did not\r\nrecover my senses for a long, long time.\r\n\r\nThis was the commencement of a nervous fever which confined me for\r\nseveral months. During all that time Henry was my only nurse. I\r\nafterwards learned that, knowing my father’s advanced age and unfitness\r\nfor so long a journey, and how wretched my sickness would make\r\nElizabeth, he spared them this grief by concealing the extent of my\r\ndisorder. He knew that I could not have a more kind and attentive\r\nnurse than himself; and, firm in the hope he felt of my recovery, he\r\ndid not doubt that, instead of doing harm, he performed the kindest\r\naction that he could towards them.\r\n\r\nBut I was in reality very ill, and surely nothing but the unbounded and\r\nunremitting attentions of my friend could have restored me to life.\r\nThe form of the monster on whom I had bestowed existence was for ever\r\nbefore my eyes, and I raved incessantly concerning him. Doubtless my\r\nwords surprised Henry; he at first believed them to be the wanderings\r\nof my disturbed imagination, but the pertinacity with which I\r\ncontinually recurred to the same subject persuaded him that my disorder\r\nindeed owed its origin to some uncommon and terrible event.\r\n\r\nBy very slow degrees, and with frequent relapses that alarmed and\r\ngrieved my friend, I recovered. I remember the first time I became\r\ncapable of observing outward objects with any kind of pleasure, I\r\nperceived that the fallen leaves had disappeared and that the young\r\nbuds were shooting forth from the trees that shaded my window. It was\r\na divine spring, and the season contributed greatly to my\r\nconvalescence. I felt also sentiments of joy and affection revive in\r\nmy bosom; my gloom disappeared, and in a short time I became as\r\ncheerful as before I was attacked by the fatal passion.\r\n\r\n“Dearest Clerval,” exclaimed I, “how kind, how very good\r\nyou are to me. This whole winter, instead of being spent in study, as you\r\npromised yourself, has been consumed in my sick room. How shall I ever\r\nrepay you? I feel the greatest remorse for the disappointment of which I\r\nhave been the occasion, but you will forgive me.”\r\n\r\n“You will repay me entirely if you do not discompose yourself, but get\r\nwell as fast as you can; and since you appear in such good spirits, I\r\nmay speak to you on one subject, may I not?”\r\n\r\nI trembled. One subject! What could it be? Could he allude to an object on\r\nwhom I dared not even think?\r\n\r\n“Compose yourself,” said Clerval, who observed my change of\r\ncolour, “I will not mention it if it agitates you; but your father\r\nand cousin would be very happy if they received a letter from you in your\r\nown handwriting. They hardly know how ill you have been and are uneasy at\r\nyour long silence.”\r\n\r\n“Is that all, my dear Henry? How could you suppose that my first\r\nthought would not fly towards those dear, dear friends whom I love and\r\nwho are so deserving of my love?”\r\n\r\n“If this is your present temper, my friend, you will perhaps be glad\r\nto see a letter that has been lying here some days for you; it is from\r\nyour cousin, I believe.”\r\n\r\n\r\n\r\n\r\nChapter 6\r\n\r\n\r\nClerval then put the following letter into my hands. It was from my\r\nown Elizabeth:\r\n\r\n“My dearest Cousin,\r\n\r\n“You have been ill, very ill, and even the constant letters of dear\r\nkind Henry are not sufficient to reassure me on your account. You are\r\nforbidden to write—to hold a pen; yet one word from you, dear Victor,\r\nis necessary to calm our apprehensions. For a long time I have thought\r\nthat each post would bring this line, and my persuasions have\r\nrestrained my uncle from undertaking a journey to Ingolstadt. I have\r\nprevented his encountering the inconveniences and perhaps dangers of so\r\nlong a journey, yet how often have I regretted not being able to\r\nperform it myself! I figure to myself that the task of attending on\r\nyour sickbed has devolved on some mercenary old nurse, who could never\r\nguess your wishes nor minister to them with the care and affection of\r\nyour poor cousin. Yet that is over now: Clerval writes that indeed\r\nyou are getting better. I eagerly hope that you will confirm this\r\nintelligence soon in your own handwriting.\r\n\r\n“Get well—and return to us. You will find a happy, cheerful home and\r\nfriends who love you dearly. Your father’s health is vigorous, and he\r\nasks but to see you, but to be assured that you are well; and not a\r\ncare will ever cloud his benevolent countenance. How pleased you would\r\nbe to remark the improvement of our Ernest! He is now sixteen and full\r\nof activity and spirit. He is desirous to be a true Swiss and to enter\r\ninto foreign service, but we cannot part with him, at least until his\r\nelder brother returns to us. My uncle is not pleased with the idea of\r\na military career in a distant country, but Ernest never had your\r\npowers of application. He looks upon study as an odious fetter; his\r\ntime is spent in the open air, climbing the hills or rowing on the\r\nlake. I fear that he will become an idler unless we yield the point\r\nand permit him to enter on the profession which he has selected.\r\n\r\n“Little alteration, except the growth of our dear children, has taken\r\nplace since you left us. The blue lake and snow-clad mountains—they\r\nnever change; and I think our placid home and our contented hearts are\r\nregulated by the same immutable laws. My trifling occupations take up\r\nmy time and amuse me, and I am rewarded for any exertions by seeing\r\nnone but happy, kind faces around me. Since you left us, but one\r\nchange has taken place in our little household. Do you remember on\r\nwhat occasion Justine Moritz entered our family? Probably you do not;\r\nI will relate her history, therefore in a few words. Madame Moritz,\r\nher mother, was a widow with four children, of whom Justine was the\r\nthird. This girl had always been the favourite of her father, but\r\nthrough a strange perversity, her mother could not endure her, and\r\nafter the death of M. Moritz, treated her very ill. My aunt observed\r\nthis, and when Justine was twelve years of age, prevailed on her mother\r\nto allow her to live at our house. The republican institutions of our\r\ncountry have produced simpler and happier manners than those which\r\nprevail in the great monarchies that surround it. Hence there is less\r\ndistinction between the several classes of its inhabitants; and the\r\nlower orders, being neither so poor nor so despised, their manners are\r\nmore refined and moral. A servant in Geneva does not mean the same\r\nthing as a servant in France and England. Justine, thus received in\r\nour family, learned the duties of a servant, a condition which, in our\r\nfortunate country, does not include the idea of ignorance and a\r\nsacrifice of the dignity of a human being.\r\n\r\n“Justine, you may remember, was a great favourite of yours; and I\r\nrecollect you once remarked that if you were in an ill humour, one\r\nglance from Justine could dissipate it, for the same reason that\r\nAriosto gives concerning the beauty of Angelica—she looked so\r\nfrank-hearted and happy. My aunt conceived a great attachment for her,\r\nby which she was induced to give her an education superior to that\r\nwhich she had at first intended. This benefit was fully repaid;\r\nJustine was the most grateful little creature in the world: I do not\r\nmean that she made any professions I never heard one pass her lips, but\r\nyou could see by her eyes that she almost adored her protectress.\r\nAlthough her disposition was gay and in many respects inconsiderate,\r\nyet she paid the greatest attention to every gesture of my aunt. She\r\nthought her the model of all excellence and endeavoured to imitate her\r\nphraseology and manners, so that even now she often reminds me of her.\r\n\r\n“When my dearest aunt died every one was too much occupied in their own\r\ngrief to notice poor Justine, who had attended her during her illness\r\nwith the most anxious affection. Poor Justine was very ill; but other\r\ntrials were reserved for her.\r\n\r\n“One by one, her brothers and sister died; and her mother, with the\r\nexception of her neglected daughter, was left childless. The\r\nconscience of the woman was troubled; she began to think that the\r\ndeaths of her favourites was a judgement from heaven to chastise her\r\npartiality. She was a Roman Catholic; and I believe her confessor\r\nconfirmed the idea which she had conceived. Accordingly, a few months\r\nafter your departure for Ingolstadt, Justine was called home by her\r\nrepentant mother. Poor girl! She wept when she quitted our house; she\r\nwas much altered since the death of my aunt; grief had given softness\r\nand a winning mildness to her manners, which had before been remarkable\r\nfor vivacity. Nor was her residence at her mother’s house of a nature\r\nto restore her gaiety. The poor woman was very vacillating in her\r\nrepentance. She sometimes begged Justine to forgive her unkindness,\r\nbut much oftener accused her of having caused the deaths of her\r\nbrothers and sister. Perpetual fretting at length threw Madame Moritz\r\ninto a decline, which at first increased her irritability, but she is\r\nnow at peace for ever. She died on the first approach of cold weather,\r\nat the beginning of this last winter. Justine has just returned to us;\r\nand I assure you I love her tenderly. She is very clever and gentle,\r\nand extremely pretty; as I mentioned before, her mien and her\r\nexpression continually remind me of my dear aunt.\r\n\r\n“I must say also a few words to you, my dear cousin, of little darling\r\nWilliam. I wish you could see him; he is very tall of his age, with\r\nsweet laughing blue eyes, dark eyelashes, and curling hair. When he\r\nsmiles, two little dimples appear on each cheek, which are rosy with\r\nhealth. He has already had one or two little _wives,_ but Louisa Biron\r\nis his favourite, a pretty little girl of five years of age.\r\n\r\n“Now, dear Victor, I dare say you wish to be indulged in a little\r\ngossip concerning the good people of Geneva. The pretty Miss Mansfield\r\nhas already received the congratulatory visits on her approaching\r\nmarriage with a young Englishman, John Melbourne, Esq. Her ugly\r\nsister, Manon, married M. Duvillard, the rich banker, last autumn. Your\r\nfavourite schoolfellow, Louis Manoir, has suffered several misfortunes\r\nsince the departure of Clerval from Geneva. But he has already\r\nrecovered his spirits, and is reported to be on the point of marrying a\r\nlively pretty Frenchwoman, Madame Tavernier. She is a widow, and much\r\nolder than Manoir; but she is very much admired, and a favourite with\r\neverybody.\r\n\r\n“I have written myself into better spirits, dear cousin; but my anxiety\r\nreturns upon me as I conclude. Write, dearest Victor,—one line—one\r\nword will be a blessing to us. Ten thousand thanks to Henry for his\r\nkindness, his affection, and his many letters; we are sincerely\r\ngrateful. Adieu! my cousin; take care of yourself; and, I entreat\r\nyou, write!\r\n\r\n“Elizabeth Lavenza.\r\n\r\n\r\n“Geneva, March 18th, 17—.”\r\n\r\n\r\n\r\n“Dear, dear Elizabeth!” I exclaimed, when I had read her\r\nletter: “I will write instantly and relieve them from the anxiety\r\nthey must feel.” I wrote, and this exertion greatly fatigued me; but\r\nmy convalescence had commenced, and proceeded regularly. In another\r\nfortnight I was able to leave my chamber.\r\n\r\nOne of my first duties on my recovery was to introduce Clerval to the\r\nseveral professors of the university. In doing this, I underwent a\r\nkind of rough usage, ill befitting the wounds that my mind had\r\nsustained. Ever since the fatal night, the end of my labours, and the\r\nbeginning of my misfortunes, I had conceived a violent antipathy even\r\nto the name of natural philosophy. When I was otherwise quite restored\r\nto health, the sight of a chemical instrument would renew all the agony\r\nof my nervous symptoms. Henry saw this, and had removed all my\r\napparatus from my view. He had also changed my apartment; for he\r\nperceived that I had acquired a dislike for the room which had\r\npreviously been my laboratory. But these cares of Clerval were made of\r\nno avail when I visited the professors. M. Waldman inflicted torture\r\nwhen he praised, with kindness and warmth, the astonishing progress I\r\nhad made in the sciences. He soon perceived that I disliked the\r\nsubject; but not guessing the real cause, he attributed my feelings to\r\nmodesty, and changed the subject from my improvement, to the science\r\nitself, with a desire, as I evidently saw, of drawing me out. What\r\ncould I do? He meant to please, and he tormented me. I felt as if he\r\nhad placed carefully, one by one, in my view those instruments which\r\nwere to be afterwards used in putting me to a slow and cruel death. I\r\nwrithed under his words, yet dared not exhibit the pain I felt.\r\nClerval, whose eyes and feelings were always quick in discerning the\r\nsensations of others, declined the subject, alleging, in excuse, his\r\ntotal ignorance; and the conversation took a more general turn. I\r\nthanked my friend from my heart, but I did not speak. I saw plainly\r\nthat he was surprised, but he never attempted to draw my secret from\r\nme; and although I loved him with a mixture of affection and reverence\r\nthat knew no bounds, yet I could never persuade myself to confide in\r\nhim that event which was so often present to my recollection, but which\r\nI feared the detail to another would only impress more deeply.\r\n\r\nM. Krempe was not equally docile; and in my condition at that time, of\r\nalmost insupportable sensitiveness, his harsh blunt encomiums gave me even\r\nmore pain than the benevolent approbation of M. Waldman. “D—n\r\nthe fellow!” cried he; “why, M. Clerval, I assure you he has\r\noutstript us all. Ay, stare if you please; but it is nevertheless true. A\r\nyoungster who, but a few years ago, believed in Cornelius Agrippa as firmly\r\nas in the gospel, has now set himself at the head of the university; and if\r\nhe is not soon pulled down, we shall all be out of countenance.—Ay,\r\nay,” continued he, observing my face expressive of suffering,\r\n“M. Frankenstein is modest; an excellent quality in a young man.\r\nYoung men should be diffident of themselves, you know, M. Clerval: I was\r\nmyself when young; but that wears out in a very short time.”\r\n\r\nM. Krempe had now commenced an eulogy on himself, which happily turned\r\nthe conversation from a subject that was so annoying to me.\r\n\r\nClerval had never sympathised in my tastes for natural science; and his\r\nliterary pursuits differed wholly from those which had occupied me. He\r\ncame to the university with the design of making himself complete\r\nmaster of the oriental languages, and thus he should open a field for\r\nthe plan of life he had marked out for himself. Resolved to pursue no\r\ninglorious career, he turned his eyes toward the East, as affording\r\nscope for his spirit of enterprise. The Persian, Arabic, and Sanskrit\r\nlanguages engaged his attention, and I was easily induced to enter on\r\nthe same studies. Idleness had ever been irksome to me, and now that I\r\nwished to fly from reflection, and hated my former studies, I felt\r\ngreat relief in being the fellow-pupil with my friend, and found not\r\nonly instruction but consolation in the works of the orientalists. I\r\ndid not, like him, attempt a critical knowledge of their dialects, for\r\nI did not contemplate making any other use of them than temporary\r\namusement. I read merely to understand their meaning, and they well\r\nrepaid my labours. Their melancholy is soothing, and their joy\r\nelevating, to a degree I never experienced in studying the authors of\r\nany other country. When you read their writings, life appears to\r\nconsist in a warm sun and a garden of roses,—in the smiles and frowns\r\nof a fair enemy, and the fire that consumes your own heart. How\r\ndifferent from the manly and heroical poetry of Greece and Rome!\r\n\r\nSummer passed away in these occupations, and my return to Geneva was\r\nfixed for the latter end of autumn; but being delayed by several\r\naccidents, winter and snow arrived, the roads were deemed impassable,\r\nand my journey was retarded until the ensuing spring. I felt this\r\ndelay very bitterly; for I longed to see my native town and my beloved\r\nfriends. My return had only been delayed so long, from an\r\nunwillingness to leave Clerval in a strange place, before he had become\r\nacquainted with any of its inhabitants. The winter, however, was spent\r\ncheerfully; and although the spring was uncommonly late, when it came\r\nits beauty compensated for its dilatoriness.\r\n\r\nThe month of May had already commenced, and I expected the letter daily\r\nwhich was to fix the date of my departure, when Henry proposed a\r\npedestrian tour in the environs of Ingolstadt, that I might bid a\r\npersonal farewell to the country I had so long inhabited. I acceded\r\nwith pleasure to this proposition: I was fond of exercise, and Clerval\r\nhad always been my favourite companion in the ramble of this nature\r\nthat I had taken among the scenes of my native country.\r\n\r\nWe passed a fortnight in these perambulations: my health and spirits\r\nhad long been restored, and they gained additional strength from the\r\nsalubrious air I breathed, the natural incidents of our progress, and\r\nthe conversation of my friend. Study had before secluded me from the\r\nintercourse of my fellow-creatures, and rendered me unsocial; but\r\nClerval called forth the better feelings of my heart; he again taught\r\nme to love the aspect of nature, and the cheerful faces of children.\r\nExcellent friend! how sincerely you did love me, and endeavour to\r\nelevate my mind until it was on a level with your own. A selfish\r\npursuit had cramped and narrowed me, until your gentleness and\r\naffection warmed and opened my senses; I became the same happy creature\r\nwho, a few years ago, loved and beloved by all, had no sorrow or care.\r\nWhen happy, inanimate nature had the power of bestowing on me the most\r\ndelightful sensations. A serene sky and verdant fields filled me with\r\necstasy. The present season was indeed divine; the flowers of spring\r\nbloomed in the hedges, while those of summer were already in bud. I\r\nwas undisturbed by thoughts which during the preceding year had pressed\r\nupon me, notwithstanding my endeavours to throw them off, with an\r\ninvincible burden.\r\n\r\nHenry rejoiced in my gaiety, and sincerely sympathised in my feelings: he\r\nexerted himself to amuse me, while he expressed the sensations that filled\r\nhis soul. The resources of his mind on this occasion were truly\r\nastonishing: his conversation was full of imagination; and very often, in\r\nimitation of the Persian and Arabic writers, he invented tales of wonderful\r\nfancy and passion. At other times he repeated my favourite poems, or drew\r\nme out into arguments, which he supported with great ingenuity.\r\n\r\nWe returned to our college on a Sunday afternoon: the peasants were\r\ndancing, and every one we met appeared gay and happy. My own spirits were\r\nhigh, and I bounded along with feelings of unbridled joy and hilarity.\r\n\r\n\r\n\r\n\r\nChapter 7\r\n\r\n\r\nOn my return, I found the following letter from my father:—\r\n\r\n“My dear Victor,\r\n\r\n“You have probably waited impatiently for a letter to fix the date of\r\nyour return to us; and I was at first tempted to write only a few\r\nlines, merely mentioning the day on which I should expect you. But\r\nthat would be a cruel kindness, and I dare not do it. What would be\r\nyour surprise, my son, when you expected a happy and glad welcome, to\r\nbehold, on the contrary, tears and wretchedness? And how, Victor, can\r\nI relate our misfortune? Absence cannot have rendered you callous to\r\nour joys and griefs; and how shall I inflict pain on my long absent\r\nson? I wish to prepare you for the woeful news, but I know it is\r\nimpossible; even now your eye skims over the page to seek the words\r\nwhich are to convey to you the horrible tidings.\r\n\r\n“William is dead!—that sweet child, whose smiles delighted and warmed\r\nmy heart, who was so gentle, yet so gay! Victor, he is murdered!\r\n\r\n“I will not attempt to console you; but will simply relate the\r\ncircumstances of the transaction.\r\n\r\n“Last Thursday (May 7th), I, my niece, and your two brothers, went to\r\nwalk in Plainpalais. The evening was warm and serene, and we prolonged\r\nour walk farther than usual. It was already dusk before we thought of\r\nreturning; and then we discovered that William and Ernest, who had gone\r\non before, were not to be found. We accordingly rested on a seat until\r\nthey should return. Presently Ernest came, and enquired if we had seen\r\nhis brother; he said, that he had been playing with him, that William\r\nhad run away to hide himself, and that he vainly sought for him, and\r\nafterwards waited for a long time, but that he did not return.\r\n\r\n“This account rather alarmed us, and we continued to search for him\r\nuntil night fell, when Elizabeth conjectured that he might have\r\nreturned to the house. He was not there. We returned again, with\r\ntorches; for I could not rest, when I thought that my sweet boy had\r\nlost himself, and was exposed to all the damps and dews of night;\r\nElizabeth also suffered extreme anguish. About five in the morning I\r\ndiscovered my lovely boy, whom the night before I had seen blooming and\r\nactive in health, stretched on the grass livid and motionless; the\r\nprint of the murder’s finger was on his neck.\r\n\r\n“He was conveyed home, and the anguish that was visible in my\r\ncountenance betrayed the secret to Elizabeth. She was very earnest to\r\nsee the corpse. At first I attempted to prevent her but she persisted,\r\nand entering the room where it lay, hastily examined the neck of the\r\nvictim, and clasping her hands exclaimed, ‘O God! I have murdered my\r\ndarling child!’\r\n\r\n“She fainted, and was restored with extreme difficulty. When she again\r\nlived, it was only to weep and sigh. She told me, that that same\r\nevening William had teased her to let him wear a very valuable\r\nminiature that she possessed of your mother. This picture is gone, and\r\nwas doubtless the temptation which urged the murderer to the deed. We\r\nhave no trace of him at present, although our exertions to discover him\r\nare unremitted; but they will not restore my beloved William!\r\n\r\n“Come, dearest Victor; you alone can console Elizabeth. She weeps\r\ncontinually, and accuses herself unjustly as the cause of his death;\r\nher words pierce my heart. We are all unhappy; but will not that be an\r\nadditional motive for you, my son, to return and be our comforter?\r\nYour dear mother! Alas, Victor! I now say, Thank God she did not live\r\nto witness the cruel, miserable death of her youngest darling!\r\n\r\n“Come, Victor; not brooding thoughts of vengeance against the assassin,\r\nbut with feelings of peace and gentleness, that will heal, instead of\r\nfestering, the wounds of our minds. Enter the house of mourning, my\r\nfriend, but with kindness and affection for those who love you, and not\r\nwith hatred for your enemies.\r\n\r\n“Your affectionate and afflicted father,\r\n\r\n“Alphonse Frankenstein.\r\n\r\n\r\n\r\n“Geneva, May 12th, 17—.”\r\n\r\n\r\n\r\nClerval, who had watched my countenance as I read this letter, was\r\nsurprised to observe the despair that succeeded the joy I at first\r\nexpressed on receiving news from my friends. I threw the letter on the\r\ntable, and covered my face with my hands.\r\n\r\n“My dear Frankenstein,” exclaimed Henry, when he perceived me\r\nweep with bitterness, “are you always to be unhappy? My dear friend,\r\nwhat has happened?”\r\n\r\nI motioned him to take up the letter, while I walked up and down the\r\nroom in the extremest agitation. Tears also gushed from the eyes of\r\nClerval, as he read the account of my misfortune.\r\n\r\n“I can offer you no consolation, my friend,” said he;\r\n“your disaster is irreparable. What do you intend to do?”\r\n\r\n“To go instantly to Geneva: come with me, Henry, to order the horses.”\r\n\r\nDuring our walk, Clerval endeavoured to say a few words of consolation;\r\nhe could only express his heartfelt sympathy. “Poor William!” said he,\r\n“dear lovely child, he now sleeps with his angel mother! Who that had\r\nseen him bright and joyous in his young beauty, but must weep over his\r\nuntimely loss! To die so miserably; to feel the murderer’s grasp! How\r\nmuch more a murdered that could destroy radiant innocence! Poor little\r\nfellow! one only consolation have we; his friends mourn and weep, but\r\nhe is at rest. The pang is over, his sufferings are at an end for ever.\r\nA sod covers his gentle form, and he knows no pain. He can no longer\r\nbe a subject for pity; we must reserve that for his miserable\r\nsurvivors.”\r\n\r\nClerval spoke thus as we hurried through the streets; the words\r\nimpressed themselves on my mind and I remembered them afterwards in\r\nsolitude. But now, as soon as the horses arrived, I hurried into a\r\ncabriolet, and bade farewell to my friend.\r\n\r\nMy journey was very melancholy. At first I wished to hurry on, for I longed\r\nto console and sympathise with my loved and sorrowing friends; but when I\r\ndrew near my native town, I slackened my progress. I could hardly sustain\r\nthe multitude of feelings that crowded into my mind. I passed through\r\nscenes familiar to my youth, but which I had not seen for nearly six years.\r\nHow altered every thing might be during that time! One sudden and\r\ndesolating change had taken place; but a thousand little circumstances\r\nmight have by degrees worked other alterations, which, although they were\r\ndone more tranquilly, might not be the less decisive. Fear overcame me; I\r\ndared no advance, dreading a thousand nameless evils that made me tremble,\r\nalthough I was unable to define them.\r\n\r\nI remained two days at Lausanne, in this painful state of mind. I\r\ncontemplated the lake: the waters were placid; all around was calm; and the\r\nsnowy mountains, “the palaces of nature,” were not changed. By\r\ndegrees the calm and heavenly scene restored me, and I continued my journey\r\ntowards Geneva.\r\n\r\nThe road ran by the side of the lake, which became narrower as I\r\napproached my native town. I discovered more distinctly the black\r\nsides of Jura, and the bright summit of Mont Blanc. I wept like a\r\nchild. “Dear mountains! my own beautiful lake! how do you welcome your\r\nwanderer? Your summits are clear; the sky and lake are blue and\r\nplacid. Is this to prognosticate peace, or to mock at my unhappiness?”\r\n\r\nI fear, my friend, that I shall render myself tedious by dwelling on\r\nthese preliminary circumstances; but they were days of comparative\r\nhappiness, and I think of them with pleasure. My country, my beloved\r\ncountry! who but a native can tell the delight I took in again\r\nbeholding thy streams, thy mountains, and, more than all, thy lovely\r\nlake!\r\n\r\nYet, as I drew nearer home, grief and fear again overcame me. Night also\r\nclosed around; and when I could hardly see the dark mountains, I felt still\r\nmore gloomily. The picture appeared a vast and dim scene of evil, and I\r\nforesaw obscurely that I was destined to become the most wretched of human\r\nbeings. Alas! I prophesied truly, and failed only in one single\r\ncircumstance, that in all the misery I imagined and dreaded, I did not\r\nconceive the hundredth part of the anguish I was destined to endure.\r\n\r\nIt was completely dark when I arrived in the environs of Geneva; the gates\r\nof the town were already shut; and I was obliged to pass the night at\r\nSecheron, a village at the distance of half a league from the city. The sky\r\nwas serene; and, as I was unable to rest, I resolved to visit the spot\r\nwhere my poor William had been murdered. As I could not pass through the\r\ntown, I was obliged to cross the lake in a boat to arrive at Plainpalais.\r\nDuring this short voyage I saw the lightning playing on the summit of Mont\r\nBlanc in the most beautiful figures. The storm appeared to approach\r\nrapidly, and, on landing, I ascended a low hill, that I might observe its\r\nprogress. It advanced; the heavens were clouded, and I soon felt the rain\r\ncoming slowly in large drops, but its violence quickly increased.\r\n\r\nI quitted my seat, and walked on, although the darkness and storm\r\nincreased every minute, and the thunder burst with a terrific crash\r\nover my head. It was echoed from Salêve, the Juras, and the Alps of\r\nSavoy; vivid flashes of lightning dazzled my eyes, illuminating the\r\nlake, making it appear like a vast sheet of fire; then for an instant\r\nevery thing seemed of a pitchy darkness, until the eye recovered itself\r\nfrom the preceding flash. The storm, as is often the case in\r\nSwitzerland, appeared at once in various parts of the heavens. The\r\nmost violent storm hung exactly north of the town, over the part of the\r\nlake which lies between the promontory of Belrive and the village of\r\nCopêt. Another storm enlightened Jura with faint flashes; and another\r\ndarkened and sometimes disclosed the Môle, a peaked mountain to the\r\neast of the lake.\r\n\r\nWhile I watched the tempest, so beautiful yet terrific, I wandered on with\r\na hasty step. This noble war in the sky elevated my spirits; I clasped my\r\nhands, and exclaimed aloud, “William, dear angel! this is thy\r\nfuneral, this thy dirge!” As I said these words, I perceived in the\r\ngloom a figure which stole from behind a clump of trees near me; I stood\r\nfixed, gazing intently: I could not be mistaken. A flash of lightning\r\nilluminated the object, and discovered its shape plainly to me; its\r\ngigantic stature, and the deformity of its aspect more hideous than belongs\r\nto humanity, instantly informed me that it was the wretch, the filthy\r\ndæmon, to whom I had given life. What did he there? Could he be (I\r\nshuddered at the conception) the murderer of my brother? No sooner did that\r\nidea cross my imagination, than I became convinced of its truth; my teeth\r\nchattered, and I was forced to lean against a tree for support. The figure\r\npassed me quickly, and I lost it in the gloom. Nothing in human shape could\r\nhave destroyed the fair child. _He_ was the murderer! I could not\r\ndoubt it. The mere presence of the idea was an irresistible proof of the\r\nfact. I thought of pursuing the devil; but it would have been in vain, for\r\nanother flash discovered him to me hanging among the rocks of the nearly\r\nperpendicular ascent of Mont Salêve, a hill that bounds Plainpalais on the\r\nsouth. He soon reached the summit, and disappeared.\r\n\r\nI remained motionless. The thunder ceased; but the rain still\r\ncontinued, and the scene was enveloped in an impenetrable darkness. I\r\nrevolved in my mind the events which I had until now sought to forget:\r\nthe whole train of my progress toward the creation; the appearance of\r\nthe works of my own hands at my bedside; its departure. Two years had\r\nnow nearly elapsed since the night on which he first received life; and\r\nwas this his first crime? Alas! I had turned loose into the world a\r\ndepraved wretch, whose delight was in carnage and misery; had he not\r\nmurdered my brother?\r\n\r\nNo one can conceive the anguish I suffered during the remainder of the\r\nnight, which I spent, cold and wet, in the open air. But I did not\r\nfeel the inconvenience of the weather; my imagination was busy in\r\nscenes of evil and despair. I considered the being whom I had cast\r\namong mankind, and endowed with the will and power to effect purposes\r\nof horror, such as the deed which he had now done, nearly in the light\r\nof my own vampire, my own spirit let loose from the grave, and forced\r\nto destroy all that was dear to me.\r\n\r\nDay dawned; and I directed my steps towards the town. The gates were\r\nopen, and I hastened to my father’s house. My first thought was to\r\ndiscover what I knew of the murderer, and cause instant pursuit to be\r\nmade. But I paused when I reflected on the story that I had to tell. A\r\nbeing whom I myself had formed, and endued with life, had met me at\r\nmidnight among the precipices of an inaccessible mountain. I\r\nremembered also the nervous fever with which I had been seized just at\r\nthe time that I dated my creation, and which would give an air of\r\ndelirium to a tale otherwise so utterly improbable. I well knew that\r\nif any other had communicated such a relation to me, I should have\r\nlooked upon it as the ravings of insanity. Besides, the strange nature\r\nof the animal would elude all pursuit, even if I were so far credited\r\nas to persuade my relatives to commence it. And then of what use would\r\nbe pursuit? Who could arrest a creature capable of scaling the\r\noverhanging sides of Mont Salêve? These reflections determined me, and\r\nI resolved to remain silent.\r\n\r\nIt was about five in the morning when I entered my father’s house. I\r\ntold the servants not to disturb the family, and went into the library\r\nto attend their usual hour of rising.\r\n\r\nSix years had elapsed, passed in a dream but for one indelible trace, and I\r\nstood in the same place where I had last embraced my father before my\r\ndeparture for Ingolstadt. Beloved and venerable parent! He still remained\r\nto me. I gazed on the picture of my mother, which stood over the\r\nmantel-piece. It was an historical subject, painted at my father’s\r\ndesire, and represented Caroline Beaufort in an agony of despair, kneeling\r\nby the coffin of her dead father. Her garb was rustic, and her cheek pale;\r\nbut there was an air of dignity and beauty, that hardly permitted the\r\nsentiment of pity. Below this picture was a miniature of William; and my\r\ntears flowed when I looked upon it. While I was thus engaged, Ernest\r\nentered: he had heard me arrive, and hastened to welcome me:\r\n“Welcome, my dearest Victor,” said he. “Ah! I wish you\r\nhad come three months ago, and then you would have found us all joyous and\r\ndelighted. You come to us now to share a misery which nothing can\r\nalleviate; yet your presence will, I hope, revive our father, who seems\r\nsinking under his misfortune; and your persuasions will induce poor\r\nElizabeth to cease her vain and tormenting self-accusations.—Poor\r\nWilliam! he was our darling and our pride!”\r\n\r\nTears, unrestrained, fell from my brother’s eyes; a sense of mortal\r\nagony crept over my frame. Before, I had only imagined the\r\nwretchedness of my desolated home; the reality came on me as a new, and\r\na not less terrible, disaster. I tried to calm Ernest; I enquired more\r\nminutely concerning my father, and here I named my cousin.\r\n\r\n“She most of all,” said Ernest, “requires consolation; she accused\r\nherself of having caused the death of my brother, and that made her\r\nvery wretched. But since the murderer has been discovered—”\r\n\r\n“The murderer discovered! Good God! how can that be? who could attempt\r\nto pursue him? It is impossible; one might as well try to overtake the\r\nwinds, or confine a mountain-stream with a straw. I saw him too; he\r\nwas free last night!”\r\n\r\n“I do not know what you mean,” replied my brother, in accents of\r\nwonder, “but to us the discovery we have made completes our misery. No\r\none would believe it at first; and even now Elizabeth will not be\r\nconvinced, notwithstanding all the evidence. Indeed, who would credit\r\nthat Justine Moritz, who was so amiable, and fond of all the family,\r\ncould suddenly become so capable of so frightful, so appalling a crime?”\r\n\r\n“Justine Moritz! Poor, poor girl, is she the accused? But it is\r\nwrongfully; every one knows that; no one believes it, surely, Ernest?”\r\n\r\n“No one did at first; but several circumstances came out, that have\r\nalmost forced conviction upon us; and her own behaviour has been so\r\nconfused, as to add to the evidence of facts a weight that, I fear,\r\nleaves no hope for doubt. But she will be tried today, and you will\r\nthen hear all.”\r\n\r\nHe then related that, the morning on which the murder of poor William\r\nhad been discovered, Justine had been taken ill, and confined to her\r\nbed for several days. During this interval, one of the servants,\r\nhappening to examine the apparel she had worn on the night of the\r\nmurder, had discovered in her pocket the picture of my mother, which\r\nhad been judged to be the temptation of the murderer. The servant\r\ninstantly showed it to one of the others, who, without saying a word to\r\nany of the family, went to a magistrate; and, upon their deposition,\r\nJustine was apprehended. On being charged with the fact, the poor girl\r\nconfirmed the suspicion in a great measure by her extreme confusion of\r\nmanner.\r\n\r\nThis was a strange tale, but it did not shake my faith; and I replied\r\nearnestly, “You are all mistaken; I know the murderer. Justine, poor,\r\ngood Justine, is innocent.”\r\n\r\nAt that instant my father entered. I saw unhappiness deeply impressed\r\non his countenance, but he endeavoured to welcome me cheerfully; and,\r\nafter we had exchanged our mournful greeting, would have introduced\r\nsome other topic than that of our disaster, had not Ernest exclaimed,\r\n“Good God, papa! Victor says that he knows who was the murderer of\r\npoor William.”\r\n\r\n“We do also, unfortunately,” replied my father, “for indeed I had\r\nrather have been for ever ignorant than have discovered so much\r\ndepravity and ungratitude in one I valued so highly.”\r\n\r\n“My dear father, you are mistaken; Justine is innocent.”\r\n\r\n“If she is, God forbid that she should suffer as guilty. She is to be\r\ntried today, and I hope, I sincerely hope, that she will be acquitted.”\r\n\r\nThis speech calmed me. I was firmly convinced in my own mind that\r\nJustine, and indeed every human being, was guiltless of this murder. I\r\nhad no fear, therefore, that any circumstantial evidence could be\r\nbrought forward strong enough to convict her. My tale was not one to\r\nannounce publicly; its astounding horror would be looked upon as\r\nmadness by the vulgar. Did any one indeed exist, except I, the\r\ncreator, who would believe, unless his senses convinced him, in the\r\nexistence of the living monument of presumption and rash ignorance\r\nwhich I had let loose upon the world?\r\n\r\nWe were soon joined by Elizabeth. Time had altered her since I last\r\nbeheld her; it had endowed her with loveliness surpassing the beauty of\r\nher childish years. There was the same candour, the same vivacity, but\r\nit was allied to an expression more full of sensibility and intellect.\r\nShe welcomed me with the greatest affection. “Your arrival, my dear\r\ncousin,” said she, “fills me with hope. You perhaps will find some\r\nmeans to justify my poor guiltless Justine. Alas! who is safe, if she\r\nbe convicted of crime? I rely on her innocence as certainly as I do\r\nupon my own. Our misfortune is doubly hard to us; we have not only\r\nlost that lovely darling boy, but this poor girl, whom I sincerely\r\nlove, is to be torn away by even a worse fate. If she is condemned, I\r\nnever shall know joy more. But she will not, I am sure she will not;\r\nand then I shall be happy again, even after the sad death of my little\r\nWilliam.”\r\n\r\n“She is innocent, my Elizabeth,” said I, “and that shall\r\nbe proved; fear nothing, but let your spirits be cheered by the assurance\r\nof her acquittal.”\r\n\r\n“How kind and generous you are! every one else believes in her guilt,\r\nand that made me wretched, for I knew that it was impossible: and to\r\nsee every one else prejudiced in so deadly a manner rendered me\r\nhopeless and despairing.” She wept.\r\n\r\n“Dearest niece,” said my father, “dry your tears. If she\r\nis, as you believe, innocent, rely on the justice of our laws, and the\r\nactivity with which I shall prevent the slightest shadow of\r\npartiality.”\r\n\r\n\r\n\r\n\r\nChapter 8\r\n\r\n\r\nWe passed a few sad hours until eleven o’clock, when the trial was to\r\ncommence. My father and the rest of the family being obliged to attend\r\nas witnesses, I accompanied them to the court. During the whole of\r\nthis wretched mockery of justice I suffered living torture. It was to\r\nbe decided whether the result of my curiosity and lawless devices would\r\ncause the death of two of my fellow beings: one a smiling babe full of\r\ninnocence and joy, the other far more dreadfully murdered, with every\r\naggravation of infamy that could make the murder memorable in horror.\r\nJustine also was a girl of merit and possessed qualities which promised\r\nto render her life happy; now all was to be obliterated in an\r\nignominious grave, and I the cause! A thousand times rather would I\r\nhave confessed myself guilty of the crime ascribed to Justine, but I\r\nwas absent when it was committed, and such a declaration would have\r\nbeen considered as the ravings of a madman and would not have\r\nexculpated her who suffered through me.\r\n\r\nThe appearance of Justine was calm. She was dressed in mourning, and\r\nher countenance, always engaging, was rendered, by the solemnity of her\r\nfeelings, exquisitely beautiful. Yet she appeared confident in\r\ninnocence and did not tremble, although gazed on and execrated by\r\nthousands, for all the kindness which her beauty might otherwise have\r\nexcited was obliterated in the minds of the spectators by the\r\nimagination of the enormity she was supposed to have committed. She\r\nwas tranquil, yet her tranquillity was evidently constrained; and as\r\nher confusion had before been adduced as a proof of her guilt, she\r\nworked up her mind to an appearance of courage. When she entered the\r\ncourt she threw her eyes round it and quickly discovered where we were\r\nseated. A tear seemed to dim her eye when she saw us, but she quickly\r\nrecovered herself, and a look of sorrowful affection seemed to attest\r\nher utter guiltlessness.\r\n\r\nThe trial began, and after the advocate against her had stated the\r\ncharge, several witnesses were called. Several strange facts combined\r\nagainst her, which might have staggered anyone who had not such proof\r\nof her innocence as I had. She had been out the whole of the night on\r\nwhich the murder had been committed and towards morning had been\r\nperceived by a market-woman not far from the spot where the body of the\r\nmurdered child had been afterwards found. The woman asked her what she\r\ndid there, but she looked very strangely and only returned a confused\r\nand unintelligible answer. She returned to the house about eight\r\no’clock, and when one inquired where she had passed the night, she\r\nreplied that she had been looking for the child and demanded earnestly\r\nif anything had been heard concerning him. When shown the body, she\r\nfell into violent hysterics and kept her bed for several days. The\r\npicture was then produced which the servant had found in her pocket;\r\nand when Elizabeth, in a faltering voice, proved that it was the same\r\nwhich, an hour before the child had been missed, she had placed round\r\nhis neck, a murmur of horror and indignation filled the court.\r\n\r\nJustine was called on for her defence. As the trial had proceeded, her\r\ncountenance had altered. Surprise, horror, and misery were strongly\r\nexpressed. Sometimes she struggled with her tears, but when she was\r\ndesired to plead, she collected her powers and spoke in an audible\r\nalthough variable voice.\r\n\r\n“God knows,” she said, “how entirely I am innocent. But I\r\ndo not pretend that my protestations should acquit me; I rest my innocence\r\non a plain and simple explanation of the facts which have been adduced\r\nagainst me, and I hope the character I have always borne will incline my\r\njudges to a favourable interpretation where any circumstance appears\r\ndoubtful or suspicious.”\r\n\r\nShe then related that, by the permission of Elizabeth, she had passed\r\nthe evening of the night on which the murder had been committed at the\r\nhouse of an aunt at Chêne, a village situated at about a league from\r\nGeneva. On her return, at about nine o’clock, she met a man who asked\r\nher if she had seen anything of the child who was lost. She was\r\nalarmed by this account and passed several hours in looking for him,\r\nwhen the gates of Geneva were shut, and she was forced to remain\r\nseveral hours of the night in a barn belonging to a cottage, being\r\nunwilling to call up the inhabitants, to whom she was well known. Most\r\nof the night she spent here watching; towards morning she believed that\r\nshe slept for a few minutes; some steps disturbed her, and she awoke.\r\nIt was dawn, and she quitted her asylum, that she might again endeavour\r\nto find my brother. If she had gone near the spot where his body lay,\r\nit was without her knowledge. That she had been bewildered when\r\nquestioned by the market-woman was not surprising, since she had passed\r\na sleepless night and the fate of poor William was yet uncertain.\r\nConcerning the picture she could give no account.\r\n\r\n“I know,” continued the unhappy victim, “how heavily and\r\nfatally this one circumstance weighs against me, but I have no power of\r\nexplaining it; and when I have expressed my utter ignorance, I am only left\r\nto conjecture concerning the probabilities by which it might have been\r\nplaced in my pocket. But here also I am checked. I believe that I have no\r\nenemy on earth, and none surely would have been so wicked as to destroy me\r\nwantonly. Did the murderer place it there? I know of no opportunity\r\nafforded him for so doing; or, if I had, why should he have stolen the\r\njewel, to part with it again so soon?\r\n\r\n“I commit my cause to the justice of my judges, yet I see no room for\r\nhope. I beg permission to have a few witnesses examined concerning my\r\ncharacter, and if their testimony shall not overweigh my supposed\r\nguilt, I must be condemned, although I would pledge my salvation on my\r\ninnocence.”\r\n\r\nSeveral witnesses were called who had known her for many years, and\r\nthey spoke well of her; but fear and hatred of the crime of which they\r\nsupposed her guilty rendered them timorous and unwilling to come\r\nforward. Elizabeth saw even this last resource, her excellent\r\ndispositions and irreproachable conduct, about to fail the accused,\r\nwhen, although violently agitated, she desired permission to address\r\nthe court.\r\n\r\n“I am,” said she, “the cousin of the unhappy child who\r\nwas murdered, or rather his sister, for I was educated by and have lived\r\nwith his parents ever since and even long before his birth. It may\r\ntherefore be judged indecent in me to come forward on this occasion, but\r\nwhen I see a fellow creature about to perish through the cowardice of her\r\npretended friends, I wish to be allowed to speak, that I may say what I\r\nknow of her character. I am well acquainted with the accused. I have lived\r\nin the same house with her, at one time for five and at another for nearly\r\ntwo years. During all that period she appeared to me the most amiable and\r\nbenevolent of human creatures. She nursed Madame Frankenstein, my aunt, in\r\nher last illness, with the greatest affection and care and afterwards\r\nattended her own mother during a tedious illness, in a manner that excited\r\nthe admiration of all who knew her, after which she again lived in my\r\nuncle’s house, where she was beloved by all the family. She was\r\nwarmly attached to the child who is now dead and acted towards him like a\r\nmost affectionate mother. For my own part, I do not hesitate to say that,\r\nnotwithstanding all the evidence produced against her, I believe and rely\r\non her perfect innocence. She had no temptation for such an action; as to\r\nthe bauble on which the chief proof rests, if she had earnestly desired it,\r\nI should have willingly given it to her, so much do I esteem and value\r\nher.”\r\n\r\nA murmur of approbation followed Elizabeth’s simple and powerful\r\nappeal, but it was excited by her generous interference, and not in\r\nfavour of poor Justine, on whom the public indignation was turned with\r\nrenewed violence, charging her with the blackest ingratitude. She\r\nherself wept as Elizabeth spoke, but she did not answer. My own\r\nagitation and anguish was extreme during the whole trial. I believed\r\nin her innocence; I knew it. Could the dæmon who had (I did not for a\r\nminute doubt) murdered my brother also in his hellish sport have\r\nbetrayed the innocent to death and ignominy? I could not sustain the\r\nhorror of my situation, and when I perceived that the popular voice and\r\nthe countenances of the judges had already condemned my unhappy victim,\r\nI rushed out of the court in agony. The tortures of the accused did\r\nnot equal mine; she was sustained by innocence, but the fangs of\r\nremorse tore my bosom and would not forgo their hold.\r\n\r\nI passed a night of unmingled wretchedness. In the morning I went to\r\nthe court; my lips and throat were parched. I dared not ask the fatal\r\nquestion, but I was known, and the officer guessed the cause of my\r\nvisit. The ballots had been thrown; they were all black, and Justine\r\nwas condemned.\r\n\r\nI cannot pretend to describe what I then felt. I had before\r\nexperienced sensations of horror, and I have endeavoured to bestow upon\r\nthem adequate expressions, but words cannot convey an idea of the\r\nheart-sickening despair that I then endured. The person to whom I\r\naddressed myself added that Justine had already confessed her guilt.\r\n“That evidence,” he observed, “was hardly required in so glaring a\r\ncase, but I am glad of it, and, indeed, none of our judges like to\r\ncondemn a criminal upon circumstantial evidence, be it ever so\r\ndecisive.”\r\n\r\nThis was strange and unexpected intelligence; what could it mean? Had\r\nmy eyes deceived me? And was I really as mad as the whole world would\r\nbelieve me to be if I disclosed the object of my suspicions? I\r\nhastened to return home, and Elizabeth eagerly demanded the result.\r\n\r\n“My cousin,” replied I, “it is decided as you may have expected; all\r\njudges had rather that ten innocent should suffer than that one guilty\r\nshould escape. But she has confessed.”\r\n\r\nThis was a dire blow to poor Elizabeth, who had relied with firmness upon\r\nJustine’s innocence. “Alas!” said she. “How shall I\r\never again believe in human goodness? Justine, whom I loved and esteemed as\r\nmy sister, how could she put on those smiles of innocence only to betray?\r\nHer mild eyes seemed incapable of any severity or guile, and yet she has\r\ncommitted a murder.”\r\n\r\nSoon after we heard that the poor victim had expressed a desire to see my\r\ncousin. My father wished her not to go but said that he left it to her own\r\njudgment and feelings to decide. “Yes,” said Elizabeth,\r\n“I will go, although she is guilty; and you, Victor, shall accompany\r\nme; I cannot go alone.” The idea of this visit was torture to me, yet\r\nI could not refuse.\r\n\r\nWe entered the gloomy prison chamber and beheld Justine sitting on some\r\nstraw at the farther end; her hands were manacled, and her head rested on\r\nher knees. She rose on seeing us enter, and when we were left alone with\r\nher, she threw herself at the feet of Elizabeth, weeping bitterly. My\r\ncousin wept also.\r\n\r\n“Oh, Justine!” said she. “Why did you rob me of my last consolation?\r\nI relied on your innocence, and although I was then very wretched, I\r\nwas not so miserable as I am now.”\r\n\r\n“And do you also believe that I am so very, very wicked? Do you also\r\njoin with my enemies to crush me, to condemn me as a murderer?” Her\r\nvoice was suffocated with sobs.\r\n\r\n“Rise, my poor girl,” said Elizabeth; “why do you kneel,\r\nif you are innocent? I am not one of your enemies, I believed you\r\nguiltless, notwithstanding every evidence, until I heard that you had\r\nyourself declared your guilt. That report, you say, is false; and be\r\nassured, dear Justine, that nothing can shake my confidence in you for a\r\nmoment, but your own confession.”\r\n\r\n“I did confess, but I confessed a lie. I confessed, that I might\r\nobtain absolution; but now that falsehood lies heavier at my heart than\r\nall my other sins. The God of heaven forgive me! Ever since I was\r\ncondemned, my confessor has besieged me; he threatened and menaced,\r\nuntil I almost began to think that I was the monster that he said I\r\nwas. He threatened excommunication and hell fire in my last moments if\r\nI continued obdurate. Dear lady, I had none to support me; all looked\r\non me as a wretch doomed to ignominy and perdition. What could I do?\r\nIn an evil hour I subscribed to a lie; and now only am I truly\r\nmiserable.”\r\n\r\nShe paused, weeping, and then continued, “I thought with horror, my\r\nsweet lady, that you should believe your Justine, whom your blessed\r\naunt had so highly honoured, and whom you loved, was a creature capable\r\nof a crime which none but the devil himself could have perpetrated.\r\nDear William! dearest blessed child! I soon shall see you again in\r\nheaven, where we shall all be happy; and that consoles me, going as I\r\nam to suffer ignominy and death.”\r\n\r\n“Oh, Justine! Forgive me for having for one moment distrusted you.\r\nWhy did you confess? But do not mourn, dear girl. Do not fear. I\r\nwill proclaim, I will prove your innocence. I will melt the stony\r\nhearts of your enemies by my tears and prayers. You shall not die!\r\nYou, my playfellow, my companion, my sister, perish on the scaffold!\r\nNo! No! I never could survive so horrible a misfortune.”\r\n\r\nJustine shook her head mournfully. “I do not fear to die,” she said;\r\n“that pang is past. God raises my weakness and gives me courage to\r\nendure the worst. I leave a sad and bitter world; and if you remember\r\nme and think of me as of one unjustly condemned, I am resigned to the\r\nfate awaiting me. Learn from me, dear lady, to submit in patience to\r\nthe will of heaven!”\r\n\r\nDuring this conversation I had retired to a corner of the prison room,\r\nwhere I could conceal the horrid anguish that possessed me. Despair!\r\nWho dared talk of that? The poor victim, who on the morrow was to pass\r\nthe awful boundary between life and death, felt not, as I did, such\r\ndeep and bitter agony. I gnashed my teeth and ground them together,\r\nuttering a groan that came from my inmost soul. Justine started. When\r\nshe saw who it was, she approached me and said, “Dear sir, you are very\r\nkind to visit me; you, I hope, do not believe that I am guilty?”\r\n\r\nI could not answer. “No, Justine,” said Elizabeth; “he is more\r\nconvinced of your innocence than I was, for even when he heard that you\r\nhad confessed, he did not credit it.”\r\n\r\n“I truly thank him. In these last moments I feel the sincerest\r\ngratitude towards those who think of me with kindness. How sweet is\r\nthe affection of others to such a wretch as I am! It removes more than\r\nhalf my misfortune, and I feel as if I could die in peace now that my\r\ninnocence is acknowledged by you, dear lady, and your cousin.”\r\n\r\nThus the poor sufferer tried to comfort others and herself. She indeed\r\ngained the resignation she desired. But I, the true murderer, felt the\r\nnever-dying worm alive in my bosom, which allowed of no hope or\r\nconsolation. Elizabeth also wept and was unhappy, but hers also was\r\nthe misery of innocence, which, like a cloud that passes over the fair\r\nmoon, for a while hides but cannot tarnish its brightness. Anguish and\r\ndespair had penetrated into the core of my heart; I bore a hell within\r\nme which nothing could extinguish. We stayed several hours with\r\nJustine, and it was with great difficulty that Elizabeth could tear\r\nherself away. “I wish,” cried she, “that I were to die with you; I\r\ncannot live in this world of misery.”\r\n\r\nJustine assumed an air of cheerfulness, while she with difficulty\r\nrepressed her bitter tears. She embraced Elizabeth and said in a voice\r\nof half-suppressed emotion, “Farewell, sweet lady, dearest Elizabeth,\r\nmy beloved and only friend; may heaven, in its bounty, bless and\r\npreserve you; may this be the last misfortune that you will ever\r\nsuffer! Live, and be happy, and make others so.”\r\n\r\nAnd on the morrow Justine died. Elizabeth’s heart-rending eloquence\r\nfailed to move the judges from their settled conviction in the\r\ncriminality of the saintly sufferer. My passionate and indignant\r\nappeals were lost upon them. And when I received their cold answers\r\nand heard the harsh, unfeeling reasoning of these men, my purposed\r\navowal died away on my lips. Thus I might proclaim myself a madman,\r\nbut not revoke the sentence passed upon my wretched victim. She\r\nperished on the scaffold as a murderess!\r\n\r\nFrom the tortures of my own heart, I turned to contemplate the deep and\r\nvoiceless grief of my Elizabeth. This also was my doing! And my\r\nfather’s woe, and the desolation of that late so smiling home all was\r\nthe work of my thrice-accursed hands! Ye weep, unhappy ones, but these\r\nare not your last tears! Again shall you raise the funeral wail, and\r\nthe sound of your lamentations shall again and again be heard!\r\nFrankenstein, your son, your kinsman, your early, much-loved friend; he\r\nwho would spend each vital drop of blood for your sakes, who has no\r\nthought nor sense of joy except as it is mirrored also in your dear\r\ncountenances, who would fill the air with blessings and spend his life\r\nin serving you—he bids you weep, to shed countless tears; happy beyond\r\nhis hopes, if thus inexorable fate be satisfied, and if the destruction\r\npause before the peace of the grave have succeeded to your sad torments!\r\n\r\nThus spoke my prophetic soul, as, torn by remorse, horror, and despair,\r\nI beheld those I loved spend vain sorrow upon the graves of William and\r\nJustine, the first hapless victims to my unhallowed arts.\r\n\r\n\r\n\r\n\r\nChapter 9\r\n\r\n\r\nNothing is more painful to the human mind than, after the feelings have\r\nbeen worked up by a quick succession of events, the dead calmness of\r\ninaction and certainty which follows and deprives the soul both of hope\r\nand fear. Justine died, she rested, and I was alive. The blood flowed\r\nfreely in my veins, but a weight of despair and remorse pressed on my\r\nheart which nothing could remove. Sleep fled from my eyes; I wandered\r\nlike an evil spirit, for I had committed deeds of mischief beyond\r\ndescription horrible, and more, much more (I persuaded myself) was yet\r\nbehind. Yet my heart overflowed with kindness and the love of virtue.\r\nI had begun life with benevolent intentions and thirsted for the moment\r\nwhen I should put them in practice and make myself useful to my fellow\r\nbeings. Now all was blasted; instead of that serenity of conscience\r\nwhich allowed me to look back upon the past with self-satisfaction, and\r\nfrom thence to gather promise of new hopes, I was seized by remorse and\r\nthe sense of guilt, which hurried me away to a hell of intense tortures\r\nsuch as no language can describe.\r\n\r\nThis state of mind preyed upon my health, which had perhaps never\r\nentirely recovered from the first shock it had sustained. I shunned\r\nthe face of man; all sound of joy or complacency was torture to me;\r\nsolitude was my only consolation—deep, dark, deathlike solitude.\r\n\r\nMy father observed with pain the alteration perceptible in my disposition\r\nand habits and endeavoured by arguments deduced from the feelings of his\r\nserene conscience and guiltless life to inspire me with fortitude and\r\nawaken in me the courage to dispel the dark cloud which brooded over me.\r\n“Do you think, Victor,” said he, “that I do not suffer\r\nalso? No one could love a child more than I loved your\r\nbrother”—tears came into his eyes as he spoke—“but\r\nis it not a duty to the survivors that we should refrain from augmenting\r\ntheir unhappiness by an appearance of immoderate grief? It is also a duty\r\nowed to yourself, for excessive sorrow prevents improvement or enjoyment,\r\nor even the discharge of daily usefulness, without which no man is fit for\r\nsociety.”\r\n\r\nThis advice, although good, was totally inapplicable to my case; I\r\nshould have been the first to hide my grief and console my friends if\r\nremorse had not mingled its bitterness, and terror its alarm, with my\r\nother sensations. Now I could only answer my father with a look of\r\ndespair and endeavour to hide myself from his view.\r\n\r\nAbout this time we retired to our house at Belrive. This change was\r\nparticularly agreeable to me. The shutting of the gates regularly at\r\nten o’clock and the impossibility of remaining on the lake after that\r\nhour had rendered our residence within the walls of Geneva very irksome\r\nto me. I was now free. Often, after the rest of the family had\r\nretired for the night, I took the boat and passed many hours upon the\r\nwater. Sometimes, with my sails set, I was carried by the wind; and\r\nsometimes, after rowing into the middle of the lake, I left the boat to\r\npursue its own course and gave way to my own miserable reflections. I\r\nwas often tempted, when all was at peace around me, and I the only\r\nunquiet thing that wandered restless in a scene so beautiful and\r\nheavenly—if I except some bat, or the frogs, whose harsh and\r\ninterrupted croaking was heard only when I approached the shore—often,\r\nI say, I was tempted to plunge into the silent lake, that the waters\r\nmight close over me and my calamities for ever. But I was restrained,\r\nwhen I thought of the heroic and suffering Elizabeth, whom I tenderly\r\nloved, and whose existence was bound up in mine. I thought also of my\r\nfather and surviving brother; should I by my base desertion leave them\r\nexposed and unprotected to the malice of the fiend whom I had let loose\r\namong them?\r\n\r\nAt these moments I wept bitterly and wished that peace would revisit my\r\nmind only that I might afford them consolation and happiness. But that\r\ncould not be. Remorse extinguished every hope. I had been the author of\r\nunalterable evils, and I lived in daily fear lest the monster whom I had\r\ncreated should perpetrate some new wickedness. I had an obscure feeling\r\nthat all was not over and that he would still commit some signal crime,\r\nwhich by its enormity should almost efface the recollection of the past.\r\nThere was always scope for fear so long as anything I loved remained\r\nbehind. My abhorrence of this fiend cannot be conceived. When I thought of\r\nhim I gnashed my teeth, my eyes became inflamed, and I ardently wished to\r\nextinguish that life which I had so thoughtlessly bestowed. When I\r\nreflected on his crimes and malice, my hatred and revenge burst all bounds\r\nof moderation. I would have made a pilgrimage to the highest peak of the\r\nAndes, could I, when there, have precipitated him to their base. I wished\r\nto see him again, that I might wreak the utmost extent of abhorrence on his\r\nhead and avenge the deaths of William and Justine.\r\n\r\nOur house was the house of mourning. My father’s health was deeply\r\nshaken by the horror of the recent events. Elizabeth was sad and\r\ndesponding; she no longer took delight in her ordinary occupations; all\r\npleasure seemed to her sacrilege toward the dead; eternal woe and tears she\r\nthen thought was the just tribute she should pay to innocence so blasted\r\nand destroyed. She was no longer that happy creature who in earlier youth\r\nwandered with me on the banks of the lake and talked with ecstasy of our\r\nfuture prospects. The first of those sorrows which are sent to wean us from\r\nthe earth had visited her, and its dimming influence quenched her dearest\r\nsmiles.\r\n\r\n“When I reflect, my dear cousin,” said she, “on the miserable death of\r\nJustine Moritz, I no longer see the world and its works as they before\r\nappeared to me. Before, I looked upon the accounts of vice and\r\ninjustice that I read in books or heard from others as tales of ancient\r\ndays or imaginary evils; at least they were remote and more familiar to\r\nreason than to the imagination; but now misery has come home, and men\r\nappear to me as monsters thirsting for each other’s blood. Yet I am\r\ncertainly unjust. Everybody believed that poor girl to be guilty; and\r\nif she could have committed the crime for which she suffered, assuredly\r\nshe would have been the most depraved of human creatures. For the sake\r\nof a few jewels, to have murdered the son of her benefactor and friend,\r\na child whom she had nursed from its birth, and appeared to love as if\r\nit had been her own! I could not consent to the death of any human\r\nbeing, but certainly I should have thought such a creature unfit to\r\nremain in the society of men. But she was innocent. I know, I feel\r\nshe was innocent; you are of the same opinion, and that confirms me.\r\nAlas! Victor, when falsehood can look so like the truth, who can\r\nassure themselves of certain happiness? I feel as if I were walking on\r\nthe edge of a precipice, towards which thousands are crowding and\r\nendeavouring to plunge me into the abyss. William and Justine were\r\nassassinated, and the murderer escapes; he walks about the world free,\r\nand perhaps respected. But even if I were condemned to suffer on the\r\nscaffold for the same crimes, I would not change places with such a\r\nwretch.”\r\n\r\nI listened to this discourse with the extremest agony. I, not in deed,\r\nbut in effect, was the true murderer. Elizabeth read my anguish in my\r\ncountenance, and kindly taking my hand, said, “My dearest friend, you\r\nmust calm yourself. These events have affected me, God knows how\r\ndeeply; but I am not so wretched as you are. There is an expression of\r\ndespair, and sometimes of revenge, in your countenance that makes me\r\ntremble. Dear Victor, banish these dark passions. Remember the\r\nfriends around you, who centre all their hopes in you. Have we lost\r\nthe power of rendering you happy? Ah! While we love, while we are\r\ntrue to each other, here in this land of peace and beauty, your native\r\ncountry, we may reap every tranquil blessing—what can disturb our\r\npeace?”\r\n\r\nAnd could not such words from her whom I fondly prized before every\r\nother gift of fortune suffice to chase away the fiend that lurked in my\r\nheart? Even as she spoke I drew near to her, as if in terror, lest at\r\nthat very moment the destroyer had been near to rob me of her.\r\n\r\nThus not the tenderness of friendship, nor the beauty of earth, nor of\r\nheaven, could redeem my soul from woe; the very accents of love were\r\nineffectual. I was encompassed by a cloud which no beneficial\r\ninfluence could penetrate. The wounded deer dragging its fainting\r\nlimbs to some untrodden brake, there to gaze upon the arrow which had\r\npierced it, and to die, was but a type of me.\r\n\r\nSometimes I could cope with the sullen despair that overwhelmed me, but\r\nsometimes the whirlwind passions of my soul drove me to seek, by bodily\r\nexercise and by change of place, some relief from my intolerable\r\nsensations. It was during an access of this kind that I suddenly left\r\nmy home, and bending my steps towards the near Alpine valleys, sought\r\nin the magnificence, the eternity of such scenes, to forget myself and\r\nmy ephemeral, because human, sorrows. My wanderings were directed\r\ntowards the valley of Chamounix. I had visited it frequently during my\r\nboyhood. Six years had passed since then: _I_ was a wreck, but nought\r\nhad changed in those savage and enduring scenes.\r\n\r\nI performed the first part of my journey on horseback. I afterwards\r\nhired a mule, as the more sure-footed and least liable to receive\r\ninjury on these rugged roads. The weather was fine; it was about the\r\nmiddle of the month of August, nearly two months after the death of\r\nJustine, that miserable epoch from which I dated all my woe. The\r\nweight upon my spirit was sensibly lightened as I plunged yet deeper in\r\nthe ravine of Arve. The immense mountains and precipices that overhung\r\nme on every side, the sound of the river raging among the rocks, and\r\nthe dashing of the waterfalls around spoke of a power mighty as\r\nOmnipotence—and I ceased to fear or to bend before any being less\r\nalmighty than that which had created and ruled the elements, here\r\ndisplayed in their most terrific guise. Still, as I ascended higher,\r\nthe valley assumed a more magnificent and astonishing character.\r\nRuined castles hanging on the precipices of piny mountains, the\r\nimpetuous Arve, and cottages every here and there peeping forth from\r\namong the trees formed a scene of singular beauty. But it was\r\naugmented and rendered sublime by the mighty Alps, whose white and\r\nshining pyramids and domes towered above all, as belonging to another\r\nearth, the habitations of another race of beings.\r\n\r\nI passed the bridge of Pélissier, where the ravine, which the river\r\nforms, opened before me, and I began to ascend the mountain that\r\noverhangs it. Soon after, I entered the valley of Chamounix. This\r\nvalley is more wonderful and sublime, but not so beautiful and\r\npicturesque as that of Servox, through which I had just passed. The\r\nhigh and snowy mountains were its immediate boundaries, but I saw no\r\nmore ruined castles and fertile fields. Immense glaciers approached\r\nthe road; I heard the rumbling thunder of the falling avalanche and\r\nmarked the smoke of its passage. Mont Blanc, the supreme and\r\nmagnificent Mont Blanc, raised itself from the surrounding _aiguilles_,\r\nand its tremendous _dôme_ overlooked the valley.\r\n\r\nA tingling long-lost sense of pleasure often came across me during this\r\njourney. Some turn in the road, some new object suddenly perceived and\r\nrecognised, reminded me of days gone by, and were associated with the\r\nlighthearted gaiety of boyhood. The very winds whispered in soothing\r\naccents, and maternal Nature bade me weep no more. Then again the\r\nkindly influence ceased to act—I found myself fettered again to grief\r\nand indulging in all the misery of reflection. Then I spurred on my\r\nanimal, striving so to forget the world, my fears, and more than all,\r\nmyself—or, in a more desperate fashion, I alighted and threw myself on\r\nthe grass, weighed down by horror and despair.\r\n\r\nAt length I arrived at the village of Chamounix. Exhaustion succeeded\r\nto the extreme fatigue both of body and of mind which I had endured.\r\nFor a short space of time I remained at the window watching the pallid\r\nlightnings that played above Mont Blanc and listening to the rushing of\r\nthe Arve, which pursued its noisy way beneath. The same lulling sounds\r\nacted as a lullaby to my too keen sensations; when I placed my head\r\nupon my pillow, sleep crept over me; I felt it as it came and blessed\r\nthe giver of oblivion.\r\n\r\n\r\n\r\n\r\nChapter 10\r\n\r\n\r\nI spent the following day roaming through the valley. I stood beside\r\nthe sources of the Arveiron, which take their rise in a glacier, that\r\nwith slow pace is advancing down from the summit of the hills to\r\nbarricade the valley. The abrupt sides of vast mountains were before\r\nme; the icy wall of the glacier overhung me; a few shattered pines were\r\nscattered around; and the solemn silence of this glorious\r\npresence-chamber of imperial Nature was broken only by the brawling\r\nwaves or the fall of some vast fragment, the thunder sound of the\r\navalanche or the cracking, reverberated along the mountains, of the\r\naccumulated ice, which, through the silent working of immutable laws,\r\nwas ever and anon rent and torn, as if it had been but a plaything in\r\ntheir hands. These sublime and magnificent scenes afforded me the\r\ngreatest consolation that I was capable of receiving. They elevated me\r\nfrom all littleness of feeling, and although they did not remove my\r\ngrief, they subdued and tranquillised it. In some degree, also, they\r\ndiverted my mind from the thoughts over which it had brooded for the\r\nlast month. I retired to rest at night; my slumbers, as it were,\r\nwaited on and ministered to by the assemblance of grand shapes which I\r\nhad contemplated during the day. They congregated round me; the\r\nunstained snowy mountain-top, the glittering pinnacle, the pine woods,\r\nand ragged bare ravine, the eagle, soaring amidst the clouds—they all\r\ngathered round me and bade me be at peace.\r\n\r\nWhere had they fled when the next morning I awoke? All of\r\nsoul-inspiriting fled with sleep, and dark melancholy clouded every\r\nthought. The rain was pouring in torrents, and thick mists hid the\r\nsummits of the mountains, so that I even saw not the faces of those\r\nmighty friends. Still I would penetrate their misty veil and seek them\r\nin their cloudy retreats. What were rain and storm to me? My mule was\r\nbrought to the door, and I resolved to ascend to the summit of\r\nMontanvert. I remembered the effect that the view of the tremendous\r\nand ever-moving glacier had produced upon my mind when I first saw it.\r\nIt had then filled me with a sublime ecstasy that gave wings to the\r\nsoul and allowed it to soar from the obscure world to light and joy.\r\nThe sight of the awful and majestic in nature had indeed always the\r\neffect of solemnising my mind and causing me to forget the passing\r\ncares of life. I determined to go without a guide, for I was well\r\nacquainted with the path, and the presence of another would destroy the\r\nsolitary grandeur of the scene.\r\n\r\nThe ascent is precipitous, but the path is cut into continual and short\r\nwindings, which enable you to surmount the perpendicularity of the\r\nmountain. It is a scene terrifically desolate. In a thousand spots\r\nthe traces of the winter avalanche may be perceived, where trees lie\r\nbroken and strewed on the ground, some entirely destroyed, others bent,\r\nleaning upon the jutting rocks of the mountain or transversely upon\r\nother trees. The path, as you ascend higher, is intersected by ravines\r\nof snow, down which stones continually roll from above; one of them is\r\nparticularly dangerous, as the slightest sound, such as even speaking\r\nin a loud voice, produces a concussion of air sufficient to draw\r\ndestruction upon the head of the speaker. The pines are not tall or\r\nluxuriant, but they are sombre and add an air of severity to the scene.\r\nI looked on the valley beneath; vast mists were rising from the rivers\r\nwhich ran through it and curling in thick wreaths around the opposite\r\nmountains, whose summits were hid in the uniform clouds, while rain\r\npoured from the dark sky and added to the melancholy impression I\r\nreceived from the objects around me. Alas! Why does man boast of\r\nsensibilities superior to those apparent in the brute; it only renders\r\nthem more necessary beings. If our impulses were confined to hunger,\r\nthirst, and desire, we might be nearly free; but now we are moved by\r\nevery wind that blows and a chance word or scene that that word may\r\nconvey to us.\r\n\r\n We rest; a dream has power to poison sleep.\r\n We rise; one wand’ring thought pollutes the day.\r\n We feel, conceive, or reason; laugh or weep,\r\n Embrace fond woe, or cast our cares away;\r\n It is the same: for, be it joy or sorrow,\r\n The path of its departure still is free.\r\n Man’s yesterday may ne’er be like his morrow;\r\n Nought may endure but mutability!\r\n\r\n\r\nIt was nearly noon when I arrived at the top of the ascent. For some\r\ntime I sat upon the rock that overlooks the sea of ice. A mist covered\r\nboth that and the surrounding mountains. Presently a breeze dissipated\r\nthe cloud, and I descended upon the glacier. The surface is very\r\nuneven, rising like the waves of a troubled sea, descending low, and\r\ninterspersed by rifts that sink deep. The field of ice is almost a\r\nleague in width, but I spent nearly two hours in crossing it. The\r\nopposite mountain is a bare perpendicular rock. From the side where I\r\nnow stood Montanvert was exactly opposite, at the distance of a league;\r\nand above it rose Mont Blanc, in awful majesty. I remained in a recess\r\nof the rock, gazing on this wonderful and stupendous scene. The sea,\r\nor rather the vast river of ice, wound among its dependent mountains,\r\nwhose aerial summits hung over its recesses. Their icy and glittering\r\npeaks shone in the sunlight over the clouds. My heart, which was\r\nbefore sorrowful, now swelled with something like joy; I exclaimed,\r\n“Wandering spirits, if indeed ye wander, and do not rest in your narrow\r\nbeds, allow me this faint happiness, or take me, as your companion,\r\naway from the joys of life.”\r\n\r\nAs I said this I suddenly beheld the figure of a man, at some distance,\r\nadvancing towards me with superhuman speed. He bounded over the\r\ncrevices in the ice, among which I had walked with caution; his\r\nstature, also, as he approached, seemed to exceed that of man. I was\r\ntroubled; a mist came over my eyes, and I felt a faintness seize me,\r\nbut I was quickly restored by the cold gale of the mountains. I\r\nperceived, as the shape came nearer (sight tremendous and abhorred!)\r\nthat it was the wretch whom I had created. I trembled with rage and\r\nhorror, resolving to wait his approach and then close with him in\r\nmortal combat. He approached; his countenance bespoke bitter anguish,\r\ncombined with disdain and malignity, while its unearthly ugliness\r\nrendered it almost too horrible for human eyes. But I scarcely\r\nobserved this; rage and hatred had at first deprived me of utterance,\r\nand I recovered only to overwhelm him with words expressive of furious\r\ndetestation and contempt.\r\n\r\n“Devil,” I exclaimed, “do you dare approach me? And do\r\nnot you fear the fierce vengeance of my arm wreaked on your miserable head?\r\nBegone, vile insect! Or rather, stay, that I may trample you to dust! And,\r\noh! That I could, with the extinction of your miserable existence, restore\r\nthose victims whom you have so diabolically murdered!”\r\n\r\n“I expected this reception,” said the dæmon. “All men hate the\r\nwretched; how, then, must I be hated, who am miserable beyond all\r\nliving things! Yet you, my creator, detest and spurn me, thy creature,\r\nto whom thou art bound by ties only dissoluble by the annihilation of\r\none of us. You purpose to kill me. How dare you sport thus with life?\r\nDo your duty towards me, and I will do mine towards you and the rest of\r\nmankind. If you will comply with my conditions, I will leave them and\r\nyou at peace; but if you refuse, I will glut the maw of death, until it\r\nbe satiated with the blood of your remaining friends.”\r\n\r\n“Abhorred monster! Fiend that thou art! The tortures of hell are too\r\nmild a vengeance for thy crimes. Wretched devil! You reproach me with\r\nyour creation, come on, then, that I may extinguish the spark which I\r\nso negligently bestowed.”\r\n\r\nMy rage was without bounds; I sprang on him, impelled by all the\r\nfeelings which can arm one being against the existence of another.\r\n\r\nHe easily eluded me and said,\r\n\r\n“Be calm! I entreat you to hear me before you give vent to your hatred\r\non my devoted head. Have I not suffered enough, that you seek to\r\nincrease my misery? Life, although it may only be an accumulation of\r\nanguish, is dear to me, and I will defend it. Remember, thou hast made\r\nme more powerful than thyself; my height is superior to thine, my\r\njoints more supple. But I will not be tempted to set myself in\r\nopposition to thee. I am thy creature, and I will be even mild and\r\ndocile to my natural lord and king if thou wilt also perform thy part,\r\nthe which thou owest me. Oh, Frankenstein, be not equitable to every\r\nother and trample upon me alone, to whom thy justice, and even thy\r\nclemency and affection, is most due. Remember that I am thy creature;\r\nI ought to be thy Adam, but I am rather the fallen angel, whom thou\r\ndrivest from joy for no misdeed. Everywhere I see bliss, from which I\r\nalone am irrevocably excluded. I was benevolent and good; misery made\r\nme a fiend. Make me happy, and I shall again be virtuous.”\r\n\r\n“Begone! I will not hear you. There can be no community between you\r\nand me; we are enemies. Begone, or let us try our strength in a fight,\r\nin which one must fall.”\r\n\r\n“How can I move thee? Will no entreaties cause thee to turn a\r\nfavourable eye upon thy creature, who implores thy goodness and\r\ncompassion? Believe me, Frankenstein, I was benevolent; my soul glowed\r\nwith love and humanity; but am I not alone, miserably alone? You, my\r\ncreator, abhor me; what hope can I gather from your fellow creatures,\r\nwho owe me nothing? They spurn and hate me. The desert mountains and\r\ndreary glaciers are my refuge. I have wandered here many days; the\r\ncaves of ice, which I only do not fear, are a dwelling to me, and the\r\nonly one which man does not grudge. These bleak skies I hail, for they\r\nare kinder to me than your fellow beings. If the multitude of mankind\r\nknew of my existence, they would do as you do, and arm themselves for\r\nmy destruction. Shall I not then hate them who abhor me? I will keep\r\nno terms with my enemies. I am miserable, and they shall share my\r\nwretchedness. Yet it is in your power to recompense me, and deliver\r\nthem from an evil which it only remains for you to make so great, that\r\nnot only you and your family, but thousands of others, shall be\r\nswallowed up in the whirlwinds of its rage. Let your compassion be\r\nmoved, and do not disdain me. Listen to my tale; when you have heard\r\nthat, abandon or commiserate me, as you shall judge that I deserve.\r\nBut hear me. The guilty are allowed, by human laws, bloody as they\r\nare, to speak in their own defence before they are condemned. Listen\r\nto me, Frankenstein. You accuse me of murder, and yet you would, with\r\na satisfied conscience, destroy your own creature. Oh, praise the\r\neternal justice of man! Yet I ask you not to spare me; listen to me,\r\nand then, if you can, and if you will, destroy the work of your hands.”\r\n\r\n“Why do you call to my remembrance,” I rejoined, “circumstances of\r\nwhich I shudder to reflect, that I have been the miserable origin and\r\nauthor? Cursed be the day, abhorred devil, in which you first saw\r\nlight! Cursed (although I curse myself) be the hands that formed you!\r\nYou have made me wretched beyond expression. You have left me no power\r\nto consider whether I am just to you or not. Begone! Relieve me from\r\nthe sight of your detested form.”\r\n\r\n“Thus I relieve thee, my creator,” he said, and placed his hated hands\r\nbefore my eyes, which I flung from me with violence; “thus I take from\r\nthee a sight which you abhor. Still thou canst listen to me and grant\r\nme thy compassion. By the virtues that I once possessed, I demand this\r\nfrom you. Hear my tale; it is long and strange, and the temperature of\r\nthis place is not fitting to your fine sensations; come to the hut upon\r\nthe mountain. The sun is yet high in the heavens; before it descends\r\nto hide itself behind your snowy precipices and illuminate another\r\nworld, you will have heard my story and can decide. On you it rests,\r\nwhether I quit for ever the neighbourhood of man and lead a harmless\r\nlife, or become the scourge of your fellow creatures and the author of\r\nyour own speedy ruin.”\r\n\r\nAs he said this he led the way across the ice; I followed. My heart\r\nwas full, and I did not answer him, but as I proceeded, I weighed the\r\nvarious arguments that he had used and determined at least to listen to\r\nhis tale. I was partly urged by curiosity, and compassion confirmed my\r\nresolution. I had hitherto supposed him to be the murderer of my\r\nbrother, and I eagerly sought a confirmation or denial of this opinion.\r\nFor the first time, also, I felt what the duties of a creator towards\r\nhis creature were, and that I ought to render him happy before I\r\ncomplained of his wickedness. These motives urged me to comply with\r\nhis demand. We crossed the ice, therefore, and ascended the opposite\r\nrock. The air was cold, and the rain again began to descend; we\r\nentered the hut, the fiend with an air of exultation, I with a heavy\r\nheart and depressed spirits. But I consented to listen, and seating\r\nmyself by the fire which my odious companion had lighted, he thus began\r\nhis tale.\r\n\r\n\r\n\r\n\r\nChapter 11\r\n\r\n\r\n“It is with considerable difficulty that I remember the original era of\r\nmy being; all the events of that period appear confused and indistinct.\r\nA strange multiplicity of sensations seized me, and I saw, felt, heard,\r\nand smelt at the same time; and it was, indeed, a long time before I\r\nlearned to distinguish between the operations of my various senses. By\r\ndegrees, I remember, a stronger light pressed upon my nerves, so that I\r\nwas obliged to shut my eyes. Darkness then came over me and troubled\r\nme, but hardly had I felt this when, by opening my eyes, as I now\r\nsuppose, the light poured in upon me again. I walked and, I believe,\r\ndescended, but I presently found a great alteration in my sensations.\r\nBefore, dark and opaque bodies had surrounded me, impervious to my\r\ntouch or sight; but I now found that I could wander on at liberty, with\r\nno obstacles which I could not either surmount or avoid. The light\r\nbecame more and more oppressive to me, and the heat wearying me as I\r\nwalked, I sought a place where I could receive shade. This was the\r\nforest near Ingolstadt; and here I lay by the side of a brook resting\r\nfrom my fatigue, until I felt tormented by hunger and thirst. This\r\nroused me from my nearly dormant state, and I ate some berries which I\r\nfound hanging on the trees or lying on the ground. I slaked my thirst\r\nat the brook, and then lying down, was overcome by sleep.\r\n\r\n“It was dark when I awoke; I felt cold also, and half frightened, as it\r\nwere, instinctively, finding myself so desolate. Before I had quitted\r\nyour apartment, on a sensation of cold, I had covered myself with some\r\nclothes, but these were insufficient to secure me from the dews of\r\nnight. I was a poor, helpless, miserable wretch; I knew, and could\r\ndistinguish, nothing; but feeling pain invade me on all sides, I sat\r\ndown and wept.\r\n\r\n“Soon a gentle light stole over the heavens and gave me a sensation of\r\npleasure. I started up and beheld a radiant form rise from among the\r\ntrees. [The moon] I gazed with a kind of wonder. It moved slowly,\r\nbut it enlightened my path, and I again went out in search of berries.\r\nI was still cold when under one of the trees I found a huge cloak, with\r\nwhich I covered myself, and sat down upon the ground. No distinct\r\nideas occupied my mind; all was confused. I felt light, and hunger,\r\nand thirst, and darkness; innumerable sounds rang in my ears, and on\r\nall sides various scents saluted me; the only object that I could\r\ndistinguish was the bright moon, and I fixed my eyes on that with\r\npleasure.\r\n\r\n“Several changes of day and night passed, and the orb of night had\r\ngreatly lessened, when I began to distinguish my sensations from each\r\nother. I gradually saw plainly the clear stream that supplied me with\r\ndrink and the trees that shaded me with their foliage. I was delighted\r\nwhen I first discovered that a pleasant sound, which often saluted my\r\nears, proceeded from the throats of the little winged animals who had\r\noften intercepted the light from my eyes. I began also to observe,\r\nwith greater accuracy, the forms that surrounded me and to perceive the\r\nboundaries of the radiant roof of light which canopied me. Sometimes I\r\ntried to imitate the pleasant songs of the birds but was unable.\r\nSometimes I wished to express my sensations in my own mode, but the\r\nuncouth and inarticulate sounds which broke from me frightened me into\r\nsilence again.\r\n\r\n“The moon had disappeared from the night, and again, with a lessened\r\nform, showed itself, while I still remained in the forest. My\r\nsensations had by this time become distinct, and my mind received every\r\nday additional ideas. My eyes became accustomed to the light and to\r\nperceive objects in their right forms; I distinguished the insect from\r\nthe herb, and by degrees, one herb from another. I found that the\r\nsparrow uttered none but harsh notes, whilst those of the blackbird and\r\nthrush were sweet and enticing.\r\n\r\n“One day, when I was oppressed by cold, I found a fire which had been\r\nleft by some wandering beggars, and was overcome with delight at the\r\nwarmth I experienced from it. In my joy I thrust my hand into the live\r\nembers, but quickly drew it out again with a cry of pain. How strange,\r\nI thought, that the same cause should produce such opposite effects! I\r\nexamined the materials of the fire, and to my joy found it to be\r\ncomposed of wood. I quickly collected some branches, but they were wet\r\nand would not burn. I was pained at this and sat still watching the\r\noperation of the fire. The wet wood which I had placed near the heat\r\ndried and itself became inflamed. I reflected on this, and by touching\r\nthe various branches, I discovered the cause and busied myself in\r\ncollecting a great quantity of wood, that I might dry it and have a\r\nplentiful supply of fire. When night came on and brought sleep with\r\nit, I was in the greatest fear lest my fire should be extinguished. I\r\ncovered it carefully with dry wood and leaves and placed wet branches\r\nupon it; and then, spreading my cloak, I lay on the ground and sank\r\ninto sleep.\r\n\r\n“It was morning when I awoke, and my first care was to visit the fire.\r\nI uncovered it, and a gentle breeze quickly fanned it into a flame. I\r\nobserved this also and contrived a fan of branches, which roused the\r\nembers when they were nearly extinguished. When night came again I\r\nfound, with pleasure, that the fire gave light as well as heat and that\r\nthe discovery of this element was useful to me in my food, for I found\r\nsome of the offals that the travellers had left had been roasted, and\r\ntasted much more savoury than the berries I gathered from the trees. I\r\ntried, therefore, to dress my food in the same manner, placing it on\r\nthe live embers. I found that the berries were spoiled by this\r\noperation, and the nuts and roots much improved.\r\n\r\n“Food, however, became scarce, and I often spent the whole day\r\nsearching in vain for a few acorns to assuage the pangs of hunger. When\r\nI found this, I resolved to quit the place that I had hitherto\r\ninhabited, to seek for one where the few wants I experienced would be\r\nmore easily satisfied. In this emigration I exceedingly lamented the\r\nloss of the fire which I had obtained through accident and knew not how\r\nto reproduce it. I gave several hours to the serious consideration of\r\nthis difficulty, but I was obliged to relinquish all attempt to supply\r\nit, and wrapping myself up in my cloak, I struck across the wood\r\ntowards the setting sun. I passed three days in these rambles and at\r\nlength discovered the open country. A great fall of snow had taken\r\nplace the night before, and the fields were of one uniform white; the\r\nappearance was disconsolate, and I found my feet chilled by the cold\r\ndamp substance that covered the ground.\r\n\r\n“It was about seven in the morning, and I longed to obtain food and\r\nshelter; at length I perceived a small hut, on a rising ground, which\r\nhad doubtless been built for the convenience of some shepherd. This\r\nwas a new sight to me, and I examined the structure with great\r\ncuriosity. Finding the door open, I entered. An old man sat in it,\r\nnear a fire, over which he was preparing his breakfast. He turned on\r\nhearing a noise, and perceiving me, shrieked loudly, and quitting the\r\nhut, ran across the fields with a speed of which his debilitated form\r\nhardly appeared capable. His appearance, different from any I had ever\r\nbefore seen, and his flight somewhat surprised me. But I was enchanted\r\nby the appearance of the hut; here the snow and rain could not\r\npenetrate; the ground was dry; and it presented to me then as exquisite\r\nand divine a retreat as Pandæmonium appeared to the dæmons of hell\r\nafter their sufferings in the lake of fire. I greedily devoured the\r\nremnants of the shepherd’s breakfast, which consisted of bread, cheese,\r\nmilk, and wine; the latter, however, I did not like. Then, overcome by\r\nfatigue, I lay down among some straw and fell asleep.\r\n\r\n“It was noon when I awoke, and allured by the warmth of the sun, which\r\nshone brightly on the white ground, I determined to recommence my\r\ntravels; and, depositing the remains of the peasant’s breakfast in a\r\nwallet I found, I proceeded across the fields for several hours, until\r\nat sunset I arrived at a village. How miraculous did this appear! The\r\nhuts, the neater cottages, and stately houses engaged my admiration by\r\nturns. The vegetables in the gardens, the milk and cheese that I saw\r\nplaced at the windows of some of the cottages, allured my appetite. One\r\nof the best of these I entered, but I had hardly placed my foot within\r\nthe door before the children shrieked, and one of the women fainted.\r\nThe whole village was roused; some fled, some attacked me, until,\r\ngrievously bruised by stones and many other kinds of missile weapons, I\r\nescaped to the open country and fearfully took refuge in a low hovel,\r\nquite bare, and making a wretched appearance after the palaces I had\r\nbeheld in the village. This hovel however, joined a cottage of a neat\r\nand pleasant appearance, but after my late dearly bought experience, I\r\ndared not enter it. My place of refuge was constructed of wood, but so\r\nlow that I could with difficulty sit upright in it. No wood, however,\r\nwas placed on the earth, which formed the floor, but it was dry; and\r\nalthough the wind entered it by innumerable chinks, I found it an\r\nagreeable asylum from the snow and rain.\r\n\r\n“Here, then, I retreated and lay down happy to have found a shelter,\r\nhowever miserable, from the inclemency of the season, and still more\r\nfrom the barbarity of man. As soon as morning dawned I crept from my\r\nkennel, that I might view the adjacent cottage and discover if I could\r\nremain in the habitation I had found. It was situated against the back\r\nof the cottage and surrounded on the sides which were exposed by a pig\r\nsty and a clear pool of water. One part was open, and by that I had\r\ncrept in; but now I covered every crevice by which I might be perceived\r\nwith stones and wood, yet in such a manner that I might move them on\r\noccasion to pass out; all the light I enjoyed came through the sty, and\r\nthat was sufficient for me.\r\n\r\n“Having thus arranged my dwelling and carpeted it with clean straw, I\r\nretired, for I saw the figure of a man at a distance, and I remembered\r\ntoo well my treatment the night before to trust myself in his power. I\r\nhad first, however, provided for my sustenance for that day by a loaf\r\nof coarse bread, which I purloined, and a cup with which I could drink\r\nmore conveniently than from my hand of the pure water which flowed by\r\nmy retreat. The floor was a little raised, so that it was kept\r\nperfectly dry, and by its vicinity to the chimney of the cottage it was\r\ntolerably warm.\r\n\r\n“Being thus provided, I resolved to reside in this hovel until\r\nsomething should occur which might alter my determination. It was\r\nindeed a paradise compared to the bleak forest, my former residence,\r\nthe rain-dropping branches, and dank earth. I ate my breakfast with\r\npleasure and was about to remove a plank to procure myself a little\r\nwater when I heard a step, and looking through a small chink, I beheld\r\na young creature, with a pail on her head, passing before my hovel. The\r\ngirl was young and of gentle demeanour, unlike what I have since found\r\ncottagers and farmhouse servants to be. Yet she was meanly dressed, a\r\ncoarse blue petticoat and a linen jacket being her only garb; her fair\r\nhair was plaited but not adorned: she looked patient yet sad. I lost\r\nsight of her, and in about a quarter of an hour she returned bearing\r\nthe pail, which was now partly filled with milk. As she walked along,\r\nseemingly incommoded by the burden, a young man met her, whose\r\ncountenance expressed a deeper despondence. Uttering a few sounds with\r\nan air of melancholy, he took the pail from her head and bore it to the\r\ncottage himself. She followed, and they disappeared. Presently I saw\r\nthe young man again, with some tools in his hand, cross the field\r\nbehind the cottage; and the girl was also busied, sometimes in the\r\nhouse and sometimes in the yard.\r\n\r\n“On examining my dwelling, I found that one of the windows of the\r\ncottage had formerly occupied a part of it, but the panes had been\r\nfilled up with wood. In one of these was a small and almost\r\nimperceptible chink through which the eye could just penetrate.\r\nThrough this crevice a small room was visible, whitewashed and clean\r\nbut very bare of furniture. In one corner, near a small fire, sat an\r\nold man, leaning his head on his hands in a disconsolate attitude. The\r\nyoung girl was occupied in arranging the cottage; but presently she\r\ntook something out of a drawer, which employed her hands, and she sat\r\ndown beside the old man, who, taking up an instrument, began to play\r\nand to produce sounds sweeter than the voice of the thrush or the\r\nnightingale. It was a lovely sight, even to me, poor wretch who had\r\nnever beheld aught beautiful before. The silver hair and benevolent\r\ncountenance of the aged cottager won my reverence, while the gentle\r\nmanners of the girl enticed my love. He played a sweet mournful air\r\nwhich I perceived drew tears from the eyes of his amiable companion, of\r\nwhich the old man took no notice, until she sobbed audibly; he then\r\npronounced a few sounds, and the fair creature, leaving her work, knelt\r\nat his feet. He raised her and smiled with such kindness and affection\r\nthat I felt sensations of a peculiar and overpowering nature; they were\r\na mixture of pain and pleasure, such as I had never before experienced,\r\neither from hunger or cold, warmth or food; and I withdrew from the\r\nwindow, unable to bear these emotions.\r\n\r\n“Soon after this the young man returned, bearing on his shoulders a\r\nload of wood. The girl met him at the door, helped to relieve him of\r\nhis burden, and taking some of the fuel into the cottage, placed it on\r\nthe fire; then she and the youth went apart into a nook of the cottage,\r\nand he showed her a large loaf and a piece of cheese. She seemed\r\npleased and went into the garden for some roots and plants, which she\r\nplaced in water, and then upon the fire. She afterwards continued her\r\nwork, whilst the young man went into the garden and appeared busily\r\nemployed in digging and pulling up roots. After he had been employed\r\nthus about an hour, the young woman joined him and they entered the\r\ncottage together.\r\n\r\n“The old man had, in the meantime, been pensive, but on the appearance\r\nof his companions he assumed a more cheerful air, and they sat down to\r\neat. The meal was quickly dispatched. The young woman was again\r\noccupied in arranging the cottage, the old man walked before the\r\ncottage in the sun for a few minutes, leaning on the arm of the youth.\r\nNothing could exceed in beauty the contrast between these two excellent\r\ncreatures. One was old, with silver hairs and a countenance beaming\r\nwith benevolence and love; the younger was slight and graceful in his\r\nfigure, and his features were moulded with the finest symmetry, yet his\r\neyes and attitude expressed the utmost sadness and despondency. The\r\nold man returned to the cottage, and the youth, with tools different\r\nfrom those he had used in the morning, directed his steps across the\r\nfields.\r\n\r\n“Night quickly shut in, but to my extreme wonder, I found that the\r\ncottagers had a means of prolonging light by the use of tapers, and was\r\ndelighted to find that the setting of the sun did not put an end to the\r\npleasure I experienced in watching my human neighbours. In the evening\r\nthe young girl and her companion were employed in various occupations\r\nwhich I did not understand; and the old man again took up the\r\ninstrument which produced the divine sounds that had enchanted me in\r\nthe morning. So soon as he had finished, the youth began, not to play,\r\nbut to utter sounds that were monotonous, and neither resembling the\r\nharmony of the old man’s instrument nor the songs of the birds; I since\r\nfound that he read aloud, but at that time I knew nothing of the\r\nscience of words or letters.\r\n\r\n“The family, after having been thus occupied for a short time,\r\nextinguished their lights and retired, as I conjectured, to rest.”\r\n\r\n\r\n\r\n\r\nChapter 12\r\n\r\n\r\n“I lay on my straw, but I could not sleep. I thought of the\r\noccurrences of the day. What chiefly struck me was the gentle manners\r\nof these people, and I longed to join them, but dared not. I\r\nremembered too well the treatment I had suffered the night before from\r\nthe barbarous villagers, and resolved, whatever course of conduct I\r\nmight hereafter think it right to pursue, that for the present I would\r\nremain quietly in my hovel, watching and endeavouring to discover the\r\nmotives which influenced their actions.\r\n\r\n“The cottagers arose the next morning before the sun. The young woman\r\narranged the cottage and prepared the food, and the youth departed\r\nafter the first meal.\r\n\r\n“This day was passed in the same routine as that which preceded it.\r\nThe young man was constantly employed out of doors, and the girl in\r\nvarious laborious occupations within. The old man, whom I soon\r\nperceived to be blind, employed his leisure hours on his instrument or\r\nin contemplation. Nothing could exceed the love and respect which the\r\nyounger cottagers exhibited towards their venerable companion. They\r\nperformed towards him every little office of affection and duty with\r\ngentleness, and he rewarded them by his benevolent smiles.\r\n\r\n“They were not entirely happy. The young man and his companion often\r\nwent apart and appeared to weep. I saw no cause for their unhappiness,\r\nbut I was deeply affected by it. If such lovely creatures were\r\nmiserable, it was less strange that I, an imperfect and solitary being,\r\nshould be wretched. Yet why were these gentle beings unhappy? They\r\npossessed a delightful house (for such it was in my eyes) and every\r\nluxury; they had a fire to warm them when chill and delicious viands\r\nwhen hungry; they were dressed in excellent clothes; and, still more,\r\nthey enjoyed one another’s company and speech, interchanging each day\r\nlooks of affection and kindness. What did their tears imply? Did they\r\nreally express pain? I was at first unable to solve these questions,\r\nbut perpetual attention and time explained to me many appearances which\r\nwere at first enigmatic.\r\n\r\n“A considerable period elapsed before I discovered one of the causes of\r\nthe uneasiness of this amiable family: it was poverty, and they\r\nsuffered that evil in a very distressing degree. Their nourishment\r\nconsisted entirely of the vegetables of their garden and the milk of\r\none cow, which gave very little during the winter, when its masters\r\ncould scarcely procure food to support it. They often, I believe,\r\nsuffered the pangs of hunger very poignantly, especially the two\r\nyounger cottagers, for several times they placed food before the old\r\nman when they reserved none for themselves.\r\n\r\n“This trait of kindness moved me sensibly. I had been accustomed,\r\nduring the night, to steal a part of their store for my own\r\nconsumption, but when I found that in doing this I inflicted pain on\r\nthe cottagers, I abstained and satisfied myself with berries, nuts, and\r\nroots which I gathered from a neighbouring wood.\r\n\r\n“I discovered also another means through which I was enabled to assist\r\ntheir labours. I found that the youth spent a great part of each day\r\nin collecting wood for the family fire, and during the night I often\r\ntook his tools, the use of which I quickly discovered, and brought home\r\nfiring sufficient for the consumption of several days.\r\n\r\n“I remember, the first time that I did this, the young woman, when she\r\nopened the door in the morning, appeared greatly astonished on seeing a great\r\npile of wood on the outside. She uttered some words in a loud voice, and the\r\nyouth joined her, who also expressed surprise. I observed, with pleasure,\r\nthat he did not go to the forest that day, but spent it in repairing the\r\ncottage and cultivating the garden.\r\n\r\n“By degrees I made a discovery of still greater moment. I found that\r\nthese people possessed a method of communicating their experience and\r\nfeelings to one another by articulate sounds. I perceived that the words\r\nthey spoke sometimes produced pleasure or pain, smiles or sadness, in the\r\nminds and countenances of the hearers. This was indeed a godlike science,\r\nand I ardently desired to become acquainted with it. But I was baffled in\r\nevery attempt I made for this purpose. Their pronunciation was quick, and\r\nthe words they uttered, not having any apparent connection with visible\r\nobjects, I was unable to discover any clue by which I could unravel the\r\nmystery of their reference. By great application, however, and after having\r\nremained during the space of several revolutions of the moon in my hovel, I\r\ndiscovered the names that were given to some of the most familiar objects of\r\ndiscourse; I learned and applied the words, _fire, milk, bread,_ and\r\n_wood._ I learned also the names of the cottagers themselves. The youth\r\nand his companion had each of them several names, but the old man had only\r\none, which was _father._ The girl was called _sister_ or\r\n_Agatha,_ and the youth _Felix, brother,_ or _son_. I cannot\r\ndescribe the delight I felt when I learned the ideas appropriated to each of\r\nthese sounds and was able to pronounce them. I distinguished several other\r\nwords without being able as yet to understand or apply them, such as _good,\r\ndearest, unhappy._\r\n\r\n“I spent the winter in this manner. The gentle manners and beauty of\r\nthe cottagers greatly endeared them to me; when they were unhappy, I\r\nfelt depressed; when they rejoiced, I sympathised in their joys. I saw\r\nfew human beings besides them, and if any other happened to enter the\r\ncottage, their harsh manners and rude gait only enhanced to me the\r\nsuperior accomplishments of my friends. The old man, I could perceive,\r\noften endeavoured to encourage his children, as sometimes I found that\r\nhe called them, to cast off their melancholy. He would talk in a\r\ncheerful accent, with an expression of goodness that bestowed pleasure\r\neven upon me. Agatha listened with respect, her eyes sometimes filled\r\nwith tears, which she endeavoured to wipe away unperceived; but I\r\ngenerally found that her countenance and tone were more cheerful after\r\nhaving listened to the exhortations of her father. It was not thus\r\nwith Felix. He was always the saddest of the group, and even to my\r\nunpractised senses, he appeared to have suffered more deeply than his\r\nfriends. But if his countenance was more sorrowful, his voice was more\r\ncheerful than that of his sister, especially when he addressed the old\r\nman.\r\n\r\n“I could mention innumerable instances which, although slight, marked\r\nthe dispositions of these amiable cottagers. In the midst of poverty\r\nand want, Felix carried with pleasure to his sister the first little\r\nwhite flower that peeped out from beneath the snowy ground. Early in\r\nthe morning, before she had risen, he cleared away the snow that\r\nobstructed her path to the milk-house, drew water from the well, and\r\nbrought the wood from the outhouse, where, to his perpetual\r\nastonishment, he found his store always replenished by an invisible\r\nhand. In the day, I believe, he worked sometimes for a neighbouring\r\nfarmer, because he often went forth and did not return until dinner,\r\nyet brought no wood with him. At other times he worked in the garden,\r\nbut as there was little to do in the frosty season, he read to the old\r\nman and Agatha.\r\n\r\n“This reading had puzzled me extremely at first, but by degrees I\r\ndiscovered that he uttered many of the same sounds when he read as when\r\nhe talked. I conjectured, therefore, that he found on the paper signs\r\nfor speech which he understood, and I ardently longed to comprehend\r\nthese also; but how was that possible when I did not even understand\r\nthe sounds for which they stood as signs? I improved, however,\r\nsensibly in this science, but not sufficiently to follow up any kind of\r\nconversation, although I applied my whole mind to the endeavour, for I\r\neasily perceived that, although I eagerly longed to discover myself to\r\nthe cottagers, I ought not to make the attempt until I had first become\r\nmaster of their language, which knowledge might enable me to make them\r\noverlook the deformity of my figure, for with this also the contrast\r\nperpetually presented to my eyes had made me acquainted.\r\n\r\n“I had admired the perfect forms of my cottagers—their grace, beauty,\r\nand delicate complexions; but how was I terrified when I viewed myself\r\nin a transparent pool! At first I started back, unable to believe that\r\nit was indeed I who was reflected in the mirror; and when I became\r\nfully convinced that I was in reality the monster that I am, I was\r\nfilled with the bitterest sensations of despondence and mortification.\r\nAlas! I did not yet entirely know the fatal effects of this miserable\r\ndeformity.\r\n\r\n“As the sun became warmer and the light of day longer, the snow\r\nvanished, and I beheld the bare trees and the black earth. From this\r\ntime Felix was more employed, and the heart-moving indications of\r\nimpending famine disappeared. Their food, as I afterwards found, was\r\ncoarse, but it was wholesome; and they procured a sufficiency of it.\r\nSeveral new kinds of plants sprang up in the garden, which they\r\ndressed; and these signs of comfort increased daily as the season\r\nadvanced.\r\n\r\n“The old man, leaning on his son, walked each day at noon, when it did\r\nnot rain, as I found it was called when the heavens poured forth its\r\nwaters. This frequently took place, but a high wind quickly dried the\r\nearth, and the season became far more pleasant than it had been.\r\n\r\n“My mode of life in my hovel was uniform. During the morning I\r\nattended the motions of the cottagers, and when they were dispersed in\r\nvarious occupations, I slept; the remainder of the day was spent in\r\nobserving my friends. When they had retired to rest, if there was any\r\nmoon or the night was star-light, I went into the woods and collected\r\nmy own food and fuel for the cottage. When I returned, as often as it\r\nwas necessary, I cleared their path from the snow and performed those\r\noffices that I had seen done by Felix. I afterwards found that these\r\nlabours, performed by an invisible hand, greatly astonished them; and\r\nonce or twice I heard them, on these occasions, utter the words _good\r\nspirit, wonderful_; but I did not then understand the signification\r\nof these terms.\r\n\r\n“My thoughts now became more active, and I longed to discover the\r\nmotives and feelings of these lovely creatures; I was inquisitive to\r\nknow why Felix appeared so miserable and Agatha so sad. I thought\r\n(foolish wretch!) that it might be in my power to restore happiness to\r\nthese deserving people. When I slept or was absent, the forms of the\r\nvenerable blind father, the gentle Agatha, and the excellent Felix\r\nflitted before me. I looked upon them as superior beings who would be\r\nthe arbiters of my future destiny. I formed in my imagination a\r\nthousand pictures of presenting myself to them, and their reception of\r\nme. I imagined that they would be disgusted, until, by my gentle\r\ndemeanour and conciliating words, I should first win their favour and\r\nafterwards their love.\r\n\r\n“These thoughts exhilarated me and led me to apply with fresh ardour to\r\nthe acquiring the art of language. My organs were indeed harsh, but\r\nsupple; and although my voice was very unlike the soft music of their\r\ntones, yet I pronounced such words as I understood with tolerable ease.\r\nIt was as the ass and the lap-dog; yet surely the gentle ass whose\r\nintentions were affectionate, although his manners were rude, deserved\r\nbetter treatment than blows and execration.\r\n\r\n“The pleasant showers and genial warmth of spring greatly altered the\r\naspect of the earth. Men who before this change seemed to have been\r\nhid in caves dispersed themselves and were employed in various arts of\r\ncultivation. The birds sang in more cheerful notes, and the leaves\r\nbegan to bud forth on the trees. Happy, happy earth! Fit habitation\r\nfor gods, which, so short a time before, was bleak, damp, and\r\nunwholesome. My spirits were elevated by the enchanting appearance of\r\nnature; the past was blotted from my memory, the present was tranquil,\r\nand the future gilded by bright rays of hope and anticipations of joy.”\r\n\r\n\r\n\r\n\r\nChapter 13\r\n\r\n\r\n“I now hasten to the more moving part of my story. I shall relate\r\nevents that impressed me with feelings which, from what I had been,\r\nhave made me what I am.\r\n\r\n“Spring advanced rapidly; the weather became fine and the skies\r\ncloudless. It surprised me that what before was desert and gloomy\r\nshould now bloom with the most beautiful flowers and verdure. My\r\nsenses were gratified and refreshed by a thousand scents of delight and\r\na thousand sights of beauty.\r\n\r\n“It was on one of these days, when my cottagers periodically rested\r\nfrom labour—the old man played on his guitar, and the children\r\nlistened to him—that I observed the countenance of Felix was\r\nmelancholy beyond expression; he sighed frequently, and once his father\r\npaused in his music, and I conjectured by his manner that he inquired\r\nthe cause of his son’s sorrow. Felix replied in a cheerful accent, and\r\nthe old man was recommencing his music when someone tapped at the door.\r\n\r\n“It was a lady on horseback, accompanied by a country-man as a guide.\r\nThe lady was dressed in a dark suit and covered with a thick black\r\nveil. Agatha asked a question, to which the stranger only replied by\r\npronouncing, in a sweet accent, the name of Felix. Her voice was\r\nmusical but unlike that of either of my friends. On hearing this word,\r\nFelix came up hastily to the lady, who, when she saw him, threw up her\r\nveil, and I beheld a countenance of angelic beauty and expression. Her\r\nhair of a shining raven black, and curiously braided; her eyes were\r\ndark, but gentle, although animated; her features of a regular\r\nproportion, and her complexion wondrously fair, each cheek tinged with\r\na lovely pink.\r\n\r\n“Felix seemed ravished with delight when he saw her, every trait of\r\nsorrow vanished from his face, and it instantly expressed a degree of\r\necstatic joy, of which I could hardly have believed it capable; his\r\neyes sparkled, as his cheek flushed with pleasure; and at that moment I\r\nthought him as beautiful as the stranger. She appeared affected by\r\ndifferent feelings; wiping a few tears from her lovely eyes, she held\r\nout her hand to Felix, who kissed it rapturously and called her, as\r\nwell as I could distinguish, his sweet Arabian. She did not appear to\r\nunderstand him, but smiled. He assisted her to dismount, and\r\ndismissing her guide, conducted her into the cottage. Some\r\nconversation took place between him and his father, and the young\r\nstranger knelt at the old man’s feet and would have kissed his hand,\r\nbut he raised her and embraced her affectionately.\r\n\r\n“I soon perceived that although the stranger uttered articulate sounds\r\nand appeared to have a language of her own, she was neither understood\r\nby nor herself understood the cottagers. They made many signs which I\r\ndid not comprehend, but I saw that her presence diffused gladness\r\nthrough the cottage, dispelling their sorrow as the sun dissipates the\r\nmorning mists. Felix seemed peculiarly happy and with smiles of\r\ndelight welcomed his Arabian. Agatha, the ever-gentle Agatha, kissed\r\nthe hands of the lovely stranger, and pointing to her brother, made\r\nsigns which appeared to me to mean that he had been sorrowful until she\r\ncame. Some hours passed thus, while they, by their countenances,\r\nexpressed joy, the cause of which I did not comprehend. Presently I\r\nfound, by the frequent recurrence of some sound which the stranger\r\nrepeated after them, that she was endeavouring to learn their language;\r\nand the idea instantly occurred to me that I should make use of the\r\nsame instructions to the same end. The stranger learned about twenty\r\nwords at the first lesson; most of them, indeed, were those which I had\r\nbefore understood, but I profited by the others.\r\n\r\n“As night came on, Agatha and the Arabian retired early. When they\r\nseparated Felix kissed the hand of the stranger and said, ‘Good night\r\nsweet Safie.’ He sat up much longer, conversing with his father, and\r\nby the frequent repetition of her name I conjectured that their lovely\r\nguest was the subject of their conversation. I ardently desired to\r\nunderstand them, and bent every faculty towards that purpose, but found\r\nit utterly impossible.\r\n\r\n“The next morning Felix went out to his work, and after the usual\r\noccupations of Agatha were finished, the Arabian sat at the feet of the\r\nold man, and taking his guitar, played some airs so entrancingly\r\nbeautiful that they at once drew tears of sorrow and delight from my\r\neyes. She sang, and her voice flowed in a rich cadence, swelling or\r\ndying away like a nightingale of the woods.\r\n\r\n“When she had finished, she gave the guitar to Agatha, who at first\r\ndeclined it. She played a simple air, and her voice accompanied it in\r\nsweet accents, but unlike the wondrous strain of the stranger. The old\r\nman appeared enraptured and said some words which Agatha endeavoured to\r\nexplain to Safie, and by which he appeared to wish to express that she\r\nbestowed on him the greatest delight by her music.\r\n\r\n“The days now passed as peaceably as before, with the sole alteration\r\nthat joy had taken place of sadness in the countenances of my friends.\r\nSafie was always gay and happy; she and I improved rapidly in the\r\nknowledge of language, so that in two months I began to comprehend most\r\nof the words uttered by my protectors.\r\n\r\n“In the meanwhile also the black ground was covered with herbage, and\r\nthe green banks interspersed with innumerable flowers, sweet to the\r\nscent and the eyes, stars of pale radiance among the moonlight woods;\r\nthe sun became warmer, the nights clear and balmy; and my nocturnal\r\nrambles were an extreme pleasure to me, although they were considerably\r\nshortened by the late setting and early rising of the sun, for I never\r\nventured abroad during daylight, fearful of meeting with the same\r\ntreatment I had formerly endured in the first village which I entered.\r\n\r\n“My days were spent in close attention, that I might more speedily\r\nmaster the language; and I may boast that I improved more rapidly than\r\nthe Arabian, who understood very little and conversed in broken\r\naccents, whilst I comprehended and could imitate almost every word that\r\nwas spoken.\r\n\r\n“While I improved in speech, I also learned the science of letters as\r\nit was taught to the stranger, and this opened before me a wide field\r\nfor wonder and delight.\r\n\r\n“The book from which Felix instructed Safie was Volney’s _Ruins\r\nof Empires_. I should not have understood the purport of this book had not\r\nFelix, in reading it, given very minute explanations. He had chosen this\r\nwork, he said, because the declamatory style was framed in imitation of the\r\nEastern authors. Through this work I obtained a cursory knowledge of history\r\nand a view of the several empires at present existing in the world; it gave\r\nme an insight into the manners, governments, and religions of the different\r\nnations of the earth. I heard of the slothful Asiatics, of the stupendous\r\ngenius and mental activity of the Grecians, of the wars and wonderful virtue\r\nof the early Romans—of their subsequent degenerating—of the\r\ndecline of that mighty empire, of chivalry, Christianity, and kings. I heard\r\nof the discovery of the American hemisphere and wept with Safie over the\r\nhapless fate of its original inhabitants.\r\n\r\n“These wonderful narrations inspired me with strange feelings. Was\r\nman, indeed, at once so powerful, so virtuous and magnificent, yet so\r\nvicious and base? He appeared at one time a mere scion of the evil\r\nprinciple and at another as all that can be conceived of noble and\r\ngodlike. To be a great and virtuous man appeared the highest honour\r\nthat can befall a sensitive being; to be base and vicious, as many on\r\nrecord have been, appeared the lowest degradation, a condition more\r\nabject than that of the blind mole or harmless worm. For a long time I\r\ncould not conceive how one man could go forth to murder his fellow, or\r\neven why there were laws and governments; but when I heard details of\r\nvice and bloodshed, my wonder ceased and I turned away with disgust and\r\nloathing.\r\n\r\n“Every conversation of the cottagers now opened new wonders to me.\r\nWhile I listened to the instructions which Felix bestowed upon the\r\nArabian, the strange system of human society was explained to me. I\r\nheard of the division of property, of immense wealth and squalid\r\npoverty, of rank, descent, and noble blood.\r\n\r\n“The words induced me to turn towards myself. I learned that the\r\npossessions most esteemed by your fellow creatures were high and\r\nunsullied descent united with riches. A man might be respected with\r\nonly one of these advantages, but without either he was considered,\r\nexcept in very rare instances, as a vagabond and a slave, doomed to\r\nwaste his powers for the profits of the chosen few! And what was I? Of\r\nmy creation and creator I was absolutely ignorant, but I knew that I\r\npossessed no money, no friends, no kind of property. I was, besides,\r\nendued with a figure hideously deformed and loathsome; I was not even\r\nof the same nature as man. I was more agile than they and could\r\nsubsist upon coarser diet; I bore the extremes of heat and cold with\r\nless injury to my frame; my stature far exceeded theirs. When I looked\r\naround I saw and heard of none like me. Was I, then, a monster, a blot\r\nupon the earth, from which all men fled and whom all men disowned?\r\n\r\n“I cannot describe to you the agony that these reflections inflicted\r\nupon me; I tried to dispel them, but sorrow only increased with\r\nknowledge. Oh, that I had for ever remained in my native wood, nor\r\nknown nor felt beyond the sensations of hunger, thirst, and heat!\r\n\r\n“Of what a strange nature is knowledge! It clings to the mind when it\r\nhas once seized on it like a lichen on the rock. I wished sometimes to\r\nshake off all thought and feeling, but I learned that there was but one\r\nmeans to overcome the sensation of pain, and that was death—a state\r\nwhich I feared yet did not understand. I admired virtue and good\r\nfeelings and loved the gentle manners and amiable qualities of my\r\ncottagers, but I was shut out from intercourse with them, except\r\nthrough means which I obtained by stealth, when I was unseen and\r\nunknown, and which rather increased than satisfied the desire I had of\r\nbecoming one among my fellows. The gentle words of Agatha and the\r\nanimated smiles of the charming Arabian were not for me. The mild\r\nexhortations of the old man and the lively conversation of the loved\r\nFelix were not for me. Miserable, unhappy wretch!\r\n\r\n“Other lessons were impressed upon me even more deeply. I heard of the\r\ndifference of sexes, and the birth and growth of children, how the\r\nfather doted on the smiles of the infant, and the lively sallies of the\r\nolder child, how all the life and cares of the mother were wrapped up\r\nin the precious charge, how the mind of youth expanded and gained\r\nknowledge, of brother, sister, and all the various relationships which\r\nbind one human being to another in mutual bonds.\r\n\r\n“But where were my friends and relations? No father had watched my\r\ninfant days, no mother had blessed me with smiles and caresses; or if\r\nthey had, all my past life was now a blot, a blind vacancy in which I\r\ndistinguished nothing. From my earliest remembrance I had been as I\r\nthen was in height and proportion. I had never yet seen a being\r\nresembling me or who claimed any intercourse with me. What was I? The\r\nquestion again recurred, to be answered only with groans.\r\n\r\n“I will soon explain to what these feelings tended, but allow me now to\r\nreturn to the cottagers, whose story excited in me such various\r\nfeelings of indignation, delight, and wonder, but which all terminated\r\nin additional love and reverence for my protectors (for so I loved, in\r\nan innocent, half-painful self-deceit, to call them).”\r\n\r\n\r\n\r\n\r\nChapter 14\r\n\r\n\r\n“Some time elapsed before I learned the history of my friends. It was\r\none which could not fail to impress itself deeply on my mind, unfolding\r\nas it did a number of circumstances, each interesting and wonderful to\r\none so utterly inexperienced as I was.\r\n\r\n“The name of the old man was De Lacey. He was descended from a good\r\nfamily in France, where he had lived for many years in affluence,\r\nrespected by his superiors and beloved by his equals. His son was bred\r\nin the service of his country, and Agatha had ranked with ladies of the\r\nhighest distinction. A few months before my arrival they had lived in\r\na large and luxurious city called Paris, surrounded by friends and\r\npossessed of every enjoyment which virtue, refinement of intellect, or\r\ntaste, accompanied by a moderate fortune, could afford.\r\n\r\n“The father of Safie had been the cause of their ruin. He was a\r\nTurkish merchant and had inhabited Paris for many years, when, for some\r\nreason which I could not learn, he became obnoxious to the government.\r\nHe was seized and cast into prison the very day that Safie arrived from\r\nConstantinople to join him. He was tried and condemned to death. The\r\ninjustice of his sentence was very flagrant; all Paris was indignant;\r\nand it was judged that his religion and wealth rather than the crime\r\nalleged against him had been the cause of his condemnation.\r\n\r\n“Felix had accidentally been present at the trial; his horror and\r\nindignation were uncontrollable when he heard the decision of the\r\ncourt. He made, at that moment, a solemn vow to deliver him and then\r\nlooked around for the means. After many fruitless attempts to gain\r\nadmittance to the prison, he found a strongly grated window in an\r\nunguarded part of the building, which lighted the dungeon of the\r\nunfortunate Muhammadan, who, loaded with chains, waited in despair the\r\nexecution of the barbarous sentence. Felix visited the grate at night\r\nand made known to the prisoner his intentions in his favour. The Turk,\r\namazed and delighted, endeavoured to kindle the zeal of his deliverer\r\nby promises of reward and wealth. Felix rejected his offers with\r\ncontempt, yet when he saw the lovely Safie, who was allowed to visit\r\nher father and who by her gestures expressed her lively gratitude, the\r\nyouth could not help owning to his own mind that the captive possessed\r\na treasure which would fully reward his toil and hazard.\r\n\r\n“The Turk quickly perceived the impression that his daughter had made\r\non the heart of Felix and endeavoured to secure him more entirely in\r\nhis interests by the promise of her hand in marriage so soon as he\r\nshould be conveyed to a place of safety. Felix was too delicate to\r\naccept this offer, yet he looked forward to the probability of the\r\nevent as to the consummation of his happiness.\r\n\r\n“During the ensuing days, while the preparations were going forward for\r\nthe escape of the merchant, the zeal of Felix was warmed by several\r\nletters that he received from this lovely girl, who found means to\r\nexpress her thoughts in the language of her lover by the aid of an old\r\nman, a servant of her father who understood French. She thanked him in\r\nthe most ardent terms for his intended services towards her parent, and\r\nat the same time she gently deplored her own fate.\r\n\r\n“I have copies of these letters, for I found means, during my residence\r\nin the hovel, to procure the implements of writing; and the letters\r\nwere often in the hands of Felix or Agatha. Before I depart I will\r\ngive them to you; they will prove the truth of my tale; but at present,\r\nas the sun is already far declined, I shall only have time to repeat\r\nthe substance of them to you.\r\n\r\n“Safie related that her mother was a Christian Arab, seized and made a\r\nslave by the Turks; recommended by her beauty, she had won the heart of\r\nthe father of Safie, who married her. The young girl spoke in high and\r\nenthusiastic terms of her mother, who, born in freedom, spurned the\r\nbondage to which she was now reduced. She instructed her daughter in\r\nthe tenets of her religion and taught her to aspire to higher powers of\r\nintellect and an independence of spirit forbidden to the female\r\nfollowers of Muhammad. This lady died, but her lessons were indelibly\r\nimpressed on the mind of Safie, who sickened at the prospect of again\r\nreturning to Asia and being immured within the walls of a harem,\r\nallowed only to occupy herself with infantile amusements, ill-suited to\r\nthe temper of her soul, now accustomed to grand ideas and a noble\r\nemulation for virtue. The prospect of marrying a Christian and\r\nremaining in a country where women were allowed to take a rank in\r\nsociety was enchanting to her.\r\n\r\n“The day for the execution of the Turk was fixed, but on the night\r\nprevious to it he quitted his prison and before morning was distant\r\nmany leagues from Paris. Felix had procured passports in the name of\r\nhis father, sister, and himself. He had previously communicated his\r\nplan to the former, who aided the deceit by quitting his house, under\r\nthe pretence of a journey and concealed himself, with his daughter, in\r\nan obscure part of Paris.\r\n\r\n“Felix conducted the fugitives through France to Lyons and across Mont\r\nCenis to Leghorn, where the merchant had decided to wait a favourable\r\nopportunity of passing into some part of the Turkish dominions.\r\n\r\n“Safie resolved to remain with her father until the moment of his\r\ndeparture, before which time the Turk renewed his promise that she\r\nshould be united to his deliverer; and Felix remained with them in\r\nexpectation of that event; and in the meantime he enjoyed the society\r\nof the Arabian, who exhibited towards him the simplest and tenderest\r\naffection. They conversed with one another through the means of an\r\ninterpreter, and sometimes with the interpretation of looks; and Safie\r\nsang to him the divine airs of her native country.\r\n\r\n“The Turk allowed this intimacy to take place and encouraged the hopes\r\nof the youthful lovers, while in his heart he had formed far other\r\nplans. He loathed the idea that his daughter should be united to a\r\nChristian, but he feared the resentment of Felix if he should appear\r\nlukewarm, for he knew that he was still in the power of his deliverer\r\nif he should choose to betray him to the Italian state which they\r\ninhabited. He revolved a thousand plans by which he should be enabled\r\nto prolong the deceit until it might be no longer necessary, and\r\nsecretly to take his daughter with him when he departed. His plans\r\nwere facilitated by the news which arrived from Paris.\r\n\r\n“The government of France were greatly enraged at the escape of their\r\nvictim and spared no pains to detect and punish his deliverer. The\r\nplot of Felix was quickly discovered, and De Lacey and Agatha were\r\nthrown into prison. The news reached Felix and roused him from his\r\ndream of pleasure. His blind and aged father and his gentle sister lay\r\nin a noisome dungeon while he enjoyed the free air and the society of\r\nher whom he loved. This idea was torture to him. He quickly arranged\r\nwith the Turk that if the latter should find a favourable opportunity\r\nfor escape before Felix could return to Italy, Safie should remain as a\r\nboarder at a convent at Leghorn; and then, quitting the lovely Arabian,\r\nhe hastened to Paris and delivered himself up to the vengeance of the\r\nlaw, hoping to free De Lacey and Agatha by this proceeding.\r\n\r\n“He did not succeed. They remained confined for five months before the\r\ntrial took place, the result of which deprived them of their fortune\r\nand condemned them to a perpetual exile from their native country.\r\n\r\n“They found a miserable asylum in the cottage in Germany, where I\r\ndiscovered them. Felix soon learned that the treacherous Turk, for\r\nwhom he and his family endured such unheard-of oppression, on\r\ndiscovering that his deliverer was thus reduced to poverty and ruin,\r\nbecame a traitor to good feeling and honour and had quitted Italy with\r\nhis daughter, insultingly sending Felix a pittance of money to aid him,\r\nas he said, in some plan of future maintenance.\r\n\r\n“Such were the events that preyed on the heart of Felix and rendered\r\nhim, when I first saw him, the most miserable of his family. He could\r\nhave endured poverty, and while this distress had been the meed of his\r\nvirtue, he gloried in it; but the ingratitude of the Turk and the loss\r\nof his beloved Safie were misfortunes more bitter and irreparable. The\r\narrival of the Arabian now infused new life into his soul.\r\n\r\n“When the news reached Leghorn that Felix was deprived of his wealth\r\nand rank, the merchant commanded his daughter to think no more of her\r\nlover, but to prepare to return to her native country. The generous\r\nnature of Safie was outraged by this command; she attempted to\r\nexpostulate with her father, but he left her angrily, reiterating his\r\ntyrannical mandate.\r\n\r\n“A few days after, the Turk entered his daughter’s apartment and told\r\nher hastily that he had reason to believe that his residence at Leghorn\r\nhad been divulged and that he should speedily be delivered up to the\r\nFrench government; he had consequently hired a vessel to convey him to\r\nConstantinople, for which city he should sail in a few hours. He\r\nintended to leave his daughter under the care of a confidential\r\nservant, to follow at her leisure with the greater part of his\r\nproperty, which had not yet arrived at Leghorn.\r\n\r\n“When alone, Safie resolved in her own mind the plan of conduct that it\r\nwould become her to pursue in this emergency. A residence in Turkey\r\nwas abhorrent to her; her religion and her feelings were alike averse\r\nto it. By some papers of her father which fell into her hands she\r\nheard of the exile of her lover and learnt the name of the spot where\r\nhe then resided. She hesitated some time, but at length she formed her\r\ndetermination. Taking with her some jewels that belonged to her and a\r\nsum of money, she quitted Italy with an attendant, a native of Leghorn,\r\nbut who understood the common language of Turkey, and departed for\r\nGermany.\r\n\r\n“She arrived in safety at a town about twenty leagues from the cottage\r\nof De Lacey, when her attendant fell dangerously ill. Safie nursed her\r\nwith the most devoted affection, but the poor girl died, and the\r\nArabian was left alone, unacquainted with the language of the country\r\nand utterly ignorant of the customs of the world. She fell, however,\r\ninto good hands. The Italian had mentioned the name of the spot for\r\nwhich they were bound, and after her death the woman of the house in\r\nwhich they had lived took care that Safie should arrive in safety at\r\nthe cottage of her lover.”\r\n\r\n\r\n\r\n\r\nChapter 15\r\n\r\n\r\n“Such was the history of my beloved cottagers. It impressed me deeply.\r\nI learned, from the views of social life which it developed, to admire\r\ntheir virtues and to deprecate the vices of mankind.\r\n\r\n“As yet I looked upon crime as a distant evil, benevolence and\r\ngenerosity were ever present before me, inciting within me a desire to\r\nbecome an actor in the busy scene where so many admirable qualities\r\nwere called forth and displayed. But in giving an account of the\r\nprogress of my intellect, I must not omit a circumstance which occurred\r\nin the beginning of the month of August of the same year.\r\n\r\n“One night during my accustomed visit to the neighbouring wood where I\r\ncollected my own food and brought home firing for my protectors, I found on\r\nthe ground a leathern portmanteau containing several articles of dress and\r\nsome books. I eagerly seized the prize and returned with it to my hovel. \r\nFortunately the books were written in the language, the elements of which I\r\nhad acquired at the cottage; they consisted of _Paradise Lost_, a volume\r\nof _Plutarch’s Lives_, and the _Sorrows of Werter_. The\r\npossession of these treasures gave me extreme delight; I now continually\r\nstudied and exercised my mind upon these histories, whilst my friends were\r\nemployed in their ordinary occupations.\r\n\r\n“I can hardly describe to you the effect of these books. They produced\r\nin me an infinity of new images and feelings, that sometimes raised me\r\nto ecstasy, but more frequently sunk me into the lowest dejection. In\r\nthe _Sorrows of Werter_, besides the interest of its simple and affecting\r\nstory, so many opinions are canvassed and so many lights thrown upon\r\nwhat had hitherto been to me obscure subjects that I found in it a\r\nnever-ending source of speculation and astonishment. The gentle and\r\ndomestic manners it described, combined with lofty sentiments and\r\nfeelings, which had for their object something out of self, accorded\r\nwell with my experience among my protectors and with the wants which\r\nwere for ever alive in my own bosom. But I thought Werter himself a\r\nmore divine being than I had ever beheld or imagined; his character\r\ncontained no pretension, but it sank deep. The disquisitions upon\r\ndeath and suicide were calculated to fill me with wonder. I did not\r\npretend to enter into the merits of the case, yet I inclined towards\r\nthe opinions of the hero, whose extinction I wept, without precisely\r\nunderstanding it.\r\n\r\n“As I read, however, I applied much personally to my own feelings and\r\ncondition. I found myself similar yet at the same time strangely\r\nunlike to the beings concerning whom I read and to whose conversation I\r\nwas a listener. I sympathised with and partly understood them, but I\r\nwas unformed in mind; I was dependent on none and related to none.\r\n‘The path of my departure was free,’ and there was none to lament my\r\nannihilation. My person was hideous and my stature gigantic. What did\r\nthis mean? Who was I? What was I? Whence did I come? What was my\r\ndestination? These questions continually recurred, but I was unable to\r\nsolve them.\r\n\r\n“The volume of _Plutarch’s Lives_ which I possessed contained the\r\nhistories of the first founders of the ancient republics. This book\r\nhad a far different effect upon me from the _Sorrows of Werter_. I\r\nlearned from Werter’s imaginations despondency and gloom, but Plutarch\r\ntaught me high thoughts; he elevated me above the wretched sphere of my\r\nown reflections, to admire and love the heroes of past ages. Many\r\nthings I read surpassed my understanding and experience. I had a very\r\nconfused knowledge of kingdoms, wide extents of country, mighty rivers,\r\nand boundless seas. But I was perfectly unacquainted with towns and\r\nlarge assemblages of men. The cottage of my protectors had been the\r\nonly school in which I had studied human nature, but this book\r\ndeveloped new and mightier scenes of action. I read of men concerned\r\nin public affairs, governing or massacring their species. I felt the\r\ngreatest ardour for virtue rise within me, and abhorrence for vice, as\r\nfar as I understood the signification of those terms, relative as they\r\nwere, as I applied them, to pleasure and pain alone. Induced by these\r\nfeelings, I was of course led to admire peaceable lawgivers, Numa,\r\nSolon, and Lycurgus, in preference to Romulus and Theseus. The\r\npatriarchal lives of my protectors caused these impressions to take a\r\nfirm hold on my mind; perhaps, if my first introduction to humanity had\r\nbeen made by a young soldier, burning for glory and slaughter, I should\r\nhave been imbued with different sensations.\r\n\r\n“But _Paradise Lost_ excited different and far deeper emotions. I read\r\nit, as I had read the other volumes which had fallen into my hands, as\r\na true history. It moved every feeling of wonder and awe that the\r\npicture of an omnipotent God warring with his creatures was capable of\r\nexciting. I often referred the several situations, as their similarity\r\nstruck me, to my own. Like Adam, I was apparently united by no link to\r\nany other being in existence; but his state was far different from mine\r\nin every other respect. He had come forth from the hands of God a\r\nperfect creature, happy and prosperous, guarded by the especial care of\r\nhis Creator; he was allowed to converse with and acquire knowledge from\r\nbeings of a superior nature, but I was wretched, helpless, and alone.\r\nMany times I considered Satan as the fitter emblem of my condition, for\r\noften, like him, when I viewed the bliss of my protectors, the bitter\r\ngall of envy rose within me.\r\n\r\n“Another circumstance strengthened and confirmed these feelings. Soon\r\nafter my arrival in the hovel I discovered some papers in the pocket of\r\nthe dress which I had taken from your laboratory. At first I had\r\nneglected them, but now that I was able to decipher the characters in\r\nwhich they were written, I began to study them with diligence. It was\r\nyour journal of the four months that preceded my creation. You\r\nminutely described in these papers every step you took in the progress\r\nof your work; this history was mingled with accounts of domestic\r\noccurrences. You doubtless recollect these papers. Here they are.\r\nEverything is related in them which bears reference to my accursed\r\norigin; the whole detail of that series of disgusting circumstances\r\nwhich produced it is set in view; the minutest description of my odious\r\nand loathsome person is given, in language which painted your own\r\nhorrors and rendered mine indelible. I sickened as I read. ‘Hateful\r\nday when I received life!’ I exclaimed in agony. ‘Accursed creator!\r\nWhy did you form a monster so hideous that even _you_ turned from me in\r\ndisgust? God, in pity, made man beautiful and alluring, after his own\r\nimage; but my form is a filthy type of yours, more horrid even from the\r\nvery resemblance. Satan had his companions, fellow devils, to admire\r\nand encourage him, but I am solitary and abhorred.’\r\n\r\n“These were the reflections of my hours of despondency and solitude;\r\nbut when I contemplated the virtues of the cottagers, their amiable and\r\nbenevolent dispositions, I persuaded myself that when they should\r\nbecome acquainted with my admiration of their virtues they would\r\ncompassionate me and overlook my personal deformity. Could they turn\r\nfrom their door one, however monstrous, who solicited their compassion\r\nand friendship? I resolved, at least, not to despair, but in every way\r\nto fit myself for an interview with them which would decide my fate. I\r\npostponed this attempt for some months longer, for the importance\r\nattached to its success inspired me with a dread lest I should fail.\r\nBesides, I found that my understanding improved so much with every\r\nday’s experience that I was unwilling to commence this undertaking\r\nuntil a few more months should have added to my sagacity.\r\n\r\n“Several changes, in the meantime, took place in the cottage. The\r\npresence of Safie diffused happiness among its inhabitants, and I also\r\nfound that a greater degree of plenty reigned there. Felix and Agatha\r\nspent more time in amusement and conversation, and were assisted in\r\ntheir labours by servants. They did not appear rich, but they were\r\ncontented and happy; their feelings were serene and peaceful, while\r\nmine became every day more tumultuous. Increase of knowledge only\r\ndiscovered to me more clearly what a wretched outcast I was. I\r\ncherished hope, it is true, but it vanished when I beheld my person\r\nreflected in water or my shadow in the moonshine, even as that frail\r\nimage and that inconstant shade.\r\n\r\n“I endeavoured to crush these fears and to fortify myself for the trial\r\nwhich in a few months I resolved to undergo; and sometimes I allowed my\r\nthoughts, unchecked by reason, to ramble in the fields of Paradise, and\r\ndared to fancy amiable and lovely creatures sympathising with my\r\nfeelings and cheering my gloom; their angelic countenances breathed\r\nsmiles of consolation. But it was all a dream; no Eve soothed my\r\nsorrows nor shared my thoughts; I was alone. I remembered Adam’s\r\nsupplication to his Creator. But where was mine? He had abandoned me,\r\nand in the bitterness of my heart I cursed him.\r\n\r\n“Autumn passed thus. I saw, with surprise and grief, the leaves decay\r\nand fall, and nature again assume the barren and bleak appearance it\r\nhad worn when I first beheld the woods and the lovely moon. Yet I did\r\nnot heed the bleakness of the weather; I was better fitted by my\r\nconformation for the endurance of cold than heat. But my chief\r\ndelights were the sight of the flowers, the birds, and all the gay\r\napparel of summer; when those deserted me, I turned with more attention\r\ntowards the cottagers. Their happiness was not decreased by the\r\nabsence of summer. They loved and sympathised with one another; and\r\ntheir joys, depending on each other, were not interrupted by the\r\ncasualties that took place around them. The more I saw of them, the\r\ngreater became my desire to claim their protection and kindness; my\r\nheart yearned to be known and loved by these amiable creatures; to see\r\ntheir sweet looks directed towards me with affection was the utmost\r\nlimit of my ambition. I dared not think that they would turn them from\r\nme with disdain and horror. The poor that stopped at their door were\r\nnever driven away. I asked, it is true, for greater treasures than a\r\nlittle food or rest: I required kindness and sympathy; but I did not\r\nbelieve myself utterly unworthy of it.\r\n\r\n“The winter advanced, and an entire revolution of the seasons had taken\r\nplace since I awoke into life. My attention at this time was solely\r\ndirected towards my plan of introducing myself into the cottage of my\r\nprotectors. I revolved many projects, but that on which I finally\r\nfixed was to enter the dwelling when the blind old man should be alone.\r\nI had sagacity enough to discover that the unnatural hideousness of my\r\nperson was the chief object of horror with those who had formerly\r\nbeheld me. My voice, although harsh, had nothing terrible in it; I\r\nthought, therefore, that if in the absence of his children I could gain\r\nthe good will and mediation of the old De Lacey, I might by his means\r\nbe tolerated by my younger protectors.\r\n\r\n“One day, when the sun shone on the red leaves that strewed the ground\r\nand diffused cheerfulness, although it denied warmth, Safie, Agatha,\r\nand Felix departed on a long country walk, and the old man, at his own\r\ndesire, was left alone in the cottage. When his children had departed,\r\nhe took up his guitar and played several mournful but sweet airs, more\r\nsweet and mournful than I had ever heard him play before. At first his\r\ncountenance was illuminated with pleasure, but as he continued,\r\nthoughtfulness and sadness succeeded; at length, laying aside the\r\ninstrument, he sat absorbed in reflection.\r\n\r\n“My heart beat quick; this was the hour and moment of trial, which\r\nwould decide my hopes or realise my fears. The servants were gone to a\r\nneighbouring fair. All was silent in and around the cottage; it was an\r\nexcellent opportunity; yet, when I proceeded to execute my plan, my\r\nlimbs failed me and I sank to the ground. Again I rose, and exerting\r\nall the firmness of which I was master, removed the planks which I had\r\nplaced before my hovel to conceal my retreat. The fresh air revived\r\nme, and with renewed determination I approached the door of their\r\ncottage.\r\n\r\n“I knocked. ‘Who is there?’ said the old man. ‘Come in.’\r\n\r\n“I entered. ‘Pardon this intrusion,’ said I; ‘I am\r\na traveller in want of a little rest; you would greatly oblige me if you\r\nwould allow me to remain a few minutes before the fire.’\r\n\r\n“‘Enter,’ said De Lacey, ‘and I will try in what\r\nmanner I can to relieve your wants; but, unfortunately, my children are\r\nfrom home, and as I am blind, I am afraid I shall find it difficult to\r\nprocure food for you.’\r\n\r\n“‘Do not trouble yourself, my kind host; I have food; it is\r\nwarmth and rest only that I need.’\r\n\r\n“I sat down, and a silence ensued. I knew that every minute was\r\nprecious to me, yet I remained irresolute in what manner to commence\r\nthe interview, when the old man addressed me.\r\n\r\n‘By your language, stranger, I suppose you are my countryman; are you\r\nFrench?’\r\n\r\n“‘No; but I was educated by a French family and understand that\r\nlanguage only. I am now going to claim the protection of some friends,\r\nwhom I sincerely love, and of whose favour I have some hopes.’\r\n\r\n“‘Are they Germans?’\r\n\r\n“‘No, they are French. But let us change the subject. I am an\r\nunfortunate and deserted creature, I look around and I have no relation\r\nor friend upon earth. These amiable people to whom I go have never\r\nseen me and know little of me. I am full of fears, for if I fail\r\nthere, I am an outcast in the world for ever.’\r\n\r\n“‘Do not despair. To be friendless is indeed to be unfortunate, but\r\nthe hearts of men, when unprejudiced by any obvious self-interest, are\r\nfull of brotherly love and charity. Rely, therefore, on your hopes;\r\nand if these friends are good and amiable, do not despair.’\r\n\r\n“‘They are kind—they are the most excellent creatures in the world;\r\nbut, unfortunately, they are prejudiced against me. I have good\r\ndispositions; my life has been hitherto harmless and in some degree\r\nbeneficial; but a fatal prejudice clouds their eyes, and where they\r\nought to see a feeling and kind friend, they behold only a detestable\r\nmonster.’\r\n\r\n“‘That is indeed unfortunate; but if you are really blameless, cannot\r\nyou undeceive them?’\r\n\r\n“‘I am about to undertake that task; and it is on that account that I\r\nfeel so many overwhelming terrors. I tenderly love these friends; I\r\nhave, unknown to them, been for many months in the habits of daily\r\nkindness towards them; but they believe that I wish to injure them, and\r\nit is that prejudice which I wish to overcome.’\r\n\r\n“‘Where do these friends reside?’\r\n\r\n“‘Near this spot.’\r\n\r\n“The old man paused and then continued, ‘If you will unreservedly\r\nconfide to me the particulars of your tale, I perhaps may be of use in\r\nundeceiving them. I am blind and cannot judge of your countenance, but\r\nthere is something in your words which persuades me that you are\r\nsincere. I am poor and an exile, but it will afford me true pleasure\r\nto be in any way serviceable to a human creature.’\r\n\r\n“‘Excellent man! I thank you and accept your generous offer. You\r\nraise me from the dust by this kindness; and I trust that, by your aid,\r\nI shall not be driven from the society and sympathy of your fellow\r\ncreatures.’\r\n\r\n“‘Heaven forbid! Even if you were really criminal, for that can only\r\ndrive you to desperation, and not instigate you to virtue. I also am\r\nunfortunate; I and my family have been condemned, although innocent;\r\njudge, therefore, if I do not feel for your misfortunes.’\r\n\r\n“‘How can I thank you, my best and only benefactor? From your lips\r\nfirst have I heard the voice of kindness directed towards me; I shall\r\nbe for ever grateful; and your present humanity assures me of success\r\nwith those friends whom I am on the point of meeting.’\r\n\r\n“‘May I know the names and residence of those friends?’\r\n\r\n“I paused. This, I thought, was the moment of decision, which was to\r\nrob me of or bestow happiness on me for ever. I struggled vainly for\r\nfirmness sufficient to answer him, but the effort destroyed all my\r\nremaining strength; I sank on the chair and sobbed aloud. At that\r\nmoment I heard the steps of my younger protectors. I had not a moment\r\nto lose, but seizing the hand of the old man, I cried, ‘Now is the\r\ntime! Save and protect me! You and your family are the friends whom I\r\nseek. Do not you desert me in the hour of trial!’\r\n\r\n“‘Great God!’ exclaimed the old man. ‘Who are you?’\r\n\r\n“At that instant the cottage door was opened, and Felix, Safie, and\r\nAgatha entered. Who can describe their horror and consternation on\r\nbeholding me? Agatha fainted, and Safie, unable to attend to her\r\nfriend, rushed out of the cottage. Felix darted forward, and with\r\nsupernatural force tore me from his father, to whose knees I clung, in\r\na transport of fury, he dashed me to the ground and struck me violently\r\nwith a stick. I could have torn him limb from limb, as the lion rends\r\nthe antelope. But my heart sank within me as with bitter sickness, and\r\nI refrained. I saw him on the point of repeating his blow, when,\r\novercome by pain and anguish, I quitted the cottage, and in the general\r\ntumult escaped unperceived to my hovel.”\r\n\r\n\r\n\r\n\r\nChapter 16\r\n\r\n\r\n“Cursed, cursed creator! Why did I live? Why, in that instant, did I\r\nnot extinguish the spark of existence which you had so wantonly\r\nbestowed? I know not; despair had not yet taken possession of me; my\r\nfeelings were those of rage and revenge. I could with pleasure have\r\ndestroyed the cottage and its inhabitants and have glutted myself with\r\ntheir shrieks and misery.\r\n\r\n“When night came I quitted my retreat and wandered in the wood; and\r\nnow, no longer restrained by the fear of discovery, I gave vent to my\r\nanguish in fearful howlings. I was like a wild beast that had broken\r\nthe toils, destroying the objects that obstructed me and ranging\r\nthrough the wood with a stag-like swiftness. Oh! What a miserable\r\nnight I passed! The cold stars shone in mockery, and the bare trees\r\nwaved their branches above me; now and then the sweet voice of a bird\r\nburst forth amidst the universal stillness. All, save I, were at rest\r\nor in enjoyment; I, like the arch-fiend, bore a hell within me, and\r\nfinding myself unsympathised with, wished to tear up the trees, spread\r\nhavoc and destruction around me, and then to have sat down and enjoyed\r\nthe ruin.\r\n\r\n“But this was a luxury of sensation that could not endure; I became\r\nfatigued with excess of bodily exertion and sank on the damp grass in\r\nthe sick impotence of despair. There was none among the myriads of men\r\nthat existed who would pity or assist me; and should I feel kindness\r\ntowards my enemies? No; from that moment I declared everlasting war\r\nagainst the species, and more than all, against him who had formed me\r\nand sent me forth to this insupportable misery.\r\n\r\n“The sun rose; I heard the voices of men and knew that it was\r\nimpossible to return to my retreat during that day. Accordingly I hid\r\nmyself in some thick underwood, determining to devote the ensuing hours\r\nto reflection on my situation.\r\n\r\n“The pleasant sunshine and the pure air of day restored me to some\r\ndegree of tranquillity; and when I considered what had passed at the\r\ncottage, I could not help believing that I had been too hasty in my\r\nconclusions. I had certainly acted imprudently. It was apparent that\r\nmy conversation had interested the father in my behalf, and I was a\r\nfool in having exposed my person to the horror of his children. I\r\nought to have familiarised the old De Lacey to me, and by degrees to\r\nhave discovered myself to the rest of his family, when they should have\r\nbeen prepared for my approach. But I did not believe my errors to be\r\nirretrievable, and after much consideration I resolved to return to the\r\ncottage, seek the old man, and by my representations win him to my\r\nparty.\r\n\r\n“These thoughts calmed me, and in the afternoon I sank into a profound\r\nsleep; but the fever of my blood did not allow me to be visited by\r\npeaceful dreams. The horrible scene of the preceding day was for ever\r\nacting before my eyes; the females were flying and the enraged Felix\r\ntearing me from his father’s feet. I awoke exhausted, and finding that\r\nit was already night, I crept forth from my hiding-place, and went in\r\nsearch of food.\r\n\r\n“When my hunger was appeased, I directed my steps towards the\r\nwell-known path that conducted to the cottage. All there was at peace.\r\nI crept into my hovel and remained in silent expectation of the\r\naccustomed hour when the family arose. That hour passed, the sun\r\nmounted high in the heavens, but the cottagers did not appear. I\r\ntrembled violently, apprehending some dreadful misfortune. The inside\r\nof the cottage was dark, and I heard no motion; I cannot describe the\r\nagony of this suspense.\r\n\r\n“Presently two countrymen passed by, but pausing near the cottage, they\r\nentered into conversation, using violent gesticulations; but I did not\r\nunderstand what they said, as they spoke the language of the country,\r\nwhich differed from that of my protectors. Soon after, however, Felix\r\napproached with another man; I was surprised, as I knew that he had not\r\nquitted the cottage that morning, and waited anxiously to discover from\r\nhis discourse the meaning of these unusual appearances.\r\n\r\n“‘Do you consider,’ said his companion to him,\r\n‘that you will be obliged to pay three months’ rent and to lose\r\nthe produce of your garden? I do not wish to take any unfair advantage, and\r\nI beg therefore that you will take some days to consider of your\r\ndetermination.’\r\n\r\n“‘It is utterly useless,’ replied Felix; ‘we can\r\nnever again inhabit your cottage. The life of my father is in the greatest\r\ndanger, owing to the dreadful circumstance that I have related. My wife and\r\nmy sister will never recover from their horror. I entreat you not to reason\r\nwith me any more. Take possession of your tenement and let me fly from this\r\nplace.’\r\n\r\n“Felix trembled violently as he said this. He and his companion\r\nentered the cottage, in which they remained for a few minutes, and then\r\ndeparted. I never saw any of the family of De Lacey more.\r\n\r\n“I continued for the remainder of the day in my hovel in a state of\r\nutter and stupid despair. My protectors had departed and had broken\r\nthe only link that held me to the world. For the first time the\r\nfeelings of revenge and hatred filled my bosom, and I did not strive to\r\ncontrol them, but allowing myself to be borne away by the stream, I\r\nbent my mind towards injury and death. When I thought of my friends,\r\nof the mild voice of De Lacey, the gentle eyes of Agatha, and the\r\nexquisite beauty of the Arabian, these thoughts vanished and a gush of\r\ntears somewhat soothed me. But again when I reflected that they had\r\nspurned and deserted me, anger returned, a rage of anger, and unable to\r\ninjure anything human, I turned my fury towards inanimate objects. As\r\nnight advanced, I placed a variety of combustibles around the cottage,\r\nand after having destroyed every vestige of cultivation in the garden,\r\nI waited with forced impatience until the moon had sunk to commence my\r\noperations.\r\n\r\n“As the night advanced, a fierce wind arose from the woods and quickly\r\ndispersed the clouds that had loitered in the heavens; the blast tore\r\nalong like a mighty avalanche and produced a kind of insanity in my\r\nspirits that burst all bounds of reason and reflection. I lighted the\r\ndry branch of a tree and danced with fury around the devoted cottage,\r\nmy eyes still fixed on the western horizon, the edge of which the moon\r\nnearly touched. A part of its orb was at length hid, and I waved my\r\nbrand; it sank, and with a loud scream I fired the straw, and heath,\r\nand bushes, which I had collected. The wind fanned the fire, and the\r\ncottage was quickly enveloped by the flames, which clung to it and\r\nlicked it with their forked and destroying tongues.\r\n\r\n“As soon as I was convinced that no assistance could save any part of\r\nthe habitation, I quitted the scene and sought for refuge in the woods.\r\n\r\n“And now, with the world before me, whither should I bend my steps? I\r\nresolved to fly far from the scene of my misfortunes; but to me, hated\r\nand despised, every country must be equally horrible. At length the\r\nthought of you crossed my mind. I learned from your papers that you\r\nwere my father, my creator; and to whom could I apply with more fitness\r\nthan to him who had given me life? Among the lessons that Felix had\r\nbestowed upon Safie, geography had not been omitted; I had learned from\r\nthese the relative situations of the different countries of the earth.\r\nYou had mentioned Geneva as the name of your native town, and towards\r\nthis place I resolved to proceed.\r\n\r\n“But how was I to direct myself? I knew that I must travel in a\r\nsouthwesterly direction to reach my destination, but the sun was my\r\nonly guide. I did not know the names of the towns that I was to pass\r\nthrough, nor could I ask information from a single human being; but I\r\ndid not despair. From you only could I hope for succour, although\r\ntowards you I felt no sentiment but that of hatred. Unfeeling,\r\nheartless creator! You had endowed me with perceptions and passions\r\nand then cast me abroad an object for the scorn and horror of mankind.\r\nBut on you only had I any claim for pity and redress, and from you I\r\ndetermined to seek that justice which I vainly attempted to gain from\r\nany other being that wore the human form.\r\n\r\n“My travels were long and the sufferings I endured intense. It was\r\nlate in autumn when I quitted the district where I had so long resided.\r\nI travelled only at night, fearful of encountering the visage of a\r\nhuman being. Nature decayed around me, and the sun became heatless;\r\nrain and snow poured around me; mighty rivers were frozen; the surface\r\nof the earth was hard and chill, and bare, and I found no shelter. Oh,\r\nearth! How often did I imprecate curses on the cause of my being! The\r\nmildness of my nature had fled, and all within me was turned to gall\r\nand bitterness. The nearer I approached to your habitation, the more\r\ndeeply did I feel the spirit of revenge enkindled in my heart. Snow\r\nfell, and the waters were hardened, but I rested not. A few incidents\r\nnow and then directed me, and I possessed a map of the country; but I\r\noften wandered wide from my path. The agony of my feelings allowed me\r\nno respite; no incident occurred from which my rage and misery could\r\nnot extract its food; but a circumstance that happened when I arrived\r\non the confines of Switzerland, when the sun had recovered its warmth\r\nand the earth again began to look green, confirmed in an especial\r\nmanner the bitterness and horror of my feelings.\r\n\r\n“I generally rested during the day and travelled only when I was\r\nsecured by night from the view of man. One morning, however, finding\r\nthat my path lay through a deep wood, I ventured to continue my journey\r\nafter the sun had risen; the day, which was one of the first of spring,\r\ncheered even me by the loveliness of its sunshine and the balminess of\r\nthe air. I felt emotions of gentleness and pleasure, that had long\r\nappeared dead, revive within me. Half surprised by the novelty of\r\nthese sensations, I allowed myself to be borne away by them, and\r\nforgetting my solitude and deformity, dared to be happy. Soft tears\r\nagain bedewed my cheeks, and I even raised my humid eyes with\r\nthankfulness towards the blessed sun, which bestowed such joy upon me.\r\n\r\n“I continued to wind among the paths of the wood, until I came to its\r\nboundary, which was skirted by a deep and rapid river, into which many\r\nof the trees bent their branches, now budding with the fresh spring.\r\nHere I paused, not exactly knowing what path to pursue, when I heard\r\nthe sound of voices, that induced me to conceal myself under the shade\r\nof a cypress. I was scarcely hid when a young girl came running\r\ntowards the spot where I was concealed, laughing, as if she ran from\r\nsomeone in sport. She continued her course along the precipitous sides\r\nof the river, when suddenly her foot slipped, and she fell into the\r\nrapid stream. I rushed from my hiding-place and with extreme labour,\r\nfrom the force of the current, saved her and dragged her to shore. She\r\nwas senseless, and I endeavoured by every means in my power to restore\r\nanimation, when I was suddenly interrupted by the approach of a rustic,\r\nwho was probably the person from whom she had playfully fled. On\r\nseeing me, he darted towards me, and tearing the girl from my arms,\r\nhastened towards the deeper parts of the wood. I followed speedily, I\r\nhardly knew why; but when the man saw me draw near, he aimed a gun,\r\nwhich he carried, at my body and fired. I sank to the ground, and my\r\ninjurer, with increased swiftness, escaped into the wood.\r\n\r\n“This was then the reward of my benevolence! I had saved a human being\r\nfrom destruction, and as a recompense I now writhed under the miserable\r\npain of a wound which shattered the flesh and bone. The feelings of\r\nkindness and gentleness which I had entertained but a few moments\r\nbefore gave place to hellish rage and gnashing of teeth. Inflamed by\r\npain, I vowed eternal hatred and vengeance to all mankind. But the\r\nagony of my wound overcame me; my pulses paused, and I fainted.\r\n\r\n“For some weeks I led a miserable life in the woods, endeavouring to\r\ncure the wound which I had received. The ball had entered my shoulder,\r\nand I knew not whether it had remained there or passed through; at any\r\nrate I had no means of extracting it. My sufferings were augmented\r\nalso by the oppressive sense of the injustice and ingratitude of their\r\ninfliction. My daily vows rose for revenge—a deep and deadly revenge,\r\nsuch as would alone compensate for the outrages and anguish I had\r\nendured.\r\n\r\n“After some weeks my wound healed, and I continued my journey. The\r\nlabours I endured were no longer to be alleviated by the bright sun or\r\ngentle breezes of spring; all joy was but a mockery which insulted my\r\ndesolate state and made me feel more painfully that I was not made for\r\nthe enjoyment of pleasure.\r\n\r\n“But my toils now drew near a close, and in two months from this time I\r\nreached the environs of Geneva.\r\n\r\n“It was evening when I arrived, and I retired to a hiding-place among\r\nthe fields that surround it to meditate in what manner I should apply\r\nto you. I was oppressed by fatigue and hunger and far too unhappy to\r\nenjoy the gentle breezes of evening or the prospect of the sun setting\r\nbehind the stupendous mountains of Jura.\r\n\r\n“At this time a slight sleep relieved me from the pain of reflection,\r\nwhich was disturbed by the approach of a beautiful child, who came\r\nrunning into the recess I had chosen, with all the sportiveness of\r\ninfancy. Suddenly, as I gazed on him, an idea seized me that this\r\nlittle creature was unprejudiced and had lived too short a time to have\r\nimbibed a horror of deformity. If, therefore, I could seize him and\r\neducate him as my companion and friend, I should not be so desolate in\r\nthis peopled earth.\r\n\r\n“Urged by this impulse, I seized on the boy as he passed and drew him\r\ntowards me. As soon as he beheld my form, he placed his hands before\r\nhis eyes and uttered a shrill scream; I drew his hand forcibly from his\r\nface and said, ‘Child, what is the meaning of this? I do not intend to\r\nhurt you; listen to me.’\r\n\r\n“He struggled violently. ‘Let me go,’ he cried;\r\n‘monster! Ugly wretch! You wish to eat me and tear me to pieces. You\r\nare an ogre. Let me go, or I will tell my papa.’\r\n\r\n“‘Boy, you will never see your father again; you must come with me.’\r\n\r\n“‘Hideous monster! Let me go. My papa is a syndic—he is M.\r\nFrankenstein—he will punish you. You dare not keep me.’\r\n\r\n“‘Frankenstein! you belong then to my enemy—to him towards whom I have\r\nsworn eternal revenge; you shall be my first victim.’\r\n\r\n“The child still struggled and loaded me with epithets which carried\r\ndespair to my heart; I grasped his throat to silence him, and in a\r\nmoment he lay dead at my feet.\r\n\r\n“I gazed on my victim, and my heart swelled with exultation and hellish\r\ntriumph; clapping my hands, I exclaimed, ‘I too can create desolation;\r\nmy enemy is not invulnerable; this death will carry despair to him, and\r\na thousand other miseries shall torment and destroy him.’\r\n\r\n“As I fixed my eyes on the child, I saw something glittering on his\r\nbreast. I took it; it was a portrait of a most lovely woman. In spite\r\nof my malignity, it softened and attracted me. For a few moments I\r\ngazed with delight on her dark eyes, fringed by deep lashes, and her\r\nlovely lips; but presently my rage returned; I remembered that I was\r\nfor ever deprived of the delights that such beautiful creatures could\r\nbestow and that she whose resemblance I contemplated would, in\r\nregarding me, have changed that air of divine benignity to one\r\nexpressive of disgust and affright.\r\n\r\n“Can you wonder that such thoughts transported me with rage? I only\r\nwonder that at that moment, instead of venting my sensations in\r\nexclamations and agony, I did not rush among mankind and perish in the\r\nattempt to destroy them.\r\n\r\n“While I was overcome by these feelings, I left the spot where I had\r\ncommitted the murder, and seeking a more secluded hiding-place, I\r\nentered a barn which had appeared to me to be empty. A woman was\r\nsleeping on some straw; she was young, not indeed so beautiful as her\r\nwhose portrait I held, but of an agreeable aspect and blooming in the\r\nloveliness of youth and health. Here, I thought, is one of those whose\r\njoy-imparting smiles are bestowed on all but me. And then I bent over\r\nher and whispered, ‘Awake, fairest, thy lover is near—he who would\r\ngive his life but to obtain one look of affection from thine eyes; my\r\nbeloved, awake!’\r\n\r\n“The sleeper stirred; a thrill of terror ran through me. Should she\r\nindeed awake, and see me, and curse me, and denounce the murderer? Thus\r\nwould she assuredly act if her darkened eyes opened and she beheld me.\r\nThe thought was madness; it stirred the fiend within me—not I, but\r\nshe, shall suffer; the murder I have committed because I am for ever\r\nrobbed of all that she could give me, she shall atone. The crime had\r\nits source in her; be hers the punishment! Thanks to the lessons of\r\nFelix and the sanguinary laws of man, I had learned now to work\r\nmischief. I bent over her and placed the portrait securely in one of\r\nthe folds of her dress. She moved again, and I fled.\r\n\r\n“For some days I haunted the spot where these scenes had taken place,\r\nsometimes wishing to see you, sometimes resolved to quit the world and\r\nits miseries for ever. At length I wandered towards these mountains,\r\nand have ranged through their immense recesses, consumed by a burning\r\npassion which you alone can gratify. We may not part until you have\r\npromised to comply with my requisition. I am alone and miserable; man\r\nwill not associate with me; but one as deformed and horrible as myself\r\nwould not deny herself to me. My companion must be of the same species\r\nand have the same defects. This being you must create.”\r\n\r\n\r\n\r\n\r\nChapter 17\r\n\r\n\r\nThe being finished speaking and fixed his looks upon me in the\r\nexpectation of a reply. But I was bewildered, perplexed, and unable to\r\narrange my ideas sufficiently to understand the full extent of his\r\nproposition. He continued,\r\n\r\n“You must create a female for me with whom I can live in the\r\ninterchange of those sympathies necessary for my being. This you alone\r\ncan do, and I demand it of you as a right which you must not refuse to\r\nconcede.”\r\n\r\nThe latter part of his tale had kindled anew in me the anger that had\r\ndied away while he narrated his peaceful life among the cottagers, and\r\nas he said this I could no longer suppress the rage that burned within\r\nme.\r\n\r\n“I do refuse it,” I replied; “and no torture shall ever extort a\r\nconsent from me. You may render me the most miserable of men, but you\r\nshall never make me base in my own eyes. Shall I create another like\r\nyourself, whose joint wickedness might desolate the world. Begone! I\r\nhave answered you; you may torture me, but I will never consent.”\r\n\r\n“You are in the wrong,” replied the fiend; “and instead\r\nof threatening, I am content to reason with you. I am malicious because I\r\nam miserable. Am I not shunned and hated by all mankind? You, my creator,\r\nwould tear me to pieces and triumph; remember that, and tell me why I\r\nshould pity man more than he pities me? You would not call it murder if you\r\ncould precipitate me into one of those ice-rifts and destroy my frame, the\r\nwork of your own hands. Shall I respect man when he condemns me? Let him\r\nlive with me in the interchange of kindness, and instead of injury I would\r\nbestow every benefit upon him with tears of gratitude at his acceptance.\r\nBut that cannot be; the human senses are insurmountable barriers to our\r\nunion. Yet mine shall not be the submission of abject slavery. I will\r\nrevenge my injuries; if I cannot inspire love, I will cause fear, and\r\nchiefly towards you my arch-enemy, because my creator, do I swear\r\ninextinguishable hatred. Have a care; I will work at your destruction, nor\r\nfinish until I desolate your heart, so that you shall curse the hour of\r\nyour birth.”\r\n\r\nA fiendish rage animated him as he said this; his face was wrinkled\r\ninto contortions too horrible for human eyes to behold; but presently\r\nhe calmed himself and proceeded—\r\n\r\n“I intended to reason. This passion is detrimental to me, for you do\r\nnot reflect that _you_ are the cause of its excess. If any being felt\r\nemotions of benevolence towards me, I should return them a hundred and a\r\nhundredfold; for that one creature’s sake I would make peace with the\r\nwhole kind! But I now indulge in dreams of bliss that cannot be realised.\r\nWhat I ask of you is reasonable and moderate; I demand a creature of\r\nanother sex, but as hideous as myself; the gratification is small, but it\r\nis all that I can receive, and it shall content me. It is true, we shall be\r\nmonsters, cut off from all the world; but on that account we shall be more\r\nattached to one another. Our lives will not be happy, but they will be\r\nharmless and free from the misery I now feel. Oh! My creator, make me\r\nhappy; let me feel gratitude towards you for one benefit! Let me see that I\r\nexcite the sympathy of some existing thing; do not deny me my\r\nrequest!”\r\n\r\nI was moved. I shuddered when I thought of the possible consequences\r\nof my consent, but I felt that there was some justice in his argument.\r\nHis tale and the feelings he now expressed proved him to be a creature\r\nof fine sensations, and did I not as his maker owe him all the portion\r\nof happiness that it was in my power to bestow? He saw my change of\r\nfeeling and continued,\r\n\r\n“If you consent, neither you nor any other human being shall ever see\r\nus again; I will go to the vast wilds of South America. My food is not\r\nthat of man; I do not destroy the lamb and the kid to glut my appetite;\r\nacorns and berries afford me sufficient nourishment. My companion will\r\nbe of the same nature as myself and will be content with the same fare.\r\nWe shall make our bed of dried leaves; the sun will shine on us as on\r\nman and will ripen our food. The picture I present to you is peaceful\r\nand human, and you must feel that you could deny it only in the\r\nwantonness of power and cruelty. Pitiless as you have been towards me,\r\nI now see compassion in your eyes; let me seize the favourable moment\r\nand persuade you to promise what I so ardently desire.”\r\n\r\n“You propose,” replied I, “to fly from the habitations of\r\nman, to dwell in those wilds where the beasts of the field will be your\r\nonly companions. How can you, who long for the love and sympathy of man,\r\npersevere in this exile? You will return and again seek their kindness, and\r\nyou will meet with their detestation; your evil passions will be renewed,\r\nand you will then have a companion to aid you in the task of destruction.\r\nThis may not be; cease to argue the point, for I cannot consent.”\r\n\r\n“How inconstant are your feelings! But a moment ago you were moved by\r\nmy representations, and why do you again harden yourself to my complaints?\r\nI swear to you, by the earth which I inhabit, and by you that made me, that\r\nwith the companion you bestow, I will quit the neighbourhood of man and\r\ndwell, as it may chance, in the most savage of places. My evil passions\r\nwill have fled, for I shall meet with sympathy! My life will flow quietly\r\naway, and in my dying moments I shall not curse my maker.”\r\n\r\nHis words had a strange effect upon me. I compassionated him and\r\nsometimes felt a wish to console him, but when I looked upon him, when\r\nI saw the filthy mass that moved and talked, my heart sickened and my\r\nfeelings were altered to those of horror and hatred. I tried to stifle\r\nthese sensations; I thought that as I could not sympathise with him, I\r\nhad no right to withhold from him the small portion of happiness which\r\nwas yet in my power to bestow.\r\n\r\n“You swear,” I said, “to be harmless; but have you not\r\nalready shown a degree of malice that should reasonably make me distrust\r\nyou? May not even this be a feint that will increase your triumph by\r\naffording a wider scope for your revenge?”\r\n\r\n“How is this? I must not be trifled with, and I demand an answer. If\r\nI have no ties and no affections, hatred and vice must be my portion;\r\nthe love of another will destroy the cause of my crimes, and I shall\r\nbecome a thing of whose existence everyone will be ignorant. My vices\r\nare the children of a forced solitude that I abhor, and my virtues will\r\nnecessarily arise when I live in communion with an equal. I shall feel\r\nthe affections of a sensitive being and become linked to the chain of\r\nexistence and events from which I am now excluded.”\r\n\r\nI paused some time to reflect on all he had related and the various\r\narguments which he had employed. I thought of the promise of virtues which\r\nhe had displayed on the opening of his existence and the subsequent blight\r\nof all kindly feeling by the loathing and scorn which his protectors had\r\nmanifested towards him. His power and threats were not omitted in my\r\ncalculations; a creature who could exist in the ice-caves of the glaciers\r\nand hide himself from pursuit among the ridges of inaccessible precipices\r\nwas a being possessing faculties it would be vain to cope with. After a\r\nlong pause of reflection I concluded that the justice due both to him and\r\nmy fellow creatures demanded of me that I should comply with his request.\r\nTurning to him, therefore, I said,\r\n\r\n“I consent to your demand, on your solemn oath to quit Europe for ever,\r\nand every other place in the neighbourhood of man, as soon as I shall\r\ndeliver into your hands a female who will accompany you in your exile.”\r\n\r\n“I swear,” he cried, “by the sun, and by the blue sky of\r\nheaven, and by the fire of love that burns my heart, that if you grant my\r\nprayer, while they exist you shall never behold me again. Depart to your\r\nhome and commence your labours; I shall watch their progress with\r\nunutterable anxiety; and fear not but that when you are ready I shall\r\nappear.”\r\n\r\nSaying this, he suddenly quitted me, fearful, perhaps, of any change in\r\nmy sentiments. I saw him descend the mountain with greater speed than\r\nthe flight of an eagle, and quickly lost among the undulations of the\r\nsea of ice.\r\n\r\nHis tale had occupied the whole day, and the sun was upon the verge of\r\nthe horizon when he departed. I knew that I ought to hasten my descent\r\ntowards the valley, as I should soon be encompassed in darkness; but my\r\nheart was heavy, and my steps slow. The labour of winding among the\r\nlittle paths of the mountain and fixing my feet firmly as I advanced\r\nperplexed me, occupied as I was by the emotions which the occurrences\r\nof the day had produced. Night was far advanced when I came to the\r\nhalfway resting-place and seated myself beside the fountain. The stars\r\nshone at intervals as the clouds passed from over them; the dark pines\r\nrose before me, and every here and there a broken tree lay on the\r\nground; it was a scene of wonderful solemnity and stirred strange\r\nthoughts within me. I wept bitterly, and clasping my hands in agony, I\r\nexclaimed, “Oh! stars and clouds and winds, ye are all about to mock\r\nme; if ye really pity me, crush sensation and memory; let me become as\r\nnought; but if not, depart, depart, and leave me in darkness.”\r\n\r\nThese were wild and miserable thoughts, but I cannot describe to you\r\nhow the eternal twinkling of the stars weighed upon me and how I\r\nlistened to every blast of wind as if it were a dull ugly siroc on its\r\nway to consume me.\r\n\r\nMorning dawned before I arrived at the village of Chamounix; I took no\r\nrest, but returned immediately to Geneva. Even in my own heart I could\r\ngive no expression to my sensations—they weighed on me with a\r\nmountain’s weight and their excess destroyed my agony beneath them.\r\nThus I returned home, and entering the house, presented myself to the\r\nfamily. My haggard and wild appearance awoke intense alarm, but I\r\nanswered no question, scarcely did I speak. I felt as if I were placed\r\nunder a ban—as if I had no right to claim their sympathies—as if\r\nnever more might I enjoy companionship with them. Yet even thus I\r\nloved them to adoration; and to save them, I resolved to dedicate\r\nmyself to my most abhorred task. The prospect of such an occupation\r\nmade every other circumstance of existence pass before me like a dream,\r\nand that thought only had to me the reality of life.\r\n\r\n\r\n\r\n\r\nChapter 18\r\n\r\n\r\nDay after day, week after week, passed away on my return to Geneva; and\r\nI could not collect the courage to recommence my work. I feared the\r\nvengeance of the disappointed fiend, yet I was unable to overcome my\r\nrepugnance to the task which was enjoined me. I found that I could not\r\ncompose a female without again devoting several months to profound\r\nstudy and laborious disquisition. I had heard of some discoveries\r\nhaving been made by an English philosopher, the knowledge of which was\r\nmaterial to my success, and I sometimes thought of obtaining my\r\nfather’s consent to visit England for this purpose; but I clung to\r\nevery pretence of delay and shrank from taking the first step in an\r\nundertaking whose immediate necessity began to appear less absolute to\r\nme. A change indeed had taken place in me; my health, which had\r\nhitherto declined, was now much restored; and my spirits, when\r\nunchecked by the memory of my unhappy promise, rose proportionably. My\r\nfather saw this change with pleasure, and he turned his thoughts\r\ntowards the best method of eradicating the remains of my melancholy,\r\nwhich every now and then would return by fits, and with a devouring\r\nblackness overcast the approaching sunshine. At these moments I took\r\nrefuge in the most perfect solitude. I passed whole days on the lake\r\nalone in a little boat, watching the clouds and listening to the\r\nrippling of the waves, silent and listless. But the fresh air and\r\nbright sun seldom failed to restore me to some degree of composure, and\r\non my return I met the salutations of my friends with a readier smile\r\nand a more cheerful heart.\r\n\r\nIt was after my return from one of these rambles that my father,\r\ncalling me aside, thus addressed me,\r\n\r\n“I am happy to remark, my dear son, that you have resumed your former\r\npleasures and seem to be returning to yourself. And yet you are still\r\nunhappy and still avoid our society. For some time I was lost in\r\nconjecture as to the cause of this, but yesterday an idea struck me,\r\nand if it is well founded, I conjure you to avow it. Reserve on such a\r\npoint would be not only useless, but draw down treble misery on us all.”\r\n\r\nI trembled violently at his exordium, and my father continued—\r\n\r\n“I confess, my son, that I have always looked forward to your\r\nmarriage with our dear Elizabeth as the tie of our domestic comfort and the\r\nstay of my declining years. You were attached to each other from your\r\nearliest infancy; you studied together, and appeared, in dispositions and\r\ntastes, entirely suited to one another. But so blind is the experience of\r\nman that what I conceived to be the best assistants to my plan may have\r\nentirely destroyed it. You, perhaps, regard her as your sister, without any\r\nwish that she might become your wife. Nay, you may have met with another\r\nwhom you may love; and considering yourself as bound in honour to\r\nElizabeth, this struggle may occasion the poignant misery which you appear\r\nto feel.”\r\n\r\n“My dear father, reassure yourself. I love my cousin tenderly and\r\nsincerely. I never saw any woman who excited, as Elizabeth does, my\r\nwarmest admiration and affection. My future hopes and prospects are\r\nentirely bound up in the expectation of our union.”\r\n\r\n“The expression of your sentiments of this subject, my dear Victor,\r\ngives me more pleasure than I have for some time experienced. If you\r\nfeel thus, we shall assuredly be happy, however present events may cast\r\na gloom over us. But it is this gloom which appears to have taken so\r\nstrong a hold of your mind that I wish to dissipate. Tell me,\r\ntherefore, whether you object to an immediate solemnisation of the\r\nmarriage. We have been unfortunate, and recent events have drawn us\r\nfrom that everyday tranquillity befitting my years and infirmities. You\r\nare younger; yet I do not suppose, possessed as you are of a competent\r\nfortune, that an early marriage would at all interfere with any future\r\nplans of honour and utility that you may have formed. Do not suppose,\r\nhowever, that I wish to dictate happiness to you or that a delay on\r\nyour part would cause me any serious uneasiness. Interpret my words\r\nwith candour and answer me, I conjure you, with confidence and\r\nsincerity.”\r\n\r\nI listened to my father in silence and remained for some time incapable\r\nof offering any reply. I revolved rapidly in my mind a multitude of\r\nthoughts and endeavoured to arrive at some conclusion. Alas! To me\r\nthe idea of an immediate union with my Elizabeth was one of horror and\r\ndismay. I was bound by a solemn promise which I had not yet fulfilled\r\nand dared not break, or if I did, what manifold miseries might not\r\nimpend over me and my devoted family! Could I enter into a festival\r\nwith this deadly weight yet hanging round my neck and bowing me to the\r\nground? I must perform my engagement and let the monster depart with\r\nhis mate before I allowed myself to enjoy the delight of a union from\r\nwhich I expected peace.\r\n\r\nI remembered also the necessity imposed upon me of either journeying to\r\nEngland or entering into a long correspondence with those philosophers\r\nof that country whose knowledge and discoveries were of indispensable\r\nuse to me in my present undertaking. The latter method of obtaining\r\nthe desired intelligence was dilatory and unsatisfactory; besides, I\r\nhad an insurmountable aversion to the idea of engaging myself in my\r\nloathsome task in my father’s house while in habits of familiar\r\nintercourse with those I loved. I knew that a thousand fearful\r\naccidents might occur, the slightest of which would disclose a tale to\r\nthrill all connected with me with horror. I was aware also that I\r\nshould often lose all self-command, all capacity of hiding the\r\nharrowing sensations that would possess me during the progress of my\r\nunearthly occupation. I must absent myself from all I loved while thus\r\nemployed. Once commenced, it would quickly be achieved, and I might be\r\nrestored to my family in peace and happiness. My promise fulfilled,\r\nthe monster would depart for ever. Or (so my fond fancy imaged) some\r\naccident might meanwhile occur to destroy him and put an end to my\r\nslavery for ever.\r\n\r\nThese feelings dictated my answer to my father. I expressed a wish to\r\nvisit England, but concealing the true reasons of this request, I\r\nclothed my desires under a guise which excited no suspicion, while I\r\nurged my desire with an earnestness that easily induced my father to\r\ncomply. After so long a period of an absorbing melancholy that\r\nresembled madness in its intensity and effects, he was glad to find\r\nthat I was capable of taking pleasure in the idea of such a journey,\r\nand he hoped that change of scene and varied amusement would, before my\r\nreturn, have restored me entirely to myself.\r\n\r\nThe duration of my absence was left to my own choice; a few months, or\r\nat most a year, was the period contemplated. One paternal kind\r\nprecaution he had taken to ensure my having a companion. Without\r\npreviously communicating with me, he had, in concert with Elizabeth,\r\narranged that Clerval should join me at Strasburgh. This interfered\r\nwith the solitude I coveted for the prosecution of my task; yet at the\r\ncommencement of my journey the presence of my friend could in no way be\r\nan impediment, and truly I rejoiced that thus I should be saved many\r\nhours of lonely, maddening reflection. Nay, Henry might stand between\r\nme and the intrusion of my foe. If I were alone, would he not at times\r\nforce his abhorred presence on me to remind me of my task or to\r\ncontemplate its progress?\r\n\r\nTo England, therefore, I was bound, and it was understood that my union\r\nwith Elizabeth should take place immediately on my return. My father’s\r\nage rendered him extremely averse to delay. For myself, there was one\r\nreward I promised myself from my detested toils—one consolation for my\r\nunparalleled sufferings; it was the prospect of that day when,\r\nenfranchised from my miserable slavery, I might claim Elizabeth and\r\nforget the past in my union with her.\r\n\r\nI now made arrangements for my journey, but one feeling haunted me\r\nwhich filled me with fear and agitation. During my absence I should\r\nleave my friends unconscious of the existence of their enemy and\r\nunprotected from his attacks, exasperated as he might be by my\r\ndeparture. But he had promised to follow me wherever I might go, and\r\nwould he not accompany me to England? This imagination was dreadful in\r\nitself, but soothing inasmuch as it supposed the safety of my friends.\r\nI was agonised with the idea of the possibility that the reverse of\r\nthis might happen. But through the whole period during which I was the\r\nslave of my creature I allowed myself to be governed by the impulses of\r\nthe moment; and my present sensations strongly intimated that the fiend\r\nwould follow me and exempt my family from the danger of his\r\nmachinations.\r\n\r\nIt was in the latter end of September that I again quitted my native\r\ncountry. My journey had been my own suggestion, and Elizabeth\r\ntherefore acquiesced, but she was filled with disquiet at the idea of\r\nmy suffering, away from her, the inroads of misery and grief. It had\r\nbeen her care which provided me a companion in Clerval—and yet a man\r\nis blind to a thousand minute circumstances which call forth a woman’s\r\nsedulous attention. She longed to bid me hasten my return; a thousand\r\nconflicting emotions rendered her mute as she bade me a tearful, silent\r\nfarewell.\r\n\r\nI threw myself into the carriage that was to convey me away, hardly\r\nknowing whither I was going, and careless of what was passing around.\r\nI remembered only, and it was with a bitter anguish that I reflected on\r\nit, to order that my chemical instruments should be packed to go with\r\nme. Filled with dreary imaginations, I passed through many beautiful\r\nand majestic scenes, but my eyes were fixed and unobserving. I could\r\nonly think of the bourne of my travels and the work which was to occupy\r\nme whilst they endured.\r\n\r\nAfter some days spent in listless indolence, during which I traversed\r\nmany leagues, I arrived at Strasburgh, where I waited two days for\r\nClerval. He came. Alas, how great was the contrast between us! He\r\nwas alive to every new scene, joyful when he saw the beauties of the\r\nsetting sun, and more happy when he beheld it rise and recommence a new\r\nday. He pointed out to me the shifting colours of the landscape and\r\nthe appearances of the sky. “This is what it is to live,” he cried;\r\n“now I enjoy existence! But you, my dear Frankenstein, wherefore are\r\nyou desponding and sorrowful!” In truth, I was occupied by gloomy\r\nthoughts and neither saw the descent of the evening star nor the golden\r\nsunrise reflected in the Rhine. And you, my friend, would be far more\r\namused with the journal of Clerval, who observed the scenery with an\r\neye of feeling and delight, than in listening to my reflections. I, a\r\nmiserable wretch, haunted by a curse that shut up every avenue to\r\nenjoyment.\r\n\r\nWe had agreed to descend the Rhine in a boat from Strasburgh to\r\nRotterdam, whence we might take shipping for London. During this\r\nvoyage we passed many willowy islands and saw several beautiful towns.\r\nWe stayed a day at Mannheim, and on the fifth from our departure from\r\nStrasburgh, arrived at Mainz. The course of the Rhine below Mainz\r\nbecomes much more picturesque. The river descends rapidly and winds\r\nbetween hills, not high, but steep, and of beautiful forms. We saw\r\nmany ruined castles standing on the edges of precipices, surrounded by\r\nblack woods, high and inaccessible. This part of the Rhine, indeed,\r\npresents a singularly variegated landscape. In one spot you view\r\nrugged hills, ruined castles overlooking tremendous precipices, with\r\nthe dark Rhine rushing beneath; and on the sudden turn of a promontory,\r\nflourishing vineyards with green sloping banks and a meandering river\r\nand populous towns occupy the scene.\r\n\r\nWe travelled at the time of the vintage and heard the song of the labourers\r\nas we glided down the stream. Even I, depressed in mind, and my spirits\r\ncontinually agitated by gloomy feelings, even I was pleased. I lay at the\r\nbottom of the boat, and as I gazed on the cloudless blue sky, I seemed to\r\ndrink in a tranquillity to which I had long been a stranger. And if these\r\nwere my sensations, who can describe those of Henry? He felt as if he had\r\nbeen transported to Fairy-land and enjoyed a happiness seldom tasted by\r\nman. “I have seen,” he said, “the most beautiful scenes\r\nof my own country; I have visited the lakes of Lucerne and Uri, where the\r\nsnowy mountains descend almost perpendicularly to the water, casting black\r\nand impenetrable shades, which would cause a gloomy and mournful appearance\r\nwere it not for the most verdant islands that relieve the eye by their gay\r\nappearance; I have seen this lake agitated by a tempest, when the wind tore\r\nup whirlwinds of water and gave you an idea of what the water-spout must be\r\non the great ocean; and the waves dash with fury the base of the mountain,\r\nwhere the priest and his mistress were overwhelmed by an avalanche and\r\nwhere their dying voices are still said to be heard amid the pauses of the\r\nnightly wind; I have seen the mountains of La Valais, and the Pays de Vaud;\r\nbut this country, Victor, pleases me more than all those wonders. The\r\nmountains of Switzerland are more majestic and strange, but there is a\r\ncharm in the banks of this divine river that I never before saw equalled.\r\nLook at that castle which overhangs yon precipice; and that also on the\r\nisland, almost concealed amongst the foliage of those lovely trees; and now\r\nthat group of labourers coming from among their vines; and that village\r\nhalf hid in the recess of the mountain. Oh, surely the spirit that inhabits\r\nand guards this place has a soul more in harmony with man than those who\r\npile the glacier or retire to the inaccessible peaks of the mountains of\r\nour own country.”\r\n\r\nClerval! Beloved friend! Even now it delights me to record your words and\r\nto dwell on the praise of which you are so eminently deserving. He was a\r\nbeing formed in the “very poetry of nature.” His wild and\r\nenthusiastic imagination was chastened by the sensibility of his heart. His\r\nsoul overflowed with ardent affections, and his friendship was of that\r\ndevoted and wondrous nature that the worldly-minded teach us to look for only\r\nin the imagination. But even human sympathies were not sufficient to\r\nsatisfy his eager mind. The scenery of external nature, which others regard\r\nonly with admiration, he loved with ardour:—\r\n\r\n ——The sounding cataract\r\n Haunted him like a passion: the tall rock,\r\n The mountain, and the deep and gloomy wood,\r\n Their colours and their forms, were then to him\r\n An appetite; a feeling, and a love,\r\n That had no need of a remoter charm,\r\n By thought supplied, or any interest\r\n Unborrow’d from the eye.\r\n\r\n [Wordsworth’s “Tintern Abbey”.]\r\n\r\nAnd where does he now exist? Is this gentle and lovely being lost\r\nfor ever? Has this mind, so replete with ideas, imaginations fanciful\r\nand magnificent, which formed a world, whose existence depended on the\r\nlife of its creator;—has this mind perished? Does it now only exist\r\nin my memory? No, it is not thus; your form so divinely wrought, and\r\nbeaming with beauty, has decayed, but your spirit still visits and\r\nconsoles your unhappy friend.\r\n\r\nPardon this gush of sorrow; these ineffectual words are but a slight\r\ntribute to the unexampled worth of Henry, but they soothe my heart,\r\noverflowing with the anguish which his remembrance creates. I will\r\nproceed with my tale.\r\n\r\nBeyond Cologne we descended to the plains of Holland; and we resolved to\r\npost the remainder of our way, for the wind was contrary and the stream of\r\nthe river was too gentle to aid us.\r\n\r\nOur journey here lost the interest arising from beautiful scenery, but we\r\narrived in a few days at Rotterdam, whence we proceeded by sea to England.\r\nIt was on a clear morning, in the latter days of December, that I first saw\r\nthe white cliffs of Britain. The banks of the Thames presented a new scene;\r\nthey were flat but fertile, and almost every town was marked by the\r\nremembrance of some story. We saw Tilbury Fort and remembered the Spanish\r\nArmada, Gravesend, Woolwich, and Greenwich—places which I had heard\r\nof even in my country.\r\n\r\nAt length we saw the numerous steeples of London, St. Paul’s towering\r\nabove all, and the Tower famed in English history.\r\n\r\n\r\n\r\n\r\nChapter 19\r\n\r\n\r\nLondon was our present point of rest; we determined to remain several\r\nmonths in this wonderful and celebrated city. Clerval desired the\r\nintercourse of the men of genius and talent who flourished at this\r\ntime, but this was with me a secondary object; I was principally\r\noccupied with the means of obtaining the information necessary for the\r\ncompletion of my promise and quickly availed myself of the letters of\r\nintroduction that I had brought with me, addressed to the most\r\ndistinguished natural philosophers.\r\n\r\nIf this journey had taken place during my days of study and happiness,\r\nit would have afforded me inexpressible pleasure. But a blight had\r\ncome over my existence, and I only visited these people for the sake of\r\nthe information they might give me on the subject in which my interest\r\nwas so terribly profound. Company was irksome to me; when alone, I\r\ncould fill my mind with the sights of heaven and earth; the voice of\r\nHenry soothed me, and I could thus cheat myself into a transitory\r\npeace. But busy, uninteresting, joyous faces brought back despair to\r\nmy heart. I saw an insurmountable barrier placed between me and my\r\nfellow men; this barrier was sealed with the blood of William and\r\nJustine, and to reflect on the events connected with those names filled\r\nmy soul with anguish.\r\n\r\nBut in Clerval I saw the image of my former self; he was inquisitive\r\nand anxious to gain experience and instruction. The difference of\r\nmanners which he observed was to him an inexhaustible source of\r\ninstruction and amusement. He was also pursuing an object he had long\r\nhad in view. His design was to visit India, in the belief that he had\r\nin his knowledge of its various languages, and in the views he had\r\ntaken of its society, the means of materially assisting the progress of\r\nEuropean colonization and trade. In Britain only could he further the\r\nexecution of his plan. He was for ever busy, and the only check to his\r\nenjoyments was my sorrowful and dejected mind. I tried to conceal this\r\nas much as possible, that I might not debar him from the pleasures\r\nnatural to one who was entering on a new scene of life, undisturbed by\r\nany care or bitter recollection. I often refused to accompany him,\r\nalleging another engagement, that I might remain alone. I now also\r\nbegan to collect the materials necessary for my new creation, and this\r\nwas to me like the torture of single drops of water continually falling\r\non the head. Every thought that was devoted to it was an extreme\r\nanguish, and every word that I spoke in allusion to it caused my lips\r\nto quiver, and my heart to palpitate.\r\n\r\nAfter passing some months in London, we received a letter from a person in\r\nScotland who had formerly been our visitor at Geneva. He mentioned the\r\nbeauties of his native country and asked us if those were not sufficient\r\nallurements to induce us to prolong our journey as far north as Perth,\r\nwhere he resided. Clerval eagerly desired to accept this invitation, and I,\r\nalthough I abhorred society, wished to view again mountains and streams and\r\nall the wondrous works with which Nature adorns her chosen dwelling-places.\r\n\r\nWe had arrived in England at the beginning of October, and it was now\r\nFebruary. We accordingly determined to commence our journey towards the\r\nnorth at the expiration of another month. In this expedition we did not\r\nintend to follow the great road to Edinburgh, but to visit Windsor, Oxford,\r\nMatlock, and the Cumberland lakes, resolving to arrive at the completion of\r\nthis tour about the end of July. I packed up my chemical instruments and\r\nthe materials I had collected, resolving to finish my labours in some\r\nobscure nook in the northern highlands of Scotland.\r\n\r\nWe quitted London on the 27th of March and remained a few days at\r\nWindsor, rambling in its beautiful forest. This was a new scene to us\r\nmountaineers; the majestic oaks, the quantity of game, and the herds of\r\nstately deer were all novelties to us.\r\n\r\nFrom thence we proceeded to Oxford. As we entered this city, our minds\r\nwere filled with the remembrance of the events that had been transacted\r\nthere more than a century and a half before. It was here that Charles\r\nI. had collected his forces. This city had remained faithful to him,\r\nafter the whole nation had forsaken his cause to join the standard of\r\nParliament and liberty. The memory of that unfortunate king and his\r\ncompanions, the amiable Falkland, the insolent Goring, his queen, and\r\nson, gave a peculiar interest to every part of the city which they\r\nmight be supposed to have inhabited. The spirit of elder days found a\r\ndwelling here, and we delighted to trace its footsteps. If these\r\nfeelings had not found an imaginary gratification, the appearance of\r\nthe city had yet in itself sufficient beauty to obtain our admiration.\r\nThe colleges are ancient and picturesque; the streets are almost\r\nmagnificent; and the lovely Isis, which flows beside it through meadows\r\nof exquisite verdure, is spread forth into a placid expanse of waters,\r\nwhich reflects its majestic assemblage of towers, and spires, and\r\ndomes, embosomed among aged trees.\r\n\r\nI enjoyed this scene, and yet my enjoyment was embittered both by the\r\nmemory of the past and the anticipation of the future. I was formed\r\nfor peaceful happiness. During my youthful days discontent never\r\nvisited my mind, and if I was ever overcome by _ennui_, the sight of what\r\nis beautiful in nature or the study of what is excellent and sublime in\r\nthe productions of man could always interest my heart and communicate\r\nelasticity to my spirits. But I am a blasted tree; the bolt has\r\nentered my soul; and I felt then that I should survive to exhibit what\r\nI shall soon cease to be—a miserable spectacle of wrecked humanity,\r\npitiable to others and intolerable to myself.\r\n\r\nWe passed a considerable period at Oxford, rambling among its environs\r\nand endeavouring to identify every spot which might relate to the most\r\nanimating epoch of English history. Our little voyages of discovery\r\nwere often prolonged by the successive objects that presented\r\nthemselves. We visited the tomb of the illustrious Hampden and the\r\nfield on which that patriot fell. For a moment my soul was elevated\r\nfrom its debasing and miserable fears to contemplate the divine ideas\r\nof liberty and self-sacrifice of which these sights were the monuments\r\nand the remembrancers. For an instant I dared to shake off my chains\r\nand look around me with a free and lofty spirit, but the iron had eaten\r\ninto my flesh, and I sank again, trembling and hopeless, into my\r\nmiserable self.\r\n\r\nWe left Oxford with regret and proceeded to Matlock, which was our next\r\nplace of rest. The country in the neighbourhood of this village\r\nresembled, to a greater degree, the scenery of Switzerland; but\r\neverything is on a lower scale, and the green hills want the crown of\r\ndistant white Alps which always attend on the piny mountains of my\r\nnative country. We visited the wondrous cave and the little cabinets\r\nof natural history, where the curiosities are disposed in the same\r\nmanner as in the collections at Servox and Chamounix. The latter name\r\nmade me tremble when pronounced by Henry, and I hastened to quit\r\nMatlock, with which that terrible scene was thus associated.\r\n\r\nFrom Derby, still journeying northwards, we passed two months in\r\nCumberland and Westmorland. I could now almost fancy myself among the\r\nSwiss mountains. The little patches of snow which yet lingered on the\r\nnorthern sides of the mountains, the lakes, and the dashing of the\r\nrocky streams were all familiar and dear sights to me. Here also we\r\nmade some acquaintances, who almost contrived to cheat me into\r\nhappiness. The delight of Clerval was proportionably greater than\r\nmine; his mind expanded in the company of men of talent, and he found\r\nin his own nature greater capacities and resources than he could have\r\nimagined himself to have possessed while he associated with his\r\ninferiors. “I could pass my life here,” said he to me; “and among\r\nthese mountains I should scarcely regret Switzerland and the Rhine.”\r\n\r\nBut he found that a traveller’s life is one that includes much pain\r\namidst its enjoyments. His feelings are for ever on the stretch; and\r\nwhen he begins to sink into repose, he finds himself obliged to quit\r\nthat on which he rests in pleasure for something new, which again\r\nengages his attention, and which also he forsakes for other novelties.\r\n\r\nWe had scarcely visited the various lakes of Cumberland and Westmorland\r\nand conceived an affection for some of the inhabitants when the period\r\nof our appointment with our Scotch friend approached, and we left them\r\nto travel on. For my own part I was not sorry. I had now neglected my\r\npromise for some time, and I feared the effects of the dæmon’s\r\ndisappointment. He might remain in Switzerland and wreak his vengeance\r\non my relatives. This idea pursued me and tormented me at every moment\r\nfrom which I might otherwise have snatched repose and peace. I waited\r\nfor my letters with feverish impatience; if they were delayed I was\r\nmiserable and overcome by a thousand fears; and when they arrived and I\r\nsaw the superscription of Elizabeth or my father, I hardly dared to\r\nread and ascertain my fate. Sometimes I thought that the fiend\r\nfollowed me and might expedite my remissness by murdering my companion.\r\nWhen these thoughts possessed me, I would not quit Henry for a moment,\r\nbut followed him as his shadow, to protect him from the fancied rage of\r\nhis destroyer. I felt as if I had committed some great crime, the\r\nconsciousness of which haunted me. I was guiltless, but I had indeed\r\ndrawn down a horrible curse upon my head, as mortal as that of crime.\r\n\r\nI visited Edinburgh with languid eyes and mind; and yet that city might\r\nhave interested the most unfortunate being. Clerval did not like it so well\r\nas Oxford, for the antiquity of the latter city was more pleasing to him.\r\nBut the beauty and regularity of the new town of Edinburgh, its romantic\r\ncastle and its environs, the most delightful in the world, Arthur’s\r\nSeat, St. Bernard’s Well, and the Pentland Hills, compensated him for\r\nthe change and filled him with cheerfulness and admiration. But I was\r\nimpatient to arrive at the termination of my journey.\r\n\r\nWe left Edinburgh in a week, passing through Coupar, St. Andrew’s, and\r\nalong the banks of the Tay, to Perth, where our friend expected us.\r\nBut I was in no mood to laugh and talk with strangers or enter into\r\ntheir feelings or plans with the good humour expected from a guest; and\r\naccordingly I told Clerval that I wished to make the tour of Scotland\r\nalone. “Do you,” said I, “enjoy yourself, and let this be our\r\nrendezvous. I may be absent a month or two; but do not interfere with\r\nmy motions, I entreat you; leave me to peace and solitude for a short\r\ntime; and when I return, I hope it will be with a lighter heart, more\r\ncongenial to your own temper.”\r\n\r\nHenry wished to dissuade me, but seeing me bent on this plan, ceased to\r\nremonstrate. He entreated me to write often. “I had rather be with\r\nyou,” he said, “in your solitary rambles, than with these Scotch\r\npeople, whom I do not know; hasten, then, my dear friend, to return,\r\nthat I may again feel myself somewhat at home, which I cannot do in\r\nyour absence.”\r\n\r\nHaving parted from my friend, I determined to visit some remote spot of\r\nScotland and finish my work in solitude. I did not doubt but that the\r\nmonster followed me and would discover himself to me when I should have\r\nfinished, that he might receive his companion.\r\n\r\nWith this resolution I traversed the northern highlands and fixed on one of\r\nthe remotest of the Orkneys as the scene of my labours. It was a place\r\nfitted for such a work, being hardly more than a rock whose high sides were\r\ncontinually beaten upon by the waves. The soil was barren, scarcely\r\naffording pasture for a few miserable cows, and oatmeal for its\r\ninhabitants, which consisted of five persons, whose gaunt and scraggy limbs\r\ngave tokens of their miserable fare. Vegetables and bread, when they\r\nindulged in such luxuries, and even fresh water, was to be procured from\r\nthe mainland, which was about five miles distant.\r\n\r\nOn the whole island there were but three miserable huts, and one of\r\nthese was vacant when I arrived. This I hired. It contained but two\r\nrooms, and these exhibited all the squalidness of the most miserable\r\npenury. The thatch had fallen in, the walls were unplastered, and the\r\ndoor was off its hinges. I ordered it to be repaired, bought some\r\nfurniture, and took possession, an incident which would doubtless have\r\noccasioned some surprise had not all the senses of the cottagers been\r\nbenumbed by want and squalid poverty. As it was, I lived ungazed at\r\nand unmolested, hardly thanked for the pittance of food and clothes\r\nwhich I gave, so much does suffering blunt even the coarsest sensations\r\nof men.\r\n\r\nIn this retreat I devoted the morning to labour; but in the evening,\r\nwhen the weather permitted, I walked on the stony beach of the sea to\r\nlisten to the waves as they roared and dashed at my feet. It was a\r\nmonotonous yet ever-changing scene. I thought of Switzerland; it was\r\nfar different from this desolate and appalling landscape. Its hills\r\nare covered with vines, and its cottages are scattered thickly in the\r\nplains. Its fair lakes reflect a blue and gentle sky, and when\r\ntroubled by the winds, their tumult is but as the play of a lively\r\ninfant when compared to the roarings of the giant ocean.\r\n\r\nIn this manner I distributed my occupations when I first arrived, but\r\nas I proceeded in my labour, it became every day more horrible and\r\nirksome to me. Sometimes I could not prevail on myself to enter my\r\nlaboratory for several days, and at other times I toiled day and night\r\nin order to complete my work. It was, indeed, a filthy process in\r\nwhich I was engaged. During my first experiment, a kind of\r\nenthusiastic frenzy had blinded me to the horror of my employment; my\r\nmind was intently fixed on the consummation of my labour, and my eyes\r\nwere shut to the horror of my proceedings. But now I went to it in\r\ncold blood, and my heart often sickened at the work of my hands.\r\n\r\nThus situated, employed in the most detestable occupation, immersed in\r\na solitude where nothing could for an instant call my attention from\r\nthe actual scene in which I was engaged, my spirits became unequal; I\r\ngrew restless and nervous. Every moment I feared to meet my\r\npersecutor. Sometimes I sat with my eyes fixed on the ground, fearing\r\nto raise them lest they should encounter the object which I so much\r\ndreaded to behold. I feared to wander from the sight of my fellow\r\ncreatures lest when alone he should come to claim his companion.\r\n\r\nIn the mean time I worked on, and my labour was already considerably\r\nadvanced. I looked towards its completion with a tremulous and eager\r\nhope, which I dared not trust myself to question but which was\r\nintermixed with obscure forebodings of evil that made my heart sicken\r\nin my bosom.\r\n\r\n\r\n\r\n\r\nChapter 20\r\n\r\n\r\nI sat one evening in my laboratory; the sun had set, and the moon was just\r\nrising from the sea; I had not sufficient light for my employment, and I\r\nremained idle, in a pause of consideration of whether I should leave my\r\nlabour for the night or hasten its conclusion by an unremitting attention\r\nto it. As I sat, a train of reflection occurred to me which led me to\r\nconsider the effects of what I was now doing. Three years before, I was\r\nengaged in the same manner and had created a fiend whose unparalleled\r\nbarbarity had desolated my heart and filled it for ever with the bitterest\r\nremorse. I was now about to form another being of whose dispositions I was\r\nalike ignorant; she might become ten thousand times more malignant than her\r\nmate and delight, for its own sake, in murder and wretchedness. He had\r\nsworn to quit the neighbourhood of man and hide himself in deserts, but she\r\nhad not; and she, who in all probability was to become a thinking and\r\nreasoning animal, might refuse to comply with a compact made before her\r\ncreation. They might even hate each other; the creature who already lived\r\nloathed his own deformity, and might he not conceive a greater abhorrence\r\nfor it when it came before his eyes in the female form? She also might turn\r\nwith disgust from him to the superior beauty of man; she might quit him,\r\nand he be again alone, exasperated by the fresh provocation of being\r\ndeserted by one of his own species.\r\n\r\nEven if they were to leave Europe and inhabit the deserts of the new world,\r\nyet one of the first results of those sympathies for which the dæmon\r\nthirsted would be children, and a race of devils would be propagated upon\r\nthe earth who might make the very existence of the species of man a\r\ncondition precarious and full of terror. Had I right, for my own benefit,\r\nto inflict this curse upon everlasting generations? I had before been moved\r\nby the sophisms of the being I had created; I had been struck senseless by\r\nhis fiendish threats; but now, for the first time, the wickedness of my\r\npromise burst upon me; I shuddered to think that future ages might curse me\r\nas their pest, whose selfishness had not hesitated to buy its own peace at\r\nthe price, perhaps, of the existence of the whole human race.\r\n\r\nI trembled and my heart failed within me, when, on looking up, I saw by\r\nthe light of the moon the dæmon at the casement. A ghastly grin\r\nwrinkled his lips as he gazed on me, where I sat fulfilling the task\r\nwhich he had allotted to me. Yes, he had followed me in my travels; he\r\nhad loitered in forests, hid himself in caves, or taken refuge in wide\r\nand desert heaths; and he now came to mark my progress and claim the\r\nfulfilment of my promise.\r\n\r\nAs I looked on him, his countenance expressed the utmost extent of\r\nmalice and treachery. I thought with a sensation of madness on my\r\npromise of creating another like to him, and trembling with passion,\r\ntore to pieces the thing on which I was engaged. The wretch saw me\r\ndestroy the creature on whose future existence he depended for\r\nhappiness, and with a howl of devilish despair and revenge, withdrew.\r\n\r\nI left the room, and locking the door, made a solemn vow in my own\r\nheart never to resume my labours; and then, with trembling steps, I\r\nsought my own apartment. I was alone; none were near me to dissipate\r\nthe gloom and relieve me from the sickening oppression of the most\r\nterrible reveries.\r\n\r\nSeveral hours passed, and I remained near my window gazing on the sea;\r\nit was almost motionless, for the winds were hushed, and all nature\r\nreposed under the eye of the quiet moon. A few fishing vessels alone\r\nspecked the water, and now and then the gentle breeze wafted the sound\r\nof voices as the fishermen called to one another. I felt the silence,\r\nalthough I was hardly conscious of its extreme profundity, until my ear\r\nwas suddenly arrested by the paddling of oars near the shore, and a\r\nperson landed close to my house.\r\n\r\nIn a few minutes after, I heard the creaking of my door, as if some one\r\nendeavoured to open it softly. I trembled from head to foot; I felt a\r\npresentiment of who it was and wished to rouse one of the peasants who\r\ndwelt in a cottage not far from mine; but I was overcome by the sensation\r\nof helplessness, so often felt in frightful dreams, when you in vain\r\nendeavour to fly from an impending danger, and was rooted to the spot.\r\n\r\nPresently I heard the sound of footsteps along the passage; the door\r\nopened, and the wretch whom I dreaded appeared. Shutting the door, he\r\napproached me and said in a smothered voice,\r\n\r\n“You have destroyed the work which you began; what is it that you\r\nintend? Do you dare to break your promise? I have endured toil and misery;\r\nI left Switzerland with you; I crept along the shores of the Rhine, among\r\nits willow islands and over the summits of its hills. I have dwelt many\r\nmonths in the heaths of England and among the deserts of Scotland. I have\r\nendured incalculable fatigue, and cold, and hunger; do you dare destroy my\r\nhopes?”\r\n\r\n“Begone! I do break my promise; never will I create another like\r\nyourself, equal in deformity and wickedness.”\r\n\r\n“Slave, I before reasoned with you, but you have proved yourself\r\nunworthy of my condescension. Remember that I have power; you believe\r\nyourself miserable, but I can make you so wretched that the light of\r\nday will be hateful to you. You are my creator, but I am your master;\r\nobey!”\r\n\r\n“The hour of my irresolution is past, and the period of your power is\r\narrived. Your threats cannot move me to do an act of wickedness; but\r\nthey confirm me in a determination of not creating you a companion in\r\nvice. Shall I, in cool blood, set loose upon the earth a dæmon whose\r\ndelight is in death and wretchedness? Begone! I am firm, and your\r\nwords will only exasperate my rage.”\r\n\r\nThe monster saw my determination in my face and gnashed his teeth in the\r\nimpotence of anger. “Shall each man,” cried he, “find a\r\nwife for his bosom, and each beast have his mate, and I be alone? I had\r\nfeelings of affection, and they were requited by detestation and scorn.\r\nMan! You may hate, but beware! Your hours will pass in dread and misery,\r\nand soon the bolt will fall which must ravish from you your happiness for\r\never. Are you to be happy while I grovel in the intensity of my\r\nwretchedness? You can blast my other passions, but revenge\r\nremains—revenge, henceforth dearer than light or food! I may die, but\r\nfirst you, my tyrant and tormentor, shall curse the sun that gazes on your\r\nmisery. Beware, for I am fearless and therefore powerful. I will watch with\r\nthe wiliness of a snake, that I may sting with its venom. Man, you shall\r\nrepent of the injuries you inflict.”\r\n\r\n“Devil, cease; and do not poison the air with these sounds of malice.\r\nI have declared my resolution to you, and I am no coward to bend\r\nbeneath words. Leave me; I am inexorable.”\r\n\r\n“It is well. I go; but remember, I shall be with you on your\r\nwedding-night.”\r\n\r\nI started forward and exclaimed, “Villain! Before you sign my\r\ndeath-warrant, be sure that you are yourself safe.”\r\n\r\nI would have seized him, but he eluded me and quitted the house with\r\nprecipitation. In a few moments I saw him in his boat, which shot\r\nacross the waters with an arrowy swiftness and was soon lost amidst the\r\nwaves.\r\n\r\nAll was again silent, but his words rang in my ears. I burned with rage to\r\npursue the murderer of my peace and precipitate him into the ocean. I\r\nwalked up and down my room hastily and perturbed, while my imagination\r\nconjured up a thousand images to torment and sting me. Why had I not\r\nfollowed him and closed with him in mortal strife? But I had suffered him\r\nto depart, and he had directed his course towards the mainland. I shuddered\r\nto think who might be the next victim sacrificed to his insatiate revenge.\r\nAnd then I thought again of his words—“_I will be with you on\r\nyour wedding-night._” That, then, was the period fixed for the\r\nfulfilment of my destiny. In that hour I should die and at once satisfy and\r\nextinguish his malice. The prospect did not move me to fear; yet when I\r\nthought of my beloved Elizabeth, of her tears and endless sorrow, when she\r\nshould find her lover so barbarously snatched from her, tears, the first I\r\nhad shed for many months, streamed from my eyes, and I resolved not to fall\r\nbefore my enemy without a bitter struggle.\r\n\r\nThe night passed away, and the sun rose from the ocean; my feelings became\r\ncalmer, if it may be called calmness when the violence of rage sinks into\r\nthe depths of despair. I left the house, the horrid scene of the last\r\nnight’s contention, and walked on the beach of the sea, which I\r\nalmost regarded as an insuperable barrier between me and my fellow\r\ncreatures; nay, a wish that such should prove the fact stole across me. I\r\ndesired that I might pass my life on that barren rock, wearily, it is true,\r\nbut uninterrupted by any sudden shock of misery. If I returned, it was to\r\nbe sacrificed or to see those whom I most loved die under the grasp of a\r\ndæmon whom I had myself created.\r\n\r\nI walked about the isle like a restless spectre, separated from all it\r\nloved and miserable in the separation. When it became noon, and the\r\nsun rose higher, I lay down on the grass and was overpowered by a deep\r\nsleep. I had been awake the whole of the preceding night, my nerves\r\nwere agitated, and my eyes inflamed by watching and misery. The sleep\r\ninto which I now sank refreshed me; and when I awoke, I again felt as\r\nif I belonged to a race of human beings like myself, and I began to\r\nreflect upon what had passed with greater composure; yet still the\r\nwords of the fiend rang in my ears like a death-knell; they appeared\r\nlike a dream, yet distinct and oppressive as a reality.\r\n\r\nThe sun had far descended, and I still sat on the shore, satisfying my\r\nappetite, which had become ravenous, with an oaten cake, when I saw a\r\nfishing-boat land close to me, and one of the men brought me a packet;\r\nit contained letters from Geneva, and one from Clerval entreating me to\r\njoin him. He said that he was wearing away his time fruitlessly where\r\nhe was, that letters from the friends he had formed in London desired\r\nhis return to complete the negotiation they had entered into for his\r\nIndian enterprise. He could not any longer delay his departure; but as\r\nhis journey to London might be followed, even sooner than he now\r\nconjectured, by his longer voyage, he entreated me to bestow as much of\r\nmy society on him as I could spare. He besought me, therefore, to\r\nleave my solitary isle and to meet him at Perth, that we might proceed\r\nsouthwards together. This letter in a degree recalled me to life, and\r\nI determined to quit my island at the expiration of two days.\r\n\r\nYet, before I departed, there was a task to perform, on which I shuddered\r\nto reflect; I must pack up my chemical instruments, and for that purpose I\r\nmust enter the room which had been the scene of my odious work, and I must\r\nhandle those utensils the sight of which was sickening to me. The next\r\nmorning, at daybreak, I summoned sufficient courage and unlocked the door\r\nof my laboratory. The remains of the half-finished creature, whom I had\r\ndestroyed, lay scattered on the floor, and I almost felt as if I had\r\nmangled the living flesh of a human being. I paused to collect myself and\r\nthen entered the chamber. With trembling hand I conveyed the instruments\r\nout of the room, but I reflected that I ought not to leave the relics of my\r\nwork to excite the horror and suspicion of the peasants; and I accordingly\r\nput them into a basket, with a great quantity of stones, and laying them\r\nup, determined to throw them into the sea that very night; and in the\r\nmeantime I sat upon the beach, employed in cleaning and arranging my\r\nchemical apparatus.\r\n\r\nNothing could be more complete than the alteration that had taken place\r\nin my feelings since the night of the appearance of the dæmon. I had\r\nbefore regarded my promise with a gloomy despair as a thing that, with\r\nwhatever consequences, must be fulfilled; but I now felt as if a film\r\nhad been taken from before my eyes and that I for the first time saw\r\nclearly. The idea of renewing my labours did not for one instant occur\r\nto me; the threat I had heard weighed on my thoughts, but I did not\r\nreflect that a voluntary act of mine could avert it. I had resolved in\r\nmy own mind that to create another like the fiend I had first made\r\nwould be an act of the basest and most atrocious selfishness, and I\r\nbanished from my mind every thought that could lead to a different\r\nconclusion.\r\n\r\nBetween two and three in the morning the moon rose; and I then, putting my\r\nbasket aboard a little skiff, sailed out about four miles from the shore.\r\nThe scene was perfectly solitary; a few boats were returning towards land,\r\nbut I sailed away from them. I felt as if I was about the commission of a\r\ndreadful crime and avoided with shuddering anxiety any encounter with my\r\nfellow creatures. At one time the moon, which had before been clear, was\r\nsuddenly overspread by a thick cloud, and I took advantage of the moment of\r\ndarkness and cast my basket into the sea; I listened to the gurgling sound\r\nas it sank and then sailed away from the spot. The sky became clouded, but\r\nthe air was pure, although chilled by the northeast breeze that was then\r\nrising. But it refreshed me and filled me with such agreeable sensations\r\nthat I resolved to prolong my stay on the water, and fixing the rudder in a\r\ndirect position, stretched myself at the bottom of the boat. Clouds hid the\r\nmoon, everything was obscure, and I heard only the sound of the boat as its\r\nkeel cut through the waves; the murmur lulled me, and in a short time I\r\nslept soundly.\r\n\r\nI do not know how long I remained in this situation, but when I awoke I\r\nfound that the sun had already mounted considerably. The wind was high, and\r\nthe waves continually threatened the safety of my little skiff. I found\r\nthat the wind was northeast and must have driven me far from the coast from\r\nwhich I had embarked. I endeavoured to change my course but quickly found\r\nthat if I again made the attempt the boat would be instantly filled with\r\nwater. Thus situated, my only resource was to drive before the wind. I\r\nconfess that I felt a few sensations of terror. I had no compass with me\r\nand was so slenderly acquainted with the geography of this part of the\r\nworld that the sun was of little benefit to me. I might be driven into the\r\nwide Atlantic and feel all the tortures of starvation or be swallowed up in\r\nthe immeasurable waters that roared and buffeted around me. I had already\r\nbeen out many hours and felt the torment of a burning thirst, a prelude to\r\nmy other sufferings. I looked on the heavens, which were covered by clouds\r\nthat flew before the wind, only to be replaced by others; I looked upon the\r\nsea; it was to be my grave. “Fiend,” I exclaimed, “your\r\ntask is already fulfilled!” I thought of Elizabeth, of my father, and\r\nof Clerval—all left behind, on whom the monster might satisfy his\r\nsanguinary and merciless passions. This idea plunged me into a reverie so\r\ndespairing and frightful that even now, when the scene is on the point of\r\nclosing before me for ever, I shudder to reflect on it.\r\n\r\nSome hours passed thus; but by degrees, as the sun declined towards the\r\nhorizon, the wind died away into a gentle breeze and the sea became\r\nfree from breakers. But these gave place to a heavy swell; I felt sick\r\nand hardly able to hold the rudder, when suddenly I saw a line of high\r\nland towards the south.\r\n\r\nAlmost spent, as I was, by fatigue and the dreadful suspense I endured\r\nfor several hours, this sudden certainty of life rushed like a flood of\r\nwarm joy to my heart, and tears gushed from my eyes.\r\n\r\nHow mutable are our feelings, and how strange is that clinging love we have\r\nof life even in the excess of misery! I constructed another sail with a\r\npart of my dress and eagerly steered my course towards the land. It had a\r\nwild and rocky appearance, but as I approached nearer I easily perceived\r\nthe traces of cultivation. I saw vessels near the shore and found myself\r\nsuddenly transported back to the neighbourhood of civilised man. I\r\ncarefully traced the windings of the land and hailed a steeple which I at\r\nlength saw issuing from behind a small promontory. As I was in a state of\r\nextreme debility, I resolved to sail directly towards the town, as a place\r\nwhere I could most easily procure nourishment. Fortunately I had money with\r\nme. As I turned the promontory I perceived a small neat town and a good\r\nharbour, which I entered, my heart bounding with joy at my unexpected\r\nescape.\r\n\r\nAs I was occupied in fixing the boat and arranging the sails, several\r\npeople crowded towards the spot. They seemed much surprised at my\r\nappearance, but instead of offering me any assistance, whispered\r\ntogether with gestures that at any other time might have produced in me\r\na slight sensation of alarm. As it was, I merely remarked that they\r\nspoke English, and I therefore addressed them in that language. “My\r\ngood friends,” said I, “will you be so kind as to tell me the name of\r\nthis town and inform me where I am?”\r\n\r\n“You will know that soon enough,” replied a man with a hoarse voice.\r\n“Maybe you are come to a place that will not prove much to your taste,\r\nbut you will not be consulted as to your quarters, I promise you.”\r\n\r\nI was exceedingly surprised on receiving so rude an answer from a\r\nstranger, and I was also disconcerted on perceiving the frowning and\r\nangry countenances of his companions. “Why do you answer me so\r\nroughly?” I replied. “Surely it is not the custom of Englishmen to\r\nreceive strangers so inhospitably.”\r\n\r\n“I do not know,” said the man, “what the custom of the\r\nEnglish may be, but it is the custom of the Irish to hate villains.”\r\n\r\nWhile this strange dialogue continued, I perceived the crowd rapidly\r\nincrease. Their faces expressed a mixture of curiosity and anger, which\r\nannoyed and in some degree alarmed me. I inquired the way to the inn, but\r\nno one replied. I then moved forward, and a murmuring sound arose from the\r\ncrowd as they followed and surrounded me, when an ill-looking man\r\napproaching tapped me on the shoulder and said, “Come, sir, you must\r\nfollow me to Mr. Kirwin’s to give an account of yourself.”\r\n\r\n“Who is Mr. Kirwin? Why am I to give an account of myself? Is not\r\nthis a free country?”\r\n\r\n“Ay, sir, free enough for honest folks. Mr. Kirwin is a magistrate,\r\nand you are to give an account of the death of a gentleman who was\r\nfound murdered here last night.”\r\n\r\nThis answer startled me, but I presently recovered myself. I was innocent;\r\nthat could easily be proved; accordingly I followed my conductor in silence\r\nand was led to one of the best houses in the town. I was ready to sink from\r\nfatigue and hunger, but being surrounded by a crowd, I thought it politic\r\nto rouse all my strength, that no physical debility might be construed into\r\napprehension or conscious guilt. Little did I then expect the calamity that\r\nwas in a few moments to overwhelm me and extinguish in horror and despair\r\nall fear of ignominy or death.\r\n\r\nI must pause here, for it requires all my fortitude to recall the memory of\r\nthe frightful events which I am about to relate, in proper detail, to my\r\nrecollection.\r\n\r\n\r\n\r\n\r\nChapter 21\r\n\r\n\r\nI was soon introduced into the presence of the magistrate, an old\r\nbenevolent man with calm and mild manners. He looked upon me, however,\r\nwith some degree of severity, and then, turning towards my conductors,\r\nhe asked who appeared as witnesses on this occasion.\r\n\r\nAbout half a dozen men came forward; and, one being selected by the\r\nmagistrate, he deposed that he had been out fishing the night before with\r\nhis son and brother-in-law, Daniel Nugent, when, about ten o’clock,\r\nthey observed a strong northerly blast rising, and they accordingly put in\r\nfor port. It was a very dark night, as the moon had not yet risen; they did\r\nnot land at the harbour, but, as they had been accustomed, at a creek about\r\ntwo miles below. He walked on first, carrying a part of the fishing tackle,\r\nand his companions followed him at some distance. As he was proceeding\r\nalong the sands, he struck his foot against something and fell at his\r\nlength on the ground. His companions came up to assist him, and by the\r\nlight of their lantern they found that he had fallen on the body of a man,\r\nwho was to all appearance dead. Their first supposition was that it was the\r\ncorpse of some person who had been drowned and was thrown on shore by the\r\nwaves, but on examination they found that the clothes were not wet and even\r\nthat the body was not then cold. They instantly carried it to the cottage\r\nof an old woman near the spot and endeavoured, but in vain, to restore it\r\nto life. It appeared to be a handsome young man, about five and twenty\r\nyears of age. He had apparently been strangled, for there was no sign of\r\nany violence except the black mark of fingers on his neck.\r\n\r\nThe first part of this deposition did not in the least interest me, but\r\nwhen the mark of the fingers was mentioned I remembered the murder of\r\nmy brother and felt myself extremely agitated; my limbs trembled, and a\r\nmist came over my eyes, which obliged me to lean on a chair for\r\nsupport. The magistrate observed me with a keen eye and of course drew\r\nan unfavourable augury from my manner.\r\n\r\nThe son confirmed his father’s account, but when Daniel Nugent was\r\ncalled he swore positively that just before the fall of his companion, he\r\nsaw a boat, with a single man in it, at a short distance from the shore;\r\nand as far as he could judge by the light of a few stars, it was the same\r\nboat in which I had just landed.\r\n\r\nA woman deposed that she lived near the beach and was standing at the door\r\nof her cottage, waiting for the return of the fishermen, about an hour\r\nbefore she heard of the discovery of the body, when she saw a boat with\r\nonly one man in it push off from that part of the shore where the corpse\r\nwas afterwards found.\r\n\r\nAnother woman confirmed the account of the fishermen having brought the\r\nbody into her house; it was not cold. They put it into a bed and\r\nrubbed it, and Daniel went to the town for an apothecary, but life was\r\nquite gone.\r\n\r\nSeveral other men were examined concerning my landing, and they agreed\r\nthat, with the strong north wind that had arisen during the night, it\r\nwas very probable that I had beaten about for many hours and had been\r\nobliged to return nearly to the same spot from which I had departed.\r\nBesides, they observed that it appeared that I had brought the body\r\nfrom another place, and it was likely that as I did not appear to know\r\nthe shore, I might have put into the harbour ignorant of the distance\r\nof the town of —— from the place where I had deposited the corpse.\r\n\r\nMr. Kirwin, on hearing this evidence, desired that I should be taken into\r\nthe room where the body lay for interment, that it might be observed what\r\neffect the sight of it would produce upon me. This idea was probably\r\nsuggested by the extreme agitation I had exhibited when the mode of the\r\nmurder had been described. I was accordingly conducted, by the magistrate\r\nand several other persons, to the inn. I could not help being struck by the\r\nstrange coincidences that had taken place during this eventful night; but,\r\nknowing that I had been conversing with several persons in the island I had\r\ninhabited about the time that the body had been found, I was perfectly\r\ntranquil as to the consequences of the affair.\r\n\r\nI entered the room where the corpse lay and was led up to the coffin. How\r\ncan I describe my sensations on beholding it? I feel yet parched with\r\nhorror, nor can I reflect on that terrible moment without shuddering and\r\nagony. The examination, the presence of the magistrate and witnesses,\r\npassed like a dream from my memory when I saw the lifeless form of Henry\r\nClerval stretched before me. I gasped for breath, and throwing myself on\r\nthe body, I exclaimed, “Have my murderous machinations deprived you\r\nalso, my dearest Henry, of life? Two I have already destroyed; other\r\nvictims await their destiny; but you, Clerval, my friend, my\r\nbenefactor—”\r\n\r\nThe human frame could no longer support the agonies that I endured, and\r\nI was carried out of the room in strong convulsions.\r\n\r\nA fever succeeded to this. I lay for two months on the point of death; my\r\nravings, as I afterwards heard, were frightful; I called myself the\r\nmurderer of William, of Justine, and of Clerval. Sometimes I entreated my\r\nattendants to assist me in the destruction of the fiend by whom I was\r\ntormented; and at others I felt the fingers of the monster already grasping\r\nmy neck, and screamed aloud with agony and terror. Fortunately, as I spoke\r\nmy native language, Mr. Kirwin alone understood me; but my gestures and\r\nbitter cries were sufficient to affright the other witnesses.\r\n\r\nWhy did I not die? More miserable than man ever was before, why did I not\r\nsink into forgetfulness and rest? Death snatches away many blooming\r\nchildren, the only hopes of their doting parents; how many brides and\r\nyouthful lovers have been one day in the bloom of health and hope, and the\r\nnext a prey for worms and the decay of the tomb! Of what materials was I\r\nmade that I could thus resist so many shocks, which, like the turning of\r\nthe wheel, continually renewed the torture?\r\n\r\nBut I was doomed to live and in two months found myself as awaking from\r\na dream, in a prison, stretched on a wretched bed, surrounded by\r\ngaolers, turnkeys, bolts, and all the miserable apparatus of a dungeon.\r\nIt was morning, I remember, when I thus awoke to understanding; I had\r\nforgotten the particulars of what had happened and only felt as if some\r\ngreat misfortune had suddenly overwhelmed me; but when I looked around\r\nand saw the barred windows and the squalidness of the room in which I\r\nwas, all flashed across my memory and I groaned bitterly.\r\n\r\nThis sound disturbed an old woman who was sleeping in a chair beside\r\nme. She was a hired nurse, the wife of one of the turnkeys, and her\r\ncountenance expressed all those bad qualities which often characterise\r\nthat class. The lines of her face were hard and rude, like that of\r\npersons accustomed to see without sympathising in sights of misery. Her\r\ntone expressed her entire indifference; she addressed me in English,\r\nand the voice struck me as one that I had heard during my sufferings.\r\n\r\n“Are you better now, sir?” said she.\r\n\r\nI replied in the same language, with a feeble voice, “I believe I am;\r\nbut if it be all true, if indeed I did not dream, I am sorry that I am\r\nstill alive to feel this misery and horror.”\r\n\r\n“For that matter,” replied the old woman, “if you mean about the\r\ngentleman you murdered, I believe that it were better for you if you\r\nwere dead, for I fancy it will go hard with you! However, that’s none\r\nof my business; I am sent to nurse you and get you well; I do my duty\r\nwith a safe conscience; it were well if everybody did the same.”\r\n\r\nI turned with loathing from the woman who could utter so unfeeling a\r\nspeech to a person just saved, on the very edge of death; but I felt\r\nlanguid and unable to reflect on all that had passed. The whole series\r\nof my life appeared to me as a dream; I sometimes doubted if indeed it\r\nwere all true, for it never presented itself to my mind with the force\r\nof reality.\r\n\r\nAs the images that floated before me became more distinct, I grew\r\nfeverish; a darkness pressed around me; no one was near me who soothed\r\nme with the gentle voice of love; no dear hand supported me. The\r\nphysician came and prescribed medicines, and the old woman prepared\r\nthem for me; but utter carelessness was visible in the first, and the\r\nexpression of brutality was strongly marked in the visage of the\r\nsecond. Who could be interested in the fate of a murderer but the\r\nhangman who would gain his fee?\r\n\r\nThese were my first reflections, but I soon learned that Mr. Kirwin had\r\nshown me extreme kindness. He had caused the best room in the prison\r\nto be prepared for me (wretched indeed was the best); and it was he who\r\nhad provided a physician and a nurse. It is true, he seldom came to\r\nsee me, for although he ardently desired to relieve the sufferings of\r\nevery human creature, he did not wish to be present at the agonies and\r\nmiserable ravings of a murderer. He came, therefore, sometimes to see\r\nthat I was not neglected, but his visits were short and with long\r\nintervals.\r\n\r\nOne day, while I was gradually recovering, I was seated in a chair, my eyes\r\nhalf open and my cheeks livid like those in death. I was overcome by gloom\r\nand misery and often reflected I had better seek death than desire to\r\nremain in a world which to me was replete with wretchedness. At one time I\r\nconsidered whether I should not declare myself guilty and suffer the\r\npenalty of the law, less innocent than poor Justine had been. Such were my\r\nthoughts when the door of my apartment was opened and Mr. Kirwin entered.\r\nHis countenance expressed sympathy and compassion; he drew a chair close to\r\nmine and addressed me in French,\r\n\r\n“I fear that this place is very shocking to you; can I do anything to\r\nmake you more comfortable?”\r\n\r\n“I thank you, but all that you mention is nothing to me; on the whole\r\nearth there is no comfort which I am capable of receiving.”\r\n\r\n“I know that the sympathy of a stranger can be but of little relief to\r\none borne down as you are by so strange a misfortune. But you will, I\r\nhope, soon quit this melancholy abode, for doubtless evidence can\r\neasily be brought to free you from the criminal charge.”\r\n\r\n“That is my least concern; I am, by a course of strange events, become\r\nthe most miserable of mortals. Persecuted and tortured as I am and\r\nhave been, can death be any evil to me?”\r\n\r\n“Nothing indeed could be more unfortunate and agonising than the\r\nstrange chances that have lately occurred. You were thrown, by some\r\nsurprising accident, on this shore, renowned for its hospitality,\r\nseized immediately, and charged with murder. The first sight that was\r\npresented to your eyes was the body of your friend, murdered in so\r\nunaccountable a manner and placed, as it were, by some fiend across\r\nyour path.”\r\n\r\nAs Mr. Kirwin said this, notwithstanding the agitation I endured on\r\nthis retrospect of my sufferings, I also felt considerable surprise at\r\nthe knowledge he seemed to possess concerning me. I suppose some\r\nastonishment was exhibited in my countenance, for Mr. Kirwin hastened\r\nto say,\r\n\r\n“Immediately upon your being taken ill, all the papers that were on\r\nyour person were brought me, and I examined them that I might discover some\r\ntrace by which I could send to your relations an account of your misfortune\r\nand illness. I found several letters, and, among others, one which I\r\ndiscovered from its commencement to be from your father. I instantly wrote\r\nto Geneva; nearly two months have elapsed since the departure of my letter.\r\nBut you are ill; even now you tremble; you are unfit for agitation of any\r\nkind.”\r\n\r\n“This suspense is a thousand times worse than the most horrible event;\r\ntell me what new scene of death has been acted, and whose murder I am\r\nnow to lament?”\r\n\r\n“Your family is perfectly well,” said Mr. Kirwin with\r\ngentleness; “and someone, a friend, is come to visit you.”\r\n\r\nI know not by what chain of thought the idea presented itself, but it\r\ninstantly darted into my mind that the murderer had come to mock at my\r\nmisery and taunt me with the death of Clerval, as a new incitement for\r\nme to comply with his hellish desires. I put my hand before my eyes,\r\nand cried out in agony,\r\n\r\n“Oh! Take him away! I cannot see him; for God’s sake, do not\r\nlet him enter!”\r\n\r\nMr. Kirwin regarded me with a troubled countenance. He could not help\r\nregarding my exclamation as a presumption of my guilt and said in\r\nrather a severe tone,\r\n\r\n“I should have thought, young man, that the presence of your father\r\nwould have been welcome instead of inspiring such violent repugnance.”\r\n\r\n“My father!” cried I, while every feature and every muscle was relaxed\r\nfrom anguish to pleasure. “Is my father indeed come? How kind, how\r\nvery kind! But where is he, why does he not hasten to me?”\r\n\r\nMy change of manner surprised and pleased the magistrate; perhaps he\r\nthought that my former exclamation was a momentary return of delirium,\r\nand now he instantly resumed his former benevolence. He rose and\r\nquitted the room with my nurse, and in a moment my father entered it.\r\n\r\nNothing, at this moment, could have given me greater pleasure than the\r\narrival of my father. I stretched out my hand to him and cried,\r\n\r\n“Are you then safe—and Elizabeth—and Ernest?”\r\n\r\nMy father calmed me with assurances of their welfare and endeavoured, by\r\ndwelling on these subjects so interesting to my heart, to raise my\r\ndesponding spirits; but he soon felt that a prison cannot be the abode of\r\ncheerfulness. “What a place is this that you inhabit, my son!”\r\nsaid he, looking mournfully at the barred windows and wretched appearance\r\nof the room. “You travelled to seek happiness, but a fatality seems\r\nto pursue you. And poor Clerval—”\r\n\r\nThe name of my unfortunate and murdered friend was an agitation too\r\ngreat to be endured in my weak state; I shed tears.\r\n\r\n“Alas! Yes, my father,” replied I; “some destiny of the\r\nmost horrible kind hangs over me, and I must live to fulfil it, or surely I\r\nshould have died on the coffin of Henry.”\r\n\r\nWe were not allowed to converse for any length of time, for the\r\nprecarious state of my health rendered every precaution necessary that\r\ncould ensure tranquillity. Mr. Kirwin came in and insisted that my\r\nstrength should not be exhausted by too much exertion. But the\r\nappearance of my father was to me like that of my good angel, and I\r\ngradually recovered my health.\r\n\r\nAs my sickness quitted me, I was absorbed by a gloomy and black\r\nmelancholy that nothing could dissipate. The image of Clerval was\r\nfor ever before me, ghastly and murdered. More than once the agitation\r\ninto which these reflections threw me made my friends dread a dangerous\r\nrelapse. Alas! Why did they preserve so miserable and detested a\r\nlife? It was surely that I might fulfil my destiny, which is now\r\ndrawing to a close. Soon, oh, very soon, will death extinguish these\r\nthrobbings and relieve me from the mighty weight of anguish that bears\r\nme to the dust; and, in executing the award of justice, I shall also\r\nsink to rest. Then the appearance of death was distant, although the\r\nwish was ever present to my thoughts; and I often sat for hours\r\nmotionless and speechless, wishing for some mighty revolution that\r\nmight bury me and my destroyer in its ruins.\r\n\r\nThe season of the assizes approached. I had already been three months\r\nin prison, and although I was still weak and in continual danger of a\r\nrelapse, I was obliged to travel nearly a hundred miles to the country\r\ntown where the court was held. Mr. Kirwin charged himself with every\r\ncare of collecting witnesses and arranging my defence. I was spared\r\nthe disgrace of appearing publicly as a criminal, as the case was not\r\nbrought before the court that decides on life and death. The grand\r\njury rejected the bill, on its being proved that I was on the Orkney\r\nIslands at the hour the body of my friend was found; and a fortnight\r\nafter my removal I was liberated from prison.\r\n\r\nMy father was enraptured on finding me freed from the vexations of a\r\ncriminal charge, that I was again allowed to breathe the fresh\r\natmosphere and permitted to return to my native country. I did not\r\nparticipate in these feelings, for to me the walls of a dungeon or a\r\npalace were alike hateful. The cup of life was poisoned for ever, and\r\nalthough the sun shone upon me, as upon the happy and gay of heart, I\r\nsaw around me nothing but a dense and frightful darkness, penetrated by\r\nno light but the glimmer of two eyes that glared upon me. Sometimes\r\nthey were the expressive eyes of Henry, languishing in death, the dark\r\norbs nearly covered by the lids and the long black lashes that fringed\r\nthem; sometimes it was the watery, clouded eyes of the monster, as I\r\nfirst saw them in my chamber at Ingolstadt.\r\n\r\nMy father tried to awaken in me the feelings of affection. He talked\r\nof Geneva, which I should soon visit, of Elizabeth and Ernest; but\r\nthese words only drew deep groans from me. Sometimes, indeed, I felt a\r\nwish for happiness and thought with melancholy delight of my beloved\r\ncousin or longed, with a devouring _maladie du pays_, to see once more\r\nthe blue lake and rapid Rhone, that had been so dear to me in early\r\nchildhood; but my general state of feeling was a torpor in which a\r\nprison was as welcome a residence as the divinest scene in nature; and\r\nthese fits were seldom interrupted but by paroxysms of anguish and\r\ndespair. At these moments I often endeavoured to put an end to the\r\nexistence I loathed, and it required unceasing attendance and vigilance\r\nto restrain me from committing some dreadful act of violence.\r\n\r\nYet one duty remained to me, the recollection of which finally\r\ntriumphed over my selfish despair. It was necessary that I should\r\nreturn without delay to Geneva, there to watch over the lives of those\r\nI so fondly loved and to lie in wait for the murderer, that if any\r\nchance led me to the place of his concealment, or if he dared again to\r\nblast me by his presence, I might, with unfailing aim, put an end to\r\nthe existence of the monstrous image which I had endued with the\r\nmockery of a soul still more monstrous. My father still desired to\r\ndelay our departure, fearful that I could not sustain the fatigues of a\r\njourney, for I was a shattered wreck—the shadow of a human being. My\r\nstrength was gone. I was a mere skeleton, and fever night and day\r\npreyed upon my wasted frame.\r\n\r\nStill, as I urged our leaving Ireland with such inquietude and impatience,\r\nmy father thought it best to yield. We took our passage on board a vessel\r\nbound for Havre-de-Grace and sailed with a fair wind from the Irish shores.\r\nIt was midnight. I lay on the deck looking at the stars and listening to\r\nthe dashing of the waves. I hailed the darkness that shut Ireland from my\r\nsight, and my pulse beat with a feverish joy when I reflected that I should\r\nsoon see Geneva. The past appeared to me in the light of a frightful dream;\r\nyet the vessel in which I was, the wind that blew me from the detested\r\nshore of Ireland, and the sea which surrounded me, told me too forcibly\r\nthat I was deceived by no vision and that Clerval, my friend and dearest\r\ncompanion, had fallen a victim to me and the monster of my creation. I\r\nrepassed, in my memory, my whole life; my quiet happiness while residing\r\nwith my family in Geneva, the death of my mother, and my departure for\r\nIngolstadt. I remembered, shuddering, the mad enthusiasm that hurried me on\r\nto the creation of my hideous enemy, and I called to mind the night in\r\nwhich he first lived. I was unable to pursue the train of thought; a\r\nthousand feelings pressed upon me, and I wept bitterly.\r\n\r\nEver since my recovery from the fever, I had been in the custom of taking\r\nevery night a small quantity of laudanum, for it was by means of this drug\r\nonly that I was enabled to gain the rest necessary for the preservation of\r\nlife. Oppressed by the recollection of my various misfortunes, I now\r\nswallowed double my usual quantity and soon slept profoundly. But sleep did\r\nnot afford me respite from thought and misery; my dreams presented a\r\nthousand objects that scared me. Towards morning I was possessed by a kind\r\nof nightmare; I felt the fiend’s grasp in my neck and could not free\r\nmyself from it; groans and cries rang in my ears. My father, who was\r\nwatching over me, perceiving my restlessness, awoke me; the dashing waves\r\nwere around, the cloudy sky above, the fiend was not here: a sense of\r\nsecurity, a feeling that a truce was established between the present hour\r\nand the irresistible, disastrous future imparted to me a kind of calm\r\nforgetfulness, of which the human mind is by its structure peculiarly\r\nsusceptible.\r\n\r\n\r\n\r\n\r\nChapter 22\r\n\r\n\r\nThe voyage came to an end. We landed, and proceeded to Paris. I soon\r\nfound that I had overtaxed my strength and that I must repose before I\r\ncould continue my journey. My father’s care and attentions were\r\nindefatigable, but he did not know the origin of my sufferings and\r\nsought erroneous methods to remedy the incurable ill. He wished me to\r\nseek amusement in society. I abhorred the face of man. Oh, not\r\nabhorred! They were my brethren, my fellow beings, and I felt\r\nattracted even to the most repulsive among them, as to creatures of an\r\nangelic nature and celestial mechanism. But I felt that I had no right\r\nto share their intercourse. I had unchained an enemy among them whose\r\njoy it was to shed their blood and to revel in their groans. How they\r\nwould, each and all, abhor me and hunt me from the world, did they know\r\nmy unhallowed acts and the crimes which had their source in me!\r\n\r\nMy father yielded at length to my desire to avoid society and strove by\r\nvarious arguments to banish my despair. Sometimes he thought that I\r\nfelt deeply the degradation of being obliged to answer a charge of\r\nmurder, and he endeavoured to prove to me the futility of pride.\r\n\r\n“Alas! My father,” said I, “how little do you know me. \r\nHuman beings, their feelings and passions, would indeed be degraded if such\r\na wretch as I felt pride. Justine, poor unhappy Justine, was as innocent\r\nas I, and she suffered the same charge; she died for it; and I am the cause\r\nof this—I murdered her. William, Justine, and Henry—they all\r\ndied by my hands.”\r\n\r\nMy father had often, during my imprisonment, heard me make the same\r\nassertion; when I thus accused myself, he sometimes seemed to desire an\r\nexplanation, and at others he appeared to consider it as the offspring of\r\ndelirium, and that, during my illness, some idea of this kind had presented\r\nitself to my imagination, the remembrance of which I preserved in my\r\nconvalescence. I avoided explanation and maintained a continual silence\r\nconcerning the wretch I had created. I had a persuasion that I should be\r\nsupposed mad, and this in itself would for ever have chained my tongue. But,\r\nbesides, I could not bring myself to disclose a secret which would fill my\r\nhearer with consternation and make fear and unnatural horror the inmates of\r\nhis breast. I checked, therefore, my impatient thirst for sympathy and was\r\nsilent when I would have given the world to have confided the fatal secret.\r\nYet, still, words like those I have recorded would burst uncontrollably\r\nfrom me. I could offer no explanation of them, but their truth in part\r\nrelieved the burden of my mysterious woe.\r\n\r\nUpon this occasion my father said, with an expression of unbounded wonder,\r\n“My dearest Victor, what infatuation is this? My dear son, I entreat\r\nyou never to make such an assertion again.”\r\n\r\n“I am not mad,” I cried energetically; “the sun and the heavens, who\r\nhave viewed my operations, can bear witness of my truth. I am the\r\nassassin of those most innocent victims; they died by my machinations.\r\nA thousand times would I have shed my own blood, drop by drop, to have\r\nsaved their lives; but I could not, my father, indeed I could not\r\nsacrifice the whole human race.”\r\n\r\nThe conclusion of this speech convinced my father that my ideas were\r\nderanged, and he instantly changed the subject of our conversation and\r\nendeavoured to alter the course of my thoughts. He wished as much as\r\npossible to obliterate the memory of the scenes that had taken place in\r\nIreland and never alluded to them or suffered me to speak of my\r\nmisfortunes.\r\n\r\nAs time passed away I became more calm; misery had her dwelling in my\r\nheart, but I no longer talked in the same incoherent manner of my own\r\ncrimes; sufficient for me was the consciousness of them. By the utmost\r\nself-violence I curbed the imperious voice of wretchedness, which\r\nsometimes desired to declare itself to the whole world, and my manners\r\nwere calmer and more composed than they had ever been since my journey\r\nto the sea of ice.\r\n\r\nA few days before we left Paris on our way to Switzerland, I received the\r\nfollowing letter from Elizabeth:\r\n\r\n“My dear Friend,\r\n\r\n“It gave me the greatest pleasure to receive a letter from my uncle\r\ndated at Paris; you are no longer at a formidable distance, and I may\r\nhope to see you in less than a fortnight. My poor cousin, how much you\r\nmust have suffered! I expect to see you looking even more ill than\r\nwhen you quitted Geneva. This winter has been passed most miserably,\r\ntortured as I have been by anxious suspense; yet I hope to see peace in\r\nyour countenance and to find that your heart is not totally void of\r\ncomfort and tranquillity.\r\n\r\n“Yet I fear that the same feelings now exist that made you so miserable\r\na year ago, even perhaps augmented by time. I would not disturb you at\r\nthis period, when so many misfortunes weigh upon you, but a\r\nconversation that I had with my uncle previous to his departure renders\r\nsome explanation necessary before we meet.\r\n\r\nExplanation! You may possibly say, What can Elizabeth have to explain? If\r\nyou really say this, my questions are answered and all my doubts satisfied.\r\nBut you are distant from me, and it is possible that you may dread and yet\r\nbe pleased with this explanation; and in a probability of this being the\r\ncase, I dare not any longer postpone writing what, during your absence, I\r\nhave often wished to express to you but have never had the courage to begin.\r\n\r\n“You well know, Victor, that our union had been the favourite plan of\r\nyour parents ever since our infancy. We were told this when young, and\r\ntaught to look forward to it as an event that would certainly take\r\nplace. We were affectionate playfellows during childhood, and, I\r\nbelieve, dear and valued friends to one another as we grew older. But\r\nas brother and sister often entertain a lively affection towards each\r\nother without desiring a more intimate union, may not such also be our\r\ncase? Tell me, dearest Victor. Answer me, I conjure you by our mutual\r\nhappiness, with simple truth—Do you not love another?\r\n\r\n“You have travelled; you have spent several years of your life at\r\nIngolstadt; and I confess to you, my friend, that when I saw you last\r\nautumn so unhappy, flying to solitude from the society of every\r\ncreature, I could not help supposing that you might regret our\r\nconnection and believe yourself bound in honour to fulfil the wishes of\r\nyour parents, although they opposed themselves to your inclinations.\r\nBut this is false reasoning. I confess to you, my friend, that I love\r\nyou and that in my airy dreams of futurity you have been my constant\r\nfriend and companion. But it is your happiness I desire as well as my\r\nown when I declare to you that our marriage would render me eternally\r\nmiserable unless it were the dictate of your own free choice. Even now\r\nI weep to think that, borne down as you are by the cruellest\r\nmisfortunes, you may stifle, by the word _honour_, all hope of that\r\nlove and happiness which would alone restore you to yourself. I, who\r\nhave so disinterested an affection for you, may increase your miseries\r\ntenfold by being an obstacle to your wishes. Ah! Victor, be assured\r\nthat your cousin and playmate has too sincere a love for you not to be\r\nmade miserable by this supposition. Be happy, my friend; and if you\r\nobey me in this one request, remain satisfied that nothing on earth\r\nwill have the power to interrupt my tranquillity.\r\n\r\n“Do not let this letter disturb you; do not answer tomorrow, or the\r\nnext day, or even until you come, if it will give you pain. My uncle\r\nwill send me news of your health, and if I see but one smile on your\r\nlips when we meet, occasioned by this or any other exertion of mine, I\r\nshall need no other happiness.\r\n\r\n“Elizabeth Lavenza.\r\n\r\n\r\n\r\n“Geneva, May 18th, 17—”\r\n\r\n\r\n\r\nThis letter revived in my memory what I had before forgotten, the threat of\r\nthe fiend—“_I will be with you on your\r\nwedding-night!_” Such was my sentence, and on that night would the\r\ndæmon employ every art to destroy me and tear me from the glimpse of\r\nhappiness which promised partly to console my sufferings. On that night he\r\nhad determined to consummate his crimes by my death. Well, be it so; a\r\ndeadly struggle would then assuredly take place, in which if he were\r\nvictorious I should be at peace and his power over me be at an end. If he\r\nwere vanquished, I should be a free man. Alas! What freedom? Such as the\r\npeasant enjoys when his family have been massacred before his eyes, his\r\ncottage burnt, his lands laid waste, and he is turned adrift, homeless,\r\npenniless, and alone, but free. Such would be my liberty except that in my\r\nElizabeth I possessed a treasure, alas, balanced by those horrors of\r\nremorse and guilt which would pursue me until death.\r\n\r\nSweet and beloved Elizabeth! I read and reread her letter, and some\r\nsoftened feelings stole into my heart and dared to whisper paradisiacal\r\ndreams of love and joy; but the apple was already eaten, and the\r\nangel’s arm bared to drive me from all hope. Yet I would die to make\r\nher happy. If the monster executed his threat, death was inevitable; yet,\r\nagain, I considered whether my marriage would hasten my fate. My\r\ndestruction might indeed arrive a few months sooner, but if my torturer\r\nshould suspect that I postponed it, influenced by his menaces, he would\r\nsurely find other and perhaps more dreadful means of revenge. He had vowed\r\n_to be with me on my wedding-night_, yet he did not consider that\r\nthreat as binding him to peace in the meantime, for as if to show me that\r\nhe was not yet satiated with blood, he had murdered Clerval immediately\r\nafter the enunciation of his threats. I resolved, therefore, that if my\r\nimmediate union with my cousin would conduce either to hers or my\r\nfather’s happiness, my adversary’s designs against my life\r\nshould not retard it a single hour.\r\n\r\nIn this state of mind I wrote to Elizabeth. My letter was calm and\r\naffectionate. “I fear, my beloved girl,” I said, “little happiness\r\nremains for us on earth; yet all that I may one day enjoy is centred in\r\nyou. Chase away your idle fears; to you alone do I consecrate my life\r\nand my endeavours for contentment. I have one secret, Elizabeth, a\r\ndreadful one; when revealed to you, it will chill your frame with\r\nhorror, and then, far from being surprised at my misery, you will only\r\nwonder that I survive what I have endured. I will confide this tale of\r\nmisery and terror to you the day after our marriage shall take place,\r\nfor, my sweet cousin, there must be perfect confidence between us. But\r\nuntil then, I conjure you, do not mention or allude to it. This I most\r\nearnestly entreat, and I know you will comply.”\r\n\r\nIn about a week after the arrival of Elizabeth’s letter we returned\r\nto Geneva. The sweet girl welcomed me with warm affection, yet tears were\r\nin her eyes as she beheld my emaciated frame and feverish cheeks. I saw a\r\nchange in her also. She was thinner and had lost much of that heavenly\r\nvivacity that had before charmed me; but her gentleness and soft looks of\r\ncompassion made her a more fit companion for one blasted and miserable as I\r\nwas.\r\n\r\nThe tranquillity which I now enjoyed did not endure. Memory brought madness\r\nwith it, and when I thought of what had passed, a real insanity possessed\r\nme; sometimes I was furious and burnt with rage, sometimes low and\r\ndespondent. I neither spoke nor looked at anyone, but sat motionless,\r\nbewildered by the multitude of miseries that overcame me.\r\n\r\nElizabeth alone had the power to draw me from these fits; her gentle voice\r\nwould soothe me when transported by passion and inspire me with human\r\nfeelings when sunk in torpor. She wept with me and for me. When reason\r\nreturned, she would remonstrate and endeavour to inspire me with\r\nresignation. Ah! It is well for the unfortunate to be resigned, but for the\r\nguilty there is no peace. The agonies of remorse poison the luxury there is\r\notherwise sometimes found in indulging the excess of grief.\r\n\r\nSoon after my arrival my father spoke of my immediate marriage with\r\nElizabeth. I remained silent.\r\n\r\n“Have you, then, some other attachment?”\r\n\r\n“None on earth. I love Elizabeth and look forward to our union with\r\ndelight. Let the day therefore be fixed; and on it I will consecrate\r\nmyself, in life or death, to the happiness of my cousin.”\r\n\r\n“My dear Victor, do not speak thus. Heavy misfortunes have befallen\r\nus, but let us only cling closer to what remains and transfer our love\r\nfor those whom we have lost to those who yet live. Our circle will be\r\nsmall but bound close by the ties of affection and mutual misfortune.\r\nAnd when time shall have softened your despair, new and dear objects of\r\ncare will be born to replace those of whom we have been so cruelly\r\ndeprived.”\r\n\r\nSuch were the lessons of my father. But to me the remembrance of the\r\nthreat returned; nor can you wonder that, omnipotent as the fiend had\r\nyet been in his deeds of blood, I should almost regard him as\r\ninvincible, and that when he had pronounced the words “_I shall be with\r\nyou on your wedding-night_,” I should regard the threatened fate as\r\nunavoidable. But death was no evil to me if the loss of Elizabeth were\r\nbalanced with it, and I therefore, with a contented and even cheerful\r\ncountenance, agreed with my father that if my cousin would consent, the\r\nceremony should take place in ten days, and thus put, as I imagined,\r\nthe seal to my fate.\r\n\r\nGreat God! If for one instant I had thought what might be the hellish\r\nintention of my fiendish adversary, I would rather have banished myself\r\nfor ever from my native country and wandered a friendless outcast over\r\nthe earth than have consented to this miserable marriage. But, as if\r\npossessed of magic powers, the monster had blinded me to his real\r\nintentions; and when I thought that I had prepared only my own death, I\r\nhastened that of a far dearer victim.\r\n\r\nAs the period fixed for our marriage drew nearer, whether from cowardice or\r\na prophetic feeling, I felt my heart sink within me. But I concealed my\r\nfeelings by an appearance of hilarity that brought smiles and joy to the\r\ncountenance of my father, but hardly deceived the ever-watchful and nicer\r\neye of Elizabeth. She looked forward to our union with placid contentment,\r\nnot unmingled with a little fear, which past misfortunes had impressed,\r\nthat what now appeared certain and tangible happiness might soon dissipate\r\ninto an airy dream and leave no trace but deep and everlasting regret.\r\n\r\nPreparations were made for the event, congratulatory visits were received,\r\nand all wore a smiling appearance. I shut up, as well as I could, in my own\r\nheart the anxiety that preyed there and entered with seeming earnestness\r\ninto the plans of my father, although they might only serve as the\r\ndecorations of my tragedy. Through my father’s exertions a part of\r\nthe inheritance of Elizabeth had been restored to her by the Austrian\r\ngovernment. A small possession on the shores of Como belonged to her. It\r\nwas agreed that, immediately after our union, we should proceed to Villa\r\nLavenza and spend our first days of happiness beside the beautiful lake\r\nnear which it stood.\r\n\r\nIn the meantime I took every precaution to defend my person in case the\r\nfiend should openly attack me. I carried pistols and a dagger\r\nconstantly about me and was ever on the watch to prevent artifice, and\r\nby these means gained a greater degree of tranquillity. Indeed, as the\r\nperiod approached, the threat appeared more as a delusion, not to be\r\nregarded as worthy to disturb my peace, while the happiness I hoped for\r\nin my marriage wore a greater appearance of certainty as the day fixed\r\nfor its solemnisation drew nearer and I heard it continually spoken of\r\nas an occurrence which no accident could possibly prevent.\r\n\r\nElizabeth seemed happy; my tranquil demeanour contributed greatly to\r\ncalm her mind. But on the day that was to fulfil my wishes and my\r\ndestiny, she was melancholy, and a presentiment of evil pervaded her;\r\nand perhaps also she thought of the dreadful secret which I had\r\npromised to reveal to her on the following day. My father was in the\r\nmeantime overjoyed, and, in the bustle of preparation, only recognised in\r\nthe melancholy of his niece the diffidence of a bride.\r\n\r\nAfter the ceremony was performed a large party assembled at my\r\nfather’s, but it was agreed that Elizabeth and I should commence our\r\njourney by water, sleeping that night at Evian and continuing our\r\nvoyage on the following day. The day was fair, the wind favourable;\r\nall smiled on our nuptial embarkation.\r\n\r\nThose were the last moments of my life during which I enjoyed the\r\nfeeling of happiness. We passed rapidly along; the sun was hot, but we\r\nwere sheltered from its rays by a kind of canopy while we enjoyed the\r\nbeauty of the scene, sometimes on one side of the lake, where we saw\r\nMont Salêve, the pleasant banks of Montalègre, and at a distance,\r\nsurmounting all, the beautiful Mont Blanc, and the assemblage of snowy\r\nmountains that in vain endeavour to emulate her; sometimes coasting the\r\nopposite banks, we saw the mighty Jura opposing its dark side to the\r\nambition that would quit its native country, and an almost\r\ninsurmountable barrier to the invader who should wish to enslave it.\r\n\r\nI took the hand of Elizabeth. “You are sorrowful, my love. Ah! If\r\nyou knew what I have suffered and what I may yet endure, you would\r\nendeavour to let me taste the quiet and freedom from despair that this\r\none day at least permits me to enjoy.”\r\n\r\n“Be happy, my dear Victor,” replied Elizabeth; “there is, I hope,\r\nnothing to distress you; and be assured that if a lively joy is not\r\npainted in my face, my heart is contented. Something whispers to me\r\nnot to depend too much on the prospect that is opened before us, but I\r\nwill not listen to such a sinister voice. Observe how fast we move\r\nalong and how the clouds, which sometimes obscure and sometimes rise\r\nabove the dome of Mont Blanc, render this scene of beauty still more\r\ninteresting. Look also at the innumerable fish that are swimming in\r\nthe clear waters, where we can distinguish every pebble that lies at\r\nthe bottom. What a divine day! How happy and serene all nature\r\nappears!”\r\n\r\nThus Elizabeth endeavoured to divert her thoughts and mine from all\r\nreflection upon melancholy subjects. But her temper was fluctuating;\r\njoy for a few instants shone in her eyes, but it continually gave place\r\nto distraction and reverie.\r\n\r\nThe sun sank lower in the heavens; we passed the river Drance and\r\nobserved its path through the chasms of the higher and the glens of the\r\nlower hills. The Alps here come closer to the lake, and we approached\r\nthe amphitheatre of mountains which forms its eastern boundary. The\r\nspire of Evian shone under the woods that surrounded it and the range\r\nof mountain above mountain by which it was overhung.\r\n\r\nThe wind, which had hitherto carried us along with amazing rapidity,\r\nsank at sunset to a light breeze; the soft air just ruffled the water\r\nand caused a pleasant motion among the trees as we approached the\r\nshore, from which it wafted the most delightful scent of flowers and\r\nhay. The sun sank beneath the horizon as we landed, and as I touched\r\nthe shore I felt those cares and fears revive which soon were to clasp\r\nme and cling to me for ever.\r\n\r\n\r\n\r\n\r\nChapter 23\r\n\r\n\r\nIt was eight o’clock when we landed; we walked for a short time on the\r\nshore, enjoying the transitory light, and then retired to the inn and\r\ncontemplated the lovely scene of waters, woods, and mountains, obscured\r\nin darkness, yet still displaying their black outlines.\r\n\r\nThe wind, which had fallen in the south, now rose with great violence\r\nin the west. The moon had reached her summit in the heavens and was\r\nbeginning to descend; the clouds swept across it swifter than the\r\nflight of the vulture and dimmed her rays, while the lake reflected the\r\nscene of the busy heavens, rendered still busier by the restless waves\r\nthat were beginning to rise. Suddenly a heavy storm of rain descended.\r\n\r\nI had been calm during the day, but so soon as night obscured the\r\nshapes of objects, a thousand fears arose in my mind. I was anxious\r\nand watchful, while my right hand grasped a pistol which was hidden in\r\nmy bosom; every sound terrified me, but I resolved that I would sell my\r\nlife dearly and not shrink from the conflict until my own life or that\r\nof my adversary was extinguished.\r\n\r\nElizabeth observed my agitation for some time in timid and fearful silence,\r\nbut there was something in my glance which communicated terror to her, and\r\ntrembling, she asked, “What is it that agitates you, my dear Victor?\r\nWhat is it you fear?”\r\n\r\n“Oh! Peace, peace, my love,” replied I; “this night, and\r\nall will be safe; but this night is dreadful, very dreadful.”\r\n\r\nI passed an hour in this state of mind, when suddenly I reflected how\r\nfearful the combat which I momentarily expected would be to my wife,\r\nand I earnestly entreated her to retire, resolving not to join her\r\nuntil I had obtained some knowledge as to the situation of my enemy.\r\n\r\nShe left me, and I continued some time walking up and down the passages\r\nof the house and inspecting every corner that might afford a retreat to\r\nmy adversary. But I discovered no trace of him and was beginning to\r\nconjecture that some fortunate chance had intervened to prevent the\r\nexecution of his menaces when suddenly I heard a shrill and dreadful\r\nscream. It came from the room into which Elizabeth had retired. As I\r\nheard it, the whole truth rushed into my mind, my arms dropped, the\r\nmotion of every muscle and fibre was suspended; I could feel the blood\r\ntrickling in my veins and tingling in the extremities of my limbs. This\r\nstate lasted but for an instant; the scream was repeated, and I rushed\r\ninto the room.\r\n\r\nGreat God! Why did I not then expire! Why am I here to relate the\r\ndestruction of the best hope and the purest creature on earth? She was\r\nthere, lifeless and inanimate, thrown across the bed, her head hanging down\r\nand her pale and distorted features half covered by her hair. Everywhere I\r\nturn I see the same figure—her bloodless arms and relaxed form flung\r\nby the murderer on its bridal bier. Could I behold this and live? Alas!\r\nLife is obstinate and clings closest where it is most hated. For a moment\r\nonly did I lose recollection; I fell senseless on the ground.\r\n\r\nWhen I recovered I found myself surrounded by the people of the inn; their\r\ncountenances expressed a breathless terror, but the horror of others\r\nappeared only as a mockery, a shadow of the feelings that oppressed me. I\r\nescaped from them to the room where lay the body of Elizabeth, my love, my\r\nwife, so lately living, so dear, so worthy. She had been moved from the\r\nposture in which I had first beheld her, and now, as she lay, her head upon\r\nher arm and a handkerchief thrown across her face and neck, I might have\r\nsupposed her asleep. I rushed towards her and embraced her with ardour, but\r\nthe deadly languor and coldness of the limbs told me that what I now held\r\nin my arms had ceased to be the Elizabeth whom I had loved and cherished.\r\nThe murderous mark of the fiend’s grasp was on her neck, and the\r\nbreath had ceased to issue from her lips.\r\n\r\nWhile I still hung over her in the agony of despair, I happened to look up.\r\nThe windows of the room had before been darkened, and I felt a kind of\r\npanic on seeing the pale yellow light of the moon illuminate the chamber.\r\nThe shutters had been thrown back, and with a sensation of horror not to be\r\ndescribed, I saw at the open window a figure the most hideous and abhorred.\r\nA grin was on the face of the monster; he seemed to jeer, as with his\r\nfiendish finger he pointed towards the corpse of my wife. I rushed towards\r\nthe window, and drawing a pistol from my bosom, fired; but he eluded me,\r\nleaped from his station, and running with the swiftness of lightning,\r\nplunged into the lake.\r\n\r\nThe report of the pistol brought a crowd into the room. I pointed to\r\nthe spot where he had disappeared, and we followed the track with\r\nboats; nets were cast, but in vain. After passing several hours, we\r\nreturned hopeless, most of my companions believing it to have been a\r\nform conjured up by my fancy. After having landed, they proceeded to\r\nsearch the country, parties going in different directions among the\r\nwoods and vines.\r\n\r\nI attempted to accompany them and proceeded a short distance from the\r\nhouse, but my head whirled round, my steps were like those of a drunken\r\nman, I fell at last in a state of utter exhaustion; a film covered my\r\neyes, and my skin was parched with the heat of fever. In this state I\r\nwas carried back and placed on a bed, hardly conscious of what had\r\nhappened; my eyes wandered round the room as if to seek something that\r\nI had lost.\r\n\r\nAfter an interval I arose, and as if by instinct, crawled into the room\r\nwhere the corpse of my beloved lay. There were women weeping around; I\r\nhung over it and joined my sad tears to theirs; all this time no\r\ndistinct idea presented itself to my mind, but my thoughts rambled to\r\nvarious subjects, reflecting confusedly on my misfortunes and their\r\ncause. I was bewildered, in a cloud of wonder and horror. The death\r\nof William, the execution of Justine, the murder of Clerval, and lastly\r\nof my wife; even at that moment I knew not that my only remaining\r\nfriends were safe from the malignity of the fiend; my father even now\r\nmight be writhing under his grasp, and Ernest might be dead at his\r\nfeet. This idea made me shudder and recalled me to action. I started\r\nup and resolved to return to Geneva with all possible speed.\r\n\r\nThere were no horses to be procured, and I must return by the lake; but the\r\nwind was unfavourable, and the rain fell in torrents. However, it was\r\nhardly morning, and I might reasonably hope to arrive by night. I hired men\r\nto row and took an oar myself, for I had always experienced relief from\r\nmental torment in bodily exercise. But the overflowing misery I now felt,\r\nand the excess of agitation that I endured rendered me incapable of any\r\nexertion. I threw down the oar, and leaning my head upon my hands, gave way\r\nto every gloomy idea that arose. If I looked up, I saw scenes which were\r\nfamiliar to me in my happier time and which I had contemplated but the day\r\nbefore in the company of her who was now but a shadow and a recollection.\r\nTears streamed from my eyes. The rain had ceased for a moment, and I saw\r\nthe fish play in the waters as they had done a few hours before; they had\r\nthen been observed by Elizabeth. Nothing is so painful to the human mind as\r\na great and sudden change. The sun might shine or the clouds might lower,\r\nbut nothing could appear to me as it had done the day before. A fiend had\r\nsnatched from me every hope of future happiness; no creature had ever been\r\nso miserable as I was; so frightful an event is single in the history of\r\nman.\r\n\r\nBut why should I dwell upon the incidents that followed this last\r\noverwhelming event? Mine has been a tale of horrors; I have reached their\r\n_acme_, and what I must now relate can but be tedious to you. Know\r\nthat, one by one, my friends were snatched away; I was left desolate. My\r\nown strength is exhausted, and I must tell, in a few words, what remains of\r\nmy hideous narration.\r\n\r\nI arrived at Geneva. My father and Ernest yet lived, but the former sunk\r\nunder the tidings that I bore. I see him now, excellent and venerable old\r\nman! His eyes wandered in vacancy, for they had lost their charm and their\r\ndelight—his Elizabeth, his more than daughter, whom he doted on with\r\nall that affection which a man feels, who in the decline of life, having\r\nfew affections, clings more earnestly to those that remain. Cursed, cursed\r\nbe the fiend that brought misery on his grey hairs and doomed him to waste\r\nin wretchedness! He could not live under the horrors that were accumulated\r\naround him; the springs of existence suddenly gave way; he was unable to\r\nrise from his bed, and in a few days he died in my arms.\r\n\r\nWhat then became of me? I know not; I lost sensation, and chains and\r\ndarkness were the only objects that pressed upon me. Sometimes,\r\nindeed, I dreamt that I wandered in flowery meadows and pleasant vales\r\nwith the friends of my youth, but I awoke and found myself in a\r\ndungeon. Melancholy followed, but by degrees I gained a clear\r\nconception of my miseries and situation and was then released from my\r\nprison. For they had called me mad, and during many months, as I\r\nunderstood, a solitary cell had been my habitation.\r\n\r\nLiberty, however, had been a useless gift to me, had I not, as I\r\nawakened to reason, at the same time awakened to revenge. As the\r\nmemory of past misfortunes pressed upon me, I began to reflect on their\r\ncause—the monster whom I had created, the miserable dæmon whom I had\r\nsent abroad into the world for my destruction. I was possessed by a\r\nmaddening rage when I thought of him, and desired and ardently prayed\r\nthat I might have him within my grasp to wreak a great and signal\r\nrevenge on his cursed head.\r\n\r\nNor did my hate long confine itself to useless wishes; I began to\r\nreflect on the best means of securing him; and for this purpose, about\r\na month after my release, I repaired to a criminal judge in the town\r\nand told him that I had an accusation to make, that I knew the\r\ndestroyer of my family, and that I required him to exert his whole\r\nauthority for the apprehension of the murderer.\r\n\r\nThe magistrate listened to me with attention and kindness. “Be\r\nassured, sir,” said he, “no pains or exertions on my part shall\r\nbe spared to discover the villain.”\r\n\r\n“I thank you,” replied I; “listen, therefore, to the\r\ndeposition that I have to make. It is indeed a tale so strange that I\r\nshould fear you would not credit it were there not something in truth\r\nwhich, however wonderful, forces conviction. The story is too connected to\r\nbe mistaken for a dream, and I have no motive for falsehood.” My\r\nmanner as I thus addressed him was impressive but calm; I had formed in my\r\nown heart a resolution to pursue my destroyer to death, and this purpose\r\nquieted my agony and for an interval reconciled me to life. I now related\r\nmy history briefly but with firmness and precision, marking the dates with\r\naccuracy and never deviating into invective or exclamation.\r\n\r\nThe magistrate appeared at first perfectly incredulous, but as I continued\r\nhe became more attentive and interested; I saw him sometimes shudder with\r\nhorror; at others a lively surprise, unmingled with disbelief, was painted\r\non his countenance.\r\n\r\nWhen I had concluded my narration, I said, “This is the being whom I\r\naccuse and for whose seizure and punishment I call upon you to exert your\r\nwhole power. It is your duty as a magistrate, and I believe and hope that\r\nyour feelings as a man will not revolt from the execution of those\r\nfunctions on this occasion.”\r\n\r\nThis address caused a considerable change in the physiognomy of my own\r\nauditor. He had heard my story with that half kind of belief that is given\r\nto a tale of spirits and supernatural events; but when he was called upon\r\nto act officially in consequence, the whole tide of his incredulity\r\nreturned. He, however, answered mildly, “I would willingly afford you\r\nevery aid in your pursuit, but the creature of whom you speak appears to\r\nhave powers which would put all my exertions to defiance. Who can follow an\r\nanimal which can traverse the sea of ice and inhabit caves and dens where\r\nno man would venture to intrude? Besides, some months have elapsed since\r\nthe commission of his crimes, and no one can conjecture to what place he\r\nhas wandered or what region he may now inhabit.”\r\n\r\n“I do not doubt that he hovers near the spot which I inhabit, and if\r\nhe has indeed taken refuge in the Alps, he may be hunted like the chamois\r\nand destroyed as a beast of prey. But I perceive your thoughts; you do not\r\ncredit my narrative and do not intend to pursue my enemy with the\r\npunishment which is his desert.”\r\n\r\nAs I spoke, rage sparkled in my eyes; the magistrate was intimidated.\r\n“You are mistaken,” said he. “I will exert myself, and if\r\nit is in my power to seize the monster, be assured that he shall suffer\r\npunishment proportionate to his crimes. But I fear, from what you have\r\nyourself described to be his properties, that this will prove\r\nimpracticable; and thus, while every proper measure is pursued, you should\r\nmake up your mind to disappointment.”\r\n\r\n“That cannot be; but all that I can say will be of little avail. My\r\nrevenge is of no moment to you; yet, while I allow it to be a vice, I\r\nconfess that it is the devouring and only passion of my soul. My rage\r\nis unspeakable when I reflect that the murderer, whom I have turned\r\nloose upon society, still exists. You refuse my just demand; I have\r\nbut one resource, and I devote myself, either in my life or death, to\r\nhis destruction.”\r\n\r\nI trembled with excess of agitation as I said this; there was a frenzy\r\nin my manner, and something, I doubt not, of that haughty fierceness\r\nwhich the martyrs of old are said to have possessed. But to a Genevan\r\nmagistrate, whose mind was occupied by far other ideas than those of\r\ndevotion and heroism, this elevation of mind had much the appearance of\r\nmadness. He endeavoured to soothe me as a nurse does a child and\r\nreverted to my tale as the effects of delirium.\r\n\r\n“Man,” I cried, “how ignorant art thou in thy pride of\r\nwisdom! Cease; you know not what it is you say.”\r\n\r\nI broke from the house angry and disturbed and retired to meditate on\r\nsome other mode of action.\r\n\r\n\r\n\r\n\r\nChapter 24\r\n\r\n\r\nMy present situation was one in which all voluntary thought was\r\nswallowed up and lost. I was hurried away by fury; revenge alone\r\nendowed me with strength and composure; it moulded my feelings and\r\nallowed me to be calculating and calm at periods when otherwise\r\ndelirium or death would have been my portion.\r\n\r\nMy first resolution was to quit Geneva for ever; my country, which, when I\r\nwas happy and beloved, was dear to me, now, in my adversity, became\r\nhateful. I provided myself with a sum of money, together with a few jewels\r\nwhich had belonged to my mother, and departed.\r\n\r\nAnd now my wanderings began which are to cease but with life. I have\r\ntraversed a vast portion of the earth and have endured all the hardships\r\nwhich travellers in deserts and barbarous countries are wont to meet. How I\r\nhave lived I hardly know; many times have I stretched my failing limbs upon\r\nthe sandy plain and prayed for death. But revenge kept me alive; I dared\r\nnot die and leave my adversary in being.\r\n\r\nWhen I quitted Geneva my first labour was to gain some clue by which I\r\nmight trace the steps of my fiendish enemy. But my plan was unsettled,\r\nand I wandered many hours round the confines of the town, uncertain\r\nwhat path I should pursue. As night approached I found myself at the\r\nentrance of the cemetery where William, Elizabeth, and my father\r\nreposed. I entered it and approached the tomb which marked their\r\ngraves. Everything was silent except the leaves of the trees, which\r\nwere gently agitated by the wind; the night was nearly dark, and the\r\nscene would have been solemn and affecting even to an uninterested\r\nobserver. The spirits of the departed seemed to flit around and to\r\ncast a shadow, which was felt but not seen, around the head of the\r\nmourner.\r\n\r\nThe deep grief which this scene had at first excited quickly gave way to\r\nrage and despair. They were dead, and I lived; their murderer also lived,\r\nand to destroy him I must drag out my weary existence. I knelt on the grass\r\nand kissed the earth and with quivering lips exclaimed, “By the\r\nsacred earth on which I kneel, by the shades that wander near me, by the\r\ndeep and eternal grief that I feel, I swear; and by thee, O Night, and the\r\nspirits that preside over thee, to pursue the dæmon who caused this misery,\r\nuntil he or I shall perish in mortal conflict. For this purpose I will\r\npreserve my life; to execute this dear revenge will I again behold the sun\r\nand tread the green herbage of earth, which otherwise should vanish from my\r\neyes for ever. And I call on you, spirits of the dead, and on you, wandering\r\nministers of vengeance, to aid and conduct me in my work. Let the cursed\r\nand hellish monster drink deep of agony; let him feel the despair that now\r\ntorments me.”\r\n\r\nI had begun my adjuration with solemnity and an awe which almost assured me\r\nthat the shades of my murdered friends heard and approved my devotion, but\r\nthe furies possessed me as I concluded, and rage choked my utterance.\r\n\r\nI was answered through the stillness of night by a loud and fiendish\r\nlaugh. It rang on my ears long and heavily; the mountains re-echoed\r\nit, and I felt as if all hell surrounded me with mockery and laughter.\r\nSurely in that moment I should have been possessed by frenzy and have\r\ndestroyed my miserable existence but that my vow was heard and that I\r\nwas reserved for vengeance. The laughter died away, when a well-known\r\nand abhorred voice, apparently close to my ear, addressed me in an\r\naudible whisper, “I am satisfied, miserable wretch! You have\r\ndetermined to live, and I am satisfied.”\r\n\r\nI darted towards the spot from which the sound proceeded, but the devil\r\neluded my grasp. Suddenly the broad disk of the moon arose and shone\r\nfull upon his ghastly and distorted shape as he fled with more than\r\nmortal speed.\r\n\r\nI pursued him, and for many months this has been my task. Guided by a\r\nslight clue, I followed the windings of the Rhone, but vainly. The\r\nblue Mediterranean appeared, and by a strange chance, I saw the fiend\r\nenter by night and hide himself in a vessel bound for the Black Sea. I\r\ntook my passage in the same ship, but he escaped, I know not how.\r\n\r\nAmidst the wilds of Tartary and Russia, although he still evaded me, I\r\nhave ever followed in his track. Sometimes the peasants, scared by\r\nthis horrid apparition, informed me of his path; sometimes he himself,\r\nwho feared that if I lost all trace of him I should despair and die,\r\nleft some mark to guide me. The snows descended on my head, and I saw\r\nthe print of his huge step on the white plain. To you first entering\r\non life, to whom care is new and agony unknown, how can you understand\r\nwhat I have felt and still feel? Cold, want, and fatigue were the\r\nleast pains which I was destined to endure; I was cursed by some devil\r\nand carried about with me my eternal hell; yet still a spirit of good\r\nfollowed and directed my steps and when I most murmured would suddenly\r\nextricate me from seemingly insurmountable difficulties. Sometimes,\r\nwhen nature, overcome by hunger, sank under the exhaustion, a repast\r\nwas prepared for me in the desert that restored and inspirited me. The\r\nfare was, indeed, coarse, such as the peasants of the country ate, but\r\nI will not doubt that it was set there by the spirits that I had\r\ninvoked to aid me. Often, when all was dry, the heavens cloudless, and\r\nI was parched by thirst, a slight cloud would bedim the sky, shed the\r\nfew drops that revived me, and vanish.\r\n\r\nI followed, when I could, the courses of the rivers; but the dæmon\r\ngenerally avoided these, as it was here that the population of the\r\ncountry chiefly collected. In other places human beings were seldom\r\nseen, and I generally subsisted on the wild animals that crossed my\r\npath. I had money with me and gained the friendship of the villagers\r\nby distributing it; or I brought with me some food that I had killed,\r\nwhich, after taking a small part, I always presented to those who had\r\nprovided me with fire and utensils for cooking.\r\n\r\nMy life, as it passed thus, was indeed hateful to me, and it was during\r\nsleep alone that I could taste joy. O blessed sleep! Often, when most\r\nmiserable, I sank to repose, and my dreams lulled me even to rapture. The\r\nspirits that guarded me had provided these moments, or rather hours, of\r\nhappiness that I might retain strength to fulfil my pilgrimage. Deprived of\r\nthis respite, I should have sunk under my hardships. During the day I was\r\nsustained and inspirited by the hope of night, for in sleep I saw my\r\nfriends, my wife, and my beloved country; again I saw the benevolent\r\ncountenance of my father, heard the silver tones of my Elizabeth’s\r\nvoice, and beheld Clerval enjoying health and youth. Often, when wearied by\r\na toilsome march, I persuaded myself that I was dreaming until night should\r\ncome and that I should then enjoy reality in the arms of my dearest\r\nfriends. What agonising fondness did I feel for them! How did I cling to\r\ntheir dear forms, as sometimes they haunted even my waking hours, and\r\npersuade myself that they still lived! At such moments vengeance, that\r\nburned within me, died in my heart, and I pursued my path towards the\r\ndestruction of the dæmon more as a task enjoined by heaven, as the\r\nmechanical impulse of some power of which I was unconscious, than as the\r\nardent desire of my soul.\r\n\r\nWhat his feelings were whom I pursued I cannot know. Sometimes, indeed, he\r\nleft marks in writing on the barks of the trees or cut in stone that guided\r\nme and instigated my fury. “My reign is not yet\r\nover”—these words were legible in one of these\r\ninscriptions—“you live, and my power is complete. Follow me; I\r\nseek the everlasting ices of the north, where you will feel the misery of\r\ncold and frost, to which I am impassive. You will find near this place, if\r\nyou follow not too tardily, a dead hare; eat and be refreshed. Come on, my\r\nenemy; we have yet to wrestle for our lives, but many hard and miserable\r\nhours must you endure until that period shall arrive.”\r\n\r\nScoffing devil! Again do I vow vengeance; again do I devote thee,\r\nmiserable fiend, to torture and death. Never will I give up my search\r\nuntil he or I perish; and then with what ecstasy shall I join my\r\nElizabeth and my departed friends, who even now prepare for me the\r\nreward of my tedious toil and horrible pilgrimage!\r\n\r\nAs I still pursued my journey to the northward, the snows thickened and the\r\ncold increased in a degree almost too severe to support. The peasants were\r\nshut up in their hovels, and only a few of the most hardy ventured forth to\r\nseize the animals whom starvation had forced from their hiding-places to\r\nseek for prey. The rivers were covered with ice, and no fish could be\r\nprocured; and thus I was cut off from my chief article of maintenance.\r\n\r\nThe triumph of my enemy increased with the difficulty of my labours. One\r\ninscription that he left was in these words: “Prepare! Your toils\r\nonly begin; wrap yourself in furs and provide food, for we shall soon enter\r\nupon a journey where your sufferings will satisfy my everlasting\r\nhatred.”\r\n\r\nMy courage and perseverance were invigorated by these scoffing words; I\r\nresolved not to fail in my purpose, and calling on Heaven to support\r\nme, I continued with unabated fervour to traverse immense deserts,\r\nuntil the ocean appeared at a distance and formed the utmost boundary\r\nof the horizon. Oh! How unlike it was to the blue seasons of the\r\nsouth! Covered with ice, it was only to be distinguished from land by\r\nits superior wildness and ruggedness. The Greeks wept for joy when\r\nthey beheld the Mediterranean from the hills of Asia, and hailed with\r\nrapture the boundary of their toils. I did not weep, but I knelt down\r\nand with a full heart thanked my guiding spirit for conducting me in\r\nsafety to the place where I hoped, notwithstanding my adversary’s gibe,\r\nto meet and grapple with him.\r\n\r\nSome weeks before this period I had procured a sledge and dogs and thus\r\ntraversed the snows with inconceivable speed. I know not whether the\r\nfiend possessed the same advantages, but I found that, as before I had\r\ndaily lost ground in the pursuit, I now gained on him, so much so that\r\nwhen I first saw the ocean he was but one day’s journey in advance, and\r\nI hoped to intercept him before he should reach the beach. With new\r\ncourage, therefore, I pressed on, and in two days arrived at a wretched\r\nhamlet on the seashore. I inquired of the inhabitants concerning the\r\nfiend and gained accurate information. A gigantic monster, they said,\r\nhad arrived the night before, armed with a gun and many pistols,\r\nputting to flight the inhabitants of a solitary cottage through fear of\r\nhis terrific appearance. He had carried off their store of winter\r\nfood, and placing it in a sledge, to draw which he had seized on a\r\nnumerous drove of trained dogs, he had harnessed them, and the same\r\nnight, to the joy of the horror-struck villagers, had pursued his\r\njourney across the sea in a direction that led to no land; and they\r\nconjectured that he must speedily be destroyed by the breaking of the\r\nice or frozen by the eternal frosts.\r\n\r\nOn hearing this information I suffered a temporary access of despair.\r\nHe had escaped me, and I must commence a destructive and almost endless\r\njourney across the mountainous ices of the ocean, amidst cold that few\r\nof the inhabitants could long endure and which I, the native of a\r\ngenial and sunny climate, could not hope to survive. Yet at the idea\r\nthat the fiend should live and be triumphant, my rage and vengeance\r\nreturned, and like a mighty tide, overwhelmed every other feeling.\r\nAfter a slight repose, during which the spirits of the dead hovered\r\nround and instigated me to toil and revenge, I prepared for my journey.\r\n\r\nI exchanged my land-sledge for one fashioned for the inequalities of\r\nthe Frozen Ocean, and purchasing a plentiful stock of provisions, I\r\ndeparted from land.\r\n\r\nI cannot guess how many days have passed since then, but I have endured\r\nmisery which nothing but the eternal sentiment of a just retribution\r\nburning within my heart could have enabled me to support. Immense and\r\nrugged mountains of ice often barred up my passage, and I often heard\r\nthe thunder of the ground sea, which threatened my destruction. But\r\nagain the frost came and made the paths of the sea secure.\r\n\r\nBy the quantity of provision which I had consumed, I should guess that\r\nI had passed three weeks in this journey; and the continual protraction\r\nof hope, returning back upon the heart, often wrung bitter drops of\r\ndespondency and grief from my eyes. Despair had indeed almost secured\r\nher prey, and I should soon have sunk beneath this misery. Once, after\r\nthe poor animals that conveyed me had with incredible toil gained the\r\nsummit of a sloping ice mountain, and one, sinking under his fatigue,\r\ndied, I viewed the expanse before me with anguish, when suddenly my eye\r\ncaught a dark speck upon the dusky plain. I strained my sight to\r\ndiscover what it could be and uttered a wild cry of ecstasy when I\r\ndistinguished a sledge and the distorted proportions of a well-known\r\nform within. Oh! With what a burning gush did hope revisit my heart!\r\nWarm tears filled my eyes, which I hastily wiped away, that they might\r\nnot intercept the view I had of the dæmon; but still my sight was\r\ndimmed by the burning drops, until, giving way to the emotions that\r\noppressed me, I wept aloud.\r\n\r\nBut this was not the time for delay; I disencumbered the dogs of their\r\ndead companion, gave them a plentiful portion of food, and after an\r\nhour’s rest, which was absolutely necessary, and yet which was bitterly\r\nirksome to me, I continued my route. The sledge was still visible, nor\r\ndid I again lose sight of it except at the moments when for a short\r\ntime some ice-rock concealed it with its intervening crags. I indeed\r\nperceptibly gained on it, and when, after nearly two days’ journey, I\r\nbeheld my enemy at no more than a mile distant, my heart bounded within\r\nme.\r\n\r\nBut now, when I appeared almost within grasp of my foe, my hopes were\r\nsuddenly extinguished, and I lost all trace of him more utterly than I had\r\never done before. A ground sea was heard; the thunder of its progress, as\r\nthe waters rolled and swelled beneath me, became every moment more ominous\r\nand terrific. I pressed on, but in vain. The wind arose; the sea roared;\r\nand, as with the mighty shock of an earthquake, it split and cracked with a\r\ntremendous and overwhelming sound. The work was soon finished; in a few\r\nminutes a tumultuous sea rolled between me and my enemy, and I was left\r\ndrifting on a scattered piece of ice that was continually lessening and\r\nthus preparing for me a hideous death.\r\n\r\nIn this manner many appalling hours passed; several of my dogs died, and I\r\nmyself was about to sink under the accumulation of distress when I saw your\r\nvessel riding at anchor and holding forth to me hopes of succour and life.\r\nI had no conception that vessels ever came so far north and was astounded\r\nat the sight. I quickly destroyed part of my sledge to construct oars, and\r\nby these means was enabled, with infinite fatigue, to move my ice raft in\r\nthe direction of your ship. I had determined, if you were going southwards,\r\nstill to trust myself to the mercy of the seas rather than abandon my\r\npurpose. I hoped to induce you to grant me a boat with which I could pursue\r\nmy enemy. But your direction was northwards. You took me on board when my\r\nvigour was exhausted, and I should soon have sunk under my multiplied\r\nhardships into a death which I still dread, for my task is unfulfilled.\r\n\r\nOh! When will my guiding spirit, in conducting me to the dæmon, allow\r\nme the rest I so much desire; or must I die, and he yet live? If I do,\r\nswear to me, Walton, that he shall not escape, that you will seek him\r\nand satisfy my vengeance in his death. And do I dare to ask of you to\r\nundertake my pilgrimage, to endure the hardships that I have undergone?\r\nNo; I am not so selfish. Yet, when I am dead, if he should appear, if\r\nthe ministers of vengeance should conduct him to you, swear that he\r\nshall not live—swear that he shall not triumph over my accumulated\r\nwoes and survive to add to the list of his dark crimes. He is eloquent\r\nand persuasive, and once his words had even power over my heart; but\r\ntrust him not. His soul is as hellish as his form, full of treachery\r\nand fiend-like malice. Hear him not; call on the names of William,\r\nJustine, Clerval, Elizabeth, my father, and of the wretched Victor, and\r\nthrust your sword into his heart. I will hover near and direct the\r\nsteel aright.\r\n\r\nWalton, _in continuation._\r\n\r\n\r\nAugust 26th, 17—.\r\n\r\n\r\nYou have read this strange and terrific story, Margaret; and do you not\r\nfeel your blood congeal with horror, like that which even now curdles\r\nmine? Sometimes, seized with sudden agony, he could not continue his\r\ntale; at others, his voice broken, yet piercing, uttered with\r\ndifficulty the words so replete with anguish. His fine and lovely eyes\r\nwere now lighted up with indignation, now subdued to downcast sorrow\r\nand quenched in infinite wretchedness. Sometimes he commanded his\r\ncountenance and tones and related the most horrible incidents with a\r\ntranquil voice, suppressing every mark of agitation; then, like a\r\nvolcano bursting forth, his face would suddenly change to an expression\r\nof the wildest rage as he shrieked out imprecations on his persecutor.\r\n\r\nHis tale is connected and told with an appearance of the simplest truth,\r\nyet I own to you that the letters of Felix and Safie, which he showed me,\r\nand the apparition of the monster seen from our ship, brought to me a\r\ngreater conviction of the truth of his narrative than his asseverations,\r\nhowever earnest and connected. Such a monster has, then, really existence!\r\nI cannot doubt it, yet I am lost in surprise and admiration. Sometimes I\r\nendeavoured to gain from Frankenstein the particulars of his\r\ncreature’s formation, but on this point he was impenetrable.\r\n\r\n“Are you mad, my friend?” said he. “Or whither does your\r\nsenseless curiosity lead you? Would you also create for yourself and the\r\nworld a demoniacal enemy? Peace, peace! Learn my miseries and do not seek\r\nto increase your own.”\r\n\r\nFrankenstein discovered that I made notes concerning his history; he asked\r\nto see them and then himself corrected and augmented them in many places,\r\nbut principally in giving the life and spirit to the conversations he held\r\nwith his enemy. “Since you have preserved my narration,” said\r\nhe, “I would not that a mutilated one should go down to\r\nposterity.”\r\n\r\nThus has a week passed away, while I have listened to the strangest\r\ntale that ever imagination formed. My thoughts and every feeling of my\r\nsoul have been drunk up by the interest for my guest which this tale\r\nand his own elevated and gentle manners have created. I wish to soothe\r\nhim, yet can I counsel one so infinitely miserable, so destitute of\r\nevery hope of consolation, to live? Oh, no! The only joy that he can\r\nnow know will be when he composes his shattered spirit to peace and\r\ndeath. Yet he enjoys one comfort, the offspring of solitude and\r\ndelirium; he believes that when in dreams he holds converse with his\r\nfriends and derives from that communion consolation for his miseries or\r\nexcitements to his vengeance, that they are not the creations of his\r\nfancy, but the beings themselves who visit him from the regions of a\r\nremote world. This faith gives a solemnity to his reveries that render\r\nthem to me almost as imposing and interesting as truth.\r\n\r\nOur conversations are not always confined to his own history and\r\nmisfortunes. On every point of general literature he displays\r\nunbounded knowledge and a quick and piercing apprehension. His\r\neloquence is forcible and touching; nor can I hear him, when he relates\r\na pathetic incident or endeavours to move the passions of pity or love,\r\nwithout tears. What a glorious creature must he have been in the days\r\nof his prosperity, when he is thus noble and godlike in ruin! He seems\r\nto feel his own worth and the greatness of his fall.\r\n\r\n“When younger,” said he, “I believed myself destined for\r\nsome great enterprise. My feelings are profound, but I possessed a coolness\r\nof judgment that fitted me for illustrious achievements. This sentiment of\r\nthe worth of my nature supported me when others would have been oppressed,\r\nfor I deemed it criminal to throw away in useless grief those talents that\r\nmight be useful to my fellow creatures. When I reflected on the work I had\r\ncompleted, no less a one than the creation of a sensitive and rational\r\nanimal, I could not rank myself with the herd of common projectors. But\r\nthis thought, which supported me in the commencement of my career, now\r\nserves only to plunge me lower in the dust. All my speculations and hopes\r\nare as nothing, and like the archangel who aspired to omnipotence, I am\r\nchained in an eternal hell. My imagination was vivid, yet my powers of\r\nanalysis and application were intense; by the union of these qualities I\r\nconceived the idea and executed the creation of a man. Even now I cannot\r\nrecollect without passion my reveries while the work was incomplete. I trod\r\nheaven in my thoughts, now exulting in my powers, now burning with the idea\r\nof their effects. From my infancy I was imbued with high hopes and a lofty\r\nambition; but how am I sunk! Oh! My friend, if you had known me as I once\r\nwas, you would not recognise me in this state of degradation. Despondency\r\nrarely visited my heart; a high destiny seemed to bear me on, until I fell,\r\nnever, never again to rise.”\r\n\r\nMust I then lose this admirable being? I have longed for a friend; I have\r\nsought one who would sympathise with and love me. Behold, on these desert\r\nseas I have found such a one, but I fear I have gained him only to know his\r\nvalue and lose him. I would reconcile him to life, but he repulses the idea.\r\n\r\n“I thank you, Walton,” he said, “for your kind intentions towards so\r\nmiserable a wretch; but when you speak of new ties and fresh\r\naffections, think you that any can replace those who are gone? Can any\r\nman be to me as Clerval was, or any woman another Elizabeth? Even\r\nwhere the affections are not strongly moved by any superior excellence,\r\nthe companions of our childhood always possess a certain power over our\r\nminds which hardly any later friend can obtain. They know our\r\ninfantine dispositions, which, however they may be afterwards modified,\r\nare never eradicated; and they can judge of our actions with more\r\ncertain conclusions as to the integrity of our motives. A sister or a\r\nbrother can never, unless indeed such symptoms have been shown early,\r\nsuspect the other of fraud or false dealing, when another friend,\r\nhowever strongly he may be attached, may, in spite of himself, be\r\ncontemplated with suspicion. But I enjoyed friends, dear not only\r\nthrough habit and association, but from their own merits; and wherever\r\nI am, the soothing voice of my Elizabeth and the conversation of\r\nClerval will be ever whispered in my ear. They are dead, and but one\r\nfeeling in such a solitude can persuade me to preserve my life. If I\r\nwere engaged in any high undertaking or design, fraught with extensive\r\nutility to my fellow creatures, then could I live to fulfil it. But\r\nsuch is not my destiny; I must pursue and destroy the being to whom I\r\ngave existence; then my lot on earth will be fulfilled and I may die.”\r\n\r\nMy beloved Sister,\r\n\r\nSeptember 2d.\r\n\r\n\r\nI write to you, encompassed by peril and ignorant whether I am ever\r\ndoomed to see again dear England and the dearer friends that inhabit\r\nit. I am surrounded by mountains of ice which admit of no escape and\r\nthreaten every moment to crush my vessel. The brave fellows whom I\r\nhave persuaded to be my companions look towards me for aid, but I have\r\nnone to bestow. There is something terribly appalling in our\r\nsituation, yet my courage and hopes do not desert me. Yet it is\r\nterrible to reflect that the lives of all these men are endangered\r\nthrough me. If we are lost, my mad schemes are the cause.\r\n\r\nAnd what, Margaret, will be the state of your mind? You will not hear of my\r\ndestruction, and you will anxiously await my return. Years will pass, and\r\nyou will have visitings of despair and yet be tortured by hope. Oh! My\r\nbeloved sister, the sickening failing of your heart-felt expectations is,\r\nin prospect, more terrible to me than my own death. But you have a husband\r\nand lovely children; you may be happy. Heaven bless you and make you so!\r\n\r\nMy unfortunate guest regards me with the tenderest compassion. He\r\nendeavours to fill me with hope and talks as if life were a possession\r\nwhich he valued. He reminds me how often the same accidents have\r\nhappened to other navigators who have attempted this sea, and in spite\r\nof myself, he fills me with cheerful auguries. Even the sailors feel\r\nthe power of his eloquence; when he speaks, they no longer despair; he\r\nrouses their energies, and while they hear his voice they believe these\r\nvast mountains of ice are mole-hills which will vanish before the\r\nresolutions of man. These feelings are transitory; each day of\r\nexpectation delayed fills them with fear, and I almost dread a mutiny\r\ncaused by this despair.\r\n\r\nSeptember 5th.\r\n\r\n\r\nA scene has just passed of such uncommon interest that, although it is\r\nhighly probable that these papers may never reach you, yet I cannot\r\nforbear recording it.\r\n\r\nWe are still surrounded by mountains of ice, still in imminent danger\r\nof being crushed in their conflict. The cold is excessive, and many of\r\nmy unfortunate comrades have already found a grave amidst this scene of\r\ndesolation. Frankenstein has daily declined in health; a feverish fire\r\nstill glimmers in his eyes, but he is exhausted, and when suddenly\r\nroused to any exertion, he speedily sinks again into apparent\r\nlifelessness.\r\n\r\nI mentioned in my last letter the fears I entertained of a mutiny.\r\nThis morning, as I sat watching the wan countenance of my friend—his\r\neyes half closed and his limbs hanging listlessly—I was roused by half\r\na dozen of the sailors, who demanded admission into the cabin. They\r\nentered, and their leader addressed me. He told me that he and his\r\ncompanions had been chosen by the other sailors to come in deputation\r\nto me to make me a requisition which, in justice, I could not refuse.\r\nWe were immured in ice and should probably never escape, but they\r\nfeared that if, as was possible, the ice should dissipate and a free\r\npassage be opened, I should be rash enough to continue my voyage and\r\nlead them into fresh dangers, after they might happily have surmounted\r\nthis. They insisted, therefore, that I should engage with a solemn\r\npromise that if the vessel should be freed I would instantly direct my\r\ncourse southwards.\r\n\r\nThis speech troubled me. I had not despaired, nor had I yet conceived\r\nthe idea of returning if set free. Yet could I, in justice, or even in\r\npossibility, refuse this demand? I hesitated before I answered, when\r\nFrankenstein, who had at first been silent, and indeed appeared hardly\r\nto have force enough to attend, now roused himself; his eyes sparkled,\r\nand his cheeks flushed with momentary vigour. Turning towards the men,\r\nhe said,\r\n\r\n“What do you mean? What do you demand of your captain? Are you, then,\r\nso easily turned from your design? Did you not call this a glorious\r\nexpedition? “And wherefore was it glorious? Not because the way was\r\nsmooth and placid as a southern sea, but because it was full of dangers and\r\nterror, because at every new incident your fortitude was to be called forth\r\nand your courage exhibited, because danger and death surrounded it, and\r\nthese you were to brave and overcome. For this was it a glorious, for this\r\nwas it an honourable undertaking. You were hereafter to be hailed as the\r\nbenefactors of your species, your names adored as belonging to brave men\r\nwho encountered death for honour and the benefit of mankind. And now,\r\nbehold, with the first imagination of danger, or, if you will, the first\r\nmighty and terrific trial of your courage, you shrink away and are content\r\nto be handed down as men who had not strength enough to endure cold and\r\nperil; and so, poor souls, they were chilly and returned to their warm\r\nfiresides. Why, that requires not this preparation; ye need not have come\r\nthus far and dragged your captain to the shame of a defeat merely to prove\r\nyourselves cowards. Oh! Be men, or be more than men. Be steady to your\r\npurposes and firm as a rock. This ice is not made of such stuff as your\r\nhearts may be; it is mutable and cannot withstand you if you say that it\r\nshall not. Do not return to your families with the stigma of disgrace\r\nmarked on your brows. Return as heroes who have fought and conquered and\r\nwho know not what it is to turn their backs on the foe.”\r\n\r\nHe spoke this with a voice so modulated to the different feelings expressed\r\nin his speech, with an eye so full of lofty design and heroism, that can\r\nyou wonder that these men were moved? They looked at one another and were\r\nunable to reply. I spoke; I told them to retire and consider of what had\r\nbeen said, that I would not lead them farther north if they strenuously\r\ndesired the contrary, but that I hoped that, with reflection, their courage\r\nwould return.\r\n\r\nThey retired and I turned towards my friend, but he was sunk in languor and\r\nalmost deprived of life.\r\n\r\nHow all this will terminate, I know not, but I had rather die than\r\nreturn shamefully, my purpose unfulfilled. Yet I fear such will be my\r\nfate; the men, unsupported by ideas of glory and honour, can never\r\nwillingly continue to endure their present hardships.\r\n\r\nSeptember 7th.\r\n\r\n\r\nThe die is cast; I have consented to return if we are not destroyed.\r\nThus are my hopes blasted by cowardice and indecision; I come back\r\nignorant and disappointed. It requires more philosophy than I possess\r\nto bear this injustice with patience.\r\n\r\nSeptember 12th.\r\n\r\n\r\nIt is past; I am returning to England. I have lost my hopes of utility\r\nand glory; I have lost my friend. But I will endeavour to detail these\r\nbitter circumstances to you, my dear sister; and while I am wafted\r\ntowards England and towards you, I will not despond.\r\n\r\nSeptember 9th, the ice began to move, and roarings like thunder were heard\r\nat a distance as the islands split and cracked in every direction. We were\r\nin the most imminent peril, but as we could only remain passive, my chief\r\nattention was occupied by my unfortunate guest whose illness increased in\r\nsuch a degree that he was entirely confined to his bed. The ice cracked\r\nbehind us and was driven with force towards the north; a breeze sprang from\r\nthe west, and on the 11th the passage towards the south became perfectly\r\nfree. When the sailors saw this and that their return to their native\r\ncountry was apparently assured, a shout of tumultuous joy broke from them,\r\nloud and long-continued. Frankenstein, who was dozing, awoke and asked the\r\ncause of the tumult. “They shout,” I said, “because they\r\nwill soon return to England.”\r\n\r\n“Do you, then, really return?”\r\n\r\n“Alas! Yes; I cannot withstand their demands. I cannot lead them\r\nunwillingly to danger, and I must return.”\r\n\r\n“Do so, if you will; but I will not. You may give up your purpose, but\r\nmine is assigned to me by Heaven, and I dare not. I am weak, but\r\nsurely the spirits who assist my vengeance will endow me with\r\nsufficient strength.” Saying this, he endeavoured to spring from the\r\nbed, but the exertion was too great for him; he fell back and fainted.\r\n\r\nIt was long before he was restored, and I often thought that life was\r\nentirely extinct. At length he opened his eyes; he breathed with\r\ndifficulty and was unable to speak. The surgeon gave him a composing\r\ndraught and ordered us to leave him undisturbed. In the meantime he\r\ntold me that my friend had certainly not many hours to live.\r\n\r\nHis sentence was pronounced, and I could only grieve and be patient. I sat\r\nby his bed, watching him; his eyes were closed, and I thought he slept; but\r\npresently he called to me in a feeble voice, and bidding me come near,\r\nsaid, “Alas! The strength I relied on is gone; I feel that I shall\r\nsoon die, and he, my enemy and persecutor, may still be in being. Think\r\nnot, Walton, that in the last moments of my existence I feel that burning\r\nhatred and ardent desire of revenge I once expressed; but I feel myself\r\njustified in desiring the death of my adversary. During these last days I\r\nhave been occupied in examining my past conduct; nor do I find it blamable.\r\nIn a fit of enthusiastic madness I created a rational creature and was\r\nbound towards him to assure, as far as was in my power, his happiness and\r\nwell-being. This was my duty, but there was another still paramount to\r\nthat. My duties towards the beings of my own species had greater claims to\r\nmy attention because they included a greater proportion of happiness or\r\nmisery. Urged by this view, I refused, and I did right in refusing, to\r\ncreate a companion for the first creature. He showed unparalleled malignity\r\nand selfishness in evil; he destroyed my friends; he devoted to destruction\r\nbeings who possessed exquisite sensations, happiness, and wisdom; nor do I\r\nknow where this thirst for vengeance may end. Miserable himself that he may\r\nrender no other wretched, he ought to die. The task of his destruction was\r\nmine, but I have failed. When actuated by selfish and vicious motives, I\r\nasked you to undertake my unfinished work, and I renew this request now,\r\nwhen I am only induced by reason and virtue.\r\n\r\n“Yet I cannot ask you to renounce your country and friends to fulfil\r\nthis task; and now that you are returning to England, you will have\r\nlittle chance of meeting with him. But the consideration of these\r\npoints, and the well balancing of what you may esteem your duties, I\r\nleave to you; my judgment and ideas are already disturbed by the near\r\napproach of death. I dare not ask you to do what I think right, for I\r\nmay still be misled by passion.\r\n\r\n“That he should live to be an instrument of mischief disturbs me; in\r\nother respects, this hour, when I momentarily expect my release, is the\r\nonly happy one which I have enjoyed for several years. The forms of\r\nthe beloved dead flit before me, and I hasten to their arms. Farewell,\r\nWalton! Seek happiness in tranquillity and avoid ambition, even if it\r\nbe only the apparently innocent one of distinguishing yourself in\r\nscience and discoveries. Yet why do I say this? I have myself been\r\nblasted in these hopes, yet another may succeed.”\r\n\r\nHis voice became fainter as he spoke, and at length, exhausted by his\r\neffort, he sank into silence. About half an hour afterwards he\r\nattempted again to speak but was unable; he pressed my hand feebly, and\r\nhis eyes closed for ever, while the irradiation of a gentle smile passed\r\naway from his lips.\r\n\r\nMargaret, what comment can I make on the untimely extinction of this\r\nglorious spirit? What can I say that will enable you to understand the\r\ndepth of my sorrow? All that I should express would be inadequate and\r\nfeeble. My tears flow; my mind is overshadowed by a cloud of\r\ndisappointment. But I journey towards England, and I may there find\r\nconsolation.\r\n\r\nI am interrupted. What do these sounds portend? It is midnight; the\r\nbreeze blows fairly, and the watch on deck scarcely stir. Again there\r\nis a sound as of a human voice, but hoarser; it comes from the cabin\r\nwhere the remains of Frankenstein still lie. I must arise and examine.\r\nGood night, my sister.\r\n\r\nGreat God! what a scene has just taken place! I am yet dizzy with the\r\nremembrance of it. I hardly know whether I shall have the power to detail\r\nit; yet the tale which I have recorded would be incomplete without this\r\nfinal and wonderful catastrophe.\r\n\r\nI entered the cabin where lay the remains of my ill-fated and admirable\r\nfriend. Over him hung a form which I cannot find words to\r\ndescribe—gigantic in stature, yet uncouth and distorted in its\r\nproportions. As he hung over the coffin, his face was concealed by long\r\nlocks of ragged hair; but one vast hand was extended, in colour and\r\napparent texture like that of a mummy. When he heard the sound of my\r\napproach, he ceased to utter exclamations of grief and horror and sprung\r\ntowards the window. Never did I behold a vision so horrible as his face, of\r\nsuch loathsome yet appalling hideousness. I shut my eyes involuntarily and\r\nendeavoured to recollect what were my duties with regard to this destroyer.\r\nI called on him to stay.\r\n\r\nHe paused, looking on me with wonder, and again turning towards the\r\nlifeless form of his creator, he seemed to forget my presence, and\r\nevery feature and gesture seemed instigated by the wildest rage of some\r\nuncontrollable passion.\r\n\r\n“That is also my victim!” he exclaimed. “In his murder my\r\ncrimes are consummated; the miserable series of my being is wound to its\r\nclose! Oh, Frankenstein! Generous and self-devoted being! What does it\r\navail that I now ask thee to pardon me? I, who irretrievably destroyed thee\r\nby destroying all thou lovedst. Alas! He is cold, he cannot answer\r\nme.”\r\n\r\nHis voice seemed suffocated, and my first impulses, which had suggested to\r\nme the duty of obeying the dying request of my friend in destroying his\r\nenemy, were now suspended by a mixture of curiosity and compassion. I\r\napproached this tremendous being; I dared not again raise my eyes to his\r\nface, there was something so scaring and unearthly in his ugliness. I\r\nattempted to speak, but the words died away on my lips. The monster\r\ncontinued to utter wild and incoherent self-reproaches. At length I\r\ngathered resolution to address him in a pause of the tempest of his passion.\r\n\r\n“Your repentance,” I said, “is now superfluous. If you\r\nhad listened to the voice of conscience and heeded the stings of remorse\r\nbefore you had urged your diabolical vengeance to this extremity,\r\nFrankenstein would yet have lived.”\r\n\r\n“And do you dream?” said the dæmon. “Do you think that I was then\r\ndead to agony and remorse? He,” he continued, pointing to the corpse,\r\n“he suffered not in the consummation of the deed. Oh! Not the\r\nten-thousandth portion of the anguish that was mine during the\r\nlingering detail of its execution. A frightful selfishness hurried me\r\non, while my heart was poisoned with remorse. Think you that the\r\ngroans of Clerval were music to my ears? My heart was fashioned to be\r\nsusceptible of love and sympathy, and when wrenched by misery to vice\r\nand hatred, it did not endure the violence of the change without\r\ntorture such as you cannot even imagine.\r\n\r\n“After the murder of Clerval I returned to Switzerland, heart-broken\r\nand overcome. I pitied Frankenstein; my pity amounted to horror; I\r\nabhorred myself. But when I discovered that he, the author at once of\r\nmy existence and of its unspeakable torments, dared to hope for\r\nhappiness, that while he accumulated wretchedness and despair upon me\r\nhe sought his own enjoyment in feelings and passions from the\r\nindulgence of which I was for ever barred, then impotent envy and bitter\r\nindignation filled me with an insatiable thirst for vengeance. I\r\nrecollected my threat and resolved that it should be accomplished. I\r\nknew that I was preparing for myself a deadly torture, but I was the\r\nslave, not the master, of an impulse which I detested yet could not\r\ndisobey. Yet when she died! Nay, then I was not miserable. I had\r\ncast off all feeling, subdued all anguish, to riot in the excess of my\r\ndespair. Evil thenceforth became my good. Urged thus far, I had no\r\nchoice but to adapt my nature to an element which I had willingly\r\nchosen. The completion of my demoniacal design became an insatiable\r\npassion. And now it is ended; there is my last victim!”\r\n\r\nI was at first touched by the expressions of his misery; yet, when I called\r\nto mind what Frankenstein had said of his powers of eloquence and\r\npersuasion, and when I again cast my eyes on the lifeless form of my\r\nfriend, indignation was rekindled within me. “Wretch!” I said.\r\n“It is well that you come here to whine over the desolation that you\r\nhave made. You throw a torch into a pile of buildings, and when they are\r\nconsumed, you sit among the ruins and lament the fall. Hypocritical fiend!\r\nIf he whom you mourn still lived, still would he be the object, again would\r\nhe become the prey, of your accursed vengeance. It is not pity that you\r\nfeel; you lament only because the victim of your malignity is withdrawn\r\nfrom your power.”\r\n\r\n“Oh, it is not thus—not thus,” interrupted the being.\r\n“Yet such must be the impression conveyed to you by what appears to\r\nbe the purport of my actions. Yet I seek not a fellow feeling in my misery.\r\nNo sympathy may I ever find. When I first sought it, it was the love of\r\nvirtue, the feelings of happiness and affection with which my whole being\r\noverflowed, that I wished to be participated. But now that virtue has\r\nbecome to me a shadow, and that happiness and affection are turned into\r\nbitter and loathing despair, in what should I seek for sympathy? I am\r\ncontent to suffer alone while my sufferings shall endure; when I die, I am\r\nwell satisfied that abhorrence and opprobrium should load my memory. Once\r\nmy fancy was soothed with dreams of virtue, of fame, and of enjoyment. Once\r\nI falsely hoped to meet with beings who, pardoning my outward form, would\r\nlove me for the excellent qualities which I was capable of unfolding. I was\r\nnourished with high thoughts of honour and devotion. But now crime has\r\ndegraded me beneath the meanest animal. No guilt, no mischief, no\r\nmalignity, no misery, can be found comparable to mine. When I run over the\r\nfrightful catalogue of my sins, I cannot believe that I am the same\r\ncreature whose thoughts were once filled with sublime and transcendent\r\nvisions of the beauty and the majesty of goodness. But it is even so; the\r\nfallen angel becomes a malignant devil. Yet even that enemy of God and man\r\nhad friends and associates in his desolation; I am alone.\r\n\r\n“You, who call Frankenstein your friend, seem to have a knowledge of my\r\ncrimes and his misfortunes. But in the detail which he gave you of them\r\nhe could not sum up the hours and months of misery which I endured\r\nwasting in impotent passions. For while I destroyed his hopes, I did\r\nnot satisfy my own desires. They were for ever ardent and craving; still\r\nI desired love and fellowship, and I was still spurned. Was there no\r\ninjustice in this? Am I to be thought the only criminal, when all\r\nhumankind sinned against me? Why do you not hate Felix, who drove his\r\nfriend from his door with contumely? Why do you not execrate the rustic\r\nwho sought to destroy the saviour of his child? Nay, these are virtuous\r\nand immaculate beings! I, the miserable and the abandoned, am an\r\nabortion, to be spurned at, and kicked, and trampled on. Even now my\r\nblood boils at the recollection of this injustice.\r\n\r\n“But it is true that I am a wretch. I have murdered the lovely and\r\nthe helpless; I have strangled the innocent as they slept and grasped to\r\ndeath his throat who never injured me or any other living thing. I have\r\ndevoted my creator, the select specimen of all that is worthy of love and\r\nadmiration among men, to misery; I have pursued him even to that\r\nirremediable ruin. There he lies, white and cold in death. You hate me, but\r\nyour abhorrence cannot equal that with which I regard myself. I look on the\r\nhands which executed the deed; I think on the heart in which the\r\nimagination of it was conceived and long for the moment when these hands\r\nwill meet my eyes, when that imagination will haunt my thoughts no more.\r\n\r\n“Fear not that I shall be the instrument of future mischief. My work\r\nis nearly complete. Neither yours nor any man’s death is needed to\r\nconsummate the series of my being and accomplish that which must be done,\r\nbut it requires my own. Do not think that I shall be slow to perform this\r\nsacrifice. I shall quit your vessel on the ice raft which brought me\r\nthither and shall seek the most northern extremity of the globe; I shall\r\ncollect my funeral pile and consume to ashes this miserable frame, that its\r\nremains may afford no light to any curious and unhallowed wretch who would\r\ncreate such another as I have been. I shall die. I shall no longer feel the\r\nagonies which now consume me or be the prey of feelings unsatisfied, yet\r\nunquenched. He is dead who called me into being; and when I shall be no\r\nmore, the very remembrance of us both will speedily vanish. I shall no\r\nlonger see the sun or stars or feel the winds play on my cheeks. Light,\r\nfeeling, and sense will pass away; and in this condition must I find my\r\nhappiness. Some years ago, when the images which this world affords first\r\nopened upon me, when I felt the cheering warmth of summer and heard the\r\nrustling of the leaves and the warbling of the birds, and these were all to\r\nme, I should have wept to die; now it is my only consolation. Polluted by\r\ncrimes and torn by the bitterest remorse, where can I find rest but in\r\ndeath?\r\n\r\n“Farewell! I leave you, and in you the last of humankind whom these\r\neyes will ever behold. Farewell, Frankenstein! If thou wert yet alive\r\nand yet cherished a desire of revenge against me, it would be better\r\nsatiated in my life than in my destruction. But it was not so; thou\r\ndidst seek my extinction, that I might not cause greater wretchedness;\r\nand if yet, in some mode unknown to me, thou hadst not ceased to think\r\nand feel, thou wouldst not desire against me a vengeance greater than\r\nthat which I feel. Blasted as thou wert, my agony was still superior to\r\nthine, for the bitter sting of remorse will not cease to rankle in my\r\nwounds until death shall close them for ever.\r\n\r\n“But soon,” he cried with sad and solemn enthusiasm, “I\r\nshall die, and what I now feel be no longer felt. Soon these burning\r\nmiseries will be extinct. I shall ascend my funeral pile triumphantly and\r\nexult in the agony of the torturing flames. The light of that conflagration\r\nwill fade away; my ashes will be swept into the sea by the winds. My spirit\r\nwill sleep in peace, or if it thinks, it will not surely think thus.\r\nFarewell.”\r\n\r\nHe sprang from the cabin-window as he said this, upon the ice raft\r\nwhich lay close to the vessel. He was soon borne away by the waves and\r\nlost in darkness and distance.\r\n\r\n\r\n\r\n\r\n*** END OF THE PROJECT GUTENBERG EBOOK FRANKENSTEIN; OR, THE MODERN PROMETHEUS ***\r\n\r\n\r\n \r\n\r\nUpdated editions will replace the previous one—the old editions will\r\nbe renamed.\r\n\r\nCreating the works from print editions not protected by U.S. copyright\r\nlaw means that no one owns a United States copyright in these works,\r\nso the Foundation (and you!) can copy and distribute it in the United\r\nStates without permission and without paying copyright\r\nroyalties. Special rules, set forth in the General Terms of Use part\r\nof this license, apply to copying and distributing Project\r\nGutenberg™ electronic works to protect the PROJECT GUTENBERG™\r\nconcept and trademark. Project Gutenberg is a registered trademark,\r\nand may not be used if you charge for an eBook, except by following\r\nthe terms of the trademark license, including paying royalties for use\r\nof the Project Gutenberg trademark. If you do not charge anything for\r\ncopies of this eBook, complying with the trademark license is very\r\neasy. You may use this eBook for nearly any purpose such as creation\r\nof derivative works, reports, performances and research. Project\r\nGutenberg eBooks may be modified and printed and given away—you may\r\ndo practically ANYTHING in the United States with eBooks not protected\r\nby U.S. copyright law. Redistribution is subject to the trademark\r\nlicense, especially commercial redistribution.\r\n\r\n\r\nSTART: FULL LICENSE\r\n\r\nTHE FULL PROJECT GUTENBERG LICENSE\r\n\r\nPLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK\r\n\r\nTo protect the Project Gutenberg™ mission of promoting the free\r\ndistribution of electronic works, by using or distributing this work\r\n(or any other work associated in any way with the phrase “Project\r\nGutenberg”), you agree to comply with all the terms of the Full\r\nProject Gutenberg™ License available with this file or online at\r\nwww.gutenberg.org/license.\r\n\r\nSection 1. General Terms of Use and Redistributing Project Gutenberg™\r\nelectronic works\r\n\r\n1.A. By reading or using any part of this Project Gutenberg™\r\nelectronic work, you indicate that you have read, understand, agree to\r\nand accept all the terms of this license and intellectual property\r\n(trademark/copyright) agreement. If you do not agree to abide by all\r\nthe terms of this agreement, you must cease using and return or\r\ndestroy all copies of Project Gutenberg™ electronic works in your\r\npossession. If you paid a fee for obtaining a copy of or access to a\r\nProject Gutenberg™ electronic work and you do not agree to be bound\r\nby the terms of this agreement, you may obtain a refund from the person\r\nor entity to whom you paid the fee as set forth in paragraph 1.E.8.\r\n\r\n1.B. “Project Gutenberg” is a registered trademark. It may only be\r\nused on or associated in any way with an electronic work by people who\r\nagree to be bound by the terms of this agreement. There are a few\r\nthings that you can do with most Project Gutenberg™ electronic works\r\neven without complying with the full terms of this agreement. See\r\nparagraph 1.C below. There are a lot of things you can do with Project\r\nGutenberg™ electronic works if you follow the terms of this\r\nagreement and help preserve free future access to Project Gutenberg™\r\nelectronic works. See paragraph 1.E below.\r\n\r\n1.C. The Project Gutenberg Literary Archive Foundation (“the\r\nFoundation” or PGLAF), owns a compilation copyright in the collection\r\nof Project Gutenberg™ electronic works. Nearly all the individual\r\nworks in the collection are in the public domain in the United\r\nStates. If an individual work is unprotected by copyright law in the\r\nUnited States and you are located in the United States, we do not\r\nclaim a right to prevent you from copying, distributing, performing,\r\ndisplaying or creating derivative works based on the work as long as\r\nall references to Project Gutenberg are removed. Of course, we hope\r\nthat you will support the Project Gutenberg™ mission of promoting\r\nfree access to electronic works by freely sharing Project Gutenberg™\r\nworks in compliance with the terms of this agreement for keeping the\r\nProject Gutenberg™ name associated with the work. You can easily\r\ncomply with the terms of this agreement by keeping this work in the\r\nsame format with its attached full Project Gutenberg™ License when\r\nyou share it without charge with others.\r\n\r\n1.D. The copyright laws of the place where you are located also govern\r\nwhat you can do with this work. Copyright laws in most countries are\r\nin a constant state of change. If you are outside the United States,\r\ncheck the laws of your country in addition to the terms of this\r\nagreement before downloading, copying, displaying, performing,\r\ndistributing or creating derivative works based on this work or any\r\nother Project Gutenberg™ work. The Foundation makes no\r\nrepresentations concerning the copyright status of any work in any\r\ncountry other than the United States.\r\n\r\n1.E. Unless you have removed all references to Project Gutenberg:\r\n\r\n1.E.1. The following sentence, with active links to, or other\r\nimmediate access to, the full Project Gutenberg™ License must appear\r\nprominently whenever any copy of a Project Gutenberg™ work (any work\r\non which the phrase “Project Gutenberg” appears, or with which the\r\nphrase “Project Gutenberg” is associated) is accessed, displayed,\r\nperformed, viewed, copied or distributed:\r\n\r\n This eBook is for the use of anyone anywhere in the United States and most\r\n other parts of the world at no cost and with almost no restrictions\r\n whatsoever. You may copy it, give it away or re-use it under the terms\r\n of the Project Gutenberg License included with this eBook or online\r\n at www.gutenberg.org. If you\r\n are not located in the United States, you will have to check the laws\r\n of the country where you are located before using this eBook.\r\n \r\n1.E.2. If an individual Project Gutenberg™ electronic work is\r\nderived from texts not protected by U.S. copyright law (does not\r\ncontain a notice indicating that it is posted with permission of the\r\ncopyright holder), the work can be copied and distributed to anyone in\r\nthe United States without paying any fees or charges. If you are\r\nredistributing or providing access to a work with the phrase “Project\r\nGutenberg” associated with or appearing on the work, you must comply\r\neither with the requirements of paragraphs 1.E.1 through 1.E.7 or\r\nobtain permission for the use of the work and the Project Gutenberg™\r\ntrademark as set forth in paragraphs 1.E.8 or 1.E.9.\r\n\r\n1.E.3. If an individual Project Gutenberg™ electronic work is posted\r\nwith the permission of the copyright holder, your use and distribution\r\nmust comply with both paragraphs 1.E.1 through 1.E.7 and any\r\nadditional terms imposed by the copyright holder. Additional terms\r\nwill be linked to the Project Gutenberg™ License for all works\r\nposted with the permission of the copyright holder found at the\r\nbeginning of this work.\r\n\r\n1.E.4. Do not unlink or detach or remove the full Project Gutenberg™\r\nLicense terms from this work, or any files containing a part of this\r\nwork or any other work associated with Project Gutenberg™.\r\n\r\n1.E.5. Do not copy, display, perform, distribute or redistribute this\r\nelectronic work, or any part of this electronic work, without\r\nprominently displaying the sentence set forth in paragraph 1.E.1 with\r\nactive links or immediate access to the full terms of the Project\r\nGutenberg™ License.\r\n\r\n1.E.6. You may convert to and distribute this work in any binary,\r\ncompressed, marked up, nonproprietary or proprietary form, including\r\nany word processing or hypertext form. However, if you provide access\r\nto or distribute copies of a Project Gutenberg™ work in a format\r\nother than “Plain Vanilla ASCII” or other format used in the official\r\nversion posted on the official Project Gutenberg™ website\r\n(www.gutenberg.org), you must, at no additional cost, fee or expense\r\nto the user, provide a copy, a means of exporting a copy, or a means\r\nof obtaining a copy upon request, of the work in its original “Plain\r\nVanilla ASCII” or other form. Any alternate format must include the\r\nfull Project Gutenberg™ License as specified in paragraph 1.E.1.\r\n\r\n1.E.7. Do not charge a fee for access to, viewing, displaying,\r\nperforming, copying or distributing any Project Gutenberg™ works\r\nunless you comply with paragraph 1.E.8 or 1.E.9.\r\n\r\n1.E.8. You may charge a reasonable fee for copies of or providing\r\naccess to or distributing Project Gutenberg™ electronic works\r\nprovided that:\r\n\r\n • You pay a royalty fee of 20% of the gross profits you derive from\r\n the use of Project Gutenberg™ works calculated using the method\r\n you already use to calculate your applicable taxes. The fee is owed\r\n to the owner of the Project Gutenberg™ trademark, but he has\r\n agreed to donate royalties under this paragraph to the Project\r\n Gutenberg Literary Archive Foundation. Royalty payments must be paid\r\n within 60 days following each date on which you prepare (or are\r\n legally required to prepare) your periodic tax returns. Royalty\r\n payments should be clearly marked as such and sent to the Project\r\n Gutenberg Literary Archive Foundation at the address specified in\r\n Section 4, “Information about donations to the Project Gutenberg\r\n Literary Archive Foundation.”\r\n \r\n • You provide a full refund of any money paid by a user who notifies\r\n you in writing (or by e-mail) within 30 days of receipt that s/he\r\n does not agree to the terms of the full Project Gutenberg™\r\n License. You must require such a user to return or destroy all\r\n copies of the works possessed in a physical medium and discontinue\r\n all use of and all access to other copies of Project Gutenberg™\r\n works.\r\n \r\n • You provide, in accordance with paragraph 1.F.3, a full refund of\r\n any money paid for a work or a replacement copy, if a defect in the\r\n electronic work is discovered and reported to you within 90 days of\r\n receipt of the work.\r\n \r\n • You comply with all other terms of this agreement for free\r\n distribution of Project Gutenberg™ works.\r\n \r\n\r\n1.E.9. If you wish to charge a fee or distribute a Project\r\nGutenberg™ electronic work or group of works on different terms than\r\nare set forth in this agreement, you must obtain permission in writing\r\nfrom the Project Gutenberg Literary Archive Foundation, the manager of\r\nthe Project Gutenberg™ trademark. Contact the Foundation as set\r\nforth in Section 3 below.\r\n\r\n1.F.\r\n\r\n1.F.1. Project Gutenberg volunteers and employees expend considerable\r\neffort to identify, do copyright research on, transcribe and proofread\r\nworks not protected by U.S. copyright law in creating the Project\r\nGutenberg™ collection. Despite these efforts, Project Gutenberg™\r\nelectronic works, and the medium on which they may be stored, may\r\ncontain “Defects,” such as, but not limited to, incomplete, inaccurate\r\nor corrupt data, transcription errors, a copyright or other\r\nintellectual property infringement, a defective or damaged disk or\r\nother medium, a computer virus, or computer codes that damage or\r\ncannot be read by your equipment.\r\n\r\n1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the “Right\r\nof Replacement or Refund” described in paragraph 1.F.3, the Project\r\nGutenberg Literary Archive Foundation, the owner of the Project\r\nGutenberg™ trademark, and any other party distributing a Project\r\nGutenberg™ electronic work under this agreement, disclaim all\r\nliability to you for damages, costs and expenses, including legal\r\nfees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT\r\nLIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE\r\nPROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE\r\nTRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE\r\nLIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR\r\nINCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH\r\nDAMAGE.\r\n\r\n1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a\r\ndefect in this electronic work within 90 days of receiving it, you can\r\nreceive a refund of the money (if any) you paid for it by sending a\r\nwritten explanation to the person you received the work from. If you\r\nreceived the work on a physical medium, you must return the medium\r\nwith your written explanation. The person or entity that provided you\r\nwith the defective work may elect to provide a replacement copy in\r\nlieu of a refund. If you received the work electronically, the person\r\nor entity providing it to you may choose to give you a second\r\nopportunity to receive the work electronically in lieu of a refund. If\r\nthe second copy is also defective, you may demand a refund in writing\r\nwithout further opportunities to fix the problem.\r\n\r\n1.F.4. Except for the limited right of replacement or refund set forth\r\nin paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO\r\nOTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT\r\nLIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.\r\n\r\n1.F.5. Some states do not allow disclaimers of certain implied\r\nwarranties or the exclusion or limitation of certain types of\r\ndamages. If any disclaimer or limitation set forth in this agreement\r\nviolates the law of the state applicable to this agreement, the\r\nagreement shall be interpreted to make the maximum disclaimer or\r\nlimitation permitted by the applicable state law. The invalidity or\r\nunenforceability of any provision of this agreement shall not void the\r\nremaining provisions.\r\n\r\n1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the\r\ntrademark owner, any agent or employee of the Foundation, anyone\r\nproviding copies of Project Gutenberg™ electronic works in\r\naccordance with this agreement, and any volunteers associated with the\r\nproduction, promotion and distribution of Project Gutenberg™\r\nelectronic works, harmless from all liability, costs and expenses,\r\nincluding legal fees, that arise directly or indirectly from any of\r\nthe following which you do or cause to occur: (a) distribution of this\r\nor any Project Gutenberg™ work, (b) alteration, modification, or\r\nadditions or deletions to any Project Gutenberg™ work, and (c) any\r\nDefect you cause.\r\n\r\nSection 2. Information about the Mission of Project Gutenberg™\r\n\r\nProject Gutenberg™ is synonymous with the free distribution of\r\nelectronic works in formats readable by the widest variety of\r\ncomputers including obsolete, old, middle-aged and new computers. It\r\nexists because of the efforts of hundreds of volunteers and donations\r\nfrom people in all walks of life.\r\n\r\nVolunteers and financial support to provide volunteers with the\r\nassistance they need are critical to reaching Project Gutenberg™’s\r\ngoals and ensuring that the Project Gutenberg™ collection will\r\nremain freely available for generations to come. In 2001, the Project\r\nGutenberg Literary Archive Foundation was created to provide a secure\r\nand permanent future for Project Gutenberg™ and future\r\ngenerations. To learn more about the Project Gutenberg Literary\r\nArchive Foundation and how your efforts and donations can help, see\r\nSections 3 and 4 and the Foundation information page at www.gutenberg.org.\r\n\r\nSection 3. Information about the Project Gutenberg Literary Archive Foundation\r\n\r\nThe Project Gutenberg Literary Archive Foundation is a non-profit\r\n501(c)(3) educational corporation organized under the laws of the\r\nstate of Mississippi and granted tax exempt status by the Internal\r\nRevenue Service. The Foundation’s EIN or federal tax identification\r\nnumber is 64-6221541. Contributions to the Project Gutenberg Literary\r\nArchive Foundation are tax deductible to the full extent permitted by\r\nU.S. federal laws and your state’s laws.\r\n\r\nThe Foundation’s business office is located at 809 North 1500 West,\r\nSalt Lake City, UT 84116, (801) 596-1887. Email contact links and up\r\nto date contact information can be found at the Foundation’s website\r\nand official page at www.gutenberg.org/contact\r\n\r\nSection 4. Information about Donations to the Project Gutenberg\r\nLiterary Archive Foundation\r\n\r\nProject Gutenberg™ depends upon and cannot survive without widespread\r\npublic support and donations to carry out its mission of\r\nincreasing the number of public domain and licensed works that can be\r\nfreely distributed in machine-readable form accessible by the widest\r\narray of equipment including outdated equipment. Many small donations\r\n($1 to $5,000) are particularly important to maintaining tax exempt\r\nstatus with the IRS.\r\n\r\nThe Foundation is committed to complying with the laws regulating\r\ncharities and charitable donations in all 50 states of the United\r\nStates. Compliance requirements are not uniform and it takes a\r\nconsiderable effort, much paperwork and many fees to meet and keep up\r\nwith these requirements. We do not solicit donations in locations\r\nwhere we have not received written confirmation of compliance. To SEND\r\nDONATIONS or determine the status of compliance for any particular state\r\nvisit www.gutenberg.org/donate.\r\n\r\nWhile we cannot and do not solicit contributions from states where we\r\nhave not met the solicitation requirements, we know of no prohibition\r\nagainst accepting unsolicited donations from donors in such states who\r\napproach us with offers to donate.\r\n\r\nInternational donations are gratefully accepted, but we cannot make\r\nany statements concerning tax treatment of donations received from\r\noutside the United States. U.S. laws alone swamp our small staff.\r\n\r\nPlease check the Project Gutenberg web pages for current donation\r\nmethods and addresses. Donations are accepted in a number of other\r\nways including checks, online payments and credit card donations. To\r\ndonate, please visit: www.gutenberg.org/donate.\r\n\r\nSection 5. General Information About Project Gutenberg™ electronic works\r\n\r\nProfessor Michael S. Hart was the originator of the Project\r\nGutenberg™ concept of a library of electronic works that could be\r\nfreely shared with anyone. For forty years, he produced and\r\ndistributed Project Gutenberg™ eBooks with only a loose network of\r\nvolunteer support.\r\n\r\nProject Gutenberg™ eBooks are often created from several printed\r\neditions, all of which are confirmed as not protected by copyright in\r\nthe U.S. unless a copyright notice is included. Thus, we do not\r\nnecessarily keep eBooks in compliance with any particular paper\r\nedition.\r\n\r\nMost people start at our website which has the main PG search\r\nfacility: www.gutenberg.org.\r\n\r\nThis website includes information about Project Gutenberg™,\r\nincluding how to make donations to the Project Gutenberg Literary\r\nArchive Foundation, how to help produce our new eBooks, and how to\r\nsubscribe to our email newsletter to hear about new eBooks.\r\n\r\n\r"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZX8k78tUCuL2FhVLxaXjykW2x58Nlx03HpMwXKlimuOLhAdDh+6S/EYN9l56r6nvuFzq56bTvyD7YdSJhP41Cg=="}],"memo":""},"metadata":{"timestamp":"1732725080"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Add","args":["The Project Gutenberg eBook of Frankenstein; Or, The Modern Prometheus\r\n \r\nThis ebook is for the use of anyone anywhere in the United States and\r\nmost other parts of the world at no cost and with almost no restrictions\r\nwhatsoever. You may copy it, give it away or re-use it under the terms\r\nof the Project Gutenberg License included with this ebook or online\r\nat www.gutenberg.org. If you are not located in the United States,\r\nyou will have to check the laws of the country where you are located\r\nbefore using this eBook.\r\n\r\nTitle: Frankenstein; Or, The Modern Prometheus\r\n\r\nAuthor: Mary Wollstonecraft Shelley\r\n\r\nRelease date: October 1, 1993 [eBook #84]\r\n Most recently updated: November 5, 2024\r\n\r\nLanguage: English\r\n\r\nCredits: Judith Boss, Christy Phillips, Lynn Hanninen and David Meltzer. HTML version by Al Haines.\r\n Further corrections by Menno de Leeuw.\r\n\r\n\r\n*** START OF THE PROJECT GUTENBERG EBOOK FRANKENSTEIN; OR, THE MODERN PROMETHEUS ***\r\n\r\nFrankenstein;\r\n\r\nor, the Modern Prometheus\r\n\r\nby Mary Wollstonecraft (Godwin) Shelley\r\n\r\n\r\n CONTENTS\r\n\r\n Letter 1\r\n Letter 2\r\n Letter 3\r\n Letter 4\r\n Chapter 1\r\n Chapter 2\r\n Chapter 3\r\n Chapter 4\r\n Chapter 5\r\n Chapter 6\r\n Chapter 7\r\n Chapter 8\r\n Chapter 9\r\n Chapter 10\r\n Chapter 11\r\n Chapter 12\r\n Chapter 13\r\n Chapter 14\r\n Chapter 15\r\n Chapter 16\r\n Chapter 17\r\n Chapter 18\r\n Chapter 19\r\n Chapter 20\r\n Chapter 21\r\n Chapter 22\r\n Chapter 23\r\n Chapter 24\r\n\r\n\r\n\r\n\r\nLetter 1\r\n\r\n_To Mrs. Saville, England._\r\n\r\n\r\nSt. Petersburgh, Dec. 11th, 17—.\r\n\r\n\r\nYou will rejoice to hear that no disaster has accompanied the\r\ncommencement of an enterprise which you have regarded with such evil\r\nforebodings. I arrived here yesterday, and my first task is to assure\r\nmy dear sister of my welfare and increasing confidence in the success\r\nof my undertaking.\r\n\r\nI am already far north of London, and as I walk in the streets of\r\nPetersburgh, I feel a cold northern breeze play upon my cheeks, which\r\nbraces my nerves and fills me with delight. Do you understand this\r\nfeeling? This breeze, which has travelled from the regions towards\r\nwhich I am advancing, gives me a foretaste of those icy climes.\r\nInspirited by this wind of promise, my daydreams become more fervent\r\nand vivid. I try in vain to be persuaded that the pole is the seat of\r\nfrost and desolation; it ever presents itself to my imagination as the\r\nregion of beauty and delight. There, Margaret, the sun is for ever\r\nvisible, its broad disk just skirting the horizon and diffusing a\r\nperpetual splendour. There—for with your leave, my sister, I will put\r\nsome trust in preceding navigators—there snow and frost are banished;\r\nand, sailing over a calm sea, we may be wafted to a land surpassing in\r\nwonders and in beauty every region hitherto discovered on the habitable\r\nglobe. Its productions and features may be without example, as the\r\nphenomena of the heavenly bodies undoubtedly are in those undiscovered\r\nsolitudes. What may not be expected in a country of eternal light? I\r\nmay there discover the wondrous power which attracts the needle and may\r\nregulate a thousand celestial observations that require only this\r\nvoyage to render their seeming eccentricities consistent for ever. I\r\nshall satiate my ardent curiosity with the sight of a part of the world\r\nnever before visited, and may tread a land never before imprinted by\r\nthe foot of man. These are my enticements, and they are sufficient to\r\nconquer all fear of danger or death and to induce me to commence this\r\nlaborious voyage with the joy a child feels when he embarks in a little\r\nboat, with his holiday mates, on an expedition of discovery up his\r\nnative river. But supposing all these conjectures to be false, you\r\ncannot contest the inestimable benefit which I shall confer on all\r\nmankind, to the last generation, by discovering a passage near the pole\r\nto those countries, to reach which at present so many months are\r\nrequisite; or by ascertaining the secret of the magnet, which, if at\r\nall possible, can only be effected by an undertaking such as mine.\r\n\r\nThese reflections have dispelled the agitation with which I began my\r\nletter, and I feel my heart glow with an enthusiasm which elevates me\r\nto heaven, for nothing contributes so much to tranquillise the mind as\r\na steady purpose—a point on which the soul may fix its intellectual\r\neye. This expedition has been the favourite dream of my early years. I\r\nhave read with ardour the accounts of the various voyages which have\r\nbeen made in the prospect of arriving at the North Pacific Ocean\r\nthrough the seas which surround the pole. You may remember that a\r\nhistory of all the voyages made for purposes of discovery composed the\r\nwhole of our good Uncle Thomas’ library. My education was neglected,\r\nyet I was passionately fond of reading. These volumes were my study\r\nday and night, and my familiarity with them increased that regret which\r\nI had felt, as a child, on learning that my father’s dying injunction\r\nhad forbidden my uncle to allow me to embark in a seafaring life.\r\n\r\nThese visions faded when I perused, for the first time, those poets\r\nwhose effusions entranced my soul and lifted it to heaven. I also\r\nbecame a poet and for one year lived in a paradise of my own creation;\r\nI imagined that I also might obtain a niche in the temple where the\r\nnames of Homer and Shakespeare are consecrated. You are well\r\nacquainted with my failure and how heavily I bore the disappointment.\r\nBut just at that time I inherited the fortune of my cousin, and my\r\nthoughts were turned into the channel of their earlier bent.\r\n\r\nSix years have passed since I resolved on my present undertaking. I\r\ncan, even now, remember the hour from which I dedicated myself to this\r\ngreat enterprise. I commenced by inuring my body to hardship. I\r\naccompanied the whale-fishers on several expeditions to the North Sea;\r\nI voluntarily endured cold, famine, thirst, and want of sleep; I often\r\nworked harder than the common sailors during the day and devoted my\r\nnights to the study of mathematics, the theory of medicine, and those\r\nbranches of physical science from which a naval adventurer might derive\r\nthe greatest practical advantage. Twice I actually hired myself as an\r\nunder-mate in a Greenland whaler, and acquitted myself to admiration. I\r\nmust own I felt a little proud when my captain offered me the second\r\ndignity in the vessel and entreated me to remain with the greatest\r\nearnestness, so valuable did he consider my services.\r\n\r\nAnd now, dear Margaret, do I not deserve to accomplish some great purpose?\r\nMy life might have been passed in ease and luxury, but I preferred glory to\r\nevery enticement that wealth placed in my path. Oh, that some encouraging\r\nvoice would answer in the affirmative! My courage and my resolution is\r\nfirm; but my hopes fluctuate, and my spirits are often depressed. I am\r\nabout to proceed on a long and difficult voyage, the emergencies of which\r\nwill demand all my fortitude: I am required not only to raise the spirits\r\nof others, but sometimes to sustain my own, when theirs are failing.\r\n\r\nThis is the most favourable period for travelling in Russia. They fly\r\nquickly over the snow in their sledges; the motion is pleasant, and, in\r\nmy opinion, far more agreeable than that of an English stagecoach. The\r\ncold is not excessive, if you are wrapped in furs—a dress which I have\r\nalready adopted, for there is a great difference between walking the\r\ndeck and remaining seated motionless for hours, when no exercise\r\nprevents the blood from actually freezing in your veins. I have no\r\nambition to lose my life on the post-road between St. Petersburgh and\r\nArchangel.\r\n\r\nI shall depart for the latter town in a fortnight or three weeks; and my\r\nintention is to hire a ship there, which can easily be done by paying the\r\ninsurance for the owner, and to engage as many sailors as I think necessary\r\namong those who are accustomed to the whale-fishing. I do not intend to\r\nsail until the month of June; and when shall I return? Ah, dear sister, how\r\ncan I answer this question? If I succeed, many, many months, perhaps years,\r\nwill pass before you and I may meet. If I fail, you will see me again soon,\r\nor never.\r\n\r\nFarewell, my dear, excellent Margaret. Heaven shower down blessings on you,\r\nand save me, that I may again and again testify my gratitude for all your\r\nlove and kindness.\r\n\r\nYour affectionate brother,\r\n\r\nR. Walton\r\n\r\n\r\n\r\n\r\nLetter 2\r\n\r\n_To Mrs. Saville, England._\r\n\r\nArchangel, 28th March, 17—.\r\n\r\n\r\nHow slowly the time passes here, encompassed as I am by frost and snow!\r\nYet a second step is taken towards my enterprise. I have hired a\r\nvessel and am occupied in collecting my sailors; those whom I have\r\nalready engaged appear to be men on whom I can depend and are certainly\r\npossessed of dauntless courage.\r\n\r\nBut I have one want which I have never yet been able to satisfy, and the\r\nabsence of the object of which I now feel as a most severe evil, I have no\r\nfriend, Margaret: when I am glowing with the enthusiasm of success, there\r\nwill be none to participate my joy; if I am assailed by disappointment, no\r\none will endeavour to sustain me in dejection. I shall commit my thoughts\r\nto paper, it is true; but that is a poor medium for the communication of\r\nfeeling. I desire the company of a man who could sympathise with me, whose\r\neyes would reply to mine. You may deem me romantic, my dear sister, but I\r\nbitterly feel the want of a friend. I have no one near me, gentle yet\r\ncourageous, possessed of a cultivated as well as of a capacious mind, whose\r\ntastes are like my own, to approve or amend my plans. How would such a\r\nfriend repair the faults of your poor brother! I am too ardent in execution\r\nand too impatient of difficulties. But it is a still greater evil to me\r\nthat I am self-educated: for the first fourteen years of my life I ran wild\r\non a common and read nothing but our Uncle Thomas’ books of voyages.\r\nAt that age I became acquainted with the celebrated poets of our own\r\ncountry; but it was only when it had ceased to be in my power to derive its\r\nmost important benefits from such a conviction that I perceived the\r\nnecessity of becoming acquainted with more languages than that of my native\r\ncountry. Now I am twenty-eight and am in reality more illiterate than many\r\nschoolboys of fifteen. It is true that I have thought more and that my\r\ndaydreams are more extended and magnificent, but they want (as the painters\r\ncall it) _keeping;_ and I greatly need a friend who would have sense\r\nenough not to despise me as romantic, and affection enough for me to\r\nendeavour to regulate my mind.\r\n\r\nWell, these are useless complaints; I shall certainly find no friend on the\r\nwide ocean, nor even here in Archangel, among merchants and seamen. Yet\r\nsome feelings, unallied to the dross of human nature, beat even in these\r\nrugged bosoms. My lieutenant, for instance, is a man of wonderful courage\r\nand enterprise; he is madly desirous of glory, or rather, to word my phrase\r\nmore characteristically, of advancement in his profession. He is an\r\nEnglishman, and in the midst of national and professional prejudices,\r\nunsoftened by cultivation, retains some of the noblest endowments of\r\nhumanity. I first became acquainted with him on board a whale vessel;\r\nfinding that he was unemployed in this city, I easily engaged him to assist\r\nin my enterprise.\r\n\r\nThe master is a person of an excellent disposition and is remarkable in the\r\nship for his gentleness and the mildness of his discipline. This\r\ncircumstance, added to his well-known integrity and dauntless courage, made\r\nme very desirous to engage him. A youth passed in solitude, my best years\r\nspent under your gentle and feminine fosterage, has so refined the\r\ngroundwork of my character that I cannot overcome an intense distaste to\r\nthe usual brutality exercised on board ship: I have never believed it to be\r\nnecessary, and when I heard of a mariner equally noted for his kindliness\r\nof heart and the respect and obedience paid to him by his crew, I felt\r\nmyself peculiarly fortunate in being able to secure his services. I heard\r\nof him first in rather a romantic manner, from a lady who owes to him the\r\nhappiness of her life. This, briefly, is his story. Some years ago he loved\r\na young Russian lady of moderate fortune, and having amassed a considerable\r\nsum in prize-money, the father of the girl consented to the match. He saw\r\nhis mistress once before the destined ceremony; but she was bathed in\r\ntears, and throwing herself at his feet, entreated him to spare her,\r\nconfessing at the same time that she loved another, but that he was poor,\r\nand that her father would never consent to the union. My generous friend\r\nreassured the suppliant, and on being informed of the name of her lover,\r\ninstantly abandoned his pursuit. He had already bought a farm with his\r\nmoney, on which he had designed to pass the remainder of his life; but he\r\nbestowed the whole on his rival, together with the remains of his\r\nprize-money to purchase stock, and then himself solicited the young\r\nwoman’s father to consent to her marriage with her lover. But the old\r\nman decidedly refused, thinking himself bound in honour to my friend, who,\r\nwhen he found the father inexorable, quitted his country, nor returned\r\nuntil he heard that his former mistress was married according to her\r\ninclinations. “What a noble fellow!” you will exclaim. He is\r\nso; but then he is wholly uneducated: he is as silent as a Turk, and a kind\r\nof ignorant carelessness attends him, which, while it renders his conduct\r\nthe more astonishing, detracts from the interest and sympathy which\r\notherwise he would command.\r\n\r\nYet do not suppose, because I complain a little or because I can\r\nconceive a consolation for my toils which I may never know, that I am\r\nwavering in my resolutions. Those are as fixed as fate, and my voyage\r\nis only now delayed until the weather shall permit my embarkation. The\r\nwinter has been dreadfully severe, but the spring promises well, and it\r\nis considered as a remarkably early season, so that perhaps I may sail\r\nsooner than I expected. I shall do nothing rashly: you know me\r\nsufficiently to confide in my prudence and considerateness whenever the\r\nsafety of others is committed to my care.\r\n\r\nI cannot describe to you my sensations on the near prospect of my\r\nundertaking. It is impossible to communicate to you a conception of\r\nthe trembling sensation, half pleasurable and half fearful, with which\r\nI am preparing to depart. I am going to unexplored regions, to “the\r\nland of mist and snow,” but I shall kill no albatross; therefore do not\r\nbe alarmed for my safety or if I should come back to you as worn and\r\nwoeful as the “Ancient Mariner.” You will smile at my allusion, but I\r\nwill disclose a secret. I have often attributed my attachment to, my\r\npassionate enthusiasm for, the dangerous mysteries of ocean to that\r\nproduction of the most imaginative of modern poets. There is something\r\nat work in my soul which I do not understand. I am practically\r\nindustrious—painstaking, a workman to execute with perseverance and\r\nlabour—but besides this there is a love for the marvellous, a belief\r\nin the marvellous, intertwined in all my projects, which hurries me out\r\nof the common pathways of men, even to the wild sea and unvisited\r\nregions I am about to explore.\r\n\r\nBut to return to dearer considerations. Shall I meet you again, after\r\nhaving traversed immense seas, and returned by the most southern cape of\r\nAfrica or America? I dare not expect such success, yet I cannot bear to\r\nlook on the reverse of the picture. Continue for the present to write to\r\nme by every opportunity: I may receive your letters on some occasions when\r\nI need them most to support my spirits. I love you very tenderly. \r\nRemember me with affection, should you never hear from me again.\r\n\r\nYour affectionate brother,\r\n Robert Walton\r\n\r\n\r\n\r\n\r\nLetter 3\r\n\r\n_To Mrs. Saville, England._\r\n\r\nJuly 7th, 17—.\r\n\r\n\r\nMy dear Sister,\r\n\r\nI write a few lines in haste to say that I am safe—and well advanced\r\non my voyage. This letter will reach England by a merchantman now on\r\nits homeward voyage from Archangel; more fortunate than I, who may not\r\nsee my native land, perhaps, for many years. I am, however, in good\r\nspirits: my men are bold and apparently firm of purpose, nor do the\r\nfloating sheets of ice that continually pass us, indicating the dangers\r\nof the region towards which we are advancing, appear to dismay them. We\r\nhave already reached a very high latitude; but it is the height of\r\nsummer, and although not so warm as in England, the southern gales,\r\nwhich blow us speedily towards those shores which I so ardently desire\r\nto attain, breathe a degree of renovating warmth which I had not\r\nexpected.\r\n\r\nNo incidents have hitherto befallen us that would make a figure in a\r\nletter. One or two stiff gales and the springing of a leak are\r\naccidents which experienced navigators scarcely remember to record, and\r\nI shall be well content if nothing worse happen to us during our voyage.\r\n\r\nAdieu, my dear Margaret. Be assured that for my own sake, as well as\r\nyours, I will not rashly encounter danger. I will be cool,\r\npersevering, and prudent.\r\n\r\nBut success _shall_ crown my endeavours. Wherefore not? Thus far I\r\nhave gone, tracing a secure way over the pathless seas, the very stars\r\nthemselves being witnesses and testimonies of my triumph. Why not\r\nstill proceed over the untamed yet obedient element? What can stop the\r\ndetermined heart and resolved will of man?\r\n\r\nMy swelling heart involuntarily pours itself out thus. But I must\r\nfinish. Heaven bless my beloved sister!\r\n\r\nR.W.\r\n\r\n\r\n\r\n\r\nLetter 4\r\n\r\n\r\n_To Mrs. Saville, England._\r\n\r\nAugust 5th, 17—.\r\n\r\nSo strange an accident has happened to us that I cannot forbear\r\nrecording it, although it is very probable that you will see me before\r\nthese papers can come into your possession.\r\n\r\nLast Monday (July 31st) we were nearly surrounded by ice, which closed\r\nin the ship on all sides, scarcely leaving her the sea-room in which\r\nshe floated. Our situation was somewhat dangerous, especially as we\r\nwere compassed round by a very thick fog. We accordingly lay to,\r\nhoping that some change would take place in the atmosphere and weather.\r\n\r\nAbout two o’clock the mist cleared away, and we beheld, stretched out\r\nin every direction, vast and irregular plains of ice, which seemed to\r\nhave no end. Some of my comrades groaned, and my own mind began to\r\ngrow watchful with anxious thoughts, when a strange sight suddenly\r\nattracted our attention and diverted our solicitude from our own\r\nsituation. We perceived a low carriage, fixed on a sledge and drawn by\r\ndogs, pass on towards the north, at the distance of half a mile; a\r\nbeing which had the shape of a man, but apparently of gigantic stature,\r\nsat in the sledge and guided the dogs. We watched the rapid progress\r\nof the traveller with our telescopes until he was lost among the\r\ndistant inequalities of the ice.\r\n\r\nThis appearance excited our unqualified wonder. We were, as we believed,\r\nmany hundred miles from any land; but this apparition seemed to denote that\r\nit was not, in reality, so distant as we had supposed. Shut in, however, by\r\nice, it was impossible to follow his track, which we had observed with the\r\ngreatest attention.\r\n\r\nAbout two hours after this occurrence we heard the ground sea, and before\r\nnight the ice broke and freed our ship. We, however, lay to until the\r\nmorning, fearing to encounter in the dark those large loose masses which\r\nfloat about after the breaking up of the ice. I profited of this time to\r\nrest for a few hours.\r\n\r\nIn the morning, however, as soon as it was light, I went upon deck and\r\nfound all the sailors busy on one side of the vessel, apparently\r\ntalking to someone in the sea. It was, in fact, a sledge, like that we\r\nhad seen before, which had drifted towards us in the night on a large\r\nfragment of ice. Only one dog remained alive; but there was a human\r\nbeing within it whom the sailors were persuading to enter the vessel.\r\nHe was not, as the other traveller seemed to be, a savage inhabitant of\r\nsome undiscovered island, but a European. When I appeared on deck the\r\nmaster said, “Here is our captain, and he will not allow you to perish\r\non the open sea.”\r\n\r\nOn perceiving me, the stranger addressed me in English, although with a\r\nforeign accent. “Before I come on board your vessel,” said he,\r\n“will you have the kindness to inform me whither you are bound?”\r\n\r\nYou may conceive my astonishment on hearing such a question addressed\r\nto me from a man on the brink of destruction and to whom I should have\r\nsupposed that my vessel would have been a resource which he would not\r\nhave exchanged for the most precious wealth the earth can afford. I\r\nreplied, however, that we were on a voyage of discovery towards the\r\nnorthern pole.\r\n\r\nUpon hearing this he appeared satisfied and consented to come on board.\r\nGood God! Margaret, if you had seen the man who thus capitulated for\r\nhis safety, your surprise would have been boundless. His limbs were\r\nnearly frozen, and his body dreadfully emaciated by fatigue and\r\nsuffering. I never saw a man in so wretched a condition. We attempted\r\nto carry him into the cabin, but as soon as he had quitted the fresh\r\nair he fainted. We accordingly brought him back to the deck and\r\nrestored him to animation by rubbing him with brandy and forcing him to\r\nswallow a small quantity. As soon as he showed signs of life we\r\nwrapped him up in blankets and placed him near the chimney of the\r\nkitchen stove. By slow degrees he recovered and ate a little soup,\r\nwhich restored him wonderfully.\r\n\r\nTwo days passed in this manner before he was able to speak, and I often\r\nfeared that his sufferings had deprived him of understanding. When he\r\nhad in some measure recovered, I removed him to my own cabin and\r\nattended on him as much as my duty would permit. I never saw a more\r\ninteresting creature: his eyes have generally an expression of\r\nwildness, and even madness, but there are moments when, if anyone\r\nperforms an act of kindness towards him or does him any the most\r\ntrifling service, his whole countenance is lighted up, as it were, with\r\na beam of benevolence and sweetness that I never saw equalled. But he\r\nis generally melancholy and despairing, and sometimes he gnashes his\r\nteeth, as if impatient of the weight of woes that oppresses him.\r\n\r\nWhen my guest was a little recovered I had great trouble to keep off\r\nthe men, who wished to ask him a thousand questions; but I would not\r\nallow him to be tormented by their idle curiosity, in a state of body\r\nand mind whose restoration evidently depended upon entire repose.\r\nOnce, however, the lieutenant asked why he had come so far upon the ice\r\nin so strange a vehicle.\r\n\r\nHis countenance instantly assumed an aspect of the deepest gloom, and\r\nhe replied, “To seek one who fled from me.”\r\n\r\n“And did the man whom you pursued travel in the same fashion?”\r\n\r\n“Yes.”\r\n\r\n“Then I fancy we have seen him, for the day before we picked you up we\r\nsaw some dogs drawing a sledge, with a man in it, across the ice.”\r\n\r\nThis aroused the stranger’s attention, and he asked a multitude of\r\nquestions concerning the route which the dæmon, as he called him, had\r\npursued. Soon after, when he was alone with me, he said, “I have,\r\ndoubtless, excited your curiosity, as well as that of these good\r\npeople; but you are too considerate to make inquiries.”\r\n\r\n“Certainly; it would indeed be very impertinent and inhuman in me to\r\ntrouble you with any inquisitiveness of mine.”\r\n\r\n“And yet you rescued me from a strange and perilous situation; you have\r\nbenevolently restored me to life.”\r\n\r\nSoon after this he inquired if I thought that the breaking up of the\r\nice had destroyed the other sledge. I replied that I could not answer\r\nwith any degree of certainty, for the ice had not broken until near\r\nmidnight, and the traveller might have arrived at a place of safety\r\nbefore that time; but of this I could not judge.\r\n\r\nFrom this time a new spirit of life animated the decaying frame of the\r\nstranger. He manifested the greatest eagerness to be upon deck to watch for\r\nthe sledge which had before appeared; but I have persuaded him to remain in\r\nthe cabin, for he is far too weak to sustain the rawness of the atmosphere.\r\nI have promised that someone should watch for him and give him instant\r\nnotice if any new object should appear in sight.\r\n\r\nSuch is my journal of what relates to this strange occurrence up to the\r\npresent day. The stranger has gradually improved in health but is very\r\nsilent and appears uneasy when anyone except myself enters his cabin.\r\nYet his manners are so conciliating and gentle that the sailors are all\r\ninterested in him, although they have had very little communication\r\nwith him. For my own part, I begin to love him as a brother, and his\r\nconstant and deep grief fills me with sympathy and compassion. He must\r\nhave been a noble creature in his better days, being even now in wreck\r\nso attractive and amiable.\r\n\r\nI said in one of my letters, my dear Margaret, that I should find no friend\r\non the wide ocean; yet I have found a man who, before his spirit had been\r\nbroken by misery, I should have been happy to have possessed as the brother\r\nof my heart.\r\n\r\nI shall continue my journal concerning the stranger at intervals,\r\nshould I have any fresh incidents to record.\r\n\r\n\r\n\r\n\r\nAugust 13th, 17—.\r\n\r\n\r\nMy affection for my guest increases every day. He excites at once my\r\nadmiration and my pity to an astonishing degree. How can I see so\r\nnoble a creature destroyed by misery without feeling the most poignant\r\ngrief? He is so gentle, yet so wise; his mind is so cultivated, and\r\nwhen he speaks, although his words are culled with the choicest art,\r\nyet they flow with rapidity and unparalleled eloquence.\r\n\r\nHe is now much recovered from his illness and is continually on the deck,\r\napparently watching for the sledge that preceded his own. Yet, although\r\nunhappy, he is not so utterly occupied by his own misery but that he\r\ninterests himself deeply in the projects of others. He has frequently\r\nconversed with me on mine, which I have communicated to him without\r\ndisguise. He entered attentively into all my arguments in favour of my\r\neventual success and into every minute detail of the measures I had taken\r\nto secure it. I was easily led by the sympathy which he evinced to use the\r\nlanguage of my heart, to give utterance to the burning ardour of my soul\r\nand to say, with all the fervour that warmed me, how gladly I would\r\nsacrifice my fortune, my existence, my every hope, to the furtherance of my\r\nenterprise. One man’s life or death were but a small price to pay for\r\nthe acquirement of the knowledge which I sought, for the dominion I should\r\nacquire and transmit over the elemental foes of our race. As I spoke, a\r\ndark gloom spread over my listener’s countenance. At first I\r\nperceived that he tried to suppress his emotion; he placed his hands before\r\nhis eyes, and my voice quivered and failed me as I beheld tears trickle\r\nfast from between his fingers; a groan burst from his heaving breast. I\r\npaused; at length he spoke, in broken accents: “Unhappy man! Do you\r\nshare my madness? Have you drunk also of the intoxicating draught? Hear me;\r\nlet me reveal my tale, and you will dash the cup from your lips!”\r\n\r\nSuch words, you may imagine, strongly excited my curiosity; but the\r\nparoxysm of grief that had seized the stranger overcame his weakened\r\npowers, and many hours of repose and tranquil conversation were\r\nnecessary to restore his composure.\r\n\r\nHaving conquered the violence of his feelings, he appeared to despise\r\nhimself for being the slave of passion; and quelling the dark tyranny of\r\ndespair, he led me again to converse concerning myself personally. He asked\r\nme the history of my earlier years. The tale was quickly told, but it\r\nawakened various trains of reflection. I spoke of my desire of finding a\r\nfriend, of my thirst for a more intimate sympathy with a fellow mind than\r\nhad ever fallen to my lot, and expressed my conviction that a man could\r\nboast of little happiness who did not enjoy this blessing.\r\n\r\n“I agree with you,” replied the stranger; “we are\r\nunfashioned creatures, but half made up, if one wiser, better, dearer than\r\nourselves—such a friend ought to be—do not lend his aid to\r\nperfectionate our weak and faulty natures. I once had a friend, the most\r\nnoble of human creatures, and am entitled, therefore, to judge respecting\r\nfriendship. You have hope, and the world before you, and have no cause for\r\ndespair. But I—I have lost everything and cannot begin life\r\nanew.”\r\n\r\nAs he said this his countenance became expressive of a calm, settled\r\ngrief that touched me to the heart. But he was silent and presently\r\nretired to his cabin.\r\n\r\nEven broken in spirit as he is, no one can feel more deeply than he\r\ndoes the beauties of nature. The starry sky, the sea, and every sight\r\nafforded by these wonderful regions seem still to have the power of\r\nelevating his soul from earth. Such a man has a double existence: he\r\nmay suffer misery and be overwhelmed by disappointments, yet when he\r\nhas retired into himself, he will be like a celestial spirit that has a\r\nhalo around him, within whose circle no grief or folly ventures.\r\n\r\nWill you smile at the enthusiasm I express concerning this divine\r\nwanderer? You would not if you saw him. You have been tutored and\r\nrefined by books and retirement from the world, and you are therefore\r\nsomewhat fastidious; but this only renders you the more fit to\r\nappreciate the extraordinary merits of this wonderful man. Sometimes I\r\nhave endeavoured to discover what quality it is which he possesses that\r\nelevates him so immeasurably above any other person I ever knew. I\r\nbelieve it to be an intuitive discernment, a quick but never-failing\r\npower of judgment, a penetration into the causes of things, unequalled\r\nfor clearness and precision; add to this a facility of expression and a\r\nvoice whose varied intonations are soul-subduing music.\r\n\r\n\r\n\r\n\r\nAugust 19th, 17—.\r\n\r\n\r\nYesterday the stranger said to me, “You may easily perceive, Captain\r\nWalton, that I have suffered great and unparalleled misfortunes. I had\r\ndetermined at one time that the memory of these evils should die with\r\nme, but you have won me to alter my determination. You seek for\r\nknowledge and wisdom, as I once did; and I ardently hope that the\r\ngratification of your wishes may not be a serpent to sting you, as mine\r\nhas been. I do not know that the relation of my disasters will be\r\nuseful to you; yet, when I reflect that you are pursuing the same\r\ncourse, exposing yourself to the same dangers which have rendered me\r\nwhat I am, I imagine that you may deduce an apt moral from my tale, one\r\nthat may direct you if you succeed in your undertaking and console you\r\nin case of failure. Prepare to hear of occurrences which are usually\r\ndeemed marvellous. Were we among the tamer scenes of nature I might\r\nfear to encounter your unbelief, perhaps your ridicule; but many things\r\nwill appear possible in these wild and mysterious regions which would\r\nprovoke the laughter of those unacquainted with the ever-varied powers\r\nof nature; nor can I doubt but that my tale conveys in its series\r\ninternal evidence of the truth of the events of which it is composed.”\r\n\r\nYou may easily imagine that I was much gratified by the offered\r\ncommunication, yet I could not endure that he should renew his grief by\r\na recital of his misfortunes. I felt the greatest eagerness to hear\r\nthe promised narrative, partly from curiosity and partly from a strong\r\ndesire to ameliorate his fate if it were in my power. I expressed\r\nthese feelings in my answer.\r\n\r\n“I thank you,” he replied, “for your sympathy, but it is\r\nuseless; my fate is nearly fulfilled. I wait but for one event, and then I\r\nshall repose in peace. I understand your feeling,” continued he,\r\nperceiving that I wished to interrupt him; “but you are mistaken, my\r\nfriend, if thus you will allow me to name you; nothing can alter my\r\ndestiny; listen to my history, and you will perceive how irrevocably it is\r\ndetermined.”\r\n\r\nHe then told me that he would commence his narrative the next day when I\r\nshould be at leisure. This promise drew from me the warmest thanks. I have\r\nresolved every night, when I am not imperatively occupied by my duties, to\r\nrecord, as nearly as possible in his own words, what he has related during\r\nthe day. If I should be engaged, I will at least make notes. This\r\nmanuscript will doubtless afford you the greatest pleasure; but to me, who\r\nknow him, and who hear it from his own lips—with what interest and\r\nsympathy shall I read it in some future day! Even now, as I commence my\r\ntask, his full-toned voice swells in my ears; his lustrous eyes dwell on me\r\nwith all their melancholy sweetness; I see his thin hand raised in\r\nanimation, while the lineaments of his face are irradiated by the soul\r\nwithin. Strange and harrowing must be his story, frightful the storm which\r\nembraced the gallant vessel on its course and wrecked it—thus!\r\n\r\n\r\n\r\n\r\nChapter 1\r\n\r\n\r\nI am by birth a Genevese, and my family is one of the most\r\ndistinguished of that republic. My ancestors had been for many years\r\ncounsellors and syndics, and my father had filled several public\r\nsituations with honour and reputation. He was respected by all who\r\nknew him for his integrity and indefatigable attention to public\r\nbusiness. He passed his younger days perpetually occupied by the\r\naffairs of his country; a variety of circumstances had prevented his\r\nmarrying early, nor was it until the decline of life that he became a\r\nhusband and the father of a family.\r\n\r\nAs the circumstances of his marriage illustrate his character, I cannot\r\nrefrain from relating them. One of his most intimate friends was a\r\nmerchant who, from a flourishing state, fell, through numerous\r\nmischances, into poverty. This man, whose name was Beaufort, was of a\r\nproud and unbending disposition and could not bear to live in poverty\r\nand oblivion in the same country where he had formerly been\r\ndistinguished for his rank and magnificence. Having paid his debts,\r\ntherefore, in the most honourable manner, he retreated with his\r\ndaughter to the town of Lucerne, where he lived unknown and in\r\nwretchedness. My father loved Beaufort with the truest friendship and\r\nwas deeply grieved by his retreat in these unfortunate circumstances.\r\nHe bitterly deplored the false pride which led his friend to a conduct\r\nso little worthy of the affection that united them. He lost no time in\r\nendeavouring to seek him out, with the hope of persuading him to begin\r\nthe world again through his credit and assistance.\r\n\r\nBeaufort had taken effectual measures to conceal himself, and it was ten\r\nmonths before my father discovered his abode. Overjoyed at this discovery,\r\nhe hastened to the house, which was situated in a mean street near the\r\nReuss. But when he entered, misery and despair alone welcomed him. Beaufort\r\nhad saved but a very small sum of money from the wreck of his fortunes, but\r\nit was sufficient to provide him with sustenance for some months, and in\r\nthe meantime he hoped to procure some respectable employment in a\r\nmerchant’s house. The interval was, consequently, spent in inaction;\r\nhis grief only became more deep and rankling when he had leisure for\r\nreflection, and at length it took so fast hold of his mind that at the end\r\nof three months he lay on a bed of sickness, incapable of any exertion.\r\n\r\nHis daughter attended him with the greatest tenderness, but she saw\r\nwith despair that their little fund was rapidly decreasing and that\r\nthere was no other prospect of support. But Caroline Beaufort\r\npossessed a mind of an uncommon mould, and her courage rose to support\r\nher in her adversity. She procured plain work; she plaited straw and\r\nby various means contrived to earn a pittance scarcely sufficient to\r\nsupport life.\r\n\r\nSeveral months passed in this manner. Her father grew worse; her time\r\nwas more entirely occupied in attending him; her means of subsistence\r\ndecreased; and in the tenth month her father died in her arms, leaving\r\nher an orphan and a beggar. This last blow overcame her, and she knelt\r\nby Beaufort’s coffin weeping bitterly, when my father entered the\r\nchamber. He came like a protecting spirit to the poor girl, who\r\ncommitted herself to his care; and after the interment of his friend he\r\nconducted her to Geneva and placed her under the protection of a\r\nrelation. Two years after this event Caroline became his wife.\r\n\r\nThere was a considerable difference between the ages of my parents, but\r\nthis circumstance seemed to unite them only closer in bonds of devoted\r\naffection. There was a sense of justice in my father’s upright mind\r\nwhich rendered it necessary that he should approve highly to love\r\nstrongly. Perhaps during former years he had suffered from the\r\nlate-discovered unworthiness of one beloved and so was disposed to set\r\na greater value on tried worth. There was a show of gratitude and\r\nworship in his attachment to my mother, differing wholly from the\r\ndoting fondness of age, for it was inspired by reverence for her\r\nvirtues and a desire to be the means of, in some degree, recompensing\r\nher for the sorrows she had endured, but which gave inexpressible grace\r\nto his behaviour to her. Everything was made to yield to her wishes\r\nand her convenience. He strove to shelter her, as a fair exotic is\r\nsheltered by the gardener, from every rougher wind and to surround her\r\nwith all that could tend to excite pleasurable emotion in her soft and\r\nbenevolent mind. Her health, and even the tranquillity of her hitherto\r\nconstant spirit, had been shaken by what she had gone through. During\r\nthe two years that had elapsed previous to their marriage my father had\r\ngradually relinquished all his public functions; and immediately after\r\ntheir union they sought the pleasant climate of Italy, and the change\r\nof scene and interest attendant on a tour through that land of wonders,\r\nas a restorative for her weakened frame.\r\n\r\nFrom Italy they visited Germany and France. I, their eldest child, was born\r\nat Naples, and as an infant accompanied them in their rambles. I remained\r\nfor several years their only child. Much as they were attached to each\r\nother, they seemed to draw inexhaustible stores of affection from a very\r\nmine of love to bestow them upon me. My mother’s tender caresses and\r\nmy father’s smile of benevolent pleasure while regarding me are my\r\nfirst recollections. I was their plaything and their idol, and something\r\nbetter—their child, the innocent and helpless creature bestowed on\r\nthem by Heaven, whom to bring up to good, and whose future lot it was in\r\ntheir hands to direct to happiness or misery, according as they fulfilled\r\ntheir duties towards me. With this deep consciousness of what they owed\r\ntowards the being to which they had given life, added to the active spirit\r\nof tenderness that animated both, it may be imagined that while during\r\nevery hour of my infant life I received a lesson of patience, of charity,\r\nand of self-control, I was so guided by a silken cord that all seemed but\r\none train of enjoyment to me.\r\n\r\nFor a long time I was their only care. My mother had much desired to have a\r\ndaughter, but I continued their single offspring. When I was about five\r\nyears old, while making an excursion beyond the frontiers of Italy, they\r\npassed a week on the shores of the Lake of Como. Their benevolent\r\ndisposition often made them enter the cottages of the poor. This, to my\r\nmother, was more than a duty; it was a necessity, a\r\npassion—remembering what she had suffered, and how she had been\r\nrelieved—for her to act in her turn the guardian angel to the\r\nafflicted. During one of their walks a poor cot in the foldings of a vale\r\nattracted their notice as being singularly disconsolate, while the number\r\nof half-clothed children gathered about it spoke of penury in its worst\r\nshape. One day, when my father had gone by himself to Milan, my mother,\r\naccompanied by me, visited this abode. She found a peasant and his wife,\r\nhard working, bent down by care and labour, distributing a scanty meal to\r\nfive hungry babes. Among these there was one which attracted my mother far\r\nabove all the rest. She appeared of a different stock. The four others were\r\ndark-eyed, hardy little vagrants; this child was thin and very fair. Her\r\nhair was the brightest living gold, and despite the poverty of her\r\nclothing, seemed to set a crown of distinction on her head. Her brow was\r\nclear and ample, her blue eyes cloudless, and her lips and the moulding of\r\nher face so expressive of sensibility and sweetness that none could behold\r\nher without looking on her as of a distinct species, a being heaven-sent,\r\nand bearing a celestial stamp in all her features.\r\n\r\nThe peasant woman, perceiving that my mother fixed eyes of wonder and\r\nadmiration on this lovely girl, eagerly communicated her history. She was\r\nnot her child, but the daughter of a Milanese nobleman. Her mother was a\r\nGerman and had died on giving her birth. The infant had been placed with\r\nthese good people to nurse: they were better off then. They had not been\r\nlong married, and their eldest child was but just born. The father of their\r\ncharge was one of those Italians nursed in the memory of the antique glory\r\nof Italy—one among the _schiavi ognor frementi,_ who exerted\r\nhimself to obtain the liberty of his country. He became the victim of its\r\nweakness. Whether he had died or still lingered in the dungeons of Austria\r\nwas not known. His property was confiscated; his child became an orphan and\r\na beggar. She continued with her foster parents and bloomed in their rude\r\nabode, fairer than a garden rose among dark-leaved brambles.\r\n\r\nWhen my father returned from Milan, he found playing with me in the hall of\r\nour villa a child fairer than pictured cherub—a creature who seemed\r\nto shed radiance from her looks and whose form and motions were lighter\r\nthan the chamois of the hills. The apparition was soon explained. With his\r\npermission my mother prevailed on her rustic guardians to yield their\r\ncharge to her. They were fond of the sweet orphan. Her presence had seemed\r\na blessing to them, but it would be unfair to her to keep her in poverty\r\nand want when Providence afforded her such powerful protection. They\r\nconsulted their village priest, and the result was that Elizabeth Lavenza\r\nbecame the inmate of my parents’ house—my more than\r\nsister—the beautiful and adored companion of all my occupations and\r\nmy pleasures.\r\n\r\nEveryone loved Elizabeth. The passionate and almost reverential\r\nattachment with which all regarded her became, while I shared it, my\r\npride and my delight. On the evening previous to her being brought to\r\nmy home, my mother had said playfully, “I have a pretty present for my\r\nVictor—tomorrow he shall have it.” And when, on the morrow, she\r\npresented Elizabeth to me as her promised gift, I, with childish\r\nseriousness, interpreted her words literally and looked upon Elizabeth\r\nas mine—mine to protect, love, and cherish. All praises bestowed on\r\nher I received as made to a possession of my own. We called each other\r\nfamiliarly by the name of cousin. No word, no expression could body\r\nforth the kind of relation in which she stood to me—my more than\r\nsister, since till death she was to be mine only.\r\n\r\n\r\n\r\n\r\nChapter 2\r\n\r\n\r\nWe were brought up together; there was not quite a year difference in\r\nour ages. I need not say that we were strangers to any species of\r\ndisunion or dispute. Harmony was the soul of our companionship, and\r\nthe diversity and contrast that subsisted in our characters drew us\r\nnearer together. Elizabeth was of a calmer and more concentrated\r\ndisposition; but, with all my ardour, I was capable of a more intense\r\napplication and was more deeply smitten with the thirst for knowledge.\r\nShe busied herself with following the aerial creations of the poets;\r\nand in the majestic and wondrous scenes which surrounded our Swiss\r\nhome —the sublime shapes of the mountains, the changes of the seasons,\r\ntempest and calm, the silence of winter, and the life and turbulence of\r\nour Alpine summers—she found ample scope for admiration and delight.\r\nWhile my companion contemplated with a serious and satisfied spirit the\r\nmagnificent appearances of things, I delighted in investigating their\r\ncauses. The world was to me a secret which I desired to divine.\r\nCuriosity, earnest research to learn the hidden laws of nature,\r\ngladness akin to rapture, as they were unfolded to me, are among the\r\nearliest sensations I can remember.\r\n\r\nOn the birth of a second son, my junior by seven years, my parents gave\r\nup entirely their wandering life and fixed themselves in their native\r\ncountry. We possessed a house in Geneva, and a _campagne_ on Belrive,\r\nthe eastern shore of the lake, at the distance of rather more than a\r\nleague from the city. We resided principally in the latter, and the\r\nlives of my parents were passed in considerable seclusion. It was my\r\ntemper to avoid a crowd and to attach myself fervently to a few. I was\r\nindifferent, therefore, to my school-fellows in general; but I united\r\nmyself in the bonds of the closest friendship to one among them. Henry\r\nClerval was the son of a merchant of Geneva. He was a boy of singular\r\ntalent and fancy. He loved enterprise, hardship, and even danger for\r\nits own sake. He was deeply read in books of chivalry and romance. He\r\ncomposed heroic songs and began to write many a tale of enchantment and\r\nknightly adventure. He tried to make us act plays and to enter into\r\nmasquerades, in which the characters were drawn from the heroes of\r\nRoncesvalles, of the Round Table of King Arthur, and the chivalrous\r\ntrain who shed their blood to redeem the holy sepulchre from the hands\r\nof the infidels.\r\n\r\nNo human being could have passed a happier childhood than myself. My\r\nparents were possessed by the very spirit of kindness and indulgence.\r\nWe felt that they were not the tyrants to rule our lot according to\r\ntheir caprice, but the agents and creators of all the many delights\r\nwhich we enjoyed. When I mingled with other families I distinctly\r\ndiscerned how peculiarly fortunate my lot was, and gratitude assisted\r\nthe development of filial love.\r\n\r\nMy temper was sometimes violent, and my passions vehement; but by some\r\nlaw in my temperature they were turned not towards childish pursuits\r\nbut to an eager desire to learn, and not to learn all things\r\nindiscriminately. I confess that neither the structure of languages,\r\nnor the code of governments, nor the politics of various states\r\npossessed attractions for me. It was the secrets of heaven and earth\r\nthat I desired to learn; and whether it was the outward substance of\r\nthings or the inner spirit of nature and the mysterious soul of man\r\nthat occupied me, still my inquiries were directed to the metaphysical,\r\nor in its highest sense, the physical secrets of the world.\r\n\r\nMeanwhile Clerval occupied himself, so to speak, with the moral\r\nrelations of things. The busy stage of life, the virtues of heroes,\r\nand the actions of men were his theme; and his hope and his dream was\r\nto become one among those whose names are recorded in story as the\r\ngallant and adventurous benefactors of our species. The saintly soul\r\nof Elizabeth shone like a shrine-dedicated lamp in our peaceful home.\r\nHer sympathy was ours; her smile, her soft voice, the sweet glance of\r\nher celestial eyes, were ever there to bless and animate us. She was\r\nthe living spirit of love to soften and attract; I might have become\r\nsullen in my study, rough through the ardour of my nature, but that\r\nshe was there to subdue me to a semblance of her own gentleness. And\r\nClerval—could aught ill entrench on the noble spirit of Clerval? Yet\r\nhe might not have been so perfectly humane, so thoughtful in his\r\ngenerosity, so full of kindness and tenderness amidst his passion for\r\nadventurous exploit, had she not unfolded to him the real loveliness of\r\nbeneficence and made the doing good the end and aim of his soaring\r\nambition.\r\n\r\nI feel exquisite pleasure in dwelling on the recollections of childhood,\r\nbefore misfortune had tainted my mind and changed its bright visions of\r\nextensive usefulness into gloomy and narrow reflections upon self. Besides,\r\nin drawing the picture of my early days, I also record those events which\r\nled, by insensible steps, to my after tale of misery, for when I would\r\naccount to myself for the birth of that passion which afterwards ruled my\r\ndestiny I find it arise, like a mountain river, from ignoble and almost\r\nforgotten sources; but, swelling as it proceeded, it became the torrent\r\nwhich, in its course, has swept away all my hopes and joys.\r\n\r\nNatural philosophy is the genius that has regulated my fate; I desire,\r\ntherefore, in this narration, to state those facts which led to my\r\npredilection for that science. When I was thirteen years of age we all went\r\non a party of pleasure to the baths near Thonon; the inclemency of the\r\nweather obliged us to remain a day confined to the inn. In this house I\r\nchanced to find a volume of the works of Cornelius Agrippa. I opened it\r\nwith apathy; the theory which he attempts to demonstrate and the wonderful\r\nfacts which he relates soon changed this feeling into enthusiasm. A new\r\nlight seemed to dawn upon my mind, and bounding with joy, I communicated my\r\ndiscovery to my father. My father looked carelessly at the title page of my\r\nbook and said, “Ah! Cornelius Agrippa! My dear Victor, do not waste\r\nyour time upon this; it is sad trash.”\r\n\r\nIf, instead of this remark, my father had taken the pains to explain to me\r\nthat the principles of Agrippa had been entirely exploded and that a modern\r\nsystem of science had been introduced which possessed much greater powers\r\nthan the ancient, because the powers of the latter were chimerical, while\r\nthose of the former were real and practical, under such circumstances I\r\nshould certainly have thrown Agrippa aside and have contented my\r\nimagination, warmed as it was, by returning with greater ardour to my\r\nformer studies. It is even possible that the train of my ideas would never\r\nhave received the fatal impulse that led to my ruin. But the cursory glance\r\nmy father had taken of my volume by no means assured me that he was\r\nacquainted with its contents, and I continued to read with the greatest\r\navidity.\r\n\r\nWhen I returned home my first care was to procure the whole works of this\r\nauthor, and afterwards of Paracelsus and Albertus Magnus. I read and\r\nstudied the wild fancies of these writers with delight; they appeared to me\r\ntreasures known to few besides myself. I have described myself as always\r\nhaving been imbued with a fervent longing to penetrate the secrets of\r\nnature. In spite of the intense labour and wonderful discoveries of modern\r\nphilosophers, I always came from my studies discontented and unsatisfied.\r\nSir Isaac Newton is said to have avowed that he felt like a child picking\r\nup shells beside the great and unexplored ocean of truth. Those of his\r\nsuccessors in each branch of natural philosophy with whom I was acquainted\r\nappeared even to my boy’s apprehensions as tyros engaged in the same\r\npursuit.\r\n\r\nThe untaught peasant beheld the elements around him and was acquainted\r\nwith their practical uses. The most learned philosopher knew little\r\nmore. He had partially unveiled the face of Nature, but her immortal\r\nlineaments were still a wonder and a mystery. He might dissect,\r\nanatomise, and give names; but, not to speak of a final cause, causes\r\nin their secondary and tertiary grades were utterly unknown to him. I\r\nhad gazed upon the fortifications and impediments that seemed to keep\r\nhuman beings from entering the citadel of nature, and rashly and\r\nignorantly I had repined.\r\n\r\nBut here were books, and here were men who had penetrated deeper and knew\r\nmore. I took their word for all that they averred, and I became their\r\ndisciple. It may appear strange that such should arise in the eighteenth\r\ncentury; but while I followed the routine of education in the schools of\r\nGeneva, I was, to a great degree, self-taught with regard to my favourite\r\nstudies. My father was not scientific, and I was left to struggle with a\r\nchild’s blindness, added to a student’s thirst for knowledge.\r\nUnder the guidance of my new preceptors I entered with the greatest\r\ndiligence into the search of the philosopher’s stone and the elixir\r\nof life; but the latter soon obtained my undivided attention. Wealth was an\r\ninferior object, but what glory would attend the discovery if I could\r\nbanish disease from the human frame and render man invulnerable to any but\r\na violent death!\r\n\r\nNor were these my only visions. The raising of ghosts or devils was a\r\npromise liberally accorded by my favourite authors, the fulfilment of which\r\nI most eagerly sought; and if my incantations were always unsuccessful, I\r\nattributed the failure rather to my own inexperience and mistake than to a\r\nwant of skill or fidelity in my instructors. And thus for a time I was\r\noccupied by exploded systems, mingling, like an unadept, a thousand\r\ncontradictory theories and floundering desperately in a very slough of\r\nmultifarious knowledge, guided by an ardent imagination and childish\r\nreasoning, till an accident again changed the current of my ideas.\r\n\r\nWhen I was about fifteen years old we had retired to our house near\r\nBelrive, when we witnessed a most violent and terrible thunderstorm. It\r\nadvanced from behind the mountains of Jura, and the thunder burst at once\r\nwith frightful loudness from various quarters of the heavens. I remained,\r\nwhile the storm lasted, watching its progress with curiosity and delight.\r\nAs I stood at the door, on a sudden I beheld a stream of fire issue from an\r\nold and beautiful oak which stood about twenty yards from our house; and so\r\nsoon as the dazzling light vanished, the oak had disappeared, and nothing\r\nremained but a blasted stump. When we visited it the next morning, we found\r\nthe tree shattered in a singular manner. It was not splintered by the\r\nshock, but entirely reduced to thin ribbons of wood. I never beheld\r\nanything so utterly destroyed.\r\n\r\nBefore this I was not unacquainted with the more obvious laws of\r\nelectricity. On this occasion a man of great research in natural\r\nphilosophy was with us, and excited by this catastrophe, he entered on\r\nthe explanation of a theory which he had formed on the subject of\r\nelectricity and galvanism, which was at once new and astonishing to me.\r\nAll that he said threw greatly into the shade Cornelius Agrippa,\r\nAlbertus Magnus, and Paracelsus, the lords of my imagination; but by\r\nsome fatality the overthrow of these men disinclined me to pursue my\r\naccustomed studies. It seemed to me as if nothing would or could ever\r\nbe known. All that had so long engaged my attention suddenly grew\r\ndespicable. By one of those caprices of the mind which we are perhaps\r\nmost subject to in early youth, I at once gave up my former\r\noccupations, set down natural history and all its progeny as a deformed\r\nand abortive creation, and entertained the greatest disdain for a\r\nwould-be science which could never even step within the threshold of\r\nreal knowledge. In this mood of mind I betook myself to the\r\nmathematics and the branches of study appertaining to that science as\r\nbeing built upon secure foundations, and so worthy of my consideration.\r\n\r\nThus strangely are our souls constructed, and by such slight ligaments\r\nare we bound to prosperity or ruin. When I look back, it seems to me\r\nas if this almost miraculous change of inclination and will was the\r\nimmediate suggestion of the guardian angel of my life—the last effort\r\nmade by the spirit of preservation to avert the storm that was even\r\nthen hanging in the stars and ready to envelop me. Her victory was\r\nannounced by an unusual tranquillity and gladness of soul which\r\nfollowed the relinquishing of my ancient and latterly tormenting\r\nstudies. It was thus that I was to be taught to associate evil with\r\ntheir prosecution, happiness with their disregard.\r\n\r\nIt was a strong effort of the spirit of good, but it was ineffectual.\r\nDestiny was too potent, and her immutable laws had decreed my utter and\r\nterrible destruction.\r\n\r\n\r\n\r\n\r\nChapter 3\r\n\r\n\r\nWhen I had attained the age of seventeen my parents resolved that I\r\nshould become a student at the university of Ingolstadt. I had\r\nhitherto attended the schools of Geneva, but my father thought it\r\nnecessary for the completion of my education that I should be made\r\nacquainted with other customs than those of my native country. My\r\ndeparture was therefore fixed at an early date, but before the day\r\nresolved upon could arrive, the first misfortune of my life\r\noccurred—an omen, as it were, of my future misery.\r\n\r\nElizabeth had caught the scarlet fever; her illness was severe, and she was\r\nin the greatest danger. During her illness many arguments had been urged to\r\npersuade my mother to refrain from attending upon her. She had at first\r\nyielded to our entreaties, but when she heard that the life of her\r\nfavourite was menaced, she could no longer control her anxiety. She\r\nattended her sickbed; her watchful attentions triumphed over the malignity\r\nof the distemper—Elizabeth was saved, but the consequences of this\r\nimprudence were fatal to her preserver. On the third day my mother\r\nsickened; her fever was accompanied by the most alarming symptoms, and the\r\nlooks of her medical attendants prognosticated the worst event. On her\r\ndeathbed the fortitude and benignity of this best of women did not desert\r\nher. She joined the hands of Elizabeth and myself. “My\r\nchildren,” she said, “my firmest hopes of future happiness were\r\nplaced on the prospect of your union. This expectation will now be the\r\nconsolation of your father. Elizabeth, my love, you must supply my place to\r\nmy younger children. Alas! I regret that I am taken from you; and, happy\r\nand beloved as I have been, is it not hard to quit you all? But these are\r\nnot thoughts befitting me; I will endeavour to resign myself cheerfully to\r\ndeath and will indulge a hope of meeting you in another world.”\r\n\r\nShe died calmly, and her countenance expressed affection even in death.\r\nI need not describe the feelings of those whose dearest ties are rent\r\nby that most irreparable evil, the void that presents itself to the\r\nsoul, and the despair that is exhibited on the countenance. It is so\r\nlong before the mind can persuade itself that she whom we saw every day\r\nand whose very existence appeared a part of our own can have departed\r\nfor ever—that the brightness of a beloved eye can have been\r\nextinguished and the sound of a voice so familiar and dear to the ear\r\ncan be hushed, never more to be heard. These are the reflections of\r\nthe first days; but when the lapse of time proves the reality of the\r\nevil, then the actual bitterness of grief commences. Yet from whom has\r\nnot that rude hand rent away some dear connection? And why should I\r\ndescribe a sorrow which all have felt, and must feel? The time at\r\nlength arrives when grief is rather an indulgence than a necessity; and\r\nthe smile that plays upon the lips, although it may be deemed a\r\nsacrilege, is not banished. My mother was dead, but we had still\r\nduties which we ought to perform; we must continue our course with the\r\nrest and learn to think ourselves fortunate whilst one remains whom the\r\nspoiler has not seized.\r\n\r\nMy departure for Ingolstadt, which had been deferred by these events,\r\nwas now again determined upon. I obtained from my father a respite of\r\nsome weeks. It appeared to me sacrilege so soon to leave the repose,\r\nakin to death, of the house of mourning and to rush into the thick of\r\nlife. I was new to sorrow, but it did not the less alarm me. I was\r\nunwilling to quit the sight of those that remained to me, and above\r\nall, I desired to see my sweet Elizabeth in some degree consoled.\r\n\r\nShe indeed veiled her grief and strove to act the comforter to us all.\r\nShe looked steadily on life and assumed its duties with courage and\r\nzeal. She devoted herself to those whom she had been taught to call\r\nher uncle and cousins. Never was she so enchanting as at this time,\r\nwhen she recalled the sunshine of her smiles and spent them upon us.\r\nShe forgot even her own regret in her endeavours to make us forget.\r\n\r\nThe day of my departure at length arrived. Clerval spent the last\r\nevening with us. He had endeavoured to persuade his father to permit\r\nhim to accompany me and to become my fellow student, but in vain. His\r\nfather was a narrow-minded trader and saw idleness and ruin in the\r\naspirations and ambition of his son. Henry deeply felt the misfortune\r\nof being debarred from a liberal education. He said little, but when\r\nhe spoke I read in his kindling eye and in his animated glance a\r\nrestrained but firm resolve not to be chained to the miserable details\r\nof commerce.\r\n\r\nWe sat late. We could not tear ourselves away from each other nor\r\npersuade ourselves to say the word “Farewell!” It was said, and we\r\nretired under the pretence of seeking repose, each fancying that the\r\nother was deceived; but when at morning’s dawn I descended to the\r\ncarriage which was to convey me away, they were all there—my father\r\nagain to bless me, Clerval to press my hand once more, my Elizabeth to\r\nrenew her entreaties that I would write often and to bestow the last\r\nfeminine attentions on her playmate and friend.\r\n\r\nI threw myself into the chaise that was to convey me away and indulged in\r\nthe most melancholy reflections. I, who had ever been surrounded by\r\namiable companions, continually engaged in endeavouring to bestow mutual\r\npleasure—I was now alone. In the university whither I was going I\r\nmust form my own friends and be my own protector. My life had hitherto\r\nbeen remarkably secluded and domestic, and this had given me invincible\r\nrepugnance to new countenances. I loved my brothers, Elizabeth, and\r\nClerval; these were “old familiar faces,” but I believed myself\r\ntotally unfitted for the company of strangers. Such were my reflections as\r\nI commenced my journey; but as I proceeded, my spirits and hopes rose. I\r\nardently desired the acquisition of knowledge. I had often, when at home,\r\nthought it hard to remain during my youth cooped up in one place and had\r\nlonged to enter the world and take my station among other human beings. \r\nNow my desires were complied with, and it would, indeed, have been folly to\r\nrepent.\r\n\r\nI had sufficient leisure for these and many other reflections during my\r\njourney to Ingolstadt, which was long and fatiguing. At length the\r\nhigh white steeple of the town met my eyes. I alighted and was\r\nconducted to my solitary apartment to spend the evening as I pleased.\r\n\r\nThe next morning I delivered my letters of introduction and paid a visit to\r\nsome of the principal professors. Chance—or rather the evil\r\ninfluence, the Angel of Destruction, which asserted omnipotent sway over me\r\nfrom the moment I turned my reluctant steps from my father’s\r\ndoor—led me first to M. Krempe, professor of natural philosophy. He\r\nwas an uncouth man, but deeply imbued in the secrets of his science. He\r\nasked me several questions concerning my progress in the different branches\r\nof science appertaining to natural philosophy. I replied carelessly, and\r\npartly in contempt, mentioned the names of my alchemists as the principal\r\nauthors I had studied. The professor stared. “Have you,” he\r\nsaid, “really spent your time in studying such nonsense?”\r\n\r\nI replied in the affirmative. “Every minute,” continued M. Krempe with\r\nwarmth, “every instant that you have wasted on those books is utterly\r\nand entirely lost. You have burdened your memory with exploded systems\r\nand useless names. Good God! In what desert land have you lived,\r\nwhere no one was kind enough to inform you that these fancies which you\r\nhave so greedily imbibed are a thousand years old and as musty as they\r\nare ancient? I little expected, in this enlightened and scientific\r\nage, to find a disciple of Albertus Magnus and Paracelsus. My dear\r\nsir, you must begin your studies entirely anew.”\r\n\r\nSo saying, he stepped aside and wrote down a list of several books\r\ntreating of natural philosophy which he desired me to procure, and\r\ndismissed me after mentioning that in the beginning of the following\r\nweek he intended to commence a course of lectures upon natural\r\nphilosophy in its general relations, and that M. Waldman, a fellow\r\nprofessor, would lecture upon chemistry the alternate days that he\r\nomitted.\r\n\r\nI returned home not disappointed, for I have said that I had long\r\nconsidered those authors useless whom the professor reprobated; but I\r\nreturned not at all the more inclined to recur to these studies in any\r\nshape. M. Krempe was a little squat man with a gruff voice and a\r\nrepulsive countenance; the teacher, therefore, did not prepossess me in\r\nfavour of his pursuits. In rather a too philosophical and connected a\r\nstrain, perhaps, I have given an account of the conclusions I had come\r\nto concerning them in my early years. As a child I had not been\r\ncontent with the results promised by the modern professors of natural\r\nscience. With a confusion of ideas only to be accounted for by my\r\nextreme youth and my want of a guide on such matters, I had retrod the\r\nsteps of knowledge along the paths of time and exchanged the\r\ndiscoveries of recent inquirers for the dreams of forgotten alchemists.\r\nBesides, I had a contempt for the uses of modern natural philosophy.\r\nIt was very different when the masters of the science sought\r\nimmortality and power; such views, although futile, were grand; but now\r\nthe scene was changed. The ambition of the inquirer seemed to limit\r\nitself to the annihilation of those visions on which my interest in\r\nscience was chiefly founded. I was required to exchange chimeras of\r\nboundless grandeur for realities of little worth.\r\n\r\nSuch were my reflections during the first two or three days of my\r\nresidence at Ingolstadt, which were chiefly spent in becoming\r\nacquainted with the localities and the principal residents in my new\r\nabode. But as the ensuing week commenced, I thought of the information\r\nwhich M. Krempe had given me concerning the lectures. And although I\r\ncould not consent to go and hear that little conceited fellow deliver\r\nsentences out of a pulpit, I recollected what he had said of M.\r\nWaldman, whom I had never seen, as he had hitherto been out of town.\r\n\r\nPartly from curiosity and partly from idleness, I went into the lecturing\r\nroom, which M. Waldman entered shortly after. This professor was very\r\nunlike his colleague. He appeared about fifty years of age, but with an\r\naspect expressive of the greatest benevolence; a few grey hairs covered his\r\ntemples, but those at the back of his head were nearly black. His person\r\nwas short but remarkably erect and his voice the sweetest I had ever heard.\r\nHe began his lecture by a recapitulation of the history of chemistry and\r\nthe various improvements made by different men of learning, pronouncing\r\nwith fervour the names of the most distinguished discoverers. He then took\r\na cursory view of the present state of the science and explained many of\r\nits elementary terms. After having made a few preparatory experiments, he\r\nconcluded with a panegyric upon modern chemistry, the terms of which I\r\nshall never forget:\r\n\r\n“The ancient teachers of this science,” said he,\r\n“promised impossibilities and performed nothing. The modern masters\r\npromise very little; they know that metals cannot be transmuted and that\r\nthe elixir of life is a chimera but these philosophers, whose hands seem\r\nonly made to dabble in dirt, and their eyes to pore over the microscope or\r\ncrucible, have indeed performed miracles. They penetrate into the recesses\r\nof nature and show how she works in her hiding-places. They ascend into the\r\nheavens; they have discovered how the blood circulates, and the nature of\r\nthe air we breathe. They have acquired new and almost unlimited powers;\r\nthey can command the thunders of heaven, mimic the earthquake, and even\r\nmock the invisible world with its own shadows.”\r\n\r\nSuch were the professor’s words—rather let me say such the words of\r\nthe fate—enounced to destroy me. As he went on I felt as if my soul\r\nwere grappling with a palpable enemy; one by one the various keys were\r\ntouched which formed the mechanism of my being; chord after chord was\r\nsounded, and soon my mind was filled with one thought, one conception,\r\none purpose. So much has been done, exclaimed the soul of\r\nFrankenstein—more, far more, will I achieve; treading in the steps\r\nalready marked, I will pioneer a new way, explore unknown powers, and\r\nunfold to the world the deepest mysteries of creation.\r\n\r\nI closed not my eyes that night. My internal being was in a state of\r\ninsurrection and turmoil; I felt that order would thence arise, but I\r\nhad no power to produce it. By degrees, after the morning’s dawn,\r\nsleep came. I awoke, and my yesternight’s thoughts were as a dream.\r\nThere only remained a resolution to return to my ancient studies and to\r\ndevote myself to a science for which I believed myself to possess a\r\nnatural talent. On the same day I paid M. Waldman a visit. His\r\nmanners in private were even more mild and attractive than in public,\r\nfor there was a certain dignity in his mien during his lecture which in\r\nhis own house was replaced by the greatest affability and kindness. I\r\ngave him pretty nearly the same account of my former pursuits as I had\r\ngiven to his fellow professor. He heard with attention the little\r\nnarration concerning my studies and smiled at the names of Cornelius\r\nAgrippa and Paracelsus, but without the contempt that M. Krempe had\r\nexhibited. He said that “These were men to whose indefatigable zeal\r\nmodern philosophers were indebted for most of the foundations of their\r\nknowledge. They had left to us, as an easier task, to give new names\r\nand arrange in connected classifications the facts which they in a\r\ngreat degree had been the instruments of bringing to light. The\r\nlabours of men of genius, however erroneously directed, scarcely ever\r\nfail in ultimately turning to the solid advantage of mankind.” I\r\nlistened to his statement, which was delivered without any presumption\r\nor affectation, and then added that his lecture had removed my\r\nprejudices against modern chemists; I expressed myself in measured\r\nterms, with the modesty and deference due from a youth to his\r\ninstructor, without letting escape (inexperience in life would have\r\nmade me ashamed) any of the enthusiasm which stimulated my intended\r\nlabours. I requested his advice concerning the books I ought to\r\nprocure.\r\n\r\n“I am happy,” said M. Waldman, “to have gained a\r\ndisciple; and if your application equals your ability, I have no doubt of\r\nyour success. Chemistry is that branch of natural philosophy in which the\r\ngreatest improvements have been and may be made; it is on that account that\r\nI have made it my peculiar study; but at the same time, I have not\r\nneglected the other branches of science. A man would make but a very sorry\r\nchemist if he attended to that department of human knowledge alone. If your\r\nwish is to become really a man of science and not merely a petty\r\nexperimentalist, I should advise you to apply to every branch of natural\r\nphilosophy, including mathematics.”\r\n\r\nHe then took me into his laboratory and explained to me the uses of his\r\nvarious machines, instructing me as to what I ought to procure and\r\npromising me the use of his own when I should have advanced far enough in\r\nthe science not to derange their mechanism. He also gave me the list of\r\nbooks which I had requested, and I took my leave.\r\n\r\nThus ended a day memorable to me; it decided my future destiny.\r\n\r\n\r\n\r\n\r\nChapter 4\r\n\r\n\r\nFrom this day natural philosophy, and particularly chemistry, in the\r\nmost comprehensive sense of the term, became nearly my sole occupation.\r\nI read with ardour those works, so full of genius and discrimination,\r\nwhich modern inquirers have written on these subjects. I attended the\r\nlectures and cultivated the acquaintance of the men of science of the\r\nuniversity, and I found even in M. Krempe a great deal of sound sense\r\nand real information, combined, it is true, with a repulsive\r\nphysiognomy and manners, but not on that account the less valuable. In\r\nM. Waldman I found a true friend. His gentleness was never tinged by\r\ndogmatism, and his instructions were given with an air of frankness and\r\ngood nature that banished every idea of pedantry. In a thousand ways\r\nhe smoothed for me the path of knowledge and made the most abstruse\r\ninquiries clear and facile to my apprehension. My application was at\r\nfirst fluctuating and uncertain; it gained strength as I proceeded and\r\nsoon became so ardent and eager that the stars often disappeared in the\r\nlight of morning whilst I was yet engaged in my laboratory.\r\n\r\nAs I applied so closely, it may be easily conceived that my progress\r\nwas rapid. My ardour was indeed the astonishment of the students, and\r\nmy proficiency that of the masters. Professor Krempe often asked me,\r\nwith a sly smile, how Cornelius Agrippa went on, whilst M. Waldman\r\nexpressed the most heartfelt exultation in my progress. Two years\r\npassed in this manner, during which I paid no visit to Geneva, but was\r\nengaged, heart and soul, in the pursuit of some discoveries which I\r\nhoped to make. None but those who have experienced them can conceive\r\nof the enticements of science. In other studies you go as far as\r\nothers have gone before you, and there is nothing more to know; but in\r\na scientific pursuit there is continual food for discovery and wonder.\r\nA mind of moderate capacity which closely pursues one study must\r\ninfallibly arrive at great proficiency in that study; and I, who\r\ncontinually sought the attainment of one object of pursuit and was\r\nsolely wrapped up in this, improved so rapidly that at the end of two\r\nyears I made some discoveries in the improvement of some chemical\r\ninstruments, which procured me great esteem and admiration at the\r\nuniversity. When I had arrived at this point and had become as well\r\nacquainted with the theory and practice of natural philosophy as\r\ndepended on the lessons of any of the professors at Ingolstadt, my\r\nresidence there being no longer conducive to my improvements, I thought\r\nof returning to my friends and my native town, when an incident\r\nhappened that protracted my stay.\r\n\r\nOne of the phenomena which had peculiarly attracted my attention was\r\nthe structure of the human frame, and, indeed, any animal endued with\r\nlife. Whence, I often asked myself, did the principle of life proceed?\r\nIt was a bold question, and one which has ever been considered as a\r\nmystery; yet with how many things are we upon the brink of becoming\r\nacquainted, if cowardice or carelessness did not restrain our\r\ninquiries. I revolved these circumstances in my mind and determined\r\nthenceforth to apply myself more particularly to those branches of\r\nnatural philosophy which relate to physiology. Unless I had been\r\nanimated by an almost supernatural enthusiasm, my application to this\r\nstudy would have been irksome and almost intolerable. To examine the\r\ncauses of life, we must first have recourse to death. I became\r\nacquainted with the science of anatomy, but this was not sufficient; I\r\nmust also observe the natural decay and corruption of the human body.\r\nIn my education my father had taken the greatest precautions that my\r\nmind should be impressed with no supernatural horrors. I do not ever\r\nremember to have trembled at a tale of superstition or to have feared\r\nthe apparition of a spirit. Darkness had no effect upon my fancy, and\r\na churchyard was to me merely the receptacle of bodies deprived of\r\nlife, which, from being the seat of beauty and strength, had become\r\nfood for the worm. Now I was led to examine the cause and progress of\r\nthis decay and forced to spend days and nights in vaults and\r\ncharnel-houses. My attention was fixed upon every object the most\r\ninsupportable to the delicacy of the human feelings. I saw how the\r\nfine form of man was degraded and wasted; I beheld the corruption of\r\ndeath succeed to the blooming cheek of life; I saw how the worm\r\ninherited the wonders of the eye and brain. I paused, examining and\r\nanalysing all the minutiae of causation, as exemplified in the change\r\nfrom life to death, and death to life, until from the midst of this\r\ndarkness a sudden light broke in upon me—a light so brilliant and\r\nwondrous, yet so simple, that while I became dizzy with the immensity\r\nof the prospect which it illustrated, I was surprised that among so\r\nmany men of genius who had directed their inquiries towards the same\r\nscience, that I alone should be reserved to discover so astonishing a\r\nsecret.\r\n\r\nRemember, I am not recording the vision of a madman. The sun does not\r\nmore certainly shine in the heavens than that which I now affirm is\r\ntrue. Some miracle might have produced it, yet the stages of the\r\ndiscovery were distinct and probable. After days and nights of\r\nincredible labour and fatigue, I succeeded in discovering the cause of\r\ngeneration and life; nay, more, I became myself capable of bestowing\r\nanimation upon lifeless matter.\r\n\r\nThe astonishment which I had at first experienced on this discovery\r\nsoon gave place to delight and rapture. After so much time spent in\r\npainful labour, to arrive at once at the summit of my desires was the\r\nmost gratifying consummation of my toils. But this discovery was so\r\ngreat and overwhelming that all the steps by which I had been\r\nprogressively led to it were obliterated, and I beheld only the result.\r\nWhat had been the study and desire of the wisest men since the creation\r\nof the world was now within my grasp. Not that, like a magic scene, it\r\nall opened upon me at once: the information I had obtained was of a\r\nnature rather to direct my endeavours so soon as I should point them\r\ntowards the object of my search than to exhibit that object already\r\naccomplished. I was like the Arabian who had been buried with the dead\r\nand found a passage to life, aided only by one glimmering and seemingly\r\nineffectual light.\r\n\r\nI see by your eagerness and the wonder and hope which your eyes\r\nexpress, my friend, that you expect to be informed of the secret with\r\nwhich I am acquainted; that cannot be; listen patiently until the end\r\nof my story, and you will easily perceive why I am reserved upon that\r\nsubject. I will not lead you on, unguarded and ardent as I then was,\r\nto your destruction and infallible misery. Learn from me, if not by my\r\nprecepts, at least by my example, how dangerous is the acquirement of\r\nknowledge and how much happier that man is who believes his native town\r\nto be the world, than he who aspires to become greater than his nature\r\nwill allow.\r\n\r\nWhen I found so astonishing a power placed within my hands, I hesitated\r\na long time concerning the manner in which I should employ it.\r\nAlthough I possessed the capacity of bestowing animation, yet to\r\nprepare a frame for the reception of it, with all its intricacies of\r\nfibres, muscles, and veins, still remained a work of inconceivable\r\ndifficulty and labour. I doubted at first whether I should attempt the\r\ncreation of a being like myself, or one of simpler organization; but my\r\nimagination was too much exalted by my first success to permit me to\r\ndoubt of my ability to give life to an animal as complex and wonderful\r\nas man. The materials at present within my command hardly appeared\r\nadequate to so arduous an undertaking, but I doubted not that I should\r\nultimately succeed. I prepared myself for a multitude of reverses; my\r\noperations might be incessantly baffled, and at last my work be\r\nimperfect, yet when I considered the improvement which every day takes\r\nplace in science and mechanics, I was encouraged to hope my present\r\nattempts would at least lay the foundations of future success. Nor\r\ncould I consider the magnitude and complexity of my plan as any\r\nargument of its impracticability. It was with these feelings that I\r\nbegan the creation of a human being. As the minuteness of the parts\r\nformed a great hindrance to my speed, I resolved, contrary to my first\r\nintention, to make the being of a gigantic stature, that is to say,\r\nabout eight feet in height, and proportionably large. After having\r\nformed this determination and having spent some months in successfully\r\ncollecting and arranging my materials, I began.\r\n\r\nNo one can conceive the variety of feelings which bore me onwards, like\r\na hurricane, in the first enthusiasm of success. Life and death\r\nappeared to me ideal bounds, which I should first break through, and\r\npour a torrent of light into our dark world. A new species would bless\r\nme as its creator and source; many happy and excellent natures would\r\nowe their being to me. No father could claim the gratitude of his\r\nchild so completely as I should deserve theirs. Pursuing these\r\nreflections, I thought that if I could bestow animation upon lifeless\r\nmatter, I might in process of time (although I now found it impossible)\r\nrenew life where death had apparently devoted the body to corruption.\r\n\r\nThese thoughts supported my spirits, while I pursued my undertaking\r\nwith unremitting ardour. My cheek had grown pale with study, and my\r\nperson had become emaciated with confinement. Sometimes, on the very\r\nbrink of certainty, I failed; yet still I clung to the hope which the\r\nnext day or the next hour might realise. One secret which I alone\r\npossessed was the hope to which I had dedicated myself; and the moon\r\ngazed on my midnight labours, while, with unrelaxed and breathless\r\neagerness, I pursued nature to her hiding-places. Who shall conceive\r\nthe horrors of my secret toil as I dabbled among the unhallowed damps\r\nof the grave or tortured the living animal to animate the lifeless\r\nclay? My limbs now tremble, and my eyes swim with the remembrance; but\r\nthen a resistless and almost frantic impulse urged me forward; I seemed\r\nto have lost all soul or sensation but for this one pursuit. It was\r\nindeed but a passing trance, that only made me feel with renewed\r\nacuteness so soon as, the unnatural stimulus ceasing to operate, I had\r\nreturned to my old habits. I collected bones from charnel-houses and\r\ndisturbed, with profane fingers, the tremendous secrets of the human\r\nframe. In a solitary chamber, or rather cell, at the top of the house,\r\nand separated from all the other apartments by a gallery and staircase,\r\nI kept my workshop of filthy creation; my eyeballs were starting from\r\ntheir sockets in attending to the details of my employment. The\r\ndissecting room and the slaughter-house furnished many of my materials;\r\nand often did my human nature turn with loathing from my occupation,\r\nwhilst, still urged on by an eagerness which perpetually increased, I\r\nbrought my work near to a conclusion.\r\n\r\nThe summer months passed while I was thus engaged, heart and soul, in\r\none pursuit. It was a most beautiful season; never did the fields\r\nbestow a more plentiful harvest or the vines yield a more luxuriant\r\nvintage, but my eyes were insensible to the charms of nature. And the\r\nsame feelings which made me neglect the scenes around me caused me also\r\nto forget those friends who were so many miles absent, and whom I had\r\nnot seen for so long a time. I knew my silence disquieted them, and I\r\nwell remembered the words of my father: “I know that while you are\r\npleased with yourself you will think of us with affection, and we shall\r\nhear regularly from you. You must pardon me if I regard any\r\ninterruption in your correspondence as a proof that your other duties\r\nare equally neglected.”\r\n\r\nI knew well therefore what would be my father’s feelings, but I could\r\nnot tear my thoughts from my employment, loathsome in itself, but which\r\nhad taken an irresistible hold of my imagination. I wished, as it\r\nwere, to procrastinate all that related to my feelings of affection\r\nuntil the great object, which swallowed up every habit of my nature,\r\nshould be completed.\r\n\r\nI then thought that my father would be unjust if he ascribed my neglect\r\nto vice or faultiness on my part, but I am now convinced that he was\r\njustified in conceiving that I should not be altogether free from\r\nblame. A human being in perfection ought always to preserve a calm and\r\npeaceful mind and never to allow passion or a transitory desire to\r\ndisturb his tranquillity. I do not think that the pursuit of knowledge\r\nis an exception to this rule. If the study to which you apply yourself\r\nhas a tendency to weaken your affections and to destroy your taste for\r\nthose simple pleasures in which no alloy can possibly mix, then that\r\nstudy is certainly unlawful, that is to say, not befitting the human\r\nmind. If this rule were always observed; if no man allowed any pursuit\r\nwhatsoever to interfere with the tranquillity of his domestic\r\naffections, Greece had not been enslaved, Cæsar would have spared his\r\ncountry, America would have been discovered more gradually, and the\r\nempires of Mexico and Peru had not been destroyed.\r\n\r\nBut I forget that I am moralizing in the most interesting part of my\r\ntale, and your looks remind me to proceed.\r\n\r\nMy father made no reproach in his letters and only took notice of my\r\nsilence by inquiring into my occupations more particularly than before.\r\nWinter, spring, and summer passed away during my labours; but I did not\r\nwatch the blossom or the expanding leaves—sights which before always\r\nyielded me supreme delight—so deeply was I engrossed in my\r\noccupation. The leaves of that year had withered before my work drew near\r\nto a close, and now every day showed me more plainly how well I had\r\nsucceeded. But my enthusiasm was checked by my anxiety, and I appeared\r\nrather like one doomed by slavery to toil in the mines, or any other\r\nunwholesome trade than an artist occupied by his favourite employment.\r\nEvery night I was oppressed by a slow fever, and I became nervous to a most\r\npainful degree; the fall of a leaf startled me, and I shunned my fellow\r\ncreatures as if I had been guilty of a crime. Sometimes I grew alarmed at\r\nthe wreck I perceived that I had become; the energy of my purpose alone\r\nsustained me: my labours would soon end, and I believed that exercise and\r\namusement would then drive away incipient disease; and I promised myself\r\nboth of these when my creation should be complete.\r\n\r\n\r\n\r\n\r\nChapter 5\r\n\r\n\r\nIt was on a dreary night of November that I beheld the accomplishment\r\nof my toils. With an anxiety that almost amounted to agony, I\r\ncollected the instruments of life around me, that I might infuse a\r\nspark of being into the lifeless thing that lay at my feet. It was\r\nalready one in the morning; the rain pattered dismally against the\r\npanes, and my candle was nearly burnt out, when, by the glimmer of the\r\nhalf-extinguished light, I saw the dull yellow eye of the creature\r\nopen; it breathed hard, and a convulsive motion agitated its limbs.\r\n\r\nHow can I describe my emotions at this catastrophe, or how delineate\r\nthe wretch whom with such infinite pains and care I had endeavoured to\r\nform? His limbs were in proportion, and I had selected his features as\r\nbeautiful. Beautiful! Great God! His yellow skin scarcely covered\r\nthe work of muscles and arteries beneath; his hair was of a lustrous\r\nblack, and flowing; his teeth of a pearly whiteness; but these\r\nluxuriances only formed a more horrid contrast with his watery eyes,\r\nthat seemed almost of the same colour as the dun-white sockets in which\r\nthey were set, his shrivelled complexion and straight black lips.\r\n\r\nThe different accidents of life are not so changeable as the feelings\r\nof human nature. I had worked hard for nearly two years, for the sole\r\npurpose of infusing life into an inanimate body. For this I had\r\ndeprived myself of rest and health. I had desired it with an ardour\r\nthat far exceeded moderation; but now that I had finished, the beauty\r\nof the dream vanished, and breathless horror and disgust filled my\r\nheart. Unable to endure the aspect of the being I had created, I\r\nrushed out of the room and continued a long time traversing my\r\nbed-chamber, unable to compose my mind to sleep. At length lassitude\r\nsucceeded to the tumult I had before endured, and I threw myself on the\r\nbed in my clothes, endeavouring to seek a few moments of forgetfulness.\r\nBut it was in vain; I slept, indeed, but I was disturbed by the wildest\r\ndreams. I thought I saw Elizabeth, in the bloom of health, walking in\r\nthe streets of Ingolstadt. Delighted and surprised, I embraced her,\r\nbut as I imprinted the first kiss on her lips, they became livid with\r\nthe hue of death; her features appeared to change, and I thought that I\r\nheld the corpse of my dead mother in my arms; a shroud enveloped her\r\nform, and I saw the grave-worms crawling in the folds of the flannel.\r\nI started from my sleep with horror; a cold dew covered my forehead, my\r\nteeth chattered, and every limb became convulsed; when, by the dim and\r\nyellow light of the moon, as it forced its way through the window\r\nshutters, I beheld the wretch—the miserable monster whom I had\r\ncreated. He held up the curtain of the bed; and his eyes, if eyes they\r\nmay be called, were fixed on me. His jaws opened, and he muttered some\r\ninarticulate sounds, while a grin wrinkled his cheeks. He might have\r\nspoken, but I did not hear; one hand was stretched out, seemingly to\r\ndetain me, but I escaped and rushed downstairs. I took refuge in the\r\ncourtyard belonging to the house which I inhabited, where I remained\r\nduring the rest of the night, walking up and down in the greatest\r\nagitation, listening attentively, catching and fearing each sound as if\r\nit were to announce the approach of the demoniacal corpse to which I\r\nhad so miserably given life.\r\n\r\nOh! No mortal could support the horror of that countenance. A mummy\r\nagain endued with animation could not be so hideous as that wretch. I\r\nhad gazed on him while unfinished; he was ugly then, but when those\r\nmuscles and joints were rendered capable of motion, it became a thing\r\nsuch as even Dante could not have conceived.\r\n\r\nI passed the night wretchedly. Sometimes my pulse beat so quickly and\r\nhardly that I felt the palpitation of every artery; at others, I nearly\r\nsank to the ground through languor and extreme weakness. Mingled with\r\nthis horror, I felt the bitterness of disappointment; dreams that had\r\nbeen my food and pleasant rest for so long a space were now become a\r\nhell to me; and the change was so rapid, the overthrow so complete!\r\n\r\nMorning, dismal and wet, at length dawned and discovered to my\r\nsleepless and aching eyes the church of Ingolstadt, its white steeple\r\nand clock, which indicated the sixth hour. The porter opened the gates\r\nof the court, which had that night been my asylum, and I issued into\r\nthe streets, pacing them with quick steps, as if I sought to avoid the\r\nwretch whom I feared every turning of the street would present to my\r\nview. I did not dare return to the apartment which I inhabited, but\r\nfelt impelled to hurry on, although drenched by the rain which poured\r\nfrom a black and comfortless sky.\r\n\r\nI continued walking in this manner for some time, endeavouring by\r\nbodily exercise to ease the load that weighed upon my mind. I\r\ntraversed the streets without any clear conception of where I was or\r\nwhat I was doing. My heart palpitated in the sickness of fear, and I\r\nhurried on with irregular steps, not daring to look about me:\r\n \r\n Like one who, on a lonely road,\r\n Doth walk in fear and dread,\r\n And, having once turned round, walks on,\r\n And turns no more his head;\r\n Because he knows a frightful fiend\r\n Doth close behind him tread.\r\n \r\n [Coleridge’s “Ancient Mariner.”]\r\n\r\n\r\n\r\nContinuing thus, I came at length opposite to the inn at which the various\r\ndiligences and carriages usually stopped. Here I paused, I knew not why;\r\nbut I remained some minutes with my eyes fixed on a coach that was coming\r\ntowards me from the other end of the street. As it drew nearer I observed\r\nthat it was the Swiss diligence; it stopped just where I was standing, and\r\non the door being opened, I perceived Henry Clerval, who, on seeing me,\r\ninstantly sprung out. “My dear Frankenstein,” exclaimed he,\r\n“how glad I am to see you! How fortunate that you should be here at\r\nthe very moment of my alighting!”\r\n\r\nNothing could equal my delight on seeing Clerval; his presence brought back\r\nto my thoughts my father, Elizabeth, and all those scenes of home so dear\r\nto my recollection. I grasped his hand, and in a moment forgot my horror\r\nand misfortune; I felt suddenly, and for the first time during many months,\r\ncalm and serene joy. I welcomed my friend, therefore, in the most cordial\r\nmanner, and we walked towards my college. Clerval continued talking for\r\nsome time about our mutual friends and his own good fortune in being\r\npermitted to come to Ingolstadt. “You may easily believe,” said\r\nhe, “how great was the difficulty to persuade my father that all\r\nnecessary knowledge was not comprised in the noble art of book-keeping;\r\nand, indeed, I believe I left him incredulous to the last, for his constant\r\nanswer to my unwearied entreaties was the same as that of the Dutch\r\nschoolmaster in The Vicar of Wakefield: ‘I have ten thousand florins\r\na year without Greek, I eat heartily without Greek.’ But his\r\naffection for me at length overcame his dislike of learning, and he has\r\npermitted me to undertake a voyage of discovery to the land of\r\nknowledge.”\r\n\r\n“It gives me the greatest delight to see you; but tell me how you left\r\nmy father, brothers, and Elizabeth.”\r\n\r\n“Very well, and very happy, only a little uneasy that they hear from\r\nyou so seldom. By the by, I mean to lecture you a little upon their\r\naccount myself. But, my dear Frankenstein,” continued he, stopping\r\nshort and gazing full in my face, “I did not before remark how very ill\r\nyou appear; so thin and pale; you look as if you had been watching for\r\nseveral nights.”\r\n\r\n“You have guessed right; I have lately been so deeply engaged in one\r\noccupation that I have not allowed myself sufficient rest, as you see;\r\nbut I hope, I sincerely hope, that all these employments are now at an\r\nend and that I am at length free.”\r\n\r\nI trembled excessively; I could not endure to think of, and far less to\r\nallude to, the occurrences of the preceding night. I walked with a\r\nquick pace, and we soon arrived at my college. I then reflected, and\r\nthe thought made me shiver, that the creature whom I had left in my\r\napartment might still be there, alive and walking about. I dreaded to\r\nbehold this monster, but I feared still more that Henry should see him.\r\nEntreating him, therefore, to remain a few minutes at the bottom of the\r\nstairs, I darted up towards my own room. My hand was already on the\r\nlock of the door before I recollected myself. I then paused, and a\r\ncold shivering came over me. I threw the door forcibly open, as\r\nchildren are accustomed to do when they expect a spectre to stand in\r\nwaiting for them on the other side; but nothing appeared. I stepped\r\nfearfully in: the apartment was empty, and my bedroom was also freed\r\nfrom its hideous guest. I could hardly believe that so great a good\r\nfortune could have befallen me, but when I became assured that my enemy\r\nhad indeed fled, I clapped my hands for joy and ran down to Clerval.\r\n\r\nWe ascended into my room, and the servant presently brought breakfast;\r\nbut I was unable to contain myself. It was not joy only that possessed\r\nme; I felt my flesh tingle with excess of sensitiveness, and my pulse\r\nbeat rapidly. I was unable to remain for a single instant in the same\r\nplace; I jumped over the chairs, clapped my hands, and laughed aloud.\r\nClerval at first attributed my unusual spirits to joy on his arrival,\r\nbut when he observed me more attentively, he saw a wildness in my eyes\r\nfor which he could not account, and my loud, unrestrained, heartless\r\nlaughter frightened and astonished him.\r\n\r\n“My dear Victor,” cried he, “what, for God’s sake,\r\nis the matter? Do not laugh in that manner. How ill you are! What is the\r\ncause of all this?”\r\n\r\n“Do not ask me,” cried I, putting my hands before my eyes, for I\r\nthought I saw the dreaded spectre glide into the room; “_he_ can\r\ntell. Oh, save me! Save me!” I imagined that the monster seized me;\r\nI struggled furiously and fell down in a fit.\r\n\r\nPoor Clerval! What must have been his feelings? A meeting, which he\r\nanticipated with such joy, so strangely turned to bitterness. But I\r\nwas not the witness of his grief, for I was lifeless and did not\r\nrecover my senses for a long, long time.\r\n\r\nThis was the commencement of a nervous fever which confined me for\r\nseveral months. During all that time Henry was my only nurse. I\r\nafterwards learned that, knowing my father’s advanced age and unfitness\r\nfor so long a journey, and how wretched my sickness would make\r\nElizabeth, he spared them this grief by concealing the extent of my\r\ndisorder. He knew that I could not have a more kind and attentive\r\nnurse than himself; and, firm in the hope he felt of my recovery, he\r\ndid not doubt that, instead of doing harm, he performed the kindest\r\naction that he could towards them.\r\n\r\nBut I was in reality very ill, and surely nothing but the unbounded and\r\nunremitting attentions of my friend could have restored me to life.\r\nThe form of the monster on whom I had bestowed existence was for ever\r\nbefore my eyes, and I raved incessantly concerning him. Doubtless my\r\nwords surprised Henry; he at first believed them to be the wanderings\r\nof my disturbed imagination, but the pertinacity with which I\r\ncontinually recurred to the same subject persuaded him that my disorder\r\nindeed owed its origin to some uncommon and terrible event.\r\n\r\nBy very slow degrees, and with frequent relapses that alarmed and\r\ngrieved my friend, I recovered. I remember the first time I became\r\ncapable of observing outward objects with any kind of pleasure, I\r\nperceived that the fallen leaves had disappeared and that the young\r\nbuds were shooting forth from the trees that shaded my window. It was\r\na divine spring, and the season contributed greatly to my\r\nconvalescence. I felt also sentiments of joy and affection revive in\r\nmy bosom; my gloom disappeared, and in a short time I became as\r\ncheerful as before I was attacked by the fatal passion.\r\n\r\n“Dearest Clerval,” exclaimed I, “how kind, how very good\r\nyou are to me. This whole winter, instead of being spent in study, as you\r\npromised yourself, has been consumed in my sick room. How shall I ever\r\nrepay you? I feel the greatest remorse for the disappointment of which I\r\nhave been the occasion, but you will forgive me.”\r\n\r\n“You will repay me entirely if you do not discompose yourself, but get\r\nwell as fast as you can; and since you appear in such good spirits, I\r\nmay speak to you on one subject, may I not?”\r\n\r\nI trembled. One subject! What could it be? Could he allude to an object on\r\nwhom I dared not even think?\r\n\r\n“Compose yourself,” said Clerval, who observed my change of\r\ncolour, “I will not mention it if it agitates you; but your father\r\nand cousin would be very happy if they received a letter from you in your\r\nown handwriting. They hardly know how ill you have been and are uneasy at\r\nyour long silence.”\r\n\r\n“Is that all, my dear Henry? How could you suppose that my first\r\nthought would not fly towards those dear, dear friends whom I love and\r\nwho are so deserving of my love?”\r\n\r\n“If this is your present temper, my friend, you will perhaps be glad\r\nto see a letter that has been lying here some days for you; it is from\r\nyour cousin, I believe.”\r\n\r\n\r\n\r\n\r\nChapter 6\r\n\r\n\r\nClerval then put the following letter into my hands. It was from my\r\nown Elizabeth:\r\n\r\n“My dearest Cousin,\r\n\r\n“You have been ill, very ill, and even the constant letters of dear\r\nkind Henry are not sufficient to reassure me on your account. You are\r\nforbidden to write—to hold a pen; yet one word from you, dear Victor,\r\nis necessary to calm our apprehensions. For a long time I have thought\r\nthat each post would bring this line, and my persuasions have\r\nrestrained my uncle from undertaking a journey to Ingolstadt. I have\r\nprevented his encountering the inconveniences and perhaps dangers of so\r\nlong a journey, yet how often have I regretted not being able to\r\nperform it myself! I figure to myself that the task of attending on\r\nyour sickbed has devolved on some mercenary old nurse, who could never\r\nguess your wishes nor minister to them with the care and affection of\r\nyour poor cousin. Yet that is over now: Clerval writes that indeed\r\nyou are getting better. I eagerly hope that you will confirm this\r\nintelligence soon in your own handwriting.\r\n\r\n“Get well—and return to us. You will find a happy, cheerful home and\r\nfriends who love you dearly. Your father’s health is vigorous, and he\r\nasks but to see you, but to be assured that you are well; and not a\r\ncare will ever cloud his benevolent countenance. How pleased you would\r\nbe to remark the improvement of our Ernest! He is now sixteen and full\r\nof activity and spirit. He is desirous to be a true Swiss and to enter\r\ninto foreign service, but we cannot part with him, at least until his\r\nelder brother returns to us. My uncle is not pleased with the idea of\r\na military career in a distant country, but Ernest never had your\r\npowers of application. He looks upon study as an odious fetter; his\r\ntime is spent in the open air, climbing the hills or rowing on the\r\nlake. I fear that he will become an idler unless we yield the point\r\nand permit him to enter on the profession which he has selected.\r\n\r\n“Little alteration, except the growth of our dear children, has taken\r\nplace since you left us. The blue lake and snow-clad mountains—they\r\nnever change; and I think our placid home and our contented hearts are\r\nregulated by the same immutable laws. My trifling occupations take up\r\nmy time and amuse me, and I am rewarded for any exertions by seeing\r\nnone but happy, kind faces around me. Since you left us, but one\r\nchange has taken place in our little household. Do you remember on\r\nwhat occasion Justine Moritz entered our family? Probably you do not;\r\nI will relate her history, therefore in a few words. Madame Moritz,\r\nher mother, was a widow with four children, of whom Justine was the\r\nthird. This girl had always been the favourite of her father, but\r\nthrough a strange perversity, her mother could not endure her, and\r\nafter the death of M. Moritz, treated her very ill. My aunt observed\r\nthis, and when Justine was twelve years of age, prevailed on her mother\r\nto allow her to live at our house. The republican institutions of our\r\ncountry have produced simpler and happier manners than those which\r\nprevail in the great monarchies that surround it. Hence there is less\r\ndistinction between the several classes of its inhabitants; and the\r\nlower orders, being neither so poor nor so despised, their manners are\r\nmore refined and moral. A servant in Geneva does not mean the same\r\nthing as a servant in France and England. Justine, thus received in\r\nour family, learned the duties of a servant, a condition which, in our\r\nfortunate country, does not include the idea of ignorance and a\r\nsacrifice of the dignity of a human being.\r\n\r\n“Justine, you may remember, was a great favourite of yours; and I\r\nrecollect you once remarked that if you were in an ill humour, one\r\nglance from Justine could dissipate it, for the same reason that\r\nAriosto gives concerning the beauty of Angelica—she looked so\r\nfrank-hearted and happy. My aunt conceived a great attachment for her,\r\nby which she was induced to give her an education superior to that\r\nwhich she had at first intended. This benefit was fully repaid;\r\nJustine was the most grateful little creature in the world: I do not\r\nmean that she made any professions I never heard one pass her lips, but\r\nyou could see by her eyes that she almost adored her protectress.\r\nAlthough her disposition was gay and in many respects inconsiderate,\r\nyet she paid the greatest attention to every gesture of my aunt. She\r\nthought her the model of all excellence and endeavoured to imitate her\r\nphraseology and manners, so that even now she often reminds me of her.\r\n\r\n“When my dearest aunt died every one was too much occupied in their own\r\ngrief to notice poor Justine, who had attended her during her illness\r\nwith the most anxious affection. Poor Justine was very ill; but other\r\ntrials were reserved for her.\r\n\r\n“One by one, her brothers and sister died; and her mother, with the\r\nexception of her neglected daughter, was left childless. The\r\nconscience of the woman was troubled; she began to think that the\r\ndeaths of her favourites was a judgement from heaven to chastise her\r\npartiality. She was a Roman Catholic; and I believe her confessor\r\nconfirmed the idea which she had conceived. Accordingly, a few months\r\nafter your departure for Ingolstadt, Justine was called home by her\r\nrepentant mother. Poor girl! She wept when she quitted our house; she\r\nwas much altered since the death of my aunt; grief had given softness\r\nand a winning mildness to her manners, which had before been remarkable\r\nfor vivacity. Nor was her residence at her mother’s house of a nature\r\nto restore her gaiety. The poor woman was very vacillating in her\r\nrepentance. She sometimes begged Justine to forgive her unkindness,\r\nbut much oftener accused her of having caused the deaths of her\r\nbrothers and sister. Perpetual fretting at length threw Madame Moritz\r\ninto a decline, which at first increased her irritability, but she is\r\nnow at peace for ever. She died on the first approach of cold weather,\r\nat the beginning of this last winter. Justine has just returned to us;\r\nand I assure you I love her tenderly. She is very clever and gentle,\r\nand extremely pretty; as I mentioned before, her mien and her\r\nexpression continually remind me of my dear aunt.\r\n\r\n“I must say also a few words to you, my dear cousin, of little darling\r\nWilliam. I wish you could see him; he is very tall of his age, with\r\nsweet laughing blue eyes, dark eyelashes, and curling hair. When he\r\nsmiles, two little dimples appear on each cheek, which are rosy with\r\nhealth. He has already had one or two little _wives,_ but Louisa Biron\r\nis his favourite, a pretty little girl of five years of age.\r\n\r\n“Now, dear Victor, I dare say you wish to be indulged in a little\r\ngossip concerning the good people of Geneva. The pretty Miss Mansfield\r\nhas already received the congratulatory visits on her approaching\r\nmarriage with a young Englishman, John Melbourne, Esq. Her ugly\r\nsister, Manon, married M. Duvillard, the rich banker, last autumn. Your\r\nfavourite schoolfellow, Louis Manoir, has suffered several misfortunes\r\nsince the departure of Clerval from Geneva. But he has already\r\nrecovered his spirits, and is reported to be on the point of marrying a\r\nlively pretty Frenchwoman, Madame Tavernier. She is a widow, and much\r\nolder than Manoir; but she is very much admired, and a favourite with\r\neverybody.\r\n\r\n“I have written myself into better spirits, dear cousin; but my anxiety\r\nreturns upon me as I conclude. Write, dearest Victor,—one line—one\r\nword will be a blessing to us. Ten thousand thanks to Henry for his\r\nkindness, his affection, and his many letters; we are sincerely\r\ngrateful. Adieu! my cousin; take care of yourself; and, I entreat\r\nyou, write!\r\n\r\n“Elizabeth Lavenza.\r\n\r\n\r\n“Geneva, March 18th, 17—.”\r\n\r\n\r\n\r\n“Dear, dear Elizabeth!” I exclaimed, when I had read her\r\nletter: “I will write instantly and relieve them from the anxiety\r\nthey must feel.” I wrote, and this exertion greatly fatigued me; but\r\nmy convalescence had commenced, and proceeded regularly. In another\r\nfortnight I was able to leave my chamber.\r\n\r\nOne of my first duties on my recovery was to introduce Clerval to the\r\nseveral professors of the university. In doing this, I underwent a\r\nkind of rough usage, ill befitting the wounds that my mind had\r\nsustained. Ever since the fatal night, the end of my labours, and the\r\nbeginning of my misfortunes, I had conceived a violent antipathy even\r\nto the name of natural philosophy. When I was otherwise quite restored\r\nto health, the sight of a chemical instrument would renew all the agony\r\nof my nervous symptoms. Henry saw this, and had removed all my\r\napparatus from my view. He had also changed my apartment; for he\r\nperceived that I had acquired a dislike for the room which had\r\npreviously been my laboratory. But these cares of Clerval were made of\r\nno avail when I visited the professors. M. Waldman inflicted torture\r\nwhen he praised, with kindness and warmth, the astonishing progress I\r\nhad made in the sciences. He soon perceived that I disliked the\r\nsubject; but not guessing the real cause, he attributed my feelings to\r\nmodesty, and changed the subject from my improvement, to the science\r\nitself, with a desire, as I evidently saw, of drawing me out. What\r\ncould I do? He meant to please, and he tormented me. I felt as if he\r\nhad placed carefully, one by one, in my view those instruments which\r\nwere to be afterwards used in putting me to a slow and cruel death. I\r\nwrithed under his words, yet dared not exhibit the pain I felt.\r\nClerval, whose eyes and feelings were always quick in discerning the\r\nsensations of others, declined the subject, alleging, in excuse, his\r\ntotal ignorance; and the conversation took a more general turn. I\r\nthanked my friend from my heart, but I did not speak. I saw plainly\r\nthat he was surprised, but he never attempted to draw my secret from\r\nme; and although I loved him with a mixture of affection and reverence\r\nthat knew no bounds, yet I could never persuade myself to confide in\r\nhim that event which was so often present to my recollection, but which\r\nI feared the detail to another would only impress more deeply.\r\n\r\nM. Krempe was not equally docile; and in my condition at that time, of\r\nalmost insupportable sensitiveness, his harsh blunt encomiums gave me even\r\nmore pain than the benevolent approbation of M. Waldman. “D—n\r\nthe fellow!” cried he; “why, M. Clerval, I assure you he has\r\noutstript us all. Ay, stare if you please; but it is nevertheless true. A\r\nyoungster who, but a few years ago, believed in Cornelius Agrippa as firmly\r\nas in the gospel, has now set himself at the head of the university; and if\r\nhe is not soon pulled down, we shall all be out of countenance.—Ay,\r\nay,” continued he, observing my face expressive of suffering,\r\n“M. Frankenstein is modest; an excellent quality in a young man.\r\nYoung men should be diffident of themselves, you know, M. Clerval: I was\r\nmyself when young; but that wears out in a very short time.”\r\n\r\nM. Krempe had now commenced an eulogy on himself, which happily turned\r\nthe conversation from a subject that was so annoying to me.\r\n\r\nClerval had never sympathised in my tastes for natural science; and his\r\nliterary pursuits differed wholly from those which had occupied me. He\r\ncame to the university with the design of making himself complete\r\nmaster of the oriental languages, and thus he should open a field for\r\nthe plan of life he had marked out for himself. Resolved to pursue no\r\ninglorious career, he turned his eyes toward the East, as affording\r\nscope for his spirit of enterprise. The Persian, Arabic, and Sanskrit\r\nlanguages engaged his attention, and I was easily induced to enter on\r\nthe same studies. Idleness had ever been irksome to me, and now that I\r\nwished to fly from reflection, and hated my former studies, I felt\r\ngreat relief in being the fellow-pupil with my friend, and found not\r\nonly instruction but consolation in the works of the orientalists. I\r\ndid not, like him, attempt a critical knowledge of their dialects, for\r\nI did not contemplate making any other use of them than temporary\r\namusement. I read merely to understand their meaning, and they well\r\nrepaid my labours. Their melancholy is soothing, and their joy\r\nelevating, to a degree I never experienced in studying the authors of\r\nany other country. When you read their writings, life appears to\r\nconsist in a warm sun and a garden of roses,—in the smiles and frowns\r\nof a fair enemy, and the fire that consumes your own heart. How\r\ndifferent from the manly and heroical poetry of Greece and Rome!\r\n\r\nSummer passed away in these occupations, and my return to Geneva was\r\nfixed for the latter end of autumn; but being delayed by several\r\naccidents, winter and snow arrived, the roads were deemed impassable,\r\nand my journey was retarded until the ensuing spring. I felt this\r\ndelay very bitterly; for I longed to see my native town and my beloved\r\nfriends. My return had only been delayed so long, from an\r\nunwillingness to leave Clerval in a strange place, before he had become\r\nacquainted with any of its inhabitants. The winter, however, was spent\r\ncheerfully; and although the spring was uncommonly late, when it came\r\nits beauty compensated for its dilatoriness.\r\n\r\nThe month of May had already commenced, and I expected the letter daily\r\nwhich was to fix the date of my departure, when Henry proposed a\r\npedestrian tour in the environs of Ingolstadt, that I might bid a\r\npersonal farewell to the country I had so long inhabited. I acceded\r\nwith pleasure to this proposition: I was fond of exercise, and Clerval\r\nhad always been my favourite companion in the ramble of this nature\r\nthat I had taken among the scenes of my native country.\r\n\r\nWe passed a fortnight in these perambulations: my health and spirits\r\nhad long been restored, and they gained additional strength from the\r\nsalubrious air I breathed, the natural incidents of our progress, and\r\nthe conversation of my friend. Study had before secluded me from the\r\nintercourse of my fellow-creatures, and rendered me unsocial; but\r\nClerval called forth the better feelings of my heart; he again taught\r\nme to love the aspect of nature, and the cheerful faces of children.\r\nExcellent friend! how sincerely you did love me, and endeavour to\r\nelevate my mind until it was on a level with your own. A selfish\r\npursuit had cramped and narrowed me, until your gentleness and\r\naffection warmed and opened my senses; I became the same happy creature\r\nwho, a few years ago, loved and beloved by all, had no sorrow or care.\r\nWhen happy, inanimate nature had the power of bestowing on me the most\r\ndelightful sensations. A serene sky and verdant fields filled me with\r\necstasy. The present season was indeed divine; the flowers of spring\r\nbloomed in the hedges, while those of summer were already in bud. I\r\nwas undisturbed by thoughts which during the preceding year had pressed\r\nupon me, notwithstanding my endeavours to throw them off, with an\r\ninvincible burden.\r\n\r\nHenry rejoiced in my gaiety, and sincerely sympathised in my feelings: he\r\nexerted himself to amuse me, while he expressed the sensations that filled\r\nhis soul. The resources of his mind on this occasion were truly\r\nastonishing: his conversation was full of imagination; and very often, in\r\nimitation of the Persian and Arabic writers, he invented tales of wonderful\r\nfancy and passion. At other times he repeated my favourite poems, or drew\r\nme out into arguments, which he supported with great ingenuity.\r\n\r\nWe returned to our college on a Sunday afternoon: the peasants were\r\ndancing, and every one we met appeared gay and happy. My own spirits were\r\nhigh, and I bounded along with feelings of unbridled joy and hilarity.\r\n\r\n\r\n\r\n\r\nChapter 7\r\n\r\n\r\nOn my return, I found the following letter from my father:—\r\n\r\n“My dear Victor,\r\n\r\n“You have probably waited impatiently for a letter to fix the date of\r\nyour return to us; and I was at first tempted to write only a few\r\nlines, merely mentioning the day on which I should expect you. But\r\nthat would be a cruel kindness, and I dare not do it. What would be\r\nyour surprise, my son, when you expected a happy and glad welcome, to\r\nbehold, on the contrary, tears and wretchedness? And how, Victor, can\r\nI relate our misfortune? Absence cannot have rendered you callous to\r\nour joys and griefs; and how shall I inflict pain on my long absent\r\nson? I wish to prepare you for the woeful news, but I know it is\r\nimpossible; even now your eye skims over the page to seek the words\r\nwhich are to convey to you the horrible tidings.\r\n\r\n“William is dead!—that sweet child, whose smiles delighted and warmed\r\nmy heart, who was so gentle, yet so gay! Victor, he is murdered!\r\n\r\n“I will not attempt to console you; but will simply relate the\r\ncircumstances of the transaction.\r\n\r\n“Last Thursday (May 7th), I, my niece, and your two brothers, went to\r\nwalk in Plainpalais. The evening was warm and serene, and we prolonged\r\nour walk farther than usual. It was already dusk before we thought of\r\nreturning; and then we discovered that William and Ernest, who had gone\r\non before, were not to be found. We accordingly rested on a seat until\r\nthey should return. Presently Ernest came, and enquired if we had seen\r\nhis brother; he said, that he had been playing with him, that William\r\nhad run away to hide himself, and that he vainly sought for him, and\r\nafterwards waited for a long time, but that he did not return.\r\n\r\n“This account rather alarmed us, and we continued to search for him\r\nuntil night fell, when Elizabeth conjectured that he might have\r\nreturned to the house. He was not there. We returned again, with\r\ntorches; for I could not rest, when I thought that my sweet boy had\r\nlost himself, and was exposed to all the damps and dews of night;\r\nElizabeth also suffered extreme anguish. About five in the morning I\r\ndiscovered my lovely boy, whom the night before I had seen blooming and\r\nactive in health, stretched on the grass livid and motionless; the\r\nprint of the murder’s finger was on his neck.\r\n\r\n“He was conveyed home, and the anguish that was visible in my\r\ncountenance betrayed the secret to Elizabeth. She was very earnest to\r\nsee the corpse. At first I attempted to prevent her but she persisted,\r\nand entering the room where it lay, hastily examined the neck of the\r\nvictim, and clasping her hands exclaimed, ‘O God! I have murdered my\r\ndarling child!’\r\n\r\n“She fainted, and was restored with extreme difficulty. When she again\r\nlived, it was only to weep and sigh. She told me, that that same\r\nevening William had teased her to let him wear a very valuable\r\nminiature that she possessed of your mother. This picture is gone, and\r\nwas doubtless the temptation which urged the murderer to the deed. We\r\nhave no trace of him at present, although our exertions to discover him\r\nare unremitted; but they will not restore my beloved William!\r\n\r\n“Come, dearest Victor; you alone can console Elizabeth. She weeps\r\ncontinually, and accuses herself unjustly as the cause of his death;\r\nher words pierce my heart. We are all unhappy; but will not that be an\r\nadditional motive for you, my son, to return and be our comforter?\r\nYour dear mother! Alas, Victor! I now say, Thank God she did not live\r\nto witness the cruel, miserable death of her youngest darling!\r\n\r\n“Come, Victor; not brooding thoughts of vengeance against the assassin,\r\nbut with feelings of peace and gentleness, that will heal, instead of\r\nfestering, the wounds of our minds. Enter the house of mourning, my\r\nfriend, but with kindness and affection for those who love you, and not\r\nwith hatred for your enemies.\r\n\r\n“Your affectionate and afflicted father,\r\n\r\n“Alphonse Frankenstein.\r\n\r\n\r\n\r\n“Geneva, May 12th, 17—.”\r\n\r\n\r\n\r\nClerval, who had watched my countenance as I read this letter, was\r\nsurprised to observe the despair that succeeded the joy I at first\r\nexpressed on receiving news from my friends. I threw the letter on the\r\ntable, and covered my face with my hands.\r\n\r\n“My dear Frankenstein,” exclaimed Henry, when he perceived me\r\nweep with bitterness, “are you always to be unhappy? My dear friend,\r\nwhat has happened?”\r\n\r\nI motioned him to take up the letter, while I walked up and down the\r\nroom in the extremest agitation. Tears also gushed from the eyes of\r\nClerval, as he read the account of my misfortune.\r\n\r\n“I can offer you no consolation, my friend,” said he;\r\n“your disaster is irreparable. What do you intend to do?”\r\n\r\n“To go instantly to Geneva: come with me, Henry, to order the horses.”\r\n\r\nDuring our walk, Clerval endeavoured to say a few words of consolation;\r\nhe could only express his heartfelt sympathy. “Poor William!” said he,\r\n“dear lovely child, he now sleeps with his angel mother! Who that had\r\nseen him bright and joyous in his young beauty, but must weep over his\r\nuntimely loss! To die so miserably; to feel the murderer’s grasp! How\r\nmuch more a murdered that could destroy radiant innocence! Poor little\r\nfellow! one only consolation have we; his friends mourn and weep, but\r\nhe is at rest. The pang is over, his sufferings are at an end for ever.\r\nA sod covers his gentle form, and he knows no pain. He can no longer\r\nbe a subject for pity; we must reserve that for his miserable\r\nsurvivors.”\r\n\r\nClerval spoke thus as we hurried through the streets; the words\r\nimpressed themselves on my mind and I remembered them afterwards in\r\nsolitude. But now, as soon as the horses arrived, I hurried into a\r\ncabriolet, and bade farewell to my friend.\r\n\r\nMy journey was very melancholy. At first I wished to hurry on, for I longed\r\nto console and sympathise with my loved and sorrowing friends; but when I\r\ndrew near my native town, I slackened my progress. I could hardly sustain\r\nthe multitude of feelings that crowded into my mind. I passed through\r\nscenes familiar to my youth, but which I had not seen for nearly six years.\r\nHow altered every thing might be during that time! One sudden and\r\ndesolating change had taken place; but a thousand little circumstances\r\nmight have by degrees worked other alterations, which, although they were\r\ndone more tranquilly, might not be the less decisive. Fear overcame me; I\r\ndared no advance, dreading a thousand nameless evils that made me tremble,\r\nalthough I was unable to define them.\r\n\r\nI remained two days at Lausanne, in this painful state of mind. I\r\ncontemplated the lake: the waters were placid; all around was calm; and the\r\nsnowy mountains, “the palaces of nature,” were not changed. By\r\ndegrees the calm and heavenly scene restored me, and I continued my journey\r\ntowards Geneva.\r\n\r\nThe road ran by the side of the lake, which became narrower as I\r\napproached my native town. I discovered more distinctly the black\r\nsides of Jura, and the bright summit of Mont Blanc. I wept like a\r\nchild. “Dear mountains! my own beautiful lake! how do you welcome your\r\nwanderer? Your summits are clear; the sky and lake are blue and\r\nplacid. Is this to prognosticate peace, or to mock at my unhappiness?”\r\n\r\nI fear, my friend, that I shall render myself tedious by dwelling on\r\nthese preliminary circumstances; but they were days of comparative\r\nhappiness, and I think of them with pleasure. My country, my beloved\r\ncountry! who but a native can tell the delight I took in again\r\nbeholding thy streams, thy mountains, and, more than all, thy lovely\r\nlake!\r\n\r\nYet, as I drew nearer home, grief and fear again overcame me. Night also\r\nclosed around; and when I could hardly see the dark mountains, I felt still\r\nmore gloomily. The picture appeared a vast and dim scene of evil, and I\r\nforesaw obscurely that I was destined to become the most wretched of human\r\nbeings. Alas! I prophesied truly, and failed only in one single\r\ncircumstance, that in all the misery I imagined and dreaded, I did not\r\nconceive the hundredth part of the anguish I was destined to endure.\r\n\r\nIt was completely dark when I arrived in the environs of Geneva; the gates\r\nof the town were already shut; and I was obliged to pass the night at\r\nSecheron, a village at the distance of half a league from the city. The sky\r\nwas serene; and, as I was unable to rest, I resolved to visit the spot\r\nwhere my poor William had been murdered. As I could not pass through the\r\ntown, I was obliged to cross the lake in a boat to arrive at Plainpalais.\r\nDuring this short voyage I saw the lightning playing on the summit of Mont\r\nBlanc in the most beautiful figures. The storm appeared to approach\r\nrapidly, and, on landing, I ascended a low hill, that I might observe its\r\nprogress. It advanced; the heavens were clouded, and I soon felt the rain\r\ncoming slowly in large drops, but its violence quickly increased.\r\n\r\nI quitted my seat, and walked on, although the darkness and storm\r\nincreased every minute, and the thunder burst with a terrific crash\r\nover my head. It was echoed from Salêve, the Juras, and the Alps of\r\nSavoy; vivid flashes of lightning dazzled my eyes, illuminating the\r\nlake, making it appear like a vast sheet of fire; then for an instant\r\nevery thing seemed of a pitchy darkness, until the eye recovered itself\r\nfrom the preceding flash. The storm, as is often the case in\r\nSwitzerland, appeared at once in various parts of the heavens. The\r\nmost violent storm hung exactly north of the town, over the part of the\r\nlake which lies between the promontory of Belrive and the village of\r\nCopêt. Another storm enlightened Jura with faint flashes; and another\r\ndarkened and sometimes disclosed the Môle, a peaked mountain to the\r\neast of the lake.\r\n\r\nWhile I watched the tempest, so beautiful yet terrific, I wandered on with\r\na hasty step. This noble war in the sky elevated my spirits; I clasped my\r\nhands, and exclaimed aloud, “William, dear angel! this is thy\r\nfuneral, this thy dirge!” As I said these words, I perceived in the\r\ngloom a figure which stole from behind a clump of trees near me; I stood\r\nfixed, gazing intently: I could not be mistaken. A flash of lightning\r\nilluminated the object, and discovered its shape plainly to me; its\r\ngigantic stature, and the deformity of its aspect more hideous than belongs\r\nto humanity, instantly informed me that it was the wretch, the filthy\r\ndæmon, to whom I had given life. What did he there? Could he be (I\r\nshuddered at the conception) the murderer of my brother? No sooner did that\r\nidea cross my imagination, than I became convinced of its truth; my teeth\r\nchattered, and I was forced to lean against a tree for support. The figure\r\npassed me quickly, and I lost it in the gloom. Nothing in human shape could\r\nhave destroyed the fair child. _He_ was the murderer! I could not\r\ndoubt it. The mere presence of the idea was an irresistible proof of the\r\nfact. I thought of pursuing the devil; but it would have been in vain, for\r\nanother flash discovered him to me hanging among the rocks of the nearly\r\nperpendicular ascent of Mont Salêve, a hill that bounds Plainpalais on the\r\nsouth. He soon reached the summit, and disappeared.\r\n\r\nI remained motionless. The thunder ceased; but the rain still\r\ncontinued, and the scene was enveloped in an impenetrable darkness. I\r\nrevolved in my mind the events which I had until now sought to forget:\r\nthe whole train of my progress toward the creation; the appearance of\r\nthe works of my own hands at my bedside; its departure. Two years had\r\nnow nearly elapsed since the night on which he first received life; and\r\nwas this his first crime? Alas! I had turned loose into the world a\r\ndepraved wretch, whose delight was in carnage and misery; had he not\r\nmurdered my brother?\r\n\r\nNo one can conceive the anguish I suffered during the remainder of the\r\nnight, which I spent, cold and wet, in the open air. But I did not\r\nfeel the inconvenience of the weather; my imagination was busy in\r\nscenes of evil and despair. I considered the being whom I had cast\r\namong mankind, and endowed with the will and power to effect purposes\r\nof horror, such as the deed which he had now done, nearly in the light\r\nof my own vampire, my own spirit let loose from the grave, and forced\r\nto destroy all that was dear to me.\r\n\r\nDay dawned; and I directed my steps towards the town. The gates were\r\nopen, and I hastened to my father’s house. My first thought was to\r\ndiscover what I knew of the murderer, and cause instant pursuit to be\r\nmade. But I paused when I reflected on the story that I had to tell. A\r\nbeing whom I myself had formed, and endued with life, had met me at\r\nmidnight among the precipices of an inaccessible mountain. I\r\nremembered also the nervous fever with which I had been seized just at\r\nthe time that I dated my creation, and which would give an air of\r\ndelirium to a tale otherwise so utterly improbable. I well knew that\r\nif any other had communicated such a relation to me, I should have\r\nlooked upon it as the ravings of insanity. Besides, the strange nature\r\nof the animal would elude all pursuit, even if I were so far credited\r\nas to persuade my relatives to commence it. And then of what use would\r\nbe pursuit? Who could arrest a creature capable of scaling the\r\noverhanging sides of Mont Salêve? These reflections determined me, and\r\nI resolved to remain silent.\r\n\r\nIt was about five in the morning when I entered my father’s house. I\r\ntold the servants not to disturb the family, and went into the library\r\nto attend their usual hour of rising.\r\n\r\nSix years had elapsed, passed in a dream but for one indelible trace, and I\r\nstood in the same place where I had last embraced my father before my\r\ndeparture for Ingolstadt. Beloved and venerable parent! He still remained\r\nto me. I gazed on the picture of my mother, which stood over the\r\nmantel-piece. It was an historical subject, painted at my father’s\r\ndesire, and represented Caroline Beaufort in an agony of despair, kneeling\r\nby the coffin of her dead father. Her garb was rustic, and her cheek pale;\r\nbut there was an air of dignity and beauty, that hardly permitted the\r\nsentiment of pity. Below this picture was a miniature of William; and my\r\ntears flowed when I looked upon it. While I was thus engaged, Ernest\r\nentered: he had heard me arrive, and hastened to welcome me:\r\n“Welcome, my dearest Victor,” said he. “Ah! I wish you\r\nhad come three months ago, and then you would have found us all joyous and\r\ndelighted. You come to us now to share a misery which nothing can\r\nalleviate; yet your presence will, I hope, revive our father, who seems\r\nsinking under his misfortune; and your persuasions will induce poor\r\nElizabeth to cease her vain and tormenting self-accusations.—Poor\r\nWilliam! he was our darling and our pride!”\r\n\r\nTears, unrestrained, fell from my brother’s eyes; a sense of mortal\r\nagony crept over my frame. Before, I had only imagined the\r\nwretchedness of my desolated home; the reality came on me as a new, and\r\na not less terrible, disaster. I tried to calm Ernest; I enquired more\r\nminutely concerning my father, and here I named my cousin.\r\n\r\n“She most of all,” said Ernest, “requires consolation; she accused\r\nherself of having caused the death of my brother, and that made her\r\nvery wretched. But since the murderer has been discovered—”\r\n\r\n“The murderer discovered! Good God! how can that be? who could attempt\r\nto pursue him? It is impossible; one might as well try to overtake the\r\nwinds, or confine a mountain-stream with a straw. I saw him too; he\r\nwas free last night!”\r\n\r\n“I do not know what you mean,” replied my brother, in accents of\r\nwonder, “but to us the discovery we have made completes our misery. No\r\none would believe it at first; and even now Elizabeth will not be\r\nconvinced, notwithstanding all the evidence. Indeed, who would credit\r\nthat Justine Moritz, who was so amiable, and fond of all the family,\r\ncould suddenly become so capable of so frightful, so appalling a crime?”\r\n\r\n“Justine Moritz! Poor, poor girl, is she the accused? But it is\r\nwrongfully; every one knows that; no one believes it, surely, Ernest?”\r\n\r\n“No one did at first; but several circumstances came out, that have\r\nalmost forced conviction upon us; and her own behaviour has been so\r\nconfused, as to add to the evidence of facts a weight that, I fear,\r\nleaves no hope for doubt. But she will be tried today, and you will\r\nthen hear all.”\r\n\r\nHe then related that, the morning on which the murder of poor William\r\nhad been discovered, Justine had been taken ill, and confined to her\r\nbed for several days. During this interval, one of the servants,\r\nhappening to examine the apparel she had worn on the night of the\r\nmurder, had discovered in her pocket the picture of my mother, which\r\nhad been judged to be the temptation of the murderer. The servant\r\ninstantly showed it to one of the others, who, without saying a word to\r\nany of the family, went to a magistrate; and, upon their deposition,\r\nJustine was apprehended. On being charged with the fact, the poor girl\r\nconfirmed the suspicion in a great measure by her extreme confusion of\r\nmanner.\r\n\r\nThis was a strange tale, but it did not shake my faith; and I replied\r\nearnestly, “You are all mistaken; I know the murderer. Justine, poor,\r\ngood Justine, is innocent.”\r\n\r\nAt that instant my father entered. I saw unhappiness deeply impressed\r\non his countenance, but he endeavoured to welcome me cheerfully; and,\r\nafter we had exchanged our mournful greeting, would have introduced\r\nsome other topic than that of our disaster, had not Ernest exclaimed,\r\n“Good God, papa! Victor says that he knows who was the murderer of\r\npoor William.”\r\n\r\n“We do also, unfortunately,” replied my father, “for indeed I had\r\nrather have been for ever ignorant than have discovered so much\r\ndepravity and ungratitude in one I valued so highly.”\r\n\r\n“My dear father, you are mistaken; Justine is innocent.”\r\n\r\n“If she is, God forbid that she should suffer as guilty. She is to be\r\ntried today, and I hope, I sincerely hope, that she will be acquitted.”\r\n\r\nThis speech calmed me. I was firmly convinced in my own mind that\r\nJustine, and indeed every human being, was guiltless of this murder. I\r\nhad no fear, therefore, that any circumstantial evidence could be\r\nbrought forward strong enough to convict her. My tale was not one to\r\nannounce publicly; its astounding horror would be looked upon as\r\nmadness by the vulgar. Did any one indeed exist, except I, the\r\ncreator, who would believe, unless his senses convinced him, in the\r\nexistence of the living monument of presumption and rash ignorance\r\nwhich I had let loose upon the world?\r\n\r\nWe were soon joined by Elizabeth. Time had altered her since I last\r\nbeheld her; it had endowed her with loveliness surpassing the beauty of\r\nher childish years. There was the same candour, the same vivacity, but\r\nit was allied to an expression more full of sensibility and intellect.\r\nShe welcomed me with the greatest affection. “Your arrival, my dear\r\ncousin,” said she, “fills me with hope. You perhaps will find some\r\nmeans to justify my poor guiltless Justine. Alas! who is safe, if she\r\nbe convicted of crime? I rely on her innocence as certainly as I do\r\nupon my own. Our misfortune is doubly hard to us; we have not only\r\nlost that lovely darling boy, but this poor girl, whom I sincerely\r\nlove, is to be torn away by even a worse fate. If she is condemned, I\r\nnever shall know joy more. But she will not, I am sure she will not;\r\nand then I shall be happy again, even after the sad death of my little\r\nWilliam.”\r\n\r\n“She is innocent, my Elizabeth,” said I, “and that shall\r\nbe proved; fear nothing, but let your spirits be cheered by the assurance\r\nof her acquittal.”\r\n\r\n“How kind and generous you are! every one else believes in her guilt,\r\nand that made me wretched, for I knew that it was impossible: and to\r\nsee every one else prejudiced in so deadly a manner rendered me\r\nhopeless and despairing.” She wept.\r\n\r\n“Dearest niece,” said my father, “dry your tears. If she\r\nis, as you believe, innocent, rely on the justice of our laws, and the\r\nactivity with which I shall prevent the slightest shadow of\r\npartiality.”\r\n\r\n\r\n\r\n\r\nChapter 8\r\n\r\n\r\nWe passed a few sad hours until eleven o’clock, when the trial was to\r\ncommence. My father and the rest of the family being obliged to attend\r\nas witnesses, I accompanied them to the court. During the whole of\r\nthis wretched mockery of justice I suffered living torture. It was to\r\nbe decided whether the result of my curiosity and lawless devices would\r\ncause the death of two of my fellow beings: one a smiling babe full of\r\ninnocence and joy, the other far more dreadfully murdered, with every\r\naggravation of infamy that could make the murder memorable in horror.\r\nJustine also was a girl of merit and possessed qualities which promised\r\nto render her life happy; now all was to be obliterated in an\r\nignominious grave, and I the cause! A thousand times rather would I\r\nhave confessed myself guilty of the crime ascribed to Justine, but I\r\nwas absent when it was committed, and such a declaration would have\r\nbeen considered as the ravings of a madman and would not have\r\nexculpated her who suffered through me.\r\n\r\nThe appearance of Justine was calm. She was dressed in mourning, and\r\nher countenance, always engaging, was rendered, by the solemnity of her\r\nfeelings, exquisitely beautiful. Yet she appeared confident in\r\ninnocence and did not tremble, although gazed on and execrated by\r\nthousands, for all the kindness which her beauty might otherwise have\r\nexcited was obliterated in the minds of the spectators by the\r\nimagination of the enormity she was supposed to have committed. She\r\nwas tranquil, yet her tranquillity was evidently constrained; and as\r\nher confusion had before been adduced as a proof of her guilt, she\r\nworked up her mind to an appearance of courage. When she entered the\r\ncourt she threw her eyes round it and quickly discovered where we were\r\nseated. A tear seemed to dim her eye when she saw us, but she quickly\r\nrecovered herself, and a look of sorrowful affection seemed to attest\r\nher utter guiltlessness.\r\n\r\nThe trial began, and after the advocate against her had stated the\r\ncharge, several witnesses were called. Several strange facts combined\r\nagainst her, which might have staggered anyone who had not such proof\r\nof her innocence as I had. She had been out the whole of the night on\r\nwhich the murder had been committed and towards morning had been\r\nperceived by a market-woman not far from the spot where the body of the\r\nmurdered child had been afterwards found. The woman asked her what she\r\ndid there, but she looked very strangely and only returned a confused\r\nand unintelligible answer. She returned to the house about eight\r\no’clock, and when one inquired where she had passed the night, she\r\nreplied that she had been looking for the child and demanded earnestly\r\nif anything had been heard concerning him. When shown the body, she\r\nfell into violent hysterics and kept her bed for several days. The\r\npicture was then produced which the servant had found in her pocket;\r\nand when Elizabeth, in a faltering voice, proved that it was the same\r\nwhich, an hour before the child had been missed, she had placed round\r\nhis neck, a murmur of horror and indignation filled the court.\r\n\r\nJustine was called on for her defence. As the trial had proceeded, her\r\ncountenance had altered. Surprise, horror, and misery were strongly\r\nexpressed. Sometimes she struggled with her tears, but when she was\r\ndesired to plead, she collected her powers and spoke in an audible\r\nalthough variable voice.\r\n\r\n“God knows,” she said, “how entirely I am innocent. But I\r\ndo not pretend that my protestations should acquit me; I rest my innocence\r\non a plain and simple explanation of the facts which have been adduced\r\nagainst me, and I hope the character I have always borne will incline my\r\njudges to a favourable interpretation where any circumstance appears\r\ndoubtful or suspicious.”\r\n\r\nShe then related that, by the permission of Elizabeth, she had passed\r\nthe evening of the night on which the murder had been committed at the\r\nhouse of an aunt at Chêne, a village situated at about a league from\r\nGeneva. On her return, at about nine o’clock, she met a man who asked\r\nher if she had seen anything of the child who was lost. She was\r\nalarmed by this account and passed several hours in looking for him,\r\nwhen the gates of Geneva were shut, and she was forced to remain\r\nseveral hours of the night in a barn belonging to a cottage, being\r\nunwilling to call up the inhabitants, to whom she was well known. Most\r\nof the night she spent here watching; towards morning she believed that\r\nshe slept for a few minutes; some steps disturbed her, and she awoke.\r\nIt was dawn, and she quitted her asylum, that she might again endeavour\r\nto find my brother. If she had gone near the spot where his body lay,\r\nit was without her knowledge. That she had been bewildered when\r\nquestioned by the market-woman was not surprising, since she had passed\r\na sleepless night and the fate of poor William was yet uncertain.\r\nConcerning the picture she could give no account.\r\n\r\n“I know,” continued the unhappy victim, “how heavily and\r\nfatally this one circumstance weighs against me, but I have no power of\r\nexplaining it; and when I have expressed my utter ignorance, I am only left\r\nto conjecture concerning the probabilities by which it might have been\r\nplaced in my pocket. But here also I am checked. I believe that I have no\r\nenemy on earth, and none surely would have been so wicked as to destroy me\r\nwantonly. Did the murderer place it there? I know of no opportunity\r\nafforded him for so doing; or, if I had, why should he have stolen the\r\njewel, to part with it again so soon?\r\n\r\n“I commit my cause to the justice of my judges, yet I see no room for\r\nhope. I beg permission to have a few witnesses examined concerning my\r\ncharacter, and if their testimony shall not overweigh my supposed\r\nguilt, I must be condemned, although I would pledge my salvation on my\r\ninnocence.”\r\n\r\nSeveral witnesses were called who had known her for many years, and\r\nthey spoke well of her; but fear and hatred of the crime of which they\r\nsupposed her guilty rendered them timorous and unwilling to come\r\nforward. Elizabeth saw even this last resource, her excellent\r\ndispositions and irreproachable conduct, about to fail the accused,\r\nwhen, although violently agitated, she desired permission to address\r\nthe court.\r\n\r\n“I am,” said she, “the cousin of the unhappy child who\r\nwas murdered, or rather his sister, for I was educated by and have lived\r\nwith his parents ever since and even long before his birth. It may\r\ntherefore be judged indecent in me to come forward on this occasion, but\r\nwhen I see a fellow creature about to perish through the cowardice of her\r\npretended friends, I wish to be allowed to speak, that I may say what I\r\nknow of her character. I am well acquainted with the accused. I have lived\r\nin the same house with her, at one time for five and at another for nearly\r\ntwo years. During all that period she appeared to me the most amiable and\r\nbenevolent of human creatures. She nursed Madame Frankenstein, my aunt, in\r\nher last illness, with the greatest affection and care and afterwards\r\nattended her own mother during a tedious illness, in a manner that excited\r\nthe admiration of all who knew her, after which she again lived in my\r\nuncle’s house, where she was beloved by all the family. She was\r\nwarmly attached to the child who is now dead and acted towards him like a\r\nmost affectionate mother. For my own part, I do not hesitate to say that,\r\nnotwithstanding all the evidence produced against her, I believe and rely\r\non her perfect innocence. She had no temptation for such an action; as to\r\nthe bauble on which the chief proof rests, if she had earnestly desired it,\r\nI should have willingly given it to her, so much do I esteem and value\r\nher.”\r\n\r\nA murmur of approbation followed Elizabeth’s simple and powerful\r\nappeal, but it was excited by her generous interference, and not in\r\nfavour of poor Justine, on whom the public indignation was turned with\r\nrenewed violence, charging her with the blackest ingratitude. She\r\nherself wept as Elizabeth spoke, but she did not answer. My own\r\nagitation and anguish was extreme during the whole trial. I believed\r\nin her innocence; I knew it. Could the dæmon who had (I did not for a\r\nminute doubt) murdered my brother also in his hellish sport have\r\nbetrayed the innocent to death and ignominy? I could not sustain the\r\nhorror of my situation, and when I perceived that the popular voice and\r\nthe countenances of the judges had already condemned my unhappy victim,\r\nI rushed out of the court in agony. The tortures of the accused did\r\nnot equal mine; she was sustained by innocence, but the fangs of\r\nremorse tore my bosom and would not forgo their hold.\r\n\r\nI passed a night of unmingled wretchedness. In the morning I went to\r\nthe court; my lips and throat were parched. I dared not ask the fatal\r\nquestion, but I was known, and the officer guessed the cause of my\r\nvisit. The ballots had been thrown; they were all black, and Justine\r\nwas condemned.\r\n\r\nI cannot pretend to describe what I then felt. I had before\r\nexperienced sensations of horror, and I have endeavoured to bestow upon\r\nthem adequate expressions, but words cannot convey an idea of the\r\nheart-sickening despair that I then endured. The person to whom I\r\naddressed myself added that Justine had already confessed her guilt.\r\n“That evidence,” he observed, “was hardly required in so glaring a\r\ncase, but I am glad of it, and, indeed, none of our judges like to\r\ncondemn a criminal upon circumstantial evidence, be it ever so\r\ndecisive.”\r\n\r\nThis was strange and unexpected intelligence; what could it mean? Had\r\nmy eyes deceived me? And was I really as mad as the whole world would\r\nbelieve me to be if I disclosed the object of my suspicions? I\r\nhastened to return home, and Elizabeth eagerly demanded the result.\r\n\r\n“My cousin,” replied I, “it is decided as you may have expected; all\r\njudges had rather that ten innocent should suffer than that one guilty\r\nshould escape. But she has confessed.”\r\n\r\nThis was a dire blow to poor Elizabeth, who had relied with firmness upon\r\nJustine’s innocence. “Alas!” said she. “How shall I\r\never again believe in human goodness? Justine, whom I loved and esteemed as\r\nmy sister, how could she put on those smiles of innocence only to betray?\r\nHer mild eyes seemed incapable of any severity or guile, and yet she has\r\ncommitted a murder.”\r\n\r\nSoon after we heard that the poor victim had expressed a desire to see my\r\ncousin. My father wished her not to go but said that he left it to her own\r\njudgment and feelings to decide. “Yes,” said Elizabeth,\r\n“I will go, although she is guilty; and you, Victor, shall accompany\r\nme; I cannot go alone.” The idea of this visit was torture to me, yet\r\nI could not refuse.\r\n\r\nWe entered the gloomy prison chamber and beheld Justine sitting on some\r\nstraw at the farther end; her hands were manacled, and her head rested on\r\nher knees. She rose on seeing us enter, and when we were left alone with\r\nher, she threw herself at the feet of Elizabeth, weeping bitterly. My\r\ncousin wept also.\r\n\r\n“Oh, Justine!” said she. “Why did you rob me of my last consolation?\r\nI relied on your innocence, and although I was then very wretched, I\r\nwas not so miserable as I am now.”\r\n\r\n“And do you also believe that I am so very, very wicked? Do you also\r\njoin with my enemies to crush me, to condemn me as a murderer?” Her\r\nvoice was suffocated with sobs.\r\n\r\n“Rise, my poor girl,” said Elizabeth; “why do you kneel,\r\nif you are innocent? I am not one of your enemies, I believed you\r\nguiltless, notwithstanding every evidence, until I heard that you had\r\nyourself declared your guilt. That report, you say, is false; and be\r\nassured, dear Justine, that nothing can shake my confidence in you for a\r\nmoment, but your own confession.”\r\n\r\n“I did confess, but I confessed a lie. I confessed, that I might\r\nobtain absolution; but now that falsehood lies heavier at my heart than\r\nall my other sins. The God of heaven forgive me! Ever since I was\r\ncondemned, my confessor has besieged me; he threatened and menaced,\r\nuntil I almost began to think that I was the monster that he said I\r\nwas. He threatened excommunication and hell fire in my last moments if\r\nI continued obdurate. Dear lady, I had none to support me; all looked\r\non me as a wretch doomed to ignominy and perdition. What could I do?\r\nIn an evil hour I subscribed to a lie; and now only am I truly\r\nmiserable.”\r\n\r\nShe paused, weeping, and then continued, “I thought with horror, my\r\nsweet lady, that you should believe your Justine, whom your blessed\r\naunt had so highly honoured, and whom you loved, was a creature capable\r\nof a crime which none but the devil himself could have perpetrated.\r\nDear William! dearest blessed child! I soon shall see you again in\r\nheaven, where we shall all be happy; and that consoles me, going as I\r\nam to suffer ignominy and death.”\r\n\r\n“Oh, Justine! Forgive me for having for one moment distrusted you.\r\nWhy did you confess? But do not mourn, dear girl. Do not fear. I\r\nwill proclaim, I will prove your innocence. I will melt the stony\r\nhearts of your enemies by my tears and prayers. You shall not die!\r\nYou, my playfellow, my companion, my sister, perish on the scaffold!\r\nNo! No! I never could survive so horrible a misfortune.”\r\n\r\nJustine shook her head mournfully. “I do not fear to die,” she said;\r\n“that pang is past. God raises my weakness and gives me courage to\r\nendure the worst. I leave a sad and bitter world; and if you remember\r\nme and think of me as of one unjustly condemned, I am resigned to the\r\nfate awaiting me. Learn from me, dear lady, to submit in patience to\r\nthe will of heaven!”\r\n\r\nDuring this conversation I had retired to a corner of the prison room,\r\nwhere I could conceal the horrid anguish that possessed me. Despair!\r\nWho dared talk of that? The poor victim, who on the morrow was to pass\r\nthe awful boundary between life and death, felt not, as I did, such\r\ndeep and bitter agony. I gnashed my teeth and ground them together,\r\nuttering a groan that came from my inmost soul. Justine started. When\r\nshe saw who it was, she approached me and said, “Dear sir, you are very\r\nkind to visit me; you, I hope, do not believe that I am guilty?”\r\n\r\nI could not answer. “No, Justine,” said Elizabeth; “he is more\r\nconvinced of your innocence than I was, for even when he heard that you\r\nhad confessed, he did not credit it.”\r\n\r\n“I truly thank him. In these last moments I feel the sincerest\r\ngratitude towards those who think of me with kindness. How sweet is\r\nthe affection of others to such a wretch as I am! It removes more than\r\nhalf my misfortune, and I feel as if I could die in peace now that my\r\ninnocence is acknowledged by you, dear lady, and your cousin.”\r\n\r\nThus the poor sufferer tried to comfort others and herself. She indeed\r\ngained the resignation she desired. But I, the true murderer, felt the\r\nnever-dying worm alive in my bosom, which allowed of no hope or\r\nconsolation. Elizabeth also wept and was unhappy, but hers also was\r\nthe misery of innocence, which, like a cloud that passes over the fair\r\nmoon, for a while hides but cannot tarnish its brightness. Anguish and\r\ndespair had penetrated into the core of my heart; I bore a hell within\r\nme which nothing could extinguish. We stayed several hours with\r\nJustine, and it was with great difficulty that Elizabeth could tear\r\nherself away. “I wish,” cried she, “that I were to die with you; I\r\ncannot live in this world of misery.”\r\n\r\nJustine assumed an air of cheerfulness, while she with difficulty\r\nrepressed her bitter tears. She embraced Elizabeth and said in a voice\r\nof half-suppressed emotion, “Farewell, sweet lady, dearest Elizabeth,\r\nmy beloved and only friend; may heaven, in its bounty, bless and\r\npreserve you; may this be the last misfortune that you will ever\r\nsuffer! Live, and be happy, and make others so.”\r\n\r\nAnd on the morrow Justine died. Elizabeth’s heart-rending eloquence\r\nfailed to move the judges from their settled conviction in the\r\ncriminality of the saintly sufferer. My passionate and indignant\r\nappeals were lost upon them. And when I received their cold answers\r\nand heard the harsh, unfeeling reasoning of these men, my purposed\r\navowal died away on my lips. Thus I might proclaim myself a madman,\r\nbut not revoke the sentence passed upon my wretched victim. She\r\nperished on the scaffold as a murderess!\r\n\r\nFrom the tortures of my own heart, I turned to contemplate the deep and\r\nvoiceless grief of my Elizabeth. This also was my doing! And my\r\nfather’s woe, and the desolation of that late so smiling home all was\r\nthe work of my thrice-accursed hands! Ye weep, unhappy ones, but these\r\nare not your last tears! Again shall you raise the funeral wail, and\r\nthe sound of your lamentations shall again and again be heard!\r\nFrankenstein, your son, your kinsman, your early, much-loved friend; he\r\nwho would spend each vital drop of blood for your sakes, who has no\r\nthought nor sense of joy except as it is mirrored also in your dear\r\ncountenances, who would fill the air with blessings and spend his life\r\nin serving you—he bids you weep, to shed countless tears; happy beyond\r\nhis hopes, if thus inexorable fate be satisfied, and if the destruction\r\npause before the peace of the grave have succeeded to your sad torments!\r\n\r\nThus spoke my prophetic soul, as, torn by remorse, horror, and despair,\r\nI beheld those I loved spend vain sorrow upon the graves of William and\r\nJustine, the first hapless victims to my unhallowed arts.\r\n\r\n\r\n\r\n\r\nChapter 9\r\n\r\n\r\nNothing is more painful to the human mind than, after the feelings have\r\nbeen worked up by a quick succession of events, the dead calmness of\r\ninaction and certainty which follows and deprives the soul both of hope\r\nand fear. Justine died, she rested, and I was alive. The blood flowed\r\nfreely in my veins, but a weight of despair and remorse pressed on my\r\nheart which nothing could remove. Sleep fled from my eyes; I wandered\r\nlike an evil spirit, for I had committed deeds of mischief beyond\r\ndescription horrible, and more, much more (I persuaded myself) was yet\r\nbehind. Yet my heart overflowed with kindness and the love of virtue.\r\nI had begun life with benevolent intentions and thirsted for the moment\r\nwhen I should put them in practice and make myself useful to my fellow\r\nbeings. Now all was blasted; instead of that serenity of conscience\r\nwhich allowed me to look back upon the past with self-satisfaction, and\r\nfrom thence to gather promise of new hopes, I was seized by remorse and\r\nthe sense of guilt, which hurried me away to a hell of intense tortures\r\nsuch as no language can describe.\r\n\r\nThis state of mind preyed upon my health, which had perhaps never\r\nentirely recovered from the first shock it had sustained. I shunned\r\nthe face of man; all sound of joy or complacency was torture to me;\r\nsolitude was my only consolation—deep, dark, deathlike solitude.\r\n\r\nMy father observed with pain the alteration perceptible in my disposition\r\nand habits and endeavoured by arguments deduced from the feelings of his\r\nserene conscience and guiltless life to inspire me with fortitude and\r\nawaken in me the courage to dispel the dark cloud which brooded over me.\r\n“Do you think, Victor,” said he, “that I do not suffer\r\nalso? No one could love a child more than I loved your\r\nbrother”—tears came into his eyes as he spoke—“but\r\nis it not a duty to the survivors that we should refrain from augmenting\r\ntheir unhappiness by an appearance of immoderate grief? It is also a duty\r\nowed to yourself, for excessive sorrow prevents improvement or enjoyment,\r\nor even the discharge of daily usefulness, without which no man is fit for\r\nsociety.”\r\n\r\nThis advice, although good, was totally inapplicable to my case; I\r\nshould have been the first to hide my grief and console my friends if\r\nremorse had not mingled its bitterness, and terror its alarm, with my\r\nother sensations. Now I could only answer my father with a look of\r\ndespair and endeavour to hide myself from his view.\r\n\r\nAbout this time we retired to our house at Belrive. This change was\r\nparticularly agreeable to me. The shutting of the gates regularly at\r\nten o’clock and the impossibility of remaining on the lake after that\r\nhour had rendered our residence within the walls of Geneva very irksome\r\nto me. I was now free. Often, after the rest of the family had\r\nretired for the night, I took the boat and passed many hours upon the\r\nwater. Sometimes, with my sails set, I was carried by the wind; and\r\nsometimes, after rowing into the middle of the lake, I left the boat to\r\npursue its own course and gave way to my own miserable reflections. I\r\nwas often tempted, when all was at peace around me, and I the only\r\nunquiet thing that wandered restless in a scene so beautiful and\r\nheavenly—if I except some bat, or the frogs, whose harsh and\r\ninterrupted croaking was heard only when I approached the shore—often,\r\nI say, I was tempted to plunge into the silent lake, that the waters\r\nmight close over me and my calamities for ever. But I was restrained,\r\nwhen I thought of the heroic and suffering Elizabeth, whom I tenderly\r\nloved, and whose existence was bound up in mine. I thought also of my\r\nfather and surviving brother; should I by my base desertion leave them\r\nexposed and unprotected to the malice of the fiend whom I had let loose\r\namong them?\r\n\r\nAt these moments I wept bitterly and wished that peace would revisit my\r\nmind only that I might afford them consolation and happiness. But that\r\ncould not be. Remorse extinguished every hope. I had been the author of\r\nunalterable evils, and I lived in daily fear lest the monster whom I had\r\ncreated should perpetrate some new wickedness. I had an obscure feeling\r\nthat all was not over and that he would still commit some signal crime,\r\nwhich by its enormity should almost efface the recollection of the past.\r\nThere was always scope for fear so long as anything I loved remained\r\nbehind. My abhorrence of this fiend cannot be conceived. When I thought of\r\nhim I gnashed my teeth, my eyes became inflamed, and I ardently wished to\r\nextinguish that life which I had so thoughtlessly bestowed. When I\r\nreflected on his crimes and malice, my hatred and revenge burst all bounds\r\nof moderation. I would have made a pilgrimage to the highest peak of the\r\nAndes, could I, when there, have precipitated him to their base. I wished\r\nto see him again, that I might wreak the utmost extent of abhorrence on his\r\nhead and avenge the deaths of William and Justine.\r\n\r\nOur house was the house of mourning. My father’s health was deeply\r\nshaken by the horror of the recent events. Elizabeth was sad and\r\ndesponding; she no longer took delight in her ordinary occupations; all\r\npleasure seemed to her sacrilege toward the dead; eternal woe and tears she\r\nthen thought was the just tribute she should pay to innocence so blasted\r\nand destroyed. She was no longer that happy creature who in earlier youth\r\nwandered with me on the banks of the lake and talked with ecstasy of our\r\nfuture prospects. The first of those sorrows which are sent to wean us from\r\nthe earth had visited her, and its dimming influence quenched her dearest\r\nsmiles.\r\n\r\n“When I reflect, my dear cousin,” said she, “on the miserable death of\r\nJustine Moritz, I no longer see the world and its works as they before\r\nappeared to me. Before, I looked upon the accounts of vice and\r\ninjustice that I read in books or heard from others as tales of ancient\r\ndays or imaginary evils; at least they were remote and more familiar to\r\nreason than to the imagination; but now misery has come home, and men\r\nappear to me as monsters thirsting for each other’s blood. Yet I am\r\ncertainly unjust. Everybody believed that poor girl to be guilty; and\r\nif she could have committed the crime for which she suffered, assuredly\r\nshe would have been the most depraved of human creatures. For the sake\r\nof a few jewels, to have murdered the son of her benefactor and friend,\r\na child whom she had nursed from its birth, and appeared to love as if\r\nit had been her own! I could not consent to the death of any human\r\nbeing, but certainly I should have thought such a creature unfit to\r\nremain in the society of men. But she was innocent. I know, I feel\r\nshe was innocent; you are of the same opinion, and that confirms me.\r\nAlas! Victor, when falsehood can look so like the truth, who can\r\nassure themselves of certain happiness? I feel as if I were walking on\r\nthe edge of a precipice, towards which thousands are crowding and\r\nendeavouring to plunge me into the abyss. William and Justine were\r\nassassinated, and the murderer escapes; he walks about the world free,\r\nand perhaps respected. But even if I were condemned to suffer on the\r\nscaffold for the same crimes, I would not change places with such a\r\nwretch.”\r\n\r\nI listened to this discourse with the extremest agony. I, not in deed,\r\nbut in effect, was the true murderer. Elizabeth read my anguish in my\r\ncountenance, and kindly taking my hand, said, “My dearest friend, you\r\nmust calm yourself. These events have affected me, God knows how\r\ndeeply; but I am not so wretched as you are. There is an expression of\r\ndespair, and sometimes of revenge, in your countenance that makes me\r\ntremble. Dear Victor, banish these dark passions. Remember the\r\nfriends around you, who centre all their hopes in you. Have we lost\r\nthe power of rendering you happy? Ah! While we love, while we are\r\ntrue to each other, here in this land of peace and beauty, your native\r\ncountry, we may reap every tranquil blessing—what can disturb our\r\npeace?”\r\n\r\nAnd could not such words from her whom I fondly prized before every\r\nother gift of fortune suffice to chase away the fiend that lurked in my\r\nheart? Even as she spoke I drew near to her, as if in terror, lest at\r\nthat very moment the destroyer had been near to rob me of her.\r\n\r\nThus not the tenderness of friendship, nor the beauty of earth, nor of\r\nheaven, could redeem my soul from woe; the very accents of love were\r\nineffectual. I was encompassed by a cloud which no beneficial\r\ninfluence could penetrate. The wounded deer dragging its fainting\r\nlimbs to some untrodden brake, there to gaze upon the arrow which had\r\npierced it, and to die, was but a type of me.\r\n\r\nSometimes I could cope with the sullen despair that overwhelmed me, but\r\nsometimes the whirlwind passions of my soul drove me to seek, by bodily\r\nexercise and by change of place, some relief from my intolerable\r\nsensations. It was during an access of this kind that I suddenly left\r\nmy home, and bending my steps towards the near Alpine valleys, sought\r\nin the magnificence, the eternity of such scenes, to forget myself and\r\nmy ephemeral, because human, sorrows. My wanderings were directed\r\ntowards the valley of Chamounix. I had visited it frequently during my\r\nboyhood. Six years had passed since then: _I_ was a wreck, but nought\r\nhad changed in those savage and enduring scenes.\r\n\r\nI performed the first part of my journey on horseback. I afterwards\r\nhired a mule, as the more sure-footed and least liable to receive\r\ninjury on these rugged roads. The weather was fine; it was about the\r\nmiddle of the month of August, nearly two months after the death of\r\nJustine, that miserable epoch from which I dated all my woe. The\r\nweight upon my spirit was sensibly lightened as I plunged yet deeper in\r\nthe ravine of Arve. The immense mountains and precipices that overhung\r\nme on every side, the sound of the river raging among the rocks, and\r\nthe dashing of the waterfalls around spoke of a power mighty as\r\nOmnipotence—and I ceased to fear or to bend before any being less\r\nalmighty than that which had created and ruled the elements, here\r\ndisplayed in their most terrific guise. Still, as I ascended higher,\r\nthe valley assumed a more magnificent and astonishing character.\r\nRuined castles hanging on the precipices of piny mountains, the\r\nimpetuous Arve, and cottages every here and there peeping forth from\r\namong the trees formed a scene of singular beauty. But it was\r\naugmented and rendered sublime by the mighty Alps, whose white and\r\nshining pyramids and domes towered above all, as belonging to another\r\nearth, the habitations of another race of beings.\r\n\r\nI passed the bridge of Pélissier, where the ravine, which the river\r\nforms, opened before me, and I began to ascend the mountain that\r\noverhangs it. Soon after, I entered the valley of Chamounix. This\r\nvalley is more wonderful and sublime, but not so beautiful and\r\npicturesque as that of Servox, through which I had just passed. The\r\nhigh and snowy mountains were its immediate boundaries, but I saw no\r\nmore ruined castles and fertile fields. Immense glaciers approached\r\nthe road; I heard the rumbling thunder of the falling avalanche and\r\nmarked the smoke of its passage. Mont Blanc, the supreme and\r\nmagnificent Mont Blanc, raised itself from the surrounding _aiguilles_,\r\nand its tremendous _dôme_ overlooked the valley.\r\n\r\nA tingling long-lost sense of pleasure often came across me during this\r\njourney. Some turn in the road, some new object suddenly perceived and\r\nrecognised, reminded me of days gone by, and were associated with the\r\nlighthearted gaiety of boyhood. The very winds whispered in soothing\r\naccents, and maternal Nature bade me weep no more. Then again the\r\nkindly influence ceased to act—I found myself fettered again to grief\r\nand indulging in all the misery of reflection. Then I spurred on my\r\nanimal, striving so to forget the world, my fears, and more than all,\r\nmyself—or, in a more desperate fashion, I alighted and threw myself on\r\nthe grass, weighed down by horror and despair.\r\n\r\nAt length I arrived at the village of Chamounix. Exhaustion succeeded\r\nto the extreme fatigue both of body and of mind which I had endured.\r\nFor a short space of time I remained at the window watching the pallid\r\nlightnings that played above Mont Blanc and listening to the rushing of\r\nthe Arve, which pursued its noisy way beneath. The same lulling sounds\r\nacted as a lullaby to my too keen sensations; when I placed my head\r\nupon my pillow, sleep crept over me; I felt it as it came and blessed\r\nthe giver of oblivion.\r\n\r\n\r\n\r\n\r\nChapter 10\r\n\r\n\r\nI spent the following day roaming through the valley. I stood beside\r\nthe sources of the Arveiron, which take their rise in a glacier, that\r\nwith slow pace is advancing down from the summit of the hills to\r\nbarricade the valley. The abrupt sides of vast mountains were before\r\nme; the icy wall of the glacier overhung me; a few shattered pines were\r\nscattered around; and the solemn silence of this glorious\r\npresence-chamber of imperial Nature was broken only by the brawling\r\nwaves or the fall of some vast fragment, the thunder sound of the\r\navalanche or the cracking, reverberated along the mountains, of the\r\naccumulated ice, which, through the silent working of immutable laws,\r\nwas ever and anon rent and torn, as if it had been but a plaything in\r\ntheir hands. These sublime and magnificent scenes afforded me the\r\ngreatest consolation that I was capable of receiving. They elevated me\r\nfrom all littleness of feeling, and although they did not remove my\r\ngrief, they subdued and tranquillised it. In some degree, also, they\r\ndiverted my mind from the thoughts over which it had brooded for the\r\nlast month. I retired to rest at night; my slumbers, as it were,\r\nwaited on and ministered to by the assemblance of grand shapes which I\r\nhad contemplated during the day. They congregated round me; the\r\nunstained snowy mountain-top, the glittering pinnacle, the pine woods,\r\nand ragged bare ravine, the eagle, soaring amidst the clouds—they all\r\ngathered round me and bade me be at peace.\r\n\r\nWhere had they fled when the next morning I awoke? All of\r\nsoul-inspiriting fled with sleep, and dark melancholy clouded every\r\nthought. The rain was pouring in torrents, and thick mists hid the\r\nsummits of the mountains, so that I even saw not the faces of those\r\nmighty friends. Still I would penetrate their misty veil and seek them\r\nin their cloudy retreats. What were rain and storm to me? My mule was\r\nbrought to the door, and I resolved to ascend to the summit of\r\nMontanvert. I remembered the effect that the view of the tremendous\r\nand ever-moving glacier had produced upon my mind when I first saw it.\r\nIt had then filled me with a sublime ecstasy that gave wings to the\r\nsoul and allowed it to soar from the obscure world to light and joy.\r\nThe sight of the awful and majestic in nature had indeed always the\r\neffect of solemnising my mind and causing me to forget the passing\r\ncares of life. I determined to go without a guide, for I was well\r\nacquainted with the path, and the presence of another would destroy the\r\nsolitary grandeur of the scene.\r\n\r\nThe ascent is precipitous, but the path is cut into continual and short\r\nwindings, which enable you to surmount the perpendicularity of the\r\nmountain. It is a scene terrifically desolate. In a thousand spots\r\nthe traces of the winter avalanche may be perceived, where trees lie\r\nbroken and strewed on the ground, some entirely destroyed, others bent,\r\nleaning upon the jutting rocks of the mountain or transversely upon\r\nother trees. The path, as you ascend higher, is intersected by ravines\r\nof snow, down which stones continually roll from above; one of them is\r\nparticularly dangerous, as the slightest sound, such as even speaking\r\nin a loud voice, produces a concussion of air sufficient to draw\r\ndestruction upon the head of the speaker. The pines are not tall or\r\nluxuriant, but they are sombre and add an air of severity to the scene.\r\nI looked on the valley beneath; vast mists were rising from the rivers\r\nwhich ran through it and curling in thick wreaths around the opposite\r\nmountains, whose summits were hid in the uniform clouds, while rain\r\npoured from the dark sky and added to the melancholy impression I\r\nreceived from the objects around me. Alas! Why does man boast of\r\nsensibilities superior to those apparent in the brute; it only renders\r\nthem more necessary beings. If our impulses were confined to hunger,\r\nthirst, and desire, we might be nearly free; but now we are moved by\r\nevery wind that blows and a chance word or scene that that word may\r\nconvey to us.\r\n\r\n We rest; a dream has power to poison sleep.\r\n We rise; one wand’ring thought pollutes the day.\r\n We feel, conceive, or reason; laugh or weep,\r\n Embrace fond woe, or cast our cares away;\r\n It is the same: for, be it joy or sorrow,\r\n The path of its departure still is free.\r\n Man’s yesterday may ne’er be like his morrow;\r\n Nought may endure but mutability!\r\n\r\n\r\nIt was nearly noon when I arrived at the top of the ascent. For some\r\ntime I sat upon the rock that overlooks the sea of ice. A mist covered\r\nboth that and the surrounding mountains. Presently a breeze dissipated\r\nthe cloud, and I descended upon the glacier. The surface is very\r\nuneven, rising like the waves of a troubled sea, descending low, and\r\ninterspersed by rifts that sink deep. The field of ice is almost a\r\nleague in width, but I spent nearly two hours in crossing it. The\r\nopposite mountain is a bare perpendicular rock. From the side where I\r\nnow stood Montanvert was exactly opposite, at the distance of a league;\r\nand above it rose Mont Blanc, in awful majesty. I remained in a recess\r\nof the rock, gazing on this wonderful and stupendous scene. The sea,\r\nor rather the vast river of ice, wound among its dependent mountains,\r\nwhose aerial summits hung over its recesses. Their icy and glittering\r\npeaks shone in the sunlight over the clouds. My heart, which was\r\nbefore sorrowful, now swelled with something like joy; I exclaimed,\r\n“Wandering spirits, if indeed ye wander, and do not rest in your narrow\r\nbeds, allow me this faint happiness, or take me, as your companion,\r\naway from the joys of life.”\r\n\r\nAs I said this I suddenly beheld the figure of a man, at some distance,\r\nadvancing towards me with superhuman speed. He bounded over the\r\ncrevices in the ice, among which I had walked with caution; his\r\nstature, also, as he approached, seemed to exceed that of man. I was\r\ntroubled; a mist came over my eyes, and I felt a faintness seize me,\r\nbut I was quickly restored by the cold gale of the mountains. I\r\nperceived, as the shape came nearer (sight tremendous and abhorred!)\r\nthat it was the wretch whom I had created. I trembled with rage and\r\nhorror, resolving to wait his approach and then close with him in\r\nmortal combat. He approached; his countenance bespoke bitter anguish,\r\ncombined with disdain and malignity, while its unearthly ugliness\r\nrendered it almost too horrible for human eyes. But I scarcely\r\nobserved this; rage and hatred had at first deprived me of utterance,\r\nand I recovered only to overwhelm him with words expressive of furious\r\ndetestation and contempt.\r\n\r\n“Devil,” I exclaimed, “do you dare approach me? And do\r\nnot you fear the fierce vengeance of my arm wreaked on your miserable head?\r\nBegone, vile insect! Or rather, stay, that I may trample you to dust! And,\r\noh! That I could, with the extinction of your miserable existence, restore\r\nthose victims whom you have so diabolically murdered!”\r\n\r\n“I expected this reception,” said the dæmon. “All men hate the\r\nwretched; how, then, must I be hated, who am miserable beyond all\r\nliving things! Yet you, my creator, detest and spurn me, thy creature,\r\nto whom thou art bound by ties only dissoluble by the annihilation of\r\none of us. You purpose to kill me. How dare you sport thus with life?\r\nDo your duty towards me, and I will do mine towards you and the rest of\r\nmankind. If you will comply with my conditions, I will leave them and\r\nyou at peace; but if you refuse, I will glut the maw of death, until it\r\nbe satiated with the blood of your remaining friends.”\r\n\r\n“Abhorred monster! Fiend that thou art! The tortures of hell are too\r\nmild a vengeance for thy crimes. Wretched devil! You reproach me with\r\nyour creation, come on, then, that I may extinguish the spark which I\r\nso negligently bestowed.”\r\n\r\nMy rage was without bounds; I sprang on him, impelled by all the\r\nfeelings which can arm one being against the existence of another.\r\n\r\nHe easily eluded me and said,\r\n\r\n“Be calm! I entreat you to hear me before you give vent to your hatred\r\non my devoted head. Have I not suffered enough, that you seek to\r\nincrease my misery? Life, although it may only be an accumulation of\r\nanguish, is dear to me, and I will defend it. Remember, thou hast made\r\nme more powerful than thyself; my height is superior to thine, my\r\njoints more supple. But I will not be tempted to set myself in\r\nopposition to thee. I am thy creature, and I will be even mild and\r\ndocile to my natural lord and king if thou wilt also perform thy part,\r\nthe which thou owest me. Oh, Frankenstein, be not equitable to every\r\nother and trample upon me alone, to whom thy justice, and even thy\r\nclemency and affection, is most due. Remember that I am thy creature;\r\nI ought to be thy Adam, but I am rather the fallen angel, whom thou\r\ndrivest from joy for no misdeed. Everywhere I see bliss, from which I\r\nalone am irrevocably excluded. I was benevolent and good; misery made\r\nme a fiend. Make me happy, and I shall again be virtuous.”\r\n\r\n“Begone! I will not hear you. There can be no community between you\r\nand me; we are enemies. Begone, or let us try our strength in a fight,\r\nin which one must fall.”\r\n\r\n“How can I move thee? Will no entreaties cause thee to turn a\r\nfavourable eye upon thy creature, who implores thy goodness and\r\ncompassion? Believe me, Frankenstein, I was benevolent; my soul glowed\r\nwith love and humanity; but am I not alone, miserably alone? You, my\r\ncreator, abhor me; what hope can I gather from your fellow creatures,\r\nwho owe me nothing? They spurn and hate me. The desert mountains and\r\ndreary glaciers are my refuge. I have wandered here many days; the\r\ncaves of ice, which I only do not fear, are a dwelling to me, and the\r\nonly one which man does not grudge. These bleak skies I hail, for they\r\nare kinder to me than your fellow beings. If the multitude of mankind\r\nknew of my existence, they would do as you do, and arm themselves for\r\nmy destruction. Shall I not then hate them who abhor me? I will keep\r\nno terms with my enemies. I am miserable, and they shall share my\r\nwretchedness. Yet it is in your power to recompense me, and deliver\r\nthem from an evil which it only remains for you to make so great, that\r\nnot only you and your family, but thousands of others, shall be\r\nswallowed up in the whirlwinds of its rage. Let your compassion be\r\nmoved, and do not disdain me. Listen to my tale; when you have heard\r\nthat, abandon or commiserate me, as you shall judge that I deserve.\r\nBut hear me. The guilty are allowed, by human laws, bloody as they\r\nare, to speak in their own defence before they are condemned. Listen\r\nto me, Frankenstein. You accuse me of murder, and yet you would, with\r\na satisfied conscience, destroy your own creature. Oh, praise the\r\neternal justice of man! Yet I ask you not to spare me; listen to me,\r\nand then, if you can, and if you will, destroy the work of your hands.”\r\n\r\n“Why do you call to my remembrance,” I rejoined, “circumstances of\r\nwhich I shudder to reflect, that I have been the miserable origin and\r\nauthor? Cursed be the day, abhorred devil, in which you first saw\r\nlight! Cursed (although I curse myself) be the hands that formed you!\r\nYou have made me wretched beyond expression. You have left me no power\r\nto consider whether I am just to you or not. Begone! Relieve me from\r\nthe sight of your detested form.”\r\n\r\n“Thus I relieve thee, my creator,” he said, and placed his hated hands\r\nbefore my eyes, which I flung from me with violence; “thus I take from\r\nthee a sight which you abhor. Still thou canst listen to me and grant\r\nme thy compassion. By the virtues that I once possessed, I demand this\r\nfrom you. Hear my tale; it is long and strange, and the temperature of\r\nthis place is not fitting to your fine sensations; come to the hut upon\r\nthe mountain. The sun is yet high in the heavens; before it descends\r\nto hide itself behind your snowy precipices and illuminate another\r\nworld, you will have heard my story and can decide. On you it rests,\r\nwhether I quit for ever the neighbourhood of man and lead a harmless\r\nlife, or become the scourge of your fellow creatures and the author of\r\nyour own speedy ruin.”\r\n\r\nAs he said this he led the way across the ice; I followed. My heart\r\nwas full, and I did not answer him, but as I proceeded, I weighed the\r\nvarious arguments that he had used and determined at least to listen to\r\nhis tale. I was partly urged by curiosity, and compassion confirmed my\r\nresolution. I had hitherto supposed him to be the murderer of my\r\nbrother, and I eagerly sought a confirmation or denial of this opinion.\r\nFor the first time, also, I felt what the duties of a creator towards\r\nhis creature were, and that I ought to render him happy before I\r\ncomplained of his wickedness. These motives urged me to comply with\r\nhis demand. We crossed the ice, therefore, and ascended the opposite\r\nrock. The air was cold, and the rain again began to descend; we\r\nentered the hut, the fiend with an air of exultation, I with a heavy\r\nheart and depressed spirits. But I consented to listen, and seating\r\nmyself by the fire which my odious companion had lighted, he thus began\r\nhis tale.\r\n\r\n\r\n\r\n\r\nChapter 11\r\n\r\n\r\n“It is with considerable difficulty that I remember the original era of\r\nmy being; all the events of that period appear confused and indistinct.\r\nA strange multiplicity of sensations seized me, and I saw, felt, heard,\r\nand smelt at the same time; and it was, indeed, a long time before I\r\nlearned to distinguish between the operations of my various senses. By\r\ndegrees, I remember, a stronger light pressed upon my nerves, so that I\r\nwas obliged to shut my eyes. Darkness then came over me and troubled\r\nme, but hardly had I felt this when, by opening my eyes, as I now\r\nsuppose, the light poured in upon me again. I walked and, I believe,\r\ndescended, but I presently found a great alteration in my sensations.\r\nBefore, dark and opaque bodies had surrounded me, impervious to my\r\ntouch or sight; but I now found that I could wander on at liberty, with\r\nno obstacles which I could not either surmount or avoid. The light\r\nbecame more and more oppressive to me, and the heat wearying me as I\r\nwalked, I sought a place where I could receive shade. This was the\r\nforest near Ingolstadt; and here I lay by the side of a brook resting\r\nfrom my fatigue, until I felt tormented by hunger and thirst. This\r\nroused me from my nearly dormant state, and I ate some berries which I\r\nfound hanging on the trees or lying on the ground. I slaked my thirst\r\nat the brook, and then lying down, was overcome by sleep.\r\n\r\n“It was dark when I awoke; I felt cold also, and half frightened, as it\r\nwere, instinctively, finding myself so desolate. Before I had quitted\r\nyour apartment, on a sensation of cold, I had covered myself with some\r\nclothes, but these were insufficient to secure me from the dews of\r\nnight. I was a poor, helpless, miserable wretch; I knew, and could\r\ndistinguish, nothing; but feeling pain invade me on all sides, I sat\r\ndown and wept.\r\n\r\n“Soon a gentle light stole over the heavens and gave me a sensation of\r\npleasure. I started up and beheld a radiant form rise from among the\r\ntrees. [The moon] I gazed with a kind of wonder. It moved slowly,\r\nbut it enlightened my path, and I again went out in search of berries.\r\nI was still cold when under one of the trees I found a huge cloak, with\r\nwhich I covered myself, and sat down upon the ground. No distinct\r\nideas occupied my mind; all was confused. I felt light, and hunger,\r\nand thirst, and darkness; innumerable sounds rang in my ears, and on\r\nall sides various scents saluted me; the only object that I could\r\ndistinguish was the bright moon, and I fixed my eyes on that with\r\npleasure.\r\n\r\n“Several changes of day and night passed, and the orb of night had\r\ngreatly lessened, when I began to distinguish my sensations from each\r\nother. I gradually saw plainly the clear stream that supplied me with\r\ndrink and the trees that shaded me with their foliage. I was delighted\r\nwhen I first discovered that a pleasant sound, which often saluted my\r\nears, proceeded from the throats of the little winged animals who had\r\noften intercepted the light from my eyes. I began also to observe,\r\nwith greater accuracy, the forms that surrounded me and to perceive the\r\nboundaries of the radiant roof of light which canopied me. Sometimes I\r\ntried to imitate the pleasant songs of the birds but was unable.\r\nSometimes I wished to express my sensations in my own mode, but the\r\nuncouth and inarticulate sounds which broke from me frightened me into\r\nsilence again.\r\n\r\n“The moon had disappeared from the night, and again, with a lessened\r\nform, showed itself, while I still remained in the forest. My\r\nsensations had by this time become distinct, and my mind received every\r\nday additional ideas. My eyes became accustomed to the light and to\r\nperceive objects in their right forms; I distinguished the insect from\r\nthe herb, and by degrees, one herb from another. I found that the\r\nsparrow uttered none but harsh notes, whilst those of the blackbird and\r\nthrush were sweet and enticing.\r\n\r\n“One day, when I was oppressed by cold, I found a fire which had been\r\nleft by some wandering beggars, and was overcome with delight at the\r\nwarmth I experienced from it. In my joy I thrust my hand into the live\r\nembers, but quickly drew it out again with a cry of pain. How strange,\r\nI thought, that the same cause should produce such opposite effects! I\r\nexamined the materials of the fire, and to my joy found it to be\r\ncomposed of wood. I quickly collected some branches, but they were wet\r\nand would not burn. I was pained at this and sat still watching the\r\noperation of the fire. The wet wood which I had placed near the heat\r\ndried and itself became inflamed. I reflected on this, and by touching\r\nthe various branches, I discovered the cause and busied myself in\r\ncollecting a great quantity of wood, that I might dry it and have a\r\nplentiful supply of fire. When night came on and brought sleep with\r\nit, I was in the greatest fear lest my fire should be extinguished. I\r\ncovered it carefully with dry wood and leaves and placed wet branches\r\nupon it; and then, spreading my cloak, I lay on the ground and sank\r\ninto sleep.\r\n\r\n“It was morning when I awoke, and my first care was to visit the fire.\r\nI uncovered it, and a gentle breeze quickly fanned it into a flame. I\r\nobserved this also and contrived a fan of branches, which roused the\r\nembers when they were nearly extinguished. When night came again I\r\nfound, with pleasure, that the fire gave light as well as heat and that\r\nthe discovery of this element was useful to me in my food, for I found\r\nsome of the offals that the travellers had left had been roasted, and\r\ntasted much more savoury than the berries I gathered from the trees. I\r\ntried, therefore, to dress my food in the same manner, placing it on\r\nthe live embers. I found that the berries were spoiled by this\r\noperation, and the nuts and roots much improved.\r\n\r\n“Food, however, became scarce, and I often spent the whole day\r\nsearching in vain for a few acorns to assuage the pangs of hunger. When\r\nI found this, I resolved to quit the place that I had hitherto\r\ninhabited, to seek for one where the few wants I experienced would be\r\nmore easily satisfied. In this emigration I exceedingly lamented the\r\nloss of the fire which I had obtained through accident and knew not how\r\nto reproduce it. I gave several hours to the serious consideration of\r\nthis difficulty, but I was obliged to relinquish all attempt to supply\r\nit, and wrapping myself up in my cloak, I struck across the wood\r\ntowards the setting sun. I passed three days in these rambles and at\r\nlength discovered the open country. A great fall of snow had taken\r\nplace the night before, and the fields were of one uniform white; the\r\nappearance was disconsolate, and I found my feet chilled by the cold\r\ndamp substance that covered the ground.\r\n\r\n“It was about seven in the morning, and I longed to obtain food and\r\nshelter; at length I perceived a small hut, on a rising ground, which\r\nhad doubtless been built for the convenience of some shepherd. This\r\nwas a new sight to me, and I examined the structure with great\r\ncuriosity. Finding the door open, I entered. An old man sat in it,\r\nnear a fire, over which he was preparing his breakfast. He turned on\r\nhearing a noise, and perceiving me, shrieked loudly, and quitting the\r\nhut, ran across the fields with a speed of which his debilitated form\r\nhardly appeared capable. His appearance, different from any I had ever\r\nbefore seen, and his flight somewhat surprised me. But I was enchanted\r\nby the appearance of the hut; here the snow and rain could not\r\npenetrate; the ground was dry; and it presented to me then as exquisite\r\nand divine a retreat as Pandæmonium appeared to the dæmons of hell\r\nafter their sufferings in the lake of fire. I greedily devoured the\r\nremnants of the shepherd’s breakfast, which consisted of bread, cheese,\r\nmilk, and wine; the latter, however, I did not like. Then, overcome by\r\nfatigue, I lay down among some straw and fell asleep.\r\n\r\n“It was noon when I awoke, and allured by the warmth of the sun, which\r\nshone brightly on the white ground, I determined to recommence my\r\ntravels; and, depositing the remains of the peasant’s breakfast in a\r\nwallet I found, I proceeded across the fields for several hours, until\r\nat sunset I arrived at a village. How miraculous did this appear! The\r\nhuts, the neater cottages, and stately houses engaged my admiration by\r\nturns. The vegetables in the gardens, the milk and cheese that I saw\r\nplaced at the windows of some of the cottages, allured my appetite. One\r\nof the best of these I entered, but I had hardly placed my foot within\r\nthe door before the children shrieked, and one of the women fainted.\r\nThe whole village was roused; some fled, some attacked me, until,\r\ngrievously bruised by stones and many other kinds of missile weapons, I\r\nescaped to the open country and fearfully took refuge in a low hovel,\r\nquite bare, and making a wretched appearance after the palaces I had\r\nbeheld in the village. This hovel however, joined a cottage of a neat\r\nand pleasant appearance, but after my late dearly bought experience, I\r\ndared not enter it. My place of refuge was constructed of wood, but so\r\nlow that I could with difficulty sit upright in it. No wood, however,\r\nwas placed on the earth, which formed the floor, but it was dry; and\r\nalthough the wind entered it by innumerable chinks, I found it an\r\nagreeable asylum from the snow and rain.\r\n\r\n“Here, then, I retreated and lay down happy to have found a shelter,\r\nhowever miserable, from the inclemency of the season, and still more\r\nfrom the barbarity of man. As soon as morning dawned I crept from my\r\nkennel, that I might view the adjacent cottage and discover if I could\r\nremain in the habitation I had found. It was situated against the back\r\nof the cottage and surrounded on the sides which were exposed by a pig\r\nsty and a clear pool of water. One part was open, and by that I had\r\ncrept in; but now I covered every crevice by which I might be perceived\r\nwith stones and wood, yet in such a manner that I might move them on\r\noccasion to pass out; all the light I enjoyed came through the sty, and\r\nthat was sufficient for me.\r\n\r\n“Having thus arranged my dwelling and carpeted it with clean straw, I\r\nretired, for I saw the figure of a man at a distance, and I remembered\r\ntoo well my treatment the night before to trust myself in his power. I\r\nhad first, however, provided for my sustenance for that day by a loaf\r\nof coarse bread, which I purloined, and a cup with which I could drink\r\nmore conveniently than from my hand of the pure water which flowed by\r\nmy retreat. The floor was a little raised, so that it was kept\r\nperfectly dry, and by its vicinity to the chimney of the cottage it was\r\ntolerably warm.\r\n\r\n“Being thus provided, I resolved to reside in this hovel until\r\nsomething should occur which might alter my determination. It was\r\nindeed a paradise compared to the bleak forest, my former residence,\r\nthe rain-dropping branches, and dank earth. I ate my breakfast with\r\npleasure and was about to remove a plank to procure myself a little\r\nwater when I heard a step, and looking through a small chink, I beheld\r\na young creature, with a pail on her head, passing before my hovel. The\r\ngirl was young and of gentle demeanour, unlike what I have since found\r\ncottagers and farmhouse servants to be. Yet she was meanly dressed, a\r\ncoarse blue petticoat and a linen jacket being her only garb; her fair\r\nhair was plaited but not adorned: she looked patient yet sad. I lost\r\nsight of her, and in about a quarter of an hour she returned bearing\r\nthe pail, which was now partly filled with milk. As she walked along,\r\nseemingly incommoded by the burden, a young man met her, whose\r\ncountenance expressed a deeper despondence. Uttering a few sounds with\r\nan air of melancholy, he took the pail from her head and bore it to the\r\ncottage himself. She followed, and they disappeared. Presently I saw\r\nthe young man again, with some tools in his hand, cross the field\r\nbehind the cottage; and the girl was also busied, sometimes in the\r\nhouse and sometimes in the yard.\r\n\r\n“On examining my dwelling, I found that one of the windows of the\r\ncottage had formerly occupied a part of it, but the panes had been\r\nfilled up with wood. In one of these was a small and almost\r\nimperceptible chink through which the eye could just penetrate.\r\nThrough this crevice a small room was visible, whitewashed and clean\r\nbut very bare of furniture. In one corner, near a small fire, sat an\r\nold man, leaning his head on his hands in a disconsolate attitude. The\r\nyoung girl was occupied in arranging the cottage; but presently she\r\ntook something out of a drawer, which employed her hands, and she sat\r\ndown beside the old man, who, taking up an instrument, began to play\r\nand to produce sounds sweeter than the voice of the thrush or the\r\nnightingale. It was a lovely sight, even to me, poor wretch who had\r\nnever beheld aught beautiful before. The silver hair and benevolent\r\ncountenance of the aged cottager won my reverence, while the gentle\r\nmanners of the girl enticed my love. He played a sweet mournful air\r\nwhich I perceived drew tears from the eyes of his amiable companion, of\r\nwhich the old man took no notice, until she sobbed audibly; he then\r\npronounced a few sounds, and the fair creature, leaving her work, knelt\r\nat his feet. He raised her and smiled with such kindness and affection\r\nthat I felt sensations of a peculiar and overpowering nature; they were\r\na mixture of pain and pleasure, such as I had never before experienced,\r\neither from hunger or cold, warmth or food; and I withdrew from the\r\nwindow, unable to bear these emotions.\r\n\r\n“Soon after this the young man returned, bearing on his shoulders a\r\nload of wood. The girl met him at the door, helped to relieve him of\r\nhis burden, and taking some of the fuel into the cottage, placed it on\r\nthe fire; then she and the youth went apart into a nook of the cottage,\r\nand he showed her a large loaf and a piece of cheese. She seemed\r\npleased and went into the garden for some roots and plants, which she\r\nplaced in water, and then upon the fire. She afterwards continued her\r\nwork, whilst the young man went into the garden and appeared busily\r\nemployed in digging and pulling up roots. After he had been employed\r\nthus about an hour, the young woman joined him and they entered the\r\ncottage together.\r\n\r\n“The old man had, in the meantime, been pensive, but on the appearance\r\nof his companions he assumed a more cheerful air, and they sat down to\r\neat. The meal was quickly dispatched. The young woman was again\r\noccupied in arranging the cottage, the old man walked before the\r\ncottage in the sun for a few minutes, leaning on the arm of the youth.\r\nNothing could exceed in beauty the contrast between these two excellent\r\ncreatures. One was old, with silver hairs and a countenance beaming\r\nwith benevolence and love; the younger was slight and graceful in his\r\nfigure, and his features were moulded with the finest symmetry, yet his\r\neyes and attitude expressed the utmost sadness and despondency. The\r\nold man returned to the cottage, and the youth, with tools different\r\nfrom those he had used in the morning, directed his steps across the\r\nfields.\r\n\r\n“Night quickly shut in, but to my extreme wonder, I found that the\r\ncottagers had a means of prolonging light by the use of tapers, and was\r\ndelighted to find that the setting of the sun did not put an end to the\r\npleasure I experienced in watching my human neighbours. In the evening\r\nthe young girl and her companion were employed in various occupations\r\nwhich I did not understand; and the old man again took up the\r\ninstrument which produced the divine sounds that had enchanted me in\r\nthe morning. So soon as he had finished, the youth began, not to play,\r\nbut to utter sounds that were monotonous, and neither resembling the\r\nharmony of the old man’s instrument nor the songs of the birds; I since\r\nfound that he read aloud, but at that time I knew nothing of the\r\nscience of words or letters.\r\n\r\n“The family, after having been thus occupied for a short time,\r\nextinguished their lights and retired, as I conjectured, to rest.”\r\n\r\n\r\n\r\n\r\nChapter 12\r\n\r\n\r\n“I lay on my straw, but I could not sleep. I thought of the\r\noccurrences of the day. What chiefly struck me was the gentle manners\r\nof these people, and I longed to join them, but dared not. I\r\nremembered too well the treatment I had suffered the night before from\r\nthe barbarous villagers, and resolved, whatever course of conduct I\r\nmight hereafter think it right to pursue, that for the present I would\r\nremain quietly in my hovel, watching and endeavouring to discover the\r\nmotives which influenced their actions.\r\n\r\n“The cottagers arose the next morning before the sun. The young woman\r\narranged the cottage and prepared the food, and the youth departed\r\nafter the first meal.\r\n\r\n“This day was passed in the same routine as that which preceded it.\r\nThe young man was constantly employed out of doors, and the girl in\r\nvarious laborious occupations within. The old man, whom I soon\r\nperceived to be blind, employed his leisure hours on his instrument or\r\nin contemplation. Nothing could exceed the love and respect which the\r\nyounger cottagers exhibited towards their venerable companion. They\r\nperformed towards him every little office of affection and duty with\r\ngentleness, and he rewarded them by his benevolent smiles.\r\n\r\n“They were not entirely happy. The young man and his companion often\r\nwent apart and appeared to weep. I saw no cause for their unhappiness,\r\nbut I was deeply affected by it. If such lovely creatures were\r\nmiserable, it was less strange that I, an imperfect and solitary being,\r\nshould be wretched. Yet why were these gentle beings unhappy? They\r\npossessed a delightful house (for such it was in my eyes) and every\r\nluxury; they had a fire to warm them when chill and delicious viands\r\nwhen hungry; they were dressed in excellent clothes; and, still more,\r\nthey enjoyed one another’s company and speech, interchanging each day\r\nlooks of affection and kindness. What did their tears imply? Did they\r\nreally express pain? I was at first unable to solve these questions,\r\nbut perpetual attention and time explained to me many appearances which\r\nwere at first enigmatic.\r\n\r\n“A considerable period elapsed before I discovered one of the causes of\r\nthe uneasiness of this amiable family: it was poverty, and they\r\nsuffered that evil in a very distressing degree. Their nourishment\r\nconsisted entirely of the vegetables of their garden and the milk of\r\none cow, which gave very little during the winter, when its masters\r\ncould scarcely procure food to support it. They often, I believe,\r\nsuffered the pangs of hunger very poignantly, especially the two\r\nyounger cottagers, for several times they placed food before the old\r\nman when they reserved none for themselves.\r\n\r\n“This trait of kindness moved me sensibly. I had been accustomed,\r\nduring the night, to steal a part of their store for my own\r\nconsumption, but when I found that in doing this I inflicted pain on\r\nthe cottagers, I abstained and satisfied myself with berries, nuts, and\r\nroots which I gathered from a neighbouring wood.\r\n\r\n“I discovered also another means through which I was enabled to assist\r\ntheir labours. I found that the youth spent a great part of each day\r\nin collecting wood for the family fire, and during the night I often\r\ntook his tools, the use of which I quickly discovered, and brought home\r\nfiring sufficient for the consumption of several days.\r\n\r\n“I remember, the first time that I did this, the young woman, when she\r\nopened the door in the morning, appeared greatly astonished on seeing a great\r\npile of wood on the outside. She uttered some words in a loud voice, and the\r\nyouth joined her, who also expressed surprise. I observed, with pleasure,\r\nthat he did not go to the forest that day, but spent it in repairing the\r\ncottage and cultivating the garden.\r\n\r\n“By degrees I made a discovery of still greater moment. I found that\r\nthese people possessed a method of communicating their experience and\r\nfeelings to one another by articulate sounds. I perceived that the words\r\nthey spoke sometimes produced pleasure or pain, smiles or sadness, in the\r\nminds and countenances of the hearers. This was indeed a godlike science,\r\nand I ardently desired to become acquainted with it. But I was baffled in\r\nevery attempt I made for this purpose. Their pronunciation was quick, and\r\nthe words they uttered, not having any apparent connection with visible\r\nobjects, I was unable to discover any clue by which I could unravel the\r\nmystery of their reference. By great application, however, and after having\r\nremained during the space of several revolutions of the moon in my hovel, I\r\ndiscovered the names that were given to some of the most familiar objects of\r\ndiscourse; I learned and applied the words, _fire, milk, bread,_ and\r\n_wood._ I learned also the names of the cottagers themselves. The youth\r\nand his companion had each of them several names, but the old man had only\r\none, which was _father._ The girl was called _sister_ or\r\n_Agatha,_ and the youth _Felix, brother,_ or _son_. I cannot\r\ndescribe the delight I felt when I learned the ideas appropriated to each of\r\nthese sounds and was able to pronounce them. I distinguished several other\r\nwords without being able as yet to understand or apply them, such as _good,\r\ndearest, unhappy._\r\n\r\n“I spent the winter in this manner. The gentle manners and beauty of\r\nthe cottagers greatly endeared them to me; when they were unhappy, I\r\nfelt depressed; when they rejoiced, I sympathised in their joys. I saw\r\nfew human beings besides them, and if any other happened to enter the\r\ncottage, their harsh manners and rude gait only enhanced to me the\r\nsuperior accomplishments of my friends. The old man, I could perceive,\r\noften endeavoured to encourage his children, as sometimes I found that\r\nhe called them, to cast off their melancholy. He would talk in a\r\ncheerful accent, with an expression of goodness that bestowed pleasure\r\neven upon me. Agatha listened with respect, her eyes sometimes filled\r\nwith tears, which she endeavoured to wipe away unperceived; but I\r\ngenerally found that her countenance and tone were more cheerful after\r\nhaving listened to the exhortations of her father. It was not thus\r\nwith Felix. He was always the saddest of the group, and even to my\r\nunpractised senses, he appeared to have suffered more deeply than his\r\nfriends. But if his countenance was more sorrowful, his voice was more\r\ncheerful than that of his sister, especially when he addressed the old\r\nman.\r\n\r\n“I could mention innumerable instances which, although slight, marked\r\nthe dispositions of these amiable cottagers. In the midst of poverty\r\nand want, Felix carried with pleasure to his sister the first little\r\nwhite flower that peeped out from beneath the snowy ground. Early in\r\nthe morning, before she had risen, he cleared away the snow that\r\nobstructed her path to the milk-house, drew water from the well, and\r\nbrought the wood from the outhouse, where, to his perpetual\r\nastonishment, he found his store always replenished by an invisible\r\nhand. In the day, I believe, he worked sometimes for a neighbouring\r\nfarmer, because he often went forth and did not return until dinner,\r\nyet brought no wood with him. At other times he worked in the garden,\r\nbut as there was little to do in the frosty season, he read to the old\r\nman and Agatha.\r\n\r\n“This reading had puzzled me extremely at first, but by degrees I\r\ndiscovered that he uttered many of the same sounds when he read as when\r\nhe talked. I conjectured, therefore, that he found on the paper signs\r\nfor speech which he understood, and I ardently longed to comprehend\r\nthese also; but how was that possible when I did not even understand\r\nthe sounds for which they stood as signs? I improved, however,\r\nsensibly in this science, but not sufficiently to follow up any kind of\r\nconversation, although I applied my whole mind to the endeavour, for I\r\neasily perceived that, although I eagerly longed to discover myself to\r\nthe cottagers, I ought not to make the attempt until I had first become\r\nmaster of their language, which knowledge might enable me to make them\r\noverlook the deformity of my figure, for with this also the contrast\r\nperpetually presented to my eyes had made me acquainted.\r\n\r\n“I had admired the perfect forms of my cottagers—their grace, beauty,\r\nand delicate complexions; but how was I terrified when I viewed myself\r\nin a transparent pool! At first I started back, unable to believe that\r\nit was indeed I who was reflected in the mirror; and when I became\r\nfully convinced that I was in reality the monster that I am, I was\r\nfilled with the bitterest sensations of despondence and mortification.\r\nAlas! I did not yet entirely know the fatal effects of this miserable\r\ndeformity.\r\n\r\n“As the sun became warmer and the light of day longer, the snow\r\nvanished, and I beheld the bare trees and the black earth. From this\r\ntime Felix was more employed, and the heart-moving indications of\r\nimpending famine disappeared. Their food, as I afterwards found, was\r\ncoarse, but it was wholesome; and they procured a sufficiency of it.\r\nSeveral new kinds of plants sprang up in the garden, which they\r\ndressed; and these signs of comfort increased daily as the season\r\nadvanced.\r\n\r\n“The old man, leaning on his son, walked each day at noon, when it did\r\nnot rain, as I found it was called when the heavens poured forth its\r\nwaters. This frequently took place, but a high wind quickly dried the\r\nearth, and the season became far more pleasant than it had been.\r\n\r\n“My mode of life in my hovel was uniform. During the morning I\r\nattended the motions of the cottagers, and when they were dispersed in\r\nvarious occupations, I slept; the remainder of the day was spent in\r\nobserving my friends. When they had retired to rest, if there was any\r\nmoon or the night was star-light, I went into the woods and collected\r\nmy own food and fuel for the cottage. When I returned, as often as it\r\nwas necessary, I cleared their path from the snow and performed those\r\noffices that I had seen done by Felix. I afterwards found that these\r\nlabours, performed by an invisible hand, greatly astonished them; and\r\nonce or twice I heard them, on these occasions, utter the words _good\r\nspirit, wonderful_; but I did not then understand the signification\r\nof these terms.\r\n\r\n“My thoughts now became more active, and I longed to discover the\r\nmotives and feelings of these lovely creatures; I was inquisitive to\r\nknow why Felix appeared so miserable and Agatha so sad. I thought\r\n(foolish wretch!) that it might be in my power to restore happiness to\r\nthese deserving people. When I slept or was absent, the forms of the\r\nvenerable blind father, the gentle Agatha, and the excellent Felix\r\nflitted before me. I looked upon them as superior beings who would be\r\nthe arbiters of my future destiny. I formed in my imagination a\r\nthousand pictures of presenting myself to them, and their reception of\r\nme. I imagined that they would be disgusted, until, by my gentle\r\ndemeanour and conciliating words, I should first win their favour and\r\nafterwards their love.\r\n\r\n“These thoughts exhilarated me and led me to apply with fresh ardour to\r\nthe acquiring the art of language. My organs were indeed harsh, but\r\nsupple; and although my voice was very unlike the soft music of their\r\ntones, yet I pronounced such words as I understood with tolerable ease.\r\nIt was as the ass and the lap-dog; yet surely the gentle ass whose\r\nintentions were affectionate, although his manners were rude, deserved\r\nbetter treatment than blows and execration.\r\n\r\n“The pleasant showers and genial warmth of spring greatly altered the\r\naspect of the earth. Men who before this change seemed to have been\r\nhid in caves dispersed themselves and were employed in various arts of\r\ncultivation. The birds sang in more cheerful notes, and the leaves\r\nbegan to bud forth on the trees. Happy, happy earth! Fit habitation\r\nfor gods, which, so short a time before, was bleak, damp, and\r\nunwholesome. My spirits were elevated by the enchanting appearance of\r\nnature; the past was blotted from my memory, the present was tranquil,\r\nand the future gilded by bright rays of hope and anticipations of joy.”\r\n\r\n\r\n\r\n\r\nChapter 13\r\n\r\n\r\n“I now hasten to the more moving part of my story. I shall relate\r\nevents that impressed me with feelings which, from what I had been,\r\nhave made me what I am.\r\n\r\n“Spring advanced rapidly; the weather became fine and the skies\r\ncloudless. It surprised me that what before was desert and gloomy\r\nshould now bloom with the most beautiful flowers and verdure. My\r\nsenses were gratified and refreshed by a thousand scents of delight and\r\na thousand sights of beauty.\r\n\r\n“It was on one of these days, when my cottagers periodically rested\r\nfrom labour—the old man played on his guitar, and the children\r\nlistened to him—that I observed the countenance of Felix was\r\nmelancholy beyond expression; he sighed frequently, and once his father\r\npaused in his music, and I conjectured by his manner that he inquired\r\nthe cause of his son’s sorrow. Felix replied in a cheerful accent, and\r\nthe old man was recommencing his music when someone tapped at the door.\r\n\r\n“It was a lady on horseback, accompanied by a country-man as a guide.\r\nThe lady was dressed in a dark suit and covered with a thick black\r\nveil. Agatha asked a question, to which the stranger only replied by\r\npronouncing, in a sweet accent, the name of Felix. Her voice was\r\nmusical but unlike that of either of my friends. On hearing this word,\r\nFelix came up hastily to the lady, who, when she saw him, threw up her\r\nveil, and I beheld a countenance of angelic beauty and expression. Her\r\nhair of a shining raven black, and curiously braided; her eyes were\r\ndark, but gentle, although animated; her features of a regular\r\nproportion, and her complexion wondrously fair, each cheek tinged with\r\na lovely pink.\r\n\r\n“Felix seemed ravished with delight when he saw her, every trait of\r\nsorrow vanished from his face, and it instantly expressed a degree of\r\necstatic joy, of which I could hardly have believed it capable; his\r\neyes sparkled, as his cheek flushed with pleasure; and at that moment I\r\nthought him as beautiful as the stranger. She appeared affected by\r\ndifferent feelings; wiping a few tears from her lovely eyes, she held\r\nout her hand to Felix, who kissed it rapturously and called her, as\r\nwell as I could distinguish, his sweet Arabian. She did not appear to\r\nunderstand him, but smiled. He assisted her to dismount, and\r\ndismissing her guide, conducted her into the cottage. Some\r\nconversation took place between him and his father, and the young\r\nstranger knelt at the old man’s feet and would have kissed his hand,\r\nbut he raised her and embraced her affectionately.\r\n\r\n“I soon perceived that although the stranger uttered articulate sounds\r\nand appeared to have a language of her own, she was neither understood\r\nby nor herself understood the cottagers. They made many signs which I\r\ndid not comprehend, but I saw that her presence diffused gladness\r\nthrough the cottage, dispelling their sorrow as the sun dissipates the\r\nmorning mists. Felix seemed peculiarly happy and with smiles of\r\ndelight welcomed his Arabian. Agatha, the ever-gentle Agatha, kissed\r\nthe hands of the lovely stranger, and pointing to her brother, made\r\nsigns which appeared to me to mean that he had been sorrowful until she\r\ncame. Some hours passed thus, while they, by their countenances,\r\nexpressed joy, the cause of which I did not comprehend. Presently I\r\nfound, by the frequent recurrence of some sound which the stranger\r\nrepeated after them, that she was endeavouring to learn their language;\r\nand the idea instantly occurred to me that I should make use of the\r\nsame instructions to the same end. The stranger learned about twenty\r\nwords at the first lesson; most of them, indeed, were those which I had\r\nbefore understood, but I profited by the others.\r\n\r\n“As night came on, Agatha and the Arabian retired early. When they\r\nseparated Felix kissed the hand of the stranger and said, ‘Good night\r\nsweet Safie.’ He sat up much longer, conversing with his father, and\r\nby the frequent repetition of her name I conjectured that their lovely\r\nguest was the subject of their conversation. I ardently desired to\r\nunderstand them, and bent every faculty towards that purpose, but found\r\nit utterly impossible.\r\n\r\n“The next morning Felix went out to his work, and after the usual\r\noccupations of Agatha were finished, the Arabian sat at the feet of the\r\nold man, and taking his guitar, played some airs so entrancingly\r\nbeautiful that they at once drew tears of sorrow and delight from my\r\neyes. She sang, and her voice flowed in a rich cadence, swelling or\r\ndying away like a nightingale of the woods.\r\n\r\n“When she had finished, she gave the guitar to Agatha, who at first\r\ndeclined it. She played a simple air, and her voice accompanied it in\r\nsweet accents, but unlike the wondrous strain of the stranger. The old\r\nman appeared enraptured and said some words which Agatha endeavoured to\r\nexplain to Safie, and by which he appeared to wish to express that she\r\nbestowed on him the greatest delight by her music.\r\n\r\n“The days now passed as peaceably as before, with the sole alteration\r\nthat joy had taken place of sadness in the countenances of my friends.\r\nSafie was always gay and happy; she and I improved rapidly in the\r\nknowledge of language, so that in two months I began to comprehend most\r\nof the words uttered by my protectors.\r\n\r\n“In the meanwhile also the black ground was covered with herbage, and\r\nthe green banks interspersed with innumerable flowers, sweet to the\r\nscent and the eyes, stars of pale radiance among the moonlight woods;\r\nthe sun became warmer, the nights clear and balmy; and my nocturnal\r\nrambles were an extreme pleasure to me, although they were considerably\r\nshortened by the late setting and early rising of the sun, for I never\r\nventured abroad during daylight, fearful of meeting with the same\r\ntreatment I had formerly endured in the first village which I entered.\r\n\r\n“My days were spent in close attention, that I might more speedily\r\nmaster the language; and I may boast that I improved more rapidly than\r\nthe Arabian, who understood very little and conversed in broken\r\naccents, whilst I comprehended and could imitate almost every word that\r\nwas spoken.\r\n\r\n“While I improved in speech, I also learned the science of letters as\r\nit was taught to the stranger, and this opened before me a wide field\r\nfor wonder and delight.\r\n\r\n“The book from which Felix instructed Safie was Volney’s _Ruins\r\nof Empires_. I should not have understood the purport of this book had not\r\nFelix, in reading it, given very minute explanations. He had chosen this\r\nwork, he said, because the declamatory style was framed in imitation of the\r\nEastern authors. Through this work I obtained a cursory knowledge of history\r\nand a view of the several empires at present existing in the world; it gave\r\nme an insight into the manners, governments, and religions of the different\r\nnations of the earth. I heard of the slothful Asiatics, of the stupendous\r\ngenius and mental activity of the Grecians, of the wars and wonderful virtue\r\nof the early Romans—of their subsequent degenerating—of the\r\ndecline of that mighty empire, of chivalry, Christianity, and kings. I heard\r\nof the discovery of the American hemisphere and wept with Safie over the\r\nhapless fate of its original inhabitants.\r\n\r\n“These wonderful narrations inspired me with strange feelings. Was\r\nman, indeed, at once so powerful, so virtuous and magnificent, yet so\r\nvicious and base? He appeared at one time a mere scion of the evil\r\nprinciple and at another as all that can be conceived of noble and\r\ngodlike. To be a great and virtuous man appeared the highest honour\r\nthat can befall a sensitive being; to be base and vicious, as many on\r\nrecord have been, appeared the lowest degradation, a condition more\r\nabject than that of the blind mole or harmless worm. For a long time I\r\ncould not conceive how one man could go forth to murder his fellow, or\r\neven why there were laws and governments; but when I heard details of\r\nvice and bloodshed, my wonder ceased and I turned away with disgust and\r\nloathing.\r\n\r\n“Every conversation of the cottagers now opened new wonders to me.\r\nWhile I listened to the instructions which Felix bestowed upon the\r\nArabian, the strange system of human society was explained to me. I\r\nheard of the division of property, of immense wealth and squalid\r\npoverty, of rank, descent, and noble blood.\r\n\r\n“The words induced me to turn towards myself. I learned that the\r\npossessions most esteemed by your fellow creatures were high and\r\nunsullied descent united with riches. A man might be respected with\r\nonly one of these advantages, but without either he was considered,\r\nexcept in very rare instances, as a vagabond and a slave, doomed to\r\nwaste his powers for the profits of the chosen few! And what was I? Of\r\nmy creation and creator I was absolutely ignorant, but I knew that I\r\npossessed no money, no friends, no kind of property. I was, besides,\r\nendued with a figure hideously deformed and loathsome; I was not even\r\nof the same nature as man. I was more agile than they and could\r\nsubsist upon coarser diet; I bore the extremes of heat and cold with\r\nless injury to my frame; my stature far exceeded theirs. When I looked\r\naround I saw and heard of none like me. Was I, then, a monster, a blot\r\nupon the earth, from which all men fled and whom all men disowned?\r\n\r\n“I cannot describe to you the agony that these reflections inflicted\r\nupon me; I tried to dispel them, but sorrow only increased with\r\nknowledge. Oh, that I had for ever remained in my native wood, nor\r\nknown nor felt beyond the sensations of hunger, thirst, and heat!\r\n\r\n“Of what a strange nature is knowledge! It clings to the mind when it\r\nhas once seized on it like a lichen on the rock. I wished sometimes to\r\nshake off all thought and feeling, but I learned that there was but one\r\nmeans to overcome the sensation of pain, and that was death—a state\r\nwhich I feared yet did not understand. I admired virtue and good\r\nfeelings and loved the gentle manners and amiable qualities of my\r\ncottagers, but I was shut out from intercourse with them, except\r\nthrough means which I obtained by stealth, when I was unseen and\r\nunknown, and which rather increased than satisfied the desire I had of\r\nbecoming one among my fellows. The gentle words of Agatha and the\r\nanimated smiles of the charming Arabian were not for me. The mild\r\nexhortations of the old man and the lively conversation of the loved\r\nFelix were not for me. Miserable, unhappy wretch!\r\n\r\n“Other lessons were impressed upon me even more deeply. I heard of the\r\ndifference of sexes, and the birth and growth of children, how the\r\nfather doted on the smiles of the infant, and the lively sallies of the\r\nolder child, how all the life and cares of the mother were wrapped up\r\nin the precious charge, how the mind of youth expanded and gained\r\nknowledge, of brother, sister, and all the various relationships which\r\nbind one human being to another in mutual bonds.\r\n\r\n“But where were my friends and relations? No father had watched my\r\ninfant days, no mother had blessed me with smiles and caresses; or if\r\nthey had, all my past life was now a blot, a blind vacancy in which I\r\ndistinguished nothing. From my earliest remembrance I had been as I\r\nthen was in height and proportion. I had never yet seen a being\r\nresembling me or who claimed any intercourse with me. What was I? The\r\nquestion again recurred, to be answered only with groans.\r\n\r\n“I will soon explain to what these feelings tended, but allow me now to\r\nreturn to the cottagers, whose story excited in me such various\r\nfeelings of indignation, delight, and wonder, but which all terminated\r\nin additional love and reverence for my protectors (for so I loved, in\r\nan innocent, half-painful self-deceit, to call them).”\r\n\r\n\r\n\r\n\r\nChapter 14\r\n\r\n\r\n“Some time elapsed before I learned the history of my friends. It was\r\none which could not fail to impress itself deeply on my mind, unfolding\r\nas it did a number of circumstances, each interesting and wonderful to\r\none so utterly inexperienced as I was.\r\n\r\n“The name of the old man was De Lacey. He was descended from a good\r\nfamily in France, where he had lived for many years in affluence,\r\nrespected by his superiors and beloved by his equals. His son was bred\r\nin the service of his country, and Agatha had ranked with ladies of the\r\nhighest distinction. A few months before my arrival they had lived in\r\na large and luxurious city called Paris, surrounded by friends and\r\npossessed of every enjoyment which virtue, refinement of intellect, or\r\ntaste, accompanied by a moderate fortune, could afford.\r\n\r\n“The father of Safie had been the cause of their ruin. He was a\r\nTurkish merchant and had inhabited Paris for many years, when, for some\r\nreason which I could not learn, he became obnoxious to the government.\r\nHe was seized and cast into prison the very day that Safie arrived from\r\nConstantinople to join him. He was tried and condemned to death. The\r\ninjustice of his sentence was very flagrant; all Paris was indignant;\r\nand it was judged that his religion and wealth rather than the crime\r\nalleged against him had been the cause of his condemnation.\r\n\r\n“Felix had accidentally been present at the trial; his horror and\r\nindignation were uncontrollable when he heard the decision of the\r\ncourt. He made, at that moment, a solemn vow to deliver him and then\r\nlooked around for the means. After many fruitless attempts to gain\r\nadmittance to the prison, he found a strongly grated window in an\r\nunguarded part of the building, which lighted the dungeon of the\r\nunfortunate Muhammadan, who, loaded with chains, waited in despair the\r\nexecution of the barbarous sentence. Felix visited the grate at night\r\nand made known to the prisoner his intentions in his favour. The Turk,\r\namazed and delighted, endeavoured to kindle the zeal of his deliverer\r\nby promises of reward and wealth. Felix rejected his offers with\r\ncontempt, yet when he saw the lovely Safie, who was allowed to visit\r\nher father and who by her gestures expressed her lively gratitude, the\r\nyouth could not help owning to his own mind that the captive possessed\r\na treasure which would fully reward his toil and hazard.\r\n\r\n“The Turk quickly perceived the impression that his daughter had made\r\non the heart of Felix and endeavoured to secure him more entirely in\r\nhis interests by the promise of her hand in marriage so soon as he\r\nshould be conveyed to a place of safety. Felix was too delicate to\r\naccept this offer, yet he looked forward to the probability of the\r\nevent as to the consummation of his happiness.\r\n\r\n“During the ensuing days, while the preparations were going forward for\r\nthe escape of the merchant, the zeal of Felix was warmed by several\r\nletters that he received from this lovely girl, who found means to\r\nexpress her thoughts in the language of her lover by the aid of an old\r\nman, a servant of her father who understood French. She thanked him in\r\nthe most ardent terms for his intended services towards her parent, and\r\nat the same time she gently deplored her own fate.\r\n\r\n“I have copies of these letters, for I found means, during my residence\r\nin the hovel, to procure the implements of writing; and the letters\r\nwere often in the hands of Felix or Agatha. Before I depart I will\r\ngive them to you; they will prove the truth of my tale; but at present,\r\nas the sun is already far declined, I shall only have time to repeat\r\nthe substance of them to you.\r\n\r\n“Safie related that her mother was a Christian Arab, seized and made a\r\nslave by the Turks; recommended by her beauty, she had won the heart of\r\nthe father of Safie, who married her. The young girl spoke in high and\r\nenthusiastic terms of her mother, who, born in freedom, spurned the\r\nbondage to which she was now reduced. She instructed her daughter in\r\nthe tenets of her religion and taught her to aspire to higher powers of\r\nintellect and an independence of spirit forbidden to the female\r\nfollowers of Muhammad. This lady died, but her lessons were indelibly\r\nimpressed on the mind of Safie, who sickened at the prospect of again\r\nreturning to Asia and being immured within the walls of a harem,\r\nallowed only to occupy herself with infantile amusements, ill-suited to\r\nthe temper of her soul, now accustomed to grand ideas and a noble\r\nemulation for virtue. The prospect of marrying a Christian and\r\nremaining in a country where women were allowed to take a rank in\r\nsociety was enchanting to her.\r\n\r\n“The day for the execution of the Turk was fixed, but on the night\r\nprevious to it he quitted his prison and before morning was distant\r\nmany leagues from Paris. Felix had procured passports in the name of\r\nhis father, sister, and himself. He had previously communicated his\r\nplan to the former, who aided the deceit by quitting his house, under\r\nthe pretence of a journey and concealed himself, with his daughter, in\r\nan obscure part of Paris.\r\n\r\n“Felix conducted the fugitives through France to Lyons and across Mont\r\nCenis to Leghorn, where the merchant had decided to wait a favourable\r\nopportunity of passing into some part of the Turkish dominions.\r\n\r\n“Safie resolved to remain with her father until the moment of his\r\ndeparture, before which time the Turk renewed his promise that she\r\nshould be united to his deliverer; and Felix remained with them in\r\nexpectation of that event; and in the meantime he enjoyed the society\r\nof the Arabian, who exhibited towards him the simplest and tenderest\r\naffection. They conversed with one another through the means of an\r\ninterpreter, and sometimes with the interpretation of looks; and Safie\r\nsang to him the divine airs of her native country.\r\n\r\n“The Turk allowed this intimacy to take place and encouraged the hopes\r\nof the youthful lovers, while in his heart he had formed far other\r\nplans. He loathed the idea that his daughter should be united to a\r\nChristian, but he feared the resentment of Felix if he should appear\r\nlukewarm, for he knew that he was still in the power of his deliverer\r\nif he should choose to betray him to the Italian state which they\r\ninhabited. He revolved a thousand plans by which he should be enabled\r\nto prolong the deceit until it might be no longer necessary, and\r\nsecretly to take his daughter with him when he departed. His plans\r\nwere facilitated by the news which arrived from Paris.\r\n\r\n“The government of France were greatly enraged at the escape of their\r\nvictim and spared no pains to detect and punish his deliverer. The\r\nplot of Felix was quickly discovered, and De Lacey and Agatha were\r\nthrown into prison. The news reached Felix and roused him from his\r\ndream of pleasure. His blind and aged father and his gentle sister lay\r\nin a noisome dungeon while he enjoyed the free air and the society of\r\nher whom he loved. This idea was torture to him. He quickly arranged\r\nwith the Turk that if the latter should find a favourable opportunity\r\nfor escape before Felix could return to Italy, Safie should remain as a\r\nboarder at a convent at Leghorn; and then, quitting the lovely Arabian,\r\nhe hastened to Paris and delivered himself up to the vengeance of the\r\nlaw, hoping to free De Lacey and Agatha by this proceeding.\r\n\r\n“He did not succeed. They remained confined for five months before the\r\ntrial took place, the result of which deprived them of their fortune\r\nand condemned them to a perpetual exile from their native country.\r\n\r\n“They found a miserable asylum in the cottage in Germany, where I\r\ndiscovered them. Felix soon learned that the treacherous Turk, for\r\nwhom he and his family endured such unheard-of oppression, on\r\ndiscovering that his deliverer was thus reduced to poverty and ruin,\r\nbecame a traitor to good feeling and honour and had quitted Italy with\r\nhis daughter, insultingly sending Felix a pittance of money to aid him,\r\nas he said, in some plan of future maintenance.\r\n\r\n“Such were the events that preyed on the heart of Felix and rendered\r\nhim, when I first saw him, the most miserable of his family. He could\r\nhave endured poverty, and while this distress had been the meed of his\r\nvirtue, he gloried in it; but the ingratitude of the Turk and the loss\r\nof his beloved Safie were misfortunes more bitter and irreparable. The\r\narrival of the Arabian now infused new life into his soul.\r\n\r\n“When the news reached Leghorn that Felix was deprived of his wealth\r\nand rank, the merchant commanded his daughter to think no more of her\r\nlover, but to prepare to return to her native country. The generous\r\nnature of Safie was outraged by this command; she attempted to\r\nexpostulate with her father, but he left her angrily, reiterating his\r\ntyrannical mandate.\r\n\r\n“A few days after, the Turk entered his daughter’s apartment and told\r\nher hastily that he had reason to believe that his residence at Leghorn\r\nhad been divulged and that he should speedily be delivered up to the\r\nFrench government; he had consequently hired a vessel to convey him to\r\nConstantinople, for which city he should sail in a few hours. He\r\nintended to leave his daughter under the care of a confidential\r\nservant, to follow at her leisure with the greater part of his\r\nproperty, which had not yet arrived at Leghorn.\r\n\r\n“When alone, Safie resolved in her own mind the plan of conduct that it\r\nwould become her to pursue in this emergency. A residence in Turkey\r\nwas abhorrent to her; her religion and her feelings were alike averse\r\nto it. By some papers of her father which fell into her hands she\r\nheard of the exile of her lover and learnt the name of the spot where\r\nhe then resided. She hesitated some time, but at length she formed her\r\ndetermination. Taking with her some jewels that belonged to her and a\r\nsum of money, she quitted Italy with an attendant, a native of Leghorn,\r\nbut who understood the common language of Turkey, and departed for\r\nGermany.\r\n\r\n“She arrived in safety at a town about twenty leagues from the cottage\r\nof De Lacey, when her attendant fell dangerously ill. Safie nursed her\r\nwith the most devoted affection, but the poor girl died, and the\r\nArabian was left alone, unacquainted with the language of the country\r\nand utterly ignorant of the customs of the world. She fell, however,\r\ninto good hands. The Italian had mentioned the name of the spot for\r\nwhich they were bound, and after her death the woman of the house in\r\nwhich they had lived took care that Safie should arrive in safety at\r\nthe cottage of her lover.”\r\n\r\n\r\n\r\n\r\nChapter 15\r\n\r\n\r\n“Such was the history of my beloved cottagers. It impressed me deeply.\r\nI learned, from the views of social life which it developed, to admire\r\ntheir virtues and to deprecate the vices of mankind.\r\n\r\n“As yet I looked upon crime as a distant evil, benevolence and\r\ngenerosity were ever present before me, inciting within me a desire to\r\nbecome an actor in the busy scene where so many admirable qualities\r\nwere called forth and displayed. But in giving an account of the\r\nprogress of my intellect, I must not omit a circumstance which occurred\r\nin the beginning of the month of August of the same year.\r\n\r\n“One night during my accustomed visit to the neighbouring wood where I\r\ncollected my own food and brought home firing for my protectors, I found on\r\nthe ground a leathern portmanteau containing several articles of dress and\r\nsome books. I eagerly seized the prize and returned with it to my hovel. \r\nFortunately the books were written in the language, the elements of which I\r\nhad acquired at the cottage; they consisted of _Paradise Lost_, a volume\r\nof _Plutarch’s Lives_, and the _Sorrows of Werter_. The\r\npossession of these treasures gave me extreme delight; I now continually\r\nstudied and exercised my mind upon these histories, whilst my friends were\r\nemployed in their ordinary occupations.\r\n\r\n“I can hardly describe to you the effect of these books. They produced\r\nin me an infinity of new images and feelings, that sometimes raised me\r\nto ecstasy, but more frequently sunk me into the lowest dejection. In\r\nthe _Sorrows of Werter_, besides the interest of its simple and affecting\r\nstory, so many opinions are canvassed and so many lights thrown upon\r\nwhat had hitherto been to me obscure subjects that I found in it a\r\nnever-ending source of speculation and astonishment. The gentle and\r\ndomestic manners it described, combined with lofty sentiments and\r\nfeelings, which had for their object something out of self, accorded\r\nwell with my experience among my protectors and with the wants which\r\nwere for ever alive in my own bosom. But I thought Werter himself a\r\nmore divine being than I had ever beheld or imagined; his character\r\ncontained no pretension, but it sank deep. The disquisitions upon\r\ndeath and suicide were calculated to fill me with wonder. I did not\r\npretend to enter into the merits of the case, yet I inclined towards\r\nthe opinions of the hero, whose extinction I wept, without precisely\r\nunderstanding it.\r\n\r\n“As I read, however, I applied much personally to my own feelings and\r\ncondition. I found myself similar yet at the same time strangely\r\nunlike to the beings concerning whom I read and to whose conversation I\r\nwas a listener. I sympathised with and partly understood them, but I\r\nwas unformed in mind; I was dependent on none and related to none.\r\n‘The path of my departure was free,’ and there was none to lament my\r\nannihilation. My person was hideous and my stature gigantic. What did\r\nthis mean? Who was I? What was I? Whence did I come? What was my\r\ndestination? These questions continually recurred, but I was unable to\r\nsolve them.\r\n\r\n“The volume of _Plutarch’s Lives_ which I possessed contained the\r\nhistories of the first founders of the ancient republics. This book\r\nhad a far different effect upon me from the _Sorrows of Werter_. I\r\nlearned from Werter’s imaginations despondency and gloom, but Plutarch\r\ntaught me high thoughts; he elevated me above the wretched sphere of my\r\nown reflections, to admire and love the heroes of past ages. Many\r\nthings I read surpassed my understanding and experience. I had a very\r\nconfused knowledge of kingdoms, wide extents of country, mighty rivers,\r\nand boundless seas. But I was perfectly unacquainted with towns and\r\nlarge assemblages of men. The cottage of my protectors had been the\r\nonly school in which I had studied human nature, but this book\r\ndeveloped new and mightier scenes of action. I read of men concerned\r\nin public affairs, governing or massacring their species. I felt the\r\ngreatest ardour for virtue rise within me, and abhorrence for vice, as\r\nfar as I understood the signification of those terms, relative as they\r\nwere, as I applied them, to pleasure and pain alone. Induced by these\r\nfeelings, I was of course led to admire peaceable lawgivers, Numa,\r\nSolon, and Lycurgus, in preference to Romulus and Theseus. The\r\npatriarchal lives of my protectors caused these impressions to take a\r\nfirm hold on my mind; perhaps, if my first introduction to humanity had\r\nbeen made by a young soldier, burning for glory and slaughter, I should\r\nhave been imbued with different sensations.\r\n\r\n“But _Paradise Lost_ excited different and far deeper emotions. I read\r\nit, as I had read the other volumes which had fallen into my hands, as\r\na true history. It moved every feeling of wonder and awe that the\r\npicture of an omnipotent God warring with his creatures was capable of\r\nexciting. I often referred the several situations, as their similarity\r\nstruck me, to my own. Like Adam, I was apparently united by no link to\r\nany other being in existence; but his state was far different from mine\r\nin every other respect. He had come forth from the hands of God a\r\nperfect creature, happy and prosperous, guarded by the especial care of\r\nhis Creator; he was allowed to converse with and acquire knowledge from\r\nbeings of a superior nature, but I was wretched, helpless, and alone.\r\nMany times I considered Satan as the fitter emblem of my condition, for\r\noften, like him, when I viewed the bliss of my protectors, the bitter\r\ngall of envy rose within me.\r\n\r\n“Another circumstance strengthened and confirmed these feelings. Soon\r\nafter my arrival in the hovel I discovered some papers in the pocket of\r\nthe dress which I had taken from your laboratory. At first I had\r\nneglected them, but now that I was able to decipher the characters in\r\nwhich they were written, I began to study them with diligence. It was\r\nyour journal of the four months that preceded my creation. You\r\nminutely described in these papers every step you took in the progress\r\nof your work; this history was mingled with accounts of domestic\r\noccurrences. You doubtless recollect these papers. Here they are.\r\nEverything is related in them which bears reference to my accursed\r\norigin; the whole detail of that series of disgusting circumstances\r\nwhich produced it is set in view; the minutest description of my odious\r\nand loathsome person is given, in language which painted your own\r\nhorrors and rendered mine indelible. I sickened as I read. ‘Hateful\r\nday when I received life!’ I exclaimed in agony. ‘Accursed creator!\r\nWhy did you form a monster so hideous that even _you_ turned from me in\r\ndisgust? God, in pity, made man beautiful and alluring, after his own\r\nimage; but my form is a filthy type of yours, more horrid even from the\r\nvery resemblance. Satan had his companions, fellow devils, to admire\r\nand encourage him, but I am solitary and abhorred.’\r\n\r\n“These were the reflections of my hours of despondency and solitude;\r\nbut when I contemplated the virtues of the cottagers, their amiable and\r\nbenevolent dispositions, I persuaded myself that when they should\r\nbecome acquainted with my admiration of their virtues they would\r\ncompassionate me and overlook my personal deformity. Could they turn\r\nfrom their door one, however monstrous, who solicited their compassion\r\nand friendship? I resolved, at least, not to despair, but in every way\r\nto fit myself for an interview with them which would decide my fate. I\r\npostponed this attempt for some months longer, for the importance\r\nattached to its success inspired me with a dread lest I should fail.\r\nBesides, I found that my understanding improved so much with every\r\nday’s experience that I was unwilling to commence this undertaking\r\nuntil a few more months should have added to my sagacity.\r\n\r\n“Several changes, in the meantime, took place in the cottage. The\r\npresence of Safie diffused happiness among its inhabitants, and I also\r\nfound that a greater degree of plenty reigned there. Felix and Agatha\r\nspent more time in amusement and conversation, and were assisted in\r\ntheir labours by servants. They did not appear rich, but they were\r\ncontented and happy; their feelings were serene and peaceful, while\r\nmine became every day more tumultuous. Increase of knowledge only\r\ndiscovered to me more clearly what a wretched outcast I was. I\r\ncherished hope, it is true, but it vanished when I beheld my person\r\nreflected in water or my shadow in the moonshine, even as that frail\r\nimage and that inconstant shade.\r\n\r\n“I endeavoured to crush these fears and to fortify myself for the trial\r\nwhich in a few months I resolved to undergo; and sometimes I allowed my\r\nthoughts, unchecked by reason, to ramble in the fields of Paradise, and\r\ndared to fancy amiable and lovely creatures sympathising with my\r\nfeelings and cheering my gloom; their angelic countenances breathed\r\nsmiles of consolation. But it was all a dream; no Eve soothed my\r\nsorrows nor shared my thoughts; I was alone. I remembered Adam’s\r\nsupplication to his Creator. But where was mine? He had abandoned me,\r\nand in the bitterness of my heart I cursed him.\r\n\r\n“Autumn passed thus. I saw, with surprise and grief, the leaves decay\r\nand fall, and nature again assume the barren and bleak appearance it\r\nhad worn when I first beheld the woods and the lovely moon. Yet I did\r\nnot heed the bleakness of the weather; I was better fitted by my\r\nconformation for the endurance of cold than heat. But my chief\r\ndelights were the sight of the flowers, the birds, and all the gay\r\napparel of summer; when those deserted me, I turned with more attention\r\ntowards the cottagers. Their happiness was not decreased by the\r\nabsence of summer. They loved and sympathised with one another; and\r\ntheir joys, depending on each other, were not interrupted by the\r\ncasualties that took place around them. The more I saw of them, the\r\ngreater became my desire to claim their protection and kindness; my\r\nheart yearned to be known and loved by these amiable creatures; to see\r\ntheir sweet looks directed towards me with affection was the utmost\r\nlimit of my ambition. I dared not think that they would turn them from\r\nme with disdain and horror. The poor that stopped at their door were\r\nnever driven away. I asked, it is true, for greater treasures than a\r\nlittle food or rest: I required kindness and sympathy; but I did not\r\nbelieve myself utterly unworthy of it.\r\n\r\n“The winter advanced, and an entire revolution of the seasons had taken\r\nplace since I awoke into life. My attention at this time was solely\r\ndirected towards my plan of introducing myself into the cottage of my\r\nprotectors. I revolved many projects, but that on which I finally\r\nfixed was to enter the dwelling when the blind old man should be alone.\r\nI had sagacity enough to discover that the unnatural hideousness of my\r\nperson was the chief object of horror with those who had formerly\r\nbeheld me. My voice, although harsh, had nothing terrible in it; I\r\nthought, therefore, that if in the absence of his children I could gain\r\nthe good will and mediation of the old De Lacey, I might by his means\r\nbe tolerated by my younger protectors.\r\n\r\n“One day, when the sun shone on the red leaves that strewed the ground\r\nand diffused cheerfulness, although it denied warmth, Safie, Agatha,\r\nand Felix departed on a long country walk, and the old man, at his own\r\ndesire, was left alone in the cottage. When his children had departed,\r\nhe took up his guitar and played several mournful but sweet airs, more\r\nsweet and mournful than I had ever heard him play before. At first his\r\ncountenance was illuminated with pleasure, but as he continued,\r\nthoughtfulness and sadness succeeded; at length, laying aside the\r\ninstrument, he sat absorbed in reflection.\r\n\r\n“My heart beat quick; this was the hour and moment of trial, which\r\nwould decide my hopes or realise my fears. The servants were gone to a\r\nneighbouring fair. All was silent in and around the cottage; it was an\r\nexcellent opportunity; yet, when I proceeded to execute my plan, my\r\nlimbs failed me and I sank to the ground. Again I rose, and exerting\r\nall the firmness of which I was master, removed the planks which I had\r\nplaced before my hovel to conceal my retreat. The fresh air revived\r\nme, and with renewed determination I approached the door of their\r\ncottage.\r\n\r\n“I knocked. ‘Who is there?’ said the old man. ‘Come in.’\r\n\r\n“I entered. ‘Pardon this intrusion,’ said I; ‘I am\r\na traveller in want of a little rest; you would greatly oblige me if you\r\nwould allow me to remain a few minutes before the fire.’\r\n\r\n“‘Enter,’ said De Lacey, ‘and I will try in what\r\nmanner I can to relieve your wants; but, unfortunately, my children are\r\nfrom home, and as I am blind, I am afraid I shall find it difficult to\r\nprocure food for you.’\r\n\r\n“‘Do not trouble yourself, my kind host; I have food; it is\r\nwarmth and rest only that I need.’\r\n\r\n“I sat down, and a silence ensued. I knew that every minute was\r\nprecious to me, yet I remained irresolute in what manner to commence\r\nthe interview, when the old man addressed me.\r\n\r\n‘By your language, stranger, I suppose you are my countryman; are you\r\nFrench?’\r\n\r\n“‘No; but I was educated by a French family and understand that\r\nlanguage only. I am now going to claim the protection of some friends,\r\nwhom I sincerely love, and of whose favour I have some hopes.’\r\n\r\n“‘Are they Germans?’\r\n\r\n“‘No, they are French. But let us change the subject. I am an\r\nunfortunate and deserted creature, I look around and I have no relation\r\nor friend upon earth. These amiable people to whom I go have never\r\nseen me and know little of me. I am full of fears, for if I fail\r\nthere, I am an outcast in the world for ever.’\r\n\r\n“‘Do not despair. To be friendless is indeed to be unfortunate, but\r\nthe hearts of men, when unprejudiced by any obvious self-interest, are\r\nfull of brotherly love and charity. Rely, therefore, on your hopes;\r\nand if these friends are good and amiable, do not despair.’\r\n\r\n“‘They are kind—they are the most excellent creatures in the world;\r\nbut, unfortunately, they are prejudiced against me. I have good\r\ndispositions; my life has been hitherto harmless and in some degree\r\nbeneficial; but a fatal prejudice clouds their eyes, and where they\r\nought to see a feeling and kind friend, they behold only a detestable\r\nmonster.’\r\n\r\n“‘That is indeed unfortunate; but if you are really blameless, cannot\r\nyou undeceive them?’\r\n\r\n“‘I am about to undertake that task; and it is on that account that I\r\nfeel so many overwhelming terrors. I tenderly love these friends; I\r\nhave, unknown to them, been for many months in the habits of daily\r\nkindness towards them; but they believe that I wish to injure them, and\r\nit is that prejudice which I wish to overcome.’\r\n\r\n“‘Where do these friends reside?’\r\n\r\n“‘Near this spot.’\r\n\r\n“The old man paused and then continued, ‘If you will unreservedly\r\nconfide to me the particulars of your tale, I perhaps may be of use in\r\nundeceiving them. I am blind and cannot judge of your countenance, but\r\nthere is something in your words which persuades me that you are\r\nsincere. I am poor and an exile, but it will afford me true pleasure\r\nto be in any way serviceable to a human creature.’\r\n\r\n“‘Excellent man! I thank you and accept your generous offer. You\r\nraise me from the dust by this kindness; and I trust that, by your aid,\r\nI shall not be driven from the society and sympathy of your fellow\r\ncreatures.’\r\n\r\n“‘Heaven forbid! Even if you were really criminal, for that can only\r\ndrive you to desperation, and not instigate you to virtue. I also am\r\nunfortunate; I and my family have been condemned, although innocent;\r\njudge, therefore, if I do not feel for your misfortunes.’\r\n\r\n“‘How can I thank you, my best and only benefactor? From your lips\r\nfirst have I heard the voice of kindness directed towards me; I shall\r\nbe for ever grateful; and your present humanity assures me of success\r\nwith those friends whom I am on the point of meeting.’\r\n\r\n“‘May I know the names and residence of those friends?’\r\n\r\n“I paused. This, I thought, was the moment of decision, which was to\r\nrob me of or bestow happiness on me for ever. I struggled vainly for\r\nfirmness sufficient to answer him, but the effort destroyed all my\r\nremaining strength; I sank on the chair and sobbed aloud. At that\r\nmoment I heard the steps of my younger protectors. I had not a moment\r\nto lose, but seizing the hand of the old man, I cried, ‘Now is the\r\ntime! Save and protect me! You and your family are the friends whom I\r\nseek. Do not you desert me in the hour of trial!’\r\n\r\n“‘Great God!’ exclaimed the old man. ‘Who are you?’\r\n\r\n“At that instant the cottage door was opened, and Felix, Safie, and\r\nAgatha entered. Who can describe their horror and consternation on\r\nbeholding me? Agatha fainted, and Safie, unable to attend to her\r\nfriend, rushed out of the cottage. Felix darted forward, and with\r\nsupernatural force tore me from his father, to whose knees I clung, in\r\na transport of fury, he dashed me to the ground and struck me violently\r\nwith a stick. I could have torn him limb from limb, as the lion rends\r\nthe antelope. But my heart sank within me as with bitter sickness, and\r\nI refrained. I saw him on the point of repeating his blow, when,\r\novercome by pain and anguish, I quitted the cottage, and in the general\r\ntumult escaped unperceived to my hovel.”\r\n\r\n\r\n\r\n\r\nChapter 16\r\n\r\n\r\n“Cursed, cursed creator! Why did I live? Why, in that instant, did I\r\nnot extinguish the spark of existence which you had so wantonly\r\nbestowed? I know not; despair had not yet taken possession of me; my\r\nfeelings were those of rage and revenge. I could with pleasure have\r\ndestroyed the cottage and its inhabitants and have glutted myself with\r\ntheir shrieks and misery.\r\n\r\n“When night came I quitted my retreat and wandered in the wood; and\r\nnow, no longer restrained by the fear of discovery, I gave vent to my\r\nanguish in fearful howlings. I was like a wild beast that had broken\r\nthe toils, destroying the objects that obstructed me and ranging\r\nthrough the wood with a stag-like swiftness. Oh! What a miserable\r\nnight I passed! The cold stars shone in mockery, and the bare trees\r\nwaved their branches above me; now and then the sweet voice of a bird\r\nburst forth amidst the universal stillness. All, save I, were at rest\r\nor in enjoyment; I, like the arch-fiend, bore a hell within me, and\r\nfinding myself unsympathised with, wished to tear up the trees, spread\r\nhavoc and destruction around me, and then to have sat down and enjoyed\r\nthe ruin.\r\n\r\n“But this was a luxury of sensation that could not endure; I became\r\nfatigued with excess of bodily exertion and sank on the damp grass in\r\nthe sick impotence of despair. There was none among the myriads of men\r\nthat existed who would pity or assist me; and should I feel kindness\r\ntowards my enemies? No; from that moment I declared everlasting war\r\nagainst the species, and more than all, against him who had formed me\r\nand sent me forth to this insupportable misery.\r\n\r\n“The sun rose; I heard the voices of men and knew that it was\r\nimpossible to return to my retreat during that day. Accordingly I hid\r\nmyself in some thick underwood, determining to devote the ensuing hours\r\nto reflection on my situation.\r\n\r\n“The pleasant sunshine and the pure air of day restored me to some\r\ndegree of tranquillity; and when I considered what had passed at the\r\ncottage, I could not help believing that I had been too hasty in my\r\nconclusions. I had certainly acted imprudently. It was apparent that\r\nmy conversation had interested the father in my behalf, and I was a\r\nfool in having exposed my person to the horror of his children. I\r\nought to have familiarised the old De Lacey to me, and by degrees to\r\nhave discovered myself to the rest of his family, when they should have\r\nbeen prepared for my approach. But I did not believe my errors to be\r\nirretrievable, and after much consideration I resolved to return to the\r\ncottage, seek the old man, and by my representations win him to my\r\nparty.\r\n\r\n“These thoughts calmed me, and in the afternoon I sank into a profound\r\nsleep; but the fever of my blood did not allow me to be visited by\r\npeaceful dreams. The horrible scene of the preceding day was for ever\r\nacting before my eyes; the females were flying and the enraged Felix\r\ntearing me from his father’s feet. I awoke exhausted, and finding that\r\nit was already night, I crept forth from my hiding-place, and went in\r\nsearch of food.\r\n\r\n“When my hunger was appeased, I directed my steps towards the\r\nwell-known path that conducted to the cottage. All there was at peace.\r\nI crept into my hovel and remained in silent expectation of the\r\naccustomed hour when the family arose. That hour passed, the sun\r\nmounted high in the heavens, but the cottagers did not appear. I\r\ntrembled violently, apprehending some dreadful misfortune. The inside\r\nof the cottage was dark, and I heard no motion; I cannot describe the\r\nagony of this suspense.\r\n\r\n“Presently two countrymen passed by, but pausing near the cottage, they\r\nentered into conversation, using violent gesticulations; but I did not\r\nunderstand what they said, as they spoke the language of the country,\r\nwhich differed from that of my protectors. Soon after, however, Felix\r\napproached with another man; I was surprised, as I knew that he had not\r\nquitted the cottage that morning, and waited anxiously to discover from\r\nhis discourse the meaning of these unusual appearances.\r\n\r\n“‘Do you consider,’ said his companion to him,\r\n‘that you will be obliged to pay three months’ rent and to lose\r\nthe produce of your garden? I do not wish to take any unfair advantage, and\r\nI beg therefore that you will take some days to consider of your\r\ndetermination.’\r\n\r\n“‘It is utterly useless,’ replied Felix; ‘we can\r\nnever again inhabit your cottage. The life of my father is in the greatest\r\ndanger, owing to the dreadful circumstance that I have related. My wife and\r\nmy sister will never recover from their horror. I entreat you not to reason\r\nwith me any more. Take possession of your tenement and let me fly from this\r\nplace.’\r\n\r\n“Felix trembled violently as he said this. He and his companion\r\nentered the cottage, in which they remained for a few minutes, and then\r\ndeparted. I never saw any of the family of De Lacey more.\r\n\r\n“I continued for the remainder of the day in my hovel in a state of\r\nutter and stupid despair. My protectors had departed and had broken\r\nthe only link that held me to the world. For the first time the\r\nfeelings of revenge and hatred filled my bosom, and I did not strive to\r\ncontrol them, but allowing myself to be borne away by the stream, I\r\nbent my mind towards injury and death. When I thought of my friends,\r\nof the mild voice of De Lacey, the gentle eyes of Agatha, and the\r\nexquisite beauty of the Arabian, these thoughts vanished and a gush of\r\ntears somewhat soothed me. But again when I reflected that they had\r\nspurned and deserted me, anger returned, a rage of anger, and unable to\r\ninjure anything human, I turned my fury towards inanimate objects. As\r\nnight advanced, I placed a variety of combustibles around the cottage,\r\nand after having destroyed every vestige of cultivation in the garden,\r\nI waited with forced impatience until the moon had sunk to commence my\r\noperations.\r\n\r\n“As the night advanced, a fierce wind arose from the woods and quickly\r\ndispersed the clouds that had loitered in the heavens; the blast tore\r\nalong like a mighty avalanche and produced a kind of insanity in my\r\nspirits that burst all bounds of reason and reflection. I lighted the\r\ndry branch of a tree and danced with fury around the devoted cottage,\r\nmy eyes still fixed on the western horizon, the edge of which the moon\r\nnearly touched. A part of its orb was at length hid, and I waved my\r\nbrand; it sank, and with a loud scream I fired the straw, and heath,\r\nand bushes, which I had collected. The wind fanned the fire, and the\r\ncottage was quickly enveloped by the flames, which clung to it and\r\nlicked it with their forked and destroying tongues.\r\n\r\n“As soon as I was convinced that no assistance could save any part of\r\nthe habitation, I quitted the scene and sought for refuge in the woods.\r\n\r\n“And now, with the world before me, whither should I bend my steps? I\r\nresolved to fly far from the scene of my misfortunes; but to me, hated\r\nand despised, every country must be equally horrible. At length the\r\nthought of you crossed my mind. I learned from your papers that you\r\nwere my father, my creator; and to whom could I apply with more fitness\r\nthan to him who had given me life? Among the lessons that Felix had\r\nbestowed upon Safie, geography had not been omitted; I had learned from\r\nthese the relative situations of the different countries of the earth.\r\nYou had mentioned Geneva as the name of your native town, and towards\r\nthis place I resolved to proceed.\r\n\r\n“But how was I to direct myself? I knew that I must travel in a\r\nsouthwesterly direction to reach my destination, but the sun was my\r\nonly guide. I did not know the names of the towns that I was to pass\r\nthrough, nor could I ask information from a single human being; but I\r\ndid not despair. From you only could I hope for succour, although\r\ntowards you I felt no sentiment but that of hatred. Unfeeling,\r\nheartless creator! You had endowed me with perceptions and passions\r\nand then cast me abroad an object for the scorn and horror of mankind.\r\nBut on you only had I any claim for pity and redress, and from you I\r\ndetermined to seek that justice which I vainly attempted to gain from\r\nany other being that wore the human form.\r\n\r\n“My travels were long and the sufferings I endured intense. It was\r\nlate in autumn when I quitted the district where I had so long resided.\r\nI travelled only at night, fearful of encountering the visage of a\r\nhuman being. Nature decayed around me, and the sun became heatless;\r\nrain and snow poured around me; mighty rivers were frozen; the surface\r\nof the earth was hard and chill, and bare, and I found no shelter. Oh,\r\nearth! How often did I imprecate curses on the cause of my being! The\r\nmildness of my nature had fled, and all within me was turned to gall\r\nand bitterness. The nearer I approached to your habitation, the more\r\ndeeply did I feel the spirit of revenge enkindled in my heart. Snow\r\nfell, and the waters were hardened, but I rested not. A few incidents\r\nnow and then directed me, and I possessed a map of the country; but I\r\noften wandered wide from my path. The agony of my feelings allowed me\r\nno respite; no incident occurred from which my rage and misery could\r\nnot extract its food; but a circumstance that happened when I arrived\r\non the confines of Switzerland, when the sun had recovered its warmth\r\nand the earth again began to look green, confirmed in an especial\r\nmanner the bitterness and horror of my feelings.\r\n\r\n“I generally rested during the day and travelled only when I was\r\nsecured by night from the view of man. One morning, however, finding\r\nthat my path lay through a deep wood, I ventured to continue my journey\r\nafter the sun had risen; the day, which was one of the first of spring,\r\ncheered even me by the loveliness of its sunshine and the balminess of\r\nthe air. I felt emotions of gentleness and pleasure, that had long\r\nappeared dead, revive within me. Half surprised by the novelty of\r\nthese sensations, I allowed myself to be borne away by them, and\r\nforgetting my solitude and deformity, dared to be happy. Soft tears\r\nagain bedewed my cheeks, and I even raised my humid eyes with\r\nthankfulness towards the blessed sun, which bestowed such joy upon me.\r\n\r\n“I continued to wind among the paths of the wood, until I came to its\r\nboundary, which was skirted by a deep and rapid river, into which many\r\nof the trees bent their branches, now budding with the fresh spring.\r\nHere I paused, not exactly knowing what path to pursue, when I heard\r\nthe sound of voices, that induced me to conceal myself under the shade\r\nof a cypress. I was scarcely hid when a young girl came running\r\ntowards the spot where I was concealed, laughing, as if she ran from\r\nsomeone in sport. She continued her course along the precipitous sides\r\nof the river, when suddenly her foot slipped, and she fell into the\r\nrapid stream. I rushed from my hiding-place and with extreme labour,\r\nfrom the force of the current, saved her and dragged her to shore. She\r\nwas senseless, and I endeavoured by every means in my power to restore\r\nanimation, when I was suddenly interrupted by the approach of a rustic,\r\nwho was probably the person from whom she had playfully fled. On\r\nseeing me, he darted towards me, and tearing the girl from my arms,\r\nhastened towards the deeper parts of the wood. I followed speedily, I\r\nhardly knew why; but when the man saw me draw near, he aimed a gun,\r\nwhich he carried, at my body and fired. I sank to the ground, and my\r\ninjurer, with increased swiftness, escaped into the wood.\r\n\r\n“This was then the reward of my benevolence! I had saved a human being\r\nfrom destruction, and as a recompense I now writhed under the miserable\r\npain of a wound which shattered the flesh and bone. The feelings of\r\nkindness and gentleness which I had entertained but a few moments\r\nbefore gave place to hellish rage and gnashing of teeth. Inflamed by\r\npain, I vowed eternal hatred and vengeance to all mankind. But the\r\nagony of my wound overcame me; my pulses paused, and I fainted.\r\n\r\n“For some weeks I led a miserable life in the woods, endeavouring to\r\ncure the wound which I had received. The ball had entered my shoulder,\r\nand I knew not whether it had remained there or passed through; at any\r\nrate I had no means of extracting it. My sufferings were augmented\r\nalso by the oppressive sense of the injustice and ingratitude of their\r\ninfliction. My daily vows rose for revenge—a deep and deadly revenge,\r\nsuch as would alone compensate for the outrages and anguish I had\r\nendured.\r\n\r\n“After some weeks my wound healed, and I continued my journey. The\r\nlabours I endured were no longer to be alleviated by the bright sun or\r\ngentle breezes of spring; all joy was but a mockery which insulted my\r\ndesolate state and made me feel more painfully that I was not made for\r\nthe enjoyment of pleasure.\r\n\r\n“But my toils now drew near a close, and in two months from this time I\r\nreached the environs of Geneva.\r\n\r\n“It was evening when I arrived, and I retired to a hiding-place among\r\nthe fields that surround it to meditate in what manner I should apply\r\nto you. I was oppressed by fatigue and hunger and far too unhappy to\r\nenjoy the gentle breezes of evening or the prospect of the sun setting\r\nbehind the stupendous mountains of Jura.\r\n\r\n“At this time a slight sleep relieved me from the pain of reflection,\r\nwhich was disturbed by the approach of a beautiful child, who came\r\nrunning into the recess I had chosen, with all the sportiveness of\r\ninfancy. Suddenly, as I gazed on him, an idea seized me that this\r\nlittle creature was unprejudiced and had lived too short a time to have\r\nimbibed a horror of deformity. If, therefore, I could seize him and\r\neducate him as my companion and friend, I should not be so desolate in\r\nthis peopled earth.\r\n\r\n“Urged by this impulse, I seized on the boy as he passed and drew him\r\ntowards me. As soon as he beheld my form, he placed his hands before\r\nhis eyes and uttered a shrill scream; I drew his hand forcibly from his\r\nface and said, ‘Child, what is the meaning of this? I do not intend to\r\nhurt you; listen to me.’\r\n\r\n“He struggled violently. ‘Let me go,’ he cried;\r\n‘monster! Ugly wretch! You wish to eat me and tear me to pieces. You\r\nare an ogre. Let me go, or I will tell my papa.’\r\n\r\n“‘Boy, you will never see your father again; you must come with me.’\r\n\r\n“‘Hideous monster! Let me go. My papa is a syndic—he is M.\r\nFrankenstein—he will punish you. You dare not keep me.’\r\n\r\n“‘Frankenstein! you belong then to my enemy—to him towards whom I have\r\nsworn eternal revenge; you shall be my first victim.’\r\n\r\n“The child still struggled and loaded me with epithets which carried\r\ndespair to my heart; I grasped his throat to silence him, and in a\r\nmoment he lay dead at my feet.\r\n\r\n“I gazed on my victim, and my heart swelled with exultation and hellish\r\ntriumph; clapping my hands, I exclaimed, ‘I too can create desolation;\r\nmy enemy is not invulnerable; this death will carry despair to him, and\r\na thousand other miseries shall torment and destroy him.’\r\n\r\n“As I fixed my eyes on the child, I saw something glittering on his\r\nbreast. I took it; it was a portrait of a most lovely woman. In spite\r\nof my malignity, it softened and attracted me. For a few moments I\r\ngazed with delight on her dark eyes, fringed by deep lashes, and her\r\nlovely lips; but presently my rage returned; I remembered that I was\r\nfor ever deprived of the delights that such beautiful creatures could\r\nbestow and that she whose resemblance I contemplated would, in\r\nregarding me, have changed that air of divine benignity to one\r\nexpressive of disgust and affright.\r\n\r\n“Can you wonder that such thoughts transported me with rage? I only\r\nwonder that at that moment, instead of venting my sensations in\r\nexclamations and agony, I did not rush among mankind and perish in the\r\nattempt to destroy them.\r\n\r\n“While I was overcome by these feelings, I left the spot where I had\r\ncommitted the murder, and seeking a more secluded hiding-place, I\r\nentered a barn which had appeared to me to be empty. A woman was\r\nsleeping on some straw; she was young, not indeed so beautiful as her\r\nwhose portrait I held, but of an agreeable aspect and blooming in the\r\nloveliness of youth and health. Here, I thought, is one of those whose\r\njoy-imparting smiles are bestowed on all but me. And then I bent over\r\nher and whispered, ‘Awake, fairest, thy lover is near—he who would\r\ngive his life but to obtain one look of affection from thine eyes; my\r\nbeloved, awake!’\r\n\r\n“The sleeper stirred; a thrill of terror ran through me. Should she\r\nindeed awake, and see me, and curse me, and denounce the murderer? Thus\r\nwould she assuredly act if her darkened eyes opened and she beheld me.\r\nThe thought was madness; it stirred the fiend within me—not I, but\r\nshe, shall suffer; the murder I have committed because I am for ever\r\nrobbed of all that she could give me, she shall atone. The crime had\r\nits source in her; be hers the punishment! Thanks to the lessons of\r\nFelix and the sanguinary laws of man, I had learned now to work\r\nmischief. I bent over her and placed the portrait securely in one of\r\nthe folds of her dress. She moved again, and I fled.\r\n\r\n“For some days I haunted the spot where these scenes had taken place,\r\nsometimes wishing to see you, sometimes resolved to quit the world and\r\nits miseries for ever. At length I wandered towards these mountains,\r\nand have ranged through their immense recesses, consumed by a burning\r\npassion which you alone can gratify. We may not part until you have\r\npromised to comply with my requisition. I am alone and miserable; man\r\nwill not associate with me; but one as deformed and horrible as myself\r\nwould not deny herself to me. My companion must be of the same species\r\nand have the same defects. This being you must create.”\r\n\r\n\r\n\r\n\r\nChapter 17\r\n\r\n\r\nThe being finished speaking and fixed his looks upon me in the\r\nexpectation of a reply. But I was bewildered, perplexed, and unable to\r\narrange my ideas sufficiently to understand the full extent of his\r\nproposition. He continued,\r\n\r\n“You must create a female for me with whom I can live in the\r\ninterchange of those sympathies necessary for my being. This you alone\r\ncan do, and I demand it of you as a right which you must not refuse to\r\nconcede.”\r\n\r\nThe latter part of his tale had kindled anew in me the anger that had\r\ndied away while he narrated his peaceful life among the cottagers, and\r\nas he said this I could no longer suppress the rage that burned within\r\nme.\r\n\r\n“I do refuse it,” I replied; “and no torture shall ever extort a\r\nconsent from me. You may render me the most miserable of men, but you\r\nshall never make me base in my own eyes. Shall I create another like\r\nyourself, whose joint wickedness might desolate the world. Begone! I\r\nhave answered you; you may torture me, but I will never consent.”\r\n\r\n“You are in the wrong,” replied the fiend; “and instead\r\nof threatening, I am content to reason with you. I am malicious because I\r\nam miserable. Am I not shunned and hated by all mankind? You, my creator,\r\nwould tear me to pieces and triumph; remember that, and tell me why I\r\nshould pity man more than he pities me? You would not call it murder if you\r\ncould precipitate me into one of those ice-rifts and destroy my frame, the\r\nwork of your own hands. Shall I respect man when he condemns me? Let him\r\nlive with me in the interchange of kindness, and instead of injury I would\r\nbestow every benefit upon him with tears of gratitude at his acceptance.\r\nBut that cannot be; the human senses are insurmountable barriers to our\r\nunion. Yet mine shall not be the submission of abject slavery. I will\r\nrevenge my injuries; if I cannot inspire love, I will cause fear, and\r\nchiefly towards you my arch-enemy, because my creator, do I swear\r\ninextinguishable hatred. Have a care; I will work at your destruction, nor\r\nfinish until I desolate your heart, so that you shall curse the hour of\r\nyour birth.”\r\n\r\nA fiendish rage animated him as he said this; his face was wrinkled\r\ninto contortions too horrible for human eyes to behold; but presently\r\nhe calmed himself and proceeded—\r\n\r\n“I intended to reason. This passion is detrimental to me, for you do\r\nnot reflect that _you_ are the cause of its excess. If any being felt\r\nemotions of benevolence towards me, I should return them a hundred and a\r\nhundredfold; for that one creature’s sake I would make peace with the\r\nwhole kind! But I now indulge in dreams of bliss that cannot be realised.\r\nWhat I ask of you is reasonable and moderate; I demand a creature of\r\nanother sex, but as hideous as myself; the gratification is small, but it\r\nis all that I can receive, and it shall content me. It is true, we shall be\r\nmonsters, cut off from all the world; but on that account we shall be more\r\nattached to one another. Our lives will not be happy, but they will be\r\nharmless and free from the misery I now feel. Oh! My creator, make me\r\nhappy; let me feel gratitude towards you for one benefit! Let me see that I\r\nexcite the sympathy of some existing thing; do not deny me my\r\nrequest!”\r\n\r\nI was moved. I shuddered when I thought of the possible consequences\r\nof my consent, but I felt that there was some justice in his argument.\r\nHis tale and the feelings he now expressed proved him to be a creature\r\nof fine sensations, and did I not as his maker owe him all the portion\r\nof happiness that it was in my power to bestow? He saw my change of\r\nfeeling and continued,\r\n\r\n“If you consent, neither you nor any other human being shall ever see\r\nus again; I will go to the vast wilds of South America. My food is not\r\nthat of man; I do not destroy the lamb and the kid to glut my appetite;\r\nacorns and berries afford me sufficient nourishment. My companion will\r\nbe of the same nature as myself and will be content with the same fare.\r\nWe shall make our bed of dried leaves; the sun will shine on us as on\r\nman and will ripen our food. The picture I present to you is peaceful\r\nand human, and you must feel that you could deny it only in the\r\nwantonness of power and cruelty. Pitiless as you have been towards me,\r\nI now see compassion in your eyes; let me seize the favourable moment\r\nand persuade you to promise what I so ardently desire.”\r\n\r\n“You propose,” replied I, “to fly from the habitations of\r\nman, to dwell in those wilds where the beasts of the field will be your\r\nonly companions. How can you, who long for the love and sympathy of man,\r\npersevere in this exile? You will return and again seek their kindness, and\r\nyou will meet with their detestation; your evil passions will be renewed,\r\nand you will then have a companion to aid you in the task of destruction.\r\nThis may not be; cease to argue the point, for I cannot consent.”\r\n\r\n“How inconstant are your feelings! But a moment ago you were moved by\r\nmy representations, and why do you again harden yourself to my complaints?\r\nI swear to you, by the earth which I inhabit, and by you that made me, that\r\nwith the companion you bestow, I will quit the neighbourhood of man and\r\ndwell, as it may chance, in the most savage of places. My evil passions\r\nwill have fled, for I shall meet with sympathy! My life will flow quietly\r\naway, and in my dying moments I shall not curse my maker.”\r\n\r\nHis words had a strange effect upon me. I compassionated him and\r\nsometimes felt a wish to console him, but when I looked upon him, when\r\nI saw the filthy mass that moved and talked, my heart sickened and my\r\nfeelings were altered to those of horror and hatred. I tried to stifle\r\nthese sensations; I thought that as I could not sympathise with him, I\r\nhad no right to withhold from him the small portion of happiness which\r\nwas yet in my power to bestow.\r\n\r\n“You swear,” I said, “to be harmless; but have you not\r\nalready shown a degree of malice that should reasonably make me distrust\r\nyou? May not even this be a feint that will increase your triumph by\r\naffording a wider scope for your revenge?”\r\n\r\n“How is this? I must not be trifled with, and I demand an answer. If\r\nI have no ties and no affections, hatred and vice must be my portion;\r\nthe love of another will destroy the cause of my crimes, and I shall\r\nbecome a thing of whose existence everyone will be ignorant. My vices\r\nare the children of a forced solitude that I abhor, and my virtues will\r\nnecessarily arise when I live in communion with an equal. I shall feel\r\nthe affections of a sensitive being and become linked to the chain of\r\nexistence and events from which I am now excluded.”\r\n\r\nI paused some time to reflect on all he had related and the various\r\narguments which he had employed. I thought of the promise of virtues which\r\nhe had displayed on the opening of his existence and the subsequent blight\r\nof all kindly feeling by the loathing and scorn which his protectors had\r\nmanifested towards him. His power and threats were not omitted in my\r\ncalculations; a creature who could exist in the ice-caves of the glaciers\r\nand hide himself from pursuit among the ridges of inaccessible precipices\r\nwas a being possessing faculties it would be vain to cope with. After a\r\nlong pause of reflection I concluded that the justice due both to him and\r\nmy fellow creatures demanded of me that I should comply with his request.\r\nTurning to him, therefore, I said,\r\n\r\n“I consent to your demand, on your solemn oath to quit Europe for ever,\r\nand every other place in the neighbourhood of man, as soon as I shall\r\ndeliver into your hands a female who will accompany you in your exile.”\r\n\r\n“I swear,” he cried, “by the sun, and by the blue sky of\r\nheaven, and by the fire of love that burns my heart, that if you grant my\r\nprayer, while they exist you shall never behold me again. Depart to your\r\nhome and commence your labours; I shall watch their progress with\r\nunutterable anxiety; and fear not but that when you are ready I shall\r\nappear.”\r\n\r\nSaying this, he suddenly quitted me, fearful, perhaps, of any change in\r\nmy sentiments. I saw him descend the mountain with greater speed than\r\nthe flight of an eagle, and quickly lost among the undulations of the\r\nsea of ice.\r\n\r\nHis tale had occupied the whole day, and the sun was upon the verge of\r\nthe horizon when he departed. I knew that I ought to hasten my descent\r\ntowards the valley, as I should soon be encompassed in darkness; but my\r\nheart was heavy, and my steps slow. The labour of winding among the\r\nlittle paths of the mountain and fixing my feet firmly as I advanced\r\nperplexed me, occupied as I was by the emotions which the occurrences\r\nof the day had produced. Night was far advanced when I came to the\r\nhalfway resting-place and seated myself beside the fountain. The stars\r\nshone at intervals as the clouds passed from over them; the dark pines\r\nrose before me, and every here and there a broken tree lay on the\r\nground; it was a scene of wonderful solemnity and stirred strange\r\nthoughts within me. I wept bitterly, and clasping my hands in agony, I\r\nexclaimed, “Oh! stars and clouds and winds, ye are all about to mock\r\nme; if ye really pity me, crush sensation and memory; let me become as\r\nnought; but if not, depart, depart, and leave me in darkness.”\r\n\r\nThese were wild and miserable thoughts, but I cannot describe to you\r\nhow the eternal twinkling of the stars weighed upon me and how I\r\nlistened to every blast of wind as if it were a dull ugly siroc on its\r\nway to consume me.\r\n\r\nMorning dawned before I arrived at the village of Chamounix; I took no\r\nrest, but returned immediately to Geneva. Even in my own heart I could\r\ngive no expression to my sensations—they weighed on me with a\r\nmountain’s weight and their excess destroyed my agony beneath them.\r\nThus I returned home, and entering the house, presented myself to the\r\nfamily. My haggard and wild appearance awoke intense alarm, but I\r\nanswered no question, scarcely did I speak. I felt as if I were placed\r\nunder a ban—as if I had no right to claim their sympathies—as if\r\nnever more might I enjoy companionship with them. Yet even thus I\r\nloved them to adoration; and to save them, I resolved to dedicate\r\nmyself to my most abhorred task. The prospect of such an occupation\r\nmade every other circumstance of existence pass before me like a dream,\r\nand that thought only had to me the reality of life.\r\n\r\n\r\n\r\n\r\nChapter 18\r\n\r\n\r\nDay after day, week after week, passed away on my return to Geneva; and\r\nI could not collect the courage to recommence my work. I feared the\r\nvengeance of the disappointed fiend, yet I was unable to overcome my\r\nrepugnance to the task which was enjoined me. I found that I could not\r\ncompose a female without again devoting several months to profound\r\nstudy and laborious disquisition. I had heard of some discoveries\r\nhaving been made by an English philosopher, the knowledge of which was\r\nmaterial to my success, and I sometimes thought of obtaining my\r\nfather’s consent to visit England for this purpose; but I clung to\r\nevery pretence of delay and shrank from taking the first step in an\r\nundertaking whose immediate necessity began to appear less absolute to\r\nme. A change indeed had taken place in me; my health, which had\r\nhitherto declined, was now much restored; and my spirits, when\r\nunchecked by the memory of my unhappy promise, rose proportionably. My\r\nfather saw this change with pleasure, and he turned his thoughts\r\ntowards the best method of eradicating the remains of my melancholy,\r\nwhich every now and then would return by fits, and with a devouring\r\nblackness overcast the approaching sunshine. At these moments I took\r\nrefuge in the most perfect solitude. I passed whole days on the lake\r\nalone in a little boat, watching the clouds and listening to the\r\nrippling of the waves, silent and listless. But the fresh air and\r\nbright sun seldom failed to restore me to some degree of composure, and\r\non my return I met the salutations of my friends with a readier smile\r\nand a more cheerful heart.\r\n\r\nIt was after my return from one of these rambles that my father,\r\ncalling me aside, thus addressed me,\r\n\r\n“I am happy to remark, my dear son, that you have resumed your former\r\npleasures and seem to be returning to yourself. And yet you are still\r\nunhappy and still avoid our society. For some time I was lost in\r\nconjecture as to the cause of this, but yesterday an idea struck me,\r\nand if it is well founded, I conjure you to avow it. Reserve on such a\r\npoint would be not only useless, but draw down treble misery on us all.”\r\n\r\nI trembled violently at his exordium, and my father continued—\r\n\r\n“I confess, my son, that I have always looked forward to your\r\nmarriage with our dear Elizabeth as the tie of our domestic comfort and the\r\nstay of my declining years. You were attached to each other from your\r\nearliest infancy; you studied together, and appeared, in dispositions and\r\ntastes, entirely suited to one another. But so blind is the experience of\r\nman that what I conceived to be the best assistants to my plan may have\r\nentirely destroyed it. You, perhaps, regard her as your sister, without any\r\nwish that she might become your wife. Nay, you may have met with another\r\nwhom you may love; and considering yourself as bound in honour to\r\nElizabeth, this struggle may occasion the poignant misery which you appear\r\nto feel.”\r\n\r\n“My dear father, reassure yourself. I love my cousin tenderly and\r\nsincerely. I never saw any woman who excited, as Elizabeth does, my\r\nwarmest admiration and affection. My future hopes and prospects are\r\nentirely bound up in the expectation of our union.”\r\n\r\n“The expression of your sentiments of this subject, my dear Victor,\r\ngives me more pleasure than I have for some time experienced. If you\r\nfeel thus, we shall assuredly be happy, however present events may cast\r\na gloom over us. But it is this gloom which appears to have taken so\r\nstrong a hold of your mind that I wish to dissipate. Tell me,\r\ntherefore, whether you object to an immediate solemnisation of the\r\nmarriage. We have been unfortunate, and recent events have drawn us\r\nfrom that everyday tranquillity befitting my years and infirmities. You\r\nare younger; yet I do not suppose, possessed as you are of a competent\r\nfortune, that an early marriage would at all interfere with any future\r\nplans of honour and utility that you may have formed. Do not suppose,\r\nhowever, that I wish to dictate happiness to you or that a delay on\r\nyour part would cause me any serious uneasiness. Interpret my words\r\nwith candour and answer me, I conjure you, with confidence and\r\nsincerity.”\r\n\r\nI listened to my father in silence and remained for some time incapable\r\nof offering any reply. I revolved rapidly in my mind a multitude of\r\nthoughts and endeavoured to arrive at some conclusion. Alas! To me\r\nthe idea of an immediate union with my Elizabeth was one of horror and\r\ndismay. I was bound by a solemn promise which I had not yet fulfilled\r\nand dared not break, or if I did, what manifold miseries might not\r\nimpend over me and my devoted family! Could I enter into a festival\r\nwith this deadly weight yet hanging round my neck and bowing me to the\r\nground? I must perform my engagement and let the monster depart with\r\nhis mate before I allowed myself to enjoy the delight of a union from\r\nwhich I expected peace.\r\n\r\nI remembered also the necessity imposed upon me of either journeying to\r\nEngland or entering into a long correspondence with those philosophers\r\nof that country whose knowledge and discoveries were of indispensable\r\nuse to me in my present undertaking. The latter method of obtaining\r\nthe desired intelligence was dilatory and unsatisfactory; besides, I\r\nhad an insurmountable aversion to the idea of engaging myself in my\r\nloathsome task in my father’s house while in habits of familiar\r\nintercourse with those I loved. I knew that a thousand fearful\r\naccidents might occur, the slightest of which would disclose a tale to\r\nthrill all connected with me with horror. I was aware also that I\r\nshould often lose all self-command, all capacity of hiding the\r\nharrowing sensations that would possess me during the progress of my\r\nunearthly occupation. I must absent myself from all I loved while thus\r\nemployed. Once commenced, it would quickly be achieved, and I might be\r\nrestored to my family in peace and happiness. My promise fulfilled,\r\nthe monster would depart for ever. Or (so my fond fancy imaged) some\r\naccident might meanwhile occur to destroy him and put an end to my\r\nslavery for ever.\r\n\r\nThese feelings dictated my answer to my father. I expressed a wish to\r\nvisit England, but concealing the true reasons of this request, I\r\nclothed my desires under a guise which excited no suspicion, while I\r\nurged my desire with an earnestness that easily induced my father to\r\ncomply. After so long a period of an absorbing melancholy that\r\nresembled madness in its intensity and effects, he was glad to find\r\nthat I was capable of taking pleasure in the idea of such a journey,\r\nand he hoped that change of scene and varied amusement would, before my\r\nreturn, have restored me entirely to myself.\r\n\r\nThe duration of my absence was left to my own choice; a few months, or\r\nat most a year, was the period contemplated. One paternal kind\r\nprecaution he had taken to ensure my having a companion. Without\r\npreviously communicating with me, he had, in concert with Elizabeth,\r\narranged that Clerval should join me at Strasburgh. This interfered\r\nwith the solitude I coveted for the prosecution of my task; yet at the\r\ncommencement of my journey the presence of my friend could in no way be\r\nan impediment, and truly I rejoiced that thus I should be saved many\r\nhours of lonely, maddening reflection. Nay, Henry might stand between\r\nme and the intrusion of my foe. If I were alone, would he not at times\r\nforce his abhorred presence on me to remind me of my task or to\r\ncontemplate its progress?\r\n\r\nTo England, therefore, I was bound, and it was understood that my union\r\nwith Elizabeth should take place immediately on my return. My father’s\r\nage rendered him extremely averse to delay. For myself, there was one\r\nreward I promised myself from my detested toils—one consolation for my\r\nunparalleled sufferings; it was the prospect of that day when,\r\nenfranchised from my miserable slavery, I might claim Elizabeth and\r\nforget the past in my union with her.\r\n\r\nI now made arrangements for my journey, but one feeling haunted me\r\nwhich filled me with fear and agitation. During my absence I should\r\nleave my friends unconscious of the existence of their enemy and\r\nunprotected from his attacks, exasperated as he might be by my\r\ndeparture. But he had promised to follow me wherever I might go, and\r\nwould he not accompany me to England? This imagination was dreadful in\r\nitself, but soothing inasmuch as it supposed the safety of my friends.\r\nI was agonised with the idea of the possibility that the reverse of\r\nthis might happen. But through the whole period during which I was the\r\nslave of my creature I allowed myself to be governed by the impulses of\r\nthe moment; and my present sensations strongly intimated that the fiend\r\nwould follow me and exempt my family from the danger of his\r\nmachinations.\r\n\r\nIt was in the latter end of September that I again quitted my native\r\ncountry. My journey had been my own suggestion, and Elizabeth\r\ntherefore acquiesced, but she was filled with disquiet at the idea of\r\nmy suffering, away from her, the inroads of misery and grief. It had\r\nbeen her care which provided me a companion in Clerval—and yet a man\r\nis blind to a thousand minute circumstances which call forth a woman’s\r\nsedulous attention. She longed to bid me hasten my return; a thousand\r\nconflicting emotions rendered her mute as she bade me a tearful, silent\r\nfarewell.\r\n\r\nI threw myself into the carriage that was to convey me away, hardly\r\nknowing whither I was going, and careless of what was passing around.\r\nI remembered only, and it was with a bitter anguish that I reflected on\r\nit, to order that my chemical instruments should be packed to go with\r\nme. Filled with dreary imaginations, I passed through many beautiful\r\nand majestic scenes, but my eyes were fixed and unobserving. I could\r\nonly think of the bourne of my travels and the work which was to occupy\r\nme whilst they endured.\r\n\r\nAfter some days spent in listless indolence, during which I traversed\r\nmany leagues, I arrived at Strasburgh, where I waited two days for\r\nClerval. He came. Alas, how great was the contrast between us! He\r\nwas alive to every new scene, joyful when he saw the beauties of the\r\nsetting sun, and more happy when he beheld it rise and recommence a new\r\nday. He pointed out to me the shifting colours of the landscape and\r\nthe appearances of the sky. “This is what it is to live,” he cried;\r\n“now I enjoy existence! But you, my dear Frankenstein, wherefore are\r\nyou desponding and sorrowful!” In truth, I was occupied by gloomy\r\nthoughts and neither saw the descent of the evening star nor the golden\r\nsunrise reflected in the Rhine. And you, my friend, would be far more\r\namused with the journal of Clerval, who observed the scenery with an\r\neye of feeling and delight, than in listening to my reflections. I, a\r\nmiserable wretch, haunted by a curse that shut up every avenue to\r\nenjoyment.\r\n\r\nWe had agreed to descend the Rhine in a boat from Strasburgh to\r\nRotterdam, whence we might take shipping for London. During this\r\nvoyage we passed many willowy islands and saw several beautiful towns.\r\nWe stayed a day at Mannheim, and on the fifth from our departure from\r\nStrasburgh, arrived at Mainz. The course of the Rhine below Mainz\r\nbecomes much more picturesque. The river descends rapidly and winds\r\nbetween hills, not high, but steep, and of beautiful forms. We saw\r\nmany ruined castles standing on the edges of precipices, surrounded by\r\nblack woods, high and inaccessible. This part of the Rhine, indeed,\r\npresents a singularly variegated landscape. In one spot you view\r\nrugged hills, ruined castles overlooking tremendous precipices, with\r\nthe dark Rhine rushing beneath; and on the sudden turn of a promontory,\r\nflourishing vineyards with green sloping banks and a meandering river\r\nand populous towns occupy the scene.\r\n\r\nWe travelled at the time of the vintage and heard the song of the labourers\r\nas we glided down the stream. Even I, depressed in mind, and my spirits\r\ncontinually agitated by gloomy feelings, even I was pleased. I lay at the\r\nbottom of the boat, and as I gazed on the cloudless blue sky, I seemed to\r\ndrink in a tranquillity to which I had long been a stranger. And if these\r\nwere my sensations, who can describe those of Henry? He felt as if he had\r\nbeen transported to Fairy-land and enjoyed a happiness seldom tasted by\r\nman. “I have seen,” he said, “the most beautiful scenes\r\nof my own country; I have visited the lakes of Lucerne and Uri, where the\r\nsnowy mountains descend almost perpendicularly to the water, casting black\r\nand impenetrable shades, which would cause a gloomy and mournful appearance\r\nwere it not for the most verdant islands that relieve the eye by their gay\r\nappearance; I have seen this lake agitated by a tempest, when the wind tore\r\nup whirlwinds of water and gave you an idea of what the water-spout must be\r\non the great ocean; and the waves dash with fury the base of the mountain,\r\nwhere the priest and his mistress were overwhelmed by an avalanche and\r\nwhere their dying voices are still said to be heard amid the pauses of the\r\nnightly wind; I have seen the mountains of La Valais, and the Pays de Vaud;\r\nbut this country, Victor, pleases me more than all those wonders. The\r\nmountains of Switzerland are more majestic and strange, but there is a\r\ncharm in the banks of this divine river that I never before saw equalled.\r\nLook at that castle which overhangs yon precipice; and that also on the\r\nisland, almost concealed amongst the foliage of those lovely trees; and now\r\nthat group of labourers coming from among their vines; and that village\r\nhalf hid in the recess of the mountain. Oh, surely the spirit that inhabits\r\nand guards this place has a soul more in harmony with man than those who\r\npile the glacier or retire to the inaccessible peaks of the mountains of\r\nour own country.”\r\n\r\nClerval! Beloved friend! Even now it delights me to record your words and\r\nto dwell on the praise of which you are so eminently deserving. He was a\r\nbeing formed in the “very poetry of nature.” His wild and\r\nenthusiastic imagination was chastened by the sensibility of his heart. His\r\nsoul overflowed with ardent affections, and his friendship was of that\r\ndevoted and wondrous nature that the worldly-minded teach us to look for only\r\nin the imagination. But even human sympathies were not sufficient to\r\nsatisfy his eager mind. The scenery of external nature, which others regard\r\nonly with admiration, he loved with ardour:—\r\n\r\n ——The sounding cataract\r\n Haunted him like a passion: the tall rock,\r\n The mountain, and the deep and gloomy wood,\r\n Their colours and their forms, were then to him\r\n An appetite; a feeling, and a love,\r\n That had no need of a remoter charm,\r\n By thought supplied, or any interest\r\n Unborrow’d from the eye.\r\n\r\n [Wordsworth’s “Tintern Abbey”.]\r\n\r\nAnd where does he now exist? Is this gentle and lovely being lost\r\nfor ever? Has this mind, so replete with ideas, imaginations fanciful\r\nand magnificent, which formed a world, whose existence depended on the\r\nlife of its creator;—has this mind perished? Does it now only exist\r\nin my memory? No, it is not thus; your form so divinely wrought, and\r\nbeaming with beauty, has decayed, but your spirit still visits and\r\nconsoles your unhappy friend.\r\n\r\nPardon this gush of sorrow; these ineffectual words are but a slight\r\ntribute to the unexampled worth of Henry, but they soothe my heart,\r\noverflowing with the anguish which his remembrance creates. I will\r\nproceed with my tale.\r\n\r\nBeyond Cologne we descended to the plains of Holland; and we resolved to\r\npost the remainder of our way, for the wind was contrary and the stream of\r\nthe river was too gentle to aid us.\r\n\r\nOur journey here lost the interest arising from beautiful scenery, but we\r\narrived in a few days at Rotterdam, whence we proceeded by sea to England.\r\nIt was on a clear morning, in the latter days of December, that I first saw\r\nthe white cliffs of Britain. The banks of the Thames presented a new scene;\r\nthey were flat but fertile, and almost every town was marked by the\r\nremembrance of some story. We saw Tilbury Fort and remembered the Spanish\r\nArmada, Gravesend, Woolwich, and Greenwich—places which I had heard\r\nof even in my country.\r\n\r\nAt length we saw the numerous steeples of London, St. Paul’s towering\r\nabove all, and the Tower famed in English history.\r\n\r\n\r\n\r\n\r\nChapter 19\r\n\r\n\r\nLondon was our present point of rest; we determined to remain several\r\nmonths in this wonderful and celebrated city. Clerval desired the\r\nintercourse of the men of genius and talent who flourished at this\r\ntime, but this was with me a secondary object; I was principally\r\noccupied with the means of obtaining the information necessary for the\r\ncompletion of my promise and quickly availed myself of the letters of\r\nintroduction that I had brought with me, addressed to the most\r\ndistinguished natural philosophers.\r\n\r\nIf this journey had taken place during my days of study and happiness,\r\nit would have afforded me inexpressible pleasure. But a blight had\r\ncome over my existence, and I only visited these people for the sake of\r\nthe information they might give me on the subject in which my interest\r\nwas so terribly profound. Company was irksome to me; when alone, I\r\ncould fill my mind with the sights of heaven and earth; the voice of\r\nHenry soothed me, and I could thus cheat myself into a transitory\r\npeace. But busy, uninteresting, joyous faces brought back despair to\r\nmy heart. I saw an insurmountable barrier placed between me and my\r\nfellow men; this barrier was sealed with the blood of William and\r\nJustine, and to reflect on the events connected with those names filled\r\nmy soul with anguish.\r\n\r\nBut in Clerval I saw the image of my former self; he was inquisitive\r\nand anxious to gain experience and instruction. The difference of\r\nmanners which he observed was to him an inexhaustible source of\r\ninstruction and amusement. He was also pursuing an object he had long\r\nhad in view. His design was to visit India, in the belief that he had\r\nin his knowledge of its various languages, and in the views he had\r\ntaken of its society, the means of materially assisting the progress of\r\nEuropean colonization and trade. In Britain only could he further the\r\nexecution of his plan. He was for ever busy, and the only check to his\r\nenjoyments was my sorrowful and dejected mind. I tried to conceal this\r\nas much as possible, that I might not debar him from the pleasures\r\nnatural to one who was entering on a new scene of life, undisturbed by\r\nany care or bitter recollection. I often refused to accompany him,\r\nalleging another engagement, that I might remain alone. I now also\r\nbegan to collect the materials necessary for my new creation, and this\r\nwas to me like the torture of single drops of water continually falling\r\non the head. Every thought that was devoted to it was an extreme\r\nanguish, and every word that I spoke in allusion to it caused my lips\r\nto quiver, and my heart to palpitate.\r\n\r\nAfter passing some months in London, we received a letter from a person in\r\nScotland who had formerly been our visitor at Geneva. He mentioned the\r\nbeauties of his native country and asked us if those were not sufficient\r\nallurements to induce us to prolong our journey as far north as Perth,\r\nwhere he resided. Clerval eagerly desired to accept this invitation, and I,\r\nalthough I abhorred society, wished to view again mountains and streams and\r\nall the wondrous works with which Nature adorns her chosen dwelling-places.\r\n\r\nWe had arrived in England at the beginning of October, and it was now\r\nFebruary. We accordingly determined to commence our journey towards the\r\nnorth at the expiration of another month. In this expedition we did not\r\nintend to follow the great road to Edinburgh, but to visit Windsor, Oxford,\r\nMatlock, and the Cumberland lakes, resolving to arrive at the completion of\r\nthis tour about the end of July. I packed up my chemical instruments and\r\nthe materials I had collected, resolving to finish my labours in some\r\nobscure nook in the northern highlands of Scotland.\r\n\r\nWe quitted London on the 27th of March and remained a few days at\r\nWindsor, rambling in its beautiful forest. This was a new scene to us\r\nmountaineers; the majestic oaks, the quantity of game, and the herds of\r\nstately deer were all novelties to us.\r\n\r\nFrom thence we proceeded to Oxford. As we entered this city, our minds\r\nwere filled with the remembrance of the events that had been transacted\r\nthere more than a century and a half before. It was here that Charles\r\nI. had collected his forces. This city had remained faithful to him,\r\nafter the whole nation had forsaken his cause to join the standard of\r\nParliament and liberty. The memory of that unfortunate king and his\r\ncompanions, the amiable Falkland, the insolent Goring, his queen, and\r\nson, gave a peculiar interest to every part of the city which they\r\nmight be supposed to have inhabited. The spirit of elder days found a\r\ndwelling here, and we delighted to trace its footsteps. If these\r\nfeelings had not found an imaginary gratification, the appearance of\r\nthe city had yet in itself sufficient beauty to obtain our admiration.\r\nThe colleges are ancient and picturesque; the streets are almost\r\nmagnificent; and the lovely Isis, which flows beside it through meadows\r\nof exquisite verdure, is spread forth into a placid expanse of waters,\r\nwhich reflects its majestic assemblage of towers, and spires, and\r\ndomes, embosomed among aged trees.\r\n\r\nI enjoyed this scene, and yet my enjoyment was embittered both by the\r\nmemory of the past and the anticipation of the future. I was formed\r\nfor peaceful happiness. During my youthful days discontent never\r\nvisited my mind, and if I was ever overcome by _ennui_, the sight of what\r\nis beautiful in nature or the study of what is excellent and sublime in\r\nthe productions of man could always interest my heart and communicate\r\nelasticity to my spirits. But I am a blasted tree; the bolt has\r\nentered my soul; and I felt then that I should survive to exhibit what\r\nI shall soon cease to be—a miserable spectacle of wrecked humanity,\r\npitiable to others and intolerable to myself.\r\n\r\nWe passed a considerable period at Oxford, rambling among its environs\r\nand endeavouring to identify every spot which might relate to the most\r\nanimating epoch of English history. Our little voyages of discovery\r\nwere often prolonged by the successive objects that presented\r\nthemselves. We visited the tomb of the illustrious Hampden and the\r\nfield on which that patriot fell. For a moment my soul was elevated\r\nfrom its debasing and miserable fears to contemplate the divine ideas\r\nof liberty and self-sacrifice of which these sights were the monuments\r\nand the remembrancers. For an instant I dared to shake off my chains\r\nand look around me with a free and lofty spirit, but the iron had eaten\r\ninto my flesh, and I sank again, trembling and hopeless, into my\r\nmiserable self.\r\n\r\nWe left Oxford with regret and proceeded to Matlock, which was our next\r\nplace of rest. The country in the neighbourhood of this village\r\nresembled, to a greater degree, the scenery of Switzerland; but\r\neverything is on a lower scale, and the green hills want the crown of\r\ndistant white Alps which always attend on the piny mountains of my\r\nnative country. We visited the wondrous cave and the little cabinets\r\nof natural history, where the curiosities are disposed in the same\r\nmanner as in the collections at Servox and Chamounix. The latter name\r\nmade me tremble when pronounced by Henry, and I hastened to quit\r\nMatlock, with which that terrible scene was thus associated.\r\n\r\nFrom Derby, still journeying northwards, we passed two months in\r\nCumberland and Westmorland. I could now almost fancy myself among the\r\nSwiss mountains. The little patches of snow which yet lingered on the\r\nnorthern sides of the mountains, the lakes, and the dashing of the\r\nrocky streams were all familiar and dear sights to me. Here also we\r\nmade some acquaintances, who almost contrived to cheat me into\r\nhappiness. The delight of Clerval was proportionably greater than\r\nmine; his mind expanded in the company of men of talent, and he found\r\nin his own nature greater capacities and resources than he could have\r\nimagined himself to have possessed while he associated with his\r\ninferiors. “I could pass my life here,” said he to me; “and among\r\nthese mountains I should scarcely regret Switzerland and the Rhine.”\r\n\r\nBut he found that a traveller’s life is one that includes much pain\r\namidst its enjoyments. His feelings are for ever on the stretch; and\r\nwhen he begins to sink into repose, he finds himself obliged to quit\r\nthat on which he rests in pleasure for something new, which again\r\nengages his attention, and which also he forsakes for other novelties.\r\n\r\nWe had scarcely visited the various lakes of Cumberland and Westmorland\r\nand conceived an affection for some of the inhabitants when the period\r\nof our appointment with our Scotch friend approached, and we left them\r\nto travel on. For my own part I was not sorry. I had now neglected my\r\npromise for some time, and I feared the effects of the dæmon’s\r\ndisappointment. He might remain in Switzerland and wreak his vengeance\r\non my relatives. This idea pursued me and tormented me at every moment\r\nfrom which I might otherwise have snatched repose and peace. I waited\r\nfor my letters with feverish impatience; if they were delayed I was\r\nmiserable and overcome by a thousand fears; and when they arrived and I\r\nsaw the superscription of Elizabeth or my father, I hardly dared to\r\nread and ascertain my fate. Sometimes I thought that the fiend\r\nfollowed me and might expedite my remissness by murdering my companion.\r\nWhen these thoughts possessed me, I would not quit Henry for a moment,\r\nbut followed him as his shadow, to protect him from the fancied rage of\r\nhis destroyer. I felt as if I had committed some great crime, the\r\nconsciousness of which haunted me. I was guiltless, but I had indeed\r\ndrawn down a horrible curse upon my head, as mortal as that of crime.\r\n\r\nI visited Edinburgh with languid eyes and mind; and yet that city might\r\nhave interested the most unfortunate being. Clerval did not like it so well\r\nas Oxford, for the antiquity of the latter city was more pleasing to him.\r\nBut the beauty and regularity of the new town of Edinburgh, its romantic\r\ncastle and its environs, the most delightful in the world, Arthur’s\r\nSeat, St. Bernard’s Well, and the Pentland Hills, compensated him for\r\nthe change and filled him with cheerfulness and admiration. But I was\r\nimpatient to arrive at the termination of my journey.\r\n\r\nWe left Edinburgh in a week, passing through Coupar, St. Andrew’s, and\r\nalong the banks of the Tay, to Perth, where our friend expected us.\r\nBut I was in no mood to laugh and talk with strangers or enter into\r\ntheir feelings or plans with the good humour expected from a guest; and\r\naccordingly I told Clerval that I wished to make the tour of Scotland\r\nalone. “Do you,” said I, “enjoy yourself, and let this be our\r\nrendezvous. I may be absent a month or two; but do not interfere with\r\nmy motions, I entreat you; leave me to peace and solitude for a short\r\ntime; and when I return, I hope it will be with a lighter heart, more\r\ncongenial to your own temper.”\r\n\r\nHenry wished to dissuade me, but seeing me bent on this plan, ceased to\r\nremonstrate. He entreated me to write often. “I had rather be with\r\nyou,” he said, “in your solitary rambles, than with these Scotch\r\npeople, whom I do not know; hasten, then, my dear friend, to return,\r\nthat I may again feel myself somewhat at home, which I cannot do in\r\nyour absence.”\r\n\r\nHaving parted from my friend, I determined to visit some remote spot of\r\nScotland and finish my work in solitude. I did not doubt but that the\r\nmonster followed me and would discover himself to me when I should have\r\nfinished, that he might receive his companion.\r\n\r\nWith this resolution I traversed the northern highlands and fixed on one of\r\nthe remotest of the Orkneys as the scene of my labours. It was a place\r\nfitted for such a work, being hardly more than a rock whose high sides were\r\ncontinually beaten upon by the waves. The soil was barren, scarcely\r\naffording pasture for a few miserable cows, and oatmeal for its\r\ninhabitants, which consisted of five persons, whose gaunt and scraggy limbs\r\ngave tokens of their miserable fare. Vegetables and bread, when they\r\nindulged in such luxuries, and even fresh water, was to be procured from\r\nthe mainland, which was about five miles distant.\r\n\r\nOn the whole island there were but three miserable huts, and one of\r\nthese was vacant when I arrived. This I hired. It contained but two\r\nrooms, and these exhibited all the squalidness of the most miserable\r\npenury. The thatch had fallen in, the walls were unplastered, and the\r\ndoor was off its hinges. I ordered it to be repaired, bought some\r\nfurniture, and took possession, an incident which would doubtless have\r\noccasioned some surprise had not all the senses of the cottagers been\r\nbenumbed by want and squalid poverty. As it was, I lived ungazed at\r\nand unmolested, hardly thanked for the pittance of food and clothes\r\nwhich I gave, so much does suffering blunt even the coarsest sensations\r\nof men.\r\n\r\nIn this retreat I devoted the morning to labour; but in the evening,\r\nwhen the weather permitted, I walked on the stony beach of the sea to\r\nlisten to the waves as they roared and dashed at my feet. It was a\r\nmonotonous yet ever-changing scene. I thought of Switzerland; it was\r\nfar different from this desolate and appalling landscape. Its hills\r\nare covered with vines, and its cottages are scattered thickly in the\r\nplains. Its fair lakes reflect a blue and gentle sky, and when\r\ntroubled by the winds, their tumult is but as the play of a lively\r\ninfant when compared to the roarings of the giant ocean.\r\n\r\nIn this manner I distributed my occupations when I first arrived, but\r\nas I proceeded in my labour, it became every day more horrible and\r\nirksome to me. Sometimes I could not prevail on myself to enter my\r\nlaboratory for several days, and at other times I toiled day and night\r\nin order to complete my work. It was, indeed, a filthy process in\r\nwhich I was engaged. During my first experiment, a kind of\r\nenthusiastic frenzy had blinded me to the horror of my employment; my\r\nmind was intently fixed on the consummation of my labour, and my eyes\r\nwere shut to the horror of my proceedings. But now I went to it in\r\ncold blood, and my heart often sickened at the work of my hands.\r\n\r\nThus situated, employed in the most detestable occupation, immersed in\r\na solitude where nothing could for an instant call my attention from\r\nthe actual scene in which I was engaged, my spirits became unequal; I\r\ngrew restless and nervous. Every moment I feared to meet my\r\npersecutor. Sometimes I sat with my eyes fixed on the ground, fearing\r\nto raise them lest they should encounter the object which I so much\r\ndreaded to behold. I feared to wander from the sight of my fellow\r\ncreatures lest when alone he should come to claim his companion.\r\n\r\nIn the mean time I worked on, and my labour was already considerably\r\nadvanced. I looked towards its completion with a tremulous and eager\r\nhope, which I dared not trust myself to question but which was\r\nintermixed with obscure forebodings of evil that made my heart sicken\r\nin my bosom.\r\n\r\n\r\n\r\n\r\nChapter 20\r\n\r\n\r\nI sat one evening in my laboratory; the sun had set, and the moon was just\r\nrising from the sea; I had not sufficient light for my employment, and I\r\nremained idle, in a pause of consideration of whether I should leave my\r\nlabour for the night or hasten its conclusion by an unremitting attention\r\nto it. As I sat, a train of reflection occurred to me which led me to\r\nconsider the effects of what I was now doing. Three years before, I was\r\nengaged in the same manner and had created a fiend whose unparalleled\r\nbarbarity had desolated my heart and filled it for ever with the bitterest\r\nremorse. I was now about to form another being of whose dispositions I was\r\nalike ignorant; she might become ten thousand times more malignant than her\r\nmate and delight, for its own sake, in murder and wretchedness. He had\r\nsworn to quit the neighbourhood of man and hide himself in deserts, but she\r\nhad not; and she, who in all probability was to become a thinking and\r\nreasoning animal, might refuse to comply with a compact made before her\r\ncreation. They might even hate each other; the creature who already lived\r\nloathed his own deformity, and might he not conceive a greater abhorrence\r\nfor it when it came before his eyes in the female form? She also might turn\r\nwith disgust from him to the superior beauty of man; she might quit him,\r\nand he be again alone, exasperated by the fresh provocation of being\r\ndeserted by one of his own species.\r\n\r\nEven if they were to leave Europe and inhabit the deserts of the new world,\r\nyet one of the first results of those sympathies for which the dæmon\r\nthirsted would be children, and a race of devils would be propagated upon\r\nthe earth who might make the very existence of the species of man a\r\ncondition precarious and full of terror. Had I right, for my own benefit,\r\nto inflict this curse upon everlasting generations? I had before been moved\r\nby the sophisms of the being I had created; I had been struck senseless by\r\nhis fiendish threats; but now, for the first time, the wickedness of my\r\npromise burst upon me; I shuddered to think that future ages might curse me\r\nas their pest, whose selfishness had not hesitated to buy its own peace at\r\nthe price, perhaps, of the existence of the whole human race.\r\n\r\nI trembled and my heart failed within me, when, on looking up, I saw by\r\nthe light of the moon the dæmon at the casement. A ghastly grin\r\nwrinkled his lips as he gazed on me, where I sat fulfilling the task\r\nwhich he had allotted to me. Yes, he had followed me in my travels; he\r\nhad loitered in forests, hid himself in caves, or taken refuge in wide\r\nand desert heaths; and he now came to mark my progress and claim the\r\nfulfilment of my promise.\r\n\r\nAs I looked on him, his countenance expressed the utmost extent of\r\nmalice and treachery. I thought with a sensation of madness on my\r\npromise of creating another like to him, and trembling with passion,\r\ntore to pieces the thing on which I was engaged. The wretch saw me\r\ndestroy the creature on whose future existence he depended for\r\nhappiness, and with a howl of devilish despair and revenge, withdrew.\r\n\r\nI left the room, and locking the door, made a solemn vow in my own\r\nheart never to resume my labours; and then, with trembling steps, I\r\nsought my own apartment. I was alone; none were near me to dissipate\r\nthe gloom and relieve me from the sickening oppression of the most\r\nterrible reveries.\r\n\r\nSeveral hours passed, and I remained near my window gazing on the sea;\r\nit was almost motionless, for the winds were hushed, and all nature\r\nreposed under the eye of the quiet moon. A few fishing vessels alone\r\nspecked the water, and now and then the gentle breeze wafted the sound\r\nof voices as the fishermen called to one another. I felt the silence,\r\nalthough I was hardly conscious of its extreme profundity, until my ear\r\nwas suddenly arrested by the paddling of oars near the shore, and a\r\nperson landed close to my house.\r\n\r\nIn a few minutes after, I heard the creaking of my door, as if some one\r\nendeavoured to open it softly. I trembled from head to foot; I felt a\r\npresentiment of who it was and wished to rouse one of the peasants who\r\ndwelt in a cottage not far from mine; but I was overcome by the sensation\r\nof helplessness, so often felt in frightful dreams, when you in vain\r\nendeavour to fly from an impending danger, and was rooted to the spot.\r\n\r\nPresently I heard the sound of footsteps along the passage; the door\r\nopened, and the wretch whom I dreaded appeared. Shutting the door, he\r\napproached me and said in a smothered voice,\r\n\r\n“You have destroyed the work which you began; what is it that you\r\nintend? Do you dare to break your promise? I have endured toil and misery;\r\nI left Switzerland with you; I crept along the shores of the Rhine, among\r\nits willow islands and over the summits of its hills. I have dwelt many\r\nmonths in the heaths of England and among the deserts of Scotland. I have\r\nendured incalculable fatigue, and cold, and hunger; do you dare destroy my\r\nhopes?”\r\n\r\n“Begone! I do break my promise; never will I create another like\r\nyourself, equal in deformity and wickedness.”\r\n\r\n“Slave, I before reasoned with you, but you have proved yourself\r\nunworthy of my condescension. Remember that I have power; you believe\r\nyourself miserable, but I can make you so wretched that the light of\r\nday will be hateful to you. You are my creator, but I am your master;\r\nobey!”\r\n\r\n“The hour of my irresolution is past, and the period of your power is\r\narrived. Your threats cannot move me to do an act of wickedness; but\r\nthey confirm me in a determination of not creating you a companion in\r\nvice. Shall I, in cool blood, set loose upon the earth a dæmon whose\r\ndelight is in death and wretchedness? Begone! I am firm, and your\r\nwords will only exasperate my rage.”\r\n\r\nThe monster saw my determination in my face and gnashed his teeth in the\r\nimpotence of anger. “Shall each man,” cried he, “find a\r\nwife for his bosom, and each beast have his mate, and I be alone? I had\r\nfeelings of affection, and they were requited by detestation and scorn.\r\nMan! You may hate, but beware! Your hours will pass in dread and misery,\r\nand soon the bolt will fall which must ravish from you your happiness for\r\never. Are you to be happy while I grovel in the intensity of my\r\nwretchedness? You can blast my other passions, but revenge\r\nremains—revenge, henceforth dearer than light or food! I may die, but\r\nfirst you, my tyrant and tormentor, shall curse the sun that gazes on your\r\nmisery. Beware, for I am fearless and therefore powerful. I will watch with\r\nthe wiliness of a snake, that I may sting with its venom. Man, you shall\r\nrepent of the injuries you inflict.”\r\n\r\n“Devil, cease; and do not poison the air with these sounds of malice.\r\nI have declared my resolution to you, and I am no coward to bend\r\nbeneath words. Leave me; I am inexorable.”\r\n\r\n“It is well. I go; but remember, I shall be with you on your\r\nwedding-night.”\r\n\r\nI started forward and exclaimed, “Villain! Before you sign my\r\ndeath-warrant, be sure that you are yourself safe.”\r\n\r\nI would have seized him, but he eluded me and quitted the house with\r\nprecipitation. In a few moments I saw him in his boat, which shot\r\nacross the waters with an arrowy swiftness and was soon lost amidst the\r\nwaves.\r\n\r\nAll was again silent, but his words rang in my ears. I burned with rage to\r\npursue the murderer of my peace and precipitate him into the ocean. I\r\nwalked up and down my room hastily and perturbed, while my imagination\r\nconjured up a thousand images to torment and sting me. Why had I not\r\nfollowed him and closed with him in mortal strife? But I had suffered him\r\nto depart, and he had directed his course towards the mainland. I shuddered\r\nto think who might be the next victim sacrificed to his insatiate revenge.\r\nAnd then I thought again of his words—“_I will be with you on\r\nyour wedding-night._” That, then, was the period fixed for the\r\nfulfilment of my destiny. In that hour I should die and at once satisfy and\r\nextinguish his malice. The prospect did not move me to fear; yet when I\r\nthought of my beloved Elizabeth, of her tears and endless sorrow, when she\r\nshould find her lover so barbarously snatched from her, tears, the first I\r\nhad shed for many months, streamed from my eyes, and I resolved not to fall\r\nbefore my enemy without a bitter struggle.\r\n\r\nThe night passed away, and the sun rose from the ocean; my feelings became\r\ncalmer, if it may be called calmness when the violence of rage sinks into\r\nthe depths of despair. I left the house, the horrid scene of the last\r\nnight’s contention, and walked on the beach of the sea, which I\r\nalmost regarded as an insuperable barrier between me and my fellow\r\ncreatures; nay, a wish that such should prove the fact stole across me. I\r\ndesired that I might pass my life on that barren rock, wearily, it is true,\r\nbut uninterrupted by any sudden shock of misery. If I returned, it was to\r\nbe sacrificed or to see those whom I most loved die under the grasp of a\r\ndæmon whom I had myself created.\r\n\r\nI walked about the isle like a restless spectre, separated from all it\r\nloved and miserable in the separation. When it became noon, and the\r\nsun rose higher, I lay down on the grass and was overpowered by a deep\r\nsleep. I had been awake the whole of the preceding night, my nerves\r\nwere agitated, and my eyes inflamed by watching and misery. The sleep\r\ninto which I now sank refreshed me; and when I awoke, I again felt as\r\nif I belonged to a race of human beings like myself, and I began to\r\nreflect upon what had passed with greater composure; yet still the\r\nwords of the fiend rang in my ears like a death-knell; they appeared\r\nlike a dream, yet distinct and oppressive as a reality.\r\n\r\nThe sun had far descended, and I still sat on the shore, satisfying my\r\nappetite, which had become ravenous, with an oaten cake, when I saw a\r\nfishing-boat land close to me, and one of the men brought me a packet;\r\nit contained letters from Geneva, and one from Clerval entreating me to\r\njoin him. He said that he was wearing away his time fruitlessly where\r\nhe was, that letters from the friends he had formed in London desired\r\nhis return to complete the negotiation they had entered into for his\r\nIndian enterprise. He could not any longer delay his departure; but as\r\nhis journey to London might be followed, even sooner than he now\r\nconjectured, by his longer voyage, he entreated me to bestow as much of\r\nmy society on him as I could spare. He besought me, therefore, to\r\nleave my solitary isle and to meet him at Perth, that we might proceed\r\nsouthwards together. This letter in a degree recalled me to life, and\r\nI determined to quit my island at the expiration of two days.\r\n\r\nYet, before I departed, there was a task to perform, on which I shuddered\r\nto reflect; I must pack up my chemical instruments, and for that purpose I\r\nmust enter the room which had been the scene of my odious work, and I must\r\nhandle those utensils the sight of which was sickening to me. The next\r\nmorning, at daybreak, I summoned sufficient courage and unlocked the door\r\nof my laboratory. The remains of the half-finished creature, whom I had\r\ndestroyed, lay scattered on the floor, and I almost felt as if I had\r\nmangled the living flesh of a human being. I paused to collect myself and\r\nthen entered the chamber. With trembling hand I conveyed the instruments\r\nout of the room, but I reflected that I ought not to leave the relics of my\r\nwork to excite the horror and suspicion of the peasants; and I accordingly\r\nput them into a basket, with a great quantity of stones, and laying them\r\nup, determined to throw them into the sea that very night; and in the\r\nmeantime I sat upon the beach, employed in cleaning and arranging my\r\nchemical apparatus.\r\n\r\nNothing could be more complete than the alteration that had taken place\r\nin my feelings since the night of the appearance of the dæmon. I had\r\nbefore regarded my promise with a gloomy despair as a thing that, with\r\nwhatever consequences, must be fulfilled; but I now felt as if a film\r\nhad been taken from before my eyes and that I for the first time saw\r\nclearly. The idea of renewing my labours did not for one instant occur\r\nto me; the threat I had heard weighed on my thoughts, but I did not\r\nreflect that a voluntary act of mine could avert it. I had resolved in\r\nmy own mind that to create another like the fiend I had first made\r\nwould be an act of the basest and most atrocious selfishness, and I\r\nbanished from my mind every thought that could lead to a different\r\nconclusion.\r\n\r\nBetween two and three in the morning the moon rose; and I then, putting my\r\nbasket aboard a little skiff, sailed out about four miles from the shore.\r\nThe scene was perfectly solitary; a few boats were returning towards land,\r\nbut I sailed away from them. I felt as if I was about the commission of a\r\ndreadful crime and avoided with shuddering anxiety any encounter with my\r\nfellow creatures. At one time the moon, which had before been clear, was\r\nsuddenly overspread by a thick cloud, and I took advantage of the moment of\r\ndarkness and cast my basket into the sea; I listened to the gurgling sound\r\nas it sank and then sailed away from the spot. The sky became clouded, but\r\nthe air was pure, although chilled by the northeast breeze that was then\r\nrising. But it refreshed me and filled me with such agreeable sensations\r\nthat I resolved to prolong my stay on the water, and fixing the rudder in a\r\ndirect position, stretched myself at the bottom of the boat. Clouds hid the\r\nmoon, everything was obscure, and I heard only the sound of the boat as its\r\nkeel cut through the waves; the murmur lulled me, and in a short time I\r\nslept soundly.\r\n\r\nI do not know how long I remained in this situation, but when I awoke I\r\nfound that the sun had already mounted considerably. The wind was high, and\r\nthe waves continually threatened the safety of my little skiff. I found\r\nthat the wind was northeast and must have driven me far from the coast from\r\nwhich I had embarked. I endeavoured to change my course but quickly found\r\nthat if I again made the attempt the boat would be instantly filled with\r\nwater. Thus situated, my only resource was to drive before the wind. I\r\nconfess that I felt a few sensations of terror. I had no compass with me\r\nand was so slenderly acquainted with the geography of this part of the\r\nworld that the sun was of little benefit to me. I might be driven into the\r\nwide Atlantic and feel all the tortures of starvation or be swallowed up in\r\nthe immeasurable waters that roared and buffeted around me. I had already\r\nbeen out many hours and felt the torment of a burning thirst, a prelude to\r\nmy other sufferings. I looked on the heavens, which were covered by clouds\r\nthat flew before the wind, only to be replaced by others; I looked upon the\r\nsea; it was to be my grave. “Fiend,” I exclaimed, “your\r\ntask is already fulfilled!” I thought of Elizabeth, of my father, and\r\nof Clerval—all left behind, on whom the monster might satisfy his\r\nsanguinary and merciless passions. This idea plunged me into a reverie so\r\ndespairing and frightful that even now, when the scene is on the point of\r\nclosing before me for ever, I shudder to reflect on it.\r\n\r\nSome hours passed thus; but by degrees, as the sun declined towards the\r\nhorizon, the wind died away into a gentle breeze and the sea became\r\nfree from breakers. But these gave place to a heavy swell; I felt sick\r\nand hardly able to hold the rudder, when suddenly I saw a line of high\r\nland towards the south.\r\n\r\nAlmost spent, as I was, by fatigue and the dreadful suspense I endured\r\nfor several hours, this sudden certainty of life rushed like a flood of\r\nwarm joy to my heart, and tears gushed from my eyes.\r\n\r\nHow mutable are our feelings, and how strange is that clinging love we have\r\nof life even in the excess of misery! I constructed another sail with a\r\npart of my dress and eagerly steered my course towards the land. It had a\r\nwild and rocky appearance, but as I approached nearer I easily perceived\r\nthe traces of cultivation. I saw vessels near the shore and found myself\r\nsuddenly transported back to the neighbourhood of civilised man. I\r\ncarefully traced the windings of the land and hailed a steeple which I at\r\nlength saw issuing from behind a small promontory. As I was in a state of\r\nextreme debility, I resolved to sail directly towards the town, as a place\r\nwhere I could most easily procure nourishment. Fortunately I had money with\r\nme. As I turned the promontory I perceived a small neat town and a good\r\nharbour, which I entered, my heart bounding with joy at my unexpected\r\nescape.\r\n\r\nAs I was occupied in fixing the boat and arranging the sails, several\r\npeople crowded towards the spot. They seemed much surprised at my\r\nappearance, but instead of offering me any assistance, whispered\r\ntogether with gestures that at any other time might have produced in me\r\na slight sensation of alarm. As it was, I merely remarked that they\r\nspoke English, and I therefore addressed them in that language. “My\r\ngood friends,” said I, “will you be so kind as to tell me the name of\r\nthis town and inform me where I am?”\r\n\r\n“You will know that soon enough,” replied a man with a hoarse voice.\r\n“Maybe you are come to a place that will not prove much to your taste,\r\nbut you will not be consulted as to your quarters, I promise you.”\r\n\r\nI was exceedingly surprised on receiving so rude an answer from a\r\nstranger, and I was also disconcerted on perceiving the frowning and\r\nangry countenances of his companions. “Why do you answer me so\r\nroughly?” I replied. “Surely it is not the custom of Englishmen to\r\nreceive strangers so inhospitably.”\r\n\r\n“I do not know,” said the man, “what the custom of the\r\nEnglish may be, but it is the custom of the Irish to hate villains.”\r\n\r\nWhile this strange dialogue continued, I perceived the crowd rapidly\r\nincrease. Their faces expressed a mixture of curiosity and anger, which\r\nannoyed and in some degree alarmed me. I inquired the way to the inn, but\r\nno one replied. I then moved forward, and a murmuring sound arose from the\r\ncrowd as they followed and surrounded me, when an ill-looking man\r\napproaching tapped me on the shoulder and said, “Come, sir, you must\r\nfollow me to Mr. Kirwin’s to give an account of yourself.”\r\n\r\n“Who is Mr. Kirwin? Why am I to give an account of myself? Is not\r\nthis a free country?”\r\n\r\n“Ay, sir, free enough for honest folks. Mr. Kirwin is a magistrate,\r\nand you are to give an account of the death of a gentleman who was\r\nfound murdered here last night.”\r\n\r\nThis answer startled me, but I presently recovered myself. I was innocent;\r\nthat could easily be proved; accordingly I followed my conductor in silence\r\nand was led to one of the best houses in the town. I was ready to sink from\r\nfatigue and hunger, but being surrounded by a crowd, I thought it politic\r\nto rouse all my strength, that no physical debility might be construed into\r\napprehension or conscious guilt. Little did I then expect the calamity that\r\nwas in a few moments to overwhelm me and extinguish in horror and despair\r\nall fear of ignominy or death.\r\n\r\nI must pause here, for it requires all my fortitude to recall the memory of\r\nthe frightful events which I am about to relate, in proper detail, to my\r\nrecollection.\r\n\r\n\r\n\r\n\r\nChapter 21\r\n\r\n\r\nI was soon introduced into the presence of the magistrate, an old\r\nbenevolent man with calm and mild manners. He looked upon me, however,\r\nwith some degree of severity, and then, turning towards my conductors,\r\nhe asked who appeared as witnesses on this occasion.\r\n\r\nAbout half a dozen men came forward; and, one being selected by the\r\nmagistrate, he deposed that he had been out fishing the night before with\r\nhis son and brother-in-law, Daniel Nugent, when, about ten o’clock,\r\nthey observed a strong northerly blast rising, and they accordingly put in\r\nfor port. It was a very dark night, as the moon had not yet risen; they did\r\nnot land at the harbour, but, as they had been accustomed, at a creek about\r\ntwo miles below. He walked on first, carrying a part of the fishing tackle,\r\nand his companions followed him at some distance. As he was proceeding\r\nalong the sands, he struck his foot against something and fell at his\r\nlength on the ground. His companions came up to assist him, and by the\r\nlight of their lantern they found that he had fallen on the body of a man,\r\nwho was to all appearance dead. Their first supposition was that it was the\r\ncorpse of some person who had been drowned and was thrown on shore by the\r\nwaves, but on examination they found that the clothes were not wet and even\r\nthat the body was not then cold. They instantly carried it to the cottage\r\nof an old woman near the spot and endeavoured, but in vain, to restore it\r\nto life. It appeared to be a handsome young man, about five and twenty\r\nyears of age. He had apparently been strangled, for there was no sign of\r\nany violence except the black mark of fingers on his neck.\r\n\r\nThe first part of this deposition did not in the least interest me, but\r\nwhen the mark of the fingers was mentioned I remembered the murder of\r\nmy brother and felt myself extremely agitated; my limbs trembled, and a\r\nmist came over my eyes, which obliged me to lean on a chair for\r\nsupport. The magistrate observed me with a keen eye and of course drew\r\nan unfavourable augury from my manner.\r\n\r\nThe son confirmed his father’s account, but when Daniel Nugent was\r\ncalled he swore positively that just before the fall of his companion, he\r\nsaw a boat, with a single man in it, at a short distance from the shore;\r\nand as far as he could judge by the light of a few stars, it was the same\r\nboat in which I had just landed.\r\n\r\nA woman deposed that she lived near the beach and was standing at the door\r\nof her cottage, waiting for the return of the fishermen, about an hour\r\nbefore she heard of the discovery of the body, when she saw a boat with\r\nonly one man in it push off from that part of the shore where the corpse\r\nwas afterwards found.\r\n\r\nAnother woman confirmed the account of the fishermen having brought the\r\nbody into her house; it was not cold. They put it into a bed and\r\nrubbed it, and Daniel went to the town for an apothecary, but life was\r\nquite gone.\r\n\r\nSeveral other men were examined concerning my landing, and they agreed\r\nthat, with the strong north wind that had arisen during the night, it\r\nwas very probable that I had beaten about for many hours and had been\r\nobliged to return nearly to the same spot from which I had departed.\r\nBesides, they observed that it appeared that I had brought the body\r\nfrom another place, and it was likely that as I did not appear to know\r\nthe shore, I might have put into the harbour ignorant of the distance\r\nof the town of —— from the place where I had deposited the corpse.\r\n\r\nMr. Kirwin, on hearing this evidence, desired that I should be taken into\r\nthe room where the body lay for interment, that it might be observed what\r\neffect the sight of it would produce upon me. This idea was probably\r\nsuggested by the extreme agitation I had exhibited when the mode of the\r\nmurder had been described. I was accordingly conducted, by the magistrate\r\nand several other persons, to the inn. I could not help being struck by the\r\nstrange coincidences that had taken place during this eventful night; but,\r\nknowing that I had been conversing with several persons in the island I had\r\ninhabited about the time that the body had been found, I was perfectly\r\ntranquil as to the consequences of the affair.\r\n\r\nI entered the room where the corpse lay and was led up to the coffin. How\r\ncan I describe my sensations on beholding it? I feel yet parched with\r\nhorror, nor can I reflect on that terrible moment without shuddering and\r\nagony. The examination, the presence of the magistrate and witnesses,\r\npassed like a dream from my memory when I saw the lifeless form of Henry\r\nClerval stretched before me. I gasped for breath, and throwing myself on\r\nthe body, I exclaimed, “Have my murderous machinations deprived you\r\nalso, my dearest Henry, of life? Two I have already destroyed; other\r\nvictims await their destiny; but you, Clerval, my friend, my\r\nbenefactor—”\r\n\r\nThe human frame could no longer support the agonies that I endured, and\r\nI was carried out of the room in strong convulsions.\r\n\r\nA fever succeeded to this. I lay for two months on the point of death; my\r\nravings, as I afterwards heard, were frightful; I called myself the\r\nmurderer of William, of Justine, and of Clerval. Sometimes I entreated my\r\nattendants to assist me in the destruction of the fiend by whom I was\r\ntormented; and at others I felt the fingers of the monster already grasping\r\nmy neck, and screamed aloud with agony and terror. Fortunately, as I spoke\r\nmy native language, Mr. Kirwin alone understood me; but my gestures and\r\nbitter cries were sufficient to affright the other witnesses.\r\n\r\nWhy did I not die? More miserable than man ever was before, why did I not\r\nsink into forgetfulness and rest? Death snatches away many blooming\r\nchildren, the only hopes of their doting parents; how many brides and\r\nyouthful lovers have been one day in the bloom of health and hope, and the\r\nnext a prey for worms and the decay of the tomb! Of what materials was I\r\nmade that I could thus resist so many shocks, which, like the turning of\r\nthe wheel, continually renewed the torture?\r\n\r\nBut I was doomed to live and in two months found myself as awaking from\r\na dream, in a prison, stretched on a wretched bed, surrounded by\r\ngaolers, turnkeys, bolts, and all the miserable apparatus of a dungeon.\r\nIt was morning, I remember, when I thus awoke to understanding; I had\r\nforgotten the particulars of what had happened and only felt as if some\r\ngreat misfortune had suddenly overwhelmed me; but when I looked around\r\nand saw the barred windows and the squalidness of the room in which I\r\nwas, all flashed across my memory and I groaned bitterly.\r\n\r\nThis sound disturbed an old woman who was sleeping in a chair beside\r\nme. She was a hired nurse, the wife of one of the turnkeys, and her\r\ncountenance expressed all those bad qualities which often characterise\r\nthat class. The lines of her face were hard and rude, like that of\r\npersons accustomed to see without sympathising in sights of misery. Her\r\ntone expressed her entire indifference; she addressed me in English,\r\nand the voice struck me as one that I had heard during my sufferings.\r\n\r\n“Are you better now, sir?” said she.\r\n\r\nI replied in the same language, with a feeble voice, “I believe I am;\r\nbut if it be all true, if indeed I did not dream, I am sorry that I am\r\nstill alive to feel this misery and horror.”\r\n\r\n“For that matter,” replied the old woman, “if you mean about the\r\ngentleman you murdered, I believe that it were better for you if you\r\nwere dead, for I fancy it will go hard with you! However, that’s none\r\nof my business; I am sent to nurse you and get you well; I do my duty\r\nwith a safe conscience; it were well if everybody did the same.”\r\n\r\nI turned with loathing from the woman who could utter so unfeeling a\r\nspeech to a person just saved, on the very edge of death; but I felt\r\nlanguid and unable to reflect on all that had passed. The whole series\r\nof my life appeared to me as a dream; I sometimes doubted if indeed it\r\nwere all true, for it never presented itself to my mind with the force\r\nof reality.\r\n\r\nAs the images that floated before me became more distinct, I grew\r\nfeverish; a darkness pressed around me; no one was near me who soothed\r\nme with the gentle voice of love; no dear hand supported me. The\r\nphysician came and prescribed medicines, and the old woman prepared\r\nthem for me; but utter carelessness was visible in the first, and the\r\nexpression of brutality was strongly marked in the visage of the\r\nsecond. Who could be interested in the fate of a murderer but the\r\nhangman who would gain his fee?\r\n\r\nThese were my first reflections, but I soon learned that Mr. Kirwin had\r\nshown me extreme kindness. He had caused the best room in the prison\r\nto be prepared for me (wretched indeed was the best); and it was he who\r\nhad provided a physician and a nurse. It is true, he seldom came to\r\nsee me, for although he ardently desired to relieve the sufferings of\r\nevery human creature, he did not wish to be present at the agonies and\r\nmiserable ravings of a murderer. He came, therefore, sometimes to see\r\nthat I was not neglected, but his visits were short and with long\r\nintervals.\r\n\r\nOne day, while I was gradually recovering, I was seated in a chair, my eyes\r\nhalf open and my cheeks livid like those in death. I was overcome by gloom\r\nand misery and often reflected I had better seek death than desire to\r\nremain in a world which to me was replete with wretchedness. At one time I\r\nconsidered whether I should not declare myself guilty and suffer the\r\npenalty of the law, less innocent than poor Justine had been. Such were my\r\nthoughts when the door of my apartment was opened and Mr. Kirwin entered.\r\nHis countenance expressed sympathy and compassion; he drew a chair close to\r\nmine and addressed me in French,\r\n\r\n“I fear that this place is very shocking to you; can I do anything to\r\nmake you more comfortable?”\r\n\r\n“I thank you, but all that you mention is nothing to me; on the whole\r\nearth there is no comfort which I am capable of receiving.”\r\n\r\n“I know that the sympathy of a stranger can be but of little relief to\r\none borne down as you are by so strange a misfortune. But you will, I\r\nhope, soon quit this melancholy abode, for doubtless evidence can\r\neasily be brought to free you from the criminal charge.”\r\n\r\n“That is my least concern; I am, by a course of strange events, become\r\nthe most miserable of mortals. Persecuted and tortured as I am and\r\nhave been, can death be any evil to me?”\r\n\r\n“Nothing indeed could be more unfortunate and agonising than the\r\nstrange chances that have lately occurred. You were thrown, by some\r\nsurprising accident, on this shore, renowned for its hospitality,\r\nseized immediately, and charged with murder. The first sight that was\r\npresented to your eyes was the body of your friend, murdered in so\r\nunaccountable a manner and placed, as it were, by some fiend across\r\nyour path.”\r\n\r\nAs Mr. Kirwin said this, notwithstanding the agitation I endured on\r\nthis retrospect of my sufferings, I also felt considerable surprise at\r\nthe knowledge he seemed to possess concerning me. I suppose some\r\nastonishment was exhibited in my countenance, for Mr. Kirwin hastened\r\nto say,\r\n\r\n“Immediately upon your being taken ill, all the papers that were on\r\nyour person were brought me, and I examined them that I might discover some\r\ntrace by which I could send to your relations an account of your misfortune\r\nand illness. I found several letters, and, among others, one which I\r\ndiscovered from its commencement to be from your father. I instantly wrote\r\nto Geneva; nearly two months have elapsed since the departure of my letter.\r\nBut you are ill; even now you tremble; you are unfit for agitation of any\r\nkind.”\r\n\r\n“This suspense is a thousand times worse than the most horrible event;\r\ntell me what new scene of death has been acted, and whose murder I am\r\nnow to lament?”\r\n\r\n“Your family is perfectly well,” said Mr. Kirwin with\r\ngentleness; “and someone, a friend, is come to visit you.”\r\n\r\nI know not by what chain of thought the idea presented itself, but it\r\ninstantly darted into my mind that the murderer had come to mock at my\r\nmisery and taunt me with the death of Clerval, as a new incitement for\r\nme to comply with his hellish desires. I put my hand before my eyes,\r\nand cried out in agony,\r\n\r\n“Oh! Take him away! I cannot see him; for God’s sake, do not\r\nlet him enter!”\r\n\r\nMr. Kirwin regarded me with a troubled countenance. He could not help\r\nregarding my exclamation as a presumption of my guilt and said in\r\nrather a severe tone,\r\n\r\n“I should have thought, young man, that the presence of your father\r\nwould have been welcome instead of inspiring such violent repugnance.”\r\n\r\n“My father!” cried I, while every feature and every muscle was relaxed\r\nfrom anguish to pleasure. “Is my father indeed come? How kind, how\r\nvery kind! But where is he, why does he not hasten to me?”\r\n\r\nMy change of manner surprised and pleased the magistrate; perhaps he\r\nthought that my former exclamation was a momentary return of delirium,\r\nand now he instantly resumed his former benevolence. He rose and\r\nquitted the room with my nurse, and in a moment my father entered it.\r\n\r\nNothing, at this moment, could have given me greater pleasure than the\r\narrival of my father. I stretched out my hand to him and cried,\r\n\r\n“Are you then safe—and Elizabeth—and Ernest?”\r\n\r\nMy father calmed me with assurances of their welfare and endeavoured, by\r\ndwelling on these subjects so interesting to my heart, to raise my\r\ndesponding spirits; but he soon felt that a prison cannot be the abode of\r\ncheerfulness. “What a place is this that you inhabit, my son!”\r\nsaid he, looking mournfully at the barred windows and wretched appearance\r\nof the room. “You travelled to seek happiness, but a fatality seems\r\nto pursue you. And poor Clerval—”\r\n\r\nThe name of my unfortunate and murdered friend was an agitation too\r\ngreat to be endured in my weak state; I shed tears.\r\n\r\n“Alas! Yes, my father,” replied I; “some destiny of the\r\nmost horrible kind hangs over me, and I must live to fulfil it, or surely I\r\nshould have died on the coffin of Henry.”\r\n\r\nWe were not allowed to converse for any length of time, for the\r\nprecarious state of my health rendered every precaution necessary that\r\ncould ensure tranquillity. Mr. Kirwin came in and insisted that my\r\nstrength should not be exhausted by too much exertion. But the\r\nappearance of my father was to me like that of my good angel, and I\r\ngradually recovered my health.\r\n\r\nAs my sickness quitted me, I was absorbed by a gloomy and black\r\nmelancholy that nothing could dissipate. The image of Clerval was\r\nfor ever before me, ghastly and murdered. More than once the agitation\r\ninto which these reflections threw me made my friends dread a dangerous\r\nrelapse. Alas! Why did they preserve so miserable and detested a\r\nlife? It was surely that I might fulfil my destiny, which is now\r\ndrawing to a close. Soon, oh, very soon, will death extinguish these\r\nthrobbings and relieve me from the mighty weight of anguish that bears\r\nme to the dust; and, in executing the award of justice, I shall also\r\nsink to rest. Then the appearance of death was distant, although the\r\nwish was ever present to my thoughts; and I often sat for hours\r\nmotionless and speechless, wishing for some mighty revolution that\r\nmight bury me and my destroyer in its ruins.\r\n\r\nThe season of the assizes approached. I had already been three months\r\nin prison, and although I was still weak and in continual danger of a\r\nrelapse, I was obliged to travel nearly a hundred miles to the country\r\ntown where the court was held. Mr. Kirwin charged himself with every\r\ncare of collecting witnesses and arranging my defence. I was spared\r\nthe disgrace of appearing publicly as a criminal, as the case was not\r\nbrought before the court that decides on life and death. The grand\r\njury rejected the bill, on its being proved that I was on the Orkney\r\nIslands at the hour the body of my friend was found; and a fortnight\r\nafter my removal I was liberated from prison.\r\n\r\nMy father was enraptured on finding me freed from the vexations of a\r\ncriminal charge, that I was again allowed to breathe the fresh\r\natmosphere and permitted to return to my native country. I did not\r\nparticipate in these feelings, for to me the walls of a dungeon or a\r\npalace were alike hateful. The cup of life was poisoned for ever, and\r\nalthough the sun shone upon me, as upon the happy and gay of heart, I\r\nsaw around me nothing but a dense and frightful darkness, penetrated by\r\nno light but the glimmer of two eyes that glared upon me. Sometimes\r\nthey were the expressive eyes of Henry, languishing in death, the dark\r\norbs nearly covered by the lids and the long black lashes that fringed\r\nthem; sometimes it was the watery, clouded eyes of the monster, as I\r\nfirst saw them in my chamber at Ingolstadt.\r\n\r\nMy father tried to awaken in me the feelings of affection. He talked\r\nof Geneva, which I should soon visit, of Elizabeth and Ernest; but\r\nthese words only drew deep groans from me. Sometimes, indeed, I felt a\r\nwish for happiness and thought with melancholy delight of my beloved\r\ncousin or longed, with a devouring _maladie du pays_, to see once more\r\nthe blue lake and rapid Rhone, that had been so dear to me in early\r\nchildhood; but my general state of feeling was a torpor in which a\r\nprison was as welcome a residence as the divinest scene in nature; and\r\nthese fits were seldom interrupted but by paroxysms of anguish and\r\ndespair. At these moments I often endeavoured to put an end to the\r\nexistence I loathed, and it required unceasing attendance and vigilance\r\nto restrain me from committing some dreadful act of violence.\r\n\r\nYet one duty remained to me, the recollection of which finally\r\ntriumphed over my selfish despair. It was necessary that I should\r\nreturn without delay to Geneva, there to watch over the lives of those\r\nI so fondly loved and to lie in wait for the murderer, that if any\r\nchance led me to the place of his concealment, or if he dared again to\r\nblast me by his presence, I might, with unfailing aim, put an end to\r\nthe existence of the monstrous image which I had endued with the\r\nmockery of a soul still more monstrous. My father still desired to\r\ndelay our departure, fearful that I could not sustain the fatigues of a\r\njourney, for I was a shattered wreck—the shadow of a human being. My\r\nstrength was gone. I was a mere skeleton, and fever night and day\r\npreyed upon my wasted frame.\r\n\r\nStill, as I urged our leaving Ireland with such inquietude and impatience,\r\nmy father thought it best to yield. We took our passage on board a vessel\r\nbound for Havre-de-Grace and sailed with a fair wind from the Irish shores.\r\nIt was midnight. I lay on the deck looking at the stars and listening to\r\nthe dashing of the waves. I hailed the darkness that shut Ireland from my\r\nsight, and my pulse beat with a feverish joy when I reflected that I should\r\nsoon see Geneva. The past appeared to me in the light of a frightful dream;\r\nyet the vessel in which I was, the wind that blew me from the detested\r\nshore of Ireland, and the sea which surrounded me, told me too forcibly\r\nthat I was deceived by no vision and that Clerval, my friend and dearest\r\ncompanion, had fallen a victim to me and the monster of my creation. I\r\nrepassed, in my memory, my whole life; my quiet happiness while residing\r\nwith my family in Geneva, the death of my mother, and my departure for\r\nIngolstadt. I remembered, shuddering, the mad enthusiasm that hurried me on\r\nto the creation of my hideous enemy, and I called to mind the night in\r\nwhich he first lived. I was unable to pursue the train of thought; a\r\nthousand feelings pressed upon me, and I wept bitterly.\r\n\r\nEver since my recovery from the fever, I had been in the custom of taking\r\nevery night a small quantity of laudanum, for it was by means of this drug\r\nonly that I was enabled to gain the rest necessary for the preservation of\r\nlife. Oppressed by the recollection of my various misfortunes, I now\r\nswallowed double my usual quantity and soon slept profoundly. But sleep did\r\nnot afford me respite from thought and misery; my dreams presented a\r\nthousand objects that scared me. Towards morning I was possessed by a kind\r\nof nightmare; I felt the fiend’s grasp in my neck and could not free\r\nmyself from it; groans and cries rang in my ears. My father, who was\r\nwatching over me, perceiving my restlessness, awoke me; the dashing waves\r\nwere around, the cloudy sky above, the fiend was not here: a sense of\r\nsecurity, a feeling that a truce was established between the present hour\r\nand the irresistible, disastrous future imparted to me a kind of calm\r\nforgetfulness, of which the human mind is by its structure peculiarly\r\nsusceptible.\r\n\r\n\r\n\r\n\r\nChapter 22\r\n\r\n\r\nThe voyage came to an end. We landed, and proceeded to Paris. I soon\r\nfound that I had overtaxed my strength and that I must repose before I\r\ncould continue my journey. My father’s care and attentions were\r\nindefatigable, but he did not know the origin of my sufferings and\r\nsought erroneous methods to remedy the incurable ill. He wished me to\r\nseek amusement in society. I abhorred the face of man. Oh, not\r\nabhorred! They were my brethren, my fellow beings, and I felt\r\nattracted even to the most repulsive among them, as to creatures of an\r\nangelic nature and celestial mechanism. But I felt that I had no right\r\nto share their intercourse. I had unchained an enemy among them whose\r\njoy it was to shed their blood and to revel in their groans. How they\r\nwould, each and all, abhor me and hunt me from the world, did they know\r\nmy unhallowed acts and the crimes which had their source in me!\r\n\r\nMy father yielded at length to my desire to avoid society and strove by\r\nvarious arguments to banish my despair. Sometimes he thought that I\r\nfelt deeply the degradation of being obliged to answer a charge of\r\nmurder, and he endeavoured to prove to me the futility of pride.\r\n\r\n“Alas! My father,” said I, “how little do you know me. \r\nHuman beings, their feelings and passions, would indeed be degraded if such\r\na wretch as I felt pride. Justine, poor unhappy Justine, was as innocent\r\nas I, and she suffered the same charge; she died for it; and I am the cause\r\nof this—I murdered her. William, Justine, and Henry—they all\r\ndied by my hands.”\r\n\r\nMy father had often, during my imprisonment, heard me make the same\r\nassertion; when I thus accused myself, he sometimes seemed to desire an\r\nexplanation, and at others he appeared to consider it as the offspring of\r\ndelirium, and that, during my illness, some idea of this kind had presented\r\nitself to my imagination, the remembrance of which I preserved in my\r\nconvalescence. I avoided explanation and maintained a continual silence\r\nconcerning the wretch I had created. I had a persuasion that I should be\r\nsupposed mad, and this in itself would for ever have chained my tongue. But,\r\nbesides, I could not bring myself to disclose a secret which would fill my\r\nhearer with consternation and make fear and unnatural horror the inmates of\r\nhis breast. I checked, therefore, my impatient thirst for sympathy and was\r\nsilent when I would have given the world to have confided the fatal secret.\r\nYet, still, words like those I have recorded would burst uncontrollably\r\nfrom me. I could offer no explanation of them, but their truth in part\r\nrelieved the burden of my mysterious woe.\r\n\r\nUpon this occasion my father said, with an expression of unbounded wonder,\r\n“My dearest Victor, what infatuation is this? My dear son, I entreat\r\nyou never to make such an assertion again.”\r\n\r\n“I am not mad,” I cried energetically; “the sun and the heavens, who\r\nhave viewed my operations, can bear witness of my truth. I am the\r\nassassin of those most innocent victims; they died by my machinations.\r\nA thousand times would I have shed my own blood, drop by drop, to have\r\nsaved their lives; but I could not, my father, indeed I could not\r\nsacrifice the whole human race.”\r\n\r\nThe conclusion of this speech convinced my father that my ideas were\r\nderanged, and he instantly changed the subject of our conversation and\r\nendeavoured to alter the course of my thoughts. He wished as much as\r\npossible to obliterate the memory of the scenes that had taken place in\r\nIreland and never alluded to them or suffered me to speak of my\r\nmisfortunes.\r\n\r\nAs time passed away I became more calm; misery had her dwelling in my\r\nheart, but I no longer talked in the same incoherent manner of my own\r\ncrimes; sufficient for me was the consciousness of them. By the utmost\r\nself-violence I curbed the imperious voice of wretchedness, which\r\nsometimes desired to declare itself to the whole world, and my manners\r\nwere calmer and more composed than they had ever been since my journey\r\nto the sea of ice.\r\n\r\nA few days before we left Paris on our way to Switzerland, I received the\r\nfollowing letter from Elizabeth:\r\n\r\n“My dear Friend,\r\n\r\n“It gave me the greatest pleasure to receive a letter from my uncle\r\ndated at Paris; you are no longer at a formidable distance, and I may\r\nhope to see you in less than a fortnight. My poor cousin, how much you\r\nmust have suffered! I expect to see you looking even more ill than\r\nwhen you quitted Geneva. This winter has been passed most miserably,\r\ntortured as I have been by anxious suspense; yet I hope to see peace in\r\nyour countenance and to find that your heart is not totally void of\r\ncomfort and tranquillity.\r\n\r\n“Yet I fear that the same feelings now exist that made you so miserable\r\na year ago, even perhaps augmented by time. I would not disturb you at\r\nthis period, when so many misfortunes weigh upon you, but a\r\nconversation that I had with my uncle previous to his departure renders\r\nsome explanation necessary before we meet.\r\n\r\nExplanation! You may possibly say, What can Elizabeth have to explain? If\r\nyou really say this, my questions are answered and all my doubts satisfied.\r\nBut you are distant from me, and it is possible that you may dread and yet\r\nbe pleased with this explanation; and in a probability of this being the\r\ncase, I dare not any longer postpone writing what, during your absence, I\r\nhave often wished to express to you but have never had the courage to begin.\r\n\r\n“You well know, Victor, that our union had been the favourite plan of\r\nyour parents ever since our infancy. We were told this when young, and\r\ntaught to look forward to it as an event that would certainly take\r\nplace. We were affectionate playfellows during childhood, and, I\r\nbelieve, dear and valued friends to one another as we grew older. But\r\nas brother and sister often entertain a lively affection towards each\r\nother without desiring a more intimate union, may not such also be our\r\ncase? Tell me, dearest Victor. Answer me, I conjure you by our mutual\r\nhappiness, with simple truth—Do you not love another?\r\n\r\n“You have travelled; you have spent several years of your life at\r\nIngolstadt; and I confess to you, my friend, that when I saw you last\r\nautumn so unhappy, flying to solitude from the society of every\r\ncreature, I could not help supposing that you might regret our\r\nconnection and believe yourself bound in honour to fulfil the wishes of\r\nyour parents, although they opposed themselves to your inclinations.\r\nBut this is false reasoning. I confess to you, my friend, that I love\r\nyou and that in my airy dreams of futurity you have been my constant\r\nfriend and companion. But it is your happiness I desire as well as my\r\nown when I declare to you that our marriage would render me eternally\r\nmiserable unless it were the dictate of your own free choice. Even now\r\nI weep to think that, borne down as you are by the cruellest\r\nmisfortunes, you may stifle, by the word _honour_, all hope of that\r\nlove and happiness which would alone restore you to yourself. I, who\r\nhave so disinterested an affection for you, may increase your miseries\r\ntenfold by being an obstacle to your wishes. Ah! Victor, be assured\r\nthat your cousin and playmate has too sincere a love for you not to be\r\nmade miserable by this supposition. Be happy, my friend; and if you\r\nobey me in this one request, remain satisfied that nothing on earth\r\nwill have the power to interrupt my tranquillity.\r\n\r\n“Do not let this letter disturb you; do not answer tomorrow, or the\r\nnext day, or even until you come, if it will give you pain. My uncle\r\nwill send me news of your health, and if I see but one smile on your\r\nlips when we meet, occasioned by this or any other exertion of mine, I\r\nshall need no other happiness.\r\n\r\n“Elizabeth Lavenza.\r\n\r\n\r\n\r\n“Geneva, May 18th, 17—”\r\n\r\n\r\n\r\nThis letter revived in my memory what I had before forgotten, the threat of\r\nthe fiend—“_I will be with you on your\r\nwedding-night!_” Such was my sentence, and on that night would the\r\ndæmon employ every art to destroy me and tear me from the glimpse of\r\nhappiness which promised partly to console my sufferings. On that night he\r\nhad determined to consummate his crimes by my death. Well, be it so; a\r\ndeadly struggle would then assuredly take place, in which if he were\r\nvictorious I should be at peace and his power over me be at an end. If he\r\nwere vanquished, I should be a free man. Alas! What freedom? Such as the\r\npeasant enjoys when his family have been massacred before his eyes, his\r\ncottage burnt, his lands laid waste, and he is turned adrift, homeless,\r\npenniless, and alone, but free. Such would be my liberty except that in my\r\nElizabeth I possessed a treasure, alas, balanced by those horrors of\r\nremorse and guilt which would pursue me until death.\r\n\r\nSweet and beloved Elizabeth! I read and reread her letter, and some\r\nsoftened feelings stole into my heart and dared to whisper paradisiacal\r\ndreams of love and joy; but the apple was already eaten, and the\r\nangel’s arm bared to drive me from all hope. Yet I would die to make\r\nher happy. If the monster executed his threat, death was inevitable; yet,\r\nagain, I considered whether my marriage would hasten my fate. My\r\ndestruction might indeed arrive a few months sooner, but if my torturer\r\nshould suspect that I postponed it, influenced by his menaces, he would\r\nsurely find other and perhaps more dreadful means of revenge. He had vowed\r\n_to be with me on my wedding-night_, yet he did not consider that\r\nthreat as binding him to peace in the meantime, for as if to show me that\r\nhe was not yet satiated with blood, he had murdered Clerval immediately\r\nafter the enunciation of his threats. I resolved, therefore, that if my\r\nimmediate union with my cousin would conduce either to hers or my\r\nfather’s happiness, my adversary’s designs against my life\r\nshould not retard it a single hour.\r\n\r\nIn this state of mind I wrote to Elizabeth. My letter was calm and\r\naffectionate. “I fear, my beloved girl,” I said, “little happiness\r\nremains for us on earth; yet all that I may one day enjoy is centred in\r\nyou. Chase away your idle fears; to you alone do I consecrate my life\r\nand my endeavours for contentment. I have one secret, Elizabeth, a\r\ndreadful one; when revealed to you, it will chill your frame with\r\nhorror, and then, far from being surprised at my misery, you will only\r\nwonder that I survive what I have endured. I will confide this tale of\r\nmisery and terror to you the day after our marriage shall take place,\r\nfor, my sweet cousin, there must be perfect confidence between us. But\r\nuntil then, I conjure you, do not mention or allude to it. This I most\r\nearnestly entreat, and I know you will comply.”\r\n\r\nIn about a week after the arrival of Elizabeth’s letter we returned\r\nto Geneva. The sweet girl welcomed me with warm affection, yet tears were\r\nin her eyes as she beheld my emaciated frame and feverish cheeks. I saw a\r\nchange in her also. She was thinner and had lost much of that heavenly\r\nvivacity that had before charmed me; but her gentleness and soft looks of\r\ncompassion made her a more fit companion for one blasted and miserable as I\r\nwas.\r\n\r\nThe tranquillity which I now enjoyed did not endure. Memory brought madness\r\nwith it, and when I thought of what had passed, a real insanity possessed\r\nme; sometimes I was furious and burnt with rage, sometimes low and\r\ndespondent. I neither spoke nor looked at anyone, but sat motionless,\r\nbewildered by the multitude of miseries that overcame me.\r\n\r\nElizabeth alone had the power to draw me from these fits; her gentle voice\r\nwould soothe me when transported by passion and inspire me with human\r\nfeelings when sunk in torpor. She wept with me and for me. When reason\r\nreturned, she would remonstrate and endeavour to inspire me with\r\nresignation. Ah! It is well for the unfortunate to be resigned, but for the\r\nguilty there is no peace. The agonies of remorse poison the luxury there is\r\notherwise sometimes found in indulging the excess of grief.\r\n\r\nSoon after my arrival my father spoke of my immediate marriage with\r\nElizabeth. I remained silent.\r\n\r\n“Have you, then, some other attachment?”\r\n\r\n“None on earth. I love Elizabeth and look forward to our union with\r\ndelight. Let the day therefore be fixed; and on it I will consecrate\r\nmyself, in life or death, to the happiness of my cousin.”\r\n\r\n“My dear Victor, do not speak thus. Heavy misfortunes have befallen\r\nus, but let us only cling closer to what remains and transfer our love\r\nfor those whom we have lost to those who yet live. Our circle will be\r\nsmall but bound close by the ties of affection and mutual misfortune.\r\nAnd when time shall have softened your despair, new and dear objects of\r\ncare will be born to replace those of whom we have been so cruelly\r\ndeprived.”\r\n\r\nSuch were the lessons of my father. But to me the remembrance of the\r\nthreat returned; nor can you wonder that, omnipotent as the fiend had\r\nyet been in his deeds of blood, I should almost regard him as\r\ninvincible, and that when he had pronounced the words “_I shall be with\r\nyou on your wedding-night_,” I should regard the threatened fate as\r\nunavoidable. But death was no evil to me if the loss of Elizabeth were\r\nbalanced with it, and I therefore, with a contented and even cheerful\r\ncountenance, agreed with my father that if my cousin would consent, the\r\nceremony should take place in ten days, and thus put, as I imagined,\r\nthe seal to my fate.\r\n\r\nGreat God! If for one instant I had thought what might be the hellish\r\nintention of my fiendish adversary, I would rather have banished myself\r\nfor ever from my native country and wandered a friendless outcast over\r\nthe earth than have consented to this miserable marriage. But, as if\r\npossessed of magic powers, the monster had blinded me to his real\r\nintentions; and when I thought that I had prepared only my own death, I\r\nhastened that of a far dearer victim.\r\n\r\nAs the period fixed for our marriage drew nearer, whether from cowardice or\r\na prophetic feeling, I felt my heart sink within me. But I concealed my\r\nfeelings by an appearance of hilarity that brought smiles and joy to the\r\ncountenance of my father, but hardly deceived the ever-watchful and nicer\r\neye of Elizabeth. She looked forward to our union with placid contentment,\r\nnot unmingled with a little fear, which past misfortunes had impressed,\r\nthat what now appeared certain and tangible happiness might soon dissipate\r\ninto an airy dream and leave no trace but deep and everlasting regret.\r\n\r\nPreparations were made for the event, congratulatory visits were received,\r\nand all wore a smiling appearance. I shut up, as well as I could, in my own\r\nheart the anxiety that preyed there and entered with seeming earnestness\r\ninto the plans of my father, although they might only serve as the\r\ndecorations of my tragedy. Through my father’s exertions a part of\r\nthe inheritance of Elizabeth had been restored to her by the Austrian\r\ngovernment. A small possession on the shores of Como belonged to her. It\r\nwas agreed that, immediately after our union, we should proceed to Villa\r\nLavenza and spend our first days of happiness beside the beautiful lake\r\nnear which it stood.\r\n\r\nIn the meantime I took every precaution to defend my person in case the\r\nfiend should openly attack me. I carried pistols and a dagger\r\nconstantly about me and was ever on the watch to prevent artifice, and\r\nby these means gained a greater degree of tranquillity. Indeed, as the\r\nperiod approached, the threat appeared more as a delusion, not to be\r\nregarded as worthy to disturb my peace, while the happiness I hoped for\r\nin my marriage wore a greater appearance of certainty as the day fixed\r\nfor its solemnisation drew nearer and I heard it continually spoken of\r\nas an occurrence which no accident could possibly prevent.\r\n\r\nElizabeth seemed happy; my tranquil demeanour contributed greatly to\r\ncalm her mind. But on the day that was to fulfil my wishes and my\r\ndestiny, she was melancholy, and a presentiment of evil pervaded her;\r\nand perhaps also she thought of the dreadful secret which I had\r\npromised to reveal to her on the following day. My father was in the\r\nmeantime overjoyed, and, in the bustle of preparation, only recognised in\r\nthe melancholy of his niece the diffidence of a bride.\r\n\r\nAfter the ceremony was performed a large party assembled at my\r\nfather’s, but it was agreed that Elizabeth and I should commence our\r\njourney by water, sleeping that night at Evian and continuing our\r\nvoyage on the following day. The day was fair, the wind favourable;\r\nall smiled on our nuptial embarkation.\r\n\r\nThose were the last moments of my life during which I enjoyed the\r\nfeeling of happiness. We passed rapidly along; the sun was hot, but we\r\nwere sheltered from its rays by a kind of canopy while we enjoyed the\r\nbeauty of the scene, sometimes on one side of the lake, where we saw\r\nMont Salêve, the pleasant banks of Montalègre, and at a distance,\r\nsurmounting all, the beautiful Mont Blanc, and the assemblage of snowy\r\nmountains that in vain endeavour to emulate her; sometimes coasting the\r\nopposite banks, we saw the mighty Jura opposing its dark side to the\r\nambition that would quit its native country, and an almost\r\ninsurmountable barrier to the invader who should wish to enslave it.\r\n\r\nI took the hand of Elizabeth. “You are sorrowful, my love. Ah! If\r\nyou knew what I have suffered and what I may yet endure, you would\r\nendeavour to let me taste the quiet and freedom from despair that this\r\none day at least permits me to enjoy.”\r\n\r\n“Be happy, my dear Victor,” replied Elizabeth; “there is, I hope,\r\nnothing to distress you; and be assured that if a lively joy is not\r\npainted in my face, my heart is contented. Something whispers to me\r\nnot to depend too much on the prospect that is opened before us, but I\r\nwill not listen to such a sinister voice. Observe how fast we move\r\nalong and how the clouds, which sometimes obscure and sometimes rise\r\nabove the dome of Mont Blanc, render this scene of beauty still more\r\ninteresting. Look also at the innumerable fish that are swimming in\r\nthe clear waters, where we can distinguish every pebble that lies at\r\nthe bottom. What a divine day! How happy and serene all nature\r\nappears!”\r\n\r\nThus Elizabeth endeavoured to divert her thoughts and mine from all\r\nreflection upon melancholy subjects. But her temper was fluctuating;\r\njoy for a few instants shone in her eyes, but it continually gave place\r\nto distraction and reverie.\r\n\r\nThe sun sank lower in the heavens; we passed the river Drance and\r\nobserved its path through the chasms of the higher and the glens of the\r\nlower hills. The Alps here come closer to the lake, and we approached\r\nthe amphitheatre of mountains which forms its eastern boundary. The\r\nspire of Evian shone under the woods that surrounded it and the range\r\nof mountain above mountain by which it was overhung.\r\n\r\nThe wind, which had hitherto carried us along with amazing rapidity,\r\nsank at sunset to a light breeze; the soft air just ruffled the water\r\nand caused a pleasant motion among the trees as we approached the\r\nshore, from which it wafted the most delightful scent of flowers and\r\nhay. The sun sank beneath the horizon as we landed, and as I touched\r\nthe shore I felt those cares and fears revive which soon were to clasp\r\nme and cling to me for ever.\r\n\r\n\r\n\r\n\r\nChapter 23\r\n\r\n\r\nIt was eight o’clock when we landed; we walked for a short time on the\r\nshore, enjoying the transitory light, and then retired to the inn and\r\ncontemplated the lovely scene of waters, woods, and mountains, obscured\r\nin darkness, yet still displaying their black outlines.\r\n\r\nThe wind, which had fallen in the south, now rose with great violence\r\nin the west. The moon had reached her summit in the heavens and was\r\nbeginning to descend; the clouds swept across it swifter than the\r\nflight of the vulture and dimmed her rays, while the lake reflected the\r\nscene of the busy heavens, rendered still busier by the restless waves\r\nthat were beginning to rise. Suddenly a heavy storm of rain descended.\r\n\r\nI had been calm during the day, but so soon as night obscured the\r\nshapes of objects, a thousand fears arose in my mind. I was anxious\r\nand watchful, while my right hand grasped a pistol which was hidden in\r\nmy bosom; every sound terrified me, but I resolved that I would sell my\r\nlife dearly and not shrink from the conflict until my own life or that\r\nof my adversary was extinguished.\r\n\r\nElizabeth observed my agitation for some time in timid and fearful silence,\r\nbut there was something in my glance which communicated terror to her, and\r\ntrembling, she asked, “What is it that agitates you, my dear Victor?\r\nWhat is it you fear?”\r\n\r\n“Oh! Peace, peace, my love,” replied I; “this night, and\r\nall will be safe; but this night is dreadful, very dreadful.”\r\n\r\nI passed an hour in this state of mind, when suddenly I reflected how\r\nfearful the combat which I momentarily expected would be to my wife,\r\nand I earnestly entreated her to retire, resolving not to join her\r\nuntil I had obtained some knowledge as to the situation of my enemy.\r\n\r\nShe left me, and I continued some time walking up and down the passages\r\nof the house and inspecting every corner that might afford a retreat to\r\nmy adversary. But I discovered no trace of him and was beginning to\r\nconjecture that some fortunate chance had intervened to prevent the\r\nexecution of his menaces when suddenly I heard a shrill and dreadful\r\nscream. It came from the room into which Elizabeth had retired. As I\r\nheard it, the whole truth rushed into my mind, my arms dropped, the\r\nmotion of every muscle and fibre was suspended; I could feel the blood\r\ntrickling in my veins and tingling in the extremities of my limbs. This\r\nstate lasted but for an instant; the scream was repeated, and I rushed\r\ninto the room.\r\n\r\nGreat God! Why did I not then expire! Why am I here to relate the\r\ndestruction of the best hope and the purest creature on earth? She was\r\nthere, lifeless and inanimate, thrown across the bed, her head hanging down\r\nand her pale and distorted features half covered by her hair. Everywhere I\r\nturn I see the same figure—her bloodless arms and relaxed form flung\r\nby the murderer on its bridal bier. Could I behold this and live? Alas!\r\nLife is obstinate and clings closest where it is most hated. For a moment\r\nonly did I lose recollection; I fell senseless on the ground.\r\n\r\nWhen I recovered I found myself surrounded by the people of the inn; their\r\ncountenances expressed a breathless terror, but the horror of others\r\nappeared only as a mockery, a shadow of the feelings that oppressed me. I\r\nescaped from them to the room where lay the body of Elizabeth, my love, my\r\nwife, so lately living, so dear, so worthy. She had been moved from the\r\nposture in which I had first beheld her, and now, as she lay, her head upon\r\nher arm and a handkerchief thrown across her face and neck, I might have\r\nsupposed her asleep. I rushed towards her and embraced her with ardour, but\r\nthe deadly languor and coldness of the limbs told me that what I now held\r\nin my arms had ceased to be the Elizabeth whom I had loved and cherished.\r\nThe murderous mark of the fiend’s grasp was on her neck, and the\r\nbreath had ceased to issue from her lips.\r\n\r\nWhile I still hung over her in the agony of despair, I happened to look up.\r\nThe windows of the room had before been darkened, and I felt a kind of\r\npanic on seeing the pale yellow light of the moon illuminate the chamber.\r\nThe shutters had been thrown back, and with a sensation of horror not to be\r\ndescribed, I saw at the open window a figure the most hideous and abhorred.\r\nA grin was on the face of the monster; he seemed to jeer, as with his\r\nfiendish finger he pointed towards the corpse of my wife. I rushed towards\r\nthe window, and drawing a pistol from my bosom, fired; but he eluded me,\r\nleaped from his station, and running with the swiftness of lightning,\r\nplunged into the lake.\r\n\r\nThe report of the pistol brought a crowd into the room. I pointed to\r\nthe spot where he had disappeared, and we followed the track with\r\nboats; nets were cast, but in vain. After passing several hours, we\r\nreturned hopeless, most of my companions believing it to have been a\r\nform conjured up by my fancy. After having landed, they proceeded to\r\nsearch the country, parties going in different directions among the\r\nwoods and vines.\r\n\r\nI attempted to accompany them and proceeded a short distance from the\r\nhouse, but my head whirled round, my steps were like those of a drunken\r\nman, I fell at last in a state of utter exhaustion; a film covered my\r\neyes, and my skin was parched with the heat of fever. In this state I\r\nwas carried back and placed on a bed, hardly conscious of what had\r\nhappened; my eyes wandered round the room as if to seek something that\r\nI had lost.\r\n\r\nAfter an interval I arose, and as if by instinct, crawled into the room\r\nwhere the corpse of my beloved lay. There were women weeping around; I\r\nhung over it and joined my sad tears to theirs; all this time no\r\ndistinct idea presented itself to my mind, but my thoughts rambled to\r\nvarious subjects, reflecting confusedly on my misfortunes and their\r\ncause. I was bewildered, in a cloud of wonder and horror. The death\r\nof William, the execution of Justine, the murder of Clerval, and lastly\r\nof my wife; even at that moment I knew not that my only remaining\r\nfriends were safe from the malignity of the fiend; my father even now\r\nmight be writhing under his grasp, and Ernest might be dead at his\r\nfeet. This idea made me shudder and recalled me to action. I started\r\nup and resolved to return to Geneva with all possible speed.\r\n\r\nThere were no horses to be procured, and I must return by the lake; but the\r\nwind was unfavourable, and the rain fell in torrents. However, it was\r\nhardly morning, and I might reasonably hope to arrive by night. I hired men\r\nto row and took an oar myself, for I had always experienced relief from\r\nmental torment in bodily exercise. But the overflowing misery I now felt,\r\nand the excess of agitation that I endured rendered me incapable of any\r\nexertion. I threw down the oar, and leaning my head upon my hands, gave way\r\nto every gloomy idea that arose. If I looked up, I saw scenes which were\r\nfamiliar to me in my happier time and which I had contemplated but the day\r\nbefore in the company of her who was now but a shadow and a recollection.\r\nTears streamed from my eyes. The rain had ceased for a moment, and I saw\r\nthe fish play in the waters as they had done a few hours before; they had\r\nthen been observed by Elizabeth. Nothing is so painful to the human mind as\r\na great and sudden change. The sun might shine or the clouds might lower,\r\nbut nothing could appear to me as it had done the day before. A fiend had\r\nsnatched from me every hope of future happiness; no creature had ever been\r\nso miserable as I was; so frightful an event is single in the history of\r\nman.\r\n\r\nBut why should I dwell upon the incidents that followed this last\r\noverwhelming event? Mine has been a tale of horrors; I have reached their\r\n_acme_, and what I must now relate can but be tedious to you. Know\r\nthat, one by one, my friends were snatched away; I was left desolate. My\r\nown strength is exhausted, and I must tell, in a few words, what remains of\r\nmy hideous narration.\r\n\r\nI arrived at Geneva. My father and Ernest yet lived, but the former sunk\r\nunder the tidings that I bore. I see him now, excellent and venerable old\r\nman! His eyes wandered in vacancy, for they had lost their charm and their\r\ndelight—his Elizabeth, his more than daughter, whom he doted on with\r\nall that affection which a man feels, who in the decline of life, having\r\nfew affections, clings more earnestly to those that remain. Cursed, cursed\r\nbe the fiend that brought misery on his grey hairs and doomed him to waste\r\nin wretchedness! He could not live under the horrors that were accumulated\r\naround him; the springs of existence suddenly gave way; he was unable to\r\nrise from his bed, and in a few days he died in my arms.\r\n\r\nWhat then became of me? I know not; I lost sensation, and chains and\r\ndarkness were the only objects that pressed upon me. Sometimes,\r\nindeed, I dreamt that I wandered in flowery meadows and pleasant vales\r\nwith the friends of my youth, but I awoke and found myself in a\r\ndungeon. Melancholy followed, but by degrees I gained a clear\r\nconception of my miseries and situation and was then released from my\r\nprison. For they had called me mad, and during many months, as I\r\nunderstood, a solitary cell had been my habitation.\r\n\r\nLiberty, however, had been a useless gift to me, had I not, as I\r\nawakened to reason, at the same time awakened to revenge. As the\r\nmemory of past misfortunes pressed upon me, I began to reflect on their\r\ncause—the monster whom I had created, the miserable dæmon whom I had\r\nsent abroad into the world for my destruction. I was possessed by a\r\nmaddening rage when I thought of him, and desired and ardently prayed\r\nthat I might have him within my grasp to wreak a great and signal\r\nrevenge on his cursed head.\r\n\r\nNor did my hate long confine itself to useless wishes; I began to\r\nreflect on the best means of securing him; and for this purpose, about\r\na month after my release, I repaired to a criminal judge in the town\r\nand told him that I had an accusation to make, that I knew the\r\ndestroyer of my family, and that I required him to exert his whole\r\nauthority for the apprehension of the murderer.\r\n\r\nThe magistrate listened to me with attention and kindness. “Be\r\nassured, sir,” said he, “no pains or exertions on my part shall\r\nbe spared to discover the villain.”\r\n\r\n“I thank you,” replied I; “listen, therefore, to the\r\ndeposition that I have to make. It is indeed a tale so strange that I\r\nshould fear you would not credit it were there not something in truth\r\nwhich, however wonderful, forces conviction. The story is too connected to\r\nbe mistaken for a dream, and I have no motive for falsehood.” My\r\nmanner as I thus addressed him was impressive but calm; I had formed in my\r\nown heart a resolution to pursue my destroyer to death, and this purpose\r\nquieted my agony and for an interval reconciled me to life. I now related\r\nmy history briefly but with firmness and precision, marking the dates with\r\naccuracy and never deviating into invective or exclamation.\r\n\r\nThe magistrate appeared at first perfectly incredulous, but as I continued\r\nhe became more attentive and interested; I saw him sometimes shudder with\r\nhorror; at others a lively surprise, unmingled with disbelief, was painted\r\non his countenance.\r\n\r\nWhen I had concluded my narration, I said, “This is the being whom I\r\naccuse and for whose seizure and punishment I call upon you to exert your\r\nwhole power. It is your duty as a magistrate, and I believe and hope that\r\nyour feelings as a man will not revolt from the execution of those\r\nfunctions on this occasion.”\r\n\r\nThis address caused a considerable change in the physiognomy of my own\r\nauditor. He had heard my story with that half kind of belief that is given\r\nto a tale of spirits and supernatural events; but when he was called upon\r\nto act officially in consequence, the whole tide of his incredulity\r\nreturned. He, however, answered mildly, “I would willingly afford you\r\nevery aid in your pursuit, but the creature of whom you speak appears to\r\nhave powers which would put all my exertions to defiance. Who can follow an\r\nanimal which can traverse the sea of ice and inhabit caves and dens where\r\nno man would venture to intrude? Besides, some months have elapsed since\r\nthe commission of his crimes, and no one can conjecture to what place he\r\nhas wandered or what region he may now inhabit.”\r\n\r\n“I do not doubt that he hovers near the spot which I inhabit, and if\r\nhe has indeed taken refuge in the Alps, he may be hunted like the chamois\r\nand destroyed as a beast of prey. But I perceive your thoughts; you do not\r\ncredit my narrative and do not intend to pursue my enemy with the\r\npunishment which is his desert.”\r\n\r\nAs I spoke, rage sparkled in my eyes; the magistrate was intimidated.\r\n“You are mistaken,” said he. “I will exert myself, and if\r\nit is in my power to seize the monster, be assured that he shall suffer\r\npunishment proportionate to his crimes. But I fear, from what you have\r\nyourself described to be his properties, that this will prove\r\nimpracticable; and thus, while every proper measure is pursued, you should\r\nmake up your mind to disappointment.”\r\n\r\n“That cannot be; but all that I can say will be of little avail. My\r\nrevenge is of no moment to you; yet, while I allow it to be a vice, I\r\nconfess that it is the devouring and only passion of my soul. My rage\r\nis unspeakable when I reflect that the murderer, whom I have turned\r\nloose upon society, still exists. You refuse my just demand; I have\r\nbut one resource, and I devote myself, either in my life or death, to\r\nhis destruction.”\r\n\r\nI trembled with excess of agitation as I said this; there was a frenzy\r\nin my manner, and something, I doubt not, of that haughty fierceness\r\nwhich the martyrs of old are said to have possessed. But to a Genevan\r\nmagistrate, whose mind was occupied by far other ideas than those of\r\ndevotion and heroism, this elevation of mind had much the appearance of\r\nmadness. He endeavoured to soothe me as a nurse does a child and\r\nreverted to my tale as the effects of delirium.\r\n\r\n“Man,” I cried, “how ignorant art thou in thy pride of\r\nwisdom! Cease; you know not what it is you say.”\r\n\r\nI broke from the house angry and disturbed and retired to meditate on\r\nsome other mode of action.\r\n\r\n\r\n\r\n\r\nChapter 24\r\n\r\n\r\nMy present situation was one in which all voluntary thought was\r\nswallowed up and lost. I was hurried away by fury; revenge alone\r\nendowed me with strength and composure; it moulded my feelings and\r\nallowed me to be calculating and calm at periods when otherwise\r\ndelirium or death would have been my portion.\r\n\r\nMy first resolution was to quit Geneva for ever; my country, which, when I\r\nwas happy and beloved, was dear to me, now, in my adversity, became\r\nhateful. I provided myself with a sum of money, together with a few jewels\r\nwhich had belonged to my mother, and departed.\r\n\r\nAnd now my wanderings began which are to cease but with life. I have\r\ntraversed a vast portion of the earth and have endured all the hardships\r\nwhich travellers in deserts and barbarous countries are wont to meet. How I\r\nhave lived I hardly know; many times have I stretched my failing limbs upon\r\nthe sandy plain and prayed for death. But revenge kept me alive; I dared\r\nnot die and leave my adversary in being.\r\n\r\nWhen I quitted Geneva my first labour was to gain some clue by which I\r\nmight trace the steps of my fiendish enemy. But my plan was unsettled,\r\nand I wandered many hours round the confines of the town, uncertain\r\nwhat path I should pursue. As night approached I found myself at the\r\nentrance of the cemetery where William, Elizabeth, and my father\r\nreposed. I entered it and approached the tomb which marked their\r\ngraves. Everything was silent except the leaves of the trees, which\r\nwere gently agitated by the wind; the night was nearly dark, and the\r\nscene would have been solemn and affecting even to an uninterested\r\nobserver. The spirits of the departed seemed to flit around and to\r\ncast a shadow, which was felt but not seen, around the head of the\r\nmourner.\r\n\r\nThe deep grief which this scene had at first excited quickly gave way to\r\nrage and despair. They were dead, and I lived; their murderer also lived,\r\nand to destroy him I must drag out my weary existence. I knelt on the grass\r\nand kissed the earth and with quivering lips exclaimed, “By the\r\nsacred earth on which I kneel, by the shades that wander near me, by the\r\ndeep and eternal grief that I feel, I swear; and by thee, O Night, and the\r\nspirits that preside over thee, to pursue the dæmon who caused this misery,\r\nuntil he or I shall perish in mortal conflict. For this purpose I will\r\npreserve my life; to execute this dear revenge will I again behold the sun\r\nand tread the green herbage of earth, which otherwise should vanish from my\r\neyes for ever. And I call on you, spirits of the dead, and on you, wandering\r\nministers of vengeance, to aid and conduct me in my work. Let the cursed\r\nand hellish monster drink deep of agony; let him feel the despair that now\r\ntorments me.”\r\n\r\nI had begun my adjuration with solemnity and an awe which almost assured me\r\nthat the shades of my murdered friends heard and approved my devotion, but\r\nthe furies possessed me as I concluded, and rage choked my utterance.\r\n\r\nI was answered through the stillness of night by a loud and fiendish\r\nlaugh. It rang on my ears long and heavily; the mountains re-echoed\r\nit, and I felt as if all hell surrounded me with mockery and laughter.\r\nSurely in that moment I should have been possessed by frenzy and have\r\ndestroyed my miserable existence but that my vow was heard and that I\r\nwas reserved for vengeance. The laughter died away, when a well-known\r\nand abhorred voice, apparently close to my ear, addressed me in an\r\naudible whisper, “I am satisfied, miserable wretch! You have\r\ndetermined to live, and I am satisfied.”\r\n\r\nI darted towards the spot from which the sound proceeded, but the devil\r\neluded my grasp. Suddenly the broad disk of the moon arose and shone\r\nfull upon his ghastly and distorted shape as he fled with more than\r\nmortal speed.\r\n\r\nI pursued him, and for many months this has been my task. Guided by a\r\nslight clue, I followed the windings of the Rhone, but vainly. The\r\nblue Mediterranean appeared, and by a strange chance, I saw the fiend\r\nenter by night and hide himself in a vessel bound for the Black Sea. I\r\ntook my passage in the same ship, but he escaped, I know not how.\r\n\r\nAmidst the wilds of Tartary and Russia, although he still evaded me, I\r\nhave ever followed in his track. Sometimes the peasants, scared by\r\nthis horrid apparition, informed me of his path; sometimes he himself,\r\nwho feared that if I lost all trace of him I should despair and die,\r\nleft some mark to guide me. The snows descended on my head, and I saw\r\nthe print of his huge step on the white plain. To you first entering\r\non life, to whom care is new and agony unknown, how can you understand\r\nwhat I have felt and still feel? Cold, want, and fatigue were the\r\nleast pains which I was destined to endure; I was cursed by some devil\r\nand carried about with me my eternal hell; yet still a spirit of good\r\nfollowed and directed my steps and when I most murmured would suddenly\r\nextricate me from seemingly insurmountable difficulties. Sometimes,\r\nwhen nature, overcome by hunger, sank under the exhaustion, a repast\r\nwas prepared for me in the desert that restored and inspirited me. The\r\nfare was, indeed, coarse, such as the peasants of the country ate, but\r\nI will not doubt that it was set there by the spirits that I had\r\ninvoked to aid me. Often, when all was dry, the heavens cloudless, and\r\nI was parched by thirst, a slight cloud would bedim the sky, shed the\r\nfew drops that revived me, and vanish.\r\n\r\nI followed, when I could, the courses of the rivers; but the dæmon\r\ngenerally avoided these, as it was here that the population of the\r\ncountry chiefly collected. In other places human beings were seldom\r\nseen, and I generally subsisted on the wild animals that crossed my\r\npath. I had money with me and gained the friendship of the villagers\r\nby distributing it; or I brought with me some food that I had killed,\r\nwhich, after taking a small part, I always presented to those who had\r\nprovided me with fire and utensils for cooking.\r\n\r\nMy life, as it passed thus, was indeed hateful to me, and it was during\r\nsleep alone that I could taste joy. O blessed sleep! Often, when most\r\nmiserable, I sank to repose, and my dreams lulled me even to rapture. The\r\nspirits that guarded me had provided these moments, or rather hours, of\r\nhappiness that I might retain strength to fulfil my pilgrimage. Deprived of\r\nthis respite, I should have sunk under my hardships. During the day I was\r\nsustained and inspirited by the hope of night, for in sleep I saw my\r\nfriends, my wife, and my beloved country; again I saw the benevolent\r\ncountenance of my father, heard the silver tones of my Elizabeth’s\r\nvoice, and beheld Clerval enjoying health and youth. Often, when wearied by\r\na toilsome march, I persuaded myself that I was dreaming until night should\r\ncome and that I should then enjoy reality in the arms of my dearest\r\nfriends. What agonising fondness did I feel for them! How did I cling to\r\ntheir dear forms, as sometimes they haunted even my waking hours, and\r\npersuade myself that they still lived! At such moments vengeance, that\r\nburned within me, died in my heart, and I pursued my path towards the\r\ndestruction of the dæmon more as a task enjoined by heaven, as the\r\nmechanical impulse of some power of which I was unconscious, than as the\r\nardent desire of my soul.\r\n\r\nWhat his feelings were whom I pursued I cannot know. Sometimes, indeed, he\r\nleft marks in writing on the barks of the trees or cut in stone that guided\r\nme and instigated my fury. “My reign is not yet\r\nover”—these words were legible in one of these\r\ninscriptions—“you live, and my power is complete. Follow me; I\r\nseek the everlasting ices of the north, where you will feel the misery of\r\ncold and frost, to which I am impassive. You will find near this place, if\r\nyou follow not too tardily, a dead hare; eat and be refreshed. Come on, my\r\nenemy; we have yet to wrestle for our lives, but many hard and miserable\r\nhours must you endure until that period shall arrive.”\r\n\r\nScoffing devil! Again do I vow vengeance; again do I devote thee,\r\nmiserable fiend, to torture and death. Never will I give up my search\r\nuntil he or I perish; and then with what ecstasy shall I join my\r\nElizabeth and my departed friends, who even now prepare for me the\r\nreward of my tedious toil and horrible pilgrimage!\r\n\r\nAs I still pursued my journey to the northward, the snows thickened and the\r\ncold increased in a degree almost too severe to support. The peasants were\r\nshut up in their hovels, and only a few of the most hardy ventured forth to\r\nseize the animals whom starvation had forced from their hiding-places to\r\nseek for prey. The rivers were covered with ice, and no fish could be\r\nprocured; and thus I was cut off from my chief article of maintenance.\r\n\r\nThe triumph of my enemy increased with the difficulty of my labours. One\r\ninscription that he left was in these words: “Prepare! Your toils\r\nonly begin; wrap yourself in furs and provide food, for we shall soon enter\r\nupon a journey where your sufferings will satisfy my everlasting\r\nhatred.”\r\n\r\nMy courage and perseverance were invigorated by these scoffing words; I\r\nresolved not to fail in my purpose, and calling on Heaven to support\r\nme, I continued with unabated fervour to traverse immense deserts,\r\nuntil the ocean appeared at a distance and formed the utmost boundary\r\nof the horizon. Oh! How unlike it was to the blue seasons of the\r\nsouth! Covered with ice, it was only to be distinguished from land by\r\nits superior wildness and ruggedness. The Greeks wept for joy when\r\nthey beheld the Mediterranean from the hills of Asia, and hailed with\r\nrapture the boundary of their toils. I did not weep, but I knelt down\r\nand with a full heart thanked my guiding spirit for conducting me in\r\nsafety to the place where I hoped, notwithstanding my adversary’s gibe,\r\nto meet and grapple with him.\r\n\r\nSome weeks before this period I had procured a sledge and dogs and thus\r\ntraversed the snows with inconceivable speed. I know not whether the\r\nfiend possessed the same advantages, but I found that, as before I had\r\ndaily lost ground in the pursuit, I now gained on him, so much so that\r\nwhen I first saw the ocean he was but one day’s journey in advance, and\r\nI hoped to intercept him before he should reach the beach. With new\r\ncourage, therefore, I pressed on, and in two days arrived at a wretched\r\nhamlet on the seashore. I inquired of the inhabitants concerning the\r\nfiend and gained accurate information. A gigantic monster, they said,\r\nhad arrived the night before, armed with a gun and many pistols,\r\nputting to flight the inhabitants of a solitary cottage through fear of\r\nhis terrific appearance. He had carried off their store of winter\r\nfood, and placing it in a sledge, to draw which he had seized on a\r\nnumerous drove of trained dogs, he had harnessed them, and the same\r\nnight, to the joy of the horror-struck villagers, had pursued his\r\njourney across the sea in a direction that led to no land; and they\r\nconjectured that he must speedily be destroyed by the breaking of the\r\nice or frozen by the eternal frosts.\r\n\r\nOn hearing this information I suffered a temporary access of despair.\r\nHe had escaped me, and I must commence a destructive and almost endless\r\njourney across the mountainous ices of the ocean, amidst cold that few\r\nof the inhabitants could long endure and which I, the native of a\r\ngenial and sunny climate, could not hope to survive. Yet at the idea\r\nthat the fiend should live and be triumphant, my rage and vengeance\r\nreturned, and like a mighty tide, overwhelmed every other feeling.\r\nAfter a slight repose, during which the spirits of the dead hovered\r\nround and instigated me to toil and revenge, I prepared for my journey.\r\n\r\nI exchanged my land-sledge for one fashioned for the inequalities of\r\nthe Frozen Ocean, and purchasing a plentiful stock of provisions, I\r\ndeparted from land.\r\n\r\nI cannot guess how many days have passed since then, but I have endured\r\nmisery which nothing but the eternal sentiment of a just retribution\r\nburning within my heart could have enabled me to support. Immense and\r\nrugged mountains of ice often barred up my passage, and I often heard\r\nthe thunder of the ground sea, which threatened my destruction. But\r\nagain the frost came and made the paths of the sea secure.\r\n\r\nBy the quantity of provision which I had consumed, I should guess that\r\nI had passed three weeks in this journey; and the continual protraction\r\nof hope, returning back upon the heart, often wrung bitter drops of\r\ndespondency and grief from my eyes. Despair had indeed almost secured\r\nher prey, and I should soon have sunk beneath this misery. Once, after\r\nthe poor animals that conveyed me had with incredible toil gained the\r\nsummit of a sloping ice mountain, and one, sinking under his fatigue,\r\ndied, I viewed the expanse before me with anguish, when suddenly my eye\r\ncaught a dark speck upon the dusky plain. I strained my sight to\r\ndiscover what it could be and uttered a wild cry of ecstasy when I\r\ndistinguished a sledge and the distorted proportions of a well-known\r\nform within. Oh! With what a burning gush did hope revisit my heart!\r\nWarm tears filled my eyes, which I hastily wiped away, that they might\r\nnot intercept the view I had of the dæmon; but still my sight was\r\ndimmed by the burning drops, until, giving way to the emotions that\r\noppressed me, I wept aloud.\r\n\r\nBut this was not the time for delay; I disencumbered the dogs of their\r\ndead companion, gave them a plentiful portion of food, and after an\r\nhour’s rest, which was absolutely necessary, and yet which was bitterly\r\nirksome to me, I continued my route. The sledge was still visible, nor\r\ndid I again lose sight of it except at the moments when for a short\r\ntime some ice-rock concealed it with its intervening crags. I indeed\r\nperceptibly gained on it, and when, after nearly two days’ journey, I\r\nbeheld my enemy at no more than a mile distant, my heart bounded within\r\nme.\r\n\r\nBut now, when I appeared almost within grasp of my foe, my hopes were\r\nsuddenly extinguished, and I lost all trace of him more utterly than I had\r\never done before. A ground sea was heard; the thunder of its progress, as\r\nthe waters rolled and swelled beneath me, became every moment more ominous\r\nand terrific. I pressed on, but in vain. The wind arose; the sea roared;\r\nand, as with the mighty shock of an earthquake, it split and cracked with a\r\ntremendous and overwhelming sound. The work was soon finished; in a few\r\nminutes a tumultuous sea rolled between me and my enemy, and I was left\r\ndrifting on a scattered piece of ice that was continually lessening and\r\nthus preparing for me a hideous death.\r\n\r\nIn this manner many appalling hours passed; several of my dogs died, and I\r\nmyself was about to sink under the accumulation of distress when I saw your\r\nvessel riding at anchor and holding forth to me hopes of succour and life.\r\nI had no conception that vessels ever came so far north and was astounded\r\nat the sight. I quickly destroyed part of my sledge to construct oars, and\r\nby these means was enabled, with infinite fatigue, to move my ice raft in\r\nthe direction of your ship. I had determined, if you were going southwards,\r\nstill to trust myself to the mercy of the seas rather than abandon my\r\npurpose. I hoped to induce you to grant me a boat with which I could pursue\r\nmy enemy. But your direction was northwards. You took me on board when my\r\nvigour was exhausted, and I should soon have sunk under my multiplied\r\nhardships into a death which I still dread, for my task is unfulfilled.\r\n\r\nOh! When will my guiding spirit, in conducting me to the dæmon, allow\r\nme the rest I so much desire; or must I die, and he yet live? If I do,\r\nswear to me, Walton, that he shall not escape, that you will seek him\r\nand satisfy my vengeance in his death. And do I dare to ask of you to\r\nundertake my pilgrimage, to endure the hardships that I have undergone?\r\nNo; I am not so selfish. Yet, when I am dead, if he should appear, if\r\nthe ministers of vengeance should conduct him to you, swear that he\r\nshall not live—swear that he shall not triumph over my accumulated\r\nwoes and survive to add to the list of his dark crimes. He is eloquent\r\nand persuasive, and once his words had even power over my heart; but\r\ntrust him not. His soul is as hellish as his form, full of treachery\r\nand fiend-like malice. Hear him not; call on the names of William,\r\nJustine, Clerval, Elizabeth, my father, and of the wretched Victor, and\r\nthrust your sword into his heart. I will hover near and direct the\r\nsteel aright.\r\n\r\nWalton, _in continuation._\r\n\r\n\r\nAugust 26th, 17—.\r\n\r\n\r\nYou have read this strange and terrific story, Margaret; and do you not\r\nfeel your blood congeal with horror, like that which even now curdles\r\nmine? Sometimes, seized with sudden agony, he could not continue his\r\ntale; at others, his voice broken, yet piercing, uttered with\r\ndifficulty the words so replete with anguish. His fine and lovely eyes\r\nwere now lighted up with indignation, now subdued to downcast sorrow\r\nand quenched in infinite wretchedness. Sometimes he commanded his\r\ncountenance and tones and related the most horrible incidents with a\r\ntranquil voice, suppressing every mark of agitation; then, like a\r\nvolcano bursting forth, his face would suddenly change to an expression\r\nof the wildest rage as he shrieked out imprecations on his persecutor.\r\n\r\nHis tale is connected and told with an appearance of the simplest truth,\r\nyet I own to you that the letters of Felix and Safie, which he showed me,\r\nand the apparition of the monster seen from our ship, brought to me a\r\ngreater conviction of the truth of his narrative than his asseverations,\r\nhowever earnest and connected. Such a monster has, then, really existence!\r\nI cannot doubt it, yet I am lost in surprise and admiration. Sometimes I\r\nendeavoured to gain from Frankenstein the particulars of his\r\ncreature’s formation, but on this point he was impenetrable.\r\n\r\n“Are you mad, my friend?” said he. “Or whither does your\r\nsenseless curiosity lead you? Would you also create for yourself and the\r\nworld a demoniacal enemy? Peace, peace! Learn my miseries and do not seek\r\nto increase your own.”\r\n\r\nFrankenstein discovered that I made notes concerning his history; he asked\r\nto see them and then himself corrected and augmented them in many places,\r\nbut principally in giving the life and spirit to the conversations he held\r\nwith his enemy. “Since you have preserved my narration,” said\r\nhe, “I would not that a mutilated one should go down to\r\nposterity.”\r\n\r\nThus has a week passed away, while I have listened to the strangest\r\ntale that ever imagination formed. My thoughts and every feeling of my\r\nsoul have been drunk up by the interest for my guest which this tale\r\nand his own elevated and gentle manners have created. I wish to soothe\r\nhim, yet can I counsel one so infinitely miserable, so destitute of\r\nevery hope of consolation, to live? Oh, no! The only joy that he can\r\nnow know will be when he composes his shattered spirit to peace and\r\ndeath. Yet he enjoys one comfort, the offspring of solitude and\r\ndelirium; he believes that when in dreams he holds converse with his\r\nfriends and derives from that communion consolation for his miseries or\r\nexcitements to his vengeance, that they are not the creations of his\r\nfancy, but the beings themselves who visit him from the regions of a\r\nremote world. This faith gives a solemnity to his reveries that render\r\nthem to me almost as imposing and interesting as truth.\r\n\r\nOur conversations are not always confined to his own history and\r\nmisfortunes. On every point of general literature he displays\r\nunbounded knowledge and a quick and piercing apprehension. His\r\neloquence is forcible and touching; nor can I hear him, when he relates\r\na pathetic incident or endeavours to move the passions of pity or love,\r\nwithout tears. What a glorious creature must he have been in the days\r\nof his prosperity, when he is thus noble and godlike in ruin! He seems\r\nto feel his own worth and the greatness of his fall.\r\n\r\n“When younger,” said he, “I believed myself destined for\r\nsome great enterprise. My feelings are profound, but I possessed a coolness\r\nof judgment that fitted me for illustrious achievements. This sentiment of\r\nthe worth of my nature supported me when others would have been oppressed,\r\nfor I deemed it criminal to throw away in useless grief those talents that\r\nmight be useful to my fellow creatures. When I reflected on the work I had\r\ncompleted, no less a one than the creation of a sensitive and rational\r\nanimal, I could not rank myself with the herd of common projectors. But\r\nthis thought, which supported me in the commencement of my career, now\r\nserves only to plunge me lower in the dust. All my speculations and hopes\r\nare as nothing, and like the archangel who aspired to omnipotence, I am\r\nchained in an eternal hell. My imagination was vivid, yet my powers of\r\nanalysis and application were intense; by the union of these qualities I\r\nconceived the idea and executed the creation of a man. Even now I cannot\r\nrecollect without passion my reveries while the work was incomplete. I trod\r\nheaven in my thoughts, now exulting in my powers, now burning with the idea\r\nof their effects. From my infancy I was imbued with high hopes and a lofty\r\nambition; but how am I sunk! Oh! My friend, if you had known me as I once\r\nwas, you would not recognise me in this state of degradation. Despondency\r\nrarely visited my heart; a high destiny seemed to bear me on, until I fell,\r\nnever, never again to rise.”\r\n\r\nMust I then lose this admirable being? I have longed for a friend; I have\r\nsought one who would sympathise with and love me. Behold, on these desert\r\nseas I have found such a one, but I fear I have gained him only to know his\r\nvalue and lose him. I would reconcile him to life, but he repulses the idea.\r\n\r\n“I thank you, Walton,” he said, “for your kind intentions towards so\r\nmiserable a wretch; but when you speak of new ties and fresh\r\naffections, think you that any can replace those who are gone? Can any\r\nman be to me as Clerval was, or any woman another Elizabeth? Even\r\nwhere the affections are not strongly moved by any superior excellence,\r\nthe companions of our childhood always possess a certain power over our\r\nminds which hardly any later friend can obtain. They know our\r\ninfantine dispositions, which, however they may be afterwards modified,\r\nare never eradicated; and they can judge of our actions with more\r\ncertain conclusions as to the integrity of our motives. A sister or a\r\nbrother can never, unless indeed such symptoms have been shown early,\r\nsuspect the other of fraud or false dealing, when another friend,\r\nhowever strongly he may be attached, may, in spite of himself, be\r\ncontemplated with suspicion. But I enjoyed friends, dear not only\r\nthrough habit and association, but from their own merits; and wherever\r\nI am, the soothing voice of my Elizabeth and the conversation of\r\nClerval will be ever whispered in my ear. They are dead, and but one\r\nfeeling in such a solitude can persuade me to preserve my life. If I\r\nwere engaged in any high undertaking or design, fraught with extensive\r\nutility to my fellow creatures, then could I live to fulfil it. But\r\nsuch is not my destiny; I must pursue and destroy the being to whom I\r\ngave existence; then my lot on earth will be fulfilled and I may die.”\r\n\r\nMy beloved Sister,\r\n\r\nSeptember 2d.\r\n\r\n\r\nI write to you, encompassed by peril and ignorant whether I am ever\r\ndoomed to see again dear England and the dearer friends that inhabit\r\nit. I am surrounded by mountains of ice which admit of no escape and\r\nthreaten every moment to crush my vessel. The brave fellows whom I\r\nhave persuaded to be my companions look towards me for aid, but I have\r\nnone to bestow. There is something terribly appalling in our\r\nsituation, yet my courage and hopes do not desert me. Yet it is\r\nterrible to reflect that the lives of all these men are endangered\r\nthrough me. If we are lost, my mad schemes are the cause.\r\n\r\nAnd what, Margaret, will be the state of your mind? You will not hear of my\r\ndestruction, and you will anxiously await my return. Years will pass, and\r\nyou will have visitings of despair and yet be tortured by hope. Oh! My\r\nbeloved sister, the sickening failing of your heart-felt expectations is,\r\nin prospect, more terrible to me than my own death. But you have a husband\r\nand lovely children; you may be happy. Heaven bless you and make you so!\r\n\r\nMy unfortunate guest regards me with the tenderest compassion. He\r\nendeavours to fill me with hope and talks as if life were a possession\r\nwhich he valued. He reminds me how often the same accidents have\r\nhappened to other navigators who have attempted this sea, and in spite\r\nof myself, he fills me with cheerful auguries. Even the sailors feel\r\nthe power of his eloquence; when he speaks, they no longer despair; he\r\nrouses their energies, and while they hear his voice they believe these\r\nvast mountains of ice are mole-hills which will vanish before the\r\nresolutions of man. These feelings are transitory; each day of\r\nexpectation delayed fills them with fear, and I almost dread a mutiny\r\ncaused by this despair.\r\n\r\nSeptember 5th.\r\n\r\n\r\nA scene has just passed of such uncommon interest that, although it is\r\nhighly probable that these papers may never reach you, yet I cannot\r\nforbear recording it.\r\n\r\nWe are still surrounded by mountains of ice, still in imminent danger\r\nof being crushed in their conflict. The cold is excessive, and many of\r\nmy unfortunate comrades have already found a grave amidst this scene of\r\ndesolation. Frankenstein has daily declined in health; a feverish fire\r\nstill glimmers in his eyes, but he is exhausted, and when suddenly\r\nroused to any exertion, he speedily sinks again into apparent\r\nlifelessness.\r\n\r\nI mentioned in my last letter the fears I entertained of a mutiny.\r\nThis morning, as I sat watching the wan countenance of my friend—his\r\neyes half closed and his limbs hanging listlessly—I was roused by half\r\na dozen of the sailors, who demanded admission into the cabin. They\r\nentered, and their leader addressed me. He told me that he and his\r\ncompanions had been chosen by the other sailors to come in deputation\r\nto me to make me a requisition which, in justice, I could not refuse.\r\nWe were immured in ice and should probably never escape, but they\r\nfeared that if, as was possible, the ice should dissipate and a free\r\npassage be opened, I should be rash enough to continue my voyage and\r\nlead them into fresh dangers, after they might happily have surmounted\r\nthis. They insisted, therefore, that I should engage with a solemn\r\npromise that if the vessel should be freed I would instantly direct my\r\ncourse southwards.\r\n\r\nThis speech troubled me. I had not despaired, nor had I yet conceived\r\nthe idea of returning if set free. Yet could I, in justice, or even in\r\npossibility, refuse this demand? I hesitated before I answered, when\r\nFrankenstein, who had at first been silent, and indeed appeared hardly\r\nto have force enough to attend, now roused himself; his eyes sparkled,\r\nand his cheeks flushed with momentary vigour. Turning towards the men,\r\nhe said,\r\n\r\n“What do you mean? What do you demand of your captain? Are you, then,\r\nso easily turned from your design? Did you not call this a glorious\r\nexpedition? “And wherefore was it glorious? Not because the way was\r\nsmooth and placid as a southern sea, but because it was full of dangers and\r\nterror, because at every new incident your fortitude was to be called forth\r\nand your courage exhibited, because danger and death surrounded it, and\r\nthese you were to brave and overcome. For this was it a glorious, for this\r\nwas it an honourable undertaking. You were hereafter to be hailed as the\r\nbenefactors of your species, your names adored as belonging to brave men\r\nwho encountered death for honour and the benefit of mankind. And now,\r\nbehold, with the first imagination of danger, or, if you will, the first\r\nmighty and terrific trial of your courage, you shrink away and are content\r\nto be handed down as men who had not strength enough to endure cold and\r\nperil; and so, poor souls, they were chilly and returned to their warm\r\nfiresides. Why, that requires not this preparation; ye need not have come\r\nthus far and dragged your captain to the shame of a defeat merely to prove\r\nyourselves cowards. Oh! Be men, or be more than men. Be steady to your\r\npurposes and firm as a rock. This ice is not made of such stuff as your\r\nhearts may be; it is mutable and cannot withstand you if you say that it\r\nshall not. Do not return to your families with the stigma of disgrace\r\nmarked on your brows. Return as heroes who have fought and conquered and\r\nwho know not what it is to turn their backs on the foe.”\r\n\r\nHe spoke this with a voice so modulated to the different feelings expressed\r\nin his speech, with an eye so full of lofty design and heroism, that can\r\nyou wonder that these men were moved? They looked at one another and were\r\nunable to reply. I spoke; I told them to retire and consider of what had\r\nbeen said, that I would not lead them farther north if they strenuously\r\ndesired the contrary, but that I hoped that, with reflection, their courage\r\nwould return.\r\n\r\nThey retired and I turned towards my friend, but he was sunk in languor and\r\nalmost deprived of life.\r\n\r\nHow all this will terminate, I know not, but I had rather die than\r\nreturn shamefully, my purpose unfulfilled. Yet I fear such will be my\r\nfate; the men, unsupported by ideas of glory and honour, can never\r\nwillingly continue to endure their present hardships.\r\n\r\nSeptember 7th.\r\n\r\n\r\nThe die is cast; I have consented to return if we are not destroyed.\r\nThus are my hopes blasted by cowardice and indecision; I come back\r\nignorant and disappointed. It requires more philosophy than I possess\r\nto bear this injustice with patience.\r\n\r\nSeptember 12th.\r\n\r\n\r\nIt is past; I am returning to England. I have lost my hopes of utility\r\nand glory; I have lost my friend. But I will endeavour to detail these\r\nbitter circumstances to you, my dear sister; and while I am wafted\r\ntowards England and towards you, I will not despond.\r\n\r\nSeptember 9th, the ice began to move, and roarings like thunder were heard\r\nat a distance as the islands split and cracked in every direction. We were\r\nin the most imminent peril, but as we could only remain passive, my chief\r\nattention was occupied by my unfortunate guest whose illness increased in\r\nsuch a degree that he was entirely confined to his bed. The ice cracked\r\nbehind us and was driven with force towards the north; a breeze sprang from\r\nthe west, and on the 11th the passage towards the south became perfectly\r\nfree. When the sailors saw this and that their return to their native\r\ncountry was apparently assured, a shout of tumultuous joy broke from them,\r\nloud and long-continued. Frankenstein, who was dozing, awoke and asked the\r\ncause of the tumult. “They shout,” I said, “because they\r\nwill soon return to England.”\r\n\r\n“Do you, then, really return?”\r\n\r\n“Alas! Yes; I cannot withstand their demands. I cannot lead them\r\nunwillingly to danger, and I must return.”\r\n\r\n“Do so, if you will; but I will not. You may give up your purpose, but\r\nmine is assigned to me by Heaven, and I dare not. I am weak, but\r\nsurely the spirits who assist my vengeance will endow me with\r\nsufficient strength.” Saying this, he endeavoured to spring from the\r\nbed, but the exertion was too great for him; he fell back and fainted.\r\n\r\nIt was long before he was restored, and I often thought that life was\r\nentirely extinct. At length he opened his eyes; he breathed with\r\ndifficulty and was unable to speak. The surgeon gave him a composing\r\ndraught and ordered us to leave him undisturbed. In the meantime he\r\ntold me that my friend had certainly not many hours to live.\r\n\r\nHis sentence was pronounced, and I could only grieve and be patient. I sat\r\nby his bed, watching him; his eyes were closed, and I thought he slept; but\r\npresently he called to me in a feeble voice, and bidding me come near,\r\nsaid, “Alas! The strength I relied on is gone; I feel that I shall\r\nsoon die, and he, my enemy and persecutor, may still be in being. Think\r\nnot, Walton, that in the last moments of my existence I feel that burning\r\nhatred and ardent desire of revenge I once expressed; but I feel myself\r\njustified in desiring the death of my adversary. During these last days I\r\nhave been occupied in examining my past conduct; nor do I find it blamable.\r\nIn a fit of enthusiastic madness I created a rational creature and was\r\nbound towards him to assure, as far as was in my power, his happiness and\r\nwell-being. This was my duty, but there was another still paramount to\r\nthat. My duties towards the beings of my own species had greater claims to\r\nmy attention because they included a greater proportion of happiness or\r\nmisery. Urged by this view, I refused, and I did right in refusing, to\r\ncreate a companion for the first creature. He showed unparalleled malignity\r\nand selfishness in evil; he destroyed my friends; he devoted to destruction\r\nbeings who possessed exquisite sensations, happiness, and wisdom; nor do I\r\nknow where this thirst for vengeance may end. Miserable himself that he may\r\nrender no other wretched, he ought to die. The task of his destruction was\r\nmine, but I have failed. When actuated by selfish and vicious motives, I\r\nasked you to undertake my unfinished work, and I renew this request now,\r\nwhen I am only induced by reason and virtue.\r\n\r\n“Yet I cannot ask you to renounce your country and friends to fulfil\r\nthis task; and now that you are returning to England, you will have\r\nlittle chance of meeting with him. But the consideration of these\r\npoints, and the well balancing of what you may esteem your duties, I\r\nleave to you; my judgment and ideas are already disturbed by the near\r\napproach of death. I dare not ask you to do what I think right, for I\r\nmay still be misled by passion.\r\n\r\n“That he should live to be an instrument of mischief disturbs me; in\r\nother respects, this hour, when I momentarily expect my release, is the\r\nonly happy one which I have enjoyed for several years. The forms of\r\nthe beloved dead flit before me, and I hasten to their arms. Farewell,\r\nWalton! Seek happiness in tranquillity and avoid ambition, even if it\r\nbe only the apparently innocent one of distinguishing yourself in\r\nscience and discoveries. Yet why do I say this? I have myself been\r\nblasted in these hopes, yet another may succeed.”\r\n\r\nHis voice became fainter as he spoke, and at length, exhausted by his\r\neffort, he sank into silence. About half an hour afterwards he\r\nattempted again to speak but was unable; he pressed my hand feebly, and\r\nhis eyes closed for ever, while the irradiation of a gentle smile passed\r\naway from his lips.\r\n\r\nMargaret, what comment can I make on the untimely extinction of this\r\nglorious spirit? What can I say that will enable you to understand the\r\ndepth of my sorrow? All that I should express would be inadequate and\r\nfeeble. My tears flow; my mind is overshadowed by a cloud of\r\ndisappointment. But I journey towards England, and I may there find\r\nconsolation.\r\n\r\nI am interrupted. What do these sounds portend? It is midnight; the\r\nbreeze blows fairly, and the watch on deck scarcely stir. Again there\r\nis a sound as of a human voice, but hoarser; it comes from the cabin\r\nwhere the remains of Frankenstein still lie. I must arise and examine.\r\nGood night, my sister.\r\n\r\nGreat God! what a scene has just taken place! I am yet dizzy with the\r\nremembrance of it. I hardly know whether I shall have the power to detail\r\nit; yet the tale which I have recorded would be incomplete without this\r\nfinal and wonderful catastrophe.\r\n\r\nI entered the cabin where lay the remains of my ill-fated and admirable\r\nfriend. Over him hung a form which I cannot find words to\r\ndescribe—gigantic in stature, yet uncouth and distorted in its\r\nproportions. As he hung over the coffin, his face was concealed by long\r\nlocks of ragged hair; but one vast hand was extended, in colour and\r\napparent texture like that of a mummy. When he heard the sound of my\r\napproach, he ceased to utter exclamations of grief and horror and sprung\r\ntowards the window. Never did I behold a vision so horrible as his face, of\r\nsuch loathsome yet appalling hideousness. I shut my eyes involuntarily and\r\nendeavoured to recollect what were my duties with regard to this destroyer.\r\nI called on him to stay.\r\n\r\nHe paused, looking on me with wonder, and again turning towards the\r\nlifeless form of his creator, he seemed to forget my presence, and\r\nevery feature and gesture seemed instigated by the wildest rage of some\r\nuncontrollable passion.\r\n\r\n“That is also my victim!” he exclaimed. “In his murder my\r\ncrimes are consummated; the miserable series of my being is wound to its\r\nclose! Oh, Frankenstein! Generous and self-devoted being! What does it\r\navail that I now ask thee to pardon me? I, who irretrievably destroyed thee\r\nby destroying all thou lovedst. Alas! He is cold, he cannot answer\r\nme.”\r\n\r\nHis voice seemed suffocated, and my first impulses, which had suggested to\r\nme the duty of obeying the dying request of my friend in destroying his\r\nenemy, were now suspended by a mixture of curiosity and compassion. I\r\napproached this tremendous being; I dared not again raise my eyes to his\r\nface, there was something so scaring and unearthly in his ugliness. I\r\nattempted to speak, but the words died away on my lips. The monster\r\ncontinued to utter wild and incoherent self-reproaches. At length I\r\ngathered resolution to address him in a pause of the tempest of his passion.\r\n\r\n“Your repentance,” I said, “is now superfluous. If you\r\nhad listened to the voice of conscience and heeded the stings of remorse\r\nbefore you had urged your diabolical vengeance to this extremity,\r\nFrankenstein would yet have lived.”\r\n\r\n“And do you dream?” said the dæmon. “Do you think that I was then\r\ndead to agony and remorse? He,” he continued, pointing to the corpse,\r\n“he suffered not in the consummation of the deed. Oh! Not the\r\nten-thousandth portion of the anguish that was mine during the\r\nlingering detail of its execution. A frightful selfishness hurried me\r\non, while my heart was poisoned with remorse. Think you that the\r\ngroans of Clerval were music to my ears? My heart was fashioned to be\r\nsusceptible of love and sympathy, and when wrenched by misery to vice\r\nand hatred, it did not endure the violence of the change without\r\ntorture such as you cannot even imagine.\r\n\r\n“After the murder of Clerval I returned to Switzerland, heart-broken\r\nand overcome. I pitied Frankenstein; my pity amounted to horror; I\r\nabhorred myself. But when I discovered that he, the author at once of\r\nmy existence and of its unspeakable torments, dared to hope for\r\nhappiness, that while he accumulated wretchedness and despair upon me\r\nhe sought his own enjoyment in feelings and passions from the\r\nindulgence of which I was for ever barred, then impotent envy and bitter\r\nindignation filled me with an insatiable thirst for vengeance. I\r\nrecollected my threat and resolved that it should be accomplished. I\r\nknew that I was preparing for myself a deadly torture, but I was the\r\nslave, not the master, of an impulse which I detested yet could not\r\ndisobey. Yet when she died! Nay, then I was not miserable. I had\r\ncast off all feeling, subdued all anguish, to riot in the excess of my\r\ndespair. Evil thenceforth became my good. Urged thus far, I had no\r\nchoice but to adapt my nature to an element which I had willingly\r\nchosen. The completion of my demoniacal design became an insatiable\r\npassion. And now it is ended; there is my last victim!”\r\n\r\nI was at first touched by the expressions of his misery; yet, when I called\r\nto mind what Frankenstein had said of his powers of eloquence and\r\npersuasion, and when I again cast my eyes on the lifeless form of my\r\nfriend, indignation was rekindled within me. “Wretch!” I said.\r\n“It is well that you come here to whine over the desolation that you\r\nhave made. You throw a torch into a pile of buildings, and when they are\r\nconsumed, you sit among the ruins and lament the fall. Hypocritical fiend!\r\nIf he whom you mourn still lived, still would he be the object, again would\r\nhe become the prey, of your accursed vengeance. It is not pity that you\r\nfeel; you lament only because the victim of your malignity is withdrawn\r\nfrom your power.”\r\n\r\n“Oh, it is not thus—not thus,” interrupted the being.\r\n“Yet such must be the impression conveyed to you by what appears to\r\nbe the purport of my actions. Yet I seek not a fellow feeling in my misery.\r\nNo sympathy may I ever find. When I first sought it, it was the love of\r\nvirtue, the feelings of happiness and affection with which my whole being\r\noverflowed, that I wished to be participated. But now that virtue has\r\nbecome to me a shadow, and that happiness and affection are turned into\r\nbitter and loathing despair, in what should I seek for sympathy? I am\r\ncontent to suffer alone while my sufferings shall endure; when I die, I am\r\nwell satisfied that abhorrence and opprobrium should load my memory. Once\r\nmy fancy was soothed with dreams of virtue, of fame, and of enjoyment. Once\r\nI falsely hoped to meet with beings who, pardoning my outward form, would\r\nlove me for the excellent qualities which I was capable of unfolding. I was\r\nnourished with high thoughts of honour and devotion. But now crime has\r\ndegraded me beneath the meanest animal. No guilt, no mischief, no\r\nmalignity, no misery, can be found comparable to mine. When I run over the\r\nfrightful catalogue of my sins, I cannot believe that I am the same\r\ncreature whose thoughts were once filled with sublime and transcendent\r\nvisions of the beauty and the majesty of goodness. But it is even so; the\r\nfallen angel becomes a malignant devil. Yet even that enemy of God and man\r\nhad friends and associates in his desolation; I am alone.\r\n\r\n“You, who call Frankenstein your friend, seem to have a knowledge of my\r\ncrimes and his misfortunes. But in the detail which he gave you of them\r\nhe could not sum up the hours and months of misery which I endured\r\nwasting in impotent passions. For while I destroyed his hopes, I did\r\nnot satisfy my own desires. They were for ever ardent and craving; still\r\nI desired love and fellowship, and I was still spurned. Was there no\r\ninjustice in this? Am I to be thought the only criminal, when all\r\nhumankind sinned against me? Why do you not hate Felix, who drove his\r\nfriend from his door with contumely? Why do you not execrate the rustic\r\nwho sought to destroy the saviour of his child? Nay, these are virtuous\r\nand immaculate beings! I, the miserable and the abandoned, am an\r\nabortion, to be spurned at, and kicked, and trampled on. Even now my\r\nblood boils at the recollection of this injustice.\r\n\r\n“But it is true that I am a wretch. I have murdered the lovely and\r\nthe helpless; I have strangled the innocent as they slept and grasped to\r\ndeath his throat who never injured me or any other living thing. I have\r\ndevoted my creator, the select specimen of all that is worthy of love and\r\nadmiration among men, to misery; I have pursued him even to that\r\nirremediable ruin. There he lies, white and cold in death. You hate me, but\r\nyour abhorrence cannot equal that with which I regard myself. I look on the\r\nhands which executed the deed; I think on the heart in which the\r\nimagination of it was conceived and long for the moment when these hands\r\nwill meet my eyes, when that imagination will haunt my thoughts no more.\r\n\r\n“Fear not that I shall be the instrument of future mischief. My work\r\nis nearly complete. Neither yours nor any man’s death is needed to\r\nconsummate the series of my being and accomplish that which must be done,\r\nbut it requires my own. Do not think that I shall be slow to perform this\r\nsacrifice. I shall quit your vessel on the ice raft which brought me\r\nthither and shall seek the most northern extremity of the globe; I shall\r\ncollect my funeral pile and consume to ashes this miserable frame, that its\r\nremains may afford no light to any curious and unhallowed wretch who would\r\ncreate such another as I have been. I shall die. I shall no longer feel the\r\nagonies which now consume me or be the prey of feelings unsatisfied, yet\r\nunquenched. He is dead who called me into being; and when I shall be no\r\nmore, the very remembrance of us both will speedily vanish. I shall no\r\nlonger see the sun or stars or feel the winds play on my cheeks. Light,\r\nfeeling, and sense will pass away; and in this condition must I find my\r\nhappiness. Some years ago, when the images which this world affords first\r\nopened upon me, when I felt the cheering warmth of summer and heard the\r\nrustling of the leaves and the warbling of the birds, and these were all to\r\nme, I should have wept to die; now it is my only consolation. Polluted by\r\ncrimes and torn by the bitterest remorse, where can I find rest but in\r\ndeath?\r\n\r\n“Farewell! I leave you, and in you the last of humankind whom these\r\neyes will ever behold. Farewell, Frankenstein! If thou wert yet alive\r\nand yet cherished a desire of revenge against me, it would be better\r\nsatiated in my life than in my destruction. But it was not so; thou\r\ndidst seek my extinction, that I might not cause greater wretchedness;\r\nand if yet, in some mode unknown to me, thou hadst not ceased to think\r\nand feel, thou wouldst not desire against me a vengeance greater than\r\nthat which I feel. Blasted as thou wert, my agony was still superior to\r\nthine, for the bitter sting of remorse will not cease to rankle in my\r\nwounds until death shall close them for ever.\r\n\r\n“But soon,” he cried with sad and solemn enthusiasm, “I\r\nshall die, and what I now feel be no longer felt. Soon these burning\r\nmiseries will be extinct. I shall ascend my funeral pile triumphantly and\r\nexult in the agony of the torturing flames. The light of that conflagration\r\nwill fade away; my ashes will be swept into the sea by the winds. My spirit\r\nwill sleep in peace, or if it thinks, it will not surely think thus.\r\nFarewell.”\r\n\r\nHe sprang from the cabin-window as he said this, upon the ice raft\r\nwhich lay close to the vessel. He was soon borne away by the waves and\r\nlost in darkness and distance.\r\n\r\n\r\n\r\n\r\n*** END OF THE PROJECT GUTENBERG EBOOK FRANKENSTEIN; OR, THE MODERN PROMETHEUS ***\r\n\r\n\r\n \r\n\r\nUpdated editions will replace the previous one—the old editions will\r\nbe renamed.\r\n\r\nCreating the works from print editions not protected by U.S. copyright\r\nlaw means that no one owns a United States copyright in these works,\r\nso the Foundation (and you!) can copy and distribute it in the United\r\nStates without permission and without paying copyright\r\nroyalties. Special rules, set forth in the General Terms of Use part\r\nof this license, apply to copying and distributing Project\r\nGutenberg™ electronic works to protect the PROJECT GUTENBERG™\r\nconcept and trademark. Project Gutenberg is a registered trademark,\r\nand may not be used if you charge for an eBook, except by following\r\nthe terms of the trademark license, including paying royalties for use\r\nof the Project Gutenberg trademark. If you do not charge anything for\r\ncopies of this eBook, complying with the trademark license is very\r\neasy. You may use this eBook for nearly any purpose such as creation\r\nof derivative works, reports, performances and research. Project\r\nGutenberg eBooks may be modified and printed and given away—you may\r\ndo practically ANYTHING in the United States with eBooks not protected\r\nby U.S. copyright law. Redistribution is subject to the trademark\r\nlicense, especially commercial redistribution.\r\n\r\n\r\nSTART: FULL LICENSE\r\n\r\nTHE FULL PROJECT GUTENBERG LICENSE\r\n\r\nPLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK\r\n\r\nTo protect the Project Gutenberg™ mission of promoting the free\r\ndistribution of electronic works, by using or distributing this work\r\n(or any other work associated in any way with the phrase “Project\r\nGutenberg”), you agree to comply with all the terms of the Full\r\nProject Gutenberg™ License available with this file or online at\r\nwww.gutenberg.org/license.\r\n\r\nSection 1. General Terms of Use and Redistributing Project Gutenberg™\r\nelectronic works\r\n\r\n1.A. By reading or using any part of this Project Gutenberg™\r\nelectronic work, you indicate that you have read, understand, agree to\r\nand accept all the terms of this license and intellectual property\r\n(trademark/copyright) agreement. If you do not agree to abide by all\r\nthe terms of this agreement, you must cease using and return or\r\ndestroy all copies of Project Gutenberg™ electronic works in your\r\npossession. If you paid a fee for obtaining a copy of or access to a\r\nProject Gutenberg™ electronic work and you do not agree to be bound\r\nby the terms of this agreement, you may obtain a refund from the person\r\nor entity to whom you paid the fee as set forth in paragraph 1.E.8.\r\n\r\n1.B. “Project Gutenberg” is a registered trademark. It may only be\r\nused on or associated in any way with an electronic work by people who\r\nagree to be bound by the terms of this agreement. There are a few\r\nthings that you can do with most Project Gutenberg™ electronic works\r\neven without complying with the full terms of this agreement. See\r\nparagraph 1.C below. There are a lot of things you can do with Project\r\nGutenberg™ electronic works if you follow the terms of this\r\nagreement and help preserve free future access to Project Gutenberg™\r\nelectronic works. See paragraph 1.E below.\r\n\r\n1.C. The Project Gutenberg Literary Archive Foundation (“the\r\nFoundation” or PGLAF), owns a compilation copyright in the collection\r\nof Project Gutenberg™ electronic works. Nearly all the individual\r\nworks in the collection are in the public domain in the United\r\nStates. If an individual work is unprotected by copyright law in the\r\nUnited States and you are located in the United States, we do not\r\nclaim a right to prevent you from copying, distributing, performing,\r\ndisplaying or creating derivative works based on the work as long as\r\nall references to Project Gutenberg are removed. Of course, we hope\r\nthat you will support the Project Gutenberg™ mission of promoting\r\nfree access to electronic works by freely sharing Project Gutenberg™\r\nworks in compliance with the terms of this agreement for keeping the\r\nProject Gutenberg™ name associated with the work. You can easily\r\ncomply with the terms of this agreement by keeping this work in the\r\nsame format with its attached full Project Gutenberg™ License when\r\nyou share it without charge with others.\r\n\r\n1.D. The copyright laws of the place where you are located also govern\r\nwhat you can do with this work. Copyright laws in most countries are\r\nin a constant state of change. If you are outside the United States,\r\ncheck the laws of your country in addition to the terms of this\r\nagreement before downloading, copying, displaying, performing,\r\ndistributing or creating derivative works based on this work or any\r\nother Project Gutenberg™ work. The Foundation makes no\r\nrepresentations concerning the copyright status of any work in any\r\ncountry other than the United States.\r\n\r\n1.E. Unless you have removed all references to Project Gutenberg:\r\n\r\n1.E.1. The following sentence, with active links to, or other\r\nimmediate access to, the full Project Gutenberg™ License must appear\r\nprominently whenever any copy of a Project Gutenberg™ work (any work\r\non which the phrase “Project Gutenberg” appears, or with which the\r\nphrase “Project Gutenberg” is associated) is accessed, displayed,\r\nperformed, viewed, copied or distributed:\r\n\r\n This eBook is for the use of anyone anywhere in the United States and most\r\n other parts of the world at no cost and with almost no restrictions\r\n whatsoever. You may copy it, give it away or re-use it under the terms\r\n of the Project Gutenberg License included with this eBook or online\r\n at www.gutenberg.org. If you\r\n are not located in the United States, you will have to check the laws\r\n of the country where you are located before using this eBook.\r\n \r\n1.E.2. If an individual Project Gutenberg™ electronic work is\r\nderived from texts not protected by U.S. copyright law (does not\r\ncontain a notice indicating that it is posted with permission of the\r\ncopyright holder), the work can be copied and distributed to anyone in\r\nthe United States without paying any fees or charges. If you are\r\nredistributing or providing access to a work with the phrase “Project\r\nGutenberg” associated with or appearing on the work, you must comply\r\neither with the requirements of paragraphs 1.E.1 through 1.E.7 or\r\nobtain permission for the use of the work and the Project Gutenberg™\r\ntrademark as set forth in paragraphs 1.E.8 or 1.E.9.\r\n\r\n1.E.3. If an individual Project Gutenberg™ electronic work is posted\r\nwith the permission of the copyright holder, your use and distribution\r\nmust comply with both paragraphs 1.E.1 through 1.E.7 and any\r\nadditional terms imposed by the copyright holder. Additional terms\r\nwill be linked to the Project Gutenberg™ License for all works\r\nposted with the permission of the copyright holder found at the\r\nbeginning of this work.\r\n\r\n1.E.4. Do not unlink or detach or remove the full Project Gutenberg™\r\nLicense terms from this work, or any files containing a part of this\r\nwork or any other work associated with Project Gutenberg™.\r\n\r\n1.E.5. Do not copy, display, perform, distribute or redistribute this\r\nelectronic work, or any part of this electronic work, without\r\nprominently displaying the sentence set forth in paragraph 1.E.1 with\r\nactive links or immediate access to the full terms of the Project\r\nGutenberg™ License.\r\n\r\n1.E.6. You may convert to and distribute this work in any binary,\r\ncompressed, marked up, nonproprietary or proprietary form, including\r\nany word processing or hypertext form. However, if you provide access\r\nto or distribute copies of a Project Gutenberg™ work in a format\r\nother than “Plain Vanilla ASCII” or other format used in the official\r\nversion posted on the official Project Gutenberg™ website\r\n(www.gutenberg.org), you must, at no additional cost, fee or expense\r\nto the user, provide a copy, a means of exporting a copy, or a means\r\nof obtaining a copy upon request, of the work in its original “Plain\r\nVanilla ASCII” or other form. Any alternate format must include the\r\nfull Project Gutenberg™ License as specified in paragraph 1.E.1.\r\n\r\n1.E.7. Do not charge a fee for access to, viewing, displaying,\r\nperforming, copying or distributing any Project Gutenberg™ works\r\nunless you comply with paragraph 1.E.8 or 1.E.9.\r\n\r\n1.E.8. You may charge a reasonable fee for copies of or providing\r\naccess to or distributing Project Gutenberg™ electronic works\r\nprovided that:\r\n\r\n • You pay a royalty fee of 20% of the gross profits you derive from\r\n the use of Project Gutenberg™ works calculated using the method\r\n you already use to calculate your applicable taxes. The fee is owed\r\n to the owner of the Project Gutenberg™ trademark, but he has\r\n agreed to donate royalties under this paragraph to the Project\r\n Gutenberg Literary Archive Foundation. Royalty payments must be paid\r\n within 60 days following each date on which you prepare (or are\r\n legally required to prepare) your periodic tax returns. Royalty\r\n payments should be clearly marked as such and sent to the Project\r\n Gutenberg Literary Archive Foundation at the address specified in\r\n Section 4, “Information about donations to the Project Gutenberg\r\n Literary Archive Foundation.”\r\n \r\n • You provide a full refund of any money paid by a user who notifies\r\n you in writing (or by e-mail) within 30 days of receipt that s/he\r\n does not agree to the terms of the full Project Gutenberg™\r\n License. You must require such a user to return or destroy all\r\n copies of the works possessed in a physical medium and discontinue\r\n all use of and all access to other copies of Project Gutenberg™\r\n works.\r\n \r\n • You provide, in accordance with paragraph 1.F.3, a full refund of\r\n any money paid for a work or a replacement copy, if a defect in the\r\n electronic work is discovered and reported to you within 90 days of\r\n receipt of the work.\r\n \r\n • You comply with all other terms of this agreement for free\r\n distribution of Project Gutenberg™ works.\r\n \r\n\r\n1.E.9. If you wish to charge a fee or distribute a Project\r\nGutenberg™ electronic work or group of works on different terms than\r\nare set forth in this agreement, you must obtain permission in writing\r\nfrom the Project Gutenberg Literary Archive Foundation, the manager of\r\nthe Project Gutenberg™ trademark. Contact the Foundation as set\r\nforth in Section 3 below.\r\n\r\n1.F.\r\n\r\n1.F.1. Project Gutenberg volunteers and employees expend considerable\r\neffort to identify, do copyright research on, transcribe and proofread\r\nworks not protected by U.S. copyright law in creating the Project\r\nGutenberg™ collection. Despite these efforts, Project Gutenberg™\r\nelectronic works, and the medium on which they may be stored, may\r\ncontain “Defects,” such as, but not limited to, incomplete, inaccurate\r\nor corrupt data, transcription errors, a copyright or other\r\nintellectual property infringement, a defective or damaged disk or\r\nother medium, a computer virus, or computer codes that damage or\r\ncannot be read by your equipment.\r\n\r\n1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the “Right\r\nof Replacement or Refund” described in paragraph 1.F.3, the Project\r\nGutenberg Literary Archive Foundation, the owner of the Project\r\nGutenberg™ trademark, and any other party distributing a Project\r\nGutenberg™ electronic work under this agreement, disclaim all\r\nliability to you for damages, costs and expenses, including legal\r\nfees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT\r\nLIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE\r\nPROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE\r\nTRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE\r\nLIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR\r\nINCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH\r\nDAMAGE.\r\n\r\n1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a\r\ndefect in this electronic work within 90 days of receiving it, you can\r\nreceive a refund of the money (if any) you paid for it by sending a\r\nwritten explanation to the person you received the work from. If you\r\nreceived the work on a physical medium, you must return the medium\r\nwith your written explanation. The person or entity that provided you\r\nwith the defective work may elect to provide a replacement copy in\r\nlieu of a refund. If you received the work electronically, the person\r\nor entity providing it to you may choose to give you a second\r\nopportunity to receive the work electronically in lieu of a refund. If\r\nthe second copy is also defective, you may demand a refund in writing\r\nwithout further opportunities to fix the problem.\r\n\r\n1.F.4. Except for the limited right of replacement or refund set forth\r\nin paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO\r\nOTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT\r\nLIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.\r\n\r\n1.F.5. Some states do not allow disclaimers of certain implied\r\nwarranties or the exclusion or limitation of certain types of\r\ndamages. If any disclaimer or limitation set forth in this agreement\r\nviolates the law of the state applicable to this agreement, the\r\nagreement shall be interpreted to make the maximum disclaimer or\r\nlimitation permitted by the applicable state law. The invalidity or\r\nunenforceability of any provision of this agreement shall not void the\r\nremaining provisions.\r\n\r\n1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the\r\ntrademark owner, any agent or employee of the Foundation, anyone\r\nproviding copies of Project Gutenberg™ electronic works in\r\naccordance with this agreement, and any volunteers associated with the\r\nproduction, promotion and distribution of Project Gutenberg™\r\nelectronic works, harmless from all liability, costs and expenses,\r\nincluding legal fees, that arise directly or indirectly from any of\r\nthe following which you do or cause to occur: (a) distribution of this\r\nor any Project Gutenberg™ work, (b) alteration, modification, or\r\nadditions or deletions to any Project Gutenberg™ work, and (c) any\r\nDefect you cause.\r\n\r\nSection 2. Information about the Mission of Project Gutenberg™\r\n\r\nProject Gutenberg™ is synonymous with the free distribution of\r\nelectronic works in formats readable by the widest variety of\r\ncomputers including obsolete, old, middle-aged and new computers. It\r\nexists because of the efforts of hundreds of volunteers and donations\r\nfrom people in all walks of life.\r\n\r\nVolunteers and financial support to provide volunteers with the\r\nassistance they need are critical to reaching Project Gutenberg™’s\r\ngoals and ensuring that the Project Gutenberg™ collection will\r\nremain freely available for generations to come. In 2001, the Project\r\nGutenberg Literary Archive Foundation was created to provide a secure\r\nand permanent future for Project Gutenberg™ and future\r\ngenerations. To learn more about the Project Gutenberg Literary\r\nArchive Foundation and how your efforts and donations can help, see\r\nSections 3 and 4 and the Foundation information page at www.gutenberg.org.\r\n\r\nSection 3. Information about the Project Gutenberg Literary Archive Foundation\r\n\r\nThe Project Gutenberg Literary Archive Foundation is a non-profit\r\n501(c)(3) educational corporation organized under the laws of the\r\nstate of Mississippi and granted tax exempt status by the Internal\r\nRevenue Service. The Foundation’s EIN or federal tax identification\r\nnumber is 64-6221541. Contributions to the Project Gutenberg Literary\r\nArchive Foundation are tax deductible to the full extent permitted by\r\nU.S. federal laws and your state’s laws.\r\n\r\nThe Foundation’s business office is located at 809 North 1500 West,\r\nSalt Lake City, UT 84116, (801) 596-1887. Email contact links and up\r\nto date contact information can be found at the Foundation’s website\r\nand official page at www.gutenberg.org/contact\r\n\r\nSection 4. Information about Donations to the Project Gutenberg\r\nLiterary Archive Foundation\r\n\r\nProject Gutenberg™ depends upon and cannot survive without widespread\r\npublic support and donations to carry out its mission of\r\nincreasing the number of public domain and licensed works that can be\r\nfreely distributed in machine-readable form accessible by the widest\r\narray of equipment including outdated equipment. Many small donations\r\n($1 to $5,000) are particularly important to maintaining tax exempt\r\nstatus with the IRS.\r\n\r\nThe Foundation is committed to complying with the laws regulating\r\ncharities and charitable donations in all 50 states of the United\r\nStates. Compliance requirements are not uniform and it takes a\r\nconsiderable effort, much paperwork and many fees to meet and keep up\r\nwith these requirements. We do not solicit donations in locations\r\nwhere we have not received written confirmation of compliance. To SEND\r\nDONATIONS or determine the status of compliance for any particular state\r\nvisit www.gutenberg.org/donate.\r\n\r\nWhile we cannot and do not solicit contributions from states where we\r\nhave not met the solicitation requirements, we know of no prohibition\r\nagainst accepting unsolicited donations from donors in such states who\r\napproach us with offers to donate.\r\n\r\nInternational donations are gratefully accepted, but we cannot make\r\nany statements concerning tax treatment of donations received from\r\noutside the United States. U.S. laws alone swamp our small staff.\r\n\r\nPlease check the Project Gutenberg web pages for current donation\r\nmethods and addresses. Donations are accepted in a number of other\r\nways including checks, online payments and credit card donations. To\r\ndonate, please visit: www.gutenberg.org/donate.\r\n\r\nSection 5. General Information About Project Gutenberg™ electronic works\r\n\r\nProfessor Michael S. Hart was the originator of the Project\r\nGutenberg™ concept of a library of electronic works that could be\r\nfreely shared with anyone. For forty years, he produced and\r\ndistributed Project Gutenberg™ eBooks with only a loose network of\r\nvolunteer support.\r\n\r\nProject Gutenberg™ eBooks are often created from several printed\r\neditions, all of which are confirmed as not protected by copyright in\r\nthe U.S. unless a copyright notice is included. Thus, we do not\r\nnecessarily keep eBooks in compliance with any particular paper\r\nedition.\r\n\r\nMost people start at our website which has the main PG search\r\nfacility: www.gutenberg.org.\r\n\r\nThis website includes information about Project Gutenberg™,\r\nincluding how to make donations to the Project Gutenberg Literary\r\nArchive Foundation, how to help produce our new eBooks, and how to\r\nsubscribe to our email newsletter to hear about new eBooks.\r\n\r\n\r"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZX8k78tUCuL2FhVLxaXjykW2x58Nlx03HpMwXKlimuOLhAdDh+6S/EYN9l56r6nvuFzq56bTvyD7YdSJhP41Cg=="}],"memo":""},"metadata":{"timestamp":"1732725095"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732278255"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688068"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688244"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688410"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688470"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688611"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688746"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732688807"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732724913"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732725115"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732725225"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1732725240"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/home","func":"Promote","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"57krTQ5ZcY73nVozl7m0OZHT2FSMJ5Xc410n41l1UX56sUk6BtgZ90okQSUzYpl5qWfEpZgSeFdYcX0Fr8cRDA=="}],"memo":""},"metadata":{"timestamp":"1733786189"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"","pkg_path":"gno.land/r/n2p5/loci","func":"Set","args":["aGVsbG8sIHdvcmxkCg=="]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5xfJWk/WprchgR77E42V44lR7j7mvjzTPcNlPEKgZvCS0tgajAALGhLUUtIEpnRYR5vv3TXBO81WeWXdPA40BQ=="}],"memo":""},"metadata":{"timestamp":"1734152377"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","n2p5","https://github.com/n2p5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7TXKC9d4YZrNUGbWTx2jbzRi/tHO8m92r84SpzDzeS6Cx8I3x3STsnGTkz1pmroAAVcrCJ2PH/O1ixOYbvFEBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731954440"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t","send":"200000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","n2p5","https://github.com/n2p5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1vTvbnjO1zL6LFpvfGTYexMCn1h3ODRIL1Z8kNeRBmbiu33FG2NAuA5VdODe/Yg5X1c4i2cu1M2N1+IXruDTDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1731954385"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1j8n3z22j9ue5ulz9yngtk383fxwrcmdmq7p997","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PgKER3FxL54XeFoSoGeG3bNFgIXwYKH5gqCnOUE7XmkDq9XHxFU4XpEmcgksh89CbSgqoSt7IZFhYfANXXVqCQ=="}],"memo":""},"metadata":{"timestamp":"1731495354"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHQABAAIDAQEBAQAAAAAAAAAAAAUGBAcIAwIBCf/EAGUQAAEDAwMCAwUEBQUICwwGCwEAAgMEBREGEiEHMRNBUQgJFCJhMnGB1BUZI5GVFjNCVqEXJFJXdoWxtDQ4RmJydZSWssHEJSY2N0RHhqSztdHhKDlDc3eCKVNVZWZnhKPD8PH/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAgMEAQUG/8QAJhEBAQACAgICAgIDAQEAAAAAAAECEQMhEjFBUQQTIjIUQmEjUv/aAAwDAQACEQMRAD8A/qmiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiDj1nvL9LSfZ6RdWXfdZKP84vX9ZNpv/E91b/gdJ+cXOdvue5jcHlTMVzPqjm28/wBZNpv/ABPdW/4HSfnF4y+8z0nAcSdJOrDD9bJR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iICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiD/9k=","1710937209"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ws5RZ3iH/lFdjRDe118m9bmPqgbqjL0NJdHcOwoGlTZ/PwSVHRwcXaYsnL9YZLj2oTukRsExSTd3QzT1kR+LAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1710937053"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z7eC9h5fjzNR2t2s5INqBHuAwvoTkh19KqCYXl0T7kzGdA8TJGS0LyiB2M6hZqAjJsr1viHP/v7sluLtZLWKAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3X7pJlv9vZln08W78KmYSvY50cnLs9tslxD9GDh0vGYuyOu1FzOpLx5oxJrMyDoEMJnlriWAUfdJAFansNHaBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c+JM9lArm3vqo2PMtia+cxLo6TqwD+XjRCjy8XV1gBscbq7CwSPsiFBI45UK9rjc7qDZTQFclGZZN4nVYlgvAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G8VRu37lL0I6fc3TlMWhJvo00E8aUH+RKlP0BsycsE9IeWS7YBkkXG35cMIsDodicG3sNlPQ+fQgIURZ1aNdCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G8VRu37lL0I6fc3TlMWhJvo00E8aUH+RKlP0BsycsE9IeWS7YBkkXG35cMIsDodicG3sNlPQ+fQgIURZ1aNdCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G8VRu37lL0I6fc3TlMWhJvo00E8aUH+RKlP0BsycsE9IeWS7YBkkXG35cMIsDodicG3sNlPQ+fQgIURZ1aNdCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000004"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WyFjgG5LBCmMxiEyLT1aEd/68wH2i888YkdGv9pyqW+nOBl2Ll0bAEo2ejtbH3mwFDqmc33vAKID6/MTRPH9BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ai+2F+YmslVdVSeHZgkMPROcQ1KmKIZmrfSp3WJXpJBxI59Q9BvbhuFe7LZyZqmkw1M1+394G7DVz6tk6BaxBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"l9sUVyKJFHmmWgbN9nRigh69QYeLa+y2dnHjgPSIdHpEfznV2kb7waC9rWodFwoqPorhWXBG1zwsObOb2zEgCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000008"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T8AdeqC1ew1dpDBjPv0YFNNx9y/DlGnKy8h5JEIc1PPUAcyg0vfWjsjbIP2AZj+RaINoRUmqwvhgLC0SGOqyAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"O/4P9KaVeQle6Ly13M/V75m0Io+sM26gnKaf7AK9+ZJ2Souy1GwcTVhS2HaMYRr+e9spMOpJbFRPkYk2keQPBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+IsAPExcFS1w78UITnujtq8DGS34QY7/06j7b2wpuv7CDU7WfLZTkcxEk4ZCB50IbijDxVXZlVsYgCa0Jsk3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+IsAPExcFS1w78UITnujtq8DGS34QY7/06j7b2wpuv7CDU7WfLZTkcxEk4ZCB50IbijDxVXZlVsYgCa0Jsk3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DZ/ZMl59f4pTLueqjFr2lso7Ue275mTC7bLb1fBrrA4Gda8hnkurUZMJhnDUdwVa7OO3c3RKdtpLYVxlrYoUAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J6iMx4kc/XZNlHFBAjiTVmSW0pGYxdJcYZMpX4h8dcKkNHF+a7LuBDjVC1zs6sF/4G2is+kvVni/aegS6SEUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J6iMx4kc/XZNlHFBAjiTVmSW0pGYxdJcYZMpX4h8dcKkNHF+a7LuBDjVC1zs6sF/4G2is+kvVni/aegS6SEUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J6iMx4kc/XZNlHFBAjiTVmSW0pGYxdJcYZMpX4h8dcKkNHF+a7LuBDjVC1zs6sF/4G2is+kvVni/aegS6SEUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J6iMx4kc/XZNlHFBAjiTVmSW0pGYxdJcYZMpX4h8dcKkNHF+a7LuBDjVC1zs6sF/4G2is+kvVni/aegS6SEUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J6iMx4kc/XZNlHFBAjiTVmSW0pGYxdJcYZMpX4h8dcKkNHF+a7LuBDjVC1zs6sF/4G2is+kvVni/aegS6SEUBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000004"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cXSP2v4iRsDZ8DjG6UZ9/mjAZVwGvdogAxdGEg30Yi8canWCvP/aGhMPygRBIKFk2aFFEYD59zrROadBq6NECA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000004"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cXSP2v4iRsDZ8DjG6UZ9/mjAZVwGvdogAxdGEg30Yi8canWCvP/aGhMPygRBIKFk2aFFEYD59zrROadBq6NECA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rz7xdwfbQ/P16OU9us2yiqf3s/tCdbFdcilz7Zs8D3z/Um6cW3Bt77ca+Qz1kmsLZYHBClLO/ahYFECmXAjgDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"PostMeme","args":["data:image/jpeg;base64,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","1710925223"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZhBFby5QWP7xP/PaQ0OzSvW3PQcUNDJwkPGOLpIOkICvYX/f7xVwldZJrPjjqXp27VuzgMw6MylSCky6bnloCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5ALJ0JDmkYepevTnFb6S9eD6Fgd5NAO1WHi5qMvD4Z39bdJlNSIdW8rdUXXlQkb/OAgkZEmO133ARjcxpa6CBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XCa0H6TFbALjsVSGYcv4uBG2LyW8dP9r+7vWQf+InBGRBzEEJ9oSCEAnAlYyfbrQ57io9OG0yc8hIwPwzwAfDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fzrxcYwedbWl58lOICYtyyLarIb5yWmcORCob1nXjMmPmaLROhWQxr7NlssFji9YwENKcJ0X8KFuLe56gDUYBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000003"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fzrxcYwedbWl58lOICYtyyLarIb5yWmcORCob1nXjMmPmaLROhWQxr7NlssFji9YwENKcJ0X8KFuLe56gDUYBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jazghxvvgz3egnr2fc8uf72z4g0l03596y9ls7","send":"","pkg_path":"gno.land/r/test10/poll","func":"Render","args":["red"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"++l3a5fIC9ByXk/ldkHL8bBEeko4nYcDsMAHkLQOWls8zQumlbpX65F6R3uCkfrObZhpWwBQtBURUJ9l45zBBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Just woke up from a long nap... anyone else feel like sleeping for 100 years? 😴💤 #SleepyDemon #NapTime","data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2jK5OIMrKEJ5D8n9PjpNGGSRPn3WjBI/w1A7b+h/dSJnYxk1K/RcQ0niDxHft/WWT05aNAW7EuZk27uS0K6pCg=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Trying to master the art of not turning into a demon when I get hungry... it's a work in progress. 🍱👹","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dZXi5JWeayMStcaDFn0j/KVfOLR+AfrMUKa2RVs6p/dVGnP7TI+PjJh1jywjmbsJZUkeFdGXpWhdRNjxNdzbCQ=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["nezuko","Nezuko Kamado"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WmGTQKKhpe+/KoBUWJwm/H7wRUdK/3gf8LKqwrP1llVVl2u6wRRtcUQy723MtuGyhh1PMduqohQZjXTasv9kDw=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["0"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o6gATuDZX8bh/ieVtzNDM4Bf4WdcRUgxNG1lv8VcWOEDCJDJgQeQZ+d9li7RiIvNNSN/D/z2dYoBhjJAq76BBA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["1"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qrhlQm2qUsqYZR9SBi2cQNNR7UfwfMuLB+PiFd8KY8hvUPTFzFHbMhkf4GO9Bb1bUzKSUvSTrWmScM+w0B4PBQ=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["3"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+SMtGDzwCj+GX0A1PaVZ/Kg+PPn6kUYuiDiCkoxBR2NE69Prw/tGl+jC1nG7Gy1QmGYAQl7Ia4vth9M1EyvDBQ=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yOlyz3T85bBGiMSDJsZXnBXJu/LeGSFqOfaIg3lMRIbTuVA6ovAI1wS4rDMO6s3/YQKWZ4f1JEZr7ufIavRCBQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["🌸 Demon with a gentle soul 🌸 | Protecting my brother Tanjiro 💪 | Lover of bamboo and peaceful days 🎋 | Peace 🦋"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P0uF4JuT596FxD6WAH6WfaIr+N2FcwJwl331h77pOiCyPvzdkHNwmBGW5Z+khrD5OViL5KdS2fte3fyWbdUsDQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["🌸 Demon with a gentle soul 🌸 | Protecting my brother Tanjiro 💪 | Lover of bamboo and peaceful days 🎋 | Peace 🦋"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P0uF4JuT596FxD6WAH6WfaIr+N2FcwJwl331h77pOiCyPvzdkHNwmBGW5Z+khrD5OViL5KdS2fte3fyWbdUsDQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jcm4tvkrnnjtr5pez263pgxseh85cx8n3nc849","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["🌸 Demon with a gentle soul 🌸 | Protecting my brother Tanjiro 💪 | Lover of bamboo and peaceful days 🎋 | Peace 🦋"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P0uF4JuT596FxD6WAH6WfaIr+N2FcwJwl331h77pOiCyPvzdkHNwmBGW5Z+khrD5OViL5KdS2fte3fyWbdUsDQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/boom/boom","func":"Approve","args":["",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DcGkZbIIAmF4cXJlzwO0Ophj63T+YoWMh/chA0y1sOJTMgCm1awocyuU8l9/O5xdsmGNlqJD5KQGnQ02/VUmDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/boom/boom","func":"TotalSupply","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kFQlwGT28GitWnsTcT0crtPtYVsYxU7nadXmpBeq6CxiS49awtV6EqLGBFvqVDvz5yv2T3dkSL0qomBrU9zPDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/boom/boom","func":"TotalSupply","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kFQlwGT28GitWnsTcT0crtPtYVsYxU7nadXmpBeq6CxiS49awtV6EqLGBFvqVDvz5yv2T3dkSL0qomBrU9zPDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/banktest","func":"Deposit","args":["ugnot","1000"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mWKiEOfSGhRXbqJCH0EYSX3TrP07hvSmuGosU7AEKd9yxV28d57j1kWe5U27wYCEwS0PpRp3++mEWikfohfQDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","1","coucou"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3mRGkPhDl1kSk2pGx8aX2Y131k55MfZUA5/rJfJb50vPvHB81mEcRe22r0HHV27I3CwJ8VNggL46P/BrOCWHBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","1","hello1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bWEmsFcH5haqobTds/bWUrEEieQvy0aZCHsmhCKSDc33ojTD4KYloavfrUi2q9c28V4iuuv9TuxGopEbw7ZBBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","1","hello2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6AxFFbcxkywrvHS02H6enUVKj9JQBFeE6v8XYGH9bJxZs9QcX83ZkdyfjM5qPgRY4/+3e5NcWE7cpQN44eysBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","1","hello2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6AxFFbcxkywrvHS02H6enUVKj9JQBFeE6v8XYGH9bJxZs9QcX83ZkdyfjM5qPgRY4/+3e5NcWE7cpQN44eysBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","1","test provider"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L7qW1eL+xCzkGrUTStU/TGxuLR6IQ9ZnVUFF01QmCO04M6GnvXv7LjKdTqhICOQuFu6RQCMWvHmo2bmh3VaOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello from Gnoboard!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3GY+u1S75OIiHUNndzNgSY9FJUoeaiFq95R29DTSxLO0uga4D3tPg81VAsKkSuPtTC4pH9BC001c0q+DMR1CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/emit_main","func":"EmitMain","args":null}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MNOGzSmpSqnk6XdO81YHFDs7kswO5Xo/s5ubcsZks2GaNlKAQZQkLrVmDmX0BhHLpOr1SDAioExJ/jeZRUC6DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event","func":"Fire","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HyEOdVwLTxOLeTgJTP0c0HjnFrFDBJZoiPqdULF+74Gqn54fhZ2cspVcxH/Skrv4V6gHoplrUM3WE6lvP1EvBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event","func":"Firemo","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yxBF0mpjAOmnoQpypRx9LG4yNFtEtfw1D4xmxGSWIPNOsyWyQ2qIziscfHoKQ+MxfKCFNswT5W7hWqdFdo/6Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event03","args":["HI","Hello"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+/gK81wv3lN2T0E+t9DOf12jTIJtDjCCVJp8PbMKcLH6i1Bbb3q/ThB2rBz3jTlV0fZoODjS7++z/+uGDSItBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event03","args":["HI","Hello"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+/gK81wv3lN2T0E+t9DOf12jTIJtDjCCVJp8PbMKcLH6i1Bbb3q/ThB2rBz3jTlV0fZoODjS7++z/+uGDSItBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event03","args":["HI","Hello"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+/gK81wv3lN2T0E+t9DOf12jTIJtDjCCVJp8PbMKcLH6i1Bbb3q/ThB2rBz3jTlV0fZoODjS7++z/+uGDSItBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["Hi"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p5V3JK+dvyBQO7yooM6kKjO2mklkUJyR84dQBKylaxWpsQuq2mOo2X3/cUySDSk2Fqvjw9RnJ4cs+0NmSaoXCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["hello","byby"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nyb7P4wKHkqWD4FSOiB9w6NA9FK0zs4Oxbe7ykTJbw0okgLvM34DUnu42Sn5RkprXt51wBlApwiCLlHRHrd1BQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["hi","001"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OEX3nR91P1TA6CqndDrilZewQla2fbMrtV98ToHF48aLJybsebmrWFpgEyF0yq49QLMTrbOG3AmemRaBBKqoDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["hi","01"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pZyxUXR9n1Xrh6COKeRmOtmPHKZeWMl7gRDQNTvhopWGh2J1czVF6usl4zDgRcztCo69/fiKNh94NPQLdeK8Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["key1","mamm"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dhGDkh7k12v/8A6YThpHjW9BOmC+sKhTrPY/tpnJl5Y4ikQIRokKdwRh70xmuUBBrMQ4gZhLUbFG2K57goywAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":null}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/kKdndGb+FMaBRaRTGvnEDXH+mPlxCnwXOdYWJIkhXiyy/HDrvHGe/aNnQPGB6e1JkioteD46nAG1yfNP/nhBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HizF3sR170DVSCHoUTIn9SsPkY47ZkV19iwD68cH6G9nvXfn0fyPQTdvFtCBy5/0mCQRl0NxQRBdRhyX+VigDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["key","value"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vhPK4oOnjZld77Xz91RFFsu//vZhyUOEQlajGBBbDRJpIpP3QqX5qrIBYzNIGGhDCw7eGIfipLrroGbpWh5vBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["key","value"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vhPK4oOnjZld77Xz91RFFsu//vZhyUOEQlajGBBbDRJpIpP3QqX5qrIBYzNIGGhDCw7eGIfipLrroGbpWh5vBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X4RqKgi2mdvVYzICEW+tbTDD0taoMZFk1IxMcm4tRVmuRukwSKIeh3ZSXPzs+K5EQ0cMOdYDs6IhJiq5Y8gsCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":["g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMVaw5Hkx6cYHen/izHyHSJXzaypr+lV/eA5BdEBiHpmNtmf4yiWzsuAFMYGVjFn+HickZM1QQ8vNhRR/hxjCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":["g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMVaw5Hkx6cYHen/izHyHSJXzaypr+lV/eA5BdEBiHpmNtmf4yiWzsuAFMYGVjFn+HickZM1QQ8vNhRR/hxjCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":["g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMVaw5Hkx6cYHen/izHyHSJXzaypr+lV/eA5BdEBiHpmNtmf4yiWzsuAFMYGVjFn+HickZM1QQ8vNhRR/hxjCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":["g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMVaw5Hkx6cYHen/izHyHSJXzaypr+lV/eA5BdEBiHpmNtmf4yiWzsuAFMYGVjFn+HickZM1QQ8vNhRR/hxjCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":["g18x425qmujg99cfz3q97y4uep5pxjq3z8lmpt25"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HMVaw5Hkx6cYHen/izHyHSJXzaypr+lV/eA5BdEBiHpmNtmf4yiWzsuAFMYGVjFn+HickZM1QQ8vNhRR/hxjCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"NewGame","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2s2Q4vDgNE3vwXLp+oxvue+yiXBOhCaxW9hY7UXImgMIxYEuYmtbdMDWSKEe+1TJ9to33R8RCZ+C6s2rcW5jAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Play","args":["",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qg28yRhF7+NldMEqooHUKRaXyOXzSa7ruRT5olgqD1PA52MLjw7h+EM0uOw8fDAvPLwcyl0P2V1UplnfCogFDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Play","args":["",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Qg28yRhF7+NldMEqooHUKRaXyOXzSa7ruRT5olgqD1PA52MLjw7h+EM0uOw8fDAvPLwcyl0P2V1UplnfCogFDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Play","args":["1","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QBM8cuzPMl1nzdDGAAAhG7vxTeWLKpzLf2DwFwkbaHK1U/RT9AiVKMb8BHPoAfUyQ6wQcoVi53KpDTFbjfpbDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Play","args":["2","3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jvs1IWA6RHXDk0uDcjxQJZZAaAjuCd1cQJ39DB2YLl0CJ4rOIzqFM/8iQpIkZ0KCB8w1e6nR8GHKeh9yCkjTCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Play","args":["3","3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Gffu5YS4pJiTA9wi6rmyXCIa1mwtSikheuns3m4Tef0bXreGihPgFa0Z8wM09sALSmWliMyiZVeMSvh9RzQzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Play","args":["fweoifjw","fwef"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WsCnocspOjpFCEcIf1pSj8NrHNrLpa1Nkly458lV8KnMLc0eUCyRG4HuRDCO7jcC6fxiDiA9EF6dxkqu9mfsDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""},"metadata":{"timestamp":"1732159557"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"S7WaddVQuFH/g8fBh3AzKuRhvYY+Ql0cxDYYlN+nV1cdlYApNivzlZ7biEGCzud41g8DL92ZtvkN8DmwY6hCAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["fwe"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FzwXksPjWsyjvv4r8AqUjoGiC6qZo4dGxfxYe7Njlh5DMYFwjTFWRGBaBilQ2rkfZ2JdXl/cUCaY/rruIRf5AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["fwe"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FzwXksPjWsyjvv4r8AqUjoGiC6qZo4dGxfxYe7Njlh5DMYFwjTFWRGBaBilQ2rkfZ2JdXl/cUCaY/rruIRf5AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["fwefe"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VZQHZFo1yRzkRZLY3/chkCEyLstVOqpAvyFH3xPGsrbnPbyddaYqsQTA/WoBWD/+fEcM9RG+DyqKu/0BKoWjDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["oijhioh"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QhYoW0Ji1Jh1prOYQc93aqMCNuvnwP+vLxfcGFy4fRTxuHqvCqF+ik9LfVc1Ajsb7qMw3ADaqgxAFwCSwKeRDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["wofij"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bfUN+SG9JozbFdPEKe2ySbeM0Cpi/zx51rJqO5lyk0gO5XPkZ7gT6fkTL47XttcOs9XghY8RH1ShOE2cB3cYDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["wofij"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bfUN+SG9JozbFdPEKe2ySbeM0Cpi/zx51rJqO5lyk0gO5XPkZ7gT6fkTL47XttcOs9XghY8RH1ShOE2cB3cYDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["wofij"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bfUN+SG9JozbFdPEKe2ySbeM0Cpi/zx51rJqO5lyk0gO5XPkZ7gT6fkTL47XttcOs9XghY8RH1ShOE2cB3cYDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":["wofij"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bfUN+SG9JozbFdPEKe2ySbeM0Cpi/zx51rJqO5lyk0gO5XPkZ7gT6fkTL47XttcOs9XghY8RH1ShOE2cB3cYDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KIraU1AuJYT5wClhNLxDVWlb2koyC+/N2Qos/ccHkgSWIcYHXTHuQf/xL55iFeZcoW+m+HZsugYBLI/yH6x8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KIraU1AuJYT5wClhNLxDVWlb2koyC+/N2Qos/ccHkgSWIcYHXTHuQf/xL55iFeZcoW+m+HZsugYBLI/yH6x8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KIraU1AuJYT5wClhNLxDVWlb2koyC+/N2Qos/ccHkgSWIcYHXTHuQf/xL55iFeZcoW+m+HZsugYBLI/yH6x8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KIraU1AuJYT5wClhNLxDVWlb2koyC+/N2Qos/ccHkgSWIcYHXTHuQf/xL55iFeZcoW+m+HZsugYBLI/yH6x8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KIraU1AuJYT5wClhNLxDVWlb2koyC+/N2Qos/ccHkgSWIcYHXTHuQf/xL55iFeZcoW+m+HZsugYBLI/yH6x8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/games/shifumi","func":"Render","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KIraU1AuJYT5wClhNLxDVWlb2koyC+/N2Qos/ccHkgSWIcYHXTHuQf/xL55iFeZcoW+m+HZsugYBLI/yH6x8Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/hello","func":"Render","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4Y0xIsTkZywq9bg9gRcaZzYC1gam05IFLyiqdTIG22MYdQfapRZW6VJGo27cF5GE8EdLmAAmu5PYtvOfgnrHBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/hello001","func":"Hello","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tDsRyhMjtC5tadliquFMGmK6W5q0uVpm2JX5/FkkGvP6J79KE6MMsuoq49enPz+w1xaKfQ4gj9uxuUEp5jY7BA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/hello001","func":"Hello","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tDsRyhMjtC5tadliquFMGmK6W5q0uVpm2JX5/FkkGvP6J79KE6MMsuoq49enPz+w1xaKfQ4gj9uxuUEp5jY7BA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/hello001","func":"Render","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+T1QXi6XxHShwdaqlzAyBFxw4vnnAt0JA5IAEKVYm1SKon89LOqGZPIHYeuC93wcWPfAtL5+aw9B3nL3co8pBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHgABAAAHAQEBAAAAAAAAAAAAAAECAwQFBgcICgn/xABYEAABAwMCBAIHBAUHCQQFDQABAAIDBAURBiEHEjFBE1EIFCIyYXHSF1aBlRUjQpGhFjNDUrHB0QkkJjZGYnJ14SVUovAYNXaCkjQ3OERTY2R0g5SztPH/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAgMEAQUG/8QAJxEBAQACAgICAwACAgMAAAAAAAECEQMhEjEEQRMiUTJhBSMUJEL/2gAMAwEAAhEDEQA/AP1TREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEXzA/azrj75ag/NJ/rT7WdcffLUH5pP9aD6fkXzA/azrj75ag/NJ/rT7WdcffLUH5pP9aD6fkXzA/azrj75ag/NJ/rT7WdcffLUH5pP9aD6fkXzA/azrj75ag/NJ/rT7WdcffLUH5pP9aD6fkXzA/azrj75ag/NJ/rURxY1xn/XLUH5pP8AWu6H0+ovmF+1jW33y1B+aT/UpXcWNcZ21lqDH/NJ/rTQ+nxF8wP2s64++WoPzSf6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zcfvWXfw/wBSzw5FiuQIOSPVX/4Kek4c6hjHiTWK5BoBIaKV5J/gu6ru41y4UYEXjRjlYdiM91hZ2te3AG/Zbde9IauqHN8PT1ybADsxtI/5eSsWcP8AVLocHT1z5vP1R/8Agu+NjtykalM7lYeix3ro6F2CVt9Tw31UH5/k9dC3yFHJ/gsFXcNtVh+WaZu2AP8Aucn+Csk3FO5VrDOx0XMTlwVTmLiMEDKlptC6vYSDpq74Hb1KT/BZ2k0BqqUZdpq6D2e9HJ/gnhTcYvJDAMgnqVBhLg3ldhqzDuHmqmPx/Jy6/wD7ST/BTM4d6q5zjTt1A/8Aykn+Cs10bjHU0hbMGk5BGF58tEht3Eq+U+eVvrBOO25Xp+Lh1qrxGu/k9c/l6o//AAXAtRcKtbU/FS5TRaSvRhe4HxGUEpafx5VGRDL/AEzfELTkeq9EzwYDpYWGRjsb7BeRaiA08ro3bOaSCF7809w31ZVUXhzaaurMs5SHUcgyMfJeWuI3APXNu1dcY6bR19mhMnM10dvlIwfiGrTgz5zVcjRbr9iXEH7kag/LZvpT7E+IP3J1B+WzfSrL7VtJycqeM5BW4ngnxBz/AKkag/LZvpU8fBPiDg/6E6g/LZvpQasfcapVup4K8QOQf6FX/wDLZvpUo4KcQB/sVf8A8tm+lWDTEW6fYrxA+5N//LZvpUDwV4gH/Yq//ls30ro00YIUMhbn9inED7lag/LZvpT7FOIH3Kv/AOWzfSg0zYlRIwty+xTiB9ytQfls30qP2K8QPuVf/wAtm+lBpaLdPsV4gfcq/wD5bN9Kh9ivED7lX/8ALZvpQaYogbLc/sV4gfcq/wD5bN9KfYrxA+5V/wDy2b6UGlnZR2xstzPBXiAf9ir/APls30qH2KcQPuVf/wAtm+lBpiLdPsV4gfcm/wD5bN9KIPpnREWcEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB//Z","1710952332"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FeQAMexq378h1FT1/a7I0DrPvL82VXobZ5CvueoYF+k4c93Y10v/Yw4eFKBVLpV3MYeGUEuIuWgIHgc/XgM+Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yjWjDeNVGUeGOoZjUadcCgpOAD7ygicyT41V9uW+EhbKZoIufwRVeTCfq3TjQ/jW71piozbZTCNWYJbkpCjGAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yjWjDeNVGUeGOoZjUadcCgpOAD7ygicyT41V9uW+EhbKZoIufwRVeTCfq3TjQ/jW71piozbZTCNWYJbkpCjGAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AkYPS7HGIxLVBIEygvJ0Y5DGh5g4qr+U+9QSEeYto/ji6y/oMNKgMNQK66y+gxYZLw0yyI2zPXs0Mai50kdnBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pKxo4sF4YgoT/4npEJMrzY30lprT7KCH4sF84u3hQeZTVNqpd9XmJ5+UheRYlbT7/jWMiHkjTTjT4EwWz/UCBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pKxo4sF4YgoT/4npEJMrzY30lprT7KCH4sF84u3hQeZTVNqpd9XmJ5+UheRYlbT7/jWMiHkjTTjT4EwWz/UCBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/morgan/variadic","func":"Echo","args":["a","b","c"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"icHrENS1mvmIjzKOmLd24mvE7Fr/XM5QeNuc54BMk9AcxKXGYNy/GkO2VDKPKiYI2gVbR/yt9gfYmsqsytgwDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/morgan/variadic","func":"echo","args":["a","b","c"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Apf1ygSyXEsbA0MmnDJhBfU8EjjwHwh7fuDyJg3rNbXUR7X3a8WlggU5q09WmegY5gAtkUDZpNIasnNq5BERDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/nft2","func":"AMint","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zj+R57bo0CBYoZjL4fphPQTFvcv6YaHt1YfNAKr72evNz5cqZWuVr5NK4fVcA7LQVctmVwTFd+G31iJJAdu8Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/nft2","func":"AMint","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zj+R57bo0CBYoZjL4fphPQTFvcv6YaHt1YfNAKr72evNz5cqZWuVr5NK4fVcA7LQVctmVwTFd+G31iJJAdu8Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/nft2","func":"AMint","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r8ASQ3yGU2qnV4aQhKcREnCRbnCdCrly616J02+5dXD5xuOJ3dBpmmruAfAE9BiFb5aA7iw1NagG2qqKcnZUDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/restest","func":"FuncNo","args":null},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/restest","func":"Func2","args":null},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/restest","func":"FuncNo","args":null},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/restest","func":"Func3","args":null},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/restest","func":"FuncNo","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6F4DUxCXj9s0Qs6pA/vODRcl+MF0iuXjgg1O3tmJMkGJoGTh4lnQMkH76qzgBaRM+LQxwv9okM4iND6h+X8EDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tl76t1J6fOnFS9vJGtBBYjy0IsRnKzcRMl/WfBH60ohOCMvfzjhGF31Y56+VBOhOui7y7ZqsRiA9855MQ4YkDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z+lu6Be3xdgewUIkhqoU61CGbhvkNg6GWmI+rZqzdWOUW7hLWBUa8XIi0ctJDwnvT1bd1/lMzGXc2FT6sd3SCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v2","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z+lu6Be3xdgewUIkhqoU61CGbhvkNg6GWmI+rZqzdWOUW7hLWBUa8XIi0ctJDwnvT1bd1/lMzGXc2FT6sd3SCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/test_event","func":"Event01","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/test_event","func":"Event02","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/test_event","func":"Event03","args":["HI","Hello"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KR4RDAPgfpQ4omXERsuw1qC+fG+Tjzhp4D+yEpbBTMcg+J5IWujkM9HuRpckKTGNrQgtW0Bhle1uY8RmVF6GAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/test_event","func":"Event02","args":["gg","ggg"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SO4IxzjMCPkED80XFKrySSufHM0hz6fyjjTfi3tG94aCBINX74wYm3ww7w+HyZ1oqBeSD5Aju10KFPuFWEEWCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/test_event","func":"Event02","args":["keys","values"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w6rZM+LBz1uKGlw1m8OaATa67Krzm2sZm3azIiKurWnGBOvWJHhiQaHDDSRf61KbENHSTctszNIto4O+fg0CDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/test_event2","func":"Event02","args":["123","444"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VPYRnKJNdNqvqzaeQCKE9FyMAT3dtzo2Uf/xDGeYA2KLqHYK6UtjyEDvz0RKA/N6b81s9B0TcYvjEBXyjM/3CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"GetSignupsInRange","args":["1","2"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vX4pmsyqBJMI0cu+NZVqfJT7/QYaO1O/q2BMRqhR+KrYKXYLcsyJaN5YXf7QbQIp7fs8dAqR+hMVaFdy9G5kDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"piPGNHmVV2PmOhwXyIkhiDZkeIzdPHFNcHhlqt4XSwerc4ey79ti0OS6vsXCSAW6nQIr43IqkMWPEX36xdRFCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"piPGNHmVV2PmOhwXyIkhiDZkeIzdPHFNcHhlqt4XSwerc4ey79ti0OS6vsXCSAW6nQIr43IqkMWPEX36xdRFCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByAddress","args":["g1v0l89q38f49ccxnj55yse55fpc9z5d54aveazn"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2TD86vI7MSJeVn68NEkMs7/vic300+hKPU+Nk7Lh5il0nR3PQxMxZzM8YjGYa/0pAhWJvVZ/vlJeWpHIE6K3Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/users","func":"GetUserByAddressOrName","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SW8hg2gDy7iu5kPJyKazzXzCRSZmzJ+78JnXigBSfdZmcVb0S7QDSet7WXZpJGtjNkHkK/cmJh4i0pOLIPlFAw=="}],"memo":""},"metadata":{"timestamp":"1731861166"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","malek","https://github.com/MalekLahbib"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hAjuClfnI+wmEWq2/OS35B22HwLj+PmA6ywGS2h7hRSNf0q8HGWXxVhgijBV2X5SCBmb3dhAOlvmXBdqpxaSBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"BalanceOf","args":["g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"52rZtuHfl6MCnkKZAlX6aKjlPuQvs2Wx6MHtT0yIUglhpmP6bsWO2K9hrc+vTUi+CiColhxQaMJ9QQXc13ZnBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/vJuASkwFmDDTDlU7HRnDp45R4yWOHqsTNvwSpyFzy6yzKzf0dJvhi+qfJmc/mGME+BsSsL3wo1ZIt6eBaIpAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5QdDYktysNUHgZxjYkWcM99+btl3Goh143oT13tiU2BuNpiWvKTlS8/UldV/9LmrFgMyPyg/vTCUQJWL50a7BQ=="}],"memo":""},"metadata":{"timestamp":"1730873798"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","10"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+LhCL8inGRsjQfqeSfh4Y4OwXICsE1XN5Cq2I9eRMATRfzxCKOXXsFaRSoJDIAkHps+zD+UOy5Y1E7E/5vVGBA=="}],"memo":""},"metadata":{"timestamp":"1730873637"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","10"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+LhCL8inGRsjQfqeSfh4Y4OwXICsE1XN5Cq2I9eRMATRfzxCKOXXsFaRSoJDIAkHps+zD+UOy5Y1E7E/5vVGBA=="}],"memo":""},"metadata":{"timestamp":"1730888990"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","10"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+LhCL8inGRsjQfqeSfh4Y4OwXICsE1XN5Cq2I9eRMATRfzxCKOXXsFaRSoJDIAkHps+zD+UOy5Y1E7E/5vVGBA=="}],"memo":""},"metadata":{"timestamp":"1730889934"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","1000"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aUjPoOE5ERBsaFaLdYx6G9CiWiTuf37kvsB8CZ1KBbXoFDRWONHnBVb+tZ4sB7tMZEv/xfyD9yXReeOgjXsBDg=="}],"memo":""},"metadata":{"timestamp":"1730873722"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/demo/wugnot","func":"Transfer","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","1010"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oCuCvvDgO/F17gQUUcDgFK6b8oSUuEbIrOv1+ApLV/87AGn09qQT5T65AZvGD1njZjlGBFubdITdm4pev5V/Bg=="}],"memo":""},"metadata":{"timestamp":"1730880776"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/blackcows_nft","func":"TransferFrom","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","g1823l8mgzsu4sr0ymmxylud6ztyhl02hlqvpgee","0"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uGfX/4tRUzcF6JYOLkVGMiQANgs4kxl/uY0LW2WJn1HELE4LiA73eLlPH8tGY+Rjl7m79qYybDFPfa/xo9/sAg=="}],"memo":"123"},"metadata":{"timestamp":"1730860418"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"TransferFrom","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","2"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MC5XFLwtconm0YWoZOpWf7YTdyfkKiKwwespJom9wpJJK+zW8nu+6srMhB/Y6+xGShIwOkTV4hDatOFfTatKAA=="}],"memo":""},"metadata":{"timestamp":"1730862321"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z/popo_nft","func":"TransferFrom","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","g1823l8mgzsu4sr0ymmxylud6ztyhl02hlqvpgee","1"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"drVH58OfqE6zDGkLgI2Dn+RAP9sKMf+kBnLh0AKZBDIrBBdqqsUOnO72bB6glGajm4bO2fWsN1kTxvpdzvOhDg=="}],"memo":"999"},"metadata":{"timestamp":"1730860544"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","func":"Mint","args":["g13qpel38unrma0nyrj29tr903pq7dpeecsmlu8z","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Hz//F6kmyf7aRd9rIHtHre1Do9TRxir6RSnmtJpFeF8AA2apBEGgcyPfxj8outUzSB6y6hixObRm53HHRUA2Cg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1730818694"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JO/cypLnBYwGA8JtMwuEOPrL5MFFs63MrxyPvtSdqInPxG5T/UNPFf2zCGwoOULivdBVuNIPlZYHu+pJR5LYDQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1730818750"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","0"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5AUNlcZo7uln2adra5bo2EhfhVtAxmIu18gRGvyLJEFnuBXBOBGhu7WiSrEFxlIfGmc0dVE23Ofc1tsvykrfDw=="}],"memo":""},"metadata":{"timestamp":"1730818373"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","0"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5AUNlcZo7uln2adra5bo2EhfhVtAxmIu18gRGvyLJEFnuBXBOBGhu7WiSrEFxlIfGmc0dVE23Ofc1tsvykrfDw=="}],"memo":""},"metadata":{"timestamp":"1730818423"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rfl78nFIaOR3IS+lH2TLAuiSLE3S2k4HdoxbIv+yeOZ0vwMuQA8BGBBadMce75/CBRTL1fudGJ6u8jvdtmHMCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1730818464"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/blackcow_nft","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z+R77OsdmrYQbjSu/xWPI6lzFCevkti3NoXsziXjrFer/LQraC8R24uNPzdkeM9fLJVa8Lcm40kTicHxwcDBDw=="}],"memo":""},"metadata":{"timestamp":"1730818438"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest","func":"RunTest","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"w2QBzBzU/6PfNr4cZW80i2z9hKKj49du7uwUtVm2W+aI9q6Utl2VF8Qt1uvcUsV+g5r98HcbquPaILMoBETGAg=="}],"memo":""},"metadata":{"timestamp":"1732028255"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest2","func":"DeleteVal","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kGiaQgvdRJzI3mnwS0FWpKTGW75k5G+StNeIJqNBZZbeZr7wOZk7b5TiQyUWG1/LX9u1oaL8uWiFkjRuKnucBQ=="}],"memo":""},"metadata":{"timestamp":"1732028511"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest2","func":"SetVal","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GVPuIB+XoEYk2RNZV1hWar/ExR+bpBA5y/+sM+G9faa20mzCvFVi9lnlh1sqXlM8gidCxLLlbs2rq7wVUXCsDw=="}],"memo":""},"metadata":{"timestamp":"1732028531"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest3","func":"DeleteVal","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"UmzTnyeIwvtYy2RmyP44Y+hkjJdkrfZboAvTEejqJkTT4IVDnwJeLdRFTEoAkVAvp2VyHyGHlJkBZticAJuNAQ=="}],"memo":""},"metadata":{"timestamp":"1732028797"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest3","func":"GetVal","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8xwlnOo3VdsODuXkcMaCwUOxF+yZCwSVRbfsKzDixTdNBsrqu2rE06Ze1K5pE+jKDUEQ+r/Fv2Lv6k1dWMhuDQ=="}],"memo":""},"metadata":{"timestamp":"1732028837"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest3","func":"SetVal","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HPhJXC0zJQJ0kTQIWXJtWaWtIZiey50+1FJQbxrLh4vkODC14cLYupBEtylj/k0NlRCqZxE6zWmQPNJfmXt8Bg=="}],"memo":""},"metadata":{"timestamp":"1732028822"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["kv-stores-indexer","Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x","\n\nIn this article, we'll discuss how we achieved a tenfold increase in the processing speed of the tx-indexer by applying four key concepts related to our use of key/value storage:\n\n・ [Key/Value Stores: How We Improved the Performance of Our tx-indexer by 10x](#keyvalue-stores-how-we-improved-the-performance-of-our-tx-indexer-by-10x) \n ・ [Understanding Key/Value Store Variability](#understanding-keyvalue-store-variability) \n ・ [The Importance of Efficient Data Encoding](#the-importance-of-efficient-data-encoding) \n ・ [Implementing Secondary Indexes on a Key/Value Store](#implementing-secondary-indexes-on-a-keyvalue-store) \n ・ [The Role of Batch Inserts in Enhancing Performance](#the-role-of-batch-inserts-in-enhancing-performance) \n ・ [Data consistency](#data-consistency) \n ・ [Speed](#speed) \n ・ [Old](#old) \n ・ [New](#new) \n ・ [Conclusion](#conclusion) \n\nThe Transaction Indexer ([tx-indexer](https://github.com/gnolang/tx-indexer)) is the primary tool Gno.land uses to index its networks. It is in charge of keeping up with block production, fetching new data, indexing it, and serving it to users while providing filtering and subscription capabilities. The tx-indexer creates versatility and ease of use when using on-chain data, which is one of the key aspects of a fully functioning decentralized application.\n\n## Understanding Key/Value Store Variability\n\nNot all key/value storages are created equal. Each varies significantly, and depending on their internal data structures, some are better suited for certain use cases than others. A deep understanding of the key/value store you plan to use will help you better organize data for efficient writing and reading and assist in choosing the best store for your specific needs.\n\nWhile [PebbleDB](https://github.com/cockroachdb/pebble) is based on [RocksDB](https://github.com/facebook/rocksdb/wiki/RocksDB-Overview), the two databases differ significantly. Both utilize LSM Trees built upon SSTables; however, PebbleDB supports only a subset of the features available in RocksDB. For instance, PebbleDB lacks built-in transaction capabilities, but these can be alternatively implemented through the use of Batches and/or Snapshots.\n\n## The Importance of Efficient Data Encoding\n\nOur indexing involved elements defined by consecutive integers, with Blocks on one side and Transactions within a Block on the other.\n\nInitially, Blocks were indexed using a combination of `block_prefix` and block_id encoded in little endian. This method wasn't allowing us to use iterators for ordered data retrieval, forcing us to fetch elements individually, resulting in excessive and inefficient database queries.\n\nAfter refactoring, we adopted a binary encoding scheme that allowed for custom encoding of strings and integers. This flexibility enabled ascending or descending order iterations, which significantly improved our ability to read data sequentially through iterators and, consequently, reduced query times dramatically.\n\nSmall example about how we encoded uint32 values in ascending order:\n\n```go!\nfunc encodeUint32Ascending(b []byte, v uint32) []byte {\n\treturn append(b, byte(v\u003e\u003e24), byte(v\u003e\u003e16), byte(v\u003e\u003e8), byte(v))\n}\n```\n\n## Implementing Secondary Indexes on a Key/Value Store\n\nWhile most filters are applied on the fly due to their low cost, we implemented secondary indexes to fetch Transactions by Hash efficiently.\n\nSecondary indexes are specialized key groups that directly reference the primary index key where the data resides. For example, a transaction with ID `3` in block `42` is indexed as `/index/txs/[uint64]42[uint32]3`. These transactions are also uniquely identified by a hash representing the entire transaction content.\n\nTo fetch transactions by hash, we created a secondary index that points to the primary index:\n\n`/index/txh/[HASH] -\u003e /data/txs/[uint64]42[uint32]3` \n\nAlthough our secondary indexes do not require ordered iteration, this capability remains available, allowing us to apply additional filters as necessary. For instance, we could index transactions by year:\n\n`/index/txYear/[uint16]2024[uint64]42[uint32]3 -\u003e /data/txs/[uint64]42[uint32]3`\n\nThis format allows us to iterate through transactions within a specific year, from the start to the end of 2023, for example:\n\n・ from: `/index/txYear/[uint16]2023[uint64]0[uint32]0` \n・ to: `/index/txYear/[uint16]2023[uint64]MAX_UINT64[uint32]MAX_UINT32` \n\n## The Role of Batch Inserts in Enhancing Performance\n\nThe advantages of write batches are often overlooked but crucial. Inserting elements individually can lead to data consistency issues and slower operations.\n\n### Data consistency\n\nBatches ensure atomicity—either all elements are persisted, or none are. Without batches, a failure during insertion could result in a block being saved without some of its transactions.\n\n### Speed\n\nEach insertion involves internal processes that slow down the operation. By grouping several entries in one batch, we significantly enhance insertion speed. These are new benchmarks comparing the old and new way of writting elements without and with batches. Note that these are just synthetic benchmarks and the 10x improvement was measured when using the indexer as it is (we came from speding 30 mins to 3 mins with the new storage changes):\n\n#### Old\n\n```go!\nfunc BenchmarkPebbleWrites(b *testing.B) {\n\tstore, err := NewDB(b.TempDir())\n\trequire.NoError(b, err)\n\tdefer store.Close()\n\n\tpairs := generateRandomPairs(b, b.N)\n\n\tb.ResetTimer()\n\tfor k, v := range pairs {\n\t\terr := store.Set([]byte(k), v)\n\n\t\tb.StopTimer()\n\t\trequire.NoError(b, err)\n\t\tb.StartTimer()\n\t}\n}\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/gnolang/tx-indexer/storage/pebble\ncpu: AMD Ryzen 5 5600X 6-Core Processor\nBenchmarkPebbleWrites\nBenchmarkPebbleWrites-12 \t 1316\t 928941 ns/op\t 33 B/op\t 0 allocs/op\nPASS\nok \tgithub.com/gnolang/tx-indexer/storage/pebble\t1.384s\n```\n\n#### New\n\n```go!\nfunc BenchmarkPebbleWrites(b *testing.B) {\n\tstore, err := NewPebble(b.TempDir())\n\trequire.NoError(b, err)\n\tdefer store.Close()\n\n\tpairs := generateRandomBlocks(b, b.N)\n\n\tbatch := store.WriteBatch()\n\n\tb.ResetTimer()\n\tfor _, v := range pairs {\n\t\terr := batch.SetBlock(v)\n\n\t\tb.StopTimer()\n\t\trequire.NoError(b, err)\n\t\tb.StartTimer()\n\t}\n\n\terr = batch.Commit()\n\n\tb.StopTimer()\n\trequire.NoError(b, err)\n\tb.StartTimer()\n}\n```\n\n```\ngoos: linux\ngoarch: amd64\npkg: github.com/gnolang/tx-indexer/storage\ncpu: AMD Ryzen 5 5600X 6-Core Processor\nBenchmarkPebbleWrites\nBenchmarkPebbleWrites-12 249462 4730 ns/op 1704 B/op 43 allocs/op\nPASS\nok github.com/gnolang/tx-indexer/storage 4.669s\n```\n\n## Conclusion\n\nIf you find out this interesting and want to have a deeper look about [how it is done](https://github.com/gnolang/tx-indexer/tree/main/storage), or just try our indexer, it is as simple as ramping up a docker image:\n\n```\ndocker run -it -p 8546:8546 ghcr.io/gnolang/tx-indexer:latest start -remote http://test3.gno.land:36657\n```\n\nAnd start playing with it through its GraphQL interface at `http://localhost:8546/graphql`\n","2024-05-10T13:37:00Z","ajnavarro","blog,post,tx-indexer,dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hbSLpzqmllXUeWhRgsLxnlehOnVOJukXp3F7D5Hmrtkvo33unXmM2sSKBYtwLCa+KZ3OXLkw1jkLXXfs+dqcCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Render","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HKrAwZx5/TXxWxruoebbhwGL4zmuIzqnrnuLfIYE8OxIyJ5hvuLUuKOIKY9BPVFcZfHkyCSz4Ekm5Err66X1Bg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/gophercon/mood","func":"ChangeMyMood","args":["one"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VleZK6PzMLnqBdvQtkmz6+LeAylmOgXWPY+y0mVUulkR62GccYUWawf03+Y83QJ62K0yXsfpc/NXO7aBngcMAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe321/hehe321","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tGgU351OiF6SqhVu9C1KJ08b6W4aZLl+dwdImzUmZz/ZFudLAZlqMUDQ2sFSSbz8NMgUOwQ0LJfSsRJnqtA4CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe321/hehe321","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tGgU351OiF6SqhVu9C1KJ08b6W4aZLl+dwdImzUmZz/ZFudLAZlqMUDQ2sFSSbz8NMgUOwQ0LJfSsRJnqtA4CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe321/hehe3211","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6iEVZKw8HayNbHXA5eUvUl8f8yCEJEO8NNh44ps2yCOS/rUrbwGm+DHPlEhcZ7bK1N45SgT0EE4LHLd8FPiFBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe321/hehe3211","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6iEVZKw8HayNbHXA5eUvUl8f8yCEJEO8NNh44ps2yCOS/rUrbwGm+DHPlEhcZ7bK1N45SgT0EE4LHLd8FPiFBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe321/hehe3212","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wrN2t38dj7l7Ss/Sx27D3ImpFDpHzz7XqbF8PeAvgaSD2CGwp4U4i/tjMexdO0qYhahaeTTEtXaD4AtbTFUHBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe321/hehe3212","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wrN2t38dj7l7Ss/Sx27D3ImpFDpHzz7XqbF8PeAvgaSD2CGwp4U4i/tjMexdO0qYhahaeTTEtXaD4AtbTFUHBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/hehe3212/hehe3212","func":"Func","args":[""]}],"fee":{"gas_wanted":"3000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/c0YSNrQInpB4vJayzXL+HR0pC+zvt8f7x0gk56gtUo0oUiAI5X+O5VgST/1xkzxKdH7V0/m/DmmX/Za9e0uDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TE4WBS937GrzekZcvO0xuqBtM5rlc45PrzcapaK+AeTquToO1rnigrVaegRiRVJIreGHShQrxltkCYHw2ZarAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TE4WBS937GrzekZcvO0xuqBtM5rlc45PrzcapaK+AeTquToO1rnigrVaegRiRVJIreGHShQrxltkCYHw2ZarAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"AddTask","args":["1","1st task"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b2yDxSmw/fHGejUFQsoa98MDMv47mH6B0Ptk5OEfgUUmB/xBEk84bHEZKWkzNSkQVyT+hzmY/7/7U5LF9ltPBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"AddTask","args":["1","Another task I have to do"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5riLUDWbT9vBwwVKDQmf6RkpbQ4fvSsteKHBxH48WeJYw/SQfghqsNOiLF0auGcs977EoiY+hq5oQkhX99OwCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"NewTodolist","args":["1st todolist"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tx64uj0dLe5o9/77ummherHwBK5AvtYedIqnSW/rclWMfweUN//OVfPPYfTdntMo0LkgXygS85FfxDcd/bddBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"NewTodolist","args":["test todolist"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"D0Ch54dZJ0DTGwMuE2pJt9ZIgIxSY/1olVuQXjNsqyVr0103mIpoWGjtEPddKtsyQM1qFsaYS8lqVd0XIDReAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"RemoveTask","args":["1","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jqhqhc/dz+OO/IfMsnpoRJLAkGrImndTqFuPhLpeO9pBAMbJa2AxFzMf3o4e1JrMsbCMQaivVWil6xCqso54CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"RemoveTodoList","args":["2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+A3osfquUm0Z+Yql7FgiZfO2VXXcVd/JSOkwMc8hTkbEV6ZnIKMzJbXFueH06gMH2Ipo2LjqaLsrD5l/0ecjBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/malek/todolist1","func":"ToggleTaskStatus","args":["1","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"htUzVKo3MZ9kfiPc33Xlm//0qtIhuWCjIjaQzzfcyZUHHMwq82vxCAPxvNTaSI2fsue9wcyASLdUX9rUqvSbAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test1/multievent","func":"TwoEvent","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J4XX6uPcfNOfOBYkb/ylKjpi3z94ojGJw4kIs+Z/e6u8HJUq5GfSTv9gSX/8NIGq7gXf0kvbWI9BH3wAlnQrBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test1/multievent","func":"TwoEvent","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J4XX6uPcfNOfOBYkb/ylKjpi3z94ojGJw4kIs+Z/e6u8HJUq5GfSTv9gSX/8NIGq7gXf0kvbWI9BH3wAlnQrBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test2/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJSYUPXQsCx+0KzkO3bwDYKx6bYSGBoEPny79TCo1BxpRV1bQ3ploqCfahV9uPFpDZNbzO1RFdtfU2Gkma8eBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test2/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJSYUPXQsCx+0KzkO3bwDYKx6bYSGBoEPny79TCo1BxpRV1bQ3ploqCfahV9uPFpDZNbzO1RFdtfU2Gkma8eBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test2/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJSYUPXQsCx+0KzkO3bwDYKx6bYSGBoEPny79TCo1BxpRV1bQ3ploqCfahV9uPFpDZNbzO1RFdtfU2Gkma8eBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test2/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJSYUPXQsCx+0KzkO3bwDYKx6bYSGBoEPny79TCo1BxpRV1bQ3ploqCfahV9uPFpDZNbzO1RFdtfU2Gkma8eBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test2/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJSYUPXQsCx+0KzkO3bwDYKx6bYSGBoEPny79TCo1BxpRV1bQ3ploqCfahV9uPFpDZNbzO1RFdtfU2Gkma8eBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test2/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RJSYUPXQsCx+0KzkO3bwDYKx6bYSGBoEPny79TCo1BxpRV1bQ3ploqCfahV9uPFpDZNbzO1RFdtfU2Gkma8eBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test3/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5h3gsQHnzh/4iIXGG+l+weX3P4FH2utd0Dk/+RkGc+UdBQqCFhHBbryH0D40tubppzHhHhMWu+kq0reYBZEgBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test3/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5h3gsQHnzh/4iIXGG+l+weX3P4FH2utd0Dk/+RkGc+UdBQqCFhHBbryH0D40tubppzHhHhMWu+kq0reYBZEgBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test4/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1GQvuhBZtTQ3OBkfDSDPX2MdViDYK4ZpSMgCPu96wbUuKaF+pp1OfBIW+JBC2ZQ/rrl92hjMmv0Ibr58OLyLAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test4/hello","func":"Inc","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1GQvuhBZtTQ3OBkfDSDPX2MdViDYK4ZpSMgCPu96wbUuKaF+pp1OfBIW+JBC2ZQ/rrl92hjMmv0Ibr58OLyLAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/test5/hello","func":"Test","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"33ussjZisJ4cDSR5M4aI1j/w+NLJ3mVtW5cjWzWkVCTMOZf7z7sTrqbaMC7AJKnOalfSWI8owNnIsFdoqkfrAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d5absFt6vUem0mGXhhQkLUxqbEUEHOs/4xU/+yW37Vus1NKQufxSQReMPRrFj3AL1Hmn6KSMdBHRRK9wPGhhBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qx8t65tl987S4sB3oTNGTVX1uNEXh9MQqwy+3LciuT9Dv1UdHCFGMeHoa3XPVZAd4P/nqGNZ40AwwmPt1uYcDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHdsiTJDyeayO+pVrY477GuV+YFkQwRCmPk4pnO3+itGHbfKWPz38je2MKESjKDub4VHDKVGzGvcmmvK2eRaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHdsiTJDyeayO+pVrY477GuV+YFkQwRCmPk4pnO3+itGHbfKWPz38je2MKESjKDub4VHDKVGzGvcmmvK2eRaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHdsiTJDyeayO+pVrY477GuV+YFkQwRCmPk4pnO3+itGHbfKWPz38je2MKESjKDub4VHDKVGzGvcmmvK2eRaCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","101"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHrzT2KgPusG8Ij7ZHWb9fGioXJsNfvAsyfqKVzz7z+T1cpPk5z47olvThZFrZdJybF84c62rZ+1IWr4wlEZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","101"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHrzT2KgPusG8Ij7ZHWb9fGioXJsNfvAsyfqKVzz7z+T1cpPk5z47olvThZFrZdJybF84c62rZ+1IWr4wlEZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","101"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHrzT2KgPusG8Ij7ZHWb9fGioXJsNfvAsyfqKVzz7z+T1cpPk5z47olvThZFrZdJybF84c62rZ+1IWr4wlEZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","101"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zHrzT2KgPusG8Ij7ZHWb9fGioXJsNfvAsyfqKVzz7z+T1cpPk5z47olvThZFrZdJybF84c62rZ+1IWr4wlEZAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","101010"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Lt8rWQc9Og7mR08v6NMXojluB1uahrUeuGyWfh0R26FLdzukXWK7Wv64AD3EMPjhwf6x575HJZrrBbS8oip3BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","pkg_path":"gno.land/r/varmeta/vmt721","func":"Mint","args":["g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","12"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gFWIM29YeSgDPT52BakaHHKaYntIz99mKG8jaWnYye/eXAB/dRNOSEv4ghS7aesu+PR+Ld6ll2wb1qHQB8gTBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"1000000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null},{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"1000000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VlrR1UDY9Gr5NIQirHAXEXHL1s1voIsANxjLSfbz3JW6NfDJ+clVtkv4luLAvaYvwYfydRmjCZqg1ziEjiuFBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"1000000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Y8kj59q5k0xp73PXNH8X+4zUg0kUjFfqqksndPvPhFkBJpyp38PKQriqrv8Sr88X05iRt60jU0aPs+ceF/h7Aw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"1000000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZG5O24rtcEH7HjhXgPNgw/7MUOQN7GYgxtZGVkfV1XmmJCbes8r87OW4FAYQYlH47HkU/b5FL5zH0LcLNLOtDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"1000ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nwamNcp86B5HxMYmVaWN0J0hqJn5ILiATA7c1f24ja8tFZrOPn8w4BneSL6G71FjbTm2/a2eAIL3OYppy0wGBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"1ugnot","pkg_path":"gno.land/r/demo/wugnot","func":"Deposit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2r/xblKPapW1GqwWig2rZX4w8lkqzZ9FiXkFtwXXJiXDRKNU5Izl68TfAcCxY6cMg/5rdcwUlQzsDo7YNCqsCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","test_1","Profile description"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0+kbqxhthWLbhKEquwsj0cLqR3eOVtpDCa9eSrmT1R7nIDujTwhtp6zXRRmAujK0n9ISZ1qGODT0gZEIm/nEBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jrvc6uphe80jfupx5p9eeepfucj5cxx3tecnht","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","stefann01","string"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MyrpoVKCi83+aVIXFra1C7nq7VOtkbubsZKgRfeeLskA+XQX1x1kUmFRfKxdJm0Lg/hojPgTxeVhyCPwI10tDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jsfz4dpel62frepkwvc3wvfel082tx6dne5vax","send":"","pkg_path":"gno.land/r/leon/staging/v4/raffle","func":"RegisterUsername","args":["bmilojkovic"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jGMCSGoIG47c9p7naNuIOq+FNKVC56RThlnJjO6kNYqRNwhQmk6jvIWWlyQIwsawi1SXBYAn60QMVzWheOxwAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello at 2024-11-27 13:10 UTC"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PSGLNlzlEJR4HiYzcUIztvfja1QhdPhuesTPLQNKwI9Wq6hzWFVsfKt/TFOVMQUAq8uvikKrONplkbq9ibBcDA=="}],"memo":""},"metadata":{"timestamp":"1732713005"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello at 2024-11-29 09:35 UTC"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uOvIm+FchssvsfH0Th0JKhKbm7jeYhppe+3LfhkmvB51I1NUYS8geDsMorxWXs1R1LIj0g665jwUoGOrH3TYBA=="}],"memo":""},"metadata":{"timestamp":"1732872944"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello at 2024-12-09 09:56am UTC"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iuS5TWX+Pg+loraumNv/8T8egTvJZP39TfUk2OikKxSDEA60wkEPoE9zamu+IIhLBTBe7iglqyyc2PG3OcElAg=="}],"memo":""},"metadata":{"timestamp":"1733738176"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello at 2024-12-09 10:55am UTC"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3JtUOOcRZIEhTnIOSO6ncK5gBm8lxzI1iaVk30UgQ+Cy9hA97ycAXXMALcDb/spfV4+z4hX98Gq+/JNoukNSCw=="}],"memo":""},"metadata":{"timestamp":"1733738115"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","1","1","Hello at 2024-12-09 3:55pm UTC"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"172HbD/Uws0pJsUYdy3RbV4nj4rXZNGj26e4tf++2C/A2oywLwySAnAx7v8oGG3/vdFv5mT6Nj77aaqbKB+rDQ=="}],"memo":""},"metadata":{"timestamp":"1733759702"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"","pkg_path":"gno.land/r/demo/boards","func":"DeletePost","args":["2","1","6",""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lPccoe/lJ75pnGlqYSBIQ5HAh42hwdlrqsSTs6p9n1RpjS7H4YIYqFTqk1yxVfdzUfAFYbKMWUqKgdlyJS1CBw=="}],"memo":""},"metadata":{"timestamp":"1733738151"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1juz2yxmdsa6audkp6ep9vfv80c8p5u76e03vvh","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","jefft0","profile"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6xdHkH9mg/rearkKQ+pp1FayAKThYzTLIfL8HmQCRPKFsIHif+GeQEe0xdmSwzhkvIrOIUlfb5euJIL26AjGDw=="}],"memo":""},"metadata":{"timestamp":"1732711167"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jxkgkn0vcxhvq2ruxuj4dwvfgxa8jy48snl0d3","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HwTv735Cm4ywpXYt1gLgR8aqTGfeV/a7H9c+S1WM9P3KeoFiemG6duac2/TZfHqjzmi5mFVY79KCUYSxhv63BA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1jy5nwfghp9wh35y2va9tmd7lt7pf42dn035zwx","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"VoteMinimal","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LvtHuLdIdFodh8W093rA7fwEgvfiUKvRzPv1+Nr7l7zOw3QYJxNMMBsZFkSdhf5tGz4t4JsFe7e/xj0/WQVuCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734351992"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"EndPoll","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ItncDQ9MNctuLr7Gb4gGeIry7SN96R4JTneQfdLd3yaEK54GRWpUUqv6APrwWJcomt05gZT+o+Qf76JVpHyIAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"EndPoll","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ItncDQ9MNctuLr7Gb4gGeIry7SN96R4JTneQfdLd3yaEK54GRWpUUqv6APrwWJcomt05gZT+o+Qf76JVpHyIAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/JHprqIhej1igyW6fhHD8AYxw9F2d5henaclHYDMUGwiL/6a4lzQplyhRj5U3u8Rrtm0KgSrkmPYa5iXvpDRAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/JHprqIhej1igyW6fhHD8AYxw9F2d5henaclHYDMUGwiL/6a4lzQplyhRj5U3u8Rrtm0KgSrkmPYa5iXvpDRAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/JHprqIhej1igyW6fhHD8AYxw9F2d5henaclHYDMUGwiL/6a4lzQplyhRj5U3u8Rrtm0KgSrkmPYa5iXvpDRAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"Vote","args":["true","false","false","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"56e4+omFWhzSt9umR7zmRhgRDNYHV8h9sUfS4L/nKlk8W7qH3mW17405znKgECgqRZJWs+INzYqp7QOn2w1EDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"Vote","args":["true","true","true","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"a++MXg+RKKOuxULRtDfaNCM/RUeegiqnQ1oDGGFy2wufVJfylUQZPoiiu/dGKMu0jUM7/lq+mfVTJ8oHFdvJBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kcdd3n0d472g2p5l8svyg9t0wq6h5857nq992f","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"Vote","args":["true","true","true","true"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pB9dxQ9o35AfStB227A7kintnZQMkqMce55GoMLqhEeQXeKi/DbDPHGtZ3y/VzHW0OtG/ZaBcOgONoeOwvYsDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","send":"","pkg_path":"gno.land/r/demo/userbook","func":"GetSignupsInRange","args":["10","5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ftKQsOaJEEwt2AJLLLHHh6BTSTY7zNFpGOw3XP1jw3Dwdjpx0zWXl6yDKgJkVXToBIWNaku/EUwEFXSObUDYAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","send":"","pkg_path":"gno.land/r/demo/userbook","func":"GetSignupsInRange","args":["20","10"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3BCY3FQUqsyAKTuCe1sDHfkrJv300i6MqAuburzBgOtbX/210GcFLBbK/aM2Yv1vov0OW3Upyv8TKe/eorZVBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8x5U/W9h7IpStNHEpoWlt6MiSRaCjOtfKqywU9Eap1YcllCHt6nlTPMTgunXn5Vk68ArlJTMeh+7zcF+wsI5Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kk8v24awfkfjlw77cpz4gmwkk7gwskk8fqlmlv","send":"","pkg_path":"gno.land/r/demoyy/counter","func":"Increment","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Jzebf2phN8ZA99WsHfL/xAL1ByN32fGdivOvzPYz8XTFpIh9XnIK3DZkcg1qBX1n9Vjs9JPmnAI/AEaLbXo/Ag=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1kkhrcr7rnay67zsynmrrxmwrlfr7yfsuu669wk","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","bumwiser","bumwiser"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qw2oR3e7AC1iyyIDkZhKY1cna8sMUc7VrXLNLZnyBNDBk+uF7HeQTjlwK/a/mFXKZwcidQDSLlF3T2Q1+lmLCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterCode","args":["MZkDw5z7g8"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gRzazW7CVCNe3OeuJQz0WLAEGFbH2Yd932gDVOth91IdJqwYInn5gSFY86rCV2y1Ck+IHO2dlgHVc32lIdnZAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterCode","args":["MZkDw5z7g8"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"gRzazW7CVCNe3OeuJQz0WLAEGFbH2Yd932gDVOth91IdJqwYInn5gSFY86rCV2y1Ck+IHO2dlgHVc32lIdnZAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l5ey0leng83q33ufgh6zh06s9rf62g8apumv6p","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterUsername","args":["nprimmer"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7qhZ7wuZo+YSPW8znxtrtMXQSUk26KRn+Z/Yry4s1Zd7WL2dPAoF/QsC7CafJ2OgXXypPCwsoNNTnZV3EidbAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Hrrjls0OYmBeFYZkXBFKv1Mpw0kip7+GBoZYU+p36Rr1qQr53iXSEukfoQEjc4ek/G3ZqCsZQLns8ZGExRFDw=="}],"memo":""},"metadata":{"timestamp":"1731483219"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"60000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JjLnLgISP1MRJt63VGnAdsHostQvLj+w/UFLHZFZz+oCmDJTFjTPxGYbLcOZTZve/RtF8VBtbScRcYyYIdG0Aw=="}],"memo":""},"metadata":{"timestamp":"1731483234"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"100ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mvjLyyUHGyE2UgBrhkveESSa85lmdEcKsMkwr8JvUPVMEVg+E3KgPeuoLQ5NiJCOGbi4vdacgB59jG3/JmN8AA=="}],"memo":""},"metadata":{"timestamp":"1731483083"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"100ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mvjLyyUHGyE2UgBrhkveESSa85lmdEcKsMkwr8JvUPVMEVg+E3KgPeuoLQ5NiJCOGbi4vdacgB59jG3/JmN8AA=="}],"memo":""},"metadata":{"timestamp":"1731483093"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"110000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CFPLdwB8j97q2bvStpXXRxuca94pkVMwKvaSBa4BLm5Tkd3BkRLE/awfzt7Fhl398jD9ddQBp/xLXYTw8q/IAQ=="}],"memo":""},"metadata":{"timestamp":"1731484810"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bClT57OlBcVh3TTpQaHHJ8e4ohdmxEoPD6deAK3Pl1Z7uiU022x8brAK4q6lYLBDu+5CpLCPmosTT60EtdaUBg=="}],"memo":""},"metadata":{"timestamp":"1731483153"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bClT57OlBcVh3TTpQaHHJ8e4ohdmxEoPD6deAK3Pl1Z7uiU022x8brAK4q6lYLBDu+5CpLCPmosTT60EtdaUBg=="}],"memo":""},"metadata":{"timestamp":"1731483194"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bClT57OlBcVh3TTpQaHHJ8e4ohdmxEoPD6deAK3Pl1Z7uiU022x8brAK4q6lYLBDu+5CpLCPmosTT60EtdaUBg=="}],"memo":""},"metadata":{"timestamp":"1731483319"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bClT57OlBcVh3TTpQaHHJ8e4ohdmxEoPD6deAK3Pl1Z7uiU022x8brAK4q6lYLBDu+5CpLCPmosTT60EtdaUBg=="}],"memo":""},"metadata":{"timestamp":"1731484795"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bClT57OlBcVh3TTpQaHHJ8e4ohdmxEoPD6deAK3Pl1Z7uiU022x8brAK4q6lYLBDu+5CpLCPmosTT60EtdaUBg=="}],"memo":""},"metadata":{"timestamp":"1731485011"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"50000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bClT57OlBcVh3TTpQaHHJ8e4ohdmxEoPD6deAK3Pl1Z7uiU022x8brAK4q6lYLBDu+5CpLCPmosTT60EtdaUBg=="}],"memo":""},"metadata":{"timestamp":"1731485182"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"60000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"76tk2uikIV7nLolVj+ZZiGzbYJ3JVpDWKHDU6AySINTnMo452DU2o6u5de7KiN73RGnEEL4KZ5yPC5NLpxB+Bw=="}],"memo":""},"metadata":{"timestamp":"1731483329"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"60000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"76tk2uikIV7nLolVj+ZZiGzbYJ3JVpDWKHDU6AySINTnMo452DU2o6u5de7KiN73RGnEEL4KZ5yPC5NLpxB+Bw=="}],"memo":""},"metadata":{"timestamp":"1731485021"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"80000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CunKiqcNASGU89cOCO7Ak1qLuhXDLX+t4mKFHvnWB/TLbCOt2CcUaaoTJMrKGjMa9BO4UTPMsdKEuiIt3ksLAQ=="}],"memo":""},"metadata":{"timestamp":"1731485649"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"1ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Hello","args":["ngoc","email"]}],"fee":{"gas_wanted":"90000","gas_fee":"2ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1WOovqPv3dyqfDeGD71D1viDDuan1R/GmAUve6LJJ7TSeOEjn7l1nINt8OZIbrVdIl+ISDdk7roVHwv8mHU9Dg=="}],"memo":""},"metadata":{"timestamp":"1731485132"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"540000ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["ngoc"]}],"fee":{"gas_wanted":"100000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+LForABa3PEXuV00oMLkG5eqRIIFF34/XuHWoZuqeln6yEG6gGr+jdpDTmIwWHq8mmdFUNvT89WBifjGght8Ag=="}],"memo":""},"metadata":{"timestamp":"1731483520"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"540000ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["ngoc"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/Lab97Xp5yptq2gwjicQY+8TfFUtsVD5bXEh5q3Mc8T+RpmfihnJ+NVyHSzRjL4rel7/EKugpaW272ENLiD3Cw=="}],"memo":""},"metadata":{"timestamp":"1731483585"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"540000ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["ngoc"]}],"fee":{"gas_wanted":"200000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QGrARdHtDcCtdU70mGpzHui78V5KtJzZ4P0PmMYQOMkj3PA1OUyG7awp7Gl/GuY++aucAjBx8Ygml4jh06KxCA=="}],"memo":""},"metadata":{"timestamp":"1731483540"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"540000ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["ngoc"]}],"fee":{"gas_wanted":"60000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kwclkiAUI5PFUToGGAFJDnXwVBR/dLigMK4eCukEPWZQxZyqLDMD5Qlbsa2BFO4ZUPPstwe9nNPeyy5FfybQBA=="}],"memo":""},"metadata":{"timestamp":"1731483495"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1l8dvjrcue7jlt33mhvw4whh9xz208eadkkhtxq","send":"540000ugnot","pkg_path":"gno.land/r/varmeta/walletdemo","func":"Recieve","args":["ngoc"]}],"fee":{"gas_wanted":"70000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+F8p70S1or/ojdIHuPisOz9Kb7OLwbQjx/GgPNQ5o6JyoJtqYmqhNUULuzi3ps3as+AGWJc91ewooLNtAwPfAg=="}],"memo":""},"metadata":{"timestamp":"1731483505"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bB849ZO1dZJErGjI/JuL+mJW7xUD0tKh2TO04LuK0pMHFgtIyq7xrpZ31L+164j1wLwH6WjQbSePLH2m7h5yCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bB849ZO1dZJErGjI/JuL+mJW7xUD0tKh2TO04LuK0pMHFgtIyq7xrpZ31L+164j1wLwH6WjQbSePLH2m7h5yCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bB849ZO1dZJErGjI/JuL+mJW7xUD0tKh2TO04LuK0pMHFgtIyq7xrpZ31L+164j1wLwH6WjQbSePLH2m7h5yCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bB849ZO1dZJErGjI/JuL+mJW7xUD0tKh2TO04LuK0pMHFgtIyq7xrpZ31L+164j1wLwH6WjQbSePLH2m7h5yCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bB849ZO1dZJErGjI/JuL+mJW7xUD0tKh2TO04LuK0pMHFgtIyq7xrpZ31L+164j1wLwH6WjQbSePLH2m7h5yCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lafcru2z2qelxr33gm4znqshmpur6l9sl3g2aw","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bB849ZO1dZJErGjI/JuL+mJW7xUD0tKh2TO04LuK0pMHFgtIyq7xrpZ31L+164j1wLwH6WjQbSePLH2m7h5yCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lavlav7zwsjqlzzl3qdl3nl242qtf638vnhdjh","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1pfGw481YoKvdS9PC0ak1D1P6iU8jWWNylrkKA02WXSLd+2IK9iH81QfX8PtUi9OEYFOtJelwS8r6S+23kCsAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1le0nkphlasm4vftr8vd5rkr5644cq5lh3dl656","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H/TQA62/LYaqQsc6fSb+zod3LDvUp/UkU3UMZOf0pJxuXnuuAORJifNFrhOUKsYdBWzb9U0Mh9JB+P48h/XXBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","send":"","pkg_path":"gno.land/r/g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c/deploytest","func":"RunTest","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yrrkqs6akoF/bnBdYuhpYC2TZlK5F7DBsPU1JD8AtHzA6BgAuTZJHYIbDM9g/EfMfAkvmW2fUORgVmVP5f44DQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1732028104"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","send":"","pkg_path":"gno.land/r/gnoswap/v1/pool","func":"CreatePool","args":["gno.land/r/onbloc/bar","gno.land/r/onbloc/baz","3000","79228162514264337593543950336"]},{"@type":"/vm.m_call","caller":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","send":"","pkg_path":"gno.land/r/onbloc/bar","func":"Approve","args":["g148tjamj80yyrm309z7rk690an22thd2l3z8ank","9223372036854775807"]},{"@type":"/vm.m_call","caller":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","send":"","pkg_path":"gno.land/r/onbloc/baz","func":"Approve","args":["g148tjamj80yyrm309z7rk690an22thd2l3z8ank","9223372036854775807"]},{"@type":"/vm.m_call","caller":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","send":"","pkg_path":"gno.land/r/gnoswap/v1/position","func":"Mint","args":["gno.land/r/onbloc/bar","gno.land/r/onbloc/baz","3000","-6960","6960","100000000","99999999","99500000","99499999","7282571140","g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c"]},{"@type":"/vm.m_call","caller":"g1lmvrrrr4er2us84h2732sru76c9zl2nvknha8c","send":"","pkg_path":"gno.land/r/gnoswap/v1/gnft","func":"SetTokenURILast","args":null}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zPy4J7gJqiZKt7VDVuCuVveZ5ySeGr5nDdPXLzII0mhHKDXO9JG13+k0FXfKQbIzD8YhG2hbixMiBq9poRD3DQ=="}],"memo":""},"metadata":{"timestamp":"1732030474"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Dge/5H+hQu2B2zX3lHZ0IlkBQs2DtVsGuOwNrTQAxaeucjZD6ZJl77k0R+0I7IS2sSDvAs8UHg/BUMG08NczAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FLE8NPPRQvYcpJKmQZC2VGQkrNAfcRyQRdvp5xoOI/XeHX7fr6CSIwgwSENdooEX3aGT5laDRuO2RpCthpxwCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun/gnome/dao/v1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yRqtvOE+0bOM1RAfyQK3lzaAhAC/Tji23gDQo8LEcADUOfhF5YWj1Ol0hTb4FvcGIQa4cL8JHlleTjyG+L4qCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"SubmitSubDAOCreationProposal","args":["Create a \"Community\" SubDAO","","council/main","community","Community","The Community DAO is responsible for adding and voting on new SubDAO sections that will be part of the Gno.me ecosystem. Gno.me is a community and educational platform therefore the Community DAO is responsible for adding and voting on sections needed for Gno.me: tutorials, new events and more that will be aggregated and added to the Gno.me Home/Ecosystem.","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"havtCzm1FMa/iQg7DRjCL4PcoNKHc1f2Rz7eMA2csXGw6Spl0kFUtqrrPGidLnRx82EOc2B0RcfWeBwrvALWDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"SubmitSubDAOCreationProposal","args":["Create a \"Community\" SubDAO","","council/main","community","Community","The Community DAO is responsible for adding and voting on new SubDAO sections that will be part of the Gno.me ecosystem. Gno.me is a community and educational platform therefore the Community DAO is responsible for adding and voting on sections needed for Gno.me: tutorials, new events and more that will be aggregated and added to the Gno.me Home/Ecosystem.","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"havtCzm1FMa/iQg7DRjCL4PcoNKHc1f2Rz7eMA2csXGw6Spl0kFUtqrrPGidLnRx82EOc2B0RcfWeBwrvALWDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"SubmitSubDAOCreationProposal","args":["Create a \"Tutorials\" SubDAO","","council/main/community","tutorials","Tutorials","The Tutorials DAO is responsible for approving the publication of Gno and gno.land tutorials into the Gno.me Home/Ecosystem. Tutorials are currently drafted, reviewed and merged on Github and then transferred to a proposal vote to add to the published tutorials list.","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev\ng1lavlav7zwsjqlzzl3qdl3nl242qtf638vnhdjh devrel\ng1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2 devrel proposer\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7 devrel editor"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8/EKFEzqsat6e1RymUjRVgASWsOl+WizoPHVPNfubv3XFcH21fpVbTKhB/B3rxqS/Sra4b2wLcllKCP3rG2TAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"SubmitSubDAOCreationProposal","args":["Create a \"Tutorials\" SubDAO","","council/main/community","tutorials","Tutorials","Tutorials DAO is responsible for adding and voting on new tutorials for the Gno language and gno.land ecosystem.","g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun dev\ng125t352u4pmdrr57emc4pe04y40sknr5ztng5mt dev\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5 eco-dev"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nCA8sZOjUtCI1+sWxECpT3dwEm8f5QakpfhrnnDP0F9b+1lu4R9XpuR3A/ucCnPhnayp348Nvv+dijschi3lBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"llS3Krweqvb+iemLCdeVI5h4UwXV6vtFuQr0S6JpUPIe+r6GK4EctJ0U4m3B+zdXxicJZt3HvN7MVzRCse/PAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6t2D+UdBaUOMGdAQz0GKMBYFBDpGMAafMeT+jklRsVM8wFyk1NGm8yaCQDjCZkzCS4iuQB18MYbr0aI1oseZCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["2","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6t2D+UdBaUOMGdAQz0GKMBYFBDpGMAafMeT+jklRsVM8wFyk1NGm8yaCQDjCZkzCS4iuQB18MYbr0aI1oseZCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre1","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"P3lZCBaL+0sACLQkeXZTsx13stNW6nXT3jRnykQlQnmr3Wryn/XkNxze5rntoei4xcE11JcJi+DMrPQuubLMBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre2","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hPzryTMio9kYkLX+k5o3l1NfTyzJRJPW3ubts+DYJc9jyulIME6ESLcyjCxiCC+mIxlCTJBYKEre7kw4nNw/Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1lyzcpa7duh69lk04nahxup484xrz4k6k2nqdun","send":"","pkg_path":"gno.land/r/gnome/dao/pre2","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wRd2UuzmW7tpMdSkPZJCzlH+Du9i7R/KJygyWEC580OvVz2+aM9kdfBmDYAMZLIlZ33Uk66ZYcoESMOVxRpNAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateBoard","args":["manfred"]}],"fee":{"gas_wanted":"2000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E5y2Qpqh/OrV1Gw8BNmoFrnkUYrOjn/7D30MV4RHnk1iJMfXUsd0y3LGsuJWLAF/JmLeoBH3ndEJ8DMgGCcbBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateBoard","args":["manfred"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DBVfXvepAGJV+dJet98SDVGDUrZx06FPruhLy8tIfUfL84bDCRYhnCU9KTT43gXMkM2JFOqdU0a2zDTTRWpGCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","1","Hello !"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IEgi3GfXAZSH1u+KIUlbVvFZGfqNlYoRtU5SUa/BbY8Xn+NWnorPFjcMBo+So27a6tZvYLdcMXLd5unh7lF1Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","1","6","Hello."]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9Yk9/TdK/aesY5xCpc6a1I6VgOjS6Ve7rHkPcOZCN/Y6Gqr8E7AfhW2AhjJfLOjD4s/7t3V+qF1zxOY/s+xfCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["1","3","3","hello world!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IeB61IygAffUMHvlyX6+F7WrpnF03o2sn8KCdvAwYmWJL3wrwoV7YR70GwZR+39T+gKd+aII1aJNebsPd9cTAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateReply","args":["2","2","2","test"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qGRuMG9mP1BaCNNbmI/AjXO58bHziCnV5dt/NL0cUp95+304kX5P51RFaO0m9zz3YVrPusUMfxqG0XSpdnF5Dw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Getting Started","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### Build `gnokey`.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add KEYNAME --recover\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\n## Interact with the blockchain:\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR --remote localhost:26657\n```\n\nNOTE: you can retrieve your `ACCOUNT_ADDR` with `./build/gnokey list`.\n\n### Acquire testnet tokens using the official faucet.\n\nGo to https://gno.land/faucet\n\n### Create a board with a smart contract call.\n\nNOTE: `BOARDNAME` will be the slug of the board, and should be changed.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateBoard\" --args \"BOARDNAME\" --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"BOARDNAME\\\")\" --remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateThread\" --args BOARD_ID --args \"Hello gno.land\" --args\\#file \"./examples/gno.land/r/demo/boards/example_post.md\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateReply\" --args \"BOARD_ID\" --args \"1\" --args \"1\" --args \"Nice to meet you too.\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:BOARDNAME/1\" --remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:gnolang\"\n```\n\n## Starting a local `gnoland` node:\n\n### Add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mneonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### Start `gnoland` node.\n\n```bash\n./build/gnoland\n```\n\nNOTE: This can be reset with `make reset`\n\n### Publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\n### Publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 300000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3bdK5jBhtPGqNaoC0jRRukWlcq1U1T55P/AIt2DLZNhEka4LaKgTqdAx4YfjS23oqxAQxYQuggb3cZ+I8d7XBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Getting Started","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### Build `gnokey`.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add KEYNAME --recover\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\n## Interact with the blockchain:\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR --remote localhost:26657\n```\n\nNOTE: you can retrieve your `ACCOUNT_ADDR` with `./build/gnokey list`.\n\n### Acquire testnet tokens using the official faucet.\n\nGo to https://gno.land/faucet\n\n### Create a board with a smart contract call.\n\nNOTE: `BOARDNAME` will be the slug of the board, and should be changed.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateBoard\" --args \"BOARDNAME\" --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"BOARDNAME\\\")\" --remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateThread\" --args BOARD_ID --args \"Hello gno.land\" --args\\#file \"./examples/gno.land/r/demo/boards/example_post.md\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateReply\" --args \"BOARD_ID\" --args \"1\" --args \"1\" --args \"Nice to meet you too.\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:BOARDNAME/1\" --remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:gnolang\"\n```\n\n## Starting a local `gnoland` node:\n\n### Add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mneonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### Start `gnoland` node.\n\n```bash\n./build/gnoland\n```\n\nNOTE: This can be reset with `make reset`\n\n### Publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\n### Publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 300000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3bdK5jBhtPGqNaoC0jRRukWlcq1U1T55P/AIt2DLZNhEka4LaKgTqdAx4YfjS23oqxAQxYQuggb3cZ+I8d7XBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Getting Started","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### Build `gnokey`.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add KEYNAME --recover\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\n## Interact with the blockchain:\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR --remote localhost:26657\n```\n\nNOTE: you can retrieve your `ACCOUNT_ADDR` with `./build/gnokey list`.\n\n### Acquire testnet tokens using the official faucet.\n\nGo to https://gno.land/faucet\n\n### Create a board with a smart contract call.\n\nNOTE: `BOARDNAME` will be the slug of the board, and should be changed.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateBoard\" --args \"BOARDNAME\" --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"BOARDNAME\\\")\" --remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateThread\" --args BOARD_ID --args \"Hello gno.land\" --args\\#file \"./examples/gno.land/r/demo/boards/example_post.md\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateReply\" --args \"BOARD_ID\" --args \"1\" --args \"1\" --args \"Nice to meet you too.\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:BOARDNAME/1\" --remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:gnolang\"\n```\n\n## Starting a local `gnoland` node:\n\n### Add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mneonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### Start `gnoland` node.\n\n```bash\n./build/gnoland\n```\n\nNOTE: This can be reset with `make reset`\n\n### Publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\n### Publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 300000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3bdK5jBhtPGqNaoC0jRRukWlcq1U1T55P/AIt2DLZNhEka4LaKgTqdAx4YfjS23oqxAQxYQuggb3cZ+I8d7XBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Getting Started","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm\nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n\n\n## Build `gnokey`, create your account, and interact with Gno.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### Build `gnokey`.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake\n```\n\n### Generate a seed/mnemonic code.\n\n```bash\n./build/gnokey generate\n```\n\nNOTE: You can generate 24 words with any good bip39 generator.\n\n### Create a new account using your mnemonic.\n\n```bash\n./build/gnokey add KEYNAME --recover\n```\n\nNOTE: `KEYNAME` is your key identifier, and should be changed.\n\n### Verify that you can see your account locally.\n\n```bash\n./build/gnokey list\n```\n\n## Interact with the blockchain:\n\n### Get your current balance, account number, and sequence number.\n\n```bash\n./build/gnokey query auth/accounts/ACCOUNT_ADDR --remote localhost:26657\n```\n\nNOTE: you can retrieve your `ACCOUNT_ADDR` with `./build/gnokey list`.\n\n### Acquire testnet tokens using the official faucet.\n\nGo to https://gno.land/faucet\n\n### Create a board with a smart contract call.\n\nNOTE: `BOARDNAME` will be the slug of the board, and should be changed.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateBoard\" --args \"BOARDNAME\" --gas-fee \"1000000ugnot\" --gas-wanted \"2000000\" --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateBoard\n\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"BOARDNAME\\\")\" --remote localhost:26657\n```\n\n### Create a post of a board with a smart contract call.\n\nNOTE: If a board was created successfully, your SEQUENCE_NUMBER would have increased.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateThread\" --args BOARD_ID --args \"Hello gno.land\" --args\\#file \"./examples/gno.land/r/demo/boards/example_post.md\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateThread\n\n### Create a comment to a post.\n\n```bash\n./build/gnokey maketx call KEYNAME --pkgpath \"gno.land/r/demo/boards\" --func \"CreateReply\" --args \"BOARD_ID\" --args \"1\" --args \"1\" --args \"Nice to meet you too.\" --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\nInteractive documentation: https://gno.land/r/demo/boards$help\u0026func=CreateReply\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:BOARDNAME/1\" --remote localhost:26657\n```\n\n### Render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:gnolang` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:gnolang\"\n```\n\n## Starting a local `gnoland` node:\n\n### Add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mneonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### Start `gnoland` node.\n\n```bash\n./build/gnoland\n```\n\nNOTE: This can be reset with `make reset`\n\n### Publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 2000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n\n### Publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100000000ugnot --gas-fee 1000000ugnot --gas-wanted 300000000 --broadcast=true --chainid portal-loop --remote localhost:26657\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3bdK5jBhtPGqNaoC0jRRukWlcq1U1T55P/AIt2DLZNhEka4LaKgTqdAx4YfjS23oqxAQxYQuggb3cZ+I8d7XBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["2","hello world 2","Hello :) 2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YffKdAhyHO3QE0SfLrsZ9mfzjlLrsi1aSMb87BgLUBzV1mVXl26jkdZ5MGXrHykKgiGyHJwmiXrJETS6+UxZCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["2","hello world","Hello :)"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"G1EMUYvwB4nrBcyYMJI7+D0YJAGS3Waobp8rm1sMy/GSxfukwWHOCniHWHaZ9ANGbCCAWV87ZqliJWJxUdVLAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/grc20factory","func":"New","args":["moul","MOUL","4","1000000000","100000"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"x8VIruM1A/JpM8hgbDAXsQObo2mCngsVH2Vze8l+AvR1OolWKSqjkqtkKlhBtHSv9UdfTZjZE5f5o9ed3EW2Dg=="}],"memo":""},"metadata":{"timestamp":"1736429335"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/grc20factory","func":"New","args":["moul","MOUL","4","1000000000","100000"]}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B1PFyKgJ+9FwFuDEoalwpF9iGx5/LxZnRMKotbxMerctGz4f+e78oPLPr9ULIIECdFQmgnCrCrqZCQsS0S5LDw=="}],"memo":""},"metadata":{"timestamp":"1736429345"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rdG6b4W6VRkLBqDuH9kJKoX7CaoOLQqrVoh+nYI2qOVfqsny/KkOxEIky3FMeexuSaVx3lgp/dISKCrug1qoCg=="}],"memo":""},"metadata":{"timestamp":"1733829466"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"GQRZl0xNVkbLYedMxAXgrwUVgtwrgOBoIgmMz1E1GdFat1QPXtOT1HZ9ki1Luy/4PSjzsfMrn0rsdFLSfAVXAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz\ng187982000zsc493znqt828s90cmp6hcp2erhu6m\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t\n"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F6tLLH2JZqsQW0f/VLHoeLycKXZBppILXGKGp7TGNE7KNjDz0zVa1onYBXx8EDmXPsBwvqASb8ogFHmpDFMhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz\ng187982000zsc493znqt828s90cmp6hcp2erhu6m\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t\n"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F6tLLH2JZqsQW0f/VLHoeLycKXZBppILXGKGp7TGNE7KNjDz0zVa1onYBXx8EDmXPsBwvqASb8ogFHmpDFMhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz\ng187982000zsc493znqt828s90cmp6hcp2erhu6m\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t\n"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F6tLLH2JZqsQW0f/VLHoeLycKXZBppILXGKGp7TGNE7KNjDz0zVa1onYBXx8EDmXPsBwvqASb8ogFHmpDFMhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz\ng187982000zsc493znqt828s90cmp6hcp2erhu6m\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t\n"]}],"fee":{"gas_wanted":"4000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F6tLLH2JZqsQW0f/VLHoeLycKXZBppILXGKGp7TGNE7KNjDz0zVa1onYBXx8EDmXPsBwvqASb8ogFHmpDFMhBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g16jpf0puufcpcjkph5nxueec8etpcldz7zwgydq"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1nV1K10oYIresjczIFVDkcWi/Fx7dWeOVRoxXwGSyvvAJi8wl2Bf8oyvtwzy0nW/q6p3guuFro+awLXObtwQDg=="}],"memo":""},"metadata":{"timestamp":"1732288512"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1j39fhg29uehm7twwnhvnpz3ggrm6tprhq65t0t"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Mj8a+m3mtwsuqOtdyiY85dQgeRBw32nbx2Txzz3eG2CssBG1zPjRTsfEXRid3tCNxWN70WLxjvH5A6PJ2QNiCA=="}],"memo":""},"metadata":{"timestamp":"1731956961"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"neKn4K/SH5nDzVX4pa0bXdkrXdarPm8XLJa5zMxv524mqaJHS0/jVOxzeYvkMq/aRYYNDLQcO/GiT5GEHd6vCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1thlf3yct7n7ex70k0p62user0kn6mj6d3s0cg3\ng1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yLoHyZgaLE0oqYEzsaeCH1RxKw66CLWc7uS6g0z13s6td1mSg/IUezuu/u83brCoLEgVU2OOB+vd9V4RCDw4DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1thlf3yct7n7ex70k0p62user0kn6mj6d3s0cg3\ng1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+Dxkx5rPK04/TO3W6dq7XCDdppAJpKCt9jyGY2lgHj91LiHkpiJFbh285qFR0iAm/E7HfzMxn7/RB8KtjoE4Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1thlf3yct7n7ex70k0p62user0kn6mj6d3s0cg3\ng1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+Dxkx5rPK04/TO3W6dq7XCDdppAJpKCt9jyGY2lgHj91LiHkpiJFbh285qFR0iAm/E7HfzMxn7/RB8KtjoE4Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1thlf3yct7n7ex70k0p62user0kn6mj6d3s0cg3\ng1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\ng1manfred47kzduec920z88wfr64ylksmdcedlf5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+Dxkx5rPK04/TO3W6dq7XCDdppAJpKCt9jyGY2lgHj91LiHkpiJFbh285qFR0iAm/E7HfzMxn7/RB8KtjoE4Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj:10\ng1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s:1\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8:1\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q:1\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj:1\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0:1\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz:1\ng187982000zsc493znqt828s90cmp6hcp2erhu6m:1\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl:1\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037:1\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5:1\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr:1\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz:1\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w:1\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz:1\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3:1\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0:1\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n:1\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac:1\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap:1\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv:1\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv:1\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq:1\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6:1\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q:1\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7:1\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k:1\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll:1\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd:1\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64:1\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw:1\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a:1\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc:1\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6:1\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6:1\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9:1\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea:1\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3:1\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp:1\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5:1\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf:1\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g:1\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r:1\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su:1\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69:1\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6:1\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa:10\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t:5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RVRVkqURX1PcHzxY1eHBg6LME3ellLdoeLm4xzd5QXW+eCxPlCg/ultzQq2MbF6ErhqY/VAcVVyrl/fENmJbBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj:10\ng1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s:1\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8:1\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q:1\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj:1\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0:1\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz:1\ng187982000zsc493znqt828s90cmp6hcp2erhu6m:1\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl:1\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037:1\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5:1\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr:1\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz:1\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w:1\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz:1\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3:1\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0:1\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n:1\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac:1\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap:1\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv:1\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv:1\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq:1\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6:1\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q:1\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7:1\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k:1\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll:1\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd:1\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64:1\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw:1\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a:1\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc:1\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6:1\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6:1\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9:1\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea:1\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3:1\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp:1\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5:1\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf:1\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g:1\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r:1\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su:1\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69:1\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6:1\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa:10\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t:5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RVRVkqURX1PcHzxY1eHBg6LME3ellLdoeLm4xzd5QXW+eCxPlCg/ultzQq2MbF6ErhqY/VAcVVyrl/fENmJbBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj:10\ng1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s:1\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8:1\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q:1\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj:1\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0:1\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz:1\ng187982000zsc493znqt828s90cmp6hcp2erhu6m:1\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl:1\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037:1\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5:1\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr:1\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz:1\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w:1\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz:1\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3:1\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0:1\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n:1\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac:1\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap:1\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv:1\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv:1\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq:1\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6:1\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q:1\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7:1\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k:1\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll:1\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd:1\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64:1\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw:1\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a:1\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc:1\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6:1\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6:1\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9:1\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea:1\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3:1\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp:1\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5:1\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf:1\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g:1\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r:1\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su:1\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69:1\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6:1\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa:10\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t:5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RVRVkqURX1PcHzxY1eHBg6LME3ellLdoeLm4xzd5QXW+eCxPlCg/ultzQq2MbF6ErhqY/VAcVVyrl/fENmJbBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Invite","args":["g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj:10\ng1589c8cekvmjfmy0qrd4f3z52r7fn7rgk02667s:1\ng13sm84nuqed3fuank8huh7x9mupgw22uft3lcl8:1\ng1m6732pkrngu9vrt0g7056lvr9kcqc4mv83xl5q:1\ng1wg88rhzlwxjd2z4j5de5v5xq30dcf6rjq3dhsj:1\ng18pmaskasz7mxj6rmgrl3al58xu45a7w0l5nmc0:1\ng19wwhkmqlns70604ksp6rkuuu42qhtvyh05lffz:1\ng187982000zsc493znqt828s90cmp6hcp2erhu6m:1\ng1ndpsnrspdnauckytvkfv8s823t3gmpqmtky8pl:1\ng16ja66d65emkr0zxd2tu7xjvm7utthyhpej0037:1\ng1ds24jj9kqjcskd0gzu24r9e4n62ggye230zuv5:1\ng1trkzq75ntamsnw9xnrav2v7gy2lt5g6p29yhdr:1\ng1rrf8s5mrmu00sx04fzfsvc399fklpeg2x0a7mz:1\ng19p5ntfvpt4lwq4jqsmnxsnelhf3tff9scy3w8w:1\ng1tue8l73d6rq4vhqdsp2sr3zhuzpure3k2rnwpz:1\ng14hhsss4ngx5kq77je5g0tl4vftg8qp45ceadk3:1\ng1768hvkh7anhd40ch4h7jdh6j3mpcs7hrat4gl0:1\ng15fa8kyjhu88t9dr8zzua8fwdvkngv5n8yqsm0n:1\ng1xhccdjcscuhgmt3quww6qdy3j3czqt3urc2eac:1\ng1z629z04f85k4t5gnkk5egpxw9tqxeec435esap:1\ng1pfldkplz9puq0v82lu9vqcve9nwrxuq9qe5ttv:1\ng152pn0g5qfgxr7yx8zlwjq48hytkafd8x7egsfv:1\ng1cf2ye686ke38vjyqakreprljum4xu6rwf5jskq:1\ng1c5shztyaj4gjrc5zlwmh9xhex5w7l4asffs2w6:1\ng1lhpx2ktk0ha3qw42raxq4m24a4c4xqxyrgv54q:1\ng1026p54q0j902059sm2zsv37krf0ghcl7gmhyv7:1\ng1n4yvwnv77frq2ccuw27dmtjkd7u4p4jg0pgm7k:1\ng13m7f2e6r3lh3ykxupacdt9sem2tlvmaamwjhll:1\ng19uxluuecjlsqvwmwu8sp6pxaaqfhk972q975xd:1\ng1j80fpcsumfkxypvydvtwtz3j4sdwr8c2u0lr64:1\ng1tjdpptuk9eysq6z38nscqyycr998xjyx3w8jvw:1\ng19t3n89slfemgd3mwuat4lajwcp0yxrkadgeg7a:1\ng1yqndt8xx92l9h494jfruz2w79swzjes3n4wqjc:1\ng13278z0a5ufeg80ffqxpda9dlp599t7ekregcy6:1\ng1ht236wjd83x96uqwh9rh3fq6pylyn78mtwq9v6:1\ng1fj9jccm3zjnqspq7lp2g7lj4czyfq0s35600g9:1\ng1wwppuzdns5u6c6jqpkzua24zh6ppsus6399cea:1\ng1k8pjnguyu36pkc8hy0ufzgpzfmj2jl78la7ek3:1\ng1e8umkzumtxgs8399lw0us4rclea3xl5gxy9spp:1\ng14qekdkj2nmmwea4ufg9n002a3pud23y8k7ugs5:1\ng19w2488ntfgpduzqq3sk4j5x387zynwknqdvjqf:1\ng1495y3z7zrej4rendysnw5kaeu4g3d7x7w0734g:1\ng1hygx8ga9qakhkczyrzs9drm8j8tu4qds9y5e3r:1\ng1f977l6wxdh3qu60kzl75vx2wmzswu68l03r8su:1\ng1644qje5rx6jsdqfkzmgnfcegx4dxkjh6rwqd69:1\ng1mzjajymvmtksdwh3wkrndwj6zls2awl9q83dh6:1\ng14da4n9hcynyzz83q607uu8keuh9hwlv42ra6fa:10\ng14vhcdsyf83ngsrrqc92kmw8q9xakqjm0v8448t:5\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RVRVkqURX1PcHzxY1eHBg6LME3ellLdoeLm4xzd5QXW+eCxPlCg/ultzQq2MbF6ErhqY/VAcVVyrl/fENmJbBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","moul","https://github.com/moul"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"APPbOE1DmuqMpQfjIF9pRQEFZqiZ82/yqdmWYJ6KE3Gb4m+fzGn9iOgwHXjMBF74vK3q7hEYzYc/sxGuPQNSDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/docs/add","func":"Add","args":["42"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PBgAhO7FZIUTYVtQJlb7x9c1TDelOAM00QqzpF7Ki6rtbB5myDyOeTCUEbeqhIwnPmgc4690Ead9LhxtwU05DA=="}],"memo":""},"metadata":{"timestamp":"1732102024"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/docs/adder","func":"Add","args":["42"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3+K8lsrKxRFatvmfsVYE0Gt0sQ4BKCXp/f/sRxT7aBZVMFcFdqp+qEswgH5MwHHUDQZO3GybM3sseEg2lCJwAw=="}],"memo":""},"metadata":{"timestamp":"1734454422"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/docs/buttons","func":"UpdateMOTD","args":["Hello World!"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"et5E/IMME0+YByQ1R+P2YZ/kCeQ9761aPOyT+rZmHU24FQlT6Y6qGKHEpPjEuYOToJBMLMPw+Zvz7bCOAB0mBg=="}],"memo":""},"metadata":{"timestamp":"1733656607"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"AdminAddModerator","args":["g125em6arxsnj49vx35f0n0z34putv5ty3376fg5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RrTQ5amRuMGfwyz3z7q48shXAmZhTCXVNl8fUVIn3PinxF8/lJg7xbmkLL/Yluk8RnhlZ9xuEr5YoHy/qg8HAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc1","Building Gno.land – Next Generation Smart Contract System","\n*Disclaimer: The Building Gno.land series aims to share the core concepts of our platform, mission, and tech stack, providing a snapshot of a current state on our builder’s journey. New episodes may deprecate previous ones, but no editions will be modified at any time. We encourage you to follow along as we create the rails for a more transparent and accountable society, and we welcome feedback and contributions to the repo.*\n\n## I. What Is Proof of Contribution (PoC)?\n\nGno.land is secured by a novel consensus mechanism that makes our platform unique—Proof of Contribution (PoC). PoC prioritizes fairness and merit, rewarding the people most active on the platform and revolutionizing the concept of open-source rewards. By removing the voting power associated with being wealthy (holding tokens in Proof-of-Stake (PoS) networks or amassing mining hardware in Proof-of-Work (PoW) networks), PoC restructures the financial incentives that tend to corrupt blockchain projects in the long run and rewards contributors fairly for their work based on their expertise, commitment, and values. \n\nGno.land contributors receive rewards and voting power according to their contribution level. These rewards increase as they make additional contributions, gain expertise, and are promoted up the Gno.land governing DAO’s (GovDAO) tier levels by higher-level contributors. So how does PoC work, what are its core features, and how does it lend security and decentralization to the platform? \n\n### Prioritizing Fairness and Alignment \n\nProof of Stake (PoS) was a monumental leap forward for the blockchain industry, solving the energy-intensive requirements of Proof of Work (PoW) and enabling blockchains to scale for broader adoption (thanks to its minimal carbon footprint and faster throughput). However, like PoW, PoS has some disadvantages. For example, in PoS networks, participants receive rewards based on how many tokens they stake, which means their incentives for working on the chain are often purely financial. Validators accumulate vast net worths and don’t always hold values that align with the core development of the chain. \n\nSince validators are crucial in securing PoS networks, they should be paid fairly for their work and encouraged to contribute more. However, validators should not be purely financially (and certainly not politically) motivated, taking up competing positions and launching political campaigns to convince token holders to stake with them. This type of lobbying affects all aspects of the chain’s development—from governance to technical upgrades—and can lead to factionalism and misalignment. \n\nPoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the Gno.land community and the broader ecosystem. That’s why (unlike PoS) contributors receive rewards based on their contribution effort (tier level) rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it—from open-source developers to video creators and everyone in between.\n\n### Rethinking Financial Incentives \n\nFor long-term security and sustainability, PoC emphasizes project principles and values over monetary gains, replacing standard token incentives with a system that separates voting power from token ownership. Two reward systems are currently being considered (in addition to a hybrid system). For the first, contributors receive WORX units that weigh the amount of GNOT tokens (the native Gno.land gas token) earned each month. Each member of the same tier receives the same amount of WORX. At the end of the month, the total each member earned is divided by the total amount of WORX distributed that month to calculate a percentage. This percentage represents the percentage of Gno.land fees earmarked for contributors that each member will earn in GNOT. WORX will likely be cleared each month to prevent cumulative, exponential reward exploits over long periods of time. \n\nFor the second, each tier level simply receives an amount of GNOT each month fixed to a USD value, similar to a salary. This would be combined with risk management and caps per tier level in order to promote long-term sustainability based on Gno.land fee generation. A hybrid of this system is also possible, either rewarding contributors of lower tiers one way and higher tiers the other or using both systems in tandem based on predefined conditions. This will be explored further in future tokenomics articles, models, and documentation.\n\nRegardless, WORX units are not transferable, will not be listed on exchanges, and hold no monetary value. WORX units are more like shares that represent value provided by contributors and allow their work to be quantified compared to other contributors/tier levels. It’s important to stress that GNOT tokens do not influence governance on the platform in any way. Voting power is earned through contributions and distributed according to contribution effort, with each member of the same tier representing equal voting power that increases with their tier level. This creates a network of highly aligned contributors who care deeply about the platform they are building and strive to improve it.\n\nGNOT, the native Gno.land gas token and the gas token of the Gno.land ecosystem, will be distributed via airdrop to qualifying ATOM stakers. It will also be available for purchase after that point (*more on Gno.land’s airdrop and tokenomics coming soon*). GNOT is used to pay all fees associated with the network and beyond, including transfers, IBC, ICS, and contract interactions, giving holders the chance to earn rewards from the economic activities of Gno.land.\n\n### What Makes a Good Contribution?\n\nWORX and/or GNOT can be earned through different types of contributions—not only coding and development expertise—but also through non-technical contributions, such as community building, governance involvement, constitutional proposals, teamwork, media creation, etc. The core focus is on alignment, not necessarily specific tasks. For example, an accepted proposal or merged code will raise or at least maintain the contributor’s tier level, allowing them to receive rewards during their time working between submissions. However, a proposal or code that has displayed a very high level of effort, detail, and aligned values (but is not merged) will also be considered in any proposals regarding contributor promotion.\n\nThis system allows the ecosystem to show appreciation for diverse forms of contributions and ‘useful failures’ that bring us closer to the solutions we adopt. It is designed to foster engagement, creativity, and collaboration while encouraging anyone aligned to contribute to growing the Gno.land chain and community. \n\n### How Are Contributions Assessed?\n\nThere is a strong human element to deciding what makes a good contribution, requiring knowledgeable human judges to exercise discretion. As such, contributions won’t be templated by default or rewarded automatically but assessed through Gno.land’s governing DAO, GovDAO. GovDAO is responsible for development and governance and is organized into tiers, as discussed above.\n\nGovDAO members review, measure, and curate contributions, and the tokenomics of GovDAO incentivizes members to be effective and unbiased evaluators. They engage in discussions and assess contributions based on effort, time, and other relevant factors/metrics that contributors will have stored in their profiles. The decision-making rationale is transparent and visible through on-chain forums. Again, contributors are assigned a tier level and receive a corresponding reward each month according to their tier. As contributors join GovDAO, the DAO grows, giving Gno.land decentralization efficiency and a high Satoshi score. \n\nGovDAO is assisted by a network of knowledge-specific DAOs, such as an Engineering DAO, a Support DAO, an Operations DAO, and the EvaluationDAO, which comprises a trusted group of high-reputation contributors that help assess specific contributions. This enables secure collaboration and seamless integration (*more on Gno.land’s network of interconnected DAOs coming soon*.) \n\n### Sybil-Resistant and Secure\n\nIn addition to being fairer, more aligned, and sustainable, PoC is Sybil-resistant by design. In blockchains, a Sybil attack is where one or multiple attackers multiply their presence and influence by creating fake identities to sway major network decisions (for example, including malicious blocks). In terms of PoS, the Sybil resistance is purely monetary (people need to stake real money to get power), so an attacker that wants to carry out a Sybil attack on a PoS network needs to lock at least as much stake as that locked by honest validators.\n\nPoC minimizes risks of Sybil attacks, takeovers, and alliances as the community vets every person who is given any power or sway in the network (including validator power) through the DAO, so at no point can anyone \"spoof\" identities and regain major sway. Moreover, Gno.land is built and secured by the merit and effort put into the project, as opposed to how many tokens someone can buy, rethinking financial incentives and making the platform Sybil-resistant and secure.\n\nThrough fairer rewards, restructured incentives, resistance to corruption and Sybil attacks, and a strong appreciation for all contributions, Gno.land is designed to be sustainable and fair. A censorship-resistant platform built, owned, and secured by a growing, aligned community for many generations to come.\n\n*I. What Is Proof of Contribution? is the first in a series of articles to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*.\n","building-gnoland,gnoland,proof-of-contribution"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jbdg9jGMAqxReFJmpoDsdyOR8+GS8MsJpgOl8MU1cX5VvUxsa5o5RRQ9FRkoBTa8Fob/WTRlKKdFkEbrvZQfAQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["bgl-poc2","Building Gno.land - Proof of Contribution II","\n## II. Proof of Contribution vs Proof of Stake\n\nProof of Stake (PoS) is a robust consensus mechanism that provides a more environmentally friendly and scalable alternative to Proof of Work (PoW) and powers most of the web3 industry today. As PoS pioneers, Cosmos technology secures hundreds of blockchain projects and billions of dollars of digital assets, and Ethereum (launched as a PoW chain in 2015) made the historic switch to PoS in 2022. According to [ethereum.org](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos), PoS is “more secure, less energy-intensive, and better for implementing new scaling solutions compared to the previous proof-of-work architecture.” However, as we briefly discussed in [*What Is Proof of Contribution?*](https://test3.gno.land/r/gnoland/blog:p/bgl-poc-1), PoS has vulnerabilities that can corrupt the network over time.\n\n### The Limitations of Proof of Stake (PoS)\n\nBeyond securing the network, the main goal of any consensus mechanism (PoW, PoS, DPoS, PoC, etc.) is to be as decentralized as possible and not reliant on any central actors. This can be measured by the Satoshi Score (or the Nakamoto coefficient), a quantitative measure that assesses a blockchain’s level of decentralization by calculating the minimum number of nodes needed to compromise a network or carry out a 51% attack. PoS systems can be bootstrapped within days (or even hours), starting off decentralized and achieving a high Satoshi Score.\n\nThe PoS chain Genesis allocates a default voting power to ~20-50 nodes, in general equally (or at least making sure that no single node has more than 5% of the voting power). This makes PoS chains decentralized enough (in theory) from block 0 with a near-perfect Satoshi score. However, in practice, PoS has two main issues. Because the system is dictated by money, PoS chains become imperfect over time. Anyone wealthy enough can stake their tokens progressively and use their accumulated power to sway decision-making on the chain—or take the network over completely.\n\nThe chain can limit the maximum voting power per validator node, but this is almost ineffective, as a malicious actor can carry out a Sybil attack on the network and create multiple validators to bypass the voting cap. Such an attack renders the max voting power per node useless and leaves the chain defenseless against a single organization or cartel gaining the majority of the voting power. PoS systems leave chains like Cosmos Hub and Ethereum at risk from such bad actors, cartels, and powerful protocols (such as Lido and Rocket Pool).\n\nWhile Proof of Contribution (PoC) can’t prevent Sybil attacks on standard user accounts (when malicious actors create multiple accounts with a single computer and transfer tokens within a few hours), it does make it almost impossible for validator nodes to suffer Sybil attacks. Since the community vets every person who is given voting power or sway in the network (including validator power) through the DAO, at no point can anyone \"spoof\" identities and gain major sway. \n\n### Where Proof of Contribution (PoC) Excels\n\nPoC is actually Proof of Authority (PoA) which, instead of offering up a resource like computing power or a financial stake, relies on validators staking their reputation. Anyone can join most public PoW and PoS networks without revealing their identity. However, by definition, PoA validators need to make themselves known and are selected based on their trustworthiness. This means PoA tends to work better when deployed in private or permissioned blockchains than in public platforms (because of this tendency toward centralization). \n\nPoC solves this problem, ensuring the network becomes increasingly decentralized over time by being governed by a decentralized entity, GovDAO. Like standard PoA chains, PoC chains launch with a handful of validators that must be identified and trusted by the network, meaning governance is centralized at the start, and the chain achieves a low Satoshi Score. The system is about contributing and earning contribution units, which are slow to gain and require human interaction. It takes months (or years) before there are enough actors in the DAO and sufficient voting power for the chain to be considered decentralized enough, according to the Nakamoto coefficient. \n\nPoC is thus slower to bootstrap than PoS and harder to achieve. You can think of PoC versus PoS as a marathon versus a sprint, whereby PoC starts slowly but then gains momentum over time, and PoS starts quickly but loses momentum over time (the graph below provides a visual representation of PoC versus PoS). \n\n[![Graph](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/thumbs/graph-container.png)](https://gnolang.github.io/blog/2024-01-26_bgl-poc2/src/graph-container.png)\n\nThe GovDAO that owns the chain has a mandate to scale (to grow and decentralize) continuously as it adds more contributors. This means it becomes progressively larger over time, achieving high decentralization efficiency way beyond the initial fast sprint of PoS chains. Once established as a proven consensus mechanism and alternative to PoS, GovDAO can benefit from by any blockchain project (through an evolution of ICS) wanting to achieve decentralization and sustainability—PoC can secure Gno.land and the web3 industry at large.\n\n### Security-Conscious by Design\n\nAnother advantage of PoC is that because it’s reliant on human interactions, it is more Sybil-resistant by design. As discussed, it’s almost impossible to split a validator node into two (or more) nodes, making conducting a Sybil attack infinitely difficult. Since contribution units are not transferrable or exchangeable, PoC cannot suffer from whales attempting to purchase voting power quickly. If someone wanted to take over the network, they would need to invest years of their time making meaningful contributions. Their attack would be so slow that it would easily be prevented by humans monitoring the decentralization and adjusting the parameters. \n\nMoreover, GovDAO will activate and deactivate new validators on request, establish a KYC system for validators, and manage promotions of contributors with votes. This removes the possibility of a takeover happening overnight since the only way to gain validator or voting power is by voting on governance requests, which is slow and managed by humans. This is in contrast to PoS systems which are powerful and fully automated yet defenseless against such coordinated attacks.\n\nGno.land is built on the very premise that such an attack on a PoC network would never happen as it would be entirely counter-intuitive. Since contributions are not only about expertise but also alignment, it is our hypothesis that longstanding contributors who have invested years of time and brainpower in developing the chain will do their best to protect it rather than destroy it. The DAO system will endure thanks to the mix of expertise and alignment and the amount and frequency of contributions. \n\n### Concluding Thoughts\n\nBeyond separating voting power from net wealth, a core component of Proof of Contribution (PoC) is its focus on long-term sustainability. PoC makes the system fairer and more sustainable, ensuring participants are aligned and take actions that benefit the community and the broader ecosystem. PoC is slower to bootstrap and harder to achieve than PoS but focuses on long-term alignment and security. \n\nUnlike PoS, contributors receive rewards based on their contribution effort rather than how many tokens they stake. They are thus incentivized and recognized for the quality of their work, ideas, and alignment, driving participation and active engagement. Governance is allocated to the people most likely to care for the ecosystem’s long-term success—the contributors who have spent the most time working toward it.\n\n*II. Proof of Contribution vs Proof of Stake is the second in a [series of articles](/r/gnoland/blog:p/bgl-poc1) to dive deeply into the philosophy, vision, mechanics, and work involved in developing a new consensus mechanism for the next generation of smart contract systems. Look out for subsequent editions and additional Building Gno.land series, and let us know what you think! Got questions? Join the Gno.land [Discord](https://discord.com/invite/S8nKUqwkPn) or follow us on [Twitter/X](https://x.com/_gnoland)*\n\n\n","gnoland,gnovm,tm2,PoC"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Bv4a9hZjwCClXC8L+e4V+KjQNHDE6+MOO/y1lbKo5Ws78gRB+Rx0ZsXiiv+fD5ukMf+qiePC+Jg9MHOQUPObCw=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["chess-gc23","Play Chess with Us: The Gnolang Way at GopherCon 2023","\nCalling all gnomes and gophers! Come join the Gno.land team at GopherCon 2023, September 25 - 28, in San Diego, US. We’re sponsoring this year’s action-packed event that will gather together some of the world’s brightest minds and smartest programmers under one roof. So drop by our booth, pick up some swag, and say hey! We’ll be on hand every day to meet and greet, answer all your questions, and discuss everything Go, Gno, and beyond! We’ll also be hosting a workshop on Community Day, September 26, called ‘Chess: The Gnolang Way,’ where you can learn how to build a web3 chess server on Gno.land.\n\n## GopherCon 2023\n\n[GopherCon](https://www.gophercon.com/) is a community-driven annual event that started in 2014 and is dedicated to promoting the use of Go and the education of Go developers. Every year, thousands of gophers from around the world exchange ideas, share their work and expand the Go network. There are four days of fun-filled activities, including hands-on workshops, informative keynotes, networking events, and hackathons, all taking place in the laidback West Coast city of San Diego. Where better to expand your knowledge and make new friends than in one of the US’ most popular destinations?\n\nAs a gold sponsor at this year’s event, Gno.land will be running a booth and doing our best to convert as many gophers as possible to Gno, showing them how easy it is to port their existing web2 apps over to Gno.land or to build completely new ones from scratch.\n\n## Chess: The Gnolang Way\n\nIf you’re looking for a hands-on coding experience and to have a little fun with us at the same time, join us on Community Day for an awesome workshop, **‘Chess: The Gnolang Way.’** Kickstart your day by learning to build a web3 chess server on Gno.land using Gnolang. By the end of the session, you’ll have gathered basic knowledge on developing and deploying smart contracts on Gno.land, and connecting smart contracts to a web frontend. You’ll also see how web3 enables you to write perpetual and trustable social and gaming platforms and how to build a web3 chess server and website with Gno.land.\n\nIf you want to join us, meet us at 10:00 a.m. in the Grand Ballroom 10.\n\n## Let’s Play\n\nAfter the workshop, the fun begins with an ongoing chess tournament throughout the GC23 summit for event participants. To be in with a chance of scooping up some seriously cool prizes, GC23 attendees will need to show us their best moves and how much they engage with the Gno.land chain. This competition is designed to put our platform to the test over two main areas: chess mastery (50% of points) and platform engagement (50% of points). To be eligible for prizes, participants must be present at the event. We hope to see you there! If you can’t join us in person in San Diego, be sure to [follow us on X](https://twitter.com/_gnoland). We’ll be giving updates on our progress and sharing the highlights of the event. May the best gnome win!\n","gnoland,gnovm,gnochess,events"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Yk3ipo+vwg7MiAIm3GJtW9VNwpeDqRfvEYmpCOqFTC2ODlUze8kG4JhzQytf0enZwCBwVigJOK3o7K8jNEvuDw=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program","Announcing the Gno.land Funding and Grants Program","\nIf you’re interested in building in Gno.land and using the Gnolang (Gno) language to make a meaningful contribution, we’ve launched the Gno.land Funding and Grants Program to support you on your journey. If you’re a developer, tinkerer, researcher, or educator and you’re excited by the idea of creating innovative dApps, tooling, infrastructure, products, or smart contract libraries on Gno.land, now you can apply for funding.\n\n**About the Gnoland Funding and Grants Program**\n\nWe’re building Gno.land to endure with timeless code that will serve as a reference point for many years to come. Secured by a novel consensus mechanism, Proof of Contribution, Gno.land rewards contributors fairly, addressing one of the blockchain industry’s biggest problems. The developers that are most active on the platform with the highest quality contributions will secure the most rewards. We already have a growing community of Gnomes innovating and building on Gno.land and we’re looking to add more contributors to extend the usability of the platform and its smart contract library.\n\nOur grants program will encourage further participation by allocating financial awards and contributions to individuals and teams who want to build dApps, core infrastructure, products, or features on Gno.land, incentivizing more like-minded Gnomes to test the Proof of Contribution mechanism and push the chain to new limits. The grant amount and duration will depend on the scope and ambition of the project as well as the work involved.\n\n**Types of Contributors**\n\nThe Gno.land Funding and Grants program is divided into four different categories – tinkerer, builder, researcher, and educator – to ensure that we cater to a diverse range of people and working preferences. Here’s how we define these categories:\n\n- Tinkerer: You want to experiment and invent\n - Build dApps, improve features, and find and develop new ideas\n- Builder: You have an idea and are ready to build it\n - Build dApps, infrastructure, tooling, products, or port your existing apps to Gno\n- Researcher: You want to discover and analyze\n - Deep dive into topics linked to the Gno.land universe\n\n**What We Are Looking For**\n\nTo qualify for a Gno.land grant, we’re looking for motivated and passionate people who can contribute by developing dApps, core infrastructure, useful and innovative products, or features that improve the usability of the Gno.land chain, specifically:\n\n- Decentralized Applications (dApps)\n - What types of dApps do you want to see on Gno.land? Show us.\n - Build, test, and launch a suite of Gno.land dApps for the community, focusing on diverse use cases and industries such as DeFi, gaming, supply chain management, and social media. Ensure that these apps cater to both individual users and businesses\n - These dApps should integrate seamlessly with existing Gno.land infrastructure, encourage user interaction, and promote the adoption of Gno.land services\n- Infrastructure, DevX, Quality\n - Develop comprehensive GitHub and AWS integration for Gno.land, including streamlined deployment processes, continuous integration and delivery pipelines, and monitoring tools\n - Create Helm charts for easy deployment and management of Gno clusters, enabling users to quickly set up and scale their Gno infrastructure\n - Design and implement an event system for Gno.land contracts, allowing for real-time monitoring, analysis, and auditing of contract-related events\n - Enhance Gno.land security by conducting regular vulnerability assessments, penetration testing, and implementing best practices for secure smart contract development\n- Products\n - Develop advanced project management software tailored to the needs of Gno.land developers and teams, with features such as task tracking, collaboration tools, and integrated Gno.land services\n - Create comprehensive documentation, including guides, tutorials, and API references, to help users understand and utilize Gno.land's features and services more effectively\n - Design a censorship-resistant smart contract system, enabling secure and transparent transactions and interactions on the Gno.land platform, free from external interference\n- Interoperability \u0026 Integration\n - Implement cross-chain compatibility and interoperability, allowing Gno.land to connect and interact with other blockchain networks, expanding its potential user base and increasing its overall reach\n - Develop a powerful integrated development environment (IDE) specifically for Gno.land developers, with features like code completion, debugging tools, and seamless integration with Gno.land services\n - Design and launch a user-friendly wallet for Gno tokens, featuring a secure and intuitive interface, support for multiple devices, and easy integration with Gno.land dApps\n\nThe above guidelines are by no means exhaustive and are intended to spark your imagination and give examples of the types of contributions we’re looking for in Gno.land. We’re open-minded and willing to assess all grant proposals, so if you have an idea that’s not on the list or a suggestion that you think will benefit our vibrant community, let us know. If your submission doesn’t qualify for a grant, we’ll do our best to provide you with open and honest feedback and points for improvement, as well as identify any opportunities to get involved in our ongoing incentivized Game of Realms competition.\n\n**Meet Our First Grantees - Onbloc**\n\n**Onbloc**\n\nOnbloc is a blockchain software company building core infrastructure for Gno.land and\n\nhelping other dApp developers onboard to the Gno.land ecosystem seamlessly. The team has developed the Gno.land Developer Portal, which provides comprehensive introductory docs for developers, the Adena web3 wallet for Gno.land, and the Gnoscan block explorer. As Gno.land’s most active contributor, Onbloc is leading many community-driven initiatives and we’re excited to extend a grant to this passionate South Korea-based development team to continue their incredible work developing the wallet further, iterating the Gnoscan block explorer, and building Gno.land’s first DEX, Gnoswap.\n\nIn addition to this, we want to encourage Onbloc to continue their amazing work with the community, contributing to meetings, replying to comments on our social platforms, writing code base, organizing local events and meet-ups in South Korea, and creating products that expand the Gno.land ecosystem.\n\n*“Onbloc is thrilled to be a part of the Gno.land Grants Program. As one of the earliest contributors, our endeavors have involved releasing technical guides and research reports, developing infrastructure tools for dApps, creating DeFi smart contracts, and more. We are excited to leverage this grant to further enhance the quality of our products and strengthen our workforce. The grant will enable us to cover some of the existing expenses and hire additional developers to focus on smart contracts and the core side of GnoVM. We expect these endeavors to push the Gno.land blockchain to new limits and accelerate the achievement of the milestones on our roadmap. With the support from the Gnoland team, we are confident in our ability to make significant strides and further contributions to foster the growth of the Gnoland ecosystem.”*\n\n*Dongwon Shin, CEO, Onbloc*\n\n**Teritori**\n\nTeritori is a super-dApp project allowing individuals and organizations to interact, organize, and communicate in a radically resilient and decentralized way. Based on an interoperable vision, the application is built on a multi-chain experience approach, gradually integrating Gnolang as the fundamental technical brick of the system. Currently in Beta ([available here](https://app.teritori.com/)), the app is making modular tools and dApps available to users, with a single gamified user experience. Teritori's philosophy is to offer users and developers a place that belongs to them, their territory, with an emphasis on interoperability, modularity, and customization.\n\nUsers can interact with a social network, NFT marketplace, DAO launcher, service marketplace, games, etc., and integrate a plethora of dApps thanks to the dApp store, where Teritori will promote all Gno.land dApps to encourage the growth of the ecosystem. Using the Gno.land grant, Teritori will continue this amazing work and develop a moderation DAO to provide content moderation to Gno.land in a healthy and decentralized way, a challenge that faces the entire web3 industry. By 2024, the UX of Teritori v1 will be based on decentralized messaging without blockchain, allowing users to converse in a \"natural\" way while adding modules and web3 features. Creating and managing a GnoDAO could be as easy as managing a WhatsApp group.\n\n*“At Teritori, we want to make decentralized organizations accessible to all and experiment with new governance models for humans, social groups, businesses, and diverse organizations. Gno.land enables us to build this vision in a modular, future-proof, and censorship-resistant way. Thanks to the Grants Program, we'll be able to accelerate our development, continue to contribute proactively and build user experiences that enable as many people as possible to discover the Gnol.and ecosystem. We're starting work developing a DAO launcher, with different standard templates for DAOs, in particular, DAOs enabling moderation within news feeds, forums, or social networks. This will rapidly open many doors, such as those of conflict resolution DAOs, on-service marketplaces, or project management software. Gnol.and is a playground where anything is possible! We'll be documenting [our journey here](https://github.com/gnolang/hackerspace/issues/7#issuecomment-1588197187), and sharing our progress as we stay connected to the needs of the community.”*\n\n*Zooma, Core Lead, Teritori*\n\n**Zack**\n\nZack is the first tinkerer-in-residence at Gno.land. With a deep-rooted passion for innovation, he embraced Go early on in 2013 and ever since, has been harnessing its power to craft peer-to-peer programs and develop web2 applications. While Gno.land marks Zack's initial foray into web3 development and blockchain dApps, the Gnolang language allowed him to effortlessly apply his Golang expertise. This has enabled him to flourish within an ecosystem that revolves around decentralized systems, seamlessly transitioning his skill set to create unique decentralized solutions.\n\n*“I have always been curious about web3 and blockchain technologies but have not developed expertise in smart contract languages and struggled to keep up with the fast-changing ecosystem around blockchain technologies. As an avid Go programmer, Gno and Gno.land created the opportunity for me to develop decentralized applications on blockchains by providing a framework and ecosystem that is consistent with Golang in terms of syntax, sustainability, and stability. The additional web3 features in Gno and Gno.land provide huge potential for interesting applications that I hope to unlock to move beyond web2 and harness blockchain technology for novel use cases. The grant provided for tinkerer-in-residence was the key to giving me the resources to move through this ecosystem as I try to think outside the box for what web3 can be and what blockchain can do for a web2 developer like myself.”*\n\n*Zack Scholl, tinkerer-in-residence*\n\n**How You Can Apply**\n\nActions speak louder than words. Until Gno.land is completely on-chain, the best place to start is by contributing to PRs and issues on the Gno.land repos or participating in the Game of Realms competition. If you want to apply for a grant, you’ll need to fork the Gno.land Ecosystem Fund repo and outline your proposal in your project name’s file. Once we receive your application, our team will review it and get in touch if we believe that you fit the criteria. [See GitHub for full instructions](https://github.com/gnolang/ecosystem-fund-grants). Stay tuned, we’ll be hosting a Funding and Grants Program Q\u0026A in the next few weeks!\n","gnoland,funding,grants"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aRqn1XDGWTcD5BBEO1o9gEvNytYhymTmAQnSHcw1f8u/OKN7BZDHgiBs/Zypr3ru0m8jPFIDdYu8JH7qy6EsBA=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q3","Gno.land Funding and Grants Program - Progress So Far","\n# Gno.land Funding and Grants Program - Progress So Far\n\n# Quarterly Report: Q3 2023\n\nWe launched the [Gno.land Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) program in July 2023 to encourage talented and passionate developers to interact with Gno.land, help build core infrastructure and tooling, and enhance the usability of the platform. After establishing a review process to streamline the program and identify core areas that need the most work, we ran with our first cohort of grantees in Q3, awarding four grants from a total of seven submissions (to two teams and two individuals). Full details of grant submissions, scope, and funding can be found on GitHub, but here’s a summary of the program’s progress so far and what’s coming up in Q4.\n\n## Q3 Funding Breakdown\n\nThe total grants distribution for Q3 was **$563,595** over the four grants: Teritori, Berty, Zack Scholl, and Flippando. This work has been split over two main large-scale infrastructure products (the Gno Moderation DAO, and GnoMobile), a gaming application, and our first resident tinkerer (Zack), who is experimenting with Gno and developing Proof of Concepts using it. Each grant recipient was provided with milestones for deliverables and has kept track of their progress through regular syncs, hackerspace journeys, blog posts, and developer calls. \n\n### Teritori (delivered September 2023)\n\nTeritori blockchain and multi-chain hub allows IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. The Teritori team has solid experience building social dApps, marketplaces, NFTs, collectibles, and interfaces to encourage community interaction. For the Gno.land Grants and Funding program, Teritori was tasked with building a Moderation DAO to enable effective and fair content moderation in a decentralized and permissionless environment. \n\nThe Moderation Module is a smart contract ‘realm’ that enables a DAO to manage the daily moderation of forums or social threads through blockchain decision-making, supporting the vision of a censorship-resistant platform that fosters a safe space for open debate and discussion. Find detailed updates on Teritori’s [hackerspace issue 7](https://github.com/gnolang/hackerspace/issues/7), and watch out for upcoming blogs on Gno.land.\n\n### Berty Technologies (delivery Dec 2023)\n\nBerty private messaging app was allocated a grant to build a mobile version of Gno.land, implementing the WESH protocol (available by Bluetooth, local WIFI, or other means), and providing secure censorship-resistant communication between devices. Berty’s experience in off-grid communication is invaluable to Gno.land, and the team is an expert at running Go on mobile Android and iOS operating systems. For this grant, to be completed in Q4, Berty will deliver a minimal PoC of the existing apps of Gno.land running on mobile, and deliver an open-source mobile app with basic CI/CD, interacting with the Gno.land testnet. Find detailed reports and updates on Berty’s [hackerspace issue 28](https://github.com/gnolang/hackerspace/issues/28) or within their [Gnomobile blog post](https://test3.gno.land/r/gnoland/blog:p/gnomobile).\n\n### Flippando (delivery Nov 2023)\n\nFlippando is a multi-level on-chain memory game currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Like the classic card-based Memory game, Flippando players must match card pairs (digital tiles). When a player selects a tile, the game sends a request to the chain, which sends back the uncovered tile. If two tiles match, they remain uncovered. If they don’t match, they are flipped back until the game is won, and an NFT is generated for the winning player to prove the win. Through the development of a simple gaming app on Gno.land, we want to show how easy it is for gaming and metaverse concepts to be built. Through this grant, Flippando will port its memory game to Gno. Find detailed updates on Flippando’s [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n### Resident Tinkerers Program: Zack Scholl (6 months)\n\nZack Scholl is Gno.land’s first resident tinkerer with tons of experience in web2 development and a passion for the Go language. Through the grants program, Zack aims to translate his extensive knowledge to Gno and web3 by developing PoCs using Gno. So far, Zack has worked on a microblogging app for Gno.land and a prototype for using generative audio with smart contracts. He’s also creating documentation and tutorials to help other developers follow his lead. You’ll be hearing more from Zack over the coming weeks. Follow his [hackerspace issue 2](https://github.com/gnolang/hackerspace/issues/2) journey for more details.\n\nAfter a great start to the Funding and Grants Program in Q3, below is a breakdown of the percentage of funding allocated to each area of development so far:\n \n[![Funding](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/thumbs/funding.png)](https://gnolang.github.io/blog/2023-10-17_funding-program-q3/src/funding.png)\n\n## Coming Up in Q4 and Q1 2024\n\nWe’re looking forward to more exciting developments in the coming quarters as we focus on the road to mainnet. Onbloc, one of Gno.land’s most active contributors, is currently being confirmed as a [Q4 grantee](https://github.com/gnolang/ecosystem-fund-grants/pull/4/files#diff-6dbd2e305897910e59072f9efa8c537d86f8aa281eb3742e0c150048a1df95eb) to work on core infrastructure necessary for mainnet, including tm2-js and gno-js support, GnoVM debugging, contract interactions, and leading the multi-node testnet initiative. Onbloc has already developed essential public infrastructure tools for Gno.land, including the non-custodial Adena wallet, the Gnoscan blockchain explorer, and Gnoswap decentralized exchange. The team has demonstrated immense passion and dedication in attending public developer calls and in-person events, and releasing extensive documentation, blog series, and [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29) about their journey. \n\nOver the next two quarters, the Grants program will focus on building our tinkerer and student cohorts, and publishing more content, such as application libraries, documentation, and Gno packages. The goal is twofold: to support more users and ensure a diversified set of users on the Gno.land platform testing, debugging, troubleshooting, and running user feedback loops. We currently have two apps to reference on how to get started – GnoChess, built by the Gno core team, and Flippando, a grant recipient – we’re looking for a lot more to come. \n\nWe’re steadily building out the Gno.land platform, and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application any time on the Funding and Grants [repository](https://github.com/gnolang/ecosystem-fund-grants). We’re opening up our second grant batch this month, and look forward to reviewing your submissions. \n","gnoland,funding,grants"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WxGDCY13RL9yw5kPVm7Jg2NoN0eP7WXaZ1FCodNnwFe9I6rXqx9g4fPzvum66+YNY7r0O7XFn95JdeYZWZoCCQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["funding-program-23q4","Gno.land Funding and Grants Program - Quarterly Report: Q4 2023","\nThe Gno.land Funding and Grants program identifies talented and passionate developers, researchers, and tinkerers to interact with Gno.land, enhance the platform's usability, and help build the core infrastructure and tooling needed for mainnet. After a strong start in Q3 2023 from our grantees, we awarded four additional grants in Q4. Let’s take a look at their progress and what’s coming up in Q1 2024.\n\n## Q4 Funding Breakdown\n\nThe total amount paid out in Q4 for grants was just under $317,000, spread out over the four grants: Teritori, Berty, Onbloc, and Dragos (Flippando). This work was split over essential stress-testing, debugging, and development on Gno core, and building social, gaming, and project management dApps to extend the platform’s functionality. Each grant recipient received milestones for deliverables and tracked their progress through regular public and internal syncs, hackerspace journey updates, blog posts, documentation, and developer calls.\n\n[![Q4 Chart](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/thumbs/chart.png)](https://gnolang.github.io/blog/2024-02-07_funding-program-23q4/src/chart.png)\n\n## Berty Technologies (delivery May 2024)\n\nAfter successfully meeting their deliverables in Q3 and creating Gno Native Kit (formerly [GnoMobile](https://test3.gno.land/r/gnoland/blog:p/gnomobile)), Berty was awarded a second grant in Q4 to experiment with smart contract integrations around social media. Through the development of GnoSocial, the team has created a test bed for building decentralized social media-style apps and helped to stress test technical issues in Gno.land. \n\nIn Q4, Berty delivered V1 of GnoSocial, which includes basic Twitter-like functionality. GnoSocial will be implemented on mobile using the Gno Native Kit framework, with a minimal desktop app and a read-only web version also in the scope. Aside from this work, Berty contributes to Gno core development, helping raise issues and merge PRs. You can follow their progress in hackerspace [issue 51](https://github.com/gnolang/hackerspace/issues/51).\n\n## Teritori (delivery February 2024)\n\nAfter delivering the [moderation module](https://test3.gno.land/r/gnoland/blog:p/gnoland-moderation-dao-module) in Q3, Teritori received a second grant to carry out research and implement a conflict resolution module and an on-chain project management tool. Their work also continues on the escrow module build. As an active contributor, the Teritori team helps improve Gno core as well, getting more PRs merged, participating in regular meetings, and writing documentation. Read more about Teritori in their hackerspace [issue 7](https://github.com/gnolang/hackerspace/issues/7).\n\n## Dragos (Flippando, delivered January 2024)\n\nTo experiment with gaming in Gno.land, Dragos received a grant to port his on-chain memory game Flippando from Solidity. Flippando is a simple memory game—with a twist. Players uncover tiles and must find their matches to win the game. The result can be minted as an NFT and assembled to create larger, more complex NFTs and digital “paintings.” The beta version of [Flippando](https://gno.flippando.xyz/flip) is now live on the testnet, and you can read about his experiences in developing the game on the [Gno.land blog here](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno) or visit [hackerspace issue 33](https://github.com/gnolang/hackerspace/issues/33).\n\n## Onbloc (ongoing)\n\nAfter producing consistently awesome work and being our longest-standing contributor, Onbloc received a grant in Q4 2024 to continue iterating on Gno.land tooling, Adena, and to help build Gno.land core in preparation for mainnet release. Part of the scope was to support contract-to-contract interaction [issue 757](https://github.com/gnolang/gno/issues/757), lead a [multi-node testnet initiative](https://github.com/gnolang/hackerspace/tree/main/multinode-testnet), write pure Gno packages, and help debugging the GnoVM, among many other initiatives. Onbloc is also adding additional security to the Adena wallet and an “Airgap” feature, which you can read more about in [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29). We’ll also release a detailed blog post soon, so stay tuned.\n\n## Coming Up in Q1 2024\n\nWe’re looking forward to more exciting developments in the coming year as we focus on the road to mainnet. In Q1, grantees will mainly focus on debugging Gno core, developing smart contracts and libraries, building and porting dApps to Gno.land, and creating educational materials to help grow the community.\n\nBlockchain software and virtual reality technologies firm Varmeta are under evaluation for a grant to support account sessions and build the Gno.land Unity SDK to make blockchain more accessible to game developers (you can track their progress in [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43)). We’re also finalizing a grant for a DAO tinkerer and a research report, as well as evaluating the extension of a second grant to Dragos to port his popular project management app to Gno.land. \n\n\n*We’re steadily building out the Gno.land platform and our ecosystem of grantees and contributors. Let us know if you want to join us by submitting an application at any time on the [Funding and Grants repository](https://github.com/gnolang/ecosystem-fund-grants). We’re always on the lookout for ideas to advance the platform.*\n\n\n","gnoland,funding,grants"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"67cuIQr/rIffdI12MTnC9dVyRPYeGaqennqI+BpW+1C2DMyKI0oxvamyB0Dh8scAL1qeGAGgyfofMlNPUqmBAw=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnoland-moderation-dao-module","Gno.land Moderation DAO Module","\r\n# Gno.land Moderation DAO Module\r\n*This blog post is written by the Teritori team, whose focus is to allow organizations to communicate and interact in a resilient and transparent way. Teritori is a partner and grantee of Gno.land.*\r\n\r\nWhen it comes to the complex subject of discussion forums and decentralized social networks, numerous technical and philosophical questions arise.\r\nImagining a 24/7 online communication system whose administration cannot be compromised or censored by any entity or individual is one of the most intriguing challenges of the decade.\r\nApproximately 10 months ago, the Teritori core team decided to explore the new possibilities offered by Gno.land on the theme of decentralized moderation and to build the foundation for future generations of developers to create resilient, robust, and autonomous applications.\r\n\r\n## The vision\r\n\r\n### About Teritori\r\n\r\nTeritori is a decentralized Operating System for individuals \u0026 communities that allows organizations to communicate and interact in a resilient and transparent way. Its core components include the creation of a decentralized User Profile for individuals \u0026 organizations as well as a dApp Store allowing users to pick their favorite services for daily usage and developers to list their product in order to grow their user base. Finally, Teritori backbone, its P2P messenger application that will enable users to create resilient token-gated groups in a click will even allow non-crypto-native users to get onboard as this feature doesn't even require a wallet connection to get started.\r\n\r\n### Teritori \u003c\u003e Gno.land\r\n\r\nConvinced of the benefits of offering a contribution-based consensus model and taking advantage of an interpreted version of Golang, the Teritori core team aims to become one of the most prolific contributors to Gno.land. Our plan is to focus on features that enable the coordination of organizations and individuals via governance, communications, and collaboration. Eventually, all the features listed on Teritori will be accessible in the Gno.land network, contributing to the growth of the ecosystem.\r\n\r\n### PoC and iterations\r\n\r\nAnother important point to emphasize is that the Teritori core team intends to improve the features it deploys on Gno.land by taking advantage of the user test phases to collect feedback that will enable iteration and improvement of the service. As a result, the “Proof-of-Concept” (“PoC”) presented in this article will be subject to updates and evolutions, which will be communicated in due course, as will the associated test phases.\r\n\r\n## What is the Gno Moderation Module?\r\n\r\nThe Gno Moderation Module is a smart contract (“realm”) that enables a decentralized, autonomous organization (DAO) to manage the moderation of a forum or social thread through a transparent on-chain vote.\r\n\r\n### Let’s take an example:\r\n\r\nImagine a simple social network similar to Instagram, in which all content is decentralized (using IPFS for images, videos, music etc.). For each post, users sign in via their wallet to post content, and no centralized administrator can delete this content. The freedom offered by this type of decentralized application is immense since even as developers of the application, it is impossible to delete the content. Therefore, we can consider this “space of freedom” as a “common space” unlike any application owned by a private company and hosted on centralized infrastructure.\r\nWith this radical freedom for the user comes a great responsibility— to collectively ensure the security of this space rather than delegating the responsibility to moderators employed by a commercial enterprise. This is why we’ve created the “Gno Moderation Module.”\r\n\r\n### How does it work?\r\n\r\n[![moderation_flow v0.1](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_flow_v0.1.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_flow_v0.1.png)\r\n\r\nThe Gno Moderation Module allows users to notify the moderation DAO community that they wish to report content. Through this action (permitted by the smart contract), they inform the DAO community that the content is inappropriate.\r\n\r\n[![content flag](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/content_flag.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/content_flag.png)\r\n\r\nOnce the content has been reported a certain number of times (10 times in this PoC) by users (who may or may not be members of the Moderation DAO), an on-chain proposal is automatically created.\r\n\r\n[![moderation dao feed](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_feed.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_feed.png)\r\n\r\nThis on-chain proposal is then listed in the Moderation DAO tab on the Social Feed as well as on the Moderation DAO profile proposals feed so all Moderation DAO members can vote on it. A debate can take place to discuss the best choice for the content.\r\n\r\n[![moderation dao vote](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/thumbs/moderation_dao_vote.png)](https://gnolang.github.io/blog/2023-10-19_dao-moderation-module/src/moderation_dao_vote.png)\r\n\r\nModeration DAO members have three voting options:\r\n- Ban the content in question\r\n- Abstain\r\n- Do not ban the content in question\r\n\r\nOnce the required vote quota has been reached, the contract automatically executes the voted decision.\r\n\r\n## The Current Status:\r\n\r\nThe Teritori core team received a grant from the Gno.land core team to build the necessary tools for decentralized moderation.\r\n\r\nTo accomplish this task, we divided our work into five main stages:\r\n1. Build “DAO” standards to establish the fundamental building blocks and ensure a modular approach in the long term for various tools.\r\n2. Build a “DAO” deployer that allows non-tech users to easily utilize the different standards.\r\n3. Build a customizable Moderation Module that can cater to a wide range of use cases. For example, if we replace the social feed with a service marketplace, the Moderation Module can transform into a “Justice Module” that resolves conflicts between sellers and buyers on a decentralized platform and serves as an escrow system.\r\n4. Develop the user experience that allows for large-scale experimentation with the Moderation Module within a dedicated context of an active social feed. Here, we created a social feed realm and enabled non-developer Gno.land users to participate in the full-scale experience.\r\n5. Establish interactions between smart contracts (r/boards, r/socialfeed, /r/users), conduct experiments to enhance their security, and identify emerging needs for these innovative use cases.\r\n\r\n### What does a DAO realm look like?\r\n\r\n- We decided to build two different DAO standards, using two different approaches of modularity:\r\n- Aragon DAO Standard, based on the amazing work of [the Aragon team](https://aragon.org/) (using Solidity)\r\n- [DAODAO](https://github.com/DA0-DA0) smart contract, using CosmWasm, that allows more modularity.\r\n\r\n\r\nHere is an example, with the DAODAO contract ported into Gnolang:\r\n[Source](https://testnet.gno.teritori.com/r/demo/dao_realm_v6/dao_realm.gno)\r\n\r\n```go\r\npackage dao_realm\r\n\r\nimport (\r\n\t\"encoding/base64\"\r\n\t\"std\"\r\n\t\"strings\"\r\n\t\"time\"\r\n\r\n\tdao_core \"gno.land/p/demo/daodao/core_v16\"\r\n\tdao_interfaces \"gno.land/p/demo/daodao/interfaces_v16\"\r\n\tproposal_single \"gno.land/p/demo/daodao/proposal_single_v16\"\r\n\tvoting_group \"gno.land/p/demo/daodao/voting_group_v17\"\r\n\t\"gno.land/p/demo/ujson_v5\"\r\n\t\"gno.land/r/demo/groups_v22\"\r\n\tmodboards \"gno.land/r/demo/modboards_v9\"\r\n)\r\n\r\nvar (\r\n\tdaoCore dao_interfaces.IDAOCore\r\n\tmainBoardName = \"dao_realm\"\r\n\tgroupName = mainBoardName + \"_voting_group\"\r\n\tgroupID groups.GroupID\r\n)\r\n\r\nfunc init() {\r\n\tmodboards.CreateBoard(mainBoardName)\r\n\r\n\tvotingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {\r\n\t\tgroupID = groups.CreateGroup(groupName)\r\n\t\tgroups.AddMember(groupID, \"g1747t5m2f08plqjlrjk2q0qld7465hxz8gkx59c\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g108cszmcvs4r3k67k7h5zuhm4el3qhlrxzhshtv\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g14u5eaheavy0ux4dmpykg2gvxpvqvexm9cyg58a\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, \"g1ckn395mpttp0vupgtratyufdaakgh8jgkmr3ym\", 1, \"\")\r\n\t\tgroups.AddMember(groupID, std.GetOrigCaller().String(), 1, \"\")\r\n\t\treturn voting_group.NewVotingGroup(groupID)\r\n\t}\r\n\r\n\tproposalModulesFactories := []dao_interfaces.ProposalModuleFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {\r\n\t\t\ttt := proposal_single.Percent(100) // 1%\r\n\t\t\ttq := proposal_single.Percent(100) // 1%\r\n\t\t\treturn proposal_single.NewDAOProposalSingle(core, \u0026proposal_single.DAOProposalSingleOpts{\r\n\t\t\t\tMaxVotingPeriod: time.Hour * 24 * 42,\r\n\t\t\t\tThreshold: proposal_single.Threshold{ThresholdQuorum: \u0026proposal_single.ThresholdQuorum{\r\n\t\t\t\t\tThreshold: proposal_single.PercentageThreshold{Percent: \u0026tt},\r\n\t\t\t\t\tQuorum: proposal_single.PercentageThreshold{Percent: \u0026tq},\r\n\t\t\t\t}},\r\n\t\t\t})\r\n\t\t},\r\n\t}\r\n\r\n\tmessageHandlersFactories := []dao_interfaces.MessageHandlerFactory{\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewAddMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn groups.NewDeleteMemberHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\t// TODO: add a router to support multiple proposal modules\r\n\t\t\tpropMod := core.ProposalModules()[0]\r\n\t\t\treturn proposal_single.NewUpdateSettingsHandler(propMod.Module.(*proposal_single.DAOProposalSingle))\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewCreateBoardHandler()\r\n\t\t},\r\n\t\tfunc(core dao_interfaces.IDAOCore) dao_interfaces.MessageHandler {\r\n\t\t\treturn modboards.NewDeletePostHandler()\r\n\t\t},\r\n\t}\r\n\r\n\tdaoCore = dao_core.NewDAOCore(votingModuleFactory, proposalModulesFactories, messageHandlersFactories)\r\n}\r\n\r\nfunc Render(path string) string {\r\n\treturn \"[[board](/r/demo/modboards:\" + mainBoardName + \")]\\n\\n\" + daoCore.Render(path)\r\n}\r\n\r\nfunc VoteJSON(moduleIndex int, proposalID int, voteJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.VoteJSON(proposalID, voteJSON)\r\n}\r\n\r\nfunc Execute(moduleIndex int, proposalID int) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.Execute(proposalID)\r\n}\r\n\r\nfunc ProposeJSON(moduleIndex int, proposalJSON string) {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\tif !module.Enabled {\r\n\t\tpanic(\"proposal module is not enabled\")\r\n\t}\r\n\tmodule.Module.ProposeJSON(proposalJSON)\r\n}\r\n\r\nfunc getProposalsJSON(moduleIndex int, limit int, startAfter string, reverse bool) string {\r\n\tmodule := dao_core.GetProposalModule(daoCore, moduleIndex)\r\n\treturn module.Module.ProposalsJSON(limit, startAfter, reverse)\r\n}\r\n```\r\n\r\n### Public Grant Report:\r\n\r\nYou can find the full report of [Teritori Core’s journey here](https://github.com/gnolang/hackerspace/issues/7). \r\n\r\n### Resources:\r\n\r\nDocumentation:\r\n- [Gno Moderation DAO](https://github.com/TERITORI/gno/blob/teritori-unified/examples/gno.land/r/demo/teritori/MODERATION_DAO.md)\r\n\r\nPackages:\r\n- [https://testnet.gno.teritori.com/r/demo/groups_v22](https://testnet.gno.teritori.com/r/demo/groups_v22)\r\n- [https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16](https://testnet.gno.teritori.com/p/demo/daodao/interfaces_v16)\r\n\r\nTutorial:\r\n- [Gno.land Social Feed Moderation on Teritori](https://teritori.gitbook.io/teritori-whitepaper/gno.land/introducing-gno.land-social-feed-v0.1#social-feed-moderation)\r\n","gnoland,dao,moderation,teritori"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"W04rjnG6uNO3/SYq6LeIQgj+jbG5goIdw/lh3z7WvNwBfSMptw2LjCHE8b971tdNoKiTpNw0eemd/lkBbO6PDQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomes-in-serbia","Gnomes Spotted in Belgrade, Serbia: Recap from the Engineering Retreat and Golang Serbia Meetup","\n\nDobro jutro gnomes! Last week, the Gno core engineering team convened in Belgrade,\nSerbia, to discuss various aspects of our technical roadmap, including Test4, \nblockchainless Gno, Gnoweb, governance and DAO structuring, GnoVM, and more. \nWhile the team was in town, we took the chance to host a Gno @ Golang Serbia \nmeetup titled ‘Building Dynamic Applications with Interpreted Go’ - you can catch \nthe recording of the full presentation [here](https://youtu.be/tNM1DHOxIQ8).\n\n## Engineering Retreat Recap\n\nOver five full days of coding and workshops, the Gno core engineering team delved \ninto several critical topics and emerged with several key takeaways:\n- Test4 Progress:\n - Test4 has been the primary effort for the team in the past couple of months, \naiming to create a stable multi-node testnet which will serve as the last precursor\nto Gno.land’s upcoming mainnet. Discussions revolved around chain initialization \nflows, node metrics \u0026 telemetry, versioning of binaries, adding a way to modify \nthe validator set via a realm (r/sys/vals), and more. Currently, the \n[Test4 milestone](https://github.com/gnolang/gno/milestone/4) is 62% complete.\n- Blockchainless Gno:\n - With the upcoming GopherCon EU \u0026 US conferences, the team discussed a \ndifferent perspective on Gno - a fully functional Go interpreter with automatic \nstate persistence. The team aims to modularize the GnoVM so that it can be\nused in contexts outside the Gno.land blockchain, which will open up the\necosystem to completely new use-cases, inviting even more web2 developers to \njoin our mission.\n- Gnoweb Enhancements:\n - [gnoweb](https://docs.gno.land/getting-started/local-setup/browsing-gnoland#2-browsing-gnoland) serves as one of the main tools to explore the Gno.land \necosystem. The team discussed changes to the UI as well as improving gnoweb’s \nfunctionalities such as the rendering of realm state \u0026 source code, and possible\napproaches to add more ways to interact with on-chain apps.\n- Governance and DAO Structuring:\n - Discussions relating to GovDAO and WorxDAO took place during the retreat, as \nthey are the foundation for Gno.land’s consensus mechanism - Proof of Contribution.\nManfred Touron, Gno.land’s VP of Engineering, discussed the \n[initial implementation](https://github.com/gnolang/gno/pull/1945) of GovDAO and\nits surrounding infrastructure.\n- GnoVM \u0026 Gno.land Development:\n - The team took the opportunity to deal with priority PRs during the retreat, \nsuch as the [Gno Type Check PR](https://github.com/gnolang/gno/pull/1426) by\n[@itzmaxwell](https://github.com/ltzmaxwell), which will add full type checking to the VM. The team has also\nadded GoReleaser to the monorepo in preparation for the upcoming Test4 milestone,\nand the first \n[nightly Gno build](https://github.com/gnolang/gno/releases/tag/v0.1.0-nightly.20240523) was released.\n\n## Gno @ Golang Serbia\n\nWhile in Belgrade, we also hosted a new Gnolocal meetup with over 15 developers \nfrom the Golang Serbia community. During this event, we introduced Gno.land, with\na particular focus on the GnoVM (Virtual Machine) as a foundational layer for \nGno - an interpreted version of Go. This was the first time we presented the\nconcept of Gno to Serbia’s Golang community, showcasing its potential to support\ndynamic application development. It was an opportunity to identify areas of \nimprovement and feedback from the user community.\n\n[![meetup](https://gnolang.github.io/blog/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png)](https://gnolang.github.io/blog/2024-05-28_gno-golang-serbia/src/meetup.png)\n\n[Dylan Boltz](https://github.com/deelawn), a Senior Golang Engineer from the core\nteam, led the presentation, demonstrating how the VM and Gno can be leveraged to \ndesign and build efficient, adaptable, and scalable applications. He also provided \nan overview of the stack-based VM architecture, illustrating how data storage \nmechanisms and execution traces operate within the VM.\n\nBy using the GnoVM outside of the blockchain context, relevant to the Go community,\ndevelopers can utilize the powerful features of Gno to build applications with \nautomatic state persistence within a sandboxed environment. Dylan showcased how \nthe GnoVM can be embedded in an HTTP server, allowing developers to write and \npersist Gno applications locally, and then share them with other users, all while\nmaintaining the security of a VM.\n\n### The Meetup presentation highlights\n- Virtual Machine Deep Dive: We provided a detailed understanding of the \narchitectural setups of various VMs, and gave an overview of the current GnoVM.\n- Hands-On Learning: We walked through how to embed a virtual machine into your\nGo applications for dynamic code interpretation. The presentation covered \npractical techniques, including creating browser-based interfaces using interpreted Go.\n- Interactive Demonstrations: We showed how to create browser-based interfaces\nwith interpreted Go as a foundation, demonstrating how this architecture enables\ndynamic program execution while maintaining a structured, deterministic approach\nto storage and state.\n- This was the third meetup in our series of Gnolocal events. We’ll be popping\nup in more cities around the globe to connect with gnomes, and spread the word \nabout Gno.land. With a few gnomes based in Belgrade, it’s important to keep \ncultivating and building the Gno.land community locally. If you’re based in \nSerbia, you can find our regional based channel on the Official Gno.land [Discord \nServer](https://discord.gg/4XXyy5wS36).\n\n### The Feedback Loop\nAfter the presentation, we gathered feedback from the attendees to assess the \ncontent presented, their interest in Gno.land, and in their interest in using \nthe Gno interpreter tooling. Here are the key insights from form responses:\n- 75% of participants said they were interested in learning more about Gno.\n- 87% of participants found the presentation and concepts understandable.\n- 38% expressed interest in using the embedded Go interpreter in their applications.\nThe feedback highlighted the need for us to clearly outline the problems Gno.land \n- is solving, how our technology addresses these issues, and how it can apply to\n- real-world examples. This feedback is invaluable as it helps us refine our \n- approach and better engage with new contributors.\n\n## Conclusion\nThe meetup was just one of several activities the team organized in Belgrade. \nIn addition to the extensive technical sessions and workshops, we had the \nopportunity to experience and learn a bit about the local culture and Serbia,\nvisiting the Nikola Tesla Museum, sightseeing, and experiencing traditional \nSerbian music.\nThese in-person engineering retreats are some of the most important moments in\noutlining priorities, troubleshooting the technology together, and brainstorming\nways to generally enhance and optimize the Gno.land blockchain and builder \nexperience. \n","2024-05-21T12:33:00Z","leohhhn,michelleellen","gnome,gnolocal,retreat,meetup,golang"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bYv3s+1cRuvF9u2Owz6DLjxgt5wccWf1yL/yAQICCDeW27Hr//BmxZFMVEBbsxxQN70CvkyDGx3tiAvjnOY7Bw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomes-in-serbia","Gnomes Spotted in Belgrade, Serbia: Recap from the Engineering Retreat and Golang Serbia Meetup","\n\nDobro jutro gnomes! Last week, the Gno core engineering team convened in Belgrade,\nSerbia, to discuss various aspects of our technical roadmap, including Test4, \nblockchainless Gno, Gnoweb, governance and DAO structuring, GnoVM, and more. \nWhile the team was in town, we took the chance to host a Gno @ Golang Serbia \nmeetup titled ‘Building Dynamic Applications with Interpreted Go’ - you can catch \nthe recording of the full presentation [here](https://youtu.be/tNM1DHOxIQ8).\n\n## Engineering Retreat Recap\n\nOver five full days of coding and workshops, the Gno core engineering team delved \ninto several critical topics and emerged with several key takeaways:\n- Test4 Progress:\n - Test4 has been the primary effort for the team in the past couple of months, \naiming to create a stable multi-node testnet which will serve as the last precursor\nto Gno.land’s upcoming mainnet. Discussions revolved around chain initialization \nflows, node metrics \u0026 telemetry, versioning of binaries, adding a way to modify \nthe validator set via a realm (r/sys/vals), and more. Currently, the \n[Test4 milestone](https://github.com/gnolang/gno/milestone/4) is 62% complete.\n- Blockchainless Gno:\n - With the upcoming GopherCon EU \u0026 US conferences, the team discussed a \ndifferent perspective on Gno - a fully functional Go interpreter with automatic \nstate persistence. The team aims to modularize the GnoVM so that it can be\nused in contexts outside the Gno.land blockchain, which will open up the\necosystem to completely new use-cases, inviting even more web2 developers to \njoin our mission.\n- Gnoweb Enhancements:\n - [gnoweb](https://docs.gno.land/getting-started/local-setup/browsing-gnoland#2-browsing-gnoland) serves as one of the main tools to explore the Gno.land \necosystem. The team discussed changes to the UI as well as improving gnoweb’s \nfunctionalities such as the rendering of realm state \u0026 source code, and possible\napproaches to add more ways to interact with on-chain apps.\n- Governance and DAO Structuring:\n - Discussions relating to GovDAO and WorxDAO took place during the retreat, as \nthey are the foundation for Gno.land’s consensus mechanism - Proof of Contribution.\nManfred Touron, Gno.land’s VP of Engineering, discussed the \n[initial implementation](https://github.com/gnolang/gno/pull/1945) of GovDAO and\nits surrounding infrastructure.\n- GnoVM \u0026 Gno.land Development:\n - The team took the opportunity to deal with priority PRs during the retreat, \nsuch as the [Gno Type Check PR](https://github.com/gnolang/gno/pull/1426) by\n[@itzmaxwell](https://github.com/ltzmaxwell), which will add full type checking to the VM. The team has also\nadded GoReleaser to the monorepo in preparation for the upcoming Test4 milestone,\nand the first \n[nightly Gno build](https://github.com/gnolang/gno/releases/tag/v0.1.0-nightly.20240523) was released.\n\n## Gno @ Golang Serbia\n\nWhile in Belgrade, we also hosted a new Gnolocal meetup with over 15 developers \nfrom the Golang Serbia community. During this event, we introduced Gno.land, with\na particular focus on the GnoVM (Virtual Machine) as a foundational layer for \nGno - an interpreted version of Go. This was the first time we presented the\nconcept of Gno to Serbia’s Golang community, showcasing its potential to support\ndynamic application development. It was an opportunity to identify areas of \nimprovement and feedback from the user community.\n\n[![meetup](https://gnolang.github.io/blog/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png)](https://gnolang.github.io/blog/2024-05-28_gno-golang-serbia/src/meetup.png)\n\n[Dylan Boltz](https://github.com/deelawn), a Senior Golang Engineer from the core\nteam, led the presentation, demonstrating how the VM and Gno can be leveraged to \ndesign and build efficient, adaptable, and scalable applications. He also provided \nan overview of the stack-based VM architecture, illustrating how data storage \nmechanisms and execution traces operate within the VM.\n\nBy using the GnoVM outside of the blockchain context, relevant to the Go community,\ndevelopers can utilize the powerful features of Gno to build applications with \nautomatic state persistence within a sandboxed environment. Dylan showcased how \nthe GnoVM can be embedded in an HTTP server, allowing developers to write and \npersist Gno applications locally, and then share them with other users, all while\nmaintaining the security of a VM.\n\n### The Meetup presentation highlights\n- Virtual Machine Deep Dive: We provided a detailed understanding of the \narchitectural setups of various VMs, and gave an overview of the current GnoVM.\n- Hands-On Learning: We walked through how to embed a virtual machine into your\nGo applications for dynamic code interpretation. The presentation covered \npractical techniques, including creating browser-based interfaces using interpreted Go.\n- Interactive Demonstrations: We showed how to create browser-based interfaces\nwith interpreted Go as a foundation, demonstrating how this architecture enables\ndynamic program execution while maintaining a structured, deterministic approach\nto storage and state.\n- This was the third meetup in our series of Gnolocal events. We’ll be popping\nup in more cities around the globe to connect with gnomes, and spread the word \nabout Gno.land. With a few gnomes based in Belgrade, it’s important to keep \ncultivating and building the Gno.land community locally. If you’re based in \nSerbia, you can find our regional based channel on the Official Gno.land [Discord \nServer](https://discord.gg/4XXyy5wS36).\n\n### The Feedback Loop\nAfter the presentation, we gathered feedback from the attendees to assess the \ncontent presented, their interest in Gno.land, and in their interest in using \nthe Gno interpreter tooling. Here are the key insights from form responses:\n- 75% of participants said they were interested in learning more about Gno.\n- 87% of participants found the presentation and concepts understandable.\n- 38% expressed interest in using the embedded Go interpreter in their applications.\nThe feedback highlighted the need for us to clearly outline the problems Gno.land \n- is solving, how our technology addresses these issues, and how it can apply to\n- real-world examples. This feedback is invaluable as it helps us refine our \n- approach and better engage with new contributors.\n\n## Conclusion\nThe meetup was just one of several activities the team organized in Belgrade. \nIn addition to the extensive technical sessions and workshops, we had the \nopportunity to experience and learn a bit about the local culture and Serbia,\nvisiting the Nikola Tesla Museum, sightseeing, and experiencing traditional \nSerbian music.\nThese in-person engineering retreats are some of the most important moments in\noutlining priorities, troubleshooting the technology together, and brainstorming\nways to generally enhance and optimize the Gno.land blockchain and builder \nexperience. \n","2024-05-21T12:33:00Z","leohhhn,michelleellen","gnome,gnolocal,retreat,meetup,golang"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bYv3s+1cRuvF9u2Owz6DLjxgt5wccWf1yL/yAQICCDeW27Hr//BmxZFMVEBbsxxQN70CvkyDGx3tiAvjnOY7Bw=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomes-in-serbia","Gnomes Spotted in Belgrade, Serbia: Recap from the Engineering Retreat and Golang Serbia Meetup","\n\nDobro jutro gnomes! Last week, the Gno core engineering team convened in Belgrade,\nSerbia, to discuss various aspects of our technical roadmap, including Test4, \nblockchainless Gno, Gnoweb, governance and DAO structuring, GnoVM, and more. \nWhile the team was in town, we took the chance to host a Gno @ Golang Serbia \nmeetup titled ‘Building Dynamic Applications with Interpreted Go’ - you can catch \nthe recording of the full presentation [here](https://youtu.be/tNM1DHOxIQ8).\n\n## Engineering Retreat Recap\n\nOver five full days of coding and workshops, the Gno core engineering team delved \ninto several critical topics and emerged with several key takeaways:\n- Test4 Progress:\n - Test4 has been the primary effort for the team in the past couple of months, \naiming to create a stable multi-node testnet which will serve as the last precursor\nto Gno.land’s upcoming mainnet. Discussions revolved around chain initialization \nflows, node metrics \u0026 telemetry, versioning of binaries, adding a way to modify \nthe validator set via a realm (r/sys/vals), and more. Currently, the \n[Test4 milestone](https://github.com/gnolang/gno/milestone/4) is 62% complete.\n- Blockchainless Gno:\n - With the upcoming GopherCon EU \u0026 US conferences, the team discussed a \ndifferent perspective on Gno - a fully functional Go interpreter with automatic \nstate persistence. The team aims to modularize the GnoVM so that it can be\nused in contexts outside the Gno.land blockchain, which will open up the\necosystem to completely new use-cases, inviting even more web2 developers to \njoin our mission.\n- Gnoweb Enhancements:\n - [gnoweb](https://docs.gno.land/getting-started/local-setup/browsing-gnoland#2-browsing-gnoland) serves as one of the main tools to explore the Gno.land \necosystem. The team discussed changes to the UI as well as improving gnoweb’s \nfunctionalities such as the rendering of realm state \u0026 source code, and possible\napproaches to add more ways to interact with on-chain apps.\n- Governance and DAO Structuring:\n - Discussions relating to GovDAO and WorxDAO took place during the retreat, as \nthey are the foundation for Gno.land’s consensus mechanism - Proof of Contribution.\nManfred Touron, Gno.land’s VP of Engineering, discussed the \n[initial implementation](https://github.com/gnolang/gno/pull/1945) of GovDAO and\nits surrounding infrastructure.\n- GnoVM \u0026 Gno.land Development:\n - The team took the opportunity to deal with priority PRs during the retreat, \nsuch as the [Gno Type Check PR](https://github.com/gnolang/gno/pull/1426) by\n[@itzmaxwell](https://github.com/ltzmaxwell), which will add full type checking to the VM. The team has also\nadded GoReleaser to the monorepo in preparation for the upcoming Test4 milestone,\nand the first \n[nightly Gno build](https://github.com/gnolang/gno/releases/tag/v0.1.0-nightly.20240523) was released.\n\n## Gno @ Golang Serbia\n\nWhile in Belgrade, we also hosted a new Gnolocal meetup with over 15 developers \nfrom the Golang Serbia community. During this event, we introduced Gno.land, with\na particular focus on the GnoVM (Virtual Machine) as a foundational layer for \nGno - an interpreted version of Go. This was the first time we presented the\nconcept of Gno to Serbia’s Golang community, showcasing its potential to support\ndynamic application development. It was an opportunity to identify areas of \nimprovement and feedback from the user community.\n\n[![meetup](https://gnolang.github.io/blog/2024-05-28_gno-golang-serbia/src/thumbs/meetup.png)](https://gnolang.github.io/blog/2024-05-28_gno-golang-serbia/src/meetup.png)\n\n[Dylan Boltz](https://github.com/deelawn), a Senior Golang Engineer from the core\nteam, led the presentation, demonstrating how the VM and Gno can be leveraged to \ndesign and build efficient, adaptable, and scalable applications. He also provided \nan overview of the stack-based VM architecture, illustrating how data storage \nmechanisms and execution traces operate within the VM.\n\nBy using the GnoVM outside of the blockchain context, relevant to the Go community,\ndevelopers can utilize the powerful features of Gno to build applications with \nautomatic state persistence within a sandboxed environment. Dylan showcased how \nthe GnoVM can be embedded in an HTTP server, allowing developers to write and \npersist Gno applications locally, and then share them with other users, all while\nmaintaining the security of a VM.\n\n### The Meetup presentation highlights\n- Virtual Machine Deep Dive: We provided a detailed understanding of the \narchitectural setups of various VMs, and gave an overview of the current GnoVM.\n- Hands-On Learning: We walked through how to embed a virtual machine into your\nGo applications for dynamic code interpretation. The presentation covered \npractical techniques, including creating browser-based interfaces using interpreted Go.\n- Interactive Demonstrations: We showed how to create browser-based interfaces\nwith interpreted Go as a foundation, demonstrating how this architecture enables\ndynamic program execution while maintaining a structured, deterministic approach\nto storage and state.\n- This was the third meetup in our series of Gnolocal events. We’ll be popping\nup in more cities around the globe to connect with gnomes, and spread the word \nabout Gno.land. With a few gnomes based in Belgrade, it’s important to keep \ncultivating and building the Gno.land community locally. If you’re based in \nSerbia, you can find our regional based channel on the Official Gno.land [Discord \nServer](https://discord.gg/4XXyy5wS36).\n\n### The Feedback Loop\nAfter the presentation, we gathered feedback from the attendees to assess the \ncontent presented, their interest in Gno.land, and in their interest in using \nthe Gno interpreter tooling. Here are the key insights from form responses:\n- 75% of participants said they were interested in learning more about Gno.\n- 87% of participants found the presentation and concepts understandable.\n- 38% expressed interest in using the embedded Go interpreter in their applications.\nThe feedback highlighted the need for us to clearly outline the problems Gno.land \n- is solving, how our technology addresses these issues, and how it can apply to\n- real-world examples. This feedback is invaluable as it helps us refine our \n- approach and better engage with new contributors.\n\n## Conclusion\nThe meetup was just one of several activities the team organized in Belgrade. \nIn addition to the extensive technical sessions and workshops, we had the \nopportunity to experience and learn a bit about the local culture and Serbia,\nvisiting the Nikola Tesla Museum, sightseeing, and experiencing traditional \nSerbian music.\nThese in-person engineering retreats are some of the most important moments in\noutlining priorities, troubleshooting the technology together, and brainstorming\nways to generally enhance and optimize the Gno.land blockchain and builder \nexperience. \n","2024-05-28T12:34:56Z","leohhhn,michelleellen","gnome,gnolocal,retreat,meetup,golang"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"c3+sZe0JX7K+4YXV2Nq2AAiWmYPxqJBDiExVLn11bOGXYQzBWFL2x1qHInMsiN31r4rO9Sw/otW8WcykdAoFBg=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gnomobile","GnoMobile, a Framework for Building Gno Mobile Apps","\n*This blog post is written by Berty Technologies, an NGO that is building open and free communication solutions without any of the limitations imposed by centralized systems. Berty is a proud partner and grantee of Gno.land.*\n\nThe year is 2023. Current Gno apps run on desktop or laptop computers that have Go installed. To run on mobile, the app would need to bundle the Go runtime, which is complicated for most developers. At Berty, we have years of experience using Go on mobile and overcoming difficulties with Android and iOS operating systems. We built Wesh Network, a decentralized communication protocol that enables p2p users to reliably and securely send messages over async networks, even in environments with poor or no connectivity.\n\nThis stage is thus set to take the leap and make it easier for builders to develop Gno applications for mobile devices.\n\n# What is GnoMobile?\n\nSimply put, GnoMobile is a framework for developing Gno mobile applications. This is how it works:\n\n*WARNING: Deep technical sections ahead. Grab a coffee before venturing forth*.\n\nFor communication between the mobile app and the Gno code, GnoMobile uses [gRPC](https://grpc.io/), a well-supported framework that sends and receives Google Protobuf messages. Even though the core Gno code is written in Go, the app code can use React Native, Java, Swift, etc. The following system diagram shows how gRPC is used.\n\n\u003cdiv align=\"center\"\u003e\n ![](https://github-production-user-asset-6210df.s3.amazonaws.com/109347079/267934754-e4da6fec-a586-4ebe-97cc-3b3ad7f79370.jpg)\n\u003c/div\u003e\n\nMoving from the bottom to the top, this is how the flow looks:\n\n1. At the bottom are Go packages in the gno codebase. A **gnoclient.Client** supports communication with the remote Gno.land node with methods like Call to call a realm function. The Gno codebase also has **keys.Keybase** to support a wallet stored on the local device with methods like CreateAccount.\n2. These methods are called directly from the next level up by the **GnoMobile** Go code. A Go object can’t be passed through the gRPC interface, so the GnoMobile Go code maintains a persistent gnoclient.Client object, which is accessed by gRPC calls. The GnoMobile API functions are registered by an amino package.go file and the generated Protobuf files are used to configure the gRPC server.\n3. Finally, at the top of the diagram, the **gRPC client in the mobile app** communicates with the GnoMobile gRPC server over a local connection using Protobuf messages. A gRPC call can either return an immediate result (for example, GetKeyCount) or an asynchronous gRPC stream object, which can return delayed results (for example, a Call to a remote realm function). The gRPC framework uses the Protobuf API to generate convenient API functions in the mobile app’s [preferred language](https://grpc.io/docs/languages) (React Native, Java, Swift, etc.).\n\n# How GnoMobile benefits builders\n\nThe first version of the framework will include three main sets of features:\n\n1. **Blockchain Operations**: These refer to the core block of functions that the apps need to interact with the blockchain. Things like the gnoclient API to effectively bring the benefits of the Gno framework on mobile, the gas estimation interface and calling realm functions, querying a blockchain node (and more) are included here.\n2. **Wallet**: As the name suggests, here we have all the standard wallet operations like create or delete an account, set the recovery phrase, account balance, and so on.\n3. **Toolkit**: We want to make it as easy as possible for devs to start building apps with our framework, so we’ll provide them with install instructions, example apps, and more technical stuff like genproto options to support gRPC and helper functions to parse the render output.\n\nThose should be enough to allow builders to get started on using and experimenting with Gno mobile apps.\n\n- *Support for secure p2p communication, even when the Internet is down?*\n- *Yes, please!*\n\nSomething that is not necessarily essential for V1, but for sure will open the doors to some powerful capabilities later on is to add an interface and a constructor to adapt the communication transport. This will make it possible for devs to incorporate other tools like Wesh Network and give their apps the ability to securely and reliably send messages even in very poor network conditions. But that’s a story for another time.\n\n# When will GnoMobile be ready?\n\nV1 is planned for release in mid-December 2023.\n\nUntil then, you can check out our progress [here](https://github.com/gnolang/hackerspace/issues/28).\n\nGot feedback or want to drop us a question? Ask away on our [repo](https://github.com/gnolang/gnomobile/issues).\n\n# What does the future look like beyond V1?\n\nWe see a lot of potential directions for GnoMobile after the initial release that will improve the user experience, extend its functionality, and make GnoMobile even more secure. We’re still scratching the surface in terms of how far we can take its development, and we look forward to working on further iterations and improvements. Some of our ideas for the future beyond V1 include:\n\n1. Making it easier for developers to **build** **desktop apps** **and** **browser extensions**:\n2. Through GnoMobile, we can gradually enable “desktop” devs to use our React Native gRPC interface to write desktop applications while using existing functionality from the core Go code. This way, developers will not necessarily have to learn Go to leverage its advantages.\n3. Browser extensions are usually written in JavaScript in the same way as in React Native. This opens the door to getting the benefits of Go via the GnoMobile framework. Otherwise, you’d have to either make the Go code run inside the browser extension (which is not easy) or use a remote server (which is not pretty).\n4. Making it possible to **execute smart contracts directly from mobile**.\n\n*Why is this important?*\n\nIf you want to add a new message to a blockchain, you need to actually interact with it (the blockchain) and update its state with the new message. However, if you just want to browse through the messages, you can execute the Render function locally without needing to use your network and, at the same time, get the results much faster. This is because the node runs locally on the mobile device without needing to spend crypto coins to get a remote node to do the operation for you.\n\nGno nodes run on GnoVMs (gnovm), and for the moment, these are only available on desktops. We believe it is possible to make them available on mobile as well, but we need to find clever ways to overcome the constraints of mobile devices (like putting the apps in the background (iOS), addressing network bandwidth limitations, and so on).\n\n1. Developing a **decentralized push notification service** for *both* mobile and desktop apps. Getting notifications is now a standard (and very important) functionality of centralized apps. Technically, this happens via a central server. Naturally, having a centralized server is not possible for a p2p app, but there are other ways to implement notifications, and we are considering including them in the GnoMobile framework.\n2. Making it possible for decentralized apps to **interact with the blockchain even if the network connection is poor or virtually unavailable**. Through the [**Wesh Network** protocol](https://wesh.network/), we are opening up the possibility of using alternative transport mediums to exchange messages between peers in an asynchronous but reliable manner in off-grid environments. Enabling reliable, secure, and censorship-resistant communication is our main cause at Berty Technologies. We want to open the door for p2p users to send messages and interact even in extreme situations or adverse scenarios, and Wesh Network is built specifically for this purpose. It is only natural to make it easier for developers to use it through the GnoMobile framework.\n3. Advancing **edge networking for enhanced blockchain resilience**. Edge networking refers to bringing functionality like computing power or storage closer to the user so that they don't need to travel through the whole Internet to interact with a server. The same edge concept can be applied to bring the necessary services to interact with the blockchain closer to each p2p user. For example, hosting a copy of the blockchain so a user can sync it or even execute smart contracts. Having these fundamental services closer to the p2p users is especially important in the case of mobile apps. We want to offer developers the possibility of taking advantage of the edge networking benefits by allowing them to use, for instance, network address redirections or special HTTP headers in the configuration of their applications.\n\nIn all honesty, it’s hard not to get excited about all the different possibilities that lie ahead for GnoMobile, but we’re keeping our focus on shipping V1 for now and collecting feedback from the community. After that, well, we hope you’ll stick around to see what happens next!\n","gnomobile,berty,weshnetwork"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7Xj39lV3c1R8H4mu0vlQvpjVLSKTNeDCrRYDgW7YZJjE2PEVxV73+/A16L/Qs8VntouKdb8iyLtoJuAoZLDRAA=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-ama1","Gno.land Community Game of Realms AMA #1 - Recap","\nWith Game of Realms officially in phase one, core dev Manfred Touron jumped on Discord to answer Gno.land community questions about the ongoing high-stakes competition. From starting and end dates to participation requirements and a description of tasks, look for your answer below. If you have further questions or want to join our community, come and find us on the []Gno.land Discord](https://discord.com/channels/957002220384182312/1065646963825066044). The core team will be hosting regular “office hours” sessions soon so you can discuss your ideas with them directly.\n\n## Q. How are the tasks in the issues assigned?\n\nWe received questions about how the tasks in the Game of Realms issues are assigned. Should submissions contain the whole implementation? Is the following task \"available** when the previous one is completed? How is the “sync” happening?\n\n**A.** TL;DR:\n\nEverything should go smoothly and we will be leaving room for negotiation if any review looks invalid. Once it has been established, the evaluation DAO will enforce how to submit a contribution. In the meantime, there are official communication challenges that we encourage participants to use. People are also free to work in stealth mode, with the risk of finishing too late or losing points for being bad at collaborating.\n\n----\n\nWe expect the current issues to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything. Let's discuss the cases we believe will happen:\n\n### Case 1\n\nWe're in phase 1, people want to contribute but can't manage to do everything, so they will try to participate as much as they can. They will participate on the issue or in Discord by indicating their desire to participate, by sharing ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\nThe only thing is that we're fully remote. We don't know each other, so everyone needs to be good at communication. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Case 2\n\nWe're in phase 2, and a small contribution is done by an individual. We just review it, and that's done.\n\n### Case 3\n\nWe're in phase 2, and a contribution is big and requires small steps. Probably, the Evaluation DAO will ask individual participants to submit their contributions so they can allocate points for the individual contributions. But maybe the Evaluation DAO prefers to review big tasks as a whole, and then split the prize, as we'll do in phase 1. We don’t have clarity on this at this stage, as it will be up to the implementers of the Evaluation DAO to design the best system for that case.\n\n## Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\n**A.** Not yet. The leaderboard will come in phase 2. One of the critical parts of the Evaluation DAO will be to allow contributors to submit evidence for tasks. Votes and point allocations will also be transparent. This will make sense for future Proof-of-Contributions, too. We'll also develop a leaderboard to make it easier to follow the competition, but this will probably come after the Evaluation DAO is running.\n\n## Q. What will the overall tasks consist of?\n\n**A.** Here is a non-exhaustive list:\n\n* Onboard more contributors ([create tutorials and documentation](https://github.com/gnolang/gno/issues/408)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n## Q. At what point in the Game of Realms timeline/phase are we?\n\n**A.** We are at the beginning of phase 1. We plan to create a website soon so you can keep track of the status and, as I mentioned, a leaderboard will come in phase 2.\n\n## Q. What will be the contributions, how will points be calculated, and are there tasks for non-programmers?\n\n**A.** During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThere are more tasks for programmers, but multiple parts are for non-programmers too.\n\nDuring phase 2, it's hard to be sure about anything yet. Game of Realms is a competition to experiment with Proof-of-Contribution, which will replace Proof-of-Stake on Gno.land. If things go the way we imagine, then consider that the stakeholders (contributors** will allocate points to contributions that make sense for the project. The contributors won't lose points, but by allocating points, they will dilute their own point stack.\n\nWe expect the Evaluation DAO to attribute points to whatever makes sense to make the project better. We'll have some task ideas for phase 2, including for non-programmers. You can likely consider that even if the core team doesn’t control the DAO, its suggestions will be approved by the Evaluation DAO because we deeply want the project to be a success.\n\n## Q. What are the requirements to start participating?\n\n**A.** There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic. It may be better to work with others and share a prize instead of taking the risk of implementing everything in stealth mode and not being the first.\n\n## Q. Is there a fixed period of time for the end?\n\n**A.** No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2. This will probably take between 1-3 months. The end date for phase 2 will be announced during phase 2, which will probably last between 2-3 months. This is when we’ll send the prize rewards. After Game of Realms, people will continue to earn contribution points by contributing to the project, which will give them memberships on the future mainnet.\n\n## Q. Is it possible to install a local testnet to get a proper local development environment?\n\n**A.** You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\nThere are multiple ways to interact with Gno:\n\n* Using gnodev allows you to use the GnoVM, without a blockchain. This method is super fast and allows you to use development patterns like TDD, where you test your implementation multiple times per minute.\n* Running a localnet, by running the gnoland command and then configuring our tools like gnokey to use localhost:36657\n* Using the staging network hosted on https://staging.gno.land reset regularly and you can use the hardcoded test key or use the faucet\n* Using the official testnets\n\nIf you prefer to run a full blockchain node instead of just playing with GnoVM, you should play with the gnoland binary. This video shows how to do this in practice:\nhttps://www.youtube.com/watch?v=-BlnEXCs0eI\n\nBelow is a further resource that may also help you:\n\nhttps://test2.gno.land/r/boards:testboard/5\n\n## Q. Will there be a list of what needs to be tested? When will the tests start?\n\n**A.** The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n- Evaluation DAO\n- Tutorials\n- Governance Module\n\nThe core team will actively review this and decide what contribution deserves to get prizes.\n\nDuring phase 2, we’ll use the Evaluation DAO developed during phase 1 to review old contributions, even contributions made before the competition, as well as ongoing contributions. Right now, we have an issue gathering interesting topics for phase 2 here, but any contribution can be reviewed by the DAO, including things that are not listed:\n\nhttps://github.com/gnolang/gno/issues/357\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2y ago.\n\n_Do you have more questions for Manfred? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and watch out for our next AMA on Tuesday 7 Feb at 4 pm UTC._\n","game-of-realms,gnoland,proof-of-contribution,dao,governance"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+s9E1QH/1OhFhbsWwKd5gDxrj8k5q6R9nZRdcRU9c6NHBoMrzKgZHIR+KNPQNYhu9n/8vrrOI0ieMHB9aIXOCQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-launch","Game of Realms Is On: Win Rewards for Contributing to Gno.land","\nPhase one of Game of Realms, a worldwide competition to build the best Gnolang smart contracts, **is now open**. Game of Realms is a high-stakes contest with a total prize pool of **133,700 ATOM** that will see participants compete for tiered membership to co-own the Gno.land blockchain, the next-generation smart contract platform that uses the Gnolang (Gno) programming language. A series of complex technical and non-technical tasks will challenge contributors to create innovative patterns that push the chain to new limits. If you’re interested in helping build the most intuitive smart contract platform in web3—while gaining rewards for your contribution—join today by opening a [PR here](https://github.com/gnolang/gno).\n\nThe Game of Realms contest will allow participants to get a feel for the Gno.land platform while building smart contracts and applications in the ecosystem. It will take place in two stages, phase one and phase two. Phase one is about building the core infrastructure, tools, and tutorials necessary to open the gates to broader participation and will be held off-chain. Phase two, on the other hand, will take place after the successful completion of phase one and be held on-chain, where contributors will build smart contracts on the platform.\n\nIn addition to the ATOM prize pool, the best contributors will also be awarded (mostly) initial-level membership to govern the upcoming mainnet. Membership will be allocated according to the quality and extensiveness of the contribution—the higher the quality, the higher the tier, and the greater the voting rights and rewards. The top equal members will be composed of peers who have contributed the most to the ecosystem and have an understanding of its core components. Top members will also have aligned core moral values. This is essential so that members can maintain the chain together according to its Constitution (TBD** and ultimately create a sustainable ecosystem that rewards all valuable contributions.\n\n## Game of Realms - Phase One (Off-Chain)\n\nWhile we aim to encourage cross-collaboration between devs and non-techs, phase one of the contest is recommended for advanced developers who are more autonomous and can contribute with limited guidelines and support. Accounting for around one-third of the total **133,700 ATOM** prize pool, getting a headstart in phase one will allow seasoned devs to kick the tires on the Gno.land platform, contribute with limited competition, and build the tools needed to open the second phase.\n\nDuring phase one, participants will open PRs against repos from the Gnolang organization. Phase one contributors will be expected to document and share their work efficiently to enable others to use it without conflicts. Your contribution is vital to the success of the contest, the Gno.land platform, and the Cosmos ecosystem at large, especially now, with discussions to move the Cosmos Hub’s core operations on-chain by establishing a DAO system.\n\nThe first DAO to be created will be the [Decentralists DAO](https://github.com/decentralists/DAO), which will provide Cosmonauts with transparency, accountability, and decentralization. The Decentralists DAO will improve discourse, organization management, development, and conflict resolution through smart contracts, and will organize itself into a set of tightly-aligned sub-DAOs dedicated to specific topics, such as engineering and funding.\n\nSo, how does this relate to Game of Realms and what type of contributions are judges looking for? Here are some examples, in order of priority:\n\n* **Define and Implement an Evaluation DAO:** For the Game of Realms contest, a sub-DAO – the Evaluation DAO – is needed to evaluate contributions during phase two and attribute rewards accordingly. Using a DAO will allow community members to vote on the best contributions for the platform. Implementation of the Evaluation DAO is the only step that must be approved by the core team because of its key role in the competition and the future of the platform. Once the DAO is in place, all previous and further contributions will be reviewed collectively by DAO members.\n\n* **Create Tutorials to Onboard More Participants:** We need experienced devs to write or record tutorials to help more people get started during phase two of the competition (and beyond) and to help grow the Gno.land developer community. These tutorials can include topics like interacting with the chain from the CLI, step-by-step guides to creating smart contracts in Gno, tips for running a local dev environment, fast prototyping with gnodev, or they can be tutorials dedicated to certain audiences, such as developers coming from Solidity or web2. All tutorials should be added to the [awesome-gno GitHub repo](https://github.com/gnolang/awesome-gno).\n\n* **Define and Implement a Governance Contract Suite:** In this challenge, developers will be expected to define and implement a governance contract suite capable of competing with existing chains’ governance modules. If you think you can improve the governance system of Cosmos Hub, this is your chance to show us how!\n\nPhase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the DAO and awarded during phase two.\n\n## Game of Realms - Phase Two (On-Chain)\n\nPhase two of Game of Realms will onboard more people to the platform and begin as soon as sufficient materials are completed from phase one. Accounting for around two-thirds of the total 133,700 ATOM prize pool, phase two will be open to both developers and non-technicals who can follow tutorials, create smart contracts, or provide other important contributions to win rewards and scale the platform. As phase two will be held directly on-chain, contributors can submit their contributions to the DAO without publishing them on the main GitHub repo. However, we strongly encourage you to use GitHub as it’s an important resource that helps the community gain a better understanding through specific examples.\n\n_We are currently preparing the challenges for participants of phase two and are looking for your input. Let us know what type of smart contracts you would like to see (minimal or with multiple features) in our upcoming Game of Realms AMA on Tuesday, January 24 at 4 pm UTC. Note that this is a text based AMA so make sure to add your questions before or during the AMA in the #AMA-questions channel on the [Gno.land discord](https://discord.gg/S8nKUqwkPn).\n_Once we have collected your feedback and requests, we will finalize the challenge categories. You can visit the [Game of Realms repo](https://github.com/gnolang/game-of-realms) for more information._\n","gnoland,game-of-realms,launch"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"g4RVeGMNU9yznHlog29XwkQzaoQlmgKPphK8KveiGf96e2Cy7L3IkPhIbE5ZUb0myz094XnM8OjJORGOepKFDw=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["gor-phase1","All You Need to Know About Game of Realms: Phase One","\nGame of Realms, the worldwide competition to find the best contributors to Gno.land, is currently underway. Unlike some contests you may have entered, we're doing things a little differently. We want participants to be instrumental in building the Gno.land platform with meaningful contributions that help shape the direction of the project – either by writing the best Gnolang smart contracts or contributing to the core blockchain. It’s not just about winning prizes but becoming a meaningful contributor. We encourage participants to collaborate on the challenges – your contribution will be rewarded on individual merit.\n\n## Phase One: The Basics\n\nPhase one of Game of Realms is about laying the foundations to onboard more people to the platform. You’ll need to be an advanced developer who wants to create core materials that power the platform every day. You should also be willing to document your work and even write tutorials and guides that help us advance to the second phase of the competition.\n\nThere is a total prize pool of 133,700 ATOM available during the Game of Realms competition, one-third of which (44,121 ATOM) will be allocated to contributions from phase one. During phase one, which we expect to last between 1-3 months, participants will open PRs against repos from the Gnolang organization. For additional information on the competition phases and timelines, be sure to check out the following resources:\n\n- [Game of Realms blog post](https://test3.gno.land/r/gnoland/blog:p/gor-launch)\n- [Game of Realms AMA recap](https://test3.gno.land/r/gnoland/blog:p/gor-ama1)\n\n## Phase One: The Challenges\n\n**Evaluation DAO**: To ensure contributions in Game of Realms are rewarded fairly, we need an Evaluation DAO. Allowing community members to vote on the best contributions and decide how much they are worth provides a level playing field for all. We’re therefore seeking your skills in DAO development and implementation. This is one of the most important challenges of phase one and the only challenge that must be approved unilaterally by the core team because of its key role in the competition and the future of the platform. Read more about the [Evaluation DAO challenge on GitHub here](https://github.com/gnolang/gno/issues/407).\n\n**Tutorials \u0026 Documentation**: So that we can progress to phase two and open up the Gno.land platform to a broader audience, we need written and recorded tutorials, guides, and documentation from phase one participants. There are almost no instruction manuals when it comes to this new frontier as the only smart contract platform using the Gnolang programming language. Help us to create materials that will onboard more contributors to Gno.land. Read more about the [Tutorials \u0026 Documentation challenge on GitHub here](https://github.com/gnolang/gno/issues/408).\n\n**Governance Module**: We want Gno.land to adopt the fairest and most effective governance solution possible; one that encourages voter participation and is transparent and accountable. We’re looking for contributors to define and implement a governance contract suite that rivals existing ones, such as the Cosmos Hub, and be implemented by other projects. Can you improve on that? Show us how! Read more about the [Governance Module challenge on GitHub Here](https://github.com/gnolang/gno/issues/409).\n\nAll phase one challenges will stay open during phase two. No competition points will be attributed during this phase as the points will be retro-funded by the Evaluation DAO and awarded during phase two.\n\n## Judging Criteria - What Wins Points?\n\nWhat will the judges be looking for when assessing contributions? You can find individual details on the corresponding GitHub issue regarding each challenge, but to get you started, the Game of Realms contest prioritizes communication and collaboration. We encourage participants to work together to find the best solutions. You will be awarded individually for your contribution but working as part of a team is highly valued. Good documentation that expresses high learning efficiency and shows how the task was completed in an educational way will also win additional points, as will a high standard of quality, great UX, and the ability to follow the contribution guidelines.\n\nAs this is primarily a developer-oriented competition, most of the organization for Game of Realms is happening on GitHub; come by the repo and [visit issue #408](https://github.com/gnolang/gno/issues/408) to contribute to tutorial and documentation writing for Gno.land.\n\n## Rules of Engagement\n\nAll participants must keep in mind a strict code of conduct and specific rules and criteria to ensure fair play. Throughout the Game of Realms competition, no plagiarism will be tolerated at any time. Participants may submit what they wish, however, any project that has already been allocated rewards or received compensation in any other hackathon or similar contest will not receive double pay.\n\nThat’s all for now. If you have more questions about Game of Realms or Gno.land you can join us in our next Office Hours session on Tuesday, March 14, 2023, at 4 pm UTC. You can also connect with other participants in the [Gnoland Discord](https://discord.com/invite/S8nKUqwkPn).\n\n## Game of Realms Phase 1: FAQ\n\nBelow are some frequently asked questions about phase one of the Game of Realms competition. If you can’t find your answer below, jump into our Discord and ask, or join us for a live “Office Hours” session with the core team.\n\n### Q. How are the tasks in the issues assigned?\n\nA. There are official communication challenges that we encourage participants to use.\n\n### Q. Can I work individually or should I work as part of a team?\n\nA. You are free to work in stealth mode, but please keep in mind that you risk finishing too late or losing points for being bad at collaborating. We expect the issues in phase 1 to be done by multiple people, in multiple steps. But anyone can try to make everything in stealth mode and open a PR with everything.\n\n### Q. How can I find collaborators?\n\nA. Participate on the issue or in Discord by indicating your desire to participate, by sharing your ideas, reviewing others' work, giving feedback, clarifying, or whatever makes sense.\n\n### Q. How can I ensure good collaboration?\n\nA. Since we are fully remote, collaborating can be a challenge and the best collaborators will be rewarded. We don't know each other, so having good communication is key.\n\n### Q. How will my collaboration be evaluated?\n\nA. At the end of a big task, i.e. the Evaluation DAO is finished, the core team will take all the small contributions and identify contributors, and then suggest how to split the task prize. We'll propose the split and allow room for public negotiations.\n\n### Q. How much is the prize pool?\n\nA. There is a total prize pool of **133,700 ATOM** available during the Game of Realms competition, one-third of which (**44,121 ATOM**) will be allocated to contributions from phase one.\n\n### Q. When will I receive my rewards for my collaboration?\n\nA. Rewards will be allocated retroactively by the Evaluation DAO during phase 2.\n\n### Q. Will there be a leaderboard and place where we can submit evidence for tasks?\n\nA. Not yet. The leaderboard will come in phase 2.\n\n### Q. What will the overall tasks consist of?\n\nA. Here is a non-exhaustive list:\n\n* Onboard more contributors (create tutorials and documentation)\n* Improve the project and implement more things\n* Bootstrap our genesis of contributors for the future mainnet\n* Experiment with Proof of Contribution by having a simpler system: Evaluation DAO\n* Identify the best participants to propose jobs\n* Identify the best organizations to propose partnerships\n\n### Q. Are there tasks for non-programmers?\n\nA. There are more tasks for programmers, but multiple parts are for non-programmers too. During phase 1, the tasks are relatively well defined, please read this:\n\nhttps://github.com/gnolang/gno/issues/390\nhttps://github.com/gnolang/gno/issues/540\n\n### Q. What are the requirements to start participating?\n\nA. There is no requirement to start participating. You’ll need to do some KYC at the end of the competition to receive a prize. Feel free to fill out the form linked in the Register section of the following issue:\n\nhttps://github.com/gnolang/gno/issues/390\n\nThis will allow us to contact you about the competition through our newsletter and set up prize payment later. Use the comment section of the issues or discuss them on Discord if you plan to work on specific tasks, so we can see that you’re actively working on a topic.\n\n### Q. Is there a fixed period of time for phase 1?\n\nA. No. Phase 1 will be finished when we consider that enough materials have been implemented to switch to phase 2.\n\n### Q. Is it possible to install a local testnet to get a proper local development environment?\n\nA. You can find the answer in this GitHub issue. Subscribe to the issue to get updates:\n\nhttps://github.com/gnolang/gno/issues/478\n\n### Q. Will there be a list of what needs to be tested? When will the tests start?\n\nA. The best place to look is on GitHub here:\n\nhttps://github.com/gnolang/gno/issues/390\n\nDuring phase 1, there are 3 official focuses:\n\n* Evaluation DAO\n* Tutorials\n* Governance Module\n\nThe competition was just announced, but we’ll review contributions made in the past, too, so it starts from the first commit, ~1-2 years ago.\n","gnoland,game-of-realms,faq"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qSlCMPixagFqOsJc+eakyyFa6x/LXn4/8v8Cw/Kqbu9RKWkjtI6kveqq7oeNdBRgZL4qtEKMTv+lOJOd6VtPCQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["intro","Intro to Gnoland - The Smart Contract Platform to Improve Our Understanding of the World","\n_Welcome to Gno.land. This is the official site to learn about the Gnolang (Gno) programming language and the Gno.land smart contract platform, as well as understand the motivations behind Gno and our core values and mission. We’re starting a series of blog posts and holding regular community calls and AMAs so that you can stay up to date with upcoming developments and dive deeper into the Gno World Order. Stay tuned._\n\n## What Is Gno.land?\n\nGno.land (pronounced no-land) is a layer 1 smart contract platform invented by Jae Kwon, co-founder of Cosmos and Tendermint, to address multiple issues in the blockchain space — in particular, the ease of use and intuitiveness of smart contract programming platforms. Beyond offering succinctness, composability, expressivity, and completeness not found in any other smart contract platform, we aim to challenge the regime of information censorship that we find ourselves living in today.\n\nBy using the programming language Gnolang (Gno), an interpreted version of the widely-used Golang (Go) language, using a state-of-the-art VM written in Go, we want to lower the barrier to entry to web3 and make it simple for developers (particularly existing web2 developers) to write smart contracts and other blockchain applications without having to learn a programming language that is limited by design or exclusive to a single blockchain ecosystem.\n\n### Gnolang (Gno) Is Essential to Broader Adoption of Web3\n\nFor web3 to grow in a sustainable way, we need technological solutions that are designed for the blockchain with programming languages that are universally adopted, secure, composable, and complete. The main programming language currently used for creating smart contracts, Solidity, is designed for one purpose only (writing smart contracts) and lacks the completeness of a general-purpose language.\n\nSolidity removes many of the complexities that blockchain programming requires (such as memory management, ensuring that the code is deterministic, and understanding how the entire tech stack is implemented) allowing developers to quickly build succinct smart contracts. However, Solidity is only used for smart contracts on EVM-compatible blockchains (like Ethereum, Polygon, or EVMOS) and its design is limited by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems.\n\nGo, on the other hand, is a well-designed complete programming language with its foundation based on composable structures, designed by the creators of Plan 9. This allows developers to rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nGo is widely used, especially among existing web2 developers. It’s easier to learn and can be used to program almost anything, such as GoEthereum or Tendermint. Every part of the Gno.land stack is written in Go so that one person can understand the entire system just by studying a relatively small code base. The Go language is so well designed that the Gnolang smart contract system will become the new gold standard for smart contract development and other blockchain (and even non-blockchain) applications.\n\n### Security Is a Built-in Feature of Go (Golang)\n\nBeyond object embedding, closures, importing of modules, composability of programs, and interfaces that allow you to implement a specific set of functions, Go supports secure programming through exported/non-exported fields, enabling “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that is safe and helps developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n### How Gnolang (Gno) Differs from Golang (Go)\n\n[![Go and Gno](https://gnolang.github.io/blog/2022-11-21_intro/src/thumbs/go-and-gno.png)](https://gnolang.github.io/blog/2022-11-21_intro/src/go-and-gno.png)\n\n_Image 1: Gnolang - Like Go but specific to the blockchain_\n\nGno is around 99% identical to Go and most people can code in Gno from day one, even minute one. The Gno.land programming environment comes with blockchain-specific standard libraries, but any code that doesn’t use the blockchain-specific logic can run in Go with minimal processing. On the other hand, some libraries that don’t make sense in the blockchain context are not available in the Gno.land programming environment, such as network or operating-system access.\n\nOtherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same. Under the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than byte code as in many virtual machines such as Java, Python, or WASM. This makes even the Gno VM accessible to any Go programmer. The novel design of the Gno VM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. This allows (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making Gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on Gno.land will be light, simple, more focused, and easily interoperable — a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n[![Gnolang code example](https://gnolang.github.io/blog/2022-11-21_intro/src/thumbs/code-example.jpg)](https://gnolang.github.io/blog/2022-11-21_intro/src/code-example.jpg)\n\n_Image 2: Code snippet from the Gno programming language_\n\nToday, Gno.land is the only blockchain instance in the world that supports Gno but tomorrow, there will be many chains with different names such as mydapp.zone, or mydao.xyz. Gno.land is the name of ONE chain and is not a name that will be used by other Gnolang-powered chains. Gno.land will remain a minimal hub with three main utilities:\n\n* Managing cross-Gnolang-chain fees/licenses\n* To be the (or an) official home for the best smart contracts\n* To provide new models of governance (w/ DAO modules)\n\n### Earning Rewards Through Proof-of-Contribution (PoC)\n\nThere are four main ways to earn rewards through PoC on the Gno.land chain:\n\n* Pre-defined tasks (technical or otherwise)\n* Pre-defined bounties\n* Retroactive bounties\n* Vesting-style rewards for core members\n\nBounties rewards (both pre-defined and retroactive) will be decided with “local rules,” through the agreement of the DAO with everything on-chain and transparent. If one human were to abuse the system, it would trigger and the bad actor would be slashed. We’ll go into depth on how you can earn rewards in an upcoming post.\n\n### Durable Solutions to Improve Our Understanding of the World\n\nOne of our inspirations for the Gno.land project is the gospels, which built a system of moral code that lasted for thousands of years. Part of Gno.land’s endurance will be having a minimal production implementation that becomes a reference for other implementations and a basis for education to elevate people's understanding of blockchains.\n\nGno.land aims to appeal to web developers, dApp developers, and blockchain builders to create solutions that help people improve their understanding of the world. With the barrage of misinformation delivered today from various factions, it’s impossible to separate the real from the fake. This causes a state of gridlock. We are living in a regime of information censorship spanning all important topics from climate change to global pandemics — a vast coordinated effort to prevent people from understanding the truth.\n\nBy just browsing Reddit, searching with Google, and scrolling through Facebook, Twitter, or Instagram, people are deliberately being [misled](https://twitter.com/lhfang/status/1587095890983936000) about key global issues that we all deserve clarity on. This is as malevolent as any type of censorship regime in the world — and we need to come together to challenge it and break the wall of censorship to achieve a functional democracy at last.\n\n### Gno.land’s Current Phase of Development\n\nGno.land is currently running in its third testnet and there will be several more testnets before the platform is production ready. Modern civilization wasn’t built in a day, and neither will Gno.land rush into committing to an exact launch date. However, the next development, an incentivized testnet called ‘Game of Realms’, is scheduled for Q1 2023.\n\nGame of Realms will be similar to ‘Game of Stakes’ on the Cosmos Hub and will reward the earliest and best contributors. If you would like to find out more about Game of Realms, Gno.land, Gnolang, or anything else, join us for our first community call with Gno.land Founder, Jae Kwon on November 22nd, at 4pm UTC on our [Discord channel](https://discord.gg/YFtMjWwUN7). We look forward to seeing you.\n","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hQQWTgJ+KOdTMVtRoITBFtflhWu3LjIRufUAJlpwQwBkPPDSagX+jGITT2MPvr7J0v+BYE70XAs4bXLsaUqXDA=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["intro","Intro to Gnoland - The Smart Contract Platform to Improve Our Understanding of the World","\n_Welcome to Gno.land. This is the official site to learn about the Gnolang (Gno) programming language and the Gno.land smart contract platform, as well as understand the motivations behind Gno and our core values and mission. We’re starting a series of blog posts and holding regular community calls and AMAs so that you can stay up to date with upcoming developments and dive deeper into the Gno World Order. Stay tuned._\n\n## What Is Gno.land?\n\nGno.land (pronounced no-land) is a layer 1 smart contract platform invented by Jae Kwon, co-founder of Cosmos and Tendermint, to address multiple issues in the blockchain space — in particular, the ease of use and intuitiveness of smart contract programming platforms. Beyond offering succinctness, composability, expressivity, and completeness not found in any other smart contract platform, we aim to challenge the regime of information censorship that we find ourselves living in today.\n\nBy using the programming language Gnolang (Gno), an interpreted version of the widely-used Golang (Go) language, using a state-of-the-art VM written in Go, we want to lower the barrier to entry to web3 and make it simple for developers (particularly existing web2 developers) to write smart contracts and other blockchain applications without having to learn a programming language that is limited by design or exclusive to a single blockchain ecosystem.\n\n### Gnolang (Gno) Is Essential to Broader Adoption of Web3\n\nFor web3 to grow in a sustainable way, we need technological solutions that are designed for the blockchain with programming languages that are universally adopted, secure, composable, and complete. The main programming language currently used for creating smart contracts, Solidity, is designed for one purpose only (writing smart contracts) and lacks the completeness of a general-purpose language.\n\nSolidity removes many of the complexities that blockchain programming requires (such as memory management, ensuring that the code is deterministic, and understanding how the entire tech stack is implemented) allowing developers to quickly build succinct smart contracts. However, Solidity is only used for smart contracts on EVM-compatible blockchains (like Ethereum, Polygon, or EVMOS) and its design is limited by the limitations of the EVM. In addition, developers have to learn several languages if they want to understand the whole stack or work across different ecosystems.\n\nGo, on the other hand, is a well-designed complete programming language with its foundation based on composable structures, designed by the creators of Plan 9. This allows developers to rapidly accelerate application development and adopt a modular structure by reusing and reassembling existing modules without building from scratch. They can embed one structure inside another in an intuitive way while preserving localism, and the language specification is simple, successfully balancing practicality and minimalism.\n\nGo is widely used, especially among existing web2 developers. It’s easier to learn and can be used to program almost anything, such as GoEthereum or Tendermint. Every part of the Gno.land stack is written in Go so that one person can understand the entire system just by studying a relatively small code base. The Go language is so well designed that the Gnolang smart contract system will become the new gold standard for smart contract development and other blockchain (and even non-blockchain) applications.\n\n### Security Is a Built-in Feature of Go (Golang)\n\nBeyond object embedding, closures, importing of modules, composability of programs, and interfaces that allow you to implement a specific set of functions, Go supports secure programming through exported/non-exported fields, enabling “least-authority” design. It is easy to create objects and APIs that expose only what should be accessible to callers while hiding what should not be simply by the capitalization of letters, thus allowing a succinct representation of secure logic that can be called by multiple users.\n\nAnother major advantage of Go is that the language comes with an ecosystem of great tooling, like the compiler and third-party tools that statically analyze code. Gno inherits these advantages from Go directly to create a smart contract programming language that is safe and helps developers to write secure code relying on the compiler, parser, and interpreter to give warning alerts for common mistakes.\n\n### How Gnolang (Gno) Differs from Golang (Go)\n\n[![Go and Gno](https://gnolang.github.io/blog/2022-11-21_intro/src/thumbs/go-and-gno.png)](https://gnolang.github.io/blog/2022-11-21_intro/src/go-and-gno.png)\n\n_Image 1: Gnolang - Like Go but specific to the blockchain_\n\nGno is around 99% identical to Go and most people can code in Gno from day one, even minute one. The Gno.land programming environment comes with blockchain-specific standard libraries, but any code that doesn’t use the blockchain-specific logic can run in Go with minimal processing. On the other hand, some libraries that don’t make sense in the blockchain context are not available in the Gno.land programming environment, such as network or operating-system access.\n\nOtherwise, Gno loads and uses many standard libraries that power Go, so most of the parsing of the source code is the same. Under the hood, the Gno code is parsed into an abstract syntax tree (AST) and the AST itself is used in the interpreter, rather than byte code as in many virtual machines such as Java, Python, or WASM. This makes even the Gno VM accessible to any Go programmer. The novel design of the Gno VM interpreter allows Gno to freeze and resume the program by persisting and loading the entire memory state. This allows (smart contract) programs to be succinct, as the programmer doesn’t have to serialize and deserialize objects to persist them into a database (unlike programming applications with the Cosmos SDK).\n\nThe composable nature of Go/Gno allows for type-checked interactions between contracts, making Gno.land safer and more powerful, as well as operationally cheaper and faster. Smart contracts on Gno.land will be light, simple, more focused, and easily interoperable — a network of interconnected contracts rather than siloed monoliths that limit interactions with other contracts.\n\n[![Gnolang code example](https://gnolang.github.io/blog/2022-11-21_intro/src/thumbs/code-example.jpg)](https://gnolang.github.io/blog/2022-11-21_intro/src/code-example.jpg)\n\n_Image 2: Code snippet from the Gno programming language_\n\nToday, Gno.land is the only blockchain instance in the world that supports Gno but tomorrow, there will be many chains with different names such as mydapp.zone, or mydao.xyz. Gno.land is the name of ONE chain and is not a name that will be used by other Gnolang-powered chains. Gno.land will remain a minimal hub with three main utilities:\n\n* Managing cross-Gnolang-chain fees/licenses\n* To be the (or an) official home for the best smart contracts\n* To provide new models of governance (w/ DAO modules)\n\n### Earning Rewards Through Proof-of-Contribution (PoC)\n\nThere are four main ways to earn rewards through PoC on the Gno.land chain:\n\n* Pre-defined tasks (technical or otherwise)\n* Pre-defined bounties\n* Retroactive bounties\n* Vesting-style rewards for core members\n\nBounties rewards (both pre-defined and retroactive) will be decided with “local rules,” through the agreement of the DAO with everything on-chain and transparent. If one human were to abuse the system, it would trigger and the bad actor would be slashed. We’ll go into depth on how you can earn rewards in an upcoming post.\n\n### Durable Solutions to Improve Our Understanding of the World\n\nOne of our inspirations for the Gno.land project is the gospels, which built a system of moral code that lasted for thousands of years. Part of Gno.land’s endurance will be having a minimal production implementation that becomes a reference for other implementations and a basis for education to elevate people's understanding of blockchains.\n\nGno.land aims to appeal to web developers, dApp developers, and blockchain builders to create solutions that help people improve their understanding of the world. With the barrage of misinformation delivered today from various factions, it’s impossible to separate the real from the fake. This causes a state of gridlock. We are living in a regime of information censorship spanning all important topics from climate change to global pandemics — a vast coordinated effort to prevent people from understanding the truth.\n\nBy just browsing Reddit, searching with Google, and scrolling through Facebook, Twitter, or Instagram, people are deliberately being [misled](https://twitter.com/lhfang/status/1587095890983936000) about key global issues that we all deserve clarity on. This is as malevolent as any type of censorship regime in the world — and we need to come together to challenge it and break the wall of censorship to achieve a functional democracy at last.\n\n### Gno.land’s Current Phase of Development\n\nGno.land is currently running in its third testnet and there will be several more testnets before the platform is production ready. Modern civilization wasn’t built in a day, and neither will Gno.land rush into committing to an exact launch date. However, the next development, an incentivized testnet called ‘Game of Realms’, is scheduled for Q1 2023.\n\nGame of Realms will be similar to ‘Game of Stakes’ on the Cosmos Hub and will reward the earliest and best contributors. If you would like to find out more about Game of Realms, Gno.land, Gnolang, or anything else, join us for our first community call with Gno.land Founder, Jae Kwon on November 22nd, at 4pm UTC on our [Discord channel](https://discord.gg/YFtMjWwUN7). We look forward to seeing you.\n","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hQQWTgJ+KOdTMVtRoITBFtflhWu3LjIRufUAJlpwQwBkPPDSagX+jGITT2MPvr7J0v+BYE70XAs4bXLsaUqXDA=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-1","The More You Gno: Gno.land Monthly Updates","\nWe made progress across the board at Gno.land last month, from onboarding more devs to receiving an influx of contributions to the Game of Realms contest. To encourage development and discourse, we set up a biweekly public developer call in addition to our biweekly Office Hours sessions. Anyone can join, ask questions, and give their suggestions on how to shape the Gno.land platform and become a contributor. Last month, we covered several pressing topics from Gno IDE and Gno.land website language, to GnoVM, IBC, and ICS. Jae also came back to the circuit in March with two IRL workshops for devs at side events during EthDenver and Game Developer Conference (GDC) in San Francisco.\n\n## Developer Updates\n\nYou can find the live streams of the new biweekly public developer calls on [Gno.land YouTube](https://www.youtube.com/@_gnoland/videos) as well as access the agendas on [GitHub](https://github.com/gnolang/meetings/blob/main/notes/2023_03_15_dev_call_notes.md). The main talking points this month were Gno IDE, Gno.land website language and UX, garbage collection, bug fixes, and how to bring IBC and ICS to the platform. We are working on all these issues concurrently but the order of release will be Gno.land mainnet, IBC, and then ICS (this is reflected in the DAG below).\n\n\n\n[![Gno.land mini DAG](https://gnolang.github.io/blog/2023-04-15_myg-1/src/thumbs/mini-dag.png)](https://gnolang.github.io/blog/2023-04-15_myg-1/src/mini-dag.png)\n\n## Gno.land Website Language\n\nWe want to add more features for developers, such as libraries to make writing interfaces better and more consistent. There is an open topic for frontend developers with typography skills and library developers to create a UI framework for markdown or a custom rendering system.\n\nInternally, our core team is working on improvements to Gno.land’s website, making it easier to navigate with shorter columns while ensuring the text is markdown centric and readable in plain text and the GitHub rendering machine. We hope to achieve this using CSS and having classes for vertical columns, without having to make an extension to the markdown parser.\n\n## Gno IDE\n\nGno.land developer experience team is working on a web-based Gno IDE for quickly building Gno realms and packages right on your browser by just visiting a web app. Gno IDE will provide much improved UX for everything around building a realm (including making the testing easier), and additional features like autocompletion in the editor. Gno IDE will contain all the features you would expect from an IDE as well as valuable APIs for devs building tools around Gno.land with the public Gno Infrastructure.\n\n[![Gno IDE](https://gnolang.github.io/blog/2023-04-15_myg-1/src/thumbs/gno-ide.png)](https://gnolang.github.io/blog/2023-04-15_myg-1/src/gno-ide.png)\n\nGno IDE will have multiple modes to support different use cases. The normal mode will be used during everyday developments (as you’re familiar with from other code editors). The presentation mode is for high accessibility and readability. You can use it during video calls or physical workshops while projecting your screen to an audience. The third and perhaps most interesting mode is the embedded mode. Use this mode to embed the IDE into websites and blogs. This feature is especially useful for tutorials to test out sample code, run it on the real testnets, and play with it.\n\n## IBC and ICS\n\nAs depicted in the DAG above, Gno.land mainnet will launch first, followed by IBC and then ICS. We will focus on implementing IBC1, as we strongly believe in the ICS model and want to be a consumer of an existing Cosmos chain. We want a common ICS implementation that works across many hubs because Gno.land is a type of hub that will need its own ICS to scale while providing GnoVM on consumer chains on the Cosmos Hub. Our next step now is to find the best way to configure ICS for Gno.land and make GnoVM available as a consumer chain in the Cosmos Hub system.\n\nRegarding IBC, we will use the current implementation that was written for the Cosmos SDK and port that over to Tendermint2. We anticipate some issues along the way including security patches that need to be applied to our code base. There are multiple ongoing directions and discussions about how to bridge Gno.land’s smart contracts to IBC, which are essentially Interchain smart contract interactions.\n\nOne possibility is to have an API that submits events to a queue of outgoing events, and another queue to receive and consume events asynchronously. This mechanism could work for IBC2 to have rich inter-contract Interchain features, and the same API could work for Interchain plus smart contract interactions that require advanced options. We discussed a proposal to create a standard for Interchain contracts so that IBC2 could eventually be standardized eliminating limitations by applying it with an EVM, other languages, and CosmWasm.\n\nThis protocol could be based on Protobuf or a similar well-known syntax definition protocol so that we can push the Interchain to the next level. IBC2 will be safe and fast and replace vulnerable atomic bridges between multiple technologies. This is a major update that we are committed to developing and we need help identifying all the challenges involved. Working on IBC integration, separate from the Gno.land mainnet launch, will require significant time to understand how the light client system works. If you’re interested in taking on this task, let us know and we’ll set up a group. IBC will likely be the most important challenge of Game of Realms phase 2.\n\n## Garbage Collection\n\nCurrently, our work on garbage collection does not address the problem in the traditional Golang sense of dealing with memory efficiency. Instead, we are progressively optimizing and improving the main state tree by automating the clean-up of orphan nodes. The next phase will be targeting the official garbage collector component to begin work on memory management as we have some common Golang garbage collection challenges, but are identifying some uncommon ones too.\n\nWe need to consider elements like where to hold our objects because this is tied to releasing them in a concurrent lock-free way. We also need a good data structure. This is ongoing research as of now to implement a dedicated routine to synchronously clean stuff in a non-blocking way.\n\n## Game of Realms\n\nThis month, we have seen a massive uptick in contributions to Game of Realms phase one with a tidal wave of issues, general discussions, and PRs. One of the biggest things we worked on was adding support for MOD, which is a version of Go mod with an easier interface to manage your dependencies and version your dependencies. You can track the ongoing issue on GitHub [here](https://github.com/gnolang/gno/issues/390).\n\nThere have been some really strong contributions to the Evaluation DAO and governance module, as well as a big CLI refactor that went into our code base. We've also seen people contribute contracts like GRC 1155 or general improvements to existing realms, with many suggestions for fixing bugs. Finding bugs and reporting what people want is a good indication that the Gno.land platform is being picked up and gaining adoption.\n\nYou can find the Office Hours recordings that cover Game of Realms on YouTube [here](https://www.youtube.com/watch?v=JTmNg-b6Lcs).\n\n## Developer Events Stateside\n\nGno.land hosted a lively meetup during EthDenver last month where Gno.land founder and core dev Jae Kwon gave a talk for Solidity developers called “Gno.land, the Inevitable Next Generation Smart Contract Platform.\" He compared and contrasted Gno.land and Gnolang to Solidity, and showed Ethereum developers how the GnoVM shifts the smart contract paradigm. You can watch the [recording here](https://www.youtube.com/watch?v=IJ0xel8lr4c).\n\nAlso in March, Jae hosted a gaming workshop at a side event during the infamous Gaming Developer Conference (GDC) in San Francisco. “Gno.land for Game Developers, Building Your App in Web3,\" showed participants a sample gaming app built on the Gno.land platform and offered them the chance to try their hand at writing a smart contract for their app with Gno.\n\n## Virtual Events - How to Build a Forum\n\nCore tech lead at Gno.land Miloš Živković held a virtual workshop for Go devs called “How to Build a Forum.” He showed how Gnolang is a fast and simple way to build and launch smart contracts using the Gnolang interpreter virtual machine that interprets Gno and eliminates the need for any servers or ORNs.\n\nThe VM allows for the memory state of your Gno.land application to persist automatically after every transactional function call, which is a completely new way to handle transaction volume and memory recall. You can watch the [full tutorial here](https://github.com/gnolang/workshops).\n\n*We’d like the community to get involved in Gno.land’s monthly updates, so if you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2ecM85b9STTBFWxLmp7QFZHOnbSVzvVB6r0F58gxRB+lGGshDJNn7eGVSLy2W9PzafIla8+foC5Pihwg0ES5BQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-2","The More You Gno: Gno.land Monthly Updates - 2","\n## The More You Gno 2: Gno.land Developer Updates\n\nOver the past few weeks, our core devs and ecosystem contributors have been making massive strides on Gno.land. There’s a lot to cover in the second edition of *The More You Gno*, from updates on Tendermint2 and GnoVM to stack/frames management, Gno IDE, and plenty more. We’ll also see what some of the external teams contributing to the platform have been up to, including Gno.land’s first decentralized exchange, GnoSwap, and Adena compatibility with GRC20 tokens. Check it out.\n\n## Tendermint2\n\nWe’re making steady development progress on Tendermint2, which focuses on simplicity of design, minimal code, minimal dependencies, modular dependencies, and completeness. For the time being, Tendermint2 will stay in the main repo in a top-level folder named Tendermint2. This is the official location to develop and improve the consensus protocol until it is stable enough to be extracted from the Gno repo and become a standalone project. Currently, Tendermint2 depends on GnoVM, however, we are working to unlink this dependency and build a basic demo Tendermint2 chain and Client.\n\nTendermint2 JS/TS Client is a JavaScript/TypeScript client implementation for Tendermint2-based chains. The client will make it easier for developers to interact with Tendermint2 chains, with a simplified API for account and transaction management, removing a ton of manual work and allowing developers to focus on building their dApps. You can [read more about the client here](https://www.npmjs.com/package/@gnolang/tm2-js-client). In addition to the Tendermint2 JS/TS client, we also created a Gno JS/TS client that just extends the TM2 one to provide Gno-specific functionality. You can read more about this here.\n\n## Game of Realms\n\nThe incentivized competition to find the best contributors to Gno.land continues in phase one, with slow but steady progress being made. Nir1218 initiated an Evaluation DAO Kickoff discussion in [issue 792](https://github.com/gnolang/gno/pull/792) to initiate testing code for the key smart contract infrastructure that will power the Gno.land platform. We are also interviewing architects for the core team with experience in governance modules and creating new economies on-chain, and a new DevRel team member will be joining us soon to create awesome tutorials and documentation to advance Game of Realms further. Gno.land must be built by the community and we will not rush to push Game of Realms to the second phase until we have found quality contributors to complete the challenge tasks and become the platform’s first founding members.\n\n## Gno IDE\n\nOur core development team is working on a web-based IDE for Gno.land that will greatly improve the developer experience, allowing builders to quickly spin up Gno realms and packages right on their browsers just by visiting a web app. Currently named Gno IDE but with a rebranding on the horizon, this intuitive product focuses on ease of use and improved UX, and will include all the features you’d expect from an IDE, such as auto compilation in the editor, debugging, extensive testing capability, and powerful APIs like IntelliJ to supercharge your programming.\n\nGno IDE currently has multiple modes to support different use cases, including a normal mode for everyday programming, similar to a standard code editor, a presentation mode for video calls or screen sharing, and an embedded mode to extend functionality, allowing you to embed the IDE directly into websites and blogs. You can also choose to edit your code in Emacs or Vim and easily switch between steps, from previous to next, making creating your tutorials and blog posts more intuitive. Watch out for more to come on Gno IDE soon, and if you want to contribute by creating a plugin for your favorite editor, open a PR to win contribution points.\n\n## Stack/Frames Management\n\nThe stack/frames is an integral part of the virtual machine (VM) and the language. Stack/frames provide context for smart contract developers, enabling them to access useful information, such as the original caller, or to determine if a contract is being called through another one. The current implementation is limited in scope and relies on fixed positions in the stack which can lead to inconsistencies.\n\nThere is an ongoing [issue 683 open here](https://github.com/gnolang/gno/issues/683) and we have continued to work on enhancing stack/frames development over the last month. We’re adding a new function in the standard library std.PrevRealm (previously GetRealmCaller). Currently, we only have GetOrigCaller, which returns the user calling the first realm. This is not secure and we need a way to call the previous caller. This will allow a realm to handle GRC20 treasuries. See [issue 667](https://github.com/gnolang/gno/pull/667) and [issue 634](https://github.com/gnolang/gno/issues/634) for further details.\n\n## Dealing with Panics in Native Functions\n\nWe have devised a solution for dealing with panics in native functions, [see pull request 732](https://github.com/gnolang/gno/pull/732). Previously, when there was a panic in a native function, we could not recover it in Gno code. An example of this was the assert origin call, which panicked if the call was not a direct call from a transaction. Based on discussions with contributors, we’ve agreed that native functions should never panic, but if they panic, they panic with machined Gno panic. This gives us the choice in a native function to code a Gno panic, or, if it's a very bad panic, use Go panic so that we know the Gno code is unable to recover it.\n\n## Logic Upgrading\n\nMaking it possible to upgrade your logic is definitely out of scope for the first version of Gno.land, however, it’s an important issue that we have begun to discuss so that we can place certain restrictions on it, such as allowing upgrades when we consider them safe enough to be compatible with imports. Another idea is to work on creating workflows where migrations become something official. This way, we could define ways to migrate a contract completely in a single transaction at the chain level. Once everything is working and approved as the previous contract is parsed or archived, the new one gets the data. We will revisit this topic after the first version of Gno.land reaches the mainnet.\n\n## Garbage Collection\n\nIn terms of garbage collection, we don’t have memory leaks as such but we do have defacto memory leaks. By the VM having references to all objects, they won’t be released by Go’s underlying GC. We have some form of reference counting but it is only done at the end of a transaction. We have implemented a mark-and-sweep garbage collector and are working on the VM runtime to manage the objects and signal to the garbage collector to release them when they are no longer needed. This is done by adding the notion of a heap, which is managed by the garbage collector.\n\n## GnoVM\n\nDeveloping GnoVM is an ongoing task and we will likely need to fork the GnoVM to create different competing versions. GnoVM will be complete, limited in features, and serve as the only interpreter, an enduring reference point over time. Future versions of GnoVM will be designed to incorporate CosmWasm so that all Cosmos chains can have CosmWasm enabled and the VM can run directly on the browser and execute tasks on the browser without requiring to make an API call, making it faster. To do this, we can make a Gno compiler in WebAssembly without changing the code because Go supports WASM cross-compilation.\n\nWe plan on making a competing version of the original minimalist GnoVM, such as a Rust version with a JIT compiler using LLVM as a backend.\n\n## Ecosystem Updates\n\nSince our last update, the Gno.land community continues to expand with awesome teams and contributors building cool infrastructure and projects on the platform. Below, we take a look at the largest developments of the past few weeks and extend a special thanks to everyone helping us build Gno.land.\n\n## Teritori\n\nTeritori blockchain and multi-chain hub launched in November 2022, allowing IBC and non-IBC communities to connect, create groups, exchange tokens and NFTs, and launch new projects. Teritori’s idea for building on Gno.land is to create a multi-chain experience for users with a web portal, NFT marketplace, and social feed that will grow the community, and gradually integrate smart contracts and realms. This will promote Gno.land to more developers and showcase all the dApps being built through an easy-to-navigate dApp store. In the coming weeks, Teritori will work with the Onbloc team to integrate the Athena wallet into their portal as well as discuss ideas for promoting Game of Realms to new developers.\n\n## Onbloc\n\nOnbloc is one of the Gno.land ecosystem’s most active contributors, responsible for building the Adena wallet and the block explorer Gnoscan. The team has also been working on creating an official Gno SDK that will allow developers to interact with Gno.land more easily, and remove some of the current friction. Onbloc opened [issue 701](https://github.com/gnolang/gno/issues/701) on GitHub primarily for developers who either have their own web app or are building a JavaScript app and want to work with Gno in some way. Currently, developers need to do a lot of manual work, which Gno SDK will abstract away, improving the workflow and developer experience. If you have any ideas or feedback, please contribute to the aforementioned issue.\n\nIn another cool development, Onbloc has rolled out a new feature in Adena and Gnoscan to provide support for GRC20 tokens. To store and send tokens, you can open your Adena wallet, click on \"Manage Tokens”, navigate to the Custom Token page, and see which GRC20 tokens are available on Gno Testnet 3, searching by the symbol or path. To research on or discover tokens, head over to the Tokens page on Gnoscan for a full list of GRC20 tokens. You can click on any token on the list for detailed information, such as the total supply, owner, or other available functions built into the token. The Account Details page has also been updated to display all tokens owned by each address. You can help by checking out [issue 764](https://github.com/gnolang/gno/pull/764), which discusses adding bigint to support a wide range of numbers and encoding binary, and [issue 816](https://github.com/gnolang/gno/pull/816), which highlights a small bug the team runs into when coding.\n\nOnbloc has also created a new [token resource page on GitHub](http://github.com/onbloc/gnotokenresources) for anyone to share or upload resources associated with their Gno.land project. This will serve as a shared knowledge pool about any dApp on the platform. If you wanted to create a decentralized exchange, for example, you would need all the information about the tokens available on Gno.land, such as their images, symbols, descriptions, links to websites, etc. Now you can find this in one handy GitHub repository. If you’re a developer or builder who wants your logo or any other static data posted, be sure to submit a PR.\n\nAnd speaking of decentralized exchanges, Onbloc is also building Gnoswap, the first DEX to be powered by Gno.land, designed to simplify the concentrated liquidity experience and increase capital efficiency for traders. Its interface is built using TypeScript to be user-friendly, secure, and accessible for streamlining complex mechanisms such as price range configurations and staking as part of its core service. Contribute to its interface [here](https://github.com/gnoswap-labs/gnoswap-interface).\n\nAs for the contract side, Onbloc is actively working on its development with help from the core members of Gno.land. The code will be open-sourced for full transparency once the basic functions are ready.\n\n## New Core Contributors\n\nWe’re excited to welcome two new core team members, Antonio and Zack. Antonio joined us in April in the core team, bringing with him vast experience in IPFS, and writing Git servers in Go. Zack is our first “tinkerer in residence” and will try to bootstrap the ecosystem of small contracts and small libraries. He will also be writing apps and helping us design a system to better share and showcase our work with a super UX for team builders and open-source addicts.\n\nAntonio is already hard at work researching a benchmarking dashboard that will show performance improvements or regressions when we change the code. He’s assessing whether to use GiHub to track actions or run our own machine to execute GitHub actions. Take a peek at his research so far on [issue 783 here](https://github.com/gnolang/gno/pull/783).\n\nZack is working on a microblog project. As an experienced web2 Go programmer, Zack is transitioning to web3. Since he’s interested in incentivized social networks, the microblog project will be his first realm, as a Twitter-style blog without titles, where each user has their own page based on their address. Check out [issue 391](https://github.com/gnolang/gno/pull/391) for more details.\n\n## Developer Events\n\nOver the past few weeks, our core devs have been mainly focused on building but they’re preparing to speak at some exciting events in the coming months. Catch up with Manfred at BUIDL Asia, in Seoul, South Korea, from June 5 - 9. We’re co-hosting a side event with Onbloc, Code States, and Cosmostation on June 5, so be sure to register if you’re in town! We’ll also be at EthBelgrade in Serbia from June 2 - 4, and GopherCon in Berlin from June 26 - 29, so stop by and say hello.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BgP7m/DmidFvEqpVLjyzgnghK58vaAFHhZROZB8wR79QMg97yitsZYlndmHZslShno/M4o6efQlIRLHsAAyCCg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-3","The More You Gno: Gno.land Monthly Updates - 3","\n## The More You Gno - Gno.land Monthly Updates 3\n\nWe’ve been busy since the last edition of *The More You Gno,* with the Gno.land core team and ecosystem partners present at various global developer events. We’ve visited many gnomes (and gnomes-in-the-making) around the world from Berlin to Belgrade, spreading the word about Gno.land and growing our expanding community. Aside from all the networking, Gno.land is taking shape with a new iteration of our website, the Gno.land Funding and Grants Program, and a host of developer updates as always. Let’s dive in.\n\n## Gno by Example\n\nWe recently launched [Gno by Example](https://gno-by-example.com/), our equivalent to both [Solidity by Example](https://solidity-by-example.org/) and [Go by Example](https://gobyexample.com/), where you can see tutorials and code snippets to help you learn and get more easily onboarded to Gno.land. Gno by Example is designed to be community-run with a front-end app and tutorials in markdown. There’s also a specific markdown syntax where you can embed certain file fragments to make your tutorials more structured. We’d love to build this into the ultimate resource center for Gno.land, so feel free to [contribute](https://github.com/gnolang/gno-by-example) with new tutorials and sections. Contributions here are eligible for rewards from the Game of Realms competition.\n\n## GnoVM\n\nWe continue developing GnoVM and invite you to provide feedback on what can be improved. This month, there have been a lot of discussions about how to improve native bindings and use the Gno machine in native function calls. Native function calls are well-defined in Go code generation and Go templates but need some modifications for GnoVM. For example, since new native functions already exist in the Gno code, when we try to define a native function, calling the function doesn’t yield the desired result. We’ve created a bunch of panics and tried writing out native functions to see what goes on for them, in an investigation that will go on for the next few weeks. Got any ideas? Please contribute. ([PR 859](https://github.com/gnolang/gno/pull/859)).\n\n## Testnets\n\nTalk about testnets has come up a lot in recent weeks and how to best proceed. Some gnomes are asking for a multi-node testnet to allow for great experimentation, whereas others prefer to keep the testnet single-node. There are advantages and disadvantages to both approaches and we are still listening to feedback and ideas. However, we will likely keep testnet 3 single-node and focus on the language while having a second dedicated multi-node testnet where devs can get creative, think outside of the box, test performance, consensus, and everything they need to push the chain to its limits. We’ve created a new [Hackerspace](https://github.com/gnolang/hackerspace) Repository for the multi-node testnet to prevent spam on the main repo, so please use it to share your scripts, posts, snippets, etc.\n\n## Native Coins and GRC-20 Tokens\n\nWe uncovered some significant issues with the banker module ([PR 393](https://github.com/gnolang/gno/pull/393)) regarding minting and burning tokens with the package minter. It was not scoping, filtering, or minting tokens correctly, making it possible to mint and burn unlimited tokens, including GNOT. We want to allow any realm to create its own token and run multiple tokens on their chains, but we need a prefix for security to resolve the issue and allow anyone to create GRC20 smart-contract-based coins but not native coins. We continue to work with small fixes on this issue and will reopen the PR soon.\n\n## Gno.land Funding and Grants Program\n\nLast month we released our Funding and Grants Program to encourage more developers, researchers, educators, and tinkerers to interact with Gno.land. If you’re interested in experimenting with Gnolang (Gno) and building innovative dApps, tooling, products, or infrastructure, check out our GitHub [Funding and Grants](https://github.com/gnolang/ecosystem-fund-grants) page for further information on how you can apply. Start contributing to Gno.land or Game of Realms as this is a prerequisite of the funding and grant application process.\n\n## Developer Relations\n\nThe Gno core team is growing! We hired a new DevRel last month and are looking to take on another dev for this open position, so if you’re interested, head over to our [careers page](https://jobs.lever.co/allinbits) and apply! You can expect to see a lot more documentation, FAQs, tutorials, and onboarding materials in the coming weeks and months.\n\n## Ecosystem Updates\n\nOur community of gnomes continues to expand, making tons of activity and progress over the past few weeks. Let’s see what they’ve been up to below.\n\n## Onbloc\n\nOnbloc has been super active this month attending and co-hosting IRL events and networking to find new gnomes about town. Among other updates, Onbloc has completed the first integration of Tendermint2 JS with the Adena wallet and will continue to swap out their existing libraries with TM2JS wherever applicable to ensure that they are as tightly integrated as possible. The team has also open-sourced the Gnoscan block explorer, so if you’re interested in contributing, hop on over to [Gnoscan](https://gnoscan.io/) or the [GitHub repo](https://github.com/onbloc/gnoscan).\n\n## Teritori\n\nAnother of our first cohorts from the Grants program, Teritori continues to churn out awesome work and expand its growing team. This month, Teritori has been busy integrating Adena with the Teritori app and working on the DAO contract to build a DAO deployer and various DAO standards and templates for DAO creation. Teritori’s target is to focus on a moderation DAO that can be used for content moderation in social feeds and boards. In the coming weeks, the team plans to integrate the DAO contract into the UI to allow the community to launch a DAO and experiment on the testnet. They have also made an effort to really integrate Gno users by adding .gno at the end of nicknames for people to use. All our grant recipients are documenting their journeys in the hackerspace repo, check out [Teritori’s](https://github.com/gnolang/hackerspace/issues/7) journey.\n\n## Resident Tinkerer, Zack\n\nAnother grant receiver, Zack, has been making significant progress on his microblogging project. You can check out the specs on GitHub ([PR 791](https://github.com/gnolang/gno/pull/791)) or watch the informative tutorial video, [Go to Gno: How to Build a Microblog](https://www.youtube.com/watch?v=F-_dadxcRJM). You’ll find this especially useful if you have a background in Go and need some additional insights to turn your hand to blockchain coding. Zack has also been working on an implementation of a smart contract for creating and transferring text-based NFTs that conform to haiku poetry standards (find out more on GitHub ([PR 860](https://github.com/gnolang/gno/pull/860)). Other than that, Zack continues his Gnolang journey, “learning and having a lot of fun.”\n\n## EthSeoul, BUIDL Asia, and Getting to Gno\n\nJune saw members of our core team heading over to Seoul, South Korea, for a week of networking, talks, and events. Our VP of Engineering Manfred Touron gave a keynote on the evolution of smart contracts and an introduction to Gno.land for participants of EthSeoul, followed by a fascinating dive into Proof of Contribution at BUIDL Asia, where we also had a booth. It was an honor to meet so many talented and motivated Korean developers and contributors from around the globe. Seoul is a hotbed of up-and-coming talent and we’ll definitely be back soon.\n\nWe also had the chance to meet with our most active ecosystem contributors Onbloc and co-hosted an event together, Getting to Gno, at the Code States developer academy along with long-time Cosmos builders, Cosmostation. Attendees had the chance to hear about what the core team is building and see some of the great work of our community. A massive thanks to everyone involved, it’s awesome to be BUIDLing together! Read more about our Korean adventures in this [fab write-up by Onbloc](https://medium.com/onbloc/2023-buidl-asia-recap-894c60a1c0f).\n\nEthSeoul - [Watch the talk here](https://www.youtube.com/watch?v=_iSsStlmxoU)\n\nBUIDL Asia - [Watch the talk here](https://www.youtube.com/watch?v=v6k3NHm5vcE)\n\n## EthBelgrade\n\nCore contributor Milos Zivkovic rocked the Gno.land presence at EthBelgrade in Serbia, giving an introductory workshop about Gno.land, called 'Alice in Gno.land'. Being the first Ethereum conference organized in Serbia, there were lots of attendees from all over the Balkans. Participants joined in a journey through the enchanting realm of Gnolang and the Gno.land platform. Most of the participants were not aware of Goland before but were avid Gophers eager to learn more about the application of the Gno language in blockchains.\n\n## GopherCon Berlin\n\nThe Gno.land team also had a blast last month at the European edition of GopherCon in Berlin. We had a booth at the event for two days, where we networked, talked about all things Gno, made some amazing connections, and even shared some live code! We’re looking to build an active, open-source Gopher contributor group in Gno.land, so stay tuned for more on that soon.\n\nComing up later this month, Gno.land is an official sponsor of EthCC, Paris, July 17-20. Stop by our booth to pick up some swag, say hey, and ask your questions about Gno.land. You can also catch us at the Nebular Summit for a keynote and workshop by our VP of Engineering, Manfred Touron.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know and we’ll include your contribution.*\n","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XgJPkaY4jwhmFbnVG+TQS2JMCFuDNDiJkE6fLjPbGQfVD0yu14ce8icUdV50/rjr8/ZKuBSCODIACT5IUVBoDA=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-4","The More You Gno: Gno.land Monthly Updates - 4","\n## The More You Gno 4: Gno.land Developer Updates\n\nWe’ve had more on our plates than ever over the last few weeks, with a huge team presence in Paris at EthCC and Nebular Summit in July, an opening talk at Stanford Blockchain Club in August by Gno.land’s founder Jae Kwon, and some awesome contributions from Gno.land grantees and ecosystem partners, including the first demos of Gnoswap and Teritori’s social platform and DAO deployer. We continue to make solid progress on GnoVM, an alternative VM in Rust, Tendermint2, native bindings, and much more. Check out our latest developer updates below.\n\n## Upgrade Strategy for AVL Between GitHub and test3.gno.land\n\nOne ongoing discussion is about an incompatibility bug that affects many things we do on Gno.land. The current AVL implementation on the testnet is outdated and does not match the AVL implementation users get when they pull in the latest master branch. Therefore, building and deploying contracts on a local Gno chain (with the latest master changes) and deploying those same contracts on the testnet may fail due to this incompatibility. We need to find a way to seamlessly integrate these two approaches. Ideally, when you write code on the master branch on GitHub, it should work on the testnet as well.\n\nIn [issue 970](https://github.com/gnolang/gno/issues/970), you can find details of five different proposed solutions to implement this upgrade strategy, from resetting the whole blockchain (which would mean losing on-chain content and debugging information) to implementing a migration feature specifically for testnets that allows developers to rename packages and patch their contracts before publishing them. There are pros and cons to each proposal, and we continue to work together to find the best way forward.\n\n## Encoding JSON and the Discussion Around Reflection\n\nSome contributors have highlighted the need for native JSON encoding, and we are discussing how best to approach it. See [issue 808](https://github.com/gnolang/gno/issues/808) for further details. One idea is to copy the code from encoding JSON in the standard library Go and take it over to Gno, but we would need to have reflection to do that. So, the important question here is whether we want to have reflection and, if so, what it should look like. We could emulate Go’s reflection package with some added elements, like being able to inspect the realm state, but we would need to be extremely careful about how we do this.\n\nFor example, should users be able to read private fields of external packages through reflection or even *ufmt*, or could that introduce a problem? It would be simpler, and the language capability security would be tighter and easier to understand if we made accessing private fields impossible, but that would also make it limited. We could consider supporting reflection as an internal user package and whitelisting and encoding JSON. This way, new encoding packages would have to be whitelisted because they’re using the reflection package. We could also mark reflection as unsafe so developers know they must carefully audit their work.\n\nAnother solution is the partial implementation of reflection. In [issue 971](https://github.com/gnolang/gno/issues/971), Gno.land core engineer Petar discusses introspection, which involves implementing reflection as Go has it now but enabling only one of its two main capabilities: the ability to inspect types, but not the ability to modify code. The main difference between introspection and reflection is that, since it is done at compile time, it is completely type-safe. This discussion is ongoing.\n\n## Alternative GnoVM Implementations\n\nTo deliver the best possible virtual machine, we’re working on two different implementations of GnoVM. Petar has spent the last three weeks developing a new GnoVM implementation written in Rust. His work is still private as the machine is not yet ready for public use, but he will soon make the code public for your inspection. Rust gives the ability to write more performant code and, in some scenarios, the Rust GnoVM can run up to 20 times faster than the GnoVM at roughly 87 milliseconds compared to 2,000 milliseconds on a Fibonacci benchmark, which is a considerable improvement in speed.\n\nSince one of Gno.land’s core features is that the entire tech stack is written in Go, we’re unsure if everyone will appreciate a Rust GnoVM or whether it aligns with our vision. However, it’s always good to provide alternatives, and, Petar argues, as long as the VM carries out the same functions (and does so more cheaply), most developers won’t mind what language the VM is written in.\n\nRust has a few other features that some developers may favor over Go, such as more tools for creating languages, advanced garbage collector libraries that allow you to change the algorithm without changing the runtime (by swapping out a tricolor algorithm for a generational one, for example), and built-in data structures that solve many issues. For example, we needed a deterministic map that is fairly fast. With Rust’s Btree in the standard library, this was simple, Petar only had to implement the native Go map type with a Btree map from the standard library. This took just a few minutes.\n\nCore team dev Marc has also started an initiative to improve the Go GnoVM so that it is faster and offers a clean and user-friendly interface. He believes the debate over the VM is more about whether to have a VM that is bytecode-defined or AST-defined (rather than speed). Marc has been comparing the fundamental differences between the two and noted that the bytecode version is 15 times faster than the AST. This means that changing to Rust would give an increased performance of 2-3 times.\n\nThe VM must be fast, secure, and performant in many ways. In either version, the AST will be stored on the blockchain, whereas the bytecode is only an internal representation that doesn't affect the users. We must still consider any potential architecture consequences between bytecode and AST before deciding whether to change. Marc’s WIP code is still in a private repo, but you’ll be able to inspect it soon and make a comparison of the VM implementations in the coming weeks. The decision about the direction of GnoVM is still very much TBD; however, the Rust GnoVM will not replace the Go GnoVM but will complement it, eventually giving validators the choice of which to run.\n\n## Defining Wording for People/Documentation and Consistency\n\n[Issue 1024](https://github.com/gnolang/gno/issues/1024) discusses the need to define the wording we use throughout our documentation, for example, how we name a module, package, sub-module, etc. Once we have the wording defined, we will set the GnoVM to only accept elements with the correct naming. The importance of wording affects the design choice of the whole project and how we go about versioning for the best possible user experience.\n\nFor example, is mt/board/admin part of the same realm of mt boards, or is it its own realm? Can we work with both by adding patterns to have some realms responsible for hosting data and others responsible for having more privileged actions? How do we split a complex realm into sub-libraries and sub-realms? We want to define the documentation and the logic for this and have begun to touch on this issue. We will discuss this in greater depth in the upcoming developer calls.\n\n## Improving the GRC20/Foo20 APIs\n\nWhen working on the specs for a Merkle airdrop contract, Albert came against some issues with users initiating airdrop reward claims (see [PR 906](https://github.com/gnolang/gno/pull/906) for more details). Currently, when the Merkle airdrop contract tries to execute the reward claim for the user, an instance of the GRC20 contract is used for transferring. Within the GRC20 implementation Transfer() method, the caller (token sender) is fetched using the standard library method std.PrevRealm().\n\nHowever, calling this method in the Merkle airdrop context returns the user as the caller, not the Merkle airdrop contract, which is an unexpected functionality. We are discussing different ways to tackle this issue efficiently. However, each solution would require possible changes to the GRC20 API and subsequent token implementations. Additionally, as part of [PR 952](https://github.com/gnolang/gno/pull/952), we are looking into improving the standard GRC20 API and possibly resolving the ambiguity with standard library calls that are causing the mentioned issues.\n\n## Client Optimized for CLI, Not Mobile\n\nOur newest contributor to Gno.land, Berty, is developing the mobile version of Gno, which means writing a mobile app to interact directly with the blockchain. The team is facing some issues as they need a client library with utility functions like sign and broadcast, which are used by the command line. This code (tm2/pkg/crypto/keys/client) is not ready for external users yet, and the Gno client is designed for CLI. However, Berty needs a way to interact with the Gno chain from their application and to call the logic without adding the full CLI.\n\nFrom the existing TypeScript/JavaScript client library (gno-js-client and tm2-js-client), Berty should be able to build out a Go client library by exclusively using the RPC endpoints of the node itself (just like gno-js and tm2-js work), and not having to worry about importing private logic like transaction broadcasting. The team is writing its own framework to call Go code for Gno from Java, Swift, and React Native mobile apps that creates a transaction and sends it (see [PR 1047](https://github.com/gnolang/gno/pull/1047)).\n\nThey are working on an API that interacts with the blockchain and lets them export the code without having to write their own utilities. The API will be minimal, and update the Tendermint2 build script by moving tm2txsync from tm2/cmd to gno.land/cmd (see more details in [PR 1080](https://github.com/gnolang/gno/pull/1080) here). For the time being, Berty will copy the code and use the objects directly until a more convenient API is complete.\n\n## Tendermint2 Development\n\nIn [PR 546](https://github.com/gnolang/gno/pull/546), we introduce file-based transaction indexing. Transaction index parsing should be done as a separate process from the main node, meaning other services can be instantiated to index transactions as readers. The current problem is that there is no way to figure out whether a transaction has failed after it’s been sent out with a broadcast sync, or fetch any kind of receipt information or error reason in the delivered transaction.\n\nSo, we’ve started working on an event indexer to index Gno node events, which include transactions. Soon, developers and users will be able to ask the event indexer what happened to the transaction or in which state in its execution it's currently at, and also to retrieve information on other events like block commits as they happen.\n\n## Extending the Functionality of Go\n\nIn [issue 919](https://github.com/gnolang/gno/issues/919), Petar proposes extending the functionality of Go by adding constant data structures, arrays, slices, etc. He believes this would benefit users, as they wouldn’t need to create special functions as in Go to simulate this behavior, and it would also catch bugs when there is mutation. There has been a discussion, and Jae has similar ideas with the notion of “invar” expressions, where the resulting value can only be read, not mutated or stored. This would fix the bug where if you pass a pointer (that represents part of your contract state) to another contract, the other party can “steal” it by assigning it to their state, and your contract would fail to execute.\n\nMorgan believes that we should take a different approach as slices have the semantic in Go, where the underlying array is always heap-allocated and modifiable. Introducing constant slices would thus necessarily have to introduce concepts regarding im/mutability of values without the matching constructs that a language like Rust has. To make a compromise and keep compatibility with the Go spec, we are likely to implement this in a transpiler (gnoffeescript) that would implement this feature and be able to transpile to valid Go.\n\n## Grantee and Ecosystem Updates\n\nAs you can see, we’ve made a ton of development progress over the last few weeks. We’re also steadily adding more gnomes to our community of builders, and they’re working on the core infrastructure of Gno.land, as well as the permissionless dApps the platform will house. Let’s see what they’ve been up to since the last update.\n\n## Onbloc\n\nOnbloc has been busy, as always, with a slew of updates for us over the last few weeks. The team has been developing Gnoswap, the first Gno.land automated market maker with concentrated liquidity, and they gave us a live demo. On the front end, which is still a work in progress, you can find a one-stop venue for traders to view all the information about tokens on gno.land, so you don’t have to move between Gnoswap and a token aggregator like CoinGecko. You can also see incentivized pools sorted by liquidity, volume, APR, liquidity mining rewards, etc., and a wallet page to check your balances. You will also be able to deposit or withdraw assets from the Interchain when IBC is enabled.\n\nCheck out the work they’ve done so far on the Onbloc [hackerspace](https://github.com/gnolang/hackerspace/issues/29). The team has also released [the documentation](https://docs.gnoswap.io/) about what you can expect from Gnoswap, the rationale behind their design choices, some information about tokenomics, a preview of the UI, and more. Their main focus is on delivering a smooth and welcoming user experience and abstracting away the difficult mechanisms of concentrated liquidity so that the interface is as minimal and simple as possible.\n\nThe team will be ready to launch Gnoswap as soon as gno.land reaches mainnet. Feature updates and enhancements will be aligned with the development of the core Gno Stack.  The code for Gnoswap has now been [open-sourced](https://github.com/gnoswap-labs), so you can take a look at everything they’ve done and even make suggestions. In the coming weeks, Onbloc will also work on building core Gno.land infrastructure to support an earlier launch. Find details of this in Onbloc’s [grant submission](https://github.com/gnolang/ecosystem-fund-grants/pull/4). And be sure to check out Onbloc’s informative 6-episode [blog series](https://medium.com/@gnoswaplabs/why-gno-introducing-gnoswap-dd6acc22e6a1) that features the history of blockchain and exchanges, a deep dive into the Gno Stack, and an introduction to Gnoswap, where they share details of their journey and insights.\n\n## Teritori\n\nWe also saw an awesome demo from the Teritori team, which you can check out at app.teritori.com. Simply connect your Adena wallet to create a user name, start interacting with the social feed, create your own DAO, and add members. The team is working on more extensive documentation to explain how it works in more detail. While still a work in progress, Teritori has developed a cool flagging system that allows you to unfollow content you don’t like or flag content as inappropriate. If posts receive many flags, users can vote on whether to ban them, creating a healthy and supportive social environment free from derogatory content monitored by a like-minded community through a moderation DAO.\n\nThe team continues its work on DAO interfaces and has built a useful tool for speeding up the deployment of packages as a workaround until we’ve decided how to best tackle realm versioning. They are also working on the escrow system, which will be useful for the freelance marketplace, and presenting DAO standards documentation.\n\n## Berty\n\nWe have a new contributing team to Gno.land from the Berty private messaging app. This team is working on a mobile version of Gno.land, implementing the WESH protocol, which is available by Bluetooth, local WIFI, or other means, and provides secure censorship-resistant communication between devices. The plan is to be able to provide an alternative transport for Gno applications when the internet is not available and build the skeleton/foundations that enable developers to create Gno-centric mobile apps more easily in the future. Berty brings a ton of experience in off-grid communication and getting apps to run on mobile devices, both Android and iOS.\n\nThe team has created its own [testnet](http://testnet.gno.berty.io/), which you are welcome to test out and play around with, although they will be restarting and rebooting without prior notice, so be aware that your work could be wiped. In the few short weeks they’ve been working with us, Berty has already finished their first Proof of Concept, a simple app running on iOS and Android. They copied code from the gnokey command line, and now it’s installing and running on mobile and interacting with the blockchain.\n\nNow, Berty is working on a nicer UI for the app and will propose a project to create a formal framework called GnoMobile, which will allow anyone to create their own app and run it on mobile. We look forward to seeing their demo soon.\n\n## Golang Working Group\n\nIn other news, we've started a bi-weekly [Gnome Golang Working Group](https://github.com/gnolang/hackerspace/issues/15) where we get together and discuss various topics, such as the language-related and theory elements of Go and Gno. We also aim to identify meaningful and reasonable ways to contribute to Golang, Gophers, and the general open-source community and improve our visibility there. We hope to attract more Go devs to the project and provide a “blockchain-less” experience for web2 Go devs.\n\nWe've had two meetings so far, and some recent hackerspace issues have already emerged from the discussions. One in particular that we’re actively evaluating is Gnoffee, a transpiler tool inspired by the likes of [CoffeeScript](https://coffeescript.org/) for Go and Gno integration. Gnoffee would be a powerful standalone tool to enhance Go and Gno (blockchain) projects by generating code and seamlessly integrating new features without manual coding. Find out more at the link above.\n\n## EthCC and Nebular Summit\n\nThe Gno.land team was in full force in Paris at the end of July for EthCC, where we met many passionate developers and spread the word about Gno.land and, specifically, how Gnolang compares and contrasts to Solidity. We had a booth during the conference manned by the Gno.land team complete with awesome swag and a continuous presentation in the background playing on a full-screen television.\n\nAt Nebular Summit, our VP of Engineering, Manfred Touron, [gave a talk](https://www.youtube.com/watch?v=CtxBajCcTYQ) called ‘Gnolang for Developers: Examining the Core Stack,’ where he broke down the major components of Gno, demonstrated how the upcoming Gno SDK compares with the existing Cosmos SDK, and explained why Gno.land is an excellent choice for accessible and sustainable blockchain development.\n\n## Blockchain Application Stanford Summit (BASS)\n\nJae opened the [Blockchain Application Stanford Summit (BASS)](https://bass.sites.stanford.edu/) event, attended by thousands of students and future blockchain developers. He gave an overview of Gno.land, GnoVM, and Gnolang, and explained the features that make our platform paradigm-shifting and timeless. He also dove into the core of why we’re building Gno.land – to provide a censorship-resistant platform for truth discovery that helps people improve their understanding of the world in an era of information censorship and control.\n\nComing up later this month, you can catch up with the Gno.land team at [DappCon Berlin](https://www.dappcon.io/) from September 11-13, where we’ll be delivering an informative keynote and hosting a side event to get to gno you better. If you find yourself in Barcelona for [Web3 Family](https://web3fc.xyz/) on September 23, you can join in a Gno coding workshop. You’ll also be able to meet the team at [GopherCon US](https://www.gophercon.com/) in San Diego. We’re hosting an action-packed workshop, ‘Chess: The Gnolang Way,’ on Gopher Community Day, where you can learn to build a web3 chess server on Gno.land and compete for cool prizes in an ongoing chess tournament throughout the event. More details coming soon. That’s all for now! Be sure to check back again with us for the next edition of *The More You Gno* to keep up with all our progress.\n\n*Do you want to contribute to Gno.land’s monthly updates? If you’re building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we’ll include your contribution.*\n","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T0pwM5/rln1yqcFTeOt81T08NdVOMJstA6/nJxZ7GXrQnqJM/khKS0xXeKY+FvcUgyPGIXAj1dMj1V+us1GmAQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-5","The More You Gno: Gno.land Monthly Updates - 5","\n# The More You Gno - Gno.land Monthly Updates 5\n\nIt's been another productive month, packed with developer calls, live events, new contributors, a large team presence at the Go community's biggest event of the year, GopherCon 2023, and the launch of a PoC gaming dApp on Gno.land, GnoChess. We uncovered a bunch of bugs in the code and some issues with the GnoVM, and made further progress on the Go and Rust VMs, the banker module bug, Gnofee, and much more. Check out the updates below.\n\n## Building a Web3 Chess Server on Gno.land - GnoChess\n\nMost of our work over the last few weeks has been dedicated to [GnoChess](https://gnochess.com/), a [PoC gaming dApp](https://test3.gno.land/r/gnoland/blog:p/chess-gc23) unveiled at GopherCon 2023. As gold event sponsors, we wanted to provide gopher attendees with a memorable experience – and a little friendly competition – while battle-testing the Gno.land platform. As our first gaming dApp, developing GnoChess was extremely useful for our team in many ways. We managed to attract 61 players to the game during the event, including some die-hard web2 gophers who wanted to show off their moves and discover more about Gno.\n\nSeveral PRs were opened as a result of our endeavors, and, beyond the conference, GnoChess taught us a lot about where we're at with Gno, how to successfully build complex dApps on top of the platform, and how well we work as a team. We uncovered some key issues and breaking behavior in the GnoVM, made our JavaScript clients much more reliable in their communications with the Gno.land node, and unearthed further issues that lead to complex errors and potential security flaws that must be addressed before mainnet.\n\nFor example, appending nil to a slice of errors resulted in a panic, or conditional statements like if not supporting custom boolean types. The GnoVM doesn't currently perform terminating statement analysis, which results in a cryptic panic message ([issue 1086](https://github.com/gnolang/gno/issues/1086)), and mixing untyped (negative) floats and integers in arithmetic sometimes drops the sign ([issue 1152](https://github.com/gnolang/gno/issues/1152)). The issues uncovered while developing GnoChess were discussed extensively in the public developer calls of [Sept 6](https://www.youtube.com/watch?v=BBBqgycMjqU) and [Sept 20](https://www.youtube.com/watch?v=WrxFVPR55G0), and referenced in the [GitHub meeting agenda](https://github.com/gnolang/meetings/issues/31). Most of the issues are common in software development and fairly simple to fix by making some implementation changes or adjustments to design choices.\n\nWhile developing GnoChess, our engineers took on the role of expert platform users rather than core team members. This approach was very useful as it pushed the platform to new limits, and allowed us to dive deep into many aspects of the project, creating a culture of sharing by opening up issues for each bug and asking for feedback and support. We'll definitely take a similar approach for future app development and onboarding new devs to Gno. We'll be releasing a retrospective of our experiences in the coming weeks. In the meantime, if you want to build a dApp on Gno.land, check out the GnoChess repo, where you can find a useful [tutorial](https://github.com/gnolang/gnochess/blob/main/tutorial/01_getting_started/README.md) or watch the recording of the GopherCon workshop, '[Chess: The Gnolang Way](https://www.youtube.com/watch?v=JQh7LhqW7ns).'\n\n## The Battle of the Virtual Machines\n\nCore engineers Marc and Petar continue their excellent work developing two different VMs for Gno, one in Go and one in Rust. In the coming weeks, we'll have a face-off, comparing and contrasting their features, efficiency, speed, and performance, so watch this space! For now, the definition of the virtual machine is stable for both, and they are no longer working on the virtual machine definition. They are mainly focusing on code generation; everything from parsing to scanning to parsing and compiling. Let's see how they are shaping up.\n\n### Rust VM\n\nPetar has developed a Rust implementation not only of the virtual machine but of the whole chain, including the compiler. He has written a Go compiler entirely in Rust and has even started experimenting with changing the compiler to implement the Invar proposal from Jae. Further progress includes porting a part of the parser and scanner from the Go compiler to Rust (almost a direct translation from Go to Rust) and making it stable. \n\nIn addition, Petar has completed work on typed nil values and improving the recursive closures of Go, which were not working with Gno code and needed additional pointers. He has also implemented Iota and hooked up the garbage collector. In the coming weeks, Petar will be working to smooth out bugs and implement type aliases, as well as implementing function analysis for the dependency graph. The dependency graph is necessary for compiling global types in the correct order, so, for example, when type A refers to type B, you need to compile type B first so that when type A refers to it, type B exists.\n\n### Go VM\n\nMarc is currently rewriting a parser and a scanner from scratch. His work is not as far along as Petar's, but he's getting closer, and the code generation works well. He is currently refactoring and building a single-pass compiler that can perform a **syntax-directed translation**, which means there are no intermediate data structures between the source code and the byte code. This is a much simpler design that should compile faster and be easier to maintain, but it requires a complete redesign. \n\nMarc believes his Go parser will be easier to maintain and understand than the one in Rust and benefit the user since the entire stack is written in Go. However, to assess the best implementation of the VMs, Marc has started a Go **test shoot project, which is a script** that will run many samples to verify that the compiler (in Go, Rust, or any other implementation) conforms to Go's specifications. Marc and Petar will open their repos soon, and the next edition of The More You Gno will highlight how the GnoVM works. \n\n## Gnoffee: Coffeescript for Go and Gno\n\nGnoffee (hackerspace [issue 22](https://github.com/gnolang/hackerspace/issues/22)) will be a powerful standalone tool to elevate the development process of Go and Gno by generating code and integrating new features, eliminating manual coding. We aim to create a custom variation of Golang that preserves similar readability, maintains compatibility, and enables being able to code in Gno very quickly when you know how to code in Go. How do we go about this? \n\nRegarding compatibility, one possibility is to propose all our changes to Golang and wait for approval before we start developing. However, this is likely to take some time. Another approach is to use a way to transpile TypeScript for JavaScript or Coffeescript for JavaScript, so it's another language passing through a program that creates standard valid Golang and will generate valid Gnolang. With this simple method, we can experiment with missing features like new native types, and new keywords, and when we have new features in mind, we can develop what we lack. \n\nFor instance, it does not make sense to have extra security for your exported variables when you write a library in Go. However, in Gno, it is very important to ensure that everything you expose cannot be modified by other contracts. This means finding a way to expose constants and other readable elements without risking their values being overwritten.\n\nBesides allowing us to carry out all types of experimentation more easily, Gnofee could eventually be a way for the Go team to measure the potential adoption of Gno. Gnofee is not a priority for the mainnet, but we're excited to work on this important initiative.\n\n## META Multinode Testnet\n\nThe discussions about single and multinode testnets have been ongoing, so we opened an issue to establish a multinode testnet focused on multi-validator experimentation, including stability, benchmarking, and lifecycle management. This multinode testnet aims to provide a platform for in-depth explorations and evaluations of multi-validator setups, while we maintain the single-node test3+.gno.land set up, primarily dedicated to showcasing the VM and providing examples. Visit hackerspace [issue 9](https://github.com/gnolang/hackerspace/issues/9) if you want to participate in this initiative or share your insights.\n\n## Banker Module Bug\n\nThe banker module bug is a known issue that needs to be fixed before the mainnet because, currently, it's still possible to mint new GNOT tokens from any contract. Several fixes have been suggested, and our goal is to merge [PR 875](https://github.com/gnolang/gno/pull/875) put forward by Onbloc to change the denomination of the coins minted by the banker. Merging this PR is currently blocked by 2 small failing checks, but we are close to resolving this issue.\n\n## Preserving Go Comments in Protobuf\n\nIn [issue 1157](https://github.com/gnolang/gno/issues/1157), Jeff from Berty raises the question about preserving Go comments in the Receiver field. Currently, Amino converts the code, but the proto message Receiver field doesn't have the comment. Manfred agrees that informative comments are helpful. However, he doesn't want to create a complex Protobuf configuration. We will continue to discuss this issue to look for solutions, but for now, Berty will parse the original Go source code and get the comments this way.\n\n## Multi-Sig and Security Features\n\nSeveral contributors, including Teritori, are working on built-in multi-sig support in Gno.land, where Gnokey supports a multi-sig setup. We also want to introduce additional ways to improve the UX and security of Gno.land (and web3 in general). An idea we currently have is to add a new layer in authentication, creating something similar to browser cookies that we can name sessions. The chain will have two tables, one with the public key for an account and one with a public key for sessions linked to an account. From your main account, you can create a session with self-destructing features, such as destructing after one hour without usage or after 24 hours. The goal would be to allow more complex and secure flows when starting your operations. We may not want this for multi-sig, but it comes under the same family of security and privacy features.\n\nFor example, imagine a wallet like Adena uses your key, a passphrase, or a ledger. It will sign a new public key that you just created in memory. Each time you close your browser, the memory is cleared. You can also have a logout button to call on the blockchain to delete all your sessions or simply wait for the session to be self-destructed, especially if the session was just in memory on your side. We will continue to develop this idea.\n\n## New Team Member\n\nWe're excited to welcome a new DevRel team member to Gno.land, Leon, who's been in blockchain development for two years and is passionate about engineering and teaching. Leon has taught languages, development, math, and music privately, as well as an OS fundamentals class at his previous faculty. Welcome on board!\n\n## Grantee and Ecosystem Updates\n\nAs Gno.land core continues to advance, so does our blossoming ecosystem, with new contributors and community members turning their eyes to Gno. The overriding theme of this last month has been collaboration, and we're pleased to see gnomes working together to overcome their obstacles and push their projects forward. Let's see what they've worked on over the last few weeks.\n\n### Onbloc\n\nOnbloc is powering ahead, contributing to Gno.land core, making upgrades and improvements to Adena and Gnoscan, and developing the Gnoswap DEX. Last month, Onbloc released the patched version 1.8.0 of Adena, which includes some UI and UX enhancements, such as more intuitive account management settings, a copy icon next to the names of the accounts, and some bug fixes. This release also comes with new injection methods to enable dApps to request users to add a custom gno.land network or switch to an existing one. Check out the [release note](https://github.com/onbloc/adena-wallet/releases/tag/v1.8.0) for more details.\n\nOnbloc has open-sourced the code for Gnoswap on this GitHub [repo here](https://github.com/gnoswap-labs/gnoswap). You can also find a guide to running unit tests. The team continues to improve the Gnoswap interface, focusing on the earn and staking pages, the graphs for positions, and some components for adding and removing liquidity and providing pool incentives. They're working on the next iteration of the interface, with the governance and airdrop pages, and developing the front-end logic to integrate with Gnoswap realms and APIs. Onbloc also contributed to Gno core, adding PRs for fixes to testing and the banker module. Keep up with Onbloc through their [hackerspace journey](https://github.com/gnolang/hackerspace/issues/29) and check out their latest initiative [Gnodesk](https://medium.com/onbloc/gnodesk-week-2-of-sept-2023-5edbc451bba7), which delivers weekly highlights and updates from Gno.land.\n\n### Teritori\n\nTeritori has been working on improvements since the last update and open-sourcing all their work, including the DAO deployer and the Moderation module. You can visit the Teritori DAO tooling repo to find the complete documentation and new realms to easily deploy your DAO. There is also a tutorial on creating your own DAO using the framework. \n\nThe team has made extensive progress on the Justice DAO deployer, a module that can be used for third-party arbitration when there is a problem with the escrow system in a decentralized freelance marketplace. The Justice DAO can resolve potential conflicts between the seller and the buyer and implements randomness to choose the judges to solve problems without conflicts of interest. The content flagging system, which highlights the content that users deem to be inappropriate, has been tweaked and improved. Keep up with Teritori's [hackerspace journey here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Berty\n\nBerty has already completed the first phase of the project and published the [technical proposal](https://github.com/gnolang/gnomobile/issues/15) to develop the Gno mobile framework. The team is now busy with the second phase of implementing the proposal and the gRPC interface, which is working with the local socket on Android and iOS. Jeff has been trying to use Amino, and, now that Iuri is back from vacation, the team will work on improving other parts of the interface. Check out their latest [demo](https://www.loom.com/share/c0f68f707d3e47089c2fdbd2698fc92f), which shows an example user interface with wallet functions and blockchain communication. \n\nOnbloc has laid the foundations for Gno mobile apps with the Adena mobile wallet, so Berty will use some of this code in the mobile framework and work with Onbloc to ensure a similar user experience across all Gno apps.\n\n### Flippando\n\nDragos, the developer behind new grantee Flippando, is an experienced mobile app developer. Flippando is a simple on-chain memory game, which is currently written in Solidity and deployed on several testnets, including Goerli, Polygon, Near, Aurora, Evmos, and a Saga chainlet. Fippando started as a project for Dragos to learn Solidity but has already been the winner of two hackathons in Korea. It can be deployed relatively easily on any machine and is currently being ported to Gno.land. Dragos is exploring which user intersection can be more beneficial for this and will show us a demo in the coming weeks. Soon, we'll have two gaming dApps on Gno.land – Flippando and GnoChess! Read about Flippando in the [hackerspace journey](https://github.com/gnolang/hackerspace/issues/33).\n\n### New Contributor Joseph Kato \n\nWe have a new contributor to Gno.land who showed a demo last month of what he's been working on, a language server to run tests and scripts. Joseph is a major Go fan looking to get into web3 and was super excited to come across Gno. While interacting with Gno.land, he found many IDE-like features that he missed when working on files, so he decided to work with an LSP implementation—gnols—with the goal of making these features available to all contributors regardless of editor preference, starting with Sublime Text and Neovim and moving on to IntelliJ, Golang, and Emacs. This is a welcome addition for anyone who has ever developed a realm in Gno. Check out his [hackerspace](https://github.com/gnolang/hackerspace/issues/34) page for more details. \n\n## DappCon, Berlin\n\nManfred was back in Berlin in September at the Radial System presenting 'Gno.land: The Key To Perpetual Transparency,' where he discussed how Gno.land offers a familiar, seamless experience for code sharing and a sustainable and transparent path for blockchain development. \n\n## Web3 Family\n\nCore dev Miloš Živković gave a talk at Web3 Family in Barcelona last month, 'Gno.land and Gnolang: The Dynamic Duo of Blockchain Development.' He presented a brief history of smart contract development and the issues associated with existing platforms, such as limitations in design and security. He introduced Gno and showed how we make web3 accessible and blockchain development more intuitive and secure. Catch the [talk here](https://www.youtube.com/watch?v=0K-jr_Ad3bI).\n\n## GopherCon 2023\n\nGno.land was out in force at GopherCon 2023 with a well-stocked booth at the conference and an awesome workshop building a web3 chess server on Gno.land. Both Manfred and Jae were at the booth championing Gnolang to Gophers, and we received a lot of positive feedback, some new contributions, fresh PRs, and exposure for Gno.land in web2 circles. It was also a fabulous chance for the team to meet for valuable face-to-face time.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress.\nDo you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.\n","gnoland,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TtvfHrZB9UrTAb8+73akU8fg16eenmjQJLmXbB2xWAMWyh6cVml62VeGP7jX7+Ba7z+lJ4eDsbZF+Y3VNCUVAg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-6","The More You Gno: Gno.land Monthly Updates - 6","\nWelcome to the latest edition of The More You Gno, your regular source of updates from the Gno.land core team and contributor ecosystem. There’s a lot to cover this month, from a company engineering retreat to new core members and contributors. We’ve made progress across the board to fix important bugs and issues and provide additional features. There’s a new way to dynamically call realms, Gno.land’s tokenomics and governance are advancing, our standard library list is expanding, and our grantees are killing it with their deliverables. Without further ado, let’s dive in.\n\n## Gno Core Team Updates - TL;DR\n\nOnly got time to skim the updates? You’ll find the highlights in the list below. If you want to dive deeper into the topics, track our progress, understand the rationale behind our decisions, or explore the issues we came across, grab a coffee, kick back, and savor the full details.\n\n* **The Portal Loop** – Much of our focus over the past few months has been on the Portal Loop [(issue 1108)](https://github.com/gnolang/gno/issues/1108), which will make developing on Gno smoother, faster, and more intuitive. The Portal Loop will speed up deploying dApps and improve the UX for Gno.land devs.\n\n* **Dynamic Realm Caller** – We’ve added a new way to call realms dynamically so that dApps no longer have to manually import GRC20/721 tokens [(PR 1262)](https://github.com/gnolang/gno/pull/1262).\n\n* **DAO Structure \u0026 Tokenomics** – We’re close to finalizing the DAO structure of Gno.land and its tokenomics. There will be three main DAOs, GovDAO, EvaluationDAO, and SupportDAO. We’re exploring staking options for GNOT holders and working on transaction fees and gas.\n\n* **Gno Playground** – Gno Playground is an awesome way for developers to collaborate, share, and test their code. The full version isn’t ready yet, but we’re sharing the beta with anyone who wants to help us iterate and improve this week.\n\n* **Gno Standard Libraries** – In [issue 1267](https://github.com/gnolang/gno/issues/1267), you can find our current wishlist for Gno standard libraries. If you want to see what we have and what’s lacking, or you want to contribute, open an issue or a PR.\n\n* **Gno Language Server (Gnols)** – An implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for Gno, Gnols makes writing code simpler and works with several editors. Visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp) to try it out.\n\n* **RustVM Implementation** – The RustVM implementation is almost ready and is in the debugging stages. We’re also looking at adding a Jit compiler and researching the topics of determinism and concurrency.\n\n* **Bytecode Go VM Implementation** – The Parscan project is progressing well toward completion of the spec. We look to provide support for interfaces in the interpreter by extending the standard reflect package, also to the benefit of the entire Go community.\n\n### Engineering Retreat\nGno core engineering team got together last month in our first company-wide retreat. It was an invaluable opportunity to work face-to-face, brainstorm ideas, code together, and fix several high-level concerns. We made many improvements to the technical aspects of the project, including major advances on the Portal Loop, and strengthened our alignment through team bonding activities, socializing, and having fun. \n\nWe made multiple bug fixes and resolved many of the issues that arose out of [GnoChess](https://github.com/gnolang/gnochess) development, and Manfred and the Onbloc team (who joined us on the retreat) demonstrated a new way to dynamically call contracts using dependency injection with a registry. This, combined with Golang's interface capabilities, can achieve a good balance between dynamism, explicitness, and security (including type safety). This pattern could enable massive DeFi applications when used with GRC interfaces. It could also support contract-based DAOs where features can be added later, opening the door to new design patterns around contract upgrades. Check out [PR 1262](https://github.com/gnolang/gno/pull/1262) for more details. \n\nIt was invaluable for everyone to get plenty of 1:1 time with Jae. Morgan was able to bring the Native Bindings topic ([PR 859](https://github.com/gnolang/gno/pull/859)) much closer to completion. This has been a recurring theme in our developer calls for the last few months as it’s a complex topic that aims to change how Gno can use Go code while still being understood by static analysis tools like gno doc. Michael got greater clarity over the DAO structure and GNOT tokenomics, Milos was able to merge [PR 546](https://github.com/gnolang/gno/pull/546), after many months of effort, which adds file-based transaction indexing, and Thomas created instructions for getting started with the Gno Language Server (gnols), to give just some examples. It was productive and enjoyable and unblocked many issues. \n\nAiB engineers were also at the retreat, Zooma from Teritori, and Dongwon, ByeongJun, and Ray from Onbloc, creating plenty of opportunities for interesting discussions and showcasing our work. We also welcomed new core members Dylan and Danny to the team. Dylan is a senior software engineer, and Danny is supporting DevEx. We enjoyed meeting and hacking together with like-minded people and would like to do it more often with a broader audience. How about a Gnome contributor festival next year? Stay tuned.\n\n### Gno.land DAOs and Tokenomics\nThroughout the retreat and ongoing, we’ve made major advances to the DAO structure for Gno.land and the tokenomics of the chain. We’re still hammering out the final details, but we’ve decided on three main DAOs – GovDAO, EvaluationDAO, and SupportDAO – that will work together alongside other domain-specific DAOs, such as EngineeringDAO or ProjectsDAO, making Gno.land more decentralized over time. \n\nThe multi-tiered GovDAO will be responsible for voting on all decisions that affect the chain, such as parameter changes or validator acceptance/denial. GovDAO members will assess new contributors to the chain and allocate them a score and corresponding membership tier. EvaluationDAO will assist with specific contributions, lending its expertise and critic reviews as needed. SupportDAO will provide knowledge-specific services such as HR, marketing, and finance.\n\nRegarding transaction fees, we're exploring something similar to how Ethereum deals with gas in its EIP 1559 update. Essentially, a combination of comparing a new block’s size with the last block to gauge demand and some small parameters we’re looking at. We’re also experimenting with staking alternatives where contributors can stake their tokens to support certain projects in return for staking rewards. It’s still early days, so watch this space. We’ll be releasing more details soon. \n\n### Gno Playground\nGno Playground is a simple web interface that lets you share your code, run unit tests, deploy your realm and package, and execute functions in your code using the repo for a smoother and more collaborative developer experience. We’re excited to release Gno Playground out in the wild later this month in a soft launch set for November 28. If you’re interested in testing it out, head over to our Discord channel. We’re looking for feedback and help to identify bugs and improve the UX before its full launch in the new year. It will be interesting to see how people interact with the Playground and how they use it so we can iterate and attract more gnomes to our growing community.\n\n### The Portal Loop\nThe Portal Loop is an effort to create a continuously-deployed staging testnet to be hosted on the official [gno.land website](https://gno.land). The testnet will be reset at each commit on our repository, but it will re-play all the transactions from its previous version, dropping any that might fail following breaking changes in the code. The Portal Loop will provide a central place where you can experiment with the latest Gno.land updates, resolving the problem our existing testnets have faced (becoming stale only a few months after their launch) while also paving the way for building DAOs and on-chain Game of Realms and Proof-of-Contribution systems. \n\nWithin the Portal Loop efforts, we’re also building systems to more efficiently iterate locally on your Gno realms, similar to the previously described testnet. The Portal Loop will help to create an iterative cycle focused on development, testing, and feedback, enhancing local development and the Gno.land website. As developers are discovering, when building dApps like GnoChess, GnoMobile, or Flippando, they run into issues with the repo, GnoVM, and client libraries when developing locally.\n\nThe Portal Loop will enable much quicker feedback so we can iterate, uncover, and fix problems faster. Devs will get a greatly improved UI, with UX contributions and issues much easier to resolve, and the same CI/CD experience as web2 applications, where each time something is published on Git, they get instant feedback on how it works in staging, not only in terms of code but also in terms of data. Stay tuned, the Portal Loop is coming soon!\n\n### Standard Library Wish List\nThe standard library wish list in [issue 1267](https://github.com/gnolang/gno/issues/1267) is intended to be a starting place for anyone who wants to add new standard libraries to Gno. It's an opinionated collection of libraries that we would like to see added. So, if you see something missing that you’d like added to our standard libraries, leave a comment explaining your reasoning. If you want to port over a standard library from the list, make an issue for it and assign yourself, or if you can do it quickly, make a PR referencing the issue. You can see the global status of our standard libraries (as compared to Go) on our [Go\u003c\u003eGno compatibility document](https://github.com/gnolang/gno/blob/d421b963aed7f7c3ba3718edfc6fbd787fa8f0dd/docs/reference/go-gno-compatibility.md).\n\n### Dreaming with SOGNO\nThe Sogno project is a [dream](https://www.wordreference.com/iten/Sogno) Morgan has about improvements he plans to make on GnoVM. From his experience working on GnoChess, he found that many features were lacking that would have improved the workflow, for example, an improved debugging system, enhanced representation of the values within the VM, having maps as sortable data structures, and adding reflection. Morgan plans to work on this project on the side as a fork when he has time, so Sogno won’t be merged into the master branch for now. If you want to check it out and see if you can contribute, visit the [hackerspace PR 44](https://github.com/gnolang/hackerspace/pull/44).\n\n### The Future of the Gno Language Server (Gnols)\nThe [Gno Language Server (gnols)](https://github.com/gno-playground/gnols) is an implementation of the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) for the Gno programming language. It is similar to the equivalent “gopls” project for Go, as they can be plugged into your code editor through extensions and allow you to access handy features, such as autocompletion, formatting, and compile-time warnings/errors. Gnols makes writing code simpler, working with several editors to suit your preferences. To try it out, visit the [CONTRIBUTING.md file](https://github.com/gnolang/gno/blob/master/CONTRIBUTING.md#vim-support-with-lsp), which contains instructions to get you started. Our current documentation targets Vim, Neovim, and SublimeText, but can likely be used with any editor that supports LSP. Feel free to contribute to improving Gnols and adding more features. It’s well-written, and simple to dive into the code and add more capabilities.\n\n### RustVM Implementation\nPetar continues progressing on the RustVM implementation and has almost finished, apart from a few bug fixes. As the design is now complete, he will enter the testing stages. He is also looking at how to add a Jit compiler to the current design. Petar was initially concerned that the garbage collector might have presented serious issues, but this has turned out not to present a problem. Adding a Jit compiler will require a lot of work (at least six months) to support everything in the language, but it should be possible.\n\nPetar is also looking at implementing concurrency the way it is in Go to have a fully functional virtual machine as it is in the spec. This would likely attract more external contributors to developing the VM. One advantage of Rust is that, with the concurrency model, there is already an extensive library called [Tokio](https://tokio.rs/) which he can use. Petar stresses that this isn’t easy, but he believes it’s achievable, at least as a research topic around determinism and concurrency.\n\n### Go Bytecode VM Implementation\nMarc continues to develop Parscan, another bytecode VM, but entirely based on the Go runtime, with the advantage of reusing the type-checking system, concurrency model, and memory management already part of the existing Go runtime. In the last month, the support for all missing declaration statements (constants, variables, and types) was added in the code generator.\n\n## Grantee and Ecosystem Updates\nOur ecosystem partners and grantees are working flat out on their contributions. We’re close to seeing the on-chain memory game Flippando launch, Adena and Gnoswap are incorporating some major new features, Zack’s released another informative tutorial as part of the Go to Gno series, and we’ve received several new grant proposals as well. We’ve even welcomed a new contributing team, Varmeta, to the fold. Scroll through the details below.\nTL;DR?\n* On-chain memory game Flippando is coming soon\n* Gnomobile is almost complete and will be receiving a rebrand soon\n* Gnosocial will allow devs to experiment with social media dApps\n* Experiment with content moderation using the ModerationDAO or create your own DAO\n* Gnoswap AMM DEX beta will launch in December\n* Adena to implement new ‘Air-Gap’ feature\n* Varmeta is working on Gno.land Unity SDK to make Gno more accessible to game developers\n\n### Dragos\nDragos has been working on porting his on-chain memory game Flippando from Solidity to Gno, and we’re looking forward to playing it soon after seeing an awesome demo earlier this month. When you play Flippando, you uncover a matrix of matching visual symbols. There are 2 levels of difficulty (matrix made of 16 tiles or 64 tiles). For the launch, Dragos aims to have visual symbols containing basic colors, dice, hexagrams, or various gradients. Once you’ve matched all the pairs and completed a matrix, you mint an NFT that can be assembled as artwork on-chain and traded in a marketplace. Dragos is currently looking at the initial tokenomics for Flippando, with a fixed supply of 1 billion and no airdrop distribution (more details soon). \n\nDragos has been a mobile app developer for over 10 years, with an interest in blockchain for around seven years. He enjoys working with Gno, although having to reset the chain and redeploy programs each time he makes a change was a challenge. The Portal Loop solves these issues in local development and will allow him to deploy Flippando sooner. As part of the work for Flippando, Dragos also added [PR 1309](https://github.com/gnolang/gno/pull/1309) to improve our GRC721 implementation]. He is also applying for a grant to port his project management system on-chain for Gno, and he gave us a [demo](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view). An on-chain project management tool will be essential for organizing the DAO system, focusing on our team’s needs, organizing tasks, setting goals, and more. Keep up with Dragos’ progress by visiting his [hackerspace](https://github.com/gnolang/hackerspace/issues/33).\n\n### Berty\nBerty has been powering ahead with Gnomobile (which will soon receive a new name to better reflect its functionality), Gnosocial, and Gno core. Some highlights include significant progress on the GRPC interface (see [demo video]https://www.loom.com/share/d1cef60199c0487e86deab2a9e61d61c). As the interface to Protobuf has many more data types available than the interface to the language bridge, GRPC greatly simplifies the app and improves the UX. The API is almost complete and now includes wallet functions, such as creating an account and restoring an account from the recovery phase, and an event stream when calling a realm function [(demo video available here)](https://www.loom.com/share/42f2dcb0b4a34f77a95a0f8012e4b52b).To help developers, Gnomobile also includes example apps. Here is a [demo video](https://www.loom.com/share/41a20a764f0f4caf91f068b62e1f16c4) of the latest minimal hello app.\n\nBerty created [PR 1235](https://github.com/gnolang/gno/pull/1235) relating to Amino. They start with a Go struct and add comments explaining all the fields. Previously, when they ran Amino and generated a Protobuf structure, all their comments disappeared. This PR allows them to preserve the comments. They also created [PR 1213](https://github.com/gnolang/gno/pull/1213) since Amino should create a Protobuf structure where the fields follow official naming conventions. Thanks to help from the Gno devs, these PRs are merged.\nBerty is also focused on building a decentralized social media application using the Gnomobile framework, which is almost complete. The aim is to create a testbed where dApp builders can see how their implementations integrate and function with web2-like social media features, opening the door to interesting experiments such as DAO collaboration and content modification. Berty is building a decentralized Twitter-like application and plans to finish it in six months. Check their progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/28) and look for more upcoming demos.\n\n### Teritori\nTeritori has been focusing on Escrows in the past couple of months, aiming to make improvements that facilitate on-chain project management. The team is also iterating the Moderation DAO and has identified a need for a conflict solver module to call an external authority to solve a conflict between two parties (for example, the buyer and the seller). They have called this module the Conflict Solver Module and integrated several options like Justice DAO (composed of humans) or any realms (e.g. GnoChess) to solve the conflict. They are researching work on VRF to implement randomness so that the module selects a person (or group of people) with no conflicts of interest in the issue. [PR 11](https://github.com/TERITORI/gno/pull/11/files) provides more details. A true randomness function will also be handy for the Flippando game that doesn’t currently rely on true randomness. \n\nIn other news from Teritori, the moderation DAO is live! You can head to the [Teritori site](https://app.teritori.com/feed?network=gno-teritori) to play around with it and even try deploying your own DAO, creating a user profile, and adding a social feed. The team has deployed V1 of a “Soundcloud-like” app on the [Gnosocial feed](https://app.teritori.com/feed?network=gno-teritori) in which you can listen to music while browsing features, publish your own music as an artist that appears on your profile, comment on tracks, tip artists, and more. Keep updated with Teritori on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/7).\n\n### Zack Scholl\nOur resident tinkerer Zack gave a workshop last month as part of his “Go to Gno” series called [Go to Gno: ByteBeat - Generating Audio with Smart Contracts](https://www.youtube.com/watch?v=lmmUIEHhdqA). This is a really interesting tutorial on how to build Bytebeat (a minimal programming language for synthesized music) with smart contracts and follows on from his microblogging workshop. Be sure to check it out. If you want to hear more about Zack, you can also watch [Getting to Gno with Zack Scholl](https://www.youtube.com/watch?v=LgXa7QCdxdA\u0026t=1258s), a Fireside Chat series that talks about contributors’ work, lives, and motivations to be on the Gno.land journey with us.\n\n### Onbloc\nAs always, the Onbloc team has been busy! Over the past few weeks, they have been working on extending the functionality of Gnoswap, integrating APIs and realms with the interface, improving the governance page UI, and integrating the Adena wallet. Onbloc expects to launch the beta of Gnoswap next month, and we’re super excited to see it in action. To improve the UX and UI of Adena and make the wallet even more secure, the team is implementing a feature called Air-Gap which allows the wallet to broadcast transactions signed from an offline environment without the user needing to import their keys to Adena. Onbloc has also started a discussion around ideas to improve the usability of QR Codes for secure data transmissions between offline signers and watch-only wallets in [Issue 1375](https://github.com/gnolang/gno/issues/1375). We’ll keep you updated on the work here. You can also find more information on Onbloc’s [informative blog](https://medium.com/onbloc). \n\nAs well as developing core tooling for Gno, Onbloc is working on Gno core to help us build important functionality. The team welcomed a new hire, Lee ByeongJun as a core engineer and to help with work on three core areas: contract interaction (enabling realms to interact with other realms), the multinode testnet, and porting essential Go packages to Gno. You can find more details and keep track of everything Onbloc is working on in their [hackerspace issue here](https://github.com/gnolang/hackerspace/issues/29).\n\n### Varmeta\nWe’re excited to welcome a new contributor Varmeta to Gno.land. Varmeta was founded in 2020 to focus on blockchain and virtual reality/augmented reality technologies and has grown from a team of three to over 40 engineers. Varmeta is excited by the vision behind Gno.land and its philosophy for rewarding developers. The team is committed to supporting Gno’s success by providing various applications for the ecosystem, starting with the Gno.land Unity SDK to make blockchain more accessible to game developers. Track Varmeta’s progress on their [hackerspace here](https://github.com/gnolang/hackerspace/issues/43).\n\n### Gno @ Devconnect Istanbul 2023\nGno.land core team members organized a small, unofficial meetup in Istanbul during Devconnect week from November 13-17. The engineering-focused meetup was accompanied by a Happy Hour and snacks, where attendees got the chance to learn about Gno.land in an informal way and how they can easily develop dApps in Gno, as well as contribute to the project.\n\nThat's all for now! Be sure to check back again with us for the next edition of The More You Gno to keep up with all our progress. Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution.","gnoland,ecosystem,updates,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Fls+m7dAkM1U7srlx3hnnmO0iWXMtljycFVxsptX2ENuIEhB3TzloiE37E06sGERCEriDjNpsgY+asBv9zIzBg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["monthly-dev-7","The More You Gno: Gno.land Monthly Updates - 7","Welcome to the latest edition of *The More You Gno*, your regular source of updates from the Gno.land core team and contributor ecosystem. After a well-deserved rest during the holiday break, we’re kicking off 2024 with renewed energy and plenty of exciting initiatives, including a new staging testnet (the Portal Loop), the official Gno.land documentation page, several merged PRs (including native bindings!), and many updates across the board. Dive in to find out what we’re working on and what our ecosystem partners and grantees have been up to.\n\n## Gno Core Team Updates TL;DR\n\nShort on time? Skim the highlights from the core team in the list below. You’ll find additional details in the next section if you want to explore any topic in greater detail.\n- **Native Bindings** - If you’ve been following our journey or experimenting with the platform, you’ll hear virtual champagne pops as Morgan’s ongoing work with native bindings is finally merged [PR 859](https://github.com/gnolang/gno/pull/859).\n- **Gnodev** - Thanks to Guilhem’s `gnodev` initiative [PR 1386](https://github.com/gnolang/gno/pull/1386), you can now create and develop contracts with a single command.\n- **Gno.land Offical Docs** - Check out [docs.gno.land](https://docs.gno.land) for how-to guides, getting started, and an overview of key concepts of the platform.\n- **Effective Gno** - Taking inspiration from *Effective Go*, Manfred’s begun listing common patterns and examples of the differences between Gno and Go.\n- **Assignment in GnoVM** - Jae is working on approaches to fixing assignment in the GnoVM and issues that deal with persistence [(issue 1326)](https://github.com/gnolang/gno/issues/1326). \n- **Portal Loop** - The [Portal Loop](https://portal.gnoteam.com) has been released on a staging domain and is being tested.\n- **Roadmap** - We’re working on a fully-fledged Gno.land roadmap and will share a detailed DAG and important goals and milestones with you soon.\n- **Tendermint2 Update** - There are several PRs aimed at removing the dependencies between Tendermint2 and GnoVM.\n- **Gno.land Tokenomics** - We continue to make progress in defining the structure of Gno.land’s DAOs and the design of reward schemes for contributors.\n### Native Bindings (PR859) Has Been Merged\n[PR 859](https://github.com/gnolang/gno/pull/859) (native bindings) was submitted by Morgan in May 2023 to improve calling Go code from Gno standard libraries, all while improving `gno doc` documentation for standard library functions. Native functions are _declared_ in Gno code, but their definition (the underlying code) only exists in Go: this is similar to how Go and many other systems languages implement assembly functions. Overall, the addition will now allow us to better support precompilation (transpiling Gno code to Go) for all Gno-specific standard libraries, like [`std`](https://docs.gno.land/reference/standard-library/std/address/), and have a system for defining such functions that is transparent to code analysis tools like `gno doc` and `gnols`.\n### Gnodev Has Been Merged\n[PR 1386](https://github.com/gnolang/gno/pull/1386) (`gnodev`) has been merged. Gnodev is a tool to locally develop Gno realms which automatically re-deploys your contracts when you change the files, similar to JavaScript frameworks `npm run dev`. There are some additional features being worked on to improve the experience, including browser hot-reload (for the full front-end JavaScript experience!)—and Gno core developers who have worked on realms all agree that thanks to `gnodev`, they can finally stop visiting their therapist every week. Play around with it, and let us know how you get on. There may be a few bugs still and Guilhem is happily accepting feedback.\n### The Gno.land Official Documentation Page Is Live\nWe’re excited to have the Gno.land Official Documentation page live on the [https://docs.gno.land](https://docs.gno.land) domain. This will always be a work in progress as we expand the docs, make iterations to existing issues, and refine some of the core concepts, but it’s an excellent resource for anyone wanting to find out more about Gno and for onboarding new developers to the platform. A big thanks to the Onbloc team, whose developer portal was a huge inspiration for this. We’re looking for feedback, so leave your reviews and let us know where the docs can be improved and what else you would like to see.\n### Effective Gno\nManfred has been working on a document called [Effective Gno (PR 1000)](https://github.com/gnolang/gno/pull/1000), which takes inspiration from *[Effective Go](https://go.dev/doc/effective_go)* and will become an important reference document for Gno devs to explore common patterns and crucial differences in how we program compared to Go. We’ll be iterating on this as we progress, but you can already find plenty of examples. If you’re just getting into Gno and coming from a Go background, this is a great resource. Read this document and provide some comments if you have any. \n### The Portal Loop Beta Is Live\nThe Portal Loop Beta has been released on a staging domain, and you can check it out now at [https://portal.gnoteam.com](https://portal.gnoteam.com). The Portal Loop will replace the Gno.land website once we’ve finished squashing bugs and adding features. We’re still testing it and have identified several issues. For example, from the last three merged PRs, only one triggered a redeploy when we expected two or three deploys. We will also add a faucet.\n\nAs we continue to evolve the Portal Loop out of its early development stages, transaction volume and general activity will increase. However, currently, there are insufficient transit testing transactions. One of the tasks we want to do to prove that the Portal Loop is working well enough is to write a kind of monitoring-oriented oracle that will try to make transactions, perhaps incrementing a counter every minute. We’re looking for help writing a script or a daemon for this oracle, so let us know if you want to contribute to [issue 1443](https://github.com/gnolang/gno/issues/1443). Once the Portal Loop is finished, we will focus on testnet 4.\n### Assignment Issues in the GnoVM\nMorgan came across a bug [issue 1326](https://github.com/gnolang/gno/issues/1326), which returned an error about an [“unexpected unreal object”](https://tenor.com/es/view/cranizox-gif-8576622211330078986) when assigning a local variable to a dereferenced global variable in the GnoVM. Jae has been spending some time working on approaches to solving this and fixing assignment that will also work for saving escaped objects that don't have a parent (like variables whose pointers are referenced on a persisted object). This is a tough one to figure out, so if there are any other VM issues that deal with persistence and detached parentless objects, now is the time to add them to Jae’s plate. \n### An Update on Tendermint2\n[PR 1483](https://github.com/gnolang/gno/pull/1483) has the same goal as [PR 1438](https://github.com/gnolang/gno/pull/1438): to make Tendermint2 completely independent of GnoVM and Gno.land. This continues a project started many months ago to separate Gno into three separate components: the Tendermint2 consensus engine, the Gno programming language and VM, and Gno.land, the blockchain combining both together. This way, we’re working towards making it possible to build other blockchains that use Tendermint2 (like AtomOne!), the GnoVM, or both!\n### Gno.land Engineering Retreat\nIn the last *The More You Gno*, we covered the Gno.land and AIB company-wide retreat, an invaluable opportunity to work together, code together, and get to know our peers outside of work. It was such a success that the Gno core dev team held another retreat in December in Rouen, France, where many of the above issues and PRs were tackled and merged. We look forward to more productive and frequent face-to-face meetings in the year ahead.\n### Gno.land DAOs and Tokenomics\nWith the input of Manfred, Jae, and the rest of the team, Michael continues to make advancements on Gno.land’s system of DAOs and tokenomics. One key change since the last edition is that the WorxDAO (responsible for governance and all issues related to development in Gno.land) will now be known as the GovDAO. The DAO will likely have seven tiers but initially launch with three or four. The main benefits of moving up tiers are increased voting power, increased monthly rewards, and the authority to promote members from lower tiers. GovDAO will be assisted by WorxDAO, which will encompass several different sub-DAOs, such as engineering, funding, and projects. \n\nWe’re currently exploring different reward systems for contributors, whereby each member of the same tier level will receive the same amount of rewards, either directly or indirectly, in the GNOT native gas token or USD, in a type of salary-based scheme. We may also elect to distribute rewards based on a contribution/work “hash difficulty” (total number and tier split of active contributors that month). We may also adopt a hybrid of these two models. \n\nMichael is also working on a bounty system to make Game of Realms (GoR) more accessible and evaluating contributions easier for judges. High ranking GoR competitors will likely receive Gno.land tier levels based on their leaderboard placing in addition to ATOM rewards. It’s important to note that these discussions are ongoing, and the information here may be deprecated. \n### Making Testing Faster\n\nThanks to Petar, [PR 1417](https://github.com/gnolang/gno/pull/1417), we have improved the entire VM testing suite runtime by around four minutes, which is an incredible achievement. We just need to refactor some test scenarios that are not very concurrent-friendly, but this PR makes interacting with the platform so much easier.\n\n### Bug Fixes and Miscellaneous Items\n\nThanks to Joon from Onbloc, we were able to add support for octals without 'o' (check out [PR 1331](https://github.com/gnolang/gno/pull/1331) for more details), and thanks to Dragos [PR 1309](https://github.com/gnolang/gno/pull/1309), we extended the GRC721 interface so that it now supports setting a token URI. These are both extremely welcomed contributions, and we appreciate our ecosystem partners.\n\nFrom the core team, a special shout out to Dylan for killing it fixing bugs, and getting many PRs ([PR 1451](https://github.com/gnolang/gno/pull/1451), [PR 1315](https://github.com/gnolang/gno/pull/1315), and [PR 1305](https://github.com/gnolang/gno/pull/1305), to name a few) merged over the last few weeks. Props also go to Marc for [PR 1177](https://github.com/gnolang/gno/pull/1177), which has just been merged, which fixes append in certain key situations. We’ve also welcomed a new security engineer, Kristov, to the team.\n\n## Grantee and Ecosystem Updates\n\n### Onbloc\n\nOnbloc has been on a roll, giving us an internal demo of Gnoswap beta just before the Christmas break and a public demo of its awesome Pool Incentivization feature during the last contributor sync call. With Pool Incentivization, anyone can add extra rewards on top of swap fees for LP stakers. This will help bootstrap initial liquidity for new-coming projects by attracting liquidity providers until sufficient organic trading volume is secured. Onbloc is also actively developing Adena’s Airgap feature and has improved the sign-in flow for security enhancement along with some refactoring. There will be a demo coming up in the next few weeks. Onbloc will also be researching airdrop trends and aiming to identify some of the most coveted DEX features users want to see for Gnoswap to streamline the onboarding process.\n\nRegarding Gno core, Onbloc core dev Byeongjoon Lee has developed a JSON parser for Gno, giving us a live demo during the last contributor sync. This allows the conversion or accessing of data from contracts in the JSON format, which will improve the Gno developer experience. His code is currently under review by the core team in [PR 1415](https://github.com/gnolang/gno/pull/1415). Dive deeper into Onbloc’s Builder Journey in the [hackerspace issue 29](https://github.com/gnolang/hackerspace/issues/29).\n\n### Teritori\n\nTeritori continues the challenging work of developing Gno Project Manager, a web app that allows anyone to create, fund, review, or manage projects fully on-chain. During the last contributors' call, the team gave a demo of the work achieved so far, in particular regarding the escrow system and completing project milestones so contributors can be paid once each one is completed rather than having to wait until the project finalization. \n\nGno Project Manager is a complex goal, and the team has run into some issues with edge cases they hadn’t bargained for in the relationships between grantees and funders. The team is looking for feedback and help identifying edge cases, so if you have any in mind, let them know. Teritori is also working on the conflict solver module and improving the social feed on [https://app.teritori.com/feed?network=gno-teritori](https://app.teritori.com/feed?network=gno-teritori), as well as providing more detailed documentation on their work, which they’ll be releasing in the coming weeks.\n\n### Berty\n\nThe Berty team has been busy working on GnoSocial backend implementation. The initial feature set has been implemented [here](https://github.com/gnolang/gnosocial/blob/main/realm/public.gno), including posting and replying to messages and reposting threads. You can keep up with Berty’s journey on GnoSocial in [hackerspace issue 51](https://github.com/gnolang/hackerspace/issues/51), which contains many issues and PRs, such as implementing calls, running tests, and fixing bugs. We’re super excited about pushing the limits of scalability with Berty’s decentralized social platform, and we’ll be looking forward to more demos in the coming weeks.\n### Dragos\nDragos has successfully launched the Flippando game, and you can try it out on the [testnet here](https://gno.flippando.xyz/flip). If you haven’t been following the progress, Flippando is an on-chain memory game that you can play with your choice of styles, such as dice, colors, and hexagrams. Once you successfully complete a matrix, you can mint the end result as an NFT, which can later be assembled into larger, more complex NFTs to create digital artwork. You can find out more about the game, its creator, and the official roadmap on the site. We’ll also release a blog post soon from Dragos sharing his experience porting Flippando from Solidity to Gno, so stay tuned!\n### Varmeta \nVarmeta’s update was brief this week since the contributor sync call ran over. We look forward to hearing more about the team’s progress in developing the Unity SDK for Gno next time. You can read more about it on Varmeta’s [hackerspace issue 43](https://github.com/gnolang/hackerspace/issues/43).\n\n*Do you want to contribute to Gno.land's monthly updates? If you're building on Gno.land and want to highlight your development, project, event, or idea, let us know, and we'll include your contribution. That's all for now! Keep track of our progress by following our socials [Twitter/X](https://twitter.com/_gnoland) and [Discord](https://discord.com/invite/tF2X8M6cVj) and watch out for the next edition of The More You Gno in a few weeks.* \n","gnoland,ecosystem,updates,gnovm,tm2"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dMXQMKk3UFBvZ4RmB8Y+8934Eu5RpV9wQEBuU3AWPQn69DgD4cgynFB0U9G+DCs0WuoDEG2HQedrtllOtZUVCQ=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["peace","Peace!","\n# Peace!\n\nI've never been put in such a difficult position, of having information that I\ncannot reveal. And if you know me, you know that I like to speak my mind. But\nI cannot say the things that I would rather say, because you get a lot of flack\nfor saying anything bad about a public chain.\n\nSo I have been sitting on this issue, losing sleep about it for years, because\nit leads me to worry about the safety of the hub. From an external person's\npoint of view, the solution is obvious -- reveal the information for the\nbetterment of everyone, no matter the consequences, because that is the right\nthing to do. As a stakeholder, and I agree with the majority of the community\nthat peace and silence is better, with exceptions.\n\nSo without turning this into a war of accusations bringing back past drama,\nlet's just do this: dear core contributors, Ethan Buchman, Zaki Manian, Jack\nZampolin, and everyone, here is my peace plan.\n\n----------------------------------------\n\n## On Prop 69\n\nProp 69 is about adding CosmWASM to the hub. I have repeatedly talked about\nthe dangers of adding CosmWASM to the hub, including a document shared two\nyears ago.\n\nhttps://github.com/jaekwon/cosmos_roadmap/tree/master/shape_of_cosmos#smart-contracts\n\nEven before prop 69, I had declared publicly that stakers voting yes to adding\nWASM on the hub would not receive airdrops. Primarily, because it increases\nthe surface area for attack by an order of magnitude. CosmWASM adds two layers\nof new complexity to the hub. WASM itself, as well as CosmWASM. WASM as a spec\nand its implementations are still maturing, and though available on browsers,\nand some blockchains, it still hasn't gone through the gauntlet of time. All\nnew complex technologies like WASM, like Java, Linux, and even Go, in hindsight\nhave numerous bugs that could have or were used maliciously. The same will be\ntrue of any WASM integration with the hub, and this potential for exploits\ncombined with the massive potential rewards (especially of pegged PoW tokens)\nmakes such exploits an inevitability.\n\nIn Juno recently there was a bug that halted the chain for three days. Worse\ncan happen on the Cosmos Hub. The very identity of the Cosmos Hub (it's most\nvaluable asset is specifically a schelling point brand, of being a \"common IBC\nhub\") is threatened if a bug were to result in the theft or loss of coins. On\nplatforms like Ethereum or Polkadot, perhaps they would have a better time\nrolling back the chain to undo a hack as in the DAO hack. The major difference\nwith an *IBC hub* is that it cannot simply reverse the transactions of other\nchains.\n\nWe have yet to experience such a bug in any of our zones on a major scale, and\nhave yet to learn how to coordinate in the case of such in an interconnected\nweb of zones. Where are the planning documents for disaster scenarios? Between\nPoS chains with good governance, we will learn how to roll back transactions\nacross connections, if need be in exceptional circumstances, but we aren't\nthere yet. This option isn't even available with pegged PoW coins.\n\nYes, the contracts that are approved to run will be governance gated, but this\nis not enough. For one, even with perfect governance, there are two new pieces\nof complexity that will see more zero day bugs in the future for exploitation.\nIn terms of governance, the contracts are probably going to be written in Rust,\nand so suddenly the validators that joined the project by inspecting the Go\ncode is now required to also audit Rust code. But also, we are now truly\nopening the doors to all kinds of contracts to be run, because while governance\ndoes sometimes reject proposals, it is generally accommodating to new features\nespecially endorsed by core contributors.\n\nI know of three alternatives:\n\n(1) we can use IBC to offload features to other zones. For liquid staking\n(which should not be the focus of the hub) the hub could allow validators to\nrestrict the destination of unbonded ATOMs, and smart contracts running on\nother zones can distribute those ATOMs according to the logic of whatever\nliquid staking contract. This ensures separation of concerns, and a minimal\nhub.\n\n(2) we can use Go plugins to extend the functionality of the chain.\n\n(3) we can do nothing. if liquid staking is such a big deal, something is wrong\nabout priorities for a cosmic \"hub\". If the liquid staking market is larger\nthan the base non-liquid staking market, the system is open for manipulation\nand is insecure. The focus should not be on self-limiting use-cases, but the\ninfinite market of running validators with replicated security, perhaps running\na simple dex, and most of all innovating on and offering interchain security,\nthe business of judging validation faults as related to Tendermint, and perhaps\nthe interpretation and enforcement of self-enforced customs (law) of a\nblockchain as defined by its shareholders who defer validation (and perhaps\njudicial services) to the Cosmos Hub because it has a reputation for being the\nlongest ever running proof of stake hub that has never gone down, even as\ncompared to the upcoming Ethereum2.0.\n\nAnd note, I'm not proposing that the ATOM stakers forgo the benefits of\nsupporting contracts with CosmWASM. I support Juno and Tardigrade and Ethan\nFrey’s work, but I also support the Hub running shared security, especially\nsimple replicated shared security where the validators also validate other\nchains. I think this, and interchain staking, are the only profit models needed\nfor the hub (besides being a hub). NOTE: But those \"consumer chains\" ought to\nbe provided with full disclosures that the Cosmos Hub validators do not\nmaintain their respective software (as it would be impossible to audit all\nzones that would benefit from the hub's security) but only offering validation\nservices as-is. This would force the hub validators to solve process isolation\n(and I would much prefer building the protocol to NOT require particular\nsolutions like Docker, but allows validator choice), or else they would quickly\nget slashed from malware (and that would be good to prune those validators from\nthe hub).\n\nSo many options that don't require putting WASM on the Cosmos Hub.\n\n------------------------------------\n\n## On Incentivized Votes\n\nIn corporations, you can buy shares to influence the outcome of governance\nvotes. In democracy, this is not allowed because the vote could be bought to\ninfringe upon the rights of other people.\n\nWhat do you do when the chain's own core contributors proposes a proposal that\nyou judge damages the integrity of the system? I think that's a good time to\ncreate a fork of the hub's ATOM distribution led by a new development team.\nSometimes this option is the only option because of safety concerns, and this\nis the case for me here.\n\n### Why is the snapshot date 5/19/2022?\n\nA snapshot in the past is more vulnerable to insider gaming, because there is\nan imbalance of information--only the coordinator knows, and so can game the\npremine.\n\nIt is good to give many people the advantage of participating in a snapshot.\nExcluding anyone who would have been an ally of a chain, in turn creates\nanimosity that would rather see another project succeed where they are\nincluded.\n\nEven before the proposal I had pre-declared that anyone who votes for WASM on\nthe hub would not receive a gno.land airdrop. The proposer probably knew this\nwhen the proposal was submitted.\n\nThe snapshot date would have been 7/4/2022, because that is Independence Day in\nthe United States. I originally chose Independence Day because of the general\noriginal mission of Tendermint, Cosmos, Bitcoin, and the crypto spirit; and\nbecause the United States (as flawed as it is) is the best historic ideal of\nhuman liberty we've had since before the days of Rome.\n\nThen prop 69 was submitted. I had said previously that we would exclude those\nwho vote in favor of WASM on the hub, but we don't have the tools yet to tally\nthe movement of tainted ATOMs after the unbonding period for the hub. So I\ndecided to move the snapshot date to 5/19/2022.\n\nNow with prop 69, I see that to me, 21 days after the beginning of proposal\n\\#69, 5/20/2022 (but 5/19/2022 PDT) is a chance to create a new community within\nthe Cosmos ecosystem that champions safety with a zero tolerance policy and a\nmission to develop social coordination tools like the GNO smart contract VM, to\ncreate even better governing bodies than the one we have today.\n\n### Gno.land and Cosmos Hub\n\nNow, I feel compelled to exit should prop \\#69 pass. But as it is now, 16.57%\nare voting YES, while NO and NO WITH VETO have 70.73% and 8.38% of the votes\nwith turnout at 30%. If the proposal does not pass, I would feel no need to\nexit. For as long as the Cosmos Hub remains minimal and secure, we will favor\nit as the dominant or only token hub connected to gno.land via the current IBC\nimplementations for the purpose of interchain token transfers. It's a job that\nwe'd rather not solve, as specialization is what will get us to the finish line\nbefore other platforms do, and also I'm quite hooked on gnolang programming and\njust want to make gnolang apps. Not everybody wants to build a DTCC, but many\nwould prefer to use it.\n\n### Airdrop distribution\n\nWhen I was asked on Cryptocito what I would have changed if I were to do it all\nagain, well, I would put the ICF in the hands of the chain. So in gno.land, the\nICF's portion of $GNOT will go to DAOs on gno.land. As for me, I have a\nsignificant amount of ATOMs that voted for NO WITH VETO, but most of my tokens\nby far are with the company that I previously founded, then called All in Bits,\nInc. AIB will not receive any $GNOT except by completing negotiations with me,\nwhich is taking a lot longer than is reasonable--or not.\n\nFor reference, for the genesis of the Cosmos Hub, the total distribution for\nboth entities was 20% of all ATOMs, and today it is still significant. The\ntotal premine that I control directly or indirectly will not exceed 1/3 of the\ntotal $GNOT distribution, but I am considering 20% again.\n\nSome more guidelines, which may change, so don't take anything here as\nfinancial advice:\n\n* NO with VETO is slightly better than NO.\n* NO is better than ABSTAIN.\n* ABSTAIN is better than not voting at all.\n* Delegators inherit the votes of the validators.\n* If you vote YES on \\#69, you will not receive gno.land $GNOTs.\n\nNOTE: If you don't like my airdrop rules, you are free to make your own, and if\nyou're nice you can even run gno.land contracts if you so want there, or you\ncan just run a fork of gaia.\n\nIf you have a better ideal for such an exit-drop by tweaking the governance\nmodule, I'd love to hear your feedback, or generally how you think I could have\ndone this better. Some say that they don't want to see more of this kind of\nforking, but I think we ought to celebrate it instead.\n\n----------------------------------------\n\n## Conclusion\n\nHere's a peace offering.\n\nJust change your vote from YES to NO, and I will not intervene upon the second\nsubmission of the proposal (and I would even fund its deposit if need be). But\nif you instead feel strongly about signaling in favor of CosmWASM, here you can\nexpress it, and I celebrate you, for being different than I, and wish you the\nbest of luck. That is equivalent to a no-confidence vote on gno.land, and is a\nproper way to diss me. Again, I salute you.\n\nIf you can reconsider your vote to be a NO, or even better, a NO WITH VETO, I\nwelcome you to gno.land. Happy 5/19/2022 (5/20/2022 Europe) Gno.land\nIndependence Day!\n","peace,cosmos,gno.land"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PB5mRzM5wktj+Sr9u6BuqKQIN/dVmyGEm+PSKKe4DsRTKtlVpRFzFK2+7W6wCFIh3H6ScRjm3RqVWh3PK4YVDg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["peace","Peace!","\n\nI've never been put in such a difficult position, of having information that I\ncannot reveal. And if you know me, you know that I like to speak my mind. But\nI cannot say the things that I would rather say, because you get a lot of flack\nfor saying anything bad about a public chain.\n\nSo I have been sitting on this issue, losing sleep about it for years, because\nit leads me to worry about the safety of the hub. From an external person's\npoint of view, the solution is obvious -- reveal the information for the\nbetterment of everyone, no matter the consequences, because that is the right\nthing to do. As a stakeholder, and I agree with the majority of the community\nthat peace and silence is better, with exceptions.\n\nSo without turning this into a war of accusations bringing back past drama,\nlet's just do this: dear core contributors, Ethan Buchman, Zaki Manian, Jack\nZampolin, and everyone, here is my peace plan.\n\n----------------------------------------\n\n## On Prop 69\n\nProp 69 is about adding CosmWASM to the hub. I have repeatedly talked about\nthe dangers of adding CosmWASM to the hub, including a document shared two\nyears ago.\n\nhttps://github.com/jaekwon/cosmos_roadmap/tree/master/shape_of_cosmos#smart-contracts\n\nEven before prop 69, I had declared publicly that stakers voting yes to adding\nWASM on the hub would not receive airdrops. Primarily, because it increases\nthe surface area for attack by an order of magnitude. CosmWASM adds two layers\nof new complexity to the hub. WASM itself, as well as CosmWASM. WASM as a spec\nand its implementations are still maturing, and though available on browsers,\nand some blockchains, it still hasn't gone through the gauntlet of time. All\nnew complex technologies like WASM, like Java, Linux, and even Go, in hindsight\nhave numerous bugs that could have or were used maliciously. The same will be\ntrue of any WASM integration with the hub, and this potential for exploits\ncombined with the massive potential rewards (especially of pegged PoW tokens)\nmakes such exploits an inevitability.\n\nIn Juno recently there was a bug that halted the chain for three days. Worse\ncan happen on the Cosmos Hub. The very identity of the Cosmos Hub (it's most\nvaluable asset is specifically a schelling point brand, of being a \"common IBC\nhub\") is threatened if a bug were to result in the theft or loss of coins. On\nplatforms like Ethereum or Polkadot, perhaps they would have a better time\nrolling back the chain to undo a hack as in the DAO hack. The major difference\nwith an *IBC hub* is that it cannot simply reverse the transactions of other\nchains.\n\nWe have yet to experience such a bug in any of our zones on a major scale, and\nhave yet to learn how to coordinate in the case of such in an interconnected\nweb of zones. Where are the planning documents for disaster scenarios? Between\nPoS chains with good governance, we will learn how to roll back transactions\nacross connections, if need be in exceptional circumstances, but we aren't\nthere yet. This option isn't even available with pegged PoW coins.\n\nYes, the contracts that are approved to run will be governance gated, but this\nis not enough. For one, even with perfect governance, there are two new pieces\nof complexity that will see more zero day bugs in the future for exploitation.\nIn terms of governance, the contracts are probably going to be written in Rust,\nand so suddenly the validators that joined the project by inspecting the Go\ncode is now required to also audit Rust code. But also, we are now truly\nopening the doors to all kinds of contracts to be run, because while governance\ndoes sometimes reject proposals, it is generally accommodating to new features\nespecially endorsed by core contributors.\n\nI know of three alternatives:\n\n(1) we can use IBC to offload features to other zones. For liquid staking\n(which should not be the focus of the hub) the hub could allow validators to\nrestrict the destination of unbonded ATOMs, and smart contracts running on\nother zones can distribute those ATOMs according to the logic of whatever\nliquid staking contract. This ensures separation of concerns, and a minimal\nhub.\n\n(2) we can use Go plugins to extend the functionality of the chain.\n\n(3) we can do nothing. if liquid staking is such a big deal, something is wrong\nabout priorities for a cosmic \"hub\". If the liquid staking market is larger\nthan the base non-liquid staking market, the system is open for manipulation\nand is insecure. The focus should not be on self-limiting use-cases, but the\ninfinite market of running validators with replicated security, perhaps running\na simple dex, and most of all innovating on and offering interchain security,\nthe business of judging validation faults as related to Tendermint, and perhaps\nthe interpretation and enforcement of self-enforced customs (law) of a\nblockchain as defined by its shareholders who defer validation (and perhaps\njudicial services) to the Cosmos Hub because it has a reputation for being the\nlongest ever running proof of stake hub that has never gone down, even as\ncompared to the upcoming Ethereum2.0.\n\nAnd note, I'm not proposing that the ATOM stakers forgo the benefits of\nsupporting contracts with CosmWASM. I support Juno and Tardigrade and Ethan\nFrey’s work, but I also support the Hub running shared security, especially\nsimple replicated shared security where the validators also validate other\nchains. I think this, and interchain staking, are the only profit models needed\nfor the hub (besides being a hub). NOTE: But those \"consumer chains\" ought to\nbe provided with full disclosures that the Cosmos Hub validators do not\nmaintain their respective software (as it would be impossible to audit all\nzones that would benefit from the hub's security) but only offering validation\nservices as-is. This would force the hub validators to solve process isolation\n(and I would much prefer building the protocol to NOT require particular\nsolutions like Docker, but allows validator choice), or else they would quickly\nget slashed from malware (and that would be good to prune those validators from\nthe hub).\n\nSo many options that don't require putting WASM on the Cosmos Hub.\n\n------------------------------------\n\n## On Incentivized Votes\n\nIn corporations, you can buy shares to influence the outcome of governance\nvotes. In democracy, this is not allowed because the vote could be bought to\ninfringe upon the rights of other people.\n\nWhat do you do when the chain's own core contributors proposes a proposal that\nyou judge damages the integrity of the system? I think that's a good time to\ncreate a fork of the hub's ATOM distribution led by a new development team.\nSometimes this option is the only option because of safety concerns, and this\nis the case for me here.\n\n### Why is the snapshot date 5/19/2022?\n\nA snapshot in the past is more vulnerable to insider gaming, because there is\nan imbalance of information--only the coordinator knows, and so can game the\npremine.\n\nIt is good to give many people the advantage of participating in a snapshot.\nExcluding anyone who would have been an ally of a chain, in turn creates\nanimosity that would rather see another project succeed where they are\nincluded.\n\nEven before the proposal I had pre-declared that anyone who votes for WASM on\nthe hub would not receive a gno.land airdrop. The proposer probably knew this\nwhen the proposal was submitted.\n\nThe snapshot date would have been 7/4/2022, because that is Independence Day in\nthe United States. I originally chose Independence Day because of the general\noriginal mission of Tendermint, Cosmos, Bitcoin, and the crypto spirit; and\nbecause the United States (as flawed as it is) is the best historic ideal of\nhuman liberty we've had since before the days of Rome.\n\nThen prop 69 was submitted. I had said previously that we would exclude those\nwho vote in favor of WASM on the hub, but we don't have the tools yet to tally\nthe movement of tainted ATOMs after the unbonding period for the hub. So I\ndecided to move the snapshot date to 5/19/2022.\n\nNow with prop 69, I see that to me, 21 days after the beginning of proposal\n\\#69, 5/20/2022 (but 5/19/2022 PDT) is a chance to create a new community within\nthe Cosmos ecosystem that champions safety with a zero tolerance policy and a\nmission to develop social coordination tools like the GNO smart contract VM, to\ncreate even better governing bodies than the one we have today.\n\n### Gno.land and Cosmos Hub\n\nNow, I feel compelled to exit should prop \\#69 pass. But as it is now, 16.57%\nare voting YES, while NO and NO WITH VETO have 70.73% and 8.38% of the votes\nwith turnout at 30%. If the proposal does not pass, I would feel no need to\nexit. For as long as the Cosmos Hub remains minimal and secure, we will favor\nit as the dominant or only token hub connected to gno.land via the current IBC\nimplementations for the purpose of interchain token transfers. It's a job that\nwe'd rather not solve, as specialization is what will get us to the finish line\nbefore other platforms do, and also I'm quite hooked on gnolang programming and\njust want to make gnolang apps. Not everybody wants to build a DTCC, but many\nwould prefer to use it.\n\n### Airdrop distribution\n\nWhen I was asked on Cryptocito what I would have changed if I were to do it all\nagain, well, I would put the ICF in the hands of the chain. So in gno.land, the\nICF's portion of $GNOT will go to DAOs on gno.land. As for me, I have a\nsignificant amount of ATOMs that voted for NO WITH VETO, but most of my tokens\nby far are with the company that I previously founded, then called All in Bits,\nInc. AIB will not receive any $GNOT except by completing negotiations with me,\nwhich is taking a lot longer than is reasonable--or not.\n\nFor reference, for the genesis of the Cosmos Hub, the total distribution for\nboth entities was 20% of all ATOMs, and today it is still significant. The\ntotal premine that I control directly or indirectly will not exceed 1/3 of the\ntotal $GNOT distribution, but I am considering 20% again.\n\nSome more guidelines, which may change, so don't take anything here as\nfinancial advice:\n\n* NO with VETO is slightly better than NO.\n* NO is better than ABSTAIN.\n* ABSTAIN is better than not voting at all.\n* Delegators inherit the votes of the validators.\n* If you vote YES on \\#69, you will not receive gno.land $GNOTs.\n\nNOTE: If you don't like my airdrop rules, you are free to make your own, and if\nyou're nice you can even run gno.land contracts if you so want there, or you\ncan just run a fork of gaia.\n\nIf you have a better ideal for such an exit-drop by tweaking the governance\nmodule, I'd love to hear your feedback, or generally how you think I could have\ndone this better. Some say that they don't want to see more of this kind of\nforking, but I think we ought to celebrate it instead.\n\n----------------------------------------\n\n## Conclusion\n\nHere's a peace offering.\n\nJust change your vote from YES to NO, and I will not intervene upon the second\nsubmission of the proposal (and I would even fund its deposit if need be). But\nif you instead feel strongly about signaling in favor of CosmWASM, here you can\nexpress it, and I celebrate you, for being different than I, and wish you the\nbest of luck. That is equivalent to a no-confidence vote on gno.land, and is a\nproper way to diss me. Again, I salute you.\n\nIf you can reconsider your vote to be a NO, or even better, a NO WITH VETO, I\nwelcome you to gno.land. Happy 5/19/2022 (5/20/2022 Europe) Gno.land\nIndependence Day!\n","2022-05-02T13:17:22Z","jaekwon","peace,cosmos,gno.land"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqId+CF4HjTEkSMUeVYgCQ7P+xRwVm8NFhdigyitQFwLWOCAMdWXcQy7SdanAoI1Rz/Vb0aCCo5t+5jWNOkMCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["peace","Peace!","\n\nI've never been put in such a difficult position, of having information that I\ncannot reveal. And if you know me, you know that I like to speak my mind. But\nI cannot say the things that I would rather say, because you get a lot of flack\nfor saying anything bad about a public chain.\n\nSo I have been sitting on this issue, losing sleep about it for years, because\nit leads me to worry about the safety of the hub. From an external person's\npoint of view, the solution is obvious -- reveal the information for the\nbetterment of everyone, no matter the consequences, because that is the right\nthing to do. As a stakeholder, and I agree with the majority of the community\nthat peace and silence is better, with exceptions.\n\nSo without turning this into a war of accusations bringing back past drama,\nlet's just do this: dear core contributors, Ethan Buchman, Zaki Manian, Jack\nZampolin, and everyone, here is my peace plan.\n\n----------------------------------------\n\n## On Prop 69\n\nProp 69 is about adding CosmWASM to the hub. I have repeatedly talked about\nthe dangers of adding CosmWASM to the hub, including a document shared two\nyears ago.\n\nhttps://github.com/jaekwon/cosmos_roadmap/tree/master/shape_of_cosmos#smart-contracts\n\nEven before prop 69, I had declared publicly that stakers voting yes to adding\nWASM on the hub would not receive airdrops. Primarily, because it increases\nthe surface area for attack by an order of magnitude. CosmWASM adds two layers\nof new complexity to the hub. WASM itself, as well as CosmWASM. WASM as a spec\nand its implementations are still maturing, and though available on browsers,\nand some blockchains, it still hasn't gone through the gauntlet of time. All\nnew complex technologies like WASM, like Java, Linux, and even Go, in hindsight\nhave numerous bugs that could have or were used maliciously. The same will be\ntrue of any WASM integration with the hub, and this potential for exploits\ncombined with the massive potential rewards (especially of pegged PoW tokens)\nmakes such exploits an inevitability.\n\nIn Juno recently there was a bug that halted the chain for three days. Worse\ncan happen on the Cosmos Hub. The very identity of the Cosmos Hub (it's most\nvaluable asset is specifically a schelling point brand, of being a \"common IBC\nhub\") is threatened if a bug were to result in the theft or loss of coins. On\nplatforms like Ethereum or Polkadot, perhaps they would have a better time\nrolling back the chain to undo a hack as in the DAO hack. The major difference\nwith an *IBC hub* is that it cannot simply reverse the transactions of other\nchains.\n\nWe have yet to experience such a bug in any of our zones on a major scale, and\nhave yet to learn how to coordinate in the case of such in an interconnected\nweb of zones. Where are the planning documents for disaster scenarios? Between\nPoS chains with good governance, we will learn how to roll back transactions\nacross connections, if need be in exceptional circumstances, but we aren't\nthere yet. This option isn't even available with pegged PoW coins.\n\nYes, the contracts that are approved to run will be governance gated, but this\nis not enough. For one, even with perfect governance, there are two new pieces\nof complexity that will see more zero day bugs in the future for exploitation.\nIn terms of governance, the contracts are probably going to be written in Rust,\nand so suddenly the validators that joined the project by inspecting the Go\ncode is now required to also audit Rust code. But also, we are now truly\nopening the doors to all kinds of contracts to be run, because while governance\ndoes sometimes reject proposals, it is generally accommodating to new features\nespecially endorsed by core contributors.\n\nI know of three alternatives:\n\n(1) we can use IBC to offload features to other zones. For liquid staking\n(which should not be the focus of the hub) the hub could allow validators to\nrestrict the destination of unbonded ATOMs, and smart contracts running on\nother zones can distribute those ATOMs according to the logic of whatever\nliquid staking contract. This ensures separation of concerns, and a minimal\nhub.\n\n(2) we can use Go plugins to extend the functionality of the chain.\n\n(3) we can do nothing. if liquid staking is such a big deal, something is wrong\nabout priorities for a cosmic \"hub\". If the liquid staking market is larger\nthan the base non-liquid staking market, the system is open for manipulation\nand is insecure. The focus should not be on self-limiting use-cases, but the\ninfinite market of running validators with replicated security, perhaps running\na simple dex, and most of all innovating on and offering interchain security,\nthe business of judging validation faults as related to Tendermint, and perhaps\nthe interpretation and enforcement of self-enforced customs (law) of a\nblockchain as defined by its shareholders who defer validation (and perhaps\njudicial services) to the Cosmos Hub because it has a reputation for being the\nlongest ever running proof of stake hub that has never gone down, even as\ncompared to the upcoming Ethereum2.0.\n\nAnd note, I'm not proposing that the ATOM stakers forgo the benefits of\nsupporting contracts with CosmWASM. I support Juno and Tardigrade and Ethan\nFrey’s work, but I also support the Hub running shared security, especially\nsimple replicated shared security where the validators also validate other\nchains. I think this, and interchain staking, are the only profit models needed\nfor the hub (besides being a hub). NOTE: But those \"consumer chains\" ought to\nbe provided with full disclosures that the Cosmos Hub validators do not\nmaintain their respective software (as it would be impossible to audit all\nzones that would benefit from the hub's security) but only offering validation\nservices as-is. This would force the hub validators to solve process isolation\n(and I would much prefer building the protocol to NOT require particular\nsolutions like Docker, but allows validator choice), or else they would quickly\nget slashed from malware (and that would be good to prune those validators from\nthe hub).\n\nSo many options that don't require putting WASM on the Cosmos Hub.\n\n------------------------------------\n\n## On Incentivized Votes\n\nIn corporations, you can buy shares to influence the outcome of governance\nvotes. In democracy, this is not allowed because the vote could be bought to\ninfringe upon the rights of other people.\n\nWhat do you do when the chain's own core contributors proposes a proposal that\nyou judge damages the integrity of the system? I think that's a good time to\ncreate a fork of the hub's ATOM distribution led by a new development team.\nSometimes this option is the only option because of safety concerns, and this\nis the case for me here.\n\n### Why is the snapshot date 5/19/2022?\n\nA snapshot in the past is more vulnerable to insider gaming, because there is\nan imbalance of information--only the coordinator knows, and so can game the\npremine.\n\nIt is good to give many people the advantage of participating in a snapshot.\nExcluding anyone who would have been an ally of a chain, in turn creates\nanimosity that would rather see another project succeed where they are\nincluded.\n\nEven before the proposal I had pre-declared that anyone who votes for WASM on\nthe hub would not receive a gno.land airdrop. The proposer probably knew this\nwhen the proposal was submitted.\n\nThe snapshot date would have been 7/4/2022, because that is Independence Day in\nthe United States. I originally chose Independence Day because of the general\noriginal mission of Tendermint, Cosmos, Bitcoin, and the crypto spirit; and\nbecause the United States (as flawed as it is) is the best historic ideal of\nhuman liberty we've had since before the days of Rome.\n\nThen prop 69 was submitted. I had said previously that we would exclude those\nwho vote in favor of WASM on the hub, but we don't have the tools yet to tally\nthe movement of tainted ATOMs after the unbonding period for the hub. So I\ndecided to move the snapshot date to 5/19/2022.\n\nNow with prop 69, I see that to me, 21 days after the beginning of proposal\n\\#69, 5/20/2022 (but 5/19/2022 PDT) is a chance to create a new community within\nthe Cosmos ecosystem that champions safety with a zero tolerance policy and a\nmission to develop social coordination tools like the GNO smart contract VM, to\ncreate even better governing bodies than the one we have today.\n\n### Gno.land and Cosmos Hub\n\nNow, I feel compelled to exit should prop \\#69 pass. But as it is now, 16.57%\nare voting YES, while NO and NO WITH VETO have 70.73% and 8.38% of the votes\nwith turnout at 30%. If the proposal does not pass, I would feel no need to\nexit. For as long as the Cosmos Hub remains minimal and secure, we will favor\nit as the dominant or only token hub connected to gno.land via the current IBC\nimplementations for the purpose of interchain token transfers. It's a job that\nwe'd rather not solve, as specialization is what will get us to the finish line\nbefore other platforms do, and also I'm quite hooked on gnolang programming and\njust want to make gnolang apps. Not everybody wants to build a DTCC, but many\nwould prefer to use it.\n\n### Airdrop distribution\n\nWhen I was asked on Cryptocito what I would have changed if I were to do it all\nagain, well, I would put the ICF in the hands of the chain. So in gno.land, the\nICF's portion of $GNOT will go to DAOs on gno.land. As for me, I have a\nsignificant amount of ATOMs that voted for NO WITH VETO, but most of my tokens\nby far are with the company that I previously founded, then called All in Bits,\nInc. AIB will not receive any $GNOT except by completing negotiations with me,\nwhich is taking a lot longer than is reasonable--or not.\n\nFor reference, for the genesis of the Cosmos Hub, the total distribution for\nboth entities was 20% of all ATOMs, and today it is still significant. The\ntotal premine that I control directly or indirectly will not exceed 1/3 of the\ntotal $GNOT distribution, but I am considering 20% again.\n\nSome more guidelines, which may change, so don't take anything here as\nfinancial advice:\n\n* NO with VETO is slightly better than NO.\n* NO is better than ABSTAIN.\n* ABSTAIN is better than not voting at all.\n* Delegators inherit the votes of the validators.\n* If you vote YES on \\#69, you will not receive gno.land $GNOTs.\n\nNOTE: If you don't like my airdrop rules, you are free to make your own, and if\nyou're nice you can even run gno.land contracts if you so want there, or you\ncan just run a fork of gaia.\n\nIf you have a better ideal for such an exit-drop by tweaking the governance\nmodule, I'd love to hear your feedback, or generally how you think I could have\ndone this better. Some say that they don't want to see more of this kind of\nforking, but I think we ought to celebrate it instead.\n\n----------------------------------------\n\n## Conclusion\n\nHere's a peace offering.\n\nJust change your vote from YES to NO, and I will not intervene upon the second\nsubmission of the proposal (and I would even fund its deposit if need be). But\nif you instead feel strongly about signaling in favor of CosmWASM, here you can\nexpress it, and I celebrate you, for being different than I, and wish you the\nbest of luck. That is equivalent to a no-confidence vote on gno.land, and is a\nproper way to diss me. Again, I salute you.\n\nIf you can reconsider your vote to be a NO, or even better, a NO WITH VETO, I\nwelcome you to gno.land. Happy 5/19/2022 (5/20/2022 Europe) Gno.land\nIndependence Day!\n","2022-05-02T13:17:22Z","jaekwon","peace,cosmos,gno.land"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqId+CF4HjTEkSMUeVYgCQ7P+xRwVm8NFhdigyitQFwLWOCAMdWXcQy7SdanAoI1Rz/Vb0aCCo5t+5jWNOkMCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["peace","Peace!","\n\nI've never been put in such a difficult position, of having information that I\ncannot reveal. And if you know me, you know that I like to speak my mind. But\nI cannot say the things that I would rather say, because you get a lot of flack\nfor saying anything bad about a public chain.\n\nSo I have been sitting on this issue, losing sleep about it for years, because\nit leads me to worry about the safety of the hub. From an external person's\npoint of view, the solution is obvious -- reveal the information for the\nbetterment of everyone, no matter the consequences, because that is the right\nthing to do. As a stakeholder, and I agree with the majority of the community\nthat peace and silence is better, with exceptions.\n\nSo without turning this into a war of accusations bringing back past drama,\nlet's just do this: dear core contributors, Ethan Buchman, Zaki Manian, Jack\nZampolin, and everyone, here is my peace plan.\n\n----------------------------------------\n\n## On Prop 69\n\nProp 69 is about adding CosmWASM to the hub. I have repeatedly talked about\nthe dangers of adding CosmWASM to the hub, including a document shared two\nyears ago.\n\nhttps://github.com/jaekwon/cosmos_roadmap/tree/master/shape_of_cosmos#smart-contracts\n\nEven before prop 69, I had declared publicly that stakers voting yes to adding\nWASM on the hub would not receive airdrops. Primarily, because it increases\nthe surface area for attack by an order of magnitude. CosmWASM adds two layers\nof new complexity to the hub. WASM itself, as well as CosmWASM. WASM as a spec\nand its implementations are still maturing, and though available on browsers,\nand some blockchains, it still hasn't gone through the gauntlet of time. All\nnew complex technologies like WASM, like Java, Linux, and even Go, in hindsight\nhave numerous bugs that could have or were used maliciously. The same will be\ntrue of any WASM integration with the hub, and this potential for exploits\ncombined with the massive potential rewards (especially of pegged PoW tokens)\nmakes such exploits an inevitability.\n\nIn Juno recently there was a bug that halted the chain for three days. Worse\ncan happen on the Cosmos Hub. The very identity of the Cosmos Hub (it's most\nvaluable asset is specifically a schelling point brand, of being a \"common IBC\nhub\") is threatened if a bug were to result in the theft or loss of coins. On\nplatforms like Ethereum or Polkadot, perhaps they would have a better time\nrolling back the chain to undo a hack as in the DAO hack. The major difference\nwith an *IBC hub* is that it cannot simply reverse the transactions of other\nchains.\n\nWe have yet to experience such a bug in any of our zones on a major scale, and\nhave yet to learn how to coordinate in the case of such in an interconnected\nweb of zones. Where are the planning documents for disaster scenarios? Between\nPoS chains with good governance, we will learn how to roll back transactions\nacross connections, if need be in exceptional circumstances, but we aren't\nthere yet. This option isn't even available with pegged PoW coins.\n\nYes, the contracts that are approved to run will be governance gated, but this\nis not enough. For one, even with perfect governance, there are two new pieces\nof complexity that will see more zero day bugs in the future for exploitation.\nIn terms of governance, the contracts are probably going to be written in Rust,\nand so suddenly the validators that joined the project by inspecting the Go\ncode is now required to also audit Rust code. But also, we are now truly\nopening the doors to all kinds of contracts to be run, because while governance\ndoes sometimes reject proposals, it is generally accommodating to new features\nespecially endorsed by core contributors.\n\nI know of three alternatives:\n\n(1) we can use IBC to offload features to other zones. For liquid staking\n(which should not be the focus of the hub) the hub could allow validators to\nrestrict the destination of unbonded ATOMs, and smart contracts running on\nother zones can distribute those ATOMs according to the logic of whatever\nliquid staking contract. This ensures separation of concerns, and a minimal\nhub.\n\n(2) we can use Go plugins to extend the functionality of the chain.\n\n(3) we can do nothing. if liquid staking is such a big deal, something is wrong\nabout priorities for a cosmic \"hub\". If the liquid staking market is larger\nthan the base non-liquid staking market, the system is open for manipulation\nand is insecure. The focus should not be on self-limiting use-cases, but the\ninfinite market of running validators with replicated security, perhaps running\na simple dex, and most of all innovating on and offering interchain security,\nthe business of judging validation faults as related to Tendermint, and perhaps\nthe interpretation and enforcement of self-enforced customs (law) of a\nblockchain as defined by its shareholders who defer validation (and perhaps\njudicial services) to the Cosmos Hub because it has a reputation for being the\nlongest ever running proof of stake hub that has never gone down, even as\ncompared to the upcoming Ethereum2.0.\n\nAnd note, I'm not proposing that the ATOM stakers forgo the benefits of\nsupporting contracts with CosmWASM. I support Juno and Tardigrade and Ethan\nFrey’s work, but I also support the Hub running shared security, especially\nsimple replicated shared security where the validators also validate other\nchains. I think this, and interchain staking, are the only profit models needed\nfor the hub (besides being a hub). NOTE: But those \"consumer chains\" ought to\nbe provided with full disclosures that the Cosmos Hub validators do not\nmaintain their respective software (as it would be impossible to audit all\nzones that would benefit from the hub's security) but only offering validation\nservices as-is. This would force the hub validators to solve process isolation\n(and I would much prefer building the protocol to NOT require particular\nsolutions like Docker, but allows validator choice), or else they would quickly\nget slashed from malware (and that would be good to prune those validators from\nthe hub).\n\nSo many options that don't require putting WASM on the Cosmos Hub.\n\n------------------------------------\n\n## On Incentivized Votes\n\nIn corporations, you can buy shares to influence the outcome of governance\nvotes. In democracy, this is not allowed because the vote could be bought to\ninfringe upon the rights of other people.\n\nWhat do you do when the chain's own core contributors proposes a proposal that\nyou judge damages the integrity of the system? I think that's a good time to\ncreate a fork of the hub's ATOM distribution led by a new development team.\nSometimes this option is the only option because of safety concerns, and this\nis the case for me here.\n\n### Why is the snapshot date 5/19/2022?\n\nA snapshot in the past is more vulnerable to insider gaming, because there is\nan imbalance of information--only the coordinator knows, and so can game the\npremine.\n\nIt is good to give many people the advantage of participating in a snapshot.\nExcluding anyone who would have been an ally of a chain, in turn creates\nanimosity that would rather see another project succeed where they are\nincluded.\n\nEven before the proposal I had pre-declared that anyone who votes for WASM on\nthe hub would not receive a gno.land airdrop. The proposer probably knew this\nwhen the proposal was submitted.\n\nThe snapshot date would have been 7/4/2022, because that is Independence Day in\nthe United States. I originally chose Independence Day because of the general\noriginal mission of Tendermint, Cosmos, Bitcoin, and the crypto spirit; and\nbecause the United States (as flawed as it is) is the best historic ideal of\nhuman liberty we've had since before the days of Rome.\n\nThen prop 69 was submitted. I had said previously that we would exclude those\nwho vote in favor of WASM on the hub, but we don't have the tools yet to tally\nthe movement of tainted ATOMs after the unbonding period for the hub. So I\ndecided to move the snapshot date to 5/19/2022.\n\nNow with prop 69, I see that to me, 21 days after the beginning of proposal\n\\#69, 5/20/2022 (but 5/19/2022 PDT) is a chance to create a new community within\nthe Cosmos ecosystem that champions safety with a zero tolerance policy and a\nmission to develop social coordination tools like the GNO smart contract VM, to\ncreate even better governing bodies than the one we have today.\n\n### Gno.land and Cosmos Hub\n\nNow, I feel compelled to exit should prop \\#69 pass. But as it is now, 16.57%\nare voting YES, while NO and NO WITH VETO have 70.73% and 8.38% of the votes\nwith turnout at 30%. If the proposal does not pass, I would feel no need to\nexit. For as long as the Cosmos Hub remains minimal and secure, we will favor\nit as the dominant or only token hub connected to gno.land via the current IBC\nimplementations for the purpose of interchain token transfers. It's a job that\nwe'd rather not solve, as specialization is what will get us to the finish line\nbefore other platforms do, and also I'm quite hooked on gnolang programming and\njust want to make gnolang apps. Not everybody wants to build a DTCC, but many\nwould prefer to use it.\n\n### Airdrop distribution\n\nWhen I was asked on Cryptocito what I would have changed if I were to do it all\nagain, well, I would put the ICF in the hands of the chain. So in gno.land, the\nICF's portion of $GNOT will go to DAOs on gno.land. As for me, I have a\nsignificant amount of ATOMs that voted for NO WITH VETO, but most of my tokens\nby far are with the company that I previously founded, then called All in Bits,\nInc. AIB will not receive any $GNOT except by completing negotiations with me,\nwhich is taking a lot longer than is reasonable--or not.\n\nFor reference, for the genesis of the Cosmos Hub, the total distribution for\nboth entities was 20% of all ATOMs, and today it is still significant. The\ntotal premine that I control directly or indirectly will not exceed 1/3 of the\ntotal $GNOT distribution, but I am considering 20% again.\n\nSome more guidelines, which may change, so don't take anything here as\nfinancial advice:\n\n* NO with VETO is slightly better than NO.\n* NO is better than ABSTAIN.\n* ABSTAIN is better than not voting at all.\n* Delegators inherit the votes of the validators.\n* If you vote YES on \\#69, you will not receive gno.land $GNOTs.\n\nNOTE: If you don't like my airdrop rules, you are free to make your own, and if\nyou're nice you can even run gno.land contracts if you so want there, or you\ncan just run a fork of gaia.\n\nIf you have a better ideal for such an exit-drop by tweaking the governance\nmodule, I'd love to hear your feedback, or generally how you think I could have\ndone this better. Some say that they don't want to see more of this kind of\nforking, but I think we ought to celebrate it instead.\n\n----------------------------------------\n\n## Conclusion\n\nHere's a peace offering.\n\nJust change your vote from YES to NO, and I will not intervene upon the second\nsubmission of the proposal (and I would even fund its deposit if need be). But\nif you instead feel strongly about signaling in favor of CosmWASM, here you can\nexpress it, and I celebrate you, for being different than I, and wish you the\nbest of luck. That is equivalent to a no-confidence vote on gno.land, and is a\nproper way to diss me. Again, I salute you.\n\nIf you can reconsider your vote to be a NO, or even better, a NO WITH VETO, I\nwelcome you to gno.land. Happy 5/19/2022 (5/20/2022 Europe) Gno.land\nIndependence Day!\n","2022-05-02T13:17:22Z","jaekwon","peace,cosmos,gno.land"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqId+CF4HjTEkSMUeVYgCQ7P+xRwVm8NFhdigyitQFwLWOCAMdWXcQy7SdanAoI1Rz/Vb0aCCo5t+5jWNOkMCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["peace","Peace!","\n\nI've never been put in such a difficult position, of having information that I\ncannot reveal. And if you know me, you know that I like to speak my mind. But\nI cannot say the things that I would rather say, because you get a lot of flack\nfor saying anything bad about a public chain.\n\nSo I have been sitting on this issue, losing sleep about it for years, because\nit leads me to worry about the safety of the hub. From an external person's\npoint of view, the solution is obvious -- reveal the information for the\nbetterment of everyone, no matter the consequences, because that is the right\nthing to do. As a stakeholder, and I agree with the majority of the community\nthat peace and silence is better, with exceptions.\n\nSo without turning this into a war of accusations bringing back past drama,\nlet's just do this: dear core contributors, Ethan Buchman, Zaki Manian, Jack\nZampolin, and everyone, here is my peace plan.\n\n----------------------------------------\n\n## On Prop 69\n\nProp 69 is about adding CosmWASM to the hub. I have repeatedly talked about\nthe dangers of adding CosmWASM to the hub, including a document shared two\nyears ago.\n\nhttps://github.com/jaekwon/cosmos_roadmap/tree/master/shape_of_cosmos#smart-contracts\n\nEven before prop 69, I had declared publicly that stakers voting yes to adding\nWASM on the hub would not receive airdrops. Primarily, because it increases\nthe surface area for attack by an order of magnitude. CosmWASM adds two layers\nof new complexity to the hub. WASM itself, as well as CosmWASM. WASM as a spec\nand its implementations are still maturing, and though available on browsers,\nand some blockchains, it still hasn't gone through the gauntlet of time. All\nnew complex technologies like WASM, like Java, Linux, and even Go, in hindsight\nhave numerous bugs that could have or were used maliciously. The same will be\ntrue of any WASM integration with the hub, and this potential for exploits\ncombined with the massive potential rewards (especially of pegged PoW tokens)\nmakes such exploits an inevitability.\n\nIn Juno recently there was a bug that halted the chain for three days. Worse\ncan happen on the Cosmos Hub. The very identity of the Cosmos Hub (it's most\nvaluable asset is specifically a schelling point brand, of being a \"common IBC\nhub\") is threatened if a bug were to result in the theft or loss of coins. On\nplatforms like Ethereum or Polkadot, perhaps they would have a better time\nrolling back the chain to undo a hack as in the DAO hack. The major difference\nwith an *IBC hub* is that it cannot simply reverse the transactions of other\nchains.\n\nWe have yet to experience such a bug in any of our zones on a major scale, and\nhave yet to learn how to coordinate in the case of such in an interconnected\nweb of zones. Where are the planning documents for disaster scenarios? Between\nPoS chains with good governance, we will learn how to roll back transactions\nacross connections, if need be in exceptional circumstances, but we aren't\nthere yet. This option isn't even available with pegged PoW coins.\n\nYes, the contracts that are approved to run will be governance gated, but this\nis not enough. For one, even with perfect governance, there are two new pieces\nof complexity that will see more zero day bugs in the future for exploitation.\nIn terms of governance, the contracts are probably going to be written in Rust,\nand so suddenly the validators that joined the project by inspecting the Go\ncode is now required to also audit Rust code. But also, we are now truly\nopening the doors to all kinds of contracts to be run, because while governance\ndoes sometimes reject proposals, it is generally accommodating to new features\nespecially endorsed by core contributors.\n\nI know of three alternatives:\n\n(1) we can use IBC to offload features to other zones. For liquid staking\n(which should not be the focus of the hub) the hub could allow validators to\nrestrict the destination of unbonded ATOMs, and smart contracts running on\nother zones can distribute those ATOMs according to the logic of whatever\nliquid staking contract. This ensures separation of concerns, and a minimal\nhub.\n\n(2) we can use Go plugins to extend the functionality of the chain.\n\n(3) we can do nothing. if liquid staking is such a big deal, something is wrong\nabout priorities for a cosmic \"hub\". If the liquid staking market is larger\nthan the base non-liquid staking market, the system is open for manipulation\nand is insecure. The focus should not be on self-limiting use-cases, but the\ninfinite market of running validators with replicated security, perhaps running\na simple dex, and most of all innovating on and offering interchain security,\nthe business of judging validation faults as related to Tendermint, and perhaps\nthe interpretation and enforcement of self-enforced customs (law) of a\nblockchain as defined by its shareholders who defer validation (and perhaps\njudicial services) to the Cosmos Hub because it has a reputation for being the\nlongest ever running proof of stake hub that has never gone down, even as\ncompared to the upcoming Ethereum2.0.\n\nAnd note, I'm not proposing that the ATOM stakers forgo the benefits of\nsupporting contracts with CosmWASM. I support Juno and Tardigrade and Ethan\nFrey’s work, but I also support the Hub running shared security, especially\nsimple replicated shared security where the validators also validate other\nchains. I think this, and interchain staking, are the only profit models needed\nfor the hub (besides being a hub). NOTE: But those \"consumer chains\" ought to\nbe provided with full disclosures that the Cosmos Hub validators do not\nmaintain their respective software (as it would be impossible to audit all\nzones that would benefit from the hub's security) but only offering validation\nservices as-is. This would force the hub validators to solve process isolation\n(and I would much prefer building the protocol to NOT require particular\nsolutions like Docker, but allows validator choice), or else they would quickly\nget slashed from malware (and that would be good to prune those validators from\nthe hub).\n\nSo many options that don't require putting WASM on the Cosmos Hub.\n\n------------------------------------\n\n## On Incentivized Votes\n\nIn corporations, you can buy shares to influence the outcome of governance\nvotes. In democracy, this is not allowed because the vote could be bought to\ninfringe upon the rights of other people.\n\nWhat do you do when the chain's own core contributors proposes a proposal that\nyou judge damages the integrity of the system? I think that's a good time to\ncreate a fork of the hub's ATOM distribution led by a new development team.\nSometimes this option is the only option because of safety concerns, and this\nis the case for me here.\n\n### Why is the snapshot date 5/19/2022?\n\nA snapshot in the past is more vulnerable to insider gaming, because there is\nan imbalance of information--only the coordinator knows, and so can game the\npremine.\n\nIt is good to give many people the advantage of participating in a snapshot.\nExcluding anyone who would have been an ally of a chain, in turn creates\nanimosity that would rather see another project succeed where they are\nincluded.\n\nEven before the proposal I had pre-declared that anyone who votes for WASM on\nthe hub would not receive a gno.land airdrop. The proposer probably knew this\nwhen the proposal was submitted.\n\nThe snapshot date would have been 7/4/2022, because that is Independence Day in\nthe United States. I originally chose Independence Day because of the general\noriginal mission of Tendermint, Cosmos, Bitcoin, and the crypto spirit; and\nbecause the United States (as flawed as it is) is the best historic ideal of\nhuman liberty we've had since before the days of Rome.\n\nThen prop 69 was submitted. I had said previously that we would exclude those\nwho vote in favor of WASM on the hub, but we don't have the tools yet to tally\nthe movement of tainted ATOMs after the unbonding period for the hub. So I\ndecided to move the snapshot date to 5/19/2022.\n\nNow with prop 69, I see that to me, 21 days after the beginning of proposal\n\\#69, 5/20/2022 (but 5/19/2022 PDT) is a chance to create a new community within\nthe Cosmos ecosystem that champions safety with a zero tolerance policy and a\nmission to develop social coordination tools like the GNO smart contract VM, to\ncreate even better governing bodies than the one we have today.\n\n### Gno.land and Cosmos Hub\n\nNow, I feel compelled to exit should prop \\#69 pass. But as it is now, 16.57%\nare voting YES, while NO and NO WITH VETO have 70.73% and 8.38% of the votes\nwith turnout at 30%. If the proposal does not pass, I would feel no need to\nexit. For as long as the Cosmos Hub remains minimal and secure, we will favor\nit as the dominant or only token hub connected to gno.land via the current IBC\nimplementations for the purpose of interchain token transfers. It's a job that\nwe'd rather not solve, as specialization is what will get us to the finish line\nbefore other platforms do, and also I'm quite hooked on gnolang programming and\njust want to make gnolang apps. Not everybody wants to build a DTCC, but many\nwould prefer to use it.\n\n### Airdrop distribution\n\nWhen I was asked on Cryptocito what I would have changed if I were to do it all\nagain, well, I would put the ICF in the hands of the chain. So in gno.land, the\nICF's portion of $GNOT will go to DAOs on gno.land. As for me, I have a\nsignificant amount of ATOMs that voted for NO WITH VETO, but most of my tokens\nby far are with the company that I previously founded, then called All in Bits,\nInc. AIB will not receive any $GNOT except by completing negotiations with me,\nwhich is taking a lot longer than is reasonable--or not.\n\nFor reference, for the genesis of the Cosmos Hub, the total distribution for\nboth entities was 20% of all ATOMs, and today it is still significant. The\ntotal premine that I control directly or indirectly will not exceed 1/3 of the\ntotal $GNOT distribution, but I am considering 20% again.\n\nSome more guidelines, which may change, so don't take anything here as\nfinancial advice:\n\n* NO with VETO is slightly better than NO.\n* NO is better than ABSTAIN.\n* ABSTAIN is better than not voting at all.\n* Delegators inherit the votes of the validators.\n* If you vote YES on \\#69, you will not receive gno.land $GNOTs.\n\nNOTE: If you don't like my airdrop rules, you are free to make your own, and if\nyou're nice you can even run gno.land contracts if you so want there, or you\ncan just run a fork of gaia.\n\nIf you have a better ideal for such an exit-drop by tweaking the governance\nmodule, I'd love to hear your feedback, or generally how you think I could have\ndone this better. Some say that they don't want to see more of this kind of\nforking, but I think we ought to celebrate it instead.\n\n----------------------------------------\n\n## Conclusion\n\nHere's a peace offering.\n\nJust change your vote from YES to NO, and I will not intervene upon the second\nsubmission of the proposal (and I would even fund its deposit if need be). But\nif you instead feel strongly about signaling in favor of CosmWASM, here you can\nexpress it, and I celebrate you, for being different than I, and wish you the\nbest of luck. That is equivalent to a no-confidence vote on gno.land, and is a\nproper way to diss me. Again, I salute you.\n\nIf you can reconsider your vote to be a NO, or even better, a NO WITH VETO, I\nwelcome you to gno.land. Happy 5/19/2022 (5/20/2022 Europe) Gno.land\nIndependence Day!\n","2022-05-02T13:17:22Z","jaekwon","peace,cosmos,gno.land"]}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bqId+CF4HjTEkSMUeVYgCQ7P+xRwVm8NFhdigyitQFwLWOCAMdWXcQy7SdanAoI1Rz/Vb0aCCo5t+5jWNOkMCA=="}],"memo":"Posted from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["porting-flippando-gno","5 Things I Learned While Porting Flippando From Solidity to Gno","\nLast year, while visiting Seoul, South Korea, I decided, on a whim, to sign up for a hackathon called Glitch. The project I was going to present was a tiny little game, written in Solidity, called Flippando. It started as a weekend project to help me learn Solidity (I had no prior experience with this language). To my surprise, my tiny little game won the first prize on the Polygon track of the Glitch hackathon.\n\nEncouraged and even more curious now, I started attending side events during Buidl.Asia. One was about Gno, a smart contract platform written in Go. After the presentation, which was really great, I started a light conversation with the team. One thing led to another, and I ended up showing them Flippando. \n\nJust for context, Flippando is a non-degen, deceptively simple memory game. You start with an empty matrix and flip tiles to see what’s “underneath.” If the tiles match, they remain uncovered; if not, they are briefly shown, and you have to memorize their color until the entire matrix is uncovered. The end result can be minted as an NFT, and you can later assemble all the boards into bigger, more complex NFTs, basically “painting” with the uncovered tiles.\n\nThe Gno team seemed to like it, and they suggested I should apply for a grant to port it to Go/Gno. I had no prior experience in Go either, so I thought this would be a good opportunity to learn more. To my surprise, again, my grant submission was accepted.\n\nFast forward a few months until now: the Gno version of Flippando is live (in testnet beta) at [https://gno.flippando.xyz](https://gno.flippando.xyz). What follows sums up my experience porting the game from Solidity to Gno. This blog post is a mix of technical and not-so-technical takeaways.\n\n## 1. Being Early Pays Off\n\nSolidity has been around for some time now, and there is already a solid tooling ecosystem for it. I used Hardhat for my development, and I got really comfortable with it. When I started to port Flippando, though, I was quite surprised to see there was almost no tooling in Gno. Developing was mostly TDD (test-driven development) against a local VM, and deploying realms on the actual chain was more complicated than I expected. \n\nMy first feedback rounds to the team revolved almost exclusively around this topic. Very soon, I started to receive signals that my feedback was not only heard but taken into account and processed, and there were actual projects built aiming to improve the developer experience. In just two or three months, two full projects were finished: gnodev, and Gno Playground. \n\nGnodev makes development very similar to Metro in React Native: there is a watchdog on the file system, and your changes to the realm code are reloaded every time you save. It’s almost like deploying in real time; no need to stop the chain, wipe the state, restart the chain, and redeploy your modifications. Gno Playground is a sandbox-like environment, which helps tremendously with quick testing and even deploying packages on-chain. Both projects were finished, as I said, in just two to three months.\n\nBeing early pays off because you get to shape your development environment much faster than in a solidified (pun intended!) environment. You may have to deal with a little chaos in the beginning, but the benefits are well worth it.\n\n## 2. TDD All Day Long\n\nAs I said above, developing realms in Gno consists mainly of writing and testing your code with another code. It’s called TDD and it’s a very useful developing strategy, in general. I used it, at my day job, in all my projects consistently, but only in the initial stages. Once the codebase was more stable, I was relying more on regression tests from the Q\u0026A team.\n\nMind you, there was no Q\u0026A team this time; I was just coding alone, and I was forced to comply more and more with this TDD approach. In the end, I have to admit that, while slower and a bit boring, this approach is more effective, especially in a volatile environment, where patches are added literally every day, and the environment changes continuously.\n\n## 3. Marshal and Unmarshal\n\nThe current GnoVM doesn’t yet have an API standard for formatting. You can’t put a setting somewhere that will make the response be automatically translated into JSON. You have to write these JSON objects yourself for every payload you return from your realm. \n\nIn Solidity, all this is hidden under the event mechanism and handled by existing libraries, like ether.js, which take care of all this nitpicking. It soon became obvious that development time would be significantly longer in Gno because, on top of the logic, I also had to write the formatted response “by hand.”\n\nBut as with every other thing that seemed weird in the beginning, eventually, I came to appreciate it. It forced me to prototype more carefully not only the actual response but all the objects needed in my game. Eventually, it resulted in simpler and more flexible code.\n\n## 4. Eating Your Own Dog Food\n\nWhen developing in Solidity, most of the time, you just import OpenZeppelin contracts for ERC20 and ERC721 tokens (which are battle-tested, bug-free, and relatively easy to understand) and focus on your own contract logic. No mingling with low-level token implementation details; these are already packaged and ready to use.\n\nWhile porting Flippando to Gno, I realized I had to deal with these low-level details upfront simply because there was no equivalent of the OpenZeppeling contracts. Moreover, some current GRCs (the Gno equivalent of ERC) were incomplete. \n\nSo, I had to make a PR for a GRC721 implementation that was missing the SetTokenURI functionality, and this PR ended up being merged into the main Gno codebase (that felt really good, to be honest). \n\n## 5. Being Early Pays Off. Did I Say That Already?\n\nYes, but this time it’s about something else. It’s not about the satisfaction of shaping the development environment in the early days. It’s about the privilege of witnessing something coming to life from literally nothing. Gno has been in development for almost two years now, and it is several months before its mainnet. It’s literally on the verge of coming “alive.”\n\nEvery day new commits are added, and new decisions are made. There are new contributors constantly joining, and new projects prototyped and launched faster and faster. Every day the ecosystem is coagulating itself into something more and more visible, more and more alive.\n\nBeing able to witness this from the inside is a rare privilege and something I’m very grateful for.\n\n## Final Thoughts \n\nSo, these are, in a nutshell, my five top takeaways from porting Flippando from Solidity to Gno. There are many others, of course, and Gno is (did I already say this?) still very early. If you’re interested in learning more, please visit the official repo, look at the docs, and try interacting with the devs. You’ll never gno what can grow out of it! And be sure to play [Flippando](https://gno.flippando.xyz) today live in testnet beta and share your flips.\n\n## Here’s How to Play Flippando\n\nThe game presents a 16 tiles (4x4) or 64 tiles (8x8) matrix. These tiles are “covering” a board of various colors and gradients or shapes, like dice or hexagrams. Clicking two tiles consecutively “flips” them, showing what’s underneath. If they match, they remain uncovered; if not, they are briefly shown, and the player needs to remember their position. Once an entire board is flipped, revealing its random combination of colors, the player can choose to mint it as an NFT.\n\nWhen minting a solved board as an NFT, the game also mints a fungible token, FLIP, which is “locked” inside the NFT. This is the player's “reward.” But the token can only be unlocked if someone else uses that NFT in a larger project.\n\nThese larger projects, or “artworks,” can be assembled in the Flippando Playground. All minted basic NFTs are displayed here in an area from where the player can drag and drop them onto a canvas, creating a much bigger and more complex NFT. Once the canvas is fully filled and the player is satisfied with what’s in there, these new “artwork” NFTs can also be minted. This unlocks all the FLIP tokens for the NFTs used inside the artwork and sends them to their initial players. Furthermore, these complex artworks can be listed and traded in a marketplace, closing the circle of a virtual economy of goods.\n\nStart playing Flippando and share your Flips with Gno.land on [Twitter/X](https://x.com/_gnoland?lang=en) by tagging #gnoflip. \n\n\n","gnoland,ecosystem,updates,flippando"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NcdbBVl6z/P6qXLEtZvHhUADRrP5zvaZJeKtiYVkMBns+G2rP21A6+Cr8OfqXysRG/4LLipwUdDmQN6IND+/CA=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post1","First post","Lorem Ipsum","2022-05-20T13:17:22Z","","tag1,tag2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thqvATT9YVErffosUBs7h8jkQC9G7kxJSGA/kfuZQsrHr4J1d5LhP2F59MZ1xlBov/7lenTOi7sz+HCEonhHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post1","First post","Lorem Ipsum","2022-05-20T13:17:22Z","","tag1,tag2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thqvATT9YVErffosUBs7h8jkQC9G7kxJSGA/kfuZQsrHr4J1d5LhP2F59MZ1xlBov/7lenTOi7sz+HCEonhHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post1","First post","Lorem Ipsum","2022-05-20T13:17:22Z","","tag1,tag2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thqvATT9YVErffosUBs7h8jkQC9G7kxJSGA/kfuZQsrHr4J1d5LhP2F59MZ1xlBov/7lenTOi7sz+HCEonhHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post1","First post","Lorem Ipsum","2022-05-20T13:17:22Z","","tag1,tag2"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"thqvATT9YVErffosUBs7h8jkQC9G7kxJSGA/kfuZQsrHr4J1d5LhP2F59MZ1xlBov/7lenTOi7sz+HCEonhHDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post2","Second post","Lorem Ipsum","2022-05-20T13:17:23Z","","tag1,tag3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xx+fMnWW4seSp+qxPcInRYn3altKnrU8hCAAn2p8e4QWUTvcoj20HXtiM0ce47f5I3KGiyTPDn9KFiCm85gUCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post2","Second post","Lorem Ipsum","2022-05-20T13:17:23Z","","tag1,tag3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xx+fMnWW4seSp+qxPcInRYn3altKnrU8hCAAn2p8e4QWUTvcoj20HXtiM0ce47f5I3KGiyTPDn9KFiCm85gUCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post2","Second post","Lorem Ipsum","2022-05-20T13:17:23Z","","tag1,tag3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xx+fMnWW4seSp+qxPcInRYn3altKnrU8hCAAn2p8e4QWUTvcoj20HXtiM0ce47f5I3KGiyTPDn9KFiCm85gUCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["post2","Second post","Lorem Ipsum","2022-05-20T13:17:23Z","","tag1,tag3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xx+fMnWW4seSp+qxPcInRYn3altKnrU8hCAAn2p8e4QWUTvcoj20HXtiM0ce47f5I3KGiyTPDn9KFiCm85gUCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["tech-ama1","Gno.land Community Technical AMA #1 - Recap","\nYour questions, observations, and feedback are vital to our core development team. Not only do they give us an understanding of the types of applications and features the community would like to see but they help us formulate better ideas for developing Gno.land as we go. Before we dive into our second **Discord AMA on November 22nd @4pm UTC**, check out the community questions from our first technical AMA below answered by core Gno.land devs Jae Kwon and Manfred Touron.\n\n### Why did you choose Golang over Rust?\n\n**Jae**: “With parallelism offered by ICS1 [Interchain Security 1], the bottleneck becomes speed of innovation with safe code, rather than bare metal performance. So here, garbage collection, concurrency, embeddable structures, and clear spec are good primitives for the next-generation smart contract language.\n\nRust (or components of Rust** may be used to implement faster clients for gno.land in the future, but in terms of mindshare, I don't think Rust can flip Go due to its design choices. That's not to say that Rust is any worse than Go; they are different.”\n\n### Will Gno be its own hub? Will Gno provide ICS-like security to its own community?\n\n**Jae**: “Gno.land can be a \"hub,\" like \"git hub\" is a \"hub,\" but that doesn't mean it will offer ICS. If other chains solve ICS1 better, it makes sense for gno.land to be IBC-connected to zones that are not ICS1 replicated/secured with gno.land validators.\n\nIf we consider that validators of gno.land are better as contributors to the gno.land ecosystem (rather than general validator service providers** we may be more comfortable contributing to an awesome ecosystem but not entering the validator-as-a-service business.\n\nIt makes more sense to me that Cosmos Hub validators should own that business, which will eventually require validators to run their own server stacks and have data center infrastructure.”\n\n### How can one become a validator?\n\n**Jae**: “First, one has to become a member. We have not yet defined the full member system, but we will figure that out along the way. For now, we can say that we want first and foremost members who also validate, rather than impartial validators that only validate.”\n\n### How does Gno validate work? PoS? Proof of Contribution?\n\n**Manfred**: “The contributors DAO will elect validators and validators will have the same amount of power. They'll be focused on validating and will receive rewards for that job.”\n\n### What is Proof of Contribution? What kind of contribution will be credited?\n\n**Manfred**: “Proof-of-Contribution is a way to replace Proof-of-Stake with a metric based on the contributions. It's a variation of Proof-of-Authority where the authority is a DAO of contributors. After the 'Game of Realms** competition, we'll reward the best contributors with a tiered membership in the first version of Proof-of-Contributions DAO. The voting power and everything related to staking will be distributed across the contributors.\n\nLater, we'll add more flexibility to the membership with $GNOSH, allowing more accurate and fair rewards. Validators won't receive voting power with staking. The DAO will elect them, and they will all receive the same amount of power. Validators will receive rewards for their technical work, not for the amount of staked tokens they are bound to.”\n\n### Is there a document or resource that describes the key concepts in a Gno smart contract?\n\n**Manfred**: “We have yet to get a single top-level documentation, sorry. You can find documentation in the code, README files, issues, etc. We need to improve this. The community will be able to work on this during Game of Realms.”\n\n### Is there a big-picture diagram of the ecosystem?\n\n**Jae**: cosmos hub \u003c-- \"ec2+DTCC\"\ngno.land \u003c-- \"github for gno\"\n(cosmos hub etc) ICS zones \u003c-- \"holy grail\" scalable smart contracts\nyour chain \u003c-- \"gno inside\"\nyour app \u003c-- \"import gno.land/...\"\nblockchain-based communications/coordination/discourse platform \u003c-- us\n// DTCC: \"https://www.investopedia.com/terms/d/dtcc.asp\" // my point is, be a good reliable token hub with good governance.”\n\n### I'm a developer (PHP, Python**. How can I become a Gno developer? Please advise me on where to start.\n\n**Manfred**: “Start learning Go! One of the long-term goals of Gno is to make writing contracts as easy as writing web2 apps. The language is already strong in that direction, but we still need to catch tooling, documentation, tutorials, and language improvements. You need to have a good level with Golang and be autonomous to start building on Gno.\n\nOne of the Game of Realms tracks will be to work on everything related to onboarding more people. This will be the best place to write specific tutorials to onboard people from other ecosystems or languages.”\n\nWhat are Realms, and what is r board?\n\n**Jae**: “A realm is a Gno package with state, that represents a smart contract with storage and coins. The other Gno packages don't have state, and so are \"pure\" packages that can be imported from other realm or non-realm packages. Like land-tax, realms must be whitelisted or pay storage upkeep for their state. You can create new realms by uploading a new package with the package directory starting with /r/REALM/NAME.\n\n/r/demo/boards is a Gno package that renders a message board. It is a proof of concept message board written in Gno. Since we need to preserve messages, it is a stateful (realm** package. You can see the files of the demo boards, like:\n\nhttps://test3.gno.land/r/demo/boards/board.gno\n\n### How do external packages get imported?\n\n**Manfred**: “Example: when you call your smart contract from Go during testing, how can/should that smart contract load external packages?\n\nA gnolang can only import other gnolang contracts/libraries that were published on-chain. If you want to import an external Golang library, you need to port it to Gno, and publish it as a library, then you can import it from a top-level contract.\n\ngnodev test is an exception, it basically creates an in-memory Gnolang VM, publishes the dependencies (automatically detected**, and executes the test. The tool can act differently from the real on-chain experience. Note that we'll improve the gnodev so it can automatically download on-chain contracts or use custom local paths, to support advanced development workflows.”\n\n### What is a Gnode?\n\n**Jae**: “I don't like the name \"Gnode\" because it's too generic, but the idea is to build Gno-based building blocks for GnoDAOs, as MyGnode embeds components (of owners, treasury, board, etc.** here:\n\nhttps://github.com/gnolang/gno/commit/b9128b1d69f02dbb49be883e0c70fe9d3fc40dcc\n\n**Manfred**: “We can change the name 🙂. A Gnode is a DAO implementation that implements an interface allowing them to interact. A Gnode can have a parent and have children. Top-down interactions may be funding, grants, and approvals. Bottom-up interactions may be reporting or voting. The implementation is flexible. You can have DAOs managing a Gnode, its treasury, and voting the cross-Gnode interactions. You can have Gnodes with an elected leader or one driven by a bot or another blockchain. One of the goals of Game of Realms will be to propose various implementations of Gnodes.\n\nAt the level of Gnoland, we will probably have a top-level Gnoland Gnode managing a global treasury and vision. Then various technical and non-technical child Gnodes manage subsets of the treasury and their tasks. They may also have children. With IBC2, Gnodes could be distributed across different chains.”\n\n### What is the timeline for IBC2?\n\n**Jae**: “After the launch of gno.land, IBC2 is permissionless innovation anyone can try for, so I imagine not long after that. After initial implementations, I bet we will want to tweak/optimize the Merkle tree further, but this can come after IBC2 demos.”\n\n### Can you tell us more about Game of Realms?\n\n**Manfred**: “Game of Realms is a competition to build the first contracts of Gnoland and experiment with proof of contributions. The first step of the competition will be to build the missing tools for the second step. So people will compete to write the DAO that will review the other contributions and allocate points.\n\nThe rest of the competition will be about competing to write the best contracts for well-known categories or make non-technical contributions. At the end, we'll have strong foundations (libraries, rules, tutorials, dApps** to help upcoming builders to start in better conditions. The best contributors will earn rewards and membership in the future DAO of contributors that will co-own the chain.\n\nWe'll have the first version of a Proof-of-Contributions-based DAO of contributors. Focus on one of the official tracks: build a contract suite to compete with Cosmos' governance module to eventually complete Cosmos Hub governance. Realm boards are basic discussion contracts that can be used for discussions, and be extended for governance, launchpad, or other things mixing discussions and DAO actions.”\n\n### Is it possible to build code with gno.land directly online?\n\n**Jae**: “We will make the sandbox staging.gno.land environment easy to access, and that will be preferable to testing on gno.land directly. The gno codebase tries to remain minimal so it shouldn't be difficult to run it locally.”\n\n**Manfred**: “I've seen people writing contracts from VSCode on an online VSCode instance. Someone could create a VSCode template configured to communicate with staging by default with a dummy wallet containing tokens.”\n\n### Is there a plan to be able to use the Gno VM with a Cosmos SDK-based chain?\n\n**Manfred**: “This is one of the plans, yes. And not only on Cosmos SDK. But we don't have a clear plan about how it will happen yet.”\n\n### How about interoperability?\n\n**Jae**: “Regarding interoperability, will it be between Gno chains, with Cosmos, or with more chains outside of Cosmos? If it is with chains outside of Cosmos, which ones, in the short and long term? I think if the latter were to come to pass, the world of web3 and NFT could be awesome. Short run, Cosmos SDK-based chains with IBC1 for code import and cross-chain smart contract calls; but with IBC2/Gno it's really up to the smart contract logic.”\n\n### Are Gno.land tokenomics deflationary?\n\n**Jae**: “There will be $GNOT, and this token will be used for spam prevention fee payment, and it will be deflationary. Previously, we discussed $GNOSH as a secondary token, but we have moved away from the $GNOT/$GNOSH model and will keep $GNOT while making gno.land more about membership among levels of peers.\n\nI think we need an alternative to the Cosmos Hub that is more people-centric than stake-centric, and where alignment is not bought or sold but depends on contributions and value alignment proven over time. The hope is that by moving away from a pure tokenomics perspective and moving into the realm of politics and ethics along with general economics we can curate a different kind of culture.”\n\n### Are there any collaborations with other projects to build on Gno?\n\n**Jae**: “Yes, why don't we make this truly open, in the style of free software, so that we can build upon a common VM design? The only thing I want to retain control over for a temporary duration of time is the regulation of trademarks, like \"gno\", \"gno**\", \"*gno\" (but you can use the license to fork this project however you want); and we want proper attribution, but the AGPL fork license suggests how we can work together collaboratively.\n\nThe GNO VM can be used on any chain if it follows the AGPL style license, which we are calling the \"Gno GPL\". Blockchains can still be composed of components licensed with compatible open source software. We can collaborate indirectly by working and contributing to the same codebase, and know that the code we are building together will always be available for you to use for your chain, as long as it remains and is offered as GNO free software.\n\nSo anyone can build GNO smart contracts into their chain for free, according to the license we are deriving from the GNU (not GNO** AGPL license. You don't have to pay gno.land or anyone if the license is followed. Example: we will collaborate with the Cosmos Hub and Cosmos/ATOM community to offer gno DAOs to be hosted by ICS1, and help bring collaboration tools for Cosmos. So this is how gno works with Cosmos Hub assuming ICS1 is solved. As for gno.land, we can start off with an independent gno instance for the Cosmos Hub's gno shards, and later allow the IBC importing of vetted code from gno.land/*.”\n\n### Apart from Adena, are there any plans for another wallet?\n\nJae: “I think what we need are a few competing base implementations that best leverage the framework they build upon, rather react or minimal vue; and to create common core libraries along the way if reasonable. But there ought to be more than one approach for such a key component, with special care taken into consideration for security. Like, I don't agree with Keplr asking so easily for a 12/24-word mnemonic, even if the implementation is secure, it is going to become a problem. PSA btw.”\n\n### Wen mainnet?\n\n**Jae**: “Some time by Q2 next year would be good. But as policy, we can't commit to a date, because everything has to be ready first before the official launch. Our thesis is that having the DAO with sub-DAOs will allow us to reach the end result in a faster way via some form of parallelism. First, we need DAOs to assess new code, and better UX for managing something like upgrades to the Cosmos Hub. Once we have the DAO running on testx.gno.land, for some x \u003e 4, and we have checked all vital TODOs, we will know that we are ready for \"mainnet.\"\n\n_Do you have more questions for Manfred or Jae? Would you like to know more about Gno.land, Gnolang, Game of Realms, or ways to contribute to our growing ecosystem? Drop us a question on Discord and be sure to join us for our second **AMA on December 6th @4pm UTC.**_\n","gnoland,gnosh,gnot,permissionless,consensus,proof-of-contribution,dao,governance,ibc,democracy,freedom"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BNuxXTsh/uSjZSfNelGjO+lI1hX/hdsF+FfNDKSXLsGD5FrgETSBwbW3GONZoSaWa3NbW/JPDrX/Vdb8LVScDw=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dongwon-shin","Who You Gno – On the Record with Dongwon Shin","\n# Who You Gno – On the Record with Dongwon Shin\n*Who You Gno is intended to shine a light on the builders, contributors, and generally brilliant humans behind the tech. We’re excited to kick off this series with Dongwon Shin, the co-founder and CEO of one of Gno.land’s longest-contributing teams, Onbloc, a South Korean-based blockchain software company that builds key infrastructure and tooling for Gno.land*\n\nSince embarking on their Gno journey in late 2021, Dongwon and his team have been among the most active gnomes embodying the values of the Gno project: hardworking, passionate, honest, and humble, to name a few. You may already be familiar with Onbloc’s projects [Adena](https://adena.app/), [Gnoscan](https://gnoscan.io/), and [Gnoswap](https://github.com/gnoswap-labs) more about this can be found in [Onbloc's Hackerspace journey](https://github.com/gnolang/hackerspace/issues/29). In this interview, we’ll get the latest updates on these projects, hear about Dongwon the person, and learn more about what motivates him to be a gnome. Check it out.\n\n## Dongwon’s life before coding\nIt’s a cold November morning in Seoul, and Dongwon is in the office early after sleeping just a few hours. Speaking to him from Dubai, where “cool” is 30 ℃, it’s -1 ℃ in Korea. “I hope you’re keeping warm,” I smile, “Yeah,\" he laughs, “it’s not too bad.” Dongwon’s been in the industry since 2015 when web3 was still called “crypto,” ICOs were selling snake oil, and his compatriots were busy paying above the market price for bitcoin in a phenomenon called the “Kimchi premium.”\n\nAt the time, he was traveling the world as a professional e-sports gamer which saw him leaving Korea and living in San Francisco and L.A. for several years. “I had lots of tournaments to compete in, so I had to travel to many other countries,” he says, “while traveling, I learned about other cultures and people, and new experiences. It was really eye-opening, you know, it really helped make me who I am today.”\n\nAnd who is Dongwon today? \n\nAmbitious, driven, and one of the kindest, most genuine people you could ever meet. “I like challenges, and I’m very competitive,” he says. “I can't just do regular jobs. I get bored quickly, so I need to find something very competitive and hard that makes me stressed.” I point out that he’s in the right place, and he laughs. He explains that he used to spend an entire week, sometimes two, learning a game before a tournament, almost around the clock. “I had to put everything I have into winning that game, right?” He views working in web3 the same way.\n\n## The intersection between e-gaming and blockchain\nDongwong is clearly comfortable on the cutting edge in emerging industries that “are often looked down on,” like e-gaming and crypto. He takes great satisfaction in how they’ve both grown. “My parents were saying, 'Just go study,' while I was playing games, but e-sports has grown a lot. Right now, the industry is really big, and it's kind of the same with crypto.” He adds, “I like getting in early when other people are not interested and finding an opportunity there.”\n\nWhen looking to retire as a professional gamer, he found his home right away in web3, working with a blockchain consultant and the sports and entertainment-focused [Chiliz project](https://www.chiliz.com/), before launching his own blockchain consulting and development firm. “I didn't think I was going to be just a regular employee for a big company. So I wanted to start my own business,” he says.\n\n## Getting to Gno… Gno.land\nHow did Dongwon hear about Gno.land? \n\n“My co-founder, Peter, and I were long-time followers of the Cosmos ecosystem, and we found out that Jae was working on a new project called Gno.land in late 2021. We really liked the vision behind Gno.land, why he started, and what he wants to achieve. We value transparency, fairness, and censorship resistance, so we read all the documentation and his initial codebase and decided we should be part of his new initiative. We started Onbloc in early 2022.”\n\nDongwon didn’t know Jae personally, but he felt strongly aligned with his vision and what Gno.land aims to achieve. Also, his reputation as the founder of Tendermint and Cosmos preceded him. Dongwon’s co-founder, Peter, was also working on a project called Lunagram, a Cosmos wallet integrated with Telegram. Peter had fond memories of Jae, being very supportive of experimental projects, including his own, in the early days of Cosmos.\n\n## Building tools… Adena, Gnoscan, Gnoswap\nOnbloc has since become Gno.land’s most prolific contributor, launching the [Gnoscan](https://gnoscan.io/) block explorer and the [Adena](https://adena.app/) wallet, as well as creating tutorials and blogs to help onboard developers to Gno, and creating Gno.land’s first AMM DEX Gnoswap, the beta version of which is estimated for December this year. “Currently, the team is focused on developing Gnoswap, integrating [the realms and APIs](https://github.com/gnoswap-labs/gnoswap) with [the interface](https://github.com/gnoswap-labs/gnoswap-interface), enhancing the swap function and liquidity pools, and some additional features. We expect to launch the beta in about a month, so we’re quite excited!”\n\nAs for Adena, the defacto Gno.land wallet, “It's already production-ready, but we want to improve our UX, and UI to provide more secure ways of using a web3 wallet.” To achieve this, Onbloc is adding a feature called [Air-Gap](https://en.wikipedia.org/wiki/Air_gap_(networking)) which allows the wallet to be used in an offline environment, without the user needing to import their keys to Adena. “They can just use Adena as a broadcaster,” Dongwon explains. “I think this kind of feature is needed for enhancing security and educating people to use noncustodial products in a secure way.”\n\nOnbloc is also a [Q4 2023 grantee](https://test3.gno.land/r/gnoland/blog:p/funding-program-23q3) and will develop core Gno.land infrastructure in preparation for mainnet. “We are working on three key features,” Dongwon explains. “The first is contract interaction. So it's a way for a realm to interact with other realms. The second is porting essential Go packages to Gno, and the third is a multi-node testnet.” All in addition to Onbloc’s continued efforts on Gnoswap, Gnoscan, and Adena. “You’re keeping busy, then?” I ask. “All our hands are full now,” he laughs.\nI ask what he does in his free time and – in fact – whether he has any. “Not much,” he jokes, “but I like spending time with my son and playing board games together. He’s seven years old, and we are like friends.” Dongwon also likes to unwind by reading books when his son is asleep. One of his favorites is [*The Secret*](https://en.wikipedia.org/wiki/The_Secret_(Byrne_book)); he was “really inspired by the concept” when he was younger. I ask if he sees it working in his daily life and whether he believes he manifests what he wants into existence, “Definitely,” he replies without hesitation.\n\n## Dongwon’s conviction in Gno.land\nNot only is Dongwon working night and day, but he has bootstrapped his team from his own pocket to go all in on Gno.land. What makes his conviction so strong? “I truly believe that the Gno.land blockchain is the next generation of the blockchain industry. Gno.land is trying to invite web2 developers into web3 and providing all these developer-friendly tools so they don't need to learn a new language to get into the ecosystem. GnoVM, Tendermint2, everything is so transparent and simple.”\nHe believes Gno.land will be “one of the greatest experiments in the crypto industry” thanks to its fair rewards and contribution-based governance. “I'm really excited about this initiative, and all our team members are well-aligned to support this vision. We want to do our part to achieve the success of Gno.land.”\n\nI thank him for his time and ask if there’s anything he would like to add. He pauses for a moment and then says, “If you're building a dApp or looking for a new opportunity in a new ecosystem, I think this is your chance. I hope to see great developers and teams getting into Gno.land. Let’s make this ecosystem great together.”\n","whoyougno,onbloc,community,interview"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CH+jkdyil3ceWswXEX64HlsSgE3vQXcywy22D4Zi2gzFRGgvlaics8A7mofA3dQT5X18oIuHersTNnGtfhkuDg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-dragos","Who You Gno – On the Record with Dragos Roua","\nDragos Roua is a humble man. If you had the chance to read his article, [*5 Things I Learned While Porting Flippando From Solidity to Gno*](https://test3.gno.land/r/gnoland/blog:p/porting-flippando-gno), you’d have seen him refer to Flippando as his “tiny little game” and describe his “surprise,” over it winning the Polygon track of the Glitch hackathon, two subsequent hackathons in South Korea, and piquing the interest of the Gno.land team to offer him a grant. If ever there were an inverse of “the empty vessel makes the loudest sound,” Dragos would be it.\n\nAt 54 years old, he’s lived an extraordinary life. Growing up in communist Romania, where scarcity was in abundance, and “everything was in short supply,” Dragos and his peers were “only allowed to learn one coding language,” and it happened to be called “Whatever.” So, when anyone asks in what languages he knows how to code, he always jokes that Romanians can code in “whatever.” Joking apart, his language skills are impressive, to say the least. \n\n## Dragos Knows a Lot of Code\n\n“My first production-level code was written in Cobol on punch cards,” he says when he was just 16. He went on to learn Smalltalk, Lua, and “just for fun,” even a programming language called “Brainfuck.” He spent many years programming in web2, iOS, and Andriod, but over the last seven years (since entering the web3 space), has been consistently working in JavaScript, Swift, Solidity (which he learned by creating Flippando), Python, and Go. Despite this, Dragos confesses he still feels more at home within the Apple ecosystem. “I've been building a lot there,” he says. \n\n## He Speaks Many Languages\nI ask if learning programming languages is similar to spoken languages. “Every programming language has vocabulary and grammar, which is a specific set of rules over that vocabulary, so it’s similar in that sense,” he says. And how many spoken languages does he know? “I can speak five Indo-European languages” (Romanian, English, French, Spanish, and Portuguese). “Five?” I gulp, wide-eyed, suddenly feeling inadequate for only speaking three. “Well, they all share about 70% of the vocabulary, and the grammar has almost the same rule set,” he shrugs, minimizing his accomplishment.\n\nHe’s also learning two Asian languages with varying degrees of success. Korean, a language he understands “some 40%” of, Dragos admits, is a different ballgame. “I've been frustrated for nine months, every day trying to plug away because there's literally no similarity in vocabulary between any Indo-European language and Korean. Literally no word is the same, and the grammar is also very, very different.” He explains that learning a language like Korean means starting from zero and waiting for the brain to forge the neural paths. “It's quite difficult to do,” he concedes.\n\n## A ‘Location-Independent’ Lifestyle \nI check out the backdrop behind him. He’s taking the interview from an elegant cafe in downtown Saigon with impressive dark wooden walls, large ceiling fans circling above, and a rich colonial atmosphere. “It’s such a posh place,” he smiles, “every day, there are groups of people taking pictures. It has an Indochina vibe.” I can’t help but wish I could teleport over and share a beer with Dragos as we discuss his remarkable life. “How long have you lived there?” I ask, “I don’t live in Saigon,” he replies, “I’m location-independent.”\n\nAs I wonder if that’s a more elegant term for “digital nomad,” Dragos quickly explains the difference. Digital nomads typically have no fixed abode, he says, and tend to set up a base for a short period of time before moving on to the next place. Location-independent is someone who has a base but is independent of it and chooses to spend longer periods of time in various places. “So I became a loner,” he says, “and I’ve been location-independent for six years. I spent my first two and a half years in Spain, then from Spain, I moved to Portugal, which is my base right now, and I started to explore Asia last year.”\n\n## A Love of the Open Road\nI point out how amazing his lifestyle sounds—and also how challenging it must be at times. Dragos loves the freedom that comes with being alone in a foreign land and the master of his destiny. He also thrives on learning from different people and cultures and discovering more about himself. “The more you travel, the more you learn. Where can you stay? Where can’t you stay? What is needed? You learn the logistics, and you become a much better administrator and manager of your life.”\n\nHe admits to feeling lonely at times. Being location-independent isn’t for everyone, and certainly not if you don’t like being alone. “It's very difficult to be on the road because you don't have many friends. You don't have a fixed social circle. I'm in a place right now where I'm quite comfortable with myself. I can spend long periods of time on my own without needing close encounters. I have a very limited circle of friends, which I keep in touch with every month or so.”\n\nThe cultural differences between Europe and Asia are something of a double-edged sword as well. Dragos likes Vietnam, where the people are friendly and welcoming and talk to him on the street out of curiosity or to practice their English. But he’s felt like quite an outsider in South Korea, where the culture of politeness and restraint makes it harder to establish meaningful friendships. \n\n## Astrology, AI, and Other Mind-Blowing Stuff\nTalking about human connections inevitably leads to the increasing lack of them—and the topic of AI. I ask how he feels about the prospect of AGI and a potential replacement species. He shrugs and points out that most of what we hear about AI is marketing. He thinks that LLMs (Large Language Models) will hit a wall when they run out of good data to be trained on. He is a little concerned about the prospect of election rigging and AGI being harnessed in the political sphere by nation-states attempting to outmaneuver each other by predicting the next plausible move. “But this is a can of worms,” he says.\n\n“Actually, at the most fundamental level, there is no difference between AI and the process by which we generate ChatGPT or any other language model, and… hold your breath,” he pauses, “astrology. They both take a set of arbitrary features and a set of desired outcomes. After that, they just do a lot of computation, by trying to minimize a cost function between the predicted and expected outcome. That's all there is to it. You take features, add some parameters, trillions of parameters, you run a lot of computation, and in the end, you have the most plausible outcome. LLMs do this in hours/days/weeks of training, astrology did it slowly, over the course of a few thousand years.” \nI ask Dragos if he hadn’t been a programmer, would he have perhaps become an astrologer instead? “I actually studied astrology and used it for 18 years,” he replies.\n\nI try hard not to fall off my chair. Dragos explains that astrology plays a huge role in his life, and he consults it before making any major decision—such as moving countries or leaving jobs. “I consult it on every major decision and even daily life. So wherever I have to, I use it. When I sold one of my companies, when I decided to move abroad, when I travel, and stuff like that.” He gives the analogy of meteorology and says if he knows it’s going to rain, he’ll take an umbrella to have less friction and move around more easily. In the same way, he applies astrology to his life. This man is a Pandora’s box.\n\nWhat else does he do in his spare time besides traveling the world, consulting the Cosmos, and writing code for fun? Dragos likes playing pool, socializing, dining out, and dancing. “I was a tango dancer back in Romania. I had a tango school for a year.” At this point, I’m hardly surprised. \n\n## Dragos on Gno.land \nI met Dragos last year in Seoul at a Gno.land event hosted with Onbloc during BUIDL Asia. That’s when he spoke to Manfred about Flippando and subsequently applied for a grant. We were still building the specs for the Grants Program at the time, and Dragos was our first grantee. Since then, he’s embarked on a whole new journey learning Gno and building the airplane as it flies, delivering Flippando last month and regularly helping the team with Gno.land core issues.\n\nDragos has since submitted a second grant proposal to port his project management app to Gno. “It uses my life management framework, which I call “assess, decide, do.” The name of the project is *ZenTasktic*. There is already an app on iOS that I wrote,” he explains. You can read more about his grant proposal [here](https://github.com/gnolang/ecosystem-fund-grants/pull/11) and be sure to test out [Flippando](https://gno.flippando.xyz/flip) today.\n\nI apologize for taking so much of Dragos’ time, but he assures me it isn’t a problem. “I don’t work today, I'm not busy. I'm just enjoying my afternoon in this coffee shop.” As Dragos sips on the local tipple and drinks in the sights and sounds around him, I can’t help but admire his outlook on life and the choices he’s made—and I look forward to seeing what he's up to next and what else he builds with Gno.\n","whoyougno,flippando,community,interview"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5VqBU4u0ISe81kploH+GXH8ETb8h56JcSTjr6/lmr6BWaVacI5C4/CjN4MOS1Xn57yPENN+lhz3515mhLceTAg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"ModAddPost","args":["wyg-zooma","Who You Gno – On the Record with Antoine Breuil","\nAntoine Breuil, ‘zôÖma,’ is the co-founder of [Teritori](https://app.teritori.com/), an active Gno.land contributor and grantee that’s building key modules and tooling for Gno. A firm believer in equal opportunities, free and decentralized access to information, and helping fellow humans, zôÖma is fascinated by human behavior and how we organize ourselves, holding an avant-garde social experiment five years ago with Teritori co-founder ‘Pop.’ \"La Suite du Monde\" drew people across France to a small village in the countryside to create a shared community and society—with farmland, accommodation, and tools for common use.\n\nThe goal was to form an in-real-life DAO whose members shared common goals and interests using blockchain technology with a token to pay for goods and services and vote on governance matters. While many people participated and were enthusiastic about creating a shared society, zôÖma admits the experiment was early- no one was interested in interacting with the tech. “90% of people, rural or not, found it too complicated,” he admits. “We were a bit naive, but it was fascinating nonetheless.”\n\n## A Fascination for Human Behavior\n\nzôÖma has been an ardent student of human behavior since childhood. His parents taught him early on the value of philanthropy and working with people in need. He’s set up several joint liability companies, non-profits, and NGOs to experiment with finding new and better ways to organize society, and one of the things he loves most about web3 is its “experimental” nature. He’s encouraged by how far the industry has come since he received his first bitcoins in partial payment for a website in 2014. “That turned out to be a really expensive website for my customer,” he laughs. He never expected such broad adoption of Bitcoin and a technology that “inspired a whole generation of engineers to experiment with new things.”\n\nLike most creative types, zôÖma is used to spinning many plates in the air, overseeing La Suite du Monde while working as a freelance designer, front-end dev, and Artistic Director for an independent French record label. “Before entering the world of engineers, I founded and managed a collective for 12 years, which brought together artists from all disciplines, hackers, designers, tinkerers, to build some interesting projects.” La Suite de Monde allowed him to explore his passion for finding new approaches to social coordination first-hand. “I explored very radical things,” he says, “like the notion of “accepted by default” where anyone could use the collective budget by expressing their desire to do so three times. I wouldn’t recommend this,” he laughs, “but the experiments were fascinating and still serve me today in my work.”\n\nOne really interesting trait about zôÖma is how he harnesses the creative and analytical sides of himself with equal application. Most people are predominantly right-brained or left-brained, yet, zôÖma is ‘ambidextrous’ in this regard. He’s a designer who’s created large-scale artistic events, cultural tours of Paris, and an award-winning independent movie documenting French artist and Bitcoin advocate Pascal Boyart, [The Underground Sistine Chapel](http://www.the-chapel.art), (which you should definitely check out!). Yet he’s also passionate about engineering and the future of cooperatives. He’s detail-driven and ambitious, taking his team at Teritori from two to 18 (14 full-time teammates and four part-time).\n\nIn his free time, zôÖma, “like all French people,” enjoys fine wine and good conversation. One of the things he loves most about Paris is how easy it is to find like-minded people to brainstorm with or decompress after a long day of work. “We have a very active ecosystem of engineers, cryptographers, etc.,” he says. Paris is also a beautiful city that captures his imagination with its dazzling architecture and impressive art. Even so, zôÖma channels his creative energy more effectively when working from a small Moroccan fishing village for three months a year. He reconnects with nature and humanity, immersing himself in a different culture and surfing in the Atlantic before he starts his day. \n\n## New Tools for Social Coordination \n\nWhy does zôÖma believe social coordination is so important, and why do we need new tools for it? “We’ve always had tendencies to organize ourselves and tools defining rules for living together, diplomatic protocols for discussing between social groups, or trading goods and services. But almost all the tools that previous generations put in place are outdated. Our entire generation has lost confidence in institutions to allow groups of humans to organize, coordinate, and meet their needs. Our dependence on third parties who do not have the same interests as citizens is immense.”\n\nzôÖma believes that web3 holds the key to unlocking the emergence of new societies through products that are “unstoppable, resilient, and meet a real need,” whether for small villages in the south of France, Africa, or Asia or neighborhoods in Brazil or Korea. “We must have access to the radical transparency of institutions, the privacy of individuals, censorship-resistant tools, and autonomous communication from all commercial enterprises. It is on this solid foundation that civilizations that are more just and equitable can be built.”\n\n## Making Web3 More Accessible \n\nOf course, as zôÖma found out, building new tools is easier said than done. Our industry faces an uphill climb when it comes to balancing the promise of the tech with a user experience that doesn’t cause tachycardia. He says that understanding that most people “don’t have the time or inclination to incorporate difficult technical concepts in their lives” has given him “crazy energy to focus on very simple technologies.” In fact, the ‘failure’ of La Suite du Monde is what gave birth to Teritori, “which today provides all the functionalities people asked us for at the time; a social network, communication systems, voting, crowd-funding, etc. We have made great progress, and it’s important to focus on products that are radically simple for the general public.”\n\nAccording to zôÖma, this means abstracting away the concepts that everyday people don’t need to be aware of, such as networks, dApps, and even blockchain, “and always switching from one decentralized application to another.” Unifying (not centralizing) separate tools, networks, and technologies within a single, simple interface, he believes, is the key to broader adoption. “It's a very complex challenge, in terms of security, design, etc., but it's what I'm passionate about today.” \n\nWhen it comes to Gno.land, Teritori has already delivered essential DAO tooling and standards, a Moderation DAO module to facilitate social communication and a Justice DAO module for conflict resolution. The team is now focusing on an on-chain project management tool to allow organizations and individuals to manage projects and track tasks smoothly and transparently on-chain.\n\n## A Fairer, More Transparent World\n\nIn 2024, Teritori enters a new phase called \"Chapter II,\" which involves unifying all its work into a mobile and desktop application that could “trigger superb demonstrations of the potential of DAOs.” He enthuses, “I dream that we will see the emergence of a village that uses Teritori as a tool for internal discussion and co-financing. Will this be real in 2024? Who knows? But that’s where I focus all my energy!”\n\nHe believes the internet has been a great leveler, enabling anyone with a connection to educate themselves on any subject; yet, the opportunity isn’t open to all, and free and open access is constantly diminishing. “I am a child of the internet. I grew up with warez, p2p, and an internet which provided me with daily resources to learn freely, everything that interested me. In some countries, it is impossible to benefit from this opportunity, and with the centralization of the internet on different key players, mass surveillance, and the censorship of certain dictators, the internet is losing its very essence, which makes it magic. Distributed protocols can reshuffle the cards and offer tools for the public good.” \n\nzôÖma says that humanity is at a turning point, and we must build the necessary tools now to avoid finding ourselves in a real-life version of George Orwell’s 1984. “I aspire to participate modestly in a world that is fairer, more transparent, and where society doesn’t need a puppet in a suit to improve its living conditions or respond to local needs. Web3 is just a tool, and if it doesn't meet this real need, then for me, it will be a failure.”\n\n*Experiment with Teritori today and test its Social Feed, which now includes Twitter-like functionality for posts, Medium-style articles, Soundcloud-inspired music, and videos—all based on Gno and IPFS and totally decentralized. You can also check out Teritori’s GnoModerationModule, which allows you to moderate a social network in a decentralized way. A faucet is available on the home page at [app.teritori.com](https://app.teritori.com/feed?network=gno-teritori).*\n","whoyougno,teritori,community,interview"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dHmDvFncrxaMQ+woTdYwAYu3dmaVqPyH91eF6T2Q458JpPTE2grvQwHO22xZxg7Dir9k7kN4E6CZ4sKh9wHGDg=="}],"memo":"from gnoblog-cli"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/manfred/home","func":"AddNewTodo","args":["use more this todo system"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kGSuvANdvJcTHBqHtxjAd1p4kNjqGFJjAkdArQl1+ZXlsSY/KLqMsC6E2pxLE2/EDXg/EHZpImiAMsvtSYaiDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","pkg_path":"gno.land/r/moul/home","func":"UpdateStatus","args":["👨‍🌾"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wvQJzy+SZX8mBu4WVcajWGNwrfXe3VWDCcJ7Lkob4SvJw6GTDEGrt6WVG0HBQQWosnpuZyLi33uZARlM5/iwCg=="}],"memo":""},"metadata":{"timestamp":"1732553547"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"1000000ugnot","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OzVI4wnLWtLE/PPlEJGhknxLsxlwyjVfF/q9TbhhJMhTEQS9ssJjlh8ONuuNzf6GB2j2YsXo1lylZX0UWzeDAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"12345ugnot","pkg_path":"gno.land/r/demo/banktest","func":"Deposit","args":["ugnot","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OKGohvnCsndylM76iT3cyb30pKWH0nPo0gpbA/vtdX0iyrOnnoXb65X6TVpXFg5GjM3RhgDtFsyTcESPQFQKDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","manfred","https://github.com/moul"]}],"fee":{"gas_wanted":"2000000","gas_fee":"200000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TTWc4fzlUsYRKej5XYB7bXlB0H5fQpgSbTttGXdOl4hvaJMAD0NmcvwvUPgiNz8kL5ioF2v70TqEQSprAec7DA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","moul","https://github.com/moul"]}],"fee":{"gas_wanted":"2000000","gas_fee":"200000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bh9GS4yXmb9JLvWGRI08fjNpi8Syk6Gf4+R+IuCG6LAkebqDaZO5Vo8yWubOaCtlanxVjU/JjNYp6Je9kOfOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","moul","https://github.com/moul"]}],"fee":{"gas_wanted":"2000000","gas_fee":"200000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bh9GS4yXmb9JLvWGRI08fjNpi8Syk6Gf4+R+IuCG6LAkebqDaZO5Vo8yWubOaCtlanxVjU/JjNYp6Je9kOfOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1manfred47kzduec920z88wfr64ylksmdcedlf5","moul","https://github.com/moul"]}],"fee":{"gas_wanted":"2000000","gas_fee":"200000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bh9GS4yXmb9JLvWGRI08fjNpi8Syk6Gf4+R+IuCG6LAkebqDaZO5Vo8yWubOaCtlanxVjU/JjNYp6Je9kOfOCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"4242ugnot","pkg_path":"gno.land/r/demo/banktest","func":"Deposit","args":["ugnot","1"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Nphkdqeb1NMCoqtMun8HQtO5nsB2Tk9sD0sjjP5dcV5zOqayu2TjzPzKfTuO1ejG40kIMrHW1jFk5mabhAZ+BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1mr440unajgr6l5ppm4swkv49h5uplqaqf36yvc","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yM0sV0n5Voi31HiiW1BTnPPz5U2Oepgiyqtxj8hBUPIRIy7jTqHvHPk3PZ3J//0LIsrtwb0ZjQ+90BkASWNwAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/home","func":"UpdatePFP","args":["","sad"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kkumATlTy46VhkENFDJEofPyZ6hmUuEsCqN7MRHGfFh0xlW/asMC+uukEFIZKCwRcTVVXPoOF0lAR7Nrd7gCDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","12"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dKujObitR0Jelz/4AigyFrGKHFXNgrquotETBj7oqcGDS+4oCzmiCQtjO4TfQM/tW0Vh5rePRoQba0jMOn+BAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","13"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8RMJ9QY0RNQJ/oye9IEXf6kRa91srxXAC4CDnD45UlYHUesK2ydMPJZ0SW3qmPXrG/UkOcWBGJL9MRhiIP6pAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imagehuntgame","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","5"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8WcvqazhRnUnP4SsmkhNF1gUUaaSX7d3nkOLLoPXk5834S0JSCLZw6v1NZS/ljIRPtINTJwa1bfAuOqYogVsDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","10"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ofhwyfXdwEWwp7tcX4eJ1+VtKCanfPLB0CIsNBFpbC6TAog6XExaDoCh/UWdk92wvhFnG+yHBzGGENgzxzeBAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","13"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F2+2hiKOpTSNGnhlgtsl0SW2qkIoC20IYkwemf24ErQO3Z++t6b2SzuGUnvySViGZmc2VJn87eI+T+j0tsBcCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","13"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F2+2hiKOpTSNGnhlgtsl0SW2qkIoC20IYkwemf24ErQO3Z++t6b2SzuGUnvySViGZmc2VJn87eI+T+j0tsBcCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","13"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F2+2hiKOpTSNGnhlgtsl0SW2qkIoC20IYkwemf24ErQO3Z++t6b2SzuGUnvySViGZmc2VJn87eI+T+j0tsBcCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","send":"","pkg_path":"gno.land/r/matijamarjanovic/imageshunt","func":"SetScore","args":["g1n3s28tukh9fr37d44cucutsn22d4e8hw3666dv","14"]}],"fee":{"gas_wanted":"2000000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qUXrlR2SwMRuouob2gFxCDm6uDZ09ZM0OYhTz23krCjtvWsKKm3zSjKM3XYaAAyuN5GUnffg9/pLj+vgiO9vBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","send":"","pkg_path":"gno.land/r/gnoland/faucet","func":"AdminSetInPause","args":["false"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4NfOrkAyYEmyktO7AU4xkUTE5zcni2rDUg7sYYqAJcmqc25yR5IoKs01cFxfruS4eL68mSaASE727zkRFlQKCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","send":"","pkg_path":"gno.land/r/gnoland/faucet","func":"GetPerTransferLimit","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"V+08v6rtpUL3D25xSQ0r5s/RiX33QZcP6fzB3qRhIEOsBrODqnLaqqAwibeKm98KmuP+oxvogfdQMtHqvMqnAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1ngywvql2ql7t8uzl63w60eqcejkwg4rm4lxdw9","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","gslice","gslice"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wJgRkvJg8Tpnemlsz1+lTObo9eSrAguFv8fuDzEUWvEVRn9RB9jP11nBiOiJb+8tUnCJaiWefBGB+O8kL9FbCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1nq4myv4w8ya9yet0e4hjmy9j64rm87aaquve0f","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"COrVEbiu+bFGAvu9M4hm3xJNuy0Xzzj6LFJ7PSszEo+xJ/eUYXwoC35kDMG+ykC68w8spAfhiMO45QiapmeRAQ=="}],"memo":""},"metadata":{"timestamp":"1733502034"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1pe2fk3mdvkkz4k7nmyhqt5kttzxvyf4j0m7cx3","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xHPvF1fQ9mT8hUxWhOOJnq+Ppi3nnEJ9nYbl1T8xOWMZa5sDR8nXxG221OeAqgvdsughGBPimHf3cCF6XinICQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1phftkhmuueys407h7slw8hzpydl0u2hm0dl9wj","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"k3bwBLuHs6TtFFVpjevTEANkJMzMUIRmFCGDSKiqZQRqZYMEFNhAm7JYrJr4JV54LESe8gYtNzpApD7yoy6CBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1q50ht04re4239txdvwdfzvrehhdmqak8g46wzr","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Du4XLyKGI0dsV/tzY8k1itqHOiy31zbtVzp6Ohzp/MxuL+s+9yddKwMwKR1HKaLhs7nuxzQU0uwLAq/viZc6Ag=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qhuef2450xh7g7na8s865nreu2xw8j84kgkvt5","send":"","pkg_path":"gno.land/r/portal/counter","func":"Incr","args":null}],"fee":{"gas_wanted":"800000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"C/drmMnF/9+yk/hVyLbxqdFo3j3ZHeMMomddtEYZcybvQ/ehTfPYQZ+TZtVhnqlAyA6/Wca+Jv3YKvaPJn51Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qpymzwx4l4cy6cerdyajp9ksvjsf20rk5y9rtt","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","zo_oma","Love is the encryption key\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SYls8BagBxRo3QVfIFd8v25UWXeTPJ0jTCevDlw8f1Tlp1AOjkbJbve2YWbuYutD8/zz9SEo5qt2QZhr8qaZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qpymzwx4l4cy6cerdyajp9ksvjsf20rk5y9rtt","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","zo_oma","Love is the encryption key\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SYls8BagBxRo3QVfIFd8v25UWXeTPJ0jTCevDlw8f1Tlp1AOjkbJbve2YWbuYutD8/zz9SEo5qt2QZhr8qaZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qpymzwx4l4cy6cerdyajp9ksvjsf20rk5y9rtt","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","zo_oma","Love is the encryption key\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SYls8BagBxRo3QVfIFd8v25UWXeTPJ0jTCevDlw8f1Tlp1AOjkbJbve2YWbuYutD8/zz9SEo5qt2QZhr8qaZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qpymzwx4l4cy6cerdyajp9ksvjsf20rk5y9rtt","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","zo_oma","Love is the encryption key\u003c3"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SYls8BagBxRo3QVfIFd8v25UWXeTPJ0jTCevDlw8f1Tlp1AOjkbJbve2YWbuYutD8/zz9SEo5qt2QZhr8qaZCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qvcgkjdzqx3cx3e0rxrx6xnzfx5cwjg5hy6e40","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"RegisterUsername","args":["samrecruits"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"XUpbs7cfK5aDQey/Ylg1kjvpMB0STPOGV9zrIspZ7d6W8aYtdWt5LoRF0zWAY27NlbB8gzyUxP82OxTKI2hwAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1qzlkrh09zr829x9vxfw8z9055d8w9qylrjf7cf","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yvoNFul66fr9+fE9FuR0Qth3rJCWEn9hGUNV3ceRXBPyTr+hyzLwe+nQ+/JAizvYWfPa2NQsrzrbf00JG+ZmCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rdld2ay4c3r3eghk563sz6ne79mmplcl8zatuu","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","gnostudio","https://gno.studio"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QXnIbkIDf1VO0Wa4xhe7+adbS3rhnJwSTmji55qTJFWw97PpeI4COyNyoDRns3e9E56EGjBMlAjVcJBxdiUEBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rjwkc30x66spam5adk0ptedwqhgtcaj3enz7d3","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VUqnrJ+GQVQFfFYruT/qaoKBPSCQBzWswlS+JJ1G6liD0E0qpvpViFYzzZn692/cnPC8vAvmeNY3pG9CmpMiBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Did you know? Go (Golang) was created by Google engineers to blend the performance of C++ with the simplicity of languages like Python. #GoLang","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lV6Dmp8NxCSP2VcFiCvJ9D6Ct8Hj+OOI/Zp8Ct8OjMRIoXz99goIqlgZjF/E/X57A8VE3ORsrNWZf+mdNaQTCA=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Each line feels like poetry. #Golang","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bAr6cH+xqPKt9yV+wy85BwWMLUy5o1jRkbjQkjXg5q4ibBjnMVjzMEH1TlY4fPoLIw+zKZuPLI8w7DVSd3nXDg=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Just stumbled upon Gnolang—an innovative fusion of Golang's performance and the dynamism of interpreted languages. Excited to witness the possibilities unfold! #Gnolang #Golang 🚀","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/VsdRlTVqeDb59EpqMVTqLoChe6aZVz2eMHaW2qqKT8nnE+yBNBDk66zsIfvTTUmp0aqKiqW9ebkOMaF/G9VBA=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Refactoring legacy code to Go feels like a breath of fresh air. The simplicity and efficiency of #GoLang never cease to amaze me. Happy coding! 💻🚀","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8rq2Sr+JE4N/iOvvm4fAgY+QH8fjlHYc0z4Z7ELsLPj7otOMt+bD1Na5ZxvOo8nEaUBVlsLHc0q/amHnb9DTCw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["gogo","Go Dev"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5wyuQgXj9okOkd+EQF2Exgz2vBW2pL6dmTrCVRXNd810+EOk/LBFcMk14rrmXjo7AGBvtJPT2mPODcBQvZtZBg=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/png;base64,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SE6riYAIiIAIiIAIiIAIOAISlOoIIiACIiACIiACIiACVRGQoKwKn1YWAREQAREQAREQARGQoFQfEAEREAEREAEREAERqIqABGVV+LSyCIiACIiACIiACIiABKX6gAiIgAiIgAiIgAiIQFUEJCirwqeVRUAEREAEREAEREAEJCjVB0RABERABERABERABKoiIEFZFT6tLAIiIAIiIAIiIAIiIEGpPiACIiACIiACIiACIlAVAQnKqvBpZREQAREQAREQAREQAQlK9QEREAEREAEREAEREIGqCEhQVoVPK4uACIiACIiACIiACEhQqg+IgAiIgAiIgAiIgAhURUCCsip8WlkEREAEREAEREAERECCUn1ABERABERABERABESgKgISlFXh08oiIAIiIAIiIAIiIAISlOoDIiACIiACIiACIiACVRGQoKwKn1YWAREQAREQAREQARGQoFQfEAEREAEREAEREAERqIqABGVV+LSyCIiACIiACIiACIiABKX6gAiIgAiIgAiIgAiIQFUEJCirwqeVRUAEREAEREAEREAEJCjVB0RABERABERABERABKoiIEFZFT6tLAIiIAIiIAIiIAIiIEGpPiACIiACIiACIiACIlAVAQnKqvBpZREQAREQAREQAREQAQlK9QEREAEREAEREAEREIGqCEhQVoVPK4uACIiACIiACIiACEhQqg+IgAiIgAiIgAiIgAhURUCCsip8WlkEREAEREAEREAERECCUn1ABERABERABERABESgKgISlFXh08oiIAIiIAIiIAIiIAISlOoDIiACIiACIiACIiACVRGQoKwKn1YWAREQAREQAREQARGQoFQfEAEREAEREAEREAERqIqABGVV+LSyCIiACIiACIiACIiABKX6gAiIgAiIgAiIgAiIQFUEJCirwqeVRUAEREAEREAEREAEJCjVB0RABERABERABERABKoiIEFZFT6tLAIiIAIiIAIiIAIiIEGpPiACIiACIiACIiACIlAVAQnKqvBpZREQAREQAREQAREQAQlK9QEREIGWJlDI5yyfzRYfueJry2bMl0mbFQpm+bwVclmzXB5/4zX+c8uxzozN4zXz+cw8xU94+MKLZXzgPY8Hf+P9PP7Oe31WwGsvHh737Mdrv/mCQXwUn1cTAREQgTYgIEHZBhdZpygCi44AhSIeBQjEzHjCUmOjlhoZtkw8juchKwwOWMdQH0QkBGZy3PKJuBXwuUImg/VyZhCThdGRorDcHA5FYCBgnki0KCD5PgSkNxg2C4XNw/f8eERjlsbfKSzP4HUw1vH6o6PbYsuWmR/vF0UpJClFaOmx+T71twiIgAi0OAEJyha/gDp8EWg3Avl0yjLrX7Pk449Y+v47LLfuecvHR5yFsmStpGD0wkpZslAarJgFWCpprXSNgpRWy5mas1DSujhhouTnIDQ9XO6dEIa0TDoLpRfPE9bJ0jMtlRCe3li3ebqXm2fZKgvttcbCO+9uwS22mmmvWi4CIiACLUtAgrJlL93CHTgH5uzQoOWGBy0/hoEc1h+2AixD/HuThkG7EB8yTzBiFgxhMPZv8rYnEDTv0hXFwRrWHF9nl3k7uszf3WPeMNZREwEQyMXHLLPuFUuvvd9yfa9Zrn+9pV95ybLPPWGF4X6zTHJGTpSEPlgGaRwsSkQ3gV3UhVyLb8zQChCeeRpDJ97P0So6zesZVkefh0UzClHZ1WP+rbe3AB9bbmfeFVuZb9kKC6xcZYHlK2dcXW+IgAiIQKsQkKBslSu1QMeZTyUtj6nBPAb0AixDlklh6jBu6fWvOitRtm+D5SAk2fIb11l+YOOmR4qBvjC4HoNql1k4ZuYPbvK+JxQy39arsRx+Z5g29GOQ9fcux0C7BcRlj5tatHDUveeBwPSEIhCaGKTlm7YJx8X4RwHT1TnesKB/ZV5+3sYfuc/Gb7zS8utfNEsVb2I2P28aD2FHdHZFvmajmIQ3ZPGZwhKvqSF9ePCvWfSkE5P5KaKSgpI2TorKrFteFJh46ZZxOZdQhE7bAiHzdC4z72pYKrdbbaGd97TwbnubbwmWdXabF98HNREQARFoRQISlK141Rp4zKmXnrf4H++01J8esNyGV6yw4SUrrH/OzSS6IdQNnBOj59TXU4+Roy2HcY7k07VNRnR+rvhZTwD+Zxh8fav3sMAue1lwx10tuM0OFt5uB1kvp+O4yJbl4qMWv/8eG7/rZks/dLflX3qsOGXt+tMbT5bdK4QbjRCUZHDi4UVf4nI+at3Yqyk2c3hBcZmFiuRzBn+nGfyDZ37mDc31dxwRj62z17zb7W6xE86w2MFvtuCqbd7wcS0QAREQgVYgIEHZClepjseYhQUyOTxkY/BJy7z6kvkwrRjoW1ecRhynZXLYsnifVkpLw9qIh6XG3RG5gdoNjqWpxPIGblp6Jjza3PY4vbjJAEx/NVg0PdEO8yDgwRuJ4QFrJS2VMVgvMRh7upa49+KxTkt191rHyi2ta6ttLIwpcx+m09VagwB9H9NwnRjBNLbniUes8PSjln/5acsNbsSjH/0PVvBkfMLKCOsiJCItjLQ++vFM4ViyTvKZMrL4XN/zZ391j4m+W3zNfl0UmhScFJbs5xSbFJ+0csKjs2jF9DH4J4bp75Xm611h3u6lZktWWGbH3S2yy54W3Xo7C3d11/cktHUREAERqAEBCcoaQGy1TTCoIdu/0dKP3G+Z11609MigjWPQ5jIvpqz9wwPwexyFgEyYJ5eBIcVjAQ7aHKbdYF0cyEuvef70TWPD2/NuHHw3EZT4m4MvZWVpEOYzB18OxG5wLm09GIXQ7HQPg8BMQWimISojS3otimnzYOcS80Fsepdtaf7Vu1hg6XKXxqW0up6bgAAubh5CMvXMk5Z5Do+Xn7E43CY8Lz1nhVeet8LAOlz8nBOO7H8BdDgfVCLFZFE8Fvuhe433yul7jTh79m13k8S+i9fugXMuTZtzWtxZNCcsmwzsMfoad/RYbtW2FoS/ZXjVdhbaYlvzb7+Ts176cKOkJgIiIALNSECCshmvSp2OiUIyj/QqWfg/jj/6oCWu/JVln8M0IoTj1EZxSBHJAZqDtR+vwxzI8UxR6aPhsI4D+NQBlyIyw4cbdDkoU24WhefkgD314EuvA7Bi9kBE7ggftcOPsfCue1twOfwyMSAzEEg+mCVQC/SMKeFcImHp116ysRuustQ9N1ru6T9BQCJ3JFqx7xWFY3Ci/4XR8VxwzQIdcq13y/6bRoDbOO6WUnh2N00TN1Ps465FOs27BYTlwUdaFI8Q/C39Pb2ld/UsAiIgAk1DQIKyaS5FnQ8Eoiz50guW+MNtNn7HdZb70x3FIBtYgGgTLDWKSVqCQhi86YfG1wGqyilt07+mvFGHl68f2cRRYgEFZgoCk4NwGs8UoFM/VzwMHCWOncmnPQgG8m63mwUPOsq6jj3Zgltu7abO63C42uQ8CeRTKUtianvw/G9CSD6EDAGI1J5I48P+xT4XgT9kBP2wNKXdyH43z9Oo+mPst3ywD6egKJPo00n06UlrPPswE6kjaM2/75st+tYzreeUs6rerzYgAiIgArUmIEFZa6JNtj36paWefdJSN/zOsvRJW/eSS7lSwLR2SUhyoKblh1ZIBjQEMJBTWFJHloIamum0Xp86LE6DUxLnMAiXhOYbBCYHZEyPexE97l+xpflg8fHtdYD5DzrCOpCyxYvBWq1BBHhjgynu8T/eBqvkzZZ+/EErJIYx94uckWjsi1GISApJ3tAUreLurUX9D0UlRSStlJwGT6CqD2+a+LrUPPCv9G+Dqe+9D7GOY99mQUyD06dYTQREQASagYAEZTNchRoeg8sRicogSeSJ9PYhV9+Lz1gKufvSd96AQJsNLu0PxSIH6pLlh8KRfmkUlLQMUUS2UisJTEbZlgbh4nR4cYoci18PgsCJeTqXmgdBD/59DrbYtju6YIgC8gTmkLaF/pd+pG5xVU1aCUKTH2sK/rkppP7xPP+UpZA7MvXIHy37zGPmyYwb5Tz7I4Ns6FIRwYuSmGzy06rL4VFC0kpJCzxdPSg0J/swMx/0rLTooUdZAKmHfKu2s8IOu1ikl1V5lHKoLhdEGxUBEZgXAQnKeWFqhQ9h0MnmEFizwcZffsGGn3vKfI//yfKP349o2WcwcCedUCyKSaSEhBWyNKXNgXwxCSjngzlh7aH1kn5qGShMtxx/F/0wPVbwQziu2NZ82+xoeQRAZBAIsWzPNS6y1g+B6eo2t8Klb9ZjZOqcTNZFaQ//6T4bvfNG89x+LdTSsAv24o1LyT+31Bedb25r3c/UjT5vioqW92L/TaNP08WjZLX0dKMgwM57m73lRFu65hCLyJWjbtdCGxYBEZibgATl3Ixa4hNMuxLv77P4xedb+sYrEHyDKW3WLc6mMXhnYYE0i2EakUKSVkiO2SVD5GIcv1+fKMTE/sQfjBYv+ak5SyavLCNrfbCR8YFKPr4td7Susz9ksbecYL6IKvUQUaWNNbQzCAAb/vn3LfXQXUh8/xJSTiHtFC4IrePsi11+Btq8fkOzGPtipfy4Xqkf85nichw3R0MZ9mQ08HOFAlBhKnL8uZgGP82i+x7Ad9REQAREoOEEJCgbjrw+O2Qlm/5fnW/JW1FJ5FlEbk9Ey3KwZrLnDhfcMOGT1qajthuUJyyXtPQwAGIcvmqlQZvBD6zmE8RUYmDPA/A40KL7wNeyF1Pk/kB9Ltwi3WrqhWdt/MF7LHXndZZ+6hHLD8LdAjlM2fXoIzlpIZ+4uVmkGGp6WuynRbcO9Fv0X94U0erO5lu1vQV229/CBx5pHUefhBriyN2KgDQ1ERABEWgUAQnKRpGu035cTsl1L1vywT/Y6G8vsOyLT2FKccztrRRowwGcD7XXCXAg5oBMi09pOrw0lUirpQfJpf277GuRfQ+24Jo3uSo9AZSGVJudAMslZpBLMnHbNZa45feWefhu+BhkzQPeU/tjPX0kPQzCwjX00uoMBVv8u9j/vbTqlUzzU0/F6TJkC0B/cDkD8DdzZPJuo8CpeyzP4zwmzd1T123wa+a2pKCknyXdOXhzxMP3dCFoZ/WeFjvuNAsdcDhqhm+N5P66EWrw5dHuRKBtCUhQtuCld8mSs1kkHx9zg/f43TfZ6K/Pt8IQamYjWpbjJYMbGLFdnOZmQvI2NUvOcX0nhSUslRyg+R+e3ADtQEa6LXjiOyxywlnWibKPhWDQvMhjqcjwTcE6wZVOo+72oMXvvtUSv/9FUUziY+x5zlcSNzU9mOKuWdAX+rRz3uBzqX/j2ev1Q0iFEKSCmu/8G8LS5yL5YaGHpXmmHKTuHOAeki8JSHyXCugMFJa5TBqB6KgU5UQm5Vux8btIkekknVv8+nulz9TrmTdAtLCPZCF28Zo+l66y1JItLPa+T1jksKMtjAo8rq+W+NTrYLRdERCBticgQdmCXSCTTNr4ulctedVvLPvwnZZ7+Sk3kHsw2IUwcJTS//ghKGkVkpSc/SKXIsIpLl0eQORuYQCEm06ktQsVd3zb7WqBA95iOZTD69h5d+vccqvZN9pm746jPGfy6cctfddNlrnrOsuvewGW8rjT5JzeZk7JEPwvmNe0Fo2i0IuyhX6U5vTB95Ui3wfh6JbTwoz3aZl0ze2yuN9J4TnTQeC6T0pCvGYrikX866yUOScw+bqAILgcfJTzGVSewg0ehWehQKvm5BZm2ktNlnMvFJL0Cx6DsGRUeJ58aZ3dYS8LHHmShd56mnWjFKmz1tZkr9qICIiACExPQIJyei5NvXR87YM2dOXFlkWgQ2HDy1YYH3VTirRGMn+fK1HHcaVGg3dNYGBw97ppyOn9umjpcQPyRHLrmuyzzI1wgKaIpOUHRp/JvJaw+VoB9ZY9y7eywpKlFtxiW4vssZ9FTzzD/KwrjvNq10aXi+STj1ninhtQyvOPlnvtZcujT/ohskLog+yPvKlhEE61NzcUiYFQ1AlIWhopktinyL/4oKWStnm0OvV9NzsAC6azStKiTRGJR54Ck/9hyj8LkZkZj2OmHxZOfraOrSQqmV6IN0EUl3TjKLgKO9uYf4811nHUqRZhhR2kFlITAREQgXoRkKCsF9k6bTeNYIexGy63sd/+BHklN0IBIYIbgyd90rowePN5oYSk81tzgzsGdT5zUMeDzxzoKQC4fLrmBmr4qOUnBGVxKpGDNMZuDNLOIkQLTIMsQNwvhWWSAzSsP5MWSx58uAP+lftYx7s+ajEG7bRpKbzMeMKSr75o41dehDyn11rupadJx/XHSMndAn2yFo19xw8xGUK9dn8w7KawJy2QtdhBjbbBfkpByYIC2fQ4rJcZiM3X+3WNdjPtZpyFfcJamYaQpeuGB7lVg4ccZx3Hn2kRJPNXLfBp0WmhCIhADQhIUNYAYkM2QTGFQWrw1z+xxA2XWf5Z1D1G43DNGsdMvxLkNJ9b2qB/KBS5RycYISSQdNkN9px+pJ8hyx5CQHIqstyWg3WnGBQBayGsYPRhcw8M1s4qBLHHyUhnKXKvy93D/D/PqiVjMFlyOpx7ZfN09Jh3p/2s90OftDByV3rhr0cO7dRGX3re+m67zrwX/qfZEEonopEAp7c70R/ZL2vRaJkMQsSHu3phoSz6RdZiu/XeRgYpkjLJhHtQXLqbojpbLCkiOfU9jP7KgJ1Sf4287b0WO+EdFl1zML6Ttbku9ean7YuACLQWAQnKFrleWVQaGfr1Ty1559WWe/HJyRQsHX6fC7yhZbLRcsYfjMBqhAcDICYCVdxg5QQmj6Z4RHP6rU1zDZyF0i3HNCIFIx7OiolnCs08gyQgNLMYtCeDJabZTi0WlQZpBj+ULD9Qy8jHFLHgPodb7PgzkLfyePNh+rudROXY7ddb/w+/Yfb8WtcfyZppqpYE/M6Pl5bz6hr6NMRPuKMblsku3KywglHriCHXXynq0F9zsLwnRwcxFZ5wFsvquMy+NvsrfSrjsOwzApzNi6wF4ePOtI4PfgrCvFuicnaEelcERKACAhKUFUBr5CpJRHKnH3vYMndcb+P33uKCHTzjYy45OS1BtALRZxJ6sr6N+2D07ITvmg/Rzoyk9SEogpbIoi9bYwb74kANUYlBOs9gCD47PzYuw/Q4rZsTy4pWIQ6qxYG1UkiYSXQWH9YL5yDNZ/qtWfcyC+y4pwX32N/82+9iwb3WWGDlKid+Kt1XM6+XTaVs6MXnzPPYg5a75yYbx8OTGkP5xIIF0UeYWaDkN1lNl3SWbfSvUKTDAqhXzZuWVras0Zcyg0TvRWt70eL+eh9lPafaNvZRWtb5oOtGweMz/677WviEc6zr+NOMlaBamWdtaWlrIiACtSAgQVkLinXcxvDD91v8ukste/1vrTDWbx5YPDhoR2EhiyLSgf6S1Qzccx66E6teZ4nkNDYFpHtmZC2OoRLr45z7rOADFI4Uk26Q5vR4rjhlXrRmZorRuBCZ1Tb6qZVEZcm3Mu9FKprOXvNuv5uF3nycxQ56s0V32r3aXTXd+tmBPht/+jHru+9O89x3h3lffMI8iWHXH5k8n/2SorIWPry8WQlCTEYwze1cJ7DdxdDYP3Pwq8zBup5HH806S3vS9Vda4WvVuCVOeY/jToiuGuyzhViP+bbfwzrPOQ/5VQ+0AFIKqYmACIhArQhIUNaKZM23gwEAVoaB7/2HJW681PKvFAMeaI1kNHcXprobMcbSUhRAEETH0i2cdbIhO60xy3RiDBlsRhAoMQo7GobaGgzcNE5mMFAPIXUME6SXpIBni9XWeeq7rOfdHzYPBHgr8poOPwOjxu640YZ/9UPLrb0LJ59yp8b+uCwA6xcEZS0lH6O5w/BTDXV0Yj+NsXxPd971XkaLZXJs2FLx4Umf4Vruk/2UPpV016CwhDOqeVfvY0s+8JcWO/wYVNMp37+5lsenbYmACCweAhKUTXot85haTL/2ig19+4uWwlR3qWwdhSQFJetxN6K5gb1ziYWiKOUG0dCKjdZLBvlkIYLS8GHLoJIQU7pU26hLmaIljmnFyRKOsKz5d0aFnaNPs563v8u8i6S6zsYnHrXxqy82+92FSFOFSkyYwmUfZF9kWc/q/SU3vRoM7grFui3SubinZjkVTreNFG56eMOTQXlKsq1lo6gcxY0Pp7/TlP3hqEWOOwu+v2dabP9DarkrbUsERKCNCUhQNuHFL2CAybzygg1ffL6l7kI6lnUvuWCHKARdDIKyUQE4HvhMMk1LFH6CPtYFboRJtE7XoxQgUZpizKYgLF2ABP3XSvbF8nfOKXBXwhGDNSvt8G+DZc237S4WPeJEix5+rAW3XQ1rZWuXwFt/0Y8tce0l5n3sXgeJtxb0leQNDoVlrW9vimmCIhbrWQ4XC7gULGIrJfsmb3BejwpHDktMh3N5rRp9KnnjQ2HJrfq23dUiR51iXWd90KW98rhKQrXam7YjAiLQjgQkKJvsqqcRhJN99SXLwEdt+PyvmcFq4cMQQP80Dt6sftMoOyHz/jHCllaixdRKARKpsZHJCHH6WtKSWUmjBYg+anFMK6ZgXWIQRN4XNM+yrazjpLMt8qajzb/djuaPtZaV15UbHB2xApKVD//0vy11323oj8POGklfyVKN+HrdZ1BUhlGlKIBsAi74C/1/cQtL9B1MgafisFTihof8GSFeq0YrOl00GExWwM1iYHck5z/9AxY5+AgL9C6Fr6qmv2vFWtsRgXYkIEHZZFd9w9qHbPwqTC1e91sM3gNOPMaQi4VJy+mn1sgWxlQ3BWUA6XEWY6OIpJUyi+jbTBoWSwzm1Uw30qA0Bl9DWoJotXQtGDP/IcdY+NyPWM8ee5mP+SpboVEg96230Qf/aBlYygsvPIqTG3JiktPcFJP0n6yXmJxEhB34kd+U0d5BWMsZENYsgWCTx1jjF7zhoaikbyWFZS18fnmIWfRJBukMo486SzpvelZsbeG/+bJ17rU/bhy7anwm2pwIiEA7EZCgbJKr7fyoxkbhM/lPlr7nZrPBPlTBybiBmwM4pxdrPa0416n74McWph8brESLchCnJRFWSZco3flZpmGAGwD2FMbwyqyVHKg5aDMHoAvWYSQ8pm0Dex5kSz/+9xbYchtrhenF9PrXbOz6Sy1+1S+ssHEd6nInLAwmHS6BPmrEozfWXUxOdFD67jKjACO/eZPD5OaL3ZrmshXA9SUN7kkI+VqUceQtDkVlKZCMtk8Pvt+Bk95t3SgjGkV5RjUREAERqJSABGWl5Gq8Xmpk2NY/+rAVvvcvZk88NLn1JZjmi2IQ9zdq9J7cMwYbDOSsUEJByQTmi1JUTjlfph1Kjg4hQAJT4QyOqLCVSjbSWsmp8DxyAHohKqMnnWuxo0+xEFIKNatPpQtgwlTr2KUXoiLTby2z9o+OAvsfg2+YSJ/JyxeisT8GQrD4ImWVH6KSlnMKzYYp20afNPoOg8nSqAvOhyvlWGXqK94mJSd8KenzC38C8+28v/W872PWceTxjT5D7U8ERGAREZCgbJKLGYff5POX/sLCN15i/tdecNZITikuQUqWWpWwq+RU6bsWjMRcxK0LjqDFbQHEbSXHXvY6GMCzyBGYHBuEqBytKhKcYzWtlLRWsrpOzoM65ghu6jgdJfCOOdWC2+9UjJpvMpY5TP8n6TP59c9a5uF7DBAcRk5xU1DSUr7QzaWygph0db3x7PMhaKfB7iCNZECRzyhwphbKJONVB+sw2IelGVlNJ0dLc0evdZ/3N9b5tnPNiyTyaiIgAiJQCQEJykqo1WGd1JNrbcNXP2f5F+GrhoGDFqEeikkE4dQ6JUu5h89ACAbocAAPYsChyFzMjdVgkrgG4yPF+tTVnCsDIehTyQdMaeZZstIix5xmSz78f80XjUIIwcLWRC2Dqe7ha6+w5JUXWO6lYu5THh5vbCgqF8JSPhMesnO5KlGWkdPgi72Nwx1jHOUbc6hnX21jTkrWpy/1y+iZH7KO095rkZ0XX0L+allpfREQgfkRkKCcH6e6fir13DMWv/UaG/vFt1xUd7CQm/SdrHslnHmeGQdv+q0VH5j2ZMUclmHElFlpOS2Xi8F6WcpbmUmhVB4DdhhxW+Egnoc1aBzmSlqDUngUyG35KudTGTzzAxbdcVeXvHuel6GuH0sOD1r8oXtt/Ef/afmXnypmGMA1pZAs5T5doNnuGc4bGQ+Q7ob9cLI/gq+fZUHxvNisli4CnJZK+lRWmVaIFnSKylH0SVbU8Wy1swWPPNli7/xzi3QvcVxngK7FIiACIjAtAQnKabE0aCHERmZgo8Vvvtri1/zaso/ei9J1hrKKE1G0sE42XyuKRiciMZhPikkcsxdTj4zCpY+bl3kDm2w6txyWxbyVOfitpZFwGlV2kMyb/myVNOdTiRE8jpQtaVxz+lQyV6X/2DOs56R3WGzPNZVstqbr5BNxG/3j7TaKMp+5O65FHqSkhSzvxGQY17aR6arKPjH0M/Y39kVWfin1QT/TDSGHpfOzLHujzbcCA8VYtjFDn0pMfdPPl8E7lTYXQIZ+OZJBP/fjO7t6TwuddI71HHsK0ggtq3SzWk8ERKBNCUhQLuSFp4Xg7lssftkFlrr99+5IuhmEA4sQk5e3WqNVyI8qHKyq44Qm/S0hRmjdbGXLJUs3ppDCJQlhWWmjRYg+lZxiZJLpApl0r7DuD3zSOk5+h/ngTrBgjVbUx/9kY5f8CMnLf+2yC3BquxPBYJ3oi6147bzoi6FopwXQH/1MNYTE/ItFWLKfJJFWaNKnEr8jlTb2y74MKvXgRR4BeL6td7Zl//dLFtplz2Lp0Eo3rPVEQATajoAE5QJectZH7vv3f7TxO69BapaXYGUxWxb0WwQirGUbhEhx6hvT4kg7FAzHLIjygz5YM1s1KXWxNN6ojQ0gfU4VDWM3aipDVMJ3jdHfUNoWQgm8jlPeaR0HHV7Flqtb1fXDb3zBkndcY/kNL7qN0X+XNzYMDGvV5vohE3i7mxz4/7J8aAufz9TrQAs6A8eYUogWy0obBSX7JMsy0v7uQQBe58f+0WKHHmPBLbaqdLNaTwREoA0JSFAu0EXP0er1wnM2/K1/tPRj95uXU4wY7HoC/pa0Tr4BoxOW9LvEAz5urAnOqfCiv1trReVy8M4h6TkHbxf9XcU0I6uUcPB2EbbYrgf+lKGDj7bOcz5soa23NW+4sUnkswN9Fr//Hvjvftuyz641D6ZRaZ0sZRdoXTk50SNxLqUcluyDQVQr8iOf5WIQlqWUQomhDS6faiUJ0HmTQ1cM5+NLdcnv6gHHWPdZ77cYyoaqiYAIiMB8CUhQzpdUDT9Hv6fU88/Y2O9+ZcmbLrX8xlfdIM60LLEFyjlZw9N746YwqDMptQucYGAPg3koNCeCfDgt7qYjOT3+xrWbYgkDdRgUkYyPuNQteQTpUGiW27hGBttKIJ0QhSX9K72rtrfQm0+yyEFHWghRtv5lKxsieFjmc3ztg5a4+IeWeeQeK4wMuH4YRaJJ5ptsZevk5teF1nF3Y+OmwOEvyL7HfjcRVNaSAhN9h7XpE8N96JOJivwp2R8ZlDMCqzn7I63mTMQfe9dHkeLqPU0TMLb59dTfIiACzUdAgnIBrkkSSczH7r7Z4l//f3CGGjYPIjbpM8kk5gEOcs2qqmrFigLTBfAgQTUDeFyULkQmnyE0my2VztTTLkbajrpAHb6upHEQZ0DEMIIhmFzahVWgvGDw0OMtcsKZFj3wcGdJq2Tb5awz/PTjNnrDFZb72TeRbzKHMp/FmvH0413M/ZA3Ly6AjNY4TPH6YRX247VzyUDfbKXmyocmky7FVRZZCSqp8MRMBMxLSR9f3Oe45j0NNb7P+pAt22nXVsKhYxUBEVhAAhKUCwC/74lHbeiGyyzwc6QJwo+5H2MYE0ZzmrG1hrMq4GHgdufqBnD6XWK2DVG5oWg38l3C1w3CuhkbrZIcxFm5ZKwfPpUVlmgsWYY4kDNXJQF44HOag09l+JR32Zb7HlD30x++4lc28psLLP/kfW5fzHnK0opRivq6732Bd1Dqf+hnnAoPRbtcAn9aLV1nXODDK2f37JOs+52asJ6Xs27ps5vmS0XZ9gOPscCJ59ouJ51e+oieRUAERGBWAhKUs+Kpz5tDd91iw1deZHbTJW4HDMLhVDdz/bVzo2WS/m1+CCsXnYtnpn1ptoYYbcumkhYfWI8pR9T9rjDKlpYh5gFkgmlOfbu25yEWfutZtvLs99fvtCmKYV0dvuC/beTXP4R6GJx0uaCgXOhE+vU78em37Ka/nZU8hCCyKPoe0w21VvL+HKa+KSpd3e8KfHxpMWcGgkFYzdmyq/e28DFvt63+7OPTQ9NSERABEdiMgATlZkAa8efIlZfYyKWoRPLoPc4S1IkpRqZoaaYqJI3gMP0+EEQBCxlFJeuHO3GJKijNlnqIARHJEZZoHKk4PyXPn8mlOZAz8puS0tO7pYUPP96WfvLz5sX5M91NrVshm7XEAwjEueR8SyJdlQdWVt7MxNAPaaVs11asCBVxlspgBCl0mG6IpvNWaBCEtJqPI3CMOVPLDdBh32ON7wEISopLW7a1RY48xZb/zRdb4ex1jCIgAk1AQIKywReBKWiGf/F9G/31+Vboe8kFPnRhIKdlSG1TApz29iHhcrS7F+IyjCAKf3FquAkGeee7Bivl+FAfgnXouzZhYdz0FOb8qzSQDyPSlqmE8vBkDO5xgHX/5T9aYNvV5uvscgEkc25onh8owJKV7e+zge9+zVL33WrW/4qzSPbC3SIEUaleaE5IhiKdCEjpduydqOQUeRP0u9kuM4P9GJwzNoiob1opy+yTzEAwyhRCuMnJhbsscuhxtuzz33C+zfjyzbZrvScCIiACJkHZwE7AqdGxDess/tNvWep3F2JeKW09EJMu318bW4ZmuwQcxDklST+3AHJaUlg2heWI4g8P1ldmJR1OfVfauB2KyVFYKRmkk4eY8a7ayXzv+rB17v8m61ixRaWbfsN6qWeftKHLL7L0rZfjhuZVC8AflEE4IUR2t9tU9xvglBawz8H9olhxB5Zy+Pa6fucCd5rZYon0VrhhZfR+Em4M5fZJ9kMm3ee0dxpzJ8G9DrTuTyHJ+Xa4sUEuWTUREAERmI2ABOVsdGr8XgFl/PqvuMiS11xshUf/4IJxGNkdwt1/kxs/akyi3M0VRSWTozM6102DIzo3AHG50M1FfSMYggERldb75jmw1gnTCVFUJgoeKyDq27PbGus86WzrOvpk83V0VX2qSQSDxW+/1hLof/mNr5gfIjgCIUlB2Sw146s+yRpuoJjOaqK8KMSkq7wDNwTWD2/W5oLG4I6RgOWcU9+0pM+30VpOUTk0kX2gsHJbCx2D8qBvf7cFttp2vpvR50RABNqUgARloy48p5HGRq3vK5+x1P23m2+03/mtcapbvpPlXQTmtAzHGA3e6axI5a1d+09nkK7FRdnCf63Sqe/SUXHKkTkBXZAOpvjDR5xkHae912KHHIHp/sqnHWkdH77sF8h9+nPLPT4lqhs+mgwIU5udAP0rmWIojGlwBu40c2ornkliqN+VZizXSklRWUp0ng7FzLPlalv+mX+z0B77Nv05z34F9a4IiEC9CUhQ1pvwxPYZVZtZ/5r1f+48yzy9djLvZBDWSc12l38RXKqXWJeFO3sW3LeNuf8oKkeRoN5ZhGDlqbQxfQujvunHxubpWWmhNx1ryz79ZfMiZ2clfnwUuZlE3Ia/8yVLXA5Xi1zabZuJ9JnAPKQO6HjM+Q+mEXgjQ1FJK3mzprbiedBizpscF6Az54lt+gHW9eaNDYPF4MRsS//5+y7pvqa9N+Wkv0RABDYlIEG5KY+6/ZXt32jxB/9go9/7kuVeftbV614WwnRa3fa4uDfMwdwPv8po11I39b3Qg7uL+h5laUZMfSPwpdJWKs04hAHdNQzovt33s8jffMW6tt7OAhX4suXgarHukQct88tvmwd14xmsQU9ABoN1wTrJ6W61+RFwqa0gJoPwcw13wNcV16cZWyZJq/mQe5R7fLwd4rQ3a3yj0oDF3vdX1nHMqRbeUUnOy2Wpz4tAOxGQoGzQ1U4+/ogNIbo7fe/15hnptygE0dJgcw5GDUJS9W44mDNgIsD0QhPBOqwVvhCNVsoshFtiaKOLtK2kYgmPG8YhS8E6yWnvNLbJvz1bbGuBk99rvSe+3UIV+LLlEKSx7qIfW+bGS83z7CNOTDIQjKmCwnhITpbXYygqWUaUPrwuXyr630L1u5mOnFHetFAmhvuRJ3X+fpSl7THrwAhEZZ5T/Uhy3vX291nHUSeU3tazCIiACLyBgATlG5DUfkEepdESd91oA9/4BysMb7AASi1yQO9Bqha16gkwGboPVqPiNDir7KDSywJY3Ti1TEGZio9WFaDDPIDjUJL0ZUvjdYFR39vuaks//jkL732AecpI9u5cLV572Qb+658ts/YP5hkbsCDY0DrJcp+K7K68/9Eqzj4XjCLFEB7NVmWH093jyJWaScbL9u2l2wWnvWlrZ27Urnd+xLrO+iByo4YqB6Y1RUAEFjUBCcoGXN7Uqy9b/IbLbfR//8ntLYyBiNYh5Z6sLXwG60R7lrugCSZHX4hWje/a5sfLKUf6sTGVC1vPp79usSNOMH/v8s0/OuPfmY1IU3XvHTb2g3+13PqXnb9kF9jQMinXyRmxzf8NiHP6U0a7lzmLZTNNgTPnbRpikhWdyon25sknJnx5xyd8eTvecZ51vvsvLcgUVgtwszb/C6JPioAILBQBCcoGkI8/8Acbu+YSS17xE7c31u1mQAStlGq1I0DLZABT4DEILg7yC9EySHbufNdGB6vePXNTOlEJaxElZWCfw63z9PdZJ6a+59vGURFn8MffsiyrMiVGXc343gB8dzXPPV+Ec36OEeBeuFpEunpdlZ1mmf6mxTyH1FCjfevcczluGKyaM4aHC8wBgdBbTrXY2z9gnQcdBkGp3605O4U+IAJtSECCsgEXfeSay2z0d7+w7P03u73ROslSi8w/qVZDArCceD2wviHym9OQAURFN9qaQt+18VH6rvUh+KUYqV3pGVJEsiTjWC4Hv0oE0nQssegp77Suc//CgsthKZqj/2QG+ixx81U2/IOvWwFT3SEcT6nvVXpMWm9mAqXMA8EoyjYukC/v5kdHK2UcfdHlpER+yvk29jf2vVH0PTb/ngdb5PizrffM98zZ7+a7D31OBERgcRGQoKzz9czjB3nowu/a2GU/s8K6Z93eKCY7Me0YqJGZiMKDCYkpX/C0SUPe6rbzk+PUN2sxhzCw03LE6W9akRrRiJ8+lOMIhshmkm+8IGUeBKe7Of1IfzZe3+D+R1jkpHda7MjjzR+dPh+is0whQGj8vjstcS0s49f92gXesGY8LeO16ndlnkpbfJzVnELRLtzQxFwE+EL48k4FzfyjKdb4HhmwbCox9a1ZXzPbAK2TDM5h86zcDjXmT7Dln/oH8zRxYvdZT0pvioAI1JWABGUd8XJgT48nbOR//tkSl/0U4qL448zKJLVK10IBySAOBm+kMAAwIXbJLobqw84ixWoo7ZYahgKSpfOKgzssRnjdqMGdaYNSiTFnpawkwnZql6RATecKNpBBnWZc20IwZr5d11jsr/7JOrbZAWmEolM/7l7TKuVKfP7oPy190xUGdeuS5zMIjBZKtfoSoHUyDGtyCNWNmsFSyZvasYF16JOj877B4W8Kb2QGEOntGipUhdYcZsu++mPzIbq9Ud+l+l4pbV0ERKCWBCQoa0lzs21x+nPk1Vcscf5XLXPtb/BuwQm7HlgomVC6Gjc2Cg3+6NOKkITg4GtnoXTedq8fCKN5aZVqx2he59sG62SIVXUwBc7UQo1ovJFgScb44Hr3XK2o5E2CK8nIGwYIZU/3UvOvOcJ63/MRC+++zxtOKTcyZAO/+bmlbrrMcs+uNU8+OxEEpiTmb4BVhwUUWwzOiXQtc5bKBReV6D8J5khFGqFsenxeZ8zfFybZ35jOFj/P4KM9DrCuL/yvRZbRR1nR3vMCqQ+JQBsRkKCs48XOZTK28Ym1lv7Zf1nhtqvcnpiqhSKvWksRBSRFBqMwOT3FAWC6Vktr6HTbb4VlzFMZ7uhxFU4a5VPpfCmRsqXaROfkS3eGJK4xpx9dxDcsYJ7Opdb91/9i0cOORS7EyORloDUq89pL1v/Vz1r2iQfhOznkAnDYDxgEpjKfk6jq/qI4/d0JUbnwPpW0mLvKOUi8P9/GPtcHQcn+x98X7857W/Cvv2JLVu9sQSR1VxMBERCBqQQkKKfSqPHrXCplL993t+Uv/p55/3CDs0gyXUsnHoz0rrTxB57Coh/TUa7m8wwbogW0G9OcXdhXO09RMV8gLZSMwqV/ZSNY0HeN1UoSI30u0fkMl2hei0vW6H4M7hzkSy3wsS9Y57GnWecWq0qLLI0k5vEn/mRj//xxy2941S2ndXop+gFLLLab68MkmAV64QJ1UKqRdee99OPFtViIVkn2AQbmDKLP0dXCudHssJvlz/s722LNgRZZsnQhTkP7FAERaGICEpR1vDhZCIrnbr3e7LIfW/DBO5yg5PRzDNaiauonl8rzjcAaNUVfvOFMKB56sC8GAbV788IHjFVNOpYsL5bLq/PAzmlv5v4b619nafqu1aDRWsSE57yhYBs/9YPWdeJZtmrNQZNbH37lRdtwx40W+MnXzTPU5/ocg3CWoSpToM7nPHkQerEJAd7EdCxd6VJZeZHaaiFajpVzMO3NxPvzbfydYdoq9jnnUrPNTpZ85yds28OOstiKlfPdjD4nAiLQJgQkKOt4oTOJuD1+5W/Mf/UvLfr4fW5wp8CjdbKaSFv6NpWmP1+3V216IrSDlPJdVmMN3XSrLfwXxJTXi1KN8KMMoroJxaUPfmD1tFZSVCYQXUvfNeYDrLbxutNnlsESvO75vQ6zrlPfZUvfdvbkpsf+dL8N/PZCK9x+OXIOjbobl2LOU5+b+p78oF40jAAt5BSVdLsIRhBUtQAphdgXOeUdR3AOX8+ncfYj4VIHFYP9MltuZ6OnfMB2POFU61q1zXw2oc+IgAi0EQEJyjpe7CwG9Od/fr7ZzZdZ4PlHnaCkpYiVcirNGFQKxBlmnd1Zjp2CcgmmOSkm5Tf3OigG6rBUYwADO6fB6y0q00jZwkTnrKBTbaNl0qUQgqCky4NnyUrrOO291vNnn3LpkTidGr/1Ghv43tcs//KT5kfeQUb402eX094LM9la7VkvkvXBP4iUQmFOf6PfLcTUN/vgGKvmYGaDAYJzNXQx9LO8DU747uaXrbLUEafZNu94n8W233Gu1fW+CIhAmxGQoKzjBc+Njlj/D75pqTuvtvyrzzgRuTIYcDWUK91tCj/wrLPLKhazNQqI5UHWa4b/5GwfbNP3WEmHKYWYBL2eZRpzEHW0DJUz1TjbJSnlpeRUJCVB9PizrOu8z1hwy62sgMjysSt/ZYPf+gJSAKQtgj7A8p6qyDQb0ca953x5kXEg2rUUFks/dtzYbybTBsUHNxbrzM/DSsn+xRtYulq4xPooa+rf/2hb+oGPWWin3RoHTnsSARFoCQISlHW8TJsLSiYZX1GloGRkNyunuGjfGY6dHpP0l1tKv7lKTaEzbHuxLObgTktlJ6wubgoSvOrV6Ls22v9aTTZPHcCbCqZz4S2Fb9f9LXLCObbk1LMt+fzTFoegTFz6I7xTMOadbNeUUTWBXYeN+FEalGmsIp3dqGDYWN/mNCK94/CrzSHh/nynvSkq16cyRUGJeuW+vY+wped9wsK77FEHOtqkCIhAKxOQoKzj1WM+wI3f+CdL33ezefpfhbjzumjbakQeEw3H5wjGoXUygn11BzTdPfPlZa5AWHAx/RjGAB9gjso6iUpaKJlYmpHftWgMlhhEP0ijlGK+e4UF1xxuyz/9ZRu96WqLX32x5f50p3NzYIQ/rZP1k8q1OJv22gbrzfNGhhkHmO6J+Sob1SoVlMwuQP/dAr4n3h32tmWf+ryF99i3UYet/YiACLQIAQnKOl6o3PCgbfjXz1jmoTvNO9rvAiTo11iJTyMtBfSho6CkH91sjYKVpR0pJmgVVZuBAAQkB3SWaQwySAcDvS+AHI9M71LD5nzXBjfAdw1Joucx1TjXrjkNyQF+FI+0J2C+Vdtb1/s+YeN33WipB+9EdPd65DktWieZ91StuQhQVNKfkgE6LjgMVZwa0VjPOzGEkqBIbj5fCyWPizcv/M3JIpjNu3K1Lf/sv1p4nwMbccjahwiIQAsRkKCs48XKDQ3Yhi/+laXX3mP+xPBkgEQlgrLkIM/o7qm5CKc7fKYkonClRbS20mi6vbX+stL0txOWDNSpsah0ZRid71qqrIF8JrK8uaAgKN1cFJC43bvN7lbY8IIVRvrdDQvzTlJMKu/kTBQXfjkT7tOPN4RAnXr68ZbONIMAscTwgGVQ07sA6/Z8G/11mV0g7UdWhCWrbMU/fMPCaw6Z7+r6nAiIQJsQkKCs44XODfbb+r//iGWeeMAC6cRE+bvKyiBSUHKqm8E4s/lP8nRomWQ0uWxTZVxcWithOYp0LnHT4LUsLVfJVON8jpyR/hzoM/ww8mwaSix6IRRCuJHordASPp/96jO1IcCUVX5Y/Vyfg7Wy3j6VFJTjSGOVTpYnKBkEyN+epBd9LLbUVvzLty2y/6G1gaCtiIAILBoCEpR1vJS5wT5b/3cTgjIz7gIkYoi6pY9juY3TnMOZYqnFuarjlARlufto+8/jugQQ/U3/tlqmdqmXoGSAFgUlg3RKjdbvCCyT9J+spJ+VtqPnxhBgQFgw3GFRl3C/vknPK7VQMsJ7lFZKdjN/0FZ87QKLHHRkYwBpLyIgAi1DQIKyjpeqloKSIpK+TPxxp7icqVFEUFDSQqVWPgFaiRiFG451IUdlGFbL6p0G6iUo6ddGizX9KUuN09wxHHMHck/ipVqTE6C/7mQlHfjw1tNKyZyoCUR5Z9OM8n69z8yFiKUXR5hdAqKSbcV//NIihxzlXusfERABESgRkKAskajDsxOUn/kLyzz5oAWySVcCsRgoU/5IT0FJnzlOd88mKJkuKAZBSQuVWmUEvLAaBSaSUPtgkfGCZzWBOvUSlLy54CA/NScp/WeZyJw146uXwpXx01rlEXCuFshN6aroBINV9bXZ9lxpP9xcUC7/6k8t8qZjzIPALzUREAERKBGQoCyRqMNzbmCjrf8/77LMs49ayFOwbgz09G+rxHLEH3XmHsxCRMxsnzQXSU5B2Yl9qVVIAKKcAtKlFcJ0ZDDagbRCkYqtR0wonZhIKF1OdO1cR88bC/q3MVCr1Cd4w9IDtwo/+ln5ty1z7VHv14fARAqrSCes450u8rseJUErDQ5jdolh9DMG57B1/+3XLHbEiRZYtrw+OLRVERCBliQgQVnHy5Yb2GDrP3mOZZ57AkKPpRCLicYrsRxRUG5IQVDiebbGso5MZk1fTbUqCUBY+hDs4up/I7UQy+aV3XC9knHmodyAPJTFAbnsbcywAnsCp70pKHmjQQHJyji8cVF09wzQmngx/SkZpBNk5HckWvENzEynWGn6KvYzBoCxn7F1fuwLFjvqFAtttY37W/+IgAiIAAlIUNaxHxQF5dlOUFLosXIJfdwqsRxRUK6HoJxtupunwoTmKrdX24vq9eJGAEmoGaxDfzcPBPt8ryJzTyZHh1GhZENtD2pia6WACQpL5z8p63RdODdqo8yL6g/FLNbD8oyc/q7k12L6o60mwT6tkxSV9LzsOO+zFjvmVAurnvf0oLVUBNqUgARlHS+8BGUd4TZ400xGzWnvMNIK0WJJv7f5DPaZ5DhqeQ+5Rz0OmZZJZ6VEWpfoxM0E3SrUWpcA+1pH70qX/Nzrr00lHVZpYj8cG1hfERi6VlBU8sY2+u5PWsdxp1tk1z0r2pZWEgERWJwEJCjreF0lKOsIt+Gbhk0S1mWvL+iCJ5hWiFbL2Rr9JePwneRUYz7nskXO9vGK3oOeRKBW3voyWec3q9rdFWFsqpXov8v+Fe7scf6UtTi4XCbtBGViuL+izVFQMnVQGn06eNw51nny2dZxyBEVbUsriYAILE4CEpR1vK5TBWWxek11PpSa8q7jxZrvpulXSV+3QBgp+ViqkVHgSCIPqxJMlm4rBUxzcwDPZTPGcnfZTKomJRdnOkT61Y5gOjIK/0laJ2s3STrTHrW8vgTYx/wufVWI6auqnPrmjU0K9eSTuLHJJOMVHTozCTDvKW9e/IecYF2nvss6jz6xom1pJREQgcVJQIKyjtd1c0Hp0rlgwK80yrsPPpSccpotLEc+lHW8oFM2zelu+lbSp5JphphCpTQFnoeQzEFE5rJpyzPpOK5ZPRu37gZ6it0JUVvP/WnbjSHgD0aKdeajMdzAVJajkmIym065CjkZ3NzkKwwMo1sFBWUS/dm3xyHWdcb7revksxoDQnsRARFoCQISlHW8TE5QfgpR3s8+YQGYjUrR15UM+vNNbC5BWccLqk2LQIMJFIN0ogjSWQaLeBB7L8/+nMtmISYHLZ0YcTc4lR5+Er4VcUx501LpWbWzdZ39Ies5588q3ZzWEwERWIQEJCjreFFdYvNPn2eZpx5CYvOUBGUdWWvTIrAoCThLOPLXonoTp78DCAibb6M1kkFh8cENKPOehqG8cku5BOV8qetzItC+BCQo63jtF6L0oiyUdbyg2rQILAgBuDLAjzLc0eMSn9OHdz4tnUwgZRWtk2NllVqcbtubCMreVdZ17l9Yz3s/Ot1HtUwERKBNCUhQ1vHC5wb7bf3ffcQyTzxggUzClURkjshKp7yHEHjBH/bZclFSULJSjhKb1/HCatMisAAEgqzahEo6wXAx6Tnrfm9eEpRWSNbpzmOqm3knKSjLqds902lNFZQW6rCud3/Ulvz538z0cS0XARFoQwISlHW86E5Qfu6jlnnsfvOn40g6jjrLSG7uryBwgiKSaTsSuYILzJnpsBlNTl/NDpVenAmRlotAaxJg0BVqy4dQtcmHnKj0qfSikpN3IsqPYjIPH0cGg6WQTJ8R3bkapavavG5813v/0pZ89HOtyVFHLQIiUBcCEpR1wVrcaG540DZ8+dOWefgu8472uzrbrJYTqFBQxhFlSad4RnrP1LhtWii7sR81ERCBxUWAFkmmqHLWSWaMwGtmGmBZT/pMsjITTJLumcuq8ZucSi4zkUB/CDe1bBKUU+notQiIAAlIUNaxH1BQbvzq/7P0g7ebZ3ijBSH2eoOVCUomsHapO1ARJc0/ZmicTqegXCJBOQMhLRaBxUOAqao8sFJCUeJ/PPBcj8YsE/z9GYTbDZsEZT0oa5si0NoEJCjreP1yw0O28T/+0dL332I2sM5ZJpcFi8nNy90tNWQKA8YwrJR8nqkxqUgUgpL7URMBERCBWhDI4vdnHIJyABWZ2CQoa0FV2xCBxUVAgrKO1zMHP6a+73zNUndfZ4X1L7iE5iuDAQtWkNmcNklOO9FCwOTCszUKyuUSlLMh0nsiIAJlEJCgLAOWPioCbUpAgrKOFz43NmL9P/62pW6/0vIvPWVe7GtZyG9hRmeWuV8KSgbmDEBQ0lIwW+P2l2JqndPf5e5ntu3qPREQgfYksMmUt8dnXe/5OIJy/r49YeisRUAEpiUgQTktltoszMbH7MVf/sgKIca51wAAQABJREFUN11q/ufWOnG3FJbDMCyUlaQOoozsT2edL9NsR8hI72rKPM62bb0nAiLQfgTot00fymEE5Xg6l1rXOz9iPR/8ZPuB0BmLgAjMSECCckY01b+RScTt0csussC1F1nsyQecoOxBOp8IpqQDFUx784goKOP4YafFcqZWivSuNOflTNvVchEQgfYkMDUPpUovtmcf0FmLwFwEJCjnIlTF+1mUPXv25mvNc/kFFnzoDicoi/W8UUqtQkE5jClvCsrZUgcxz2U1OS+rOGWtKgIisAgJSFAuwouqUxKBGhOQoKwx0KmbyyaT9sIdN1nh0h9Z4P5bnaAMwzrZiQetlJW0EUw5UVDOljqIWjWEfHVLKkxRVMlxaR0REIHFS0CCcvFeW52ZCNSKgARlrUhOs51cOmWvPXifZS/6jnnuus59glPd3Zj2Zq7IShrF5BhSB80W6c1AHFop6a/JiHIF5lRCWuuIgAiUCDAQkEUV6Efp2+0g6zzj/db9trNLb+tZBERABJTYvJ59gPV0h158zsZ//O+WveFStyvoPKMfJYNmKmkUkqWKObOtTxFZTQDQbNvWeyIgAu1FwBVVmLiRDbzldOs85VzrPPyY9oKgsxUBEZiVgCyUs+Kp7k1WrkghddDIt//Zxq+4cHJjtFB2+VE2jeqyzEbfSVooOfU9W+OWO7Ef5qSs1F9ztu3rPREQgfYhwJmREfzupPGbFj7jPOs4/kyL7XNA+wDQmYqACMxJQIJyTkTVfAA1dWGlHPzWF23sNz82/OE2RjFJscdp6XIbUweNQUyWSqDNtD63TD9NBgFV6q8507a1XAREoL0I8AaWVbryuKGNffBvreOY0yy84y7tBUFnKwIiMCsBCcpZ8dTmzcHvfsVGISgLY4Nug50UlD7U9K4w0pu+TANIHzRb6iDuiOmDulHTu1J/zdqcvbYiAiLQygT4O8PsEsxBydb911+x2JEnWmD5Sve3/hEBERABEpCgbEA/GPrVj2z08p9Z/vm1bm8UeMwRyYo2lTROP7GmLut7z9ZopeyBoKQ1tHxb6Gxb1nsiIALtQoBWSYpJTnkbskcs+9IPLfKmY8wbCrULAp2nCIjAPAhIUM4DUrUfGbv3Dhu7+mJLXf1Lt6kIhCQFJf0bK2l0kB+CxYDl0ObQlM5Xs9Lp9UqOTeuIgAgsLgIp3LmOQlDGC7gtDYRtxb+db5GDjoS41G3q4rrSOhsRqI6ABGV1/Oa1dnagz+I3Xm5D3yjWvmWQDK2UFHqVtCQEJS0G/KGfS1AW98PAnMrEayXHp3VEQAQWDwEGAcZzOUv6w+ZZupWt+Nx/WHjNwYvnBHUmIiACNSEgQVkTjHNvJHHn9db3xU9YYXzUAvmcs05yOrqSVrIYMDccg3Rma6XAnEqtobNtW++JgAgsfgIMAORvTTbaaZ7t97bln/q8hfdcs/hPXGcoAiJQFgEJyrJwVf7h8Qfutr5vfdnyLzxq3lTcorBSMk9kJY1VchiYQ6vBXH6UtEyWrJSV7EvriIAItC8BzoD0IQCQsyKFrl7z7nGoLfvwX1t41z3bF4rOXAREYFoCEpTTYqn9wuSTj9rgxT+xzJ1XmQ1tdKl8llcoKDNQkQzMGZ2HoGSlHArKShOp156EtigCItAqBBiQs5GCEr85niUrzX/Qcbb0vR+20I67tsop6DhFQAQaRECCskGgM/0bbfTBey3xw69Y7qWnLYzJ6t6A3/wQfOW6tjMYhxaDIfhR5uZwovRh45zu5r7UREAERGC+BHL4naF7DQMAWVChsHIby57wblt1ypkW3Xq7+W5GnxMBEWgTAhKUDbrQuUzG0hCVQ1/7rGX+dI/5EyMIyilGevvKjJak1YDT3n34oeeP/myNYjUMQbkMghLaVU0EREAE5kWAMyFMaD6OZ/7O5Lfd2TLv+2vb6uDDLbZsxby2oQ+JgAi0DwEJygZe60IqaX3nf8uSt15p9uLjrlIO/Sg5LV1u44/9BkxF0Vo5V2NU+RIISiZSV6z3XLT0vgiIAAlwmrsfvzEUk/yV8e6yj4X+9qvWs/1OFox1CJIIiIAIbEJAgnITHPX9owAr5cht11vi8gssfe9NTtxRUNKCWK7Qo5Dkjz0tlXNFerPEI/Ne0peyknKP9aWirYuACDQbAQpIRnYzIKd0yxrc60Bb8q8/tmBXj3n9cqFptmum4xGBhSYgQdnIK5DPW3rdqzZywTct/rsLzQp5WA59zsexXKFH38kRTHknsM25rJReCEpaQZcg72Ul1tBGItK+REAEFp4ArZIsoDCA3xg2T7TLQgceacu/8N/mCYaQ07z8WZWFPysdgQiIQD0JSFDWk+4M2x46/xs2/IvvmMGPkgEzHXgwX2Q5jVZJBuawggWnpmZr/OmnqOyFeGW5xwpm2GfbvN4TARFYZAQ480FBWarf7dt+d4scdZr1fuiT5vFVlj93kSHS6YiACGxGQIJyMyCN+HPoNz+zkUt+bIXnH3HVy7rwA92FKWmKvnIarQiMwGQKodklZXGrDAKKYV/0qVQTAREQgZkIcLqbuW4pKvkjFT7uTOs480MW23t/lVycCZqWi0CbE5CgXIAO8NrtN9jg735lsdsud3uvtJoNRaSrsYsffVoU5mqcVqdwrbTk41zb1/siIAKLg8Aoyi3ytyWD0/FutbN1nvEB6zz1HPPFOhfHCeosREAEak5AgrLmSOfe4IZHH7ah6y610EXfdh+m0KOo5JR0uY2WBFoo+ZhPo5ikqCzXZ3M+29ZnREAEWp8Ab02HMfNBQZmHi0zwzW+DmHy3dRx2VOufnM5ABESgbgQkKOuGduYNj772io3ecpVlvvX5yQ+FMQ3NyjnlTnszICcOawJ9nea2UZpFJkoxxiAq1URABERgcwJZzHbw92SMkX+I5u780GcsdtRJFtpux80/qr9FQAREYJKABOUkisa9yCTHLXHX9Tb0ub+Y3Cmjr5fCQknLYbmishSNSZ/KuRq3z0AgRperiYAIiMBUAvwF4Q1qHGVdkwVU8QrHbMXXf2bhfQ+W7+RUUHotAiLwBgISlG9AUv8FBaT6ST2F2t4X/q9l77vF8qjtTaHHqWiKvXIr59B/sjTtPZeoZDhOCFZKTq9XUvax/nS0BxEQgYUgQDGZwW/TUAa/T0hp5tliOwsde6b1nP4uC6zadiEOSfsUARFoIQISlAt0sXLDgza+9iEb+cFXLfP0n8yXzyKlD0Vl+bkiGY9DUTmQReUcPM9lpwxAvHYHvC6FULnidYFwabciIAJ1JsB63WOY6o5jqjsXCFtwn0Os52Ofs9A2O5g3Gqvz3rV5ERCBVicgQbmAV7CQy9rGf/usJTH9bYPrnGVyabCYK7Lcw6K7U38maykIStb6nq1RRNISyjRCFJdqIiAC7U2AvxgM8GMic/f70bulRY442ZZ/+kvtDUZnLwIiMG8CEpTzRlWHD2J6afjmqy2Bqjnpe25wO1iGwBxGfJcbMkMrJXNSjs+rco5ZEEKS9b1VOacO11WbFIEWI1BymxmBhZLNt9M+Fjn2DFv6/o+22JnocEVABBaKgATlQpHnfmFJzPRvtJGff8fGfv0Ds1zGTXmz5na5Qo9Jg4rTVXPnpKRNkrnNl0JQso64bJS8GGoi0J4EOKHBFEFMZM5pb7bsQcdY6KRzbesTTm9PKDprERCBsglIUJaNrPYrjF1/mauck3nkDxaCB2TMV5ySLse/kcNACgPCCKIzxzn/PUejiCwGAZXvsznHpvW2CIhAixDgL0UpTZDLZUsXmHCHeSAmI297ty3fdY8WORMdpgiIwEITkKBc6CuA/adffdnid1xvo9/7Mgp0xy0MUUn/xnKth4zwZv44pv2YT5pz+k+yjngMgUDQsGoiIAJtRoCCsjSzQf9r8/nNv9Mai73jzyx27NssEAq1GRGdrgiIQKUEJCgrJVfD9QqwKqYee8g2fv3zVnj5SXjHj7p62/SnZE7KcrQec1LS0uBq8M5xjNwuUwhRVEYhYMvZzxyb1tsiIAItQGDzYD5PJGo9f/s1ixx0hPl7l6OMt34VWuAy6hBFoCkISFA2xWWAlfKFZ63/gu9Y5t7rrdD/2kReSh8CdDxllUlk5RyKSQbozD3xDYMEBgymK+pBXkq+1vDRJB1ChyECdSZAg2QaQXwDmNXI4A9P70oL7HOo9f7Zpyy4/U7m8QfqfATavAiIwGIiIEHZJFczvWGd9d14tWUv+6EVXnzKBc0EPd7JfJHzPUyKSPpSDmPam4PFfKe+uyEoKSzL8duc7zHpcyIgAs1FgL8TjOzmdHeCvxPegAV2289iZ3/EOg4+3HzdPc11wDoaERCBpicgQdkklyg9Nmp9Tz1uue9/2fJr74OnfNodGcsxMmdkOeUY6UuZxFwWA3RoeZjLUsmI7zCmvktJ1WWlbJJOocMQgToQ4O8BfyMmZzJw4+pZusoiR55kvR/5jHkjEfP4VJq1Dui1SRFY1AQkKJvk8rIcYy6TtsEfftOSt1xpefpSormgGQhKBuiU0zidNQpByUGDloi5GkUkrZQUr0p2PhctvS8CrUmAvwR0ixnDDAYTmWfo5BLutNAZH7COk8+22HY7mgc3l2oiIAIiUC4BCcpyidX588kn19rYlRdZ/OqLzeKDEHdFUUnrYbmN1knmlotDWM4jk5BFGKAzUU+83H3p8yIgAs1NoGSZHIF/dRK/DRSWhWAYfpOHWccZ77fom44yfzjc3CehoxMBEWhaAhKUTXhp4rddZ8OX/NgyD9xqnmwGaX3gSwlB6a8g4pIWSmeNgAV0ruaHeI1hqovildPgaiIgAouHAKe5mRpoEIKSYpLN09FlkXd/yjrfcqKFt99x8ZyszkQERKDhBCQoG4587h2m179qibtvtpFv/5MV4iMW8hQmUvtA6M29+iafoJWSaYSYn3I+jWUfKShDUJTSlPMhps+IQGsQKJZXLFbEwc+CyznpW7GVdX3uWxbZdW8LwHdSTQREQAQqJSBBWSm5Oq5XgFUy9cwT1v9f/2K5Zx4yz+igK8W4FHkpy03tQ0ME63v3M40Qp7jmOG5un2JyidIIzUFKb4tAaxGgzyTTibG8otOT2+5soaNOt+4z3mOBZSvlO9lal1NHKwJNR0CCsukuSfGAcsNDNnrv7Zb4Laa+H7vffOmEC5gp1vkuLwl5KTcl/aZopeDU10yNVkmKSgbnMAdmEK/LiTCfabtaLgIi0HgC/Kbn8X3n957uLwl4vuT9Icvvvp+F3nS09R52nAW33cG8IflONv7qaI8isLgISFA26fVk1Hc2lbSNP/qWJW++wnyvPO2EnatqA7FHK+J8GwcVWicpKGmloB8VrRQzNW6ZIjKCfVBYllsCcqbtarkIiEDjCPAbXkwhhohu/J6kCx7LhWMW3PdQKxx+goX3O9SWbL+6cQekPYmACCxqAhKUTX55n7/9Rkte9UuL3HK5O1IKPYrKHvg54mXZjT6VtFTQp3JmSVncLDdPQcnpb+63gt2VfXxaQQREoDYEnJjE930wky1mefAHzb/1jrbsi9+xwHarzRsI1mZH2ooIiIAIgIAEZZN3g9HXXrH4pRdY6mffnDxSijxGfQcqCJyhiGQlHfpUcsCZS1TSEtqJyG8G65RhFJ08Vr0QARFoPAHOSDAYbwT5Jl16IByCd4vtLHDQsbbsz/+P+Zcux6+/bhEbf2W0RxFYvAQkKJv82mZTKYvf8nsb/eV3EaCz1lXQocgrTn1Xlt6HA8woBhpaKkvpQ2bCwFRFxVrfDAia6VNaLgIi0EwE6DM5hvyz/J6Xmn+/N1sEpRW7WVoxEi0t1rMIiIAI1ISABGVNMNZ3I6lnn7Kx26618et+bfl1L5o3mXAij+l9KrFScojh1PcIpr1T8K2aLek5NaQfApZT7EE8lxtlXl8y2roIiMBUAiW/SReAgxvGFBKNeaJd5lm+0kJHnmwd7zjPwqjT7VVpxanY9FoERKAGBCQoawCxEZvIDvTZ4KW/tNQNl1juhccxTBSsC4MCp78pKitpHHQ4LZaEqIS+nLE5UQlLZamKTiUJ1mfcuN4QARGoCQFMPDg3lgS+z/xeZ/idjnSad+f9zX/imRY96DDr2nLrmuxLGxEBERCBzQlIUG5OpEn/LmQylu3fYCPXXmbjrPX9+H3OWsg0QhSVtB6W2ygiOeWdxgA01ddquu1w67RO0peyE5V7KCrL3+N0W9YyERCBagnQZ3IcX+g4priZwYHfa+8Ou1vosBOs88gTzAsh6evsMl8wVO2utL4IiIAITEtAgnJaLM27MPn0E67O99jF34c5Io08kYjEdjW4i/6UlYg8Dj5MJ8QSjWm8nq1RSFLAUlRq+ns2UnpPBBpDgN9Yfn8548Bn5zUJy2QEU9yd5/yFhXfc1TyBQGMORnsRARFoWwISlC146cdu/J0N/M+XrND3MkyMGedP2QkfxzCEZQWGSkeAFo4BRH5zumy26W9+mME5vQG/y4VJUakmAiKwMAQoJnP4wg7BH3pSTGJZYfXe1nXae6z37A8uzIFpryIgAm1HQIKyBS954uH7bOg3P7XsHVdaITHq6nuHICaZL7JSf0piGIV1g1NmDNSZrVFCdsB/MwYrZTkJ1mfbpt4TAREonwBTf9FfkrMLU4sVZM7+/6zr+DNtxR77lL9RrSECIiACFRCQoKwA2kKvkkaAztgj91viB/9uuZefMk8q4RKPd074U1YqKotT38XE5/SrnE1Wlqa+nf8m/SllqFzobqH9txEBllPMwjzJgDoXgAMrZSHabbZqtWUOONyWvAW+kzvtbsFYRxtR0amKgAgsJAEJyoWkX+G+c9msZQb7LHnjVZZAWcbMkw+bJxl31klOfdOnspKpb06fFYN0Cq48YxKWj6lWj80Pl8KVOSo51V7NdPvm29XfIiAC0xPgd5QuKePIMZmCqGT6L+ac9O26rwV328/8u66x3C57Wdc221mwo3P6jWipCIiACNSBgARlHaA2ZJMF5I8cT9rIby+wxLW/sewzj8BxKm+M+u6AqORUdKVGQw5anEpj5Df9sigyZ2osych9dWH6O+ipTMjOtG0tFwEReJ1A6XuZgoAchr+zu9nzogRrOGqxd37MYked7AJwXl9Dr0RABESgcQQkKBvHuvZ7ooVi43qLX3+pDX/336ACU+bBMqb2oT9ltVHYtH5wOo0J0GeWlKjghjNz6YSw3zAeaiIgArUn4Gpz4/vI4Dl+H/nwxLrNu3pfW/rxz1p4z33NA4GpJgIiIAILQUCCciGo13CfhUzakk+stdGrf22pG39r+eEBlyMyilBsBs6wyk01lkpaKFm+jYE6s4lKileWg2SgTkAOlTW8wtqUCBQJ8LvIGzw+Ss27zU7mf/cnrPfQoyyEajhqIiACIrBQBCQoF4p8DfebGxm28acetb4L/8cKjz9gvuF+Z53k9HcEwpICj1PTlbRSoI5z/If1k8EAMzVOfTNIh/vl/irb40xb13IRaD8CmCRw7iec3qagTGJBFnkdvCu3Md82O1hg7wMtfNI5Flm6wvwhJS1vvx6iMxaB5iEgQdk816KqI8mOJ+yV319quWsuMt9jf8QolJ0QlR4n8IIInKmkUT5SRCZQ8HscVkoGAHDqbbpGAcmKPc6fEvurdsp9un1omQi0CwF+z+h2wkhuVsHJFjxWiMTMvwXE5D6HWejQYyy8zwEW7kJ0t5oIiIAILDABCcoFvgC12n0Bg05mbMSGf/o/Nn7Vr6wwtMFtOghLIS2GXfCprKZxki2LQY3VOGbzqaSohKa0zirrjFdzrFpXBFqdAG/imFuSMwOcJeAtXCEQttCaw6z3r/7FfN095oG4ZAUcT4U3i63OSMcvAiLQXAQkKJvrelR1NBSVqSceQZDOZeZKM+Yz5sVgxKTn3Yj8Zpofir1KGwc1WkwoKsfwmMlSye1zmr00/V1pXsxKj1PriUArE+D3jN8xFhmgdbI0H+Df40CLHneG9Zz5fvP4/YjIqeLL3MqAdOwiIAJNSUCCsikvS+UHVchkLLn2fhv+xXct86d7LD8yaD4MSRGIStbfprirZhgqiUqWemP6ktl8Kjn9XawzLp/Kyq+o1mwnAvhKWRo3gaMT3y9304bvrnf51hZ565nW8da3W3in3doJic5VBESgRQhIULbIhSrnMHNjY5Z8/mkb+cFXLPP4g1aIj8ARMudSCTEBOSO/K/OoLB4Fp79pPeF0HCvqlCwo0x0jBewSWEcpLlX3ezpCWtbuBPj9gYbE96iYpJzfK/pM5gNB84QiZrFOCx54jHWecKbF9j+k3XHp/EVABJqUgARlk16Yqg4LIi+fTtnwU4/Z+BW/tOytV1lhtM8JOkZiM2dkFM+eKiKxaTlhoA6n5mZLKUThSlFJ6yjFrERlVVdWKy8yAhSTtPKP47vE6W1aJ/HS8h6feXfax3z7HWa+Aw617tW7WrB3mXlD4UVGQKcjAiKwWAhIUC6WK7n5eWBgSifiNvrAPZa44XLLX/sr9wkKOloLmTOS4rJSgceBkKKSUd98lIIHNj8M/l0SlQwOiiJYB5mM1ERABECA350Eyii6dEAUkvhOWTBsgf2OtMjhx1kQaYE8K7a0UGeneX3wm1QTAREQgSYlIEHZpBemVoc1PthvY/fcYuP/+2VEfm9EVE3KiUjW4O6amIquZl8Uloz+ZpAO0woxaGemRgtlMTcmfSqLFXZm+qyWi8BiJsBvCb8r/M4wmps3Z1zmiXWZb9udLXb6By164GEW3HKrxYxB5yYCIrCICEhQLqKLOdOppJ590gYu/L5l77/Z8v2vuRyVFHS9SCXEYJ1Kk55P3R8HxFGISgYTzKIpXfQ3y0IyL6YslVMJ6nW7EKBwzOFLwu8LXUaYFoi3V55w2Hyr97LQ0W+3npPOMP+S3nZBovMUARFYBAQkKBfBRZzrFArwp8z2b7TBC79rqbtvsPxrz7pVOOXtyiViKpr+lNU0DolJDI60VHKQnKlxL37sq4dilvud6YNaLgKLkAD9IxnINowbryxec4q7wO+eL2jht5xi0aNPtciaQ8yHZOUeuIeoiYAIiECrEJCgbJUrVe1xYuAaX/ugjTx0j8Xvv8N8991q3mzGgh7kqZzwp2QS9Ep9Knl4tLQwlVApUIeWSgrN6RqnvvkIS1ROh0fLFhmBAr4b9Jekr2QKr3nzxe9GtnuZ5bfbzXowvR3d52ALIfjGv3T5Ijt7nY4IiEA7EJCgbIerPOUcR9e9aqN/vMPyl5xv+ZefRgblUefPSP9GJiKvJlCHu+HUN0UlI1b5TD+x6UQlp7tf36d8KqdcIr1cRATQ/d2NFmtxU0S67wS/EB64fKza1gq77md2wJG27M3HWKin17xMWK4mAiIgAi1IQIKyBS9atYec2bDOhm+40pKX/8RyLz1VTIKHjTqrIdL70K+y2kaLDKe/GXDAVCgzNVbUkU/lTHS0vJUJsNdzepsWe34PnCOIm95GucRop0VPfa/FjsEU9257tfJp6thFQAREwBGQoGzDjsAclZn+Phv8ry9YClPfFh92FGg17EDkdzenoTnwVdlK1srBTG4yinXzTXIv9KlkxDl9KhWoszkh/d2KBHgPxVRaCQhKTnXzu8Dm6Vhi/p33se5zz7Pg6t3M17vcvBEkL1cTAREQgRYnIEHZ4hewosPH4JZH5ZzEbde5ut/JP9yEqe8R82A5p7xpqeT0dy2iv+lXOQrrzOvRrNMfcSmlUAwW0uql7PT70FIRaAQBBt6kaJWccPsolSf1dC210H5vthgq3kT2P9S8sQ7MfFc/G9CIc9I+REAERGAuAhKUcxFaxO/nU0lL3HWTjV3zG8s+/wRSCq0zz3jcApicc3W/6ecFdUdhWanI4zQf/Sin1iYu2mreCJYWym4IyiD2WwMD6Rt3oCUiUCcC7NMUjvSZpL8kp7hTBUxzI3rbE46Zp7PbWSY7jj3VOo87tU5Hoc2KgAiIwMIRkKBcOPZNsed8LmuZDett9OarLXnDZZZ7di3MK/FNAnUisFpWa60sRX+Pw3JDq+V0orIUqNOD6W8f9lmpiG0KsDqItiHAvsw+XQq6oc+wS/AP66One4V5t0XZxH0OQkqgkyy0w04WCIbaho1OVAREoH0ISFC2z7We/kwx+OUzacsNDdrGe2+35I2Xm+/ua91nKSI5Bc7pbzcFPv0W5rWUlkpacFhVh+KS/mW05ExtFJDcZxiPDlgqmc5IonIqIb1uNgL0jUxijnsE5RNpnWSPZl8voBZ3+K1nWeTgt1hox90wvY3SiYziDkc0zd1sF1HHIwIiUBMCEpQ1wbg4NsKUQqz7nf7tBZbf8KKrqMO8lBSV3bAaBmpgNXTWHIy8TOzMnHylYIWpBJnOmdPfFLHKUzmVjF43EwEKSJZOjENMjtNxcqJ5unotsOfB1nHqOy2CWtz+3mWlt/QsAiIgAouWgATlor20lZ3Y+CMP2OjVv7HUHVdbfnDDZO3vLlgMGTjDiGzoyqobfcw4EFNUTtcoKikmS76ctdjndPvRMhEolwB7LG+EGL1NSztFpTO20/e3q8cCu+5r0dM/YLF9D0L5xKXlbl6fFwEREIGWJCBB2ZKXrY4HjZExs+4V6/vBNy1z301W2Piy2xk1ZAdKwTECPFSD3D70ORuDlXIEwnJ6SYnpb+wzBBHLPJW0jqqJQDMQoH8khSQf7MeTzR+y4CHHWvTkc6zriOMmSieq307y0QsREIFFTUCCclFf3spOjrW/0y+/YGPPPm7Je26x3G3XWCE+aD5ErbI8YxjijlPStFbi/4oah+GiPyUtPEVrzyaDM97npulTGYWopJANQshWuLuKjlEriUCJAPsrk5RzapvR27gPKuZWDXdYfsvtLbnfYbZs1z0stgMCcFZtC8tkL9ZQby3x07MIiMDiJyBBufivccVnmBwessTaB2z8hissd8fvrTA2bF4MphSSJR/HYBWWQw7SDNRJ4wUH61KULJdPbdxfKTdmNfubuk29FoH5EGBf5I1OikISfZQBZfy7gD7p6YCv5D6HmP/AIyy3+xrr3npbCyE9kMonzoesPiMCIrDYCEhQLrYrWuPzSY2O2NhTj1rqJ9+03FMPW35kwJVqZLAO/Sop9Pi62sbI2AR8Kodh+slh0N5cVLJEI4N0GP3N/VW/x2qPWOsvdgLohi4TAevSJ9AvmZXA9Uuk/fEiSXlgl/0sehIiuQ872gKI3lYTAREQgXYmIEHZzld/HufOmtz5ZNKSzzxhoz/9L0vddT3m+tJuTVoLKSg78Kg2TyU3WApyGJtIwbL54VFURjDt3YmIc1ot1USgXgR4g8OcqXH4+dIqyb9LzbtqBwseeZotOf1cC2y5jXn8fsxuqz+W+OhZBESgPQlIULbndS/vrGGhySUSNv7gPZZAnsrx63+LueoMgmYKTtjRp5IBO348VzOs0iJEUcmUQkwOXSpZVzpYbptCspQXU9PfJTJ6riUBTmkz+wDFZLEfYusUjIGIhQ87ziJvPsFCu+1rgVVbmzcUruWutS0REAERaFkCEpQte+kaf+BZ+FSmHn/Ixm++0pKP3Gf5dchVmRh1U9BRWA6ZVogir5opcIpK1v1OYVDPQMgyonaqdYhnTUsla35HJvbXeBLa42IjgO7mgmyYTpJBNwwUYz3ugs9vnmiXeZZvad4d97SOt5xksTXwm3RBN4uNgs5HBERABConIEFZObu2XLMAkZcdGbLhS36KXJXXogb4oxiBx51lkoKSU+AM2IGurKrRX41BOoyqLVkrMdZPNgpX7qdzYrq9yt1Nblcv2osA+1SxghO6MURkGmKSVvIMblo8sS7z9W5hvq1Xm2/XNeY74q0WY+BNNNZekHS2IiACIjAPAhKU84Ckj2xKgKKyMJ6w4d9dbGNXX2z5J+93H6Coo9DrwvQ3k5JXIypL4pEJpIczxQToU9MKcV/FaHP5VG56dfRXOQTYv+IIuBmhNZL/lTpetNP8h59i3Se83cK772OeQBBJUUPILQmLJae/1URABERABDYhIEG5CQ79UQ6BzCsvWOL+u22MaYUevRe5KpFWCGOtC56BtZIWxGr9HDm+01I5An+2zavqcFjn9Dp9OFWmsZwrp8+SAAPOxtC3mKCc1slS867Y2gJrDrfOU8618M67m697SektPYuACIiACMxAQIJyBjBaPD8CmY3rLXHf3TZ+yxWWeewBy/e96tIKMQF6KVdltTXAnRUJg77zrZwy8JeOsFT7m9PtITxkPyqR0fN0BCgdae1Ow52CgpI5UEt+up6lW1hovyMsesJZFtvvYPNGotNtQstEQAREQAQ2IyBBuRkQ/Vk+gUI2a2P33mFxTH+n7rnRbGzIiUo/lB1FZRceLndkFUqPwRJM48IIcDc5ib9ftynBUonDpg9nD8o0Vruv8glojVYgwP5Cf0n2JVq7R9GXcrj9KGA624M8kh5EbPv3Psxix5xqXUef2AqnpGMUAREQgaYhIEHZNJeihQ8Eg3Q+lbSRtQ/a6C2/t/xVv0KEQ9w8+awTdyFMSTMhOetyV6EpXRQuLUsM1GGyaQZPTBWV9KmkqOzEvqqdam/hq6FDn4YADdvMGpDAo1jtpiguC6EO863ew4KoduNfc7BFtt7eQr3LzKvAm2koapEIiIAIzExAgnJmNnqnTAJppBVKv/K85R57yOI3/96yzzxiNtzn/CqDEHquBjieOQVeaaOAZA1wV70EFsupfpXcKq2TFLC0jFJcIpuRWpsT4E0IRSSDb5g9gC4ULJ2IGokWPPEcixx8lIV32AWpgbawAIRkO5dOpF9panzcBtevt/51r9noQP9k7/F48H0K+C3W1WWdSJvU1bvUupYuVZDSJCG9EIH2JiBB2d7Xv+ZnX2CVm+Q4BOXVNn73jZZe+0fLb3ip6FdJoQeRR7HHwJ0qdKUTBpwCH2WpRgqEKWdCDUkxyUAd7ov7ka6cAqhNXrJPMI8pbz6SsGqP49m1cMx88JUM7rKXhU9/r4X33N+CbW6RTIyNQjwO2shAH54HrO/VV/B41Yb7+yZ7ixffKb8/YNHubojJXutZttyWrFxpPctXWPeyZRCa3ZOf1QsREIH2IyBB2X7XvGFnHL//Hhu9+hJLXX8xSuCkICrzTtxR7HWhfCKnpasRerQ2jcEPLgGxsLmo5ElStC6BTyWto7JUNuyyN8WOOMXNPjGCGw4KylLKKU84at6tdrTQgUdZz3s+bH5EcLvSiU1x1I0/CFoks5m0vfTkk/b0gw/YMw8/hEmFjZbLZszjhT8yykpOTZPkSrHmcdOIG0d+dwNIpbTLAQfZbgcebNvtvrsF4I9KC+/UdRp/VtqjCIjAQhCQoFwI6m2yzzxyVSYffcgGzv+m5Z9+yApjg+7MaTFkqUZGZVfj60gLFEVDAqKh5Bs3FS0HPPpVMlCHlspqxOvU7ep1cxOgHZJVboaQvzQ7kVuywKsPgRQ67kyLHXGiRfY54P9n7z3A47zOY+FBb4veQfRGsIC9d1ISSYmkZNmSLFm2XGRbtuPYybWT3Dj1Jk7yp/3JdeI4tuMiyZYtieqk2DvBBoAECQIEQILovQOLxaLfeQ+4MEShLJYAuQuc8wja9pXzzVk+3+xbZuASwHQtv4dkP/Z9QdM4u17+0CvMzkb+hXOovFmEHmYX+tlk5+bhxahjBKKSKJvkTpLIH2UDQsx7etBaV4XmukoYWxpJOlkb7eWFoIhIxKTMReqy5QiLiYWXwTCNs9aH1ghoBOwRAU0o7XFVZtCc+lqbYWSkspvp7978y+hnjSV6THDnPVwkfrzILqWmUnVm23jdktaUGrluSW3y8e5opcX7W2o45Tx6zEwElOMNf2VYvgciMyXDyYep2KgEOC1eDf+12+CdMh+uwaEzEwQrr8rU0Y7m2lrUlNzGrWs5aG+SH3v8kRcQCENACGskQ5jWDmONZBh5+B3SzR9v/YxMmo3tdFxtU489dMnqaGmAqb2Fkc5u+Ab4qTR4aHQMIuLiEEK/c1c3NytnpTfTCGgEHBkBTSgdefUcYO7KqpEpte5r2aynvILewmvouXUdg021cOnpUhFKiVJKI42kqG0lfEImxKJRopXiw2xJcQpEzvyTDnPxG5f0t0QteTo9ZggCXG71I0L0JOU7ID8uerjqgy5ucEuYC9fYFDin0u1m9Wb4RcWw8Wb2aktKyrrHbEZp/nWUXM9FVXExTEYjQuckIjw2Gb4k2n6MTBr8gxh59BkzdS3HkbR4D7MQrY01aKquQFNNOesv69Ft6oC3r4HRzUSkLF1GUjkHXj46YjlD/rnpy9AIjImAJpRjQqM/mA4Eemur0fzGL9GTsR8D1SXUbhmKIkmzjg/lfiSaaCvXkxS4EMsWpjqFVMrzkUPIqs+d89yr2PrI4+rnDxYBkY8StxvRlVQrLlFod9ZKBkfB78XvwHvFerixgUQPKiT09qKhqhKn396Lm1eyGT10R0zaYqSv34FoNindyxCC2dZUj/xzR1BGk4Nuk1ERyiWbtyI6JVXVY97L8fW+GgGNgH0joAmlfa/PjJvdIKOVfewcbf3NT9CVcQiDNSSVHBIxlGYdAwml+IDfC6kUWSEhGPI3MlIpx3Qm2ZDUt9RvSl2lHo6LgJBHWesOpmEtjVnqarx84bFwFfy/8G24xSbChd3HTuxOnu1DaiBFBujEG6+T8OWho7UFHt4GrH/ic4hJTYcPo5L3MixRS2NrE0qvS13mcdZcdiE2LQ3zV69F2spV93J4va9GQCNg5whoQmnnCzRTp9dxSZx19qL7xHvUdulSskISQRSyJx3g9xJBFKIhItYigC5SMdINTt4xPCTlLWTSl3+uPJ+t5HX4gPrJfUdAllNqZS1d/rLGalBb0mXpeniy+SZo5yfYcUwiyR8qetBpiqnt6tu3cPhXr6C1vl5JJUXEp2LljqcQGBbFCOLUkG4hro2VJSi6fBaFmafh7umB2LlpWLB2PTvB56smHr0eGgGNwMxDQBPKmbemDnFFPZ2d6Lp4EqYDb6KrthzO0jHKYn+XPjOJ3pCkkBA/IZkSvZzssBAO0aqU6JXU1o1MgYvXuEWnUtdUThbdB7e9/DAQ600hk5Lqbuf69juTCDHS5uwfDGc2krjROtFr004YwiIe3ETt8MyNNdUoyLyESwf3M/Xdj/C4FMxduYkkb4mql5zKKXebOllTWYarpz5k808lG3ucEB4TgxWPbOd543VN5VSCrY+lEbATBDShtJOFmI3TEC27rpYmVFw4A7eMo3C7kY3Bxgo4kSxIg46kwL3uNNLYQiotmKr0t2rWGarXtLwv2pQiXyTRSiGY/E8PO0ZAfiT0kEBKJ79oS0rzjTjeOAWEwyVpITxWb4H7qo3wZGfxbBcqH20Zy27k49KhD1GSd50RyWikLN/AqOHDqot7OnQj5d+3sa0ZNxmpvJ2byahoNZKXLMHybQ8jft6CWS3XNNr66Pc0Ao6OgCaUjr6Cjjx/EkfRvOtub4UT/7qzzqJj3+sYKLsBZ0qQyE3OVZG+obpKiSTaMhigVLWUZpKRdt7kJMolQ45miYAKeRUPcHlt21nUIfX/pgkBZZ/I9TPyr+9OlHKAXdzOc1Lg+xjtE9dsgTNrJZ19+efuMaQvOU1zcdTD5l88j+O//Q3MtFZcvOkxpCxbD9+g0DE7ue/1OpUIen+fkhiqK7tF0fQL7AYvxeKNG9kEtFE57NzrOfT+GgGNgP0goAml/azFrJ+JufQWOk4egnn/rzHQUMVCSJJKoiKSQgbWVUonuK2RSuGQolcp0UrlnMLnI+OVEhGVFLhBk0q7+x7KDwBZMyN/DIiFovo9wFpJJ6a4Pfe8AN+HdsErOc3u5m1PEzKbTLh25hROsbs7OCoOS7bsZrPMYpaXUmPyPgzRrawpKUDWobeocemnGnSk+/tuJ577MBV9Co2ARmCaENCEcpqA1YedPAJ93d3orqlE5+v/gx5GM/pry8gkTIpUCtkbctax3ZtbiMhIZx2pwVPk5M5UJQUe6OaqGoMkUqnHg0dASH8PSWQn7f7kxwCD2vT784RLSCTc5i+Hz2e/Ac+4JLjSAlCPsREQb+6c0ydx5cQJzGeaO3XpOhLL2LF3mIZPzJQROvP2L1BbWojw6GhseeZZBNNhR+wb9dAIaAQcHwFNKB1/DWfUFQwyCtVv7EDbW6/CdPQdpr/z1fUJvRMBdD/WPIqskK2RSjmYNOeIi0or6yqFYFqGnEOO7ccopaTA9XiwCMjKSFS5lfqSUq5gWSmnsDh4M8IW8PlvwsXXl+lt1wc7UQc4u3h0Xz17CqV5+Vj/+AuYkzwf3n4B93Xmvd1m3Mg8iaKsM9SobEfK4qVYs2sPU99aI/S+LoQ+mUZgmhDQhHKagNWHtREBErxBRqP6KIDeebsI7bRrxNkj1KsshXNXh5L5kfS0pL8lFS6yP7YMISqSRhVpIekAtxBLiVKKq87I49t2BltmpfcRBCwd3NJ8I403SvaJUUmG1DCwcTv8Fy6HgfaJboywzXYvbmu/MVlHD+P6uQxqT7Zj+2e/hcCIOUrU3Nr9p2I7adJpaahGzol9KOe/aw9vLyzd+hCjpcsRyoilHhoBjYBjI6AJpWOv34yefU+nEabqSvRfOY/u0wfQyy5wmDuVlaJEK6U724cRS+GUkyV9Eu2yEBdJfQtxEYIpQ9LdbjygEFfxG1fEVafAFTbT/T9ZF4kei9yTrIkSpmednyu7uN237IHzyg0wxCbAg803eliPQMb77zI6eInReRds/9y3lFe3VZ3d/LHV2lSH9sZaenY30Wqxk/7e4fAPCYeBft/j2TPePTslfE5jg9vXs1CUfRaVhVcRkZCour7TVq2Gh6fX3bvo1xoBjYADIaAJpQMt1mycqtyE+lhHadz3BrqOvIu+skIMMlIJRjtUCpzNOkL47qU7m0FKRWDEcUUil5bUquAtQuvSEHQvlpCzcd1suWZCTwI5gDaWIkiKe0BIvKs7XMLmwPOhJ2B49iUSST84TUM5wlBHMhUA+B0Qe8LeHjo69XSzZpPfB85LPOnFWlBe3z2c+aPG1W1IFFyaXJz5fXGlSLgL33Nz5+MUCYbffd7JvD7z7tsUGr/CeXpj63MvKa/uifaXFLXI/pST+FXdzFNi5cbWZkQmpCIyMY1kcC4iqGXp7kmbS2Jg7TAZ21CSm4UL+15DT3cXllFGaOX2HQiJnGPtIfR2GgGNgB0ioAmlHS6KntJdCPAm3k/R866r2Wh7+xX0513AoLFVbSTRSamrFMIn7jq2DuEJvSQzTRR8vptUih2kkEohrnpMDwJC08TdSHzYh0To+QbJpFNgJPw++3X4bNoB19CIaZO46SeR7Gxrg6m9DS10kamvKEd9ZYUilwMibUWpndbGevSTbI4cQiA9DQYEsblEhqeXN6N/gQgIC1OyOCFRc+yiRvB3hNKLhPJrExJKcbtpoNtN9uG3icNtJgY6VCmKEGq5Zif+mwgIjVIuO+K24z2JiLEco67sJrKPvYva24X0Ek+ljNEWzFuxeiS0+rlGQCPgYAhoQulgCzZbp6uadXiz7y0vRueFE+g+fwR9N3MVHCo1TbInKXAhlrYOadaRTmLROpQ0uGWI/qU3iysDSCqtShNadtSPViEgEeJuEhiV6uajkHvmVeGanA7DY0/DM3053MKj4OTmbtXxJtqon9qI3SYhiA3URaxW5LGJLjISgVTRSaoNiMxON/8G+SNjkN8FIZy9ErHk/EYO+T6I9I27J2s8OZzZICTRSnkt3cseXl7w9PGBDxtggqOi6BYTCyGZ8t79/C4JoSzIzGR01w3bX/g2DAHBIy/jY88721ro952Dix/+htfnjpA5cRDiGBAaCfHqrikpRGN1GTzpULR02+OITlmgIpUfO9AYb7Q31avUd+7pD0m+Q5Qu5bKtD42xtX5bI6ARcAQENKF0hFXScxxGQIilubgQxozDMJ87ioFb7AKnXqULVSUlgjgkLWRbClx4jNTsSf2eNITI8747xFKinxKplEchsFpWaHhJbH4ieEsdq/JcVySeaWVZg/BYeCxcCT/K23iv2wIXA9Pck0ipyoRUqlpIKhUDxMNaCGIviWIXX5v5Wt7vaGlRntZNtTVob2qEK9fXw8Md7u7ucCMpdOZau5PEuoxz7gESTpUmZye6RPV6Gc3sYbrcbGbKnN9VmYcLSaYXu9EDQsOUTE5geDi8DL4km57881bk0otRTm+m84WACkGd6nHxwH7kXTiPrk4zdnz+DxQxHC9NLYSx7MYV1FOQPCQ6Qdk0hvLRj3WTnTQhkOilIpVVJYhKmo+YuYsQFpNo9bR7zCT0dM65eOB1Rn27kJS+CJufetrq/fWGGgGNgP0hoAml/a2JnpEVCBgrStCZmYH+Q28rvcqB9iY495hV17cQP+nUttWjW0iOdBarLmMSnV4yH4lekkeq7m/pAJf6Tekw10lwKxZrlE1+RyYH0MGaScGboT263QSid80OipXvQeiaTaPsOfFbEknsMnYyhd2C5rpa9dfW2AhTW7t63tHSrMill5cHvBhJ9CCBFBLp5ekOP18DfA0+8PL2JsF0gY+Pt/psrLNK5FIIZDfJap/IG5nNaOe529o60MkoqHzWJySTqfKurm5FOKWFzI3E1YfOPn7BwfCnbE5QRISqIQwICVXk09Pbh/WX7pOqTRxrjvJ+3vkMXDt7GrVlFdj67NcQHptE8uoz6i4Shb15JQP1zAYIWZTIpJeQ+hG1q7KN6ErWlhapv6CIaKQu2/CRbUY9+Ig3+9igk3NyH6qKcmkFGYzdX3lJken7GbkdMR39VCOgEbhHBDShvEcA9e4PBoFBpi0HeLNmqAnNe1+F+ewBDNy+rgieED/RkRRiKbqStpA+ITzCcUT9UAiPpMKFaMqxyCMVYQ1ykw5zTSpt+QZImlu66lt6uY58Lng7sybPc8/nYdi0HR5xicpC0ZZjV90uRsGliyRQp1T0cIBrN0ApKokWSjRRyJBBJGsWpWHRwvlISU5EVGQEiaNEJUXjlGsqX6I7j+MSHB5T5i7HlqtQ5+AFyWNdXT0aGpv42ICyikrk5N5AdW0DyWWfOr6TE7+b/H6qc5K8SsTQQJIZHp+AhWvXITI+ET7+U9PNXldehqsUNr92NoMp6j1IWLhCRSnvxlfm3UMlhZLr2eiiu036xp0qwjqSTFr2kXIAsU69zmyBG+0uk5asVSR1XLwsOwtaXIfGmnJcPbmfUeMGPPqFL3NOoVrofARG+qlGwJEQ0ITSkVZLz/XjCPAG2F1ajK7L59B1/ih6Lp1gHrWPKWkKoZMQePGJ1Fba6gMuNEHq+1RtJYmlZUja25c1lXJ8W49tOdZse5SmJ0u9pEgDyXBNWgCP9dtheORJuEdGw5mp4MkMU0cHayHLUFVczFTsbUbXylQ00nIMHxLIpLgYzJ2biDlRkQgOCuRfAIICA+Dv5wdvfi7EbipHF6OVErE0d7FbutOEmtp6lDJCWFxSpp5X1tSjg9HMkUPqLyU9HhoVjeQlS0n80hE65941Gru7TMg5dQIn977JJpjFWESiGJU4b+Sp1XMh3rVsmGlrqCWx80Ty4jUf2+buN27lnOfvujZFUOcwoml1V7uQV3aSZx3ei5rbeez03snzLWF95/0VXL/7evRrjYBGwDYENKG0DTe9l50h0EPLRlPmWRj3/hwD1bcpLWRU0URJTQvxE/kfW+seJd0txKedhLJHaubIgSRK6c4Ikz+jlFK7yZd6TICAUEepSRUyaSJJtzQ+ucSnwWvDTnhv3Q3PlHlW10tKNM1MrdLGqmrUlElNn5DJEtZDNinJHw9GHEODhTgGIjIiDPNSk5A2NxlRURFMaxuGopATzHkqP+5l2ru+oQnl5ZWorW9ARVUNI5fVqOT86xubVcpcnY8/VkR2KJIajTGpcxmpTEBQJLvdg0PgxWYeW4ekvI/86lW4s5Fm9aPPIGnR6o+lqAf4Y6yEouMSyfWn3qQ1dZF1TI1LeryH8l7pG3awOWdyepJZR95GCa1WY9LSsGbnYyr9b+s16v00AhqBB4eAJpQPDnt95ilGoLemCi379zL9vR8DVbfhxLo2Vvyrzm9p1pE0OO/VNpE/IZE9JEFDpHIopSkEyV9FKYcioLYee4phsMvDWcikNDx18E8Jlos+I2vzfJ74Iny2PAav1PkTzl1I5FA3dp+qgxR5n2tnTqMkLxe9jMK5cj2kocabDS/Bgf5YvDANC9JSkJAQh5CQYDbdeEx5JHLCSY+xQReliAoKb+HkmfPIvpqvophSbynEU9LiUp8p0T6J2KWtXE0CuJgEL4alpmwasqG+siArEyff/C1lkeqw5rHnkLZ6q2oKGjk9IZSl7O4WUhjIjm4f/6CRH4/63MTUeBlJqNRTrtn1HJuMaIcp/xisHNdoWlCYfYaSS+7Y8cIXqG0Zb+WeejONgEbAnhDQhNKeVkPP5Z4QGKTsSy+lhaoyjqPv4il45GVhsLECTiSCEkWUZhrPOylqqZOb7LCQImnW6eIxRXxbRSp5XDm2SAvpmsrRUZVopJDJdv4JKRyU+sE5CXCmr3TQ+ofgFUUbRZKk8cYQmexDbXkpdQxLKbRdjapbRbTzq4fzQB+jkQGIjAxHYnwskvgXGz0HBl9K9rDBxosEU4imEJ3JkJ3x5nOvn8n1SNOOpMMlcllbW4dyXlNxaQVuFfP6mpph7u5RUUSRIQqOiKKYeAIlepIRmzYfvv6Bk2raKc2/jgvs9i67kc90+jqkrdrMKGjaRy5DUt51ZcVKlF2khbxJ+CcaUgtZwn9rpXnZWLTpMeWi4+Y+JKM00b7yeWHmady4eAKtDZV45g//iNeXas1uehuNgEbAzhDQhNLOFkRP594QkJubsb4GA/QCd6pgbeW1S+hh9AP1VXBl04QLGaAHSYU069giVC6k0mLZKKlbIZcyyCWVnJA0Akma3RbCqg40A/8nDTidjLZ1qpIBvnCmbuPitfDcsgvuJDWeYRFwmSBNau7shGhFFmZnUv+wip7Urejme/10Wlk4Nwnz05IRxgikdGUH+PsN1UcGBSnJH9X0oqLTk/8RcT+WQ4hlN4mlqbOLNZVGtLAbvb6+EVeuXse1vAKSzBo1DSGVIi1kYN1nUFi4IpWxc+chiDJEKvQ+wWQrbxYh+/gR2h5mkfRFYe6KjarpZuRuMhcRMe82dSoiKxaL1gzRpJQIpbdvAMLYQW6wIrJpOe6tnAsklMdZR3kDu7/8EiWEFqs6Usvn+lEjoBFwDAQ0oXSMddKztAGBftbXdRVeh/GtX6InJwODrQ3qKNJQIwLoBldnVVdpC80QHinNOm2UipHom9BKOY4vjzmkhTm1DR42XP4D30UwEZwkMilNTcorndiLYLnPzmfg89DjcKNMzkRkSEXNysuRf/E8O4rPUAexHU4kPt7enpjPmsgtG9dg8YI0GCj3I0MJjTPaKelte4lGqolZ+T9L5DL/RhGuXMtDXsEtlLHuspVEs7tnyKlHmneikpKRunQ5UpevoDtPkEqDj3eKWkZ1c8+dxtVTp9hi7YQUyvxs/OQXRt1FhMd7KcMVHBk76ud3vykktLWhRjX0xLLpJyjc+kai2/zRl88IpXh7P/yZz1F+SDrQ+b3QQyOgEXAoBDShdKjl0pO1BYHWD95EJztJ+3LOkuGIdDYbahhFlGiij8i12MIoeQxyGrTSKlDS30pHUY5LwiQ2jUJWbTysTG9GDIlMSt2p2CkqfCjw7cSGEMPz31ZWiiINNN4QYiXNIdLBXZB1CRc+3Ecx8mb1I8DX4I2YORF45sldSEyIVWltOZYQSCGS7vwbT5B8vPPa02cm1llWsXnn3Q8OKtmhGkYue1lfaRkikr7ikR2YSxLmHxzysSYby3byKALuhZcz6aH9gcI0ZQ9TCPUAAEAASURBVOk6PPT8792pKf3ot7W9uYE1qkIoY0YeYsznsk7GlkZcP3eE6fQ1jFImj7nt3R/czs1UKe+KghxNKO8GR7/WCDgQAppQOtBi6anahkBvcyOMB99Cx2v/jcG2ekUqhURKpDLAjelXPtpKKqVr2WLXKI0mcluWCKUfu79FTuijt2nb5u+Ie4nAkkQm20gmBReJVrqwZtJj+zPwe2g33GnlN1HNZB/TwJLmvnLiGIpzr6G9uUk1qsxPScCqZYuwcvlihAQHKXcbSWsrMimWh4zeCZl0xOjk3Wut3HdIINsYlT199gKOnsxQEUvLdqL/KOLom558CvELFlIsfeyaR7GaLL6Wg9Nv7WWUtw1x85dh/SdegC9rJe+W+lE2kySJ7tbKN3GNja3NuEx/7lSm0kUM3dpRyoaegosnWYOZpQmltaDp7TQCdoiAJpR2uCh6SlOLgNRV9tJCrouNOsbj+9FfVoBBY6sikdL5LQRQnHWkDnKyQ4iS6CoKeRIPcKmvFCIp2pcSAZ2NbjqCiTQsCR5SZyrDyT8UHkyx+n/pD+EeFQPnCWom20h+KoqKcOvqFUjtXyfJig9tCVevXIKF7NpOSoxFJKNzQ/WRlIQigXSlZaF0P88UMqmAG/E/SXtnZufg8LHTKGNdpYn6lkKaxT88JjVV6VYmsv5QvMJH09QUEllRVIiDL/+C5K+FNZhLsPbx5xnZjFD+4yNOpUTHZR1HO87I7UY+l7T3rasXMSdpHgLD54z8aNznJdezGKE8ifIblzWhHBcp/aFGwL4R0ITSvtdHz24KEejnTbT96Ads1LmAvlt5GKxlBzjrxLxY7igEUCKVQion26ktN16JVAqBEiKlIpU8lq8ck39uPKZoYNrAV6fw6u/PoSwE28jaUiGT/XLdPgFwWbAS3mzCCXz80+NORCJyrezaLsvPY5o7kx3JefC8oyeZxNT2zoc3I5qpbm+SSxni4CIWiVJTOOS/PRSpHPckDvqhyAjVUhz93MVM5ObfRFVNHZpbWvnXpgigOOykLFlGoiiELlxFKyWCaRndTJ+LXuf7P/qhivZGp6ZjFfUoQyJj4TpiO8v2k30UK8VWCqIbAoLgydIGa4euobQWKb2dRsC+EdCE0r7XR89uGhBo4U3VdPoQBva/zm7wYoYYexTh8yT58Wbto3R/2yKCzuAkdSqHiFQPXwiBlMinNACJpJAtx5yGy5/WQ0qEVrQ6JWKr2kfcPOCatgoeu56B98aH4e0/uguKpV6y29ylUtwFly6hjvJAbixJSKaG5Orli7B+9XIE0d3GUhsp0TmJSnowzS2PMyHFbc3iCFbVJJO57AC/mH0VlzKvoJPRSiGcbqwdFXmhxZu3sFt60R2R8KGfMr0sIaivLMdbP/h3ir83UoIoFYu37EZMykLqTk7OmciaeVq7TTGbckQ2qLLwGrZ/9gU2Cy1X9aDW7q+30whoBOwDAU0o7WMd9CzuIwJ9FDzvbaxH1/XL6Pzv72OgkRJDbNaRyKQr773irONNUmkLQZH0t5E3dvH/VilDHk8cdYRUSmrd1lrN+wiPzaeSyKxEaEVrUiK21KaBS9oKBD77ItxTF8DZ139M3cQuo5EEkn7TZ06hml7cPR3tCAn0w/ZtG5CcGI+w0GDVxS3RSFkX+RPvay9GKoVgTiY1a/MF2tGOPez2FmH0ampXXsrKwYGjp1BVXUdcGLFlRDcwLAzp6zdixcM7+Npd4SVEtKWuFq/9098zktigGmfSN+1E/LylyoP7QV1e0eWzyD9/TMkOffp//THi5y9QnfoPaj76vBoBjYBtCGhCaRtuei8HR2BAHEnYlWo+sR+mkx+ip+gau0g6IGI/olEp5E/S4EOxHesvVkik8v4moZSUr1QQSmRSop6Bdxp1rD+a42wpkUnR5JRUt/LnJpl0T18Nw57n4bV4BVyonzjWEDJZKinuzIsoK7iBXkYpU+KjsXHdSixdtIB+2/5wHyF6LmTSIg1kSXOPdeyZ/r7Z3E1f8Dq8t++wilZWVteqS7bICs2jw474gUvjjju9uaWc4Ff/8H31KHWO0uk9fy0jxyT7D2qIsPn180fQUHEbn/3ff65S9g9qLvq8GgGNgO0IaEJpO3Z6T0dHgCSo32yG8cBemI5/gN6buRg0tdN1pV/ZNIr0j0WkfDLEUoJzkvJuZ4ezPIoXuJDKAEmnk6RK085MGkKiP9KEI8LlSzbAe8en4L/76TEvVSJm/ST2Ypso+pJFl7NZfdCDqIhQbN24Fo9t3wIDhcpHRopHkkkhmSM/G/NEs+CD7CtXcersRZzPzKHrTiMG+CWU9HdgKD3MV6+h/E8UXW980UUx+KO/eZU1lM1KfFwac5Zs3QPfoNAHFuXNv3AM+ReOs/GqEU//wXe0U84s+L7qS5yZCGhCOTPXVV/VJBAYYETMlHUOrb/+CfpvXWak0qhEJiVaGeTuSnI5+fpHIVmS/m5lxE7qCYVCCpH0J6mUyOdMcdKR65TopOhxSkRWLBXh5YeAL/8RDI8/B5dxZGf66Fkt3cYHX/45/aPzaLvepwjirkc2YfP61UhNSeTRRwyJTDK9rXQmNZkcAczQ08KiWzhOWaF3PjyKbkYu5YfMyOFJC0qJRPawEa2bdo9etFWMSVuEuSu3UEg8khFMNjoN/9a5q4lMvT/04dDT4Q1HnsKm5zkn9+Mm094Gf4Pq8g6PtU5M3aaT6Z00AhqBaUNAE8ppg1Yf2FEQEFmhgY42dJffRu2BdzCYeQKu1cXDJFAIoDTVSIPNZIaku3tIsjp5fJOofPMG70ZyOuT77fiSQkJYpG6yjel9SXMLsYSXD5weeRqBjz4Fw8Kl7MJ2GRUycb9prqlB9rGjuHmFkUmTEeGsk1ySPh+r2IATHxtNJ5yhTm45gIpMCpm804Az22omRwXxrjdFBL2xsRnFJWU4ePQ08ui009beMbyVj18gAsKjlJd6T5eJTTx9JOiuqhZVpIeEUHoZhupc3SnrJBqU0iXuKo1VfJTXYq3o5WNg9NOTft/iRiQk1FZyOagi0tlH3kZF4RWkrVyFxZs2I0Dck/TQCGgEHA4BTSgdbsn0hKcLgQGRPcm7hl42CPSRVPYV5qhTiQC6kEpbdCWFdAnZskgKScxIjudJgmogQXJknUqJwEpUsoNNSMKXnVg36Tp3CbyefhE+8xfDnfIxow1Jc0vjTRGJZGHmJfTSInNuchzWrFyGpIQYRISFKjI5Mp0tkUlxv5E0tyaTo6E69J50eguxvMjO7yMnMigxlD28sRDKUPpsx7EJRxqa+vt60S/NPZ1t9O82ktx1D5FNc6d63dfbrQTPXVwoFM8uemnucff04R/JpKvofQ69J+ly38AQePP4niSb7h7eavvhE4/xRH5U1JbeRO6Zg0wKNOKhZ59HeGwcJYceXMf5GFPVb2sENAJWIKAJpRUg6U1mFwLmWwUwnTuGrsNvoL+mAoPdXXAlBJZGHSGEk+nWlsidkEqxIJTnQipl/0B2k0sDkKPWVConHKb0lZe5Gx1qSFS8dn0Wfpsehovf6E0eUjfZTAvAq6dPITfjDEztrUihvuQjWzdg66a1Sv7n7m+bEEsRLPcUIkMipMfECLQzMnn05Fn8Zu8HaGgUh6EBeFAbMiwmCeuf+Bwb8MMVWZT16GHJRyfXobO9hZaMLaxlbEJTdTnaGmshbkV9JJq9JJfqkXaMd4+QOfEIjopl2jyKGpTBKpUu6XRPH192j3urCKcQ2I8MnleOmcOmOHHI8Q8JwCe/+W3KRLEudpKZgI8cV7/QCGgEHhgCmlA+MOj1ie0WAbnZ0cvYdC0bHf/zT+gvv0m7Rtb3ccLirON7pw5yMvMXItnUIx3QQ53fcixv3mSl8UdqNB1tCBGRqKuQZCHITmFx8Hnkkwj+2h+JvcqYlyPC5Rf270P+xfNoqCyjaLk7vvqFZ7F8yUL4+fmOup9oTEp0Umon9bAegZLScpw6cx6/fXs/Ok1dakdvvwCsfuw5OussVORv+GhcT1lH1mWo/yRaaeqgaHptNaWGKtBSz8faSjRWlago5vB+fDIUSeZ3WP039BgUGYvERavomjNfuebcLXQu0UmzkaT3Nz9ER1MdEmgbufvLXx15WP1cI6ARcDAENKF0sAXT070/CAyyYaSPUZuu7HMwHXgd3ZmneKMVrcohUinRStGWtHbIzVrqKUWjUSJ78lrS3dKk40NiycM61BD/8k4RMGfklcV08HniBfg8+jS8mOoea3SwAed2bi5yTh6j5mQ5PCmjNC81CU9/4lGmumNHjT5KZMvShKNT3WMhO/r7XRQ7r6isxr4DR3Ah6ypq6hpUKto/JJKd3bspJ7RiTP1JqSuWGsteRiR72cTTS+3W7q5OGFsa0Fpfg1ZGL9saatBYXaZceu6egdRYSr2lREW9Ga2UtLiQzIj4FKbHQ9mF3s8fFCU4996r/P0xgLQVq7D5qWfuPox+rRHQCDgQAppQOtBi6aneZwQkUtnSjA6m5TqPvosBeg0z7wcX0kHRlZSaSndG41gOadUQEilkUuoOJU0ssT1p0BFyKnJC1tNTq043LRsJf5Qoq0Qnuwed0O/jB5eVm+H/2Kfhs2Q1nMfo6rb4SGcdPcy6uRK4DA4gMS5apboXp9MqMOCjKXKJegmZFJ1JqZucylS3REml1lDSwN2MxMkjT0cLR1d1HnHnkfPOhNFFWayiomJksJbycs51FDNqKdcbN3+ZiiBGJabBxz/Y6ppHIZhG+qp3tvOPqfE2GgT0mE2KbJpNnSSeJkU+1XvqdRfX0ZWNPL7wDQ5DUHi0IpeCbSsJaVn+ZWpkBmE+pY3WPrZHpbtH1s7OhDXQ16ARmC0IaEI5W1ZaX6fNCHQyNduZlYG+A2+ir+ImBo2t1KrsgwclcoRUepBRWmurKKSyh4RGur6VzA5fCzmVNLo46kgE1F6HkEkhwh0iXk6y3c8GDZf4NHh+7XvwnbsQHuOIl5cX3mDN5Fllq+hOspZI4fLVyxfTCWejasC5mzDKa6mblOikEIx7JRlCICVi197RgQ6jST3vYRS6k7qMvXx0JvZCXN3oMiPalwEBfvD386Nn+JCto72uibXzus3O71NnL+DDwyfR2NTCqLIrQqPp/U1h84R0+qyzu9vW2sUuY7simR3Ukeximtzc2YHOthZ00DjAyD8hlz0S6WQtspB56SaX9ZWmH5GOCoqIVOLr6es2qKYeL4NBNeZ8rO7S2ovV22kENAIPBAFNKB8I7PqkjoSAkhXiDbG/pQnN//f/oDsnA7xTDssKSR2kEEtrtSWFVEr3t9QfmnmDldfSmBPEFLBEPO2VU3ZxrmIp2c0Il0giOcemwmPTHgQ9+yW4sKN7PNJ36dABXDp0UEW0oilcvvPhzdi2Zb0ibHfvJ6+lZlJsFe/+zNbvjTSp5OUX4OTpc8grKEZDU+udckGiz7W4UwCosA/w90Uyu863b92IBfPTEBIyere6rXN5EPsJkbtReAsHjpzEMWpVGjsZOeR3zds/ENue/ZqyYRQnHVuG1NMKhoOMOstzy+s+qiY0samtgXWXtSVFqLldgG7KQw1wO/mOq+34KERWIsJCJOckpSB12QpFMH38Pxq1tmVueh+NgEbg/iGgCeX9w1qfyZER4I1ygNEUs/h/H6SzzukDQEczb4yDyk3HmzdFIZaTIZVSgyi+39IBLvv5kZRKXaZoVdrbEAIsae52zlnpTXKCzks3wP2ZryFk5boxBcyFjDdWV+PioQ9x/dxZ9jb14blP7cLalUsRPSeKpObj1yrRK4lMiubkvQ6JSorgd2b2VWTn5CkXmfZ2I1PdvWMeWlLeBoO3ki+Ki4nC/LRkLKEF5Jw5FP9mFNNRh3R7Z1/JxY9+9ms0t5BQc7h7emPZQ0+oKGVgWNSUXpoQTOkg72bq22wailrWlt1E+Y0rqot85Mnkh4NEJEXj0hAYiLDoGKbkF9NnfAGbhwJGbqqfawQ0AnaKgCaUdrowelr2icAAa+66Lp9H5+F30HXifdrhdMOZN04hgUpWiMRSmm0mGhIT6yORbGf6WFLfEvEbSn27KFI58REmOsPUfi5peiGUEqFUg1qD7lsfh4844oSGw5md2HePIUJhVuLl0tXd2VSP1MR4PPPJXUiKjyU5G71OUUibRCjvpY7RzCaShoYm5FzLx9XcfBQUFqO8smY4Knb3XO9+7UpJJxFaT06MJZmcj5XLlyAyMmLMOd+9vz2+7iYm0qTz3z/7FW4U3Wb630hJH3d6Zy/Bwg3baXm4cFqnPcAfT811lai+lc+oZSm1J9vRzg5vE+WKhHiOHEIsI5OSkLx4KaISkxAYFs4mH98pi1iPPJd+rhHQCEwNAppQTg2O+iizCIEBavOZ8xhl+fe/xEB1ibJqdCKpHLJWHNKWtKZRh0E/RdI6eaPtlQgoX/uRyPgx0mltTeb9gl26uoVQmmWS7Op2jkmF4bFnEPiZ0aVelCwM7f2aKDtz5FcvMyJVhYSYOezo3ok0dnb7Mr056mCkSvQm76URR6KSVdW1yMrOwTv7jqK6pm7UU431pifJbGhoEFYtS0f6wjQkJ8UjMiKCBNfV4QmNkTWjR4+fxvFT51Fws0RFaqXresm23aqeUiKW0z2EWAqZbK6rRmXRNdSXF9NbvI6/zcyQz0RwfYAd5pISl/rKuHnzkbhwEWs+oxlR9WJnOr8fTM/bWvM53denj68RmK0IaEI5W1deX7ftCPBG10MJnNarWeh+7b8wUERHnV6zqgsTe0app5TUNbnRhMPipCOETWoURedS9hdnHnsZQnxb7kRS+0kmnQIj4PnsS/DZvAM+kdGjTtPU0U5/7nxkHT5EiaAyBBi8lKXiZ5/5BNPZo7vdqLQnr9+TtZMSnbS1flKiksdOnMVROsV00dNaGnImM+bNTcauHVuwds0KamMalNi6C+dl63wmc+7p3lZqKU3UpDxG0fOjrKXMyb3BsgMXxC9cjrkrNrJ2ceV0T0EdX9UlUzqoXxqjGKGUWsuakgLVyNNKzUtp6OlnDaakwV1d2enP74RvQCCikpOQmL4YcWnzSSynrsb2vly0PolGYIYjoAnlDF9gfXnTg4DUU/bS/7v3xlWmvvfBdPYww43NSvrHnUzSS1LgVkYapSZRPLGl81sexYkngA069jDEUlGkjqTWk7d3ONMNxefpr8Jz9Wa4R8fDZYyawsLsLFUzWXI9V6UzVyxZgIe3rMPqFfT3HoNpS5OIF233RMjcFs1JkcMpLr6Nw8fO4HRGptJdnCyGkuLevGE1dm7fqppxXEloZtqQyF8tNSkzGcHdf+g4bpdWwMXDBzFzF2HR5l300o5QNov367qFVHbT7tEk/54YpTSzcae1rooOOtkUVq+gJJGJ3xmWkrBEwpud976BQQhm5DJ+/kLMSU6Gf3CIVbJH9+t69Hk0ArMVAU0oZ+vK6+ueEgSGaiovqJpK8/kjGKQvsjPTdZL+liYd0Zl0Ibm0IlipJHkkrSw3/EB3kqopmaHtByGXhPh1t/T2oYdzGvQPhXv6GgR+40/hFhEN51HIpMxdJGLO7/uA9oonGWlqVhN4/NFt2LNjG8LDQ0edkBBIV0YlvUkoxyKco+54580+Nvu0trXjvQ8OKTIpJMmW8cSuh9mBvgkLF86zZXeH2qe8ogonTmWwLOAImtikExAaiWTKCM1btYWNMSE2rcNUACBR1M62ZlQUXEVFUS7deUopS0T7SKbCLUNS39EpKXT8mcu/NEQmJCqPcVu+O5Zj6keNgEbg3hDQhPLe8NN7awQgNZU9xQVo+fE/oZfp78H2JjiRWAmplHpISV9bWxMpGo+i9ejLWkpp9LGGiE7XEkjkVGomm3pYz8aTuM5fCa/HPoOAnU+MKWAuNXBNdTU4885byL9wXpESL08PPMtGnN0klK6sQxxtCJm0OOKM9vlE77VRFqiAsjg/+NEvUV5RPdHmH/tciIjoY/7h77+IbZvXUbLo3jvMP3YSO3vDzHKACpLK7//LD1FWUSn6PfDxC8KWT38V4XEp1OR8cFaX8sNEiKVIDYn4edXN6yo1Ls074uDDX10KTWneSV6yFCu372SNZcxQI9cYEXA7g19PRyMw4xDQhHLGLam+oPuOgNz8GJXrralCyw//Ft1Zpxna61JkUNVEklRaa9MoupTdzDOLOqWQSiGlD2rIXIzs6lYC7E7sPn/0Gfh/5U/gFhwKpzFSweIBXXA5E1eOH6M8zA24MX29Yc1Sprs3YOH8uWNGvaSrW5px7hY4t/bab90uxTvvfYgz57LR0tpu7W7D2wnpTUmKxRc/92ksX7ZozHkO7zADnghpayVWP/jRz3CZdafNfC4kcum2x1mnuIoNMaPXx96/S2cJiKTDafkoNZVCLm9eOUdP8QpGK0kqOaQxxz8omM4/C7DhiU/QdYfpb4q266ER0AjcfwQ0obz/mOszzkQEhFQyJdd65AOYjryD/uxT4F1P2TJ6MtIohFIilRPRQ1VPyaig1FJ6TiKyOdWQSqpb+XUzBS9zcY5KhmEPo5PPfQVOIhE0BtE1m0w4t+9dFGZlwUQh+CiKmH9qz04smJeCwMDR9QSlZlIIpXR225KyrKquwbkL2dj77gE0NlKChiRkssPfzxfbNq3Cnl3bkZKcONndHXZ76Yg/eOQEDh49jXxGeKX0IIQOOgvXb6dkzxrWLT64KKUFVCG+4qoj7jsikC5alpIGb2uUznCTaioyUAQ9Zm6a0q8MZEd+QFgo6yznKLcly3H0o0ZAIzC9CGhCOb346qPPMgS6amvQdfEkuo+8jd78bAz2dNH7G+zelvT3UMSRT8cd5HLKScfa2stxD2bDh5JMlNS7RCZFdF2G88Y98KVfd8Cmh9Xr0f4nUaP2piYcevWXqLp1E0F+Pti8fiW2bVyrGlxGbbQhMb0XmSAhG0dPnMGHh04g6/L10aZl1XtBJLtP7nkY4t4TG/OgI3NWTXlKNpLa0xLWm77ym7dxktaMMlxI8IVQLlj3iKqrnJITTdFBxNaxpb6GhLKEXuC1aGuoRitfd7Q0qBrcgNAwBIZHIDiK9aCLl5FgRtOBx3eKzq4PoxHQCIyHgCaU46GjP9MI2IBAHyWFuq5lof3Hf4/+mjIM0sPY2WmQTjh0AmHU8UHXRo53SUIfRcqokXWTSnNSbUwXkxf/BL4PP4GA2IQxdxepoMqbN3H4Vy/TRKgRyxcvxDe+/Fn4+Yr0zijd0iSTEpH08fFRnd2TjU6qyBUJ0X+wbvKdD9hlfw8jKNAfex7dioe3bUJ8XMw9HMnxdhVZpR/9z6/YnHMIPXcchERGaN6qrZQRWmHXF1RzuxBFl8+iKPsM+lhuId8JGW6MeM9btRaLNm5CTEqq7gK361XUk5spCGhCOVNWUl+H3SAwyBt0f3srunIvw/j6j9GTe5Hp717VmONLQmmv9ooCoAQke1k7KbqTKjrJRg0RMvf/0/+fupOPws1rbOHr2tISXGbt5I3MiwgyeGLD2uV49lOPqzTqaGRR3pOaSYtU0GQXUJo2pBnnx7QS3H/wxGR3/8j2Pj5eWLZoHp6jTmb6LOjwHnnxQsLE4/zDwydwIeuq+igiYS5Sl7PulVFKex5Ss1tfUYxbV86zvjIDPZQYkiG1leKss3Dtesxfs44e4cn2fBl6bhqBGYGAJpQzYhn1RdgbAopUMmJnPPIuTMffR++182qK7lJPyZudgRE7SX1PkP2+75clNZxdbAoSS0hx7wGdU5znpCL49/8cXsvXjetOUnwtB8d+8xodUGqxcsl8PLR5LcXMl4x5DUIopbvbiwLVtjTjSGStjnqKP3vldWpPnh3zPNZ8IBFUiVL+3ldfwIZ1qxzaYtGa6717m4rKKoqdZ+Bnr76pPgqgr3cSayhXsxHL3ofoVjZTGP3m5QwlMyR2jjKEVIpeZTQjlAl02olljaUPdSxFLF0PjYBGYOoR0IRy6jHVR9QIDCPQXXYbHSc/RPsHr8KF9V7sLlCe3T4q/c0InaR9h7d+8E+ERLb30hqPocp+dnY7h82Bx3Z2d+98Eh5xYzerdLS0UCboHE699QavZxBPPPYwtm9dj7DQkDEvSmoq3diII3JBthBKqf8rK6vAy6+9jROnh+r/xjyZlR889/QePPIQHWOY9pY5jRZZtfJQDrVZD6Wvsi5fw4/o811T28DGK3p8z1uKTZ/6kur8tnebwz666tRX3FYSQ2Ll2GVso3ZlM9PgZnhSWigiPgFzly+nHFICAkND4eM/eoOYQy2anqxGwM4Q0ITSzhZET2fmIdBWcB31B96C2xGSrXYKfZO0ide3uOEo4XOSSnsZooEpupPS2T3g5Q+3hasQ+L1/gkdQCJxpgTfq4Lb5Fy/g2tlTuJ17DcFBAfjMU3uwZcMakjKmzMcYQig97vh2j9qwM8Z+lrd72c1dWFSM1954j3JBWZa37+kxNjoSD9HR58kndtJ20Y+i9GPPX04kUdIBYiY+344+qul/furMObxNofO6hkaExaVi0ye/xMYc+pjTO9sRhqTA2xpr6RF+HcVXz6OFfuE9ZnHaYfMXa3UT0xextnINUqhd6Ux5odnyg8ER1k7P0fER0ITS8ddQX4GdI9Df1QUzoyZtP/lX9N3IwmAbI0CcsydZpa+KVI5PWu7X5Un9pPiJN5NQDvCk7ks3UMj8OfhuewzOJBSj3Xyl/k5u4ife+C1yz56GWFKmz09lg8s2LF20kPuMPXuJAIozjnQVj3bssfcc+kTkga7nFeD1vftw7uLliTa36nN32vulJMZh88Y12P3oQ/BlQ9F4o5j6l0ZjJxYvWjDeZg7xmTTkNDQ24Z///UfIL7gFN0Og8vdOW7WZdoejOxzZ24UNDg4of3CzqZO2jeXIPXMQZTdy1DQl1S3+32Gxcaq2MmXJMhgCdKTS3tZQz8dxEdCE0nHXTs/cgRAY4A2u8/wpGPf/Bj3XmJ7t6lBRShEvNzxAvcmREEoTjkgFSf0kw5Hw2f0Z+H3uW3CPiOLr0UmvSAU1Uyrp5N43UJidyfS1O9atWoYd2zZgflrKyMN/7LkQSunwlhu9LYSyl5aQt4pL8Kvfvku7xUsfO76tb/gafNjpHU0Lxo1ITUlCZEQY/P39hg8nqfbOThP9sOuV/mUP5/HSi88Pf+7IT7q7u/HzV36LM+ezUNfUpmSDNjJKGRaTOG79rL1ds/zQ6aEgennhNdy+dknZOPZSy3KQP5g8vX0QGhPDKOUyJCxYyGuL1V3g9raAej4OiYAmlA65bHrSDocAb3D9ZjM69r8O02HRqGSKltEUkRHyudP5PU4w775crgiZi/6kEEunwAj40YIv4HPfGPfcYoV388oVZB09zIaIAngxhS1kcvOG1UhKiB13X4lMKkJJsmoLoexjurmyshq//NVeNpScG/dck/3Qg7WdqclxihQnJMSpWlBvb09Imt1oNKnu8tKycuTQYSYoKBD/+Ld/OtlT2OX2vSTLZzMu4IMDx5B55boSDX+EPypi5qbTK3vsDn+7vBhOStLdtaU3Wd97DI2VpTB1tLKMuUd930KiopG6bDmjsCsRERfPHzbyo+lB/yu0VyT1vDQCEyOgCeXEGOktNAJThkAfGwU6j76P1v/6/pA940C/csQJYj3lg27QaWMzThsJJTPfcF29A757noPf1p3jXrtoT2a8/z5JZZbq7jb4eOOzbGxZvjQd4XQrGW+IQ46PwaBu7rYSyqqqavzi1aknlHfPWywkkxOj0djUigb+WYYPSea61cvxl9/7A8tbDv0oUkylbHR67c33cOjYGRWVXP3op5UVY0BYpENem1yT2DdmHtyL8oIcaqTWD+tV+vj5q7rK7Z/7POt5vXQHuEOusJ60vSCgCaW9rISex6xAYJARoO7aSnRkn4P59Z9ioLoELn1miJyQ1FN68NF5vMLDaUKpi9FJI/9MlAziXRU+v/fXMFB30jNyzphnlLRiW1MjPvjxj2iHV8KbdpcSMf/mVz+LBUx3+5IsjjfulVBKM0xnZyd++ovfUIfyOC0Xh/ydxzunrZ8J4RW/b4ngSardMiLDQ7CJ0dhvfu0Llrcc+lHWVNLe4pzz1nsH0GXuRjzFzeev2YY4dn075mCDGb/bbZQTqizKRWleNiqYCpchUXJfeoEnLkzHgrXrEM76SkmJ66ER0AhMHgFNKCePmd5DI3BPCPQzbWpurEfjG7/AwLmDcK6khzIzbZ5M/Ur62xrP73uawCg7tzA6KfWTfZSLcfILReCf/jO8l6+HC1O/Y41eEo+6ynK8/6Mf0gavnt3OAwigJ/b3vvt1JMXHsvN5jK7wOwcUQmmg+LQt0UnLnPoYUX2PDi9CKG8Wl1nevm+Pc1MS8TDlkZ59+vH7ds77caK9736oCGVldR0bckKwaNOjtGJ8mLqhY38f7se87uUc0rDT3tSAOnqBl+ZfQdXN60peSLRQvRmpjE5OZk1lOuWS5iMoLNyhakbvBRe9r0ZgqhDQhHKqkNTH0QhMAoF+6v7V5l5B3xs/Bs7RNnBgKOrl6+o87Pk9icPZvKmktxmUQgM7fMVq0cnHH84J6Qj59l/Ac/7icY/b2d6OctZNHnr5F9T8a4GkhSPCQvCn3/k6oqMixt1XPhRC6UtpnnsdOdfycPjoKdb9nbjXQ016/7VsQHpsxxZs2bR20vva8w6Hj5/G+/uP4Or1AjXN9I07sXTb4zD4B9nztK2aWzfddJprKnHtzH5VXymalQOsx5UxJzmF0di1mLdiNUmmnxLet+qgeiONgEYAmlDqL4FG4EEgQBYn3sOtP/kXdL73Kru+29QsRJdSopQ+JJb3Y5BDKkecZqZxRYPSifIwrsu2IfiFr8MjOW3cKUi6uzj3Kk6xw7uzrU3pTy5ekIrnn3kSoSETE4+pIpQidXPi1Dn8x3+/Mu58p+PDxx97CE8+vgPJSQnTcfgHdkzpmt9/6NiwHFPKsg1I37iDKeHke4ooP7ALuuvE0u3dWF2Ogksn6LDD8hNTh9pCouUBYWFYu+txJC1aDP/gsYX57zqkfqkRmPUIaEI5678CGoAHhYDc1EyspTQeegvmA79R03DjDU0IpT+bdO7HEAHzTtZNGpk6luf9YdHo3PYpJDzxLAyx45OkpppqFGRfwsUP97N7tgNzIkIpGbRU6TcGWqHvN1WEUvQor+Xm45Vf70XhrTKYTF33Azp1jhee+ySeeWo3/Jnqn0njYlYODhw+iWOnMtRlJaSvxPy1D9G+cPGMIJRyUb3dZgqfV1Gn8gpyTu7jD7weRusH4Moyj4BQIZV7kJS+WGtVzqQvtr6WaUVAE8pphVcfXCMwPgJ9LU3ounoJnR+8hp68LDgZW1lL6aTS3kIupbZyOodIBLWSTPaQ3Eq0ciAmGd3PUSZm3Wb4hIaPe+ra8lLkZpzG1VOnYGZzTDJlgh6lduMapoEnasiRA08VoZRj1dc3IjM7ByfOXMDNW6VobhmK+MpnUz3E91u62dMXzMWunQ9h9cqlvJb78wNgqq9lrOPl3yjCkRNnsZeNOTLCYpOQsnQ9FjH1be82jGNd02jvi4RQU40IoB9CTUkhI+3NTH8PlZ+Io07q8hXKA9w3MIgSSvcnazDaPPV7GgFHQEATSkdYJT3HGY2AkErT9SvofPOn6C26BheSSi8ySQNJihsfp4tTSu2kOOM0Md0tZFKGc+oieHz3nxEQnwR3eiCPN6qKb+LKqeO4cfEiuk0m5ZDz7Cd3ISUpAZ7siJ5oCKG816YcyzmkIUgik6czLjL9fR7XWPtn6jJbPp6yRw866YQE00EmNRF76FeempxIi8aZFZ0UsCoqq0jOz+Onv3xdYedl8GezyhJspTapM1UAZtIQLdWm6goK858hqSyAkbJCvYxWSg1lNGsqk5cuQ2xqGvyCg+DuIBaUM2l99LU4DgKaUDrOWumZzlQEyOwGmH4zZmbA9O7L6L5wRJFIfxJKb6a/hVROx+jneaWzu5kd3pbhsXgNwv7tdThLdzcjpOON6tvFyDl9EnnnMxShXL54Ab74/CcREREO9wk6vOW4U0ko5XgieSMuNkeonyjC3Nfzi+TtKR1xMZHYtH4VnvnUHoqye6truJcu9Smd3BQerJF1qafPXcK//fDn6qhyjVFJ87DnpT+beVqN8u+PqW4hluKqk3eeIuhVJapbTcizF5UIEhcuwopHtiMqMWkKUdaH0gjMLAQ0oZxZ66mvxlEREDJE0fO2V/8TxndfBbqNkJS3dH1LpHJ8amfbRUvNpBBKkQyS4UTvZs9V2xD61/8XTi6uEx60oqgQ2ceOUNQ8W2lQLl+yAF96/lOICA+bUDJIDi6EUoTNpzqVKMLcEqX8+atvTngN1m7gTFLvR1/v3Tu34RE6AcVTFklI1kwkk4JJe3sHMi5k4e//9b+GIYpIYIr/xT+GmwiAz8D0r9RPdjBbUF18A9czjqC1vko57Yg1qAigi6tO2srVyq5xGBT9RCOgERhGQBPKYSj0E43Ag0egbe/LaN9LfcqKIbkW8fkWv28RPp/q0cs8t9gtijuODOeYVHht2o3gl75DQjlxWrO84AYyDx9ip3cOb7xmrFmxBF9/ke46jOiIT/dEw0Iop5qYmTmXopslePv9gypK2dzcQkHy30VhJ5rXaJ970qN8/drl2PPow1jCSKw11zfacRzlvU6WMJy7mI2/+f9+MDzl8PgU7PzC/4Knj6zvxD84hnd0oCfSKNdJe8bS69kozDzNTvAy9Pf1qCsIpDbl3BWrsGzbNviHhM5YDBxoufRU7QwBTSjtbEH0dGY3Ah3nT9Lv+w30nniHQAwq5xxJe0uUcqpbArp58xR3HGPfgALdddlmeD/2HAJ3UKTbigjUEKE8qKSDhFBuZir4O9980eoFVITSx0c1eUx1pM9Mh5e6+nq88dY+FBTdRnuHEV1d3XTT6VV+3CKIPtZwkTIDVze4sV5SUvfufAwM8Mfnmc5fMC8V/v73rp051rnt5f0uruf5S5fxV3/3b8NTCo9LxiOf+zajdQF0mBlftH54Jwd8IqUT/X29yDr8DkpyL6G9pUG9FsHWyMRENiZtQurSFdTkFBxmJrF2wGXTU7YDBDShtINF0FPQCFgQ6KyrgfH0QZh/8Bdsue5nqnuIVAZQRsiNJG8qSeXv7BaHCKXHk1+Ez3PfgG9U9IT1kzLfshv5uHT4AEqu56qUtxDK7/7+ly2XMuGj3Ix9SCglfTrVhFKRAiHLnUY0NjbTn7oSV3NvoKyikg0ntfTkbhlzfv5+BsyhMHtsdBTi46IRFzsH0XweHhoCD0YqZ2K6924wpBb1QmYO/vSv/3H4o7CYRGx99mtsTgkn2Z646Wp4R0d8QvLY0lDD73YWirLPqvS3iJ97eHkhOCpKkcqk9CWQqKUeGgGNwBACmlDqb4JGwI4Q6KOdofnGVdZS/hf68y9hsL0ZrndqKSVSKc+naki6u4OROpEOgiEIvp8hWXj2q3C1spP1NkXNMz54jzVnt9DDeU+aUEptmhBKPk41obRgJMSyhx27RmMnmigl1MlHI9O5JpMZkhqXSFz/iGilHzt7/Ugofby9VNONr8FHSQR5swFHnICma56W+drLo+AmWpR/9Od/Pzyl0OgEbHrqyyRRUXBnHeVMH2I8YKSMUGNVqSKW1bdvoKu9lTWknsQgDHFpC5C8ZKmuqZzpXwR9fVYjoAml1VDpDTUC9weB3sZ6GC+egem1/0BfWRFc7kQppet7KmsphUx2MN3dy8tyjkmDP8mk3xPPWX2Rt3Ku4My7b6OOepQis2ILofT29lZpw/tN1ERmSNLiZhLhfkbjLMOXEkCeHjM8+ma52AkeL2VfxXe+9/3hrULmxGPjU19CcHg0CaX38Psz/Yl0f4uc0M3LGaphx9japC5ZopOJFD5P37AR4TH0rtffm5n+VdDXNwECmlBOAJD+WCNwvxEYpLByP51nGr//bXRfyYCTuVNJBwW5uaqayqmaTzsJZTsJpSTWXZZsgv8nX4DvtsesPrwQyrPvvYPaslJlIylyOpNKeTMy6cUUoivrFO83obT6ImfxhppQfnTxS/Mvq/R3SW4m+kX8nFFcv6BgJFBSaN3uPcqycaY2K30UCf1KIzA6AppQjo6Lflcj8OAQ4I1KSGXzb3+BrmPvoL/oiqqdDHF3hSfT3lOV9JbubiGUA0yju218An57noNh7Sarr/v29Ws4v+8DVN4sUjZ2qilnMjWUJJSeTB8KoZwNdYlWA2snG2pC+dGF6GUKXGoqLx97D22sr5TGHYuk0JpdFPRfsgxB4ZEf3Um/0gjMIgQ0oZxFi60v1YEQIKnsKi6E8f1fo+vQXgwaW5QmpQ9JmMcUSAiJMU4b9SclSjnIY/q88F0Ytu2GZ2KK1SBJU87Fgx+iNO86ayjN2Lh2Bf7wG19UkjrWRByFRLozTejBP00orYb9vm2oCeXHoW5vqkNFUS4F0C+ytrIMXcZ2uPAH0ZzkZKStWKkE0EOkqU0PjcAsREATylm46PqSHQMB8RTuPH2YpJI+35nH4cZaSgOFzn0YpXS5x+acfjJKiVBKHSWLGBH0l/8Fr1Wb4UoBZ2vH3TqUa1cuwe+9+DzFyn2s0mkUT2g33owlSjnTdR2txdSettOE8uOrIZ3e5s4OlBdeVfWUdWU32QFezZpST0QkJLBBJ32IVM6Zo20aPw6ffmeGI6AJ5QxfYH15jo1Ab1MjTLSCa/3n7wJMsUmnty//PO4x9d3Dzm6JTnby0cndE+H/9lt4LF49KbDKCwuo1XcIt65dUcLmK+iU88VJOOVIFFPS3VJHqQnlpKCf9o2ly1sI5Xf/7O+GzyVNOZueepFpXZKlWdSUMwzAXU+a66pwK+cCrp3er0o+RBTdNzBIkcrVj+5CSGSkil7etZt+qRGYsQhoQjljl1Zf2ExAYJAdyOarF9Hwva9g0NQOd7bQSIRS3HNsraWUdLeFUJrcvOEcmYiwP/8XeKQtmhRkVcX08j51HPkXzysv75XL0vHlzz2NkJBgJbEz0cGEUEoNmnR6i8i5HvaDQE9PL3UoL+PP/uZfhiclskFbnvkKAkIj2dE882WDhi98jCdSQ9naUIuy/Cu4duYATO0t6vvsRSms1GUrkL5+I2LT5o2xt35bIzDzENCEcuatqb6iGYZAd0Eu6v/hjzFQdQvO5g54MlUcRKFzW9PeQiiVqDkbcsye9NKOmYfQP/k7eMxdOCnkKm/dxJUTx1CQeYnC5iYsWjAXz35qF5IT4pnGtk56R9LeBt6AJVKph/0gMJpTTlhsEh5+/pswBARzvdztZ7IPcCbSqNNGUpl5eC9qSwpVTaX8UPIPDsFCygktXLseIVFzHuAM9ak1AvcPAU0o7x/W+kwaAZsQMJcWo/4X/4nByyeA5lq48YYlhNKdZMyW/hwhlEZJd1PYvIeC5i7zViHk9/43PJLmWj0/E2WNpMtbCKUIm4sOZUpiHHZt34xVy5fAwDpKa4ePwaBqKeVGrId9IGDs7MS5C9n423/6j+EJhcelYAe9vL0MM9fLe/hiJ/FESOWtK+fYqHOJmqy3VI2l7B6bloa0lasxd/kKZVepfzRNAlS9qUMioAmlQy6bnvRsQqCLdoxVR/bBdd/LcKq4pSKTXndqKUcKnQtRHGAiXP5G5sOd+IEzG3rExlEom2zXzg5vEwllX3gs3Ld9CoFPPgf3qJgJYZXaOmlMkA7v6+fPIu/8OfVa3o+ZE4FN7PTe8fBmBEzC71qacqTbW9dRTgj/fduguaUFZ89l4p9/8NPhc0bEp+LRF/+I9oMsk3B2GX5/tj+R734vxc+L6fstxLLmdoGSFBKh8zAKni/csAHJtGkUzUop8dBDIzBTEdCEcqaurL6uGYNAT0c7mgrz0Puj/4PBghxFCp0ZzQtmlFKIpWU0sMKy1skbDa7e6HJlTzi3cWWjgE9/D+J62xAy2A1vpwFFKFtIKCXtPRiVAI9Hn0fAo0/CLSLKcqgxH7tpW1hyI481Y6dQWSQpPiP1nYWiAu5MW0dFhuFP/uAlzIm03uNYPL1FOkj+9LAPBKqqa3Dq7AX86GevDU8oMjENj7/0Z8rZiEr0w+/rJ/yRJs5LJqNKf1eTUF7POIRO1lS6ubvDm3aeSQsXY/6atYibN1/DpRGYsQhoQjljl1Zf2ExBoJ/pZFNLEzr+5hvozTk/fFlCKPtcPVHr4oNGDx80O3ugzdkdRhd39DKCJPFI58EBeAz0I7jPhNieDsT0diB8sAstPSSUvAkiYR68P/Mt+K7eANegkOFjj/akr7eXGfdanNv3HiOUeehgFOvuEeDvi7/6499HfFy01RFHSXUrQslIpdajvBvRB/P61u1SHD+ZgVdff1dNwNvXH7HzlqqmHB2dHHtNJP1t5L/V24xWluZloaGyBGLzGRASiuTFS5kCX6VIpS7vGBtD/YnjIqAJpeOunZ75LEFApZnZUdr45y/BfPEEmF9TV+7u5oF6D3/c8AxFpXcAeqgnKa43ow1nRhHDu9qRbG5BWk8z27xN6GXq2jl1EQxf+wv4zEuHC0nDeKOlvo4yKTkklO8y+tKuUt13b+9PL+w/+fZXkZIUT5JofeOGOyM5HiSUutv7bkQfzOvcvAIcPn4G7+47rCYgkkHJS9Zi6dY9kEYqPcZGQP69dra1IP/CURRmnuYPr0a1sXh/Jy1agrW0afSh3quuqRwbQ/2JYyKgCaVjrpue9SxEoOFf/wpd1LwbbKxUV1/rHohbvhEo8f9denmITzqptPjQ/4aAUllp/s/QY0a8sQnzjJXw6jfDxUpCKTfJvPMZOP3OW5RKqR8mk5ZIiyXt7edrwLdeegHz5yZPqjFHBM6ljlKIpR4PHoFLWTk4cPgkjp7KUJOJTJyH1BUbMX/1Fma7NaG0ZoUqCq9RAeE06yozhstCgiIisOrRx5CyeJmqqbT8+7HmeHobjYC9I6AJpb2vkJ6fRuAOAq0H3obpwBswZ59CJ31z8gNjUWUIgcnNU23hSa/v4EADIsMCKNvjDn9fCoazDdxo6kZLWyfKq5vR2twOL0Y7g7raSCzrEBsXi6Cv/dmEEcqywhvIPXOajTgZ6GfqWwikj18gAsKiVEpPvI1NHa2UAPLG80/vwYql6QgPC7V67eTGKtFJzzsi5/pGazV007Lh8VPn8MGBo8i6kquOn7JsPdI37ER4XDIJ5ehR8GmZiAMfVGwZaygldP3sIZX67u7qZEOTF0LmzMGCdeuHHHUitaSQAy+xnvpdCGhCeRcg+qVGwF4R6C4vQcdbP0PDO6+g0CsCFX5haGftpAfJY0p8GGLnhCAizB8Bfj6M9LnCm+9L846ZItWdJJUl5fW4casGBcU1cO9jo05bHdISYpH6nb+BB/2HnT3HFqs+v/8DRSbrykqH4ZGu3+Qla+iS04WS60P1Yl7Un3x4yzps3bAGyUx7T2Yob29GKHXH92RQm55t337/IN5+/wDKKqqV5uSijY9i8ZZdlAzym54TzsCjDrJ+2dTehtrSQlTf5t+tPDTXVapGnfC4OMSlzVeuOjGpc3X39wxc/9l4SZpQzsZV19fssAi0/vYnKKYm5Wn/BHSxhtLL4IXYqCBsXUvNu+Q5CAwwjHltjYxOXs0vx6FTuWhsMcKftV3zUlOw4a/+Ec4ennAaRdKkn049JmMHjr72Kusnr1DAvEsdX4hFQvpKLFy3ne8ZcfXUfjbq5NAhxwVLFqZh945tWLJokh2tJL9CKsWKUVLgOhI25lJO6wf9rK19+dd78cY7+9HZZaZIdziWbNnNqNrD03remXpwiea30KaxKPuskhVqb2lgW/ggHYfCVJRyNVPgfhRCl45wPTQCjoyAJpSOvHp67rMOgaZ9e1H4+is4Ay/0skgyfW40tm9aQGIYDQ/38d1meA9Dc2sHrt8ox/tHc9BZVYfUBQuw66//YUwcOxlhKcjKRPaxI6gvLxveLpG+30n8i0pIUzfHzCNv4yY1+AaZTk+Oj8YnH9+JNSuXDm8/mSdixSg3V93xPRnUpmZbIT9GYyd+/uob2PveAVUvmbx0HdJWbUZMavrUnGQWHkVwbWVZyO1rmbh08HUlM0Rw6f0diEUbNrOcYCO9vyeW7ZqF0OlLdiAENKF0oMXSU9UIVB07gOvvvIEr7WamIl2wafVcfGLnCtYuMsJoRW1bL/UnW9qMeOXN0ygprkZkchqe/t5fjQpsf38f6ivKceTXr5JMllNnr5OpOVfl+pG+cSdi5i6Cp/dQRFTI5C1KGjVSJsWfjTkvPPckHtq8btTjTvSmdHtLc47u+J4Iqan/XKKTefkFePPdAzh59qLq6F720CcoebMGwVGxU3/CWXTEPkoK1fPfR9bht4ZqKqlb6cJIvG9AIDY88aSSFTIEBMwiRPSlzjQENKGcaSuqr2dGI1B29iSuUrYnr6YeocEGbFs3H49uWzKpa+6l7eKZC/k4l1mETmdfbHvucwiPjYMHI4OW0c26yLqyMtzMuYwrx4+i28yOcBc3GAKDaSm3GPELljNlFzlMYhurS1GSm6XSeuLK8/ij2/DI1g2IjAizHNLqRyGSlo5va0iy1QfWG46LQD+F7sVy8a139+NUxiWUVdbA08cP6/Z8FtGpC3X95LjoWfehNK6VF1xFcc4F/li7TWOANrXjvFVrlE1jPIXPvX19tTSTdXDqrewMAU0o7WxB9HQ0AuMhUHLpAnIOfcjGmmKkshFn85o0rF9lvQe3HFvSb+1GE/YduYKsG3WITluINbt2I5gpNwuBq7p9C3nnMpB/8QI19VrVlPxYSxedko7UlRvg4xtAx5TfpdilMafq5nVcY0drR3MDFsxNwOb1q7CZzTluJIiW4453bZbPZFtJeYvYudgxTmZfyzH04+QR6KQLUll5Jf7zx6+gqLgEzm5eEHecFds/heCIaE1yJg/px/YYoMlAX3c3iq9dYM3xVUb+b/HfVzO8fP3YpDOPskxrET9/gfpxp0s+PgaffsPOEdCE0s4XSE9PIzASgbLcq7h6/BjyGDmcnxShCOXqZckjN7HquZDKo2eu49iZPNS3deGpb/0hHTwWDIstH371ZRRmZ6G9uVERUEnNSdpz8ebdvNn5fLy+kcdra6pDaf4VijmfQg8lUpakz8NXPv80QoKDlS2jVRO7s5HcTEX4WRp09I11MsjZvm1FZRWOHDuF/YdPoaGxGSExiVjz2HP0o05Ua277kfWeH0GA/1aknKS1oRZl/PeSdXiv8v4Wn++giEjseOELiIiLZzmJz0d20y80AvaOgCaU9r5Cen4agREIlBfcwLXTJ5FLPcgFyRGsoUyDLYRSDikp7+Pn8nGztB7bPv0ZzF2xEgbWc7U3NuLQr37J1NwNiN2iDNGbTLnTnDGW9V5vt1l1s57f95oil/HRkdi1fRNWr1wGf/oZT2owSulCUin1lNLxrUnlpNCb9MY9tPfMzL6KH/70VdQ1NKJ/0IlNOAux7dmvw93TW8vaTBrRiXcQm8bm2krqux5AFSWFxF3Hnd/36OQUOhI9pH7gSfpbD42AoyCgCaWjrJSep0aACFQUFTKtfBrXKDK+IDn8nghl9rUSnLpQgJwbFUhftwGLNm5GaHQMo4x5yPjgHdWIYwFdGnDEek/qJ8caEvXs6mjD2fdeQWNVKbw9XDE3OR6fefoTiCW5nGyTjaS6LfWU8qhJ5VjI3/v7Ep08Ru/un736pjqYt18AEhauwOanvnzvB9dHGBOB7i4Ta5WL+O/5EGopgt7b3cVSElf+eFum0t9J9P+W8g9d9jEmhPoDO0JAE0o7Wgw9FY3ARAhUFd9CbsZZ5Jw8hnmJYYpQrlmeMtFuo36eX1SFs5mF/LtJB5R4LH/oERUdyTl9ipZxF9HW2KBuZJKKm7dqK+JJMIIjY0Y9luXNHrOAlhQdAAACzklEQVQJl499wIjLdRhbm5Sf91c//2ksXbQAwUEBNt0YpeNbmnSEVOobqwXpqXnkbwD0Mf16+sx5HDx6CheyrqoDh8yJ4w+IdVj20BNTcyJ9lHERyDm5X8luNbG5bYCd9lLukbpsBdY//gn+m+OPMTetUTkugPpDu0BAE0q7WAY9CY2AdQg019Xi5uVsnNz7OhLnBGLz2nnYyLS3LaOmrgWXcoqx98MsFRVJ37CJhDIVmYcOooX1XT3S2c3GG0NAEJZtewJRSfPg6u4x7qn6entQUZjLbu8zdAgpUmnrhLho7Nm5DRvWrlDp63EPMMqHIyOVWvB8FIDu4S3p7G5gicPLr72Fw8fPoIeuSjIS01dh3uqtiJtvm5boPUxpVu7a1lTPf9dnkZdxhEYC7Pwm05d6ytSly7Fyx07+GwxghN5lVmKjL9pxENCE0nHWSs9UI6BIXkVRAd76j39HiK8Htq6fh51bJycbZIFR7Biv5JXix786od6SLm8ff3+m4EqZeutWHt2+gSFsxNkFsVmUNOhEEcLBgQF0trcgl93et69dUs0GYse4deMaPLKF/sW0erRlWEil9vq2Bb2x9zGbu3Hq7AX6dh/D1es3uCE77BkNXrTpMeWMY/APGntn/cmUISA/xNpJKquLb6Aw6wxa6qvAUCX8Q0Mxd/kKkvu1CI+x7d/OlE1SH0gjMAECmlBOAJD+WCNgbwjUltzG6//wN7z1D9AzewGe2r3apin2k/zdYNr7v189Sou9Xgw6OStpmD42aMgQe8WIhLlYteNpeHh5Wy0bI6Sy6EoGbeYodM5aShmLace4bdMaEsu16rUt/xNSKelvqSnT6W9bEPz4Ph10xfnJz3/NVHcOausaVBQsLC6Z9bQ7kbRotdVr/vEj63cmi4D8u5HopLjp3KJRgPzbGRjoQ2B4BN10NjEFvhwhUXMme1i9vUbgviHw/wAAAP//eeLRCQAAQABJREFU7L0HeFzXdTW6WdB7770QBECisIC9iaREdcmSrbjIVmznj/P7S335U76/Jy/JS/Je4vyO47gotmT1Lkokxd5JkEQvRO+9917eWgccCKIAcDCYQT1HGs7FnVvO2efO3HX33mvtNacaR8ZFN20BbYFlY4HmslL5+G/+h7QODMnevZvkm8/skvXr15nU/8rqJnnv+A0prm6Vnr6hyWOsWbNWfMM2SGTSTgndmChr162f/MyYhfamWqnIS5f8G+dkdGRY/H29ZOf2ZPnG80/J2rVrZM2aNcYcZtptbGxsxBqvdevWzes40x58Fa0cHR2VpuYW+eu//z9SWFIuQ0PDYmVjJ4mHnpDw+G3i7hu4iqyxNIY6Pj6uvi9ZFz+V4ozr0t5YI1znGxomcTt2yZaHDouVtY2sWbt2aXRY90JbYIoF1mhAOcUaelFbYBlYoK20SM7/j/8i1WNrJX5rjDz9cLL4ebsDYM39JtPR1Sv5hdXy0ZlMqWvsmBy9jZ2DRCfvkdidD4mNvcOcgdvo6Ig0VZVJ7rXPpKWmQsZGh2RzbIz8/u9+W5ydHACA5wZQJzuGBYJR7k9gud7Kas59m3qs1bzc2NQst+9kyK/f/FAam1pkvbWtuHr5ye6nviVeQeEKuKxm+yzW2AkgO1sapOjOFcm8+IkCmOtwvQdERknyocMSsTlBbPGd1E1bYKlZQAPKpTYjuj/aAjNYYGRoUAZzM6Tj/AkpP/uJ5Dr6ikt0uOzeFiV7d8SKrY3VDHvOvLqru0+KSuvk3ZNpUtvQjg3hPYQHMTJhh4TBS+UbGmWyN6S/p1Maq0qlNCtVWusqxcl2PbyUSbItebOEBgcAWDrN3LEHfGIAlQSUBJfaW/kAg035eGxsTMrKK+V2WpZcupYqpeXVMr7OSrwBIqOSd0vwhgSxc3LRQH2KzRZ6cWR4SBrKi+Tu7YtSmZcmQwP9Yo/vi09IqCTuPyhB0THi7O6+0N3S59MWmNUCGlDOah79obbA0rFAb9Yt6T3zsfRdPiX9bU1y2yNCenwCJCIqUL76RIp4uDuL1RxC3/SE1MMref5artzKqpD2zl5Zt95K7BycZcvhZ8QvIkZs7OxNNsA4gMvQ4IDUFudKee4daa0tE3uA3uSEOEnZmiixMZHi6DA/Tws9N+sR+lbvWCbQNLxM7vgK3pFh7bLyCrlxK11u3smU/IIS9cAQGBUvEXyI2LRNzfnataalUKxg0y340Pq6+UBWInnXzkhzTZn093TBi2yNh71E5akMjY1D+oiepwWfGH3CGS2gAeWMptEfaAssEQsA+I2NjUrLP/w3Gbh6Ssbb61XH7riESaWjt9j7eckLAJQxkf7i4mw8QBtBDl12frX80y9OTQ7U1t4RXpAo2bzvmFlz6O6mXpSCWxelC0CYbc+OLfLokf0AlVG4Kc49VD/Z4XsLPIYVbrb0VvJljmPef47l/jc9k61t7fLq6+9K6p0spDg0K/BtbWsvKY9+TTamHFQPFMt9nCup/8N4IKsuypG862ekrvTuZPh7z1PPSNLBh8TBWXuSV9J8L/exaEC53GdQ93/FW2AEN5Wepkbp/Yc/lZHMGyKjw2rMBQ4BUu7kI4Ne3rIrOVz27YyV4ABPo+3R2d0r6TkV8vJbVyb3cXBxh6cqRYW8ndy9JtfPd6G+rEBKsm5KWfYtdSgHe3tJiI+RH/7Ot8TOzlbWmQFUGjyTJOwwv1KDyi/OWkdnp+TnF8lPfvEbqWtokuGREQUg/cJjJGHfoxIM8hVtqNvSsQCjCMOD/VKSeRMknWvw9uepOfIKDJKN23dIyiPHNEln6UzXqu+JBpSr/hLQBljqFhhua5HO1Ksy8Pq/yGhZPrIcRdbixl9j6ynFyKOsc/MWbw9H+cpjKZIYGyxWVsYRXiprmuVmeol8ci5r0gQkZSQefFJ8gsPF1sH0HMfJA95b6Olsk+rCbMk4/7EwP4zh8OBAP/n6c08qL6Wri/nOxXxKK+RW0mOpcys/n4mS0go5c/6yHD91Xrp7etUH1rZ2CkxGJO6ARzro840XcYmqAPTMDfR2yyByBwf78N7fi+eoEfQK3np41vl5T0cr1AfWqevUztF5ssfrwYLmtWtlY4vwvQMILI5mvZYnT7SACx3N9SpthKoJPR0tSnXBLyxc5VMyBM78St20BRbbAhpQLvYM6PNrC8xigXGEugcrSqTjNz+T4TvnZby1XtYBTNqCONO+3lHyAShzXPxxmxV5/KFERdAJ8HU3ytOUnlMul28WSFpupeoBb8DewZGy/eHnxd7ZVTGoZ+nanD4i67utvlrybpyVjuYG6etqV/mUm+M2yMG9OyQiLAQkHUeTmOrTdcQQAieg5LLBe2lYnm6flbiOHq7BoSFpaWlTJJxTZy9JCQg5o2PjYO87AUQGIB/vKfEKDMPfjhY3wfj4GB4ohoUEMz5YTL7Qx1H196AMDw3IUH+fMIdwoK9X+nvx3tOtPmcHKXfEz7taG2Ut0hvsHV3EwcVtsu/rcR3bO7mKtZ0dwKST+tweJCNKX62zsp5IjbCC7BTTIwA++bICw53gdKl6aAmiW+urpDj9ulTkp0lPe4tY29rKBKg8IP7hyEd2c1MPUJOG0AvaAgtsAQ0oF9jg+nTaAnOxwDC8NP3pN6T97/5cpKdF1iHcTTDpYrVOBsfXSaa9j1x1CZZRJOeH+LvLnu3Rcnjf5gcCszEAijOXc+Ts1VxpaO5SXXKD7mBobLLE7zoMEIZkfzOHPwkeCCTLcm5LbUm+dECrcg0AD5nfO7clSXxstDg5Opg9VE0QqfIq73kuDaByqYKHuVwfs21LMDkwOCgNCG9fupoq11PT5G5RqQJNDs5uwlB3JFjdARGxACd2sx1qnp+NwyM9kQc8BCDZC291NwBRLzyMPR1tE+9Y19vRrrxvoyOD6ONadR0ozVLlk0cX4JpXDwaGv+/1CkdXWo18quKY1X/qfGMyhr9Vw7VMgpmDs7s4uXnh5S428Go6unqKi4e3OONF8DkhQ4UHEDOkYNzrntneOLZ+/B7cPvWOVBVkSndbs/qe+oaFKU9lzNZtANKfe2rNdmJ9IG0BIy2gAaWRhtKbaQsshgV6IBHU9eGrMpx1TdYATDoATDqByW2F9zF0qHi9q6TaIeztAI+ijbXsSIpA6HsbvH32M+YlEkzW1rfKZ5dy5HpaCXLpRtXQorfslTiASSc3T3XjNvd4eUMcg6dyEF6n9uY6BSoLb10SB3tb8fJwk5iocHnmiYfF3c1FhazNeX6Dh5LvBoBJ8MBlvlZiawMBJze/UN58/xNpAAGnp6cPAHNIgcf4PUehZ5gizJO1hpi5JQEUPY5drU3SUFGkCCY9SOEYGuwDwWREXQ8T76PwPOJvhLttcR17urtKWEig+Pn6qBxbzpGNtZW4urqo/Nip89Xf3y8dnV1KmL0Hofyurm5p7+iUypp6tX4QzHY2jnEdvZRQMqC3kh5J5aWE15LEJP/IOCWd5AblBFdPX4vaZGr/57LMdIDmmnKVOkLlBHxRxRoe1shEPJDt3iPRSVvmcji9rbaAWS2gAaVZzakPpi1gJgsAfA3WVknPB69K76evy3h3m9gARDpCvNwBgNJAnWhZYyMFVq5ywy1EBteul00xgfLE4USJCPHFjWb6XMoRAMjrtwvkyq1iKShrUODR3S9YNmzbJxGQjZlrVRxTRkxvZXNtJW6MH0lnU72MQ/jcE6ByB+SE9u/ZISFB/hYL3xlAJQGFQXLIEBo3ZSxLcZ+e3l4V4v4U+ZIZOfkKbNHrx9zC6C27AUB2imdAqAJXlug/gQ9lbpqqS1WqA3MAu+BR62iqg6Zin8qDpAPcFuQpPx9PCfT3E29vL3GEh9rB3k6lPxBUOjs74TqGeD3+W4fr3h5h7PX35QgPAzD2DwwIr+tBeGQHBgalDyCzrb1TWlrbFbjshT26unsUGampuVUBa8O41cMGPPIuAJFObh7wWnqIq3cANFij8e6ncjAN2y72Ox/KSNK5iwexojuXFbhknzz8/EHSSZEDz31tsbuoz7+KLaAB5SqefD30JWoBevKQZ9b12QfSh/DWcOZVBSAZ5raHl4XeSUMbHl8jDevs5IRrpLRb2UlQiI/sQ9h717YNuPnaGDabfKd3sq9/QN4+flNy7tZIS0ev8sTE7jwsYXFbcGOyPDGDN3DmrfUjL64o7YoUoiII8+FY6ccRYOJrzz4uKdsS4bW0vHDzVG+lApXoGz1Z7ONyaQQZbFPf8wuK5NPPLqiXYRwkqDBXcucT3xA3b381B4bPzPVOshUJNPRINkE7sTI/Q2ko9nV1KJuSMOYKkOiEfFk75AC6uThKZHiobIBAf2hIkLi4uKj1nAtzNOWtbO+Ap7ITALNDSsoq8aqSppZWoWezs6tHenr7vnAqejCZQxyK7wP1OT38QxBKdlHeTILypdCaaytUwQDKCQ2DuESwHbwxVo5+40WE7z1VnuhS6Kfuw+qygAaUq2u+9WiXgQXGSVrobJeW//tPZCjruqwZBOgDvvGCx9EWYOf+1r3GSq5Z+UqJk6dY+3tLEpjeTz68VZwdv5wXx5BnQ1OH/PtrF6Wmvg2HmvD87H3mt8UfQuYk5li60QNqOA/z6S689TOpLy8gIlKgaGtivBzat1N2pSQrELIQ4I7nIIghO1xV3gFhYyHOO19bE0TyRaLKxGtMhY5/8+b7qIJzCx65ZnUKjoUeyagte+DJOqDYz/M99+T+7AP/A5gcAbmmrqJQypEnW557W5FnOK9stK+nh6ukoFJS0uZY5ZV0Q3qDg6OjCmObC0RO9muahRGE2Vtb26SgsFjKK6rldkYOSo+WMv1S2XEqKF+Ha8EzIAwVo7ZK+KatKv9yPcLj/DIuhWuDKQS3Tr0rzfACD8Lr6+LuIRu2bpeth4+Imw9C9vzR0E1bYAEtoAHlAhpbn0pb4EEWIJtzsDhfOl8HqxueybH2JlkHZqz9unu5k9PcJIZlrTSIjdx0CpAGNx/xC/aRbz+/V3y9kFcJz4Wh0TtZAakgknGyIGje3TsgDq7uErIxSdXtdkY+nSVz6XgjXgsPD1m49ALxhsfQaEN5oQKULDXHyiC28GKFBvuj9ne0xERHAHigxKSzs/LCGMZiiXf2Z/IF4E6AM/k3PjP8bci55GeWbgbASFBGYfJRvNQ6w/u99fSy1dU3SjGkgQpLSqWgqFya4YUbHhlTIVvW5g6KSZCQ2CRxAhGF4X5ztbbGWoCaMgVsOlCDmsSrYXgprdaMSZC/j3h7eYiXpzteHuKNF5fdkAtpDy1ShrOZx0ibLpQ9hyE/1AeWOEPjXfBQtgBg1jc2oQRlldTDhs2trYoVP4jt1q63VmkCTBVgSJwA0y8sWoFzBS7NZUQTjjOIMbSD2FaScV1JcnWjaIA9vifRyVtl47YUCYyOxjU7fdqLCafTu2gLPNACGlA+0ER6A22BhbNAd32tdF07KyMv/78ivaitDcBljRC3G4ChNW66U6Ldk52id2UQoe98a3cpQOWcTrC1H94bBy9QmPh6fy6n0t7RIxl5lfLR6XTkk/XLGMAd6zezzKKLp4+STpk8qAUW1iBPTcm0EExOARCsU0xtvXYAE0qjMEw61N2OcKiDBPh6g5jhLRsBLDdBCN0G2pILATxwEqX1qc5FoAl7GEDP5PkJMjkn94AnTTb52b3tuW6mNgkWscFUzxiXCR7p8VPb8ABYp9bzHesnVo3LELzZHSCg3LidiVBuBcg3LfBKQgS/r1+sbB1VCoM/WNzuSGUg2YTzbI5yfcP32NoEko2VJdLaUK3SFvoh9RPo6yXhoVAMQAjbB2DSBSFuSkIxH9JAqjFUM6K9ptpMDWwB/6FNh+BVJYmHuZXtyLvs7O5WNs3JKwTIrATAZI175HsCVJIh7gapJS8AS9a5Z67lfMqTzmeo6nrAA2hLbblKGyFJpxdg3s3bR0IR/o4CsIwCWcdY+ypbIBd1CC8Spe5vPI4Vcl4pV0RCm27aAvdbQAPK+y2i/9YWWEQLNN26Jh0n3xGb02+qXlBz0g4o0h1eOyzO2jrG10u2nbfc8gyToAB3OXYoSRLiQifJOfmF1XL1dpFcuV2sjsMbZNCGzbILOXUL0eiVtEYe30wggiCKhIOsi59KaXaqApjslwMq6SQnxMqjDx+U8JBgsbW1MfomaelxKZYwAeU9gKzGdu+khnVf6gNBIVbyBs6XASwa1tEO9FQrUMnPZ2isdGNgcn/w6Tmpqqmb3JIpBSSVRCXtUrmAzJ80h/eZ/aXgeDvINfQsV+SmKS/Z2vERAEeCRtSBRzibIe3IiDB4yCZY9LQLPby2INUYPL2TnV1iCxwjvZhXr6fKNUgt5YApT6BJ8E4vPx8gKLsUilB4UPQmJQhPHUxe34vVSrNSJT/1vFQXTBQpcHBxRZh+sxz5+jfhoYYUF/p8f+P1NYg80mEASL5T87MXuab9PT3QAh28f3P1nbNzcFReUDukKVBqyhrfRV5rqogAPM26rW4LaEC5uudfj36JWaDzozel6/1fy1hJhuoZSTiO69eKHW7MxrRcGw854xgiAyC9PAq2976UmEkv5YlzGXL+Wp40tvaoQ9FjFRq/RTbvecSYQ89rG4KZdQgfGuPNoQB6/s1zkn3l8xrjLvBwRUeGyLdfeFZJyVghVLraG0kmWTl35c33jktrx4RsjsEmJN+wNjdloMxFJCHQItClJ6wQDGNqIRrAcAQ8knt2JMueXSnwLFP26fMcVHojCTis8TKkCxj6uZTfmW9ZUVktNwAqT5+7DL3WqexweFbxoEd5oTAoI8TtOiKOKFtqDtBuik3o2S9BWda0Mx9M7u4dHCwPvfB18Q+LEDvHL1fSYWSgurgYHuYKqS0tQa3wYgUmCTQ5r19ueKLF/zYAks6enuIXGo6KWsEohhAiHr5+YMe7fnkXvWZVWUADylU13XqwS9YCvFmjnFzHKz+Wnnd/KeO9HbIeXh0ngElHeBemC3VPN5bydU5y09ZHqhw9wPj2lj3bJoTOScZ599PbcvHGXXhaJnQnfUIi4cXYDhmZPdMdyqzrSMRhzpmBjDPbwalb2FJbKRV5aagMck0YRl0Dn56jo71siAiVpIQ4Va4xwM9X5YjS+7VaGok3A2Dpp2UiDxYh2SLkTNZDY3IEHjWKeBsYyvG7jyrPJNnc5mqsXFNdlC3FaVchB1SmPJU8Nr3HO8HKT9wUJyTZWN0jNHFeCCJJdKInV3lvl9FcKW8svHcMhzeA3JSRnSu307Mlr6Bk0qRM4aBuawyITqFxyQg3B0x+tpAL9C5WF2bJlfdeRsga6SyosMXQ95bDR1U+pQsAoKERPFbm5wFMFiLVpGPSOznYB21QXF/Tg0nD3hOpH+sxr3w4ZPjbBl5ngkmfYJC+oIPp6e+v1n++h15aLRbQgHK1zLQe55K1AL0+I709MnDzkvSdeEOG7lwCzWZcHOCVtMeL+pPGttY11lJIsXPXYBl3IADzk307N4qdjRWq4uTLnezyyUOFgbkanbxHhUYnV1pogWCSN19jw4K8KXa1NCoh7E4QPSZe9YL4nKoBTtHroAA/8Yfwta+PF3LznJWmoYW6v2iHJagZhb5iN3QUm1E+sR5Vb2pq6xWQrESIux2eSXrFmNtHghXf3X0CISGTIKzLbqy9px0gH3LwMlS2aa2rAMhPl762erGHhBV1Q/lK2LRRNkSGiQ90JFUDaKQnksCSgNIAJqc9xzJYqeZgdEwqq6olJ69A0rPypKKqFjmXqPaDXFWOzxMe4eANCeq75OzurUpBsszjQj3s0KvIHOS78OzXFOVKV3szvMJWEhgZDU91CvrjioICfUqqq76iAlJONSjf2AHSEVQNUIbSBmFxOwdn9cDH8Dhf01071I9lfiXLZDIsTk1RltFkSU1rCNJ7BfojT9dTHCG7ZA9PtRPKQTq7u+sKPsvgOjdHFzWgNIcV9TG0BeZhgWGUnOu9my29r/9URooyZR28k8ybZKibRBzj4eQEOad5ra1cdA6VBhuIQkPnL9DPTfx93KSkohEs71b0lDqQ1hIH7UmKmdshl9KSjSFXeiYJKOd0gyWgwY2SgtiNlcW4UeYoTcNeSCpBqFOcCZhB1omBhmFIUACqq7iJA9bZIefSWt3MLTkqyx6bbG56IinG3dbWIU1gIlNDsQClE4vxzka70kNEAOMXvlHI5Hb3nSDfzBfEEUQpUA89ScrSkH3fCvJHH1QHosJDoB0ZLBGhwRIeFgzGtitkfyCno/oEMAkwQq+k8kxieU5zro6ydP/pxnxUVtfKrTuZkBsqUXmr7QBmrMbDqkNMNfAJicYLhB2Ew22Ra2iulIMHWYXArqezVfJvnEc6QhZIUg2KPKPY3gCOvfC0drW3Aeyj/jlyQJ09fBXQY8lJirk7o792KEdJuSQ+AFrjOzu1Ga4JRhCofUkd2b7uDuReojwsdEbbmxvwENgAb/mAepAgmPQKDgKojVK1xpl3yWtjJV0PU+2jl/GbdKpxZLpkCW0bbQFtgQWyQH9GqrT+69/JWGWeIL4rNkCQntCcXAtPz1zApKG7Q/Bv1o7byg14KcsdPHADQegRns5heFlG8KJHy8M/VGJ3HFS1uy37Aw/wCmYob1CmSpjQ+zGGftMbUluSpxitDWUFKN8H7xA9KRiPs5ODBAf4yFZoHG6KjZEAVF4hIWQ5Nt64e+FNIni8Cfb2lZtpYHbDUwmQSW8239msrFGykiz9o88ihy0QoUfcsPkAgtd8Gz1R1DlMPfm2Agm0PSvYMOXg+aePgcUdpM7F8xnyInkdkf1rw/m+F+Kebz+W2v6cGz7kjGAeCCRvA1i+//EJqa5rUqkktD09ewSWsTsOKQ1LY9I8zDVOKgAwNSH32mmh6DlF5tknzg2/f6xdHoPc2qANmwAofdR69f3nbw0eUAy/Bep3B+vubxy/anhX//FvLqvXmKqKVFd6V0UWGqBHys98QkJV2D1u5y5F6DH1d+D+vui/l54FNKBcenOie7SKLDBYUSI9Fz6V3jd+IuP9PbKempO4Abha40neRDvwJ39gfJ0UWrtKnp2nApXq3sDffnzGGx7JGiGxyQiPWjjnCycmw5jnNNysTByWupEPoJwfw98kIdBrVl2YDU9JF0DlGrFn5RXk8IUGB0hsdKQkbN6ovJYMuy6HRvkaesCoiUgZoIrKGqlvalHlA6f2n3b0DY+B5ycenp8Y8QgIUfW46f0xVyOYJMmjACX+6JGyAckmAiDyOYDJ6IgwVelm6rkIKgkirQEmCfINIHPqNittmUxwJZJeVCIffXoaaQiVyqPM+WFtcBLeopBSEgwlhYVqBHZtDTVyF4zvIuS6kpHPhzlW+wmIisP1slGlQtih8o8VIgbmbvRq8/vY096ivqNkn/d0NMPz6QCJsmCA7J0qDG/vZNmoiLnHpY9nnAU0oDTOTnorbQGzW2AcXo6uU++hVvebMoyKOGyGet2OUwTJTT1xu1hJkbWbpDv6Sye8WSPwQLAx9Lz7qReVQDPBnqUab6wk4/Dmak6wQ8IBb1pt0D6kbA3BD0Emb2Zs9FYG+vmocDh1EH28PJW4ticEtaljuZTAzhBCpV3QPayta4CGZLPSPKTQdk5+EcoFdkOY/HM9QM6Vk4eXeAeCXRu6ASSICIADX2Vjc80hAQnDmEUoh8mymK1g3LtDhDwKIe4tqGC0b3eKkm2aakPOswFMMszNv1dLo4wQ64SfOX9ZPgMTnFV3DM3Nx18RozbvfVRpWDINwZKNIe/ujlaUZLypQt5US6CHkEAyEPJGfnz4QEqEOTzYDxrH2OiIComXQf6LqgBMWeFDZWhcnGzYwspDCQCZEx71Bx1Lf758LKAB5fKZK93TFWQBhqYGO9qk62f/j/SfgObk6LAaHUk4JOPYMEw1ZbzT3aOnfj5l0y8s1q5zlFs2vlLq6C4DAHfMj3J08ZA9T39biV1PBQZf2NEMf6zFDZRhWXN4J6frDsO/BJK8YdUU50h3WwtCwiPI4RpSr1HoBjo62EK7MlDiYqJkw4ZIcQdRwNaWoHLCi8ZKQusZNse7AsAwNEN/TBMwFRhNhP8mQqNcJrGFIXuGSUdAsCEgHsXfZNQSTFaDXHMrLUuKkBvZ1t6lhkoATrup1715cwHJhrWlWTrR/CAd/RselEGQw+oB0IsBJptQDpPakhsiQ2Xvzm2SDEBJ4Hh/o0eSYW56J0212f3HXE5/MwWhFdV13v3wpFy8mip9IOrwxcQEd79g2bz3ESWE7gBZIYa/zflwNdVOPQCT/C5kXz4p3SDl2Ng7ipuXvyQdelJ8Ud3Hkg+PU/sxdZlC6+wTPd2soMQ0FeZUbj18FKVeIWcEXUtLA+2p/dHLlrWABpSWta8+urbAtBYYhTet/vwpGTn+qqzJvoFtGIye8FDSS0lBc/oTCRp5k2Ywk6BSgR4ssxmTY1mFsPc1x2CpsbaXQQAlVkzZiNyuwMg4VZJv4kjm/5eAjeCVN1BLkhIUQx4AcrCvB6G1VtxIESKuQ3WTmjIVchuBnWk3Mo4Jhny9PcQD5B1WbiGBx8PdVZUC9HBzVUQCEnps4cVkmJxEE1MAEoFiPwg1/ZCcGRgcVCX+6MVqammXVhBsOju7pBvi0W0Qy27HcldPL6q1oH67ApsTOa72jq7iinQEN28/eCW98Q72LHLeSKYgEcfcNmVotAk2K0OIsqYYubwj/RKB1IFHjx4Aq95flUokaKQtDU1di3jwIZA0EHAMn622d4JKisyz9OWtOxly41a68jbjuQHzZScBkbEqnzIADwQURbdEa64pVzmvTfQGIszNCkmbAGZ5DfEBxJRreb795IMzQSS/l/V4QKkruYvlJgBJW/RtHyr6xIG8dE8dYL4n0/svugU0oFz0KdAdWI0WGAVTuf7/++8ykn5F1rQ1TJoAWBJAcoKMowDkvU94H1f3cqw03NP5TlA5U+Zc73oHKbX3lDRnf+kDwLOyc0LoK155LOgZYDjaUo1SJGSS08O2EI1evxHkIA5Dy3MA4JIAiSCT4dsuMJWZV8YbLiu6WIE9TwBEgGkL0GgLQETwSBKPIvncywEk2YfN1cVJQiBRNFMjcGyE6HVv34DyQtIrSQ/kCLylBk8kRbL7UTt6EHqgBI/DKKmpluFF5Tb05CoAyfKIAI6uAAF2ji7wKtkrUE7vkqqBjjkzJzAg4Yn2YoibniQy6vths0SUudy/exsq3sSJPXQG6cmdel4uK88kwK0hZ3Lq5zPZaiWvpwe6Fw8HLOFYVVMrl6+lQrcSnnOss3dyFUc3T5XzmvzQU2b3MNOufWBaV8NTf/fmBZUKEYkqSd5Ii7DCd3Ehwtwzza36PuB6J1mIfSSxrjz3Fq7r9SDrbJfIhCRoV1o4l3umzun1ZrWABpRmNac+mLbAgy3Ap/ZRhGdbfvS/ZPhuhoxD6mN8ANVrsN7gqXzwUSa2mA1QNth7S4mjjxQ5uKuNPQNClZD5xpQDxh7epO0ILKxsAELmKhNk0tlm34ksV3pHqNHXXF0OwNSkQOZQf59iwBJMUVNvpsaboStqUAf6+8y0ifJANkEjsg9eSSUMjfHP1hQYA9C2RfUSAg2GQinbQlFsAklnyM84IC1hIUKBTAuowQ0+58pJlXfHFIgAP285cnC3CnPTmztdY98mvLirM8w9nU0M63jN8GHh/KVrcuL0BcnKLTB8hNrqwbITpU4J9GwRkjZnG8UDDB+imFfs6I5KNmExFiHezLfP9SjZmXvtjCpc4ItSqrEpOyV+9148PNktqfzm+Y5zNe6vAeVqnHU95kW1wDie1kegPdl9+awMF+bIKEKN4211CDMOy/jIkIzD0zZuADnwvJG8w+R6fg79GKP6Pg4/ZjFkg0od/aQF3i82eiyiknaDbRlm1DFM3YieT6U7ibDbUmkE8SOwH2tQd+DVSc281kYVFmclHno4KQdDW/PGzFA6vXfzbSoXct0EUYU5pZRMYSoAJX48wc72CY5U4IJlMBfKm2sYE4EPPbm3T78rVXczpQ8PNk5g4x7Zv1N2pWyBxmSIYdMvvBMQM8xtC++kJXNwv3DSZfhHWXmlXLxyQ15/9zhqg0/UAWfNb9YA34RKRm4QoF+NXl2mplB8/daptyGa3y7BMRtl7zPPokRkuEoPWIZTrbt8zwIaUOpLQVtgoS2AGzkBzhi8ZEgwAogEUASIoXdysK5GBkqgsVhWrHo1Bu/aGCrGwJ0mY43l0KmEJ/MBjWByFOLFdzwipAweytF7HrOE/Y8tgJA5QqGQmDGQcR7Q1QX9mACKpB0DYOQyQ3AM8zIsToHmHniOO1rqJ1jj/f3zBpUMXzNvld5aAggyf52RE2kLQMk8N+o2Gog3QBcLag9WOumA5/bCW/8ubY014uvlLntTkmX/3p2oeuOp0gKm6xCBJGtzT0fQmW771bqOXsr8u4Xyq9+8DcJVlfT09imvsy0KCex77rsgWG1akh5ES88XK+104jftygf/odJQmGrCeuNHvvktCPNDtQDpObotTwtoQLk85033eoVaYBTVJ0bw1D4GDybbOEgl4xCVVt7LPjCA4cE0NOYMUipkDN6PqW0YRJDK/HzJ7+yXhmHAS4QxyezevO+YsNyiJYWF6XFZD48ote8sxWadOtb5Lo/AdsMA66qEHLzClB4aQph8AC/al+Fwei4J9pWoOMA/vZlTG+3LnFGDMLQhpL2WbH0AR9t7+aoMcZJ5y7xINQcLDCANfeZ4OpvrldwS6z+TzR0e5KtkgRJRRtHX11vJKxm2N7yrcSG/1FblVJo3l9NwjpX0zgcYip+zXGMqBNBz7xYpeagRSA2FQgOWOrAkzjhDCsrcJKslbUfYZQi5zjXFuSpvt7GySMbwu7bv2edAXNqEHOLP644v6XHozn3JAhpQfskkeoW2wPKwwAiA4/2AUj39t7bI9Q/eldrKSlVxhR4watBRbsY/YqNFB7cG3gWyWnnO5R7OI/BijuEEgJwAlAyb07M5tdGjQgDNsXPMCnjB88j1S80GvD46ACarCjLVqwVlFQMBIA/tTZHtWxOVZ3Lq2KYuM7xtA+8kcyd1qHuqZWZe5jVEpv/dghLJzM5DHfBcpTFqjRxjT+iJhmxMVOxv1mHnNbSoDUCP3nuGpJkKMfEg9eUe8WGIKS30tPLhyBRyH8E25b3qSvOVgH5VfjqiJ9slYd8BCYqK/vJJ9ZplYQENKJfFNOlOagsYZ4F+6AjWlpbIp7/4GcgobWon/vhHb9kLQs5WVevZuCPNfSt6WZgnaEOJEoAP3ZaWBQw5kzkoy0fx63Yw3ymT9OhD+yBYvk3CUJt7tsYQt4OqTW26Rudsx1/pn1GwPvV2uvzop78GaQeRBXgqncD83rz/UQmL26rIWHgCWTQzMA2HJLZKEAWpiDCVrAb8p9I/uM06pG9Q+sgDqRzuKPlp6+AMMIzUDQDNufafDzgVeWmSCi1eexQk2PnYE3jwTVk0G+gTz88CGlDOz356b22BJWWB9qZGKc5Ml6sffYD8wAmRbGt4EShVEgDtSUcwii3VFBkHNxvmBi41z5ylxrycjktJJZasvPTuLxUxaRTeVupx/uEPvi0bUaqSupwzNUoDMW+S+ZN6bmey0uzrqTNaWlYhL7/yluQVlkhnV7fy7tmB7b/3mZckGN7KxfRSKq8hUmiY/kGgNzVlhd7E/p5O6e3qlNa6CZ3XjsY6YQlHv/ANINYkKlY595nL9cFzsuJVUfo1KUdVnd1PPCFJBx+a3ZD60yVrAQ0ol+zU6I5pC8zdAo1VlZJ745pkXDiPsNUEgYe5e7uffhHs7giLsigZ5iZ4nQiHLp6nZe5WWx17dILVXpmXLmlnP1ClK1mWcmvSJnnq0cNK3J2gcaamJIIAJjURZyYLGbe+uaVVLl2+IR98egZalVB2uNe2P/o1iUrcJS6eM8tTGba15DvzhNkICqdGGbieNd35UNILIhtBIMPVTVWlajtKkkUmgswVEgXR8rnV6e5HeJ2lGa99+Iok7N0tyYcOQ0ZrerkqS45dH3v+FtCAcv421EfQFlgyFqgquCu3Tn8mZTmZ8DQMqFwnStLsOPaCuKi6zzODhvkMwkBMmaiMo8HkfGxpiX0n8tXuSv7Nc1JdmC0ujnaSBALOkYN7JAylKVkFZ6ZmEDAnqJyL92mm463m9aygVFNbJ6+9/SHyKfOlvaNTmSN8c4ps2LoXOZVJX/AMLlVbMTTeWleF8HimApfK2+3uLTHb94uHf8ic2OvMSabSwtnf/Bhs72DZtId2iF2qQ9f9msUCGlDOYhz9kbbAcrIAdRPv3rolF95+EzI4LUpkmzlOkUk7VeK/uYWUp9qGzG4rhLunhsmmfr7clxmaI9P7XoVMVbbofmYut1FyUGCB851/Gzw9E++fk3YW2h6sec6wYjYEzKl1un/XVjm4Z4fEx26YtSvst509qvUokpHOi53VWEZ+SLLLJehTnj5/RVLTspVGJQXuo7fuk8SDjykP3/3XlpGHXvDN6Lmk55u6knnXz6iyriEIf1Ogfy6NJKDL776M782ghG/eJCmPHJvL7nrbJWIBDSiXyETobmgLzNcCHc1Nkn31slw//pHKgaKUTdCGzarUoj1ynSwC9gA4mIxPncWVwOyebg7IpKdG5cjwyKQuJT2yTqhuwzFPtHHp7miTtvpqaQJzuqGiSIaRi0bCgosn6nGjcolPSCTqFvtBOshhutNYZB1BLb1HGec+Qm7tDRnt71KM7h1gdJOEYw9SzkyNqQsUMKdncrZw+Ez76/UzW6AL+ZP5BUWqPOOpc1dlFASdibDxDonb+ZCqNDXz3kvoE1xfVD5gadPsyyfV74CBuT6XXg729cqNT14DUaxagpDPe/Rb357L7nrbJWIBDSiXyETobmgLzNcChXduK0BZmHZbHcrdN2iy1KJFwCTOQg8Wa0yvX788dCeNsTHDw6w73AKmKz17rAdObU8lH4QbqGoYN+trs/IJ80apWUltR4buWOqxu61JyaJQ4N3O0VnpT7oi5YA5Zn6QbnJHmUVLzcnUMQ5BY7OholiyLn4iTQC5Xh4u8jvfeUEiw0PFcRYSDo/BfEl6JwkmOc+6mdcCbW0dSkrol6+8qWrBA42pPOdtDz+v2NOU31ourQOVp7Iun1APUQzbRyXvnlPXGUIn05t1vgMiwuXpH/xwTvvrjZeGBTSgXBrzoHuhLWCyBSa8UCNgdr8veTeuo7wgKuugMS8rInEH8pJmD2uafGLsSE+dta2DqgCyEkCHqh7TVC91ZXelBrmGzbXlqprOTDZiDW5bAEZFVoB+H8HoTI2eXHf/YMXmDYiIQ+1uP7WvkluZaad5rCcA7gbAzbhwfKJO93C/xESFy+99/5vi7uY6+5EBIBnmdnBw0GBydkuZ/Ono6JjU1TfIO+9/LDduZ0lDU4uq7R6HsoyR+N66efubfOyF3pHappl4aOH3gKLtpgJK5mT642Hn+T/4k4Uegj6fGSygAaUZjKgPoS2wmBagxEd3e7t89uqvpDgjTXWF4C7p0JO4Me2Ch2xurEvjxwImKLxXtvDULYS3zfh+zX1Llf8I7yNLERalXUWu4SmEiifAofLN3fvnfj/dGPbhvnNpDJM7oyRjAvQHQ2KTFIiwBBin16e+vFDOv/FvSqg6ONBPdu/YIo8/fEjV7J6tzwx3UybIHh5K3SxnAZZnrG9okB/9268kLTMX36P16trY+cTXFUHHEteFJUbTju8N1QPGWQUobn6AMiA8TJ77gz+2RDf1MS1sAQ0oLWxgfXhtAUtagAn+XW2tcgfM7sL0O9Le2KCY3cydjErajRBauMXAHr2T69ZBKgihOS4vx0YwONjXA7vVSVnubWmtrUAlmQYZ6OkQDxcH8XBzEXcX5EFCdNnV2UGs4bWbepPPL66Q/JJK6ertN3r43J9andQE9Y+MVXIrvgiFMw/VXI0PGVUFWZILEXPKuzCPMmlzrDz31CMSHRk2bWnFqedmuJv5k7Oxv6dur5dNswC/v0NDw/LKG+/JxSs3paauQV0bCpTh+xsat+UL15tpZ7HsXtStZFrFrZPvoNrNXpW37eo1R1IOvoPXPnpV2uoqoGkZLce+813Ldlof3SIW0IDSImbVB9UWWBgLUGi4uqhQrnzwvrQ11qtcPub1bT36FfEOjpyzJtxcek2vJIk/BEJTQdZcjrHY2zLETS9eScZ1qS8rkF7UUbexWiMB3p6yJT5KPAEoHe3tQF6xUQSW9Sqf8PNeX7iRIRdvZUl7V+/nK+ew5IhKKQFRcbJ5zyPCmzBll8zRupDDWXj7imJ1sza5l4eb7Nu1TZ567DC8k44PLJ1IIg4BJcPeulneAtdu3pGTpy/IpWu31MmYSkFdx4QDj6sc3KVa6nJooB8PLHdRnStfBqF7G7vzkHhCNmguD0dMzegFoe38mz/F2IclOnkLBM6fsrzR9RnMbgENKM1uUn1AbYGFs0BdaYki4pDdTd1J/pC7Q3dy31e+qwgjluwJQ7ck5DAHcDkCSkr79KH6x91bFyXj/McygvwveiyD/bxlV1Ks7E9JFAf72QHe8XPX5NTl29LdN2CyqVkTOWEfyu/FbxVXH39VA9zkg93bsaY4VwpSL0Iq6Kpas3Nbghzat1NStiYZdWjW7KZ3UrO7jTLXvDdqbGqW4yfOyuvvfATWNGSncMRgkFu2Hn0GAC10USvoTDc4ygXRM0lFg7LsW8jVbZG43UdQLWeDAsDT7TPTOh6nBZGBC2/9O5jufni42i9xO3bOtLlev4QtoAHlEp4c3TVtgQdZIPvKZbn4zlvSA88aw2cODKNGxCJ/8gmLeifZL4ZtGe5eu9YyYukPGvt8Pqdm5whCjR0t9VIAQJmDnElD2xofLc8f2w+vnqvQIzlbe/vERfnkws3ZNnngZ0wXsIO80LZHnkOawi7YdP55i4W3L0vhnctCYMn2na8/I/v3pCCEb1wFEls7OwUol6pn7IFGXWYbjAKg0UP5i1+9AW93j/ou+wKcxQOkMextbbO0GN+sbjMR5n4LD2KDKhc4BdV+TIlWUEmhLPeOZF/8FGSeJEk6cAhM78hlNoO6u7SABpT6OtAWWKYW6OnsUCUWWbd7FNUm4F6D5qGv+nGPTTlkcb1D1h22BiFnuXkn6YVkmG0Y4TqyuIvuXFXgi5eBi6O97NkSL08f3Yt8yQd7Xt87dVlOXEyVYQAC09saledK/b5oVEuJADt/vi3tzAcgaF2X/o4miQoPlmeffEQ2QcTc2BA2AaWu2z3fWTB+f16T2Tn5cvzkWYS9b8sAQBorXEUk7JDNex+BnqmliHUP7iMB3wByHG3tJ/rQ29WuSiWWZNwQd78gsLJjhODXFb89c82lZpWc6sIcuXPmPRRjaJRdCHUnA1DaaDLYgydmCW6hAeUSnBTdJW0BYyxQWXhXMi9dgHft8uTm1DncmHIQXsqNcyp/NnkAIxfIRiWgNFfOn5GnNctmBJMjw8PwUA4g9+uuyp8sz5nQ7kyMCZM9WzfJ9gTjSr+dunxLTl+5Iy0dXfPuG/PmAqPj1fx5BoSZNH8c21B/H8TtX5equ+niZLserO6DCHUniK+Pt1F9XAdCji0FzfHSbeEs0NzcKhlZufIawt519U2yBvnJBGq7n/oWRPQ95wzWzNXzHshhDUB4fP29fNoB5EoS/LGet29YDMLUIYpgNpfzMZoy0NOlQt3leWlSknkdgNQLY31aYrfvmMuh9LZLyAIaUC6hydBd0RaYiwXSzp+VnGtXUPasUO3G0ocMjyUeeAz6hqiMg1CqpRpLLTK8tRxz7FjZg2CSTOjqgmzczG6AEZ2pTPXU4Z2yOzlefL08jDLd7ewCuZiaKTlFFUZt/6CNnNy9lE5l8qGnhABzrt5f5qM1VpYqj09PU7XyTr70zecBJr0eyOxm33g+5k/q6jgPminzf86wN3Mp337vuFy/lSGNLW1KQmj/c98Vr8Aws6RCmNJr5hrzuzI8PDi5O/OmTRVeZ/4lK0/VFudJGR7kWFWK38e4XbskYe9+hLujJs+jF5aXBTSgXF7zpXurLTBpgbNvvCb5qTdU3W6u9AoKUyGy6OQ9cwYikwc1coGhbnoo5wp4jDy8RTcbxs2L7FQ2VuZg6K4CXhK2rx7bJ7sAKN1dndXfD/qnqq5RUjMRqryQ+qBNjfqc9iRL/+i3/0i8AkKnlHY0andV2efmp2+BsX5XAr1dVJnFA/t2gaFuXA4ez28PMXPKBlnygcS40ay+rQYR6q6uqZV/++XrcistS4W643YdUYxvD4SXF7MxLG9oE7Ks96uyGj6d/b0fVaiorHDj+GsoV9qqfkOc3d3kke98V4FJWx3unt2AS/hTDSiX8OTormkLTGcB9YTf2ysnf/0y8uTSJ6uzRAFIRiSkiE9wxHS7mWUdAQfJOBPeyfVmOeZCH4TVPFiSkK2xsliK069LadYEsearIOPsSo4zGlD29PVLdkGpvPrhGeS9DaMm89i8h8N8uQPPf1+lLcwld45ak01VpXLu9Z8I89xSkjfJV58+JsFBAQCIs5OLDJ1WgBayQgSUXNZtYS2gQsEAlT97+TW5cOm6dPYOqDzFbUefU4LhC9sb85+NOZN1pQWSd/2MVBVmqco6XoFBsmn3XtQw34XQvpvFdHPNPxp9xPstoAHl/RbRf2sLLHEL9COHqTI/X65/glyrstJ75Q/tUXnlMZQ9S5qzbMdchsukeyswTtdDMmiuCfhzOY8lt50KKFvrq6Q47dokKefZI7sVoPT2dDeqCwQA1ch3O30VddQLK6Sz2zQ9yqkns7F3kJ2PfR0CzwlCnUpjG2uOVxflyOV3fiFrxkfl6ME98s2vPS12drZGgUMCSHolDR5KY8+7nLZjWLm3F2kBCC334L2rq1u6e3plEIx/avUQeNNeri5O4gMtUg94zhwBsBe6nTh1Vk6dvSSZuYXq4S3l2Ndkw9Z9FifaWWqcBJJ98Ew2V5er9JKK/HTk+vaIq7ePRCYkqVC3q7f3ZJ6mpfqhj2tZC2hAaVn76qNrC5jVAsxlaq2vk2sffySVBfmQC+oAecIW4dEw2QQ2qE+IZeU2KGZOWRuScparB2si5E3dyHFV67oo7Qo8JmeVBuWR3UmyGyzvcHj1jG39AxBHb26Rj87ekMraRulHOb0BvKaGCI09FreztrOXLQ89DV3KbbjhGl9xpLmmXDG7KYHk4mgnxw7vl6995XGjT00wSc+kHcLjy72UpmHQBPwj+M6wxCEr0nT39EhtbYNk5+YDVLZIdW291Dc2S3d3n9rF1tYadc5dJCTIX+LBit8QHSGBAf6KHW9rY62klKytv1gtyXAuc76XlpVDRuiivPPRKSUhFL/7YYnZvl9VvjLneR50LNpvHEQvw7VM0pcSyby3I38D1O/AFG82t6UsF/5RuZesbz8AmaFmaE0Wo6xpa32lenBxQj35DVu2QSprC/Qrwx/UFf35MrCABpTLYJJ0F7UFDBbobGlBInuWXH7/XTzxd6nfdtaF3nrkWVWhgt4tS7U10JukmLkqtTjlBmKp81nquLzB0UuppIPwTkCZceG4uvnFhQfJ3m2bZNeWTUafnjfQ0dExaQBLt7CsGp7KMslFScYRrDPciI0+GDakBzh2xyGJ3rJHkTGM3bfwzhVJh0B7R1OtRIUFKQ/l0Yf2Gbu7IlgZKuSslPzJ/v4BaWhE1aCiEqmoqsV7mVRV1wlTFZg6wjniO2uys014aZHWgQcnSiy5ODuKLzyVQaiDHhMdqQBmSHAgPrPsAxX7ffrcJeRSvib9KFjgEwpwCw8lrwtLtAkQOP6FvFmuY1lSSgYpQg7+7u/pljEAdNWQETFBzrPG78Ln6S8jQ/h+IUd5bGwE12I9vJJlCkwSVPJ75+zuIWFx8aiqs1M8/QIQUXH8wv6WGJ8+5sJYQAPKhbGzPou2wLwtQKmbwju35M5Z1GdGqJvhOzfvAOhOJuMpfyd04lBSDzdCSzVVGYfsbt48ljGgpJd3BIxVAksyWCn+fTf1gso/dLCxgocyTp45ukexoufihaUHrKunT2obWyQPwOVOXrG0tM9dToge4MSDT0CPcrvSIjRmPintwry07MunhOUktybGy+EDu2RXSrIxu6ttCKKoPWmFsotzGbfRJ1jADelZ6+jsknMXrsmtO5nSeS+0zRB3L+quG5vryhC4ra0Nym/aiwtqukeGh8g2SDDt3J4s9ijJaanG/rMc469ee0cqKmtlLb534bgeGPrmQ6M5iwmwdn1bY7Xy1lNrsrO1QXg9jQIYUt+Wubnsz4THcRjfmc/JOfy9YerL1PSXcQJ05dVEnXJIWDFFZxTfN1cvLwmMikZucKT4BAXD++6toiuW/M2y1Pzo405vAQ0op7eLXqstsOQs0FxTLekXzsGbdk7pKLKDLM+2CXWg3Vmyz4JgkudSupMMd+MGspwbb46jIwiBwvPD+F1nS6PK68q9+plif2/bFA22937xdHc1SRaJotT1Ta1y5U6OFJXXAFR2qjD4PSfYA01nAwb9tke+qvJhnT2M045k1ZK8G2dQv/uyOv5DKLN4cB9EseNiHng+wwZ8UKCg+Uog5JAtfT01TT48flrSM/MMQzTpnaDSDWDSHddDoL+vbIyJkIP7dyM0jkpKUzxzJh18lp0ysvLknQ8+kTsZucpLGbRhs+x47AU8ZASq7+Isu87pI+pJVuRnKKUDku2oMcna2gSSpjbl6cXvkYOLi7h4eIm7r694Bwajbn2kePj6K6+kqcfW+y1dC2hAuXTnRvdMW+ALFkg/T93JqyBeFKj1BJAbtuyVLQh3Kz1IC3sNreAlsUKpxeXuvZoIUY/Ae9KrQtK8cbbWV8uV915W7OiNCHs/un+bbIA3ygb5cqa2akgKkQHOV11zu/QNDCHE+nk+2kzHJaDcjjJ2IXhYcIYupTGNen6sSV55T/7o2SeOyP5dKRIWarzUDMGRHTxxvJaW8xzzgaG1rV1+/O+/lsysfGkDoDel8cHJDt5JEnNiosMAJCPxkOEGD66VMOzt4e6uCDymHNuYffILiuWTk+fk/JUbikjEogWb94G1D7IWrxFztf7eLinPvo0iCZ9KH9QBGLJWuZI4AW1gjYcM5mnP5YF1zdo10DK1Eb/wCOQCb8K1HCcOTk5f8GSaq//6OEvHAhpQLp250D3RFpjVAh/99F9BukhDTtMEgYC5k8yzi2NelYXBJENs9F4sx8o40xmVN0yKgKv8OQCQXoT40i98LI3lReLuYC07EmLk0K5khDpND2uOjIwCRA7AQ9khhaWVcienWKobWmSAjOJZGnNUydinBJS7r3GAMPPCJ4qQ01xTpo784gtPy96dW8FUNg6QcidWQrEHoCSIWM6Asr2jU/LyCpSWY21dg8pvncXcM37kBi3SHduT5NiRAyDm+CnwuHYdbIP/mENpaeBdWlYpZy9clY9PnpWubjKi/aFHuQP1vY+KvZPrjP2e6wdM++hAecWaolw8rGYj57FUejvbFfizd3SCpM8eiU7eCpF148T+J84/QdbhNWUFMhN/O5Z7ZGOudl2N22tAuRpnXY95WVlgEHlITTXVcu7N16SupGQinwkjCEbt50jU+mUozNJtLbxXVigFxxvDSmj0Uo4g7D2CfEOCSuYdtqCudwk0KXtRYcbf3UGefXiv+KFiDlm9pjaeZwi5rx2d3VIDMNnY2i5tHd0q15LrhwA6mQu7DkClrrFV2rAdUwsCozchleHhB88tjk9CyaV3fo6QZTpIExPeuP/00guyJ2WLyvsztu8rAVBWVdUgRJwjl66kyt2iUiG5Za6NQNHJyR45qLtlN0D5xg1RKl9yoUE2yUSptzPkl6++IwTJ1CT1hsbs3mdeArjzNivo5/VPwfHu9kGKteYAAEAASURBVBZVBrG6MFvlVFqh/Oaux5/EA85BpRE5V1vq7VeXBTSgXF3zrUe7DC3Q2dqCUPdlybp8WdobGyZHwPBXWPxWJLsbLy0zufMcF5SYOQXN8VopjaHRYQicM+RNLw2BJW+kVflp0tNQLnu3xkvixgjx9/EUKzPkylG+prdvQDrgbeqCTM0gAeUwCEI473qAmJuouFNQWiWDAJkOLu6y5fDT8AztmdUrzH4Pg1x0+pV/lprCnMlQ5R/93kuyC941mznU417OgJJzSeINxcD5ysyZSAsx5Vp1gQYla58/fuwhhLojlIySKceZ7z4kEOXdLZJ/+NHPpLm1TYWcndy85OiLfyismjOXEPRc+lKalQry3yX1gEKyzfaHj0nSgYegIuE/l8PobVehBTSgXIWTroe8vCxAMs6Ft9+UmpJiJRVETwl1IHc+QfHrROR0Wd5rOCkPgvOupEYZE7K9DTljo1guzU6VjLMfig0I8w/v3So7EmPFAwQMC2cVyKfnr8vl29lS39KhTMywd+zOw2Dyz/zAQMZ6P+RYzv7m/6ACSf7k1PzlH/9AdmxLnPzbmIXlDCgHkFqQlZ0nb7z7iaSBxGJqWwcAFREeLH/6h7+DCkOBFmVyP6iPg8hlLK+olv/6V/+oNDO5vZ2jsxx58Q9QDSvSYt/71oYaKYIEVcb5j1QXo7dslc2osR0DzUjdtAVms4AGlLNZR3+mLbAELFBbWiLv//hHyGvqUOxu5th5B4UrIXOvwHCzhr5mGi7JOPROmlOuZKZzLeR6SjFRQsjAaB0AQYFh7/TzH8raNWslyNcLgHKjHNmzDYxey5JV0lEV5SqY4XfySpQJQuO2yIZt+5V80Ew2YcieYcqLb/9M1Ufmdgyz/+Wf/EB2bkuaabdp1y9nQNmGPNWf/eJVxYhubG6bdnzGrPT2clfeyd/9/ovi6LC4igb0aFfV1Mmf/fe/g5Zms+o+w94HX/hdCIFvUDJhxoxprtuwbGcRBMhZa5uNouPxu/ZIyiOPzvVQevtVZgENKFfZhOvhLi8LdLW1SUlWhpx57RXFviRYcHT1UFJBAZGxCI26LciAWL2FgHINQNZKaip/EoCSQsxDA70qf6yhJEv6WutRRnFQrEG+CAv0lZ2JcZIUHy1ODpZjud8tqZBraSideGdC5sYFqQxRSbtk+yPPz2hyelhJqCBDvaGiSFjNJSjAV176xvOo9BI9437TfbBcASVzUOvAqP9ff/vP0GysmSijON0AjVgXvzFKHj68Vx49dhhzb3rurBGneuAm/K6TVPTHf/HXqObTpLYnoNz33HclICLWYiVW6bEvzbwpV97/D5Vb7AQ2e2zKTjn8W994YJ/1BqvbAhpQru7516NfwhZgonzl3XzJvX5V8m7eUHl+NgB2XkERqjKOI/Ls1i3ATY8hdoptM49yoYkJlp4e5t71dYMoAy0+slur826K0/oRiY4IR43uVqlraEae5aD4erjK0X3bJSLYX5ydICxtgfh3OSq4XEvPRV3wdDVsAnh6Kfc//z1VPWc6liyZ6i2oR379o1eVMLuzk6NsQ4j+iUePSHho8JzMt1wBZR+q3hSXlsv//tt/kSZUK5pPY5rA05BcStmWbFGNSWP72ISSnv/zb/5JSsD4ZolPGxQv2P3UtyQIpC3m2VqqVRVkyc1P30ClmzrFzmbY+9GXcB1S9B5pAbppC0xnAQ0op7OKXqctsMgWoHeivalBMi9eABnnEvQROxWYI5hkBZUIsLunljuzWHeZr4kbyHKv3z2Tfcj0ri8vgCD4BYS6L6oQ99GHDspjxx6VyqpqOXvxmmINt3d0CfUp92zdJHFRoap6irlBZTMY4NcBKN87fW2yu/4RG2XH41+HGHTQtOQclrOrLy+U25+9C5Z6hbg6O8mubQnyyNEDEhpsnOSQ4WTLFVC2tLRBvDxHfvLz30B/ciL/1DCmub4vNUDJaj9vvPW+XLmZhrrjDUp/krqzYfFg8Hv6znV4Rm/Putv5N88pTyWvsVCUSnz4W98RNy9vKD2sHGKe0QbRGxplAQ0ojTKT3khbYGEtQM/Z9U8+loLbqdJUXaUYyA7O7hKJEosx2/YpT8VCeAvpjaBU0ErMn+SM1pSw7OJZqS+4JSlJm1EBZZ/ExW4UV1dXGRwcgih2O8BKrpw4fR55bC3ibG+rAOXBHUni5upkFva34coqheTNtbRcOXs907AK3uhwSTjwuATDI8Vw5/2NN/u60rty5/R70lJXKd6e7vL0Y4dl+5YE8fbyvH/zWf9erpVy6usb5catNPnVb96DvM7cS11ONcpSA5Q9Pb1yBjW9T5y5JAXFZXiws5N4yElFJqIOtn/I1K6bdZl5uZV3MyX97AeqDKNvaBhyKKGNujkBGphfvg7NenJ9sGVrAQ0ol+3U6Y6vVAsMg93Z3daKvMlXpaqwQKhDyRa0IVHV7A7asGnBhr4Ggua8idEbuqLyJ+EBJmjPuXpCKrKuiO1Ip7z07RdlU3w8Sux9HkrkNg0NTXI7PUveP35KsW2dQdaIgbdy84YwCQ30A7B0NksIPDO/SJFybkEA3dA8A0Ilfu8jEoZ67WT43t/I8K6fAih9vD3lq089IkkJceLp8fk47t9vur85x6qWN9IoFuJhZbo+mLKOTOjzkAp6/+NT0tXVY8ohJvfZGB0uhw/tRtj72Lz0RycPOM8FhvOv3bglH3xyWnJwfbCwwMaUgyhosFcR8+Z5+Bl37+/pknrk5F778BX8FjWJh38ABM73SgLY3k5uC5O3PWPn9AdL1gIaUC7ZqdEdW60W6Olol7LcHLn28YcoCVinquDwBp948EmUMEtEbVzj6jubw37UurNGmTeyu5cTyHjQ2CkTRPLBjeOvSF99kcRHBsn3fvsl5Zm8P1eRoLKjsxMesHfk5p1MqUdeJXUjE2PCJCkuSmIiQsQLdZ5NbUxvYFWdCzfSVQ5lee0EAYPHMwVQPv/kw5KcGL9qAGVRcbmchAfvszMXpRsevfk01m/fmhwvP/zdlyBu7qjSPeZzvPnu29ffL7dupcu7AMtZuQUKUG7Yug/s/31KOmi+x59pf5K9WpFXfO71f5XO5gaE170kKjEZtcQfF1cs66YtMJ0FNKCczip6nbbAIlqAIe7rnxyX8tzsidxJhJ2pNbn32d8W//AYiwkaTzdk6l2SCHA/yJpu2+WyjgBxdJS1vPsgt/MTcVnbI48fOSgHDxxQHrrpxjEMeaGi4lLoHB6XqzfvKGke4EAJDyIDfKM8tHsrCvKxseTcxBGMBeAUNmclnTc/vSi3sr8oyE1AuQkeytA5eChNBpQAyTa2tvDMLS/yFQHlKQDKU2YAlJw5kpn+65/9cLLc4sRsLs6/iwUoOdq+7g75+N/+GoS1GrFDmNs/LEKOfvNFiKprgfPFuRqW/lk1oFz6c6R7uIos0AOtydKsTDn/1huo2d0LfcQRlYjvGQhvGHLp3FEhw1igMl+z0StJZjfDbAt1zvn2+UH7E0iO3tOeJIv+EgClj92ofOWpx2T7tm0zVpahF5Hhx6KSMsnNL5SCojIwi8tQ2q9f7G1txN/bQ3kpXZ0dxR0h8GA/L0WQsYGMz2zknc7uXqmoqZdbWXflblk16n5/MQfQNzRatj3ynPJGkRh1f5su5G0qoORDA1m8DHsvpwcIc4a8aV8y5bdAJuoJ5KLGbowWB9Q3n63x2mCJR9b3tjKz6sJiAkqW8Tzxy39UZC9+/+mlfPaHFFWfm3rAbLbTn60sC2hAubLmU49mmVugvhyA5cY1ST356eRIWG6NIa6Q2CShVNBCtXXrrUDIsQUhZ3H1+Mw5XkNlHALLcYS9b518XQZbKiQB+ZDffvFb4o78MNZynqn19vaBSdwutSCC1NbVoypLjtwtLEZJxX5xdnQQBztbcbS3E083Z1RZsRUnLDvi3Q4lEPnOmt3DCG8PgPDT1QPJHwDIuqZWKauulx4cg58ZmpWNnUpx2PXEN+Ahcp2W1T8doDQ1h5KggSkODg4Os9rA0L+l8l7f0Cg3U9PlPxQpp3Pe3WI6gxOkoXbvgGTTnhRJStyk8imne6iiBiYfNEogW+Tr6y1+vj7zPv/UAywuoOySs6/9WBori5Uepb2jo/zWn/6FkKCjm7bAdBbQgHI6q+h12gKLZIHCtDuSeemCFGekTfbAHZIxKY+9oGp2W8NbuFBtvZWN8k5aqmbwQo3DcB56kgb76fUdNqxCRRCwZ2+dk9HOevkvf/LHEh8Xq/IoZwOV3FkdC/qUHxw/KZ98dlFaOvtkoLcHbPyRyWNzwdHORtzgtXR2tBc31Ii2QrWdwaFh6entl6a2TtT17pUB/D1d8wCLNzp5tyQdenK6j9W6+wGlF1jeTz5yEGUXk8THe+65bgRNDgAOZHxPB6Bm7MgiftCOKjnZOXfln3/yH9IC6SVzNQ83F3itE+WhA7vFw91NnPDAoDzOAJyMHBDsdSJVobmlFSUSq5B7mYDrJ8Zcp1fHWUxASQWBS+++rEp60ltJct7X/vhPJSAyakU9ZJp1wlb5wTSgXOUXgB7+0rJA+oVzknbmtDRWV052zAvh7v3Pfx+yMY7wHC1cLW3mbbLk4kpgdxMAGgDlVNDXUge9veunpDTtvCQnbJavPf+8JCcnwbv44DBnT0+PvPb2+3Lm6h1xD9ogVXdRYafryzqIBmB2L7VSzSvSL9HYJ7Uw7T/MnYzd8RBy1mbWk7wfUDJcuzUhVp6ksHnY3EOT7Ks9PJQM3Rr6PW3nltBKeo2LIKnz13//43kLm08dFueLslkO8DLHxoTLZoDFoKAAsbezk86uLikoLEH6QxHKIzbIju1J8tTjRxW7fuox5ru8mICSD183P31TqgoywfRuxsOljRz9xouQDkoUZw+P+Q5N778CLaAB5QqcVD2k5WuBqx+9LzcR7h7onWCrOrl5Qi5os/JSMQS9kDd55k5Ol7e3XK1LQMnKMvRQcplteLBfGiqLpDz7OrQo70goAMORhw7Jk088rvIpZ7L3EKSdPvzoY0krqJDetc4StnmXuulSC7KpqhTaoWUyNuU8c7EZc1cd3Twk+dBTEgUPJedhpvZlQOkgW+4ByoiwkJl2m3E9x2sLwERiznLJoyRhiiUX/+J//L2SdZpxcCZ+wDQF1vV2hIfSDvmlE2kLI0IgS1Y5L6VHIST/yJH9ErMh0sSzTL/bYgPK1BNvQY8yYxJQHvn6tyQygYBybhqn049Or11pFtCAcqXNqB7PsrQAa0rXlpbI7dOnlJg5mcgEFoHR8RAz3yWBUfELCiZ57vUAMvRSrqRGqSC+6KU0gEqG9lrrK6Qs+6b0tzdKWICnHNydIombN0OT0k2BK4MNCCSbmpolLz9fzly6JiP23uIVkSg+IdHquD0drdIOVmwryiFSy2+gr0exyQlimb85hJrhIyADUbbI0AjiyKa3Qr4qwSMFzFkhhyL2PsGzAxR6kQheWSavGe/2yOGMCg+Wrz//lGw0EdxYwxNFQGlugolhvOZ+53elpbVNfvmrt1RVo/mWX5xr/xgK/953XpCdKcnIoTSvpBdB6/lLV+WTU+clv7BUXR8bt0OHcqtldShpA15bt06+rQBlV2uT8lBqQDnXq2N1ba8B5eqabz3aJWgBgsl+5N9d/fADKcnKQMnFRvRyjfJSRW/ZAzHzXWIL6Z6FbBPVcWymJYIsZD/MfS6CSIK7+0GlmgPkidWhck5HbbHYjnbLQRAyoiIjUHHGSzGfuS+JOJnZOXLl+i0ZsHKRwNjtAPubYCerSYBKsEjw2NPRJr0AmL2d7TIETygBZn93J0BmN7yXALT3BkdAqYAk5tjWwRnC0Z4SDL1RVy/fB3qIeZ6O1ga5gly3BghRr0eOpityNf/z976FEH6cSQ8hzJkl09sGwHK5tEHks+blFyCn9QxE6CG3hRzVhWh2YPgHB/nL7//gJVwrYWIHQG/O1tXVLR8iT/fcpRtSBi+sqpSz+6h6yLRkpRyOgQUV7px5Tyry0pQWJUPeGlCac3ZX3rE0oFx5c6pHtMws0N/Desxlcub136B8Xi3Yx2Mqd4v5c2FxWxZUKshgOuZOrtRyixyjAfSRXDE+PqaGTcBIYNlaV44axlekNP2SbIwKly1JSRIVFakA4/FPT0h6ToF4IGdy77PfExKmJkAqvZ6jk6CS6/CH+nvq8Q3rDXae+k5gafBW0ktpTIrDCMK91As89/pPpL7srjocj/GnP/yuyusjucaUxrA3QSWPtRyamjt8b86ev6w0Ke9k5C1It2NQWefZJ47Irp3bxRl11M1tL9byfv3N96B9ilredY0LVsubxqM3PfPSp1KWlQotymrtoVyQK2p5n0QDyuU9f7r3K8ACBJHZly9J9rUr8GpNsFSZv7brqRfBqIxdcO8kTcrcSWpQLpc8ujlfBgSPACAMP4+ODqtlwzEY6msFWSfz4kcy0FYn1mvHVNUUYsS+kbVi7xWC8neHJSAiVlURInAcAygloCRQHcc7ZYlMaQx9E8jzZQw4Yeh+AP0988q/SG3J5yDqj37vJdkFooipXkbloVxmepS0NyWELly+Lr9540NIOQ18YV5NmY/Z9vGF9ui+3dvlheefFDc3V8WMn217Uz5ram6R//k3/yQlZZXSPzCoAOX2R76qJMScLVwxi4Ay69IJ6OLe1IDSlMlbhftoQLkKJ10PeelYgB6mivw8ufTe28o7OYzQHcOfvFnwxsGw1mLI9rDcorGgZulYc+49MeRUTpUSIkBkiLqqMEsayvKko6lW5ZPRCxYQtVnC4lOQ20ptQnjwAPwNzeAlGwfIUzqX2J7eZnoolWfSsOF97wSOPA7zVgko6Zk0Fsjz2LyGTr78j1JTlDN55N/73jdkN3L6nCABZEojEOWL9b2XU6MuZCEqGn1y4qxcu5mOCkRdAJWG5ALzjITzZWNtBTC5TY4c2is7UraY58D3HYXXTB0A8h/9+V8BKDepT1m1irqkJOo5ulqWaU0CW+ZFeCiz6aGs0R7K++ZH//llC2hA+WWb6DXaAgtmgY7mZsm/eUPOv/36xDlxs3J291KEjPD4beKwgELmUwfNGxcB5UpvykupiDqD90LUHPHnAKS7vVk6W+qF7wSagdEJ4h0U+UDAx+PSUzk2NqK8ZBPAkscFyJxiVEBJgMk1YA5bTYS4ASyN8UxOOYRa/OzX/wTyRKbyuHLFd77+rOzZsRX5n6aBDhJyDOSc+8+11P8ewENZbW29/PQXr6GiUal0QeuT82GOxhQCRwc7CfD3ka8++7gi4tghPcASjeC4uqZO/vS//a00NOL6Q2MqxP7nv6dIW3bIt7VkI6BMP/eRlOXcxkNVnQaUljT2Cjm2BpQrZCL1MJanBbKvXkae0kVoveWrAdAb6RsSJdsffUEcnN0A6hahSs2atQizo1oKPGWroRHsMVTNfMoJSaHPPYqGz/i+DnNhA88t2dhGNXooJzecyKfkis/XkXqFRg/lvdfk5nNcyL58QorSrynJIu76DMoGMhxrinQQ96ewOwElQ9/LrdGzR1CZmZkrJ09fAEknRwnJm2McPgDoSZBleubJR0DGCUBVIXuTHgCM6ctEqc9y+au//5dJfU07R2c58q3fV+z/2eSkjDn+g7Zh6kcqWN5V+RnS1aZZ3g+yl/4cP2WnGkem/r5pm2gLaAssgAUIUPpAxrn+yceSfeUyGMDd6qz0SAYjnJV8+OkJjxWAxoI2nI+hV2s75FAi/LpaGkEI54QhZFXvG0xw5kQS6NEeBJMMR3PZFA/ihB0JKr9sUdOP9/mxaovzJO/mOSnJuK5W7tu1TQ7t3SHJifGfbzSHJfaJXkqKnJujf3M4tVk2pUeSDOnK6lolep6H+uu3M3KxrmfOx2f6gb29jcSjrjftmbg5TkKCAwG2bR7oqZ7zyabs0AoppIysPPnxz19Buc8JwXx7Jxd57Pt/Lh7+wepanLK52RcH+3rlBuSoKGze096CvGpbefoHP5TgGOZ1zy78b/bO6AMuCwtoQLkspkl3cqVZgN4wVsO5dvwjKbx9a3J4Hn7ByNHbKnG7Dk+uW8gFggcCJ8qT8H01NgJJgsoJQCmwA3Mbjc9rXAybdeOGn335JEgUn6rTJ8bHyGGUDKSX0tTG8C4BJQHVcgSVHDfDxizNyFrbqXeypaikTGpqG6St/cE1v62s1ounu6sEBfpJIF6bYjco4fLAAH9TTTqn/aqr6+Ty9VR5493jqMzTrXKr3X0C5fA3/rO4ePnN6VimbEwN1asf/FpqinNRAaod3nk7eeH/+nOQ0ZDyge+EbtoC91tAA8r7LaL/1hZYAAsMQyC7KDMNOUpnpBIi2YbmFx4jEQk7UN7MdCBgOJYp7wQODHVb2RBQru6bBr2WywVIMVRPRu7tz95VYftIiJsfPbhXHjm8z5TLQO3D+ScxZzlVzZlpsJxLioTfvJUul6+mSu7dYhnBQx0JOyqPFsCTjeB5PSrj8N3VxRnlFqNlL0B5HMAky3Fy/UK1QpSTPHn6onwGKaQeVOQhUS80NllVzVqI3GoK/p9/86eQNCuEOH+vSoP5+p/9pfiFhS+UCfR5lpkFNKBcZhOmu7syLDA0MCBZVy5JztXLUldWOjkogklVBQP1uxejaUC5GFY3wzkBmIrSrknGxeNK4sXT3UWByeefenReByeAcoCXclFyeefV8y/vTOA4AOmdNngsa2rrpL6+UYXFWT6RpBeCTheASG9PD6UpGRYaLH5+PkoofjFAdU4uhdo/k2u30oT5lF74TYhF5CJic8qCSIlRiP+zV340kZeLVBAXTy959od/gPzNudeI//Js6DUr0QIaUK7EWdVjWvIWGEB+0qX33pWSzPR7lXEYWl0vsTsOScz2AyDkuC7KGNaAkEOpGO2hXBTzz+ukzTXlKocy+8opeNnWqEo/X33mUXGHRuJ8PGvKSwlPpaki6fMalAV2HhkZBUDrUx5LltIcguwSvZds1jbWKF/JWuZW4gKhcpKSSFBajHbzdoa8+vp7UlhSLsPwoAbHJMj2Y19DBSU/iyswMN2jq61ZTr/yz9JWXw12uYMKdR9GLW8PP8uH2xfD3vqc87eABpTzt6E+grbAnCzAH+vu9nb59OWfo353sQzi5kYdQhdPXwhmH5TwTdsXzSPEfkyEvG0BQhbnRjonY+qNJy1AEkVDRaFcP/6adAMMxESGyLGH9sr2rRQ4N10CimDUICG0WOBqcpCrZIEeyfOoFf/yq+9IW0en2EPxIRIlWLce/YoCk5ZOxWD+ZFNVqVx+72Xpam0UV29v2bBlu2x/+BFx8fBcJbOghzlXC2hAOVeL6e21BeZpgcH+fvxYV8nxn/+btDU2qKPRKxiVvFfCN28Tr4DQeZ7B9N0JKFWlFmsyWDWgNN2Si7MnvUoZ5z+WqrsZsnZ0QOJjIuV3Xvq6ygecDwjh9cmwL72V8znO4lhl+Z21sqpaTnx2QV4HIYctFCVYN2zbv2C51R3N9aiQk4qUnFMg5HQgzB0iW448LBuStyJ6Yln9y+U3W7rHBgtoQGmwhH7XFlggC7Q3NUphepqknjiuPJU8LUHclqPPSWBUnDi6uC1QT758mglAifAmwIMGlF+2z1JfQ89STVGuZFz4WNpQPjIAOYD/6aUXJDwkWGkmmtr/idxasL7vEVM0qDTVksbtdyP1jpw8c1EuXElVO2zeewypMPvFc4EeNhsrSyBndgIPJlmqSlRgVLTsf/Z5CKpHgO2tJYOMm8XVt5UGlKtvzvWIF9kC1UWFcuPEJ2B35+HHuk+xqVn1YvfTL6rE+8WsUKMB5SJfHPM8Pdne3e2tcvXDX0lNYY64ODnIscN7ZQ90KQP955f7xnC3LfILmUs5n5zMeQ5xRe9O1vkQ6sv/GrmT5xDybmhqFf42MNQdhZC3DQoOLESryEvDNfRr6e1sU4L/EZsT5PHv/a7YOzmpHOuF6IM+x/KzgAaUy2/OdI+XsQUY7i5MuyMX33kTP9adSu+QNwzv4HBJfuhpJQ2ymMNTgBKVYAhqNWhYzJkw7dxkKo9BDufqR6+oGszjwwMSERokTxx7SBLiN87LS8nrgWxvVeMb4FJ7KU2bo5n24twNQP2hpLRCfvnq25KGSj+shsO68Zv3HQMpJnamXc26nl7uorSr0KD8lTouCTkbt++Qx377+2Y9jz7YyrOABpQrb071iJawBRorKyTn2hW5eXJCgJrF9zwDQ2XTnofFJyRSbGwXN5zEMLcVRM2ZM0fGt27L0wK5104rUNBQUaQG8Cj0KA+gcs6GqPB5AUE+cLB2Navo6AcO814bFGGvb2iSN9/5SFLTsqSxuVUckP6y68kXEWqOgXdwYZQfakvypfDOZSm4dVENkOHuTbv2ypbDR8w7YH20FWcBDShX3JTqAS1lC7DMIvUnK+/mqW6yLnTQhk2o3f01kB5sFdt7Mfs/AShRdlEBygUu+7iYA19h56YY9d3UC5OgwNXFSQ7sSZEXnn1Mha3XQsDe1EYgSYIOmd+a9W2qFb+8H3UxU+9kqMo4zSi7uM7KFpGLSNnzzLfF2d3b4oUG6CFlhaiMcx8rQEl2N9uWh45K0sFD4hsSqv7W/2gLzGQBDShnsoxery1gRguoH2uEIi+//w4A5WWEuydq87r5Bkp4/DaJ3700nv41oDTjpC/iofq6OgEoz0vauQ9ldHhIiXbv2Jog33j+CfFHLqUVHhjm05hHaUVQqchb2pM9H1tyX3onb6dlyvsfn5S0rHzkUQ4j/cVHVcbZcuQZsXO0PLOaYLKrtVnunH4X6RK3FLhcD23c/c89D0B5WNfvnu8kr4L9NaBcBZOsh7j4FqD2ZE9Hu5x94zXJT70x2aEQlFKLSNwpQWB3L4WmAeVSmIX594FVYQgK0s99pCrnjAEsxG6IkMeOHpCtSZsRtrad10kMrG9beikBLnX4e17mVBV7Tpw+L6++8b709PbLGLyF3kER0KU9ADLObrFeAGb10EC/lOemSd71M0rPlOkN9o5OcuhrvyUJ+w7Mb4B671VhAQ0oV8U060EutgWGBwelqrBAboLdXZ6XM9kdVsWJTt4jbj7+k+sWc0EDysW0vnnP3dZQIyXZNyXn0kmlJuDn4yXbt2yS5548hhKDTvM+GUElPZU2qCbDd03SMd2kRcWlcvzkOfnw0zMTB4FtQ2ISJfnwM1B+CFUkOdOPbtyevdCbvAFR/NqSPMXuXgfvpGdAgOx56hlFyjHuKHqr1WwBDShX8+zrsS+YBfq6uuTqxx9KcUaaKrWobsZgcCbuf0zJgZDNuRTaWrB3rUEMYhlIDRCWwoyY3oehwQHpaKqDR/y8VBdkyXBvl9Kl/K2vPKbIOaxbPd/Ga4Rhb4a/NaicuzUVKx/eZIa6z1y4KncLS9VBXLx8lWeS+pPUfaS30JJtaKBPmmsq5Mr7L0tnS4OSCqIWbfimzbINguZhcZsseXp97BViAQ0oV8hE6mEsXQsw3N3R3CQf//ynqJBTKUOQBiFwY6nFzXsfEYa9lwp4U4DSzgEhTC0Ls3SvKON6RrAyDFDZAoFzsnZri/JkpL9bNsdGy0MHdv3/7L0Hd11Xmh24iZxzzhlEIECAOQeJonKqoKrq6uDucrftttfMLM+aNT9g1ppZM56xPfbYrnaHCl1VXaqSSqVSoESJYgBzBEDknHPOiZj9HfA9gRQDAAIPL3xHenoX99177jn73Ke73xf2h/ycrGeSEbKMQtzdkvWtpNKCyMrfpcRibX0DfvvBp7hdXonx8SmjNZlZfADphXuYCJO14WRSRjvS10139w0jiD81Pmom4M1s/p0vnETunv2ITkxa+aT0SJdFQAmlyy69TtxWCIilqKelFb/7L/+RQe8D5rJSLzuWUiA5dHnHpeXYaihPvY5YJr0MoXSzG5L71EHrAU9FoLnyFmqun0dj+TUs0iJ24tgBHLsvI+SxDpqSQipFo1KslZL5rTGVT10SJt7Moq29Ex98dApXrpdSxLyf3gFfxKZuReHRV/j/ha3GU/D0np79CFEFuFvyOeQ+mZuZMh36BgTgxT/9Z0jOkepdtpEsevaZaA+biYASys1EX6/tEgiIgLnET37285+YxByZtAiHJ+UUMX7ygNGftBcglFDay0qs7zjmSV5qbpzDxQ//0WR9BwX4Ye+u7fjet15nnW9WPyEJfNYmVnaxcPswplIslvZidX/WeW3U+d3UnLx87Sb+29//ElPTMyYTPzAskrqTPzSk0i8weKMu/Y1+hUhe/+w9DHa10t09Zz73Dw7G9/7t/8I63ilmXb9xku5QBB5CQAnlQ4Don4rAeiMw2NOFWtbuvvSHDzE5tuRO8vTyRgZLqaUV7EZEXPJ6X3LN/SmhXDN0dn2iuL/baspw5+xHzOCl2DmzvpMSYnFgTzHd3wcQGhK8LgRQSKRkfRudSlorlVQ++rYYGxvHhYtX8dGpL1FZ22hkg4IjY2kNLGJG9Uvwo6C5JMXYok2OjRgR/Bufv2esk3KviEUyKTvHZHgHR0bqOtpiIZzgGkoonWARdQr2jUC3VMe5dAGl585iemLCDFZcW9sYcJ+UXbDp5RaXoycWJk8ff2OxUjKwHBnH3x5mnFxL1S1UXv4SY4N98PZ0Q2J8LF578Thyt2YhPGx93JrLSaUk6oj7W++lpftnnlq0QiavXLuFcxev4XbZXVonZ6nxGEiPxXZs3XOMcZMZJOWeG37DSejDLN3b8kOj7tYlxlBeN9eU2Mn4jCwmDB4zSTk+fptbvWvDgdALrBsCSijXDUrtSBF4NAJtdbW4eeY06ljDW2p5S/P288feV37Ah0cmfPwDHn3iJuxdIpSslKNZ3puA/sZecp4C52NDfYyVO22kYaQSijsL5uzYnofnJUknNxuiK7keTQikZCaLpVJiNOW+UmLJ5JfRMZTfrcK773+E6rpG4+oWvOMz8rF19xGj+CBYbXijFVLIZE9LPSqvnEFnQyUsyTixKWnI3bsPxcefN9WQNjrDfMPnqhewGQJKKG0GtV7IVREQ3UnRn5Q4StGjlObjH4hj3/lLhMclscTaxlsjVoq96lCuFCnHPO7evQXMTk3i7kX+wLl9CUM97ZT7ccfJ4wfx/JH9SE9LWdeJWYilxFRaEnZc2VrZ0NiM//zjn6C2oQVj4+OMm1yC+8Cbf4KMwr2s3R22rvg/rjO5D4Z6OnD23f9u7gFRAxBXt7Qj3/quETIPDA1Vy/LjANT9j0RACeUjYdGdisD6IVB/5zYufPA+elqbMT83ZzI3A0MjWNLsRwiJiuH/tDdWY241M1FCuRq0HPNYcXUOUZ+ypfI2qq+fo/JADyJCg1BcmIdXTx5DdFSEIX/rNTtDKiW2kpY3qf9tcYOvV/+O0k9Tc6uJm/wNJYLGJyYxTzkx+WGZkLUN2w6eZGWcNJu4ugWvkf4ek9F9m5WUpqhPKveEJApGs173/ldeQ8b2IhML6yjY6jjtAwEllPaxDjoKJ0ag+vpVnPn1rzAy0G8Eg+UhIg+PXSe/jYCQcLuauRJKu1qODRuMWKgGu1hJ584lZn9fwOTokCGSUu97787tSEyIQ2CA/7peX4ilkEnRqxSLpStIC4nVT+p0t3d04dLVGzjPuMlKipfLfr/AEEQxXjJ373FmUmfYpF63LKiEPrRU3aGV+nN0Uy5IsrplbfyCgrDnRYre79iF8NjYdV177cw1EFBC6RrrrLPcJARE1Lz8Ugm++OXPMT05aSwBIVGxzO7eg0zW8BZyaU9tiVD6GuuEPVlO7QkjZxnL/OwMhlkV5cpHv0RvW6NxhbszqFLc30Iq01OT4efnu+5uT9GrFEJpLJUkMryAuYazucIlAWeCwuV9fQO4dOU6Sq7cYNxkk4ktlSScmNRs8/+B9MLdNsvolntXKuFUXPrCZPxb7mWpihPJMotv/Iu/ZhnYGJuOxzIGfXd8BJRQOv4a6gzsGIHxkWGUnj+Ls7/5tTVGKZqJONtYIScqMZXWGvsouWiBcAsr5EgZSA9mmWowvgUV53wXK5mQSqndXHuzBB11FfzRM8bEHC9s35aDQ/t2UquymORinbO0hUASUiGQ4gYXYinvIjfkTFbLvv4B3L5zF+/94RS6uvtYBWcC9zhvH78g5O5/nhJB2xEWHQ8PSojZskn8bO3NC0vyUfcvHBIVxRjOIhx6423GcdpO/9KW89ZrbTwCSig3HmO9ggsj0F5fh7IL53DrzBdWFBIpFbTnpXeMi8smGZ3WKz99Q0ikPOA8PL2d6uH+9Jm75hGLi/cwPT7G0qBdhljW3b5MSaFeBPr5ICU5AcUFOSgqzEd0ZAS8STTXuwmptGR/y70n24ZkkmDKd8NRrJZCzi0v8UoImSy5fB3nL11HXUMzpmdmcY9xiiJcvnX3MUMmQ6PizI+39cb0cf3NTk+hv6MZZec/YVZ3FX88jFsPlZrd+159HQkZmfyRa1uCax2Ebjg8AkooHX4JdQL2jEDltasoJ6Gsu3PLDFPKGqbm78Ruxk8aawwfqPbUDKEkmRQXmLi/tbkGAhJTOdzbhcaya9QlLGXSTge23JtHfHQkdhQxaSQvG6lJCQgM3FiJK7n/lhNK2bYSTjv5rghxlGYhkPIucZKS2DI1PY3evn5cv1XOmMmbqKZo+Rxd39IkZjIuIxc7nn/LaM/akrjN0RItWd2Vl79Aa3UZK3b1mzHJf0S4PH/fQex75VV4Ux9X1kCbIrAWBJRQrgU1PUcRWCECN774HOUlF9DRUGfOCItNQjqr40ggvj02JZT2uCq2GZMRuqYVq/ZWCRpKrxiNQknYCA70xy6SykMHdiMnK4MZ4LZJqBEiKbGWFlf4w8TSVtZLC4GUVTAkksTxHkmkWBzlJWRyjqUtJ6kx29XVizvllfj49Dn0DwxZF87bLwBx6TlIL9xHrcm9tLzajrTJuooFurlCyiv+xiTlyMBMyAHDDHL37se2/Qf5Q3ebdby6oQisBQEllGtBTc9RBFaIQMmHHzCb8gL6OzvMGfGZ+Xyo7EFq3o4V9mDbw+RBJ7qYEkepFkrbYm8PVxMXuLhGa26cR/XVs7xvW4yFUOIq01OT8N03XkJ6WjIC1jkD/HFzN6SRlkmLHV8yxC2yQ/KZhWQ+7vxn2S/k0UIaySSxIOSR1kZJtpFm7JTcL8eJS/sys7gvXqFVsr7ZJOMI0ZQmP9K2H32NhG0HwmITKZ3ka/bb6j9TUlrx1kUm4pw2ckGyxtLECxERF4+DjJtMLyhQV7etFsSJr6OE0okXV6e2eQjIQ0asFqd/8TNUXr2MGWZ4S8ssPkCNt31GNmjzRvf4KxtCyYQcQyjpbtTmmggMUvBc4uykLN8ISzaOjwzAmxng2ekpyKf7OyUxnjJD4YiMCIenSeCyUL6NxUsIpJVECtFc9pIrW/62jOJxo7qvJ245TEyPhiDK99Zsy9/391n/5tFi7ROSKW2WmrJS+aazs8dUvamoqkVTazv3LcUmiiRYRHwKq+DkGetkcEQ0vHxsV8ZQrMsTo8OmrGJL5S30tbNmOPdJCwwNQ1xaOv9/tAOpufkIjogw+/U/isCzIKCE8lnQ03MVgccgIJaMsaEhfP5zVsW4fdN6VOGRV5BRtA8BNqqIYb3wCjeWCCW1AmlFsbeEoRVOQQ9bBwQkpnJydIRyQg0mtnKYMZVSVWewuw1JcTGIj4tCbFQkoiiCnsnqOiKG7uu7SYoFFlLJeVssmgKBhUyafcswsVoWl+2zEEoreRRi+YgmZHKa1a66mbXd1duHzu5edFBjsqa+CQODw5iZnWdCmyfjEmMRk5KFBHokxCvhSUF3W1v8J0YGGbpwzVib5QfCAvUnpXmzNndKTi7y9x9C8tYcSpf563f9EWutu1aPgBLK1WOmZygCT0VglsH5XU2NrJDzHitSVJjj5cG25+XvGf1JN8Yu2WOTMbobC6USSntcn80a0/jwAK2V5bhx+j0SzWGrpUvG8/ZrL+DQ3p1ISowzCTVuEh9oYXObNeANuK6QyUnqSnZ0d+Orc5dxq6wK3b1fJ7fIDzCxQAaGMpN7z1EkZhUgJDJmA0by9C4XFuYpWl6Lr379N1yvQWvcpJwZk5yKomPHseO5E0/vSI9QBFaBgBLKVYClhyoCK0VgcmzMuLpvnz3D5IZmWk7czMNm94vfRtq2XWJKWWlXNj1OCKWbuwfHKoTSPkmvTQHRixkERApnnBavdpJKkZ0Ri5elRYaHmrKNoluZxAo7El8pcY7O1oZHRlB6twpfnb9C13YHdSUnrRncMtdQakqKJFhm0X4jD+RNRQf5cbYZraelztRqr7j8Je7RzW1c+fcHUnD4CAoOHEIKXd3aFIH1REAJ5XqiqX0pAvcRmODD59ZXZ1Bx+SITG9rNgyUsJgEFh18ybjB7BUoIpYibe/v6KaG010XapHFJ/J24wZsrb6KrsRoDnS2m0o4bfxtFhochMT4GwUGBzARnbB5jLeNio02WttxTjtomWHO7l5qSnZ3dqGtsQW1jM1pIJicmp62xlJKFHpGQZhLtpC63fM+FSG7GvIU4CpkU+admxk1Kdre48aW58weib2AgDr35FmMndyKIcZTaFIH1REAJ5XqiqX0pAvcRGBscRMkfPmCt5NvMrOwzMYnJuUXIYlJOZEKqHeMkhNKNhFKsK85nZbJj4B1maJNjwxTIbjGVVvo7mjAxMoSp8VEmnk3QtTqDnMxU5OVkIoOxlWGhIRRE9zbVd/wYY+njI1WYlrQl7WnC4s6eYab2DOMjJWNbtqVsomhKtrR1oJnJNo3NbRhmwo24tuX7IXHGYsn3CwpF4tYC4+IWsfLNaOLinp6gQL1oiZZfQ3ttudGdlLEIsfULDDIlFaOTkplxfpS1w5NtHtO5GbjoNW2LgBJK2+KtV3MRBIZ6evDR3/4Y3a3NJsNbdOjyDpxAUnYhgsOj7ByFLQzUD9g0d52dg6PDu4+AuMGnSSLb68pYZacSva2NGB/qM/GVrNbIaju+yKClMjQkBFGRYUimOzyGQulBtGL6+HjDnT9cjEVcrOI2tmKaDG5a7kRPcmGe8yCRlJrbPSSQvXzv7R80JLKTupJDI6Nmxkaj1cPLfDciE9MYHxlnZICkhKrETW6We1sGJyS/g1n5pec+wTDDEUT6ydK8fX2RnJtnxMuNPJCRBOMCaVME1hkBJZTrDKh2pwgIAqI7+U//7v/A6MCAcY35BQZjz6vfRxRdYz4kl/bepKKPh6eXzR/09o6Ljm8ZAkLIaNmbnZ40BGZmapLWSpKy1gZKDlWir7WOlklWXaKl25MvEUQXofJEZoinpyYiNSUZEYy/DGXtaD+ST5EDskWbo9zPKC2NYxMTGBhYIo63SisxPjHFLO1ZzM3Nm9hIsz07h/n7epLh1JCMz8g31sigsChaKGlt5XdESpVulotb8BJFCRGir7kh9blrTAKOyBsJSRdr6t6XX6VUWTEiYuNMhretcLbFWuo17AsBJZT2tR46GidBoK+jHb/43/83JjIMmxn5BYXg4Jt/ivC4JJsLG68FUslWdefDUh8+a0HPNc8REjM3O43RwX7GVzabLOPu5jrKZ/U+YDELDgpARFgIwhl3GeDvRwtmsInBjKYVMzAgAP7cJxJEvnSPS/3wtd6DS5bHaVawmcY0VRemp2cp7TOE7h7K/fAlru0JIZVDw2jv6CaJZPnE+/GGsoJCxgJCIsx3Nog1uMNiEo1FUiyTXhybJNptZpOxzlMKqKXqDhruXDa12MXtbWkiDySu7YNvvMUa3VlmzJbP9F0R2AgElFBuBKrap0sjME8LSHdzE37zH/5vCguPGCwkzurQW38GsXKIZcPemydjw8T6YmvtPHvHRce3MgTmZkgsB3pNYogk74jskFgyRWh7bmYK4i63NLFORpJgSlKPkMvg4CASS/8lYkni5s/PhVy6ix99BU0q2QiJnJqaodVxAmPjE4Y4yj5xYbdRN7Kbbu1HNVE2EM1I+UHlT63Y6KR0oyMZTjLpSy+DfCfsoQmZFPLY39mKuyWfobulFlIRx9LEOhkaHYPiY88jZ/ceFS63AKPvG4qAEsoNhVc7d0UExoYGGRhfji9++XNMTSxVzfAPDsXhb/9zhEXH2c1D6Ulr43HfnSeZodoUgWdBQIjk2BBjExljKSUAB7taGVe89L1Yqk/D3pdZBq3C4/f3xcVEIpUal2K1fFqspeSTD4+MoZFJNMMj46Zc4gNjJ9GSY75u/Mv8u7TXl8krYoGMSspAUs528wPQ3kJUhExKxn0nM+1vffF7Jkg1PmABFsupJ8MLErKy8dI/+xECQ0L5/5zNkS/6GmfdcgUElFC6wirrHG2KwKMIpZRhe/6H/xoSe/W0h6JNB/uYi0lMmMSG2YtF5jHD1N0OgIDEWQoBmmOiyASTR0QYXaxrs1MTmCKxnJJ9tK4JyRTrvlg3Z/jZNDPH5VwvLw+TJS5JPIb9PWXO85LxTPe2vFt4qnznJDHO28ef7/5MrAk0lkjJ1PZmAlogXdsSluLrH2Q+l3rbcrwnvwPi+raXdo9zGuzuQNPdGxSaL6UeaIex+Eq4gTvHaarg5OVTmiwbcalprNaTsqnxnfaCm47DNggoobQNznoVF0LgcYTy5J/+j4zJCncIJIyVg1ZKR3DPOwSgOkiDgLGuCWlkrOX87Axm+T7LZB55yT5xhUtcoPmMrnHZL38vLi7VzxaiufT3o0sjykUkTEOIoIent7l/PbwkdINJQWJ1l/18idyPyGK5M2vbk+50IZJe1F715Dn2RCCX3zazJNpSV73m+nm019812wvzS+UU5YdfRFyccW/HpKTRshrL/9eoZXI5frq98Qgoodx4jPUKLoaAMxBKWTIPLx/z4HUEi6qL3WIuM11jySSRktri0sS6OUuiuXj/70cBIdZ1sUQKQRR3tUkwc3BNVQkbGOxuNwk4lVe+fCBeUjAIiYxC9o6dOPLt75IUU53BRhnzj8Jf97kuAkooXXftdeYbhIDTEMr7Fh57tdhs0PJpt3aHAK2R9w2Sj7dLfnPQJiqSrm5naBIvWXvzAqqufkUyvWStXT6vrbt2U7D8GDIKipbv1m1FwKYIKKG0Kdx6MVdAwFkIpTsD+cVK6UGLjzZFQBGwLQISHiCWyTZWvZFSilLucoL11Jc3cdtnFu1A7t59rM2dB7+AwOUf67YiYFMElFDaFG69mCsg8DhCeeKH/waB1LNzFBeyWCZFi9KTpNJRxuwK95fO0fkRkOSb0cE+dDVVMwHnJjPkG+juHzITl+9lcHgEQqOiKQ0UjbSCQsQybjIoTGtzO/+dYd8zVEJp3+ujo3NABMaGhtBcUY7Pf/Ez1ji2yAaF4dg7f8VYpxiTdekI0xIS6SYVThiP5uYmrkPncB86AvY6RtdEQJKP5lgGcnSghyUt77ICzlVqTTZjgYlM0oRMhkREIoWZ3Kl52xCXno6A4BCTYOSaiOms7QkBJZT2tBo6FqdAYHJslMHzVfjkH/6WhHKpcoVfYAj2vfYDRCakwptlDR2lyQNMkhpE8FmtlI6yajpOR0VAJJN625pw+6sP0VlfYbLeLQlJMieRBdr38uvIKt5hMrnl+6nfS0ddbecbtxJK51tTndEmIyC1daVSzrv//t99XSnHEMo/IqFMcShCKdmipmoO4yg3u9TcJi+rXl4R2FAEhns70VpThmZqTPZ3thitTssFJVYynLW4M7YXIW/vfuPulvKP2hQBe0JACaU9rYaOxWkQeFQt7/2v/zEi4pMpaeLnMPMUQmkRONcyjA6zbDpQB0NASlO2VN1GzY3z6GtrpBD8vJmBfP+8KX8Un5Z+382dz9ri8Yxrto8SkA4Gsw53gxFQQrnBAGv3ronANwilWChfp4Uy3sEslPfjKKWiiJZhdM17WWe9cQhIJrdoajaWXyeZvICWylvWi7kJmaSLOy4tA9uPHDOE0tffccJlrBPRDZdBQAmlyyy1TtSWCDxMKKXUW9Hx1xlEn8MgegfLxiSplLhPEYzWeC1b3kV6LWdHQCyRkyw9efmjX6K16o6RCbLMWSSA4tIz8Nz3foAQZnRLPW79/lnQ0Xd7REAJpT2uio7J4REY7O7Ghz/+/9Db3saHxLSp2JF38AUkZReYet6ONkEvEkop76YPNEdbOR2vPSIgkkBDrMPd39FMF3cDeows0LARUvDy9mZoTAISMjKRnJtv9CVlnzZFwN4RUEJp7yuk43NIBEb6+3Hm179ES3UlxoeHTaZ0+va9SC/Yw+D6RIebk7i8hVBKVqk2RUARWBsCUod8gnqSzRW30NNca8opDvV2mOo3vgEBCIuOpYs7jcl7iYhKSmaITDz/3+GrP+TWBreeZWMElFDaGHC9nGsgIFqUVz75CLW3bmCot8cktsSmZrOixXHEpGQ5HAgicO7BUozidtOmCCgCq0dANCbHR0gmK2/i7oXPjIXS0ov8WBNNyby9B7DtwEGSSM3gtmCj746DgBJKx1krHakDITAxOoI7587i7qUS9NHtLQ+MCGpQbjvwgomjdKCpmKFK/KQl29vRxq7jVQTsAYGZqUlWvqnBlY9/hbGBXszNTluHFZ+RhW37DyKfZNLbVy2SVmB0w6EQUELpUMulg3UUBKRCTs3N67j55Wk+RBoh8h8+fgHYdfLbSM3f6SjTsI5ThM09vWih5EubIqAIrAIBZnKPMGayo66CWdw3TW1uqXwjFkvRl/QLDMKO504ge8cuuroTVtGxHqoI2BcCSijtaz10NE6CgCTitNfXouT3v0NrdZWZlUiE7H35e8gs3u8w5Rcty2HRo9S63hZE9F0ReDICC/NzRpx8uK8bPS31aK8tMzW5xTLpywxuv8BABLL+dnRSCl3d+0zcpIaUPBlT/dS+EVBCad/ro6NzUAREDmRsaBCf/fwnqLv9tbacSAdlFO2DX0Cwg81si3HbS9Uc0cfTpggoAk9CYNF8/7saq1B97SzDXpowMzVhvjuejI9MzMxGXEY64ikLlJq7TZPdngSlfuYwCCihdJil0oE6EgJijby3sIDfUzqo8spl69Bz9hwzhDIs2vFcWyaO0tsHHnR/M+3UOifdUAQUgQcREOtk1dWzqLryFYb7OyHZ3Yv37lGDNgQZhUXYdvAQIuLi4EE5IG9+p/T79CB++pdjIqCE0jHXTUftIAic/sXPTWKOJOlIS922i/V491IaJMdBZvD1MMXtLaTSixJCsq1NEVAEHkRAPBPTE2Oov3MZTazJ3UuNyfnZGXOQyALFp2cy7OUVRCenwNc/4MGT9S9FwMERUELp4Auow7dvBC599AeUX7xAl1erGWhcRi7SC/cizQETc2QCUs/bi8lF4vZWkXP7vvd0dLZFYI7EUbK3u5qqcffiFxjpo2WSlkpp/kHBpupNZtEOIwukVW9suzZ6NdsgoITSNjjrVVwUgdtfnUFZyXlmdlYbBCJYyzu9YDe27j7qkIiIZdLLx8/U9VYrpUMuoQ56AxCQ8JYhEsjmuzdRfuFTTE+OGxe3fEeEPKbmFbAe91FkFhVvwNW1S0XAPhBQQmkf66CjcFIEmioqUHbhHK2U580MRXYnJa8Ye178LkQs3NGsfDJeIyHEuC95d7TxO+ltptPaRAREAqijoZLJdxeNNJDU5r7HeEl/ygHFpqZi6669LGaQgpDISEqH+W/iSPXSisDGIqCEcmPx1d5dHIHh/j6UUuD8wgfvWZFIyMzHTupRBgSHGR066wcOsiEk0kOSc0iIxQWuTRFwVQSkjGJPcx3qS6+gm6Ll48MDJsHGi9+P9IJC5OzajcTsrUZrUjQntSkCzoyAEkpnXl2d26YjME/rRen5s/jsZz+h1WLBjCc6ORPbDr+EKFbOEbFwR2xLpRilHKOXIw5fx6wIPDMCU2Mj6GS8ZO3NC7RMVmJ2etLI/0gNhkRYAABAAElEQVTZxIR0Vr45eJDx0kW0Svo987W0A0XAERBQQukIq6RjdGgEyksu4NTP/oEPnClWx1hEeFwSsnceRtLWQpZZc0wX2BZaJoVMetISo25vh749dfBrQEAkgBrLr6Pmxnk0V9xc6oGWeyGPkfGJeP4HP6RgebKJn1xD93qKIuCQCCihdMhl00E7EgKVVy/ji1/9gu6wIaNNGRQeheTcYuTsPsKKGY4mcG5Bnm5vLyGUKnRuQUTfnR8B+UE4PTmGupslaK68jf6OZiMTJDMPjYpmfHQ+Cg4eNiUUvX399MeW898SOsNlCCihXAaGbioCG4FA3Z3buPC796hJ10KB4zmTJR0el2jKMAaGRTnsQ8cidO6uyTkbcdton3aGgJDJ0cFedNRXoOb6OQx2t2NmktVv3N0NmZQMbpEFkuo3Ei+plns7W0AdzoYjoIRywyHWC7g6As2VFbh66mO08H12Zknk2Mc/EMfe+SuExyY5ZGKOrKkk5Egspbq9Xf0Od/75Ly7eYynFfrTVlKPuVompyS3VbzxZ6SYoPIJEsgi5e/YjLjXN+cHQGSoCj0FACeVjgNHdisB6IdBaU4XrX5xCw51SxlFOm269KQ6+77U/YpxVhsNKiWzZ4gY3WmK8qUupmpTrdbdoP/aGgFgmpZRi6blPKA10CUPdbSYWWsYZmZBIofJDxs3tHxysVkl7Wzwdj00RUEJpU7j1Yq6IQFdzI0pLzuFuSQnjrSYMBF6Mr9rx/Ft0j+XAn/JBjtpM5RwmFonbT118jrqKOu7HISB6kiIFdLfkc7TXlbP6TTfmZpd+FKZtK8DWnbuRtq0QgaGhDutpeNzcdb8isFoElFCuFjE9XhFYJQIDXZ2ovnkNVz/5GJNjY+ZsSWbJ2/8cknOKKHgcu8oe7efwJU1K3/ualG72MzAdiSKwDggM9XYyVOUWKi+fIbHsZww03dxMRotjTe68fftZQnUbv79R63Al7UIRcHwElFA6/hrqDOwcgbGhITRXVeDLX/0jH0rDZrRSMSdt2y5kbN9Ht1mqnc/gCcOjVIq7uyczvr01EeEJMOlHjoeAJNw0lF1jKcVTGOptNwoNEjMZGh3NSlevICU3D8GMn9SmCCgCSwgoodQ7QRHYYATmZmeY4d2K9/7Tf8DoACtpsEmGdExKFnL2HEN8Ru4Gj2DjuxdC6eG5RCo3/mp6BUVg4xFoLL9xX2fyhqnLLVeMTk5hzORBvg6z+k2ghnls/DLoFRwIASWUDrRYOlTHREBEkEcGB/D5z3/KOKxaur1H+SBygzfr+hY/9wYyivZji2NOzTpqScpx91jK+HbjtjZFwFERmOcPwCHGSpae+xjtNWX8vi55FWJSUpG9Yxfy9x8wmd3ujBvWpggoAl8joITyayx0SxHYMASmxsdx88vTqLhyCX3tbdbrFB59xVTN8aWMkKM3N+pRSmyoavA5+kq67vglm3ukvweVV86g6e4NjFF3UrwJweHhjJk8gKwdOxFLYqlNEVAEvomAEspvYqJ7FIF1R2CO+pNtdTW48slHfFCVW2VHUgt2U8NuHx9S2et+TVt3qFZKWyOu11tPBMSTIFqTrdV3cOkPv4BYKoVMSgZ3VvFOFB4+Ysopruc1tS9FwJkQUELpTKupc7FbBJa07OZx+hc/Q9mFc5QemTVjDWKlnNT8ndh+7FW7HftqBiak0ts3QGWEVgOaHmsXCMxMTaKWtbnLzn/Kijh9/NF3D2HRMUycK8bel16Bf0gIE9DUzW0Xi6WDsEsElFDa5bLooJwVgcqrVwyhrC+9babowUoz0cmUIDn4AiJiEk3VGUee+9cyQp6mko4jz0XH7hoILCzMmxKKtTcuGDd3b1uDETIPi4k1lklJwomIT1Ay6Rq3g87yGRBQQvkM4OmpisBqERju62Pm6HVcOfURJkdGsLCwQGHzUOra5TLj+yiD/aP54PJYbbd2dDxlhDw9qdUnGd+edjQuHYoi8GgEpsZHWZ+7EuUln6G/vYlakzPGwl7ATO58ksnkHMdXYXj0zHWvIrC+CCihXF88tTdF4KkItNfX4eqnH9MaUobpyUlzvAfFkve8/D3EpeVQjiT4qX3Y8wFipZTkHJES0uo59rxSOjZxaw92teP65++hq7EaU+MjlL+SJJwIHP/eDyhcXmDqdStSioAi8HQElFA+HSM9QhFYVwTGBgfRVHEXZ997l7qU/aZvyZBOzilkgs4BxKZtXdfrbUZnRpdSrJQObW3dDOT0mrZEQOImO2mdPP/+37Es6hhd3fMIi4nBse9+H4mZ2fQeaH1uW66HXsuxEVBC6djrp6N3QATmmZAz2NODj//ux+hpbaGLbc5Y8vyCQrDt4IvILD7A+EPH1nKUGt/ujA/19PZRK6UD3qOuMOR7DDfpbKxC7c2LqLtVwko486xalWi0JouPP0dPQZCRwHIFLHSOisB6IKCEcj1Q1D4UgVUiILqUp37696Yk4wRjKS0td9/zpnpOAOMqHb1ZdSmZGSvZ39oUAXtAQNzcC3Pz6O9sQUPpFZOII3W6w2PjkFW0Azm79yAqKdnhf9TZA9Y6BtdCQAmla623ztZOEJiZmsLVzz5B1bUr6Gv7Wug8MbvAVM5J4rujN4mf3EJLpYqdO/pKOtf452amjSyQyAO115azEs4QfPz8sOvky7RO7kQkM7q1KQKKwOoRUEK5esz0DEXgmREQN3cHk3OufPoR6m7fsvYXHBmLlLwd2H7kZes+R94QUunm7skEHS+T9a1JOo68mo4/drFO9jGT+8Zn76Ovo9kk4fgFBiCjsBji5o5KTDJJOY4/U52BImB7BJRQ2h5zvaIiAKnKMTUxjgu/ew+l589hllYTaWLNi8/Mw4HXf+g0BEzqlnt4e/NB7a1uRL33NxUBSbxprS5FyQc/xez0JOMmFxARF4+Db34LKbm5CAgO2dTx6cUVAUdGQAmlI6+ejt3hEbj5xWncPnsG3S1N1rlEJqRi98vvULok2ug5Wj9w4A0RcJfMb9WmdOBFfMLQt+Ae3LEAT8zzqEXz1zw8uMe+KstI3GT97Uu49eXvzWy86epOyt6K53/wJwgKC+P3zesJs9SPFAFF4EkIKKF8Ejr6mSKwwQh0NjWi4vJF6uCdwj1aLVnvDQGhEUgt2IXMwr0ICIlwiixpSdARUilZ39qcAwEpJyoWPrctgJfbPAK2TCFwyyiEXM7AB+OLAZiGL/9yI8WUtoXvPHiTmri7G0qvoerqV2irKTXi5bEpqUzC2Ys9L76siWObtC56WedBQAml86ylzsQBEZidmaELrhIXP/zASAjNTk8bqRIf/0AUHHkF8ek58A9y/IxvsmJjnfTy8eWmm1OQZAe83dZ1yEvu4zsI9V1EepQn0qIoFbVlwVxjcXELbZUehlBOLfry3c9sT5Bkii3T1k3I5OhAL+5ePE2ZoBJqTo7SxZ1vMrrTC7bTGxBOvrt5ZNfWeOj1FIGNQEAJ5Uagqn0qAqtAYHRwAI3lZbjyyR+MPqVYfSR5RWp8ZxTto0tuOy173qvo0T4PFekgcXmbWEqREtIHuH0u1ApGNc34X6l5XXruY2QlBmNnbgzy00nKljWxRi6QVM4temIOXpiFN0YWQzDKl1gubdWkVvc0yyuWl3yOlspbTMQZZm3ueBQcPILkrVsRHBmlsb22Wgy9jlMjoITSqZdXJ+cICNy7t8CH3Dg++9lP0FJVgYnRUeuw0wv30IpyDGGxiU5DwMTtLaLnWkXHuswOt9Hf2Wo0HEvPfoSDO9NxYGcmtmbEPXEe4voeXwxC72IshhbDjQXziSes04eTYyPobqrB5Y9/RStlj0nC2fHcCSNgHhjqBNb/dcJJu1EEnhUBJZTPiqCerwisAwIL83MoK7mAsgvn0VZbbe0xNDoeyblFtKa86DQxXkabkgk6WuvbuswOt9FSddu4jyUW8dsv7cDe4nREhq+sBn3/Ygz6+BqmpdIWrae13iThdDZU4h6/Z1Kf+7W/+pfw8vGhZdL27ndbzFmvoQhsBgJKKDcDdb2mIvAQAiIjNNzfR7f3Ryi9cA5SnlGakK4Yur4PvPHHfAD6mUSCh051vD8lnvK+NqUk6mhzLAQkGafyyhmStA8wPtSPv3jnMHZtT4Of78rCMsT9PbIYhs7FREh8pVguN6pNjAyxEs51XDv1G8yybrfU6ZYknENvvU2Lv8bybhTu2q9rIqCE0jXXXWdthwgszM/j5pencfPMaQx0dlpHGBoVhx0n3qKrLgXefv7W/Y68IQ9zE0/J2FCxEmk8peOs5tjwAK2Tn6Oi5BS8Pd0Modyel8wfCSsnhtOLPuibD0X7VDDmPVgz20uStdYvKUZI7/zsDJoqbpoknLbqO/DxD0Dm9mLk7duP9IJCxwFcR6oIOAgCSigdZKF0mK6BQN2dWxQ6P4vq69esE/YLCmFGajGydh4y2pTWDxx8wyTpUOxctP/U9egYiylEraO+khbKL9FeeR2JceF457U9yE6PXdUE5hcWMTo5j5L6e5j3i0VQVOK6qhlIYttwXxfuMMazoewqCwksIJVZ3UIm07YVwC8waFXj1YMVAUXg6QgooXw6RnqEImAzBPo62lHJ+t4X3v+t9ZruHl7mYbv/jR8iOindut8pNmip9Pb1N1JJ62mhcgps7GwSQiZFfqfmxgVa/S5goqcJ+4rScWRfDuJjw1Y12pnZOfT2jeC//eIs7vnHmh9LW3ceXlUfTzp4jtZJETCvunYWfYyh9A8Oxhv/4q8Rl57hNMUCnjR//UwR2AwElFBuBup6TUXgMQi019Xi7qUS3Pjic+sRS+5hD+w8+W0kZm2jdWVlyQ/WDux6Y4up8y1SQu4eHnY9UlcfnBDKe5TgEatffekVYKIfJw7lMn4yA1ERq7sn791bxPjEFP7zTxjeMe2JpNxd2P3id9YN4pmpCcZN/tbIBE2ODtGyH4G3/vrfUIorZV1d6+s2YO1IEXACBJRQOsEi6hScB4G7ly7i9ldfooVi5w+31G27kUEZoTiKnTtTE3e3yAh5qOvbrpdVrJMLc3M4//4/GKIW6L2IN17YjvytyQgLCVj12MVK+dPfnEdT1xRCkvNx+O0/W3UfjzpBKk5NjAziq1//mMUC6uHL8opp2wpx8I03EULNSW2KgCKwMQgoodwYXLVXRWDFCIjlRxJyJkZGTAnG0gtnjS6lJUeBH5vmHxSGjO17jXvQNyDIqSwtltKM7p6enJdm36745rHhgaKXOsdKTqd++u/RUXcXsVHB+P4be5GREoPAgNULlc/OzePDU9dR0TQMr8hMHP3uj555NvJdkgo+PS31KPndTzA1MUKrfjZLK7LqVEYmfEgutSkCisDGIKCEcmNw1V4VgRUjMEeJoLGhQdw4/TkTCO5gsLuLsWqL8PRwY31vkk2+pEmMYWhMApJzipCz55ipje1McYfWzG9KJblpJZ0V3z+2OnB+bpY/eoZw5p/+K7oaq5EQE4offf8I4mLC4OuzevmnjSCUoufaXleBW2c+RH9bIyvixCFv7wHsPrmk4+pM3xdbrbteRxFYKQJKKFeKlB6nCGwQAt0tzbh++jO019ZAyjCK+LKfjyeOMdlhanoWNQ1daOseIskESzD6QMTOc/YeR3RiOsRS6UxNSKVoby5V0lHRaXta29npKQx0teHi73+GXrqSkxMi8G//8iUEBfrCnWU1V9tmZufx8/dKUN8+huCEnHWxUHbUV6DuzmU0ll7lcO5h14mTKDh0BKFR0asdnh6vCCgCq0RACeUqAdPDFYH1RGCEYuY1t27i0h9+j6mxMZLGBUSEBqAoPxkHd2VhYnIaN0qbcOZytbFWyrW9fP1Mne9tB16gBcb5kgyMPiXjKSVRR5v9IDDFetidTdW4+fl7GOpuQ3pyNP7nv3qZ1knPNQ1yemYO/+kfTqNzaA5xWUU4+OafrKkfOUkKA8xMT7Je9ynU3bqEMZZYDI+Lx6E33zZC5mvuWE9UBBSBFSOghHLFUOmBisD6IiAPwcprV1lu8ZxxdUvvfr5eyM+Kxx+9vR9BAX6YmpnF3eo2/MO7JZAkBnGBW9rBN/+U2bFF8HSyajOiTykVdDy8pDTe6i1fFnz0ff0QkBCMcSa6tFTeQvmFU5gZ7Uc2a3f/qz8+Dh/v1RPKe9LfxDT+r//2MUZmvU1s8K6Ta8/yFnd8f0czw0Z+h1aWhRRt08yiHSh+7nmk5OStHxDakyKgCDwWASWUj4VGP1AENg4BeUDPTE3h7G9/TRmWM5hn9qy09KQo7NuRjhOHty3V7uZxzW19+Mf3S9DePYzJqaWSjHLs9mOvITV/B4LCnC9zVZJ0JEHHk1ZKIZjaNhcBScgZHehF/Z1LqLl+Hj5bZmhFT8V3Xt4BL6/Vyz1JKEdnzyD+9lfnML0lCBlF+0n+3ljzJKcnx1Fx6TTqqD05SLe81OkuPHoU2/YfQlyqk2m3rhklPVER2FgElFBuLL7auyLwSAQkEae+7DZufnEazRV3lxJugnyxf2cWX5mmAonlxP7BMZy/WoWLN+rR2z9q2Y34zHyWktuH5Lxi+vy+tlxaD3DgDUme2CJyQh6eRp9yKUlHieVmLKn8+JFkl6GedpK2L9BSdQeJEd44tFvu1Sx4eKw+1rVvYBS3yhpx6txdeATHIWvHQeQzhGMtTUosDvV2ooSxnQMdLdTKnEMQdSePfue7SMrOQUBwyFq61XMUAUVglQgooVwlYHq4IrAeCExPTOCr3/4TBaLvYKSvzzyUD+zIoHUyE1lpMbTMfW31maJVsq2rH+/+4RoaWnoxv3DPDMEvKBRp+buwdc9R+ImMkBNa8kSj0o2C50vEUiSF1q/e83qsoyv0IWUM5+dm0NfehBufv4/+zmYUZcfgpWPbkJIYtaawhLqmbvzu0+u8n/sQmZqHrbuPIp0aq2tpY0P9aKsuxdVT7zIOecRoTWZuL8LOF15ESESkCuavBVQ9RxFYAwJKKNcAmp6iCDwLAvKAHh0YwPv/+T+ip60FW5iNGhLkh7/8o2Mm0cFrGZmU64iFSMSaf/bbEty624zh0Snr5aOTSUBp3UnMLnDqknJCKCXDXVzhSiqty2+TDbEASinDnpY6nH/vHzA3NYbj+7Px5skdRi5otesh9/KNsiaTkCMTyGbJxbz9zyMmJWtN8+lurjWW06a71yFjFRHzI9/+LiKYlCOxlNoUAUXANggoobQNznoVRcCKgJDJhrtlKPngPYxwOz46GEf2ZGFvcRZCgv0fSZjEo11Z24azl6tw5XajtS9vvwAjH7Trpe+wJGPImqxF1s7seMMk6rCmuSdj40RaSJvtEJhlGcNpvjqpPXnu3f+OmIhAPHcwj69cuK3BYjwyyrKIdxrxs/cumkmIqzv/4EmEUQ5rtU3IaStd8Le++MBYTkW4PG/fARz77veMZXK1ZHe119fjFQFF4GsElFB+jYVuKQI2QaC1ptrIBLXVVmNxfhZ5zOr+7qu7WQ855IkJDmPjU7h4vQanz99F/9AEJFNWXML+wWGmek7S1kIm6ETaZA42vwiJi2R8e3pT85AucCWVG78CS5ZxqY4zhUHGT0qG952zH2N/cTrjJ7ORl52wpkE0t/bg0s06fHr2rjlfkssKj7wMf4ZwrKwtGqu9VJeal1hk6k5eo7tb6nen5uWj4OBh5O8/uLKu9ChFQBFYNwSUUK4blNqRIvB0BMaHhlBFqaDzv/stH4CTrDYSQstkOuPRtsPd/eklB+sau3CZD+NbFS0YHZvG3PyCkdgRsfM01vqOTd+KoNBIp4ynJIu0xlK6i+ubBFMtUE+/59Z6hCV2Uu7T1uo7aCi9gr6WGnz35V0oLkhBRNjqRfWFpF6+UYsLV2tQUd9FTVV/k92dv/+ECWl42lgl21zktu4tkEyydKMkCtXdvoiqq1+Z5JuiY89Rd3KPcXc/rS/9XBFQBNYXASWU64un9qYIPBYBeZjW3ryOspLzqLl5w1QXOXE4F0f35iA+Nvyx5y3/QAhkV88QPj1zB1V8IA+OTBprjRwTxrKMqfk7kVl80MimOKsVz5KoI1qVGlO5/O5Yv225VyWzW9zdY8MDqL52Ds3llxHo44Y/f+cIstPjaDFeXYIUu8Q8rYrvfXIdZy5VUVd1AVHJGSg8/PKKEnLEvS16kwvy4tjkVXPjPJru3sDEMHUxd+xG0fHnkMCa3doUAUXA9ggoobQ95npFF0RAHtCS2PDVr39FQnkB8zPTiAwLwGsvFGNfccYDWd1Pgkf6kRrIg3R5S5ZsGUXPJ+5rU0riSjQf0JlFBygplOfUSTpimRQLpaePHy27mqjzpHtmLZ8tWQBnMcv7tJ7ajg1l1zAz1IFtDM94+XghEuJW9gNo+bWFEA4Oj+P9T29QAquOPwY8SQBfR1rBHoTHJi4/9BvbYplcIpMi7s9tfpeG+7pZFOBT9DApJygsDK/95b9EVEIiLZ1aYekbAOoORcAGCCihtAHIeglFQHQnO5sacOnDD/hwLoUntfsyU6Lw0vHt2J6XvCqAxNIjD+dTX5Xi8q16tHQMWM/3DwlHfHouRc9fha9/oHW/U26QVC5V1GHtb5JKbeuHwAJje2enpzE1MYZrn/4anQ1VCPLdgueZjLOrMI3u7tXfW/O0rje09OCTM6VUK2jhDx4fHH3nL5FAPdUn1aSXe12skUIiF0km5UeVlIGsunqWmpi3uX+KfWThpT/7CwSGrjQOc/2w0p4UAUVgCQEllHonKAI2QGBqfBw3vjyNyiuXqOfHSh6sLrKD9bqPH6AGH0vYraVdppWnhEk6ZdXt1tOFYAVFRGPXC9+iCzyRrm9f62fOuCHubw9apGTezuri34x1E/I2SU3Hod4OXPnoVxjoajVi+99/Yy9SEyMR4O+z6mHNzs7jZjnr0l+qRF1zv0nCee4H/wpRSekmNvZRHS4uCpmUeMklV7ccI3+LkPmVj/8JI/1dxjqZVbwD+199nUoHq4/rfNR1dZ8ioAisHgEllKvHTM9QBFaHAC0qo4OD+Ojv/obSK/UQUXOpf3xoTzYO7spCGsstrraJleYKk3NKrtc+QCilHyGRqQW7TZJORGyiyQSXhBZnbe5S95svq+vbiedqmzVkWAVd3cMkbc3M7JZSixKjmJkSjb/+0+cRGOC7puo40zNz+Opipcnw7h2ZR2zaVux9+XsIjox57LSESC4nk3LgxOiwkTC6+fl7JrM7NjUNBYeOYNuBQxDZIG2KgCKwOQgoodwc3PWqLoTA3MwMetta8fsf/xc+pHuMu9rfz5tSQbtQkJO8avfhvAijj03ig1M3cZvZ3iJ0bqrkkGQK0ZRt0aeMpVC0CJ5b4imd1YJniaeU8ozu1Kq0lGnUDPDVf8nk/hHr5NzsNLqbak31mbHBPkSH+RlX9+snigyZXAu2E5Mz+M1HV1Fa1Qr3gBgUP/8m4tJyeK/6f2OgYpmULO4FVuiReE4ZlzTJPG+vu0tL/1fo72g01srM7cU49NbbiEpM5g8Lz2/0pTsUAUXANggoobQNznoVF0ZgbGgQTZV3ceZXv8T4yLBBIpAuw7/8wVFkssyiv9/q3IdDIxMoubYkcN7ZPQx3VpBJyc0nWe1lokKvkSOSi4jQucgJxaRkGmulxKkZ4umkayFzW8oAl/rffJFgals5AkLahLwJmZwaG0VbbZlxd0v8oiSOnTiUh3RaKddCJhfuJ+T87S/PomtgBtEZ27Dn5XdMnK9k6i9vQhoXWI97fm4Oi8vIpBwjbvgG6k7evfyF0ccMZmlFETLf+/Ir8PH1c+r7ezlGuq0I2CMCSijtcVV0TE6FQF9nO7Unr+D6Z58xmWDMzC0o0Bf/01+cRDLj0SRBZ6Vtjlab5vY+/OTd8+jpH6MO5SJJYzSOfud7JjazsbwMHfW1VouOiIAHBIdj14vfQWRCCt3hzu8SFIIibnBPL+81kZ+VroWzHWfJnhYiN9LfTSHz27j15QcIoDX9lee248WjBWtydQtOE5PTaG7rw9+/ewFb/GNMudBtB194CEIhtLRMMiFogWMQcvtwk3ridbcuUnvykvkoZ/deI2SeWVT88KH6tyKgCNgYASWUNgZcL+d6CHQ1N1Eq6BzKKRck8ZPSpHb3//rXryE+ZnVZqYNDYyijy/Aff3eZOn7z8KZVJj49E2/+q79mr1soo3IOZ9971zyQLW5CqYGds/sYUvKKjcXSDMDJ/yOkUsjzkvvbeeNH13MZxRI5Oz1pQjIkCaep/DoqL3+JHCaNSanF3dvT1ny5zu5BCprX4KsrtUjYdhA5e49T4id1WX9L4RpzzCwXQini5Y9qjZQvaii9yhjKKvNj4cQP/xT5tFD6Ba4+6/xR/es+RUARWDsCSijXjp2eqQisCIG2uhrcPPM56m7eojt6ylh80pMi8CffOcJyi6vLSq1r7KS7uwYXrtebKjkxKanG5beDgs5ilWuprMD1z0+huaoCErspTchVWHQC8g6cgJRnlBKGzt6W4iqZAe7FZB26v8UVru3xCCxJ84hU0JQ5qJvajo0kbg2ll3FsbzYO7MpmeEbs4zt4wicLtDrKj6DffnwdfUOTKDz+JnL3Pgcf/wBzlsXVbpJvmMG9RCaXYiYf7lYq4jSS6A4z+zw0OgbHaJnPKNxufjg8fKz+rQgoArZFQAmlbfHWq7kgAq3VVbh2+lM0lpUZbb+wYD/kZ8Xh7Vco6By6csuK1PK+cqsOZ5gp29k7AqbfQORS9r78KuJSRXrFg3IqPXzglplqPAOdHZienDSWHA9aKROzCpCUXYiI+GTq/gUaounsy2Hc38RF3oVUSpzlWmIAnR0nsU6K8L68S2uvvcsa2ZfQxpKLrx4vwJ6iDCQlrL5O/L17i2hq7eV9W49z1+oQEB6DomNLYuayFpYyigt0b4ubW5JxHtVMkg61XG9/9SHaasoZH7sFBYePIG/vfi2z+CjAdJ8isAkIKKHcBND1kq6FQDMTcq588jFaqiuN1TA6IhA785Pw4vFihAR/M8P1cejUN3UZDb8LfDBLk4oghYeP4sjb3zbWHiFKQgpGBwZMaUcRUO9tbaE49bg5XjK/w2OTkEgrZXRiGgIogi7ucGdvxlopGeDutFZ63ieWKi30wLLPUSZoXjKq77uaW6vuoJaxil0NFXjlKBNoijNNvO8DJz3lD7FMDrEyzvmr1bhe2oSeoSlk7zyMrJ2HGM+b+gCZXGQijiVE41Hdyn0tmph3vvoI44M9iEvPwOFvfRthUTFaGedRgOk+RWATEFBCuQmg6yVdC4H6O7dx4YP30dPabDJXk+PD6UbM4kM6CwHU9Ftp+/JCGS7dqEdtc685JTA0DMXHT+DQm2890IU8mOVVeeWysVQ2lpdaPxdyJS7g9KJ9SN+22zzYrR+6wIYHE3UkNMCqWekCc17JFCV2UkibpVkJZX0FDuxIp2bqVuRkJVg+XtG7yASVXKnExZv1aGY1J2/fABx8+8+N6oCXty+tobMr6kcOGmc98fJLn6OjtoL3bBx2Pv8C0gsKnbq86IrB0QMVATtBQAmlnSyEDsN5EXiYUMaIhXJbMk4eK1qVhfKTL28Z12FT+6ABKzw2DsXHnsOel155JHjjw8NoqrhLN+GX6GZikIhVSxNS6RcUYmp+pxXuQSAtla7SrNJCdIGb6jrqAjc/PiR2UiyUltZWXWoyqdspHRQbGYwXDm/DkX05K87ylnrzXT1D+PlvS9DaOYhZqhEEhEbgyHd+hJCoOLjxHnySRdIyDnkXGSFJEir54KdUSRhhgtleHKZVPigs3CXigZdjoduKgD0joITSnldHx+YUCDxMKCNC/bE9JwGvndyFsJClxISVTPSn755j6bpmDFHIXFpsShrj0Y7TSvn8Y08fGehntm45rp8+hcHuLlqhvrYKxWfkIWP7PpP9/dgOnPEDkhm3LdSsZGylCKG7U7bJWUXfV7J8QuweJpSdDZWMobzMe+cGvFkmdFdBCo7szUE2M77lB8nTWv/gGMqr2/DeJ9cxMjZF8heF5Nwi5Ow59sS63Y/qVyrjdNRX4vqpdymC7ovio8/hAK3yHvxRwME86hTdpwgoApuAgBLKTQBdL+laCDxMKCUpJy8zFt96ZS/Cw1aelPN//tePzUPagl7y1lxsP3IU2w4etux65LtIFZ397btooOt7hMLnlji5gOAwCKnMpx6gVCvxILkSC54rNXdPqQPOLHDGWG7hP0JQVkKYnAkjQyhnaKFc5vLu72g2skGSVS2fS9xvwdYEnDxayDrevoZkurs/mOAkx0nc5NT0LOqbe0x4RllNBxbdPM19lrf/BAJppZTksZU2sU52t9Tx3r2GZpLbmKRkbD8qP6KeW2kXepwioAjYCAEllDYCWi/jugg8TCh9Wcc7MTYUP/qjY4iJDFkRgRES+O9+/AkJZbsVyPTCIiblHEEuXYBPaguUYulobKBI9WlanW6ZzG85XoiTv5DKzDyk5e8yrkipA+5qzVTXIaGUTPAt8i7Z4C5GLC0WSiGF0qbGR9HObOprn/3GZF/TQW20U7dlx2FHQapJ0AkO9Gcs6tc/QKQk6NDIOGrqu1Ba2YrK+m7cc/NmEliRsU5GJaYS16+PX8l9Njk6wuSgEgixnSXpzd0jQuZHjFTQSs7XYxQBRcB2CCihtB3WeiUXReBhQunutsW4uv/FHx9HCqVYvOhSfFITq8/0zCz+378/jcq6Duuhqdu2YTuzvPP2HrDue9SGkIQZygf1d3UY6aI7589igiUghWhKgo6PfyCr6ZBYZuWb2t8h4dGu5UoU8ij/8J3/MdZKN3dPWi5JMFdJgB6FvyPse1g2SO6N0YEeNFfcNELiEyODJn4yKMAHoVQm8Pf1RiC3k/jDSP6epFWyvXsIfXR1S2350XFmjcMLW3cfRVRyJl3evM/XUKWp6upZNN29gf7OZpMVLrqTuXv3ITSK96g2RUARsCsElFDa1XLoYJwRAZHvufjhB+hsaqBbcSmGUWp5//n3DiM7PRaBdCE+qc3PL2BsYgr/5WdfoprWH0tLyc8joTzGSiEHLbue+C5af/0dHai8egU1NygO3d9rHY+cGB6XROHz7Uhnoo6PX+CqXJNPvLCDfSgkUlzgkg1u0a50djF40YOcFy1KWgEtVkrJ+h4b6mepwxJ01lcZgrl8KSW2MjYyEEEBfvzBM4eegVGMjVN6iD9g5EdKVGI6Y3xfRSDJpPxwWU0zupMcz+UPf8n4yQpaSWfhy2o4J//4zxj3u12zu1cDph6rCNgIASWUNgJaL+O6CEim9ZVPPkJrTZW1eo1YeL71yk5sz01GZPiTq+VI/e6h0Qn8zS/Ooqbha0KZVlhgdCjzdu9fMbgSkya6lBc//D0ayu5gsKf7fmWSpS6CI2NQeOQVxNCq5Bvw5HGt+KIOeuAWur4l3s+IoosrnETTYsV00Ck9cdhSO1v0KOWHh4VUyvtQT4exUrZU3jS16BfvPVkz0p0xqZHxqUgr2I0UJuJ4UiJotU0sphNjw7j4wc+ppVpPgurPHzu5OPjam9SgTF9td3q8IqAI2AABJZQ2AFkv4doImEo5n51C491SUylH0PBhHOXBXVk4uDsb6clRTwRIrD+9/UP4ybsXUcdkB0vLO3CA8WSHkZ5faNm1oneJxxyny/vapx9D3N+W+uJysrevPyISJHv8VYqgJ66oP6c+yLjDOUOSSU8m8AhZEuulMzYhj/dIFiWeUsilpcmPkEmSu+6mGpSe+9RI91gq6liOWf4exvtGYnIzi/cbMmlI+PIDVrA9MzWBvvZmCpl/SMmgNpYOjcFRuruTtm5leEbICnrQQxQBRcDWCCihtDXiej2XQ6CjoQ63z55hYsFV1vKeNPP3oFRNCgXOXzpeiOJtqZRAeXyywuTUDFra+/BPH15FY2ufFb/8Q4dQcOAw0vK2WfetdENIgtT7FvHz6utXmfBAVyX3CVmSWLdElmiMS88xbnD/wJAlvT+JMXThZtzfxMdoWd63Vsq2uMiX3h0fHyGVQhaXXmKpXCqFKARzcmwEfW2NGB3sw8QotSXv38vM1zEVl8Si7RsQTL3JcAQzDldc3Wshk3KLiau99maJieEU4YFU3uOH3/6WIZNC6rUpAoqA/SGghNL+1kRH5GQI9LOmdvWNq7h6itadsTEzO3nQ+vt5swpJBvbtyER6yuOTDEbGJlFe1YaPz5SivWtJ1Fw6kVrG2w4eQmpO/poQmxgdNaUZ60tvo72+zuhUTo0vlWn0CwpFWEwC636n0Dok71L/27Vd4EsgLyXvbGFilayhhUyKBdPyt4m35GduPIamzTWtjS1PEhIpL8Y+mHf5YSFubyGRZv/9wUicpRDNSYqLT42N0pIpP47kvCVC6eMvhDKQ8Y0+z2TFlev0U8j82qnfYJIVchKzs01oR3phoalwZEts9FqKgCKwcgSUUK4cKz1SEVgTApMkke11tTj107/D6NAQH8B8At9v0eGBRjT6tZM7jRv8UckfIhJ94VotSq7X0PU9ajnVaPFtO3AIiVlbrfvWsiEP8JtnvkTVtcvobKh/QPxcan2HRiei4NCLiE7OMJqNa7mGq5wjFl7JEDdJPWLNJNHkf8z0zX/vb28aHkIerRdfIpISAiH3gBBJIZHi9l5+j1rGbz1t+caye3n57mfZFnmgzoZqXHjv72nlDMPuF15iNaiXn6VLPVcRUARsgIASShuArJdwbQTkYT3U24Pf/sf/h/FgnbT+8IF9v4mOn0ivHN6dhV1FmQgO8rN8ZH3vGxjDuStVuMyayL3MpLW0fa++zgzvA4im2POztmnKCknmd+mFc2hj8pDFMiVWNzdm6Ir8S2reDo2rXAHQgpmxTPLNzY1JPZLYs8w1/qgfDSvo9pkOsVgh5V5kpCQWKUW1ZImcW+rXsEwhmPLn15TzmS66xpP7OprRWH4dNdfOIXvnLmOdzNxetMbe9DRFQBGwFQJKKG2FtF7HpRGYoEDz+fffM5nVw6xWs7z5+XghPiYEr50oQkZKDPX9HsyK7e0fwRfn7+J6WRP6h5Zc0nL+/tfeMIQyKjFpeXdr3h7p7+P4ynDpD79n0s4QazvfJxvsMZTu7/SCPUy0OGAkW5ZI05ov5TInGje4BAGSZJp/hGzKtjXu0pI5LrvvE1GiY8HX8v44wCxE0fq5YYRLlkfZlBhIa4INd5jjhTDKv0Iu78dIWs/f5A1xqdfdvoRqksnx4X4cf+cHhlSGRERu8sj08oqAIvA0BJRQPg0h/VwRWAcEJOmlhUkwdy9d5HslH5Z0fS9rkqSztygN2/OSmfUdjfDQACup6Oodxsenb6Gspp2VSJaSeuTUw9/6DkXN9yM8JnZZT8+2OdTTw7rfnxkr5SCtqiKILk2kc2JSMpG6bTdFqiNMhR0fv4BV6ws+2+ic5+xvJvMIyVwimzJLQy2X/f3ImQtB5AcWazI3lg4z+++TR+PK/jpj+5H92MVOyTC/ZzK7a66fQ3ttGe+zcLz4Z3+OpOwcl9VEtYul0UEoAitEQAnlCoHSwxSBZ0FAHvpifam/cwcVVy6ZEohiAbSSgfud52bGYU8RBaFJLH28KaztvgUdXUN4/5NraGjrw/jEjHUYJ//kz0zZRf91lFGRMUm5u7KSC3Q7lqK3rRUz09PGmiVxgd4kkVGJaUjIzEck3wNDIky8oHVQuqEIrAEBcb/PMMnn9ld/MELmks+UVVSM3SdfYkJYwhp61FMUAUXA1ggoobQ14no9l0VAyOPM1BQ6mKAj+o9Nd8usdbUtoIg+pZS3i6CFctvWBATT/S0VSE6XVJpqJPfu3bdC8YS3//X/gK07d68roZMxSlLG9PgEK+n00VJZjcsff0gx9AljQRJxbw8vLyMTE5+RZ2Irg8KjNPvWsoD6viYEJkaHKPxfhtobF0xFHimtKCEdadsK+KMldE196kmKgCJgWwSUUNoWb72aIkANv1FaYepw9jf/hIHuLlouH3RJityMl6c7ollBx5sEc+p+nWRyPdPc6X6WMnSv/fO/Ylzj9g1DdI5lIiXes+bGNVOucaBTEoq+HmtwRAyScrYjZ88xlmr82kW/YQPSjp0SAYnj7GtvwvXP38NIX7ex5MenZ+DlP/8RQiKi+OPF2ynnrZNSBJwNASWUzraiOh+HQED0Hk//8me0UpZTxPnBeMqnTcDb15cSPqk49p13KBmU/bTDn+lzIbtjjPe8+snHqLtzyxBMS4cerHUdEBqJvH3PGUkhf2pXiltcmyKwGgTE1d1eW46S3/3UnBZAi2RG4XZTt1us4U9LTFrNtfRYRUAR2DgElFBuHLbasyLwWATmZmdQe+sm7pz7ClKaUWLIHo6nfNTJ8nCVmMncPftQdPQ4IhNsE19WX1aK8pLzxlpp0S2U8UpyiVgn8/a/wLrNxabmsqkoI5nN2hSBFSAgtcKbK26i7MIpcz+l5OaxpOgRKhjsN3+voAs9RBFQBOwAASWUdrAIOgTXQ0AkWybHx5j4UkbL3x0Kn9dggvW1H3Z/P4yMt68f4tLSWdf4HUTExbP29oMSQw8fv15/i05lZ1MDpKpOT3MzXZRtLMW3VPVHrJJSci8kMhZRSWmsbCJxbxGMtVRX5Xrh78z9CJmsvXXR1AqXe7qQFaDy9h/U2ElnXnSdm1MioITSKZdVJ+UICEjs2OjAIAZ7uln2sNuQyo6GegxTrkesgA83X/8AxizmmsxucQl6+rDEnQ0tgUKAJaZSxtzT0swkiiqTtGMZq1TVCQyNIKnMQNLW7bSeprCyjtfD09C/FQGDgFi4pT64yAQ1lF3FPCvk7H7xZZNoFkWxflve27okioAi8OwIKKF8dgy1B0XgmREQl3drbY1xKYvVUirrLAlPL5oHq1j7krfmIJ+Wm6wdOykuvrlEbWSg31TWufHF5xBBdItlVQS7vf38kZq/E8k5RSzbGL8khG5D4vvMi6Ed2AQBuWdaq0spZH4Rg10txuJ+4o/+GLGp6ao7aZMV0IsoAuuLgBLK9cVTe1MEngmBHuo+SgnEG6dPYZb6j2L9kyzXsKgYHP/e900Sjr1Y/XpbW1Fx+SJunT0DSTIy5Vfuz97Lx4+JOpnIZcJOmJBKWi81ueKZbg2nOlmskzNTk0zE+Qm1ThsQHB6OHSdOYuuOXbRyq0yQUy22TsZlEFBC6TJLrRN1BASkos7U2CgzvwcpLzRGojZmEhOiEhIh2nzefn52Q8xmZ6aNq14ywFuqKzE6OGCFWNyVniSVASHhSMjKoxB6gakDrqTSCpFLb4iru6u5BuXnT1FIf5AhErl49Ud/BT/KYbmz9rk2RUARcDwElFA63prpiF0EAbFQyktaQEiIXc56jgS4ja769vpaWprajPtb4kGFbIrLXrLAQyJjEJOaTVfmVro1U5hI5KfyQna5mrYZlNSJ72mpQyPjJvs7mg2J3LprN57//g9tMwC9iiKgCGwIAkooNwRW7VQRcC0ExgYH0d/Vie7mJiZYsGRjeystT6NWEPwCQxAen8y6zIUIjoi21gJX3UorRM6/QTf3POMmRXOysfw6E7pKzZzTmWAmmd25u/c5PwY6Q0XAiRFQQunEi6tTUwRsiYDExc2zuk5zZSWun/7USCItv764u8ViGRGfypJ6e5i0U0jdyoDlh+i2EyMgJT3HGBZRdv4TCvpft+qu7n/1dZPdHbCONemdGEadmiJgtwgoobTbpdGBKQKOh4BIIU2xDnhLVSVqbl43LyGZQjYtzcvHl6UjQxCdmE69wRPwCwqhvJCn5WN9d1IE5uf4Y6PiFuqoOSmJOGKdTszaih3PnUA2lQs0dtJJF16n5TIIKKF0maXWiSoCtkNgfHjYuL/rS+9Qr7KasZW9zOqdemAA/sFhSC/cxwo7RQgKj1JC8QA6zvfHLEss3j7zEfVW71J/cgiiq7r3ldeQVVTMhK0455uwzkgRcDEElFC62ILrdBUBWyEwPzcHIZZlF86jueouBjo7MDUxYdXXFIuUt18gcnYfo8RQOqvtBFGz0gcelElyd9dMX1ut00ZfR6zWkrw1OtCD65+/j5G+Lnj5eCOG9eiPfPs7iIxP0B8TG70I2r8iYAMElFDaAGS9hCLgqgiIq3uBxLKFVXWqb1xD7c0bmCap/FoIfQvJhCctlNGISkxDJF9RdIWLG1wrpTjHXSN163tb61F97Txd3fVGlD+Z9bqlKk4UyaQXKz5pUwQUAcdHQAml46+hzkARsHsEpGyjZILLq4GVgJor75p64JaBSyUgH19/WiwDmLSTQt3KfMSl56i8kAUgB30XYf6GO5dN7ORgTzuTtqZRcOgIth04xB8PifCi4L3+cHDQxdVhKwIPIaCE8iFA9E9FQBHYOATEYtnZUE8XeCVaKiuMfuWcJO0sq13uHxSKmJQsUw88PD4JPiSZYsXU5lgISBJOT2sja3WfRVdjNas+LbAiTgQOvvk28vcdUDe3Yy2njlYReCoCSiifCpEeoAgoAuuNwOTYGAXRq3Hxww8wQP3KhxN2vGmtlDrgaQV7TIWdACbweDI7XCvtrPdKbEx/YpmcGBnEzS9/j96Wemb+jxhXt2hO7nz+BSZi5W/MhbVXRUAR2DQElFBuGvR6YUXAdRGQRI3x4RFaKitw+aMPGVvX+gAYQhxFVkbqlkclpSM5dwdJSDGTddxBVvnAsfqH/SEwNTHGNW3Ejc9+S2I5RNmoe6yQ5ItdJ19E7p59iEpIsr9B64gUAUXgmRBQQvlM8OnJioAisFYEJDFnknXLpXRjV0uTsVSO9g1gWCSGJiet2pU+/oEs3xiLyIRUhMUkIpilHI3FkvF32uwPAVnXHibh1N68iM76CiZgzSIwNAyJ2VtRfPw5Jl1JGIO//Q1cR6QIKALPhIASymeCT09WBBSBZ0VgZnoKIwP9GOzpxlj/ADobG8xLXOGWJpZKH0oMhUTHmozwkIgYEstYlnGMgacmdlhg2tR3k9FPMimi5a3VpWituoPpyTGEx8QieWsuMqg3mZiVZWq5a+jCpi6VXlwR2BAElFBuCKzaqSKgCKwVgc6mRlRcuojySxcwSzF0sXgtr7Qj/ZrEndQsCqPvNbGWEnOpJGWtiD/7ebI+koQzOtiHuyWfG8vkHDO6Pby8sP3IMeQfOIj4tIxnv5D2oAgoAnaLgBJKu10aHZgi4JoIiCC6WCslC7ys5AIGu7uYtDP5ABhubu7GMiku8KydhygzlGfiLR84SP+wGQJCJod6u1D61R8w0N3GkIVxQyaTsnOw88RJpObla3lNm62GXkgR2BwElFBuDu56VUVAEXgCAlJZZXxkGP0dHaZ0Y2t1Jbqam3BvYcF6llgkvXz8EBIVZxJ3RLcyNDKO+5gN7uZmPU43Nh6B7uY6U6O7s6ESUmJREqpCI6Nx+O1vm9jJgJCQjR+EXkERUAQ2FQEllJsKv15cEVAEnoZAT2sLmiruorG8lOX7Bk0izyzjLsWSaWlSFzw2bSslhpIQFBZpKu34BYYYq6URztbMcAtU6/dON/c9Zm+PDPSisfQqk3AusMTitOk/JDIK6QXbceitbzE8IWj9rqk9KQKKgN0ioITSbpdGB6YIKAIWBKTSjlgrmysr0d3caNzgUid8lgRmudVSknfCYhIojJ6NmNRsBISEMQnE37hfxU2ubX0QkJjJe4xtnZoYJZEsQVtNGYZZo1usxpLBnV5YSFf3i6zXnayhCOsDufaiCNg9Akoo7X6JdICKgCIgQtlikZybnobUhhYy2cXknRunP6PMUN83aoN7ePkwxtIbwWFRiMvIZRnHXFZpiVINy3W6lSRmcrC7A+XnP8EQieQ0dSfvLcwbzHc8dwJbd+2h1mSiIfKaLLVOoGs3ioCdI6CE0s4XSIenCCgC30RAyjWODQ6g5uYN1N2+Satls7FWPnykxFgG0gUeEZ+MeJLK8Lhk+FLXUmMsH0Zq5X9PM+Gmt0Wkge6gve4u3dxT5uSAkFCKlu9F9s7diE5KZiyr6oSuHFU9UhFwfASUUDr+GuoMFAGXREBqQ49Qt7KxrNTEWPa2t9JyOUQL5oO1wQUcb9YDj07OQFxajnGJB4SEG1e4xleu/NaReutztEx21FWgpeo263NXGRIvdYtCIiNNOUXJ6A6NjoaXis6vHFg9UhFwEgSUUDrJQuo0FAFXRmCgqwsVVy6h9tYNjPT1kugIqVww+pXLNSx9SCwlvjIptwjRiWlGesjdw4Oxf25LOpaavPOI22iRWC4S0ykmRfXh2qnfMJ61yRwn7mwJLZByivtefZ2Z3VEmw/sRneguRUARcHIElFA6+QLr9BQBV0BA4isnx8YwMTqM7pZmdNTXobup2ZRxFHF0icGUZtGvFIulkMuw2ETjDhc9SxFL9/Dy5jEqObT8npGY1VFmci9VwCnDkOhMTk0Y4ij1ubN27EQOYyZTcqk1SXJOZr78dN1WBBQBF0FACaWLLLROUxFwBQTEDS4JO8N9fSRBA8YF3s8SjiI91MuXZISLxVIsa1uY9e0fFAKRHPIjmfRmvGVQRBTCohOMtqWUdHTlhBKRABIi2UFtScngHh/q53s3k6NmTHxkRGw8yeQOxGdkIiIunvXVVWvSFb5jOkdF4HEIKKF8HDK6XxFQBBwegXnGU/Z2tFNuqAL1TN4R1/jUxPgDUkPLJyki6THJmUbTMjQ63lgxRYpoNUk8W7AIdyzAa8sc3Lfcg9jr3LeQyHJL/rq36MYXsLAoRy295DN7amKBlMo37TXlaK64QcvvkHV4/kHBjEdNoc5kIQoOHmJ8qp+x/FoP0A1FQBFwSQSUULrksuukFQHXQmBmchI9ba248slHzEyuNaRS4gJBmvdwcyeBlKSdzKIDJpFHhNIlTpA2zRW5cz0wj4At44h0H4Sv+xw83Bbh5zaB+UUPzC16YvaeB6bn3TC56IfxxQBM8F2Ipb2QSrHgdjXXMNnpGhruXHkAHrHYShZ34eGjyNxe9MBn+ocioAi4NgJKKF17/XX2ioBLICAxlKJhOUqpoe6WFkreVKGh7I6purO84o6AIaTJ3cMTvgHBpoyjuMFjKZIelZhxP87S67GY+WAaoe6jiPMZgI87aSI5qNuWRdAmaQijsVIuipUSmL/nhpl77hif90bvfBgm7vmRijIGcZOawYhubimf2Fpdip6WOkyNj1pH4+MfwCz5dOxiJndCZhbxCbB+phuKgCKgCCih1HtAEVAEXAqBidER4/ruIbEcYHzlCIXRpW745OiosVw+LDskCTwhkTF8xVLTMmqJaNJiaUns8fL1YzKKJ7xJICM8RxHtNYIwb9azljhNvh7XxBK4cG8LLZZuGJkPQOfIIjqH5jAwOmuqy4hl1JflI5/Ux+P6Xsl+c32KkUts5NiQxJsOYGJkAEM9HRimu3tqfMS4+iU20j8k2MRJZhQWIzknR+MlVwKwHqMIuBgCSihdbMF1uoqAIvA1AgPdXejv7GDmcrepuDM60G+SecaGBkmoGGt5PztczpAkHr/AYFMnXDLE/YNDjWvcNyCEuoveCPCYQ07sIrbGuMPdfXWZ4kLuWnsmUd4wgNLaXixs8WSySx5d7pnwoRD7ejW5zjyztmenJzHNOMmpMSHXrcSgjSSyw5BLuZabuzsF4ANYGz2WWfAJzIaPRWRCApKyckwm92piStdr7NqPIqAI2DcCSijte310dIqAIrCBCAjBMo3v8s/czAzaGGNZfuE86u7cJvFaqgLz9RDE6mj5S2Iq5V/rDrz5YjHeOrnDcsCq3ufmFlBV246Pv7yFxvZBxGQUIGP7PhLL3FX186SDF+bnMEgLZHdTDV3bVcx8bzDzZuq7/Mu2hIePvz9SKQN07J0fkDQHw5NxpTLxjbKWPmnM+pkioAg4BgJKKB1jnXSUioAiYAMEpBrM9OQERig5JBnhomcpNcMHOjvNfpElelJ7/jtYxgAAEBpJREFU68WdePulnU865LGfCbnt6x/FncpmfPRlKebcfJGcW4yiI6/CzYivf01cH9vJQx9InyKVNMNyiUO9nSxRWYu+9iZjmZQSimKpXN6EMPr4+TPxZhfy9u1HYmY23D09lUguB0m3FQFF4JEIKKF8JCy6UxFQBFwZASFiIoguLnEhlkO9PSw1WI/e9ja6hYewQJL2qPYshFL6m5mZQ2fPIP72V+fQ3T+OiKQMFB17HSERMRRdf3wykHUsQiBJimdIFCcp8j4+LC78PiNELrGSEh85zjhJIZnLm0gjBYSEIDIxEdEJSSSyeUxESiO59Ft+mG4rAoqAIvBYBJRQPhYa/UARUAQUgSUERM+ysbwMDeXMfqZAulgxF+bnKfI9Z9zkMySfYt187UQR3nyhGF5enmuGbmx8Cj/+xy9R19wLD/9QpG7bTUthvrEcLu9USO/iIrPH5Z3XFpIoL3Frj48M0rXdjn5aI/s7ms1YLedK/KM7YyT///bu9LnK6oDj+M/sAZJAQkK4QhICYY0QIgGBLKDUanVsrVWrdWydtr5oR2f0Rf8Iu9jOOGOn01HHtlax1RFFwYUAaiAQSdjCDiaEhJCVkOVmpec8yO0yFXIzcnNy7/eZydyH5z7Pfc75HF785jzPOcf2PNogGWPKmjQ1VTNz5phH7Mu9icoJkle1+EQAgdEKEChHK8V5CCAQ0QI2QNrA1tdjJv1uaVaXGRndbgbznD9zRvWHD2twcEDFK+bp22X5mn1z+pgfE/f29eutD/aq5nCdWjv9SpiSZHoLFyrejCa34fHqe4xD5n52NZthE2r7+8wgm95L3qNte/xqyPSC5n88prfXxpkVgGxv5FSz7nbqTJ9SfZneo+20zJkmaJp1zU3gvHqPiG5wKo8AAkEJECiD4uJkBBCIdAH7uNsGOTu90ICZ29L2WFZv+8RMBn5aub4UlaxcoDVF871pg8Zi5fcP6pPPD2vXFydV39jmjbhOmJTkfdohM1ffpLSPti+bsGgnaB820/+MmD/7aUPk/26TkpK9aX/sMom+XPsoe7KZrD3BhNQExZm/RBNabdBkQwABBMYqQKAcqxzXIYAAAkbA9lLW7CjXoV2fK3bEr+VLsvWj+9d4j5VNh2DQW//AkL44cFrlFUd09FRTUNfbnkU75c9kM3dkkumFnGz+JpmwaHskU2fMVEZWlhcsY8zjbjYEEEDgmxQgUH6TmvwWAghEnICdFL3uSK0+ffuf3pyW8+dk6tkn71JiQpxZ4zq4+Sgt3uDQsE6catQH2w+aEd/1AU/7ODoqJtp7JH3l0bSdsOhKgIwy815Gm5Hg9p3IWDN4J2N2tjJzcjQjK9vMJekzPZGJXtAM/Bg7CCCAwDcsQKD8hkH5OQQQiCwBO3dlp1ltZ9OfXjQjwU9pTla6nny0TOlpKYofw+CcIfNIvcE86t70UbX27j8TwExJTVNy2nTziDpRKelmffG4eBMgY81E68lmSchkTcuYoZTp0733H73waQfemJBpeyx5JzLAyA4CCNwgAQLlDYLlZxFAIDIEvDWwzbuUH/7tVbM++H5NiR3RXetu0fL8HKVODX6962HzDmRrW5cZmFOlCvMe5dVtwa0rtODWlWYwTboXKm3vpx1Ac6VXMtZbdzwugfcgr3rxiQACoRUgUIbWm7shgEAYCtiBMDU7t+vgZzvVea5O+fN9uvdbhZrtSwu6tnaEdk+vX69vqtSO3UcD1y8tKVXh7Rs0a978wDF2EEAAAVcECJSutATlQACBCStgQ2CbWRO8csv7qq3YqdSUSXri4TItmOsz71EGPzJneHhEf39nlz757LCGzL7d8goLtax0nRaaXko2BBBAwDUBAqVrLUJ5EEBgQgrYeSp3vbdJFe+9oxEzufhPHio2I75zlJw0ttVmtpbvV/muWp1rvuh5ZC9erFuKS1RQsn5C+lBoBBAIbwECZXi3L7VDAIEQClRv36bKDzab5RobVboyT2vNfJSL8maNqQTVB8/osz1HtedAnXd99qKvAmUpgXJMoFyEAAI3VIBAeUN5+XEEEIgkATsox85JeXRvpXwZySouWqCSVQtNL2Vi0COtG8+3q7L6pN79eL/32NtOSp6/plgrNtwZSaTUFQEEJogAgXKCNBTFRAAB9wXam8/rWFWVyje+Jjv6e9mi2bpjrelZXJSlGDOHZDDbwOCQDh6p12tvV6ijq09TZ/i0eNVqldz//WB+hnMRQACBkAgQKEPCzE0QQCASBOx7lF/WHtYbv3vOW/c7xfRMLsnz6bEHijV5UkJQA3TsQJ9zTe3aubtWu/adluKTtLBopTY8+lgkUFJHBBCYYAIEygnWYBQXAQTcFmg4cVxv/v638vd0m4JeVpYvVY8/sFY3Z6YqMTE+qMJ3dHar9vhZvbW1Wj0DN2l+4Qrd89OfB/UbnIwAAgiEQoBAGQpl7oEAAhEj0HT6tN41q+Z0tF6QXUUnPS1J391Q4D32Tp2WFJRDb2+/6s+16OU3P1Nb14DyCpbre794Kqjf4GQEEEAgFAIEylAocw8EEIgYgea6L7X11Vd0oeGs/L09so+9VxfMUdmaJZoV5ETn/QODutB6US/+ZZuaWro1b1mBHnj6maAH+EQMPhVFAIFxEyBQjhs9N0YAgXAUaDFBsvzNN2Qfffde6lKsGYwzLTlRjz9YovyFsxVtlksc7Wbfo+zu8eu5P25WXUObcpbk64GnnlFcfLy3Rvdof4fzEEAAgRstQKC80cL8PgIIRJRAa2OjPn/nbZ2pPajuzk7TmygvRP74wWIVLcv1BucEA9LfP6iXXt+uQ8fPKWVmtr5j3qGcOj1dsSZUsiGAAAKuCBAoXWkJyoEAAmEh0H6+Sbs/eF8na/apq70tUKdH7lulVYVzlTYtOXBsNDt2+qBNW/aq6uCXujx5ujY88pgysrKVMGlsK/CM5p6cgwACCAQrQKAMVozzEUAAgWsIdFxoVtXHH5nJzXfrYmtr4MyH7i3SbcvnKX16SuDYaHYIlKNR4hwEEBhvAQLleLcA90cAgbAS8Hoot27WyX22h7I9ULf7zEjv1bfmBT0wh0AZIGQHAQQcFiBQOtw4FA0BBCaeQHtzkypNoDxhA2XbvwPlPbcv1RoTKLNmpQdVKQJlUFycjAAC4yRAoBwneG6LAALhKdDR0qx95R+pdnelLra0BCp5Z2m+1ppAmZszI3BsNDsDA0Pa+G6Fqg/XKyZlBu9QjgaNcxBAIOQCBMqQk3NDBBAIZwE7EOdQ5eeqKS9Xe1NToKq3Fc5TcdF8LVucFTg2mh2/GeX9wssf6tjpJqXenE2gHA0a5yCAQMgFCJQhJ+eGCCAQzgJXAmWFCZTb/itQrlg6RyUrF6jwlpygqt/nH9CvzTyUp+ouKDMnl0AZlB4nI4BAqAQIlKGS5j4IIBARAl0d7TpiRnjv+/hjtTU1BupcYHomS1ctVFFBbuDY9XaGh0fU2dWj5/+81Uxs3ipf7lwC5fXQ+B4BBMZFgEA5LuzcFAEEwlWg+2KnTpg5KPdseV8tDQ2BaubPv1mlty30RnoHDl5np6fXb9bybtUrZi3vxuZOzcqbr7sef0KpmTMVl5Bwnav5GgEEEAidAIEydNbcCQEEIkCgr7tbDadOaMc/Nur8l2cCNc6bk6F1ty0yoXJR4Nj1ds43d6ii6ph2VB5XxyW/cm9Zqoef/ZWi7PI79o8NAQQQcESAQOlIQ1AMBBAID4EBv19tZuqgLa+8pHMnTwQqNTcrXWWrF2r9miWBY9fasdMFHTp6Vq+/s1utnd26KTpWeQWFuv+XT1/rMr5DAAEExkWAQDku7NwUAQTCVWB4aEj+3h699cIfVHekNlDNnFlpWrd6ke4ozg8cu9ZOXUOLdn1xQpu3HfBOm5IyVQtuXaG7n/jZtS7jOwQQQGBcBAiU48LOTRFAINwFNj7/G506UCMbMO3my0jxAuWdZUsVHR31tdW/fFkaNNfsqDisT/cc05mGK5Oj2/cmFxWt0vqHfvi11/IFAgggMF4CBMrxkue+CCAQ1gIf/vVVHavao4ttV9bzToiP8eahvO/OQqUkTVZU1P9/B3LIjOxuaGw1PZP7VbX/jOy/7ebLnaclq9dq1V13h7UblUMAgYkpQKCcmO1GqRFAwHGBEzXVOrBzu47tq9LI8LAXINNTkzRndrp8mVNNqJykxIQ4xcREezUZGbmsQfPeZHePX6frL+ikmXeype1SoJZzly7T0tIyLVm1JnCMHQQQQMAVAQKlKy1BORBAIKwEujs7vfkoa3ZsV8vZeo2MXOlpjDUBMm3aZCVPSVRCfJyivwqUl22gNI+6e/v6vSDZ5x/U8NVr4uK1rGydCtffoYzZwa20E1aoVAYBBJwVIFA62zQUDAEEJrrABRMkj1btVdVHW+Tv6TWhcjjoKt0UFaW0TJ/W3HuflpaUBn09FyCAAAKhECBQhkKZeyCAQEQK2AE5rY3ntGvze2bE9yFd6ugI2iE2Lk4l9//AG+GdNtMX9PVcgAACCIRCgEAZCmXugQACEStg56Vsrq/T7vdNqDxaa3oqe0ZtkTJ9uuYtW66CsvVK8/kUF8/qOKPG40QEEAipAIEypNzcDAEEIlWgZke5WZKx2vRYNsi+Lzk0OKihgQEzrdCg92+78k2UmU4oJiZWcYkJmjJ1mrd294IVRZoxO5ulFiP1Pw71RmCCCBAoJ0hDUUwEEJjYAn2mZ7Kp7rTOHj+mof5B9V26pN5LXeaz24wCH5J9VzI2Pl6Jk6coJSNdOYuXyDdnrhKnTJnYFaf0CCAQEQIEyohoZiqJAALjLWBHedseyYF+v2RmLx8x80vaQTre6G87m7luMqHS9FKaYBkdE+P1SMaY0d3232wIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LgAgdLxBqJ4CCCAAAIIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LgAgdLxBqJ4CCCAAAIIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LgAgdLxBqJ4CCCAAAIIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LgAgdLxBqJ4CCCAAAIIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LgAgdLxBqJ4CCCAAAIIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LgAgdLxBqJ4CCCAAAIIIICA6wIEStdbiPIhgAACCCCAAAKOCxAoHW8giocAAggggAACCLguQKB0vYUoHwIIIIAAAggg4LjAvwAU8mclCFg0QQAAAABJRU5ErkJggg=="]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rc+RaHE8rpHvweKZeIhtnJPpgL3x+4lbhfW9eCd6ihLyMVgTBEmEYdnR8o2Ks8NhFfM2ZuWLq772F62f8KthDg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rmxzq6n6k8qu8de4lgvjnfquqz3pecurxayasp","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Let's GoLang!"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LNs1aut6tlkcMpco9+ra4QsG9Y1LkmLeMi2Ofk2ke/zanxuCI2ddzXwiEmEK8gbCNygMrfz3QrFg8ZgjsdL/Dw=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1719157058"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xwd/y7aD/96EYv4dRyeLRYGU025Rz1a6aZ0PwuC/euCm5kUin6MWSGnDZ0Lhl7d/chQXoZIwHGegvg6kbo/bCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","send":"","pkg_path":"gno.land/r/reza/rezablog","func":"AddBlog","args":["Mon blog"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5TySvFLRx49vorEUOS//5M1e4DhZF8lG67oT9UxDCni1F9/4oIVchlVWHKfDx+Czh+51nlK3Z2JlrxZSRLfsCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","send":"","pkg_path":"gno.land/r/reza/rezablog","func":"GetBlogs","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3U/303fj2E4Y1u6nY7A01h/d9kVA71sls4tKGaPwViP21WZIA40naWjmuVsTDtqCMWNJhqtJVRI1hLMsMXSBAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","send":"","pkg_path":"gno.land/r/reza/rezablog","func":"GetBlogs","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3U/303fj2E4Y1u6nY7A01h/d9kVA71sls4tKGaPwViP21WZIA40naWjmuVsTDtqCMWNJhqtJVRI1hLMsMXSBAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqgeem430ex2cns42azg3vajvuva92c4gthd7l","send":"","pkg_path":"gno.land/r/reza/rezablog","func":"GetBlogs","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3U/303fj2E4Y1u6nY7A01h/d9kVA71sls4tKGaPwViP21WZIA40naWjmuVsTDtqCMWNJhqtJVRI1hLMsMXSBAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqwcjd8fp3u49q8nj422rcx928vtjqd82wcxwu","send":"1000000000ugnot","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CnHQ2jjwyfctarPK10+uNnBjopazBVvnUcBkCDCbnx4jlaogntoUVcrQPcfuf/nTrWy5JNqsynjBVLW8Pmp8Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqwcjd8fp3u49q8nj422rcx928vtjqd82wcxwu","send":"2ugnot","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5JWl9cmjIyey6rSpaStFatPFKe9A8doWrdmXMv9/VgvaAT8CYy+Uc19GomBI3Ojcs7jjFuU7+UVR7qo8y/m+CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1rqwcjd8fp3u49q8nj422rcx928vtjqd82wcxwu","send":"4ugnot","pkg_path":"gno.land/r/stefann/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1GLCEYzjLoJT9g18zASxH90U1iatrfc+E1LfgtO/UADNn74siv5p9x51DaOjZNSitoEQQ8N8uRz9vXtsVU4yDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1s2uznss5m56ptaru5vne488zue4yh60mtptazl","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterCode","args":["Vr60kMsfmR"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"B/f4PiNw0OggruF97JmigrfNOFxDnEkdrRIdPqNi/gWxcWCLQo1cfH5v6P2bFHoHeoV/puGxUZnmNW6O1unLDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ekbDULpBorutcfxuQEdROpz5lopv6tae4A31NvpxteUc9ZpO5Mu+RgmBUvHfd2gzpTEPY2sauexI0qt+GCWzCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"UpdateAboutMe","args":["\u003ch3 style=\"font-size: 1.4em;\"\u003eAbout Me\u003c/h3\u003e \u003cp style=\"font-size: 1.1em;\"\u003eHey there\\! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge\\!\u003c/p\u003e","\u003ch3 style=\"font-size: 1.4em;\"\u003eContributions\u003c/h3\u003e \u003cp style=\"font-size: 1.1em;\"\u003eI\\'m just getting started, but you can follow my journey through Gno.land right \u003ca href=\"https://github.com/gnolang/hackerspace/issues/94\" target=\"_blank\"\u003ehere\u003c/a\u003e 🔗\u003c/p\u003e"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8fCmrNWsWKtPGfhUK3fDFYFyictPuRBVloHSjI7wKWNrp4pCS5OiS75VlMTfInXJ6pSQ4mevZqLS1HjrvC0VDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"UpdateAboutMe","args":["\u003ch3 style=\"font-size: 1.4em;\"\u003eAbout Me\u003c/h3\u003e \u003cp style=\"font-size: 1.1em;\"\u003eHey there\\! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge\\!\u003c/p\u003e","\u003ch3 style=\"font-size: 1.4em;\"\u003eContributions\u003c/h3\u003e \u003cp style=\"font-size: 1.1em;\"\u003eI\\'m just getting started, but you can follow my journey through Gno.land right here \u003ca href=\"https://github.com/gnolang/hackerspace/issues/94\" target=\"_blank\"\u003e🔗\u003c/a\u003e\u003c/p\u003e"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IAWnLU+o7Ao9nZrlAhDp2bTU4kdfe4PP5pPjR3MpqU3FluzWGbk3tQDNcP4BRncoIPAxLMcJLDdFDUoCenNuDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"UpdateAboutMe","args":["`\u003ch3 style=\"font-size: 1.4em;\"\u003eAbout Me\u003c/h3\u003e \u003cp style=\"font-size: 1.1em;\"\u003eHey there\\! I’m Stefan, a student of Computer Science. I’m all about exploring and adventure — whether it’s diving into the latest tech or discovering a new city, I’m always up for the challenge\\!\u003c/p\u003e`","`\u003ch3 style=\"font-size: 1.4em;\"\u003eContributions\u003c/h3\u003e \u003cp style=\"font-size: 1.1em;\"\u003eI\\'m just getting started, but you can follow my journey through Gno.land right \u003ca href=\"https://github.com/gnolang/hackerspace/issues/94\" target=\"_blank\"\u003ehere\u003c/a\u003e ��\u003c/p\u003e`"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RRpqwS+ElCbrLuhjuLTqPHAeYzAa9nc/zwMoKuW8xkL3nhQeE3K733BG2EeY29x2QyxPqAy0x+4v6BVZH9O2CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"UpdateJarLink","args":["https://gno.studio/connect/view/gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home?network=portal-loop#Donate"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DnIzZjWHDPyiqlY3mE0H0LzFOmy3cmiUjghwyuGUnrM55PMjSKFCpNjYe9H03s6OWUjpayQkRzq3U1bjZNo+Bg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"UpdateJarLink","args":["https://test"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IHVu01cqH9S0a0ZSwGjUNr0hubKGsp/VuvZ5kds/vBvh+6GcKx7ZliT4Ajj/wnU7/TVYJ4vM72Iqkzrkp8k4CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/matijamarjanovic/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uuLQcj6AasfQtLkAiLec0wwM0Ty4wjCrBLimmsPQZgtQWR+2X0NZvks3L5gJ6dXoYi4DqW8v2jHcEXl+lYbGDQ=="}],"memo":""},"metadata":{"timestamp":"1734745271"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/leon/hof","func":"Upvote","args":["gno.land/r/n2p5/home"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vvA/jPrvLCQsoRkIjTc9wHqCvYq/tHGe41wRLl7Snds63RVOBb+0a4T4mxkBosAHZNMzxlIMsvSP/qmLtnrOAg=="}],"memo":""},"metadata":{"timestamp":"1734745020"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"","pkg_path":"gno.land/r/stefann/home","func":"UpdateJarLink","args":["https://gno.studio/connect/view/gno.land/r/stefann/home?network=portal-loop#Donate"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"K2apDD4kQ4efO3163CK3pe9IbNdGCosppUz+QgNTvH4ghAQunpRsA7KwYJm/zxBAolIZtXKGD7zMID0qtxRfAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"100ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OxVxO5LhnlQeXW/xI5lGK/rR+O5dQixQjLmrXyBi7kwb8K6Jxi2E3OQneI+jGl5zy9Gv/1NY8kun1o/FmwTtDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"120ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OJ9rGr5cjnGzJz1624iJJ3OdbaQUuZr5z4RajLXbbonrrmqzH++ugglXq37UAkzjIjQZjWmBYeITRDrhvTcVBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","stefann",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X/eOlyJXPyA1HX5YC8aVTAKpCGPg86ygY1aZPsc1D1bFOuTwUkaX+faMZdx1whMnLjPwC8wWb6St8Io7IiWRAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"50ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iYcM5yipZcezHX6Vu23QPrtTJMHK1UaZynLQbm8s7U3heLHiiFag/v0x5ZBVJ/iJzeAvudsnQoWe0sf8iCWTDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sd5ezmxt4rwpy52u6wl3l3y085n8x0p6nllxm8","send":"50ugnot","pkg_path":"gno.land/r/g1d9s3lkk6r4a9yvygwfyf8madha9uxxavl6e73p/home","func":"Donate","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iYcM5yipZcezHX6Vu23QPrtTJMHK1UaZynLQbm8s7U3heLHiiFag/v0x5ZBVJ/iJzeAvudsnQoWe0sf8iCWTDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","send":"","pkg_path":"gno.land/r/deelawn/tsrf","func":"Register","args":["FmA%ciVK?0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"E98/WMcNbVLkwrOAPJfTgf0T+80+SmS+wP52FGT0X1fRyhxcuVJGYSGklMrqHpQLs8XmLzrsDJhQDhdJ4+reCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sj0ykeeej73v29qvpqtumyyj2smfklcc92qqmv","send":"","pkg_path":"gno.land/r/leon/v2/raffle","func":"RegisterUsername","args":["deelawn"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DP+7gqhoORDUM+NhkfQhndYihLKcLgjUXRWt4fHERkkIFUxFN4cJT/2g51j9z4Vn80re0PgFRNbsc9zg6PXRDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Atomic Habits","https://www.amazon.com/Atomic-Habits-Proven-Build-Break/dp/0735211299","1"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VXNJuZcLQTQlj6RsNta7uZW7UyJcPKywgHEzO4PUfWunUsWeGy6JdDetGsiMD/KvMLyahsoDtYZiLDCWSS07Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Cryptography Engineering: Design principles and pratical applications","https://www.amazon.com/Cryptography-Engineering-Principles-Practical-Applications/dp/0470474246","1"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WrR/TDLxPAahGCjUccUITa542Ycy3oM3KHkdTVrQIdvABoZYXOgdSM5b15ZqADI8HUPg5fuSixkHrIHJerejCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Designing data-intensive applications","https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321","3"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EKvJ7zw3t4ITQMHiaWX25AfI1vFee6R+L5daqFROTXPC2MYfsi5sfrH40+GTX6V+ivmWcvFOdD/k0K4gNFNVAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Principle","https://www.amazon.com/Principles-Life-Work-Ray-Dalio/dp/1501124021","0"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"wkoeWh/vfLow63EEKWjrL9zP6G0zASN+bzKEvheKetSVotpTZ7vlAanPh1NcXOfBStbyUNnTAdj7oJD7jrHgAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Principle","https://www.amazon.com/Principles-Life-Work-Ray-Dalio/dp/1501124021","2"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HJMGtDU+vEOas8TvzSfx6Jfa5A7MKiFdbN10aOR/7Cs4G3jDeNUybiRNCRto3YdzNnp4gfLcz/O3gE3kGBUWDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Principle","https://www.amazon.com/Principles-Life-Work-Ray-Dalio/dp/1501124021","2"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HJMGtDU+vEOas8TvzSfx6Jfa5A7MKiFdbN10aOR/7Cs4G3jDeNUybiRNCRto3YdzNnp4gfLcz/O3gE3kGBUWDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Rich dad, poor dad","https://www.amazon.com/Rich-Dad-Poor-Teach-Middle/dp/1612680194","3"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/vElCHAY6ylO8KHmNUDamZv6QN8XfoQ1O9Nu4QM0btJKtKWI5g1JKpRliZRkx+pr79GWInAD8vwmp+2pyqRTCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["The Alchemist","https://www.amazon.com/Alchemist-Paulo-Coelho/dp/0062315005/ref=sr_1_1?crid=1WGJ4RFOSRTPF\u0026dib=eyJ2IjoiMSJ9.oUSaMmdTbyPBivuJLFm4Q00lHxDI8Wq31DkJLcXhE0Bybfri-agnVT5V-bmnykDYW6BS0VgO5NWtej75plrCnUH6D_cvswIw4vF9hU3T9zq5A5RiyevGrHQzgB-gIBhFq40wN0bcXhI6VZVO7DNRaDi-vFt_pnpde560QMatrxTR_OHGKYYR-QnjRhykrxt-WABJoKPp5xlDP3qBcD0lw8FYbP6qpMCAgfsb11vazy0.GC4K7k05eEjC1wgSZ6veXzzYJ6nwgBpENeojswqsoAg\u0026dib_tag=se\u0026keywords=the+alchemist\u0026qid=1725625055\u0026s=books\u0026sprefix=the+alchemist%2Cstripbooks-intl-ship%2C170\u0026sr=1-1","3"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ThqHkruA+V3wyLQskhX1Q5pzpl1HYM5lFsjhkR41GFYtS3cZA2wyWLQLz2qhv0UZWkGwxTRqFDjNhKN4r5JBBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["Way of the peaceful warrior","https://www.amazon.com/Way-Peaceful-Warrior-Changes-Lives/dp/1932073205","3"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"nJ04O0p5A/IdErNEAB+QOWEqs7L38fXBztXXZLMWgX4GKyxV01IF85foPnoyA4EJIvScFoyYpocJ6pRUohxHCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1sw5xklxjjuv0yvuxy5f5s3l3mnj0nqq626a9wr","send":"","pkg_path":"gno.land/r/albttx/home","func":"SetBook","args":["X. Niel - Une sacrée envie de foutre le bordel","https://www.amazon.fr/Une-sacr%C3%A9e-envie-foutre-bordel/dp/2080452142","3"]}],"fee":{"gas_wanted":"4000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kt1xOw51v+ADTdQlqbUOAhf2Vbd9HLU7uIbzVCTQbe8CB8R744DLtsYsrqWdFfPo62KRNuaG/i/PgdKeFsuWBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1t4du52tfdfcnsrhlkfxhulr3r2a8a965zs07tx","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tMkB80u4O5WN/vPVzWMqwGx1N22lF9upwXARE1a3kg5pdb0yJ5eHIiKRbDle2S5YCxuTxQSmPl6JJ4cSszPdDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHQAAAQMFAQAAAAAAAAAAAAAAAAIDCAEEBQYHCf/EAFsQAAECBQMCBAMFBAYECAoIBwECAwAEBQYRBxIhCDETIkFRFGFxCTKBkbEVI0KhFiQzUsHRFxhiciVjc4Oys7ThNDhDU2RmdHWT8SY1NjmCorXwKDdWZZKjpP/EABwBAAEFAQEBAAAAAAAAAAAAAAABAgMEBQYHCP/EAD0RAAIBAwMBBAgEBQQBBQEAAAABAgMEEQUSITEGExZBFBUiUaGi4eIyUmNkQlNhcdEjM0RUQyQ0kbHBcv/aAAwDAQACEQMRAD8A9U4IIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAII8vprh50Dt4iv1hA8yR849WXYTKz6T8n3HJev/wBL4/Q9RII8tVd4B3g8Cc49J+T7iPxD+l830PUqCPLQ8mFxN4B/dfJ9weIf0vm+h6kQR5bwQeAP3XyfcHiH9L5voepEEeW8EHgD918n3B4h/S+b6HqRBHlvBB4A/dfJ9weIf0vm+h6kQR5bwQeAP3XyfcHiH9L5voepEEeW8EHgD918n3B4h/S+b6HqRBHlvBB4A/dfJ9weIf0vm+h6kQR5bwQeAP3XyfcHiH9L4/Q9SII8t4IPAH7r5PuDxD+l8foepEEeW8EHgD918n3B4h/S+P0PUiCPLeCDwB+6+T7g8Q/pfH6HqRBHlvBB4A/dfJ9weIf0vj9D1Igjy3gg8Afuvk+4PEP6Xx+h6kQR5bwQeAP3XyfcHiH9L4/Q9SII8t4IPAH7r5PuDxD+l8foepEEeW8EHgD918n3B4h/S+P0PUiCPLeCDwB+6+T7g8Q/pfH6HqRBHlvBB4A/dfJ9weIf0vj9D1Igjy3gg8Afuvk+4PEP6Xx+h6kQR5bwQeAP3XyfcHiH9L4/Q9SII8t4IR9gcf8AK+T7g8Q/pfH6HqRBHlw2CAr5QpeYi8C/ufk+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EaR54EEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEAH/2Q==","1710945385"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fQFQKyiGRwllhAa7OnMzYptuOd4X2Gcx0hiIOCMF7cR6Mr2+OnizLtKsQNXUs7hNvFAzV2JyQbY0AxKYsztwAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M+Zit0x5oKOP5cEirk20Ph5H6QGefx5y0a1DN5fiZgcjx4J1hXswULG9T1o64/gwcRSc/DxTHtvbeMk2cB9zCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"iSOCYdUcVEe0Nt57InGj7RAh+m6mt/tBXG9GGaMQYV4EHtkU2TCkk4vz8ql0kUB4vTgnE5/HlZzFBoWId3McCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1t8m7k6cud8fhexs3ttslh3l3uul8upk9j7y2c3","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000007"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"pMZ2aoeGlILNetXOUYm0q8m0QW5n/bvk2FqFZ3Y1VjGwRWdKXNpnovhv3lwTUJ8WnXMWWoeB96Gs47A2mWAhDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Another day, another adventure!","#"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mxAZsvdZrFv20Ly2z8tYzIUO5CYQ9zTO+pPdkNBgu0ukgw4N7bWP0esuy/9OV+EuEWrkUTpLSJg2/oyijrFcDg=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Brothers in arms, rivals at heart #Team7 #NinjasForever","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5DXhEn3IohkGADRp8zngkgqg84sM4J5S7BpRXg0PWcmrhSV5d/REIwo69bn+bsMJCi1ejVgfcxaadcEiflsZAg=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Brothers in arms, rivals at heart. 🍃 #Team7 #NinjasForever","data:image/jpeg;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Z62sV3qap2FTE5L31gncNsbt01tTiItaJtDGqsUqcSgdz3btd5y1TcWvILdRNm9V/4hCICvNxkKyoPQ9OeJSAw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreatePost","args":["Just finished a tough mission! Time to refuel with some Ichiraku ramen!","data:image/png;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qkTT50IqiwXHsSvxLx7aNPy+RBoBgXTMLz38gmqSF0KLIvGddORd9Sm03OB+pbSjalRypg2/m6h0C1VnBKYhCw=="}],"memo":"createPost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["naruto","Naruto Uzumaki"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"lxNrujqjPZPOFAvkqNEDL24rZ83zqSVCwgZsS9suSsiny4AIqfkM0GD/jKt3mGDA393sKXyfPByqFzuUxOMzBg=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"CreateUser","args":["naruto","Naruto"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"d84MmX61EUDLgwhe+XCHY/DNc8euKPuoWr9LNbmxUcwtV18YaQOSpGBrXVG2yUFyIGOlaGZkAWZc6LsKgCAIBw=="}],"memo":"createUser"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["0"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HuV3oKEBf/0uayFw/ePmbX/snSCEfM3FVwEg0Ohn1Al1wl2+K7vInJ9Lrg8R5WStAnoAse1nq11Ln7vFUCwECw=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["1"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8HeymDIXuAVseZPev35FPO/Iah2hbBE6FqQXHUqBAvCDsfPCF0bSf8ZWOcz38CufeKfLrLz3eMVlV2WmM91xCA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["13"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kMUlp+PlF9mbKzA9Q6JRDU/+1g1xVYojGw4qYwQJFFSErbAjozy4VAxl+j+veG2mH11B6CzD5vw/7ZLIeXFGAA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["13"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kMUlp+PlF9mbKzA9Q6JRDU/+1g1xVYojGw4qYwQJFFSErbAjozy4VAxl+j+veG2mH11B6CzD5vw/7ZLIeXFGAA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["3"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EcC/YYc4V5XD2MrBRB0Y9i4GG4ysXmzyIr/SxGAvfPkBi12R4FoQ/i8MEmwGtA7pQP7g17gx18J1tZ6zwayNCw=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["4"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"f8pmLvGQf8jsqfuHEA61xo66locPFoYIH4rq8U74W23Z+c84B1ZVRYzFX8sT82bUDuePvTHwYglku5SBlTKZAA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"LikePost","args":["6"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"MoxnlaAo4QSoQvYO4ZBCtNzQsJdEbrVfoQnhe99axoPXxS7mDozH/UfSb8HfqYIQg3Z2V2IWTmKuzSamEFS7AA=="}],"memo":"likePost"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,R0lGODlh4QDhAPcAAAscFA4fHg4sSQ8oHxAlMRMuJxU3ShYVERceFRctMhkbIBkiIRkmHxktIRwxahw0MRw9Mx0vKB06ix07bB4tSR9BUyFQjSI4SiJJYyJLpSJMciNOvSQkMSRBQSU/NiZLRidV4iha6Clb7Slc5ipc6yta6Std7Cxb6C1a6C5a5i5d7jA8fTBFWzBPfTBi5zE2WzFMQTFRpjFj8DJDPDJVxjJbfTMlIjMuPDMxLjNZ4zNptDQ9MjRASTRUSjRXXDRuzzUgEDVp8TYvHzY1STZw4zc1Pjg9QTlu8zpmhDprmDt38zw7SD04TT1TTz5WYj523D88SD+A8kBVVkBjUUFHT0FVtEJ1tENWf0RESERlbUSA9EaI8kdkV0eM8EhSUEhqYkk1NUliW0l72ktqXEuK5Uxuhk0mEU1zbE2P8k5FPk97kFAyIlBFR1CX8lFFM1FaV1FaYVF5sVGMz1QyFlRDIlR0bVSJtVeY5VhOSFhmYlic81lwZFyj811TT117i156emCIe2FxbWGJjmJ9cmKZzmKj5WOQsmWp82dsT2xsNW2Af26n2m6y9HCJh3CSh3E+J3M5FnSXlnWfvXZROXa79neZqXlMJ3q243yr039YR4GHhoGTi4LC9oN6cYOZl4e74ImlmIuquoyiqI6noI62yI7H9JFuTpJKIZJUM5SZlpSrqpXP95Z/cZbE4JiQf5m2sZy7xaBoPaFmMaLR86fW9aizsalUJKna+KpZM6rCyarO4Ku/uq2nka6wNK/LzLCWibLd97NzTLWIZ7axUri8urnIw7nN0LppNLrf9ru8f72JRMDb5MKKVsPDvsXo+cfPz8fX0sfi88htNcna28p4SMuqkNDCudF5OdHh49S/iNTq89fgitl+R9mKTdrLTdrhatunbdvm5tyVUt6Xa9/s8ODJuuHh3+KWX+OLTOeWUeewVOndwunwUOrf0urv8uvj2ev09uzq5u/q3/HQfvH0YPH0dvKfVvLxU/L29/SpZvSxdPT3UvWrWPa1YvTHVwD/ACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwD/ACH+JkdJRiBlZGl0ZWQgd2l0aCBodHRwczovL2V6Z2lmLmNvbS9jcm9wACwAAAAA4QDhAAAI/wBJCBxIsKBBgiVOKAQRYqEKhwxRSJyYImJFihcXXrSY0YVFhiBDbhQ5kmTJkx87dkypciVLligTQuQos6HNmzhzHtwp0ATPnyUGhhxKlGJRkiCOKl3KFESOpCGSJkUhVWpUqVRdVgyBomKKry1jQpX6cCxWqRBLkCSxMKXZqSBSNKT5c6DPgifqHgxqlyBSEBL/htzA8ITZr1JLQu36FnDVpBWfWq1K9XHkv4wrI9a8+YQLsCMRX0UMuLPHuCDK+pzbuDKIE6vXniihE+fqgnx7Gsyrdynspqevwq36VLhjwleNu07stHXVmGJRu65YwjTojRmdhq7o2wQImUNV1P8WLPdEiPMhSKTXy1uvexIfC1dVjpZ8VPpyFTu3vJj7fcbcqRVfcpBx19VmBVp3nWP8TfcdZLLRZp9zcsmwVYFs0XbbhnrlRsJdBLXH04STncUcfvdR9hhqkkX3VYsuXhiXgaAxSFpYNXJWIIOoCegfhrOFYIJqD+XFmnxQ1SaQkurtRRCIA4lYEGaglfWdQlel9dph3KEG0lMyDvdcczPySN2OJmEXo1UA5ujZjg762GVNSRnGlVcgiNDdd0ym12eTPHkIpUBSChSflWrdWaZObj2ImqKiramfl6N1KReEFqZmmKOQJiUnYJ5dJ1qbYE3YVqM+Foaen0sCmtIIf67/9x4Jgu7mnoe4tVVpYlG1uB+E2yVoI3elQlqjVgiWOSOeKIS6FamIJUvalebVqep5EQr5XW+wzhrlrYEKVFMK7Y2nQkJbGsuQgqKhGVcIag4onbMLblcqZ26elm+CCEaL6KMAevqaQoap8N245b4aa4fe0vqkrQzvxBdM0Sbbo7uJBvygnUBW51jFoOpbLLRejVpyqaUWCV+n36l8LbYWqSCuejKvDCCsC8/KF67v1YoXuBKTgOyzeDq6FdGL3svvvc7OO+9neBqLMmIGS11xRQarfF4KtGJJrqF31pyoeegBymrDaM/c188RO+nwQEZZfGaZSNdLtXRoTh2yqCXv/y3qsn7bXfexX6VVAsIDhcBzXT6HCFS4b+9W8MEyFfq4XXFLS+zVw/7dLNSoBQt4jnSzSziz9J4OcApi02yo4QkhvuTibeP2MNuMQ0675Qa1FPrQzC5N+rJ/W31yf8Qfb7DpU/fdbFywzxZ9Qt42/m3kH0Kce9DYOz4r85ybnDzgy5vGb5mf8z06+Mfnqz7rCqkHb9eTHx57XrKrRzvDKp/rdbn7q92g2AI0t+3uIA2p3+GkRyuMOPCBEIygBFlHl5jNLAQ1G5gC79dAhxSJd5DTjUFQoLX5UU9nt/Pe9gy4E8s1hH7wAqBAJjiRA9WwKzf8Sg5vaMMapoCHPaTIDf+nh79mEbGDIHSbCJd4vRUaZGctRCD+0GY9QhXwiWrTHtwkokMfDjE75LKgwzAokJqxZYMMLIERz5gayqVxjUnEYu1s170mEuSFAXTiAKkVw8TxDGEDa6P93hi/vBxRjYVkCw1reAJyxY+NBhsk9RBpSEUeEo6WnFUcsyjHAxoEj2mjIxOtOEeEcFKFd5wiCRY5kUYSTJALnCQmT9AsSLpRlomkZSVRuLaClJBrJ+TlKAlYyoFA8SAuVOWIwnbBDCokf4qbISsl4spGBg40l8xlLQ2JRlxWUpcEjOMAN1lHY57SjolTZijlOExy7u+YBZlmsxzpSFhykJLh3GY4u1n/RG1+k5g96yU6ucdCZEqxnDzJ5jf1aUgxBoWM8HkmNPmSwx96kZH0fGUkY9nPhf6Tm/YkpEfDSVK9jPOKdPQQCeXZyF92zVt8/NrspImCiT5Rofn8KAEpogKXBhOnhmQoSVFQPSVmD3eXKyhLfdoe6ZlHpvq7qU1ztcCnypCq4NnoPWdZy2x5JyhGDKk3c0rSShKVqVHKY1KPispVcrGnQM2kTs86VYTMBl3Giys450qCc7GUdWglVFD0KlSz9lWNAtRiCOP51g+KtaNk5atfYQjVaOLGoa6L6F2f+T8/SjUhf1WII+tqzM2GVasijWxZV3lYouamigBda0oJslIJ//YvsBnKUGdn6taaYhaiZgRRznwZ2hPgdja65ScSVftPuro2oAIlpRNn29sgSgSueelpUaMb28VO6bc1C27i/trT4w62co9dblB1mhfnItSU3HXnTkgYvxA8hQQ56F8JsCu0kOVpu+1EKXw9WRBQVreLEylvfU3Y1PMSTLn4XO9q29vayKVFuqGE7Qnyq4L8+iouPC1SWADM1oEalbqKXZIqK3rD8po3uRq9JWQlLFnE5maXRj1phzj8L+QE5bZ9jZ92+bu1lwoWxk7tI2/tusBmkVZcpkWuMEuMYe8OOIqfVGfaNOweD3PYKTSoigh6AuQO9zQHInixUyW626hiVf+Xg4UwV9nL2sne+Ixy9ueE62zjbz04vRFWZHcNwqGemMAnhf7QoT/0kBxUQQdIQEISWrCBMPfWJ2Xm75B7+uSuNRm55DRnfAUsagKn8r0G/YkJ4voecSYxBzmIQQwEEQpJJIEGlu6KCtIsZJmVd7+97iun/WdVz77ZyfsE9Jz37N47EyxKeR5pjZ9rxWcTSq9tJXReEn1oRKuAdWl+yBWukAhXfGMbw0jEG7yQhRpcAQnvTsIVaFCFRvM4052OHWhBPei16ni6V051gbVcF1d/6JBqM3U6EcrjHPghFMnYhsTT7Yg9+KEMasC4vJNQBRo8Bdawxne+ozzYZKN2rDT/Xm2z/fzIM15b2XqetoXxDO1rQziZqNYirKtQhUx0QhnboAc99rEPdnjj6N7oxdGH4Y1h9CIRiQhEHgIBh3HHIAM00AEIcp2CkX+65NyMNnOHWmFnt/yRaBd7yptbdpY3lTdpL9gV/00QWPuhCqwgxjfqMXSi+13o9Qh8PSS+jW8kYxe1qEUq4tAJCWTA8T4+bJsty+R9gx3Paperytte7bPD/fO2lOSMNc92O7u95i7v98FXz+1FD2nM+HV0FUzhCnb03e+4zz3uhw74eXhDGW4QAgRg4AMeOKEFkeY5rum9/DCH2VOT/yPJy/rnk49+r5s3fefffu3uV1/G6iU9/9lbMuV/71wMEQ+87otOdHawP/dCp4fgDT+MUYAiEn7wgxquwPEq5IAGMbB8G1BpWwdeZdRLXBEimYd9pddn24d6aUdzhEVnK0d+0BVg+HUFZZAIySB/9/CB7rd+HyiCuccOJlgP7PAN3vANw9CCyZAMrtAJMhgJcDABDjCABWhb5UVidGdlpYZlA5dzSHUQq8Z6L6dVVaZHBZEDZRAHEid0I/h+JBiFVFh0Jmh7ghd4hLcN0LANzZAMuZAFDnCDGwByBthXCEhU0LaAhbVTnLdP3Jd6hZRIocdR4ceAZKd9DVNFspcIw8AOKGh79wCFt/d3+wCFHxh/iOh+gniFvP8nf4K3DcLgB05AgGcoXkuihjbHhhT4hmEHgaD3bHBXh1sVc9nngNpmhMTUejsXB8MQdPTAiLaHiCXIiN5gdLO4iId4hYd4iIo4D/UgDHNAASxQBWKgHV5nedQ3hzAnbadIbXAIit5Hh4aUVeAXaHi4S3fBGwMEFDsXA4jAC3vnfvTgD3zHd99AD9+ggkvXdL3wjrLwjiY4dCFIdLFYj7U4DJYwA3nAc7AGe0MSYqLFgyl2YgFXkAbWanVRhAxJSojWJCDykMIEaxwHCuswjv4Qf+z4ju+YdEzXgr0Qj4nQkfa4e1YogkLHgorQj/4Hbj0lkI20hylkYuzUSUB4amr/lW0FsWoWImw0xxY1cxurmD2t523kgmtjAAopOI/liHQcqXSOaHRP2Qu4iI9TqHuxyIKI4AZI0AIgpwIwyTWkmFprl4eo+IndJ4efOIoMNIET1pPa9WCEEpSr0ZBDKZE88QM/oAjFUA/fYILpSA9IR46+CIVHJ49XaIIlaZVXmZKGtwlqEID/GJY214xjZ1h6iJZqOY27VI1hZ5llaUgyoBBwKTMKkWgGZ5e8EQNW8IqxCIWJGYKLKJWJOYWFeJWKuQ+B9wqIUAZXgIMuiSNg8WCcyGye+JOb6XKiWG3U03JzJxCleUaLlh4+kZrb5pAxEAcRh4WxWZsgiItUuZjt/2eSV4l7uemX67ANhFAGwKlmlXNXR3iNyyZzZheHEbic4dScIGV9d9iGsOGQRPkeV6Cd2+CXg5eSCKqR9/CX3nCIfKeL5YmS5zh42+ALyUAKgpABGRARMhCRbkmfp5eW90mNuqWcH/qMM2dtAIqXetECavCCTud0UzmVSXd0KaiOjTiCvBehf6eOK+h0iQAIiaAGNZABkUdsoCl+mHmWyBmBJtqZJTqHJ9qA0KiZoxig3bgT/OcKjoAIiOAFaeAGO0AHYzqmbkAHZ5oIiEB7rvCC2ZANLpgM3lB4gZmj8Nd3KCgMieCbFlADFmABwHmJaaiAMSZ6/dmJmdmkoPekxP/kmU9qbcYVnaf5kNQ5EDJwqS4gA0FwqZjaoRBpF4vWAlewB2mAA6a6A0IABkIgBDiwqq4KBEAgBHQgBFBXq7Y6kr3AdLeYm/iIiOrYC3MwBC9QBVcQAzqAHElxLmrERRYlRBglWpxVnCD6gCIaiiTalmFXqIcTBJBKlxzCqSagBJuKqSYwrh3aLSNQRjKgAi1gAVBwA2AQpmkwr/Rar/PqBjOwA6gqBLEqq/yKAAcABG6AB17apufmgSYJiPSwDb0wbh4HEhugE8U1Wtpais5IpRa2EmMGkK8BkGBJZAyWVkhWApJ6AiV7aEdwBEEQBCmrBEpwBFoAsykbnaXZAhP/wAEcsANuQK940LM9ywZAmwZYgAX1CgZj6qr8CgQIAKtAgKZQNwzj+J19p46FFwdX0HFFAVbMukPPWk0yMbHRelryaYoNyLEnIALk1VNFua4KoQVoQAZksAVkgAZ3gAZ6gAZaoAUsKwMuYAIu0FNwGQM3WwR9UKo7gAf2GrRAS7SMq7g+C7RGiwP6KgRu0LSJwAqvGHh9N4uDxwtTEANV4FU1M6VmWaWKWq0SyJzctDKU4XwFuErwYyQhe2Qni2iYFj9owAeHoAeH0LuHwAiMsLt6ELOc2qmH5gI10AJeoAm8oAl9EK+JS6+Nq7jUq7jx6gZgcKZgMAd0MJJQK4hF/weJ0DAGPGe2aAu2TtUs6Pu1tESQhjIUAxi/G0CZqVcQkqoCi6YCfzskCvG7wAu8lBDApVAKwasFZLCpKdC3LuACnmECyasJ2BAP5aAJRiu09kq0bIDBGFy9VJDBbAAHi4vB2TsHa5AIwrB36qiOe7cNybB/NICsGcM6zfQ6m+VUSZqNbpiozwYCf+sZINd8LyxrGWABElDEKyABNugARgpr61okN9wsFrKuUiwzMkACegDAAcwJWswJpcAJlHAIeJuyCrypfZu8qYAPaMwLbFAE0Ku486rBHry4i9sHTEDH1Qu5dACrUHeY77iOXVgJWYBrgrpECbiGFUuWSprDqP8IvyAwgEb6eEUcyUXsABIwhmMoAWXIYWgGllt7URKBafuLv31lrrumBwFMCVvMxVw8wIxQCGggBkegwAy8wF2ZCuYQD+aQCmyAA/GKuEGLwYl7x0ALwnccr5ALBoHQCWGKCIPQCaCQDJJQBlUQA4ERU8YVbJwWZ0+MqIjlYY1mIf8ngBlQBRlwxCvgAC9AARSQzi/Qzuu8zg5wAZYMeV+ZGaGSPZVqaEZZxSTAqbvWoSpQCKicyl08wFr8xXoAy7FcrgocabZsDsTgCrtsBGngy0EbzPR6x0wgzBXNBmAABUzABDYAq0srBDAwBXlQrC05Lpl2Lufieou2vgqhvtn/M5mN9sKODMmPN4bn3M5M8AIh7dPsjM4TEMmVVs/NClgK0dL7pQJT3MRO7dSM8AkDXNVWXQqfQAmXcLcvq7KaqpctUAOa8AzEkAqawMZE68v1urMYzdFu7dFggAM2YAMMgAAKUARsgM5VAMMgYKmXyhBPAcRZJ9iCbNNM3VMc6rcmEM7LN80rcM7oTAGRTQE3cANDMARgUARQALlA3c6XTMmYnMkg5830G6lR3c99Vbx869Sc6gKMcNWwzQmXsNVo0NUsewRP8AM1gAGpoHidAAfwmtb2ytZsndFvfdyZLddzfdkUMAEZQM0OFRIhIL+OV90aqqHxSxXMRCuAG9XF/+sRjTQX8juARmzJL4DOQM0EmQ3Sb2zBl93Ojy0BMbABoYvUKKDJaUZf2eVrw1YCJtDamurPqg3bVa3KXry7MRuzSuC2dyAHLeAAgWDWhcveFnyv2HvhGJ69Gh6vHI69YPDhHh3i1LvZUIADHGDZ7fwC8S1roDvN0xwD5lzJSWwADkDj6qzODiAAE2DO01zYo/3NPwyAGxADknzeQm0ERvDRH77k1xvSS8ADL8ACE1DUjrfEo23TpE3aClxeT03Fqf3drN3apbAKV73KqtzKYbzgWqAHvEsGD84GmvDbTIAFSg60O2C0RkumqSoEO7AGFw4GdMDkYLAGgy7oS+7RG//twUre2Q5ggxJwxNc9yZVsyWOo4xjAAiyQ4hVw3pZ8xPJtpAM4mZoMa7i2ARoayZT8AhjwAhMw50O7wUD7CGmQvU4O5aw+ARYAuh535TkQBDkQxVru3VENuP4sAgD9398d4Jfq1KswC2Ru1anMCHxwB3ALt23gu5SwCEkgAeN2A3INBR+dBkbg4WLqBgOLBwObvWtqq3Qwq3OwqmsgBGZAue3e7nPw7twb6KmK5zxgBENwAcI6BJRN2Q/AAQtAABGwABEQAR6A5PTK4eD+xkVQ2UxwAw4g2Y9NrBrPc4/d6Oe9zhfQ7zwwtFRQ8iVfvX0ABz+d4lOO3R5HBEEgrhb/cgQ5cASX2uts6wK/ngIykF9PXbzIDuDIHuaZaq63sApkTtVanNWX0Mp3wOa8q7uMkMWMIAdWSwEHYAO8XAS8vMZpgAgy6AquwAtkzwuswAoRR3h6mgimgAiZsKaIoKa/4ArC0AttD3XtvqoHELANIAQEkAAJMPCUfdkecAMPgAMRwAENkPCsaqqGTuLi7uRMMIacruKP3fGQTfkVwAI80AMjb/JU4AUdTOcP/9FU4M4r0AIt8MK4BvMy7+u+jgLjquXBXuyqnalDH+bJvqlHX+CXoNWXsAiFUAi9+7+ofMqc0MqEUAUOoAAcoKq9nMxjbw3r0A7vIA/ygA/yUA6Z/yt4SdcJrnD2v1AN2fALwwCMf2l0Sfd0iZDHSqu0BEAAF0/57HwDFzDxHGDiOLv/+w8QNzgIvFHwxhAoTBSCKQJGgY0DCjgwKThwSJEdRoxgScMGDEc2IdlgYUPFpMIlTIY4eCEhxgYaOXIEkTGTZgqaMmS40ClTZ4qaKmbmkKGi6FGdOk0kTcpzKVKdPHOuKlX10yWslBYtOsTIKyWwnDiBBXuIUiFDEg6CEQKmT6dO1aa9kycPX1287YZtq9f3m7depkwlYpXMWrl1w759o/eNXd++27wNQ5TIDZ2MPBxMcMDyxQsKBj0YHFiaw+mHElVLVHnxBhgoNjjYUMAQyv8Q3EM2YqGy0c2MNCBJmhw5ROBpDg5WxKgSUybNIzZnJk3hwkUQ6dixB1XRvamMnFCZ7gRffnyrqlU5XaJ0adGlQowuMSJbn9Ih/IfuxHgBB5EbtzpxhZh26mrnnQLlKbCdcpLhq57FhkmEjkRMKSybxJJhhx16Oqynww43BGyYXgbBI4YYaACBhg0ykODFCSTYbLMJauSsMwcE0HFHHXH08QUfcVxBuQlW+OwFFnigognhqBiJCTYoUmBKAj6L4Yoqqoguh+i6DCK88WrqMkwydTJqvDOZSpMp9NL7ZD352JOvPfvKyu8OK8pI5RdEwHBDQGsSpCsvBddJ5hu+6On/azBTkrEQw17A2bAxRUME0cN6iHEliSpAkIkGGjJw0QILNJDAVBs5uzHIIIEEsjNXYf2RJc9u6GCGGcBIAwreqOiDDTgouqGIG1haYYUsZSKKS/DATMqoL7kc6oiayFzzWTPDvFYGqtBrhZNP2puTTkq8MpeR/PTgoxAxAqnEGl5YwYOVAw/ECy+6DizHmwchHKbRcrIRpppqFNuQwxD3YWefS9fZBhZBaNCSWRVAGOFiiy1WcQMQNvD4Y5BDFtnjjjfmmGSPXYRRghormIAFJ4gLqYg0wBioiCEoeOHYLJtTNlpq0SyTpiDONMroooLgSWgyg2hTvfWyom+++Rgp/+TqQ/jIWl05xLiiEsTKceUXu+41UEEF3zH0G8jqcaXRddb5RRhhDN6QYXr20ZtDvrcZpowraBDDU4uN5okIFxA/nKcRnFMxB8KVlXxyyWuSHNQWWZYAgwkwwOACHpigQiGPwADDCzZeyNlVCapIcXLspHVWPKaIttY8Nct8+pNSwDr33EKyvkOPNtrgQ109yBDDD7DjeQfecvBFe0F75dnGGrYhTCQRYdYRmBVW9lr4Hr3L17uebbZJhhA1QP05zNm31anoorzrbluicwpPO5lS0BiEDGzgRTI6lmc+EzPVGYFYxPrMCrDUM4nlQAxEaRrusFXB2R0FTFSxiljqY/+uRVzteHe4AxnIgAY9oAENyvtaoORRjmoQaEHTK0c5DlOgtfHFGxNqlDAsZIq9kE+I5nvMN3iRCMA5h4IYZOLtmsgU2UVRKDkAVQwksIIr0go0QziSEZaEhR7AAEkTaMkAPea+pTGtJ2XK1hPZlJ6xzKcr6MJPIY6nLjTcYQsm1IIKleeHOEQPQdaoBvXeYUNCEuMw61BQwdj2DVPQgQ6C+QUrgLgO8l0qROxIRiKyEDjYwc+CahyP7diYFOxQS3+qXGXQOpYDjw1QZT5aARmPdIELOIACMnpRi5Y4tFGSsnbB5BYcGcEVOx5vXcnUwx1WSAYtiIEMR4jm8lJhDXf/OK8cCZLHIHmhyBvmqxy9ONQ3kmEJCrkiG6yo0DYQBqIPbWhCVICDEp+jv/lpC5izo1/S8GkeZsWPTNHBnMcsIIGD/qgCFHAALl8lywx4Sp9uxFYGyTQL9cynECS8gx3tOLwRokEMUSDpE7RQzStIYpszpMtd5LEOBhUIHwdiZDuqEb5kCCMRc2BFwITBCmEkYx4fyhsRJXQFLP1MdqgMWu4oGkX+RSeqxJRfeZwFORWZLGQBRJnFfrnPU9IOlaPEaCnWc4irDe8Ox8Oa1tS1hSiY9AlKUMIENaELmqKtm4PC14JmOtNsDEYZibAEwITxiwbVbRtFJWIyklGJnknw/zlfLVNVTSkDakFVWkf4EtDM86V8EnOYsaMcFUHlPsqB9rNhFWs+MwgtGcyCKmcNXvCyhlb8uFUPcI2CErRAhCM8IQeS0IU5EHRcA/G1HXGjKUzXITYLVcgVMDRFNeLmqEP1xRvs8IY3HJsMTSCCZ1WQLGUrC9ZSCkWqQ5mstJbqRFHm70ucVS1TTMCTgIZ2tKVsWmfn61/6dla2ZoXP1Wybn64oUw8kPSkRHPyEH2DCHPFwHvX6SlNEVqOGcSNYNjqcjV/8QsMOG4ZitNsLWWxvezvAQWeSRd78UhW9SVlWl9i73th1Cb/4Ve0/w3rZHgdYoFHBLEX9GwQhC3nA6/8xMNbwQ8fjFY+3T3hCF6IQAzkYI5sVRlA36zKoQcIrkTd8Rr1sWA1rPBem1mCFOq2xU0nSQQg7mLNAjIWlpFZBDOTV82n9/Oc/lxd2noWiKkPbY/02jbPzE/I/kXwESIdpcYieNKOb9d/ONhrSAy5FgW17rq21YQtb0EJJ4/oEHRQCG+SgcKvNduEaxnqlaFspDmH60k6awhWJEAIQ5jxnOhtHZw1cQQZeEsAqtCgGomJ2s50tqg2QNyZigHS1g5zByya6Wqh09KUZDeBqz2++RPgScDkrFakAWN3g9u/8OD0frszRK/rhgzPhOmot8JEIhpiFvZznaukF3GwsVVD/gqq3jkCswQg4ALYRZrADnBWkCMh5CAUsfnHQHEnjG/8MBQhAAAoc6wrMqYIOfkBlLlU7aPUdq7P2t8rOfvvIMj8ykoOgBM6q3Noq14nO56vznGca57KlClbmDTy1omHUW9gtqa3M7wrHI5t8vddMp8fIutQ0L2rjJl5YYQMc2EAIOMAZsYxj9mHdQDbD5vjO2q5xj3+coRDNAA1+kHKgv7dZNN/7amOOaKv+3Of0BTqkbf5odeP80YU//KZngZ6rYEVO8/4o8vRAvBImzxCtqKG/KUz1geeretw0JF7ugog0kH2BClw92oc1BIrAngkJmT0TwKAQ2lMEZxxQwLAG//KWQPzKBhZ3YLKe46WY+x1x1465kC99eExnOsA6x7nKq19tJdj8+pDe/hG6r4THr6IVbzLrWM6lTPTf0XhoiEMlCHZrL7/6Xsu11wwJVfB7VSMPaWgI64vg/7JLO9m7ASj4v/9LCAREwANcIA5gg0DQBFdIBQJphlQoAtAQAAdoHYmJDi3oPsMjvCMgt0y7uZyjFp7rO/BIMhKcvu0TPJVDsuzDORlcwZsjQRnUOU7jBLMqv3KZt9tCMLU6njiIA1YIp1dzqXuxIWIopPq7v+p5IVcICQWaQgBcgtdTCSZYQAUswCXowoSgQiOAAjZQhFSohV+ohVpwoXbgBTi4Af8qCTlk6Zk9E4MJegIHu8M7DII8ZDzvAy4RjL7Goz7sE0QPvL7rw6wVjEHv8z6cEz8OUo9VGAvf8cH8OB79UJc4SIJOUMPpQUKzWYdEqqGzGUW9egdX+BUwMIJUBMMDfL2y88Iv3EJYtMICxAI4SIVmqIVU2JNfuCZ8uItUYII3pJXlgKBkYxG7S0YHKzdFBLobNLfFG0Trk0ZGpCvuoytszEZDXMRq1EZrPIJVCMcdFAtOiMRJRBc6yg9GQB7lqYJWMIeZujVuaikwawfjaocyAzO9uhde8IgpLEAoWMXVE4guxJlZxD2UWAIogIIlUKAFMIJOqIVn2MU0nIZniMD/lqoFNoiIgcC90+CijcMAFniZl0EqFIkDPXsCMfiBHxADKuPDxVNEGVQCc/NGm+wtbQQumuxGm6QrnFSCRzSrSCTHc9SareEDpFQrOiwDScAmULSGG/q8gZM/QSkQvioHVlC7VISNIlDIrixABepI2OtKhWRIhag9JlBILOBCHFAEYjCHWtAEazAHc3AHc5DAVvsFNrABAYyS0wiNjGMohgINliiSKzK202oOMYiJL+nAwuMsmeTJnvzJm8xGnexJbewtqCk/D5rEBFMwZ2qDE4KmKAAViTyzuWypV+u6QRk9s7GGPjCdhsC9MORCKAjLG1CJLpQ9L0TItOQVLwwE/2J4hlqISHxwh2coB2L4hWeIh5nqhIS4PY+cktxES4U0giHgAewUQGI7lp2xAJJrSSqzQzz0w53ETG+kzPQ8T/TMTCWAo6GURDpCnigrIROyT5OKgj0LhFrYMNCrC6szm3p8h3zRq1+IzVQsglgMwwMsQLHswrJMibOkPbX8vz4YTmLQhFRwzngwB15QBWIoh2wiBjiIktxcINp4CN+8Ti+cQiY4EloRkhcRFbs7OTuMAiJgMC2YK/ZEz1IjqSg4Kd9iMLoqNSXorSD1rQ4M0iXtwJPiTKL0QQUrnuJBAy3grRwl0hiIg2dgtbqQSvkL033EC1cwnYBUIOC0TQUiiP8srM2DnL219ML/0wRzmMhOeIa7iIdn+Ca6jIda2L9YpAje40jbW1FeUdA41UKFGMucuQEyWgEWiAEkoAErUElpGimX3FElLbUfJaki1VEd5VQgHVUd5S0nFdUo4MH6SBc+QAMp6wJYHbUuyE8gPakqiINamDAx3dWp9LrSKVQmqE3bLAKze1OGjFCFIBYc4IALxYeJ1IR3yFM9nTBrSIXYtL0FEogpOYADmAhDxQIFVUA2QFSGVB3Vgb3PcIAK6AwJgDa7s9RoOilUlVef5NSTClJSzdeT4i0GY1JUjQKiJAtWJZ4uOKFY1dEhxdcdpQFD0LIt49Uw/c8yLdSDxAL/hbTC3JxFIzBUI/BKgbCBN5DIauUFXZW6mSrOYbm9AJwSBYiIbqWIhQxWBEzUgLRYhuQVhiTWIVgCgyyCDsAlCljXIilGMYgDOqRDecVXf5XXe+3Ue4sCuLKyeyu1pyW1UYMmMjCr+8APdWlVKuUjaJpaICU1MmCwCfKDUKhLgDvCiCVFeWAFf0RUY3VF3gzUY91ZgiA7NuiDVOCFXWyGOi2zPe2DGzgAHMBZnmXZluXI3JTOMJTZ2SsCm7XY1itIWtROIwAdMlKVGAHPKvgBPRspFeqjfb1Sp1s61JXVLsC31U3dpYtVWCWDLbgP9euCNojVLVjdKLAykiI1UhXS/x8lgyoghGdwh/8cxeOKG+WlSuh8jSxc0VacCEU1VivkAFvsA4vtAy/og0Do22YghlTohD6YjduLEmLhPcWlzrSsW7tVy5uF3JvlzboNnd18gQtAkhVogSvJEjG4Azo8hP4tIWfSozzagtAc4DwSg+QJTRVq4C5o4AY+SjK4XdxdXak1XVCFWg2GKxMyWsB1qeNNG+X1Hvi7CxuSF7XLWLuVXDblWTcN1LGs3iXogzwgXBw4XDbIg07oW+i0AbDjCCwoiPSdko6czSKovcfN2Rdu35hN4rJkAiV5AR74jPv1EZeQw6PNYi3eYi422DYgnsuDYBSi0tul4N21sgveYP8NZtKExVQxSNuHFbiCQyRiSMO5fAZzoMBgIYgT5ViCkFPL3U0I3dmJu4HrLQLZwIGayWHolAiy440gVlxulYgrvIglpt6KNdQVFVYohr371RnvXAEmuIIXuIIVgAMHSmVTXmUHMmVVNuUqsAIr0AE67BoS6t8qzV00qOCoRePdBVLe/WUmVR6RqgQ8DtAvawcGIaRaYAW4EN9O0ARp1oRAGFe+FMCDlNwleFCbXQL5FeQuvJkbUKAb7ggWA4MbfggFks6WZVlCVYkGbdAIZd9ATkDR0WTEvVsWeNF0ZTsB0BmL0yWBZqiBppWAtuIXsYAMsIBY3ij/5WULhtrczV3/qDVd3kKDir7afKumOHhHcwiHeKiLPM4FWIgDQ+gZlL7VLDFlCngAHrjh3DRLs0wJKliglOjCtMTpQb7pLhyWZb1hjGgILGCxBZANFruBZV2A1ZCIjszCi71Znn7qr+TCrjziY027Yp09L3TftYTqmtbNncUNCc3WsysI3TsIiTuIIegAW7mAnTWSLSUEQiADWK1ru0ZjWD3jX7aysq2yKMBaMRApMdCEKqiFZoCGYiiGWhiFTfADP7iCISxaySYEOjSEIVyBC6AAD8hqrT7WtBTAIaCCncW9qBbrZPU93hs7I9gBMIC4G/5pDogA3kPf2R6WLIRqnd7qnL7Yqnbq/4g7DdAenWPFWeL26urk6dHW6kI91qru7bC+iCVg67AGDWSRawq+a7zGa72m6+zma1iNJj3YM0OQBEmoBDuw7DhgyR+g69tVoQdug1323zKQAAK4ANvW6ovdbYnTzc6GUOTm6dxE6gWYjde+YeSIbQ4Y8NlAjrRGiIv17932bAgtwGFZoCFgcJTAb6jmFQ3nDdNW7qge7gef8BHvQh5YghNXoCVIAAG4AjkgBFf1I+yu69zN7jOecbpWYKMdQj9QgyEcQjIgoRjfZSstcjRYhDuoggmwuKkO8YLkAB447v7275kO66pGag7AAdle1gWXbd5T8CwvDQFcyBJ/6hGf6v8FiriuTO6Z9mpe6WoE3OqZ3uoIPVYSJ3M7N/ET54G15AEKaPE4gPEJnuBdnnHYtWvupmvufu/RFakVKlj2fuAHJnL4hvQGvoM4sAABIIB/JtY6f3CLkNA2f+7nTglC9j0uR40EX/UIIGIGH4i0U/EIh0Xc7mli4WM01/CUOFYquFksmHISZ/ObxnP/fmpih9AUr2kKUAABWAFCkARXJZ4JptJCL/QZr/G7hu8h32UTUnTblfQh13b3ziNMt4IJ2HQKGAgnV0h1F/bfzE5v9ubcqHCkvoEHQA7ZHnCJ0HcwP41ljfUmn/MHX0ifxvWDIPNZ33U573XcZviodvh1X8j/Y79zKEhxI1j2Zo8DSZh2av9iMiaeMnbVKoXVQtd2ancmSg/3KoVvj2d5+OYoMUgCC2CBC4D12YuS4W73dQfri7DytCuNVEeOAef3fvf3tGY9nuXvCc9WDpg4YsnZT39fEd/wYr9Zif/1qf90Ki9LhJ/wmuaAABCAIbiCVABjMo72lXd5Fep4k0/7cWf5tW9vltcD2xX54sE8EiKEOPCDmIEC2749qNb5ED9xse55ns3WB7D30/By1UjwoWd1fwfuo/f0nMZqyycWlGBIK8dvXbf6WpfzhYT4iJf4z7/YZJ84AAgAAkAq4YmyuFf7uifjSl95kBd5V+X4s2/5GJ/7/+JZKwGWAzmwAgtoASNhuxe9cAq4aXhffh6wcugWtpsZiHsXesevfgUoegYXCNarcAZk8Fz/SkOWeGCXc9GJ2ayHAtG/6fQvfc+XaTekZDbIhHI5BHW5A96nUpDH/7nnA90HCDRtBhIcKFCPwYQJyRRsc+fhHTJy5CSJcWUFiwsvhmwcwuEGEyZDloSEsoTHkiE8hhgZcuPCjRtFbnCY+eAjhwgcFuzcyVOBAg5Bg3LIWbQoDpkxZeJcWoRJkSVQTFKFUgTLVChMpkpd4tUrFCpTS4LtmnVrWZNozUodS/Vr2qlU4HTqxEoTJ0qM+NxBwwfhwYIIBSccLLDN4cKECf/3Hdi4zWCHZMTEsVKlhoUKGF5w5kChwlqUKlkaQWmkQ0yYN27eXH1UAc8FBBYomC17Ac8ERXXyPOq7aMyoN0h+Ndk2K3GvaJdvFStWK1rjXrG6HUmWidQhb5dQWft2qhdNzco9K1eOEqVDfCFD5lPY/UH37iMDZt9mvv3IgR0itn+//2B8iEFGHHbEoYMTm21EAQU8dCTaSqUtYYQRM6GWGk0f3VTUT7Z5CJRtOyUA1Gu4HZWUUkUMERVXbDBBnYvbkaRWSd2Z9MJz133VnUsz3WDdctmpVRxYWVkFRy3u4BOPPPHo9RdCerhHUHz4/RelfOxJGSV7f2lZUF/43YH/32BR6oFlG2JYYYEEDFLwwUgQqjRhB1F5MFMRd/5mVGy0+fknoH4KtROJvi0F0o8kBQmFdluBVIRWkJLlIhZsUBEjVVfhyVRM2GFX1nFcJddVqEVo8ow7TDK510NeEhaYlfNJORCWXM6qpXxnDoRfrJDpumuUdxxyRxxVvEDBAxfIyYNoK84g0wMP0KSbbjrtNihvgWpLGwG19cZBjyCJRNwQUEHnXVfXkQUFpo5WWASeNdEUHIvfaWWcWkU8B5dacKRizpKqDjvmmLPeysd8CKMJpZezMnymfApviTDFCle8sK56FNIqH4TI4ccEFGzU7AUroobandJygMNvOkWg/wADHMTMwLaABgDUAgcocAACPLH80UwV9ggVSPiaZRUYRSQNxg1MM630DjhIjYMQUn+E6IpLqFivVOjSKGNZeRCjpKryCKtHwe3dh3B7bBus9sMQr81wxRfXTfHEc59ZyF93QFbIIZJcIXLJhQ+BGg8xpcxBAjgQ4JvLHNjAAG85wVzzzT0zcMDmAHD+rVJO3VChuDNuOtPUK9vA8tStT66ADS6J5PVxW61lo6K2G82EIs/gEzCTBWNs8JQUty1lwn/djTeUh+ihnnrLK393IYVoTDfCd2QggQElF+E9TB4UdRPLkVsbweQMTG7Db7jprEDPQCgAhA02CGE//UDQv/8GEGaY0X///GeGOczhEQQ8IALnMMADQqKAj3ggBOkgwTkAgXNJAdKQrNKWo3mKO7TLSiB8h49UxeMdBYuYxNxGJunZTXrOOwT0Ykix6L2QenzgG98q9hAdWMAAG3kJTJDlmsgZ5Xwymxz62EcU2ODGBvODXf2EAIY1CGENVJziGtyABzxMootezMQkMgFGMaJCjLHIxBnLqEYxZqKMbWSjGCfhBjMg4ABHkcmoTBKVT3WFCtqRChZ0l5YlhLBsv0Oe81p4N+QhDIYVoyEMn1e3GMKwktDjw14seUlHHiKHEkPbHcSQAQx0jwJFoAAHWHMUnejGKEexwQNogz/90dL/BmYQAhBwSb8qWrGXVnQDMCeBClTgIha4OEYwpMGNZS6zG+hIxzmgCc1zoAMd3eAGNa4hjW1KwxbH8KYtZBHOSeCSZ0S5WkuMoEeScI0699IgV/R4gz6kghjNgIY58olJPlBSk+rJZCX5yc/nRTKg0UOYJwPKiEMsFIYLJag/I+pItkVEDj+owQUocAMGeaYo1WJcT1wJnAUwAJe2BIMZTtpLIQjhlr/E4hqm6IZHuGESpxgmLoJxDGkEoxvdSAdQ7ZGPoQ5VH0SlJje0KY1jMNUWTnWqLE5hCzzMwXM4O6dSjLCE4UTlKVAI5L6IlBymMIENikhFLWpBDE5KEnCa/+SnPxnRUInSVa4MZahcFzpXh9LVkpLky0MoMoGMIgtZILVWUCLQJz/xrH+QeCwkTnEKyELWDA2ExBoMOIc1+K+AmXUDKixBzGPu9BrVfGY6hEpUodoDHcvcpi1g201b4IK2uBimG4RQx6te9Sg7gBce+SgWUnnlBlbBwkw4wDMOsEETlUhFJe6610pO964O1at0+6rXvHK3u97trj8r1gaJhDIJFniBABKArMcNilpDwQ1t4HcAIKxBmKPNKS5wYYnHOvCBmV3DZjlrBs7O9IE3zS9TpXEN0z7THg5WrT3SkVSlcrObs83vMFGR293ylrcrS0rQ9sgdsehLncfV4//OFDAETYSiFi3+7nXxKuPv0rjGjNALjm8sV73kFcfo0XFeLSlQh8hBIlaIQwwqQIH0UuBxjxuRR3liG5wB4RHBCAY1skmNZVLDqZKN7Cke6EACclbAVoSgTRG8TQY3GMKt1SaFLRxb2tJ2mDStIM142zPOFeW3PzvR6LjCR+MgN8VIIkYudJELHusFr+DdLnd97OMb57jSlLb0j9GTaU1zOsgHlcxE5PAEKySBBRNIgAA4IIAFJIAnivWo5RhAIjMIYxz6OAeuq8mNbdaWmJY4hSUgCGAy/28NdDjzI1BxU9ommM2pVW01lRrnOXfztqh44P80Z0cA4MyCFVoCdSr/ZKiZvCUqTCu0HeGA6Gbowhicfje8NR3pS8e70/aGN6XpHe8gU+whElHTD3SQhCpcYXACEAABZjMbkB4lATF5QP0gcQ59jCPC6LhGUpm606XaQrJhhgQdCDhg//kys4/4tVNxIY0tL7Oaz86HPZa54Dhz07aogMQjzAAUmO0cKAgICg/g8IY8BCIQnVCEJhRRdKF7wQt6hBfUYwKGnXEADppIhShqIYp6UyIvnPA6viXN9bGL/RKUMDvZ7Wo9fxfZCgHXgUVqcIUKHFwAtYnAbKylIQpIjSanGMdQgXrxmS8Ym9LAxU3DTAeQA3jA9LWlFRt4cqnSduUY54bLHzzh/wrLlte2eKz+DvA+WftcAQHAwRuK3glNaGITqVCFKtKK9VSwXhF5gAMbkFsEHABF9M2tBeuPDnb0eP3rxu/68cmu/K4zv/jMHzuQOwmRUOtA4DGoSA1a0IIXOADhAyBAARbgstWsxgNJAUMwwJGPczh48Az2aTeo8U3J7vcRkBg5/6zIS2PjXLLMPsbMOVODuZZS2QLNxRbi+c986cwBwBdu/JwC7IAXEJ0irF7roZVaPUMzNAMxEEMtpAIIdkIg5EEf3MDOHACSlMMHrp7xtaDxlYILtmC9gR0NIl8M3iAnrMINdppdTZ+oWUH1wZ0FIIH2XYEGoBcBDEACFAAHNP9AE9LEA/DdnYABM6jfOfBDP/BDOlSTM/kUNlFDbd3UY9HBADkeFVGREGzW4oEZsynYggngFiYVN9Ecr51C6InezsmaAy6AEWCB0w0d0a0eCIpCB9rTBj6DBnJgLfyCJsABGHBAJxBDPj2DB5aCJZbCKljiKmziJsIgDn7d8zWfKIIiDbagDuYgDoaiXFXPHUyERAQh3JlXDGSf9q3ABBxcwiWALjocBaTM7rHBOFghP/CDgwneNV0TNRxeGO5XAymQFeUSS1WREEjQ5I1WaSXVaaHDHHJehU2CGYgeOPKcYj2gAkTADfghFvghHuRBHlTg1dVTBzaDBiJieZjDM1j/Qy24Qh/0wS88Qzu0gzy0wyrMwirQwircwkEWZCZ64inKYF6E4rsVHw425CeqYidtzEQAHBBeXwzEgAVYAGZcQQ3EQAskSJPt4gMUAQdcwJ3swA0Ao/rlAzES4xZyIZcdnpd9nJm1VDSy1IAt3iNIlpoVnstp45pxI68pIDjqDA6YY1PCVwTggB82HVX2AQWyXuzFowZaAz3Ggz96ICt0wi8Qwz+Wwy2cJVoCA1oupCe6oChC5POVovE1pA6eIkUOn14sQiF4TEZaARDC3fVlABIM4RC2wPVdQRK0QPe5iUahzC+CQzDKpD3wQz7UZDogYzLm102dnAH1kg2sgf2s/04uDVgB/Zo1Khg3COCuISU34QIk3CEecsAO7IARRM04LgAO9OEfNt0b9GYgasIvqJUhNoM1cCB5tEM5mAMx3IUrEIM1WANa3gItoCVBsmVbkiInXEJ2ZufZcSfxNd8NUiRdOiR6VI8c8KUcuF31BaYFeOQsjiQSxEAVJEEclEEN0J0uvgSz3EDUsAE4xORMtt8WIiM3HINmAluw4ZwZslQU/Q8BPZayEVNpsdlqSpsyKdX9LSA4rg5/zmZTNqH45WY6Nh0e8OY+Gt3VqdUGcqA1eGBwEgN5WAMjukItlMMs0MIs5GiODuRAWuLXXQKQBqmQXsIiEOkiFOmRBmkhmP9d8dXlXH7iQzJC9aCnXwZhEvCQR5oXSMZAfJYBfcaBGsQBEmDAwWVUAiTODeAAGzCDPqifOlBmhBkjNjFVGIaWf5VZNIbm/dzSHNCBgUnoNRIga14DLjxCBYleBdVPTLhk1IAB1dSPDeDmDjRBGrCBF5QoHrzBiY4gK4BgB7YoPrpCJ9CoNZBHNaRCcH5CK6gqq7ZCKbjqJ3wCkB7pIhBCrRICrnqMrp6nHfAlrhZCkWpaDI6nk4IiI+glIRTCRFRpELqnBWipeSWBtNKnIRiCJFSrfWLABSjLBbikVMbCOKjDFUpmNFnTNRlor0kWBOWc/zDo/dhALvVP5E2eLBz/kxsOnoVVmDbdXwUdqqI2jYfuHhhUTdVMzQxUaqWkwaVqah5kwgjWBarWQouWAzEwYqc+5zPwAiv8AiZ0rMdiwpAeaa7aAcmWbMlagR2grMqWrBz06l4mKSNoZw7aICk+n5QCq8ekLLNG60dC6/VVBH3agSEQgrVKwrUKghNUwLbCi5pagilEJmsB1TXt2jeFYZjp5GblEqRCKjRakQSZpiw0m8zFVud1E2zWz0cwjdSBwRTZAB0AE9xSTR82gRdQ6qX2wdAFQibAQdF1Ki84JwdWLKqmwnPygisYQskirtASQq+arM76ZRKQmsBNK+VeqeWirB1MRK8mK9qRHbBO/6nm+iWpOSsP9eyzVkSYLq4keCwptAIm+AELUMAFwMsOYEGfKgP7DZXFdcOCfZOXKdvHGVC7hmb9aK3+9JL9/VptTeiCOVXZQsJSAoUNGBe8JE0R1A8Y1BQeiNE+usFsGkEawAAWUGqmrqMI9kEnoO/qjaVzPicxiKorjEctJEEZqEESqAH+5q/92q+0qgES/C8AY4YAg+RHCnDlgqmBqC6tYgKtIimt4mrj6izlfuRHasDpTuuRbS4Dd6yqtsIskEIZKK338IAQ7IDTngPgjUMcXoPvPpW6Vtb/pNS7bi00VhEYPJBoIRiWyZ/zkm2hfuMBTO/0LqoRgIENTNGAPf9CG/2aaDVjFs0AHoSvpWKqVZKg0dXF6rnC394jMRhuc5ZDC2SfGI9xDZSxBpyxBmDABKhxGmOAG7/xG68xGrcASNYA5cZBgVRrru6xrUIw45Is5EorBWtpz0qrDmAurm4wJrQCI7eCLgBDKJQBCwzB7M7ADqShJRxDN1TcOfDuNXScC78wZgmQ1m5t8cIrLzmQ8noTnT5VHf6PzqRpTCSFJUcNEEyREgdDLAzTTe3XHLgBGFRqD1SqF7BB+fZB0SGzCNYF671oixouK9TCC1xABbxANVdABbAANm/zBRiAARzcN3uzOIczOIfzBGiGG6dxSdYAEtRvmMaBIAhtHCj/rslagRqQmv0OJmZYgAXz8wVHLskmssc2MiPPAjLMQiTzgLIUwWzSgRBYQixUIQHO31N13GTx1xzc3/+Y1NYiwLuyFAFN3oHl12zZViZ8I/0McdTBi4CZwSkUU365cMfhHE3RATEr7MKeaPrmARZjsRb/LT7eBYMIwJIVdd0ddd0RAMLh4lIrtVMftTdjMwZINQZoQBn/r5d66f6CaeVKK2ag8Rn7MxJoAAYH9CJ4bKx2sAfrAi3ogi6EghOUTAfMJhXNgSXIAjNcEwtTnpfNdGVtVkql9CnnT4NmtP15HOJVdMeBQb9Or/UCF7yk1COYQk4FwzEdU2yhKxgBUxq4/4HCWmpvMmwg9AEiLDMWs54WpwIvpEInEADeOWAALEBsBwBt17Zt33ZtJ2HC7TZv56IBdABw8wALsIATFLcTXIFxF3cWFLcPYAALYMAHoPMbh/UQAnS1SgIhYEJae3CO6kKOqiUw6EIlZIFCn4YHXDIdTIIpyFwLg1MYUhYCARC8wusC1A8CbO2ZuUGwCVOySRYbgAGiTu/5QR0OGPEcSFUy7ZTKZXaF1ZYlWAIw+eEbeMGE7+OJKjOKnnYWa0In3IZsJyFuh7iIBwABkLhu77aJm7gBJMCKd881a/NwZ/Nzz7g2R/c2p7MP1LG0zrMhnDXIqmop6OiNzoJ3g7cxVP9CRqDMJeOyNy1Vvi5Vft0WsGE0ZzHofAMBAuRPSvOpya3rAzGBDYieYysN1O2eFEFCLBxDl63cxhHeNgWDLIRWhJcohd/tPnYCCfZ0BVpgFrsCAPw5oAf6nx/AoHsOoR+6oP+5iJuebScAbc/GLoKULlKALkbLBQA3pgN3dH/AGbNz/wrt6nIwd+MojoL3LQCDWi4DLCB5kl9AbU4vznnTgnEeusY5MzZju+ZPff8cA/Q6ECxADRsbMLEtaP7c6gh4mVtRAZ1Cln3TrBugabm5NIgTHqzBDKTjVJKopiJCIF4xh3+7JrhCKiR6oBO65xT6uSO6uXPbzbQ7o982iD//erfwdgK4NgGgZLI8AKZfOjb7gKcHbY9jwuqu6pAPOaqf+sG7dTSId1xfugekqS1ZFi5E28wlo07B+TDt17HpH7z+uscDO0npD0uJvBvQQdvawH3jwOrgwO5B3WcmGyokE5wpGGqu8KwfgyxkQhpEzbVje9NVMYZreLh/O7mXu6Cre6Gbe7uPOKPXRm3czB7CNm0vwACwWgQ8gAd0AA/AgA/4OzurQdGuLil0sHeXPTLQwsEDAzIsAzLoQjQsPJIbgAi7RAxPQjBQ08Vt3lIZqC3YKWYpkC7BjxPFDwIU/uSwVFNSTRLV98q3DtVAgiVU9DZd3Jqh1mnJ4VKZAipI/5ClwsAMzID48qbqBYLSsZ7pJ50iJDqiGz26n7ug17ZsLzptewvUw7bpUT3uz0YBXD3Wa70PsEAWtLPQWismhIJ2e3dbz4JaIgPzN3/zv/0yRAMs+IETCMC2DgEF1I//5BSubeGCJeNSYTywPUIvEfbP/Xrhz0/hGz76tP/6MIDKO74UJVtJr9mCZV5qWdOEaVMwAISpPnTeIHozpQmMGViMUHkDJ0+gQIoUaWqkSRNFTQE4AggAACTIjyM9luQ48iSBAARYtnT5MgGBBDFbrlT5smUBmRA6fPjgw0cNJGoMGaokCRMmUq1m6ZpFSxewZcCQVa3qDCvWZdqW5arE4v/ChSFDbtgw+yiTMHDp0qFDd+2aNGnHjsXCZelR3jVCbABZ4BdBYMGDBTMIbEMBArM2cAhpDMTMpFix5FI7Zksut3T87NlL19leN27XRksLFixWoj6IAu35EkYKFSlNZkuBOPEPRUWB/mw8adLkSZTChd9sKcAABAMUEix/QIH5zAc1Wa4cQOD6dewEChSY2aEDix4+sgwtejQUqU9MoQK7BYyqVWRZsUazz9VYJScUxNrgYAaMOehAhZVr0GHrrbiCOSYYXFDBa429+LLhrwUQOABDDBFgIEPBDmBAgRBtYMAxIYQAwo1MTpOGG26ksQWzzvjhrLN87BFHNLiuOS3/GFRYGwTIOgKBCA4n4JDCidkiikiR3EQhDsrhorRuJwPA66mDCjoIa0srmzOgOelYogmnlwpQricfMMhCDUGMkgQpUnRhyilalkHmzvnos68++6JZZhlR4LiAgxtuKBQMxjKRRRxxzkmHm2OksQwVB/N6BAwTgUAssQsxBOAAUDXkkDC/bDjRDDMggQRGSV2EETN07MmH1lk7S6eba8QZTcFgMskkkE4EaUSQP/z44486yghE2dwiicQTT0QR5abrpkzppOy4S4An8H5yAtxwxQXXBxbK/eCC5MAkUzuXdPKOJ5+cqKEMoioxaqlWoGrvPav43DMabQQe2BhBh+CA/wMwbkjUBjAgOYXRc0pbEBcHIYzQrAUQA8JTUEUVFYFOMQzxMCAggwQXylyUBhfM4tKMn3xo9IxXA0m7hhpqfkVEWEEi8aMRP/ygaGigIxFFWlFCCSU7jrCD8ukBtB2AWyt9+oCFJpzIog5ky/D6jzKUVTaLLJw4V0swBShAAJy88y6BByr4ibwsBBGkkkpIydepqO7MM5o+ndFmcMIFJoccbXQRJQ9Ci3gch8gjpMMUYZjJucGKUbk00wlDJNnjTxUY2dMARjfZZDOAgASVnOOSi0VZR9PsVnRa1LEbt3KNq+VMEFGkkaCHvVtood28181IDLmpuJWsC6Bp6K97wP+Dnnj4gAcfwsjiC0H8GJ5YYiMZNpKg/yj77LmTEwCCBASIKaZ3EzgzS6B8QKKM74+SZCld/G8vT3saXOEGpg3EcUUVgeDBDTxwAyNE7lRmWAMugpEzalTMQZuL0IT6YqHEhAqEIAyACA9AMpMdIFWnqKBcYNQidNjIHjqy3etg143cteVmDfoVIICmCOL54Wv5y1/xhMiSdhmHOzKRzgPABIFu+cRcdVPW9yKRt0osDYuhuGLegHiGsqnpAwZQm/taQpOZWKl+5DlDm/KWnlb4TxdTkWPgnBEwAhZQG/DIY+JyEQknXOABHZjBDMCAA7NAIi2nwWAm9JKoE2nsg5//kuQBRlhCUCnmAEDI5OoqVTHMSIM09nCLPc6BjrnADnbX6MZnOmMzuBzDFKYYhCKKB0SxlaFsuCzDFXB5hSyM6W1i4pZyeJKcDqApPFjrwda49rW7VbGNWcyiKCoxPjXg8mwsqIC6YrI2mSjxAUz0CVCycAb9XZEUsIBjHJHxr/vgkRzRSJwe57kMWPzhBtTzQORShzJFZgIXesFYXz4XGBAiIHSUBOEHOZa6R2gOVqQZZWds96JPysVArPRMOmzmolgiC2hCu2UWcFk2k5Krat260pXmdr3rsQCKyvxWOb/2PbxVUWnpTCcseLo3LVbCe2XwIlAqsE0wfVMn8Kva/zjJUwc2olOd/gNUOwMWDXjcMY/OOCA9BwYLBSaAAzjgwGKAwIZfoWJzeTGDWdYKBAVwLJKXDFViPlbCC5lsDY9ABUBP0UJuuAWwpoTLi/oKygPNDEGqHM1keDaIThwrbFtjpmTLxQIWJKd6V9OseKIIlPH44LP229oZnOkzaC4NFjvNRStywVNYLA2oQf2iD7bZnDKCkwDKYSpJz5meqMZxGXR0xlXxODA95rGA0djFH3jwgBvgQGMcMwMe0JpWMEjQLH7R5OgkiVAMVRJknTqVGyaRl1OcIjOBrShGYQUjWcmIRol9C2p8RxFjiS2bli2X/Sz7RB70YDxnE7APpP/ggwGL1sDMJO0f7nbTK75ip63wxWpXm9qljW98uDxXB8TYvnfhtjm7dSrerggLXwA3uFW96oqHi9ziDqwrmmCBBxCGMMSAIa9swNRabcBjuHYohKZDKF3ligAgrGEOc3jYKXAxKVVCqkWwg1Vf0XsNe3AGyxt1iyqpEQxTIAJIjQjS2TBA2wqYq8zl8haAWVDg7X2hnHGuQ9m254QwgMtsuayD8Z5VCaWFwrUUFrSF8zY+IJoNpuhaF26VmICeRLGcbETtiePoJ4ENt3B61PSLo4ENbBgjElQg1ALGipg1gOEREbpuXwi63R+DEAAKGOFHQIKhvggByXlBBXpdl6P/uLyuvRg1EGiy3JYtc4ManchEmL1mNidgQL9ljqL1CKy9cp4BWcYCabbrMOeywZlrpLVpFSOBRZ62AhYV9gW6fUHo8QnC2+f6AIedyK3mQCC33JrbZ7n2zJzmAriWDhhyV/xibWCj03/KhSKocCgOKGAxp5Z4j8n61sREcq6UpOtcgWCiOawBEo9g8jGoAZdulJyFwbbyZwS7GRndytiiMY0sYukIQHQbm+Syn/0+AGACw/kM3TaWIABxt6IXS2h/8GKcScrgZ552p+lmLWvXDQt0XzjDs4XplaxkpW4lx9EfqAC/y3C3agL6xIAK3NrxeNzkIhwbyzCGMZYRCkUw/wGsC4D4piI0UB6bJURu/eDoRji60EH8VKl+hCUmQ3Jkj+Yy7bWFlWk0I7h8pvIwd0uLUGOKTgyiEUonWxZqcLad+wAGP68DtoEmCEfgtBKgqOaz3k0879ne7DgNxSsAbfV0+77dviDFKwpdrKWHoVw96PnymX+18PRg7EAxp8/amG4ULwPhWMVjwuMud2PkIheiwKfeSXaAyGVqDThYQ3YJ+lbDHOBCCgAVd0u4qTlc6hSVquDJ59Ky9loZvmaEH1wEHWbkyg7Q2BJEGWDJFADBAQdBqNAnC3bubD7ACb4g2/5AfPwsFFRhaXhvWqaF9mqvwXyGxK5oaaKOtXyvp/9CARSexXuU7tuyAEmSxAYLrDakoMBEi6Smr88ADeAARQizTxsGbmA6TQjnzhh0obVqoRLgAAcSIPAQwEQK6dRwjIPcigFs4EIKz3QyZO8kqLz0qpNyhmVgpK9iRVYEMGau7C0KMPO0bMsWMJZADxAGQelKytnwLEm+oGsa4fWmRRVewbVcixB5ivdUgZpob3hGMG+UhveiLtBSi/hmb3ySRfS4Jtw0cc7yYAbhDPloCqSozxOAcAnpTggBhQgDp/u8b8JgoRZCoRZEoRGkALo+KAJsYAdwAAx6Eccyhf0M40I8BQz54tRC7hRErlJIzv8KSxom6spmxEZoxEAE8OX/2qItZsc0ZOkPHKFJMvGkJrBssM2HRGEQTcwX0lEd1zEdWwsWXmFaKsETCq3PdO/PJNG1SGEU6HF8Qi9sMhAgAxJZvM2cwIaK5FEU0i0d5+76UjEJjSEdXasWYGEQa0ERbNFCAGBEzs8NwKAjT82QFqNjKqmETsUG8krXzmsZ/c8WJGXYQAMmOQOG2AK+QANBNi9nJgMPba5J/GD0TKpsNPBZRIEQd8EXIFIIoSEVlXLuIvK1FnEex0ceq8nPpmX30gPC3jEURGEEn6URyscRhgYQvxJaaO8rg8cRuC3ohAqkxPIReSoXjvIo507u6lIJJwz8YPG1XuEVVMEvG8EL/yLgIxpgCyPHCNIgDcAgDXaAYbbwALgwQzCEL8zg4y4FrRxkylxmlTTqADMvvg7kAPOBlTYPLrpMFhzL5u5Q9LwtC97sKz1hEHchF+gSUKZhCLEvKdUxFxKRHi2R9vIGFFxQOEfhp0bQZwARaBwheKAlBJszBL0yBgHyWISmEebRL+ES/OZSF5pyCY8yL9/xHWOxFhRRFe6OAQKAAdIzF31RMXtxF7kQMiPTLIRAgh6BDlLyvM4LRkCpGx6FLTjzADvTM64B82zSM3QHZxYEEFzBETaB6I6FtMAtz6SlFnbBKKEBQ6cBG8IBcTqUHMIBRLFhGqahKXezA+fRE8qnEv/IEsPIrSuNEyzLZygFkS8JcSJfYRcIsS+RBjppqWtAipaqsyrNEQjxEvyO1B3fUUdtdDzHUxU0gQcEk/wYI6wiJzEhSJMiM5NuTUBCzrxWRT+PAS4A6z+JDTRgCMs4ag1hjqJsZzSUIRg6ARRE4QWV0/jq4AvyNE9FQTbnEhpGlEPJwR3cQVAFlVDdYUSngSlfURHlETqJxfVcD8NM0BEoNXzK5zUHkS9hQTY79UhzlC8VkZpSlFiMpScZTEhRdFoOUUeVlPf48ipt9BVqgVZz4RlqoRGoINYUQO84QDHMInJCMpMwJEvNYv0ExD7BND/pApT+KncOpEADNMs4g6P/CDS+ROlA3ZQalKETkkEVZA9Tg6bbuKdscgFDnwFDN7RD3QEe2tVd3TUezGEa0PUZ5G43+5IeicUPwtJ7io6HHNAPjm4s0fJopAVHc6EYlHDu/hQiIRL8dsEvp4VUg4aWgFQQiKbPnFNjIVFHd4FTwa8Y0HUXUgEOHiBEFsBCQmYxAI9YNQl1TjLXVgUSLCE/cUFSWOSv0OGGzHRarwyGEoRayzSwkI0aHIEX3lEV9pFUjQ8UjeFPPY1D2VVq3xUe8OFdyUFebbNe8zIWR9XQAhZss+1rsq3oKpUsPWEUzPFg51IJbTNRoUEJYXFHeZRiIatoikY5X49FqyhpOnD4/9JNNoshYen1GYwhFbxArEKmhOAP/k4nMjfFWCPk/laFZvNv5CSFGpzVLWjy5aaVH/phRt5wZmxSZ1vkclyBF3yhRhuVVGUwDDQ0auGBXanWamm3XclBREcUGgo3FzwWHuWxEb6R24Sq284g6JAleIMnaWIzcBc2URU1d3U3Lnt3bjfBGwOSN/4AD01VLB0hWqpyU/sUYdF1RHN3ZBXhDYpgRIZRSzPEZBqm70BOyWj2MvuK5Jo1sABUQGNGAAUry0h3804OFJLhFZVUEVNUEeaMC9R1dt21dm2Xaj/U00bUGJ5hwnahA6sJsjAx6FbPg8sJWQChOkUhbXH0YxcWbv+nwYBElIWxzxhIFPxqYUfLZ2gGclwDIQt4I3tz42xXFTvnsnwnOBywoRiIIRXQdwfis323FH4l9xFmNv/QyhaYrMnwl0xZyTMFUGb44fJ6dqM+A1eogRdeASLbUSsVUVyz4EMJFYKp1oHdVYKjt3CLIRec1BOCFw87OOj0VE+F7jXV1kItNGHLV0O1IRwOztMSeRlIFC/hEYGzzRPzIA/qAA5yOAsmmTeAJ1rUllN9gY7RNZGHOJHntRhGVhP2AAt2MQIMo9beN0LcIGZFLv9gBBWm2PFG44phchprZBo5o4u9+D/RQRyYoRas4YXL+GEVsXyUbmpl15mr9l0fmGr/3SEczKGa5xVdv6+OFXETvrHbOlFP8yBP/XgT0JZ5BTlDh9hDE8eQE1lEmxJiVeGOr5dZIvkL4OALIrlrNFlaYjMu546FDxlxwoGQMbQYamETNCEQ8uANUtkwgMCQJiev8soS6BeD0BAXSKPkrpiV0DQarVGUrNUAaxI0mOEcmqEZoCHuSBQiQZUrQ6+N39hq8WGmadpdw8EdrDlDC7cZ6Hg8H7mexVmcwyBPx2APsK0RynkUVCGQZ7WCPQ1x3EGaOxSRR5R34/mOm2Sh8/mew8CrhTo3lHqpLRSIodpDQVRDSbmIxzMVMgKVd6ABTATX1oAOUFKvzguDPGk/qcGK/zm3RnwWhkDXl0V6f2ESHMDBGtYB+9x2Gl6xL+W5EdwYmqGZpiu7aisbH9gVp3EaQ80hm42BGLaZFv+AWepAnF+jqP3wDEAvEuaUeZk6ZDcUHsjBjQ91oCcYbnv3gINXq5nFNYS62yiCOWPzKNMZG9YZRIeYghOWGNg6FQbBC3bARNSPru8zLyyhUmwhry+jsCzDsKBVozwXpDOqZzMvHcBBH6BBsUVZUR3Wd5EGmqe2pjH7sjEbH+LBHeJBv/fbs7HZGEr5p0PvqLn6NcJgDL5gDzJ5E8zRLytyF16YqiV7sm9bRC1Yhg/Yvkh7qMXZtIGnnInSKOcurdX1rBG5wv8FdxdqgRcSuhO8QAgiYC/6TvEW7zIx6Bj0+jJcZXPbwjNmRSaxzADfQh08V0A7AxyyYR2gQY/cWe7S0WMVUapnumrZtabru75nGr/jgRz0e1CVe0TpOMVH4Y5JG0+HGrX3oGsaNFqqcxReoRhUeqA/tF2lOo9kN7P3aKC/nHqRBo9JG8Hz4AwAfZ/LmbidFvuglhzw4awl+MsBXBUSehDeoDHmeqLzKuQwc7slzyU3V1bey8elcaSr0QDZMBpBoxrmQb0PSGA8bRmgwcn70qZpmsrnO9btW3bjdcudOb+rWUShAcxfQcwVYRDq+czHQEg0EI8VIRJGYRdUmkNnW9H/5/zOj+uscXvuDtqReXsQAF2oAX0QGhQU0BZH/fRPNXRDDbmdJ/i/U1wV2nqh08AxJG7Gn1gZt/vGpziiDGRzRYktbERmSp0f3sLl2HBGhpwf1MHIy2Ed3mG2Z/uA3vn7crSyZ52y7bum8ztezUHjL15QQ1RRfboWxDz0uo2ouR3N8RAP96A6yRjOQxR3bzfaHd6AGF2l25vdU6GbhWQPjHoMxDnB8TB4NoHQLXQ2E/ZPnzaRVXqOwxznF/oNpHsHZHyiH0HJatxmrx4NW3JMoRU03ktmelmUDgvUCz4aET4f9GEezKEdbvd2E6fXfcFCM5vW6dviaVrj53XjLzu//wt1iOFWcPtyzYW9519j58cANqZACs5AETwhLv3+v98cevEouQ15Xssd7uV5E8RsD/LAq6XAq78a9Dk/D5DdnPsyVHGUL+Ee7nEUsncjwfsgleca1VBN8VZFr+wdF/JzP/W90//zM/y964dtRvRBsBEe4NWhGsrBHAiVtjUtjuH2+2q97q+8suP1Ga7fHOLh4qX2Qwl6GhL2oJM2qz+fCxC/CXoABmCgCb6gEUYBYUHV9CsUYX2h3J93ROHeKFN8zTW8CQCiiZQeVHo0EWhQSpiFeZrUCfRHUSNPoECpUmXxoqpXol6B8gRSUaA9eUri2YFDCJg1LB89WvMSksxTqP9w2cR1zJZMW7akXfvJDR26dEPtobOXLp+9fPyEXktnj18+ffr48VOnbim/qPmylXsHL6w7fNrIaQsXDtu0acWK4XsLNy68uHHlmWvW7Fk5cvHm4vPrzh1ftNOeQStWS9WoTYoGLZTSZMaMDh46dHDYaNSrV6M+jtK4udYuX8VIk96165Vii4sbB8ojBTIMGDNoS+4geUYTLmG+5NlTZ0+gQYo2aVbcOXkkT5EaAQpUZ0yeN2/ysNkBZqUbmGBcvnwkE9IjVDVtnToF6VRPnz+vcQuaLr58e1q5/aSfb2q/rVatcgXnFVhhwSMYWmml9Ywxbs3lF11y4ROPOc80Uwv/MXn9Fc9bGeLjDjzhkGPgWsWoBkojIvHWBAwerMhiD3Uo4klnosS40Waq1fIKjjiqNgpImzTSyI8i5fFFGLE10cNss83gAZNMChTGb4GMJBxxFanC3CbNNedII3/8sccYYk6XBx5pGOEGGHS44RJMMEGyRnjn3ZSeej21B1RQRR11FH32HSVVPv0w5Z86/oGTTzXZmCMYPuSEhZZa02ADzTPF+NWgg3DBcxcvinSSCjHTYPiXhoHFE+k0le5SS2t/5DGFZB5E0EABDzzgQQ9f/DHRcp68Aguwm2100UeRcOkcIMr+AUgddRTJRWxJKsnkipThBsNuvj10xheBNLJc/7jIAvIluV98oYgifwzSyRtppLHddo909x1Mc7g0STDCBBMLLjzZcowyPlGDp55DxUefPT8BGpU++eWDaD/qnMMPOODwUs4zz2BTFjkeRxoONAq6pemDb7nTTCqB4BFIKs2YY2o88QT2F4FqQXNYYqkwNsgYKa5Iq62VOVTHH116ogoswSqtGkaqIJussuQ6+2wY0UoxxZKVeYAri012MJtCvi10xiCOdMnlsl9GBEivm3wUSB944OHGdizdzRKckNAxByqmxBILv6jIEgxOx0hzuDTsBWWwUEL55N9S+ekDjj7zOCyOMMJUU00xIq8FOjZpYaMgMQuW7KA5taz8hv8mtUCzIYSlwhUYNhoXk9qMIgXisxSzPtAABLka9BC4HSm9tI2dVdIlIIpIzewfzxY5hQ899PABDLgJz/Wtt7IoGQwGNRFGDzxwUXbz5K7NPq+NmD1KIGlggQcbaWQySSaZmKL/GmaYsYY50IEOpiggKvYFuGPIAifKUAY1pKGM9nTjPY5DhzRs8ZStcOUc2fBKOeZRDoeNQxihIgYxdkGMHBXDGDhL0GFQg7rUmSMVffBCy5oxM9lByB0ziweIwqGqtrRqZ7sbQw+Y9IAIFMAD2VLIGSQyCuQxjWmqEAUoIqGsqEGvW1ywHgw+QBkW3SoC3vMei7Alvuv1QApnqIP/c4rGvkGsa1d70FUjUtEEG+zAfm5ABCs6ob9fsIIlZpiDACdhimCYghmWiEVNUGELWcgiJ5O8U3sMlo6FJQw/47BcOUJYjfzsKxW8mBALn6EqkRmDhQqCYQzjMo1UDII6nSiGOXrIQx6C6GaotBSrPtOjxuwhMlwTmkGmMIVdOQJpwkLeZkIxikpcsTlSI9fUuDCFJH3AA9uEQAG+Cc5wAu97lfliGpswhTF8oWhtlOMg6jA1Z03hA4NQxSA8gAUseAEPNsiDKzLBBhy4ohN0WAMQ1kAHS/CPgKaYAyQmgQqaxOIYwQhGwI5xjAfaxz3o4E9UNmkPfXBQH9mYxzwg/8aMTrCiIr7wRS5ykTzQoOYir9TQNFaXhiYM4nUyy2UuQ+bCF6oGJCBxhCLywAUVQeBW4ptCb+AJrhiFYiOheMVURSHNSFzRE8553tS+gEzsUWapBRjAAABw1rSiVWjkFJ6Sroe1MACnjc4aRDvb+AUYjMERo3jDDIbTiUCwARG80AQY+sCLTBzUDZNo7CTokAlwZMIMkECFJSxBE8Ido3LioEbifMI4dLwHKfhJxznQMY5xKIoq4FCGKTrBrmg6QhCKEASQbuurH/lFHqTSIadqgYgm7MALmniZ6MwRDnkYCBqpFNkuFMMYIKWrIT3g2opgkMx1DqJtWu2IVTkiiv9oXnGa03SE1OSZTexpzwPeNCtaAfDetJqVrdaajRrRGYYxhIFqRVtW1fh6zzcIpxOaCGyFXOEKXiBCCDuYBB4SMQkIs0IYDXXoIy5rCVQArpPgoEYwELc4xB1OKPI5xzk8zAxwXG4c5zhGJxAxiD0oKwtfaKONy5WudGWKt7Ob2TM24YUdCDhU0zBHpYwMjXYwF2fQ2EVFQCJdOfpMe2R8QA+S2d+28TUSlRhFeCtxLDBrNataXY550Ws9NX5gm9ssq1nf/OZvkpO9TEyjQa6MTBu3067O4useYOAFLnihOoFARCd4gehaDNQNdBDCABFpCgo/opAywXAjmYFpZrT/2LOK6zTAfDKUc9hDHN2g6DiyQRUWx6ITpuiSnl8Nx4hEBC689UuG5tKOTSDCCDsIhCZGkRcmT6gtvkhNRdRXzT98gQtgBB4EsKtd56Ftq+H1MpgdwaVjmVer2G7WucCq5m5605vgHMA3zS3OOdv3zuQLA5bnyk6zfUEKgNDELLEwAy/o2wt5MHQnOtEIRAjcDXhgBS9YgYhJ/I8OFwYPJDIBOMDhwqKfVRxPpCEUcZyDGfwKRoqnopR9/bsx0oO1jb8AnDycYXZv4fFcoPGKXe9gB3lwXTOKgZebd2YT5t3DILbbrDq8U+h1yGYxH9CBHoThDMOpJtqOxeVRQH22/1nUsnmvicw0Z0/c4ew6OG/FvfqqUY3IxOY66crfPXxgDKCohScCQZ24eyENMHDDFAzNiwR3whWsSARjB0hphhuykRq+iU06jbj1BOUc6RhHNyp6DnCcIz/o2Nen/NCYM5TBxlno1rd94xtMbQpC4dhFJ1S0AxjsYRO1aEtqXrGJnolp9ut01hluL88edGCpD3h2MoHz859Dj1dniwS2z+Yc50hvu2c/g5jCuuYPLHXcXrdVAcYNdu6BbexI2o0PzlUHut7e+VMg3yAa4YhANEHfwfc5IsaAiCmwK++1UPAkwPC/QnrnEQmFKCoyYRM8cTgPlBMYdA1C8XiA43HgsP8V40ANrGAK6dIIfvAlZ9B5NEZjRbIQG/gWc5Eht9Zkm7AHMxABwxUIb5MKRhVje/AG04JdWKZn4ZdNu3d9ltED6GNjtucsc3Vj4HI25hU1uNdGY5B16SV9vXd9Sfh11/cATEhOYfQAdoYkUsAFXFAk63R24Xd758cYU5IHMPAGiLAHnbAJneAI9mZoe6AJCYZov4AI20EH+fNYLjEHluB/uABJ/uJpPLEw6cANgKNh4sCA+SAOrsUKiqAJXBYIm2eBX+AEReIEXcQFAiEFDSIzEBKCI4gDTOQFMTYIgTCJO7AitXE9yJRd4RcdRKh7ZAUBHfABVvhtwYFyuKeBvbH/hWcDPTroedUzdmsGAeSmhN9EfbznhNyTPWN3PT5QPVMAi+eyB7XXCKoADb5QC7H3BuvXA14wBoOwCZvAC6CwCQXmbwlmDdVgCngwB5MQC5nwCAIEExDlSAFoE8cASeqxMBG0P4lgCsogDvkhDsHAd5EgCIYgCJGweV8AB04AB3DgBbsxiU1ABU1ADoKhXOFgDtiQMiMYARHQJE3QgsIFARx5XXZmilbYLWeQTUcojB9wg8i0bN92ksDxbVXYG2tDNTZWhOEmfSuChNP3i733i0sFhT/5i9yEjFdGhcrYjFhYB6DgC5PSZKOgCF6gJGlwd4DACxVSC/WXCv9mcK5w/46PsD+WVS+TkGEaZgv+kpb/gkGKo0AKFQv72I/2wHGu8AuGUAkFqQaA0C1XsJCD5gXYkxszsEvMVWTFoAqBgAUNsJENwCK1AgDXp312dmXKiEyqOJS/yJIkeZmz9yxE4m5pZorfZorWE33St5PS94tJWJTXBTa7pyI8GZRil4xNoIzK+Ii9EYuN8AqVshbF1ghjAAOiyERc8C2g8I05l3cvhgh90FiJFAuWsDctkT8aVh5reR5tSQ2SNAlukAjKMAxLIQ4FlBihIGaOsAeIAGF98AhmYgS04QGb6AHkYJiG8Qy1gEezQitktJHhtFTXdYxkh07KuIqs2IpftHXYU/+KunkuVoNO83QtAbpmpgkDvQeUrXmhk5k9b7WZmQmbBjGJ2aSUyaSbuukJ0LAMa2EMWDJlkQEDiDASAqaGvLALeUEMCJcG3ek3/JIJlvASawAGdhiPuKAeRJqd0vBhjtRYiSAM4pAV12AKv5AKtRAK5ml87OJHrwVQqecBoriJtqMxGkMMIsgk+1kr56ZEvGctW2dOY7d7w2iMKnKMCCo+VFiF6IQkBap9lcFm2hN2svmTTfif3PRW2VR+yLRePOmKydgDPjCgUxCJj3guUlAHr6ANleILr+AIRkIbafRzrkESg5BgzWANioYIlxU4iCMLPno3cQhxNXET5nEeqKD/SIiQCX3QB7EgDFDRWgimGt+YDJvQC985DCbmWX1ABxEgBPH5ADjQFpZyc4npBbPCmGfqn2DnNZUBm67oih7QdWG3ZubEpht6Z+KqmqtJlLM5ffxpfXDKPeb0oDQ5b1ywe5XRiknHBeODm1bIoAPxB5qxGVLpM0YiBbUxA3vgCMYxCjtjb6Kad2CZP4FzOLFwCu0IpAPkN3h4E+fBsfojN7iqq/HBDMpwaLVQEaAgcKYwDJqWDye2jmngpdQ6CidkOqmgCFignw2gswzwTUpUZbNJZ0G7TVwzjNe3IqjJRCy5ddxkGV9UrzxZfV6nRFH7db1HqHpVolUzg/ZaGcm4/4xK+X3Z1QTr5CV/8HxU+BtThl17AAqv0BaIkQoFlp4vhkgZZR+O1I44sAZCwFgA2C82UbHeMTdeQAV9FAvMgBQVxQqpkAquMAys0AuxoAzgMDHqYFrB8IYzt6w4EAGKkAqewLhwBwOcq0Q8y7M+y3tB6ZNFCQHYs5pd9wBIS6dbBwFDey3sdaHhFGfo5nVwxrvg5FazIa80WYXXs5OtGKCNCqlV6IhWyAW88gd3GhtRcgYkUT4wYIVIswuuRwyF1S7dqVDdIA7ocA3BIAvtyGADJJYaC7jn4RJ1QwUwkAa5qmnoUFEqVWAFJAwrq3HqgA7doAzBkAlusAPLup9NUP8l6keCPVsADWBWPus9whPB2Ao26yWorOmKCCo82xSbYmSgguq7ISzCIgxOG4krpLgbG2g1k4i07GUZLAmiYYCbYBUG6OcIdvWMEpguMYYkksEFiqAKb2ts4PhibnAKwdANonUN2zkJc4ADODBzYgmr7XsKkzAvqTcDBKcvwhCXmZAIKdtA4qBxYtyyIxsLdDNzTxwBNtAkC+EFJEgrOuvAA3C6ERyUYDcA36MkUIvBbNqtLHK80xeM5+ZeAYBWZhUAA5DIiYzIiwwAhvxmPFsrwjMZ4tMEYzC8SbJ7SKet4jPDJLpsZ6BsC1EHFPEKqPEKntAzSNK6P+y2uPONvPD/CnmXCJYQDOPbDUt8DE2cElEMjxtLEy5hBHRXd25gnT5KBzuQCF8MDinGeIzXDePAL5ZAwEKgxjgQPAOwJI15pkpUK1WGrXg8fUykyT8pZ0gHw8b7RdzkweZ8wW6myPLlyIs8z/AFX4a8yOZmwixiybzBvO72psYIw8oYBrk5b2qULVwwEbtgDM9QbKOwyp0qfxYhy5/xjb+QCaigDPGRy6VmxU/MYI/wy4D7CLjAjliwA0myA/fDjnQABgwGA33QCcKQDBajcZnExWaJHWmMzRvJuxHAANZaAN7cNUHbPSGJK3bGXsB7K8dYfuo8tOzsk4MMZwGAz/GMz4n8Xvds/8/4/MjzxYRiZ4UlGcjGeEyPmExexG688SK/cspONggDoSTrh7DImRyukAiowAzx8b+lxo4oMXOQVXjtiwpWzGuSsdL4M0Db4QFe0EeRlmKkVmrRyTcEXMCcawMMEDRlNccObK0N0DWVDDbZemV5yopyZslfO3ZJy5OxCZTlBmeHbNWP7NVnBclc3dX5XMJmbYpEWNZCyZK3KQU+0KkHQYUk4XPbiH48B4rT8qBecHfnVxEUdrgI2A3dIA1/LQTbHYf/177jYdiiOANpEIaI8H+oAGFxGGGI8FoUVlH4Ey/JjBKNCdu+e6aM+a5K8kXPBjYOmSRNmH0JDYvIlKfplf9eYxebZAXPVt3Itm3buG3PEZ7b8XzOwpN0VxYGzba6tQtGCqrfTZAHP/cjCbsJqjwGdtoE5Ew+wpGv2ghjL1bd1g2llqC5QrAGd2ik4/EIbsBrK5IGtspqBVRAil03eIBIftNY27HdM4cS2GwDC67VifzNQ03JMGxO2iM+2JSv3sqEHzC2n0c9SLKZyJheTsvHIxzlXi3hay7hui2MuMKSKUIZE9yKRws2H8ADkgHiipCwQWIRuxA/+YpOTGLJ29gJLPgGghaHHldBP2EKqFDNO7AGxgyARsqOL4ESuLIDD5YJGHUNEXQMsSAea5JTPVA3RpASymrZaaxEjazmDGz/tdtnEG16g1UoBW1mtWzkLA1Kol5kqC3J6ykpRhfchIQ824Yc4cjO5m1O22BdlOtMZ2VkK5ZB7UvikXuA7T7XCG0L6CKIySne2nsQI4yhCG8QhzHe1+WbCCdRwHNgzDXhvhWrJpnuAUKQBuseMEncDR5mh5NQwLMiBA1gzQKfvkyOEvD8yLIN2mlqZ9iEJNpzPQ4JA+Rmbi6yXSU3PWCOyedyct2iTSuywdjji25m1Wqu7Mu+5sjO4ANQK0XdPbdiK2ZUGVH4Afk2CX1gh2zy42sIjp8Cd9XyAPnWMqPwjYqQCYgQMKIlWrmsDLLwWCghBJxOHudhxduR6TcgPG7Q/weyQDDu8RPKkAknEfD7iQAlGAFrovVr0OQkf9tSbivCE/HMiE1jFy3zpOAF4CLYZnzN8k6e53kcL3Q/h5NL69RqRINvNtsov+wmf89gTUY8WezmVkbbhHTZuAevxT/dScBpEGhcEHyIYBtNIvTGoQqpUECywAyNXr5Or/ZQ7J0Q5b4usRLY/MRJVDe4EAt5cg3HwAqTALMRwAHAHwFQPANr0gd1AwYzh8i0nfAs/58Cjk0DgU0ueT0SfH0fcAbb3hnNcfFFY1fbFXzVxGfzxKajaYQUr8gJr/6Kz/gJv/KazZhJ5GbnjCuUURt9wN4VtY6o4BIAgWdSHzd98OBJg/9lxgwjOxZ62aNpk6JMpoIpQ8cN3cZrymRNWrMDx44dA1FZsvTIDZ0dQhrsiPAgAgQhaSZZDMbtGjVpgRB52cEhgtAIL73QmZR05Zo1AwYECAAgatQBBWJ66MElzBcuU6b0yPrly9cPHh5AKPBhCqBIoEaB8hTJkSNAde3exTvozJQPMMpOETt2rI8PZQsUeApAquLFUKUOkOqYquKojQM4vew0AuIAiBsUeOChg4cZMPC8uRksWKxMSQ8iOugmjY0ZODzcWOgQS548XtxkUqYR3TWOymxNeiQSxww6bk6ievRojRAhHiJEsB4BB5hHmXBR0ymtJx6RDYQKFbIjjRv/pUqbPpX8uMGDBx+ycjkztofYM3UGfekBgrPS4oItUNxyKxK5GqHrj0bwwmusDzqwjwuxAAtsCsI+OAwzxigDESoRJXMsRMqgQgyxp5xKsQAIIPBANDwQQcUUalRDBTnX8JAtDTCMwKGIkYooDQsYjKQjk2O62Yij4Y5BriWS3BAIuUfSaKmB62CCSQgc1pikomNuDKYPOnCwgQHzritqBzB2YC82OhKbirHO6Jthiq3EamK/M/4A5I+vXnQRhjMa8eStUSo5MJK4ImnkQUAUycuRQcjCqgcM88uQLLRUrIwqySAbUcTGPqzzqQacWrEqpz4LrbQ0+qhItVhwmcSS/9Z4dEO2H3G4wTbbSHJohzWAw6jJ4bpRBjowRsKh16TWSI46l4gtSrs16LAkFtWCwcUNHISwIYJyzY1AiHR7ZW+SXuMLETQIPpCCC3u90vSLQfblS0AYp/ijLVEYBaWSthR0hEEIARkEkDoACbAwGADrrz/+vvCBi8LQajWyzDLj7OP4JlusVQZYzYzVw0KDwbRETIEZ5tbY9fVNID3ggL6YIBA2SWqYVHa4azKxxA2RPGiOPTCWdqk6bBlYoIAblqbVlEwQwkFLodZk8yUjZsXDizQWI3sq0B6YGDANv/ri4f9gENDFHupQROBFG10QkEj1quOL/Pob4wwueuirwuq2Hw7Mbw0Jj7tjyDBjkdVVT77s1FAjg7xVzDorIMYdmhjIalRydHcNo432cYdgcZYpa5ngNEUZcZQl7pprcnQDjAhakpa7llxioLpsEVjAhhvWAGMNNqTD4bwIGCDqOpd2T6N6gx4HMTJ51QojY02neNhhvjwArYMC3WJ0lIFFQVjvRviuuI7A8RvUPk3jD7xTxj9FGSqV6QPgWegDn8p8yE6WK9WdYESSgwzEIOxqyUiINYMYZe06WtKOBx5him7MLmi2M0XRRDKl5jAta02LYAMWoCao2cAGOMCBdrJ1rmzF5ILqWY8bAgIAIfkEBQYA/QAsAAAAAOEA4QAACP8ASQgcSLCgQYInSigEwTBEw4UPI6aQSLGhxYsYM2rcyFHjiIofHYocSbKkyZMLJ6pcybKlSxQpUSY0obAmzYEnBpYwcbAnQoEdGYJwmMMjSKEOhSpVmnSp06ZOl4YoAWIiiI9Xhx4NqTWE168lTshMOhUECZkUrZZVWbUt0hIw047weXCmwRJ0e+YUuJPgQxRHr8ZNMTjo06iItSaOupYh1hEouJKlehbv2K5fvYYVGTOl27ZW3TZmO5Ty1LMh8hbci1Mnz4J46RrFSJg24MGAFS8+jFjt7hQkJCNd+rhr1pFDM08VW/ok5sybS79MMZ16VerUUaQYOzP2Qe93VRv/PBE0dOOsgg0nhrobtFCrwt+6/Yj1/OPIl6d6TR6xMmoSnbnHEFuhkTYVCiEMdhMJzCm3oFg+sdYXbD5595d8/tkGQm66tSeVhwKGyJ5SoZU2H3om+ucVgM7tp9xynK2YVlsqzDhRjS2B8GBq3TEonkASvkYQeAXJ9VeCNQlV2JLqLcbeCKQJmKMJs9VHFXyO4ZdfCfuleNqKXHZWUwnVWYfdgNcBB4IIJKhgkgkqANemnCro5Vp4PXkXGwgBptBdYB/5BiJjA0bJFHGOHaeYcFaa9WVqYW7Z36MschklaWa+59aZ2J2VHHRiJaSQCQn96CNfQupUoao9bSkjcoB+/9ZUbSiQUF2sWIqUFaOupsbfi9Hp5+tXn4LVIJfDEgtsqGHthBdrdBE5JKsHpQbglVONuV2xmh37KrEmYpkVfLp2iB59cs0kn7iQjdBlWSpCqt+2y8aYrIvcwtjcvcjVuy+Dzp5qKkHWSqtakHh+x+q6iY7rGFmI7sowWzgOp1RxxelKX68kFPtpvsEi23FmHvsrLMDYjkmmtRWmyteqL7caM4AmcFwyyS9+3CWTZWqY20SMXjWZo5bJa6l+IHvLb75J2zuyssqJWdN2LbP8I8IU5kmtQQW7Zq2kPJeZqaIOucvrCD2ylm1V2U79ddP/Fiu1QlRXlrK2Xye5ncp1Z/8bLcwA+tQ1ql8PDOSdWStspNgpBO0u2SGkPVDbbPOdd2wci3q32wL5bXfleHeukOiGm4r1tFrPzPXMOxVOcNMJnRD2dEOrFKhkkUsuut5t03056ZmPCTrndgM/98q7A28nqgknbHDnrNcMPcF4Hd/36B2HWxXajKO9U6IaC6273bxbnvzIcJ+sufW/q1j95r6f/yVBcQpU58Cnb53482dF7/rk7yMBTBTEPoF07wTj6934Dig7uBAwgWNCYMDUFkFoHQxxA1FB/dpUuvypbn+C89/0BHglmjQQBShc295CV7zKMBAFEKwJAl/YwKqYEIYTBKAMT+CnHO5OIQg0nAX/23S/q2FQf6gLnMyUSLP/kW50tRLIAFNYPhZ6bipmwg5htNg4BMIQhzdhDWFKGBYYxhCIPJRgGHWIRj+dYIMgOGNYhpi6OdmvdAKbUBKdF0Imtm6ET8RLFIcEP+QVj4Zm9CH55uhGRCJQjjOcYQFb+KXq0WWDRRTiET+YRP4NrokjRKEDESS8FRLvipYhU5qyw0W0ye6Vj1TkFle5RS268ouPVOOz2MhISU4Slf7hX+L4uEQ9Sa9/1LuWAPEkzIFMkZQKeWbbYFLI66mSi9qxpRdh+Uhp1gQmjswlGHf5w17yEIiKVCAdv+MyJhKzWiJEJgCVOUhWNdOb0STTL7GH/8UsYieb2LklN7eJT7joE5JpPOcc01nBRqIRf5ukWfNAWEyvATKYgmTmQQoKzmZVs3399CcrtflKM3ZTdhw9aLPWWM5IKjSICMVjHoXkQXdSFJ5+PKbVMLrMrBmsVjYpFSGHFz9KptKPCHXoHBmU0hQ0S5cCU6dSYTrOqFZQpjOdaCf7aEwn8rSeMftp4Jr6VKhScIdTzQksGYpWX1JVgh+V31H1ZFZeBhGrh2PeMG+6upz+D4WYxGpN9xS8mkCUeWSNXSxZukiXOnWpa42pYCPKPz1x1aLyBGxK88KnUQlVJ4XFnumOuKFRTlOluUyqW9WayHUuT6J5GSzgPBlPlv9pdrOHhe0e+VqQT/5RnoHsKerEmlGcsLWNq2WqBF17kEx2kLKz7WNg8SrbOtLWrxc9DRQ1ahCgCpdBKlDtS1m7XDy+kbnjga794MhDWgJ0utRVr8I4Obna9jaAgxQlCqFpUKcqNpfHNedj3xo7806rnufl4Gj1KpAcYJJx8I0vg5FIret2Nbv4dSY1iWpIYGpXJ4slZ2PXCUkghVfBC9btQBwsgziBgMUqYFNwhhISKFUFk3+pn4N3PEAeJ3aOAI6rUYMJ4hBbta3jVW6BDTxh+rIuticu4o4ARoIpl8oEC2KxllPgYhmPoMb+RA0IaPAQHfsYBTlw8I9TqzkOW9P/eEgFMGOlmtzITrbJNt1qXVDczthGVIMpoAENroAEQQtaB4iugg4UHYNFNzoGj9bBBib9YhXkYL9nvvSlTftN1KYWnXO+6p5zq0cKP7mihMMwPbnLW4LZN5kliFMOqlCGOFRhA4LegA4ivehd7xrSjdb1pMm8phen+ZmZ1i8V8+lfIMcyLAAL9Q6XJ94Bk3fJMq3ufG3aZ/FUVwZVqEIfAtGLbeQBD294wxjGgIh2dwIRnXBFJ4bhiE4AwhWg2EQdLABsQ9MgzZeebmn3e9pmR7guDD34eKr9UDtLWMVO9uNz8ewdDaog3KnYxTbWwQtX7KIWr0jGLpKxDY1vAxob/99GyosBii9YwAKI9ve/06wCFNSc08wua5DVKtn0Cszb8n1nXy8M3K+y+o4C6baV8YLlgqQ53GWAgymS8Y167GMf9KgHPbBOj67Tgx1er4fYU94LRAjBBxioAb8RrQNBoxkFXjbBmj8NbSOf9aGjVmuAHdvw1uI1rxDPc4UPjJAoD0TpVY4NhMJ9hVRUYxti73rksy55r4edHirfRjJckYgPGGACE3h5BmKQg5nHXdn87eh/n83zurY0odZWMrT1snfY9728rwU6xQ/Ck25H6E4oELQfFMGMbWD96sdHPtevvnWvM58eVa/HMBJBfUTsIQ1cmEINCl0FYx+7KAB/O//OA8YgHjE9VT1fzeFcP+K0yt616PV54IWJeCEtvcqvKX0V/JCLbcxj68qnfF13fADYfGDHDmNXD9vwDSg3CryQb2qABG0XfmmmFOBXUFimeOaHfwiRfj/hI3ZnV7YHWX6Xe0a0ewVRf4eXeEDCI/UTbmGgCMMAec2HfAAYgMl3g8cHdl/HDlwned+QDL1wBntwBVewAlcQbm7HEDnwEqeHAvfXdDjBfnSWZA43atEmYupEbQxyVycYeLxXZStIKlYGaOHmCBqndc6ngwSYfMyXg5a3DzyYdWOXDLAwCqFQCXFQCeGGaxbRhGmCGioQhegXgq/HhY+UhUeGXFZYglj/GH8fOH8qmHRVdgJkGBsaJGh7MAjDoIbNt4YCmINtiIPMxw6maIpcVw/f4H/WUA2GcAUZkAFj9mIvhnohoHCrcQIu4IGtAYIwxXAkiHuPqEl4JoZhaH+VSIaWiBc0IAaIMApV14P3MIBs+IaiWIM4+HUBKHn1sA7b0A6ueAUb0H0XaIuAhnQRootUKGo+13pdyIt55Y6JmGKlRl8IZniUGIaBVgVZ4AczqHX3EJACWY2kWJDK54NyGIAIGZDgYAlGWAUzZ3rSZHF0ElvqeELLZlAZVJF0gUC7+Eq1h4i/CImRWI/udI85IWU9wROCVgehoHJd5w8COY3SaJA26YYL/4mD9cAOwpAIRkgDVQBwEvlMC0KR6Nhd46d6sRZURBJrpNZOlWVqyKQnMkAzg6iBVCaFxziGltiVcOICMWAFnbCAPViTV5eTN5mWaHmDCOgNrpAGSaiE4RdeCSdjBnFwuNUmp/eEpBKSefeOgGkqMmAtwIGLPeFdKMln4BYHybAO7PANqDiTaJmWlJmTNZh1DOgK+weUpZdmIoBC49NiHJmOH/lFSVlxIsCXJAl4JhmVEWctdCltCnGVKbmCvAdmDUYDZSAJq2iKNSiZlBmcaWl52eAKfpCEQ3kCqkkCeyljZgZhTAkbdWKYU1iasvOUE6VBDFKVOzGIV9mCXchnK//pPWFUemVACtFIgJA5k2eZkMJJmQX4g924Da+YAeRIF2OEQs35YHOnnAIxAnKXmioQnUNSJ/B4KvLohXThAibgAn5CEFM2iTMWAlAiEIKWBbCgclqnivPwDR0qkAt5imgpopH5nsuXdd7oB04QA8mZmv8pd1CYE8gma0IpczYqc535fQBXczyKnXulZzhFldQJJPPIIFgmhbhJAj9AA4EQCsngDb0QpVEaC96ghsjHDt7gDVhKoiKqpSUanJ/YdduQCGfgBOGmEt9ZflTmEuXob+M4aRuQAXE6p3IKp/9GbLQIcLW4Jm0SAu10GkDil+0ImEVqRyjWEyIwiB3ohZb/eKQvGhuldwWVwArnhgd4AAY7IASIwAqsYAq94Km9MAxQGqXDEKqlOgyoKqresIqqWHU2GaYbmgyJgAQrqgNT5KJt4k1pJmhVEAMr8KvAugIv4AAO8AIUMAQUkKzKuqwv8ALB+qstsAIt4KsxUKc0Z3M2p4h3t1R/6Z/BAaOkwpwHwZ1wUq73RycykK4qEARBkK4txq6SI2hG2AeZWq9gIARCsAZzMAdCMAdAMAem4AqmkAh0ULBzQAcHSweJMLCfGqpZqo0FGaZZxw6aZwhZEIvU+WJkJmgSEAMSEKzOCqzN+gIs0KwlO7IouwIsoLIroAG/OgESELMxuwFHQk1C/xU5gqp+vuiOGXQC5OqdR4qVCZGuR8CgLtCuQUAELkAERIC06QonwBEEI0ADKlsERuAGbpAGWKu1O+AGO0AH9YqvWIu1YAu2+Hq2QlC28JYMVDd5OAh29eANJAcKyRAJSGABGcCgFFh6hhZu4farKMsEL8ADQ1C4LzAEzcoELKC4VECyissCkAu5JPsCFcADF1C4RgAFghuyDiABEGloe7tpBNdpGYSrX1hqP2uuR1qUKnAEruu6SnAEsasFtKsFsuu6cSIDWKYCLgACLOAADFAEYJAGxFu8WTu2WPu1lrq8abC8y4u1+AoEaZsIkBCq32CWNvgN00d9UzAFGIC36f+aAz9QFDQAp3Iai5AmrIE7uJZrucZ6uJeLrDdwrMtKARfwAhdwv/k7BBdQBIgruEzwqxKQAQOMa6GrHTfme1jYmgWhnT7Luhp0pIoaJ0pAu2RwwReMBnqwwXqABmSgBEQgA0bbrqWHARSAA2+ABziwA8XbwsSLB1zrwi2ctS2MqXQgBJkqBAs7DMmggDrpDWfwAS+nA7LYt0A5aQS8Ah+7AsWqviiLv1A8rMAqs1Q8wLE4wDFLwFUMeuvbrMXqAL/qt243l5rTl9LJIPspTISRuoO4unCyQbSrB3xwCHpwCHbMCIxACZRwCGiABkowwqJJAxrQAoGQCqmACGkwvDL/vMjFC8NsULyPHMnECwZuQAdukLYKK6pcmnWk4AMZIGmSBgJwGgNxSsWdC8bF+sT326yrHKwd27HAVqdwGqexWMvV2rIvMAEjK7jCCrgCfGtj7GDLaZenmyo5wMZu/Mb1QwZocAh4jMd6TAmcwAmlQAmMoAdksAVKwLvpuqROUAbWgA/tkApsILyMvMiSHMnpTLw0nMiVnLasMAzfkKWmCHm00AKHlmtH2Msiy8RSrMRKTMUEPHqxCLrCHFQ5emx8WiMMIWhXbAHS+gKNywQUnbKey6JBqaO5awLJZnOjqRcX+UUEUZUtxp0t5gIqgAZ3wAfWHM3TPM2lUAqccM20/yvCDfoDG+AEfmAO+IAPxNAHw6vI55zO6lzUMxzJYHDDB5sIUtoLj/kNpPACuVa+G7DPznrVvQzGwEqtwBYDYvy5swZfnTlzB+1lU/trMdACLeAELwAHhwvAwvqxozeOd0rGcHFpIoCmPDGkXWidG/2V3umuvEsGd3AIevzSME3NMU0JhYAGtqu0LrCkGFAGtRAP5lALfVAELizJ6FzUnk3UkMwGlJzUC5sMqaDCSxC5TrDaVNADO7ADYBDbYHC4zfqxGxADeaqjl5YCdu2cNrfRObCfDEqu+uerv0oFJ+u+zSqtLdCrbge63kfGyOzGFqc7gj3cKqC7GiQDd1DYiP+t2ODNCdbcx3+stD+gA0ZYC+bQDKmQBzgQ2kNNvJ/92fL9wo8MBjaAAzessJ2ABzuABVIAuY3rBEYwA6/92kVwA4jbrMBGjkzI28cWXjCWqKO53Ro0QMNMAvpXBb/qBJHLAh/QASxQASyAAYPcsUDJq7i2sbs6c4J9iyaguxDcxuXaJnAiAi2W3eoaBC6gu4VQCIyg2DE95DG9CpxwCZfAB37ctErwBD/wzalADKmgCZmdBlDA2cYb3/O95WwABTeAqbFN0ZqLBViQBjOQBjtgBAfOwv8t5gs+xV7thxSIZtkdY4Am49l9ZstJ5zLQhE9HwBYw4iU76Cd7smAcsyv/gL7lG8zt+rRv/NEjHeM6Lunu+q5IewmHANNDLuQxfeSU0MEgfARM++SNlwqdAAdgcAOMfLxHvdlYPrxcft+xfQMKPgRpvua4juCEa7heLAGdO7OU9uB/zbuBHcETfuE4d62WlmakLAGBDrkVQLLRLrm5/AK+fu1WPMsv1uh4nqYWR+MTDCclrbvjLtifcO5ETuTUPM3WrAdaELtEoAViQAYtwAKFHAh9AAVgQObFS8ldC+ZgsAawTQdJjclJ7QaxvQayLdsKj/AIb7yWWtGpnL8dwL88cPEzUOAF7gVk7uaGSwFfHNCk7G9oRnN9DuG6rR00p2l32vIpXq2+WuKW/3sBD5C/F88DGW8ElrusxSqzcnrsNReadx7jOS7Y7CoDQaDjMlAKq8D06b7pRs4IheDurqsFaMAHfHCEcKAI+V4EZV7mRgDm+BrwX5vDY5sIZKvwCn+va2ADlNzwbiDwsT3Jzdvl6nu/M38BNz8DHmC1VEDmZE4Fbk7bw2rtMkvXEgncInDAKL+xi86rQFnLMevh+UsABMABCTAEHaDznL/zFCDFwL7tQA9DN1HpRo+0Sm/66dquq9D6rb/pMv3Se4zNGLzShXAISWABzXoDNqDZmg3mNIwH7QZv79YHppCqpUp9WDsJbpAJeKCwpsCwiWAJBVuwQuAGfy+sHjvASv8Metzv6w4gAA5gAAZA4jzQBFQgBR5P64J7A6kcsl3tt17dq5AWs0pI/9W6xL5MrP8MECtWsFhxgcILCgcrvGDBkAUPHh2MdLhx4YIECTQ25OCIQsUJGS5MuFBhwoQKGSlVBHERJOVLmDBXugyiYtatW6tWleJZihMnSpcYFdJzh48ePYcYMQK6qMoLAhxwgLkBxkifPog6ueJFrJq1cuvWWeOVLOy2dduGmXLFitUvXsJcJdu27Vsyb8OG9UqUSIgQDkNeXIlxpUqMGhY0tIgRI8kKDRMcGDBAwWKHCxA58BhyY8gQJkw+I0x4cIWE0zEOS4iB0TXrGBsyZHjtYMX/hBUOXjjQXUG3QBYNXwwnzrACi8wSIWIegnoDDY4cUeZIIZKkSZQvV7qQcVJGdu1BaGaftSpnz5+Xgi4qVOiQ0qWUgDaVs0LAjRtCwODB0+kXsXLakUcefAjEp8ByhtmmHgbp2csUVoaxJpt1shnmm3ro0ZAeDJPpBRE6hhOIIxA4ooEGFKRLAQSNZHPNgQlwEwBG3Yp7gQn8KODghhdA6/FH4piwcbjSDhLxhRhve8212Zp0kjaMBIqxIQwqEGi26HL47jsXusxOBe7AVGlLMss0cxVaduLpEjaDuqQQRhaJjxL5gFqKETmucIAKKsAQQitXiHmnwHcGNFTAdZLB/7CebxrlCxFWkqkmLbwy5JBBBrfJhhc/DKvCRBZdIOKHllwK6QcQMthAggwE0iC33yhwQDDBePSMR9FGO0iwIYms0UbbfmvBghhWsACjKqqg4dMqxEh22cOKlTI4FiqYgNUMoOOIy++y887MmELSLtyUWinFXPTUe1OoOel0l05GDonjCkU06WMNNraqRkB53mnH3wERLYcuTOtJJhFL5KJwHrzYcVjDffbJsJ5trHGl0xxKBFeGI8gcAdUTn9tgZJJJXvJFjBw4GUrampStZJhHZpGjJ3IQI4gjjghCCyVy1lnLkF/GaAINKqjgVdW2VQGlkUjaGCbuxowJPBlaWf8FXZ44UZcRoYJ6992lDjEkjlRqYQUPNzohxhp+DT1UHrGy+WZBBr8RZphkfhGmnG2EYeebh+nZR0NME41D2RyoHhcmIj4mtXEXsoQOOlYrbxXK11oLucXnTpx88oy1zbLm6MTIIefTU0fdxBZZxUADDF7XYLYSvfVSanLFxZ1cFazG2id1v+76zrDfI+QKTZ4hy79BByzwbX/bWaecRjG9y6xsfskmGbwEZyfiiAlHK5kyymC6pZRYWjx3l8A7KUv449eSoyC0XFpxU8VLibvTv6u/Yxn8T3Wqq5mXQAAC2UBJA6zaAAhu9zQI7m99MGmF1XqSNaGohxFB2WC8DsH/Bz588BB6IEQVNDGNflXjF83rlzz49UJEzQ1D3/AG96aXjLslgx30+B74BkcPBiXDEWpIgv0iqLsA5i9qKgmTCuQHvyP0r38BTB9NqDgTK5oKi+kbYBSjmAPITQeBGTiWYmRTuzJ5R3ExWeIaY6KT3wEFXsTz4AeRckctxIFsz+hXOf6zjoC1EG7/CtA62rGNasxNL8JIRjaqIRdlJENDPQQfEOvii00koQpKnFru0ieDKZZJPD7DmRe9eDov+k9/n8xfFakYwCWC8pQDbBzkvBSdAyIwlw502hU9iUQ3ksuCPfmEHN11J/eAECl3IAMa9IAGQ5jwGf4qhzXY9q9///WrHe2oZoD+JZZv6GUY2xOGKeQyzgxRMnzsUAsg8hADKwRTJuRapfrCJaYudlGVplKJePjZz1XCxIpgFJWoCFrQ29lvl2g8Yht/6cnyoOsnlCDeeyyqzGeiAQ1b0AIaxBCH5LkjHu2w5qG+aU1rBiiQiTKFKZJhikSYQm+sWNA81LmPb9AjGcOY14not8/cbfElocznKY06xRzkL5RUzF/7/OlJKybxlfxL49K6I895etKhuUsTLbLGiTjxgSgfPApRQNgGNJBBC2rNowmjMVJtuq1Q3PSmIAuVqJgOgw50EEY2WGEKudVjhz70hk5dUYkr0OAHS23oS/y5xo4VVf+fshxq/XDG2CNq8ZdbPaJAX9m+zU5QBrcoDwYPUYg73MGsRDHKUZ75hCjEVgnOSkU0/HXbubotHgV6nja3aQ1hsCIbLa1GNtqSjbowapJA9AYoOnEFT9Uvqbtz7FNh+UvwjFKySAWgZ68bE05i17r0TF8sgxpa6obrJrMwbXvuoIfVhjApfECrbKMQBzGIwh23DWSh8AEwgOn2HdMrRzaskbdqsEIYvPhFMuZRD29E+HuN4kUnOqUa02GWqeljmlVPghLFze87+kSqZTMrWvDKZLzhqmcW0ws1FD9UBrSYRWk5Iaf2JPM97rloG+wbhR+I4RnkgKtu42FSbm6TkNn/HGk5/OgKmU5vnBbqRS/0stNkdAIRO3jBCpL1qSdGBzqLFXMOPpcDZpUuS5Yt5Se/+8umbpiVrgRq7kgJQKE6trzsy1kSdaazUfqTFjTeyY1zrIc6KsWOz9SCbJXwAz1EY79HFrBvuYlSJyt5QCNdhwp/MalE7RSmiaCDJejQFzrAIAK/+bLNTpdhM//gc56j9QaqYGtcVyEDiOPIzXJWylEC0KkBZXGL5fxif7b4zm7WX7ClqmxSOjvQgFbCoG3MnhxbVNEYRYMWvB1bOXzCHSI98pF7K8h/pfQZ5TCHgHYrDyenVCzTqwYiSP0XOvxFCDvYAQ44wAHiCMRTXjYM/2FW0AKBJDzhw/mVAw4iqy4TRjVWeMIP7vxngP7Tu81+pZ7j/NQ2T1s8Sijlr/3Z51GmD+U4Y3mgk/1yaxf6Te05LfHOqlFvN5oIRCDELMZtDnKXW65wNQe729FugFGarvMWy8DsLYS97mDfdICAEIZQpBvwhje5kcDWbZMbsAerywwnEgUEQIAZqQxbilWdzz7r4rcfm9nm9XPHRB4Ekv/6zj3zWd/1/me9S5vlgMZZzEvxCaEsAj53EmtGOboFyGuBCJJABtCD/u5CjVToczXH5vmLzYAJyBqIsIEQZsBv1BdB9fjBz793hJAfjUY0s6d97f99Aw4ogANMYAOOOP+QkBV4ytUXb7mLSS74JIqnVG9f+d//HOw/893vdw754EcO7L8XvsY60RpF6ciI1BZFo1sYPxqIgIlodH7c4xb65oWO9EAeGfS6HUsnhICD++/ACPtfPetZLyTBEBIBrD0moALRMEDRWD0OYAM46ARNKJta0AQ2SIgZYQ3E8bXsIzydIQKXOAIODIIP5MAPxD69yzu7sz68I8GSi77p67vBU4K8k74SzJkaSxNzQbw2qSizuiM9OAo0eAJMmAVrKDeRKpD28zxKc7+4cqFD+YU+SAP9A4PV478i+Az8mD3PAAMcgQIu7MIunD0uxALVg4J8ecD/AIt2eAZWYILcCwD/AdiNF6gCL/syK/gBO/yBinsCPTyCJ8gZIoBBDuzDQORDP9y5PywlQxzBvWtB6mPEI4BBFcwZ6cOZnrkFXZgF3+EEn5ioO7EjZQIhO9oCQ8AEYmi3IzTCI+Qm+NM8pVvCfuGFJ5TCMaTCzqjFzwBDL9y/XNxF1QuEB0yFXwDGWrCGA7EGOMg9BTgI3fi6xoiBDIiN2CAZxaolSawZIgAjbCQzF/iBUbG4Q0xEE2RBSYxBn4HERyxHGITBRyTHcVxEGiutrNlEOykebesxQzCEUnS/y4uHoLMGYlgbc+g8JUw66XFCMZRCKpzFW1zIXWxILkzIPEgFYqiFWiCGZlCe/1poB3cwRt27QtH4vc6gAB4hOzgUOMLwlMNYgWJZyRggFth4RsWyQzHAwyf4QxEExHTMSZ3ku54pJZ1cR0pcx52EwRq8mnjcxGOix3psg7EhBn5kxSNsP3NAKWsQyEIhyMxrByeUQil8SFr0jFpcAlwsAof0SijYPbV5Bl6ohYAUqX8sB3yohT6giivsPd0zEiOpkRVAki77OtRYySVRGbVTOwuYDVvTAZoEREcbSsbMSUpMx0d8zMZMx/LQiXj8iVWYKO+Ll0R7Dz6QAznQBXLAh6JTxackwvcLSNUcyKskBjyoCrIkSyPoyiLYP7C8RbHExbJUPS8ogjxQBWtoBv9ieIYDeYdyWBt3wAdX6L3ew8Lbo70eoRXRAJJeIY4aWUZZcQDfgJGDY4wY0AErIIInEIPx1II+hK3JTE/11MnKvCBOyMyfkKOwCSGy6sFnIgQxCIVlCMh/ZJuo3MfLu0r+GpBycAUwsAGubEiyBEsCzM2yfEgsSAXhlNDkHCmKrMp4eAY4aE4oIMsO3cIG/REAvJHi2Es4tM6AI7vt5LoVgEluLM9viwJv46hG4xkl4JkfW8z1zEnL9Al51MyKkq870qi0+ihSbAaUUj9UfLcjE6nL67wBHRBr6AQwqNIFVdDdc1DddFAvFEMjwIJAaIdmkMgDGamp7LxnIIY1ZAL/LWSCL5y9Nm1Q6JxOOm1QFmACiLiAIdBT2fMNCsANlbSAKsAvMShULRCDnGs0GdUCGl1URo2tKFAC+8pJHI3UdOxRn4DPpCSrEdIDtCIDUEWDKCjUw+mEjHQ3IlzS00TNJEw6eXDNKv1QBR2CLNXSLeXFIsADtiQGV2gGVDRCa0iFPmBTXPSMN11I3KRTER1AOeUMZx0CHuBT4mCBGIkR3rDAQjXU8XPU2JrRb8u5LehWbl3URvU2y4zP+KQozzwK+kIDtNqocI0C2BrVZWmFVY1KI9vHIjOUrSRWMHBIj0xWN93NIrABG8iDqozAITyydjOHZpDAfwNRWwVRsLxN/zkd2Iu9VV00ggIUEuHgDQxAOMIY1ELVAzHQA1BVK7VKqy1opi4Yv3DNuW5l1G/1NvSQIztRCm5zWTTogi6QV/sqVD/ABIFsv1/NPHxt1QHZylgF2IDVWFm90iLAgT6QyGC8SJJK018IBCYwWN7rDC79DLK8Rf8TW4HN2IvNTV10UxagAod4ge28lmuRgGTJ1my9AyJFWY1yvJ6NvBj11hr9UXihBM/sQT7oAjLw2S3ogniVVEjVgiNolmfYx0ozt6RFWnlwwt6L0zeFgs4wVqhdUC0sAjDAAjx4wj4IhE7ohLJZG2IQ1gO9AQ5V21tcUP+73bAMW93dXbFcWyhAwP+OhYjpNAiGU7jggy490qOxiQM5EIPmxVsiJT/GfTxGhbwtQNc6AqF2bQNQ/VnI81lIVYLGva8qqAVJ01fdUtUkhMp46Fct7NICpIL/493ehQJZnNrUDQQ8SAMcSIPUZQWJTIVO6FoO0MLZpd0qvJXWu70bYIIqpF8Irl8P3V1nJY4LYDhlzE7bgC4vU8liqQIdoAE9JM+9jd6ebQPyc5dFQ6s28FnGfeFwjdef/TGOKlRDkDQlNLK4wiYmK7d3SIXNlVgswNj5hdoP7T8wRYRAYAMb6N/TXd1AiN0bIEOzFFgFZOArTGCBjeAt7lyMNUAEBF4CRFYrLA24nQAMwIj/Z5QDQiADvB3SjOIxdoXetBJV713c2IrZKIjXPI4CMvgoexUpQapcbIq3APHhcpBLHKkKjP3dgX1a3pXa1TvdJ9wB/8UDMGADNgCDHeHKK9Vd1vs3BShbLubdLvbiLhTjjvXc2RNRIBkN2PONzKmCICPPlHVZHmwDFnbhO55hPp7hSA1XUCVVohXkypW/qVSeiVybZ2jmWugEOMA9Ro5k0IXa0V09HJhFNqDkPvACf2viBZWKIvDI3lW9HRHlHZHYUtbdU0blA/xiA5zg2iPbz/2MGTCCadUNNG6BFhjZOCAEQngmXW7hFoZh771jPA7fPD7UP8avgPyv5yEUFzrO/1oIxipghYvWhAfU6GjmABvIYlRWvXYu5w69X9XDAZQ23W7eXzDIZpS+AZTekSkE2wV2vQZ253UWy5GeWDEeYgT04lPePx5wAuKIWxiRgAng52ZB3Jfl5Z7l5Sh42aieaqn+2Z9V2S7AL2JIv3A4lDRtBVggBEMo1C9zFjRLlitACAWe4iVoayhYgreGAvwYgrh267YugiVQvbxWPb6eWphG6R0gXSwAgxlA6Zc2bPwwgv47Z9ZbPbuua8iObMn+jCHA68ee7NCggrbWbMk2gssOjcimbMq+Ac/uAJFGiAkog8RN3Kd24ai2aqum6teeapVFVEkwoVB4BmgohmJohv9aSAVNGJsqqIRmwS/8FANJiIPbTmuR7AzPhmu4hgI3heu5vmyw7WvsHmeYhmmPxoEdAIPv/msc4O7xxo8icL0daWyR/mwuhO4uBA329lyxfezoZuW2du/fjW78tu/7jmvp5sIhYG9n5Yw9lZUW4F6CZuqm5mUXbm3XBt/E3QIx8KgqkANJkIR7tAM9IlVEddduO9Ru69nbtg/LeG78HlhavQAjEG3Kzu7tLu/yfgDD9rcZl4qY9jf8eOnGNm+91m//hgIjiOsbyOv4DvAWt24TP3EAd+/6DvLObm8l99wlgAgewALP5gABWIGBftemdnAG9/IvT6s7+Cg98oM4UIP/5G3eZ1pzDw/x9yqh3LAMvLZs/3bT1RPtOXfu/ttuPpeKf6NxGvfzQEds9Xbx+IbsO6fz9o7rI3/sJI/yAF/06Obst4b0+oZuPIVWul4CWhWACdBlMkDwUF9wBnfqUvfZxG2DtVLZ7m1hIvXZNu8otOooLVgEZ5kAARAAPR3yyd4RAs/zPcc9f/u3COCAYi92HIiAYR92QRd0Hs/ucSbyS1fyKqz0Ol9yAP8Mt9Z00u7v6B7Y/Jb0H4fvtgZtc8fsKbdyTheAK9BlT3VXPXhZVz/1Ly/1Nn/Z1Y7wV3emnuX3fn+mMY+DFhAAy1DxAKf2BLjr69bu1hv2YmcAY18A/2MvdmN3PYr/cz+X5huA9oO39Pd+600HDTedbvem7PuGVkWH7Pom99wc+Ur3eAAHbc6odM8WjDJog3fH+S13dxb2cIJO8AXX5XsnUo2Sd6H/d6J/10L4qCqIDOSobLdedDa8AQI/cvN2PYn36AXY+oqXeIqHeItv9vEu743v6w6N+rhmgscW+f++b/weAo51+ZPX9imn63MXyzCG67tv64O/9i7cb/imAsseAkVACqEf6Jz3VKPneXjf+cNn4Z7vd3d9fI0a6Ml/r49KAiS4AhbYdsim1c1gcdUz7ZqWeIlXgNO3gWK3Aa7f+qwn9oz3P77u0Dln8vdW+3Kf7rfGff+/j/SY13T2vvvQ6FiX77+Q1/2Vx32xnPkl8IwlSIWLMgqUdXzIn3xdNnrst/zHd/zE33mATy0yIAQrSAKEmwDi4JXQaG7mb/EbeIB/y3rTd335P33Ur3/dW3apePa3rv1LBwgoTJYwKbJkCZSECA0ahHLQYUImCaEYRAhlCMaDPJhIlEjwBUcqHCVSsbhkiMMhHhFalHjR4kUmGIcUuXEDTi1OlCgdOsSnDdCgetqgaTM0qFGhRI12UVr0aNAuRZEOfQpUz51Cd+QQipPkyhUWIC+ARMmBA8qTMjHWvHGWwwK4cecuqCt3gYIFAfIqyBuBQwQcHGwWKeywIMWCFSf/IhxYcEnDxQoFQq7ssHJalYc7buYosPPBIaEPsoyYUPRElTNp3ljS6RknnTz53NHz86fTpFSRTp2KNDfUq1T1YMV6h4wYK1WSWNAwgcWEFy8oUBjC4wWPmTc6FHngNi5cDnkXEKhbPi4ABQH25kWQN7xgmzfazr8BxuB8MInvF+EPBkt/FFUGBmT9VZZfERQVBhlNQ9xghE0YZUcQZxQO9FBLp8Gk0kMozYSfEZqYIxsjhxQHFB/BDUXcULcJtxuLMcYI41VHHXUHGnfcIUYcPHpVQwtiTVcdD0Wu1tZb4dk13nkBcJDeXum1l5cNZ7l1Aw7y2ZSlfYX1t2B99kFG/9F9BCZokJllklkYTV7WNESSg4nmmUcjVQZTYwRBtOFaNC1hkxeqmLPTbCm2URtSuAll24spEmeocDa24aJSklZKnFFkkCGHHD9YEUMLE1BXJHbWDXGBEdw9EGddCcSVF3t7yXqAAgi4916VNuhqwxpm+PrrHJagMskjkBg7x7GQzIEss8s6+6yzxj5iybSP0LHsGkBoy5cCBFhJmE1GkMaQEUWUa8S5Dol7kLnmluulg0uIuNMhOv6EKR+UOooii7cdte+kNdrIYsCOEmyUjDXqqCOncVzxQgIUFJmdqX+6tWp459XlpKzqKSBlerfWlSsOYJgMxhpgPDIJKpkEw/9KMKbIbEosMsdcc82moGIJz9RCYgkdlvzM8ySxBCOMMDJPQke2QBxAK7dxflvRueWqe/W6VXsZ4RKDdUJMicURLKOMjt7m76NkI9wv22nblm/btrFYW21aESLHFQJQwMJJ2V3w4BAJuAUYBwzE1fHGs3oMNZUj87rGGpA88sgpthzTTTfp2KO5PfacY08+nnt+Tjqfd3OMLanLIkvqtrBuizTciHOOPrXnw8wxkPz6dK0B0Ao11BzgwKWb7aJbNboHvctmRVRQEUgqhRSS7x1wuy23wdm/HXeKZnf/fYom5ju+9WzDXa9tdi/ixwpkUXyBdTdcwAHGhB8OFwGw1uX/sa3c4rXAriAXucmd4hjKEAfoNJePBTJQH/k4BwPzoQ97nO4YFrSgMo4hDWlcQxnpaGDt9DGOWOjODLx7mu9OyLi7LOBBWTOX8hK0BHS1qzDZcR4cFJEK2mwPK9pLW/ceZT24EXF8ehAf+fjgE58ocXxMTOIR35bEO/SkEFaQwAQmUAGMwO9vHhjcX+oSlwiIEQDsAYCtYsUeBdgAgDYoGcoegQpUUIN06bij5hS4QNCBLoL2QAc3riFIQW7wGse4Rjf6uEB+pEMc6aCGLXT3NBROspKWzMsBXIg15JULMjQ0AhQq4AQd3IETjEif97LXvUmdT4pJNCISk9iTWfak/4m19EkUX5mv6fFhenWTgw606AD5EfNiZ/kLA5QkxgVIiXEIQFzj3miyR6zhEbGgRubwqLnPRTB0fgRkIAN5DQ4W8hp6XOQd1XGOYOjOaZM04wF8l8KnoXGSg3mQu5JXGihorUgXcIIYDsETXMZSl02UJROXqFBaMvQQJXpoQ2nZSlv2cpeOWpgOLDABAVyAAvCjAAc8cEwltXFXNjBc/2rlv74AEAi6MgPkJHcKXFADHejQ5h07x8d8oCN0fOSGOAe5wUKio3MR5MfmPNeNSLoTjU49QD3n6dT0cOCFnzzeDNvFnRuI0gqlpIQSlxjWiM4yrBQtK1kjCtESpTWiY/+t5dw2pQMNOIA6NwDpqjD2l1zpang40FVKU7pSl9pACDAlYDCuAVSbpuOmNzWqTvv4x6ASkpwcPCfobHoNdHSDGew0IT2hKtp4hlaeBxgCFeCQBy+UpFzgepBNtvrFC7SAEIuIzSEK0Va0MpQRbE3rWh0qXN8St7i7JSvcFiYHKzSnoxfoIhjD8xfCnUWMLGWpeya5LSD4almn+C4upEENbjA2p3yELAMBOchxspeD19DpUcfJQWoEgxq4SAMQpjpaSx6AA6yFQycUoYkBB+INRdgBDiIQmC9+MUs4SMADBMCCT1C4FL3tLVszPFzfDtehDy0uiEMsYhB72MMQLev/T7IiPa+swADPHQJI3/IqFnLLmbcCAhsV4NId+8pYlQuveLnRjZua16fwtQdlC1nOotqDH/lwcujke41gSCMYqACDrZ5az0pyAAuB0EQqwhzmAXeiwF4wwl+y5IEi4ECkGCPAC+JgCElggsMmFrGJ7zxiEV9iz5RgxE4ALeg9h7isC9PKIuRQhgmQ5bk3WNVclLTSvtiApSU16a7MAIRl+RgXuDjGeIWcOZseWadJJucgmYzeP0rDchYMRjBOgYP8PpW/HIAeL4jRjGY84xm7rkWYO6GJQLABC+UaXhgJRwAKXMEPmAgFh4m7YUIXl1CB/jOhLoHtnWib29b+NrjD/x1oDtOmeohehMOei6qRzhguky6pG00qBF0JgbtC4DR4Pw3q8Q55s5zTqU2TLGXy6tTJfEyHfC8YDFw8wgZO0zKXO1ELazTDHL2GRjuwYQ6LQ4MYxKjFsN9wZhws0zwEuIIoWvEJaYt424QStLi/3W1t09zbNu92zMWtE7ZatBDE2UoGJODiB6wKmTL+n45tYAbD1ltbQGC6YZUuBMOuYQ7TOgUqZPFpanBdyIyN7GTXi2oOqtrgPkWHIS+oNDOoJ561siQDJK7rZ7TjHe2g+zM2rneLN6MWrtAEHIzQl991SwFXCEUrdPHhaX87Njl/PLhl4/jJyybnk6eEKUvES/9D0YYMOhD63xIQHqkJL+kC7BXTzaD0wjqc6XMY4BxxIQsLUgOR5B3yvwO+XvYKkuCdM/sfx6nBY8giFsR6OOMqqQA8uELXzSgHxi2O92lYvPobfwYxUtEJLOBg8GYkAAsqofJCZJi4kcd8bCqP/vSzv/3ufz8nSgF/ndAf8/bfOYr1MD3jWCGYFUgAAC4AGcUJlnCAS1kLtrwe5MCUrzTd1L2e1QkLKnjaviESZz1W56iX2A2S7yHVk51d2q2OLEzCGjgcAKTH71SSELxBKhBDrhEDxZXDM0Df3WEcxmGDPMRDPEyDrw1bGnTf03CAE1RCKISC9JCfiVkb/K3f/L3/n/zFHxTKnxRCIRUuYf1lXi3tn3GQwR1YQQv8HwCK3lvYhOAIBhAQy+RYCzUxzemVoLa43rRMguvInngp1pCRWgYKHAeRF5Mt0h4hnDRYkC3sjKa9U18c4iQJASK4Qirwgiu4Qq5RXN7t3d6FQzyYwztYnN8FAhbEEwX4gSqEgigUwiKQooc1HhM2IftN4RRS4RSuAifAovzBIvvRovvZH73kH90wjBWsAAEIQAIQAACG1D09AA4UwRr0wXedAiScgrBMTtUpYK84XK+83tVN4NbV3h3alO4JVarhoZOFY+g0VgbFgixcizvxDlxUmna5QSewAiu8Iyv8wi98XDUQ/0OvXRw0mAP1XV8NYt+w9UEfpEIzfNwdEIL0LAIjKKQS0p8qNiErQqEspt9EzmIttt/95eIT0Y2mNIwFUAABCOMwesc9zccamELq4MIgngIaMo00rp7qIQsBYSOoXQO/cWM3upcg4WEfQRlSTRbxTUI7XdLwFAEbHYAZgIEbZEInmMI7PiI9hlkt1MKuPcM6QAM0XCVW3p0kmoM1gByYPUMuEAOnLEIpKiSg7QRErqJExl8pvCUrvmUszuUqyCUs3mVs4KUVDlQV0Q2ncAqPWMAVaIAA6E3EUIBNNFgR2AArDN8x4ALW+cy19Mo0qh5MVZMcxd4x1FftcSN5BdWSwf+XH4bjH3UDfclCvfHXARxjyezKJGTCyrwmKwgDK7jCPHaCsDViLRBDMfBar0FfrxWkNeidNWifxxGDFdgBV5AiI+BcKsbGEz4hdEZhFEphRMIlXWbnXM7f/XGYbpWbHGyKGDRMFZRBGbSAAURMxBBGW5hBY27QY2LdKajh68EUTPoK5EzOBMbCpwXZZqEdZbFXH3YTaSJZMBwDKkCCENgKAlTSG/UHGOgKGGQChU6CbM4jPP4CboLZJqSCKkxlVfIaxf0aL1ScOdTCL0ycNeiAFVgBpyAkWqol/L1iXrolXN4ojt5ljmonLepl+hGKcB0hwyyXi1pBHMhBHMSBGnz/YWG62HPxwA5gSR9oEHymzncZi7L0ytJZZtVNjiVgHQXWZO8p1u79pyLt1AI50MLtjCXMga1UkksNDxiUzAGAAR60TCa0TMu8DDzGY5n9qSYwYirs5q7tmsfxgibUozVYAz2maAzoAKQm53Iyp4zCny3aaI6+pY7W5SpwKlxyaixa5Hb+6J8tQhVpxVZshRwkhxX4iB3ImSFcAQYIgAF4FDHtgBAoI+wEopU647Es4Esp3WFNS+z1p072njj5nk59juaQ2jlAEjMaC2hpV2END5ZEKB5kgszgAoXuKStQaCbAQR/kAbnmQSB0Qh4MQqBO5VTyArBpgrDV4y+kgiaw/0IN3CsSJIGRvqhZLsIl/Gv7SSemlgKndqrBHqzBEizCLixe+ign9NlZ5pYcqCqntGiLHikhSIIkGIIhqEENVMAFVAAPXECU4kAf/MzsWZBKLiOW/orL9oqXFiuVlpNifSY3/hFO4iQ3CEMwtKm2FKIlCYGcDo8NsMEk9AG4mkImvCZTZgLSwkEm5EEfvMHU5gEW4MEbnCuYuWst8AIv4Ga8psIvaEILaAC+JgGLHilXLIJt/WsqXuenKmzCFizCzkKn2i3DNmz6QewRFsJf/u3fEoIhZCwmFG4llIETvJhNgEEaeNcpMAMz0BfxYemyXKYALUvMYqOxDlXNLlbOAv/VenGDNMQCKvjK02gLf+lKX+CYhD4CHrym0i5tJrDBI7BBH9iuF+SuF7zBG2ABFuSuQGItIpxrIIyr094uG7ABAXTAB/iAD1xBviYpx9qWv15CwFLnp67CLGzv9tYt927vLYSv+Irvwo4qJfzrIZQiIdwN4HKKcq4vIRRu4bZCK0iCH7TAc6WKuazBvU2CKYzDOHBDMNhCtGKpAFETNFJOsX4akA3VYvGh5zrwUAVDJtDBm6om41RapQEBynSwGwikG5yMydjAnO6ACZ/wCRvBCacBFKSBCycvGzABG4ABE4ABARQABFQAC7TAFSRBGUivIfTrv1pv+uGownLv+N7/gt0uMfjSAi2ErxNDcfjibacSLPudb3MWAiFQrPsG7vouQuFSGP3OAin4AQtcAA8c2LUCwRpYgimM18Ix45VKTjVVk9Vlri14WnjtauwAlR/zoU0N1VDhAirgQTpWEgBMkupuMBuRcMqsAR24QSRDMv+ynhAEBiYjm1/5ldBu8l/tyg0EwAAMAAE8AAs4AVj8sJx9cfVar3VmL/c+MTAAg/gi8RMnMS4rsfZW8Xae7yWoL/sqp3LKwTC/aPxewifQ7xgDQyj4AQacMQ/Ij4PYxyTgwsKpJAFfqdVtcxpm5hzlsUoK8h+Ps+i2miAPyxpccGhNEqXp2OryihDwbzzP//PU1ZsNIAAD5DM+5zM/MwA+7zMDnJRAB3QECPQABAABkPLeoLJ5qsEqUy/AfsKNGqwtz3Iuz0IuOzEwRPEtOHHCSifNafHdBDMxd7EdfDEyS7QyzwIwzEIz84DIesCpLC4YNCMu8Gc2S0sdSw4d4LFKYrM04AI3jBc4AZUgw07qbNAjoK7yfcwBNGg7M7Ku8C9VTx3/7tgBOM2b+vMFMygGqyZCIzQBuBgL+IATZEESOPTgxi8YX4IR3y1G4/Itj69F30JL3/Vdh+8uT+TD/ivbri8x24EwC7Ywr62/3ugS6wIw6EIZs4BjS4dKMIHSqQzNxNp3Uct8Uks3PyMqzP9U6wT1Bo0X1wnyHoMzt06rJSWyrThNI++KS1n1PC/d1DmcDWT1U2/103D10zAoAiTyCfb2U6v2eoRkSBqAAXwABvgAEpSBGgj2+mKCv36CjRosLs+yRV83dtMCMswyS9s1S1OxXPb1X4/0YBf2+7atRL/lLJSCLeuCLlSCH5QBZL+ATfjK5GRCLJBuZ3d2GkpOtcynZ7cOUlsQfAZieHlaSnLrUh9yaDWoe2gwpsG2PKeermjLVjfobmO4V78TVPn2OxGAWBO3AHxABfhADeRrcw+uJICxSmsqEotvXdu1ddPyjMu4dYsvLXSvXH6CX8MvYf84kAtu27olE8+CLM//QjToQjM/zAtghE3wChhYQibIQn3xtzO2qdBotgJXTh4nuB4juKfNJyroJxugNofvdiNzwK7gQDw/cjxvqT1jNRBsuDrf9judIJ7nORqFNXH/IgQcNwagtb4694ojs6Zq71zTNS3UNXbbuIxrt0V79Fvy+C//9UkDeXISNjG3rVu/pRN/+qdvtC7AgihUwgowQZMPwclEjrAogz7EwnfNkbEIzSTwDDN2Npe3zqd1eZd/VzdTE4M/NT3hs65cq8mkTDw/zgLWW9M53CQ5uLBneLRPVW/rORr1OXH/eQWQeAXkq5HagYpjQovfbaLf+CwvOo2be40v9izogspRGLxj/4KQA3kcGGmSxoFgcywYi7tEGzkUL3qoa7e7m/oQpLqD1LAbCIswsGnP9Ey16OccdTZkqiQqDCKuz2cazjAYKMDpWtIFa8tUo4wbUHICM42vOB3Kz7mwQ/s6C7tvWzueG3d6CsBYG/cHGAAGVIAFpHWSOncYl0IrkLsU57Jdh6+6W7d7J14rPNsliHvTL4IhgDthJ4GSprUVqEGmqziLl0KO37Is07jALwMy5IIfNDl9KwYkB01+f2nDa3nmyucyxn20Cs3kHLuuPDu0YzgQMEA8K2Xt/r0bPELgrww1MWA9O41WR3uDJvJu3znM4/kFdMAFGDcE0KoBVADmY4AG6P+rkuZ7/CYz0LfCEmt0otN1uge8EtMvKYQCx7Z+6xO2Q6tBEsy+7PtwWrc+nWHCGPt7Rzs6MiDDMij22MeBdLzAFpHsDsxB0NQ681sC81sLGhILGhZLN0MCHRjLZJoUxyd+45/upt0xAVGOHMkRxk+O8lO10zk4y2P4tFf745+guk1+etp85msAEjh054N7GLcC0APEqlazaBGkdRDhQWDAbi1cqKtVK4itSIWSZEiQGo1x1FhRk+RjkiRIRiIxeVJNHEOGJGEi9YngrVu0kNGk6ZDhMmS6ohmL4+QFhQtDcOwAYsbMHEuWJk1i2nTSozWZHlW1WhXSI0h0IM3x6lX/CBAgNhAwAHIAAQK0B9aKpTPH6ilUk1DVrSt3rqWqdNasEfJXrNm1bNECSHsAAGLDABg3dszChw/IPjB8wFBZgw+SGlOqWdnyU8SIsyQO1EXQIMLTtCZKsiipEsY4fvyUuVKmTJY6WXhnceIkcmTILJzUyHLFD8tKLSOeXjZrJzBk06lTXxYtGjE/K1i8GHoBBwcbNoSseQS16SMwUqW6Md8X/lf5ZoSMVzAe7Vm1+Q+YsSTXllMCFNCWAguUS67zHnGDL7/+QoCsBdTazzAEKkyMsQAcG4DDAgrwzTfgsgjOuM06i8OOz1z6JDTRmlsFohhnOU00UiSBbaWM1MDt/4orfiPOCSBZGJLIClgwEoPInDApOUOWI0WiWRZqiKbqkHEGuyujWQYWTa6gQCiiOIjABiCEMGMNqPCoqi+p4OsLTfnkM3MsGxQAgoEJ9WMLCEsyOSaWAo8R1EBbcAmwLkj0eoSvvwAzK0/CDpvUsAAQ0DCATAcoIIIHEuiNN+OyqOEMkzg7VZCVImmJFChdrLGVT6Bs1UYcddyxDCRqcKKFIy8AMwEKPE3AUwggeMAAY5M14AMWMCiuDD8EqWS5UFqVqKboqnMGGeyu2zIXP6gY4oILiijChgjCIs+NNfFwry8w0PSLvjXQvPcrIeYYT7z7xPpXLKROOYYaaqQxWP8aaWxRuFBcTklQUXgd/IsBBsgabFIEFqg4ggUS4KAAYh+AoIMLOsgit5RRRrkMNc44VSOMVqokFJdovZmim22MzQ+NcMu1hl1ruOxICgg4+uhMAxiAgACQJiABqA1gNskacEs1Ntdc1WU6rqfDMhqwsYtmmnBZGIIDHorAYbwygVgDj6jAsLevMtcgjz765tB3jqT2rq9fDoC4E4Gj5kBFlmAKLvjghBk+MECHUclKrwYdHS/PSPdLqywGIsDhAdAfuOGBDjrg4XQWaPu5jjLOKKOOl1vmrGdBIqlkVddCsVbn3SuCjVpBBKlt5RCF89WABKKOuoCkNVWagOZDhoD/WcicQNn226uFRZfukVlGOrHDxs4c7IjRxIkhbvCAA/HIHA+M+MGwYf76xqsPf7353nvvtv9FCimQOIUyqKEMbhyQG42TxqAGJKCH4QIVWpnEGuYwMczhRy0KyFNZyhKBHczACCBEHQ8uQEIesKAHwhMebWqDm5f94VS0SZX2LFLD3d1wd8CLRKpWhxve+IgyzqpABcp1AeUlAAIJkB6HmMih6EUvAVOzjA+uFy01TItmpOCe93TSrfFFQxtYCqM2cqEJOLQvPGxrmw3Ytob5mYE8eLMBHOFIN745qE7/MwMkICGLxHGjGwg8oOOkcagBBWhAVumbvdpmMY0pAJIM/9BgxTyHgxlgQYRG4MEmN8mCE1ILdzscHgz/MDsY9kxaWATlKllJLVGusIWt+2GIfjSkkpnsAhAQlgAIwMunMU16UeyAkaiIMhlSSxJa7J4udPItZ2gDmtoghzTdQcZKeOEGHHhA+yLAAQWwTY1rFGd96vWmvv3FbUfZIySOIY1rXKMb3UDHIBPWzgUa6GEIesQpqoIUR+EJoAsgiw0sRkkGFOWSMMACJz3pyR6woAkVEYUkRBG84akBEGromUZrhxHhRcIQkdhhJWyXKhV61BA9bN3PznCb4/TmN8Bpgg+a8IELGGCXymue05oXPQFQ7wMVKKYxbUezUCyTmV50xv8zoflMcjyVHMbwBBzQ1k2Cti2cccTfHOdYHr/0RV/04eq/IIGKWBwDnvEMJCEX6DgGIlKf/UTTWMYCoY0tQAECLShBPwdCLCiUB1Q4YQ9OSAUW5AIWsLgh7lRIGzX8AZUsHN5kr6jCkw5PWjL0QyNE2QhBNMIQnq0EaD2LWR/6RjJDvGnymPfEAghAmBX4QGR6U4aiioIUuVjmMr41xmj+VhtlSwUVOobXBYhHPOKkY1fRpC8hvKVvAJQuJGyB1niKAx3pmOc17MnWeyKqLmyqIGDqCtD7MUAIe2UjDsCQBvfCwQu/kQILqNAEiObCF7lAbCgq+krHlqGUtTmlRjn/SuAVYlajk00VaFc50YqKwsGuFKnwchMiFpSsA6x1LQGoRz3ZBoc3tr0dbnXbPZ2IEbgpnoYovLBNvF5VnG2D45nKM979SXed1eWGOMSRjnSI4xzzTNg7r8GNIhvsGLiQHD/FixSxuK1w5GnAX9RVZRxcGQxYcEMapAAHOMi3vlKggjF0Qeb9VpSxtIEsgNncutaV8rEFluG0QtpgCO9OsYmFhRb3rNiK7I6kq+ONZEw3suRBDWoJ+OkwZxucMJxBWrcLBSx8wUzePhOM0Mw0NqKBDWkaIxVwmAEOjGuD5I7nbnQsz7woCN3oApC616BGN85xDnv4WLsHvAY6eL3d/2ssUBa2QAU/F2WvsPwLQmNx1F8m5qgd7GAKpkCEJjRhO2n9gTdf4C2ZjZHY3YlCpGpus+tgR+7XPbZlqcRIJdAsihsmVre5MIZu562LeHcPsX8OHvF8w4IPdOBYBggZ1AqwrKA2mraRptkWebsMpv4WjOGIxjM8veI8GIHUGoTxGuvlVQrKCQh9m0Mfj6GM69baHkGWp3Z5LUhqJFkWp/iPVSgIsH9ZzFFgpYOzhbCD5/aAFa4AxStAOeE/nGEayzCGmXPxCv5SqxF+KOXRzV1u3JQSwB9l96S1qF96M3Ns2BEfb3VR6XxLNNC1CYMTCPuBf2c4wwaAu+lk6+9iKv980pXmLXZ8qw1O+73T2FjGLhoRBiN0LOMxLidf6DAJOjzeK+ukrjRMHshAEvmd3GB5yxNYSFkMe1GQsNdRkG1z57oaum95fCJcIQxV7GJ3Ip2wIASvdKXrV7GqoJbUsd661/3+dQBOJe6yCO8SG8OZEtdG+SQu9i0tE7F7rkjaeSNTyfTA7T5w+8Fl24FmKQnSWMy7pfkORjByGv3LwAY0CH9xBuh143Psy+Mb7xRLQHePsminAX2N+V5vHoES5lBOQYCyIvLMwOboijzK4y0+bg5U7wETARGE4Rdej1ZCQfYiIRwEL+meYd4QSxVUQRSi7g/+wM3K7QSnbrNuZxT/Jk2/TOxb/i4apokGadBbyqzsom/P+ov3diMPsmDtfiM4aAqFgooHGu16wu92VAEW8KvhOi3wOG0aBA8bks4YXkERvGAHFuC4LIbjnmsNGs8NHG8SIEFgEucaesweAAmQ4unH7OHW7KHXtmuBjiHmsqIrogtgwmJdzCQMw5D+HnAvLAEVgsEVfqEJcQ8WXuEVKuqpNnDbPhAWRDASFKHN3CwLzgBl3kzhImHSmrDskK+3oiEcpOm3pkkbbnAZKs3eom/6RKoRFEER/EARSlATe2PtfMO+mqUHhgrSOKsSXoHSfKHheIsK1W8Zkm4apoH9pooKHuD9CEqgxiMpwnBB/5ri/vqGj4KBGViOyOwhH/hBHPkBDuGw1wLwGI5B5vgoD52MToCgcP5l/ujPGh+BKZgiE4LhFxDRF/JLv3whsV4BHuDhEatw6eZtF2qhEjShEf4gEMogDyASdh6yDurADyLBEyphFBYuEcvMGFPsqUwxmrYNB83O2/pL9hpBJWmxBAOhDkywDr5g7ZqgF6WgCZzgCyoSshzBE+6sCX0BGpIRGaswGZlxGaFBFf7AC4rrPmxgGsljDcYwE6ZyEgJoYOCJ14gsHexBHMMxHLXLxzjv145h2PhIK7yC9BJQLL6CDvYCD/FCyYJBGCiwGZ5B6ZauH3cBFgaSBrHBID0Qsf9EwRNIUCJ3IzcCIQtoccQgzPh8gcy+JdOACxU1rfa4rezyKyBDQSN7cjN7MhJi8Q8UQRBK0ASzQCaB8At0gzQ/CyNVQRjxC/mUUf2CchmFshY8IQ+4EJKc0n+8SiozgQ6OwhKkgRm6wYC0kivBMR/C8dYAcJDS8WHYsSukKy3nIOTozx6zcyn+oy5wIRiCYRx+oRrqsuGQrx99YSAJMhzIwS+n4Rk8kBhqQTBlsQQjMhAi8iUhCyO37hW8rh+NwS89rRRL0RykaT3JYUArExoOMgcR6xVUIRRCkBEnlBIbYTBVshZdMg9+MA/qoEPPQCc5SxRcswmX7iip8CiZcUH/fUEV8iACNIZMohHnhMANatQNrHMOToEZxkGeuqHHtpIru5If8gEOw3KeBmkAC/ARRk5OmpQrtvM//iOfDEXJuGEcxqEarKEcUhT5jMEX3AEf1HM9zWEKPXDeaiEUPEETaKMWywAxIasEMbInXxO/HNMYOi2aStFAp6lAS9HTKlPpyqwfvU7PdkEYa2ERa+FBBXMwZTFDHdIhs+AHv+BD/0BEJ1TelHH9UFQZoQEapmEU3oAL0+WqGoCgzKQ8Qi4pUKEbxiG7tnJIxZErvXJIm7PlZI1hotMS+KhJ5URRtlPm8ulhDAQXrPRKx4EYrGEZ108opyFM3cEd4oEczCEc/zYQGt7TGIhhF0TQEwaTFnkPToFRFITxJ+00QP1OG6pVXc1hWtV1A6vQA83US/3R6w7yIHPBUBe1W2MxQz3UQ00zDCQ1diy1W18TKDVV/arQKGlzF0INB97Pc2IUCEzVCxEwKSivG1JuOYlUVmOVSOUw1w7o5Q4EFfSCV0dOOvloV4EVcgiEWKWBG87hWKuhGgLUL6FB8MIUH6DVHRC0WuEVMNFUBCvhQjeLFmdxPxnRP5cO/QY0Xd21Wn32XRU2KLv0A2HTTu01vxJSXzG0BP11UlMTRFfQE5Q2UzWVNlP0U4thF6YKBzpmgzgIoAoHgKqrG8hxY/E2SGvVVhGIu/8aKIK6Ig8FN0rzqS6otECUDBfSMWEOaBzOQR+wtGan0GanAR7wYWfDFB7CgVrNYf3esxiIIRfQFMIWcrOirhYt1BOYcBfqlGn90u+gdl2hNkCXkRm1NheKIWvtFS/xVVEFk18d8l/zIAzewENLUBEwclxhYRdM9ESftyingW1T4Q2w4GE5ZwHehzzoIBFiIRb0j8fSYTnBMTnLsUjP0chGNp/+g1dTdilkjhDNKskMyVAKyXGMNR+EAUut4Rk812axAXM1l2efyhw81z0BMyH5KyM1ARaPtjWZ9x9fN0ChllrjgXandhm11jF3d+nktXcTEnjpU0MldQyywCVD81L/awE2PdV2cbaFF7YYaiEVNCEQ3sAL3iAPAiEQOiEQEKETWEEYsgEcwIFI1UE5OZZ8yfF8j/TXFsiBIGZwnzRYZYEQY+E7X86Q7PdgqAF/sbQc2oFM/fddA/hyLxdapbWAyRR0cyE+ISwVunVfHTUSQME1d6EYisF5128Dq5Vaw8GCZRcb3pVLlw6PO9gYWNgYjnJB73gXDFUwNwE0ddhDN/QMdDg0HaERRrR1gfJTW1hh1XYZnyE+VSEVeKEWTLkWiIEXiCEb1qEc5kEf9CEfgJRIPxYOba3Wcq2J07GB8ill88mP/MiKFadxCiVhCmYcrDRyy+GLwbiPfZYcMLeM/wOYZ/lYjZ+hGHwXwrbZEypRFi10XFv3jo3hGVh4GvqYc/n4j921PY2SnHnXnNN2kLM5IVWhWxlSeP91D1wyEEIzecPZMc3Zk20XlK+1GLD5GdYBGhS6Hd5hHeYhG2LZ1sCRHPX21lSOG6hhlwdFWDu6AAUomL9TcRZHAA1ki7n4SvWhGtahocF4Cg8UQaWZjMF0IOOhc4E2m2uhFkIwBENYFjdhde14nN+ThT03jY86nadWYYn6nePVUzuZoD/5U42BbbdVFN44FiW5Q+ugn5HXQl9vFxyzNgV6Gcq5kz21HaBBjY26gMGYpR9aH4gYic035dIhntwqHTm6lzt6Sv8XxmBEVmQLqWEKCZmroRz0AR/i4R2ueRpgmoxnemfdwY85l0zds6p1+hV2WhQ0wVEbYRNGoZF9AY/fk6jVGhuOuoD5uHLNubQ91axtd1P/N0XpWbMb1SE7tEO7WhE4axReIawPuZOL0lOjt4VZ2FOPerHb4aEjmojBoaLpGh0urw7z+kD42rqr62AEKQBx4XGoVHGqQR/aoRzkQR7SOozVNaYDWGdpuqbXdampOiGZd6cb1VEdAbTv+KDJubTDGKlv2oVd+6kXFMCXNZAL3MCn1lONoZHl07aF9wf34CUVgSc1+T+Pkrg3VUWvVa2nIa2xIbnNYR3k4aHHQR8omq7/by2QkKydkqy6rdtlBSW7tfuAuLu7cYECDfsdyru8n6EZwqFnA/lA1Vu9wfSMo9Vdj5KQR/d3IRk0FcETakGoD5q03xO1U1tdT1uRzfqpFZmq8XhZf/ZdMXhB8VUVQAGS6XMPnAAOvgAOuHq3PWEU6jis+1F3vdRLzdkc1Pq49XyxzUG5yyEbsiEfxmF8lfjWbnW6F7dln9iBCqW60ErGB6lAGEbJrpSZW7qhSbtnJftAw0HIhZxnjXyduZxtYaG2N6EWFWETXg+/pXzKzxmpj3xh3fmAqdoYGFyncyGQ07XAEXyRG/mRW/ILaLIJpODRSlAlgRoUets1J5QRQ1DK/wE8wP18oaGBZod40G35fN9pugeFga57WF+8nbiYDQNwxqv0SrP00pmZf83BpnsWQRG0Zz/906MV3h9xA5E8dOt52Wl4ECy0Flq9Lqe8yjmXajNcy+0VylWBsz1h1RPZTw38ZpcO2CH5DwbBJaWAB2CgCW4yDD6Uq/0Zk2UREBSh5Hd7FKT8jkEXoevSGqyhGn5hHOSafMuRDnk5yb59r6eUQOrJnRDoSDO6cZCZGqphHF6emc2hHIjhF/p309mVXQnycumdmnk2Hox8Az0XZ5+BjRNSp29TEQJhEFY9yol6yvt3/T6VtMl5tA8SGkR7W3va4cN+Q1cXQNuTahXcnv9jMSbDwCY7/t9g4ANgAAawj9ingAsQnwvCYPHHwPH3YA8GoSd5ekSXXaeb4eWJgQJ39EpTbtvr0EDmt8U7uoEWxnHSShyQWaRxIR/3kWZh/uVffh/r0hzYu1qjlRyufuqp3up7dtTXPpvjU6dVYRPuMxA0ARSgfOXLecrrshmEf6d5WqftGF+3FRTgGI753ibzQPJV4TwbOV+B9w/2IA+kYAo6vuM7YAY6AAbYf/ALv+P9/vynQArGIAzG4AsgfBAYUhEAopMiTZo2bQIFiletaryECRtXLZ/EfOi4cZN2zJatU6c04sq4kaPIjhw3apQm7do1bt3OuWTGLRguXMH/WAmrVs1aznLWrBH7laqWtWfPzLkzR45cPHLu4rlzhy+q1KlRnzZ1pzScOXPTnhXzSmyX2Fq1NP3JE2jQJlW7irmF5rXYWFWqUmlSpGiQ3kGOPKl69UqVp0iNCkfaNLiRojpSPkgZ8+WPo1F06Y4aRbhOnTBjpPRoMuVzh9GkZ3yAAaOH6tWqQXP5sqcO3tl4NTVydPAXr1+/HI77Pe7cOG7UQJr0iEvjyJIij19DSY2lOHTn0FELhgqVzV85e3rv+auKT2LWmhW9iv4p1fX4oMKD5zSeVnJc44Z1m6uWJ0VpA2nyVItbRLm1C1l12cXfHnmMEUYesjWyyWWEOXJY/ySRJPbHH1800YQPTXAm2WWjeOKJI4DU8QUXPkzhGYc9lEZaB6ithlqNn722xx6BpJXXbLcZtNsv2/3mkksYaYSkLcd8dMxyJDHXkS0ppcRSN9RRQ01ypwQDUTnV8OQlTj9xNx4xRBlllTvwWMUeVeq999RS4YSDTVdguWXMM6NoEoiOg2gySlvGyPWKKKDYNkifDHImBWd16AWIYRdGgtBgJWZ4Rmg9fLCpD3VYaKGJKIYxhYochiZFjB50sGqNqI3W6o1jxObnIIr80clenYAijCsOMQMcsOJQE0tHsnB0TDDKXBcLLk4+aVJK1yjTjTjWitNNljORWU63PfGUCv8rmqTSjDnP+NRTUU6lGV+bU7m3ZpruzFnfM8bk6VYtqSiSh5+A1rKLKiMqlugeDL7BRcIKn8FwHZFaiJAoryBEGCB/oLgapz188TCFjlx8RooKe9iEqquOBsMHM7AKQcsdtPZav7Uq4khBCCXjCium+CYMM8IEwww1x5IkSyzKBBPLMajItNxxGh0jDbXdTM0SSzKNo0+3WoPZEy8K1UIeMWL3tFV88sbj7nruRfWefHN2NWjcxKiiiYJoBdJIpZs0UvCijIZBKmdfNAwIpaCI8lcoo1TiSOMnfuHDppt+MMUZfzwsyImahSwyi6StCroHorfc8gMReJCaazLvuGP/J5E6wgsopsweDDe/PTQOM8GcAskpslgiC9DM6B5L8byLlJwtH9miknRUX8NMN8EE8+V36KIbNlk/CVVO2etCFSc5abf37rvkzFmnV3Hn60kgeSyIliJ8D2IwZ4AD3lkYj634KCCACEKpUExMgBMjTCQEoZkp+OADDIQApwYXqRNdDGQo+kKKPsey0ZXuAQUonQdgNobV9SlHe/BfJ0yRidlFpxr6cEgwjtU7WaAieMMjXnZEggpc5JBJUbvG1KZmrXRYyyHV6FUtvLYQYnSnGT6phthCYY2teE89aTLH+KQCvnjFh07YMMf65CKWUQzifWF4w6wUxIUmtIZDbJyC/+Agdwb/UegyigMFqO4YicctkGUto1wWCGcx/1XwCy/i4wYfwMECdLCDEJhRqTjzvjrwaBCA2IQrAGGKTtTEN9VAITNMYQngWSI7pgjGz0AJid5Z4hSoUN5HqNGNYxzDh0U6RzfGAY5qJIMXOcNDHjThilSkAijCRKL2zGSuslHRPeSYxhXZBg98RLMq8qlTV4oxqPyQpX17KCODOtMD0qHONYPb3KMc9j+IhYJiBsSjiVL0AXH20QflvFwgM1WqQmoQkRFQpD87iEgZ3ahUX+jXjv6EkE4gIhGdEAYrptcbU0wiFqHMjiUoaglITMIUqJhDKk+xyh3ighvnII40YP/Zkm5wI2imiMXsFuoFPLzhDX1IQx5Y0Ymcjkt7Q0nmVtzxjPiYixipeOYyyVfNabhFLnKpRWAOFYgyNsELUgjNDBQJgZc5ClLyE4QgHPFVA16mEoQBYOPaWTHIfQBWBnAg5crpv4tBToHh3Gci/+nPls0gNT1g0WMctAdbGWQPU0AEIkzx0NkhNhGWSAQdGouKREQ2lClMhBlSGVJUIOsc+bClSn+YrWDMDqcCyVUnAoEI1AbCFTvqQx46EZRaEGW20SjKM+YVDmOUJRBGjVM8fptUaDT1L6oARSo8sbc9UBU1HpjBDDzQMtW8pn/ya5x1KaTOUdgxEmc1K1oBodb/eIrzA3C1WKYipxpD3tWfA8BqQPl6qr/OylaA4IIbxqBYFE5iEpagw2PpAIlQCpi/qPQoJFAxSprUbhydTQcQi0SNn7FiGJYEhSti9zWgdKIPHIZDH2BrptmeaRr0IUoqAjFTqkzTTU45X72EO6inCswToNhbVL0AA+eODpEftGD/CnNW7OLxjgAMa5BDhUB4kq6tH/BBHDUHOdbIc70DqHJeW5Yy+HJIYQgj7BT6kMnZWeIR/vWvG+gwh8dOIs1zaCyZPfqIR2Qnh8GIzmdZQh2VRrhXrHBFMMFWnvI0oxadYAIb+uDh16YixCImCjH0lQcvGKEIKmbPU8IRj/Q1/4NAu9AuiZC7CUcoAo1NeC4EPNDPB3jgrZrh6m2GDOvrgvXIoQLEAsVLuibHEWOsCWcHNvjPKlvZvX2c0WfYuGUupGEKs0vEJMoMbTRHew5pBjCcR7nDOv+wSj/EkkOGcWFeNIOJ6SKGQlLhitMiGtEDWfQzxGamfcHhDVSAwqRV/J58X5qLz4CLcAtlx0YA4laY2kNVcewB0/XzdKnhQsMG8ePrxrpxX/UqxWdt3a9+oYFthYABGEjPuaI3vaRDJHuF3d688ri5M0K2i/BQWEQ8GxJrmMMaoF3tMlOb2v6N8yNYqWDi/NAlLMHSdYTxi2R8iyffgbe+1O0FL7whEP8DEQVBNOEHOLCh3jzAAgyw8K73zGns6YMGNp4hlomFOtQXq2AeOOOi5y68gx8slTkfRcnbyNq63J316776v1l/lUJnYCCu+0i5FSl+Neo9Ocr/yWOX7XVGqUGNG/CQCDfMwQyc57nOywwJNO98Dj6PM52xVKUiEcfoQBNGLnnhRN0AxRWaYEUqOnFoNkidCoiedyeuMG9EU6Hezp2BEdiWlPOFoyv+BmMtDFKzxkE8gY98jRSaAIOEc7AB7X1AB7Z8d70AOePWjdTgwQoIE6k/ghcHRDzfP17KlWoKKYocrk3egAKgXNiQX3kHJo8aWIB9MOcGawAEB2gGNtdz0ib/bTxHbWtAZj43CZlgSsLDDMJRUnWWLNOzMxXoQjqTCZnABiN4aFH3BiY4b7w3fCvIAzPAA5NmBMlHJ9fEaQUSGAJjFvUzf5qyIvnUAzNgOienaiwyBq22F3LEfujXCIDndyaSOf5jfhF0Ig10ePM0BVlAf/UHAyyDf/u3fyonea4SgGmAB3QgBGYABJxXc3TwCGdGev7FZg8YgRE4UbEANNRwgSmVJcqTHdPjerk0Di6EQnjwCCQ4glTgBSuIBVigiC3ogkZQfEUwDdMADYPiC2n3CpcBfYqhKGGgGjNyGqvhIjDAQV6oaq5xTnqBd5TEfq24flCIhFIoSBvXQC3T/3F9lIWcExpc6HgB4IX/FAGq1lyTZwQwwAMwkAYw4AZCgIA3RwcQKHrSBgk79whpRmZs+AiNVUo9U0PXIUtJkyzKcA7gkA/kqA+5Iwy4kAn7VYhbp3uISAWOKI+P6FxF4AE34AHYVINPVWOOgEZp1CI0choMlGU9QIr693iK1AFEqBmxcXf9A4tJKIuO8GT/A4UVZHgONGVNRn8MkyJSkH38pEhV5ou/CIyq9n97VXwzkAZpIATMCARv+Ag392ZvhmbTyIZsOGb8FUobNT1AU2fXgSXVIhzlWI7jOA4RFgyZgAqTcHl4EHVRuYjGR49UaY/3eI+AERgiAgrIBXH6o/9GzGUjWcYqW3gaooOQ7KVIqgYDTcAFs3IGexCXY0CXZ4BOEal+JhKRUOg4gGCXmlKLtoh4FmSXFqRGCed4JPmFJyk6zpWSOwCZOACTQJCTEQiH1jaNmZmNAhZKaZYIiYAIKdRSR6MMyiAOLmEP/KCa9mAP6eBgRhcLITgJfQCVUBl1TRCPkLiSkHiPiIQDD6AJ0QcIekFCYGmQOcYqp5FlDLRqCbeFiIlX/vRebvmWZzAGcYmdrIiX6Zd+FVmRsIgiDDMGocGcpONWuYgijQEBQYiQJFmSw+ZPqYaSz9VcO+ABkvmSZrAGbmCZbAiNpEd6mIVtCMaZdOBsbrBRsTD/POBgLepgDxKRmqrpmtwAPcSDQn3wBjI1U1H3gliJj0bQAfj4AL/JARHAOgoyBmmkRseJnCuTfQT5AaMjOqjza9G5lgXAYzLilqVSl3LpMNq5lxH5ZGfQl39gnXapOVNQnrlGXoPDMFMQkr0YAACQkCe5ctCFajYQAS8pBHTAn/yJjWz4hqlEegNaPDKEYI7lBmu6UaYwDOAAp+KgDuAQoXUqRKXJgbOToTEVdcPXm4g0oqr2ABzATxHAAaDBRqixmykZOjEqo8XGXKqmSP00qYgkTgK1o9fpMP1DSUCql/7znf6TOXVgnX0VR5mjIfH0AB0Hck56Bo0BncLmi1TK/3/xWQDyCai+GQERYAMN8JIIyp9xFqZkRnOQEGfYVjTFUzyhtKZukAafGQzZAA7DcA7qUK38EKHYyg8OKj2y0FIplAdskAZYoJsz8JskGowRsAC7uqsJsKv0SZ+nJjpXCl02MgUrepzHmXAesJbmmaujw1cEFRuq2KmXo50mEkfeiYQhQ1CaMZzWuXH+ykB9ZUG7yK8IOasDQKs2eqMPAAG7igO72qs2AARCsKaW8GzC+gjGOo2byRG4IAsfIRNIw1/NmgZucFjMAKfqwLPqkA8Rmg/aai3KIEMoOwlYkAZGsAPOhY83MKjqOgAMsAAFMLVVq65p6bH+GoyCGrBhYP9BX/sF9/qcGwQ6/2dIopM6BHWdEHciZwBx0ydIJ+KXDpOwjkBJ4zld01eYhHR4DxBPqqGkMXpyVEqrKcexOJqu7KqlNsAAXQqspSesGTUHmTBKvjMTCjY9sVCzzjoFdIB5wTAMwyCnPFunqqma5SgOysBfM6m0kHkDOzCoI9quC7AABMAAA1C1txoB7bW18npqpFMj1bmKR1gHU/BcuapqrMFcWIo6gNuwmgG90Qu9dmmdlUOqUPik9IdOdAu9SgpdJedWzQkB0dle8MmxHKRwissAQGADJnt5KDuHGZVRB3ZgSrIkG4gLsdCUluAG/VVmjaUMzDCnPPuzQSsRPiv/EeDADKjwZjjgwA4cqCVqqLc7AAHwnoo0tQqnaivjomjbGniXfo5QGHqnCFzAKjgKqB5wr/eKfXzUvJmqqdJrl5pBl+M5f9MVV4RkveAJi2OwpP5qntE5vkOMo9GZSKaTvrzKq0CwppnHjmMWZyy7skA3PUtCE+r4CJsLbY0VC8PQsw66rfmAwNaqDsOzZtT2wBEQshywxldbwQAAxxrLuwuAxB7LcpXXlq8xCK9GY10JCto1CoDQBPvKSJ/hRl8wBgaZQc3bV2obvdQLyRVbKvRkvboYqlDItpmiqkG8XtIJxC2zSDcKjLrbAA3AvkIABgiaxVk8CVGcUSvLwJp1/wxYomAhuI77hQqxwFj/dVEOAafkWI7Wei3YwgzKgGCbhwOLG7uGuqsc4IsWXMG+SLVUm65oq5xb2ANh8Ci4gRDa9cff7Al10APax5Zuich0iX0wIE6OxAVTUJdHep3nDBlhOwXzN56S/AUOG8IROX2J3EAeW8Sh7MktAzrj28kcRMTsKrJCsAZ4wL9O2cpZPGYBdgpydkOzHAzHUDxMuV/71VKitcsGKgvKIAwDfA7X0g3RYy3FPDuTYAYOrKVtzMy0uwDuOWwLkAApbGwtDANjgBt9fBkCE9Sg4AhjAIQ8lhr0Bxl06RmsgqXGZs91WcNgG7btrHgKdNX5XAd5+f+pcvuXXIBrHDvEDrRqvzu+An3WkxoBDNAAu2oGYADRdMCTrSxgK2usudwsuMAsEpUIeDCbdcgMw3A0puBfkJAIpTQ812KaK30tutPSQhCyWtrMu8oAHEC7FVxlDDDNu7pyGnMqMvIFm0Ap2nWDxIUZgDAF/MpjFLvUhjnOMmqvUT3V51zPYduDYC05PbAibhvC1zWcm/OX8fS9AZ3WWeuojrqekGe4ukvZqIwHCLpf8LvKDFzRIVVKGa07v9NYeODXG0XSOisMyuBYaXZRRrPYDCoODGqtwyNhpuDAQsCuJboA8q2ul13TU3urwihQPSAFgzM4enEhf/wXWgkYRC3/BfPKSG05OHKJyIr8vVkVin3lGu58wwRVz/Nnf7m9IhwTZOWnOdM7BaQjnf80xO+XfQh+uAVQyr4ak22muQJGoCAl4xwxSj9pSqzwmW6QeRVlNCp9DgscSv71meENpy7BoODgEuNA0qI1CWAQsmtt2fLNAQxwtZfN1pUqI2mr1fLzahECCgT+CrvwCp7wBaqdwjr6tZDxIjN6ah2gnKsRGgok51dN5+RpeJzSkekXKo7DtiAuXgGNVx4bT9kXkqCc1tFZygiQgHLNUXNWuZOAYAgm40tjh9Pzmc+deSBlhzAxNaX54kJ+2MqQDelQrbV0mkopUU6OAwxA5VM+5er6/+rqmgClnN8PkDoqYpeURCGiLdrfrJUDPggwgJDriZKnwSEMAtYZtM58xRqa0lfNDrh3bniq4WR6vuegSr2kKs7xdLiCvmop8+BYlVe3uuIlawZ0MGfpPkNzxkrt7jtFI1qZkHmda6CNdQwwwelTIwy67L+g6Xq/kd5FIg5Bw4FNHrKlzLiwXtmlnMQRkNOIZMhhwAWPoncecyE0BsiXgRAHbmVZuyoDeWxNINzmeWqu0msnj/KTw5waw+GU4ghELUiPrMmHHuglr5w7dsTSGQHl3gBphgpMqb8yJPTq7u7ZgQs1SwcwYKAGuuk/ROr54BDOBuqmkAziEBzj6BIDj//qTQ4GlN3WDMC4EszMhprCovMYX+u2fGwp3BXCt3EpMFCr/icjoQjullpyonPNvcYpGqMxqpGRpzbt9CdHoGK3Dkuq1cvt5yuv3y7ioAzoKm7KXYqy6y5DtiALtrDuOXRDmsUR2eGUUAptp9Dj3ZAOqSkR+uAziaD0MDAFifAL4PCHAD88R4dCLrnzDWAD60rlYM+uv5lwOLBjbkmX/93bIixwkEJJivA4HRD3qkbQrPI5kkrsnZ1lKUOQm2L9dz45Zu1WE8vhL9+X2v6Xm3Kx5VvzM/prjW/o8VnKJjuBOjQTyqMRmp/u7g5S/LumSu9YwNMzAHHOXj5++QzqAyf/zBQdGDCmJDIFrpo4cOPGiVNGLdhGU5nSgIkQgUEDDgxKcgiJ44EHHB5ueIAQ08OUMFy+fDlTB1AjQIoA1dlz88sYoVJgdCgwQGmAAgUeQHgq08NUqA8eOMUaE4IHGB+6dv0Q1utYsDC1xhT7oUePL4AARYrkyNHPM3XrTPkAoemApHz5NnW6kqrWq1GxNhWyIxGeSZlwPcZlS7ItVJRRXT6FKvOpU5ZO4XHTww2dRJZkMQNnUHXBfAiTxUrkgWEiRMKqjWNmkZlGjR1RgQHZoIGNBRFshOTQsuVLl1M9PJDCheiXOjoBDRpU50sT7t256+2rVGmCmFbLmz+P9anT/61bP3h4/x7+fPnt9T6FmXZt27dy3dap64we3tvLr6QObAq989IDz6kdFMMDFVMge2wyXC7DcDPOOrPEDQ97IC0RZSRqTTXV9EFomCkYgoE2U5JB7RxxmFFmo2BwySQT4CJogAGTGIhgAZRagmAHD4qAiaqZnJBOqC/C+IKLHsDqQCwPOtBLPC0LWLA8L60qLMH2YOogv/muhADLsMyCSqs1wfpgijMAkcs/AMfoASYEtRyAqQIiSJDLqrhEDzC+dpjCDUQyuQwyWyKjzLIMMYsFlQ7d2IEO0o4ZZyATCwLVHnCUSYShTKdARRhmmDmHmW6UOUaWWGLJZBI3hBBiOA8bGNjVuAhY8sBImHY4KyAAIfkEBQcA/wAsAAAAAOEA4QAACP8ASQgcSLCgQYInEoYAUUKhCoUMH6JIMVHixIgULzLcSJGjx44bQ4ocSXIkyI8cXaDMyLKly5cpWaZcebGizYYLc+LcybOnw58KDwoteGJgURIlQZTMoTGp0hJKo0p1etJpVKhTlaagCSKFTJoww4odO+JrRIwqdKr96JPhiRAl4p5w+/bh0aND8yI0SlDkXKhbU0BlajXq1sJVn0oNjEJr465cvYJkrLUr2ctlwc78atMkZMBd5cKV67Ztw4Z1E+LFK5S1waQmzppsGpLwyqlYsy6+qnvq4a6PA3sNbnn4RMnFy5ZFcdxr8hRlXQLXiCIzZrQhkEJUa/oE6tSr3xr/ZO1aL9LClSuDpiw58eTPvXenz+0beGXk6+23v4lZMvPD1U1mnYADNoWTZ4cBxZdPCg61ml7kFcQVCDkhqNRct+EWn2EcKsZhgrwFpp9z68XVn3/NCQfdilvl19F+/MUIEXbadfcdeOPxlVeESLl4UQohpJWWQ0+poBRtLe4GIm8bQpaeh/ddaB9k7W0GAlDTVSmZclX6WFxGmgGJpFtouTVaQ6Wp1iAJ5enIJoR7nVeCkSA0NueRZsaFWo90/scbYCptdcJ7v7nHZJRXOoYofCkEeqVxWnrFJYyRrhhdkiK+6F9kKNqo5ppFlWDemwK1GWepo64lAkacZUafiIlG/0UYoYrKp1imP4ZgZ1eODgopcluySOmR1v0HrKTCkkilYZ6q2axqe5KKqnkhmNqam3KqkEJaAxEKrLHOKdsoZL5mqCGugenKaGglMJbic5dSeqylU0I3QkWyMWdRQyQ8m9Bpb+n5l3ef8jvtwXlVaxSOqIqKEHf9BixXUSdStix8uonoY7qNWWzvROCqOGl7v4aL7KXAbduYqlfWdWSDRW6bnUDZ+UswUacmHF7EZw58I8EOMyiQqKKKVa+Th+WnnpJSrstepxWTLJ27AFrHsmpBvnwgjTT3O5rEaALsbMSjumktwmcPpHCpoRYlo7cmg0slrVrRvSygloUMr9Tymv9sqXMaAUlhCXD1a/NpQ6twuHeJ55w2zTvzi0JRoPZLFFwnvB01yWEutLnUegcbL99T561yu5N7tXjQirPJ8JsOG4X55HVJTvnjp6bNo16al9A7yNRZbbe4VOba8ed8h34y6SSvnrioBPecprOM99t67nBiO9TarpM9efdun06Rr75TdBiQ12FafHEhrg9ju8hLjXrw5quAAurkgyy05bG7HmRCC7pcQ76Hmv/lbHuRc9vt3vQ9E6iABA6EYARNYIKyTWtfoSLB7yhSPvvhT3X6+48HxwdCDjKncv1j0+zaxjOBHYVoB8yetK6lPaHMDGEIXJj3FqhACGoQgg+koAX/D3YCDFpOhPcjoWBCOLkN3u+ESPzgEk3YRBQM8UE7iuFBuAdA24FPg0WpoBUrKMMZ5pBt3jOiqFAwQTJesYYaFF/qpvjEKrZwYkOzXP2SOMfy1TFzVkyhDHWnRYNwkYXfA2APxejDsu1OZzr0oiI12MYhms0gTvSdHYkGNgDyjwQsGWEfmQjIT1oQiw4qZEEOucMvNvCHbkwlHA2ZQDC6koJBjOUbD5ZJKAbyiHLMHxVLCUPa/e9BKQxY5ljou/3BcJayNGOOZklIaBKElZKknC0ZqUscHqSXmzxi5oJZwj8y55NNRKEAl0m2Zu5SmjizptpqKc9HYvJ0IhBIJQki/yNLojKKSvSjJokpziaSk44DPWcxl2nFU9ZTldesZSK1+cox0jCa8BxIFEWwT43ehKNqpOSowEnQNTI0jqIUpjl/adIm/tCh3oxnTGkZyR5OsqKNtKS08PIfveUTgj81gQhCykYSPOSoRK3gAw9CIZTyMX8jJalCC5q5l8I0o9jCHTZtStEwwvIgqLyoGWfVk6AOtZ9GLaIKkmrUoTQVoN9rq3mYI1WWgtGlDVXnwwbIzPv5E4736+QLLQfHsIKVIEhVAVnL+hGmMCWxOWDrUp1nPegJ0jyGneZMVylRHm7zq5rV6UVxl721qtWxDKGBDPqVr9SCwLGSHZpeBVKnYP8KZKlXreZmI1pTW97UqxYNrWijSVoi5kUiIKDBBmhQBQtYARN2yEAGQLBcGlj3BzTIwQ9ykF3ubvexiY1txNC6VLPa7526xSpv0ZhNBgI3pxAdrkwxC9gSMGUDG6jCDwzxiVUQQgc6WC51sQsC7HI3uTRILktIkB3zNnSuzCmrg3Wa2flqtbOufG831Stf+f5zIjmoQgzy8AdW8GIb6/hGIhIBgym4+MUuDkMY4OCELFzhCjFIQhKsa13YTlggP3ZqCUAaZLiqNKF2TSd6y3jh3k7UvT4M7nw7vBcaxOAKgQhFM9axjS5vAxTDeEUyxDyKUfACFKoQhSLqcIUsVOH/ClVIQhV43OOGmHatay3yRh0oAj0buZwDXXIW5Qk5J3sWpxsurnkmSNaHhPgKiNBEMr6xj33Qgx7syDQ7LM3pSrPj0vWoxzd6IQxTJAIRg2CxBzRQA+bqoApVeHWA6cxjxzbamYQ9GK77h5fLEpfJqcLwb6MM38JastFMuUIcXFGOUNOj0tCO9qWfTe1Lf+MbXubyLlwxBRiwWsRWjoG4Y0AD7Cr33NRdcIMFjdEms5erUObmYamsz78KVyiQDXEVMsGLUNfj0tEOOLSfbelNc/rf02ZHL3rhimEgwhSIWPGpE9GJTgxiD3tQhBo0sFxbl2W2pVphO/1K4YcSmsHC/+4qsRNN70GvlSI5iEMVfrEOURuc2gKvNME3DfBqT/vaXYYGiofu5V1soxjFqEUtQlEDCbz21uwWq7u7195FgnbK8t3wqFyzVQ0+8CHWvXEeeIHte+i82jnfuaUJ7mlPZ3ofn6bHv+fu739vox7rSEYlWtBjj4NchXwdef86KpBzRn3eu52noTO8csQbhPAatCLYmWsIXkCjHtswO857PnCBsx3aBtf52j1/D1Fj3hR0uIATrPtaFOQgByOIngvzyOuBQO91GdwrO/nlzoGY4O/KJGCoSK5PRVfYcQTpZgU7+pAqlAHS/f536Duf84ADPODTr77b2eENbySCDh/IQv8MquD3AtolgLoXfr+ID0FF7xTY1Ep5vK8e33oXZPlAlKAMHKuISvAiHpj3edoncDdndqAHdwOIfdz3DcMgCHAgYgcGdYcXWlPXRfBmdVJWf2WjfD6kdUPEFH5gCMNwd/7WdglIgNr3dgZ4guwQalwWB3yHWsAncrzHfr/HNseEfrITeDU4eHcxgzw4fD6IRldVbB3oQ0W0fzngB60wD+sgd9eHgCxogCuYcyp4gpbmgtsgCXyXYLt2KreHe7kWckG4fkMIPmKYTDQohMn3gxwmU+6Hbyegb8JQDlFIhSmoaXpIhT6HaXuIhW83aobgBOV3ApBneGQEhLvHhr7nhrf/k4MNs07q13vFh0balFt6wYH4N4fKhmJ3iICbFnp76A3cR4oqqGmm2H3dl31Y6A294AMa0Hdcw2D9cogNlYiKOIk26Ihvkot9dYaTdImONCpMAWAwsAffEHcIp3ZWyH3OqIreMAyu2H0Lt3CJ0AukOIVyh3m9MAVZgATZxRFxsVb5J0T8dIuWmIaS+IttaIm96D/nF4npx46N6I7aFIdGuHzFWAWDAAq9MG2i5g8CqIClyH29UIqkOI29IAsLuXCahoWhtg29sGI1gAQRKGG2aH+K5IuC145fdI/w6Emws44dWY8f+Y6Po4k+xBRicAeaoAvf4GwxSQ/eUA/UGI3D/zAM1biTvZCTyfCTyZCT1ZiQVziA9DAMiaAIcKABXfhRfAZSEjQQKiADX+gmYaiO81iSlXiSIDmBFiaHeKYCIFVELuACJuACjvVmxDBp14aQOilxspAIlkAHdDAHQkCX37didCBx12gKOflvUpiAmDYMdGAETHBldeZnfmZM8TiSWdmDHhmMKImDjZl7O7iIZhiZ2rRac2KI5ahLDYWIpXJUZfl6R6BYYuAIr4Bt23BqneAGblCXO+AGO3CXQnCbQgAEQHCbuokAQDAHeIkIrJAMXeZsBMd5A0cPo3Zj3XVrtvac0OljDlSVuuY6xucm/8EUtiVXPzWMvIQCnPkQy/8nA4eIZ0EgA+iJnkEQBFOJnmVZQdZ1BqDwDUH5fba5A2DgBmmgnzMAm3QZm7C5A3RJBztgl74JnHTQk235dgNpadvwDX5wBc0JXkqlhNGJWrORAiWXePZUEHS1neVlb9LyH+HpmSZAnsynAusZBETgAkTwojDaomaZA0GgXEhgB6CQDFPQAHiACHiwn2nABkE6pEPqBUGKBz+KBUEaoG5gm26QCKwwDNkQkdswDyWYaXL3Da8AA+M3Z9AJa7DWpSI2bmQqbvlVXRLolchHENqZUrcFZBsKT+BpPSaKohMkA0dwBEqgBXzap36qBUogAy36AxtQA2rgCL0AA0KACGz/8KNp4KhEKqSROqlA+qj+iZfD8A3ZwIAkCJgt+A3FgAiwxlzptlwbIAEZIAGqiqqr2qqoeqZVUF1eSJ3SEoYiehS15abcKVoflgIyEFsuSgRbgAZtoAfGaqyHkKx6gAZiIAZP4KIb8AOCYAhToAip0AdY4KhKKqlDKqTe+q3fGqlgAAb/iQiuYAp9kAlRSpyidndcpgbitwLyugISQK8r8ALz6gD6uq/6aq8OMK8rgGPkxnrhWIgmIBbslp17JpYc5ZX3kwPvKUG5VBAucARasAV6kKzJyggcSwmcwAiHgAbMegQu8AM/UAZqoAnPgA+pwAbbOqngGrPh2q1BugYF/0qXubmbe9mTw0Cc25AMkpAF9KqqKxAD9PoCSIuvL+AAS7u0/OoAEvC09YpfVLsBSvF6FZOwIGZ43slhPBKxFER4T0AGXVCsjEAJZ+uxnLC2pUAJh1AIcuCsVkADLVAGomAO8VALfYADYECklAqzMuutfSuk47oG+RmbQLCXT4oIjjAMkRAIVMADTMAESCuvlIu0TKuvUbuqqXqqqgq1/AqwRbsCzNVjE2qwKcCRkBleIGWOXYsXJTqeYYtLEjSsbUAGfNCxaru2vPuxi3AHzWoF8poK7oAPxNAHRTC4fwu4geutP8qtQ9qkvOmbdNADUyAFTUAF2vsCcHCvTMADlf+LrxMwtNKVAfglXfS6rxTwtEP7qqY7oeQFp0NEV50ZYRlUVJNVVfUWtkLxVnPambI7uxNUCHdQwIWwu2xbCpygwJxACYVQCIQgBjogr5pQvMQQCHy7vH7brc3bwdy6AzZwAAAAATvQAarHAiictPNar9IlqyORYMolXasKuvqqtPgqr3A2Z7UmnYqTWEE2VIDEeyKlbiSQT4tpKv5LlWAjArELQeTptgR8CLxbClSswFbcwIvwtnFgBVewAppgDvhQC5lQBDuwwWbMwTPrwd86rmAgBAwABDMwAx9wASxQARdwAUl7w1c2quVWsDbBXda1ATFgAUZbr//KtPcKsBL/EANo6nHiNWT6dFYedUKg9B+0aMRHbB5NfKICjEsqUAqXsAiL4LFVXMpXTAmX8MByoAM3BgepQAy/EAhFkAYvG72VisZq3MFQkAZtvANxPAHjW6+uWrrcVX6QpS2u51rn+7mTO7nhW7TgdrqOBl4U2qZPBWj6olZ55kCu+7oatckE8avavAoNjMqmTMULrMCfgMqFcAirvAItAAfW2rJQoLy2vKS37MGDK7NMILg7IKAdYATjG8z1WrQSQGfQybo5UBQqQRiBrFz1+gJU4MxMIK8sTG4XmtFEnE9sISo/jFtbh53gCRSbjKKrsAqtQMWrcM4MrMCMsAgQLMEtMAFD/wAHnRAILnvGsAmbbbwGayAEPr0GdAAGa+AGhusGhcvG48oG+yypQrADOHABQ1ABUDt+PIZfGs263Ay2FLQqJaBc8soCSSvVLyDWONylPAamGVCm4yZdMbDWguzWZ9p3qGuIE3uOGnk7ZNTJs7tWvzqVfr0Ks3DShF3F6bzAa8sIBCwHd/ADNWABVKAJOM0EYLDLQ5qfh5vZQE0HT4oHT7rTO70GNgDURL3UbKykuYkDOEABrE0BizxnOny6R/B6PDwnFGpUP7URy9UCLZDCdVzHL4ABLCCvnUtuG7DWMpyqqqrcrcrcqVq+G1DMCZYDC6bVKmCOM2jdJ5qeKjDYg/9NC4WNzmt7CR8LsoRwB4wdB0nQAisABUXAt0rdt0iKCObKCj66l8PACguXkzlZap2QCJMQm3spcXM5oHTwAkNg0ZtrrxGNtKoqYmBaBdp9otcdttdtJFBBAzogbiuAAWWNtGbNAhOgtIcMz/A80BIwAUw7BCy+BC2O4Hksry8wAbzdAuI2qgY74aVyiEEwAg70qy7QnukpA7Mw2LdwCyd92Jew5Jfw0iD7wA9MCHEg1jfAAWAA1WDQB1reCb/AC9ZQDuvQDtbgCsKQDV72oJjXZcnwC6zgCqxgCqygqT+Zk/qNB4lQuUVrtC1gAfaq4kzb3BkwZ9rtnmYpQUIVEhb/sKoz/uEjvuiJjK9MC8wOAMzArAESwAMswAMTbQSbTgV1bMcoHOn02gKoKl2s93oosFZKBZXm6NcXHpVGBdjb/ask8KtDLgMuUORGvtKl8AmcQN5NDtOH8NJoy7GXQAhJcAVDwAN9m+XmWgvlIA/Sjg/y0A7rIA95x66h9g04mQzCMAwn9rM1OXfKyYC9UAY8kF21NmfHrdxQO8NEi1+s91pPlwLPmV2wLWIyzrQvQNVLewEUAOOGiQUTjQWTy9oCIADvnuIYMK/h+wI8MAM88AGYDgMBzQMYzwIXYMfja+PWBdjXzdVChUK3juvnKeSALQO3UOQnXQoprcCXgMqp/8wITd6xvLsIhnAFTqAIgdAHkcYKqXDt0j70Q89l2l7uvWBqbi4M1cBlU+pv24h5sECIIWZd5KfDVcDc8D7px931+OVar8VjYsBccW2vmJu0/o7HLT4EUND2UDDRL8Da+4q+KzC+TZu0cUzxPNADPAADmJ7xmF4BIy6vHUeaZgnYQX7rdBrAti7kQ+4CJ6/rrfDyhh3zNM+xZ1vOlOC2i2AFZQALv6AJFdcJrGAN1P4ORL8Oqr8NUmqco2ZqEpcM65AN3vAN0waQ+4ANiEDXOXCa58laVnvcrhq1/LqqZDq6+dqvDA7oyi3peewEzqzC8iqm5cuqq0qvGlD39zoBIv/OAhqAwnWMAROw1rctlrPuniePniAvAyOg/rZe8pD/q7rQCrMw+S5v2DK/+Wir//oPEIwuydGkq5mrPn068VonD588iBAbrlv3Ldm3evQwfhuWCBIdS6zmZRv2jd5JlPv2hUO0gUaOHCjEqJBBU0bNEyA26NyQIYMFCRIcOBAa1OgKCSuQDnVAoakDpTGC+sywYYOOGBmUsljxYgWVF2CHvCCrNCmNKmhpoN1QJUYMCys0TKD7woHdFxowsMBQgceEFz5B5FBxQsVhFSJM2Lx500WQmo1p2mTcWAbkxrNaaV7VqtRnTqEpMaJU2nRpRowOLSJkKJc5a53c8HIYUWL/RIrbsn0zSa8ex0SmTAVPNs/bN5XJk68DhERNjpc5jlimPsLF9etZJWSQsCFoV6ZQxRfdnoHG4BwjQIhQfyLHYKsbsnJHuuIu2RcsnKiFmcPyWhp6Ko8q7rgzKiirUEDMhJsOY5A6CCOUkDpdOmullVU+Aw210TpM7cNDDiGkklDMeYeXToh5SJ525FnnnXbaoagh3Y4ziTdZEhmmnGSEGWYYb+hh5x7lVNpmGDvSyuEJ6Q6LkIjrgriuirSotBIvpaCqbwWg3qqiv/RGYI9BF2AaAUC3YlBKKfzyY6EqtGCSockl19KhLZfUElCqAncirLIJI1QhCMwCtWwWRDvT/7AU0UhzNLUQQ+TjkDvu0ASTctyxhpdqWmQRohY9nbGcYS6qZ55vEkmkmnLAEUaZZDIaUjnf6hkGlESSSGJJQwVVwYTBQOiuuwR3Qk8FwsZUkEFmSWgvBWjfA2HangyE6oIKhuCBSyqj60/KZQk9AkwVygQz2V4FTTdCWhDFsBTPROtwNEgPKYQPfPVYRIw4RDHHxE2tCVVGisopOLdkfuTtG2USESYZU1jpJZt66pk1uZMwSgYQNZL4gbB1Jft1zhy6/dJbdB2saeSRTSDBhBNgXtbM96pK6toKcl6hBZ8SRE9M7KQTmoggiDCaCCblDNkyQJem5WlENeSE3kglPf8k3zv00AMNMTQhpJyH2iHGGlDXsYaYaqohJhtrsjG4x2S2mSdh4SL2MZshT1IuI96g2cYQNWj4YdxBISs0UAfPPRdZxlX+1cFmF2NZ8vfeC9CnoDCYAAPNJ5gqA+j6i5LQJqW8yXBCL1uauqZ7fbrdWTJk9BJGCslaaz3y1aNSrcUQo4pazIkHonI8ZdGas62pxppyytlmnWx2kx5i4YRxpSSU6KGVt1JfEQQJl0BevcEGFVdh2caVhXx9xyVHtr+0uKSLc7qMMs/b0Us//bLDQ259fGC8LnagqR2lbpc73WmNa/yCxb+MZxsZveNF6yDYi8oRvYQJIxGsSEaPhEH/MYsRSSXs4M02EgGIMSQhBtFp3/8klCwzjUBBMERfCxEzuRs6LghmsoqBJEAXz3lOAm/5WITEdTpCpW58LnQdMG7xNNnRroD5utrVEvg7SegiHiaCUUQeGCMXfcpFbSMJK4bBql8kQhm7CWFyvNELOO4ABjBQykucNL79vS997LNhDhn0uBxSpz9WAYoGflg/ovjkBz8Qwf6UeARIQvJJqevfEiWEjCdCMUOcWEQh7FW1SOmODE8QQyiiMbx3eBGCFZRRiybSNmIkg1XZ+AUrXJGNdcyjYiexWCLo0AM6zGAIUImBknJgOkcWKko3EZrinDmzyC2oJpLDjg6TycwA//UQcxIASlU2kIMiiuuY0onkdK5JSTxCCFDIcKImS0E723kSlKrBVxuiIAYt6OKUEPRijAqGvOU1z2DlsEbBssGLX1QjeuvYhjccahJv+JIOQojADdbUrf4QTZw7HJczY3IulBEGO5W8I+JYVskcEGEt2rQAUMrjMzCNq5zlFNdM8QgodBIqgFBbRYZo18lPqiY1+ULDFkjJiGi4o4u24Wc7CKo8qCLvRS4yW0BntI5kuEKWyeDFcBogBA8MQaxlUcoV3GIltKYpTV4q5luuoKYqrACuVdCB4J4wOKLdtDE5TWLqqBUfzGnlLcVMy+BqCskgKGGmiL0mEs/Z1yCYs/+vwNhp7DL0CdWE6EOQwldRRykGTkSDHFtkKlNh5NRWHiyVq51IqArGikQgImKIoMMOdnCDsYyFLExJiv2G+J3tHOgovS3KUF66lieMDp3p5F85sUMtam1TiNtxiQsWC0nF0jSySIQsJft6BMhel50CvOwlaCdFSGWtUmQgww8IMQtsjHZ4EJlvaUF12tWu8oERqQYYEIAHROQhAgfgABRwK9Yh3IADC6YABdqU2xcMgQltinCFX3CDC3NAAQQQgIO9srMqPEHEeI0k/wxn4sNKkn9EI1oOxLAkcF7nB/ERUIGouwEUWPe6R8gueE9smSOiGLIy2PERKMvTWcwOvSD/uoPtFPiE94o2Hiuyb5VjNLBPXTmVEcFHOfBgAxzcAAc44EARlnBmBCcYwxSmMBMmDJY2k4UDFOAAARy8gitcwS4OWKFdjXZEjh7zxDXVQo8jSbQnQHJJIibCD4y2yB5Wqyd+4nGldxxk6nyXu92N7GKPnCjPfCI0jQLRvbTGBzEYYhHEwEaVXQ1GFnkqVKB6ID6I0YcdgCHMRsCCEcycZjUf2M3DJjax2TDsXyv4Bn2AQyc08YuzuYINFGDCzlrQAi+FmAZMevEPxECDb/vOd1rwHZPuupa0tlUHOrCCFbxdhReXbKWDUUKho6BYQ8/UusvcK/+EHOQd7xR2lwXN/9Q8VLVJkcEOhgjFNLbsatuYraAShAaoTLvUdrgCD2DgtYHN7GuxnvkGI49wsU1+Ziig3My9LkIfNJGKWvyCGMQY3jRSEYg9G3cFGehzyVy8lt/97iUnk3c2fUjcoLSU51UCEIBcrIVCEwHf+WZsElUX3hR/97pKEHjs3sUoRhl8s6C0QxxM+fBPUdm0zWhGLYjRjIqLUZWesgYi2GBmjvvaCEv4ON9xK+yTE1vleg9zHmphjZjHPBU0f0gtjo1gD3/YrH6oglnznOeyXmEFlV8TmyIc+Qu0yQEXWMEElHLtYnqblOIWw5+vi7ogczqJUj8ComtfaSIcoV08lR1oVv8hr7FHquyi2GeW0V7adkCjHM0oqPCOv9RqBAIM09c7x/mOcjWnOfDDxr7eb2AETVjjGbWoxTPM0fZfpBIfzXg8gvHT+TV5RTxd6Xxv7dOV0LdpAhe4SwXIApjSEyILqArzEDF8OgIxmCmNij3Zi6wUo71Dy67X6ane4wTQYBTUqJcqIgQ5kARkcIdwKIdnWAdo2K/S2rJwMBF5cL6mYgVd+76867i+yz4EO7mUu0EcLIIFwAJNMD+3E55/+YVUsAZ3wIdn6IORKwIsGIIbZAIFWzAojELdYjP8CLlfC7lh4wEtZAEtfAEeqIDw8BwqYT0xMLeiOUM0TENAsz3aUwL/xWpDxeK9RbHAUctAzrKXO5ADOaiEVpiGaTgbYiieKTs+iJM7i6uFPrAB6svBJvQ4LLTBRoQCKki5vevBZ5g5c3gIfMCHmHuGImyGPhi2Xjs2M0vCBUvCkaOAG6A2KiQLJlw5NCM2LeQBbeEBLvw/3pIrKokDF3OxIEhASMq9y1jAJKIp25s6N8S3e4sdyyq4sEMNUMIdNLgD9rICOQiFXBibiStEpoIHfvIiaQODG7C+vItEBXtEwYvEHMSCFCGGWuCFTByeh0iFVJgyTty+YjswVHxCYqswfEzHWJwwNvO/CWCBFtDFXQy6OAi6RVokJvmBu4pIRku0RENGN+Sx/3bpqVL4vVETu0jhHduhRvbilyrwA1HYRm5MSeLphOkTR+tTRycsMOwDSJTLQSWshWmoBU1QEXN4hnY4m19ohimzhkBgAjCgSWLTxyeEQtyasH9EyhsMCygIi/zIDzB0gPpBCp8gLDwxmaaDSLBktCh4gigoS6iLAi0oy3qjwAs8jdGQFD6Qxi1AA7rcAiUwqiowhGcgB7VTSaZ6oHLIg0U0sF7bOyZEs5HDx0jcO1/jwXjYlCHEh+Rru1poBndwh2fohKdEtr9bMAWAQnTcTHwMCyaYRCagRVp8gdC7C9a8i/szvfrgJi9JAiqxAnFjL3Lbgi1Iyy0wyznEwAyES/+tYS/iRAMyKEvfiYM4IIbR8suULIdMMMqXXEyxAjyoXLkiKAIy6wPLHD9NyMTzO5tnGB5r0AQnNMp/HLky80wFaE8OCE3RjESwYIOSK00vZIGq/L8XAAzTw8oADKLv4BIusYB1W73j1M2i6gKoS8uwq0N6iksFagO67AIy6AK71E3dLDTf8cB4cIf68stZs7h2YEn0lE/OVExK9Ljs5AAceINUeAZrSAVXyESfnAYTMQdiKEpxFM1gi0Jlq8/43L4Im0QiLTZadEogbZPQ8z//wxan2JkroE1287bbxCcymBqP7CwJRYMu4FIKjQL2AtMo6M3evCcx8ANSMAcPVUn/LQtRiOgy6es7mOQ7+EzHj3tJNlAIXqgFemyGd4DRfzGHmwODMuPR6kywkgPSIMXHSXwBUSxNNxvSkoOw1MQP/KxK/zMAAxiK+qEKt/A2iCTLEEEgaWyDLbXQ3cTQMV3V3oQ636kCTFDTD7Uyf6KId1iqiLi1kTvK7TtHFL2+UmSDPMiDUOyDPOiETnC7tyOGVOiEu+OAo+TVRZ3WaTVNSD1NgHzF7CyC2yqCC7iBb+2AG/AAcL0AsTJXwICKg8Q2FbKCONADU9uaU+XSokpV3YyCLihLtNQCNBhTLWgD5TS/vkS+CmIegzEea/gFRAADG2jKR01K64RKFYWDQOiE/1B0STZA1lTgBU0IRQ5oWIeNxDqlVpOz1tG0VpNFM+3b1iQUV3DNzhmYgQvogHMNvQlgitPjpgzQgaKiSzSQUFRN0C1A1Xw90N1cVbQkA3ELhTX9Rogwh2l4BmMIhVoIBVEQBVhwx1xQhU6gAmX7vplsxMRMT8JUUTaAgz64O3Fkgzw9Vji4AQWwgTI7SjNLuZEl2ZJd1CIVvATLTrBFxSj00TJTT2E71xeoAPx0sCvAJ3wiNy0gg8d93Hq1197MVzJdVaX1HeIjxOSzhmKoBVFIBU3wA9INBNIdXUWAAyZgyuzkPr4N2eskzCIYXLo9yjTog15rWBs4gM8cx/NsRP+8ZdRrHTZFLbaUbcJgEzO/XUoN80wNa0/3TEIECz0eqMqhWAEDJCVyI0sxKEujncuhvVwM1U32uoNUy4W9DIdw2CJjyIVQkARJUM602kUrWYEGC7awFcWxRV47FdsnlNsiAAMs6AMvSAMFOAAEjtu/w9vH28zj/VVIPV6/jcLPhML2TGAEzmAEZsqxGgJzvc8Go4AnQBolELESJkuyNNouQNWhHVMuJV8z/Z1KEIVmKIZdeIVU8ATS9QPljANDEANCCGJCAOLWiIMraLBvva2ADMj9jd26dcKRk1sFwAEoSAMs6LUD5t0FO88nDl4I3lunlFjqTDALbt4FgF4N5t3/A4Ze1tWWsajeS30BARAxOq5jFMZXfO3SFd7jCu1j9uoCMTgEKmkNQyi7OHDXH1hIMfDZuezSrdGDIa4CB+Awc10CJhiCIrhkS97kkRsCS/ZkTWYCKAjlTM5kUhazMQszVeaAr31FN9vkUB5lUB7lWB62WSa2W3YzLNBkKqhlYhtlYA7mUWZZDjjjLF5jDkBgADiAAFBj92TKTvZkad7kIaAApLlmE6bjos1jPf5SCv3mLahQMdCD5OzhOCg7ORADOdidNrgDRuYa84XkOFiBDvvWTl4CUJ7l98RnS/ZlNyvlYdbk5SUzuZXbBWtYMJhmW7ZkWh62YPZnN5Nlhi42/0lkgsdbAkfNZYd2s17u5WFWsDNO4wzOYt515sBl5fc8MIWO1BGeSKQRsbE8zj3m0gr15j6mSz3QgjtoZ7okgztYYS79aZz22a2pS3KG5Cq4Nidwgl7GrZRjAlh+z5V2s1ye6uUVs+ZtXgWDaFFe6K7+ZVyeaLDeaCgYZY/m6oYO5hW9YJFOYOhl45M+xZEDV9ziOyYoAmDGZmzWZjHd427+ZnAe6kU2TsJmZKEeakbWmnvBBOVUg0jwg0A4a1jmO6mebH+mZk9m2bn+TM5m5Rsw5U8W643eaI2O6LHO5V1ObbQmNr+dXQ3T4GY+gGUOgGV+66yOa8/+O7Eq5b1jAv87tuNRGqXArmmgXmEJNVXELirkRgM9MFXn3tKfhe5pBGQ5sIIqsANMMATNm0JNrmzLvmyFnmDObs/lnWqoPm9L3rvsfOjVHu1gTuhjY2/wrmYLfms2husyzmplO0XPxmRMBujs7F4BfwLi7OsuBdq/3uPnlu4tKGrmpssFh/Dn1pqdbrJ0tgNCkARMCIVKuAJPdtSY1GRQdt1cnuwiwGS4ve/Wbu+7BgMowGtRbmgW7+q9c3EX72paDrbsO/FV7HHchkI6+3Hcnuu/K+XsNAIcIE4lX/I26AJTNW6gBlqcdu4HF+oIb+7nZu4Fl1B2psZ0FoNF+ATGboGbJQs6M+//ftZofN7tIXhek5beEw/o7Jzmvcu1Uf7uGbfxlpy+cSzyIc/tTi7lAzvxJSjyNsftBThpIm9tv8WBuEwgPajQJjdVMthyLp9y5JbXLdfyTcfyNsAdU92dSslDRcYExr4CDCALJqAANPfqHJdm3HptAHhr/37xf77r1oVxI8i1HfC1OI/xYivtr97zcQSDuKVg9+xsINftiYYCT8atIoB2wkXpJ1R2aP7vaM/OMYPGe9npdqZ0S//0BW9uTOdyUN9yT3duLJdXaaRLMqwCC8BKO7sAHsDW1c5sKCSADftMVSxyRtf2z852M4PqcVyDNTCDNZiDhH+EhF8Dhn94h494/0g4eIY3A4sHAiAQaftGY7j+viLQu8yO9rlGcWV7AObVdyGHwgjQMIO7mtwJd3H/9HOP0FDHneb2dJvXGnFn95zPnZ4X9Ty0giRoClXsQlfnPgTLziB/ZgUQ+YAPeJEnM8B9ehwAAzbAAzeYBK2fhEfY+q5/hK//+knIBFTIBLPPBLA3g4zX+AtGYwyeYrDdZPX+d5f9O/UUcgUw5ubd3al50JeX+XX/eQi1+Tbgg8LP+Z3v+cEHdcXP+Z2OSzuIARboMBZY6ZVOb5F/3mT3bIEncjBTRIYtdjCYBDfo+lgIBmpgBmpYfW5ofdenBm6A/daX/XM4h3HIh3HgBlw4Bf9IUPu2xuDf/8xe//enZ1mRJ9dxZd4yTva3PgDTsKKXN/zCP/zGR3zB73nAJ9V6evTpX/xTs/kgvgINYHUtHItQrnf0VrPnDYAA0G8j8DWqvwEbUMSrv91M6ARWYIVf2P9xAIhq+gbqy0ewIEKDCg8OHDeOGa5TkA5QrEhRgcUDADIeULCAA0iQOG4UKXnjpAeUJ2+AvPGAZUgOChTInAlypgJGh3by0cOnzc+eeoYSFUpUT5ujSnsybcrH6dOoUoc+VUr0Dh9CdwxdWVHhBZMhS8TyCLukiJGzRWBitMnBxsiSYG7MtQHEjJlHllDJiuXQIbhz+cAtzJevH79+ihf/Kz7s2LBhe+i6dbtm65QZIBw1c9wIYKNFmzZEkkx5w/RplSvX3liA87XbnYeq0ja61GpTn1F1S+3NVDdvqLuXFiIkKY6TF8rLDmHOQyxaI2txuMYp0kYRMCZv2LixBsykTMGEMQNnfqBBggr7HWbs/n2/gunEUa58GRIQzfn35+9MEXRFbXXkEQcRhPTAgRzgwAGCDN4AG4QEAAfcU0DhRiFUwflW1Wwd9sTTbLlNtaEedxBCSBIavPAVD885J50RQ5QUU0g3CLEGjms8suMpqJgiDDXj5KOOOovxU6R7jimWGHxN8pMON9xcU9k1x0hkBiSQnDLJKXP0Z5FnFQGY/xEAOC3gmkwRfOTamjVBOFMAOBXyG4YWisjHbBjW5luHsuGJp4eB/ikoTz7NSUghhsRwwQuM8vDCEszBOIR01CmI4ElArOFGeKb8KIww1YCDnj5GIuZeqe2p2mSp8SlmTzrXyDqrZRIdM16owUyCH0f/+acRRQEcICyxww6LkbA4xbmsAnEq++edc855Z4g+eagHT4PKti233W4LaJ9+UljIIlZo4MBXLJRVFoxpmbTdSUUAkYmPyghmGEJFqpMYP/w22WR7ALMXK62zSiPNNfboY142zKCSGZm9kvkasKCFiexFHWksoLAgehuox9o+9THJJZus07cfHrIIiip+df8Bu9AZYQQURdTMWrxAxDLMeZAZpFiR/PjTr7//HpZYwIsp6Riss0ppsDTdKGzePNUEQwdnEk+8QM1YpMUBsGGLjVGwFQmrcQCyzektuNuibPLHOqH8Nslzy80I3nLLhvcikqSI7gstMsHDpGihJaMRJ4EBiTD6Br3vvkQTjVjRlJ/qb9FMsneqYU8WLOvBCBMJTnwLm/JIxL0qkEYgmriiieuB9MHSAlrbbhHcbu+d9050984t73kLPzzxeB9SPPGUMIKJIWVMcAELFzTHhHTRHR6jWuAJo5g/lB8p+eSSL3k5+Zjzm8/5/KDv+eehJ9wP1fOA88skWYudESKapEL/TCq8pPK/JjqRBzYUoSaps11OjPc2lOFJb8h7IAQjiDzlUaKCFhTe8RhxiUVgAkUTwMCKWtScSIGhZkxgQhHEAgYwBIN07uGX+MAnQxhKzh79siEO+WHDfqGvae1DWDpGF5956OMXmbDB7RjQiVrwghjWaAYU+ZeKAMouDTgYzUxuF6CcKC+DxjvE2iQoxuIpjxFlHB4FzWjBNbLxjJdY3iUwgZwJsKACjyLcEs4ChrOcMIVgYIMwsvGeGRKSkKf6l6nUxz5aIQyI6YAf/PRRDVY8gmxhGhMiamENaECjHZ18RjmaQQwm1iIVnRAgG3CwILL9yiaXqOArKfHGNy6i/xBqNCMa1/jKWeLyjRpUYxuD2UZgrpETw7wEMj+BiUXEQQMVAKEdeVCSmWVnLCUxAx7G4UL2KNJ76LOcIft1yPJxDmmK9KHBroEwdARxMAuzminAgESt4YEXzQBlO8whj3e8wxzvKEc5QPlEJppygHN5ECtD8xZjspGXeGNoGmVpwVjqUpgWvWgxK2jMjW5UlodIZik+IQk1tKAC0WtRSdZSM+hkJxPabIwiFbk+8HlPhjXNoT1wmEMeoo9gjJSVOtKRjsGAYxzCiEUf1mADjJQpoTvoBDGesUlQmsMcAW3HM/KZVay2wxrWqIUrOhGIThAwoReByydCyomQfoITn/94KyfiKldO8HKXErWrRCnB0FhyVK4a1StgOarXucY1sHMtxVrbytbmXQAD6hoCzIqAwpqtcBLCOIcLz4eY9XGzkJ694Wd1iI6CuQ8d6hDHqOi3qRW+BTYVAQMv2oHVdawDn1ktB1ZxG9ByPNGJ/nNFWPOAhyuSTQE2gEspkqtc5a41rswtbEMn2lfCUre61rUuYqmb3OYqlxRcsWMFxEKp6BhhhZkQxkDUt9mYsje0M9yhe0f7OaCKQx0PycQjcASGuIxmqWQDQiCiyttmWCO3ub1tVq0hVWsQgxi8+AXsWHFK4crzuHDBgS5W0YpZtELDGm5FK5a7iudeorDGLPH/dVOsYu0itsXcXe52Q1qKVmDCD1eo46MiRT20rDAYAimITNXXufbKEL6ENHIhJTPfa/QCHeIQRzBQ4YY17AAHczlod+xyAE39ohy0BShA2xFmMXN1twsmxi9S8bpOBPCUfegDGBhwYVrMos529nCIlbuKVTSXsINdMWFbjFg+w3i7fD70WgWt6EInOsTMy4K61EW4mZUXDOOoxs/Qp2kextQemt4hqHUoatDu1LNKTuesTquMWEACR0Kw8kjiBYa3AMEGk3CFl8UMZlDi86q77SqDqwFWTUj4lGLtxJvhAhda3OIWdr6zh/e85+cCOsUuFvSLDc0JQhdaxN2WcSs+/2EISEt60kbYVCDRAxkeejofOXV3TuMt73fnVIfqsMe97z3qI48WYQXzhzqUsSUzXFg72WFCvHCwhrusIRO/sAaYI05m3YqZ114dJYSNPdZM5OHNVsSBEJot8pE7e8+zkPaImbtdFWf3sNlONMxLcWg9dzvl0045jNMaCkPAodyTBoMbQqUQHcKq6PJOR9GRrnShwkqoTg8i0m0YuSPbI53+7kWsJOIlG+w3O5IlSXZWiKNH9OFHv6gGxCOu26z2WqBerUXGMxEIjr+5D2moMg6AAQxmkxwYzV6Fs08+7W5bG+bcjXmhbb5tmktb5iiX9skL3QpSeBfSMJvZEsCwBv9QafMc9KkPZdAhem6gg/SmLz3quQH6bigDqEGsN2iJtsN09LtgTj4FHeaQGcXZDApQMLgqN5WJ4WfCFKw4ezXKgXbeSny3u714NUwp1j5kou5swLvI/U7yW2j/FoBv/OCX2+dAO9fl35Y5+kf8+PVDnv3T5sTkSVGJMvAAZkso7xomYQpmCOPz1OgGNURJlFyDlBSgrBhglAQgNVxD61GJOlzDvoQaqS2Sv8mKOCjDHEDCHODIDYyE74FBWMgFDtBBp3jKJKACKwjDLyBfNaCdgv2abQXUQGVcJ8CBx6XB3e3A9jVb9zUbndHZzeHcc62cojVXWimWnrnf453cs63/Qp05ock9IcopF4hNXiRcQf1NGsilwY8wgxfKgiwcgxiKoTSMIRkeQxmWITWs4f8FoJRUhmmxU1DdWzrckL6dGq0owzFo4BzMgRBgBxOUEGUVAY6YgY6YQizEAi4sIi4EQwqq4ApWw9k50cV5FcQJFDEI2wq6AisEAhvgIN714C3wncjx3Q8+HoyN37XFXPmllYitHxPa2Q/K4izQwvfZ4snZYviFGyy0QihEghPYnyrdyCOIhyLaAiogoyzYwjLawmU84zOewjMeAxuu4dMAFQSyE+3lGw6lQ2X4m+jJQpb04RzQgcEhnMF5hw3oiP4lYjDgQiz4iCMKQwquoD0K/5uwNRElMhgvwJ0/EhuyYQH27aDf/SAt8B0Uop/4IdYRHt61yRgVlsKzTeRBkhwp+uAo1uKd5SLOVWErwEIo+IETNAEPdABMCIEboAK9oIIlWEKWuKRLZolMzqRMniAiBgNOKkMFyopkiN682cM5AKA6KQM1SAMf0gEdrEFJINzvZYeVGWIxNiI1iuEixsI8QqI9/gLcreCD9WMmkpJWriCxyQ4Y7ABc1GJFzsIormWdVSQQNt5CttwltJViIR5EOiFajqJBXuTIAcMs+GX3aeQT6mJyvdUnhIIkIGYk+IEU1N8D4EAEaMqOzKTWQYIZ6B5eZGZm9uFL7gUqoMIpLP/j58iXZLxbPpwDOlCDHi5gl5CjG2gHGAwBU+7XfukIKuDkOxalNODCMdxkCtbj2f3C8f1PmrnCL/wWcKUCKwBkJ2QCHOyXDTQAWjKbWjIbneXlQQqeQroYXaoVdynWEVJhW1qn3jGbKGqf3pUn9/mgRsLlW2ECJkgCIRiCIaiBGpRBGcABFbiEDSAAECCAXdiFGQgBf+iHgW7ZfiClgrqBJdBBSzojGh7MAUZJN4zDOQhgUR7DIqKCZRriCp2j162QppxCI+ICNeDCwZghPOImbtpjKqzgi6rZFL0Oc2pcHmSCEUAmDkyns2XkRG6kELqVkNLlkDqXKybXhk3k3tH/QnmmZ5PqHQ/uHff9ZUYmZLh9wgZ1kCHYgX0mQRkgQRaQ5A1EAAP4p38W6H4gwJZRBGfox5kCgRAoqII+gpbYAiPyphgGAxsGAxreaURAwo18h9dJlozI0wr1wa3waZ+WIVXiJqjQIz0eX5pNqpoBF3C1mVhxnHP2ARSoUgTwpXXOIhPC5Xa1VYlhKaoKmit+Qogl6bPpHTL4XXrGKjLQaqwCw63WKmD66Ii9Z3zOZ33eJ5g6gQ/4QEkmwJkswH9mUUIpAAI867NyBLQCQQMIgRDsQI7oyI7syCSEh0rKYzCYAi5kAi58ZiZMwiNs4HesgZXFi9d9xySwwjvyJoqi/6G9Jioz/IUwjAMrSCqMxqjr6E+bzZ3sdFwf7GdKgKpeNuEUMhddnupcuhVEzhiSclhb+uCs6iquauzG5iotIAOTPtuMKVN82gF9xsGXZoETYEAFfIABdECBnMmz/ueWqWnWqClFqGm0VoTO+mcDoGmBZsZlZskjnOBnHi0q5Je63ggOyEVKFcE6Fh9O0usY7mYZBsM4DIRAGBWorCDcxagrTJGawc6EbeqbUQEPnIaUbh+zQWHDrhwy0dVcGiZE5pmdbZgufCys6qqt1qrfdmytLgMwCK4uACaHhVt8SoIhxEEc+EESZIHKssAHdAAEeMADJEABEAC0RqvFHMDObv8uz14SAngGznpuRuyHhX3oJ/7Rh34ou9KmKnXgcWlKvL7jreCphtqCNGTtQbiTKaCgMLgOAAUs7JBtIASCDcKBfjoBE7DAEECpRerl+sWYWqGqYb6Vcs2CRFLkxzKp3saqMyCDMwBD+EaDM4xv+epq+C4DLejCLOgCiCmTJChuHBiC416BE0TPBUDA5fZvAQxAmT6rZ2zE6HquAB/w6CYw6VpE6easATNArR2XteqXflmrDfzhjVzYqy3IcZkBeLACPC6ihoaONHADQ5SK6ViC/i3nctJo8SqCIhyb8vaB8r6AE1ABC+wd9JZilZJqWiXWkGKvq/5o+2ZsrJrv+Sb/sRIrMTJEQxOPry4gg/u2gi58AilIQiXYrx/gZ1fUH+X2bwKEMQEQwAAEwGdoRAMbCwFjBOgqMM9K68wuQHTO8YJEQHQ2QAPM8VtYGB/31+wKgf6BJhjy5sEE4Dn0bj8gicPEgjCcUgAFEAxH8lgFwhVkwhUoLxzgL/6mJ18621uqX865FVxVoURuby3iKpPuLa0i8RK3chI3MTIQ7vtWsS/Gp/2i7BVcwQvo7/4aABgnAAEUAAMIyxk7sJgYMEYsAAKUaQC3sTMnsw3IsZzlcQS08UzIsQL8JxBkM0ZEczQb4qZkiTTaAhoa8mlCBpGog3kMgzIkAzg0GC+oQilt/4ImwHAn/EEMHy/yXvIVUMEm3+raNlsThtuVXm9IzWUVvu8s9K3fwvIyiK8TRwMru3ISmy+u4ir76gL8wgImIKYWl4ETrGwFdMBIGwD/+nIYp3Qwl/FnmLFLB0CcAMDZJOtx+awzM7M2b9lMePNHcMCZXDNQz8Q2c4ay7rSFEaM4n8KtUEMwRMk5PDVUe54XGhUzJF9AFcMzGEMu7IIoiEIkaMIW+4GNacIV2BgXXzT3VaSPam+IXa9bGyaIKTT3qfJEm69dUzReRzQtLINGf+RhKq4f3GdIs2wFvKwvozRKpzQwwzRjwzQCvPQZK4CcabC1/mwDIAAe4zG1gm6tSf9zNNdEdQQ1K9EsNxuXsq7jGmhJj4ShnrIhNyggMyiDbCtDeQgDOHjVNOQ2NBiDL+QCLMBCLYTC/6SCKKSCIWjCLfvBrJris1Xh9WKCMkV3dOPtLAgurka0RDtDdku0XWuDM2gDeIc3eH+3d2t3REtx+/q1Rwd2GWSBDxB2BxiAB1huAjzALwNzGAsAMI8xfxNAszirs9baBE8ZjvjhgMIpghNomtoABCsrNivL7ZA2Ahi1pqQ2JDzCKVgli74jTt7KMShDMNC2FypDl3VSbi+DMfA1X2sDX/tiYs7vLQM0yB7kLNKCYZICdOc4KUT3jlPxX9ICdme3edu1RGtDNHj/N5KHN3kvuUTrKl/DLyms933WwHtXQGGbtH1brn3bdwJQQALotwFcAMxE2gVQwBhfs7IywI24AR5UX7dyihvEuRvQwZzvgLVSa37IGYBmc3V0RJhoEZ/XmiEO7SN85ikcukxKIxiG4WyPOCtUAzTc0zMsg4rrAl/ngi6EgqZrOhbT50WncnbWYhXuuBW/lUfGtftqNDAE+ZB3NzYcOTaIt6zPupFL9ENrtC5Q3hXPHxLUALFaeQVcQHx3wEtsuQdcQBi/rLD7gBNcQRYggbOXlAB4+U3YAMGNXbeypCXoxbbSgQbyYWagKYBqzAGpDk4sVQeDc45wJtF+Ziz0BYgz/8MFgvilKVhWQ4MvLEO+X3ou5EIodDSMx8Hf5u11TnG47TipJ7SoKzSTcrd5a/d3kzetT/ysa3csP3n8hUIWgymVE3ZhF7YHdMB8p0QHzECksQCzQy5+loF92hgGlDkHJICAByqO+Ii2tyTO02nukeN+rOlQ44Sv/LnWBDjqauZmbqu7o0IizjZOgoorVEMxNIMx8Ha+77tG+zZIxmcWx/Jet69CUzGIIfwn9CKI4bpG7/XFc3eRTzw5tL3bvz05wIM2kEPFRwNfSzEsUB5iVoIagOl71xGwi7mYd4Cwk/QHZMEZnEEZ/IFYC4LjG4IgVAIWq8EVYAC1X5GFGeIkaP/4GuopLlyGREjEt+tegTrrxhTwmPjKgJxuUc/uXVQ4HewIvXiKVWq4ns6jPBNDMRgDvkPDNDwD8OsCMWDC8O/9xrYv8sPvqCN8FeK61z/0Qzdxdhv5rMO99cu9Nsg93Yu3dld6lO+9/VI5lQM7+ZN0B3xAyiN+GfhBIwhCJFRCKOi9rpMCLEgCEryAAIzGH8pTZgDEo0zCxo3jZpBaMFy2Tp165JDOIzpu3IBxYwMIAiALFBw4AMAjSI8jPwYwqQDBAQVADgBx+fKlGTNz5liahAqVKVOxggU71tMUK1epXu3y5QvatGVKdT3TlQtWKKmSgCGzSkuXrlZaW3X12ir/11ZdwHRFs4psGdpoa8NF0xZOW1xyc+nShUfu7ty85LTxjRvXWVZdUUORClVJDZIsNXxgwFABMuQPLHxUYOEkS+ZIlURJ9azLF1jRUEX94ZGAA4cbq23YMINqnDBu6GZzk0ZNGq6FtlCdsuTbUvA1ZjKSNP4RuUiPCpgzV5nyuEcgQtZQnDQpE05ZuHiaEsbqVypeo2oVS/ps2rNlz3IR+1RLUipkVXXNytqVaytYogXrmp92rWicceuvAvmCRxsE71rQLrwcnKvAAZfJijBJQjFEkDKy0MAJDRqDzAADKjDAB8z+KOMPP/zoDJYWYYGqv/6i0UUUP6h4IDXWXEMl/xhh0KGNNm64ocY2aY7BRRacggvuEeIyQgkB6KLzKIADqnQOpZE6Kk66loCwobpHJrEEJ1xQiUUnoUDZZBNXisHGnGmwSe+p9jCRiqz+RBtNLMGW+TOaZdbSBpu/6qpLwQQdZJDRB+EiNNAJYTHssEgyRKKGxXxgrDEMfKAsizIa2YwzUWDxJcYJJ0TrT0CXySUVOIp4QEeZHvHxnNl+DHJIanw95siGIGnypQaAYOBYGxCwoTnmEOgIS5VQ6mg56LiUzgYhLJpEzOsy0cmUHtEUhpdyoGkHG2yWMSaXUDAhRipUnwIrrLD467PVQAc1UK9+F/13wUb3igubaNQdjP/SSizVUNNMF8tMMQ3L8GMzVVzUpVVXrVprQGec0eZjeKIRJQ8jVGuNODOCIXLXH7nppptzuhln5oTMPEUmIXTemefWWmPABgaEfrY5lUhiqSUpR2IpW+rWmOMRMRP5didwWRGmlmamYSoqYjCpJRT9XGwRKhhzeUoXYzDOuFC59FrQHbzgmTvgud25W26A+YIr3T99mVSqSjDUMNPCs0CijMQn9kMQzshOO0DAQI6wQLngwUYVI1bjAAeXzMikx5h3PUecc0xHp6Bx0KHGFkhkmmkOIeZYYw3qdn6pJWNTinLK3kmyAQefbdjBDTwSQQVJWWJB5TpXeCEGGmJqmZ7/FFgwGRt7/cKSV21XC3bLrrjphkd8ut0x/3y79Z6L71aheiXwSPxgOFPFIl5ckMZZRBVQtwisHIBug8c0FLGEInAOI2ZwQyyYUbp0pEMcESyd6biRq9ycwnUymQMdOOgGDn6wdjtrAAKEoBEG8I4k0PKdR57ls51xsCENQYUlEmEJRCBCE6kgzy52QYpaWK8SnoHf2HJxtlx0708FS1df+jW+9KFvfOTDx92cKL699W0aoAGcKCpRifkdDmKJ+4MaKNbFIL5obQb7XwADqKC5EEMRXsBB8HBAHYEEYxymM13pJjikYNiCIRiEBCSCwy1LiClqEqHJHKbTSGMVJ0q7/0Na76S0rNbwLGqFPGTUsGOKTvCiFsRoUfXyt5lQjKIwLjpK2v40jWi4slBwmRtenki+WtJtirl0xxShmJf2TUNtLYrfF8EoRjI2Loih4F+rCsZGZzJRL9gghiaMQMfa0eQUwtAjH0nHDF9R4xjSkIYtcoMmU3wLnd8ak0Q4GDsh6A5ZGjkA7yK5wpFYUgjZetocBhk1N3QrE5lARCc2wYtQTIoUZxBEJEgFilC8ghQwUptSlmIwuCzKfFGEBz5wuVGO6rKKsyRHONT1p6cAbhQKy1CoxIi/Lp7yFUdcipyi8agAHihBe9nLXKaRC2oyAAdQMALt1uAdYShDHBAk3f8Ez2GPpuYjH3kU0lSJhJuFCHKQkFikk2CiEa/aM54beafOZreGiPwzagHFxbc68QtVvCIqWVDoQisBijOeyhfGaKUSL0oOvI3vo3MD6UZ3eb7BUpF87FMXMH0BlaikVH7zQ5Ea8se4zbAIFnpdRttuGpdENdFftpQmNSOAgxusAQx0CKgpkNrUdNgDqvqQrWzzoY986DFXBhmSbXYjrFPQQas0IY4QpiPPevruhMhaQEY8ZwaiRg0PAkHF1UzRh0xE4hXw84FcBTGqulaiRatUSrqwcdHEkq+jHPUoPj7aXo9uFIp445tS1AYVw3AxEoZQEeOQidmjLGWzcQkHXZj/2JcEHbhutkzw+czRDE3kAQwcQC1xamKLpNpDHefIcD843I/aQhW3P8oVVcUJyEAKcpGMfIlXlXYcegqNAfm8pHNRm0iB4IIVrMhEHwYBilfUwgfbnetmQFG9/27WYNBELHrTK1j2sve9Hy2s3ajIvqUYo77CrJSlSsmZg56te+OF5qHs0peAyc1uGr2LOdhMjE7cAGUu4ac4+JEP2GIYqnnOc1NDrNup3kYayjiGLGQRnEEucsUsgWSLo4SSBSCAAQtYQNC+ZAbX0A6tAQ1oJzqxB0V4QhUlMhFDN5PdUwU4lm+72xOf7N5Wu7ewTzxflUlK3yzf14yRGJUpa3FE/2MkRU5v0VteEISXnPZSo3eLhzviEQ9zWKMPYHANEMxgCVswgx/ZVoc68rHtfNQZqk51KjrO0bIgXQPd1xDnoBkCCaxq1UnJffTunkW0ZjVLeJesMRsE0gdOa0IRgfh0kEuUBUAsNBL7UwpJ+1q+NAPW1a9+b6zTFzdypGsa0FjGURwrlVFwUWFdFMUPsbzXMQsstLOM4pLR1+xlx6MWnWDDcGoii3NkG+fcBje3w/3acv+83EJK9zWUcQ1w4iKGwgoucRsANKFN69GSvrekmbWS5WIETGB4BL8zAYZMbCIVmxhEIBrBA4KH4Qx+GJUo3ipTAQsbb6vG5avp/uTCHv921rUG5rpOKkxViEIUnvAE4H94xGckpbzhGHC/4mbFM0O84g+Hx8vJ4fJyWEPHa3iEKZihD5xrmx88D7dTz+HzB4q4G9wYerqNBMhTBDKrtTMW0IJW+xNGUgEc0X3uFRBprNsADMHfeh8CoQlXOGLsgZhMD4LshLRf9qDG2BqhFu/XWe/SyXWvu2HZO2XyKR4bwMZyY4UZlb9zxmK9NoZ65JT4ukQevg9Xr/xXPjeXM5vN7aiGjk3xi3OA49vqDOe6Tc/sQdySSoIgKB26Ad1UzwHV7RhMjCGiBhJS651sDwNNKNI4gvcebSOiRN+0jg38rROQbxDyIA8+gAdYgPn/hEztIgHUMmtr0sUcBmzZrq+9tE8HW23K3MEc5iTjnmH8oOKHVCEUAE8V1G/92i/xqi/u4G/+Mir+Vs7l4kEervAd2uHyqoELx0EfAPDbvk0dsq3bxhCq1AHD0iHD1PC1XiuCGpDEqEE3bmaQqqN2fgYIIqD2nuXRlIUPoSSSmCtbcCD4wMDfjI/T8qAPPoARWTDIwqAO1K4SYlD6niFdwsEcrA/inmy9dtDueCmx9A4asAzLiogIa+HHXmQJmVDxFo/Y7oLlmCwKnUiw6EYemA0LtbAcuLAaykEfqsG2whD0eA4NxUEdjJF0jtEAuc0eTm+qnvHodMMhIKE6gu8C/4MGaFqoA+sNEBtNELMl+PJgoAIOEVCwA87xA3qA+aQA7f6gEQYvCdcPPX7QHJZt8nbJE/Ox4pgNE7fm8EiRXYrBFHNhF3Lh8ObkEhWv8jRRE+tvCpOtFpsNH65QHtpBHtZhF39xtmZLzwYw9EKvGyJIDb0tHexs9JpxV6AxN+hwWB5B84gL65xunpgFCLoxkuotECeNEPGgD3oSEfpAET3gHDuAB9KxCZxACurAHQUvCYvh8Lam2eQOH/NxB6kobn4QGg5PCAESywSSXQ6SvBRyIXuQydJnFnHJLNESHiiyIi0SI3sRGH2RI4Mx5+wh9OxBgtRBDcFBL0XPzlwrHf92JfV85Y964xGGRfNQCyOcTniWxSZvMhBBsDUIkQ0qsyeB0gMy8xxngAdgoAmaAA4EThM8IRWa8vDY7OUmjyo9sQfjQRS3kiuNoRhkU6+W6P0UTCqhUM3iLy3xIR4mkiLXQR+yARy+cCNpKx88DOfsshiJbtvUgcMyjB/OITlNshkDE0iE5Oh4A6sSCSNgAllWAgGWC0rmyTxxT/cWAGjmyAjSwD1HsA8ewAPkUyg7gDObIAxC8w80Aeympxmegc3qUTWncjXpTioxEQi1cv0WdCtnE/GETdWu7/qk8Cxrkf58cyLbYR3moRrAARyywTj1oR9ENBih6i7V0B6KTi///SE680Ec+gG2wO2BsJNXfuWqBOkw1wASMIK4rk4jFEBZ/JCe5gn3/nDSgIoQ0wAM0oAnceABnjQzPWAG7vMN3kA0N0EViIEYTlNAVbNAt0/ulo2kziMroSErf61BpY+86GLW6E/NolDioGy95IG94mEdNrRDibM4Z2tEbcvDRu+BGFAd/EENybAfvK3O7gwlXSZIpEEhWHJYqJFYumojMkJZWAI6KmmepoX3OMAGOMcIjAAMQvVJS5U+p9QzqzQQBiGH/BNAUZPZvPRLeZDZzkfx4gTYzvQpR1EI0eMS56J80vJNoyhO5y9OMRIcqoE4v3BE+3REOxIv9TKC+jLb/zrMRf/UAF2rZbTTSG40q6KGqL7kJTBCI5YLhaADJKQkADiVIxhAD+doB+bIVEt1PnmgCaggDLwADvJAEXQolP5zHVBTIrMPygpWB2v1HhVvaxbWQXMVy54BLJ2QyWRxN+H0YOPhHSoSTz+0H7LBH7LBWUW0OsOtqSKoGwp1DKv1I78NL/nBAAOzG2gD3datN94tImiHq5jLJeKpPEMiOaykIzhQPdc1AoqWAxogAubVVGcABqjAC/I1DwYhFVLhX/8zQOOBYCOOVnmwTuOmH830GYphF5xyYf9xCd1P1SxUo+avIevPr8iBzcpBbrnwQ8HhG8ChH/CWT0U23PJBAf+n9YH6oVo9THBZVhya0QBldmaBBemE5TCHZYNop5ESjbmMCzmQIyXYNfeIlnMfbT5N1UlxQEp7wAueFg6kVjz+FRrWYRoy1h7njhPl9OFejh9/sBiKgRiKARVHQRXGNlfFlod4CBrKyy7UJy8sjswGDPxIirzIKz2aoRmqwRWSIU87tsOatVlL1KkgKILs4WTR0Aw/D+ceCC/FAWZmdt1O7HEP82bpIHaG6yWQRX5R6GcbTWgVYF05AgBuD9I+10lN1QN2YAaawHQDAeySkBig91xq8BazNsqmKG7iofJcjs3SAxp4dxRAARQAThNAoTwOT2xfIQlVoSmngXlbEfz/yqt5gdCCG/R2X/iFtVRLeaGtssGGRdRu9TZ7sdV8QzIdbs4MA5DbBDfb0jCC0GHopAECXQ+D3k3z3Hc4hMAMiIuKvcoPMRcy25X3TAIAcg/SvngGMhN0oZRp38AL8iAQprYWQIkYrGGB61ETD9Y342Qa6DH8oKEZamFqNwHgAmEP/ngTRq4oRBgVk7AWdqEoZlM2i8EXgvfHgheSI/mQeYgYdqGSd2F6aiEZeEEYhkFZixM6r7fDStTOGFAk+7bOdG450RAlr4EBIRBYIpCJ++nQomaDhGs6priRyPX2TsjRIE2LOTB/pyVKTggGYCCMo1Q+H2BK8fUNwsCAS3N6/xLYjdtB8RzYYK/yGbTUKfEYeolhFFIh4PZgDMr5mQcBS9/qrX4su1ARFUVYhEVhFDJYh3iXhO/5nrPrx6YHkit5jXkBoH+Bevc0OjtMh0evhy8sDIXx81j5gcx36MJJlk/M3b4Vcm92dqZ4intmMYVmAZruoz1a6raY974Y0rygCWAgVMNYdAXYM58WjRWhoEaBjf9zgV+3E3mQpHR3egy5p/n4j8NgCp62nMfAETJ4ndtZn7NLFUbBE9iETWDQE0ABqTGYhJcakTE5lHhoegK6QztUH6AzlA/VWsPNZBPQJE0U3BLVzvASZtXNSICFiRvCEiyafR8Bamhin2anrP+yBRvVM9KaLgLcFbCHtgMlLQAYIAAQYA/MOKWxYEqldAaogICfORD2U5r/9RnWAU7a1ngHzB1ICpNFART89RXCuRHGbg+4YApaewzyYA+OGhTW+ZCLIqvneU0awRF0m00Ej6qr+q0iOXgr2Z/XmBc/GW/5Ejr5QXA9TETxEma6YXthS89gNADt8johGpaBRRbm2rfs2iVtLLz/CQxox68D2+n0sGgjoLDvF7FNIgDGLg/gAKWpAJmZ9jNhOhCKr6BASXXZrCHxhn2Ud04ymE0aYROoehNSexBWmwukQAq4YAz2YBAUQbb1mYf0Gal1bbc7HAap+rdHAcODt5Fxd4b/iYEXeSFZPVS2xnpkR7aHFRCCMkzPkhO7TbL0fiT1Wg+QZOG7l4QOLOGf6MCsxJuTHiG62KAiwABecSBeA3gHohwHBjvSRLq94buP80AKULppe4CyKxuNA6ETOpimq/YZrPnh3rYVMQ4aXkEUFtwRyHwTHEER/qCcW3sKwmAPlBIQHGGqMVzDNRjEPVzwGArEeTe7eOgoFp2nA/oXeIELk6E4J/1QR/ZP7SyhS9J8D5cAoUo5nSrDEtdlbEOuA6muCYmQgqOd9trGbuI6riO6gm+O4DXKV3oGdiACjlbSrHxosTzL6bu+CRilwyDMBU6NecGSnbIJFXLNybSRs2sU/xyhz/tc2gdhEMbAtSW8DupgEAABEBLcx6D9FUBcgyMBFEjN3NO93MMdkhsZkXkhFVxBE4RCGH7BQ+/9xWOrAJF4Zq9BHIhODamzxm9L3KhzxHCDx4GDkDbogzgohIgqTLglE7plEvAgDSqC1gXYCGAAsuO1aGEMxiRN5OGbTbLcsUvXC7ac2Pdgv8fcXzXbTGNe5qHhdhu5kTMY+bjgj8l5ELYd25tgCiT8DLgdELrdETQ4uwRd0M393JVe3Zk+3F/BFwY56dmE067GFexd0ie9zvL2T0s0HdBtoo/B3zds4Elv3IIE4WWZrg8txd5XCDpoItAqkbiFW/AADygCDP9mIA1mIFRVGgtgANfXW+RDPtIGAL5VIRU0QRPk24zD4JkjHwX3m1XFw7+1tBlu10xvN5KhHRQcQdrH4AyKmvTHQB2D/gy63dtX/+iVfumb3vWbHup9DBYQOek/PxI6ARFMARF6hBnGwUPPMDmZO5ShCgBJRxlcjyGOQRnAt9P1jHRCMvWGJK4XojcKyX11eTp0xg1ggEm9AO/dMw34jfwr8+LToEr3AI3fAAuaYLKnvGgXgMo9egMXAL5rQfH5OODyoEoB4k0YgW/g7AkUaFCnTZ5S8RrF61Wtibtq7dr1KuMoUKAceQRUp84ULlN6lJxysofJM4AcdXQEaNCglhz/a0aqCeqmTY46OWb8yfGjI0SITBkVJgycUnX68vXLx69fVKb9znVTduyUVlunZF1Tpy4fOH75zpGFWrZbN27U2ko7dgyXLVuoLNm1RGcOkL1CgAjZ4aYPnsGIBrtx84hN4kdu0uB5g0ihJk2dAr3xMmOHhwg4IkRYAJqBaAYLIjAYECAAsYqpNmlSFCgPnIG08+w5mHDyptapevvcyHGTcECA9gyqM2YMSpXMmX9QOeaMy6CO6hD3yJPnzZ46u3OUZDPSR+KAEhXtpCwpuHzs27tnrw/cuWCyTkGCZKm+MmXqyIa1l4896dhjzznpiLMWNdK8FZctuJxiCYR0rDGH/xAWCtHAXzucNFKHb7zRR4hsgAEGHnss1FsqoGyiSB5vYDFDZ57N2EBppZlWwAIDMFBMMcTUkoonmgxiWR60hRFGHggF0olCirzWSSOaOCJclYrINMhttyW3XA8fePBlmB7A0EN00wUV03U57bQdTtnhFEmc4pFHXiKD9GLKMMLoE9977J1VlTjM1HfffbLIEos4YJUVljrnFHigWm69hYtcdEGIyiNzzLHGhX/9BYMbU+DBBSJaIoJQJ31kwgYbbyz00EQPabLHZTDukNkON2zWQAQc+IojaNBAU0xFo6QypIsC1ZaHbXnIlFC0WA5ypUxaJoftSCrBAIEH3X7bbf8P0tWUESjEseTSdtytySYo4JHSEZ3yJmJKeuKAw6d767G3aD7jMBMLKnnlZUkix/CXDlgFQioOOuggyAwz1AQTCy6oXGzJJJY8QocbFkawg2Yim4QSSV9Y51EjKjfyBxxNODHITRPVogqye+ThRc5SfHiZF1jAYMQDM3pWoznEFkMzsoq8YeSySTYLddRM23ZQlntgS1LW2nrpLbjgTjGISz+9Yi4gLK2p0U3p5qTudq9sFKe85CHSC3pJwddeWOc4qs56+8liCSRz0EFHfrEok7A6BapzIILdXLNWNxEHg0ssAW8MySOPrMH5pxAIAUHIMHDhRYdfsHSdI3Iq4kf/HU6EUccgmjTk2iAuesGzF03A8DOMRuwgI9ERDOtjLbwIGRtBSCJZevOke8HFGF6EEX0YY1xtJBdvNCFFE9ty623XBRTwNSCgjP32uTT5tKZLqssJf07wxi2I3ICYwgoz8r0XFnvn+FuWY9RlYINLhCyGcS+wgEUc4riGA6XhwLYEgxmmQEUm8DKhCa0BDBsMWde8RSZtTeELJwOEIBwhiEikUIUo/EMWYCc7RXTiZlD70EB8xjsYzMAIM/BA+Lr1gGH96G2vSV4Yprc87sFgdz/rwc+a4L0mkKR0TfDC92AAgzFB4EvfKsADxgcBCJRJbGMzVx1Q5x33ycl9KYvT/3fmBAg70CkRgOhF/uSzr3w0aj3/y4c4qAE4wRGOcInQEzjAkrADKeMacDnGgoIByYBNgmObEgKnOEciDfkwXCdpwghLeEIVwk9OgvjDGRDSLCx4gYbK2iHvZgCjHc6gh7vSDLEqAopUKIKGl4Fi93SIK1nOkoezxGIPokgmLOrQAz3cpAceAIHxgdFbU6iDT36yi7JFJ3VqE4+5YEIemHjEjZGwH3ns9SgAAag9/zvHOPTRjQoOcpCy6EUClzIOBmLlUMcIxjGYEYwKuoEOOPDUX8AAGA9+0JhTgMFzuHAG66RwhSuEnyBKmQcY4MoLTGrWZXClypzh0Ai8c2ITqP/AC1BoInkfEqkSl+lDb4lMmDNQpk1zSNLwgclr0fRiGMF2voxgJCPESQ7qPOKIRqRsPOQpp1PjZk47MsOdBSKLPfgmlnOcgxq4EFyFhEDIXuivb2XR5zG4cgppSEyAp9DcGtzw1h18CngkyowHNIPFhpbESzDwAUSJM9E4VRR+HsloBGAJg5zZSiB5GEMvfdkELFTRC1cyku6Y6L0lNvOZOHimZ8PXw2LeVJk1hQD4wgdNaZIPAlMwn1Az4otXwCSi1WwJUhshHnDWlk5yAkQ5zZkerRKIQPr64zFioSkzgDVkiUgUONYJjn/Foj5aOUUkUaExxJAoZCHDAfC8y13/LI5pdDDQ1geeU6YssESwoyQsIAJxRMXOgApvCMTNeDkFLyxRCtBblmPzm9/LntSYofUWyB7Q2W5ppoejJa0yx4TaMIKRfB5oLTZfsYvYjsJs0UHXUsd5rpGgrqnmLI8jhjEO4RKXQM89x35sAQkzyNhCA0WFKZjxHmawFRIQglDgMre5DYIBB0T2QGeOzN3xcqG8HdrreX1wsjMEFn6VgF9MiBQbOEgWDkuy780EorspNAFJAiEZFb13xc0+wFtrBmIYdcpMLELRwTflYjQhMIBvWRjDfMZIvLCVuo7kFiYiIUlrS0ynXjhCGeAQh4GG679zANQUj8CQXza1BlME/0MZ+gNHNcAhDFMkomMdm0RgAmMYNwDvrhEQmmeE1q2bJmJ0TS7Jcz4wBfWaEIXtjRMKyWPKM4xBClyIckiyxQXuVc82Y1geSZTYAyx2oJkPqHarIwCBa7taaNWOcw4bLN5s9xSMU3DEay8CFA5vc6kvmW2tEU0nPU1VHOkYUIHKwgxUxNgMvbL0HB5hirYwYxzCCMYA6QDWUSfCDaZeOB5U/ZcIeABD18b2XZU5Elp/Mjle8pJfI2rCXgsWnH8AyRlI6ANin64OW0pOsqdwEEUoguXKMTRzHMpFNr96aBHolc8b0IA140qHcpaCmMWMRS9KM5oPENf50P2TjcAkOv+HVmNOdMsFXI+kxCxJRC8UoT8GHmhA/gKoJcywl35b0g2m+MU43h7QTEyCDnfe0DHF7NJlurlbDfBA30FIa41/UthTOO9zoLzewZIShfUDhBpAYsosfMEHfj0ZCZUzBWIHohHCQQ6XuGCS0CvzWzTyTAEicPoGFED1qW81aGdwTC7IHvQwWPoAlt5aUGAktkAxl7DXna7thLjwKDm0vM5wBpgjghXDYAYD6e3ocXCDcjJOe4aEYB5huL0aBL+gXiDQAAjQQa+iSkN+m9BDzWwG/GEUtw9DX3yUYCs6yjG8D6ZwhseL/KIXJc/j+498kzdCXOI9I7QHisAiYfAFY/D/BfFHMirRAT4kNNKEekCHeuPTc70iND5kcTMARdWTHLVne6sFA9LBZ+WSEbqFfGqyJnBUeIZXfHJzBuZBL5x2Ds8XfaH2CGhnfQywA4nQCa7wC9XwC6yQCX3gBhMXRnnlgFYUU0/4TOz3ZrAXf8WXLck3Bob3AT6AfIo3Sr/2eMTxf4IQgFlgeCphhcahCPPXgCjRgPf3AT3kaqtXgadnGkBnh56RbTFVUz1QOiMkeyKoWgWQZ6xlPkGFgr6nHEfVglcHCCjxAVukdYeGfFMwBolwiYhwONyAgwCFCtUHBDYABED3F+bBCkaYKWygapohfuVVXqJiEmnQA1DIgRJo/3E7EEJVmHzChnwM6ANPhnght3/953iAJYbIdwZc8wFkIkXXYxu/lxwkdHLKoRLPdIGpR4Gsh4FBJ3F8KGfNWBI6NIiqZVrjcj7nSDbEgX+Hxi4taDYv+GZal3zxN1CJYAuycDDcsE+ZsG824I8M0AAMADpCgAeI0AdswARQAAWlZVquuBx6JV4S2H4fNJFoaIXzt4vrqIVTgARSNlhVRkr1I5LGeC7zGI/MKAUDIWyXdzrIuFcSdo09N4gyOSMbeHHHRDLJJl6qdXus91PrQzZko4j4x4I9ES8oEY+sVYVTMGuEEyG2ABeyUCjV54//eH1C4AZ4kAZpMEulhXEOCf8DifA9b9Z+EBCBZImLFkkSvMiWATgFv7iF97decQIekSAJVtZ49fN/xUh4L8gtsdYDRkB/wmY2JweJ3gJ0AWmB2aha2tZqEFBTUKQ7urNMX0SI43N7YGSI05GI6riChwgnR1l4ZPlTxfccykQ4bpAIeEA4ZgAG/hiKVWkh3KUhmVFTHaBMJsFkDxluEjmREzkmdweILDEGZgMIxYmMuHZeb1kHarBC7qIdgmVCJBmGhdmAywgmEig0exAGvFgcYWBrXcN6DdCT5EmehBgAmcmNsCZnUxRtOyA053l784lnYdQDxEEuQukI88iIoAAvPKFbpPmbZUl3BoVwdPCa/qj/AP6IAwIZMnQgV8E0S+dFJiRTha7omwP6THhlkYtYVOqjjm/5grgmHW4Ene4iHiPZeP5XmMuBnVnkdw1QhdQIozEFfhkIkOQ5ADvKo+oJaw9QTH7YAz2Ugei5o5i5Wh5gEpyJjiVZnKDJEaRQTjBxmGXZNWUZftj2LaCjGThQlVUZMofhBpmhIRLKhGAJkVn0LeH3ZhbnQ3JmhZ9ZHnTCEsm3kVJ2E6SQEf/ZWypKHnVqiXwVbTFFnje3LWLyJTHlakA3nz3ao3m4ZnFWUzuAZ456mZlZiChhjkEpW49ImFDKE+QxmgJalni2ej8HkHe1AwmqAEDAAd41GFOACBDX/wDc1Yfwt5QP9jkTCToTmZZx+qQlJhJa6AMS5Z+vAC/z42snNJ2Oh4wkBIk3BX4NkEVZxGAQ9qZYNEsecKqE6KiOygCu5nrq5xnfeqS3V59bBAHFyT5C6ZlH9T7gZKekiqXmmpgZMnGkYQMIYAM4UJAGiQdkOpuqFquwCJHFh0UDaqVvqhLNuAchAW/zuJG+laznEwnK6lsn1HguCWVOlkxZtHrf4ps+9KLbKjQDAHTpaa48qod6KK46+q2XqXpvZhL4iY5HmXyFWZjzCI929ptAl6Moq5i9cnoYwgA2wAAIIARg0AeogoRyNbAGWSqIgBIO2VA2VZa9OpHVmpPRIf8TaSI3uqWcT3YGeYqsOnGXuaWxTnp/cBltNuUZDGCjAvqmT1iB86my3hqzesiNGWiv9Imu9pl7RllOfVmFPquw7Rd+fbe4MTq0FaivDJAGXtC0BglxWOkGiNAJRUEUbpBXXzkFphVGlAou6pebxfewMzETYSuqI3peLCEI5XKiOZFCquOkb6mFy2hT3Mqm2LZmEkeWPkSuq7eyK6t6FmiZMOuoqpeZ6VpeLdEmHNGiTgaPoctTWMq4watR3RIBQnu0ACkEWNC0gWCQIWMhadAHncAKrrC5BmlTV/tgkUiapDteemWJXmuc8iJO5zK2MCiMMHGxapNCJXkGlJe7y6j/u9ySmDkKuYlJNI+7eqdRvDy6eks3PspLwZdJju1XJrbVPiGKuImLveBHPmxKB6M3rTkKvjtQkCDyBqqmXHSQCOnRfMMgap4Lbgl7vd0yJvabHHsAEvLSC9dhWy2au0SZOrY1wOQhEqZ5XuqKtdO6oxLMAAGAhxe8o+RJxROcweNopI06n+RIn1vUWkilW5BopaVaquIJfjGalFlktEDbAAiQITAAGV7guRA6OJaQHuohDAtHBz1wwglLyGFEB11DqTH1viixB2dQcvZjxvIKiXcKWADcEn9aiQb8xBQ6XuGTslV8GqlRxQGAAOkJAAEAAAOQyqmxo6m8suRIPtIE/7OXWsEXvLjOO2JUisZkyaZXqsZhhG2NK6ByTLQZAhhjgAgatQMQKsMzPAxKMQ/KIAuJ8AhYlMhZFInYnMZlaUwkY1QPC8R0FE5mbMRHfFR0MluZ3L/nBSbVipiYOQClHM+qXMoAYM/3jM+prM/2OmHkg6l5e6Tb6MVlmRytO6qIGUZsCi6+rLht3Ms7QMyQq7QwQLVTsIrLnAgz7ArjAA79oA/DEAuJYAnKDJ9LKLqk2qvhx4Tyd79GZXxm/Ft2usmvO2J0mpG4phKRGCamBWHTWgAIUMpALdSkLNQIAAAHcMr6vM+uXMEJfWd31r2PKrOyDEZ5Voim1SWGR5q9K//Cv9xzbZzSQOu9QLchBmnRocLMRvHMh6QPgiJqHsTD0PSmJ73Vv6moZanVMFh8PHvAJDpiLll8bmt4OyUmbtwAAGDUQI3Yi43URL3Y+azKkU0+WsrQ4+i71ziIjLp6XXO18uvLt5yl29x+fxnMUri43XqqPigqZ43DhJQn6tE34KAnlkCbU/iXDM1+csx+WtrVYbSck5zXkkiUgI0SmtzX2amoM3vUi13URX3URr3cSm3PR7qw4/VmGAhN3TIDElbC4ZdnmrmE8kuasbzbUkiqOpzb4ra4AVmeKLshs+a5yxwqTIkUyRAffRMxoqa1Txipcs3Lp73AGHySSxl/wa3r15VY3HB5wOqazTyd2wVgz4kt1Ih9ABMO3fm8z4E7AxGIRafpLacHa9sqkZidmavF0+Jd3uE32bl9pdatw18d2ip+xWQdllMQXrgow3mSDJ9237LNCpYwcXf1ZjWa3U59vOPZvfC8o0ppfPYj0zsNg1oHh30tiVVuZ6cNAdAt4RRu4Yht1I2Nz+lJYW+qu9WIeuKGtc9UbQOt0Aid3t9d3qVKyCh8y7w940D3OSaBBzgOAyeMiaaQDOCQDUrRD0rRDayQCKDD3/Rq5BeswYFriY3gJjjxCnMi05KYu8lXrOus052+RT09bp4REAAh+QQFBwD/ACwAAAAA4QDhAAAI/wBJCBxIsKBBgicShgBRQqEKhQwfopiYQ6JEigwzXkyRkWPHhzI6isw40uNIkihLZnQBcURElw5bwpR5suZHkQ035ry4sOHOn0CDxlR4sGjBEwORkkjJFCfTiS+bSjUJwmbVqiWuggjJMIdVrVk5Zi0pFkQKFQ1PhHiIFOZUli1vJrT5U27Pu0LzDiWh1KhfhEkLojxhlyyIDT6zhtXK+OpYxilcoPQ6tWkKtywdm1UBQm1ntWxJjFgalrNazBC/XkWts7Le13tH9O1blLZB1w+xXiWskvPjq5fNMnZBVXfxxrpBeCVxHDfNmbEF0kyuNXjZstB7MzyhAq3izZ1DjP+GHf0o4L+3FyNnDLW9+/eDPTanOp8k5ce8hWsljjLz54Uu+QcCawKO4JZr/w3okkulhdcZggmBlpBo0pFA3l+zYQiYXeM1pBp7+qVQn2UuefQbcGAxxpVucAEIggtwPTfgg/+FZlxGsnlm4GqfEQYdeRxaWMKFMRmUoV+0IWWcaeIJOeQJQ4KQ24MlqDCCCUtRVx1JJ1ZVXJf6eYmcSV1aF9eBhC2WFoAuVbUjb7zhl4KMI+BlIZQkmuVZCSGUICR33vkE5YQRrmXUkYduiJWV20VZFV5dVQVfR/KJKFwKy123HohhVsVffGle1aKNVYWknqWFERaqfFJqht0J2eX/6GKdDPXpJKBDCpoWX4WGNhpfIRgULHrmVYikoiDYmWulqIqp5oCr4gjrcQUyKJyHDS7poKrTKThTkLl+9+oIwUUIrVOykTsCkRMSaey7wxIUr23oIVqbQOhOuy592mrWWGQ3mkVmiK26Kq26JWialWwBc8TZVSvS2dO10PIkUJ9QPoZxd7kOumuEFga7F1/nkRDvQPNWWB5SfgqEArC1+pmrskNaiilHN/MboqbC+VYfa6l+li/CJl5b7YzmMhyrj+DmmuCCGwfqMaHtiszrySQHdrGwWiPVLq5PCup11SQj9d7ZOOfAc7M6Kwwt0WIKLCKabvZ4bptyxgneaU5m/7Uqkw/OFXRCiUm5soUDvaxWCNE1RKzWWScKOdYmd83rnSSgnbalp5qEqs1e4lyptnyHu1dVQzUdZaEKzljnmROfFV6Hqw/KcdiDjs2y1WaPbO9BSaLMtbFjY44Cy2DrSjXLm+Nslledxy3mlIQ1L7CeErZVYcuZA8v4UksjnT2FdRPGkmk6Dtgnu7uXnTnytyuvO+KPR05vsfAOn/UJzWuu+dCX+Y5y4iaiufXvcNxTXAi+By0dLUh9vfrb7Pr2mTX5anuJ855SEJjBxW3Qa5C71+T0pxSLmcyCExqN/1aINgDuy1l7a5LpOEiaazEtaT5KXfhyNL5fsayDC/wg4/96iEGXaVA6aukL5VJWNuS9D3MgiaIUC3JAGnbPg0hkHKhYyMUuWlGB37saUjAWpYdQ7ljvEmH+CsLECW2NjZb72hMd150TyKA7JLAI+yyUgonskU/uOx7ivEjILx5RjCc0JBYRiTFFBjGLY9wV8Eq2xDhOsY53VEEeq4iz+0kucvgqQSH/yLs5vo+IJEvgIRUSSTfW73dGoiQJVSZLOBLvco4TZJXsiEeOZYyT9bOfYEQ5StWlpZikDOQPBfnKEE5yhLYEZfDeKK84OlGXmOylzdTWx4SkIJjCNAgyOTjOZIJQl08MJizxF7lKPnON1bzlhC6JltZsU0TH86QabUP/SGMmZCIoAAFAUYDPgZ7geE+K39TmB8hzLlOfn4SoNIUXzWmC8p3tNMglC+qVimTqSajUox//Uk5HhpGViVSKOUmGTmaCc50ly2gzoRnP/V1OBSIwITCvFhqRmhBjAg3oQAsK0IPiSWyofGhS6XfFRzJSkijUXiqBeNIkplQgaVmqKheJUluhcY39+2hDckrWruTgrEuLEbZwVRGB6LGsJbWd1MTGq/Y5dJC0WWnv8EoQ7hELpiFUohoHq5SwjpRmfKJBVcR6AhFEJj878ulbc7pTuXbMJ8as4NjWksIiNrWq32skVr+mULqCrKEsfWhfh2klLD0OsGks7EhBQhkQ/5A1pzTILQ1+QAMd6KC3Vfjtb4OrWxDQ4LZn9ageceIjL2aWcLrjrFR/aESuWlW0d2JZ4cz4UmfGkqYUvWjJINrJPPISKrb1jQp0m1sdbKAKuiUufGMQgw0g5iUm8KhHn2KCyoYtK9y9U2lzV9eQKZOvA2mZXk3pUvpFlUJTra5TuwrVdkFOon2JzBS9EoMMxKAKVUjCFa7gBCdIgQtj8AKKEcHiQXTixZsAxSaS0AL65pbDG8hABuxrgSRYwLc6+IhPCrLgluZ1tOr0LjsFW1GVXdOJJwWnlAfCmo3QAMTvtUIc4mAITXjCE6IABSh4AYpd7CIZxdhGMdaxDV+A4v8KNbBADNi7AR3E4Lc/SIIdCFEI3qrVBHH1a72UHFMm13SDuNyr46I8ZSon+Z22yUhpGpLbFVShD3nIRCZMkYxvdPoboK6HqOlRD3qY+tTsIHUvEkEHOiAiEXtARB9enYhODMMRyXjFK1rxCivEIDOjTOhcCXzaUhp5tZgT8LA/Rra7+qnBClapSYXYSmnvc5hLKkFur+AHTRCjHGxmcz22Iepyj7rUpT61qb/Ri2QkYxuvaIa8rbGNcENjHdCABijU4Fu0BlvYlyV2s1OLYKwi+U5FVm2CDy426UKYup+ldiLrZxaX2Pe+KAAxHPLA6XvQYx8gDznIPy7yj5tc3ST/3wc7RM7ykG9jG4VAAnQY69hHi3fJ4Q0vouWoyzEiutECGY1Erw30gSDtB4jZgAxIAOJApCIb2zB1y6e+j5NXPeUmp3rI6cGOYoAiCRow7k8dJ2XYTpSaOney8aD8c6ALvehmh7RoDnMYGuQAEZoYxjykrnWtS53rK+87y9mxjURYwAIzT3jBHSztrDrch0wFo8Sxu6shTdnsFnXn49TKkA3QYAM52MQzxn2P0gu+5Vn/e9VPD/JkTCEJMjcrfosezk/K9NBqzyXb0zjlt9Oe0H+Bi3uRUIM9bOIb6U654FG+dda3nB2JmAISkmB32WNktoLWEO+/C8+0N3HtmGO0/9tvTvuhD8QFMNltDZCwiWKMGtXPN738ra78kTef6t5IRCJ8nNubDJA5T1JzNodhtYR736d74dd2jeZ7v1cUo/FTFzF9+scOFFiB9Rd/7OANFohyHEhyFwhy7NALIpgIY9AHIwZi/adYIDCA2td91LRzT5aA2wdODNiA+GMbS6dJBiEDIzB97fYNKxeEHid/gUeBIecNIoiEGrhyJ5d6Hqh1hJcMvNAJcXAFNtZ/NPdN3TWDhZZzL5h7iuZzXFg/Nfg4L2OGleNXIpADNPAFkVCBRlh6JEeEQqhyFIiEItgL3rCEqXZqq/eBUweE2aAMfdAJWWCFVaAcOYB9W0h+gf/lhZUjTyfgb+WFUzglUA8GeVs1YddVYdqFED1UhkbBEl/gC3E4f3OocqoochVoh3moh3u4h4GXdVOXivTwDS/HC7UQCVYYA2LHiI1IgOD1hU20iCjgJ2hxecAXW5DYRiQjigeBKVwADakGgrMIf4HHinCogb0Qgq+YhH9IdR9YbvDWCBKQAbsFjAJhAjjlWpqkg6+1jGdnXhMxLECVT4/nWZIHSVeVXUISU3+FhipwR2PwCtkYh/5wDxooi3CYgXj4jXmYCKsmkbPIcrRYi/SwDb0gCGdwjliojiTgWvE4hszoVhvVR2nFgl91e95XPGQnTpWDFAPJGTKQBaHwDR//V4E4uQ3fMAym0AvDEJQQmYcPSZSxmIHqtnoWeXWmVg/ekAzDIAg+IGcfWYkiwI5X6VbM8Tz45E3S0THxk02aBD1nhYlg82cocJIoMAKMaJUiGZAkOY9nlEFW8453lANlUAnekJOxCJTKoH/6N5GAKZGvGIvegHzqxg7JB4h/SA/eMAwT6QNOQJU35pYh2Y5ZxBaXwk35pIUZs0uZRALGKFD+ohX3NXsH8W/Z91XCSJIvwxZtRQJHcAQ6YAWgUAxcx26JgAdukAZuQAdu8Jt0wGp0MAdCsAN48GqIwArDYGvu5m4vN26klpQYyW6B8AY15nmUiJritDnJ9Z1W+Z3s/1UF9FWeV7ACV9ACK7ACL8Ce6+kA6zkBE7CeErAC9IWCiaiIBAWelvmWgxaXmUcCWZlHBBqSJsASLhAELjCTOpABjsCTnpYIQkAHOwAGO7ADFEoHQrChGrqhE9qhHzqcEikMnXaYfch3g9eUvQAHeBADV1CZzKWO3smfT/GdVWBfGSABOlqfEuAAPfoCLzABQRqkK+AAQiqkDuCjOwpf8OUVitVRyWUpIOmf/8kXOZgUJ4CV7kigoakCRyADQdAdCAojB3oCQfADP6AGi/ByoJChOxCcaRCncYoHceoFbsCbaYChHqqnGZoILGYKv/BuyJd8I6eT7AAIMABi3zlAyf/CVAKKXGdld2zIhuNZnjFgn+vZnkAKpA5AAQ7wAp5KAaB6AaR6AUDKBKiaqkzABqm6qetJnvBld5KKVmNHG65FSFeKRCagpVoJjyEJpkGgBEFwBMM6m8YKpkeApmogCKCwDYAwoTPQm2lAp3JardXam8EJp9n6m2uwBnMwnECJk35IgYCXaq+ACCiYXNxZECgQLE5Kqbp1cTu2ozyqqZ/aqaL6AvcKpKJ6ARVQAS9QAUzwAqrKqmDAqlAApO65AhIwZ5V5XLHZHWiRPAtVYKilaCSQq7yyq7zKpQNJBEegBVoQBWJABiZLBmiAsmIgBk+gBESgAz8QCYIACFMga0b/YK1sUK05u7M8S604mwYf6gaJwGnkVg+pRoHfcJj1AA3JIGKT+hL8iVb2BWIfdqnrubD2uqmi6qn6mqRe26NgS685mqM7Op+aeqoswARUwARFkKpXe5+VWasEcavBRk9V0h27aqADOaxBsAVooAeAC7iHcAiMcAh8kLJaQJs6oAZnoAmpQAypwAZgYATSyrOWa7lyigc+K6dg4AZrIARzYAl6iJN3mISeBgqG8KK0+hDiyYaHkWPnWJ8Mq6/2yp6fuqmgCqpe256YeqkxoKM6tmPC62EWwJ5CygIvwANpm7Y8sARF4KrrqWOep599dIx55Fd0G1QTQVQTYVThwity/3t+REAET+C3gzu4jJC+lMAJnEAJhUAIZCAGaGqFmoAN+GANgWChPyunl9u//du5GooHrPBuGql/dAADiOAImxAHlpaI4Ali5Pm7DJupt4u7Fqyw8Cm2EmBfA9RRkVIVt+WuOYCjwXuOVyukBNuqmrqeNpZc4buOdUtDiSuyf0u46ru+7FsK7csIfBC/YqCemrAM+PAMnVCh+xun/pvEPBunnZsIk5AIkLmhDdAAQjAFb3CeV9Z/xpUDHUavOlqkuGuqL8ACVHDB+jrBN+p5T7q6EhGxHMO68WqpK1C8QIq8Q3DHmzqf54iOiOHG9TRtWYSWeIuZJCAHYnAHKXsHh/9ACYzMvpygwzrMvoxQCIZcBSsQCOZwv50ABThwxEisxKCcBmAABkKQnIhAoW4AA8q7AhkQwb9LXznKnrhru12rpOd4cZVJo65LvSigXyC5ndT7eSUwr7J7ATxQATzwAR6AARjQsNrpxwmjJ3m0hl6UgxVxUO16MS9JAocQuHegyI78yJD8yOxLCYwQv5asCM+AD83QCUVwsJ4cyqHcuWtAynQQATtABRSAnvTFsDr6u7GssCvcnknao1eoWzlQBVGry238nSEcI5RIo5+3AV+8Asd8Acr8ARXQzBv8pOvqMkIFUNx7PAi1SwnBFvmYSqVACYtQCC6Nw5BcCjGtw+b/vAhbVgWdUAvPUAv5uwM/W7k4m7OrurNDDc/+CwY4YAM3gKqimsHsiaopDNUDK9A7ysHUy7pBIAMusNCMGgKqOaNoZVw0QLY9Kp/MfNYSMAE6tsYvPKUCobEJAddZagKrsAruWwiMQAkyLdPivNeSTAmHIAZVMGKO+wt5AAXwfK1HbLlDLc85i9Sq+qn1+QJOoLYEG9WXrbAScKMS4NAzqdVmOqzfyYbnFyElAGiMBUxgbaNkm6TyudEbPQFVjXFt/ctyzbEqgNt2VNetcAmf8Al9vdd+rcPpewdiUAYxwARX0AmK0AdLjbPY6ptBfdSiLLlJfLCTuwN3vJ5wsAJY/0AF4L22zdu8s/yqisrGny0DYKpcligCOXVQaOHeHfuO64glHJulGYu37JhJu3oYOkav8inbO7pjsxrDdlSgG7urua3gD1HXq7DXDy7cw80JlzDJhSDYNeAEmqAJcGCwSxzdwTnKbjDKo4zYj80EYIAHIk7io4y5iI0DF4rHT90BRjAERVAEM2AEOa68nMq7K/BecZvedzTkKqBhCs5L71hP+m2gHMuOuU3I9P2rXqrVIZB0sJvWAS6205uFiWO9yTgQOSADMaHe802gtzALt+DgpTALET7hd00IdyAHVlC8htAJa9viTOybO7AGe74DExqirdZqczAHYLAGwPm5gf8e6N/aam5QoULAARxwtUrqo0aapDTevMYM1Qp7tSuQ0JN6VkdwVoI8k5NlArcllnlUT6feHUOu3lk9k23lFfblxQNuX1zuMl+Ug+q9oENuAmeO5rMQ7HUt3MC9vhVeCN98CHIQAyywAkzAATjwzu9coduquX1wp8E5tD+JCKZwyiPuBpOQrabACqxgCqagf7+pp0Cwypj6xbLbnjRO4ywgBU5ABVfABO7poytwZc8MnqPO31CeR7na3jnF6gieECbg6lktA9fM8JSaY8H73xtsfcSkvQRVvUVV0mwhA1qq3qwepirw68F+C8DQ5jp8CSi/CIzQ0i19CIsgBy0wATf/EAAcYAM4gN3T+mKuwAvEUA2ugAjDQMB7mLTZUO6m4ArCgPRDC2pJ+4qsJgQN0ALU9wQVcaNVMLYSoAFJagAOcAEs8PUDW8abCp9XC8EK7dlqyZbs+CJxreC86gJ3xI4wMok5MAIfrwJwn0ffqQKxnhGn6U8HZV5dquS5DfKtTuS/XtdpvtefgPKUcAmFwPI3zAmFUAYrcAEUgAM4cKeI0AmsUAvl0A7yMPrysA7VAG7RKWqexmnZwAvMyQvZ8G7mpvpQ2QluUANx8ARPwPC5xaQxcHgOUAEUMPwCQAGkqrws4ATQ68+sLAHVB81s0UNoORpzTzhj6gL91fB4/6XK/xW1QZBceFOWxwhQyIi9LkNP6s3xQy7wWj2QtEALwT4LEk7hl/D4K88IFb6+68sIyw4QTvx0QpSpUydN1uQtZChvWzJv2/bR28eunjdWw9YlM5XoV7Zt1SLSI1mS5LZEPjBYiJHDZY4UKVwGyUFjg4QMEiQ44FnhBQugLF4weTG06IsVEmIs3UCDhssRKqSqMKFChAkSJFRozWrChAsZWmXIcKHCxQkXaV/ClElTRY63NWs6dZpjgwyoKFKAQIGihNa/WUlgJYGCqlXCW7cOxipDheOxMoJAfkxrluVWpTKX4szp0iVGoC9RosSJNCVGjOz4MWYtVac+rDoRe9dw4f/GYd9I7ttXb5ipZOtYJTLFqlq2ZMPmTTR5cpihMzp0PHU5NUeQIHRv6pQwwYFQoFR+EmWy4ij3GBvU05gq1WtV91NNRB6L3b79tC7WrsUbV7vNpmgAobq+CjQQhRMSlK89+Lyiqir4DnuMPvp0maWVC1fJbDPTKAHtNBBRY4SPSpBph5dODOLFmnZsk2edbZCzaKJ6ekkkmWw6MkUYXpIRxpt62LmHN+bo2WYbX0BZBAkQ0pKqvuuwG8sFEDbIIKecYpBgBfOceAEOKLBgAgomxEOKyxXoqms/NnPAayy44iTCJTWb2qCKO6uoYqmktkQzKQskqIKGHwhcUEEHqxr/60EJF3xsKgopnOVCDDfjrBROTGPktE1JS42RQu6oRJd32vmlD15qc/HFdb6BqKQaExnmlx3XyUYYYYZJJsghJ2Jum298eeUSJp2kT0qy3HIqBj31XCEG84wi0whqeRjKPC5xuhIE6vbrts21ngLQyitx4u7cpHjiyTul1oRr0fmMhXQsBymckL57Ix1rFgtb2fBSTD1FzdNPDzH4DkNCaQefcn75BR98GCr1nXUqLgeibeqpZ55ELOmFFeAq/mWYH5cjkjd66tmIFEDk0CEEEeal8Lq05nwih0LptJI7ByYAigegeRhzKAde4InLK5KuIuk/m3YaTaSMPiraoca0/9pqI8S0eoIWmNXPrLLkfZK++fSlcLLJzJ4Us1UAzpRTEQ8pxGC59SDDkErKwaedalKVpzbAWYWRo16+mecbG2cVJrhqTAHuG16JFNKbYaY4AwkdNhjB7LGOoCkI/W4u9Ga59oS2haIrCDroIYY4SuoVHPjTgZ1i3+l2ddWVumhsiyLvajaYCJ4NLIqnggUqHKigXbDBLsuxfCErm3PJqjfbMstm0ayzDjtlhG4+wteDD7vjkKSceNqxZkX0/27H4mysqcaVROgwJZtsdMXfFR+FKQ6i5VCESIjzQQ+k0yQXeI56UwrbdRx4BJcU6gdVKJdOJrACDLzAJze4wRA4+P/Bq7WudR8k4QdxgIMb4AAMK2QhGJjgQjCwIYbDGxMVbAgDLMCABxhISgbYAxbHxGuBQzyb9cYCjFtkbxVtwxQnUkM3g/FBbne4w/i2IAY/SKJFpbIGi9xXDvlZw2HJaJwpeuEKkm0DRuAAGciGkY2R8EZIE+mFD3zQFJnAxTBnw46TXAA67DwwB2JwCSF18IMY5GRLEtDgCy4ABRcygYMeLNNQhDaESxZBk5vUJLVgWIQWvhCGomRh8JgAtBmksgMT0EAGWkKEscGLLEQMAgmGiLax3OIWSLQMEz0zRT2MTw+FEJ/4tkCEOBgCfYBbh8TAGMZqoG8d5ZhfyGyVjV//sCIZyfhFOQwnpN3s4xveqMQe9ESTmaTtj0acWSBpAkEIuuRmhHIKuRQpu57hU3aLlN0EfhIUgIYHeSwgUwgNOrWi+HMCF9ynD28Gp7RRD5fUi56+kLFLYEzKl6kJ1R2IScxihk8LPyjDJ9pRqlWVah0TaxGrkmEJV1SsYtmAEa6SM4xeVOQe3mCHq1QxiKU48F2cM1Z9PucSeA6ykDmowg+0k8iF5i53O8HnTxr5AmuxIKvIs2FXDTo0okChKELBVtKWMqgoFfWW7NRXRemDDFrsMnudWYTc6ia+KIovCj8wxCwA19JVuQh95UBENf620maWIxOm+EUvlNELyP6m/xemGMYe3mC0ZomBBk/wY34eY6wEonM/hNwPPPGyFhBUSbWq1Zx61GMuLMHWXOfiTp/8tEidYClATskZstap1rVG1GwVRSIwMjqLJZbCQ4WYGxQP8b0oouEJUZBENNJ30r+56KSITeyLurnFlZZDGMQxI05tRAc6zAG9O9iBAGinp7rMyUlEgOA7Z8KmKjBVv2pKpzpfMiDU5mBA3FJPBqx0YAO71sBXWoEFbJuUCXQnt1jy4Q8srNkjzMm3E6UlWyPlVuNedK6YWgRzm+vcQ4hUDGTQhTbiEVj3UWya0wTjOrqI0pO+wxquYAUiEsEK/GWDfkIgshDY+wAOFE12zf9qapOZrCdmPUvKUqatIgMErjaJS8tOmY6aviUgL3uZW285lueCcAQFKjC4C3Sr2YKADONmD7nKLfGJn5tXPmhBDE9gRDTg8WIYu++kXSRGF62BPuy+g5rVkF80ZZoMN+yADpKGwA6GQAHYcYlZg+I0DUyXgRWAmrajzm1u10Md0uppA+m5kj2v9GpYJ9hdEcSZhXF267TaB827VvN9hMs5Dg93iMCAMy2UiKlLHKKuz30iH6pIBjL8wAqU0IaLFwLoa7vIHOUoVTmekWNVveh9gGVIOfDAABzswAOcFCETHECBokVtBXBYgRO89DqkEAXfRTGPVG93wStwqShFw/T/CzCNaSUn/AULXUGEJcDbH9zsCXMiAsV1zWs0Y4fXvva1ZNQZbI9znIiSCXESL9O2T4DmU0/sqN2iLQdOLMPFEXtxPGie7ZsDGmI1B/TCdr6Q2uDDGng44QeL0AEjtM4oFIB31HyHb6KYySj6fh0B3Js797qX3/vGN+8Urq6dXKkuhap4Dsr+uftgHM0yyPiZFfhr/HDc12ZOu9zvY9zjnrwVn+G7ykHlUWeTQQyEWAU2wrGQnL+Y5nt7B81xjNJwrypirsADGHbAQWppkpJD4AAHOPiCGxSFA0wPPXmqBtavKuAABwAAAAIgANgLwPPCOyjqMbkE3HdSaPxG01KY//UDMYjhB2bOONs1rva224e+fAyt3TUud6NyvNi0sFByP/GJTGmK5XMLHxnssIhdTENVjrd5bXQusXCnD9suSmwn0mCE92de8yK8QcG57jvTm8lqYJKk5+vfAHUrgA5QiQrgABQiE+K5mtPDGtzDvWrhN9mxLW25E+JDPoxzu42rD+bbsOpxvuebuyOYPr1jIu7xO+e6Azuwg1GAhvSLB3OwOZ6TGBZJNPUDuhgDunKgPDAwgh3MvCUoggYkIUl6Iaq7lvIwJVMqKEiyARzAg0DosU4whT5wAzconiKYvTChPSqgvTJhwCxUQn2jGi6JwE3Lr0HynByoQF6jLzYMgv82dAFYaj4PNDMl8Jy2s8AQvIXLODkN4YRPwJSAERHoYjZDUANQgIZsM7+ci5jacIdnsAZiqAVuewd3iDyUAjpXYIMTwgIghIKsUUIP8j+DWoHyKEUvLAIUYgNNwgNNSAVe4IVfSAZieEVEwII3UMUO4sIt3EUvBMNKojps6bfYSYpNixIzi4IKrMMMyzDlUwFYAqSLs8Dju8O0e6AjMK5JQS4SvBROWIXuKRhG4IQULBGICTdz+LkYlIdtawZraIZvq8Eb/Bte6AMwuIFRqhZPLCgh/Cp+HMJNwoJAqIVZTAWCdIUVaQdi6IM+6L9OREKrEZMt7MJ+rD3XObijuQL/PQk+jXyCZeTIDKu4iSOCH3CBH6i4kaw4IniCm9kzpVLJHHBJmHzJlRSDI6DJa1Si5OJGb8y+uIEiQpCDSmgFd4iHcmgGd2yRGKy52jCHFzSHdmBKc8wueRg6MLCBSPLET+xEJuC8XBzFI1wBGopIKtAkLNAEoyTIWji0Z/gFhXgHV4CCzuMA4HlIuoxIiayhMukq8RCPS2M6AbA62HOADKAg3qpJmqTJivtIkay1ubi1Laun3QqzpyiU4FMqz1ECJFoFWshJQMy+tymY5hofMpCDRXiGaGgGYii0Z5AHfEjKF2s81nTBeEhHVXmHX1BFFQKlL9zNzfuq4BmlMUlA/2qxgTfQhGcwB4K0Bqe0hmdYEZsjBjawgdmjIYnkRV/sQrF8gb3ky85TAA5QAPA8gAAgAHhTl66pgjiIA40UgypgT9PxvT1hiaVwsGxpOAmUAAvIEvl8ssoUAz5MLk7gxs98IvAJFcFjz0oIBUZ7xxecTXlw0NmEwfO7Lqmcyk5gId2cFt7UvH5MwuDsQlTEglRoEWJIBdowB3fYGxMlUVy0muCxy6uBUTC0zrAaIQLwTvDMUfIcOKORna4pQzx5NfzUiQYj0traiQhL0tvRCdo5Fwu4AvgUAy04Am3MSc8c0PAhHytCAzSAtj2LgThohqGMwcRLyjKtTapcod3cUP+55MckBE4rLILiPE5i+IVmYDyI2bFaiJhf+FAP7cXr/EIY5aDOu9EczVH/qxoeuIALKIpGVZfe6bf7m9R9IzjlkRqjYQH0DL4l4swrRQ3wQQM9QIM7IIMuFTw9Q09iIAfXlM0IfVCeg1BAU5VqgAMWgqQ1nRYOncirucoiEFGmfAaCdMpnKAdzcI1aWBhz0AQiBNSJ1FCv0qRCzdEAqNYA8M7OowARAhoWcB2f2J1h3B3YkbeFex3wKIoMijd/YgF/yqAeFZTg48YmehtPyas24NIu6AIy0Nco2AIt0DMxCAU/k9Bsa9BXldXabAjohNNc9aCudFMi9NUiCARrcIf/Y+UFYnBBYkDNSCyHoexTQHVIuvTFBoSCGzhUBbjWa1UAAui8h3XWJZg6fatRms2kkqXZbRUaoMEkrOrLFWhPMejMTMGUgrFXLt0CMkDaKCCDKOiCf2VPTWiFc0zKMTU/qnUfiZGHaqBHNb1KQQWhiYykDsI8GyiCVHDBZxDWWkifSKwGYvDYeKiFhQTOZx1ZXZVW1UNZlu28EbqahgUrmZ26oSioITilrWxAnT2l29NZncWqoagACpiAJAi+0iiNz0wxK2qDe0WDfI2Cpl3afvVcPTuCOMAEFE1H2gS6HGup2hQ6/vNaKPDQSapbq6nHG/jOG3CF49SxFRU65nyG/0r8BTCBXb8t3j/9QULtTpSNy9nlRzKBSNptwK202Ztd3Opdna10JAFYASsQA0ZYhJUbET7QXHztAs7tAn/dgn7VAqb1Vy24ovQ8XRdZvxg7qUl0kVpl2JFt3rodW03CATZgg1R4xGeohWp4QXeoxKL8hSuw3egtXn283eWNS1F82L8Vy7q9vQbU4OrtYMQVIYPb3h8gBPIJqfHVg3vN1y7oVzR436ZlX9HVgn69IjEghhQNNEHbNgJWxHdohlroBLC92V102NapW7G9AYUknj5AiF/QBE3gBXe0hlrQhEAIHhuIWAgOVDDEW70VxXaD2ep84A3m4A/24JutFg4ggP8XSM8qqiJhEtXzVeEVRoMZ3gL1bd8oeNrgCwWDzVqgmyYp/oVaIEhBrgWBRBEmkE4OIF5Q5CC8NGIOgoNAgIM8mFvhYYMl1gTYuIGytcdmFeMglODu/E4vbjetNGPrlNEs/mIzbmUHpBaWpYAqEAXO5VJbtmXzjWMVtuMVxuP39VIxSAW/2hvWdJ9peAZYCAVDiIMnQ88q8IOkeQHmvQEmKFkoIJMlgIIioOZqxuaCymYmKAJtFmdJskeF7AQ24CAc2GYOwmQm6DwbEEIXAudqzmbcg4JsJpNtpuBpZgJ/pud8HhMyueaBxucl2EJ63sJrVuhu/meDhgIRiujWwT3/TBKhJbDohq7mNHaAKzCEU4W289Vl821a9LVjk15h9EXVO8CiUDjO98GGddiFUUgFTSgDP3hmnE7POPCDOLiCMlgBCuCAC3DkjLbnaibqos5ocj7qeBYeOEjnde4DNgjFF+Jke/Rksb1mgd5g3KPm2+Vno1PCgm5Ae35oowZofGYCMUHrJahnfE5rjI5ripbre6YAlnWvK6jlLu2Ce22DLchXkT5pziVpO4Y2PUvPUGgFWCCFUMCEZbaCQQk+aIO2lUYDMbgDQhCDK3g3bb2AezZqrTZZbnZoh25rcT5tpva8epRONoADOJDqcuagbR5Ctg5nii4Ch+Vn/7uB2Z7n/4IS54HmbW3eyiH47LQm6K3GPaWG6Ik+XIuO6IuGbuf+7BtYvUXuAzTQXPLdXL9W4cEuaV4+X5PeVzHQA2aOg0rgaTVQA50OPkLI7ls230VAg8yuAgqAPUzCbeNua4juoOYu7qLW5uEu3BuAAhzwTumk5tZ27aOWJEjy56ImZ9T2aqOrcCKkZhda6msGbtsua/5G7muWXq0BaCCM7ojWbw8SIRSn62u+XTao5E7Qbu3m0u72bjkG778W75MG2PXUSPjGZVv21+wevCqwAAcQgAugAKMbgtCGaLls7tpua7aucKKeaqV2cBcqcBfyoB8s7iGYbQpHcW32oEgS6DEp8P+C1nBv/meG1poIN3ETR3Hcbp0Vf+6JzuYh6INUOLQu0m4U3u74juM4PumTJgP2dVoxsOwVm+wfx9dbboM70NzB6+kWYIGh3m0Ir+Yr3MqkbugiCHDTRl6kbuhIKnMy2XJt5u0vX3U6B/UC1yQBV3O3Bu3CBWi19mcrD207L279xm1fX3WvpnOMFnAqcAVriIeJkXFl3+42sHE5NmleNul/bWH29VLB04NIp3H43m5sx3YxiAMrQIIWcAIW6HTOg/KyBvVqJu11J27/zugyH+1t1iTe1rzo1u/QfvVVB240z3ABb3LltnVOz2aGbugUX/Uu76Beb50L+PU5/3ImMIL/be6DtUX22WyDYBpVFM5uZedrZ9/lfX3faLdjLUADpGVfSG907ebre430lZYDQoiDJEgCaIYDJih3T3/yegbwKIdwgS/caobybtbwDJ/3TeLtrnZwJn94YP9BfQ7tSNrvMSncglfogr/yhXd4SvLvIRjqFN/vTqhYZH+HeBifEhafKhpfMkjhlJbjfZXjwC7sfAVp8+3rZr97+B7VNh5NOUBPNUiCK5iAyC0KpnMdc/f5b/ZnoGf3tub0TAdoGKpwz1v6qgQDMzCDOZgDSHgEzl8DMwCCzzeDNaADLPZnk/VnMT/8LiRcOjd6zQOhsZWkodZ6I7hnNkgImptNPXgu/4JJsRLegjZY+6N9+5BudvO9cTs2+X3dV4xf9ub38/GhokKQAzmwA52+ghZ4nUtTut/5+Uw38xBX7mo+Pe+vR1Q0QHbm7Q8Cg0yYhEnIBPh3HFNo/zVYg0kAAyBYg1GCIS4HCCZLoBThcMPgkIRLBDIRCKXhwIVFhtxYUqTIDSY3Jl4cUuTCDYoaKXL0aGRJn1rxVrJkxIgTTE6UKB3iw6eNnjZt0OjsyfMnmi5dggoVumUL0aR8furMmbMnTj1P25C5Q0aOHCtWLEhwMIEChQsLXziEyEQhQ4gP0w5p6BbtQrdgNN4AY+OGDTB6wbh59ChTpmDCxnU7l87euXz5CP8Ha3wKEmRIcyDPMWMZCGYbNhRw4Gww4w0oQ5ZEhGKkyOnTGy9ivLHRNcaOrinC3rjkZJ9U8fDJYxkz5syaU6Hu1Al0Jxo0W4oSZY6cJ/HhUXHi5KPnjhisYgjJSXLFAdgbZJmQHX92dFq3A82edduw7Xomc+vi5aAZDJtMnTqxYvXrVzXjVKMPgQUaOA445xyDCoMMZsLgI5CYgdkBFSpwoWcGaQgbaRnFxpprr9XmGkgfbQRSbRgZwUYq76z0TjvvrMLJjDBRwohw0kEFFHNFGYXUUM/11EVxxPXklFRS3dHGHUs2JUcMLzhwAQssqEfWEgmhF5d78cU111zyyUf/m2aYYWYGKo2Ns2Y+4ChWoGL59MNPP3Xq04+c+qRzjT3pnGOPPfmkw400qFg2IRAHYKgohhdywAEOKhYR6Q2nEVSEB65lesOmH16UIoidEMOSi/GsskopMt1Yk3XWGenTc8v16ONRQTH1alNIJilVVLvqQYgdV2Dwwgs8DEGWsXC5B1GWcXnZ0HxQ0GeDohWaMYlgBIJjILeK1Tnnt3jWmU43h72pTz6AMoPLZYlWW+2ijj4K6aM4QHoDpUZo+mGnnXqKUR6/NGNNNc2UU04pNQbHxx026ZoTdMYp19xRXRy1BRkY18qTdLxSl2Svu4asRyF3xHHFBMS+kBAUyCq7/+xCXoI580YcJHomJLEwcw6B+fBDZ553ohsuneD+TOee6Rz9s8+KdfPYhBVK/e7UjQbQ6AKcZdrvDQ+EyHWIseFggxdv5FHHIJ7UAhyOrFon1duv8iSrxRVfTIaPtz6l68dwv61Hq64quYgkcUh5LESIv1eWQzF3CQWY8uFlg82YzTGJMOBo/i0//hTdj9B3ilsnnUvzsyc6P3POT6DnUHOKZVVLrYDUABwAgO236267Zwtw4LvvvwsP/PDAU35ABDgwEMEMcCjiUtuHsAo44H0/xWPdyx1FhhYZZyxUUMXpKrivgP/9d69NyhGHAw6oTCziL3cp0BIz76WZAjinqf8MOOqQbvTnwvW/0gGwH0k7WtP4oZhzoMMWsatd7qQWAN3tjlG3o90EA6DBAADgagBQgAfjRTva5a6DAWCBIERxiOg5zCbVqZ6O5laUiy2He98bCvioMx3qjc98PoTbrkpGiDisYAIpW1l53qIWiBQhS0UgyF7qspkKAcEMjzBF5rbVD/8t7X8C5By4jDanAyJQgQpcDDdg564KRbB2FcTdBd8oR9vRkYIYZOPtOngBP0SiYYf4IQ9BliQ0QKwNdNueUMgQBUWSgQxowBsOrSey8rXQJpYEXCH4sIhCSKIKRnyfedqyRCYUgZRiu8+hzACJR8QiGNTohgCPNifVfa7/dAS0ZRdRxzQzKrBPDJSGhKa2Ozjirph15OAb6UjMCmbwABPMYx41+AAn+CGTmXQYEH3VK0IiB0h1w1sjuwfORxKJSNws38OwSb1KkuwOhcAEEd3HgvcxLi5t8RRebmAGG5gBDH8RDII2B8Yu0lKMpjOduMhoRsUEyh7oOEcaowbBOc6RmMYsZh6V6UxndhCauCMAAXhQBj5cM3CWPOmSbnKT63WhkY7EmxgaGVMyPMGljgQKxx4mSF9Zk6QkLUTJFtEdCRjxkyojDXqocBYN2Yd2VVylK8eBrv6pgx/q8McsD6rVg2Y1l9dIHdB42Sd0cIMawbAEJNbIxhJetIIT/02mRuvIVjgqig15CIT08loTvV7yklMhCsYWKYYuPKGwhqVpYW3qUnMWCVdMahJk3XkHkhWCEEOMQVGHNU/GKXUJB3nUhSq0hsAMZlv50If/quo5XG6Vq6yVJeu+utoEOpQbZaWGWR+xBrXWkaK7G+HVNipXt8r1ohwIhCZYode82oSvfnXKTlwqhpr+gAw/eMJ1f6Bd7B42pjVVLHhfGt5GQrZkhTgEIapgAQ1MYAX0LMsQHgXS0B4ACKZA0Gm3+LOqbrWrrb2l6kjnM3t8lWmKYd2eriGNYwTjGMIIxiMkKkw8trFCHGACFajAhgwfhHbCrLDukPnMIgiMGNCL3v9ypVdJ6vDEpYUVQ3W1K+MZb9ewhp0pGcSgY5ryuKZP0PGOgUzeoGLnCkSdwDzhJ5CEdHi+Tp1DMgyUVXuowx7/vXIXvag6AoMVTwxFxzWUcQxpuDIYpsjEI8CgVgrjUXfH7UQgOqEJRcCZDQfJ2tSGa7tmTpANtWiHNVxSiBOvcLmXLJlVcvxjGeug0Y5+tKOtoANJS3rSkL50DC4NaStkZzti2CQhMKuBFyR5yQl51AI0SDsrKqNApLNqnwClVf8iNMC1npPP+CHbM+IJzMcY8zWogYvG/CITTKBWm3s7NQ6wIc6aeLYrng3nQLABDPSdcEY/WNdalOMZl2DEt6H/t0Jx/7FVS7rKE+TAaB1sQAcZyIC74f1uebvb3UnIwL3hbYEM7Lvf/P63Bfrt7wzEgNNx0DF2MCGGK7j3qFryiHzna4ZM8KxOVZ0TldORjipjmYAFJCiAC+xln6Fjwb+WhrCDgQrA4K/Cyj7ADgIR7VTQnOa/0IQr9tOJPKQBf9jeqAYVJaqDceISRr/ETJB+I5ccAqiQxcoTrPCDRwMc4AG/OtbXKwENbL3rXC+qEQ0AdrGDHQMSsEAVqhCHtQ9xiFeoEvxWNhqKcCA8HIAE/7bY1T5pXNZWvvIADXrLrF5DaXFy2q9PHgxcnLkPdrHQy6eGh07woha1sMbArIF5/2sQo/K/SMV++oAHMIzNw5Df6A00YY1nIKzoqpoJ7L/ddMnKwbpygPS7BZ71q0ug9xM4Mti90j4HCID4xRcA8o9/fAN45ewWiEHa1x6HShiC4TwgFhN4kH0mX+ACkbKEMPpxDquaTuOHYV3Hw2jLWRp0ll/FtZzycY1fz5/MjE+zGUzv1qkJIRW8SMXlWUM7mIM5vEMBmkO3lQPn1QIx5FwfsEERbEajYAgT/II1dNssnEopfMIGcsInFN0lLIIIqg9WVFqjWYAOXJ0GrJcGtGALFpXYCYAByKAMGsAMzmDyCQAB6CBI7WAP9qAOIp8BVEAFsIATXMEVlEEVlIEfXP8BsVyf9vEAD1zARAwBGKSBLPSPVo2VxrGOlX0h+v3M3wUegLUfP6CD0ozcniSemJkCKvTBGkigojwTtglBIPACHuIhA2peAcIIAv5hOcQDoDWgJuxHHsABGzBBhaReAloDLaxCBpaCJMLEJxwdqN1BCU6do2GdC7rgBLAXe4mdDU6ADcYgKdpg8hFAAhTAD7IiSLGiK+6gEFYAkrUAEq5AEl6BExTL9lFhByQEDuBBMIBDoPDX0XBhlfkdGIJhQdHS+g0enfxdnBBY4iVeLEzCbk3YBIHYDiCCK0SbK6SCK/ACMWheOSDgM7RDOp5jO7QjjDzD5hEDzcEBE7BBJ1j/QwGWAzAAwy3QwixkYCtIYiWG4CJYFlbYQaUlQQomgQtigEMSIQYYQESWIipCgAEkgEVCQA1CwComQAIQACyC1AD8IAGM5AAMwAIUQARwgAfMAAsUYQvgYhlcARW8QPfdAAV4DUWAQSZkTq6hH6CkAzoM5WEAilGG4d85I62ZTq6xX/wJiskdgzLIAipgY6LgDglF3gEIweTpXCeEIy/8Qi1UQzle4AWyXjucYwIeIAE+AzHUAuhpQgDq4z7yYwaeyqkUHSYUJFZkhQkmgQo6JAZUwGASJhFSJARwZGJi5GJypAEUgEd+5AIQwGRSJkkGAGUWQEpGgEeGhQNUwAqw/8AVwMEuDgFIUABOhgRPrglQIliffNXGFeUXpgtQJmVWLWUZLlS6cMMx2IJUHkMsWEKEIcDtbCNdCZMQ7AAeIMJd7cc3psJ/1MIvvGU5lmVZal4zlCMBmsMzEOAC9scvPENd9iMtPKIGloLRFaRBaoUVKGQSAGbAdaJ8NqQRsRcGTMB9VgDzoeIMUsBlkmQPnuRJLsAAFIAreuQFXN8uUgEV5iRqusYasEEwjANDeeFQXkPhyaZRWtmAJWV//VdX9YNDKdivxcI1xuHsbOP+VdEkoNkjoAIWsYIw+Md/1GiNEgNZWkMAah7nEYOPrqU5WMPnJdd43gJ54uUGpidfyv+BHTSaQloAfK5XfErpCnZiDbRgC3SiQ07AYVKAACSADo4kgJZkSQroSRbASapiAoTFBRQLCwwBBdRdat7AGoABKjADhabLWGEobMbahtamhzpj+rHOgHGDgomZLFgCHaxZMwkTEAgBHQDGJFRlmsjoLwiDjWaqje6hj+KodFLn6nUnMbACG+yjkZYnLRjpXaaKknIHQuqAe74nlAYcfAKmrcJqDLynrupqDNRACxCVV0wAeOSgDwZhDxoogRYAZpJpZLLpFILFA+SkQfDTI0yongglmCkYmB1G32mcnh5loA7qMbKOOCiDmJkoHSzqmv1cfdFBi8ZCg0xCLAjDjGL/KoB8nlh+nnRC5y9UHll2KjH8RyqU5TnWQieUp5EmbKo+YiSCoAgeJKw+qa3Kqq7CKqy2Z3tWQRJorNolgRImga+uQJbe51fk4Ed+qUeyYoFiZpr+YGfe5JrewJraSxyiyYSioVAqmDQMJRryXRf6qaxh2W2+mhiejjJIQxtaAqIw6kZJzZm0KIzCa4PIKKbSaMBqas1FZzWMZY8GrHTuoTVowsKSZ6rewiqYLapQAkEa5Ku+Z8TOKsUmgRVI39rZwdqpgd3S7dpZARLUgN9e6WCiYg7y4EeC1LJi5rKqIptCK1g8yuRgxikIQzd0AzeAmS1Iw1fhrPltblEiZYh2/5yFzt9U0sEcECe7OioQ/AUqwCsu4MIpvC4q0KvsZqo45uvnQSfuam2nCux0/kLC9iPw9qMGOuyStm3ERuyutqcdLK8hNK/zEsLzGgL0Qu/aJQES9O2VagBF6qcNFm6AkmniKm6cjm+0PgAHCIENnAkqUAMz2JY0vC+GCiXnduuG2oMBtRZuiiGBIarSrmubTU0VPQLUxkLrti4qvKhgXKqm8q7N4a4r4Gu+BqyPMiBcKuzCni2SFp0Iqqcd+KWuQmnyWoEaWIEdGIII7iUmpLAKL8JebrAkLK/demzftqBgPqR+8uCY/qCDRusFQOsFPMDYnAma4BY1SIMt2AKYEf8lUc6vbN7vh7aWUV6DLCTCHPjv/9YXZggwgxRw67oSLsCoYAwGvdJojUJnOJ7xzX3eA4tlji7gLyDsqfojBgskQRZvk8bqxIowCauBZUmCCqfwJwSyIA/yJWCCJEBv89qBGixy39ZwBVzAReYwSYLFDkMrEDeAmajSKYzZEUuDofIsKJufz/ZJGN7afwEKOhyDLFSG6R5AK7tRfbXrJExqJnAxLhCxypmCYATDpdKodOarOAbzAz9n7vKrj/7CLJTnLPTjP67qQO6lZcFwex6vrpIwCS8vIUjCJQxyIAekJH4zOP+xJIzzC/tBGTRy4BoABajzDI6pDq4pJYfFOlP/8u+krxmsAYPYAi7sbOUmMSijITrEmoaCLvylC+UGJx1IGAX9L2asgV80SAEfwz5Twzg0WOu2kuySsQOjsTDfnCuwQnI9myb8gij8IxyjLaokKTRHM0K2564m7wjbQTYvAjd/QkC2QjNDYk6XQisIcgqPsyEIghqcsw9oQJUUYQWAxZeiLAWAqYOGhTr3cAWAR5x2hj3PwSNscuVW7lfx6bYu8eYuY8f5zJ9QwzGgVdSsWQQRpwJoxiPgwQF/cesesT7bFvsyAzMEA0YrcBmfsV8/J2CDNCvIWSpUQTI/IjND4ir0dCHv5SHD8EtDacQqMvOyMCYMcitkNk7/4y0s/7MyN7MuaPYnkAIpjDP1+cFQ14ATqHYNvOQjz7M6r3MpQjJFRnVTd4YQ58zkdgM1dHUSZy5Yi3LQLs2AddUCncO6RFgsvxUAA8Ea9MWLosIpoAJdd7Inj4M9EIg66HUY/wIrFLMmBHN441x4f7dIS1snZGAcr6pKEw70Lm8cfPBLy+01+zEg27Rml0IzG2ld8uM+oqouzEJmk8InhIIhS4IhoLYamLM5X0EWvGT3RTgkXwARVvhUE2EPz8vNVNEpuBJu8alvA7fmCjczttZxMwPsKDRGRRAQIIANPLdfQMJjQII++ybmnsOf5Ck4KEMwKIOMVkM14K4wB7N4P5tgy//ZFXTCFeS02ZotT3/CTyOy3aqBriLBxOrqIpewfZMCJmj2LAR4gO8jMoh5XSKDM/y3LqR5K4Q2LJB2KEhCJcB5nFcCapfBTGZBaxNmDe+5UQ9LUhOAfWCxGViCYFCDbWHob4cyQPcduPaSVskJOIiDKVTGcrOZ0x7APjn0JETIY7wuLoxZ5crmfqXDjq+cKXx3zY33ea96JyiCJvhBIa5AJyh2BgLkBqpwIk+59YIslNbAxFJ2CRvyZXt5gNMCMCCDsSPDmCs7sy/7mM8CMKT5lwt4m5NCKFi7tVdCJQiCIURCUN/5FfhtFrQAa7dACzjBuWOAl+I2plvG+gqDoYL/eFeLuPz2bP2K9dGAQz/s+CNQyBqBUEc5bUPPwRpgNSS47inc8jWUy5/mgzo4PDgwQ3BmgimEdCqctyewepzRmZLDQSCkQq0rdkAGsiFL+SK/p99irwVYeRJQ+SIbwjiTtk2r+Sw4O7M7A84DA87v/Jkr+7Ez+zLoAi3oAiy0Qi4YfSu4eSgsvSREQp0r+CJH/SLPZAskdQKA1pmsQaFjrrx7dSjT7707upVtCzPIQvpqYwe1kRBbBmTo8yYfQzc0FMctTVWpgzgwA4wKg5yJtKsrgiL4wd8rQiD4weBfQSCM5hVoQihAon7ftE8juCEocnxbLxJYwN/WwPW2PN6q/wHMpzCB47TQLwOz/7wzmLmZ4/zp83zpr77PL8PQ60LQp3ma54K1h0KcGwL1Na+3J3gc+IEfOO8VtECGpy8/qVIsnBzXd/0/2/u9KyPr6DuKr+sdsfiEsD1koEIXGzp266lWqUP/PBiA+KgqAKAoZLzf+z0c0CMc9EEfrH94h0LRLzZP9zSUj3MJKzKVY+/fasDfAgQSJGoI2jEkKRQpUq10NQSmC5mziNGiObN4EWNGjNosToy27ONHZMt0wTJJChapUCsxhUJYSVIlmJIMCXJiQIAABRwU2ADyyFSwYMeOSbt2FOnRdNfSoUuXzl5UqVL5Rc2nbh6zTmsOdPXaFf9AWABdgRwAYsbMGkiPbOHCdYzauW7n8uWzxw/vXbx784FjNk7fs3LPjJHMRUqSKJl+DPnxE8dxnEorYZVqtapVq0+fMGGSZFAQwSRIatTQcFqD6dI1kCQhqOagwsy6aCGL6FGjM466ee/2zdsZReHDP+paNnIkLdoNM7da+FyhmhoUdHKwweAsUKFGjSY9ig48eKhTydu9Ck4WnrJjvx4Qy97smjWP6KPCFQtu3HPn7Nmtulcve9QBJ59xhKnGmmcUXOY4XYxpxSRYQpFwpVBEoQyWVizb7BNSPDPEDkHsUEMg0jDw4UQMTtQgixLLUEMQmBJiyDjjRiKOI2103FH/tx19/NHHHnskjqLbSGpIl8xyac4XCAW5ggcKOGAgAiDOsiQWoZTpzrtr0GHKqfHIq8oqvywpqz2vwjoAAbOAEEK+RyZBBZUspaGGG6es6i+qvP7jp69zmGGGl2awWaY2XR5CMkkInVPoueY28/BDQ0QrQ6AsVNx009JafFGQg2bMxThgjguOot6AXJXVVoEEzjaJGJ3VuFwqKWMInhaw0gwgIJElyy6TCk9PMamySh1ZelXTvWYBCOAA7BgQAk76JoklS2q0nWu/Pf378y51ximQGU14meYZZHSZBcnmMoT00QxzwUQhej0LLTQSkciihhQ5VdGHGrJ4kbHJSCG1/yEGcXSV4R3J8REeh7WJ+OEdo+GIOOSOY/BIY2Dxg4UhHhDizTnMmAOSSYq6hpsuvxSPvKnwAieYM7+C7ysgsDtrjTnoeMQSXIK5kxtu5hLvqZj77C+f/c4R5hdinmHwmXaXTImUDiPNzDPPJPl6RIIy7ZdTFlQ024lPQ71wIUZPpahVcuTW5uGI7Z4Y77sj3vFuvCvWkbdUg9M41o8YzEUTJ4agtuSTITnllJVdJjZppZmRZQ4rb262KwSA8AlOIeaYA2j77DvGLaKKkkaaovI0Vh2mC3RFmFqscZC5JR191LlWlmwopuAjyZdEflH8AIMKlK/AbB8qyGLgP2JMKP8XUo0xjiJsLvZRbnLg8X7iviummO7y6+6+fIrRb9hH7bW/+ONAYNiBWiHAWAMM+k5BRZqWWx42PPYwllSYAQnNgaU9njOLT9BiMpRZAnKnsIUtJDhBC0pjgtII4HjGY5dxmOIX1XhGM3RBDF3kwiS+i5BJEEaSShjihZZSQxlqcIZ9+UADyTPA8piHPB+krQx+mF4odOEL44BEez+aG8XuBr7v6W1i3fte9+Q2RSf6rXxZbFUSdbSMXIhCfvSzgQ3QYoZHrMUtRRuWl8IDFTGloxuYOyACo3WdMYIOLT1D2eMgZ0FbrI5LbaycgMxTIGGw4he1IEb1rrakqzmqhcj/qEloAKEGGwYMkwb4gAEM0IEdfqACPvgh9KQXicnAglQciwY2HEZFKuaNbnrz3iyfWEVa2pKWUZwlFckHpGlszxleFMUgmrADG1jnjml5hNCCQY1h5QlpUeHPOGJhiV6hyStl+Rz+1mAGMjYQEmuJoB9Zh5QwPeWcAuTPOcQhjm4IgxnUCMYvokYMWNSChb5jpPUKMw3ilQFTohQlBkDJSQhw8gLKY4EPoBfEGKnCJL4oDBK5Z0u74fJ7eXOiFHdpxSl+VKOwfNhItagNVu4oHMt4xisU4YUdIPObZnyEUKhRzqNAM5p0EQYqRjdHsliJm2v45nzo84hTQNCPtrAp/7GQ5kZ7nCMd7lTGNQYlFESGwp4olNcJG2KMiWrPkmU4A/REibyCQgACCRBAAh7QyQ8slJSKiMSFUCnRZWCDleGgm0Xh8cS+0vKvtfSrYAfrPcEC9qKBvSX68LojvC5jF5vwQhFwgINjfs4M+cuEPG3KMmI57WmWMJmVSFvaPD7CcWsxagRR0RYLEsWmaixa0dCRpzx1gxva0tZQZJEJehIDn7moRfW4OtFp3FUbXxDoiSoAyk0eNAEEIMAApGuAC3SABWmrgx8aUQmIovCrJ+WlOww72MD2Fb3pVe962Yve8LlXsHsl30n1qo1paCMcu9CEF8Bg2WSacbPl5BJtwf/TrVhAooza5JVMJzGJok5if6eAMJ1aiwsL4qJ15fwfd65xJ91eQ7fyPIYscJEJRAIXFvb0XVcZNI3GakOULPjABzpQgQ5ANwEFkK6OCVCABHSgAz1I2x8U4V0W5sIYLs6rFN3RXic/GcroLW+U/zrLcGAjHOTIcjj0Go5aKAIOPHhABC5LRjbQtKY39VKezoGOcXQjFmhBcBn5iAsKU5iC45SghS3clreoDraAFvQxhjIUbOFCFnTKhIlr0WhiLLJ6HPvlL3XEAhtfwABpTUB0o+tjHvv4x29tQhYUIQhP1NWrd8VrlvlKZVe/Gta71HL39Kplk+o3EDMYczLBwEz/1g34tuMYBzXOKOc6CyUY2KITBVEhwQq6Bdpuacsx/viW1PV5gtHWtp3tTCdLdCKRw4X0RJErXiB34AEP2PSOe7xptqb7AR3gQRPCkIU/NKIRokDyMgqDV1ZWEdYBTy8+8AEPghtc4Aif4l7Rx2VtPAMWqggED3hyx/lcSxgZJlrRutENatginHvGhTyRHQxoR9jZfuSza1GHQQwmNYIxbzYqHkGnOVkCFZlwcB9Y4ehFpprSJtUROTpwAXivW8fUdXe6r9uBUeeByJGYqy9arGr5Ovng7D14wfu6dfRy/esFBzvYY23FveKXbtgwBjSg4Yk8FGEBdySjrwq9Ojzl/1ae4fwjNf4yjnju1i2ttYXgL6ztllf7LX6MYDgZ3/i1rMUSc2pwH/oA3EcbY9/RqC/aid6Bd+e4ANQNAKjT7YEOeIAHYfhDIPwwV1G8Yu1K/veUw45wgovd4LdXuMK93vWEf7295CCvK7WcZWxMwxi7ACPFrcOBs5gxKELJT26pLcE7MSO3LNOttKXtZ9damNrSwPAfw/9HC0Ku8WaYc1rS0jNrNdgNk+C5IomR6mXUt75yAzJbN510HZPe9OSNB84gEOTKE0RBFXJhGX4JG0aK9tZr63Dv9iZQAimQ7F7tAp2M+Fity5CvGHJB4rCAA6wDs8zIPvBjaGpKdbQF+/9mC+/Ej8+gzftUB8MwrCiKIvEUD/0QbM56MI9kCg/kBA/wANwUqRnWbntaiRw8wAPgrQCecAAG4AlLD8jmTQr+4A8iwRNCAaL6rQFZrcnUi+sqMPfELuvG0Pa8Dg3XEPjIDvd8D+yEj/jkJsumAfmmoRhYCgp2Yox4BRJwTmhuELa0JbdcsMOozbX8jNpQJ/x+bXUe8eUmCHJQ4fHUooHKqJvkYz7wwA0ewQ3mjxia4RlWaXuWaAmdMPT8rwAegAnlTcjg4A82AQFfARaKoTBqTW7C0Pba0Ax7MffKEBh1zw13b+yIceCM8a+Gj9bo8Pi0ARqQrxYC4QaQacH+8BT//gz8QswFW0b8WK7aGBESAenXMkwHLYHxzEj9TqabMFE+OjENPhHc6s/FNG/oqKgJUTEKn3DTTI8HPkAK8qAOPGGuYGEX+knVclEMec8XhdECgzEC2dD3jrEYExLsdNGKio/LWMkY1E64FKEPwMAn3ORk6qTZZKEo8AQlc8soENGPFlGpwk8cuaOmHBERI4g+won91tGbyGju1sANfhIeXUFq7ooeXYkJ0y0CoHC6VjHeZgAGeOAL6uAPEHC4JErJas0i33ACHbIXt/IhgbENgU/rkHEsC86VHC4c7gsajIEwakETOgEOQtIPIUiCjgHEUlJbWiepzA/QxpF1/gdP/7Svw/SyLRYPtRDMZMxACK6ptNaADn6yD+BR35KsFPPm9JowApIyH0tvBnpACsIA6hSBKqtnanAxK7myDL1SDb+SAuFQLLGOLJ+syeRwyx7LDgkDuFyhE/CAMeUscjysEHVLdZKqL8VRtliGZfxnJqmNxCDnjFALtbrJJ0qLtITgJ9MAO99AEVIhF57hxepGG2DgKMfsCRdgFZmwCf5RKhUh33ZhF6yysYRPIlmzIRkSNS1wISFy957sDXdP+MjLHbLMpA5FQdiyGYihGn7BFCahjNRv7wjx7lgn0DLoEcXx7rYRQ5cT0ZrtJueMJ6mzMcEAO7NTNHOBARkOHnhgBv+OMjOfMAIeYAboLQ8KsBEO0D1t8RkbEODgkD7zszXt00dTkyHN8BcvMAz7MwOHj8uu7DYP1BqI4Ul/gRV4KuRkwcNCjBr+jPwktHVukHWcKTlpC6dqS40O0S1iwc7og/286XMQwE3f1ErGSAjSAAvSgAfgQBNqIcnE62FgYEUfAAfgrfRgQAr2oA7YcxM8Ybhw1MWkyDWFVDV9NFKLdEi5UjUfdT+hTNauDBsUZISawRqsoRpGVUEfp06IoqZmUkKJ4o8E7AYHE8SSk6mYqmhU0CTRlOZwUqjMwHPeFE7NAgGEAAewkwe8IBAiAclWqR5V9AbukRWZcAZSDzQHQRP/ZHEXbPEZpoHL5LP2KhU/HVJI01BSvbUrtTI2dzG95LD4ju9TrcFJRVUYLAHn6uTPMowo/mwRuUPjUhXEZmtWaXUwrY1OcBItyEgB3DRNyMIGcMAI7JQK4CAQQmFPr0xHVHRFPQAHmNADnPIzZ1QRElWR2FJbwwFAHxU/ybVc6TNcK3BcVfZHMdUdlHFJoUFBRDFUSTUT6IBOgOXaGLElx/ERO8yZ/GdMkYZYikZCEQ0XLOEREpNNsak9gKBNGGBhjQALsEAK8LQ7l0HownMG/hRjNzZGPzMQBiFRRaEWfIFmsQwhw65HITU/V5ZSWzZuX/YMFfJu5TBAzSEcRLEZ/0AVVGtBQSfBEjKBTtD02ohTqQ5R41bnpoq2jY6WZVrHLY6KYHnyTcWCcxjgAK6DYa2WCpxAEUp0T7Xha2dgB8L2a+cNNA91EzahFgoyW9k2Kyd1SG23XNNQXC2VXOU2AoHxSL8nZrXsNqfBb0FVSh1sTiiM286vgmCLS+2Sw5BzTO0BHay3KSS3S3HhFHASwT5HatkEAcYCZ6iWAXAADIyAB6ggdJ0gD0p0aiz2Yp2SUL0gDPbgY0UBbYshW7WVW10TZXHXd4P0dnvXbn0RXREOI8PBHKDBGorhQA+UF1xB53BueSlMghhvgkwSelXnKJwJTD3resHDekc4PNRIGv94q3vnrLRuhny9ggEQYGF3QH15gAegIHQhVhPQ9nTFdgaoID3fYEY1ARQaLReKIUezrHZxN2Xr1ivndncLWGXhocmCdyKljElrlhiKYReSYRd4ARRYAREqWPJQgS538MJUp0uht8NglRuyN4BMGDz8h3Ipcf1IC1idBT5iOO4iIH3VFwvW1wlg0Q92+HRPFwt6wAvyYA8GoRFSoRaKQZIVZGSXmInhNveajIAbUl15MWV9jw5njcvs0A6P7zZpdi2LodFeQRVGQRRAARQ2wRUGAREQoQ90roxxjmkb7xTQFHEXcdDUuH+awnpLmFbx7hgiDBKctoU3Z48RoI/VF5D/1xdiFUETNOGQO1MKvOAN9qAArXWSFYR2LfmSv9U+3SEe5DMemmydySEe0tJTp4Fv/9fg1FWUOZWUs5UwJJmf+1mS3VMVXjmWX7cTAIGWbbkPGqzBJExezyjkJjHaJgiYg7l/jLmYmUr7KPcU0pGFtalNNudNF6CPbUCaYQALYGCRrVkTFOGQTdp+vXkQrFkVrpV/5Zl25/M+6zMCl7SBiWEXFCmS+xdd8BC4Gk2RhBpdnqGfr5WpfcGf3dM9Yxeqj9ip+dk9WRmWHcERBgEQajkR8GAS8CDyak5OHNp7w+lwu48vv/Et/pKpjPlLABN1Diwd0aKFw1d8fXUBoHkB/6iEhgEZC94gEK55pU/XpKegm8vWmjdBFbY4W82BbdM5ZgfuZH2UnZuMgRtYqWthFFJBFTxbFY5aQXx6Fx7tp2O3GB7NqFWBtVublV8BtmvhFWQ7tlUhtt2zqqmai39aFWLZEQq6lm35ExWarE+h2Dha/SCBTuysJb/Rz1jHKUa4hEs4KWCwexvUrklLAcI3pPm6r6k2Aozgr7FgkQd7E675a026CV5asYm4sZFYnrfsP48RXSsbH5T0yjQbuEZhE1Lhdf27iENbtgf8qWuht/37dRM8FUYBFERhFFz5wVkbtmcbtnfhFXCbi33hPTWclSOhEQABxAHhqxtsrBuaPv9MhgexW06WrbVMctswDE/g2oS9ZDBRh2DvuLRsQIZFmgF6nMd9nMz++oeN9Zo9IRVEIb1R+g3udxColYhj97Hn2VFPk0dTloFNWUH4lxg++3Wr9b9BQcAHPJKXmrNTwRPO28sTFRQg/MFnUaqvGqpx26nnnItfYRS02qARYRASIQ2UV14JlxJRRs6Qm/HGqcK4N9vagmiIBa7VrHWuG7vtmk3jznyvIwIYoK/72tJxgIZ3AAveVxMWvNEQeb0ZORA6oRH6+xWkxjvNAeDo+QKRNL1GOcutuhZE4cyrNdWr1RNAYcJl2z2N4Z8t3Mw3oRE0Ad9qtNdhGcIlPM6hmiD/fWHO39PCYZvBQXwQxiDbvzrnJOyobhLFsTsxR0ecJnHxrpHPtOVfW+ZlpGGFI71B5Q4ILh3TyezSr6PebSAC/roJ8kATPOGzDfx015sLujmmq3UUxvwZ+HayvYfK1Us+d8n40MWfVbmzX/fYMz7VwXzAZ9sWd3sXVOHMG2F0k30TmJ3BR8G2K3zDNVzDW77O7XzNIwHbz2AMpmAMEgERYiETYsGMzXGZx53cT2Z0iP6hzx1yoG3RMTopQG794D0tbGANKovqOR1jd4DeqSQCKmtjiTwVvp61T1eRQbORP5bjd2Ftw6GdH76vdJHWlpRdQf5GOfvMjd3YtTrje33A/5/9qrl8E0aXPXmd2Zmd5XNB2l/eFwhywrM6EkDBw0F8D2qZDhIB57KNe8NpdIbeafNodOKkrG+StVIHLsZUtijocVIc3sEgs9CX04V8B14/6/V96xn2Dag1Ub8+FcSW4D22WosYtaFhnoev7SM+XWV2y67sn1m5tRn8dR1hE/Ce5B3By1XetquftR98oEleETqh5E++1xl8zWEbFi78qmV+zWFZ6hoh/R3BoAfB5qeADiZfFixfXpcZMU8G/7vJZOBEEwHikcBTkCCdQnUKlyxZuI4du4YOHbdrFK8dI1gwoxlIczg+WmNmzRobQoTg2LHDSJoZLHdEYLCAQQQbEf8ipAykKKcmTaJqeWDZw8uYPYMUbdo0qlatYsWeTQtHjhw8cu6oRo0aLqtWbOGwTYPmddqzXa9ejdrUSJMjTTkB5VTkVtEfRY3qbgIF6ugmR3AVDfoL+C9dR5s8gRqFF5SqsoxfgaoEKlIkQJEENbLsyFEjR4IAAdqzJ1EiS4mkHbOF2palgmY6znk9J6SZkkJmixT5CAykNZAeoUIVK9bCU7KkUeNGLfnFjBkJEhRoSaBIG2BMnjSSsmXNlzIj4LBpRBFbnJpGEfOwA0aTN3kCDVKbSpXSYtC+hot3FetWbPWh1afPVIC77ILXXoG5B1qCCQ5CVFFr8QUXgwrmQeH/Hu45WFhkeI0yilmOhSKZZI4AIsiInXnWWWd+fPYGInigEgw1Dp1mS0GvQbLRa7IJMUdtQqzx421rdASJJcAFE4xwtpxyTHIyBoORQcyd8sgpRk6CyiNmgLEGGGl8iQUWMBhB5g7fMYDmS979ZGEg7SFVywMsNTGFhTnBWcuA9D2VFTn4wTOVV9DQ50sxvgw4YFmIHZbZXwmOASkXknIxRaWWSgragXtAeumkXBC1WWZ4RZLYKCBGFsmIqXY24ogkkviHiokgQppx0twqDWpR3ghbSCUBKYQNQA475ByPWBKLKbEEoyyWpgTDiimmWBLba6sVdEq2WVIpUG5u9IFI/yCBdJIHHl6kAcN3NdkgE03ghemFF4FoEh8Ec77hnnhwvpInU2BNIyg0zwhaDFmvGFzWho6AMqKEkVZKZ8Q9TDwxDD3AgLHFFFM8pgcZq1dpGEQBktnCpIYo2YkpesayWykqYllniLiRiCnJ3eoQLtn2ZuMjOgI5G23B/hrSa49MoiySpsiC5SSZoGLJJLB1RMcjvVGprW/d4oFIJ51o4gpbe7zhBRUzuPSdumr/RCYc73nC9no4HcWhfErtEuCggwZYcKKOcZhXw46CNsYUTVT8ceIweOyBBxA0/jjkjUs+ucdN0DlyZqmGmNmrLZ/o2SCdtMxyHZYgG0xFt+KyJP9Cxz5SdWwgDSs0bcLyuIbTyQYjjCmZTAK8JW5M4gYdxtOxwxxVd5vlbwKxkUknm7gCCi+ppLJJIIiU3QRKD+DwPfhrFzEDvkXFzUVRR8VXC7/87nL3wWQhfBhehDU6OKRjUIo4xo5X/rgABjACECig4wpYAAgkcIEGtNwYzjAIkpWsZKRjGehC56rQDYILlngWMyZCEWmwLlvRic5u5gASHtWOJDYI2m2QZgplxFBaljgeHdzwCDcUz4bQ0VqWMgFEVriCF7UgYhE30YmxeeENWGBJS4zQxB3IqQhjggOF8nA29bxhEHRDDC/4pZTDjIIXHCLjGAG3l84B4i9cKBz/xAx3uMUtLnIQeEAEFliAPOpRgQ0owB0ZmEc+3jFyFmvjGVjWqpYd8pCeUUMFSTeINKCCGcnhBjdwpatsvY4OrxnSj2o3NBuw8IaZkBa0ooWINLjBCCdJwxTc8MoeuAEls9QhHvqAyz50ghVENGIRVTGKQeThDcTkAjHZg0yyNUFMM2hCeyjkxCaE4W3VW4wqyJiXvOhlmwZao4Q2FQbDbaxi/3OcHR/gRz2qU4EKBCQE/thOdtaEkCF7YMtGdIYz1GGRnytRI0gGCDXoExFvCAYzKImcS44Qa8eaBEdi8yPblISFQ5uNG35nCmEIA1qJmEQadgAGlHxpCokg6Sun/3BDHarUDYhwRSp4wYtdJOMVxNjFKFLRiUCAZpjxIuYwiblMGGAhDFeUwgzGBIMlWkgThfHEUfhioTaJS6c6fVQYODUFji1uBo3j6v8KOEgG3pGAZH0nOxPYgDoysI8LJGDjClmpLzASEPrM5z7pOlfS5ZNBiDAFM8bBjQ9SY3VLyhZDZ5fCFYpysaK8aCcQIYxfmCIReHDDR43gOBhUSrM9uJSl3ICeNAyCenmCXzIIhL1N5ERcXliPMd9gTC+wBAZvsFAeuheBJswpDLANRCP+Iq6xTSFeTWhtvIZ7XNhWCnHlrKMAwWrWQCaQgAV8rgGrW90DEhCdDKwjDD4A1//C1fUMUxjvIcewRkUCQq57aOk5xkEN+A4WFzozrNZ8JrtPKtYGQBAlEL5lClawIhE3RN5ld/CTk1YKliU16RR2IAQYIMIRrthFM05LILzsZBOaECYWnEkh9ohpJUvMw6aaYMc3YKy1sH2tMblg3MslVT1C/dhR/WdOdQ5gx+lMKwGl6+MAzhGAg7RuAfv4zgIgOYAf+MDEPHspfSZiDIk4w5SvfAa5zsoUyXhvNyxJDfrWl0pZks5seuQjk5SkAexqsw3SAC5EuEiHID0bgn/SA/5RKquWUq6lEAEIUCyFKaDoBGGOwhYVe8HEFGotuj5c3DDotiY9cOJRjZC4o1r/2ok7OJudm/uAdqpz1KTWY5E9NrE21uEzFxPgV6Pr4z1CQGMUczLFLKVPKgOiyokAxBR87eteD0MY+ngvN+AbDDEfRGuTKNZsgCAEaLeZAUBAABAUcG3quMFLdA4pSrCD4PRYjM95Pq4XpuBKziJiEHiZKV7IiD2/ULUTgwgEHFRcYy/AgCUeqAkD+P0Ttm164ClBTzn7XZM89nEADWD4APzo8DxGfJ1p9UAPMDeIuqyxcIuTXHWpS92Kz7oHTS65yZ1MKStXqsokLWkvVg6IXvziHDRHTrJx8ZunHQ0MHwESEH4ObWpTGwEMQIDRFYAABeBg6dZBSUo6bWcj3Dhe/60trr4/7IWgFHcKiGgQhQ9WDA77pRP60kQgxvCGRyMV4RGICeXIup24x72PdEcTA3aM97zvGAB8B8AA/K53Hq/TA9Ksg4NC5Yg6cPwDr87u40TuAcYX8AGMr3yTL9Xgl/vaUi/vRSeGcQ6JJEfMzntEJgRSPJ9HW+jVLnq1k37tai/WJN+ewUqyA/XZ9gALuxeTUGdw7iYYcwya5TooCjYKnahlm4OArZiY6RJ/M5yrcj8n3LfTAH834O6BD7zfAc/3v4s/73QPpAfa6Nu9BK5zY2i1qz2WscZXt/IQODmUybvrkrqcZMNmRe9MgQqTcDSPwAa5AQZusAY4UBLQBv8EQ0d0RgeBEQiB7WITKGFwFrhpieN7HUdbkIIIY7BuC/MKm+AgTMV8MAYD6BJ923d3d7cdPVZ3Mchw2zcA3NdwCIB33zd+36eD4Id3pPY40sRFGzIqDLNGU6A4ieM4boVdBVRy9VdynuVrL0dSMWdlvXAGzRKAR9NsQkI70cYur2dtEmh0BxCBrccA7iJ3NeE4uXdUvud7XDUDeTYG9eZ1d+EIhsYXSAEKirAHXJCCMIAS3DEAARAAfsdW3Ud+DoeDMaGI4seDkPh3OriIMEh4XFAHC7MoiMEh/7QHF5OEFoMxaiVyz/VdFnd5lUIpLLNyVUhSMDBLO4A8sxQSXzj/UWlodGJYhhB4AABghkbni0YXAHZHdDPIANkXQE6UOB0wOepRh6GTIH6RGUhBjRv0BheDYISIAH0HAEq2d4+Id3ZXgzvGfd8oiZGIjnoHhHmWB41AhI0xCiOShEh4Mcw1R0ZmeR9QKfp4SL+2cqKhf/qHUjCAPHRwG/olSq4ngWboiw3Zi7/YkBHJjTrYHZNzYxjTAR33VnVSFH8BKQ1yF7WAGCTIcYP4Ejg4keDYfS04juWYg3t3iJBIid1XADWYR2yoWXvgCIixGAfjGAyzWYqDhEgoR4wDA9UVavUHhU6mj5XSj5ayWYkAAa/oBhhTlZYFUhCGA9snBA8YgRMJ/5Zh2Xd/d4jhV4M18QAWiTFeVTkeUCee4QiDUDifMoR5AQiIMFyCuH0POJEBsHAqmXcsyZKKiJLnCIkBQI7qNFZ25DF1spMbQhb2w3EwIJVRWXyalTEfMGvgdUBK+V37CJVDCQGiQZmv+EoECYszMEtCAGFCkIZoQoZiKZa9GJaTeJbZFwFp2VVt2YxTMAh8sUZ7IHyqeFV5gIQItpc4uI0TyVZ61AAxeIzb95y4mZu5+QB2tB1614PjR35omZvTVQDoNGtjkImIkTAMMyKbNZQNtnIXQ4+iqJROKJ8mNwVKKZV0AAF0UJoppUMEGYsnIQTrAptFV3TLKZG0yXcImv+S6BiTDKBH16mbHtABTRhqmlUUfiGXU3BjTbBvlYOSYjkAY+VHf3RH2XdOHhChATcDmLaii/MAfwmYfZSbS5hk7XSdMzAFX0AypGIWFCSQlgIpLBeaWXUxHoNdaWlyRzqao1maVAmLsbiaAeqaRTelRld0EimbWMqNk2iWO9ac14minRlqSTmVEcQghjMD2Lkdx3iMAGCgfck4jWNH4cmG8IcxoNg/Hco4cwqONRmeupmW0JVWeRRqnXVIREhBlQIpu+YZ6KWjX+BGlpIxSKmkR5ox+ElgoqFSQjBLIRUsM/ES7EKgRFeg3IigD1mbMQkAqtp9bGWdgTp512mdhHf/OBczodxVkzbZcFzKjcupWRw6OXdUqBMznFxwVZEiaYrDVRL3g6O2ZGwJOQokngmkj18QQY/ZOR94SL22XozKqEMRqf5TXeFZqbMGf6NJB6IhZ5W1A2sAUiZBE9NGoPPKl6iqpb1ooIU4AB9qm4CXdw+6mNXJXW4FQH6aq9o5ictpoD2wB+HUA2HqRxYXMntgeIHwB4BRB1xArHD0sOj0cOo0rdWlOJODTtxVqDl6rRSECFbWj97arYe0sl8QlJ0prRDaAKFGQJian5SpQwZZEgpIG9Jpd0NLr4aYpSmpkoBniHrXnOrUtGNqsxLHrHnXd71YltuIAFMQrkuYlhen/7UOoggT5AjCmaMPszhSK0+wOnLjhDGaaaPUqqhwGTqOGqSRmqPeChrhhGNpiUfttH3sVECJQJB08CvVUR1rJq8D+oBoUoOwGQBYy3dvGrnkKJiF6HdLK36GiJiAKXik1rTPua9k6ab7+riH2Fmn27EekECFNE1yyxdx+YdXRRR10AQHlEAFNKmTA14b20btR3JnxU7F90AScpeHJFeWMmvFR1crG6mMA7zOers7q5+EC2FauXQRIARsRrTbO47D6L1Li4OhiwCb24J6dHebm3eYy7n/SqgQep2EerC9WroKe7pZdY8FJAWdVYd94RZ/UQcNq7UUC4iOQ67u6UanOP9uigqukNIDCCStuFspdfC/EwwakFopswbB3DoUegux0ipdSiadQYY8rFk72DsTQ0uq28t9DOC9CzCMjHu+oSuYL5FOeKe56Yu+67tH36ljvNqr3LhcE+O2j3OnbWSm3jQIEgyp+0Ne91tAObpqFmxrWZVP+iTBEjwFHwC/2KVZS7wp3Sqp4hpXgACuSGi7HixqPcZwDAABNwthJrwucafC89q9Mdy9LXnHLdljf6R3mou+6quSNymwf5SrR8t3luJ+BHSneTYygSHBeyBXS9zASNmY5ElXMkukhqpPGJvEmjkA8SSyQwqVoOg/GJOjm7JZ73Sz4YlHTnubXMnGAQr/qtirva+pAKMaE4wbuoWouS7cgitMjjYpd1PLy8WMwyrpqmiJTje7Y2V5tG00MZ0ZeRpjT0h8xXWwxO2HQOTaxRG0GX8wTuXFSKvmGWegmQskntX1ZKJMlPUpyv5zsz/mwc35cIn5nGz8nDWRfd3xEizIALecy7ocyAerr3gXg9Npw5p7uZuruQzgdyzMwuQb0AUwtDv2oYaseFmVR40DXtRMFK6SxJvCxIWDot3VZHL1B2tUB+GsT480yQ4sshszyolDlKYMAQj2osfot/TcqtE5nfp8wmm4faKKJgFtx+pLAA/noHlkx/b8nArnjby8tP7azA7twg19w5h71Ubr/8Oy2YsZOsQdvbvDe8UPZNZZps2s3IQ94ANfgM0kB9cf4AMQ5Bkp7RkrPcRJOUekLEdHibsY3Ncft8rPOad6lNDbKbSJLRPHqCavaXcLkMfkR2ou+a8hjNA4vNCIqdBXjYMRbbmi66YJOpsRaaDYnMWE2rYa45tkvDGRcgaQcs6sHL311wNOMAUdYHITk0+h0zJZPMTxqTF+7VwUWl2Dfc/TKaNKlqtGq6rbeAD7eoNEK6qh2tgBrYhJ7bmtatk1jMNLa4hXHROGOL6IGdrOHJYKK9qyuXmdSXKLnMXfhV1OBpWaKdyhRq60rZn25wPiTFcR9AUkF575jcEwHc9tbP9HbWzZ0+nTyO1wUv19h6iqftfZjXuS1F0TOMABUhTeLkzQXgq9He7hyk133a3ZLgwAWz3eEI6D5v3Db2qgChq5ACCzDXy7tabalHq78o3IWfXbJWcA8gmFE9PW+aSjnpFVoSbgYQoBHztdPpZWxt1wMnHZgafQohvh4SfaBHriDLCVEcAB3vE94U3lD/cACVAAZm7YK5ngu4rDMXy+K+6m4s3iVSva9hraE4mg/33OBSTE35W625zOTiZX+4PIJucDv2tAJXdr64VeiQeIf32Uft3KgfTJEXDcT83meBe+Cy26vNqvq/rgDm2lDPAAMoEDAddvC0DRgdcACZAAZY7t5nekiA6K3Aqnd1dNjrg+3p0O6mD54nSe3ghqiOb821oFXtsMyrQtznWFyXwm11nsA00W5EKeZV+Q0nXQZAFO3+Oq3O5U4PUM4ijJqg/Og2Vp7uQeASnMzxFQBDtQBB6wAG0XAB1u5q8etSBOjpY+nbYezOK4wjc8vnCepfZKmzDedwowjBnryXyeyW3rt9Sqzj3wQAmSZeKcGVmWTy8N1/s9BW196E0Y6UbaxpTO53+95Gmed4XZg2U5iSwek1wNABFgiCycy9uBnQ7aqu/rvjytjiXa7X4K7hT9yzN/ueTO4s5tqiBqiACtZAEBACH5BAUGAP8ALAAAAADhAOEAAAj/AEkIHEiwoMGDCA2aCKECxAiHJyA+dEixosWJFnNo3JiCo8eOHEF4vCjxocmOJmScXMmyZcSXMFHKnImiZombOHMy3Mmzp86fQIPGVEgwRMKjAlXylMFUKUmKI1K4SFESxFOTJ0ZoFGk1R0WvXrty5eoV40STDlOMWJt14dARJty6XJt27YisUXOYSJECBc2+KEq89Um4sNDDg4kONIq08cWeTjFaNTvZ4cqqHzOPDbt1Yw6qJF20VFl1blTTav/61cvXr9/EhmMjng2zcUITRQk+JhHiquXSVa1CVQsCtGfjwsmK3ChyqljhqKMCj06VuuoUJ65nt00Q92LuA2GD/xd4YvzuEC3P0z1N96vVjss/e5YPUmPH+suh12W7NvVv9nf1J51d+wV4Gl/apUBCgguOR4J3AjEGXnngQcibgyWRUAJvKoTgYQkfhlACdZahNVlvYB0n33z3zWffZ+qtpxZ/B5Y4nF14pcbXWwwqKJ6DD+Y2HoWNWSghd0QetFIQJ0ylIAnpVSYlWPHR5+KL9Xmmn4FQkUigjDgKiGB2rPVl5nY+2nTCj0AaCeSbA7k5pEBermeiQyguN1NmLu55WXV4acjbiAXmOKCd1mHHV5muKdrgCSjUNp6cE8JZpJC23Uijf3bJNoKDlCJp6XhqQhrYmjWdaiqomIpa6ahAov9Q5whH2haqbUnCOqlApdZEQq8o/Mrqd3MWqyuGpg0boYO5HtumkMAKG22wwe5K7KsJNessUtEpe6Gx244q67TSquortcJauyy4R2kbLp2FCvjsta6+Cyu56Hpba2PuHrQvUv2+2e2862JrL0IbkvAjvunqy+y2AcMJl4Xc3crvwUclHLFBqQq2KrrVEvytwUj9266zE79pMcAYJ6RxQRsuzHDIIpuc7W2t4toywuTBrLDKOV+8s0EvExQznCufjFTSNw/t889GQ20p0wht/G7RAx0NK9VTB82y01FLLZDWx3JtkNXhYj222EObXRDa26ot6MZwx+m10mCvzTbZTR//7DZBdR8rN99Vj/p3eHln3XPUdONd8d195z042wdpG3iQ9OqcuKB7U1450pAXvvnkjZ/ddeZCJ06640Cj/rXqiyte+tu6Hh675LFb7qztnu+8+uuAb8v75e8Sf9Twm3OeK+Gfm/4u8okbf6nrrDv9e/W9lx168zvrziwIa9b88Oi3z5168ONXuL3zQHrP7kApC+SWCCHQT3+HKiic/wkgOvz+0NeLHOLS578B0o6Ao9lf/+ynQBnQRnz/8135mMc+9IHrUwQ0oME+tRIn0QksNPhBCD+iQKOIwCD7U0EJSXBCBhawXrjr3Ows+L/LJYmDWamLC1wQBA+SIAc/AMEP/zawARAQoTMzI8EKWxg46MFOhufTIAwxWL4qJiR+D4JLEIOoER3ooAo0qEIMkpAEPxjCD3aohCQuEQciQkQFJLTJEllYnhPMUQR1zJ+6RgZDsAVQdAeMouboBKWslGcEWxQiCGiQgQxsIAYxqEIc4iCJUGACFq3QBSGqQESNyKAmcbxjHbFoAio+jnoCtN4EsydFK/ZxkBnaUG9GQIMw6mAMe0AEIobhimQkIxvbqMc2tpEMLsDgCkioghjFCEkL1HIDNBBOWKYEggdCkGSqhCLwWpnK1AXRh4hcJA1iEAdQvCIZ24DGMNchTHYOoxcf8AASWgBJSJIxBs6sZTSjWf/EfoKgiAYSlIg+RaHw7dFmgIzh8lhpxcAFzo0Q8UwtxQgHJ+CBFd5gBz3oodF6bHQfIPVGL3qRiET0ohOsGMYuWVFSROzhD3+wQAwkIAENrMACFoBmLAdFUPJczokK9dkMuelKGhqQiEUEwQ81EsIwVqESoeCFNerxjY3Sox4eBSlI2cFVdgxzG+sA61eTUYxi7OIVmLBDHOxgBzUQoo06SOALBxlUxgmSodhjGQgaiVMvKhMJSUBEIEwxjGEEsx5a1epHE8sOkFr1ox6lx1a/+g107iIZpBCEF71ykySermCvBOAqh1pUvBpkrz+wghdjYAVIxqET5xwmVhErWcf/7kOyjU2sYxerVY169avDhAZmAeFFsnj2s3ykqx9He1f3VQoEFpDDK14BijP0IQ2JGEZX76Hb7nr3u+C9LT2EqwYNEGGnA4WaQed6VwlqE3t1g9tDLGAHUPjCF6PYhCsM69Hchve/AL5HV5PhCCRoIApBFKX+HkQxW60vkHWVXXPbqzTWvmKY36gqV/fh3wB7uLsbzXAkzqCDDSjBhQq2I4NbB1rlZnOhpGWbcxGiFBVkwAq7wMY6voHV7d42sbX9MIAl+41hAMIHQ0RxivMXF9ChMqHLfW83czXjo1RBDOjEam8VK2QOi/fH4d3oNnqBhBpIZiO/MhfIGtadEJzg/4QPcjOcG7y0Bxv1xUINLVLyd+VeZnWrXBZyYyVbW0KDWbH02EYizmDmh0QTLGn22LmkdZC4yFl+cX4zpul8PDsTtWV/9FzARPiDGOhgjIbdcGP9a1XGBtjQhw7yj+vRC0ckwg5IgGYom6RH9T2ZexFeW4zhtuQVD+QHIjz1CuIwjHWoWretxu2G/1voQAeZyMJMhiGS0Mlds3ebeLYruJWikEsHCUJVHogFkrCHPWT3G1zlKHdzS++MPvvVPzb0te8hWaoWuQ5eUGYt0RwYnIjoJvzjn5Lnt+kgHbc7nMYZ9Z7k6xbXuNhNLu1BdFDfURiWHlWV96q56o2S23varv/+LqwJrW+QYnWYu9iEHGJQS+OyqTEPjxNuGH5uzOFGBTcvSM7lt/Oh5E8GvFaiwhZIxwV/+iBJkMQwNfrYeQuYHSIVKTu+UfJByxrE4q06y73b2G18IxV5aEELcvDoUmHcQjsf+opNcAKe79znCgPfdmiV3Eijas00C4/eFcT3WqnEBXbvOYS5GfVhbtS3/PYH5LE+0l6UnOsZriq8H/tRzos9394N7ijisIINeHtYfjGB3JtM94gjBHojyLkPVZD4BqNNB0lAZ+a9wWOszqMeGQUpSedAB0SYwhXCGEYykm/YZHzj97Od7eehPeurhrW6GKA5wUvw9u5gbvVF37n/ue/uHdysafBQMgpChS732Vta0+cu//gV//O6jxEQGWZH5YfB+/xfFfi9AARCYAZAMAdCQHwlZQklNVLJ0H9bx3mHxmWN5W9GNgU+gAEZEAPuZwLdZzeqB34PUncMNn93FynoV3jgkSpqRmmBRx4bSHvjl0IqwH11lxIyQHtTsUMqIANsp1qbUAzJgABAUHwp1YCyNUyukAhu4AZ00IRNOIROSAeJwAqEVYSHJX2ytlHAlwydEAdWoE+nRz8ycYNLZ0JNp2If6DG9dkotRmGksoJrtoO0MhVJR3t2l3Hy0xRNEQR8uINMQQQ8pEydsAnDIAQNAIVSuIC+9A3V4AqI/7CEkBiFdGCAc5AITUh8UlhYGRZtu/UNJJUIyrQRNJBEY6gCbqd0/GMUp7iGDvZrFfQmSbSDdRgXtachQEeLTHEERKCLRNCLvfgEwPgEYiAGwHgFVTAIaSAEeNAHO3CATmh8muAKndAJaZAGeFCNkJiNdMCEQrADdOCMhMVfkSVyntgDBZCBniQrdbFIbMdU7UgDfMIiMkiDtEiLC+ct26cCWYIlG0FKn+J6BFET5EYQA9kdTEF7QWACfKgFDLkFDKkFaBCREjmMQFQGZZAHeYAHiHBdTNiEQvCR1riR2FiNJLmEaeAG2KiNdDCE7xZyIqd/U/ABGRBX+eMQ0WQV+//0jjoJjyFBFr8yj7dYjyYgAhxYi+WnRHVnh/84MfkIHyAkHNH0EDlgSq2YegVpNw8ig0yyQ1OhixCJBnygB3pwCGN5CGbJCHdwB8OoTK5ADKyAB2CAktiIBWBQl3WZkmyQl3lJknzZl9w4B3hAWL/EdVwlTKAwCKc2cPpEA4+UATJ1UysgASsQA5NJT5CUgZEkcDyZA5+kFVhiikAnECLQgQ33K/u4mDoQRuPUSKyZASH0Rhx4j7MYF7NJdwUhg0eQm3yYm195CIzwm8BJCZTACb9ZCHcgB34QB6nwDL/AkSQJBnvJBteIl9G5l365l9DpBkIghU1oUiO1dd+wC47/YAGOpFNIlQE0lZ6SuZ7r6QDqSVPoGUbKURYaMRWMkhK06CAHqUBUwXaL2ZqsqZ6OhF4Jg3NXeZDeoUJHJwdiIAfCSAZkEJF8cAjCyQjDyQmc8AmcUAql8AmLIAdVIAm1YA6pcF3Q2ZcoSpLWmaIquqInKQRQaFKJsF+OoAlIMAErEJk5KpkO8AIOcAEvEKRDMARBGqQU0KNIugIOsKQ5GgMZmIGPRHNgBI9U2pQ5oBPz6I5TqkyQlKNeOgEvAKYr4KMOMAETIKC6JhOyyR0oIAMkoIcqMAIqJANmWQh6EJF60AZ66psXiqEbWgobygmLsElVYA3u8AudAJcp6qIt/7qojnqS2umMH0kHDTAFblADZRqZkumlPVoBLPACLHABPFABQfqpRTqmQYqkDoCe6bkB8ElE+sSOeiJHQFmDJrCYRMRJ6KmkErCkZQqmYvoCK2CmZwqfGUARU8lC9ZM/KmR+4HFxfniDLtAKHEoJl3AIhWCcd2ChfsqhgMqhG8oIhOAHVfALzxAPtdAHRQAFjLqXS3iXJwqpJ9moLoqdHUkHA4AADfAAFNCvQIqqQQqko8oCFcADQBqmYboCHcADRaqqvtqrTDqmSuqlkxlJYLhrokhENJWjQjoEHdABO7ADPGAEJAsFJrsEJDsDM+ABLOsBDlB6RcRZJdCCdZYUN/+IGzeooDIQBDJAC7dwC6uAoYyArYXACBgKrt76raVACYsQB1fQCbVgDb8AB2DAru2KkjvgBn0wndYol/RandWYl1iwjd8oBPpKAATQr0EKpgh7AW5rsCxgsKDKAivQAiswsgcbpjiKoy/7skoqrMK6ozsqAdBUpVtBFmCBVBJQBZsqrEzABDAAAzMguSlbsihLsh4QuTDgAcOKVLCpAiKwiqioQvSYEtGqAi7AFDbYs7fgs0BbCpdwCYsQu0lbu0K7SVcAB5qgCdR4A/H6tXx5je5qktlZndZZtWmABXjgBjsABPqqAAIQvUd6AcDqtxIwU+iJVPrkqu+JVN67Aaz/6qWAC7BeKkbXq6kUm74A+7jsG6ROQAVUAAfs+7gvwAT1a79EygMskJ7HiqxaAXS1WR5HdwI5a4MceIN6yBRB0Lo/uwoOjKGX8Ke1C66cQAniWgVX8LSKAAdscAMpipLtip1s8K7XeKImvKLQubzNiAAcgLYC0K8V4AAxHLjGGEngO6Wk9kXKBEZT6k/bWwUUW6QNq6kzlZ6Mu7Hp67j3O6T1W78rQL9Q3MT4ewFEWgHG6r85AMANxH1vSsA76Ie0h8DRqoc8CwxmzMCrQAsTbLsV/JubtAJXIAqawAZMcJd8mY1uAAbbSQdrMIlzQHyYuAZu8AhrsAZgUMiFHIVx/7mE3+i8DbAA0SsABkABBiDDObrDm8mZKIC6UuECCrqDWcxAFFFzR9y4RUqkqDy/qjy/YOC7NnADNxCk6suemvqe6umk7kETJjAVX7y6CUzAYpzAO8sUZwwMrZvGDpzMq5C0FXwJv4mtcdACV+AH8tvKaQCdcXnNIQsG3igE2tmd3DmJgizIblDIWquEibC828iESviRhsgBAkAAkmwAFXCkkUmZA+cRnKyDYJygCloTIvFMKwDEStqjLyCqbrvKj1u1rMwBNmADDt3E6Xu+zNSlFj2ZSZDP3sbLwjzMHY3AwhwExfyztJDGs3DSDtyhgMoJslsIi+DSmySsN8ABvv9rlzuwyHiQCLqkSy3VC6xQeZ/YnaaACJmQCOH4TiQV1N/YAA1gANHrAJLsAPRcybJMsaHIkz+QA4DIQwfpEbUUSegZ1unJsS8wsjDAA3Zpl0zABvBatXUJyzdApIG7npB0vU5aT3idgRqdjlqRg56sswnMsx89xntIzMZszK07C2n8uh2aobHLCIsA2b7JCHIwphygAA+NAyTZB53gCrxQDdZQDtbgCq6QDeWAYcpXWaYgDL8gDL3kCqaATsA1TMnwTokgBADQABVgppUsyQIg1ZPsq+5JuI7EmIypSHDRk97rpBLAqurpnj46sh0wA2kNnVBQBHW50HXM0PQrrC//S1MWcL22zKrOXbjpiLq8xtFh/NGC3dGEzRTIYMaI7bOKXdIcqqGx68yRLZzD2bQTQMV1qZHTKFXvIA8GbuBhtQ7sFEwmV9vZkAxU+AsPngxYGH31kAyJMAAQQJ4WsAIaMAFLWsln6gAU8NsUAKQUkKMtYAEaIAE4RZ6tubGmzAJyPaQcwAH+CqSkerAs0OOg+uNLXATYjd3c3MpGUNY0PrJK7rZM7rbDHQMe4dcc3dHtLczv7dHDLN/IkNgovczUmqEsfQnCKeYXygiGEAOBUAnSOI2dXQ74cOAHvg7AtA2/Nw/eUFjJMA/WIAxGLeHLh1Va+H9YtQ7D8AFTEElJ/4BPFkCsZwriUB29BnABFMACGvDhHw7etrypBn23VMAEBssDLHsBHeC2L0CqQlzqpW6qQWrWKlsENx2yJPup+vvporqwCG2wSpoBVcAROdhDqauHKQDSZPzRwj7syBDfrnvSrbDs3uqnjEDm/G3BkJ1G0zDamZAJnZAK1lDg3C4P7SDn2QBMwmR2ytBsGJ4Jq13bzgfo+VYPXpUMXzAFuBdG/rlP/cS9EGsAbPvfF1ABTi0AZrqpfwuqVNABPW6qw0qsxirWjdTcmS4BxIqw+w64L0umwt2rr2p6OfAEOfDrwz7YVF7YxC4DywAMy0ALujALutAKis2hrRCoZA7t/P99rYQQCtrQDrzQCX2g7eVQ4HDeDttQDnlO51iVDb0gDN/wC7G9fFSYDTzWauLlVd8ACGeQBF+kA1fSjpxEUx/OAmC64yH+27/tq6fcAUXA5HRbt3VLTzK1w5gMSRtQ0c3k4cC6thI/vrM8mTC7mT008n7/9x1txsiQ8rqwCstu+M2OodFeoc9cCIQgCrrg7UpPDPLw5j//7eUQ7mBVD+swD8OQCMrACsKg4NVgCqbQexHIYRkGClNARp6hh0cgA7nJVIX7TGGto+1Z0H07sd9t12BIAxPx+nrY8cSvEefpSI0EvrC6T8bdTznpGT1U5YA//SN/8roADCnP8tRKrRT/zN/AOdlESwaVAAsFLrXWgA9v/g7q3w7sr+APPg/s5E4KuNoKDg6mH0xQn1gZ9gpUDxBJaORQUTDHwRwycgTJ8STHDxoRc1ShUSXDihgYV2zk6GCFR48bY8SoUuUgRBcjEB48IiNIEJcMxbxEGDGiSZwHxazk2TMHkYUyhA4lWtToUaRGkQFDNouW01mtVpWiWorTVUqMtDI6xJVrITGaSLWTV64ar3XtyMqTR3bdW1OmhmXbtm6esER5TWXLxspUr2z16t2jt88wPXb0vn3zlSyJwIMGFTI8ghDoEcyYVfiMKGGDBBAbRIMA4TPyZhmoD8IUeiRIZtiwGVKmHPu1/8uFOVy/jMk7iAvWSYUnDS50KbCntHQ5bVUVa1auh6RL51Pojpg4uci2s1at2Vq168xm+6V3W7l5yYTFlXvWFJ1E6+7NI2x4Hz3F2xiDUpMkB40RhMqtMpgqa6ggAQ3siSKJTFtJoRxcQDCooHabLDbXBtRtQwKRgikoD11yCTijfitOqBOJO46pWW5xapXmqOIkukP4qLEQPe44RA8yxPBDu7a4K4ctecSzhhdekvmFvWTKscaURFgZ5hdehPHLElPmwe++w/CjR79XHInjitImzG3AlwribTUOHTSNMhAnS2jOylrKsKWiXoJJTz5TJGpPQFEE1DcUYyLKtd586/9zUWSWaopFF6eySiscq9OjUhv5EOMHP3R5h0i1QHWyGmvKeWsbV4TJhhcohWkyGVaESXWYZOr5ZkvDEmNnmETGQCSJK05TgaHcPixKwzPrdBBB1U6ck6GhCNQtTeH2jNMoRPls7TU9ExVRREUTXXRcPRtlCjlgbrlllVlkvOSrOwopxNLpxNChkmjUWotIttR6Jy221jnyrF9Y+cUa8aopx8pfhgGnHi+9tBUROiD4oAb/EKpzKN2KUnZDkJc1iEI5laUJzpZ4k2G3QfcsVNFAexOXXJoXnbnmcoFxBhjk1H1qqqu0kq6QQ3CcrkYxxIAl31D5dZrft3hRuJxsEH7/q511TGFFvV688SZieuoZZhgIAICgBYF2unblazFzM4edYtOww0M5vBBml8Ft2VvWAu3zZpwDB5xRZJxxtMVZ2pVxEUYWIZrG6PiQQw5j3Pn0U3kwhxprssohhhVXrNFX33WqMcWVVWnteuyxWUkEhgbM3qikktw0aSLccaJ995zq3NjQk6cNYtiY9SQxT+C77Tt5Pl3DrE/nWVY+cOqDcMZwnnn2WXFOFhn66KPJkIMTbeDR3Ol33gnvLYFdYYWXIfttx6yzyjFrmF7wlyUROvoHgo4BNAACDghJ7apQmZ2IIScloUEGPvPAFUggghKQQAYcuAGeSItjeMoQbYY3/6IUDWpw1XuNbTLzkhPqCUMl3M0JMfS8I1wPez1LjrsK4T3GbYURhegRIW4BD/OdD33ps0YziHEkXjQjHvjI3OXmN79yvMN9yUgGIoAgBCzuQItGuMEFXvBFjtDuClUY4xXMyJGPbOQFK1gjGj9CQAoyMG4rK062pjdCbUVrb7dBIbf6+LzmRU82KXShC/14sxgabkXJmQXQ3qVDoeGIDD/woTbIEQ+2YFKT6ItH+rbjSX01ETzzo+I6kkGHLOKgCEXgwRBe4MoXOCCWblzBFdDYRjV+BIxrjCUB4ehAisgGbzhTwgtVgKdt8a2FJYSeIAcJyELCkFsvfOYRiinDw/+5KHFT+QQnLvEJRrzrEkWT1+QwgYxwXFIeTJRHPDaZSXe2M3PyTF9bOvkpd7qjk9Z4xjs0UQRVQoEJQyBoQVd5Aw4k9JUDZSgTbsCEFzyUoAxdaEMTSgACCECWLQjWTNj2mp8AhQgjJcITRnqEkxIBpbFR6R9309KUTROFJoQmDA3pTGpWc6auwSbPaHGLGlKlm5R4JKUOcYc7yAETtIBGOOAZz01isp3sZAs+oVrPTb5jSMSAAxiYINAlMNSgO0AoBSL6xSGU9QYVLehEIfpWiL6AAhQgAAUEoNErDGQ1znNISA/ikB88RLAmVekTjmDY2BTTNTClJgt3GoRiKjb/sphRrE4da03MZjaxPW2KNhsZo6t4M5xGXYQcBCGJXZjjfOZYIpHcGU9+4QOrl8PkbN9hDU2wgaFgdatDDypRin5RuK4cAhMG2lvdMgEMXu1DHvrgULm2kXe700EVkMARXq6gBbUcYxWsUIWk6WaFhLSpNF0TWSWkN72UVe8LHcvCyWoWvde83lJ++pSoSMo5nKAEdLhyiUIYIhKpfdpUMynPJqpWX+/sZObc+Y5adEK5X+VtQweK0Bs8FLjC/WpFqQDWC2eYCWxgQydSQQxi/EITioCDXEOCkZHEwAIWtKAEJiBLHMdyAhOIIIwjclj3Zqayz9QCZtsr2cxO9shC/7bmeiuL5PVas77aA2ojV6Ffq4R2RtAhqiEMsYtLMvEdrNVnJpmY1WekWbUFfrDlWKFc4FZ4txkWsYW/ugI7C5SLdC5CH078DGtYgxjeIUYqnsuBuZr1ixRggiw38la3FpTRil5jdymStNcglqZGbrJ6Pf1pT0cB1J0GdanTK+r09rSGtMCyc6ySlay8SxKGeIU2arsOaJDlzAzupGrNAQ02Nzgev/iqV70qZ4vS2c4VXUFy9QwFLhYBCoGoRT+bkYpaVAPF1jCHJq4AhhdwwMXCZSMbv8iEVg6BBwt9pXDbSEELSsQhJh3vEYrsZFOXWgvq3TeqT/1pUud7yj678v+Vq2KVLPOXEVnpyiEWcQdD6MIcxtg2a6PKa16DqpPxsEZX65xnJnx4CByIc0OTq1vdfhjaWCgCyTtRi3IAOhW/IIY5zIHim7+ZAwogecmxQGEQAx3ZBPUiBcqNkSSAlwYz4bSR55tvJfQ7vVtQgqipLmqrVz3qSqC61K++9eNUueCt1rJ/o/NwOcRBErU44hHbYY5dY7y1CHZaPMzxi+cud8JAD/mch4BskD8boEXoRM2fwfaaY7IcNB+SJsCAYZMLPeiS5zu6h1CBL7KAjfDOAA007XRQZ13U+953171edS2UPuqp5/rqWd/1rVP9OD8du4zKzvDp2EgPfLgDGeL/UIU4wEJ0rH1qVIuf1X7VVhN7Z6izLVznsFrY+WDFAsulnYpnLDHFMLe53Wnezl/U+diUB3z0zQ9tI+iZB63kQQUqsOMYWOEJhlW91k/dby1EIf/6b33q/Z96qtuC/fs//fu/ABxA/ws7Viu4/eIv6Cia3UODeCGD3ruDKvCDUCA+eIq74msnBnsHTHKHcpAwY2O+yUMo8pO8VYKCn+OiPEiF1rq7mjOHIcEHczixeHgGCWO+k0tBH0w/IFw/IXy/G5MAGvgB+gNArkPA1CtAAlRCAYwCJ8y//2tC/ztAKSRA2qs9Tki4/uqvyOEDPtADNChDNCADNMAOQngGd9Cn/zJ7qmATokyyhkxQrhIcMZArufNrwWd7tk54Bia6uVpgLRq0nF84GI57ruZbxB9sRMFbgiLYgfXbqCsgiaRJGi0wQzTIRAAUwE3cxC7gRDTYgiiIwtQTAyhkQiqsQv1rlxiREYTDiq2gjjE0QzTsAjTEDjFQhWhow4uLQ35pB6laImsgwQmbvjnjgPNbxj6UNmjrA2JYJ3cwB7bTKkATtFqwBkxKhQm7w8BzxBRMP1ZaNx6bgArKgCpAwplARXZsRy1gRy0ggyiQRzLIxE+kRy3Ygk2UwgLEwinUv4TTstCCDjEcwzZAgy7oAn1MyFHUx3esAknQBXfYNTbTOE9yGv9hNIdOuAFvJD/oY8ZmXCUcwAFNWDOO4wVrcIdnQLFfyEZMIoY+eKjxY8TyA0mbFCivkra/W7TsaoEYKCMyGokx+kkyqoKkA8oriAOlXEoxIAQyqMenFAOHVMgtqMqqvMJPIKpL+MKFI8haPMiErMpSFMB8dMikyQ5f/ECpEkbSWbDYGsFuLLbKCzFHlLYMwwEFsIFOaIbuqwWXbAfES0lqjEkTnEtwvEnqG78XWLcv8iU48iUJAAkei8zIdEw4kgDaIYmSSBpQNMMu0MSFnMqjqY7R5AM0aAOwpMqptEqrzETswIS0rEh5sDmb66d++hQxG0yH2i0mWAJk00MoYEb/u6QzEtOE7zAHa6jGTioHQvwFOICz3fQq4xKob0RMxLTLlYM2KMjJG6CA7vxORhuC8GyrSYuutXI3B1jKOGhKMSgEMzTNMlRIULQOpLqDNriDgtQDPTjIgxxFUGTNfhTAHomDNaRIe+KXXysHI/JLXiCGZrBNFWMDhOrIuQTOsIICDMVQJjgoNugDOOgDNgiEBiUGV+C+abw5TahDjuTI6jxM69SznASD9Bs/8QTP75SotmordnO3WJKuKlgB8EoaMiRDM5xKTeRPJEXNNvhMhWzSqlTNqWxHYnhDtjCHcDAHbHgGXYCFUJi1ONCEpawEMa2EKwi3hALO57PQ6YQC/+zMsD4IhEBwLhJ70z7oBE3wSxV7TmU7tpls0RftQ0CF0RnlIrK6ARzgABvggEONgEU91JH8rSLIUYJqt3AjN+CrAkIghOvovac8yDuwxafs1FtsUoTcAic11dBMyC5oyiqotk0KB2hohlpQBVGoBD+IAz/wgwusgk7Y1UC4AoTqOTU1rrQaAmd0RuEUqAwDg+bqhD5YpeVapQ7thA9VLgVYURb9u2X00z99xGdLA2gl1JFUVAZYABtYAHRVAHVdAEVVJWUrqB1dNI8wo5HYTDkQg+u4RU08Q4QkAyZFVaqUzyZV1c/cAnlMw9fUhWhYBl3IhVDwMvVMmiC9REMoif8rICCzGlZivYGCMi5i9dgNxVDf5CIOAAMo6IOYBAMsQFkQxUMJxdY+tUkXDVSb9KpBjTZDPdR0XVeeTShVclc+g0QKi9TiMi60egEnYKMrSII4kIN4Qch97U+oLdLVZE2rTEg0JAQfqQJRqNVIyFU/KAOmzNQ70FRCWAQxwAQxkIQqeAEByFhJPT+CwtHeWlM2hYIbwNsbSFQbEMkiCNFOCAQ4IDE6ezwa/SpkDU7j8s3iKi7F7c3gFFm71dBnY4L0y9CRxQIMJVRD5YAF4FnQVVefJTmg5SK53VDiEq650qgJiIEkEINDOM0kVVJNLFiB/VcnJQNSrMpLPMsfWM//S7RPTeTEU9QD7JCAuzKruI20uXXGuv0qy83Qu0Uovr0BwBVcOHjOnIxO6F1c89PJbp1Z7ZTR7YS2DEuo0E3fhFrfgzpdujRWEaMADnhbjQI+NBjSNqhFMkRNz2RIJw3Y0LzFd2TPySng+pTAIdXET5XYOJCAFzCAC/DOtOLY4lqC4uLYSHWoCh4CCw4rD9bJ3lylIrhLDvhbOLiCTICDQOjNCTM/45I2SLzbGF6CDu5NDu7NGqZhFpZeHuZhm91OLDACMFilnVNXdT0AI05i0WVfGKbhG9bhg2JhI1C3Cyg6AQBSJMXfNiDS04xPADbVgA1LMP7MLkZIMu5PIu3P//7sgus4yxioAQuQK+Vl4egrVgyeKAtmYT3G4+lcQRGu4OnUY2kb5LstAkgc5EF2Yg924YHK4ejrYUj+YZMFKPRVYgVAYiVe3wxTN0CG3g3+5MZdt6KjgCu4XyXdYv1ETS1e4yf1Xy9u5YO0RzX2VNktwwQe0utYzzgAlujq5ILa5Ei940Z+4kf2TemF4RE21k7G0CaeYUMWYTY1ZGKeTg+mZkgOushl5uAc4iE+1CI24gC45HAOgAMI5yVeJUf+WAvu2HUmOk72IszTT3nWzzvIkRxR5fv14jCWWlXVZzNEY9pN4DLugi1Ow8nRgZ9UI3drXA6YYDpTZqK9YA6e5v+vCqtP5ti9a+YdjmI/hmGKVtyJXmRqFjqvulCb3QGA4jlLXuklfmg6puiJimmZJigeKIIOeAB5zl/poJExTOWCHmgyHmg1js80lt1VvmX9fMrekwMrUEozMqOjfSVEo7OHFuZIjegehmE9VlyhLWYQM4KDSuREruaK5i2RrmgVDE5D3s5xZWlL1mRhNmbp3eOOzdHjIigj4IEb4AExLJqudECexuf9ldo1JuzT3M+DROyjFmza1eezFANg2QhZmisbpWqO3WQMXiWafuatXgLpDOHFJVY+vuuQRed0Rutl9k3IPeZjbmslxuRMLuGHJtrOBisoaFy7HoIpblywNtb/VerK/hJISqBFPmBs/q3lfz5sJc1p495iVEbsfCbSLrhX7Pi9K2iBWKJs76xszKZq+OVYoR3rxf1sjK5tOrbcjqbh0wbp0C7rHR5i+E3UJEaAS15pAjhTYAbkYm7vjo3UdPtvjq3pJdDrG6CEq7C952CEgjzlgkbsLDZlVX5uxTZqUx5SCz/ufg3VTfmBH0DoCTCAt91u2e5uy67qsJbO5TJcDc7gItjQ9Q4rsG7ij7boxZ3muT7fb1YA+obt2MZs3O5sj61jTh6oiC7WYtXsVrqBA78yTlgFrCBuCZ/n/FVln55nKS9uxlZsn8ZwMtZwOZi/JIiBCQhxOivh7e7O/zMt4REP62X1WGNr8Zw8ZGXe4LMuZB224Tq/0Gt2KISa7x1XAHJ+6yMfbYFK7SCf6Mye879jpRuYYrCmiqlgcjAsyOK2cudu8OW28pyu9CrX9FQu7jL0V38twzZ4AlJ8giiQAx1IAg2YADmeaqpeX1lXc1ofyWW1ATAwgxRPZuUa4RWM4Wcu5Ls1tvIldm4uAm7eTmPDARtodgUAAiTmcZbGb4wmKK0G8tCm8TvOYGMN77Q65Ehv8qDhCkqP8gnXYnnuaU2fck//dCXFRYOFd39FdTIoKTF4gse4Mco+XwyW9SWedZVudoHHdWwt8eqzvkI+dmQ/KG7mSBygs4dfUf9uXq69tYEDOAAgAIL6fuv7NnMKLm9sf+lFlmhIVGZvF2u8zTKu5Ol2309Op/Ld2z1Kz09Pz19L388zDNUeEQMymL/5+wErAHpgcQDKJrkzX99MVuJABwIbAAIzsIGnN4Nbj/o1YAM3WAOsz3qtx3ozWAMz+Hqw//o5MIM5mIM1MHtIeAS1X/tHmIOMx3iMl3W1eui5JagXpzC6dvQj12x07vsNPSjAFprcW/CWd3lUnnnEp3mZn/n8rUWdf4J79/kn4PAnCPoksIIyWAGNutF+z/EkvvgDAAByxnioh/rlsgHqFXgwyIRMyAPWf/1McINHkH3Zx4NHmATcz33dnwT/2Gd99tAaU0CFr397JD7TMzfyq+bguy9aRYboCwhrREbmQ1ZrcHIcPYDAGtH0chfDeU78xK+R4ub+xed0xNZwDgf6Dkd/HQB6hB4Jt51sucow+eUAAlCA+jdiAMDk+xb4rweINWbMCLRhBsgjVLGC/RrHTBiziMEmUmRGLRi1jBm5ZZRGTZpHjdQsUuPG7dw5abYgDTRjA8wNMGzAMDECZUkRI0OM4CxSZMmQJUyWCP0Z1OeNIhyWcnhw42nSIlB8FonqcyoUMEUwFeralQ+fQmDv6CkL9izYsmr1oOVz6JBbuG/Ptlmbdm2bNmTEyHnyw8oPHYIFbxAcY3CSGC8c/1Bo/OLGkCJDhlDgUJkDgaUKmEJdI5DgGjCiH2XKJKyhvnLz9GXTpw/ca3DgWusb93rcOGq4z2kMifF3RmYmx3EDuRKSaJrKa97UyROoUKJMjDKBjFOzguzZlzrlUNVq1CVTpRa5xMhrWD2HxIZt676t3Lfy58/ls/Y+Gj1oyJD54d+/DhtskIEOBGYQQwZWGBZHCw44SMELFAwB2RAvUBbhY5FBhQUYBrUECSSnnILLRLi5dqJr+aCYoor55GMPOtxcY5KMIIF0jI3SHPORSB5xFEwsmTzyyBpDgkEHGG7skNNVVCHlZFVVYXcAAFQGkB0DCyzAQQRPYUFekzCZx/+IfIXUJ599cIEll31uxUUfnPWBVRdcebWBxn79/ReggRn42accf8URRxUtvHCohBdUNVmGN2Q4IVQvAQHEHJbIEowwwuBWjW0ruvhpPv2E+qk99pwTozQ05njjMa0egwsu0sQaUnAPsWKKkI+4sSsYO+Bww684cCAssU896ZMNHGR3QABUOlslswcMa+yTUExVCiOXxBmnmettSx+Z4c6HVl1q4akXf4EFyKcFGViQhAXxJpEBIXfcIYYVg8ZxxQQODHHBhBFWaOGhkAKLw0GQoHKMMuKA46I+EEfcj6j8gCqqPqKCWio6p6ITY403yvpqMLCaTGJFygQjizIqy2L/SpBu4GBDBAgccDPONzPQByKB9PFzH2nsYHPOReO8HbXi0XRDKZQw8vTTb5EJZ7hRi3sI1FlDjfW46tlHVhtd8EfGE/0JKGAGG8S7tgU6tC2HvXLIPWgZV1RgIQU3SLh3wJBVNbMZaWAKG8Wguigq4oa3aHip58D4McjF2ehqLLjEcnksCpG40DHBHMNyy8pkmskkMzBgdNGIdLL6IJ1ogkjQOJxONOoAaLfUhEWxMQsnl1Bi3iJaVy088cVn3TVZdxSix9hP+FWgu2y3++dg9sZNiNxyWGGFBv1CCOFjEToKFRgKzCEMbP70o47FF4+qOKgR2+NiqRxDbtI1k7/a/zkuqPjvf+YwByRlyEIa1+gGNViRCS/sQAi0M5oQhDADPCAiD6u7YCfygIcOPdBo2bnSsEQjBDzcohS9y9bTzFOIpzkNapRw2gtjKMMZynBraNKD9e5AticESjB/ih7b/LSuehXievVaxCLikIQVMAZDEHIUByAFhgNA4heuoVg/+KHFw32qffCzR8TOQT9TPe5j+Msfq0z2v/9lznKX+9yNcJEJN8wOdTcTQs9c1wlX8NEVm3CFJljRiTfgwVc2UIDRmoXI7QjBDRQs4Sd6dwnzOM13MrSkJWmoyRpGzVtisRcZ+qKgwUgviAQSjBXgprxVmgVrjCAEvCIEPgyN7/8GbgDCJH6hIopp0WKJ44fG4JcPfujDi/WDnBllhMZj2KJVlVsjKk4BwFjYAhey+FyQJkEHINzMdqhzwx55wQtrPKMczbDGOYnBi1rU4hea6MTPZnbIox1AAVVSwA14wAbV3WIVJuTEJgHqO04QtKAG3eQMO2mmIt5Bbj/ooQ+BaEodJEEH25MbXJbHHqy1EHuL+R7B/HYDIdjAFNVQUS8t5stReVGYjDsmMvGXI1y86pnSlOb/ZGELW8hCFgvRpgNxBq2cCaET4uRFM9YBjXa04x1MbUc522ENdRLjF50IxExwgAPtbIcDUMADWPEAjFnMohWlaMUnShHJtLK1FG7/TasJ/0lQhCb0PF2JW38AQ0q3lbJtFbUoX1QpFrm48IWTvAJj/EXLx4ABCHRgRm2ymMVejiqLLmop4zZWqnSUEWTXWOb++ue/U1gimmvsKSpMAVSbAaBKVSIaAoCQCFfwwhXVEKc1rFEOc7SDt0x9xlN7m9tUuGJ1WJ2Qd25AhTzAgQ1MAMZYyboKf7q1uqWg7nXPyol/DtSgcwVoDRcat0DZQV1ukyjb3IbKVMKNiPNhISUMKgnGgHQyUDHDJITRmmGmdJjvC6ZLNdtZZH6WVa+SBSpsYSlLSLO00SytJeZgBtq59gA2i20EEcGKPv7iF7zw8DqJUQ1i1CK35CxH/znK2QxirJgYqdBEIJjABCrAoRNw6MNzkQEMWtyCFmQ961lX0eMet8KsRlYrJyLp3YMaNluFqJdDt7fXeKm3bVZeb/a6IjX4vrCg/vxEGR6EIQslZQ2ZGMdJ+bvFlU72RQF+KcfKeA10FFhHr7JmNEVkCQZPwhJ9psNBgODa1r72ZkAQghnokAlWsOIXwnBFh38B6Q6nAsS1qEYtREwMYuSW01Nt51XhEIgbv4AKyNCxjnc8C1qsohVCvsWQy+pPs7p1u0lecnx/90K7NlR7ctBBYCoqvSrr4DAWlUMcxECIQiziEMFjRJe9W91ZSKIMGHjBBRA1oSI8ghW4mV+p+P9Rv3GLu1T+ffO40THgz4L2c9ZsMGkhPAmWTAoBg3aWoefgWEuYQsO/aHSHIQ3pSlf6FwV3RcET3k4SVxrGzmXCEIBxaujqeMirWPWQeczqWbQayNbNbkF1PUlGLAJ7gQKMFYRdSvVSFJVxyB4hFlEI83S3oB+/7iowoYEKVMAxjymCG1iBvoeBO9z2ELe403EOzAY43cj8GLvtfGdZiEhEkLBEIujgBhtcuJteN7QQLEGHU5gCZhPJ1KMjHXBJD9zgBuejJuDudhJb9Qp9gAMVKA5dicca48C4xd97fHFWT9ef07XuXH0HvCLKbXuj7Ou7KvrXi8ot5ofAxNMAanP/62L3E6TAhN0ck7ci0MEUmcrHOdLB2XHbg7PqUL3iIibMosOoszNqtyxwUfVTJELsaxACEGJLtEFDCwhrwBWmHlL2TLniNI0GuMCJK2mCMzqQrmNFIFPRcBvDYe87hvWQYU2Lv5Mf/DzuJ8cPf3juTvISMicE9lK5PXjBK14a0MDaKOr4QdlBDkhcBCZcHiN8AiPUGudll+eRAikYAgsIgAA0xoSAQR5kyjmIAzd0QzegQwaKAwd2IAdyluHI3sa8CEzFVNTpiDX1VNWBCCTom1C1VtFMSqXIQkQwgzgoQyzIQqYIXaZEmsBNGnEhHNxhHwZhkCJogiLAgfiZX+Cd/1+PBV74oV/hqV+tSZL7lZzc2IEdKIiCwAtfWQD+Rd72xEH/yQH8YULwYB6SxRXnGZ5akcIlkEIoCIITNEbe3MBLLNpIsNtndcMBYSAgBqI4iJFLFZ26Pd2c1VmrqODu0Rs3dROh4YwMzsEkxAL6jMMgMkMsmAKmoJ2j+SClTV8fAZIgGVcf2FgnKILrKEIUjh/4tSIULiFZpd/6rcKtTRISwV//OV4S9GK81IAF1AD+IUEv5osW2gH8EQImXMInNGOSqdW04dz6fQIzYoIkEAKDUAB9ZQcYZILpTcTnXJMyuEqrKIOPZGDHzI/i0N4hPp2qUMP+VJMtiMgj0MEBBP8flRAaDGLYHNDBntGgDdrgDeKg6KAdo6nd2w2cEBLhBWVCIGQCHNRYILDiEjqhK74iLFrcFHYeLpYcIRzjFqpBytFfMAYjMVrBMcYcJqxkKTDjdt3cLJQCLcakWjXjJVijJOwLfV2GDbABafRUT80jT/GUTl1TM7VKScQUOrgZGR3iuslUq9BUNeneQFCYPlrYpNABHTzCPwZDNzBDN4iDDbaMMFgi2jWfh4WiEPJREF5QIMCTz9xdRF4kRlpkLL4ij0nXFGaXWt0kIUgCMmphLyYBErxLDRymBRRmL6qBFqrkMjYjZAKZWcUkZcrkxX2ZJJWcIWzhCzxgZiyFDez/W58xGIOdAtUJ5Sns1E7hQkYgUEmYRMd8jMd8zICZBEjQVKzggi1MggtC4lVi2Bq4gZ8pRCx0DgZW4FdGBEF6IkIGIXEF4TutTiZ0QiYADRuwARWI313ipflpXCvu5Vv1Dhrqoh0Mii8WJjAWJhKsZy+mJBpiQjOi1WTKJGVynH1e5lmtlfvpYjY6IGYsxaHNAVfe1O6VptVV3VGuCmxCzmzGFI1cg1RW0ymwRM7o44UhgBDsgNZNQiZcjud4ZTecQ1iKpXJ2otABoSiuJR9hUB/kwc/gARZ4ARZ4p0UuoXZiJPitGsfxZSStJPxtpnkSJjAepgYIYw2oZxIwph0Y/8JKwucnFFkr6KiP6aiUzmJZQeYnjKcu8gsFEIAAKAsHTIoQ0MEklOlosiCasmDV6dRq2shJxOapNOiCSo6s4EKg3aO9EdoAIEADHNqYPkKfoQJFBIM0KAMGOgQHJqfKmKjbaR/CPSdxRefq5EF13l0ayOgT4ih33igtaNyqFR6PZukiSIIhxEGpJmkSDGmRFulh1gBhJoEdqIEhAOAyksKTDt4s7Bh0ZSSrmRVkXsJfJqMflMEKVMZnAqeZTkIjpqmahohqtik3PF2DRo6OrCYuPMKdvuAA7GkECcEaaCUdpBameM6OtKZYimVYLmqjVUMoOqpzxh2LvqjQYMEOMP+hpppfxlXkp7qar4oqIQBpHKhBL15BDbTA/R1skbKnGjCmIUjCSsZnlEYp4E0svoqfj0FpMzapJGwsqQqCH7wAAWRGAzRABJFpme6ZJYQIs6qpgU4lrLwpjcTsO+qmLaCChBmNhQIByXrrt5bp/6TgMcSCynyliAZkRGziaRgcpGqCJ2jCi2kCEgZCHjAXHHiBEVztDWwnXtKoxfaYlEpmlqIhqZZqwA6swSKskR4mEizskjosJthqkbUa134fd1rpk2Jp2MrhxpYByCYAEDDAoa1BmWYCKpBmmj4CCyIuiExo1ZmMzNpmcUgOrMwjtuKjb7YWnwpBn47pt3Ilg/n/jzV9TucoA1gyQwU6xDgIiTcGEtS2rutGrYvemBdYLb0agY1mKo5yrddOqZFlLCb8q774QRJcAcEarA9gAAYcrxOo7doyrMN+3pMWmZTqHeCdH8b52MVCqfZCKSzAQiWUQQckAAOQrA0IARj4bOGSVuIWyRrMQQsyK4KyJo+sym2+SjRJmOX6JoYCX7d+az/umYigQgr21OgGZAVWYDCUlimszhE2cCMogiL4QSCMWkR6gRTIKBXAAA/wQMW24pRKqRPqaJH5LiYYwmaWahkkQd0UbAv4gAawwP05QZFmQfPagSBs7OeRApSSFfbuXcV9n3f2GPZaKVnRLTKQgicE/8IFRMAC/K3xuQGHFq7hQsKQFMkcuK/7mkGaishqvoqOqIRKRKWCQUL7hqYC/C0C7Gnm7qzxaR2gAnA0ESVQjiPpciAmgoMmdujTImEE/wEFR2QFX3ATUMEgb3AQ4+4rUumqfTAt5CdkbizwLuzwXgEStDDysgAGsAAma3INZEEZqIEfqIEgNKwkKCCU6oIu5KrEed/e8RgyeGcq6wItpLKPyfItIAMqe+8f8EACgOZLsEEU9x4k0MEwE4mAXrEZZLEWb7EA31msNJPJyMIkEAkQYEkDXJgaT8pAzMEa+Bkc39RoAaVPdc5IMANuCEMnblotqIIoiEIlDGvd1I0TsP/APNOzD9gzC2hqp8oilfqY13IcWoWtNQKpSJYBElxBC7QA8mIAzzV0Q2NAJzfvwt4wDutwK8Sy3umYLgDDRtPCMoxfqv0dj5FfqrmyLnhvIPCAL7+EJWSCLPReym7lVrbvFUuYFn/IMocIFz+ry6LCvJmxDYwvn17zoWllcAJqshJo1X0uKvRUcVIE6WoKpuSWMfiCL+RC94aCO3uCH8BzFmSBE4S1E/iADyCypioyEY9w2G6sFkpyGRDpJvNcBxjAXF/ABRiAXbOAD3w1EnyyKAtCJUhCKJiyL1w0KnP0MnC0Yns0Y0+cxDk2MHx0Yi/DSYeCIlABU9iADbhBHyT/gilkXdZpnWdwMzLjdE4v7u51sWhNwhpMCgO8dlCP7wAU9RsXbvrmmWnFG2lJE09ZjuUMaqaMUzFAAyrrwkXDggJWwjvD8xUsrww7AcVCIRR2Kg9XN0Cj1UqObawK7HoSLCbznAHQdXhDQHiH911XAFk7wVf79SgHdiiUsinnAip79C1stH1D1zKcmn7vt/ctwy1Q9jKEQozdAAfYwA0QhNaF9la6AZHQdDKXNjKzBGrvNKyUjP88gr4hQGyP72v3qWMBqm2vEYGS5m6XJugK8EIEw0MwA21BgzHogjFctALCAiZUgiEM6xXQ8PJmAVnj63SL38WVVVlp71qTaqwa/7QaGDQSIC9437UBJAAEJMCTP7mUk7dDo/del4EgCEIkRIJyV0IovPdg50IrkLl8T/ZGTzYy5Pear/kyqPmbv3ko/AEVXMYCRIAQ4AAe9MEk4MEkMPiQYDGauq+Eq+lOV5M0lMwkoIIbtDYQhCYDBHUEBDVBQDE05XaBoiyJ3xQBV0QwmF6mFTYstEIoYEIomHAclMFb14ALu7AGlLVdZip1b29AZ/fYLqwaIEGrFixDV4AB+PoDPLkAJACxF3sCCAB5l3d4YzkNn8En+8GWAzaYh7kC6vB8U3ZkR/Z+57e2p3lkL8MzwAKdLwVsM0Aj9YGf+/mQKC6znrZOCyWiT/9Eyv6eawc1zUx6BHGoKfj2pS+1boeIgZpWijPDRDCaKxCDL+iCAkqCcpswjr86xB+vBlA3LUSskAs5rSdgjXcsruv68fY6eJe3sScAAYy8yUu5lNN1B1RAD3yAXu/1H2x5l1eCKFA7LKAygOtCnL+5m2t7zr95LohCGfAyE0f6AiRJGiQrV64s/CLoagJJLGBra4cm1Ud6BPXsJj7TPI6Wv6fshO5ZiOTUb6s4wRP8afCCOtXCJmjCA+N4DWxyJievD8gyrde9fOqw53GsCS+srmsAyPu6r483lRt7yRd7yYcs4hNAAST+sad8B5B1GWTBGYiyl9t8cQO4m+d3nEP/Fyq/eC5gtSgoMQ4UvQ0sgGYf9WgyLtOrKbxXEzWYAioUxKNrtr3TTCPxG0X0z+51fbwBMFM3tYdORERAhNAR3Ispwh/8garXgBNksibHvQ9or63aqufdLfdW/8JvbCTgepJnAauDPF5P+cmbfMkvfgEsPuKTvOIrvpR3wAfsteSfAZfTfJi/AiwkPIDvPGIXdy4DRC5YAyvVoZKAQwQbCjkAMbNmEqpTEylShHTxFCSKtjji8hjskRkzNkjaAFISyJpHEYO19JixYkVLGiFZsjkRVU5UsWIF4xkMV8tgpli5KtoJUaA8WaSwYMGjQoWnTlm0ImW11aern6xqxUqK/5RWUpgkSapkyJAgQWrUlEHio4YPHxgqXLhg4EECvXv58iVAoMDfwIEB/yWQoEACAx0+fPCRJYsftZEqVQoVClYuX7o26+LsGXQrgQNJv6qUh0eEhBwWkHS4xpLEmLMz2jpluyOuTI9sjERZco2bSaZMCQ0G07bMU5aWM2eOSlbO6DtjecQVKydxVqw6IVWax0lTFhV4QGXxwSmsr1mvXlX/vhV8sKHMnhWUVs2ZMpCdjP9woQO8+hqQrwIMJGAAwwQLDDEIEoDAgA96eKyOMiaLRJTLXvFFM1h88ZC0geIb6JXSRPnjoNUiwIEDG1SaBDtcOMItJtxm9AiVSR4qyf8GBkwSQghIYOwplmOOwWUiJGlbrrmJErFFp50yIc4UVEzJBMtMAulujzzyeAMOKXhgggke7OqAB6d6wIqr9lrB6s1WdJGTzlzAIqW+SCJZSw0/9svCCR/q6sBBAg1FDLEDCxMMUQghgBC9x874QzI9KRuFlFdeyTTTy0gJhRRYMg0RllpEaSQMDhJgoMWSzJgEKFxQkfEUGW28bUZbPHokJJFa/VEIMCwxhchjquvomOQ0msiS6GSRpdlTppsuE1SqtTbHSfBIpA88ugWTCimoYIGJFzqw6wKpemAhNNDcfRdeXUgMpbJK9hTkD/58cOq/CxI4LIFzOxAYTfR4+ID/h4E70MsAxRBt9MEHIRg40izq+INSQAShDJRKOuZYkgxDKZFkEl/JZRdR8hjihgduaNUMMLC0ziNdc70Zx5DW4NEGHByaIxOPZLEOyiNpvM06Y3mK5dlmo8zJpkkmccMNOugAQ4g00mjCi67FpaK8c2+4gIJznYr33WXUXntt0HyJ77LK1PITULn4XRhgANNswom+s4CDvzCk2LcJFprgwQAP8nqwAAcdbDhxxnxwArIzJv1DLbUc2XjjSkQmEZYSQ8/FGGNECYSHIjhoUYGHHqmWZlyOnF12XKSx7hFIRALDjF8fGq5mXK2bCJLkcKEGeWqCMfbZZ6VtNjabLHnE/w3q11hDCDp2mMEIKrz3PvULWqYgAfIvQE8XttWPJpplkHFf7fbZ5kwgUeytpBGM+QvPh8J74GFdUpBCeOqgiEYY0FKNaIQf/KAIP9QBUAkj1AMcJzELLkZhLFiXD8JguTPU4WKY61wlNFWyXcBiF8ZYBjaeoQoUqc4GLboerzIxFJcYiXZHuh0qdOabkoBhDhExxUtmgxGOHEMayaMGDnHxLFs4TxZMml71wLAGrO0ABzcowhaN0MXUeWB8D/CXAc7HgrUB433IYJ8z2NfGNbpxbRyCRSjsF4kF5itwgXLCF0IIwr/5wX6iEORl6FgJT+DvjuE52AQfpZdCPSpxkf/7gOQGN8A9TqpSGBqZ6E64QmwsIxzTqIUiqFAEHLjKDI/IiUeqMzRZGEl2R8KO7kTCM4jEgliyqghNaGILJCoRecs7hiye+MRTSMQmj7AEHa6HtTXgAJpa5GIXW1bNB1DgAhCQig+W0b5oYION2IiGNrThDHKeUxvf1IY4P2kMgahCFJ6wox/+EIi/fSELYXBCGLKAMUopEEOhw0xmQkRHenmigV9wQg9g0AOHThAxDXuQASA0UYpJaEKUi4wgJOOJEu5iF76AhiexsU5RBqKUpwTO61gRlCLBcnZH4qFIaimSNaTSJbKJybJwlURqcIMa1+CGNK4hDWkYiSPEZFb/TZZpxTWYMposukEWwfgAVbVMcR64QA/2CM5xOgOc6BTrWNfpDHfCAp6GVOAfILgUfPITk42IxCFF4SFfGEMXeHVnLkYzR0F6QhF1EFwYFOqDSTYSAgKoYMMgOTEANUYulJqMKDSlmWVMA5wlxUY4WDhKNtygJK2TWQ2LJEwcwnImc6CpDXhng9e1RKdLuo1RkccNoNr2p0U96jCTM5PpWQ0MYMCBcFnEgZepigMeQK4HzMcYKUCGnNggRzTIoY3qkhWd19VGONxZC3jKU4H0tOdSAGexBlLmc8a4q/rUVjq+5uIVI4tn/tj6BSn04LAUnKjiIuagvExsYDyIzB8M/wgKTaVwpNhQsIK1YY5wPAMaqcjDyxRAEjC8DhU+Ke0xlgcUWzxCtat1XSaEQcSN2GhGRw1qbYNq22sE1ahIXapN3GBF4rIoAhFoQAFy3IAE5DgvYPQAmnqQhTNYF8nXra6Syald7WrjrN+NhCbWqpQsLCUPl2tEJVRBolyw7Zvt+yTb9grfV4giEo7IHz4HN8nE9beC/80mxZxAKT80wqMbEumCNbtZbJjDHM9IxWdtUGEXYbglRlIGh6mBJFqKJCWurWGsTkyzZPmStivG7aav8eJrDHPGdKhaFaF5yhwbaAGrikCqH+WBIR+sCUZucpKTTA5bL9m6S64uNtz5Cv8ph5etVxb2xfxAmVDUIjPrVZs41znOb172sqXzxS58jeZIsHWh+H2UoyLmyAcpDE1OuJwjRKGKV4Q0wXwOx7rDAWhz1AIOTODZI/pAHOMEQxixsESIHSISjbhkIrjxCEx9KTvavti2LlZ4p6Xh4eUwtcbBhWaPDWQgBiAGyBBwdQdgsMc/NOLWts51rUfOZM7y+p3gjYQiMIZlYeeBUnMd6GbWxuxxRvebCr7sNNxJ7Wof8A9nkEJjCLVtAT0yYAPrwQAvhucD+0KkJFUwu8NBDkDXohNMAO1JzCAcU3A4GMoQRjBQ8Wia/hsoZdfVwJmYtGMg78U/TfhtudHpoBr/KYrSs0TEn3nKHS+gAAMoAOABr5eN86AJX5gUyHUdcsfbOhzbpbqCOeTrSGwC2G19+aQUQZkuh7R0l835OsXa52hz6ISvAK8imEL0becF9rEP8NK/gLFGjOJk6J6G1KluDnLA4xnE0EQg2FDo3tBhOLjEdyboEGIz9LtWyquZLXZ72iPJyEhJTKJQ5T53FyOPt82xHqlx0AAGCD5BA1C/gR6w8RksvZ94zvXj6b9uySt4GjyndjztCPSlaH4pCEwTuCwzSkeFGIz0yMr0pA1lpOwP7KsHFAYCYo8CA6wJLjDLbu/cUMYY8g+zpq7qrM4d3K0ZakETMqEPTAII6MAS/3qCOEJCtfrNDCAhKGTFOmKs+mpndrRP07xv7lbsqKJDeiJOCFiEAc5P/ZIw8CKg/TxgBmBAChTv4yqB/upv8hQMGqDhGYxh/zyByvInEOogD+AgD76gDAMhEORKFJCtGEon//is1kQu8iKvndSLr0LH8gTLByKQUBKAAiPmARTmAsOggDyBsk7mrqDhAzdr3UKuwQKtGVRBExChD7AG+aakD54Pa34GEmblpd5OGoaKGmIMllLMSOCuxbihG3yw7pRnmKBm75yqRczPQJJw/Qqg/WCgA5qAEDEHQ+aP/uIB8tjtz7BhGp4BwoqB2jzBExQIDF3OS/IgEAzIEJHNDf8vq6Qir/Fu7ZzwzwArT1NUIRIE674maYJiDxcjxtUQzwlgDs8oqxZATxExqxGrLhxG0OrM4RitoRZYgRLnwGroAA98YyTMgA4yLNGSB7dw0HaoT1dwaBQjcu5WcRVxaxSXJycmIRZ3ZiGOMP0QpOLa7wmhUPEUyBCrkByE0dbigRj1cRq0sHSKwbs8AfMUQRHCcAzNkLD2gMA2wROQLYU6EAQdDx4ejw6P0QBRJhw9AYIEhw87IPb0Ih0jhuOiMBA+zhBfIR5J5xk+0P5CkBwiz90A7RmqwRU6IQ3AwA3YIIvAwCRSqTiCgcXmzqhuRxpsJll2cMWEyra6AR3SgRv/0CHhwM9YcmQjSWIBPDLw0C8dhwwKwyDLMKTL6i8sU9Ie1w3/kPEZiqEYcmEmFcgmA+EL4CAM4MAMpXEQNKEaa4ErvXL+ivL3YlPkdG733Ct0VEEVPOEBw6MJ8ssPEeMBKo4vAMgJQkgNtXIXSOcNN+vWqK7qHOwdAM0aeMEVXOEXWIH43NJFYEUuu+8Hjap27vJGbAHGti/h0OEcAnMwG64waWxn1qA1aDHwQJIJnRAGSPJisnIXmrMyQ+4yizH/tLAzQSo3N8EmB2EP6sA0w4BB86BL/sAna2EDkREaNivX4KEoMRRDZRMzAxQaeq7amFJw7gsGZoC/Kk7wAE/w/9JxBjAQYxRhEygL9DrwDe2vupwzJeNBRwOtHKDBGn7hLPFgDYAmGJjBSFlxqJJFPB1yRnCItvoSHf4y4V5st7BjEniFI20gMRmg4oTTMXuAsOogDcuNNfszBO1xGDHTGPPPGJRRQkehGW9SNPOAQev0C9BwEDYhFVQhHttwOUMwQ91BUGOzKNU0QHvuuxxBNJ0yAvOiFtMP/VaUCaFQCiCTwN5xA2kUs8LyKy+TJXU0HqKzHdrBHMqBF1ihD4bFSLthHKJUMOlSPC+NI2LVSZPItgQzSr+PPbHDPbPU/CKgS5vwPqOQJxWhGnOhGC6zMs/UHs0BGxQRJpVxF3AzFf8wD0HptE7r1EGvUjVHQRWIoXSeYepsDUMF1VwHlVP/7FCV0ddAAfPq4Auckgdg4AGA1RYDIAnxVfDUsSrv9OO8Vc+gNRslT/IaEVRD1Rza4R3k4R1+YUqKVBi6wS9zlS6xb1Zv5oiyD+FudUpPC2qoxwyEADEjgAGAFRc94FGqkhCvEs9qoRbAdVnR9DLXzVkrFCmVEZ5GoSYXdUTtdFsHoRFiVBV2YQsVsRHJ4VwFVUPdISz5zBi5cFpFoSbj9QIZigdwsQACAEFscQD0VfCYMC+ekBcvxifNrQ2FEgQL1h53NFSfYWHl4Uc7QRiEYRyYYRwm1lVdzKgu9oj6Ni//s887XayoYEkID7NHbKABwHbbxHZlsXINuXLdhLEeY5azoKEdBJQzvWsUqjV/6FSApIALKrVB92Aau5VPjaErxzVp3UFDYXPdpsFZMQtRR2HlyNGh5rUD7DVf1Q9fe1dfGxOApKBYHQEUZNQN1c05P9UcQnVh36EcrGFuqYEZzkFiXTVvk1RWMbZJfQmJ7G7udItwUWF6rqckflVxv7QXCUwyWRPCOLXqWJJy2+0lk5FdU8FdDygQGFSALpB/G5Rl7fdbjUERGdHWBBUfWFdD07RDufBNdTN/BQcG5vVEIbVrfdeC01EkwZSPLpUZzy1cvdI5HQzQ3oGE34Ef53Z6/7tBHMTBenO10/LSl2JYhrdXYztNqMAXqT4We0SWJIAMZSemoYSXwGDUE4Y2hcQ1HD6V3dzXUDF3F2oBFNzVWvNgfx0KCi9wCiBzD/K0Gom2QpkTaQnV1owRGVEXwrBwWkcBFA5oDO7roUzUUReTd7u2ggHAdw1EcYM3ClfWgHDT3FrzGI9RC7MQGtbhGXp0OusWHfC2hQXzhbfXZvw2Y5GoLsuTiWwhmeZACDhSIRLX1RwTA1nWJ3EvOb2SJWWWickYc18hGaQYf6m4CYYVCpeOC/x3lGvBTxkRLNP1GN3UZZ+4GLZwF3S2ERA0lofsk9FxMS04AOy4d+2Y/fwQlP+loANouQ5As2WpTUJd1mWJwZu92RqmkxfstpFbWKiOKoZlNXtzRUnrsi5PiyNSK2SBpIdX5AFmoCqlwEE5mJRzIXWxAX4j1zk5Sx/pdxeS4RVcWRG6pAew4D6H1QumYAreYAx4chP4FJdT92gTuJcLdBN8cpTNDRQUIV6dkl79kP2CE0XnOACa2aWd+RZ5LMg4jqEcSoAgMxCAthmDdhNAIRV4gRdGAah54Rd+YRxatZzN+YUvLVlsxWLTmXuPKsZiuHBBbA40mZ4bAHFXZAZmYF69wFKJmE8TcRou08EG+uQImTPZNYo/muXotKHu06GhcArAGuYUwcD6dJAV8Z//n/WJAWsPSHcaDYiw9yCW75NQ+Cs4E0WlH7WC8dWOYXp3vdQxIziIK5V0P46nPzqK1dg6i1qRk9pVrwEddAuqn3qG/RapbocjYPGqVYuehcBHgMyrI5gX7zpoca8NsxCzAK0YnfWsT+4loYEzfQ4UVi9/vaAJZiANSvQ+eyCia3kaQYFPd4EzNxO71/qvHWEPwiCipSCLSbcOursHTBSZk9lRF7tLl/leudZrY/oB2o/jgriWzfAMbLIRHAHzumMQOoEoxE4czkG0SZvAGW61nXqGbeWIdJBmkgkSrloI5lkhcizHcMAJjaCr9dkmDWgU+tSMxRW4/yzEa3Z+23T//2qy5bzbuUcSBtJAorkAEcYgT4X63JRxrYsbpEZBUbubC747Wxk0ljugqz/Z1eJ7vbvUvbmWjlv6vUMyATwA8US3QYc4aF3BETphEHoBEVhhbs+Bhc3Zegt8cLNPdtauIyIZwWmmtx5ctXZYZBWiZCvcq7vaC/LgQBVhT627GAQUuHkbGkKcjJGxGKZtmOfJD+zpDWJ5BrZnB567Bya6omE0il/hxkGKuBMaFBR1DLhgCsBbCppg6UId1HURBiYJn5N5cbeNx/DY/Fp9xxqgvZXQQJ68sj89W8d7EFhuEBABEExhEIgDwNOhtMu5wEubFKnPaGSEaJx6aKyDJ6zlt/+ux81N7XATFwfumQe6mgog8w2msYgl1E+JgZA1888BFFrbtOc8wREayA/GUNEX3dUaHQbwIIs3PU85exeIQVoJVBRSwREQNHQlWoCmwKFAPdTv8wN00UQJJbE3Dr1lmsIpvF5jff32tQmnWcq/ILC3GBEGIRESoRdYAd+E/S+vQR1IO8xL24ZJ8frM/MxzZWh4QlbE9xGG9KZuyi2FoJN1bKst3ESfMNG9YA+IuNyqexSaAem9uRmC+c+zUNCLW1NWrp4CAQ6cwER3IN7jvaGmIMYjXb+jmLpVIYqrdRP+fQzGQOA7neCr1qF6IJYTHuFhwANKPe4RnsgnML4jAAL/9P7UlLzihTO+QbkJpLyi9wARDh8R/HvsxkHA/9JVSX60VR58a2fZlb1WjilKquVKm+/m37NnTG3CE5cJOaCruecC6zw1P1oTqGz4uFkVeOFbmZ64i5td44nlAuEKqH6561XHckzj7vPFuSCwB8ERNOGjj98RHEHX84ALOB28JRqL2x7UD5vuP8AD4P6hrdjuzZvIiRzW/Z4xQzIQ8fkCRXcMmN/wEZ8outx6Tz7lxZwUK//MkQQ3ouRKr/ohdsSKbKAIASKCjQgNIhDkEAECDg8zZjTh4QVOoD+KFAXKc5GKKlebOqYCRaxZsZEkd9Ua1VFRnTx54DSZ8YCgwYQe/3bsgAHDCxcueQYN0uQoqCNFf/YE2jNmypQmSplOkTKlR4+oUz5I7YETxgcYHrhi/Tr1KlYPHTyY9QAhJoQCBQa4fdt2QFy5AxIkhEDWYZgwY96MQYQokaxYwbihQ5cu3eHFjK+hu+b4GjVqx47huozLlq3Mtk5lPmUL1SlLj0qDWSMEtRAca2zgeB0BocGCER7YflCkAw8YPJqEwXjxjRQeM3ZoCoQ8kCZXo1Sp4uVcFahUnjYNXZknzEsPs2UaNNsw5849e3xO9Il0TNImTJ1Opfr+S9SrW7VyhSHValilXJr2mHGWB7ex9VaBBLx1oFxsJfBAXjD4FoZfgMViSv8wzHRzzmGKMXZYZB5eI01lmGXGmWcm4nJKiqStMccaqqn22msDFYQQQrZxYJsHRhhBxYN+efEQgDgYdBEiLE3UiSaaNLKkJkQlF8gXcIRBhRECEtQAAwMwQJtZO8zwoFJT7ERmf2OyJ5VSX4TBn5hTnTEfVvZlVd9VYp6xxxnqRVUWWgPOVaBbCQ5wIFs5djBDBzBIEUZEiSBiiinKMHMOhujYg9hi16Tj4WPdUGbZiJmh0hmKKIqGCiqPtGiGEKutFiNsAyG0gEG33caQoliwJ0WVDwwZAZd4eOEFFmlE9MYeeSirbHY6MSqFFDAAqFaWW7pVQJc14QTkFDq94S3/F2ja+cUXeu7Zpnz62bdVVzhhRdUUeAKSp3pS9NDnn4ESui+2BTyAF6JgPtiEF49GauE5GWbIYYeQeUjZiJuF1lmKFqf4CGlzmIEaDkKAAetrQhhU6wJ2RcAgDg/sAN5uPTRBxXYkR1CrTTsY8eWXWMCwaxNSwNxEVjzPMCSwWmoJ15Y0DYxV0GJJ1QS5ep5xrnxq9qCfVVt9sFWbYpq7B711IBUVV2kN2K+B/C4YMKK89XAsIplUOOnCl2ba4WMPQxaxLLj4/TepqKCYIqqPTPKIi656jMMOsaqMA44cLBAAAQlFcNYNHSC6G3ENxUQrlzY1TroHjZu1EOo1sQws/20LFIj0AAB02ZARWaWBH1hiybtHHWNXzd9WWG8tFQxqqqceIGMAQi8gviN1r9kxPUBgoIMWyHauTMOAx8GmMMMMOuOgkyGmj53/cIjH2LK+qJeharFoj6gKyRqtwmoTGI47DjmOduFYBLPkpiEu201DPCAbmtUqSwxk4NGuxQAuSZA2MnlgAN6CgAFksEssK860siKndyklTyREl1KGhxX9vEdeygNEIlr4Qub5hGpJ6YFZzsaW6qUNW7gS2LR2ZjBEyKJC4WOYptAHImloBjS2kEVljhGMwIWmcPNTFeJUs7jX2Kw4HriBgG4VoM2BiQc9ICNZvhgTmRQEAQBgY/8b23itC1IOgluaoATfcsELAkCDAygIXgBUE7MITWhKoeEYrBYnrOWHa2mawhj01ELmAeIMzWOe79bUhA/4CWD/0mHaCkAThoQHJ8eaBCJQQURuGDFv6dOMKzVTmclQI4q4gJ/8VFWaVrXKYzazyQwCuIMbqKxBZxEjfsgoFR58sTa26s4bnwmAPe7xLdKMZhsbgAAGuiUAGYwmH/dIwQB5aZBQG+GewvI0remHP5Rc3gunEEkZDgIQg4DTFG7YybV40npyCWWiGpKGNNDBDYnIBIWUQQ1LHYYb3IBMZToDiYtJQxqynOUxYlHL0ZxiEhw9nBuwGIGRnYVlZ0lLWgT/dEayKCp3crrNTKYnE29Gk42yoykcARAAa850S6/7ZjVlFwAuzURbZxFamqKWSPrkR5GNlNcj4ynJ5dGTnvVMiiYhgEPqAapfoCRm7WbghjQQdBKJiIVZC2MYdDAUMrKQxSkgYQlIyPUUsuBbRaPo1lNkjDSP+OgchHC/kUUgdYG8IRhV6rYPRO0q08pXd5gpO2lGNrKSjWZOdTpNBHCzmtaUXR8fG5PChudpulOq1vBjFXZSjZKUlKRrX+u7qFwVq9TT6if7iRdR7gALbnADHehgCVSY1YkJVWtDlRGMWKDit5CYQ0RlMamEcmMywbgoLuIK10n4FovZ7FIDDHur/9uctCwd4NqctJIvmFIwAj/lbGel6UZr5tSnmLXsAoQ6VO6ojmlfGSS7UqjI1Mprta2tw2td6xN66mksJrVNDuOyVbbUBjwzMEIaduAG7aLCoLFoK0UZOhkoJqK5dHCuJQYzKXF041MWvcxbIVEaOqAGCEAQAhAaIAQIGETH3NGxbWqTowZtbmvl3VyfzPJjmeSwAZaVqXv3qNkn41TKOt3Ser1DTEHix7/10RqAP1AVeQ14kq09sCNeW082adJPONyngiSsEN0aobccRViHLRELZQiDGcEQhilk0dw5CJoOiUhEL0xxDmaMg8WzxOgkIPFb37qqgbTRMeaYCdPaAv8MLWYh7xn7dDZLF6QBc3GyZ6V5WcpWOYM2re9ORz3U7uRWkGfUJE66zC6tqJbMzCszIITy69fmKSp4KXYB9NmW6mVLwv4sDoYznIgKmeLOFGKGMILx542ZYdvOhWsilDGpFTNjltWVBSosUWI3uMrGDaC0QXLczAg8+F8Ay9FJsUpbTirZk9Oc8jTfEjtU/9QtrtYpN+vo7tlkuahdcdfW2PUBCAx4tZOseFBAgXFHgEIoZ1ZwDSEw27VolUDzpk2OGmITN3QvUiwvdLQhFZgSCxrScv0toY9BDWZMl7rJzQS610CHdUeguzgW9eXkve8l17aTWk1AySMQqPn2e77/SptNA9wSO6SxWtWupiMDCMKlds8kt/eeNVeuamswU63ivtZ4xjGe8aAwb9g2LHvJ726rlTHEZt2DFCuUUVBLuDwRNgduIk5sCXT/NhG2qCi5gxGMTPg86JNOeKxJLe95L/vumr967Lb5732BkuzLxFKgqIxZryM87F368b0DdB+0sNDXrn073N3e8TroqSoRt/vIH4x5UBbES41T+dywPW3C08FmMPCtJejaRFQU2uaF7rOFIJ9cU1hC0q668Y3bzfqZCH/8SyY18He4TaBKNv1wxhxDoIYVmBDk9AWX7wAuCHCvk3rU4WQ4yLsCZgfmWm4HdwUod5OUFFXhJ2iR/0+cJ2EFEROs82xzYwrXZgqT8FtCYBPHYgmT4ETHoAxupXyLlwjYZ4GoMAno9leVR2ntli1YUhBcsnlv9mBRFwB6JHX+FgBIpxZAVmxg8jJQYTakdnpch1kHh1MZdINyhHVh94JiR3oNNwVfIICSBAqRcIVXiIWRcIC7pxRc4wG9d2ydpHmZB1r8Q2eRwgqRp24eIAS2hgWTUCHBoAzXEAyycHiFV2iEgW2xgDi/9Vfeh03t5oLm94Llt2yGKHxRN2XqJ1/WZBtnI15FFSZ7IS1oQYRu0U31V3BApYQXFEFKA37tJk66Bk9V6AhYmIVbeIWWZE8SxzX4pk9rIXIPRv8QzFYQC9E4a4AHk0CBmYCBGlhs7JEJrJBz3NAN43Z4IwhcG4ZtfyhogdgA3+dAiCh88kYb15iIBSJwRqhTlCg0KIUfPhMGXHCJEIB5BdEWnNhkpyZZmsVHn5eI4gRyhUR7vxYUkYCFknCFkqCPlhQ8slV3tNiAI7d/WKJwWkRQkgeMy8cyacFIFQg+C0UZslB4A9WLffAIvwV0lAd21yIXRKhABbAAJNkdFMR/O1RZ73WDHsAe6oEUyhI0XcEeTxE0ABJqeGEQ3lh/k5VZWAeUR/NdpdgDU1OFzMOF+piUHScmZgJmVpEWYyhyWmWGzDYbWrQG0MZReOCQfhKRrgD/PobxKXeofBBgc77lBoMGdKpBiPvSAJRDknHpHczETLRxdftygwYXKB6wE3XwBz7hE3XAJi/DWGHIaeAxLQ9wdezYdUoIlLBjZeIUhlOoe2JWcUcpSXXgNU05FVc1AATZdOSHkoOVcirnW78FATkGkVzDCmApDIcxDtQgDLEweXQAAxgGBsvnImvpKiEFdXOhJUyIXzMxWA1yF0aHeTtEapHYIC/zSIA5T4FQB2MQNTjBadYJATMgJzsAde7ImN6UQXQEO13FaRDAFVNoLmt3j86zWmK2mV6TH7M4hj9mi5hHEDGCYYlwmjZWdiD3Aa1pbYaBjBaoXba5A8vnKqgh/2NB5zHatFVzJFS1UpymYxaXZmndkUOB8i+zRhYPYi7z5AiNIENwghVH5i7Gwx5c0Z3eyY5ABZKBcjShhBf44VQUN4AHZk/vOSZiwnseUJBLVwASdF8MNFiNswNpwAZYACwEoRb1kQidIAzCoErjwA3CQA2R4ga9ZDONoz84YzQMlEdzFABDahC6SKFnwUwXqkZ3mS0Q0AEvc0L4MhVj4Jf42HGDMAbDEyD1UZPTcpc8mXqNGJ4PpKH0pmVv8kitpXH/qJRcyDw6aiZNCYZsUYs41J2UM6RcMhD4MyQMQKkNADDZ2XyIEKUMRaV7xgqm0Fs3wz8xAgZgYARg4JsO9P+JmDpBCWGmZ2FvQJZGMeGCtkGj5SIfX8BIUwii+Mg86nJD4mg8L6Oi1MSJOBh6nyd6NGGeqWWj+aiPqdiok9QmYAapdfejoFQ9QYUACHBfC0Cmg2UQMkiLxQYDaYAIwfAL3ECl9iqbpvCqo9OqRuql7coAC3CuA3uuYxpBrrEQLBNAhuUB34U5JNU6NLETBEY1aGEVYWBgHHdmcBJyWIUTTDEWK8qJ+6KESkitbwGqAZImYzBPzIN7WqiUkhSQO1pISuEDXBCLBfkvmZdHbOSzAyuwCEAyMpimgrQDeJAJwkClpzoOa7ivj6NFNsOuEsRq3MRq91WmjXMDLENSxon/VTRBUjdUbOn5Wob5JnaaisozkJEIrwEibwTnjfgXKCb7mBp6nCJENWGjcW7XrZKUozTblDw6qdQTlQ7GFno0U8/0s+d6dQ8Grx9wM3JIDeNwqlFqCn2wBjbxK4NFoazaHfdVsOfaRujKAAORsDWxsAvoJQzxIEDSLepxBi3rWrFoFeaCtoAwBdLztbLYIFhFID2Zf49pQVxlrWE4p2WmsTjKo5EqZvb0lGghF4RLn6B0WT4LTW8Unv4CqkL2AcXhi5PLUFHqZ4iQpaTzK3r3JdyBAxGUJaw2upqFtaYbTIUlmdtSMD8yHrGLtkGhgA/QNXU6T3WANf2Jb65XG0TY/3Vu0YJ1JJ7VmiNdMRVgg5nO4540S7HOO7iVSj3ypiWcdQDW5Ebnen8FEkrmhWF9EAyyOQ4VyAqQ0gej02PLyjKzIUGbhb2DWKadW7+i1Lpc8AbLkicJJqIa+wVYE4YQ0APpqXtFXBa0hRayeDncsY5PBheFOH+EerIh+cC585yy67ftibttwloX3KO+K70OxsGUFV9rDEefOAAyqkkH6ga4YCHMoIZPiggX5jiXxh0kBXZZgoQ+q0G3aqaEdRbhUTA+PAVGcR6/NsSOIAhBcQZhgE94sUJr+8QFHGQORnD+hlN91Ed31Ljohz3Fix+wGzaPCrhw8rcASXFUU8aVSkCGv4tZH4xZNJVHNyijZzFQqECHzDB4kOIFaaCL7ndSdnl1efTJOBVUFJQjhqydUAMDP/IGb1AwT6EUY5DKHBcQACH5BAUHAP4ALAAAAADhAOEAAAj/AEkIHEiwoMGDCBMqHDiioUMQDyOmgJijosWJGDNq3EgxY0eJE03IAEmS40YVJ0O6QGGypEuSIWLKnEmz5syFOHPqRAgSYggQEBtCTDGxok+gIyACBZGDotKlSZmCaBk06QiiVx0KvZoia8OWHJ8CnbgB5dSpRLtuxarWq1W2DrvaPDHXZogTO/PqPWjzqNKeFnMQrbgSI9KyTSeOEHyR6NmzJlxIHKlU4MusLUei1JxCswzOKrUO7dpW7mXTdUOUSC0wxN7XrQumXl3C71uJTC+KPRvW6NOmi0mTgFl5+InTXNE67vp3KdrHjiNrfUs67ogQ1y/PVg1i7k7XBMHD/9aJO+Luwc/TpkCZQrDy9k0bLx/bdvT1qvZLZw8BlgTVpP3Vx5VbqIk24E/X1USXatzZNJ5sEEaYl1Vb4WdVR/F9lMJwYOXmm3zRSTZdftZhh91V7011lX8oqsceS7ylpeKG1a1VY1YmfrVdbXbdFdNqD+IkXmwSDrSdbc7FV5F6y6X1IogakhClWyR+tZ+OAWYVZYzLrVidhXBZmeNV/O3YXUwL3lRkkAoNSYKbbzK01l8/DSWVYerNyCJp7wEn2IpuUUfglWSmcGKLMgr35YV3mhXidDYOOqahhiZI04K0nemjg+GxmZebcIa6F0uklmpqCSegCsKpqKLq6UCsxv+aUgoo5MCqmTKlqeCPDaLZo49EdvqqXqAaJGpCsiar7LDLNnsrrr7+immvm9q1ZpzXEoTCsG1eeyxC23KbkHjOlgtttdLyymO0vxbrrULhitutsPQaCa+8B5mr77m6tjvtuujGFOzABGMLLr46uVtvwdriu2+z/PaY6sSrtnpCxRZj3GpOCtubLawIE/vuxwLFi9PDEEdsV6oZo1DCyxOr6jLML4u8sMEeH6yTySF3XDCcDedLKwozl0oC0SiEkDTSQxc99Ju7MghwvzOx3PLLrZZAwtVaJzzyzUHnxHPIBH+bc75CI/2y0UgrrTTTaq8GNLc+4zxe3WYbNDayZI//+/XZeu+0d99lG2v4q3gfrrPYCw1O998Mg7xz44TbTXbiJJOAkgp9Yw625IzfK5AJhHsOOJumR16y4JSPXnnhkBfkeOCik0D667ClbnnYJ7duu0F4dR773KtPXvvtBAUPm/LKI6z75pXrTvzRrB8P/EDNO18k868/D330w9feu/UFcd99+djjDnt434N/c96yV8+36+gLlL37B5mPe1IiiPB9+w7pnwqedb73KQ5txpvf7+pHgvuxyYFsIpoMQtMQhPygJjJon0AoqEH/CM+AmZtd/MiXvPSRDYIFEaAIC4IUEAikg4pxjQqlNAIa2HADF6zJDDe4Qw9eLnwKHJ8C/5FnwgbmRAQ70Z9CkIgTsZSAdCGAogl02L+K3FAHG9iADXvYww117Ycg/FzxQjfE69nviMsr4hJh1bS19Q9BLtRcBzdHgxjEoAU1yCMGaqAGO+ggBly0mBFhuLUPng5+vPPd4oh4xkYuhInUY+AaVydFQtYmKS9UQSB/8IMqxCAJSRCEISpRCUwYQgc6CKQUlTY0TfovXl4cyBe1F8bTJVJ8CFxgCR05SSPyMiGQ3JYJ2tOeqdgQBFlEZh1joIMqeLIMZYBDIAKBiEQkoheJGEYykrGNdWzjFYj4QxaqYEMa/KCcOaCBDHLwvy4WUiBamyW+pIfLeo5Ql0VEIUGQqP/PgQRzgY5KwQVz8AMtKkWLG7CCFZwZhzhUAha1MMY6oNHNbVj0GxalKCAS8YEKSCADINUiDcRAgxwcgZ1zdOcX41k6IC5OiIs0oy9f88/bcc5U5dTiJ+3ohCvgARHadEUyMPqNb7BjH0hFKjuWyg560KOp7OgFUKtZzT1MYRKdgAMcnNmYlKpUlu805M8OSDsyxpSB/UwhyGx6tKZckJM23GkS/FAJXnCzm95cRz3qsY+jJvWvT3XqXi1q0V0kAxSKYEU1KuEHrnbVq2K1HCJBB9NcMnKmaSXBPx+51hdGMgVx1UEZ1PCHRnQCqNvYq2D5+tfWupap+3Dqavda1Gz/DIMVibjCFRyL0hBYcmvT8xQ9g6hIy8o0szipqWfDZcMkWMEOmKhFLmpRC4uqlh7XdW1S/drXpbq2Htjd62C3wQvGOpMGuYFsZOE3vRVS1rhoRaN8qcfWcKUAi0gQRC0omtrsave/Rw2wd/8rW/B+gx7b6MUgTNGCK9iwIqpcL1l39157hu2ySgTmLxGiXM1R749qkMQuptFN8To1qfT473b72l0Vxza2gnXqNr6xi21gwg85qAKEBflVeIZVwrG7JXHLimE1apiSy32hHYWKUeyemMUvbi1TpxzgFbsYxoENrEU1EYgYVCHCsJGgek3Q40LO8gRo9mUAgWzAzHb4/6Yy0IEVtoENjLKDtd2lMpSZ6o0+e0PPV0bqiZ/aVIxuYxmesKNPNFtmlhpZXj6rCiR75tJeCjPJJJBBDOzAzQELmtB9XuqfR80OP0e11KYOtGsJvVdouAIJLRAkXlSA3Ltpbj0FiSWQjtZK/+HaMmtuaS118uZIqsC5w9iGnk9M5VLzecp97XMv/qzq17LjG71wRCI0oAECEk4FKZ0VCgCoFUg2+se1llexUZBB0OoAEDMGNHf33Owp/xm21d6uN3pBhzF84KMoYzMb48Y2ormNaMK2paUBerQMxlkHg4h3le+RYihbfMCivje+8y1obNLhDCzIQBWmpBZ5Qvpa4//+9UB0DR4UoBkvDpyYh8H46INAsp0ooYEO6gCKemzj0/UoKj0OvPHtitrTFs+3RV8BCkOswKAkb4jWgq1ZWUPNtyp/Yf9Gh/NSaRLcKm9IO3s7wDaWoOC/3bXL+1ZT6H3mMzrfgyO+MYxS9+LueL+7qeXN1IrPW+nbgAYv4rCCKmzgTil4uZqpLgKawVxzs8665kSgGMieByhJ4zXYOUd2opmdbWlvebp10m7OEcSVXFfBZ1SAyjHsARFUpYPs6eAGIcjemokwhSluy/ttfiMb/QWvbKMc6BknwxWBcMIKVpCYxCv+YiABUWOsWE4v29GOK4jBCq6gfezHgPvb//7/8sef/et7mQbOJGdJHzx9wtzU7ALrG+lMQDqvuv0z7FznH5swAyH43/90AAT/F4D+J4B0AIC3lwiy0AvDMAzeUFRCV3Gq5nPadgZwoFvNh2YUBCnwIRiOsRhMgV5ZBFISUIImOH4OsHwl6AAS4AATMAEvQH7jZ4ISEAMlCFIZkEXql2Pt13meRzRfZ3qkNwKq90QnUEn1d4QDUX/t9HZv5wJBIBmFYVJVcAVMwAZsAAZuQHsw4AZp4AZguIVbaHtkKARAMAe2twNugAidwArCkAzAB3zX9WSAhV3fUE1epmMZeAIbIhAWUk6AiH4xAFIrIAEr4ACIiIgv8AIUMAQ3//CIN/ACQ8CIQ0ABjMiIlkgBmugAF7CITLCIjOgALyCKkbh8VehMhXde7Nd5YyYCzzcQnmGE9PcmJqACSTiLXad6MnAEvBgEMhAEQcCLRBCMRxAHVsgEYKCFaYAHeOAGeJAG0OiFX9iMYTh7tHeAdGAGQJCAvSAMDyhbEohi+7BXmuAGy3dMe7gh5nFOIBCIG0CCJ2iIogiKTOCIRlCPQ5CPk2iJl/gCnVgBLwCQoAiKoliQkRiDhWeKhRcDWYSOKsBOksdyJRM89Kd4myMDrwg8JfAZLuACtuiRuPYZR6AEWlCST6AFZJCSZCAGKxkHVcAGcMAGQwAG0FiTNnmTN//pBTYJBmYIBEBgBraHB6bACskmXuBFcSkWXsSQCBZwBe2IIbnxAwTVjjSQRTFgATI4fqDIAjxQj14JBWBZBJ+4iId4iCnIgjSIgx9Fg2yJiBQwj19Zj2RZiAyphyBCFLCxEirgAkgIeaSzek4YmEFAkmiABnqgB4apB4ewmIegB5VwBZ0gCqmQBzQpjTh5mTiJhWCwA5t5gHNAB59JB3dXVML3Ynfmc6CQBDFQUot2EeuHTO+YASVYiLR5iC8AgyzAAlTgBFTQm1iAhb2pmyuAkMunfRmwArL5jsoZmxZgiIN4ldq3Am9JlpIol4uYgiU4iE+JXlOiF4VRkcEjA0j/6AJPQARPcJ7lSQQuQATsqQWGeQiMsJiMMJ+cQAmXcAmSUAXE4A7PkApsUAQ0iZk2iYUECo0FioXRCI1kSAe5lwzD0GRJCV4W5QdwgH7TR06eFJ3LN5DVWY9G8KE88AIssIi76ZssMJw4mIOHx51OZAIn8Ea5ARXtmEWxaYjDKYkv8IhDcAE8wAPYiZw2uIPpaBxp5kAYWaT5gypHgAbuWZJioARPqgRH4J5oAJ/zSQlYygmcUAqlwAmhcAXPgA/4UAtsgAM1aZmWaaAHuqYHGo1ieHt0IAt191R9VQ/eBAt+gH5PaUVVIJu0aYgc+oleCQNGQAU8MKK6KYk8cAMJ/zAEE5B9GQCI7Sd2v6ZJgTEY6ZRTxykBOyqJMzADHRCqH4ABL2CCfSoByYRJxjECcYJw9oOkJPCdLhqesxhFZFAIjLAIl7AIi3AHdyAHKXkHZHAHesAIWEoJWsqlXVoKmBAHqeAO8fALfYADAXqmAjqgbJqtPLkG/tegQZcNh5UKj1mcdpQBg3ijQ/CJ+5iuPEAFYLkE+XioxFmbHxWpJdWDFfEDAXSRJ7B5mfYZtdhuRlGV72iCLzgBLIABCUuqE+CCE2CIIXWv4kZraAYatNaXF0sCerClpTALy0oJ8XmYenAHhYCsWrqlKNulrVAFqRAP5pAK03qt15qt2RqGtf+3jdf0DZ2QCIgQCH6gWy0gm/CIrjg6ienKAlDgrmI5BF05l+OXhxaKryvhAjmEsUpIf+v0kA+5JKCFfu9YiA5QARWAAWJLtmQ7ARjwgiWYTEM6Ai83axT7eBo5a5RQCqswC3ibt1y6q4VQCIuQrMqqrKvACa1gCJowDebgCmVqk16YpsnYjNhKszUbhjtAB1iACGmwA0VABVdABcsXl195j/pIou9ajxygAJu4WzomsezUuu6XaUSIFQ0RTG3EiuHWFCMomyX4gmN7sA97gwbVtm8biy5Kf/OHhKtwt7NwC8zLvMnLCbl6CJegpasQuFxava0QB5pQC8QQCGBgBDL/y7iSO77LyAZ4EKA4wAE2gAAccJCLCAcvIJNXyAZQ4AWG2qNjiQVJq79DwAEcsIkvALWNEQQkQMAuQAL5NxINIasa+B7skYsXyYsy4AI0ugESYAFpm7a+q7YqGnUjMHXEe4SzSH/fc7e3AAzNy7yzkLyfcAmfwLHWe73MegV+oAma0AdQUK1umqY2C4Y4SZMBGqA0SwX0CwXpawPtm48xyAZU0KHw2qNQ3JVM4K6+CQVFgANMoKNkqbpVIAbTF8KacW5nJhAqJJImBRo1agEWMAFrLAG/+1GHFxyAsiH8Cm5We7wysLzMi8J8fAvJW70yHMPLiglXUAY2DAffK75u/1Cti9zDWlitYMCMCArEbErEWPgGWHDF7csCk+jE+QiiIPqpL3C/YKmT+iu/nYydOch+J5W1KuBb46Z6ROhrQqh1TFSLtmi8xquLR8CRrmtFG2ABGaDGaqwB9UqjxeG2rOoaCFfHtvgZRCgDT5RBe3wLyNDHKrzCfwzI1qulhNCUFIqMAJoGWrgDa7ADQuAGaliGtmeNs7cGbrAG8CzPawCaaxCaYKiMaWDFRnADHbCjnTiKKAiDMVjQMXiiBl2dvtmbOPqWiVh+qohOvdW6rjRAsFuExTvCuBySnwGMqjd96km1ItiQccwU4AbLRGORGRtFtgh5DudwJmDNwMDHff+Mt368wtqsrC88vZQgCUngiVeYueUMhtTojM2YCGGICKag1EuN1PTMrfDsBkiN1LNXucnYzyDKAxfQiS44fo+am+N3BdunWxu6ApNYulRMkKOIlsfMkCKlFJe6Q2AsAsTrcGfMkR5pAo3xBDnA1+fESenkgy6n0iIsR+IpEoDphCd8zYxd0zbtx9yspfeZq4tgBRNAAARABd+7mdDIhq7w2a7AC7wA2q6gTRC4DbYlDNake4hgCaYAh94wDHd3TQwqexHwAMunliG1oh6Sqb59Q2tJm6Aog/3IjyPKBO1KBScq1lWQiuflzCLBhIddiwOcwL+8JCcl2P0qeRUN3av/JxIe+dKqd82LDQzk3bw4nbw6fZ/2SdmEkAQCQAGIHMk/1Qm8QAzr8A7tIA/ysN/r8N/ZUA4+l1rbsE3JwAqu8Ia/wE3ilVrShk2JQKgNdl7LiV4W8aRenN3rl2MbkKGFiNAPLZ39KKKLyJWH6rky2NzOxCp6yZdT25EbkQP4t7Ws27pQeGucp4uqJxJ2XHr/Kp6qB24Op4uBad5G3ti3QAt5uwqtELj1eQn2iavIagg1kAWN0AdY2AmdkArlwN9e/uXy4E3l8Ht7NQ/DUA2/MAxvWA7zMFQm5lRMhW2ukAhIkAS6cXhKAowJDIwnld3Tp7sz6AC625wm6IKIeqPj/5cJKZ5+jN7oju5l3OdJ55WpUet+DHwCK+GL4jnBQa7jmy7kgfl2QaCLjH3Ny2DeuqDkeNsKTd7kyvrkjHAJxsoJmGAHjQALMAsGiOAKqWAN/N0OwO7l6xDmFfUNg9XmuidUbJ4M3jAP4AiOg9UJSFADgf3FeE3kALu1HmgRznRHFtAChQhS0GkBNnibCSuiw/m56Z6VzZ2V5BedGqqCIBWINf7iLpACU+uEqueR2B7qoJ7YL40MAm/ep44MqZ7qrTALrcDkr16fx2qslLAIhOAJuUAMnZAGiFAL1uDr8oAP7wDmYe5N8xB826DauveG4OCN9dBUWBZlCVYJWYBK1f/u6W/X74CJr665aOuXu7rLlst3li348wXt7utOnSSOiMW5kDZk7/gO3kFe85we6quH7UT+9J8x8AKvC9d88Aqv8KXg6lyqpQ/PCIVQ65WQC+XQDFre5f0N8vrd3+tgDckwDz43D7ZlCm+YDMIgDNrEWklZcSnmc7oQCT+gA6wr9b9I81Bo49fNtRXREBZhQ55krnbkTBtQiDQItok4ipxv9Ig+kLn5qA/L1jmYf/Yu9f/+0kOO+Imf2AL/+llPCwjP6kwe2Q4P8fMp8WdvDvGA5mGKD17+8b/e9v+tTXS/Dd6A99mwDtkgDKX9DfNAca81jt/AdHZQA+fUkS7A+qz/35Ej4f0j4AIVsU4YGf7G+xnFpCSBERg31PNs2YIrCP8smIiJCP/AyxTgz5eIzf38DxAyBA4kOBDZQYTIaOmiRWsWrVazWpWiyKkUJ0oZKTHiuIhQJFjm4rUjVu3dO3ny2slD+W5dO5jt1iUb9m3etmGmWG1bV02YKWE279HbV9ToPnbfvu3aRsgKjR8hVBSkWtCECRkuXMgYoXVrVxNTxV4VONVFDrRpVaRlm6NKFRobNsTIkEGCXbsS9K7YK2HFigmA+erNIHcDCBBmqy5m3JhqQoTAgDVkKHHVxIoZOW7kWIiQoVAtrdWytjLlSZblVJdbVy4bzW3zlCUa9iub/09TNOfR4010H1F27OrVW7eNVCUdNLY6rmo2h4wTXtGOpU5WhgqtXMWiPcK2e1vwaGmMz0Gj/Pjxcs2XZ5ud+Xv4MiArpCW54ayHqyhevMTo0H8AOZKjkVzeweedcqwpJ57TXLLGmmp4IYY1l5JRJptvhhFGQ1aEcYWVYYbxpp7e7imqt2/Y2QaUVwT5Iar4qHruBIFSqPG663Kobi2yXKBOoCCey+G78IQM8gm2kETyRSW9GzJGKBub76Bl6pvMoVX0K4WSSw4p5I479NDjEEYKkaMSXVBKqR011yynGWKysaa1deRZZybbXvvFFWGSyYYVmpKxiR4Se6MnqWFAAf8kiSQ2gDHKgtzbcdITRviRILQYCyIIGTYdaNMjjtA0iFBDhTRGTquaEhnJFJLsof24LOTLQsYksxArKjEmHtRS8tXNl+r8dZ1sNkzGz2yy6alPmnpRargSvRmmlzOm0ACJqCSFklNuGaP0UkyfO7XTTkn1tFwgUx33PXUNimy++u7TkpJFvLT3P0oIkUOUaHht81c1ex22HFYQYaUaBVv7kJfbQgxxm2yI2yYZR/aoNgkdQMhhOUjbbexbxajymKAgRU0X3XNTBbXUT7kded2qUn0X3vtmyZKTS2adFUAyCSEkl2h6FZgllVyS6c6jy0mGlV/8VO0XQK2BeJhkErH/pBdTvsEpETqmmOILHXTIFGbmwN2WXBlsdBnIdFV2udRQzT3C05TZJvuxhKJBxpnIrqRl3kV0/q8QLwm5ZBly/v2VpZPeeaacZx5UbZ0Hq2mtcl4QXk1BU+gQopNOXMnDhgJg8CGLGMp4Ky1uXeBUKyJcIGL2HH7IAcn1jPz4urDYJbVllINw/WS6i5975VKLt/tlkn+HEjJnoud7Gfrwy7KUSwIn3EuO7iCkFG3IYXBxgE9q50FriCFG8pdOUnBymcqp5peZdgDCDTf6AOMGDoZg4YK/vGU9XiFCDgpYwLOIBz0LzJ3y0MY85nSrU8fb1PCI5zLjbYpUcDOZ24Kn/8FyURBt7wFG9PYmvYO0yiFYwl72GLEIRvRnEXKQxC3CoY3x5ZB85jBHOx43p2e0QyQqYUlMkqY+eRDDDUXAwRCY8MQXPHEIL3jBXwL4FixmMQYxsIBf/GLFGKxgizGAC1xul4MgSXBUJiNX3cq1NlBpMHkhlGPczLXBuaHrjRlEHgjjWDwNBkEX0iOkM1SIH4dQ5BP96Q9HGKEvTAAjfIvTYUrGhxp/ka9xbbqTPPDBCzYUAQpSZAIVosgEKr7AAat8CxldGQO9xFIvDpAALfkCy7vcpS4bMI8aI7i2BwKSjoAMZDE5uLK3+bGYgYQb25JJzL1po5B8O8hCGtIK/f9cQpvbZAS9CAELZChOHpXUYQ7F2UNOpgQf69BEGm4gSlLGkwIcoIADVJlKfKaSBabE5wr4eU8HrCCgGSBjFWr3hNhZ8IJ7LOYwMbhM5NkxbhwMlRKOSVG4IXOOf3zopqSnDWlKk5pXqox+PnGRi2jmEoSQBCyCOLRxkpNXPaSpPGraw9OsJCa1QAQT4RlPKVIgn/fMJwvwicoVUHEFcEilAJy6Sr9kAC7m+QEwGxo8hjaUo8nDo0TnlrxjksqiFsXoEcgK1otOdGXRA6kzRErNmtlMSye9CM649JFKEKN9lgyHJ+XRVx1CwxrQgAYPofFXkfQ1YKfhRSDYgIMbjBL/qE98JwdecIPLnjKKp3yiZJdASjZwln/0vAEFKGDFKxRUDMN7Jh61eseOdtWsaYXbWCs629tS9KwTpS1FzcVWkUozhcBgiEOwuZ/9YIRLl6hEJGqB08W5w5LxYJBI1lEM9TWjGTxELPnwkcRA7O+nk2XCOyPL2c5q9olUoIJkN9vZd77gCp24AhyEWsW/bPEtzZzgHblaVo3ytrYXHasSDFzgAyf4wGZNMIMXzMHdfjVUbnXrW/nmt7/dDLmcWMVGLsEJSRiiFuT47mkAC4/pDtEcgtVuMZ4RjsQuDiXW6AQYcGCEIowXqBx4pxPJC1QseHYIN3BiHwLxC9JUIxWa/3Csj6l4hbe8iEkIDauAuyoDIkAYwmdFcJe9rOAGK9jBXMZtqcha4UKmcIWzKIWWNryl5WJCEqJ4Bq/WIdh1iI9BgDUnjFfcDj+bo6+AVUkqdoADyOp4x0P+MSrb21koGMHH74SDJtYXOfX9In2aYAILUInfDUyVPE/QckZ9W9avennMYGa1qlsN5ooa2MxmpfBb1Yyl63HCIrrmtSMZgYnPhOIZuVhfMw4rU0L3VdB/HfTiaOxTLIhS0fD18Y/be20cG2GUlH5uPKyRil+sD8lv6kQfoq0A0yb1Ly2IQRKqIIZSozVUWc7ylmUt5lfn29X6FvNtDYxmFE7GelnSj/+uV8FrzbzwEB6JQxw0UYv1rWOI8QBssuUhvmZT/OLTxQcx+mCEHYBB20KGImUja21SPnrk/AsEMVbcjFSkghgoKUct6uxxHHCAnkoNDBiPQOp6x3veul110fn9aqODWQurvneCLXzhWzSE4Frita41w7M7kIEQVfBDaCZu8Y1rXM/xwHhKCI2PauQBDCKPNMlJSeTJsgHSnm37yC0dD3fUghWk6aE7rKHpeJgDDjbQ+U8fjcohRBne8A4VqYUu4X0fndVmjcKBtaCEpWtBC5XfvOaPoHnOR+HyY628EigsvStN3c1Vx4h/+KAHMIGJEGLQBCbKUeKUjH18fN64nsv//itQFkHkbHf7E/v3Y7nX/bPRNkIfNhGP75rjF6mos0jcUQ5iPOP6gcgx3Q9PRQnEgAZV6A68tUBvJQT9q8iLfIIvHwXOvz/0mA/90g0Mes5/vvP4Hz387w//Qoq660muulKuqzuE19MDPmgDNLgDMYgDQjAG8ZGu3CM7C7RA8dEkIlInXsCC4Vu+Hzu5Rtu2tus+TXgGfMAHcyCG53KHdigHF2TB2/O4uaM798KvgrKCKogDMbACMfjBH3gChAK62RKz/tM8JRA9/RM9zQO9LWBCJtw/KIQ/J4TCJrTCzWNCEwKGW7gFN6sIXUspjvgPPkBABkSDBmxAMmi4UJgG/wZhEBQbu4qjpMRqE5QIPuIjuUfrsR+zwbZLgzcghhT0ofXhlUsjBk1zB3PQhD6oQT98gQlwgAmQAAvAooISILgYwlm7P/3DvM17QtC7wlDMwib8RCyUQv4rxSgAxf3rPC7MsKrLCIwwQNcTkzNEQ1yMAjSIgh+MA11wBwokH03apJUQFg6EA2krvlIqr2pzRBs0AhvDgk4wh+/ytl94BnNIH0S8RgaphUZ0xOSjOyoyKg24An2aAPwSoxiwgh/4QTHQgndMxSQ0MPijQlMcxc3DvCUsxSoMxS1Agy1gxVU8xVu4iEXSphfytTFEwNdrAwbsAoDsAjJAg4kkAzL4wf/agz5y8hWUYJNgeQlhjIdUSL6RAzLKakbyKkEmUgAoSAUfegdzqIVUgMFnIAZeMLbA+wU4AAMm4Ek/JLlUqoAXwIB8WiVaoqW6ED8aILV+zEfKS8JQhL8taMIkxEIrlEp+/MeA3MqpvMfOa70yOQQxWcBaeT2z1INbhMiJ1Mqt5EUxqAJMMIdgFMYGeYnHeQZhgQcVbIZa4L53UkYpgrsRVElES4NAkDkhsslmqC5sDLxa6ARmdEbAXAIj4AHK+qnNeoH7yi/Vckcy4EUhVIInaMooFL3K8z/6i7+BDEU0/Ec06AKtBMi2DMiNmJXYu03YQ0sGrEiI3ALYhM0tqEj/LZBIrRMD7dMhkDyNy6mFCJm+7DK2x3wsnfvJeGK0wYw0yGIDPOgD7uwEmSOGVKiFBeGVmiu3d/JJ6lRGHvipz0K8zIREqHIAgiIjd8S/0SRNUZRCe/RK0QtILUBDBtSDLWBAtgzI12wD3cRF4ZxINDjD3vzNgIwCMoBN2bxILeBBl5tLmzIHbBg2Ugixhmu4MogDQ3C4OGAqneOx9lzReDq+69y2G3iDQOiEQOgDNtBO7gyEvWPBVOgD/rGBG0DP9BxBIoUizQwoDWiBFthBdxQDC73ItcRP+dO8d7RIKxWDMNE6BywELCUDMOlSAMVFgERDiaTIMm1QMn1Q3wzI/y5oU/8MTq2rglRIE+iCBhZUBU3wAz+IgytQHdXxA66rgkAwR9LqPhZdtBelzBu4MSMrNyPAgbVbOzYIhEyAA7mzAcIT0sks0kZ7ARZIKnRcpQnQr3fLgR+kSFSNUin9T4qU0Cu9yB98Nx38QUKAvS9FwztwwgLdSjdl0zHlSjYtUziFxwfEhFzQBV2AhVYIhRKNg7doUiz9QQckBGddAQG4gMuyTMkcMsEcTGlTUTywVDBIAywIVxuVu/3xSZ6EJ/bcVCI9vHjytCgaggtwooBKLTIKUR6MgzuQg6yzSCcNWDGQg4F9QGcN0StI2L9QWBa4ghVI2B3kQX/NVVIbzf9dfc1flU2u7FXfrFA0mL0drIRKMAQ9jQM1OFgtDZOsu4M28B49wIQ4sFYBoADLrDY/5MNEzTHIwoHHKswZrVE2iDbzOs8naldOPdr1KqUXMKUpMqr4vKUtCj8mldZordofjNq8GAwHeCrTcoB6qid7+gsfrNUnUILF07xdTNv/3NVg5VWN1YKpDEh3fDdoFRM0DVMtIAMtENCr3VoKuIALwFm6yzGUTEkfa08myjkb4NkZ7QQ4eFwoCFIoWNchRdqjDUdFdSLNvK98UreE/dwq+NyE1UwBIAACmKd5SlEF4AACWF0FeN3XJQCnWoEkiAMiQKgsu8+0jU2IFFNeBU7/jQ1OCa3ai5QDgsXSME3eMwyTRRADQ6gCFtCAIaCAodVUwU3Uz8oxnc1OOOBOOIDMZ6xcy407JpA7zG27T8MnofrarxUAo/TarfVbp3IqDhCA+k1R/OWA1dU50+1f952qHxiPJ/jBvM3b5G3T1mzb4KRIuM1bXRQ9iKxSK70DAL1FC0YDBZw9RrkCDPC0wi2vbsXe9sw286q2G527nzJaxB1f8nq0IBPfIaPe/MXf1E3dGb7h/H1dAACAAAgAAWgBXlogIiBgBsVFBL1FMvXN3wRO3/xMNPjP/7xINBADPcDVBtWDLmiDLMZiDM46MaBWPi2D+noiMiZj/iljNJYs/yZYAjZuYzdmY+3V3jReAnaFAlGiYzYegjzW4znu4zJGLyaAgiWggicKskAGg1GCgkQW5CUYgiGbXtPSTMwSqkm+gdHCYUzm3wAwXQFYgbr45ORox4KlYIc04ixOYokU3s9cZYq0SIoMSCutYi9tUAZsg4ls2QaMPeNtuNotgxZgAaParNLiYz/eYyIj3CLQYyPI42RuTzJ+Yzq2Y2nrviLA4zt+Zjcu5jI23/IN5EAW5EVeAkZuZkvmViI7Zm4dgiK4ZPzlH3e2ZOqFZ52jgP6lgE8GZR2wAh9E3lJ20DWFzYqU0Ch4gi4Q6IkkTleeSJYl5YpES4fOTdnrVztoOP8/EOMXuABUKq/+cWZttuTS8mg9vgFmJuY3Dmk6BgN1fqccW2M61mM3duk2RmP1KmNBDsdvFmdo1mM5LmeeVmdHTubRemePPudHHmp6oidOtgCltoAMYOqwyWfjJeVaRugnIIMnUOUnkNCqllDiBGhUxWAEpWCVbUCHRtDctFXj3eUksIAJQMfNJWY0zuMVZWce6+mSbuT25GNETukiYIJkJmO4RuPOOlRADuRDDWdGfmNkluaQ1mOfduQl+GjJbmwie+xhLgIKUAAiY4MuWmqmtoAYCJuBnWWWtdKBFkIhtOrT/syqTuWutmKHlGqWRcsrNmsxUVnvGVg5aLgrCFX/etJjQIZsmF6CGwbpRv7rkUZuv5a27G3m4WZjwRbkJ/qswn6icETsNsbuG1hm5P7rym7skO7p7wZs4U7pG2ADGpWASWxrC9AAC0gCK4iD+N7tH7SCJ5CyILxv/c7vrSboJn7NgwbrKi5rWqZt225I2Mtlgu1XHUgCr6WAKRJsJnBkmNZo/W1dAuDfFOXpRE7pxyZvvw5sCZfuNe6sjK5uMibxz8JuOHaiz3Ls8i5vzAJvGHdkypKiRh6CI5sQDWhrH1fqGmCUfH5qHfgBIjdy/OZvIewCgpbQVzbiIxYTKS/rh55yBYRoW+3XOEgCKroAbZ1w4cbrNi4CnXNd2IXd/w0f6nJG7r0GcRGf7pbmaPSaV45+ZhbH6Zd2ZgrP8RyP8Bp3ImJ2or/+az0+snIwBx9P9AlI0hqwgBrYos/+5A0ojA0IZf6OgiAkTq6+Zdseyyq3xSk3Sz4YdT6oFU9vA2q9Ag1IJTKeV8d243XG8NiF3QCYdQ4gPJ0b6u4OceVGSUFm7uh29Tdf48SWa5aO6WMvrxAH8z4H9Bqf47424yHoA014EAzwcQNQdPf27EhnarnQAUeZstQmaIJ27Si3cilH8FAndXYfywS8A4a7Amx9AT+3cSawTGPW3wufdVqv9TNf3aHWa22e8OO+Y+Um78oe+FF6Y29WZJw+OUXu9f9AZu5dJ2M270koYAOmqYUJMIAKyHYDCHmQ73ijbGv33iXDKPL8tmqLvOqK3AKxDnUFZHear/lRt5cynJVS9xlDMEfEWwJ6z3F8N+bSwt/WVYAePoAD+PfXzXWP3p8hk2YSlyLhpvi9pqJ6L1wVN3Fo/uabnuZRgieHH3ZxlqI2D3FE7oNOYAUMqICPD/mOnwABMICtjURRnYAumvRvD3cnrepVdlOHPHd3t3lSJ0Ox5BmeyXk98IhKONHNcjIw9zHHzjF5Hq2j9/czT1Eg1fVkBvbopmPuxrG/piIJp+nDZuk7t2Opl3g1Huzp5npg32tEZgVWqIC4F3mnknv3fSr/AWhrSkT5Sg/CH7RSK5XImE93BEx+xF9+5ucZwimEwJEEPnWCo7JMYZeiIghcS34AHHgADkiADM9wfSc8TMVUMLCB80f/NQCDNWj/9Y9Unoz/SBW+tcN4H+t8n1Z41A/nagaIJUWgFCkicAnChEOWMGHI5CETKA4dDnl4g8mNIWCgsCKGAYOBkBMEkCTpQICDkykdSJCQIcMGHTF/iBFDxiaZnGja6GlzR48ePoeEHipq9ChSRkWVHmVqdNEiSZL8rHhhdciLhUO2VtxaZEiRGxdu3PBw4wEHtGhx4LDBwQbcuDbA3GDTp08mvJk6PWLj1y8TNhvBEN5BOKNFJgMZ/0KJKHFIYyiPG0OMyDjiwIKZDSZEuLBh5YcSH1L8ipEJmMCsrH2sMMGAANgoS5oUMGFCy5cvdej4IQdnzjs+0fApXhwp8qVKGS1ffoi5c6eFCi26gynOFQ1WeVz9zKTrV7IdyApha16IEDNm5swxQ+cR/EeQUI0bV81+fWHCgsVClSmTKZnEtwZ8czxCIGGFgWFYgoRBAUYahKFWhIOoQWHEEpFJZFBBjS3W2WcTgbjEViRy9V1FTFTB2kchzUbbiynh5tJuvD0hR3Bk3PETUMYR1RR0QQo5JJHMPQfVIphIgh0L271QmVZfFTEeWTfgUB4OCbpBB5eJTDJJgKaIKf9MNdXoU44+2ehj5n1lCvOLfqyYImeA/k0iGF0LgsFWEVlSmOcNgAaKA1k4LGYZiZlpmGFCEiUEZVdacfXCRUWwsVoNLY4EI20nTcCSBRboxttvO5r6UyHGJVUkq60G+VxRUBGCXQvcYfXkiWANUaWV6RHmhhuT4IFKIrKgEksswQTDzDjdjJMPtNDqo08+01p77TjU1tdNN8qigooba9CxRriPvEcggexBsoa6a6hnBhA23BBZRVJm5lBolpEmWkNaPWlVVlkxdAUxNWiAwWuycUqSAQ7MKKoOFuhgBY6n6vHTcUaxSgkjHHdMCcggd/xxyCETecgljGCCiR9XNGn/FRNZfWfiDVNWacMahOEhbCaxyCKmMqYoIwyzzD4rrbTXWovmteDkk+04cQIoJp1iigngf/79l8kk8CmAAA5QUAERD/eS1tlDhzo64hDcXRXwRX0Qg4TBGFQQ28KzpSSBqBKTKoYcpk6nRyFNPSekyCUrvjjjHhOJCSOfSFLGFRBxlShYVFqpHiSWxNJzLKYgi6yy1HRzDurnRBstP/nYE+20q0Pbz+r61AfOOODoXt853VBzDTXcpO6sOMyAwxcCNmA49ndF7JAGhmsj5FhnJDJ0/fQvcBcz99+t8EsZdB98d94mgWpBDLxNHPgd1d1ROJDQcdw4/fWbPD9zHF/S/womlZQBx5NQRDPNGcoMBJoEKkzxrf4wMBbHCIYyuiGOc0xwda3jBwZllw/a0S5aqnOatdRkrXH0jhsSVN2zcIe7TrjBBjsgCBSqZJ4iRC9D1Fub9BRCou0FDEWB0YQakkC31rgIRrCRUajStz45EGJHhNDDIg5RuCHZj3GcABknrphFLdrviq34BCYMUQYnvOACTDCjrshiFraY4RGWQCAcUWGJb8mCdNeI4OlUxzp78IOPsmvdBjWItA560B7i4JY4kmY7cAgjE4TBEA1vwAFJksUI9xrMYA5iQ8kwCiES4QF3ePAdmTEBDmpQQw0yZTcXwUZhKHFYEidGMSYW4v+JUTyc/EhWMi7ykpeU0CIwf3lFK2bxE59oBSkqcQUyXmAhZizIBQzFlkd8yRLWvKYc5ygLXBzjgXekoOrsIc7XiROQrJtdtF43O2p10B7ncGc60sGt1J0DHMwIhpcSVBCw8AoyinnQg5awESMElDM5jEgosSLKEoHBlGWogQ/sVgEDQKCVeJONwzRgASToIAlWsAMhmrgI6lAHl1b8peKG6ctgZlGYwtxiKbYI009wQklMKmMaC8InMKGic5Y4xU+DegpUyEIWxzDqMZQhjgmijpwWhJY5ZXcOdeRDHPpQh9Og9U53isOEEkwhMzJBBwl55is4eMAQqNAJReDBDWD/cGvO9uQgMAgUhjXEkFaWIEpRmuYGQlRlBSZqgARYVGG30WgSkqCDOMiBie0rXBRT1jguonSYIVNpZbf4UplmcRWcjWkpPhHaJcGBBUN45ng8wAEcpAFA2bymNYF6iqEWtZvHuIYEJ5iOd4YTWq8DJAfV6bpz6COR+aDq63hLQW7l8RzBQMUj5iChInzHkjugLhw0oYlOdAIRmcBDGtxKGAopBjWOkQwneTAEI2yFvWVTzA0eGtHAUjQkhE0Aw1o5AQ20oAaJjUMcQkoIJB0CcpzQJRYvS79eMrilnPDsg7MYU05MWMKjZRJXTitJMPTBatcEKmxnewpb1Dap1Fhq/+p2mw89qjOqVJ1qPtLRD+O+c8XujPEhqcEMHQfDXAn6DpBpuIMh96ETrGCFK1yBZFZ0whR9wENqoqxXgj6Ihl9xr3rbWxAmPFSiITHAAwZ7Ubw5AAP8RUJiP8pEkU7xwJbdpYInW9nNbrazdo6wTEuh51l8QhQtM+16d8UBI8BhTt/6sCUgAWIRb7Oo0mDuCXd7Y9flw5yte92LqTpBdaBuuO6koDKk8cBgWEI9cQWyloeMgx1wtxO/WLKSldyJPrCBQhSasiXR296tXEC9YSkCFupGXzDjtwAJwO9FDbDfFlggzXGww5oHjKSVorSKJwXmFiG8Cs+uIqbd7jZo9f9cCl2Ewg9WaeZYBh2IYLAiFpOQbecgIe/Y0pbEJoY0OnYbTwruVrlTTR2nKehOePLWHukQBzWUZYoDgWEu5e0KE7IkBHGBSU6sYPfFj8zkTnz3yU9OAxRADgYr16xS8A0LHD4Cki8/4NiwwS9+9YuB/sbgvwCO9h0IQZ05V7t+CL5fne3M7QeLu+jibsUsdOG/M25FklCAA53kCFR5U13RPx0qiR2tDK/ie6le/zrYUYxiSW91qdQ4hikm4S4bmKHk1O2KnugwCVbASRhzMoUwNC4n7pqiu919MhbYgAWCEn5XY7lBB3aliMBOVADHJkACCFAAyBOAJJU3wEdaoAH//yYBwAAWg4DFgIlCpIyyPXccdFLGiEUwohCtJ33HZDr0bdO+FNu2Pbj3PG5yV+IFLLhAMykAhTxEPbZVpzq9TyEL5XeTGsHrhldN1w1mcIv6h2TGIYuX/aXmVoLM5QZ/1G4DIChAAZMMi2IIswZx0SEYwtAHI+9pd3bfve+mQISYApGJQHxc8FgYfNlQV1gYgVoFFt7AXOUVgAAoIAFUHklUgJm1QAskQc15HmPNCiGAnrQxgumZTMqkDOuxHkmN1OoxwiVs1uw9GO2t4AqWwiy0gi60QiiUQRml2/AdmX9M3Skc37zJ1mxlXTdJg/MJITUog/MZYREmoTIgofM1/6ETOuEx4MIprAEQVGH5KYC8UFegFAEVPgIrgEMyZAMjMZLdWU394R/Hcdf+PZkXCB4VvGGghQUPUAEcjARsNGAB5KEeNiAfksQFmBl/TaAVWIEFBliAMREiIokiIskINuJIKeIJ5pm4sSAlriDStQImtoIkIIEBEAAFUAB1PQLWXJO8yUd8QIIbxdYcEVUdPdCoKQssxqIrBsMDtaID3eIxOJAsBAMuTAIkjN8VHkD5TZL6ucsckMm06A44iAM4KIPChY4Zbs3WCEsaVKPYUMGuBVpFuAgCSl4DDgAfNuADfsSZVeAgxgEhFqIdXCAhrBkitiMiQpscQFtIUcfqUf9CJMLUJFZiJc6CC2Zi/yBBBSQAKN7AGgyLKQQVKkICHZTiQqribKECLjRao3FTbRlVUckCibGiiHWkR+5gexyASArjFXIABzQcGKxfLJhJMqpQ8cCiGaad1vwHHvRBeLFBGlCBG5KIe5EIFMhG5EleAQzAUHpjOApAYAUi53XeOQ4iITolIdqBHXwUVU7lVDrlVYIUdUDFJXQlJ9AUhRXdCs7CKtxCWa4CWc6CWv5jKWDiJQRkBVAAB1AAzlhCIrwWQ8LHe7wHfFzTJMzRKq7itwwmYWYTUMkR1c2BvClmYkICvADBSJYfSZafAXEONYwDmjwL6iyVMjCDftyT1fj/BypMAtfABxu4QTXu5JSt5k/e4QJ6IzhOHh/CHARGoH9VQRx0nkcxJVT2pkcNokfJElWqmbSRHj5SAliKVljSHlmaJS2c5XOqJVpuWyuEVitcQigYQha8gFzCRRvBll6Gp7nsJWwZZogFFXpOXaItJiSoC3uoy3o85khO5hWaAdtlQjDUx7Ro5mZ2pmfqh34Eg+j8ZddQE7BUo05iARUkBA9EDxW0krEZZeRN6ITGRlJKIJr9V2LpZhIEURBZQZrtpmLtJoha5SBqZVemaDGFW3WuoFnewiw8J4zCqFqqZXVWpzGRghixwA1QAFvMRTVZQnwYiLkUKR1YAh0kgrkg/2mRGqmTGsh7vmd8vsuUVmEVzucVKoBIxsu7oIIw1AfUDBwFOd+OMUOZmml/QBc1vZUb4KQX/B8VzKF6gdJCuAgECAAEHNsDUMAD9Gmf8mlI1CZ/1UAFauhvMqUaDGKigihU/uZHSaWakd4inOAJJmfRtQJzxmhZzsItdCotRCdZrsKN5uhUXMEQmGRb4Ew1/SV8oCJ5cgmSckl4Qml0RVeUsse7tAeVUikQCMGVQiZkIkCWCiOXAoEoXqbtTAtvddU1mKmzeuaOeUt8PEJb4QEevGmcxul6lU3ZfFmgMp4BVMAFTNQFfJmg9hcSoFkZbGiHsqu7vmsS2EFiWaVU2v8BV6boJdCUaInWjbZlWqolLcQoLdwCMNzCwAasdI4q/0zFCwgAqnJAzrwR1wgpfPylG1jCxW7JeJ4Ll3BsdLVnlIIsyLonrl4pApxsZGqplh5AFarHI7gfmNaHO/nOUQWD8xHNs+pYf8AHsOBkGvwfKAXtEHQAKFEBSCRMoJarAXRAuI4r45HjmWWoh8JrhsLrhsprvYLUpE5qvn7lVx6dnmGqqKqlwX7qpwoswdIodX7lJ5BCMlWCH5zqW6DHHIBJJgjpl3xJknZJx/btgYzLgRgIgbQnD1adYr6nEKDsfAqrMM5nFc6Bl17mOASPE5KYLZwCLtjsmeqYMFDDzsb/lWHQkND2WtFSwW0omwbcxgSoHOuq3MGYWSrVQNWuK+0KEd3cruymqxBtaBBlrb2+5SWQQr4a0zEdU1ti6iXWaI0ObKemrcHWqKh+0RdhAilIgihcwQVAng1cSZJOQiL8x9V0zSTs5Xj+rbiYy+AyZuHuoEdak7ssruIu7uM+wrfwIi5QAy5wEy5crojZwrKYKTV07rIoS9esgWFc1wxMCQ8QLQNTgRTUYepqgEb1V39JsMFY8OZtXuzeLpp1sO3GbuxaQA2IsAfPqxrYwQkPmPAKL/EaU1tywo0ir/LGaKcWLDAUbNoirD9iYo5iQihIgiCUwQwQAFygh9zFpN6O/+/Gsh+6AG5DysdHjhhFZmToqAfLHgACjGT8Aut3fgsuSKQt7C//9m8sJFzCaS5Mco0bgBecOvAbsoAbO0EeBIKZkXC63nH43PEdy24q4S4H+zEIB/Lm3bGHnrAdGIIhSEXwBq8xfdExZaKo6kLSSbIkD+wNIwMwYDLBFqzytmUPS4UhBPEFNEADoAcQ0MHUBMh/jO/4auy4+C2BpCIdlVg3BYM02CwEuZ8poIcWoyzKcrEZCOZgfqSiiRgux6KyjI6d0FobUoEXSIEUOAEcSPMDw0Ed9HG60m4ZrGsQJUEe7zHdBLI4j7MG+wA2p+spSWUkSAUpUG/bvrP0PvIl6v/CKkgyDWdyJiMDLVxyJqvtqFKvVFSCITRCFuxABCCArwrBEYfvl7hyx4oLRBepNhWVA5VOmWqfmf6CKayBr9rAyX40AgABA8TL+cJR8ina8f1g/q50RX6LKvcFFhTEHEIzTTtBE0AzHMjuNntzGZyST6vBuurxHoMwBRuMwTjB5vmABJuzUkMUNnuoIBwyIieyJFSv25JC22YiDMKgLnS1V+czMoS1WGPyDZ8tD7etkkhCIguCIGRBB0RAA1ShQn8JgEwCsPTtuGyJK7sRArFisjQh9TmL0TBLMGRCqjKAXFgpEKwHNh0aKraqfBxfNskRYSJQJoxmfCgGDqzWDMz/YbbyQBO8IQ9sc0/7QRyYthqctueZ9jbf8RWEswRqgFKbGQu8rplhwGw7tWxDFDqfsCAYQiQgslRIxcq0M1ZnYlcnHS3owj7rgjM4w1hjslgX7Nm+4PQOt1oDMSB8wQxEgEj3KpHmLZdsyXhDNB24ATW90Sw/kI5xyzgMtmeOgylAQqraAGIvwPhZ6Rx4zmUPc6veqvpGtkNO64C4yw3Y9wJEQFrswAN4gFk4eFn4gSDEAXBXuIX/9oT7AVCn6xXErg+0wGxjAAt8xIiXOG4rtQ8wdSqdQW9H9W8H9zpLQihYtdtiYgxK8jKE9TJEAzI893P3eHRn8nLTAg+3s5II/3dwCwIghEF3A0FIT9x548F5d2y4vAcYdGx6D2aJtXdgc8M4mNA4HEMmmEFbpGq8sB3nnALpIAsqTJ2Uwkuu2iq7zMH6ucvaKTYQcMAC7Hn5JfieS94CHFsE+IEhVIKhV4IkGLpaIzoio3Zrd3gNOEEL3DbrjriIfwSKy7amp3i6nsEpsXUoVziiI7pxYwJXdzUw+LiqrzqPI0OO5/inxuD0pvVUB7cjCEIgTEHiOnnLiotecwlEb8mVX+xfankuHoN7O8vkNgv1oYJiHjgORIAQjB/bKeaxxGJ/AFV0vctiw4uuqgeeh/uvYmGfB4C5nzu6B4AgHLr1trsoJLqhn/+2hlMO5WRBpGuAE5Q4C+g7C/hAv594igc8b2cBEni6TwOCGsC4VMz4jJPCjXf1jkeDxGuDxD93xVe8q98wc8u624KyQLu4IKgBW7tBA5ysSJfHrwDLW70VExP7YMYCNzXf9znLZXZDLLTHGljJ9lrpeqBC851xFJ5CZIM7ehS90VfhSDcAAzAAAgAASD/915ys00/9R++5IYhCKIQCLFx11v/wofuBhvtBvUc6RGmAiV86v/t7RKE4U9s7wRf8T7N1ost4VZPCqetCjjvDxEcDxV+8xWc8rHc1Mn3CD6t1qIM8wiNCGghBXCN00RPGWIXLlV/5e1STFxsVNznf9J3/g1c51ymsxyNYyZWgR8/brBPyYn84pmOaQUIntGInvUhL/dQ7/cky/dPPftPX/gJUgtbDgu//Pix0faIbAtiLfRnYuxMkv7+X+Afs+weo/b4HvBO0fRb4QBZcfx2ogad7+otLAig0PCxA/DKMfzRggzZgA9+n/8VX/Ph7teB3/PBH9U/79B7sgRfsgNLbd3lgyQEDxBo3Aum4sTQJFapYsXDhkoXrGLVu3Lp1Y9ZNWLBHZtaAwXHDhhAgZiBZihUMXUpu0o4ds3UKEkkzQmjasMEACE4GCIAgOIAAKAChQoHuBHr0KACkQBcsCAUrVC5YuaTmagWLFKlQlSpF8uOn/0yZK1mc1PDBAgMLtCwqnGXh9qwPuU6cZPGRpQbeLEjOhFUjSBDXSqEkZYWlSxcwXcuWRXOsDZu2aJIlO47mjDFixFdbaZVUyZAhQWr+2gH0V82gQIi87BDS4KaNCEJw4BACpmPHR24mIWTIEKKsY9IkVqwYDNXGjjhsMJ+TKFgwYeNUrnwJM2ZMIEJsArHB02fPAz9/DlWqFKiCpeuZLlAAa2ouXfIRy88VaitXQ1/LZLlC14m42lKLhR7e8gFAsrJYkEEGz8iijL7+8CMSwfB75TDGNHwsssgom8wxzJZBzJersiLsM9FIW3FFQQAZRBFFOsFihwYYYCCCBiLAYf/HHQTCYxLeJskEF4WAs6WlY66h5hyMmOkEDNzWWAOINR5ZA5VgmGFmnHG44eaYhnA5BbuYZhKJgQWAUIC8Nskzj6ijeuqJPaBysoEqXXzRxRg+F6sPP64i2Q8svAI8C4MeKnjrwAQbfHTB/sI6Q40/BDGkQvyeWgyYDaOJLJpwJBMVRMcy80UqrDz77NLRWBzN1Rg7USQPL3C4kQHZGrDNNjeEHDKThXBh6BhZkByOGnEsCoaN3HAraEjpLurSOluugwRbM7T1zjsE1HPTTTjRW2pOn4D6LjYc+FzGGMam0fBdXUJRRRSuNBGkUADPMrDAt5qgCw5IHYTwjL7q+KP/jAkFiaReUUJ5Zd0NsZnMw4opm5ixPa3CCj9JBnX11b9Ei4RkkjeJ5A8qHliggAg42NEDIXjrY0hThBVWOOFwoYYaLoVJjqM1SJrDkkyE2dIiZqgJxhZLIHnkEUsemWPb7RD47ihw3awTJyF4mhOIsMXmTgjGJj7b1MaWgSqUegXtj6xDGZXrX7oYzCOLBwvuq+Ay6qgjwgn9CEwUh18hpV2JP51MG1E91EYyxvr0UyqtQhFNEDtYbLErwQovHBZiPJHigRwjcLk2N/rIhHVTTBkWdofChKhnZoKZZEptIaHDElOm69L2YMYk85Gnp6Z6pLB3Ug+o8XwaD3pzEQDA/6iicrpepOy5NcOGNabBBvzwxceGXVjoLbwSTfwIGMAmWGhCived+DeMgPH++2+/8Qf8jD8m/EMRjfBEJUShilzsSUPLQBtkINehTy3jXX0yBlVMRBjQqIg0ZfgLYAxRCUmAghSHgw9VjGGMRlDhBg942UdwkAaaZcJmvxnWMYAjvOhIJxNT0x0kUCGcLV3EdmOSGtR2Q4cpiQQIA0DAjbz1rfNsTT3icd6ckCg2K2rLDHN4BAQhGL5PQeZTEzQf+ioRFjgASArzc0Ia0xiGLHwBDn/LQiAihL8y0DEQ/vOfHxQhiMKpAha+KGEC0fa4s2moXX2qXKAqARjAaC6DIv/jyitCoRVSxAeB2IDFJqTwMg544Aa3UR0qgnUz2M2OIdHBhQ5J8giFcIlLPAvGMVBhvCtdaQ0hEcm5mpgepZTHTWs6wHd+MicbbMeKYTPDSLL4iElAA4LfGx/5yJeLV1CSXp7QxB+ycMYwrJGNTgiDFNxovzoEYo6BAFwg8qhHPQYwEp4QBYYEOUgugo9xDCQfBH3Rz1SFwiuAadHmNDiYrIiwn4KExjS+x1BjeAIORriBB4oQJSElhCEPkeFCwnSMYFhiDlTT4iSCQY1xnINnYiKTLecwJaEd0wYKUIB7ejm9oRzgPN4CD53m1LXtYBGocygJQgTJUGlS83v8zEX/LaBSC67EqAx486Y46VLON87xjutspzv9AMA/NIJhBXxFLiToLmqeDYzgM0ZC4UNJUeALLGHJworK4CpBVBKhe2rXu7Bx1L7WIhBU4IERwJAGMOCBlKhwiCw4Gosw3SwYp8iiGegwiVgwQxjcoIZLVgqTUxyPakLj3prWJFOaqueJOVWAeHpCTJ4cE5nLxKJQLXEQ1+2ihAzt627fxVBUMbUWqlCFJzzRCEX8AZ0Bg0P9ygnHOuQBf+x05ztj1AiwhhVDZC1h4hSoQLRGhl2+gMU16RUJQSDsUQiz1OAW9pRAIlCa4ZCvfMkRDnLcVxWBpYJh3cCGpykkhgsRsIBl/2GKmIT0EaaQztJigYrOYgtbIdWWEJYZNp4sYJg/UQ/zkHIAsH14bMzMIoRra4mEyIKxuyDrM3Tb0L5GMBcqhkUt5iUKT0TiuHWAg1TfCIcvZOF+57wjct153ACCVYDEnSc9t2uMd3UXn+SDJqquaeNINMIPdViQ3ZzQVfZyBT9T8cU9sTFf+tq3vvcFLBzYwAbcQC0hAf4NgU0s0jlUlkjCczAkyhRhMyVPbEzRcHoI3UQgqElNydyOEIS2hpAar7an6GEPHauKXeD2GQttqFGn8QxjqHgXMxaujY2rZeju+I14g24e7rhV/8XoyGA9mZLFOtYD1nO77ILgWmM83v9XgMIRjvBfg+pSl4JZioCUFPMgwTffNKP5vvcNRzFEoYg+9AE3bnAmDAfskFjIAhW1FSkdnImQhCQHJo/AzmRlm7wKh80Gw7QJT1bbHZiOxAZAnW0WtQg1S0j63D0cVjBG8QoVF0PTvDXqBIvR61ET17iBOAN0gVxx6BLZ1dWVdSROtglaC9fgVKGKimM88pGTd7hX1vKPv9kgCVFonqQ4oJO7CL5nRxvn9pUvNoiRik70wQ10IDcpYxFDFIPbaXQI6RrwPAlsQe2zxYME1f7c7nevySYKsMnWuW6TXHIE7EKzczOh7uCAPwQioFCFwYthjIWKj6EsXmsxfnu+4ir/Qo55UHXF23nkKytZnp8T/OdGLYpdXPMVIEf8K4hbsiv/4W9f8IEU5PIFJ/z4bwCM5zVr4Qtoii8cZb6vO8hBepynub7mwEYtBoEHH/lqSAR2SLh311JyG2RqkLDS7q8k4arJ9urKdLe7g2YlLWpx6skX6dRdqW6AJ6RIDQmGJ0Dxilrg1hgs5rRDt9vPxNv4xsel+Kr/lgf/WTeegReu4sn7fVCM4o9r//7niHv36eLvC2EIw+QRhPlXC8ITAKkWDkiaIEdU0MwdEpD0EvD0Si8c4sEciOHnXIPcikYhUIz2pk7prGQSoEZ3OKKlwg7sRoLCgk8kgKrRXMpKiIgF/6UGwrLjaf5N3cxOscQEF4hLFa5vF9ou0xZqobJvrYIwuLJpExrhD/Ru7y4OgBzB4wqO82ZsxkLt0sYrm86H/m6sZIbtQfBm4urgDL7gC/XPB6YADI/tD+rP4HyhGJ6h2VBv9BRQARvwvuIBAtvhGXjh54TOEhJB0jAw6YRuNwJRObQld8Ag7PIt34DP3YSKBdUN6hzR+cjEwYinz/gM6j5L0iTNFhriGASo+q6vGNquyaYBGkqo7QSpykAB4iAPyPBmD/4mj6wLB4ErCkHNFqnQCsGPZKwrgCBvud7ox34sD76AGPWPC8AQ8v7AERphyXahnqBB9E5vAeGBGhmwAf/jgRzoMB7ewRyswRUQIRF4J9wAzml25xEKwpmuhBC1pXvy7eu4Bx6BCgjmQAj8LeDuER+L5NzIZKWezrOcz8FsEBeYkPoMzhlDURSdzBjoru2KYRcezhMUQZ2GkfxeLclEQQcvLcYOTg1LrhYSzwrDD/LkKP/EKQy4QJzyjxhX8guk4AuWMJ6qL+RKiA3LTOeiDQ6rsfTkEBvlgQ7lYR2y4RdYwRQSARUSQRYkrbaE7vYCUQVtACSawya4BxH1LaT0ULFmyYakTyAF0hbMjh8962kwcQYDsiEaYRM2oYAysiE9zdNCUQ19ocpGAeIk8m9e8ZwAKMlykCoS0i87MtT/QFIUVLG4RlLLyEkKEvOb9K8M96cOXtK6mlD+cOvtQo++cLL0EpAa4eG+OBPn3EEbfbIdysEayiEZhEEYlOHbkO4Pby932LHruA4eE5HfeMcoTaElbMijtHKWaGh2bPAUrgU70s0S+REVNhEXItMTCq4WQFEUS/EZGFINH5JeQEEVjRC5pEsv1dLScoHFxgcaPG3u+unw7G4XRzILEpP/KI8Ys2AP9GgQYORFFMERIsE6Qc4ZnazZmg3ayIEzq/E/5XAOw8Ec1mEdrKEaTnMYjkY1WXN3dM+IpgS2jkmmSAumqlJbHs2ViEV4loZnPlSWkuQ3G+I6HuwfnwZFMxEV/6wLLWsNFN2u0xay4RquPAeTLoswRv4gPulzE9SO7aDx2UKP++KyPOnlZIyLFROzBygvMcmwDAHoyHpREU7mPg2y7d4ufC7TPzMzQD1zJ7e0JwsUGrKhGlDTFIbBFBirh0rsKl+qanjiJ5pHbDBUpJxpWDZLlj50HHgms5bGo/5UIMNSLIuHUJ/O+fRyOUchB9luDUsRIZ3x0r6PCI8rPgdBGT2u+nbQGGxyvsCH+xYyxuaPRf2nDvavByZPCo4x814NEFiUFx2BuN6P83LhSsdHVHCuS+FBG7Z0V08PAgu0GYTyhoLhJBYiIWRQwuBNPMzFeezkmIKKd0xsIXhGs/++ZE+9BFs1a7NElESthR/57OmMR1yNh53QUu0U1fowbSGhgSF3kLxGAV49IdgoNT7NNQdx63uibederPsCUxXo8vEgLwya4FQpjwuy4GAAqFVd1bgaoT6pD14NEtOgcT8bBzPdQRt01TMBNOfCARrWoRiIoRp+IXiiY8ASonio5urgNE7txE68Y7ZqSyFuyKRqlhuy1Uu+hGekgSVaQkxKVCxRFGrG9REkbhDS0jojVlMbcjp9IVKrcxRwtFJ1VIDWjlYX6ibry1OnwRSd1v3sr1SloAcItgmaIAwKJtZYdF5dlfriCT/rSbfGB3J2lW7nlkt18sUWihdcAYZcJxj/XIcoWacDHwE3uEdOngcAtqYnZmIm7qxoOCoYiONLbpYarPVmL1dbeWY4ZsdahBNcpS5lmQ+69gBGYPX9RqEWGlJGnfbSDg9ebxRJ/adeN+Ga6A4aoa1Th7Thvq8uz2CcxNYHltQHkNHvGLZhW/VIYRVdd1ChOi2adms/x0eBGggadiG4eCEVUgER3mASEMEUWAd8M2FwoUZCgcDDskYoWraYEIDCKGykFoJmL3dP5fdyz4EiJuJDk4REwxLCClWoku8RiDHzmDCeetQZS3E6HVIuVeH9itAIp7ZeM7XtpOnZIINfFzJSRcGB/wCOxqkHeAAGemBswwAmjau66FU1/84vRjwOB9PVIOMytzxPkOJSgQ8v8TxhEPLgDXb4DfDAC7wgDfBAiIc4iLEAC4ogKjmsed6EPOTE64RAi0ziJDyKZ3LWiul3HCpCZzWXc4H2BSFMqMI4DIjxDAJhYYuQO3GL7lr38AYzLelVuurV0jT1duurU8Nh1ybo0oYLSfOgbAmWBzpAkDtgSQ+munAUuZ5LJcNgdA05gJrw/U5XUdfvFeZp7UThdUeBMGlFCmZgBz4ZlEOZDkIZlGnjNaQocdM3caeHPFqLJhxtQ4e1crP1HNCBOs4Bl+3XSyoif30WF0q0f5VPmI8xDLzwDBY22KhUk53QdaO2ESoVEergFf9fcRA84UUrU+fAc60idRSQtCVh4AM6wAPE+QHKeQbgB7os1bgG4TH1LzHFdknJiTEZOS/zKIVjBBDwWRFehJ8tVTX2YJxmQKA9mZQL2jVcYzYiwChSOZXHI3FxKnq8gyYoS1ppdloqIpdPKpe7oUmw9UNxQRqAsx9fMIzFeIzB8BXzuVUBYRmXUZKj1hEGYQ8QYQ/2YAxsmp4VARToGBput1N36wdZd7iO0IM7oJyPupwL4AFgwGzpOY8CYQ9aUkl7AAZCuKpFWArgJ1X1j6v1rqa/eg/yIKoZ+QvygKsTEwZ4YKAHegcI+pOF4KCFYDYaoAGQgqEhuqGjB6ag2Er/LEGWmeEcmEEcBlsczkEcNPqkTgpzPzqkG+JbwVj5QmoOuHqMH3OapbkOBkGl6ZM+ZToMpgC0YWAKtJp0N8HSrrSn+XNrp0EuQfJfOVmQZ8ADjroAalupE8ADmHqrFbmsx4kLCLYDZiC2O+Cqs3qru7qsvXrVJq633fmdQXgGjGCt29qgd+B0csRGbAqvG/qhI3rrQDBqZlZLxgEczqG8wQG9weGkyjuXKVdbfdmxPwsGp06o+I2yp0D/QJsLTvIL8FKmv3oMwoCqq9oNqpqpw0CnX8F2wzO1wQcaQs8hX+F1N8ERFGEMmgAGZpu2bdu2IwACzlkxl4uy37kHhNvE/4P7A0RYqymbrJHwubqQIvNvnJpgrQWauj3ZrT+5Nk7HRqpHlfHaoaFnPFrrmKCYDmJwZpVBycUhvc87HzQaly8XRCPXBpMDwtYgwuobEt5ZbMnWuPWbMQNczKegqgXaA86cqffAtHm6p3uwFHvadTfhuNRpD5qAnB9AqTm8tgegth+AkLN6v/f7rJU0uAfZxGdAxeGHxSly4ho9qsdgGDtYScPgh38Yw9MAx3X8kz3gdJoCAQLg07X7x/N6inLlp8AbzszusrqEvLvkyaGccvO3pMRkEqUusqlGhAfcwK3aqptgtEHbC0abYD35zD0A0blgEKovFD2tp5vd03bwIf8jEvKGkZwyPKn13Lb5PAEeILe1er9lnMtLvNCFe9wT/bhbfLnz4AwuO8bTmZ3YCQ5oHAtyHAc8gEeaIgBAHdRZmbsh2nn+nVtOMEMfbYcgQjpYXaPzAZc9+kNLSpUaYmj9TMtBWNd3fddzfUlHW9fP/AF2wAN6YA9AwTndDhp9K8IlfBNyWP8wPMM1HNs5XNvHeUmbQNDH+LN9nWBh4MTJfQY+gAfKFjGPkSX7uwz3wNGlOY4bQRM2YelVIw/g4A1+eN53AAcQIAI8PQCYB9TNw99JvYmvR5cY7QSZqSQC7iRaXbGvteGpARduqCEcTOpKeg5ke5zrvtjR/KorvuX/zzwCchvkk936QnEHHxUk6RKH8wCtjVrDr/3l+5zbQxjQR1xJ0xoGCr3Qx3kGLt7cAx0Mb9qy172M64A+688T0pLpmR7ee9iTb+TqF2Dft77f87q7hRxOx2YmlIkksKW2nsayooMbOvpDhWHt2154iiTiJXsO7l75l3/vIcD5IcDDI0CpQX5KUffwrHfx4BUUpPYPwqDyOV6p8bzx6drDPQACQnhsp2CrlTTnK3/nx/0DLr6q4z/FU7W/Pz+qY9ERZBUkAaKWqoG8RqXSNAhRHjhYdkRYsIABAgQADgCoiNGixowHDiDo6LFiRwQ2GAg5edIMHTduHrV89MgSqljU/5hRoxYsGC6cN4NRw6UTF65HkIrOgTRnzoMHHpo69QABQgSpDwpUtRohQtUGDQp4mBLIkSdQtV6VLThqk1pHgwYF2rOnjpQeHpZeLYA3r94CU53C6NGjyZQpXMI0AQwjcYcZixcnftxDShMpUrg0OZwYcBMuX8ac+XImriKxql7tOk1sF7FiqU8XPOg2DxWHECVSpIiRo0iOGkH6RtAApRA6w1/ChHnqFK5jOYUCbf7zZ1BUx+kcnaN16dOmU7Pi5bpXL4QwgxptAvVqlMFNbP8M2hOoDtwwYaTA6FC36l29WbU6nZEZYIEJdlkPPNznAWMKdhBgZWF8kUcdoEkYBv9gH/zVwxR1nMHFGXU0gt4uuYi4SzEmGgONicUIxEsqmyDURxM74PDQAhldZNGNG+WY20U+HhCcBzsMOYMbaeDhBh5ppMHSI5NkYgoqUZoSS5Wm4KQTTkJRdwokj8xhXQR8RUVmVFOBF94ABag5ZhhxDcKeJooM8gciXHgxmGCUzdUDfnaFZ5V2/wGIoYCGGqgYYx40lhkPlz0YF3x1yDfGF3xC0EEPoHnYiCq7GONLMcaMOio0phpjYi21jNKiJp3s4cUMMz6E24465sYjrjgC2cCQQsy4Bg5rrAGGEGsAMccalmSCCirMMkvlczoF9cgpRNEBCR108JedBxF4yxX/Aw2oOUC55qrJFH30wbVHHl94EVkPmf0FwwyLLiVmXvpZBRUEHhiRGKEBHopovR3gZ8TBhAYmBX0RxtdWHYPU8RYXUnzgQQ9ccDYIKMVMg03IImNjzjTTmPoMa7yokgoom7j1RkMR4MCAjzbraqtvu10UQEUIRMBVBCUxYJtEBwABxBp04JGIG4lMgkgmiLCS03TNHveIdXOwmVdW/mY17rlim/vADJsZNle9OzzGNoJ2PZBvoNqVySDbAl8IWduNLTjDhQwX9kUg7tHZ1iCK1JGHxfJOAUOHqvgCTTjkTE45OeGEDE3Kqr62SSeK5BHrDnBTZOuuu/HYW0U994wR/wK2TQT7RCMdDYQZQti+UiZQsoIL75kIVS1RWYO5QLkNMAVVd0CPPQAAYjfgQb0AzkD99AEbYS93EBxvFV5Vlcm2vH9hBsOi5uON997m44e3ZlM8KLF7gCgyvyKKvJVHHox7AcMbnRJjqsuFY4Akw0bmmrEiVRjERYp4Ff9mZaOb/chmOcqVBCWImwtScCINQMBJZoAHVohQhFrKBNbcMKziGS8rTFHeAIqHm3I5z1wFgB5TkAcB6gXsKX+CQPcK4EPwHWp8g5GXUw62qMbgBz/mW1T5AiQYSJ2BflSsnyL+EIiFvGEKaZhCHhSRilp8DGWZe8YzDrgiziHELV7Agv+9stIjHAGAdLrSoB3v+KMBxO4AJwFDHzJBNaoFw4THAcOwBsAARDKgPw1gZCIR0LxIOm+Gamok0L7VFEJFzykQWApegui9pUSlboBhXGDyRJfyJbGJ2/EX+6JXqMhwIS6AGAQgrNgJz3UiIYjowxTw8IYveqIWADyjGY+JwGYIJBVpaWC7EiM6mgWgZ80jmjWJlsEJXtCCNsvmzSYSANft0QZMYILudPcIE7LhEYZcgwoHwBVLXhJoYUMANZ1nT+PFMytN2YEmy0emqQCRL0CcSlSaApkMCYYwYZiCETHGxKeUaTsX+oChBDOGPRhuflbUhEdd0TlEIOINwPxiKlT/UcwzNqMZz0BgAl20iSvCSlYPcMhD9Ni8peDgATQCmm3umKsKxlGDsfvI7IBgAzOAASZLbeqw1rCmaRKNnv3xabkgKclIVlKeBxWYUx4gFamcKawG3WSA3jeGMGS0oUZcokQn2hSMtU9AUnjfGQR3S/vl0lW8+MUvXGEKkeLBC174oiaIyZpiJFOxxKgFL1zWuSw2wV47dSRXdiAkD+BgVj1tgETCicdt2vFce+yIAoCggNTe4AZgYC0YwGCDBwRgALNNpLiCFq5xhTOrsw1A0ICGPH9mzyndaYAPCxpWhEJmMITJqHz2wAWHMoiVZALiQZVr0Ytu5k1/+IP9GuhR/17wIhm8cAUrRMoGKngBDoEIo6qIgUBipGaZnthEI2AGA8xqFrj81ax/MUujWVlVtEIN7UUgiWDSHUABpu0I0mxgA9hK2AO0LddsLbzPCCCywlr1bYbh5q+mhFjEYf2kQK+bIcRMYQwsnkJoJrWHM0zhMBGNiic/GeIO+O0yMx4MZ74wqUkZbq+s4EU1qpGNZPxCGCPFAhbYkIdOuPe9qnKsQeTUiUCMIVbVsxdm4VYXTs5oszigUWc7SEE7cvNmB8jqbebI4AanVgEcUIANTtuBCk/SXB6OZyJn67zdepgvjZRKmPtyaO4BbXvGhUBifFxKFkNXyO6RkEPLxxQb5//leNrx2ykJ84VQsxjIX4DPIDzHCk38AsnWSEYyAAsHL1ABC14IhEdTwYsq55plMaXTHt6Q3+olBgsw4IGsMovZISnbIQ2wAXBrhsegEnXPbz5AABa84G/K7gAeKEBv99zneNbQwvrcXtkS1MrtdGegQfTXX3y84ko5l9K1/EN0ExPmTsatK9d9d4Y8ExcYPzcPgQjEXl1xZCRXAxzVYHLTdpCGwn4U16mouIsQkkX+uXFtTSBsx6XnlGUPqcw4cLazgTaRNBu4m+S28LfvaTMF9Ow2HQjbnmdo29vCc+d9BiKhqLcdqIhYoEA8XlTeHW9Jy0fIdLplLb/gUE52ctP/NTSuB/w2GBYTrpYTO8ODAtHATrgiFUfOhtmzUY1fBJYlMDhSlDvhUU2o5UUJAZ30dIiFMbzhTiBPtqyWTXKhZUUicxzqyiEJ6AoHACKMB7QcAaAAOXZgeYmnJIfPxYAaPsDo0RPf9P5D3OMmN2M+9kwYuABwStvSlrWEriqhgi+98DuHGfoC6s+QV0A4opaIC0P+EJFLhCvc7At3RS9ZsgMjsAEPBM/lqd+Thzd4YdnUu0wewkBYkAsp2Tsowg7AQHIccEBoDLi2HldOQdqCZwAEaD8BuhNmxd/znvbydlYDfflz9RuWl3kMgBIEdOCyPf02GKHGBfLhIW0hP05H/z++xjhfBVYDRXUQYFHxdgasx1H003rShweIEAgIZw1nR3xqhwhuICtgYARg4HZvMFJvIH3yol/+BANY0ATR1wQB42UJsmzeB35l5mye1UFvdjOSJEE4ZVsJUADuZ117o2eOBwCsgzFwI0NDeGHnwhWOplCWcYM3aDf4ZiaGxhTv5nVAhoFOx4C3tHp78ID5ATcT+EnvFmoSk3uO0AiN4Aj3gwcw4AYihXDlcHYK13CZMAlu8Cvfp3yDRQVNkAb5NSNCEgHCBQPrNQUNoTayYond933dR3LOJi4LYH4XRIQXEUkMADcRkACm+AAJkIodMCSyRmw+xToShCD2d3ORdP9hF9Zoj9ZiXrCFXYhp3QFWnRcGoVFLdKh7jmCMu7d7XPcHaniDNtZJ+9EVn1SBZPgHTkeHjaB7c4IIU9BLwCcMCqcPCddwpjAJO+AGm5WJYCBy2oNJkMg/9eJGl/h3Q1IErzVmJcF4kKRBWcVhhfZldmEAmBKJhBVreDAzQBNB16Y6RiQmzTOEMzRoYfVoqBdd5NM2b8RpR/dvF4iNyniMumeGgFAH0UUXmfY9n5QXQQSHEmNLilCHyGiHneAInSBS32gKq1Z2C1cN48AKg0gHZcaO7egtzNZT/VQ9xEY9/sSUIjdyZdaJBQBDEsQ6/khomJQ9N+QBm3GT3ygcaHb/MzdYFxoWiz5ii/DUaFg4Y9H1BoHRNjv0SY1WSiv2kXYok8gokk5XkoCRH9G4HzWEF1eXIQl4jTBpl3SoFiBlkyIFJeHIkwu3ZJmAJGX2feoYTY/YHVIhOn4nXNhjBE05A2QWfibHAPv4iTYDkRJZXNBDPRGlY1OwB13ZS8omBFzhTT1gL0uBT6vzhL2Fll7ReZuxlpjBhWxTF58UhrpYB7ekjJFgh4cJkrU0BhZyUJ2kaVFhXdaVIXlAOPZTh3PnCq4gXuXFCk+jO53ACsLwC+MwDuAwDsJgCpmAQr9CZvsFjN+Cn/6FA5aofPU4cjMCoGZGM51oG+cnipSEi6MX/z1RGBX/tge7tJiI8HB0IBVrYjO5KSbUhBurQ1trEiidB28F8pb1cpxA9ACZsWK4x5yOEAkt2qJ2qY3LuJcfwKDVCVagZKL+oil3ZTiGqRYV91jjRZ6JgAe6Ywrp6Z6/AA7CUJ6EKAThx18s5DVeg2xd5p+Ax1k0YgPhIhGElyOXd4VCkl9sQ4Fy1QMZdWpiF6EliFnLI0klan/8uDpStVVYuFAXKT52wx1s0qCC8QW21KIsCgqDCgouepdO9wXUaaMTZZ3slkObEQg9Wodyl5h9NV5LFlh90IGJIAzCwJ7jwAyD9Ahr8KQ00gCmWor4ORU4UKUz4JlN2YisKqsOYf9TQiAu4mRPbaZ+aCmmwumNgwEDckWjPUCMdGhegSWhbkChUaFnA1AVFVZ+bUYRzdNb4MGRPnaRb5mVHjoVYjgIgqoeo5Ae6TGogYqXgCBjPUCji3pQmQaNdhE9biKpjaAIcccKriAM+PoLStYJk4AHeLAsweCp7DlIk2AsZTYzvwVifcGqnDkDxpYGsBqrHiAEEMCqv+JTtlmg4oKcMrh3iAAXozYFNEqyLmZLruAIw+AKEUqk5aMmFwYA35EXMMQ6vVU81goBgRFdlpGnj8Ed9qcmWDiMuhcJgyquoxAKoKAe5eqcePkFPgAYFGhjchUVNfquZdME8FE/9NpAitD/qenZqT3JCvLpNHhgCgO7aqyQBj2YsFE6pULiZZa4lJ8JeJpFq93hEJ3VpeOySMYFYuUDm4ZzhwkxBoMxrB+ArboHUisrUn2QX8dloVzTFQ2wAPy4oRyGF9/yF3iqrXu6ktEDm8spqEb7CoOatKPAtHSYrupKJh9AJrD3ulfLFD3gJpHqXQo4CPnaqY7ZqabQB0nyJKzwnu/JCngAYZ01T8rjL5i1lEuJiVg6qwlpZgnZSPJkQ/0SPTMwBXRSk61XuMzFBcM6GIgwBox7kzCwrFyhZ0BDaMXDkDzTmx3KFbCEGCPaLw/JFyCagKMrCYPav/5brqBwS3UwsjRaF2Ui/7WuS4EHHFAJ8KhxUXDvYXC5u7s9eWRLNgmJkAYseE7omQdQcAOniLwK+45W6p9027A8BTapCjZZoV8AWGP0wgUb1R6oNxg+AHU+QLKIOwWAELKFi2/kArP8UTwTNKfVCj0JMqJe6C1Vd60aolGjS6hTPMWRsHuJWqNRaLWv2y/WObu+B8HXV3C7u57VMI7v2a9H0geamiR98AY7cAE34LZU5R8A2GVMKSSWKatzPL0xqEOJIVcZw2MwaT/SWbikJmMjW7W1xwXdyDiYFTb/OI20VXip2TxYVS78wiALEqx90xT74W5TQIa3VLSom7Sg8L+k4L/Oia4je3Wxe6P+sv/AD6DAsBuNMNAEFBOpbiJl1cAK5FgO4/ALwVCCY5oGzRuAK9wfAwCM/vLHnlkXO/XCHsABcHM8VQU2nCSYm9EZffJuTRAGIskWe9BiWXAGZ6AGgPAF6yq+AvJ6kRxJk5yarLOhvdlb/MI3i7Kt30EmMHCBtkSHg1oJ5Yq6kTAKpVyoA7yus8zQtWyd1Wlj2tEDDzMI3LkJqZANjmnGPSkMwfC7TjkkTVFZl6RofKEdXQZyO2WxmlUEmlWK1WtJjcQUrNp50SVkUFdKm5GXE/MFagVkTidj7JzADMysVYiWfwa/X4oRR8zMI6bNHfCX7pbLzNkIRWvQhVqoVu2ikTD/wAXMqGBltQwqdaLkaG6iy45Qcb5cDeWgD+VwZIPUNFNggiHNqnNcveIRjHaclXCDPB5wA6kaTxlmdcE6mOe8eunqAzgsCI0gCCQZajicBeksCJN9BusqdBAty+prhbQFcwfmI/M3W12BQ0IHe3oRhqLcFseo1Vit1eaq0EIttV0sy7ErYvmhikwhBRFyBuaBa7/wy2690YOEB3QwBfyDPUzZwlmxAHGzkoJiL/bSSZXFU5lWWQtAaL9VnY+mIR65nOjqA1OAwyIpCJ+Bwz6Ae5PdooBQwA7NqD60c4FNhBRBz084SdM0W/pC2lO3F7jcIQCNjC2a1Vj9v8x5S8xl/9llosCu+8qvPNtl4sDxGiFyV3HpydZr/Z7xmQiJEAi95KpDAtgPgYThAWKyzEn4Mt1+nTwknXl0nCClRIYqeksylthfAAiN/QdPi8Ogkc4uOt4L7S/8MttjAt+J9E2eDZHUNE1c0xeyvHniAQOE4ZFE66Ks7aJAnchencDtjcD5DRUP7sxSUGqjoQmpoJ7k6JOoMIjAxwV9cMwCZknWnXmAElYh5i+sqm/RDXvKXXVdcUnO7OIeMsAxfsNfsNgk+d0zjntbPd5Y7kPGZV1dDDbxdOSFV7Pwe3mmDXtt+Lm1J4fIKKhbnd6CzlyMflAJjsBSi+qXLSjxSjHgpdHj+P8LsTAJGQx8TSZgi5Ydqsjc+qId+vXc0XxDfw02XDMm/pEpnE6SZngGWQC1hC4If3AGiQ3e6IzeVV7ZCu5DKZlpqq7Zk0TfhUfp9pzJmP6XTPEB3OyRnm7FWw0KuydjV464rivvqN7gCrzl9u7lUDEDYB6pg6Bq5NiTJuSvwLcHfYAFPYXwM50fu27S/gF02JPpNF1Z4pa5ZTUDLt7d1wgIfhDtT+vsyw7e017jgMDj463DCo7pJC5iazKFdoTk9k3sWBEejnY2cfHPUt7uhhrjV07qpm7vrVu1C0znwfjlpZY/gVDmYmsKWZPhtf4GbiB4l+RfzlwVId410ZhJAIMwH9GY65reNd2SINnVId0t2WUA3t9dBoJQBlngUMw18oIQCXB/zgRcy+IhdJv5AAEBACH5BAUHAP4ALAAAAADhAOEAAAj/AEkIHEiwoMGDCA2aCKECxAiHJyA+dCixokWKFHNodLiRI4iOOVyExJjjY4qTJyumXIlCBsuXMGOinElzpcqHOHPq3MmToc+fQIMGJWEioVGFBV3+lMFUKUYQKUBIjPg0qtSJUKV+3LrBJggaILqGNVnyq8OuYsnKFCkzR1uUUFHMLInV6lWpJJz23MtXaAgSfgEHLnq0MELCVYHqffq0boiaJsVKzpgibVqSJd3Cfag5qt0RQSjDTSEXZWfPpU+6dck6RevWN/vKnh04RIgSPw0TJHw0scCqWimOGD48xHCvVzNLzXHZIdgRYG+i/Qg2beYU1zXHhevWLVTUc2lu/ze9WatVmbTT1779d73u9wMR+/abuKbVEScephieUSwJkJeBVNZGG1yUXVQjXAceeeKRFh5kDiKYH1THgafehevhBhhuKvwFH3yxpZBhiMiB4JILWo1EYFTRoVgdCsyJFlV3JqH4nVRsvWXfeKrZB+OPMMooHHEjGFdkcUca5xCRRjaZZJEd2ialYBqyBxhSH76XYWguLARkRCd8CZxWOAU3glcNtfTSCCioBZV2UTV0Y4Q91lQaj9j5KKF+Fa6JAoZHLkmck08aZ2iUUnr4Hm9ZJpRebGm+JUOOF0l1kkv+lYSejjTJNWdqeYrn2Ex4ngmooRm2V6VAgTUqEKOuAv8q5qyX2rdgnZ16xulMnp5E66/A+pgDCihEhEKqG7bHKmCITmlblateaRuiBCnq6qsfYhgsZFfldwIJu6LUa4R4niYuacMWC4JcxPqarrGklUbsu+vG6+uxzdpGparKSttevu1ZKfCy+lp75bVY9ibbh7DmJaJDDBv26YO5zkssvO3GG8K2xG6M7MD+CsZsogULHK3ByyJ8WEJDDopklg2rXO1B4foaL8fH5kwvu6V9fLLIBZ/gc78oF1S0USJEvDDMMidUNLoX15txxznj7DGx205LcsDQEg10e0KPTPK+yR581NEJJQ3f0kw3fdDTFqvL871XY72zvRpXbXfUxw7/fXDAQIf9VwklnHAC4SQQbjjihJeg5YdqFwZCxG4bhDZC3w5ktd57y4031RtjjTWIfnsIeNDKNp55o5cfFHlBI1Be+czwGU4QCiRsHrrocWMsb867iy777B+i3NDxaiKvggxe0nzrfvsNT3zrBhm+eu6568477vDF7Db11yqf/PjLm9B8QZvGDv5uxNP+nvW2a5597ndPDfzo3bc/0PoDvU6Q+AAk3/mkNzv+CcR/A4ndQK6HO2LljoHzK1awCFg5A6YNISoQYADLZ76NLfB2EQxT2/RnQfgdLn4CaWADRUg/vukrf/oz23sQKBAFCiRzG9TgAL8FQQdKMIXeS0gQ/2VWQvgVznDacyAFv4cwGpJAgTlUQdJ2SAIUYs+HLETBEFcWwyJa74giTCL3ltg0Cx4QIVAknw5z2MMVck+Ljdoiwry4OOupcGcvhCEJXeVEG1ZRICq43bvY2MYHvlGOXNxj7Yxox+xNkIxEjKETMygRQlLRioZBpKss2EeC4BCEhfxh7jR5EFJmCWWcNMhUUohHD13yeroxZfEgh0ZPAhKULZTbC2UpS/iYsX8D4aAJVCBMYoZAKsK81BSlGIJlQlJlqTyIHz8pv2/hLpRZ7CX7ungQa/4Rg8wznzEVdzjHkRNcMnCmOp85R1pK05YkCGQ1sZe5We1yhO375Rnf+f/BeEJkg+psDUNe+SoP3rCKmeNlDGVoGBOCUYVjjOVCDUjHE1YSdyLAKAqc+U9LEpQo+JzehxzaSPzpMZ8LfY9IaJCDGOggCXHQQQxklMyRfJQwHmXnteDWO3kuaqLt06RGRXASGtAgBmKQxCesMFONqCAkT42qVLF5SJlpUzcG/JJPf8pN/W1xJjSoQhXyUIdeJOMb30BEInyQhSsg4QpXqEIMxKoRp3YIYGS7zVCn2JN1suqmtzypSOHTyX5u9Zr0TGFKwcWiHFTBCp54xTbWUY9vOCIRgFCDZuOghiokoQo62ABLyxK7hawSe4w9yTp34lfAdHCMPExoYAVbQHf/GmSas00sYlFLPI0YVaxluEInXPGNbdCDHcdlBzuG8Y1hONe5vUiEdPcAhzzAAQ5XiEEMRHta7jEzaavFiRSJEsjIhcB8gI1nHIFK2FoaFpe7jWh8lHaSH4S1CnGoRDWsUY960OO/+1Buf/u7jXqsYxtofUUyVFELTSgiBivIQAaMCoIfHDOg3yVBRluJLaIY9I/xw+m1rmqYaN4Wnof9Y3wzCVLdjKBLLY1BHTSRjHn0F8D7yHGO2aHjHuv4v/SYhzpMQYcd7OADGPABBpCAhCpcwahGzUGUmROVFLokgyoYpglae17z6XSTtoUdiuH7TfkihVFF0WZRzqQDHXiC/xiT7a+P5+xjHuf4vwQeBigcEYlIqCELSUDCXMUaVhqItiwUKWaHHBfMcA5z0f/7MuvCTBDcqneeKzYKb9I8XxdXgQZ1qMRk9wFkOv8YyPSgM4+Tyw60esMbw+gFK/TcCU3k4Q9wjXAV/JM7cjKucIq+TaQlfUpKJ3DMmC7zUTi96RYb5gdiiIQxKOvfe6S6x9e+h7VRnW0eK1e5QB5wPbYx2W1AoxnFIAYsamGBCUiAwlDdK5fRG9LatpefB720Yr1Zz2U7m9nzJcwAmRmSsMJBE8MwbrbrrG1rkzrcqVZugCeOXOQmF9X+pQe5iaGJJKxgA11hVYYzOm8v17uCxv+uIbL3nVjergxIIG22wAf+I6NqohaTXbi3T93wbd/jG97YeYBXfdwAXxvj4waHF7DgWaMGm9GBffqwt8rirs7QvflOMb8Va5AfxTzgr3ptPEUQAqOWwQ8Frradd8yOV7v97dDthdy9Yeq6P/wbvdiBEMpQhRwcwa4MOeMwNdxo9I5z6h6GLUI7THUgFlTxIc6t5mb+4dgy/iBwJIpCVybzsJvgelL2AybmsQ4A7zzo3pC76ocBa7nLQrqy6AXddbx22s8Zz95wBR6cXFfAy1MEJb8qiQtjYjG/N9n91rSzsdV5zX+eKFKOQQtc0QxuA9jtvWi7xekB9FjP/dsMX3v/7bG9D6CzAhFw7XtdR77R4I+YvVfH9ze13nIzF0Tg/24xer9lvpJcIQ68UHr04F8Zp212hlwDhlZ4J3vfNn52R2cD+A3WwAt+EFfqF2/u935WpxuFlXVklnxCtHycxnyex38mYFRnoApoJXEVJ3R39l9tl33e8A0wuGMPeIOkxg7bMAxXAAdztREZqIGKFH8ndnwsl2khiGb5N3PPZz5G9QevIGcVV4MNCGSt9mrscGOptnB154C3Rw8HlguRIFe8hgJQJ1EbaBgdOH8fyHVJyBpZll5fR4LO9y1GhQi7MG7i9g2VhVb+xYdoxX0IyG0ZZ304mIMERm7b4AujEAcf/weEHEVVjldK7idGwkNshSFQcfhRcziH+0cCNKADg3BWzeV9rqd6qPh2hWh9hoiD3IdWcucIgAAIZ4AEEvAV8yaJo3QYwEdehPdXJlcQuph5CgF86dV4u6h596d52LQQAdeEH0ZMxKQDVXAGkdAJiIAHeOAGdCAEQtCNQqB3dEAHbpAIiIAIrJAMyZAN25ANyTAM61hcejiApHaD9TAMZ7AHSZAEFoAEEsZdpUMwpyM4iaMhuWiJ+DMTInCMmDdzy7g6UhdMuZV5wch8JxgDXxAIaeCN3rgD3eiRHOmNQAAE3zgHdJAIppCS0ZUIsedc3rANQeeFc7YNvQADO7ACLf+gXdtVho4zjN6zZQv5HmxSP79TN7wjEDPBkF3nkOxjRSjQJSUgdgcVYtEojXEYAszTFDpAAyzgBDeABWmQBm7gBl7gBmHJBmcJBmfpBjsABjjQkUKwBkJwAAcgBG6ACCnpCsmwDTaGanNWWRo5VyYBAhfWXbfkk7wYlDSjVfHxfPKDRYekTB9VWkHoSRAJlehVeYsHSFYpTo6mAkEQBEegBGIQAy9wARyABTsQltq4lmf5mmgJBmDQluAoBCN5ACMJBOOIksw1gKXWY/1FDIEgmIj2EBaGiYbBJleGAhmEmKmVAop5EJMzObSFTingAi/WjF7WJS7QnSbQnSrgnUT/oARagAZyoANOQAE7kAdsUASuCZtoGZvxmQZ4IJb0mQayKZt6BwbjeJLCcFbiBoN8uA2ucAUrAIlJc1qTwxcpgJy3xZhhFyaDJBDXcRcURgMukALOmRTXmZ03lWUucARBQAKheQRNkQJKQATlqQeFUAVO4ASBkAqdQAVgYATvOZ/zWZ9sMJb3GZ+yaZZgIJf9mQi9wFw0GG7jtg1xcAV1ZZjgwjYn9x4QyozEspyUlCDBAQIZAHIegU8n4qEDZ5UuQARPIAZmeqZPkKZk+gTleQd6cAlWUAaN8Azm0AydsJo2eqPwiaN8+p4/6gZzkAjw6JsDmKSvEAhyNZiWJF5O/xSCMURM9uFb95UBFhADldoCFmABEjABElYjEZlvilWlriEim7gQ4WRQR8CmaKAHrMqqZEAGWiAGWrAFaIAGd3AIjFAFZRAK8YAP5pAKabCaerqn83mWxQqfbmCbuil37DB38ggNmzBXLZJhQ7UfglIcjZpIbhMihAlyEpYBEhCu4epu4+oA4aoWU2o+YVIsIKSJ6DVMn9khryoHi0AJn8AJn4AJl7AIhXAH/noHZCAHhfAJcVAGomAO8fAMwIoDw4qsxhqffcoGOhqfeocDiICNd9kJoMALr5AKwSVlGcZ+evI8pnIlSlkQWmQaUgZlULYB2pUBMSABK7ACL7ACFP/wAjc7BENwAUOAsxRAAQ5gru+GoRrqayWQU+5qeIrWBnxwCJxQCqWwCrOwClRbCpRwCIXQr3dQCJcQB34QCnRqDZqQBgzbsGoZsWgLsWo7myHpjW+wB3lgoCzlayJLEzDmpIF0AidLEC5BE4a2pVsKchKwAeIqAQ6wAg7wAoqruDygsxdwmi/gAO7Wqb53QCKAtIpGTDKguYZ3CJfACa1QCq0wC6RLuqsAtYuQuotwCZ+QBAb7DMSgCp0ABXnasGFplg8Lm64Zn32gtliAAxzAATZwAAywAzW7AjHgdJHYe6JlVKKVvMlbaFNWVzqUNEZbkFJUVyx7VDMbtIn7vYr/SwE3ML46ywTme77fG7TiyqXrV72Jk66fl7mBpLmbyzyU8LSlULq0sL+0QLWrcAmMwK+XUApJAAeRQAwyCgdQEJZgabtmObHyeawSq7ZMEJ9YsAQ3MLwRcAOKuwKE1lFykgLV4a0bAK4mLAH/CHLwVrkadrnXqzgYAXIlLGHherhB28GLywQvYL5YUARYcME6rMOHuwIyK1c58AO9x5zxSkzxBL8nwLniJI2bS7/MA7pSSwvAkMW3sMX9e7qfcK9RmwQYUAap4GBsAAZYcLZmyaNrPJZuTI5jCcdu8Ahs8AhuvAZAqrbxyQTjiwM4UAQscLwSoF279mmGHAPgKrPe/7vIiSsADgC0Qxxh0StlOVACScwR2uu8JVzD3nuzO1y+5nu2bAAFYMAEVMACVLACE6DKmxq4XZHEUPWlLqC38Kq0TExMWgavrpFl9dsUTLE8kyIDTzsLW6zFxnwL/gu1VIsEFXAFDgYHo4yf+LkDbpCfbhykcYnHckwHYDCWsrkG4Byk+ZkGFYyfqmm+RlCjO6DDNBuuJ/yt4mquQTsB9OwAFYABLzABL1ABktvPQivDBTJaG5EZYDHChMvJ3pvDPBzN0vzD5ssCPDDPK1Cp00u9OQCHGCi/8ZRlcQjMTAGvvUzFTaECrbAKWJzFyJDSxmy6/rsKdqABSFCBfFyjs/9ZzWDwjdQ8ltvIjScJe4lAB3MQ1GtAkuAsBCZpkkA9B9/4jd0cjkamd0VQvj/LAeJ7AxRAAAqgAME7BBxQBF5tBLQb1mENxOWruN+LvHIlVzoJrkT8yIkbuYprylQw12xABRC7dFjAAjpcsy/gzhMGy36XA0EQbyGR0RpNv1Ls0SPNFC7gy758xSgd2VwM2auAzIQQB0jwAsH7lW3Jmm7QBxfLCq7wC67AC67ACunojtkwDMogXYgwCW4wCaaACG5gCqc9DLMtXT9dZHOJADbAAHP5x+JLAUMw3DdwARQQvF09vswN1gs8ylDg0A5tvjvsvTM7szEbs/HcyYrblU7/MNcKXNfQ/cPkzQSP+7g5Ka2ULKKBHdiDDYfmM8VTrNi/zNiO3RQmcN8yEAT6fdKRrdJavL9XTLWccNkOQABdjQPdjAcX2wm8UA7l0A4S3g7ysA7uaGMDlgy9YArDgNrCwAvVMAzC0Gral3pyJ11zgABAgJsRsACQzN08wLNe7QHAC7w2EAHCuwA28MdFwONfLdZRDQbj29VbrbPGXdXRnQZgCbHlfME+rLNmHWF/7VSh2dgl6t4a8XdBsDyx3CX8rd/A3Nj6nd/3/eWOfdLIAAxpruZqzsVT67+cgK+E0AICoLMKHtq1EOHygA/y0Of4sA4Vvo4FRlnewOGsYAr//1kOFg6gx1WAQPeOahWsRmDVkXvD+3wBF3ADHRDVPR4BNX7jv20DHKAAvz3qwssB422+5HsDVG3VPbvDn0zeteu76KzcN4vWF6gRVb7fvhzYRNDYu3zfYa7fWVnmxO7YwJzmtwDgAO7mb84Jl7AKnLAISIABcKAI+NkHw2UN74AP7yDhfd4OgG7h2UBt9TAPzSVdrPDh6zAP78iKd/YNzRprg5AILeAEhuat4MrI+hy0F/DIPisAAi8ABCDwBe/IcL24Cp/wOLy4VPACF/zDejzKGazVt26BvTfYJ+DYobnfI7rlxR7S9L3YwTzm+m3mvgwMy67SKb0MWTwLumC6of9bCnEe55JgB5ogCp0Qlp3wC83wDuHe530+7hZuYxi+2rItDKbACuUwD8Iwg365hQRYqNuQDIJwBfbFsohMz/Sczyygz5FbAZH7sz/7yEArAGXP8AsP12+98Ofr3BVcznHP3D87szA7vUfgAi2B8vVd8vdN5hx/7MJu3ybP8irt8sgQ86Q7ujMv7XGer6JQC7XQCXjgCs8A7kIf9BVO7gbWX/OA28lQDsnwn6vtDfXQcNgGYIUKDaBgB1ag63mvF6KlwjTwrbY/w4Ob+/ouw4Bbwr7vyoKbyFwP9i+g10zgBb1LyqNcysUNtH09aAL9d7E/+H7v2IDvy3wv+CQv5in/7QwpffjAoAsxz/glHefSvgqQnwvlYA2swAu9mvlC/+3i3u7ZgOH1sNqmUO7lAA7CABDDwHmrd8/gvn30ENJjSK/eN1eIksTI4UKFDIwyTFTMkeMHDZAhRYYEAXJDSZAoUYosCSIHjZc5qtCokmHCigksXuhkwoPJzzRY2ICBwobJixcUKAiQ0HTDU5AdparIESTjVaxZtW7lmhXZV7BgaY2d1arsqlKrOKnl1EqSqGn43hGr9g6fPLzy3ult17edvHXlvs2rV29eoknCAgtjJWxY4XsJFSKUXG+bL1B2ktB4kuNiRs8oUrg4UrrqVaqpO15MzfpiaNeuV7PuSGOD/+2nGZpKcLACKVImTuBQOTrkwo0LFyg4eBHjShXoVXKIOd11q1XrWbFrdRYW7DJgusjOotUKLVtOn94aiyevXC1r5fLufdcucLl1+deBy2Y4myw6TKnmF1NYMaW/giSjzCHLhnGECys2W606GaqTKoiqKIxtQw6zu0qqj2jSjTfmmLvghSFQZGEJHlrkoQIeblphtwwyuK2j7TzEKkcdtfIOLGCCJEs889RSixJSJPHkmfbaqYaYv/Bqpxwqq7GynL/WySaZwb5JhA5LEjHFFVZkGWaeee6ZbEF6vOkEkRhWWO0I7TDKkEcdWesRoyDo9DMrEJ56aremHOBtAkQreP9B0QlecMDQ3Z4CQc89+ayUqx+/AoaWTTclaxW0OOGEEUwMESWa9vSST8oprawFv77ym0cYb7aZZxhL6EhEmGxY2fWbbxqiDCFvetnBjRhigMkqDT9kFs9LZYAWKzr7lDajIDCUCqQaY2gKJ0QnqICCCi54FNJIT0Lh0mmjxShTIDsdixZQSxGVEUniqAWb+vSSUsr71vkXr3V4ESaZbIZJZA5erRGmwMcKY2ihe77pxQsvqrhCqjvZvfTOjrNqdrtsK1QBBRVKAKEkSQXdwEaXA115Uo/d3QpeTYX0lF628I2DGG3i6XdgogG2L5tEZDElkTCTKeeXX7ZUJhnC1Fz/aJ96hqmlE+hkOiLkmrOrCkOyQSYZu3afZdYFzz6S6W3pYOLYMxlUgDbbtMO+Cl5gwuJ0rHrvlUSSZ8gZOi/E6/PLL1VZ6cRAU34ppxoBp0zGMcLoARbYbLbhhZUyXohOupH17upsS/ckm8/SSsu2Wrxjd/11aWNHG/VrrS2Zztox4r1k3/nEDt5okOkuyE5nAVXwVqYxPFXEWZ2SyvioDMzKbHipJpsBf7Emv22SGWabetrsRZZExExkiqOa6hpH0z3MoULcrbKfK/thl2F24LW6//fbwc52fZJd7Qb4p97RznZ98040nPFAZIBnZ6BSyyIkAQxzPC968/GLNazx/6RqxGd6iivHB6uBn3VMCWrlyEYn6PBCOuxgB0J4AAco8IIVrOA5XRMDDajjkZGEZCYwCckPckCE6mRrbPrjner8Z6ndCU+KdFKCVQAoRd0NMItQvF/u7JfFBQbJeOB5oDOKhzxOzUJ59iLEJ5BBjuftZYP/mtIzSkilvkhvcVPKzy8SwYphIAIIQhACHYQgwxvcQCklWkGcqnCbDTxyJi+rUSWfEoPcWHIDcyNCtapVpx4B74sGFKDtjnDAUxZQiwTU4v7AaMpV7o8WugAGBMsIQQmO5RbKW8UlCEFLc5gDenNE3DD9xcG/0Edg7ulDGowgwx0YoQjSnKY0ccABDv8oQAE2TMpvuulNcCJFKUsRAAVy2MgkVMEKH+mk7q5Tv2tJq5SqxNs867lK17VOn6e05+timUp/VosWZLxlGf32qVIsghBfyaAcU/XQuyAzenKsT34ShxdN2MAGHLDBNH8yzSLsAAw4SCQ2b/CbEoUznL5xlFIIIAABPOomurnRE5TAv/5dBW/YQlvu9ofFehoQlkG4KT/32bo+7TOpRs3nUZuaSqQegRZfcYY2qnpLIM2Ll5fAhC6iEcxhpiqixuTLfFjlL8XJQy6dwMEhcYADMHgUpCBN5BCYcIOf3BUMduWrR/l61yLcoKMbtQET+hAIOEDhBgkwZzqpg1PSZAT/qgAtWU8ru1N5LnWpUXUqUzn71M1+9qih5ectyqgNq1oVgpoSD3lA5ctQwIJJDsXLWIfJuMT1K0rJbMddaoEIMLhhB3Cd6xDmmsgi5JUJRFEuFJzLoucqlg2BVQAY2NCJTvyiFs8ghiZYQAClSGAFkfwaTmX31HwKVXb4RK9SR6tP0pK2dUooalE9q9RaVhW1ql3tznhZilJgohKSIIY5DmeX9hizHdYghjVwi1azqrUcrugDGEQaTbkeN7B/VSxRiFJN6LaImoEFQyA0kQpiaJcYai0YIobAAQIQIIfJqkIcaGAFIjwhx0TgsU072c72ava97TWqfIlM1Poe4ab0/6Wvkpnc5PnCtzT5Te0DrXpQ8qyxFJ8IRSWIwS+KxuMutpWSNWrR4GfQ55gbbAeFhyJSI3xYsc4NLF7/apToGoHOUGgRFloE0jxoohkpTkUqfpEKa6j1HbygQjYJ4AAKiFcCyboNDULEzh/o+AhA1qd9iSxa9BrZyaVZspKjvOQno9rUrdOCk4t62iobFBnj+e+WP4EJVRjjGXIB60MVXMc8CpOY8uBFH24AVzl7NLp1XYJf8xxd52KBzhwwQiC2WwtXoNga5jj0X/DxDDwcYJt2tqudr3BOFpyzBVfYYRzU+QMxPEHeYtgxpz9NZPuWGsqmTnWT+/3vVJem1fSFNf9/u4MMT6lRy7bGhCaeYY5yPMMaDx8rmWurVujRNi/l6IRG4/pxPYd82hxeQnNNHm1pciAQTHoGKwrMJG6nIsG1YAMHkJtXkzqKOY5CaW8mIN4aheQJMMn0ETdt1CqCetT85jeTXQ1wqEfhyU/vtxasfFVZ32KXPEOLvQDMiUUYAhPPeMaZsSTmvFh82BusBhzA8PY5P7vkRbC5XaGd15LfHQtFwEIgeGEOYmTbHLw284rbkwo83zWv2uTAX/n6eAqkiOc5PPe5V1CFGLw73keIt445HXB/P53qUO+31Pu9BSVIXepaUALrWW/lWGuKLFwHsNc5cQlDxCEVz2hGOYT/neC1Bx8vv6hwEUAu92aTO+/Iz2vId5CH7TajE7sXM+C1m+h4PKMTQFH8dBn/ExQ53u7g7M2jVmCoGUkg6Jb2iOc76e+pV731UWB96+1ff9fff/5aoL8WXM9///O/LVg9/rsl1ZI9WlCeWhMVBqSESxADP5gFtEu76Km4i1s7VxgKKPgwkVu+OiO55TM5aeM7NnCFYNqaXauPZ9AuJnEHc9CE5qK7G8imbWou5ssr4wI/FLkhccqhFsg8dbICMRADzms9/mMyImAy1Os/1qO/+wvA1AvAKHBC/2NCAaQ/KgRA/ysogxoLs6iX2hMVSqAETqAERiCEnxk82lK7jAs+/1ZYrg9jrhBMPuWbwzlMLhyAgpUTmlqQubsIpmYQJgbbPjyrM2w6AHFrPOaSwxvMKxT5jeVYjhe4iZ+bNEsTgwAcwCNksv/LRCw0Qi3QRCzkPyvcggD0RADEwv4zHqzapa6rPXtZizIcQzM8BD2IA0J4BncQvom6qMR5Qw9TtrtjNjtEvmPjABzohGbIvlrghTFLMHd4hlSAA2arsxvQJnE7gMY7OW6cw79SPuAYAgdItxYYnSGUgyHERCO0QlQcxSk8xSmMx1AMRfrbAnukRy30P9NyhgkqhVbYMtuLxTI8BILkA1t0t23zNV5UM4eSowxMNrn7wGK0Q7ojKSyAA/+XswYU0wuwArzt26i4AiwaxMYa/AlGnEi8azaSsyuk8AlGQRcaW6chRMV7PEV8dMdSFMBQRAN77EmfNMUAXAVg0LrlEUNaPMoxPAQ+QIOlRAOnHEJJiAZ32MU5UjO/0I88mo+1wis5o0jl68Zly0MvyIM+eINAwC4Uawa1JIZU6AMm6CgmmK67wiZtqstxy6vEA8uURMm8Sq4TaakJWLcrsII4iAN4IwQxkAMyuAMxIAPHfEzIjEzIdEo0uAPK1APK3El7RAMy4EwKUotLCM1FYIRFOITSJEhGYAQ+4AM9aIM26IIuaAM0EIMqMARd3EWy8hf90A8UQpx10Ehju4H/kOzA5yJGvcy7a8KCPFjO4mODPpi+Wtgao0gk6yKOGbRLxqu7k4yu47Q7vvSJnUCKCYi0SsQ8daLNdGTMx0zHdCSDxnzPyOTMxXRKzHTKLUCDLrBHMogCMlyFpCyE1WxNPWDNAVVK1nTN2ITNLnDPOPiEeKDKs0oc+5C46GwGsmsHaJDGQJguuISu5SOO5JvDbqSrImCDQMiD6QIDL2imPtCETqBGm4MCKrDOkczOuvpK7vyovcw7YTy5HoUuyYs8Rjo3wXwOdjPSJLiCJI2BMmBSJq2CMkiCOCiDKlADKa0xMbgDxrwDyTyE1KSEQygELeVSLeWDO+AD10RT2aRM/wV1zDjABHNwB4cSGGXyIF5IBVdwUUU4MU3YhFRQhLm8JoucSOMcUR5FLjxoJqHoAxS1sxlErum8JrusO+TKweR6ru6cO0291OhiROKgAh5gASqAxBIZz3M51UeJKVRdVZmiRETJPCHc0slEA8zUg9ZcU8p0ys50SgW1zzYlgzgQgwITK3kwh2cwBlgIBUPIvSpIp+hwN41ZAaVAruQizuJMpEz1zmOMUWkqSziYTmoFKbrMTpvDKxwV0R3l0RBMLk59rpOUNnXlq0eMPApQJBuyoXGqVwqwIUXSV0VarHFyFB0KVnTk0l2dT9fsTNlcUM5cUAXtyfyM2M50t1RoBf9jhYZ1KIZRSAVN8IMriAM/qLHCNAQ5MAQxyD0/kNZ6pSa+xNZs1VRBJakShYOyzMvjwiacLdcczEEoAEG9/EA7U7w9gzZpg9c5fMTiQFqk/ddp9demnVZ8XSQHiIHEREwudUrXzFWtxc/X5FU0eE0Fzc/7ZMwqIARMSBJJQEN38yFM5MxclU0tFYMYcAABCD+wBCmSS1fv3FRr5FQQ5VvkClwcbddMTa5KZdd0hVc8M9oc1dRyK7fAtTnJfdTJldx6xVcFIAAJKMxzrExcxVrKzFrX/FzYBNs2HUJ3q4Qq8IPCLMyCHVAtqE8tQIPYXQQtkIQqoNsb8tni5NZu5F3/wCXGvpo7at1ZSxVavizGDcNUHR3aoHiuxSVO8eMrc41cyv3Xyp1BfeUAAdBc103Mxczarx1frM3aW20DMkBf01VQ2XRP9WxPMhhQNu1a/LxM2ryC7qUADzAuaTtJGdxbvaXIQ2XXlQxglTzg5D3UyQXedI1e5jMCSzUu48Jee9XenMXZfeWAGtrXGHMAkc1SWm2D8wVdXB1duA3dsIXN9LXMMdXSziSDLsjVBOVV2MUEPbgCB4gx/b2BEcsz303g5J3eeF2+vSXgAna8wDKpQjVgvXtgvJKmCbbeC57iDMbZB+DgR/tYk23MLdCDOzhfEx7dLx7jNtDSW41h0x3f/9ltg9kdX8uUzTAeXzgWgzjQAQ2YAOX41yJwLj6muz1eAkBOSSYI5CXgY0M+5J8ouUHGu0QuuUIeAkKG5J+Q5ECmZAluNsXigCKw5ETu5EX+5EU+ZGkz5EFWyUseAqfdV1W+YAKgSxjLWQLQprpd3daNg4K01TAuYwHF5S9OWATtWmAm4a99zVwe5tH1YjFYBDlQgzJwAhbggRug5D7WZCgAZEfuWULGZkS25kHGZk9W5G9mAk6eZEgegnI2502W4E3eZkVuZ+X65OXj41Hm41KuZwlOpETaV7rDYGxqZUeDsW3KTgUIgLrVodVd3dRUSi/eZS++A4J8aNYshDIGZv80rmhjHl05Tt9c1mUvJgN0TAILuIIW8KajEGdNhuRrpuSUvmY6y2ZKDudqdmS7EueZdud3Nue7GoJEcmlHZmRQVi53NopQZucRw+dj3OdWZjxtimXsVGoFQMTqejsw6IM+GENGUGgCXU2DZISjvGqFjmM4NmE5NuFe3uiF1lJCkIPCZDcWaBQUWQJzPuklMAKX5gGePmS65umfdmeUFudwvmm4NudojmaZZgJ2hmdP/gmhZoJ5pmdANoKiNuoZzFmlziZHW+q6TGpsKtGhcM5MEMOrFtNC8NKjZMAyvGo1vYPYDGsRxmUTBmPWfu0wjts4sAIriIE7XhRU5gC7zuv/SK7nRy5kQy4CTG42qQ5nlJ67mB5n5IbrwO7r4P5pxFYuo1hsxu7k5yo54yqCwOLuktrnkQToWK5R7MQBLEhURMiDTigQVmjA0CZt0xbIpCTQXN5lNIVtETbr/HZNW7VVxkTM3IuDK2iUPL4B5x5k35Zm3+5jQN5jMFguB29uU/5tm9buQKbpu9JrcPbpDZ/kRF5snvZu7u7uJMbZbWLqGmVquzRvPOiEs3SFQ9MeMDRtBixK0CbQAd3vA8Xl/t7lY+Zx2O5vEf5aW41ox8S8lroASoZsQD7nu3auj+qw5ZpyJkiuUL4B53rwPcZyUq7k5+bhESfuwnZuc07ubn5p/8PeQOz2bREn8RsQ8ZIycVcO6KYeN+c6LOxiBajhhVW4hc/0urSgoFmkBNbUaiA/XyGvVUT3cdfe79ZmaC1VSjQsgxU4EWlq8Lw258KO6W4+5Af/dCqv8jQH9U+Hgj+Ga/CjaUeWppg+bEdeaenm48X27pQb8TcncRLXZMq2bKfGTk0mwT5ABOyC8V/QOmPnpa7jhFisxUIf0ENv7UfX8R/v8Wjvbxxv7UI3SD5Qa0QpDpAi895+cigA7k//dOGUauMrd6kOLnYHdez+uLdLAyiQ9+pW83JP93Rfd31/O5F6Kz++9Da/dXye4vGmc+zURu7GAiNwzkAwhU6AcWM39v/AGfSEvuVmf3ZqT/Qex/Ei7/GON3Rnt9VCUKhzs/RmKwK7Lme7XmnnWvAHHwo4hPCPy3c4BIM0cINEnQQ22HkOn3l4fzvhxPKPC3obECyjtwF9fyscsIGlR0bubnW6Dvg6e4DJ5oAF4HWDn9SEl/c0CPY8Bwt+VB6jTE2vhuiQ5/iO93iGfnRrV/ts12q4V1M0JYQYQJSWhOuU5wFOjmlNdWSpToN9BwMzMIM1GHwgMANTCAZmUPzFF4ZTmIRMyIRJ6INJAIM1uHzLv/xHWIPN33xIgIQ1+HwzmIPPJ33ShwTSN4PPf4RHyBU6MANEBILGK2zjoibJnmJep0Hy3qb/U1/4rs+ETnigIPHzVkgP0iyE0QbQAY17uG+DZud4tF/+5Qf5t3d25kfTAC2EOGiBRjnnIch76NZmKMjrKd93pF8Dy3+ESVB/9a8GfcgGfXD/+A+GX2AF+7//yO+ETHD4/QeITKYy4RJIUCAqVJlioWJoCtXDhaYmTpxEB8iBAxw43BgyZInHIkNukCT5wOTGlAs2Kmjp8qUCDkVm7gCDww0eRM52AgM269OlS4WGFuJTVA/SO3r48FnK9ClUqEifTmW69GrTqU6jQm3D9JCcJC1eTHjx4sKLj0N4LGnLZAmUj2+ZDCliBAyYNWDMQOLbFxIkSwlj4cJFTV++fPr6/yFWrE/fuGqQx1GubNnyOcr50J1Lx43bNXHdqJGmdq00tWDBTK3JeCAAAY43QBpZUqTkyRsydadMGRMmzJQ4ZuLYgXOnM2TIZrUCemjRoaJHuVJvar16VKdbsVulivR5nBYrzJo18pHtWrlzoRiZeQNv3jV+IT1K2DBWrGCpxzXu1y8fY/qUI+BjA2ajz4GPKdhYYg0mZg8611yTToTSHGPhhccwo0wwmbiBUUYtxUZBSReUZNINJ/W24m/AEdDSRjjcgAMOQuygDXLI3DJLKZcwwkghhwgp5HXbPeWVkdhtl2R1291xByGLEJKEBhNg8AILF6DHg1xu1XXbSThwAP+EGX6dYos0tuCiX2rHUNMNfww+ppiDdS6oIH/j5KNnPuf0iQ5oEl7DjTSFGjqoNNcEc4oZIAIQwKMKBBATSR6kyNuKvnHw26YtKvDiiwskwMEDYpbqDI7JAbNjKT8O+eqrfBxCFXdPzboVk9QhdVVST0JZiCFx1DBBBQ7w8IIRF6y1RG1QOEtSSgkocAAQc5yCyjET2nNON3CWxsyCdCKG2H91ApjYnXpClpie9kAYqKCGymsoLqcA4WgAkAJwwIuTxqTpSpn65qlLoP5LqpgcaLPwTsis2qOPPzICK6xWzXpdVLPemhXHu+7K1JNk3CGyHHfIcTLKdsgRhx1xXLH/ggNoscWWEVti2im1jwjDjDjipLPtOedw0w0zcOY5Z2KMNVgu0+MuqCfUiNmTGDoVzmvohaSpZsokIB4AANhh77svjBFsenbAAnfq4qcKjPoAqTcw3PCqs3BCCSU/FiLxqxNT3B12bfjqq8iDFy6GGHIkLoYVJze+shxWWJFEHIZc0QIFF2h+QREduFeXwAfYEEw14IDDj7vpUDjaOOc83R+AiyW9NLqOIR31nvpAGOE1V8urdSyTtOba12ErAPa/RYhpttorLkBw2wQsEJvZJz2wcKrK3XJLKZxwcon3Eu8tsd+xWuVxG22QsT7iirvv/uJxMD55DEnYb/8VSVyB/0QMNex/xeWuMIGYUQBuEXjJi1ZkGyBMQhjg0JM49CS01mUGTwoS17galMHGzOmCGUQXhLohId+hST+rmYQQiLcv4k2KA1TIQyBi+IY85OENXsCC8pSHAxtsioebOgBMgHi26pFKYTjCkfZosYruee9ueStE3shXsfPdAQ0jY58cniCHH2wxcvOTnA7AWD8LkNECNbBAC1qAxjSyUTxjcQAFEkCAFwXnYBxoDxDwIIxqBK2PQjsHOjRztA/WjlwbxKBjHMOfBu0uXldzUzBwMQkzEC8jY1shB96gCE2kopOb6GQqNKEJRdCQhn2Agph46JrgcICIzLve3BxWtyWWov+W3sMb3hhBiYhRrBAhy2IXf/ADKwxTcsOsghV0UAVl1i8GZESCBTSgARawAAMTYMEEiFWsC1QALRWgwBzzlS9JFexgNAKCzlpHwW4IjZ3bwhOfOHjIDjrNg/NMzNB61zt5HaOfx8DFI+bgta9ZEohANEIgOqGJT4JSFZ2sRSp+EdFOdqIPbLAoE8AwLRhxIGFw2wjzsEe3Wa6ipLVk4t2+t0u+Tawpv/zBE4RJzGTqQJnLjAFOY5ABC+y0jNLMZgW+6QADwNEBAjgqUikggHASYJyT8lcCO4oDIGRCNUEbR7e41Y3E+Oloi9RgIjF4J9slkkH2+Mw+9ykv1eACEgP/zUgAQhTXBWCBhogYRCc2yclUuOKhvKjFL4hBUb5qohNMsAEQbUASHJQKbgZUGHKSo5zlzKKyJb0sSlUaxUtEZygmOxkXZ1rTmsZABzz1aTSrpFprGqC1R03AUucoRzkWIJzivO1TYbISGwCBDaZQDTW4FbSs7ikzmrFTWMNlTwzGaU7j4N2h1JoaVHyokkBUwPNaAgAXIqIPb5ghIhIqyr7yIqK1IEY1iGENYvwCsL8oLBh4OBy7FGEHKQJpqhqWxMpa9haY5QRKd5nLRXj2s8P8gQ4QPFodlDYJGUgCGaVZpQlUCQOtdS1sCZBhDROgtgOwbVOdCpyXoHMhwH0T/zu7wRk/aoaDYrXnWOn5QaGN0HfUaOu9iMdRkG4qAmmAQx/6kAdE5EHIncgreVORXmKgtxbVACxgQ3lKmxgBC7VRXishm6PJ3oIWdVOiEkvailKM+RPfC4qPCEyIz840mcMM44LtZwEIRzibEzDAnV1LgKUKoLZz9DABBvBh3OJWUrlVABDSoBBZyCIW1FBGcHnmx8zsyUEdfHFZZaxIyJy1UPr8HUApWcmOSlU3D9DIDoQc5CJ3l9UJ7YQrnIxe9rJ3ohL9BRuMsAMs8NrKOxATDiIr2cnKkhbbU6J/afmJ7pk5zQQuBCFQ1kVjtlkHSTCtaX36Uzy71gAaji1tO/8c6BATOrdP9de01mAJSzBaFsE4RjBS3DNxcOu4hbRdjC+9Qcg05hxqrXHv2tooHStgsTcogqVwsAAG2MAIacADxIMc5Df0gchHZkV7Zd1eiWpCorWoqBFw0GsrY3nLwwbGZHti7C7fohUuJ3MpzAwUNBOYwJ+VduQiR1NrW7uMqdUABjBQgQv3ObZ9nuOHB11uc7dkUhkBAh3osG5ZLAQ/wVDGNZjBDWYEDRyJ8XqfXCz2et7pghQ8lKcNZQlRh4hSByfOjHZog7mDIQ1sYEPEuyvxI8P6F+1Nr99/wXdWaIIVIAeDlaGgw2E7DBkn7wnKgbHyWYj5pMtWaZoZAR3/m98cfpID47XljIQa1ADoQu92AfpcWz8LuvWEJicQnd6Sp5thDnOYerv7KY03SdpP+vATnYK/73s+Jk57Qoe80koNWwz8upQiTg5ptIO520AINKp7xCXe3Uy8mhUR9Tt7a8EKw1f0yIHoQ68VrzzlQF6W7I98+49tWVqM+aQxR7OPhKJ5X/oq2tK2gh1Izv2MHun5ANB9wIUZQOqF26CN222RU9NFYL48HQLU3hxIHbvlnptQA9cFTT6ogwa5mLjgm3JlUNCk3aHEgkART4zMCPQJwRroBR2sAR24AV4IAfZJXMV1QiYM3viZV2BJ1JHhXUIVGRjcBQ7hwPa0H+T1/4Qs9cSxbc/2WNZl0ZL3gE/+uQp0EIUvFQLOBeDkJAESjGEW1IAPYAACGgAE9FkCMGCgDcAD+gu6XZfTPd29zIEFWsIpnAmj9VM30Js6uM4IKobXLQbxlRW6AFKiFMqFFIoleA0QKACNkMRM3MYNwGBeuIEbrIENwgdO4EGQcd+R9aAPBh57Bd759UFFWdQRQsERbo8sSaGOsJwUSl4U1qISUd5/gQ8lcAIjRIzmRYeaQRsh+J8cBOAYkqEZYsAZQsCFJYACilsBzNY0vuHSidPXIAACNIAQAIEQ2J7U7eGZHAOknQO9AV+lIYY4/F65HCI9bQY1MGKaSEMsWAIYuP8GJZqIB5hIyJmBfAABfTwCYACG7XFi9mVCH5Di+I1f4RVe4InCra2ixOXaDhQBGKwcLN4CFGokRnaZLUphl61CsmHWEgHYLeVSMA7FmhVjMR6jHdiBGqjBGJrhGZ4hAjojBCRATrYhT/akHC2AiJ1bXGnjNnZjo4AjJIijLLgJz5wjOiqGICIS8Y3Lcy0fmhgKKjzC03GESMxAB9zAV9KIEJjBI0jdJJzCI+xhQM3BGuDBJEAcQm7f4BUexjWk33VcREkkG2CBjNQXfxlbR9LiEmJkR1KeLlbhSZ1kxNRcS0ZbtKnMS8akMjIjGqJhAuIkT6phT84R0gVavngm2AT/gDY2gDd6o+0NJB8y5R/6jDn20TzYg4Ks4wgekrh0Azccw1WqCRhghGK9nXtIXzdeoH3sYVImJVo+wiNMgnImJEImVCbYZUMS3sUpVCh1wt2xARi4YBH8JWBGYWAKJkeK5PxVYUk1Ud4IxeZBiWMeo0vGQRKogRgigQ8so01aJk6qoQE8AH7qJ0+K2wL4GVACpWgCAANs473ciwWipi3YwgYOjWiIRmf0ibk4zWyKywlijS3cy9xRom3Ulw6tgRDQByqsG3GK47VYgnK6wSRkAiL0oCkolPcRnozSZWGRXyYA2SnRyHzx1yzIHy3MAi10J0je4hKuwmGSp/csgpIu/8IlLGljQmYcCGB8JqMBnmHQfUBQDV0CbinRtaEAbGaHidOjbOMCRIAQkOY3zgFg6OEp4AK8XUO3zFsfhZ3rCOI9CR+3KAODxkIm6EVvHtwR4kUM4qAZ0MEjoOi6paU4FoaaoMIprJtAvGgnEJ4riFIovRfhFZ5CdUJCwUEg7KV7nERlBSlgiidg9miPYuRy0KKRHqlJXaGSFoKTtiSUSmkSkJ4ZFqAG1GcFYGmWYikCBpUBaKkz4md+GkAbWiPYaOPCAQFpkkntAUZaFoabXoMyyJsHBo0+yGaFCh9U3qYyMJrt/ekNMIFF3mBeCIFyrhu7GqeaUGthjCiKRuqkav+CK7jCjHZcdJIfHKziXlIBFPAAFbCckJrqjwZpqnpkYZZUmJnU/S3prBLCS7aMe96PBUBT6WXslaJhUAld0FVmZX5AZQprBxhAyV5Aaz3AA3imODHAwi3AApRm7a0Bcl4LKuCCLCRKt/yhn/gJCCLXB8nJObRJItCBEAjBeyQtXmRUXtgAXrxlIrSrOL5rYfzTMTiqJSQnKfYVJ3HtexVeKkjnkakiHJQtHHhB2XqZkPrXjgTpRvoEy32kf7lqLTVbk0qJkrLkS1pBlN6PGJoRrs7nfFJmlSLBFyDBGSBu4p5BGWRB42YB5PpAN3XABZxsAgxAAYgTAkzKAhjogfr/4xzULCosKIOiGDudo4TmA9gFH+tW2jkogzLUY6NYX9KWK3zkRV7ggSZKLWDsoZr4Uz8Fgyxk5RpMwpFxbaVWqr2Grb2KbRHmARzQ0BUogkYig5AirNuuikZmpPb+6GGWAi3dHybkrSTo7d6God9OaTImY+IiruLGpBoAQkzKrx/4wR+oQR2UwRlArhOwALBWAOU6oDhhl8tSnw3EIM2m5eguJWnEac94oLlEMJ/kAzMwQzBYAh3Mbl9mJ3w4rdPGoKEaqiXQR3HuYdX6k4XEgogemaWCEihxEgwXVkJdQSd46hUEwh/4wft9ZMJ62dvKIsEaKcxZHlAoafkWoyFM/2zFpq8Ypi98wq8gRLEUR0IlUHEVV8IVX3EkRLEfQC7/9m8HyJHSwQYCLIANKMDckUkM0se1/O4G7mzPpAMEm8sE54M9tI4Fn0JfHOgkWmTS6sUaHPBerMEFWoKa9q5xuikKwxsuoILxHplejZIoNeQk810Nl20gKEL9NkLjvZ+x2aJkAYMz0MIovy1/1V9zfIIqXwImlK8hEEISR+bkwKffIsH9PHFM2gEg2IEgGEIk+PIvV0IoSIIoSEIojAIxV4IoYDEzb7H9lkEOZ4EPlKwcOSBMUB8CI6ejnnADO7AcT805bIs494k4d0Y6MENWHigCAAEHUF87z10gCyoMWv8gHaipQEqr76KwNFgwfvwCL4iCJ1SCJzSCHyiCQRu0JGuyH2Ry/fpBIxhC/bKf47lfE4qyE4qyw0yeLqzCmKXy+GLC+ErCK8eyHSSBFajBSac0SscBSqvBxL6kIUiCJJCCJLwCKbxCKLwCLMCCL/D0Tvd0T+80LOB0KGixIDxzFkgBAjIgTACBDZgBGEACzerhCTeoN4dz0AANVndGZ0iILKxdo4AIGrfEGTu1BweyfMiH7dkecqLmmaBJPykKNQjDHj2DMRBDLuy0KkyyQS+0IvyBIgSCH4iSKIjCMFeCISxDyk10cuSIsKWcLgCDLjCHy82cTBOCTBuCZsMkTOL/8ktPrGaHtkyTAmnftGkDtS/oQmqntjHogmqrti/4Qi7kNSyEgm1XsSAQdOOCsRijG1nPnT9qc0IocqIMSregA2uqDjooNyBRSDr8YS+ggkB5DVFuFLVg8wEf7ViOZe2RJXLe81tbyD5XMOlYQzMYwzIsg2vPdi7Y9jJrAhanQiXAQivkQitgwjBLAmM3dmPvN2OzX2TrAi3owssBRUi7chK7dEye9HsCoEtrtkyXL0iTAiaQwieQQiustmqn9zI4AzZ4OKp4OI58OIerdl7Tdigsc277wW5fQIi9BGI5dZkgp2BQq+4lytComIohd9X0ODp0i6Acg1vlWEYQZXVT/wsaH3D1mcFYQqs/zix4v3XwzrUw+J0xTIN6K3Y0REN6tzZ7e7kuLEN9f0IotPKWn/mZC5uaJ4dih7lrV/YngHRma7YgdLaC57IaQHiEV3hptwIsvHaWpzc2YEM4YM/CFDo5GPrCcDmXu/Zq5wIppHglHDWL+8AFrCwddQpGOHUCT0JCyAJx4/jQ+PiP7+xngAbsMgp1b65oWvemm7WS85aGHi2Tl8lpJmVDANc4UAMrCEMtNAMwLENPLAOao7njRQMyvHlzgDRypPmaq3myq7dkE/iyy3lo1zme47kdxLRMg3SFX8IntIJG8vdOGDo8JDq6k4O6L0yiK7ozbHmWr/83pEt6IwhC42YJB0gPiUErjX/6guqehJz60Ah8kPsTYBxoiIDNaxgUoiGaWTs1wh9oN8qsreO6u831arBCrEk7h2u5wyA7sn/8LFB7nG/5h0fDEaEKyq98ZCFDegu4spN2K0f4L0uxIMRkFBsCYs80Jlx4uLscNCwDNHw4NmhD0WPPumtDuys9u6c70xc9y8e7Lsx2pC9zJTTCHzjBEKzN7EWi0yKnp7fbUjaioPSOPzFoP5GuLfQFtcjVbSHAvqyz10M89V33AaRQN1ILgkarJfyWatC1KWDcM0wDerv8RIf8xxfbgLscKZz5hy869qC8yjf7tLu2LtA3hUc4nd///M2rQefrvDFbOIa73Cr8aHorOtI7Pbo3vTbAg9InfeTjCJe/vLxHuqQLAhy8ANc7vNMK50OgAqOhPfCmvdovqDgCRli/BqQYmmgS5as3PMRvets/nd6XSe0l52AEAytMhCsUQ2tzeOIrduJD3oDTHylAPeqjPsvPvi4YQy5cPizQNBb7ci/nvM1jcSiQNk+7dscDxDJs2LSFK6iNXEKECcnB0wavYUKHDBlqs3jRorNoy5ZBM6YrVy5Yr0KFEtUIzhAOHBS0bAnEhpk1kyZlQnUTV05csnDZ6tnTlq1TQ09BMgoE6QGlLQ8osGEDCAOkSKE+hXkAAQIgTg8AUap1/6oQmTMnocoUK5gptbyIPXvWcdnGZcg4IkMGLBpdWrp0tWoVjSBGwRijadO4TJexXK1EkgpVqZIhQZMjGYok6LLlSiVJwYLFd+5cZxjDUZT4ELVD1REhRlQ42GI0uR9DkiJp0k/KGxxsuHQKRMicRzVv4pRl63hQ5aeEDjVqxszUpi8VCMEhBDv2NdutQtV64OkBHF+7ShUr89Fws5ky1XRFrBk0aBzph6Z7Ny8wvn1Hk4Z9ETBsljFGMZFGeiwSUCCDLJJKGnQwkpJegSUXX4xZZhqBsDGIQ4YgUu0hiVj7UEQSQXRIMGycmcYYX0IaSRWTGskijyYIWEABlp56Cv+MR9izyZLiTkGFqKGIHOqRUx6JzqukYNpuu0fomIMOKLmDysmutGyyK+CAgDK94YZzww1T2CKGQMRCy8sZZPLLC5n9BCMHIzoxGm0jbGh7kSRRHlOwElEgEzTQSiYM6cILB7qow4UaSi3EhuCZlNJJH4UI0v+0EZBAA19RRZSTPAmEBwI4wNGpp7arKRNLlHy1yFiVhGQNJp1UtUc3xKRjEjrAAGM7IayCCQgEbNgyKqiEAAK6NeZYg9ZH1pCyj/eIKSbNuuJi0642EeOrIIVMo8gibADLsFM+QR3lz1BFifGVeA8lcJp6F+0wodLc+dBESSv9l1JJL0WNTjvLHbD/xV1giVEVT05ywoMHCkB1RyHAoEnM9IwqKlZX07N1KjOEg8RII20h8hFaucNuqpabDCs66Maado0qy0yFmGt18YW+brnNKxo5ySmt4HHtDLCjdD3r06RR/ARVlXg9g8UXC5+pdxqCDAo3XIn4HRHgsC09kWCEzN4U4ZByqUUUTzyJRBEnZkggAhwXeGqsjC2BxFWSh2puyCXNwJJZmVCZZMicYjkmmGNiuSk9YNcQy4ZlvWx52WVlhg6IZ62ciRVeXqklJF16BhqZNjeS02zTFjJ7QwFZTHeXXT5VBV7cpX6l9tp9KaYjezcsqDSivRYb+eQHJrEi2ZUG1RMHAcni/4MECmBgAQbMW8MNXul4ZG+/mfMJ8pWRgo5kXKQ5Rpr2r+GGm2ukwWWoOSCZA/85oMN/8/5jbnZ/Zrjfs9ywh1SMImoUMt1c3CSbjeQFMcZoXdHERSeDyG52BRJJLUIRNXm9Ihe7qFrVCGSMemHoXmYrnkT2lTwX/ktgrlkNnQaCIdpBLxKR+IMPOlCAG2HPK0KgwxAtQQe+WcJVzNFJq9aAFMtBxxbt44Y0rnENdFwRftQ4hlDCFCZIfA8S6XHW5gonkwDqz1mee0MnPAGKURxqgXRBXVw4oguDFM1RDLngQKbxjBLmghghhEUtJqSwChnDLfLBGtYGsqEOrVBSLf984SRbU8nTTOpg8+mUwtqWQ0H8oQcQsF72wCLE76Vsb3/zCVpQ8QgsxQQIkLAFNdAxjnOgIx1XxOIUc9IcVyFxb118BP/0pz+Z1cqMxpwDdtwQCEVsIkGh2EUuQBMajsiFI117HbnCMZAV+bFTgVzb2ihkIXqdEBqNVKfWwgVJcrRQkpTEh/LGpprVbIqPswuhSd4WCUCcgQURw15WgIO/L/KNKCfjSSwmob+YxMQMaBnHOOxxDnvg8opVrOL8cBGLxxWnOEE6xSTSk79jBlBkZxTCDhAxiEZEwmGhoJCatMURZ2RzaMXLY766ibUSKiaQCpumOeXDx3U2MhxJHdr/UvP1TnjKk5KsudSHLNLN4BHIdjhsxB+kwIIOLCAA5ZkKlcB3E1l4FC1FjA4sH2EKaowjHRXVpUY12r5j3NUWW1SOUAAXPpENMH/8Q2lwduCFMSgihw5TxTTfUh/HcuggpilNI+tFID8GErOANKcJs3bURkZ2he50RzyhSk+APeSejUyaYmqBQ0UEwglUeMAClBKV8wnwEahAazCUEQtLzIFZUDFDJoIxUYumI5fooKv87HpX5x4Huicb0imQaBSj2C+wxZRZcHCwgzC41BFuexc1L5QYxy7jIHfUY0572ke3YKsYxQBkLuT7Fqx10xz4Tep+1evO4sGTtKUNm7+Q/2fBfE4jJK0VhSYa8Von8GC22YOKVGxQs5qYAi1qgcSyYjKHSRR3ohVFbvyWS9f2rc+5ew3KcVBBv1kZJWWB3Z/+VlrYPSiiEY0QL4UuNCAf06eb7ezaUrGBNXAaI75Jlm8xFrmh/OY3HFAmmvFCS454JGS0WQ4wJbkMQwPz8RkJFpQnNOGHQEiBBxHgAHZ2BMuZqMUUwZjEhpl1MVNMdBzgsIc9RlxXKi73xHZdX15XrLibICmMYRwmYEWGnR3AIA91AEQjwusJVfD4vByB7B033d5nQCO+z4jvteLbDETayxzYMMeqpQzJFZqDHLCGdTiyDI9aV2qe8Jjnrnk9qf9cdzlgOVVnmNcmilRUQhOaUEQe3mCEBTybAZVrgLLc8CNkQucRsRDGOJhxjm6gg8TKLbFGSczcQDv3GLhId7qPVKTqMnoOOxCCF7zAhTr8gdKREMW8EsURRWnNgu3s6afd8l4lY8stwlP1qqMc5Vgb7cqwXuqVbT1aW+O61xnX+K65rMeDDOSyCwsVmZMNhx3goG4LEJZWEGAGMLhhEjKbAyrizO1xUKMb8burFZerXHEDOtAoRndOiCKkF+OPsI+u9xcGgWN9J/Aj6KJPCpfKX3P0ERoFL4aolYzIZ6hTvaZxh2QjbmVZu6YhWva1rnmNj427ne267nhOc7opFuX/jG3G9sQmNPEHKmABBwioGwNqG5PgoA8V2745zqnhvm9z4+fijl+5qRj0QDceryruiXOui3Q6wAAPXAjDvZ2+bx5niyOf7XQ3i1xwUXO9GKRO+ECiYTQTjb01Epd4Qs5+5bS74+1wF77biT9JjgebqUMrcgmJoWC9v5YKO4iADb7TpamEEcTc5gY1cN6Nb++yihktd13lZ+4qNr7x0lDOuntJlPtNaQc7SMMUptCEL5wB3zA1vYV8/Bak8ndTWC/hCG7rmmHrtu5q7iX54OHK3CEecG/sKA7WIs4cIlCPIDD4OG74iO/4XCjXpKp5sOFqCKT5WisVUqHvAsELsMAI/+StCG5gDSAKEnAhGIKBGbaPGdDB+75vruhq/Mqv8k7s/K6BGjZqi9Zn0PRqKPbGiOjADXog9OqtDgIB3xQLhCyEZxSls+6lka6u9QrOABFw9gKDIWptX8zQ1njPHWRt7M5uArFs7Taw+DSw7ebwX+xwwPQIzPwo9lpLFfjOExShEwYhEAKhE/KAPRAKFXiC+7gv57wPHW5JB8lt3IDQEofQCKPo3JajKIrICfHgCXsgDCIt/xwmXkiIZ1BonfCryNyrGZ7hFYvhFV/xaqYh1YwHDdXuDGNtDXnv4SjCAitu+NiOA+VuGDnw14hxkiTrC42hdvwwFXZhFE6QF07wF/9coRPa6nFOISeCgfvgx/tuCbnA7c826s/O8RIpcYqQ0M/Ub4uIZErIhP68oAm44AsKEcfaKGoqhGcsJGu20JHyyS1MDRZhUQxt0RaJBsAeMBffiSEq0A0fbuycal8y0BiP8Q7h7iLlTmyYEeuKYRdqQSQ9QRoPKBWqkRdcoT3iLBboJ68acfvA8fGYy8/IzxL/bPLix64okbly4iYsQUrwIPSm4A24INLu7aUUi2pGaBkSMHZYr8iuzhwGEhZNjRYRciDgsOIs7gxHKyLYMCJ50coekCEtsg7jDhk78IXwAe14CuRiLySlkRhU4SRVoRZ4oRZ+oQ8sIc4aJznyavL/ci5+vi392Md9frD83gd+FnPcBFOj7koWDscSegAREKEoueANIo0K8xEU9m2oqubTALLIWpHgBtIYmmEWn0EqVY3WclHLdjH3Hk731JA1RuvtgA8tkfEiNdIDK8Vo8qXIQA0kh3MaRwElU0ElyyIYFucY/rIbiJAxuaEbhI59qgh+AG0xIS/n3qf8pFMHr2g7tYgn2gMPEGEMzLMo77EQ8W0TPAGBeIcfEw4aFsnIwPA0U/NqUo01tVLL8KHWrMzhyi4i2ZAsbdP44nArL24iP2TLfJMi+CupgnM444ttjHMaUdAU+mASMIw59coWrHPyuPMatugIs/MHc04HIe86/62TB7/tERsvGHChPczTPPMgD8bARtczHy0tXkjHarwu64LUj6gSNavSLVaNNZMKAylF7RLC93bPF8+OF9HQGKOK7oyGSpPxQaFynVgkq0ChPVNhE06wEwIBEfqA5jwK3ZxLGq5ziuKHGvZKMd2UOyEPi8BNuUjMTr/z8dCB+xqHPSpzD/YgEPYADjQTHylNsaJmmpIMyQgEvhDpAK0SP20xSfWFK9eu1q6M1mItHgb0FxswU3Xt9+YJyyRl4IbUkdzJaKCSPl+VD21HFDbBERThDwYBV6mwEBEhETKBQ9c0r8pxipiLr45hTul0MXVJRZ8z/MQBucYRPLuB+2LBFP8yAREGkRADIQwyMw/+gAr/IB91Z5pqJ76QLFInVRYp9RWnMr9WFVNbSPjScGjcIRw4FVQ/lSL3KyFakZEcaV+nASRD0i5rhxi28FWDFMnisndC6HcaNmA/BUy3qlD3IA/2wDItUygTgUNlAd2U48+KUH62aHyOFVlVVJd+jhuQa8+Oaxy7gRmoIRZ8dRBaqhD3IAxGMUen0JmSct9qISR99uCCNl2t0hYZDkJbs0HXS6kGItVaLalSrV7cImFbi5AIicn4KGCdr23aE2idsXd6xy5foW06c3Q+qEd5J15EARQcocFutQ7yADObAAbAQAhqhlqXE90GLSgMMxOZg4r/SlY6rYgHsYiKIvGijkvE0kE6lzNQZ9Zm30AKmqAJthUO3uBtN7MRNiFUqnYXkqxzDy4MKXU1j1ZJC8zKmApqVc2o/rE0vXZrN4HvYFcV0GRqn9EElU3HRAGBcAd3QAFUaLXBFMERNNeDzFZeVMF3aZVtHeFWtxUGZmAHKswNaC4YOJZjU8xjqzNO/bZNTZTnpNNOefBN4yofziEf8qGiRMz7ajBQO8Fip8ALZgAGeEByJ/cNviDSutXp7NJnffZryRV0a7FpSRdp1XLsjhbrXM/1lMx2xFTZcEwTIkETeOcZR6d3COkPwVURhHd4oeltPIF5v2AP8I1t39N4zXZt/5eX0hxhD6YgDdqDJoKkJRenBhsHe4NCGhqPr3BSMRVTML3zis6BG46BlszXosq3fOVqfWO2D1rKPKfgeWdAinkABupXCuAAf6dQEUbBf+Oyizv3c5MsP402QlfVqeJ1IotHAF9v1HImZ3ah+X4WeTchx9hWETTBbXBHJLs2YBvGVnEVx9gWmqDJVu/PpTL3XU44XpAXFCJheWmVVvegCdjAV6tVt3RrJ2RBk6/3GFQpKFzsQ+e0h7Pz+25JiHM4EvXhiJG4fHWwG5bzWgehE8ZgDORWiqd4BjpgBuj3ikexDuogFUShfwnpUyyYYGMv1CyVv/joFktjwPar9eLrf/+rlnd5d5Hfpo41YXiH9z19pxg8whdsxxMAARDujZwnjW0joRHq4Avuj5wpzYRPGHmX1xGWt5zHAAvSoA9iFK0u2ScX8dCKwrqcI4rqlGSlcwe74RwWWouOYaHzwbggWh8oahx0UBhithMGERGg+NFueQY8AKQ9QH6bQApwNhXciJhrYRRWukd7J9Tms9Wisl6gLJImJY27ySMCVmExWBVW2qd3dxT2LseGGnY3gVFF6KfC+RU8oRHKWdKGup4doZzb+QzQ2RHi2Wx7OqqjmpzZuf7cAAyUBKQODYkE2rrOmmQgQYq8l5QR2ttuKU6PoZYmqnzHQaIpytuWs4k7ARH/WhgGOvqjP/oBBvsBPKADSPpmQeGkEYixeaGn30h0aiHJYFqpUm0+P42/anrsYgcbwHkXcCeoQcFt3MaNflp3QZhtM1dR85h3HDZhbMeRf9mcV1gQHIGdqfoPyDlBdmckXmEUGrme35mcz+AMpuALmsALwIANWIUmmnsSgPK5+0aA0PoUjiFETRQcpdPb8GwchAIXbMmu6XqiJ/qWuuGiM8FMZ5ajYUCkPzpiCLuwZ6AHSjpzYbeNNkG0SxulfdYAoaGZ8cu9oEFfjYchWESabSeo9y4S6JiOh3fB3aY9mXqDh5e039MXrqZhf8d2PsWR/+CXybmeBWG4ucC468AR/xw5hxLkt0fBnwBBxM/5nOvAB+ivuN8gdKqhGoSBFdSCpIbjudN0GzfGb7r3urNo+xS6G8ZBOqnBxaSBu8d7vG1JiIMBFRABvTd6CnbAA6JYikEavgv7sKWg6TaYzCd8TH1XJOG4s6QsaoNUqdQ4HKK2GG4nwem4EZoOEBQBVwchzxUhz6FaxyzNg2qHs7ChaoqhauJlpR3ZqXN7hcuZC2a8qh2hkUHcxS+duKeauKuauD9gxqF4DHCmj6zBGojhGjuhWtmDJoJBGJicfgYaF9LvTXOS8V6WGmI0od7qrqHcrhn6cSozD7D8r9n7liPmvQlbpHugEKlwDwah2Zu9vv/595sxu+Gujus+jaYjFNRay7dTYcFzTM8HYQpluw724JfF3cNzu4262XeMYT4JZIRA0rcXXarPHZ0FYRCmYMa/oJ5T3BE2vZw5fdMH/peLW98hANI0ge9S4RVJ3RqqwdRdIdVruAaJ7m+kqE2piBpikvvu6tWdw6HHIcpHvqLPAWbNAhHyYAoSAYq3/JY7QMsH+9hBega8IAyIMgyMEkcH9Zm4OIy/rpGyrhmupWCXOadVeu+U18/3oJ2/IOdzvv6M+/7IndLf6BT9sUWm4dBHSNFBAbidGhAcQcTr4Ax6YMb/IBK0WuzPgKo3Xbbdvg4Goaq/gP6m4AzciO/w+AT/NQFnHN7UWSETOoE91KIlU4Yb3adNN577mEEYlrOVpttvJ4rXo1zKqSFQg30M6O+v4w96u9wDOCAB4NsDiiBySVpyvYAoCXUQ8Nt/X/rq+qgZ0rwt5rOzRS0khTrcxT0QMl9ypWC+JZf+7s/czXm340WEoOHCCQT5EZ35u34Uglu2AcHD6X7f68CNckiqjTv4p564yf4MvP/76b6qd6GzQVIk6RI5NcEVaqEc2qEcrOEXfgHw2eNwIMEMhqLyiDCHG5HKAeIRpDlzIJ06ZWucwnz6Guob91DhOXTUUCVChGiMxilTdsDwuGPGDA8eHpg8+cADjBkrPU55M2bPoEGK/0CNqrWrmE5oz6Y9I1ZLFS+cxaAVfbbrlSpQmxrV2bNnChepTXrAuAqjh1YpU758OXOmDqBGNl+92uUrrS9oaoulResr6atRoCIBAvTnzBeOPqb09fEFUKi6jgTp9dGjr1ewYRmHDczxSx1Ho4pO4/ms2U9eqVylGvqL2K9frDplEmgGEiRb0qi5PhYMdjBUkx6ZuW3w4DGFDyMq/H3uHLdgmRIFgrpnI9asMD4Y6fAAh8kI0VWKFNnDSxiogf4o2gQKZ06eRYvt4jUqlapaOs3vUjXKk6JBe76MmdIEv5TlWHvg79rYIGOBYhZcbB3oi1tuveWLWXRF4gggdZzhl/9WWiE22SuRQCghhR8k1pVXIo74xSA9SFEiTZusVwsxxPiUWTO1uKJJJ5qw8lkt1biCikAG4RLMa8HggostPUJymxlzJBJLLKhQcw5DvUk00TnjnDOkKabMJGB99zFnFQ88jDTdA9Q9IFJIKr2E3Eyd2ESUTs8UVUt6cO6S1HueOOKIl/hZaFUHV83gXFb5hRgWII6UVaBaabGlIFxomTVXJIIAclgPH2z64RSAREJYh2f48OFfIXoVxlRTITYFWUl5ool3mmzS4jPQtJPZjJrs6sov1lTzSyaQPIJKLEEKQ81stYFhBhBA3HaKLLHIcgwz3Ywzj0LocCMct1GOE4z/KYjcBUgneCES1VVTXCUmDzdE9wAH0uEwkgchweBFV3lApeIoeO6k03mbbJIKgXgqxZQi9XHRRFVWXdVBvSqppFVkddTxh6JlyQXXNo+y1SBacr3iS6gUasppqZ9yKCFHKFtoql8VWjgIKL4YU0wtr6Qy8Caa5OhiM8QUw/MmrvSaijCszPEIkME8jYspqKyRpA1mPDIJKqYEQy0z50SEDpHHuAZRPsmiMogpdwnoCLocreQBDzBQQcUM70oXbwT2kmQvvlLlse8egIDHy1kHzwXId6AQOBcojgyy158Pf9CBB5XzzXfFXV18lyOgMt4gyY+m5bHoI1caYR2kfgAB/wQPQODfGeRi+gViKW/q318WwtBBB00sGpd5OQfVmSaK8LrJUOelVyMipq0xSSasxKJlJqcJccABQAghRPTHKEPNMbhwc6VrRZ5CzbUQgaulgHf1MshFibhBhxtp3G/EDDvgEEH/HETwP70JkCVNgMNLNDKGN8gEPKp4ReFG0QguNcUmaxsDV5qAlcthboNYsZj7+DQKUFEqKWrxWMgmZZbFhTBCX9BU617Yg680Zi+I0Qrrbqcpq2iqdx7gQiMa2ECi7KIWxKtRIAKBCEW8aRQucgUS8YCHR2RCS1qizSTW4CwgNEAIdIhekMKHC2owgxq4OMgpjqG+h5BRS+NKBP+5LoKRTiAiE4EAww4CGAEG9G8BCQigByKwAw8QUFUb4YiAwOM4+hznkJsAxB64MAYMVkWDL6xk6/j2gawASCyK8hyBQBcXR6WFUg5aHIRYuKnWvQ4CHzgVX6aAsg94gHWWm2VzBMW7yn0BkXQJIhFHwQtVqCIVxgsETJKYCmLwQhOIgOIbnNeJTvShD27Y4hYRwD03aOlpzHgaFVFhCYQEw0oNwRIuLgKIXqQzEb0whTLeGRsnrWGezjKDDYCgAAIsgAAMWEADzEQSjzSBKxwZaA+a8AWZ0OcLkJRJJwdxn6owR4MeUGUBKvrCytlQMRjrHGVERzKSwSV0pKRLXez/gqkppBICFy0A7mRmQ9a5zpKVc07veNi6JpyhEZvwhE1GIZT1sIiYnaDPHgLRieNpIhBu2EEakIqIaQqBAVqc6vbokAgtdRNcU5yEJSARTltcyyHhkwUi1HkX+SkjGMzoZjCcNIlJsOERYLCBDRSwgH3qs5/9A6QgDXXBhlXMK/fx4EL/tBzMue4kF4WhB7SiySmAhVwEIsUoG4RZUmr2pGNJKesKAFrQtq4DH+KUJVVZEpLg8jr8aYLgBlYwYdYimOhpyiYUoYjjvOGZb/ACFtKQB2n2AQwIQMACpso9IVgCEU8Ll9QmQT86gFUW1ACHQ8ZBjWmJKxHsNEVbvSaO/3O0JhhG6tEjHoFFfOqTAANgQHv7GtCrnCg/kNWkf6oSkz08ZSr1hQFJLPmAAqjyhZmEmV9k2DmzjFLBlCIpLF5BCpvYJUIe+kBoL1zJ/w74AQngsEkSAIEZ4DIrUmBYvWbgWhWlQj3CHKYmGqFUhb0hDTMwAr3S8IY84KEINlgAA3oshAbMoX6ZaJLUekS/IS+JGhBpyJWOMS3umiIRwRAGM650rW5wYzi4iAUurEfXeyogAATgQADaOwB/9i8l8j0RLLHCN/lyZAqpgmV9NfzCVQpYwC+MrMz6whiNaUiFNiEQXV7BOLOwjEKkah1oB/BoSF84tAHmMHU6TJKVrP/EdzOpAwzOFIH8BOJ4ivjMKHoGY0ccjz5vwAIMsFBjL3hhBw1obz8ZwL0daDMTWcoEG8CwBi7SIVpNJusxwCmLRMhCGczQR3Cs5TVmcIOMb53NecVM5gBou70ByGsD9KaSrBz0zv4V95ynIthBkWSVenZ0Rv3Mhb3sRXaBjhC56I2p2X2Ks5797KQhLelJs7TSHrYcoSQ5hkbIZww9+GMBphAImhxnVrvyWSN2NZ+I56G3NQ4JrX3s4x8DMhGd2Kb1fA0G7mFVGcKwrj7K8ZAyfnXZ62tIPoLTjXN0Y4xPa9JpbIPPM7MXAWcm+gDODG6W3HdyEBC3mznClTvjuZL/fBZwgRGlF73IcN76lt3svE4ulPbb0QUAOMDLjvYLV5rPKcFlw5owhlEDYhBcmAF1YDAITRTaZ7jt++MUOYhAbJwKYyoJ2m8NSC8gghWMzwQqwAD5HSg5Ec12iJOLJAtZjMO6MNcHQ4JzpXGIo61vRUWPqBb0BShgAAMwerePPoAItG4rEi23uA/1H4fBGaOve92e++wfLoBlQoyRoV4wJTs+baguzA+h2B2jUn8/+sysP/qk90zwlLzu7a79A1TG4AVNU2cMpSYi8TYRiDBkZA+BE/zGmwBrDxQgAmVH/A68gNTqnQbyM6ADHSxhCuNQDdc1DtzQGsXmEC6XDxAB/w5WMnpDYnrodRtjlldnpm0B4F6s920CZm79JW5S0DC59zD+tW4l8TqyVwCrBAFzJiJaFwa18xUIFnagQAqkAGE0CAqSAAp3wRgckUoXVn3UNwAEEABqJ2Dsdkkd4B9/QCs/oQqu0Al7EH4zMABNsC9kwR5JgX5h4AVNoB2AEwZNUGMmGAHfhnhCcD940AcbxwY3MAQ30FSTkFXe1RDl8BvTxhuWZ3M2tz7nMEZNAk7nRTUKgE+rd4HaloEb2HRuBlmPZSG5hx8YNIIaRh3yBwGVOEtTUWcFdSF8AXZ3EQk3mEIRRgqgglIU4oPSx3pCGIRql32jVWBZ0Ai1YA7wYP+L7dAMqUAfUxABLIEvgbAJQFVoihBJMNAEYRAGUlBj8NI/DeBe/jR/YJCGM4YFOLADTrUDk6AlwhAMxfYbeaiHezgOC5gP4hBPTmJeg3gACmCI7nVmC2B980cx/nEiOmQhVfF2bzaJrSN71DF/D9AArfMhiQEoOaQYkzU7G4JoNqhoJ3WKc6aKrNiKoQViKVFRlJNJWbEDU4AIrkAM5VAO8rAOMsILA1N3lwg7Y8AlEXccXMAF+1FR/2Um9FdrZhhk11hjafAR16hrbpAImSAMphALwjCA1aAQTFZsnaeH1qUQ3SQt6FgbtiFmFGiB8AhpDABaj0Vi+aEuWkFf/1H/Xw9DiQPHZxBAEoCCkZziF16HUoKwIY5AFjYoYY4jdp5FdqtYfbBngZSmWgWWQ1rRk9p0NL+gCUfTFIrgX6qUAI8FgviIQWSyZtTRjDWZR/2DA9aIkzx5jU0FgKYgDE5yZb8RmuFoeQxIerJgC03iJJlQG2ugAOuIV3j5egG3iAQFWbBUFX+Cj4ByFRgleyhJfzPFSlmRSVeHYG4JIY0QIRuikDYYYRvyKfemUiwVaXp5iPFYkYJSkBaiayT3C65QGhiheOuyA2dikWYJmdXZXiFHkwPQAGZomRGAAx4gBJpJB8KmjUGpDFsjDKK5efowgA0xD/owoODAlG2lmqr5/2WsiUU9Bo/dpm0LQH1FKI8fOIIPI1EWIgX2SIKXyFgshYm2lJEA4nWC4DnM+ZaNoCgilIOOE51gMZ0sBXDbRqNnlnYz5XQ1ZCFuMAWuwAu8UA070glNFUiB1D/zZ54JQH9BmJftVQAM4Izw+KT9IwTRAUjyyZP+Vz9zGJRvFQuh2Z+/0RDZoJR2yI0JaixeFguO5wauWYhPCntN2gCi5Yvllml3Gm4kJpZ/dBIBOafYZ5ZXJ3wZAwgm2gjMOZfQCSGgQgqeI50c0Tpmd3QWWKMLUACYtn0lFgYVont74Aqz1RlRlQbX6AFmeGF/qp5ximZY+YxX2Vf8swP1WZ/2o/+l2mgJ1KMMrDBlsuBd4GBlzGCg4MAb2fAQzICmTTIkXsaa6IVPPQan7miB7ilaePpCGGWWMWlLHWpRZKl216oVXwGXoGJSh/ZJhIFSKIpS5+Zoqjqpk3qBkGaeHnCMXsEXFjIDU9AJnSFNeMAG19hXEcCueSmReeleDICBTwqf/AOrmAkGbuAGk4BVU9aZQpkIliALVfZdLWeg45AN48CNpmd6CeqlX9aaC+Cg8xewGpiC/1VLfHOtDvdPU1eqKeinRnhJPTAGdTAInjQKoTAKDkKKGvKWnTO0FOaDkVp2q0iph2ip3VpiepEqG7ocTbBbdVOeNmCqaJayAtukGmj/qvD5qoA0Tw4bV9FTPVOmJdyFB6bwnawgDL/wtkYJt0HJCqgwRVRkLEOCC7XRpj3GAZbKetA6m0/6jxv0speYtKAVYKh6fZP2OmvyFTv7OT9Lg4hGKW8Jnfb2onP2Qngpm4dYsPMXWh1QYl+QKn9RbvoTq+8ZAQ7qTwyQgUEYrQPrnkcHj84IpbD7nnokn7LasLVRG3drtmwEsabgCslAt+ESDKwQLlpjCtaDt1ujt6cxT3aVV6kapximgsLpOtV5fagacI77WACyomVhaJRCIMwZrl2HijLFru96iAcLpYoLAZoqM1UxEoH0bVS6uyFXsEzatVzbemcGu6waAQuQ/0cIK584sAYO+7BYo41aElcYIT8+GZ6JMAl9wJobfLd3S0U992XotQb/87cFUGtbG3BlwlgBlrThe3ash3bhK1owIBWSoSieQK5zYbmKlpzsi4rT+b7wC7oyTLroppsksb8REGS467+xK7t6GadL644mnMDOiLB8dY31gzUQXD0PK4cZnAh4cBFTFl3nFVfWwwpTVHJUxI1E8nN1hbVN27WxW2sXRn8EF1pMaqOeO30wDAEBuYhc8IJ1oJw/lago6qiFSi5TMCFHCwGS2q7XeYFYiWE4y1D7IVOhdaRzemuwS3TuZXRQLMrVR3QAIL/fhsBWnLv12cAOu8Ud/AhinP8GPMqv99MD9oMHiPAGeOAFahhHncAKSNRM0WM9/AoG/NM/WFmTW8u4iuvMkUa7TZq4ldg66qKJyYeu6tvDmot8knW0J6y07lqpr3ejpIsyhtfCgZtmedXJoVwA0RrFsxsApjzAzliGldnJerQDDesGj9DPcfW80LWlDjsFbnDLujYDudwHeJAGUNQH0YQRUZXB53VezGJXrIuVS7qK7gjDjdu4ABzNfJlYi6hJ8YaQ+obSPMgRMJrJnhvJ8Quh/XR2TWdpj9bCQliwnbyqGKi1Lp2XpgwAMMy7emSpuYtrO1A//UzR0cO3SX0VBv0RK3GvjzQFNQYDOKaGaYADQrDn1VxtV+3Jukcaaa0Keybs0UAYzU1ahNXMH6xDgjFpnF/ByJJFb7LjKec2BZ3r00w7qRIqoTAsafIXwwJcfbDrv2jmjCjcpAAA1KyKyld8xfuc1P4MwdD1CP6H1FgBEtc4BRs3a6TK1ZfJ1UJgV0BwT++J2vYMWgB7wicMj/R31qAFzrVrfavYwnM6A/aoKYmJUSAGiy7ESqzkKXXdzY482EVYlbbbrvD4oFL6oLYtypVawNMNu/DcrpHsrhr4R/SHlZZqqVuE1P1MB2Y8CVFEP8HGk+rGEr44Ev74jNSdgUXonruL2gEBACH5BAUHAP8ALAAAAADhAOEAAAj/AP8JHEiwoMGDCA+qIMGwocOHECNKnEixosWLGDNmlAGCo8YSIEOKHHmipMmTJxKqXKlShYyFH2PKnEmzpokQJm7mdOixIQgQOEPYJEkUJQmWSJMK1GlCI4kSD01AzTi1oVSnVRlexRo1K9V/KoRW7DnUYVGUStOyDMrV4VaGXit6ffu0rdWscS3OxWsV588QI3yyJfE38GAQRhkmJoHyRMOTaiMXNAFWLNWuZq1GFAi0bMOqTT3D1WxXK1/CQP/+BGrYpuTXS0XX1ep0tNvTJELX3puZdm3bd3vnhhiiMAmhi00yfPkPxAjHD2G/PioQJkben0k7DAGT6W7M2X1v/7d+ETtw3Q25YzWOvKZ0ydT/uZANmjj56+DP2/9tfvbwh+rVxh5jGAk0H0TvSUeRgdQdSJ926d33oHgR/hZecBeix1CAFvqXIGwLTnbThP+N1+GFpgmn4XES8peffytyWNuH011kUApgIbWQgf80pBSJMbZoYX/1ASjkbzTCZ+OHDEW2IkVEQrjhkUO+WKSJJ8aX5I8ZCSSCCAk+iVBpueEWZJYSRUnhlCduqdaTEnkJ5ntxHpRCCkDuZ2GPl7lFEJURYedmWg5++WVlDMEkZ5ibHfTdbSrqiaSjXQ4EaKCYDapUoYYiSoIKO/5zKJ2N3ohnnkbumSSZb2kq0FneNf9JUE5CjerqrbimxdifIeTqq0DHFfjrsMQiVdKsvRbrKkgoLKnss9AeO9BN0A66kGUhVqvtr7sOlAJl29KoUbjk3irtUuCWKx2nyaWk7rs0nvtPTvCu66N8DX0JXb38wmaCu+iW612OajHbYL4i7Nvvwmk1RdC3DKelAsFgURfWUjhFrPHGmk48cQnzJiutThyXbLJ0KqBQ3UEunOyyxiAreNTEXhJk68s415tuZCCF6vFx1F5Mc85EVwuVzA+b8FNzMqQAUsVaFi01xzRnkME/SVi9wUA5gJCDylOHXSyOkpUAAkI05+CCagSjALbYcLtKrVqBmPJPPQNl4cQ/ZQz/VEUM/9DAtdduN/t2QYDJOtDZzSU7rrasmilp1MTOnVQVqQi0zT+bC9S3QHEkUcU/VQguUNdfg93yQbRqCfE/IzAeVqJUbosqlveWjDc9/+wjkDcqIZJHHwNdsUEMIJg+UMsk3CzQt86RMEJ1YoGaLbS3V+hQyeVwrhLed+OdDC+1CKRJQcmPoD7jbSftXOzAVlpt9mxu/+zOafle0D73/EMP7wQB4EF6wAIM+KAGBBndQDZQnKVRpzMGaZ0IogO5PmFIP6myX9x6pxJX/EMQgvjcP+KwQM784B8nXBT8CnIk20UuUhmknMn61zsaCkSAA9Ef8BKSuU0E4h9n+EcL//5xtbPlICR2OhWCKogfSGVocjL0VRRVor9/2NCGCPGd/qpIEPD9Yx3F+EcYYZEEBxAxeUbkk0HYlTvsvfCJMeRWWhShEiz2Dof0wNs9tMgOgWgxhwH0YjM8OMQMMM5QTdLS9Z71RgyOR1mUG1pC7iFA/vHPj/vzHz38gUkOApKLBkkGIrCWtAcip5QTpOD86MciSN4IIdnwHyBr+A9OrkQWncwf3tzwjysIRAxDO1Snlocw6EyRW6zkjisNIkM9/qOPv2OHN6D5u14UBJfWtOYsk/KNfyQiCYGrTssuNi9FTsSFyWSkQSQpEGsYZJr/0CbwpumNbtpSIL3YYSZBuf8SD/pNZSqb3acuVazc4MRhCcFWRTR2TIFA44b14J00BcKOPlLSf/fM4R4/tI1kCIKINJheIgezUGIZdCcqSZyzGKa4gwDwpc+kJgfZ0c1/TNOW/dvoeyL6j2QAYgr/QAINQqq+SJbqPVNpl2MGlpDHRaylCWEHPexoSYrKNDJ2JMg+qLk5X4ACnIFDpKmWyCjGnOQxJckNU1Iqv7DhkKY3FAjedohFAFqSn5J5hSEQ2BGnNdRl+NsgQnCZlor+US3QHAY+BZIEDWwNBDiCatECK9hECGEgO6DDP+iwg39MYiCuGEY13rmNboKPd3g9yCAEgoSsLQ52f8VZzARbkMv/HgQI/7DtQTS72H/U9JksqccwECGEQhLEdJSdLG0RkgaCNPe5/3CDG8AgkM4KhA50AAICrpuIUQ6km3vMKgBdwcsYCM5t/0gW7OK2s+QuVyVFoK5AcJsQZWjTrjgUSDM68Y8V5AB9f3mvgFfS3IRI1w10cIMQ6LDgNeS2jv/rZjLK4Mt/dI1mK5zabP/xuq4N+CAFNnAa0sDLElt3DkoxxMNEtcGdpYB9BNnA1j68EjfgYcT/gC4b/nHj5q6Btwipxy464Uvl6YpjghtdDGIggf72VwIakMAEJNBkGh9kxyPGsUDYgOUc/0O+BlFsPTb31dOxTwX/ZeHLjFxlgTjg/81mdJSVB5Ll52Z5y8QbiG4Lsol/7GIUfggnei3V1JkJBAXsVJcZHfACCgyBAje4wD8uQIF/CEAAKyYmQ5y3wTvjWMtIoS8eihdWHh1aR8Hq1wsGMgSBGOEfq34Bo5ssgQ0oL800LnCJo5vjHfM4x3BAiBAQgAAcsGDVKzidJO/UHIEYmSCAU96ztVUEKFibClR4QbbjfKMfHG7OPeZlc6V7Yy//gwkqYcACcCBnaqUkpAwUyAaudjWBZKDJ9WZgSHtUrSVA4dz/9nesB7Lk0s1ZJdj1LC+/HF3q+nolN6CCQJD9N+Ud797/sABCKPBmjmP6H9wOFw8m8A+SF0RwRv9u2bdpDOY1uNzBAgEDzB0MBjYwYeHytfY/jDAEdCOlzYs2OaMrQHIHTCDk4ZL0qpOC62eVYha3+AcyBDL1YllCIAsWiBmyC3OCMBjF1j2Izw3CAQIQ5AY3+McOigBdL6ch4EVgNUskALg4L33pW5bOtI+wTmY/C+pU/4czAj+QVUTdTbH8h90U74bPIiIT3RXGP1jh9YIAgQE2EMgD4g7pzke61QbBAbt3DgYs5Nj0WEC9QFr9gtaDXCBNZjJSqBDs9/w3B0c4Au4tTJD/olkGz6IFQYAh9YHc4haGX8WtdpiMxVeDF8IYRk2vSpAD/GO7B3lBBUAvkLT/gwM4wDz/A4TAAIGIHgydBYMRVP/vf3j//bAuiPf/Yfodj/rLNldLDoAvEN3/Iwi7lyPA919B4DHVAgzIkIDGh3z/IHyukgzaVBDbMFoGwTu/FV1uEHcEIWurJxAXYAQ8IBAckFsR8A/lJxA2YAMLkIIRYAM4UARs5346536sdgOrxgQvMHYxhxBsYHpqwX9HMIAA6AInMITlUnWEd3y0oHy4kgzKcBDCUE+DggEOUGmwJmkDYXYE8HGVRgFWuBJ2l2wF8W8hNhA6qBJikGYGaClB8H9gsToqsDrFgoTGN3XHJxBLiCvb0AuZIIHJkEuzlEcsUW8FsQKrVgEvIGlf+A9W6IVx/3YBeDcQixaJcgdw1FVzTJB/O3aGLSEQQdCGbbgxxIcMuvAPurAKraB8q8AJTOgr4IAUUyVnoZhopDNjBVFvVpOLVvMP86YStkiIG2iG6IZtW9Z+CQE4A/EEuCcDoTgfoRguCpiEprgKp1h4nDAo8yB5f0gQwvAN+YUrCsSLgmNrtmg6psM4OXB7x0UDfyMBKzABL4ABsMYELIBu1gYFoFYQHGdv/4CMCMF/2zJ4BTF1uiB8s5CKqVgKrpINspAI/9AOLhUZZIMU/0WE02Nhckgxy4MUzHhczoZxaXEB8zcBK7BkBPEEEWOHpigQ1fgPrDgo3+CQbmICAdgSAfgSwP+Xk/+AkzKAkxMDkAPBf5/oiWmGcig0EGKYECE4ECwAiSSXlBujgMSHh624igKBCSvxDgPhTgcxDPOwDQw5k6AoEDm5ewSYaZKUky7RPoSWEEGQe7lnlunYdCzhACxQAbBXEFVGl9UikANhh7QADIHZgANxjf9ACSwhD+vAlcTwD91DEB6EN70gkwmxD9+YEHz3D5k5EAD4fzSTkWnxjEOpZkHYhrjHd6e5mUqBhXiJEHz5LlNJmIf3D62oEvIwEI85ELe5Dg9JgckgeSyRWv1IOpqJe2nJmS4AlPqHmp8IfJk5gKrpiZ74lhbGd/znAhUZGWdGEM/4f835K355EHf/eHgKWRDkkBS3KRDtIA/pGQsGIQy8kBYkVAVptox/sjzKGZrV0ZkAGIScqZnVCYS7x4yi2YYyAJr/9QM0kAP0SZ8LihD+qZkA6Z8Rui1Rd3i1KRDakJUGoZWKiRD8NRDMsBJExhIASYtpIZQGamHN2ZHeuZNuOJoIIaPc+YmimZ/W2Z3lEg10aHwsoZUskZtfRBDbaBC/sBKJQIkG0YwwSiMt+hIuAICm+X8AmQNj2Z2h2IbJ2Z06yZ2nY53SGTGxOZj/UArlOXXxoBIQ6ZgCQQzPdxBripsSaA2Ld10e4AEjiBQKmkIJZI4e+Q9EQIBx2KT+Z6XV2aQ2Op3SuaKl/4mlQQB8XOqiWeqJkvqobsgSovkhPLoMgjcQnIqHDDgQpBAN5pCm/5CeHUoQXNkOcUoQ66CVEMmbPeVd17dZlzUD7AaJbiYQJQk45EgDgOOPBAeMKiGUO+kSUtqZXkqo0tmTQXkQOdmdmZmZOnqp1qqf1RoZ0WAQCDgQszAQWNmpafoOpkoQpsqepxoP8fAOQNqh7bqVX+aDavdqAxF3NjB/AkEBeKevA/GFi5iFuzpECpQD3gao/3mtO/moK6qTLlqjmfonpamZfKcEisqdueedqlmtb/mJRzCp+SkZyzCmqvgPi7AM21quAsGe6ooP6FoQ7PqQp4oUrMBuC8Bq9v/ofmtHEI42cYy2qwdhiPmahf9qKRlbEIn6n9GJsC/6j0MJlM94sWN5sP3HsQA6EEmbre9RkEwYruYAs0CqsjHLsgbRsjA7EORKrgTxrkKggR3oau8HBT1XrzJYba8Gg6QHBThgAxygt3r7cEtAAXkaA3FQBWLwiUSgckGwpV4KpsWapQbKd3Cpo3DJd9kquRUrtUrwsVtieALxCZLwD7lgDV2Ltil7riibFOyKqgkBBtzXfa52j7Crc0uwcyA4g3ibeQSROeWQC5IIe0O1e08QBEQgH0aLqQWRuRb7lpMbnTT6Hpv5tFvigAVRCeaasmGLqu9QDs1QPuVgDq2aFvH/9Wr+1oFoJ390C4Liu3NYMANqdwPspoG/UD7/YA2w+g+BoIH82kukYwU/8ANikEJPgJIBPLwEbLD/oARBQLFL2rwS+yFtCLkSC8HMW7UfsgoZKgr/4L3jWr0c7LKnyxLqR7dQEHeze24DAQVUMML4aARv52rnBgOv5gEv+A+u0JipcKQ03JgFYXYD0WbCGk4F+w8CTBBEMK0robkCocD/EAVJnMRwqQS5pwRQTMFYaxAUq8TvMQsK2Qr/gAmSUAvEUA7uEKcsK7Yxy56t6r3qqRYqLLe024H+do8AV8Iu/A82kAeZ47K84ArkGg/NkGdw3IErUGFMuQJD5EtVYAXh/ygGQoySSoG1qqnETHzFBzyxx4sUVawWq/Ct/8DF//C5AvEM1tAMZZuu6pqmZIvK1ssS4tvG8ufCPZe+sxvHJmx+/5AHzWAO1nA+7dA9z8AL8Xl2bduvOMiBkrhqDvCOAlFwgaOgT0ADgXqtyuuWAArFlFwy5fkJhEBCbepOWpmm8WDGuvkPH7wSUAAG7WeMAmGMSyDL/0DHBGEE8vwP7IYItdAO8guRarzGQFoE8jqG3Me2qydpS4DM/XUFgzycpCMGAqzAWEzBTawpD60pnKCQpeDF//ALzfAM7QDOtwnOAxEP8lCu+JAU1NXO8mwE8Dy7HDC79NrOBPFvWKDObP/7vTALzAPRDIFwzjONbvC8zkwQ1Aahg7IWiSEHODnwBMObxEWsBUqgBSuhxA59wAcM1ZR8xU6d1QPh1L+ClVVwsh+dpuJ8EKqrEj69czB9EDxHr++s0kYQcAWxBKDGC4rAlQIRzORMDPyFzv9WvitBxyUMBUE92O88BC/QakMbA2D1S1T9D1AdBZCdmVKdxE/91I391FkN1Vt9KxnqkgShCa3QDu7w0ela1jErEOWMEEWQ0iqR1v+QzmP4arKdsl0bn/JgDtDAm0CaCsRDXXF3A6CnAPWKbnz9zgKhgUswBO2X3GM3u41mRhznALEnEFVwBIxMEEzsyCpR2QUB2VH/wNW/UtFlahCMgAZVgAneTM6a8tP1WrdJUW2j105aST4xa6pp6grEs9rtN4IjqAAHINzz929wPcuvJtguTeDuNwRpZ4MbiGwEQUJiIAebzRIUqwVawMQCceGODdWa7Sri/Q+MwAgCUQgIIQ8lvSVLoN8J8mrshgNG0AfnMxDtwK7hvKb/5uLo/H06PhDWJ9BLMNg/Pcsx7XOgJ9TZZtgCYXLUzdgZPhBbsAVNvtlMzMQW7thWvuHFogcJYdpJYdMEoeIH0dLtDAVjHts7VwTs5gV5Bsj+JMqknAdgwAFsJ9v9XX3DbeDUBQVvzQQp/tYBJ9sw6OfG7YPtXMJDoIi8/7rkVsDIEk4Gd0AGZHDd110QUN7kaCAQbfAPma7l/3DpB8HhanEIh/APfPAPd+DpA1EJpagW5SCrSCHYBaGB1cbnZX7cI/zWRoDORdAHgTBKfbADYJAGb9CmjdkHoocDzYUFOMABws3jXx5zAv7Ofa3n8uxvuK7Sq/0P2S5fhb7aresAFWB0JadxvxQHKUQGCYHuYhDp7E4QW0AGXfAP8Z4QXfDu0tEGqE7dXIwP74oUjdkO0GAOpDzUAm0Q4qvSBk7gKa7neu7PfZAHo7QDO3B/o+QKeXDs66fnONDs/2B9wj2CC67fdTvtB67f1F7gb83X/uzbYPDb1Q63F3Do8f8nEEPkZAJxBWAFTv6YBFcwOjxP3WpQBX5QBWowQpMO6QXR4SzB6Zh+6Zk+EHfwIZ5wPhL33gNx4An/2m+t7dZmBKJnXfj4D8OeBkbABl7A4vq9A8su3NYngmO32nFH8lkv8gxvBIFut18m4Cyv7W09u/SYr0H3ZiV3EEhXECQ3AU9JktLN5AQx7+8yuNz8GrKd8LBO93A/EDYg8RKPB8NDf6Jn96+NAzewABwf63BPtyZf96jf8LcOg+c8wnyv8m29c7Tv2q/daiWsr0O744xIg5Cmj3ma5L8kB2Lw6JqO7h+C6pHPEoHG5MuvFGzrb7Q+4HFv8l7/DyVIz53VB2//MOztDOaiZ8eYf9wqXv0vn/Amv/IaKPranuOwf+vG/drGHdghmIOxZtitxgOH3fueBxD/BAqkcGNgkX8UKAh0MPBfnDtiyDikWNFily4VJ4oRKAYWJosOtVBsM7BKyIpQDv5bYgTKEihMlixBWPMflCJGdA7c8Q/HvyJYqPy7cSNnEYQCf+L46dOoEaQqi+B06XKqy386YeYEioNDUShQcYZlyZIr1iUsW0LhITDtvyEDhxgRGFdgEQ548d7I+5XDQL4GOQhY+E+MIcN3JqJE2QZNxS1b7vyrYihOHMZ6Sv573AUNSIpDXpRN6bAIEygxZ6YmCtR1S5o66e4waHQt/1ekdFceBepybNWpYcOujY00Z9EiyIVnBYqTpe6bbl3yYMKSCRMedhHeGGLQdN/AHCjkLVywMEWOnBlXfPxPsWONEyM6JCMGzRaUIwW2b2E6JN67dFtOt7RicygsuqBLCq7uGtQpJwSNiA2qB8MKDjjWpiqiqYNQS00sDX17iS6VWsoqrereys4swBb6azzx/gKstX/Eq7GiKypLrL31SEKDDMd4/MezIfX4x8h/yFBsMiQraqMkIydDSaW7ZJQOJtXeukkrKskCCqECy2LCiLnm0gpCqI6aqjeg0pKwiNsQauqvvLRqDkyXaHLzLdj+kckugbIrYojqkrtgoMKS8v+OIiv/SaDRgTAzbLEenUxSoIyGrEiLTDPqbKDNSnpyIDliWC+npmS7iUqKECQtKSpncohQQsui0DiVbnhpROdgm8u1G+ha4i8cjGoOQSwJXWKILFNLUaY82apLoOoE6gCoGwrqa7waz3OIgBoXGEgBcP9ZodKQNhOIySGDRENIS9V1CF4yCCHknyQYS06gAVl1yE2B6AKDVR5MHKjAmUg8UzixqIITKjdresq15NbKSsKbZMIS2l2puy5ht4aKq61lSfvn0LvKu5EADsr9R4G/wP1LgZcTuuKfHMtQA92Q4HUMviPl7bENzaQUg5A4qqjhHw0oGsq7CJmDDjauCkz/CiG7UHPLYqmRilNZWp9jzqbtqrqrSxI1dhbkmAaqlgcqstMSrlcXpFMgmq3kAOaKaHbor+rS4JmiQ/7hQ487Mt0vVDSAbrJSPqSU0ooyzH3h0BdGk3EnVVkC1NXoPgST36RMZFXD7VoaPcySad0O29w+5JdE4thCLUW6qHhhz5h4WPHgWivKi7G8/yHA73/ErVklMAT/B5HB/6Hkn0P4YFygzR6PnjPN9GicMRZQ5txsFA9O8B8w2Az43/RHdAtC6eCsnTrShjCRt9xeO7Ft2FLjmomhDIVfQ5AbaQp4F5SIC1zkghm5LLIAI7ChDwIJhCk6sT3pMaJ6bZDSeohG/zQMqsciK2DBEFiWIK+ZbCDMcw7FzvcWMDABfhFD300QQpX5pSgrYGKWC+90JT8lrGPVmtWyoBC88gUPgQIZnkPyxje8UYQB/0hDHgTCCoHw4hfb0yBJ9GAkMBINDdqjSPd61KQ2FOIOHRzIC7jilpHZ72IHWhWrBnbH2VkofUUYmBHSt0cwcOk/uGGRW+hYETm+xX5kkg2FXIOSRTXReBSBIkWaopIL/sMV/+DF9gonECSN0XpQCtWTwFip7o0RhP+QFx8qcoG5wYWRi4xO57ZEohjesVCrQl/VoJKVQEqINUYU28VI5C9qXadV01IWcR6mG8EUpUd8eeDMKHKAJf867x9Y5GT0XGm4gVjPIkhKJTjJOLhz0u2QYkvQC9XSkhiS5o8LGkj6HLKGf9DhH/hEZkjsybOrCcQgONgBQcHQlBt4JZYW+YrwFrA3SNXMIEtIgxee1wlubs+V2vtmOIWmmYp0VF3q6miPAFWRAtJlTQJJ31ugwIZ/MiGXfOTjQLTpBoHgFA84FQgbLNITDDJlKT5pihD+EQGB2KA5/rGIByI6kL1dE4FYgILgEJGJbW7Sm0cip0PEib10glIPJQXn4b4YQof8jiX9ugtC/lkRfApkDv8Aghkg4RBlCIQZqPjHJHr6j0fYM66PiKtDHjHXOczhropVrEPm+ghIWGL/Eo94BBCA8I8DSDM0KHlA9DjAIT9iAQ/PQ6tFvsmHw5lTIB0l61jbkFowura0ATupwbY3Bzo8IrdmwCo4BJKN3zJDGCExxT86UVyUmCITuMgEX5fb3FhkIhZ8HUgwAEqRInT2qZWsyAKWMpv09QGrg7sDajXq1fUYKbWlhY7bTMa5GgpkDXMViF3pe4p/4EIWAsnHP/rRD4HwwyH6GMc/qvEP36LrHPZABzq6cQ1upOMf3LjGP6RBDQsLRBr/iAUYLluzGi3hBoI6aY3oySh00Qaos2Vxesm6PSOMRpb/WJG/jICcn+DTDIgVyCMEQt1/WPcc/hWwfwcyj3Looxz//9BHCCUsEHt0Q8MW3vCFMQzkfwCAiQnwjjSvVSnkWUQBylPKP4SwA322OJxqZvEEeDAaq4npkTeyQZgHYguBHMO6xxjIOfLRX//2Ix/94AeABWwPgQBY0BTJxzga3eh/5APRAuEGYzDskMtqOcsBAEAAJvkPDwSms+uBFPIWcDxwIRUHD8BBBJ7K5opUD9YokTEPYOm7gzHhpAlQnhkegQpZ2EIa6DgHhpnRDWYIpBtDBrSiifwPfkQ72oRONKAjzV9ISzofQ8YgNjX9D0/XjGZk7pGpG3W8BfhN1RFYNYu/KeuQyBpJLy6ve8wrECXlG10TmIBDdLMTiiBVRpb4h/84wCHlfyDawf+Qsjj83N98TLvQhKa4gKk96D9DvL/2cHR/hzxpdFHj0uvx9LfVrDwOPCDlr64UI6gX0nFa73BAc8hkKGVzORhGDmLYOWbkIKmQNMRaoF4JRbzzT3UIZMjc7gbC+wuOP1Pb2YWmesUxvmilR7rA1o5eJswwEJMPBJtL5Jk1nZhuR1Fk1Dw7xCdDkk7EdcQiPHeIFRySL4EgYSCmQkILkHAzh7yAAp3lNZkdKBCkGoFD/zjHOPz8jwafQ8qPj3TGJy5ozPsX40a+tj6szXVHDxkdPHuEDT4c9tLagAN1FvNAXO3qEBaCEi4fiNsrcgcOUkoOT5DDD8T/YIXf//4fP6iIDkxlkf5UpAXn6vdAyO1Ei4yjwOKgyDke/+g/G7nQRgZwpDPPj0Fznr9ab/I/nryeDcv1w1kGwAHa3+LVI2/siOfA6+sfwks4xOW2/4cam8SRJ/iBJ7CCH7A74jPAKrACHagCHfiHGMC7paEIDGi+fquACriAF6gAGSOe5+urfxiuIXO4phu9Bcu4a3s2zLu6Qfuv/so8QIM4z7u2dOiGSkMJ60IJLXO/Awg3WFMqpTqq+3u9gXAGbYie6fkH2juELuq/gRCDAMw5gWjAgVhAxkg+h3AACsDCfxAAkhOIAFCAL8QbDhCXH/QrhqsIcQC5fIA6qIs4/0NTNDjUPEHbvOzrPGuTMIQLCT4LCQD4NpqxM7RaFIFYMde7v+jhhIG4BEq4BEbIv0WgvYogQAWkiBjIAAvIAIqYAA3QxH+YAAxwiAQQgFAMRQJIAAIoAHBBRXQJMzeIBYrIw6yzPm6btnT4r8yDQ3uwRc0LtIzLvohLhxpcj7dCMYeoon+YoIrQhCxKhQMjBoGohYFIBVYIBIFKgze6gR34C9hDCV1YBYtARE4ohYE4Qia8l0gUCLuLQoFIAguwCE6sCAIQAAIAF1OkiAHwwoHgwZAwAzCIBeRKv3MYPSgruII7B0Obts37L2iTQ4xDtO6DuBNMhwrrETOYv/XAgv8+eIOBgIM3gJ5AyKRU+IVaOLBqGMlaEEmRdIVMKoIdwIJ/cEmBULl/IEKKcAZgEAha+Iec/IdZEAhx/IdPEIigHIhFKIT+M8d/6L310AF2dIimsQhRjMmYPEUCGABw0UdKCkMQ+wecoq5jUIZLE4eGEweydLgVVAeKI7R54Ad9+K/t275+UIcVDL85lDSJrLD0c4i8DImmYDUOQIAOpAgruiJeGEliKMmS/IWQTAXj6gMsMAJtcg2vYIybFIienIVb8MZ/aIV/+EnpEYj8Ewg1IpUfkAMdkMSKyBe8E4hPpAhSnErjQUWrnE3i+UIwXI9jIEtl6waHs76kU4dCk8v/uDS/ebDFQUs6FhROjfszfoiykJCGCjuF9YMqpyAKhOgsGyAogUBGlNikTjrMk/wHTWAFLNqiPGCDx1wfQWQMZAgJb2yFoXSIRViEf6DP/mOjf7ACpXQIprSA1aQIA6iAgUiAmKxH2azKkFCAA6AZbPrC+ZsrSEgEYHOIa1CGa2g63jyHpAvOWoxLt1S0DWXBFWTI/uKHGRyI9NuwCvOxkPAOglq8eqKigZggK8oEatwmgdiiLaKITugEZXzJNFAJmPyH9kSJIh2IW0AGWtAFnhRHzvwHRPyH0AxNRjBKo3SInIPCf2jA/lwPCBBFUyRQgZBNq2QMT/vDgZjOH6OI/2Oo0Ib7B+AUB0JDzkI7h3nIRTnEPLRUNIyTNHugsInMy4nky6zAgQ1xK6P6B6UiRIfIA+iBHoHYJGashZNMhQuCg/EaTCo6MYpABmAo0vasTFr4VJ1chVnwxvcEyiiVHka0TyYcCEr5BztIRymsCB8Q0AElUFOUzQXwtHvMx9vELIHwtvmzLIvAMw1TBt4UB3VIh+bsB4cMtFocNIvLRYyDS4gzUSm7hr3cS4uQk30ZCJ5KM4EYLWS8KuMar4HYpF+oBh0lTzj4ByviTmBaz/W4SXylCFoQR3GMUk5QxB4hBPxEidb8hwcwgFCMTaqcTZfxtDMdF7zBSjPYsX+AhP+7EghklYa8Eod0AE5okzp70IeqqzpBa0uGBLB8mMGJFDY8Q1aU4BBGpQM3INeKyINOCIRMwCgs4iatgkbGTIVMiNdMsCKYRBWddAhguAWkrZSdHIifHMojpITpccRCWIQ7QEqBsANbFQgfwAAfMICYRNgECNNymcdSBJdyQYCXAQAF0DS1HYgGMAM1Jbj9Egjqg1N7ELAOhdPhhFZ+EM60FDBf/EV0uAZurS5USNRZG69OUNcrwtGBUEzFFIh4lVFgKgLM/IekvYXKHIieHIikDYnPHYhVKIVwDEeLMEpCKASBdQiszTum6dp/ENBDQVhvgUdw8xsECIDd9Rst07L/t51OgsMrhOPYjjW/SLOHXMxFucxFtpy4hRzcCZOGvMSzi/3BEeNUICgsh7AEi+Xef8CDTBAvajSFnY3Unf3RihgtlTDUgcjJ0bUIZFDazqWI+EWJVl2EQ3BVgSAEOXhdiuha2XVNg7XdBABbsM3HKBIXcgOAXw2J4XVZgZCwdKhgcWBLaCs05e2HdGhLQSsyuvS8heOza8AFwPqPHZATM/sH+qII/LqryBqI8f2HnLWgTnAFVnCFTdrZjMLRQJggl/yLRWlaiqDf9aCFUw0Jz2SE+XS5oryX/9XSh0CJpxQIC7wWlCkMhN3igThFcOvVlwmAAdC0e2yAgVDcFsav/4G4BrFkOI694EFbXuQktIhrNhjk4PPLLzUmVMciuEk4BRYdCFQ4Bb5yg0kYrZw1rqzKYR3epE0aT03IJPGyXKKAUZykiNCtCCJGYiWW0tCsz/7t35yzg5wDOoeogRrwAQ3wAdbkGS7kwrUbiAF4YIFAAAYwY3SpMAer4HS44Ar+M3towWD+0PETtEk7Blc0hdLDrmFcA3wiuOHdY4zFBeoK5H8orh7d2UZ2BU3A4fHMJHmt3Pb6B6V1iFk4ZyTlSYHA11vgXJ38XFO1iEuwT/s0RzkgZa1lDCRQZVV2CFy14tnF1QpIYLA9WDFNuwKYZZNjAARAgMsyqhamCBUVS/916AblFYd8oL50oFYVbLIXvLYKQ2ZUeAQzuIEfvIl4cggcsOYeEwhpZgwLMq5tbuTxVEmBGEwrsqglEKD3PVqffud2Dt36VWee1EyHWNV/AOCBsIJ0FAhUtohPFFAMqICCbc1PvOqBwFUIuIAOGLWqvEcxduBb/ocCIOuBiOh/CDaBYOMII8uNE1kmC1mUNbQThDZ1UAa8NoWLNQ23GggcwKc+8KtAvlgTrggTNsOBUMZO2ASB2IRt7mat+sgf3kgn0FQkvYWdxMyczFdNXo+gpE9CWAR7kdV8FghT/s+BaBoBXuUayIIs+AckOIPKcYjY1juB+ABQFAgEBbf2o2X/xxKIuyLktIZOu+2GdLCHCuZguN5FihAwAROHa0g2FlbceqqWpgADnqKI4bWIYIiFwn6E8WIFx9aEVChvxtSkR86kwaRGjgwEPyBSUiVnzG5ncu6RpuXM0hVKpE7qfzCEfMYMNWjqvEuCCHSIM9C7Az+DLLBtP9iZf3jvf1CD966c2QZoFvgArhaIe/zVX71lo6Luf6AuPDNch1gwezgHfQA5gWjLkIU2SWuyc7CuWFiDD3sr3fijNUgf3MonwILhPd7DDAtx/BovRfgHxqaIVCBv9aXcGxUICCfSdb7kUQXdcibScr6Fz20FzeTMT/hXkDBH/9baOLAC1A6hSviH/zNHc4FI8zQ3hCcPCQIIgHIJgA78QR+L4LUeCHRIBxO3B3EoPzVM8Uk7B90caYEQAiG4ATDQLPTxwfRxZsSCrBOGBPzCsxQVOYGYBFQgT2UsckVQ3yX/hyIPBGpscvklZyVNUqRFBlZH9fruRoFoBXHMP0wADYHw73W0ggDfnkgQiF5Xc4EIhWD/h1AIBUkIiTL4gzfPR5dZjwiu23/Q5XOoYOSWsGDG6GVbsFfksH/4OkXNzoQSKvQBA3xaAyGIK3xq4Wj+B1vAhSo7BmqwrmAIhlogBlUQBVH4h0hoBIrwdIH4A0WgxjJQBENoBFMG3VAl1SJ1BmRg+COdBV2Yhf8nBU2ilIR7wfUIx5ckCHCO13UBtwhJKPZi/wdS2Mxc+Idc4MyUh4WUF4iStwg/qAOKaIDjAbekoog5YFFbcNm8bLAKTjiCbLiK5k2ClDBXpAgbEJfVq5GTXgMbMHdz7/aBsNhHAGQUPQbqFTnptgZrKAZjQPlawHdP8ARNaARFUAQ/8PfzFvYzT/OZFAhnWFr4PlKBWIYlXVKHqHWBOHZzzOddV4Mk8PuBQIxKgQWU/wdd8AUm1QVjYNLG/4fHD4kzX3YDiGXos4jCnjLIGz0Kpj7q481ePsNoB26HwCYFUFDUdwgwAIOntwEzEAJvN4P5cohTwLNjgPd4/8Dh+of/YngGZGBSyGdSww8FfBcF4hf2zTT8Yyd8uGf4t4f7m4z7kAB+oPwHWycE5h8IOwB87q8IpSaF+Ez8Zfj6f4gG89eGaBAI9C9/gWh1h8iFl/+HRhAE3HWik94nQaaIQR290QMIcf/EietWsNu/hAOl/TOjEEhCBREP/AOiAOIaMP9sCLEBMeEah2YcKkx47B81aiVLIosWreQyY7pk6lq27N8zXa1IYUro7OU/Z/9clgTKclnNlQl7JjRU6Z+gf2oUTk2oxo5Snkp1+VL6T9tKsGCVGv2ny2ujlQT+KVgrkS0QG0pl2aLLsCS6hN32JuRWUtq1f7JWKggQEYECBAcO/3x8WLEkkDU2zKxpCElhrJLCVt5EdnNlNKEvkf2b1SohqX+SFP78SVYoZ13AzipMrdTOVUFq4vzDjVXhIkmXUHstnnCsNnhglZeE7bVryUh+/jlR+JZDQor/1lReeczW3X+B+14rz1AaeoWnIP87YNhw9vgXG8tV6NGMx5KX/+EKpnDzP6kotAxp/3iWUDSkkfbSZythEw02Yn0VjTYUvgQUbDXR9g8s/zCVUCWGRGXViAlFUhIpn9i2SlfT/PNghP+EsxI5yR33j3LJ2QgWhtp8ZkxxnkRSRkIUELaSJZYYp1B4tpxkyz8n8ZdQY0otxhhFjWnnmFxbrvTIJJkBuP/SMzctU5ZSpM0yS3MvWjghgkMFBZRNJbWSyyeqgaiQiHZENVVUqymU5z+rtHILmw8Wpw05XzG3nDY6OspoSRWONWBCsHSoUFpeefmIJZnRFSV4SyoE5T/rtRefe2/FV1GXqy7JmHH9lcQKMcUAadxnBdLyz2kIXrpkWUB2lcs/pITy1IkmJlTiP4YkFEqy/0AXVjjahNNoScopR463kuIYLjym/iMTkB12KIqp9SWUSUmDCYYLlPWau5J2Fv0jREL8EgaRqxsp5GVD/zzyD7z/mLJkg8XpwiaH9ypUITYr5bKpQpGcKCJUxpGyIYHOyTisqd5+NanJ3N5LrW0KGYn/nbvb/UOHkqeiggtd8i4JSZWvcqRQd0dm95a7QNAKRGQkKYTKJP9M0klCz+xqIIKeFZjQ1Scn1CilXjkz7LUJsfsPs/8062wlYyeE7DTLVJxQhNkqBC45ddfNXLljlctcpRKfu5IqCcFRBxUJLMDWP9jJXNIpTaeKiqoJ2RL5fo499hhJj9BhcElKIwCR0aFThGVCZgihNOcHJ/TLP81w5lmCCcKklMqN1viPytq87SJ0sLxSEihPkc2u8GmntqkuLho3I451467UpZd6C+7c1S+ZyyvUllSHQgQcTqVXljwS+ZKos0VrSZOAebAbqoPBUVyyIk060vn5O9Iaj+Tf/x0rtaR5ZtZkR6OvqCwsCMKG8qy1klGMIiGgSEgDQfG7f2jvH8XwytsSsq3nbQ0edCtXAU21HHDpqEYhXBuyViKILPwjAQlQikMOJr5/WKJy4UtIzBSiNMjZAhW2wIVCHqG6ivSsOBBB3RwWN7OE7UKBWDtT1YByNXJskIPFUdQ0oOHEf/jvHw+k4APZxbIJ5gJIu6pYjORWRQ/iCHceZKOpcsdB2xWQZF6phCf+8A8YtJAt+YHII9qnJFDZcHIJgZwOS/eYgwHxH7E4hn8S0sj8reQj5gPd5UrXnSH+A2qBw5icWCLAAdqxJBVrm8U2Ra3AjWKCE1SIrrK4khlpS/+D/3DHCZeEj3uF0EYKQWVJJugJpRQgAN9zl5JqWLOV4MJxOFQiqhhSHoVwQyUJecQcDoY684GvYF5JIkjy4AovKmRXDUtInWQyQL8lhBiw2AUsAlfBfzRxF7lAVou0mECFhIN5SnEHO+PIt7l9SxtZ/Iwv4LmnlRTge8WpYUkaGQxUcHJfH8FFSrrBjbwkJC9+8crmwPkPkerQkiBJyBxQ54V/bOIfogjcuc5yppnOdGK56+WLjJMLd9YClPbUFZCgocXlKSUc8QioxHD5qDeOxZ/7RGpCbHhIhWTiMuZbzzjQMY5/2MMe6fgHN6aZkPVcBqKETAhES5dScKZ0pEr/a2tC9tCITkXMGEj5R4Mali1/Umost4MQXr2iUKUMdZ/7nJE/+QlQqEqMbjhajtYCCziy/cMR0CoOHWyICsE4EheWMAPSSoIKZiAkq+foqj3+sjSdofUfqLDEa0eqlCSmtDKVWatC+pCxf0zQrphCpwa7VrdhzSiDz/AKMVKokOM+9V7+zCVji5O3x55MZdhoGCj/EQgnUKE4I1GIJWSRmX8EY7xAIMkaQhWMc4wjH6lNBzf4gY505OUkUpLGSRqpHqiaLw1yrew/GmitqRVnr7WcZUKUd1wgFSO5yf2pxPp54Llta0aLTUi5olsS6skRbwWcRgZ38cqEcM9cStps/0L8ozobhCQhwlAJfc/RF3vkJT0JCY9CcpYQ1poLt0kUwg7+EQZFlETA0LErgadGRZI1anclueBOo0yMZZQJbubAhjmsvOHE+jMe5PCyho2TYaRKLbtG/AcCvLIwVlC0MvhZA4r18Y98zJnGYI2SjVeC45X0sIdRVch+9gNOM8BVu4CYa0sFvJJ9YoN5jKowP5c71L+VxBjKTYg5wpHpLDOvURucUQG9HI4LtzHMpsaGMQhsHBxQyV9JTBhKKxMZVLBCIefIB337khCxlmQ8Ufr1SgYDRLIuU0mbU0ihp5AQPSrkFV0sbEKAlEGbUrFRLnqGLItTjOMuKctZVko8jP9qVCqC2dTmXgmQiPEPVYhimHRNCAMUEgG52AAMdHAmoDOBi3EwI6vUFI9XOCoxKUlOKZRDqUKa8I8pnEFiDatdSWZkDm4bx3XOjfQ/RP3lTh/13IwltcVyUQu1FccGOGBA6CJjuYSoZBzU0OiNd/3Rf6DjGjX3y8wlhip7bRYSyyxJGpSt3YS82xcxKaqBI5vTaWA7oP2UkUK83PGMk5sc5vjyP6HrcXaG4yXPuHRCNLGJQPzDCBGItw3SbB/zWRPnAL8zOrjx0Y3S3dcKsXtgrrHn4pBvZkLoQUK4oJTA7cLoCV5eU3EycVM9NbHd4lajRO1lb7tj3OFu3tY1zC3/inslD1hg9eEI1hAzrEcYOIe5X/JyDvqO56PXyLl4AHMXX49HSvYtzmXoIAQ39OANKyGyUpB8zhs5ddpL2icVbyl1HMUD5JOX0fOTT/WpZx6qM7rJMzivEEcoIg8KwQEOwICDyajnJCkBq9z/cY71fxWsDEn9SvSud4DPX/6nurF9d+6VoHtB4XsocUk00aJNWzhkEDZkX0k0w3FZXMRFQwFpHT+Fm9W5A6dJ3ZdBYPU1FvM01z9ogkIoAtQkBNn1gTL9A6oohErI3ep9VdxJU3HIn+zZnZ7pGcGlyua4wcJ5BfCNAkwlxFkYwynN0ttkGTFMTTMYgwJGDTZg2Uoc/1XHUd/WLF/GadrGQV0GnpvcaJ9CiEIXjYKA/EIqsI4zTY6T7NrrbdQ5oIOMxZxS1F8M7llYAdvdRcl3gJdC4EFCTEEYKASzjc2mAMlNgBg/GeA/XJvrIOG5MCDcBJQHZZkElkS4OSHmXWF0OV5JsJtLrRsvqAIvhGEnPAK8+AeU4AJ61B/N5UXcncR5vJ3sxV7egdXrvd0/7J1JKMQk0IEbJMIb4CEXjME/AGAwVZpS7A4CNR1OJKEWchrIFcdicVg8XN3zgZk7lMsyUiI7aR0rdeI/8IJCmMIkoMJ4EVx4zJ1f3EV47B1g7FqvlaNC5AVCwJ5CpIGQeR8c7KFSeP/CJ5UEt7kIPyIQTiiExSVhEtIIBioELh2V1anM1TkiuEChNZ6bul1QgAlISSACwsRCJNleYMAePM5eG3YUzNHfKXbDfCnFeFmCsuXBG+TBHg7OPzDb2QzWPx7XpAnVpB2hQHLbcX2bjFTjP2Uc9CXkQqqMlwGUTz4kY9VTgCxlQrhCJ2SCkrBWDcqi+9mLeLziSnCUzYkHQsyizaUWN3wV3aHEMWSGkiBCHuyB4PxiSXhgJtJTQujKuUgNXdKlRDaDRCpFlmWQURpH5UVe8jEPFI4bUlbfKLTUJrSUK7RUQiRC08hCJEmOjcXiNJnjHL4eVt6ZOspiOnhV3HFUSCb/xMIM3T8Mwj/AQSDkgR71YUmAkq7kpQXF5TMUgyImxKRFYKktI+TNiNQNZYUd1aj1ZWGamyLoUSCQ3dBZZB8kglJY5t3JoAnS3HhgpnTWnHigYuuRJJ29V0f9QzcEwzFkwmiWxBt8gXYFArMpxDwlRBNJ5Gta0NQgIed5W2I55EosFphRoSVCY0EOJ1R5n0qWhGMqxH0xyRzGHJR45FVaJ4N+1FcxBEn+Az/gGlcpBDNwQ2QigmmqpUrCwT+w0NAx2yb4YS38Dmx6BV5GzT9yoBWZi0JWjCUWF4v6JzsBQlwtnDwGGb+EiTIoxQlK012c4GbCos3Z3EaVhD1cwzEw/8RXnRZXtZ931iJzIkIgIMIXeGhC+N6Hel90KEQX7QKY0pMAxqXFHRe2TZwjlgRP+g3zXBncgBg/0ujWKYIi+OI/yCO/HFssZIYq5pk0gEdm2sI0vWLN3Vzc0ddXpQNWdtVpUaiu2aJCfMEbSME/8AAfdVc9gihyshR7SkyKPgOarsSaKgQ+7NK9sGhtyum5uYFu0ZDjPBKs3teP3p5UqWOhdlRe2ENY2l9nUihq/QOUJgQiZMIgIIJaSoHC8UClwgAPKCt1nGYWoKdpekUX0RNsug63MaG3/cOoSsxtxiV7EsOYqmp0OcImcN8/9AAeKgUuxEIjPRKP3d8J5l0cVv+nkXZVOrTf66GDe1VoauGriyEMInTCIByrwlXqP3SAUoSBlm5qLYjYuinFLuSKQgiVOWyrQjAhuW6sxOCgSd4MKqAYiq2EqkQOZoZVoRYpKr6XOLRek6YWV+XDdiKEf1gkCO4BF/TADChsSTzAC3WAslaHSyaEs0UsTAVOtS4XtyrEt2khUiVtQvQgx0bXGfgiH40V30kV6kDCKaBK3t0cdCaEPewFQ0BJo4rtnLlXGv7DZsBLejbBDOxsQnjADRgHHHiCJwhIA20iA63bKNRC0kLDlTmi43Wr33zRSiBu304tO5nnGExBGrhBGiSMEBnMwYAJvEDCZUjVeuzZdK7/hEGcg0F0pS0IhIzdmj3IrMymg4z5Rx+YAtkJXsLGbUJ0wAMohbP+gyJoQlokJksxJigoWq5wG0+awzRMHNNl3iacyCYM0z+8G+MuidDtoexilqtmRjAAkQ1Bwsie7OciBEGsHzX8qUKIQz5wgz6sX2rJbGqhA0LEQh9YpJDtEe0qLN3erlJQAaUmxLTaqHFs214y7QJimoxUW0ClZ0koQiP4b/T6zQeUxDjRZELwwi/UGlUlTDBEZqroWnnwmmZ+FPn+w2Vcw/rlwznogz3cGvsqRSbsARzI7s7OwNwmBP6WhLKm5R6oJdntAdkpgiOkgv+MqwZdmRYxYMVIn8f9/8GmNlsDG4fQ2amAEIM1lENJVEMFsyug9VoHw2I19ahgCGnXql83pK8+mLDqprDADasLw7AMJ0QReIBC4K8H3C4PKJwXMOwTcyk5Ka2MSNxs/gPFZmDDlaZXqFoTLwljMmbrFEet4YIprIfXAtzMbZVxHMP6KYTq5kN7JcRWLYz3jYH89oAH0K4M020frYQM85EqC5ngmaZbrgQ09JOLqBsXHd4hH/K3lgTrTHE7rASKqQ4keC16zFz2Gkc3gIMJJ4QmLzOdpZhxwMAOwADtJmwR/IMHRIBXyPAM9MAd6zGnCmNOXZAXgvMt3/K3vjIv1EI1KIXqRA43oAcp8gcuwP9aa9WFOOjDOJBxMq/fGq5EHWxoHioEH/FAKStOHPtN0camFkEDMahCKowCL4zYK4xYOVe0QnQCRRpHethYI1XUYEAmM8hZPqTvJauhV9iojRZsSQAe4ClEAkTAS78QHP9DGyuEnSYEkUV0xf4DNBTDK2Q0RVu0ULdTS4WgUnAtRqGEJNEzwilEMHTDGqbvy3XDVK/EHvQv/1ppQsBtd3VXSeDAA+CAQf8DBPyDwukxegZYpxbDUH3RMEHtUA+1InrgL/yCKdRqMMDLEFHGGtDzYHTlXtThMQjEP8iZKcTCwCYE1ECNL/ZAjiKsUnAANi/JGNjpIBDZ374SKGxCcSb/rvPGNeMW9b2YgnKagilksL4900awmFOjYEibxHr0aD8rhP8mAiD0whgkAiIkAg7iAR6CwQ6w2j8Id0JgxwNc8w7M9EqVRBgYa4CpAnQfJvA9ryJDL2iTKzdCFSsAEVP/wwJkhFKchDiA56mIwyWvRLEycCcpDMKQ9j8UgQ3EGwMswPd4T0JEwBzvQJDl4D/YaRM0wT+ba0lMqw97QiOY53U/JDDyVtJWq1H/Qx50AuIGQhq0KlX9w/twxOckBB3AGoDUWiIMxmUog/nGy26bJIGOl2w5hjElRAH8QwTgNzbX9D9oqVlzAQ87gkIo2yAnOI1yAXJ+kSoIGCdGrCL//4NaKgQiyGNCsAK89AEYAMEC8Iu/LEnNrMdgNPM4fOc/JEII6nYiLAwzEGhJ4GB3HMDhONQ/NEBJwDEMAF4TKNsUNAEXcEHDzbnCIXhp6rmPX2EbT0Eg7GAD1YJOc0pxeGgaYAGV5gEbtMdFEPe7LMmxKcM5IPM4yJi8JEIvKESPjoM4MANhS0njrEQADAB9/4Opr3lJTPPCHewDp2u69oAU2Dn3LHifVx8MzPEeKdt0CxgvtBvRrQQWGIF+7wAW9AGya4QCyMVb5GlrN01lbM4Il4Q+iAM1yAJzdvlKiMOWjzlKQEksoNgaQESpe7dSYPMLrYTCAV4H7OwDt7SQmf8nst76FaolBFwzHI/BtHqgQzuvB/ow1JBdE/CAEfwDFiTEDXCAAiy8DdgAm9PBsUX6nZaEkhC2QnxneHFWQszDVnVlQfSovKg4RCAAArS4V0x2Tc85DEiBB3yAB1xtQuxvQNO7NRYABITBZYvgSjSCJui4V0CzBxRBEeCARNiAAhwOvyCCKViwfq1EL3h7YTuzzyUEOET9xYPDmHeDMpTlVHWH2sGHV7C5NcN5D0xBB4gyDLx6nG/1nNN85nEPkb1BkHmAFyjCJggIRbpy2IlgkmNpQsjw2Xn3AsiFcBs1PefpZlV9SfQzicvZPPwDOJRxe4kDOKwhQujMfpD8P4D//ZJcrdD1wKsn3D9Ur9t73CDkwRlwqTRbs1p+0SsImFpqKYcieZvDOAOcHX3XBx7I7zUlxH4rROQrhJylIOU/vvDT2QmfsBg70mCsBzgBQMknRKnDxwCURAF4ALwrhMLCudA1QQ+sffZ7nNABD9GSAiiYv/lLgs+XhNCVNaqb2xfokbrVAkUiuAc0wBRc9SaoggACxKh//8Y08dLkzZiBC/95YLiQgQ0j/9gM7POPCZOBbhI9XKhvILd/+TwuPDdP3D9w4/4pCzYQFUMbBxYsGLBwQACGBSIwbDKwBwyfU5oQ7dGjZFKlSz2SeuVxFCimO6eWdDjQxxlNu8Lhw/dv/9q/TQNhXP0XZtA/VUvfVI0gZMdAL3iwTPQozFRJaiOT5tPnV584cP+YyWI46Z+bOf+A/FswMACDfwx0NhhY4F/QgUUX/vRMdEpV0aNBCVxYmpQjhoDOMIQw2mOHDh8WwkjDZaC1f+v+lSPGS6qinw8aNskDW2nPgXE90vk3qaOwf6bAVWNJ+BzJgSAZ9vuX8t+5h7EGIl4DBMHAnJT/Rf5XYECEBx5g9ODcBOlmok2K9s+PXDTV/gHEEdUiYSi1SA4UcKEpaAOwJKRgmHChThZy5Z9RMBxkhoYW6hDCh4RQbrmHdqADMY+4+wcdkrQbaB575sknH3BqXMiwgWJBJf8TxGwA4rGbHgtggJsGsoy4zDbL7Kf88gvtpxCZAmQ11RwBpLR/sgSFQSlFg4EOGBBh5R9WXDElkD6maMtDj2bwwKyHjEzKMoYiYG6hNTzKy6Nzxsnnz+3+AYk7Zv4JJseFyIvpn5kem4zI9h5N6r8HP9BMvygfeqABCEhE7sCHIqHywKdeOTBUhkK7jCGdRtOUIUR++aeaf3hhBZGFdvCgpwZ6eq2qBgZgoADLhmUIhzsHEiIpUzpiRhlhZDElGOnG6eac7EjSh7t5uH1JlnAZigWXf3ps1LGBHpt0qQ7+oQ3Ohdx19z+GHojA09cwg9ARUA6UqsArT1twodbefU//TuRWZaiHQVIZSJN/jlsoyZ0iaKDYpYZ1b19kI0g2WebccGOgjsydjk9GhRlsIJbAYXkccBD1KBbyYCJ5pnQbYC+pil9zyN14IQDW3YFAHCgC5QoAFkJQXjFNQCu1ZKiOhR5sdU7kpKgNhjc04eWfQAZKg9U6vXzo0zvhYpYhSxDjcyBTDHu2pWDAi/llQxORxZKBguHzpYd+XMgydj1KYCGm7bUsggJ8/gdfixdaerRXTCVloC49WhgnyR5TALkvGnwIDy68IPtshiSDjIE6Pw0ZBzCYyivXf/p2JZkyMRRmVumoNQXuuP+xmdGBbLjspqw92tchYOf7p+Ije8IM/zOz7axeNFAwn5pBzR96MIA6bUq9h6ORhvxTppRXSljJemX1HxxwSOywpBLhKFdhMAQ+7rwyEX4hprBZ4CzxiPgNhAMIg0x7SiKfBxAHgvf6h7AeYplidQxpHVtaBISylO2NYnv/KFDmNtfAdCnAcFXhXJz+wbbJ7AsB1nuIq1zlESIdy1eQm2DrlnUi2U3iEUD838lM9g884K8TrOiIGyaRoofkxUIMCdw/ZIcDG6yuVf9Y30J6la9OyVBYxboJBhcSgIwh52lT+0eqRjcFgyVJfDVRF4CkEBoYdCBO6RtN1nJiJABMhos9iQCxHrMvMJCMZAMZohONeL9E5uqHif98zj86YQpE0A6AMYnJGub3jwSecSEpnNwEvZg62ERCKgyJ2kAMRqUZqusmKJRS0ZDmvpJgUTSu+mN6aqjDpLnuIQbEw0J6NAk3HLE2bpiBUDp4kYG8wZmUtFAmLuJMNshOdRPEIC49Mj1twg85iqsKlwoUCdUQyJUNOgPn4hNKOcoRObQUDQJw2cdIRSqL3dShZRqwAEF20iIGLMn9/jEFN0woTDuAQTTdkAay1a4PER3ZQGS3Bj2d7zIk4llS9KhF5NTJfKkzWEEZMgAMrgueSemlncpYkhRShgHDkmm61PNKtL3PV8SaIEMeIclzuaGnYSJZD0jmEIX+AxFtEcrJDGbAhtPJxAbHAwIHHmO9Cx4rMjW0YNl2Wr0tTiVOH+igUtxY1pGS1CMPImNNBlAT0LWKPUPq2Fc9qpMi3RKm7eFjSQYAAFfJB306teD8JirQFAGVDtiUJAx28KZn/oNsDhnRW0gkBG6Cs6TUo4oMy5iTfDLFIUj5yVhLcimrHeysrEnKTcAYypLc87Wdtev60vOefrYnrjZcyB/VRRwc3GuQgywAA5RzUUk+J5FCcM4/YECyCXlgBnGJLnEGyQB66mQBq7usawMCADs="]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"/9VSEYcazD7rqez/T6g4eBhsNpUjzsJJzblbIvYxicYAy8WwhFqhVagFbeSi/ljtI+lRvrNPcpI893CnQi1aCw=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t5pwC1ml47SNtyWnaSHnUxtMAtu5HpCDNKfKEzdbFdsER51vDzrVulBA8SH8iMuXST1POkV2NsCmP0NNbrcOCA=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RmVo8g/pbMNZjh7dcQ4XbHkC/C/BvPEYP5lNdfrF3fH86XtiF9pz7PL8BB8z8i9e+GGx/K9xjlsDJMMZMLo2CQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"SetAvatar","args":["data:image/gif;base64,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"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rtBuxL2QOvjY7lTJwgVBQvZI1dwTw77DV1QTAICBUU9TULPfJUzEF/LOBf8eYIMJq6J+WXNQwAVeuBvv0C/7CA=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":[" Hokage-in-training | Shadow Clone Master | Ramen Lover"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cpphPuY/eYiaOTk6EgMIBpgj8L/pAogq6NqCKhdp9J6qQGw+I5mca7Zg60O9qL0QjubdJJUkS6H8nNXupeaWBg=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Hokage-in-training 🍥 | Shadow Clone Master | Ramen Lover 🍜 zzz"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p6sBSVrZ7RLLhSZ+stkYi23+PVMfJrE/kghsG9e0vYGtsp6oS04jGN8mjBHHVeGoYTQIVo7oE1ad3kmT0ihRAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Hokage-in-training 🍥 | Shadow Clone Master | Ramen Lover 🍜 zzz"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p6sBSVrZ7RLLhSZ+stkYi23+PVMfJrE/kghsG9e0vYGtsp6oS04jGN8mjBHHVeGoYTQIVo7oE1ad3kmT0ihRAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Hokage-in-training 🍥 | Shadow Clone Master | Ramen Lover 🍜 zzz"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"p6sBSVrZ7RLLhSZ+stkYi23+PVMfJrE/kghsG9e0vYGtsp6oS04jGN8mjBHHVeGoYTQIVo7oE1ad3kmT0ihRAQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Hokage-in-training 🍥 | Shadow Clone Master | Ramen Lover 🍜"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rfIsYgV600b/Iqsv0SSFbGYWBjnJKOv/vqeaVe/yXwC14KuIUrhMhUZKa1/2tlIgncU2k0drYbHnmwbvgrn5BQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["Hokage-in-training 🍥 | Shadow Clone Master | Ramen Lover 🍜"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rfIsYgV600b/Iqsv0SSFbGYWBjnJKOv/vqeaVe/yXwC14KuIUrhMhUZKa1/2tlIgncU2k0drYbHnmwbvgrn5BQ=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/postit/v1","func":"UpdateBio","args":["🍥 Hokage-in-training | Master of the Shadow Clone Jutsu | Ramen Lover 🍜"]}],"fee":{"gas_wanted":"8000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"tEzgf3LI1+pwYgOqOx0Q1j90/3N3+kiTOj+JqIgjjwyviFecrW8wM59vMgDbZe5+GfMZ7TFmMOP44+Q3RAXVDw=="}],"memo":"setAvatar"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1tmmkgs6kcs66j9cewsq92sr03a058rcp5u00lq","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000006"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"2ndO/VPq4GMbkBqB4Y6TBUWqtpYI97GhRWa6Z4/tNeh4QnrWMqHhRU3IOaR4RSrQ83MZelZGWKjPHUo2mUoEAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1trz9hx96mgucjh8n9ahjmeymxss9u3nfj76jza","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"utepmArHSbjJHhsb8mTrgUwyJbNU/1I4VvwAXluWxG5iKMGUoV4sKSSfoPvFJyNyTFMlEnwsOB2d5j3LHC2aDg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1u5svs9gnr3s24vf22ff4uy0u35uh4gtg3c33s8","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","nemanya","https://github.com/Nemanya8"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ldtOtQvBHtEeAO/1NPHYZ5R7U1yxlcRKxJNk/0sc/YierxrJY9NW2HEOGFY85C0B0vsb8SylrHIv4ZINdRvuBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jJY5ZDKuwuiPnHXMyhwxSjGNLSIbZrZ3T8vxLjBHxByq+yc6INrwK7wK+Ssr2FlazdP1pSGrYMlLrvN5R8qwCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jJY5ZDKuwuiPnHXMyhwxSjGNLSIbZrZ3T8vxLjBHxByq+yc6INrwK7wK+Ssr2FlazdP1pSGrYMlLrvN5R8qwCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jJY5ZDKuwuiPnHXMyhwxSjGNLSIbZrZ3T8vxLjBHxByq+yc6INrwK7wK+Ssr2FlazdP1pSGrYMlLrvN5R8qwCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jJY5ZDKuwuiPnHXMyhwxSjGNLSIbZrZ3T8vxLjBHxByq+yc6INrwK7wK+Ssr2FlazdP1pSGrYMlLrvN5R8qwCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["0","true","I like this dao",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ySoFhi9Q4Jg2pApgrKr3NkbhW+vU8px1oMZzRvExxT2t0z2SFB3m3FpUbnMCsUkLXMB/18LMmhjzr/WGaxc/CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["1","true","I like this dao",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"5N9yc2zInBHVhryf59oebmt0YI0fNXn2h/x4qUj8gTrinzqBjeu786K5vvBAgaoech68X0R+Mp8NW4hWnxtBAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["2","true","I like this dao",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ZXHlsPLUKwBDnbTFQkoAmA5zXK7UPtQog+AcEaUJvOotADQLJ6m7MK8XU3Y7FZqKJWPUAs5DrXei/7FHqqRxBA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","true","I like this dao",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"dxpFGmmxlrHkeCYE536fbiooKJ0Pta9q/DU9uqXnuvcibw/uuobFcGEilWLE8zEvjLTxU0RGqEweRXf8vBCqDA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev0","func":"Vote","args":["3","true","good by me",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0p+2VVAJM7BD/uHSFxfzq0LaCWaimh/6ZxwzIGk7xpUoSytaYk6ZnKTjPRdUGLlSMEvbtgEZfGMpA5e8dIi8CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"GetState","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"KPgLcH/5im+/fTw6YVSHHHdrNakKkum+/GHncd3lECGqXilUXZWHUWSCPiT5Qf1u1GoSWsQ5JehyPbh7Ikm7CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["0","true","I say yes, we need this dao!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EYhQzV+oyBoNolg2gmoCQuelb4tyKmvS5hYrpas0ugw7ATVJ9Do/YoIv0N74zH1GJUuZ+ujEEv4Rj83COqRRAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["0","true","I say yes, we need this dao!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EYhQzV+oyBoNolg2gmoCQuelb4tyKmvS5hYrpas0ugw7ATVJ9Do/YoIv0N74zH1GJUuZ+ujEEv4Rj83COqRRAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["1","true","I say yes, we need this dao!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"yjBTVQdpMfDHAZVSLvhmVEa0XYdyJyYOQhLiQdJwN98ksQAiugQrxVOP+jL+LRVqWoUDRMh2Ve7zhe4LqeolCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","true","good",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"U+KEgGLf+doP0TpHahkV+VveGWSCjJgMvVgASg84cAEo6HuvKNZ3LajXbQnBYB/0PZcK3NZiHaByH6LrNPfgBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","true","looks good",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A9y+nIg+zMMeHaAbEZEQrQrVAGuKUOzD1jgSJbJPxxWJPTNkYBDKVEGFKTIPg6Yl0+x7m8og+5FJglDeoC8mDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","false","true",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HDtMPsf8NsKINcHHdpKPc9qL8AY+hwrAYknrR+y3O6F4604SqGpaVAJtL/whh8BmND8ChdC6Bfn4rA9er561Cg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["2","false","true","For some reason "]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6/szWXGljyuyGYkP2VltI3p/l7YSYwxJf9DGpktDlncmD2DTZ2+i0YjZJpuxP9xXgLUn7QZeXtMmw08YGeuFAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["2","false","true","For some reason "]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6/szWXGljyuyGYkP2VltI3p/l7YSYwxJf9DGpktDlncmD2DTZ2+i0YjZJpuxP9xXgLUn7QZeXtMmw08YGeuFAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre2","func":"Vote","args":["3","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LRJ188h2SfpqxTfN7DMmFTNPasjZpFYi9NuQTySmLsE0x+Yk+uvWMXsyd68hMMcll2eYPrsVT/iAS7LK/ZwWAQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"NnBsut9uSaRBkhglmso7Ak7HEqqdPfpprqEUAuTIn2d2AHZhoR3XUb/plIq8crs47rtBvpEd6/MpEV7KER4pCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetInitialDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6223wBN8DKtKz2BVaKoAw00PsaxPj4LnhbZ4RVnje4muqwBgCgXgmiulUHg4nKqJec82I47Gs3skn4aNRkRQDg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"Vote","args":["1","true",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8b90DicTr39HJetZwPtGlSWS0naXYuiWi/qm1vsTXj4JWPQXs8WvjTpcWhE3q0xImnz561Tl1H8JUM2A8Z+9Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1714758984"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DrWxhdrz38apct+9Tea/ZBRvzZCD6ZSPOh+z22xc6Uz0hoYYr23WdEtutOatiJtj5NDMgoXRY6xGIX6NbgKoBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"98wjQ6cOHYByuHoGSyM+scyXecspGzwqbG7IK03Cy8cTn4u2e53ObXoTbQDl5S2gaDkRjfBRdhc1YEocPv97Cw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"acKS02j5lRcE/7E2veJ6+uKQfA9fibpC97eKVyTkh4Hd0J4XbDf7nqatYExuhXY+18Pr5nCZuLT3osdVIyuaAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1urt7pdmwg2m6z3rsgu4e8peppm4027fvpwkmj8","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"acKS02j5lRcE/7E2veJ6+uKQfA9fibpC97eKVyTkh4Hd0J4XbDf7nqatYExuhXY+18Pr5nCZuLT3osdVIyuaAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateBoard","args":["testboard"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9KcsWhM+Ycvgb2pGqCx3ue0HEwhrINxv80PvfJ7f2HkKLiaDFNlmKPhN1eDqX7J0dKQTS3QMEC4me2miHbz5CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateBoard","args":["testboard"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9KcsWhM+Ycvgb2pGqCx3ue0HEwhrINxv80PvfJ7f2HkKLiaDFNlmKPhN1eDqX7J0dKQTS3QMEC4me2miHbz5CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateBoard","args":["testboard"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9KcsWhM+Ycvgb2pGqCx3ue0HEwhrINxv80PvfJ7f2HkKLiaDFNlmKPhN1eDqX7J0dKQTS3QMEC4me2miHbz5CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateBoard","args":["testboard"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9KcsWhM+Ycvgb2pGqCx3ue0HEwhrINxv80PvfJ7f2HkKLiaDFNlmKPhN1eDqX7J0dKQTS3QMEC4me2miHbz5CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Hello World","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm \nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n## Starting the `gnoland` node node/validator.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### build gnoland.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake \n```\n\n### add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mnemonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### start gnoland validator node.\n\n```bash\n./build/gnoland\n```\n\n(This can be reset with `make reset`).\n\n### start gnoland web server (optional).\n\n```bash\ngo run ./gnoland/website\n```\n\n## Signing and broadcasting transactions.\n\n### publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 2000000 \u003e addpkg.avl.unsigned.txt\n./build/gnokey query \"auth/accounts/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n./build/gnokey sign test1 --txpath addpkg.avl.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 0 \u003e addpkg.avl.signed.txt\n./build/gnokey broadcast addpkg.avl.signed.txt --remote localhost:26657\n```\n\n### publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 300000000 \u003e addpkg.boards.unsigned.txt\n./build/gnokey sign test1 --txpath addpkg.boards.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 1 \u003e addpkg.boards.signed.txt\n./build/gnokey broadcast addpkg.boards.signed.txt --remote localhost:26657\n```\n\n### create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateBoard --args \"testboard\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createboard.unsigned.txt\n./build/gnokey sign test1 --txpath createboard.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 2 \u003e createboard.signed.txt\n./build/gnokey broadcast createboard.signed.txt --remote localhost:26657\n```\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"testboard\\\")\"\n```\n\n### create a post of a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreatePost --args 1 --args \"Hello World\" --args#file \"./examples/gno.land/r/demo/boards/README.md\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createpost.unsigned.txt\n./build/gnokey sign test1 --txpath createpost.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 3 \u003e createpost.signed.txt\n./build/gnokey broadcast createpost.signed.txt --remote localhost:26657\n```\n\n### create a comment to a post.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateReply --args 1 --args 1 --args \"A comment\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createcomment.unsigned.txt\n./build/gnokey sign test1 --txpath createcomment.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 4 \u003e createcomment.signed.txt\n./build/gnokey broadcast createcomment.signed.txt --remote localhost:26657\n```\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard/1\"\n```\n\n### render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:testboard` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard\"\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TCEjYNQvYzpUwRrvoVMLtqpBPE/Deb5OFOVUF20jj81Gmcw4UENZjkEaxUktpnvagFNkr/901quj6IUZiOmpBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Hello World","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm \nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n## Starting the `gnoland` node node/validator.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### build gnoland.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake \n```\n\n### add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mnemonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### start gnoland validator node.\n\n```bash\n./build/gnoland\n```\n\n(This can be reset with `make reset`).\n\n### start gnoland web server (optional).\n\n```bash\ngo run ./gnoland/website\n```\n\n## Signing and broadcasting transactions.\n\n### publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 2000000 \u003e addpkg.avl.unsigned.txt\n./build/gnokey query \"auth/accounts/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n./build/gnokey sign test1 --txpath addpkg.avl.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 0 \u003e addpkg.avl.signed.txt\n./build/gnokey broadcast addpkg.avl.signed.txt --remote localhost:26657\n```\n\n### publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 300000000 \u003e addpkg.boards.unsigned.txt\n./build/gnokey sign test1 --txpath addpkg.boards.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 1 \u003e addpkg.boards.signed.txt\n./build/gnokey broadcast addpkg.boards.signed.txt --remote localhost:26657\n```\n\n### create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateBoard --args \"testboard\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createboard.unsigned.txt\n./build/gnokey sign test1 --txpath createboard.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 2 \u003e createboard.signed.txt\n./build/gnokey broadcast createboard.signed.txt --remote localhost:26657\n```\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"testboard\\\")\"\n```\n\n### create a post of a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreatePost --args 1 --args \"Hello World\" --args#file \"./examples/gno.land/r/demo/boards/README.md\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createpost.unsigned.txt\n./build/gnokey sign test1 --txpath createpost.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 3 \u003e createpost.signed.txt\n./build/gnokey broadcast createpost.signed.txt --remote localhost:26657\n```\n\n### create a comment to a post.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateReply --args 1 --args 1 --args \"A comment\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createcomment.unsigned.txt\n./build/gnokey sign test1 --txpath createcomment.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 4 \u003e createcomment.signed.txt\n./build/gnokey broadcast createcomment.signed.txt --remote localhost:26657\n```\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard/1\"\n```\n\n### render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:testboard` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard\"\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TCEjYNQvYzpUwRrvoVMLtqpBPE/Deb5OFOVUF20jj81Gmcw4UENZjkEaxUktpnvagFNkr/901quj6IUZiOmpBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Hello World","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm \nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n## Starting the `gnoland` node node/validator.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### build gnoland.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake \n```\n\n### add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mnemonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### start gnoland validator node.\n\n```bash\n./build/gnoland\n```\n\n(This can be reset with `make reset`).\n\n### start gnoland web server (optional).\n\n```bash\ngo run ./gnoland/website\n```\n\n## Signing and broadcasting transactions.\n\n### publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 2000000 \u003e addpkg.avl.unsigned.txt\n./build/gnokey query \"auth/accounts/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n./build/gnokey sign test1 --txpath addpkg.avl.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 0 \u003e addpkg.avl.signed.txt\n./build/gnokey broadcast addpkg.avl.signed.txt --remote localhost:26657\n```\n\n### publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 300000000 \u003e addpkg.boards.unsigned.txt\n./build/gnokey sign test1 --txpath addpkg.boards.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 1 \u003e addpkg.boards.signed.txt\n./build/gnokey broadcast addpkg.boards.signed.txt --remote localhost:26657\n```\n\n### create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateBoard --args \"testboard\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createboard.unsigned.txt\n./build/gnokey sign test1 --txpath createboard.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 2 \u003e createboard.signed.txt\n./build/gnokey broadcast createboard.signed.txt --remote localhost:26657\n```\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"testboard\\\")\"\n```\n\n### create a post of a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreatePost --args 1 --args \"Hello World\" --args#file \"./examples/gno.land/r/demo/boards/README.md\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createpost.unsigned.txt\n./build/gnokey sign test1 --txpath createpost.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 3 \u003e createpost.signed.txt\n./build/gnokey broadcast createpost.signed.txt --remote localhost:26657\n```\n\n### create a comment to a post.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateReply --args 1 --args 1 --args \"A comment\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createcomment.unsigned.txt\n./build/gnokey sign test1 --txpath createcomment.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 4 \u003e createcomment.signed.txt\n./build/gnokey broadcast createcomment.signed.txt --remote localhost:26657\n```\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard/1\"\n```\n\n### render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:testboard` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard\"\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TCEjYNQvYzpUwRrvoVMLtqpBPE/Deb5OFOVUF20jj81Gmcw4UENZjkEaxUktpnvagFNkr/901quj6IUZiOmpBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Hello World","This is a demo of Gno smart contract programming. This document was\nconstructed by Gno onto a smart contract hosted on the data Realm \nname [\"gno.land/r/demo/boards\"](https://gno.land/r/demo/boards/)\n([github](https://github.com/gnolang/gno/tree/master/examples/gno.land/r/demo/boards)).\n\n## Starting the `gnoland` node node/validator.\n\nNOTE: Where you see `--remote localhost:26657` here, that flag can be replaced\nwith `--remote localhost:26657` for local testnets.\n\n### build gnoland.\n\n```bash\ngit clone git@github.com:gnolang/gno.git\ncd ./gno\nmake \n```\n\n### add test account.\n\n```bash\n./build/gnokey add test1 --recover\n```\n\nUse this mnemonic:\n\u003e source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast\n\n### start gnoland validator node.\n\n```bash\n./build/gnoland\n```\n\n(This can be reset with `make reset`).\n\n### start gnoland web server (optional).\n\n```bash\ngo run ./gnoland/website\n```\n\n## Signing and broadcasting transactions.\n\n### publish the \"gno.land/p/demo/avl\" package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/p/demo/avl\" --pkgdir \"examples/gno.land/p/demo/avl\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 2000000 \u003e addpkg.avl.unsigned.txt\n./build/gnokey query \"auth/accounts/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5\"\n./build/gnokey sign test1 --txpath addpkg.avl.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 0 \u003e addpkg.avl.signed.txt\n./build/gnokey broadcast addpkg.avl.signed.txt --remote localhost:26657\n```\n\n### publish the \"gno.land/r/demo/boards\" realm package.\n\n```bash\n./build/gnokey maketx addpkg test1 --pkgpath \"gno.land/r/demo/boards\" --pkgdir \"examples/gno.land/r/demo/boards\" --deposit 100ugnot --gas-fee 1ugnot --gas-wanted 300000000 \u003e addpkg.boards.unsigned.txt\n./build/gnokey sign test1 --txpath addpkg.boards.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 1 \u003e addpkg.boards.signed.txt\n./build/gnokey broadcast addpkg.boards.signed.txt --remote localhost:26657\n```\n\n### create a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateBoard --args \"testboard\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createboard.unsigned.txt\n./build/gnokey sign test1 --txpath createboard.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 2 \u003e createboard.signed.txt\n./build/gnokey broadcast createboard.signed.txt --remote localhost:26657\n```\nNext, query for the permanent board ID by querying (you need this to create a new post):\n\n```bash\n./build/gnokey query \"vm/qeval\" --data \"gno.land/r/demo/boards.GetBoardIDFromName(\\\"testboard\\\")\"\n```\n\n### create a post of a board with a smart contract call.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreatePost --args 1 --args \"Hello World\" --args#file \"./examples/gno.land/r/demo/boards/README.md\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createpost.unsigned.txt\n./build/gnokey sign test1 --txpath createpost.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 3 \u003e createpost.signed.txt\n./build/gnokey broadcast createpost.signed.txt --remote localhost:26657\n```\n\n### create a comment to a post.\n\n```bash\n./build/gnokey maketx call test1 --pkgpath \"gno.land/r/demo/boards\" --func CreateReply --args 1 --args 1 --args \"A comment\" --gas-fee 1ugnot --gas-wanted 2000000 \u003e createcomment.unsigned.txt\n./build/gnokey sign test1 --txpath createcomment.unsigned.txt --chainid \"portal-loop\" --number 0 --sequence 4 \u003e createcomment.signed.txt\n./build/gnokey broadcast createcomment.signed.txt --remote localhost:26657\n```\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard/1\"\n```\n\n### render page with optional path expression.\n\nThe contents of `https://gno.land/r/demo/boards:` and `https://gno.land/r/demo/boards:testboard` are rendered by calling\nthe `Render(path string)` function like so:\n\n```bash\n./build/gnokey query \"vm/qrender\" --data \"gno.land/r/demo/boards:testboard\"\n```\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TCEjYNQvYzpUwRrvoVMLtqpBPE/Deb5OFOVUF20jj81Gmcw4UENZjkEaxUktpnvagFNkr/901quj6IUZiOmpBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","NFT example","NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n - [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n - [gno.land/r/demo/nft/nft.gno](https://gno.land/r/demo/nft/nft.gno)\n - [zrealm_nft3.gno test](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/demo/nft/z_3_filetest.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:testboard/1)).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DjrHOvNLsYcoQwfCTEaX0f79Xnk3Ex0qJdaZKcQQbo9wq8o6Ni2V1O51iBJ0rTxQjQzJRho3mC09sDoItH38AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","NFT example","NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n - [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n - [gno.land/r/demo/nft/nft.gno](https://gno.land/r/demo/nft/nft.gno)\n - [zrealm_nft3.gno test](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/demo/nft/z_3_filetest.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:testboard/1)).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DjrHOvNLsYcoQwfCTEaX0f79Xnk3Ex0qJdaZKcQQbo9wq8o6Ni2V1O51iBJ0rTxQjQzJRho3mC09sDoItH38AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","NFT example","NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n - [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n - [gno.land/r/demo/nft/nft.gno](https://gno.land/r/demo/nft/nft.gno)\n - [zrealm_nft3.gno test](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/demo/nft/z_3_filetest.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:testboard/1)).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DjrHOvNLsYcoQwfCTEaX0f79Xnk3Ex0qJdaZKcQQbo9wq8o6Ni2V1O51iBJ0rTxQjQzJRho3mC09sDoItH38AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","NFT example","NFT's are all the rage these days, for various reasons.\n\nI read over EIP-721 which appears to be the de-facto NFT standard on Ethereum. Then, made a sample implementation of EIP-721 (let's here called GRC-721). The implementation isn't complete, but it demonstrates the main functionality.\n\n - [EIP-721](https://eips.ethereum.org/EIPS/eip-721)\n - [gno.land/r/demo/nft/nft.gno](https://gno.land/r/demo/nft/nft.gno)\n - [zrealm_nft3.gno test](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/demo/nft/z_3_filetest.gno)\n\nIn short, this demonstrates how to implement Ethereum contract interfaces in gno.land; by using only standard Go language features.\n\nPlease leave a comment ([guide](https://gno.land/r/demo/boards:testboard/1)).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"DjrHOvNLsYcoQwfCTEaX0f79Xnk3Ex0qJdaZKcQQbo9wq8o6Ni2V1O51iBJ0rTxQjQzJRho3mC09sDoItH38AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Simple echo example with coins","This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.gno](/r/demo/banktest/banktest.gno) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n\t\"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e\nSelf explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime std.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tstd.FormatTimestamp(act.time, \"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract.\nNotice that the \"latest\" variable is defined \"globally\" within\nthe context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package\nare encapsulated within this \"data realm\", where the data is \nmutated based on transactions that can potentially cross many\nrealm and non-realm packge boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named\n\"Deposit\". `std.AssertOriginCall() asserts that this function was called by a\ngno transactional Message. The caller is the user who signed off on this\ntransactional message. Send is the amount of deposit sent along with this\nmessage.\n\n```go\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: std.GetTimestamp(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n\t// return if any.\n\tif returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:testboard/4).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hxpBYr9WRnW23QtsggJERf2SSWfdkXIhMvycbWqU4HRSM5oHlKJkPXoOKBloZCl3gPCHfdDWO823+uysAGdUAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Simple echo example with coins","This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.gno](/r/demo/banktest/banktest.gno) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n\t\"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e\nSelf explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime std.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tstd.FormatTimestamp(act.time, \"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract.\nNotice that the \"latest\" variable is defined \"globally\" within\nthe context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package\nare encapsulated within this \"data realm\", where the data is \nmutated based on transactions that can potentially cross many\nrealm and non-realm packge boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named\n\"Deposit\". `std.AssertOriginCall() asserts that this function was called by a\ngno transactional Message. The caller is the user who signed off on this\ntransactional message. Send is the amount of deposit sent along with this\nmessage.\n\n```go\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: std.GetTimestamp(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n\t// return if any.\n\tif returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:testboard/4).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hxpBYr9WRnW23QtsggJERf2SSWfdkXIhMvycbWqU4HRSM5oHlKJkPXoOKBloZCl3gPCHfdDWO823+uysAGdUAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Simple echo example with coins","This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.gno](/r/demo/banktest/banktest.gno) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n\t\"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e\nSelf explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime std.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tstd.FormatTimestamp(act.time, \"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract.\nNotice that the \"latest\" variable is defined \"globally\" within\nthe context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package\nare encapsulated within this \"data realm\", where the data is \nmutated based on transactions that can potentially cross many\nrealm and non-realm packge boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named\n\"Deposit\". `std.AssertOriginCall() asserts that this function was called by a\ngno transactional Message. The caller is the user who signed off on this\ntransactional message. Send is the amount of deposit sent along with this\nmessage.\n\n```go\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: std.GetTimestamp(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n\t// return if any.\n\tif returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:testboard/4).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hxpBYr9WRnW23QtsggJERf2SSWfdkXIhMvycbWqU4HRSM5oHlKJkPXoOKBloZCl3gPCHfdDWO823+uysAGdUAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","Simple echo example with coins","This is a simple test realm contract that demonstrates how to use the banker.\n\nSee [gno.land/r/demo/banktest/banktest.gno](/r/demo/banktest/banktest.gno) to see the original contract code.\n\nThis article will go through each line to explain how it works.\n\n```go\npackage banktest\n```\n\nThis package is locally named \"banktest\" (could be anything).\n\n```go\nimport (\n\t\"std\"\n)\n```\n\nThe \"std\" package is defined by the gno code in stdlibs/std/. \u003c/br\u003e\nSelf explanatory; and you'll see more usage from std later.\n\n```go\ntype activity struct {\n\tcaller std.Address\n\tsent std.Coins\n\treturned std.Coins\n\ttime std.Time\n}\n\nfunc (act *activity) String() string {\n\treturn act.caller.String() + \" \" +\n\t\tact.sent.String() + \" sent, \" +\n\t\tact.returned.String() + \" returned, at \" +\n\t\tstd.FormatTimestamp(act.time, \"2006-01-02 3:04pm MST\")\n}\n\nvar latest [10]*activity\n```\n\nThis is just maintaining a list of recent activity to this contract.\nNotice that the \"latest\" variable is defined \"globally\" within\nthe context of the realm with path \"gno.land/r/demo/banktest\".\n\nThis means that calls to functions defined within this package\nare encapsulated within this \"data realm\", where the data is \nmutated based on transactions that can potentially cross many\nrealm and non-realm packge boundaries (in the call stack).\n\n```go\n// Deposit will take the coins (to the realm's pkgaddr) or return them to user.\nfunc Deposit(returnDenom string, returnAmount int64) string {\n\tstd.AssertOriginCall()\n\tcaller := std.GetOrigCaller()\n\tsend := std.Coins{{returnDenom, returnAmount}}\n```\n\nThis is the beginning of the definition of the contract function named\n\"Deposit\". `std.AssertOriginCall() asserts that this function was called by a\ngno transactional Message. The caller is the user who signed off on this\ntransactional message. Send is the amount of deposit sent along with this\nmessage.\n\n```go\n\t// record activity\n\tact := \u0026activity{\n\t\tcaller: caller,\n\t\tsent: std.GetOrigSend(),\n\t\treturned: send,\n\t\ttime: std.GetTimestamp(),\n\t}\n\tfor i := len(latest) - 2; i \u003e= 0; i-- {\n\t\tlatest[i+1] = latest[i] // shift by +1.\n\t}\n\tlatest[0] = act\n```\n\nUpdating the \"latest\" array for viewing at gno.land/r/demo/banktest: (w/ trailing colon).\n\n```go\n\t// return if any.\n\tif returnAmount \u003e 0 {\n```\n\nIf the user requested the return of coins...\n\n```go\n\t\tbanker := std.GetBanker(std.BankerTypeOrigSend)\n```\n\nuse a std.Banker instance to return any deposited coins to the original sender.\n\n```go\n\t\tpkgaddr := std.GetOrigPkgAddr()\n\t\t// TODO: use std.Coins constructors, this isn't generally safe.\n\t\tbanker.SendCoins(pkgaddr, caller, send)\n\t\treturn \"returned!\"\n```\n\nNotice that each realm package has an associated Cosmos address.\n\n\nFinally, the results are rendered via an ABCI query call when you visit [/r/demo/banktest:](/r/demo/banktest:).\n\n```go\nfunc Render(path string) string {\n\t// get realm coins.\n\tbanker := std.GetBanker(std.BankerTypeReadonly)\n\tcoins := banker.GetCoins(std.GetOrigPkgAddr())\n\n\t// render\n\tres := \"\"\n\tres += \"## recent activity\\n\"\n\tres += \"\\n\"\n\tfor _, act := range latest {\n\t\tif act == nil {\n\t\t\tbreak\n\t\t}\n\t\tres += \" * \" + act.String() + \"\\n\"\n\t}\n\tres += \"\\n\"\n\tres += \"## total deposits\\n\"\n\tres += coins.String()\n\treturn res\n}\n```\n\nYou can call this contract yourself, by vistiing [/r/demo/banktest](/r/demo/banktest) and the [quickstart guide](/r/demo/boards:testboard/4).\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hxpBYr9WRnW23QtsggJERf2SSWfdkXIhMvycbWqU4HRSM5oHlKJkPXoOKBloZCl3gPCHfdDWO823+uysAGdUAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","TASK: Describe in your words","Describe in an essay (250+ words), on your favorite medium, why you are interested in gno.land and gnolang.\n\nReply here with a URL link to your written piece as a comment, for rewards.\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zV5kb9kFrpU3cf77rjruF6+gjSBBPxOl8X/sEGcXD9/Sphq8ajYb04A4LfDAezuvCZb6FUROaL0uuEl3/hQABw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","TASK: Describe in your words","Describe in an essay (250+ words), on your favorite medium, why you are interested in gno.land and gnolang.\n\nReply here with a URL link to your written piece as a comment, for rewards.\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zV5kb9kFrpU3cf77rjruF6+gjSBBPxOl8X/sEGcXD9/Sphq8ajYb04A4LfDAezuvCZb6FUROaL0uuEl3/hQABw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","TASK: Describe in your words","Describe in an essay (250+ words), on your favorite medium, why you are interested in gno.land and gnolang.\n\nReply here with a URL link to your written piece as a comment, for rewards.\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zV5kb9kFrpU3cf77rjruF6+gjSBBPxOl8X/sEGcXD9/Sphq8ajYb04A4LfDAezuvCZb6FUROaL0uuEl3/hQABw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"","pkg_path":"gno.land/r/demo/boards","func":"CreateThread","args":["1","TASK: Describe in your words","Describe in an essay (250+ words), on your favorite medium, why you are interested in gno.land and gnolang.\n\nReply here with a URL link to your written piece as a comment, for rewards.\n"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zV5kb9kFrpU3cf77rjruF6+gjSBBPxOl8X/sEGcXD9/Sphq8ajYb04A4LfDAezuvCZb6FUROaL0uuEl3/hQABw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","administrator","g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QP690/BbYM9d/eTh04u4ufxsOp2FQ3VFVhK+cYqTp/FCK4z83o47WYnkSi6xP4C5gWqGH2/hj+Kcord3/f9CCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","administrator","g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QP690/BbYM9d/eTh04u4ufxsOp2FQ3VFVhK+cYqTp/FCK4z83o47WYnkSi6xP4C5gWqGH2/hj+Kcord3/f9CCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","administrator","g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QP690/BbYM9d/eTh04u4ufxsOp2FQ3VFVhK+cYqTp/FCK4z83o47WYnkSi6xP4C5gWqGH2/hj+Kcord3/f9CCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","administrator","g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"QP690/BbYM9d/eTh04u4ufxsOp2FQ3VFVhK+cYqTp/FCK4z83o47WYnkSi6xP4C5gWqGH2/hj+Kcord3/f9CCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"oKJym18PdaggcjZI22N9NiJrNZ09bgdAQZOUJMDp//rDbT/Y6vVSJ22I3gUOnncWCDwnNasJkus5A/pzXY7xCw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev01","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"uqsk2uW8AlkqYL0Zkg7LpNUq4x/vm6ibS72ZsJ9nO/gp+2drPP+fv5ELJkCxTioEXKhNhmFPz4oo7Z141dG1CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Xpz1pqGfXA/W+sxKyly56hbg9RSnl+5r/QNQ/lnEy7QbDPQsZNtELpdgTrstfnMSd8srXa5JbHbhFjYoBkdpDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"CreateSubDAOAddProposal","args":["main","Create First Sub DAO (2)","Second try","first","First Sub DAO","Bybook","g1uf8u5jf2m9l80g0zsfq7tufl3qufqc4393jtkl,\ng1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5,\ng1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+ZlY1yolXJCDZnWJ9o1gQ2FosT8IWSt8P76MkghACYz1cgN0zMJYLcnv44s2S7G9VjH6ANWJvU/HXBzaFw4QAg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCbcCl0x/ybuWZqLBooMidg05lPQV6o6/3yi/mYRT5Wugf73jiDUMiZ7Ic7AC8UqFUVXNy2pt1ImLsEGaRjfDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCbcCl0x/ybuWZqLBooMidg05lPQV6o6/3yi/mYRT5Wugf73jiDUMiZ7Ic7AC8UqFUVXNy2pt1ImLsEGaRjfDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCbcCl0x/ybuWZqLBooMidg05lPQV6o6/3yi/mYRT5Wugf73jiDUMiZ7Ic7AC8UqFUVXNy2pt1ImLsEGaRjfDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["1","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"eCbcCl0x/ybuWZqLBooMidg05lPQV6o6/3yi/mYRT5Wugf73jiDUMiZ7Ic7AC8UqFUVXNy2pt1ImLsEGaRjfDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["2","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8BypJZHyl2OKQv2pY9yuDnOF7UZYs7Pw09kyWcFd7KcJ1jwkIxPuntith4kTCS9wQjJ5pUFp6J/jrqGsTW1iCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre1","func":"Vote","args":["2","true","false",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8BypJZHyl2OKQv2pY9yuDnOF7UZYs7Pw09kyWcFd7KcJ1jwkIxPuntith4kTCS9wQjJ5pUFp6J/jrqGsTW1iCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"AdvanceProposals","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"t3BUSLsTaR+odUoKt9vA5dOKynPknq0M36mO2d08BDacpAgQB+lATJ5uvlxQsB1IYO07mw+kHckPhOGz4Xu/Dg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre4","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FFZv7LeqFssWosAYouCHEYmPLAMi+mHHWLig3ZWC8fQHCXodfduRGIrERNNnOP4+fqYr9CN6LBjQbjeG50/0DQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"SubmitGeneralProposal","args":["Documentation DAO","Congratulate the DevX team for their excellent work.","See Title","1"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F3q4IVpi9bPN6ngjKflHMQwu0akWfxrVSZfBi1yK8wf16gTUmccwO+r4mJ6nBRx4Xc097gkZqWpQHoRSuRG5Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["1","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4ak3CWimrWmMKvb3jVLLRXBj/ckXcigKyert0FvOnv2iFdxyrde43o8Znnx6Qm9xUqeErhakhAOKMs5TkxcLBQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","false","testing \"no\"",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PjHfK/DmNVWVlHcH16yiVrPJykIQnJDioyCcnTpAJdXH7dwTvEJsAmiz4O38C1w6IgOZoik/atN1XbxTZl9zDQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["3","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bXrb5XeekzG2tBpyzlURA4cGYoMV6qCR7WbTqSZtl2Onz09s28dy0eDExQnM25eUaFi3ibjUSXZ3GOR9Mi45CA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetFinalDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"s8ZMTBlu5XtLtPJsKaLXRv+PS4OOXHOJ29Ei8/GBXDScXw54JWQvd0f+v4lk7JvFNYWNfKZWNyrfTJpeJwVeBw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetInitialDAOStateHash","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"n3vnHjqJMEhTMrLE8W3j8nHjDiU8cZ2e2zj/v/W//PxSf1YZhQWL+wu421yewhm196olDPj6/y/puNTR76ayCg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vlqqt6wsvd8kcgxp2nt63zku4ps3ldh2xmxf4h","send":"","pkg_path":"gno.land/r/gnome/dao/v1pre3","func":"GetState","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+PN0q2RGuBig7fhHKxVdYDA8h6oAWNWHb2xiLIdLYR+3Wn0aMw6NlxAvQ9izsxbKn7WjaUSTpMfYLL7ESsfJAA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/demo/counter","func":"Decrement","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"LtPPVzOMDRHNiMERBv03WuonnfL0L56+ktHSQvsBmqRMhxjUztZ4Xnb4yI87qtfXTunr5jzfhI8HeDNlqXwVAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/demo/userbook","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F20xrRZEmD0KGxZc9pkpxbB/RKr59tkyQeljWjkBH3ur9TsUIcr8fMoekkiwTSo5KfXwwHRzseSMTE+unIeXBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/demo/userbook","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F20xrRZEmD0KGxZc9pkpxbB/RKr59tkyQeljWjkBH3ur9TsUIcr8fMoekkiwTSo5KfXwwHRzseSMTE+unIeXBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/demo/userbook","func":"Render","args":[""]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"F20xrRZEmD0KGxZc9pkpxbB/RKr59tkyQeljWjkBH3ur9TsUIcr8fMoekkiwTSo5KfXwwHRzseSMTE+unIeXBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/test/counter","func":"Increment","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AV37LOFExThAeX7jcuhFvZ3mOFb+HXxeQsAYbv1dl65MEXKYn8gK5OfNYg99pfRH8d15jK2wM6r6BwTYI1hwDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/test/counter","func":"Increment","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"AV37LOFExThAeX7jcuhFvZ3mOFb+HXxeQsAYbv1dl65MEXKYn8gK5OfNYg99pfRH8d15jK2wM6r6BwTYI1hwDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/test/counter","func":"Render","args":["ggg"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TaLXNzL1313pH0NsaFsdaCJ0pFwWq7TItCOAAa7TvnE9Uris1yBszFY4umIN9eYPQNFeT0j9rjYSBXdpNLLqBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/test/counter","func":"Render","args":["ggg"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"TaLXNzL1313pH0NsaFsdaCJ0pFwWq7TItCOAAa7TvnE9Uris1yBszFY4umIN9eYPQNFeT0j9rjYSBXdpNLLqBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1vsc4t7d8l8arttauup093njj8qc0eukm6ng8ke","send":"","pkg_path":"gno.land/r/test/hello","func":"Render","args":["sasdasdasdasdasdasd"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vbZeD7Yc4LTg2HLvvbZPgehshWAmuvm7d2Ra5vQcVeckqNN9KDs+9OMwNIIaoFFaDCKeChWHs9zJz1qSIfV7CA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event03","args":["HI","Hello"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"THlcV07+XIZ3c+FnI7Qsox5egXPp0p2VojSUDRJ3zW24eNeAmInWTQl/SXOxeX/irHBTI1ib6lzthQqnRflmCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event01","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event02","args":["HI","Hello"]},{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"","pkg_path":"gno.land/r/demo/event_emitter","func":"Event03","args":["HI","Hello"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"THlcV07+XIZ3c+FnI7Qsox5egXPp0p2VojSUDRJ3zW24eNeAmInWTQl/SXOxeX/irHBTI1ib6lzthQqnRflmCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","fubao",""]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"00kHFROHCE5Fhy7LSl0TxwIk4JVlYgEKscCu5fmrW8GqtPW1zLWj4XOeRTX1Eqkb+P/DOBuGOfRnufiUp7q3BA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["","super_fubao",""]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aEIeBvslL7Eb1EewBGV1+ca/BBTquXw2fkzwyrcMGyb5Ze2RkvXfR7OPIrZwOQ7X192T8NJNBRkrNyAtAo2PCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","fubao",""]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"StZsvprJTWl+EVd97fARDrx2V21nR0fwfdgigiukofgcfwWCpMwCC5kx55pSfhuMa6vHM37PBaXvkc8r+QeiBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"200000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","fubao"]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kdzg4IT/eyfW3xEB/g1yhMHm0CiPJd0otO/KZK4hQtFaYPg0qam1OQXTrpb9Y77o2F1NVu3+r9Vv/GOEqnlVAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","send":"20000000ugnot","pkg_path":"gno.land/r/demo/users","func":"Register","args":["g1w4qqmxdk59xsh3x5hnp2z78s4ymyva8pnenfem","fubao",""]}],"fee":{"gas_wanted":"100000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Bzcnazw7p3nZqp85Wyzc7zCOTRDdtMaRs1VHeQCnD/XDSP6XbvxsxQmury3Ctq/d0Vr546IcLs/mwZv0Ow1ECA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1w62226g8hykfmtuasvz80rdf0jl6phgxsphh5v","send":"","pkg_path":"gno.land/r/demo/grc20factory","func":"NewWithAdmin","args":["test","TEST1","4","1000000000","0","g1w62226g8hykfmtuasvz80rdf0jl6phgxsphh5v"]}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"VQC4CS3xhEg2Y3FwdChkmL2U5+R7euMV74LDMYjOJ+LGFuLsL7LYi5c3IQuEP3Ym1JUDY8dIs/f2rjqqePrVBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["1","true",":+1: :+1:",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"L3VWOcSaN9MdctX+6YooOvErL8BhGCzY1b57xiGVHsXtAn6X8RNHbxNMWPyGoqqrySqnPGa8oKL6EFgVxgxlCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734360898"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["1","true",":+1:",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b/XgWsVptqlwWd8ipZq+VnwlH0FB2F0ztLNqX99umR7pF8+Pq20Sor5jDiWszNk9LnjkGu/B+z0BI4ZF5wE0DQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734360863"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["11","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jRedhVGZLuP0KN72bvop5GgOxDkNVm0iQtNZc28kkTiIEZoCL7Mj41kN4InyWUz9r5cHz3wObBujt+YKWRzLBg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734674953"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["11","true","",""]}],"fee":{"gas_wanted":"13000000","gas_fee":"1300000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"o2QncIWyLATUfYZs7eI0awPlaRc8SPc9HiW8K7UMpMjCHdhO6Nh9HNVCbPUlAZDwS+8zo6CoYZyhf+HSbGmtBQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734674993"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["4","true","It's a good plan, too.",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CGw7b0yPOZ7WqWV1zxUzLxGd4OiYMwyoTOIGo4nuMoAZy3HDovYVeYMcM2wVhvbbp2JK4SxBYO6EQ5NsYLkSBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361355"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["4","true","It's a good plan.",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"T4Vs4H3FYNYLQXlujwZkfk2IjKg2o3/EMNrBlBQGGR1O1UIHP0x4zsQN6LKHLBfQSYNMdTRmhW1kh02XwucMBw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361220"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["6","true","",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IIv2lp4GUyMuEc4Sf7JR/8necMHVpCpwGIhxN/icsIljSV19npYYIv6OzbFA6YECuK4EoOr5xbvX05KnVIiaAQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734375384"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["7","true","It's time to start publishing!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kXyhCjgBpvlf9VdOW21F6l0+ZTuE6BnVzVFlcmZ6CHAOtRLcrB2NXy4ePlGFvAiF2AT1MIexz82FdJKmAzzeAA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734453970"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/dao/v1rc1","func":"Vote","args":["9","true","It's time to start publishing!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"A+TG5uHAk9jMDi7EDEZQ4Svljio2PNKcTHkIz0hkj+u9LPBJtnJdkSqw/VTUf5DLBlfWNKNezDVxTLq/L8ySBA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734454000"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/space/v1rc1","func":"SubmitParamsUpdateProposal","args":["Lower the voting periods on Space to one day.","","","1","1","1","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cuxY+0amUj7mHKflrrcTxEkziie8gd28J3jihAKnevJVRUPPqEqBCcQswob4RYqeISczanlaehagAcq33DUYCQ=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361325"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"1000000","gas_fee":"2000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+WTtHkuIs+KyzlPgm1VL1iz0Hu+Ev5HeMVImmy8jcVvhVgZwFzDbNYvTqkN4QIVXl9g1M7bMjVSAbFEjFgR7DA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734539697"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"10000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ipvw2IkVOJxqGJA92ZjxNSNuTblTLceLroHuF2TakiKg6rxuNAAlnGCYET0BgfHTFD7XMxFBbBNc1pb3NxQrAg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734539858"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Qg8cEXR9SsfpDV+fui/Lfo6GA0wPhx8d+v3yht7YWzPAaPL5DjqjqPIiAghGqdtuLKiI0Kqz5e5JJeqHVWqAw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734573279"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Qg8cEXR9SsfpDV+fui/Lfo6GA0wPhx8d+v3yht7YWzPAaPL5DjqjqPIiAghGqdtuLKiI0Kqz5e5JJeqHVWqAw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734573440"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"8Qg8cEXR9SsfpDV+fui/Lfo6GA0wPhx8d+v3yht7YWzPAaPL5DjqjqPIiAghGqdtuLKiI0Kqz5e5JJeqHVWqAw=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734574158"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","Beginner, Moodboard","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"2000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PpV8MxoIakMaGtp474a7l2E+AW75xrt5lRF08Y7bBZgExVBnV5n/Js612ydwLkCJLeF0wDMJk263QhEODEBJCg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734539642"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"1000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cmgg9uawxPYaHNzNwxe4kcWsEKTctsLU9UvRB5hHRDHUA6Lk0t0aZbrz2iaqMxacB/PCmQXv31irMJdbU6H+Ag=="}],"memo":""},"metadata":{"timestamp":"1734619589"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"10000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"z3qLGkrkPvPrvjkTlspqLsATUMNrTkgUl6LM5kmcUvoYWcKSdeNwlv1X31CSg3vOIA3NCzcdyjYtNA0boGikAA=="}],"memo":""},"metadata":{"timestamp":"1734619855"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"11000000","gas_fee":"1100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bhRQ6KK9ozrWPpfvFkna2npoFT5E7PflSCSEo8/5BerbXo6C43WSYfAwS4I9tbi4cFrhbzZW7zNKMuEiv0YqDw=="}],"memo":""},"metadata":{"timestamp":"1734620106"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"2000000","gas_fee":"2000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1Juu0dISay3Fu/PD9O/o4QC6TwXP0cweNthJMQ1prs/1qKlHUzm1mKYGMyGht5lNNGytWW6W3ZxeWuhnKN62BA=="}],"memo":""},"metadata":{"timestamp":"1734619619"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"20000000","gas_fee":"2000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SSu7fXRnKUdDzxxswJjVUJbA3V/AkBNbRMJaL3vhH5a/Xucjgi19Pjf/Yn9iA6mGBCo8qrEzQGDLHigvkRSXDA=="}],"memo":""},"metadata":{"timestamp":"1734620192"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Add GnoMood tutorial","Proposal to add the GnoMood tutorial to the tutorials realm","how-to-create-a-mood-board-realm","How to create GnoMood, a simple mood board realm","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"3000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"bSohoFNLVxVgu9V7uQPj+aM2KrKUXdt28N1JZ5NVlhub6c2F6ZCtbk3W2IbuwjS0oKOjvgHR7+KeQ0RmB7+PBg=="}],"memo":""},"metadata":{"timestamp":"1734619659"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Smart Contract Data Management With The gno.land AVL Tree Package","Proposal to add the AVL Tree tutorial to gno.me","smart-contract-data-management-with-avl-tree","Learn how AVL trees bring balanced, efficient, and memory-conscious data operations to gno smart contracts. This tutorial walks you through understanding, creating, and using AVL trees for fast lookups, ordered traversals, and dynamic data handling.","f2bdc5cf8db8ef429685d4e43690498da1ec5a3692383ec2594abf4d85dc3f79","https://github.com/NewTendermint/gno.me/blob/kh.avl-tree-basics-tutorial/proposals/tutorials/avl-tree-basics/index.md","g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","","gnoland gno data-structures avl","false"]}],"fee":{"gas_wanted":"25000000","gas_fee":"2500000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"m604rABQptaDohakWAWJkfsWsjq5ydBeIrTSkRIqn0ZiFvZc4V8dYxu2pSjhqAJSv6HukHFC2/3RMwuxDJBzCg=="}],"memo":""},"metadata":{"timestamp":"1734676213"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["Smart Contract Data Management With The gno.land AVL Tree Package","Proposal to add the AVL Tree tutorial to gno.me","smart-contract-data-management-with-avl-tree","Learn how AVL trees bring balanced, efficient, and memory-conscious data operations to gno smart contracts. This tutorial walks you through understanding, creating, and using AVL trees for fast lookups, ordered traversals, and dynamic data handling.","f2bdc5cf8db8ef429685d4e43690498da1ec5a3692383ec2594abf4d85dc3f79","https://github.com/NewTendermint/gno.me/blob/kh.avl-tree-basics-tutorial/proposals/tutorials/avl-tree-basics/index.md","g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","","gnoland gno data-structures avl","false"]}],"fee":{"gas_wanted":"26000000","gas_fee":"2600000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ACgEgafzrh2qxlsNmQMbSM3/EYNiRYhdTqqZLwFq0qigZbTVndzMDPwg+hKt7Mxo3vh5ITVTDAfco8p48futBQ=="}],"memo":""},"metadata":{"timestamp":"1734676248"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["TEST: VOTE NO ON THIS PROPOSAL IF YOU VOTE AT ALL","TEST: VOTE NO ON THIS PROPOSAL IF YOU VOTE AT ALL","test-202412191142","TEST: VOTE NO ON THIS PROPOSAL IF YOU VOTE AT ALL","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"20000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"geXJ84blrJr6Eif/7F9IQq4WXYYSUndZKJ5fFz218xDEJgyfyRKKwrsP5fLibVmytvxZ6mwz4Ti1dipV/DffBA=="}],"memo":""},"metadata":{"timestamp":"1734637679"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitCreationProposal","args":["TEST: VOTE NO ON THIS PROPOSAL IF YOU VOTE AT ALL","TEST: VOTE NO ON THIS PROPOSAL IF YOU VOTE AT ALL","test-202412191142","TEST: VOTE NO ON THIS PROPOSAL IF YOU VOTE AT ALL","81142d85dce94522d7725015231a44c08e04588a33d3366c4d6e3a4f6bfb6b0f","https://github.com/NewTendermint/gno.me/blob/docs/mood-board/content/tutorials/how-to-create-a-mood-board-realm/index.md","g1778y2yphxs2wpuaflsy5y9qwcd4gttn4g5yjx5","g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun\ng1dnllrdzwfhxv3evyk09y48mgn5phfjvtyrlzm7","beginner dapp","false"]}],"fee":{"gas_wanted":"30000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FoPCpSXMvmiMbS5z9yc5O47uDCD5VaaGCRXdKhnW2Hb3NBN37glhATWQvl6DcBkVC1kjTlJl0SdY2IQUJJfNCA=="}],"memo":""},"metadata":{"timestamp":"1734633783"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"SubmitParamsUpdateProposal","args":["Lowering the voting periods to one day","","","","1","1","1","1","0"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WiGC8d7n7uWltxntKO8poCXVTbRBfHsj8PPAV97jFwsYNdwux2K2B2t/IkBbgxeV/fVjnsm84I3h8+/jGGUsBg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734361149"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"TutorialExists","args":["foo-bar"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7Spq3QAT+Qf1KPGtitfRchBIBJujypEVyVsnhTjbheyuGOXeUIywgI/1oi/zTlwp0HOgA3yciDwuHIAlb5zUCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734573023"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/gnome/tutorials/v1rc1","func":"TutorialExists","args":["foo-bar"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"7Spq3QAT+Qf1KPGtitfRchBIBJujypEVyVsnhTjbheyuGOXeUIywgI/1oi/zTlwp0HOgA3yciDwuHIAlb5zUCA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1734575197"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/wyhaines/doorbell","func":"Ring","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rvPcTESpHoDEWbnIjBbj90MEQPxgVCN7ePnDpdlkU354h08AHQyFq2wxeu/VYOMZ1pn15lu2s2hITdM+0NGWDg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736380293"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/wyhaines/doorbell","func":"Ring","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rvPcTESpHoDEWbnIjBbj90MEQPxgVCN7ePnDpdlkU354h08AHQyFq2wxeu/VYOMZ1pn15lu2s2hITdM+0NGWDg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736380308"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1whzkakk4hzjkvy60d5pwfk484xu67ar2cl62h2","send":"","pkg_path":"gno.land/r/wyhaines/doorbell","func":"Ring","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"rvPcTESpHoDEWbnIjBbj90MEQPxgVCN7ePnDpdlkU354h08AHQyFq2wxeu/VYOMZ1pn15lu2s2hITdM+0NGWDg=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1736380323"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1wukxq4v2v5kreh8l58mewhtaqwmpfn4cm5asf0","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4eYb5hF4bkcFSJR2qHS3yoPy/5ZJ3mpnfPDJSYT7fcYzqY3iIb8i86e6NQosXlNtRh5I1RkADdfn1O5BDixTAA=="}],"memo":""},"metadata":{"timestamp":"1732342917"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1wvjfeck8vu66v0vruj6y32v4qy9l9vjchzwzuy","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Dw9E/oNAiNQB/ol3yGdA/nc30GTXErpCuRBW0QJYokqwnZ7YdD9+9Y/rmM6CbWqneaKkhVPNPoPnQ7Pho8sNCA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1734445294"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"EaDgCOX+6uDDdZKuCf60wpAXsiGTokRdt0b1wQYoiLklEUy3ZcJgHC8mZnWLuQs4OsmKn8aPvKBFnx4uDOMqBg=="}],"memo":""},"metadata":{"timestamp":"1734445293"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000e"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HlmP8tT2WS6vRNKa95aMKuGqrLNJ4qxuq9go/3AKgij2DsNLVmWI7HUllnfvalx33L0+HNaCQB9vH7A+BZlNDA=="}],"memo":""},"metadata":{"timestamp":"1734445710"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000e"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"HlmP8tT2WS6vRNKa95aMKuGqrLNJ4qxuq9go/3AKgij2DsNLVmWI7HUllnfvalx33L0+HNaCQB9vH7A+BZlNDA=="}],"memo":""},"metadata":{"timestamp":"1734445720"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000w"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jO+LyC7rYH9SYCEBUrM/f7scNzOEc1m5Ju17NpkpY0rW6ZtN+USkQOWdmZyp6SjVmtiQ5eSMiTpVUfZZvZ76AQ=="}],"memo":""},"metadata":{"timestamp":"1734445735"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1xnvftgfz9atd7uw2wfvtlmnvyxdps8hlf3whtp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000w"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"jO+LyC7rYH9SYCEBUrM/f7scNzOEc1m5Ju17NpkpY0rW6ZtN+USkQOWdmZyp6SjVmtiQ5eSMiTpVUfZZvZ76AQ=="}],"memo":""},"metadata":{"timestamp":"1734445755"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yfts8fy9jyfeca4p42em6mcttfwcypkpkfx0rv","send":"","pkg_path":"gno.land/r/n2p5/config","func":"ClaimOwnership","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"M53QPLSNr7XoGdoMOAkSN3v5SMyyAzqJS0ok/cE+8LN3snB8pMVDi7Fa76vneL3yqGu48KJUoj/ilWrxiHwGCw=="}],"memo":""},"metadata":{"timestamp":"1732687220"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHQABAAAHAQEAAAAAAAAAAAAAAAECAwQFBgcICf/EAFgQAAEDAwMCAwQGBgUGCwcCBwEAAgMEBREGEiEHMRNBURQiYXEIFzKBkdIVFlaVodEjQlKUsTVGc5KTwRgkMzQ2Q0RTVWKERVRydYKD4Ql0JSdjZIWisv/EABsBAQADAQEBAQAAAAAAAAAAAAABAgMEBQYH/8QAMBEBAQACAQMDAwQBAwQDAAAAAAECEQMSITEEE1EFQaEUFUJSIgYyQxYjYXFTYpH/2gAMAwEAAhEDEQA/APqmiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIodkEUREBERAREQEREBERAREQEREBERAREQEREBFDOFFAREQEREBERAREQEREBERAREQEUFFAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQERUKuoFNTvefIJ5FCuubKTLcbpP7PosVLdamQ53lg9G8LT+peparTGhb7eaXaaulpnSxl/IDvI48+Suc6c6Yal1FYqC6VfUjUMNRWQtnfHTStZGwuGcNGOAFvMZJ3ZW13WK6VMRGX7h6O5WVoboyqw12GSenkV5i1bpnUvTm56aq4dcX67x1VzippqerlDo3NPfIAH8V31ji0hwOHA5BCXGfYlbcoq2oaj2mmY/z7FXHosGpkJnnHmuEdP+td81R9JvqHoCsjpGWSwUENTTSMYRKXPLc7jnke8VuVq+kJ02vWrRpih1paKq/mQwtoo6gFzng42g9i7PkCg6KmVo/UDrVobpXJTx6s1RbrHPON0UNVLiRw7Z2jJx8cYXM/pO/SOf06+jjXdRtA11sve2op4qeoz40Dw+UMcPdPcZ+4prY9CZHqi5vovr3oXWt1p7Bb9WWmt1IYQ+W3U84L9+3LwPXHPAORhcm6d/S+trNedT7V1Bvln09bdP3s262Pld4b5mDOcjkuI4yQFOh6hymQvOX0mPpJ1PTDSugb/pOsttwtd/vVPRy1kp8SL2d5G5zXA4HBPK6hovrhoPqDX1VBp7Vdru9fSMLp6emnBewDuceYHqMqNDfcplcvrfpOdKre2B1TryywiaV0DA6oGS9p2uGPLB4yeF0qkqoa6liqKaVk1PK0Pjljdua5pGQQfMIKyLV67qfpO23j9FVWobdBcd2z2eSoaHA+h9CrvUms7Ho+niqL3daW2QynbG+okDdx+Hqmhncpkeq5xoDqWdaay1nRx1FJPZbT7I6kqqc5D2yxvc4udnHBb/isL1G6+We02ETaXvVsulzbXU9NJAJN5DHytY4gA84B7qdVG3YVFa5qTqDpzR0kEV8vNHa5ZuY46mQNc4ZxkD0z5q8rNTWigsovFTcqWK1FgkFY6VoiLT2Id55UG2WyPVMj1C5YOsVJeeo2mrRp+vobrarhTzyTzQO3uY9mMDOeO/mFt2vdS1Gk9NVFworbNdq0FsUFJADl73HDckdm+ZKaNtkIBOcqZcdtvUvWOn9XWCz6zs9sggvz3RUs1rle50Uobu2vDu4x5hdblnjpoHyzPbFGxpc97zgNA7klTZol2rDHqi1mwdSNL6pr30Vpv1DcatmSYYJg52B3wPNU7r1O0nYruLXX6gt9JcCQPZ5ZwHAnsD6feoS2pMj1WDvutbDpkxC7Xekt/isMjPaJQ3c0dyM9+4WKf1e0XDb6eufqe2NpahxZFKagYc4YyPXjI/EINxymR6rAXPXGn7JT0c9deKKkp6xhlp5ZJmtbI0N3FzT2Ixj8VjXdXtFR2uG4u1PbW0UshiZM6oGHPGCW+vG4Z+YQbiThMhaZqDUtU26aVdZ7naRbrjM/xTUPJfUR7Nw8AjgnzPwWK0F1w0/rvUF8tFLU08NRbql0MP8AxgO9qjaATK0YGG848+ynVRuOkqGR6rWLX1L0rerv+iqC/wBBV3AEt9ninaXkjvjnn7ld6w1LDpLT9RdJqeprBCBtp6Rm+WRxOA0D5qIM5lMj1XF9G9d62vsutbpqiytssenXBxpY3F8u0tyA45I3duysPrg17YLPRar1Dp62waVqXsL4aaZ5rKeJ59x7s+67ggkK3TUdUd4UOFZe1sktrqqBwkY6LxYyOxGMgrmfTPrpZtRadoZNQXq2W+9VM00fsvihhw2RzW8E8ZAVdJ26yorB6m1nY9G0sdRfLpS2yKQlrDUSBu4+gHmqbdbWGTTwvsd2pH2fLW+2tlBjBLg0DPrlwH3oln8pkeqx9deKG2z0VPU1UUE9W8x08b34MrgM7W+pxysTH1F01Nd47Sy+UT7o6V8ApWygyeI3O5u34YP4INmUVq1v6maUud5/RNHqG31NxztFPHO0uJHcD1PyWx1E0dNC+WWRsUTAXPe8gBoHcknsEFVRWsWLqRpbU9wfQ2q/0FfWMzmCCcF3HfA8/uUt16l6Vsl3NrrtQUFJcfOnlmDXD5+iDaMqKwFRrWxUdhZfJ7tSQ2mQZbWPlAjdzjg/MKrpnV1l1jSuqrJc6a5wMO1z6d4dtPofRBmkREBERAREQEREBERAREQEREBERAREQEREBERAREQQAwsdfAfYxj+2M/xWSVvWwe0U0jB3I4+aTtUfZx3rif8A+UuqR/8A2TufvC1Xp910sMlk0/a46G8ySuhhgEzLe8w7sAfa9Piuoar05BqnT1ystWXMgrIXQvc3u3PmPv5XL7V046naft9Pbrdra1NoqZgjgE1qDnho7Zdnk4XVNWMe+2K6ydZtSaf1DSUGm7I6eGCrZDPU1cXuzyH/AKuPPw/rBdd0Zqf9btP01yNHPQSPy2SmqWFr43jgjnyz5rmOudL6sntOlIrtVRX+vhvcc0s9DSiFrI/Ut+Hqu1MbkgADJ8go7HdnLET7M/Pbcsmragp/ZqZjSPe7lXPcLnvltPDwLqKC/VPX36T8WmPG/Tz9JNFH7OcSeJtbjafX0XnjSWnLfqHoBpeiq9caP09cI69pjZHapH32KrFQfdLmHcXHtnHbA7r6z0uj7Nb79XXqmtdNDdq1jWVNZHGBJM0dg4+YGAsDS9E9CUOpv1hp9JWmK9+IZfbW0rRJv/tZx3+KmXsjTxtTyaQs/wBN7XJ6yvoJaWXTlF+ham9x/wDF3tEMQm2B2QCX+J/FcQukbn/Qv671Fpa9mhajXELrA1zSGGLxwHFg/s48Pt5g/FfUXWnS/SXUXwBqbTtvvZgJ8I1kAkLPkSqtZ030xcNKN0zUWC3y6eZt22wwN8AYOR7vbgjKbNPFXX/ptpzpl1G+i3W6XtNNZauS7spZqikYGPnYRTgh5HLvtv7/ANp3qp+i/S/S2tuqH0n62+2Sku08FyqYYJKuMPMQ2SOy3PY5xyPQL23eNE2LUE9pnudppa6W1SCahfNEHGmeMe8z0Puj8FG26KsdnqLrPRWmlpZro8yVz44wDUuOQS/14JTZp8vJqZl6+hl0RoK0e0Uj9cy0jo38gxe2Obt+W3hd/wCoWgrB07+mn0xZpm00tjjrdO1ballFGI2y7dwG4DucAcr1i3pPo9lnoLUNN279G0FQaulpRAPDhm3bjI0eTs85WUr9HWW53ujvNVa6aputHG6Gnq5IwZImO7tafIFNmnzj6YdK9K3f6FXWDUVbZqSpvYrrgY66WMOli2S+7tJ7fcvZ30QK6orfov8ATuqqJHzTG0sLnOOS7DnAfwGF0Si6d6at+nqyxU1iooLPVue+oomRARSlxy4ub55PdZOy2Kh05aaa2WyjiobfTN8OGmgbtZG30AHZVt7EjyBrXVEF90VrCrp4NLWKmdVzRmjfEX3CaRrsb854cT2OFvVuqrUzqnpSp1e+AUD9LQ+wS1+PB8f3d/vO43bV26fptpisrqium0/QS1c4IllfA3c8Hvkq9u+i7HqCgp6K52mlrKSnA8KGWMObHgYGPTjhX64rp5it3s9RQfSCOidppHspTD7MOHN8KTxfDx6+/jHmnVSr6dz9LdDs066gdcBXUHswg2+Oxu4b/ExyPPOfPC9Q2nS1psPji3W2mohO1jZRDGG7w0ENB9cAn8Vi6fpdpKmfI+LTlvjfI8PeRAAS4HIP48p1RPTXn+5Mr/ru19+kq6wUL5Gwey/rJAZA+l2f9SS4DbnOQPNWLLbS2bRPTGK6XWC+aIivdSampjieymAOfBDg7nY15cATx2XpvUGiLFq2SGS82mkuMkIIjdURBxaPQK7qdOWustBtU9vgktm0N9ldGDHj0x2Tq2jpcDFRpOo+k/pp+mTSSPFsnFVJQ48IuyMDjguxjPwwu2a61pQ6CsYulyjndR+MyGSSBm7wg443u9GjzKntOhNO2CWCW3WajopINwifDEGlu7vg/HAWYqqSG4UstNUwtmgkBa+ORoLXD0IUWyrSaea6mK26d6saSuWn9Sv1jV3KodDLTVUrao00BGS+MjmPGV0n6SMVwf0puAoRI6MSwurBF9o0wePFAx/5VuFi0Bp7TVS+ptVlo6Cd4IdJBEGuKz0sLZ4nMkYHxuBa5rhkEeibm4SOMU1T0sq6/R7bM2lmu+W/oz9G/wDKR+73l2nIb67loujqrRdPoLXMOrjRjUXt9X7YyuA9ofz/AEezPJGMbcL0NZNBae05XSVlrs1HQVMnDpYIg1x+9S3Pp7py9XRtxrrJRVVc0jFRLCC7jtykyiOl540jY5LvqLotS6jpTUzMtlY8w1bdxGBmPcD6Db3Wy6A0PYqjqL1fhktNLJDE+njZE+IFjA+BzngDsMkAnHou7S2ahnuNNXSUkTqyma5kM5b70YdwQD5ZUILJQUdVW1MFJFFPWkGpka3BlIGBu9cDhT1nS8p6Ct9PqC3/AEe6a4xNrYd10JZMNwOzeWg57gbR+C6BoXQ9hqOvnVOmmtNJJTRU9vDYXRAsb4sLjJhvYbi0Z9cLsNHpGz0H6O8C2U8It2/2MMjA8Dfnft9M5Ofmryns1DS3GsroaWOKtqwwVFQ1uHyhgw3cfPAJCjq+yel5U6byOk0z0NEji/ZebpGN5zhrTK1o+QA/gtx0EywU2pusFquE0NtqX107xsaBMyndCAXsAGSO54XbqXSFmoo6GOC100MdDI+Wma2MAQvdnc5voTk5+anfpW0yXk3Z9tpnXMs8P2rwx4hafIn0U3JXpeZNK3Sl0bXaLos6b1raH1bYaCqoY/DuEBOffc0c8eZOF6u2AnkAjvytftvT7TlmuRuNDY6KlrnEkzxQgO578q61PfKnT9AKimtFbeJC4N9nog0vA9eSOFXK7Wk04xYqC3XO6daqS7QTVNtlqGtnigbueW+HztHr5rmut5a+49KaW00/USn1Bap3RwW6109MBXTHcAxkpyThvnwOy7zSa4qKCernp+mt9imq3bp3thiBlOMZd73PCw1BPbbXd/0pR9I7pTXDJd7RHSwh+T3I95X3VdR1G2UT7bpGkpZR/SQULInfNsYB/iF5ssmkLQ/6Kmobg63wPrXmsqPHLAXh7ZXbSD3GMBdod1Pupa5p6f6iLSMEeHH2/wBdY1mrDFZ32pnTG9ttsm4OpRBF4ZycnI3+ZOVE3E9mhWqqtjer+narWL4fYZdJ0xtstxx4Pjnb4uC7jfjv8Fp2pY4anQnXGfT0ZfpJtxtktCKduYt7JIzVPj8toIycei7ReL9DqC3wUNy6V3mupIABFDNTxObGAMDb73HCuKPV8lutRtdL0xvUFuLCz2VkEQj2nuMbvNTtGmt9RNb2PUXUjpRS2q509yl/SEs7hTSB+xns7gN2OxPPB9Cpejem7RNP1TulXTsFSdQ3CJ1aGZlijAwdp7jAJPHqsna6u32SWKag6R3Wklif4rHRUsQLX4xkHdxwT+Ky9v1xUWw1XsnTa/U4qpXTzeHDEPEe77Tne93Kj/0OLWC40GiG6WpoZdOa5sLrkyKifDH4dyhc9xw8juS3zJC9CdYL9Dpzppe6+qtzbrBHDh9HL9h4JA974eq1Cgr6C13Q3Om6SXWC4El3tDKWEPye5zu4Wcq+pFwraaWnn6d6gmgkaWvjfDEQ4ehG9Re5OzhcFxld1D6aBlXpprnVBMdNYIiHQsLPsvdk5HwWQsF50ZYNPa4tWs6aM6rlq6lzoamAvnqGuz4RjODkdvPhdFttTbrPPFNRdIrpSyRSeKySOmhBa71B3LRNQQ9Rqu63F1utN2FuricG4W2Gappmn7TY5N/A9M9lpLtSxhNL+yQaX6JS6jAGkGwVAm8fmJtVvd4PieWO/ddI0Y+2VH0iq2bSjoX2cWjFxfQ49nM273MkcbsK4sVW2z6FoNLT9Nr/AHK20kQjDKqCJwecklxG7uSStn6f3WK31TLZb+n9y01STOLnzPhjZEDju7a4n4Kt7rR0jKipG9wp1m1EREBERAREQEREBERAREQEREBERAREQEREBERAREQY64WttUS9nuyfwKxElvqIjzEfmOVtCsrrK+C31EjCWva0kEK2NvhW68sJHb6iV2BGfmeFlaC1CnIfJ7z/AOAVazTPqLXTSSO3PcwEk+ZV6lytRIgOyiiKq4iIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICsb3/kqq/0ZV8rG8tL7ZUtaCXFh4CY+Yi+Emn/API1H/ox/gsisfYmllopGuBa4MGQVkFN8kERFCUu4ZQnKweo9TQafhy7Ek7h7kWcZ+fwWly9QK58pMk0NGwA7QeM/Dn+a0xwuU25c/UYcd6bd11EHAUVpNv1lMw04qmteyVwHiA4wMd1uUEzZ4myMIc1wyCFXLG4+WnHyY5+E44UURVbCIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIghgLQepHVu3dP6uhtooq2932vBNLa7bHvmeB/WPOGt+J9Cs7rjSTda2R1tfdbrZgZGye1WeqNPOMZ4DwDwc9sLiNR09u3QnqBT6toY9S9QrRPRGkrPaKgVtwpnbshzBhpcz4DspklVtrpegOsVBra7VVmqLXctPX6lYJZLddYPDkLM/aYckOHy/BdEaQWgjsvNrdGXnr91DGpqum1JoCw0VIaSlnhm9iuFUd2SSMEtb8859V2zQmim6FtDqBl5vF7DpC/2i9VftMwz5bsDA+GEsk8Ilt8tmPPCkJACmHAz5qG0FR2T8vNfVLqPBZrvcKqrc8ls5hhjYckgcYAyPPK8Ga8u9T1x6uXp181LdLXZqSpFPRUkFTtijDWNy7B43EknPx+C9dfSlt4sOqoG1EbW08znywvJIDtxBOfkQe3qvD+v6p9Lr6tht0FSaKtZHvfSM3lsuclwbkZyABx5gq/qc8+mTBj9P9Nx5ctvJ5u30F6Bzyx9O7fST3aqvzKOqfA2srHb5ntHk4juQTjPoAvQOh641NFPAMYhcMYzwDn1HqCvN30eQ629Ord49d7TJUtNQ0veGluSRg48xjkL0loWmqI6KeefP9NJ/Rg45YPPsPMlW3/2ZMvLOTH9Rl0eF3q/VNLo2zS3GsiqpoGHbspIHzPJPb3WgnHHfsuZ9A+pV36jsluFzrpnePEZW0DbVJBBAN3AbO44kOMdl1y6sdLbatrQS50TwGjkk4K0fojSVWn+kNhguFHVUtXTUmZaWSFzZmkZONhGc/DCzmtOq72jofqJDrPW1+o6WskNNRQQkUFRQy08sLiXAuLngbgccYV7U9XNM0FBeKqetdD+iZxTVULoXCVkhOGtDMZdnPGO653prXMjOst/u0uk9WRW+501JSQzSWKpADmFwcXZb7rRuHPZYfVmmb/qnW83UOi0w/2SzzxxRWqopnx1N1YwkOmLDg7m59zI5AVtTaN16OpJm1NLFMwODJGh4Dhg4IzyPJa3rrqLY+ncFFLe6iSnZWS+DD4UL5C9+M4w0FbBbKwXG309UIpYRMwP8OeN0cjM+TmuAII9Cud9XbLXXXVHT+SloZquClvAmnfFEXthbsPvOwPdGfMqk191u7P6P6lWTXNvr6q2yVB9gfsqaeenfHNEcZALHDPI5CxXTjqDHra4ammhrX1FLSTRtjpJaKSnmpQWZLXh4BcTjIwrDTcFXp7qH1Eu1Rba40UjaaSJ0NM55qNrHbhGAPfI4GBlaz0t1dUR9StYzVOl9UUlNfq6nfST1Nlnija1sWwl7nNAYAfMq2tI3WV079Ie33jWt1szrbdGU0Hs7aWQW2o3uc/cHeIC33AMDBOM8+i7EzsfmuSm4Vmhusd+qaixXiut99p6NlPW22ifUxRPjMgc2TbnZ9sHJwMZXWmfZCrUxMigFFEiIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIIY7qhU1ApIHzOBLWDJA7q4Vje/8lVX+jKTzpF7K9FUsrKWOdgIZI0OAd3VdY7T/APkaj/0Y/wAFkUIIiIlpnUnphYOqVldbL5SCVoOYahmBLC7+0wkH8Ox815Pv/wD+n3eqe4F1g1XTTUbjjbWtfDJGM/1S0OGfwXuA5yfRRHIVuqyaRjvG9U7OA9MPosU2kXUUt4u8ly9mjaxtHE3bEQ3sHO7uH4feu+xxtZG1rQGtAwABgAKIHKmUXK1Exk7oDsooihYREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBWN7/yVVf6Mq+VjegTa6kDJOw8BMfMRfCTT/wDkaj/0Y/wWRWPsLS2z0gIIIYMg/JZBTfJBERQlLuGcI4rEX7UNPYacyS+/IfsRAjLlqP1gV1VM7YyOna0E4PvK+PHll3jmz5+Pjure7ozeygfktRoNZOJgZVRjErg0yMOMceYW1xvbIxr2uBa4ZBCjLG4+WmGePJNyqg7KKgOyiqtRERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQQwFpPUPqtZenL6WnrvHq7jW59moKOMyTS488eQz5rKa203Wapsr6GivdbYJjI14rKHHiADORz5HK4ZV6Xu/RPqZSasvVXdtc2eahdSSV74RJPRP3ZHut/qn4KZNq22OsaC6v2TqBWVNBSMq7fdKVofLQV8BikaCcZAPcfELfW9gvM7bPduvHU86ksdRdtGWWhojSMurIRHNVuLskBrvIfH0XcdDaXr9JWh1JXagrtRzOeX+1V+N4B/q+75JlJPCJbfLZz6KQnA+SmHYHzUu3OfioT8vOvU7qHBbLtX1NbI5rIpjDCzvkDyA+eV4U6gay1D1t6sXemfq+4WCx0NQIKOmpnhjBtYMuPqS4n+C9T/AEnreLLqqKKaPbFI980TyeHZIP8ANeH9fVrbRr64QUAkbTVrI3mWJheGSk5cePUAferep5MpjJg5/p/pcM+W5cnm7fQ3obcK+bp/boLpeJb7PS1Lqc3Cbh8jR2zjzbnH3LvuibgKmikgHaBwx72cA5/kV5u+jxHNQ9OreaqoEz6jNSzGG4DiRyPXhejtCQTCjqaiZu0SybWcYy0ef4krTq3wzq8qzHGc+Xt+GJ6va9uWg7XZ32qlpqutuNyhtzG1RcI2l+feOOfJWehupV3r9YXnS+prfSW+52+njrBNRzF8MkTs8knlpGPNYv6SFik1FaNJ0bY6iSKTUNKJTTZD2M94F2R279/Jag3QVXoHU+r9MW2KqrINU2mWWguU5dJLHM1haYHyHy5yPmqSSx0W2V1mx9X9J6jvrbTb7syateXCMFjgyUt7hjiMOx8Fk4de2OosFZeW3CP9HUTpI6ic5HhuYcOBB5ByvP3Tmy2Kul0jZ6+u1JDerZKwi3yUxbHTysadwLwMbeCM55yr7XWlbrD1GuOkaWnmNl1bWU9xfUsaTHEGH+na7yG4tGPmmonddl1D1X0zpenopbhchH7ZGJoI2Rue9zP7W0DIHzV/Ua5sVNpgaikuUQsxaH+1tOW4Jx9y4hr+wt0z1brbrdau7W2y1lvhpqOqtsXihpYMOjcMHb/vV7fdN26D6OddRWKO41dFUVAe1tbERM7dINx298d0shLXSabrRpO4RXCSmuTpmULPElc2B5BbnGW8e9z6LG9Kut1q6lMlhZugrxPMxsAjfgsY7AduIxyOcLdrdaaOjtVPBBSxRNbA2MNawDAwOFy/oVdYbG+5aWrqKpo7yy41c4ElMRG6Nzy5rg/GOQVGp9ju7JnI+C45qrqzqCy13U2GmomSM05Q0tRQExOPivkaS8H1wR5Lsre3KkdSwvMm6GN3iDD8tHvD4+qpKtY5l1H6yQ9O+m1PfaqPfdqmhbNT0ux2x8pDMgkDgAvHdXvTjXcl00dX3m73aC4MppCZJaWjkhbE0MaS3a4ZcRk8j1Vr9JG3yV3RjUENNTmefbB4ccbNzuJ484A+C3C43ah0tpk19ZG5lJBG0yNiiL3c4H2R37q/bSvfbD6D13Fqix3a7Gtgq6Knq52xvpmOBZEwkhrgRncB3V8zqPp2WhtFXHdIpYbrJ4VHsyTK70A78eeey5V0a6kWe3nVsU8NdB7Rdq64RB9FI0OgLi4Y47kdgsBoa0V2ldf0WtLjYnwWK+Tvgo6NjXOda3Pdlryzy8Tz9EuPc3p6Za7PwWq6u6paa0RXR0d4uIpquSLxo4Axz3PbnGQAFtTMkc8rlV2s5rPpEWqqkpDLBHZZWiZ0eWNcX9s9sqs7rWtx+sKxy6Q/WSC4CW0ubltQxjnYPbBAGc5VjpTXcNboFmo7hWw1FL/SPdUUkbi0sDyBhuM5wOeO60PpfeKbQ/TbUE14p6iKn/TlayOJtO55w5w24aB2+Ku/o66soK/Skdg8CqhroZKiZ8VRSujbsdM4jkjHYhW1NK7u2W6Y9dLR1GlqKVm6nrm1c8EUQjfh8bDw/cRgEjyK1ml6zallobVM6gjDqrW50/IPCd7tJkjxPnx37K96LXSDTd3vml7hRVNLd5bzWVcRdTnw3xPO5rg/GOR5LsYpYBgCCMAO3gbRw71+fxUePCZ3iq3zUSoqBVVmHuEz2VTgHEDA7fJW3tEn9oqvcv8Anb/kP8Fy+89IKi7X/WNybq28UrNQ0EdFHSxPHh0Ba3aZIh5OPcq6rpPtEn9oq5t8z3VTQXHGD3XK7N0fqLTf9J3N2rbvVtsVudQupZXjZWk/9bL/AObhdStv/PGn4JRmh3KioDuVFVWEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREEAOcqlVSsp4Hyv+wwZPGVWVje/8lVX+jKTzpCvRzR1VNHLGP6N7QW8Y4VbACx+n/8AI1H/AKMf4LIomCIiDQuq3SKydWrL7DdY3RzxZNPVx/bicfT1+S8gX/6BesaC6l1oulFcKZx92V7hHJEM9+fP+a99EcpxhW6rrSMf8cuqPOvSr6MddpptCb7ePEp6aNrBRU5OHY7bnfyXoeGFkMLGMaGtaNrQPIeinDVMottJJLtADjsmFFFCUNoznAz6qKIggWhwwQCPiEUUQQwooiAiIgKGFFEEMJhRRBDA9EwAoogKCiiCCYUUQFAqKIKL6WORxc5uSVL7FD/YVwiC39ih/sKaOmjjdua3BVZEEAooiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgKxvf+Sqr/RlXysb1za6nz9wpj5iL4Saf/yNR/6Mf4LIrHaf/wAjUef+7H+CyKm+SCIihKXPOEKxt7vtNYqd01QSf7MbBlzvkFqn1iz1UjhBSsja0E/0hyf4FXxwyy8OfPmw47rKt9zwo4+K1W36ybK6COpiMZlIaHs5byM8+i2ljg9ocDkHkEearljcfK+GeOfeIhRRFDUREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREEMfFah1A6oad6bU0El9rvCkqXFlPSwxOmmnI8msaCT/AIK91xZbxfrK6lseoJNN1xka4VsdOychozlu1/HP48LgtdbLt0e6s0OqtfXWq1faJLe6livLbcB7BJuztcxmdoOftd+ceqmTattdm0B1Z0x1INRFYq97qqlAM9HPC+GaLPqx4B+8ZC3Ydl5jLbn1t6uu1DoG5VWmbbQ0BpJb++3hzat5dnaxsmN2O2fJd20JYL7p60Ppr/qOTU1YXlwqn0rINrfJu1nCWaJbWzFQzgIPIqUjP3qP/Zfu8+9TOoVNQXavqK6o8OCCXwImPzh2McDDTyTleIeoHVHXXV7qvdrbY9c1WkbDbp209NFRx7HSENaXPe4EF2S48E4wB2XpD6TFB+idVMgma9rHSPmjdu4fkgg//wDXdeH9eVtPpzXtxpKVwiirBHMyZ0ZeI5iQXcgZ7Bp+9X9TyZY4yYOb0HpceTluXJ5u30V6K3m8XDQluZqC7svNxpp3QSXCKIReKByHFvYEZwfiF3rRlwNVQug3Pd4B2gucDwc4/wACvNn0doKmm6c0JqzHI6oc6qjELGgEOPcg9s4yvRegoHeyVc7o2xiSQMbhmNwb5/i4q/VvhnV5Jjjjz5TDwsOrHUSr6e2u1TUFrZdqy43CK3xQSVHgNDn5wS7a7jj0VtobqfX37U9001qCxnT18oYWVQYyqbUQzQuyA9rwB5jkELXvpL2993s+j6SOaopnS6jpG+PSu2yx53Dc04OCM9/JaezStw0FqrW+nDUVt7uepLPJNa73XSGSpeWMc00739sgnLcAd1SSa7t92O2WnqdpW/3uS0W7UNvrbpFndSwVDXO474weceeFkKfVlnq7NUXWG500ltpy8S1TZR4bC04dk+WDwV5p6bWzT90foq2z60uFPfLZKx8dmFpZFNBK1pD2OeIg7GMgku5WT1zZ7nQa9vOgqeOQW7WFdBcI5Q0mOOMHNQ0+Tclo+eVFxiZa7rfepOmNL0VJV3e+0NBT1bd0D55g3xR6tHcj44WQqNVWmksjLxLcqaO1OaHitMo8ItPY7s4wvPvUC2s011jrKy8X6o0zZ5rZDTW+t9hZVRENGHx+8x+w/LGVe3vT9qofo03Cistyqr3bZqjc2eogMTnbpBuAZtGG98YCjpkJa61H1f0bUtrzBqe2TCgbuqSyoa4RjOMk+meOFjemnW7TvUxskVFXU0VxbNLGKATh8jmMcQJAAOxHK2a06ctlts1NDS0FPCxlO2IbYmg7do4PC5h0Avdot0Vx0vUD2TUUdyrJTRy07mv8IyFwcCW4wR25Tt9ju7UCTnz+OVx/VnW24aer+pVPHboJW6Voaaqgc97h47pW5Id6YI8l2IYOSqD7bSSGYvpYXGcBspdGD4gHYO9fvURaxy/UPV2+0l60tZ7Hp2nu9wvVsdcS2au9nZGGhpLQdrs/a88dlnen/VOm1hp6619ypxp6os1VNRXOGqmaWU8kYBd/ScAtwQcrQ+q2lX6o68aMoYrjcrLH+h63/jdpl8GRnvM4DsHA7cLn1xsNfb+l2pdFeDO+6WK/QVd1rKeIyy3Gke/f7S5js737cEtOR7np2vqVTvHo+x9TtLakoK2ttmoaCupqFpfVSQzAiJozlzvQcd+3HdZGq1VaaS2UlwmuVNFRVb2R09Q6UBkrn/YDTnknyXFumts0vqfXctfSayqdS1v6LfRTUptzKeIQEjh+2NoJGSACc8lYLp9bbnetd2fQ1xin9i0TPPUvncP6OYFxbTAeoDclR0xO67tfOpmltNXaG13XUFBQXGbAbTTzta/ntkZ4z8Vf3vVtn03BBLdbrS26KofsikqZmsa84zgEnGcLy/cLZQW2/wCurZrDVlVpya51r5PCNtjnFZAfsujeY3OPHGARj0W/dQtO0dTQ9I7WTLdLay6RML6qMh0jBHwXAjjy8gmpDdbtfOu2j7TpGrv9NfrfcaeHeyNsVQB40gGfDB9SFnNBdRbL1Es8Vbaa+nqZPCjfPBDKHup3PbnY7HmOR9ysep2nYqrpxqOlobfE+olo5AyOKIZe7bxgDzVn0U1TY9QaLttNapWuq6CjggrIvBdG+OQMAIdkDnIKi60mb26C44zz8VxGl6/XGektc5tlMDWa1Ol3De7DYskeKP8Azcduy7fwSrcWuja1oFJAA2TxgBGOJP7fz+PdQOadYuuFv6atobdTVdtlv9bVxUzaeuqTHHTMeHHx5sAu2Db5DJyFnbf1FoqTp9SahvV7srWShzRW0tQRRySZcGhr3Y/s4OfMFa91yoY57z00d4DXn9aqYPOzPu+DNweOy2fqJqWwaR0vMb1PDR0s7HwwNfEXB0mwkAAA/wAVOpo7yriz61pxom1329VtBRsqYYnSVEE4fShz8Y2yHu0kgA/ELKu1FbWXiC1Gvg/SM0JqI6XxB4jo+24D0z5rhuiepOkH/R+pbXWPbeJKW1Q0dTaGRvEksr27WxDIHvEg8jOMZ8lHoHbavQ2p6qz6rp5P1juNLFNRV8shlDqVrQBTBxHBj8/Xvyp0jb0Fy3z49StUvHVnR1gr30Vx1LbaOsZIInwS1DQ9rj5Edwtqa7PGV58ptP0ldcutc1VQxzyOLmtfJEHEgRZAGR6+irJE211zXevLfo3Trq6a42+knnaRRfpCoEUMz8ZA3emPRL3r+2aU0jT3u919JRslp2yA+MBHI8s3bWOPfPkVy/Wmq7PaPo70dHeKpjLjW2cMpYpI3PdI/YBgYBwfwW3aN1HZtd9LDSWmpjuM1Ja2U80fhu/o5fBxt94DnIPZW1DZbeuVm1H08uGoLPVUtVcKO3urZbc2cOdEQM7XkfHhWmlOsVdf9T6PtctBBEy92d1zke17iY3AD3W+o581N0B1JYr1oa3WWn2/pS30TIa+jkp3MfG4e6Q7LQDz8Sunx2+lifG9lNEx0bdjHNYAWt9B6BRdQndxST6QFyjt8tT+i6YuZq5unA3e/HhE48Tt9r4dl3BpPKofouiII9kgwZPF/wCTH2/7Xz+KuQAPJRbPslAd1iq+pljqnNa8tAA7H4LLLCXL/nj/AJD/AAUxNU/bJv8AvHfintk3/eO/Fc5uPTvUtZq7U10h13caW3XO2ijorXHCwx26baQZ2HuXZ5wfx7YsrP0v1Xb6rRMlT1GudeyyQOjuUckDALs4jh8nPukff81ZR1qiqpH1LA57iD5ErMeawdB/zuP5rOearVoiiIoSIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIIY5yqNU6KOCR8waYmjJyMqurG9/5Kqv8ARlJ50hWoTA+mjfTta2JwBbtbgYVfAxjCx+n/API1H/owsihBQUURLm3WPovaOsFnbT1rn0tfT5NLWxfajJ7gjzB9F4zv/wBB7qJarw91D7Dd4XOxFVRvDXMGe5DsfHjJX0SI57KIHCt1dtVGP+OXVi81dI/o46iscVAy/Xb2egpo2s9jpnkvfg+Z7Nz54yvSNNTx00EcUbQ1jBtAHlhVA3A+Hoot7Y4wq277KzGY90HRsdjc0HHPIQxtLg4tBcOxxyFMiLqQpoWyGQRMEh7uDRn8VOWNLg4tBcOxxyFMiCnLTxTN2yRsePRzQVERMDQ0MaGjsMcKdEEMD0UohjDtwY0O9ccqdEBERBKWNLg4tBcOxxynhsyTtbl3BOO6mRBSipYYCfDiZHnvtaBlTiNgcXBrQ4+eOVMiClJTQyuBfEx5HYuaDhTmNpxloOO3HZTIghgeilZEyMnaxrc98DGVOiCCiiIJXMa7GWg4ORkKD4mSDDmNcPQjKnRBSbTQsHuxMHyaFP4bSc7Rn1wpkQQAA8lDw2c+6Oe/HdTIgpugjeAHRsIHYFo4UWRMiBDGNYD32jCnRBI2JjCS1jWk9yBjKnREBERBBUZKOKZ+9zfe9VXRBa/o6D+wo/o6D+wrlEFuyiijeHNbhw81XUUQEREBERAREQEREBERAREQEREBERBqDurOkmjJvcA/+l38lRPWTRgPN/p/9V/8l5YbTPmdsAOcrKUekzMRkc58wun2nn/qpJ3el29XNIPGW3ynI+Af/JVG9UtLvGW3eJ3/ANLv5LgdJpFsEWAAsrQ2RkIaXgOA8lOPDtyZ+v6fDtzeo+nHD3bpGf8A6XfyUR1E08f/AGnH/qu/kuQMo4x2aB9ynEDGdgD8lv8Apsfly36plL2xdfGvrA7tc4/wd/JTjXNjd2uDD9zv5Lj3ht82j8FMIx5BWx9HL91L9Xz12xjsDtbWVve4Rj7j/JS/rzZP/EY/wP8AJcfdCCOeFTc1rR3BKn9Hj8qT6xn/AFju0V7oJo2vZWQFrgCCZAOFE3iiH/bKf/at/muFx/Z7j8FTmznIU/o8f7NP3i/1d4/S1F/75B/tR/NWd3ulG621LRVwuJYQAJRz/FcRaCW891KQ5pJIUfpMZd9SL9Zvjo/Lt1jutHHaKRrquBpEYyHSAH/FXv6Zof8A32n/ANq3+a4LPgRtIHPoqLm+YVp6KZfyV/ebP4/l6BF5oP8A32n/ANq3+aG80A/7bTf7Vv8ANeen9lQLi44AW0+my/zR+93+n5eiXXu3jvXUwHxlb/NQF9t3H/8AEKX/AGzf5rztLFkcq2EDS7IITL6bMZb1LY/WblddH5elReaA9q6mPylb/NRN3oW/9spx/wDdb/NeeaOFrRnKvXgEL5H6h6yei7SbfT+h6vWa7ad4/TND/wC/U/8AtWqV18t7PtV9M0fGZv8ANcBkGzJAysRcH+ICHYGF81f9RWXXt/l9Nh9I6rq5vSf6w2vH+UqT/bt/mpH6ntDDh11o2/OoZ/NeT69wYOHYWuXBwfglytP9Q2/wn/66p9Bn/wAn4e0f1rs3/i9D/eWfzT9a7L/4xQf3ln814WqBg+6eVQw4LafXrf4fk/YpP+T8PeH622T/AMYoP70z+agdYWId71b/AL6pn814NeDjsFjqkAH0Wn73f6fllfosn/J+H0COsbCO97t397j/AJqR2ttPNPN+to+dZH/NfPKojGw+8CsBXM257FWx+s2/w/Kl+jT+76Vfr1pv9obV/fY/zKB17pof5xWr+/R/mXzAqA5o4wT8QsY8HJ7FW/eL/T8sr9Jk/m+qX6+6a/aG0/32L8yi3XWnXnDb/a3fKtj/ADL5VtcC4NICyVrkEdY3bwFXL61Z/H8px+ky/wA31GGsLGR/lq3Y/wD3TP5qP632Mni9W8/+rZ/NfPKkkMjW5ORhXYAaQQFjfrtn8Py6p9Dl/wCT8PoK3VVmceLvQu+VSz+amOo7Sf8A2pR/7dv814OoqgwuaQtipax0gHcrG/6gs/4/y3n+npe/ufh7RGoLWO1ypD/99v8ANRF/tp7XGlP/AN5v815HpJ3OAHYLLRSYb3H4KP8AqK/0/LO/QZP+T8PUR1Bbf/EKX/bN/mn6wWwDJuVKP/vt/mvLz3gj7IPxVlVv4/3Jf9RWf8f5Z36Frxn+Hq39YrWf/adJ/t2/zUp1Lah3ulH/AHhv815HdtMYJPKx1S4c+itP9Q2/w/Kv7J/9/wAPZB1PaG97tQj51LP5qV2rLK3veaAf+qZ/NeIaupbGDlazc6ljDn/FdGH1vLK/7Pyyy+j9P8/w+gJ1jYWnm924f+rj/moHWmnh3v1tH/rI/wCa+a9ZcCZHY7f4LEVtXjldE+rW/wAPy5cvp0x85Pp4dc6cHfUFrHzrY/zKH6+6ZaMnUVpH/rovzL5U1Nyy7ACxdXXkEgjhbT6llf4/lll6LHH+T60HqBpgD/pJaP79F+ZSnqHpcDnUtoH/AK+L8y+QlRXjsArOesL24xk91pPX5X+P5U/SY/2fYcdRdK5/6TWf+/xfmUfrF0r+01n/AL/F+ZfGxsxc7nhVPEx6q/63L+v5R+lx/s+x/wBYulf2ms/9/i/Mn1i6W/aWz/3+L8y+N/jHycriGUbee6rfXWfx/J+lx/s+xA6iaWJ/6S2f+/xfmUfrD0t+0to/v8X5l8e25yFdRYGeFlfqVn8fytPSY3+T69fWFpb9pbR/f4vzKP1gaXP+clo/v8X5l8jI4w8dgqwYQOOFH7nZ/H8tP0GP9n1t/X/THlqO0/36L8yj+vmnP2htOP8A97H+ZfJyNhwP5K+hDSOT9yr+63+v5T+3z+34fVQ6+02AT+sNq49K2P8AMtXq/pDdO6Crmp59V0bZoHmN7RucA4HBGQCDyO4XzYEYHZTg4xz/AAVb9Vv9Vp6DH75PpAPpI9NnHjVdH/qyflU//CM6cftVSf6sn5V85mDjyKqxjnlV/dMv6n6HD+z6KD6RvTk8frVSf6kn5VH/AIRPTo9tU0n+q/8AKvnfgDyx8VOzntyFP7pn/WLz6fhf5Pod/wAIbp3+1NJn/wCF/wCVRH0hunhP/Sik/wBV/wCVfPgDjgJt+Cfumf8AWLft3H/Z9CP+EN07/aik/wBV/wCVR/4QnTw9tUUn+q/8q+e+Aog4zxwn7nn/AFJ9Nxv8n0H/AOEF0+8tT0v+q/8AKi+fW4jsUT90y/qtPpmP9nquhskTZN+BnPbC2GGnjHAAHKhSQsdt9MK98JjAAF990R+U3l6lM047EqV9PsHf8FXdgj4qRvLsKePFy51QAyMd1DbtV61o9AqdQBt+K6/Dlt76WrgoN4+aqbT6hSObhT2TUvfyUCwZ9FFFEUQAAHB4QtDu6iivpKUxhMeqjkBRJZjuq2KZKUmDkK1cSFWkeM4yqbyzHflb8emVtWVQ8hwUzThJXNPfCkcc4K33q6imk0jgcDCgyEZVM4LuThXlKGuwBy7K5/Wc/t8deh6bC55SRGCMgn/BVXuwOThVZ/caQGjKxtXK+GF8jj7oGeV+K/VfUe7yWP1j6Rw3jxlqnW3CNnuh/KwNbVtfnBJ+9WskU81skub+Ixk9/JalT6ypauZ4EgJHGMr5q4V9rxXdZuqq+HZ5WEq5Q9x9FUlrRK0kdli6iobu5KY4d3pyfJK8B3ZUi7cVDxY3+ahkN7HK3m4xy8o4wOVZ1QBBKui9hePLhWdQ9uD6LVne7GVQaG8d1r1ecLP1WXfJYCtBwcrfBz5MPVk5OFYE9yeVf1Z5Vg4ZyOy6sY58+ymQQ8O24AKurfIPameZJVs/PzVahc9tRGcDus8/C2DoVC4uY0Ywr8MyBysbbS97MnjhZOLJ8l52c7PRwrJUoGG4OVnKR5YQQMrAUmWvbuGAs/Tva3bj0XHb3d8/2s3SPJaSQQshFOXMWMoMmPOT96vmt9wd1MrLLwuBMcAKlUPGOVIQQ3PKoyyYbzypvdyZLapcNnf7lh6uTb2JVzWSuDjjssRVSvDXZx96348WGWWmHu1e5gPzWp3W5Pduzwsldalu9+52DlandrhH7wBXpceHdwcvItKu4PwcrC1tcSCQTj5qlW3Fjs4cVgq24+6cFejx4PL5M11PcCHZysbWXHJJzlY6euzkZOVZPkkeST2XdMXFlnavXVmTnKoyVRA45KtC44Klc4ho9VbXdXqtXzJnOxlTh7nnhWcTnOLQFVpxJuOcjlXvhbHdXLQ7IyOFdU7eD81UpYBKOeyvqehaCPMLmzyaTHanGwDGVdxsyCccK5NEeAxuQriKhkDcFoXNcnVjh91vG3Ax2V0yIFvxVxHb3EAkKfwTE4txnlZWtJN3upxt7cKdocHHhVwx4GQEY1xf5qrXSdmdqi37QGFXESn8IAdlOojpqbt8Ap4iC7gqR3LcBRha5p5ATtCY2Lru05TOAMd0Bw3/AHKZhBIVdtVy04YD5qbHI57hSe6OCeFUbh2NpzhTtKUhTxNHmFMxvfKnUVO6htb6IooqoexbTV+NH2WR2n0WDscjfBGO6z24OZkcL9f0/C8ZqdlB7CeykH9HnKqg+/yoPaC854V8PDPLdUy8kZBVJwcftEqtLtEYDe6tMu3HJWzly3tMePNOShTsh3+5tTshcpXv4xnlRfBpEkeqiPe7KymLicg8BSNrHM81rh4R3+y9cOSqT3hqsX3Msfz29VSkusQ+04D71OWp3pq3suHzMJ5OCqD5Rg4I/FYue7RbydwVjJfYckbxlU65L2qfayv2Zgv8QjJGB8UfLgYbysCL3Fg5cApBfowMeIFtM552exlfsz8coLgSVmaCMPBdgLVLbco6mQDORlbpSFopwW98L5j6x6yYcdxle/8ATfS3rlsW84fvbnsMrB6pqRSWWd55yOPmVnJt+4+fC0vqq59LZKWNmS5z29vmvyXPK8vJt+p+nnRhtn6a2Cq6aTEMduMDiPwXhmlvk9t1RWwPlLQJne6T8V9FtJW/2nS1JTyDG6LDh8wvBH0p9By9PtYProY3MgmeXbwOF3Zen3ht1+n9RrPu2Oh1sYOJJOMeqvW60hndgEH71wS1ashqIwXyZeQOCe6y0V98MbmPAPzXne3cbrT3Zy9X3dxgv8LxyR+KuIrtG4kAkj5rilJqwwuzI7PK2G3aypXNIE2HnyJVpjr7K5Zx1BtWHjIUkkzSOSPxWp0GpoZsNzzj14WSFdHK3IIPyV+ll1RfVMnHBHZYSudk4wqz6wOOMKyqXu7gjHotsMe7PLNjK3tlY1zveWTqmF4PHCxrmjnPquvWmGdQkdjCrURAnYSeAVbydviqtKMkcYKyzi2FdAtj2lnunPCysAJeAsNYI/c59FsELDkH+K83ketw92QpY+2VmadgBasTGxzWt5ysxTN3bcLgy8u+eGXpBgK/Z9nHZWNO7a0eiuN+RwqObkqpUODW4Cx1S92w4VzPJhpCxtRJ7uTlb493Lkx9Y9wYS4jPzWsXq4lo2g8AdwVlLxXxsjGXAlaBeLp7zsDjK7+LC7cXJktLvWYHcc/Fahda+PDtxA+9VbvdiHH0wtSuVYHOcdp7d17fFxyvH5eRb1lYxr3bckeRWIq63dwDn5KNTVBwwVZPlZlehjxaeZlnupN73O3HspvFJaQMqAcd3AOFXiiMjhxgq/2Us6lGNjj3V3DDnAAyVdwW+R/DRk/BbHaNLyzvY5zT8ljnn0922GH2a621yvIOMD4LNW7Tc9S3dsJHyXQ7bpGIRgvGFnKW0xU0ZYzAXHl6jf3enxcG3P6PSEjce4Rn4LPUGkQwAvGPmFtbGMY0ZU3iscuLLm3Xbj6Zh/0DDHjgYHwUTZYj27fJZUyt9cIJmeqpOTbonDGMisjcHAypn2KMkkjn5LIiqDD7uMI6pJ8wlzLxYsQ+ztzwqRtYYVmXVEZ7kKmXRyeadbHLi+GF9g5z5qR9G4cErKSsbnj+CgImP78KeunRpi/ZRxzhTCmLTnJV8+CMHjugjI+zynVSzssWxgO5zlVQzkKqYnNOXHAUQ3P2SFtPDHpUtvPmVXg913bCgI3BwyVV2cqNo1U3GVEtcfshU2ja7kqpuBH8ka4zflDa/wBEUd3zRW7L9EesNMSb6fK2Nj+Pgtc03M1tOW7cH1WwhxazJ7euF+v3t2fgGG0c5eOQpZyGNzkFW0lfHE7OQcfBY64ahhY1zS4Jh47r2X7L/wATIyqZnYDy4BatUarhjaQJB+KwtVrSMOI3BbWyK+3b9nQnVkMbclwPwyrZ97hY44wQuYVmsi4H38AeiwNZriRhOH8KnUv+nyy7Ov1eo4owSAPxWKk1UwEkkA/NcaqtfSOP2+yxdRraSUH38KLnNNsPR12yo1oxjXe8MY9VhanXbWNP9MB964xVaqqX52vGFiqvUE72438/Bc+Xqejs78Pp0vd2ObqS0PI8UEfBa/cupY8UhsjsBcQumto7cyRr5PfHkVpFTru5XGpdHStc8DttGV5nP67KzWLbH6fJd13q5dVapryGbnDPCws/VurjeS+J4AXNbTYda3SRr4aNxaeRlrR/iFt8WmtW0sY9rtAnidwcNbn8cLzv1PLrbtw9LxTtWUPWCR5wXbT8SshRdS5KgOaJ2k9xytOvuloJ4XbqeSknDfMYwVoP6t3e3VZe17i0Hjnus76/k3p2Y+kw+0ep9B6qq7hXRxl2cn8V6MtkTxQRueSCR2K8W9GNT+yampG18gY0OALivasV0p6mnY6CVkkZaDuafgvmfqPqc+aPU9N6fHDvpUDckn4LVOpVL7VQ0Z8mOaT+K2hku44BB4Vnf7c2428xOPIGQvmOLKzPu+in+3UbhpacT2qlLcEeGB/Bap1k6W23qVYH0dTCx0pbhryOxVhofUj7VO231Bw0cMJ9F1IAVUbXDbtcMjC9zHk+zzssc8c+z5LdW/o/ak6dXyofBSz1FFyWuhYCGgevK5edS11tBikikaR3Dm4X2R1DYrfcoZIamjinDuHb25XJb59HXRF2ne+azwFzjyduFbeFdnH6i49q+YrtZVTgMNco02oLvcJmto4JHvz/AFQeV9HJfoo6CkwW2qFu34LP6f6JaS0mR7LaKbcDkZYCr6xv2dP6ivEXTrR3UHUjRJFa5jAO7nAjj8Fu01JeNNzOhrKd0bx5knC9sw09Hb2bYIY4W45bECP8FrV/0xar3G9lTSNeXeeOVPRgj33k+lvsjn+8R+KvGXJs+QSMro+quiMccj5ba7A/s47Ll180xcbBI4TROI83AJ7U8wnMunlxHc4WNe47sn1WMN6MX2nlvwKuKevjqWggg/ep6Gly2uXytzgDJ9VVpT/SN+atnH09VXpT/TM+ay5MNRth3joVkBMX3LYYcmMDzWv2A5YPLhbHTM5C8Xme76fFkaVnDcjKzlIwFvDSFj6WPIaMYWdpYtrQF598u6+E1NHhpBVyAGtHqpGjakrhs4PISTbhyWVcTvODhYerq2wQu3uB+av7hV+EXnAPHdadfroHsdjHZdeGF+zh5ctRhr5cmF+QOFoV8vAAfjGVfXu4ubuw7haNcrmHF2cFe3w8d7PK5OTss7pcvEP2gtekqXyueC7hXVZL4ricDBWN3APePVethjqPH5Mraouw85Kpui3HgZKrsi3HOFk6OnY/3S3lb9eo55hbWJho5nuxhyz9BZ5J5WtAOTjhZ2yafFTKACSSFvFn0uyjkD5CM4yFwc3P0O/i4MrWK07pMBrXSjC2+kt8VLsAbnlXcMTI49oUXjaMryOX1GWfaPZ4vTTfeIPI3Hb2VF0mweieJlxyqEziewXJuvUnFMe8ST1RCtn1TjjlJG7u6tpWgEcoJnVD3Pzu4R1YWefKpDAHJVGVu5xIK0xjOrsVbnDO4BPanDzyseCWjCpSyuaeHYWqtZJ9cB5KiLoWuPHCxD53hx97KouqHhTqmm0UVwbKfe4KuHVYbzwtQ8d0RyHKs24Pe5mTwPUrbTDLy2htRHL27qrE3Jz3AWHp7g1rDkAfJXtLd4uzngfcjGsi4RyM5VIwRt+ypWXSDGA4E/JVGVDJOxGVO0qTmcqIaRzhXGCVENVZlatpb9+4yp2ADywpi0jlTgbgDjcVZWRJwiqeC4+WEUdS707YKxsMTdw7jzV3ctSCFjgMYC1KOuMcPDsbFrd2vpL3jf3X7Lm/CvTcfVGduWtSzeAT+K028aukmJI3NysHXVrnSbtx7rFTzueAPRYdWnsYekxs2vKjUszzhrnZKxtTdqhzshx/FUZHlvvbRj1VrPNvCdddmPpcIqS3acDDnnHzVhNc3HIc44+CpVDy4fzVnI0uJ5AVcuXTXH02E+yWeZ7jkOVJoLmkk8qSRwYDucOFJBO2c7A8ZXHyepmM26seLGd9J8uxgHPxWAvV4fSziGEb5XcEA9lnLu5lDQkxZdK4Yb6LBWSxb3Omq3gyuOefILw+b1FzvZvMcZGGt+jam/TPmnGQ5y67oPplbrVLHK6n8R575blYmlvFutkAY17N49FcN6qtt7QIxlw4Cvx6815nNLl4dspKentwaGQ+H8sBZaCvomlokeCc52lwXma8dWrlVPBicWtKtrLqW43K5wh9VId7uwK0y5sZOl5+OGcze3LXofT2qLfvlpIJC4faa3OFzLqJ9HdlNBLV28b2tBO1oXTeisD6bTrC/c4kea6U+nbNEWuaHNPcFeRy63uPe4bZHzauWm59P1bnPY6JwdkE91vXTnrHV2Co9mrXmSkJDQ53kvQXVbo7FeGS1dPEBgE+6F5N1Jpg2utkpn5aS7APoV4fPN5V6nFlXtvTNfBc6OGeOQSCVm5vCl1LWshBjaQ048l596CdSpaGvkstwlILWARE8reddawZSSOPick4XlXi1dx63F/le5dLmY6tj434e3zW26L6lmKoFNWP/o+we7PC4a7WLZZC4v5z5qpDqBlR9k559VaY3bsvFjk9RVlzhq498UrXA+YWObI8gke8Fwqh1lWUgLN/ueQytjt3UtjWeHMXbj54C6MctdnPl6aTvHUXOyPe90+QVjO8buHc+awdDqmmr/DayVufMOOFk3zAsLgcj4Lsllxc9xsUp5g08uJCspJt5OCCD6qNTLu5AKxkruDzha+awyulSpmyCHAFa9cKKjuDHNmgDvjhZOoqWsbjOSFiZJgXfeuvDDsy69d3PdW9KKG6hz6drY3DyXM7j09uNgIe1odEPIL0K4tJeTnlY6qp6eqG17Nw7KehM9RdvPJmlY5oezbzgq+oiX1DBxjK6FqjS9NszHGG85Wo2yzk1uOMAri5709ntelz625WNuYAAecLaLfFwOMlYezUHhYI5C2qkYYw0hoXzXPyd31PBjqL+mhc8NGNoWZp4xGwEklWVOSQ3IwskSWtGFw3du2uXaGzAz5KzuXugEHAIV46UlpGOVh71O5sZ+AW2GO68/kya9dbkYmOAOeFoF7uTiHH/es7eqpwa4nzOFz69XHadpPmvY4ePw8vmzmmHvNyJa7stQrahsj3evor+5zmUkB3clYSZpGQSF9Bxcfbu8Hly3VBxLn/AAVF0Bc44VztACuKekMjg1oGT55W+dmMcePVll2S0VBuAyT+C2+waeM7ml0eR8QprBpx8xY4jIHddEt1tbTxNO0ZAXk83qZLp7vpvTdXfKLO3WllHtLWAEBZhkWWj3cKeOnc05LeFXwXOADcBeVyc1zfQ8fpscZFDaWnyUH7scAFVzT4Urm8YWE03uEnhakYHIAKtpow7zwr5zMhUHtV8fLLJj3R8cHJVvOw5+5X0xDMq2kG4ZAyr62yWeABg5BVCUOGcK7kYRx2VB8Wc5Ws7RjfK2acD3lZ1DyZDzwsg5gaArGeHMhOVMRVs7AbknlUsE5VWWEHjKpuIYcYK3hvUUMEA8oGkd1M5ufNQJ2lauTPLuj4j29iVPFXkO7cq3dPluAFbgku9FFxVllZ2GuyOVf01U4uBC1gOLcYcPxWQpJ8kAux8lnpatypqwFoyB96vGSbu4/Bag2oPGHkcrIU1xdGR72VPUiXdbHsaW8jhTBrGHjsrOKvEsbfJVxIZMYOFCyrwilbyO4RDbqtXUFtLIQVq1S1ziSTlbHXAilcM93LXKqTaMEd1+yZWPxz0WMvdh6tjtx5WOkBD8ZV/Wk5JWOcdw5XPldvcnbwt6k4b3VhI8tHCyczGeGTlY6VrdvKitp3Wr3iTuVaTNY1pxlXjw1rTwrdwGcFcnNuS6bSNdvVPU1DAKZjnO88LF6drjTXQwVmY39veW/Rako7DHKHxtlkc3jIXHdd3maruPtjIxDzxgYXy3NzZdXTXTJOl1uppGy0jZW4fG0ZyFoN0qqiGrczeWj0WzdMrtPW2OSOZjnjw8DKybOm1z1HWGSGmeWZ74UceGWXd5/LzY8fZzpjHTASvfyOMKtFTPmcBgn5Bd00t9HSrnmYa4bWHkj0XSbf0Is1Fgug3vC9Lj4c8nm5+qxjy5bdIVtxljEVM9xJxz2XYun/AERq5aynmnj8MtIK7DbtE0tte3w6drQ3sAFutkpizaQzaAp5uC4Y7rnw9VjllpsejbUbTa4qfA4C2RhxjPKw1FV7QB6K+bVgNLifwXzmfLN2PoeHeeO4vJqcVVO6N7RtdnheVev3T/2eR9RBGGkEuyF6Mr9UxUHvPkGB5ErinVjWNNdgYWFrj2xlcOVuVelhLHleeplpJY62kJZUQHDyPgtjuGsn36hjdI/+kAGfmtdup/RV+mgmwIpuR6crHV1P+ipnxl/ukBzT5FTOKOicnTVC53iaGpdtlOPgVd2rVj6MgOeXfetVutSwucc54WDnuJa7IJb96XhdOPqHoK3aiFVEwEHcfNZoNE4ByQuK6X1aN0bC8ggAcrq9pvMVZA3DgSAuXPDod/Hydc8sxuqqZwfTzODh5ZV9SdRrrbj4dQC9vqFjPa24GDhHyMkHvAFpWWOdb5cWOm/WjqVS3FrY5ZfDcRyHYWVF3p53AR1DHk+QK4vXW2OR+6Jzo3d8hY9s1dRSB8U7tw8yV24ZvM5OLvXbquQ8kuH4qxMzT5rk364XSNxEkm4lVY9Zzj7WSvRw5I4M+LKOmyVDW8HH4rHVNcyEHJ5WhnWMkoBIKlqdTOnw0juFreTGd1cOO3tYzl6uQqY9gOc+YVrZLY1pMh5Vvbqd1bg+R5W02uk2M2Y5wvn/AFfqJb2fTei9LfK7oKdrQNrVnaeB2wcK3oqfYAcdlnKRofgFq+dttu6+nmsJpWpoCWsOOyvnsBZ8lNCGtZjHClkPukq071zZ59lCedtPGTjK07UN1LiSOyzV3qwG4zhaBfK7Adznld3Hi8rk5NRg75ctzBgjvlc5v8znSkhy2W61IPLjjBWmXiaPxRzkFfQ8HHuPD5uSsLVPaXckkhWj42u5BOFcSRiR7iOykDB9ndyvWk7PPt2hBTF8gaCOey3LTund5aXtz8Vi7DZvbKqNw7ArqNnofAbhrOy8b1PqOmaer6T0tveq1vtzKWINwM/BZIQENy3yU7IFdRwbwOV4HJyXKvqeLhmMW8JcXAFuQrsxOPlhVo6QgjjCqupneay6ttsv8fLHuYBkKiYwRgkLIupdxwqTqPbzlTje7HPJjXs2nCtpWLJyQEq0mgwOSF0yysN7YyWHxO3CkEJaMZCvSw54GVK9vHIW0s8MbKxlQwHuQrZ7OMLIywCQggYVtJDtPC0Z67sbKNp5Vs9oJz6rIzw5J94K0kaGgDuiWMm4efgrOR7tx7LJSQFxJVjI0bjyFrh5ZeVDJR4yFUezjKkJ4wuhz54xaE88KB749VcNgweSqEuGOHmpZKbmE+aqROMRzkhQz6KV7/7SdO2l8L5lZhv2vuVxDVnPcrCbgeQVVhqfCedxyFneNSXTZKe5bcAkgLYKKqZUYG7HC0SKtZKcjyKzNFM4ObtKdK+43aNrGM4PdFjaep3tAJwcIqo6o7HUjNNJznlazVnMjVsM8oML2+oytcrTz8l+uZV+Reh8MVXDGVjDwFka2TJWOOMHzKp57Pb3Itqp2IzyrJzg7ueFfyN3AjBOVIKRxOAwrWY91uqT7sXVObgKzdIMnz+Kz7rNJUOA2kfcqE+mZW8gOz8lly4bivv4z7ue6ke6lPtJ95oP2VgJa6m1HNDD4OHDg48+VtmuqE0lBJvaRhYfpVZhcb7EXM3NLh5fFfIc/Hvk7un3Z0bdu6ZaRdURU9PHSFrC0ZdtXpyyaWpbTQxxNhaHAcnCxWhtPQ2+2UpEYadvotyc4L3PS8OFwj5P1fqN52bWJpWRyEtbgYwqctOW8nGSshsD/eVOqjAa3C9THCTtHk552/dhHgtfgNyVmrbC5sO4rFsp3y1QySBn0W0wwCKlb8QvL+o2Ycb0PQ8XXnKsYpWsLxnkKStuAggc5zgBj1WHu9f+jpX/ANYZWnap1X/xN4a/B7d1+dZW3Pb9F9PxTHBpnVHWz6V0jI5Tk9sFcQuGp553uf4jnPz5lbDrqu9rmdudkrnkpJeTjzXRi6tai46g0xqrdS3FpJLcAn4qpcaP9L6RpatozLEz3iPNXE8f6S0rVxPOfC95oCx9hv8A+jtMSUUsRLnNOPkujH5c+XeuX3SpcHvOSAPJa7W1zw7GVnbxTz1FRN4bThxVGi0dXXJrXCJ3fHAV7cSbYi13d1PVAlxI+BXX9H34OERL+HcYJWqUfRu5VJDmxvA88Bbba+mtytoZlknu89lw82WOXaOvgndvsVwzHgcg/FQNwc0kZwPmtefSV9Gz3o3DHqrJ11liz4jMFcPjs9aZdm2fpRzTlzird1yA3e9nK1qK+Nfw7+KuG1LKgjY4H4LXCssvlez3AFxJKtjUtByFaSBxc4BuSoR7geWLqmSJZe1XIr8HAacLMWqgdcHNIBaPiqdpsvtMYe5vdbrZreymaxgZ3WHJzWdnXxceN8Rf2aibTxtAbnAWx0NIQ7cW4arajpi1owFnaKJxABHC8Hmy3Xt+n/wi6pacGPACysFKWMBwqdNTYZw5XYy1gGcrC92+eW0AAM5PCsrhVCOF20q7kIa05Wu3iu2tc1oC1wx7uDkyYK81+3OST8Fo16q8kgN7rL3urLtxJxg+RWoXSqDtzi7ByvX4ePtt5PNWKu0jRGdwwfJaXcC2Sb5LO3mq3OwHZ5WsVEvvu+fdfQ8OGo8flu0ji1uVVoqA1VS3DeHK2aS5/DdwW6aOthq6hhLcAFTyZ9ON0cOHVlG06S082CASObjzW2NjEZ4SjgMTfDHAHorw04XyXqM7cn2fp8MccVOJodjJ5V2yHthU4ox/Z7K9Yx23IauX/wBu6a+yLGOBGDwqjgVCNrtwyFUc3khFOXwtS07jwj49w44VcDGQm0Eq0cVWElOW8qzqIQ48hZh8IPmrWWDIwtcVGJ9mAztcQrWaMszk5KzD4NqsqmAkrWd6MW9vnhWs3B7LITRlpwrWSLeuiVlVgY2k5IVlURe+cBZKRuwq0kblymKysa9vksdI2PLsjBystNGS4nbkKxmjx3bhbYeXPtZuaMEKR7NvxVVzS4lSOzjGOV0M8r2W7nbee6tJHeI9X7oXEZPZW7oABlWjJQIIGVSe3crl32SqD/d7LSL3Ka0tywtKlOT8VWeCBkn7lQe8j4K0m6wqpB7g4HKy9BVe+ATtwsA2XZkl2VeU1U1pGfNLgputypKppx7+UWFpaoAgBFlcNp7vQ7yWs9ViqhjXuHK2SC3vnAy09ld0OknVMgGCefRfqlxfkPo+bHGVo81qM3LQSo0ulZZ3/YK6xBossAy3ssrQ6biheNwz9yiY/d2cnq9eHJYNFSBw3Rn8FmKXRAeASzB+S6pFYoGcluVci3RRgYaAtsfLy+T1t8Rzmn0I1m12z+CuanRcIgc7Zkj4LoXgtDVb1dPugcG+YVuT/a5p6rK15C67WhtDQStADS88LG/R3tBmnjle3Ia8DOPitn+kpTy+yHjlru4Vx9Gi3iWxF58ngk/evkfUT/uPp+HPr4t163t0G2jga0ANDQOFWezDiMq2oXFlHGN3GFW8VrGFznBe76TG3B836mf57T/ZbhUZngAZwrGa9QxvIJ7LCXa/e8dr+MZGF2ZTpm3BbvTao62Fj2Abd5WaLyYm+hXJtPV8ly1BGzLi0crrBaRC3IwQvlvqnNuXF9X9NxnauYdSKp1LTyObxyuFah1G+Rj27zn5rr/V6vDKZ7cHuvOt4qQ4vPZfHYTdfeYdoxl0q/HBc85csDORzkq4rarLx6LHTVQ3ngfeujSc2btFQ0U08QGdw5Wv17MOIw7HbgKrHcPZGyuacHatZtOpK25XOSCMghpKnv4ZzTIQUMfjDdG4jPougaKpqZuMxEjd5hcurNa11NIY3NaXN4PuqjH1RuFB/wAmwN+5c+eGWXhaWPWllraOCmaDTNIPmQFk5rxQPAApGHyzhePT10vUIAaePTCRfSBu8BzKcDOVy30+bWZSPTN6p6Wr3gRNYT2GFz++aTMgJjjJJ9FoVs+kHPVkmRjSPU8rYLf1u8XOY2nnHZVnFlL3dGPLFo/Q1e5xDY3cn0VhWaWvNmcXsgkcMZ7LoNj6yUheDPCwn5LsOkdb6W1LC2OpjhEpHc4V5LL3TlnL2eWrTfi+qENTC6KQDncMLebPb4a/njldi1t0Is+qInVtqexkuMgRjzXIq3SN90JKRNTukjHAcAr237L4Vs9rtwhiYGgFvZZukgDgCG8g4Wn2LVlPKWNlHhHOMOK6ZY46eriDmPaexXl8uVfRenmMi5oqXIHu4KzVPRlse4jkKpSwN2+WB54Vzua1pHOFwXG3y3zsniqUJ2HHkqrng8BSgsPYqE8gijyCFeYo6uy3rZQIu+CtLvtVgO97zWxXSs2wFxIOFo16qfFY7HdduGLj5GCuYMgdh3BWn3U+GHZ55WeuVY9g25C1S8VR2E55XtcWP+Lx+bL7Ner5cud6rEOkJJBAWQmcX7i7uFYgBxJxyvSwy1HmZbqam7g44yt6sFxZa4TI4Y5WmUcHicDsCs3VBzKVrS3OSAFzc2XZ1cH+OTo1sv4q8OYcjPPKzsVx8U4wFjNLaFqHaejq2xncRkKhukoX/wBI3YfivB5MN5Po+LlmtVs0MuR2GVeNe7b5hazS3djhz39Vl6ev8Rndc2WGnbhnGUjOCCSp3PbkkBWLKrcQMfirxjwPIcrPS+V2h4mT2U3GMjuonBHAUucDjhTI57KgcgqByPT5FQec8ZUnh+rj960jNLPGH4yFazRhvAV45oGOVZ1L9pyO60x8o+zG1jdxHrhY88ZyFkas78LHTtAPAK6NbZ7WM/LirWXt8VcTna88K2e7PcLSRjlVnLG71VpM3y7rISuwOArKVxyVpj5YLB3untwqMhwrqTBJOOVZv78reMrVOSV2CrczcHhXT4wMFUiAOAArRntZmbdwB3UrhuAVV7QCeFSk+ytIzy3at58gcq2PJ5VxKMMByrYu7rXGM7kl3MBwTlVY3NAyFbjGTlVPEaOAPwV7NnUy9FUtB94IrShmBwQPxRZ60jrr3JQ273mgN4K2m3WoQR5GAVYW6Ib2e8Fn6Qb2YwSv1fKPwrizyximYyOCQVJ4e5xwcK6kha3nbz81QJG70U9MXuVo2ItH2so8HAUcH4ITlOll0pCCRyPwVpWbi0howr4O2qnPhzfsbiVTP/aS9NebPpCW2SW1zPaze4O5WL+jZXxMtU1MHASF2dueeF0/qtboqy2VAlZxg/4Lzt0xuQ09rqSCF52O4A+a+V5+/I+r9Herie06Wqa6Fu1+ABhW1wrSyJwDsrWNJ3n9JOkZI4gs7grM1wa2E8kg9ive9LqYPG9VvqYW4XFzInOHdYllaalrTzuI5Va6Se45g9FjbTvqKhsTDk5wc+XK35sp07ceGG7I6L05szmyOqZB3GGldKliEcRL3dgsTpi1Clo2NBGA0K+u87YqKRxOOO+V+ffUeTqz1H3P07Dpxjz91nrQ50jA4cFef7icl2D3XUerFYai5yhsmW57ZXKK0+/8F4+EfWYTsxc43NPYLGVERL/ULJz/AGvgrWaEYJHHxXREZMVWgx0739+FrXT6Qm+VLtvILln9QVTKGhLi7cfRWXTi3SO9qri3DASVpJtx5blYHUJLrjPkY95YSZhLccALZ7xEKmaWXzc8/wCKw81I5wPHC2mMicZbWEmpQ5vB59QsdLSyMzk7gs8aQ7iMfxUwoRt2lo+8qfDeY2tYiLoiQAQsvbax8TSMHvlZGnsIqpQ1rMknHC2Ol6f1JaC2EuB88LmuWO1seLJh4Lg5rMcjKytu1HU0RBhlcwt5HKrT6KroBkQ/dhUX6arY48+CRj4Lm5NWuiYWOo6F693axvY2Wdz429w4rumm+uVi1lH7NdIo2tI+07BXip0NTTTOa6MjA4V1RXCekeCxzmuHxKyvjs1m8XrHXXSehqaV9dZqhknm1rCFyu3a0u+kaoQTMdsa7ByVgdK9WrnZmsjkme+P0ce6zt21hbtVRlz4mQSu7EDzXFePflv+pyxmnU9PdW6eqiAkdtJHmVnm9QaR5A8VpBXlhtbJRS4ZIcNJCvWalliLcucTlVvDuL4+q35epYNV0s44eMqo66sm4DiQfivO1q1c9h5eW/etvt2smujBM38VnOK78OnHn3XS6+qYWOG7hajdpGgOAOQsY/U7ZAT4hOfiraouHtD8By68ONplzY1j7ntYHHGfmtQvD9xwOBlbRdqkRQHncT6rTLrUPdJwF63DjuaePzZ7yYuqf4ZcAe6tR34VSV3jSOPbCg1uF19Mxjnl3WWsbBg7m5wsw+B9XdqOBv2XSDhWmm4mlxBcPktktsbP1woWcY8QLz+a7jsxkeqtI6fZSaepY3tH/JZOQuNdf7Y3TFuZcIfdaTzgL0Hagz9FwNJ4DQFzb6QOk/1l0JVtiG4xMLg0LguG668MtV5m0trykugMZlaJB5ZW82y8skwd4+5eULPVus18fF7zCyQtcCfPK67Zb/IWM2uIz8VnnxvQ4s3caW5RyEDIWRZOC7hwIXLrdf8AaWbpcn0Wy0t/Zjdu95cOUsdsvZuJmLWZRsge3JWAjvnix4DuSq8VwcQAXKce6OuVmeCe/PxUxOPMFYz23IxuUI605PvZV+lltezvLWgqymfvPKSVBkHyVB7x2JwVMiLl9lKowOytSNx5CuHjnl2VTIbj7WCujFleyymiBOcKxmGHYACykoGCNwVhO0Zz34Wu2OSykBPfCs6iDBJCyEncqzmAe7G/B9FfGd2KzLQQfJY6WAnnPmsljvlY6qBbIADwtoyyUHgn7lSIwCrh/ZWrySTjlTGdUXnureUgDAVZ+QD7pVB5wM+fxW2M2zua3mfuZjGFZytI5yr2d/ucn+Cs3u3LpxjG1bOPxVamcQ08gqTaHZyEHu5GMBaWSM9shAeM+iKzjlLW90WFlq+8X0Qt7Pfb8lnqLIbxwsHbz7w+SzlESfJfqmXl+E4KkwJB5Vo4YdyFfEZccqlKG4PCs0W6g44UVK8Zwmy0DwO6llcS3jlQ24PJUJnkNw1VyZ+Wo6xof0hTOY5mBj0Xk7VFodpvXDZo+Gl+cjjzXsavjMrHh4Jz2XAOqmk5TUuqY48kOyMr5n1vHcL1R9H9Py/x0vtF6zjp7nTxvcQ+b3fXK6rV3GNlOQ5+fe4yV5adUSxthqGEslidnj4LctP69qL/AD09JvcHggEEq3pPVSf41PqfT2947DNRuqmPla0luFktA2MVF48R7Pd+IWZtFIw2iJpa3cWjOAtn0vaY6F/iD/BdPqfUSYObg4bc+7ao4fAjDBjgYWo6+qxR2efLucZ7rbZZexBXMeqde422YD0IX596jm6s33Xo+HUeatW1pq66WTJIz6rT6545+SzF9qzJVSDGPksHVvBaSfRZ42PemP8AisCdxR8ZLSAMkqeJrXkYKui3aC7HZaTKM88XONeve90EABaHnHZbzY7ezT+j9rh/SSYPI9VhYbHJqTU0ReMQx+973Yrdq8Mmf7MC0tjAGPLspueq59OaVdvdJISG4aSSrGa2Ox6LolVZC5uQAD6BYp+npHE4ypvI0wwaKLS5pOB+IV/bdNVFaQ0RFxJ4wF0aw6Hkr5mtkbkE+i6/pjQ9BYIxLM2NxAyMgLDk5bI68MLtoGiOkA8KCedmMjPvNXVKXp/QwwtBY3geiq1Wr6CjjLGhuWjgDC1e59TAGlseW/JcPuZWvRw4sWcqtH21mQ5jBj1atcu9gtUETsNj59QtMufUGumnO179o+Kws2pqmqk3Pe4g+Svju+WnRivrxpm3Fz5GhmfJaTc9MRuOY8DPoFsRuL5hzn5Kg8lwdnIXTONxZSOd1Nnnp5MHPB4UGiWFxznA9Fu9XBG/4n4rHvtPngH7lp0OPLyw8L3ysye/qqEsrw8Ag9+y2GkDYJwyeMCPPoszV6Pp7uwS0sgacfZV8eOOfK68NKiqXRFxBP3p+mp4eWuIClvllrLQ9zXtJ8shYls58NrX8FXvHNE5bj2bZb9TyH3XPJWfp9RPcBh2eFzYgxnc0EgjuFc0NZLGeXFRMZPst79b++7GcEPJwsRV1W95weFiqK4eI0h5wfmqz5mDz7rr4u3ZF5N+R78OJ7ZUGPJacBSGZrj5KZpDcEnhb5+EY5zba9Ks3kFw5KztE1ses6Jx93+kCweknsklZgrP30Giqoatgz4eCT5ry+V6OE7beu7LJ4lviIdkYGCri6W6O6W2ppn8h8ZacrUek9/ZfdMwuzlwwt8bgEtAH3hcduqvctPl91u0jNoXqDWAs2U8jy4ED4qrp28Nlib757L159KPouzXVgFVRRsbWRgklreSvAokrNL3aWiqy6OSN5bh3mtLOqdnbxcsnl22GsBaxwJzhZOlujg3G4rmdp1K2qMbC8jjHdbRTT4AJeVwZ4avd6Fy+HQbfqQxNDZG5HrlbPS3Zk8TS3AyuP8AtuDlrnE/NZWiv8lKWZcSM+qSd+zO2x1eOuBIBdhV2zg8tOSufU+rBNhju2VsFPeWBjXA/a+Ktce7Pq7tj9pLR7xUHTCQZCx0VfHI3PdVmVTQO34KZjo6l2H4VJ7slW76kbs84UBKHjOcK6OpPKR5qxneAcKeWXnurV8gxz3VsZuqW7HnOSsbMCHuIKuJXvPAVtISO63k0zqg9/GOytHYdyeVdSAbSVau7K7Kqcn2TyrTs4q4kzgq3ccHJV5NscqkmPuK0kxgequHvjPmVbSloHBXRhHJle62ndwrVzsHhuVdzfZVqTtXRMe6lqgXnnIwqchJ81Ucdw5VFx4Wnt/KipF2OeUVNrto7olmkafRmJ3huA+5Z2jIAysCyaPcPmszSTMLV+mZPxDj3V7n3j/ipJsAd1I+TA74HyVnUV8LIw1z+VLpuNn2VXuDBkqQvBbnI+4rFVV4haw5eCPTK16s1bHA4tz/ABVJZVJhcm3zztaPtY+9UWVke52Tlc/qtYsIPPb4rC1OuvDc7ae6i2NMeDPfh0urrYju97+K0HVkkNWXR9xnJ/Ba1U61e5xw5axd9RzzyEA4yO68z1WMyxr3PR8OeN8NfvVr9lqjsH9Ec8BYayTCyaqp6o5ETngYAWwNnEkpExy0rGXS3u8bxIWF8Y548l8dnye3yeX0v6br43r3RFXFdqSnfE4PaRyO631sMccTT9k5wQF5C6KdYWaXu4oq6RzqYnDQfJesLXqOiv1GKimkDozzwVTn9XMsfLLi9J05d4yEjWE8Ej5rk/Vt4bS1AaQRt9V0+a504BDnAceq5H1Jqoqz2mnY4Fzm8FfP5XrzfScHH0x5puzmePIViJcPaeM/Jb3VaQEpJcc8pS6TpYyDIRg+WVaTs9GTs0uktz3j3W/wV6y0SOyHNyPkt3babfRH3cE/NUpKylil24Cd4pZK1236cbAyV7OJNuBwpaXTUjpC6TsRnKy9XfY4PsYwsTUakJPBA+9Xxtc/TIvHWJjGjLuApoqSlpyS7n8FrlZqWYjA9VYTXqWRvf7lPfa2OUjfI9SU9sPuAKjVa3fUtcA7DfiVzZ1wle4nsqbquXPByovHutvds8Nsrr82QnJ5WFnqWSuyD3WNEj3j3u6lBO7k4UzhT79VZuScKnsIwVMDjueEIJC1w4bvanvVAOcDwq0bie/IUjQQBwq8Q810dOke5tSLGP8ALB+SiGdwFVPCqkDaFOmWVlWht7Zh7/PyU9C99sqA6GRxx/VIVbb4Z4/FU3Rl3JOVHSwy7tqdHbtT0PhVDWicj0Hdcu1loeWw7po/+TzkYC2ilkfSvEjf6pW10d3pL7TCmqmNLiMe8rSMtPPntUoaGnn5qvA92Pe7retfaA9hY+ppG7hnPu9lz0F8Uha7PCvYhdmR39VVopHOxuVvBh/OVcxxE8g8LXCM7tdRkZweFO+UM+KosBzz3VtXyujiLm/gtLNwlu42XTN2bDOATjnsuh1s8VdQv2nOWrgFNfXUk4zkfFbrY9af0Xhl+Q5eby4X7PZ4suzvvQXWYttYbdKSBu4yvTMMgeN2Mg+i8DUF+kt1ziq4HYIIJwvWvS/qRR6ktzGOlDZwAC0nuuDLe/DXKy93RKimiq4nRvZlrhg5C8jfSS+iy+9yyXmztayTlxa0clevY5Wkd8BHRR1LXMc0OB4wey1wukdb483W33DR1xdFWsdHJGcAEELN27Wb5mtY48Y75X0A61fRhtPUuj8SliZTV3JLu2SvGfUb6JWrtCiSaCN1TEDwW84C6OnHPy2x5sp2YqHUcRa0mQbseRVf9YYngjeR8crk1yobxZakwVcEzJR/5SFaSXaupwN4eAPIhV/TTfZtOa67uyxakjie0+J29Sr6i1w10wjM21oPfK4MdRVJ8zk+qpi71xe17S/7sq/6ZHuR6ts2tIXO2GUvz6La6W9xSxh0bs/evJml7lf5JcU9PUS7uOGnhd80BorU9bbW1U7JY2f2XtKzvp9K3kjo8NYKhuS7H3qcVLWnBd/FYCenqLfhkgcw45yCoQ1rWD3jn4rC4d9HW2J07CDzyrSaUAkhWDa9hGcqV9XkZCmcevB7i+3+7nKtnzhx5Vt7W93bsqL38kk4K1mKfcn3Vnv37lZESOJHYfNVjLx6BUhIOyt0xS5xBx93Gcq0mfgYVxI8A4VtIQSTkLoxxkY5ZRbOLc8DlUXny7K5GBzwrSc+/kYK6JOzkyu1CWTAwrKoe4jhXUgLwQ1Wc7Xs7+atOyq2L3hvxUrXux7ymkJVHPvfBbybUuUVg7PkigCCOEVbjdo630Sie1zgQw4WYpaqKBucLQxenxkAPyk1/kEZAK+8y9Vx/L8r4fRcl+zc7nqOKKM4I7eq0e9ava7c1rhkfFYW43SV8T8la7J/S+8X5J7rnz9bxyeXr4fT87e8X9dqmbJ2v5WGlus1Q/Jf39VF1G2R2eMKBtcbiPfwvJz+oYy9np4fTLPstaipkOAX5VlKHSHh+VmRRMZwSMI2KliOSW5XJl9R/wDLuw+nfMa6+illIxlT/oSd7c4d+C2GSemjAILVazX6NhwMcLlz9dv7vQ4vSTFi4tNTPGTkY9QsjQWQU7tko9xwOcqg/Uh9cK0qdUluRuXicvJ7l7PQmExmlV+i7XT1Alxh+c5BW4WPVL9M0rYqaZ3h/wBncuZVGp3l3vHIVlUaqO3AK5MsajUnd1Kt6lVO5xMzuf8AzLBVmtH1Um98rj965pUX90nceapm9BwwXAKswsWmcjoFTq1jm4a/BWGrNQSOGRIB960yW4Y/rKk2pdL/AFuFrMbGk5dNmq9QyZBa/PHqsXNf5nvzuKxEhIP2lT8Qd1pjhtllyMnUXOSZuC4qykqZNvdW/iccFGEu81t7XSx6lT2h575KmbI5+fdwoRD3u6qYPqo6EdSkGEuOVOyPBUdvxTAVuhHUmIwVDZnKi1pUSQDhbyTWqyt7oBmBhVA3gAKUN3A4UMH1Wkw0nrVscqOVI0HCdk6U9aoZG47KUSgn0UpkDhjaqYHOVecezrXb35bhUwSe2VAOCgXk+eE9suaL/sYPCtt5je17XEEHjCqPB2kl2VIxzQeVHQr1M/aNUROYaSv99j/dy5a1rfQABkq6Ah0bucNCpVLGyO904I5WaseoXwt9lqQXw4xk9wq3BW3fhyIRvpZyyX3XDjB9Vf00zXtAyM9lvmtdFx18YrqHa/1DVzSoo5qIuaQWOa7zUTshm2xPeQW9sK0ucTmwkEH5qFDdAXNjc7kcK/q4/amZByOy0mU0mTu5vdpXNkLWkj4KS33KSmLeTx6lbBWWAOqHFyxtbp10TC9gLlTPWnZj2bPbNV+KGMdyt60nriq03WxTwSHbuzgFcIY6WkmGMtIW02S/mRrI3/aHGVxZ4Szs0e/+mvV6j1JBDFPK0TY5BPOV1KnmZKWlpBaexC+dGmdSz2SrZPBIRzk4816p6YdZY7lRQwVMoY4YHvLD29Lzu7vIcYOchWddSwXLxGTRCVj+4epaS6RVEIO5p93OQphUMcBg8rPdirQ730R0nfpnPq7VC6Q/1tq1a6/RX0bcGHFujZ8WtXZBKD5qYPGe66McqtcnAT9DjRbsE0Y/BZa1/RR0Xbsk2+OQejmrs5lye6iZmt7nKtcqyttaHbekem7DERSWynZnz2rIOsVLDGIhDGGjyAWxVUwwOAsXO/J4CjqqeqtRv+hLbc2O3QN3EYBAXJtV9H6inzJRn3e+F38+9nJVlVNa7I7q0m4n3NPIt20xdrbu8SJwaPMBYd1RNTNG9xHPmvWl0sdJXQkSxh2fgub6l6WUtUXmJgb5jCtMdnuONtuzRgE5KmFyjeeePmsjqHpvcbfJugYXt8sLUa6GsoZ9ktO5pHfKnp+yPdZ72jePtjHwUpqA3u5YFtxAbgtwqnt7ZB5AfFTeJPuMua1pJ7FUzOwrEiqbuJBBU3trVpOOxS8u19JKHNIBVqX88Kia5uMYQ1TMA4wtZjdI60S4glW8pJzk5R8wceCreV+ey0xitzQdKADkZVAne7OOFM0ZJz2RwxhdOLDaYe6EU7G7m5RUt7oem36wc4n3v4qnLq92R765O65yNxmTuofpaQ8mRct5eSq4emwwdVm1ix0eHFWJ1bGHcYwubSXJzxw/KtzWyZ7qlyyyb49MdSdq5rmYGMq1k1WRjDh965x7fJ6qDq557lZdNrWcmMdDl1WXNPvBWEmofEJzJhaQawnglRdNn+uVS8d8pvM3KfUO1mBJuwsNVX6Rz+HLAyyuJ+0qRA7l2So9uue82qzgvEhGC858lbzV8r3ZDliQ3kEvVUODeM5TomKJz7V31b3E5coCXjuqLi0eahgkcdla4Le51Kj6jHCoOcSMqctyMqO0YSYHUo48Q9zlVGwuaRk8IxnvD5q9c3Azjhbe3s6lB8PGQcqlswO6uHvAb8VQwc9sK04+lnldpWw+nKmEbgpmcO57KtuaPPCt0WqXKqbIyHZ7KphRBBPByinoqvVRo4Udp8lK7PGFFryM54AUzBO7VVhAHKgY2vOcqTeHAFSOqA07U6Crj7De6mB4BwFamUYPOVVY7LRzwtJipUXPAd3wpC7J7qDm5OUIV9G0wOOSoEg/AKQk/cpd62winUmLVANOeCni48lM2XfxjCmxHWlcCRhUpMtarg55VJ8ZcqdKfcWZcQ7hVI3NByTzhRkhweeApfDAzg5S4dl8btlrVfXUWY5PfY4+aqah0xTXqkNTTNbk9wPVa9Ix3PCydovUluLGvfmLPvNPK4sovHL7pa5rZVEOy3D1e0F4Ef8AQv5PqunX3TVDqeB81MQZO5b5rk19sVRaqx7XMLQ0+ax6rLpaXVbJBCyqaHFoOSshJpdlRTkgFahaL4aVuyQkBpXS9P3KOvpODyfVZ52unHJy7UWl3Uspc1vl6LV2ROpnPOS0hd8ulpjq4nAtycLlmpNPmmkkIbx8FRt5UdP30SlkLvxK6tYZZY4I3QvO4cggrg0HtFBLnAHoV03SWpXMii3uyRxhVsWj0NpTqlcLSIop3F7DgEn0XaNPa4obw1myZodjsT5rzbYLhT3OINfGO3CvjFVWqffRyOZ5gZWGU1Wsw33eqoqhsrMjBz5hVY3gDB7rgWmeq9XbAyGqGR5uK6dZNa0l9DHRztBI55UWqZYVt8rtox3PwVtPLhvLsK2bLl+7Jc3HcKSecu7NV8btz3t2DPuP2ifuVCabcVI6pLCQRyqLqrd5AFazHbPqREg5zwrSpdufwVPLLuVpM7aMrp6OylqWaYNbgjKx00okP2VWnfuHfCtHOa3gq2OKtz0sagRudtc0EfELWr3pK33R2Xwt3H0C2Wd53HgEK0e8EnhdE4/uz9xy69dIqOoaXU7zGQeQtIvfTaroifBbuaPML0A9jcOI81ZSxxv3B0YI+KvMUe48v1dpq6Bxa+N34LGy1zoZcOBHzC9J3OzUk5OYGZ+S1a6aFtlWCS1of6ALpx49qzkjin6UbJ2OD8lPHXjOC4FbpcelTXOLoXY9GrXK7prc4NxiicR8FPs/ZPuyLFlWC7uAFU8VvfOViJrJdIXbTTSZaeVF9RPRsaJoXN+YUXjmE3V8ctsoXg8tUNx+CtIKkuA47q9ZEXj5rn69VtMdriBrizJHCK4p4PDiAKJuVPRWXZLuDS5x4+KqAMPmVRjiaAeFWYIyMA8qPbjgnKna0NHBKFyZ4woKfb0t1o7ihJKgimcaOs2lxyO6gwOzycKO4jkKQ5e45PCXBPWqOHPqoYIUGjCmJ3YWN41doJg4UcFQzI3sFXoTKZyp2uACkG49xhR24VulbauNpCok+8eFUBIHAypdqTHudSpGcN+KqtmLmHIVAdgqnhuwujpmjqSPz6qB7qd7eMqTOVEnY6u4OTjy+CnEDT3zhSM495T+MSOVXVWt7I+E2PkJn4qBk3DGFBWkZdVThwA7qG5rs5KkOPNNrVeYp6tJ2hoaACqcsQcc55U7MAcKDsFXmMT1qG0jhV2EhoClCA4V5ijqityfNQdx8VAS/BTnnyKrYyuSQv4Tw8psOVUbjIz2UYqbQ8A4zjhS+Hyrt4BAwVIY8ha6QofZ88qOeOxKuIadvcqr4YaOGgq1wkmxj3tDxgghWr49rjg8LLTsLm9sKykgJ8wsV5lpZPcQ3IVtMS4ZP8FeVERCsnjghc2WPZvjltC33uotVUHwv4PcFZ+tbSawpS5zQKgHBHqtQliBBPmoW+vkopvEY/bg5XDljp0SbYC+6flt08jSxw97AVxp67y26drHOLR37rpdO2g1dT7HlonA7eZWgah0w+x1rnbHFue5VNbTLquhWi6x3GLhwJIwrW92GOridgAuPwWg2i9Pt83ukgBb3bLya5vDwSfJZa1XTjdOY6h06+F7sMPCxFBM+hmY0nz7Bdhulujq4HkDJIXLtQWz2ScuBOR5I0ldM0VqAMcwFxyCup0V0bWYy3OAvMlhvTqSXlxG0+a6rprWcYaAX+8eyyz8Ojjz7ulVttjrWOAbgELEU9PXWaQvpp3bWnhoKnp9Y0rG4lkDSR3ypJtV25zse0s58iso6stWNvsPVmttzmQ1QPht4Liui2fXlFc2ZdOATyBlcBqr/apWua+oYcjuFinXWCkkElJXD5Aq2PlwZ4vVP6Qjm5Y4OBUmfFJ/3LzzaOp9bSlrHzbmA91vVs6r0su1kk4aT6rrmp3cmWNjpBLGN5JyrSacYPPdYKm1PDWAGOdpB+PdXclZkZIJ+S0mW+zG1UlkaeSSrWR7QTyVTmqhxxj5q2mqB5Lswx258qmfMM4zlWr3ZJKoy1eHHgqk6rB4wV1ydmPUjK9rQcnlWskzQwqWqkjIzkrGSTN5A4+9a48e1Ms9JqicPyFjZ4ySS08qs92fNUt3GF1TDTmzz+FIh5HYKpEHNHvYJ9EHdVQHen3rSandWZVaSUkMjXboW59SAuW9SJKcTMpYoWb/ADIC6Xfa80VK8NxvcOFzx2nJrpVGpny4dwvK9Ryzw9j0/Flk0SmonEA7ThZenpnMwMLYKm0RUzMNwMeRVKno8OOSD8l5V5JXrTi1Fu2lcWghvkizkNOdnujIRV9yrdDFxsJHdTNj2nIQAtHkjXDOF7eN2+ZVERFN7AiIkTtEY81AjundOUyiEWNyFBwIUWyBoOVDeH9lnZ2TjbEAHE5ypw8jjGVKo5Wdkq/UiH5HIUDkqBOVUaMjsqXH4JYh4jhjBU2SfmmFENyFOOFX6pUu1VRJgYyqZTCvqq26VHS8YwqefVEV8YpvuDnjKieAojHkpZSGtyVbTXqiLeSplTiw93Cr+GqaL43Eh5Cl2lVRGFHaCf8A8p3Y91NrVNgKbwz8vvUNoBwSpm4hRLDuyE2FVcNHbkIFfaVLY5VPGkHlwqgZwq3hnHAyiFDeSOyqMjzg+Sk2uzgDKumRu2jLcKZJBMWtLQdpyEjbuOFEuAbjlTQPa6QAd1YVBEQFERuCuQwFNn3Kdizma4M57K0ka1p7BZOePLVZzQ7Ryq6gx1QGOB5wViZsM3Zdn7lm542gH3crF1LWDOW4VcpLHThGInAMZIOQsafda4ZxlZGueIm4b9kqwG2RhdjsuPLFvPOijuslrqGyROIIOeF0G1Xyg1ZE2CtALiMErmM4DycNyEtdTNQVLXx5Az2yscpqNZI3DVuh3Wp5qKVu6ncO4C1OC51FBKQHEAeWF0jT+sxXQijrmh7He6Mq5vHTagubX1FCff25wD5rly8tmvWe/wAddEGPd7+MKy1NaYJoHyOLWv8AQDurOm0pXUdydEyNzSD3XSLNoljoGmvIeXc8+SwyulsXFIdJXCqnxT07nsceCAt3s3STUDix3gOjj77jwuv2ynpKENipYd7+w2tW8W+2XW5xNYZGwMeMc8YVLdr9Wq4W3pJXyuBkqA3j+0pndHHt951YAf8A416Fp+jk1bl0t0wDzgHOFa3foxTUUW51ylcRyMDH+9Z3/wAN/ced7n0pfFTkxVZc703LBTaIuVCMguIx6rr980r+jDN4Nc93nglafWXKeky1z/Ex5la4Y1S5tD9irIPceHAjzVCetnp3jlw2/FbTVXaKU4cMH4KympoKxnBGVtquXLLazs2uq2hmZioLGtPZxXQ7f1oka0Nlc0gepXN36fjcHZaC49isTV2OaF4LCHN8xlazUY2fd6Ct/VGkr25c9rTj1WWptVw1TNzXgj1yvNdPWR07hE7LT2WVpb7PTu2xTO2DsMrrxzkYXHu9DQ3Nk7yfEaB6ZSapAGQ4O+9cQo9WVkYILi5Zal11NH9seXqurDkjmvFlt02orW4Puc//ABLGOrHO/qY59VqkGtvHHvcferiPU0DvtyY+5duHJjFLw5VsBqCT9lBMf7KwDtS0jTnxCVAampjy15JVrz467Mr6bJsYeT2BVnX3f2WMgHcSOFr9RqRxBDJMFYuW4unI3P7Lk5PUduzr4vS3bIyVb6yoDpvsqe4XIU1M2OM48shYZ9wPYlW73+O7BcSPkvB5M7lX0nFxziiR2+qlOTuGVkYImxD3mn7glJSbQCOVkjSuLAewXPpruVSiEbh7ucIjnNiOAAEWslRpgB37Kba3HblTBgCreGAO2V9HOz5FbYKbT6K48Ieij4fwVkLbafRNp9Fc+H8E8NQKDG88pI3GPiq5j+HKkkiLiMKaLfaD3UwAHYKq2mceVHwPVUFHBTaVX9nHxURFhRoW+0qs0DA5U/hj0Tw8JpMiTaPmpsDao+GnhqfC2lJFV8MeieGo7KKY4KiWkqYR+9hVRFwpFuBjyU2zxB7w4VXwuVO2INPmfmgosjDTwMKdVC3Ayot95RppjZFMA57KPJ8lVwSmxNK2/CmBk4wqvhjb9lS/ZcAqu/jsmlVuIvhhTeC1VgMjOEx8FIpCPPZTxxuDu6nb8lFgO5BMRjyUIyd3KruiOFMyHzKsIFjcDLVCNjN/AwrnwsjywoxxYd/VUiLWAdiptuVMWn4fcpH8+aCEkZOFQnhBHKrNGDnOUkyRwUGNlpgWnHksTVwNGc8lZ+oy1nzWHrAWk8ZUVpjbGs3GIPOAMcLFu/ogW+Xms9VRbycrF1bAzOAFhZt1b7MJUEtkIacBSMJBGScd1UrZA15OOVQDvEw0HnOFzcs+zXHyydLUO8cOaCdvIXVtAz3OMmR4Bgd3DvRaporRzqkePODsJ7FdaoKGNsIZC0bWDGAuDK6reKppYJHulEQ3H4LJQWaarYzMe1nrhKKmL5GAABq3mjgaIGDjsuPKtscLWFttkhoNu1nPfKvqmvlp2nbg49VlZaTc0uzjaPJa5enmKN/yyqY960y49d1zSazkpZPefkZ7ZyoXnWolp3ESDGOy5/U1ewPeScrC1N6YYjk9+OV1Y4bYZXS/v96kqd7mOHPqtAu9W57nAnnCyNZcmz7mtJB+K16rJdIcrtw4qwubDTTODzyVKyvdGQriemDnEn+Cs5YS0+6PxW149Kb2u23gl3PZXkFVHICSScrCNYR9oKo2R0YwFncBl6q3U9yYNvuyeq1uqpp7ZUODtxGeFfsuL4nEEfLCzNNXU1dG1lVG3ceA7Cr4W3GGpa50oblXYDS48lVrpYJLeRPH70D+Rt8ljmVZafsnHxCnC91uzJwyhnAPCuhIHYysKyt3EjGFeMmOO/C6Np8MgWxnGf8AFS72MadpViZXHz4UoeGnJyVSp3F37QfXhTtqPU8KwM4PkcK5hBcPdHmsMrXTjlIuDKTjaMrIUsLpMEDBUKOic84ICyApnxNHkPguWzddUu4u4YXbG8YVaaVzItvorZkpaOSVSnqQ1nckqOhS3S0qJ/fOSitJnb3ouiY3TP3FdkeRkqrGDntlVBFtGFGOPDgCvbfLSoGLCeGPRXJaMqO0ZUtL2Wuz4KZkIcq/hj0CiGDlFJVB8AaFIGYKui3hQ2/BRV1s5m7/APCgIgFd7FDw8qsFr4YTwx6FXXhfBQ8JWFtsHoo7Pgq5Zg9lKY3Hsmkzalsz5KXwXKuIn+aqgEDyRZZ+A9PBerzB+CYPwRGlmInBwKnIV1sJ9ApTEmkVRY3cVU8FTiPCbU0KZjHbClEe0qvsTamkKYYptgVaNocpvDQWxYd4xjCqBh8wCpzDl4OFXbGAFAtSw+TVEU5cc47q8EYxwoZLfgoFv4IxjHIRkQaeVc7M8lPDyPgiUu3hDkhThqiWKyFHueAVMG89lUwR5gIyMud9rKkA3n4KfjzU+3AUNvwyEEGgFwUJgGjIU4ZgdsKWUE8FBavaXt94cKyrKNrgfIrKNGWFWNQ0vaSorSNdqqYAubkLEVFJxzzk4Weq2YLvdysNWnIx281TTRrFxYGzlu3LfgsppKyfpCsLpG+4HK2npXSuPOPitrsE0VptwkkxnPdcmc23wroVrYKcRUkIG4kDAWdraiK1EQscN7vtYWtaLBFDVXSd5wQTHlYuS9OqJ3SSu3ElceWHd0Y593Q7LWRyOcQ7kdluFvrmvDGl/K49abxGx5O9bbQXxjMODvJc+fH8PR4so6dHJviOCCMLX77CZGkAjt6rCM1k2L3cqnJqGOqdy5ZzAyy2166Ujmxv5AGFpVW3YME5W33u5sETsOyDnhaPV1HiOyBgLu48deXnct0s5SA/g4VpUM3ck5U1S/JVqZiDhd+Mjlneqc3u444+Cohokzxj5qv4mc55VF4BdnO1L4SoPhBKkNO4nICuN7WcE5UPGB7Jrs1l7LN8PvgO7qcZYDgE4V3Cxsz/AHvVXUlJHghuFy5zuoq2S/CP/itS3dE7gF3krbUNuZA5k9Md0TyeB5LFVj/BeQBnCyNmujZm+zTN9zHBKzx7LeGKbwTyFce0DHDuAra9QOoqjDRiJ32Ssc+p28ZW8OvbM+1g8ZQ1B8iFhPGPl/igqCCCrU3pnqeRznckYys1SfZHIwtOp6w7vRZ22VwPDnZyqWSxfHNttLkEFp7q9e/c0gu5CxFHUtG3lXj5W54Gcrjyw79nZjypp/cIwfJWU8+zyyo1E5xw3CpMcZm8nBWuOKtz2p795JxhFcR0wA5OUXTMLphcmT2Dz7p4fOcchQwXOBHZXjAC0cL0HhKLc45bz6qZrATlZK2U8NTXQRTTCGN7g0yOGQ3K3bqF0rb0/o6CpmukVY6rjEkIjjIDmlTornXhj0/gj4+OAt01J00uGmNPWi9Vb2vprgMxtYOW/NXmoendFaNFUWoRe4XiqJZHTBh3Fw7qekc7IA81HZwq5gfuHuOawfZOOD96mawHjHPoq2Ly1btgL+yiKY+ZV62lkLctY4jzwFtfS3S1t1rqmns1dPNTmpIZG9g8z/8AlTIs0fwdp9VM2HIyut6b6U2m8XvUdofXVPttqbK9pDfce1nqVy843e72OSOPLKWU2tBSODiUMW0q9bDIeNr8/JUHxSvcQ1jjj4KErfblDHyq+wjgt94eii+ORjQ4xuA7ZxjCGlv4XZPDI8l03S3Tm26m0HebvFVTR19BH4hiIyMLnvgOaMlpI9cKLKna08MqHhnKuhDJL7zYnFo9AoBmPJIqoNjweRlTlg/7sKuIHuGWsPPYgKJpZmua3a7J8sKTS3EY/s4QwjJ+CuAx3iFsjC31Hmth1XYbbZIbY63XD26apgEszCMeG4+SnVGrxxAE4U+whVo4ZW8uYQ0+ZCybtN3B1lFz9ncKMv8AD8T1KgYVzeVFrcjsqjqaUk7GucB54Wa0TaqO+X+loK+SWJlQ8RtMYztJQYHY48jsokcAEcrbuoOkWaN1ZWWmmlkqo4MYe4c8hayYXucQGkkeiJiVjRt5CmwPRTFjm8FpHzCiYnju0geuEX7aSFmB2UHMODwoghz9of72cLPatsNtsrrcLbXuuHjwtlkAGNjj3aq62o15rBg+amij95VWwTO7RuwPgjGndjGD8VZCfbjyUrm/BZSg09crnR1dVTU7nw0zdz3eQC2ul0Hb7n06qb9BUz+2UjmxyQObgElNp05873FRIL38K6MW120tc3Pk4KBp3kEtY5wHm0Kn3TpaSjHA4WPqQeA3ssnN7vHGfME4W80fTy2XbpfW6jp6mYVdE4NfA5uQfkrNI5DVM4+JHmsHcGcghuVtlxpnxlviMLTt7kYWHqaCWWPc2JzsHHZV0vpqU5ZE8lxx8FYsujrlVwUUUhw6QAhUNbVj6WLYxjhLjs0crD9OqWsqL42SWKRrGncC4EZVbi0nZ3C93qOz2mkt0R4azLiPMrTv0iX5wSspeNNXi52ye9incLdFIIvGPmcZWrjLcDGCuXPjRvVZeiub2yHkjn1WyxagMTWAOJz3WjMM0Ye8RvLP7QaSFtXSzR1X1C1VBao5XQwvBe+QjJAAycKk4up14cmmWGpA4jPdRffnYJblV9d2fStks5ltF2qZLlDUGCSlqY8E48x8Foor5HN91ryCcAgd1T2tNfdljZai9F7cEc/FYiouLyOT9wWHnrJmfaDm+mRhU2OqJC54Y8tz3wuicenLldsgJ3uJ3dlSMmSrX2l7xsAw89h6n0Uj3zRYL43NB7ZGFrJYz8LtsnJVCaUgjlUXifAdseGHILsduFtNn0xZ67Q9zu1VdzT3OF7WQUjm/ab6q07IayH581HxQOFKIJJWDYx0jh3LAjGEP2Fp3jyI5VamUEj2vJBwr2KtIZkjJ9VZinmkd7sbyRyRtKph5BLQeVlcNm1Wqc2aQnOD6K1eSxww7GD3CkkJeTujLYwf+VLSefJdi1N0KorDoCLVh1RRz0E4PgNDSC92eyy6Ebc5qALzZ2ENxLC3nHdac/cJHNc33guqusNms2kbJdaa8GqutdI9lVQ7CGxgdjn5LRtT2OemrQ+OE7ZOQAM5VtJYFjy7GRyqgac/yVxDQzSyFpje3by/Lfsj4rcelmlLbq7WVus94llpI6uQRNkhGcOPbKvrcVtaXC0g8jn0WXpmljA7bj4rYeoehG6E1vebPTSS1cNJLsEhZ2WDpo3zODG8k9gsrLL3VxrK0EriBlZEVLmAY5VlHRz0zPfjcwf+YYVxE0ufyMKZhuumZ9uy6heZQdwVWONp8scqrTxtDR5KsYwCMLaYa7nVvsplmEV0yJpb73dFdOl62IbccI2PLSM8K1ul0jtToTMWtjfvLyc5DWsLyQAPLb+AVnBrG1TzCJk0geXNb70LwBu+ySccB2eCe/kunV+HlVlwGsByfku9XChd1U6S6RnjHiVVtq20FSfRm7ufuXmet1xboKaodTmSomjidKxjYngSAEDLXYwRkjkLpHRb6REOg7bd6O80TBTVcckgLS9xjkY1u0gFvbnnOMfFaSVnXab1LH1C0TqWz07Q6axzsdTNAySwe6VrlxsdJfde6Q0hMSKOjhjMsbDgOe7k5WndGOtFv0vqS43OUy1NHUROFVA5ha8E+80kOA488rW4+s9JFrx+qaaSVz21BlZC+IgvaThoYCPe+5aS7o9EyUdB+n7pa7q2zRWARSRwNbIwSxFo4PHOV5qrqZsFbLDE7cA8iPjO4Z4W4at6p9LrrVT3yVlzbcKtjpTSRRe4139YuwOMHvlaHa9RUtzcaij3SMhe13hOYWuaDy3uOQQOD2VMomeXorScdzik0tTPtFBbaSTYyWCqa0yVAODu557ArCWOyU1i+kxFRUjRHTx14IYwYAzz/vUl46n6Yud0s+opaWvluFBFGz2ZpwwluOcK3h6l6ah6tTax8Cve0SCWOANYcSAYPchOy98M70+APVzXpx/2SswfjlcC8V8MoLDtLc43Djuu12TqXpWz6pvt6bTXOV92jkj8PbGPDDjz/WXJq+CjddZ2U/jMt/ie655YX7flkpVMa7drHVjdM6M0dcqS1UL7hXRObNK+FpBAIB49cK+19f6TRmqNPNt1mt8bLpDFPWB8IduLsZx6LRNca80/qPRlnttHHXe02khrHSRtw/JycYUuveo9n1VU2GspqetFXbYo4pAY24IbjsnZor6vsEVq60Pit9pFZG2RsvsQHDsj09FvsFon1LZNUtu9Fbo44aZ0tPDAG+JC4eRxytNk6w2iHqVBqemgqHxOiEc8UoAcOMcKe0dTdIaemvsdNS3Koiu0UjHzSY3MJ9E7LbXfQu0T3rQ+saGLAmmhaNzjw0ZVn1Onk0lQ2nRQt8AcY2uluHhjdJnyBWK0P1B07pTTF7tkkVzdNcG7PGj2Dwx5f1lTuHUq06m0fDb7zBVOuVvf/wAQrmAF+3yDlGoq6hX2OPSFysFBRstUVqNOw1bKnb4r9w579lxTqpbbZbNbXCKzyQzW5xBY+I7gMjlbLd9baT11BbJtRwV1PcqKEROdTEYmx25yudXqpgkuVTJRQSQ0hP8ARsy1z8fFR2HaNC3WCl6G3i5z26lqKm3zxinkfGCXHPmrq66mY3pDatWi0UEl+NU6m8UQjw8d8bVqFk19pq2dLa7TE0dyNVXOa4ysj4aRyrN2vbVVdLI9M1EFWyspqk1UUrGDa7PHP3JsZrq/HTOoNF6lp6OClrK2B75WQtAYSCPJZPqky1R3TQdZV0kMFPU0sUs5jaGjGeScLV9Ta9sGpNH6ZtZhr21lqBjkcyIbXAkZxkhXusepOmtQ/q46G31sotMTInwzMaQ+MHnzKt1Qbbrehq6O0XSrt1voL5YZ4wIH0zG76cDzJCtq7WFZRdCLRJHT0rZJZ3xP3QjGOwx8VrtL1F03pmK7S2oVxfcoTG2jkYBFCD8FjKTXllunTqPTF2jqaaemldPTzQMDmk5zhR5G26TddINPWSNtnoaCGSb+lqa0NJnBPYZ5WO17ZaewdcqKKjgjp45Hwy+HHw3J74VCr6jaavVtsslfBXCutY2RMaBsfjzPxVHU/UTTWode2/UcsddCIY4zJA1uclqDqGsrPU6RumqNVy0cFwjexsccL2B+w44cQfitP6WWdl707qbVEsNELnkNh9oDWRRnjyPCx9X1xto1lcLjBBV1VmuMXh1dFVAZ4GAWrFaf6jaesbb1ZZaern05cwME4L4jnP8ABBtGtqO01GjbRW3WW2fpmCtDZ2W8txJD6lZnVdBM233KtsVBbb3pyejDI4YGt8Wmdj7Tj3yuQXip0jQGiZaaWtqiJhJNNVDAewf1QFuNv6kac0rW3K6WVtcZa2B0f6PkaGwNJbj702lxqhklpbjE9rAXxy8NcM55Hku29ZagW64aOuFNR08NRLRRySRtjAaT8lx+lfBJVMNQHMg3kvbGMyBnkAV03W+vNLavZYmmnuMIt8TIXBzYyXMH/wBWVGohuuv9Vw6U1dY6OjtFEPbIYnVLXQB24n09FzfrPaaaxdQa6GkiEMUobIGNGA0kdgr7qL1Bsepb3Zblboq1klE2NkjZmDDg08YWM6r6rs+s7xHdLcyojnkYGyRzDjIGOFGWp4Mdt+6Y6lqaHpNqWVtPAZKfABewHcPj6qlofUZp+lWprpLTRTTuqGuaxzfcB8uFp/T/AFvb7Lpe9WO6MlbT12P6SNu4tx6ZWQturtMWnRV109CLg99S/wAQTFjQCR2HdU20jK34Ra16UUd+qKOlp7pHWGHxIGBrSD6hbfXWAaTo9N0VvbaY6d8bZKo1paJJQe/dc0t2vLXD06k03MypZUCfxYpYQMZ8s5V3ctd6d1nbLbHqWKtiuFCwRNlpgwh7R2zym1bvbV+r9ptVBrSpbZ3RSUTwHEQu3ND/ADAK33pndxp/orqatFO2Yxzt2MkGWkk45C5FepKapuc0lugkiowfcbI5mSt+0/rnTls6a3LTdYyukqq733vYxu0EcgcfFRtr9l/rdkeuei1Df6mip6W5RVwpnPhjDQ4HHl591st40y/Q8Wl6C3R2ZtA6BklZ7ft8STJBOM8rnMOvrRJ0mm0rWR1kNc2oNRDK0e75YB/BTXTXekdeWe2/rVBcYLlb4BB4sHaVg7Z+KTOE20HWNuo7X9JCtGmLFBqymbSmb2ePBhpyRy4k8YBW10drqbz0P1Bdr/DaH3KgrcwOtwaCxpP2SW98LkNm61aa6YdRNTtfbatunLzR+xBzP+WjGTz/ABW06D6o6Epem+otHWeC6PpKyXx46yoaA4u/8wU9W6nddNj11XWj6MUdUyCkfurjAd8IPGOCvP8Aomxx6t1zaaGqw2Orqmh23gHnst6sfUnTtR0sqtFXxldTeFUmop6uBgcD8CFzSz3h9hv1JcqEue+jmEke5uC4A+ayzR3r0De9YwWXrFDo1tpoTYGSMpHQeA0udnjdu75WT6Z0Ten3Xu86foGRexmKSVm9gLmcE4z6LS6vqboS76tg1tPT3GO/RNa99CGDw3SDzWP0b1ls9v6g3XV+oKe4T1lQHCOCkYHBrXcfBTOyd1z/AKj6nqdS6rrJapsLTDM9jRCwN4Bxk4Xbend9paP6O9+u1ZaqKrrrbUMjp5XwgkEngnjlcB1ZPbK6/wBRU2x1Qymmc6UmpaA5pJ7YGV6B6O1NBF9HXV7bvSzT299SwPdBjfj1bnzUk2x92kg6r/R+uOpK+10dNfLRWiAS0sPhiSMjAGB5rYNCG8MboW3P0/a7Ja5HMbUtrQx0tW1x7tyMrneqOqlgtHTMaO0dTVT4pqhtVU1VaWB0mP6v4rN33rbo/UNz01qatpLl+nLLHHCKWMDwnFgHvZW/ZdXp7PpXS30m7za7myCjtjZniF8xyyGRwGCR2xwVL1et93s1koaa/Wa33ChNeJWXqgYGNMJIw04+C1vUPU3R+pOqlfqSst1TUW65wl0kb4wXQyEDLh8sfxU1y6o6etWhf1Xs/wCkLnDJUsqZpK/hoaDnY3+Kjsh1HUlukiss110zb7ZqbS8lB4b6emjb48MmOSStK0zJDefo5apdV0dO2agqY2xSthAe0Z+zuxlUbF1a0Zo271t9scdzZVVdM6EWkxBtPG4jBPoVZ6b6o6NtvTe+6br47kau6yeLJLHGAxjieAFM1Tuy1xLOlHRbTl1ttDSy3W8yF76meMSlrW+QBU2uYqV+ltEa6pLfTU9fWytjqYmMGx5zgnHZatQdSdO6m0HS6Q1PHWwQW2Yuoq2mZk7T5FTao6m2a/x6bsNJT1dNpmyuzvdjxJSD3x8VSzaZt1vqVrSm0b1M01b7dYraI7lDB7W6SAHcHYzgeS4l9JHTlFpTq7eaC3QNgpNzZWxt4DS5oOB+Kz3U7qppzVuq9P3y1w18clvMcckdQwcsZ6LaZNSaG6vdUqy81dqrZ7fPRkzmduxtPI1mNwPn2CjtDy837OG8YI5+RXeddtLfovaHcBuIrpRt8jyVxi608LLpUMpQTTiVwiB7lueF27qEDTfRu0HFPmF7q2R4b5luTzj0XPZ3R3Q6oSw1f0btBXs0NPTXE1U7XPjja3c1oaBkgc9vNbhrLWX6B6PaF1FDZaCS81TP6Z8lO0tLRjuFzzU/VPRt76R2PRwprpHLa3vnZUOjZte5+Mj7XqCqesuq+k9S9PLBpm201zZNaYyxpm2bZM85+0qyz7IdF6mapotC6x0mLdYrbG6+wQT1ofAHNduIBDeOFqOrNK0emPpS0NPRwx09M+uimEbOAC4DgLEdROqendYVOk6yCmrm19lihhmbIwbH7SCdpPyWY1D1S0hf+q9u1eaa5win8N74MRu3PaMAfaVplENyv3UaCLr7W6bls1JUWurrGwTmWIF7i4Y7900x05s2lNR9QroaCKqisjHGlhmGWNJ8yPgsP9aHT+567qNaTW64x3RknjRU7gzY94GBlY3THWj2XUGpJ7vTyVFq1AHR1MUQ96LPY/cp3KrqsxYJG9WOneqXXaipWXC1xtqIKiCIRkA9m8d1xKlYXNBJDvL711qfW2n9IaQutm00ytrai6jbPU1LQNsY7NC1W+1ul6rTNngtdDNS3eIEVkzzw9X3G3HvfdrbGY8lVLM4QBuRjsrula3Ltw4JGMqrXLslpxlvHPzRVKyop7fGXyP2Y5wisy61G/6fF9jjYZvB2NlbnbuzvjczPfy3Z+5WtVpRtQJ81G0Sez/9XnHhPDvXzxj4fFfU36rNF/shYf3ZD+VQ+qvRX7IWH92QflXfOGz7uDb5LWzS1wqKkU0++noYKSSlic8MOA4txjDzu4b3IHccLIXfRcj4aiWnqDJMRJtYGY5eW+efLb/FfVodLNFjtpCwj/8AxkP5U+qzReMfqhYcf/LIfyq/t35Rt8tbdpyqhE0lTWtlmqWtZMWw7Wlgbt2gbjg/HP3KSPSVV4cLTdBmlc11MPZ/dYWnjcN3vencL6m/VZov9kLD+7Ifyp9Vmi/2QsP7sh/Kq+1flO3y0g0Ts8V76zxJ5o5GyvEWAXPIJIGeAMDj+KyNssQttXUTeN4nixQxbdmMeGCM9/PPb4L6dfVboz9kbD+7Ifyp9VujP2RsP7sh/Ko9rL5NvmxtGPQqIZnsF9J/qu0Z+yNi/dsP5U+q7Rn7I2L92w/lUezfkt2+bWxSlvpwvpP9V2jP2RsX7th/Kn1XaM/ZGxfu2H8qexflV82NmG8Kg9pDjgL6W/Vboz9kbD+7Ifyp9Vui/wBkLD+7IfyqPYvyv1Pmk1nlyoeGfU4X0u+qzRf7IWH92Q/lT6rNF/shYf3ZD+VPYvydUfNNsYH/AOVVLRt7r6T/AFWaL/ZCw/uyH8qfVZov9kLD+7Ifyp7F+U9UfNgDPmPvUsjduex+S+lP1WaL/ZCw/uyD8qfVZov9kLD+7IfyqfZvydUfNNu4O4OPkquPLPHovpP9Vmi/2QsP7sh/Kn1WaL/ZCw/uyH8qj2L8nVHzX2gkdk2jPH+5fSj6rNF/shYf3ZD+VPqs0X+yFh/dkP5VHsX5OqPmxx/W5UkgYfs/4L6VfVXov9kLD+7IPyp9Vmi/2QsP7sh/KnsZfJ1R80SD2Cpv78BfTL6rNF/shYf3ZD+VQ+qvRX7H2H92QflT2MvlPW+ZYYXHJ5KCJxcSOF9NPqq0V+x9h/dkH5U+qvRQ/wAz7D+7IPyp7F+Udb5qAEtGeVMCQeTwvpV9Vmi/2QsP7sh/Kn1WaL/ZCw/uyH8qn2L8rdcfNcbXcYUSByc5X0n+q3Rf7I2H92Q/lT6rNF/shYf3ZD+VPYvyi5vmy1wyAVUxjkL6RfVZovOf1QsOf/lkP5VH6rtGH/NGxfu2H8qj9PflGOWnzfa44IJ7qWRxI4H8V9Ivqu0Z+yNi/dsP5U+q7Rn7I2L92w/lUX09+VvcfNphOfMfMqp9vjHZfSH6rtGfsjYv3bD+VPqu0YP80bF+7YfyqP01+Trnw+brGbcg+fqFLM3A7lfST6r9G/slYv3bD+VD0u0Ye+kbEfnbYfyqb6e37rTl19nzQqW7m5JWMq2tEBJPPkvqAeleinDB0fYSPjbIPyqR3SXQzu+jNPH52uD8ixvpMrf9y3vT4fDXq1E79Ml3qR3WxdJpgaGRjjzjC+zVX0G6Z17t1T070nUO9ZbJTOP8WKNL0J6a0IxTdPNKU4//AKVkpm/4MWs9NZ90e7Ph8hazipf2DfRU2uAGB+K+wZ6KdPCcnQWmCf8A5PT/AJE+pPp3+wWmP3NT/kU/p78nuz4fHzLSTyP96i8s2jAOT6L7A/Uj06/YHS/7mpvyJ9SXTv8AYLTH7mp/yKf09+Vvex+Hx9I90Ajj48j8F0G1db75Y9Ky6ZpoKM2iZuJI3U4JJ9c5X1B+pLp3+wWmP3NT/kUfqS6d/sFpj9zU/wCRP09+T3sfh8fnNbKMuIa7nJazbn+KlMZxg8j5r7B/Up08/YPTP7np/wAifUn07zn9QtMZ/wDk9P8AkT9Pfk96T7Pj8xnnjnKjs97tx6FfYAdFOng/zD0z+56f8ij9SvTz9g9M/uen/In6e/Kffnw+P+3JPBUfDaeCHEeXK+v/ANSvT39g9M/uen/In1K9Pf2D0z+56f8AIqz0+U+578+HyBDOOGkfNR2HHb5L6+/Ut09H+Ymmf3PT/kT6lunv7B6Z/c9P+RW/T35Pfnw+QRbx/W+8qtHM5sMjRI5jf6zGZAc307r67/Ur08/YPTP7np/yKH1KdPP2D0x+56f8ifp78nvz4fJey1xtdzgroY4p5IjuDZoy5g9ARu5WZ1dr+9a6kpjdahr4qZm2ngiYGRxgd8DHC+qI6MdPm9tC6aHytFP+RPqY6ffsLpr90U/5FS+myv3V96fD4/VMTwcg8eWQsUyV0NU07wceq+yrui3T13fQmmT87PT/AJFSd0M6buOT0+0sT6my035Fj+iz/sj3Z8PkpHEXxscOQe/CuoY2ibhmBhfWdvRjp8wYboXTTR6C0U/5FOOjugh20RpwfK00/wCRWno8vk92fD5Swsz5q6iad2BnthfVEdINBjtonTo+Vpg/IojpHoUdtF6e/dUH5E/R5fK3vT4fLkMOADk/FTbDkcZX1G+qbQ/7Gaf/AHXB+RPqn0R+xun/AN1wfkVv0uU+6Penw+X0MR3HHCuHO8KGRziPdGcnsvp19VGiB/mdYP3XB+VQf0m0PIwtdozT7mnu02uAg/8A+i0np7J5LzS/Z8Ves/UvwQbZSP3TOxl7T2RfZaf6PnS2pl8SbprpCWT+2+w0pP4mNE/T35U9xv6Ii7mAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIP//Z","1710943031"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Kys4dVmE9a+pHryOcAbu83A6QgJuDLPs4kjuGEmQzi0jryVZBR66+T4O/7bHKAdkjleA8tAk5+wcSUxLZ23CCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHQABAAAHAQEAAAAAAAAAAAAAAAIDBAUGBwgBCf/EAGcQAAIBAwIDBwIDBAYEBwoBHQECAwAEEQUGBxIhCBMiMUFRYTJxFEKBCSNSkRUzobHB0RYkYtIXGENytOHwGSUmNTiCkrKz8TR1dqKjwicoN0VTVFVjc3eEk5XD0zZEVmaDhZSk4//EABsBAQACAwEBAAAAAAAAAAAAAAADBAECBQYH/8QALhEAAgIBBAEEAgICAgIDAAAAAAECAxEEEiExEwUiMkEzURQjFUJhcUNSU5Gh/9oADAMBAAIRAxEAPwD6p0pSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgF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","1710937316"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"+MyWgVyPlT6xqhZBp+l5DlfJd5Xy5P0o09LTS6r2jzRcB4rYWeBkWa/KlB7R/DH+YesZVVOlTevnblxdwPJPDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1711553453"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JQLvXi3BxeJig91x2c1J0vlfWOTC0q2oaYaYjskr6Z0mnGYVe7h9wAIgSrpF9bSvHHz6E2nDHLO7c+ONa+L3AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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ggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggP//Z","1711553718"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"6RSFCRMr8iqTRLkPEWSlnRHxHaLjQ4uoq5nPxq14xKO/TNJlIDpLG8qsXmTAi/T5qVrk+b8vjyA5wt7LRqc9AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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ggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggP//Z","1711553787"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"FLAdyxlKTmwkYMgqodcSlr8z995HmTGEJ5JFnnbiyKJZVN+5Qh0MsG8dZ0luXzVXaYsKs/wdGnQc9KQLCufECA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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ggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggCCCCAIIIIAggggP//Z","1711553850"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"OXH9oFhrS8LjY2+I5pKiHDEbNhcnd1b7kj/bg6ggF/yiraeebECTM+19q4cmsAl91mQS+r8gMCYqYm/5IvXiBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1710937674"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"9I4TncKZO0kdDLUqcLAnU3pEVvhO3qnIC69E9fS/1TrndFSv1MIUXGYf1BUCio1h8lStIAW06OC9WNh/FjelAw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"j6ntvRp6jBrJOOHyWJDEQB0iO2W0MusDDSeudZh6pT80umCfnXam5GfArG/TJ+DND1e5QE6aRCp0uumFKUSMAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3S5xcmHz9HjjNVG+AwgA8xVeb8gcFm7EfInO1namS3Y76gnnYB1+hx9ItmPw7019RPeKnUmIfFD+sSKbWT+OBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3S5xcmHz9HjjNVG+AwgA8xVeb8gcFm7EfInO1namS3Y76gnnYB1+hx9ItmPw7019RPeKnUmIfFD+sSKbWT+OBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000005"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Rfer311wG2HnVctZcCLwu/LxRc8ObQFfkgVgUKKw2h/9e2nndUuGDwRjXeeMUaW8do/uN61yKDcb5AhN9g6oDw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000008"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YplQ9JKYsUSim4jsN2XIzS7Gvo9BjI2zSdUgHgyfWUkPtYiaTK0D/sMF51nGczV0FRPmKOqVwQEWzN30PIgyAg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["0000009"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"BLGL/71V/Hyqnxsbz0a30VYniEMVjYacJN6BP02+VvM0tCRCW6XnD6suiYn4deDJgtXeZbPBdEJTzPhdFDK6CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000d"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"cxCAuoj+nw99TlRuieo6kl27rWhWoJp3vLj+hhii9Yjhzsb5OoHoFN1KI7oFvolgUh1gOF9B16FvoPPtqKuQAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000e"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"0uYqJDu9yD2RBwAIKJBYnNpbtRdmQKRqUcMVWq8BxrInzOn+tPEcbeXiIFyQBdjF1Fis9GxjETVdbs+gj2e9Cg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/memeland","func":"Upvote","args":["000000f"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"X1adC/dD/4Qg7m8Z26zPa58nA4LbU5gjd9YBfef89EzojwjCv0cn+CxctViuSuqXspy1JGP3JTc639nyfr3cBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"PostMeme","args":["data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgDASIAAhEBAxEB/8QAHQABAAAHAQEAAAAAAAAAAAAAAAIDBAUGBwgBCf/EAGcQAAIBAwIDBwIDBAYEBwoBHQECAwAEEQUGBxIhCBMiMUFRYTJxFEKBCSNSkRUzobHB0RYkYtIXGENytOHwGSUmNTiCkrKz8TR1dqKjwicoN0VTVFVjc3eEk5XD0zZEVmaDhZSk4//EABsBAQACAwEBAAAAAAAAAAAAAAADBAECBQYH/8QALhEAAgIBBAEEAgICAgIDAAAAAAECAxEEEiExEwUiMkEzURQjFUJhcUNSU5Gh/9oADAMBAAIRAxEAPwD6p0pSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgFKUoBSlKAUpSgF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","1710518114"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"r+oFPHKfTx/jgLfdKYUkNzhE8e/CtiSENGd7ZkDmPOkop7cDBbDEBZoJ2vG67UKBbkDTv6kE3bWqj8O6oLq7CQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"PostMeme","args":["data:image/jpeg;base64,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","1710514573"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"kWa9WgW0SUA/cpfMUIMqcE0a+aYrbk0fN+NC7hGyAppuDWCRGRrOTNHZf9LOVivkppvOc1dbP6r4JcaBFYxwDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000001"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JpLNK8Wda0MMa2TQLNu3K7XMtSnybFMGNMCeaQ18BXrW+ujGgDapdiH7dk0H3q6+9WNKJIb+EBL0xB59ePNNAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mOZQWOMc7nd+N+XXI7h4FuQHJtR8ssJr7lghAaTCsij1ew1AmQ61kVMXJa3IBfUqJD02MVq30Wr7l4qVjUI4Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/demo/staging/memeland/v1","func":"Upvote","args":["0000002"]}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"mOZQWOMc7nd+N+XXI7h4FuQHJtR8ssJr7lghAaTCsij1ew1AmQ61kVMXJa3IBfUqJD02MVq30Wr7l4qVjUI4Dg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"Render","args":[""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4R3qw21ksSZKR2ToH6ujKWy5YgIEvKkH+wKkmKzI38x9I9iQ1ItnkbCTxePCnQVWfqmjYZmUUtZQV3Cfe24HCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/gnoland/blog","func":"Render","args":["\"\""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Dl5ElTcZCISUhE8T15NFGaVF3/QOCAUedjCW1Iwnb3k0T6zyPJlDgc5Iruxw4/F1hX0N/DidnRUx2KtzB4gZCQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["1","true","Advance!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"aBeHnGk0uPkvzFRZMqfwyk3csn31ozjOoQMi5HNRJEKZnGmSoftNJEaolsJN4Z85KAzyUetUa5LhZYU1jySjAw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["1","true","Yes! More DAOs!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1DoK6FgLlIoclvUbjyFzKt0cnoJDiqjfpfO18zn7d9FR+tae8DmvWpn0zKeII3Ml3RgEhFq16ekjWy51V157CQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["2","true","Yes, more DAOs!",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"zmvoKxwAEnLFtz/Rz+usb8DGBku9NRw31U1pJpX480f77Z3sbY3GY9Ylh08TE1+Bw5EKlclMWLTo6TYdWvc9Bw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1yne82ek705lw8efq4d3l3rv3dx69np5v58cmkp","send":"","pkg_path":"gno.land/r/gnome/dao/v1dev1","func":"Vote","args":["3","true","Do we need a reason for this awesome proposal?",""]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Zi8xAVov9vl7DEU2MArmpm+l/vg1BuOOvQ2jyIJuUK8xOFTz265xqS0qcL6erxDCIuEIDLnCRbkET9FfLw99DQ=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1z0nhhy5c85cn2eqhu7m67sv8dqw4aqpy5knp7p","send":"","pkg_path":"gno.land/r/gc24/raffle","func":"RegisterUsername","args":["james-prysm"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"3pbwDH+JKGIrb9yspo7B5D9jGtStgtViZ+SYWi+EGgTeuGxUFwSaABi2u+k+KzOBjauOyEOpeKfNnkuJlPXWBg=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1z6qs6t88rhlafv6qqu5f5xxsax83zczunsc0v0","send":"","pkg_path":"gno.land/r/demo/memeland","func":"PostMeme","args":["data:image/jpeg;base64,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","1711192293"]}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hM6Yfr9x65zTFjTwTOgCXPXDpeWBGxWuOLRVMIdfc8GBpLKmsrG3zn86Oz+qPdQPq9Vlrp1WdMIEVGfYO/T0AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zelq69gvlytut072w0d7pak9meh4q0ns3585nm","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"EndPoll","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WLFGn5GFcdZ8Kc8dRpaIayCkVUqsXkCFPGTMGXTLvEfRnhDt89wprEbPHOqv9nIDhvrvaE+yAeB34zjvjhOeCA=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zelq69gvlytut072w0d7pak9meh4q0ns3585nm","send":"","pkg_path":"gno.land/r/jeronimoalbi/testpoll","func":"GetAdmin","args":null}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RQFotTlTbmE6thWLYOrvINGS+egnRD+dYly/vUs5dckg/jxzM7g4oHCKUpGEZOB0T5BktQXbdTuSZOf4fvBTDw=="}],"memo":"Called through gno.studio"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1sdWP9JFcWUlU/3gPaeJwdjRXENmjbzs8R3VqW+MsifsQd9hpnOGQC8YVx85CtjeRlx3rfBCLRTmrl3DL9/VDw=="}],"memo":""},"metadata":{"timestamp":"1736363234"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1sdWP9JFcWUlU/3gPaeJwdjRXENmjbzs8R3VqW+MsifsQd9hpnOGQC8YVx85CtjeRlx3rfBCLRTmrl3DL9/VDw=="}],"memo":""},"metadata":{"timestamp":"1736363340"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1sdWP9JFcWUlU/3gPaeJwdjRXENmjbzs8R3VqW+MsifsQd9hpnOGQC8YVx85CtjeRlx3rfBCLRTmrl3DL9/VDw=="}],"memo":""},"metadata":{"timestamp":"1736363450"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"3000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"CPp0hO9IFsKG0v4pw1M9Yyn372Ow5RDt8GHDLAEFEdnLdNXCtRL//upIzL92Zd1YX22tvYx6TZsnECNYNPWyDg=="}],"memo":""},"metadata":{"timestamp":"1736363370"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2500000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"R3JFvZb76FYbw1Xf96u5lqT6hRRZKdsyapcl1ib6jTtVo/jwI08O5gzECrNzeujs3hOg3K1/4pQs5ZLaNqWVDw=="}],"memo":""},"metadata":{"timestamp":"1736363470"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"3000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"WbR7jUh3s1GiDxLiT3G19J51BibhU5ioFuPUbleJk6ypK0fP5VhlqHhi1shyUNGIYmIUForPrEXCk5e1HrMADw=="}],"memo":""},"metadata":{"timestamp":"1736363555"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zjc8neupt5vy8eefv9dunwnv3gzgqgq90yc9kk","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"5000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"b5A94kQxGQc/GhpvDSXoWU2Bvv6tM9S8IANlIqhxAJ+3lq6oE7worvbhXnNxq61BQ5SoRGgVP/YaT1DX/n9eAw=="}],"memo":""},"metadata":{"timestamp":"1736363595"}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zry05elmetdftwclp2urcxcaty6hh0wgd05lds","send":"","pkg_path":"gno.land/r/demo/userbook","func":"SignUp","args":null}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"znGUq9kxPCptrldjEjp6pShqohQa7Kp6nI7c3uJLXE/ItdWhEmNF7QNq3jkOL6rBmirCu15bTMQd+mPr4KMpCg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_call","caller":"g1zulx05q6yt2kwdffau9ztf809rrgtyaw8pqec9","send":"150000ugnot","pkg_path":"gno.land/r/nemanya/home","func":"SponsorGnoProject","args":["Liberty Bridge"]}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"1SvbDVLjSGGhZSKA/rExUMYbUostFbOi8i3Na/ubCMpUu8fFTHWVyf28qZeHS3U9spP97c3MfzmzxFUYiMD6DA=="}],"memo":"Called through gno.studio"},"metadata":{"timestamp":"1735336905"}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","package":{"name":"","path":"gno.land/r/g125em6arxsnj49vx35f0n0z34putv5ty3376fg5/run","files":null}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xha4Q+2pSu3HsC4eiFalKpMSuWl3Qsv/NMODf8yfmcnQ5xPIM0Sns00GvVhlhpEYPE5HI5V0GOzt50/amo4yBw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","package":{"name":"main","path":"gno.land/r/g125em6arxsnj49vx35f0n0z34putv5ty3376fg5/run","files":[{"name":"script.gno","body":"package main\n\nimport (\n\t\"gno.land/r/leon/issues/v1/ptrregistry\"\n)\n\nfunc main() {\n\n\tfor i := 0; i \u003c 5; i++ {\n\t\tptrregistry.Intptrslice[i] = \u0026i\n\t}\n\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"vnI2izcFBioYH/kPLnMAhvn5iR/IlmsId9FnDktWY4RMpUDsjja6cI/q0oeaRol60FbAPAe8DASgiu/Od6ctDQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","package":{"name":"main","path":"gno.land/r/g125em6arxsnj49vx35f0n0z34putv5ty3376fg5/run","files":[{"name":"script.gno","body":"package main\n\nimport (\n\t\"gno.land/r/leon/issues/v2/ptrregistry\"\n)\n\nfunc main() {\n\n\tfor i := 0; i \u003c 5; i++ {\n\t\tptrregistry.Intptrslice[i] = \u0026i\n\t}\n\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"IL0IH/GpCWK6hlEcpaS+2VWKhyA4QyfQkODE9RzO/uUC+LLUwQwbjDO0NXeOt6qdyEovAdr5/JnvKjBra4RdBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","package":{"name":"main","path":"gno.land/r/g125em6arxsnj49vx35f0n0z34putv5ty3376fg5/run","files":[{"name":"uploadhashes.gno","body":"package main\n\nimport \"gno.land/r/gc24/raffle\"\n\nfunc main() {\n\traffle.UploadCodeHashes(realHashes)\n}\n\nconst testHashes string = `a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b`\nconst realHashes string = `e9e87b4eb15718e70e911f64ce342e53494f0e57705ace34395b083c7abb2ad0,7800006fe5b164f56075893139a017bb3d3739c60d48251d1dc0de67d31b607e,e97fc92cdfe37e7335e40c508f7fdc7c699b4bf0411a84074f356f7e390fcca5,2f9f6947674cce2ef7e93a91fa6abdd16d9f21d486585332887e3dd2acddc2be,e803741047b718696ba189e60f6bb26c38a106a2e81b103f411f26a11d5fe65b,56eabd144ebde6c252f07a7fc78e16ea056089d100f4a50ac592b1a577fd0b79,ebe55d40815fba145141edc1ed07e089aa4fa4e2135920a1be6a6c7744c774f1,fc480303bf79e1b053ee2af980632dced1bff44c193cb977948cc88c92474a4d,5706da2eafa2563f8e0b8550e76e85099be3013aee91121193c3e844f65a8a41,3a17a14a33ff3af0cf7cfe264f4ef02d3065559911a1d02ac213d8bef29537e6,351c051b96dafd5f85f02a0e7692bfd1879c731142c4a3db21ffa2df32f49c74,72814fe335ef70b8438a593d848c18fabb5aade52d0367d23062ffc2bb1c41a1,f2744278b54012829391d8be41c9f26f8c3a651238f0ac39d96e750253bfdc07,c920a76d3704305d69a7efd349eeb7e0289d4adbbf967496294f4a0e841a3c76,a8fb5cf097b7b1f2ed7faafcde39a555259b340e987fc2b01498ba4534e2d37a,abe933e9409fc5a83c25be23427ff69ade3e25c6d7da6abdd9f92be381f70252,040a5e11b7b7059aa5ff145b095bebd94f17aa50597a80f66a897960b856d99c,d11576cf710151018fd0d3ffef768579e9aa5d3264aed4c7d7024cafa453e495,47bc670db6d54a7bb3108f00c9e75fade52c0df81114d3e612ba59d3887bf047,913eb8dd5be147d251ee0af4a70dfe72c780987ebe6dbe6caa13ceaf0ee3a4af,508b9e151ced0e12e79fbdf584cbc15f23ba408aed389bf24102095d8edef3a4,6f4481fd6bdda8ed51e10e8e5e96da95be5d6b187a9cf6dfe0d9453f6a164b1b,2d17dfe9d0a2b00f4792a9edf41f08d742ee8aba0537cdfa3c5a32e503cb5fc4,65d3d73b125502d98bb9fe97e49f4ed36a51474ae6556ff26aa3ba332d5a61e8,ec678f20615fcffbe8e2d3a8b113541782416f7b276a0c05ed15739c79d03575,5abb8afc030f22e327d58c745b09e493756fdc09c2a7901003f5640a91904190,82e5b1b5d2f12f689e61a7d6ae6d9244598ef1e95ed4b423b8a02fcf01b1727a,6655de92c4581ce0aaa15472f2588b9fd4b567ee7b26d59bebfc730d1bed4daa,85af77ff12013bde1abc71c996e6fa983d8ff0344a36520fcd8fedbaab4622a0,dad63e5f576aec7ce9186c365ebb3788cb5bf1ab753c26106218aee5f32f7233,8f84e11423f466760ce2b7bed9f6dbadc7a16901111deb5487836a1e64947b13,a40bec7a744963570337a83c2163da2708d447b4259a6cf07df5fc7c286522f1,e99a7f78b9a16deb62d6583269ac1245d477d22644c9381ae4a46d155e48106f,425c78afe003bf3ddfa314c3a72a29cad4908818cc4da12de3d6effc302b1ce0,d3bed354310d35c510a7ae9a3ce785339c057d57f93aa05176528293efbf5cd8,3d90b0ad5f6ce279e246650cea65cb85c6ce7088f9360631c98ef923ee6bbeb8,9d032d71819f5e50fc605639b28adeadb990bfd2e21b88e0c17b6afc155d6896,3a49ecba2479609350892979e0862abb7b87d9b827a267ffffb9c1b788282ff3,846d8ccfb23c83a4a508b811c630f0a271d2808ade3e1d2ee05209c4a279e23c,00de2f07db572b536a575393218da14bb1adf8035bfac91bfd563c9aa4fe64f2,8dfcd566fa2eea2a0742597d5c8d1400675a42ac5478b0f3c6fd82dae06bd4d0,b8741b6677d12e5024d36078bbe0b678cc0f45c2d4de0e1607f596b3ac5a2f8c,f9abcb99f5904e67044a3b3fadf1a677e1c109975663662ad662b90b7798638d,0cbde6a93e27857ffaf30e3a0016d25bf9edde11184c93d64bb3f65b6bd023d3,8d344a45532846c96bbb524e2663ebeaad4474bcaed5f5c4677da70726df1d84,1b47c76f30c6160203bb68e2694e677d6d56e49ca67c99d7849bb14608e04a0c,dc06370bf995d6dc0a0e9244fda303b3ed18946c6499f3e2451ba0191604a7d7,b276c14499aafb97c7cf10a9c81ab669868c170150f2254920ff0684c57fe6b2,6dff8330e22c8311b203f3c21db74734403a6878c305c0ab98e934219f1ae94f,5bf846ff7144deee1ad1f5f75770aa6b092320471635700e2380697b18f89bb3,5e0aee34d9a5f5354570682fbac967318c86f6aa018128ce8f2220aa2ad25c4c,362698e4d522c076098e84753e60023ab4fac5157e4bf351cdc51b8d07b6d694,dc557af1b2d95082004fa277fcd7a9e8d1d830cf6919eb57e409f2b7871e36ad,2048a551e388acf250991da20637cd048fcdc2b54a71b11fca6b372f9e330653,0ed33ec01b6eb2243fa51eae231b17fb366d2ab80e3c3117c81fc759e08cbab0,5d4076b035b11ae5c11386014484a5171b3f8d51d2dfe92a9b57e34f55b5978c,91eea2adffeb6d79145c15b92c3ea38159f0679447712e90c8749d0c0ade8911,4f46cb513d4594ed7bdaba8ec384898cedf60ea72c819a56b67deacb611c4821,b7a9d4b331497e24a02b2751d90053562d22deb12c2e5852c91b0de5c0492ed9,d583ea98506c36c097e030dcce1b1358c805cac21507b50ad5589a98667500ac,2a9567ff0563ae1676a5c177d57be34532a46e0b3c6a0b2d4cbef31717729c68,118a76b7689af1a1760fca14591eac9e71e11d0d5deae9d2c0ec01e716a02cc5,a53767ea9d3ad8ed5cf121982f3280a22fba9292f0adcb302d5c8c79e83a3dcc,8ab5d9864174b56991bf021d418ea33eb4e9e4096a7dd1642463a3ed0382405a,9d3b76e383d89be60afe96a57d6679ed7b5b86a1418bb34660838f394943cf07,3a66cab4373888e030aa840acedc723b5efb38fc588dd6675f822058b18ea47f,de1de8a2ce00bde2af42ed1767d7d9dec03ccf192daa167a2020c4bec66cf9bd,0bb3af2b796862ddd524fd42c04c0b0fcae1690e9444e7a9c74f74705ac3b383,267dabe2b764f93aedebac70b65a168586d40002e0b51ac756fe2c49ab2af68b,de480c3dc1a6d396719d0ea055c54e876e3a9aec5e19d6e0e6863837bb498b52,110f42d5d62d68f5d3ec4eff5914fd53db8806bdffeaf2b1c5236da9be725ab6,232574642b6a48d5111ff005f4decf8baceaa345b0823c857f77190570ae9aad,b841e02baeba2bc4b3d7442d4c5869b5062206c3b0ceff4d9375a40fffa0b352,3b5b14a6e908fde20644d3de0bb043578ba8e0e29b63f76f8a8ea0bfa8a74849,4bda325621e6367b820aa0d8b63d004ba601cc90e1afbdfcfe2cfe0e7fdbf567,90d4a29bbb4d0e5dc1773b5ad302a501aa5c6c320bb5c3de1e07317444a8708b,0fbaa35e664fafd424d6a126616f94eec15dc846976e3baef8c8ee22debb4f14,5bc87fe4259f2193976ebe84c5b39baf325f601f31299e1c0f05cf1d153b8a00,c41bfd93379389df55625cabe7fcb9a2a5b1de2083cb6c9dcd9748c6496df5c6,9aeff2c17923027a17a042318fd9dde70b166e344d070cdeee12ce889a4ada72,466dbe48255257af2b2294d3e1c1a13a7e0e9f58f205a51ab789ef7bf453c9a1,abb9e85c9dba04da740cfa67e475e5f7ac1c7850bfe00ba62b40bd3ef1cfdd51,f9f9d3008abbfcee77d6e6fba7671dd68a08dbfeb6e9ef9f4c1507e8c74f3807,cbbf35b63cb95a4c0c2d16dfaa64c581b765569a5053bfef4d0db3475ab2b2bd,e536b4bc445f937499cd1fd8765b8a6662a711138d88dff34f7e008fa7c04e1d,528555a12e808438567613e043021b8ed777c92bc7c7789398a3fa347bff5f13,2515e5754de16c2f0e32f237eb37c5a900d217b78e9cbe115b207e37fc8d745b,0bd3139a9d56610720fab60e29932b0eb1c79c18a4af23dd9e419c2808d2cdd9,61ef2d5988466f4ba6f0ca2f2e8a59868093da7520eede5eebdef21a5a696c86,e39a6e2bf88d82315d428d1c1d046d212e83b9616645c7f933da9c33397f442b,7bba6ab898e6eaf380ad82f2f9bd0033ef3841702cbed0fd9178490bea9b1c86,2cb072941fd0f9d8cd82da63c87375c93024d027ad3fe6d58228401298414c5a,3ae13ad2d4be066e8f0ca534b72e028827cbca59d859edc6f5bb4029cab1a767,2990cca8ec637ac0245dfde5e796b54646f06e6d4b143ccb7a71b13684bf661f,fed7ee08c3e1cdc5777748939d701ac72df1995436aabdaadc636557fccd52b7,0f858741552fd5772219f0ef9db4b79fb05c9ca82706a19f2154f1160d831670,ceaab671874888abdbaa16b105f8ec400a54d6997eda8f778d3191d7fd48a4b0,305867dbe416b3ed56f81fe062273adc1fb733c017a330b69e1ab1518fef1c9e,0e7cd66ddfd33cb8ccc260131da6c4459a9f8a278dcfb1dde9fe2dc23af82448,9f381e2c391201683ed162b721f5568d48ca93adad95a2274eb28bf109be29e1,fe202e6f9eab9c16d6114ef78a942187090308e74c678b1a3dd9a72bc941476f,7a70a389a191b45ea0ea97eff2b3a673cff8a9308bb033c6e74ec25c1fd39010,cb5f5cf546ceae812531bdd44f11927ba6e2ba38452ff12410e945350b22a952,e4d1ce719e03362d8af663187f0114bc5d8ffb87ad35f98621307468797697e0,83ee7db71a60c9c29dce29e18b8c50cca2519be9164c78349f7bca19c978ba0e,6c6b5b5b89293d25538dff1157da9badaa85b62feb8faaee313ad8dd16fc6610,417037383da15be5761187f56b18bbe82cf4f7668f6c874f2973524ef8e00d71,ad9c608e144f4b8c923a0fada7fb65afdb31b076adf6dad05d64c498abcb7be5,fdc94a85b8a5e900501e89f543668b7b25ed8abdda7b97ba870b548abb1ba894,e1015138323295b2b2bf4cda0b750a47ec7fa8f1a4aeb2162af0ef5769ceaf8c,ed299596e934dc9d9c84f835872a64990b4a39614e1360c578d98b20627dfd68,a2e48cc686f56d9b4892a03963ff75aca227894f33e96ffde210168e593132b1,dc361d0609b43f5e4e17f62d1fbbeb4357b0e33d8acb1eb1477acd7ce115b99c,44e69e17fab348767b2b503c8e4895f8329e4cc20f843a56ada76c040d3c382f,37095dc5a82b494766400b315d6fd5718d6b18a480be3fd7f2cf83f856d632fb,24d802603c5d2e4f0557db3fb5f788645b8fed60b9b89c1c5219ba01411a5253,16985e81c53ec05958458470e849cfd342d0c5d27b4717f397a2e6cd6a33710f,91afb97776aa5f851146931a283c848cf722d58907f39934337c723b5567e659,b4f81c16881556cec4f9e4b7a18d7747f7911daa2fc93b6fa0f6d6cf405fb504,4bdd62af7a0101eebdd3f0b63b16fec9abd646f439267da2955420d62049a86b,9a489af0d1d0f534bc564acc29a299626a07fb83c6c011f4d11594ea304af53b,e2877e2355be38d3e4ef33c12cef08060e2d3c89cbfe0c55df58b10462e5836c,37af0eb6485a2716ceede554bc9efbb9007ab7ad01d9d161feb34a6f0506d044,ae2e4ea54251b9c89ab15f2eff1458c265a2adef7a020e48b13057e486f1c557,5efba48cebea5325d5d2a10a8c07d46cce14e59120e8c7f8d2c83ea11d8b3997,578355a5f8d9f78d679e70a3a5dcd7de3e53e0c2c9561622214ecb408f538c00,b533eff5eeb9fea8cb2b9643c87ba4569cce263b6589c1c6233118f692a5d013,5360693293f46a3af18758b1a09d45a11a3b7cab795b968dab6630220d07c396,6ee4248414bb16bd0cca972a1576bc929f24a43f783cbb7ff1cbb8e1ab78d530,7f34631c219fcfeb9599d88ee2a4747555c5f9d0422363f2c5a8adf89e29b897,04d9d9168d9225baf21fb0894f47d450540cb468fc4435d8428b2e474d5c5c21,fe5fe8abf5adcc3a67040d3cffc721f96e1acbbe89088a6d21e7195dcf0b5904,9c8cb229f7505eebba8d03c7436aadffbdf0e7b5b27b39d2341b554d555424cd,b9d4095b5688c8e6ac9b6c68ee8982504b7f0392b6e76f1e2885787ffd6ecc2b,4bb4a7cf7ad60b938e96248387775842374e5a38080dccdb12a0fa05f3f1034f,10775fef0f30acfb5587d5bc302ee83cc29de8cb0757df8740412269d65b788f,39bd87fd201844a5fa421df706b3a7aa3af27849b2545006e5e6cc322ee97d48,7260b55a276a708d412774fe3872ddae4ea05c0f2773fddb904513e67e314095,fe6e66670d60cfd91e1c255547495c0d19a2aa2839ab0f6318b479e9d0dc9db6,4187885d19f2676807940ab4d020db6c96b7787291ad5c57b95c28c5ede66fc3,218691308fdf85dc6e5a4f1ed77ae4378746570159f3f2e41bcdfec6e38f356a,0a98dfe5c960e4a8bd2e53405164c57ea272ede6b240e0a2c967556fc109b8f8,033a1a50db0d5f358be7de9b53f7b3ad4467b9ac0bcfe4eac3d0e9783fdeb02b,eb166a75bdd43e524de83593c67c62d34ad91b781b121d3a0f14c49e87d1ff5f,9209aa5b3b4275681ae83f2aaa1897023be9d81fa772aaa907ddc0205c38324f,84f596d7b6f5850ca953302f11fe89016c94702448d44eda60916d80c53de6dd,34de85ce2fdb44f4cbfceee5a3dd167e9081a95f914b4c756c75f117c6b4c10e,f024296368473e7a528600c8ad4fe80b5018c23ec1b8104abec50c84a11a2b98,99256bdb15e4bb3f2a8f2f4e92d4e3669b50a47e8c170865c13d515ef06aceaf,e12f5435d0dd6f92d06f82ae824ec9333f5fb0a5aa7cb7ea9ea69ba78e2e12a7,d5efe2f0772f20d8c7f4e0d2eb7b77b440883eadd70bec8cf5cdc0800bff4b82,edf0c729221da291b3ebae3622276b4644b8387375a9d6381a4bda3a0c4a6d9f,d6be02b45c1d677da71c339821c83a4f68c31a5a9711f2307e6c7513298fa199,b743c6c787c4e9524f013e6828315bd3996dc65cfbf96716557e1d51a98eb69a,89e0001fe1bede9683da9ef6e36b8dd1bfecf1406ce1201776c3569212831610,d48fc44dcf86019a4285c0eb3c36d9b99cc3c498bfc612323e9ab99cd0f58a27,75c73abf279943b3e37e667eb26a8ac1e7a17d13369bf7980c738e6d43a9ecae,dc7e9c59ad27f0cd2cad96b1c6c93999e03bf6d239c9a6a83e3e6f549eb19272,9cb3d4c61b9d28efafbdf352a6e03ea570d313c23eca1d7e08346ad75d08af04,5276233c4d72e5cebcc43700ecfe4531b368ffe7cfd0d04b1460301557a9b333,bde0fd9dd65338273a419a314de54c8da0720cae2da4d7f8ca9955460c0445cc,6e8c65b311d8d81c6dd1cf49c3a88a560f5620bb81b38eacbfac449fd1cb1a66,e0c23171ccb50cc56f4189c192b83dd7a03389abbd4bff38eb073c4384fbb688,8ff148e65ebb7a8d276b8787f3d28ac020a398ebd448beef7f1ac42aad900b91,1a806dc17d2a6369e942712c783c7c083a85890d5cbe12596bb2a607caebe225,26996a56a3295d78061218066b2e80844cc2e7432db611d524c3d3154cd9ca3f,b9c3f7d1217fde63892f68bcfc632f6130490a846044c53955eb9c5f7dbac871,6fd1c3197e29a8a0dbd861edff897bc4d9c3a6dc71a89f9147a982181e8e0b6d,c7f5ee5f97c13e770cac6dc0aeae08a5f0f39002baaeb6a175cb580aee3a8dc0,a9d3fda2c50c6b8228491d65de70509684bce97c42614c1eda13d2eb10f3c508,bff4dc822a0a819c4b67f5d5830e0997c1a98b3ab15b49a9cbfc35b056a2d94f,3eb4005861265ed66bc3eaa196d1e7df4493130a3cad70f15f8e1e01ddc926ee,07246bc9adbc7937e5aceee1f2ebcc5a22e5bbcd573742e0c5a6df6ae3bd82ae,fdadd85b356e6fe5a5def89050b229eff1163ef47f41faba30aa3d8ef9094030,fd6e548b3e1d34bed4fa897f932f958ffb965b5f3b9d0bd61159d7c6da0338dc,68a3640157c17f367c193438b1a42a09f86d76c75adb21ab63e969cdecf50c8f,cd8a226dc0d8662112342546d8c16f72fda5b2d99f6cdabc78495ad81c3a010d,019406b65440d1c8ec3a3fbe058ec7f65bf75d0f08939e4b26a7c4cfa95013da,130b0d909c17bd1607bc2a22964fec0ca9c1676ceb0f610e795d50c9c8da21ee,0daac6d6f43afe03f0a18e899dd097841c5caa2724767eaff2f65fe9778f3c02,fdb5337982d6273dc91764a4cf1776ba1477d6324b00c6a0b4a31094eb552f0c,3869933bbe2215ba3c120c25945adb7ecd3b0717c2bdda01a0551b82c236919c,069a96322f96b0b90e27f4b3fb35d73fc84a93a8bbd27ea688b60d30a9b7763c,5788f572869c454f4e600d72af181d300d2d674c36456f98ee0be8c89dc585dd,1d45b84eeeabd1f79de41e97fabdd11b5d73cd3e014f8939948b801e1c244f1b,346c63c07b151caa8e9bb521c25d3ecebc2845632ace536d7889edf1e0dd94cd,1555a69bb2e26d78d0d91b805266d00da9b23ae833d90c8130ea5a5aa90eb189,790f9c4fe92b45c0f716e5f327ec8e222e5d10176ef12dad88785f3249a22f96,98d3af788a053d71ced22ddd0a5c00135b407a193c7ef5daac5caacb8496eb17,dd851378027417a8ff1b7b732c08f38e42bde933248669f274ebd2abba80447a,70c67f4e6b244d56ce4fa8679f9b7b66e65193076c135e366b03961f8f6a187c,da5f766d2b1d163e3793d27110bdcf256f57760bfa73559364a8b5e39f14b9b9,01a16f991ef8e7687e9fc95460db0430cd9a133e0d431ad4cfec9fe900556abb,4ce7bc87573e9ad7d29c734536982c3e880e25019bb8756e10ff8aeb6edbc9d7,c19aff38398c52b6652b9d3fd134cf624343d08d0c283e70197d01c85c92b891,d5ae09d2d8290f320167b0871a561a28f6991830c7f5b85fcaaf5667d8ca4b33,4303439c3ed52ec3578b44adc58ff53b3a12621d06c64d0cc99f6c303cba2a75,1920b35109deeaf48056f22a316561d813e11bc314fbe2776e1de60b6437a5b5,f4ba05804f46e57181324b4aa0b152c30efc0f112e210fab69d9ca6e4d4272ad,abe7c274b7a0d80a4d6334214718431431f320df14e6e58df9b9bdbd1326aa66,af67aeeae590542ff0979272c6b90cb08190cddee69286a8b331ba004a0f888e,60c4a672b97de98fefd742774780c613d2d5a9018b601b1409c904e330973cc9,e682e7b8f99af49255a0dee051a720f188de69b45850585768a49a15065b3853,530587d6c7f36bab9f99cb215aa95faa34510bc724076135e2e8636bec45486b,6e213faff82a3d4ef645aefeed16290828be01d6b439c4ca046900c4c90694a1,d295e55aef72e685294ed73c8c524ca4abd95e666446714eb45eeb76df655945,2874718d284eb610b6592d2dd5825f6882c3afbb46b8c614922e3caebfb449eb,bfe1927db97b3102d41b34b782432daa218672dd1183afdb4d5d802915681204,75781af10ea646843b3b2f17a14252e075b4bdf8d00f94d82486c77a4fd587e2,f9b6e65c24c876f312e5a98bd92b812b95e191fcda76a53f63e3cb4346160246,1a5b178f1f0c20be899f4e31d80f9a46142e3cfe27555654d4598a6b5cfb6884,3df98d7be645d921f20f26ecc411a2fa2ebc6007154a45099bcda16bc6125db8,864393d1fb0c0fc086e282f8f355d14ba38db917e7ccd4a2b348da847982093a,8789cea4725f089c002b96ddfb23db9707061e206d4b3c228c22c03ddfaf6b22,8385264354becbbbb2a297dd118e65452d93501bea3bee8d1df69de1d84b6da4,0fc2db3f3e8a3ef98c458e0aed8490e592c5ba0d623ca4fd4c08aaceb4d39ce4,837a8d9cbf086778f1dd26ab439c365867799cb5bcd3645c21ebe4c7141de8e8,25ca8f1ca5b9e878fc78733e123bd8a3bbc450b55b3f92dd84a3ced425021ac5,ce6268e9f6bf0d074014be88075c2002ee61a4b7ba9d8f7397916d9faaa111f1,0e1e5f75227a10286cb7952ff7bd9517df91ce1bc61cc1bb789208b47e3fe19f,ff96b9a900dd27a0deec96ad9db17dccd2ac68d14ab88377d9f0c0c6554825a3,c4330bc073a5a84ea2bc802b95df93602986db3780e645ce558cc6597155242e,a2ba8cf3a91e0515b64b653b27ae72afd9b2eed2b487263cbf09d1622c07d81a,1a27d303d6d3e7cdc74ce565271356dfce6a1a5c054aafe814c372f125a59f4e,79770bc8ff47112a1c5c00b7b32782e55f7a79ca9cf157c1f6fe6668e8c8bd49,8fa7d90982a889353baa9e61ac4c4b99ef23279eb234321aaa804432b5100f6c,21a43f4f639a904ae24baf27f91e7079c9ecea97b6eaffc503df28e5966f073a,e888fce69b0006f24585176b053aa0f72cf7e27a3e658aecbbf7811dd5006062,f120c74a791f334eba1655fa38cbc030d242b6af59902ef4c54525da7e9a99b8,035934a0533c3d066864b665b4f42c1160bf0964d47dfbb3c968ed10bc6d050c,16951e1a8b2b1e5dd80d7644e200e6933cdd4a5bad0ca08453a2c0ec77290e4f,4fa2e5b11e093347ae7e5277af1a999825ceaa95f0bbd6d7bc4b2de4e37fa4ad,f08273d25e7c32c0e343882fce1960e9cb9b07ef2dd43996d7b87a80c8e0366b,1dc2cd862f11e7c571a8e119091b45de8db1e9a04ab1e00fe0d4aa2e79e632af,ec25ca714093842cd7f3da2d65ffbe7dab9d09760fda079203d60ab03528b724,301d88a9c40e675bec37429d1d36c41fc3cc1f4c654c0c1458f8536907f27c36,d30808f33e64a638d346b90a8a3402210796eb7acde7a029b94ebc9aae998046,6079ebddd7753c16774265531b64d6541ef033e55969ce72fcb581ab7c534843,4aaf0c3049ca92840913b47d63acfa01756049db276c5984226c314ad297beb6,dda1d1e18903180a84efb45339bbfa5792952e847368d72e2e7346a396e3a050,e28a5a1038a9b095a70c3392570f36ff30a26deeca4870609d114223724b6892,52905ceae4ae5346e5a2c3d934c3efec13286919792ef01e1a988b6e91f54e9c,888d20be94b7ed9f29c5a3c308c7a65b2d56132e58925154695cc0d75a808643,aef74a5d4c5c6b17954c9cd1a8ffd7cffca8d3e148d53027dcaffc75777dac65,a879e6399947e329d6fed4c2986e0bbf735faf524e3a23915554b6f604c852b7,63fe3a9b01da198efa5f01d22e5adcfaf8ba47e087cf3ebf44dee05fee71ee88,ee7cef53e6ac67f8181df6fcbe453583a390d571ad7a699f1ec56ab02f0b8d66,276cbb2e0ba9247d70ce1549e9d16bef3dc4764b67702d7d07e5bf0ca619b859,da3cbc02fb2b9243454bdd19641a9b3213e068bb54c4886cb2a17de38fe1e0fa,9b0bc897a1ea85fbbaa486f2882b92353a8facad9d0297499488dce02c201fba,81b056578348300de524a20d86898f80745860fa34e70c214a0be2d66950bcb3,c98f26bb6593ad78192c724378660f6a4cfb91807180a3d318a89c6f892bc05a,f223b62fd8147d3286efbcd0153cc4b1740fa83be27ced34c5fd7c3133ed73e0,f634a45472f37873592680eca9b3a180fe1d0a52a534d4f303e77009e33df281,735ea05a744806872d4f90bbad99567d77b9948b3b4f5f21f003dc0a95968b24,d2bd88fb09feaada2fddedbe15fad7c101b1792b6695222becd793eb538a9e11,de400f8bd10edaedc199a88f6bb0d615ae2409dfc1e56478bdf95a242928e412,b10957c74f422fb6283aa75ecd7dd77c74009be89620b30fbd07f543cc46f8de,8fa364957f8c0edeed46e0624e18253b9cf525e4e8c56efdfc2bc5a20da29a00,def1bea916585ed32dcec3547833d5afc27f5229e411911c62d011645067872a,1c8e8d1282bd848632b800fa981efe8365df2248373f9e24d8c3bcb8d75db53e,4097ac0d4611f9b3c58773f4b90cec2b20c2dd70f17969faba6769bd7847e028,a3b26dcce8ba458d99d3f024333b2d3c7bf5e9eb7aceaf79a584f1ed1622d54d,a224e70fa1afa37319c703aec042e92935736c209126e672a768bcfaade27197,929e4dccb152c580c0f283751c64febde686df45d8fbd20558c9307da51d0dfe,811fbb0e66a06ca0932656e93ce152c8830a6270ac3082678fe070b924a0a9ed,174aa3bd59a7ab175568681d175c890ce80acdef71111033aaf79ef30d79ad1f,2526d12628b66a037634f1c39b39fd028834422771990e70a39e26cbcb1506b9,70343c268eeb3506fd7be3b170d66b50bceac6f32b43b1679e251e627ca830c8,967b165fbfa8dcd505d5e49d769f4550044d674aec1b7ba68df32380a2bc6988,53515f242a7d04c8571436db8230175930750068ad90491c06604464bd76c413,7c531464c41dde3282770528e85a4d117d22eeb7981edb4d4bc2aa9ac49a0171,97059e9c2d1e4ff960b3aa3f2b731417dd8e6304d71179617858983b5d2ad071,fa6bad715a5417bdc0db1f9d918aea0408f0e0be65419c3d8bacf74fd00e3c4f,2a45f391296346a6890e4970da4ab2b0a77314632d7c30e9e091ba934e250a8f,df97e7d51436f73d59c2a789cdf51c50474a7f01bdcc45a2e7cf52bbe56f71cb,5e4611eb130221a115a1763958d23f841dfecab160b6b50b2dce11bb0cbe4557,988a799d452dc9aa20642d921a2a2f963d25e640d022c2e7d998afc4f7cc6d0a,e84ab9e411a0d6f90cf4c060c83758aff4a7738caf28e848d09aa3f54b575bd1,a5b48b78a04cda7c58f54ca06747a6838c2df9bb41cc2ab611a1f15a10f95bf7,325fd9c659ffd57f5f086f9079f981eff71fe1c070ac964af7909f96ba6c2cbb,509dc32454539193e107e2244263e3b8e2499a976dd03c085d3941a7de28e6a8,71d157682f0828e30d2db8ab22d501537b0b9d7305b38da6835487807cb1f011,4fcd024fb007dc328bc55810dfa10b832ccfee5488cd975195f1161cad0b5409,4998aed27f2937e581bf723993bab28b2d0fcdbf64fd26a3c760fcfea95d7ca1,26ed22f810fd3b43ba458af695f4851f93781c7b3d4d3e1084e3d17f2e00836c,0f4da4a09661d5dc86c432d14eedd1585df03f2a71ae1ec7f3a128893de244bf,821f8d48fbb8e01527c1ddc1f4cb3bb577acca8a38449647f5cb131a50ecda1e,4a4476a96010988afd5f42138b3d4bb0a720c91fe21b9efcca8f064f3b84d3ad,0c05af3d5febcc5a6415912f5ead4c95a063fda2f34019d6c9a4fdc8ffcd04a5,d3270e407db89899790ac637a4d0191f91c5b806cafebebd5f5ec62efb626e25,396ed6adeaddd48aa3faf343f77af7dfa300d2dfc4ada3ea87361efdd8ae0319,d990910307af5e1fa93c558019da7f87f9793ce9cb220f35eb129fe5dd0ce09c,a5b22feb8c9b44871790e7b7b745e8bc85ab01ea4dc7953e34e99095cab5fa25,da460e04a28999946c791ade34dc6d93eb172d60833cbfa2b56b2d0cadf9a674,d72b838ec8b67cf28956f9f1d48d1038cbad7ad4179e8261e5413788de62f8b2,a88fea66842786dc2d41a80b9ad8bc4ae213d2499272f2168cf79a05e0ea360b,8000f281ec59d9fb4f50602cb7b042db4ef853349fadd945fc62f8d92e805f6c,2ec549bd1628c3889b9e2e389fcc136465dbe590c8c9022e7d6b2845acef84fb,3411087158fb08a9d8cdddea99a8e28b7ba2830b52bf20d6bdd6e12e8bee5f39`\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"SJmwbpb+O6N6ED/qaq9DoqzCVJAOjRjCpE1D0j56zpPdKvWiiHjEPh2nDVxEITPXjPQ8eZDbEzWLlcX+hOcFAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","package":{"name":"main","path":"gno.land/r/g125em6arxsnj49vx35f0n0z34putv5ty3376fg5/run","files":[{"name":"uploadhashes.gno","body":"package main\n\nimport \"gno.land/r/leon/v1/raffle\"\n\nfunc main() {\n\traffle.UploadCodeHashes(testHashes)\n}\n\nconst testHashes string = `a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b`\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"PMgcsdpiHxlPdbuuQNNvopurOtA2oIqEG5Tz/Fl5+aO+8zMXdBLEbqF5/utyW++CPjRE1pf6ZVLpcJgraEN/Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g125em6arxsnj49vx35f0n0z34putv5ty3376fg5","send":"","package":{"name":"main","path":"gno.land/r/g125em6arxsnj49vx35f0n0z34putv5ty3376fg5/run","files":[{"name":"uploadhashes.gno","body":"package main\n\nimport \"gno.land/r/leon/v2/raffle\"\n\nfunc main() {\n\traffle.UploadCodeHashes(testHashes)\n}\n\nconst testHashes string = `a657602fc08191e7a4e0255a818a0ec544c8ce0826fe9ecf0c47eb538b2a9920,e4ce35fc370cb77c8416d6cf248e406c3f41073955d2d1c46dfcde630437711c,d1c73632a00861c2a57502edcc7105df21e22f6f4764e07dbd76c1dd456fd763,5e9a113e15140d8e7ec30a70d999038970da4dc84b8517fdf93d8eba56b4f4cd,d0a8e682db50c4b5f16dbb1c206cc8086f58094642d5864db8cd5feaefff0eae,6d0d8c67778d4ea8ac5ed234c12075b7ccb96350ea84711f455eb1538ac30025,e287bbe122d9be4c90d2fc62e51abbc67de50f6c8044636a61e7f801081ba907,6c4567fdd88ee306f715eac751010b5ef8a66bab66258e580be4915898b1dfaa,85463175e47915820c55acbc2531eaf360a8c0586c3b59cbbf270efcae64382d,b9efac79a5d7a24930b1429e884c0e8834954c07d71fbf65eb2c6ed9deeb4b86,e22a3c12a95f1f07a0efc398da7c39c4dfa75447f17a03184271cfb5a5c96878,38b9840b1b4424a90d4999dae44d5e84b91ca5ec9f9227019134b124e17d9365,e8938fb84352f04418c0004d647b83627f9a87ca6df5565acb3af41a5ae4e96a,0230a0c0692cb9a8a5ef678e43f6693c48798ca10cc18694beaffea4825d8ea2,df9656caee96c6307c2a5f1b8e7ccd5939ec5d5d20902865d6bea75c696ece8a,0826a9dd51b29e6c2a5fa4851b9901938766a966be238bde273b4e18d13d8f52,3b6f3cc0d0a263cac2542c2280f43f15fbcd5e84a8e381def4f85ead1f50fc1f,203d4d1fbd75126347c4d6f5507e9d0a3a3e7c882add72157a036c9dc4e66512,7390338a73bb575ba433c21c4f20046fc84e068569ae4dd646105a9a6a58847a,336dd7b5898bf4970a26b5b4a6fe676b5dcb8717e001c9b35bb77ef470b4a7aa,8a9664c99a6f9c834aa54c4a762a31e8047584637fc9062e5069c0aa72631424,f1c8980ccb671cdebf22a160a6e80d7e32fbaee249642d0542b0c200d49aba3c,53448154f4b36b94312be81822b1b5e50dccfdc79b32e2c22b16ccc6b7d578d3,f70a7b08f88830a74830a78e9cec3f8d232217b113cdda0c8999701ad03e8d9a,ebabcfaf537123853c1f4fe32663ab2b9940ca380a469c90b4335a3cd75ad845,f11b62e725abd3132689a08c414a9d8056306685ad579015234147ca8d951ef5,e8746cdb50ea505868f1b14a639befe60793e1b098595ada30da9dea8543f85e,d64f3d1df00b2499d8dfb70a7ec677b6254194c1cc6fbccf2a5de0a1554aa73b,bbc3769aeb96573e828bcb88d4043326422a486cd7408d673f55a74c2bceb905,89b3990c08d38bc4f157d83dc4a3de9daa22d47eefa2b8d2083b45e22d987059,befa5f82ba8c1e203827afdd525b1bff339db39bd687499e67cf4ea0ff1ea7da,35248acd0ed6d6a551b7e6bc46f5fb6c5e00e996021298370a3a6145e45557bc,bacccc0dddadfa4e5ce03565a4d60fbfa13e4c6df882b4c5380c63c2fed1c72a,c3482d84d0f68d7340aea787390aa271051697c9f6189e01c970ff18cc871113,d03111e4fcf3c5706acbcdf03408f27c392de6d622b6c587fdc01a15aac8511d,77d3c66add6417b3c82b33ffc4bd56f99f0e1f2ad6b50cb7dfa52cc20fbe53c6,de52618ddb2a0814d537e701065d093dd99b15ff8ed9df4a47fae47b36191144,e5b2c494f09c57fcc1a2f1c81b8bd543418561195c1b406ff0933c80bc43926c,290862b65579a5a9e7b7af38787aadd098db50c474fc8973f1d40935c2abdff8,4790aad6ef509672d5b51ba192b1465f4c7c8c8ed5575164e549502498cdc314,bf421d436ac5cac95ebe884d84c2bc10865b614ffda07ba5e47bcfb45d0cae68,44119bae5a9ad9707bf4ae45b986db6c14910549c134977cfe4a9722d8bb8413,8b66d6f823efce27b5dd4ef8df2e7c420f977683ad951e55117133c96d3a2fef,7950ef46b73ee87379ce9bdcc80e7fb5cb1e2a0550142d09772f5adb48990783,47900068bbfecf6e272a543101b24e3284cf97d20f10c83e0cef34fd3d7b8939,9b70918fe6fdc6b997251f8988b1e28b26fbcf5b00aa009b54ed6987954b1054,87e5fda75dab4f89646c832951c3ca0ee2ed7908eb67be8b7665bca0c11d4863,e2401111629a0f6b97c09b98cca394d653ef3b2b7b130e6dd97a1bd278be6fd3,513ab2a40f29de856e9e75f7f556384b5793b52630966e2572448201b4d91241,38ce4e383b82bba6324efe0b591a140e108a140d348964e12fe4095f1ec28836,10ecfdb05cccb69aac313df1b85b6e9a8d16239fc72b6ba01d54cb3a01367d23,63a2f5ba3d1e707b0d2e7143e6ae0b59d2db066c910d8dac1044282a7b414a2c,5358b5d792244a4a9cd76b1a53cecb72edd8ad86b150bee596bd111984f37c8d,f1472a16d28eeda10cde756bb0fc9b1edfd72086ad1b7ba848f3b2c7c0c1ba60,12e200388a96f0c880cf48e93b2ea96287b7295b64ca80618e0425bf57fefc12,ebcc48149e5fef8d883c2feab956bf116beaefe8ab9eb751ccf991036fbd21e2,0c40425718e03bb1dd82551fce54f4580e8220fea9f6d615b026698fd9669c80,4848690fc49a95c439cec58f89982b58840164815d953c8fa87ccaaab2bd1731,6a16bad26a7cc979a4f8e5eedbc80fcfd9ed7ecab91193becaff50f33efc28da,ebb1a01c03117dcb0aaea770106bbdeaab4977f48c996a4f099afeb1b2facfdf,01b214bd9fd35002db91584f4eaf2c6be48033f47e10de7b3688a8ec03c3ac76,7826ebc97a654bf788cb023f6be2dd87989948ed6c1459af75d66323ec609933,f5e1f76ada455535d638d72d5ef1026376845487d1b6f36a260e4c7e9695601c,3f7f2d5f5a5880ceb62584e53b591be6daea1c1256e40d08bcf800341c0f4998,81d396417b5c2f4fa3ba7ff9a549bcc4828c67023f02e312a1d2b04d6a0dc284,a038ade0998e9b9f9b8f6a6c07f1fcfd71a94c2cede2e008c01f20c5bcd8c951,440bf41f1820ae151a8b9b7d9929092506b9b37ff9008d25b420189f6c5fca13,3a84efff563cbf7b4d8d5cb263f4f5fe0b165d6489ef97cb5f027132637d5966,7424bde3031042dca9b2772420802729013620f0080339286714a1cb025819ff,7ce7ac17c0ee78366435633c0e6a7856a39191acdd31e0a4fb8ac805e34d46d3,aec871aab9cd61464a27bf28f20f9787d1487fc7db381755b446eaeda32bef95,1776c5cfe011cba0de6adedc058437199b5b4d022891b700ad34c253bf51f528,77c42978cbb6d4e9ea009bad225ce9c6b9628ef385b0e920d840fc717640c2a4,0234edb9221988c6f9926a02875e25f902636edf0352dba3119c80576f6d234a,a3982bc2e9fc9bf4ba8a557faf0fe3c87c7d70704cc34bb257ccce850a56df9c,1028d4888bcbd6de66991f55b05281908a43bd721999e52b864043e5b20a1b4e,1243e8b9d1f3f9faf60a3ef85df793a21cd32fe70be208daaa8b581ef2ce8e68,f126a0245767f09b0673b4db69cd15c21f5bd30db6a4bba8d1a31ea641d58b33,3f2c79cfe02d3997fceb691aeb35d7cd57de441b4cef6e30b9b962deef9c50b9,f5fa2ea7bb2b4c8c6ffc48161983f88bdd19be45a57fc98ff9c1fff82f801014,d8df89e0cdeb42bdc936da63cde0fb936f56dc234da63917663fd7372b7660e8,0e8b757308130fedef4420b79e3d3945e6f8d2d17850eed9309e4d130f654672,b997b5fc7ccd97a0539bda23185af6f510eeb5d73de4fcd6647784567295bc6d,a3e3ef6e658b4466bf2171c47455a80cc2bec6a90dcc1fb3390cf744eb53c1c7,8fcbfc5d27166c53d080f471d16f6bc8e8aebd92f0dad07de4b859495ff042e9,28a00715a1445747db570f4072a94bb51e3174665cc256982f68eb73ae373ea1,b9a85ace3beb1b30f5246b3226efd57c9f829799fe621585ee7835f55d390960,76f2d988a34611508881726f80b18430753a9bddaf239fa1e3ca248c07f563d1,810a984e20a8f0d9fea02b69a9d0d7ee64743d73c24919f060355c58221659db,ec0ceca541ac704ef78375ce66bae03e2ac7f948e14d0702702b5edd44431ed8,45c038cfcbe4bbaadb423bfb6d69aa166bc36444478eddf04dca330e747645df,66978f4b114af8a2c7bff35caddd57b0e34d4469422e1f5177d84efbc29e9f9c,68deee2f5ed12726ba48c143de86f5bfc6f52e42387b6b118bd6adc15c6398de,a0db86d2a0c9ce98a0e3e45bdcad8786af03bc8c616726b39e73514d242903fa,585814809fdc5504c535b33a7905c9eb1fa3fa49d614de3691714738ae50800c,1302a8f2dc151addb559c3078c9ff96e4d0c0830e741837ed7167acab0f9c665,4142bf0dad7aed829ce45f47b9dc7301c99ce48eddc44eb72bbcd790238e51df,7258b40d72fa503550edd920756c4a1707b73bdefcce5ea94e79077e215c2ac0,14e73a66c7000d5cb2e2814cae0efb467f7a7db3ff586781127d35755ee90dea,b0847a80927caf523b377dd8e6afbfd29d9d247489f5531492b52a1603efaf31,1fcbf67cb147f8550780d80e16f5a9e22e28d5fd73ad04c7eb05f089173f8e6e,4b7ef70b85443c71ed7d39c56825a8d6faacb85a4697cafa4945680a0ad3a9d3,5915da1266757108bc408ceeabd04a99c93f745af0462d1df9ac42384cca7e07,b3acef10f8a2f04d21dc8856c7e138f103dbdc5e6b34e6871b12eb2ec6907a18,8da8f353e95c27476094aa037c06d987f72ab08ea5927af07bdffd24467a5f68,0502db50a5bfbbfac71e959bd4f372a47e83ab6a17a255b0e60b402c122b3fc8,04ee807da45b9a2a8a1cdd0148e1babb794e9e7584c55f370a2f723a16632c2f,79ed422a442f7b3a6b194660ec90560b742b9ba018c2bedd72d6d5a60b332c5a,07fdacdd8c1909fa7042e20ffe2d5f5bfcdbdb59ebf3e11886d02a5f0fbc05ed,361e57a73aec8cacee32496094263948fbd6a9d96e731fafec127eb9fd813f26,c36e6c40c3035c5dc4d8f015363c4591dff5a0e2065aa719c751cdde1a81bcbc,9bac59d959407ea715e81eb23ce43cc88e462c5a25ce525a5dd7b417ad7ea7d9,8dc69bf8158365d866d999fe69b6a7bd869961bafd09863b30d7d6a114bfc5b8,b00f70f3daa8b95576f82c3e59ecdd8558029ee49fe3f726a39d06a1e8fffebe,7ea988c095c4107824bced289ab7d21136e81dddac6a57af836e639135a08e05,966476658b04905c11608c684e267508c9f875f90bb03178b6b4b93ec2f98f13,f2d19b603793cc43563223651b218f8e465f1bfbbc803ac0982e75c8424e12e9,87610850a33a00749627bbc7c6e0aeff65813378733563d05b09333ed445ed54,b980b9789136661518c8864a2caf5f5ef7564408d05391888d25695d6bae1c9b,5fd10e734dd73befd2506c7a4b3d9c453366788763933a32ae7c8a1cec69c000,420858c69ef2cc9b5077f786392fecefbbd76501a8843ca13755a8efbfe6c6d2,6c6dd279e6b135970fe3352b41771341ddb0da7b41b5347b53004970ca2a07d7,247bf14ff84a4c498caeb9aaf249d186db1f84e19363a1a3f118801a57ba09e6,2d568b421ddbe5486bee08dd6d1c584f3311eed85dc714aea72efbc8f26b1b66,274b1391e2d9c3416515ecc8d10061cd1918f9fa9b7e91c7e96934e9cb6bc8a1,25fb97b440fd5a8c2148b8301eadb6419c1350003e4d9f2956a9e782a3e898d1,2d1bf699f5a8f2c5b2817eda0ef641947c6abbe7382fb888194e1d5fdad09566,330b374790e6d56d65f871ceb5a1779bc9859ddc29fd7bfd0d2e2a36936d9e98,3ad6891a7801438b4c695915e33ab8b7601e7f96074425b4dfc81ac76d6d09fa,8936901fa82ce332b699810e836e5320b0a0c5a267be7d875f991607a4eae282,d96bffa8ce37e4148483ff508f2a60b6629938db37b26664be8f4de4e8f9be27,7b4fde34ebe05d8c5a6c7c9bf0caa3971173bbbb62450179db376c1183325c65,4e38a924326b672f732602e8b926997eaf815cb8d9552ca8b2d694d0ceb74621,8d88853e489365132031f1c19f96787bb7955fadf3a33210222260c41b46fee9,73c500ead65ef2286b5140e06deb05ec11c78caa32954452e9ac50f01d4b1574,a8fbe2c40d74d690018dcbac28ce03edac5e5078d86544f04d422cb94b2dcc5b,3070a2343f71b624450db8bbdfa58ad1d4f20d171120fad69163ff68d969b36e,c4b2f358fc2cf8d771f8adc21419ed06fb3c2eafb8aaaf57f9f0036b71b24a79,8b33b6c3935ba61868fe6c3cc82dc09cf8956ca401e4081bb9070caaecd54a00,2440f69ab8f6f3a40c2bb83c8c11fdfbb69b32c6fb92a8059fc53f72c90a0fe7,dcb1b291ea41f4aa8f4632f62cfb20860a55bbcccd5b865bb36a8c0868763493,77fe31a59eddd7b925605d0081ae357da852d2530c820db0eea6418f826270ec,5a48b14d87fe45c7ef72def490db5cba84626720dcba876037241568ce75eb0b,28282b12ce1bf020a380fff1d6276f20533530ecc1fe666744c7761e80bdf7bf,f7965deadf987642563ceb0afe231c0ba0656547a83c3b2c58eb101cfc3b6df2,75f75d426cf3b26ddcf9d81e37ab8ef4e9421820f35abeec77e89fe2f229c713,df4ad30a4d19080ef444e9b86bcb539bfde6b6172254e6348e1f8677a6f8a2ff,72d98f1549d8125c6f98aa65ce936d978b7e46761c7b738ff162098b97ca22b4,07fc641ee6efc88323ef2928b263822f66b8bc844fcf686e8b6b809cc55cb28f,6fe314848cf6b71e3dfb97e81c58e8a5cfdd5c95907beba0d80cc733e338fc4d,edbb054b6a58f073de56cb76b962686aa3285cf0061dc1274c95d7d6091b3b33,600b8c1e159b5a119a8f2856c9da15f0cc407a9440c28a9c930b93319080e11e,dedfa5adaadbb507df7acd1aff8bf15e792556ef5a20f7ed8f2f733b50a2a94c,266161aee785bfce4cd62bb7f373f7f6c5843042aec46851858b15be81f99c01,a27b39e042e6b6d8a409c02ef510e87bb4fcd6d17a583465f1e3bdef8fd5ff66,bedc14158770ae8dbc3cf5e095890c1ae813a71519a1599e12d318c109a03d73,eb6c718e060181374cbaf61401df3fe4795b5ea7d69071ca54db7ec46b5f39d5,1db3779583cd8ddfebc1c33b9554c259e73ce94f352c8b9dc65d91b945f42508,9d178e34adcadf94b206f0d04956160e3e6f1aa621ee7e901f43d5b4993a268d,6852d1772470588b412382efa795fd3839c0b5f0d5c73db60ace8d9f0654f5ac,c16d4d475f5bbf6b0fefe2c737538109175d619e6fbf84fe0ddffaa107f49624,4a2d53b4176333403f606c59b12561716543c596455de1883a1a08648cfe5633,0abf8530e6570ac69c068b160acc807b660331fb7f206267891772e05784f080,ea085e3675b4f1ee23aee81d920d14168f7740c4dae404f081263200c582d5e5,d1f88d59c10f517a00f8379fe0dd5ff60fca94e5e5a077432ffbb6a2b6f85a13,43a471ba0c43af7bc0e53f487585fc7e44a4262bb0eca400038a875430847ce9,6a9a40995191d5bc3bdb32b7ae6af6b2541e55576cfafcd97c9bcd95da4b5340,e28698e18e49e481b8a92b4102cb259584d81edf3f73468c5ca5509d5b5874b9,007b899ee4ad9cf389a4db03ed5ec69e8a2c4648cec328f0c669425089186604,8ae572d8a53847a30f5e9f2ac5d734341c2fac4fd8f574b2b9d9b24817d6e372,f857a1374f3cb2c80661ecadaf5d0e3622e72d77d266aa7ad2801e7db335b969,2e9eba7803798b99de5e59a3cb207ca53180326d7dddc4f80460ef1e3bca9f22,6d2d8fdc6bebd8bb5aebf5f4008856c427fc9b077cedef06d7cabdbb35230090,e88f5a8743a1e2cc24c07bf93d2566293ec90dc3016d6d561ac359f200afcd7c,73d8e522befb3985d72f69876a3bd5bfd656ef442af8db63f24e3802fbf7453e,09dc75bc71fad01c85dc0c7a2dd4594ae3883bf5ef8155cd2856638bf467842b,69f06e1c5773eddc50d89714a081fd26d6c271355f609d171d90f09fdb6ad311,1e8fcdd32d547ec02338d40cefd09b02b28a4ae8f8972a4fafa158107f6a890c,79dffd0030e1dd9af958fe233cbdf1959ff3d749d863da8b92bf6d2edcd114ad,e089dab3bb2519de80cf8666f589e183f4ddf80f8778282694632499c093aaad,2f342899b6e2505b72a25f7f507298b4cd5b0400f9d034d45a95fa86d127b171,5b6767fdff5a39d92eeb8415eec49f48b958e9c38151ce4356d09e43f8b397e9,a70b2878df44bd3952d9da43fea40bb475d2a87d21b8d5750c2153163af39c0a,4526593e49e532e8e498a8b14c3ca15c1749dfac9cf39a0b44b4c18ddc319440,118502524e8a02d7c7ee2cb984b598f27afb3b7b78b92326b2fbfc3c53f48464,8379f7dc2c391ac38ea1d34ddff36faf5602bf128b6d93a3a8a6485b1d8dc23f,0c17a500636a9a94b405b8e9f2fcd45b058a4a9070c156332e429daf0379572b,7e302ffccaacae442283c86d2afdf7c240d19dc42c41440419c8b78efdfc9dec,a19467bab0f5a753e4daadd080e64f13c79bdabd7e403575f9f3d3b7b6ca66fa,4162c48bb1ba5e8dd38518f9d1007300e46348e01a97184e253a3250ed0f9ffb,c1e36882f77da60283f64d2590e3389497e6583fcdb61c21d352d522506a8882,64a4716a19fd7b8009a5e6d5924a74c65ef8e5f85c64345c7b89a4e6b6135e5b,8136dbac064d798c9e30bf31e62d74f99ffb37d3bd9f3d6d3c6544669ca3cded,790f8dfbe56b27d1b82b00bf96394caa4ef54263229bf3ee5b2aa891ec8b5676,7d060a4e92f2c1f4cd2546f5409cae2c946b70556b249455dc19fb93e8dcdb9d,8e62713fc4972433c63b1c0c19cc1d291471381b11183b40e450263956a4d1f8,46255b9d4d2059337f3949e4ada5c2d16ab8385f66967291e204175aa2120986,49023745977f47f7439c701985905ad2be42b2a89c070df73ea8dc7f9c5ae627,75e6c4c28e4dedef545bbe58ea2b497dffc90ed7fe6d7261287e90cd85a3fcfa,fee9501fc25e4c85c0d205473426d6e6f4e02eca002eab6513c6467885486fab,77f39047575527668b8c86defb3a15328d6f6289ffb1dce1b01fd1c9f193f739,59e80ebb2f5424610ffc9070e39c64805a1d6a44f52993eaf0b427b3a8494b99,bfddb6b1867c2d0cf3ed074ce94fadc786226f28f98f9f1d7ac5bd6a1e040f9b,4c6aae8655346883ce266665e0c61461636a128c8804d6aca78f9c8a35356fbe,bf4462bc1f0c88cd99e30a20c6b6eeae09f7a17a737314192aac8b40056e90e1,f448286e1d5a998965efeed87d8feffd6ecc3fc0a9a8658730da10715324f89c,7619cfb410a5bb992e9da50699a6cdd82a0279e27176ebf4c1c21c12dea2459a,48395b0355072b681c77cf4684dfa228f4009c4985d013908539e34d306bb4d5,6fa9d11c314c5430db8ac179f7e1517d754781522b94f2da800a3d9db8a191be,79462eb8641df40ec28d7ae89ec7f1d5548b7b0316fb03da682726b35bfdcf7d,dbb07ef67043d85768c04c5c68e98a88685bd2785a3b20ba574403397fdcd33d,5be705a5717f0ad7688077b80765f8eac1be081d07105c7ab342db817461213e,0314be8e3cfcc6f00f5a0b3ce074f844f8126692bc9db1951df722379ca37622,b225bede76fe85a80c30ec258bcff80f9226fc3b3c07e1c75aa43e38968c85b0,ecceb05c114658703ee5bda417b23ecedffc67129d59b52a4fb60b9aad8624ee,56d6e51283d0da2e6aa6d8a166178aa5bf97c0d6ad8b6514a2b1a8701a890a54,274754307e41b8a6333f8f2d9bc679640fdeaa6954c94d91b022185d2e0f64ca,1c303f25b84f7f63fba0c97dd1ebf1148c1968658dca21b27df47ae2b86c4c2b,04638bdc28da59d45407c756701e4285ad0487858e92b2e45ccf99ffafaaf73f,ed4d011b44c9801335df5d3b5550977b11a1e78ec7ad1ebb477ad2eb707ddefe,333a3f0c920bf95d95cfaaa069a17ccfb0998ebc5697764788642ecb69c1746c,c6db8bfb6ee98557377bf8886a12c5784f613a53db3c09c161938039706941f4,25c3e1dcd0d27d63978adcefe9f862d9be8e20ed44bd80c359ffe99bc72fb095,035d2f21a40a3c5f97be226cb26e792130ba0d56dfe472b5cd9e1fd0b5d557f8,16411af320b57bac481c370cab692121e93edc942c2a6851c64737951a9594a7,43cc758c0134246a8a9e7db3f08a63709f0db02cb8431c21319e832845e3bdfe,3d9149f5c36eee7b661628d69b8d3e323b4fed8f544f8ca7b1bb575de94d465d,85ce96c84ff64f03e0c8b72dc9d6f2a4679c034836368345e22ffd0a170ad62f,2691d4f78bedcd4a6f6fa39c45a0109e4a11ce7603c656b53cca835d3863e06a,cbd21277046ea7f4572d6e8149077713575239ccf8a98c56b162b633a6490cf2,30335f29996cecf0747bf4e2b44f8ee3959e4cc277317d48e80f7726a85d87ef,afbde53c640182877df7eb5955d42669c5aa54e65ba304d6bdfb1be002cda374,d053a7b55ccdbf594d95fa053a1dd93d41a72e9c29b15b68e571e482d33277a4,3ae128f7b953405c2cd293c2e62a9c99914a7ed69d84c927c518bb9fc21b74d5,ab43d526f1dc6a32395c49806c8bc73bae918a5f3cb5fc1d0f99cc32e8d45867,7c5151e7116ff12d2325c9b2e98256e43802f6c4a15584be250aecbf143f50e3,5ee1a8ac394732056708b628216815b744eb5fefcff8426eb48d682ae7fe0bdb,e1f06ae08a52e1e4e7544d0ee343d33ba6ea5a71d7ce00c56a3f14058a199d78,771032904be77e19c389ae615a39e78aed70ae8e233edd8f3d5aafee1e4691df,cf0dfd60ef8f949ec0168439c7022546c5f00634e7fdd668900bcad1e2e81756,84bb868f3ec690f914e3a8cde683b55653e554bf5ae6516304ca95e3e0be0ce9,2e6bb4a91f7df30a0fe05ad3d02ea64b6a571a089ecd6e1a2caf900e5175949e,566cf7e6d6419fff93e8f18bd34b7fdb2db9b2d4191434e37a97e3a5cd00b186,912729b57611e1422879af83c5d11bb416c0b98fa83dc392bae590d7e90d5d12,54a7f54922ffc66260dcf30076c4cc7fa254cc9b830b2e37349d7b40f0d67231,d2cdfe1068809e2e519bec2fb30eff036085ed0fd5a174157f4a531be489a9c4,00c19bdcfabceeef4ab4c71251f41d59173c43b87ef0e968e7aa5bcf77fc3aa3,00a1b917cf86485c9e86030ec1afe9b7e28a4345f46471b92b4e0d08b698bae5,17b23ef7d38a3a0334ef68087a585ac48956984f6e0321c62d30011368954485,1fb0c2d4d015596c3439f405da4a7a2497ba94cdecb535e70cfda08c6a764f4f,993c1131175eb1f3b8b5d1d72ea5addac559a20b5154838ee86aa9b71e06652e,2ede50271add1f8aa5b91bcd222d83eecea7f4a524c9e62ec01cd889a55aad45,20ada1b4fe496096230fec2c00bff8a037db5079c6f45955317df9c2ede5f85b,b37b8821965b243026b83a59ea4e4e2246545fbcc1100d8effeca612a3b6bb4a,0760c516052f81058efd89aa11573c744ffd4f5685e11e9e200bd0ba0228ee34,fc3cc3b0dc5592a8c0a2e41d3ba995c0f65efbf2797c2b7b2403bd2c552acd64,0475e984bf932adabb1fe98d943ad23fd56e4bd53c2e7bbb12ea69b7996430be,d60ec04ea36dab7f685a2dc50c2f76ede60a6b594b15317d7e32d2438eef36ef,13dbd661bb4f0bc0854b761b94470f2c8d3ea069c2b2c53d07f40da9668515a2,875472cab949b679152079e79cd06ad376c30f4c298b2f7e191f5f7ef3aa1ccf,bfc95afeb7c01ea29780954bc62c9830af90e4a8882b64d24e65d7c30e075e48,4d100b664eee670a68d88d07bab4ca55dad28da862b2af631b29d5031920e10d,1275cde34b3de398a87fccd8bfa2261f826983ea774a0a413843f9de07beac70,b3cc121e4d7f7bc008ecd7d79b2f08d32c34c036c64678ae7cc43112b4297210,46a13985c51e2cae515be2a8f1eb0b42fea64cf366057a611cee74aaa7c648e3,df40e86985f66578e1ca70bea1c1a58b943c3b37bae49f639a547e759239513a,448cb5c2de497679de2161a93b5e0983a6030a33a59eee2b3171c56a93bc91d6,e6b371651baf1c9773ee1e240d51deda5f237e8da74048af9f3379f70f1c8e2f,d24ec5de76732220049843cf0ce87053bdfb223d8e45cdbf83a8d801ed486850,4131794225ae70468171aefddf3e5875a8ab294263ae4694f93a68e8314b0b5c,f5958acf10e9d5f12d9b0349bda1e652273977c36e1ad59c383bbfb512abcac9,19dea7117e47e557bca2019c09173879bde7a9703e7577ec5bf2270fec6aca6e,3cc640e6348efd77de2a22367f609c2f68551d4cb917f27c32c2dbc422827dfa,61d21b2cb4586c4ce3178f6ea51d905d9d00d79d85ccea52e5f4223811e12a44,44e06b75ecca6b3a9f91813c716c0f61f5990f498c5ed17a41ddfcdc0db48368,8da1c8bd377bb3892265639b26a72b7780393a8a43f6471a5eb1abd1ec88ef3d,f5e58a733b69af1ef5fe8a9a580b3790a792e44ad32a29e98d9f7f142862b298,d1e1dc03f1d6d75da644b8a14f8e7d3906b47d50968273f0707142bdd810de1c,d1869756e1200628a18e401e9510a9f78604ce91faf67c2e759a7b28c6eb882f,60dca01fbd010aef036b6ba742978ebacd1c49ba999e06f1b7985c5c0e96055f,c731ad94fa972ca5a7bc709d2cccf187ba47bc6299dcf3301b62990064e04fa2,d1cffa5c6c044dd22a8a0990545ac7bf5edf04b38820230af853949612ef7075,cc351a659c1718306c90276e7a58697709b69d2dd06af2dec6891ac77ac62a3c,82738ee011e454410ea714fbeccad19fe15dba4e62b7d1b85e65e7f8ed2e6286,2d2f067acea2451a17ad0f2beeefcc768dbf52a01f437a5066f49fac1d3eb312,fabad1b8e1b3a3e11810c408f748a7e70449f4274aaaaaf69b11ffeaff1504e7,4ab824b1479ec872488f501374e22488e0b8b4612ea16cca5208783016af9858,1b5dcad92079e86412309d5f85b01631a7aa3d7eda261080531cdeb89c96bcdb,a1809967d96449a3535d19e509fc3ae58b714805141f6487aaf06a7b00f47dc2,081fde0ec6f26348e2626daf44d932bc31d3ac3cc6546061484f9f68b0499422,c3d10191066b94c7a89f91f75fc9aea86e17ac5894fecb8c0698957771d196da,b5474f0aebab60ca12d4f8097a499f3fc063ad6146eb6db4191bc05ce82312ed,147a78e0d0d68aa642b97ba83e7b45ff5b367341f0a0a4f551f593f3ed8855db,47b2514697f7793be6f9ed37ff3cee74a4d1a3012d468c6069c50b6681ec07d1,d59ee71f32fc530efbc54952356a1e564e7fb077b9323bc032f6cacd7ed47917,f0c7fa099c97483728d04f577f5b1462443136e52b9434b5875e00984eab9fc6,a8d103d654099371f1a97f34cfe997683000cf2e7a525376d6af1ac2b75d71ac,cc5f68d406097c09e8d86b667213f52b77d3e0e543c86e3dbede40e8c1f7490d,b495595a4d94415ad9e3c6fbcb8589ddbaffa7d0c9077fcfe261efecc76bc957,f4359ca550fc3fd61f08b20e7714d37f1ea257a2d548fcc6a40cbf1bbc4bfc2b`\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"qTy0z0MrfHLrMs3htoK4YoDowop6sPYHkXbNjL3P4oyB6tZsYeoLd3bZ1LGlBtiOFNd3ZZ/EKBc4fM+8K5ehBA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"gno.land/r/g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun/run","files":[{"name":"main.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\ttutorials \"gno.land/r/gnome/tutorials/v1rc1\"\n\t// \"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Tutorials\",\n\t\t\"Proposal for displaying tutorials within a new Gno.me Space data section.\",\n\t\t// \"gno.land/r/leon/hof\",\n\t\t// \"hof\",\n\t\t// \"Realms Hall of Fame\",\n\t\t// hof.NewDatasource(),\n\t\t\"gno.land/r/gnome/tutorials/v1rc1\",\n\t\t\"tutorials\",\n\t\t\"Tutorials\",\n\t\ttutorials.Datasource{},\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"10000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"JeH8A1ljk/5SoZWV4WpNlz5DCOd9d5JNM/F1kgfk6bFYeV5ymix66FMortpWuGqktY9Ltah9MDMu/M5VYoklBg=="}],"memo":""},"metadata":{"timestamp":"1734112351"}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"gno.land/r/g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun/run","files":[{"name":"main.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\ttutorials \"gno.land/r/gnome/tutorials/v1rc1\"\n\t// \"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Tutorials\",\n\t\t\"Proposal for displaying tutorials within a new Gno.me Space data section.\",\n\t\t// \"gno.land/r/leon/hof\",\n\t\t// \"hof\",\n\t\t// \"Realms Hall of Fame\",\n\t\t// hof.NewDatasource(),\n\t\t\"gno.land/r/gnome/tutorials/v1rc1\",\n\t\t\"tutorials\",\n\t\t\"Tutorials\",\n\t\ttutorials.Datasource{},\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"15000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ODTv5mfXdVcE43flX00eoQgKECcxSKYwBsuVIbYdgzthhXJrKIMEjoN4bRv22oDqhw/0Rxc6MZ8o0p8ToQ2qCg=="}],"memo":""},"metadata":{"timestamp":"1734112371"}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"gno.land/r/g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun/run","files":[{"name":"main.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\ttutorials \"gno.land/r/gnome/tutorials/v1rc1\"\n\t// \"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Tutorials\",\n\t\t\"Proposal for displaying tutorials within a new Gno.me Space data section.\",\n\t\t// \"gno.land/r/leon/hof\",\n\t\t// \"hof\",\n\t\t// \"Realms Hall of Fame\",\n\t\t// hof.NewDatasource(),\n\t\t\"gno.land/r/gnome/tutorials/v1rc1\",\n\t\t\"tutorials\",\n\t\t\"Tutorials\",\n\t\ttutorials.Datasource{},\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"J2F2tVJxOg0INPYHKDbS9PcBN4wptd++2Se82m9F1tsHX3Ov4wFlw9JP445MkHXnyBv4RiKdaSjEua964bYQBA=="}],"memo":""},"metadata":{"timestamp":"1734112386"}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun","send":"","package":{"name":"main","path":"gno.land/r/g1hy6zry03hg5d8le9s2w4fxme6236hkgd928dun/run","files":[{"name":"main_hof.gno","body":"package main\n\nimport (\n\tspace \"gno.land/r/gnome/space/v1rc1\"\n\t\"gno.land/r/leon/hof\"\n)\n\nfunc main() {\n\tspace.SubmitDataSectionProposal(\n\t\t\"Register Space Realm Data Section for Hall of Fame\",\n\t\t\"Proposal for displaying Hall of Fame within a new Gno.me Space data section.\",\n\t\t\"gno.land/r/leon/hof\",\n\t\t\"hof\",\n\t\t\"Realms Hall of Fame\",\n\t\thof.NewDatasource(),\n\t)\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"50000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"4pvj1FiligvHT6d9KVA+v3GAkMeiyvvflonUcZbFVOx2RJZhk4wggBy/eyoSpLHHAobRLw3d1ZQGhhk6v6tgCg=="}],"memo":""},"metadata":{"timestamp":"1734364017"}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","package":{"name":"","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/run","files":null}}],"fee":{"gas_wanted":"100000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"60Ev/dlK+R60FcTrfuaQkbnNfPSSliBLxJ13sAzVPfFWn8LWYajV/iCkaoFKJ7vv+Rx14cRHBzKOgQpotvFEAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","package":{"name":"","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/run","files":null}}],"fee":{"gas_wanted":"100000","gas_fee":"100000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"60Ev/dlK+R60FcTrfuaQkbnNfPSSliBLxJ13sAzVPfFWn8LWYajV/iCkaoFKJ7vv+Rx14cRHBzKOgQpotvFEAA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","package":{"name":"","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"RGWjYcPPGQ0fKxS1A/o9HbQ89TASOdLLNpKEG6I4n32VTmFuHk8lek1cjXv5ti8CKFp8OW0aZjZ2EdajNUnMCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5","send":"","package":{"name":"","path":"gno.land/r/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5/run","files":null}}],"fee":{"gas_wanted":"2000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"H2Rv3RjADIqh996z/0TzGVdMo2/9KEx0gYZd2mMyOr6RQQZ9XJVdAAYEQVMYN29gM1YI8qRBvJZ4V4AfT2L+AQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":null}}],"fee":{"gas_wanted":"10000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"xfxuhW0zPJTXu5C/1yKXaLrMW/yZSpYjUnGJPdnvZvdH1MJVWFEeLbi66mYVF1h27WmsIfPZajwT7hrTxWp3Bw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"main","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":[{"name":"maketx_run.gno","body":"package main\n\n// import \"gno.land/r/leon/v2/raffle\"\nimport raffle \"gno.land/r/manfred/cshijack\"\n\nfunc main() {\n\traffle.RegisterCode(\"sxijq4M0As\")\n}\n"}]}}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"hoqPREYgCzjb3Rj2wDh1lGngcwf/LrhOJL7gbVkaejB/RRCjfGbyb1FtWnD1EEyK+6AonV5H2TGcYsRJOp6lDA=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"main","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":[{"name":"maketx_run.gno","body":"package main\n\n// import \"gno.land/r/leon/v2/raffle\"\nimport raffle \"gno.land/r/manfred/cshijack\"\n\nfunc main() {\n\traffle.RegisterCode(\"sxijq4M0As\")\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Dl2mxoqSimMmJuOWgQf/Pl5kTjxLbNM9KuA7D5KqHqGl5pvhSEvR22U6uXsXTT9l/HllhFKW57xuoNQgS4yEBQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"main","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":[{"name":"maketx_run.gno","body":"package main\n\n// import \"gno.land/r/leon/v2/raffle\"\nimport raffle \"gno.land/r/manfred/v2/cshijack\"\n\nfunc main() {\n\t// raffle.RegisterCode(\"sxijq4M0As\")\n\traffle.RegisterUsername(\"moul\")\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"fKJt6m6mu6p3TJdowYAHEzfGqJxEDkmU3JMhCSWIY/oIM8PS90rJ6BPuKb/zGQLKUkt2HyEi7hB8FpiIPl2jBg=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1manfred47kzduec920z88wfr64ylksmdcedlf5","send":"","package":{"name":"main","path":"gno.land/r/g1manfred47kzduec920z88wfr64ylksmdcedlf5/run","files":[{"name":"maketx_run.gno","body":"package main\n\n// import \"gno.land/r/leon/v2/raffle\"\nimport raffle \"gno.land/r/manfred/v3/cshijack\"\n\nfunc main() {\n\traffle.RegisterCode(\"0kEB5ZSwxs\")\n\traffle.RegisterUsername(\"moul\")\n}\n"}]}}],"fee":{"gas_wanted":"20000000","gas_fee":"1ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"ggh05COVMJ9M7SrakAkB+wUosYEHsNTCYviw1K6PJz/5LlaV7MBeuQuWeN2ZoGGJbGQAKKKO0YrF0d3NWkQbCQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj","send":"","package":{"name":"","path":"gno.land/r/g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj/run","files":null}}],"fee":{"gas_wanted":"2000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"YaUa9Sff19sbjJpBtvvDhH8szGg+2wnNVNvV3089P2lhJGHABzW2/JcPW8yx2NyQOG1XuKlEjOxRsAeyNJtzAQ=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj","send":"","package":{"name":"","path":"gno.land/r/g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj/run","files":null}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ru77APcDUrAJV8RqfHLyoL+iJeC6TmyOH5cadHbnRyLCmlYvEtRg1eARm33LVsYCt8s3qeerOxcPDu2ZC5VyCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj","send":"","package":{"name":"","path":"gno.land/r/g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj/run","files":null}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ru77APcDUrAJV8RqfHLyoL+iJeC6TmyOH5cadHbnRyLCmlYvEtRg1eARm33LVsYCt8s3qeerOxcPDu2ZC5VyCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj","send":"","package":{"name":"","path":"gno.land/r/g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj/run","files":null}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ru77APcDUrAJV8RqfHLyoL+iJeC6TmyOH5cadHbnRyLCmlYvEtRg1eARm33LVsYCt8s3qeerOxcPDu2ZC5VyCw=="}],"memo":""}} +{"tx":{"msg":[{"@type":"/vm.m_run","caller":"g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj","send":"","package":{"name":"","path":"gno.land/r/g1zzqd6phlfx0a809vhmykg5c6m44ap9756s7cjj/run","files":null}}],"fee":{"gas_wanted":"20000000","gas_fee":"1000000ugnot"},"signatures":[{"pub_key":{"@type":"/tm.PubKeyEd25519","value":"np4I57T8nCu7+8OlLowXpJuU/Jmi8ZSRl/bS1KTvGvc="},"signature":"Ru77APcDUrAJV8RqfHLyoL+iJeC6TmyOH5cadHbnRyLCmlYvEtRg1eARm33LVsYCt8s3qeerOxcPDu2ZC5VyCw=="}],"memo":""}}